Ejemplo n.º 1
0
        public List <EntregaDetalle> ObtenerEntregaDetalles(int idEntrega)
        {
            var context = new ETNADbModelContainer();

            return(context.EntregaDetalle.Where(s =>
                                                (idEntrega == 0 || s.idEntrega == idEntrega)
                                                ).ToList());
        }
Ejemplo n.º 2
0
        public int generarEntregasPedido(DateTime fechaInicio, DateTime fechaFin)
        {
            var context = new ETNADbModelContainer();

            int generar = context.generarEntregasPedido(fechaInicio, fechaFin);

            return(generar);
        }
Ejemplo n.º 3
0
        public bool eliminarEntrega(int id)
        {
            var context = new ETNADbModelContainer();
            var entrega = context.Entrega.Find(id);

            entrega.idEstadoEntrega = 4;
            context.SaveChanges();
            return(true);
        }
Ejemplo n.º 4
0
        public bool modificarEntrega(int id, DateTime fechaEntrega)
        {
            var context = new ETNADbModelContainer();
            var entrega = context.Entrega.Find(id);

            entrega.FechaEntrega = fechaEntrega;
            context.SaveChanges();
            return(true);
        }
Ejemplo n.º 5
0
        public bool RechazarGuiaEntrada(int idSolicitud, string observaciones)
        {
            var context   = new ETNADbModelContainer();
            var solicitud = context.SolicitudesEntrada.Find(idSolicitud);

            solicitud.Observaciones = observaciones;
            solicitud.Estado        = (int)Enums.EstadoSolicitudEntrada.Rechazada;
            context.SaveChanges();
            return(true);
        }
Ejemplo n.º 6
0
        public bool GenerarGuiaEntrada(int idSolicitud, int idAlmacen, int idEmpleado)
        {
            //NOTA: Cada vez que guardamos algo, usar este bloque try catch para poder saber por qué dió excepción (si es que da)
            try
            {
                // Crear guía de entrada
                var context     = new ETNADbModelContainer();
                var guiaEntrada = new GuiaEntrada();
                guiaEntrada.FechaElaboracion       = DateTime.Now;
                guiaEntrada.IdentificadorDocumento = "GE-" + guiaEntrada.FechaElaboracion.ToString("MMddyyHmmss");
                guiaEntrada.SolicitudEntrada       = context.SolicitudesEntrada.Find(idSolicitud);
                guiaEntrada.Almacen  = context.Almacenes.Find(idAlmacen);
                guiaEntrada.Empleado = context.Empleados.Find(idEmpleado);
                context.DocumentosReferencia.Add(guiaEntrada);

                // Actualizar estado de la solicitud
                guiaEntrada.SolicitudEntrada.Estado = (int)Enums.EstadoSolicitudEntrada.Atendida;

                //Generar Kardex y actualizar stock por cada producto
                var detalleSolicitud = context.DetalleSolicitudEntrada.Where(d => d.IdSolicitudEntrada == idSolicitud).ToList();

                foreach (var detalle in detalleSolicitud)
                {
                    var kardex = new Kardex();
                    kardex.Almacen             = context.Almacenes.Find(idAlmacen);
                    kardex.DocumentoReferencia = guiaEntrada;
                    kardex.Producto            = detalle.Producto;
                    kardex.Cantidad            = detalle.Cantidad;
                    kardex.ValorUnitario       = detalle.Producto.PrecioListaCompra;
                    kardex.TipoMovimiento      = (int)Enums.TipoMovimiento.Entrada;
                    context.Kardex.Add(kardex);

                    var stockProducto = context.StockProductos.First(s => s.IdAlmacen == idAlmacen && s.IdProducto == detalle.IdProducto);
                    stockProducto.CantidadDisponible += detalle.Cantidad;
                }

                context.SaveChanges();
                return(true);
            }
            catch (DbEntityValidationException e)
            {
                foreach (var eve in e.EntityValidationErrors)
                {
                    Console.WriteLine("Entity of type \"{0}\" in state has the following validation errors:",
                                      eve.Entry.Entity.GetType().Name);
                    foreach (var ve in eve.ValidationErrors)
                    {
                        Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                                          ve.PropertyName, ve.ErrorMessage);
                    }
                }
                throw;
            }
        }
