2017年10月26日 星期四

成本觀念與成本流程

成本: 為取得財貨或勞務而犠牲的經濟資源

費用: 指某會計期間內為獲得收益而發生之成本

財務會計中的成本:
1.已耗成本(expired): 每一項支出都是成本, 若在當期已耗用並可產生經濟效益者稱為已耗成本, 即為費用, 如門巿部門的水費、電費、租金等, 是收益支出. 若耗用的成本未能產生經濟效益, 則列為損失.
2.未耗成本(unexpired cost): 若一項支出所產生的經效益超過一個會計期間, 稱為未耗成本, 是一種資本支出(如辦公設備)

成本標的(cost object): 用來衡量、累積並報導成本的任何單位、作業或活動. 意即成本歸屬(cost assignment)的終點

成本累積(cost accumulation): 利用成本會計制度, 以有系統的方式蒐集並彙總成本資料之過程.

成本累積的方式是先將所發生的成本作分類, 再按照部門別或作業別來彙集.

依與產品的製造活動是否有關, 成本可劃分為:
1.產品成本(product cost): 可歸屬到最終產品的成本, 在產品出售後即轉為銷貨成本(cost of goods sold), 未出售的則遞延列為存貨(inventory). 因此產品成本又可稱為存貨成本(inventory cost). 例如原料成本、加工成本(conversion cost)
2.期間成本(period cost): 與產品活動較不相關, 但較容易歸屬於某特定會計期間的成本. 例如廠房租金、廣告費.

買賣業的產品成本, 除了購買價格外, 還包括相關的運費、稅損、保險費等合理必要支出.

製造業產品的成本包括產品在整個製造過程中所發生的成本, 因此又稱為製造成本(manufacturing cost)或生產成本(production cost).

製造成本由三大成本要素組成:
1.直接材料成本(direct material cost), 或稱原料成本(raw material cost): 是指構成成本標的(如製成品)的主要部分, 且可直接計入成本標的(如產品)之所有原料的成本
2.直接人工成本(direct labor cost): 將直接材料轉變為製成品所耗用、且容易直接歸屬到成本標的(如產品)的人力資源成本. 凡是不能直接歸入成本標的、或歸屬的代,四太高、或歸屬不易的人工成本, 皆可歸入間接人工成本(indirect labor cost), 作為製造費用的一部分
3.製造費用(manufacturing expense), 又稱為間接製造費用(indirect manufacturing ): 在產品製造過程中, 除直接材料、直接人工外, 必須耗用之間接生產費用(如水電費、折舊、保險費)

製造費用包括三種要素:
1.間接材料: 工廠所耗用, 不能直接計入某種產品成本者
2.間接人工: 非直接從事產品製造的人工, 如工頭、領班、倉管員
3.其他費用: 工廠除間接材料及間接人工外, 一切間接生產費用, 如廠房租金、保險、水電

間接製造成本無法直接歸屬於某產品成本, 唯有按比例分攤於特定期間內所製造之各項產品.

主要成本(prime cost): 直接材料 + 直接人工
加工成本: 直接人工 + 製造費用

期間成本(period cost): 與產品製造活動無關,不計入產品當中, 而且在發生當期即列為費用之成本, 又稱為非製造成本, 就是在本會計期間中應負擔的成本.

期間成本主要有三大類:
1.行銷成本(selling cost): 產品成本銷售時所發生的各項成本
2.管理成本(administrative cost): 企業通盤管理所發生之成本, 與製造及行銷無直接關係, 而是在規劃及監督兩職能所發生之成本
3.研究發展成本(research & development cost): 因研究發展新產品或改良產品而發生的直接材料、直接人工成本及製造費用等

製造成本 = 直接材料 + 加工成本 = 主要成本 + 製造費用
  直接材料 = 期初直接材料存貨 + 直接材料進貨 - 期末直接材料存貨
  加工成本 = 直接人工 + 製造費用
  主要成本 = 直接材料 + 直接人工
  製造費用 = 間接材料 + 間接人工 + 其他製造費用

成本習性(cost behavior): 瞭解成本隨生產數量或作業水準變化之關係, 也可說是成本與數量之關係

成本習性分析: 探討總成本與產量或活動量的關係

成本習性可分為:
1.變動成本(variable cost): 成本總額會隨數量、活動量的變動, 而呈正比例變動
2.固定成本(fixed cost): 總成本不會因數量變動而改變, 例如廠房租金、稅捐等
3.半變動成本: 同時具有固定成本和變動成本兩種習性, 又稱混合成本, 例如水電費與電話費

總成本 = 固定成本 + 每單位變動成本 X 已知數量

將半變動成本分為固定及變動兩部分之方法:
1.利潤比例法(profit proportionately method): 比較兩期利潤數字, 詳細觀察研判
2.高低點法(high-low method): 選擇成本動因最高與最低之兩個觀察值, 然後以二者之變動計算出固定部分及變動部分之金額

直接成本/間接成本:
1.直接成本(direct cost): 成本與產品發生直接關係其耗用可明確直接歸屬於某種產品之內, 亦稱為主要成本
2.間接成本(indirect cost): 發生之成本與產品無直接關係, 其耗用無法明確衡量, 不易直接歸屬於某批產品

共同成本(common cost): 因兩個或兩個以上的部門共同用某些設施或某項服務而產生之間接成本

可控制成本/不可控制成本:
1.可控制成本(controllable cost): 成本之增減可加以自由控制、並經由有效的控管, 達到降低成本、增加獲利能力之目的. 如人事費用、差旅費
2.不可控制成本(uncontrollable cost): 成本之增減不可自由控制,無法透過有效的管理來降低其費用的總額. 如折舊、各項攤提等

