Ejemplo n.º 1
0
        public static void Completar9500(Cotizacion9500 o9500, decimal mSobrante, bool bDevolverEfectivo)
        {
            // Se cancela la venta del anticipo
            var oVentaAnt = Datos.GetEntity <Venta>(q => q.VentaID == o9500.AnticipoVentaID && q.VentaEstatusID != Cat.VentasEstatus.Cancelada &&
                                                    q.VentaEstatusID != Cat.VentasEstatus.CanceladaSinPago && q.Estatus);

            if (oVentaAnt != null)
            {
                oVentaAnt.VentaEstatusID = Cat.VentasEstatus.Cancelada;
                Datos.Guardar <Venta>(oVentaAnt);
                // Se genera una devolución de efectivo (si se realizó un pago) de la venta cancelada, pues se generará una nueva venta con el importe total
                if (Datos.Exists <VentaPago>(q => q.VentaID == o9500.AnticipoVentaID && q.Estatus))
                {
                    VentasProc.GenerarDevolucionDeEfectivo(o9500.AnticipoVentaID.Valor(), o9500.Anticipo - (mSobrante > 0 ? mSobrante : 0));
                }
            }

            // Si hubo un sobrante, se genera nota de crédito o se devuelve efectivo
            if (mSobrante > 0)
            {
                if (bDevolverEfectivo)
                {
                    VentasProc.GenerarDevolucionDeEfectivo(oVentaAnt.VentaID, mSobrante);
                }
                else
                {
                    VentasProc.GenerarNotaDeCredito(o9500.ClienteID, mSobrante, "", Cat.OrigenesNotaDeCredito.Anticipo9500, oVentaAnt.VentaID);
                }
            }

            // Se modifica el Estatus del 9500
            o9500.EstatusGenericoID = Cat.EstatusGenericos.Completada;
            Datos.Guardar <Cotizacion9500>(o9500);
        }
Ejemplo n.º 2
0
        public static ResAcc VentaGarantia(VentaGarantia oGarantia)
        {
            // Se generan datos predeterminados o globales, en caso de que apliquen
            oGarantia.Fecha      = (oGarantia.Fecha != DateTime.MinValue ? oGarantia.Fecha : DateTime.Now);
            oGarantia.SucursalID = (oGarantia.SucursalID > 0 ? oGarantia.SucursalID : Theos.SucursalID);

            // Se guarda la devolución
            Datos.Guardar <VentaGarantia>(oGarantia);

            // Se afectan los datos en el detalle de la venta

            // Se quita el producto de la venta, si aplica
            if (oGarantia.AccionID != Cat.VentasGarantiasAcciones.RevisionDeProveedor)
            {
                var oParteVenta = Datos.GetEntity <VentaDetalle>(q => q.Estatus &&
                                                                 q.VentaID == oGarantia.VentaID &&
                                                                 q.ParteID == oGarantia.ParteID &&
                                                                 q.PrecioUnitario == oGarantia.PrecioUnitario &&
                                                                 q.Iva == oGarantia.Iva);
                if (oParteVenta.Cantidad > 1)
                {
                    oParteVenta.Cantidad--;
                    Datos.Guardar <VentaDetalle>(oParteVenta);
                }
                else
                {
                    Datos.Eliminar <VentaDetalle>(oParteVenta, true);
                }
            }

            return(new ResAcc(true));
        }
Ejemplo n.º 3
0
        public static string LeyendaDeVehiculo(int iClienteVehiculoID)
        {
            var oVehiculo = Datos.GetEntity <ClientesFlotillasView>(c => c.ClienteFlotillaID == iClienteVehiculoID);

            return(string.Format("NO.ECO. {0}, {1}, {2} MOD. {3}, {4}, {5}, PLACAS {6} KM {7}",
                                 oVehiculo.NumeroEconomico, oVehiculo.Marca, oVehiculo.Modelo, oVehiculo.Anio, oVehiculo.Motor, oVehiculo.Tipo, oVehiculo.Placa, oVehiculo.Kilometraje));
        }
Ejemplo n.º 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);
        }
