コード例 #1
0
        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]);
        }
コード例 #2
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"));
        }
コード例 #3
0
        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"));
            }
        }
コード例 #4
0
        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"));
        }