public StatusDTO <TransactionLogPaymentsDTO> Insert(TransactionLogPaymentsDTO data) { using (IDbSvc dbSvc = new DbSvc(_configSvc)) { try { dbSvc.OpenConnection(); MySqlCommand command = new MySqlCommand(); command.CommandText = "INSERT INTO transactionlogpayments(transactionlogid, paymentdate, " + "currentamount, paymentchequeno, paymentmode, currentadjustingamount) VALUES (@transLogId, @paymentDate, " + "@curramount, @chqNo, @mode, @currentadjusting)"; command.Connection = dbSvc.GetConnection() as MySqlConnection; command.Parameters.Add("@transLogId", MySqlDbType.Int32).Value = data.TransactionLog.TransactionLogId; command.Parameters.Add("@paymentDate", MySqlDbType.DateTime).Value = data.PaymentDate.Value; command.Parameters.Add("@curramount", MySqlDbType.Decimal).Value = data.CurrentAmount.Value; if (string.IsNullOrEmpty(data.PaymentChequeNo)) { command.Parameters.Add("@chqNo", MySqlDbType.VarChar).Value = DBNull.Value; } else { command.Parameters.Add("@chqNo", MySqlDbType.VarChar).Value = data.PaymentChequeNo; } command.Parameters.Add("@mode", MySqlDbType.VarChar).Value = data.PaymentMode; command.Parameters.Add("@currentadjusting", MySqlDbType.Decimal).Value = data.CurrentAdjustingAmount.Value; StatusDTO <TransactionLogPaymentsDTO> status = new StatusDTO <TransactionLogPaymentsDTO>(); if (command.ExecuteNonQuery() > 0) { status.IsSuccess = true; status.IsException = false; return(status); } status.IsSuccess = false; status.IsException = false; status.FailureReason = "Insert failed"; return(status); } catch (Exception exp) { _logger.Log(exp); throw exp; } } }
public StatusDTO <TransactionLogPaymentsDTO> Update(TransactionLogPaymentsDTO data) { throw new NotImplementedException(); }
public StatusDTO <List <TransactionLogPaymentsDTO> > Select(TransactionLogPaymentsDTO data) { throw new NotImplementedException(); }
public JsonResult payAllTransactions(Models.TransactionViewModel transactions) { double currentTotalPay = transactions.CurrentAmount; double currentTotalAdjusting = transactions.CurrentAdjusting; double currentTotalDue = transactions.DueAmount.Value; if (currentTotalPay + currentTotalAdjusting > 0) { if (currentTotalPay + currentTotalAdjusting <= currentTotalDue) { using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) { try { foreach (Models.TransactionViewModel tranlogDTO in transactions.paymentDetailsList) { tranlogDTO.TransferMode = transactions.TransferMode; tranlogDTO.PaymentChequeNo = transactions.PaymentChequeNo; if (tranlogDTO.DueAmount != null && tranlogDTO.DueAmount.Value > 0) { if (tranlogDTO.AmountGiven == null) { tranlogDTO.AmountGiven = 0; } if (tranlogDTO.AdjustedAmount == null) { tranlogDTO.AdjustedAmount = 0; } if (tranlogDTO.DueAmount == null) { tranlogDTO.DueAmount = 0; } double currentGivenAmt = ((tranlogDTO.DueAmount.Value > currentTotalPay) ? currentTotalPay : tranlogDTO.DueAmount.Value); tranlogDTO.AmountGiven = tranlogDTO.AmountGiven + currentGivenAmt; tranlogDTO.DueAmount = tranlogDTO.DueAmount.Value - currentGivenAmt; tranlogDTO.PaymentDate = DateTime.Now; if (!string.Equals(tranlogDTO.TransferMode, "CHQ")) { tranlogDTO.PaymentChequeNo = string.Empty; } double currentAdjustedAmt = 0.0; if (tranlogDTO.DueAmount.Value > 0) { currentAdjustedAmt = (tranlogDTO.DueAmount.Value > currentTotalAdjusting) ? currentTotalAdjusting : tranlogDTO.DueAmount.Value; tranlogDTO.AdjustedAmount = tranlogDTO.AdjustedAmount + currentAdjustedAmt; tranlogDTO.DueAmount = tranlogDTO.DueAmount.Value - currentAdjustedAmt; } tranlogDTO.HasPartialPayment = true; if (tranlogDTO.AmountImposed == (currentGivenAmt + currentAdjustedAmt)) { tranlogDTO.HasPartialPayment = false; } bool principalApprovedChanged = false; int? oldPrincipalApproved = null; if (currentAdjustedAmt > 0) { tranlogDTO.IsPrincipalApproved = 0; oldPrincipalApproved = 0; principalApprovedChanged = true; } tranlogDTO.IsCompleted = false; if ((tranlogDTO.IsPrincipalApproved == null || tranlogDTO.IsPrincipalApproved == 1) && tranlogDTO.DueAmount == 0) { tranlogDTO.IsCompleted = true; } if (!principalApprovedChanged) { oldPrincipalApproved = tranlogDTO.IsPrincipalApproved; tranlogDTO.IsPrincipalApproved = null; } if (tranlogDTO.DueAmount >= 0) { StatusDTO <TransactionLogDTO> status = _transactionLogSvc.UpdatePayment(tranlogDTO); if (!status.IsSuccess) { throw new Exception("Error encountered in one transaction. Rolled back."); } else { if (tranlogDTO.HasPartialPayment.Value) { TransactionLogPaymentsDTO payment = new TransactionLogPaymentsDTO(); payment.CurrentAmount = currentGivenAmt; payment.CurrentAdjustingAmount = currentAdjustedAmt; payment.PaymentChequeNo = tranlogDTO.PaymentChequeNo; payment.PaymentDate = tranlogDTO.PaymentDate; payment.PaymentMode = tranlogDTO.TransferMode; payment.TransactionLog = tranlogDTO; if (!_paymentSvc.Insert(payment).IsSuccess) { throw new Exception("Payment sub details not added"); } } } } currentTotalPay = currentTotalPay - currentGivenAmt; currentTotalAdjusting = currentTotalAdjusting - currentAdjustedAmt; } } } catch (Exception exp) { return(Json(new { status = false, message = exp.Message }, JsonRequestBehavior.AllowGet)); } ts.Complete(); return(Json(new { status = true, message = "Transaction completed successfully." }, JsonRequestBehavior.AllowGet)); } } return(Json(new { status = false, message = "Total current and adjusted amount must be less than or equal to total due." }, JsonRequestBehavior.AllowGet)); } return(Json(new { status = false, message = "No amount is given" }, JsonRequestBehavior.AllowGet)); }
public JsonResult updateRowPayment(Models.TransactionViewModel tranlogDTO) { if (tranlogDTO.AmountGiven == null) { tranlogDTO.AmountGiven = 0; } if (tranlogDTO.AdjustedAmount == null) { tranlogDTO.AdjustedAmount = 0; } if (tranlogDTO.DueAmount == null) { tranlogDTO.DueAmount = 0; } tranlogDTO.HasPartialPayment = true; tranlogDTO.PaymentDate = DateTime.Now; if (tranlogDTO.AmountImposed == (tranlogDTO.CurrentAmount + tranlogDTO.CurrentAdjusting)) { tranlogDTO.HasPartialPayment = false; } if (!string.Equals(tranlogDTO.TransferMode, "CHQ")) { tranlogDTO.PaymentChequeNo = string.Empty; } tranlogDTO.AmountGiven = tranlogDTO.AmountGiven + tranlogDTO.CurrentAmount; tranlogDTO.AdjustedAmount = tranlogDTO.AdjustedAmount + tranlogDTO.CurrentAdjusting; tranlogDTO.DueAmount = tranlogDTO.DueAmount - (tranlogDTO.CurrentAmount + tranlogDTO.CurrentAdjusting); //tranlogDTO.IsPrincipalApproved = null; bool principalApprovedChanged = false; int? oldPrincipalApproved = null; if (tranlogDTO.CurrentAdjusting > 0) { tranlogDTO.IsPrincipalApproved = 0; oldPrincipalApproved = 0; principalApprovedChanged = true; } tranlogDTO.IsCompleted = false; if ((tranlogDTO.IsPrincipalApproved == null || tranlogDTO.IsPrincipalApproved == 1) && tranlogDTO.DueAmount == 0) { tranlogDTO.IsCompleted = true; } if (!principalApprovedChanged) { oldPrincipalApproved = tranlogDTO.IsPrincipalApproved; tranlogDTO.IsPrincipalApproved = null; } if (tranlogDTO.DueAmount >= 0) { StatusDTO <TransactionLogDTO> status = _transactionLogSvc.UpdatePayment(tranlogDTO); using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) { if (status.IsSuccess) { tranlogDTO.IsPrincipalApproved = oldPrincipalApproved; if (tranlogDTO.HasPartialPayment.Value) { TransactionLogPaymentsDTO payment = new TransactionLogPaymentsDTO(); payment.CurrentAmount = tranlogDTO.CurrentAmount; payment.PaymentChequeNo = tranlogDTO.PaymentChequeNo; payment.PaymentDate = tranlogDTO.PaymentDate; payment.PaymentMode = tranlogDTO.TransferMode; payment.TransactionLog = tranlogDTO; payment.CurrentAdjustingAmount = tranlogDTO.CurrentAdjusting; if (_paymentSvc.Insert(payment).IsSuccess) { ts.Complete(); } } return(Json(new { status = true, data = tranlogDTO, message = "Successful" }, JsonRequestBehavior.AllowGet)); } } return(Json(new { status = false, data = tranlogDTO, message = "Payment failed." }, JsonRequestBehavior.AllowGet)); } return(Json(new { status = false, data = tranlogDTO, message = "Paid amount is greater than due amount" }, JsonRequestBehavior.AllowGet)); }