Ejemplo n.º 5
0
        public static ResAcc ValidarPermiso(int iUsuarioID, string sPermiso)
        {
            var oUsuarioPerV = Datos.GetEntity <UsuariosPermisosView>(c => c.UsuarioID == iUsuarioID && c.Permiso == sPermiso);

            bool bValido = Datos.Exists <UsuariosPermisosView>(c => c.UsuarioID == iUsuarioID && c.Permiso == sPermiso);

            if (bValido)
            {
                return(new ResAcc(true));
            }
            else
            {
                var oRes     = new ResAcc(false);
                var oPermiso = Datos.GetEntity <Permiso>(c => c.NombrePermiso == sPermiso && c.Estatus);
                if (oPermiso == null)
                {
                    oRes.Mensaje = "El Permiso especificado ni siquiera existe. ¡Échame la mano!";
                }
                else
                {
                    oRes.Mensaje = oPermiso.MensajeDeError;
                }
                return(oRes);
            }
        }
Ejemplo n.º 6
0
        public static ResAcc ParteComplementaria(int iParteID, int iParteIDComplementaria)
        {
            // Se verifica si son las partes son iguales, en cuyo caso no se hace nada
            if (iParteIDComplementaria == iParteID)
            {
                return(new ResAcc(false));
            }
            // Se verifica si ya existe la relación de complementarios
            var oComp = Datos.GetEntity <ParteComplementaria>(c => c.ParteID == iParteID && c.ParteIDComplementaria == iParteIDComplementaria);

            if (oComp != null)
            {
                return(new ResAcc(true));
            }

            // Se agrega el registro de la parte complementaria
            oComp = new ParteComplementaria()
            {
                ParteID = iParteID,
                ParteIDComplementaria = iParteIDComplementaria,
                RealizoUsuarioID      = Theos.UsuarioID
            };
            Datos.Guardar <ParteComplementaria>(oComp);

            return(new ResAcc(true));
        }
Ejemplo n.º 7
0
        public static Usuario ObtenerUsuarioDeContrasenia(string sContrasenia)
        {
            string sContraseniaEnc = UtilTheos.Encriptar(sContrasenia);
            var    oUsuario        = Datos.GetEntity <Usuario>(q => q.Contrasenia == sContraseniaEnc && q.Estatus);

            return(oUsuario);
        }
Ejemplo n.º 8
0
        public static string GenerarSugerenciaNombreParte(int iLineaID, int iMarcaID, string sNumeroDeParte)
        {
            var oLinea = Datos.GetEntity <Linea>(c => c.LineaID == iLineaID && c.Estatus);
            var oMarca = Datos.GetEntity <MarcaParte>(c => c.MarcaParteID == iMarcaID && c.Estatus);

            return(string.Format("{0} {1} {2}", oLinea.Abreviacion, oMarca.Abreviacion, sNumeroDeParte).Trim());
        }
Ejemplo n.º 9
0
        public static bool VerGuardar9500(int iParteID)
        {
            var oParte = Datos.GetEntity <Parte>(c => c.ParteID == iParteID && c.Estatus);

            oParte.Es9500 = !Datos.Exists <ParteMaxMin>(c => c.ParteID == iParteID && c.Maximo > 0);
            Datos.Guardar <Parte>(oParte);
            return(oParte.Es9500.Valor());
        }
Ejemplo n.º 10
0
        public static bool VerCierreDeDaja()
        {
            //DateTime dHoy = DateTime.Today.AddDays(-3);
            DateTime dHoy = DateTime.Today;
            var      oDia = Datos.GetEntity <CajaEfectivoPorDia>(q => q.SucursalID == Theos.SucursalID && q.Dia == dHoy && q.Estatus);

            return(oDia != null && oDia.Cierre != null);
        }
