public frmProgramacion(int Cliente, String Usuario, bool PermiteDesactivar, SC.enumTipoOperacionProgramacion TipoOperacion, SigaMetClasses.cUserInfo UserInfo, bool ForzarCapturaObservaciones)
        {
            InitializeComponent();
            this.cboPCDiaSemana.CargaDiasSemana();
            _Cliente           = Cliente;
            _PermiteDesactivar = PermiteDesactivar;
            _TipoOperacion     = TipoOperacion;
            _UserInfo          = UserInfo;
            _Usuario           = Usuario;

            _ForzarCapturaObservaciones  = ForzarCapturaObservaciones;
            this.chkProgramacion.Enabled = PermiteDesactivar;

            lstProgramacion.Items.Clear();
            Programacion oPrograma;

            SigaMetClasses.cCliente oCliente;
            oPrograma = new Programacion(_Cliente);

            foreach (Programacion oProg in oPrograma.ProgramacionesAsignadas)
            {
                lstProgramacion.Items.Add(oProg);
                if (_TipoPrograma == "")
                {
                    _TipoPrograma = oProg.Programa.ToString();
                }
            }

            try
            {
                oCliente                               = new SigaMetClasses.cCliente(_Cliente);
                this.lblCliente.Text                   = _Cliente.ToString();
                this.lblNombre.Text                    = oCliente.Nombre;
                this.chkProgramacion.Checked           = oCliente.Programacion;
                this.txtObservacionesProgramacion.Text = oCliente.ObservacionesProgramacion;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, ex.Source, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
//			finally
//			{
//				oCliente.Dispose();
//			}
        }
        private void btnAceptar_Click(object sender, System.EventArgs e)
        {
            String _ObservacionesInactivacion = "";

            if (this.lstProgramacion.Items.Count <= 0)
            {
                chkProgramacion.Checked = false;
            }
            if (!this.chkProgramacion.Checked)
            {
                String strMensaje = "***PRECAUCIÓN***: La programación quedará INACTIVA y su proximo pedido programado será borrado." + (char)13 + "¿Desea continuar?";
                if (MessageBox.Show(strMensaje, this._Titulo, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.No)
                {
                    return;
                }

                //TODO: Forzar la captura de observaciones de inactivación de programación
                if (_ForzarCapturaObservaciones)
                {
                    frmObservacionesInactivacion frmObservacionesInactivacion = new frmObservacionesInactivacion();
                    if (frmObservacionesInactivacion.ShowDialog() == DialogResult.OK)
                    {
                        _ObservacionesInactivacion = frmObservacionesInactivacion.Observaciones;
                        this._SeHaModificado       = true;

                        //'MsgBox(_ObservacionesInactivacion)
                    }
                    else
                    {
                        chkProgramacion.Checked   = true;
                        chkProgramacion.ForeColor = Color.Navy;
                        return;
                    }
                }
            }

            Cursor = Cursors.WaitCursor;

            Programacion oProgramacion;

            SigaMetClasses.cCliente oCliente;
            try
            {
                oProgramacion = new Programacion(_Cliente);
                oProgramacion.ProgramacionesAsignadas.Clear();

                foreach (Programacion oProg in this.lstProgramacion.Items)
                {
                    oProgramacion.ProgramacionesAsignadas.Add(oProg);
                }

                try
                {
                    SigaMetClasses.frmWait oSplash = new SigaMetClasses.frmWait();
                    oSplash.Show();
                    oSplash.Refresh();

                    oProgramacion.Observaciones = _ObservacionesInactivacion;
                    oProgramacion.ActualizaProgramaCliente(this._SeHaModificado, this._UserInfo, _Usuario);

                    oCliente = new SigaMetClasses.cCliente();
                    oCliente.Modifica(_Cliente, this.chkProgramacion.Checked, txtObservacionesProgramacion.Text.Trim(), this._UserInfo, _Usuario, _ObservacionesInactivacion);

//					if(this._SeHaModificado)
//					{
//						oProgramacion.RegistraBitacoraProgramacion(_Usuario, _ObservacionesInactivacion);
//					}

                    oSplash.Close();
                    oSplash.Dispose();

                    MessageBox.Show(SigaMetClasses.Main.M_DATOS_OK, _Titulo, MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.InnerException.Message, ex.Source, MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                this.DialogResult = DialogResult.OK;
            }


            catch (Exception ex)
            {
                MessageBox.Show(ex.InnerException.Message, ex.Source, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                Cursor = Cursors.Default;
                //				if (oCliente != null)
                //				{
                //					oCliente.Dispose();
                //				}
            }
        }