- Page principale
- Classes
- Fichiers
- Pages associées

# /home/eric/Bureau/MedinTux-V-2.00/Plug/Compta2/compta/ui/mvts_ui.ui.h

    00001 /****************************************************************************
    00002 ** ui.h extension file, included from the uic-generated form implementation.
    00003 **
    00004 ** If you want to add, delete, or rename functions or slots, use
    00005 ** Qt Designer to update this file, preserving your code.
    00006 **
    00007 ** You should not define a constructor or destructor in this file.
    00008 ** Instead, write your code in functions called init() and destroy().
    00009 ** These will automatically be called by the form's constructor and
    00010 ** destructor.
    00011 *****************************************************************************/
    00012
    00013 void Mvts_Ui::init()
    00014 {if (G_pCApp->m_Verbose) qWarning("Création de CMDI_Mouvements");
    00015
    00016  m_TreeView->addColumn(TR("Libellé"));
    00017  m_TreeView->addColumn(TR("Total"));
    00018  m_TreeView->addColumn(TR("Id"));
    00019  m_TreeView->setColumnWidthMode(2,QListView::Maximum);
    00020  m_ListItem_Recettes = new QListViewItem(m_TreeView, TR("Recettes") );
    00021  m_ListItem_Depenses = new QListViewItem(m_TreeView, TR("Dépenses"));
    00022
    00023
    00024    // structure le tableau
    00025    m_QTable_Mvts->setSelectionMode(QTable::SingleRow);
    00026    m_QTable_Mvts->setReadOnly(TRUE);
    00027    m_QTable_Mvts->horizontalHeader()->setLabel( 0, tr( "Libellé" ) );
    00028    m_QTable_Mvts->horizontalHeader()->setLabel( 1, tr( "Mouvement" ) );
    00029    m_QTable_Mvts->horizontalHeader()->setLabel( 2, tr( "Date de valeur" ) );
    00030    m_QTable_Mvts->horizontalHeader()->setLabel( 3, tr( "Débit" ) );
    00031    m_QTable_Mvts->horizontalHeader()->setLabel( 4, tr( "Crédit" ) );
    00032    // Modifier la géométrie de la table
    00033    m_QTable_Mvts->setColumnWidth ( 0, 150 );
    00034    m_QTable_Mvts->setColumnWidth ( 1, 150 );
    00035    m_QTable_Mvts->setColumnWidth ( 2, 100 );
    00036    m_QTable_Mvts->setColumnWidth ( 3, 100);
    00037    m_QTable_Mvts->setColumnWidth ( 4, 100);
    00038
    00039    m_QTable_Immob->setSelectionMode(QTable::SingleRow);
    00040    m_QTable_Immob->setReadOnly(TRUE);
    00041
    00042    m_QTable_Immob->horizontalHeader()->setLabel( 0, tr( "Libellé" ) );
    00043    m_QTable_Immob->horizontalHeader()->setLabel( 1, tr( "Valeur intiale" ) );
    00044    m_QTable_Immob->horizontalHeader()->setLabel( 2, tr( "Date" ) );
    00045    m_QTable_Immob->horizontalHeader()->setLabel( 3, tr( "Durée" ) );
    00046
    00047
    00048    // Modifier la géométrie de la table
    00049    m_QTable_Immob->setColumnWidth ( 0, 200 );
    00050    m_QTable_Immob->setColumnWidth ( 1, 150 );
    00051    m_QTable_Immob->setColumnWidth ( 2, 100 );
    00052    m_QTable_Immob->setColumnWidth ( 3, 100 );
    00053    m_QTable_Immob->setSorting(FALSE);
    00054
    00055 }
    00056
    00058 void Mvts_Ui::destroy()
    00059 { if (G_pCApp->m_Verbose) qWarning("Mvts_Ui::Destruct");
    00060   if (m_Mvts_Liste_Dispo)       delete m_Mvts_Liste_Dispo;
    00061   if (m_Mvts_Liste)             delete m_Mvts_Liste;
    00062   if (m_ListItem_Recettes)      delete m_ListItem_Recettes;
    00063   if (m_ListItem_Depenses)      delete m_ListItem_Depenses;
    00064   if (m_Immo_Liste)             delete m_Immo_Liste;
    00065   if (m_PopupMenu)              delete m_PopupMenu;
    00066   if (G_pCApp->m_Verbose) qWarning("Mvts_Ui::Destruct Fin");
    00067 }
    00068
    00070 void Mvts_Ui::setParams(ComptaMoteurBase *pComptaMoteurBase)
    00071 {// Intialisation des variables
    00072  m_pComptaMoteurBase = pComptaMoteurBase;
    00073  m_Mvts_Liste_Dispo = new MVTS_LISTE;
    00074  if (!m_Mvts_Liste_Dispo) return ;
    00075  m_Mvts_Liste = new MVTS_LISTE;
    00076  if (!m_Mvts_Liste) return ;
    00077  m_Comptes_Liste = new COMPTES_LISTE;
    00078  if (!m_Comptes_Liste) return ;
    00079  m_Immo_Liste = new IMMO_LISTE;
    00080  if (!m_Immo_Liste) return ;
    00081
    00082  m_Comptes_Liste->clear();
    00083  m_PopupMenu = 0;
    00084  m_Mvts_Liste_Dispo->clear();
    00085  m_Mvts_Liste->clear();
    00086
    00087  if (!m_pComptaMoteurBase->getMvtsDispo(*m_Mvts_Liste_Dispo))
    00088   { QWidget* l = new QWidget();
    00089     QMessageBox::information(l, TR("Erreur base de données"), m_pComptaMoteurBase->m_messageErreur, TR("Ok"),"","",1,0);
    00090     delete l;
    00091     return ;
    00092   }
    00093  getComboComptes();
    00094  createTreeView();
    00095  getMouvements();
    00096  setTable_ImmobTo();
    00097
    00098 }
    00099
    00100
    00101
    00109
    00111 void Mvts_Ui::integrationEspeces()
    00112 { // Récupère l'année
    00113   QString an = QString::number( m_pComptaMoteurBase->m_Filtre_Date_Debut.year() );
    00114   // Lance l'intégration
    00115   if (!m_pComptaMoteurBase->integrationEspecesRestantes( an ))
    00116   { QMessageBox::information(this, TR("Erreur d'accès à la base de données"), m_pComptaMoteurBase->m_messageErreur, TR("Ok"),"","",1,0);
    00117   }
    00118 }
    00119
    00120
    00123 void Mvts_Ui::getComboComptes()
    00124 { int r = 0;
    00125   int id = 0;
    00126   if (!m_pComptaMoteurBase->getComptes( *m_Comptes_Liste ))
    00127    QMessageBox::information(this, TR("ERREUR"),m_pComptaMoteurBase->m_messageErreur, TR("Ok"),"","",1,0);
    00128   else
    00129   { m_Combo_ListeComptes->clear();
    00130     for (COMPTES_LISTE::iterator it = m_Comptes_Liste->begin(); it != m_Comptes_Liste->end(); ++it)
    00131     { m_Combo_ListeComptes->insertItem( (*it).getLibelle() );
    00132       m_Combo_ListeComptes_2->insertItem( (*it).getLibelle() );
    00133       if ((*it).isDefaut()) id=r;
    00134       r++;
    00135     }
    00136     m_Combo_ListeComptes->insertItem(TR("Tous les comptes"));
    00137     m_Combo_ListeComptes_2->insertItem(TR("Tous les comptes"));
    00138     m_Combo_ListeComptes->setCurrentItem(id);
    00139     m_Combo_ListeComptes_2->setCurrentItem(id);
    00140   }
    00141 }
    00142
    00143
    00145 bool Mvts_Ui::getMouvements()
    00146 { m_Mvts_Liste->clear();
    00147   if (!m_pComptaMoteurBase->getMvts( *m_Mvts_Liste ))
    00148   { QWidget* l = new QWidget();
    00149     QMessageBox::information(l, TR("Erreur base de données"), m_pComptaMoteurBase->m_messageErreur, TR("Ok"),"","",1,0);
    00150     delete l;
    00151     return FALSE;
    00152   }
    00153  fillTreeView();
    00154  setTableMvtsTo();
    00155  return TRUE;
    00156 }
    00157
    00158
    00160 void Mvts_Ui::createTreeView()
    00161 { QString tmp = "";
    00162   if ((m_Mvts_Liste_Dispo->count() == 0) || (!m_Mvts_Liste_Dispo))
    00163    { //m_TreeView->setNumRows( 1 );
    00164    }
    00165   else
    00166    { MVTS_LISTE::iterator it;
    00167
    00168      // Prépare l'affichage du TreeView
    00169      for (it = m_Mvts_Liste_Dispo->begin(); it !=  m_Mvts_Liste_Dispo->end(); ++it )
    00170       { // Prépare l'affichage de le m_TreeView
    00171         int id = (*it).getId();
    00172         if (id < 10) tmp = "0" + QString::number(id);
    00173         else tmp = QString::number(id);
    00174         if ((*it).getType() == 0)  // Recettes
    00175          { // Test si child ou parent
    00176            if ( (*it).getIdParent() == 0)
    00177            {  new QListViewItem(m_ListItem_Recettes, (*it).getNom() , 0, tmp);
    00178            }
    00179            else
    00180            {    // Récupère le nom du parent pour le retrouver dans le m_TreeView
    00181                 QString nom_parent = (*m_Mvts_Liste_Dispo->at( (*it).getIdParent() - 1 )).getNom();
    00182                 QListViewItem* parent = m_TreeView->findItem(nom_parent, 0);
    00183                 if (parent) new QListViewItem( parent , (*it).getNom(), 0, tmp);
    00184                 else new QListViewItem( m_ListItem_Recettes , (*it).getNom(), 0, tmp);
    00185            }
    00186          } // Fin type = recettes
    00187         else   // Dépenses
    00188          { // Test si child ou parent
    00189            if ( (*it).getIdParent() == 0)
    00190            {  new QListViewItem(m_ListItem_Depenses, (*it).getNom(), 0, tmp);
    00191            }
    00192            else
    00193            {    // Récupère le nom du parent pour le retrouver dans le m_TreeView
    00194                 QString nom_parent = (*m_Mvts_Liste_Dispo->at( (*it).getIdParent() - 1 )).getNom();
    00195                 QListViewItem* parent = m_TreeView->findItem(nom_parent, 0);
    00196                 if (parent) new QListViewItem( parent , (*it).getNom(), 0, tmp);
    00197                 else new QListViewItem( m_ListItem_Depenses , (*it).getNom(), 0, tmp);
    00198            }
    00199          } // Fin else type == 0
    00200       } // Fin for
    00201    m_TreeView->insertItem(m_ListItem_Recettes) ;
    00202    m_TreeView->insertItem(m_ListItem_Depenses);
    00203    }
    00204    m_TreeView->setSorting(2, TRUE);
    00205 //   m_TreeView->hideColumn(2);
    00206 }
    00207
    00209 void Mvts_Ui::fillListItem( Mouvements* mvt )
    00210 { QString nom_parent = "";
    00211   MVTS_LISTE::iterator rec = m_Mvts_Liste_Dispo->at( mvt->getId() - 1 );
    00212   nom_parent = (*rec).getNom();
    00213   m_TreeView->findItem(nom_parent, 0)->setText(1, QString::number( mvt->getTotal() , 'f', 2) );
    00214   if ((mvt->getTotal() > 0 ) && (!mvt->isParent()) )
    00215   { rec = m_Mvts_Liste_Dispo->at( mvt->getIdParent() - 1 );
    00216     (*rec).addToTotal( mvt->getTotal() );
    00217     m_TreeView->findItem((*rec).getNom(),0)->setText(1, QString::number((*rec).getTotal(), 'f', 2));
    00218   }
    00219 }
    00220
    00221
    00223 void Mvts_Ui::fillTreeView()
    00224 { double total_recettes, total_depenses;
    00225   total_recettes = 0;
    00226   total_depenses = 0;
    00227   MVTS_LISTE::iterator it;
    00228
    00229   // Initialise les totaux avant calculs
    00230   for (it = m_Mvts_Liste_Dispo->begin(); it !=  m_Mvts_Liste_Dispo->end(); ++it )
    00231    { (*it).setTotal(0); }
    00232
    00233   // Récupère le compte sélectionné
    00234   int idCpt = -1;
    00235   if (m_Combo_ListeComptes->currentItem() != (m_Combo_ListeComptes->count() - 1))
    00236    idCpt = (*m_Comptes_Liste->at( m_Combo_ListeComptes->currentItem()) ).getId();
    00237
    00238   // Calcul les totaux
    00239   for (it = m_Mvts_Liste->begin(); it !=  m_Mvts_Liste->end(); ++it )
    00240     { if ((idCpt == -1) || ((*it).getIdCompte() == idCpt))
    00241       { (*m_Mvts_Liste_Dispo->at( (*it).getIdParent() - 1 )).addToTotal( (*it).getTotal() );
    00242         if ((*it).getType() == 0) total_recettes += (*it).getTotal();
    00243         else total_depenses += (*it).getTotal();
    00244       }
    00245     }
    00246
    00247   // Remplit le m_TreeView
    00248   for (it = m_Mvts_Liste_Dispo->begin(); it !=  m_Mvts_Liste_Dispo->end(); ++it )
    00249     { fillListItem( &(*it) );    }
    00250
    00251   m_ListItem_Recettes->setText(1, QString::number(total_recettes, 'f', 2));
    00252   m_ListItem_Depenses->setText(1, QString::number(total_depenses, 'f', 2));
    00253   m_TreeView->hideColumn(2);
    00254 }
    00255
    00256
    00258 void Mvts_Ui::slot_Ajouter_Mvts()
    00259 { Mvts_Add* m_pMvts_Add = new Mvts_Add();
    00260   m_pMvts_Add->setParams( m_pComptaMoteurBase->m_pUtilisateurActuel,
    00261                          QDate::currentDate().toString("dd-MM-yyyy"),
    00262                          m_pComptaMoteurBase, G_pCApp->m_Verbose);
    00263   m_pMvts_Add->setSeeOnly(FALSE);
    00264   m_pMvts_Add->setForUpdateOnly(FALSE);
    00265   m_pMvts_Add->exec();
    00266   if (m_pMvts_Add->result() == QDialog::Accepted)
    00267   { getMouvements();
    00268 //    emit ( mvtsChange() );
    00269   }
    00270   delete m_pMvts_Add;
    00271   // Mettre à jour le m_TreeView
    00272   getMouvements();
    00273 }
    00274
    00278 void Mvts_Ui::slot_Impression_Mvts()
    00279 { QPainter* m_painter = new QPainter();
    00280   QPrinter* m_printer = new QPrinter();
    00281   Tools*    tools     = new Tools();
    00282   if ((tools) && (m_printer) && (m_painter))
    00283   {if (m_printer->setup())
    00284    {MVTS_LISTE::iterator it;
    00285     QStringList hd, lines;
    00286     hd.clear();
    00287     lines.clear();
    00288     QString retour = "";
    00289     QString tmp = "";
    00290     double recettes, depenses;
    00291     recettes = 0;
    00292     depenses = 0;
    00293
    00294     m_printer->setDocName("Synthese_mouvements_"+QDateTime::currentDateTime().toString("dd-MM-yyyy_hh:mm:ss:ms"));
    00295     QFont m_font( "Arial", 10);
    00296     QColorGroup sp_colorgroup (colorGroup());
    00297     sp_colorgroup.setColor (QColorGroup::Text, QColor(0,0,0) );
    00298     sp_colorgroup.setColor (QColorGroup::BrightText, QColor(0,0,0) );
    00299     sp_colorgroup.setColor (QColorGroup::ButtonText, QColor(0,0,0) );
    00300     sp_colorgroup.setColor (QColorGroup::HighlightedText, QColor(0,0,0) );
    00301
    00302     retour += "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /></head>\n";
    00303     retour += "<body>\n";
    00304     retour =  "<p align=\"center\"><b>"+TR("Synthèse des mouvements")+"</b></p>";
    00305     retour += "<p align=\"center\"><b>"+G_pCApp->currentUser->getNom()+"</b></p>";
    00306     retour += "<p>";
    00307
    00308     hd << TR("Filtre en cours") << TR("Date de début") << TR("Date de fin");
    00309     lines << "&nbsp;" << m_pComptaMoteurBase->m_Filtre_Date_Debut.toString("dddd dd MMMM yyyy") << m_pComptaMoteurBase->m_Filtre_Date_Fin.toString("dddd dd MMMM yyyy");
    00310     tools->createHTMLTable(hd, lines, retour, 2, 0);
    00311     retour += "<br /><br />";
    00312     hd.clear();
    00313     lines.clear();
    00314
    00315     hd << TR("Catégorie") << TR("Libellé") << TR("Date") << TR("Débit") << TR("Crédit") << TR("Validation");
    00316     QString validite = "";
    00317     for (it = m_Mvts_Liste->begin(); it !=  m_Mvts_Liste->end(); ++it )
    00318      {  tmp = (*m_Mvts_Liste_Dispo->at( (*it).getIdParent() - 1)).getNom();
    00319         if ((*it).getValidite() == 0) validite = TR("Non"); else validite=TR("Oui");
    00320         if ((*it).getType() == 0) // Recettes
    00321          { lines << tmp << (*it).getNom() << (*it).getDate().toString("dd-MM-yyyy") << "&nbsp;" << QString::number( (*it).getTotal() , 'f', 2) << validite;
    00322            recettes += (*it).getTotal();
    00323          }
    00324         else
    00325          { lines << tmp << (*it).getNom() << (*it).getDate().toString("dd-MM-yyyy") << QString::number( (*it).getTotal() , 'f', 2) << "&nbsp;";
    00326            depenses += (*it).getTotal();
    00327          }
    00328         tmp = "";
    00329      }
    00330
    00331    lines << "<b>"+TR("TOTAL")+"</b>" << TR("Pour la période filtrée") << "&nbsp;" << QString::number( depenses , 'f', 2) << QString::number( recettes , 'f', 2);
    00332    tools->createHTMLTable(hd, lines, retour, 2,0);
    00333    retour += "<br /><br />\n\n</body></html>";
    00334
    00335    QSimpleRichText* toPrint = new QSimpleRichText( retour, m_font );
    00336
    00337     m_painter->begin(m_printer);
    00338     toPrint->draw(m_painter, 50, 50, QRect(50,50,600,1000) , sp_colorgroup );
    00339     m_painter->end();
    00340     delete m_painter;
    00341     delete m_printer;
    00342     delete tools;
    00343    }
    00344   }
    00345 }
    00346
    00347
    00349 void Mvts_Ui::setTableMvtsTo()
    00350 { if ((m_Mvts_Liste->count() == 0) || (!m_Mvts_Liste))
    00351   { m_QTable_Mvts->setNumRows( 1 );
    00352     m_QTable_Mvts->setText(0,0, TR("Aucun mouvement") );
    00353     m_QTable_Mvts->setText(0,1, TR("pour cette période") );
    00354
    00355     for (int i = 2; i < m_QTable_Mvts->numCols(); ++i)
    00356         m_QTable_Mvts->setText(0,i, " " );
    00357   }
    00358   else
    00359   { int r = 0;
    00360     int idInList = 0;
    00361     double recettes, depenses;
    00362     recettes = 0;
    00363     depenses = 0;
    00364     MVTS_LISTE::iterator it;
    00365     int idCpt = -1;
    00366     if (m_Combo_ListeComptes->currentItem() != (m_Combo_ListeComptes->count() - 1))
    00367        idCpt = (*m_Comptes_Liste->at( m_Combo_ListeComptes->currentItem()) ).getId();
    00368     m_QTable_Mvts->setNumRows( m_Mvts_Liste->count() );
    00369     m_idTable = QMemArray<int> (m_Mvts_Liste->count());
    00370     for (uint i=0; i<m_idTable.count();++i)
    00371         { m_idTable[i]=-1; }
    00372
    00373     for (it = m_Mvts_Liste->begin(); it !=  m_Mvts_Liste->end(); ++it )
    00374     { if ( (idCpt == -1) ||  ((*it).getIdCompte() == idCpt) )
    00375       { m_QTable_Mvts->setText( r,0, (*it).getNom() );
    00376         // Récupère les données de l'honoraire
    00377         m_QTable_Mvts->setText( r,1, (*m_Mvts_Liste_Dispo->at( (*it).getIdParent() - 1)).getNom() );
    00378         m_QTable_Mvts->setText( r,2, (*it).getDateValeur().toString("dd-MM-yyyy") );
    00379         if ((*it).getType() == 0) // Recettes
    00380         {       m_QTable_Mvts->setText( r,4, QString::number( (*it).getTotal() , 'f', 2)  );
    00381                 m_QTable_Mvts->setText( r,3, " ");
    00382                 recettes += (*it).getTotal();
    00383         }
    00384         else
    00385         {       m_QTable_Mvts->setText( r,3, QString::number( (*it).getTotal() , 'f', 2)  );
    00386                 m_QTable_Mvts->setText( r,4, " ");
    00387                 depenses += (*it).getTotal();
    00388         }
    00389         m_idTable[r] = idInList;
    00390         r++;
    00391       }
    00392       idInList++;
    00393      }
    00394      m_QTable_Mvts->setNumRows(r+1);
    00395      m_QTable_Mvts->setText( r, 0, TR("TOTAL"));
    00396      m_QTable_Mvts->setText( r, 1, " ");
    00397      m_QTable_Mvts->setText( r, 2, " ");
    00398      m_QTable_Mvts->setText( r, 4, QString::number(recettes, 'f', 2));
    00399      m_QTable_Mvts->setText( r, 3, QString::number(depenses, 'f', 2));
    00400   }
    00401 }
    00402
    00403
    00408 void Mvts_Ui::but_Valide_clicked()
    00409 { QString msg = "";
    00410   msg  = TR("Attention, vous vous apprêtez à valider les mouvements actuellement affichés sur l'écran.<br />Cette validation comptable est obligatoire sur le plan légal et interdit par la suite de :<br />- modifier les mouvements validés,<br />- supprimer les mouvements validés.<br /><br /><br /><br /><b>Voulez-vous valider les mouvements filtrés ?</b><br />");
    00411   if (QMessageBox::information( this, TR("Validation comptable de mouvements"),msg , TR("&OK"), QString::null, QString::null, 0 , 1 ) == 0)
    00412   { int nbUp = 0;
    00413     int idCpt = (*m_Comptes_Liste->at( m_Combo_ListeComptes->currentItem()) ).getId();
    00414     m_pComptaMoteurBase->valideMouvements( m_Mvts_Liste,
    00415                                      m_pComptaMoteurBase->m_pUtilisateurActuel,
    00416                                      idCpt, nbUp );
    00417     msg = QString( TR("%1 mouvements(s) validés dans la base de données sans erreur.")).arg(nbUp);
    00418     QMessageBox::information( this, TR("Validation comptable de mouvements"),msg , TR("&OK"), QString::null, QString::null, 0 , 1 );
    00419     if (nbUp != 0) getMouvements();
    00420   }
    00421 }
    00422
    00423
    00424
    00426 void Mvts_Ui::popupTable( int , int c, const QPoint &p )
    00427 {if (m_PopupMenu) delete m_PopupMenu;
    00428
    00429  // Test le mouvement sélectionné pour savoir s'il s'agit d'une immobilisation ou pas
    00430  MVTS_LISTE::iterator  it = m_Mvts_Liste->at( m_idTable[m_QTable_Mvts->currentRow()] );
    00431  bool immob, valide;
    00432  if ( (*it).getIdParent() == ID_IMMOBILISATIONS ) immob = TRUE; else immob = FALSE;
    00433  if ( (*it).getValidite() == 0) valide=FALSE; else valide=TRUE;
    00434
    00435  // Créer le m_PopupMenuup selon le résultat d'au-dessus
    00436  m_PopupMenu = new QPopupMenu(this, "m_PopupMenuTable");
    00437  if (m_PopupMenu)
    00438  { m_colTrie=c;
    00439    m_PopupMenu->insertItem (TR("Voir"),      this, SLOT(mvtView() ) );
    00440    if ((!immob) && (!valide))
    00441    { m_PopupMenu->insertItem (TR("Modifier") , this, SLOT(mvtModif()  ) );
    00442      m_PopupMenu->insertItem (TR("Supprimer"), this, SLOT(mvtDelete() ) );
    00443      m_PopupMenu->insertItem (TR("Valider"), this, SLOT(mvtValide() ) );
    00444
    00445    }
    00446     m_PopupMenu->insertItem (TR("Trier par ordre croissant")   , this, SLOT(trieAsc( ) ) );
    00447     m_PopupMenu->insertItem (TR("Trier par ordre décroissant") , this, SLOT(trieDesc( )  ) );
    00448    m_PopupMenu->popup(p);
    00449  }
    00450 }
    00451
    00452
    00454 void Mvts_Ui::mvtValide()
    00455 { if (m_QTable_Mvts->currentSelection () != -1)
    00456   { // récupère l'enregistrement en cours
    00457     MVTS_LISTE::iterator  it = m_Mvts_Liste->at( m_idTable[m_QTable_Mvts->currentRow()] );
    00458     MVTS_LISTE* Mvts_valide = new MVTS_LISTE;
    00459     Mvts_valide->clear();
    00460     Mvts_valide->append( (*it) );
    00461     QString msg = "";
    00462      msg  = TR("Attention, vous vous apprêtez à valider des mouvements.<br />Cette validation comptable est obligatoire sur le plan légal et interdit par la suite de :<br />- modifier les mouvements validés,<br />- supprimer les mouvements validés.<br /><br /><br /><br /><b>Voulez-vous valider les mouvements filtrés ?</b><br />");
    00463     if (QMessageBox::information( this, TR("Validation comptable des mouvements"),msg , TR("&OK"), QString::null, QString::null, 0 , 1 ) == 0)
    00464     { int nbUp = 0;
    00465       int idCpt = (*m_Comptes_Liste->at( m_Combo_ListeComptes->currentItem()) ).getId();
    00466       m_pComptaMoteurBase->valideMouvements( Mvts_valide,
    00467                                              m_pComptaMoteurBase->m_pUtilisateurActuel,
    00468                                              idCpt, nbUp );
    00469       msg = QString( TR("%1 mouvement(s) validés dans la base de données sans erreur.")).arg(nbUp);
    00470       QMessageBox::information( this, TR("Validation comptable de mouvements"),msg , TR("&OK"), QString::null, QString::null, 0 , 1 );
    00471       if (nbUp != 0) getMouvements();
    00472     }
    00473    delete Mvts_valide;
    00474   } // Fin if column selected
    00475 }
    00476
    00477
    00479 void Mvts_Ui::trieAsc()
    00480 { m_QTable_Mvts->setSorting( TRUE );
    00481   m_QTable_Mvts->sortColumn ( m_colTrie, TRUE, TRUE);
    00482   m_QTable_Mvts->setSorting( FALSE );
    00483 }
    00484
    00485
    00487 void Mvts_Ui::trieDesc()
    00488 { m_QTable_Mvts->setSorting( TRUE );
    00489   m_QTable_Mvts->sortColumn ( m_colTrie, FALSE, TRUE);
    00490   m_QTable_Mvts->setSorting( FALSE );
    00491 }
    00492
    00493
    00495 void Mvts_Ui::mvtView()
    00496 { // Vérifie qu'une ligne est bien sélectionnée sinon msg erreur
    00497   if (m_QTable_Mvts->currentSelection () != -1)
    00498   { // récupère l'enregistrement en cours et le compte auquel il se réfère
    00499     MVTS_LISTE::iterator  it = m_Mvts_Liste->at( m_idTable [ m_QTable_Mvts->currentRow() ] );
    00500     Comptes cpt = (*m_Comptes_Liste->at( m_Combo_ListeComptes->currentItem()) );
    00501
    00502     Mvts_Visualisation* pMvts_Visualisation = new Mvts_Visualisation(this);
    00503     pMvts_Visualisation->setMouvement( &(*it), &cpt, *m_Mvts_Liste_Dispo);
    00504     pMvts_Visualisation->exec();
    00505     delete pMvts_Visualisation;
    00506   } // Fin if selection
    00507 }
    00508
    00510 void Mvts_Ui::mvtModif()
    00511 { // Vérifie qu'une ligne est bien sélectionnée sinon msg erreur
    00512   if (m_QTable_Mvts->currentSelection () != -1)
    00513   {// récupère l'honoraire à modifier
    00514    MVTS_LISTE::iterator  it = m_Mvts_Liste->at( m_idTable[m_QTable_Mvts->currentRow()] );
    00515    Mvts_Add* m_pMvts_Add = new Mvts_Add();
    00516    if (m_pMvts_Add)
    00517    {    m_pMvts_Add->setParams( m_pComptaMoteurBase->m_pUtilisateurActuel,
    00518                                 QDate::currentDate().toString("dd-MM-yyyy"), m_pComptaMoteurBase, G_pCApp->m_Verbose);
    00519         m_pMvts_Add->setForUpdateOnly(TRUE);
    00520         m_pMvts_Add->setMvt( &(*it) );
    00521         m_pMvts_Add->exec();
    00522         // Mettre à jour le m_TreeView
    00523         if (m_pMvts_Add->result() == QDialog::Accepted)
    00524         { getMouvements();
    00525 //        emit ( mvtsChange() );
    00526         }
    00527         delete m_pMvts_Add;
    00528        } // Fin if m_pMvtsAdd
    00529      }
    00530 }
    00531
    00533 void Mvts_Ui::mvtDelete()
    00534 { // Vérifie qu'une ligne est bien sélectionnée sinon msg erreur
    00535   if (m_QTable_Mvts->currentSelection () != -1 && m_Mvts_Liste)
    00536    {// Récupère l'honoraire sélectionné
    00537     MVTS_LISTE::iterator  it = m_Mvts_Liste->at( m_idTable[m_QTable_Mvts->currentRow()] );
    00538     // Ouvrir un msgbox pour la demande de confirmation
    00539     QString msg = TR("Vous avez sélectionné le mouvement suivant : <br /><br />");
    00540     msg += TR("Libellé : ") + (*it).getNom() + " <br />";
    00541     msg += TR("Date de valeur : ") + (*it).getDateValeur().toString("dd MMM yyyy") + " <br />";
    00542     msg += TR("Catégorie : ") + (*m_Mvts_Liste_Dispo->at( (*it).getIdParent() )).getNom() + " <br />";
    00543     msg += TR("Montant : ") + QString::number( (*it).getTotal() , 'f', 2)  + " <br />";
    00544     msg += TR("Id : ") + QString::number( (*it).getId() );
    00545     msg += ".<br /><br />";
    00546
    00547         msg += TR("<b>Confirmez-vous la suppression de mouvement ?</b>");
    00548
    00549         if ( QMessageBox::information( this, TR("Suppression"),
    00550                 msg, TR("&Supprimer"), TR("&Annuler"), QString::null,
    00551                 1 , 2 )  == 0 )
    00552         {  if (!m_pComptaMoteurBase->deleteMvt( (*it).getId() ) )
    00553            { // Message d'erreur
    00554                 QMessageBox::information( this, TR("Une erreur est survenue..."),
    00555                 m_pComptaMoteurBase->m_messageErreur, TR("&OK"), QString::null, QString::null, 1 , 2 );
    00556            }
    00557            else
    00558            { //rafraîchit la table des honoraires et recalcul la synthèse
    00559              getMouvements();
    00560 //           emit( mvtsChange() );
    00561            }
    00562          }  // Fin if MsgBox de suppression
    00563    } // Fin if Selection et honoListe
    00564 }
    00565
    00566
    00567
    00568
    00569
    00570
    00578
    00579
    00583 void Mvts_Ui::popupTable_Immob( int , int , const QPoint &p )
    00584 { m_PopupMenu = new QPopupMenu(this, "popTable");
    00585   if (m_PopupMenu)
    00586   { m_PopupMenu->insertItem (TR("Voir"),      this, SLOT(immView() ) );
    00587     m_PopupMenu->insertItem (TR("Modifier") , this, SLOT(immModif()  ) );
    00588     m_PopupMenu->insertItem (TR("Vendre le bien"), this, SLOT(immVendre() ) );
    00589     m_PopupMenu->popup(p);
    00590   }
    00591 }
    00592
    00593
    00594 void Mvts_Ui::immVendre()
    00595 { QMessageBox::information (this, TR("Version 1.00"), TR("Cette fonction n'est pas encore implémentée.\nCette fonction sera disponible dans la prochaine version de ce logiciel.\nMerci de votre patience."),TR("Ok"),"","",1,0);
    00596   // emit ( immobChange() );
    00597 }
    00598
    00599
    00600 void Mvts_Ui::slot_Ajouter_Immob()
    00601 { Immobilisations_Add* m_pImmob_Add = new Immobilisations_Add();
    00602   m_pImmob_Add->setParams( G_pCApp->currentUser, QDate::currentDate().toString("dd-MM-yyyy"), m_pComptaMoteurBase);
    00603   m_pImmob_Add->setSeeOnly(FALSE);
    00604   m_pImmob_Add->setForUpdateOnly(FALSE);
    00605   m_pImmob_Add->exec();
    00606   if (m_pImmob_Add->result() == QDialog::Accepted)
    00607   { setTable_ImmobTo();
    00608 //    emit ( immobChange() );
    00609   }
    00610     delete m_pImmob_Add;
    00611 }
    00612
    00613
    00614 void Mvts_Ui::createImmoHTMLTable(QString& retour,bool avecEntete)
    00615 { retour += "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /></head>\n<body>\n";
    00616
    00617   if (avecEntete)
    00618     {   retour += "<p align=\"center\"><b>" + TR("Liste des immobilisations enregistrées<br />") + G_pCApp->currentUser->getNom() + "</b><br />";
    00619         retour += "</p>\n\n";
    00620         retour += "<p align=\"center\"><b>";
    00621         retour += (*m_Comptes_Liste->at ( m_Combo_ListeComptes->currentItem() ) ).getRib("html");
    00622         retour += "</b><br /></p>\n";
    00623         retour += "<p align=\"center\">" + TR("Date du jour : ") + QDate::currentDate().toString("dddd dd MMMM yyyy") + "</p>\n\n";
    00624     } // Fin if entete
    00625
    00626
    00627    IMMO_LISTE::iterator it;
    00628    for (it = m_Immo_Liste->begin(); it != m_Immo_Liste->end(); ++it)
    00629     {retour += "<p>" + (*it).getResultat() + "</p>";
    00630      retour += "<p>&nbsp;</p>";
    00631     } // Fin FOR
    00632
    00633   retour += "</body></html>";
    00634 }
    00635
    00636
    00637 void Mvts_Ui::fichierHTML_Immob()
    00638 { // Récupère le chemin vers le répertoire de sauvegarde
    00639   QString nFile = G_pCApp->m_PathSauvegarde + QDir::separator() + "Immobilisations.html";
    00640
    00641   // Prépare le fichier de sauvegarde
    00642   QFile* f = new QFile(nFile);
    00643   if (f)
    00644   { if (f->exists()) f->remove();
    00645     if ( f->open( IO_WriteOnly ) )
    00646      {QTextStream stream( f );
    00647       QString tmp = "";
    00648       createImmoHTMLTable( tmp, TRUE);
    00649       stream << tmp;
    00650       f->close();
    00651       QMessageBox::information(this, TR("Fichier enregistré."), TR("La remise de chèques a été enregistrée dans le fichier :")+"<br  /><b>"+nFile+"</b>", TR("Ok"), "", "", 1, 0);
    00652       } // Fin if open
    00653      delete f;
    00654    } // Fin if f
    00655 }
    00656
    00657
    00658 void Mvts_Ui::immModif()
    00659 { // Vérifie qu'une ligne est bien sélectionnée sinon msg erreur
    00660   if (m_QTable_Immob->currentSelection () != -1)
    00661   {// récupère l'honoraire à modifier
    00662    IMMO_LISTE::iterator  it = m_Immo_Liste->at( m_QTable_Immob->currentRow() );
    00663    Immobilisations_Add* m_pImmob_Add = new Immobilisations_Add();
    00664    if (m_pImmob_Add)
    00665    {    m_pImmob_Add->setParams( G_pCApp->currentUser,
    00666                                 QDate::currentDate().toString("dd-MM-yyyy"), m_pComptaMoteurBase);
    00667         m_pImmob_Add->setForUpdateOnly(TRUE);
    00668         m_pImmob_Add->setImm( &(*it) );
    00669         m_pImmob_Add->exec();
    00670         // Mettre à jour le treeView
    00671         if (m_pImmob_Add->result() == QDialog::Accepted)
    00672         { setTable_ImmobTo();
    00673 //        emit ( immobChange() );
    00674         }
    00675         delete m_pImmob_Add;
    00676        } // Fin if m_pMvtsAdd
    00677      }
    00678 }
    00679
    00680
    00681 void Mvts_Ui::immView()
    00682 { // Vérifie qu'une ligne est bien sélectionnée sinon msg erreur
    00683   if (m_QTable_Immob->currentSelection () != -1)
    00684   {// récupère l'honoraire à modifier
    00685    IMMO_LISTE::iterator  it = m_Immo_Liste->at( m_QTable_Immob->currentRow() );
    00686    Immobilisations_Add* m_pImmob_Add = new Immobilisations_Add();
    00687    if (m_pImmob_Add)
    00688    {    m_pImmob_Add->setParams( G_pCApp->currentUser,
    00689                                 QDate::currentDate().toString("dd-MM-yyyy"), m_pComptaMoteurBase);
    00690         m_pImmob_Add->setSeeOnly(TRUE);
    00691         m_pImmob_Add->setImm( &(*it) );
    00692         m_pImmob_Add->exec();
    00693         delete m_pImmob_Add;
    00694        } // Fin if m_pMvtsAdd
    00695      }
    00696 }
    00697
    00698
    00702 void Mvts_Ui::setTable_ImmobTo()
    00703 { m_Immo_Liste->clear();
    00704   if (!m_pComptaMoteurBase->getImmobilisations( m_Immo_Liste ))
    00705   { QWidget* l = new QWidget();
    00706     QMessageBox::information(l, TR("Erreur base de données"), m_pComptaMoteurBase->m_messageErreur, TR("Ok"),"","",1,0);
    00707     delete l;
    00708     return ;
    00709   }
    00710
    00711   int idCpt = -1;
    00712   if (m_Combo_ListeComptes_2->currentItem() != (m_Combo_ListeComptes_2->count() - 1))
    00713    idCpt = (*m_Comptes_Liste->at( m_Combo_ListeComptes->currentItem()) ).getId();
    00714
    00715   if ((m_Immo_Liste->count() == 0) || (!m_Immo_Liste))
    00716   { m_QTable_Immob->setNumRows( 1 );
    00717     m_QTable_Immob->setText(0,0, TR("Aucune immobilisation") );
    00718     for (int i = 1; i < m_QTable_Immob->numCols(); ++i)
    00719         m_QTable_Immob->setText(0,i, " " );
    00720   }
    00721   else
    00722   { int r = 0;
    00723     IMMO_LISTE::iterator it;
    00724     m_QTable_Immob->setNumRows( m_Immo_Liste->count() );
    00725     for (it = m_Immo_Liste->begin(); it !=  m_Immo_Liste->end(); ++it )
    00726     {if ((*it).getIdCompte() == idCpt)
    00727       { m_QTable_Immob->setText( r,0, (*it).getNom() );
    00728         m_QTable_Immob->setText( r,1, QString::number((*it).getValeur()) );
    00729         m_QTable_Immob->setText( r,2, (*it).getDateService().toString("dd-MM-yyyy") );
    00730         m_QTable_Immob->setText( r,3, QString::number((*it).getDuree()) );
    00731         r++;
    00732       }
    00733      }
    00734     m_QTable_Immob->setNumRows( r );
    00735     m_QTable_Immob->setSorting(TRUE);
    00736     m_QTable_Immob->sortColumn(5, FALSE, TRUE);
    00737     m_QTable_Immob->setSorting(FALSE);
    00738   }
    00739 }
    00740
    00741
    00742 void Mvts_Ui::m_Combo_ListeComptes_activated( int )
    00743 { getMouvements(); }
    00744