コード例 #1
0
        public ActionResult GenerateRecievBll(String odrno)
        {
            stkin mst = GetMst(odrno);

            if (mst == null)
            {
                return(RNoData("N0030"));
            }
            ////正在生成拣货单,请稍候重试
            string quRetrv = GetQuByDptid(mst.dptid, LoginInfo.DefStoreid);
            //if (DoingRetrieve(LoginInfo.DefStoreid, quRetrv))
            //{
            //    return RInfo( "I0051" );
            //}
            //2.查看内调单据是否已经转过为收货单
            var qryshd = from e in WmsDc.wms_bllmst
                         where e.bllid == WMSConst.BLL_TYPE_REVIECEBLL &&
                         e.lnknewno == odrno && e.lnknewbllid == WMSConst.BLL_TYPE_INNERADJ
                         select e;

            if (qryshd.Count() > 0)
            {
                return(RInfo("I0052"));
            }

            return(MakeNewBllNo(
                       mst.savdptid,
                       quRetrv,
                       WMSConst.BLL_TYPE_REVIECEBLL,
                       ((bllno) =>
            {
                var odr = mst;
                //修改转单标记
                String sNow = DateTime.Now.ToString("yyyyMMdd");
                String cmd = "update stkin set inzdflg='" + GetY() + "',inzddat={0}, inwmsno={1}, inwmsbllid={2} where stkinno={3}";
                WmsDc.ExecuteCommand(cmd, new[] { sNow, bllno, WMSConst.BLL_TYPE_INNERADJ, odrno });

                //===================== 生成一张新的收货单 =====================
                //--------------------- 1.生成主单 -----------------------------
                wms_bllmst bllmst = new wms_bllmst();
                bllmst.wmsno = bllno;
                bllmst.hndbllno = odr.hndbllno;
                bllmst.bllid = WMSConst.BLL_TYPE_REVIECEBLL;
                bllmst.prvid = odr.savdptid;
                bllmst.savdptid = odr.savdptid;
                //得到登录仓库所在部门的区位码
                GetRealteQuResult realte = GetRealteQu(odr.dptid, odr.savdptid);
                bllmst.qu = realte.qu;

                /*bllmst.tongdao = odr.mst.tongdao;
                 * bllmst.huojia = odr.mst.huojia;*/
                bllmst.odrdat = odr.mkedat;
                bllmst.arvdat = odr.mkedat;
                bllmst.mkr = LoginInfo.Usrid;
                bllmst.mkedat = GetCurrentDate();
                bllmst.ckr = "";
                bllmst.chkflg = GetN();
                bllmst.chkdat = "";
                bllmst.opr = LoginInfo.Usrid;
                bllmst.brief = odr.brief;
                bllmst.lnknewbllid = odr.bllid;
                bllmst.lnknewno = odr.stkinno;
                bllmst.lnknewbrief = odr.brief;
                this.WmsDc.wms_bllmst.InsertOnSubmit(bllmst);
                //--------------------- 2.生成明细 -----------------------------
                List <wms_blldtl> blldtls = new List <wms_blldtl>();
                List <WmsBllGds> gdss = new List <WmsBllGds>();
                foreach (var dtl in odr.stkindtl)
                {
                    wms_blldtl blldtl = new wms_blldtl();
                    blldtl.wmsno = bllmst.wmsno;
                    blldtl.bllid = bllmst.bllid;
                    blldtl.rcdidx = dtl.rcdidx;
                    blldtl.barcode = "";
                    blldtl.gdsid = dtl.gdsid;
                    blldtl.pkgid = "01";       //dtl.pkgid;
                    blldtl.qty = 0;
                    blldtl.preqty = Math.Round(dtl.qty, 4, MidpointRounding.AwayFromZero);
                    blldtl.gdstype = WMSConst.GDS_TYPE_NORMAL;
                    blldtl.bthno = string.IsNullOrEmpty(dtl.bthno) ? "1" : dtl.bthno;
                    blldtl.vlddat = string.IsNullOrEmpty(dtl.vlddat) ? GetCurrentDay() : dtl.vlddat;
                    blldtl.bcd = dtl.bcd == null ? "" : dtl.bcd;
                    blldtl.prvid = bllmst.prvid == null ? "" : dtl.prvid;
                    blldtl.bkr = "";
                    blldtl.bokflg = GetN();
                    blldtl.bokdat = GetCurrentDate();
                    blldtl.brief = "";

                    WmsBllGds gds = WmsDc.gds
                                    .Where(e => e.gdsid == dtl.gdsid)
                                    .Select(e => new WmsBllGds
                    {
                        gdsid = e.gdsid.Trim(),
                        gdsdes = e.gdsdes.Trim(),
                        spc = e.spc.Trim(),
                        bsepkg = e.bsepkg.Trim()
                    }).Single();
                    gdss.Add(gds);

                    blldtls.Add(blldtl);
                }
                this.WmsDc.wms_blldtl.InsertAllOnSubmit(blldtls);
                //===================== 生成一张新的收货单 =====================

                try
                {
                    var dtlstmp = (from e in blldtls
                                   join e1 in gdss on e.gdsid.Trim() equals e1.gdsid.Trim()
                                   select new
                    {
                        e.wmsno,
                        e.vlddat,
                        e.rcdidx,
                        e.qty,
                        e.prvid,
                        e.preqty,
                        e.pkgid,
                        e.gdstype,
                        e.gdsid,
                        e.brief,
                        e.bokflg,
                        e.bokdat,
                        e.bllid,
                        e.bkr,
                        e.bcd,
                        e.barcode,
                        e1.gdsdes,
                        e1.spc,
                        e1.bsepkg
                    }
                                   ).ToArray();
                    Wmsbll obj = new Wmsbll
                    {
                        mst = bllmst,
                        dptdes = (from e in WmsDc.dpt
                                  where e.dptid == odr.dptid.Trim()
                                  select e.dptdes).Single(),
                        prv = null,
                        dtl = blldtls.ToArray(),
                        gds = gdss.ToArray(),
                        dtls = dtlstmp
                    };

                    //obj = ((Wmsbll)Rm.ResultObject);
                    var objrm = new
                    {
                        obj.mst.arvdat,
                        obj.mst.bllid,
                        obj.mst.brief,
                        obj.mst.chkdat,
                        obj.mst.chkflg,
                        obj.mst.ckr,
                        obj.mst.hndbllno,
                        obj.mst.huojia,
                        obj.mst.lnknewbllid,
                        obj.mst.lnknewbrief,
                        obj.mst.lnknewno,
                        obj.mst.mkedat,
                        obj.mst.mkr,
                        obj.mst.odrdat,
                        obj.mst.opr,
                        obj.mst.prvid,
                        obj.mst.qu,
                        obj.mst.savdptid,
                        obj.mst.tongdao,
                        obj.mst.wmsno,
                        prvdes = "",    //obj.prv.prvdes,
                        obj.dptdes
                    };
                    Rm.ResultObject = objrm;

                    return Rm;
                }
                catch (Exception ex)
                {
                    return RRErr(ex.Message, "E0057");
                }
            })));
        }
