Ejemplo n.º 1
0
        private DataTable GetPOCanbePayList(CanBePayOrderQueryFilter filter, out int totalCount)
        {
            DataTable         result      = null;
            CustomDataCommand dataCommand = DataCommandManager.CreateCustomDataCommandFromConfig("GetPOCanBePayList");
            PagingInfoEntity  pagingInfo  = CreatePagingInfo(filter);

            using (DynamicQuerySqlBuilder sqlBuilder = new DynamicQuerySqlBuilder(
                       dataCommand.CommandText, dataCommand, pagingInfo, "po.SysNo desc"))
            {
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "po.IsConsign",
                                                             DbType.Int32, "@IsConsign", QueryConditionOperatorType.NotEqual, 1);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "po.POID",
                                                             DbType.String, "@POID", QueryConditionOperatorType.Like, filter.OrderID);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "po.ETP",
                                                             DbType.DateTime, "@ETPFrom", QueryConditionOperatorType.MoreThanOrEqual, filter.POETPFrom);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "po.ETP",
                                                             DbType.DateTime, "@ETPTo", QueryConditionOperatorType.LessThan, filter.POETPTo);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "po.Status",
                                                             DbType.Int32, "@Status", QueryConditionOperatorType.Equal, filter.POStatus);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "po.CompanyCode",
                                                             DbType.AnsiStringFixedLength, "@CompanyCode", QueryConditionOperatorType.Equal, filter.CompanyCode);

                dataCommand.CommandText = sqlBuilder.BuildQuerySql();

                result = ExecuteDataTable(dataCommand, out totalCount);
            }
            return(result);
        }
Ejemplo n.º 2
0
        private DataTable GetAllCanbePayList(CanBePayOrderQueryFilter filter, out int totalCount)
        {
            DataTable         result      = null;
            CustomDataCommand dataCommand = DataCommandManager.CreateCustomDataCommandFromConfig("GetAllCanBePayList");
            PagingInfoEntity  pagingInfo  = CreatePagingInfo(filter);

            using (DynamicQuerySqlBuilder sqlBuilder = new DynamicQuerySqlBuilder(
                       dataCommand.CommandText, dataCommand, pagingInfo, "OrderSysNo desc"))
            {
                dataCommand.CommandText = sqlBuilder.BuildQuerySql();
                StringBuilder sb1 = new StringBuilder();
                sb1.Append(" WHERE 1=1");
                sb1.Append(" AND po.IsConsign <> 1");
                StringBuilder sb2 = new StringBuilder();
                sb2.Append(" WHERE 1=1");

                sb1.Append(" AND po.CompanyCode = @CompanyCode");
                sb2.Append(" AND vendorsettle.CompanyCode = @CompanyCode");
                dataCommand.AddInputParameter("@CompanyCode", DbType.AnsiStringFixedLength, filter.CompanyCode);

                if (!string.IsNullOrEmpty(filter.OrderID))
                {
                    sb1.Append(" AND po.SysNo LIKE @OrderID");
                    sb2.Append(" AND vendorsettle.SettleID LIKE @OrderID");
                    dataCommand.AddInputParameter("@OrderID", DbType.String, filter.OrderID.Trim() + "%");
                }
                dataCommand.CommandText = dataCommand.CommandText
                                          .Replace("#StrWhere1#", sb1.ToString())
                                          .Replace("#StrWhere2#", sb2.ToString());

                result = ExecuteDataTable(dataCommand, out totalCount);
            }
            return(result);
        }
Ejemplo n.º 3
0
        public virtual QueryResult QueryCanBePayOrderList(CanBePayOrderQueryFilter filter)
        {
            int totalCount;
            var dataSet = ObjectFactory <ICanBePayOrderQueryDA> .Instance.Query(filter, out totalCount);

            return(new QueryResult()
            {
                Data = dataSet,
                TotalCount = totalCount
            });
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 构造PagingInfo对象
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        private PagingInfoEntity CreatePagingInfo(CanBePayOrderQueryFilter query)
        {
            PagingInfoEntity pagingInfo = new PagingInfoEntity();

            if (query.PagingInfo != null)
            {
                pagingInfo.MaximumRows   = query.PagingInfo.PageSize;
                pagingInfo.StartRowIndex = query.PagingInfo.PageIndex * query.PagingInfo.PageSize;
                pagingInfo.SortField     = query.PagingInfo.SortBy;
            }
            return(pagingInfo);
        }
Ejemplo n.º 5
0
        public DataTable Query(CanBePayOrderQueryFilter filter, out int totalCount)
        {
            if (!filter.OrderType.HasValue)
            {
                return(GetAllCanbePayList(filter, out totalCount));
            }

            switch (filter.OrderType)
            {
            case PayableOrderType.PO:
                return(GetPOCanbePayList(filter, out totalCount));

            case PayableOrderType.VendorSettleOrder:
                return(GetVendorSettleCanbePayList(filter, out totalCount));

            default:
                throw new ArgumentOutOfRangeException("Invalid OrderType");
            }
        }
Ejemplo n.º 6
0
        private DataTable GetVendorSettleCanbePayList(CanBePayOrderQueryFilter filter, out int totalCount)
        {
            DataTable         result      = null;
            CustomDataCommand dataCommand = DataCommandManager.CreateCustomDataCommandFromConfig("GetVendorSettleCanBePayList");
            PagingInfoEntity  pagingInfo  = CreatePagingInfo(filter);

            using (DynamicQuerySqlBuilder sqlBuilder = new DynamicQuerySqlBuilder(
                       dataCommand.CommandText, dataCommand, pagingInfo, "vendorSettle.SysNo desc"))
            {
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "vendorsettle.SettleID",
                                                             DbType.String, "@SettleID", QueryConditionOperatorType.Like, filter.OrderID);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "vendorsettle.Status",
                                                             DbType.Int32, "@Status", QueryConditionOperatorType.Equal, filter.VendorSettleStatus);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "vendorsettle.CompanyCode",
                                                             DbType.AnsiStringFixedLength, "@CompanyCode", QueryConditionOperatorType.Equal, filter.CompanyCode);

                dataCommand.CommandText = sqlBuilder.BuildQuerySql();

                result = ExecuteDataTable(dataCommand, out totalCount);
            }
            return(result);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 添加付款单时单据查询
        /// </summary>
        public void QueryCanBePayOrder(PayItemListOrderQueryVM query, int pageSize, int pageIndex, string sortField, Action <dynamic> callback)
        {
            CanBePayOrderQueryFilter filter = query.ConvertVM <PayItemListOrderQueryVM, CanBePayOrderQueryFilter>();

            filter.PagingInfo = new PagingInfo()
            {
                PageIndex = pageIndex,
                PageSize  = pageSize,
                SortBy    = sortField
            };

            string relativeUrl = "/InvoiceService/PayItem/OrderQuery";

            restClient.QueryDynamicData(relativeUrl, filter, (obj, args) =>
            {
                if (args.FaultsHandle())
                {
                    return;
                }
                callback(args.Result);
            });
        }
Ejemplo n.º 8
0
        /// <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);
        }