Asiento1View Class Reference

#include <asiento1view.h>

Inheritance diagram for Asiento1View:

ListAsientos Ui_AsientoBase Asiento1 FichaBc Ficha BLWidget DBRecord dialogChanges QWidget PEmpresaBase

Public Slots

virtual void on_mui_list_editFinish (int, int)
virtual void on_mui_abrirasiento_clicked ()
virtual void on_mui_cerrarasiento_clicked ()
virtual void on_mui_guardarasiento_clicked ()
virtual void on_mui_nuevoasiento_clicked ()
virtual void on_mui_duplicar_clicked ()
 Se ha pulsado sobre el botón de duplicar asiento.
virtual void on_mui_inteligente_clicked ()
 Se ha pulsado sobre el botón de generar asientos inteligentes.
virtual void on_mui_fecha_returnPressed ()
void mui_ordenasiento_pulsadoIntro ()
virtual void boton_cargarasiento ()

Public Member Functions

 Asiento1View (Empresa *, QWidget *parent=0, int flags=0)
 Constructor de la clase, inicializa los componentes.
 ~Asiento1View ()
 Saca la ventana del workSpace.
void muestraasiento (QString v)
void muestraasiento (int v)
virtual int sacaWindow ()
 Desabilitamos el sacaWindow ya que esta ventana no debe ser sacada ante un close.
virtual int guardarPost ()
 Post Guardado se hace una carga ya que la base de datos podria haber modificado cosas.
void setFecha (QString val)
virtual void trataestadoAsiento1 ()
void asientoabiertop ()
 Pone la pantalla en el modo de asiento abierto.
void asientocerradop ()
 Pone la pantalla en el modo de asiento cerrado.
void iniciar_asiento_nuevo (QString nuevoordenasiento="")
 Esta función se encarga de hacer las inicializaciones en un asiento nuevo.
virtual void on_mui_borrar_clicked ()
virtual void on_mui_borrar_clicked (bool)
virtual void asiento_regularizacion (QString, QString)
virtual void asiento_cierre (QString, QString)
virtual void asiento_apertura (QString)

Private Member Functions

void pintafecha (QString val)
void pintaordenasiento (QString val)
void pintaclase (QString val)
void pintacomentariosasiento (QString text)
virtual void calculaypintatotales ()
void prepguardar ()
 Prepara para guardar.

Detailed Description

Definition at line 69 of file asiento1view.h.


Constructor & Destructor Documentation

Asiento1View::Asiento1View ( Empresa emp,
QWidget parent = 0,
int  flags = 0 
)

Constructor de la clase, inicializa los componentes.

Parameters:
emp Empresa que llama al objeto.
parent Widget padre de este.
Returns:

Disparamos los plugins.

Ocultamos los detalles del asiento.

Hacemos la carga del listado de asientos.

Desplazamos hasta el último asiento.

Definition at line 47 of file asiento1view.cpp.

References _depura(), ListAsientos::boton_fin(), ListAsientos::cargaasientos(), FichaBc::empresaBase(), g_plugins, Plugins::lanza(), EmpresaBase::meteWindow(), Ui_AsientoBase::mui_detalles, Ui_AsientoBase::mui_list, Ui_AsientoBase::mui_ordenasiento, SubForm2Bc::setEmpresaBase(), Asiento1::setListLinAsiento1(), and Ui_AsientoBase::setupUi().

00048         : ListAsientos(emp, parent) {
00049     setupUi(this);
00050     _depura("Asiento1View::Asiento1View", 0);
00051 
00053     int res = g_plugins->lanza("Asiento1View_Asiento1View", this);
00054     if (res != 0)
00055         return;
00056 
00057 
00058     eventos_mui_ordenasiento *eventosOrdenAsiento = new eventos_mui_ordenasiento(this);
00059     mui_ordenasiento->installEventFilter(eventosOrdenAsiento);
00060 
00061     mui_list->setEmpresaBase(emp);
00062     setListLinAsiento1(mui_list);
00063 
00065     mui_detalles->toggle();
00067     cargaasientos();
00069     boton_fin();
00070     empresaBase()->meteWindow(windowTitle(), this);
00071     _depura("END Asiento1View::Asiento1View", 0);
00072 }

Asiento1View::~Asiento1View (  ) 

Saca la ventana del workSpace.

Definition at line 78 of file asiento1view.cpp.

References _depura().

00078                             {
00079     _depura("Asiento1View::~Asiento1View", 0);
00080     _depura("END Asiento1View::~Asiento1View", 0);
00081 }


Member Function Documentation

void Asiento1View::pintafecha ( QString  val  )  [private, virtual]

Parameters:
val 

Reimplemented from Asiento1.

Definition at line 711 of file asiento1view.cpp.

References _depura(), Ui_AsientoBase::mui_fecha, and BusquedaFecha::setText().

00711                                          {
00712     _depura("Asiento1View::pintafecha", 0);
00713     mui_fecha->setText(val);
00714     _depura("END Asiento1View::pintafecha", 0);
00715 }

void Asiento1View::pintaordenasiento ( QString  val  )  [private, virtual]

Parameters:
val 

Reimplemented from Asiento1.

Definition at line 722 of file asiento1view.cpp.

References _depura(), and Ui_AsientoBase::mui_ordenasiento.

