private void ValidarProveedor(Prov obj, string empresaDB, bool isGuardar)
        {
            using var db = new ProfitAdmin2K8(conn.GetDbContextOptions(empresaDB));
            Prov proveedor = db.Prov.FirstOrDefault(p => p.CoProv.Trim() == obj.CoProv.Trim());

            if (proveedor == null || !isGuardar)
            {
                #region Tipo proveedor
                TipoPro tipoPro = db.TipoPro.FirstOrDefault(tp => tp.TipPro.Trim() == obj.Tipo.Trim());
                if (tipoPro == null)
                {
                    throw new ArgumentException($"El tipo de proveedor [{obj.Tipo.Trim()}] indicado no existe.");
                }
                #endregion

                #region Zona
                Zona zona = db.Zona.FirstOrDefault(z => z.CoZon.Trim() == obj.CoZon.Trim());
                if (zona == null)
                {
                    throw new ArgumentException($"La zona {obj.CoZon.Trim()} indicada no existe.");
                }
                #endregion

                #region Segmento
                Segmento segmento = db.Segmento.FirstOrDefault(s => s.CoSeg.Trim() == obj.CoSeg.Trim());
                if (segmento == null)
                {
                    throw new ArgumentException($"El segmento {obj.CoSeg.Trim()} indicado no existe.");
                }
                #endregion

                #region Cuenta ingr/egre
                CtaIngr ctaIngr = db.CtaIngr.FirstOrDefault(f => f.CoIngr.Trim() == obj.CoIngr.Trim());
                if (ctaIngr == null)
                {
                    throw new ArgumentException($"La cuenta ingreso/egreso {obj.CoIngr.Trim()} indicada no existe.");
                }
                #endregion

                #region Sucursal
                Utilitarios utilitarios = new Utilitarios();
                utilitarios.GetSucursal(obj.CoSucu, empresaDB);
                #endregion

                #region Tabulador ISLR
                TabIslr tabulador = db.TabIslr.FirstOrDefault(t => t.CoTab == obj.CoTab);
                if (tabulador == null)
                {
                    throw new ArgumentException($"El tabulador de ISLR {obj.CoTab} indicado no existe.");
                }
                #endregion
            }
            else
            {
                throw new ArgumentException($"El Proveedor {obj.CoProv.Trim()} indicado ya existe.");
            }
        }
示例#2
0
        private void ValidarCliente(Clientes obj, string empresaDB, bool isGuardar)
        {
            using var db = new ProfitAdmin2K8(conn.GetDbContextOptions(empresaDB));
            Clientes cliente = db.Clientes.FirstOrDefault(c => c.CoCli == obj.CoCli);

            /*El parametro isGuardar se estable para validar registros inclusive editando*/

            if (cliente == null || !isGuardar)
            {
                #region Tipo cliente
                TipoCli tipo = db.TipoCli.FirstOrDefault(t => t.TipCli.Trim() == obj.Tipo.Trim());
                if (tipo == null)
                {
                    throw new ArgumentException($"El tipo de cliente {obj.Tipo.Trim()} indicado no existe.");
                }
                #endregion

                #region Zona
                Zona zona = db.Zona.FirstOrDefault(z => z.CoZon.Trim() == obj.CoZon.Trim());
                if (zona == null)
                {
                    throw new ArgumentException($"La zona {obj.CoZon.Trim()} indicada no existe.");
                }
                #endregion

                #region Segmento
                Segmento segmento = db.Segmento.FirstOrDefault(s => s.CoSeg.Trim() == obj.CoSeg.Trim());
                if (segmento == null)
                {
                    throw new ArgumentException($"El segmento {obj.CoSeg.Trim()} indicado no existe.");
                }
                #endregion

                #region Vendedor
                Vendedor vendedor = db.Vendedor.FirstOrDefault(v => v.CoVen.Trim() == obj.CoVen.Trim());
                if (vendedor == null)
                {
                    throw new ArgumentException($"El vendedor {obj.CoVen.Trim()} indicado no existe.");
                }
                #endregion

                #region Cuenta ingr/egre
                CtaIngr ctaIngr = db.CtaIngr.FirstOrDefault(f => f.CoIngr.Trim() == obj.CoIngr.Trim());
                if (ctaIngr == null)
                {
                    throw new ArgumentException($"La cuenta ingreso/egreso {obj.CoIngr.Trim()} indicada no existe.");
                }
                #endregion

                #region Sucursal
                Utilitarios utilitarios = new Utilitarios();
                utilitarios.GetSucursal(obj.CoSucu, empresaDB);
                #endregion

                #region Tabulador ISLR
                TabIslr tabulador = db.TabIslr.FirstOrDefault(t => t.CoTab == obj.CoTab);
                if (tabulador == null)
                {
                    throw new ArgumentException($"El tabulador de ISLR {obj.CoTab} indicado no existe.");
                }
                #endregion
            }
            else
            {
                throw new ArgumentException($"El cliente {obj.CoCli.Trim()} indicado ya existe.");
            }
        }
