public NvoMedicoForm(int mod=0)
        {
            switch (mod)
            {
                case 0:
                    {
                        this.modificacion = 0;
                        break;
                    }
                default:
                    {
                        this.modificacion = 1;
                        using (var ctx = new LabDBEntities())
                        {
                            this.med = ctx.tb_Medicos.Find(mod);
                        }

                        break;
                    }
            }

            InitializeComponent();
            cargarComboboxes();
            if (this.modificacion != 0) { cargarTextoUpdate(); }
        }
        //Constructor

        public TabTodosControles()
        {
            InitializeComponent();
            //Cargo Listview de Pacientes y Desactivo los Controles de Alta Modif
            //Control.TabControlTodos.ControladorPacientes.CargaPacienteTodos(listViewPacientesPacientesLV);
            //Control.TabControlTodos.UtilidadesComunes.DesactivarTodosLosControles(tabPageAltaModif);

            //btnEliminarPac.Enabled = false;//desactivo el eliminar hasta q seleccione paciente.
            //btnModifPaciente.Enabled = false;//idem

            RecargarPacientes();
            //direcciones y telefonos. solo activo boton ver y listbox.
            this.listBoxDir.Enabled = true;
            this.listBoxTel.Enabled = true; //act los dos listbox
            btnVerDir.Enabled = true; //activo los dos botones ver.

            //diagnosticos 

            btnModifDiag.Enabled = btnDiagnostBorrar.Enabled = btnNuevoDiag.Enabled = false;
            using (LabDBEntities ctx = new LabDBEntities())
            {
                comboBusquedaGrupoSang.DataSource = ctx.tb_GrupoSanguineo.ToList();
                comboBusquedaGrupoSang.DisplayMember = "descripcion";
                comboBusquedaGrupoSang.ValueMember = "id_grupo";
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            using (var ctx = new LabDBEntities())
            {

                    tb_Usuarios usuario = (from users in ctx.tb_Usuarios.Where(ex => ex.username == textBoxUsername.Text.Trim().ToLower() && ex.password == textBoxPassword.Text.Trim().ToLower())
                                           select users).FirstOrDefault();

                    if (usuario != null)
                    {
                        //MessageBox.Show("Ingreso correcto");
                        WindowsFormsApplication1.Principal prin = new WindowsFormsApplication1.Principal(Convert.ToInt16(usuario.permisos));
                        this.Hide();
                        prin.Show();

                    }
                    else
                    {
                        contadorIntentosFallidos++;
                        MessageBox.Show("Ingreso Incorrecto. Intentos Fallidos: "+ contadorIntentosFallidos);

                    }

            }
        }
        //boton guardartelefono
        private void button1_Click(object sender, EventArgs e)
        {
            using (var ctx = new LabDBEntities())
            {
                switch (this.tipo)
                {
                    case 1:
                        { //Guarda el PACIENTE en la bd
                            tb_TelefonosTodos tel = new tb_TelefonosTodos();
                            tel.telefono = textBoxTelefono.Text;

                            ctx.tb_Pacientes.Find(pacienteSelId).tb_TelefonosTodos.Add(tel);
                            if (ctx.SaveChanges() != 0)
                            {
                                this.DialogResult = DialogResult.OK;
                                this.Close();
                            }
                            else {
                                this.DialogResult = DialogResult.Cancel;
                            }
                            break;
                        }
                    case 2:
                        { // carga tel ed DONANTE

                            break;
                        }
                }
            }
        }
        public NuevoProductoDialogBox(int mod = 0)
        {
            switch (mod)
            {
                case 0:
                    {
                        this.modificacion = 0;
                        break;
                    }
                default:
                    {
                        this.modificacion = 1;
                        using (var ctx = new LabDBEntities())
                        {
                            this.prod = ctx.tb_Insumos.Find(mod);
                        }

                        break;
                    }
            }

            InitializeComponent();
            cargarComboboxes();
            if (this.modificacion != 0) { cargarTextoUpdate(); }
        }
        private void cargarComboPacientes()
        {
            this.SuspendLayout();
            using (var ctx = new LabDBEntities())
            {
                var query = from v in ctx.tb_Pacientes.Where(esw => esw.borrado == 0)
                            select new
                            {
                                id = v.id_paciente,
                                nombre = v.nombre + " " + v.apellido
                            };
                comboBoxPaciente.DisplayMember = "nombre";
                comboBoxPaciente.ValueMember = "id";
                comboBoxPaciente.DataSource = query.ToList();
                comboBoxPaciente.SelectedIndex = -1;

                //cargo TIpo MUestra

                var query3 = from v in ctx.tb_Muestras_Tipo
                             select new
                             {
                                 id = v.id_muestras_tipo,
                                 nombre = v.descripcion
                             };
                comboBoxTipoMuestra.DisplayMember = "nombre";
                comboBoxTipoMuestra.ValueMember = "id";
                comboBoxTipoMuestra.DataSource = query3.ToList();
                comboBoxTipoMuestra.SelectedIndex = -1;

            }
            this.ResumeLayout();
        }
        private void cargarDatagridProductos()
        {
            using (var ctx = new LabDBEntities())
            {
                var query = from prod in ctx.tb_Insumos
                            orderby prod.detalle
                            select new
                            {
                                ID=prod.id_insumo,
                                DETALLE=prod.detalle,
                                TIPO=prod.tb_Tipo_Insumo.detalles,
                                MARCA=prod.tb_Insumo_Marca.descripcion,
                                CANT_MINIMA=prod.cant_minima,
                                CANT_DISPONIBLE=prod.cant_disponible,
                                MEDIDA=prod.tb_Medida_Insumo.descripcion,
                                PRECIO=prod.precio_unidad

                            };

                BindingSource bs = new BindingSource();
                bs.DataSource=query.ToList();
                dvgControlStock.DataSource = bs;
                dvgControlStock.Columns[0].Visible = false;
                comboCategorias.DataSource = ctx.tb_Tipo_Insumo.ToList();
                comboCategorias.DisplayMember = "detalles";
                    comboCategorias.ValueMember = "id_tipo_insumo";
            }
        }
        private void btnGuardar_Click(object sender, EventArgs e)
        {
            using (var ctx = new LabDBEntities())
            {
                switch (this.tipo)
                {
                    case 1: //paciente
                        {
                            nvaDirCargada = new tb_DireccionTodos();
                            nvaDirCargada.calle = txtboxCalle.Text;
                            nvaDirCargada.numero = Convert.ToInt32(txtboxNumCalle.Text);
                            nvaDirCargada.desc_dep = txtboxDescDep.Text;
                            nvaDirCargada.numero_dep = txtboxNumDep.Text;
                            nvaDirCargada.localidad_id = Convert.ToInt32(comboLocalidad.SelectedValue);
                            nvaDirCargada.barrio = Convert.ToInt32(comboBarrios.SelectedValue);

                            ctx.tb_Pacientes.Find(pacienteId).tb_DireccionTodos.Add(nvaDirCargada);
                            if (ctx.SaveChanges() != 0)
                            {

                                this.DialogResult = DialogResult.OK;
                            }
                            else {
                                this.DialogResult = DialogResult.Cancel;
                            }

                            break;
                        }
                }

            }
        }
        internal static IList<tb_Pacientes> busquedaPaciente( string nom, string ape, string grup)
        {
            IList<tb_Pacientes> pacientesResult;
            using (var ctx = new LabDBEntities())
            {
                int groupo = 0;
                Int32.TryParse(grup, out groupo);
                if (grup=="todos")
                {
                    pacientesResult = (from pac in
                                           ctx.tb_Pacientes.Where(elPac => elPac.nombre.Contains(nom)
                                           && elPac.apellido.Contains(ape) && elPac.grupo_sanguineo.Value == groupo && elPac.borrado == 0)

                                       select pac).ToList();

                }

                else
                {

                    pacientesResult = (from pac in
                                           ctx.tb_Pacientes.Where(elPac => elPac.nombre.Contains(nom)
                                           && elPac.apellido.Contains(ape) && elPac.borrado == 0)

                                       select pac).ToList();
                }
            }

            return pacientesResult;
        }
        private void button1_Click(object sender, EventArgs e)
        {
            int cambios = 0;
            foreach (DataGridViewRow dr in dvgControlStock.Rows)
            {

                Historial_Insumo hi = new Historial_Insumo();
                hi.insumo_id = Convert.ToInt32(dr.Cells[0].Value);
                hi.detalle = dr.Cells[1].Value.ToString();
                hi.tipo = dr.Cells[2].Value.ToString();
                hi.marca = dr.Cells[3].Value.ToString();
                hi.cantidad_minima = Convert.ToInt32(dr.Cells[4].Value);
                hi.cantidad_disponible = Convert.ToInt32(dr.Cells[5].Value);
                hi.precio = Convert.ToDecimal(dr.Cells[7].Value);
                hi.fecha = DateTime.Today;
                using (var ctx = new LabDBEntities())
                {
                    ctx.Historial_Insumo.Add(hi);
                   cambios+= ctx.SaveChanges();

                }

            }
            if (cambios > 0)
            {
                MessageBox.Show(cambios + "Productos Agregados a Historial con fecha: " + DateTime.Today);
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            using (var ctx = new LabDBEntities())
            {
                if (!modificar)
                {
                    tb_ObraSocial nvaos = new tb_ObraSocial();
                    nvaos.razon_social = textBoxRazonSocial.Text;
                    nvaos.website1 = textBoxweb1.Text;
                    nvaos.website2 = textBoxweb2.Text;
                    nvaos.borrado = 0;
                    ctx.tb_ObraSocial.Add(nvaos);
                }
                else
                {
                    ctx.tb_ObraSocial.Find(idAmodif).razon_social = textBoxRazonSocial.Text;
                    ctx.tb_ObraSocial.Find(idAmodif).website1 = textBoxweb1.Text;
                    ctx.tb_ObraSocial.Find(idAmodif).website2 = textBoxweb2.Text;
                    ctx.tb_ObraSocial.Find(idAmodif).borrado = 0;
                }
                if (ctx.SaveChanges() != 0)
                {
                    MessageBox.Show("Guardado con exito!");
                    this.DialogResult = DialogResult.OK;

                }
            }
        }
        public CargarEmailFrm(int opcion, int id)
        {
            InitializeComponent();
            //opcion 1 paciente
            switch (opcion)
            {
                case 1:
                    {
                        this.tipo = 1;//tipo paciente
                        break;
                    }
                case 2:
                    {
                        this.tipo = 2; //tipo donante
                        break;
                    }
            }

            using (var ctx = new LabDBEntities())
            {
                textBoxTelefono.Text = ctx.tb_EmailsTodos.Find(id).email;

            }
            modificado = 1;
            idMod = id;
        }
        private void cargarDatagridMedicos()
        {
            using (var ctx = new LabDBEntities())
            {
                query = (from prod in ctx.tb_Medicos.Where(ins => ins.borrado == 0)
                         orderby prod.nombre
                         select new
                         {
                             ID = prod.id_medico,
                             NOMBRE = prod.nombre,
                             APELLIDO = prod.apellido,
                             DNI = prod.dni,
                             ESPECIALIDAD = prod.tb_Medico_Tipo.detalle

                         }).ToList();

                bs.DataSource = query;
                dgvMedicos.DataSource = bs;
                dgvMedicos.Columns[0].Visible = false;
                cbEspecialidad.DataSource = ctx.tb_Medico_Tipo.ToList();
                cbEspecialidad.DisplayMember = "detalle";
                cbEspecialidad.ValueMember = "id_tipo_medico";
                cbEspecialidad.SelectedValue = 1;

            }
        }
 private void cargarDatagrid(DateTime dateTime)
 {
     using (var ctx= new LabDBEntities())
     {
         var query = from v in ctx.Historial_Insumo.Where(esx=>esx.fecha==dateTime.Date)
                     select v;
         dataGridView1.DataSource = query.ToList();
     }
 }
 private void cargarDatos()
 {
     using (var ctx = new LabDBEntities())
     {
         textBoxRazonSocial.Text = ctx.tb_ObraSocial.Find(idAmodif).razon_social;
         textBoxweb1.Text = ctx.tb_ObraSocial.Find(idAmodif).website1;
         textBoxweb2.Text = ctx.tb_ObraSocial.Find(idAmodif).website2;
     }
 }
        private void btnEmitirRemito_Click(object sender, EventArgs e)
        {
            if (!Validaciones.Validation.hasValidationErrors(this.Controls))
            {

                nvoRemito.fecha = fechaRemitoDtp.Value;
                //nvoRemito.numero_remito = Convert.ToInt32(nroRemitoTextBox.Text);
                nvoRemito.razon_social = razonSocialTextBox.Text;
                nvoRemito.cuil_cuit = CUILtextBox.Text;
                nvoRemito.condicion_iva = Convert.ToInt16(comboBoxCondIVA.SelectedValue);
                nvoRemito.condicion_venta = Convert.ToInt16(comboBoxCondVenta.SelectedValue);
                nvoRemito.direccion = direccionTextBox.Text;
                nvoRemito.total = Convert.ToDecimal(TotaltextBox.Text);

                using (var ctx = new LabDBEntities())
                {
                    ctx.Remito.Add(nvoRemito);
                    if (ctx.SaveChanges() != 0)
                    {

                        //cargo los detalles
                        Remito_Detalle r = new Remito_Detalle();
                        foreach (DataGridViewRow row in dgvRemito.Rows)
                        {
                            if (row.Cells[0].Value != null)
                            {
                                r.codigo_id = Convert.ToInt16(row.Cells[0].Value);
                                r.descripcion = Convert.ToString(row.Cells[1].Value);
                                r.cantidad = Convert.ToInt16(row.Cells[2].Value);
                                r.precio = Convert.ToDecimal(row.Cells[3].Value);
                                r.descuento = Convert.ToDecimal(row.Cells[4].Value);
                                r.total_venta = nvoRemito.total;
                                r.remito_id = nvoRemito.id_remito;
                                r.importe = Convert.ToDecimal(row.Cells[5].Value);
                                r.fecha = fechaRemitoDtp.Value;
                                ctx.Remito_Detalle.Add(r);

                                //ctx.Remito.Find(nvoRemito.id_remito).Remito_Detalle.Add(r);
                                if (ctx.SaveChanges() != 0)
                                {
                                    MessageBox.Show("Detalles Guardados con Exito");
                                }
                            }
                        }

                        MessageBox.Show("Remito Guardado con id: " + nvoRemito.id_remito);
                        ReportesLaboratorio.EmitirReporteRemitoFrm remitofrm = new ReportesLaboratorio.EmitirReporteRemitoFrm(nvoRemito.id_remito);
                        remitofrm.Show();
                        nroRemitoTextBox.Text = nvoRemito.numero_remito.ToString();
                        limpiartodo();
                    }
                }

            }
        }
        private void btnGuardar_Click(object sender, EventArgs e)
        {
            using (var ctx = new LabDBEntities())
            {
                switch (this.modificar)
                {
                    case 0:
                        {//agregar uno nuevo
                            monthCalendar1.MaxSelectionCount = 1;
                            DateTime dia = monthCalendar1.SelectionStart;
                            tb_Diagnosticos diag = new tb_Diagnosticos();
                            diag.descripcion = textBoxDiag.Text;
                            diag.detalle = textboxDetalle.Text;
                            diag.fecha = dia;
                            diag.borrado = 0;

                            ctx.tb_Pacientes.Find(paciente_id_sel).tb_Diagnosticos.Add(diag);
                            if (ctx.SaveChanges() != 0)
                            {
                                this.DialogResult = DialogResult.OK;
                                this.Close();

                            }
                            else
                            {
                                this.DialogResult = DialogResult.Cancel;
                            }

                            break;
                        }
                    case 1:
                        {//modificar
                            monthCalendar1.MaxSelectionCount = 1;
                            ctx.tb_Diagnosticos.Find(this._id_a_modif).descripcion = textBoxDiag.Text;
                            ctx.tb_Diagnosticos.Find(this._id_a_modif).fecha = monthCalendar1.SelectionStart;
                            ctx.tb_Diagnosticos.Find(this._id_a_modif).detalle = textBoxDiag.Text;

                            if (ctx.SaveChanges() != 0)
                            {
                                this.DialogResult = DialogResult.OK;
                                this.Close();

                            }
                            else {
                                this.DialogResult = DialogResult.Cancel;
                            }
                            break;

                        }

                }

            }
        }
        public CargarDiagnosticoFrm(int id)
        {
            InitializeComponent();
            this.modificar = 1;
            this._id_a_modif = id;
            using (var ctx=new LabDBEntities()){
                monthCalendar1.SelectionStart = ctx.tb_Diagnosticos.Find(id).fecha.Value;
                textBoxDiag.Text = ctx.tb_Diagnosticos.Find(id).descripcion;

            }
        }
 private void cargarComboCodigos()
 {
     using (var ctx = new LabDBEntities())
     {
         var query = from c in ctx.Aux_Precio_Remito select c;
         comboBoxCodigo.DisplayMember = "id_codigo";
         comboBoxCodigo.ValueMember = "id_codigo";
         query2 = query.ToList();
         comboBoxCodigo.DataSource = query2;
         comboBoxCodigo.SelectedIndex = -1;
     }
 }
        internal static bool Alta(tb_Pacientes pacienteNvo)
        {
            bool _exito = false;
            using (var context = new LabDBEntities())
            {
                context.tb_Pacientes.Add(pacienteNvo);
                if (0 < context.SaveChanges())
                {
                    _exito = true;
                }

            }
            return _exito;
        }
        public static bool Alta(Modelo.tb_DireccionTodos nvaDirCargada)
        {
            bool exito = false;

            using (var ctx = new LabDBEntities())
            {
               idDirCarg = ctx.tb_DireccionTodos.Add(nvaDirCargada).id_dir;
                if (ctx.SaveChanges() != 0) {
                    exito = true;
                }
            }

            return exito;
        }
        private void btnGuardar_Click(object sender, EventArgs e)
        {
            using (var ctx = new LabDBEntities())
            {
                Aux_Precio_Remito aur = new Aux_Precio_Remito();
                aur.detalle = textBoxDetalle.Text;
                aur.precio = Convert.ToDecimal(textBoxPrecio.Text);
                ctx.Aux_Precio_Remito.Add(aur);
                if (ctx.SaveChanges() != 0)
                {
                    this.DialogResult = DialogResult.OK;
                }

            }
        }
 //eliminar
 private void button2_Click(object sender, EventArgs e)
 {
     using (var ctx = new LabDBEntities())
     {
         if (dgvExtracciones.CurrentRow.Cells[0].Value != null)
         {
             ctx.tb_Muestras.Find(dgvExtracciones.CurrentRow.Cells[0].Value).borrado = 1;
             if (ctx.SaveChanges() != 0)
             {
                 MessageBox.Show("Extraccion Eliminada con exito!");
                 cargarDatagrid();
             }
         }
     }
 }
        private void cargarMarcas()
        {
            using (var ctx = new LabDBEntities()){

                var query = from v in ctx.tb_Insumo_Marca.Where(borr=>borr.borrado==0)
                            select new
                            {
                                ID=v.id_marca,
                                Marca=v.descripcion
                            };

                dgvMarcas.DataSource=query.ToList();

            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            using (var ctx = new LabDBEntities())
            {
                tb_Insumo_Marca nm= new tb_Insumo_Marca();
                nm.descripcion=textBox1.Text;
                nm.borrado=0;
                ctx.tb_Insumo_Marca.Add(nm);
                if(ctx.SaveChanges()!=0)
                {

                    cargarMarcas();
                }

            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            using (var ctx = new LabDBEntities())
            {

                tb_Muestras_Tipo m = new tb_Muestras_Tipo();
                m.descripcion = textBox1.Text;
                ctx.tb_Muestras_Tipo.Add(m);
                if (ctx.SaveChanges() != 0)
                {
                    this.DialogResult = DialogResult.OK;
                    MessageBox.Show("Tipo de muestra agregado con exito");

                }
            }
        }
        private void button2_Click(object sender, EventArgs e)
        {
            if(dgvMarcas.SelectedRows.Count>0)
            {
                using(var ctx= new LabDBEntities())
                {

                    ctx.tb_Insumo_Marca.Find(Convert.ToInt32(dgvMarcas.CurrentRow.Cells[0].Value)).borrado=1;
                    if(ctx.SaveChanges()!=0)
                    {
                    cargarMarcas();
                    }
                }

            }
        }
        private void btnEliminarOs_Click(object sender, EventArgs e)
        {
            if (dgvOS.SelectedRows.Count >0)
            {
                using (var ctx = new LabDBEntities())
                {
                    ctx.tb_ObraSocial.Find(Convert.ToInt16(dgvOS.CurrentRow.Cells[0].Value)).borrado = 1 ;
                    if (ctx.SaveChanges() != 0)
                    {
                        MessageBox.Show("Eliminado con exito");
                        cargarDatagridOS();
                    }
                }

            }
        }
        private void cargarcombo()
        {
            using (var ctx = new LabDBEntities())
            {
                var query = from v in ctx.tb_Donantes.Where(easd => easd.borrado == 0)
                            select new
                            {
                                id = v.id_donante,
                                nombre = v.nombre + " " + v.apellido
                            };
                comboBox1.DisplayMember = "nombre";
                comboBox1.ValueMember = "id";
                comboBox1.DataSource = query.ToList();
                comboBox1.SelectedIndex = -1;

            }
        }
        public static void CargarDiagsDePaciente(int idpaciente, ListView lvDiags)
        {
            using (var context = new LabDBEntities())
            {
                IQueryable<tb_Diagnosticos> diags = context.tb_Pacientes.Find(idpaciente).tb_Diagnosticos.AsQueryable();
                foreach (tb_Diagnosticos p in diags.Where(pac => pac.borrado != 1))
                {

                    ListViewItem item = new ListViewItem(p.id_diagnostico.ToString());
                    item.SubItems.Add(p.fecha.ToString());
                    item.SubItems.Add(p.descripcion.ToString());

                    lvDiags.Items.Add(item);
                }
                diags = null;
            }
        }