Beispiel #1
0
        protected void btnCancelarVenta_Click(object sender, EventArgs e)
        {
            int     iduser  = int.Parse(Session["IdUser"].ToString());
            Usuario usuario = uow.UsuarioBusinessLogic.GetByID(iduser);

            DataAccessLayer.Models.Ventas venta = uow.VentasBL.GetByID(int.Parse(_idVenta.Value));
            venta.Status = 3;
            venta.ObservacionCancelacion = txtObservaciones.Value;
            venta.UsuarioCancelacion     = usuario.Nombre;
            venta.FechaCancelacion       = DateTime.Now;
            uow.VentasBL.Update(venta);



            ArticulosMovimientos bitacora = uow.ArticulosMovimientosBL.Get(p => p.VentaId == venta.Id).First();

            bitacora.Status = 3;
            uow.ArticulosMovimientosBL.Update(bitacora);

            List <VentasArticulos> lista = uow.VentasArticulosBL.Get(p => p.VentaId == venta.Id).ToList();

            foreach (VentasArticulos item in lista)
            {
                Articulos articulo = uow.ArticulosBL.GetByID(item.ArticuloId);
                articulo.CantidadDisponible = articulo.CantidadDisponible + item.Cantidad;
                articulo.CantidadEnAlmacen  = articulo.CantidadEnAlmacen + item.Cantidad;
                uow.ArticulosBL.Update(articulo);
            }


            uow.SaveChanges();


            BindGrid();
            txtObservaciones.Value = string.Empty;
            divVentas.Style.Add("display", "block");
            divCancelacion.Style.Add("display", "none");
            _idVenta.Value = string.Empty;

            Response.Redirect("wfVentasCancelaciones.aspx");
        }
        protected void btnAceptarVenta_Click(object sender, EventArgs e)
        {
            string  pass = txtPassword.Text;
            Usuario user = uow.UsuarioBusinessLogic.Get(u => u.Password == pass && u.Activo == true).FirstOrDefault();

            if (user == null)
            {
                divMsgError.Style.Add("display", "block");
                divMsgSuccess.Style.Add("display", "none");
                lblMsgError.Text = "El password es incorrecto, intente de nuevo.";

                return;
            }



            //detalle de la venta
            int usuarioSesion = int.Parse(Session["IdUser"].ToString());
            List <ArticuloVenta> listArticulos = uow.ArticuloVentaBusinessLogic.Get(p => p.UsuarioId == usuarioSesion).ToList();


            if (listArticulos.Count == 0)
            {
                divMsgError.Style.Add("display", "block");
                divMsgSuccess.Style.Add("display", "none");
                lblMsgError.Text = "La venta no ha sido detallada, agregue productos a la venta para poder proceder a registrarla";

                return;
            }



            DataAccessLayer.Models.Ventas venta = new DataAccessLayer.Models.Ventas();
            venta.Folio       = ObtenerMaxFolio();
            venta.Ejercicio   = DateTime.Now.Year;
            venta.FolioCadena = ArmarFolioCadena(venta.Folio);
            if (!_IDReceta.Value.Equals(string.Empty))
            {
                venta.RecetaId = Utilerias.StrToInt(_IDReceta.Value);
            }
            venta.Importe          = listArticulos.Sum(p => p.Total);
            venta.Status           = 1;
            venta.Fecha            = Convert.ToDateTime(txtFecha.Value);
            venta.UsuarioId        = user.Id;
            venta.FechaCancelacion = DateTime.Now;
            uow.VentasBL.Insert(venta);


            //bitacora
            List <ArticulosMovimientos> listaBitacora = uow.ArticulosMovimientosBL.Get().ToList();
            int movimiento;

            if (listaBitacora.Count == 0)
            {
                movimiento = 0;
            }
            else
            {
                movimiento = listaBitacora.Max(p => p.Movimiento);
            }

            movimiento++;

            ArticulosMovimientos bitacora = new ArticulosMovimientos();

            bitacora.Ejercicio  = DateTime.Now.Year;
            bitacora.Tipo       = 2;
            bitacora.Venta      = venta;
            bitacora.Fecha      = DateTime.Now;
            bitacora.Status     = 1;
            bitacora.Movimiento = movimiento;
            uow.ArticulosMovimientosBL.Insert(bitacora);



            foreach (ArticuloVenta item in listArticulos)
            {
                VentasArticulos ventaArt = new VentasArticulos();
                ventaArt.VentaId      = venta.Id;
                ventaArt.ArticuloId   = item.ArticuloId;
                ventaArt.Cantidad     = item.Cantidad;
                ventaArt.PrecioCompra = item.PrecioCompra;
                ventaArt.PrecioVenta  = item.PrecioVenta;
                ventaArt.Subtotal     = item.SubTotal;
                ventaArt.IVA          = item.IVA;
                ventaArt.Total        = item.Total;
                uow.VentasArticulosBL.Insert(ventaArt);


                ArticulosMovimientosSalidas bitDetalle = new ArticulosMovimientosSalidas();
                bitDetalle.ArticuloMovimiento = bitacora;
                bitDetalle.ArticuloId         = item.ArticuloId;
                bitDetalle.Cantidad           = item.Cantidad;
                uow.ArticulosMovimientosSalidasBL.Insert(bitDetalle);


                Articulos articulo = uow.ArticulosBL.GetByID(item.ArticuloId);
                articulo.CantidadEnAlmacen  -= item.Cantidad;
                articulo.CantidadDisponible -= item.Cantidad;
                uow.ArticulosBL.Update(articulo);
            }



            if (!_IDReceta.Value.Equals(string.Empty))
            {
                int idReceta = Utilerias.StrToInt(_IDReceta.Value);

                Recetas receta = uow.RecetasBusinessLogic.GetByID(idReceta);
                receta.Status = 2;
                uow.RecetasBusinessLogic.Update(receta);
            }

            BindGridProductosCatalago();
            BindGridRecetas();

            uow.SaveChanges();


            if (uow.Errors.Count == 0)
            {
                uow.ArticuloVentaBusinessLogic.DeleteAll();
                uow.SaveChanges();
            }
            else
            {
                divMsgError.Style.Add("display", "block");
                divMsgSuccess.Style.Add("display", "none");
                lblMsgError.Text = "Hubo problemas al registrar la venta, intentelo nuevamente";
                return;
            }

            //ClientScript.RegisterStartupScript(this.GetType(), "script", "fnc_MostrarVenta(" + venta.Id + ")", true);
            Response.Redirect("wfVentasDia.aspx");
        }
        protected void btnGenerarSalida_Click(object sender, EventArgs e)
        {
            int     idUser  = Utilerias.StrToInt(Session["IdUser"].ToString());
            Usuario usuario = uow.UsuarioBusinessLogic.GetByID(idUser);

            if (usuario.Nivel == 3)
            {
                string  pass = txtPassword.Text;
                Usuario user = uow.UsuarioBusinessLogic.Get(u => u.Password == pass).FirstOrDefault();

                if (user == null)
                {
                    divMsgError.Style.Add("display", "block");
                    divMsgSuccess.Style.Add("display", "none");
                    lblMsgError.Text = "El password es incorrecto, intente de nuevo.";

                    return;
                }

                idUser = user.Id;
            }



            //detalle de la venta
            int usuarioSesion = int.Parse(Session["IdUser"].ToString());
            List <ArticuloSalidaGenerica> listArticulos = uow.ArticuloSalidaGenericaBusinessLogic.Get(p => p.UsuarioId == usuarioSesion).ToList();



            AlmacenSalidasGenericas salida = new AlmacenSalidasGenericas();

            salida.Folio         = ObtenerMaxFolio();
            salida.Ejercicio     = DateTime.Now.Year;
            salida.Fecha         = Convert.ToDateTime(txtFecha.Value);
            salida.TipoSalidaId  = int.Parse(ddlTipos.SelectedValue);
            salida.Observaciones = txtObservaciones.Value;
            salida.FolioCadena   = ArmarFolioCadena(salida.Folio);
            salida.UsuarioId     = idUser;
            uow.AlmacenSalidasGenericasBL.Insert(salida);



            //bitacora
            List <ArticulosMovimientos> listaBitacora = uow.ArticulosMovimientosBL.Get().ToList();
            int movimiento;

            if (listaBitacora.Count == 0)
            {
                movimiento = 0;
            }
            else
            {
                movimiento = listaBitacora.Max(p => p.Movimiento);
            }

            movimiento++;

            ArticulosMovimientos bitacora = new ArticulosMovimientos();

            bitacora.Ejercicio             = DateTime.Now.Year;
            bitacora.Tipo                  = 2;
            bitacora.AlmacenSalidaGenerica = salida;
            bitacora.Fecha                 = DateTime.Now;
            bitacora.Status                = 1;
            bitacora.Movimiento            = movimiento;
            uow.ArticulosMovimientosBL.Insert(bitacora);



            foreach (ArticuloSalidaGenerica item in listArticulos)
            {
                AlmacenSalidasGenericasArticulos salidaDetalle = new AlmacenSalidasGenericasArticulos();
                salidaDetalle.AlmacenSalidaGenerica = salida;
                salidaDetalle.ArticuloId            = item.ArticuloId;
                salidaDetalle.Cantidad = item.Cantidad;
                uow.AlmacenSalidasGenericasArticulos.Insert(salidaDetalle);


                ArticulosMovimientosSalidas bitDetalle = new ArticulosMovimientosSalidas();
                bitDetalle.ArticuloMovimiento = bitacora;
                bitDetalle.ArticuloId         = item.ArticuloId;
                bitDetalle.Cantidad           = item.Cantidad;
                uow.ArticulosMovimientosSalidasBL.Insert(bitDetalle);

                Articulos articulo = uow.ArticulosBL.GetByID(item.ArticuloId);
                articulo.CantidadEnAlmacen  -= item.Cantidad;
                articulo.CantidadDisponible -= item.Cantidad;
                uow.ArticulosBL.Update(articulo);
            }

            uow.SaveChanges();

            if (uow.Errors.Count == 0)
            {
                uow.ArticuloSalidaGenericaBusinessLogic.DeleteAll();
                uow.SaveChanges();
            }
            else
            {
                divMsgError.Style.Add("display", "block");
                divMsgSuccess.Style.Add("display", "none");
                lblMsgError.Text = "Hubo problemas al registrar la salida, intentelo nuevamente";
                return;
            }


            //Se muestra la Salida
            //ClientScript.RegisterStartupScript(this.GetType(), "script", "fnc_MostrarSalida(" + salida.Id + ")", true);

            Response.Redirect("wfListaSalidasGen.aspx");
        }
