Ejemplo n.º 1
0
        public void CopiarTarifario(Tarifario tar, int Año, bool Vigente)
        {
            DataAnalisis enlace = new DataAnalisis();

            if (!DataAnalisis.GetCheckTarifarioByAño(Año))
            {
                Tarifario tar1 = new Tarifario();
                tar1.FechaRegistro = DateTime.Now;
                tar1.Año           = Año;
                tar1.Vigente       = Vigente;
                Dictionary <int, TarifarioDetalle> listado = new Dictionary <int, TarifarioDetalle>();
                TarifarioDetalle tarDet;
                int i = 0;
                foreach (TarifarioDetalle det in tar.Listado.Values)
                {
                    tarDet           = new TarifarioDetalle();
                    tarDet.IdPaquete = det.IdPaquete;
                    tarDet.Precio    = det.Precio;
                    listado.Add(i, tarDet);
                    i++;
                }
                tar1.Listado = listado;
                DataAnalisis.AddTarifario(tar1);
            }
            else
            {
                throw new Exception("Ya existe un tarifario registrado para este año: " + tar.Año);
            }
        }
Ejemplo n.º 2
0
        public static void UpdTarifarioVigente(Tarifario tar)
        {
            SqlConnection conexion = new SqlConnection();

            SqlCommand comando = new SqlCommand();

            try
            {
                conexion.ConnectionString = ConfiguracionDataAccess.GetInstance().CadenaConexion;
                comando.Connection        = conexion;

                comando.CommandText = ProcUpd.UPD_TARIFARIOCAB_VIGENTE;
                comando.CommandType = CommandType.StoredProcedure;
                comando.Parameters.AddWithValue("@ID", tar.IdData);
                comando.Connection.Open();
                comando.ExecuteNonQuery();
            }
            catch (SqlException e)
            {
                MessageBox.Show(e.Message);
            }
            finally
            {
                conexion.Close();
                comando.Dispose();
            }
        }
Ejemplo n.º 3
0
        public void CrearTarifario(int Año, bool Vigente)
        {
            Tarifario tar = null;

            DataAnalisis enlace = new DataAnalisis();

            if (!DataAnalisis.GetCheckTarifarioByAño(Año))
            {
                tar = new Tarifario();
                tar.FechaRegistro = DateTime.Now;
                tar.Año           = Año;
                tar.Vigente       = Vigente;
                Dictionary <int, TarifarioDetalle> listado = new Dictionary <int, TarifarioDetalle>();
                TarifarioDetalle tarDet;
                int i = 0;
                foreach (Analisis anal in ListaAnalisis.GetInstance().Analisis.Values)
                {
                    tarDet           = new TarifarioDetalle();
                    tarDet.IdPaquete = anal.IdData;
                    tarDet.Precio    = 0.0;
                    listado.Add(i, tarDet);
                    i++;
                }
                tar.Listado = listado;
                DataAnalisis.AddTarifario(tar);
            }
            else
            {
                throw new Exception("Ya existe un tarifario registrado para este año: " + Año);
            }
        }
Ejemplo n.º 4
0
        private void BtnSave_Click(object sender, EventArgs e)
        {
            BLTarifario enlace = new BLTarifario();
            Tarifario   tar    = new Tarifario();

            tar.Año           = tarifarios[IdTarifarioSelected].Año;
            tar.FechaRegistro = tarifarios[IdTarifarioSelected].FechaRegistro;
            tar.IdData        = tarifarios[IdTarifarioSelected].IdData;
            tar.Vigente       = tarifarios[IdTarifarioSelected].Vigente;
            Dictionary <int, TarifarioDetalle> listado = new Dictionary <int, TarifarioDetalle>();
            NumberFormatInfo nfi = new NumberFormatInfo();

            nfi.NumberDecimalSeparator = ".";
            foreach (DataRow row in tablaDataTarifario.Rows)
            {
                TarifarioDetalle det = new TarifarioDetalle();
                det.IdData         = (int)row[0];
                det.IdPaquete      = tarifarios[IdTarifarioSelected].Listado[det.IdData].IdPaquete;
                det.IdTarifarioCab = tarifarios[IdTarifarioSelected].Listado[det.IdData].IdTarifarioCab;
                double es = double.Parse(row[2].ToString(), nfi);
                det.Precio = es;
                listado.Add(det.IdData, det);
            }
            tar.Listado = listado;
            enlace.ActualizarTarifario(tar);
            changeState = false;
            this.CargarDatos();
            this.CargarDatosEnDGVTar();
        }
