AmortizacionView Class Reference

Clase que muestra la ventana de amortización. More...

#include <amortizacionview.h>

Inheritance diagram for AmortizacionView:

FichaBc Ui_AmortizacionBase Ficha BLWidget DBRecord dialogChanges QWidget PEmpresaBase

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

Detailed Description

Clase que muestra la ventana de amortización.

Formulario de introducción y/o visión de amortizaciones.

Definition at line 51 of file amortizacionview.h.


Constructor & Destructor Documentation

AmortizacionView::AmortizacionView ( Empresa emp,
QWidget parent 
)

Constructor de la clase.

Parameters:
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 }


Member Function Documentation

int AmortizacionView::cargar ( QString  idamortizacion  )  [virtual]

Parameters:
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]

Returns:

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]

Returns:

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 }


Field Documentation

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().


The documentation for this class was generated from the following files:
Generated on Sat Dec 15 00:01:41 2007 for BulmaGes by  doxygen 1.5.1