コード例 #1
0
        /// <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);
        }
コード例 #2
0
        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);
        }