Пример #1
0
        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);
                        }
                    }
                }
            }
        }
Пример #2
0
 public void AgregarArticuloInventario(InventarioProyecto inventario)
 {
     id           += 1;
     inventario.Id = id;
     using (writer = File.AppendText(direccion))
     {
         writer.WriteLine(inventario.ToString());
     }
 }
Пример #3
0
        public int ObtenerCantidadArticuloPorProyecto(int idProyecto, int idArticulo)
        {
            InventarioProyecto registro = InventarioArchivo.ArticuloEnProyecto(idProyecto, idArticulo);

            if (registro != null)
            {
                return(registro.Cantidad);
            }
            else
            {
                return(0);
            }
        }
Пример #4
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));
         }
     }
 }
Пример #5
0
 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);
         }
     }
 }
Пример #6
0
        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);
        }