public ActionResult MdRetBll(String bllno, String gdsids, String qtys, String rsns) { //拆分货号,数量 JsonResult jr = (JsonResult)_MkParam(gdsids, qtys, rsns); ResultMessage rm = (ResultMessage)jr.Data; if (rm.ResultCode != ResultMessage.RESULTMESSAGE_SUCCESS) { return(jr); } List <ParamRetBll> param = null; param = (List <ParamRetBll>)rm.ResultObject; //查询返仓单 //查询返仓单主表 var qrymst = from e in WmsDc.wms_cang_109 where e.bllid == WMSConst.BLL_TYPE_RETCANG && e.wmsno == bllno && qus.Contains(e.qu.Trim()) select e; var arrqrymst = qrymst.ToArray(); if (arrqrymst.Length <= 0) { return(RNoData("N0155")); } wms_cang_109 mst = arrqrymst[0]; ////正在生成拣货单,请稍候重试 //string quRetrv = mst.qu; //if (DoingRetrieve(LoginInfo.DefStoreid, quRetrv)) //{ // return RInfo( "I0318" ); //} //查询返仓单明细 var qrydtl = from e in WmsDc.wms_cangdtl_109 join e1 in qrymst on new { e.wmsno, e.bllid } equals new { e1.wmsno, e1.bllid } select e; var arrqrydtl = qrydtl.ToArray(); if (arrqrydtl.Length <= 0) { return(RNoData("N0156")); } //查询是不是本人操作 if (mst.mkr.Trim() != LoginInfo.Usrid) { return(RInfo("I0319")); } //查询是否有残损库权限 if (mst.savdptid.Trim() != LoginInfo.DefCsSavdptid.Trim()) { return(RInfo("I0320")); } //返仓单是否已经审核,审核不允许修改 if (mst.chkflg == GetY()) { return(RInfo("I0321")); } //插入单据明细 //生成明细单 int _i = 0; List <wms_cangdtl_109> lstDtl = new List <wms_cangdtl_109>(); foreach (ParamRetBll r in param) { wms_cangdtl_109 dtl = new wms_cangdtl_109(); dtl.wmsno = bllno; dtl.bllid = WMSConst.BLL_TYPE_RETCANG; dtl.rcdidx = _i + 1; dtl.oldbarcode = ""; wms_cangwei cw = GetBarcodeByGdsid(LoginInfo.DefCsSavdptid, r.Gdsid); if (cw == null) { return(RInfo(r.Gdsid + ",推荐仓位为空", "I0322")); } dtl.barcode = cw.barcode; dtl.gdsid = r.Gdsid; dtl.pkgid = "01"; dtl.pkgqty = Math.Round(r.Qty, 4, MidpointRounding.AwayFromZero); dtl.qty = Math.Round(r.Qty, 4, MidpointRounding.AwayFromZero); dtl.gdstype = "95"; dtl.bthno = ""; dtl.vlddat = ""; dtl.bcd = r.Bcd; dtl.tpcode = ""; dtl.bkr = ""; dtl.bokflg = GetN(); dtl.bokdat = ""; dtl.preqty = null; dtl.brfdtl = r.Rsn.ToString(); lstDtl.Add(dtl); _i++; } WmsDc.wms_cangdtl_109.DeleteAllOnSubmit(arrqrydtl); iDelCangDtl109(arrqrydtl, mst); if (lstDtl.Count > 0) { WmsDc.wms_cangdtl_109.InsertAllOnSubmit(lstDtl); } else { WmsDc.wms_cang_109.DeleteOnSubmit(mst); iDelCangMst109(mst); } try { WmsDc.SubmitChanges(); return(RSucc("修改成功", null, "S0146")); } catch (Exception ex) { return(RErr(ex.Message, "E0043")); } }
public ActionResult AdRetBll(String bllno, String dptid, String hndno, String gdsids, String qtys, String rsns) { ////正在生成拣货单,请稍候重试 //string quRetrv = GetQuByDptid(dptid, LoginInfo.DefStoreid); //if (DoingRetrieve(LoginInfo.DefStoreid, quRetrv)) //{ // return RInfo( "I0297" ); //} //检查是否有残损库权限 if (String.IsNullOrEmpty(LoginInfo.DefCsSavdptid)) { return(RInfo("I0298")); } var qrymst = from e in WmsDc.wms_cang_109 where e.wmsno == bllno && e.bllid == WMSConst.BLL_TYPE_RETCANG && e.mkr == LoginInfo.Usrid && qus.Contains(e.qu.Trim()) select e; var arrqrymst = qrymst.ToArray(); var qrydtl = from e in WmsDc.wms_cangdtl_109 where e.wmsno == bllno && e.bllid == WMSConst.BLL_TYPE_RETCANG select e; var arrqrydtl = qrydtl.ToArray(); if (arrqrymst.Length <= 0) { return(RNoData("N0152")); } wms_cang_109 mst = arrqrymst[0]; if (mst.chkflg == GetY()) { return(RInfo("I0299")); } //是否是本人制单 if (!IsSameLogin(mst.mkr)) { return(RInfo("I0300")); } //拆分货号,数量 JsonResult jr = (JsonResult)_MkParam(gdsids, qtys, rsns); ResultMessage rm = (ResultMessage)jr.Data; if (rm.ResultCode != ResultMessage.RESULTMESSAGE_SUCCESS) { return(jr); } List <ParamRetBll> param = null; param = (List <ParamRetBll>)rm.ResultObject; //检查录入的商品有没有相同记录 var qrySameGds = from e in param group e by e.Gdsid into g where g.Count() > 1 select g.Key; var arrQrySameGds = qrySameGds.ToArray(); if (arrQrySameGds.Length > 0) { return(RInfo("I0301", arrQrySameGds[0])); } //得到分区 //GetRealteQuResult rq = GetRealteQu("all", LoginInfo.DefCsSavdptid); var gdsqus = (from e in WmsDc.gds join e1 in WmsDc.wms_set on new { setid = "001", e.dptid } equals new { e1.setid, dptid = e1.val2.Trim() } join e2 in WmsDc.wms_set on new { setid = "008", storeid = "2", savdptid = e1.val3 } //残损库对应的区 equals new { e2.setid, storeid = e2.val2.Trim(), savdptid = e2.val1.Trim() } where param.Select(ee => ee.Gdsid.Trim()).Contains(e.gdsid) && e2.val3 == LoginInfo.DefStoreid && e1.isvld == GetY() && e2.isvld == GetY() && thqus.Contains(e1.val1.Trim()) select new { qu = e1.val1.Trim() } ).Distinct().ToArray(); if (gdsqus.Length == 0 || gdsqus.Length > 1) { return(RInfo("I0302")); } if (gdsqus[0].qu != mst.qu.Trim()) { return(RInfo("I0303", gdsqus[0].qu, mst.qu.Trim())); } //开始制单 //生成明细单 int i = 0; var qrymx = from e in arrqrydtl where e.wmsno == bllno && e.bllid == WMSConst.BLL_TYPE_RETCANG orderby e.rcdidx descending select e; var arrqrymx = qrymx.ToArray(); if (arrqrymx.Length > 0) { i = arrqrymx[0].rcdidx; } List <wms_cangdtl_109> lstDtl = new List <wms_cangdtl_109>(); foreach (ParamRetBll r in param) { wms_cangdtl_109 dtl = new wms_cangdtl_109(); dtl.wmsno = bllno; dtl.bllid = WMSConst.BLL_TYPE_RETCANG; dtl.rcdidx = i + 1; dtl.oldbarcode = ""; wms_cangwei cw = GetBarcodeByGdsid(LoginInfo.DefCsSavdptid, r.Gdsid); if (cw == null) { return(RInfo(r.Gdsid + ",推荐仓位为空", "I0304")); } dtl.barcode = cw.barcode; dtl.gdsid = r.Gdsid; dtl.pkgid = "01"; dtl.pkgqty = Math.Round(r.Qty, 4, MidpointRounding.AwayFromZero); dtl.qty = Math.Round(r.Qty, 4, MidpointRounding.AwayFromZero); dtl.gdstype = "95"; dtl.bthno = ""; dtl.vlddat = ""; dtl.bcd = r.Bcd; dtl.tpcode = ""; dtl.bkr = ""; dtl.bokflg = GetN(); dtl.bokdat = ""; dtl.preqty = null; dtl.brfdtl = r.Rsn.ToString(); //看看数据库有没有已加的商品 if (arrqrydtl.Length > 0) { var qryhasgds = from e in arrqrydtl where e.wmsno == bllno && e.bllid == WMSConst.BLL_TYPE_RETCANG && e.gdsid == dtl.gdsid select e; foreach (var q in qryhasgds) { return(RInfo("I0305", q.gdsid)); } } lstDtl.Add(dtl); //修改推荐仓位标志 i++; } WmsDc.wms_cangdtl_109.InsertAllOnSubmit(lstDtl); try { WmsDc.SubmitChanges(); return(RSucc("成功", null, "S0142")); } catch (Exception ex) { return(RErr(ex.Message, "E0041")); } }
public ActionResult MkRetBll(String dptid, String hndno, String gdsids, String qtys, String rsns, String qu) { /*if(GetCsQuByDptid(dptid, LoginInfo.DefStoreid)!=qu.Trim()){ * return RInfo("I0468"); * }*/ if (string.IsNullOrEmpty(qu)) { return(RInfo("I0307")); } //检查是否有残损库权限 if (String.IsNullOrEmpty(LoginInfo.DefCsSavdptid)) { return(RInfo("I0308")); } //判断分店是不是操作的仓库(残损) if (!IsInSavdptid(dptid)) { return(RInfo("I0309")); } //拆分货号,数量 JsonResult jr = (JsonResult)_MkParam(gdsids, qtys, rsns); ResultMessage rm = (ResultMessage)jr.Data; if (rm.ResultCode != ResultMessage.RESULTMESSAGE_SUCCESS) { return(jr); } List <ParamRetBll> param = null; param = (List <ParamRetBll>)rm.ResultObject; //得到分区 //GetRealteQuResult rq= GetRealteQu("all", LoginInfo.DefCsSavdptid); //手工单号不能重复 if (HasHndno(hndno)) { return(RInfo("I0310", hndno)); } //开始制单 return(MakeNewBllNo(LoginInfo.DefCsSavdptid, qu, WMSConst.BLL_TYPE_RETCANG, (bllno) => { //生成主单 wms_cang_109 mst = new wms_cang_109(); mst.wmsno = bllno; mst.bllid = WMSConst.BLL_TYPE_RETCANG; mst.savdptid = LoginInfo.DefCsSavdptid; mst.prvid = ""; mst.qu = qu; ////正在生成拣货单,请稍候重试 //string quRetrv = mst.qu; //if (DoingRetrieve(LoginInfo.DefStoreid, quRetrv)) //{ // return RRInfo( "I0311" ); //} mst.rcvdptid = dptid; mst.times = "1"; 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 = hndno; mst.lnkbrief = ""; //生成明细单 int i = 0; List <wms_cangdtl_109> lstDtl = new List <wms_cangdtl_109>(); foreach (ParamRetBll r in param) { string dptid1 = (from e in WmsDc.gds where e.gdsid == r.Gdsid select e.dptid.Trim()).FirstOrDefault(); if (GetCsQuByDptid(dptid1, LoginInfo.DefStoreid) != qu.Trim()) { return RRInfo("I0468"); } wms_cangdtl_109 dtl = new wms_cangdtl_109(); dtl.wmsno = bllno; dtl.bllid = WMSConst.BLL_TYPE_RETCANG; dtl.rcdidx = i + 1; dtl.oldbarcode = ""; wms_cangwei cw = GetBarcodeByGdsid(LoginInfo.DefCsSavdptid, r.Gdsid); if (cw == null) { rm.ResultObject = null; return RRInfo("I0454", r.Gdsid); } dtl.barcode = cw.barcode; dtl.gdsid = r.Gdsid; dtl.pkgid = "01"; dtl.pkgqty = Math.Round(r.Qty, 4, MidpointRounding.AwayFromZero); dtl.qty = Math.Round(r.Qty, 4, MidpointRounding.AwayFromZero); dtl.gdstype = "95"; dtl.bthno = ""; dtl.vlddat = ""; dtl.bcd = r.Bcd; dtl.tpcode = ""; dtl.bkr = ""; dtl.bokflg = GetN(); dtl.bokdat = ""; dtl.preqty = null; dtl.brfdtl = r.Rsn.ToString(); lstDtl.Add(dtl); //修改推荐仓位标志 i++; } //done 判断商品是否在同一个部门 WmsDc.wms_cang_109.InsertOnSubmit(mst); WmsDc.wms_cangdtl_109.InsertAllOnSubmit(lstDtl); rm.ResultObject = bllno; return rm; })); }
public ActionResult MdARetBll(String bllno, String gdsid, String qty, String rsn) { using (TransactionScope scop = new TransactionScope(TransactionScopeOption.Required, options)) { ////正在生成拣货单,请稍候重试 //string quRetrv = GetQuByGdsid(gdsid, LoginInfo.DefStoreid).FirstOrDefault(); //if (DoingRetrieve(LoginInfo.DefStoreid, quRetrv)) //{ // return RInfo("I0312"); //} //拆分货号,数量 JsonResult jr = (JsonResult)_MkParam(gdsid, qty, rsn); ResultMessage rm = (ResultMessage)jr.Data; if (rm.ResultCode != ResultMessage.RESULTMESSAGE_SUCCESS) { return(jr); } List <ParamRetBll> param = null; param = (List <ParamRetBll>)rm.ResultObject; //查询返仓单 //查询返仓单主表 var qrymst = WmsDc.ExecuteQuery <wms_cang_109>("select * from wms_cang_109 with(updlock) where bllid={0} and wmsno={1} and mkr={2}", WMSConst.BLL_TYPE_RETCANG, bllno, LoginInfo.Usrid); /*var qrymst = from e in WmsDc.wms_cang_109 * where e.wmsno == bllno && e.bllid == WMSConst.BLL_TYPE_RETCANG * && e.mkr == LoginInfo.Usrid * && qus.Contains(e.qu.Trim()) * select e;*/ var arrqrymst = qrymst.Where(e => qus.Contains(e.qu.Trim())).ToArray(); /* * var qrymst = from e in WmsDc.wms_cang_109 * where e.bllid == WMSConst.BLL_TYPE_RETCANG * && e.wmsno == bllno * && qus.Contains(e.qu.Trim()) * select e; * var arrqrymst = qrymst.ToArray();*/ if (arrqrymst.Length <= 0) { return(RNoData("N0153")); } wms_cang_109 mst = arrqrymst[0]; //查询返仓单明细 var qrydtl = from e in WmsDc.wms_cangdtl_109 join e1 in WmsDc.wms_cang_109 on new { e.wmsno, e.bllid } equals new { e1.wmsno, e1.bllid } where e.wmsno == bllno && e.bllid == WMSConst.BLL_TYPE_RETCANG && e.gdsid == param[0].Gdsid select e; var arrqrydtl = qrydtl.ToArray(); if (arrqrydtl.Length <= 0) { return(RNoData("N0154")); } if (rsn.Trim() == "") { return(RInfo("I0313")); } //查询是不是本人操作 if (mst.mkr.Trim() != LoginInfo.Usrid) { return(RInfo("I0314")); } //查询是否有残损库权限 if (mst.savdptid.Trim() != LoginInfo.DefCsSavdptid.Trim()) { return(RInfo("I0315")); } //返仓单是否已经审核,审核不允许修改 if (mst != null && mst.chkflg == GetY()) { return(RInfo("I0316")); } //插入单据明细 //生成明细单 int _i = 0; List <wms_cangdtl_109> lstDtl = new List <wms_cangdtl_109>(); foreach (ParamRetBll r in param) { wms_cangdtl_109 dtl = new wms_cangdtl_109(); dtl.wmsno = bllno; dtl.bllid = WMSConst.BLL_TYPE_RETCANG; dtl.rcdidx = _i + 1; dtl.oldbarcode = ""; wms_cangwei cw = GetBarcodeByGdsid(LoginInfo.DefCsSavdptid, r.Gdsid); if (cw == null) { return(RInfo(r.Gdsid + ",推荐仓位为空", "I0317")); } dtl.barcode = cw.barcode; dtl.gdsid = r.Gdsid; dtl.pkgid = "01"; dtl.pkgqty = Math.Round(r.Qty, 4, MidpointRounding.AwayFromZero); dtl.qty = Math.Round(r.Qty, 4, MidpointRounding.AwayFromZero); dtl.gdstype = "95"; dtl.bthno = "1"; dtl.vlddat = GetCurrentDay(); dtl.bcd = r.Bcd; dtl.tpcode = ""; dtl.bkr = ""; dtl.bokflg = GetN(); dtl.bokdat = GetCurrentDate(); dtl.preqty = null; dtl.brfdtl = r.Rsn.ToString(); lstDtl.Add(dtl); _i++; } wms_cangdtl_109 mddtl = arrqrydtl[0]; mddtl.pkgqty = lstDtl[0].pkgqty; mddtl.qty = lstDtl[0].qty; if (!string.IsNullOrEmpty(rsn)) { mddtl.brfdtl = rsn; } mddtl.bokdat = GetCurrentDate(); /*WmsDc.wms_cangdtl_109.DeleteAllOnSubmit(arrqrydtl); * if (lstDtl.Count > 0) * { * WmsDc.wms_cangdtl_109.InsertAllOnSubmit(lstDtl); * } * else * { * WmsDc.wms_cang_109.DeleteOnSubmit(mst); * }*/ try { //WmsDc.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, mst); ////检查单号是否已经审核 //if (mst!=null && mst.chkflg == GetY()) //{ // return RInfo("I0207"); //} ////修改主单时间戳 //string sql = @"update wms_cang_109 set bllid='109' where wmsno='" + mst.wmsno + "' and bllid='109' and udtdtm={0}"; //int iEff = WmsDc.ExecuteCommand(sql, mst.udtdtm); //if (iEff == 0) //{ // return RInfo("I0207"); //} WmsDc.SubmitChanges(); scop.Complete(); return(RSucc("修改成功", null, "S0145")); } catch (Exception ex) { return(RErr(ex.Message, "E0042")); } } }