PO订单状态

只能对采购单题头操作的活动有:
1.暂挂,释放。暂挂作用防止打印单据(通过Oracle标准报表的话)。适用与未完成状态的采购订单;
2.冻结,解冻,冻结能够防止对已经审批的订单做修改,并且不能通过采购订单录入界面打开;
对题头和采购订单行都有效的活动:
3.取消。终止合同或合同行。动作不可逆。比较麻烦的是怎样通知供应商,不同公司有不同的方式这一点在实施的时候需要考虑;
4.最终关闭,为了防止对已经完全完结(不会发生退货)的订单的变更,可以对其进行最终关闭。这个动作也是不可逆的。对于包含最终关闭行的采购订单可以进行审批,对于最终关闭的订单可以进行清除操作,但是这个功能在下没有用过。
只适用于采购单行(这里不区分采购行和发运行)
5.接受关闭,接收打开,如果行完全接收或接收数量符合允差规定系统会自动关闭,当然为了某些目的我们可以手工关闭或打开,这个状态会影响查找预期接收的form的查找结果。
6.发票关闭,发票打开,如果行完全匹配或匹配数量符合允差规定系统会自动关闭,这个对AP的影响在下不是很清楚。
系统会自动运行的:
7.关闭,系统会检查发运行,采购单行的关闭状况系统会自动的逐级关闭订单,当然也可以手工进行。
其他:
8.删除,对未完成状态的订单或订单行(不区分采购行,发运行)进行清除,对采购订单的删除会产生跳号。
9.确认,会影响计划方面的数量计算,具体不是特别清除。

请问一下, PO line status 有个状态是 closed for receiving 或者是closed for invoice
那个closed 状态有何区别?

定义:  po_line_locations_all 为A, 
         po_lines_all 为B

其实应该是A中的status,当接收完成后,A中的status为CLOSED FOR RECEIVING,当matched PO完成时,A中的status变成CLOSED FOR INVOICE,如果此时,A中的接收数量,Billed数量与B中的行数量完全一致时,那么B的status变成CLOSED,否则就是OPEN.

当有做RETURN时,这时A与B的status都会发生变化.

可以使用脚本查询来验证测试数据.

================SQL Scripts===================

SELECT ph.org_id, ph.segment1 "PO_Number", pl.line_num "Line_Number",
       pl.closed_code "Closed_Code", pll.closed_code "Closed_code",
       pll.quantity "Line_Quantity",
       pll.quantity_received "Quantity_Received",
       pll.quantity_billed "Quantity_Billed",
       pll.quantity_cancelled "Quantity_Cancelled",
       pll.quantity_accepted "Quantity_Accepted",
       pll.quantity_rejected "Quantity_rejected"
  FROM po.po_headers_all ph, 
       po.po_lines_all pl, 
       po.po_line_locations_all pll
WHERE ph.po_header_id = pl.po_header_id(+)
   AND pl.po_line_id = pll.po_line_id(+)
   AND ph.org_id  like  '&org_id'
   AND ph.segment1 like '&po_number'
   AND pll.closed_code LIKE 'CLOSED%'

posted @ 2012-07-06 23:42  郭振斌  阅读(3477)  评论(0编辑  收藏  举报