示例#1
0
        public string ExportCompensation(bool updateAsExported)
        {
            //Export this driver compensation to file
            StringBuilder export = null;

            try {
                //Setup
                export = new StringBuilder();
                PayPeriod payPeriod = FinanceGateway.GetPayPeriod(this.mEndDate);

                //Export driver compensations and admin charges
                foreach (DriverCompDataset.DriverCompTableRow comp in this.mCompensation.DriverCompTable.Rows)
                {
                    if (comp.Select && comp.TotalAmount > 0)
                    {
                        //Export driver compensation
                        export.AppendLine(formatDriverRecord(payPeriod, comp));

                        //Export Admin fees if applicable
                        DriverCompDataset.DriverRouteTableRow[] routes = (DriverCompDataset.DriverRouteTableRow[]) this.mCompensation.DriverRouteTable.Select("AgentNumber=" + this.mAgentNumber + " AND Operator='" + comp.Operator + "'");
                        decimal adminFee = 0.0M;
                        for (int i = 0; i < routes.Length; i++)
                        {
                            adminFee += routes[i].AdminCharge;
                        }
                        if (adminFee != 0)
                        {
                            export.AppendLine(formatAdminRecord(payPeriod, comp, adminFee));
                        }

                        if (updateAsExported)
                        {
                            //Update all routes as exported
                            for (int i = 0; i < routes.Length; i++)
                            {
                                routes[i].Exported    = DateTime.Today;
                                routes[i].LastUpdated = DateTime.Now;
                                routes[i].UserID      = Environment.UserName;
                                FinanceGateway.UpdateDriverRoute(routes[i]);
                            }
                        }
                    }
                }
                //Refresh routes if they were updated (otherwise, don't change export selections)
                if (updateAsExported)
                {
                    ViewCompensation();
                }
            }
            catch (ApplicationException ex) { throw ex; }
            catch (Exception ex) { throw new ApplicationException(ex.Message, ex); }
            return(export.ToString());
        }
示例#2
0
        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);
        }