00722                                                 {
00723     _depura("Asiento1View::pintaordenasiento", 0);
00724     mui_ordenasiento->setValue(val.toInt());
00725     _depura("END Asiento1View::pintaordenasiento", 0);
00726 }

void Asiento1View::pintaclase ( QString  val  )  [private, virtual]

Parameters:
val 

Reimplemented from Asiento1.

Definition at line 733 of file asiento1view.cpp.

References _depura(), and Ui_AsientoBase::mui_claseAsiento.

00733                                          {
00734     _depura("Asiento1View::pintaclase", 0);
00735     mui_claseAsiento->setCurrentIndex(val.toInt());
00736     _depura("END Asiento1View::pintaclase", 0);
00737 }

void Asiento1View::pintacomentariosasiento ( QString  text  )  [private, virtual]

Parameters:
text 

Reimplemented from Asiento1.

Definition at line 744 of file asiento1view.cpp.

References _depura(), and Ui_AsientoBase::mui_comentariosAsiento.

00744                                                        {
00745     _depura("Asiento1View::pintacomentariosasiento", 0);
00746     mui_comentariosAsiento->setPlainText(text);
00747     _depura("END Asiento1View::pintacomentariosasiento", 0);
00748 }

void Asiento1View::calculaypintatotales (  )  [private, virtual]

Reimplemented from Asiento1.

Definition at line 87 of file asiento1view.cpp.

References _depura(), FALSE, Ui_AsientoBase::m_descuadre, Ui_AsientoBase::m_totaldebe, Ui_AsientoBase::m_totalhaber, Ui_AsientoBase::mui_abrirasiento, Ui_AsientoBase::mui_cerrarasiento, Ui_AsientoBase::mui_list, SubForm3::sumarCampo(), Fixed::toQString(), and TRUE.

Referenced by on_mui_list_editFinish().

00087                                         {
00088     _depura("Asiento1View::calculaypintatotales", 0);
00089     Fixed tdebe = mui_list->sumarCampo("debe");
00090     Fixed thaber = mui_list->sumarCampo("haber");
00091     m_totaldebe->setText(tdebe.toQString());
00092     m_totalhaber->setText(thaber.toQString());
00093     Fixed desc = tdebe - thaber;
00094     m_descuadre->setText(desc.toQString());
00095 
00097     if (desc != 0) {
00098         mui_cerrarasiento->setEnabled(FALSE);
00099     } else if (!mui_abrirasiento->isEnabled()) {
00100         mui_cerrarasiento->setEnabled(TRUE);
00101     } // end ir
00102     _depura("END Asiento1View::calculaypintatotales", 0);
00103 }

void Asiento1View::prepguardar (  )  [private]

Prepara para guardar.

Definition at line 344 of file asiento1view.cpp.

References _depura(), Ui_AsientoBase::mui_claseAsiento, Ui_AsientoBase::mui_comentariosAsiento, Ui_AsientoBase::mui_fecha, Ui_AsientoBase::mui_ordenasiento, DBRecord::setDBvalue(), and BusquedaFecha::text().

Referenced by on_mui_cerrarasiento_clicked(), and on_mui_guardarasiento_clicked().

00344                                {
00345     _depura("Asiento1View::prepguardar", 0);
00346     setDBvalue("fecha", mui_fecha->text());
00347     setDBvalue("ordenasiento", mui_ordenasiento->text());
00348     setDBvalue("comentariosasiento", mui_comentariosAsiento->toPlainText());
00349     setDBvalue("clase", QString::number(mui_claseAsiento->currentIndex()));
00350     _depura("END Asiento1View::prepguardar", 0);
00351 }

void Asiento1View::muestraasiento ( QString  v  )  [virtual]

Parameters:
v 

Reimplemented from ListAsientos.

Definition at line 333 of file asiento1view.cpp.

References _depura(), Asiento1::cargar(), and ListAsientos::situarasiento().

Referenced by correctorwidget::alink(), asiento_apertura(), asiento_cierre(), asiento_regularizacion(), SubForm2Bc::boton_asiento(), ListLinPrevCobroView::contextMenu(), iniciar_asiento_nuevo(), muestraasiento(), aplinteligentesview::on_mui_aceptar_clicked(), on_mui_borrar_clicked(), extractoview1::on_mui_list_cellDoubleClicked(), ListRegistroIvaView::on_mui_tablarepercutido_cellDoubleClicked(), ListRegistroIvaView::on_mui_tablarepercutido_trataMenu(), ListRegistroIvaView::on_mui_tablasoportado_cellDoubleClicked(), and ListRegistroIvaView::on_mui_tablasoportado_trataMenu().

00333                                            {
00334     _depura("Asiento1View::muestraasiento ", 0);
00335     situarasiento(v);
00336     cargar(v);
00337     _depura("END Asiento1View::muestraasiento ", 0);
00338 }

void Asiento1View::muestraasiento ( int  v  ) 

Parameters:
v 

Definition at line 755 of file asiento1view.cpp.

References _depura(), and muestraasiento().

00755                                        {
00756     _depura("Asiento1View::muestraasiento", 0);
00757     muestraasiento(QString::number(v));
00758     _depura("END Asiento1View::muestraasiento", 0);
00759 }

