Example #1
0
        public static void RegistrarKardex(ParteKardex oParteKardex)
        {
            oParteKardex.Folio = (oParteKardex.Folio == null ? "" : oParteKardex.Folio);

            // Se verifica si la parte es servicio, para no afectar la existencia nueva
            if (Datos.Exists <Parte>(c => c.ParteID == oParteKardex.ParteID && c.EsServicio.Value && c.Estatus))
            {
                oParteKardex.Cantidad = 0;
            }

            // Se calcula la existencia nueva
            var oParteKardexAnt = Datos.GetListOf <ParteKardex>(c => c.ParteID == oParteKardex.ParteID && c.SucursalID == oParteKardex.SucursalID)
                                  .OrderByDescending(c => c.ParteKardexID).FirstOrDefault();
            decimal mExistencia = (oParteKardexAnt == null ? 0 : oParteKardexAnt.ExistenciaNueva);
            decimal mCantidad   = oParteKardex.Cantidad;

            /* if (oParteKardex.OperacionID == Cat.OperacionesKardex.Venta || oParteKardex.OperacionID == Cat.OperacionesKardex.DevolucionAProveedor
            || oParteKardex.OperacionID == Cat.OperacionesKardex.SalidaInventario || oParteKardex.OperacionID == Cat.OperacionesKardex.SalidaTraspaso)
            ||  mCantidad *= -1;
            */
            oParteKardex.ExistenciaNueva = (mExistencia + mCantidad);

            Datos.Guardar <ParteKardex>(oParteKardex);

            // Se valida la última entrada del kárdex con la existencia

            /*
             * var oParteEx = General.GetEntity<ParteExistencia>(c => c.ParteID == oParteKardex.ParteID && c.SucursalID == oParteKardex.SucursalID && c.Estatus);
             * if (oParteKardex.ExistenciaNueva != oParteEx.Existencia)
             *  UtilLocal.MensajeError(string.Format("Hay una diferencia entre la existencia del Kárdex y la existencia del sistema. ¡Verificar!"
             + "\n\nExistencia Kárdex: {0}\nExistencia Sistema: {1}", oParteKardex.ExistenciaNueva, oParteEx.Existencia));
             */
        }
Example #2
0
        public static void RegistrarKardex(ParteKardex oParteKardex)
        {
            oParteKardex.Folio = (oParteKardex.Folio == null ? "" : oParteKardex.Folio);

            // Se verifica si la parte es servicio, para no afectar la existencia nueva
            if (Datos.Exists <Parte>(c => c.ParteID == oParteKardex.ParteID && c.EsServicio.Value && c.Estatus))
            {
                oParteKardex.Cantidad = 0;
            }

            // Se calcula la existencia nueva
            var oParteKardexAnt = Datos.GetListOf <ParteKardex>(c => c.ParteID == oParteKardex.ParteID && c.SucursalID == oParteKardex.SucursalID)
                                  .OrderByDescending(c => c.ParteKardexID).FirstOrDefault();
            decimal mExistencia = (oParteKardexAnt == null ? 0 : oParteKardexAnt.ExistenciaNueva);
            decimal mCantidad   = oParteKardex.Cantidad;

            if (oParteKardex.OperacionID == Cat.OperacionesKardex.Venta || oParteKardex.OperacionID == Cat.OperacionesKardex.DevolucionAProveedor ||
                oParteKardex.OperacionID == Cat.OperacionesKardex.SalidaInventario || oParteKardex.OperacionID == Cat.OperacionesKardex.SalidaTraspaso)
            {
                mCantidad *= -1;
            }
            oParteKardex.ExistenciaNueva = (mExistencia + mCantidad);

            Datos.Guardar <ParteKardex>(oParteKardex);
        }
Example #3
0
        public static void AfectarExistenciaYKardex(int iParteID, int iSucursalID, int iOperacionID, string sFolio, int iUsuarioID, string sEntidad
                                                    , string sOrigen, string sDestino, decimal mCantidad, decimal mImporte, string sTabla, int iId)
        {
            // Se manda a afectar la existencia
            AdmonProc.AgregarExistencia(iParteID, iSucursalID, mCantidad, sTabla, iId);

            // Se manda a afectar en el kardex
            var oSucursal = Datos.GetEntity <Sucursal>(c => c.SucursalID == iSucursalID && c.Estatus);
            var oKardex   = new ParteKardex()
            {
                ParteID          = iParteID,
                OperacionID      = iOperacionID,
                SucursalID       = iSucursalID,
                Folio            = sFolio,
                Fecha            = DateTime.Now,
                RealizoUsuarioID = iUsuarioID,
                Entidad          = sEntidad,
                Origen           = sOrigen,
                Destino          = sDestino,
                Cantidad         = mCantidad,
                Importe          = mImporte,
                RelacionTabla    = sTabla,
                RelacionID       = iId
            };

            AdmonProc.RegistrarKardex(oKardex);
        }
