public int AgregarPaqueteFinanciero(PaqueteFinanciero paquete)
        {
            try
            {
                MySqlCommand comando = new MySqlCommand();
                comando.Connection = Conexion();
                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = "InsertarPaqueteFinanciero";

                comando.Parameters.AddWithValue("@FECHA_PAQUETE", paquete.FechaPaquete);
                comando.Parameters.AddWithValue("@PACIENTE", paquete.Paciente.Cedula);
                comando.Parameters.AddWithValue("@idMax", MySqlDbType.Int32);

                comando.Parameters["@FECHA_PAQUETE"].Direction = ParameterDirection.Input;
                comando.Parameters["@PACIENTE"].Direction = ParameterDirection.Input;
                comando.Parameters["@idMax"].Direction = ParameterDirection.Output;

                comando.ExecuteNonQuery();
                int id = (int)comando.Parameters["@idMax"].Value;

                CerrarConexion();
                return id;
            }
            catch (MySqlException)
            {

                return -1;
            }
        }
        public bool EditarPaqueteFinanciero(PaqueteFinanciero paquete)
        {
            try
            {
                MySqlCommand comando = new MySqlCommand();
                comando.Connection = Conexion();
                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = "ModificarPaqueteFinanciero";

                comando.Parameters.AddWithValue("@ID", paquete.Id);
                comando.Parameters.AddWithValue("@FECHA_PAQUETE", paquete.FechaPaquete);
                comando.Parameters.AddWithValue("@FECHA_LIMITE", paquete.FechaLimite);
                comando.Parameters.AddWithValue("@PACIENTE", paquete.Paciente.Id);

                comando.Parameters["@ID"].Direction = ParameterDirection.Input;
                comando.Parameters["@FECHA_PAQUETE"].Direction = ParameterDirection.Input;
                comando.Parameters["@FECHA_LIMITE"].Direction = ParameterDirection.Input;
                comando.Parameters["@CIRUJANO"].Direction = ParameterDirection.Input;
                comando.Parameters["@PACIENTE"].Direction = ParameterDirection.Input;

                comando.ExecuteNonQuery();

                CerrarConexion();
                return true;
            }
            catch (MySqlException e)
            {
                Console.Write(e.Message);
                return false;
            }
        }
        public void PruebaAgregarPaqueteFinanciero()
        {
            PaqueteFinanciero paquete = new PaqueteFinanciero();

            paquete.Paciente.Id = 1;
            //paquete.Cirujano.Id = 1;
            paquete.FechaLimite = new DateTime(2010, 12, 20);
            paquete.FechaPaquete = new DateTime(2010, 12, 31);
            int respuesta = DAO.ObtenerDAO(1).ObtenerDAOPaqueteFinanciero().AgregarPaqueteFinanciero(paquete);
            Console.WriteLine(respuesta);
            bool h = false;
            if (respuesta != -1)
                h = true;
            Assert.IsTrue(h);
        }
        public bool EliminarPaqueteFinanciero(PaqueteFinanciero paquete)
        {
            try
            {
                MySqlCommand comando = new MySqlCommand();
                comando.Connection = Conexion();
                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = "EliminarPaqueteFinanciero";

                comando.Parameters.AddWithValue("@ID", paquete.Id);

                comando.Parameters["@ID"].Direction = ParameterDirection.Input;

                comando.ExecuteNonQuery();

                CerrarConexion();
                return true;
            }
            catch (MySqlException e)
            {
                Console.Write(e.Message);
                return false;
            }
        }
        //metodo de cuando toca aceptar
        public void ClickAceptar()
        {
            LPaqueteFinanciero logicaP = new LPaqueteFinanciero();
            PaqueteFinanciero paqueteFinanciero = new PaqueteFinanciero();

            paqueteFinanciero.FechaPaquete = DateTime.Now;
            paqueteFinanciero.Paciente = _paciente;
            int idPaqueteFinanciero = logicaP.AgregarPaqueteFinanciero(paqueteFinanciero);

            LCirugiaPaqueteFinanciero lCirugiaPaqueteFinanciero = new LCirugiaPaqueteFinanciero();
            CirugiaPqtFinanciero cirugiaPqtFinanciero = new CirugiaPqtFinanciero();
            cirugiaPqtFinanciero.Protesis = Convert.ToInt32(_vista.TextProtesis.Text);
            cirugiaPqtFinanciero.FechaOperacion = new DateTime(Convert.ToInt32(_vista.TextAnoIqx1.Text),
                Convert.ToInt32(_vista.TextMesIqx1.Text), Convert.ToInt32(_vista.TextDiaIqx1.Text));
            Cirugia cirugia = new Cirugia();
            cirugia = (Cirugia) _vista.ComboIntervencionQuirurgica.SelectedItem;
            Cirujano cirujano = new Cirujano();
            cirujano = (Cirujano) _vista.ComboCirujano.SelectedItem;
            cirugiaPqtFinanciero.Cirugia.Id = Convert.ToInt32(cirugia.Id);
            cirugiaPqtFinanciero.Cirujano.Id = Convert.ToInt32(cirujano.Id);
            cirugiaPqtFinanciero.PaqueteFinanciero.Id = idPaqueteFinanciero;
            cirugiaPqtFinanciero.Descuento = Convert.ToInt32(_vista.TextDescuento.Text);
            cirugiaPqtFinanciero.MontoCirujano = Convert.ToInt32(_vista.TextoHonorarioCirujano.Text);
            int idCirugiaPqtFinanciero = lCirugiaPaqueteFinanciero.AgregarCirugiaPaquete(cirugiaPqtFinanciero);

            LCirugiaPersonalQ lCirugiaPersonalQ = new LCirugiaPersonalQ();
            PersonalPaquete personal = new PersonalPaquete();

            if (_vista.ComboPrimerAyudante.SelectedIndex != -1)
            {
                personal.Personal = (Personal)_vista.ComboPrimerAyudante.SelectedItem;
                personal.Especialidad = "1er Ayudante";
                personal.Cirugia.Id = idCirugiaPqtFinanciero;
                lCirugiaPersonalQ.AgregarCirugiaPersonalQ(personal);
            }
            if (_vista.ComboAnestesiologo.SelectedIndex != -1)
            {
                personal.Personal = (Personal)_vista.ComboAnestesiologo.SelectedItem;
                personal.Especialidad = "Anestesiologo";
                personal.Cirugia.Id = idCirugiaPqtFinanciero;
                lCirugiaPersonalQ.AgregarCirugiaPersonalQ(personal);
            }
            if (_vista.ComboInstrumentista.SelectedIndex != -1)
            {
                personal.Personal = (Personal)_vista.ComboInstrumentista.SelectedItem;
                personal.Especialidad = "Instrumentista";
                personal.Cirugia.Id = idCirugiaPqtFinanciero;
                lCirugiaPersonalQ.AgregarCirugiaPersonalQ(personal);
            }
            if (_vista.ComboCirculante.SelectedIndex != -1)
            {
                personal.Personal = (Personal)_vista.ComboCirculante.SelectedItem;
                personal.Especialidad = "Circulante";
                personal.Cirugia.Id = idCirugiaPqtFinanciero;
                lCirugiaPersonalQ.AgregarCirugiaPersonalQ(personal);
            }
            if (_vista.InstrumentistaEspecial.SelectedIndex != -1)
            {
                personal.Personal = (Personal)_vista.InstrumentistaEspecial.SelectedItem;
                personal.Especialidad = "Instrumentista Especial";
                personal.Cirugia.Id = idCirugiaPqtFinanciero;
                lCirugiaPersonalQ.AgregarCirugiaPersonalQ(personal);
            }
        }
 /// <summary>
 /// metodo que se encarga de la logica de agregar paquete financiero
 /// </summary>
 /// <param name="paqueteFinanciero"></param>
 /// <returns></returns>
 public int AgregarPaqueteFinanciero(PaqueteFinanciero paqueteFinanciero)
 {
     return DAO.ObtenerDAO(1).ObtenerDAOPaqueteFinanciero().AgregarPaqueteFinanciero(paqueteFinanciero);
 }
 public int AgregarPaqueteFinanciero(PaqueteFinanciero paqueteFinanciero)
 {
     LPaqueteFinanciero logica = new LPaqueteFinanciero();
     return logica.AgregarPaqueteFinanciero(paqueteFinanciero);
 }
        /// <summary>
        /// metodo que realiza la accion del boton aceptar , (""Aun falta la parte de las iqx"")
        /// </summary>
        public void ClickAceptar()
        {
            LPaciente logica = new LPaciente();
            Paciente paciente = new Paciente();

            paciente.Nombre = _vista.TextPrimerNombre.Text;
            paciente.SegundoNombre = _vista.TextSegundoNombre.Text;
            paciente.SegundoApellido = _vista.TextSegundoApellido.Text;
            paciente.PrimerApellido = _vista.TextPrimerApellido.Text;
            paciente.Cedula = Convert.ToInt64(_vista.TextIdPaciente.Text);
            paciente.Correo = _vista.TextCorreoElectronico.Text;
            paciente.FechaIngreso = DateTime.Now;
            paciente.Telefono = _vista.TextCodigoAreaFijo.Text + _vista.TextTelefonoFijo.Text;
            paciente.TelefonoMovil = _vista.TextCodigoAreaMovil.Text + _vista.TextTelefonoMovil.Text;

            logica.AgregarPaciente(paciente);

            //luego de insertar un paciente debo agregar un paquete financiero a ese paciente
            LPaqueteFinanciero logicaP = new LPaqueteFinanciero();
            PaqueteFinanciero paqueteFinanciero = new PaqueteFinanciero();

            paqueteFinanciero.FechaPaquete = DateTime.Now;
            paqueteFinanciero.Paciente = paciente;
            int idPaqueteFinanciero = logicaP.AgregarPaqueteFinanciero(paqueteFinanciero);

            //Luego del paquete financiero, se deben crear las cirugias asociadas a este.
            LCirugiaPaqueteFinanciero lCirugiaPaqueteFinanciero = new LCirugiaPaqueteFinanciero();
            for (int i = 0; i < _vista.DataGridCirugias.Rows.Count; i++)
            {
                //luego debo crear por cada cirugia que se va a hacer un insert en la tabla cirugia_paquete financiero
                CirugiaPqtFinanciero cirugiaPqtFinanciero = new CirugiaPqtFinanciero();
                //cirugiaPqtFinanciero.Protesis = Convert.ToInt64(_vista.TextProtesis.Text);
                cirugiaPqtFinanciero.Protesis = Convert.ToInt64(_vista.DataGridCirugias.Rows[i].Cells["columnaProtesis"].Value);
                string[] splt = Convert.ToString(_vista.DataGridCirugias.Rows[i].Cells["fechaCirugia"].Value).Split('/');
                cirugiaPqtFinanciero.FechaOperacion = new DateTime(Convert.ToInt32(splt[2]), Convert.ToInt32(splt[1]), Convert.ToInt32(splt[0]));
                cirugiaPqtFinanciero.Cirugia.Id = Convert.ToInt64(_vista.DataGridCirugias.Rows[i].Cells["idCirugia"].Value);
                cirugiaPqtFinanciero.Cirujano.Id = Convert.ToInt64(_vista.DataGridCirugias.Rows[i].Cells["idCirujano"].Value);
                cirugiaPqtFinanciero.PaqueteFinanciero.Id = idPaqueteFinanciero;
                cirugiaPqtFinanciero.Descuento = Convert.ToInt64(_vista.DataGridCirugias.Rows[i].Cells["columnaDesc"].Value);
                cirugiaPqtFinanciero.MontoCirujano = Convert.ToInt64(_vista.DataGridCirugias.Rows[i].Cells["columnaPrecioCirugia"].Value);
                int idCirugiaPqtFinanciero = lCirugiaPaqueteFinanciero.AgregarCirugiaPaquete(cirugiaPqtFinanciero);
                if (personalCirugia.Count > 0)
                {
                    if (personalCirugia.ElementAt(0).ElementAt(0).Id == i)
                    {
                        //or cada personla quirurgico de la cirugia debo hacer un insert
                        for (int k = 1; k < personalCirugia.ElementAt(0).Count; k++)
                        {
                            PersonalPaquete personalPaquete = new PersonalPaquete();
                            LCirugiaPersonalQ lCirugiaPersonalQ = new LCirugiaPersonalQ();
                            personalPaquete.Personal = personalCirugia.ElementAt(0).ElementAt(k);
                            personalPaquete.Especialidad = personalCirugia.ElementAt(0).ElementAt(k).Especializacion;
                            personalPaquete.Cirugia.Id = idCirugiaPqtFinanciero;
                            lCirugiaPersonalQ.AgregarCirugiaPersonalQ(personalPaquete);
                        }
                        personalCirugia.RemoveAt(0);
                    }
                }

            }
        }