CuadranteView Class Reference

#include <cuadranteview.h>

Inheritance diagram for CuadranteView:

FichaBf Ui_CuadranteBase Ficha BLWidget DBRecord dialogChanges QWidget PEmpresaBase

Public Slots

virtual void on_mui_calendario_clicked (const QDate &date)
virtual void on_mui_listtrabajadores_itemDoubleClicked (QTreeWidgetItem *item, int column)
virtual void on_mui_editar_clicked ()
virtual void on_mui_calendario_customContextMenuRequested (const QPoint &pos)
virtual void on_mui_actualizar_clicked ()
virtual void on_mui_limpiar_clicked ()
virtual void on_mui_duplicar_clicked ()

Public Member Functions

 CuadranteView (Company *, QWidget *)
 ~CuadranteView ()
void inicializaTrabajadores ()
void inicializaCuadrante (const QDate &dateorig)
virtual void on_mui_imprimir_clicked ()

Data Fields

CuadranteQTextDocumentm_actualcell

Detailed Description

Ventana de cuadrantes Se encarga de la creación de cuadrantes en la empresa, para ubicar empleados, etc etc etc Deriva de Ficha para metodos comunes a todas las fichas.

Definition at line 36 of file cuadranteview.h.


Constructor & Destructor Documentation

CuadranteView::CuadranteView ( Company comp,
QWidget parent 
)

Parameters:
comp 
parent 

Lanzamos los plugins.

Definition at line 47 of file cuadranteview.cpp.

References _depura(), FALSE, g_plugins, inicializaCuadrante(), inicializaTrabajadores(), Plugins::lanza(), mensajeInfo(), Ficha::meteWindow(), Ui_CuadranteBase::mui_cuadrante, Ui_CuadranteBase::mui_listtrabajadores, Ficha::setDBTableName(), Ficha::setTitleName(), Ui_CuadranteBase::setupUi(), and TRUE.

00048         : FichaBf(comp, parent) {
00049     _depura("CuadranteView::CuadranteView", 0);
00050     setAttribute(Qt::WA_DeleteOnClose);
00051     try {
00052         setupUi(this);
00053 
00055         if (g_plugins->lanza("CuadranteView_CuadranteView", this)) return;
00056 
00057         setTitleName(tr("Almacen"));
00058         setDBTableName("almacen");
00059 
00060         mui_listtrabajadores->setDragEnabled(TRUE);
00061         mui_cuadrante->setAcceptDrops(TRUE);
00062 //      mui_cuadrante->verticalHeader()->hide();
00063 
00064         inicializaTrabajadores();
00065         inicializaCuadrante(QDate::currentDate());
00066 
00067         meteWindow(windowTitle(), this, FALSE);
00068     } catch (...) {
00069         mensajeInfo(tr("Error al crear el almacen"));
00070     } // end try
00071     _depura("END CuadranteView::CuadranteView", 0);
00072 }

CuadranteView::~CuadranteView (  ) 

Definition at line 80 of file cuadranteview.cpp.

References _depura().

00080                               {
00081     _depura("CuadranteView::~CuadranteView", 0);
00082     _depura("END CuadranteView::~CuadranteView", 0);
00083 }


Member Function Documentation

void CuadranteView::inicializaTrabajadores (  ) 

Definition at line 90 of file cuadranteview.cpp.

References _depura(), postgresiface2::cargacursor(), FichaBf::empresaBase(), cursor2::eof(), Ui_CuadranteBase::mui_listtrabajadores, cursor2::siguienteregistro(), and cursor2::valor().

Referenced by CuadranteView(), and on_mui_actualizar_clicked().

