コード例 #1
0
        public Familia GetSubFamiliaOneOrDefault(long familia, string subFamilia)
        {
            var conn = FarmaciaContext.GetConnection();

            try
            {
                conn.Open();
                var sql = $@"select DESCRIPCION from appul.ab_subfamilias
                    where fam_codigo = {familia} AND codigo = '{subFamilia}'";
                var cmd = conn.CreateCommand();
                cmd.CommandText = sql;
                var reader = cmd.ExecuteReader();

                var descripcion = string.Empty;
                if (reader.Read())
                {
                    descripcion = Convert.ToString(reader["DESCRIPCION"]) ?? string.Empty;
                }

                reader.Close();
                reader.Dispose();
                return(new Familia {
                    Nombre = descripcion
                });
            }
            catch (Exception ex)
            {
                throw;
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }
        }
コード例 #2
0
        public List <Venta> GetAllByIdGreaterOrEqual(long id, DateTime fecha, string empresa)
        {
            var conn = FarmaciaContext.GetConnection();

            try
            {
                var sql = $@"SELECT * FROM (SELECT *
                    FROM appul.ah_ventas
                    WHERE emp_codigo = '{empresa}'
                        AND situacion = 'N'
                        AND operacion >= {id}
                        AND fecha_venta >= to_date('01/01/{fecha.Year}', 'DD/MM/YYYY')
                        AND fecha_venta >= to_date('{fecha.ToString("dd/MM/yyyy")}', 'DD/MM/YYYY')
                        ORDER BY fecha_venta ASC) WHERE ROWNUM <= 999";

                conn.Open();
                var cmd = conn.CreateCommand();
                cmd.CommandText = sql;
                var reader = cmd.ExecuteReader();

                var ventas = new List <Venta>();
                while (reader.Read())
                {
                    var fechaVenta    = Convert.ToDateTime(reader["FECHA_VENTA"]);
                    var fechaFin      = !Convert.IsDBNull(reader["FECHA_FIN"]) ? (DateTime?)Convert.ToDateTime(reader["FECHA_FIN"]) : null;
                    var cliCodigo     = !Convert.IsDBNull(reader["CLI_CODIGO"]) ? (long)Convert.ToInt32(reader["CLI_CODIGO"]) : 0;
                    var tipoOperacion = Convert.ToString(reader["TIPO_OPERACION"]);
                    var operacion     = Convert.ToInt64(reader["OPERACION"]);
                    var puesto        = Convert.ToString(reader["PUESTO"]);
                    var usrCodigo     = Convert.ToString(reader["USR_CODIGO"]);
                    var importeVentaE = !Convert.IsDBNull(reader["IMPORTE_VTA_E"]) ? Convert.ToDecimal(reader["IMPORTE_VTA_E"]) : default(decimal);
                    var empCodigo     = Convert.ToString(reader["EMP_CODIGO"]);
                    ventas.Add(new Venta
                    {
                        ClienteId      = cliCodigo,
                        FechaFin       = fechaFin,
                        FechaHora      = fechaVenta,
                        TipoOperacion  = tipoOperacion,
                        Operacion      = operacion,
                        Puesto         = puesto,
                        VendedorCodigo = usrCodigo,
                        TotalDescuento = importeVentaE,
                        EmpresaCodigo  = empCodigo
                    });
                }

                reader.Close();
                reader.Dispose();
                return(ventas);
            }
            catch (Exception ex)
            {
                throw;
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }
        }
コード例 #3
0
        public Proveedor GetOneOrDefaultByCodigoNacional(string codigoNacional)
        {
            var conn = FarmaciaContext.GetConnection();

            try
            {
                conn.Open();
                var sql = $@"SELECT PROVEEDOR
                    FROM (
                        SELECT PROVEEDOR FROM appul.ad_rec_linped
                            WHERE cant_servida <> 0 AND art_codigo = '{codigoNacional}'
                        ORDER BY fecha_recepcion DESC)
                    WHERE ROWNUM <= 1";

                var cmd = conn.CreateCommand();
                cmd.CommandText = sql;
                var reader = cmd.ExecuteReader();

                if (reader.Read() && !Convert.IsDBNull(reader["PROVEEDOR"]))
                {
                    var id = Convert.ToInt64(reader["PROVEEDOR"]);
                    sql             = $@"SELECT NOMBRE_AB from appul.ad_proveedores where codigo = {id}";
                    cmd.CommandText = sql;
                    reader          = cmd.ExecuteReader();
                    if (reader.Read())
                    {
                        var nombre = Convert.ToString(reader["NOMBRE_AB"]);

                        reader.Close();
                        reader.Dispose();

                        return(new Proveedor
                        {
                            Id = id,
                            Nombre = nombre
                        });
                    }
                }

                reader.Close();
                reader.Dispose();

                return(new Proveedor {
                    Nombre = string.Empty
                });
            }
            catch (Exception ex)
            {
                throw;
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }
        }
コード例 #4
0
        public IEnumerable <Sinonimo> GetAll()
        {
            var conn      = FarmaciaContext.GetConnection();
            var sinonimos = new List <Sinonimo>();

            try
            {
                conn.Open();
                var sql = $@"SELECT * FROM appul.ad_crelativos";
                var cmd = conn.CreateCommand();
                cmd.CommandText = sql;
                var reader = cmd.ExecuteReader();

                while (reader.Read())
                {
                    var rCodRelativo = Convert.ToString(reader["COD_RELATIVO"]);
                    var rArtCodigo   = Convert.ToString(reader["ART_CODIGO"]);
                    sinonimos.Add(new Sinonimo {
                        CodigoBarra = rCodRelativo, CodigoNacional = rArtCodigo
                    });
                }

                reader.Close();

                sql             = $@"SELECT codigo, ean_13 FROM appul.ab_articulos where not ean_13 is null group by codigo, ean_13";
                cmd             = conn.CreateCommand();
                cmd.CommandText = sql;
                reader          = cmd.ExecuteReader();

                while (reader.Read())
                {
                    var rCodigo = Convert.ToString(reader["codigo"]);
                    var rEan13  = Convert.ToString(reader["ean_13"]);
                    sinonimos.Add(new Sinonimo {
                        CodigoBarra = rEan13, CodigoNacional = rCodigo
                    });
                }

                reader.Close();
                reader.Dispose();
                MessageBox.Show("sinonimos cargados");
                return(sinonimos);
            }
            catch (Exception ex)
            {
                throw;
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }
        }
