public PayableInfo GetFirstPay(PayableOrderType orderType, int orderSysNo) { DataCommand command = DataCommandManager.GetDataCommand("GetFirstPay"); command.SetParameterValue("@OrderType", orderType); command.SetParameterValue("@OrderSysNo", orderSysNo); return(command.ExecuteEntity <PayableInfo>()); }
public void UpdateAvailableAmt(PayableOrderType orderType, int orderSysNo, decimal availableAmt) { DataCommand command = DataCommandManager.GetDataCommand("UpdatePayItemAvailableAmt"); command.SetParameterValue("@OrderType", orderType); command.SetParameterValue("@OrderSysNo", orderSysNo); command.SetParameterValue("@AvailableAmt", availableAmt); command.ExecuteNonQuery(); }
public void CreatePayByVendor(int poSysNo, int batchNo, int orderStatus, PayableOrderType orderType, decimal?inStockAmt, string companyCode) { PayableInfo entity = new PayableInfo(); entity.OrderSysNo = poSysNo; entity.BatchNumber = batchNo; entity.OrderStatus = orderStatus; entity.OrderType = orderType; entity.InStockAmt = inStockAmt; entity.CompanyCode = companyCode; ObjectFactory <PayableProcessor> .Instance.CreateByVendor(entity); }
public bool IsAdvanced(PayableOrderType orderType, int orderSysNo) { DataCommand command = DataCommandManager.GetDataCommand("PayItemIsAdvanced"); command.SetParameterValue("@OrderType", orderType); command.SetParameterValue("@OrderSysNo", orderSysNo); object obj = command.ExecuteScalar(); if (obj == null || obj == DBNull.Value) { return(false); } return(Convert.ToInt32(obj) > 0); }
public static IProcess Get(PayableOrderType orderType) { switch (orderType) { case PayableOrderType.PO: case PayableOrderType.POAdjust: return(ObjectFactory <IProcess> .NewInstance(new string[] { "POProcess" })); case PayableOrderType.VendorSettleOrder: case PayableOrderType.LeaseSettle: return(ObjectFactory <IProcess> .NewInstance(new string[] { "VendorSettleOrderProcess" })); //case PayableOrderType.ReturnPointCashAdjust: //case PayableOrderType.SubAccount: //case PayableOrderType.SubInvoice: // return ObjectFactory<IProcess>.NewInstance(new string[] { "EIMSReturnPointCashProcess" }); case PayableOrderType.RMAPOR: return(ObjectFactory <IProcess> .NewInstance(new string[] { "RMAVendorRefundProcess" })); case PayableOrderType.CollectionSettlement: return(ObjectFactory <IProcess> .NewInstance(new string[] { "CollectionSettlementProcess" })); case PayableOrderType.Commission: return(ObjectFactory <IProcess> .NewInstance(new string[] { "CommissionProcess" })); case PayableOrderType.CollectionPayment: return(ObjectFactory <IProcess> .NewInstance(new string[] { "CollectionPaymentProcess" })); case PayableOrderType.GroupSettle: return(ObjectFactory <IProcess> .NewInstance(new string[] { "GroupSettleProcess" })); //下面为不需要复杂校验的应付类型处理 case PayableOrderType.CostChange: case PayableOrderType.ConsignAdjust: return(ObjectFactory <IProcess> .NewInstance(new string[] { "OtherOrderTypeProcess" })); default: throw new ECCentral.BizEntity.BizException(ResouceManager.GetMessageString(InvoiceConst.ResourceTitle.PayItem, "PayItem_InvalidOrderType")); } }
/// <summary> /// 获取FinancePaySysNo /// </summary> /// <param name="poNo"></param> /// <param name="orderType"></param> /// <param name="batchNumber"></param> /// <returns></returns> public virtual int GetFinancePaySysNo(int poNo, PayableOrderType orderType, int?batchNumber) { CustomDataCommand command = DataCommandManager.CreateCustomDataCommandFromConfig("GetFinancePaySysNo"); using (DynamicQuerySqlBuilder sqlBuilder = new DynamicQuerySqlBuilder( command.CommandText, command, null, "Sysno" )) { sqlBuilder.ConditionConstructor.AddCondition( QueryConditionRelationType.AND, "OrderSysNo", DbType.Int32, "@PoNo", QueryConditionOperatorType.Equal, poNo); sqlBuilder.ConditionConstructor.AddCondition( QueryConditionRelationType.AND, "OrderType", DbType.Int32, "@OrderType", QueryConditionOperatorType.Equal, orderType); sqlBuilder.ConditionConstructor.AddCondition( QueryConditionRelationType.AND, "BatchNumber", DbType.Int32, "@BatchNumber", QueryConditionOperatorType.Equal, batchNumber); command.CommandText = sqlBuilder.BuildQuerySql(); } return(Convert.ToInt32(command.ExecuteScalar())); }
/// <summary> /// 付款单是否是预付款 /// </summary> /// <param name="orderType">单据类型</param> /// <param name="orderSysNo">单据编号</param> /// <returns></returns> public virtual bool IsAdvanced(PayableOrderType orderType, int orderSysNo) { return(m_PayItemDA.IsAdvanced(orderType, orderSysNo)); }
/// <summary> /// 更新付款单可用金额 /// </summary> /// <param name="orderType">单据类型</param> /// <param name="orderSysNo">单据编号</param> /// <param name="availableAmt">可用金额</param> public virtual void UpdateAvailableAmt(PayableOrderType orderType, int orderSysNo, decimal availableAmt) { m_PayItemDA.UpdateAvailableAmt(orderType, orderSysNo, availableAmt); }
/// <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> /// 根据输入的PONO获取对应的POItems信息 /// </summary> /// <param name="condition"></param> /// <param name="payableOrderType"></param> /// <returns></returns> public virtual List <APInvoicePOItemInfo> GetPOInputItemsHand(List <int> condition, PayableOrderType payableOrderType) { List <int> orderStatus = new List <int>(); List <int> orderType = new List <int>(); string customCondition = string.Empty; if (payableOrderType == PayableOrderType.PO) { orderStatus.Add(4); orderStatus.Add(6); orderStatus.Add(7); orderStatus.Add(8); orderStatus.Add(9); orderType.Add(0); orderType.Add(5); customCondition = @" NOT Exists ( SELECT PoNo FROM OverseaInvoiceReceiptManagement.dbo.APInvoice_PO_Item ai WITH(NOLOCK) WHERE Status = 'A' and pay.BatchNumber=ai.BatchNumber AND pay.OrderSysNo=ai.PoNo AND pay.OrderType=ai.OrderType UNION ALL SELECT ai.PoNo FROM OverseaInvoiceReceiptManagement.dbo.APInvoice_PO_Item ai WITH(NOLOCK) INNER JOIN OverseaInvoiceReceiptManagement.dbo.APInvoice_Master am WITH(NOLOCK) ON am.DocNo = ai.DocNo and pay.BatchNumber=ai.BatchNumber AND pay.OrderSysNo=ai.PoNo AND pay.OrderType=ai.OrderType WHERE am.Status >= 0 ) "; } else if (payableOrderType == PayableOrderType.RMAPOR) { orderStatus.Add(3); orderStatus.Add(5); orderType.Add(9); customCondition = string.Empty; } //else if (payableOrderType == PayableOrderType.SubInvoice) //{ // orderStatus.Add(3); // orderStatus.Add(2); // orderStatus.Add(1); // orderType.Add(7); // customCondition = string.Empty; //} //else { orderStatus.Add(3); orderType.Add(1); customCondition = string.Empty; } CustomDataCommand dataCommand = DataCommandManager.CreateCustomDataCommandFromConfig("GetPOInputItemsHand"); List <APInvoicePOItemInfo> result = new List <APInvoicePOItemInfo>(); using (DynamicQuerySqlBuilder sqlBuilder = new DynamicQuerySqlBuilder( dataCommand.CommandText, dataCommand, null, "POM.VendorSysNo")) { sqlBuilder.ConditionConstructor.AddInCondition( QueryConditionRelationType.AND, "pay.OrderStatus", DbType.Int32, orderStatus); sqlBuilder.ConditionConstructor.AddCondition( QueryConditionRelationType.AND, "pay.InvoiceStatus", DbType.Int32, "@InvoiceStatus", QueryConditionOperatorType.Equal, 0); sqlBuilder.ConditionConstructor.AddInCondition( QueryConditionRelationType.AND, "pay.ordertype", DbType.Int32, orderType); sqlBuilder.ConditionConstructor.AddInCondition( QueryConditionRelationType.AND, "pay.OrderSysNo", DbType.Int32, condition); //sqlBuilder.ConditionConstructor.AddCondition( // QueryConditionRelationType.AND, // "pay.CompanyCode", // DbType.AnsiStringFixedLength, // "@CompanyCode", // QueryConditionOperatorType.Equal, // CPContext.Current.CompanyCode); sqlBuilder.ConditionConstructor.AddCondition( QueryConditionRelationType.AND, "pay.PayStatus", DbType.Int32, "@PayStatus", QueryConditionOperatorType.NotEqual, -1); if (customCondition != string.Empty) { sqlBuilder.ConditionConstructor.AddCustomCondition(QueryConditionRelationType.AND, customCondition); } dataCommand.CommandText = sqlBuilder.BuildQuerySql(); result = dataCommand.ExecuteEntityList <APInvoicePOItemInfo>(); } return(result); }
/// <summary> /// PO单终止入库时,创建NewPay /// </summary> /// <param name="poSysNo"></param> /// <param name="batchNo"></param> /// <param name="orderStatus"></param> /// <param name="orderType"></param> /// <param name="inStockAmt"></param> /// <param name="companyCode"></param> public static void CreatePayByVendor(int poSysNo, int batchNo, int orderStatus, PayableOrderType orderType, decimal?inStockAmt, string companyCode) { ObjectFactory <IInvoiceBizInteract> .Instance.CreatePayByVendor(poSysNo, batchNo, orderStatus, orderType, inStockAmt, companyCode); }