int Asiento1View::sacaWindow (  )  [virtual]

Desabilitamos el sacaWindow ya que esta ventana no debe ser sacada ante un close.

Returns:

Reimplemented from Ficha.

Definition at line 766 of file asiento1view.cpp.

References _depura().

00766                              {
00767     _depura("Asiento1View::sacaWindow", 0);
00768     _depura("END Asiento1View::sacaWindow", 0);
00769     return 0;
00770 }

int Asiento1View::guardarPost (  )  [virtual]

Post Guardado se hace una carga ya que la base de datos podria haber modificado cosas.

Reimplemented from Ficha.

Definition at line 357 of file asiento1view.cpp.

References _depura().

00357                               {
00358     _depura("Asiento1View::guardarPost", 0);
00359     _depura("Asiento1View::guardarPost", 0);
00360     return 0;
00361 }

void Asiento1View::setFecha ( QString  val  ) 

Parameters:
val 

Definition at line 777 of file asiento1view.cpp.

References _depura(), Ui_AsientoBase::mui_fecha, and BusquedaFecha::setText().

Referenced by aplinteligentesview::on_mui_aceptar_clicked().

00777                                        {
00778     _depura("Asiento1View::setFecha", 0);
00779     mui_fecha->setText(val);
00780     _depura("END Asiento1View::setFecha", 0);
00781 }

void Asiento1View::trataestadoAsiento1 (  )  [virtual]

Reimplemented from Asiento1.

Definition at line 109 of file asiento1view.cpp.

References _depura(), Asiento1::ASCerrado, asientoabiertop(), asientocerradop(), and Asiento1::estadoAsiento1().

00109                                        {
00110     _depura("Asiento1View::trataestadoAsiento1", 0);
00111     if (estadoAsiento1() == ASCerrado) {
00112         asientocerradop();
00113     } else {
00114         asientoabiertop();
00115     }// end if
00116     _depura("END Asiento1View::trataestadoAsiento1", 0);
00117 }

void Asiento1View::asientoabiertop (  ) 

Pone la pantalla en el modo de asiento abierto.

Los apuntes deben ser editables.

Definition at line 124 of file asiento1view.cpp.

References _depura(), SubForm3::columnCount(), FALSE, SubForm3::item(), Ui_AsientoBase::m_descuadre, Ui_AsientoBase::mui_abrirasiento, Ui_AsientoBase::mui_cerrarasiento, Ui_AsientoBase::mui_inteligente, Ui_AsientoBase::mui_list, SubForm3::rowCount(), SubForm3::setinsercion(), and TRUE.

Referenced by on_mui_inteligente_clicked(), and trataestadoAsiento1().

00124                                    {
00125     _depura("Asiento1View::asientoabiertop", 0);
00126     m_descuadre->setEnabled(TRUE);
00127     mui_abrirasiento->setEnabled(FALSE);
00128     mui_cerrarasiento->setEnabled(TRUE);
00129     mui_inteligente->setEnabled(TRUE);
00130     mui_list->setinsercion(TRUE);
00131 
00132     //mui_list->mui_list->setBackgroundColor(Qt::lightGray);
00134     for (int fila = 0; fila < mui_list->rowCount(); fila++) {
00135         for (int columna = 0; columna < mui_list->columnCount(); columna++) {
00136             mui_list->item(fila, columna)->setFlags(Qt::ItemIsEnabled | Qt::ItemIsEditable);
00137             mui_list->item(fila, columna)->setBackgroundColor(Qt::lightGray);
00138         } // end for
00139     } // end for
00140 
00141     _depura("END Asiento1View::asientoabiertop", 0);
00142 }

void Asiento1View::asientocerradop (  ) 

Pone la pantalla en el modo de asiento cerrado.

Los apuntes deben dejar de ser editables (aunque no se graben sus posibles modificaciones por estar en modo CERRADO).

Definition at line 149 of file asiento1view.cpp.

References _depura(), SubForm3::columnCount(), FALSE, SubForm3::item(), Ui_AsientoBase::mui_abrirasiento, Ui_AsientoBase::mui_cerrarasiento, Ui_AsientoBase::mui_inteligente, Ui_AsientoBase::mui_list, SubForm3::rowCount(), SubForm3::setinsercion(), and TRUE.

Referenced by trataestadoAsiento1().

00149                                    {
00150     _depura("Asiento1View::asientocerradop", 0);
00151     mui_abrirasiento->setEnabled(TRUE);
00152     mui_cerrarasiento->setEnabled(FALSE);
00153     mui_inteligente->setEnabled(TRUE);
00154     mui_list->setinsercion(FALSE);
00155 
00158     for (int fila = 0; fila < mui_list->rowCount(); fila++) {
00159         for (int columna = 0; columna < mui_list->columnCount(); columna++) {
00160             mui_list->item(fila, columna)->setFlags(Qt::ItemIsEnabled);
00161             mui_list->item(fila, columna)->setBackgroundColor(Qt::darkGray);
00162         } // end for
00163     } // end for
00164 
00165     _depura("END Asiento1View::asientocerradop", 0);
00166 }

void Asiento1View::iniciar_asiento_nuevo ( QString  nuevoordenasiento = ""  ) 

Esta función se encarga de hacer las inicializaciones en un asiento nuevo.

