private void btnGuardar_Click(object sender, EventArgs e)
        {
            //if(MessageBox.Show("¿Está seguro de guardar los cambios?", "Adevertencia", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes)
            if (FlatMessageBox.Show("¿Está seguro de guardar los cambios?", "SI", "NO", FlatMessageBoxIcon.Warning) == DialogResult.Yes)
            {
                LogicaCC.Logica.UsuarioData AUsuarioData = LogicaCC.Logica.UsuarioData.Instancia;
                //RECORREMOS LA LISTA PARA GUARDAR LOS REGISTROS DE LAS OBLIGACIONES MARCADAS
                foreach (Control control in this.pnlListaObligaciones.Controls)
                {
                    if (control is LollipopCheckBox)
                    {
                        LollipopCheckBox checkbox = control as LollipopCheckBox;
                        if (checkbox.Checked)
                        {
                            new RegistroObligacion().insertarRegistroObligacion(new RegistroObligacion()
                            {
                                iIdUsuarioRegistra   = int.Parse(AUsuarioData.sIdusuario),
                                iIdDetalleObligacion = int.Parse(checkbox.Name),
                                iIdCliente           = Cliente.iIdCliente
                            });

                            if (checkbox.Name == "427")
                            {
                                bISRH = true;
                            }

                            if (checkbox.Name == "461")
                            {
                                bISRA = true;
                            }
                        }
                    }
                }

                if (bISRH || bISRA)
                {
                    btnVHonorarios.Visible    = false;
                    btnVArrendamiento.Visible = false;
                    btnVAsimilados.Visible    = false;
                    btnVEnajenaBienes.Visible = false;
                    btnVEnajenaBolsa.Visible  = false;
                    btnVAdquiBienes.Visible   = false;
                    btnVIngresosInt.Visible   = false;
                    btnVObtePremios.Visible   = false;
                    btnVIngDividendos.Visible = false;
                    btnVOtrosIngresos.Visible = false;


                    //btnAsimilados.Visible	= false;
                    btnHonorarios.Visible    = true;
                    btnArrendamiento.Visible = true;

                    btnGuardarISR.Location = btnGuardar.Location;
                    btnGuardarISR.Visible  = true;
                    btnGuardar.Visible     = false;
                    cargarObligacionesISN(txtCliente.Text, Cliente.iIdCliente);
                }
                else
                {
                    FlatMessageBox.Show("Cambios Guardados Correctamente", "OK", string.Empty, FlatMessageBoxIcon.Information);

                    EstadoControles(false);
                    lblNombre.Text            = "--";
                    lblRfc.Text               = "--";
                    lblTelefono.Text          = "--";
                    lblCelular.Text           = "--";
                    lblExtension.Text         = "--";
                    lblCorreoElectronico.Text = "--";
                    materialLabel2.Visible    = false;
                    btnHonorarios.Visible     = false;
                    btnArrendamiento.Visible  = false;
                    btnAsimilados.Visible     = false;

                    pnlListaObligaciones.Controls.Clear();
                    txtCliente.Clear();
                    txtCliente.Focus();
                }
            }
        }
        void cargarObligacionesISN(string sCliente, int iIdCliente)
        {
            //OBTIENE UNA LISTA DE OBLIGACIONES CORRESPONDIENTES A AL REGIMEN DONDE SE ENCUENTRA EL CLIENTE
            DetalleObligacion obligacion = new DetalleObligacion();

            obligacionesAsignadas = obligacion.listaObligaciones(sCliente);

            if (obligacionesAsignadas.Count > 0)
            {
                pnlListaObligaciones.Controls.Clear();
                //CREA UNA LISTA DINAMICA DE OBLIGACIONES FISCALES
                List <DetalleObligacion> obligaciones = new DetalleObligacion().GetListObligacionesISR(16, 17);
                for (int i = 0; i < obligaciones.Count; i++)
                {
                    MaterialSkin.Controls.MaterialLabel lblObligacion = new MaterialSkin.Controls.MaterialLabel();
                    lblObligacion.Location     = new Point(2, 28 * i + 20);
                    lblObligacion.Text         = string.Format("{0}. {1}", (i + 1).ToString(), obligaciones[i].sDetalleObligacion);
                    lblObligacion.Width        = 400;
                    lblObligacion.AutoEllipsis = true;

                    DevExpress.XtraEditors.SeparatorControl separador = new DevExpress.XtraEditors.SeparatorControl();
                    separador.LineOrientation = Orientation.Horizontal;
                    separador.Size            = new Size(590, 18);                                  // 937, 18
                    separador.Location        = new Point(365, lblObligacion.Location.Y + 15);

                    pnlListaObligaciones.Controls.Add(separador);

                    pnlListaObligaciones.Controls.Add(lblObligacion);
                    lblObligacion.BringToFront();

                    int iDistancia = 480;                     // 600


                    if (obligaciones[i].iR01 != null)
                    {
                        LollipopCheckBox chkbR1 = new LollipopCheckBox();
                        chkbR1.Name       = obligaciones[i].iR01.Value.ToString();
                        chkbR1.Location   = new Point(iDistancia, lblObligacion.Location.Y);
                        chkbR1.Text       = "";
                        chkbR1.Size       = new Size(20, 20);
                        chkbR1.Cursor     = Cursors.Hand;
                        chkbR1.CheckColor = "#5d4037";

                        //VALIDA SI EL CLIENTE TIENE UNA OBLIGACIÓN ASIGNADA, SE MARCA EL CHECK
                        bool validar = false;
                        validar = new DetalleObligacion().validarObligacion(obligaciones[i].iR01.Value, iIdCliente);
                        if (validar != true)
                        {
                            chkbR1.Checked = false;
                        }
                        else
                        {
                            chkbR1.Checked = true;
                        }

                        pnlListaObligaciones.Controls.Add(chkbR1);
                        chkbR1.BringToFront();
                    }
                    iDistancia = iDistancia + 200;

                    if (obligaciones[i].iR02 != null)
                    {
                        LollipopCheckBox chkbR2 = new LollipopCheckBox();
                        chkbR2.Name       = obligaciones[i].iR02.Value.ToString();
                        chkbR2.Location   = new Point(iDistancia, lblObligacion.Location.Y);
                        chkbR2.Text       = "";
                        chkbR2.Size       = new Size(20, 20);
                        chkbR2.Cursor     = Cursors.Hand;
                        chkbR2.CheckColor = "#558b2f";

                        //VALIDA SI EL CLIENTE TIENE UNA OBLIGACIÓN ASIGNADA, SE MARCA EL CHECK
                        bool validar = false;
                        validar = new DetalleObligacion().validarObligacion(obligaciones[i].iR02.Value, iIdCliente);
                        if (validar != true)
                        {
                            chkbR2.Checked = false;
                        }
                        else
                        {
                            chkbR2.Checked = true;
                        }

                        pnlListaObligaciones.Controls.Add(chkbR2);
                        chkbR2.BringToFront();
                    }
                    iDistancia = iDistancia + 200;

                    if (obligaciones[i].iR03 != null)
                    {
                        LollipopCheckBox chkbR3 = new LollipopCheckBox();
                        chkbR3.Name       = obligaciones[i].iR03.Value.ToString();
                        chkbR3.Location   = new Point(iDistancia, lblObligacion.Location.Y);
                        chkbR3.Text       = "";
                        chkbR3.Size       = new Size(20, 20);
                        chkbR3.Cursor     = Cursors.Hand;
                        chkbR3.CheckColor = "#0277bd";

                        //VALIDA SI EL CLIENTE TIENE UNA OBLIGACIÓN ASIGNADA, SE MARCA EL CHECK
                        bool validar = false;
                        validar = new DetalleObligacion().validarObligacion(obligaciones[i].iR03.Value, iIdCliente);
                        if (validar != true)
                        {
                            chkbR3.Checked = false;
                        }
                        else
                        {
                            chkbR3.Checked = true;
                        }

                        pnlListaObligaciones.Controls.Add(chkbR3);
                        chkbR3.BringToFront();
                    }

                    separador.SendToBack();

                    pnlListaObligaciones.AutoScroll = true;
                }
            }
            else
            {
                Label lblNotifica = new Label();
                lblNotifica.Text      = string.Format("No Se Encontraron{0}Obligaciones Fiscales Asignadas.", Environment.NewLine);
                lblNotifica.Location  = new Point(380, 120);
                lblNotifica.Font      = new Font("Segoe UI", 13);
                lblNotifica.Width     = 180;
                lblNotifica.Height    = 100;
                lblNotifica.ForeColor = Color.FromArgb(200, 200, 200);  //105
                lblNotifica.TextAlign = ContentAlignment.MiddleCenter;
                pnlListaObligaciones.Controls.Add(lblNotifica);
            }
        }