Example #1
0
        protected CheckResult CheckVendorInfo(GRDiagData grData)
        {
            var grVendor = new List<string[]>();

            if (grData.IsNewIV)
            {
                var grVC = new Dictionary<String, List<String>>();
                var vcs = new Dictionary<String, List<String>>();

                var objsNewIv = from gr in _dbContext.ABi_GR
                                join pg in _dbContext.ABi_PO_GR on gr.ABi_GR_ID equals pg.ABi_GR_ID
                                join po in _dbContext.ABi_PO on pg.ABi_PO_ID equals po.ABi_PO_ID
                                join c in _dbContext.ABi_Company on gr.ABi_Company_ID equals c.ABi_Company_ID
                                join v in _dbContext.ABi_Vendor on gr.ABi_Vendor_ID equals v.ABi_Vendor_ID
                                where ((String.IsNullOrEmpty(grData.GRNumber) || (gr.GRNumber == grData.GRNumber && gr.GRItemNumber.Contains(grData.GRItemNumber))))
                                     && ((String.IsNullOrEmpty(grData.RefGRNumber) || (gr.RefGRNumber == grData.RefGRNumber && gr.RefGRItemNumber.Contains(grData.RefGRItemNumber))))
                                select new { gr.GRNumber, gr.GRItemNumber, po.PONumber, po.POItemNumber, c.CompanyCode, v.ABi_Vendor_ID, v.VendorCode};

                if (objsNewIv != null && objsNewIv.Count() > 0)
                {
                    foreach(var obj in objsNewIv)
                    {
                        if (!grVC.ContainsKey(obj.VendorCode))
                        {
                            grVC[obj.VendorCode] = new List<string>();
                        }

                        if (!grVC[obj.VendorCode].Contains(obj.CompanyCode))
                        {
                            grVC[obj.VendorCode].Add(obj.CompanyCode);
                        }
                    }
                }
                var vcObjs = from gr in _dbContext.ABi_GR
                             join v in _dbContext.ABi_Vendor on gr.ABi_Vendor_ID equals v.ABi_Vendor_ID
                             join vc in _dbContext.ABi_Vendor_Company on v.ABi_Vendor_ID equals vc.ABi_Vendor_ID
                             join c in _dbContext.ABi_Company on vc.ABi_Company_ID equals c.ABi_Company_ID
                             where ((String.IsNullOrEmpty(grData.GRNumber) || (gr.GRNumber == grData.GRNumber && gr.GRItemNumber.Contains(grData.GRItemNumber))))
                                     && ((String.IsNullOrEmpty(grData.RefGRNumber) || (gr.RefGRNumber == grData.RefGRNumber && gr.RefGRItemNumber.Contains(grData.RefGRItemNumber))))
                             select new { c.CompanyCode, v.ABi_Vendor_ID, v.VendorCode };

                if (vcObjs != null && vcObjs.Count() > 0)
                {
                    foreach (var obj in vcObjs)
                    {
                        if (!vcs.ContainsKey(obj.VendorCode))
                        {
                            vcs[obj.VendorCode] = new List<string>();
                        }

                        if (!vcs[obj.VendorCode].Contains(obj.CompanyCode))
                        {
                            vcs[obj.VendorCode].Add(obj.CompanyCode);
                        }
                    }
                }

                foreach (var key in grVC.Keys)
                {
                    if (vcs.ContainsKey(key))
                    {
                        foreach (var c in grVC[key])
                        {
                            if (!vcs[key].Contains(c))
                            {
                                grVendor.Add(new string[] {
                                    key, c
                                });
                            }
                        }
                    }
                    else
                    {
                        foreach (var c in grVC[key])
                        {
                            grVendor.Add(new string[] {
                                key, c
                            });
                        }
                    }
                }
            }
            var sbMsg = new System.Text.StringBuilder();

            if (grVendor.Count > 0)
            {
                sbMsg.AppendLine("以下公司没有与供应商关联,导致订单不能显示在开票页面:");
                foreach (var m in grVendor)
                {
                    sbMsg.AppendFormat("\t供应商({0})未与公司({1})关联\n", m[0], m[1]);
                }
            }

            if (sbMsg.Length > 0)
                return new CheckResult(1, sbMsg.ToString());
            else
                return new CheckResult(0, "Success");
        }
