protected void dgCashPaymentDetail_UpdateCommand(object source, DataGridCommandEventArgs e) { decimal previousAmount = 0; int CPRDId = (int)dgCashPaymentDetail.DataKeys[e.Item.ItemIndex]; PaymentReimbursementRequestDetail cprd; if (CPRDId > 0) { cprd = _presenter.CurrentCashPaymentRequest.PaymentReimbursementRequest.GetPaymentReimbursementRequestDetail(CPRDId); } else { cprd = _presenter.CurrentCashPaymentRequest.PaymentReimbursementRequest.PaymentReimbursementRequestDetails[e.Item.ItemIndex]; } try { cprd.PaymentReimbursementRequest = _presenter.CurrentCashPaymentRequest.PaymentReimbursementRequest; TextBox txtAmount = e.Item.FindControl("txtEdtAmount") as TextBox; previousAmount = cprd.ActualExpenditure; //This is the Total Amount of this request before any edit cprd.ActualExpenditure = Convert.ToDecimal(txtAmount.Text); TextBox txtEdtAccountCode = e.Item.FindControl("txtEdtAccountCode") as TextBox; cprd.AccountCode = txtEdtAccountCode.Text; DropDownList ddlAccountDescription = e.Item.FindControl("ddlEdtAccountDescription") as DropDownList; cprd.ItemAccount = _presenter.GetItemAccount(Convert.ToInt32(ddlAccountDescription.SelectedValue)); CheckBox ckEdtSupDocAttached = e.Item.FindControl("ckEdtSupDocAttached") as CheckBox; cprd.SupportDocAttached = ckEdtSupDocAttached.Checked; _presenter.CurrentCashPaymentRequest.PaymentReimbursementRequest.TotalAmount -= previousAmount; //Subtract the previous Total amount _presenter.CurrentCashPaymentRequest.PaymentReimbursementRequest.TotalAmount += cprd.ActualExpenditure; //Then add the new individual amounts to the Total amount txtImbursement.Text = ((txtImbursement.Text != "" ? Convert.ToDecimal(txtImbursement.Text) : 0) - previousAmount).ToString(); txtImbursement.Text = (Convert.ToDecimal(txtImbursement.Text) + cprd.ActualExpenditure).ToString(); //Add Checklists for attachments if available but clear all attachments first because this is update cprd.PRAttachments = new List <PRAttachment>(); foreach (ItemAccountChecklist checklist in cprd.ItemAccount.ItemAccountChecklists) { PRAttachment attachment = new PRAttachment(); attachment.PaymentReimbursementRequestDetail = _presenter.CurrentCashPaymentRequest.PaymentReimbursementRequest.GetDetailByItemAccount(cprd.ItemAccount.Id); attachment.ItemAccountChecklists.Add(checklist); cprd.PRAttachments.Add(attachment); } BindAttachments(); dgCashPaymentDetail.EditItemIndex = -1; BindCashPaymentDetails(); Master.ShowMessage(new AppMessage("Payment Detail Successfully Updated", RMessageType.Info)); } catch (Exception ex) { Master.ShowMessage(new AppMessage("Error: Unable to Update Payment. " + ex.Message, RMessageType.Error)); ExceptionUtility.LogException(ex, ex.Source); ExceptionUtility.NotifySystemOps(ex, _presenter.CurrentUser().FullName); } }
protected void dgCashPaymentDetail_ItemCommand(object source, DataGridCommandEventArgs e) { if (e.CommandName == "AddNew") { try { PaymentReimbursementRequestDetail cprd = new PaymentReimbursementRequestDetail(); cprd.PaymentReimbursementRequest = _presenter.CurrentCashPaymentRequest.PaymentReimbursementRequest; TextBox txtAmount = e.Item.FindControl("txtAmount") as TextBox; cprd.ActualExpenditure = Convert.ToDecimal(txtAmount.Text); TextBox txtAccountCode = e.Item.FindControl("txtAccountCode") as TextBox; cprd.AccountCode = txtAccountCode.Text; DropDownList ddlAccountDescription = e.Item.FindControl("ddlAccountDescription") as DropDownList; cprd.ItemAccount = _presenter.GetItemAccount(Convert.ToInt32(ddlAccountDescription.SelectedValue)); DropDownList ddlProject = e.Item.FindControl("ddlProject") as DropDownList; CheckBox ckSupDocAttached = e.Item.FindControl("ckSupDocAttached") as CheckBox; cprd.SupportDocAttached = ckSupDocAttached.Checked; _presenter.CurrentCashPaymentRequest.PaymentReimbursementRequest.TotalAmount += cprd.ActualExpenditure; txtImbursement.Text = ((txtImbursement.Text != "" ? Convert.ToDecimal(txtImbursement.Text) : 0) + cprd.ActualExpenditure).ToString(); //Add Checklists for attachments if available foreach (ItemAccountChecklist checklist in cprd.ItemAccount.ItemAccountChecklists) { PRAttachment attachment = new PRAttachment(); attachment.PaymentReimbursementRequestDetail = _presenter.CurrentCashPaymentRequest.PaymentReimbursementRequest.GetDetailByItemAccount(cprd.ItemAccount.Id); attachment.ItemAccountChecklists.Add(checklist); cprd.PRAttachments.Add(attachment); } _presenter.CurrentCashPaymentRequest.PaymentReimbursementRequest.PaymentReimbursementRequestDetails.Add(cprd); BindAttachments(); dgCashPaymentDetail.EditItemIndex = -1; BindCashPaymentDetails(); foreach (PRAttachment attachment in _presenter.CurrentCashPaymentRequest.PaymentReimbursementRequest.PaymentReimbursementRequestDetails[e.Item.ItemIndex + 1].PRAttachments) { attachment.PaymentReimbursementRequestDetail = _presenter.CurrentCashPaymentRequest.PaymentReimbursementRequest.GetPaymentReimbursementRequestDetail((int)dgCashPaymentDetail.DataKeys[e.Item.ItemIndex + 1]); } Master.ShowMessage(new AppMessage("Payment Detail Successfully Added", RMessageType.Info)); } catch (Exception ex) { Master.ShowMessage(new AppMessage("Error: Unable to Save Payment Detail" + ex.Message, RMessageType.Error)); ExceptionUtility.LogException(ex, ex.Source); ExceptionUtility.NotifySystemOps(ex, _presenter.CurrentUser().FullName); } } }