f_aps_mtrl_will_produce.srf 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. $PBExportHeader$f_aps_mtrl_will_produce.srf
  2. global type f_aps_mtrl_will_produce from function_object
  3. end type
  4. forward prototypes
  5. global function integer f_aps_mtrl_will_produce (long arg_scid, long arg_orderid, s_aps_orderrqmtrl arg_s_rqmtrl, ref string arg_msg)
  6. end prototypes
  7. global function integer f_aps_mtrl_will_produce (long arg_scid, long arg_orderid, s_aps_orderrqmtrl arg_s_rqmtrl, ref string arg_msg);Int rslt = 1
  8. IF sys_option_if_newmrp = 0 THEN
  9. rslt = 1
  10. GOTO ext
  11. END IF
  12. datastore ds_orderrqmtrl
  13. ds_orderrqmtrl = Create datastore
  14. ds_orderrqmtrl.DataObject = 'ds_aps_orderrqmtrl'
  15. ds_orderrqmtrl.SetTransObject(sqlca)
  16. Long ll_mtrlid
  17. String ls_status,ls_woodcode,ls_pcode
  18. DateTime ldt_rqdate
  19. Decimal ld_qty,ld_truerqqty
  20. Long ll_i
  21. Long ll_plantype
  22. FOR ll_i = 1 To UpperBound(arg_s_rqmtrl.mtrlid)
  23. IF f_aps_mtrl_will_add(arg_scid,arg_s_rqmtrl.mtrlid[ll_i],arg_s_rqmtrl.status[ll_i],arg_s_rqmtrl.woodcode[ll_i],arg_s_rqmtrl.pcode[ll_i],arg_s_rqmtrl.rqdate[ll_i],0 - arg_s_rqmtrl.qty[ll_i],2,arg_msg,mrp_sqlca,True) = 0 THEN
  24. rslt = 0
  25. GOTO ext
  26. END IF
  27. IF arg_s_rqmtrl.plantype[ll_i] = 0 THEN
  28. IF f_aps_mtrl_will_add(arg_scid,arg_s_rqmtrl.mtrlid[ll_i],arg_s_rqmtrl.status[ll_i],arg_s_rqmtrl.woodcode[ll_i],arg_s_rqmtrl.pcode[ll_i],arg_s_rqmtrl.rqdate[ll_i],0 - arg_s_rqmtrl.truerqqty[ll_i],7,arg_msg,mrp_sqlca,True) = 0 THEN
  29. rslt = 0
  30. GOTO ext
  31. END IF
  32. END IF
  33. NEXT
  34. ds_orderrqmtrl.Retrieve(arg_scid,arg_orderid)
  35. FOR ll_i = 1 To ds_orderrqmtrl.RowCount()
  36. ll_mtrlid = ds_orderrqmtrl.Object.mtrlid[ll_i]
  37. ls_status = ds_orderrqmtrl.Object.status[ll_i]
  38. ls_woodcode = ds_orderrqmtrl.Object.woodcode[ll_i]
  39. ls_pcode = ds_orderrqmtrl.Object.pcode[ll_i]
  40. ldt_rqdate = ds_orderrqmtrl.Object.edate[ll_i]
  41. ld_qty = ds_orderrqmtrl.Object.rqqty[ll_i]
  42. ld_truerqqty = ds_orderrqmtrl.Object.truerqqty[ll_i]
  43. ll_plantype = ds_orderrqmtrl.Object.plantype[ll_i]
  44. IF f_aps_mtrl_will_add(arg_scid,ll_mtrlid,ls_status,ls_woodcode,ls_pcode,ldt_rqdate,ld_qty,2,arg_msg,mrp_sqlca,True) = 0 THEN
  45. rslt = 0
  46. GOTO ext
  47. END IF
  48. IF ll_plantype = 0 THEN
  49. IF f_aps_mtrl_will_add(arg_scid,ll_mtrlid,ls_status,ls_woodcode,ls_pcode,ldt_rqdate,ld_truerqqty,7,arg_msg,mrp_sqlca,True) = 0 THEN
  50. rslt = 0
  51. GOTO ext
  52. END IF
  53. END IF
  54. NEXT
  55. ext:
  56. RETURN rslt
  57. end function