Parameters:
nuevoordenasiento 
Returns:

TRATAMIENTO DE BASE DE DATOS.

Creamos el asiento en la base de datos.

FIN TRATAMIENTO DE BASE DE DATOS.

Definition at line 186 of file asiento1view.cpp.

References _depura(), Asiento1::abrir(), postgresiface2::begin(), ListAsientos::cargaasientos(), postgresiface2::cargacursor(), postgresiface2::commit(), postgresiface2::ejecuta(), FichaBc::empresaBase(), cursor2::eof(), Asiento1::idasiento(), mensajeInfo(), muestraasiento(), Ui_AsientoBase::mui_fecha, postgresiface2::rollback(), postgresiface2::sanearCadena(), BusquedaFecha::text(), and cursor2::valor().

Referenced by boton_cargarasiento(), myplugin1::boton_nuevoasientodocumental(), aplinteligentesview::on_mui_aceptar_clicked(), on_mui_fecha_returnPressed(), and on_mui_nuevoasiento_clicked().

00186                                                                   {
00187     _depura("Asiento1View::iniciar_asiento_nuevo", 0);
00188     try {
00190         QString idasiento, ordenasiento, query;
00191         QString fecha = mui_fecha->text();
00192         cursor2 *cur;
00193         empresaBase()->begin();
00194         if (nuevoordenasiento == "") {
00195             QString query = "SELECT COALESCE(MAX(ordenasiento) + 1, 1) AS orden FROM asiento WHERE EXTRACT(YEAR FROM fecha) = '" + fecha.left(10).right(4) + "'";
00196             cur = empresaBase()->cargacursor(query);
00197             ordenasiento = cur->valor("orden");
00198             delete cur;
00199         } else {
00200             ordenasiento = nuevoordenasiento;
00201         } // end if
00202 
00203 
00204         //empresaBase()->commit();
00205         query = "INSERT INTO asiento (fecha, ordenasiento) VALUES ('" + empresaBase()->sanearCadena(fecha) + "', " + ordenasiento + ")";
00206         empresaBase()->ejecuta(query);
00207 
00209         query = "SELECT MAX(idasiento) AS id FROM asiento";
00210         cur = empresaBase()->cargacursor(query);
00211         if (!cur->eof())
00212             idasiento = cur->valor("id");
00213         delete cur;
00214 
00215         empresaBase()->commit();
00217 
00218         cargaasientos();
00219 
00220         muestraasiento(idasiento.toInt());
00221 
00222         abrir();
00223 
00224         _depura("END Asiento1View::iniciar_asiento_nuevo", 0, idasiento);
00225         return;
00226     } catch (...) {
00227         mensajeInfo("Asiento no pudo crearse");
00228         empresaBase()->rollback();
00229     } // end try
00230 }

void Asiento1View::on_mui_borrar_clicked (  )  [virtual]

Reimplemented from Ficha.

Definition at line 367 of file asiento1view.cpp.

References TRUE.

Referenced by CAnualesPrintView::on_mui_aceptar_clicked().

00367                                          {
00368     bool atendido = TRUE; // asumimos que habra que atender al dialogo de confirmacion de borrado
00369     on_mui_borrar_clicked(atendido);
00370 }

void Asiento1View::on_mui_borrar_clicked ( bool  atendido  )  [virtual]

Parameters:
atendido 

Comprueba si se ha cancelado el borrado.

Definition at line 377 of file asiento1view.cpp.

References _depura(), Ficha::borrar(), ListAsientos::cargaasientos(), ListAsientos::idasientoanterior(), ListAsientos::idasientosiguiente(), muestraasiento(), Asiento1::pintar(), and Asiento1::vaciar().

00377                                                       {
00378     _depura("Asiento1View::on_mui_borrar_clicked", 0);
00379     QString idasientosig = idasientosiguiente();
00380     QString idasientoant = idasientoanterior();
00381     int resultadoborrar;
00382     resultadoborrar = Asiento1::borrar(atendido);
00383 
00385     if (resultadoborrar == 2) return;
00386 
00387     cargaasientos();
00388     if (idasientosig != "")
00389         muestraasiento(idasientosig);
00390     else {
00391         if (idasientoant != "")
00392             muestraasiento(idasientoant);
00393         else {
00394             vaciar();
00395             pintar();
00396         } // end if
00397     } // end if
00398     _depura("END Asiento1View::on_mui_borrar_clicked", 0);
00399 }

void Asiento1View::asiento_regularizacion ( QString  finicial,
QString  ffinal 
) [virtual]

Parameters:
finicial 
ffinal 

Para poder generar un asiento de regularización debemos tener un asiento abierto. Sino, no merece la pena hacerlo.

Creamos un asiento nuevo con la fecha final indicada.

El parametro esta en la configuracion de empresa. Buscamos la cuenta de regularizacion. Normalmente es la 129

Hacemos el calculo de saldos hasta la fecha.

Insercion de Borrador El borrador no existe, por lo que hay que hacer un insert

Fin de la insercion de Borrador

Definition at line 846 of file asiento1view.cpp.

