Esempio n. 1
0
        public void LoadTest()
        {
            var db  = new ErpContext();
            var dia = new DiaContable()
            {
                Fecha = DateTime.Now, Abierto = true
            };

            db.Set <DiaContable>().Add(dia);

            var user = new Usuario()
            {
                UserName = "******"
            };

            db.SaveChanges();

            var venta = new Venta()
            {
                Fecha = DateTime.Now, DiaContable = dia, Elaboraciones = new List <DetalleDeVenta>()
                {
                    new DetalleDeVenta()
                    {
                        ElaboracionId = 50, Cantidad = 2
                    }
                }
            };
        }
Esempio n. 2
0
        public FichaDeCosto(int menuId)
        {
            InitializeComponent();

            var db = new ErpContext();
            var _productoService = new ProductoService(db);
            var menu             = db.Set <Elaboracion>().Find(menuId);

            //compras
            nombreMenu.Text = menu.Nombre;

            var productosData = menu.Productos.Select(p => new
            {
                Producto = p.Producto.Nombre,
                p.Cantidad,
                UnidadDeMedida = p.UnidadDeMedida.Siglas,
                Costo          = p.Cantidad * _productoService.GetPrecioUnitarioDeProducto(p.ProductoId, p.UnidadDeMedidaId)
            });

            ProductosReport.DataSource = productosData;

            this.produtoCell.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
                new DevExpress.XtraReports.UI.XRBinding("Text", null, "Producto"),
            });

            this.cantidadCell.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
                new DevExpress.XtraReports.UI.XRBinding("Text", null, "Cantidad")
            });

            this.uMCell.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
                new DevExpress.XtraReports.UI.XRBinding("Text", null, "UnidadDeMedida")
            });

            this.costoCell.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
                new DevExpress.XtraReports.UI.XRBinding("Text", null, "Costo")
            });


            costoTotalCell.Text = String.Format("{0:C}", productosData.Sum(c => c.Costo));

            //ventas

            AgregosReport.DataSource = menu.Agregados;

            this.agregoCell.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
                new DevExpress.XtraReports.UI.XRBinding("Text", null, "Producto.Nombre")
            });

            this.agregoCantidadCell.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
                new DevExpress.XtraReports.UI.XRBinding("Text", null, "Cantidad")
            });

            this.agregoUmCell.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
                new DevExpress.XtraReports.UI.XRBinding("Text", null, "UnidadDeMedida.Siglas")
            });
        }
Esempio n. 3
0
        public ActionResult Firmar(string nombreUsuario, string contraseña)
        {
            var usuario = UserManager.Find(nombreUsuario, contraseña);

            if (usuario == null)
            {
                TempData["error"] = "Nombre de usuario o contraseña incorrecta";
                return(RedirectToAction("Index"));
            }
            var vendedor = _db.Set <Vendedor>().SingleOrDefault(v => v.UsuarioId == usuario.Id);

            if (vendedor == null || usuario.Roles.Any(r => r.Role.Name == RolesMontin.Administrador))
            {
                TempData["error"] = "Este usuario no registra la asistencia";
                return(RedirectToAction("Index"));
            }
            var diaContable = _periodoContableService.GetDiaContableActual();

            var asistencia = _db.Asistencias.SingleOrDefault(a => a.DiaContableId == diaContable.Id && a.VendedorId == vendedor.Id);

            if (asistencia == null)
            {
                asistencia = new Asistencia()
                {
                    VendedorId = vendedor.Id, DiaContableId = diaContable.Id
                };
                _db.Set <Asistencia>().Add(asistencia);
            }

            if (asistencia.Entrada == null)
            {
                asistencia.Entrada = DateTime.Now;
            }
            else if (asistencia.Salida == null)
            {
                asistencia.Salida = DateTime.Now;
            }
            _db.SaveChanges();
            TempData["exito"] = "Asistencia registrada correctamente";
            return(RedirectToAction("Index"));
        }
