public IActionResult GetBudgetPaymentOrder(IdRequest request)
 {
     if (ModelState.IsValid)
     {
         var  authorizedCustomer = _cacheHelper.GetAuthorizedCustomer();
         bool hasPermission      = true;
         var  order = _xBService.GetBudgetPaymentOrder(request.Id);
         order.ReceiverAccount.AccountNumber = order.ReceiverBankCode + order.ReceiverAccount.AccountNumber;
         SingleResponse <BudgetPaymentOrder> response = new SingleResponse <BudgetPaymentOrder>();
         response.ResultCode = ResultCodes.normal;
         if (authorizedCustomer.LimitedAccess != 0)
         {
             if (!_xBService.HasProductPermission(order.DebitAccount.AccountNumber) || (order.FeeAccount != null && order.FeeAccount.AccountNumber != "0" && !_xBService.HasProductPermission(order.FeeAccount.AccountNumber)))
             {
                 hasPermission               = false;
                 response.ResultCode         = ResultCodes.failed;
                 response.Result.Description = "Տվյալները հասանելի չեն։";
             }
         }
         if (hasPermission)
         {
             response.ResultCode = ResultCodes.normal;
             response.Result     = order;
         }
         return(ResponseExtensions.ToHttpResponse(response));
     }
     else
     {
         return(ValidationError.GetValidationErrorResponse(ModelState));
     }
 }
        public async Task <SingleResponse <byte[]> > PrintTransfersAcbaStatement(long id, int lang, string exportFormat = "pdf")
        {
            SingleResponse <byte[]> response = new SingleResponse <byte[]>();

            PaymentOrder paymentOrder = _xBService.GetPaymentOrder(id);

            switch (paymentOrder.Type)
            {
            case XBS.OrderType.Convertation:
                return(PrintExchangeOrderStatement(id, lang, paymentOrder, exportFormat).Result);
            }
            if (paymentOrder.Quality == OrderQuality.Completed)
            {
                string policeCode              = "";
                string description             = paymentOrder.Description;
                long   policeResponseDetailsId = 0;
                int    regCode = 0;

                if (!String.IsNullOrEmpty(paymentOrder.CreditCode))
                {
                    description += ", " + paymentOrder.CreditCode + ", " + paymentOrder.Borrower + ", " + paymentOrder.MatureTypeDescription;
                }


                if (paymentOrder.Type == OrderType.RATransfer)
                {
                    BudgetPaymentOrder budgetPaymentOrder = new BudgetPaymentOrder();
                    if (paymentOrder.SubType != 5 && paymentOrder.SubType != 6)  //ՀՀ տարածքում / Հաշիվների միջև
                    {
                        paymentOrder = _xBService.GetPaymentOrder(id);
                    }
                    else  //Բյուջե / Ճանապարհային Ոստիկանություն փոխանցում
                    {
                        budgetPaymentOrder = _xBService.GetBudgetPaymentOrder(id);
                        paymentOrder       = budgetPaymentOrder;

                        policeCode = budgetPaymentOrder.PoliceCode == 0 ? "" : budgetPaymentOrder.PoliceCode.ToString();
                        policeResponseDetailsId = budgetPaymentOrder.PoliceResponseDetailsId;
                        regCode = budgetPaymentOrder.LTACode;
                    }
                }

                AuthorizedCustomer          authorizedCustomer = _cacheHelper.GetAuthorizedCustomer();
                CustomerMainData            customerData       = _xBService.GetCustomerMainData(authorizedCustomer.CustomerNumber);
                Dictionary <string, string> parameters         = new Dictionary <string, string>();

                string sentTime = _xBService.GetInternationalTransferSentTime((int)id);

                parameters.Add(key: "cred_acc", value: paymentOrder.ReceiverAccount.AccountNumber + policeCode);
                parameters.Add(key: "deb_acc", value: paymentOrder.DebitAccount.AccountNumber.ToString());
                parameters.Add(key: "deb_bank", value: paymentOrder.DebitAccount.AccountNumber.Substring(0, 5).ToString());
                parameters.Add(key: "reg_date", value: paymentOrder.OperationDate.Value.ToString("dd/MMM/yyyy"));
                parameters.Add(key: "lang_id", value: lang.ToString());
                parameters.Add(key: "credit_bank", value: paymentOrder.ReceiverAccount.AccountNumber.Substring(0, 5));
                parameters.Add(key: "amount", value: paymentOrder.Amount.ToString());
                parameters.Add(key: "currency", value: paymentOrder.Currency.ToString());
                parameters.Add(key: "descr", value: description);
                parameters.Add(key: "confirm_date", value: paymentOrder.ConfirmationDate.Value.ToString("dd/MMM/yyyy"));
                parameters.Add(key: "for_HB", value: "1");
                parameters.Add(key: "doc_id", value: id.ToString());
                parameters.Add(key: "document_number", value: paymentOrder.OrderNumber.ToString());
                parameters.Add(key: "reciever", value: paymentOrder.Receiver != null ? paymentOrder.Receiver : "");

                if (paymentOrder.CreditorDescription != null)
                {
                    description += ", " + paymentOrder.CreditorDescription;
                    parameters.Add(key: "debtor_Name", value: paymentOrder.CreditorDescription);
                }

                if (paymentOrder.CreditorDocumentNumber != null)
                {
                    if (paymentOrder.CreditorDocumentType == 1)
                    {
                        description += ", ՀԾՀ " + paymentOrder.CreditorDocumentNumber;
                        parameters.Add(key: "debtor_soccard", value: paymentOrder.CreditorDocumentNumber);
                    }
                    else if (paymentOrder.CreditorDocumentType == 2)
                    {
                        description += ", Պարտատիրոջ ՀԾՀ չստանալու մասին տեղեկանքի համար " + paymentOrder.CreditorDocumentNumber;
                        parameters.Add(key: "debtor_soccard", value: paymentOrder.CreditorDocumentNumber);
                    }
                    else if (paymentOrder.CreditorDocumentType == 3)
                    {
                        description += ", Անձնագիր " + paymentOrder.CreditorDocumentNumber;
                    }
                    else if (paymentOrder.CreditorDocumentType == 4)
                    {
                        description += ", ՀՎՀՀ " + paymentOrder.CreditorDocumentNumber;
                        parameters.Add(key: "debtor_code_of_tax", value: paymentOrder.CreditorDocumentNumber);
                    }
                }

                if (paymentOrder.CreditorDeathDocument != null)
                {
                    description += ", Մահվան վկայական " + paymentOrder.CreditorDeathDocument;
                }
                if (paymentOrder.Fees != null)
                {
                    if (paymentOrder.Fees.Exists(m => m.Type == 20 || m.Type == 5))
                    {
                        double transferFee = paymentOrder.Fees.Find(m => m.Type == 20 || m.Type == 5).Amount;
                        parameters.Add(key: "commission", value: transferFee.ToString());
                    }
                }

                parameters.Add(key: "TransactionTime", value: sentTime);


                parameters.Add(key: "print_soc_card", value: customerData.CustomerType == 6 ? "True" : "False");
                parameters.Add(key: "is_copy", value: "False");
                parameters.Add(key: "reciever_tax_code", value: "");
                parameters.Add(key: "reg_code", value: regCode.ToString());
                parameters.Add(key: "cust_name", value: customerData.CustomerDescription);
                if (customerData.CustomerType != 6)
                {
                    parameters.Add(key: "tax_code", value: customerData.TaxCode);
                }

                parameters.Add(key: "quality", value: ((short)paymentOrder.Quality).ToString());
                parameters.Add(key: "police_code", value: policeResponseDetailsId.ToString());


                response.Result = await _reportService.RenderReport($"/{_reportName}/Payment_order", parameters, ReportService.GetExportFormatEnumeration(exportFormat), "Payment_order");
            }
            else
            {
                paymentOrder.Description = "Հայտը կատարված չէ։";
            }
            response.ResultCode = ResultCodes.normal;
            return(response);
        }