Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            var builder = new ConfigurationBuilder()
                          .SetBasePath(Directory.GetCurrentDirectory())
                          .AddJsonFile("appsettings.json");

            Configuration = builder.Build();

            var inputFilePath                = Configuration.GetSection("AppConfiguration").GetSection("InputFilePath").Value;
            var outputDirectory              = Configuration.GetSection("AppConfiguration").GetSection("OutputDirectory").Value;
            var lessOrEq6PagesFileName       = Configuration.GetSection("AppConfiguration").GetSection("LessOrEq6PagesFileName").Value;
            var lessOrEq12PagesFileName      = Configuration.GetSection("AppConfiguration").GetSection("LessOrEq12PagesFileName").Value;
            var moreThan12PagesFileName      = Configuration.GetSection("AppConfiguration").GetSection("MoreThan12PagesFileName").Value;
            var zeroedAmountInvoicesFileName = Configuration.GetSection("AppConfiguration").GetSection("ZeroedAmountInvoicesFileName").Value;
            var inputStreamReader            = new StreamReader(inputFilePath);
            var lessOrEq6PagesFileWriter     = new StreamWriter(outputDirectory + lessOrEq6PagesFileName);
            var lessOrEq12PagesFileWriter    = new StreamWriter(outputDirectory + lessOrEq12PagesFileName);
            var moreThan12PagesFileWriter    = new StreamWriter(outputDirectory + moreThan12PagesFileName);
            var zeroedAmountFileWriter       = new StreamWriter(outputDirectory + zeroedAmountInvoicesFileName);

            var headerLine = inputStreamReader.ReadLine();

            zeroedAmountFileWriter.WriteLine(headerLine);
            lessOrEq6PagesFileWriter.WriteLine(headerLine);
            lessOrEq12PagesFileWriter.WriteLine(headerLine);
            moreThan12PagesFileWriter.WriteLine(headerLine);

            while (!inputStreamReader.EndOfStream)
            {
                var line = inputStreamReader.ReadLine();

                var invoiceRecord = InvoiceUtil.ParseLine(line);
                if (invoiceRecord.Valid)
                {
                    if (invoiceRecord.Amount == 0.00m)
                    {
                        zeroedAmountFileWriter.WriteLine(InvoiceUtil.TransformRecordToCsvLine(invoiceRecord));
                    }
                    else
                    {
                        if (invoiceRecord.PagesNumber <= 6)
                        {
                            lessOrEq6PagesFileWriter.WriteLine(InvoiceUtil.TransformRecordToCsvLine(invoiceRecord));
                        }
                        if (invoiceRecord.PagesNumber <= 12)
                        {
                            lessOrEq12PagesFileWriter.WriteLine(InvoiceUtil.TransformRecordToCsvLine(invoiceRecord));
                        }
                        if (invoiceRecord.PagesNumber > 12)
                        {
                            moreThan12PagesFileWriter.WriteLine(InvoiceUtil.TransformRecordToCsvLine(invoiceRecord));
                        }
                    }
                }
            }
            zeroedAmountFileWriter.Close();
            lessOrEq6PagesFileWriter.Close();
            lessOrEq12PagesFileWriter.Close();
            moreThan12PagesFileWriter.Close();
        }
Ejemplo n.º 2
0
        private void CreateInvoice(int row)
        {
            //check if invoice number is ok, or quit
            if (ErrorUtil.IsInvoiceNumberOk(monthlyExcelFile.invoicesRange, row, ColumnsInvoice.InvoiceNumber))
            {
                Invoice.GetInstance().InvoiceNumber = ExcelUtil.GetStringValue(monthlyExcelFile.invoicesRange, row, ColumnsInvoice.InvoiceNumber);
            }

            //check and add invoice
            if (ErrorUtil.CheckRecordType(monthlyExcelFile.invoicesRange, row, RecordType.invoice))
            {
                Invoice.GetInstance().RecordType = ExcelUtil.GetStringValue(monthlyExcelFile.invoicesRange, row, ColumnsInvoice.RecordType);
            }

            if (InvoiceUtil.CheckSupplierNumber(monthlyExcelFile.invoicesRange, row))
            {
                Invoice.GetInstance().SupplierNumber = ExcelUtil.GetStringValue(monthlyExcelFile.invoicesRange, row, ColumnsInvoice.SupplierNumber);
            }

            if (InvoiceUtil.CheckDate(monthlyExcelFile.invoicesRange, row))
            {
                Invoice.GetInstance().Date = ExcelUtil.GetStringValue(monthlyExcelFile.invoicesRange, row, ColumnsInvoice.Date);
            }

            if (InvoiceUtil.CheckTaxAmount(monthlyExcelFile.invoicesRange, row))
            {
                Invoice.GetInstance().TaxAmount = ExcelUtil.GetStringValue(monthlyExcelFile.invoicesRange, row, ColumnsInvoice.TaxAmount);
            }

            Invoice.GetInstance().CustomerNumber       = ExcelUtil.GetStringValue(monthlyExcelFile.invoicesRange, row, ColumnsInvoice.CustomerNumber);
            Invoice.GetInstance().RegularDiscount      = ExcelUtil.GetStringValue(monthlyExcelFile.invoicesRange, row, ColumnsInvoice.RegularDiscountNumber);
            Invoice.GetInstance().SaleDiscount         = ExcelUtil.GetStringValue(monthlyExcelFile.invoicesRange, row, ColumnsInvoice.SaleDiscountNumber);
            Invoice.GetInstance().DistrupitionDiscount = ExcelUtil.GetStringValue(monthlyExcelFile.invoicesRange, row, ColumnsInvoice.DistrupitionDiscountNumber);

            if (Invoice.GetInstance().IsNoErrors)
            {
                AddOrders(Invoice.GetInstance().InvoiceNumber);
                if (Invoice.GetInstance().Orders.Count < 1)
                {
                    ErrorUtil.FinallizeErrorAndAdd(new Error {
                        Issue = "לא נמצאו הזמנות לחשבונית "
                    }, row: 1, column: 1, range: monthlyExcelFile.ordersRange);
                }
                else
                {
                    //mark row to be deleted
                    recordsToBeDeleted.Add(new RecordToBeDeleted {
                        Record = row, Sheet = Sheets.InvoicesSheetNumber
                    });
                }
            }
        }