Exemple #1
0
        internal override DtoBase PopulateDto(OracleDataReader reader)
        {
            var profesional = new ProfesionalDto();

            //
            if (!reader.IsDBNull(_ordProId))
            {
                profesional.ProId = reader.GetInt32(_ordProId);
            }
            //
            if (!reader.IsDBNull(_ordProMatricula))
            {
                profesional.ProMatricula = reader.GetInt32(_ordProMatricula);
            }
            //
            if (!reader.IsDBNull(_ordProTelefonoInterno))
            {
                profesional.ProTelefonoInterno = reader.GetString(_ordProTelefonoInterno);
            }
            //
            if (!reader.IsDBNull(_ordProPsnId))
            {
                profesional.ProPsnId = reader.GetInt32(_ordProPsnId);
            }
            // IsNew
            profesional.IsNew = false;

            return(profesional);
        }
Exemple #2
0
        //__________________________________________________________________________
        //  Update Paciente
        public static void GrabarProfesionalUpdate(ref ProfesionalDto profesional, ref string error, ref int errorNro)
        {
            try
            {
                var newDoc = profesional.PsnNroDcto;
                var objPro = ProfesionalDb.ConsultoUnProfesionalPk(profesional.ProId);

                if (newDoc != objPro.PsnNroDcto)
                {
                    var objPacNew = ProfesionalDb.ConsultoUnProfesional(newDoc);//Funciona pancientes y profesional ya busca DNI de personas
                    if (objPacNew == null)
                    {
                        ProfesionalDb.GrabarProfesionalUpdate(ref profesional);
                    }
                    else if (objPro.ProId == objPacNew.ProId)
                    {
                        ProfesionalDb.GrabarProfesionalUpdate(ref profesional);
                    }
                    else
                    {
                        errorNro = -2;
                        error    = " Verifique el DOCUMENTO, ya existe!";
                    }
                }
                else
                {
                    ProfesionalDb.GrabarProfesionalUpdate(ref profesional);
                }


                var objPac = PacienteDb.ConsultoUnPaciente(profesional.PsnNroDcto);

                if (objPac == null)
                {
                    ProfesionalDb.GrabarProfesionalUpdate(ref profesional);
                }
                else
                {
                    errorNro = -2;
                    error    = " Verifique el DOCUMENTO, ya existe!";
                }
            }
            catch (Exception e)
            {
                errorNro = -1;
                error    = " Error Grabar.(Editado)";
            }
        }
Exemple #3
0
        protected void OnSelectedIndexChanged(object sender, EventArgs e)
        {
            var script = "editarProfesional();";

            ScriptManager.RegisterStartupScript(this, typeof(Page), "editarProfesional", script, true);
            var varPro = gvPro.SelectedRow.Cells[0].Text;

            if (!string.IsNullOrEmpty(varPro))
            {
                var pro = new ProfesionalDto();
                pro = ManagerProfesional.ExisteProfesional(varPro);
                if (pro != null)
                {
                    lbl.Text = "Existe";
                    CargarDatosPantalla(pro);
                    PanelPantalla.Visible = true;
                    btnConfirmar.Visible  = true;
                }
            }
        }
Exemple #4
0
 protected void btnConfirmar_Click(object sender, EventArgs e)
 {
     if (Page.IsValid)
     {
         string error = null; string msj = null; int errorNro = 0;
         var    profesional = new ProfesionalDto();
         ObtenerDatosPantalla(profesional);
         var varEstado = Request.QueryString["e"];
         if (varEstado == "N")
         {
             ManagerProfesional.GrabarProfesionalInsert(ref profesional, ref error, ref errorNro);
             msj = "Kinesiólogo Guardado.";
         }
         else if (varEstado == "B")
         {
             ManagerProfesional.GrabarProfesionalUpdate(ref profesional, ref error, ref errorNro);
             msj = "Kinesiólogo Actualizado.";
         }
         if (error == null)
         {
             var script = "showAlert('" + msj + "','1');";
             ScriptManager.RegisterStartupScript(this, typeof(Page), "showAlert", script, true);
             Limpiar();
             var script2 = "ocultarFormProfesional();";
             ScriptManager.RegisterStartupScript(this, typeof(Page), "ocultarFormPaciente", script2, true);
         }
         else
         {
             if (errorNro == -2)
             {
                 var script = "showAlert('" + error + "','3');";
                 ScriptManager.RegisterStartupScript(this, typeof(Page), "showAlert", script, true);
             }
             if (errorNro == -1)
             {
                 var script = "showAlert('" + error + "','2');";
                 ScriptManager.RegisterStartupScript(this, typeof(Page), "showAlert", script, true);
             }
         }
     }
 }
