public decimal fnnextDeuda(int cod_Det)
        {
            clsdetletra form = new clsdetletra();
            det_letra obj = new det_letra();
            obj = form.GetDetLetra(cod_Det);

            return Convert.ToDecimal(obj.nmonto);
        }
        protected void btnAnular_Click(object sender, EventArgs e)
        {
            int opeCod;
            int respuesta;
            opeCod = Convert.ToInt32(lbid_detletra.Value);

            clsdetletra form = new clsdetletra();
            det_letra obj = new det_letra();
            obj = form.GetDetLetra(opeCod);
            obj.cestado = "1";
            obj.ninteres = Convert.ToDecimal("00.00");
            //obj.dfecpago = 'NULL';
            respuesta = form.fnDetLetraUpdate(obj);
            if (respuesta == 0)
            {
                lblOkMensaje.Text = "ANULACION SATISFACTORIA.";
                pnMensaje.Visible = true;
                pnPago.Visible = false;
                HabilitarBtn(btnCancelar, false);
                btnCancelar.Visible = false;

            }
        }
        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            for (int i = 20; i <= 29; i++)
            {
                dgvPagoLetra.Columns[i].Visible = true;
            }

            //primero guardar la cabecera tabla tbliquCob
            clstbliqCobranza formliq = new clstbliqCobranza();
            tbliqCobranza objliq = new tbliqCobranza();
            int idliquidacion = formliq.MaxOpeCod() + 1;
            objliq.idliqcob = idliquidacion;
            objliq.fecreg = Convert.ToDateTime( txtFecha.Text);

            objliq.efectivo = Convert.ToDecimal(lblCobEfecSol.Text);
            objliq.efectivodol = Convert.ToDecimal(lblCobEfecDol.Text);

            objliq.ctaViatico = Convert.ToDecimal(txtctaViasoles.Text);
            objliq.ctaViaticodol = Convert.ToDecimal(txtctaViadolares.Text);

            objliq.depositos = Convert.ToDecimal(lblCobSnefeSol.Text);
            objliq.depositosdol = Convert.ToDecimal(lblCobSnefeDol.Text);

            objliq.GastVarios = Convert.ToDecimal(txtGasVSol.Text);
            objliq.GastVariosdol = Convert.ToDecimal(txtGasVDol.Text);

            objliq.cheques = Convert.ToDecimal(txtchqSol.Text);
            objliq.chequesdol = Convert.ToDecimal(txtchqDol.Text);

            objliq.inefectivo = Convert.ToDecimal(txtegrEfeSol.Text);
            objliq.inefectivodol = Convert.ToDecimal(txtegrEfeDol.Text);

            objliq.totsoles = Convert.ToDecimal(lblSalSoles.Text);
            objliq.totdolares = Convert.ToDecimal(lblSalDolares.Text);
            objliq.observaciones = txtObservaciones.Text;
            // falta ingresar las observaiones y el recibidor
            int cod_det;
            int ultimo;
            int cod_ven;
            int cod_letra;
            int cod_cliente;
            int primero=0;
            decimal monto_total;
            decimal monto_cuota;
            decimal pago;
            DateTime fecha, fecha_min = DateTime.Now, fecha_max = DateTime.Now;

            int flag = 0;

            formliq.fnletraInsertar(objliq);
            foreach (GridViewRow row in dgvPagoLetra.Rows)
            {
                TextBox txtMon = row.FindControl("txtmonto") as TextBox;
                TextBox txtFecPago = row.FindControl("txtFecPago") as TextBox;
                TextBox txtnumrecibo = row.FindControl("txtnumrecibo") as TextBox;
                CheckBox chktipPago = row.FindControl("chktipPago") as CheckBox;

                try
                {
                    if (txtMon.Text.Length > 0 && Convert.ToDouble(txtMon.Text) > 0.00)
                    {
                        txtMon.Text = Convert.ToDouble(txtMon.Text).ToString("N");
                    }
                    else
                    {
                        txtMon.Text = Convert.ToDouble("0.00").ToString("N");
                        dgvPagoLetra.Rows[row.RowIndex].Visible= false;
                        //dgvPagoLetra.Columns[i].Visible = true;

                    }
                }
                catch
                {
                    txtMon.Text = Convert.ToDouble("0.00").ToString("N");
                    dgvPagoLetra.Rows[row.RowIndex].Visible = false;

                }

                txtMon.Text = Convert.ToDouble(txtMon.Text).ToString("N");
            }

            clspag_Letra form = new clspag_Letra();
            int cod_mov = Convert.ToInt32(form.Maxcod_pago()) + 1;
            foreach (GridViewRow row in dgvPagoLetra.Rows)
            {
                flag = 0;
                fecha = Convert.ToDateTime(txtFecha.Text);
                TextBox pag = row.FindControl("txtmonto") as TextBox;
                TextBox txtFecPago = row.FindControl("txtFecPago") as TextBox;
                TextBox txtobsdet = row.FindControl("txtobsdetalle") as TextBox;
                TextBox txtnumrecibo = row.FindControl("txtnumrecibo") as TextBox;
                CheckBox chktipPago = row.FindControl("chktipPago") as CheckBox;

                cod_det = Convert.ToInt32(row.Cells[25].Text);
                cod_ven = Convert.ToInt32(row.Cells[22].Text);
                cod_letra = Convert.ToInt32(row.Cells[26].Text);
                cod_cliente = Convert.ToInt32(row.Cells[28].Text);
                ultimo = Convert.ToInt32(row.Cells[29].Text);
                pago = Convert.ToDecimal(pag.Text);
                if (primero == 0)
                {
                    fecha_min = Convert.ToDateTime(txtFecPago.Text);
                    fecha_max = Convert.ToDateTime(txtFecPago.Text);
                    primero = 1;
                }
                else {
                    if (Convert.ToDateTime(txtFecPago.Text) < fecha_min) {
                        fecha_min = Convert.ToDateTime(txtFecPago.Text);
                    }
                    if (Convert.ToDateTime(txtFecPago.Text) > fecha_max) {
                        fecha_max = Convert.ToDateTime(txtFecPago.Text);
                    }
                }
                if (pago > 0)
                    {
                        monto_total = Convert.ToDecimal(row.Cells[11].Text);
                        monto_cuota = Convert.ToDecimal(row.Cells[14].Text);

                        while (flag == 0)
                        {
                            Pag_letras obj = new Pag_letras();
                            if (pago > monto_cuota)
                            {

                                clsdetletra update = new clsdetletra();
                                det_letra obj_upd = new det_letra();
                                obj_upd = update.GetDetLetra(cod_det);
                                obj_upd.cestado = "2";
                                obj_upd.dfecpago = Convert.ToDateTime(fecha);

                                update.fnDetLetraUpdate(obj_upd);

                                if (ultimo == 0)
                                {
                                    ////////////////////
                                    //crea la nota/////
                                    ////////////////////
                                    clsOpeNotas formnota = new clsOpeNotas();
                                    Notas objnt = new Notas();
                                    objnt.inota = Convert.ToInt32(formnota.MaxOpeCod()) + 1;

                                    objnt.dfecreg = Convert.ToDateTime(fecha);
                                    objnt.ccodnota = cod_letra.ToString();
                                    objnt.iprvcod = cod_cliente;
                                    objnt.nmontoNota = pago - monto_cuota;
                                    objnt.cestadoNota = "N";
                                    objnt.nmntutilizado = Convert.ToDecimal(0.00);
                                    objnt.cobservaciones = "pago excesivo de factura";
                                    objnt.ctipo = "V";
                                    formnota.fnNotaInsert(objnt);

                                    ////////////////////////////////////////
                                    obj.idetletra = obj_upd.idetletra;
                                    obj.idpagletra = Convert.ToInt32(form.Maxidpaglet()) + 1;
                                    obj.nmonto = monto_cuota;
                                    obj.dfecpago = Convert.ToDateTime(fecha);
                                    obj.dfecmodifi = DateTime.Today;
                                    obj.ipercod = cod_ven;
                                    obj.icodpago = cod_mov;
                                    obj.inumRecibo = txtnumrecibo.Text;
                                    obj.cobservaciones = txtobsdet.Text;
                                    obj.inumliq = idliquidacion;
                                    if (chktipPago.Checked)
                                        obj.ctipPag = "E";
                                    else
                                        obj.ctipPag = "D";
                                    clspag_Letra inserta = new clspag_Letra();
                                    inserta.fnpag_letraInsertar(obj);

                                    flag = 1;
                                }
                                else
                                {
                                    obj.idetletra = obj_upd.idetletra;
                                    obj.idpagletra = Convert.ToInt32(form.Maxidpaglet()) + 1;
                                    obj.nmonto = monto_cuota;
                                    obj.dfecpago = Convert.ToDateTime(fecha);
                                    obj.dfecmodifi = DateTime.Today;
                                    obj.ipercod = cod_ven;
                                    obj.icodpago = cod_mov;
                                    obj.inumRecibo = txtnumrecibo.Text;
                                    obj.cobservaciones = txtObservaciones.Text;
                                    obj.inumliq = idliquidacion;
                                    if(chktipPago.Checked)
                                        obj.ctipPag= "E";
                                    else
                                        obj.ctipPag = "D";
                                    clspag_Letra inserta = new clspag_Letra();
                                    inserta.fnpag_letraInsertar(obj);

                                    pago = pago - monto_cuota;
                                    cod_det = Convert.ToInt32(update.Mindetletpend_cod(cod_letra));
                                    monto_cuota = fnnextDeuda(cod_det);
                                }
                            }
                            else
                            {
                                obj.idetletra = cod_det;
                                obj.idpagletra = Convert.ToInt32(form.Maxidpaglet()) + 1;
                                obj.nmonto = pago;
                                obj.dfecpago = Convert.ToDateTime(fecha);
                                obj.dfecmodifi = DateTime.Today;
                                obj.ipercod = cod_ven;
                                obj.icodpago = cod_mov;
                                obj.inumRecibo = txtnumrecibo.Text;
                                obj.cobservaciones = txtObservaciones.Text;
                                obj.inumliq = idliquidacion;
                                if (chktipPago.Checked)
                                    obj.ctipPag = "E";
                                else
                                    obj.ctipPag = "D";
                                clspag_Letra inserta = new clspag_Letra();
                                inserta.fnpag_letraInsertar(obj);
                                if (pago == monto_cuota)
                                {
                                    clsdetletra update = new clsdetletra();
                                    det_letra obj_upd = new det_letra();
                                    obj_upd = update.GetDetLetra(cod_det);
                                    obj_upd.cestado = "2";
                                    obj_upd.dfecpago = Convert.ToDateTime(fecha);
                                    update.fnDetLetraUpdate(obj_upd);
                                }
                                flag = 1;

                            }
                        }
                    }
            }
            for (int i = 20; i <= 29; i++)
            {
                dgvPagoLetra.Columns[i].Visible = false;
            }
            txtFecMin.Text = fecha_min.ToString("yyyy-MM-dd");
            txtFecMax.Text = fecha_max.ToString("yyyy-MM-dd");
            pnLiquidacion.Enabled = false;
            btnCancelar.Text = "Salir";
            HabilitarBtn(btnGuardar, false);
            HabilitarBtn(btnProcesar, false);
        }
        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);
            }
        }
        protected void btnPagar_Click(object sender, EventArgs e)
        {
            int opeCod;
            int respuesta;
            opeCod = Convert.ToInt32(lbid_detletra.Value);

            clsdetletra form = new clsdetletra();
            det_letra obj = new det_letra();
            obj = form.GetDetLetra(opeCod);
            obj.cestado = "2";
            obj.ninteres = Convert.ToDecimal(txtinter.Text);
            obj.dfecpago = Convert.ToDateTime(txtFecPag.Text);
            respuesta = form.fnDetLetraUpdate(obj);
            if (respuesta == 0)
            {
                if (btnPagar.Text == "Actualizar Pago")
                    lblOkMensaje.Text = "LA ACTUALIZACION FUE SATISFACTORIA.";
                else
                    lblOkMensaje.Text = "EL INGRESO FUE SATISFACTORIO.";
                pnMensaje.Visible = true;
                pnPago.Visible = false;
                HabilitarBtn(btnCancelar, false);
                btnCancelar.Visible = false;

            }
        }
        protected void btnPagar_Click(object sender, EventArgs e)
        {
            int cod_det;
            int ultimo;
            int cod_ven;
            int cod_letra;
            int cod_cliente;
            decimal monto_total;
            decimal monto_cuota;
            decimal pago;
            string fecha;
            int flag = 0;
            clspag_Letra form = new clspag_Letra();
            int cod_mov = Convert.ToInt32(form.Maxcod_pago()) + 1;
            if (btnpagar.Text == "Pagar")
            {
                pncargar.Visible = true;
                dgvlist.Columns[13].Visible = true;
                txtFec.Text = DateTime.Today.ToString();
                btnpagar.Text = "Guargar";
                HabilitarBtn(btnCancelar, true);
                btnCancelar.Visible = true;
            }
            else
            {
                dgvlist.Columns[5].Visible = true;
                dgvlist.Columns[14].Visible = true;
                dgvlist.Columns[15].Visible = true;
                dgvlist.Columns[16].Visible = true;
                foreach (GridViewRow row in dgvlist.Rows)
                {
                    flag = 0;
                    fecha = txtFec.Text;
                    TextBox pag = row.FindControl("txtmonto") as TextBox;
                    cod_det = Convert.ToInt32(row.Cells[2].Text);
                    cod_ven = Convert.ToInt32(row.Cells[5].Text);
                    cod_letra = Convert.ToInt32(row.Cells[14].Text);
                    cod_cliente = Convert.ToInt32(row.Cells[16].Text);
                    ultimo = Convert.ToInt32(row.Cells[15].Text);
                    pago = Convert.ToDecimal(pag.Text);
                    if (pago > 0)
                    {
                        monto_total = Convert.ToDecimal(row.Cells[10].Text);
                        monto_cuota = Convert.ToDecimal(row.Cells[12].Text);

                        while (flag == 0)
                        {
                            Pag_letras obj = new Pag_letras();
                            if (pago > monto_cuota)
                            {

                                clsdetletra update = new clsdetletra();
                                det_letra obj_upd = new det_letra();
                                obj_upd = update.GetDetLetra(cod_det);
                                obj_upd.cestado = "2";
                                obj_upd.dfecpago = Convert.ToDateTime(fecha);

                                update.fnDetLetraUpdate(obj_upd);

                                if (ultimo == 0)
                                {
                                    ////////////////////
                                    //crea la nota/////
                                    ////////////////////
                                    clsOpeNotas formnota = new clsOpeNotas();
                                    Notas objnt = new Notas();
                                    objnt.inota = Convert.ToInt32(formnota.MaxOpeCod()) + 1;

                                    objnt.dfecreg = Convert.ToDateTime(fecha);
                                    objnt.ccodnota = cod_letra.ToString();
                                    objnt.iprvcod = cod_cliente;
                                    objnt.nmontoNota = pago - monto_cuota;
                                    objnt.cestadoNota = "N";
                                    objnt.nmntutilizado = Convert.ToDecimal(0.00);
                                    objnt.cobservaciones = "pago excesivo de factura";
                                    objnt.ctipo = "V";
                                    formnota.fnNotaInsert(objnt);

                                    ////////////////////////////////////////

                                    flag = 1;
                                }
                                else
                                {
                                    obj.idetletra = obj_upd.idetletra;
                                    obj.idpagletra = Convert.ToInt32(form.Maxidpaglet()) + 1;
                                    obj.nmonto = monto_cuota;
                                    obj.dfecpago = Convert.ToDateTime(fecha);
                                    obj.dfecmodifi = DateTime.Today;
                                    obj.ipercod = cod_ven;
                                    obj.icodpago = cod_mov;
                                    clspag_Letra inserta = new clspag_Letra();
                                    inserta.fnpag_letraInsertar(obj);

                                    pago = pago - monto_cuota;
                                    cod_det = Convert.ToInt32(update.Mindetletpend_cod(cod_letra));
                                    monto_cuota = fnnextDeuda(cod_det);
                                }
                            }
                            else
                            {
                                obj.idetletra = cod_det;
                                obj.idpagletra = Convert.ToInt32(form.Maxidpaglet()) + 1;
                                obj.nmonto = pago;
                                obj.dfecpago = Convert.ToDateTime(fecha);
                                obj.dfecmodifi = DateTime.Today;
                                obj.ipercod = cod_ven;
                                obj.icodpago = cod_mov;
                                clspag_Letra inserta = new clspag_Letra();
                                inserta.fnpag_letraInsertar(obj);
                                if (pago == monto_cuota)
                                {
                                    clsdetletra update = new clsdetletra();
                                    det_letra obj_upd = new det_letra();
                                    obj_upd = update.GetDetLetra(cod_det);
                                    obj_upd.cestado = "2";
                                    obj_upd.dfecpago = Convert.ToDateTime(fecha);

                                    update.fnDetLetraUpdate(obj_upd);

                                }
                                flag = 1;

                            }
                        }
                    }
                }
                btnpagar.Text = "Pagar";
                iniciar_valores();
            }
        }
 /// <summary>
 /// Método desusado para agregar un nuevo objeto al EntitySet det_letra. Considere la posibilidad de usar el método .Add de la propiedad ObjectSet&lt;T&gt; asociada.
 /// </summary>
 public void AddTodet_letra(det_letra det_letra)
 {
     base.AddObject("det_letra", det_letra);
 }
 /// <summary>
 /// Crear un nuevo objeto det_letra.
 /// </summary>
 /// <param name="icodletra">Valor inicial de la propiedad icodletra.</param>
 /// <param name="inumletra">Valor inicial de la propiedad inumletra.</param>
 /// <param name="idetletra">Valor inicial de la propiedad idetletra.</param>
 public static det_letra Createdet_letra(global::System.Int32 icodletra, global::System.Int32 inumletra, global::System.Int32 idetletra)
 {
     det_letra det_letra = new det_letra();
     det_letra.icodletra = icodletra;
     det_letra.inumletra = inumletra;
     det_letra.idetletra = idetletra;
     return det_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);
            }
        }