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(); } }
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(); } }
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(); } }
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(); } }
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(); } }
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(); } }
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(); } }
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(); } }
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(); } }
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(); } }
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(); } }
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(); } }
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(); } }
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(); } }
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(); } }
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(); } }
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(); } }
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(); } }
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(); } }
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(); } }
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(); } }
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(); } }
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(); } }
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(); } }
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(); } }
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(); } }