public ReceiptVoucher SaveFailedReceiptVoucher(ReceiptVoucherViewModel receiptVoucher, long transactionId) { //Insert into failed reciept vouchers only try { using (var paymentMgr = new PaymentManager()) { return(paymentMgr.SaveFailedReceiptVoucher(receiptVoucher, transactionId)); } } catch (Exception ex) { IExceptionLogger logger = new DefaultExceptionLogger(); logger.Log("Error", ex); return(null); } finally { //string ToEmails = ConfigurationManager.AppSettings["PaymentFailureEmails"].ToString(); SettingStoreBase _storeBase; _storeBase = new SettingStoreBase(new LaborServicesDbContext()); string ToEmails = _storeBase.GetSettingValueByName("PaymentFailureEmails"); string CCEmail = ""; string subject = "خطأ في إنشاء سند قبض للعميل من علي البورتال"; string body = " خطأ في إنشاء سند قبض للعميل رقم "; body += receiptVoucher.Customerid; body += " من علي البورتال لعقد رقم "; body += receiptVoucher.contractid; MailSender.SendEmail02(ToEmails, CCEmail, subject, body, false, ""); } }
public virtual Task <APIResponseModel <ReceiptVoucherViewModel> > CreateReceiptVoucher(DomesticInvoice invoice) { CultureInfo info = new CultureInfo("en-us"); ReceiptVoucherViewModel data = new ReceiptVoucherViewModel() { contractid = invoice.ContractId, Customerid = invoice.CustomerId, Contractnumber = invoice.Contract, InvoiceNumber = invoice.Number, amount = invoice.InvoiceAmount.ToString(), datatime = DateTime.Now.ToString("dd/MM/yyyy", info.DateTimeFormat), paymentcode = "2", vatrate = "0.0", who = AppConstants.Who_WebSource, InvoiceId = invoice.Id }; try { var caller = new ApiCaller(Lang); var apiUrl = String.Format("api/Payment/Individual/AddRecieptVoucher"); return(caller.PostResourceAsync <ReceiptVoucherViewModel>(apiUrl, data)); } catch (Exception ex) { IExceptionLogger logger = new DefaultExceptionLogger(); logger.Log("Error", ex); return(new Task <APIResponseModel <ReceiptVoucherViewModel> >(() => new APIResponseModel <ReceiptVoucherViewModel>() { StatusCode = System.Net.HttpStatusCode.InternalServerError, Result = data })); } }
public async Task <ReceiptVoucherViewModel> CreateReceiptVoucher(ServiceContractPerHour contractToPay, PaymentTransaction newTransaction) { var paymentMgr = new PaymentManager(); try { var data = new ReceiptVoucherViewModel(); data.contractid = contractToPay.ContractId; data.Customerid = contractToPay.CustomerId; data.Contractnumber = contractToPay.ContractNum; data.amount = contractToPay.totalpricewithoutvat; CultureInfo info = new CultureInfo("en-us"); data.datatime = DateTime.Now.ToString("dd/MM/yyyy", info.DateTimeFormat); data.paymentcode = "2";//ToDo data.paymenttype = 2; data.vatrate = contractToPay.vatrate; data.who = 2; var newVoucher = await PostResourceAsync <ReceiptVoucherViewModel>("api/Payment/AddRecieptVoucher", data); if (newVoucher.StatusCode == HttpStatusCode.OK) { //SaveFailedReceiptVoucher(contractToPay, newTransaction); return(newVoucher.Result); } else { return(paymentMgr.SaveFailedReceiptVoucher(contractToPay, newTransaction)); } } catch (Exception ex) { return(paymentMgr.SaveFailedReceiptVoucher(contractToPay, newTransaction)); } }
public ReceiptVoucher SaveFailedReceiptVoucher(ReceiptVoucherViewModel receiptVoucher, long transactionId) { var receipt = new ReceiptVoucher(); receipt.ContractId = receiptVoucher.contractid; receipt.CustomerId = receiptVoucher.Customerid; receipt.ContractNumber = receiptVoucher.Contractnumber; receipt.Amount = Convert.ToDecimal(receiptVoucher.amount); CultureInfo info1 = new CultureInfo("en-us"); receipt.Date = DateTime.Now.ToString("MM/dd/yyyy", info1.DateTimeFormat); receipt.PaymentCode = "2";//ToDo receipt.PaymentType = 2; receipt.VatRate = Convert.ToDecimal(receiptVoucher.vatrate); receipt.Who = 2; receipt.IsSaved = false; receipt.CreatedDate = DateTime.Now.ToString("MM/dd/yyyy", info1.DateTimeFormat); receipt.ModifiedDate = DateTime.Now.ToString("MM/dd/yyyy", info1.DateTimeFormat); receipt.TransactionId = transactionId; return(_ReceiptVoucherStoreBase.Create(receipt)); }
public async Task <ReceiptVoucherViewModel> CreateReceiptVoucher(ContractViewModel contractToPay, PaymentTransaction newTransaction) { try { var data = new ReceiptVoucherViewModel(); data.contractid = contractToPay.ContractId; data.Customerid = contractToPay.CustomerId; data.Contractnumber = contractToPay.ContractNum; data.amount = contractToPay.PriceBeforeDiscount; CultureInfo info = new CultureInfo("en-us"); data.datatime = DateTime.Now.ToString("dd/MM/yyyy", info.DateTimeFormat); data.paymentcode = "2";//ToDo data.paymenttype = 2; data.vatrate = contractToPay.VatRate; data.who = 2; var newVoucher = await PostResourceAsync <ReceiptVoucherViewModel>("api/Payment/AddRecieptVoucher", data); if (newVoucher.StatusCode == HttpStatusCode.OK) { //SaveFailedReceiptVoucher(contractToPay, newTransaction); return(newVoucher.Result); } else { return(SaveFailedReceiptVoucher(contractToPay, newTransaction)); } } catch (Exception ex) { IExceptionLogger logger = new DefaultExceptionLogger(); logger.Log("Error", ex); return(SaveFailedReceiptVoucher(contractToPay, newTransaction)); } }
public async Task <ActionResult> Status() { string fullCheckoutId = Request.QueryString["id"].ToString(); string fullCheckoutResourcePath = Request.QueryString["resourcePath"].ToString(); string realCheckoutId = fullCheckoutId; //"6D6477C462F95472B02F00779D233FA4.prod01-vm-tx01" ContractViewModel contractToPay = Session["contractToPay"] as ContractViewModel; PaymentTransaction transaction = new PaymentTransaction(); if (!string.IsNullOrEmpty(realCheckoutId)) { Dictionary <string, dynamic> paymentStatusResult = StatuesRequestRequest(realCheckoutId); string requiredValue = paymentStatusResult["result"]["description"]; string requiredCode = paymentStatusResult["result"]["code"];//000.100.112 success string UserId = Session["UserId"].ToString(); var currentUser = UserManager.FindById(UserId); transaction.CustomerId = currentUser.CrmUserId; contractToPay.CustomerId = currentUser.CrmUserId; transaction.ContractId = contractToPay.ContractId; transaction.PaymentStatus = requiredCode; transaction.PaymentStatusName = requiredValue; transaction.Amount = Convert.ToDecimal(contractToPay.FinalPrice); transaction.Who = 2; //000.000.000 Live Transaction Success Code //Transaction succeeded if (requiredCode == "000.000.000" || requiredValue == "Transaction succeeded") { transaction.EntityName = "Successfull Payment Transaction for Contract Number [ " + contractToPay.ContractNum + " ] with Total price of : [ " + contractToPay.FinalPrice + " SR ] and customer : [ " + contractToPay.CustomerId + " ]"; transaction.CreatedDate = DateTime.Now; transaction.ModifiedDate = DateTime.Now; transaction.IsVoucherSaved = false; PaymentTransaction newTransaction = Create(transaction); ReceiptVoucherViewModel model = await CreateReceiptVoucher(contractToPay, newTransaction); newTransaction.IsVoucherSaved = model != null ? true : false; Update(newTransaction); return(RedirectToAction("Success", new { id = transaction.ContractId })); } else { transaction.EntityName = "Failed Payment Transaction for Contract Number [ " + contractToPay.ContractNum + " ] with Total price of : [ " + contractToPay.FinalPrice + " SR ] and customer : [ " + contractToPay.CustomerId + " ]"; transaction.IsVoucherSaved = false; transaction.CreatedDate = DateTime.Now; transaction.ModifiedDate = DateTime.Now; Create(transaction); return(RedirectToAction("Failure", new { reason = requiredValue, id = transaction.ContractId })); } } else { transaction.CustomerId = contractToPay.CustomerId; transaction.ContractId = contractToPay.ContractId; transaction.PaymentStatus = "000000"; transaction.PaymentStatusName = "Checkout payment failed"; transaction.Amount = Convert.ToDecimal(contractToPay.FinalPrice); transaction.Who = 2; transaction.EntityName = "Failed Payment Transaction for Contract Number [ " + contractToPay.ContractNum + " ] with Total price of : [ " + contractToPay.FinalPrice + " SR ] and customer : [ " + contractToPay.CustomerId + " ]"; transaction.IsVoucherSaved = false; transaction.CreatedDate = DateTime.Now; transaction.ModifiedDate = DateTime.Now; Create(transaction); return(RedirectToAction("Failure", new { reason = "There is not checkout id retrieved for this payment" })); } }