コード例 #5
0
        public RecepcionTotales GetTotalesByPedidoAsDTO(int anio, long numeroPedido, string empresa)
        {
            var conn = FarmaciaContext.GetConnection();

            try
            {
                var sqlExtra = string.Empty;
                var sql      = $@"
                        select NVL(COUNT(pedido),0) AS numLineas, NVL(SUM(cant_servida*pvp_iva_euros),0) AS importePvp,
                               NVL(SUM(cant_servida*pc_iva_euros),0) AS importePuc
                        from appul.ad_rec_linped
                        where pedido = {numeroPedido} AND cant_servida <> 0
                          AND emp_codigo = '{empresa}'
                          AND to_char(fecha_recepcion, 'YYYY') = {anio}";

                conn.Open();
                var cmd = conn.CreateCommand();
                cmd.CommandText = sql;
                var reader = cmd.ExecuteReader();

                if (reader.Read())
                {
                    var rNumLineas  = Convert.ToInt32(reader["numLineas"]);
                    var rImportePvp = Convert.ToDecimal(reader["importePvp"]);
                    var rImportePuc = Convert.ToDecimal(reader["importePuc"]);

                    reader.Close();
                    reader.Dispose();

                    return(new RecepcionTotales
                    {
                        Lineas = rNumLineas,
                        PVP = rImportePvp,
                        PUC = rImportePuc
                    });
                }

                reader.Close();
                reader.Dispose();

                return(new RecepcionTotales());
            }
            catch (Exception ex)
            {
                throw;
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }
        }
コード例 #6
0
        public IEnumerable <DE.ProveedorHistorico> GetAllHistoricosByFecha(DateTime fecha)
        {
            var historicos = new List <DE.ProveedorHistorico>();
            var conn       = FarmaciaContext.GetConnection();

            try
            {
                conn.Open();
                var sql = $@"
                    SELECT art_codigo, proveedor, fecha_pedido, pc_iva_euros
                    FROM appul.ad_rec_linped WHERE to_char(fecha_pedido, 'YYYYMMDDHH24MISS') > '{fecha.ToString("yyyyMMddHHmmss")}'
                    GROUP BY art_codigo, proveedor, fecha_pedido, pc_iva_euros
                    ORDER BY fecha_pedido DESC";

                var cmd = conn.CreateCommand();
                cmd.CommandText = sql;
                var reader = cmd.ExecuteReader();

                while (reader.Read())
                {
                    var rArtCodigo   = Convert.ToString(reader["art_codigo"]);
                    var rProveedor   = !Convert.IsDBNull(reader["proveedor"]) ? Convert.ToInt64(reader["proveedor"]) : 0L;
                    var rFechaPedido = !Convert.IsDBNull(reader["fecha_pedido"]) ? Convert.ToDateTime(reader["fecha_pedido"]) : DateTime.MinValue;
                    var rPcIvaEuros  = !Convert.IsDBNull(reader["pc_iva_euros"]) ? Convert.ToDecimal(reader["pc_iva_euros"]) : 0m;

                    var historico = new DE.ProveedorHistorico
                    {
                        Id        = rProveedor,
                        FarmacoId = rArtCodigo,
                        Fecha     = rFechaPedido,
                        PUC       = rPcIvaEuros
                    };

                    historicos.Add(historico);
                }

                reader.Close();
                reader.Dispose();

                return(historicos);
            }
            catch (Exception ex)
            {
                throw;
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }
        }
コード例 #7
0
        public Laboratorio GetOneOrDefaultByCodigo(long codigo, string clase, string claseBot)
        {
            var conn = FarmaciaContext.GetConnection();

            try
            {
                conn.Open();
                var sql = $@"SELECT CODIGO, NOMBRE FROM appul.ab_laboratorios WHERE codigo = {codigo} AND clase = '{clase}' AND clase_bot = '{claseBot}'";
                var cmd = conn.CreateCommand();
                cmd.CommandText = sql;
                var reader = cmd.ExecuteReader();

                var nombre            = string.Empty;
                var numeroLaboratorio = 0L;
                if (reader.Read())
                {
                    numeroLaboratorio = Convert.ToInt64(reader["CODIGO"]);
                    nombre            = Convert.ToString(reader["NOMBRE"]) ?? string.Empty;

                    var letraLaboratorio = clase != "1" ? "P"
                        : claseBot == "V" ? "V"
                        : "E";

                    reader.Close();
                    reader.Dispose();

                    return(new Laboratorio
                    {
                        Codigo = letraLaboratorio + $"{numeroLaboratorio}".PadLeft(4, '0'),
                        Nombre = nombre
                    });
                }

                reader.Close();
                reader.Dispose();

                return(new Laboratorio {
                    Codigo = string.Empty, Nombre = LABORATORIO_DEFAULT
                });
            }
            catch (Exception ex)
            {
                throw;
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }
        }
コード例 #8
0
        public IEnumerable <Familia> GetByDescripcion()
        {
            var conn     = FarmaciaContext.GetConnection();
            var familias = new List <Familia>();

            try
            {
                conn.Open();
                var sql = $@"select * from appul.ab_subfamilias WHERE descripcion NOT IN ('ESPECIALIDAD', 'EFP', 'SIN FAMILIA') AND descripcion NOT LIKE '%ESPECIALIDADES%' AND descripcion NOT LIKE '%Medicamento%'";
                var cmd = conn.CreateCommand();
                cmd.CommandText = sql;
                var reader = cmd.ExecuteReader();

                while (reader.Read())
                {
                    var rDescripcion  = Convert.ToString(reader["DESCRIPCION"]);
                    var rFamCodigo    = Convert.ToString(reader["FAM_CODIGO"]);
                    var rFamEmpCodigo = Convert.ToString(reader["FAM_EMP_CODIGO"]);

                    sql             = $@"select * from appul.ab_familias WHERE codigo = '{rFamCodigo}' AND emp_codigo = '{rFamEmpCodigo}'";
                    cmd             = conn.CreateCommand();
                    cmd.CommandText = sql;
                    var readerFamilia = cmd.ExecuteReader();

                    var padre = readerFamilia.Read() ? Convert.ToString(readerFamilia["DESCRIPCION"]) : "<SIN PADRE>";

                    familias.Add(new Familia
                    {
                        Nombre = rDescripcion,
                        Padre  = padre
                    });
                }

                reader.Close();
                reader.Dispose();

                return(familias);
            }
            catch (Exception ex)
            {
                throw;
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }
        }
コード例 #9
0
        public Venta GetOneOrDefaultById(long id, string empresa, int anio)
        {
            var conn = FarmaciaContext.GetConnection();

            try
            {
                var sql = $@"SELECT *
                    FROM appul.ah_ventas
                    WHERE emp_codigo = '{empresa}'
                        AND NOT fecha_fin IS NULL
                        AND situacion = 'N'
                        AND fecha_venta >= to_date('01/01/{anio}', 'DD/MM/YYYY')
                        AND operacion = '{id}'";

                conn.Open();
                var cmd = conn.CreateCommand();
                cmd.CommandText = sql;
                var reader = cmd.ExecuteReader();

                if (!reader.Read())
                {
                    reader.Close();
                    reader.Dispose();

                    return(null);
                }

                var tipoOperacion = Convert.ToString(reader["TIPO_OPERACION"]);

                reader.Close();
                reader.Dispose();
                return(new Venta {
                    TipoOperacion = tipoOperacion
                });
            }
            catch (Exception ex)
            {
                throw;
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }
        }
