Пример #1
0
        public ActionResult EditarCompra(int Id)
        {
            var compra = compraBL.GetCompraById(Id);

            ViewBag.CompraID = Id;

            if (compra == null)
            {
                log.Error("No se pudo encontrar compra con ID: " + Id);
                return(View("Error"));
            }


            return(View("CompraFormEdit", compra));
        }
Пример #2
0
        public void CrearPdf(int id)
        {
            using (StringWriter sw = new StringWriter())
            {
                using (HtmlTextWriter hw = new HtmlTextWriter(sw))
                {
                    StringBuilder   sb        = new StringBuilder();
                    var             compra    = compraBL.GetCompraById(id);
                    CompraViewModel viewModel = new CompraViewModel(compra)
                    {
                        // Clientes = clienteBL.GetClienteById(venta.ClienteID),
                        ProductoXCompra = productoxCompraBL.GetProductoXCompraByIdCompra(compra.ID)
                    };


                    sb.Append("<br />");
                    sb.Append("<br />");
                    sb.Append("<br />");

                    //Generar contenido del body de la tabla
                    sb.Append("<table style='font-size:8px;' border = '0' ;>");



                    bool fondoColor = true;
                    foreach (var prod in viewModel.ProductoXCompra)
                    {
                        if (fondoColor)
                        {
                            sb.Append("<tr bgcolor='#e1e3e8'>");
                            fondoColor = false;
                        }
                        else
                        {
                            sb.Append("<tr>");
                            fondoColor = true;
                        }

                        sb.Append("<td width='40%'>" + prod.Producto.Nombre + "</td>");
                        sb.Append("<td width='20%' align = 'left'>" + prod.Cantidad + "</td>");
                        sb.Append("<td width='20%' align = 'left'>" + prod.PrecioUnitario + "</td>");
                        sb.Append("<td width='20%' align = 'left'>" + prod.Total + "</td>");
                        sb.Append("</tr>");
                    }

                    sb.Append("<tr><td align = 'right' colspan = '3'>Total: </td>");
                    sb.Append("<td>$" + compra.TotalGastos + "</td>");
                    sb.Append("</tr>");
                    sb.Append("</tr></table>");

                    //Export HTML String as PDF.
                    StringReader sr     = new StringReader(sb.ToString());
                    Document     pdfDoc = new Document(PageSize.A4, 25, 25, 100, 25);

                    //Instanciamos Componentes para el Header
                    PDFHeaderCompra pageHeader = new PDFHeaderCompra();
                    pageHeader.Compra = viewModel;


                    HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
                    PdfWriter  writer     = PdfWriter.GetInstance(pdfDoc, HttpContext.Current.Response.OutputStream);

                    writer.PageEvent = pageHeader;

                    //Donde la magia sucede
                    pdfDoc.Open();
                    htmlparser.Parse(sr);
                    pdfDoc.Close();


                    HttpContext.Current.Response.ContentType = "application/pdf";
                    HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=OrdenDeCompra_" + compra.NumeroCompra + ".pdf");
                    HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
                    HttpContext.Current.Response.Write(pdfDoc);
                    HttpContext.Current.Response.End();
                }
            }
        }
Пример #3
0
        public IHttpActionResult DeleteCompra(int Id)
        {
            var compraInDB = compraBL.GetCompraById(Id);

            if (compraInDB == null)
            {
                log.Error("Compra no encontrada en la base de datos con ID: " + Id);
                return(NotFound());
            }

            if (compraInDB.ProductosXCompra != null)
            {
                //RESTAMOS STOCK
                for (int i = 0; i < compraInDB.ProductosXCompra.Count; i++)
                {
                    int prodId       = compraInDB.ProductosXCompra[i].ProductoID;
                    int tipoUnidadId = compraInDB.ProductosXCompra[i].TipoDeUnidadID;


                    {
                        Stock stock = _UOWCompra.StockRepository.GetAll().Where(s => s.ProductoID == prodId && s.TipoDeUnidadID == tipoUnidadId).SingleOrDefault();
                        //Stock stock = stockBL.ValidarStockProducto(ventaMayoristaInDB.ProductosXVenta[i].ProductoID, ventaMayoristaInDB.ProductosXVenta[i].TipoDeUnidadID);
                        stock.Cantidad = stock.Cantidad - compraInDB.ProductosXCompra[i].Cantidad;

                        //stockBL.UpdateStock(stock);
                        _UOWCompra.StockRepository.Update(stock);

                        log.Info("Stock actualizado para Producto con ID: " + prodId + ". Nuevo valor: " + stock.Cantidad);
                    }
                }


                //BORRAMOS PRODUCTOS ASOCIADOS Y LA VENTA MAYORISTA
                //Borramos Productos asociados
                foreach (var item in compraInDB.ProductosXCompra)
                {
                    var productoInDB = _UOWCompra.ProductosXCompraRepository.GetByID(item.ID);
                    _UOWCompra.ProductosXCompraRepository.Delete(productoInDB);

                    log.Info("Producto borrado de la compra con ID: " + item.ID);
                }
            }



            ////Borramos Venta Mayorista
            var compraABorrar = _UOWCompra.CompraRepository.GetByID(Id);

            //Devolvemos Saldo
            Proveedor prov = _UOWCompra.ProveedorRepository.GetByID(compraABorrar.ProveedorID);

            //prov.Debe = prov.Debe - compraABorrar.TotalGastos;
            //_UOWCompra.ProveedorRepository.Update(prov);


            _UOWCompra.CompraRepository.Delete(compraABorrar);


            //Concretamos la operacion
            _UOWCompra.Save();

            log.Info("Compra eliminada satisfactoriamente.");

            return(Ok());
        }