Ejemplo n.º 11
0
        public static ResAcc Parte(Parte oParte, PartePrecio oPartePrecio)
        {
            // Se llenan datos predeterminados, si no han sido llenados
            oParte.ParteEstatusID = (oParte.ParteEstatusID > 0 ? oParte.ParteEstatusID : Cat.PartesEstatus.Activo);
            oParte.MedidaID       = (oParte.MedidaID > 0 ? oParte.MedidaID : Cat.Medidas.Pieza);
            oParte.UnidadEmpaque  = (oParte.UnidadEmpaque > 0 ? oParte.UnidadEmpaque : 1);
            oParte.AplicaComision = (oParte.AplicaComision.HasValue ? oParte.AplicaComision : true);
            oParte.Etiqueta       = (oParte.Etiqueta.HasValue ? oParte.Etiqueta : true);

            // Se guarda el registro de la parte
            Datos.Guardar <Parte>(oParte);

            // Se guarda el registro del precio
            if (oPartePrecio != null)
            {
                oPartePrecio.ParteID           = oParte.ParteID;
                oPartePrecio.CostoConDescuento = (oPartePrecio.CostoConDescuento.HasValue ? oPartePrecio.CostoConDescuento : oPartePrecio.Costo);
                Datos.Guardar <PartePrecio>(oPartePrecio);
            }

            // Se generan los registros de existencia, uno por cada sucursal
            var oSucursales = Datos.GetListOf <Sucursal>(q => q.Estatus);

            foreach (var oSucursal in oSucursales)
            {
                Datos.Guardar <ParteExistencia>(new ParteExistencia()
                {
                    ParteID    = oParte.ParteID,
                    SucursalID = oSucursal.SucursalID,
                    Existencia = 0
                });
            }

            // Se generan los registros para Máximos y Mínimos, uno por cada sucursal
            foreach (var oSucursal in oSucursales)
            {
                // Se buscan los criterios generales predefinidos, para asignarlos
                var oCriterioPred = Datos.GetEntity <ParteMaxMinCriterioPredefinido>(q => q.SucursalID == oSucursal.SucursalID &&
                                                                                     q.ProveedorID == oParte.ProveedorID && q.MarcaID == oParte.MarcaParteID && q.LineaID == oParte.LineaID);
                //
                Datos.Guardar <ParteMaxMin>(new ParteMaxMin()
                {
                    ParteID        = oParte.ParteID,
                    SucursalID     = oSucursal.SucursalID,
                    Calcular       = (oCriterioPred == null ? null : oCriterioPred.Calcular),
                    VentasGlobales = (oCriterioPred == null ? null : oCriterioPred.VentasGlobales)
                });
            }

            // Se genera el registro de Abc (ParteAbc)
            Datos.Guardar <ParteAbc>(new ParteAbc()
            {
                ParteID     = oParte.ParteID,
                AbcDeVentas = "Z"
            });

            return(new ResAcc(true));
        }
Ejemplo n.º 12
0
        public static void BorrarTemporal(string sProceso, int iId)
        {
            var oTemp = Datos.GetEntity <Temporal>(c => c.Proceso == sProceso && c.Identificador == iId);

            if (oTemp != null)
            {
                Datos.Eliminar <Temporal>(oTemp);
            }
        }