00090                                            {
00091     _depura("CuadranteView::inicializaTrabajadores", 0);
00092     mui_listtrabajadores->clear();
00093     mui_listtrabajadores->setColumnCount(2);
00094     mui_listtrabajadores->hideColumn(1);
00095     cursor2 *cur = empresaBase()->cargacursor("SELECT * FROM tipotrabajo");
00096     if (cur) {
00097         while (!cur->eof()) {
00098             QTreeWidgetItem *it = new QTreeWidgetItem(mui_listtrabajadores);
00099             it->setText(0, cur->valor("nomtipotrabajo"));
00100             it->setTextColor(0, QColor("#FF0000"));
00101 
00103             cursor2 *curtrab = empresaBase()->cargacursor("SELECT * FROM trabajador WHERE idtipotrabajo = "+cur->valor("idtipotrabajo") + "ORDER BY nomtrabajador, apellidostrabajador");
00104             if (curtrab) {
00105                 while (!curtrab->eof()) {
00106                     QTreeWidgetItem *itt = new QTreeWidgetItem(it);
00107                     itt->setText(0, curtrab->valor("nomtrabajador") + " " + curtrab->valor("apellidostrabajador"));
00108                     itt->setText(1, curtrab->valor("idtrabajador"));
00109                     itt->setTextColor(0, QColor("#000000"));
00110                     curtrab->siguienteregistro();
00111                 } // end while
00112                 delete curtrab;
00113             } // end if
00114 
00115             cur->siguienteregistro();
00116         } // end if
00117         delete cur;
00118     } // end if
00119     _depura("END CuadranteView::inicializaTrabajadores", 0);
00120 }

void CuadranteView::inicializaCuadrante ( const QDate &  dateorig  ) 

Parameters:
dateorig 
Returns:

Establecemos la altura de los campos.

Buscamos el Lunes de la Semana

Definition at line 129 of file cuadranteview.cpp.

References _depura(), postgresiface2::cargacursor(), FichaBf::empresaBase(), cursor2::eof(), Ui_CuadranteBase::mui_cuadrante, cursor2::numregistros(), CuadranteQTextDocument::setAlmFecha(), cursor2::siguienteregistro(), and cursor2::valor().

Referenced by CuadranteView(), on_mui_actualizar_clicked(), on_mui_calendario_clicked(), and on_mui_calendario_customContextMenuRequested().

00129                                                              {
00130     _depura("CuadranteView::inicializaCuadrante", 0);
00131     try {
00132 
00133         mui_cuadrante->clear();
00134 
00135         cursor2 *cur = empresaBase()->cargacursor("SELECT idalmacen, tipoalmacen, nomalmacen FROM almacen ORDER BY tipoalmacen DESC, nomalmacen");
00136         if (!cur) throw -1;
00137 
00138 
00139         mui_cuadrante->setRowCount(cur->numregistros());
00140         mui_cuadrante->setColumnCount(7);
00141 
00142         QStringList headers;
00143         headers << tr("Lunes") << tr("Martes") << tr("Miercoles") << tr("Jueves") << tr("Viernes") << tr("Sabado") << tr("Domingo");
00144         mui_cuadrante->setHorizontalHeaderLabels(headers);
00145 
00146 
00147         int row = 0;
00148         while (!cur->eof()) {
00150             mui_cuadrante->setRowHeight(row, 100);
00151 
00153             QDate date = dateorig.addDays(-dateorig.dayOfWeek() + 1);
00154 
00155             for (int column = 0; column < 7; column ++) {
00156 
00157                 mui_cuadrante->setColumnWidth(column, 250);
00158 
00159                 CuadranteQTextDocument *newItem = new CuadranteQTextDocument(empresaBase(), mui_cuadrante);
00160 
00161                 newItem->setAlmFecha(cur->valor("idalmacen"), date);
00162 
00163                 mui_cuadrante->setCellWidget(row, column, newItem);
00164 
00165                 date = date.addDays(1);
00166             } // end for
00167             cur->siguienteregistro();
00168             row++;
00169         } // end while
00170     } catch (...) {
00171         _depura("Error en la carga del calendario", 2);
00172         return;
00173     }
00174 }

void CuadranteView::on_mui_imprimir_clicked (  )  [virtual]

Reimplemented from Ficha.

Definition at line 333 of file cuadranteview.cpp.

References _depura(), postgresiface2::cargacursor(), CONF_DIR_OPENREPORTS, CONF_DIR_USER, confpr, FichaBf::empresaBase(), cursor2::eof(), invocaPDF(), Ui_CuadranteBase::mui_cuadrante, cursor2::numregistros(), cursor2::siguienteregistro(), and configuracion::valor().

