private bcd GetGdsid(String gdsid) { var qry1 = from e in WmsDc.gds where e.gdsid == gdsid select e; if (qry1.Count() <= 0) { return(null); } var qry = from e in WmsDc.gds join e1 in WmsDc.bcd on e.gdsid equals e1.gdsid where e.gdsid == gdsid //&& (dpts.Length > 0 && dpts.Contains(e.dptid.Trim())) select e1; var arrqry = qry.ToArray(); if (arrqry.Length <= 0) { bcd bcd = new bcd(); bcd.bcd1 = ""; bcd.bcd2 = ""; bcd.gdsid = gdsid.Trim(); return(bcd); } return(arrqry[0]); }
private ActionResult _MkParam(String gdsids, String qtys, String rsns) { if (gdsids == null) { return(RInfo("I0285")); } if (qtys == null) { return(RInfo("I0286")); } if (rsns == null) { return(RInfo("I0287")); } String[] gdsid = gdsids.Split(','); String[] qty = qtys.Split(','); String[] rsn = rsns.Split(','); List <ParamRetBll> lstParam = new List <ParamRetBll>(); if (gdsid.Length != qty.Length) { return(RInfo("I0288")); } if (gdsid.Length != rsn.Length) { return(RInfo("I0289")); } for (int i = 0; i < qty.Length; i++) { if (!String.IsNullOrEmpty(gdsid[i]) && !string.IsNullOrEmpty(qty[i])) { double f = 0; if (!double.TryParse(qty[i], out f)) { return(RInfo("I0290", gdsid[i], qty[i])); } bcd agdsid = GetGdsid(gdsid[i]); if (agdsid == null) { return(RInfo("I0291", gdsid[i])); } lstParam.Add(new ParamRetBll() { Gdsid = agdsid.gdsid, Bcd = agdsid.bcd1, Qty = f, Rsn = rsn[i] }); } } return(RSucc("成功", lstParam, "S0136")); }
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")); } }
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")); }