Exemple #1
0
        protected void gridVentas_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                int   id           = Utilerias.StrToInt(gridVentas.DataKeys[e.Row.RowIndex].Values["Id"].ToString());
                Label lblTipoVenta = (Label)e.Row.FindControl("lblTipoVenta");

                DataAccessLayer.Models.Ventas obj = uow.VentasBL.GetByID(id);

                lblTipoVenta.Text = obj.RecetaId != null ? "POR RECETA" : "VENTA DIRECTA";


                ImageButton imgBut = (ImageButton)e.Row.FindControl("imgRPT");
                if (imgBut != null)
                {
                    imgBut.Attributes["onclick"] = "fnc_verVentaX(" + id + ");return false;";
                }
            }
        }
Exemple #2
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");
        }