Example #4
0
        public static void AfectarExistenciaYKardex(int iParteID, int iSucursalID, int iOperacionID, string sFolio, int iUsuarioID, string sEntidad
            , string sOrigen, string sDestino, decimal mCantidad, decimal mImporte, string sTabla, int iId)
        {
            // Se manda a afectar la existencia
            AdmonProc.AgregarExistencia(iParteID, iSucursalID, mCantidad, sTabla, iId);

            // Se manda a afectar en el kardex
            var oSucursal = Datos.GetEntity<Sucursal>(c => c.SucursalID == iSucursalID && c.Estatus);
            var oKardex = new ParteKardex()
            {
                ParteID = iParteID,
                OperacionID = iOperacionID,
                SucursalID = iSucursalID,
                Folio = sFolio,
                Fecha = DateTime.Now,
                RealizoUsuarioID = iUsuarioID,
                Entidad = sEntidad,
                Origen = sOrigen,
                Destino = sDestino,
                Cantidad = mCantidad,
                Importe = mImporte,
                RelacionTabla = sTabla,
                RelacionID = iId
            };
            AdmonProc.RegistrarKardex(oKardex);
        }
Example #5
0
        private bool AgregarGarantia()
        {
            // Se valida la parte de detalle
            if (!this.ctlDetalle.Validar())
                return false;
            // Se valida la parte de búsqueda
            if (!this.ctlBusqueda.Validar())
                return false;
            // Se valida que sólo esté seleccionada una parte
            if (this.ctlDetalle.ProductosSel().Count > 1)
            {
                UtilLocal.MensajeAdvertencia("Debes seleccionar sólo un producto al hacer una garantía.");
                return false;
            }

            // Se verifica si se creará vale, para pedir el cliente en caso de que no haya
            var oGarantia = this.ctlBusqueda.GenerarGarantia();
            int iVentaID = this.ctlBusqueda.VentaID;
            var oVentaV = Datos.GetEntity<VentasView>(q => q.VentaID == iVentaID);
            int iValeClienteID = oVentaV.ClienteID;
            if ((oGarantia.AccionID == Cat.VentasGarantiasAcciones.ArticuloNuevo || oGarantia.AccionID == Cat.VentasGarantiasAcciones.NotaDeCredito)
                && iValeClienteID == Cat.Clientes.Mostrador)
            {
                iValeClienteID = VentasLoc.ObtenerClienteID("Selecciona el cliente para crear el Vale:", false);
                if (iValeClienteID == 0)
                    return false;
            }

            // Se pregunta el usuario que realiza la devolución
            int iUsuarioID = 0;
            var ResU = UtilLocal.ValidarObtenerUsuario("Ventas.Garantia.Agregar");
            if (ResU.Error)
                return false;
            iUsuarioID = ResU.Respuesta.UsuarioID;

            // Se solicita la autorización
            int iAutorizoID = 0;
            ResU = UtilLocal.ValidarObtenerUsuario("Autorizaciones.Ventas.Garantia.Agregar", "Autorización");
            if (ResU.Exito)
                iAutorizoID = ResU.Respuesta.UsuarioID;

            // Se procede a guardar los cambios
            DateTime dAhora = DateTime.Now;

            // Se genera la garantía
            oGarantia.Fecha = dAhora;
            oGarantia.RealizoUsuarioID = iUsuarioID;
            oGarantia.EstatusGenericoID = Cat.EstatusGenericos.Recibido;
            // Se llenan los datos de la parte
            var oProducto = this.ctlDetalle.ProductosSel()[0];
            oGarantia.ParteID = oProducto.ParteID;
            oGarantia.Costo = oProducto.Costo;
            oGarantia.CostoConDescuento = oProducto.CostoConDescuento;
            oGarantia.PrecioUnitario = oProducto.PrecioUnitario;
            oGarantia.Iva = oProducto.Iva;

            // Se guarda la garantía
            Guardar.VentaGarantia(oGarantia);

            // Si queda a revisión del proveedor, ya no se hace nada más que mandar el ticket
            if (oGarantia.AccionID != Cat.VentasGarantiasAcciones.RevisionDeProveedor)
            {
                this.CompletarAccionGarantia(oGarantia.VentaGarantiaID, iValeClienteID);
            }

            // Se mete un registro en kárdex, en cero, sólo para mantener historial de la operación
            var oKardex = new ParteKardex()
            {
                ParteID = oGarantia.ParteID,
                OperacionID = Cat.OperacionesKardex.VentaCancelada,
                SucursalID = oGarantia.SucursalID,
                Folio = oVentaV.Folio,
                Fecha = dAhora,
                RealizoUsuarioID = iUsuarioID,
                Entidad = oVentaV.Cliente,
                Origen = oVentaV.Sucursal,
                Destino = "GARANTÍA RECIBIDA",
                Cantidad = 0,
                Importe = (oGarantia.PrecioUnitario + oGarantia.Iva),
                RelacionTabla = Cat.Tablas.VentaGarantia,
                RelacionID = oGarantia.VentaGarantiaID
            };
            AdmonProc.RegistrarKardex(oKardex);

            // Se guarda la autorización, si aplica
            VentasProc.GenerarAutorizacion(Cat.AutorizacionesProcesos.Garantia, Cat.Tablas.VentaGarantia, oGarantia.VentaGarantiaID, iAutorizoID);
            // Se genera el ticket correspondiente
            VentasLoc.GenerarTicketGarantia(oGarantia.VentaGarantiaID);

            return true;
        }
