SubForm2Bc Class Reference

#include <subform2bc.h>

Inheritance diagram for SubForm2Bc:

SubForm3 BLWidget Ui_SubForm3Base QWidget PEmpresaBase AmortizacionSubForm AsientoListSubform BalanceSubForm DiarioSubForm ExtractoSubForm ListConfiguracionSubForm ListLinAsiento1View

Public Slots

virtual void on_mui_list_pressedSlash (int row, int col)
virtual void on_mui_list_pressedAsterisk (int row, int col)

Public Member Functions

EmpresaempresaBase ()
 SubForm2Bc (QWidget *parent=0)
virtual ~SubForm2Bc ()
virtual void boton_asiento ()
 Muestra la ventana de asiento.
virtual void boton_extracto1 (int)
virtual void boton_balance1 (int)
virtual void boton_diario1 (int)
virtual void creaMenu (QMenu *)
virtual void procesaMenu (QAction *)
virtual void setEmpresaBase (EmpresaBase *c)
virtual void on_mui_list_cellChanged (int row, int col)

Data Fields

QSubForm2BcDelegatem_delegate

Detailed Description

Definition at line 52 of file subform2bc.h.


Constructor & Destructor Documentation

SubForm2Bc::SubForm2Bc ( QWidget parent = 0  ) 

Parameters:
parent 

Definition at line 43 of file subform2bc.cpp.

References _depura(), m_delegate, and Ui_SubForm3Base::mui_list.

00043                                       : SubForm3(parent) {
00044     _depura("SubForm2Bc::SubForm2Bc", 0);
00045     m_delegate = new QSubForm2BcDelegate(this);
00046     mui_list->setItemDelegate(m_delegate);
00047     _depura("END SubForm2Bc::SubForm2Bc", 0);
00048 }

SubForm2Bc::~SubForm2Bc (  )  [virtual]

Definition at line 54 of file subform2bc.cpp.

References _depura(), and m_delegate.

00054                         {
00055     _depura("SubForm2Bc::~SubForm2Bc", 0);
00056     delete m_delegate;
00057     _depura("END SubForm2Bc::~SubForm2Bc", 0);
00058 }


Member Function Documentation

Empresa * SubForm2Bc::empresaBase (  )  [virtual]

Returns:

Reimplemented from PEmpresaBase.

Definition at line 77 of file subform2bc.cpp.

References _depura(), and PEmpresaBase::empresaBase().

Referenced by boton_asiento(), boton_balance1(), boton_diario1(), boton_extracto1(), RegIVAQToolButton::click(), QSubForm2BcDelegate::createEditor(), ListLinAsiento1View_boton_iva(), on_mui_list_cellChanged(), on_mui_list_pressedAsterisk(), AmortizacionSubForm::procesaMenu(), QSubForm2BcDelegate::setModelData(), ListLinAsiento1View::totaldebe(), and ListLinAsiento1View::totalhaber().

00077                                  {
00078     _depura("SubForm2Bc::empresaBase", 0);
00079     _depura("END SubForm2Bc::empresaBase", 0);
00080     return ((Empresa *) PEmpresaBase::empresaBase());
00081 }

void SubForm2Bc::boton_asiento (  )  [virtual]

Muestra la ventana de asiento.

Definition at line 302 of file subform2bc.cpp.

References _depura(), SubForm3::DBvalue(), empresaBase(), Empresa::intapuntsempresa(), Empresa::muestraapuntes1(), and Asiento1View::muestraasiento().

Referenced by BalanceSubForm::contextMenuEvent(), AsientoListSubform::contextMenuEvent(), AmortizacionSubForm::procesaMenu(), ListLinAsiento1View::s_trataMenu(), ExtractoSubForm::s_trataMenu(), and DiarioSubForm::s_trataMenu().

00302                                {
00303     _depura("SubForm2Bc::boton_asiento", 0);
00304     Empresa *companyact = (Empresa *) empresaBase();
00305     QString numasiento = DBvalue("idasiento");
00306     if (numasiento != "") {
00307         companyact->intapuntsempresa()->muestraasiento(numasiento.toInt());
00308         companyact->muestraapuntes1();
00309     } // end if
00310     _depura("END SubForm2Bc::boton_asiento", 0);
00311 }

