private void ServicioOrdenEntrada_OrdenEntradaModificada(object sender, OrdenModificadaDetalles e) { foreach (Detalle detalleEntrada in e.Orden.Detalles) { InventarioProyecto registro = InventarioArchivo.ArticuloEnProyecto(e.Orden.Proyecto.Id, detalleEntrada.Articulo.Id); if (registro != null) { string[] campos = e.RegistrosModificados.Where(x => Int32.Parse(x[2]) == registro.Articulo.Id).FirstOrDefault(); if (campos != null) { registro.Cantidad -= Int32.Parse(campos[3]); registro.Cantidad += detalleEntrada.Cantidad; registro.Total = registro.Cantidad * detalleEntrada.Articulo.Precio; if (registro.Cantidad > 0) { InventarioArchivo.ActualizarCantidad(e.Orden.Proyecto.Id, detalleEntrada.Articulo.Id, registro); } else { InventarioArchivo.EliminarArticuloInventario(registro.Id); } } } } }
public void AgregarArticuloInventario(InventarioProyecto inventario) { id += 1; inventario.Id = id; using (writer = File.AppendText(direccion)) { writer.WriteLine(inventario.ToString()); } }
public int ObtenerCantidadArticuloPorProyecto(int idProyecto, int idArticulo) { InventarioProyecto registro = InventarioArchivo.ArticuloEnProyecto(idProyecto, idArticulo); if (registro != null) { return(registro.Cantidad); } else { return(0); } }
private void AumentarInventario(object sender, NuevaOrdenDetalles e) { foreach (Detalle detalleEntrada in e.Orden.Detalles) { InventarioProyecto registro = InventarioArchivo.ArticuloEnProyecto(e.Orden.Proyecto.Id, detalleEntrada.Articulo.Id); if (registro != null) { registro.Cantidad += detalleEntrada.Cantidad; registro.Total = registro.Cantidad * detalleEntrada.Articulo.Precio; InventarioArchivo.ActualizarCantidad(e.Orden.Proyecto.Id, detalleEntrada.Articulo.Id, registro); } else { InventarioArchivo.AgregarArticuloInventario(new InventarioProyecto(new Proyecto(e.Orden.Proyecto.Id), new Articulo(detalleEntrada.Articulo.Id), detalleEntrada.Cantidad, detalleEntrada.Total)); } } }
private void ReducirInventario(object sender, NuevaOrdenDetalles e) { foreach (Detalle detalleSalida in e.Orden.Detalles) { InventarioProyecto registro = InventarioArchivo.ArticuloEnProyecto(e.Orden.Proyecto.Id, detalleSalida.Articulo.Id); if (registro != null) { registro.Cantidad -= detalleSalida.Cantidad; registro.Total = registro.Cantidad * detalleSalida.Articulo.Precio; if (registro.Cantidad > 0) { InventarioArchivo.ActualizarCantidad(e.Orden.Proyecto.Id, detalleSalida.Articulo.Id, registro); } else { InventarioArchivo.EliminarArticuloInventario(registro.Id); } } else { throw new Exception("El articulo no existe para el proyecto con id: " + e.Orden.Proyecto.Id); } } }
public void ActualizarCantidad(int idProyecto, int idArticulo, InventarioProyecto inventario) { using (reader = File.OpenText(direccion)) { using (writer = File.AppendText(direccionTemp)) { while (!reader.EndOfStream) { string registro = reader.ReadLine(); string[] campos = registro.Split('#'); if (Int32.Parse(campos[1]) == idProyecto && Int32.Parse(campos[2]) == idArticulo) { writer.WriteLine(inventario.ToString()); } else { writer.WriteLine(registro); } } } } File.Replace(direccionTemp, direccion, direccionBackup); }