Something went wrong. Try again.
Billing program for the appliance repair company Seoane.
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430#include "MainWindow.h"#include "../Negocio/Factura.h"#include "NuevoClienteDialog.h"#include "NuevoArticuloDialog.h"#include "NuevaFacturaDialog.h"#include "NuevoPresupuestoDialog.h"#include "ListarClientes.h"#include "BuscarFacturaDialog.h"#include "CambiarIvaDialog.h"#include <QtGui>#include "ListarFacturas.h"#include "ListarPresupuestos.h"#include "ListarArticulos.h"#include <list>#include <iostream>#include <QThread>#include "BuscarClienteDialog.h"#include "BuscarArticuloDialog.h"#include "BuscarPresupuestoDialog.h"#include "ConfigurarImpresora.h"#include <QTextDocument>#include "VisorAyuda.h"#include "imprimirsobrecliente.h"
using namespace std;/*template<class A, class B> class Conversion { typedef char S_True; class S_False {char dummy[2];} static A CrearInstancia(); static S_True Test(B);static S_False Test(�);public: enum { existe = ( sizeof(Test(CrearInstancia())) == sizeof(S_True) ) };};*/void MainThread::setPadre(QWorkspace* parent) { mw = parent;}void MainThread::run() { while (true) { usleep(500000); /** * Actualizador de listados abiertos. */ QWidgetList windows = mw->windowList(); if (windows.isEmpty()) continue; for (int i = 0; i < windows.size(); ++i) { QWidget * child = windows.at(i); ListarArticulos *la = dynamic_cast<ListarArticulos *>( child ); if (la != 0) { /*El hijo es de tipo Listar Articulos. */ la->actualizar(); } ListarFacturas *lf = dynamic_cast<ListarFacturas *>( child ); if (lf != 0) { /*El hijo es de tipo Listar Facturas. */ lf->actualizar(); } ListarPresupuestos *lp = dynamic_cast<ListarPresupuestos *>(child); if (lp != 0) { /*El hijo es de tipo Listar Presupuestos. */ lp->actualizar(); } ListarClientes *lc = dynamic_cast<ListarClientes *>(child); if (lc != 0) { /*El hijo es de tipo Listar Clientes*/ lc->actualizar(); } } }}
MainWindow::MainWindow(CapaNegocio * const cn, QMainWindow *parent) : QMainWindow(parent){ workspace = new QWorkspace; setWindowIcon(QIcon("Gui/images/icono.ico")); workspace->setBackground(QBrush(QImage("Gui/images/textura.png"))); setCentralWidget(workspace); capaNegocio = cn;
windowMapper = new QSignalMapper(this); connect(windowMapper, SIGNAL(mapped(QWidget *)), workspace, SLOT(setActiveWindow(QWidget *))); connect(workspace, SIGNAL(windowActivated(QWidget *)), this, SLOT(updateMenus())); createActions(); createMenus(); createToolBar(); createStatusBar();
actualizador = new MainThread(); actualizador->setPadre(workspace); actualizador->start(); setWindowTitle(tr("Seoane"));}
MainWindow::~MainWindow(){ actualizador->quit();}//Acciones del menu facturasvoid MainWindow::listarFacturas() { ListarFacturas *lf = new ListarFacturas(capaNegocio, workspace); workspace->addWindow(lf); lf->show(); statusBar()->showMessage(tr("Total Facturas: %1").arg(capaNegocio->getTotalFacturas()));}void MainWindow::nuevaFactura() { NuevaFacturaDialog *nfd = new NuevaFacturaDialog(capaNegocio, workspace); workspace->addWindow(nfd); nfd->show(); statusBar()->showMessage(tr("Nueva factura."));}
void MainWindow::buscarFactura() { BuscarFacturaDialog *bfd = new BuscarFacturaDialog(capaNegocio, workspace); workspace->addWindow(bfd); bfd->show();}
//Acciones del menu presupuestosvoid MainWindow::listarPresupuestos() { ListarPresupuestos *lp = new ListarPresupuestos(capaNegocio, workspace); workspace->addWindow(lp); lp->show(); statusBar()->showMessage(tr("Total Presupuestos: %1").arg(capaNegocio->getTotalPresupuestos()));}
void MainWindow::buscarPresupuestos() { BuscarPresupuestoDialog *bfd = new BuscarPresupuestoDialog(capaNegocio, workspace); workspace->addWindow(bfd); bfd->show();}
void MainWindow::nuevoPresupuestos() { NuevoPresupuestoDialog *nfd = new NuevoPresupuestoDialog(capaNegocio, workspace); workspace->addWindow(nfd); nfd->show(); statusBar()->showMessage(tr("Nuevo presupuesto."));}
//Acciones del menu articulosvoid MainWindow::altaArticulos() { NuevoArticuloDialog *aad = new NuevoArticuloDialog(capaNegocio,workspace); workspace->addWindow(aad); aad->show();}
void MainWindow::buscarArticulos() { BuscarArticuloDialog* bcd = new BuscarArticuloDialog(capaNegocio,workspace); workspace->addWindow(bcd); bcd->show();}
void MainWindow::listarArticulos() { ListarArticulos *la = new ListarArticulos(capaNegocio, workspace); workspace->addWindow(la); la->show(); statusBar()->showMessage(tr("Total Articulos: %1").arg(capaNegocio->getTotalArticulos()));}
//Acciones del menu clientesvoid MainWindow::nuevoCliente(){ NuevoClienteDialog *ncd = new NuevoClienteDialog(capaNegocio,workspace); workspace->addWindow(ncd); ncd->show();}void MainWindow::buscarCliente(){ BuscarClienteDialog* bcd = new BuscarClienteDialog(capaNegocio,workspace); workspace->addWindow(bcd); bcd->show();}void MainWindow::listarCliente(){ ListarClientes *lc = new ListarClientes(capaNegocio, workspace); workspace->addWindow(lc); lc->show(); statusBar()->showMessage(tr("Total Clientes: %1").arg(capaNegocio->getTotalClientes()));}
void MainWindow::imprimirClientes(){ ImprimirSobreCliente *isc = new ImprimirSobreCliente(workspace, capaNegocio ); workspace->addWindow(isc); isc->show(); statusBar()->showMessage(tr("Imprimir Sobre Clientes: "));}
//Acciones del menu ayudavoid MainWindow::acercaDeAyuda() { QMessageBox::about(this, tr("Acerca de Seoane Facturaci�n"), tr("<h2>Seoane v1.0.4-beta</h2>" "<p>Copyright © 2007 Maite Simon & Marcos Gabarda</p>" "<h5><i>Programa bajo licencia GPL 3.0</i></h5>"));}void MainWindow::ayudaAyuda() { VisorAyuda *va = new VisorAyuda(this); workspace->addWindow(va); va->show();}void MainWindow::cambiarIva() { CambiarIvaDialog *civa = new CambiarIvaDialog(capaNegocio, this); workspace->addWindow(civa); civa->show();}
void MainWindow::configurarImpresora() { ConfigurarImpresora *ci = new ConfigurarImpresora(this); workspace->addWindow(ci); ci->show();}
void MainWindow::createActions() {
//menu facturas listarFacturasAction = new QAction(tr("&Listar"), this); listarFacturasAction->setIcon(QIcon(QString::fromUtf8("Gui/images/LFactura.PNG"))); connect(listarFacturasAction, SIGNAL(triggered()), this, SLOT(listarFacturas()));
nuevaFacturaAction = new QAction(tr("&Nueva"), this); nuevaFacturaAction->setIcon(QIcon(QString::fromUtf8("Gui/images/NFactura.PNG"))); connect(nuevaFacturaAction, SIGNAL(triggered()), this, SLOT(nuevaFactura()));
buscarFacturaAction = new QAction(tr("&Buscar"), this); buscarFacturaAction->setIcon(QIcon(QString::fromUtf8("Gui/images/BFactura.PNG"))); connect(buscarFacturaAction, SIGNAL(triggered()), this, SLOT(buscarFactura()));
//menu presupuestos listarPresupuestosAction = new QAction(tr("&Listar"), this); listarPresupuestosAction->setIcon(QIcon(QString::fromUtf8("Gui/images/LPresupuesto.PNG"))); connect(listarPresupuestosAction, SIGNAL(triggered()), this, SLOT(listarPresupuestos()));
nuevoPresupuestosAction = new QAction(tr("&Nuevo"), this); nuevoPresupuestosAction->setIcon(QIcon(QString::fromUtf8("Gui/images/NPresupuesto.PNG"))); connect(nuevoPresupuestosAction, SIGNAL(triggered()), this, SLOT(nuevoPresupuestos()));
buscarPresupuestosAction = new QAction(tr("&Buscar"), this); buscarPresupuestosAction->setIcon(QIcon(QString::fromUtf8("Gui/images/BPresupuesto.PNG"))); connect(buscarPresupuestosAction, SIGNAL(triggered()), this, SLOT(buscarPresupuestos()));
//menu articulos
altaArticulosAction = new QAction(tr("&Alta"), this); altaArticulosAction->setIcon(QIcon(QString::fromUtf8("Gui/images/NArticulo.PNG"))); connect(altaArticulosAction, SIGNAL(triggered()), this, SLOT(altaArticulos()));
buscarArticulosAction = new QAction(tr("&Buscar"), this); buscarArticulosAction->setIcon(QIcon(QString::fromUtf8("Gui/images/BArticulo.PNG"))); connect(buscarArticulosAction, SIGNAL(triggered()), this, SLOT(buscarArticulos())); listarArticulosAction = new QAction(tr("&Listar"), this); listarArticulosAction->setIcon(QIcon(QString::fromUtf8("Gui/images/LArticulo.PNG"))); connect(listarArticulosAction, SIGNAL(triggered()), this, SLOT(listarArticulos()));
//menu clientes nuevoClienteAction = new QAction(tr("&Nuevo"), this); nuevoClienteAction->setIcon(QIcon(QString::fromUtf8("Gui/images/NCliente.png"))); connect(nuevoClienteAction, SIGNAL(triggered()), this, SLOT(nuevoCliente()));
buscarClienteAction = new QAction(tr("&Buscar"), this); buscarClienteAction->setIcon(QIcon(QString::fromUtf8("Gui/images/BCliente.png"))); connect(buscarClienteAction, SIGNAL(triggered()), this, SLOT(buscarCliente()));
listarClienteAction = new QAction(tr("&Listar"), this); listarClienteAction->setIcon(QIcon(QString::fromUtf8("Gui/images/LCliente.png"))); connect(listarClienteAction, SIGNAL(triggered()), this, SLOT(listarCliente()));
imprimirClienteAction = new QAction(tr("&Imprimir"), this); imprimirClienteAction->setIcon(QIcon(QString::fromUtf8("Gui/images/LCliente.png"))); connect(imprimirClienteAction, SIGNAL(triggered()), this, SLOT(imprimirClientes())); //menu ayuda acercaDeAyudaAction = new QAction(tr("&Acera de"), this); connect(acercaDeAyudaAction, SIGNAL(triggered()), this, SLOT(acercaDeAyuda()));
ayudaAyudaAction = new QAction(tr("&Ayuda"), this); connect(ayudaAyudaAction, SIGNAL(triggered()), this, SLOT(ayudaAyuda())); //Menu ventanas closeAction = new QAction(tr("&Cerrar"), this); closeAction->setShortcut(tr("Ctrl+F4")); closeAction->setStatusTip(tr("Cierra la ventana activa.")); connect(closeAction, SIGNAL(triggered()), workspace, SLOT(closeActiveWindow())); closeAllAction = new QAction(tr("Cerrar &Todo"), this); closeAllAction->setStatusTip(tr("Cierra todas las ventanas.")); connect(closeAllAction, SIGNAL(triggered()), workspace, SLOT(closeAllWindows()));
tileAction = new QAction(tr("&Tile"), this); tileAction->setStatusTip(tr("Organiza las ventanas por valdosas.")); connect(tileAction, SIGNAL(triggered()), workspace, SLOT(tile()));
cascadeAction = new QAction(tr("&Cascada"), this); cascadeAction->setStatusTip(tr("Organiza las ventanas en cascada.")); connect(cascadeAction, SIGNAL(triggered()), workspace, SLOT(cascade()));
nextAction = new QAction(tr("&Siguiente"), this); nextAction->setStatusTip(tr("Se mueve a la siguiente ventana.")); connect(nextAction, SIGNAL(triggered()), workspace, SLOT(activateNextWindow()));
previousAction = new QAction(tr("&Anterior"), this); previousAction->setStatusTip(tr("Se mueve a la ventana anterior.")); connect(previousAction, SIGNAL(triggered()), workspace, SLOT(activatePreviousWindow())); cambiarIvaAction = new QAction(tr("Cambiar IVA"), this); connect(cambiarIvaAction, SIGNAL(triggered()), this, SLOT(cambiarIva())); //configurarImpresoraAction = new QAction(tr("Configurar Impresora"), this); //connect(configurarImpresoraAction, SIGNAL(triggered()), this, SLOT(configurarImpresora()));
}
void MainWindow::createMenus() { facturasMenu = menuBar()->addMenu(tr("&Facturas")); presupuestosMenu = menuBar()->addMenu(tr("&Presupuestos")); articulosMenu=menuBar()->addMenu(tr("&Articulos")); clientesMenu=menuBar()->addMenu(tr("&Clientes")); windowMenu=menuBar()->addMenu(tr("&Ventanas")); configMenu=menuBar()->addMenu(tr("Con&figuracion")); ayudaMenu=menuBar()->addMenu(tr("&Ayuda")); //crea el menu facturas facturasMenu->addAction(listarFacturasAction); facturasMenu->addAction(nuevaFacturaAction); facturasMenu->addAction(buscarFacturaAction);
//crea menu presupuestos presupuestosMenu->addAction(listarPresupuestosAction); presupuestosMenu->addAction(nuevoPresupuestosAction); presupuestosMenu->addAction(buscarPresupuestosAction);
//crea el menu articulo articulosMenu->addAction(altaArticulosAction); articulosMenu->addAction(buscarArticulosAction); articulosMenu->addAction(listarArticulosAction); //Crea el menu clientes clientesMenu->addAction(nuevoClienteAction); clientesMenu->addAction(buscarClienteAction); clientesMenu->addAction(listarClienteAction); clientesMenu->addAction(imprimirClienteAction); //crea el menu ayuda ayudaMenu->addAction(acercaDeAyudaAction); ayudaMenu->addAction(ayudaAyudaAction); //crea el menu vantanas windowMenu->addAction(closeAction); windowMenu->addAction(closeAllAction); windowMenu->addSeparator(); windowMenu->addAction(tileAction); windowMenu->addAction(cascadeAction); windowMenu->addSeparator(); windowMenu->addAction(nextAction); windowMenu->addAction(previousAction); configMenu->addAction(cambiarIvaAction); //configMenu->addAction(configurarImpresoraAction);
}
void MainWindow::createToolBar() { facturaToolBar = addToolBar(tr("Facturas")); facturaToolBar->addAction(nuevaFacturaAction); facturaToolBar->addAction(buscarFacturaAction); facturaToolBar->addAction(listarFacturasAction); presupuestoToolBar = addToolBar(tr("Presupuestos")); presupuestoToolBar->addAction(nuevoPresupuestosAction); presupuestoToolBar->addAction(buscarPresupuestosAction); presupuestoToolBar->addAction(listarPresupuestosAction); clienteToolBar = addToolBar(tr("Clientes")); clienteToolBar->addAction(nuevoClienteAction); clienteToolBar->addAction(buscarClienteAction); clienteToolBar->addAction(listarClienteAction); articuloToolBar = addToolBar(tr("Articulos")); articuloToolBar->addAction(altaArticulosAction); articuloToolBar->addAction(buscarArticulosAction); articuloToolBar->addAction(listarArticulosAction); }
void MainWindow::updateMenus() { windowMenu->clear(); windowMenu->addAction(closeAction); windowMenu->addAction(closeAllAction); windowMenu->addSeparator(); windowMenu->addAction(tileAction); windowMenu->addAction(cascadeAction); windowMenu->addSeparator(); windowMenu->addAction(nextAction); windowMenu->addAction(previousAction);
QWidgetList windows = workspace->windowList(); if (!windows.isEmpty()) windowMenu->addSeparator(); for (int i = 0; i < windows.size(); ++i) { QWidget *child = windows.at(i); QString text; if (i < 9) { text = tr("&%1 %2").arg(i + 1).arg(child->windowTitle()); } else { text = tr("%1 %2").arg(i + 1).arg(child->windowTitle()); } QAction *action = windowMenu->addAction(text); action->setCheckable(true); action->setChecked(child == workspace->activeWindow()); connect(action, SIGNAL(triggered()), windowMapper, SLOT(map())); windowMapper->setMapping(action, windows.at(i)); }}void MainWindow::createStatusBar(){ statusBar()->showMessage(tr("Listo"));}