Example #6
0
        private bool AgregarGarantia()
        {
            // Se valida la parte de detalle
            if (!this.ctlDetalle.Validar())
            {
                return(false);
            }
            // Se valida la parte de búsqueda
            if (!this.ctlBusqueda.Validar())
            {
                return(false);
            }
            // Se valida que sólo esté seleccionada una parte
            if (this.ctlDetalle.ProductosSel().Count > 1)
            {
                UtilLocal.MensajeAdvertencia("Debes seleccionar sólo un producto al hacer una garantía.");
                return(false);
            }

            // Se verifica si se creará vale, para pedir el cliente en caso de que no haya
            var oGarantia      = this.ctlBusqueda.GenerarGarantia();
            int iVentaID       = this.ctlBusqueda.VentaID;
            var oVentaV        = Datos.GetEntity <VentasView>(q => q.VentaID == iVentaID);
            int iValeClienteID = oVentaV.ClienteID;

            if ((oGarantia.AccionID == Cat.VentasGarantiasAcciones.ArticuloNuevo || oGarantia.AccionID == Cat.VentasGarantiasAcciones.NotaDeCredito) &&
                iValeClienteID == Cat.Clientes.Mostrador)
            {
                iValeClienteID = VentasLoc.ObtenerClienteID("Selecciona el cliente para crear el Vale:", false);
                if (iValeClienteID == 0)
                {
                    return(false);
                }
            }

            // Se pregunta el usuario que realiza la devolución
            int iUsuarioID = 0;
            var ResU       = UtilLocal.ValidarObtenerUsuario("Ventas.Garantia.Agregar");

            if (ResU.Error)
            {
                return(false);
            }
            iUsuarioID = ResU.Respuesta.UsuarioID;

            // Se solicita la autorización
            int iAutorizoID = 0;

            ResU = UtilLocal.ValidarObtenerUsuario("Autorizaciones.Ventas.Garantia.Agregar", "Autorización");
            if (ResU.Exito)
            {
                iAutorizoID = ResU.Respuesta.UsuarioID;
            }

            // Se procede a guardar los cambios
            DateTime dAhora = DateTime.Now;

            // Se genera la garantía
            oGarantia.Fecha             = dAhora;
            oGarantia.RealizoUsuarioID  = iUsuarioID;
            oGarantia.EstatusGenericoID = Cat.EstatusGenericos.Recibido;
            // Se llenan los datos de la parte
            var oProducto = this.ctlDetalle.ProductosSel()[0];

            oGarantia.ParteID           = oProducto.ParteID;
            oGarantia.Costo             = oProducto.Costo;
            oGarantia.CostoConDescuento = oProducto.CostoConDescuento;
            oGarantia.PrecioUnitario    = oProducto.PrecioUnitario;
            oGarantia.Iva = oProducto.Iva;

            // Se guarda la garantía
            Guardar.VentaGarantia(oGarantia);

            // Si queda a revisión del proveedor, ya no se hace nada más que mandar el ticket
            if (oGarantia.AccionID != Cat.VentasGarantiasAcciones.RevisionDeProveedor)
            {
                this.CompletarAccionGarantia(oGarantia.VentaGarantiaID, iValeClienteID);
            }

            // Se mete un registro en kárdex, en cero, sólo para mantener historial de la operación
            var oKardex = new ParteKardex()
            {
                ParteID          = oGarantia.ParteID,
                OperacionID      = Cat.OperacionesKardex.VentaCancelada,
                SucursalID       = oGarantia.SucursalID,
                Folio            = oVentaV.Folio,
                Fecha            = dAhora,
                RealizoUsuarioID = iUsuarioID,
                Entidad          = oVentaV.Cliente,
                Origen           = oVentaV.Sucursal,
                Destino          = "GARANTÍA RECIBIDA",
                Cantidad         = 0,
                Importe          = (oGarantia.PrecioUnitario + oGarantia.Iva),
                RelacionTabla    = Cat.Tablas.VentaGarantia,
                RelacionID       = oGarantia.VentaGarantiaID
            };

            AdmonProc.RegistrarKardex(oKardex);

            // Se guarda la autorización, si aplica
            VentasProc.GenerarAutorizacion(Cat.AutorizacionesProcesos.Garantia, Cat.Tablas.VentaGarantia, oGarantia.VentaGarantiaID, iAutorizoID);
            // Se genera el ticket correspondiente
            VentasLoc.GenerarTicketGarantia(oGarantia.VentaGarantiaID);

            return(true);
        }