コード例 #10
0
        public Proveedor GetOneOrDefaultById(long id)
        {
            var conn = FarmaciaContext.GetConnection();

            try
            {
                var sqlExtra = string.Empty;
                var sql      = $@"
                    select * from appul.ad_proveedores where codigo = {id}";

                conn.Open();
                var cmd = conn.CreateCommand();
                cmd.CommandText = sql;
                var reader = cmd.ExecuteReader();

                if (reader.Read())
                {
                    var rNombreAb = Convert.ToString(reader["NOMBRE_AB"]);

                    reader.Close();
                    reader.Dispose();

                    return(new Proveedor
                    {
                        Id = id,
                        Nombre = rNombreAb
                    });
                }

                reader.Close();
                reader.Dispose();

                return(null);
            }
            catch (Exception ex)
            {
                throw;
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }
        }
コード例 #11
0
        public string GetCodigoByNumero(int numero)
        {
            var conn = FarmaciaContext.GetConnection();

            try
            {
                var sql = $@"SELECT distinct EMP_CODIGO FROM appul.ab_articulos order by emp_codigo asc";
                conn.Open();
                var cmd = conn.CreateCommand();
                cmd.CommandText = sql;
                var reader = cmd.ExecuteReader();

                var empresas = new List <string>();
                while (reader.Read())
                {
                    var codigo = Convert.ToString(reader["EMP_CODIGO"]);
                    empresas.Add(codigo);
                }
                reader.Close();
                reader.Dispose();

                if (!empresas.Any())
                {
                    return("EMP1");
                }

                if (numero == 1)
                {
                    return(empresas.First());
                }


                return(empresas.Count == 2 ? empresas.Last() : "EMP2");
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }
        }
コード例 #12
0
        public int Count()
        {
            var conn = FarmaciaContext.GetConnection();

            try
            {
                var sql = $@"SELECT distinct emp_codigo FROM appul.ab_articulos";
                conn.Open();
                var cmd = conn.CreateCommand();
                cmd.CommandText = sql;
                var reader = cmd.ExecuteReader();

                if (!reader.HasRows)
                {
                    reader.Close();
                    reader.Dispose();
                    return(1);
                }


                var count = 0;
                while (reader.Read())
                {
                    count++;
                }

                reader.Close();
                reader.Dispose();
                return(count);
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }
        }
コード例 #13
0
        public decimal?GetTarifaOrDefaultByCodigoImpuesto(string impuesto)
        {
            var conn = FarmaciaContext.GetConnection();

            try
            {
                var sql = $@"SELECT valor_imp FROM appul.gn_tarifas_imp WHERE imp_codigo = '{impuesto}' ORDER BY fecha_inicio DESC";

                conn.Open();
                var cmd = conn.CreateCommand();
                cmd.CommandText = sql;
                var reader = cmd.ExecuteReader();

                if (reader.Read())
                {
                    var rValorImp = !Convert.IsDBNull(reader["valor_imp"]) ? (decimal?)Convert.ToDecimal(reader["valor_imp"]) : null;

                    reader.Close();
                    reader.Dispose();

                    return(rValorImp);
                }

                reader.Close();
                reader.Dispose();

                return(null);
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }
        }
コード例 #14
0
        public Categoria GetOneOrDefaultById(string id)
        {
            var conn = FarmaciaContext.GetConnection();

            try
            {
                conn.Open();
                var sql =
                    $@"SELECT c.DESCRIPCION FROM appul.ab_categorias c
                    INNER JOIN appul.ab_fichas f ON f.cte_codigo = c.codigo
                    WHERE f.art_codigo = '{id}'";
                var cmd = conn.CreateCommand();
                cmd.CommandText = sql;
                var reader = cmd.ExecuteReader();

                var nombre = string.Empty;
                if (reader.Read())
                {
                    nombre = Convert.ToString(reader["DESCRIPCION"]) ?? string.Empty;
                }

                reader.Close();
                reader.Dispose();

                return(new Categoria {
                    Nombre = nombre
                });
            }
            catch (Exception ex)
            {
                throw;
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }
        }
コード例 #15
0
        public IEnumerable <Proveedor> GetAll()
        {
            var conn        = FarmaciaContext.GetConnection();
            var proveedores = new List <Proveedor>();

            try
            {
                conn.Open();
                var sql = $@"select codigo, nombre_ab from appul.ad_proveedores";
                var cmd = conn.CreateCommand();
                cmd.CommandText = sql;
                var reader = cmd.ExecuteReader();

                while (reader.Read())
                {
                    var rCodigo   = Convert.ToInt64(reader["codigo"]);
                    var rNombreAb = Convert.ToString(reader["nombre_ab"]);
                    proveedores.Add(new Proveedor {
                        Id = rCodigo, Nombre = rNombreAb
                    });
                }

                reader.Close();
                reader.Dispose();

                return(proveedores);
            }
            catch (Exception ex)
            {
                throw;
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }
        }
コード例 #16
0
        public IEnumerable <Familia> GetAllSubFamilias()
        {
            var conn     = FarmaciaContext.GetConnection();
            var familias = new List <Familia>();

            try
            {
                conn.Open();
                var sql = $@"select * from appul.ab_subfamilias";
                var cmd = conn.CreateCommand();
                cmd.CommandText = sql;
                var reader = cmd.ExecuteReader();

                while (reader.Read())
                {
                    var descripcion = Convert.ToString(reader["DESCRIPCION"]) ?? string.Empty;
                    familias.Add(new Familia {
                        Nombre = descripcion
                    });
                }

                reader.Close();
                reader.Dispose();

                return(familias);
            }
            catch (Exception ex)
            {
                throw;
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }
        }
コード例 #17
0
        public IEnumerable <Pedido> GetAllByFechaGreaterOrEqual(DateTime fecha)
        {
            var pedidos = new List <Pedido>();
            var conn    = FarmaciaContext.GetConnection();

            try
            {
                var sqlExtra = string.Empty;
                //var sql = $@"SELECT * FROM (
                //    SELECT * From appul.ad_pedidos WHERE to_char(fecha_pedido, 'YYYYMMDD') >= '{fecha.ToString("yyyyMMdd")}' Order by pedido ASC)
                //    WHERE rownum <= 999";

                var sql = $@"
                    SELECT * FROM (
                        SELECT p.* From appul.ad_pedidos p
                            INNER JOIN (
                                select g.pedido, g.ejercicio, g.emp_codigo from
                                    (select ar.codigo, NVL(stk.stock, 0) as stock, lp.* from appul.ad_linped lp
                                        inner join appul.ab_articulos ar on ar.codigo = lp.art_codigo AND ar.emp_codigo = lp.emp_codigo
                                        left join (select art_codigo, max(actuales) as stock from appul.ac_existencias group by art_codigo) stk on STK.ART_CODIGO = ar.codigo
                                            where lp.ejercicio >= {fecha.Year} and (stock is null or stock = 0))  g
                                            group by g.pedido, g.ejercicio, g.emp_codigo
                                            order by g.emp_codigo, g.ejercicio, g.pedido
                            ) f ON f.pedido = p.pedido AND f.ejercicio = p.ejercicio AND f.emp_codigo = p.emp_codigo
                            WHERE to_char(p.fecha_pedido, 'YYYYMMDD') >= '{fecha.ToString("yyyyMMdd")}'
                            Order by p.fecha_pedido, p.ejercicio, p.pedido ASC
                    )
                    WHERE rownum <= 999";

                conn.Open();
                var cmd = conn.CreateCommand();
                cmd.CommandText = sql;
                var reader = cmd.ExecuteReader();

                while (reader.Read())
                {
                    var rFechaPedido = Convert.ToDateTime(reader["FECHA_PEDIDO"]);
                    var rPedido      = Convert.ToInt64(reader["PEDIDO"]);
                    var rEmpCodigo   = Convert.ToString(reader["EMP_CODIGO"]);

                    var pedido = new Pedido
                    {
                        Fecha   = rFechaPedido,
                        Numero  = rPedido,
                        Empresa = rEmpCodigo
                    };

                    pedidos.Add(pedido);
                }

                reader.Close();
                reader.Dispose();

                return(pedidos);
            }
            catch (Exception ex)
            {
                throw;
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }
        }
