/// <summary> /// Заполнение списка видов заявок /// </summary> private void FillNewRequestItems() { if (NewRequestAction.Items.Count() > 0) { return; } NewRequestAction.Items.Clear(); SuperRequest paymentSuperRequestFinItem = new SuperRequest(typeof(fmCPRPaymentRequestFinOrder), -1); ChoiceActionItem paymentRequestFinItem = new ChoiceActionItem("1", "Финансовая заявка", paymentSuperRequestFinItem); //typeof(fmCPRPaymentRequestFinOrder)); NewRequestAction.Items.Add(paymentRequestFinItem); //MemberInfo[] memberInfos = typeof(FinRequestKind).GetMembers(BindingFlags.Public | BindingFlags.Static); //for (int i = 0; i < memberInfos.Length; i++) { // //ddProperty.Items.Add(new ListItem(memberInfos[i].Name, memberInfos[i].GetType().Name)); // ChoiceActionItem paymentRequestFinEnumItem = new ChoiceActionItem("1." + i.ToString(), " - " + memberInfos[i].GetType().Name, typeof(fmCPRPaymentRequestFinOrder)); // NewRequestAction.Items.Add(paymentRequestFinEnumItem); //} IModelLocalizationItemBase node = View.Model.Application.Localization["Enums"]["IntecoAG.ERM.FM.PaymentRequest.FinRequestKind"]; if (node != null) { for (int i = 0; i < node.NodeCount; i++) { string name = node.GetNode(i).GetValue <string>("Name"); string value = node.GetNode(i).GetValue <string>("Value"); FinRequestKind enumItem = (FinRequestKind)Enum.Parse(typeof(FinRequestKind), name); int index = (int)enumItem; SuperRequest paymentSuperRequestFinEnumItem = new SuperRequest(typeof(fmCPRPaymentRequestFinOrder), index); ChoiceActionItem paymentRequestFinEnumItem = new ChoiceActionItem("1." + (i + 1).ToString(), " - " + value, paymentSuperRequestFinEnumItem); //typeof(fmCPRPaymentRequestFinOrder)); NewRequestAction.Items.Add(paymentRequestFinEnumItem); } } SuperRequest objRequesContractItem = new SuperRequest(typeof(fmCPRPaymentRequestContract), -1); ChoiceActionItem paymentRequesContractItem = new ChoiceActionItem("2", "Заявка на оплату по договору", objRequesContractItem); //typeof(fmCPRPaymentRequestContract)); NewRequestAction.Items.Add(paymentRequesContractItem); SuperRequest objRequestSingleItem = new SuperRequest(typeof(fmCPRPaymentRequestSingle), -1); ChoiceActionItem akkreditivRequestSingleItem = new ChoiceActionItem("3", "Заявка на оплату по разовому счету", objRequestSingleItem); //typeof(fmCPRPaymentRequestSingle)); NewRequestAction.Items.Add(akkreditivRequestSingleItem); SuperRequest objRequestMemorandumItem = new SuperRequest(typeof(fmPaymentRequestMemorandum), -1); ChoiceActionItem budgetRequestItem = new ChoiceActionItem("4", "Служебная записка на оплату", objRequestMemorandumItem); //typeof(fmPaymentRequestMemorandum)); NewRequestAction.Items.Add(budgetRequestItem); }
public static fmCPRPaymentRequest CreateRequest(IObjectSpace workOS, fmCPRRepaymentTask repaymentTask, Type objType, FinRequestKind requestKind) { if (repaymentTask == null) { return(null); } fmCPRPaymentRequest req = workOS.CreateObject(objType) as fmCPRPaymentRequest; if (req != null) { req.State = PaymentRequestStates.OPEN; //req.ExtDocDate = DateTime.Now; req.Date = DateTime.Now; if (repaymentTask.PaymentDocument != null) { fmCDocRCB doc = repaymentTask.PaymentDocument; fmCDocRCB nDoc = workOS.GetObject <fmCDocRCB>(doc); if (nDoc.PaymentPayerRequisites != null) { req.PartyPaySender = nDoc.PaymentPayerRequisites.Party; } if (nDoc.PaymentReceiverRequisites != null) { req.PartyPayReceiver = nDoc.PaymentReceiverRequisites.Party; } // req.Number = nDoc.DocNumber; req.ExtDocNumber = nDoc.DocNumber; req.ExtDocDate = nDoc.DocDate; // req.Date = DateTime.Now; req.Summ = nDoc.PaymentCost; // По умолчанию указывваем полную сумму платёжного документа req.PayDate = nDoc.GetAccountDateChange(); req.PaymentValuta = nDoc.GetAccountValuta(); //req.Valuta = nDoc.GetAccountValuta(); // По умолчания указываем валюту платежа в качестве валюты обязательств req.Comment = nDoc.PaymentFunction; // Случай финансовой заявки fmCPRPaymentRequestFinOrder reqFin = req as fmCPRPaymentRequestFinOrder; if (reqFin != null) { reqFin.FinanceRequestKind = requestKind; if (requestKind == FinRequestKind.BANK_COMISSION || requestKind == FinRequestKind.PAYMENT_PERCENTS) { if (nDoc.PaymentReceiverRequisites.Party == null && nDoc.PaymentReceiverRequisites.BankAccount != null && nDoc.PaymentReceiverRequisites.BankAccount != null && nDoc.PaymentReceiverRequisites.BankAccount.Bank != null) { nDoc.PaymentReceiverRequisites.Party = nDoc.PaymentReceiverRequisites.BankAccount.Bank.Party; } } if (requestKind == FinRequestKind.RECEIVING_PERCENTS) { if (nDoc.PaymentPayerRequisites.Party == null && nDoc.PaymentPayerRequisites.BankAccount != null && nDoc.PaymentPayerRequisites.BankAccount != null && nDoc.PaymentPayerRequisites.BankAccount.Bank != null) { nDoc.PaymentPayerRequisites.Party = nDoc.PaymentPayerRequisites.BankAccount.Bank.Party; } } if (requestKind == FinRequestKind.PURSHASE_CURRENCY || requestKind == FinRequestKind.SALE_CURRENCY) { if (repaymentTask.BankAccount == nDoc.PaymentPayerRequisites.BankAccount) { if (nDoc.PaymentReceiverRequisites.Party == null && nDoc.PaymentReceiverRequisites.BankAccount != null && nDoc.PaymentReceiverRequisites.BankAccount != null && nDoc.PaymentReceiverRequisites.BankAccount.Bank != null) { nDoc.PaymentReceiverRequisites.Party = nDoc.PaymentReceiverRequisites.BankAccount.Bank.Party; } } else if (repaymentTask.BankAccount == nDoc.PaymentReceiverRequisites.BankAccount) { if (nDoc.PaymentPayerRequisites.Party == null && nDoc.PaymentPayerRequisites.BankAccount != null && nDoc.PaymentPayerRequisites.BankAccount != null && nDoc.PaymentPayerRequisites.BankAccount.Bank != null) { nDoc.PaymentPayerRequisites.Party = nDoc.PaymentPayerRequisites.BankAccount.Bank.Party; } } } reqFin.SetSum(nDoc.PaymentCost); reqFin.State = PaymentRequestStates.FINANCE_PAYMENT; // ПОзволено редактирование Заказа, статьи, суммы //nDoc.State = PaymentDocProcessingStates.PROCESSED; } } } return(req); }