Exemple #5
0
        //__________________________________________________________________________
        //  Insertar Profesional
        public static void GrabarProfesionalInsert(ref ProfesionalDto profesional, ref string error, ref int errorNro)
        {
            try
            {
                var objPac = ProfesionalDb.ConsultoUnProfesional(profesional.PsnNroDcto);

                if (objPac == null)
                {
                    ProfesionalDb.GrabarProfesionalInsert(ref profesional);
                }
                else
                {
                    errorNro = -2;
                    error    = " Verifique el DOCUMENTO, ya existe!";
                }
            }
            catch (Exception e)
            {
                errorNro = -1;
                error    = " Error Grabar.(Nuevo)";
            }
        }
Exemple #6
0
        private void ObtenerDatosPantalla(ProfesionalDto profesional)
        {
            #region  Persona -----------------------------------------

            string aux;
            profesional.PsnNroDcto = txtDocumento.Value;
            if (!string.IsNullOrEmpty(txtNombre.Value))
            {
                aux = txtNombre.Value; profesional.PsnNombre = aux.ToUpper();
            }
            if (!string.IsNullOrEmpty(txtApellido.Value))
            {
                aux = txtApellido.Value; profesional.PsnApellido = aux.ToUpper();
            }
            profesional.PsnFechaNac = txtFecNac.Value;
            profesional.PsnTelefono = txtTel.Value;
            if (!string.IsNullOrEmpty(txtDire.Value))
            {
                aux = txtDire.Value; profesional.PsnDomicilio = aux.ToUpper();
            }
            if (!string.IsNullOrEmpty(txtMail.Value))
            {
                aux = txtMail.Value; profesional.PsnEmail = aux.ToUpper();
            }
            if (rbM.Checked)
            {
                profesional.PsnSexo = "M";
            }
            else if (rbF.Checked)
            {
                profesional.PsnSexo = "F";
            }
            profesional.ProActivo = "S";

            #endregion

            #region Matriculas --------------------------------------
            if (ViewState["DadaTableMat"] != null)
            {
                var dtMat          = (DataTable)ViewState["DadaTableMat"];
                var listaMatricula = new List <ProfesionalMatriculaDto>();
                foreach (DataRow dtRow in dtMat.Rows)
                {
                    var matricula = new ProfesionalMatriculaDto();
                    if (!DBNull.Value.Equals(dtRow[0]))
                    {
                        matricula.PmtId = Convert.ToInt32(dtRow[0].ToString());
                    }
                    matricula.PmtMttId = Convert.ToInt32(dtRow[1].ToString());
                    if (!DBNull.Value.Equals(dtRow["PMTNRO"]))
                    {
                        matricula.PmtNro = dtRow["PMTNRO"].ToString();
                    }
                    listaMatricula.Add(matricula);
                }
                profesional.ProListMatriculas = listaMatricula;
            }
            #endregion

            #region Especialidades ----------------------------------

            profesional.ProListEspecialidades = listaEspecialidades;

            #endregion

            #region Agenda ------------------------------------------
            if (ViewState["DataTableAge"] != null)
            {
                var dtAge       = (DataTable)ViewState["DataTableAge"];
                var listaAgenda = new List <AgendaDto>();
                foreach (DataRow dtRow in dtAge.Rows)
                {
                    var agenda = new AgendaDto();
                    if (!DBNull.Value.Equals(dtRow[0]))
                    {
                        agenda.AgeId = Convert.ToInt32(dtRow[0].ToString());
                    }
                    agenda.AgeDiaId = Convert.ToInt32(dtRow[1].ToString());
                    // Descripcion del tipo de dia = dtRow[2].ToString()
                    agenda.AgeHoraDesde = dtRow[3].ToString();
                    agenda.AgeHoraHasta = dtRow[4].ToString();
                    listaAgenda.Add(agenda);
                }
                profesional.ProListAgenda = listaAgenda;
            }
            #endregion

            var varEstado = Request.QueryString["e"];
            if (varEstado == "B")
            {
                if (lblProId != null)
                {
                    profesional.ProId = Convert.ToInt32(lblProId.Text);
                }
                if (lblPsnId != null)
                {
                    profesional.PsnId = Convert.ToInt32(lblPsnId.Text);
                }

                var opcionSeleccionada = ddlEstado.SelectedItem.ToString();
                if (opcionSeleccionada == "NO")
                {
                    profesional.ProActivo = "N";
                }
                else
                {
                    profesional.ProActivo = "S";
                }
            }
        }