コード例 #18
0
        public IEnumerable <PedidoDetalle> GetAllDetalleByPedido(long numero, string empresa, int anio)
        {
            var detalle = new List <PedidoDetalle>();
            var conn    = FarmaciaContext.GetConnection();

            try
            {
                var sqlExtra = string.Empty;
                var sql      = $@"
                    select * from appul.ad_linped where pedido='{numero}' AND emp_codigo ='{empresa}' and ejercicio = {anio}";
                var sql1     = $@"
                    select ar.codigo, NVL(stk.stock, 0) as stock, lp.* from appul.ad_linped lp
                        inner join appul.ab_articulos ar on ar.codigo = lp.art_codigo AND ar.emp_codigo = lp.emp_codigo
                        left join (select art_codigo, max(actuales) as stock from appul.ac_existencias group by art_codigo) stk on STK.ART_CODIGO = ar.codigo
                        where lp.pedido='{numero}' AND lp.emp_codigo ='{empresa}' AND lp.ejercicio = {anio} and (stock is null or stock = 0)";

                conn.Open();
                var cmd = conn.CreateCommand();
                cmd.CommandText = sql1;
                var reader = cmd.ExecuteReader();

                while (reader.Read())
                {
                    var rArtCodigo  = Convert.ToString(reader["ART_CODIGO"]);
                    var rLinea      = Convert.ToInt32(reader["LINEA"]);
                    var rCantPedida = !Convert.IsDBNull(reader["CANT_PEDIDA"]) ? Convert.ToInt64(reader["CANT_PEDIDA"]) : 0L;
                    var rPedido     = Convert.ToInt64(reader["PEDIDO"]);
                    var rEmpCodigo  = Convert.ToString(reader["EMP_CODIGO"]);

                    var rPvpIvaEuros = !Convert.IsDBNull(reader["PVP_IVA_EUROS"]) ? (decimal?)Convert.ToDecimal(reader["PVP_IVA_EUROS"]) : null;
                    var rPcIvaEuros  = !Convert.IsDBNull(reader["PC_IVA_EUROS"]) ? (decimal?)Convert.ToDecimal(reader["PC_IVA_EUROS"]) : null;

                    var     farmaco       = _farmacoRepository.GetOneOrDefaultById(rArtCodigo);
                    Farmaco farmacoPedido = null;
                    if (farmaco != null)
                    {
                        //sql = $@"select max(actuales) as stock from appul.ac_existencias where art_codigo = '{rArtCodigo}' group by art_codigo";
                        //cmd.CommandText = sql;
                        //var readerStock = cmd.ExecuteReader();
                        var stock = Convert.ToInt64(reader["stock"]);
                        farmaco.Stock = stock;

                        var proveedor = _proveedorRepository.GetOneOrDefaultByCodigoNacional(rArtCodigo);
                        var categoria = _categoriaRepository.GetOneOrDefaultById(rArtCodigo);

                        Familia familia      = null;
                        Familia superFamilia = null;
                        if (string.IsNullOrWhiteSpace(farmaco.SubFamilia))
                        {
                            familia = new Familia {
                                Nombre = string.Empty
                            };
                            superFamilia = _familiaRepository.GetOneOrDefaultById(farmaco.Familia)
                                           ?? new Familia {
                                Nombre = string.Empty
                            };
                        }
                        else
                        {
                            familia = _familiaRepository.GetSubFamiliaOneOrDefault(farmaco.Familia, farmaco.SubFamilia)
                                      ?? new Familia {
                                Nombre = string.Empty
                            };
                            superFamilia = _familiaRepository.GetOneOrDefaultById(farmaco.Familia)
                                           ?? new Familia {
                                Nombre = string.Empty
                            };
                        }

                        var laboratorio = !farmaco.Laboratorio.HasValue ? new Laboratorio {
                            Codigo = string.Empty, Nombre = "<Sin Laboratorio>"
                        }
                            : _laboratorioRepository.GetOneOrDefaultByCodigo(farmaco.Laboratorio.Value, farmaco.Clase, farmaco.ClaseBot)
                        ?? new Laboratorio {
                            Codigo = string.Empty, Nombre = "<Sin Laboratorio>"
                        };

                        farmacoPedido = new Farmaco
                        {
                            Id           = farmaco.Id,
                            Codigo       = farmaco.Codigo,
                            PrecioCoste  = farmaco.PUC,
                            Proveedor    = proveedor,
                            Categoria    = categoria,
                            Familia      = familia,
                            Laboratorio  = laboratorio,
                            Denominacion = farmaco.Denominacion,
                            Precio       = farmaco.PrecioMedio,
                            Stock        = farmaco.Stock
                        };
                    }

                    var item = new PedidoDetalle
                    {
                        Linea          = rLinea,
                        CantidadPedida = rCantPedida,
                        FarmacoCodigo  = rArtCodigo,
                        EmpresaCodigo  = rEmpCodigo,
                        PedidoCodigo   = rPedido,
                        Farmaco        = farmacoPedido
                    };

                    detalle.Add(item);
                }

                reader.Close();
                reader.Dispose();

                return(detalle);
            }
            catch (Exception ex)
            {
                throw;
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }
        }
