protected void btnGuardar_Click(object sender, EventArgs e)
        {
            String cfecLetra , ctipago;
            cfecLetra = txtFecha.Text;
            int nPrvCod = Convert.ToInt32(hdcodper.Value);
            if (rbtdias.Checked)
                ctipago = "D";
            else
                ctipago = "L";
            int cuotas = int.Parse(txtNumCuotas.Text);
            int icodigo, idetcodigo;
            Double monto_total = Double.Parse(lbpago.Text);
            Double monto_nota = Double.Parse(lbresta.Text);
            String moneda;
            moneda = ddlMoneda_new.SelectedValue;
            try
            {
                clsLetra _Letra = new clsLetra();
                letra obj = new letra();
                icodigo = Convert.ToInt32(_Letra.MaxOpeCod() + 1);
                obj.icodigo = icodigo;
                obj.itotcuota = cuotas;
                obj.nmontocuota = Convert.ToDecimal(monto_total);
                obj.cmoneda = moneda;
                obj.nintpag = Convert.ToDecimal(0.00);
                obj.iestado = "1";
                obj.dfeccreacion = Convert.ToDateTime(cfecLetra);
                obj.dfecmod = DateTime.Today;
                obj.ctippago = ctipago;
                obj.nmntnota = Convert.ToDecimal(monto_nota);
                _Letra.fnletraInsertar(obj);
                clsdetletra _detletra = new clsdetletra();

                foreach (GridViewRow row in dgvcuotas.Rows)
                {
                    det_letra _detobj = new det_letra();
                    _detobj.icodletra = icodigo;
                    _detobj.inumletra = Convert.ToInt32(row.Cells[0].Text);
                    TextBox num_let = row.FindControl("num_let") as TextBox;
                    _detobj.cnumletra = num_let.Text;
                    TextBox ccodletra = row.FindControl("cod_unic") as TextBox;
                    _detobj.ccodletra = ccodletra.Text;
                    TextBox monto = row.FindControl("monto") as TextBox;
                    _detobj.nmonto = Convert.ToDecimal(monto.Text);
                    _detobj.cestado = "1";
                    _detobj.ninteres = Convert.ToDecimal(0.00);
                    TextBox txtFecVen = row.FindControl("txtFecVen") as TextBox;
                    _detobj.dfecvenc = Convert.ToDateTime(txtFecVen.Text);
                    _detobj.dfecmod = DateTime.Today;
                    idetcodigo = Convert.ToInt32(_detletra.Maxdetletra_cod()) + 1;
                    _detobj.idetletra = idetcodigo;
                    _detletra.fndet_letraInsertar(_detobj);
                }
                clsDocumenOperacion _docobj = new clsDocumenOperacion();
                DocumenOperacion _docope = new DocumenOperacion();
                Int64 cod_fact;
                foreach (GridViewRow row in dgvListFact.Rows)
                {

                    CheckBox check = row.FindControl("CheckBox1") as CheckBox;
                    if (check.Checked)
                    {
                        cod_fact = Convert.ToInt64(row.Cells[2].Text);
                        //_docope = _docobj.GetListOperaciones(cod_fact );
                        _docope = _docobj.GetDocumenOperaciona(cod_fact);

                        _docope.icodletra = icodigo;
                        _docobj.fnDocOpeUpdate(_docope);
                    }
                }
                Int32 cod_not;
                clsOpeNotas _formnot = new clsOpeNotas();
                Notas _docopenot = new Notas();
                rel_notfactura _relacion = new rel_notfactura();
                clsrel_notfactura _formrel = new clsrel_notfactura();
                dgvNotas.Columns[3].Visible = true;
                dgvNotas.Columns[5].Visible = true;
                foreach (GridViewRow row in dgvNotas.Rows)
                {

                    CheckBox check = row.FindControl("grdchknota") as CheckBox;
                    if (check.Checked)
                    {
                        cod_not = Convert.ToInt32(row.Cells[5].Text);
                        //clsOpeNotas
                        _docopenot = _formnot.GetNota(cod_not);
                        _docopenot.cestadoNota = "V";
                        _docopenot.nmntutilizado = _docopenot.nmontoNota;
                        _formnot.fnNotaUpdate(_docopenot);

                        _relacion.idtpcod = icodigo;
                        _relacion.inota = cod_not;
                        _relacion.nmonto = _docopenot.nmontoNota;
                        _relacion.dfecmod = DateTime.Today;
                        //_relacion .iusrcrc
                        _relacion.irelnotfac = Convert.ToInt32(_formrel.MaxOpeCod()) + 1;
                        _formrel.fnNotaInsert(_relacion);
                    }
                }
                dgvNotas.Columns[3].Visible = false;
                dgvNotas.Columns[5].Visible = false;
                IniciarCampos();

                obj = _Letra.GetLetra(icodigo);
                obj.iestado = "1";
                _Letra.fnletraupdate(obj);
                pnBusqueda.Visible = true;
                pnNuevo.Visible = false;
                IniciarCampos();
                btnProcesar_Click(sender, e);
            }
            catch (Exception ex)
            {
                MessageBox("Error Interno: " + ex.Message);
            }
        }
 /// <summary>
 /// Crear un nuevo objeto letra.
 /// </summary>
 /// <param name="icodigo">Valor inicial de la propiedad icodigo.</param>
 public static letra Createletra(global::System.Int32 icodigo)
 {
     letra letra = new letra();
     letra.icodigo = icodigo;
     return letra;
 }
 /// <summary>
 /// Método desusado para agregar un nuevo objeto al EntitySet letra. Considere la posibilidad de usar el método .Add de la propiedad ObjectSet&lt;T&gt; asociada.
 /// </summary>
 public void AddToletra(letra letra)
 {
     base.AddObject("letra", letra);
 }
        protected void btnProcesar_Click(object sender, EventArgs e)
        {
            string cMensaje = "";
            clsOperaciones lstOperaciones = new clsOperaciones();

            long ndopCod = 0;
            int ntcmCod = 0;
            try
            {
                if (ValidarDatos("OPE", ref cMensaje,"PROC"))
                {
                    if (lblProceso.Value == "NEW")
                    {
                        txtFleteTra.Text = Math.Round(GetNumero(txtSubTotal.Text) / 100, 2).ToString();
                        txtFlete.Text = SetFormatNum(Math.Round(GetNumero(txtSubTotal.Text) / 100, 2));
                        long nOpeCod = lstOperaciones.MaxOpeCod() + 1;
                        lblNroPedido.Text = nOpeCod.ToString().PadLeft(10, '0');
                        txtDesEspec.Text = "0.0";
                    }

                    lstOperaciones.Procesar(this, gcOpeTipo, ref ndopCod, ref ntcmCod);
                    lbldopCod.Value = ndopCod.ToString();
                    lbltcmCod.Value = ntcmCod.ToString();
                    lblOpeEstado.Value = "P";
                    bDetallesChanged = 0;

                    GuardarDtCabeceraDocumento();
                    MessageBox("La Operacion fue Procesada con Exito, Ahora puede imprimir.");
                    //NUEVO:  asigna funcion a botón IMPRIMIR
                    AsignarFuncionBotonImprimir();

                    lblProceso.Value = "EDIT";
                    SetBotones(lblProceso.Value);

                    ConfigurarDocumento();
                     /*generacion automatica de  la letra*/
                    string valor = lblTipoDoc.Value;
                    if (valor == "3" && ddlTipCiclo.SelectedValue == "D" && chkletra.Checked == true)
                    {
                        int cuotas = 1;
                        int icodigo, idetcodigo;
                        Double monto_total = Double.Parse(txtTotal.Text.ToString().Substring(3));
                        Double monto_nota = 0.00;
                        String moneda;
                        try
                        {
                            clsLetra _Letra = new clsLetra();
                            letra obj = new letra();

                            icodigo = Convert.ToInt32(_Letra.MaxOpeCod() + 1);
                            obj.icodigo = icodigo;
                            moneda = ddlMoneda.SelectedValue;
                            obj.icodigo = icodigo;
                            obj.itotcuota = cuotas;
                            obj.nmontocuota = Convert.ToDecimal(monto_total);
                            obj.cmoneda = moneda;
                            obj.nintpag = Convert.ToDecimal(0.00);
                            obj.iestado = "1";
                            obj.dfeccreacion = DateTime.Today;
                            obj.dfecmod = DateTime.Today;
                            obj.ctippago = "D";
                            obj.nmntnota = Convert.ToDecimal(monto_nota);
                            _Letra.fnletraInsertar(obj);
                            clsdetletra _detletra = new clsdetletra();
                            det_letra _detobj = new det_letra();
                            _detobj.icodletra = icodigo;
                            _detobj.inumletra = 1;
                            _detobj.cnumletra = "-";
                            _detobj.ccodletra = "-";
                            _detobj.nmonto = Convert.ToDecimal(monto_total);
                            _detobj.cestado = "1";
                            _detobj.ninteres = Convert.ToDecimal(0.00);
                            _detobj.dfecvenc = Convert.ToDateTime(txtFecha.Text).AddDays(Convert.ToInt16(this.txtCiclo.Text));
                            _detobj.dfecmod = DateTime.Today;
                            idetcodigo = Convert.ToInt32(_detletra.Maxdetletra_cod()) + 1;
                            _detobj.idetletra = idetcodigo;
                            _detletra.fndet_letraInsertar(_detobj);

                            clsDocumenOperacion _docobj = new clsDocumenOperacion();
                            DocumenOperacion _docope = new DocumenOperacion();
                            _docope = _docobj.GetDocumenOperaciona(dopcod_letra);
                            _docope.icodletra = icodigo;
                            _docobj.fnDocOpeUpdate(_docope);

                        }
                        catch (Exception ex)
                        {
                            MessageBox("Error Interno: " + ex.Message);
                        }

                    }
                }
                else
                {
                    MessageBox(cMensaje);
                }
            }
            catch (Exception ex)
            {
                MessageBox("Error Interno: " + ex.Message + ex.InnerException.Message);
            }
        }