public ActionResult DlPkgBcd(string pkgbcd, string gdsid) { if (string.IsNullOrEmpty(pkgbcd)) { return(RInfo("I0502")); } gdsid = GetGdsidByGdsidOrBcd(gdsid); if (string.IsNullOrEmpty(gdsid)) { return(RInfo("I0503")); } var qryPkgbcd = (from e in WmsDc.wms_pkgbcd join e1 in WmsDc.emp on e.uptpsn equals e1.empid where e.pkgbcd == pkgbcd.Trim() && e.gdsid == gdsid.Trim() select new { e.gdsid, e.pkgbcd, uptpsndes = e1.empdes.Trim(), e.uptpsn }).FirstOrDefault(); if (qryPkgbcd == null) { return(RNoData("N0259")); } var apkgbcd = WmsDc.wms_pkgbcd.Where(e => e.gdsid == gdsid.Trim() && e.pkgbcd == pkgbcd.Trim()).Select(e => e); WmsDc.wms_pkgbcd.DeleteAllOnSubmit(apkgbcd); WmsDc.SubmitChanges(); return(RSucc("成功", null, "S0239")); }
public ActionResult DlRetBllDetail(String wmsno, String gdsids) { String[] gdsid = gdsids.Split(','); var qrydtl = from e in WmsDc.wms_cangdtl_109 where e.wmsno == wmsno && e.bllid == WMSConst.BLL_TYPE_RETCANG select e; var dlarrdtl = qrydtl.Where(w => gdsid.Contains(w.gdsid.Trim())).ToArray(); var qrymst = from e in WmsDc.wms_cang_109 where e.wmsno == wmsno && e.bllid == WMSConst.BLL_TYPE_RETCANG && e.mkr == LoginInfo.Usrid && qus.Contains(e.qu.Trim()) select e; var arrqrymst = qrymst.ToArray(); if (arrqrymst.Length <= 0) { return(RNoData("N0150")); } wms_cang_109 mst = arrqrymst[0]; ////正在生成拣货单,请稍候重试 //string quRetrv = mst.qu; //if (DoingRetrieve(LoginInfo.DefStoreid, quRetrv)) //{ // return RInfo( "I0292" ); //} if (mst.chkflg == GetY()) { return(RInfo("I0293")); } //是否是本人制单 if (!IsSameLogin(mst.mkr)) { return(RInfo("I0294")); } if (dlarrdtl.Length <= 0) { return(RNoData("N0151")); } try { WmsDc.wms_cangdtl_109.DeleteAllOnSubmit(dlarrdtl); iDelCangDtl109(dlarrdtl, mst); //查询明细删除后,是否已经没有明细,没有明细就删除主单据 var arrqrydtl = qrydtl.ToArray(); if (arrqrydtl.Length <= 1) { WmsDc.wms_cang_109.DeleteOnSubmit(mst); iDelCangMst109(mst); } WmsDc.SubmitChanges(); return(RSucc("删除成功", null, "S0139")); } catch (Exception ex) { return(RErr(ex.Message, "E0039")); } }
public ActionResult CancelAdtDtl(String wmsno, String gdsid, int rcdidx) { //检查单号是否存在 var qrymst = from e in WmsDc.wms_cang_105 where e.wmsno == wmsno && e.bllid == WMSConst.BLL_TYPE_INVENTORY_CHECK select e; var arrqrymst = qrymst.ToArray(); var qrydtl = from e in WmsDc.wms_cangdtl_105 where e.wmsno == wmsno && e.gdsid == gdsid && e.rcdidx == rcdidx && e.bllid == WMSConst.BLL_TYPE_INVENTORY_CHECK select e; var arrqrydtl = qrydtl.ToArray(); //单据是否找到 if (arrqrymst.Length <= 0) { return(RNoData("N0106")); } //检查是否有数据权限 wms_cang_105 mst = arrqrymst[0]; ////正在生成拣货单,请稍候重试 //string quRetrv = mst.qu; //if (DoingRetrieve(LoginInfo.DefStoreid, quRetrv)) //{ // return RInfo( "I0161" ); //} /*if (!qus.Contains(mst.qu)) * { * return RInfo( "I0162" ); * }*/ // 判断有无重新复核的权限 // 检查单号是否已经审核 if (mst != null && mst.chkflg == GetY()) { return(RInfo("I0163")); } if (arrqrydtl.Length <= 0) { return(RNoData("N0107")); } wms_cangdtl_105 dtl = arrqrydtl[0]; dtl.bokflg = GetN(); dtl.bokdat = GetCurrentDate(); dtl.bkr = ""; try { WmsDc.SubmitChanges(); return(RSucc("成功", null, "S0092")); } catch (Exception ex) { return(RErr(ex.Message, "E0020")); } }
private void CkBzFlg(sivc q) { //盘点是否有为空的明细 var qrydtl = q.sivcdtl.Where(e => e.qty == 0 && e.bzflg == GetN()); foreach (sivcdtl d in qrydtl) { d.bzflg = GetY(); d.bzr = LoginInfo.Usrid; d.bzdat = GetCurrentDate(); } WmsDc.SubmitChanges(); //修改播种标记 q.bzflg = GetY(); //审核配送单 q.chkflg = GetY(); q.chkdat = GetCurrentDay(); q.ckr = LoginInfo.Usrid; //记账gdsbs List <gdsbs> lstGdsbs = new List <gdsbs>(); foreach (var t in q.sivcdtl) { gdsbs g = new gdsbs(); //g.actid = t.actid; //g.brief = t.brief; g.srcbllno = t.sivcno; g.srcrcdidx = t.rcdidx; g.fscprdid = GetCurrentFscprdid(); g.bllid = t.sivc.bllid; g.dptid = t.sivc.dptid; g.depid = t.depid; g.empid = LoginInfo.Usrid; g.gdsid = t.gdsid; g.actdat = GetCurrentDay(); g.dbtcrt = '1'; g.qty = t.qty; g.prc = t.prc; g.amt = t.amt; 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.sivc.savdptid); lstGdsbs.Add(g); } WmsDc.gdsbs.InsertAllOnSubmit(lstGdsbs); stklst astklst = new stklst(); astklst.stkouno = q.sivcno; WmsDc.stklst.InsertOnSubmit(astklst); }
public ActionResult DlRetPrvBll(String wmsno) { //检查单号是否存在 var qrymst = from e in WmsDc.wms_cang_110 where e.wmsno == wmsno && e.bllid == WMSConst.BLL_TYPE_RETPRV select e; var arrqrymst = qrymst.ToArray(); var qrydtl = from e in WmsDc.wms_cangdtl_110 where e.wmsno == wmsno && e.bllid == WMSConst.BLL_TYPE_RETPRV select e; var arrqrydtl = qrydtl.ToArray(); //单据是否找到 if (arrqrymst.Length <= 0) { return(RNoData("N0160")); } //检查是否有数据权限 wms_cang_110 mst = arrqrymst[0]; ////正在生成拣货单,请稍候重试 //string quRetrv = mst.qu; //if (DoingRetrieve(LoginInfo.DefStoreid, quRetrv)) //{ // return RInfo( "I0340" ); //} if (!qus.Contains(mst.qu.Trim())) { return(RInfo("I0341")); } //检查单号是否已经审核 if (mst.chkflg == GetY()) { return(RInfo("I0342")); } //是否是同一个人制单 if (!IsSameLogin(mst.mkr)) { return(RInfo("I0343", mst.mkr, LoginInfo.Usrid)); } //删除单据明细 WmsDc.wms_cangdtl_110.DeleteAllOnSubmit(arrqrydtl); WmsDc.wms_cang_110.DeleteAllOnSubmit(arrqrymst); iDelCangDtl110(arrqrydtl, mst); iDelCangMst110(arrqrymst[0]); //删除主单据 try { WmsDc.SubmitChanges(); return(RSucc("成功", null, "S0151")); } catch (Exception ex) { return(RErr(ex.Message, "E0045")); } }
public ActionResult MdfyRecievGdsType(String wmsno, String gdsid, String gdstype, String newgdstype) { gdsid = GetGdsidByGdsidOrBcd(gdsid); ////正在生成拣货单,请稍候重试 //string quRetrv = GetQuByGdsid(gdsid, LoginInfo.DefStoreid).FirstOrDefault(); //if (DoingRetrieve(LoginInfo.DefStoreid, quRetrv)) //{ // return RInfo( "I0233" ); //} if (gdsid == null) { return(RInfo("I0234")); } /*var qry = from e in WmsDc.wms_blldtl * where e.wmsno == wmsno * && e.gdsid == gdsid * select e; * var arrqry = qry.ToArray(); * if (arrqry.Length <= 0) * { * return RNoData("N0127"); * } * wms_blldtl dtl = arrqry[0];*/ var qry = from e in WmsDc.wms_blltp where e.wmsno == wmsno && e.bllid == WMSConst.BLL_TYPE_REVIECEBLL && e.gdsid == gdsid && e.gdstype == gdstype select e; var arrqry = qry.ToArray(); /*wms_blldtl[] dtls = GetDtl(wmsno).Where(e => e.gdsid == gdsid && e.gdstype == gdstype).ToArray(); * if (arrqry.Length <= 0 || dtls.Length <= 0) * { * return RNoData("N0128"); * }*/ wms_blltp tp = arrqry[0]; tp.gdstype = gdstype; /*wms_blldtl dtl = dtls.FirstOrDefault(); * dtl.gdstype = gdstype;*/ try { WmsDc.SubmitChanges(); return(RSucc("成功", arrqry[0], "S0114")); } catch (Exception ex) { return(RErr(ex.Message, "E0029")); } }
public ActionResult BokBozBllGdss(String wmsnos, String stkounos, String rcvdptids, String gdsids, string qtys, string rcdidxs, String checis) { JsonResult jr = null; using (TransactionScope scop = new TransactionScope(TransactionScopeOption.Required, options)) { string[] awmsno = wmsnos.Split(','); string[] astkouno = stkounos.Split(','); string[] arcvdptid = rcvdptids.Split(','); string[] agdsid = gdsids.Split(','); string[] aqty = qtys.Split(','); string[] arcdidx = rcdidxs.Split(','); string[] acheci = checis.Split(','); if (awmsno.Length != astkouno.Length || awmsno.Length != arcvdptid.Length || awmsno.Length != agdsid.Length || awmsno.Length != aqty.Length || awmsno.Length != arcdidx.Length || awmsno.Length != acheci.Length) { return(RInfo("I0491")); } else { for (int i = 0; i < awmsno.Length; i++) { double qty = 0; int rcdidx = -1; if (!double.TryParse(aqty[i].Trim(), out qty)) { return(RInfo("I0489")); } if (!int.TryParse(arcdidx[i].Trim(), out rcdidx)) { return(RInfo("I0490")); } jr = (JsonResult)BokBozBllGds(awmsno[i], astkouno[i], arcvdptid[i], agdsid[i], qty, rcdidx, acheci[i]); ResultMessage rm = (ResultMessage)jr.Data; if (rm.ResultCode != ResultMessage.RESULTMESSAGE_SUCCESS) { return(jr); } } } WmsDc.SubmitChanges(); scop.Complete(); return(jr == null?RSucc("成功", null, "S0231") : jr); } }
private void CkBzFlg(stkot p) { //盘点是否有为空的明细 var qrydtl = p.stkotdtl.Where(e => e.qty == 0 && e.bzflg == GetN()); foreach (stkotdtl d in qrydtl) { d.bzflg = GetY(); d.bzr = LoginInfo.Usrid; d.bzdat = GetCurrentDate(); } WmsDc.SubmitChanges(); //修改播种标记 p.bzflg = GetY(); //审核配送单 p.chkflg = GetY(); p.chkdat = GetCurrentDay(); p.ckr = LoginInfo.Usrid; WmsDc.SubmitChanges(); //写入dtrlog //查看是否dtrlog已经有单据,没有就插入 var qry = WmsDc.dtrlog .Where(e => e.rcvdptid == p.rcvdptid && e.bllno == p.stkouno && e.bllid == p.bllid) .Select(e => e.bllno); var arrqry = qry.ToArray(); if (arrqry.Length <= 0) { dtrlog dl = new dtrlog(); dl.bllid = p.bllid; dl.bllno = p.stkouno; dl.rcvdptid = p.rcvdptid; WmsDc.dtrlog.InsertOnSubmit(dl); } WmsDc.SubmitChanges(); if (!(WmsDc.stklst.Where(e => e.stkouno == p.stkouno)).Any()) { stklst astklst = new stklst(); astklst.stkouno = p.stkouno; WmsDc.stklst.InsertOnSubmit(astklst); //WmsDc.SubmitChanges(); } WmsDc.SubmitChanges(); }
public ActionResult GetDtlByBarcodeGdsid(String barcode, string gdsid) { String sql = "select * from wms_cangdtl_105 t1 " + " join (select * from wms_cang_105 where mkedat='{0}' and times=2) t2 on t1.wmsno=t2.wmsno and t1.bllid=t2.bllid" + " where t1.barcode={1} and t1.gdsid={2}"; wms_cangdtl_105[] dl = WmsDc.ExecuteQuery <wms_cangdtl_105>(sql, GetCurrentDay(), barcode, gdsid).ToArray(); if (dl == null || dl.Length == 0) { return(RNoData("N0101")); } return(RSucc("成功", dl, "S0089")); }
public ActionResult AddPkgBcd(String pkgbcd, String gdsid) { if (string.IsNullOrEmpty(pkgbcd)) { return(RInfo("I0500")); } gdsid = GetGdsidByGdsidOrBcd(gdsid); if (string.IsNullOrEmpty(gdsid)) { return(RInfo("I0501")); } var qryPkgbcd = (from e in WmsDc.wms_pkgbcd join e1 in WmsDc.emp on e.uptpsn equals e1.empid join e2 in WmsDc.gds on e.gdsid equals e2.gdsid where e.pkgbcd == pkgbcd.Trim() select new{ e.gdsid, e.pkgbcd, uptpsndes = e1.empdes.Trim(), e.udtdtm, e.uptpsn, e2.gdsdes, e2.spc, e2.bsepkg }).FirstOrDefault(); if (qryPkgbcd != null) { //return RInfo("I0499", pkgbcd.Trim(), qryPkgbcd.gdsid, qryPkgbcd.gdsdes, qryPkgbcd.spc, qryPkgbcd.bsepkg, qryPkgbcd.udtdtm, qryPkgbcd.uptpsndes); return(RInfo("I0499", qryPkgbcd)); } string gdsid1 = GetGdsidByGdsidOrBcd(pkgbcd); if (!string.IsNullOrEmpty(gdsid1)) { return(RInfo("I0505")); } string bcd = GetABcdByGdsid1(gdsid); if (bcd == pkgbcd) { return(RInfo("I0504", pkgbcd, bcd)); } wms_pkgbcd apkgbcd = new wms_pkgbcd(); apkgbcd.pkgbcd = pkgbcd; apkgbcd.gdsid = gdsid; apkgbcd.uptpsn = LoginInfo.Usrid; apkgbcd.udtdtm = GetCurrentDate(); WmsDc.wms_pkgbcd.InsertOnSubmit(apkgbcd); WmsDc.SubmitChanges(); return(RSucc("成功", qryPkgbcd, "S0238")); }
protected void RedcStkotQtyNew(stkotdtl[] stkotdtl, double diffQty) { double diff = diffQty; if (diffQty == 0) { return; } foreach (stkotdtl d in stkotdtl) { if (diffQty == 0) { break; } if (d.preqty == null) { d.preqty = d.qty; } if (diff > 0 && diff >= d.qty) { diff -= d.qty; d.qty = 0; d.qty = Math.Round(d.qty, 4, MidpointRounding.AwayFromZero); d.pkgqty = Math.Round(d.qty, 4, MidpointRounding.AwayFromZero); d.taxamt = Math.Round(d.qty * d.prc * d.taxrto, 4); d.amt = Math.Round(d.qty * d.prc, 4); d.salamt = d.qty * d.salprc; d.patamt = Math.Round(d.qty * d.taxprc, 4); d.stotcstamt = Math.Round(d.qty * d.stotcstprc.Value, 4); } else if (diff > 0 && diff < d.qty) { d.qty = d.qty - diff; diff = 0; d.qty = Math.Round(d.qty, 4, MidpointRounding.AwayFromZero); d.pkgqty = Math.Round(d.qty, 4, MidpointRounding.AwayFromZero); d.taxamt = Math.Round(d.qty * d.prc * d.taxrto, 4); d.amt = Math.Round(d.qty * d.prc, 4); d.salamt = d.qty * d.salprc; d.patamt = Math.Round(d.qty * d.taxprc, 4); d.stotcstamt = Math.Round(d.qty * d.stotcstprc.Value, 4); } } WmsDc.SubmitChanges(ConflictMode.FailOnFirstConflict); }
private void CkBzFlg(stkot p) { i(p.wmsno, "", System.DateTime.Now.ToString("yyyyMMddHHmmss.fff"), Request["rnd"], "3", LoginInfo.DefSavdptid); //盘点是否有为空的明细 var qrydtl = p.stkotdtl.Where(e => e.qty == 0 && e.bzflg == GetN()); foreach (stkotdtl d in qrydtl) { d.bzflg = GetY(); d.bzr = LoginInfo.Usrid; d.bzdat = GetCurrentDate(); } WmsDc.SubmitChanges(); //修改播种标记 p.bzflg = GetY(); //审核配送单 p.chkflg = GetY(); p.chkdat = GetCurrentDay(); p.ckr = LoginInfo.Usrid; //写入dtrlog //查看是否dtrlog已经有单据,没有就插入 var qry = WmsDc.dtrlog .Where(e => e.rcvdptid == p.rcvdptid && e.bllno == p.stkouno && e.bllid == p.bllid) .Select(e => e.bllno); var arrqry = qry.ToArray(); if (arrqry.Length <= 0) { dtrlog dl = new dtrlog(); dl.bllid = p.bllid; dl.bllno = p.stkouno; dl.rcvdptid = p.rcvdptid; WmsDc.dtrlog.InsertOnSubmit(dl); } if (!(WmsDc.stklst.Where(e => e.stkouno == p.stkouno)).Any()) { stklst astklst = new stklst(); astklst.stkouno = p.stkouno; WmsDc.stklst.InsertOnSubmit(astklst); WmsDc.SubmitChanges(); } i(p.wmsno, "", System.DateTime.Now.ToString("yyyyMMddHHmmss.fff"), Request["rnd"], "4", LoginInfo.DefSavdptid); }
/// <summary> /// 日志记录 /// </summary> /// <param name="man"></param> /// <param name="mdlid"></param> /// <param name="wmsno"></param> /// <param name="bllid"></param> /// <param name="actid"></param> /// <param name="brief"></param> /// <param name="qu"></param> /// <param name="savdptid"></param> public void i(String man, String mdlid, String wmsno, String bllid, String actid, String brief, String qu, String savdptid) { wms_log log = new wms_log(); log.brief = brief; log.logact = actid; log.logdat = DateTime.Now.ToString("yyyyMMddHHmmss"); log.logman = man; log.logmdl = "[PDA]" + (mdlid.Length >= 5 ? mdlid.Substring(0, 5) : mdlid); log.qu = qu; log.savdptid = savdptid; log.wmsno = wmsno; log.bllid = bllid; WmsDc.wms_log.InsertOnSubmit(log); WmsDc.SubmitChanges(); }
public ActionResult AdPrftOLsses(String wmsno, String barcodes, String gdsids, String gdstypes, String bthnos, String vlddats, String qtys, String rsns) { using (TransactionScope scop = new TransactionScope(TransactionScopeOption.Required, options)) { //判断barcodes、gdsids、gdstypes、qtys是否数量一致 String[] barcode = barcodes.Split(','); String[] gdsid = gdsids.Split(','); String[] qty = qtys.Split(','); String[] gdstype = gdstypes.Split(','); String[] bthno = bthnos.Split(','); String[] vlddat = vlddats.Split(','); String[] rsn = rsns.Split(','); List <object> retObjs = new List <object>(); if ( (barcode.Length != gdsid.Length) || (barcode.Length != qty.Length) || (gdsid.Length != qty.Length) || (gdstype.Length != gdsid.Length) || (rsn.Length != gdsid.Length) ) { return(RInfo("I0202")); } for (int i = 0; i < gdsid.Length; i++) { double d = 0; if (!double.TryParse(qty[i], out d)) { return(RInfo("I0203", gdsid[i], qty[i])); } JsonResult jr = (JsonResult)AdPrftOLss(wmsno, barcode[i], gdsid[i], gdstype[i], bthno[i], vlddat[i], d, rsn[i]); ResultMessage rm = (ResultMessage)jr.Data; if (rm.ResultCode != ResultMessage.RESULTMESSAGE_SUCCESS) { return(jr); } retObjs.Add(rm.ResultObject); } WmsDc.SubmitChanges(); scop.Complete(); return(RSucc("成功", retObjs, "S0102")); } }
/// <summary> /// 修改损溢单 /// </summary> /// <param name="wmsno"></param> /// <param name="gdsid"></param> /// <param name="gdstype"></param> /// <param name="newbarcode">新仓位码</param> /// <param name="rcdidx"></param> /// <param name="qty"></param> /// <returns></returns> public ActionResult MdAPrftOLss(String wmsno, String gdsid, String newbarcode, String gdstype, int rcdidx, double qty, String rsn) { using (TransactionScope scop = new TransactionScope(TransactionScopeOption.Required, options)) { //检查单号是否存在 var qrymst = from e in WmsDc.wms_cang_111 where e.wmsno == wmsno && e.bllid == WMSConst.BLL_TYPE_PROFITORLOSS && qus.Contains(e.qu.Trim()) select e; var arrqrymst = qrymst.ToArray(); var qrydtl = from e in WmsDc.wms_cangdtl_111 where e.wmsno == wmsno && e.bllid == WMSConst.BLL_TYPE_PROFITORLOSS && e.gdsid == gdsid && e.rcdidx == rcdidx orderby e.rcdidx descending select e; var arrqrydtl = qrydtl.ToArray(); //检查barcode是否有效 if (!IsExistBarcode(newbarcode)) { return(RInfo("I0191", newbarcode)); } //单据是否找到 if (arrqrymst.Length <= 0) { return(RNoData("N0116")); } //检查是否有数据权限 wms_cang_111 mst = arrqrymst[0]; //正在生成拣货单,请稍候重试 ,如果是报损 if (mst.times.Trim() == "-") { string quRetrv = mst.qu; if (DoingRetrieve(LoginInfo.DefStoreid, quRetrv)) { return(RInfo("I0192")); } } if (!qus.Contains(mst.qu.Trim())) { return(RInfo("I0193")); } //检查单号是否已经审核 if (mst != null && mst.chkflg == GetY()) { return(RInfo("I0194")); } //未找到该商品 if (arrqrydtl.Length <= 0) { return(RNoData("N0117")); } //是否是本人制单 if (!IsSameLogin(mst.mkr)) { return(RInfo("I0195")); } //判断QTY应该为正为负数 if (mst.times.Trim() == "+" && qty < 0) { return(RInfo("I0196")); } if (mst.times.Trim() == "-" && qty > 0) { return(RInfo("I0197")); } if (mst.times.Trim() == "-" && rsn.Trim() == "") { return(RInfo("I0198", gdsid)); } //判断新仓位码是否和主单是一个区 if (mst.qu.Trim() != newbarcode.Substring(0, 2)) { return(RInfo("I0199")); } //修改数量 arrqrydtl[0].barcode = newbarcode; arrqrydtl[0].qty = Math.Round(qty, 4, MidpointRounding.AwayFromZero); arrqrydtl[0].pkgqty = Math.Round(qty, 4, MidpointRounding.AwayFromZero); arrqrydtl[0].preqty = Math.Round(qty, 4, MidpointRounding.AwayFromZero); if (!String.IsNullOrEmpty(gdstype)) { arrqrydtl[0].gdstype = gdstype; } //如果是报损,判断是否有库存 if (mst.times.Trim() == "-") { //修改数量 wms_cangdtl_111 dtl = arrqrydtl[0]; //得到一个商品的库存数量 GdsInBarcode[] gb = GetAGdsQtyInBarcode(dtl.barcode, gdsid, dtl.gdstype) .Where(e => e.vlddat == dtl.vlddat.Trim() && e.bthno == dtl.bthno.Trim()) .ToArray(); double bqty = (gb == null || gb.Length <= 0) ? 0 : gb[0].sqty; double ktqty = Math.Abs(bqty) + Math.Abs(dtl.qty); //可调数量 = 库存数量+本单该商品的数量 //如果 需调整数量 > 可调数量 if (Math.Abs(qty) > Math.Abs(ktqty)) { return(RInfo("I0200", qty, ktqty)); } dtl.brfdtl = rsn.ToString(); //return RInfo( "I0201",gdsid ,arrqrydtl[0].barcode ); } try { WmsDc.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, mst); //检查单号是否已经审核 if (mst != null && mst.chkflg == GetY()) { return(RInfo("I0207")); } WmsDc.SubmitChanges(); //修改主单时间戳 string sql = @"update wms_cang_111 set bllid='111' where wmsno='" + mst.wmsno + "' and bllid='111' and udtdtm={0}"; int iEff = WmsDc.ExecuteCommand(sql, mst.udtdtm); if (iEff == 0) { return(RInfo("I0207")); } scop.Complete(); return(RSucc("成功", arrqrydtl[0], "S0101")); } catch (Exception ex) { return(RErr(ex.Message, "E0025")); } } }
public ActionResult DlPrftOLssBll(String wmsno) { using (TransactionScope scop = new TransactionScope(TransactionScopeOption.Required, options)) { //检查单号是否存在 var qrymst = from e in WmsDc.wms_cang_111 where e.wmsno == wmsno && e.bllid == WMSConst.BLL_TYPE_PROFITORLOSS && qus.Contains(e.qu.Trim()) select e; var arrqrymst = qrymst.ToArray(); var qrydtl = from e in WmsDc.wms_cangdtl_111 where e.wmsno == wmsno && e.bllid == WMSConst.BLL_TYPE_PROFITORLOSS select e; var arrqrydtl = qrydtl.ToArray(); int iDtlCount = arrqrydtl.Length; //单据是否找到 if (arrqrymst.Length <= 0) { return(RNoData("N0115")); } //检查是否有数据权限 wms_cang_111 mst = arrqrymst[0]; //正在生成拣货单,请稍候重试 if (mst.times.Trim() == "-") { string quRetrv = mst.qu; if (DoingRetrieve(LoginInfo.DefStoreid, quRetrv)) { return(RInfo("I0187")); } } if (!qus.Contains(mst.qu.Trim())) { return(RInfo("I0188")); } //是否是本人制单 if (!IsSameLogin(mst.mkr)) { return(RInfo("I0189")); } //检查单号是否已经审核 if (mst != null && mst.chkflg == GetY()) { return(RInfo("I0190")); } try { //删除单据明细 WmsDc.wms_cangdtl_111.DeleteAllOnSubmit(arrqrydtl); WmsDc.SubmitChanges(); WmsDc.wms_cang_111.DeleteAllOnSubmit(arrqrymst); iDelCangDtl111(arrqrydtl, mst); iDelCangMst111(mst); //删除主单据 WmsDc.SubmitChanges(); scop.Complete(); return(RSucc("成功", null, "S0100")); } catch (Exception ex) { return(RErr(ex.Message, "E0024")); } } }
public ActionResult DlPrftOLssBllDtl(String wmsno, String gdsid, int rcdidx) { using (TransactionScope scop = new TransactionScope(TransactionScopeOption.Required, options)) { //检查单号是否存在 var qrymst = from e in WmsDc.wms_cang_111 where e.wmsno == wmsno && e.bllid == WMSConst.BLL_TYPE_PROFITORLOSS && qus.Contains(e.qu.Trim()) select e; var arrqrymst = qrymst.ToArray(); var qrydtl = from e in WmsDc.wms_cangdtl_111 where e.wmsno == wmsno //&& e.gdsid == gdsid && e.rcdidx == rcdidx && e.bllid == WMSConst.BLL_TYPE_PROFITORLOSS select e; var arrqrydtl = qrydtl.ToArray(); var arrqrydtl1 = qrydtl.Where(e => e.gdsid == gdsid && e.rcdidx == rcdidx).ToArray(); //单据是否找到 if (arrqrymst.Length <= 0) { return(RNoData("N0114")); } //检查是否有数据权限 wms_cang_111 mst = arrqrymst[0]; //正在生成拣货单,请稍候重试 if (mst.times.Trim() == "-") { string quRetrv = mst.qu; if (DoingRetrieve(LoginInfo.DefStoreid, quRetrv)) { return(RInfo("I0182")); } } if (!qus.Contains(mst.qu.Trim())) { return(RInfo("I0184")); } //检查单号是否已经审核 if (mst != null && mst.chkflg == GetY()) { return(RInfo("I0185")); } //是否是本人制单 if (!IsSameLogin(mst.mkr)) { return(RInfo("I0186")); } //删除单据明细 int iDtlCnt = arrqrydtl.Length; WmsDc.wms_cangdtl_111.DeleteAllOnSubmit(arrqrydtl1); iDelCangDtl111(arrqrydtl1, mst); if (iDtlCnt == 1) { WmsDc.wms_cang_111.DeleteAllOnSubmit(arrqrymst); iDelCangMst111(mst); } //删除主单据 try { //检查单号是否已经审核 if (mst != null && mst.chkflg == GetY()) { return(RInfo("I0207")); } WmsDc.SubmitChanges(); if (iDtlCnt > 1) { //修改主单时间戳 //WmsDc.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, mst); string sql = @"update wms_cang_111 set bllid='111' where wmsno='" + mst.wmsno + "' and bllid='111' and udtdtm={0}"; int iEff = WmsDc.ExecuteCommand(sql, mst.udtdtm); if (iEff == 0) { return(RInfo("I0207")); } } WmsDc.SubmitChanges(); scop.Complete(); return(RSucc("成功", null, "S0099")); } catch (Exception ex) { return(RErr(ex.Message, "E0023")); } } }
public ActionResult MkPrftOLssBll(String barcodes, String gdsids, String gdstypes, String bthnos, String vlddats, String qtys, String rsns) { using (TransactionScope scop = new TransactionScope(TransactionScopeOption.Required, options)) { String[] barcode = barcodes.Split(','); String qu = barcode[0].Substring(0, 2); String savdptid = GetSavdptidByQu(qu); return(MakeNewBllNo(savdptid, qu, WMSConst.BLL_TYPE_PROFITORLOSS, (bllno) => { //检查并创建明细 JsonResult jr = (JsonResult)_MakeParam(bllno, barcodes, gdsids, gdstypes, bthnos, vlddats, qtys, rsns); ResultMessage rm = (ResultMessage)jr.Data; if (rm.ResultCode != ResultMessage.RESULTMESSAGE_SUCCESS) { return rm; } //创建主表 wms_cangdtl_111[] dtls = (wms_cangdtl_111[])rm.ResultObject; wms_cang_111 mst = new wms_cang_111(); mst.wmsno = bllno; mst.bllid = WMSConst.BLL_TYPE_PROFITORLOSS; mst.savdptid = savdptid; mst.prvid = ""; //String qu = dtls[0].barcode.Substring(0,2) ; //GetQuByGdsid(dtls[0].gdsid, LoginInfo.DefStoreid); mst.qu = qu; mst.rcvdptid = ""; String symbol = "+"; //symbol="+"报溢,symbol="-"报损 if (dtls.Length > 0) { double?dqty = dtls[0].qty; symbol = dqty != null && dqty >= 0 ? "+" : "-"; } mst.times = symbol; //正在生成拣货单,请稍候重试 if (mst.times.Trim() == "-") { string quRetrv = qu; if (DoingRetrieve(LoginInfo.DefStoreid, quRetrv)) { return RRInfo("I0182"); } } /*if (HasCkBll(qu, LoginInfo.Usrid, savdptid, symbol)) * { * return RRInfo("I0441"); * * }*/ mst.lnkbocino = ""; mst.lnkbocidat = ""; mst.mkr = LoginInfo.Usrid; mst.mkedat = GetCurrentDay(); mst.mkedat2 = GetCurrentDate(); mst.ckr = ""; mst.chkflg = GetN(); mst.chkdat = ""; mst.opr = LoginInfo.Usrid; mst.brief = ""; mst.lnkbllid = ""; mst.lnkno = ""; mst.lnkbrief = ""; //如果是报损,判断是否有库存 foreach (wms_cangdtl_111 d in dtls) { if (mst.times.Trim() == "-") { if (d.brfdtl.Trim() == "") { return RRInfo("I0442", d.gdsid); } //得到一个商品的库存数量 GdsInBarcode[] gb = GetAGdsQtyInBarcode(d.barcode, d.gdsid, d.gdstype) .Where(e => e.vlddat == d.vlddat.Trim() && e.bthno == d.bthno.Trim()) .ToArray(); double bqty = (gb == null || gb.Length <= 0) ? 0 : gb[0].sqty; double ktqty = bqty; //可调数量 = 库存数量 //如果 需调整数量 > 可调数量 if (d.qty > ktqty) { return RRNoData("N0238", d.gdsid, d.barcode); } } } try { WmsDc.wms_cang_111.InsertOnSubmit(mst); WmsDc.SubmitChanges(); WmsDc.wms_cangdtl_111.InsertAllOnSubmit(dtls); WmsDc.SubmitChanges(); scop.Complete(); return RRSucc("成功", mst, "S0217"); } catch (Exception ex) { return RRErr(ex.Message, "E0064"); rm.ResultObject = null; return rm; } })); } }
public ActionResult DlInvCkBll(String wmsno) { //检查单号是否存在 var qrymst = from e in WmsDc.wms_cang_105 where e.wmsno == wmsno && e.bllid == WMSConst.BLL_TYPE_INVENTORY_CHECK select e; var arrqrymst = qrymst.ToArray(); var qrydtl = from e in WmsDc.wms_cangdtl_105 where e.wmsno == wmsno && e.bllid == WMSConst.BLL_TYPE_INVENTORY_CHECK select e; var arrqrydtl = qrydtl.ToArray(); //单据是否找到 if (arrqrymst.Length <= 0) { return(RNoData("N0094")); } //检查是否有数据权限 wms_cang_105 mst = arrqrymst[0]; ////正在生成拣货单,请稍候重试 //string quRetrv = mst.qu; //if (DoingRetrieve(LoginInfo.DefStoreid, quRetrv)) //{ // return RInfo( "I0148" ); //} if (!qus.Contains(mst.qu.Trim())) { return(RInfo("I0149")); } //检查单号是否已经审核 if (mst != null && mst.chkflg == GetY()) { return(RInfo("I0150")); } //检查明细是否有审核的 foreach (wms_cangdtl_105 d in arrqrydtl) { if (d.bokflg == GetY()) { return(RInfo("I0151")); } } //删除单据明细 WmsDc.wms_cangdtl_105.DeleteAllOnSubmit(arrqrydtl); WmsDc.wms_cang_105.DeleteAllOnSubmit(arrqrymst); iDelCangDtl105(arrqrydtl, mst); iDelCangMst105(mst); //删除主单据 try { WmsDc.SubmitChanges(); return(RSucc("成功", null, "S0082")); } catch (Exception ex) { return(RErr(ex.Message, "E0018")); } }
public ActionResult BokBozBllGds(String wmsno, String stkouno, String rcvdptid, String gdsid, double qty, int?rcdidx) { gdsid = GetGdsidByGdsidOrBcd(gdsid); ////正在生成拣货单,请稍候重试 //string quRetrv = GetQuByGdsid(gdsid, LoginInfo.DefStoreid).FirstOrDefault(); //if (DoingRetrieve(LoginInfo.DefStoreid, quRetrv)) //{ // return RInfo( "I0064" ); //} if (gdsid == null) { return(RInfo("I0065")); } String Dat = GetCurrentDay(); var qry = from e in WmsDc.stkin from e2 in e.stkindtl join e1 in WmsDc.sftdtl on e.stkinno equals e1.stkinno where //e.stkinno == stkouno && e.outwmsno == wmsno && e.bllid == WMSConst.BLL_TYPE_INNERADJ && e.outwmsbllid == WMSConst.BLL_TYPE_RETRIEVE && dpts.Contains(e.dptid.Trim()) && savdpts.Contains(e1.sft_sdtout) //&& e1.sft_sdtout == rcvdptid && e2.gdsid == gdsid && e.savdptid == rcvdptid select e; var arrqry = qry.Distinct().ToArray(); if (arrqry.Length <= 0) { return(RNoData("N0037")); } var stkotgds = arrqry[0]; if (wmsno == null) { wmsno = stkotgds.outwmsno; } if (stkotgds.chkflg == GetY()) { return(RInfo("I0066")); } /*if (stkotgds.bzflg == GetY()) * { * return RInfo( "I0067" ); * }*/ var qrydtl = from e in arrqry from e1 in e.stkindtl where e1.gdsid.Trim() == gdsid.Trim() //&& e.rcdidx == rcdidx select e1; var arrqrydtl = qrydtl.ToArray(); if (arrqrydtl.Length <= 0) { return(RNoData("N0038")); } var stkdtl = arrqrydtl[0]; double?preqty = arrqrydtl.Sum(e => e.qty); if (preqty < qty) //如果实收数量大于应收数量就退出 { return(RInfo("I0068")); } if (preqty != qty) { GetRealteQuResult qu = GetRealteQu(stkotgds.dptid, LoginInfo.DefSavdptid); Log.i(LoginInfo.Usrid, Mdlid, stkotgds.stkinno, stkotgds.bllid, "播种审核", gdsid.Trim() + ":应播:" + preqty + ";实播:" + qty, qu.qu, qu.savdptid); } #region 检查参数有效性 if (arrqry == null) { return(RInfo("I0069")); } if (stkdtl == null) { return(RInfo("I0070")); } //查看该商品是否已经被非本人确认 if (stkdtl.bzflg == GetY() && stkdtl.bzr != LoginInfo.Usrid) { return(RInfo("I0071", stkdtl.bzr)); } #endregion //修改审核标记 try { /* * preqty = preqty==null ? qty : preqty * * 公式:taxamt = qty*prc*taxrto * amt = qty*prc * salamt = qty*salprc * patamt = qty*taxprc * stotcstamt = qty*stotcstprc * */ //stkdtl.qty = Math.Round(qty, 4, MidpointRounding.AwayFromZero); //stkdtl.pkgqty = Math.Round(qty, 4, MidpointRounding.AwayFromZero); foreach (stkindtl s in arrqrydtl) { s.bzdat = GetCurrentDate(); s.bzr = LoginInfo.Usrid; s.bzflg = GetY(); } //stkdtl.taxamt = Math.Round(qty * stkdtl.prc * stkdtl.taxrto, 4, MidpointRounding.AwayFromZero); //stkdtl.amt = Math.Round(qty * stkdtl.prc, 4); //stkdtl.salamt = qty * stkdtl.salprc; //stkdtl.patamt = Math.Round(qty * stkdtl.taxprc, 4); //stkdtl.stotcstamt = Math.Round(qty * stkdtl.stotcstprc.Value, 4); //判断改单据是否已经全部商品已经确认,全部确认后的,实收商品总数和应收商品总数相同就直接修改主单的审核标记 /*double? sqty = stkotgds * .sivcdtl * .Where(e=>e.bzflg==GetY()) * .Sum(e=>e.qty==null?0:e.qty); * double? spreqty = stkotgds.sivcdtl.Sum(e=>e.preqty==null?e.qty:e.preqty); * if(sqty==spreqty){ * stkotgds.chkflg = GetY(); * stkotgds.chkdat = Dat; * stkotgds.ckr = LoginInfo.Usrid; * stklst astklst = new stklst(); * astklst.stkouno = stkotgds.stkouno; * WmsDc.stklst.InsertOnSubmit(astklst); * }*/ WmsDc.SubmitChanges(); ///如果明细全部播种完 ///就修改审核标记 ///和播种标记 double sqtycnt = stkotgds .stkindtl .Where(e => e.bzflg == GetY() && Math.Round(e.qty, 2, MidpointRounding.AwayFromZero) != 0) .Count(); double spreqtycnt = stkotgds .stkindtl .Where(e => Math.Round(e.qty, 2, MidpointRounding.AwayFromZero) != 0) .Count(); if (sqtycnt == spreqtycnt) { CkBzFlg(stkotgds); //查看有没有明细为空的单据,直接修改播种标记 var qryZeroBz = from e in WmsDc.stkindtl where e.stkin.outwmsno == wmsno && e.stkin.outwmsbllid == WMSConst.BLL_TYPE_RETRIEVE group e by e.stkinno into g select new { sivcno = g.Key, sqty = g.Sum(e => e.qty) }; qryZeroBz = qryZeroBz.Where(e => e.sqty == 0); var qryZeroBzmst = from e in WmsDc.stkin join e1 in qryZeroBz on e.stkinno equals e1.sivcno where e.chkflg != GetY() select e; foreach (var q in qryZeroBzmst) { CkBzFlg(q); foreach (var d in q.stkindtl) { d.bzflg = GetY(); d.bzdat = GetCurrentDate(); d.bzr = LoginInfo.Usrid; } } } WmsDc.SubmitChanges(); return(RSucc("成功", null, "S0025")); } catch (Exception ex) { return(RErr(ex.Message, "E0009")); } }
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); }
/// <summary> /// 盘点单明细修改 /// </summary> /// <param name="wmsno"></param> /// <param name="gdsid"></param> /// <param name="rcdidx"></param> /// <param name="qty"></param> /// <returns></returns> public ActionResult MdInvCkBllDtl(String wmsno, String gdsid, int rcdidx, double qty) { //检查单号是否存在 var qrymst = from e in WmsDc.wms_cang_105 where e.wmsno == wmsno && e.bllid == WMSConst.BLL_TYPE_INVENTORY_CHECK select e; var arrqrymst = qrymst.ToArray(); var qrydtl = from e in WmsDc.wms_cangdtl_105 where e.wmsno == wmsno && e.gdsid == gdsid && e.rcdidx == rcdidx && e.bllid == WMSConst.BLL_TYPE_INVENTORY_CHECK select e; var arrqrydtl = qrydtl.ToArray(); //单据是否找到 if (arrqrymst.Length <= 0) { return(RNoData("N0092")); } //检查是否有数据权限 wms_cang_105 mst = arrqrymst[0]; ////正在生成拣货单,请稍候重试 //string quRetrv = mst.qu; //if (DoingRetrieve(LoginInfo.DefStoreid, quRetrv)) //{ // return RInfo( "I0144" ); //} if (!qus.Contains(mst.qu.Trim())) { return(RInfo("I0145")); } //检查单号是否已经审核 if (mst != null && mst.chkflg == GetY()) { return(RInfo("I0146")); } if (arrqrydtl.Length <= 0) { return(RNoData("N0093")); } wms_cangdtl_105 dtl = arrqrydtl[0]; //明细如果已经确认就不能修改明细了 if (dtl.bokflg == GetY()) { return(RInfo("I0147")); } dtl.qty = Math.Round(qty, 4, MidpointRounding.AwayFromZero); dtl.pkgqty = dtl.qty; dtl.preqty = dtl.qty; try { WmsDc.SubmitChanges(); return(RSucc("成功", null, "S0081")); } catch (Exception ex) { return(RErr(ex.Message, "E0017")); } }
//扣减stkotdtl里面的库存 /// <summary> /// 扣减stkotdtl里面的库存 /// </summary> /// <param name="stkotdtl">明细</param> /// <param name="diffQty">差异数</param> protected void RedcStkotQty(stkotdtl[] stkotdtl, double diffQty) { double diff = diffQty; if (diffQty == 0) { return; } //减小数部分 #region 减小数部分 foreach (stkotdtl d in stkotdtl) { if (diffQty == 0) { break; } if (d.preqty == null) { d.preqty = d.qty; } double xtmp = d.qty * 10000 % 10000 / 10000; if (diff > 0 && diff >= xtmp) { diff -= xtmp; d.qty -= xtmp; d.qty = Math.Round(d.qty, 4, MidpointRounding.AwayFromZero); d.pkgqty = Math.Round(d.qty, 4, MidpointRounding.AwayFromZero); d.taxamt = Math.Round(d.qty * d.prc * d.taxrto, 4); d.amt = Math.Round(d.qty * d.prc, 4); d.salamt = d.qty * d.salprc; d.patamt = Math.Round(d.qty * d.taxprc, 4); d.stotcstamt = Math.Round(d.qty * d.stotcstprc.Value, 4); } else if (diff > 0 && diff < xtmp) { d.qty -= diff; diff = 0; d.qty = Math.Round(d.qty, 4, MidpointRounding.AwayFromZero); d.pkgqty = Math.Round(d.qty, 4, MidpointRounding.AwayFromZero); d.taxamt = Math.Round(d.qty * d.prc * d.taxrto, 4); d.amt = Math.Round(d.qty * d.prc, 4); d.salamt = d.qty * d.salprc; d.patamt = Math.Round(d.qty * d.taxprc, 4); d.stotcstamt = Math.Round(d.qty * d.stotcstprc.Value, 4); } } #endregion 减小数部分 //减去零散件规 #region 减去零散件规 wms_pkg[] lsPkg = (from e in WmsDc.wms_pkg where stkotdtl.Select(ee => ee.gdsid.Trim()).Contains(e.gdsid) select e).ToArray(); foreach (stkotdtl d in stkotdtl) { if (diffQty == 0) { break; } if (d.preqty == null) { d.preqty = d.qty; } double xtmp = (double)lsPkg.Where(e => e.gdsid.Trim() == d.gdsid).Select(e => Convert.ToDecimal(d.qty) % Convert.ToDecimal(e.cnvrto)).FirstOrDefault(); if (diff > 0 && diff >= xtmp) { diff -= xtmp; d.qty -= xtmp; d.qty = Math.Round(d.qty, 4, MidpointRounding.AwayFromZero); d.pkgqty = Math.Round(d.qty, 4, MidpointRounding.AwayFromZero); d.taxamt = Math.Round(d.qty * d.prc * d.taxrto, 4); d.amt = Math.Round(d.qty * d.prc, 4); d.salamt = d.qty * d.salprc; d.patamt = Math.Round(d.qty * d.taxprc, 4); d.stotcstamt = Math.Round(d.qty * d.stotcstprc.Value, 4); } else if (diff > 0 && diff < xtmp) { d.qty -= diff; diff = 0; d.qty = Math.Round(d.qty, 4, MidpointRounding.AwayFromZero); d.pkgqty = Math.Round(d.qty, 4, MidpointRounding.AwayFromZero); d.taxamt = Math.Round(d.qty * d.prc * d.taxrto, 4); d.amt = Math.Round(d.qty * d.prc, 4); d.salamt = d.qty * d.salprc; d.patamt = Math.Round(d.qty * d.taxprc, 4); d.stotcstamt = Math.Round(d.qty * d.stotcstprc.Value, 4); } } #endregion 减去零散件规 //减去从大到小的数量 #region 减去从大到小的数量 foreach (stkotdtl d in stkotdtl) { if (diffQty == 0) { break; } if (d.preqty == null) { d.preqty = d.qty; } if (diff > 0 && diff >= d.qty) { diff -= d.qty; d.qty = 0; d.qty = Math.Round(d.qty, 4, MidpointRounding.AwayFromZero); d.pkgqty = Math.Round(d.qty, 4, MidpointRounding.AwayFromZero); d.taxamt = Math.Round(d.qty * d.prc * d.taxrto, 4); d.amt = Math.Round(d.qty * d.prc, 4); d.salamt = d.qty * d.salprc; d.patamt = Math.Round(d.qty * d.taxprc, 4); d.stotcstamt = Math.Round(d.qty * d.stotcstprc.Value, 4); } else if (diff > 0 && diff < d.qty) { d.qty = d.qty - diff; diff = 0; d.qty = Math.Round(d.qty, 4, MidpointRounding.AwayFromZero); d.pkgqty = Math.Round(d.qty, 4, MidpointRounding.AwayFromZero); d.taxamt = Math.Round(d.qty * d.prc * d.taxrto, 4); d.amt = Math.Round(d.qty * d.prc, 4); d.salamt = d.qty * d.salprc; d.patamt = Math.Round(d.qty * d.taxprc, 4); d.stotcstamt = Math.Round(d.qty * d.stotcstprc.Value, 4); } } WmsDc.SubmitChanges(); #endregion 减去从大到小的数量 }
public ActionResult BokRetrieve(String wmsno, String bllid, String bocino, String clsid, String checi, String gdsid, double qty) { //正在生成拣货单,请稍候重试 //string quRetrv = GetQuByGdsid(gdsid, LoginInfo.DefStoreid).FirstOrDefault(); //if (DoingRetrieve(LoginInfo.DefStoreid, quRetrv)) //{ // return RInfo( "I0102" ); //} //得到wms_cutgds var qry = from e in WmsDc.wms_cutgds join e1 in WmsDc.gds on e.gdsid equals e1.gdsid where e.bocino == bocino.Trim() && e.clsid == clsid.Trim() && e.checi == checi.Trim() && e.wmsno == wmsno.Trim() && e.bllid == bllid.Trim() && e.gdsid == gdsid.Trim() && e.savdptid == LoginInfo.DefSavdptid && dpts.Contains(e1.dptid) select e; var arrqry = qry.ToArray(); if (arrqry.Length < 0) { return(RNoData("N0066")); } wms_cutgds cutgds = arrqry[0]; //得到对应的stkotdtl里面的未播种,未审核的单据商品信息 /*var qrystkot = from e in WmsDc.stkotdtl * where e.stkot.wmsno == wmsno.Trim() * && e.stkot.wmsbllid == bllid.Trim() * && e.stkot.chkflg == GetN() * && e.stkot.bzflg == GetN() * && dpts.Contains(e.stkot.dptid) * && e.gdsid == gdsid.Trim() * select e; */ var qrystkot = from e in WmsDc.stkot join e1 in WmsDc.stkotdtl on e.stkouno equals e1.stkouno join e2 in WmsDc.gds on e1.gdsid equals e2.gdsid join e3 in WmsDc.wms_cang on new { e.wmsno, e.wmsbllid } equals new { e3.wmsno, wmsbllid = e3.bllid } join e4 in WmsDc.wms_boci on new { dh = e3.lnkbocino, sndtmd = e3.lnkbocidat, e3.qu } equals new { e4.dh, e4.sndtmd, e4.qu } join e5 in WmsDc.view_pssndgds on new { e4.dh, e4.clsid, e4.sndtmd, e.rcvdptid, e4.qu } equals new { e5.dh, e5.clsid, e5.sndtmd, e5.rcvdptid, e5.qu } join e6 in WmsDc.dpt on e.rcvdptid equals e6.dptid where e.wmsno == wmsno && e.savdptid == LoginInfo.DefSavdptid && dpts.Contains(e.dptid.Trim()) && e.bllid == WMSConst.BLL_TYPE_DISPATCH && e5.busid.Trim().Substring(e5.busid.Trim().Length - 1, 1) == checi && e.wmsbllid == bllid.Trim() && e.chkflg == GetN() && e.bzflg == GetN() && e1.gdsid == gdsid.Trim() //&& (e1.bzflg == GetN() || e1.bzflg == null) orderby e1.bzflg, e1.gdsid select e1; var arrqrystkot = qrystkot.ToArray(); if (arrqrystkot.Length <= 0) { return(RNoData("N0067")); } stkotdtl[] stkotdtl = arrqrystkot; //得到wms_cang的信息 var qrycang = from e in WmsDc.wms_cang where e.wmsno == wmsno.Trim() && e.bllid == bllid.Trim() && qus.Contains(e.qu) select e; var arrqrycang = qrycang.ToArray(); if (arrqrycang.Length <= 0) { return(RNoData("N0068")); } wms_cang[] wms_cang = arrqrycang; //得到wms_cang的信息 var qrycangdtl = from e in WmsDc.wms_cangdtl where e.wmsno == wmsno.Trim() && e.bllid == bllid.Trim() && e.gdsid == gdsid.Trim() select e; var arrqrycangdtl = qrycangdtl.ToArray(); if (arrqrycangdtl.Length <= 0) { return(RNoData("N0069")); } wms_cangdtl[] wms_cangdtl = arrqrycangdtl; if (cutgds.chkflg == GetY()) { return(RInfo("I0103")); } // done: 取消对 5、分货确认时,发现数量小于应分货数量,要循环扣除对应的stkotdtl里面的qty 的注释 if (qty < stkotdtl.Sum(e => e.qty)) { Log.i(LoginInfo.Usrid, Mdlid, wmsno, bllid, Mdldes, gdsid.Trim() + ":应拣:" + Math.Round(stkotdtl.Sum(e => e.qty), 4, MidpointRounding.AwayFromZero) + ";实拣:" + Math.Round(qty, 4, MidpointRounding.AwayFromZero), "", LoginInfo.DefSavdptid); double diff = stkotdtl.Sum(e => e.qty) - qty; //减小数部分 #region 减小数部分 foreach (stkotdtl d in stkotdtl) { if (d.preqty == null) { d.preqty = d.qty; } double xtmp = d.qty * 10000 % 10000 / 10000; if (diff > 0 && diff >= xtmp) { diff -= xtmp; d.qty -= xtmp; d.qty = Math.Round(d.qty, 4, MidpointRounding.AwayFromZero); d.pkgqty = Math.Round(d.qty, 4, MidpointRounding.AwayFromZero); d.taxamt = Math.Round(d.qty * d.prc * d.taxrto, 4); d.amt = Math.Round(d.qty * d.prc, 4); d.salamt = d.qty * d.salprc; d.patamt = Math.Round(d.qty * d.taxprc, 4); d.stotcstamt = Math.Round(d.qty * d.stotcstprc.Value, 4); } else if (diff > 0 && diff < xtmp) { d.qty -= diff; diff = 0; d.qty = Math.Round(d.qty, 4, MidpointRounding.AwayFromZero); d.pkgqty = Math.Round(d.qty, 4, MidpointRounding.AwayFromZero); d.taxamt = Math.Round(d.qty * d.prc * d.taxrto, 4); d.amt = Math.Round(d.qty * d.prc, 4); d.salamt = d.qty * d.salprc; d.patamt = Math.Round(d.qty * d.taxprc, 4); d.stotcstamt = Math.Round(d.qty * d.stotcstprc.Value, 4); } } //WmsDc.SubmitChanges(); #endregion 减小数部分 //减去零散件规 #region 减去零散件规 foreach (stkotdtl d in stkotdtl) { if (d.preqty == null) { d.preqty = d.qty; } double xtmp = (double)WmsDc.ExecuteQuery <decimal>("select convert(decimal,{0}) % convert(decimal,e.cnvrto) from v_wms_pkg e where e.gdsid={1}", d.qty, d.gdsid).FirstOrDefault(); /*double xtmp = (from e in WmsDc.v_wms_pkg * where e.gdsid == d.gdsid * select Convert.ToInt32(d.qty) % e.cnvrto).FirstOrDefault();*/ if (diff > 0 && diff >= xtmp) { diff -= xtmp; d.qty -= xtmp; d.qty = Math.Round(d.qty, 4, MidpointRounding.AwayFromZero); d.pkgqty = Math.Round(d.qty, 4, MidpointRounding.AwayFromZero); d.taxamt = Math.Round(d.qty * d.prc * d.taxrto, 4); d.amt = Math.Round(d.qty * d.prc, 4); d.salamt = d.qty * d.salprc; d.patamt = Math.Round(d.qty * d.taxprc, 4); d.stotcstamt = Math.Round(d.qty * d.stotcstprc.Value, 4); } else if (diff > 0 && diff < xtmp) { d.qty -= diff; diff = 0; d.qty = Math.Round(d.qty, 4, MidpointRounding.AwayFromZero); d.pkgqty = Math.Round(d.qty, 4, MidpointRounding.AwayFromZero); d.taxamt = Math.Round(d.qty * d.prc * d.taxrto, 4); d.amt = Math.Round(d.qty * d.prc, 4); d.salamt = d.qty * d.salprc; d.patamt = Math.Round(d.qty * d.taxprc, 4); d.stotcstamt = Math.Round(d.qty * d.stotcstprc.Value, 4); } } //WmsDc.SubmitChanges(); #endregion 减去零散件规 //减去从大到小的数量 #region 减去从大到小的数量 foreach (stkotdtl d in stkotdtl) { if (d.preqty == null) { d.preqty = d.qty; } if (diff > 0 && diff >= d.qty) { diff -= d.qty; d.qty = 0; d.qty = Math.Round(d.qty, 4, MidpointRounding.AwayFromZero); d.pkgqty = Math.Round(d.qty, 4, MidpointRounding.AwayFromZero); d.taxamt = Math.Round(d.qty * d.prc * d.taxrto, 4); d.amt = Math.Round(d.qty * d.prc, 4); d.salamt = d.qty * d.salprc; d.patamt = Math.Round(d.qty * d.taxprc, 4); d.stotcstamt = Math.Round(d.qty * d.stotcstprc.Value, 4); } else if (diff > 0 && diff < d.qty) { d.qty = d.qty - diff; diff = 0; d.qty = Math.Round(d.qty, 4, MidpointRounding.AwayFromZero); d.pkgqty = Math.Round(d.qty, 4, MidpointRounding.AwayFromZero); d.taxamt = Math.Round(d.qty * d.prc * d.taxrto, 4); d.amt = Math.Round(d.qty * d.prc, 4); d.salamt = d.qty * d.salprc; d.patamt = Math.Round(d.qty * d.taxprc, 4); d.stotcstamt = Math.Round(d.qty * d.stotcstprc.Value, 4); } } WmsDc.SubmitChanges(); #endregion 减去从大到小的数量 /* * foreach (stkotdtl d in stkotdtl) * { * if (d.preqty==null) * { * d.preqty = d.qty; * } * if (diff > 0 && diff>=d.qty) * { * diff -= d.qty; * d.qty = 0; * * d.qty = Math.Round(d.qty, 4, MidpointRounding.AwayFromZero); * d.pkgqty = Math.Round(d.qty, 4, MidpointRounding.AwayFromZero); * d.taxamt = Math.Round(d.qty * d.prc * d.taxrto, 4); * d.amt = Math.Round(d.qty * d.prc, 4); * d.salamt = d.qty * d.salprc; * d.patamt = Math.Round(d.qty * d.taxprc, 4); * d.stotcstamt = Math.Round(d.qty * d.stotcstprc.Value, 4); * } * else if (diff > 0 && diff < d.qty) * { * d.qty = d.qty - diff; * diff = 0; * * d.qty = Math.Round(d.qty, 4, MidpointRounding.AwayFromZero); * d.pkgqty = Math.Round(d.qty, 4, MidpointRounding.AwayFromZero); * d.taxamt = Math.Round(d.qty * d.prc * d.taxrto, 4); * d.amt = Math.Round(d.qty * d.prc, 4); * d.salamt = d.qty * d.salprc; * d.patamt = Math.Round(d.qty * d.taxprc, 4); * d.stotcstamt = Math.Round(d.qty * d.stotcstprc.Value, 4); * } * }*/ } //修改wms_cutgds中的ckr, chkflg, chkdat,qty cutgds.ckr = LoginInfo.Usrid; cutgds.chkflg = GetY(); cutgds.qty = qty; cutgds.chkdat = GetCurrentDate(); try { WmsDc.SubmitChanges(); } catch (Exception ex) { return(RErr(ex.Message, "E0014")); } return(RSucc("成功", null, "S0059")); }
public ActionResult AdPrftOLss(String wmsno, String barcode, String gdsid, String gdstype, String bthno, String vlddat, double qty, String rsn) { //检查单号是否存在 var qrymst = from e in WmsDc.wms_cang_111 where e.wmsno == wmsno && e.bllid == WMSConst.BLL_TYPE_PROFITORLOSS && qus.Contains(e.qu.Trim()) select e; var arrqrymst = qrymst.ToArray(); var qrydtl = from e in WmsDc.wms_cangdtl_111 where e.wmsno == wmsno && e.bllid == WMSConst.BLL_TYPE_PROFITORLOSS orderby e.rcdidx descending select e; var arrqrydtl = qrydtl.ToArray(); //单据是否找到 if (arrqrymst.Length <= 0) { return(RNoData("N0118")); } //判断分区是否有效 if (!IsExistBarcode(barcode)) { return(RInfo("I0204", barcode.Trim())); } //检查是否有数据权限 wms_cang_111 mst = arrqrymst[0]; wms_cangdtl_111 dtl = new wms_cangdtl_111(); dtl.wmsno = wmsno; dtl.bllid = WMSConst.BLL_TYPE_PROFITORLOSS; dtl.rcdidx = arrqrydtl[0].rcdidx + 1; dtl.barcode = barcode; dtl.gdsid = gdsid; dtl.gdstype = gdstype; dtl.pkgid = "01"; double fQty = Math.Round(qty, 4, MidpointRounding.AwayFromZero); dtl.qty = fQty; dtl.preqty = fQty; dtl.pkgqty = fQty; dtl.gdstype = gdstype; dtl.bthno = string.IsNullOrEmpty(bthno) ? "1" : bthno; dtl.vlddat = string.IsNullOrEmpty(vlddat) ? GetCurrentDay() : vlddat; JsonResult jr = (JsonResult)GetBcdByGdsid(gdsid); ResultMessage rm = (ResultMessage)jr.Data; if (rm.ResultCode != ResultMessage.RESULTMESSAGE_SUCCESS) { return(RInfo("I0214", gdsid)); } bcd[] b = (bcd[])rm.ResultObject; dtl.bcd = b[0].bcd1; dtl.bkr = ""; dtl.bokflg = GetN(); dtl.bokdat = GetCurrentDate(); dtl.brfdtl = rsn.ToString(); WmsDc.wms_cangdtl_111.InsertOnSubmit(dtl); //正在生成拣货单,请稍候重试 if (mst.times.Trim() == "-") { string quRetrv = mst.qu; if (DoingRetrieve(LoginInfo.DefStoreid, quRetrv)) { return(RInfo("I0205")); } } if (!qus.Contains(mst.qu)) { return(RInfo("I0206")); } //检查单号是否已经审核 if (mst != null && mst.chkflg == GetY()) { return(RInfo("I0207")); } //是否是本人制单 if (!IsSameLogin(mst.mkr)) { return(RInfo("I0208")); } //判断商品是否已经再单据里面 int iHasIn = qrydtl.Where(e => e.gdsid == gdsid && e.gdstype == gdstype && e.barcode == barcode && e.bthno == dtl.bthno.Trim() && e.vlddat == dtl.vlddat.Trim()).Count(); if (iHasIn > 0) { return(RInfo("I0209", gdsid)); } //如果是报损,判断是否有库存 if (mst.times.Trim() == "-") { if (rsn.Trim() == "") { return(RInfo("I0210", gdsid)); } //如果是报损,判断是否有库存 //得到一个商品的库存数量 GdsInBarcode[] gb = GetAGdsQtyInBarcode(barcode, gdsid, gdstype) .Where(e => e.vlddat == vlddat.Trim() && e.bthno == bthno.Trim()) .ToArray(); double bqty = (gb == null || gb.Length <= 0) ? 0 : gb[0].sqty; double ktqty = bqty; //可调数量 = 库存数量 //如果 需调整数量 > 可调数量 if (Math.Abs(qty) > Math.Abs(ktqty)) { return(RInfo("I0211", qty, ktqty)); } //return RInfo( "I0212",gdsid ,barcode ); } //判断gdsid和barcode是不是在一个区 String[] qu = GetQuByGdsid(gdsid, LoginInfo.DefStoreid); if (!qu.Contains(barcode.Substring(0, 2))) { return(RInfo("I0213", gdsid, String.Join(",", qu))); } try { WmsDc.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, mst); //检查单号是否已经审核 if (mst != null && mst.chkflg == GetY()) { return(RInfo("I0207")); } WmsDc.SubmitChanges(); //修改主单时间戳 string sql = @"update wms_cang_111 set bllid='111' where wmsno='" + mst.wmsno + "' and bllid='111' and udtdtm={0}"; int iEff = WmsDc.ExecuteCommand(sql, mst.udtdtm); if (iEff == 0) { return(RInfo("I0207")); } return(RSucc("成功", dtl, "S0103")); } catch (Exception ex) { return(RErr(ex.Message, "E0026")); } }
public ActionResult BokBozBllGds(String wmsno, String stkouno, String rcvdptid, String gdsid, double qty, int?rcdidx, String checi) { using (TransactionScope scop = new TransactionScope()) { // done 删除临时调试日志 //d(wmsno, WMSConst.BLL_TYPE_DISPATCH, "审核播种商品", "wmsno=" + wmsno + "&stkouno=" + stkouno + "&rcvdptid=" + rcvdptid + "&gdsid=" + gdsid + "&qty=" + qty + "&rcdidx=" + rcdidx + "&checi=" + checi, "", ""); gdsid = GetGdsidByGdsidOrBcd(gdsid); //正在生成拣货单,请稍候重试 //string quRetrv = GetQuByGdsid(gdsid, LoginInfo.DefStoreid).FirstOrDefault(); //if (DoingRetrieve(LoginInfo.DefStoreid, quRetrv)) //{ // return RInfo( "I0089" ); //} if (gdsid == null) { return(RInfo("I0090")); } String Dat = GetCurrentDay(); //检查该单子的分单是否结束(拣货确认一条,就可以播种一条) var qryfd = from e in WmsDc.wms_cutgds where e.wmsno == wmsno && e.gdsid == gdsid && e.checi == checi && e.chkflg == GetN() select e; foreach (wms_cutgds c in qryfd) { return(RInfo("I0091")); } /* * var qry = from e in WmsDc.stkot * from e1 in e.stkotdtl * join e2 in WmsDc.gds on e1.gdsid equals e2.gdsid * where e.wmsno == wmsno * && e.bllid == WMSConst.BLL_TYPE_DISPATCH * && dpts.Contains(e.dptid) * && (e.savdptid == LoginInfo.DefSavdptid || e.savdptid == LoginInfo.DefCsSavdptid) * && e.rcvdptid == rcvdptid * && e1.gdsid == gdsid * && e1.rcdidx == rcdidx * select e; */ var qry = from e in WmsDc.stkot join e3 in WmsDc.wms_cang on new { e.wmsno, e.wmsbllid } equals new { e3.wmsno, wmsbllid = e3.bllid } join e4 in WmsDc.wms_boci on new { dh = e3.lnkbocino, sndtmd = e3.lnkbocidat, e3.qu } equals new { e4.dh, e4.sndtmd, e4.qu } join e5 in WmsDc.view_pssndgds on new { e4.dh, e4.clsid, e4.sndtmd, e.rcvdptid, e4.qu } equals new { e5.dh, e5.clsid, e5.sndtmd, e5.rcvdptid, e5.qu } where e.stkouno == stkouno && e.bllid == WMSConst.BLL_TYPE_DISPATCH && dpts.Contains(e.dptid.Trim()) && (e.savdptid == LoginInfo.DefSavdptid || e.savdptid == LoginInfo.DefCsSavdptid) && e.rcvdptid == rcvdptid && e5.busid.Trim().Substring(e5.busid.Trim().Length - 1, 1) == checi select e; var arrqry = qry.Distinct().ToArray(); if (arrqry.Length <= 0) { return(RNoData("N0056")); } var stkotgds = arrqry[0]; if (wmsno == null) { wmsno = stkotgds.wmsno; } if (stkotgds.chkflg == GetY()) { return(RInfo("I0092")); } /*if (stkotgds.bzflg == GetY()) * { * return RInfo( "I0093" ); * }*/ var qrydtl = from e in stkotgds.stkotdtl where e.gdsid.Trim() == gdsid.Trim() && e.rcdidx == rcdidx && (from e1 in WmsDc.wms_cutgds where e1.wmsno == stkotgds.wmsno && e1.bllid == stkotgds.wmsbllid && e1.gdsid == e.gdsid && e1.checi == checi select e1).Any() select e; var arrqrydtl = qrydtl.ToArray(); if (arrqrydtl.Length <= 0) { return(RNoData("N0057")); } stkotdtl stkdtl = arrqrydtl[0]; double? preqty = stkdtl.preqty; if (stkdtl.preqty == null) ///如果应收数量为空,就把qty中的数量填入其中 { stkdtl.preqty = stkdtl.qty; preqty = stkdtl.qty; } if (preqty < qty) //如果实收数量大于应收数量就退出 { return(RInfo("I0094")); } if (preqty != qty) { GetRealteQuResult qu = GetRealteQu(stkotgds.dptid, LoginInfo.DefSavdptid); Log.i(LoginInfo.Usrid, Mdlid, stkotgds.stkouno, stkotgds.bllid, "播种审核", gdsid.Trim() + ":应播:" + preqty + ";实播:" + qty, qu.qu, qu.savdptid); } //查看该商品是否已经被非本人确认 if (stkdtl.bzflg == GetY() && stkdtl.bzr != LoginInfo.Usrid) { return(RInfo("I0095", stkdtl.bzr)); } #region 检查参数有效性 if (arrqry == null) { return(RInfo("I0096")); } if (stkdtl == null) { return(RInfo("I0097")); } #endregion //修改审核标记 try { /* * preqty = preqty==null ? qty : preqty * * 公式:taxamt = qty*prc*taxrto * amt = qty*prc * salamt = qty*salprc * patamt = qty*taxprc * stotcstamt = qty*stotcstprc * */ stkdtl.qty = Math.Round(qty, 4, MidpointRounding.AwayFromZero); stkdtl.pkgqty = Math.Round(qty, 4, MidpointRounding.AwayFromZero); stkdtl.bzdat = GetCurrentDate(); stkdtl.bzr = LoginInfo.Usrid; stkdtl.bzflg = GetY(); stkdtl.taxamt = Math.Round(qty * stkdtl.prc * stkdtl.taxrto, 4); stkdtl.amt = Math.Round(qty * stkdtl.prc, 4); stkdtl.salamt = qty * stkdtl.salprc; stkdtl.patamt = Math.Round(qty * stkdtl.taxprc, 4); stkdtl.stotcstamt = Math.Round(qty * stkdtl.stotcstprc.Value, 4); //判断改单据是否已经全部商品已经确认,全部确认后的,实收商品总数和应收商品总数相同就直接修改主单的审核标记 /*double? sqty = stkotgds * .stkotdtl * .Where(e=>e.bzflg==GetY()) * .Sum(e=>e.qty==null?0:e.qty); * double? spreqty = stkotgds.stkotdtl.Sum(e=>e.preqty==null?e.qty:e.preqty); * if(sqty==spreqty){ * stkotgds.chkflg = GetY(); * stkotgds.chkdat = Dat; * stkotgds.ckr = LoginInfo.Usrid; * stklst astklst = new stklst(); * astklst.stkouno = stkotgds.stkouno; * WmsDc.stklst.InsertOnSubmit(astklst); * }*/ WmsDc.SubmitChanges(); ///如果明细全部播种完 ///就修改审核标记 ///和播种标记 double sqtycnt = stkotgds .stkotdtl .Where(e => e.bzflg == GetY() && Math.Round(e.qty, 2, MidpointRounding.AwayFromZero) != 0) .Count(); double spreqtycnt = stkotgds .stkotdtl .Where(e => Math.Round(e.qty, 2, MidpointRounding.AwayFromZero) != 0) .Count(); d(wmsno, WMSConst.BLL_TYPE_UPBLL, "审核播种商品", "sqtycnt=" + sqtycnt + "&spreqtycnt=" + spreqtycnt, "", LoginInfo.DefSavdptid); if (sqtycnt == spreqtycnt) { CkBzFlg(stkotgds); //查看有没有明细为空的单据,直接修改播种标记 var qryZeroBz = from e in WmsDc.stkotdtl where e.stkot.wmsno == wmsno && e.stkot.wmsbllid == WMSConst.BLL_TYPE_RETRIEVE group e by e.stkouno into g select new { stkouno = g.Key, sqty = g.Sum(e => e.qty) }; qryZeroBz = qryZeroBz.Where(e => e.sqty == 0); var qryZeroBzmst = from e in WmsDc.stkot join e1 in qryZeroBz on e.stkouno equals e1.stkouno where e.chkflg != GetY() select e; foreach (var q in qryZeroBzmst) { CkBzFlg(q); foreach (var dtl in q.stkotdtl) { dtl.bzflg = GetY(); dtl.bzdat = GetCurrentDate(); dtl.bzr = LoginInfo.Usrid; } } } WmsDc.SubmitChanges(); scop.Complete(); return(RSucc("成功", null, "S0047")); } catch (Exception ex) { return(RErr(ex.Message, "E0013")); } } }
public ActionResult MdPrftOLssBll(String wmsno, String barcodes, String gdsids, String gdstypes, String bthnos, String vlddats, String qtys, String rsns) { using (TransactionScope scop = new TransactionScope(TransactionScopeOption.Required, options)) { //拆分参数 //检查并创建明细 JsonResult jr = (JsonResult)_MakeParam(wmsno, barcodes, gdsids, gdstypes, bthnos, vlddats, qtys, rsns); ResultMessage rm = (ResultMessage)jr.Data; if (rm.ResultCode != ResultMessage.RESULTMESSAGE_SUCCESS) { return(jr); } //检查单号是否存在 var qrymst = from e in WmsDc.wms_cang_111 where e.wmsno == wmsno && e.bllid == WMSConst.BLL_TYPE_PROFITORLOSS && qus.Contains(e.qu.Trim()) select e; var arrqrymst = qrymst.ToArray(); var qrydtl = from e in WmsDc.wms_cangdtl_111 where e.wmsno == wmsno && e.bllid == WMSConst.BLL_TYPE_PROFITORLOSS select e; var arrqrydtl = qrydtl.ToArray(); //单据是否找到 if (arrqrymst.Length <= 0) { return(RNoData("N0119")); } //检查是否有数据权限 wms_cang_111 mst = arrqrymst[0]; //正在生成拣货单,请稍候重试 if (mst.times.Trim() == "-") { string quRetrv = mst.qu; if (DoingRetrieve(LoginInfo.DefStoreid, quRetrv)) { return(RInfo("I0215")); } } if (!qus.Contains(mst.qu.Trim())) { return(RInfo("I0216")); } //检查单号是否已经审核 if (mst != null && mst.chkflg == GetY()) { return(RInfo("I0217")); } //是否是本人制单 if (!IsSameLogin(mst.mkr)) { return(RInfo("I0218")); } wms_cangdtl_111[] newdtl = (wms_cangdtl_111[])rm.ResultObject; int i = 0; if (mst.times.Trim() == "-") { //如果是报损,判断是否有库存 foreach (wms_cangdtl_111 d in newdtl) { if (d.brfdtl.Trim() == "") { return(RInfo("I0219", d.gdsid)); } //得到一个商品的库存数量 GdsInBarcode[] gb = GetAGdsQtyInBarcode(arrqrydtl[i].barcode, arrqrydtl[i].gdsid, arrqrydtl[i].gdstype) .Where(e => e.vlddat == arrqrydtl[i].vlddat.Trim() && e.bthno == arrqrydtl[i].bthno.Trim()) .ToArray(); double bqty = (gb == null || gb.Length <= 0) ? 0 : gb[0].sqty; double ktqty = Math.Abs(bqty) + Math.Abs(arrqrydtl[i].qty); //可调数量 = 库存数量+本单该商品的数量 //如果 需调整数量 > 可调数量 if (Math.Abs(d.qty) > Math.Abs(ktqty)) { return(RInfo("I0220", d.qty, ktqty)); } i++; } } //删除单据明细 WmsDc.wms_cangdtl_111.DeleteAllOnSubmit(arrqrydtl); iDelCangDtl111(arrqrydtl, mst); //增加单据明细 WmsDc.wms_cangdtl_111.InsertAllOnSubmit(newdtl); try { WmsDc.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, mst); //检查单号是否已经审核 if (mst != null && mst.chkflg == GetY()) { return(RInfo("I0207")); } WmsDc.SubmitChanges(); //修改主单时间戳 string sql = @"update wms_cang_111 set bllid='111' where wmsno='" + mst.wmsno + "' and bllid='111' and udtdtm={0}"; int iEff = WmsDc.ExecuteCommand(sql, mst.udtdtm); if (iEff == 0) { return(RInfo("I0207")); } scop.Complete(); return(RSucc("成功", newdtl, "S0104")); } catch (Exception ex) { return(RErr(ex.Message, "E0027")); } } }
public ActionResult BokBozBllGds(String wmsno, String stkouno, String rcvdptid, String gdsid, double qty, int?rcdidx) { using (TransactionScope scop = new TransactionScope(TransactionScopeOption.Required, options)) { gdsid = GetGdsidByGdsidOrBcd(gdsid); //正在生成拣货单,请稍候重试 string quRetrv = GetQuByGdsid(gdsid, LoginInfo.DefStoreid).FirstOrDefault(); //if (DoingRetrieve(LoginInfo.DefStoreid, quRetrv)) //{ // return RInfo( "I0077" ); //} if (gdsid == null) { return(RInfo("I0078")); } String Dat = GetCurrentDay(); /* * var qry = from e in WmsDc.stkot * from e1 in e.stkotdtl * join e2 in WmsDc.gds on e1.gdsid equals e2.gdsid * where e.wmsno == wmsno * && e.bllid == WMSConst.BLL_TYPE_DISPATCH * && e.wmsbllid == WMSConst.BLL_TYPE_RETRIEVE * && dpts.Contains(e.dptid) * && e.savdptid == LoginInfo.DefSavdptid * && e.rcvdptid == rcvdptid * && e1.gdsid == gdsid * && e1.rcdidx == rcdidx * select e; */ var qry = from e in WmsDc.stkot where e.stkouno == stkouno && e.bllid == WMSConst.BLL_TYPE_DISPATCH && e.wmsbllid == WMSConst.BLL_TYPE_RETRIEVE && dpts.Contains(e.dptid.Trim()) && (e.savdptid == LoginInfo.DefSavdptid || e.savdptid == LoginInfo.DefCsSavdptid) && e.rcvdptid == rcvdptid select e; var arrqry = qry.ToArray(); if (arrqry.Length <= 0) { return(RNoData("N0048")); } var stkotgds = arrqry[0]; if (wmsno == null) { wmsno = stkotgds.wmsno; } if (stkotgds.chkflg == GetY()) { return(RInfo("I0079")); } /*if (stkotgds.bzflg == GetY()) * { * return RInfo( "I0080" ); * }*/ var qrydtl = from e in stkotgds.stkotdtl where e.gdsid.Trim() == gdsid.Trim() && e.rcdidx == rcdidx select e; var arrqrydtl = qrydtl.ToArray(); if (arrqrydtl.Length <= 0) { return(RNoData("N0049")); } stkotdtl stkdtl = arrqrydtl[0]; double? preqty = stkdtl.preqty; if (stkdtl.preqty == null) ///如果应收数量为空,就把qty中的数量填入其中 { stkdtl.preqty = stkdtl.qty; preqty = stkdtl.qty; } if (preqty < qty) //如果实收数量大于应收数量就退出 { return(RInfo("I0081")); } if (preqty != qty) { GetRealteQuResult qu = GetRealteQu(stkotgds.dptid, LoginInfo.DefSavdptid); Log.i(LoginInfo.Usrid, Mdlid, stkotgds.stkouno, stkotgds.bllid, "播种审核", gdsid.Trim() + ":应播:" + preqty + ";实播:" + qty, qu.qu, qu.savdptid); } //查看该商品是否已经被非本人确认 if (stkdtl.bzflg == GetY() && stkdtl.bzr != LoginInfo.Usrid) { return(RInfo("I0082", stkdtl.bzr)); } #region 检查参数有效性 if (arrqry == null) { return(RInfo("I0083")); } if (stkdtl == null) { return(RInfo("I0084")); } #endregion //修改审核标记 try { /* * preqty = preqty==null ? qty : preqty * * 公式:taxamt = qty*prc*taxrto * amt = qty*prc * salamt = qty*salprc * patamt = qty*taxprc * stotcstamt = qty*stotcstprc * */ stkdtl.qty = Math.Round(qty, 4, MidpointRounding.AwayFromZero); stkdtl.pkgqty = Math.Round(qty, 4, MidpointRounding.AwayFromZero); stkdtl.bzdat = GetCurrentDate(); stkdtl.bzr = LoginInfo.Usrid; stkdtl.bzflg = GetY(); stkdtl.taxamt = Math.Round(qty * stkdtl.prc * stkdtl.taxrto, 4); stkdtl.amt = Math.Round(qty * stkdtl.prc, 4); stkdtl.salamt = qty * stkdtl.salprc; stkdtl.patamt = Math.Round(qty * stkdtl.taxprc, 4); stkdtl.stotcstamt = Math.Round(qty * stkdtl.stotcstprc.Value, 4); //判断改单据是否已经全部商品已经确认,全部确认后的,实收商品总数和应收商品总数相同就直接修改主单的审核标记 /*double? sqty = stkotgds * .stkotdtl * .Where(e=>e.bzflg==GetY()) * .Sum(e=>e.qty==null?0:e.qty); * double? spreqty = stkotgds.stkotdtl.Sum(e=>e.preqty==null?e.qty:e.preqty); * if(sqty==spreqty){ * stkotgds.chkflg = GetY(); * stkotgds.chkdat = Dat; * stkotgds.ckr = LoginInfo.Usrid; * stklst astklst = new stklst(); * astklst.stkouno = stkotgds.stkouno; * WmsDc.stklst.InsertOnSubmit(astklst); * }*/ WmsDc.SubmitChanges(); ///如果明细全部播种完 ///就修改审核标记 ///和播种标记 double sqtycnt = stkotgds .stkotdtl .Where(e => e.bzflg == GetY() && Math.Round(e.qty, 2, MidpointRounding.AwayFromZero) != 0) .Count(); double spreqtycnt = stkotgds .stkotdtl .Where(e => Math.Round(e.qty, 2, MidpointRounding.AwayFromZero) != 0) .Count(); d(wmsno, WMSConst.BLL_TYPE_UPBLL, "审核播种商品", "sqtycnt=" + sqtycnt + "&spreqtycnt=" + spreqtycnt, "", LoginInfo.DefSavdptid); if (sqtycnt == spreqtycnt) { CkBzFlg(stkotgds); //查看有没有明细为空的单据,直接修改播种标记 var qryZeroBz = from e in WmsDc.stkotdtl where e.stkot.wmsno == wmsno && e.stkot.wmsbllid == WMSConst.BLL_TYPE_RETRIEVE group e by e.stkouno into g select new { stkouno = g.Key, sqty = g.Sum(e => e.qty) }; qryZeroBz = qryZeroBz.Where(e => e.sqty == 0); var qryZeroBzmst = from e in WmsDc.stkot join e1 in qryZeroBz on e.stkouno equals e1.stkouno where e.chkflg != GetY() select e; foreach (var q in qryZeroBzmst) { CkBzFlg(q); foreach (var dl in q.stkotdtl) { dl.bzflg = GetY(); dl.bzdat = GetCurrentDate(); dl.bzr = LoginInfo.Usrid; } } } WmsDc.SubmitChanges(); scop.Complete(); return(RSucc("成功", null, "S0038")); } catch (Exception ex) { return(RErr(ex.Message, "E0012")); } } }
public ActionResult BokBozBllGds(String wmsno, /* String stkouno,*/ String rcvdptid, String gdsid, double qty /*, int? rcdidx*/) { /* * 1、得到wmsno、rcvdptid对应的所有单据 * 2、得到wmsno、rcvdptid和gdsid对应的所有明细 * 3、判断这些主单是否已经有一张以上的单据已经审核 * 4、判断该商品是否是本人播种 * 5、判断这些单据的所有明细是否都已经播种完毕,播种完毕后就修改单据的审核标记,包括修改无货商品的数量 */ using (TransactionScope scop = new TransactionScope(TransactionScopeOption.Required, options)) // 事务逻辑开始 { // 得到货号 gdsid = GetGdsidByGdsidOrBcd(gdsid); ////正在生成拣货单,请稍候重试 //string quRetrv = GetQuByGdsid(gdsid, LoginInfo.DefStoreid).FirstOrDefault(); //if (DoingRetrieve(LoginInfo.DefStoreid, quRetrv)) //{ // return RInfo( "I0375" ); //} if (gdsid == null) //货号为空,表示未找到该商品 { return(RInfo("I0376")); } String Dat = GetCurrentDay(); //得到当前日期 try { #region 1、得到wmsno、rcvdptid、gdsid对应的所有单据 //得到wmsno、rcvdptid、gdsid对应的所有单据 stkot[] stkots = GetStkots(wmsno, rcvdptid, gdsid); //未找到单据 if (stkots.Length == 0) { return(RNoData("N0177")); } #endregion 1、得到wmsno、rcvdptid对应的所有单据 #region 2、得到wmsno、rcvdptid和gdsid对应的所有明细 string[] stkounos = stkots.Select(e => e.stkouno.Trim()).ToArray(); //得到相关单据号和商品编码对应的明细 stkotdtl[] stkotdtls = GetStkdtlsByStkounos(wmsno, gdsid, stkounos).OrderByDescending(e => e.preqty).ToArray(); //未找到对应的明细信息 if (stkotdtls.Length == 0) { return(RNoData("N0178")); } //判断preqty是否为null,为null就填qty foreach (stkotdtl dtl in stkotdtls) { if (dtl.preqty == null) { dtl.preqty = dtl.qty; } } WmsDc.SubmitChanges(); #endregion 2、得到wmsno、rcvdptid和gdsid对应的所有明细 #region 3、判断这些主单是否已经有一张以上的单据已经审核 foreach (stkot s in stkots) { if (s.chkflg == GetY()) { return(RInfo("I0377", s.stkouno)); } } #endregion 3、判断这些主单是否已经有一张以上的单据已经审核 #region 4、判断该商品是否是本人播种 //查看该商品是否已经被非本人确认 foreach (stkotdtl stkdtl in stkotdtls) { if (stkdtl.bzflg == GetY() && stkdtl.bzr != LoginInfo.Usrid) { return(RInfo("I0378", stkdtl.bzr)); } } #endregion 4、判断该商品是否是本人播种 #region 修改这些明细的播种标记 //计算这些单据的应该播种数量是否大于实播种数量 #region 计算这些单据的应该播种数量是否大于实播种数量 double?preqty = stkotdtls.Sum(e => e.preqty); if (preqty < qty) { //如果实际播种数量大于应播数量就退出,不能继续 return(RInfo("I0379", qty, preqty)); } else if (preqty > qty) { //如果实际播种数量小于应播数量,就修改实际的播种数量 double difQty = preqty.Value - qty; //得到差异数量 foreach (stkotdtl dtl in stkotdtls) { if (difQty > 0) { if (dtl.preqty >= difQty) { /* * preqty = preqty==null ? qty : preqty * * 公式:taxamt = qty*prc*taxrto * amt = qty*prc * salamt = qty*salprc * patamt = qty*taxprc * stotcstamt = qty*stotcstprc * */ double qty1 = dtl.preqty.Value - difQty; dtl.qty = Math.Round(qty1, 4, MidpointRounding.AwayFromZero); dtl.pkgqty = Math.Round(qty1, 4, MidpointRounding.AwayFromZero); dtl.taxamt = Math.Round(qty * dtl.prc * dtl.taxrto, 4); dtl.amt = Math.Round(qty * dtl.prc, 4); dtl.salamt = qty * dtl.salprc; dtl.patamt = Math.Round(qty * dtl.taxprc, 4); dtl.stotcstamt = Math.Round(qty * dtl.stotcstprc.Value, 4); difQty = 0; //记录差异 GetRealteQuResult qu = GetRealteQu(dtl.stkot.dptid, LoginInfo.DefSavdptid); Log.i(LoginInfo.Usrid, Mdlid, dtl.stkot.stkouno, dtl.stkot.bllid, "播种审核", gdsid.Trim() + ":应播:" + dtl.preqty.Value + ";实播:" + qty1, qu.qu, qu.savdptid); } else if (dtl.preqty < difQty) { dtl.qty = 0; dtl.pkgqty = 0; dtl.taxamt = 0; dtl.amt = 0; dtl.salamt = 0; dtl.patamt = 0; dtl.stotcstamt = 0; difQty -= dtl.preqty.Value; //记录差异 GetRealteQuResult qu = GetRealteQu(dtl.stkot.dptid, LoginInfo.DefSavdptid); Log.i(LoginInfo.Usrid, Mdlid, dtl.stkot.stkouno, dtl.stkot.bllid, "播种审核", gdsid.Trim() + ":应播:" + dtl.preqty.Value + ";实播:" + 0, qu.qu, qu.savdptid); } } } WmsDc.SubmitChanges(); } #endregion 计算这些单据的应该播种数量是否大于实播种数量 //修改稿明细的播种标记 #region 修改稿明细的播种标记 foreach (stkotdtl dtl in stkotdtls) { dtl.bzdat = GetCurrentDate(); dtl.bzr = LoginInfo.Usrid; dtl.bzflg = GetY(); } WmsDc.SubmitChanges(); #endregion 修改稿明细的播种标记 #endregion 修改这些明细的播种标记 #region 5、判断这些单据的所有明细是否都已经播种完毕,播种完毕后就修改单据的审核标记,包括修改无货商品的数量 //判断这些单据的所有明细是否都已经播种完毕 foreach (stkot s in stkots) { WmsDc.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, s); if (s.chkflg == GetN()) { bool hasAllBz = !(from e1 in WmsDc.stkotdtl where e1.stkouno == s.stkouno && e1.bzflg == GetN() && e1.qty > 0 select 1).Any(); if (hasAllBz) //如果都已经播种完了 { CkBzFlg(s); i(s.stkouno, s.bllid, "stkouno:" + s.stkouno + ", chkflg:" + s.chkflg + ", bzflg:" + s.bzflg, "", "", ""); } } } WmsDc.SubmitChanges(); scop.Complete(); return(RSucc("成功", null, "S0163")); #endregion 5、判断这些单据的所有明细是否都已经播种完毕,播种完毕后就修改单据的审核标记,包括修改无货商品的数量 } catch (Exception ex) { return(RErr(ex.Message, "E0050")); } } // 事务逻辑结束 #region 老的播种逻辑 //using (TransactionScope scop = new TransactionScope(TransactionScopeOption.Required, options)) //{ // gdsid = GetGdsidByGdsidOrBcd(gdsid); // if (gdsid == null) // { // return RInfo( "I0380" ); // } // String Dat = GetCurrentDay(); // var qry = from e in WmsDc.stkot // where e.stkouno == stkouno // && e.bllid == WMSConst.BLL_TYPE_DISPATCH // && dpts.Contains(e.dptid.Trim()) // && e.savdptid == LoginInfo.DefSavdptid // && e.rcvdptid == rcvdptid // select e; // var arrqry = qry.ToArray(); // if (arrqry.Length <= 0) // { // return RNoData("N0179"); // } // var stkotgds = arrqry[0]; // if (wmsno == null) // { // wmsno = stkotgds.wmsno; // } // if (stkotgds.chkflg == GetY()) // { // return RInfo( "I0381" ); // } // /*if (stkotgds.bzflg == GetY()) // { // return RInfo( "I0382" ); // }*/ // var qrydtl = from e in stkotgds.stkotdtl // where e.gdsid.Trim() == gdsid.Trim() && e.rcdidx == rcdidx // select e; // var arrqrydtl = qrydtl.ToArray(); // if (arrqrydtl.Length <= 0) // { // return RNoData("N0180"); // } // stkotdtl stkdtl = arrqrydtl[0]; // double? preqty = stkdtl.preqty; // if (stkdtl.preqty == null) ///如果应收数量为空,就把qty中的数量填入其中 // { // stkdtl.preqty = stkdtl.qty; // preqty = stkdtl.qty; // } // if (preqty < qty) //如果实收数量大于应收数量就退出 // { // return RInfo( "I0383" ); // } // if (preqty != qty) // { // GetRealteQuResult qu = GetRealteQu(stkotgds.dptid, LoginInfo.DefSavdptid); // Log.i(LoginInfo.Usrid, Mdlid, stkotgds.stkouno, stkotgds.bllid, "播种审核", // gdsid.Trim() + ":应播:" + preqty + ";实播:" + qty, // qu.qu, qu.savdptid); // } // //查看该商品是否已经被非本人确认 // if (stkdtl.bzflg == GetY() && stkdtl.bzr != LoginInfo.Usrid) // { // return RInfo( "I0384",stkdtl.bzr ); // } // #region 检查参数有效性 // if (arrqry == null) // { // return RInfo( "I0385" ); // } // if (stkdtl == null) // { // return RInfo( "I0386" ); // } // #endregion // //修改审核标记 // try // { // /* // * preqty = preqty==null ? qty : preqty // * // * 公式:taxamt = qty*prc*taxrto // * amt = qty*prc // * salamt = qty*salprc // * patamt = qty*taxprc // * stotcstamt = qty*stotcstprc // * // */ // stkdtl.qty = Math.Round(qty, 4, MidpointRounding.AwayFromZero); // stkdtl.pkgqty = Math.Round(qty, 4, MidpointRounding.AwayFromZero); // stkdtl.bzdat = GetCurrentDate(); // stkdtl.bzr = LoginInfo.Usrid; // stkdtl.bzflg = GetY(); // stkdtl.taxamt = Math.Round(qty * stkdtl.prc * stkdtl.taxrto, 4); // stkdtl.amt = Math.Round(qty * stkdtl.prc, 4); // stkdtl.salamt = qty * stkdtl.salprc; // stkdtl.patamt = Math.Round(qty * stkdtl.taxprc, 4); // stkdtl.stotcstamt = Math.Round(qty * stkdtl.stotcstprc.Value, 4); // //判断改单据是否已经全部商品已经确认,全部确认后的,实收商品总数和应收商品总数相同就直接修改主单的审核标记 // /*double? sqty = stkotgds // .stkotdtl // .Where(e=>e.bzflg==GetY()) // .Sum(e=>e.qty==null?0:e.qty); // double? spreqty = stkotgds.stkotdtl.Sum(e=>e.preqty==null?e.qty:e.preqty); // if(sqty==spreqty){ // stkotgds.chkflg = GetY(); // stkotgds.chkdat = Dat; // stkotgds.ckr = LoginInfo.Usrid; // stklst astklst = new stklst(); // astklst.stkouno = stkotgds.stkouno; // WmsDc.stklst.InsertOnSubmit(astklst); // }*/ // WmsDc.SubmitChanges(); // ///如果明细全部播种完 // ///就修改审核标记 // ///和播种标记 // double sqtycnt = stkotgds // .stkotdtl // .Where(e => e.bzflg == GetY() && Math.Round(e.qty, 2, MidpointRounding.AwayFromZero) != 0) // .Count(); // double spreqtycnt = stkotgds // .stkotdtl // .Where(e => Math.Round(e.qty, 2, MidpointRounding.AwayFromZero) != 0) // .Count(); // d(wmsno, WMSConst.BLL_TYPE_UPBLL, "审核播种商品", "sqtycnt=" + sqtycnt + "&spreqtycnt=" + spreqtycnt, "", LoginInfo.DefSavdptid); // if (sqtycnt == spreqtycnt) // { // CkBzFlg(stkotgds); // //查看有没有明细为空的单据,直接修改播种标记 // var qryZeroBz = from e in WmsDc.stkotdtl // where e.stkot.wmsno == wmsno && e.stkot.wmsbllid == WMSConst.BLL_TYPE_RETRIEVE // group e by e.stkouno into g // select new // { // stkouno = g.Key, // sqty = g.Sum(e => e.qty) // }; // qryZeroBz = qryZeroBz.Where(e => e.sqty == 0); // var qryZeroBzmst = from e in WmsDc.stkot // join e1 in qryZeroBz on e.stkouno equals e1.stkouno // where e.chkflg != GetY() // select e; // foreach (var q in qryZeroBzmst) // { // CkBzFlg(q); // foreach (var dl in q.stkotdtl) // { // dl.bzflg = GetY(); // dl.bzdat = GetCurrentDate(); // dl.bzr = LoginInfo.Usrid; // } // } // } // WmsDc.SubmitChanges(); // scop.Complete(); // return RSucc("成功", null, "S0164"); // } // catch (Exception ex) // { // return RErr(ex.Message, "E0051"); // } //} #endregion 老的播种逻辑 }
public ActionResult InstInvCkBll(String wmsno, String barcodes, String gdsids, String gdstypes, String bthnos, String vlddats, String qtys) { //拆分参数 //检查并创建明细 JsonResult jr = (JsonResult)_MakeParam(wmsno, barcodes, gdsids, gdstypes, bthnos, vlddats, qtys); ResultMessage rm = (ResultMessage)jr.Data; if (rm.ResultCode != ResultMessage.RESULTMESSAGE_SUCCESS) { return(jr); } //检查单号是否存在 var qrymst = from e in WmsDc.wms_cang_105 where e.wmsno == wmsno && e.bllid == WMSConst.BLL_TYPE_INVENTORY_CHECK && e.times == "2" select e; var arrqrymst = qrymst.ToArray(); var qrydtl = from e in WmsDc.wms_cangdtl_105 where e.wmsno == wmsno && e.bllid == WMSConst.BLL_TYPE_INVENTORY_CHECK select e; var arrqrydtl = qrydtl.ToArray(); //单据是否找到 if (arrqrymst.Length <= 0) { return(RNoData("N0095")); } //检查是否有数据权限 wms_cang_105 mst = arrqrymst[0]; ////正在生成拣货单,请稍候重试 //string quRetrv = mst.qu; //if (DoingRetrieve(LoginInfo.DefStoreid, quRetrv)) //{ // return RInfo( "I0152" ); //} if (!qus.Contains(mst.qu.Trim())) { return(RInfo("I0153")); } //检查单号是否已经审核 if (mst != null && mst.chkflg == GetY()) { return(RInfo("I0154")); } //删除单据明细 //WmsDc.wms_cangdtl_105.DeleteAllOnSubmit(arrqrydtl); //增加单据明细 wms_cangdtl_105[] newdtl = (wms_cangdtl_105[])rm.ResultObject; //判断newdtl里面有没有重复录入的数据 var qrygrp = newdtl.GroupBy(e => new { e.barcode, e.gdsid, e.gdstype }).Where(e => e.Count() > 1); var arrqrygrp = qrygrp.Select(e => e.Key).ToArray(); if (arrqrygrp.Length > 0) { var g = arrqrygrp[0]; return(RInfo("I0155", g.gdsid, g.gdstype)); } //检查是否已经盘过点了 foreach (wms_cangdtl_105 d in newdtl) { //判断是否该商品是否在该区 if (!dtqus.Contains(mst.qu) && d.gdsid.Trim() != "1") { var hasPwrInQu = (from e in WmsDc.wms_set join e1 in WmsDc.gds on e.val2 equals e1.dptid where e.setid == "001" && e.val3 == mst.savdptid && e1.gdsid == d.gdsid.Trim() && e.val1 == GetQuByBarcode(d.barcode.Trim()) select e.val1.Trim()).FirstOrDefault(); if (hasPwrInQu == null || hasPwrInQu != mst.qu) { return(RInfo("I0488")); } } String boci = GetBociByWmsno(d.wmsno); d.oldbarcode = boci; if (HasChecked(d)) { return(RInfo("I0156", d.gdsid, d.gdstype)); } d.oldbarcode = ""; } WmsDc.wms_cangdtl_105.InsertAllOnSubmit(newdtl); try { WmsDc.SubmitChanges(); return(RSucc("成功", newdtl, "S0083")); } catch (Exception ex) { return(RErr(ex.Message, "E0019")); } }