示例#3
0
        private void ValidarFactura(EncabFacturaVenta obj, string empresaDB)
        {
            using var db = new ProfitAdmin2K8(conn.GetDbContextOptions(empresaDB));
            Utilitarios utilitarios = new Utilitarios();

            #region Verificar cliente
            cliente = new ClientesRepositorio().GetCliente(obj.CoCli, empresaDB);
            if (cliente == null)
            {
                throw new ArgumentException($"El cliente {obj.CoCli.Trim()} indicado para la factura no existe.");
            }
            else
            {
                if (cliente.Inactivo)
                {
                    throw new ArgumentException($"El cliente {obj.CoCli.Trim()} indicado para la factura se encuentra inactivo.");
                }
            }
            #endregion

            #region Verificar vendedor
            Vendedor vendor = new VendedoresRepositorio().Find(obj.CoVen, empresaDB);
            if (vendor != null)
            {
                if (!vendor.FunVen)
                {
                    throw new ArgumentException($"Vendedor {obj.CoVen} indicado no tiene función de 'vendedor'.");
                }
            }
            else
            {
                throw new ArgumentException($"El vendedor {obj.CoVen} suministrado no existe.");
            }
            #endregion

            #region Verificar transporte
            Transpor transporte = db.Transpor.FirstOrDefault(t => t.CoTran == obj.CoTran);
            if (transporte == null)
            {
                throw new ArgumentException($"El transporte {obj.CoTran} suministrado no existe.");
            }
            #endregion

            #region Verificar condicion de pago
            Condicio condicion = db.Condicio.FirstOrDefault(c => c.CoCond == obj.FormaPag);
            if (condicion == null)
            {
                throw new ArgumentException($"La condición de pago {obj.FormaPag} suministrado no existe.");
            }
            #endregion

            #region Verificar moneda
            utilitarios.GetMoneda(obj.Moneda, empresaDB);
            #endregion

            #region Verificar sucursal
            utilitarios.GetSucursal(obj.CoSucu, empresaDB);
            #endregion

            #region Verificar datos en renglones de factura
            foreach (var iRengFac in obj.DetaFacturaVenta)
            {
                #region Verificar articulo
                Art articulo = db.Art.FirstOrDefault(a => a.CoArt == iRengFac.CoArt);
                if (articulo == null)
                {
                    throw new ArgumentException($"El artículo {iRengFac.CoArt.Trim()} suministrado en el renglón {iRengFac.RengNum} no existe.");
                }
                #endregion

                #region Verificar almacen
                SubAlma almacen = db.SubAlma.FirstOrDefault(a => a.CoSub == iRengFac.CoAlma);
                if (almacen == null)
                {
                    throw new ArgumentException($"El almacén {iRengFac.CoAlma.Trim()} suministrado en el renglón {iRengFac.RengNum} no existe.");
                }
                else
                {
                    if (almacen.CoAlma.Trim() != obj.CoSucu.Trim())
                    {
                        throw new ArgumentException($"El almacén {iRengFac.CoAlma.Trim()} suministrado en el renglón {iRengFac.RengNum} no está permitido utilizarlo en la sucursal suministrada {obj.CoSucu.Trim()}.");
                    }
                    if (almacen.Noventa)
                    {
                        throw new ArgumentException($"El almacén {iRengFac.CoAlma.Trim()} suministrado en el renglón {iRengFac.RengNum} no está permitido utilizarlo en el módulo de facturas.");
                    }
                }
                #endregion

                #region Verificar unidad primaria
                Unidades unidad = db.Unidades.FirstOrDefault(u => u.CoUni == iRengFac.UniVenta);
                if (unidad == null)
                {
                    throw new ArgumentException($"La unidad de venta {iRengFac.UniVenta.Trim()} suministrada en el renglón {iRengFac.RengNum} no existe.");
                }
                #endregion
            }
            #endregion
        }
        private void ValidarArticulo(Art obj, string empresaDB, bool isGuardar)
        {
            using var db = new ProfitAdmin2K8(conn.GetDbContextOptions(empresaDB));
            Art articulo = db.Art.FirstOrDefault(a => a.CoArt.Trim() == obj.CoArt.Trim());

            /*El parametro isGuardar se estable para validar registros inclusive editando*/

            if (articulo == null || !isGuardar)
            {
                #region Verificar linea
                LinArt linea = db.LinArt.FirstOrDefault(l => l.CoLin.Trim() == obj.CoLin.Trim());
                if (linea == null)
                {
                    throw new ArgumentException($"La línea {obj.CoLin.Trim()} indicada no existe.");
                }
                #endregion

                #region Verificar sublinea
                SubLin sublinea = db.SubLin.FirstOrDefault(sl => sl.CoSubl.Trim() == obj.CoSubl.Trim() && sl.CoLin.Trim() == obj.CoLin.Trim());
                if (sublinea == null)
                {
                    throw new ArgumentException($"La Sublínea {obj.CoSubl.Trim()} indicada no existe ó no pertenece a la línea {obj.CoLin.Trim()} verifique.");
                }
                #endregion

                #region Varificar catergoria
                CatArt categoria = db.CatArt.FirstOrDefault(c => c.CoCat.Trim() == obj.CoCat.Trim());
                if (categoria == null)
                {
                    throw new ArgumentException($"La categoría {obj.CoCat.Trim()} indicada no existe.");
                }
                #endregion

                #region Verificar color
                Colores color = db.Colores.FirstOrDefault(c => c.CoCol.Trim() == obj.CoColor.Trim());
                if (color == null)
                {
                    throw new ArgumentException($"El coloro {obj.CoColor.Trim()} indicado no existe.");
                }
                #endregion

                #region Verificar procedencia
                Proceden procedencia = db.Proceden.FirstOrDefault(p => p.CodProc.Trim() == obj.Procedenci.Trim());
                if (procedencia == null)
                {
                    throw new ArgumentException($"La procedencia {obj.Procedenci.Trim()} indicada no existe.");
                }
                #endregion

                #region Verificar proveedor
                Prov proveedor = db.Prov.FirstOrDefault(p => p.CoProv.Trim() == obj.CoProv.Trim());
                if (proveedor == null)
                {
                    throw new ArgumentException($"El proveedor {obj.CoProv.Trim()} indicado no existe.");
                }
                #endregion

                #region VErificar unidad primaria
                Unidades unidad = db.Unidades.FirstOrDefault(u => u.CoUni.Trim() == obj.UniVenta.Trim());
                if (unidad == null)
                {
                    throw new ArgumentException($"La unidad primaria {obj.UniVenta.Trim()} indicada no existe.");
                }
                #endregion

                #region Verificar sucursal
                Utilitarios utilitarios = new Utilitarios();
                utilitarios.GetSucursal(obj.CoSucu, empresaDB);
                #endregion
            }
            else
            {
                throw new ArgumentException($"El artículo {obj.CoArt.Trim()} indicado ya existe.");
            }
        }
        private void ValidarDevolucion(EncabDevolucionVenta obj, string empresaDB)
        {
            using var db = new ProfitAdmin2K8(conn.GetDbContextOptions(empresaDB));
            Utilitarios utilitarios = new Utilitarios();

            #region Verificar caja ppal para el cobro
            caja = db.Cajas.FirstOrDefault(c => c.Cajapri == true);
            if (caja == null)
            {
                throw new ArgumentException("No existe una caja principal para la cancelación del cobro. Llame a su consultor profit.");
            }
            #endregion

            #region Verificar cliente
            cliente = new ClientesRepositorio().GetCliente(obj.CoCli, empresaDB);
            if (cliente == null)
            {
                throw new ArgumentException($"El cliente {obj.CoCli.Trim()} indicado para la devolución no existe.");
            }
            else
            {
                if (cliente.Inactivo)
                {
                    throw new ArgumentException($"El cliente {obj.CoCli.Trim()} indicado para la devolución se encuentra inactivo.");
                }
            }
            #endregion

            #region Verificar vendedor
            Vendedor vendor = new VendedoresRepositorio().Find(obj.CoVen, empresaDB);
            if (vendor != null)
            {
                if (!vendor.FunVen)
                {
                    throw new ArgumentException($"Vendedor {obj.CoVen} indicado no tiene función de 'vendedor'.");
                }
                if (!vendor.FunCob)
                {
                    throw new ArgumentException($"Vendedor {obj.CoVen} indicado no tiene función de 'cobrador'.");
                }
            }
            else
            {
                throw new ArgumentException($"El vendedor {obj.CoVen} suministrado no existe.");
            }
            #endregion

            #region Verificar transporte
            Transpor transporte = db.Transpor.FirstOrDefault(t => t.CoTran == obj.CoTran);
            if (transporte == null)
            {
                throw new ArgumentException($"El transporte {obj.CoTran} suministrado no existe.");
            }
            #endregion

            #region Verificar condicion de pago
            Condicio condicion = db.Condicio.FirstOrDefault(c => c.CoCond == obj.FormaPag);
            if (condicion == null)
            {
                throw new ArgumentException($"La condición de pago {obj.FormaPag} suministrado no existe.");
            }
            #endregion

            #region Verificar moneda
            utilitarios.GetMoneda(obj.Moneda, empresaDB);
            #endregion

            #region Verificar sucursal
            utilitarios.GetSucursal(obj.CoSucu, empresaDB);
            #endregion

            #region Verificar datos en renglones de factura
            foreach (var iRengFac in obj.DetaDevolucionVenta)
            {
                #region Verificar factura
                factura = new FacturasVentasRepositorio().Find(iRengFac.NumDoc, empresaDB);
                if (factura == null)
                {
                    throw new ArgumentException($"La factura {iRengFac.NumDoc} indicada en el renglón {iRengFac.RengNum} en la devolución de cliente no existe.");
                }
                if (factura.Anulada)
                {
                    throw new ArgumentException($"La factura {iRengFac.NumDoc} indicada en el renglón {iRengFac.RengNum} en la devolución de cliente se encuentra anulada.");
                }
                if (factura.Saldo == 0)
                {
                    throw new ArgumentException($"La factura {iRengFac.NumDoc} indicada en el renglón {iRengFac.RengNum} se encuentra procesada [Saldo=0.00].");
                }
                if (factura.Saldo < iRengFac.RengNeto)
                {
                    throw new ArgumentException($"La factura {iRengFac.NumDoc} tiene un saldo menor al monto indicado en el renglón {iRengFac.RengNum}.");
                }
                if (factura.DetaFacturaVenta.FirstOrDefault(ra => ra.CoArt.Trim() == iRengFac.CoArt.Trim()) == null)
                {
                    throw new ArgumentException($"El artículo {iRengFac.CoArt.Trim()} indicado en el renglón {iRengFac.RengNum} no se encontró en la factura.");
                }
                #endregion

                #region Verificar articulo
                Art articulo = new ArticulosRepositorio().Find(iRengFac.CoArt, empresaDB);
                if (articulo == null)
                {
                    throw new ArgumentException($"El artículo {iRengFac.CoArt.Trim()} suministrado en el renglón {iRengFac.RengNum} no existe.");
                }
                #endregion

                #region Verificar almacen
                SubAlma almacen = db.SubAlma.FirstOrDefault(a => a.CoSub == iRengFac.CoAlma);
                if (almacen == null)
                {
                    throw new ArgumentException($"El almacén {iRengFac.CoAlma.Trim()} suministrado en el renglón {iRengFac.RengNum} no existe.");
                }
                else
                {
                    if (almacen.CoAlma.Trim() != obj.CoSucu.Trim())
                    {
                        throw new ArgumentException($"El almacén {iRengFac.CoAlma.Trim()} suministrado en el renglón {iRengFac.RengNum} no está permitido utilizarlo en la sucursal suministrada {obj.CoSucu.Trim()}.");
                    }
                    if (almacen.Noventa)
                    {
                        throw new ArgumentException($"El almacén {iRengFac.CoAlma.Trim()} suministrado en el renglón {iRengFac.RengNum} no está permitido utilizarlo en el módulo de facturas.");
                    }
                }
                #endregion

                #region Verificar unidad primaria
                Unidades unidad = db.Unidades.FirstOrDefault(u => u.CoUni == iRengFac.UniVenta);
                if (unidad == null)
                {
                    throw new ArgumentException($"La unidad de venta {iRengFac.UniVenta.Trim()} suministrada en el renglón {iRengFac.RengNum} no existe.");
                }
                #endregion
            }
            #endregion
        }