示例#1
0
        public IActionResult Update(int InvoiceNumber)
        {
            var invoice = _invoice.GetAll().FirstOrDefault(i => i.InvoiceNumber == InvoiceNumber);

            if (invoice != null)
            {
                var invoiceLines = _invoice.GetInvoiceLines(invoice.Id)
                                   .Select(item => new InvoiceLineIndexListingModel
                {
                    InvoiceLineId = item.Id,
                    ProductName   = item.Product.Name,
                    Amount        = item.Amount,
                    Price         = item.Price,
                    TotalPrice    = item.TotalPrice
                });
                var model = new InvoiceLinesListingModel()
                {
                    InvoiceLines = invoiceLines
                };
                return(View(model));
            }
            return(RedirectToAction("Index", "Home"));
        }
示例#2
0
        // Po orderId tylko
        //ActionID => 2 - GetAll incoice
        public IActionResult ShowInvoice(int InvoiceId, int OrderId, string email, int ActionId)
        {
            ViewBag.ActionId = ActionId;
            var InvoiceMod      = _invoice.GetInvoiceByOrderId(OrderId);
            var OrderMod        = _order.GetAll().FirstOrDefault(o => o.Id == OrderId);
            var InvoiceLinesMod = _invoice.GetInvoiceLines(InvoiceMod.Id);


            int C = 0;
            var listingResultIL = InvoiceLinesMod // _packingNote.GetAllLines(PackingNoteId)
                                  .Select(item =>
                                          new InvoiceLineIndexListingModel
            {
                InvoiceLineId = item.Id,
                ProductName   = item.Product.Name,
                Amount        = item.Amount,
                Price         = item.Price,
                PriceNetto    = Math.Round(Decimal.Divide(item.Price, 1.23m), 2),
                Tax           = Math.Round(item.Price - (Math.Round(Decimal.Divide(item.Price, 1.23m), 2)), 2),

                TotalPrice = item.TotalPrice
            });
            decimal sumA = 0.0m;
            decimal sumT = 0.0m;
            decimal sumN = 0.0m;
            int     cnt  = 1;

            foreach (var item in listingResultIL)
            {
                sumA   += item.TotalPrice;
                sumT   += item.Tax;
                sumN   += Math.Round(Decimal.Divide(item.Price, 1.23m), 2);
                item.LP = cnt;
                Console.WriteLine("DDDDDDDDDDDDDDDD " + item.LP);
                Console.WriteLine("DDDDDDDDDDDDDDDD " + cnt);
                cnt++;
            }


            Console.WriteLine("DDDDDDDDDDDDDDDD 222 " + listingResultIL.ToList()[0].LP);

            var model = new InvoiceLinesListingModel()
            {
                InvoiceLines = listingResultIL
            };

            Console.WriteLine("ILOSC: " + listingResultIL.Count());


            var listingResult = // _packingNote.GetAllLines(PackingNoteId)

                                new InvoiceIndexListingModel
            {
                OrderId     = OrderMod.Id,
                OrderNumber = OrderMod.OrderNumber,

                InvoiceNumber = InvoiceMod.InvoiceNumber,
                InvoiceTime   = InvoiceMod.InvoiceDate,

                AddressId               = OrderMod.Address.Id,
                AddressStreet           = OrderMod.Address.Street,
                AddressStreetNumber     = OrderMod.Address.StreetNumber,
                AddressAppartmentNumber = OrderMod.Address.AppartmentNumber,
                AddressPostCode         = OrderMod.Address.PostCode,
                AddressCity             = OrderMod.Address.City,
                AddressCountry          = OrderMod.Address.Country,


                ClientId         = OrderMod.Client.Id,
                ClientNumber     = OrderMod.Client.ClientNumber,
                ClientName       = OrderMod.Client.Name,
                ClientSurname    = OrderMod.Client.Surname,
                ClientPhoneNumer = OrderMod.Client.PhoneNumer,
                Clientemail      = OrderMod.Client.email,

                Lines            = model,
                TotalPriceBrutto = sumA,
                TotalTax         = sumT,
                TotalPriceNetto  = sumN
            };


            StringReader sr = new StringReader(InvoicePdfTemplete.DO(listingResult));

            MemoryStream memoryStream = new MemoryStream();

            Document   document   = new Document(PageSize.A4, 10f, 10f, 10f, 0f);
            HTMLWorker htmlparser = new HTMLWorker(document);

            PdfWriter writer = PdfWriter.GetInstance(document, memoryStream);

            document.Open();
            document.Add(new Paragraph("fdefedwf"));
            htmlparser.Parse(sr);
            document.Close();

            byte[] bytes = memoryStream.ToArray();
            memoryStream = new MemoryStream();
            memoryStream.Write(bytes, 0, bytes.Length);
            memoryStream.Position = 0;
            if (email != "admin")
            {
                _helper.InvoiceEmailSender(listingResult.Clientemail, "Faktura " + listingResult.InvoiceNumber, memoryStream);
            }
            //memoryStream.Close();

            // return new FileStreamResult(memoryStream,"application/pdf");

            return(View(listingResult));
        }