Exemple #7
0
        private void CargarDatosPantalla(ProfesionalDto profesional)
        {
            #region  Persona ----------------------------------------

            lblPsnId.Text = profesional.PsnId.ToString();

            txtDocumento.Value = profesional.PsnNroDcto;
            txtNombre.Value    = profesional.PsnNombre;
            txtApellido.Value  = profesional.PsnApellido;
            txtFecNac.Value    = profesional.PsnFechaNac;
            txtTel.Value       = profesional.PsnTelefono;
            txtDire.Value      = profesional.PsnDomicilio;
            txtMail.Value      = profesional.PsnEmail;
            switch (profesional.PsnSexo)
            {
            case "M":
                rbM.Checked = true;
                rbF.Checked = false;
                break;

            case "F":
                rbM.Checked = false;
                rbF.Checked = true;
                break;
            }

            #endregion

            #region  Profesional ------------------------------------

            lblProId.Text = profesional.ProId.ToString();

            #endregion

            #region Especialidad ---------------------------

            for (var i = 0; i < arregloCheckBoxs.Count(); i++)
            {
                arregloCheckBoxs[i].Checked = false;
            }

            var listaespecialPeorfesional = ManagerEspecialidades.ListEspecialidadProfesional(profesional.ProId);
            for (var i = 0; i < arregloCheckBoxs.Count(); i++)
            {
                foreach (var le in listaespecialPeorfesional)
                {
                    var varEsp = arregloCheckBoxs[i].ID;
                    varEsp = varEsp.Substring(varEsp.Length - 2, 2);

                    if (Convert.ToInt32(varEsp) == le.EspId)
                    {
                        arregloCheckBoxs[i].Checked = true;

                        var especial = new ProfesionalEspecialidadesDto();
                        especial.PepEpcId = Convert.ToInt32(varEsp);
                        listaEspecialidades.Add(especial);
                    }
                }
            }

            #endregion

            #region Matricula --------------------------------------
            try
            {
                MatriculaIniFila();
                var dtMat          = (DataTable)ViewState["DadaTableMat"];
                var listaMat       = ManagerProfesionalMatriculas.ListProfesionalMatricula(profesional.ProId);
                var dtCurrentTable = (DataTable)ViewState["DadaTableMat"];
                foreach (var lm in listaMat)
                {
                    DataRow drCurrentRow;
                    drCurrentRow = dtCurrentTable.NewRow();

                    drCurrentRow["PMT_MTTID"]      = lm.PmtMttId;
                    drCurrentRow["MTTDESCRIPCION"] = lm.MttDescripcion;
                    if (!string.IsNullOrEmpty(lm.PmtNro))
                    {
                        drCurrentRow["PMTNRO"] = lm.PmtNro;
                    }
                    else
                    {
                        drCurrentRow["PMTNRO"] = "0";
                    }
                    dtCurrentTable.Rows.Add(drCurrentRow);
                    ViewState["DadaTableMat"] = dtCurrentTable;
                }
                gvMat.DataSource = dtMat;
                gvMat.DataBind();
            }
            catch (Exception e)
            {
                var script = "showAlert('Error al cargar Matrícula','2');";
                ScriptManager.RegisterStartupScript(this, typeof(Page), "showAlert", script, true);
            }
            #endregion

            #region Agenda -----------------------------------------
            try
            {
                AgendaIniFila();
                var dtAge          = (DataTable)ViewState["DataTableAge"];
                var listaAge       = ManagerAgendas.ListAgendaProfesional(profesional.ProId);
                var dtCurrentTable = (DataTable)ViewState["DataTableAge"];
                foreach (var la in listaAge)
                {
                    DataRow drCurrentRow;
                    drCurrentRow = dtCurrentTable.NewRow();

                    drCurrentRow[1] = la.AgeDiaId;
                    drCurrentRow[2] = la.DiaDescripcion;
                    drCurrentRow[3] = la.AgeHoraDesde;
                    drCurrentRow[4] = la.AgeHoraHasta;

                    dtCurrentTable.Rows.Add(drCurrentRow);
                    ViewState["DataTableAge"] = dtCurrentTable;
                }
                gvAgenda.DataSource = dtAge;
                gvAgenda.DataBind();
            }
            catch (Exception e)
            {
                var script = "showAlert('Error al cargar Agenda','2');";
                ScriptManager.RegisterStartupScript(this, typeof(Page), "showAlert", script, true);
            }
            #endregion
        }
