void MoverDatos(BO.Models.TarifasEspeciales MyComp, bool pbConsulta)
 {
     //else if(ctr.Tag == MyComp.COM_DESCRIPCION)
     foreach (Control ctr in tabMant.Controls)
     {
         ProcesaSubControles(ctr, ref MyComp, pbConsulta);
     }
 }
        void ProcesaSubControles(Control pControl, ref BO.Models.TarifasEspeciales MyComp, bool pbConsulta)
        {
            foreach (Control ctr in pControl.Controls)
            {
                if (ctr.Controls.Count > 0)
                {
                    ProcesaSubControles(ctr, ref MyComp, pbConsulta);
                }


                if (ctr.Tag == null)
                {
                    continue;
                }


                switch (ctr.Tag.ToString())
                {
                case "CTE_ID":
                    if (pbConsulta)
                    {
                        ((TextBox)ctr).Text = MyComp.CTE_ID.ToString();
                    }
                    else
                    {
                        MyComp.CTE_ID = Convert.ToInt32(((TextBox)ctr).Text);
                    }
                    break;

                case "TAR_ESP_ID":
                    if (pbConsulta)
                    {
                        ((TextBox)ctr).Text = MyComp.TAR_ESP_ID.ToString();
                    }

                    break;

                case "PROD_ID":
                    if (pbConsulta)
                    {
                        ((ComboBox)ctr).SelectedValue = MyComp.PROD_ID;
                    }
                    else
                    {
                        MyComp.PROD_ID = Convert.ToInt32(((ComboBox)ctr).SelectedValue);
                    }
                    break;

                case "CARGO_PROD_ID":
                    if (pbConsulta)
                    {
                        ((ComboBox)ctr).SelectedValue = MyComp.CARGO_PROD_ID;
                    }
                    else
                    {
                        MyComp.CARGO_PROD_ID = Convert.ToInt32(((ComboBox)ctr).SelectedValue);
                    }
                    break;

                case "FECHA_DESDE":
                    if (pbConsulta)
                    {
                        ((DateTimePicker)ctr).Value = MyComp.FECHA_DESDE;
                    }
                    else
                    {
                        MyComp.FECHA_DESDE = ((DateTimePicker)ctr).Value;
                    }
                    break;

                case "FECHA_HASTA":
                    //Adicional   Porcentaje  Sin Tope
                    if (pbConsulta)
                    {
                        ((DateTimePicker)ctr).Value = MyComp.FECHA_HASTA;
                    }
                    else
                    {
                        MyComp.FECHA_HASTA = ((DateTimePicker)ctr).Value;
                    }

                    break;

                case "ACTIVO":
                    if (pbConsulta)
                    {
                        ((CheckBox)ctr).Checked = MyComp.ACTIVO;
                    }
                    else
                    {
                        MyComp.ACTIVO = ((CheckBox)ctr).Checked;
                    }
                    break;
                }
            }
        }
        bool SalvarDatos()
        {
            int  iId      = -1;
            bool bRetorno = false;

            //CompaniasRecord oCom = new CompaniasRecord();


            BO.Models.TarifasEspeciales oCom;


            if (usrbntMant1.bAdiciona == false)
            {
                //iId = Convert.ToInt32(this.textCargoId.Text);
                oCom = unitOfWork.TarifasEspecialesRepository.GetByID(_Id);
            }
            else
            {
                oCom = new BO.Models.TarifasEspeciales();
            }


            MoverDatos(oCom, false);

            try
            {
                if (usrbntMant1.bAdiciona == false)
                {
                    unitOfWork.TarifasEspecialesRepository.Update(oCom);
                }
                else
                {
                    unitOfWork.TarifasEspecialesRepository.Insert(oCom);
                }

                unitOfWork.Save();
                bRetorno           = true;
                usrbntMant1.bExito = true;
            }
            catch (System.Data.Entity.Validation.DbEntityValidationException e)
            {
                foreach (var eve in e.EntityValidationErrors)
                {
                    string s = "";

                    /*
                     * Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                     *  eve.Entry.Entity.GetType().Name, eve.Entry.State);
                     */


                    foreach (var ve in eve.ValidationErrors)
                    {
                        s += ve.ErrorMessage + "\n";

                        /*Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                         *  ve.PropertyName, ve.ErrorMessage);*/
                    }
                    MessageBox.Show("Existen los siguientes errores:" + s, "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                //throw;
            }
            catch (DataException ex)
            {
                throw ex;
            }


            return(bRetorno);
        }