void SubForm2Bc::boton_extracto1 ( int  tipo  )  [virtual]

Parameters:
tipo 

Definition at line 321 of file subform2bc.cpp.

References _depura(), extractoview1::accept(), SubForm3::DBvalue(), empresaBase(), Empresa::extractoempresa(), extractoview1::inicializa1(), Empresa::libromayor(), and normalizafecha().

Referenced by BalanceSubForm::contextMenuEvent(), AsientoListSubform::contextMenuEvent(), ListLinAsiento1View::s_trataMenu(), and DiarioSubForm::s_trataMenu().

00321                                          {
00322     _depura("SubForm2Bc::boton_extracto1", 0);
00323     Empresa *companyact = (Empresa *) empresaBase();
00324     QDate fecha1, fecha2, fechaact;
00325     QString fecha = DBvalue("fecha").left(10);
00326     QString codigo = DBvalue("codigo");
00327     if (fecha != "" && codigo != "") {
00328         fechaact = normalizafecha(fecha);
00329         switch (tipo) {
00330         case 0:
00331             fecha1.setYMD(fechaact.year(), fechaact.month(), fechaact.day());
00332             fecha2.setYMD(fechaact.year(), fechaact.month(), fechaact.day());
00333             break;
00334         case 1:
00335             fecha1.setYMD(fechaact.year(), fechaact.month(), 1);
00336             fecha2.setYMD(fechaact.year(), fechaact.month(), fechaact.daysInMonth());
00337             break;
00338         case 2:
00339             fecha1.setYMD(fechaact.year(), 1, 1);
00340             fecha2.setYMD(fechaact.year(), 12, 31);
00341             break;
00342         } // end switch
00343         companyact->extractoempresa()->inicializa1(codigo, codigo, fecha1.toString("dd/MM/yyyy"), fecha2.toString("dd/MM/yyyy"), 0);
00344         companyact->extractoempresa()->accept();
00345         companyact->libromayor();
00346     } // end if
00347     _depura("END SubForm2Bc::boton_extracto1", 0);
00348 }

void SubForm2Bc::boton_balance1 ( int  tipo  )  [virtual]

Parameters:
tipo 

Definition at line 394 of file subform2bc.cpp.

References _depura(), BalanceView::accept(), Empresa::balanceempresa(), SubForm3::DBvalue(), empresaBase(), BalanceView::inicializa1(), Empresa::librobalance(), and normalizafecha().

Referenced by BalanceSubForm::contextMenuEvent(), AsientoListSubform::contextMenuEvent(), ListLinAsiento1View::s_trataMenu(), ExtractoSubForm::s_trataMenu(), and DiarioSubForm::s_trataMenu().

00394                                         {
00395     _depura("SubForm2Bc::boton_balance1", 0);
00396     Empresa *companyact = (Empresa *) empresaBase();
00397     QString fecha = DBvalue("fecha").left(10);
00398     QString codigo = DBvalue("codigo");
00399     QDate fecha1, fecha2, fechaact, fechaact1;
00400     if (fecha != "" && codigo != "") {
00401         fechaact = normalizafecha(fecha);
00402         switch (tipo) {
00403         case 0:
00404             fecha1.setYMD(fechaact.year(), fechaact.month(), fechaact.day());
00405             fecha2.setYMD(fechaact1.year(), fechaact.month(), fechaact.day());
00406             break;
00407         case 1:
00408             fecha1.setYMD(fechaact.year(), fechaact.month(), 1);
00409             fecha2.setYMD(fechaact.year(), fechaact.month(), fechaact.daysInMonth());
00410             break;
00411         case 2:
00412             fecha1.setYMD(fechaact.year(), 1, 1);
00413             fecha2.setYMD(fechaact.year(), 12, 31);
00414             break;
00415         } // end switch
00416         empresaBase()->balanceempresa()->inicializa1(codigo, codigo, fecha1.toString("dd/MM/yyyy"), fecha2.toString("dd/MM/yyyy"), "0");
00417         companyact->balanceempresa()->accept();
00418         companyact->librobalance();
00419     } // end if
00420     _depura("END SubForm2Bc::boton_balance1", 0);
00421 }

