private string formatAdminRecord(PayPeriod payPeriod, DriverCompDS.DriverCompTableRow comp, decimal adminFee) { // #region Admin record //All fields fixed 12 position and left justified //022 13418 09/13/08 AD091308 Ad 012 08 -10.00 18516000 N //------------============------------============------------============------------============------------============------------============------------ //| | | | | | | | | | | | | //a b c d e f g h i j k l m //a) Company Code [12]; always 022 //b) VendorFinanceID [12]; //c) Date [12, MM/dd/yyyy]; //d) Invoice# [12, AD + Date(MMddyy)]; //e) Desc1 [12]; always blank //f) Desc2 [12]; always blank //g) Desc3 [12]; always blank //h) Desc4 [12]; always blank //i) Pay period month [12, mm]; //j) Pay period year [12, yy]; //k) Admin amount [12]; //l) General LG# [12]; //m) TaxID [12]; always N #endregion string s = ""; try { s = "022".PadRight(12, ' ') + comp.FinanceVendorID.PadRight(12, ' ').Substring(0, 12) + this.EndDate.ToString("MM/dd/yy").PadRight(12, ' ').Substring(0, 12) + "AD" + this.EndDate.ToString("MMddyy").PadRight(10, ' ').Substring(0, 10) + "".PadRight(12, ' ').Substring(0, 12) + "".PadRight(12, ' ').Substring(0, 12) + "".PadRight(12, ' ').Substring(0, 12) + "".PadRight(12, ' ').Substring(0, 12) + payPeriod.Month.PadLeft(3, '0').PadRight(12, ' ').Substring(0, 12) + payPeriod.Year.Substring(2, 2).PadRight(12, ' ').Substring(0, 12) + adminFee.ToString("#0.00").PadRight(12, ' ').Substring(0, 12) + this.mTerminalConfig.AdminGLNumber.PadRight(12, ' ').Substring(0, 12) + "N".PadRight(12, ' ').Substring(0, 12); } catch (Exception ex) { throw new ApplicationException("Unexpected error while formatting trailer export string.", ex); } return(s); }
public void RefreshDriverRoutes() { //Add all driver routes (from database) to the compensation try { this.mCompDS.Clear(); this.mCompDS.DriverRouteTable.BeginLoadData(); DriverCompDS routes = readDriverRoutes(); for (int i = 0; i < routes.DriverRouteTable.Rows.Count; i++) { //Iterate through each saved route and build the viewable dataset (this.mCompDS) DriverCompDS.DriverRouteTableRow _route = (DriverCompDS.DriverRouteTableRow)routes.DriverRouteTable.Rows[i]; if (this.mCompDS.DriverCompTable.Select("Operator='" + _route.Operator + "'").Length == 0) { //Operator not added yet- add the summary record for this operator DriverCompDS.DriverCompTableRow sumComp = this.mCompDS.DriverCompTable.NewDriverCompTableRow(); #region Set members sumComp.Select = _route.IsExportedNull(); sumComp.IsNew = sumComp.IsCombo = sumComp.IsAdjust = false; sumComp.AgentNumber = _route.AgentNumber; sumComp.FinanceVendorID = _route.FinanceVendorID; sumComp.FinanceVendor = _route.Payee; sumComp.Operator = _route.Operator; //sumComp.EquipmentTypeID = _route.EquipmentTypeID; sumComp.Miles = sumComp.Trip = sumComp.Stops = sumComp.Cartons = sumComp.Pallets = sumComp.PickupCartons = 0; sumComp.MilesAmount = sumComp.DayAmount = sumComp.TripAmount = sumComp.StopsAmount = sumComp.CartonsAmount = sumComp.PalletsAmount = sumComp.PickupCartonsAmount = sumComp.Amount = 0.0M; sumComp.FSCMiles = 0; sumComp.FuelCost = sumComp.FSCGal = sumComp.FSCBaseRate = sumComp.FSC = 0.0M; sumComp.MinimunAmount = sumComp.AdminCharge = sumComp.AdjustmentAmount1 = sumComp.AdjustmentAmount2 = sumComp.TotalAmount = 0.0M; #endregion this.mCompDS.DriverCompTable.AddDriverCompTableRow(sumComp); //Add all routes for this operator DriverCompDS.DriverRouteTableRow[] _routes = (DriverCompDS.DriverRouteTableRow[])routes.DriverRouteTable.Select("AgentNumber=" + _route.AgentNumber + " AND Operator='" + _route.Operator + "'"); for (int j = 0; j < _routes.Length; j++) { DriverCompDS.DriverRouteTableRow dayComp = this.mCompDS.DriverRouteTable.NewDriverRouteTableRow(); #region Set members dayComp.ID = _routes[j].ID; dayComp.IsNew = _routes[j].IsNew; dayComp.IsCombo = (routes.DriverRouteTable.Select("Operator='" + _route.Operator + "' AND RouteDate='" + _routes[j].RouteDate + "'").Length > 1); dayComp.IsAdjust = _routes[j].RouteName.Contains("ADJUST"); dayComp.AgentNumber = _routes[j].AgentNumber; dayComp.FinanceVendorID = _routes[j].FinanceVendorID; dayComp.EquipmentTypeID = _routes[j].EquipmentTypeID; dayComp.RouteDate = _routes[j].RouteDate; dayComp.RouteName = _routes[j].RouteName; dayComp.Operator = _routes[j].Operator; dayComp.Payee = _routes[j].Payee; dayComp.RateTypeID = _routes[j].RateTypeID; dayComp.Miles = _routes[j].Miles; dayComp.MilesBaseRate = _routes[j].MilesBaseRate; dayComp.MilesRate = _routes[j].MilesRate; dayComp.MilesAmount = _routes[j].MilesAmount; dayComp.DayRate = _routes[j].DayRate; dayComp.DayAmount = _routes[j].DayAmount; dayComp.Trip = _routes[j].Trip; dayComp.TripRate = _routes[j].TripRate; dayComp.TripAmount = _routes[j].TripAmount; dayComp.Stops = _routes[j].Stops; dayComp.StopsRate = _routes[j].StopsRate; dayComp.StopsAmount = _routes[j].StopsAmount; dayComp.Cartons = _routes[j].Cartons; dayComp.CartonsRate = _routes[j].CartonsRate; dayComp.CartonsAmount = _routes[j].CartonsAmount; dayComp.Pallets = _routes[j].Pallets; dayComp.PalletsRate = _routes[j].PalletsRate; dayComp.PalletsAmount = _routes[j].PalletsAmount; dayComp.PickupCartons = _routes[j].PickupCartons; dayComp.PickupCartonsRate = _routes[j].PickupCartonsRate; dayComp.PickupCartonsAmount = _routes[j].PickupCartonsAmount; dayComp.FSCMiles = _routes[j].IsFSCMilesNull() ? 0 : _routes[j].FSCMiles; dayComp.FuelCost = _routes[j].FuelCost; dayComp.FSCGal = _routes[j].FSCGal; dayComp.FSCBaseRate = _routes[j].FSCBaseRate; dayComp.FSC = _routes[j].FSC; dayComp.MinimunAmount = _routes[j].MinimunAmount; dayComp.AdminCharge = _routes[j].AdminCharge; dayComp.AdjustmentAmount1 = _routes[j].AdjustmentAmount1; dayComp.AdjustmentAmount1TypeID = _routes[j].AdjustmentAmount1TypeID; dayComp.AdjustmentAmount2 = _routes[j].AdjustmentAmount2; dayComp.AdjustmentAmount2TypeID = _routes[j].AdjustmentAmount2TypeID; dayComp.TotalAmount = _routes[j].TotalAmount; dayComp.Imported = _routes[j].Imported; if (!_routes[j].IsExportedNull()) { dayComp.Exported = _routes[j].Exported; } dayComp.LastUpdated = _routes[j].LastUpdated; dayComp.UserID = _routes[j].UserID; #endregion this.mCompDS.DriverRouteTable.AddDriverRouteTableRow(dayComp); } //Compute summary compensation UpdateSummary(_route.Operator); } } this.mCompDS.AcceptChanges(); this.mCompDS.DriverRouteTable.EndLoadData(); } catch (ApplicationException ex) { throw ex; } catch (Exception ex) { throw new ApplicationException("Unexpected error...", ex); } finally { if (this.DriverRoutesChanged != null) { this.DriverRoutesChanged(this, EventArgs.Empty); } } }
public void UpdateSummary(string _operator) { //Update summary compensation for the specified operator try { //Find the summary and daily routes for the specified operator DriverCompDS.DriverCompTableRow[] sumComps = (DriverCompDS.DriverCompTableRow[]) this.mCompDS.DriverCompTable.Select("Operator='" + _operator + "'"); DriverCompDS.DriverRouteTableRow[] dayComps = (DriverCompDS.DriverRouteTableRow[]) this.mCompDS.DriverRouteTable.Select("Operator='" + _operator + "'"); //Reset summary fields if (sumComps.Length > 1) { throw new ApplicationException("When calculating compensation for " + _operator + ", " + sumComps.Length.ToString() + " summary recordS were found."); } DriverCompDS.DriverCompTableRow sumComp = sumComps[0]; sumComp.IsNew = sumComp.IsCombo = sumComp.IsAdjust = false; sumComp.Miles = sumComp.Trip = sumComp.Stops = sumComp.Cartons = sumComp.Pallets = sumComp.PickupCartons = 0; sumComp.MilesAmount = sumComp.DayAmount = sumComp.TripAmount = sumComp.StopsAmount = sumComp.CartonsAmount = sumComp.PalletsAmount = sumComp.PickupCartonsAmount = sumComp.Amount = 0.0M; sumComp.FSC = 0.0M; sumComp.MinimunAmount = sumComp.AdminCharge = sumComp.AdjustmentAmount1 = sumComp.AdjustmentAmount2 = sumComp.TotalAmount = 0.0M; //Determine route ratings and compute operator summaries for (int i = 0; i < dayComps.Length; i++) { //Apply ratings to daily route DriverCompDS.DriverRouteTableRow dayComp = dayComps[i]; #region Sum all daily routes sumComp.IsNew = dayComp.IsNew ? true : sumComp.IsNew; sumComp.IsCombo = dayComp.IsCombo ? true : sumComp.IsCombo; sumComp.IsAdjust = dayComp.IsAdjust ? true : sumComp.IsAdjust; sumComp.Miles += dayComp.Miles; sumComp.MilesAmount += dayComp.MilesAmount; sumComp.DayAmount += dayComp.DayAmount; sumComp.Trip += dayComp.Trip; sumComp.TripAmount += dayComp.TripAmount; sumComp.Stops += dayComp.Stops; sumComp.StopsAmount += dayComp.StopsAmount; sumComp.Cartons += dayComp.Cartons; sumComp.CartonsAmount += dayComp.CartonsAmount; sumComp.Pallets += dayComp.Pallets; sumComp.PalletsAmount += dayComp.PalletsAmount; sumComp.PickupCartons += dayComp.PickupCartons; sumComp.PickupCartonsAmount += dayComp.PickupCartonsAmount; sumComp.FSCMiles += dayComp.FSCMiles; sumComp.FSCGal = dayComp.FSCGal; sumComp.FuelCost = dayComp.FuelCost; sumComp.FSCBaseRate = this.mTerminalConfig.FSBase; sumComp.FSC += dayComp.FSC; sumComp.MinimunAmount = dayComp.MinimunAmount; sumComp.AdminCharge += dayComp.AdminCharge; sumComp.AdjustmentAmount1 += dayComp.AdjustmentAmount1; sumComp.AdjustmentAmount2 += dayComp.AdjustmentAmount2; //sumComp.AdjustmentAmount3 += dayComp.AdjustmentAmount3; sumComp.Amount += dayComp.TotalAmount; #endregion } //Compute totals sumComp.TotalAmount = sumComp.Amount + sumComp.FSC + sumComp.AdjustmentAmount1 + sumComp.AdjustmentAmount2; } catch (ApplicationException ex) { throw ex; } catch (Exception ex) { throw new ApplicationException("Unexpected error while calculating compensation for " + _operator + "...", ex); } }
public void ConvertRoadshowRoutes() { //Add all new (selected) Roadshow routes to the compensation package try { for (int i = 0; i < this.mRoutesDS.RoadshowRouteTable.Rows.Count; i++) { //Check if new (i.e. selected by user) DriverCompDS.RoadshowRouteTableRow _route = this.mRoutesDS.RoadshowRouteTable[i]; if (_route.New) { //Validate route depot matches this agent if (_route.DepotNumber.ToString("0000") == this.mAgentNumber) { //Add operator summary (parent) record if required if (this.mCompDS.DriverCompTable.Select("Operator='" + _route.Operator + "'").Length == 0) { //Add the summary record for this operator DriverCompDS.DriverCompTableRow sumComp = this.mCompDS.DriverCompTable.NewDriverCompTableRow(); #region Set members sumComp.Select = true; sumComp.IsNew = sumComp.IsCombo = sumComp.IsAdjust = false; sumComp.AgentNumber = _route.DepotNumber.ToString("0000"); sumComp.FinanceVendorID = (!_route.IsFinanceVendIDNull() ? _route.FinanceVendID : "00000"); sumComp.FinanceVendor = (!_route.IsPayeeNull() ? _route.Payee : ""); sumComp.Operator = _route.Operator; //sumComp.EquipmentTypeID = _route.EquipmentID; sumComp.Miles = sumComp.Trip = sumComp.Stops = sumComp.Cartons = sumComp.Pallets = sumComp.PickupCartons = 0; sumComp.MilesAmount = sumComp.DayAmount = sumComp.TripAmount = sumComp.StopsAmount = sumComp.CartonsAmount = sumComp.PalletsAmount = sumComp.PickupCartonsAmount = sumComp.Amount = 0.0M; sumComp.FSCMiles = 0; sumComp.FuelCost = sumComp.FSCGal = sumComp.FSCBaseRate = sumComp.FSC = 0.0M; sumComp.MinimunAmount = sumComp.AdminCharge = sumComp.AdjustmentAmount1 = sumComp.AdjustmentAmount2 = sumComp.TotalAmount = 0.0M; #endregion this.mCompDS.DriverCompTable.AddDriverCompTableRow(sumComp); } //Validate daily route doesn't exist; add if doesn't exist if (this.mCompDS.DriverRouteTable.Select("Operator='" + _route.Operator + "' AND RouteDate='" + _route.Rt_Date + "' AND RouteName='" + _route.Rt_Name + "'").Length == 0) { //Create daily compensation from the Roadshow route DriverCompDS.DriverRouteTableRow dayComp = this.mCompDS.DriverRouteTable.NewDriverRouteTableRow(); #region Set members dayComp.ID = 0; dayComp.IsNew = false; dayComp.IsCombo = false; //Do on refresh (this.mCompDS.DriverRouteTable.Select("Operator='" + _route.Operator + "' AND RouteDate='" + _route.Rt_Date + "'").Length > 1); dayComp.IsAdjust = false; //Do on refresh _route.Rt_Name.Contains("ADJUST"); dayComp.AgentNumber = _route.DepotNumber.ToString("0000"); dayComp.FinanceVendorID = (!_route.IsFinanceVendIDNull() ? _route.FinanceVendID : "00000"); dayComp.EquipmentTypeID = _route.EquipmentID; dayComp.RouteDate = _route.Rt_Date; dayComp.RouteName = _route.Rt_Name; dayComp.Operator = _route.Operator; dayComp.Payee = (!_route.IsPayeeNull() ? _route.Payee : ""); dayComp.RateTypeID = RouteRatings.RATETYPE_NONE; dayComp.Miles = (!_route.IsTtlMilesNull()) ? _route.TtlMiles : 0; dayComp.MilesBaseRate = 0.0M; dayComp.MilesRate = 0.0M; dayComp.MilesAmount = 0.0M; dayComp.DayRate = 0.0M; dayComp.DayAmount = 0.0M; dayComp.Trip = (!_route.IsMultiTrpNull()) ? _route.MultiTrp : 0; dayComp.TripRate = 0.0M; dayComp.TripAmount = 0.0M; dayComp.Stops = (!_route.IsUniqueStopsNull()) ? _route.UniqueStops : 0; dayComp.StopsRate = 0.0M; dayComp.StopsAmount = 0.0M; dayComp.Cartons = (!_route.IsDelCtnsNull()) ? (int)_route.DelCtns : 0; dayComp.CartonsRate = 0.0M; dayComp.CartonsAmount = 0.0M; dayComp.Pallets = (!_route.IsDelPltsorRcksNull()) ? (int)_route.DelPltsorRcks : 0; dayComp.PalletsRate = 0.0M; dayComp.PalletsAmount = 0.0M; dayComp.PickupCartons = (!_route.IsRtnCtnNull()) ? (int)_route.RtnCtn : 0; dayComp.PickupCartonsRate = 0.0M; dayComp.PickupCartonsAmount = 0.0M; dayComp.FSCMiles = 0; dayComp.FSCGal = 0.0M; dayComp.FSCBaseRate = 0.0M; dayComp.FSC = 0.0M; dayComp.MinimunAmount = 0.0M; dayComp.AdminCharge = 0.0M; dayComp.AdjustmentAmount1 = 0.0M; dayComp.AdjustmentAmount1TypeID = ""; dayComp.AdjustmentAmount2 = 0.0M; dayComp.AdjustmentAmount2TypeID = ""; dayComp.TotalAmount = 0.0M; //dayComp.Imported = DateTime.Today; //dayComp.Exported = ; dayComp.ArgixRtType = _route.ArgixRtType; dayComp.LastUpdated = DateTime.Today; dayComp.UserID = Environment.UserName; #endregion //Apply ratings and fuel surcharge to the daily compensation RouteRatings ratings = this.mRates.GetRouteRatings(dayComp.EquipmentTypeID, dayComp.RouteName, dayComp.Miles); if (!dayComp.IsAdjust) { applyRates(dayComp, ratings); } calcFSC(dayComp, ratings); this.mCompDS.DriverRouteTable.AddDriverRouteTableRow(dayComp); //Update summary compensation applyAdminFee(_route.Operator); UpdateSummary(_route.Operator); } else { //Route exists System.Windows.Forms.MessageBox.Show("Route exists for " + _route.Operator + " on " + _route.Rt_Date.ToShortDateString()); } _route.New = false; } else { //Wrong terminal System.Windows.Forms.MessageBox.Show("Route belongs to " + _route.Depot + " terminal."); } } } Save(); RefreshRoadshowRoutes(); } catch (ApplicationException ex) { throw ex; } catch (Exception ex) { throw new ApplicationException("Unexpected error while converting Roadshow routes to driver compensation...", ex); } }