Exemple #1
0
        public void ExportExcelFile(PayableQueryVM queryVM, ColumnSet[] columnSet)
        {
            PayableQueryFilter queryFilter = queryVM.ConvertVM <PayableQueryVM, PayableQueryFilter>();

            queryFilter.PagingInfo = new PagingInfo
            {
                PageSize  = ECCentral.Portal.Basic.ConstValue.MaxRowCountLimit,
                PageIndex = 0,
                SortBy    = null
            };
            queryFilter.CompanyCode = CPApplication.Current.CompanyCode;
            string relativeUrl = "/InvoiceService/Payable/Export";

            restClient.ExportFile(relativeUrl, queryFilter, columnSet);
        }
        public QueryResult ExportPayable(PayableQueryFilter request)
        {
            QueryResultList resultList = new QueryResultList();
            int             totalCount;
            DataTable       dtStatistical;
            var             dataTable = ObjectFactory <IPayableQueryDA> .Instance.QueryPayable(request, out totalCount, out dtStatistical);

            dataTable.Columns.Add("OrderIDDesc");
            dataTable.Columns.Add("Remainder");
            foreach (DataRow row in dataTable.Rows.AsParallel())
            {
                string batchnum = "";
                if (!row.IsNull("BatchNumber") && !string.IsNullOrWhiteSpace(row["BatchNumber"].ToString()))
                {
                    batchnum = "-" + row["BatchNumber"].ToString().PadLeft(2, '0');
                }

                if (row["OrderType"].ToString() == "0")
                {
                    row["OrderIDDesc"] = row["OrderID"] + batchnum;
                }
                else if (row["OrderType"].ToString() == "7")
                {
                    row["OrderIDDesc"] = row["OrderSysNo"] + batchnum;
                }
                else if (row["OrderType"].ToString() == "5")
                {
                    row["OrderIDDesc"] = row["OrderID"] + "A";
                }
                else
                {
                    row["OrderIDDesc"] = row["OrderID"];
                }

                if (!row.IsNull("PayableAmt") && !row.IsNull("AlreadyPayAmt"))
                {
                    row["PayableAmt"]    = ((decimal)row["PayableAmt"]).ToString(InvoiceConst.StringFormat.DecimalFormat);
                    row["AlreadyPayAmt"] = ((decimal)row["AlreadyPayAmt"]).ToString(InvoiceConst.StringFormat.DecimalFormat);

                    row["Remainder"] = (((decimal)row["PayableAmt"]) - ((decimal)row["AlreadyPayAmt"])).ToString(InvoiceConst.StringFormat.DecimalFormat);
                }
            }
            return(new QueryResult()
            {
                Data = dataTable,
                TotalCount = totalCount
            });
        }
        public QueryResultList QueryPayable(PayableQueryFilter request)
        {
            QueryResultList resultList = new QueryResultList();
            int             totalCount;
            DataTable       dtStatistical;
            var             dataTable = ObjectFactory <IPayableQueryDA> .Instance.QueryPayable(request, out totalCount, out dtStatistical);

            dataTable.Columns.Add("SapInFailedDetailReason", typeof(string));

            QueryResult resultTable = new QueryResult()
            {
                Data       = dataTable,
                TotalCount = totalCount
            };
            QueryResult statisticalTable = new QueryResult()
            {
                Data = dtStatistical
            };

            resultList.Add(resultTable);
            resultList.Add(statisticalTable);
            return(resultList);
        }