void SubForm2Bc::boton_diario1 ( int  tipo  )  [virtual]

Parameters:
tipo 

Definition at line 358 of file subform2bc.cpp.

References _depura(), DiarioView::accept(), SubForm3::DBvalue(), Empresa::diarioempresa(), empresaBase(), DiarioView::inicializa1(), Empresa::librodiario(), and normalizafecha().

Referenced by ExtractoSubForm::s_trataMenu().

00358                                        {
00359     _depura("SubForm2Bc::boton_diario1", 0);
00360     Empresa *companyact = (Empresa *) empresaBase();
00361     QDate fecha1, fecha2, fechaact, fechaact1;
00362     fechaact = normalizafecha(DBvalue("fecha").left(10));
00363     fechaact1 = normalizafecha(DBvalue("fecha").left(10));
00364     if (DBvalue("fecha").left(10) != "") {
00365         switch (tipo) {
00366         case 0:
00367             fecha1.setYMD(fechaact.year(), fechaact.month(), fechaact.day());
00368             fecha2.setYMD(fechaact1.year(), fechaact1.month(), fechaact1.day());
00369             break;
00370         case 1:
00371             fecha1.setYMD(fechaact.year(), fechaact.month(), 1);
00372             fecha2.setYMD(fechaact.year(), fechaact.month(), fechaact.daysInMonth());
00373             break;
00374         case 2:
00375             fecha1.setYMD(fechaact.year(), 1, 1);
00376             fecha2.setYMD(fechaact.year(), 12, 31);
00377             break;
00378         } // end switch
00379         companyact->diarioempresa()->inicializa1((char *) fecha1.toString("dd/MM/yyyy").toAscii().constData(), (char *) fecha2.toString("dd/MM/yyyy").toAscii().constData(), 0);
00380     } // end if
00381     companyact->diarioempresa()->accept();
00382     companyact->librodiario();
00383     _depura("SubForm2Bc::boton_diario1", 0);
00384 }

void SubForm2Bc::creaMenu ( QMenu *  menu  )  [virtual]

Parameters:
menu 

Reimplemented from SubForm3.

Reimplemented in AmortizacionSubForm.

Definition at line 430 of file subform2bc.cpp.

References _depura().

00430                                      {
00431     _depura("SubForm2Bc::pintaMenu", 0);
00432     menu->addAction(tr("Submenu de contabilidad"));
00433     menu->addSeparator();
00434     _depura("END SubForm2Bc::pintaMenu", 0);
00435 }

void SubForm2Bc::procesaMenu ( QAction *   )  [virtual]

Reimplemented from SubForm3.

Reimplemented in AmortizacionSubForm.

Definition at line 441 of file subform2bc.cpp.

References _depura().

00441                                       {
00442     _depura("SubForm2Bc::procesaMenu", 0);
00443     _depura("END SubForm2Bc::procesaMenu", 0);
00444 }

void SubForm2Bc::setEmpresaBase ( EmpresaBase c  )  [virtual]

Parameters:
c 

Reimplemented from SubForm3.

Definition at line 65 of file subform2bc.cpp.

References _depura(), m_delegate, and PEmpresaBase::setEmpresaBase().

Referenced by AmortizacionesView::AmortizacionesView(), AmortizacionView::AmortizacionView(), Asiento1View::Asiento1View(), AsientosView::AsientosView(), ccosteview::ccosteview(), cobropagoview::cobropagoview(), DiarioView::DiarioView(), extractoview1::extractoview1(), ListProyectosView::ListProyectosView(), ListRegistroIvaView::ListRegistroIvaView(), ProyectoView::ProyectoView(), and RegistroIvaView::RegistroIvaView().