Exemple #8
0
        internal override DtoBase PopulateDto(OracleDataReader reader)
        {
            var profesional = new ProfesionalDto();

            //
            if (!reader.IsDBNull(_ordProId))
            {
                profesional.ProId = reader.GetInt32(_ordProId);
            }
            //
            if (!reader.IsDBNull(_ordProPsnId))
            {
                profesional.ProPsnId = reader.GetInt32(_ordProPsnId);
            }
            //
            if (!reader.IsDBNull(_ordProActivo))
            {
                profesional.ProActivo = reader.GetString(_ordProActivo);
            }
            // Profesional - Persona
            if (!reader.IsDBNull(_ordPsnId))
            {
                profesional.PsnId = reader.GetInt32(_ordPsnId);
            }
            //
            if (!reader.IsDBNull(_ordPsnTpdId))
            {
                profesional.PsnTpdId = reader.GetInt32(_ordPsnTpdId);
            }
            //
            if (!reader.IsDBNull(_ordPsnNroDcto))
            {
                profesional.PsnNroDcto = reader.GetString(_ordPsnNroDcto);
            }
            //
            if (!reader.IsDBNull(_ordPsnNombre))
            {
                profesional.PsnNombre = reader.GetString(_ordPsnNombre);
            }
            //
            if (!reader.IsDBNull(_ordPsnApellido))
            {
                profesional.PsnApellido = reader.GetString(_ordPsnApellido);
            }
            //
            if (!reader.IsDBNull(_ordPsnFechaNac))
            {
                profesional.PsnFechaNac = reader.GetString(_ordPsnFechaNac);
            }
            //
            if (!reader.IsDBNull(_ordPsnTelefono))
            {
                profesional.PsnTelefono = reader.GetString(_ordPsnTelefono);
            }
            //
            if (!reader.IsDBNull(_ordPsnEmail))
            {
                profesional.PsnEmail = reader.GetString(_ordPsnEmail);
            }
            //
            if (!reader.IsDBNull(_ordPsnSexo))
            {
                profesional.PsnSexo = reader.GetString(_ordPsnSexo);
            }
            //
            if (!reader.IsDBNull(_ordPsnDomId))
            {
                profesional.PsnDomId = reader.GetInt32(_ordPsnDomId);
            }
            //
            if (!reader.IsDBNull(_ordPsnDomicilio))
            {
                profesional.PsnDomicilio = reader.GetString(_ordPsnDomicilio);
            }
            // IsNew
            profesional.IsNew = false;

            return(profesional);
        }