Ejemplo n.º 7
0
        public List <Entrega> ObtenerEntregas(DateTime fechaInicio, DateTime fechaFin,
                                              int idCliente, int idEstadoEntrega)
        {
            var context = new ETNADbModelContainer();

            return(context.Entrega.Where(s =>
                                         (idCliente == 0 || s.idCliente == idCliente) &&
                                         (idEstadoEntrega == 0 || s.idEstadoEntrega == idEstadoEntrega) &&
                                         (fechaInicio == DateTime.MinValue || s.FechaGeneracion >= fechaInicio) &&
                                         (fechaFin == DateTime.MinValue || s.FechaGeneracion <= fechaFin)
                                         ).ToList());
        }
        public List <SolicitudEntrada> ObtenerSolicitudesEntrada(int idSolicitud, int estadoSolicitud,
                                                                 DateTime fechaInicio, DateTime fechaFin, int idEmpleado, int tipoEntrada)
        {
            var context = new ETNADbModelContainer();

            return(context.SolicitudesEntrada.Where(s =>
                                                    (idSolicitud == 0 || s.Id == idSolicitud) &&
                                                    (estadoSolicitud == 0 || s.Estado == estadoSolicitud) &&
                                                    (fechaInicio == DateTime.MinValue || s.FechaElaboracion >= fechaInicio) &&
                                                    (fechaFin == DateTime.MinValue || s.FechaElaboracion <= fechaFin) &&
                                                    (tipoEntrada == 0 || s.TipoEntrada == tipoEntrada) &&
                                                    (idEmpleado == 0 || s.Empleado.Id == idEmpleado)
                                                    ).ToList());
        }
        public List <SolicitudSalida> ObtenerSolicitudesSalida(int idSolicitud, int estadoSolicitud,
                                                               DateTime fechaInicio, DateTime fechaFin, int idEmpleado, int tipoSalida, string direccionEntrega,
                                                               string razonSocialDestinatario)
        {
            var context = new ETNADbModelContainer();

            return(context.SolicitudesSalida.Where(s =>
                                                   (idSolicitud == 0 || s.Id == idSolicitud) &&
                                                   //Aprobada o parcial.
                                                   (s.Estado == 2 || s.Estado == 3) &&
                                                   (fechaInicio == DateTime.MinValue || s.FechaElaboracion >= fechaInicio) &&
                                                   (fechaFin == DateTime.MinValue || s.FechaElaboracion <= fechaFin) &&
                                                   (tipoSalida == 0 || s.TipoSalida == tipoSalida) &&
                                                   (String.IsNullOrEmpty(direccionEntrega) || s.DireccionEntrega.Equals(direccionEntrega)) &&
                                                   (String.IsNullOrEmpty(razonSocialDestinatario) || s.RazonSocialDestinatario.Equals(razonSocialDestinatario)) &&
                                                   (idEmpleado == 0 || s.Empleado.Id == idEmpleado)
                                                   ).ToList());
        }
Ejemplo n.º 10
0
        public List <EstadoEntrega> ObtenerEstadosEntrega()
        {
            var context = new ETNADbModelContainer();

            return(context.EstadoEntrega.ToList());
        }
Ejemplo n.º 11
0
        public Almacen ObtenerAlmacen(int idAlmacen)
        {
            var context = new ETNADbModelContainer();

            return(context.Almacenes.Find(idAlmacen));
        }
Ejemplo n.º 12
0
        public List <Almacen> ObtenerAlmacenesPorEmpleado(int idEmpleado)
        {
            var context = new ETNADbModelContainer();

            return(context.Almacenes.Where(a => a.Empleado.Any(e => e.Id == idEmpleado)).ToList());
        }
