Beispiel #1
0
        public async Task <IActionResult> Create([Bind("Id,Date,InvoiceNumber,ContractorId,Description,SellValue,OtherIncome,GoodsBuys,BuysSideEffects,Salary,OtherCosts,Column15,CostDescription,ResearchCostValue,Comments")] TaxBook taxBook)
        {
            ViewData["ContractorId"] = new SelectList(_context.Contractor, "Id", "Name");

            if (ModelState.IsValid)
            {
                _context.Add(taxBook);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(taxBook));
        }
Beispiel #2
0
        public async Task <IActionResult> GenerateTaxBook(int?year, int?month)
        {
            if (year == null || month == null)
            {
                return(NotFound());
            }

            var    taxBook      = new TaxBook();
            string pdfFilename  = taxBook.generate(_context, (int)year, (int)month);
            string downFilename = taxBook.getDownloadFilename((int)year, (int)month);
            await Task.Delay(1000);

            return(RedirectToAction("GetPdfFile", new { filename = pdfFilename, downloadFilename = downFilename }));
        }
        // GET: GenerateInvoice
        public async Task <IActionResult> AddToTaxBook(int?year, int?month)
        {
            var            VATRegisterBuyItems = _context.VATRegisterBuy.Where(p => p.Month == month && p.Year == year);
            List <TaxBook> taxBookItems        = new List <TaxBook>();


            foreach (VATRegisterBuy v in VATRegisterBuyItems)
            {
                TaxBook taxBook = new TaxBook();
                taxBook.Date          = v.DateOfIssue;
                taxBook.InvoiceNumber = v.DocumentNumber;
                taxBook.ContractorId  = v.ContractorId;
                //taxBook.Description = v.DescriptionForTaxBook;
                taxBook.OtherCosts = v.ValueNetto;

                taxBookItems.Add(taxBook);
            }


            _context.AddRange(taxBookItems);
            await _context.SaveChangesAsync();

            return(null);
        }
        // GET: Invoice/Confirm
        public IActionResult Confirm(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            Invoice invoice = _context.Invoice.Include(i => i.InvoiceItems).Include(i => i.InvoiceStatus).Single(m => m.Id == id);

            if (invoice.InvoiceStatus.Name != "zatwierdzona")
            {
                invoice.InvoiceStatusId = _context.InvoiceStatus.Single(p => p.Name == "zatwierdzona").Id;
                VATRegisterSell sell    = new VATRegisterSell();
                TaxBook         taxBook = new TaxBook();

                try
                {
                    sell                = _context.VATRegisterSell.Single(p => p.DocumentNumber == invoice.Number);
                    sell.Number         = sell.getOrderNumber(_context);
                    sell.DeliveryDate   = invoice.DateOfDelivery;
                    sell.DateOfIssue    = invoice.DateOfIssue;
                    sell.Month          = sell.DateOfIssue.Month;
                    sell.Year           = sell.DateOfIssue.Year;
                    sell.DocumentNumber = invoice.Number;
                    sell.ContractorId   = invoice.ContractorId;
                    sell.ValueBrutto    = invoice.TotalValueInclVat;

                    sell.ValueNetto23 = 0;
                    sell.VATValue23   = 0;
                    // TO DO: add other VAT rates support
                    foreach (InvoiceItem item in invoice.InvoiceItems)
                    {
                        if (item.VATValue == 23)
                        {
                            sell.ValueNetto23 += item.TotalPrice;
                            sell.VATValue23   += item.TotalVATValue;
                        }
                    }

                    _context.Update(sell);
                }
                catch (Exception)
                {
                    sell.Number         = sell.getOrderNumber(_context);
                    sell.DeliveryDate   = invoice.DateOfDelivery;
                    sell.DateOfIssue    = invoice.DateOfIssue;
                    sell.Month          = sell.DateOfIssue.Month;
                    sell.Year           = sell.DateOfIssue.Year;
                    sell.DocumentNumber = invoice.Number;
                    sell.ContractorId   = invoice.ContractorId;
                    sell.ValueBrutto    = invoice.TotalValueInclVat;

                    // TO DO: add other VAT rates support
                    foreach (InvoiceItem item in invoice.InvoiceItems)
                    {
                        if (item.VATValue == 23)
                        {
                            sell.ValueNetto23 += item.TotalPrice;
                            sell.VATValue23   += item.TotalVATValue;
                        }
                    }
                    _context.Add(sell);
                }

                try
                {
                    taxBook              = _context.TaxBookItem.Single(p => p.InvoiceNumber == invoice.Number);
                    taxBook.Date         = invoice.DateOfIssue;
                    taxBook.ContractorId = invoice.ContractorId;
                    taxBook.SellValue    = invoice.TotalValue;
                    taxBook.Description  = "sprzedaż";
                    _context.Update(taxBook);
                }
                catch (Exception)
                {
                    taxBook.Date          = invoice.DateOfIssue;
                    taxBook.InvoiceNumber = invoice.Number;
                    taxBook.ContractorId  = invoice.ContractorId;
                    taxBook.SellValue     = invoice.TotalValue;
                    taxBook.Description   = "sprzedaż";
                    _context.Add(taxBook);
                }

                _context.Update(invoice);
                _context.SaveChanges();
                return(RedirectToAction(nameof(Index)));
            }
            else
            {
                invoice.InvoiceStatusId = _context.InvoiceStatus.Single(p => p.Name == "nowa").Id;
                _context.Update(invoice);
                _context.SaveChanges();
                return(RedirectToAction(nameof(Details), new { id = id }));
            }
        }