コード例 #19
0
        public List <VentaDetalle> GetDetalleDeVentaPendienteByVentaId(long venta, string empresa)
        {
            var conn = FarmaciaContext.GetConnection();

            try
            {
                conn.Open();
                var sql = $@"SELECT
                                VTA_OPERACION, LINEA_VENTA,
                                ENT_CODIGO, ENTTP_TIPO,
                                PVP_ORIGINAL_E, PVP_APORTACION_E, IMP_DTO_E,
                                ART_CODIGO, DESCRIPCION, UNIDADES, SITUACION
                                FROM appul.ah_venta_lineas
                                WHERE emp_codigo = '{empresa}' AND vta_operacion='{venta}'";

                var cmd = conn.CreateCommand();
                cmd.CommandText = sql;
                var reader = cmd.ExecuteReader();

                var detalle = new List <VentaDetalle>();
                while (reader.Read())
                {
                    var vtaOperacion   = Convert.ToInt64(reader["VTA_OPERACION"]);
                    var lineaVenta     = Convert.ToInt32(reader["LINEA_VENTA"]);
                    var entCodigo      = !Convert.IsDBNull(reader["ENT_CODIGO"]) ? (int?)Convert.ToInt32(reader["ENT_CODIGO"]) : null;
                    var enttpTipo      = !Convert.IsDBNull(reader["ENTTP_TIPO"]) ? (int?)Convert.ToInt32(reader["ENTTP_TIPO"]) : null;;
                    var pvpOriginalE   = !Convert.IsDBNull(reader["PVP_ORIGINAL_E"]) ? Convert.ToDecimal(reader["PVP_ORIGINAL_E"]) : 0;
                    var pvpAportacionE = !Convert.IsDBNull(reader["PVP_APORTACION_E"]) ? Convert.ToDecimal(reader["PVP_APORTACION_E"]) : 0;
                    var impDtoE        = !Convert.IsDBNull(reader["IMP_DTO_E"]) ? Convert.ToDecimal(reader["IMP_DTO_E"]) : 0;
                    var artCodigo      = Convert.ToString(reader["ART_CODIGO"]);
                    var unidades       = Convert.ToInt32(reader["UNIDADES"]);
                    var situacion      = Convert.ToString(reader["SITUACION"]);
                    var descripcion    = Convert.ToString(reader["DESCRIPCION"]);

                    var ventaDetalle = new VentaDetalle
                    {
                        VentaId = vtaOperacion,
                        Linea   = lineaVenta,
                        Receta  = !entCodigo.HasValue ? string.Empty
                            : !enttpTipo.HasValue ? entCodigo.Value.ToString()
                            : $"{entCodigo.Value} {enttpTipo.Value}",
                        PVP       = pvpOriginalE,
                        Precio    = pvpAportacionE,
                        Descuento = impDtoE,
                        Cantidad  = unidades,
                        Situacion = situacion
                    };

                    var farmaco = _farmacoRepository.GetOneOrDefaultById(artCodigo);
                    if (farmaco != null)
                    {
                        var proveedor = _proveedorRepository.GetOneOrDefaultByCodigoNacional(artCodigo);
                        var categoria = _categoriaRepository.GetOneOrDefaultById(artCodigo);

                        Familia familia      = null;
                        Familia superFamilia = null;
                        if (string.IsNullOrWhiteSpace(farmaco.SubFamilia))
                        {
                            familia = new Familia {
                                Nombre = string.Empty
                            };
                            superFamilia = _familiaRepository.GetOneOrDefaultById(farmaco.Familia)
                                           ?? new Familia {
                                Nombre = string.Empty
                            };
                        }
                        else
                        {
                            familia = _familiaRepository.GetSubFamiliaOneOrDefault(farmaco.Familia, farmaco.SubFamilia)
                                      ?? new Familia {
                                Nombre = string.Empty
                            };
                            superFamilia = _familiaRepository.GetOneOrDefaultById(farmaco.Familia)
                                           ?? new Familia {
                                Nombre = string.Empty
                            };
                        }

                        var laboratorio = !farmaco.Laboratorio.HasValue ? new Laboratorio {
                            Codigo = string.Empty, Nombre = "<Sin Laboratorio>"
                        }
                            : _laboratorioRepository.GetOneOrDefaultByCodigo(farmaco.Laboratorio.Value, farmaco.Clase, farmaco.ClaseBot)
                        ?? new Laboratorio {
                            Codigo = string.Empty, Nombre = "<Sin Laboratorio>"
                        };

                        ventaDetalle.Farmaco = new Farmaco
                        {
                            Codigo       = artCodigo,
                            PrecioCoste  = farmaco.PUC,
                            CodigoBarras = farmaco.CodigoBarras,
                            Proveedor    = proveedor,
                            Categoria    = categoria,
                            Familia      = familia,
                            SuperFamilia = superFamilia,
                            Laboratorio  = laboratorio,
                            Denominacion = farmaco.Denominacion,
                            Ubicacion    = farmaco.Ubicacion
                        };
                    }
                    detalle.Add(ventaDetalle);
                }

                reader.Close();
                reader.Dispose();

                return(detalle);
            }
            catch (Exception ex)
            {
                throw;
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }
        }
コード例 #20
0
        public IEnumerable <Lista> GetAllByIdGreaterThan(long id)
        {
            var conn   = FarmaciaContext.GetConnection();
            var listas = new List <Lista>();

            try
            {
                conn.Open();
                var sql = $@"SELECT * FROM appul.aa_filtros WHERE codigo > {id}";
                var cmd = conn.CreateCommand();
                cmd.CommandText = sql;
                var reader = cmd.ExecuteReader();

                while (reader.Read())
                {
                    var rCodigo        = Convert.ToInt64(reader["CODIGO"]);
                    var rTituloCliente = Convert.ToString(reader["TITULO_CLIENTE"]);
                    var rNumRegistros  = !Convert.IsDBNull(reader["NUM_REGISTROS"]) ? Convert.ToInt64(reader["NUM_REGISTROS"]) : 0L;

                    var lista = new Lista
                    {
                        Id          = rCodigo,
                        NumElem     = rNumRegistros,
                        Descripcion = rTituloCliente
                    };

                    listas.Add(lista);

                    sql             = $@"SELECT valor_char FROM appul.aa_filtros_det WHERE flt_codigo = {rCodigo} GROUP BY ROLLUP(valor_char)";
                    cmd             = conn.CreateCommand();
                    cmd.CommandText = sql;
                    var readerDetalle  = cmd.ExecuteReader();
                    var numeroRegistro = 0;
                    while (readerDetalle.Read())
                    {
                        var rValorChar = Convert.ToString(readerDetalle["valor_char"]);

                        var item = new ListaDetalle
                        {
                            Id        = ++numeroRegistro,
                            FarmacoId = rValorChar,
                            ListaId   = rCodigo
                        };
                        lista.Farmacos.Add(item);
                    }

                    readerDetalle.Close();
                    readerDetalle.Dispose();

                    listas.Add(lista);
                }

                reader.Close();
                reader.Dispose();

                return(listas);
            }
            catch (Exception ex)
            {
                throw;
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }
        }
