public ActionResult AdRetPrv(String wmsno, String barcode, String gdsid, String gdstype, double qty) { //判断分区是否有效 if (!IsExistBarcode(barcode)) { return(RInfo("I0351", barcode.Trim())); } //检查单号是否存在 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 orderby e.rcdidx descending select e; var arrqrydtl = qrydtl.ToArray(); //单据是否找到 if (arrqrymst.Length <= 0) { return(RNoData("N0163")); } //检查是否有数据权限 wms_cang_110 mst = arrqrymst[0]; ////正在生成拣货单,请稍候重试 //string quRetrv = mst.qu; //if (DoingRetrieve(LoginInfo.DefStoreid, quRetrv)) //{ // return RInfo( "I0352" ); //} if (!qus.Contains(mst.qu.Trim())) { return(RInfo("I0353")); } //检查单号是否已经审核 if (mst.chkflg == GetY()) { return(RInfo("I0354")); } //判断gdsid和barcode是不是在一个区 String[] qu = GetQuByGdsid(gdsid, LoginInfo.DefStoreid); if (!qu.Contains(barcode.Substring(0, 2))) { return(RInfo("I0355", gdsid, String.Join(",", qu))); } //如果是报损,判断是否有库存 if (!HasQtyInBarcode(barcode, gdsid, gdstype)) { return(RInfo("I0356", gdsid, barcode)); } if (mst.times.Trim() == "-") { //如果是报损,判断是否有库存 //得到一个商品的库存数量 GdsInBarcode[] gb = GetAGdsQtyInBarcode(barcode, gdsid, gdstype); double bqty = (gb == null || gb.Length <= 0) ? 0 : gb[0].sqty; double ktqty = bqty; //可调数量 = 库存数量+本单该商品的数量 //如果 需调整数量 > 可调数量 if (qty > ktqty) { return(RInfo("I0357", qty, ktqty)); } } //判断商品是否已经再单据里面 int iHasIn = arrqrydtl.Where(e => e.gdsid == gdsid && e.gdstype == gdstype && e.barcode == barcode).Count(); if (iHasIn > 0) { return(RInfo("I0358", gdsid)); } wms_cangdtl_110 dtl = new wms_cangdtl_110(); dtl.wmsno = wmsno; dtl.bllid = WMSConst.BLL_TYPE_RETPRV; dtl.rcdidx = arrqrydtl[0].rcdidx + 1; dtl.barcode = barcode; dtl.gdsid = gdsid; dtl.gdstype = gdstype; dtl.pkgid = "01"; double fQty = qty; dtl.qty = Math.Round(fQty, 4, MidpointRounding.AwayFromZero); dtl.preqty = Math.Round(fQty, 4, MidpointRounding.AwayFromZero); dtl.pkgqty = Math.Round(fQty, 4, MidpointRounding.AwayFromZero); dtl.gdstype = gdstype; dtl.bthno = ""; dtl.vlddat = ""; JsonResult jr = (JsonResult)GetBcdByGdsid(gdsid); ResultMessage rm = (ResultMessage)jr.Data; if (rm.ResultCode != ResultMessage.RESULTMESSAGE_SUCCESS) { return(RInfo("I0359", gdsid)); } bcd[] b = (bcd[])rm.ResultObject; dtl.bcd = b[0].bcd1; dtl.bkr = ""; dtl.bokflg = GetN(); dtl.bokdat = ""; WmsDc.wms_cangdtl_110.InsertOnSubmit(dtl); try { WmsDc.SubmitChanges(); return(RSucc("成功", dtl, "S0154")); } catch (Exception ex) { return(RErr(ex.Message, "E0047")); } }
/// <summary> /// 修改返厂单 /// </summary> /// <param name="wmsno"></param> /// <param name="gdsid"></param> /// <param name="rcdidx"></param> /// <param name="qty"></param> /// <returns></returns> public ActionResult MdARetPrv(String wmsno, String gdsid, int rcdidx, double qty) { //检查单号是否存在 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 && e.gdsid == gdsid && e.rcdidx == rcdidx orderby e.rcdidx descending select e; var arrqrydtl = qrydtl.ToArray(); //单据是否找到 if (arrqrymst.Length <= 0) { return(RNoData("N0161")); } //检查是否有数据权限 wms_cang_110 mst = arrqrymst[0]; ////正在生成拣货单,请稍候重试 //string quRetrv = mst.qu; //if (DoingRetrieve(LoginInfo.DefStoreid, quRetrv)) //{ // return RInfo( "I0344" ); //} if (!qus.Contains(mst.qu.Trim())) { return(RInfo("I0345")); } //检查单号是否已经审核 if (mst.chkflg == GetY()) { return(RInfo("I0346")); } //是否是同一个人制单 if (!IsSameLogin(mst.mkr)) { return(RInfo("I0347", mst.mkr, LoginInfo.Usrid)); } //未找到该商品 if (arrqrydtl.Length <= 0) { return(RNoData("N0162")); } //修改数量 wms_cangdtl_110 dtl = arrqrydtl[0]; //得到一个商品的库存数量 GdsInBarcode[] gb = GetAGdsQtyInBarcode(dtl.barcode, gdsid, dtl.gdstype); double bqty = (gb == null || gb.Length <= 0) ? 0 : gb[0].sqty; double ktqty = bqty + dtl.qty; //可调数量 = 库存数量+本单该商品的数量 //如果 需调整数量 > 可调数量 if (qty > ktqty) { return(RInfo("I0348", qty, ktqty)); } //修改数量 dtl.qty = Math.Round(qty, 4, MidpointRounding.AwayFromZero); dtl.pkgqty = Math.Round(qty, 4, MidpointRounding.AwayFromZero); dtl.preqty = Math.Round(qty, 4, MidpointRounding.AwayFromZero); try { WmsDc.SubmitChanges(); return(RSucc("成功", arrqrydtl[0], "S0152")); } catch (Exception ex) { return(RErr(ex.Message, "E0046")); } }
private ActionResult _MakeParam(String wmsno, String oldbarcodes, String gdsids, String gdstypes, String qtys) { if (gdsids == null) { return(RInfo("I0324")); } if (qtys == null) { return(RInfo("I0325")); } if (gdstypes == null) { return(RInfo("I0326")); } if (oldbarcodes == null) { return(RInfo("I0327")); } String[] oldbarcode = oldbarcodes.Split(','); String[] gdsid = gdsids.Split(','); String[] qty = qtys.Split(','); String[] gdstype = gdstypes.Split(','); //String[] newsbarcode = newbarcodes.Split(','); List <wms_cangdtl_110> lstDtl = new List <wms_cangdtl_110>(); if ((oldbarcode.Length != gdsid.Length) && (oldbarcode.Length != qty.Length) && (oldbarcode.Length != gdstype.Length)) { return(RInfo("I0328")); } int i = 0; foreach (String s in oldbarcode) { if (!String.IsNullOrEmpty(s)) { //判断分区是否有效 if (!IsExistBarcode(s)) { return(RInfo("I0329", s.Trim())); } //判断gdsid和barcode是不是在一个区 String[] qu = GetQuByGdsid(gdsid[i], LoginInfo.DefStoreid); if (qu == null) { return(RInfo("I0330")); //return RInfo("商品" + gdsid[i] + "不在区[" + String.Join(",", s.Substring(0, 2)) + "]内", "I0331"); } if (!qu.Contains(s.Substring(0, 2))) { return(RInfo("I0332", gdsid[i], String.Join(",", qu))); } wms_cangdtl_110 dtl = new wms_cangdtl_110(); dtl.wmsno = wmsno; dtl.bllid = WMSConst.BLL_TYPE_RETPRV; dtl.rcdidx = i + 1; dtl.barcode = s; dtl.gdsid = gdsid[i]; dtl.gdstype = gdstype[i]; dtl.pkgid = "01"; double fQty = 0; if (!double.TryParse(qty[i], out fQty)) { return(RInfo("I0333", gdsid[i], qty[i])); } dtl.qty = Math.Round(fQty, 4, MidpointRounding.AwayFromZero); dtl.preqty = Math.Round(fQty, 4, MidpointRounding.AwayFromZero); dtl.pkgqty = Math.Round(fQty, 4, MidpointRounding.AwayFromZero); dtl.bthno = ""; dtl.vlddat = ""; JsonResult jr = (JsonResult)GetBcdByGdsid(gdsid[i]); ResultMessage rm = (ResultMessage)jr.Data; if (rm.ResultCode != ResultMessage.RESULTMESSAGE_SUCCESS) { return(RInfo("I0334", gdsid[i])); } bcd[] b = (bcd[])rm.ResultObject; dtl.bcd = b[0].bcd1; dtl.bkr = ""; dtl.bokflg = GetN(); dtl.bokdat = ""; lstDtl.Add(dtl); i++; } } return(RSucc("成功", lstDtl.ToArray(), "S0148")); }
public ActionResult AdRetPrv(String wmsno, String barcode, String gdsid, String gdstype, String bthno, String vlddat, double qty) { //判断分区是否有效 if (!IsExistBarcode(barcode)) { return(RInfo("I0351", barcode.Trim())); } //检查单号是否存在 /*var qrymst = from e in WmsDc.wms_cang_110 * where e.wmsno == wmsno * && e.bllid == WMSConst.BLL_TYPE_RETPRV * select e;*/ var qrymst = WmsDc.ExecuteQuery <wms_cang_110>("select * from wms_cang_110 with(updlock) where wmsno={0} and bllid={1}", wmsno, WMSConst.BLL_TYPE_RETPRV); var arrqrymst = qrymst.ToArray(); var qrydtl = from e in WmsDc.wms_cangdtl_110 where e.wmsno == wmsno && e.bllid == WMSConst.BLL_TYPE_RETPRV orderby e.rcdidx descending select e; var arrqrydtl = qrydtl.ToArray(); //单据是否找到 if (arrqrymst.Length <= 0) { return(RNoData("N0163")); } //检查是否有数据权限 wms_cang_110 mst = arrqrymst[0]; ////正在生成拣货单,请稍候重试 string quRetrv = mst.qu; if (DoingRetrieve(LoginInfo.DefStoreid, quRetrv)) { return(RInfo("I0352")); } if (!qus.Contains(mst.qu.Trim())) { return(RInfo("I0353")); } //检查单号是否已经审核 if (mst != null && mst.chkflg == GetY()) { return(RInfo("I0354")); } //判断gdsid和barcode是不是在一个区 String[] qu = GetQuByGdsid(gdsid, LoginInfo.DefStoreid); if (!qu.Contains(barcode.Substring(0, 2))) { return(RInfo("I0355", gdsid, String.Join(",", qu))); } //如果是报损,判断是否有库存 if (!HasQtyInBarcode(barcode, gdsid, gdstype)) { return(RInfo("I0356", gdsid, barcode)); } //得到一个商品的库存数量 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 (qty > ktqty) { return(RInfo("I0357", qty, ktqty)); } //判断商品是否已经再单据里面 int iHasIn = arrqrydtl.Where(e => e.gdsid.Trim() == gdsid.Trim() && e.gdstype.Trim() == gdstype.Trim() && e.barcode.Trim() == barcode.Trim() && e.bthno.Trim() == bthno.Trim() && e.vlddat.Trim() == vlddat.Trim()).Count(); if (iHasIn > 0) { return(RInfo("I0358", gdsid)); } wms_cangdtl_110 dtl = new wms_cangdtl_110(); dtl.wmsno = wmsno; dtl.bllid = WMSConst.BLL_TYPE_RETPRV; dtl.rcdidx = arrqrydtl[0].rcdidx + 1; dtl.barcode = barcode; dtl.gdsid = gdsid; dtl.gdstype = gdstype; dtl.pkgid = "01"; double fQty = qty; dtl.qty = Math.Round(fQty, 4, MidpointRounding.AwayFromZero); dtl.preqty = Math.Round(fQty, 4, MidpointRounding.AwayFromZero); dtl.pkgqty = Math.Round(fQty, 4, MidpointRounding.AwayFromZero); dtl.gdstype = gdstype; dtl.bthno = string.IsNullOrEmpty(bthno.Trim()) ? "1" : bthno.Trim(); dtl.vlddat = string.IsNullOrEmpty(vlddat.Trim()) ? GetCurrentDay() : vlddat.Trim(); JsonResult jr = (JsonResult)GetBcdByGdsid(gdsid); ResultMessage rm = (ResultMessage)jr.Data; /*if (rm.ResultCode != ResultMessage.RESULTMESSAGE_SUCCESS) * { * return RInfo( "I0359",gdsid ); * }*/ bcd b = rm.ResultObject == null ? null : ((bcd[])rm.ResultObject).FirstOrDefault(); dtl.bcd = b == null ? null : b.bcd1; dtl.bkr = ""; dtl.bokflg = GetN(); dtl.bokdat = GetCurrentDate(); WmsDc.wms_cangdtl_110.InsertOnSubmit(dtl); try { //WmsDc.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, mst); //检查单号是否已经审核 if (mst != null && mst.chkflg == GetY()) { return(RInfo("I0207")); } WmsDc.SubmitChanges(); return(RSucc("成功", dtl, "S0154")); } catch (Exception ex) { return(RErr(ex.Message, "E0047")); } }
/// <summary> /// 修改返厂单 /// </summary> /// <param name="wmsno"></param> /// <param name="gdsid"></param> /// <param name="rcdidx"></param> /// <param name="qty"></param> /// <returns></returns> public ActionResult MdARetPrv(String wmsno, String gdsid, int rcdidx, double qty) { using (TransactionScope scop = new TransactionScope(TransactionScopeOption.Required, options)) { //检查单号是否存在 /*var qrymst = from e in WmsDc.wms_cang_110 * where e.wmsno == wmsno * && e.bllid == WMSConst.BLL_TYPE_RETPRV * select e;*/ var qrymst = WmsDc.ExecuteQuery <wms_cang_110>("select * from wms_cang_110 with(updlock) where wmsno={0} and bllid={1}", wmsno, WMSConst.BLL_TYPE_RETPRV); var arrqrymst = qrymst.ToArray(); var qrydtl = from e in WmsDc.wms_cangdtl_110 where e.wmsno == wmsno && e.bllid == WMSConst.BLL_TYPE_RETPRV && e.gdsid == gdsid && e.rcdidx == rcdidx orderby e.rcdidx descending select e; var arrqrydtl = qrydtl.ToArray(); //单据是否找到 if (arrqrymst.Length <= 0) { return(RNoData("N0161")); } //检查是否有数据权限 wms_cang_110 mst = arrqrymst[0]; ////正在生成拣货单,请稍候重试 string quRetrv = mst.qu; if (DoingRetrieve(LoginInfo.DefStoreid, quRetrv)) { return(RInfo("I0344")); } if (!qus.Contains(mst.qu.Trim())) { return(RInfo("I0345")); } //检查单号是否已经审核 if (mst != null && mst.chkflg == GetY()) { return(RInfo("I0346")); } //是否是同一个人制单 if (!IsSameLogin(mst.mkr)) { return(RInfo("I0347", mst.mkr, LoginInfo.Usrid)); } //未找到该商品 if (arrqrydtl.Length <= 0) { return(RNoData("N0162")); } //修改数量 wms_cangdtl_110 dtl = arrqrydtl[0]; //得到一个商品的库存数量 GdsInBarcode[] gb = GetAGdsQtyInBarcode(dtl.barcode, gdsid, dtl.gdstype) .Where(e => e.vlddat.Trim() == dtl.vlddat.Trim() && e.bthno.Trim() == dtl.bthno.Trim()) .ToArray(); double bqty = (gb == null || gb.Length <= 0) ? 0 : gb[0].sqty; double ktqty = bqty + dtl.qty; //可调数量 = 库存数量+本单该商品的数量 //如果 需调整数量 > 可调数量 if (qty > ktqty) { return(RInfo("I0348", qty, ktqty)); } //修改数量 dtl.qty = Math.Round(qty, 4, MidpointRounding.AwayFromZero); dtl.pkgqty = Math.Round(qty, 4, MidpointRounding.AwayFromZero); dtl.preqty = Math.Round(qty, 4, MidpointRounding.AwayFromZero); try { //WmsDc.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, mst); //检查单号是否已经审核 if (mst != null && mst.chkflg == GetY()) { return(RInfo("I0207")); } //修改主单时间戳 /*string sql = @"update wms_cang_110 set bllid='110' where wmsno='" + mst.wmsno + "' and bllid='110' and udtdtm={0}"; * int iEff = WmsDc.ExecuteCommand(sql, mst.udtdtm); * if (iEff == 0) * { * return RInfo("I0207"); * }*/ WmsDc.SubmitChanges(); scop.Complete(); return(RSucc("成功", arrqrydtl[0], "S0152")); } catch (Exception ex) { return(RErr(ex.Message, "E0046")); } } }
private ActionResult _MakeParam(String wmsno, String oldbarcodes, String gdsids, String gdstypes, String bthnos, String vlddats, String qtys) { if (gdsids == null) { return(RInfo("I0324")); } if (qtys == null) { return(RInfo("I0325")); } if (gdstypes == null) { return(RInfo("I0326")); } if (oldbarcodes == null) { return(RInfo("I0327")); } String[] oldbarcode = oldbarcodes.Split(','); String[] gdsid = gdsids.Split(','); String[] qty = qtys.Split(','); String[] gdstype = gdstypes.Split(','); String[] bthno = bthnos.Split(','); String[] vlddat = vlddats.Split(','); //String[] newsbarcode = newbarcodes.Split(','); List <wms_cangdtl_110> lstDtl = new List <wms_cangdtl_110>(); if ((oldbarcode.Length != gdsid.Length) && (oldbarcode.Length != qty.Length) && (oldbarcode.Length != gdstype.Length) && (bthno.Length != gdstype.Length) && (vlddat.Length != gdstype.Length) ) { return(RInfo("I0328")); } int i = 0; foreach (String s in oldbarcode) { if (!String.IsNullOrEmpty(s)) { //判断分区是否有效 if (!IsExistBarcode(s)) { return(RInfo("I0329", s.Trim())); } //判断gdsid和barcode是不是在一个区 String[] qu = GetQuByGdsid(gdsid[i], LoginInfo.DefStoreid); if (qu == null) { return(RInfo("I0330")); } if (!qu.Contains(s.Substring(0, 2))) { return(RInfo("I0332", gdsid[i], String.Join(",", qu))); } wms_cangdtl_110 dtl = new wms_cangdtl_110(); dtl.wmsno = wmsno; dtl.bllid = WMSConst.BLL_TYPE_RETPRV; dtl.rcdidx = i + 1; dtl.barcode = s; dtl.gdsid = gdsid[i]; dtl.gdstype = gdstype[i]; dtl.pkgid = "01"; double fQty = 0; if (!double.TryParse(qty[i], out fQty)) { return(RInfo("I0333", gdsid[i], qty[i])); } dtl.qty = Math.Round(fQty, 4, MidpointRounding.AwayFromZero); dtl.preqty = Math.Round(fQty, 4, MidpointRounding.AwayFromZero); dtl.pkgqty = Math.Round(fQty, 4, MidpointRounding.AwayFromZero); dtl.bthno = string.IsNullOrEmpty(bthno[i]) ? "1" : bthno[i]; dtl.vlddat = string.IsNullOrEmpty(vlddat[i]) ? "1" : vlddat[i]; JsonResult jr = (JsonResult)GetBcdByGdsid(gdsid[i]); ResultMessage rm = (ResultMessage)jr.Data; /*if (rm.ResultCode != ResultMessage.RESULTMESSAGE_SUCCESS) * { * return RInfo( "I0334",gdsid[i] ); * }*/ bcd b = (rm.ResultObject == null?null:((bcd[])rm.ResultObject).FirstOrDefault()); dtl.bcd = b == null? null : b.bcd1; dtl.bkr = ""; dtl.bokflg = GetN(); dtl.bokdat = GetCurrentDate(); // 判断在列表中是否已经有这条记录了 if (IsExistsInBarcode(lstDtl.ToArray(), dtl.barcode, dtl.gdsid, dtl.gdstype, dtl.vlddat, dtl.bthno)) { return(RInfo("I0478")); } lstDtl.Add(dtl); i++; } } return(RSucc("成功", lstDtl.ToArray(), "S0148")); }