コード例 #1
0
        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");
        }
コード例 #2
0
        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");
        }