コード例 #21
0
        public IEnumerable <DTO.Farmaco> GetWithStockByIdGreaterAsDTO(string codArticu)
        {
            var farmacos = new List <DTO.Farmaco>();
            var conn     = FarmaciaContext.GetConnection();

            try
            {
                var sqlOrZeroCode = string.Empty;
                if (codArticu == "0")
                {
                    sqlOrZeroCode = @"OR a.codigo = '000000'";
                }

                var sqlExtra = string.Empty;
                if (_empresaRepository.Count() == 2)
                {
                    sqlExtra = $@"WHERE emp_codigo = (
                                        CASE WHEN codigo >= '600000' THEN
                                            case when nvl(pvp_euros,0) > 0 then 'EMP1' else 'EMP2'
                                        END ELSE CASE WHEN nvl(pvp_euros,0) > 0 then 'EMP2' else 'EMP1'
                                  END END)";
                }

                var sql = $@"select o.* from (
                    select a.codigo, a.precio_lab_euros, a.Pvp_euros, a.famsb_codigo, a.fam_codigo, a.descripcion, a.lab_codigo, a.clase, a.clase_bot,
                           a.imp_codigo, a.ean_13, a.Fecha_Baja, sum(e.actuales) as stock, max(e.stock_min) as stock_minimo, max(e.stock_max) as stock_maximo,
                           max(to_date(e.fecha_caducidad)) as fecha_caducidad, max(e.fuc) AS fuc, max(e.fuv) as fuv,
                           NVL(MAX(e.pmc_es),0) AS pcmedio, NVL(MAX(e.puc_es),0) AS puc, NVL(MAX(e.ubicacion),'') AS ubicacion
                    from (select distinct
                                codigo, precio_lab_euros, Pvp_euros, famsb_codigo, fam_codigo, descripcion, lab_codigo, clase, clase_bot,
                                imp_codigo, ean_13, Fecha_Baja from appul.ab_articulos {sqlExtra}) a
                    LEFT JOIN appul.ac_existencias e ON e.art_codigo = a.codigo
                    WHERE a.codigo > '{codArticu.PadLeft(6, '0')}' {sqlOrZeroCode}
                    GROUP BY a.codigo, a.precio_lab_euros, a.Pvp_euros, a.famsb_codigo, a.fam_codigo,
                            a.descripcion, a.lab_codigo, a.clase, a.clase_bot, a.imp_codigo, a.ean_13, a.Fecha_Baja
                    HAVING NVL(sum(e.actuales),0) > 0 ORDER BY a.codigo ASC) o
                    WHERE rownum <= 999";

                conn.Open();
                var cmd = conn.CreateCommand();
                cmd.CommandText = sql;
                var reader = cmd.ExecuteReader();

                while (reader.Read())
                {
                    var rCodigo         = Convert.ToString(reader["codigo"]);
                    var rPrecioLabEuros = !Convert.IsDBNull(reader["precio_lab_euros"]) ? (decimal?)Convert.ToDecimal(reader["precio_lab_euros"]) : null;
                    var rPvpEuros       = !Convert.IsDBNull(reader["Pvp_euros"]) ? (decimal?)Convert.ToDecimal(reader["Pvp_euros"]) : null;
                    var rFamsbCodigo    = Convert.ToString(reader["famsb_codigo"]);
                    var rFamCodigo      = Convert.ToString(reader["fam_codigo"]);
                    var rDescripcion    = Convert.ToString(reader["descripcion"]);
                    var rLabCodigo      = !Convert.IsDBNull(reader["lab_codigo"]) ? (long?)Convert.ToInt64(reader["lab_codigo"]) : null;
                    var rClase          = Convert.ToString(reader["clase"]);
                    var rClaseBot       = Convert.ToString(reader["clase_bot"]);
                    var rImpCodigo      = Convert.ToString(reader["imp_codigo"]);
                    var rEan13          = Convert.ToString(reader["ean_13"]);
                    var rFechaBaja      = !Convert.IsDBNull(reader["Fecha_Baja"]) ? (DateTime?)Convert.ToDateTime(reader["Fecha_Baja"]) : null;
                    var rStock          = !Convert.IsDBNull(reader["stock"]) ? Convert.ToInt64(reader["stock"]) : 0L;
                    var rStockMinimo    = !Convert.IsDBNull(reader["stock_minimo"]) ? Convert.ToInt64(reader["stock_minimo"]) : 0L;
                    var rStockMaximo    = !Convert.IsDBNull(reader["stock_maximo"]) ? Convert.ToInt64(reader["stock_maximo"]) : 0L;
                    var rFechaCaducidad = !Convert.IsDBNull(reader["fecha_caducidad"]) ? (DateTime?)Convert.ToDateTime(reader["fecha_caducidad"]) : null;
                    var rFuc            = !Convert.IsDBNull(reader["fuc"]) ? (DateTime?)Convert.ToDateTime(reader["fuc"]) : null;
                    var rFuv            = !Convert.IsDBNull(reader["fuv"]) ? (DateTime?)Convert.ToDateTime(reader["fuv"]) : null;
                    var rPcMedio        = !Convert.IsDBNull(reader["pcmedio"]) ? Convert.ToDecimal(reader["pcmedio"]) : 0m;
                    var rPuc            = !Convert.IsDBNull(reader["puc"]) ? Convert.ToDecimal(reader["puc"]) : 0m;
                    var rUbicacion      = Convert.ToString(reader["ubicacion"]);

                    var farmaco = new DTO.Farmaco
                    {
                        Codigo            = rCodigo,
                        Stock             = rStock,
                        StockMinimo       = rStockMinimo,
                        StockMaximo       = rStockMaximo,
                        FechaCaducidad    = rFechaCaducidad,
                        FechaUltimaCompra = rFuc,
                        FechaUltimaVenta  = rFuv,
                        PrecioCoste       = rPuc != 0m ? rPuc
                            : rPcMedio != 0m ? rPcMedio
                            : rPrecioLabEuros ?? 0m,
                        Precio         = rPvpEuros ?? 0m,
                        Familia        = rFamCodigo.ToIntegerOrDefault(),
                        SubFamilia     = rFamsbCodigo,
                        Laboratorio    = rLabCodigo,
                        CodigoBarras   = rEan13,
                        CodigoImpuesto = rImpCodigo,
                        Denominacion   = rDescripcion,
                        FechaBaja      = rFechaBaja,
                        Ubicacion      = rUbicacion,
                    };

                    farmacos.Add(farmaco);
                }

                reader.Close();
                reader.Dispose();

                return(farmacos);
            }
            catch (Exception ex)
            {
                throw;
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }
        }
コード例 #22
0
        public DTO.Farmaco GetOneOrDefaultById(string id)
        {
            var conn = FarmaciaContext.GetConnection();

            try
            {
                conn.Open();
                var sql = $@"SELECT
                    EAN_13, PRECIO_LAB_EUROS,
                    FAMSB_CODIGO, FAM_CODIGO,
                    LAB_CODIGO, CLASE, CLASE_BOT,
                    DESCRIPCION, PVP_EUROS
                    FROM appul.ab_articulos where codigo = '{id}'";

                var cmd = conn.CreateCommand();
                cmd.CommandText = sql;
                var reader = cmd.ExecuteReader();

                if (!reader.Read())
                {
                    reader.Close();
                    reader.Dispose();
                    return(null);
                }

                var ean13          = Convert.ToString(reader["EAN_13"]);
                var precioLabEuros = !Convert.IsDBNull(reader["PRECIO_LAB_EUROS"]) ? Convert.ToDecimal(reader["PRECIO_LAB_EUROS"]) : 0;
                var pvpEuros       = !Convert.IsDBNull(reader["PVP_EUROS"]) ? Convert.ToDecimal(reader["PVP_EUROS"]) : 0;
                var fambsCodigo    = Convert.ToString(reader["FAMSB_CODIGO"]);
                var famCodigo      = Convert.ToInt32(reader["FAM_CODIGO"]);
                var labCodigo      = !Convert.IsDBNull(reader["LAB_CODIGO"]) ? (long?)Convert.ToInt64(reader["LAB_CODIGO"]) : null;
                var clase          = Convert.ToString(reader["CLASE"]);
                var claseBot       = Convert.ToString(reader["CLASE_BOT"]);
                var descripcion    = Convert.ToString(reader["DESCRIPCION"]);

                var farmaco = new DTO.Farmaco
                {
                    Codigo       = id,
                    CodigoBarras = !string.IsNullOrWhiteSpace(ean13) ? ean13
                        : "847000" + id.ToString().PadLeft(6, '0'),
                    Familia      = famCodigo,
                    SubFamilia   = fambsCodigo,
                    Laboratorio  = labCodigo,
                    Clase        = clase,
                    ClaseBot     = claseBot,
                    Denominacion = descripcion
                };

                reader.Close();

                // cargar precios
                sql = $@"SELECT
                        NVL(MAX(ubicacion),'') AS UBICACION,
                        NVL(MAX(pmc_es),0) AS PCMEDIO,
                        NVL(MAX(puc_es),0) AS PUC
                        FROM appul.ac_existencias WHERE art_codigo = '{id}'";

                cmd.CommandText = sql;
                reader          = cmd.ExecuteReader();

                var puc       = 0m;
                var pcm       = 0m;
                var ubicacion = string.Empty;
                if (reader.Read())
                {
                    puc       = Convert.ToDecimal(reader["PUC"]);
                    pcm       = Convert.ToDecimal(reader["PCMEDIO"]);
                    ubicacion = Convert.ToString(reader["UBICACION"]);
                }

                farmaco.PUC = puc != 0 ? puc
                    : pcm != 0 ? pcm
                    : precioLabEuros;

                farmaco.Ubicacion   = ubicacion;
                farmaco.PrecioMedio = pvpEuros;

                reader.Close();
                reader.Dispose();

                return(farmaco);
            }
            catch (Exception ex)
            {
                throw;
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }
        }
