public string PrintFastOverdraftContract(long docId, ulong customerNumber, bool fromApprove = false) { string result = null; LoanProductOrder productOrder = _xBService.GetCreditLineOrder(docId); Card card = _xBService.GetCardWithOutBallance(productOrder.ProductAccount.AccountNumber); Dictionary <string, string> contractInfo = _xBService.GetDepositCreditLineContractInfo((int)docId).ToDictionary(x => x.Key, x => x.Value); CreditLinePrecontractData precontractData = _xBService.GetCreditLinePrecontractData(productOrder.StartDate, productOrder.EndDate, productOrder.InterestRate, 0, card.CardNumber, productOrder.Currency, productOrder.Amount, 8); short filialCode = _xBService.GetCustomerFilial(); double penaltyRate = _xBInfoService.GetPenaltyRateOfLoans(54, productOrder.StartDate); string contractName = "CreditLineContract"; Dictionary <string, string> parameters = new Dictionary <string, string>(); parameters.Add(key: "customerNumberHB", value: customerNumber.ToString()); Contract contract = null; if (fromApprove == true) { contract = new Contract(); parameters.Add(key: "attachFile", value: "1"); contract.AttachDocType = 12; contract.AttachFile = 1; contract.ContractName = contractName; contract.DocID = (int)docId; contract.ParametersList = new List <ContractServiceRef.StringKeyValue>(); } parameters.Add(key: "appID", value: "0"); parameters.Add(key: "bln_with_enddate", value: "True"); parameters.Add(key: "visaNumberHB", value: card.CardNumber); parameters.Add(key: "HbDocID", value: docId.ToString()); parameters.Add(key: "dateOfBeginningHB", value: productOrder.StartDate.ToString("dd/MMM/yy")); parameters.Add(key: "currencyHB", value: productOrder.Currency); parameters.Add(key: "penaltyAddPercentHB", value: penaltyRate.ToString()); parameters.Add(key: "startCapitalHB", value: productOrder.Amount.ToString()); parameters.Add(key: "clientTypeHB", value: ""); parameters.Add(key: "filialCodeHB", value: filialCode.ToString()); parameters.Add(key: "creditLineTypeHB", value: "54"); parameters.Add(key: "provisionNumberHB", value: "01"); parameters.Add(key: "interestRateHB", value: productOrder.InterestRate.ToString()); parameters.Add(key: "securityCodeHB", value: contractInfo["security_code_2"].ToString()); parameters.Add(key: "loanProvisionPercentHB", value: "0"); parameters.Add(key: "interestRateFullHB", value: (precontractData.InterestRate / 100).ToString()); parameters.Add(key: "connectAccountFullNumberHB", value: productOrder.ProductAccount.AccountNumber); parameters.Add(key: "interestRateEffectiveWithoutAccountServiceFee", value: precontractData.InterestRateEffectiveWithoutAccountServiceFee.ToString()); parameters.Add(key: "dateOfNormalEndHB", value: productOrder.EndDate.ToString("dd/MMM/yy")); parameters.Add(key: "RepaymentKurs", value: contractInfo["repayment_kurs"].ToString() == null ? "0" : contractInfo["repayment_kurs"].ToString()); result = _contractService.RenderContract(contractName, parameters, "FastOverdraftContract.pdf", contract); //File.WriteAllBytes(@"C:\YourPDFLoan.pdf", result); return(result); }
public string PrintDepositCreditLineContract(long docId, ulong customerNumber, bool fromApprove = false) { string result = null; LoanProductOrder loanProductOrder = _xBService.GetCreditLineOrder(docId); Card card = _xBService.GetCardWithOutBallance(loanProductOrder.ProductAccount.AccountNumber); CreditLinePrecontractData preContractDate = _xBService.GetCreditLinePrecontractData(loanProductOrder.StartDate, (loanProductOrder.ProductType == 51 || loanProductOrder.ProductType == 50) ? loanProductOrder.ValidationDate.Value : loanProductOrder.EndDate, loanProductOrder.InterestRate, 0, card.CardNumber, loanProductOrder.Currency, loanProductOrder.Amount, 8); Dictionary <string, string> contractInfo = _xBService.GetDepositCreditLineContractInfo((int)docId).ToDictionary(x => x.Key, x => x.Value); short fillialCode = _xBService.GetCustomerFilial(); int cardType = _xBService.GetCardType(card.CardNumber); double kursForLoan = _xBService.GetCBKursForDate(loanProductOrder.StartDate, loanProductOrder.Currency); double kursForProvision = _xBService.GetCBKursForDate(loanProductOrder.StartDate, loanProductOrder.PledgeCurrency); double decreasingAmount = _xBService.GetCreditLineDecreasingAmount(loanProductOrder.Amount, loanProductOrder.Currency, loanProductOrder.StartDate, (loanProductOrder.ProductType == 51 || loanProductOrder.ProductType == 50) ? loanProductOrder.ValidationDate.Value : loanProductOrder.EndDate); double penaltyRate = _xBInfoService.GetPenaltyRateOfLoans(30, loanProductOrder.StartDate); string contractName = string.Empty; if (cardType != 40) { contractName = "CreditLineContract"; } else { contractName = "CreditLineAmex"; } Dictionary <string, string> parameters = new Dictionary <string, string>(); parameters.Add(key: "customerNumberHB", value: customerNumber.ToString()); Contract contract = null; if (fromApprove == true) { contract = new Contract(); parameters.Add(key: "attachFile", value: "1"); contract.AttachDocType = 12; contract.AttachFile = 1; contract.ContractName = contractName; contract.DocID = (int)docId; contract.ParametersList = new List <ContractServiceRef.StringKeyValue>(); } parameters.Add(key: "appID", value: "0"); parameters.Add(key: "bln_with_enddate", value: "True"); parameters.Add(key: "visaNumberHB", value: card.CardNumber); parameters.Add(key: "HbDocID", value: docId.ToString()); parameters.Add(key: "dateOfBeginningHB", value: loanProductOrder.StartDate.ToString("MM/dd/yyyy")); parameters.Add(key: "currencyHB", value: loanProductOrder.Currency); parameters.Add(key: "penaltyAddPercentHB", value: penaltyRate.ToString()); parameters.Add(key: "startCapitalHB", value: loanProductOrder.Amount.ToString()); parameters.Add(key: "provisionNumberHB", value: "01"); parameters.Add(key: "clientTypeHB", value: ""); parameters.Add(key: "filialCodeHB", value: fillialCode.ToString()); parameters.Add(key: "creditLineTypeHB", value: loanProductOrder.ProductType.ToString()); parameters.Add(key: "securityCodeHB", value: contractInfo["security_code_2"].ToString()); parameters.Add(key: "loanProvisionPercentHB", value: ((loanProductOrder.Amount * kursForLoan) / (loanProductOrder.ProvisionAmount * kursForProvision) * 100).ToString()); parameters.Add(key: "interestRateHB", value: loanProductOrder.InterestRate.ToString()); parameters.Add(key: "interestRateFullHB", value: (preContractDate.InterestRate / 100).ToString()); parameters.Add(key: "connectAccountFullNumberHB", value: loanProductOrder.ProductAccount.AccountNumber.ToString()); parameters.Add(key: "interestRateEffectiveWithoutAccountServiceFeeHB", value: preContractDate.InterestRateEffectiveWithoutAccountServiceFee.ToString()); if (cardType == 40) { parameters.Add(key: "contractPersonCountHB", value: "2"); } parameters.Add(key: "repaymentPercentHB", value: contractInfo["repayment_percent"].ToString()); parameters.Add(key: "RepaymentKurs", value: contractInfo["repayment_kurs"].ToString() == null ? "0" : contractInfo["repayment_kurs"].ToString()); parameters.Add(key: "decrAmountHB", value: loanProductOrder.ProductType == 50 ? decreasingAmount.ToString() : "0"); result = _contractService.RenderContract(contractName, parameters, contractName + ".pdf", contract); return(result); }