References _depura(), postgresiface2::begin(), ListAsientos::cargaasientos(), postgresiface2::cargacursor(), postgresiface2::commit(), postgresiface2::ejecuta(), FichaBc::empresaBase(), cursor2::eof(), Asiento1::idasiento(), mensajeInfo(), Empresa::muestraapuntes1(), muestraasiento(), postgresiface2::rollback(), postgresiface2::sanearCadena(), cursor2::siguienteregistro(), Fixed::toQString(), Asiento1::totaldebe(), Asiento1::totalhaber(), and cursor2::valor().

Referenced by Empresa::regularizaempresa().

00846                                                                           {
00847     _depura("Asiento1View::regularizacion", 0, finicial + "--" + ffinal);
00848     try {
00849 
00852 
00853         int idcuenta;
00854         int idcuenta1;
00855         Fixed diferencia("0");
00856         Fixed totaldebe("0"), totalhaber("0");
00857         Fixed totaldebe1("0"), totalhaber1("0");
00858         QString concepto="Asiento de Regularizacion";
00859         QString fecha = ffinal;
00860 
00861         empresaBase()->muestraapuntes1();
00862 
00863         empresaBase()->begin();
00864 
00866         QString supquery = "INSERT INTO asiento (fecha, descripcion, comentariosasiento) VALUES ('"+ffinal+"', 'Asiento de Regularizacion "+finicial+"--"+ffinal+"', 'Asiento de Regularizacion "+finicial+"--"+ffinal+"')";
00867         empresaBase()->ejecuta(supquery);
00868         supquery = "SELECT max(idasiento) as id FROM asiento";
00869         cursor2 *cur = empresaBase()->cargacursor(supquery);
00870         int idasiento = cur->valor("id").toInt();
00871         delete cur;
00872 
00873 
00876         QString query = "SELECT * FROM cuenta WHERE codigo in (SELECT valor FROM configuracion WHERE nombre='CuentaRegularizacion')";
00877         cur = empresaBase()->cargacursor(query);
00878         if (cur->eof()) throw -1;
00879         idcuenta1 = cur->valor("idcuenta").toInt();
00880         delete cur;
00881 
00883         query = "SELECT codigo, idcuenta, sum(debe) AS sumdebe, sum(haber) AS sumhaber, sum(debe)-sum(haber) AS saldito from apunte WHERE idcuenta IN (SELECT idcuenta FROM cuenta where codigo LIKE '6%' OR codigo LIKE '7%') AND fecha >= '"+finicial+"' AND fecha <= '"+ffinal+"' GROUP BY idcuenta ORDER BY saldito";
00884         cur = empresaBase()->cargacursor(query);
00885         int orden=0;
00886         while (!cur->eof()) {
00887             orden++;
00888             idcuenta = cur->valor("idcuenta").toInt();
00889             diferencia = Fixed(cur->valor("sumdebe"))-Fixed(cur->valor("sumhaber"));
00890             if (diferencia > 0) {
00891                 totalhaber = diferencia;
00892                 totaldebe= 0;
00893             } else {
00894                 totaldebe = -diferencia;
00895                 totalhaber=0;
00896             }// end if
00897             totaldebe1 = totaldebe1 + totaldebe;
00898             totalhaber1 = totalhaber1 + totalhaber;
00901             query = "INSERT INTO borrador (orden, conceptocontable, descripcion, fecha, idcuenta, debe, haber, idasiento) VALUES (";
00902             query +=  QString::number(orden);
00903             query +=  ", '" + empresaBase()->sanearCadena(concepto) + "'",
00904                       query +=  ", 'Asiento de Regularizacion "+finicial+"--"+ffinal+"'";
00905             query +=  ", '" + empresaBase()->sanearCadena(fecha) + "'",
00906                       query +=  "," +   QString::number(idcuenta);
00907             query +=  "," +   totaldebe.toQString().replace(",",".");
00908             query +=  "," +   totalhaber.toQString().replace(",",".");
00909             query +=  "," +   QString::number(idasiento) + ")";
00910 
00911             empresaBase()->ejecuta(query);
00912 
00914             cur->siguienteregistro();
00915         }// end while
00916         delete cur;
00917 
00918 
00919         if (totaldebe1 > 0) {
00920             orden++;
00921             query = "INSERT INTO borrador (orden, conceptocontable, descripcion, fecha, idcuenta, debe, haber, idasiento) VALUES (";
00922             query += QString::number(orden);
00923             query += ", '"+empresaBase()->sanearCadena(concepto)+ "'";
00924             query +=  ", 'Asiento de Regularizacion "+finicial+"--"+ffinal+"'";
00925             query += ", '"+empresaBase()->sanearCadena(fecha)+ "'";
00926             query += ","+ QString::number(idcuenta1);
00927             query += ", 0";
00928             query += ","+ totaldebe1.toQString().replace(",",".");
00929             query += ","+ QString::number(idasiento) +")";
00930             empresaBase()->ejecuta(query);
00931         } // end if
00932 
00933 
00934         if (totalhaber1 > 0) {
00935             orden++;
00936             query = "INSERT INTO borrador (orden, conceptocontable, descripcion, fecha, idcuenta, debe, haber, idasiento) VALUES (";
00937             query += QString::number(orden);
00938             query += ", '"+empresaBase()->sanearCadena(concepto)+ "'";
00939             query += ", 'Asiento de Regularizacion "+finicial+"--"+ffinal+"'";
00940             query += ", '"+empresaBase()->sanearCadena(fecha)+ "'";
00941             query += ","+ QString::number(idcuenta1);
00942             query += ","+ totalhaber1.toQString().replace(",",".");
00943             query += ", 0";
00944             query += ","+ QString::number(idasiento) +")";
00945             empresaBase()->ejecuta(query);
00946         }// end if
00947 
00948         empresaBase()->commit();
00949         cargaasientos();
00950         muestraasiento(idasiento);
00951     } catch (...) {
00952         mensajeInfo("Error en los calculos");
00953         empresaBase()->rollback();
00954     } // end try
00955     _depura("END Asiento1View::regularizacion", 0);
00956 }

