f_aps_mtrl_will_scll.srf 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. $PBExportHeader$f_aps_mtrl_will_scll.srf
  2. global type f_aps_mtrl_will_scll from function_object
  3. end type
  4. forward prototypes
  5. global function integer f_aps_mtrl_will_scll (s_aps_orderrqmtrl arg_s_rqmtrl, ref string arg_msg)
  6. end prototypes
  7. global function integer f_aps_mtrl_will_scll (s_aps_orderrqmtrl arg_s_rqmtrl, ref string arg_msg);Int rslt = 1
  8. Long ll_i
  9. Long ll_mtrlid,ll_scid,ll_wrkgrpid,ll_orderid
  10. String ls_status,ls_woodcode,ls_pcode
  11. Decimal ld_qty
  12. DateTime ldt_rqdate
  13. Int li_ordertype
  14. FOR ll_i = 1 To UpperBound(arg_s_rqmtrl.mtrlid)
  15. ll_mtrlid = arg_s_rqmtrl.mtrlid[ll_i]
  16. ls_status = arg_s_rqmtrl.status[ll_i]
  17. ls_woodcode = arg_s_rqmtrl.woodcode[ll_i]
  18. ls_pcode = arg_s_rqmtrl.pcode[ll_i]
  19. ld_qty = arg_s_rqmtrl.qty[ll_i]
  20. ll_scid = arg_s_rqmtrl.scid[ll_i]
  21. ll_orderid = arg_s_rqmtrl.orderid[ll_i]
  22. ll_wrkgrpid = arg_s_rqmtrl.wrkgrpid[ll_i]
  23. ld_qty = 0 - ld_qty
  24. SELECT top 1 rqdate
  25. INTO :ldt_rqdate
  26. FROM u_orderrqmtrl
  27. WHERE orderid = :ll_orderid
  28. AND mtrlid = :ll_mtrlid
  29. AND wrkGrpid = :ll_wrkgrpid
  30. AND scid = :ll_scid
  31. AND status = :ls_status
  32. AND woodcode = :ls_woodcode
  33. And pcode = :ls_pcode;
  34. IF sqlca.SQLCode <> 0 THEN CONTINUE
  35. IF f_aps_mtrl_will_add(ll_scid,ll_mtrlid,ls_status,ls_woodcode,ls_pcode,ldt_rqdate,ld_qty,2,arg_msg,mrp_sqlca,True) = 0 THEN
  36. rslt = 0
  37. GOTO ext
  38. END IF
  39. NEXT
  40. ext:
  41. RETURN rslt
  42. end function