private void CancelarPagoFinanciamiento()
        {
            PagosFinanciamiento pago = _entidades.PagosFinanciamientos.Single(p => p.Clave == Convert.ToInt32(grvDatos.GetFocusedRowCellDisplayText("Clave")));

            pago.Estado = false;
            _entidades.SubmitChanges();
            Insertarcancelacion("Pago " + pago.Prestamo.Tipo, pago.Clave.ToString());

            ModificarSaldoFinanciamiento(pago.CvePrestamo, (pago.Cantidad + pago.AbonoPrestamo));
        }
        private void botonGuardar_Click(object sender, EventArgs e)
        {
            if ((decimal)txtTotalAPagar.EditValue <= 0)
            {
                return;
            }
            if (!ClsVerificarCaja.CajaEstado())
            {
                MessageBox.Show("La Caja del Dia de hoy ya se ha cerrado\n SISTEMA BLOQUEADO", "Caja Cerrada", MessageBoxButtons.OK, MessageBoxIcon.Error);
                Application.Exit();
            }
            if (!_guardado)
            {
                if ((int)txtFolioFinanciamiento.EditValue == 0)
                {
                    MessageBox.Show("Busque Primero el financiamiento para poder cobrar", Application.ProductName);
                    return;
                }
                decimal totalcantidad = 0;
                if (_dtCalendario.Rows.Count > 0)
                {
                    //if para saber si va a cobrar pagos de interes y moratorios
                    for (int i = 0; i < _dtCalendario.Rows.Count; i++)
                    {
                        if ((bool)_dtCalendario.Rows[i]["Pagar"] == false)
                        {
                            continue;
                        }
                        PagosFinanciamiento pagFin = new PagosFinanciamiento()
                        {
                            FechaPago     = dtpFechaPago.DateTime.Date,
                            CvePrestamo   = _cveFinanciamiento,
                            Cantidad      = (decimal)_dtCalendario.Rows[i]["Cantidad"],
                            Interes       = (decimal)_dtCalendario.Rows[i]["Interes"],
                            Recargo       = (decimal)_dtCalendario.Rows[i]["Recargo"],
                            AbonoPrestamo =
                                (i == _dtCalendario.Rows.Count - 1) ? (decimal)txtAbonoCapital.EditValue : 0,
                            //TotalPago =
                            //    (i == _dtCalendario.Rows.Count - 1 && !chkSaldarFinanciamiento.Checked )
                            //        ? ((decimal) _dtCalendario.Rows[i]["TotalAPagar"] +
                            //           Convert.ToDecimal(txtAbonoCapital.EditValue))
                            //        : (decimal) _dtCalendario.Rows[i]["TotalAPagar"],
                            CveUsuario =
                                Convert.ToInt32(new clsModificarConfiguracion().configGetValue("IdUsuarioApp")),
                            Estado = true
                        };
                        pagFin.TotalPago = pagFin.AbonoPrestamo + pagFin.Cantidad + pagFin.Interes + pagFin.Recargo;

                        totalcantidad += (decimal)_dtCalendario.Rows[i]["Cantidad"];
                        _entidades.PagosFinanciamientos.InsertOnSubmit(pagFin);
                        _entidades.SubmitChanges();
                        _folios  += pagFin.Clave + "; ";
                        _guardado = true;
                    }
                }
                else
                {
                    //de lo contrario ya hizo todos los pagos de interes y solo falta que liquide el capital
                    PagosFinanciamiento pagFin = new PagosFinanciamiento
                    {
                        FechaPago     = dtpFechaPago.DateTime.Date,
                        CvePrestamo   = _cveFinanciamiento,
                        Cantidad      = 0,
                        Interes       = 0,
                        Recargo       = 0,
                        AbonoPrestamo = (decimal)txtAbonoCapital.EditValue,
                        TotalPago     = (decimal)txtAbonoCapital.EditValue,
                        CveUsuario    = Convert.ToInt32(new clsModificarConfiguracion().configGetValue("IdUsuarioApp")),
                        Estado        = true
                    };
                    _entidades.PagosFinanciamientos.InsertOnSubmit(pagFin);
                    _entidades.SubmitChanges();
                    _guardado = true;
                }
                new ManejadorControles().DesectivarTextBox(gpoContenedor, true);
                MessageBox.Show("Pagos Registrado", Application.ProductName);
                ModificarSaldoFinanciamiento(_cveFinanciamiento, (totalcantidad + Convert.ToDecimal(txtAbonoCapital.EditValue)));
                ImprimirTicketPago();
            }
            else
            {
                ImprimirTicketPago();
            }
            SendKeys.Send("{TAB}");
        }