Ejemplo n.º 13
0
        public bool GenerarGuiaSalidaParcial(int idSolicitud, int idAlmacen, int idEmpleado, Dictionary <int, object> listProductos)
        {
            //NOTA: Cada vez que guardamos algo, usar este bloque try catch para poder saber por qué dió excepción (si es que da)
            try
            {
                // Crear guía de entrada
                var context    = new ETNADbModelContainer();
                var guiaSalida = new GuiaSalida();
                guiaSalida.FechaElaboracion       = DateTime.Now;
                guiaSalida.IdentificadorDocumento = "GS-" + guiaSalida.FechaElaboracion.ToString("MMddyyHmmss");
                guiaSalida.SolicitudSalida        = context.SolicitudesSalida.Find(idSolicitud);
                guiaSalida.Almacen  = context.Almacenes.Find(idAlmacen);
                guiaSalida.Empleado = context.Empleados.Find(idEmpleado);
                context.DocumentosReferencia.Add(guiaSalida);

                var  detalleSolicitud = context.DetalleSolicitudSalida.Where(d => d.IdSolicitudSalida == idSolicitud).ToList();
                bool parcial          = false;
                // Actualizar estado de la solicitud

                foreach (var solicitudEstado in detalleSolicitud)
                {
                    foreach (var cantidadesSolicitudEstado in listProductos)
                    {
                        if (solicitudEstado.IdProducto == cantidadesSolicitudEstado.Key)
                        {
                            if ((solicitudEstado.CantidadFinal - (int)cantidadesSolicitudEstado.Value) > 0)
                            {
                                parcial = true;
                            }
                        }
                    }
                }

                if (parcial)
                {
                    guiaSalida.SolicitudSalida.Estado = (int)Enums.EstadoSolicitudSalida.Parcialmente;
                }
                else
                {
                    guiaSalida.SolicitudSalida.Estado = (int)Enums.EstadoSolicitudSalida.Atendida;
                }

                foreach (var detalle in detalleSolicitud)
                {
                    //Generar Kardex por cada producto
                    var kardex = new Kardex();
                    kardex.Almacen             = context.Almacenes.Find(idAlmacen);
                    kardex.DocumentoReferencia = guiaSalida;
                    kardex.Producto            = detalle.Producto;
                    kardex.Cantidad            = detalle.Cantidad;
                    kardex.ValorUnitario       = detalle.Producto.PrecioListaVenta;
                    kardex.TipoMovimiento      = (int)Enums.TipoMovimiento.Salida;
                    context.Kardex.Add(kardex);

                    //Colocar las cantidades parciales de salida
                    foreach (var cantidades in listProductos)
                    {
                        if (detalle.IdProducto == cantidades.Key)
                        {
                            detalle.CantidadFinal = detalle.CantidadFinal - (int)cantidades.Value;
                        }
                    }

                    //Generando el detalle de guia de salida
                    var detalleGuiaSalida = new DetalleGuiaSalida();
                    detalleGuiaSalida.GuiaSalida = guiaSalida;
                    detalleGuiaSalida.IdProducto = detalle.IdProducto;
                    detalleGuiaSalida.Cantidad   = detalle.CantidadFinal;
                    context.DetalleGuiaSalida.Add(detalleGuiaSalida);
                }

                context.SaveChanges();
                return(true);
            }
            catch (DbEntityValidationException e)
            {
                foreach (var eve in e.EntityValidationErrors)
                {
                    Console.WriteLine("Entity of type \"{0}\" in state has the following validation errors:",
                                      eve.Entry.Entity.GetType().Name);
                    foreach (var ve in eve.ValidationErrors)
                    {
                        Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                                          ve.PropertyName, ve.ErrorMessage);
                    }
                }
                throw;
            }
        }
Ejemplo n.º 14
0
        public List <Cliente> ObtenerClientes()
        {
            var context = new ETNADbModelContainer();

            return(context.Cliente.ToList());
        }
Ejemplo n.º 15
0
        public Entrega ObtenerEntrega(int codigo)
        {
            var context = new ETNADbModelContainer();

            return(context.Entrega.Find(codigo));
        }
        public SolicitudSalida ObtenerSolicitudSalida(int idSolicitud)
        {
            var context = new ETNADbModelContainer();

            return(context.SolicitudesSalida.Find(idSolicitud));
        }
Ejemplo n.º 17
0
        public List <Empleado> ObtenerEmpleados()
        {
            var context = new ETNADbModelContainer();

            return(context.Empleados.ToList());
        }