//public List<Stock> ValidarStockProductoMix(int productoID, int tipoDeUnidadID) //{ // var productosMix = GetListaProductosMixById(productoID); // List<Stock> listaStockProdMix = new List<Stock>(); // foreach (var prodMix in productosMix) // { // Stock stockProd = StockRP // .GetAll() // .Include(p => p.Producto) // .Include(t => t.TipoDeUnidad) // .Where(p => p.ProductoID == prodMix.ProductoDelMix.ID) // .Where(t => t.TipoDeUnidadID == tipoDeUnidadID) // .SingleOrDefault(); // listaStockProdMix.Add(stockProd); // } // return listaStockProdMix; //} internal void UpdateStockAuxiliar() { var stock = StockRP.GetAll().ToList(); foreach (var item in stock) { //Preparamos el Stock Auxiliar Producto prod = ProductoRP.GetByID(item.ProductoID); TipoDeUnidad tu = TipoDeUnidadRP.GetByID(item.TipoDeUnidadID); item.ProductoAuxiliar = prod.NombreAuxiliar; item.TipoDeUnidadAuxiliar = tu.Nombre; StockRP.Update(item); StockRP.Save(); } }
public IHttpActionResult CreateStock(StockDTO stock) { if (!ModelState.IsValid) { log.Error("Formulario con datos inexistentes o incorrectos."); return(BadRequest()); } Producto producto = productoBL.GetProductoById(stock.ProductoID); TipoDeUnidad tunidad = tipoDeUnidadBL.GetTipoDeUnidadById(stock.TipoDeUnidadID); Stock stockIngresado = stockBL.ValidarStockProducto(stock.ProductoID, stock.TipoDeUnidadID); if (stockIngresado != null) { stockIngresado.Cantidad = stockIngresado.Cantidad + stock.Cantidad; stockBL.UpdateStock(stockIngresado); log.Info("Stock Actualizado satisfactoriamente. ID: " + stockIngresado.ID); } else { Stock stockNuevo = new Stock(); stockNuevo.ProductoID = stock.ProductoID; stockNuevo.TipoDeUnidadID = stock.TipoDeUnidadID; stockNuevo.Cantidad = stock.Cantidad; stockNuevo.ProductoAuxiliar = producto.NombreAuxiliar; stockNuevo.TipoDeUnidadAuxiliar = tunidad.Nombre; stockBL.AddStock(stockNuevo); log.Info("Stock Agregado satisfactoriamente"); } return(Ok()); }
public void RemoveTipoDeUnidad(TipoDeUnidad tipoDeUnidad) { tipoDeUnidadRP.Delete(tipoDeUnidad); tipoDeUnidadRP.Save(); }
public void UpdateTipoDeUnidad(TipoDeUnidad tipoDeUnidad) { tipoDeUnidadRP.Update(tipoDeUnidad); tipoDeUnidadRP.Save(); }
public void AddTipoDeUnidad(TipoDeUnidad tipoDeUnidad) { tipoDeUnidadRP.Add(tipoDeUnidad); tipoDeUnidadRP.Save(); }
public IHttpActionResult Compra(CompraDTO compraDTO) { if (!ModelState.IsValid) { log.Error("Formulario con datos incorrectos o insuficientes."); return(BadRequest()); } //Proveedor proveedor = proveedorBL.GetProveedorById(compraDTO.ProveedorID); Proveedor proveedor = _UOWCompra.ProveedorRepository.GetByID(compraDTO.ProveedorID); if (proveedor == null) { log.Error("No se ha encontrado Proveedor con el ID: " + compraDTO.ProveedorID); return(BadRequest()); } var compra = Mapper.Map <CompraDTO, Compra>(compraDTO); //Verificamos si ya se cargó una compra con el mismo NumeroCompra var ultimaCompra = _UOWCompra.CompraRepository .GetAll() .Max(p => p.NumeroCompra); if (compra.NumeroCompra <= ultimaCompra) { compra.NumeroCompra = ultimaCompra + 1; } //compraBL.AddCompra(compra); _UOWCompra.CompraRepository.Add(compra); //log.Info("Compra. Viejo Saldo Proveedor: " + compraDTO.Debe); //Actualizamos el Saldo en base a la Entrega de Efectivo // proveedor.Debe = compraDTO.Debe; //proveedorBL.UpdateProveedor(proveedor); proveedor.Debe = compraDTO.Debe; proveedor.SaldoAfavor = compraDTO.SaldoAfavor; _UOWCompra.ProveedorRepository.Update(proveedor); log.Info("Compra. Nuevo Saldo Proveedor: " + proveedor.Debe); if (compra.ProductosXCompra.Count != 0) { //Una vez cargada la venta, actualizamos Stock foreach (var item in compra.ProductosXCompra) { // Producto producto = productoBL.GetProductoById(item.ProductoID); //Stock stock = stockBL.ValidarStockProducto(item.ProductoID, item.TipoDeUnidadID); Stock stock = _UOWCompra.StockRepository.GetAll().Where(s => s.ProductoID == item.ProductoID && s.TipoDeUnidadID == item.TipoDeUnidadID).SingleOrDefault(); if (stock != null) { stock.Cantidad = stock.Cantidad + item.Cantidad; //stockBL.UpdateStock(stock); _UOWCompra.StockRepository.Update(stock); log.Info("Stock actualizado o creado para producto con ID: " + item.ProductoID + ". Nueva Cantidad: " + stock.Cantidad); } else { Stock stockNuevo = new Stock(); Producto prod = productoBL.GetProductoById(item.ProductoID); TipoDeUnidad tunidad = clasificacionBL.GetTipoDeUnidadById(item.TipoDeUnidadID); stockNuevo.ProductoID = item.ProductoID; stockNuevo.TipoDeUnidadID = item.TipoDeUnidadID; stockNuevo.Cantidad = item.Cantidad; stockNuevo.ProductoAuxiliar = prod.NombreAuxiliar; stockNuevo.TipoDeUnidadAuxiliar = tunidad.Nombre; //stockBL.AddStock(stockNuevo); _UOWCompra.StockRepository.Add(stockNuevo); log.Info("Stock actualizado o creado para producto con ID: " + item.ProductoID + ". Nueva Cantidad: " + stockNuevo.Cantidad); } } } //Actualizamos valores _UOWCompra.Save(); log.Info("Compra generada satisfactoriamente."); return(Ok()); }
public IHttpActionResult UpdateCompra(CompraDTO compraDTO) { if (!ModelState.IsValid) { log.Error("Formulario con datos incorrectos o insuficientes."); return(BadRequest()); } //var compraInDB = compraBL.GetCompraById(compraDTO.ID); var compraInDB = _UOWCompra.CompraRepository.GetByID(compraDTO.ID); if (compraInDB == null) { log.Error("No se encontró compra existente con el ID: " + compraDTO.ID); return(NotFound()); } //Proveedor proveedor = proveedorBL.GetProveedorById(compraDTO.ProveedorID); Proveedor proveedor = _UOWCompra.ProveedorRepository.GetByID(compraDTO.ProveedorID); log.Info("Compra. Viejo Saldo Proveedor: " + compraDTO.Debe); //Actualizamos el Saldo en base a la Entrega de Efectivo proveedor.Debe = compraDTO.Debe; proveedor.SaldoAfavor = compraDTO.SaldoAfavor; //proveedorBL.UpdateProveedor(proveedor); _UOWCompra.ProveedorRepository.Update(proveedor); log.Info("Compra. Nuevo Saldo Proveedor: " + proveedor.Debe); ////actualizo stock //if (compraDTO.ProductosXCompra != null) //{ // foreach (var item in compraDTO.ProductosXCompra) // { // var prdXcompra = productoXCompraBL.GetProductoXCompraById(item.ID); // Stock stock = stockBL.ValidarStockProducto(item.ProductoID, item.TipoDeUnidadID); // if (prdXcompra.Cantidad > item.Cantidad) // { // var cantidad = prdXcompra.Cantidad - item.Cantidad; // stock.Cantidad = stock.Cantidad - cantidad; // //stockBL.UpdateStock(stock); // _UOWCompra.StockRepository.Update(stock); // } // if (item.Cantidad > prdXcompra.Cantidad) // { // var cantidad = item.Cantidad - prdXcompra.Cantidad; // stock.Cantidad = stock.Cantidad + cantidad; // //stockBL.UpdateStock(stock); // _UOWCompra.StockRepository.Update(stock); // } // log.Info("Stock actualizado para producto con ID: " + item.ProductoID + ". Nueva Cantidad: " + stock.Cantidad); // } // foreach (var item in compraDTO.ProductosXCompra) // { // foreach (var item2 in compraInDB.ProductosXCompra) // { // if (item.ID == item2.ID) // { // ProductoXCompra prodAActualizar = _UOWCompra.ProductosXCompraRepository.GetByID(item.ID); // prodAActualizar.Cantidad = item.Cantidad; // prodAActualizar.Importe = item.Importe; // prodAActualizar.Descuento = item.Descuento; // prodAActualizar.ImporteDescuento = item.ImporteDescuento; // prodAActualizar.Iibbbsas = item.Iibbbsas; // prodAActualizar.Iibbcaba = item.Iibbcaba; // prodAActualizar.Iva = item.Iva; // prodAActualizar.PrecioUnitario = item.PrecioUnitario; // prodAActualizar.Total = item.Total; // prodAActualizar.ProductoID = item.ProductoID; // prodAActualizar.CompraID = item.CompraID; // prodAActualizar.TipoDeUnidadID = item.TipoDeUnidadID; // _UOWCompra.ProductosXCompraRepository.Update(prodAActualizar); // log.Info("Datos actualizados para producto con ID: " + item2.ProductoID); // //item2.Cantidad = item.Cantidad; // //item2.Importe = item.Importe; // //item2.Descuento = item.Descuento; // //item2.ImporteDescuento = item.ImporteDescuento; // //item2.Iibbbsas = item.Iibbbsas; // //item2.Iibbcaba = item.Iibbcaba; // //item2.Iva = item.Iva; // //item2.PrecioUnitario = item.PrecioUnitario; // //item2.Total = item.Total; // //item2.ProductoID = item.ProductoID; // //item2.CompraID = item.CompraID; // //item2.TipoDeUnidadID = item.TipoDeUnidadID; // } // } // } //} Compra compraAActualizar = _UOWCompra.CompraRepository.GetByID(compraInDB.ID); compraAActualizar.Factura = compraDTO.Factura; compraAActualizar.NoConcretado = compraDTO.NoConcretado; compraAActualizar.TipoFactura = compraDTO.TipoFactura; compraAActualizar.Local = compraDTO.Local; compraAActualizar.SumaTotal = compraDTO.SumaTotal; compraAActualizar.EntregaEfectivo = compraDTO.EntregaEfectivo; compraAActualizar.DescuentoPorc = compraDTO.DescuentoPorc; compraAActualizar.Descuento = compraDTO.Descuento; compraAActualizar.Subtotal = compraDTO.Subtotal; compraAActualizar.ImporteNoGravado = compraDTO.ImporteNoGravado; compraAActualizar.Iva = compraDTO.Iva; compraAActualizar.ImporteIva = compraDTO.ImporteIva; compraAActualizar.Iibbbsas = compraDTO.Iibbbsas; compraAActualizar.ImporteIibbbsas = compraDTO.ImporteIibbbsas; compraAActualizar.Iibbcaba = compraDTO.Iibbcaba; compraAActualizar.ImporteIibbcaba = compraDTO.ImporteIibbcaba; compraAActualizar.PercIva = compraDTO.PercIva; compraAActualizar.ImportePercIva = compraDTO.ImportePercIva; compraAActualizar.Total = compraDTO.Total; compraAActualizar.TotalGastos = compraDTO.TotalGastos; compraAActualizar.Fecha = DateTime.Parse(compraDTO.Fecha); _UOWCompra.CompraRepository.Update(compraAActualizar); //Borramos todos los productos de la compra, para luego agregarlos nuevamente junto con sus actualizados bool borrado = false; borrado = DeleteProductosParaUpdate(compraInDB); if (!borrado) { log.Error("Se ha producido un error intentando borrar los productos de la venta al momento de actualizar. Venta ID: " + compraInDB.ID); return(BadRequest()); } //Agregamos nuevamente los productos a la compra, actualizados if (compraDTO.ProductosXCompra != null) { foreach (var prodCompra in compraDTO.ProductosXCompra) { //UPDATE PRODUCTOS DE VENTA MAYORISTA _UOWCompra.ProductosXCompraRepository.Add(prodCompra); } //Una vez cargada la venta, actualizamos Stock foreach (var item in compraDTO.ProductosXCompra) { //Producto producto = productoBL.GetProductoById(item.ProductoID); //Stock stock = stockBL.ValidarStockProducto(item.ProductoID, item.TipoDeUnidadID); Stock stock = _UOWCompra.StockRepository .GetAll() .Where(s => s.ProductoID == item.ProductoID && s.TipoDeUnidadID == item.TipoDeUnidadID) .SingleOrDefault(); if (stock != null) { stock.Cantidad = stock.Cantidad + item.Cantidad; //stockBL.UpdateStock(stock); _UOWCompra.StockRepository.Update(stock); log.Info("Stock actualizado o creado para producto con ID: " + item.ProductoID + ". Nueva Cantidad: " + stock.Cantidad); } else { Stock stockNuevo = new Stock(); Producto prod = productoBL.GetProductoById(item.ProductoID); TipoDeUnidad tunidad = clasificacionBL.GetTipoDeUnidadById(item.TipoDeUnidadID); stockNuevo.ProductoID = item.ProductoID; stockNuevo.TipoDeUnidadID = item.TipoDeUnidadID; stockNuevo.Cantidad = item.Cantidad; stockNuevo.ProductoAuxiliar = prod.NombreAuxiliar; stockNuevo.TipoDeUnidadAuxiliar = tunidad.Nombre; //stockBL.AddStock(stockNuevo); _UOWCompra.StockRepository.Add(stockNuevo); log.Info("Stock actualizado o creado para producto con ID: " + item.ProductoID + ". Nueva Cantidad: " + stockNuevo.Cantidad); } } } //compraInDB.Factura = compraDTO.Factura; //compraInDB.NoConcretado = compraDTO.NoConcretado; //compraInDB.TipoFactura = compraDTO.TipoFactura; //compraInDB.SumaTotal = compraDTO.SumaTotal; //compraInDB.DescuentoPorc = compraDTO.DescuentoPorc; //compraInDB.Descuento = compraDTO.Descuento; //compraInDB.Subtotal = compraDTO.Subtotal; //compraInDB.ImporteNoGravado = compraDTO.ImporteNoGravado; //compraInDB.Iva = compraDTO.Iva; //compraInDB.ImporteIva = compraDTO.ImporteIva; //compraInDB.Iibbbsas = compraDTO.Iibbbsas; //compraInDB.ImporteIibbbsas = compraDTO.ImporteIibbbsas; //compraInDB.Iibbcaba = compraDTO.Iibbcaba; //compraInDB.ImporteIibbcaba = compraDTO.ImporteIibbcaba; //compraInDB.PercIva = compraDTO.PercIva; //compraInDB.ImportePercIva = compraDTO.ImportePercIva; //compraInDB.Total = compraDTO.Total; //compraInDB.TotalGastos = compraDTO.TotalGastos; //compraBL.UpdateCompra(compraInDB); //Actualizamos la operación _UOWCompra.Save(); log.Info("Compra actualizada satisfactoriamente. ID: " + compraAActualizar.ID); return(Ok()); }