/// <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); }