Ejemplo n.º 13
0
        public static void Cancelar9500(int i9500ID, string sMotivo, int iUsuarioID)
        {
            var o9500        = Datos.GetEntity <Cotizacion9500>(q => q.Cotizacion9500ID == i9500ID && q.Estatus);
            var o9500Detalle = Datos.GetListOf <Cotizacion9500Detalle>(q => q.Cotizacion9500ID == i9500ID && q.Estatus);

            // Se verifica si se cobró el anticipo, para cancelarlo
            if (o9500.Anticipo > 0)
            {
                var oAnticipo = Datos.GetEntity <Venta>(c => c.VentaID == o9500.AnticipoVentaID && c.Estatus);
                if (oAnticipo.VentaEstatusID == Cat.VentasEstatus.Cobrada || oAnticipo.VentaEstatusID == Cat.VentasEstatus.Completada)
                {
                    // Si se pagó, se genera una devolución
                    var oVentaV = Datos.GetEntity <VentasView>(c => c.VentaID == o9500.AnticipoVentaID);
                    if (oVentaV.Pagado > 0)
                    {
                        VentasProc.GenerarDevolucionDeEfectivo(oVentaV.VentaID, oVentaV.Pagado);
                    }

                    // Se cancela la venta del anticipo
                    oAnticipo.VentaEstatusID = (oVentaV.Pagado > 0 ? Cat.VentasEstatus.Cancelada : Cat.VentasEstatus.CanceladaSinPago);
                    Datos.Guardar <Venta>(oAnticipo);
                }
            }

            // Se borran las partes del 9500, si no han sido usadas
            foreach (var oParte in o9500Detalle)
            {
                // Se valida que la parte no haya sido usada en ventas
                if (Datos.Exists <VentaDetalle>(q => q.ParteID == oParte.ParteID))
                {
                    continue;
                }
                // Se valida que la parte no haya sido usada en almacén
                if (Datos.Exists <MovimientoInventarioDetalle>(q => q.ParteID == oParte.ParteID))
                {
                    continue;
                }
                // Se borra -> Deshabilitado hasta tener las validaciones del Almacén
                Guardar.EliminarParte(oParte.ParteID);
            }

            // Se verifica si hay autorizaciones, para borrarlas
            var oAuts = Datos.GetListOf <Autorizacion>(c => (c.AutorizacionProcesoID == Cat.AutorizacionesProcesos.c9500PrecioFueraDeRango ||
                                                             c.AutorizacionProcesoID == Cat.AutorizacionesProcesos.c9500SinAnticipo) && c.Tabla == Cat.Tablas.Tabla9500 && c.TablaRegistroID == i9500ID && c.Estatus);

            foreach (var oReg in oAuts)
            {
                oReg.Estatus = true;
                Datos.Guardar <Autorizacion>(oReg);
            }

            // Se cancela el 9500
            o9500.EstatusGenericoID = Cat.EstatusGenericos.CanceladoAntesDeVender;
            o9500.BajaUsuarioID     = iUsuarioID;
            o9500.BajaMotivo        = sMotivo;
            Datos.Guardar <Cotizacion9500>(o9500);
        }
Ejemplo n.º 14
0
        public static ResAcc <bool> CancelarNotaDeCredito(int iNotaDeCreditoID, string sMotivoDeBaja)
        {
            var oVale = Datos.GetEntity <NotaDeCredito>(c => c.NotaDeCreditoID == iNotaDeCreditoID && c.Estatus);

            oVale.Valida     = false;
            oVale.MotivoBaja = sMotivoDeBaja;
            Datos.Guardar <NotaDeCredito>(oVale);

            return(new ResAcc <bool>(true));
        }
Ejemplo n.º 15
0
        public static ResAcc ParteEquivalencia(int iParteID, int iParteIDEquivalente)
        {
            // Se obtiene el grupo de cualquiera de las partes
            var oParteEq1 = Datos.GetEntity <ParteEquivalente>(c => c.ParteID == iParteID);
            var oParteEq2 = Datos.GetEntity <ParteEquivalente>(c => c.ParteID == iParteIDEquivalente);
            // Si ninguna de las partes tiene grupo, se crea uno nuevo
            int iGrupoID = 0;

            if (oParteEq1 == null && oParteEq2 == null)
            {
                var oEquivalentes = Datos.GetListOf <ParteEquivalente>();
                iGrupoID = (oEquivalentes.Count > 0 ? oEquivalentes.Max(c => c.GrupoID) : 0);
                iGrupoID++;
            }
            else
            {
                iGrupoID = (oParteEq1 == null ? oParteEq2.GrupoID : oParteEq1.GrupoID);
            }

            // Se agrega la equivalencia de la parte 1, por si no existiera
            if (oParteEq1 == null)
            {
                oParteEq1 = new ParteEquivalente()
                {
                    GrupoID = iGrupoID, ParteID = iParteID
                };
                oParteEq1.RealizoUsuarioID = Theos.UsuarioID;
                Datos.Guardar <ParteEquivalente>(oParteEq1);
            }

            // Se agrega la equivalencia de la parte 2, según aplique
            if (oParteEq2 == null)
            {
                oParteEq2 = new ParteEquivalente()
                {
                    GrupoID = iGrupoID, ParteID = iParteIDEquivalente
                };
                oParteEq2.RealizoUsuarioID = Theos.UsuarioID;
                Datos.Guardar <ParteEquivalente>(oParteEq2);
            }

            // Se verifica si las dos ya tenían grupo, pero diferente, en cuyo caso todos se van a un mismo grupo
            if (oParteEq1.GrupoID != oParteEq2.GrupoID)
            {
                var oPartesEq2 = Datos.GetListOf <ParteEquivalente>(c => c.GrupoID == oParteEq2.GrupoID);
                foreach (var oEq in oPartesEq2)
                {
                    oEq.GrupoID          = oParteEq1.GrupoID;
                    oEq.RealizoUsuarioID = Theos.UsuarioID;
                    Datos.Guardar <ParteEquivalente>(oEq);
                }
            }

            return(new ResAcc(true));
        }