Beispiel #4
0
        protected void btnGuardarFactura_Click(object sender, EventArgs e)
        {
            List <FacturasAlmacenArticulosTMP> lista;
            int idPedido = int.Parse(_idPedido.Value);

            lista = uow.FacturasAlmacenArticulosTMPBL.Get(p => p.PedidoId == idPedido && p.Precio == 0 && p.Cantidad > 0).ToList();

            if (lista.Count > 0)
            {
                lblMensajes.Text = "Para poder registrar la factura, es necesario registrar todos los productos";
                divMsg.Style.Add("display", "block");
                return;
            }

            if (txtFolio.Value == string.Empty)
            {
                // lblMensajes.Text = "No ha capturado el Número de Factura, capture ese dato para poder registrar la entrada";
                // divMsg.Style.Add("display", "block");
                return;
            }

            if (dtpFecha.Value.ToString() == string.Empty)
            {
                //lblMensajes.Text = "No ha indicado la fecha de la Factura, capture ese dato para poder registrar la entrada";
                //divMsg.Style.Add("display", "block");
                return;
            }


            lista = uow.FacturasAlmacenArticulosTMPBL.Get(p => p.PedidoId == idPedido && p.Precio > 0 && p.Cantidad > 0).ToList();

            Pedidos pedido = uow.PedidosBL.GetByID(idPedido);

            FacturasAlmacen factura = new FacturasAlmacen();

            factura.Ejercicio      = DateTime.Now.Year;
            factura.FolioFactura   = txtFolio.Value;
            factura.FechaFactura   = DateTime.Parse(dtpFecha.Value);
            factura.ImporteFactura = lista.Sum(p => p.Total);
            factura.Observaciones  = "";
            factura.Status         = 1;
            factura.Tipo           = 1;
            factura.PedidoId       = pedido.Id;
            factura.ProveedorId    = pedido.ProveedorId;
            uow.FacturasAlmacenBL.Insert(factura);


            List <ArticulosMovimientos> listaBitacora = uow.ArticulosMovimientosBL.Get().ToList();
            int movimiento;

            if (listaBitacora.Count == 0)
            {
                movimiento = 0;
            }
            else
            {
                movimiento = listaBitacora.Max(p => p.Movimiento);
            }

            movimiento++;

            ArticulosMovimientos bitacora = new ArticulosMovimientos();

            bitacora.Ejercicio      = DateTime.Now.Year;
            bitacora.Movimiento     = movimiento;
            bitacora.Tipo           = 1;
            bitacora.Fecha          = DateTime.Now;
            bitacora.Status         = 1;
            bitacora.FacturaAlmacen = factura;
            uow.ArticulosMovimientosBL.Insert(bitacora);

            foreach (FacturasAlmacenArticulosTMP item in lista)
            {
                FacturasAlmacenArticulos detalle = new FacturasAlmacenArticulos();
                detalle.FacturaAlmacen = factura;
                detalle.ArticuloId     = item.ArticuloId;
                detalle.Cantidad       = item.Cantidad;
                detalle.Adicional      = item.CantidadExtra;

                detalle.Precio    = item.Precio;
                detalle.PrecioIVA = item.PrecioIVA;

                detalle.Subtotal = item.Subtotal;
                detalle.IVA      = item.IVA;
                detalle.Total    = item.Total;
                detalle.PrecioDeCompraAnterior = item.Articulo.PrecioCompraIVA;
                detalle.PrecioVenta            = item.Articulo.PrecioVentaIVA;
                detalle.Diferencia             = item.PrecioIVA - item.Articulo.PrecioCompraIVA;
                detalle.Status       = 1;
                detalle.StatusNombre = "Pendiente";
                uow.FacturasAlmacenArticulosBL.Insert(detalle);


                ArticulosMovimientosEntradas bitDetalle = new ArticulosMovimientosEntradas();
                bitDetalle.ArticuloMovimiento = bitacora;
                bitDetalle.ArticuloId         = item.ArticuloId;
                bitDetalle.Cantidad           = item.Cantidad + item.CantidadExtra;
                bitDetalle.Importe            = item.PrecioIVA;
                uow.ArticulosMovimientosEntradasBL.Insert(bitDetalle);

                Articulos articulo = uow.ArticulosBL.GetByID(item.ArticuloId);
                articulo.CantidadDisponible = articulo.CantidadDisponible + (item.Cantidad + item.CantidadExtra);
                articulo.CantidadEnAlmacen  = articulo.CantidadEnAlmacen + (item.Cantidad + item.CantidadExtra);
                articulo.PrecioCompra       = item.Precio;
                articulo.PrecioCompraIVA    = item.PrecioIVA;
                uow.ArticulosBL.Update(articulo);
            }


            pedido.Status = 2;
            uow.PedidosBL.Update(pedido);


            uow.SaveChanges();
            Response.Redirect("wfFacturas.aspx");
        }