00065                                               {
00066     _depura("SubForm2Bc::setEmpresaBase", 0);
00067     PEmpresaBase::setEmpresaBase(c);
00068     m_delegate->setEmpresaBase(c);
00069     _depura("END SubForm2Bc::setEmpresaBase", 0);
00070 }

void SubForm2Bc::on_mui_list_cellChanged ( int  row,
int  col 
) [virtual]

Parameters:
row 
col 
Returns:

Miramos el estado del semaforo para saber si es una entrada concurrente.

Disparamos los plugins.

Refrescamos el campo actual para que tenga los valores correctos.

Si el campo no ha sido cambiado se sale.

Reimplemented from SubForm3.

Definition at line 195 of file subform2bc.cpp.

References _depura(), DBCampo::cambiado(), postgresiface2::cargacursor(), empresaBase(), cursor2::eof(), DBRecord::exists(), extiendecodigo(), FALSE, g_plugins, SubForm3::item(), Plugins::lanza(), SubForm3::lineaat(), SubForm3::m_procesacambios, DBCampo::nomcampo(), normalizafecha(), SubForm3::on_mui_list_cellChanged(), SDBCampo::refresh(), DBRecord::setDBvalue(), TRUE, and cursor2::valor().

Referenced by on_mui_list_pressedAsterisk().

00195                                                          {
00196     _depura("SubForm2Bc::on_mui_list_cellChanged", 0, "Row: "+ QString::number(row) + " Col: "+QString::number(col));
00197 
00199     if (!m_procesacambios) {
00200         _depura("SubForm2Bc::on_mui_list_cellChanged", 0, QString::number(row) + " " + QString::number(col)+" m_procesacambios es FALSE");
00201         return;
00202     } // end if
00203 
00204     m_procesacambios = FALSE;
00205 
00207     int res = g_plugins->lanza("SubForm2Bc_on_mui_list_cellChanged", this);
00208     if (res != 0) {
00209         m_procesacambios = TRUE;
00210         return;
00211     } // end if
00212 
00213     SDBRecord *rec = lineaat(row);
00214     if (rec == NULL) {
00215         _depura ("END SubForm2Bc::on_mui_list_cellChanged", 0, QString::number(row) + " " + QString::number(col)+ "la linea no existe");
00216         m_procesacambios = TRUE;
00217         return;
00218     }
00219 
00220 
00222     SDBCampo *camp = (SDBCampo *) item(row, col);
00223     camp->refresh();
00224 
00225 
00227     if (!camp->cambiado()) {
00228         _depura ("END SubForm2Bc::on_mui_list_cellChanged", 0, QString::number(row) + " " + QString::number(col)+ "Sin cambios");
00229         SubForm3::on_mui_list_cellChanged(row, col);
00230         m_procesacambios = TRUE;
00231         return;
00232     } // end if
00233 
00234     if (camp->nomcampo() == "codigo" && camp->text() != "*") {
00235         QString codigoext = extiendecodigo(camp->text(), ((Empresa *) empresaBase())->numdigitosempresa());
00236         QString query = "SELECT idcuenta, codigo, tipocuenta, descripcion, idc_coste FROM cuenta WHERE codigo = '" + codigoext + "'";
00237         cursor2 *cur = empresaBase()->cargacursor(query);
00238         if (!cur->eof() ) {
00239             rec->setDBvalue("idcuenta", cur->valor("idcuenta"));
00240             rec->setDBvalue("codigo", cur->valor("codigo"));
00241             rec->setDBvalue("tipocuenta", cur->valor("tipocuenta"));
00242             rec->setDBvalue("descripcioncuenta", cur->valor("descripcion"));
00243             if (rec->exists("idc_coste") && cur->valor("idc_coste") != "") {
00244                 rec->setDBvalue("idc_coste", cur->valor("idc_coste"));
00245                 QString query1 = "SELECT * FROM c_coste WHERE idc_coste = " +cur->valor("idc_coste");
00246                 cursor2 *curss = empresaBase()->cargacursor(query1);
00247                 rec->setDBvalue("nomc_coste", curss->valor("nombre"));
00248                 delete curss;
00249             } // end if
00250         } else {
00251             _depura("No existe cuenta", 2);
00252             return;
00253         } // end if
00254         delete cur;
00255     } // end if
00256     if (camp->nomcampo() == "nomcanal") {
00257         QString query = "SELECT idcanal FROM canal WHERE nombre = '" + camp->text() + "'";
00258         cursor2 *cur = empresaBase()->cargacursor(query);
00259         if (!cur->eof() ) {
00260             rec->setDBvalue("idcanal", cur->valor("idcanal"));
00261         } else {
00262             rec->setDBvalue("idcanal", "");
00263         } // end if
00264         delete cur;
00265     } // end if
00266     if (camp->nomcampo() == "nomc_coste") {
00267         QString query = "SELECT idc_coste FROM c_coste WHERE nombre = '" + camp->text() + "'";
00268         cursor2 *cur = empresaBase()->cargacursor(query);
00269         if (!cur->eof() ) {
00270             rec->setDBvalue("idc_coste", cur->valor("idc_coste"));
00271         } else {
00272             rec->setDBvalue("idc_coste", "");
00273         } // end if
00274         delete cur;
00275     } // end if
00276     if (camp->nomcampo() == "fecha") {
00277         QString nfecha = normalizafecha(camp->text()).toString("dd/MM/yyyy");
00278         rec->setDBvalue("fecha", nfecha);
00279     } // end if
00280     if (camp->nomcampo() == "debe") {
00281         if (Fixed(camp->text()) != Fixed("0.00")) {
00282             rec->setDBvalue("haber", "0.00");
00283         } // end if
00284     } // end if
00285     if (camp->nomcampo() == "haber") {
00286         if (Fixed(camp->text()) != Fixed("0.00")) {
00287             rec->setDBvalue("debe", "0.00");
00288         } // end if
00289     } // end if
00290 
00291     g_plugins->lanza("SubForm2Bc_on_mui_list_cellChanged_post", this);
00292 
00293     SubForm3::on_mui_list_cellChanged(row, col);
00294     m_procesacambios = TRUE;
00295     _depura("END SubForm2Bc::on_mui_list_cellChanged", 0);
00296 }