Ejemplo n.º 16
0
        public static void VerMarcarDisponibilidadNotaDeCreditoProveedor(int iNotaDeCreditoID)
        {
            var  oNotaView   = Datos.GetEntity <ProveedoresNotasDeCreditoView>(c => c.ProveedorNotaDeCreditoID == iNotaDeCreditoID);
            bool bDisponible = (oNotaView.Restante > 0);

            if (oNotaView.Disponible != bDisponible)
            {
                var oNota = Datos.GetEntity <ProveedorNotaDeCredito>(c => c.ProveedorNotaDeCreditoID == iNotaDeCreditoID);
                oNota.Disponible = bDisponible;
                Datos.Guardar <ProveedorNotaDeCredito>(oNota);
            }
        }
Ejemplo n.º 17
0
        public static void VerMarcarDisponibilidadGastoDeCajaParaProveedor(int iCajaEgresoID)
        {
            var  oGastoView  = Datos.GetEntity <CajaEgresosProveedoresView>(c => c.CajaEgresoID == iCajaEgresoID);
            bool bDisponible = (oGastoView.Restante > 0);

            if (oGastoView.AfectadoEnProveedores.Valor() == bDisponible)
            {
                var oGasto = Datos.GetEntity <CajaEgreso>(c => c.CajaEgresoID == iCajaEgresoID && c.Estatus);
                oGasto.AfectadoEnProveedores = !bDisponible;
                Datos.Guardar <CajaEgreso>(oGasto);
            }
        }
Ejemplo n.º 18
0
        public PreciosParte(int iParteID)
        {
            var oPrecios = Datos.GetEntity <PartePrecio>(q => q.ParteID == iParteID && q.Estatus);

            this.ParteID = oPrecios.ParteID;
            this.Precios = new decimal[] {
                oPrecios.PrecioUno.Valor(),
                    oPrecios.PrecioDos.Valor(),
                    oPrecios.PrecioTres.Valor(),
                    oPrecios.PrecioCuatro.Valor(),
                    oPrecios.PrecioCinco.Valor()
            };
        }
Ejemplo n.º 19
0
        public static bool EsFacturaMultiple(int iVentaID)
        {
            var oVentaFaDe = Datos.GetEntity <VentaFacturaDetalle>(c => c.VentaID == iVentaID && c.Estatus);

            if (oVentaFaDe == null)
            {
                return(false);
            }
            else
            {
                return(Datos.Exists <VentasFacturasView>(c => c.VentaFacturaID == oVentaFaDe.VentaFacturaID && c.Ventas > 1));
            }
        }
Ejemplo n.º 20
0
        public static bool EstablecerValor(int iSucursalID, string sParametro, string sValor)
        {
            var oConfig = Datos.GetEntity <Configuracion>(q => q.Nombre == sParametro && q.SucursalID == iSucursalID);

            if (oConfig == null)
            {
                return(false);
            }
            else
            {
                oConfig.Valor = sValor;
                Datos.Guardar <Configuracion>(oConfig);
                return(true);
            }
        }