Esempio n. 4
0
        public Inventario(string lugar, DateTime?fecha)
        {
            InitializeComponent();

            var db = new ErpContext();

            fecha_reporte.Text = "Fecha del reporte: " + DateTime.Now.ToShortDateString();
            if (fecha == null)
            {
                titulo_reporte.Text += " de " + lugar + " actualmente";

                if (lugar == "Almacen")
                {
                    DataSource = db.ExistenciasEnAlmacenes.Where(e => e.Producto.Producto.Activo).Select(e => new
                    {
                        Producto = e.Producto.Producto.Nombre,
                        Um       = e.Producto.UnidadDeMedida.Siglas,
                        Cantidad = e.ExistenciaEnAlmacen,
                        Valor    = e.Producto.PrecioUnitario * e.ExistenciaEnAlmacen
                    }).OrderBy(p => p.Producto).ToList();
                }
                else
                {
                    var cc = db.CentrosDeCostos.SingleOrDefault(c => c.Nombre == lugar);
                    DataSource = db.ExistenciasEnCentroDeCostos.Where(e => e.Producto.Producto.Activo && e.CentroDeCostoId == cc.Id && e.Producto.Producto.EsInventariable).Select(e => new
                    {
                        Producto = e.Producto.Producto.Nombre,
                        Um       = e.Producto.UnidadDeMedida.Siglas,
                        Cantidad = e.Cantidad,
                        Valor    = Math.Round(e.Producto.PrecioUnitario * e.Cantidad, 2)
                    }).OrderBy(p => p.Producto).ToList();
                }
            }
            else
            {
                titulo_reporte.Text += " de " + lugar + " al cierre del dia " + fecha.Value.ToShortDateString();
                fecha = fecha.Value.AddDays(1);
                if (lugar == "Almacen")
                {
                    var entradasAlmacen =
                        db.Set <EntradaAlmacen>().Where(d => d.DiaContable.Fecha >= fecha).GroupBy(d => d.Producto).Select(d => new { Producto = d.Key, Cantidad = d.Sum(e => e.Cantidad) });
                    var salidasAlmacen = db.Set <DetalleSalidaAlmacen>().Where(d => d.Vale.DiaContable.Fecha >= fecha).GroupBy(d => d.Producto).Select(d => new { Producto = d.Key.Producto, Cantidad = d.Sum(e => e.Cantidad) });
                    var mermasAlmacen  = db.Set <SalidaPorMerma>().Where(d => d.DiaContable.Fecha >= fecha).ToList().GroupBy(d => d.ExistenciaAlmacen).Select(d => new { Producto = d.Key.Producto, Cantidad = d.Sum(e => e.Cantidad * (d.Key.Producto.UnidadDeMedida.FactorDeConversion / e.UnidadDeMedida.FactorDeConversion)) }).ToList();
                    DataSource = db.ExistenciasEnAlmacenes.Where(e => e.Producto.Producto.Activo).ToList().Select(e => new
                    {
                        Producto = e.Producto.Producto.Nombre,
                        Um       = e.Producto.UnidadDeMedida.Siglas,
                        Cantidad = e.ExistenciaEnAlmacen - (entradasAlmacen.Any(p => p.Producto.Id == e.ProductoId)?entradasAlmacen.SingleOrDefault(p => p.Producto.Id == e.ProductoId).Cantidad:0) +
                                   (salidasAlmacen.Any(p => p.Producto.Id == e.ProductoId) ? salidasAlmacen.SingleOrDefault(p => p.Producto.Id == e.ProductoId).Cantidad : 0) +
                                   (mermasAlmacen.Any(p => p.Producto.Id == e.ProductoId) ? mermasAlmacen.SingleOrDefault(p => p.Producto.Id == e.ProductoId).Cantidad : 0),

                        Valor = e.Producto.PrecioUnitario * e.ExistenciaEnAlmacen
                    }).OrderBy(p => p.Producto).ToList();
                }
                else
                {
                    var cc          = db.CentrosDeCostos.SingleOrDefault(c => c.Nombre == lugar);
                    var movimientos =
                        db.MovimientosDeProductos.Where(m => m.DiaContable.Fecha >= fecha && m.CentroDeCostoId == cc.Id).Include(m => m.Tipo).ToList().GroupBy(m => m.Producto).Select(m => new { Producto = m.Key,
                                                                                                                                                                                                  Cantidad = m.Sum(d => d.Cantidad * d.Tipo.Factor) }).ToList();
                    DataSource = db.ExistenciasEnCentroDeCostos.Where(e => e.Producto.Producto.Activo && e.CentroDeCostoId == cc.Id && e.Producto.Producto.EsInventariable).ToList().Select(e => new
                    {
                        Producto = e.Producto.Producto.Nombre,
                        Um       = e.Producto.UnidadDeMedida.Siglas,
                        Cantidad = e.Cantidad - (movimientos.Any(m => m.Producto.Id == e.Producto.Id)? movimientos.SingleOrDefault(m => m.Producto.Id == e.Producto.Id).Cantidad:0),
                        Valor    = Math.Round(e.Producto.PrecioUnitario * e.Cantidad, 2)
                    }).OrderBy(p => p.Producto).ToList();
                }
            }


            this.productoCell.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
                new DevExpress.XtraReports.UI.XRBinding("Text", null, "Producto")
            });

            this.umCell.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
                new DevExpress.XtraReports.UI.XRBinding("Text", null, "Um")
            });

            this.cantidadCell.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
                new DevExpress.XtraReports.UI.XRBinding("Text", null, "Cantidad")
            });

            this.valorCell.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
                new DevExpress.XtraReports.UI.XRBinding("Text", null, "Valor", "{0:C}")
            });
        }