Example #7
0
        public static void RegistrarKardex(ParteKardex oParteKardex)
        {
            oParteKardex.Folio = (oParteKardex.Folio == null ? "" : oParteKardex.Folio);

            // Se verifica si la parte es servicio, para no afectar la existencia nueva
            if (Datos.Exists<Parte>(c => c.ParteID == oParteKardex.ParteID && c.EsServicio.Value && c.Estatus))
                oParteKardex.Cantidad = 0;

            // Se calcula la existencia nueva
            var oParteKardexAnt = Datos.GetListOf<ParteKardex>(c => c.ParteID == oParteKardex.ParteID && c.SucursalID == oParteKardex.SucursalID)
                .OrderByDescending(c => c.ParteKardexID).FirstOrDefault();
            decimal mExistencia = (oParteKardexAnt == null ? 0 : oParteKardexAnt.ExistenciaNueva);
            decimal mCantidad = oParteKardex.Cantidad;
            if (oParteKardex.OperacionID == Cat.OperacionesKardex.Venta || oParteKardex.OperacionID == Cat.OperacionesKardex.DevolucionAProveedor
                || oParteKardex.OperacionID == Cat.OperacionesKardex.SalidaInventario || oParteKardex.OperacionID == Cat.OperacionesKardex.SalidaTraspaso)
                mCantidad *= -1;
            oParteKardex.ExistenciaNueva = (mExistencia + mCantidad);

            Datos.Guardar<ParteKardex>(oParteKardex);
        }
Example #8
0
        public static void RegistrarKardex(ParteKardex oParteKardex)
        {
            oParteKardex.Folio = (oParteKardex.Folio == null ? "" : oParteKardex.Folio);

            // Se verifica si la parte es servicio, para no afectar la existencia nueva
            if (Datos.Exists<Parte>(c => c.ParteID == oParteKardex.ParteID && c.EsServicio.Value && c.Estatus))
                oParteKardex.Cantidad = 0;

            // Se calcula la existencia nueva
            var oParteKardexAnt = Datos.GetListOf<ParteKardex>(c => c.ParteID == oParteKardex.ParteID && c.SucursalID == oParteKardex.SucursalID)
                .OrderByDescending(c => c.ParteKardexID).FirstOrDefault();
            decimal mExistencia = (oParteKardexAnt == null ? 0 : oParteKardexAnt.ExistenciaNueva);
            decimal mCantidad = oParteKardex.Cantidad;
            /* if (oParteKardex.OperacionID == Cat.OperacionesKardex.Venta || oParteKardex.OperacionID == Cat.OperacionesKardex.DevolucionAProveedor
                || oParteKardex.OperacionID == Cat.OperacionesKardex.SalidaInventario || oParteKardex.OperacionID == Cat.OperacionesKardex.SalidaTraspaso)
                mCantidad *= -1;
            */
            oParteKardex.ExistenciaNueva = (mExistencia + mCantidad);

            Datos.Guardar<ParteKardex>(oParteKardex);

            // Se valida la última entrada del kárdex con la existencia
            /*
            var oParteEx = General.GetEntity<ParteExistencia>(c => c.ParteID == oParteKardex.ParteID && c.SucursalID == oParteKardex.SucursalID && c.Estatus);
            if (oParteKardex.ExistenciaNueva != oParteEx.Existencia)
                UtilLocal.MensajeError(string.Format("Hay una diferencia entre la existencia del Kárdex y la existencia del sistema. ¡Verificar!"
                    + "\n\nExistencia Kárdex: {0}\nExistencia Sistema: {1}", oParteKardex.ExistenciaNueva, oParteEx.Existencia));
            */
        }