public static DriverCompDataset ReadDriverRoutes(string agentNumber, DateTime startDate, DateTime endDate) { // DriverCompDataset routes = new DriverCompDataset(); DriverCompServiceClient client = null; try { client = new DriverCompServiceClient(); DataSet ds = client.ReadDriverRoutes(agentNumber, startDate, endDate); if (ds.Tables["DriverRouteTable"] != null && ds.Tables["DriverRouteTable"].Rows.Count > 0) { routes.Merge(ds); for (int i = 0; i < routes.DriverRouteTable.Rows.Count; i++) { //Set local fields (i.e. not persisted) DriverCompDataset.DriverRouteTableRow route = (DriverCompDataset.DriverRouteTableRow)routes.DriverRouteTable.Rows[i]; route.IsNew = false; route.IsCombo = (routes.DriverRouteTable.Select("Operator='" + route.Operator + "' AND RouteDate='" + route.RouteDate + "'").Length > 1); route.IsAdjust = route.RouteName.Contains("ADJUST"); } routes.AcceptChanges(); } client.Close(); } catch (TimeoutException te) { client.Abort(); throw new ApplicationException(te.Message); } catch (FaultException <DriverCompensationFault> cfe) { client.Abort(); throw new ApplicationException(cfe.Detail.Message); } catch (FaultException fe) { client.Abort(); throw new ApplicationException(fe.Message); } catch (CommunicationException ce) { client.Abort(); throw new ApplicationException(ce.Message); } return(routes); }
private void applyFSC(DriverCompDataset.DriverRouteTableRow driverRoute, RouteRates rates) { //Calculate FSC if required try { //1. FSC applies only if miles rates are present in the rating if (rates.MileBaseRate > 0 || rates.MileRate > 0) { driverRoute.FSCMiles = driverRoute.Miles; } //2. Copy rates (for reference) driverRoute.FuelCost = this.mFuelCost; driverRoute.FSCGal = FinanceGateway.GetDriverEquipmentMPG(driverRoute.EquipmentTypeID); if (driverRoute.FSCGal <= 0.0M) { throw new ApplicationException("FSCGal (" + driverRoute.FSCGal.ToString() + "MPG) is invalid."); } driverRoute.FSCBaseRate = this.mTerminalConfig.FSBase; //3. Calculate FSC driverRoute.FSC = driverRoute.FSCMiles / driverRoute.FSCGal * (driverRoute.FuelCost - driverRoute.FSCBaseRate); if (driverRoute.FSC < 0) { driverRoute.FSC = 0.0M; } } catch (ApplicationException ex) { throw ex; } catch (Exception ex) { throw new ApplicationException(ex.Message, ex); } }
private void applyRates(DriverCompDataset.DriverRouteTableRow driverRoute, RouteRates rates) { //Apply rates to this route try { //1. Copy rates (for reference) driverRoute.RateTypeID = rates.RateTypeID; driverRoute.MilesBaseRate = rates.MileBaseRate; driverRoute.MilesRate = rates.MileRate; driverRoute.DayRate = rates.DayRate; driverRoute.TripRate = rates.TripRate; driverRoute.StopsRate = rates.StopRate; driverRoute.CartonsRate = rates.CartonRate; driverRoute.PalletsRate = rates.PalletRate; driverRoute.PickupCartonsRate = rates.PickupCartonRate; driverRoute.MinimunAmount = rates.MinimumAmount; //2. Calculate rates ------------------------------------------------------------- //2.1 Standard computations driverRoute.MilesAmount = driverRoute.MilesBaseRate + driverRoute.Miles * driverRoute.MilesRate; driverRoute.DayAmount = driverRoute.DayRate; driverRoute.TripAmount = driverRoute.Trip * driverRoute.TripRate; driverRoute.StopsAmount = driverRoute.Stops * driverRoute.StopsRate; driverRoute.CartonsAmount = driverRoute.Cartons * driverRoute.CartonsRate; driverRoute.PalletsAmount = driverRoute.Pallets * driverRoute.PalletsRate; driverRoute.PickupCartonsAmount = driverRoute.PickupCartons * driverRoute.PickupCartonsRate; //2.2 Override: apply maximums to miles amount based upon trigger field (i.e. Trip, Stops, Cartons, Pallets) if (rates.MaximumAmount > 0) { //Maximum applies: find the MaximumTriggerField and compare it's value to MaximumTriggerValue if (driverRoute[rates.MaximumTriggerField] != null) { int trigVal = Convert.ToInt32(driverRoute[rates.MaximumTriggerField]); if (trigVal < rates.MaximumTriggerValue) { driverRoute.MilesAmount = rates.MaximumAmount; } } } //3. Calculate totals and apply minimum amount decimal total = driverRoute.DayAmount + driverRoute.MilesAmount + driverRoute.TripAmount + driverRoute.StopsAmount + driverRoute.CartonsAmount + driverRoute.PalletsAmount + driverRoute.PickupCartonsAmount; driverRoute.TotalAmount = (total < driverRoute.MinimunAmount) ? driverRoute.MinimunAmount : total; } catch (Exception ex) { throw new ApplicationException(ex.Message, ex); } }
public void ViewCompensation() { //View all rated routes and the associated driver compensation try { //Read all rated routes for specified terminal and date range this.mCompensation.Clear(); this.mCompensation.Merge(FinanceGateway.ReadDriverRoutes(this.mAgentNumber, this.mBeginDate, this.mEndDate)); for (int i = 0; i < this.mCompensation.DriverRouteTable.Rows.Count; i++) { //Build driver compensation for each driver DriverCompDataset.DriverRouteTableRow driverRoute = (DriverCompDataset.DriverRouteTableRow) this.mCompensation.DriverRouteTable.Rows[i]; if (this.mCompensation.DriverCompTable.Select("Operator='" + driverRoute.Operator + "'").Length == 0) { //Create driver compensation for driverRoute.Operator and initialize DriverCompDataset.DriverCompTableRow driverComp = this.mCompensation.DriverCompTable.NewDriverCompTableRow(); #region Set members driverComp.Select = driverRoute.IsExportedNull(); driverComp.IsNew = driverComp.IsCombo = driverComp.IsAdjust = false; driverComp.AgentNumber = driverRoute.AgentNumber; driverComp.FinanceVendorID = driverRoute.FinanceVendorID; driverComp.FinanceVendor = driverRoute.Payee; driverComp.Operator = driverRoute.Operator; //driverComp.EquipmentTypeID = driverRoute.EquipmentTypeID; driverComp.Miles = driverComp.Trip = driverComp.Stops = driverComp.Cartons = driverComp.Pallets = driverComp.PickupCartons = 0; driverComp.MilesAmount = driverComp.DayAmount = driverComp.TripAmount = driverComp.StopsAmount = driverComp.CartonsAmount = driverComp.PalletsAmount = driverComp.PickupCartonsAmount = driverComp.Amount = 0.0M; driverComp.FSCMiles = 0; driverComp.FuelCost = driverComp.FSCGal = driverComp.FSCBaseRate = driverComp.FSC = 0.0M; driverComp.MinimunAmount = driverComp.AdminCharge = driverComp.AdjustmentAmount1 = driverComp.AdjustmentAmount2 = driverComp.TotalAmount = 0.0M; #endregion this.mCompensation.DriverCompTable.AddDriverCompTableRow(driverComp); //Calculate driver compensation for driverRoute.Operator for all rated routes CalculateCompensation(driverRoute.Operator, false); } } this.mCompensation.AcceptChanges(); } catch (ApplicationException ex) { throw ex; } catch (Exception ex) { throw new ApplicationException(ex.Message, ex); } finally { if (this.Changed != null) { this.Changed(this, EventArgs.Empty); } } }
public bool SaveCompensation() { //Save bool result = false; try { //Save all new routes for (int i = 0; i < this.mCompensation.DriverRouteTable.Rows.Count; i++) { //Validate route as new (NULL Import date) if (this.mCompensation.DriverRouteTable[i].IsImportedNull()) { DriverCompDataset.DriverRouteTableRow driverRoute = this.mCompensation.DriverRouteTable[i]; driverRoute.Imported = DateTime.Now; result = FinanceGateway.CreateDriverRoute(driverRoute); } } ViewCompensation(); } catch (ApplicationException ex) { throw ex; } catch (Exception ex) { throw new ApplicationException(ex.Message, ex); } return(result); }
public static bool UpdateDriverRoute(DriverCompDataset.DriverRouteTableRow route) { // bool updated = false; DriverCompServiceClient client = null; try { DriverRoute dr = new DriverRoute(); dr.ID = route.ID; dr.IsNew = !route.IsIsNewNull() ? route.IsNew : false; dr.IsCombo = !route.IsIsComboNull() ? route.IsCombo : false; dr.IsAdjust = !route.IsIsAdjustNull() ? route.IsAdjust : false; dr.AgentNumber = !route.IsAgentNumberNull() ? route.AgentNumber : ""; dr.FinanceVendorID = !route.IsFinanceVendorIDNull() ? route.FinanceVendorID : ""; dr.RouteDate = !route.IsRouteDateNull() ? route.RouteDate : DateTime.MinValue; dr.RouteName = !route.IsRouteNameNull() ? route.RouteName : ""; dr.Operator = !route.IsOperatorNull() ? route.Operator : ""; dr.Payee = !route.IsPayeeNull() ? route.Payee : ""; dr.EquipmentTypeID = !route.IsEquipmentTypeIDNull() ? route.EquipmentTypeID : 0; dr.RateTypeID = !route.IsRateTypeIDNull() ? route.RateTypeID : 0; dr.DayRate = !route.IsDayRateNull() ? route.DayRate : 0.0M; dr.DayAmount = !route.IsDayAmountNull() ? route.DayAmount : 0.0M; dr.Miles = !route.IsMilesNull() ? route.Miles : 0.0M; dr.MilesBaseRate = !route.IsMilesBaseRateNull() ? route.MilesBaseRate : 0.0M; dr.MilesRate = !route.IsMilesRateNull() ? route.MilesRate : 0.0M; dr.MilesAmount = !route.IsMilesAmountNull() ? route.MilesAmount : 0.0M; dr.Trip = !route.IsTripNull() ? route.Trip : 0; dr.TripRate = !route.IsTripRateNull() ? route.TripRate : 0.0M; dr.TripAmount = !route.IsTripAmountNull() ? route.TripAmount : 0.0M; dr.Stops = !route.IsStopsNull() ? route.Stops : 0; dr.StopsRate = !route.IsStopsRateNull() ? route.StopsRate : 0.0M; dr.StopsAmount = !route.IsStopsAmountNull() ? route.StopsAmount : 0.0M; dr.Cartons = !route.IsCartonsNull() ? route.Cartons : 0; dr.CartonsRate = !route.IsCartonsRateNull() ? route.CartonsRate : 0.0M; dr.CartonsAmount = !route.IsCartonsAmountNull() ? route.CartonsAmount : 0.0M; dr.Pallets = !route.IsPalletsNull() ? route.Pallets : 0; dr.PalletsRate = !route.IsPalletsRateNull() ? route.PalletsRate : 0.0M; dr.PalletsAmount = !route.IsPalletsAmountNull() ? route.PalletsAmount : 0.0M; dr.PickupCartons = !route.IsPickupCartonsNull() ? route.PickupCartons : 0; dr.PickupCartonsRate = !route.IsPickupCartonsRateNull() ? route.PickupCartonsRate : 0.0M; dr.PickupCartonsAmount = !route.IsPickupCartonsAmountNull() ? route.PickupCartonsAmount : 0.0M; dr.MinimunAmount = !route.IsMinimunAmountNull() ? route.MinimunAmount : 0.0M; dr.FSCMiles = !route.IsFSCMilesNull() ? route.FSCMiles : 0.0M; dr.FuelCost = !route.IsFuelCostNull() ? route.FuelCost : 0.0M; dr.FSCGal = !route.IsFSCGalNull() ? route.FSCGal : 0.0M; dr.FSCBaseRate = !route.IsFSCBaseRateNull() ? route.FSCBaseRate : 0.0M; dr.FSC = !route.IsFSCNull() ? route.FSC : 0.0M; dr.AdjustmentAmount1 = !route.IsAdjustmentAmount1Null() ? route.AdjustmentAmount1 : 0.0M; dr.AdjustmentAmount1TypeID = !route.IsAdjustmentAmount1TypeIDNull() ? route.AdjustmentAmount1TypeID : ""; dr.AdjustmentAmount2 = !route.IsAdjustmentAmount2Null() ? route.AdjustmentAmount2 : 0.0M; dr.AdjustmentAmount2TypeID = !route.IsAdjustmentAmount2TypeIDNull() ? route.AdjustmentAmount2TypeID : ""; dr.AdminCharge = !route.IsAdminChargeNull() ? route.AdminCharge : 0.0M; dr.TotalAmount = !route.IsTotalAmountNull() ? route.TotalAmount : 0.0M; dr.Imported = !route.IsImportedNull() ? route.Imported : DateTime.MinValue; dr.Exported = !route.IsExportedNull() ? route.Exported : DateTime.MinValue; dr.ArgixRtType = !route.IsArgixRtTypeNull() ? route.ArgixRtType : ""; dr.LastUpdated = DateTime.Now; dr.UserID = Environment.UserName; client = new DriverCompServiceClient(); updated = client.UpdateDriverRoute(dr); client.Close(); } catch (TimeoutException te) { client.Abort(); throw new ApplicationException(te.Message); } catch (FaultException <DriverCompensationFault> cfe) { client.Abort(); throw new ApplicationException(cfe.Detail.Message); } catch (FaultException fe) { client.Abort(); throw new ApplicationException(fe.Message); } catch (CommunicationException ce) { client.Abort(); throw new ApplicationException(ce.Message); } return(updated); }
public bool UpdateCompensation() { //Update bool result = false; try { //Updated routes DriverCompDataset driverRoutes = (DriverCompDataset)this.mCompensation.GetChanges(DataRowState.Modified); if (driverRoutes != null && driverRoutes.DriverRouteTable.Rows.Count > 0) { //Update all modified driver compensations foreach (DriverCompDataset.DriverRouteTableRow driverRoute in driverRoutes.DriverRouteTable.Rows) { try { driverRoute.LastUpdated = DateTime.Now; driverRoute.UserID = Environment.UserName; result = FinanceGateway.UpdateDriverRoute(driverRoute); if (result) { driverRoute.AcceptChanges(); } else { driverRoute.RejectChanges(); } } catch (Exception) { driverRoute.RejectChanges(); System.Windows.Forms.MessageBox.Show("Failed to update route (" + driverRoute.RouteDate.ToShortDateString() + ", " + driverRoute.Operator, "Route Update", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); } } } //Deleted routes- need to re-assess fees and bonus driverRoutes = (DriverCompDataset)this.mCompensation.GetChanges(DataRowState.Deleted); if (driverRoutes != null && driverRoutes.DriverRouteTable.Rows.Count > 0) { //Delete all deleted driverRoutes DriverCompDataset.DriverRouteTableRow driverRoute = null; for (int i = driverRoutes.DriverRouteTable.Rows.Count - 1; i >= 0; i--) { try { driverRoute = (DriverCompDataset.DriverRouteTableRow)driverRoutes.DriverRouteTable.Rows[i]; driverRoute.RejectChanges(); if (!driverRoute.IsImportedNull()) { result = FinanceGateway.DeleteDriverRoute(driverRoute.ID); } else { result = true; } if (result) { driverRoute.Delete(); driverRoute.AcceptChanges(); } } catch (Exception) { System.Windows.Forms.MessageBox.Show("Failed to update route (" + driverRoute.RouteDate.ToShortDateString() + ", " + driverRoute.Operator, "Route Update", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); } } } this.mCompensation.AcceptChanges(); ImportRoutes(); } catch (Exception ex) { this.mCompensation.RejectChanges(); throw new ApplicationException(ex.Message, ex); } return(result); }
public void CalculateCompensation(string _operator, bool validateRouteRatings) { //Calculate driver compensation for the specified operator try { //Find the driver compensation and driver routes for the specified operator from the data cache DriverCompDataset.DriverCompTableRow[] driverComps = (DriverCompDataset.DriverCompTableRow[]) this.mCompensation.DriverCompTable.Select("Operator='" + _operator + "'"); DriverCompDataset.DriverRouteTableRow[] driverRoutes = (DriverCompDataset.DriverRouteTableRow[]) this.mCompensation.DriverRouteTable.Select("Operator='" + _operator + "'"); //Reset driver compensation for this operator if (driverComps.Length > 1) { throw new ApplicationException("When calculating compensation for " + _operator + ", " + driverComps.Length.ToString() + " records were found."); } DriverCompDataset.DriverCompTableRow driverComp = driverComps[0]; driverComp.IsNew = driverComp.IsCombo = driverComp.IsAdjust = false; driverComp.Miles = driverComp.Trip = driverComp.Stops = driverComp.Cartons = driverComp.Pallets = driverComp.PickupCartons = 0; driverComp.MilesAmount = driverComp.DayAmount = driverComp.TripAmount = driverComp.StopsAmount = driverComp.CartonsAmount = driverComp.PalletsAmount = driverComp.PickupCartonsAmount = driverComp.Amount = 0.0M; driverComp.FSC = 0.0M; driverComp.MinimunAmount = driverComp.AdminCharge = driverComp.AdjustmentAmount1 = driverComp.AdjustmentAmount2 = driverComp.TotalAmount = 0.0M; if (validateRouteRatings) { //Re-assess fees and bonus for this driver applyFees(_operator); applyBonus(_operator); } //Compute driver compensation for this operator from all rated routes for (int i = 0; i < driverRoutes.Length; i++) { DriverCompDataset.DriverRouteTableRow driverRoute = driverRoutes[i]; #region Sum all driver routes driverComp.IsNew = driverRoute.IsNew ? true : driverComp.IsNew; driverComp.IsCombo = driverRoute.IsCombo ? true : driverComp.IsCombo; driverComp.IsAdjust = driverRoute.IsAdjust ? true : driverComp.IsAdjust; driverComp.Miles += driverRoute.Miles; driverComp.MilesAmount += driverRoute.MilesAmount; driverComp.DayAmount += driverRoute.DayAmount; driverComp.Trip += driverRoute.Trip; driverComp.TripAmount += driverRoute.TripAmount; driverComp.Stops += driverRoute.Stops; driverComp.StopsAmount += driverRoute.StopsAmount; driverComp.Cartons += driverRoute.Cartons; driverComp.CartonsAmount += driverRoute.CartonsAmount; driverComp.Pallets += driverRoute.Pallets; driverComp.PalletsAmount += driverRoute.PalletsAmount; driverComp.PickupCartons += driverRoute.PickupCartons; driverComp.PickupCartonsAmount += driverRoute.PickupCartonsAmount; driverComp.FSCMiles += driverRoute.FSCMiles; driverComp.FSCGal = driverRoute.FSCGal; driverComp.FuelCost = driverRoute.FuelCost; driverComp.FSCBaseRate = this.mTerminalConfig.FSBase; driverComp.FSC += driverRoute.FSC; driverComp.MinimunAmount = driverRoute.MinimunAmount; driverComp.AdminCharge += driverRoute.AdminCharge; driverComp.AdjustmentAmount1 += driverRoute.AdjustmentAmount1; driverComp.AdjustmentAmount2 += driverRoute.AdjustmentAmount2; //driverComp.AdjustmentAmount3 += driverRoute.AdjustmentAmount3; driverComp.Amount += driverRoute.TotalAmount; #endregion } //Compute totals driverComp.TotalAmount = driverComp.Amount + driverComp.FSC + driverComp.AdjustmentAmount1 + driverComp.AdjustmentAmount2; } catch (ApplicationException ex) { throw ex; } catch (Exception ex) { throw new ApplicationException(ex.Message, ex); } }
public void CreateCompensation() { //Add all new (selected) imported routes to the driver compensation try { for (int i = 0; i < this.mRoutes.RoadshowRouteTable.Rows.Count; i++) { //Check if a new route (i.e. selected by user) DriverCompDataset.RoadshowRouteTableRow route = this.mRoutes.RoadshowRouteTable[i]; if (route.New) { //Validate route depot matches this agent if (route.DepotNumber.ToString("0000") == this.mAgentNumber) { //Add driver compensation (parent) record if required if (this.mCompensation.DriverCompTable.Select("Operator='" + route.Operator + "'").Length == 0) { //Add a driver compensation for this operator DriverCompDataset.DriverCompTableRow driverComp = this.mCompensation.DriverCompTable.NewDriverCompTableRow(); #region Initialize members driverComp.Select = true; driverComp.IsNew = driverComp.IsCombo = driverComp.IsAdjust = false; driverComp.AgentNumber = route.DepotNumber.ToString("0000"); driverComp.FinanceVendorID = (!route.IsFinanceVendIDNull() ? route.FinanceVendID : "00000"); driverComp.FinanceVendor = (!route.IsPayeeNull() ? route.Payee : ""); driverComp.Operator = route.Operator; //driverComp.EquipmentTypeID = route.EquipmentID; driverComp.Miles = driverComp.Trip = driverComp.Stops = driverComp.Cartons = driverComp.Pallets = driverComp.PickupCartons = 0; driverComp.MilesAmount = driverComp.DayAmount = driverComp.TripAmount = driverComp.StopsAmount = driverComp.CartonsAmount = driverComp.PalletsAmount = driverComp.PickupCartonsAmount = driverComp.Amount = 0.0M; driverComp.FSCMiles = 0; driverComp.FuelCost = driverComp.FSCGal = driverComp.FSCBaseRate = driverComp.FSC = 0.0M; driverComp.MinimunAmount = driverComp.AdminCharge = driverComp.AdjustmentAmount1 = driverComp.AdjustmentAmount2 = driverComp.TotalAmount = 0.0M; #endregion this.mCompensation.DriverCompTable.AddDriverCompTableRow(driverComp); } //Validate driver route doesn't exist; add if doesn't exist if (this.mCompensation.DriverRouteTable.Select("Operator='" + route.Operator + "' AND RouteDate='" + route.Rt_Date + "' AND RouteName='" + route.Rt_Name + "'").Length == 0) { //Create a driver route from the Roadshow route DriverCompDataset.DriverRouteTableRow driverRoute = this.mCompensation.DriverRouteTable.NewDriverRouteTableRow(); #region Set members driverRoute.ID = 0; driverRoute.IsNew = false; driverRoute.IsCombo = (this.mRoutes.RoadshowRouteTable.Select("Operator='" + route.Operator + "' AND Rt_Date='" + route.Rt_Date + "'").Length > 1); driverRoute.IsAdjust = route.Rt_Name.Contains("ADJUST"); driverRoute.AgentNumber = route.DepotNumber.ToString("0000"); driverRoute.FinanceVendorID = (!route.IsFinanceVendIDNull() ? route.FinanceVendID : "00000"); driverRoute.EquipmentTypeID = route.EquipmentID; driverRoute.RouteIndex = route.RouteIndex; driverRoute.RouteDate = route.Rt_Date; driverRoute.RouteName = route.Rt_Name; driverRoute.Operator = route.Operator; driverRoute.OperatorHireDate = route.OperatorHireDate; driverRoute.Payee = (!route.IsPayeeNull() ? route.Payee : ""); driverRoute.RateTypeID = RouteRates.RATETYPE_NONE; driverRoute.Miles = (!route.IsTtlMilesNull()) ? route.TtlMiles : 0; driverRoute.MilesBaseRate = 0.0M; driverRoute.MilesRate = 0.0M; driverRoute.MilesAmount = 0.0M; driverRoute.DayRate = 0.0M; driverRoute.DayAmount = 0.0M; driverRoute.Trip = (!route.IsMultiTrpNull()) ? route.MultiTrp : 0; driverRoute.TripRate = 0.0M; driverRoute.TripAmount = 0.0M; driverRoute.Stops = (!route.IsUniqueStopsNull()) ? route.UniqueStops : 0; driverRoute.StopsRate = 0.0M; driverRoute.StopsAmount = 0.0M; driverRoute.Cartons = (!route.IsDelCtnsNull()) ? (int)route.DelCtns : 0; driverRoute.CartonsRate = 0.0M; driverRoute.CartonsAmount = 0.0M; driverRoute.Pallets = (!route.IsDelPltsorRcksNull()) ? (int)route.DelPltsorRcks : 0; driverRoute.PalletsRate = 0.0M; driverRoute.PalletsAmount = 0.0M; driverRoute.PickupCartons = (!route.IsRtnCtnNull()) ? (int)route.RtnCtn : 0; driverRoute.PickupCartonsRate = 0.0M; driverRoute.PickupCartonsAmount = 0.0M; driverRoute.FSCMiles = 0; driverRoute.FSCGal = 0.0M; driverRoute.FSCBaseRate = 0.0M; driverRoute.FSC = 0.0M; driverRoute.MinimunAmount = 0.0M; driverRoute.AdminCharge = 0.0M; driverRoute.AdjustmentAmount1 = 0.0M; driverRoute.AdjustmentAmount1TypeID = ""; driverRoute.AdjustmentAmount2 = 0.0M; driverRoute.AdjustmentAmount2TypeID = ""; driverRoute.TotalAmount = 0.0M; //driverRoute.Imported = ; //driverRoute.Exported = ; driverRoute.ArgixRtType = route.ArgixRtType; driverRoute.LastUpdated = DateTime.Today; driverRoute.UserID = Environment.UserName; #endregion //Apply rates and FSC to the current route RouteRates rates = this.mRates.GetRates(driverRoute.EquipmentTypeID, driverRoute.RouteName, driverRoute.Miles); if (!driverRoute.IsAdjust) { applyRates(driverRoute, rates); } applyFSC(driverRoute, rates); //Add route to rated routes this.mCompensation.DriverRouteTable.AddDriverRouteTableRow(driverRoute); //Apply fees to the current route based upon all routes for this driver applyFees(route.Operator); //Apply bonus to the current route based upon all routes for this driver applyBonus(route.Operator); //Update driver compensation for all routes for the current driver CalculateCompensation(route.Operator, false); } else { //Route exists MessageBox.Show("Route exists for " + route.Operator + " on " + route.Rt_Date.ToShortDateString()); } route.New = false; } else { //Wrong terminal System.Windows.Forms.MessageBox.Show("Route " + route.Rt_Name + " belongs to " + route.Depot + " terminal."); } } } SaveCompensation(); ImportRoutes(); } catch (ApplicationException ex) { throw ex; } catch (Exception ex) { throw new ApplicationException(ex.Message, ex); } }