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)); }
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(); } } }
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()); }