Ejemplo n.º 1
0
        public DtoLib.ResultadoEntidad <decimal> FactorCambioDivisaParaRecibir()
        {
            var result = new DtoLib.ResultadoEntidad <decimal>();

            try
            {
                using (var ctx = new LibEntityVentas.libVentasEntities(_cnVenta.ConnectionString))
                {
                    decimal m1  = 0;
                    var     cnf = ctx.Database.SqlQuery <string>("select usuario from sistema_configuracion where codigo='GLOBAL48'").FirstOrDefault();
                    if (cnf == null)
                    {
                        result.Entidad = 0.0m;
                        return(result);
                    }

                    if (cnf.Trim() != "")
                    {
                        var style = NumberStyles.AllowDecimalPoint | NumberStyles.AllowThousands;
                        //var culture = CultureInfo.CreateSpecificCulture("es-ES");
                        var culture = CultureInfo.CreateSpecificCulture("en-EN");
                        Decimal.TryParse(cnf, style, culture, out m1);
                    }
                    result.Entidad = m1;
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
        public DtoLib.ResultadoEntidad <DtoLibVenta.TasasFiscales.Ficha> TasasFiscales()
        {
            var result = new DtoLib.ResultadoEntidad <DtoLibVenta.TasasFiscales.Ficha>();

            try
            {
                result.Entidad = new DtoLibVenta.TasasFiscales.Ficha();
                using (var cnn = new LibEntityVentas.libVentasEntities(_cnVenta.ConnectionString))
                {
                    var q = cnn.empresa_tasas.Where(w => w.auto == "0000000001").FirstOrDefault();
                    if (q != null)
                    {
                        result.Entidad.Tasa1 = q.tasa;
                    }
                    q = cnn.empresa_tasas.Where(w => w.auto == "0000000002").FirstOrDefault();
                    if (q != null)
                    {
                        result.Entidad.Tasa2 = q.tasa;
                    }
                    q = cnn.empresa_tasas.Where(w => w.auto == "0000000003").FirstOrDefault();
                    if (q != null)
                    {
                        result.Entidad.Tasa3 = q.tasa;
                    }
                }
                return(result);
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
Ejemplo n.º 3
0
        public DtoLib.ResultadoEntidad <string> Clave_NivelMaximo()
        {
            var result = new DtoLib.ResultadoEntidad <string>();

            try
            {
                using (var ctx = new LibEntityVentas.libVentasEntities(_cnVenta.ConnectionString))
                {
                    var cnf = ctx.Database.SqlQuery <string>("select usuario from sistema_configuracion where codigo='GLOBAL17'").FirstOrDefault();
                    if (cnf == null)
                    {
                        result.Entidad = "";
                        return(result);
                    }

                    if (cnf.Trim() != "")
                    {
                        result.Entidad = cnf.Trim();
                    }
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
Ejemplo n.º 4
0
        public DtoLib.ResultadoEntidad <DtoLibVenta.MovInventario.Concepto.Ficha> MovInventario_Concepto(string auto)
        {
            var result = new DtoLib.ResultadoEntidad <DtoLibVenta.MovInventario.Concepto.Ficha>();

            try
            {
                using (var cnn = new LibEntityVentas.libVentasEntities(_cnVenta.ConnectionString))
                {
                    var q = cnn.productos_conceptos.Find(auto);
                    if (q == null)
                    {
                        result.Mensaje = "[ ID ] Concepto Movimento Inventario No Encontrado";
                        result.Result  = DtoLib.Enumerados.EnumResult.isError;
                        return(result);
                    }

                    var r = new DtoLibVenta.MovInventario.Concepto.Ficha()
                    {
                        Auto        = q.auto,
                        Codigo      = q.codigo,
                        Descripcion = q.nombre,
                    };
                    result.Entidad = r;
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
Ejemplo n.º 5
0
        public DtoLib.ResultadoLista <DtoLibVenta.Inventario.Existencia.Resumen> ProductoExistencia(string auto)
        {
            var result = new DtoLib.ResultadoLista <DtoLibVenta.Inventario.Existencia.Resumen>();

            try
            {
                using (var cnn = new LibEntityVentas.libVentasEntities(_cnVenta.ConnectionString))
                {
                    var list = new List <DtoLibVenta.Inventario.Existencia.Resumen>();
                    var q    = cnn.productos_deposito.Where(w => w.auto_producto == auto).ToList();
                    if (q != null)
                    {
                        if (q.Count() > 0)
                        {
                            result.Lista = q.Select(s =>
                            {
                                var codigoDep      = s.empresa_depositos.codigo;
                                var descripcionDep = s.empresa_depositos.nombre;
                                var r = new DtoLibVenta.Inventario.Existencia.Resumen()
                                {
                                    autoDeposito        = s.auto_deposito,
                                    cntDisponible       = s.disponible,
                                    cntFisica           = s.fisica,
                                    cntReservada        = s.reservada,
                                    CodigoDeposito      = codigoDep,
                                    DescripcionDeposito = descripcionDep,
                                    Ubicacion_1         = s.ubicacion_1,
                                    Ubicacion_2         = s.ubicacion_2,
                                    Ubicacion_3         = s.ubicacion_3,
                                    Ubicacion_4         = s.ubicacion_4,
                                };
                                return(r);
                            }).ToList();
                        }
                        else
                        {
                            result.Lista = list;
                        }
                    }
                    else
                    {
                        result.Lista = list;
                    }
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
Ejemplo n.º 6
0
        public DtoLib.ResultadoEntidad <DtoLibVenta.Inventario.Producto.DetalleResumen> ProductoDetalleResumen(string auto)
        {
            var result = new DtoLib.ResultadoEntidad <DtoLibVenta.Inventario.Producto.DetalleResumen>();

            try
            {
                using (var cnn = new LibEntityVentas.libVentasEntities(_cnVenta.ConnectionString))
                {
                    var q = cnn.productos.Find(auto);
                    if (q == null)
                    {
                        result.Mensaje = "[ ID ] PRODUCTO NO ENCONTRADO";
                        result.Result  = DtoLib.Enumerados.EnumResult.isError;
                        return(result);
                    }

                    var ent = new DtoLibVenta.Inventario.Producto.DetalleResumen()
                    {
                        Auto               = q.auto,
                        CodigoPrd          = q.codigo,
                        Comentarios        = q.comentarios,
                        ContenidoEmpCompra = q.contenido_compras,
                        CostoUnidad        = q.costo_und,
                        Departamento       = q.empresa_departamentos.nombre,
                        DescripcionPrd     = "",
                        FechaUltActCosto   = q.fecha_ult_costo,
                        FechaUltActPrecio  = q.fecha_cambio,
                        FechaUltVenta      = q.fecha_ult_venta,
                        Grupo              = q.productos_grupo.nombre,
                        IsActivo           = q.estatus.Trim().ToUpper() == "ACTIVO"?true:false,
                        IsDivisa           = q.estatus_divisa.Trim().ToUpper() == "1"?true:false,
                        IsPesado           = q.estatus_pesado.Trim().ToUpper() == "1"?true:false,
                        Marca              = q.productos_marca.nombre,
                        Modelo             = q.modelo,
                        MontoDivisa        = q.divisa,
                        NombreEmpCompra    = q.productos_medida2.nombre,
                        NombrePrd          = q.nombre,
                        PLU            = q.plu,
                        PrecioSugerido = q.precio_sugerido,
                        Referencia     = q.referencia,
                        TasaImpuesto   = q.tasa,
                    };
                    result.Entidad = ent;
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
        public DtoLib.ResultadoEntidad <DtoLibVenta.Permiso.Ficha> Venta_Eliminar_Item(string autoGrupoUsuario)
        {
            var result = new DtoLib.ResultadoEntidad <DtoLibVenta.Permiso.Ficha>();

            try
            {
                using (var ctx = new LibEntityVentas.libVentasEntities(_cnVenta.ConnectionString))
                {
                    permiso cnf = ctx.Database.SqlQuery <permiso>("select estatus, seguridad from usuarios_grupo_permisos where codigo_grupo={0} and codigo_funcion='0801010000'", autoGrupoUsuario).FirstOrDefault();
                    if (cnf == null)
                    {
                        result.Entidad = new DtoLibVenta.Permiso.Ficha();
                        return(result);
                    }
                    var nt = new DtoLibVenta.Permiso.Ficha();
                    if (cnf.estatus.Trim().ToUpper() == "1")
                    {
                        nt.IsHabilitado = true;
                    }
                    switch (cnf.seguridad.Trim().ToUpper())
                    {
                    case "NINGUNA":
                        nt.NivelSeguridad = DtoLibVenta.Permiso.Enumerados.EnumNivelSeguridad.Niguna;
                        break;

                    case "MINIMA":
                        nt.NivelSeguridad = DtoLibVenta.Permiso.Enumerados.EnumNivelSeguridad.Minima;
                        break;

                    case "MEDIA":
                        nt.NivelSeguridad = DtoLibVenta.Permiso.Enumerados.EnumNivelSeguridad.Media;
                        break;

                    case "MAXIMA":
                        nt.NivelSeguridad = DtoLibVenta.Permiso.Enumerados.EnumNivelSeguridad.Maxima;
                        break;
                    }
                    result.Entidad = nt;
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
        public DtoLib.ResultadoEntidad <DtoLibVenta.Usuario.Ficha> Usuario(string auto)
        {
            var result = new DtoLib.ResultadoEntidad <DtoLibVenta.Usuario.Ficha>();

            try
            {
                using (var cnn = new LibEntityVentas.libVentasEntities(_cnVenta.ConnectionString))
                {
                    var q = cnn.usuarios.Find(auto);
                    if (q == null)
                    {
                        result.Mensaje = "[ ID ] USUARIO NO ENCONTRADO";
                        result.Result  = DtoLib.Enumerados.EnumResult.isError;
                        return(result);
                    }

                    var autoGrupo = q.auto_grupo;
                    var qGrupo    = cnn.usuarios_grupo.Find(autoGrupo);
                    if (qGrupo == null)
                    {
                        result.Mensaje = "GRUPO AL CUAL PERTENECE EL USUARIO NO ENCONTRADO";
                        result.Result  = DtoLib.Enumerados.EnumResult.isError;
                        return(result);
                    }

                    var codigoGrupo      = qGrupo.nombre;
                    var descripcionGrupo = "";
                    var ent = new DtoLibVenta.Usuario.Ficha()
                    {
                        Auto             = q.auto,
                        Codigo           = q.codigo,
                        Descripcion      = q.nombre,
                        AutoGrupo        = autoGrupo,
                        CodigoGrupo      = codigoGrupo,
                        DescripcionGrupo = descripcionGrupo
                    };
                    result.Entidad = ent;
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
        public DtoLib.ResultadoLista <DtoLibVenta.Series.Resumen> SeriesLista()
        {
            var result = new DtoLib.ResultadoLista <DtoLibVenta.Series.Resumen>();

            try
            {
                using (var cnn = new LibEntityVentas.libVentasEntities(_cnVenta.ConnectionString))
                {
                    var list = new List <DtoLibVenta.Series.Resumen>();
                    var q    = cnn.empresa_series_fiscales.ToList();
                    if (q != null)
                    {
                        if (q.Count() > 0)
                        {
                            result.Lista = q.Select(s =>
                            {
                                var isActivo = s.estatus.Trim().ToUpper() == "ACTIVO" ? true : false;
                                var r        = new DtoLibVenta.Series.Resumen()
                                {
                                    Auto        = s.auto,
                                    Descripcion = s.serie,
                                    Control     = s.control,
                                    Correlativo = s.correlativo,
                                    IsActivo    = isActivo,
                                };
                                return(r);
                            }).ToList();
                        }
                        else
                        {
                            result.Lista = list;
                        }
                    }
                    else
                    {
                        result.Lista = list;
                    }
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
Ejemplo n.º 10
0
        public DtoLib.ResultadoEntidad <DtoLibVenta.Sistema.Enumerados.enumPreferenciaBusquedaProducto> PreferenciaBusquedaProducto()
        {
            var result = new DtoLib.ResultadoEntidad <DtoLibVenta.Sistema.Enumerados.enumPreferenciaBusquedaProducto>();

            try
            {
                using (var ctx = new LibEntityVentas.libVentasEntities(_cnVenta.ConnectionString))
                {
                    var prf = DtoLibVenta.Sistema.Enumerados.enumPreferenciaBusquedaProducto.SinDefinir;

                    var cnf = ctx.Database.SqlQuery <string>("select usuario from sistema_configuracion where codigo='GLOBAL03'").FirstOrDefault();
                    if (cnf == null)
                    {
                        result.Entidad = prf;
                        return(result);
                    }

                    if (cnf.Trim() != "")
                    {
                        switch (cnf.Trim().ToUpper())
                        {
                        case "CÓDIGO":
                            prf = DtoLibVenta.Sistema.Enumerados.enumPreferenciaBusquedaProducto.Codigo;
                            break;

                        case "NOMBRE":
                            prf = DtoLibVenta.Sistema.Enumerados.enumPreferenciaBusquedaProducto.Nombre;
                            break;

                        case "REFERENCIA":
                            prf = DtoLibVenta.Sistema.Enumerados.enumPreferenciaBusquedaProducto.Referencia;
                            break;
                        }
                    }

                    result.Entidad = prf;
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
        public DtoLib.ResultadoLista <DtoLibVenta.MedioCobro.Resumen> MedioCobroLista()
        {
            var result = new DtoLib.ResultadoLista <DtoLibVenta.MedioCobro.Resumen>();

            try
            {
                using (var cnn = new LibEntityVentas.libVentasEntities(_cnVenta.ConnectionString))
                {
                    var list = new List <DtoLibVenta.MedioCobro.Resumen>();
                    var q    = cnn.empresa_medios.Where(w => w.estatus_cobro == "1").ToList();
                    if (q != null)
                    {
                        if (q.Count() > 0)
                        {
                            result.Lista = q.Select(s =>
                            {
                                var r = new DtoLibVenta.MedioCobro.Resumen()
                                {
                                    Auto        = s.auto,
                                    Codigo      = s.codigo,
                                    Descripcion = s.nombre,
                                };
                                return(r);
                            }).ToList();
                        }
                        else
                        {
                            result.Lista = list;
                        }
                    }
                    else
                    {
                        result.Lista = list;
                    }
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
Ejemplo n.º 12
0
        public DtoLib.ResultadoLista <DtoLibVenta.Transporte.Resumen> TransporteLista()
        {
            var result = new DtoLib.ResultadoLista <DtoLibVenta.Transporte.Resumen>();

            try
            {
                using (var cnn = new LibEntityVentas.libVentasEntities(_cnVenta.ConnectionString))
                {
                    var list = new List <DtoLibVenta.Transporte.Resumen>();
                    var q    = cnn.empresa_transporte.ToList();
                    if (q != null)
                    {
                        if (q.Count() > 0)
                        {
                            result.Lista = q.Select(s =>
                            {
                                var r = new DtoLibVenta.Transporte.Resumen()
                                {
                                    Auto   = s.auto,
                                    Codigo = s.codigo,
                                    Nombre = s.nombre,
                                };
                                return(r);
                            }).ToList();
                        }
                        else
                        {
                            result.Lista = list;
                        }
                    }
                    else
                    {
                        result.Lista = list;
                    }
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
        public DtoLib.ResultadoEntidad <DtoLibVenta.Inventario.Existencia.Resumen> Existencia(string autoProducto, string autoDeposito)
        {
            var result = new DtoLib.ResultadoEntidad <DtoLibVenta.Inventario.Existencia.Resumen>();

            try
            {
                using (var cnn = new LibEntityVentas.libVentasEntities(_cnVenta.ConnectionString))
                {
                    var q = cnn.productos_deposito.FirstOrDefault(w => w.auto_producto == autoProducto && w.auto_deposito == autoDeposito);
                    if (q == null)
                    {
                        result.Result  = DtoLib.Enumerados.EnumResult.isError;
                        result.Mensaje = "ENTIDAD [ DEPOSITO ] NO ENCONTRADA";
                        return(result);
                    }

                    var codigoDep      = q.empresa_depositos.codigo;
                    var descripcionDep = q.empresa_depositos.nombre;
                    var r = new DtoLibVenta.Inventario.Existencia.Resumen()
                    {
                        autoDeposito        = q.auto_deposito,
                        cntDisponible       = q.disponible,
                        cntFisica           = q.fisica,
                        cntReservada        = q.reservada,
                        CodigoDeposito      = codigoDep,
                        DescripcionDeposito = descripcionDep,
                        Ubicacion_1         = q.ubicacion_1,
                        Ubicacion_2         = q.ubicacion_2,
                        Ubicacion_3         = q.ubicacion_3,
                        Ubicacion_4         = q.ubicacion_4,
                    };
                    result.Entidad = r;
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
Ejemplo n.º 14
0
        public DtoLib.ResultadoEntidad <DtoLibVenta.Sistema.Enumerados.enumMetodoCalculoUtilidad> MetodoCalculoUtilidad()
        {
            var result = new DtoLib.ResultadoEntidad <DtoLibVenta.Sistema.Enumerados.enumMetodoCalculoUtilidad>();

            try
            {
                using (var ctx = new LibEntityVentas.libVentasEntities(_cnVenta.ConnectionString))
                {
                    var prf = DtoLibVenta.Sistema.Enumerados.enumMetodoCalculoUtilidad.SinDefinir;

                    var cnf = ctx.Database.SqlQuery <string>("select usuario from sistema_configuracion where codigo='GLOBAL13'").FirstOrDefault();
                    if (cnf == null)
                    {
                        result.Entidad = prf;
                        return(result);
                    }

                    if (cnf.Trim() != "")
                    {
                        switch (cnf.Trim().ToUpper())
                        {
                        case "LINEAL":
                            prf = DtoLibVenta.Sistema.Enumerados.enumMetodoCalculoUtilidad.Lineal;
                            break;

                        case "FINANCIERO":
                            prf = DtoLibVenta.Sistema.Enumerados.enumMetodoCalculoUtilidad.Financiero;
                            break;
                        }
                    }

                    result.Entidad = prf;
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
Ejemplo n.º 15
0
        public DtoLib.ResultadoEntidad <DateTime> FechaServidor()
        {
            var result = new DtoLib.ResultadoEntidad <DateTime>();

            try
            {
                using (var ctx = new LibEntityVentas.libVentasEntities(_cnVenta.ConnectionString))
                {
                    var fechaSistema = ctx.Database.SqlQuery <DateTime>("select now()").FirstOrDefault();
                    result.Entidad = fechaSistema.Date;
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
Ejemplo n.º 16
0
        public DtoLib.ResultadoEntidad <bool> HabilitarAlertaPorExistenciaEnNegativa()
        {
            var result = new DtoLib.ResultadoEntidad <bool>();

            try
            {
                var rt = false;
                using (var ctx = new LibEntityVentas.libVentasEntities(_cnVenta.ConnectionString))
                {
                    var cnf = ctx.Database.SqlQuery <string>("select usuario from sistema_configuracion where codigo='GLOBAL31'").FirstOrDefault();
                    if (cnf == null)
                    {
                        result.Entidad = true;
                        return(result);
                    }

                    if (cnf.Trim() != "")
                    {
                        switch (cnf.Trim().ToUpper())
                        {
                        case "SI":
                            rt = true;
                            break;

                        case "NO":
                            rt = false;
                            break;
                        }
                    }

                    result.Entidad = rt;
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
        public DtoLib.ResultadoLista <DtoLibVenta.Venta.Resumen> VentaLista(DtoLibVenta.Venta.Filtro filtro)
        {
            var result = new DtoLib.ResultadoLista <DtoLibVenta.Venta.Resumen>();

            try
            {
                using (var cnn = new LibEntityVentas.libVentasEntities(_cnVenta.ConnectionString))
                {
                    var q = cnn.ventas.ToList();
                    if (filtro.segun_FechaEmisionDesde.HasValue)
                    {
                        q = q.Where(w => w.fecha >= filtro.segun_FechaEmisionDesde.Value).ToList();
                    }
                    if (filtro.segun_FechaEmisionHasta.HasValue)
                    {
                        q = q.Where(w => w.fecha >= filtro.segun_FechaEmisionHasta.Value).ToList();
                    }

                    var list = new List <DtoLibVenta.Venta.Resumen>();
                    if (q != null)
                    {
                        if (q.Count() > 0)
                        {
                            result.Lista = q.Select(s =>
                            {
                                var isAnulado         = s.estatus_anulado == "1" ? true : false;
                                var isCerradoContable = s.estatus_cierre_contable == "1" ? true : false;
                                var tipoDoc           = DtoLibVenta.Venta.Enumerados.enumTipoDocumento.SinDefinir;
                                var isCredito         = s.condicion_pago.Trim().ToUpper() == "CREDITO" ? true : false;
                                switch (s.tipo.Trim().ToUpper())
                                {
                                case "01":
                                    tipoDoc = DtoLibVenta.Venta.Enumerados.enumTipoDocumento.Factura;
                                    break;

                                case "02":
                                    tipoDoc = DtoLibVenta.Venta.Enumerados.enumTipoDocumento.NotaDebito;
                                    break;

                                case "03":
                                    tipoDoc = DtoLibVenta.Venta.Enumerados.enumTipoDocumento.NotaCredito;
                                    break;

                                case "04":
                                    tipoDoc = DtoLibVenta.Venta.Enumerados.enumTipoDocumento.NotaEntrega;
                                    break;

                                case "05":
                                    tipoDoc = DtoLibVenta.Venta.Enumerados.enumTipoDocumento.Pedido;
                                    break;

                                case "06":
                                    tipoDoc = DtoLibVenta.Venta.Enumerados.enumTipoDocumento.Presupuesto;
                                    break;
                                }

                                var r = new DtoLibVenta.Venta.Resumen()
                                {
                                    Auto           = s.auto,
                                    CodigoSucursal = s.codigo_sucursal,
                                    ControlNro     = s.control,
                                    DocumentoNro   = s.documento,
                                    EntidadNombre  = s.razon_social,
                                    EntidadRif     = s.ci_rif,
                                    FechaEmision   = s.fecha,
                                    FechaRegistro  = s.fecha_registro,
                                    IsAnulado      = isAnulado,
                                    IsCredito      = isCredito,
                                    TipoDocumento  = tipoDoc,
                                    Total          = s.total,
                                    Notas          = s.nota,
                                    Signo          = s.signo,
                                };
                                return(r);
                            }).ToList();
                        }
                        else
                        {
                            result.Lista = list;
                        }
                    }
                    else
                    {
                        result.Lista = list;
                    }
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
Ejemplo n.º 18
0
        public DtoLib.ResultadoLista <DtoLibVenta.Inventario.Precio.Resumen> ProductoPrecios(string auto)
        {
            var result = new DtoLib.ResultadoLista <DtoLibVenta.Inventario.Precio.Resumen>();

            try
            {
                using (var cnn = new LibEntityVentas.libVentasEntities(_cnVenta.ConnectionString))
                {
                    var list = new List <DtoLibVenta.Inventario.Precio.Resumen>();
                    var q    = cnn.productos.Find(auto);
                    if (q != null)
                    {
                        var p1 = new DtoLibVenta.Inventario.Precio.Resumen()
                        {
                            Id             = "1",
                            PrecioNeto     = q.precio_1,
                            ContEmpVenta   = q.contenido_1,
                            DescEmpVenta   = q.productos_medida3.nombre,
                            UtilidadMargen = q.utilidad_1,
                            Decimales      = q.productos_medida3.decimales,
                        };
                        var p2 = new DtoLibVenta.Inventario.Precio.Resumen()
                        {
                            Id             = "2",
                            PrecioNeto     = q.precio_2,
                            ContEmpVenta   = q.contenido_2,
                            DescEmpVenta   = q.productos_medida4.nombre,
                            UtilidadMargen = q.utilidad_2,
                            Decimales      = q.productos_medida4.decimales,
                        };
                        var p3 = new DtoLibVenta.Inventario.Precio.Resumen()
                        {
                            Id             = "3",
                            PrecioNeto     = q.precio_3,
                            ContEmpVenta   = q.contenido_3,
                            DescEmpVenta   = q.productos_medida5.nombre,
                            UtilidadMargen = q.utilidad_3,
                            Decimales      = q.productos_medida5.decimales,
                        };
                        var p4 = new DtoLibVenta.Inventario.Precio.Resumen()
                        {
                            Id             = "4",
                            PrecioNeto     = q.precio_4,
                            ContEmpVenta   = q.contenido_4,
                            DescEmpVenta   = q.productos_medida.nombre,
                            UtilidadMargen = q.utilidad_4,
                            Decimales      = q.productos_medida.decimales,
                        };
                        var p5 = new DtoLibVenta.Inventario.Precio.Resumen()
                        {
                            Id             = "5",
                            PrecioNeto     = q.precio_pto,
                            ContEmpVenta   = q.contenido_pto,
                            DescEmpVenta   = q.productos_medida1.nombre,
                            UtilidadMargen = q.utilidad_pto,
                            Decimales      = q.productos_medida1.decimales,
                        };

                        list.Add(p1);
                        list.Add(p2);
                        list.Add(p3);
                        list.Add(p4);
                        list.Add(p5);

                        result.Lista = list;
                    }
                    else
                    {
                        result.Lista = list;
                    }
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
Ejemplo n.º 19
0
        public DtoLib.ResultadoEntidad <DtoLibVenta.Inventario.Precio.Resumen> Precio(string autoProducto, string idPrecio)
        {
            var result = new DtoLib.ResultadoEntidad <DtoLibVenta.Inventario.Precio.Resumen>();

            try
            {
                using (var cnn = new LibEntityVentas.libVentasEntities(_cnVenta.ConnectionString))
                {
                    var q = cnn.productos.Find(autoProducto);
                    if (q == null)
                    {
                        result.Result  = DtoLib.Enumerados.EnumResult.isError;
                        result.Mensaje = "[ ID ] PRODUCTO NO ENCONTRADO";
                        return(result);
                    }

                    DtoLibVenta.Inventario.Precio.Resumen p = null;
                    switch (idPrecio.Trim().ToUpper())
                    {
                    case "1":
                        p = new DtoLibVenta.Inventario.Precio.Resumen()
                        {
                            Id             = "1",
                            PrecioNeto     = q.precio_1,
                            ContEmpVenta   = q.contenido_1,
                            DescEmpVenta   = q.productos_medida3.nombre,
                            UtilidadMargen = q.utilidad_1,
                            Decimales      = q.productos_medida3.decimales,
                        };
                        break;

                    case "2":
                        p = new DtoLibVenta.Inventario.Precio.Resumen()
                        {
                            Id             = "2",
                            PrecioNeto     = q.precio_2,
                            ContEmpVenta   = q.contenido_2,
                            DescEmpVenta   = q.productos_medida4.nombre,
                            UtilidadMargen = q.utilidad_2,
                            Decimales      = q.productos_medida4.decimales,
                        };
                        break;

                    case "3":
                        p = new DtoLibVenta.Inventario.Precio.Resumen()
                        {
                            Id             = "3",
                            PrecioNeto     = q.precio_3,
                            ContEmpVenta   = q.contenido_3,
                            DescEmpVenta   = q.productos_medida5.nombre,
                            UtilidadMargen = q.utilidad_3,
                            Decimales      = q.productos_medida5.decimales,
                        };
                        break;

                    case "4":
                        p = new DtoLibVenta.Inventario.Precio.Resumen()
                        {
                            Id             = "4",
                            PrecioNeto     = q.precio_4,
                            ContEmpVenta   = q.contenido_4,
                            DescEmpVenta   = q.productos_medida.nombre,
                            UtilidadMargen = q.utilidad_4,
                            Decimales      = q.productos_medida.decimales,
                        };
                        break;

                    default:
                        result.Mensaje = "[ ID ] PRECIO NO ENCONTRADO/DEFINIDO";
                        result.Result  = DtoLib.Enumerados.EnumResult.isError;
                        return(result);
                    }

                    result.Entidad = p;
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
Ejemplo n.º 20
0
        public DtoLib.ResultadoLista <DtoLibVenta.Inventario.Producto.Resumen> ProductoLista(DtoLibVenta.Inventario.Producto.Filtro filtro)
        {
            var result = new DtoLib.ResultadoLista <DtoLibVenta.Inventario.Producto.Resumen>();

            try
            {
                using (var cnn = new LibEntityVentas.libVentasEntities(_cnVenta.ConnectionString))
                {
                    var q = cnn.productos.ToList();
                    if (filtro.cadena != "")
                    {
                        if (filtro.preferenciaBusqueda == DtoLibVenta.Inventario.Enumerados.enumPreferenciaBusqueda.Codigo)
                        {
                            var cad = filtro.cadena.Trim().ToUpper();
                            if (cad.Substring(0, 1) == "*")
                            {
                                cad = cad.Substring(1);
                                q   = q.Where(w => w.codigo.Contains(cad)).ToList();
                            }
                            else
                            {
                                q = q.Where(w =>
                                {
                                    var r = w.codigo.Trim().ToUpper();
                                    if (r.Length >= cad.Length && r.Substring(0, cad.Length) == cad)
                                    {
                                        return(true);
                                    }
                                    else
                                    {
                                        return(false);
                                    }
                                }).ToList();
                            }
                        }
                        if (filtro.preferenciaBusqueda == DtoLibVenta.Inventario.Enumerados.enumPreferenciaBusqueda.Nombre)
                        {
                            var cad = filtro.cadena.Trim().ToUpper();
                            if (cad.Substring(0, 1) == "*")
                            {
                                cad = cad.Substring(1);
                                q   = q.Where(w => w.nombre.Contains(cad)).ToList();
                            }
                            else
                            {
                                q = q.Where(w =>
                                {
                                    var r = w.nombre.Trim().ToUpper();
                                    if (r.Length >= cad.Length && r.Substring(0, cad.Length) == cad)
                                    {
                                        return(true);
                                    }
                                    else
                                    {
                                        return(false);
                                    }
                                }).ToList();
                            }
                        }
                        if (filtro.preferenciaBusqueda == DtoLibVenta.Inventario.Enumerados.enumPreferenciaBusqueda.Referencia)
                        {
                            var cad = filtro.cadena.Trim().ToUpper();
                            if (cad.Substring(0, 1) == "*")
                            {
                                cad = cad.Substring(1);
                                q   = q.Where(w => w.referencia.Contains(cad)).ToList();
                            }
                            else
                            {
                                q = q.Where(w =>
                                {
                                    var r = w.referencia.Trim().ToUpper();
                                    if (r.Length >= cad.Length && r.Substring(0, cad.Length) == cad)
                                    {
                                        return(true);
                                    }
                                    else
                                    {
                                        return(false);
                                    }
                                }).ToList();
                            }
                        }
                    }

                    var list = new List <DtoLibVenta.Inventario.Producto.Resumen>();
                    if (q != null)
                    {
                        if (q.Count() > 0)
                        {
                            result.Lista = q.Select(s =>
                            {
                                var isActivo = s.estatus.Trim().ToUpper() == "ACTIVO" ? true : false;
                                var r        = new DtoLibVenta.Inventario.Producto.Resumen()
                                {
                                    Auto           = s.auto,
                                    CodigoPrd      = s.codigo,
                                    NombrePrd      = s.nombre,
                                    DescripcionPrd = s.nombre,
                                    ReferenciaPrd  = s.referencia,
                                    IsActivo       = isActivo,
                                };
                                return(r);
                            }).ToList();
                        }
                        else
                        {
                            result.Lista = list;
                        }
                    }
                    else
                    {
                        result.Lista = list;
                    }
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
        public DtoLib.ResultadoAuto ClienteAgregarEventual(DtoLibVenta.Cliente.AgregarEventual ficha)
        {
            var result = new DtoLib.ResultadoAuto();

            try
            {
                using (var ctx = new LibEntityVentas.libVentasEntities(_cnVenta.ConnectionString))
                {
                    using (var ts = new TransactionScope())
                    {
                        var r = ctx.Database.ExecuteSqlCommand("update sistema_contadores set a_clientes=a_clientes+1");
                        if (r == 0)
                        {
                            result.Mensaje = "PROBLEMA AL ACTUALIZAR CONTADOR DE CLIENTE";
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }

                        var fechaSistema = ctx.Database.SqlQuery <DateTime>("select now()").FirstOrDefault();
                        var cntCliente   = ctx.Database.SqlQuery <int>("select a_clientes from sistema_contadores").FirstOrDefault();
                        var AutoCliente  = cntCliente.ToString().Trim().PadLeft(10, '0');

                        var ent = new LibEntityVentas.clientes()
                        {
                            auto                  = AutoCliente,
                            auto_grupo            = "0000000001",
                            auto_zona             = "0000000001",
                            auto_estado           = "0000000001",
                            auto_agencia          = "0000000001",
                            auto_cobrador         = "0000000001",
                            auto_vendedor         = "0000000001",
                            auto_codigo_anticipos = "0000000001",
                            auto_codigo_cobrar    = "0000000001",
                            auto_codigo_ingresos  = "0000000001",

                            ci_rif              = ficha.CiRif,
                            razon_social        = ficha.NombreRazonSocial,
                            dir_fiscal          = ficha.DireccionFiscal,
                            telefono            = ficha.Telefono,
                            estatus             = "Activo",
                            estatus_credito     = "0",
                            categoria           = "Eventual",
                            tarifa              = " ",
                            dias_credito        = 0,
                            limite_credito      = 0,
                            doc_pendientes      = 0,
                            pais                = "VZLA",
                            fecha_alta          = fechaSistema.Date,
                            denominacion_fiscal = "No Contribuyente",

                            codigo            = "",
                            nombre            = "",
                            dir_despacho      = "",
                            contacto          = "",
                            email             = "",
                            website           = "",
                            codigo_postal     = "",
                            retencion_iva     = 0.0m,
                            retencion_islr    = 0.0m,
                            descuento         = 0.0m,
                            recargo           = 0.0m,
                            estatus_morosidad = "0",
                            estatus_lunes     = "0",
                            estatus_martes    = "0",
                            estatus_miercoles = "0",
                            estatus_jueves    = "0",
                            estatus_viernes   = "0",
                            estatus_sabado    = "0",
                            estatus_domingo   = "0",
                            fecha_baja        = new DateTime(2000, 01, 01),
                            fecha_ult_pago    = new DateTime(2000, 01, 01),
                            fecha_ult_venta   = new DateTime(2000, 01, 01),
                            anticipos         = 0.0m,
                            debitos           = 0.0m,
                            creditos          = 0.0m,
                            saldo             = 0.0m,
                            disponible        = 0.0m,
                            memo                  = "",
                            aviso                 = "",
                            cuenta                = "",
                            iban                  = "",
                            swit                  = "",
                            dir_banco             = "",
                            descuento_pronto_pago = 0.0m,
                            importe_ult_pago      = 0.0m,
                            importe_ult_venta     = 0.0m,
                            telefono2             = "",
                            fax     = "",
                            celular = "",
                            abc     = " ",
                        };
                        ctx.clientes.Add(ent);
                        ctx.SaveChanges();

                        ts.Complete();
                        result.Auto = AutoCliente;
                    }
                }
            }
            catch (DbEntityValidationException e)
            {
                var msg = "";
                foreach (var eve in e.EntityValidationErrors)
                {
                    foreach (var ve in eve.ValidationErrors)
                    {
                        msg += ve.ErrorMessage;
                    }
                }
                result.Mensaje = msg;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }
            return(result);
        }
        public DtoLib.ResultadoEntidad <DtoLibVenta.Cliente.DetalleResumen> ClienteDetalleResumen(string auto)
        {
            var result = new DtoLib.ResultadoEntidad <DtoLibVenta.Cliente.DetalleResumen>();

            try
            {
                using (var cnn = new LibEntityVentas.libVentasEntities(_cnVenta.ConnectionString))
                {
                    var q = cnn.clientes.Find(auto);
                    if (q == null)
                    {
                        result.Mensaje = "[ ID ] CLIENTE NO ENCONTRADO";
                        result.Result  = DtoLib.Enumerados.EnumResult.isError;
                        return(result);
                    }

                    var tarifa              = DtoLibVenta.Cliente.Enumerados.enumTarifaPrecio.SinDefinir;
                    var isActivo            = q.estatus.Trim().ToUpper() == "ACTIVO"?true:false;
                    var categoria           = DtoLibVenta.Cliente.Enumerados.enumCategoria.SinDefinir;
                    var isCreditoHabilitado = q.estatus_credito.Trim().ToUpper() == "1"?true:false;
                    var denominacionFiscal  = DtoLibVenta.Cliente.Enumerados.enumDenominacionFiscal.SinDefinir;

                    switch (q.categoria.Trim().ToUpper())
                    {
                    case "EVENTUAL":
                        categoria = DtoLibVenta.Cliente.Enumerados.enumCategoria.Eventual;
                        break;

                    case "ADMINISTRATIVO":
                        categoria = DtoLibVenta.Cliente.Enumerados.enumCategoria.Administrativo;
                        break;
                    }

                    switch (q.tarifa.Trim().ToUpper())
                    {
                    case "1":
                        tarifa = DtoLibVenta.Cliente.Enumerados.enumTarifaPrecio.Tarifa_1;
                        break;

                    case "2":
                        tarifa = DtoLibVenta.Cliente.Enumerados.enumTarifaPrecio.Tarifa_2;
                        break;

                    case "3":
                        tarifa = DtoLibVenta.Cliente.Enumerados.enumTarifaPrecio.Tarifa_3;
                        break;

                    case "4":
                        tarifa = DtoLibVenta.Cliente.Enumerados.enumTarifaPrecio.Tarifa_4;
                        break;
                    }

                    switch (q.denominacion_fiscal.Trim().ToUpper())
                    {
                    case "NO CONTRIBUYENTE":
                        denominacionFiscal = DtoLibVenta.Cliente.Enumerados.enumDenominacionFiscal.NoContribuyente;
                        break;

                    case "CONTRIBUYENTE":
                        denominacionFiscal = DtoLibVenta.Cliente.Enumerados.enumDenominacionFiscal.Contribuyente;
                        break;
                    }

                    var ent = new DtoLibVenta.Cliente.DetalleResumen()
                    {
                        Auto                = q.auto,
                        AutoGrupo           = q.auto_grupo,
                        AutoCobrador        = q.auto_cobrador,
                        AutoVendedor        = q.auto_vendedor,
                        AutoEstado          = q.auto_estado,
                        AutoZona            = q.auto_zona,
                        Codigo              = q.codigo,
                        Nombre              = q.razon_social,
                        CiRif               = q.ci_rif,
                        DireccionFiscal     = q.dir_fiscal,
                        Contacto            = q.contacto,
                        Tarifa              = tarifa,
                        PorctDescuento      = q.descuento,
                        PorctRecargo        = q.recargo,
                        IsCreditoHabilitado = isCreditoHabilitado,
                        DiasCredito         = q.dias_credito,
                        Categoria           = categoria,
                        LimitePorDocumento  = q.doc_pendientes,
                        LimitePorMonto      = q.limite_credito,
                        Notas               = q.memo,
                        Aviso               = q.aviso,
                        IsActivo            = isActivo,
                        Email               = q.email,
                        Telefono_1          = q.telefono,
                        Telefono_2          = q.telefono2,
                        Celular             = q.celular,
                        GrupoCodigo         = q.clientes_grupo.codigo,
                        GrupoDescripcion    = q.clientes_grupo.nombre,
                        ZonaCodigo          = q.clientes_zonas.codigo,
                        ZonaDescripcion     = q.clientes_zonas.nombre,
                        CobradorCodigo      = q.empresa_cobradores.codigo,
                        CobradorNombre      = q.empresa_cobradores.nombre,
                        VendedorCodigo      = q.vendedores.codigo,
                        VendedorNombre      = q.vendedores.nombre,
                        EstadoDescripcion   = q.clientes_zonas.nombre,
                        DenominacionFiscal  = denominacionFiscal,
                    };
                    result.Entidad = ent;
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
        public DtoLib.ResultadoLista <DtoLibVenta.Cliente.PendientePorCobrar> ClienteDocPendientePorCobrar(string auto)
        {
            var result = new DtoLib.ResultadoLista <DtoLibVenta.Cliente.PendientePorCobrar>();

            try
            {
                using (var cnn = new LibEntityVentas.libVentasEntities(_cnVenta.ConnectionString))
                {
                    var q = cnn.cxc.Where(w => w.auto_cliente == auto && w.tipo_documento.Trim().ToUpper() != "PAG").ToList();
                    q = q.Where(w => w.estatus_cancelado == "0").ToList();
                    q = q.Where(w => w.estatus_anulado == "0").ToList();

                    var list = new List <DtoLibVenta.Cliente.PendientePorCobrar>();
                    if (q != null)
                    {
                        if (q.Count() > 0)
                        {
                            result.Lista = q.Select(s =>
                            {
                                var isAdministrativo = s.auto_documento == s.auto ? true : false;
                                var tipoDocumento    = DtoLibVenta.Cliente.Enumerados.enumTipoDocumentoPorCobrar.SinDefinir;
                                switch (s.tipo_documento.Trim().ToUpper())
                                {
                                case "FAC":
                                    tipoDocumento = DtoLibVenta.Cliente.Enumerados.enumTipoDocumentoPorCobrar.Factura;
                                    break;

                                case "NCR":
                                    tipoDocumento = DtoLibVenta.Cliente.Enumerados.enumTipoDocumentoPorCobrar.NotaCredito;
                                    break;

                                case "NDB":
                                    tipoDocumento = DtoLibVenta.Cliente.Enumerados.enumTipoDocumentoPorCobrar.NotaDebito;
                                    break;
                                }
                                var r = new DtoLibVenta.Cliente.PendientePorCobrar()
                                {
                                    Abonado          = s.acumulado,
                                    AutoDocumento    = s.auto_documento,
                                    Documento        = s.documento,
                                    FechaEmision     = s.fecha,
                                    MontoDocumento   = Math.Abs(s.importe),
                                    Signo            = s.signo,
                                    TipoDocumento    = tipoDocumento,
                                    IsAdministrativo = isAdministrativo,
                                };
                                return(r);
                            }).ToList();
                        }
                        else
                        {
                            result.Lista = list;
                        }
                    }
                    else
                    {
                        result.Lista = list;
                    }
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
        public DtoLib.ResultadoAuto VentaAgregar(DtoLibVenta.Venta.Agregar ficha)
        {
            var result = new DtoLib.ResultadoAuto();

            try
            {
                using (var ctx = new LibEntityVentas.libVentasEntities(_cnVenta.ConnectionString))
                {
                    using (var ts = new TransactionScope())
                    {
                        var r1 = ctx.Database.ExecuteSqlCommand("update sistema_contadores set a_ventas=a_ventas+1");
                        if (r1 == 0)
                        {
                            result.Mensaje = "PROBLEMA AL ACTUALIZAR CONTADOR DE VENTAS";
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }
                        var r2 = ctx.Database.ExecuteSqlCommand("update sistema_contadores set a_cxc=a_cxc+1");
                        if (r2 == 0)
                        {
                            result.Mensaje = "PROBLEMA AL ACTUALIZAR CONTADOR DE CXC ";
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }
                        var cntVenta  = ctx.Database.SqlQuery <int>("select a_ventas from sistema_contadores").FirstOrDefault();
                        var cntCxC    = ctx.Database.SqlQuery <int>("select a_cxc from sistema_contadores").FirstOrDefault();
                        var autoVenta = cntVenta.ToString().Trim().PadLeft(10, '0');
                        var autoCxC   = cntCxC.ToString().Trim().PadLeft(10, '0');

                        var autoCxcPago         = "";
                        var autoCxcRecibo       = "";
                        var autoCxcReciboNumero = "";
                        if (ficha.CondicionPago == DtoLibVenta.Venta.Enumerados.enumCondicionPago.Contado)
                        {
                            var r3 = ctx.Database.ExecuteSqlCommand("update sistema_contadores set a_cxc_recibo=a_cxc_recibo+1");
                            if (r3 == 0)
                            {
                                result.Mensaje = "PROBLEMA AL ACTUALIZAR CONTADOR DE CXC RECIBO ";
                                result.Result  = DtoLib.Enumerados.EnumResult.isError;
                                return(result);
                            }
                            var r4 = ctx.Database.ExecuteSqlCommand("update sistema_contadores set a_cxc_recibo_numero=a_cxc_recibo_numero+1");
                            if (r4 == 0)
                            {
                                result.Mensaje = "PROBLEMA AL ACTUALIZAR CONTADOR DE CXC RECIBO NUMERO";
                                result.Result  = DtoLib.Enumerados.EnumResult.isError;
                                return(result);
                            }
                            var r5 = ctx.Database.ExecuteSqlCommand("update sistema_contadores set a_cxc=a_cxc+1");
                            if (r5 == 0)
                            {
                                result.Mensaje = "PROBLEMA AL ACTUALIZAR CONTADOR DE CXC PAGO";
                                result.Result  = DtoLib.Enumerados.EnumResult.isError;
                                return(result);
                            }
                            var cntCxcRecibo       = ctx.Database.SqlQuery <int>("select a_cxc_recibo from sistema_contadores").FirstOrDefault();
                            var cntCxcReciboNumero = ctx.Database.SqlQuery <int>("select a_cxc_recibo_numero from sistema_contadores").FirstOrDefault();
                            var cntCxcPago         = ctx.Database.SqlQuery <int>("select a_cxc from sistema_contadores").FirstOrDefault();
                            autoCxcRecibo       = cntCxcRecibo.ToString().Trim().PadLeft(10, '0');
                            autoCxcReciboNumero = cntCxcReciboNumero.ToString().Trim().PadLeft(10, '0');
                            autoCxcPago         = cntCxcPago.ToString().Trim().PadLeft(10, '0');
                        }

                        //VALORES A PROCESAR
                        var fechaSistema     = ctx.Database.SqlQuery <DateTime>("select now()").FirstOrDefault();
                        var documentoVenta   = "";
                        var fechaVencimiento = fechaSistema.AddDays(ficha.DiasCredito);

                        var entVenta = new LibEntityVentas.ventas()
                        {
                            auto                       = autoVenta,
                            documento                  = documentoVenta,
                            fecha                      = fechaSistema.Date,
                            fecha_vencimiento          = fechaVencimiento,
                            razon_social               = ficha.ClienteNombre,
                            dir_fiscal                 = ficha.ClienteDirFiscal,
                            ci_rif                     = ficha.ClienteCiRif,
                            tipo                       = ficha.DocumentoCodigo,
                            exento                     = ficha.AgregarTotales.MontoExento,
                            base1                      = ficha.AgregarTotales.MontoBase1,
                            base2                      = ficha.AgregarTotales.MontoBase2,
                            base3                      = ficha.AgregarTotales.MontoBase3,
                            impuesto1                  = ficha.AgregarTotales.MontoImp1,
                            impuesto2                  = ficha.AgregarTotales.MontoImp2,
                            impuesto3                  = ficha.AgregarTotales.MontoImp3,
                            @base                      = ficha.AgregarTotales.MontoBase,
                            impuesto                   = ficha.AgregarTotales.MontoImpuesto,
                            total                      = ficha.AgregarTotales.MontoTotal,
                            tasa1                      = ficha.AgregarTotales.Tasa1,
                            tasa2                      = ficha.AgregarTotales.Tasa2,
                            tasa3                      = ficha.AgregarTotales.Tasa3,
                            nota                       = ficha.Notas,
                            tasa_retencion_islr        = 0.0m,
                            tasa_retencion_iva         = 0.0m,
                            retencion_iva              = 0.0m,
                            retencion_islr             = 0.0m,
                            auto_cliente               = ficha.AutoCliente,
                            codigo_cliente             = ficha.ClienteCodigo,
                            mes_relacion               = ficha.MesRelacion,
                            control                    = ficha.SerialFiscal,
                            fecha_registro             = fechaSistema.Date,
                            orden_compra               = ficha.AgregarEncabezado.OrdenCompra,
                            dias                       = ficha.DiasCredito,
                            descuento1                 = ficha.AgregarTotales.DescuentoMonto_1,
                            descuento2                 = ficha.AgregarTotales.DescuentoMonto_2,
                            cargos                     = ficha.AgregarTotales.CargoMonto,
                            descuento1p                = ficha.AgregarTotales.DescuentoPorct_1,
                            descuento2p                = ficha.AgregarTotales.DescuentoPorct_2,
                            cargosp                    = ficha.AgregarTotales.CargoPorct,
                            columna                    = "1",
                            estatus_anulado            = "0",
                            aplica                     = "",
                            comprobante_retencion      = "",
                            subtotal_neto              = ficha.AgregarTotales.SubTotalNeto,
                            telefono                   = ficha.ClienteTelefono,
                            factor_cambio              = ficha.FactorCambio,
                            codigo_vendedor            = ficha.VendedorCodigo,
                            vendedor                   = ficha.VendedorNombre,
                            auto_vendedor              = ficha.AutoVendedor,
                            fecha_pedido               = ficha.AgregarEncabezado.FechaPedido,
                            pedido                     = ficha.AgregarEncabezado.Pedido,
                            condicion_pago             = ficha.CondicionPagoDescripcion,
                            usuario                    = ficha.UsuarioNombre,
                            codigo_usuario             = ficha.UsuarioCodigo,
                            codigo_sucursal            = ficha.CodigoSucursal,
                            hora                       = fechaSistema.ToShortTimeString(),
                            transporte                 = ficha.TransporteNombre,
                            codigo_transporte          = ficha.TransporteCodigo,
                            monto_divisa               = ficha.AgregarTotales.MontoDivisa,
                            despachado                 = ficha.AgregarEncabezado.DepachadoPor,
                            dir_despacho               = ficha.AgregarEncabezado.DireccionDespacho,
                            estacion                   = ficha.Estacion,
                            auto_recibo                = autoCxcRecibo,
                            recibo                     = autoCxcReciboNumero,
                            renglones                  = ficha.Renglones,
                            saldo_pendiente            = ficha.AgregarTotales.SaldoPendiente,
                            ano_relacion               = ficha.AnoRelacion,
                            comprobante_retencion_islr = "",
                            dias_validez               = 0,
                            auto_usuario               = ficha.AutoUsuario,
                            auto_transporte            = ficha.AutoTransporte,
                            situacion                  = ficha.DocumentoSituacion,
                            signo                      = ficha.DocumentoSigno,
                            serie                      = ficha.AgregarEncabezado.Serie,
                            tarifa                     = ficha.ClienteTarifa,
                            tipo_remision              = ficha.AgregarEncabezado.TipoRemision,
                            documento_remision         = ficha.AgregarEncabezado.DocumentoRemision,
                            auto_remision              = ficha.AgregarEncabezado.AutoRemision,
                            documento_nombre           = ficha.DocumentoNombre,
                            subtotal_impuesto          = ficha.AgregarTotales.MontoImpuesto,
                            subtotal                   = ficha.AgregarTotales.SubTotal,
                            auto_cxc                   = autoCxC,
                            tipo_cliente               = "",
                            planilla                   = "",
                            expediente                 = "",
                            anticipo_iva               = 0.0m,
                            terceros_iva               = 0.0m,
                            neto                       = ficha.AgregarTotales.VentaNeta,
                            costo                      = ficha.AgregarTotales.CostoVenta,
                            utilidad                   = ficha.AgregarTotales.Utilidad,
                            utilidadp                  = ficha.AgregarTotales.UtilidadPorc,
                            documento_tipo             = ficha.DocumentoTipo,
                            ci_titular                 = "",
                            nombre_titular             = "",
                            ci_beneficiario            = "",
                            nombre_beneficiario        = "",
                            clave                      = "",
                            denominacion_fiscal        = ficha.ClienteDenominacionFiscal,
                            cambio                     = ficha.CambioDar,
                            estatus_validado           = "0",
                            cierre                     = "",
                            fecha_retencion            = new DateTime(2000, 01, 01),
                            estatus_cierre_contable    = "0",
                        };
                        ctx.ventas.Add(entVenta);
                        ctx.SaveChanges();

                        var sql = @"INSERT INTO ventas_detalle (auto_documento, auto_producto, codigo, nombre, auto_departamento,
                                    auto_grupo, auto_subgrupo, auto_deposito, cantidad, empaque, precio_neto, descuento1p, descuento2p,
                                    descuento3p, descuento1, descuento2, descuento3, costo_venta, total_neto, tasa, impuesto, total,
                                    auto, estatus_anulado, fecha, tipo, deposito, signo, precio_final, auto_cliente, decimales, 
                                    contenido_empaque, cantidad_und, precio_und, costo_und, utilidad, utilidadp, precio_item, 
                                    estatus_garantia, estatus_serial, codigo_deposito, dias_garantia, detalle, precio_sugerido,
                                    auto_tasa, estatus_corte, x, y, z, corte, categoria, cobranzap, ventasp, cobranzap_vendedor,
                                    ventasp_vendedor, cobranza, ventas, cobranza_vendedor, ventas_vendedor, costo_promedio_und, 
                                    costo_compra, estatus_checked, tarifa, total_descuento, codigo_vendedor, auto_vendedor, hora) 
                                    Values ({0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}, {10}, {11}, {12}, {13}, {14}, {15},
                                    {16}, {17}, {18}, {19}, {20}, {21}, {22}, {23}, {24}, {25}, {26}, {27}, {28}, {29}, {30}, {31},
                                    {32}, {33}, {34}, {35}, {36}, {37}, {38}, {39}, {40}, {41}, {42}, {43}, {44}, {45}, {46}, {47},
                                    {48}, {49}, {50}, {51}, {52}, {53}, {54}, {55}, {56}, {57}, {58}, {59}, {60}, {61}, {62}, {63},
                                    {64}, {65}, {66})";
                        //CUERPO DEL DOCUMENTO => ITEMS
                        var item = 0;
                        foreach (var dt in ficha.AgregarCuerpo)
                        {
                            item += 1;
                            var autoItem   = item.ToString().Trim().PadLeft(10, '0');
                            var isGarantia = dt.IsGarantia ? "1" : "0";
                            var isSerial   = dt.IsSerial ? "1" : "0";

                            var vd = ctx.Database.ExecuteSqlCommand(sql, autoVenta, dt.AutoProducto, dt.CodigoPrd, dt.NombrePrd, dt.AutoDepartamento,
                                                                    dt.AutoGrupo, dt.AutoSubGrupo, dt.AutoDeposito, dt.Cantidad, dt.Empaque, dt.PrecioNeto, dt.DescuentoPorc_1,
                                                                    dt.DescuentoPorc_2, dt.DescuentoPorc_3, dt.DescuentoMonto_1, dt.DescuentoMonto_2, dt.DescuentoMonto_3,
                                                                    dt.CostoVenta, dt.TotalNeto, dt.TasaIva, dt.MontoImpuesto, dt.MontoTotal, autoItem, "0", fechaSistema.Date,
                                                                    dt.Tipo, dt.DepositoDescripcion, dt.Signo, dt.PrecioFinal, dt.AutoCliente, dt.Decimales, dt.EmpaqueContenido,
                                                                    dt.CantidadUnd, dt.PrecioUnd, dt.CostoUnd, dt.UtilidadMonto, dt.UtilidadPorc, dt.PrecioItem, isGarantia,
                                                                    isSerial, dt.DepositoCodigo, dt.DiasGarantia, dt.Notas, 0.0m, dt.AutoTasaImpuesto, "0", 0.0m, 0.0m, 0.0m, "",
                                                                    dt.Categoria, 0.0m, 0.0m, 0.0m, 0.0m, 0.0m, 0.0m, 0.0m, 0.0m, dt.CostoPromedioUnd, dt.CostoPromedioCompra,
                                                                    "1", dt.TarifaPrecio, dt.MontoDescuento, dt.VendedorCodigo, dt.AutoVendedor, fechaSistema.ToShortTimeString());
                            if (vd == 0)
                            {
                                result.Mensaje = "PROBLEMA AL REGISTRAR ITEM [ " + Environment.NewLine + dt.NombrePrd + " ]";
                                result.Result  = DtoLib.Enumerados.EnumResult.isError;
                                return(result);
                            }
                        }

                        //DEPOSITO ACTUALIZAR
                        foreach (var dt in ficha.AgregarActProductoDeposito)
                        {
                            var entPrdDeposito = ctx.productos_deposito.FirstOrDefault(w =>
                                                                                       w.auto_producto == dt.AutoProducto &&
                                                                                       w.auto_deposito == dt.AutoDeposito);
                            if (entPrdDeposito == null)
                            {
                                result.Mensaje = "PROBLEMA AL ACTUALIZAR DEPOSITO";
                                result.Result  = DtoLib.Enumerados.EnumResult.isError;
                                return(result);
                            }
                            entPrdDeposito.fisica     -= dt.TotalUnd;
                            entPrdDeposito.disponible -= dt.TotalUnd;
                            ctx.SaveChanges();
                        }


                        var sql2 = @"INSERT INTO productos_kardex (auto_producto,total,auto_deposito,auto_concepto,auto_documento,
                            fecha,hora,documento,modulo,entidad,signo,cantidad,cantidad_bono,cantidad_und,costo_und,estatus_anulado,
                            nota,precio_und,codigo,siglas) VALUES ({0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}, {10}, {11}, 
                            {12}, {13}, {14}, {15},{16}, {17}, {18}, {19})";
                        //KARDEX MOV=> ITEMS
                        foreach (var dt in ficha.AgregarKardex)
                        {
                            var vk = ctx.Database.ExecuteSqlCommand(sql2, dt.AutoProducto, dt.TotalCostoVenta, dt.AutoDeposito,
                                                                    dt.AutoConcepto, autoVenta, fechaSistema.Date, fechaSistema.ToShortTimeString(), documentoVenta,
                                                                    dt.Modulo, dt.Entidad, dt.Signo, dt.Cantidad, 0.0m, dt.CantidadUnd, dt.CostoPromedioUnd, "0",
                                                                    dt.Notas, dt.PrecioUnd, dt.Codigo, dt.Siglas);
                            if (vk == 0)
                            {
                                result.Mensaje = "PROBLEMA AL REGISTRAR MOVIMIENTO KARDEX [ " + Environment.NewLine + dt.AutoProducto + " ]";
                                result.Result  = DtoLib.Enumerados.EnumResult.isError;
                                return(result);
                            }
                        }
                        ;


                        //REGISTRA MOVIMIENTO DE CXC
                        var entCxC = new LibEntityVentas.cxc()
                        {
                            auto              = autoCxC,
                            c_cobranza        = 0.0m,
                            c_cobranzap       = 0.0m,
                            fecha             = fechaSistema.Date,
                            tipo_documento    = ficha.AgregarCxc.DocumentoVentaTipo, // "FAC",
                            documento         = documentoVenta,
                            fecha_vencimiento = fechaVencimiento,
                            nota              = ficha.AgregarCxc.Notas,               //"",
                            importe           = ficha.AgregarCxc.MontoImporteTotal,   //.AgregarTotales.MontoTotal,
                            acumulado         = ficha.AgregarCxc.MontoAcumulado,      // acumulado,
                            auto_cliente      = ficha.AgregarCxc.AutoCliente,         // ficha.AutoCliente,
                            cliente           = ficha.AgregarCxc.ClienteNombre,       //  ficha.ClienteNombre,
                            ci_rif            = ficha.AgregarCxc.ClienteCiRif,        // ficha.ClienteCiRif,
                            codigo_cliente    = ficha.AgregarCxc.ClienteCodigo,       //ficha.ClienteCodigo,
                            estatus_cancelado = ficha.AgregarCxc.IsCancelado?"1":"0", //  estatusCancelado,
                            resta             = ficha.AgregarCxc.MontoResta,          //resta,
                            estatus_anulado   = "0",
                            auto_documento    = autoVenta,
                            numero            = "",
                            auto_agencia      = "0000000001",
                            agencia           = "",
                            signo             = ficha.AgregarCxc.Signo,        // 1,
                            auto_vendedor     = ficha.AgregarCxc.AutoVendedor, // ficha.AutoVendedor,
                            c_departamento    = 0.0m,
                            c_ventas          = 0.0m,
                            c_ventasp         = 0.0m,
                            serie             = ficha.AgregarCxc.DocumentoVentaSerie, //  ficha.AgregarEncabezado.Serie,
                            importe_neto      = ficha.AgregarCxc.MontoImporteNeto,    //  ficha.AgregarTotales.SubTotalNeto,
                            dias              = 0,
                            castigop          = 0.0m,
                        };
                        ctx.cxc.Add(entCxC);
                        ctx.SaveChanges();


                        //SI LA FORMA DE PAGO ES CONTADO, GENERA MOVIMIENTO DE PAGO
                        if (ficha.CondicionPago == DtoLibVenta.Venta.Enumerados.enumCondicionPago.Contado)
                        {
                            var entCliente = ctx.clientes.Find(ficha.AutoCliente);
                            if (entCliente == null)
                            {
                                result.Mensaje = "PROBLEMA AL ACTUALIZAR ENTIDAD [ CLIENTE ]";
                                result.Result  = DtoLib.Enumerados.EnumResult.isError;
                                return(result);
                            }
                            entCliente.fecha_ult_venta = fechaSistema;
                            ctx.SaveChanges();


                            var entCxcPago = new LibEntityVentas.cxc()
                            {
                                auto              = autoCxcPago,
                                c_cobranza        = 0.0m,
                                c_cobranzap       = 0.0m,
                                fecha             = fechaSistema.Date,
                                tipo_documento    = "PAG",               //EL PAGO HACE REFENCIA AL RECIBO GENERADO DE CXC
                                documento         = autoCxcReciboNumero, //EL PAGO HACE REFENCIA AL RECIBO GENERADO DE CXC
                                fecha_vencimiento = fechaVencimiento,
                                nota              = ficha.Notas,
                                importe           = ficha.AgregarTotales.MontoTotal,
                                acumulado         = 0,
                                auto_cliente      = ficha.AutoCliente,
                                cliente           = ficha.ClienteNombre,
                                ci_rif            = ficha.ClienteCiRif,
                                codigo_cliente    = ficha.ClienteCodigo,
                                estatus_cancelado = "0",
                                resta             = 0.0m,
                                estatus_anulado   = "0",
                                auto_documento    = autoCxcRecibo, //EL PAGO HACE REFENCIA AL RECIBO GENERADO DE CXC
                                numero            = "",
                                auto_agencia      = "0000000001",
                                agencia           = "",
                                signo             = -1,
                                auto_vendedor     = ficha.AutoVendedor,
                                c_departamento    = 0.0m,
                                c_ventas          = 0.0m,
                                c_ventasp         = 0.0m,
                                serie             = "",
                                importe_neto      = 0.0m,
                                dias              = 0,
                                castigop          = 0.0m,
                            };
                            ctx.cxc.Add(entCxcPago);
                            ctx.SaveChanges();

                            var entCxcRecibo = new LibEntityVentas.cxc_recibos()
                            {
                                auto            = autoCxcRecibo,
                                documento       = autoCxcReciboNumero,
                                fecha           = fechaSistema,
                                auto_usuario    = ficha.AutoUsuario,
                                importe         = ficha.AgregarTotales.MontoTotal,
                                usuario         = ficha.UsuarioNombre,
                                monto_recibido  = ficha.MontoRecibido,
                                cobrador        = ficha.CobradorNombre,
                                auto_cliente    = ficha.AutoCliente,
                                cliente         = ficha.ClienteNombre,
                                ci_rif          = ficha.ClienteCiRif,
                                codigo          = ficha.ClienteCodigo,
                                estatus_anulado = "0",
                                direccion       = ficha.ClienteDirFiscal,
                                telefono        = ficha.ClienteTelefono,
                                auto_cobrador   = ficha.AutoCobrador,
                                anticipos       = 0.0m,
                                cambio          = ficha.CambioDar,
                                nota            = ficha.Notas,
                                codigo_cobrador = ficha.CobradorCodigo,
                                auto_cxc        = autoCxC,
                                retenciones     = 0.0m,
                                descuentos      = 0.0m,
                                hora            = "",
                                cierre          = "",
                            };
                            ctx.cxc_recibos.Add(entCxcRecibo);
                            ctx.SaveChanges();

                            var entCxcDocumento = new LibEntityVentas.cxc_documentos()
                            {
                                id              = 1,
                                fecha           = fechaSistema.Date,
                                tipo_documento  = "FAC",
                                documento       = documentoVenta,
                                importe         = ficha.AgregarTotales.MontoTotal,
                                operacion       = "Pago",
                                auto_cxc        = autoCxC,
                                auto_cxc_pago   = autoCxcPago,
                                auto_cxc_recibo = autoCxcRecibo,
                                numero_recibo   = autoCxcReciboNumero,
                                fecha_recepcion = new DateTime(2000, 01, 01),
                                dias            = 0,
                                castigop        = 0.0m,
                                comisionp       = 0.0m,
                            };
                            ctx.cxc_documentos.Add(entCxcDocumento);
                            ctx.SaveChanges();

                            foreach (var fp in ficha.AgregarFormaPago)
                            {
                                var entCxcMedioPago = new LibEntityVentas.cxc_medio_pago()
                                {
                                    auto_recibo     = autoCxcRecibo,
                                    auto_medio_pago = fp.AutoMedioPago,
                                    auto_agencia    = fp.AutoAgencia,
                                    medio           = fp.MedioPagoDescripcion,
                                    codigo          = fp.MedioPagoCodigo,
                                    monto_recibido  = fp.MontoRecibido,
                                    fecha           = fechaSistema,
                                    estatus_anulado = "0",
                                    numero          = fp.NumeroRef,
                                    agencia         = fp.AgenciaDescripcion,
                                    auto_usuario    = ficha.AutoUsuario,
                                    lote            = fp.Lote,
                                    referencia      = fp.Referencia,
                                    auto_cobrador   = ficha.AutoCobrador,
                                    cierre          = "",
                                    fecha_agencia   = new DateTime(2001, 01, 01),
                                };
                                ctx.cxc_medio_pago.Add(entCxcMedioPago);
                                ctx.SaveChanges();
                            }
                        }
                        else
                        {
                            var entCliente = ctx.clientes.Find(ficha.AutoCliente);
                            if (entCliente == null)
                            {
                                result.Mensaje = "PROBLEMA AL ACTUALIZAR ENTIDAD [ CLIENTE ]";
                                result.Result  = DtoLib.Enumerados.EnumResult.isError;
                                return(result);
                            }
                            entCliente.fecha_ult_venta = fechaSistema;
                            entCliente.saldo          += ficha.AgregarTotales.MontoTotal;
                            entCliente.disponible     -= ficha.AgregarTotales.MontoTotal;
                            ctx.SaveChanges();
                        }

                        ts.Complete();
                        result.Auto = autoVenta;
                    }
                }
            }
            catch (DbEntityValidationException e)
            {
                var msg = "";
                foreach (var eve in e.EntityValidationErrors)
                {
                    foreach (var ve in eve.ValidationErrors)
                    {
                        msg += ve.ErrorMessage;
                    }
                }
                result.Mensaje = msg;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }
            catch (System.Data.Entity.Infrastructure.DbUpdateException e)
            {
                var msg = "";
                foreach (var eve in e.Entries)
                {
                    //msg += eve.m;
                    foreach (var ve in eve.CurrentValues.PropertyNames)
                    {
                        msg += ve.ToString();
                    }
                }
                result.Mensaje = msg;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }
            return(result);
        }