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"); } }))); }
public ActionResult GenerateRecievBll(String odrno) { String qu = GetQuByDptid(odrno, LoginInfo.DefStoreid); return(MakeNewBllNo( LoginInfo.DefSavdptid, qu, WMSConst.BLL_TYPE_REVIECEBLL, ((bllno) => { //WmsDc.Transaction = WmsDc.Connection.BeginTransaction(); var qry = from e in WmsDc.odr where e.odrno == odrno && e.savdptid == LoginInfo.DefSavdptid && e.bllid == WMSConst.BLL_TYPE_PURCHASE && e.ordstu == (char)ORD_STATUS.AUDIT && e.zdflg == GetN() select new { mst = e, dtl = from e1 in WmsDc.odrdtl where e1.odrno == odrno select e1 }; var arrqry = qry.ToArray(); //1.未找到供应商采购订单 if (arrqry.Count() <= 0) { return RRInfo("I0443"); } //2.查看采购单据是否已经转过为收货单 var qryshd = from e in WmsDc.wms_bllmst where e.bllid == WMSConst.BLL_TYPE_REVIECEBLL && e.lnknewno == odrno select e; if (qryshd.Count() > 0) { return RRInfo("I0444"); } var odr = arrqry[0]; //修改转单标记 String sNow = DateTime.Now.ToString("yyyyMMdd"); String cmd = "update odr set zdflg='" + GetY() + "',zddat={0} where odrno={1}"; WmsDc.ExecuteCommand(cmd, new[] { sNow, odrno }); //===================== 生成一张新的收货单 ===================== //--------------------- 1.生成主单 ----------------------------- wms_bllmst bllmst = new wms_bllmst(); bllmst.wmsno = bllno; bllmst.hndbllno = odr.mst.hndbllno; bllmst.bllid = WMSConst.BLL_TYPE_REVIECEBLL; bllmst.prvid = odr.mst.prvid; bllmst.savdptid = odr.mst.savdptid; //得到登录仓库所在部门的区位码 GetRealteQuResult realte = GetRealteQu(odr.mst.dptid, LoginInfo.DefSavdptid); bllmst.qu = realte.qu; ////正在生成拣货单,请稍候重试 //string quRetrv = bllmst.qu; //if (DoingRetrieve(LoginInfo.DefStoreid, quRetrv)) //{ // return RRInfo( "I0225" ); //} /*bllmst.tongdao = odr.mst.tongdao; * bllmst.huojia = odr.mst.huojia;*/ bllmst.odrdat = odr.mst.odrdat; bllmst.arvdat = odr.mst.arvdat; bllmst.mkr = LoginInfo.Usrid; bllmst.mkedat = DateTime.Now.ToString("yyyyMMddhhmmss"); bllmst.ckr = ""; bllmst.chkflg = GetN(); bllmst.chkdat = ""; bllmst.opr = LoginInfo.Usrid; bllmst.brief = odr.mst.brief; bllmst.lnknewbllid = odr.mst.bllid; bllmst.lnknewno = odr.mst.odrno; bllmst.lnknewbrief = odr.mst.brief; this.WmsDc.wms_bllmst.InsertOnSubmit(bllmst); //--------------------- 2.生成明细 ----------------------------- List <wms_blldtl> blldtls = new List <wms_blldtl>(); List <WmsBllGds> gdss = new List <WmsBllGds>(); foreach (odrdtl dtl in odr.dtl) { if (dtl.qty != 0) { 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 = dtl.bthno == null ? "" : dtl.bthno; blldtl.vlddat = dtl.vlddat == null ? "" : dtl.vlddat; blldtl.bcd = dtl.bcd == null ? "" : dtl.bcd; blldtl.prvid = bllmst.prvid == null ? "" : dtl.prvid; blldtl.bkr = ""; blldtl.bokflg = GetN(); blldtl.bokdat = ""; 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.mst.dptid select e.dptdes).Single(), prv = (from e4 in WmsDc.prv where e4.prvid == bllmst.prvid select new WmsBllPrv { prvid = e4.prvid.Trim(), prvdes = e4.prvdes.Trim(), }).Single(), 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, obj.prv.prvdes, obj.dptdes }; Rm.ResultObject = objrm; return Rm; } catch (Exception ex) { return RRErr(ex.Message, "E0065"); } }))); }