private void saveCharge(RadTextBox txtChargeCode, RadComboBox cbChargeCcy, RadComboBox cbChargeAcc, RadNumericTextBox txtChargeAmt, RadComboBox cbChargeParty, RadComboBox cbChargeAmort,
     RadComboBox cbChargeStatus, Label lblTaxCode, Label lblTaxAmt, ref BEXPORT_LC_DOCS_PROCESSING_CHARGES ExLCCharge)
 {
     ExLCCharge.DocsCode = tbLCCode.Text;
     ExLCCharge.ChargeCode = txtChargeCode.Text;
     ExLCCharge.ChargeCcy = cbChargeCcy.SelectedValue;
     ExLCCharge.ChargeAcc = cbChargeAcc.SelectedValue;
     ExLCCharge.ChargeAmt = txtChargeAmt.Value;
     ExLCCharge.PartyCharged = cbChargeParty.SelectedValue;
     ExLCCharge.AmortCharge = cbChargeAmort.SelectedValue;
     ExLCCharge.ChargeStatus = cbChargeStatus.SelectedValue;
     ExLCCharge.TaxCode = lblTaxCode.Text;
     if (!string.IsNullOrEmpty(lblTaxAmt.Text))
         ExLCCharge.TaxAmt = Convert.ToDouble(lblTaxAmt.Text);
 }
 private void loadCharge(BEXPORT_LC_DOCS_PROCESSING_CHARGES ExLCCharge, ref RadTextBox txtChargeCode, ref RadComboBox cbChargeCcy, ref RadComboBox cbChargeAcc, ref RadNumericTextBox txtChargeAmt,
     ref RadComboBox cbChargeParty, ref RadComboBox cbChargeAmort, ref RadComboBox cbChargeStatus, ref Label lblTaxCode, ref Label lblTaxAmt)
 {
     txtChargeCode.Text = ExLCCharge.ChargeCode;
     cbChargeCcy.SelectedValue = ExLCCharge.ChargeCcy;
     cbChargeAcc.SelectedValue = ExLCCharge.ChargeAcc;
     txtChargeAmt.Value = ExLCCharge.ChargeAmt;
     cbChargeParty.SelectedValue = ExLCCharge.PartyCharged;
     cbChargeAmort.SelectedValue = ExLCCharge.AmortCharge;
     cbChargeStatus.SelectedValue = ExLCCharge.ChargeStatus;
     lblTaxCode.Text = ExLCCharge.TaxCode;
     if (ExLCCharge.TaxAmt.HasValue)
         lblTaxAmt.Text = ExLCCharge.TaxAmt.ToString();
 }
 protected void RadToolBar1_ButtonClick(object sender, RadToolBarEventArgs e)
 {
     string docCode = tbLCCode.Text.Trim(), lcCode;
     var ExLCDoc = dbEntities.findExportLCDoc(docCode);
     BEXPORT_LC ExLC;
     var toolBarButton = e.Item as RadToolBarButton;
     var commandName = toolBarButton.CommandName.ToLower();
     #region Register
     if (TabId == ExportLCDocProcessing.Actions.Register || TabId == ExportLCDocProcessing.Actions.Register1)
     {
         lcCode = docCode.Substring(0, docCode.IndexOf("."));
         ExLC = dbEntities.findExportLC(lcCode);
         var ExLCAmount = ExLC.Amount - (ExLC.PaymentAmount.HasValue ? ExLC.PaymentAmount.Value : 0);
         switch (commandName)
         {
             case bc.Commands.Commit:
                 if (ExLCAmount < txtAmount.Value.Value)
                 {
                     lblLCCodeMessage.Text = "Doc Amount must less than or equal LC Amount";
                     return;
                 }
                 if (ExLCDoc == null)
                 {
                     ExLCDoc = new BEXPORT_LC_DOCS_PROCESSING();
                     ExLCDoc.DocCode = tbLCCode.Text;
                     ExLCDoc.AmendNo = docCode;
                     ExLCDoc.ActiveRecordFlag = "Yes";
                     ExLCDoc.Status = bd.TransactionStatus.UNA;
                     ExLCDoc.CreateDate = DateTime.Now;
                     ExLCDoc.CreateBy = this.UserInfo.Username;
                     saveLCDoc(ref ExLCDoc);
                     dbEntities.BEXPORT_LC_DOCS_PROCESSING.Add(ExLCDoc);
                 }
                 else
                 {
                     ExLCDoc.Status = bd.TransactionStatus.UNA;
                     ExLCDoc.ActiveRecordFlag = "Yes";
                     ExLCDoc.UpdateDate = DateTime.Now;
                     ExLCDoc.UpdatedBy = this.UserInfo.Username;
                     saveLCDoc(ref ExLCDoc);
                     //Xoa di insert lai
                     var ExLCDocCharge = dbEntities.BEXPORT_LC_DOCS_PROCESSING_CHARGES.Where(p => p.DocsCode.Trim().ToLower().Equals(docCode.ToLower()));
                     if (ExLCDocCharge != null)
                     {
                         foreach(BEXPORT_LC_DOCS_PROCESSING_CHARGES ch in ExLCDocCharge)
                             dbEntities.BEXPORT_LC_DOCS_PROCESSING_CHARGES.Remove(ch);
                     }
                 }
                 if (ExLCDoc.WaiveCharges.Equals(bd.YesNo.NO))
                 {
                     BEXPORT_LC_DOCS_PROCESSING_CHARGES ExLCCharge;
                     if (tbChargeAmt1.Value.HasValue)
                     {
                         ExLCCharge = new BEXPORT_LC_DOCS_PROCESSING_CHARGES();
                         saveCharge(txtChargeCode1, rcbChargeCcy1, rcbChargeAcct1, tbChargeAmt1, rcbPartyCharged1, rcbAmortCharge1, rcbChargeStatus1, lblTaxCode1, lblTaxAmt1, ref ExLCCharge);
                         dbEntities.BEXPORT_LC_DOCS_PROCESSING_CHARGES.Add(ExLCCharge);
                     }
                     if (tbChargeAmt2.Value.HasValue)
                     {
                         ExLCCharge = new BEXPORT_LC_DOCS_PROCESSING_CHARGES();
                         saveCharge(txtChargeCode2, rcbChargeCcy2, rcbChargeAcct2, tbChargeAmt2, rcbPartyCharged2, rcbAmortCharge2, rcbChargeStatus2, lblTaxCode2, lblTaxAmt2, ref ExLCCharge);
                         dbEntities.BEXPORT_LC_DOCS_PROCESSING_CHARGES.Add(ExLCCharge);
                     }
                     if (tbChargeAmt3.Value.HasValue)
                     {
                         ExLCCharge = new BEXPORT_LC_DOCS_PROCESSING_CHARGES();
                         saveCharge(txtChargeCode3, rcbChargeCcy3, rcbChargeAcct3, tbChargeAmt3, rcbPartyCharged3, rcbAmortCharge3, rcbChargeStatus3, lblTaxCode3, lblTaxAmt3, ref ExLCCharge);
                         dbEntities.BEXPORT_LC_DOCS_PROCESSING_CHARGES.Add(ExLCCharge);
                     }
                 }
                 //
                 dbEntities.SaveChanges();
                 //
                 Response.Redirect("Default.aspx?tabid=" + this.TabId);
                 break;
             case bc.Commands.Authorize:
             case bc.Commands.Reverse:
                 if (ExLCDoc != null)
                 {
                     if (commandName.Equals(bc.Commands.Authorize))
                     {
                         ExLCDoc.Status = bd.TransactionStatus.AUT;
                         ExLCDoc.AuthorizedBy = this.UserInfo.Username;
                         ExLCDoc.AuthorizedDate = DateTime.Now;
                         //
                         if (ExLC.PaymentAmount.HasValue)
                             ExLC.PaymentAmount += ExLCDoc.Amount;
                         else
                             ExLC.PaymentAmount = ExLCDoc.Amount;
                         ExLC.PaymentFull = (ExLC.PaymentAmount == ExLC.Amount);
                         //
                         dbEntities.SaveChanges();
                         Response.Redirect("Default.aspx?tabid=" + this.TabId);
                     }
                     else
                     {
                         ExLCDoc.Status = bd.TransactionStatus.REV;
                         dbEntities.SaveChanges();
                         Response.Redirect("Default.aspx?tabid=" + this.TabId + "&code=" + tbLCCode.Text);
                     }
                 }
                 break;
         }
         return;
     }
     #endregion Register
     #region Amend
     if (TabId == ExportLCDocProcessing.Actions.Amend)
     {
         docCode = docCode.Split('.')[0] + "." + docCode.Split('.')[1];
         switch (commandName)
         {
             case bc.Commands.Commit:
                 if (ExLCDoc == null)
                 {
                     var ExLCDocOld = dbEntities.findExportLCDoc(docCode);
                     ExLCDocOld.ActiveRecordFlag = "No";
                     ExLCDoc = new BEXPORT_LC_DOCS_PROCESSING()
                     {
                         AmendNo = tbLCCode.Text.Trim(),
                         AmendNoOriginal = ExLCDocOld.AmendNo,
                         DocCode = ExLCDocOld.DocCode,
                         ActiveRecordFlag = "Yes",
                         AmendStatus = bd.TransactionStatus.UNA,
                         AmendDate = DateTime.Now,
                         AmendBy = this.UserInfo.Username,
                         PaymentFull = ExLCDocOld.PaymentFull,
                         Status = ExLCDocOld.Status,
                         CreateBy = ExLCDocOld.CreateBy,
                         CreateDate = ExLCDocOld.CreateDate,
                         UpdatedBy = ExLCDocOld.UpdatedBy,
                         UpdateDate = ExLCDocOld.UpdateDate,
                         AuthorizedBy = ExLCDocOld.AuthorizedBy,
                         AuthorizedDate = ExLCDocOld.AuthorizedDate,
                         RejectStatus = ExLCDocOld.RejectStatus,
                         RejectDate = ExLCDocOld.RejectDate,
                         AcceptStatus = ExLCDocOld.AcceptStatus,
                         AcceptDate = ExLCDocOld.AcceptDate,
                         PaymentAmount = ExLCDocOld.PaymentAmount
                     };
                     saveLCDoc(ref ExLCDoc);
                     dbEntities.BEXPORT_LC_DOCS_PROCESSING.Add(ExLCDoc);
                 }
                 else
                 {
                     var ExLCDocOld = dbEntities.findExportLCDoc(ExLCDoc.AmendNoOriginal, true);
                     ExLCDocOld.ActiveRecordFlag = "No";
                     //
                     ExLCDoc.AmendStatus = bd.TransactionStatus.UNA;
                     ExLCDoc.ActiveRecordFlag = "Yes";
                     ExLCDoc.UpdateDate = DateTime.Now;
                     ExLCDoc.UpdatedBy = this.UserInfo.Username;
                     saveLCDoc(ref ExLCDoc);
                     //Xoa di insert lai
                     var ExLCDocCharge = dbEntities.BEXPORT_LC_DOCS_PROCESSING_CHARGES.Where(p => p.DocsCode.Trim().ToLower().Equals(ExLCDoc.AmendNo.ToLower()));
                     if (ExLCDocCharge != null)
                     {
                         foreach (BEXPORT_LC_DOCS_PROCESSING_CHARGES ch in ExLCDocCharge)
                             dbEntities.BEXPORT_LC_DOCS_PROCESSING_CHARGES.Remove(ch);
                     }
                 }
                 if (ExLCDoc.WaiveCharges.Equals(bd.YesNo.NO))
                 {
                     BEXPORT_LC_DOCS_PROCESSING_CHARGES ExLCCharge;
                     if (tbChargeAmt1.Value.HasValue)
                     {
                         ExLCCharge = new BEXPORT_LC_DOCS_PROCESSING_CHARGES();
                         saveCharge(txtChargeCode1, rcbChargeCcy1, rcbChargeAcct1, tbChargeAmt1, rcbPartyCharged1, rcbAmortCharge1, rcbChargeStatus1, lblTaxCode1, lblTaxAmt1, ref ExLCCharge);
                         dbEntities.BEXPORT_LC_DOCS_PROCESSING_CHARGES.Add(ExLCCharge);
                     }
                     if (tbChargeAmt2.Value.HasValue)
                     {
                         ExLCCharge = new BEXPORT_LC_DOCS_PROCESSING_CHARGES();
                         saveCharge(txtChargeCode2, rcbChargeCcy2, rcbChargeAcct2, tbChargeAmt2, rcbPartyCharged2, rcbAmortCharge2, rcbChargeStatus2, lblTaxCode2, lblTaxAmt2, ref ExLCCharge);
                         dbEntities.BEXPORT_LC_DOCS_PROCESSING_CHARGES.Add(ExLCCharge);
                     }
                     if (tbChargeAmt3.Value.HasValue)
                     {
                         ExLCCharge = new BEXPORT_LC_DOCS_PROCESSING_CHARGES();
                         saveCharge(txtChargeCode3, rcbChargeCcy3, rcbChargeAcct3, tbChargeAmt3, rcbPartyCharged3, rcbAmortCharge3, rcbChargeStatus3, lblTaxCode3, lblTaxAmt3, ref ExLCCharge);
                         dbEntities.BEXPORT_LC_DOCS_PROCESSING_CHARGES.Add(ExLCCharge);
                     }
                 }
                 //
                 dbEntities.SaveChanges();
                 //
                 Response.Redirect("Default.aspx?tabid=" + this.TabId);
                 break;
             case bc.Commands.Authorize:
             case bc.Commands.Reverse:
                 if (ExLCDoc != null)
                 {
                     var ExLCDocOld = dbEntities.findExportLCDoc(ExLCDoc.AmendNoOriginal, true);
                     if (commandName.Equals(bc.Commands.Authorize))
                     {
                         if (!ExLCDoc.Amount.HasValue) ExLCDoc.Amount = ExLCDocOld.Amount;
                         if (!string.IsNullOrEmpty(ExLCDoc.Tenor)) ExLCDoc.Tenor = ExLCDocOld.Tenor;
                         ExLCDoc.AmendStatus = bd.TransactionStatus.AUT;
                         //
                         dbEntities.SaveChanges();
                         Response.Redirect("Default.aspx?tabid=" + this.TabId);
                     }
                     else
                     {
                         ExLCDocOld.ActiveRecordFlag = "Yes";
                         //
                         ExLCDoc.AmendStatus = bd.TransactionStatus.REV;
                         ExLCDoc.ActiveRecordFlag = "No";
                         //
                         dbEntities.SaveChanges();
                         Response.Redirect("Default.aspx?tabid=" + this.TabId + "&code=" + tbLCCode.Text);
                     }
                 }
                 break;
         }
         return;
     }
     #endregion Amend
     #region Accept, Reject
     if (TabId == ExportLCDocProcessing.Actions.Reject || TabId == ExportLCDocProcessing.Actions.Accept)
     {
         switch (commandName)
         {
             case bc.Commands.Commit:
                 if (ExLCDoc != null)
                 {
                     if (TabId == ExportLCDocProcessing.Actions.Reject)
                     {
                         ExLCDoc.RejectStatus = bd.TransactionStatus.UNA;
                         ExLCDoc.RejectDate = DateTime.Now;
                     }
                     else
                     {
                         ExLCDoc.AcceptStatus = bd.TransactionStatus.UNA;
                         ExLCDoc.AcceptDate = txtAcceptDate.SelectedDate;
                         ExLCDoc.AcceptRemarks = txtAcceptRemarks.Text;
                     }
                     saveLCDoc(ref ExLCDoc);
                     dbEntities.SaveChanges();
                 }
                 //
                 Response.Redirect("Default.aspx?tabid=" + this.TabId);
                 break;
             case bc.Commands.Authorize:
             case bc.Commands.Reverse:
                 if (ExLCDoc != null)
                 {
                     if (commandName.Equals(bc.Commands.Authorize))
                     {
                         if (TabId == ExportLCDocProcessing.Actions.Reject)
                             ExLCDoc.RejectStatus = bd.TransactionStatus.AUT;
                         else
                             ExLCDoc.AcceptStatus = bd.TransactionStatus.AUT;
                         //
                         dbEntities.SaveChanges();
                         Response.Redirect("Default.aspx?tabid=" + this.TabId);
                     }
                     else
                     {
                         if (TabId == ExportLCDocProcessing.Actions.Reject)
                             ExLCDoc.RejectStatus = bd.TransactionStatus.REV;
                         else
                             ExLCDoc.AcceptStatus = bd.TransactionStatus.REV;
                         //
                         dbEntities.SaveChanges();
                         Response.Redirect("Default.aspx?tabid=" + this.TabId + "&code=" + tbLCCode.Text);
                     }
                 }
                 break;
         }
         return;
     }
     #endregion Accept, Reject
 }