void SubForm2Bc::on_mui_list_pressedSlash ( int  row,
int  col 
) [virtual, slot]

Parameters:
row 
col1 
Returns:

Reimplemented from SubForm3.

Definition at line 159 of file subform2bc.cpp.

References _depura(), editaTexto(), SubForm3::item(), DBCampo::nomcampo(), and SDBCampo::set().

00159                                                           {
00160     _depura("SubForm2Bc::on_mui_list_pressedSlash", 2);
00161     SDBCampo *camp = (SDBCampo *) item(row, col);
00162     if (camp->nomcampo() == "fecha") {
00163         if (row > 0) {
00164                 SDBCampo *campoant = (SDBCampo *) item(row - 1, col);
00165                 camp->set(campoant->text());
00166         } // end if
00167         return;
00168     } // end if
00169     if (camp->nomcampo() == "descripcion") {
00170         if (row > 0) {
00171                 SDBCampo *campoant = (SDBCampo *) item(row - 1, col);
00172                 camp->set(campoant->text());
00173         } // end if
00174         return;
00175     } // end if
00176     if (camp->nomcampo() == "conceptocontable") {
00177         if (row > 0) {
00178                 SDBCampo *campoant = (SDBCampo *) item(row - 1, col);
00179                 camp->set(campoant->text());
00180         } // end if
00181         return;
00182     } // end if
00183     QString text = editaTexto(camp->text());
00184     camp->set(text);
00185     _depura("END SubForm2Bc::on_mui_list_pressedSlash", 2);
00186 }

void SubForm2Bc::on_mui_list_pressedAsterisk ( int  row,
int  col 
) [virtual, slot]

Parameters:
row 
col 
Returns:

Si no es un campo de tipo codigo salimos.

Nos llevamos el foco para que no haya un EditorDelegado que no se actualice bien.

