void grdPaymentHistory_CommandCellClick(object sender, EventArgs e) { try { GridCommandCellElement gridCell = (GridCommandCellElement)sender; if (gridCell.ColumnInfo.Name.ToLower() == "btndelete") { if (DialogResult.Yes == RadMessageBox.Show("Are you sure you want to delete a Record ? ", "", MessageBoxButtons.YesNo, RadMessageIcon.Question)) { long Id = grdPaymentHistory.CurrentRow.Cells["Id"].Value.ToLong(); if (grdPaymentHistory.CurrentRow != null && grdPaymentHistory.CurrentRow is GridViewDataRowInfo) { if (grdPaymentHistory.Rows.Count > 1 && Id < grdPaymentHistory.Rows.Where(c => c.Index != grdPaymentHistory.CurrentRow.Index) .OrderByDescending((c => c.Cells["Id"].Value.ToLong())).FirstOrDefault().Cells["Id"].Value.ToLong()) { ENUtils.ShowMessage("Expenses History will be Delete in Reverse Order"); return; } } string Type = grdPaymentHistory.CurrentRow.Cells[COLS.Type].Value.ToStr().ToLower(); decimal Amount = grdPaymentHistory.CurrentRow.Cells[COLS.Amount].Value.ToDecimal(); decimal CurrentBalance = numCurrBalance.Value.ToDecimal(); grdPaymentHistory.CurrentRow.Delete(); if (Type == "credit") { //if (CurrentBalance > 0) //{ numCurrBalance.Value = (CurrentBalance - Amount); } else { //if (CurrentBalance > 0) //{ numCurrBalance.Value = (CurrentBalance + Amount); } objDriverRent.GetByPrimaryKey(RentId); objDriverRent.Edit(); objDriverRent.Current.Balance = numCurrBalance.Value.ToDecimal(); objDriverRent.Save(); using (TaxiDataContext db = new TaxiDataContext()) { var query = db.Fleet_DriverRentExpenses.Single(c => c.Id == Id); db.Fleet_DriverRentExpenses.DeleteOnSubmit(query); db.SubmitChanges(); } DisplayRecord(); } } } catch (Exception ex) { ENUtils.ShowMessage(ex.Message); } }
private bool OnSave(int DriverId, decimal oldBalance, decimal DriverRent, decimal pdaRent, decimal InitialBalance, decimal rentPayValue, ref decimal accJobs, ref long transId, ref decimal rentDue, ref decimal currBalance) { bool IsSaved = false; try { bool RentForProcessedJobs = AppVars.objPolicyConfiguration.RentForProcessedJobs.ToBool(); //var list = (from b in list1 // join c in list2 on b.Id equals c.BookingId into table2 // from c in table2.DefaultIfEmpty() // where (c == null) // select new var rentList = General.GetGeneralList <DriverRent_Charge>(c => c.BookingId != null && c.TransId != null); Expression <Func <Booking, bool> > _exp = null; if (AppVars.objPolicyConfiguration.PickBookingOnInvoicingType.ToInt() == 2) { _exp = c => c.CompanyId != null && ((c.PaymentTypeId != Enums.PAYMENT_TYPES.CASH && c.BookingStatusId == Enums.BOOKINGSTATUS.NOPICKUP) || c.BookingStatusId == Enums.BOOKINGSTATUS.DISPATCHED) && (c.FareRate != null) && ((RentForProcessedJobs == true && (c.IsProcessed != null && c.IsProcessed == true)) || (RentForProcessedJobs == false && (c.IsProcessed == null || c.IsProcessed == false))) && (c.DriverId == DriverId) && (c.PickupDateTime.Value.Date >= dtpFromDate.Value.Value.Date && c.PickupDateTime.Value.Date <= dtpTillDate.Value.Value.Date); } else { _exp = c => c.CompanyId != null && c.BookingStatusId == Enums.BOOKINGSTATUS.DISPATCHED && (c.FareRate != null) && ((RentForProcessedJobs == true && (c.IsProcessed != null && c.IsProcessed == true)) || (RentForProcessedJobs == false && (c.IsProcessed == null || c.IsProcessed == false))) && (c.DriverId == DriverId) && (c.PickupDateTime.Value.Date >= dtpFromDate.Value.Value.Date && c.PickupDateTime.Value.Date <= dtpTillDate.Value.Value.Date); } var list2 = (from a in General.GetGeneralList <Booking>(_exp) join b in rentList on a.Id equals b.BookingId into table2 from b in table2.DefaultIfEmpty() where (b == null) select new { Id = a.Id, TotalFare = a.FareRate.ToDecimal() + a.CongtionCharges.ToDecimal() + a.MeetAndGreetCharges.ToDecimal(), // TotalCharges = a.TotalCharges, CompanyId = a.CompanyId, AccountTypeId = a.Gen_Company.AccountTypeId, DriverCommissionAmount = a.DriverCommission, DriverCommissionType = a.DriverCommissionType, IsCommissionWise = a.IsCommissionWise }).ToList(); //if (list2.Count == 0) // return false; objMaster = new DriverRentBO(); objMaster.New(); List <DriverRent_Charge> ListDetail = (from a in list2 select new DriverRent_Charge { //Id = a.Id, TransId = objMaster.Current.Id, BookingId = a.Id }).ToList(); decimal Total = list2.Sum(c => c.TotalFare).ToDecimal(); decimal ACCJobsTotal = list2.Where(c => c.CompanyId != null && c.AccountTypeId.ToInt() == Enums.ACCOUNT_TYPE.ACCOUNT) .Sum(c => c.TotalFare).ToDecimal(); decimal ACCCashJobsAmountTotal = list2.Where(c => c.CompanyId != null && c.AccountTypeId.ToInt() == Enums.ACCOUNT_TYPE.CASH && c.IsCommissionWise.ToBool() && c.DriverCommissionType.ToStr().Trim() == "Amount") .Sum(c => c.DriverCommissionAmount.ToDecimal()).ToDecimal(); decimal ACCCashJobsPercentTotal = list2.Where(c => c.CompanyId != null && c.AccountTypeId.ToInt() == Enums.ACCOUNT_TYPE.CASH && c.IsCommissionWise.ToBool() && c.DriverCommissionType.ToStr().Trim() == "Percent") .Sum(c => (c.DriverCommissionAmount.ToDecimal() * 100) / c.TotalFare).ToDecimal(); objMaster.Current.JobsTotal = ACCJobsTotal; accJobs = ACCJobsTotal; decimal owed = ACCJobsTotal - (DriverRent + pdaRent + (ACCCashJobsAmountTotal + ACCCashJobsPercentTotal)); owed = owed + oldBalance; rentDue = owed; // decimal balance = owed;// +payment; currBalance = owed + rentPayValue.ToDecimal(); objMaster.Current.RentPay = rentPayValue.ToDecimal(); objMaster.Current.Balance = currBalance;//RentPay - DriverRent; objMaster.Current.DriverRent1 = DriverRent; // add pda rent objMaster.Current.PDARent = pdaRent; objMaster.Current.AddBy = AppVars.LoginObj.LuserId.ToInt(); objMaster.Current.AddLog = AppVars.LoginObj.LoginName.ToStr(); objMaster.Current.AddOn = DateTime.Now; objMaster.Current.TransDate = DateTime.Now; //dtpTransactionDate.Value.ToDateTime(); objMaster.Current.DriverId = DriverId; //ddlDriver.SelectedValue.ToIntorNull(); objMaster.Current.OldBalance = oldBalance;// (CurrentBalance - RentPay); objMaster.Current.FromDate = dtpFromDate.Value.ToDate(); objMaster.Current.ToDate = dtpTillDate.Value.ToDate(); objMaster.Current.TransFor = "Weekly";//ddlDayWise.SelectedText.ToStr(); objMaster.Current.Fuel = 0; //Fuel.ToDecimal(); objMaster.Current.Extra = 0; // Extra.ToDecimal(); string[] skipProperties = { "DriverRent", "Booking" }; IList <DriverRent_Charge> savedList = objMaster.Current.DriverRent_Charges; var list = objMaster.Current.DriverRent_Charges.ToList(); Utils.General.SyncChildCollection(ref savedList, ref ListDetail, "Id", skipProperties); objMaster.Save(); IsSaved = true; transId = objMaster.Current.Id; } catch (Exception ex) { if (objMaster.Errors.Count > 0) { ENUtils.ShowMessage(objMaster.ShowErrors()); } else { ENUtils.ShowMessage(ex.Message); } } return(IsSaved); }