private void CkBzFlg(stkin q) { //盘点是否有为空的明细 var qrydtl = q.stkindtl.Where(e => e.qty == 0 && e.bzflg == GetN()); foreach (stkindtl d in qrydtl) { d.bzflg = GetY(); d.bzr = LoginInfo.Usrid; d.bzdat = GetCurrentDate(); } WmsDc.SubmitChanges(); //修改播种标记 q.outflg = GetY(); q.outdat = GetCurrentDay(); //审核配送单 q.chkflg = GetY(); q.chkdat = GetCurrentDay(); q.ckr = LoginInfo.Usrid; //记账gdsbs //记账gdsbs List <gdsbs> lstGdsbs = new List <gdsbs>(); foreach (var t in q.stkindtl) { gdsbs g = new gdsbs(); //g.actid = t.actid; //g.brief = t.brief; g.srcbllno = t.stkinno; g.srcrcdidx = t.rcdidx; g.fscprdid = GetCurrentFscprdid(); g.bllid = t.stkin.bllid; g.dptid = t.stkin.dptid; g.depid = t.depid; g.empid = LoginInfo.Usrid; g.gdsid = t.gdsid; g.actdat = GetCurrentDay(); g.dbtcrt = '0'; g.qty = t.qty; g.prc = t.prc.Value; g.amt = t.amt.Value; g.bthno = t.bthno; g.vlddat = t.vlddat; g.bcd = t.bcd; g.mctortrust = t.mctortrust; g.prvid = t.prvid; g.dlvprc = t.dlvprc; g.taxflg = t.taxflg; g.branchid = GetBranchid(t.stkin.savdptid); lstGdsbs.Add(g); } var qrysftdtl = from e in WmsDc.sftdtl where e.stkinno == q.stkinno select e; sftdtl sd = qrysftdtl.ToArray()[0]; foreach (var t in q.stkindtl) { gdsbs g = new gdsbs(); //g.actid = t.actid; //g.brief = t.brief; g.srcbllno = t.stkinno; g.srcrcdidx = t.rcdidx; g.fscprdid = GetCurrentFscprdid(); g.bllid = t.stkin.bllid; g.dptid = sd.sft_dptout; g.depid = sd.sft_depout; g.empid = LoginInfo.Usrid; g.gdsid = t.gdsid; g.actdat = GetCurrentDay(); g.dbtcrt = '1'; g.qty = t.qty; g.prc = t.prc.Value; g.amt = t.amt.Value; g.bthno = t.bthno; g.vlddat = t.vlddat; g.bcd = t.bcd; g.mctortrust = t.mctortrust; g.prvid = t.prvid; g.dlvprc = t.dlvprc; g.taxflg = t.taxflg; g.branchid = GetBranchid(sd.sft_sdtout); lstGdsbs.Add(g); } WmsDc.gdsbs.InsertAllOnSubmit(lstGdsbs); stklst astklst = new stklst(); astklst.stkouno = q.stkinno; WmsDc.stklst.InsertOnSubmit(astklst); }
public ActionResult GenerateRecievBll(String odrno) { stkin mst = GetMst(odrno); if (mst == null) { return(RNoData("N0030")); } ////正在生成拣货单,请稍候重试 string quRetrv = GetQuByDptid(mst.dptid, LoginInfo.DefStoreid); //if (DoingRetrieve(LoginInfo.DefStoreid, quRetrv)) //{ // return RInfo( "I0051" ); //} //2.查看内调单据是否已经转过为收货单 var qryshd = from e in WmsDc.wms_bllmst where e.bllid == WMSConst.BLL_TYPE_REVIECEBLL && e.lnknewno == odrno && e.lnknewbllid == WMSConst.BLL_TYPE_INNERADJ select e; if (qryshd.Count() > 0) { return(RInfo("I0052")); } return(MakeNewBllNo( mst.savdptid, quRetrv, WMSConst.BLL_TYPE_REVIECEBLL, ((bllno) => { var odr = mst; //修改转单标记 String sNow = DateTime.Now.ToString("yyyyMMdd"); String cmd = "update stkin set inzdflg='" + GetY() + "',inzddat={0}, inwmsno={1}, inwmsbllid={2} where stkinno={3}"; WmsDc.ExecuteCommand(cmd, new[] { sNow, bllno, WMSConst.BLL_TYPE_INNERADJ, odrno }); //===================== 生成一张新的收货单 ===================== //--------------------- 1.生成主单 ----------------------------- wms_bllmst bllmst = new wms_bllmst(); bllmst.wmsno = bllno; bllmst.hndbllno = odr.hndbllno; bllmst.bllid = WMSConst.BLL_TYPE_REVIECEBLL; bllmst.prvid = odr.savdptid; bllmst.savdptid = odr.savdptid; //得到登录仓库所在部门的区位码 GetRealteQuResult realte = GetRealteQu(odr.dptid, odr.savdptid); bllmst.qu = realte.qu; /*bllmst.tongdao = odr.mst.tongdao; * bllmst.huojia = odr.mst.huojia;*/ bllmst.odrdat = odr.mkedat; bllmst.arvdat = odr.mkedat; bllmst.mkr = LoginInfo.Usrid; bllmst.mkedat = GetCurrentDate(); bllmst.ckr = ""; bllmst.chkflg = GetN(); bllmst.chkdat = ""; bllmst.opr = LoginInfo.Usrid; bllmst.brief = odr.brief; bllmst.lnknewbllid = odr.bllid; bllmst.lnknewno = odr.stkinno; bllmst.lnknewbrief = odr.brief; this.WmsDc.wms_bllmst.InsertOnSubmit(bllmst); //--------------------- 2.生成明细 ----------------------------- List <wms_blldtl> blldtls = new List <wms_blldtl>(); List <WmsBllGds> gdss = new List <WmsBllGds>(); foreach (var dtl in odr.stkindtl) { wms_blldtl blldtl = new wms_blldtl(); blldtl.wmsno = bllmst.wmsno; blldtl.bllid = bllmst.bllid; blldtl.rcdidx = dtl.rcdidx; blldtl.barcode = ""; blldtl.gdsid = dtl.gdsid; blldtl.pkgid = "01"; //dtl.pkgid; blldtl.qty = 0; blldtl.preqty = Math.Round(dtl.qty, 4, MidpointRounding.AwayFromZero); blldtl.gdstype = WMSConst.GDS_TYPE_NORMAL; blldtl.bthno = string.IsNullOrEmpty(dtl.bthno) ? "1" : dtl.bthno; blldtl.vlddat = string.IsNullOrEmpty(dtl.vlddat) ? GetCurrentDay() : dtl.vlddat; blldtl.bcd = dtl.bcd == null ? "" : dtl.bcd; blldtl.prvid = bllmst.prvid == null ? "" : dtl.prvid; blldtl.bkr = ""; blldtl.bokflg = GetN(); blldtl.bokdat = GetCurrentDate(); blldtl.brief = ""; WmsBllGds gds = WmsDc.gds .Where(e => e.gdsid == dtl.gdsid) .Select(e => new WmsBllGds { gdsid = e.gdsid.Trim(), gdsdes = e.gdsdes.Trim(), spc = e.spc.Trim(), bsepkg = e.bsepkg.Trim() }).Single(); gdss.Add(gds); blldtls.Add(blldtl); } this.WmsDc.wms_blldtl.InsertAllOnSubmit(blldtls); //===================== 生成一张新的收货单 ===================== try { var dtlstmp = (from e in blldtls join e1 in gdss on e.gdsid.Trim() equals e1.gdsid.Trim() select new { e.wmsno, e.vlddat, e.rcdidx, e.qty, e.prvid, e.preqty, e.pkgid, e.gdstype, e.gdsid, e.brief, e.bokflg, e.bokdat, e.bllid, e.bkr, e.bcd, e.barcode, e1.gdsdes, e1.spc, e1.bsepkg } ).ToArray(); Wmsbll obj = new Wmsbll { mst = bllmst, dptdes = (from e in WmsDc.dpt where e.dptid == odr.dptid.Trim() select e.dptdes).Single(), prv = null, dtl = blldtls.ToArray(), gds = gdss.ToArray(), dtls = dtlstmp }; //obj = ((Wmsbll)Rm.ResultObject); var objrm = new { obj.mst.arvdat, obj.mst.bllid, obj.mst.brief, obj.mst.chkdat, obj.mst.chkflg, obj.mst.ckr, obj.mst.hndbllno, obj.mst.huojia, obj.mst.lnknewbllid, obj.mst.lnknewbrief, obj.mst.lnknewno, obj.mst.mkedat, obj.mst.mkr, obj.mst.odrdat, obj.mst.opr, obj.mst.prvid, obj.mst.qu, obj.mst.savdptid, obj.mst.tongdao, obj.mst.wmsno, prvdes = "", //obj.prv.prvdes, obj.dptdes }; Rm.ResultObject = objrm; return Rm; } catch (Exception ex) { return RRErr(ex.Message, "E0057"); } }))); }