public static void AjustarSalidas(int mes, int año)
        {
            using (var db = new DatosEntities())
            {
                var oldLibro = from p in db.LibroInventarios
                               where p.Mes == mes && p.Año == año
                               select p;
                foreach (var item in oldLibro)
                {
                    db.LibroInventarios.DeleteObject(item);
                }
                db.SaveChanges();
                var q = from factura in db.Facturas
                        join facturaplato in db.FacturasPlatos on factura.IdFactura equals facturaplato.IdFactura
                        where factura.Fecha.Value.Month == mes && factura.Fecha.Value.Year == año && factura.Anulado == false && (factura.Tipo == "FACTURA" || factura.Tipo == "CONSUMO")
                        select new VentasxPlato
                {
                    IdPlato        = facturaplato.Idplato,
                    Descripcion    = facturaplato.Descripcion,
                    PlatosVendidos = facturaplato.Cantidad.Value
                };

                var ResumenxPlato = from p in q.ToList()
                                    group p by new { p.IdPlato, p.Descripcion } into ventaxPlato
                    select new VentasxPlato
                {
                    IdPlato        = ventaxPlato.Key.IdPlato,
                    Descripcion    = ventaxPlato.Key.Descripcion,
                    PlatosVendidos = ventaxPlato.Sum(x => x.PlatosVendidos)
                };

                foreach (var plato in ResumenxPlato)
                {
                    List <PlatosIngrediente> ingredientes = FactoryPlatos.getIngredientes(plato.IdPlato);
                    foreach (PlatosIngrediente ingrediente in ingredientes)
                    {
                        LibroInventario itemMes = (from item in db.LibroInventarios
                                                   where item.Mes == mes && item.IdProducto == ingrediente.IdIngrediente
                                                   select item).FirstOrDefault();
                        if (itemMes == null)
                        {
                            itemMes       = CrearItem(mes, año, ingrediente);
                            itemMes.Costo = (from x in db.Ingredientes
                                             where x.IdIngrediente == itemMes.IdProducto
                                             select x.Costo).FirstOrDefault();
                        }
                        itemMes.Salidas          = itemMes.Salidas + (ingrediente.Cantidad * plato.PlatosVendidos);
                        itemMes.Final            = itemMes.Inicio + itemMes.Entradas - itemMes.Salidas;
                        itemMes.InventarioFisico = itemMes.Final;
                        itemMes.Ajustes          = 0;
                        if (itemMes.IdLibroInventarios == null)
                        {
                            itemMes.IdLibroInventarios = FactoryContadores.GetMax("IdLibroInventarios");
                            db.LibroInventarios.AddObject(itemMes);
                        }
                    }
                    db.SaveChanges();
                }
            }
        }
 public static void RevertirCompra(Compra compra)
 {
     //if (compra.IncluirLibroCompras != true)
     //    return;
     //if (compra.LibroInventarios == true)
     //    return;
     if (compra.IncluirLibroCompras.GetValueOrDefault(false) == false)
     {
         return;
     }
     using (DatosEntities db = new DatosEntities())
     {
         try
         {
             foreach (ComprasIngrediente item in compra.ComprasIngredientes)
             {
                 LibroInventario q = FactoryLibroInventarios.Item(db, FactoryLibroInventarios.CrearItem(compra, item).IdLibroInventarios);
                 q.Entradas        -= item.Cantidad;
                 q.Final            = q.Entradas + q.Inicio - q.Salidas;
                 q.InventarioFisico = q.Final;
                 q.Costo            = item.CostoNeto;
                 q.Ajustes          = 0;
                 db.SaveChanges();
             }
             db.SaveChanges();
         }
         catch (Exception x)
         {
             Basicas.ManejarError(x);
         }
     }
 }
        public static LibroInventario CrearItem(Compra factura, ComprasIngrediente item)
        {
            using (var db = new DatosEntities())
            {
                DateTime        FechaInventario = Convert.ToDateTime("01/" + factura.Mes.Value.ToString("00") + "/" + factura.Año.Value.ToString("0000"));
                LibroInventario q = (from p in db.LibroInventarios
                                     where factura.Mes == p.Mes && factura.Año == p.Año && p.IdProducto == item.IdIngrediente
                                     select p).FirstOrDefault();
                if (q == null)
                {
                    LibroInventario ant = (from p in db.LibroInventarios
                                           where p.Fecha < FechaInventario && p.IdProducto == item.IdIngrediente
                                           select p).FirstOrDefault();

                    q                    = new LibroInventario();
                    q.IdProducto         = item.IdIngrediente;
                    q.Fecha              = factura.Fecha;
                    q.Inicio             = ant == null ? 0 : ant.InventarioFisico;
                    q.Entradas           = 0;
                    q.Salidas            = 0;
                    q.Final              = 0;
                    q.InventarioFisico   = 0;
                    q.Ajustes            = 0;
                    q.Producto           = item.Ingrediente;
                    q.Mes                = factura.Mes;
                    q.Año                = factura.Año;
                    q.IdLibroInventarios = FactoryContadores.GetMax("IdLibroInventarios");
                    db.LibroInventarios.AddObject(q);
                    db.SaveChanges();
                }
                return(q);
            }
        }
 public static void Validar(LibroInventario registro)
 {
     if (string.IsNullOrEmpty(registro.IdProducto))
     {
         throw new Exception("Error debe elegir el producto");
     }
 }