Example #2
0
        protected CheckResult CheckHasInvoiced(GRDiagData grData)
        {
            var grInvoiced = new List<string[]>();

            if (grData.IsNewIV)
            {
                var objsNewIV = from gr in _dbContext.ABi_GR
                                join gi in _dbContext.ABi_GR_Invoice on gr.ABi_GR_ID equals gi.ABi_GR_ID
                                join iv in _dbContext.ABi_Invoice on gi.ABi_Invoice_ID equals iv.ABi_Invoice_ID
                                join pg in _dbContext.ABi_PO_GR on gr.ABi_GR_ID equals pg.ABi_GR_ID
                                join po in _dbContext.ABi_PO on pg.ABi_PO_ID equals po.ABi_PO_ID
                                where ((String.IsNullOrEmpty(grData.GRNumber) || (gr.GRNumber == grData.GRNumber && gr.GRItemNumber.Contains(grData.GRItemNumber))))
                                     && ((String.IsNullOrEmpty(grData.RefGRNumber) || (gr.RefGRNumber == grData.RefGRNumber && gr.RefGRItemNumber.Contains(grData.RefGRItemNumber))))
                                select new { gr.GRNumber, gr.GRItemNumber, po.PONumber, po.POItemNumber, iv.InvoiceNumber };

                if (objsNewIV != null && objsNewIV.Count() > 0)
                {
                    foreach (var oni in objsNewIV)
                    {
                        grInvoiced.Add(new string[] { oni.GRNumber, oni.GRItemNumber, oni.PONumber, oni.POItemNumber, oni.InvoiceNumber });
                    }
                }
            }

            var sbMsg = new System.Text.StringBuilder();

            if (grData.IsNewIV && grInvoiced.Count > 0)
            {
                sbMsg.AppendLine("以下收货已经开票,请确认:");
                foreach (var gi in grInvoiced)
                {
                    sbMsg.AppendFormat("\t收货({0}, {1}) -- 订单({2},{3})-- 发票({4})\n", gi[0], gi[1], gi[2], gi[3], gi[4]);
                }
            }

            if (sbMsg.Length > 0)
                return new CheckResult(1, sbMsg.ToString());
            else
                return new CheckResult(0, "Success");
        }
Example #3
0
        protected CheckResult CheckGRMissed(GRDiagData grData)
        {
            var grMissed = new List<String[]>();

            var objs = from o in _dbContext.yb_gr_report_swap
                       where (o.belnr == grData.GRNumber && (String.IsNullOrEmpty(grData.GRItemNumber) || o.buzei == grData.GRItemNumber)) ||
                            (o.lfbnr == grData.RefGRNumber && (String.IsNullOrEmpty(grData.RefGRItemNumber) || o.lfpos == grData.RefGRItemNumber))
                       orderby o.id descending
                       select o;

            foreach (var obj in objs)
            {
                if (obj.status == false)
                {
                    var poObjs = from po in _dbContext.ABi_PO
                                 where po.PONumber == obj.ebeln && po.POItemNumber == obj.ebelp
                                 select po;

                    if (poObjs == null || poObjs.Count() == 0)
                    {
                        grMissed.Add(new string[] { obj.belnr, obj.buzei, obj.ebeln, obj.ebelp });

                    }
                }
            }

               var sbMsg = new System.Text.StringBuilder();

               if (grMissed.Count > 0)
            {
                sbMsg.AppendLine("以下收货对应订单没有从SAP发送到VP中来,请先发送订单到VP:");
                foreach (var gm in grMissed)
                {
                    sbMsg.AppendFormat("\t收货({0}, {1}) -- 订单({2},{3})\n", gm[0], gm[1], gm[2], gm[3]);
                }
            }

            if (sbMsg.Length > 0)
                return new CheckResult(1, sbMsg.ToString());
            else
                return new CheckResult(0, "Success");
        }