Ejemplo n.º 21
0
        public static ResAcc ParteVehiculo(ParteVehiculo Objeto)
        {
            bool bEsMod = (Objeto.ParteVehiculoID > 0);

            if (!bEsMod)
            {
                // Se verifica que no exista ya un registro así
                var Existe = Datos.GetEntity <ParteVehiculo>(q => q.ParteID == Objeto.ParteID && q.MotorID == Objeto.MotorID && q.Anio == Objeto.Anio);
                if (Existe != null)
                {
                    return(new ResAcc(false, "Ya existe un registro con esas características."));
                }
            }

            return(Datos.Guardar <ParteVehiculo>(Objeto));
        }
Ejemplo n.º 22
0
        public static List <string> InventarioUsuariosConteoPendiente()
        {
            var      oLista   = new List <string>();
            DateTime dHoy     = DateTime.Now.Date;
            var      oConteos = Datos.GetListOf <InventarioConteo>(c => c.Dia == dHoy && !c.Diferencia.HasValue)
                                .Select(c => new { UsuarioID = c.ConteoUsuarioID }).Distinct();
            var oUsuariosSuc = Datos.GetListOf <InventarioUsuario>(c => c.SucursalID == Theos.SucursalID);

            foreach (var oReg in oConteos)
            {
                if (oUsuariosSuc.Any(c => c.InvUsuarioID == oReg.UsuarioID))
                {
                    var oUsuario = Datos.GetEntity <Usuario>(c => c.UsuarioID == oReg.UsuarioID);
                    oLista.Add(oUsuario.NombreUsuario);
                }
            }
            return(oLista);
        }
Ejemplo n.º 23
0
        public static void EliminarVenta(int iVentaID)
        {
            var oVenta = Datos.GetEntity <Venta>(q => q.VentaID == iVentaID && q.Estatus);

            // De momento sólo están contempladas las ventas que sólo han sido registradas. No cobradas, pagadas, canceladas
            if (oVenta.VentaEstatusID != Cat.VentasEstatus.Realizada)
            {
                return;
            }

            var oVentaDet = Datos.GetListOf <VentaDetalle>(q => q.VentaID == oVenta.VentaID && q.Estatus);

            // Se regresa la existencia y se borra el detalle de la venta
            foreach (var oParteDet in oVentaDet)
            {
                AdmonProc.AgregarExistencia(oParteDet.ParteID, oVenta.SucursalID, oParteDet.Cantidad, Cat.Tablas.Venta, iVentaID);
                Datos.Eliminar <VentaDetalle>(oParteDet, true);
            }
            // Se borra la venta en sí
            Datos.Eliminar <Venta>(oVenta, true);

            // Se borran los datos del kardex
            var oPartesKardex = Datos.GetListOf <ParteKardex>(c => c.OperacionID == Cat.OperacionesKardex.Venta && c.RelacionTabla == Cat.Tablas.Venta &&
                                                              c.RelacionID == iVentaID);

            foreach (var oReg in oVentaDet)
            {
                var oKardex = oPartesKardex.FirstOrDefault(c => c.ParteID == oReg.ParteID);
                if (oKardex == null)
                {
                    continue;
                }
                Datos.Eliminar <ParteKardex>(oKardex);
                // Se verifica si hubo algún otro movimiento en kardex de la misma parte, para hacer el reajuste
                var oDespues = Datos.GetListOf <ParteKardex>(c => c.ParteKardexID > oKardex.ParteKardexID && c.ParteID == oKardex.ParteID);
                foreach (var oRegD in oDespues)
                {
                    oRegD.ExistenciaNueva += (oKardex.Cantidad * -1);
                    Datos.Guardar <ParteKardex>(oRegD);
                }
            }
        }