void Asiento1View::asiento_cierre ( QString  ,
QString   
) [virtual]

Definition at line 963 of file asiento1view.cpp.

References _depura(), postgresiface2::begin(), ListAsientos::cargaasientos(), postgresiface2::cargacursor(), postgresiface2::commit(), postgresiface2::ejecuta(), FichaBc::empresaBase(), cursor2::eof(), Asiento1::idasiento(), mensajeInfo(), muestraasiento(), postgresiface2::rollback(), postgresiface2::sanearCadena(), cursor2::siguienteregistro(), and cursor2::valor().

Referenced by Empresa::cierraempresa().

00963                                                                   {
00964     _depura("Asiento1View::asiento_cierre", 0);
00965     try {
00966         empresaBase()->begin();
00967 
00969         QString supquery = "INSERT INTO asiento (fecha, descripcion, comentariosasiento) VALUES ('"+ffinal+"', 'Asiento de Cierre "+finicial+"--"+ffinal+"', 'Asiento de Cierre "+finicial+"--"+ffinal+"')";
00970         empresaBase()->ejecuta(supquery);
00971         supquery = "SELECT max(idasiento) as id FROM asiento";
00972         cursor2 *cur = empresaBase()->cargacursor(supquery);
00973         int idasiento = cur->valor("id").toInt();
00974         delete cur;
00975 
00976         int idcuenta;
00977         QString snuevodebe, snuevohaber;
00979 
00980         QString query ="SELECT codigo, idcuenta, sum(debe) AS sumdebe, sum(haber) AS sumhaber, sum(debe)-sum(haber) AS saldito FROM apunte WHERE idcuenta NOT IN (SELECT idcuenta FROM cuenta WHERE codigo LIKE '6%' OR codigo LIKE '7%')  AND fecha <= '"+ffinal+"' AND fecha >= '"+finicial+"' GROUP BY idcuenta ORDER BY saldito";
00981         empresaBase()->begin();
00982         cursor2 *cursor=empresaBase()->cargacursor(query, "cursor");
00983         empresaBase()->commit();
00984         int orden=0;
00985         QString concepto="Asiento de Cierre";
00986         QString fecha = ffinal;
00987         while (! cursor->eof()) {
00988             orden++;
00989             idcuenta = cursor->valor("idcuenta").toInt();
00990             if (cursor->valor("saldito").left(1) != "-") {
00991                 snuevohaber = cursor->valor("saldito");
00992                 snuevodebe = "0";
00993             } else {
00994                 snuevodebe = "ABS("+cursor->valor("saldito")+")";
00995                 snuevohaber = "0";
00996             }// end if
00997             if (cursor->valor("saldito") != "0.00") {
01000                 query = "INSERT INTO borrador (orden, conceptocontable, fecha, idcuenta, debe, haber, idasiento) VALUES (",
01001                         query += QString::number(orden);
01002                 query += ", '"+empresaBase()->sanearCadena(concepto)+"'";
01003                 query += ", '"+empresaBase()->sanearCadena(fecha)+"'";
01004                 query += "," + QString::number(idcuenta);
01005                 query += "," + snuevodebe;
01006                 query += "," + snuevohaber;
01007                 query += "," + QString::number(idasiento) + ")";
01008 
01009                 empresaBase()->ejecuta(query);
01010 
01011             }// end if
01012             cursor->siguienteregistro();
01013         }// end while
01014         delete cursor;
01015 
01016         empresaBase()->commit();
01017         cargaasientos();
01018         muestraasiento(idasiento);
01019     } catch (...) {
01020         mensajeInfo("Error en los calculos");
01021         empresaBase()->rollback();
01022     } // end try
01023 }

void Asiento1View::asiento_apertura ( QString   )  [virtual]

Definition at line 1029 of file asiento1view.cpp.

References postgresiface2::begin(), ListAsientos::cargaasientos(), postgresiface2::cargacursor(), postgresiface2::commit(), postgresiface2::ejecuta(), FichaBc::empresaBase(), cursor2::eof(), Asiento1::idasiento(), mensajeInfo(), muestraasiento(), postgresiface2::rollback(), postgresiface2::sanearCadena(), cursor2::siguienteregistro(), Asiento1::totaldebe(), Asiento1::totalhaber(), and cursor2::valor().

Referenced by Empresa::abreempresa().