Esempio n. 5
0
 private void EliminarRegistro()
 {
     if (this.gridView1.IsFocusedView)
     {
         LibroInventario Registro = (LibroInventario)this.bs.Current;
         if (Registro == null)
         {
             return;
         }
         if (MessageBox.Show("Esta seguro de eliminar este registro", "Atencion", MessageBoxButtons.YesNo) != DialogResult.Yes)
         {
             return;
         }
         try
         {
             db.LibroInventarios.Remove(Registro);
             db.SaveChanges();
             Busqueda();
         }
         catch (Exception x)
         {
             MessageBox.Show(x.Message);
         }
     }
 }
        private void EditarRegistro()
        {
            FrmLibroInventariosItem F        = new FrmLibroInventariosItem();
            LibroInventario         registro = (LibroInventario)this.bs.Current;

            if (registro == null)
            {
                return;
            }
            F.registro = registro;
            F.Modificar();
            if (F.DialogResult == DialogResult.OK)
            {
                F.registro.Mes = Convert.ToInt16(txtMes.Text);
                F.registro.Año = Convert.ToInt16(txtAño.Text);
                F.registro.Calcular();
                F.registro.Ajustes = F.registro.InventarioFisico - F.registro.Final;
                db.SaveChanges();
                Busqueda();
            }
            else
            {
                db.Refresh(System.Data.Objects.RefreshMode.StoreWins, registro);
            }
        }
 private void Aceptar_Click(object sender, EventArgs e)
 {
     try
     {
         libroInventarioBindingSource.EndEdit();
         registro         = (LibroInventario)libroInventarioBindingSource.Current;
         registro.Final   = registro.Inicio.GetValueOrDefault(0) + registro.Entradas.GetValueOrDefault(0) - registro.Salidas.GetValueOrDefault(0);
         registro.Ajustes = registro.Final.GetValueOrDefault(0) - registro.InventarioFisico.GetValueOrDefault(0);
         FactoryLibroInventarios.Validar(registro);
         this.DialogResult = DialogResult.OK;
         this.Close();
     }
     catch (Exception ex)
     {
         MessageBox.Show("Error al validar los datos \n" + ex.Message, "Atencion", MessageBoxButtons.OK);
     }
 }
        public static LibroInventario CrearItem(int?mes, int?año, PlatosIngrediente item)
        {
            using (var db = new DatosEntities())
            {
                DateTime        FechaInventario = Convert.ToDateTime("01/" + mes.Value.ToString("00") + "/" + año.Value.ToString("0000"));
                LibroInventario ant             = (from p in db.LibroInventarios
                                                   where p.Fecha < FechaInventario && p.IdProducto == item.IdPlato
                                                   select p).FirstOrDefault();

                LibroInventario q = new LibroInventario();
                q.IdProducto       = item.IdIngrediente;
                q.Fecha            = FechaInventario;
                q.Inicio           = ant == null ? 0 : ant.InventarioFisico;
                q.Entradas         = 0;
                q.Salidas          = 0;
                q.Final            = 0;
                q.InventarioFisico = 0;
                q.Ajustes          = 0;
                q.Mes      = mes;
                q.Año      = año;
                q.Producto = item.Ingrediente;
                return(q);
            }
        }
 private void Limpiar()
 {
     registro = new LibroInventario();
 }