Example #4
0
        protected CheckResult CheckGRReportSwap(GRDiagData grData)
        {
            var objs = from o in _dbContext.yb_gr_report_swap
                       where (o.belnr == grData.GRNumber && (String.IsNullOrEmpty(grData.GRItemNumber) || o.buzei == grData.GRItemNumber)) ||
                            (o.lfbnr == grData.RefGRNumber && (String.IsNullOrEmpty(grData.RefGRItemNumber) || o.lfpos == grData.RefGRItemNumber))
                       orderby o.id descending
                       select o;

            if (objs == null || objs.Count() == 0)
            {
                var grObjs = from o in _dbContext.ABi_GR
                             where (o.GRNumber == grData.GRNumber && (String.IsNullOrEmpty(grData.GRItemNumber) || o.GRItemNumber == grData.GRItemNumber)) ||
                                    (o.RefGRNumber == grData.RefGRNumber && (String.IsNullOrEmpty(grData.RefGRItemNumber) || o.RefGRItemNumber == grData.RefGRItemNumber))
                             select o;

                if (grObjs == null || grObjs.Count() == 0)
                {
                    if (!String.IsNullOrEmpty(grData.GRNumber))
                        return new CheckResult(-1, String.Format("收货({0},{1})没有发送到VP,请检查SAP相关数据或逻辑!", grData.GRNumber, grData.GRItemNumber));
                    else
                        return new CheckResult(-1, String.Format("收货(参考凭证:{0},{1})没有发送到VP,请检查SAP相关数据或逻辑!", grData.RefGRNumber, grData.RefGRItemNumber));
                }
            }

            return new CheckResult(0, "Success");
        }
Example #5
0
        protected CheckResult CheckGRDeleted(GRDiagData grData)
        {
            var grDel = new List<String[]>();
            var grVendorNoCompany = new List<string[]>();

            var grInVP = from gr in _dbContext.ABi_GR
                         join pg in _dbContext.ABi_PO_GR on gr.ABi_GR_ID equals pg.ABi_GR_ID
                         join po in _dbContext.ABi_PO on pg.ABi_PO_ID equals po.ABi_PO_ID
                         where ((String.IsNullOrEmpty(grData.GRNumber) || (gr.GRNumber == grData.GRNumber && gr.GRItemNumber.Contains(grData.GRItemNumber))))
                              && ((String.IsNullOrEmpty(grData.RefGRNumber) || (gr.RefGRNumber == grData.RefGRNumber && gr.RefGRItemNumber.Contains(grData.RefGRItemNumber))))
                         select new { gr.GRNumber, gr.GRItemNumber, po.PONumber, po.POItemNumber, gr.Deleted, gr.ABi_Vendor_ID, gr.ABi_Company_ID };

            foreach (var gr in grInVP)
            {
                if (gr.Deleted == true)
                {
                    grDel.Add(new String[] { gr.GRNumber, gr.GRItemNumber, gr.PONumber, gr.POItemNumber });
                }

                var vcObjs = (from o in _dbContext.ABi_Vendor_Company
                              where o.ABi_Vendor_ID == gr.ABi_Vendor_ID
                              select o.ABi_Company_ID).ToList();

                if (!vcObjs.Contains(gr.ABi_Company_ID.Value))
                {
                    var vendorCode = (from o in _dbContext.ABi_Vendor
                                      where o.ABi_Vendor_ID == gr.ABi_Vendor_ID
                                      select o.VendorCode).First();

                    var companyCode = (from o in _dbContext.ABi_Company
                                       where o.ABi_Company_ID == gr.ABi_Company_ID
                                       select o.CompanyCode).First();

                    grVendorNoCompany.Add(new String[] { gr.GRNumber, gr.GRItemNumber, gr.PONumber, gr.POItemNumber, vendorCode, companyCode });
                }
            }

            var sbMsg = new System.Text.StringBuilder();

            if (grDel.Count > 0)
            {
                sbMsg.AppendLine("以下收货已经被删除,请到\"日志管理\"查看详细信息:");

                foreach (var gi in grDel)
                {
                    sbMsg.AppendFormat("\t收货({0}, {1}) -- 订单({2},{3})\n", gi[0], gi[1], gi[2], gi[3]);
                }
            }

            if (grVendorNoCompany.Count > 0)
            {
                sbMsg.AppendLine("以下收货对应的供应商没有开通相关公司:");

                foreach (var gi in grVendorNoCompany)
                {
                    sbMsg.AppendFormat("\t收货({0}, {1}) -- 订单({2},{3})-- 供应商代码{4} -- 公司代码{5}\n", gi[0], gi[1], gi[2], gi[3], gi[4], gi[5]);
                }
            }

            if (sbMsg.Length > 0)
                return new CheckResult(1, sbMsg.ToString());
            else
                return new CheckResult(0, "Success");
        }