Exemple #9
0
        //________________________________________________________________________________________________________
        // Update Profesional
        public static void GrabarProfesionalUpdate(ref ProfesionalDto profesional)
        {
            try
            {
                var con = GetConn();
                con.Open();
                var tran = con.BeginTransaction();

                #region UPDATE PERSONA  -------------------------------------------------------------------

                var cmdPer = new OracleCommand("PRC_PERSONA_UPDATE")
                {
                    CommandType = CommandType.StoredProcedure,
                    Connection  = con
                };
                cmdPer.Parameters.Add(CreateParameter("iPSNID", profesional.PsnId));                   //NUMBER
                cmdPer.Parameters.Add(CreateParameter("iPSNNRODCTO", profesional.PsnNroDcto, 9));      //VARCHAR
                cmdPer.Parameters.Add(CreateParameter("iPSNNOMBRE", profesional.PsnNombre, 45));       //VARCHAR
                cmdPer.Parameters.Add(CreateParameter("iPSNAPELLIDO", profesional.PsnApellido, 45));   //VARCHAR
                cmdPer.Parameters.Add(CreateParameter("iPSNFECHANAC", profesional.PsnFechaNac, 12));   //VARCHAR
                cmdPer.Parameters.Add(CreateParameter("iPSNTELEFONO", profesional.PsnTelefono, 20));   //VARCHAR
                cmdPer.Parameters.Add(CreateParameter("iPSNSEXO", profesional.PsnSexo, 1));            //VARCHAR
                cmdPer.Parameters.Add(CreateParameter("iPSNEMAIL", profesional.PsnEmail, 100));        //VARCHAR
                cmdPer.Parameters.Add(CreateParameter("iPSNDOMICILIO", profesional.PsnDomicilio, 50)); //VARCHAR

                cmdPer.Transaction = tran;
                cmdPer.ExecuteNonQuery();

                #endregion

                #region UPDATE PROFESIONAL ----------------------------------------------------------------

                /*NADA PARA ACTUALIZAR*/

                #endregion

                #region UPDATE ESPECIALIDADES -------------------------------------------------------------
                OracleCommand cmdEsp = null;
                //---------------------------------------------------------
                cmdEsp = new OracleCommand("PRC_PROFESIONALESP_DELETE")
                {
                    CommandType = CommandType.StoredProcedure,
                    Connection  = con
                };
                cmdEsp.Parameters.Add(CreateParameter("iPEP_PROID", profesional.ProId)); //NUMBER
                cmdEsp.Transaction = tran;
                cmdEsp.ExecuteNonQuery();                                                //EJECUTO CONSULTA
                //---------------------------------------------------------
                foreach (var oPe in profesional.ProListEspecialidades)
                {
                    cmdEsp = new OracleCommand("PRC_PROFESIONALESP_INSERT")
                    {
                        CommandType = CommandType.StoredProcedure,
                        Connection  = con
                    };
                    cmdEsp.Parameters.Add(CreateParameter("iPEP_PROID", profesional.ProId)); //NUMBER
                    cmdEsp.Parameters.Add(CreateParameter("iPEP_EPCID", oPe.PepEpcId));      //NUMBER

                    cmdEsp.Transaction = tran;
                    cmdEsp.ExecuteNonQuery();//EJECUTO CONSULTA
                }
                #endregion

                #region UPDATE MATRICULAS -----------------------------------------------------------------
                OracleCommand cmdMat = null;
                //---------------------------------------------------------
                cmdMat = new OracleCommand("PRC_PROFESIONALMAT_DELETE")
                {
                    CommandType = CommandType.StoredProcedure,
                    Connection  = con
                };
                cmdMat.Parameters.Add(CreateParameter("iPMT_PROID", profesional.ProId)); //NUMBER
                cmdMat.Transaction = tran;
                cmdMat.ExecuteNonQuery();                                                //EJECUTO CONSULTA
                //---------------------------------------------------------
                foreach (var oPm in profesional.ProListMatriculas)
                {
                    cmdMat = new OracleCommand("PRC_PROFESIONALMAT_INSERT")
                    {
                        CommandType = CommandType.StoredProcedure,
                        Connection  = con
                    };
                    cmdMat.Parameters.Add(CreateParameter("iPMT_PROID", profesional.ProId)); //NUMBER
                    cmdMat.Parameters.Add(CreateParameter("iPMT_MTTID", oPm.PmtMttId));      //NUMBER
                    cmdMat.Parameters.Add(CreateParameter("iPMTNRO", oPm.PmtNro, 45));       //VARCHAR

                    cmdMat.Transaction = tran;
                    cmdMat.ExecuteNonQuery();
                }
                #endregion

                #region UPDATE AGENDA ---------------------------------------------------------------------
                OracleCommand cmdAge = null;
                //---------------------------------------------------------
                cmdAge = new OracleCommand("PRC_PROFESIONALAGE_DELETE")
                {
                    CommandType = CommandType.StoredProcedure,
                    Connection  = con
                };
                cmdAge.Parameters.Add(CreateParameter("iAGE_PROID", profesional.ProId)); //NUMBER
                cmdAge.Transaction = tran;
                cmdAge.ExecuteNonQuery();                                                //EJECUTO CONSULTA
                //---------------------------------------------------------
                foreach (var oPa in profesional.ProListAgenda)
                {
                    cmdAge = new OracleCommand("PRC_PROFESIONALAGE_INSERT")
                    {
                        CommandType = CommandType.StoredProcedure,
                        Connection  = con
                    };
                    cmdAge.Parameters.Add(CreateParameter("iAGE_PROID", profesional.ProId));       //NUMBER
                    cmdAge.Parameters.Add(CreateParameter("iAGE_DIAID", oPa.AgeDiaId));            //NUMBER
                    cmdAge.Parameters.Add(CreateParameter("iAGEHORADESDE", oPa.AgeHoraDesde, 15)); //DATETIME
                    cmdAge.Parameters.Add(CreateParameter("iAGEHORAHASTA", oPa.AgeHoraHasta, 15)); //DATETIME

                    cmdAge.Transaction = tran;
                    cmdAge.ExecuteNonQuery();
                }
                #endregion

                tran.Commit();//COMMIT LA TRANSACCION

                #region Cerrar Conexiones
                cmdPer.Connection.Close();//CERRAR
                cmdPer.Connection.Dispose();

                cmdEsp.Connection.Close();//CERRAR
                cmdEsp.Connection.Dispose();

                cmdMat.Connection.Close();//CERRAR
                cmdMat.Connection.Dispose();

                cmdAge.Connection.Close();//CERRAR
                cmdAge.Connection.Dispose();
                #endregion
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Exemple #10
0
        //________________________________________________________________________________________________________
        // Insert Profesional
        public static void GrabarProfesionalInsert(ref ProfesionalDto profesional)
        {
            try
            {
                var con = GetConn();
                con.Open();
                var tran = con.BeginTransaction();

                #region INSERT PERSONA  -------------------------------------------------------------------

                var cmdPer = new OracleCommand("PRC_PERSONA_INSERT")
                {
                    CommandType = CommandType.StoredProcedure,
                    Connection  = con
                };

                cmdPer.Parameters.Add(CreateParameter("iPSNNRODCTO", profesional.PsnNroDcto, 9));      //VARCHAR
                cmdPer.Parameters.Add(CreateParameter("iPSNNOMBRE", profesional.PsnNombre, 45));       //VARCHAR
                cmdPer.Parameters.Add(CreateParameter("iPSNAPELLIDO", profesional.PsnApellido, 45));   //VARCHAR
                cmdPer.Parameters.Add(CreateParameter("iPSNFECHANAC", profesional.PsnFechaNac, 12));   //VARCHAR
                cmdPer.Parameters.Add(CreateParameter("iPSNTELEFONO", profesional.PsnTelefono, 20));   //VARCHAR
                cmdPer.Parameters.Add(CreateParameter("iPSNSEXO", profesional.PsnSexo, 1));            //VARCHAR
                cmdPer.Parameters.Add(CreateParameter("iPSNEMAIL", profesional.PsnEmail, 100));        //VARCHAR
                cmdPer.Parameters.Add(CreateParameter("iPSNDOMICILIO", profesional.PsnDomicilio, 50)); //VARCHAR
                cmdPer.Parameters.Add(CrearParametroSalida("oPSNID", OracleDbType.Int32));             //NUMBER

                cmdPer.Transaction = tran;
                cmdPer.ExecuteNonQuery();

                var varPsnid = cmdPer.Parameters["oPSNID"].Value;
                profesional.ProPsnId = Convert.ToInt16(varPsnid.ToString());

                #endregion

                #region INSERT PROFESIONAL ----------------------------------------------------------------

                var cmdPro = new OracleCommand("PRC_PROFESIONAL_INSERT");
                cmdPro.CommandType = CommandType.StoredProcedure;
                cmdPro.Connection  = con;

                cmdPro.Parameters.Add(CreateParameter("iPRO_PSNID", profesional.ProPsnId)); //NUMBER
                cmdPro.Parameters.Add(CrearParametroSalida("oPROID", OracleDbType.Int32));  //NUMBER

                cmdPro.Transaction = tran;
                cmdPro.ExecuteNonQuery();//EJECUTO CONSULTA

                var varProid = cmdPro.Parameters["oPROID"].Value;
                profesional.ProId = Convert.ToInt16(varProid.ToString());

                #endregion

                #region INSERT ESPECIALIDADES -------------------------------------------------------------
                OracleCommand cmdEsp = null;
                foreach (var oPe in profesional.ProListEspecialidades)
                {
                    cmdEsp = new OracleCommand("PRC_PROFESIONALESP_INSERT")
                    {
                        CommandType = CommandType.StoredProcedure,
                        Connection  = con
                    };
                    cmdEsp.Parameters.Add(CreateParameter("iPEP_PROID", profesional.ProId)); //NUMBER
                    cmdEsp.Parameters.Add(CreateParameter("iPEP_ESPID", oPe.PepEpcId));      //NUMBER

                    cmdEsp.Transaction = tran;
                    cmdEsp.ExecuteNonQuery();//EJECUTO CONSULTA
                }
                #endregion

                #region INSERT MATRICULAS -----------------------------------------------------------------
                OracleCommand cmdMat = null;
                foreach (var oPm in profesional.ProListMatriculas)
                {
                    cmdMat = new OracleCommand("PRC_PROFESIONALMAT_INSERT")
                    {
                        CommandType = CommandType.StoredProcedure,
                        Connection  = con
                    };
                    cmdMat.Parameters.Add(CreateParameter("iPMT_PROID", profesional.ProId)); //NUMBER
                    cmdMat.Parameters.Add(CreateParameter("iPMT_MTTID", oPm.PmtMttId));      //NUMBER
                    cmdMat.Parameters.Add(CreateParameter("iPMTNRO", oPm.PmtNro, 45));       //VARCHAR

                    cmdMat.Transaction = tran;
                    cmdMat.ExecuteNonQuery();
                }
                #endregion

                #region INSERT AGENDA ---------------------------------------------------------------------
                OracleCommand cmdAge = null;
                foreach (var oPa in profesional.ProListAgenda)
                {
                    cmdAge = new OracleCommand("PRC_PROFESIONALAGE_INSERT")
                    {
                        CommandType = CommandType.StoredProcedure,
                        Connection  = con
                    };
                    cmdAge.Parameters.Add(CreateParameter("iAGE_PROID", profesional.ProId));       //NUMBER
                    cmdAge.Parameters.Add(CreateParameter("iAGE_DIAID", oPa.AgeDiaId));            //NUMBER
                    cmdAge.Parameters.Add(CreateParameter("iAGEHORADESDE", oPa.AgeHoraDesde, 15)); //DATETIME
                    cmdAge.Parameters.Add(CreateParameter("iAGEHORAHASTA", oPa.AgeHoraHasta, 15)); //

                    cmdAge.Transaction = tran;
                    cmdAge.ExecuteNonQuery();
                }
                #endregion

                tran.Commit();//COMMIT LA TRANSACCION

                #region Cerrar Conexiones
                cmdPer.Connection.Close();//CERRAR
                cmdPer.Connection.Dispose();

                cmdPro.Connection.Close();//CERRAR
                cmdPro.Connection.Dispose();

                if (cmdEsp != null)
                {
                    cmdEsp.Connection.Close();//CERRAR
                    cmdEsp.Connection.Dispose();
                }
                if (cmdMat != null)
                {
                    cmdMat.Connection.Close();//CERRAR
                    cmdMat.Connection.Dispose();
                }
                if (cmdAge != null)
                {
                    cmdAge.Connection.Close();//CERRAR
                    cmdAge.Connection.Dispose();
                }
                #endregion
            }
            catch (Exception e)
            {
                throw e;
            }
        }