Exemple #4
0
        public void Query(PayableQueryVM queryVM, int PageSize, int PageIndex, string SortField, EventHandler <RestClientEventArgs <dynamic> > callback)
        {
            PayableQueryFilter queryFilter = new PayableQueryFilter();

            queryFilter            = queryVM.ConvertVM <PayableQueryVM, PayableQueryFilter>();
            queryFilter.PagingInfo = new PagingInfo
            {
                PageSize  = PageSize,
                PageIndex = PageIndex,
                SortBy    = SortField
            };
            queryFilter.CompanyCode = CPApplication.Current.CompanyCode;

            string relativeUrl = "/InvoiceService/Payable/Query";

            restClient.QueryDynamicData(relativeUrl, queryFilter, (obj, args) =>
            {
                if (args.FaultsHandle())
                {
                    return;
                }
                callback(obj, args);
            });
        }
        /// <summary>
        /// [Private]根据应付款单据类型和应付款单据编号加载应付款和付款单数据
        /// </summary>
        /// <param name="orderSysNo">应付款单据编号</param>
        /// <param name="orderType">应付款单据类型</param>
        /// <param name="companyCode">CompanyCode</param>
        /// <returns></returns>
        private PayDetailInfoResp LoadForEditByOrderSysNoAndOrderType(int orderSysNo, PayableOrderType orderType, string companyCode)
        {
            PayDetailInfoResp resp = new PayDetailInfoResp();

            int                totalCount;
            DataTable          st;
            PayableQueryFilter filter = new PayableQueryFilter();

            filter.OrderID     = orderSysNo.ToString();
            filter.OrderType   = orderType;
            filter.CompanyCode = companyCode;

            DataTable payDT = ObjectFactory <IPayableQueryDA> .Instance.QueryPayable(filter, out totalCount, out st);

            bool    isVendorHoldedControl = false;
            DataRow pay = null;

            if (payDT != null && payDT.Rows.Count > 0)
            {
                pay = payDT.Rows[0];
                if ((int)pay["OrderType"] == (int)PayableOrderType.PO || (int)pay["OrderType"] == (int)PayableOrderType.VendorSettleOrder ||
                    (int)pay["OrderType"] == (int)PayableOrderType.CollectionSettlement)
                {
                    isVendorHoldedControl = ObjectFactory <PayableAppService> .Instance.IsHolderVendorByVendorSysNo((int)pay["VendorSysNo"]);
                }

                int       paySysNo  = Convert.ToInt32(pay["PaySysNo"]);
                DataTable payItemDT = ObjectFactory <IPayItemQueryDA> .Instance.SimpleQuery(paySysNo);

                resp.PayItemList = DataMapper.GetEntityList <PayItemInfo, List <PayItemInfo> >(payItemDT.Rows);
            }

            CanBePayOrderQueryFilter queryFilter = new CanBePayOrderQueryFilter();

            queryFilter.OrderID     = orderSysNo.ToString();
            queryFilter.OrderType   = orderType;
            queryFilter.CompanyCode = companyCode;

            DataTable orderDT = ObjectFactory <ICanBePayOrderQueryDA> .Instance.Query(queryFilter, out totalCount);

            if (orderDT == null || orderDT.Rows.Count <= 0)
            {
                throw new ECCentral.BizEntity.BizException(string.Format(
                                                               ResouceManager.GetMessageString(InvoiceConst.ResourceTitle.Payable, "Payable_LoadForEditBySysNo_OrderNotExist"), orderSysNo));
            }

            var order    = orderDT.Rows[0];
            var payStyle = PayItemStyle.Normal;

            if (orderType == PayableOrderType.PO)
            {
                if ((int)order["OrderStatus"] == (int)PurchaseOrderStatus.WaitingInStock)
                {
                    payStyle = PayItemStyle.Advanced;
                }
            }

            resp.OrderInfo = new OrderInfo()
            {
                PayStyle              = payStyle,
                OrderAmt              = (decimal)order["OrderAmt"],
                OrderSysNo            = orderSysNo,
                OrderID               = (string)order["OrderID"],
                OrderType             = orderType,
                PaySysNo              = pay != null ? (int)pay["PaySysNo"] : 0,
                OrderStatus           = (int)order["OrderStatus"],
                BatchNumber           = (int)order["BatchNumber"],
                IsVendorHoldedControl = isVendorHoldedControl
            };

            var totalAmt = 0.00M;
            var paidAmt  = 0.00M;

            if (resp.PayItemList != null && resp.PayItemList.Count > 0)
            {
                resp.PayItemList.ForEach(p =>
                {
                    totalAmt += p.PayAmt.Value;
                    paidAmt  += p.Status == PayItemStatus.Paid ? p.PayAmt.Value : 0;
                });
            }
            resp.TotalInfo = new TotalInfo()
            {
                TotalAmt   = totalAmt,
                PaidAmt    = paidAmt,
                OrderAmt   = (decimal)order["OrderAmt"],
                OrderSysNo = (int)order["OrderSysNo"]
            };

            return(resp);
        }
        /// <summary>
        /// [Private]根据应付款系统编号加载应付款和付款单数据
        /// </summary>
        /// <param name="paySysNo">应付款系统编号</param>
        /// <param name="companyCode">CompanyCode</param>
        /// <returns></returns>
        private PayDetailInfoResp LoadForEditBySysNo(int paySysNo, string companyCode)
        {
            PayDetailInfoResp resp = new PayDetailInfoResp();

            DataTable payItemDT = ObjectFactory <IPayItemQueryDA> .Instance.SimpleQuery(paySysNo);

            if (payItemDT != null && payItemDT.Rows.Count > 0)
            {
                resp.PayItemList = DataMapper.GetEntityList <PayItemInfo, List <PayItemInfo> >(payItemDT.Rows);
            }
            if (payItemDT == null || payItemDT.Rows.Count <= 0)
            {
                throw new ECCentral.BizEntity.BizException(ResouceManager.GetMessageString(InvoiceConst.ResourceTitle.Payable, "Payable_LoadForEditBySysNo_DataError"));
            }
            int                totalCount;
            DataTable          st;
            PayableQueryFilter filter = new PayableQueryFilter();

            filter.SysNo       = paySysNo;
            filter.CompanyCode = companyCode;
            filter.OrderType   = resp.PayItemList[0].OrderType;
            DataTable payDT = ObjectFactory <IPayableQueryDA> .Instance.QueryPayable(filter, out totalCount, out st);

            if (payDT == null || payDT.Rows.Count <= 0)
            {
                throw new ECCentral.BizEntity.BizException(ResouceManager.GetMessageString(InvoiceConst.ResourceTitle.Payable, "Payable_LoadForEditBySysNo_DataError"));
            }

            var pay      = payDT.Rows[0];
            var payStyle = PayItemStyle.Normal;

            if ((int)pay["OrderType"] == (int)PayableOrderType.PO)
            {
                if ((int)pay["OrderStatus"] == (int)PurchaseOrderStatus.WaitingInStock)
                {
                    payStyle = PayItemStyle.Advanced;
                }
            }

            bool isVendorHoldedControl = false;

            if ((int)pay["OrderType"] == (int)PayableOrderType.PO || (int)pay["OrderType"] == (int)PayableOrderType.VendorSettleOrder ||
                (int)pay["OrderType"] == (int)PayableOrderType.CollectionSettlement)
            {
                isVendorHoldedControl = ObjectFactory <PayableAppService> .Instance.IsHolderVendorByVendorSysNo((int)pay["VendorSysNo"]);
            }

            var entity = new OrderInfo();

            entity.PayStyle              = payStyle;
            entity.OrderAmt              = (decimal)pay["PayableAmt"];
            entity.OrderSysNo            = (int)pay["OrderSysNo"];
            entity.OrderID               = pay["OrderID"].ToString();
            entity.OrderType             = (PayableOrderType)pay["OrderType"];
            entity.PaySysNo              = paySysNo;
            entity.OrderStatus           = (int)pay["OrderStatus"];
            entity.BatchNumber           = pay.IsNull("BatchNumber") ? 1 : (int)pay["BatchNumber"];
            entity.IsVendorHoldedControl = isVendorHoldedControl;
            resp.OrderInfo               = entity;
            var totalAmt = 0.00M;
            var paidAmt  = 0.00M;

            if (resp.PayItemList != null && resp.PayItemList.Count > 0)
            {
                resp.PayItemList.ForEach(p =>
                {
                    totalAmt += p.PayAmt.Value;
                    paidAmt  += p.Status == PayItemStatus.Paid ? p.PayAmt.Value : 0;
                });
            }

            resp.TotalInfo = new TotalInfo()
            {
                TotalAmt   = totalAmt,
                PaidAmt    = paidAmt,
                OrderAmt   = (decimal)pay["PayableAmt"],
                OrderSysNo = (int)pay["OrderSysNo"]
            };

            return(resp);
        }