TODO: De esta manera se recarga de la base de datos toda la info de las cuentas cada vez que se necesita la lista de cuentas. Hay que buscar la manera de que este siempre disponible para no cargar el trabajo a la red ni al gestor de base de datos.

Invocamos la finalizacion de edicion para que todos los campos se actualicen.

Reimplemented from SubForm3.

Definition at line 90 of file subform2bc.cpp.

References _depura(), postgresiface2::cargacursor(), listcuentasview1::codcuenta(), empresaBase(), cursor2::eof(), DBRecord::exists(), FALSE, listcuentasview1::inicializa(), SubForm3::item(), SubForm3::lineaat(), SubForm3::m_procesacambios, Ui_SubForm3Base::mui_list, DBCampo::nomcampo(), on_mui_list_cellChanged(), listcuentasview1::SelectMode, DBRecord::setDBvalue(), TRUE, and cursor2::valor().

00090                                                              {
00091     _depura ("SubForm2Bc::on_mui_list_pressedAsterisk", 0);
00092 
00093     SDBRecord *rec = lineaat(row);
00094     SDBCampo *camp = (SDBCampo *) item(row, col);
00096     if (camp->nomcampo() != "codigo" && camp->nomcampo() != "codigoctacliente")
00097         return;
00098 
00099     m_procesacambios = FALSE;
00100 
00102 
00103     mui_list->setCurrentCell(row, col +1);
00104     QDialog *diag = new QDialog(0);
00105     diag->setModal(true);
00109     listcuentasview1 *listcuentas = new listcuentasview1((Empresa *)empresaBase(), diag, 0, listcuentasview1::SelectMode);
00110     listcuentas->inicializa();
00111     connect(listcuentas, SIGNAL(selected(QString)), diag, SLOT(accept()));
00112 
00113     diag->exec();
00114     QString codigo = listcuentas->codcuenta();
00115     //delete diag;
00116 
00117     if (codigo != "") {
00118         QString query = "SELECT * FROM cuenta WHERE codigo = '" + codigo + "'";
00119         cursor2 *cur = empresaBase()->cargacursor(query);
00120         if (!cur->eof()) {
00121             if (camp->nomcampo() == "codigo") {
00122                 rec->setDBvalue("idcuenta", cur->valor("idcuenta"));
00123                 rec->setDBvalue("codigo", cur->valor("codigo"));
00124                 rec->setDBvalue("tipocuenta", cur->valor("tipocuenta"));
00125                 rec->setDBvalue("descripcion", cur->valor("descripcion"));
00126                 if (rec->exists("idc_coste") && cur->valor("idc_coste") != "") {
00127                     rec->setDBvalue("idc_coste", cur->valor("idc_coste"));
00128                     QString query1 = "SELECT * FROM c_coste WHERE idc_coste = " +cur->valor("idc_coste");
00129                     cursor2 *curss = empresaBase()->cargacursor(query1);
00130                     rec->setDBvalue("nomc_coste", curss->valor("nombre"));
00131                     delete curss;
00132                 } // end if
00133 
00134             } // end if
00135             if (camp->nomcampo() == "codigoctacliente") {
00136                 rec->setDBvalue("idctacliente", cur->valor("idcuenta"));
00137                 rec->setDBvalue("codigoctacliente", cur->valor("codigo"));
00138                 rec->setDBvalue("tipoctacliente", cur->valor("tipocuenta"));
00139                 rec->setDBvalue("nomctacliente", cur->valor("descripcion"));
00140 
00141             } // end if
00142         } // end if
00143         delete cur;
00144     } // end if
00145 
00146     m_procesacambios = TRUE;
00148     on_mui_list_cellChanged(row, col);
00149     _depura ("END SubForm2Bc::on_mui_list_pressedAsterisk", 0);
00150 }


Field Documentation

QSubForm2BcDelegate* SubForm2Bc::m_delegate

Definition at line 56 of file subform2bc.h.

Referenced by setEmpresaBase(), SubForm2Bc(), and ~SubForm2Bc().


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