00333                                             {
00334     _depura("CuadranteView::on_mui_imprimir_clicked", 0);
00335 
00336     QString archivo = confpr->valor(CONF_DIR_OPENREPORTS) + "cuadrante.rml";
00337     QString archivod = confpr->valor(CONF_DIR_USER) + "cuadrante.rml";
00338     QString archivologo = confpr->valor(CONF_DIR_OPENREPORTS) + "logo.jpg";
00339 
00341 #ifdef WINDOWS
00342 
00343     archivo = "copy " + archivo + " " + archivod;
00344 #else
00345 
00346     archivo = "cp " + archivo + " " + archivod;
00347 #endif
00348 
00349     system (archivo.toAscii().constData());
00350 
00352 #ifdef WINDOWS
00353 
00354     archivologo = "copy " + archivologo + " " + confpr->valor(CONF_DIR_USER) + "logo.jpg";
00355 #else
00356 
00357     archivologo = "cp " + archivologo + " " + confpr->valor(CONF_DIR_USER) + "logo.jpg";
00358 #endif
00359 
00360     QFile file;
00361     file.setFileName(archivod);
00362     file.open(QIODevice::ReadOnly);
00363     QTextStream stream(&file);
00364     QString buff = stream.readAll();
00365     file.close();
00366     QString fitxersortidatxt = "";
00367 
00368 
00370     fitxersortidatxt += "<para>Cuadrante</para>\n";
00371     fitxersortidatxt += "<blockTable style=\"tablacontenido\" colWidths=\"4cm, 4cm, 4cm, 4cm, 4cm, 4cm, 4cm\" repeatRows=\"1\">\n";
00372     fitxersortidatxt += "<tr>\n";
00373     fitxersortidatxt += "    <td>Lunes</td>\n";
00374     fitxersortidatxt += "    <td>Martes</td>\n";
00375     fitxersortidatxt += "    <td>Miercoles</td>\n";
00376     fitxersortidatxt += "    <td>Jueves</td>\n";
00377     fitxersortidatxt += "    <td>Viernes</td>\n";
00378     fitxersortidatxt += "    <td>Sabado</td>\n";
00379     fitxersortidatxt += "    <td>Domingo</td>\n";
00380     fitxersortidatxt += "</tr>\n";
00381 
00382 
00383 // ================================================================
00384 
00386 //    QDate date = mui_calendario->selectedDate().addDays(-mui_calendario->selectedDate().dayOfWeek() + 1);
00387 
00388     cursor2 *cur = empresaBase()->cargacursor("SELECT idalmacen FROM almacen");
00389     if (!cur) throw -1;
00390 
00391     mui_cuadrante->setRowCount(cur->numregistros());
00392     mui_cuadrante->setColumnCount(7);
00393 
00394     int row = 0;
00395     while (!cur->eof()) {
00396         fitxersortidatxt += "<tr>\n";
00397         for (int column = 0; column < 7; column ++) {
00398             CuadranteQTextDocument *newItem = (CuadranteQTextDocument *) mui_cuadrante->cellWidget(row, column);
00399             fitxersortidatxt += newItem->impresion();
00400         } // end for
00401         cur->siguienteregistro();
00402         row++;
00403         fitxersortidatxt += "</tr>\n";
00404     } // end while
00405 
00406     fitxersortidatxt += "</blockTable>\n";
00407 
00408     buff.replace("[story]", fitxersortidatxt);
00409 
00410     if (file.open(QIODevice::WriteOnly)) {
00411         QTextStream stream(&file);
00412         stream << buff;
00413         file.close();
00414     } // end if
00415     invocaPDF("cuadrante");
00416     _depura("END CuadranteView::on_mui_imprimir_clicked", 0);
00417 
00418 }

void CuadranteView::on_mui_calendario_clicked ( const QDate &  date  )  [virtual, slot]

Parameters:
date 

Definition at line 181 of file cuadranteview.cpp.

References _depura(), and inicializaCuadrante().

00181                                                                {
00182     _depura("CuadranteView::on_mui_calendario_clicked", 0, date.toString("dd/MM/yyyy"));
00183     inicializaCuadrante(date);
00184 }

void CuadranteView::on_mui_listtrabajadores_itemDoubleClicked ( QTreeWidgetItem item,
int  column 
) [virtual, slot]

Parameters:
item 

Definition at line 191 of file cuadranteview.cpp.

References _depura(), and Ui_CuadranteBase::mui_cuadrante.

00191                                                                                          {
00192     _depura("elementos dobleclickados", 0);
00193     QString item1 = item->text(1);
00194 
00195     QList<QTableWidgetSelectionRange> selectionranges = mui_cuadrante->selectedRanges();
00196     for (int i = 0; i < selectionranges.size(); ++i) {
00197         for (int x = selectionranges.at(i).topRow(); x <= selectionranges.at(i).bottomRow(); x++) {
00198             for (int y = selectionranges.at(i).leftColumn(); y <= selectionranges.at(i).rightColumn(); y++) {
00199                 CuadranteQTextDocument *newItem = (CuadranteQTextDocument *) mui_cuadrante->cellWidget(x, y);
00200                 newItem->addTrabajador(item1);
00201             } // end for
00202         } // end for
00203     }
00204 }