01029                                                   {
01030     try {
01031         empresaBase()->begin();
01032 
01034         QString supquery = "INSERT INTO asiento (fecha, descripcion, comentariosasiento) VALUES ('"+ffinal+"', 'Asiento de Apertura "+ffinal+"', 'Asiento de Apertura "+ffinal+"')";
01035         empresaBase()->ejecuta(supquery);
01036         supquery = "SELECT max(idasiento) as id FROM asiento";
01037         cursor2 *cur = empresaBase()->cargacursor(supquery);
01038         int idasiento = cur->valor("id").toInt();
01039         delete cur;
01040 
01042         QString concepto="Asiento de Apertura";
01043         QString fecha = ffinal;
01044         QString idasientocierre;
01045 
01047         QString SQLQuery = "SELECT * FROM asiento WHERE fecha < '"+fecha+"' AND idasiento < "+QString::number(idasiento)+" ORDER BY ordenasiento DESC";
01048         cur=empresaBase()->cargacursor(SQLQuery);
01049         if (!cur->eof()) {
01050             idasientocierre=cur->valor("idasiento");
01051         }// end if
01052         delete cur;
01053 
01054         int orden = 1;
01056         QString SQLQuery1 = "SELECT * FROM borrador WHERE idasiento="+idasientocierre+" ORDER BY orden";
01057         cur = empresaBase()->cargacursor(SQLQuery1);
01058         while (!cur->eof()) {
01059             QString idcuenta = cur->valor("idcuenta");
01060             QString totaldebe = cur->valor("debe");
01061             QString totalhaber = cur->valor("haber");
01062             SQLQuery1  = "INSERT INTO borrador (orden, conceptocontable, fecha, idcuenta, debe, haber, idasiento) VALUES (",
01063             SQLQuery1 += QString::number(orden++);
01064             SQLQuery1 += ", '" + empresaBase()->sanearCadena(concepto) + "'";
01065             SQLQuery1 += ", '" + empresaBase()->sanearCadena(fecha) + "'";
01066             SQLQuery1 += ","   + idcuenta;
01067             SQLQuery1 += ","   + totalhaber.replace(",",".");
01068             SQLQuery1 += ","   + totaldebe.replace(",",".");
01069             SQLQuery1 += ","   + QString::number(idasiento) + ")";
01070 
01071             empresaBase()->ejecuta(SQLQuery1);
01072             cur->siguienteregistro();
01073         }// end while
01074         delete cur;
01075 
01076 
01077         empresaBase()->commit();
01078         cargaasientos();
01079         muestraasiento(idasiento);
01080     } catch (...) {
01081         mensajeInfo("Error en los calculos");
01082         empresaBase()->rollback();
01083     } // end try
01084 }

void Asiento1View::on_mui_list_editFinish ( int  ,
int   
) [virtual, slot]

Definition at line 405 of file asiento1view.cpp.

References _depura(), and calculaypintatotales().

00405                                                   {
00406     _depura("Asiento1View::on_mui_list_editFinish", 0);
00407     calculaypintatotales();
00408     _depura("END Asiento1View::on_mui_list_editFinish", 0);
00409 }

void Asiento1View::on_mui_abrirasiento_clicked (  )  [virtual, slot]

Definition at line 787 of file asiento1view.cpp.

References _depura(), and Asiento1::abrir().

00787                                                {
00788     _depura("Asiento1View::on_mui_abrirasiento_clicked", 0);
00789     abrir();
00790     _depura("END Asiento1View::on_mui_abrirasiento_clicked", 0);
00791 }

void Asiento1View::on_mui_cerrarasiento_clicked (  )  [virtual, slot]

Returns:

Definition at line 798 of file asiento1view.cpp.

References _depura(), Asiento1::cerrar(), Ui_AsientoBase::m_descuadre, mensajeInfo(), and prepguardar().

00798                                                 {
00799     if (Fixed(m_descuadre->text()) != 0)  {
00800         mensajeInfo("Asiento descuadrado, no se puede cerrar");
00801         return;
00802     } // end if
00803     prepguardar();
00804     cerrar();
00805     _depura("END Asiento1View::on_mui_cerrarasiento_clicked", 0);
00806 }

void Asiento1View::on_mui_guardarasiento_clicked (  )  [virtual, slot]

Definition at line 812 of file asiento1view.cpp.

References _depura(), Asiento1::guardar(), and prepguardar().

00812                                                  {
00813     _depura("Asiento1View::on_mui_guardarasiento_clicked", 0);
00814     prepguardar();
00815     Asiento1::guardar();
00816     _depura("END Asiento1View::on_mui_guardarasiento_clicked", 0);
00817 }

void Asiento1View::on_mui_nuevoasiento_clicked (  )  [virtual, slot]

Definition at line 173 of file asiento1view.cpp.

References _depura(), iniciar_asiento_nuevo(), Ui_AsientoBase::mui_fecha, and BusquedaFecha::setText().

00173                                                {
00174     _depura("Asiento1View::on_mui_nuevoasiento_clicked", 0);
00175     mui_fecha->setText(QDate::currentDate().toString("dd/MM/yyyy"));
00176     iniciar_asiento_nuevo();
00177     _depura("END Asiento1View::on_mui_nuevoasiento_clicked", 0);
00178 }

void Asiento1View::on_mui_duplicar_clicked (  )  [virtual, slot]

Se ha pulsado sobre el botón de duplicar asiento.

Establecemos los parámetros para el nuevo asiento a duplicar.