Ejemplo n.º 24
0
        public static ResAcc <bool> ValidarUsuarioPermisos(int iUsuarioID, List <string> oPermisos, bool bCumplirTodos)
        {
            var           oUsuarioPer = Datos.GetListOf <UsuariosPermisosView>(c => c.UsuarioID == iUsuarioID);
            bool          bCumplido;
            List <string> oNoCumplidos = new List <string>();

            foreach (string sPermiso in oPermisos)
            {
                bCumplido = false;
                // Se busca el permiso en la lista de permisos del usuario
                foreach (var oPermiso in oUsuarioPer)
                {
                    if (oPermiso.Permiso == sPermiso)
                    {
                        bCumplido = true;
                        break;
                    }
                }
                // Se verifica si el permiso actual se cumplió o no
                if (!bCumplido)
                {
                    oNoCumplidos.Add(sPermiso);
                }
            }

            // Se verifica si se cumplió la validación o no
            if (bCumplirTodos && oNoCumplidos.Count == 0)
            {
                return(new ResAcc <bool>(true));
            }
            else if (!bCumplirTodos && oNoCumplidos.Count < oPermisos.Count)
            {
                return(new ResAcc <bool>(true));
            }
            else
            {
                // Se obtiene el mensaje de error del primer permiso no cumplido
                string sPermiso = oNoCumplidos[0];
                var    oPermiso = Datos.GetEntity <Permiso>(c => c.NombrePermiso == sPermiso && c.Estatus);
                return(new ResAcc <bool>(false, oPermiso.MensajeDeError));
            }
        }
Ejemplo n.º 25
0
        public static string GenerarFormaDePago(List <VentaPagoDetalle> oPagoDetalle)
        {
            List <VentasPagosDetalleView> oPagoD = null;

            oPagoD = new List <VentasPagosDetalleView>();
            TipoFormaPago oFormaDePago;

            foreach (var oForma in oPagoDetalle)
            {
                oFormaDePago = Datos.GetEntity <TipoFormaPago>(q => q.TipoFormaPagoID == oForma.TipoFormaPagoID && q.Estatus);
                oPagoD.Add(new VentasPagosDetalleView()
                {
                    FormaDePagoID = oForma.TipoFormaPagoID,
                    FormaDePago   = oFormaDePago.NombreTipoFormaPago,
                    Cuenta        = oForma.Cuenta
                });
            }

            return(VentasProc.GenerarFormaDePago(oPagoD));
        }
Ejemplo n.º 26
0
        public static List <NotaDeCredito> ObtenerValesCreados(List <VentaPagoDetalle> oPagoDetalle)
        {
            var oVales = new List <NotaDeCredito>();

            foreach (var oReg in oPagoDetalle)
            {
                if (oReg.TipoFormaPagoID == Cat.FormasDePago.Vale)
                {
                    var oNota         = Datos.GetEntity <NotaDeCredito>(c => c.NotaDeCreditoID == oReg.NotaDeCreditoID && c.Estatus);
                    int iOrigenValeID = (oNota.OrigenID == Cat.OrigenesNotaDeCredito.ImporteRestante ? oNota.RelacionID.Valor() : oNota.NotaDeCreditoID);
                    var oValeN        = Datos.GetEntity <NotaDeCredito>(c => c.OrigenID == Cat.OrigenesNotaDeCredito.ImporteRestante &&
                                                                        c.RelacionID == iOrigenValeID && c.Valida && c.FechaDeEmision >= oReg.FechaRegistro && c.Estatus);
                    if (oValeN != null)
                    {
                        oVales.Add(oValeN);
                    }
                }
            }
            return(oVales);
        }
Ejemplo n.º 27
0
        public static decimal VentaComisionCliente(int iVentaID, int iComisionistaID)
        {
            // Se calcula el importe de la comisión
            var oVentaDetalle = Datos.GetListOf <VentaDetalle>(q => q.VentaID == iVentaID && q.Estatus);
            var oComisionista = Datos.GetEntity <Cliente>(q => q.ClienteID == iComisionistaID && q.Estatus);

            if (oComisionista == null)
            {
                return(0);
            }

            decimal      mComision = 0;
            PreciosParte oPrecios;

            foreach (var ParteD in oVentaDetalle)
            {
                oPrecios   = new PreciosParte(ParteD.ParteID);
                mComision += (((ParteD.PrecioUnitario + ParteD.Iva) - oPrecios.ObtenerPrecio(oComisionista.ListaDePrecios)) * ParteD.Cantidad);
            }

            return(mComision);
        }