void CuadranteView::on_mui_editar_clicked (  )  [virtual, slot]

Definition at line 210 of file cuadranteview.cpp.

References _depura(), QWorkspace2::addWindow(), Ficha::cargar(), FichaBf::empresaBase(), CuadranteQTextDocument::idcuadrante(), Ui_CuadranteBase::mui_cuadrante, EmpresaBase::pWorkspace(), and save.

00210                                           {
00211     _depura ("editar cuadrante", 0);
00212     Cuadrante1View *cuad = new Cuadrante1View(empresaBase(), 0);
00213     empresaBase()->pWorkspace()->addWindow(cuad);
00214     cuad->show();
00215     CuadranteQTextDocument *newItem = (CuadranteQTextDocument *) mui_cuadrante->cellWidget(mui_cuadrante->currentRow(), mui_cuadrante->currentColumn());
00216     newItem->connect (cuad, SIGNAL(save()), newItem, SLOT(refresh()));
00217     cuad->cargar(newItem->idcuadrante());
00218 }

void CuadranteView::on_mui_calendario_customContextMenuRequested ( const QPoint &  pos  )  [virtual, slot]

Parameters:
pos 

Definition at line 225 of file cuadranteview.cpp.

References _depura(), postgresiface2::begin(), postgresiface2::commit(), postgresiface2::ejecuta(), FichaBf::empresaBase(), inicializaCuadrante(), and Ui_CuadranteBase::mui_calendario.

00225                                                                                       {
00226     _depura("CuadranteView::on_mui_calendario_customContextMenuRequested", 0);
00227     QMenu *popup = new QMenu(mui_calendario);
00228 
00229     popup->addSeparator();
00230     QAction *norm = popup->addAction(tr("Normal"));
00231     QAction *fiesta = popup->addAction(tr("Fiesta General"));
00232 
00233     QAction *opcion = popup->exec(mapToGlobal(pos));
00234     if (opcion == norm) {
00235         empresaBase()->begin();
00236         empresaBase()->ejecuta("UPDATE CUADRANTE SET fiestacuadrante = FALSE WHERE fechacuadrante = '"+mui_calendario->selectedDate().toString("dd/MM/yyyy")+"'");
00237         empresaBase()->commit();
00238     } // end if
00239 
00240     if (opcion == fiesta) {
00241         empresaBase()->begin();
00242         empresaBase()->ejecuta("UPDATE CUADRANTE SET fiestacuadrante = TRUE WHERE fechacuadrante = '"+mui_calendario->selectedDate().toString("dd/MM/yyyy")+"'");
00243         empresaBase()->commit();
00244     } // end if
00245 
00246     inicializaCuadrante(mui_calendario->selectedDate());
00247     _depura("END CuadranteView::on_mui_calendario_customContextMenuRequested", 0);
00248 }

void CuadranteView::on_mui_actualizar_clicked (  )  [virtual, slot]

Definition at line 254 of file cuadranteview.cpp.

References _depura(), inicializaCuadrante(), and inicializaTrabajadores().

Referenced by on_mui_duplicar_clicked(), and on_mui_limpiar_clicked().

00254                                               {
00255     _depura("CuadranteView::on_mui_actualizar_clicked", 0);
00256         inicializaTrabajadores();
00257         inicializaCuadrante(QDate::currentDate());
00258     _depura("CuadranteView::on_mui_actualizar_clicked", 0);
00259 }

void CuadranteView::on_mui_limpiar_clicked (  )  [virtual, slot]

Definition at line 265 of file cuadranteview.cpp.

References _depura(), postgresiface2::ejecuta(), FichaBf::empresaBase(), Ui_CuadranteBase::mui_calendario, and on_mui_actualizar_clicked().

