Exemple #1
0
        public async Task <MemoryStream> CreatePdf(ProductFiltersDto filtersDto)
        {
            string directory        = _configuration["PdfRoute"];
            string finalDestination = directory + "/" + DateTime.Now.ToString().Replace("/", "_").Substring(0, 11) + ".pdf";


            string source = PdfBasicSchema.GenerateHeader(
                "LISTADO DE PRODUCTOS",
                "sdfsdf",     //codigo form
                DateTime.Now, //fecha form
                "01",         //version form
                _configuration["ResourcesRoute"],
                "todoHogarLogo.png"
                );

            string htmlStr =
                "<html>" +
                "<head>" +
                "<link rel='stylesheet' type='text/css' href='" + _configuration["ResourcesRoute"] + eRoutes.Html + "/style.css'>" +
                "</head>" +
                "<body style='font-family: Arial, Helvetica, sans-serif; margin-top: 4.1cm;'>";

            //htmlStr = htmlStr.Insert(htmlStr.Count(),
            //    "<table class='no-border mb-1'>" +
            //        "<tr>" +
            //            "<td class='no-border'></td>" +
            //            "<td class='no-border'></td>" +
            //            "<td class='align-right no-border i' ><span class='mr-05 bold'>Fecha:</span></td>" +
            //            "<td style='box-sizing: border-box; width: 25%'><span class='ml-05'>{valorFecha}</span></td>" +
            //        "</tr>" +
            //    "</table>");

            htmlStr = htmlStr.Insert(htmlStr.Count(),
                                     "<table class='no-border mb-1'>" +
                                     "<tr class='align-center bold'>" +
                                     "<td>Nombre</td>" +
                                     "<td>Descripción</td>" +
                                     "<td>Código</td>" +
                                     "<td>Categoría</td>" +
                                     "<td>Proveedor</td>" +
                                     "<td>Marca</td>" +
                                     "<td>Precio de venta</td>" +
                                     "</tr>" +
                                     "<dinamic></dinamic>" +
                                     "</table>");

            var products = (await _productRepository.GetAll(x => x.Include(p => p.Category).Include(p => p.Vendor)))
                           .AsQueryable().Where(filtersDto.GetExpresion()).OrderBy(x => x.Name);

            foreach (var prod in products)
            {
                var salePrice = (await _priceRepository.GetAll()).Where(p => p.ProductId == prod.Id && p.PriceType == ePriceTypes.SalePrice).OrderByDescending(x => x.DateTime).FirstOrDefault();
                htmlStr = AppendDynamicField(htmlStr, prod.Name, prod.Description, prod.Code, prod.Category.Name, prod.Vendor.Name, prod.Brand, salePrice.Value);
            }
            htmlStr.Replace("<dinamic></dinamic>", "");

            //string saltoPagina = "<div style='page-break-after: always;'></div>";

            htmlStr = htmlStr.Insert(htmlStr.Count(), "</body></html>");

            FinalizePdf(htmlStr, source, finalDestination);

            return(await ReturnResponse(finalDestination));
        }
Exemple #2
0
 public async Task <int> GetTotalQtyByFilters(ProductFiltersDto filters)
 {
     return((await _productRepository.GetAll()).AsQueryable().Where(filters.GetExpresion()).Count());
 }