コード例 #23
0
        public IEnumerable <DTO.Recepcion> GetAllByDateAsDTO(DateTime fecha)
        {
            var recepciones = new List <DTO.Recepcion>();
            var conn        = FarmaciaContext.GetConnection();

            try
            {
                var sqlExtra = string.Empty;
                var sql      = $@"SELECT * FROM (
                    SELECT FECHA_RECEPCION, EMP_CODIGO, PEDIDO, PROVEEDOR, ART_CODIGO, PVP_IVA_EUROS, PC_IVA_EUROS, LINEA, CANT_SERVIDA
                    From appul.ad_rec_linped
                    WHERE
                        to_char(fecha_recepcion, 'YYYYMMDDHH24MISS') >= {fecha.ToString("yyyyMMddHHmmss")} AND cant_servida <> 0
                    Order by to_char(fecha_recepcion, 'YYYYMMDDHH24MISS'), pedido, linea ASC) WHERE rownum <= 999";

                conn.Open();
                var cmd = conn.CreateCommand();
                cmd.CommandText = sql;
                var reader = cmd.ExecuteReader();

                while (reader.Read())
                {
                    var rFechaRecepcion = !Convert.IsDBNull(reader["FECHA_RECEPCION"]) ? Convert.ToDateTime(reader["FECHA_RECEPCION"]) : DateTime.MinValue;
                    var rEmpCodigo      = Convert.ToString(reader["EMP_CODIGO"]);
                    var rPedido         = Convert.ToInt64(reader["PEDIDO"]);
                    var rProveedor      = !Convert.IsDBNull(reader["PROVEEDOR"]) ? (long?)Convert.ToInt64(reader["PROVEEDOR"]) : null;
                    var rArtCodigo      = Convert.ToString(reader["ART_CODIGO"]);
                    var rPvpIvaEuros    = !Convert.IsDBNull(reader["PVP_IVA_EUROS"]) ? (decimal?)Convert.ToDecimal(reader["PVP_IVA_EUROS"]) : null;
                    var rPcIvaEuros     = !Convert.IsDBNull(reader["PC_IVA_EUROS"]) ? (decimal?)Convert.ToDecimal(reader["PC_IVA_EUROS"]) : null;
                    var rLinea          = !Convert.IsDBNull(reader["LINEA"]) ? Convert.ToInt32(reader["LINEA"]) : 0;
                    var rCantServida    = !Convert.IsDBNull(reader["CANT_SERVIDA"]) ? Convert.ToInt64(reader["CANT_SERVIDA"]) : 0L;

                    var pedido = new DTO.Recepcion
                    {
                        Fecha      = rFechaRecepcion,
                        Empresa    = rEmpCodigo,
                        Proveedor  = rProveedor,
                        Pedido     = rPedido,
                        Linea      = rLinea,
                        Recibido   = rCantServida,
                        Farmaco    = rArtCodigo,
                        ImportePvp = rPvpIvaEuros ?? 0m,
                        ImportePuc = rPcIvaEuros ?? 0m
                    };

                    recepciones.Add(pedido);
                }

                reader.Close();
                reader.Dispose();

                return(recepciones);
            }
            catch (Exception ex)
            {
                throw;
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }
        }
コード例 #24
0
        public List <Venta> GetAllGteYearAndLteNumber(int year, long number)
        {
            var conn = FarmaciaContext.GetConnection();

            try
            {
                var sql = $@"SELECT * FROM (SELECT
                                EMP_CODIGO, OPERACION, SITUACION, CLI_CODIGO, TIPO_OPERACION, PUESTO, USR_CODIGO, FECHA_VENTA, IMPORTE_VTA_E, FECHA_FIN 
                                FROM appul.ah_ventas
                                WHERE NOT fecha_fin IS NULL
                                    AND fecha_venta >= to_date('01/01/{year}', 'DD/MM/YYYY')
                                    AND operacion <= {number}
                                    ORDER BY operacion DESC) WHERE ROWNUM <= 999";

                conn.Open();
                var cmd = conn.CreateCommand();
                cmd.CommandText = sql;
                var reader = cmd.ExecuteReader();

                var ventas = new List <Venta>();
                while (reader.Read())
                {
                    var empCodigo     = Convert.ToString(reader["EMP_CODIGO"]);
                    var operacion     = Convert.ToInt64(reader["OPERACION"]);
                    var situacion     = Convert.ToString(reader["SITUACION"]);
                    var cliCodigo     = !Convert.IsDBNull(reader["CLI_CODIGO"]) ? (long)Convert.ToInt32(reader["CLI_CODIGO"]) : 0;
                    var tipoOperacion = Convert.ToString(reader["TIPO_OPERACION"]);
                    var puesto        = Convert.ToString(reader["PUESTO"]);
                    var usrCodigo     = Convert.ToString(reader["USR_CODIGO"]);
                    var fechaVenta    = Convert.ToDateTime(reader["FECHA_VENTA"]);
                    var importeVentaE = !Convert.IsDBNull(reader["IMPORTE_VTA_E"]) ? Convert.ToDecimal(reader["IMPORTE_VTA_E"]) : default(decimal);
                    var fechaFin      = !Convert.IsDBNull(reader["FECHA_FIN"]) ? (DateTime?)Convert.ToDateTime(reader["FECHA_FIN"]) : null;
                    ventas.Add(new Venta
                    {
                        ClienteId      = cliCodigo,
                        FechaFin       = fechaFin,
                        FechaHora      = fechaVenta,
                        TipoOperacion  = tipoOperacion,
                        Operacion      = operacion,
                        Puesto         = puesto,
                        VendedorCodigo = usrCodigo,
                        TotalDescuento = importeVentaE,
                        EmpresaCodigo  = empCodigo,
                        Situacion      = situacion
                    });
                }

                reader.Close();
                reader.Dispose();
                return(ventas);
            }
            catch (Exception ex)
            {
                throw;
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }
        }