Ejemplo n.º 28
0
        public static void AgregarExistencia(int iParteID, int iSucursalID, decimal mAgregar, string sTabla, int iId)
        {
            // var oParte = General.GetEntity<Parte>(q => q.ParteID == iParteID && q.Estatus);
            // if (!oParte.EsServicio.Valor())
            if (Datos.Exists <Parte>(c => c.ParteID == iParteID && (!c.EsServicio.HasValue || !c.EsServicio.Value) && c.Estatus))
            {
                var oParteEx = Datos.GetEntity <ParteExistencia>(q => q.SucursalID == iSucursalID && q.ParteID == iParteID && q.Estatus);
                oParteEx.Existencia += mAgregar;
                Datos.Guardar <ParteExistencia>(oParteEx);

                // Se registra el histórico de la existencia
                var oExHis = new ParteExistenciaHistorico()
                {
                    ParteID         = iParteID,
                    Cantidad        = mAgregar,
                    ExistenciaNueva = oParteEx.Existencia.Valor(),
                    RelacionTabla   = sTabla,
                    RelacionID      = iId
                };
                Datos.Guardar <ParteExistenciaHistorico>(oExHis);
            }
        }
Ejemplo n.º 29
0
        public static ProveedorParteGanancia ObtenerParteDescuentoGanancia(int?iProveedorID, int?iMarcaID, int?iLineaID, int?iParteID, bool bCompletarConParte)
        {
            if (bCompletarConParte)
            {
                var oParte = Datos.GetEntity <Parte>(c => c.ParteID == iParteID && c.Estatus);
                if (!iProveedorID.HasValue)
                {
                    iProveedorID = oParte.ProveedorID;
                }
                if (!iMarcaID.HasValue)
                {
                    iMarcaID = oParte.MarcaParteID;
                }
                if (!iLineaID.HasValue)
                {
                    iLineaID = oParte.LineaID;
                }
            }

            var oParteGan = Datos.GetEntity <ProveedorParteGanancia>(c => c.ProveedorID == iProveedorID && c.MarcaParteID == iMarcaID &&
                                                                     c.LineaID == iLineaID && c.ParteID == iParteID);

            if (oParteGan == null)
            {
                oParteGan = Datos.GetEntity <ProveedorParteGanancia>(c => c.ProveedorID == iProveedorID && c.MarcaParteID == iMarcaID &&
                                                                     c.LineaID == iLineaID);
                if (oParteGan == null)
                {
                    oParteGan = Datos.GetEntity <ProveedorParteGanancia>(c => c.ProveedorID == iProveedorID && c.MarcaParteID == iMarcaID);
                    if (oParteGan == null)
                    {
                        oParteGan = Datos.GetEntity <ProveedorParteGanancia>(c => c.ProveedorID == iProveedorID);
                    }
                }
            }

            return(oParteGan);
        }
Ejemplo n.º 30
0
        public static ResAcc EliminarParte(int iParteID)
        {
            // Se borran los registros MaxMin
            var oMaxMins = Datos.GetListOf <ParteMaxMin>(q => q.ParteID == iParteID);

            foreach (var oParteMM in oMaxMins)
            {
                Datos.Eliminar <ParteMaxMin>(oParteMM, false);
            }

            // Se borran los registros de existencias
            var oExistencias = Datos.GetListOf <ParteExistencia>(q => q.ParteID == iParteID && q.Estatus);

            foreach (var oParteEx in oExistencias)
            {
                Datos.Eliminar <ParteExistencia>(oParteEx, true);
            }

            // Se borran los datos del precio
            var oPartePrecio = Datos.GetEntity <PartePrecio>(q => q.ParteID == iParteID && q.Estatus);

            if (oPartePrecio != null)
            {
                Datos.Eliminar <PartePrecio>(oPartePrecio, true);
            }

            // Se borra el registro de la parte
            var oParte = Datos.GetEntity <Parte>(q => q.ParteID == iParteID && q.Estatus);

            if (oParte != null)
            {
                Datos.Eliminar <Parte>(oParte, true);
            }

            return(new ResAcc(true));
        }