$PBExportHeader$f_mtrl_add_copy_with_commit.srf global type f_mtrl_add_copy_with_commit from function_object end type forward prototypes global function integer f_mtrl_add_copy_with_commit (s_edit_index_tran arg_s_tran, ref string arg_msg, ref s_mtrldef arg_s_return) global function integer f_mtrl_add_copy_with_commit (s_edit_index_tran arg_s_tran, ref string arg_msg, ref s_mtrldef arg_s_return, boolean arg_ifcommit) end prototypes global function integer f_mtrl_add_copy_with_commit (s_edit_index_tran arg_s_tran, ref string arg_msg, ref s_mtrldef arg_s_return);Int rslt = 1 Long ll_mtrlid Int li_ifstorage,li_ifbom,li_ifworkprice,li_ifspt Int li_wrk,li_ifconfigure2,li_ifconfigure Int li_ifsl = 0,li_ifquote = 0,li_iftechnics = 0,li_ifother = 0,li_model = 0 String ls_mtrlcode,ls_mtrlname Long ll_mtrlid_copy Int li_affirmflag,li_flag Long cnt ll_mtrlid = arg_s_tran.a_long ls_mtrlcode = arg_s_tran.b_string ls_mtrlname = arg_s_tran.c_string li_ifstorage = arg_s_tran.b_long li_ifbom = arg_s_tran.c_long li_ifworkprice = arg_s_tran.d_long li_wrk = arg_s_tran.e_long li_ifconfigure2 = arg_s_tran.f_long li_ifconfigure = arg_s_tran.g_long li_ifspt = arg_s_tran.h_long li_ifsl = arg_s_tran.i_long li_ifquote = arg_s_tran.j_long li_iftechnics = arg_s_tran.k_long li_ifother = arg_s_tran.l_long li_model = arg_s_tran.m_long If Trim(ls_mtrlcode) = '' Then rslt = 0 arg_msg = '新物料编码不能为空' Goto ext End If uo_mtrldef uo_mtrl uo_mtrl = Create uo_mtrldef s_mtrldef arg_s_mtrl Select u_mtrldef.mtrlsectype, u_mtrldef.mtrlmode, u_mtrldef.unit, u_mtrldef.dscrp, u_mtrldef.lmbuyprice, u_mtrldef.LMsaleprice, u_mtrldef.prdpackcode, u_mtrldef.packqty, u_mtrldef.zxmtrlmode, u_mtrldef.unit_buy, u_mtrldef.rate_buy, u_mtrldef.unit_scll, u_mtrldef.rate_scll, u_mtrldef.unit_sale, u_mtrldef.rate_sale, u_mtrldef.orderdays, u_mtrldef.buydays, u_mtrldef.wfjgdays, u_mtrldef.minbuyqty, u_mtrldef.aheaddays, u_mtrldef.ifselforder, u_mtrldef.mprice, u_mtrldef.Mtrlorigin, u_mtrldef.mtrlkind, u_mtrldef.lspacklimit, u_mtrldef.MaxQTY, u_mtrldef.MinQTY, u_mtrldef.isuse, u_mtrldef.mtrltypeid, u_mtrldef.barcode, u_mtrldef.net_weight, u_mtrldef.gross_weight, u_mtrldef.cubage, u_mtrldef.mtrlengname, u_mtrldef.scllflag, u_mtrldef.dftwrkGrpid, u_mtrldef.scid, u_mtrldef.ifscid, u_mtrldef.mtrlprp, u_mtrldef.uprate, u_mtrldef.upqty, u_mtrldef.ordertype, u_mtrldef.statusflag, u_mtrldef.statustype, u_mtrldef.woodcodeflag, u_mtrldef.woodcodetype, u_mtrldef.pcodeflag, u_mtrldef.pcodetype, u_mtrldef.mtrlarea, u_mtrldef.dftsptid, u_mtrldef.mtrlarea1, u_mtrldef.mtrlarea2, u_mtrldef.iflimitprice, u_mtrldef.configcode, u_mtrldef.autoinstall, u_mtrldef.ifpack, u_mtrldef.configname, u_mtrldef.ifpackpro, u_mtrldef.mtrlcolor, u_mtrldef.configcodetype, u_mtrldef.ifautodd, u_mtrldef.iflljg, u_mtrldef.ifunit, u_mtrldef.ifpackpz, u_mtrldef.ifpacktype, u_mtrldef.scllrate, u_mtrldef.cmpqty, u_mtrldef.usermtrlmode, u_mtrldef.storagetype, u_mtrldef.ifmtrlcuscode, u_mtrldef.mrptype, u_mtrldef.mrparg, u_mtrldef.updownprice, u_mtrldef.outtype, u_mtrldef.ifpricepack, u_mtrldef.gydscrp, u_mtrldef.downrate, u_mtrldef.ifcustom, u_mtrldef.buyunit, u_mtrldef.wfjgunit, u_mtrldef.scllunit, u_mtrldef.saleunit, u_mtrldef.buydec, u_mtrldef.wfjgdec, u_mtrldef.sclldec, u_mtrldef.saledec, u_mtrldef.issuliao, isnull(u_mtrldef_sl.period,0), u_mtrldef.ifenough, u_mtrldef.capacity, u_mtrldef.expday, u_mtrldef.capaparm, u_mtrldef.sctaskqty, u_mtrldef.minarg, u_mtrldef.maxarg, u_mtrldef.mindays, u_mtrldef.maxdays, u_mtrldef.status_check, u_mtrldef.woodcode_check, u_mtrldef.pcode_check, u_mtrldef.ifmrppackpf, u_mtrldef.eoq, u_mtrldef.splitrate, u_mtrldef.maxzjday, u_mtrldef.mrp_unit, u_mtrldef.rebuytype, u_mtrldef.rebuylot, u_mtrldef.ifsendlot, u_mtrldef.upddrate, u_mtrldef.upddqty, u_mtrldef.upsalerate, u_mtrldef.upsaleqty, u_mtrldef.ifusedeliqty, u_mtrldef.status_config, u_mtrldef.woodcode_config, u_mtrldef.pcode_config, u_mtrldef.pricepztype, u_mtrldef.useday, u_mtrldef.equiptype, u_mtrldef.ifpackpro2, u_mtrldef.ifkl, u_mtrldef.ifturn, u_mtrldef.iffp, u_mtrldef.scllqty, u_mtrldef.piccode, u_mtrldef.dftscllwkpid, u_mtrldef.if_hourpay, u_mtrldef.ifmrp, u_mtrldef.if_inherit, u_mtrldef.groupstr, u_mtrldef.groupday, u_mtrldef.aps_capacity_type, u_mtrldef.checkrate, u_mtrldef.scllplan_mode, u_mtrldef.chkpassrate, u_mtrldef.price_ifpz, u_mtrldef.dftcusid, u_mtrldef.sendtype, u_mtrldef.mb_mtrlid, u_mtrldef.buy_ceiling, u_mtrldef.wfjg_ceiling, u_mtrldef.sale_ceiling, u_mtrldef.scll_ceiling, u_mtrldef.material, u_mtrldef.adddec, u_mtrldef.ifbarcodefp, u_mtrldef.stoppqty, u_mtrldef.buy_autoday, u_mtrldef.upbuyrate, u_mtrldef.upbuyqty, u_mtrldef.ifrebuypack, u_mtrldef.protype, u_mtrldef.mtrltype, u_mtrldef.ifcheck, u_mtrldef.buydays_bx, u_mtrldef.wfjgdays_bx, u_mtrldef.multqty, u_mtrldef.multtype, u_mtrldef.buyer, u_mtrldef.bantype, u_mtrldef.midu Into :arg_s_mtrl.mtrlsectype, :arg_s_mtrl.mtrlmode, :arg_s_mtrl.unit, :arg_s_mtrl.dscrp, :arg_s_mtrl.lmbuyprice, :arg_s_mtrl.lmsaleprice, :arg_s_mtrl.prdpackcode, :arg_s_mtrl.packqty, :arg_s_mtrl.zxmtrlmode, :arg_s_mtrl.unit_buy, :arg_s_mtrl.rate_buy, :arg_s_mtrl.unit_scll, :arg_s_mtrl.rate_scll, :arg_s_mtrl.unit_sale, :arg_s_mtrl.rate_sale, :arg_s_mtrl.orderdays, :arg_s_mtrl.buydays, :arg_s_mtrl.wfjgdays, :arg_s_mtrl.minbuyqty, :arg_s_mtrl.aheaddays, :arg_s_mtrl.ifselforder, :arg_s_mtrl.mprice, :arg_s_mtrl.mtrlorigin, :arg_s_mtrl.mtrlkind, :arg_s_mtrl.lspacklimit, :arg_s_mtrl.maxqty, :arg_s_mtrl.minqty, :arg_s_mtrl.isuse, :arg_s_mtrl.mtrltypeid, :arg_s_mtrl.barcode, :arg_s_mtrl.net_weight, :arg_s_mtrl.gross_weight, :arg_s_mtrl.cubage, :arg_s_mtrl.mtrlengname, :arg_s_mtrl.scllflag, :arg_s_mtrl.dftwrkgrpid, :arg_s_mtrl.scid, :arg_s_mtrl.ifscid, :arg_s_mtrl.mtrlprp, :arg_s_mtrl.uprate, :arg_s_mtrl.upqty, :arg_s_mtrl.ordertype, :arg_s_mtrl.statusflag, :arg_s_mtrl.statustype, :arg_s_mtrl.woodcodeflag, :arg_s_mtrl.woodcodetype, :arg_s_mtrl.pcodeflag, :arg_s_mtrl.pcodetype, :arg_s_mtrl.mtrlarea, :arg_s_mtrl.dftsptid, :arg_s_mtrl.mtrlarea1, :arg_s_mtrl.mtrlarea2, :arg_s_mtrl.iflimitprice, :arg_s_mtrl.configcode, :arg_s_mtrl.autoinstall, :arg_s_mtrl.ifpack, :arg_s_mtrl.configname, :arg_s_mtrl.ifpackpro, :arg_s_mtrl.mtrlcolor, :arg_s_mtrl.configcodetype, :arg_s_mtrl.ifautodd, :arg_s_mtrl.iflljg, :arg_s_mtrl.ifunit, :arg_s_mtrl.ifpackpz, :arg_s_mtrl.ifpacktype, :arg_s_mtrl.scllrate, :arg_s_mtrl.cmpqty, :arg_s_mtrl.usermtrlmode, :arg_s_mtrl.storagetype, :arg_s_mtrl.ifmtrlcuscode, :arg_s_mtrl.mrptype, :arg_s_mtrl.mrparg, :arg_s_mtrl.updownprice, :arg_s_mtrl.outtype, :arg_s_mtrl.ifpricepack, :arg_s_mtrl.gydscrp, :arg_s_mtrl.downrate, :arg_s_mtrl.ifcustom, :arg_s_mtrl.buyunit, :arg_s_mtrl.wfjgunit, :arg_s_mtrl.scllunit, :arg_s_mtrl.saleunit, :arg_s_mtrl.buydec, :arg_s_mtrl.wfjgdec, :arg_s_mtrl.sclldec, :arg_s_mtrl.saledec, :arg_s_mtrl.issuliao, :arg_s_mtrl.period, :arg_s_mtrl.ifenough, :arg_s_mtrl.capacity, :arg_s_mtrl.expday, :arg_s_mtrl.capaparm, :arg_s_mtrl.sctaskqty, :arg_s_mtrl.minarg, :arg_s_mtrl.maxarg, :arg_s_mtrl.mindays, :arg_s_mtrl.maxdays, :arg_s_mtrl.status_check, :arg_s_mtrl.woodcode_check, :arg_s_mtrl.pcode_check, :arg_s_mtrl.ifmrppackpf, :arg_s_mtrl.eoq, :arg_s_mtrl.splitrate, :arg_s_mtrl.maxzjday, :arg_s_mtrl.mrp_unit, :arg_s_mtrl.rebuytype, :arg_s_mtrl.rebuylot, :arg_s_mtrl.ifsendlot, :arg_s_mtrl.upddrate, :arg_s_mtrl.upddqty, :arg_s_mtrl.upsalerate, :arg_s_mtrl.upsaleqty, :arg_s_mtrl.ifusedeliqty, :arg_s_mtrl.status_config, :arg_s_mtrl.woodcode_config, :arg_s_mtrl.pcode_config, :arg_s_mtrl.pricepztype, :arg_s_mtrl.useday, :arg_s_mtrl.equiptype, :arg_s_mtrl.ifpackpro2, :arg_s_mtrl.ifkl, :arg_s_mtrl.ifturn, :arg_s_mtrl.iffp, :arg_s_mtrl.scllqty, :arg_s_mtrl.piccode, :arg_s_mtrl.dftscllwkpid, :arg_s_mtrl.if_hourpay, :arg_s_mtrl.ifmrp, :arg_s_mtrl.if_inherit, :arg_s_mtrl.groupstr, :arg_s_mtrl.groupday, :arg_s_mtrl.aps_capacity_type, :arg_s_mtrl.checkrate, :arg_s_mtrl.scllplan_mode, :arg_s_mtrl.chkpassrate, :arg_s_mtrl.price_ifpz, :arg_s_mtrl.dftcusid, :arg_s_mtrl.sendtype, :arg_s_mtrl.mb_mtrlid, :arg_s_mtrl.buy_ceiling, :arg_s_mtrl.wfjg_ceiling, :arg_s_mtrl.sale_ceiling, :arg_s_mtrl.scll_ceiling, :arg_s_mtrl.material, :arg_s_mtrl.adddec, :arg_s_mtrl.ifbarcodefp, :arg_s_mtrl.stoppqty, :arg_s_mtrl.buy_autoday, :arg_s_mtrl.upbuyrate, :arg_s_mtrl.upbuyqty, :arg_s_mtrl.ifrebuypack, :arg_s_mtrl.protype, :arg_s_mtrl.mtrltype, :arg_s_mtrl.ifcheck, :arg_s_mtrl.buydays_bx, :arg_s_mtrl.wfjgdays_bx, :arg_s_mtrl.multqty, :arg_s_mtrl.multtype, :arg_s_mtrl.buyer, :arg_s_mtrl.bantype, :arg_s_mtrl.midu From u_mtrldef LEFT Outer JOIN u_mtrldef_sl ON u_mtrldef.mtrlid = u_mtrldef_sl.mtrlid Where u_mtrldef.mtrlid = :ll_mtrlid; If sqlca.SQLCode <> 0 Then arg_msg = '查询物料原资料失败,'+sqlca.SQLErrText rslt = 0 Goto ext End If arg_s_mtrl.mtrlid = 0 arg_s_mtrl.mtrlcode = ls_mtrlcode arg_s_mtrl.mtrlname = ls_mtrlname //If arg_s_mtrl.Mtrlorigin = 0 Then // If arg_s_mtrl.ifselforder = 0 Then // arg_s_mtrl.ifselforder = 2 // End If //End If If li_ifspt = 0 Then arg_s_mtrl.dftsptid = 0 End If If arg_s_mtrl.issuliao = 1 Then Select sk_mtrlid,period Into :arg_s_mtrl.skmtrlid,:arg_s_mtrl.period From u_mtrldef_sl Where mtrlid = :ll_mtrlid; If sqlca.SQLCode <> 0 Then arg_s_mtrl.sk_mtrltypeid = 0 arg_s_mtrl.period = 0 End If //ElseIf arg_s_mtrl.issuliao = 5 or arg_s_mtrl.issuliao = 8 Then // Select Zxtypeid // Into :arg_s_mtrl.skmtrlid // From u_mtrldef_add_property // Where mtrlid = :ll_mtrlid; // If sqlca.SQLCode <> 0 Then // arg_s_mtrl.sk_mtrltypeid = 0 // arg_s_mtrl.period = 0 // End If Else arg_s_mtrl.skmtrlid = 0 arg_s_mtrl.period = 0 End If If uo_mtrl.uof_add_mtrl(arg_s_mtrl,publ_operator,arg_msg,False) = 0 Then arg_msg = "建立新物料资料操作失败,"+arg_msg rslt = 0 Goto ext End If //新物料ID ll_mtrlid_copy = uo_mtrl.uo_mtrlid Insert Into u_mtrldef_ban (mtrlid, promode, wenli, fengbian, paikong, luoji, penyou, gydscrp, direction, pfklmode) Select :ll_mtrlid_copy, promode, wenli, fengbian, paikong, luoji, penyou, gydscrp, direction, pfklmode From u_mtrldef_ban Where mtrlid = :ll_mtrlid; If sqlca.SQLCode <> 0 Then arg_msg = sqlca.SQLErrText Rollback; arg_msg = '复制物料板件信息失败,'+arg_msg rslt = 0 Goto ext End If //复制存放仓库 If li_ifstorage = 1 Then Insert Into u_mtrl_storage (mtrlid,storageid) Select :ll_mtrlid_copy,storageid From u_mtrl_storage Where mtrlid = :ll_mtrlid; If sqlca.SQLCode <> 0 Then arg_msg = sqlca.SQLErrText Rollback; arg_msg = '复制物料存放仓库失败,'+arg_msg rslt = 0 Goto ext End If End If //复制工价表 If li_ifworkprice = 1 Then Insert Into u_mtrl_workprice (mtrlid, wrkid, opdate, opemp, wpcode, Ifdft) Select :ll_mtrlid_copy, wrkid, getdate(), :publ_operator, wpcode, Ifdft From u_mtrl_workprice Where mtrlid = :ll_mtrlid; If sqlca.SQLCode <> 0 Then arg_msg = sqlca.SQLErrText Rollback; arg_msg = '复制物料车间工价表失败,'+arg_msg rslt = 0 Goto ext End If Insert Into u_sc_workprice (mtrlid, proid, Proorder, procode, Proname, wrkGrpid, workPrice, worklevel, Techlevel, Workhour, dscrp, sumflag, Lastflag, workqty, olworkprice, ifownpro, lsxtype, ifstandard, status, workdays, wrkid, utcode, wpcode) Select :ll_mtrlid_copy, u_sc_workprice.proid, u_sc_workprice.Proorder, u_sc_workprice.procode, u_sc_workprice.Proname, u_sc_workprice.wrkGrpid, u_sc_workprice.workPrice, u_sc_workprice.worklevel, u_sc_workprice.Techlevel, u_sc_workprice.Workhour, u_sc_workprice.dscrp, u_sc_workprice.sumflag, u_sc_workprice.Lastflag, u_sc_workprice.workqty, u_sc_workprice.olworkprice, u_sc_workprice.ifownpro, u_sc_workprice.lsxtype, u_sc_workprice.ifstandard, u_sc_workprice.status, u_sc_workprice.workdays, u_sc_workprice.wrkid, u_sc_workprice.utcode, u_sc_workprice.wpcode From u_sc_workprice Where mtrlid = :ll_mtrlid; If sqlca.SQLCode <> 0 Then arg_msg = sqlca.SQLErrText Rollback; arg_msg = '复制物料工价表失败,'+arg_msg rslt = 0 Goto ext End If Else If arg_s_mtrl.Mtrlorigin = 0 Then Insert Into u_mtrl_workprice (mtrlid, wrkid, opdate, opemp, wpcode, Ifdft) Select top 1 :ll_mtrlid_copy, :arg_s_mtrl.dftwrkGrpid, getdate(), :publ_operator, '[常规]', 1 From u_mtrl_workprice Where mtrlid = :ll_mtrlid; If sqlca.SQLCode <> 0 Then arg_msg = sqlca.SQLErrText Rollback; arg_msg = '加入物料默认工价表失败,'+arg_msg rslt = 0 Goto ext End If End If End If //复制车间交接流程 If li_wrk = 1 Then Insert Into u_mtrl_wkp (mtrlid, swkpid, owkpid, wkpname, lastdays, dscrp, printid, iflast) Select :ll_mtrlid_copy, u_mtrl_wkp.swkpid, u_mtrl_wkp.owkpid, u_mtrl_wkp.wkpname, u_mtrl_wkp.lastdays, u_mtrl_wkp.dscrp, u_mtrl_wkp.printid, u_mtrl_wkp.iflast From u_mtrl_wkp Where mtrlid = :ll_mtrlid; If sqlca.SQLCode <> 0 Then arg_msg = sqlca.SQLErrText Rollback; arg_msg = '复制车间交接流程失败,'+arg_msg rslt = 0 Goto ext End If End If //复制产品配置 If li_ifconfigure2 = 1 Then Insert Into u_mtrl_configure2 (scid, mtrlid, pzid, printid, pzcode, pzname, pzcodemx, pznamemx ) Select scid, :ll_mtrlid_copy, pzid, printid, pzcode, pzname, pzcodemx, pznamemx From u_mtrl_configure2 Where mtrlid = :ll_mtrlid; If sqlca.SQLCode <> 0 Then arg_msg = sqlca.SQLErrText Rollback; arg_msg = '复制产品配置失败,'+arg_msg rslt = 0 Goto ext End If End If //复制配置内容 String ls_code,ls_name,ls_ename,ls_dscrp Long ll_type,ll_DefaultPZ,ll_ifzj Decimal ld_planprice Long ll_new_cid Decimal ld_capacity,ld_capaparm If li_ifconfigure = 1 Then Declare cur_configure Cursor For Select u_mtrl_configure.code, u_mtrl_configure.name, u_mtrl_configure.ename, u_mtrl_configure.type, u_mtrl_configure.dscrp, u_mtrl_configure.DefaultPZ, u_mtrl_configure.ifzj, u_mtrl_configure.planprice, u_mtrl_configure.capacity, u_mtrl_configure.capaparm From u_mtrl_configure Where u_mtrl_configure.mtrlid = :ll_mtrlid; Open cur_configure; Fetch cur_configure Into :ls_code,:ls_name,:ls_ename,:ll_type,:ls_dscrp, :ll_DefaultPZ,:ll_ifzj,:ld_planprice,:ld_capacity,:ld_capaparm; Do While sqlca.SQLCode = 0 ll_new_cid = f_sys_scidentity(0,"u_mtrl_configure","cid",arg_msg,True,id_sqlca) If ll_new_cid <= 0 Then arg_msg = '复制配置内容失败,'+arg_msg rslt = 0 Goto ext End If Insert Into u_mtrl_configure (mtrlid, cid, code, name, ename, type, dscrp, defaultpz, ifzj, planprice, capacity, capaparm) Values( :ll_mtrlid_copy, :ll_new_cid, :ls_code, :ls_name, :ls_ename, :ll_type, :ls_dscrp, :ll_DefaultPZ, :ll_ifzj, :ld_planprice, :ld_capacity, :ld_capaparm); If sqlca.SQLCode <> 0 Then arg_msg = sqlca.SQLErrText Rollback; arg_msg = '复制配置内容失败,'+arg_msg rslt = 0 Goto ext End If Fetch cur_configure Into :ls_code,:ls_name,:ls_ename,:ll_type,:ls_dscrp, :ll_DefaultPZ,:ll_ifzj,:ld_planprice,:ld_capacity,:ld_capaparm; Loop Close cur_configure; End If //复制物料清单 If li_ifbom = 1 Then If sys_option_bom_affirm = 1 Then li_affirmflag = 1 Else li_affirmflag = 0 End If If arg_s_mtrl.Mtrlorigin = 2 Then li_flag = 1 Else li_flag = 0 End If Insert Into u_mtrl_pf (mtrlid, pfcode, Dscrp, Ifdi, Ifdft, inuse, opdate, opemp, affirmflag, flag, wrkid) Select :ll_mtrlid_copy, u_mtrl_pf.pfcode, u_mtrl_pf.Dscrp, u_mtrl_pf.Ifdi, u_mtrl_pf.Ifdft, 1, getdate(), :publ_operator, :li_affirmflag, :li_flag, u_mtrl_pf.wrkid From u_mtrl_pf Where mtrlid = :ll_mtrlid And inuse = 1; If sqlca.SQLCode <> 0 Then arg_msg = sqlca.SQLErrText Rollback; arg_msg = '复制物料清单失败,'+arg_msg rslt = 0 Goto ext End If //复制物料清单明细 Insert Into u_PrdPF (mtrlid, pfcode, pfgroup, SonMtrlid, ifreputate, ifover, updownrate, Sonscale, SonLoss, SonDECLosS, Sonahead, dscrp, pfgroupqty, pfgroupmode, promode, printid, wrkgrpid, status, sonpfcode, woodcode, pcode, mtrlkind, baseqty, sonlossstr, buyarg, pfklmode, wenli, fengbian, paikong, luoji, penyou) Select :ll_mtrlid_copy, u_PrdPF.pfcode, u_PrdPF.pfgroup, u_PrdPF.SonMtrlid, u_PrdPF.ifreputate, u_PrdPF.ifover, u_PrdPF.updownrate, u_PrdPF.Sonscale, u_PrdPF.SonLoss, u_PrdPF.SonDECLosS, u_PrdPF.Sonahead, u_PrdPF.dscrp, u_PrdPF.pfgroupqty, u_PrdPF.pfgroupmode, u_PrdPF.promode, u_PrdPF.printid, u_PrdPF.wrkgrpid, u_PrdPF.status, u_PrdPF.sonpfcode, u_PrdPF.woodcode, u_PrdPF.pcode, u_PrdPF.mtrlkind, u_PrdPF.baseqty, u_PrdPF.sonlossstr, u_PrdPF.buyarg, u_PrdPF.pfklmode, u_PrdPF.wenli, u_PrdPF.fengbian, u_PrdPF.paikong, u_PrdPF.luoji, u_PrdPF.penyou From u_PrdPF, u_mtrl_pf Where ( u_PrdPF.mtrlid = u_mtrl_pf.Mtrlid ) And ( u_PrdPF.pfcode = u_mtrl_pf.pfcode ) And ( u_mtrl_pf.mtrlid = :ll_mtrlid ) And ( u_mtrl_pf.inuse = 1 ); If sqlca.SQLCode <> 0 Then arg_msg = sqlca.SQLErrText Rollback; arg_msg = '复制物料清单明细失败,'+arg_msg rslt = 0 Goto ext End If Else //加常规清单 If arg_s_mtrl.statusflag <> 2 Then If sys_option_bom_affirm = 1 Then li_affirmflag = 1 Else li_affirmflag = 0 End If If arg_s_mtrl.Mtrlorigin = 2 Then li_flag = 1 Else li_flag = 0 End If Insert Into u_mtrl_pf (mtrlid, pfcode, Dscrp, Ifdi, Ifdft, inuse, opdate, opemp, affirmflag, flag, wrkid) Values( :ll_mtrlid_copy, '[常规]', '', 0, 1, 1, getdate(), :publ_operator, :li_affirmflag, :li_flag, :arg_s_mtrl.dftwrkGrpid); If sqlca.SQLCode <> 0 Then arg_msg = sqlca.SQLErrText Rollback; arg_msg = '加物料常规清单失败,'+arg_msg rslt = 0 Goto ext End If End If End If /////////////// // If li_ifsl = 1 Then Select count(*) Into :cnt From u_mtrldef_sl Where mtrlid = :ll_mtrlid_copy; If sqlca.SQLCode <> 0 Then arg_msg = sqlca.SQLErrText Rollback; arg_msg = '查询注塑报价及质检参数失败,'+arg_msg rslt = 0 Goto ext End If If cnt = 0 Then Insert Into u_mtrldef_sl (u_mtrldef_sl.mtrlid, u_mtrldef_sl.waterweight, u_mtrldef_sl.period, u_mtrldef_sl.sk_mtrltypeid, u_mtrldef_sl.physics, u_mtrldef_sl.chemistry, u_mtrldef_sl.equipmentid, u_mtrldef_sl.maxdissolve, u_mtrldef_sl.dryway, u_mtrldef_sl.watertran, u_mtrldef_sl.pushout , u_mtrldef_sl.colorprp) Select :ll_mtrlid_copy, u_mtrldef_sl.waterweight, u_mtrldef_sl.period, u_mtrldef_sl.sk_mtrltypeid, u_mtrldef_sl.physics, u_mtrldef_sl.chemistry, u_mtrldef_sl.equipmentid, u_mtrldef_sl.maxdissolve, u_mtrldef_sl.dryway, u_mtrldef_sl.watertran, u_mtrldef_sl.pushout , u_mtrldef_sl.colorprp From u_mtrldef_sl Where u_mtrldef_sl.mtrlid = :ll_mtrlid; If sqlca.SQLCode <> 0 Then arg_msg = sqlca.SQLErrText Rollback; arg_msg = '复制塑料属性失败,'+arg_msg rslt = 0 Goto ext End If Else Decimal waterweight Decimal period Long sk_mtrlid String sk_mtrlname Long sk_mtrltypeid String physics String chemistry Long equipmentid String maxdissolve String dryway String watertran String pushout Long colorprp Select u_mtrldef_sl.waterweight, u_mtrldef_sl.period, u_mtrldef_sl.sk_mtrltypeid, u_mtrldef_sl.physics, u_mtrldef_sl.chemistry, u_mtrldef_sl.equipmentid, u_mtrldef_sl.maxdissolve, u_mtrldef_sl.dryway, u_mtrldef_sl.watertran, u_mtrldef_sl.pushout , u_mtrldef_sl.colorprp Into :waterweight, :period, :sk_mtrltypeid, :physics, :chemistry, :equipmentid, :maxdissolve, :dryway, :watertran, :pushout, :colorprp From u_mtrldef_sl Where u_mtrldef_sl.mtrlid = :ll_mtrlid; If sqlca.SQLCode <> 0 Then arg_msg = sqlca.SQLErrText Rollback; arg_msg = '查询原塑料属性失败,'+arg_msg rslt = 0 Goto ext End If Update u_mtrldef_sl Set u_mtrldef_sl.waterweight = :waterweight, u_mtrldef_sl.period = :period, u_mtrldef_sl.sk_mtrltypeid = :sk_mtrltypeid, u_mtrldef_sl.physics = :physics, u_mtrldef_sl.chemistry = :chemistry, u_mtrldef_sl.equipmentid = :equipmentid, u_mtrldef_sl.maxdissolve = :maxdissolve, u_mtrldef_sl.dryway = :dryway, u_mtrldef_sl.watertran = :watertran, u_mtrldef_sl.pushout = :pushout , u_mtrldef_sl.colorprp = :colorprp Where u_mtrldef_sl.mtrlid = :ll_mtrlid_copy; If sqlca.SQLCode <> 0 Then arg_msg = sqlca.SQLErrText Rollback; arg_msg = '复制塑料属性失败,'+arg_msg rslt = 0 Goto ext End If End If End If If li_ifquote = 1 Then Select count(*) Into :cnt From u_mtrldef_sl Where mtrlid = :ll_mtrlid_copy; If sqlca.SQLCode <> 0 Then arg_msg = sqlca.SQLErrText Rollback; arg_msg = '查询注塑报价及质检参数失败,'+arg_msg rslt = 0 Goto ext End If If cnt = 0 Then Insert Into u_mtrldef_sl (u_mtrldef_sl.mtrlid, u_mtrldef_sl.Pigment_price, u_mtrldef_sl.Pigment_weight, u_mtrldef_sl.Trans_price, u_mtrldef_sl.Trans_qty, u_mtrldef_sl.Tax_rate, u_mtrldef_sl.Discount_rate, u_mtrldef_sl.profit_margin, u_mtrldef_sl.Exprice, u_mtrldef_sl.Pack_price, u_mtrldef_sl.Consultqty, u_mtrldef_sl.Materialwaste, u_mtrldef_sl.discount_price, u_mtrldef_sl.Color_st, u_mtrldef_sl.Look_st, u_mtrldef_sl.Size_st, u_mtrldef_sl.Conjugation_st, u_mtrldef_sl.Annex1_st, u_mtrldef_sl.Annex2_st, u_mtrldef_sl.Color_way, u_mtrldef_sl.Look_way, u_mtrldef_sl.Size_way, u_mtrldef_sl.Conjugation_way, u_mtrldef_sl.Annex1_way, u_mtrldef_sl.Annex2_way, u_mtrldef_sl.vmtrlid) Select :ll_mtrlid_copy, u_mtrldef_sl.Pigment_price, u_mtrldef_sl.Pigment_weight, u_mtrldef_sl.Trans_price, u_mtrldef_sl.Trans_qty, u_mtrldef_sl.Tax_rate, u_mtrldef_sl.Discount_rate, u_mtrldef_sl.profit_margin, u_mtrldef_sl.Exprice, u_mtrldef_sl.Pack_price, u_mtrldef_sl.Consultqty, u_mtrldef_sl.Materialwaste, u_mtrldef_sl.discount_price, u_mtrldef_sl.Color_st, u_mtrldef_sl.Look_st, u_mtrldef_sl.Size_st, u_mtrldef_sl.Conjugation_st, u_mtrldef_sl.Annex1_st, u_mtrldef_sl.Annex2_st, u_mtrldef_sl.Color_way, u_mtrldef_sl.Look_way, u_mtrldef_sl.Size_way, u_mtrldef_sl.Conjugation_way, u_mtrldef_sl.Annex1_way, u_mtrldef_sl.Annex2_way, u_mtrldef_sl.vmtrlid From u_mtrldef_sl Where u_mtrldef_sl.mtrlid = :ll_mtrlid; If sqlca.SQLCode <> 0 Then arg_msg = sqlca.SQLErrText Rollback; arg_msg = '复制注塑报价及质检参数失败,'+arg_msg rslt = 0 Goto ext End If Else Decimal Pigment_price Decimal Pigment_weight Decimal Trans_price Decimal Trans_qty Decimal Tax_rate Decimal Discount_rate Decimal profit_margin Decimal Exprice Decimal Pack_price Decimal Consultqty Decimal Materialwaste Decimal discount_price String Color_st String Look_st String Size_st String Conjugation_st String Annex1_st String Annex2_st String Color_way String Look_way String Size_way String Conjugation_way String Annex1_way String Annex2_way Long vmtrlid Select u_mtrldef_sl.Pigment_price, u_mtrldef_sl.Pigment_weight, u_mtrldef_sl.Trans_price, u_mtrldef_sl.Trans_qty, u_mtrldef_sl.Tax_rate, u_mtrldef_sl.Discount_rate, u_mtrldef_sl.profit_margin, u_mtrldef_sl.Exprice, u_mtrldef_sl.Pack_price, u_mtrldef_sl.Consultqty, u_mtrldef_sl.Materialwaste, u_mtrldef_sl.discount_price, u_mtrldef_sl.Color_st, u_mtrldef_sl.Look_st, u_mtrldef_sl.Size_st, u_mtrldef_sl.Conjugation_st, u_mtrldef_sl.Annex1_st, u_mtrldef_sl.Annex2_st, u_mtrldef_sl.Color_way, u_mtrldef_sl.Look_way, u_mtrldef_sl.Size_way, u_mtrldef_sl.Conjugation_way, u_mtrldef_sl.Annex1_way, u_mtrldef_sl.Annex2_way, u_mtrldef_sl.vmtrlid Into :Pigment_price, :Pigment_weight, :Trans_price, :Trans_qty, :Tax_rate, :Discount_rate, :profit_margin, :Exprice, :Pack_price, :Consultqty, :Materialwaste, :discount_price, :Color_st, :Look_st, :Size_st, :Conjugation_st, :Annex1_st, :Annex2_st, :Color_way, :Look_way, :Size_way, :Conjugation_way, :Annex1_way, :Annex2_way, :vmtrlid From u_mtrldef_sl Where u_mtrldef_sl.mtrlid = :ll_mtrlid; If sqlca.SQLCode <> 0 Then arg_msg = sqlca.SQLErrText Rollback; arg_msg = '查询原物料注塑报价及质检参数失败,'+arg_msg rslt = 0 Goto ext End If Update u_mtrldef_sl Set Pigment_price = :Pigment_price, Pigment_weight = :Pigment_weight, Trans_price = :Trans_price, Trans_qty = :Trans_qty, Tax_rate = :Tax_rate, Discount_rate = :Discount_rate, profit_margin = :profit_margin, Exprice = :Exprice, Pack_price = :Pack_price, Consultqty = :Consultqty, Materialwaste = :Materialwaste, discount_price = :discount_price, Color_st = :Color_st, Look_st = :Look_st, Size_st = :Size_st, Conjugation_st = :Conjugation_st, Annex1_st = :Annex1_st, Annex2_st = :Annex2_st, Color_way = :Color_way, Look_way = :Look_way, Size_way = :Size_way, Conjugation_way = :Conjugation_way, Annex1_way = :Annex1_way, Annex2_way = :Annex2_way, vmtrlid = :vmtrlid Where mtrlid = :ll_mtrlid_copy; If sqlca.SQLCode <> 0 Then arg_msg = sqlca.SQLErrText Rollback; arg_msg = '复制注塑报价及质检参数失败,'+arg_msg rslt = 0 Goto ext End If End If End If If li_iftechnics = 1 Then Insert Into u_mtrldef_gy (u_mtrldef_Gy.mtrlid, u_mtrldef_Gy.Quick_press, u_mtrldef_Gy.Quick_speed, u_mtrldef_Gy.Quick_site, u_mtrldef_Gy.Low_press, u_mtrldef_Gy.Low_speed, u_mtrldef_Gy.Low_site, u_mtrldef_Gy.High_press, u_mtrldef_Gy.High_speed, u_mtrldef_Gy.High_site, u_mtrldef_Gy.Diesink_1_press, u_mtrldef_Gy.Diesink_1_speed, u_mtrldef_Gy.Diesink_1_site, u_mtrldef_Gy.Diesink_quick_press, u_mtrldef_Gy.Diesink_quick_speed, u_mtrldef_Gy.Diesink_quick_site, u_mtrldef_Gy.Diesink_2_press, u_mtrldef_Gy.Diesink_2_speed, u_mtrldef_Gy.Diesink_2_site, u_mtrldef_Gy.Neutron_press, u_mtrldef_Gy.Neutron_speed, u_mtrldef_Gy.Neutron_site, u_mtrldef_Gy.Shoot_1_press, u_mtrldef_Gy.Shoot_1_speed, u_mtrldef_Gy.Shoot_1_site, u_mtrldef_Gy.Shoot_2_press, u_mtrldef_Gy.Shoot_2_speed, u_mtrldef_Gy.Shoot_2_site, u_mtrldef_Gy.Shoot_3_press, u_mtrldef_Gy.Shoot_3_speed, u_mtrldef_Gy.Shoot_3_site, u_mtrldef_Gy.Dwell_1_press, u_mtrldef_Gy.Dwell_1_speed, u_mtrldef_Gy.Dwell_2_press, u_mtrldef_Gy.Dwell_2_speed, u_mtrldef_Gy.Shoot_tem, u_mtrldef_Gy.One_tem, u_mtrldef_Gy.Two_tem, u_mtrldef_Gy.Three_tem, u_mtrldef_Gy.Four_tem, u_mtrldef_Gy.holdMold_tem, u_mtrldef_Gy.moveMold_tem, u_mtrldef_Gy.cooltime, u_mtrldef_Gy.Shoottime, u_mtrldef_Gy.Backpressure, u_mtrldef_Gy.Technics, u_mtrldef_Gy.Shoot_1_time, u_mtrldef_Gy.Shoot_2_time, u_mtrldef_Gy.Shoot_3_time, u_mtrldef_Gy.Dwell_1_time, u_mtrldef_Gy.Dwell_2_time) Select :ll_mtrlid_copy, u_mtrldef_Gy.Quick_press, u_mtrldef_Gy.Quick_speed, u_mtrldef_Gy.Quick_site, u_mtrldef_Gy.Low_press, u_mtrldef_Gy.Low_speed, u_mtrldef_Gy.Low_site, u_mtrldef_Gy.High_press, u_mtrldef_Gy.High_speed, u_mtrldef_Gy.High_site, u_mtrldef_Gy.Diesink_1_press, u_mtrldef_Gy.Diesink_1_speed, u_mtrldef_Gy.Diesink_1_site, u_mtrldef_Gy.Diesink_quick_press, u_mtrldef_Gy.Diesink_quick_speed, u_mtrldef_Gy.Diesink_quick_site, u_mtrldef_Gy.Diesink_2_press, u_mtrldef_Gy.Diesink_2_speed, u_mtrldef_Gy.Diesink_2_site, u_mtrldef_Gy.Neutron_press, u_mtrldef_Gy.Neutron_speed, u_mtrldef_Gy.Neutron_site, u_mtrldef_Gy.Shoot_1_press, u_mtrldef_Gy.Shoot_1_speed, u_mtrldef_Gy.Shoot_1_site, u_mtrldef_Gy.Shoot_2_press, u_mtrldef_Gy.Shoot_2_speed, u_mtrldef_Gy.Shoot_2_site, u_mtrldef_Gy.Shoot_3_press, u_mtrldef_Gy.Shoot_3_speed, u_mtrldef_Gy.Shoot_3_site, u_mtrldef_Gy.Dwell_1_press, u_mtrldef_Gy.Dwell_1_speed, u_mtrldef_Gy.Dwell_2_press, u_mtrldef_Gy.Dwell_2_speed, u_mtrldef_Gy.Shoot_tem, u_mtrldef_Gy.One_tem, u_mtrldef_Gy.Two_tem, u_mtrldef_Gy.Three_tem, u_mtrldef_Gy.Four_tem, u_mtrldef_Gy.holdMold_tem, u_mtrldef_Gy.moveMold_tem, u_mtrldef_Gy.cooltime, u_mtrldef_Gy.Shoottime, u_mtrldef_Gy.Backpressure, u_mtrldef_Gy.Technics, u_mtrldef_Gy.Shoot_1_time, u_mtrldef_Gy.Shoot_2_time, u_mtrldef_Gy.Shoot_3_time, u_mtrldef_Gy.Dwell_1_time, u_mtrldef_Gy.Dwell_2_time From u_mtrldef_Gy Where u_mtrldef_gy.mtrlid = :ll_mtrlid; If sqlca.SQLCode <> 0 Then arg_msg = sqlca.SQLErrText Rollback; arg_msg = '复制工艺参数失败,'+arg_msg rslt = 0 Goto ext End If End If If li_ifother = 1 Then Insert Into u_mtrl_other (u_mtrl_other.mtrlid, u_mtrl_other.length_in, u_mtrl_other.length_out, u_mtrl_other.width_in, u_mtrl_other.width_out, u_mtrl_other.height_in, u_mtrl_other.height_out, u_mtrl_other.cubage_in, u_mtrl_other.cubage_out, u_mtrl_other.nw_in, u_mtrl_other.nw_out, u_mtrl_other.gw_in, u_mtrl_other.gw_out, u_mtrl_other.material_in, u_mtrl_other.material_out, u_mtrl_other.dscrp_in, u_mtrl_other.dscrp_out, u_mtrl_other.qty_40, u_mtrl_other.box_40, u_mtrl_other.qty_40hq, u_mtrl_other.box_40hq, u_mtrl_other.qty_20, u_mtrl_other.box_20, u_mtrl_other.clause_1, u_mtrl_other.clause_2, u_mtrl_other.clause_3, u_mtrl_other.clause_4 , u_mtrl_other.dscrp) Select :ll_mtrlid_copy, u_mtrl_other.length_in, u_mtrl_other.length_out, u_mtrl_other.width_in, u_mtrl_other.width_out, u_mtrl_other.height_in, u_mtrl_other.height_out, u_mtrl_other.cubage_in, u_mtrl_other.cubage_out, u_mtrl_other.nw_in, u_mtrl_other.nw_out, u_mtrl_other.gw_in, u_mtrl_other.gw_out, u_mtrl_other.material_in, u_mtrl_other.material_out, u_mtrl_other.dscrp_in, u_mtrl_other.dscrp_out, u_mtrl_other.qty_40, u_mtrl_other.box_40, u_mtrl_other.qty_40hq, u_mtrl_other.box_40hq, u_mtrl_other.qty_20, u_mtrl_other.box_20, u_mtrl_other.clause_1, u_mtrl_other.clause_2, u_mtrl_other.clause_3, u_mtrl_other.clause_4 , u_mtrl_other.dscrp From u_mtrl_other Where u_mtrl_other.mtrlid = :ll_mtrlid; If sqlca.SQLCode <> 0 Then arg_msg = sqlca.SQLErrText Rollback; arg_msg = '复制包装参数失败,'+arg_msg rslt = 0 Goto ext End If End If If li_model = 1 Then Insert Into u_model_mtrl (mtrlid, modelid, printid, modelqty, ifdft, dscrp) Select :ll_mtrlid_copy, modelid, printid, modelqty, ifdft, dscrp From u_model_mtrl Where mtrlid = :ll_mtrlid; If sqlca.SQLCode <> 0 Then arg_msg = sqlca.SQLErrText Rollback; arg_msg = '复制产品相关模具资料失败,'+arg_msg rslt = 0 Goto ext End If End If //插入纸箱类型 Insert Into u_mtrldef_add_property (mtrlid, Zxtypeid) Select :ll_mtrlid_copy, Zxtypeid From u_mtrldef_add_property Where mtrlid = :ll_mtrlid; If sqlca.SQLCode <> 0 Then arg_msg = sqlca.SQLErrText Rollback; arg_msg = '复制产品相关纸箱类型资料失败,'+arg_msg rslt = 0 Goto ext End If Commit; arg_s_return = arg_s_mtrl arg_s_return.mtrlid = ll_mtrlid_copy arg_s_return.mtrlcode = ls_mtrlcode arg_s_return.mtrlname = ls_mtrlname ext: Destroy uo_mtrl Return rslt end function global function integer f_mtrl_add_copy_with_commit (s_edit_index_tran arg_s_tran, ref string arg_msg, ref s_mtrldef arg_s_return, boolean arg_ifcommit);Int rslt = 1 Long ll_mtrlid Int li_ifstorage,li_ifbom,li_ifworkprice,li_ifspt Int li_wrk,li_ifconfigure2,li_ifconfigure Int li_ifsl = 0,li_ifquote = 0,li_iftechnics = 0,li_ifother = 0,li_model = 0 String ls_mtrlcode,ls_mtrlname Long ll_mtrlid_copy Int li_affirmflag,li_flag Long cnt string ls_mtrlmode,ls_mtrlsectype,ls_zxmtrlmode,ls_usermtrlmode ll_mtrlid = arg_s_tran.a_long ls_mtrlcode = arg_s_tran.b_string ls_mtrlname = arg_s_tran.c_string ls_mtrlmode = arg_s_tran.d_string ls_mtrlsectype = arg_s_tran.e_string ls_zxmtrlmode = arg_s_tran.f_string ls_usermtrlmode = arg_s_tran.g_string li_ifstorage = arg_s_tran.b_long li_ifbom = arg_s_tran.c_long li_ifworkprice = arg_s_tran.d_long li_wrk = arg_s_tran.e_long li_ifconfigure2 = arg_s_tran.f_long li_ifconfigure = arg_s_tran.g_long li_ifspt = arg_s_tran.h_long li_ifsl = arg_s_tran.i_long li_ifquote = arg_s_tran.j_long li_iftechnics = arg_s_tran.k_long li_ifother = arg_s_tran.l_long li_model = arg_s_tran.m_long IF Trim(ls_mtrlcode) = '' THEN rslt = 0 arg_msg = '新物料编码不能为空' GOTO ext END IF uo_mtrldef uo_mtrl uo_mtrl = Create uo_mtrldef s_mtrldef arg_s_mtrl SELECT u_mtrldef.mtrlsectype, u_mtrldef.mtrlmode, u_mtrldef.unit, u_mtrldef.dscrp, u_mtrldef.lmbuyprice, u_mtrldef.LMsaleprice, u_mtrldef.prdpackcode, u_mtrldef.packqty, u_mtrldef.zxmtrlmode, u_mtrldef.unit_buy, u_mtrldef.rate_buy, u_mtrldef.unit_scll, u_mtrldef.rate_scll, u_mtrldef.unit_sale, u_mtrldef.rate_sale, u_mtrldef.orderdays, u_mtrldef.buydays, u_mtrldef.wfjgdays, u_mtrldef.minbuyqty, u_mtrldef.aheaddays, u_mtrldef.ifselforder, u_mtrldef.mprice, u_mtrldef.Mtrlorigin, u_mtrldef.mtrlkind, u_mtrldef.lspacklimit, u_mtrldef.MaxQTY, u_mtrldef.MinQTY, u_mtrldef.isuse, u_mtrldef.mtrltypeid, u_mtrldef.barcode, u_mtrldef.net_weight, u_mtrldef.gross_weight, u_mtrldef.cubage, u_mtrldef.mtrlengname, u_mtrldef.scllflag, u_mtrldef.dftwrkGrpid, u_mtrldef.scid, u_mtrldef.ifscid, u_mtrldef.mtrlprp, u_mtrldef.uprate, u_mtrldef.upqty, u_mtrldef.ordertype, u_mtrldef.statusflag, u_mtrldef.statustype, u_mtrldef.woodcodeflag, u_mtrldef.woodcodetype, u_mtrldef.pcodeflag, u_mtrldef.pcodetype, u_mtrldef.mtrlarea, u_mtrldef.dftsptid, u_mtrldef.mtrlarea1, u_mtrldef.mtrlarea2, u_mtrldef.iflimitprice, u_mtrldef.configcode, u_mtrldef.autoinstall, u_mtrldef.ifpack, u_mtrldef.configname, u_mtrldef.ifpackpro, u_mtrldef.mtrlcolor, u_mtrldef.configcodetype, u_mtrldef.ifautodd, u_mtrldef.iflljg, u_mtrldef.ifunit, u_mtrldef.ifpackpz, u_mtrldef.ifpacktype, u_mtrldef.scllrate, u_mtrldef.cmpqty, u_mtrldef.usermtrlmode, u_mtrldef.storagetype, u_mtrldef.ifmtrlcuscode, u_mtrldef.mrptype, u_mtrldef.mrparg, u_mtrldef.updownprice, u_mtrldef.outtype, u_mtrldef.ifpricepack, u_mtrldef.gydscrp, u_mtrldef.downrate, u_mtrldef.ifcustom, u_mtrldef.buyunit, u_mtrldef.wfjgunit, u_mtrldef.scllunit, u_mtrldef.saleunit, u_mtrldef.buydec, u_mtrldef.wfjgdec, u_mtrldef.sclldec, u_mtrldef.saledec, u_mtrldef.issuliao, isnull(u_mtrldef_sl.period,0), u_mtrldef.ifenough, u_mtrldef.capacity, u_mtrldef.expday, u_mtrldef.capaparm, u_mtrldef.sctaskqty, u_mtrldef.minarg, u_mtrldef.maxarg, u_mtrldef.mindays, u_mtrldef.maxdays, u_mtrldef.status_check, u_mtrldef.woodcode_check, u_mtrldef.pcode_check, u_mtrldef.ifmrppackpf, u_mtrldef.eoq, u_mtrldef.splitrate, u_mtrldef.maxzjday, u_mtrldef.mrp_unit, u_mtrldef.rebuytype, u_mtrldef.rebuylot, u_mtrldef.ifsendlot, u_mtrldef.upddrate, u_mtrldef.upddqty, u_mtrldef.upsalerate, u_mtrldef.upsaleqty, u_mtrldef.ifusedeliqty, u_mtrldef.status_config, u_mtrldef.woodcode_config, u_mtrldef.pcode_config, u_mtrldef.pricepztype, u_mtrldef.useday, u_mtrldef.equiptype, u_mtrldef.ifpackpro2, u_mtrldef.ifkl, u_mtrldef.ifturn, u_mtrldef.iffp, u_mtrldef.scllqty, u_mtrldef.piccode, u_mtrldef.dftscllwkpid, u_mtrldef.if_hourpay, u_mtrldef.ifmrp, u_mtrldef.if_inherit, u_mtrldef.groupstr, u_mtrldef.groupday, u_mtrldef.aps_capacity_type, u_mtrldef.checkrate, u_mtrldef.scllplan_mode, u_mtrldef.chkpassrate, u_mtrldef.price_ifpz, u_mtrldef.dftcusid, u_mtrldef.sendtype, u_mtrldef.mb_mtrlid, u_mtrldef.buy_ceiling, u_mtrldef.wfjg_ceiling, u_mtrldef.sale_ceiling, u_mtrldef.scll_ceiling, u_mtrldef.material, u_mtrldef.adddec, u_mtrldef.ifbarcodefp, u_mtrldef.stoppqty, u_mtrldef.buy_autoday, u_mtrldef.upbuyrate, u_mtrldef.upbuyqty, u_mtrldef.ifrebuypack, u_mtrldef.protype, u_mtrldef.mtrltype, u_mtrldef.ifcheck, u_mtrldef.buydays_bx, u_mtrldef.wfjgdays_bx, u_mtrldef.multqty, u_mtrldef.multtype, u_mtrldef.buyer, u_mtrldef.bantype, u_mtrldef.midu INTO :arg_s_mtrl.mtrlsectype, :arg_s_mtrl.mtrlmode, :arg_s_mtrl.unit, :arg_s_mtrl.dscrp, :arg_s_mtrl.lmbuyprice, :arg_s_mtrl.lmsaleprice, :arg_s_mtrl.prdpackcode, :arg_s_mtrl.packqty, :arg_s_mtrl.zxmtrlmode, :arg_s_mtrl.unit_buy, :arg_s_mtrl.rate_buy, :arg_s_mtrl.unit_scll, :arg_s_mtrl.rate_scll, :arg_s_mtrl.unit_sale, :arg_s_mtrl.rate_sale, :arg_s_mtrl.orderdays, :arg_s_mtrl.buydays, :arg_s_mtrl.wfjgdays, :arg_s_mtrl.minbuyqty, :arg_s_mtrl.aheaddays, :arg_s_mtrl.ifselforder, :arg_s_mtrl.mprice, :arg_s_mtrl.mtrlorigin, :arg_s_mtrl.mtrlkind, :arg_s_mtrl.lspacklimit, :arg_s_mtrl.maxqty, :arg_s_mtrl.minqty, :arg_s_mtrl.isuse, :arg_s_mtrl.mtrltypeid, :arg_s_mtrl.barcode, :arg_s_mtrl.net_weight, :arg_s_mtrl.gross_weight, :arg_s_mtrl.cubage, :arg_s_mtrl.mtrlengname, :arg_s_mtrl.scllflag, :arg_s_mtrl.dftwrkgrpid, :arg_s_mtrl.scid, :arg_s_mtrl.ifscid, :arg_s_mtrl.mtrlprp, :arg_s_mtrl.uprate, :arg_s_mtrl.upqty, :arg_s_mtrl.ordertype, :arg_s_mtrl.statusflag, :arg_s_mtrl.statustype, :arg_s_mtrl.woodcodeflag, :arg_s_mtrl.woodcodetype, :arg_s_mtrl.pcodeflag, :arg_s_mtrl.pcodetype, :arg_s_mtrl.mtrlarea, :arg_s_mtrl.dftsptid, :arg_s_mtrl.mtrlarea1, :arg_s_mtrl.mtrlarea2, :arg_s_mtrl.iflimitprice, :arg_s_mtrl.configcode, :arg_s_mtrl.autoinstall, :arg_s_mtrl.ifpack, :arg_s_mtrl.configname, :arg_s_mtrl.ifpackpro, :arg_s_mtrl.mtrlcolor, :arg_s_mtrl.configcodetype, :arg_s_mtrl.ifautodd, :arg_s_mtrl.iflljg, :arg_s_mtrl.ifunit, :arg_s_mtrl.ifpackpz, :arg_s_mtrl.ifpacktype, :arg_s_mtrl.scllrate, :arg_s_mtrl.cmpqty, :arg_s_mtrl.usermtrlmode, :arg_s_mtrl.storagetype, :arg_s_mtrl.ifmtrlcuscode, :arg_s_mtrl.mrptype, :arg_s_mtrl.mrparg, :arg_s_mtrl.updownprice, :arg_s_mtrl.outtype, :arg_s_mtrl.ifpricepack, :arg_s_mtrl.gydscrp, :arg_s_mtrl.downrate, :arg_s_mtrl.ifcustom, :arg_s_mtrl.buyunit, :arg_s_mtrl.wfjgunit, :arg_s_mtrl.scllunit, :arg_s_mtrl.saleunit, :arg_s_mtrl.buydec, :arg_s_mtrl.wfjgdec, :arg_s_mtrl.sclldec, :arg_s_mtrl.saledec, :arg_s_mtrl.issuliao, :arg_s_mtrl.period, :arg_s_mtrl.ifenough, :arg_s_mtrl.capacity, :arg_s_mtrl.expday, :arg_s_mtrl.capaparm, :arg_s_mtrl.sctaskqty, :arg_s_mtrl.minarg, :arg_s_mtrl.maxarg, :arg_s_mtrl.mindays, :arg_s_mtrl.maxdays, :arg_s_mtrl.status_check, :arg_s_mtrl.woodcode_check, :arg_s_mtrl.pcode_check, :arg_s_mtrl.ifmrppackpf, :arg_s_mtrl.eoq, :arg_s_mtrl.splitrate, :arg_s_mtrl.maxzjday, :arg_s_mtrl.mrp_unit, :arg_s_mtrl.rebuytype, :arg_s_mtrl.rebuylot, :arg_s_mtrl.ifsendlot, :arg_s_mtrl.upddrate, :arg_s_mtrl.upddqty, :arg_s_mtrl.upsalerate, :arg_s_mtrl.upsaleqty, :arg_s_mtrl.ifusedeliqty, :arg_s_mtrl.status_config, :arg_s_mtrl.woodcode_config, :arg_s_mtrl.pcode_config, :arg_s_mtrl.pricepztype, :arg_s_mtrl.useday, :arg_s_mtrl.equiptype, :arg_s_mtrl.ifpackpro2, :arg_s_mtrl.ifkl, :arg_s_mtrl.ifturn, :arg_s_mtrl.iffp, :arg_s_mtrl.scllqty, :arg_s_mtrl.piccode, :arg_s_mtrl.dftscllwkpid, :arg_s_mtrl.if_hourpay, :arg_s_mtrl.ifmrp, :arg_s_mtrl.if_inherit, :arg_s_mtrl.groupstr, :arg_s_mtrl.groupday, :arg_s_mtrl.aps_capacity_type, :arg_s_mtrl.checkrate, :arg_s_mtrl.scllplan_mode, :arg_s_mtrl.chkpassrate, :arg_s_mtrl.price_ifpz, :arg_s_mtrl.dftcusid, :arg_s_mtrl.sendtype, :arg_s_mtrl.mb_mtrlid, :arg_s_mtrl.buy_ceiling, :arg_s_mtrl.wfjg_ceiling, :arg_s_mtrl.sale_ceiling, :arg_s_mtrl.scll_ceiling, :arg_s_mtrl.material, :arg_s_mtrl.adddec, :arg_s_mtrl.ifbarcodefp, :arg_s_mtrl.stoppqty, :arg_s_mtrl.buy_autoday, :arg_s_mtrl.upbuyrate, :arg_s_mtrl.upbuyqty, :arg_s_mtrl.ifrebuypack, :arg_s_mtrl.protype, :arg_s_mtrl.mtrltype, :arg_s_mtrl.ifcheck, :arg_s_mtrl.buydays_bx, :arg_s_mtrl.wfjgdays_bx, :arg_s_mtrl.multqty, :arg_s_mtrl.multtype, :arg_s_mtrl.buyer, :arg_s_mtrl.bantype, :arg_s_mtrl.midu FROM u_mtrldef LEFT OUTER JOIN u_mtrldef_sl ON u_mtrldef.mtrlid = u_mtrldef_sl.mtrlid Where u_mtrldef.mtrlid = :ll_mtrlid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询物料原资料失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF arg_s_mtrl.mtrlid = 0 arg_s_mtrl.mtrlcode = ls_mtrlcode arg_s_mtrl.mtrlname = ls_mtrlname if ls_mtrlmode <> '' then arg_s_mtrl.mtrlmode= ls_mtrlmode end if if ls_mtrlsectype <> '' then arg_s_mtrl.mtrlsectype= ls_mtrlsectype end if if ls_zxmtrlmode <> '' then arg_s_mtrl.zxmtrlmode = ls_zxmtrlmode end if if ls_usermtrlmode <> '' then arg_s_mtrl.usermtrlmode= ls_usermtrlmode end if //If arg_s_mtrl.Mtrlorigin = 0 Then // If arg_s_mtrl.ifselforder = 0 Then // arg_s_mtrl.ifselforder = 2 // End If //End If IF li_ifspt = 0 THEN arg_s_mtrl.dftsptid = 0 END IF IF arg_s_mtrl.issuliao = 1 THEN SELECT sk_mtrlid,period INTO :arg_s_mtrl.skmtrlid,:arg_s_mtrl.period FROM u_mtrldef_sl Where mtrlid = :ll_mtrlid; IF sqlca.SQLCode <> 0 THEN arg_s_mtrl.sk_mtrltypeid = 0 arg_s_mtrl.period = 0 END IF //ElseIf arg_s_mtrl.issuliao = 5 or arg_s_mtrl.issuliao = 8 Then // Select Zxtypeid // Into :arg_s_mtrl.skmtrlid // From u_mtrldef_add_property // Where mtrlid = :ll_mtrlid; // If sqlca.SQLCode <> 0 Then // arg_s_mtrl.sk_mtrltypeid = 0 // arg_s_mtrl.period = 0 // End If ELSE arg_s_mtrl.skmtrlid = 0 arg_s_mtrl.period = 0 END IF IF uo_mtrl.uof_add_mtrl(arg_s_mtrl,publ_operator,arg_msg,False) = 0 THEN arg_msg = "建立新物料资料操作失败,"+arg_msg rslt = 0 GOTO ext END IF //新物料ID ll_mtrlid_copy = uo_mtrl.uo_mtrlid INSERT INTO u_mtrldef_ban (mtrlid, promode, wenli, fengbian, paikong, luoji, penyou, gydscrp, direction, pfklmode) SELECT :ll_mtrlid_copy, promode, wenli, fengbian, paikong, luoji, penyou, gydscrp, direction, pfklmode FROM u_mtrldef_ban Where mtrlid = :ll_mtrlid; IF sqlca.SQLCode <> 0 THEN arg_msg = sqlca.SQLErrText ROLLBACK; arg_msg = '复制物料板件信息失败,'+arg_msg rslt = 0 GOTO ext END IF //复制存放仓库 IF li_ifstorage = 1 THEN INSERT INTO u_mtrl_storage (mtrlid,storageid) SELECT :ll_mtrlid_copy,storageid FROM u_mtrl_storage Where mtrlid = :ll_mtrlid; IF sqlca.SQLCode <> 0 THEN arg_msg = sqlca.SQLErrText ROLLBACK; arg_msg = '复制物料存放仓库失败,'+arg_msg rslt = 0 GOTO ext END IF END IF //复制工价表 IF li_ifworkprice = 1 THEN INSERT INTO u_mtrl_workprice (mtrlid, wrkid, opdate, opemp, wpcode, Ifdft) SELECT :ll_mtrlid_copy, wrkid, getdate(), :publ_operator, wpcode, Ifdft FROM u_mtrl_workprice Where mtrlid = :ll_mtrlid; IF sqlca.SQLCode <> 0 THEN arg_msg = sqlca.SQLErrText ROLLBACK; arg_msg = '复制物料车间工价表失败,'+arg_msg rslt = 0 GOTO ext END IF INSERT INTO u_sc_workprice (mtrlid, proid, Proorder, procode, Proname, wrkGrpid, workPrice, worklevel, Techlevel, Workhour, dscrp, sumflag, Lastflag, workqty, olworkprice, ifownpro, lsxtype, ifstandard, status, workdays, wrkid, utcode, wpcode) SELECT :ll_mtrlid_copy, u_sc_workprice.proid, u_sc_workprice.Proorder, u_sc_workprice.procode, u_sc_workprice.Proname, u_sc_workprice.wrkGrpid, u_sc_workprice.workPrice, u_sc_workprice.worklevel, u_sc_workprice.Techlevel, u_sc_workprice.Workhour, u_sc_workprice.dscrp, u_sc_workprice.sumflag, u_sc_workprice.Lastflag, u_sc_workprice.workqty, u_sc_workprice.olworkprice, u_sc_workprice.ifownpro, u_sc_workprice.lsxtype, u_sc_workprice.ifstandard, u_sc_workprice.status, u_sc_workprice.workdays, u_sc_workprice.wrkid, u_sc_workprice.utcode, u_sc_workprice.wpcode FROM u_sc_workprice Where mtrlid = :ll_mtrlid; IF sqlca.SQLCode <> 0 THEN arg_msg = sqlca.SQLErrText ROLLBACK; arg_msg = '复制物料工价表失败,'+arg_msg rslt = 0 GOTO ext END IF ELSE IF arg_s_mtrl.Mtrlorigin = 0 THEN INSERT INTO u_mtrl_workprice (mtrlid, wrkid, opdate, opemp, wpcode, Ifdft) SELECT top 1 :ll_mtrlid_copy, :arg_s_mtrl.dftwrkGrpid, getdate(), :publ_operator, '[常规]', 1 FROM u_mtrl_workprice Where mtrlid = :ll_mtrlid; IF sqlca.SQLCode <> 0 THEN arg_msg = sqlca.SQLErrText ROLLBACK; arg_msg = '加入物料默认工价表失败,'+arg_msg rslt = 0 GOTO ext END IF END IF END IF //复制车间交接流程 IF li_wrk = 1 THEN INSERT INTO u_mtrl_wkp (mtrlid, swkpid, owkpid, wkpname, lastdays, dscrp, printid, iflast) SELECT :ll_mtrlid_copy, u_mtrl_wkp.swkpid, u_mtrl_wkp.owkpid, u_mtrl_wkp.wkpname, u_mtrl_wkp.lastdays, u_mtrl_wkp.dscrp, u_mtrl_wkp.printid, u_mtrl_wkp.iflast FROM u_mtrl_wkp Where mtrlid = :ll_mtrlid; IF sqlca.SQLCode <> 0 THEN arg_msg = sqlca.SQLErrText ROLLBACK; arg_msg = '复制车间交接流程失败,'+arg_msg rslt = 0 GOTO ext END IF END IF //复制产品配置 IF li_ifconfigure2 = 1 THEN INSERT INTO u_mtrl_configure2 (scid, mtrlid, pzid, printid, pzcode, pzname, pzcodemx, pznamemx ) SELECT scid, :ll_mtrlid_copy, pzid, printid, pzcode, pzname, pzcodemx, pznamemx FROM u_mtrl_configure2 Where mtrlid = :ll_mtrlid; IF sqlca.SQLCode <> 0 THEN arg_msg = sqlca.SQLErrText ROLLBACK; arg_msg = '复制产品配置失败,'+arg_msg rslt = 0 GOTO ext END IF END IF //复制配置内容 String ls_code,ls_name,ls_ename,ls_dscrp Long ll_type,ll_DefaultPZ,ll_ifzj Decimal ld_planprice Long ll_new_cid Decimal ld_capacity,ld_capaparm IF li_ifconfigure = 1 THEN DECLARE cur_configure CURSOR FOR SELECT u_mtrl_configure.code, u_mtrl_configure.name, u_mtrl_configure.ename, u_mtrl_configure.type, u_mtrl_configure.dscrp, u_mtrl_configure.DefaultPZ, u_mtrl_configure.ifzj, u_mtrl_configure.planprice, u_mtrl_configure.capacity, u_mtrl_configure.capaparm FROM u_mtrl_configure Where u_mtrl_configure.mtrlid = :ll_mtrlid; OPEN cur_configure; FETCH cur_configure INTO :ls_code,:ls_name,:ls_ename,:ll_type,:ls_dscrp, :ll_DefaultPZ,:ll_ifzj,:ld_planprice,:ld_capacity,:ld_capaparm; DO WHILE sqlca.SQLCode = 0 ll_new_cid = f_sys_scidentity(0,"u_mtrl_configure","cid",arg_msg,True,id_sqlca) IF ll_new_cid <= 0 THEN arg_msg = '复制配置内容失败,'+arg_msg rslt = 0 GOTO ext END IF INSERT INTO u_mtrl_configure (mtrlid, cid, code, name, ename, type, dscrp, defaultpz, ifzj, planprice, capacity, capaparm) VALUES( :ll_mtrlid_copy, :ll_new_cid, :ls_code, :ls_name, :ls_ename, :ll_type, :ls_dscrp, :ll_DefaultPZ, :ll_ifzj, :ld_planprice, :ld_capacity, :ld_capaparm); IF sqlca.SQLCode <> 0 THEN arg_msg = sqlca.SQLErrText ROLLBACK; arg_msg = '复制配置内容失败,'+arg_msg rslt = 0 GOTO ext END IF FETCH cur_configure INTO :ls_code,:ls_name,:ls_ename,:ll_type,:ls_dscrp, :ll_DefaultPZ,:ll_ifzj,:ld_planprice,:ld_capacity,:ld_capaparm; LOOP CLOSE cur_configure; END IF //复制物料清单 IF li_ifbom = 1 THEN IF sys_option_bom_affirm = 1 THEN li_affirmflag = 1 ELSE li_affirmflag = 0 END IF IF arg_s_mtrl.Mtrlorigin = 2 THEN li_flag = 1 ELSE li_flag = 0 END IF INSERT INTO u_mtrl_pf (mtrlid, pfcode, Dscrp, Ifdi, Ifdft, inuse, opdate, opemp, affirmflag, flag, wrkid) SELECT :ll_mtrlid_copy, u_mtrl_pf.pfcode, u_mtrl_pf.Dscrp, u_mtrl_pf.Ifdi, u_mtrl_pf.Ifdft, 1, getdate(), :publ_operator, :li_affirmflag, :li_flag, u_mtrl_pf.wrkid FROM u_mtrl_pf WHERE mtrlid = :ll_mtrlid And inuse = 1; IF sqlca.SQLCode <> 0 THEN arg_msg = sqlca.SQLErrText ROLLBACK; arg_msg = '复制物料清单失败,'+arg_msg rslt = 0 GOTO ext END IF //复制物料清单明细 INSERT INTO u_PrdPF (mtrlid, pfcode, pfgroup, SonMtrlid, ifreputate, ifover, updownrate, Sonscale, SonLoss, SonDECLosS, Sonahead, dscrp, pfgroupqty, pfgroupmode, promode, printid, wrkgrpid, status, sonpfcode, woodcode, pcode, mtrlkind, baseqty, sonlossstr, buyarg, pfklmode, wenli, fengbian, paikong, luoji, penyou) SELECT :ll_mtrlid_copy, u_PrdPF.pfcode, u_PrdPF.pfgroup, u_PrdPF.SonMtrlid, u_PrdPF.ifreputate, u_PrdPF.ifover, u_PrdPF.updownrate, u_PrdPF.Sonscale, u_PrdPF.SonLoss, u_PrdPF.SonDECLosS, u_PrdPF.Sonahead, u_PrdPF.dscrp, u_PrdPF.pfgroupqty, u_PrdPF.pfgroupmode, u_PrdPF.promode, u_PrdPF.printid, u_PrdPF.wrkgrpid, u_PrdPF.status, u_PrdPF.sonpfcode, u_PrdPF.woodcode, u_PrdPF.pcode, u_PrdPF.mtrlkind, u_PrdPF.baseqty, u_PrdPF.sonlossstr, u_PrdPF.buyarg, u_PrdPF.pfklmode, u_PrdPF.wenli, u_PrdPF.fengbian, u_PrdPF.paikong, u_PrdPF.luoji, u_PrdPF.penyou FROM u_PrdPF, u_mtrl_pf WHERE ( u_PrdPF.mtrlid = u_mtrl_pf.Mtrlid ) AND ( u_PrdPF.pfcode = u_mtrl_pf.pfcode ) AND ( u_mtrl_pf.mtrlid = :ll_mtrlid ) And ( u_mtrl_pf.inuse = 1 ); IF sqlca.SQLCode <> 0 THEN arg_msg = sqlca.SQLErrText ROLLBACK; arg_msg = '复制物料清单明细失败,'+arg_msg rslt = 0 GOTO ext END IF ELSE //加常规清单 IF arg_s_mtrl.statusflag <> 2 THEN IF sys_option_bom_affirm = 1 THEN li_affirmflag = 1 ELSE li_affirmflag = 0 END IF IF arg_s_mtrl.Mtrlorigin = 2 THEN li_flag = 1 ELSE li_flag = 0 END IF INSERT INTO u_mtrl_pf (mtrlid, pfcode, Dscrp, Ifdi, Ifdft, inuse, opdate, opemp, affirmflag, flag, wrkid) VALUES( :ll_mtrlid_copy, '[常规]', '', 0, 1, 1, getdate(), :publ_operator, :li_affirmflag, :li_flag, :arg_s_mtrl.dftwrkGrpid); IF sqlca.SQLCode <> 0 THEN arg_msg = sqlca.SQLErrText ROLLBACK; arg_msg = '加物料常规清单失败,'+arg_msg rslt = 0 GOTO ext END IF END IF END IF /////////////// // IF li_ifsl = 1 THEN SELECT count(*) INTO :cnt FROM u_mtrldef_sl Where mtrlid = :ll_mtrlid_copy; IF sqlca.SQLCode <> 0 THEN arg_msg = sqlca.SQLErrText ROLLBACK; arg_msg = '查询注塑报价及质检参数失败,'+arg_msg rslt = 0 GOTO ext END IF IF cnt = 0 THEN INSERT INTO u_mtrldef_sl (u_mtrldef_sl.mtrlid, u_mtrldef_sl.waterweight, u_mtrldef_sl.period, u_mtrldef_sl.sk_mtrltypeid, u_mtrldef_sl.physics, u_mtrldef_sl.chemistry, u_mtrldef_sl.equipmentid, u_mtrldef_sl.maxdissolve, u_mtrldef_sl.dryway, u_mtrldef_sl.watertran, u_mtrldef_sl.pushout , u_mtrldef_sl.colorprp) SELECT :ll_mtrlid_copy, u_mtrldef_sl.waterweight, u_mtrldef_sl.period, u_mtrldef_sl.sk_mtrltypeid, u_mtrldef_sl.physics, u_mtrldef_sl.chemistry, u_mtrldef_sl.equipmentid, u_mtrldef_sl.maxdissolve, u_mtrldef_sl.dryway, u_mtrldef_sl.watertran, u_mtrldef_sl.pushout , u_mtrldef_sl.colorprp FROM u_mtrldef_sl Where u_mtrldef_sl.mtrlid = :ll_mtrlid; IF sqlca.SQLCode <> 0 THEN arg_msg = sqlca.SQLErrText ROLLBACK; arg_msg = '复制塑料属性失败,'+arg_msg rslt = 0 GOTO ext END IF ELSE Decimal waterweight Decimal period Long sk_mtrlid String sk_mtrlname Long sk_mtrltypeid String physics String chemistry Long equipmentid String maxdissolve String dryway String watertran String pushout Long colorprp SELECT u_mtrldef_sl.waterweight, u_mtrldef_sl.period, u_mtrldef_sl.sk_mtrltypeid, u_mtrldef_sl.physics, u_mtrldef_sl.chemistry, u_mtrldef_sl.equipmentid, u_mtrldef_sl.maxdissolve, u_mtrldef_sl.dryway, u_mtrldef_sl.watertran, u_mtrldef_sl.pushout , u_mtrldef_sl.colorprp INTO :waterweight, :period, :sk_mtrltypeid, :physics, :chemistry, :equipmentid, :maxdissolve, :dryway, :watertran, :pushout, :colorprp FROM u_mtrldef_sl Where u_mtrldef_sl.mtrlid = :ll_mtrlid; IF sqlca.SQLCode <> 0 THEN arg_msg = sqlca.SQLErrText ROLLBACK; arg_msg = '查询原塑料属性失败,'+arg_msg rslt = 0 GOTO ext END IF UPDATE u_mtrldef_sl SET u_mtrldef_sl.waterweight = :waterweight, u_mtrldef_sl.period = :period, u_mtrldef_sl.sk_mtrltypeid = :sk_mtrltypeid, u_mtrldef_sl.physics = :physics, u_mtrldef_sl.chemistry = :chemistry, u_mtrldef_sl.equipmentid = :equipmentid, u_mtrldef_sl.maxdissolve = :maxdissolve, u_mtrldef_sl.dryway = :dryway, u_mtrldef_sl.watertran = :watertran, u_mtrldef_sl.pushout = :pushout , u_mtrldef_sl.colorprp = :colorprp Where u_mtrldef_sl.mtrlid = :ll_mtrlid_copy; IF sqlca.SQLCode <> 0 THEN arg_msg = sqlca.SQLErrText ROLLBACK; arg_msg = '复制塑料属性失败,'+arg_msg rslt = 0 GOTO ext END IF END IF END IF IF li_ifquote = 1 THEN SELECT count(*) INTO :cnt FROM u_mtrldef_sl Where mtrlid = :ll_mtrlid_copy; IF sqlca.SQLCode <> 0 THEN arg_msg = sqlca.SQLErrText ROLLBACK; arg_msg = '查询注塑报价及质检参数失败,'+arg_msg rslt = 0 GOTO ext END IF IF cnt = 0 THEN INSERT INTO u_mtrldef_sl (u_mtrldef_sl.mtrlid, u_mtrldef_sl.Pigment_price, u_mtrldef_sl.Pigment_weight, u_mtrldef_sl.Trans_price, u_mtrldef_sl.Trans_qty, u_mtrldef_sl.Tax_rate, u_mtrldef_sl.Discount_rate, u_mtrldef_sl.profit_margin, u_mtrldef_sl.Exprice, u_mtrldef_sl.Pack_price, u_mtrldef_sl.Consultqty, u_mtrldef_sl.Materialwaste, u_mtrldef_sl.discount_price, u_mtrldef_sl.Color_st, u_mtrldef_sl.Look_st, u_mtrldef_sl.Size_st, u_mtrldef_sl.Conjugation_st, u_mtrldef_sl.Annex1_st, u_mtrldef_sl.Annex2_st, u_mtrldef_sl.Color_way, u_mtrldef_sl.Look_way, u_mtrldef_sl.Size_way, u_mtrldef_sl.Conjugation_way, u_mtrldef_sl.Annex1_way, u_mtrldef_sl.Annex2_way, u_mtrldef_sl.vmtrlid) SELECT :ll_mtrlid_copy, u_mtrldef_sl.Pigment_price, u_mtrldef_sl.Pigment_weight, u_mtrldef_sl.Trans_price, u_mtrldef_sl.Trans_qty, u_mtrldef_sl.Tax_rate, u_mtrldef_sl.Discount_rate, u_mtrldef_sl.profit_margin, u_mtrldef_sl.Exprice, u_mtrldef_sl.Pack_price, u_mtrldef_sl.Consultqty, u_mtrldef_sl.Materialwaste, u_mtrldef_sl.discount_price, u_mtrldef_sl.Color_st, u_mtrldef_sl.Look_st, u_mtrldef_sl.Size_st, u_mtrldef_sl.Conjugation_st, u_mtrldef_sl.Annex1_st, u_mtrldef_sl.Annex2_st, u_mtrldef_sl.Color_way, u_mtrldef_sl.Look_way, u_mtrldef_sl.Size_way, u_mtrldef_sl.Conjugation_way, u_mtrldef_sl.Annex1_way, u_mtrldef_sl.Annex2_way, u_mtrldef_sl.vmtrlid FROM u_mtrldef_sl Where u_mtrldef_sl.mtrlid = :ll_mtrlid; IF sqlca.SQLCode <> 0 THEN arg_msg = sqlca.SQLErrText ROLLBACK; arg_msg = '复制注塑报价及质检参数失败,'+arg_msg rslt = 0 GOTO ext END IF ELSE Decimal Pigment_price Decimal Pigment_weight Decimal Trans_price Decimal Trans_qty Decimal Tax_rate Decimal Discount_rate Decimal profit_margin Decimal Exprice Decimal Pack_price Decimal Consultqty Decimal Materialwaste Decimal discount_price String Color_st String Look_st String Size_st String Conjugation_st String Annex1_st String Annex2_st String Color_way String Look_way String Size_way String Conjugation_way String Annex1_way String Annex2_way Long vmtrlid SELECT u_mtrldef_sl.Pigment_price, u_mtrldef_sl.Pigment_weight, u_mtrldef_sl.Trans_price, u_mtrldef_sl.Trans_qty, u_mtrldef_sl.Tax_rate, u_mtrldef_sl.Discount_rate, u_mtrldef_sl.profit_margin, u_mtrldef_sl.Exprice, u_mtrldef_sl.Pack_price, u_mtrldef_sl.Consultqty, u_mtrldef_sl.Materialwaste, u_mtrldef_sl.discount_price, u_mtrldef_sl.Color_st, u_mtrldef_sl.Look_st, u_mtrldef_sl.Size_st, u_mtrldef_sl.Conjugation_st, u_mtrldef_sl.Annex1_st, u_mtrldef_sl.Annex2_st, u_mtrldef_sl.Color_way, u_mtrldef_sl.Look_way, u_mtrldef_sl.Size_way, u_mtrldef_sl.Conjugation_way, u_mtrldef_sl.Annex1_way, u_mtrldef_sl.Annex2_way, u_mtrldef_sl.vmtrlid INTO :Pigment_price, :Pigment_weight, :Trans_price, :Trans_qty, :Tax_rate, :Discount_rate, :profit_margin, :Exprice, :Pack_price, :Consultqty, :Materialwaste, :discount_price, :Color_st, :Look_st, :Size_st, :Conjugation_st, :Annex1_st, :Annex2_st, :Color_way, :Look_way, :Size_way, :Conjugation_way, :Annex1_way, :Annex2_way, :vmtrlid FROM u_mtrldef_sl Where u_mtrldef_sl.mtrlid = :ll_mtrlid; IF sqlca.SQLCode <> 0 THEN arg_msg = sqlca.SQLErrText ROLLBACK; arg_msg = '查询原物料注塑报价及质检参数失败,'+arg_msg rslt = 0 GOTO ext END IF UPDATE u_mtrldef_sl SET Pigment_price = :Pigment_price, Pigment_weight = :Pigment_weight, Trans_price = :Trans_price, Trans_qty = :Trans_qty, Tax_rate = :Tax_rate, Discount_rate = :Discount_rate, profit_margin = :profit_margin, Exprice = :Exprice, Pack_price = :Pack_price, Consultqty = :Consultqty, Materialwaste = :Materialwaste, discount_price = :discount_price, Color_st = :Color_st, Look_st = :Look_st, Size_st = :Size_st, Conjugation_st = :Conjugation_st, Annex1_st = :Annex1_st, Annex2_st = :Annex2_st, Color_way = :Color_way, Look_way = :Look_way, Size_way = :Size_way, Conjugation_way = :Conjugation_way, Annex1_way = :Annex1_way, Annex2_way = :Annex2_way, vmtrlid = :vmtrlid Where mtrlid = :ll_mtrlid_copy; IF sqlca.SQLCode <> 0 THEN arg_msg = sqlca.SQLErrText ROLLBACK; arg_msg = '复制注塑报价及质检参数失败,'+arg_msg rslt = 0 GOTO ext END IF END IF END IF IF li_iftechnics = 1 THEN INSERT INTO u_mtrldef_gy (u_mtrldef_Gy.mtrlid, u_mtrldef_Gy.Quick_press, u_mtrldef_Gy.Quick_speed, u_mtrldef_Gy.Quick_site, u_mtrldef_Gy.Low_press, u_mtrldef_Gy.Low_speed, u_mtrldef_Gy.Low_site, u_mtrldef_Gy.High_press, u_mtrldef_Gy.High_speed, u_mtrldef_Gy.High_site, u_mtrldef_Gy.Diesink_1_press, u_mtrldef_Gy.Diesink_1_speed, u_mtrldef_Gy.Diesink_1_site, u_mtrldef_Gy.Diesink_quick_press, u_mtrldef_Gy.Diesink_quick_speed, u_mtrldef_Gy.Diesink_quick_site, u_mtrldef_Gy.Diesink_2_press, u_mtrldef_Gy.Diesink_2_speed, u_mtrldef_Gy.Diesink_2_site, u_mtrldef_Gy.Neutron_press, u_mtrldef_Gy.Neutron_speed, u_mtrldef_Gy.Neutron_site, u_mtrldef_Gy.Shoot_1_press, u_mtrldef_Gy.Shoot_1_speed, u_mtrldef_Gy.Shoot_1_site, u_mtrldef_Gy.Shoot_2_press, u_mtrldef_Gy.Shoot_2_speed, u_mtrldef_Gy.Shoot_2_site, u_mtrldef_Gy.Shoot_3_press, u_mtrldef_Gy.Shoot_3_speed, u_mtrldef_Gy.Shoot_3_site, u_mtrldef_Gy.Dwell_1_press, u_mtrldef_Gy.Dwell_1_speed, u_mtrldef_Gy.Dwell_2_press, u_mtrldef_Gy.Dwell_2_speed, u_mtrldef_Gy.Shoot_tem, u_mtrldef_Gy.One_tem, u_mtrldef_Gy.Two_tem, u_mtrldef_Gy.Three_tem, u_mtrldef_Gy.Four_tem, u_mtrldef_Gy.holdMold_tem, u_mtrldef_Gy.moveMold_tem, u_mtrldef_Gy.cooltime, u_mtrldef_Gy.Shoottime, u_mtrldef_Gy.Backpressure, u_mtrldef_Gy.Technics, u_mtrldef_Gy.Shoot_1_time, u_mtrldef_Gy.Shoot_2_time, u_mtrldef_Gy.Shoot_3_time, u_mtrldef_Gy.Dwell_1_time, u_mtrldef_Gy.Dwell_2_time) SELECT :ll_mtrlid_copy, u_mtrldef_Gy.Quick_press, u_mtrldef_Gy.Quick_speed, u_mtrldef_Gy.Quick_site, u_mtrldef_Gy.Low_press, u_mtrldef_Gy.Low_speed, u_mtrldef_Gy.Low_site, u_mtrldef_Gy.High_press, u_mtrldef_Gy.High_speed, u_mtrldef_Gy.High_site, u_mtrldef_Gy.Diesink_1_press, u_mtrldef_Gy.Diesink_1_speed, u_mtrldef_Gy.Diesink_1_site, u_mtrldef_Gy.Diesink_quick_press, u_mtrldef_Gy.Diesink_quick_speed, u_mtrldef_Gy.Diesink_quick_site, u_mtrldef_Gy.Diesink_2_press, u_mtrldef_Gy.Diesink_2_speed, u_mtrldef_Gy.Diesink_2_site, u_mtrldef_Gy.Neutron_press, u_mtrldef_Gy.Neutron_speed, u_mtrldef_Gy.Neutron_site, u_mtrldef_Gy.Shoot_1_press, u_mtrldef_Gy.Shoot_1_speed, u_mtrldef_Gy.Shoot_1_site, u_mtrldef_Gy.Shoot_2_press, u_mtrldef_Gy.Shoot_2_speed, u_mtrldef_Gy.Shoot_2_site, u_mtrldef_Gy.Shoot_3_press, u_mtrldef_Gy.Shoot_3_speed, u_mtrldef_Gy.Shoot_3_site, u_mtrldef_Gy.Dwell_1_press, u_mtrldef_Gy.Dwell_1_speed, u_mtrldef_Gy.Dwell_2_press, u_mtrldef_Gy.Dwell_2_speed, u_mtrldef_Gy.Shoot_tem, u_mtrldef_Gy.One_tem, u_mtrldef_Gy.Two_tem, u_mtrldef_Gy.Three_tem, u_mtrldef_Gy.Four_tem, u_mtrldef_Gy.holdMold_tem, u_mtrldef_Gy.moveMold_tem, u_mtrldef_Gy.cooltime, u_mtrldef_Gy.Shoottime, u_mtrldef_Gy.Backpressure, u_mtrldef_Gy.Technics, u_mtrldef_Gy.Shoot_1_time, u_mtrldef_Gy.Shoot_2_time, u_mtrldef_Gy.Shoot_3_time, u_mtrldef_Gy.Dwell_1_time, u_mtrldef_Gy.Dwell_2_time FROM u_mtrldef_Gy Where u_mtrldef_gy.mtrlid = :ll_mtrlid; IF sqlca.SQLCode <> 0 THEN arg_msg = sqlca.SQLErrText ROLLBACK; arg_msg = '复制工艺参数失败,'+arg_msg rslt = 0 GOTO ext END IF END IF IF li_ifother = 1 THEN INSERT INTO u_mtrl_other (u_mtrl_other.mtrlid, u_mtrl_other.length_in, u_mtrl_other.length_out, u_mtrl_other.width_in, u_mtrl_other.width_out, u_mtrl_other.height_in, u_mtrl_other.height_out, u_mtrl_other.cubage_in, u_mtrl_other.cubage_out, u_mtrl_other.nw_in, u_mtrl_other.nw_out, u_mtrl_other.gw_in, u_mtrl_other.gw_out, u_mtrl_other.material_in, u_mtrl_other.material_out, u_mtrl_other.dscrp_in, u_mtrl_other.dscrp_out, u_mtrl_other.qty_40, u_mtrl_other.box_40, u_mtrl_other.qty_40hq, u_mtrl_other.box_40hq, u_mtrl_other.qty_20, u_mtrl_other.box_20, u_mtrl_other.clause_1, u_mtrl_other.clause_2, u_mtrl_other.clause_3, u_mtrl_other.clause_4 , u_mtrl_other.dscrp) SELECT :ll_mtrlid_copy, u_mtrl_other.length_in, u_mtrl_other.length_out, u_mtrl_other.width_in, u_mtrl_other.width_out, u_mtrl_other.height_in, u_mtrl_other.height_out, u_mtrl_other.cubage_in, u_mtrl_other.cubage_out, u_mtrl_other.nw_in, u_mtrl_other.nw_out, u_mtrl_other.gw_in, u_mtrl_other.gw_out, u_mtrl_other.material_in, u_mtrl_other.material_out, u_mtrl_other.dscrp_in, u_mtrl_other.dscrp_out, u_mtrl_other.qty_40, u_mtrl_other.box_40, u_mtrl_other.qty_40hq, u_mtrl_other.box_40hq, u_mtrl_other.qty_20, u_mtrl_other.box_20, u_mtrl_other.clause_1, u_mtrl_other.clause_2, u_mtrl_other.clause_3, u_mtrl_other.clause_4 , u_mtrl_other.dscrp FROM u_mtrl_other Where u_mtrl_other.mtrlid = :ll_mtrlid; IF sqlca.SQLCode <> 0 THEN arg_msg = sqlca.SQLErrText ROLLBACK; arg_msg = '复制包装参数失败,'+arg_msg rslt = 0 GOTO ext END IF END IF IF li_model = 1 THEN INSERT INTO u_model_mtrl (mtrlid, modelid, printid, modelqty, ifdft, dscrp) SELECT :ll_mtrlid_copy, modelid, printid, modelqty, ifdft, dscrp FROM u_model_mtrl Where mtrlid = :ll_mtrlid; IF sqlca.SQLCode <> 0 THEN arg_msg = sqlca.SQLErrText ROLLBACK; arg_msg = '复制产品相关模具资料失败,'+arg_msg rslt = 0 GOTO ext END IF END IF //插入纸箱类型 INSERT INTO u_mtrldef_add_property (mtrlid, Zxtypeid) SELECT :ll_mtrlid_copy, Zxtypeid FROM u_mtrldef_add_property Where mtrlid = :ll_mtrlid; IF sqlca.SQLCode <> 0 THEN arg_msg = sqlca.SQLErrText ROLLBACK; arg_msg = '复制产品相关纸箱类型资料失败,'+arg_msg rslt = 0 GOTO ext END IF IF arg_ifcommit THEN COMMIT; END IF arg_s_return = arg_s_mtrl arg_s_return.mtrlid = ll_mtrlid_copy arg_s_return.mtrlcode = ls_mtrlcode arg_s_return.mtrlname = ls_mtrlname ext: Destroy uo_mtrl RETURN rslt end function