コード例 #25
0
        public List <Venta> GetAllByIdGreaterOrEqual(int year, long value, string empresa)
        {
            var conn = FarmaciaContext.GetConnection();

            try
            {
                var sql = $@"SELECT * FROM (SELECT
                                FECHA_VENTA, FECHA_FIN, CLI_CODIGO, TIPO_OPERACION, OPERACION, PUESTO, USR_CODIGO, IMPORTE_VTA_E, EMP_CODIGO
                                FROM appul.ah_ventas
                                WHERE emp_codigo = '{empresa}'
                                    AND operacion = {value}
                                    AND situacion = 'N'
                                    AND NOT fecha_fin IS NULL
                                    AND fecha_venta >= to_date('01/01/{year}', 'DD/MM/YYYY')                                    
                                    ORDER BY fecha_venta ASC) WHERE ROWNUM <= 999";
                // TODO remove si pasan los test 26/07/2020
                //AND fecha_venta >= to_date('01/01/{year} 00:00:00', 'DD/MM/YYYY HH24:MI:SS')
                conn.Open();
                var cmd = conn.CreateCommand();
                cmd.CommandText = sql;
                var reader = cmd.ExecuteReader();

                var ventas = new List <Venta>();
                while (reader.Read())
                {
                    var fechaVenta    = Convert.ToDateTime(reader["FECHA_VENTA"]);
                    var fechaFin      = !Convert.IsDBNull(reader["FECHA_FIN"]) ? (DateTime?)Convert.ToDateTime(reader["FECHA_FIN"]) : null;
                    var cliCodigo     = !Convert.IsDBNull(reader["CLI_CODIGO"]) ? (long)Convert.ToInt32(reader["CLI_CODIGO"]) : 0;
                    var tipoOperacion = Convert.ToString(reader["TIPO_OPERACION"]);
                    var operacion     = Convert.ToInt64(reader["OPERACION"]);
                    var puesto        = Convert.ToString(reader["PUESTO"]);
                    var usrCodigo     = Convert.ToString(reader["USR_CODIGO"]);
                    var importeVentaE = !Convert.IsDBNull(reader["IMPORTE_VTA_E"]) ? Convert.ToDecimal(reader["IMPORTE_VTA_E"]) : default(decimal);
                    var empCodigo     = Convert.ToString(reader["EMP_CODIGO"]);
                    ventas.Add(new Venta
                    {
                        ClienteId      = cliCodigo,
                        FechaFin       = fechaFin,
                        FechaHora      = fechaVenta,
                        TipoOperacion  = tipoOperacion,
                        Operacion      = operacion,
                        Puesto         = puesto,
                        VendedorCodigo = usrCodigo,
                        Importe        = importeVentaE,
                        EmpresaCodigo  = empCodigo
                    });
                }

                reader.Close();
                reader.Dispose();
                return(ventas);
            }
            catch (Exception ex)
            {
                throw;
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }
        }
コード例 #26
0
        public IEnumerable <Encargo> GetAllByIdGreaterOrEqual(int year, long encargo)
        {
            var conn = FarmaciaContext.GetConnection();

            try
            {
                var rs       = new List <DTO.Encargo>();
                var sqlExtra = string.Empty;
                var sql      = $@"
                    SELECT * FROM (SELECT e.num_enc, e.fecha_enc, e.cliente, e.operador, e.observaciones, e.emp_codigo, e.alm_codigo
                    From appul.ah_encargos e
                    WHERE to_char(e.fecha_enc, 'YYYY') >= {year} AND e.num_enc >= {encargo} Order by e.num_enc ASC) WHERE rownum <= 999";

                conn.Open();
                var cmd = conn.CreateCommand();
                cmd.CommandText = sql;
                var reader = cmd.ExecuteReader();

                while (reader.Read())
                {
                    var rNumEnc        = Convert.ToInt32(reader["num_enc"]);
                    var rFechaEnc      = Convert.ToDateTime(reader["fecha_enc"]);
                    var rOperador      = Convert.ToString(reader["operador"]);
                    var rCliente       = !Convert.IsDBNull(reader["cliente"]) ? Convert.ToInt64(reader["cliente"]) : 0L;
                    var rObservaciones = Convert.ToString(reader["observaciones"]);
                    var rEmpCodigo     = Convert.ToString(reader["emp_codigo"]);
                    var rAlmCodigo     = Convert.ToInt32(reader["alm_codigo"]);

                    sql = $@"
                    SELECT le.linea, le.articulo, le.uni_encargadas, le.fecha_disponib, le.emp_codigo
                    From appul.ah_lin_encargo le
                    where num_enc = {rNumEnc} AND emp_codigo = '{rEmpCodigo}'
                        AND alm_codigo = '{rAlmCodigo}' AND to_char(fecha_enc, 'YYYYMMDD') = '{rFechaEnc.ToString("yyyyMMdd")}'";

                    cmd.CommandText = sql;
                    var readerLineaEncargo = cmd.ExecuteReader();

                    var numLinea = 1;

                    while (readerLineaEncargo.Read())
                    {
                        var rArticulo = Convert.ToString(readerLineaEncargo["articulo"]);
                        if (string.IsNullOrEmpty(rArticulo))
                        {
                            continue;
                        }


                        var artSql = $@"select * from appul.ab_articulos where codigo='{rArticulo}'";
                        cmd.CommandText = artSql;
                        var readerArticulo = cmd.ExecuteReader();
                        var hayArticulo    = readerArticulo.HasRows;
                        readerArticulo.Close();
                        readerArticulo.Dispose();

                        if (hayArticulo)
                        {
                            var rLinea         = Convert.ToInt32(readerLineaEncargo["linea"]);
                            var rUniEncargadas = !Convert.IsDBNull(readerLineaEncargo["uni_encargadas"]) ? Convert.ToInt64(readerLineaEncargo["uni_encargadas"]) : 0L;
                            var rFechaDisponib = !Convert.IsDBNull(readerLineaEncargo["fecha_disponib"]) ? Convert.ToDateTime(readerLineaEncargo["fecha_disponib"]) : DateTime.MinValue;

                            var dto = new DTO.Encargo
                            {
                                Id               = rNumEnc,
                                FechaHora        = rFechaEnc,
                                Cliente          = rCliente,
                                Vendedor         = rOperador,
                                Observaciones    = rObservaciones,
                                Empresa          = rEmpCodigo,
                                Almacen          = rAlmCodigo,
                                Linea            = numLinea,
                                Farmaco          = rArticulo,
                                Cantidad         = rUniEncargadas,
                                FechaHoraEntrega = rFechaDisponib
                            };

                            rs.Add(dto);
                        }

                        numLinea = numLinea + 1;
                    }

                    readerLineaEncargo.Close();
                    readerLineaEncargo.Dispose();
                }

                reader.Close();
                reader.Dispose();
                return(rs.Select(GenerarEncargo));
            }
            catch (Exception ex)
            {
                throw;
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }
        }