Definition at line 264 of file asiento1view.cpp.

References _depura(), ListAsientos::boton_fin(), ListAsientos::cargaasientos(), FichaBc::empresaBase(), DuplicarAsientoView::inicializa(), and Ui_AsientoBase::mui_ordenasiento.

00264                                            {
00265     _depura("Asiento1View::on_mui_duplicar_clicked", 0);
00266     DuplicarAsientoView *dupli = new DuplicarAsientoView(empresaBase(), 0);
00268     dupli->inicializa(mui_ordenasiento->text(), mui_ordenasiento->text());
00269     dupli->exec();
00270     cargaasientos();
00271     boton_fin();
00272     delete dupli;
00273     _depura("END Asiento1View::on_mui_duplicar_clicked", 0);
00274 }

void Asiento1View::on_mui_inteligente_clicked (  )  [virtual, slot]

Se ha pulsado sobre el botón de generar asientos inteligentes.

El asiento esta abierto y por tanto se muestra como abierto.

Definition at line 282 of file asiento1view.cpp.

References _depura(), QWorkspace2::addWindow(), Asiento1::ASCerrado, asientoabiertop(), FichaBc::empresaBase(), Asiento1::estadoAsiento1(), Asiento1::idasiento(), aplinteligentesview::inicializa(), and EmpresaBase::pWorkspace().

00282                                               {
00283     _depura("Asiento1View::on_mui_inteligente_clicked", 0);
00284     int numasiento;
00285     if (estadoAsiento1() != Asiento1::ASCerrado) {
00287         asientoabiertop();
00288         numasiento = idasiento().toInt();
00289     } else {
00290         numasiento = 0;
00291     } // end if
00292     aplinteligentesview *nueva = new aplinteligentesview(empresaBase(), 0);
00293     nueva->inicializa(numasiento);
00294     empresaBase()->pWorkspace()->addWindow(nueva);
00295     nueva->show();
00296     _depura("END Asiento1View::on_mui_inteligente_clicked", 0);
00297 }

void Asiento1View::on_mui_fecha_returnPressed (  )  [virtual, slot]

Returns:

Usamos un semaforo para prevenir de entradas concurrentes.

Cambiar la fecha del asiento.

Definition at line 240 of file asiento1view.cpp.

References _depura(), Asiento1::ASCerrado, Asiento1::ASVacio, Asiento1::estadoAsiento1(), FALSE, Asiento1::guardar(), iniciar_asiento_nuevo(), Ui_AsientoBase::mui_fecha, DBRecord::setDBvalue(), BusquedaFecha::text(), and TRUE.

00240                                               {
00241     _depura("Asiento1View::on_mui_fecha_returnPressed", 0);
00243     static bool semaforo = FALSE;
00244     if (semaforo) return;
00245     semaforo = TRUE;
00247     if (estadoAsiento1() != Asiento1::ASCerrado && estadoAsiento1() != Asiento1::ASVacio) {
00248         setDBvalue("fecha", mui_fecha->text());
00249         Asiento1::guardar();
00250     } else {
00251         iniciar_asiento_nuevo();
00252     } // end if
00253     semaforo = FALSE;
00254     _depura("END Asiento1View::on_mui_fecha_returnPressed", 0);
00255 }

void Asiento1View::mui_ordenasiento_pulsadoIntro (  )  [slot]

Al pulsar return sobre el número de asiento se procede como si fuese una carga de dicho asiento.

Definition at line 824 of file asiento1view.cpp.

References _depura(), and boton_cargarasiento().

Referenced by eventos_mui_ordenasiento::eventFilter().

00824                                                  {
00825     _depura("Asiento1View::mui_ordenasiento_pulsadoIntro", 0);
00826     boton_cargarasiento();
00827     _depura("END Asiento1View::mui_ordenasiento_pulsadoIntro", 0);
00828 }

void Asiento1View::boton_cargarasiento (  )  [virtual, slot]

Definition at line 306 of file asiento1view.cpp.

References _depura(), postgresiface2::cargacursor(), Asiento1::cargar(), FichaBc::empresaBase(), cursor2::eof(), iniciar_asiento_nuevo(), Ui_AsientoBase::mui_ordenasiento, Asiento1::pintar(), and cursor2::valor().

Referenced by mui_ordenasiento_pulsadoIntro().

00306                                        {
00307     _depura("Asiento1View::boton_cargarasiento", 0);
00308     QString idas = "";
00309     QString query = "SELECT idasiento FROM asiento WHERE ordenasiento = " + mui_ordenasiento->text() + " ORDER BY ordenasiento DESC";
00310     cursor2 *curs = empresaBase()->cargacursor(query);
00311     if (!curs->eof()) {
00312         idas = curs->valor("idasiento");
00313         cargar(idas);
00314     } else {
00316         if (QMessageBox::question(this,
00317                                   tr("Asiento inexistente."),
00318                                   tr("Desea crear un nuevo asiento en esa posicion?"),
00319                                   tr("&Si"), tr("&No"), 0, 0, 1) == 0) {
00320             iniciar_asiento_nuevo(mui_ordenasiento->text());
00321         } // end if
00322         pintar();
00323     } // end if
00324     delete curs;
00325     _depura("END Asiento1View::boton_cargarasiento", 0);
00326 }


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