共同成本/聯合成本:
1.共同成本(common costs): 兩個或兩個以上的作業單位或產品期同用某些設施或某項服務的成本.,有時稱為間接成本, 因成本標的不易辨認, 必篢透過某種成本分攤方法來進行成本歸屬
2.聯合成本(joint costs): 兩種以上之產品於同一時間製造, 或經同一製造程序, 或產自同一材料所發生之成本

總成本/單位成本;
1.總成本(total cost): 某種產品所發生之各項成本的總和, 可分為製造總成本(某項產品在製造過程中所發生的一切直接材料、直接人工及製造費用的總和)和製銷總成本(產品在製銷過程中所發生的製造成本、行銷成本及管理成本之總和)
2.單位成本(unit cost): 又稱為平均成本(average cost), 是每一單位產品所應負擔之成本, 通常以產量除總成本而求出平均單位成本

差異成本/機會成本
1.差異成本(differential cost): 兩個可行方案間成本之差異數, 可以是增支成本(incremental cost), 也可以是減支成本(decremental cost), 減支成本也可稱為可避免成本(avoidable cost)
2.機會成本(opportunity cost): 選擇一方案而放棄其他方案時, 所放棄的最大利益

沉没成本/付現成本:
1.沉没成本(sunk cost): 因過去決策而生的支出, 管理人員無法以現在或未來的決策加以改變者
2.付現成本(out-of-pocket cost): 為支付現金或現金近似之流動資產的成本

產品成本(products cost): 與產品之製造生產直接相關的成本, 對於製造業, 製造成本即為產品成本

生命週期成本(life cycle cost, LCC): 企業對於該產品整個計畫所需投入的成本


2017年10月25日 星期三

Oracle EBS: PO workflow retry (wf_engine.handleerror)

幾十筆因reschedule PO而停在In process, 原因是人員帳號及buyer失效.

把帳號及buyer改為有效, 手動重跑workflow成功.

為了節省處理時間, 找出procedure , 先確定item_type和activity, 再用cursor取item_key, 就批次解決了.


begin
  wf_engine.handleerror('POAPPRV',                     --itemtype
                        '1450765-127028',              --itemkey
                        'APPROVE_PO_SUB_PROCESS_CO',   --activity(internal_name)
                        'RETRY',                       --command
                        NULL);                         --result
end;



Ref:
https://docs.oracle.com/cd/B13789_01/workflow.101/b10286/wfapi47.htm


2017年10月16日 星期一

Oracle EBS: 取GL節段設定

SQL:


  SELECT gls.name,
         idfs.id_flex_num chart_of_accounts_id,
         idfs.segment_num,
         idfs.flex_value_set_id,
         fvs.flex_value_set_name,
         idfs.application_id,
         idfs.id_flex_code,
         idfs.application_column_name,
         idfs.segment_name,
         fvs.security_enabled_flag,
         (CASE
             WHEN fvs.validation_type = 'F' THEN 'Table'
             WHEN fvs.validation_type = 'I' THEN 'Independent'
             WHEN fvs.validation_type = 'D' THEN 'Dependent'
             WHEN fvs.validation_type = 'N' THEN 'None'
             WHEN fvs.validation_type = 'P' THEN 'Pair'
             WHEN fvs.validation_type = 'U' THEN 'Special'
             ELSE 'Unknown Type'
          END)
            validation_type,
         (CASE
             WHEN fvs.validation_type = 'F' THEN fvt.application_table_name
             ELSE 'Not Applicable'
          END)
            validation_table_name
    FROM gl_ledgers gls,
         fnd_id_flex_segments idfs,
         fnd_flex_value_sets fvs,
         fnd_flex_validation_tables fvt
   WHERE     gls.chart_of_accounts_id(+) = idfs.id_flex_num
         AND fvs.flex_value_set_id = idfs.flex_value_set_id
         AND gls.ledger_id = ledgerid
         AND idfs.application_id = 101
         AND idfs.id_flex_code IN ('GL#', 'GLLE')
         AND fvs.flex_value_set_id = fvt.flex_value_set_id(+)
ORDER BY idfs.id_flex_code, idfs.id_flex_num, idfs.segment_num ASC;


2017年10月12日 星期四

Oracle EBS: API for PO cancel


  fnd_global.apps_initialize(user_id => v_user_id, resp_id => v_resp_id, resp_appl_id => v_resp_appl_id );

  mo_global.init('PO'); -- need for R12


    --call the Cancel API for PO number PO123

    PO_Document_Control_PUB.control_document (
      1.0, -- p_api_version
      FND_API.G_TRUE, -- p_init_msg_list
      FND_API.G_TRUE, -- p_commit
      l_return_status, -- x_return_status
      'PO', -- p_doc_type
      'STANDARD', -- p_doc_subtype
      NULL, -- p_doc_id
      r1.po_num, --'PO123', -- p_doc_num
      NULL, -- p_release_id
      NULL, -- p_release_num
      NULL, -- p_doc_line_id
      r1.line_num, --null, -- p_doc_line_num
      NULL, -- p_doc_line_loc_id
      r1.shipment_num, --null, -- p_doc_shipment_num
      'CANCEL', -- p_action
      SYSDATE, -- p_action_date
      NULL, -- p_cancel_reason
      'N', -- p_cancel_reqs_flag
      NULL, -- p_print_flag
      NULL ); -- p_note_to_vendor