#include <amortizacionview.h>
Inheritance diagram for AmortizacionView:

Public Slots | |
| virtual void | on_mui_btcalcular_clicked () |
Public Member Functions | |
| AmortizacionView (Empresa *, QWidget *) | |
| Constructor de la clase. | |
| ~AmortizacionView () | |
| virtual int | cargar (QString idamortizacion) |
| virtual int | guardar () |
| virtual int | borrar () |
Private Attributes | |
| QString | m_idctaactivo |
| QString | m_idctaamortizacion |
| QString | m_idamortizacion |
Formulario de introducción y/o visión de amortizaciones.
Definition at line 51 of file amortizacionview.h.
Constructor de la clase.
| emp | ||
| parent |
Nueva inicializacion de amortizaciones
Inicializamos la clase para la base de datos.
Inicializamos el listado.
Fin de nuevas amortizaciones
Definition at line 38 of file amortizacionview.cpp.
References _depura(), DBRecord::addDBCampo(), SubForm3::addSHeader(), Ui_AmortizacionBase::ctaactivo, Ui_AmortizacionBase::ctaamortizacion, DBCampo::DBdate, DBCampo::DBint, SHeader::DBNone, DBCampo::DBNoSave, DBCampo::DBNothing, DBCampo::DBNotNull, SHeader::DBNoWrite, DBCampo::DBnumeric, DBCampo::DBPrimaryKey, DBCampo::DBvarchar, FALSE, m_idamortizacion, m_idctaactivo, m_idctaamortizacion, Ficha::meteWindow(), Ui_AmortizacionBase::mui_listcuotas, SubForm3::setDBCampoId(), DBRecord::setDBCampoId(), SubForm3::setDBTableName(), Ficha::setDBTableName(), BusquedaCuenta::setEmpresaBase(), SubForm2Bc::setEmpresaBase(), SubForm3::setinsercion(), SubForm3::setOrdenEnabled(), Ficha::setTitleName(), and Ui_AmortizacionBase::setupUi().
00039 : FichaBc(emp, parent) { 00040 _depura("AmortizacionView::AmortizacionView", 0); 00041 00042 this->setAttribute(Qt::WA_DeleteOnClose); 00043 setupUi(this); 00044 m_idamortizacion = ""; 00045 m_idctaactivo = ""; 00046 m_idctaamortizacion = ""; 00047 00049 mui_listcuotas->setEmpresaBase(emp); 00050 ctaactivo->setEmpresaBase(emp); 00051 ctaamortizacion->setEmpresaBase(emp); 00052 00054 setTitleName(tr("Amortizacion")); 00055 setDBTableName("amortizacion"); 00056 setDBCampoId("idamortizacion"); 00057 addDBCampo("nomamortizacion", DBCampo::DBvarchar, DBCampo::DBNothing, tr("Nombre de la amortizacion")); 00058 addDBCampo("descamortizacion", DBCampo::DBvarchar, DBCampo::DBNothing, tr("Descripcion de la amortizacion")); 00059 addDBCampo("fechacompra", DBCampo::DBdate, DBCampo::DBNothing, tr("Fecha de la compra")); 00060 addDBCampo("fecha1cuota", DBCampo::DBdate, DBCampo::DBNothing, tr("Fecha 1a cuota")); 00061 addDBCampo("valorcompra", DBCampo::DBnumeric, DBCampo::DBNothing, tr("Valor de la compra")); 00062 addDBCampo("periodicidad", DBCampo::DBint, DBCampo::DBNothing, tr("Periodicidad")); 00063 addDBCampo("numcuotas", DBCampo::DBint, DBCampo::DBNothing, tr("Numero de cuotas")); 00064 addDBCampo("metodo", DBCampo::DBvarchar, DBCampo::DBNoSave, tr("Metodo")); 00065 addDBCampo("nifproveedor", DBCampo::DBvarchar, DBCampo::DBNothing, tr("NIF del proveedor")); 00066 addDBCampo("nomproveedor", DBCampo::DBvarchar, DBCampo::DBNothing, tr("Nombre del proveedor")); 00067 addDBCampo("dirproveedor", DBCampo::DBvarchar, DBCampo::DBNothing, tr("Direccion del proveedor")); 00068 addDBCampo("telproveedor", DBCampo::DBvarchar, DBCampo::DBNothing, tr("Telefono del proveedor")); 00069 addDBCampo("agrupacion", DBCampo::DBvarchar, DBCampo::DBNothing, tr("Agrupacion")); 00070 addDBCampo("idamortizacion", DBCampo::DBint, DBCampo::DBPrimaryKey, tr("Id amortizacion")); 00071 addDBCampo("idcuentaactivo", DBCampo::DBint, DBCampo::DBNothing, tr("Identificador")); 00072 addDBCampo("idcuentaamortizacion", DBCampo::DBint, DBCampo::DBNotNull, tr("Id cuenta amortizacion")); 00073 00075 mui_listcuotas->setDBTableName("linamortizacion"); 00076 mui_listcuotas->setDBCampoId("idlinamortizacion"); 00077 mui_listcuotas->addSHeader("ejercicio", DBCampo::DBint, DBCampo::DBNothing, SHeader::DBNone, tr("Ejercicio")); 00078 mui_listcuotas->addSHeader("fechaprevista", DBCampo::DBdate, DBCampo::DBNothing, SHeader::DBNone, tr("Fecha prevista")); 00079 mui_listcuotas->addSHeader("cantidad", DBCampo::DBnumeric, DBCampo::DBNothing, SHeader::DBNone, tr("Cantidad")); 00080 mui_listcuotas->addSHeader("idasiento", DBCampo::DBint, DBCampo::DBNothing, SHeader::DBNoWrite , tr("Id asiento")); 00081 mui_listcuotas->addSHeader("idlinamortizacion", DBCampo::DBint, DBCampo::DBPrimaryKey, SHeader::DBNoWrite , tr("Id lineas de amortizacion")); 00082 mui_listcuotas->addSHeader("idamortizacion", DBCampo::DBint, DBCampo::DBNotNull, SHeader::DBNoWrite , tr("Id amortizacion")); 00083 mui_listcuotas->setinsercion(FALSE); 00084 mui_listcuotas->setOrdenEnabled(FALSE); 00085 00087 meteWindow(windowTitle(), this); 00088 _depura("END AmortizacionView::AmortizacionView", 0); 00089 }
| AmortizacionView::~AmortizacionView | ( | ) |
Definition at line 95 of file amortizacionview.cpp.
References _depura().
00095 { 00096 _depura("AmortizacionView::~AmortizacionView", 0); 00097 _depura("END AmortizacionView::~AmortizacionView", 0); 00098 }
| int AmortizacionView::cargar | ( | QString | idamortizacion | ) | [virtual] |
| idamortizacion | ||
se ha cargado de la base de datos.
Calculamos lo que ya llevamos amortizado y lo presentamos en la pantalla.
Calculamos lo que nos falta por amortizar y lo presentamos en la pantalla.
Deshabilitamos el botón de calcular, porque la amortización ya está hecha.
Reimplemented from Ficha.
Definition at line 158 of file amortizacionview.cpp.
References _depura(), Ui_AmortizacionBase::agrupacion, Ui_AmortizacionBase::amortizado, postgresiface2::cargacursor(), SubForm3::cargar(), DBRecord::cargar(), Ui_AmortizacionBase::ctaactivo, Ui_AmortizacionBase::ctaamortizacion, DBRecord::DBvalue(), dialogChanges::dialogChanges_cargaInicial(), FichaBc::empresaBase(), cursor2::eof(), Ui_AmortizacionBase::fecha1cuota, Ui_AmortizacionBase::fechacompra, m_idamortizacion, m_idctaactivo, m_idctaamortizacion, mensajeInfo(), EmpresaBase::meteWindow(), Ui_AmortizacionBase::mui_btcalcular, Ui_AmortizacionBase::mui_listcuotas, Ui_AmortizacionBase::nomamortizacion, Ui_AmortizacionBase::numcuotas, Ui_AmortizacionBase::pendiente, BusquedaCuenta::setidcuenta(), BusquedaFecha::setText(), TRUE, cursor2::valor(), and Ui_AmortizacionBase::valorcompra.
Referenced by AmortizacionesView::editar(), and guardar().
00158 { 00159 _depura("AmortizacionView::cargar", 0, idamortizacion); 00160 try { 00161 m_idamortizacion = idamortizacion; 00162 DBRecord::cargar(m_idamortizacion); 00163 00165 nomamortizacion->setText(DBvalue("nomamortizacion")); 00166 valorcompra->setText(DBvalue("valorcompra")); 00167 numcuotas->setText(DBvalue("numcuotas")); 00168 fechacompra->setText(DBvalue( "fechacompra")); 00169 fecha1cuota->setText(DBvalue("fecha1cuota")); 00170 ctaactivo->setidcuenta(DBvalue("idcuentaactivo")); 00171 m_idctaactivo = DBvalue("idcuentaactivo"); 00172 ctaamortizacion->setidcuenta(DBvalue("idcuentaamortizacion")); 00173 m_idctaamortizacion= DBvalue("idcuentaamortizacion"); 00174 agrupacion->setText(DBvalue("agrupacion")); 00175 00176 QString query = "SELECT *, fechaprevista <= now() AS ant FROM linamortizacion LEFT JOIN asiento ON linamortizacion.idasiento = asiento.idasiento WHERE idamortizacion = " + m_idamortizacion + " ORDER BY fechaprevista"; 00177 mui_listcuotas->cargar(query); 00178 00180 query = "SELECT sum(cantidad) AS amortizado FROM linamortizacion WHERE idasiento IS NOT NULL AND idamortizacion = " + m_idamortizacion; 00181 cursor2 *curs = empresaBase()->cargacursor(query); 00182 if (!curs->eof()) { 00183 amortizado->setText(curs->valor("amortizado")); 00184 } // end if 00185 delete curs; 00186 00188 query = "SELECT sum(cantidad) AS pdte FROM linamortizacion WHERE idasiento IS NULL AND idamortizacion = " + m_idamortizacion; 00189 curs = empresaBase()->cargacursor(query, "pdte"); 00190 if (!curs->eof()) { 00191 pendiente->setText(curs->valor("pdte")); 00192 } // end if 00193 delete curs; 00194 00197 mui_btcalcular->setDisabled(TRUE); 00198 dialogChanges_cargaInicial(); 00199 empresaBase()->meteWindow(windowTitle() + DBvalue("idamortizacion"), this); 00200 _depura("END AmortizacionView::cargar", 0); 00201 return 0; 00202 } catch (...) { 00203 mensajeInfo(tr("Error en la carga de la amortizacion")); 00204 return -1; 00205 } // end try 00206 }
| int AmortizacionView::guardar | ( | ) | [virtual] |
Guardamos los datos del formulario
Guardamos las lineas de amortizacion.
Reimplemented from Ficha.
Definition at line 123 of file amortizacionview.cpp.
References _depura(), Ui_AmortizacionBase::agrupacion, cargar(), Ui_AmortizacionBase::ctaactivo, Ui_AmortizacionBase::ctaamortizacion, DBRecord::DBsave(), Ui_AmortizacionBase::fecha1cuota, Ui_AmortizacionBase::fechacompra, SubForm3::guardar(), BusquedaCuenta::idcuenta(), mensajeInfo(), Ui_AmortizacionBase::mui_listcuotas, Ui_AmortizacionBase::nomamortizacion, Ui_AmortizacionBase::numcuotas, SubForm3::setColumnValue(), DBRecord::setDBvalue(), BusquedaFecha::text(), and Ui_AmortizacionBase::valorcompra.
00123 { 00124 _depura("AmortizacionView::guardar", 0); 00125 try { 00127 setDBvalue("nomamortizacion", nomamortizacion->text() ); 00128 setDBvalue("idcuentaactivo", ctaactivo->idcuenta() ); 00129 setDBvalue("valorcompra", valorcompra->text() ); 00130 setDBvalue("numcuotas", numcuotas->text()); 00131 setDBvalue("fechacompra", fechacompra->text()); 00132 setDBvalue("fecha1cuota", fecha1cuota->text()); 00133 setDBvalue("idcuentaamortizacion", ctaamortizacion->idcuenta()); 00134 setDBvalue("agrupacion", agrupacion->text()); 00135 00136 QString id = ""; 00137 DBRecord::DBsave(id); 00138 00140 mui_listcuotas->setColumnValue("idamortizacion", id); 00141 mui_listcuotas->guardar(); 00142 cargar(id); 00143 _depura("END AmortizacionView::guardar", 0); 00144 return 0; 00145 } catch (...) { 00146 mensajeInfo("Error en el guardado"); 00147 return -1; 00148 } // end try 00149 }
| int AmortizacionView::borrar | ( | ) | [virtual] |
Reimplemented from Ficha.
Definition at line 105 of file amortizacionview.cpp.
References _depura(), postgresiface2::ejecuta(), FichaBc::empresaBase(), and m_idamortizacion.
00105 { 00106 _depura("AmortizacionView::borrar", 0); 00107 if (m_idamortizacion != "") { 00108 QString query = "DELETE FROM linamortizacion WHERE idamortizacion = " + m_idamortizacion; 00109 empresaBase()->ejecuta(query); 00110 query = "DELETE FROM amortizacion WHERE idamortizacion = " + m_idamortizacion; 00111 empresaBase()->ejecuta(query); 00112 close(); 00113 } // end if 00114 _depura("END AmortizacionView::borrar", 0); 00115 return 0; 00116 }
| void AmortizacionView::on_mui_btcalcular_clicked | ( | ) | [virtual, slot] |
Definition at line 212 of file amortizacionview.cpp.
References _depura(), FALSE, Ui_AmortizacionBase::fecha1cuota, SubForm3::inicializar(), SubForm3::lista(), Ui_AmortizacionBase::metododecremental, Ui_AmortizacionBase::metodoincremental, Ui_AmortizacionBase::metodolineal, Ui_AmortizacionBase::metodoporcentual, Ui_AmortizacionBase::mui_listcuotas, normalizafecha(), SubForm3::nuevoRegistro(), Ui_AmortizacionBase::numcuotas, Ui_AmortizacionBase::periodicidad, SubForm3::pintar(), DBRecord::setDBvalue(), SubForm3::setinsercion(), BusquedaFecha::text(), TRUE, and Ui_AmortizacionBase::valorcompra.
00212 { 00213 _depura("AmortizacionView::calculaamortizacion", 0); 00216 QDate f1cuota = normalizafecha(fecha1cuota->text()); 00217 int ncuotas = numcuotas->text().toInt(); 00218 QString periodicidadtxt = periodicidad->currentText(); 00219 double valcuota; 00220 QString valcuotastr; 00221 00222 mui_listcuotas->inicializar(); 00223 mui_listcuotas->pintar(); 00225 if (metodolineal->isChecked()) { 00226 valcuota = valorcompra->text().toDouble() / ncuotas; 00227 valcuotastr.sprintf("%10.2f", valcuota); 00228 for (int i = 0; i < ncuotas; i++) { 00229 mui_listcuotas->setinsercion(TRUE); 00230 mui_listcuotas->nuevoRegistro(); 00231 mui_listcuotas->setinsercion(FALSE); 00232 SDBRecord *rec = mui_listcuotas->lista()->last(); 00233 rec->setDBvalue("fechaprevista", f1cuota.toString("dd/MM/yyyy")); 00234 rec->setDBvalue("cantidad", valcuotastr); 00235 00237 if (periodicidadtxt == tr("Anual")) { 00238 f1cuota = f1cuota.addYears(1); 00239 } else if (periodicidadtxt == tr("Mensual")) { 00240 f1cuota = f1cuota.addMonths(1); 00241 } else if (periodicidadtxt == tr("Semestral")) { 00242 f1cuota = f1cuota.addMonths(6); 00243 } else if (periodicidadtxt == tr("Trimestral")) { 00244 f1cuota = f1cuota.addMonths(3); 00245 } // end if 00246 } // end for 00247 } else if (metodoincremental->isChecked()) { 00249 double total = 0; 00250 for (int j = 1; j <= ncuotas; j++) { 00251 total = total + j; 00252 } // end for 00253 00254 for (int i = 1; i <= ncuotas; i++) { 00255 valcuota = valorcompra->text().toDouble() * i/total; 00256 valcuotastr.sprintf("%10.2f", valcuota); 00257 mui_listcuotas->setinsercion(TRUE); 00258 mui_listcuotas->nuevoRegistro(); 00259 mui_listcuotas->setinsercion(FALSE); 00260 SDBRecord *rec = mui_listcuotas->lista()->last(); 00261 rec->setDBvalue("fechaprevista", f1cuota.toString("dd/MM/yyyy")); 00262 rec->setDBvalue("cantidad", valcuotastr); 00264 if (periodicidadtxt == tr("Anual")) { 00265 f1cuota = f1cuota.addYears(1); 00266 } else if (periodicidadtxt == tr("Mensual")) { 00267 f1cuota = f1cuota.addMonths(1); 00268 } else if (periodicidadtxt == tr("Semestral")) { 00269 f1cuota = f1cuota.addMonths(6); 00270 } else if (periodicidadtxt == tr("Trimestral")) { 00271 f1cuota = f1cuota.addMonths(3); 00272 } // end if 00273 } // end for 00274 00275 } else if (metododecremental->isChecked()) { 00277 double total = 0; 00278 for (int j = 1; j <= ncuotas; j++) { 00279 total = total + j; 00280 } // end for 00281 for (int i = 0; i < ncuotas; i++) { 00282 valcuota = valorcompra->text().toDouble() * (ncuotas - i) / total; 00283 valcuotastr.sprintf("%10.2f", valcuota); 00284 mui_listcuotas->setinsercion(TRUE); 00285 mui_listcuotas->nuevoRegistro(); 00286 mui_listcuotas->setinsercion(FALSE); 00287 SDBRecord *rec = mui_listcuotas->lista()->last(); 00288 rec->setDBvalue("fechaprevista", f1cuota.toString("dd/MM/yyyy")); 00289 rec->setDBvalue("cantidad", valcuotastr); 00290 00292 if (periodicidadtxt == tr("Anual")) { 00293 f1cuota = f1cuota.addYears(1); 00294 } else if (periodicidadtxt == tr("Mensual")) { 00295 f1cuota = f1cuota.addMonths(1); 00296 } else if (periodicidadtxt == tr("Semestral")) { 00297 f1cuota = f1cuota.addMonths(6); 00298 } else if (periodicidadtxt == tr("Trimestral")) { 00299 f1cuota = f1cuota.addMonths(3); 00300 } // end if 00301 } // end for 00302 } else if (metodoporcentual->isChecked()) { 00304 double porcent = (double) 1 / (double) ncuotas; 00305 fprintf(stderr, "El coeficiente es: %10.2f\n", porcent); 00306 double total = 0; 00307 for (int i = 0; i < ncuotas; i++) { 00308 if (i < (ncuotas - 1)) { 00309 valcuota = (valorcompra->text().toDouble() - total) * porcent; 00310 total += valcuota; 00311 fprintf(stderr, "cuota: %10.2f -- total: %10.2f\n", valcuota, total); 00312 } else { 00313 valcuota = valorcompra->text().toDouble() - total; 00314 } // end if 00315 valcuotastr.sprintf("%10.2f", valcuota); 00316 mui_listcuotas->setinsercion(TRUE); 00317 mui_listcuotas->nuevoRegistro(); 00318 mui_listcuotas->setinsercion(FALSE); 00319 SDBRecord *rec = mui_listcuotas->lista()->last(); 00320 rec->setDBvalue("fechaprevista", f1cuota.toString("dd/MM/yyyy")); 00321 rec->setDBvalue("cantidad", valcuotastr); 00323 if (periodicidadtxt == tr("Anual")) { 00324 f1cuota = f1cuota.addYears(1); 00325 } else if (periodicidadtxt == tr("Mensual")) { 00326 f1cuota = f1cuota.addMonths(1); 00327 } else if (periodicidadtxt == tr("Semestral")) { 00328 f1cuota = f1cuota.addMonths(6); 00329 } else if (periodicidadtxt == tr("Trimestral")) { 00330 f1cuota = f1cuota.addMonths(3); 00331 } // end if 00332 } // end for 00333 } // end if 00334 _depura("AmortizacionView::calculaamortizacion", 0); 00335 }
QString AmortizacionView::m_idctaactivo [private] |
Esta variable indica cual es el índice de la cuenta de activo de la amortización que estamos viendo. Si no se está mostrando una cuenta este valor vale "".
Definition at line 59 of file amortizacionview.h.
Referenced by AmortizacionView(), and cargar().
QString AmortizacionView::m_idctaamortizacion [private] |
Esta variable indica cual es el índice de la cuenta de amortizacion de la amortizacion que estamos viendo. Si no se está mostrando una cuenta este valor vale "".
Definition at line 62 of file amortizacionview.h.
Referenced by AmortizacionView(), and cargar().
QString AmortizacionView::m_idamortizacion [private] |
Esta variable indica cuál es la amortización que se está enseñando. Si no tiene valor es que no se esta mostrando ninguna.
Definition at line 65 of file amortizacionview.h.
Referenced by AmortizacionView(), borrar(), and cargar().
1.5.1