コード例 #2
0
ファイル: RecievController.cs プロジェクト: firespeed79/WMS-5
        public ActionResult GenerateRecievBll(String odrno)
        {
            String qu = GetQuByDptid(odrno, LoginInfo.DefStoreid);

            return(MakeNewBllNo(
                       LoginInfo.DefSavdptid,
                       qu,
                       WMSConst.BLL_TYPE_REVIECEBLL,
                       ((bllno) =>
            {
                //WmsDc.Transaction = WmsDc.Connection.BeginTransaction();
                var qry = from e in WmsDc.odr
                          where e.odrno == odrno &&
                          e.savdptid == LoginInfo.DefSavdptid &&
                          e.bllid == WMSConst.BLL_TYPE_PURCHASE &&
                          e.ordstu == (char)ORD_STATUS.AUDIT && e.zdflg == GetN()
                          select new
                {
                    mst = e,
                    dtl = from e1 in WmsDc.odrdtl
                          where e1.odrno == odrno
                          select e1
                };
                var arrqry = qry.ToArray();
                //1.未找到供应商采购订单
                if (arrqry.Count() <= 0)
                {
                    return RRInfo("I0443");
                }

                //2.查看采购单据是否已经转过为收货单
                var qryshd = from e in WmsDc.wms_bllmst
                             where e.bllid == WMSConst.BLL_TYPE_REVIECEBLL &&
                             e.lnknewno == odrno
                             select e;
                if (qryshd.Count() > 0)
                {
                    return RRInfo("I0444");
                }

                var odr = arrqry[0];
                //修改转单标记
                String sNow = DateTime.Now.ToString("yyyyMMdd");
                String cmd = "update odr set zdflg='" + GetY() + "',zddat={0} where odrno={1}";
                WmsDc.ExecuteCommand(cmd, new[] { sNow, odrno });



                //===================== 生成一张新的收货单 =====================
                //--------------------- 1.生成主单 -----------------------------
                wms_bllmst bllmst = new wms_bllmst();
                bllmst.wmsno = bllno;
                bllmst.hndbllno = odr.mst.hndbllno;
                bllmst.bllid = WMSConst.BLL_TYPE_REVIECEBLL;
                bllmst.prvid = odr.mst.prvid;
                bllmst.savdptid = odr.mst.savdptid;
                //得到登录仓库所在部门的区位码
                GetRealteQuResult realte = GetRealteQu(odr.mst.dptid, LoginInfo.DefSavdptid);
                bllmst.qu = realte.qu;
                ////正在生成拣货单,请稍候重试
                //string quRetrv = bllmst.qu;
                //if (DoingRetrieve(LoginInfo.DefStoreid, quRetrv))
                //{
                //    return RRInfo( "I0225" );
                //}

                /*bllmst.tongdao = odr.mst.tongdao;
                 * bllmst.huojia = odr.mst.huojia;*/
                bllmst.odrdat = odr.mst.odrdat;
                bllmst.arvdat = odr.mst.arvdat;
                bllmst.mkr = LoginInfo.Usrid;
                bllmst.mkedat = DateTime.Now.ToString("yyyyMMddhhmmss");
                bllmst.ckr = "";
                bllmst.chkflg = GetN();
                bllmst.chkdat = "";
                bllmst.opr = LoginInfo.Usrid;
                bllmst.brief = odr.mst.brief;
                bllmst.lnknewbllid = odr.mst.bllid;
                bllmst.lnknewno = odr.mst.odrno;
                bllmst.lnknewbrief = odr.mst.brief;
                this.WmsDc.wms_bllmst.InsertOnSubmit(bllmst);
                //--------------------- 2.生成明细 -----------------------------
                List <wms_blldtl> blldtls = new List <wms_blldtl>();
                List <WmsBllGds> gdss = new List <WmsBllGds>();
                foreach (odrdtl dtl in odr.dtl)
                {
                    if (dtl.qty != 0)
                    {
                        wms_blldtl blldtl = new wms_blldtl();
                        blldtl.wmsno = bllmst.wmsno;
                        blldtl.bllid = bllmst.bllid;
                        blldtl.rcdidx = dtl.rcdidx;
                        blldtl.barcode = "";
                        blldtl.gdsid = dtl.gdsid;
                        blldtl.pkgid = "01";       //dtl.pkgid;
                        blldtl.qty = 0;
                        blldtl.preqty = Math.Round(dtl.qty, 4, MidpointRounding.AwayFromZero);
                        blldtl.gdstype = WMSConst.GDS_TYPE_NORMAL;
                        blldtl.bthno = dtl.bthno == null ? "" : dtl.bthno;
                        blldtl.vlddat = dtl.vlddat == null ? "" : dtl.vlddat;
                        blldtl.bcd = dtl.bcd == null ? "" : dtl.bcd;
                        blldtl.prvid = bllmst.prvid == null ? "" : dtl.prvid;
                        blldtl.bkr = "";
                        blldtl.bokflg = GetN();
                        blldtl.bokdat = "";
                        blldtl.brief = "";

                        WmsBllGds gds = WmsDc.gds
                                        .Where(e => e.gdsid == dtl.gdsid)
                                        .Select(e => new WmsBllGds
                        {
                            gdsid = e.gdsid.Trim(),
                            gdsdes = e.gdsdes.Trim(),
                            spc = e.spc.Trim(),
                            bsepkg = e.bsepkg.Trim()
                        }).Single();
                        gdss.Add(gds);

                        blldtls.Add(blldtl);
                    }
                }
                this.WmsDc.wms_blldtl.InsertAllOnSubmit(blldtls);
                //===================== 生成一张新的收货单 =====================

                try
                {
                    var dtlstmp = (from e in blldtls
                                   join e1 in gdss on e.gdsid.Trim() equals e1.gdsid.Trim()
                                   select new
                    {
                        e.wmsno,
                        e.vlddat,
                        e.rcdidx,
                        e.qty,
                        e.prvid,
                        e.preqty,
                        e.pkgid,
                        e.gdstype,
                        e.gdsid,
                        e.brief,
                        e.bokflg,
                        e.bokdat,
                        e.bllid,
                        e.bkr,
                        e.bcd,
                        e.barcode,
                        e1.gdsdes,
                        e1.spc,
                        e1.bsepkg
                    }
                                   ).ToArray();
                    Wmsbll obj = new Wmsbll
                    {
                        mst = bllmst,
                        dptdes = (from e in WmsDc.dpt
                                  where e.dptid == odr.mst.dptid
                                  select e.dptdes).Single(),
                        prv = (from e4 in WmsDc.prv
                               where e4.prvid == bllmst.prvid
                               select new WmsBllPrv
                        {
                            prvid = e4.prvid.Trim(),
                            prvdes = e4.prvdes.Trim(),
                        }).Single(),
                        dtl = blldtls.ToArray(),
                        gds = gdss.ToArray(),
                        dtls = dtlstmp
                    };

                    //obj = ((Wmsbll)Rm.ResultObject);
                    var objrm = new
                    {
                        obj.mst.arvdat,
                        obj.mst.bllid,
                        obj.mst.brief,
                        obj.mst.chkdat,
                        obj.mst.chkflg,
                        obj.mst.ckr,
                        obj.mst.hndbllno,
                        obj.mst.huojia,
                        obj.mst.lnknewbllid,
                        obj.mst.lnknewbrief,
                        obj.mst.lnknewno,
                        obj.mst.mkedat,
                        obj.mst.mkr,
                        obj.mst.odrdat,
                        obj.mst.opr,
                        obj.mst.prvid,
                        obj.mst.qu,
                        obj.mst.savdptid,
                        obj.mst.tongdao,
                        obj.mst.wmsno,
                        obj.prv.prvdes,
                        obj.dptdes
                    };
                    Rm.ResultObject = objrm;

                    return Rm;
                }
                catch (Exception ex)
                {
                    return RRErr(ex.Message, "E0065");
                }
            })));
        }