Ejemplo n.º 5
0
        private System.Data.DataTable ObtenerTablaFormatoDatosReporteEconomicoMedico(int ano, int mes, int idMedico)
        {
            BLTarifario enlace = new BLTarifario();
            Tarifario   tar    = enlace.ObtenerTarifario();

            System.Data.DataTable tablaInterna = new System.Data.DataTable();
            try
            {
                LogicaOrden enlaceOrden   = new LogicaOrden();
                List <int>  codigosExamen = new List <int>();


                Dictionary <int, Dictionary <int, int> > reporteAcumulado = enlaceOrden.ObtenerReporteAcumuladoMensual(ano, mes, idMedico);

                Dictionary <int, Dictionary <int, int> > reporteCantidad = enlaceOrden.ObtenerReporteCantidadMensual(ano, mes, idMedico);

                tablaInterna.Columns.Add("id", typeof(int));
                tablaInterna.Columns.Add("nombre", typeof(string));
                tablaInterna.Columns.Add("nroP", typeof(int));
                tablaInterna.Columns.Add("acuP", typeof(int));
                tablaInterna.Columns.Add("nroS", typeof(int));
                tablaInterna.Columns.Add("acuS", typeof(int));
                tablaInterna.Columns.Add("nroE", typeof(int));
                tablaInterna.Columns.Add("acuE", typeof(int));
                tablaInterna.Columns.Add("precioUn", typeof(double));
                tablaInterna.Columns.Add("totalMes", typeof(double));
                tablaInterna.Columns.Add("cob", typeof(int));

                foreach (int idAnalisis in ListaAnalisis.GetInstance().Coleccion.Keys)
                {
                    DataRow row = tablaInterna.NewRow();

                    row[0] = idAnalisis;
                    row[1] = ListaAnalisis.GetInstance().Analisis[idAnalisis].Nombre;

                    row[2] = (existDataInDictionary(idAnalisis, reporteCantidad[0]) ? reporteCantidad[0][idAnalisis] : 0);   //contador P
                    row[3] = (existDataInDictionary(idAnalisis, reporteAcumulado[0]) ? reporteAcumulado[0][idAnalisis] : 0); //acumulador P

                    row[4] = (existDataInDictionary(idAnalisis, reporteCantidad[1]) ? reporteCantidad[1][idAnalisis] : 0);   // Contador S
                    row[5] = (existDataInDictionary(idAnalisis, reporteAcumulado[1]) ? reporteAcumulado[1][idAnalisis] : 0); //acumulador S

                    row[6] = (existDataInDictionary(idAnalisis, reporteCantidad[2]) ? reporteCantidad[2][idAnalisis] : 0);   //Contador Ex
                    row[7] = (existDataInDictionary(idAnalisis, reporteAcumulado[2]) ? reporteAcumulado[2][idAnalisis] : 0); //acumulador Ex

                    row[8] = enlace.ObtenerTarifarioDetalle(tar, idAnalisis).Precio;
                    row[9] = (int)row[2] * enlace.ObtenerTarifarioDetalle(tar, idAnalisis).Precio;


                    row[10] = (int)row[2] + (int)row[4] + (int)row[6] + (int)row[3] + (int)row[5] + (int)row[7];

                    tablaInterna.Rows.Add(row);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            return(tablaInterna);
        }
Ejemplo n.º 6
0
 public TarifarioDetalle ObtenerTarifarioDetalle(Tarifario tar, int idAnalisis)
 {
     foreach (TarifarioDetalle tarD in tar.Listado.Values)
     {
         if (tarD.IdPaquete == idAnalisis)
         {
             return(tarD);
         }
     }
     return(null);
 }
Ejemplo n.º 7
0
        private System.Data.DataTable ObtenerTablaFormatoDatosReporteResultado(int ano, int mes)
        {
            BLTarifario enlace = new BLTarifario();
            Tarifario   tar    = enlace.ObtenerTarifario();

            System.Data.DataTable tablaInterna = new System.Data.DataTable();
            try
            {
                LogicaOrden     enlaceOrden = new LogicaOrden();
                List <object[]> resultados  = enlaceOrden.ObtenerReporteResultado(ano, mes);

                tablaInterna.Columns.Add("dni", typeof(string));
                tablaInterna.Columns.Add("nombre", typeof(string));
                tablaInterna.Columns.Add("apellido1", typeof(string));
                tablaInterna.Columns.Add("apellido2", typeof(string));
                tablaInterna.Columns.Add("edad", typeof(double));
                tablaInterna.Columns.Add("sexo", typeof(string));
                tablaInterna.Columns.Add("gestante", typeof(string));
                tablaInterna.Columns.Add("Examen", typeof(string));
                tablaInterna.Columns.Add("respuesta", typeof(string));
                tablaInterna.Columns.Add("nota", typeof(string));
                tablaInterna.Columns.Add("cobertura", typeof(string));
                tablaInterna.Columns.Add("estado", typeof(string));

                foreach (object[] obt in resultados)
                {
                    DataRow row = tablaInterna.NewRow();
                    row[0]  = obt[1].ToString();
                    row[1]  = obt[2].ToString();
                    row[2]  = obt[3].ToString();
                    row[3]  = obt[4].ToString();
                    row[4]  = obt[5];
                    row[5]  = DiccionarioGeneral.GetInstance().TipoSexo[(int)obt[6]];
                    row[6]  = Convert.ToBoolean(obt[7])?"SI":"NO";
                    row[7]  = Plantillas.GetInstance().GetPlantilla((int)obt[0]).Nombre;
                    row[8]  = obt[8].ToString().Replace('.', ',');
                    row[9]  = obt[9];
                    row[10] = DiccionarioGeneral.GetInstance().TipoCobertura[(int)obt[10]];
                    row[11] = DiccionarioGeneral.GetInstance().EstadoExamen[(int)obt[11]];

                    tablaInterna.Rows.Add(row);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            return(tablaInterna);
        }
Ejemplo n.º 8
0
        public static void AddTarifario(Tarifario tar)
        {
            SqlConnection conexion = new SqlConnection();

            SqlCommand comando = new SqlCommand();

            try
            {
                DataTable detalleTemp = new DataTable();
                detalleTemp.Columns.Add("ID", typeof(int));
                detalleTemp.Columns.Add("PRECIO", typeof(double));
                detalleTemp.Columns.Add("IDPAQUETE", typeof(int));
                detalleTemp.Columns.Add("IDTARIFARIOCAB", typeof(int));


                foreach (TarifarioDetalle det in tar.Listado.Values)
                {
                    DataRow row = detalleTemp.NewRow();
                    row[0] = 0;
                    row[1] = det.Precio;
                    row[2] = det.IdPaquete;
                    row[3] = det.IdTarifarioCab;
                    detalleTemp.Rows.Add(row);
                }


                conexion.ConnectionString = ConfiguracionDataAccess.GetInstance().CadenaConexion;
                comando.Connection        = conexion;
                comando.CommandText       = ProcAdd.ADD_TARIFARIOCAB;
                comando.CommandType       = CommandType.StoredProcedure;
                comando.Parameters.AddWithValue("@vigente", tar.Vigente);
                comando.Parameters.AddWithValue("@ano", tar.Año);
                comando.Parameters.AddWithValue("@FECHAREG", tar.FechaRegistro);
                comando.Parameters.AddWithValue("@DETALLE", detalleTemp).SqlDbType = SqlDbType.Structured;
                MessageBox.Show("");
                comando.Connection.Open();
                comando.ExecuteNonQuery();
            }
            catch (SqlException e)
            {
                MessageBox.Show(e.Message);
            }
            finally
            {
                conexion.Close();
                comando.Dispose();
            }
        }
Ejemplo n.º 9
0
        public static Tarifario GetTarifario(int idTarifario)
        {
            Tarifario     tarif    = null;
            SqlConnection conexion = new SqlConnection();

            SqlCommand comando = new SqlCommand();

            try
            {
                conexion.ConnectionString = ConfiguracionDataAccess.GetInstance().CadenaConexion;
                comando.Connection        = conexion;

                comando.CommandText = ProcGet.GET_TARIFARIOCAB_BYID;
                comando.CommandType = CommandType.StoredProcedure;

                comando.Parameters.AddWithValue("@ID", idTarifario);
                comando.Connection.Open();

                SqlDataReader resultado = comando.ExecuteReader();

                while (resultado.Read())
                {
                    tarif               = new Tarifario();
                    tarif.IdData        = Convert.ToInt32(resultado["id"]);
                    tarif.Año           = Convert.ToInt32(resultado["ano"]);
                    tarif.FechaRegistro = Convert.ToDateTime(resultado["fechaReg"]);
                    tarif.Vigente       = Convert.ToBoolean(resultado["vigente"]);
                    tarif.Listado       = GetTarifarioDet(tarif.IdData);
                }
                resultado.Close();
            }
            catch (SqlException e)
            {
                MessageBox.Show(e.Message);
            }
            finally
            {
                conexion.Close();
                comando.Dispose();
            }
            return(tarif);
        }
Ejemplo n.º 10
0
        public FormatoImpresion CrearDocumento(Orden orden, Paciente paciente, Dictionary <int, Examen> examenPorOrden)
        {
            List <Examen>    examenSelectedTemp;
            FormatoImpresion pagina = new FormatoImpresion();

            pagina.Orden    = "O" + orden.IdData;
            pagina.Nombre   = paciente.Nombre + " " + paciente.ApellidoPaterno + " " + paciente.ApellidoMaterno;
            pagina.Historia = paciente.Historia;
            pagina.Edad     = this.GetAge(paciente);
            FormatoImpresion.PaginaLinea lineaTemp;
            foreach (OrdenDetalle detalle in orden.Detalle.Values)
            {
                examenSelectedTemp = GetExamenes(examenPorOrden, detalle);
                string nombreTar = Tarifario.GetInstance().Paquetes[detalle.IdDataTarifa].Nombre;
                string nombreEx  = null;
                lineaTemp           = new FormatoImpresion.PaginaLinea();
                lineaTemp.TipoLinea = FormatoImpresion.PaginaLinea.TipoPaginaLinea.TituloInicio;
                lineaTemp.Nombre    = nombreTar;
                pagina.Detalles.Add(lineaTemp);
                foreach (Examen ex in examenSelectedTemp)
                {
                    nombreEx = Plantillas.GetInstance().GetPlantilla(ex.IdPlantilla).Nombre;
                    if (!nombreEx.Equals(nombreTar))
                    {
                        lineaTemp           = new FormatoImpresion.PaginaLinea();
                        lineaTemp.TipoLinea = FormatoImpresion.PaginaLinea.TipoPaginaLinea.SubTitulo;
                        lineaTemp.Nombre    = nombreEx;
                        pagina.Detalles.Add(lineaTemp);
                    }
                    Dictionary <int, PlantillaDetalle> detalles = Plantillas.GetInstance().GetPlantilla(ex.IdPlantilla).Detalle;
                    for (int i = 0; i < detalles.Count; i++)
                    {
                        switch (detalles[i].Tipo)
                        {
                        case PlantillaDetalle.TipoDetalle.Grupo:
                            lineaTemp           = new FormatoImpresion.PaginaLinea();
                            lineaTemp.TipoLinea = FormatoImpresion.PaginaLinea.TipoPaginaLinea.GrupoInicio;
                            lineaTemp.Nombre    = detalles[i].Grupo.Nombre;
                            pagina.Detalles.Add(lineaTemp);
                            if (detalles[i].Grupo.IdData == 4)    //Para el grupo especial Medicina // Luego se puede mejorar Agregando un elemento deseado incorporandolo
                            {
                                foreach (Item itemG in detalles[i].Grupo.Items.Values)
                                {
                                    lineaTemp           = new FormatoImpresion.PaginaLinea();
                                    lineaTemp.TipoLinea = FormatoImpresion.PaginaLinea.TipoPaginaLinea.ItemSimple;
                                    lineaTemp.Nombre    = " * " + itemG.Nombre;
                                    int indice = Convert.ToInt32(ex.DetallesByItem[itemG.IdData].Campo);
                                    if (indice != 0)
                                    {
                                        lineaTemp.Resultado = itemG.OpcionesByIndice[indice];
                                        pagina.Detalles.Add(lineaTemp);
                                    }
                                }
                            }
                            else
                            {
                                foreach (Item itemG in detalles[i].Grupo.Items.Values)
                                {
                                    lineaTemp           = new FormatoImpresion.PaginaLinea();
                                    lineaTemp.TipoLinea = FormatoImpresion.PaginaLinea.TipoPaginaLinea.ItemSimple;
                                    lineaTemp.Nombre    = " * " + itemG.Nombre;
                                    switch (itemG.TipoCampo)
                                    {
                                    case TipoCampo.Input:
                                        lineaTemp.Resultado = ex.DetallesByItem[itemG.IdData].Campo.ToString();
                                        if (itemG.TieneUnidad)
                                        {
                                            lineaTemp.Resultado += itemG.Unidad;
                                        }
                                        lineaTemp.Resultado += ClasificarItem(paciente, ex.DetallesByItem[itemG.IdData]);
                                        break;

                                    case TipoCampo.Lista:
                                        lineaTemp.Resultado = itemG.OpcionesByIndice[Convert.ToInt32(ex.DetallesByItem[itemG.IdData].Campo)];
                                        break;

                                    case TipoCampo.Texto:
                                        lineaTemp.TipoLinea = FormatoImpresion.PaginaLinea.TipoPaginaLinea.ItemTexto;
                                        lineaTemp.Resultado = ex.DetallesByItem[itemG.IdData].Campo.ToString();
                                        break;
                                    }
                                    pagina.Detalles.Add(lineaTemp);
                                }
                            }
                            lineaTemp           = new FormatoImpresion.PaginaLinea();
                            lineaTemp.TipoLinea = FormatoImpresion.PaginaLinea.TipoPaginaLinea.GrupoFin;
                            break;

                        case PlantillaDetalle.TipoDetalle.Item:
                            Item item = detalles[i].Item;
                            lineaTemp           = new FormatoImpresion.PaginaLinea();
                            lineaTemp.TipoLinea = FormatoImpresion.PaginaLinea.TipoPaginaLinea.ItemSimple;
                            if (!nombreEx.Equals(item.Nombre))
                            {
                                lineaTemp.Nombre = item.Nombre;
                            }
                            else
                            {
                                lineaTemp.Nombre = "RESULTADO";
                            }
                            switch (item.TipoCampo)
                            {
                            case TipoCampo.Input:
                                lineaTemp.Resultado = ex.DetallesByItem[item.IdData].Campo.ToString();
                                if (item.TieneUnidad)
                                {
                                    lineaTemp.Resultado += "  " + item.Unidad;
                                }
                                switch (item.TipoDato)
                                {
                                case TipoDato.Entero:
                                    lineaTemp.Resultado += ClasificarItem(paciente, ex.DetallesByItem[item.IdData]);
                                    break;

                                case TipoDato.Decimal:
                                    lineaTemp.Resultado += ClasificarItem(paciente, ex.DetallesByItem[item.IdData]);
                                    break;
                                }
                                break;

                            case TipoCampo.Lista:
                                lineaTemp.Resultado = item.OpcionesByIndice[Convert.ToInt32(ex.DetallesByItem[item.IdData].Campo)];
                                break;

                            case TipoCampo.Texto:
                                lineaTemp.TipoLinea = FormatoImpresion.PaginaLinea.TipoPaginaLinea.ItemTexto;
                                lineaTemp.Resultado = ex.DetallesByItem[item.IdData].Campo.ToString();
                                break;
                            }
                            pagina.Detalles.Add(lineaTemp);
                            break;
                        }
                    }
                }
            }
            return(pagina);
        }
Ejemplo n.º 11
0
 public void ActualizarVigenteTarifario(Tarifario tar)
 {
     DataAnalisis.UpdTarifarioVigente(tar);
 }
Ejemplo n.º 12
0
 public void ActualizarTarifario(Tarifario tar)
 {
     DataAnalisis.UpdTarifario(tar);
 }
Ejemplo n.º 13
0
        private void BtnAbrir_Click(object sender, EventArgs e)
        {
            BLOrden enlaceOrden = new BLOrden();

            tabla.Rows.Clear();
            int        mes  = ((KeyValuePair <int, string>)comboMes.SelectedItem).Key;
            int        ano  = Convert.ToInt32(campAno.Text);
            int        area = ((KeyValuePair <int, string>)comboArea.SelectedItem).Key;
            List <int> contadorByTarifas = new List <int>();

            foreach (Paquete i in Tarifario.GetInstance().Paquetes.Values)
            {
                if (area == i.IdArea)//
                {
                    contadorByTarifas.Add(i.IdData);
                }
            }

            Dictionary <int, ReporteMensual> reporte = enlaceOrden.ObtenerReporteMensual(area, ano, mes);

            double[,] general = new double[4, 3];


            foreach (int idTarifa in contadorByTarifas)
            {
                DataRow row = tabla.NewRow();
                row[0]         = Tarifario.GetInstance().Paquetes[idTarifa].Nombre;
                row[1]         = (reporte[0].ExisteId(idTarifa)? reporte[0].Detalle[idTarifa].Cantidad : 0);                 //contador P
                row[2]         = (reporte[0].ExisteId(idTarifa) ? reporte[0].Detalle[idTarifa].Total : 0.00m);               //Total P
                row[3]         = (reporte[0].ExisteId(idTarifa) ? reporte[0].Detalle[idTarifa].Acumulado : 0) + (int)row[1]; //acumulador P
                general[0, 0] += (int)row[1];
                general[0, 1] += (double)row[2];
                general[0, 2] += (int)row[3];

                row[4]         = (reporte[1].ExisteId(idTarifa) ? reporte[1].Detalle[idTarifa].Cantidad : 0);                // Contador S
                row[5]         = (reporte[1].ExisteId(idTarifa) ? reporte[1].Detalle[idTarifa].Acumulado : 0) + (int)row[4]; //acumulador S
                general[1, 0] += (int)row[4];
                general[1, 1] += 0;
                general[1, 2] += (int)row[5];


                row[6]         = (reporte[2].ExisteId(idTarifa) ? reporte[2].Detalle[idTarifa].Cantidad : 0);                //Contador Ex
                row[7]         = (reporte[2].ExisteId(idTarifa) ? reporte[2].Detalle[idTarifa].Acumulado : 0) + (int)row[6]; //acumulador Ex
                general[2, 0] += (int)row[6];
                general[2, 1] += 0;
                general[2, 2] += (int)row[7];


                row[8]         = (int)row[1] + (int)row[4] + (int)row[6];
                row[9]         = (int)row[3] + (int)row[5] + (int)row[7];
                general[3, 0] += (int)row[8];
                general[3, 1] += (general[0, 1] + general[1, 1] + general[2, 1]);
                general[3, 2] += (int)row[9];
                tabla.Rows.Add(row);
            }


            campCantPar.Text   = general[0, 0].ToString();
            campEfec.Text      = String.Format("{0:0.00}", general[0, 1]);
            campAcuPar.Text    = general[0, 2].ToString();
            campCantSis.Text   = general[1, 0].ToString();
            campAcuSis.Text    = general[1, 2].ToString();
            campCantExo.Text   = general[2, 0].ToString();
            campAcuExo.Text    = general[2, 2].ToString();
            campCantTotal.Text = general[3, 0].ToString();
            campEfecTotal.Text = String.Format("{0:0.00}", general[3, 1]);
            campAcumTotal.Text = general[3, 2].ToString();
        }