00265                                            {
00266     _depura("CuadranteView::on_mui_limpiar_clicked", 0);
00267     QDate date = mui_calendario->selectedDate().addDays(-mui_calendario->selectedDate().dayOfWeek() + 1);
00268     QDate datefin = date.addDays(6);
00269     QString query = "DELETE FROM horario WHERE idcuadrante IN (SELECT idcuadrante FROM cuadrante WHERE fechacuadrante >= '"+date.toString("dd/MM/yyyy")+"' AND fechacuadrante <='"+datefin.toString("dd/MM/yyyy")+"')";
00270     empresaBase()->ejecuta(query);
00271     query = "DELETE FROM cuadrante WHERE fechacuadrante >= '"+date.toString("dd/MM/yyyy")+"' AND fechacuadrante <='"+datefin.toString("dd/MM/yyyy")+"'";
00272     empresaBase()->ejecuta(query);
00273     on_mui_actualizar_clicked();
00274     _depura("CuadranteView::on_mui_limpiar_clicked", 0);
00275 }

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

Definition at line 282 of file cuadranteview.cpp.

References _depura(), postgresiface2::cargacursor(), postgresiface2::ejecuta(), FichaBf::empresaBase(), cursor2::eof(), Ui_CuadranteBase::mui_calendario, on_mui_actualizar_clicked(), cursor2::siguienteregistro(), and cursor2::valor().

00282                                             {
00283     _depura("CuadranteView::on_mui_limpiar_clicked", 0);
00284     for (QDate date = mui_calendario->selectedDate().addDays(-mui_calendario->selectedDate().dayOfWeek() + 1)
00285     ; date <= mui_calendario->selectedDate().addDays(-mui_calendario->selectedDate().dayOfWeek() + 7)
00286     ; date = date.addDays(1)) {
00287         QDate fechaant = date.addDays(-7);
00288         QString query = "SELECT * FROM cuadrante WHERE fechacuadrante = '"+fechaant.toString("dd/MM/yyyy")+"'";
00289         _depura(query, 2);
00290         cursor2 *cur = empresaBase()->cargacursor(query);
00291         while (!cur->eof()) {
00292                 query = "UPDATE cuadrante SET ";
00293                 query += " comentcuadrante = '"+cur->valor("comentcuadrante")+"'";
00294                 query += ", aperturacuadrante = "+ ((cur->valor("aperturacuadrante")=="")?"NULL":cur->valor("aperturacuadrante"));
00295                 query += ", cierrecuadrante = " + ((cur->valor("cierrecuadrante")=="")?"NULL":cur->valor("cierrecuadrante"));
00296                 query += ", apertura1cuadrante = " + ((cur->valor("apertura1cuadrante")=="")?"NULL":cur->valor("apertura1cuadrante"));
00297                 query += ", cierre1cuadrante = " + ((cur->valor("cierre1cuadrante")=="")?"NULL":cur->valor("cierre1cuadrante"));
00298                 query += ", fiestacuadrante = '" + cur->valor("fiestacuadrante")+"'";
00299                 query += " WHERE fechacuadrante = '" + date.toString("dd/MM/yyyy") + "' AND idalmacen = " +cur->valor("idalmacen");
00300                 empresaBase()->ejecuta(query);
00301 
00302                 cursor2 *cur1 = empresaBase()->cargacursor("SELECT * FROM cuadrante WHERE fechacuadrante = '" + date.toString("dd/MM/yyyy") + "' AND idalmacen = " +cur->valor("idalmacen"));
00303                 QString idcuadrante = cur1->valor("idcuadrante");
00304                 delete cur1;
00305 
00306                 cursor2 *cur2 = empresaBase()->cargacursor("SELECT * FROM horario WHERE idcuadrante=" + cur->valor("idcuadrante"));
00307                 while (!cur2->eof()) {
00308                         query = "INSERT INTO horario (idtrabajador, idcuadrante, horainhorario, horafinhorario) VALUES (";
00309                         query+= cur2->valor("idtrabajador");
00310                         query+= "," + idcuadrante;
00311                         query+= ",'" + cur2->valor("horainhorario") + "'";
00312                         query+= ",'" +cur2->valor("horafinhorario") +"'";
00313                         query+= ")";
00314                         empresaBase()->ejecuta(query);
00315                         cur2->siguienteregistro();
00316                 } // end while
00317                 delete cur2;
00318 
00319                 cur->siguienteregistro();
00320         } // end while
00321         delete cur;
00322 
00323 
00324     } // end for
00325     on_mui_actualizar_clicked();
00326     _depura("CuadranteView::on_mui_limpiar_clicked", 0);
00327 }


Field Documentation

CuadranteQTextDocument* CuadranteView::m_actualcell

Definition at line 40 of file cuadranteview.h.


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