Beispiel #1
0
        public void ReportForecast(string filePath, bool appendFile, SqlString customerNumberFrom, SqlString customerNumberTo, SqlString brandCodeFrom, SqlString brandCodeTo, SqlString productCategoryCodeFrom, SqlString productCategoryCodeTo, ForecastReportGroupBy groupBy, string forecastMethods, int forecastYear)
        {
            var forecastReportCollection = new ForecastReport.ParameteredCollection(_companyCode, customerNumberFrom, customerNumberTo, brandCodeFrom, brandCodeTo, productCategoryCodeFrom, productCategoryCodeTo, groupBy, forecastMethods, forecastYear);

            forecastReportCollection.Load();
            var actualSalesReportCollection = new ActualSalesReport.ParameteredCollection(_companyCode, customerNumberFrom, customerNumberTo, brandCodeFrom, brandCodeTo, productCategoryCodeFrom, productCategoryCodeTo, groupBy, forecastMethods, forecastYear);

            actualSalesReportCollection.Load();
            using (var sw = new StreamWriter(filePath, appendFile))
            {
                sw.WriteLine(",,,,Actual vs Forecast Comparison Report,,,,,,,Report Date: {0:MM/dd/yyyy}", DateTime.Today);
                sw.WriteLine();
                sw.WriteLine("Company Code: {0}", _companyCode);
                sw.WriteLine("Customer Number from: {0} to: {1}", customerNumberFrom, customerNumberTo);
                sw.WriteLine("Brand Code from: {0} to: {1}", brandCodeFrom, brandCodeTo);
                sw.WriteLine("Product Category Code from: {0} to: {1}", productCategoryCodeFrom, productCategoryCodeTo);
                sw.WriteLine("Forecast Methods: {0}", forecastMethods);
                sw.WriteLine("Forecast Year: {0}", forecastYear);
                sw.WriteLine("Group by: {0}", groupBy);
                sw.WriteLine();
                var header = new StringBuilder();
                if (groupBy == ForecastReportGroupBy.Brand)
                {
                    header.Append("Brand");
                }
                else
                {
                    header.Append("Item#");
                }
                header.Append(",").Append("Jan ").Append(forecastYear.ToString());
                header.Append(",").Append("Feb ").Append(forecastYear.ToString());
                header.Append(",").Append("Mar ").Append(forecastYear.ToString());
                header.Append(",").Append("Apr ").Append(forecastYear.ToString());
                header.Append(",").Append("May ").Append(forecastYear.ToString());
                header.Append(",").Append("Jun ").Append(forecastYear.ToString());
                header.Append(",").Append("Jul ").Append(forecastYear.ToString());
                header.Append(",").Append("Aug ").Append(forecastYear.ToString());
                header.Append(",").Append("Sep ").Append(forecastYear.ToString());
                header.Append(",").Append("Oct ").Append(forecastYear.ToString());
                header.Append(",").Append("Nov ").Append(forecastYear.ToString());
                header.Append(",").Append("Dec ").Append(forecastYear.ToString());
                header.Append(",Total ").Append(forecastYear.ToString());
                sw.WriteLine(header.ToString());
                sw.WriteLine();
                var forecastReportGrandTotal    = new int[13];
                var actualSalesReportGrandTotal = new int[13];
                var varianceReportGrandTotal    = new int[13];
                foreach (var forecastReport in forecastReportCollection)
                {
                    WriteForecastVarianceCrossTab(sw, forecastReport, actualSalesReportCollection, forecastYear, ref forecastReportGrandTotal, ref actualSalesReportGrandTotal, ref varianceReportGrandTotal);
                }
                sw.WriteLine();
                sw.WriteLine("Report Total:");
                sw.Write("Actual");
                for (var i = 0; i < 13; i++)
                {
                    sw.Write(",{0}", actualSalesReportGrandTotal[i]);
                }
                sw.WriteLine();
                sw.Write("SLSFR");
                for (var i = 0; i < 13; i++)
                {
                    sw.Write(",{0}", forecastReportGrandTotal[i]);
                }
                sw.WriteLine();
                sw.Write("Variance");
                for (var i = 0; i < 13; i++)
                {
                    sw.Write(",{0}", varianceReportGrandTotal[i]);
                }
                sw.WriteLine();
            }
        }
Beispiel #2
0
 public ParameteredCollection(SqlString companyCode, SqlString customerNumberFrom, SqlString customerNumberTo, SqlString brandCodeFrom, SqlString brandCodeTo, SqlString productCategoryCodeFrom, SqlString productCategoryCodeTo, ForecastReportGroupBy groupBy, string forecastMethods, int forecastYear)
 {
     ParameterCollection = new HybridDictionary
     {
         { "CompanyCode", companyCode },
         { "CustomerNumberFrom", customerNumberFrom },
         { "CustomerNumberTo", customerNumberTo },
         { "BrandCodeFrom", brandCodeFrom },
         { "BrandCodeTo", brandCodeTo },
         { "ProductCategoryCodeFrom", productCategoryCodeFrom },
         { "ProductCategoryCodeTo", productCategoryCodeTo },
         { "GroupBy", groupBy.ToString() },
         { "ForecastMethods", forecastMethods },
         { "ForecastYear", forecastYear }
     };
 }