private void buttonPackageSales_Click(object sender, RibbonControlEventArgs e) { PseudoProgressForm progress = new PseudoProgressForm(); progress.ProgressLabel = "Querying SAP..."; BackgroundWorker backgroundWorker = new BackgroundWorker(); PackageSales packageSalesDataset = new PackageSales(); backgroundWorker.DoWork += delegate(object workSender, DoWorkEventArgs eventArg) { PackageSales.PackageSaleDataTable packageSalesTable = packageSalesDataset.PackageSale; Sales sales = DataHelper.GetSalesData(); foreach (Sales.PackageRow packageRow in sales.Package.Rows) { PackageSales.PackageSaleRow packageSaleRow = packageSalesTable.NewPackageSaleRow(); packageSaleRow.PackageName = packageRow.PackageName; packageSaleRow.NumberOfSales = 0; packageSaleRow.PriceOfSales = 0; foreach (DataRow row in packageRow.GetChildRows("Package_PackageSale")) { Sales.PackageSaleRow salesPackageSaleRow = row as Sales.PackageSaleRow; packageSaleRow.NumberOfSales += 1; packageSaleRow.PriceOfSales += salesPackageSaleRow.Price; } packageSalesTable.AddPackageSaleRow(packageSaleRow); } }; backgroundWorker.RunWorkerCompleted += delegate(object workSender, RunWorkerCompletedEventArgs eventArg) { progress.Close(); progress.Dispose(); ExcelHelper.LoadExcelSheet( "PackageSalesDistribution", Resources.PackageSalesDistribution, packageSalesDataset); }; backgroundWorker.RunWorkerAsync(); progress.ShowDialog(); }
private void buttonPackageType_Click(object sender, RibbonControlEventArgs e) { PseudoProgressForm progress = new PseudoProgressForm(); progress.ProgressLabel = "Querying SAP..."; BackgroundWorker backgroundWorker = new BackgroundWorker(); PackagePerPromoType packageSalesPerTypeDataset = new PackagePerPromoType(); backgroundWorker.DoWork += delegate(object workSender, DoWorkEventArgs eventArg) { PackagePerPromoType.PackageDataTable packageSalesTable = packageSalesPerTypeDataset.Package; Sales sales = DataHelper.GetSalesData(); foreach (Sales.PackageRow packageRow in sales.Package.Rows) { PackagePerPromoType.PackageRow packageSaleRow = packageSalesTable.NewPackageRow(); packageSaleRow.PackageID = packageRow.PackageID; packageSaleRow.PackageName = packageRow.PackageName; packageSaleRow.GoldPackageCount = 0; packageSaleRow.SilverPackageCount = 0; packageSaleRow.BronzePackageCount = 0; packageSaleRow.GoldPackageTotalSales = 0; packageSaleRow.SilverPackageTotalSales = 0; packageSaleRow.BronzePackageTotalSales = 0; foreach (DataRow saleRow in packageRow.GetChildRows("Package_PackageSale")) { Sales.PackageSaleRow salesPackageSaleRow = saleRow as Sales.PackageSaleRow; foreach (DataRow eventRow in salesPackageSaleRow.GetChildRows("PackageSale_EventSale")) { Sales.EventSaleRow salesEventSaleRow = eventRow as Sales.EventSaleRow; switch (salesEventSaleRow.PackageType) { case "Gold": packageSaleRow.GoldPackageCount += 1; packageSaleRow.GoldPackageTotalSales += salesEventSaleRow.Price; break; case "Silver": packageSaleRow.SilverPackageCount += 1; packageSaleRow.SilverPackageTotalSales += salesEventSaleRow.Price; break; case "Bronze": packageSaleRow.BronzePackageCount += 1; packageSaleRow.BronzePackageTotalSales += salesEventSaleRow.Price; break; } } } packageSalesTable.AddPackageRow(packageSaleRow); } }; backgroundWorker.RunWorkerCompleted += delegate(object workSender, RunWorkerCompletedEventArgs eventArg) { progress.Close(); progress.Dispose(); ExcelHelper.LoadExcelSheet( "PackageSalesPerPromoType", Resources.PackageSalesPerPromoType, packageSalesPerTypeDataset); }; backgroundWorker.RunWorkerAsync(); progress.ShowDialog(); }
public static Sales GetSalesData(int month, int year) { Sales salesDataset = new Sales(); Sales.PackageDataTable salesPackageDataTable = salesDataset.Package; Sales.PackageSaleDataTable salesPackageSaleDataTable = salesDataset.PackageSale; Sales.EventDataTable salesEventDataTable = salesDataset.Event; Sales.EventSaleDataTable salesEventSaleDataTable = salesDataset.EventSale; Sales.FlightDataTable salesFlightDataTable = salesDataset.Flight; SAPPackageReadWrite package = new SAPPackageReadWrite(Config._dbConnectionName); SAPEventAttendeeReadWrite attendee = new SAPEventAttendeeReadWrite(Config._dbConnectionName); SAPEventAttendeeAgencyMapReadWrite eventAttendeeAgencyMap = new SAPEventAttendeeAgencyMapReadWrite(Config._dbConnectionName); SAPPackageEventMapReadWrite packageEventMap = new SAPPackageEventMapReadWrite(Config._dbConnectionName); SAPEventReadWrite events = new SAPEventReadWrite(Config._dbConnectionName); SAPFlightTrip flightTripHelper = new SAPFlightTrip(Config.SAPUserName, Config.SAPPassword); SAPFlightConnection flightConnectionHelper = new SAPFlightConnection(Config.SAPUserName, Config.SAPPassword); //fetch all packages SAPDataSetPackage packageDataset = package.SelectAll(); //iterate through the packages foreach (SAPDataSetPackage.PackageRow packageRow in packageDataset.Package.Rows) { Sales.PackageRow salesPackageRow = salesPackageDataTable.AddPackageRow(packageRow.PackageID, packageRow.PackageName); SAPDataSetEventAttendee attendeeDataset = attendee.SelectByPackageID(packageRow.PackageID); SAPDataSetPackageEventMap packageEventMapDataset = packageEventMap.SelectByPackageID(packageRow.PackageID); foreach (SAPDataSetEventAttendee.EventAttendeeRow eventAttendeeRow in attendeeDataset.EventAttendee.Rows) { if ((eventAttendeeRow.Created.Month == month || month == 0) && (eventAttendeeRow.Created.Year == year || year == 0)) { //build temp package table Sales.PackageSaleRow salesPackageSaleRow = salesPackageSaleDataTable.AddPackageSaleRow( salesPackageRow, eventAttendeeRow.EventAttendeeID, eventAttendeeRow.Created, eventAttendeeRow.DateOfBirth, eventAttendeeRow.CustomerNumber, 0, 0); SAPDataSetEventAttendeeAgencyMap eventAttendeeAgencyMapDataset = eventAttendeeAgencyMap.SelectByEventAttendeeID(eventAttendeeRow.EventAttendeeID); for (int i = 0; i < packageEventMapDataset.PackageEventMap.Rows.Count; i++) { SAPDataSetPackageEventMap.PackageEventMapRow packageEventMapRow = packageEventMapDataset.PackageEventMap.Rows[i] as SAPDataSetPackageEventMap.PackageEventMapRow; SAPDataSetEvent eventDataset = events.SelectByEventID(packageEventMapRow.EventID); SAPDataSetEvent.EventRow eventRow = eventDataset.Event[0]; //assumes same record position as to event, need to revise!!! //SAPDataSetEventAttendeeAgencyMap.EventAttendeeAgencyMapRow eventAttendeeAgencyMapRow = // eventAttendeeAgencyMapDataset.EventAttendeeAgencyMap.Rows[i] as // SAPDataSetEventAttendeeAgencyMap.EventAttendeeAgencyMapRow; DataRow[] eventAttendeeAgencyMapDataRow = eventAttendeeAgencyMapDataset.EventAttendeeAgencyMap.Select("EventID = " + packageEventMapRow.EventID); SAPDataSetEventAttendeeAgencyMap.EventAttendeeAgencyMapRow eventAttendeeAgencyMapRow = eventAttendeeAgencyMapDataRow[0] as SAPDataSetEventAttendeeAgencyMap.EventAttendeeAgencyMapRow; Sales.EventRow salesEventRow = salesEventDataTable.FindByEventID(eventRow.EventID); if (salesEventRow == null) { salesEventRow = salesEventDataTable.AddEventRow( eventRow.EventID, eventRow.EventName, eventRow.GoldPackagePrice, eventRow.SilverPackagePrice, eventRow.BronzePackagePrice, eventRow.GoldPackageTrueCost, eventRow.SilverPackageTrueCost, eventRow.BronzePackageTrueCost); } salesEventSaleDataTable.AddEventSaleRow( salesEventRow, packageRow.PackageID, eventAttendeeRow.EventAttendeeID, eventAttendeeAgencyMapRow.AgencyNumber, eventAttendeeAgencyMapRow.TripNumber, string.Empty, 0, 0); } } } } foreach (Sales.PackageSaleRow salesPackageSalesRow in salesPackageSaleDataTable.Rows) { foreach (DataRow row in salesPackageSalesRow.GetChildRows("PackageSale_EventSale")) { Sales.EventSaleRow salesEventSaleRow = row as Sales.EventSaleRow; flightTripHelper.GetList( salesPackageSalesRow.CustomerNumber.Trim(), salesEventSaleRow.AgencyNumber); foreach (SAPServices.SAP_FLIGHTTRIPLIST.BAPISTRDAT trip in flightTripHelper._bapiFlightTripList) { if (salesEventSaleRow.TripNumber == trip.TRIPNUMBER) { flightConnectionHelper.GetDetail( trip.FLCONN1, trip.FLDATE1, string.Empty, salesEventSaleRow.AgencyNumber); Sales.EventRow salesEventRow = salesEventDataTable.FindByEventID(salesEventSaleRow.EventID); decimal ticketPrice = 0; switch (trip.CLASS) { case "F": salesEventSaleRow.Cost = salesEventRow.GoldPackageCost; salesEventSaleRow.Price = salesEventRow.GoldPackagePrice; salesEventSaleRow.PackageType = "Gold"; ticketPrice = trip.NUMADULT == 1 ? flightConnectionHelper._bapiPrice.PRICE_FST1 : trip.NUMCHILD == 1 ? flightConnectionHelper._bapiPrice.PRICE_FST2 : trip.NUMINFANT == 1 ? flightConnectionHelper._bapiPrice.PRICE_FST3 : 0; break; case "C": salesEventSaleRow.Cost = salesEventRow.SilverPackageCost; salesEventSaleRow.Price = salesEventRow.SilverPackagePrice; salesEventSaleRow.PackageType = "Silver"; ticketPrice = trip.NUMADULT == 1 ? flightConnectionHelper._bapiPrice.PRICE_BUS1 : trip.NUMCHILD == 1 ? flightConnectionHelper._bapiPrice.PRICE_BUS2 : trip.NUMINFANT == 1 ? flightConnectionHelper._bapiPrice.PRICE_BUS3 : 0; break; case "Y": salesEventSaleRow.Cost = salesEventRow.BronzePackageCost; salesEventSaleRow.Price = salesEventRow.BronzePackagePrice; salesEventSaleRow.PackageType = "Bronze"; ticketPrice = trip.NUMADULT == 1 ? flightConnectionHelper._bapiPrice.PRICE_ECO1 : trip.NUMCHILD == 1 ? flightConnectionHelper._bapiPrice.PRICE_ECO2 : trip.NUMINFANT == 1 ? flightConnectionHelper._bapiPrice.PRICE_ECO3 : 0; break; } salesPackageSalesRow.Cost += salesEventSaleRow.Cost; salesPackageSalesRow.Price += salesEventSaleRow.Price; salesFlightDataTable.AddFlightRow( salesEventSaleRow, trip.FLCONN1, trip.FLDATE1, trip.CLASS, ticketPrice, trip.NUMADULT, trip.NUMCHILD, trip.NUMINFANT); } } } } return(salesDataset); }