private void btnEditOldDue_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         if (dMember_Code != 0)
         {
             ArrearPreMaster mst = (from mas in db.ArrearPreMasters where mas.MemberCode == dMember_Code select mas).FirstOrDefault();
             if (mst != null)
             {
                 frmArrearDueList frm = new frmArrearDueList(dMember_Code, "PreArrear", txtMemberType.Text, txtMemberName.Text, txtMemberNo.Text);
                 this.Close();
                 frm.ShowDialog();
             }
             else
             {
                 MessageBox.Show("No Data Found!");
                 txtMemberNo.Focus();
             }
         }
         else
         {
             MessageBox.Show("Please Enter the Membership No!");
             txtMemberNo.Focus();
         }
     }
     catch (Exception ex)
     {
         ExceptionLogging.SendErrorToText(ex);
     }
 }
        private void btnSave_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                bValidation = false;
                BeforeUpdate();
                if (bValidation == false)
                {
                    MASTERMEMBER mmMst = (from mas in db.MASTERMEMBERs where mas.MEMBER_CODE == dMember_Code select mas).FirstOrDefault();

                    if (bUpdate == false)
                    {
                        DataView dv = new DataView(dtArrearPre);
                        dv.RowFilter = "AMOUNT>0";
                        int iTotalDuePay = dv.Count;

                        ArrearPreMaster arrearMaster = new ArrearPreMaster
                        {
                            MemberCode = dMember_Code,
                            EntryDate = DateTime.Now,
                            BeforeLastPaymentDate = mmMst.LASTPAYMENT_DATE,
                            BeforeTotalBF = mmMst.ACCBF,
                            BeforeTotalSubscription = mmMst.ACCSUBSCRIPTION,
                            BeforeTotalMonthsPaid = Convert.ToInt32(mmMst.TOTALMONTHSPAID),
                            TotalDuePay = iTotalDuePay,
                            UpdatedStatus="Not Updated"
                        };
                        db.ArrearPreMasters.Add(arrearMaster);
                        db.SaveChanges();

                        var NewData = new JSonHelper().ConvertObjectToJSon(arrearMaster);
                        AppLib.EventHistory(this.Tag.ToString(), 0, "", NewData, "ArrearPreMaster");

                        DataTable dtTemp = new DataTable();
                        dtTemp = ((DataView)dgArrearPre.ItemsSource).ToTable();
                        var iMasterId = Convert.ToInt32(db.ArrearPreMasters.Max(x => x.ID));

                        List<ArrearPreDetail> lstArrearDtl = new List<ArrearPreDetail>();                                         

                        foreach (DataRow row in dtTemp.Rows)
                        {
                            if (Convert.ToDecimal(row["AMOUNT"]) != 0)
                            {
                                ArrearPreDetail arrearDtl = new ArrearPreDetail
                                {
                                    MasterId = iMasterId,
                                    Year = Convert.ToInt32(row["YEAR"]),
                                    Month = Convert.ToDateTime("1/" + row["MONTH"] + row["YEAR"]).Month,
                                    TotalAmount = Convert.ToDecimal(row["AMOUNT"]),
                                    AmounBF = Convert.ToDecimal(row["BF"]),
                                    AmountSubscription = Convert.ToDecimal(row["SUBSCRIPTION"]),
                                    UpdatedStatus = "Not Updated",                                    
                                    MemberCode = Convert.ToInt32(dMember_Code)
                                };

                                lstArrearDtl.Add(arrearDtl);                                                           
                            }
                        }

                        if (lstArrearDtl.Count > 0)
                        {
                            db.ArrearPreDetails.AddRange(lstArrearDtl);
                            db.SaveChanges();

                            var NewData1 = new JSonHelper().ConvertObjectToJSon(lstArrearDtl);
                            AppLib.EventHistory(this.Tag.ToString(), 0, "", NewData1, "ArrearPreDetail");
                        }
                       

                        MessageBox.Show("Details are Saved Sucessfully");
                        fClear();
                    }
                    else
                    {
                        ArrearPreMaster mst = (from mas in db.ArrearPreMasters where mas.ID == iArrearMst_ID select mas).FirstOrDefault();
                        var OldData = new JSonHelper().ConvertObjectToJSon(mst);
                        if (mst != null)
                        {
                            mst.UpdatedEntryDate = DateTime.Now;
                            mst.IsEdited = true;
                        }
                        db.SaveChanges();

                        var NewData = new JSonHelper().ConvertObjectToJSon(mst);
                        AppLib.EventHistory(this.Tag.ToString(), 1, OldData, NewData, "ArrearPreMaster");

                        ArrearPreDetail dtl = (from mas in db.ArrearPreDetails where mas.MasterId == iArrearMst_ID select mas).FirstOrDefault();
                        var OldData1 = new JSonHelper().ConvertObjectToJSon(dtl);
                        if (dtl != null)
                        {
                            db.ArrearPreDetails.RemoveRange(db.ArrearPreDetails.Where(x => x.MasterId == iArrearMst_ID));
                            db.SaveChanges();
                        }                      

                        DataTable dtTemp = new DataTable();
                        dtTemp = ((DataView)dgArrearPre.ItemsSource).ToTable();

                        List<ArrearPreDetail> lstArrearDtl = new List<ArrearPreDetail>();                       

                        foreach (DataRow row in dtTemp.Rows)
                        {
                            if (Convert.ToDecimal(row["AMOUNT"]) != 0)
                            {
                                ArrearPreDetail arrearDtl = new ArrearPreDetail
                                {
                                    MasterId = iArrearMst_ID,
                                    Year = Convert.ToInt32(row["YEAR"]),
                                    Month = Convert.ToDateTime("1/" + row["MONTH"] + row["YEAR"]).Month,
                                    TotalAmount = Convert.ToDecimal(row["AMOUNT"]),
                                    AmounBF = Convert.ToDecimal(row["BF"]),
                                    AmountSubscription = Convert.ToDecimal(row["SUBSCRIPTION"]),
                                    UpdatedStatus = "Not Updated",                                   
                                    MemberCode = Convert.ToInt32(dMember_Code)
                                };
                                lstArrearDtl.Add(arrearDtl);                               
                            }
                        }

                        if (lstArrearDtl.Count > 0)
                        {
                            db.ArrearPreDetails.AddRange(lstArrearDtl);
                            db.SaveChanges();

                            var NewData1 = new JSonHelper().ConvertObjectToJSon(lstArrearDtl);
                            AppLib.EventHistory(this.Tag.ToString(), 1, OldData1, NewData1, "ArrearPreDetail");
                        }                       

                        MessageBox.Show("Details are Updated Sucessfully");
                        fClear();
                    }
                }
            }
            catch (Exception ex)
            {
                ExceptionLogging.SendErrorToText(ex);
            }
        }