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

# /home/eric/Bureau/MedinTux-V-2.00/Plug/Compta2/compta/ui/hono_view.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
    00014 void Hono_View::init()
    00015 {m_Popup = 0;
    00016  m_Hono_Liste = new HONO_LISTE;
    00017  if (!m_Hono_Liste) return ;
    00018  m_Hono_Liste->clear();
    00019  m_pActesListe = new ACTES_LISTE;
    00020  if (!m_pActesListe) return;
    00021  m_pActesListe->clear();
    00022
    00023  // Prépare le tableau pour l'affichage
    00024    m_QTable_Hono->setColumnWidth ( 0, 150 );
    00025    m_QTable_Hono->setColumnWidth ( 1, 80 );
    00026    m_QTable_Hono->setColumnWidth ( 2, 80 );
    00027    m_QTable_Hono->setColumnWidth ( 3, 45 );
    00028    m_QTable_Hono->setColumnWidth ( 4, 45 );
    00029    m_QTable_Hono->setColumnWidth ( 5, 45 );
    00030    m_QTable_Hono->setColumnWidth ( 6, 45 );
    00031    m_QTable_Hono->setColumnWidth ( 7, 45 );
    00032    m_QTable_Hono->setColumnWidth ( 8, 45 );
    00033    m_QTable_Hono->setColumnWidth ( 9, 20 );
    00034
    00035 }
    00036
    00037 void Hono_View::destroy()
    00038 { if (m_Verbose) qWarning("CMDI_Honoraires::Destruct");
    00039   if (m_Hono_Liste)     delete m_Hono_Liste;
    00040   if (m_Popup)          delete m_Popup;
    00041   if (m_pActesListe)    delete m_pActesListe;
    00042   //m_pComptaMoteurBase m_pUtilisateurActuel sont deleted par CApp
    00043   if (m_Verbose) qWarning("CMDI_Honoraires::Destruct Fin");
    00044 }
    00045
    00046 void Hono_View::setParams( ComptaMoteurBase*    pComptaMoteurBase,
    00047                            Utilisateurs*        pUtilisateurActuel,
    00048                            bool                 verbose)
    00049 { m_pComptaMoteurBase = pComptaMoteurBase;
    00050   m_pUtilisateurActuel = pUtilisateurActuel;
    00051   m_Verbose = verbose;
    00052   // récupère m_ActesListe
    00053   if (!m_pComptaMoteurBase->getActesForCombobox( *m_pActesListe ) )
    00054    { if (m_Verbose) qWarning("Hono_View::setParams : Impossible de récupérer la liste des actes disponibles.");
    00055      // Ferme l'appli sinon seg fault à cause de la fonction sythèse de CMDI Honoraires
    00056      return ;
    00057    }
    00058    else { if (m_Verbose) qWarning("Hono_View::setParams : Liste des actes disponibles récupérée."); }
    00059
    00060   changeTableFilter();
    00061 }
    00062
    00063
    00068 void Hono_View::m_QTable_Hono_contextMenuRequested( int, int, const QPoint & p)
    00069 {bool valide = FALSE;
    00070  bool canBeValidate = FALSE;
    00071
    00072  HONO_LISTE::iterator it = m_Hono_Liste->at( m_QTable_Hono->currentRow() );
    00073  if (((*it).getRemarque().find(DAF_OK) != -1) ||
    00074      ((*it).getRemarque().find(CHEQUE_DEPOSE) != -1) ||
    00075      ((*it).getValidite() != 0))
    00076         { valide = TRUE; }
    00077
    00078  if (((*it).getRemarque().find(DAF_PAS_OK) != -1) ||
    00079      ((*it).getRemarque().find(CHEQUE_PAS_DEPOSE) != -1) ||
    00080      ((*it).getValidite() != 1))
    00081         { canBeValidate = TRUE; }
    00082
    00083  if (m_Popup) delete m_Popup;
    00084  m_Popup = new QPopupMenu(this, "popTable");
    00085  if (m_Popup)
    00086  { m_Popup->insertItem (TR("Voir"),      this, SLOT(honoView() ) );
    00087    if (!valide)
    00088    { m_Popup->insertItem (TR("Modifier") , this, SLOT(honoModif()  ) );
    00089      m_Popup->insertItem (TR("Supprimer"), this, SLOT(honoDelete() ) );
    00090      if (canBeValidate) m_Popup->insertItem (TR("Valider"), this,   SLOT(honoValide() ) );
    00091    }
    00092    m_Popup->popup(p);
    00093  }
    00094 }
    00095
    00096
    00097 void Hono_View::but_Ajouter_clicked()
    00098 {FormPlugins *mForm = new FormPlugins();
    00099  if (mForm)
    00100  {QString tmp, dt;
    00101   tmp = "";
    00102   dt = QDate::currentDate().toString("dd-MM-yyyy");
    00103   mForm->setParams(tmp,tmp, m_pUtilisateurActuel, dt, tmp, FALSE, tmp, m_pComptaMoteurBase);
    00104   mForm->exec();
    00105   // Met à jour le tableau des honoraires
    00106   if (mForm->result() == QDialog::Accepted)
    00107   { changeTableFilter();
    00108     //emit( honoChange() );
    00109   }
    00110   delete mForm;
    00111  }
    00112 }
    00113
    00114
    00115
    00116 void Hono_View::but_ImprimeSynthese_clicked()
    00117 { QPainter* m_painter = new QPainter();
    00118   QPrinter* m_printer = new QPrinter();
    00119   if ((m_printer) && (m_painter))
    00120   {if (m_printer->setup())
    00121    {m_printer->setDocName("Synthese_honoraires_"+QDateTime::currentDateTime().toString("dd-MM-yyyy_hh:mm:ss:ms"));
    00122     QFont m_font( "Arial", 10);
    00123     QColorGroup sp_colorgroup (colorGroup());
    00124     sp_colorgroup.setColor (QColorGroup::Text, QColor(0,0,0) );
    00125     sp_colorgroup.setColor (QColorGroup::BrightText, QColor(0,0,0) );
    00126     sp_colorgroup.setColor (QColorGroup::ButtonText, QColor(0,0,0) );
    00127     sp_colorgroup.setColor (QColorGroup::HighlightedText, QColor(0,0,0) );
    00128     QSimpleRichText* toPrint = new QSimpleRichText( m_QText_Synthese->text(), m_font );
    00129
    00130     m_painter->begin(m_printer);
    00131     toPrint->draw(m_painter, 50, 50, QRect(50,50,600,1000) , sp_colorgroup );
    00132     m_painter->end();
    00133     delete m_painter;
    00134     delete m_printer;
    00135    }
    00136   }
    00137 }
    00138
    00139 //************************* setTableDesHonorairesTo *************************
    00143 void Hono_View::setTableDesHonorairesTo( HONO_LISTE* hl )
    00144 { if ((hl->count() == 0) || (!hl))
    00145    { m_QTable_Hono->setNumRows( 1 );
    00146      m_QTable_Hono->setText(0,0, TR("Aucun Honoraire enregistré pour cette période") );
    00147      for (int i = 1; i < 9; ++i)
    00148         m_QTable_Hono->setText(0,i, " " );
    00149    }
    00150   else
    00151    { int r = 0;
    00152      double cb,autre,du,daf;
    00153      cb=0;  autre=0;  du=0;  daf=0;
    00154      HONO_LISTE::iterator it;
    00155      m_QTable_Hono->setNumRows( hl->count() );
    00156      for (it = hl->begin(); it !=  hl->end(); ++it )
    00157       { // Récupère le nom de tous les actes
    00158         m_QTable_Hono->setText( r,1, (*it).getActesToString() );
    00159         // Récupère les données de l'honoraire
    00160         m_QTable_Hono->setText( r,0, (*it).getPatient() );
    00161         m_QTable_Hono->setText( r,2, (*it).getDate().toString("dd-MM-yyyy") );
    00162         m_QTable_Hono->setText( r,3, QString::number( (*it).getEsp() ) );
    00163         m_QTable_Hono->setText( r,4, QString::number( (*it).getChq() ) );
    00164         m_QTable_Hono->setText( r,5, QString::number( (*it).getCB() ) );
    00165         m_QTable_Hono->setText( r,6, QString::number( (*it).getAutre() ) );
    00166         m_QTable_Hono->setText( r,7, QString::number( (*it).getDAF() ) );
    00167         m_QTable_Hono->setText( r,8, QString::number( (*it).getDu() ) );
    00168         cb += (*it).getCB();
    00169         autre += (*it).getAutre();
    00170         du += (*it).getDu();
    00171         daf += (*it).getDAF();
    00172         r++;
    00173       }
    00174     if (cb == 0) m_QTable_Hono->hideColumn(5);
    00175     else m_QTable_Hono->showColumn(5);
    00176     if (daf == 0) m_QTable_Hono->hideColumn(7);
    00177     else m_QTable_Hono->showColumn(7);
    00178     if (autre == 0) m_QTable_Hono->hideColumn(6);
    00179     else m_QTable_Hono->showColumn(6);
    00180     if (du == 0) m_QTable_Hono->hideColumn(8);
    00181     else m_QTable_Hono->showColumn(8);
    00182     //m_QTable_Hono->adjustSize();
    00183    }
    00184 }
    00185
    00186
    00187 //************************* afficheSynthese *************************
    00191 bool Hono_View::afficheSynthese( )
    00192 {if (!m_Hono_Liste) return FALSE;
    00193  QString msg = "";
    00194  if ((m_Hono_Liste->count() == 0) || (!m_Hono_Liste))
    00195    msg = "<p align=\"center\">"+TR("Aucun honoraire pour la période.")+"</p>";
    00196  else
    00197  {int nbActes = 0;
    00198   int nbActesTotal = 0;
    00199   int nbDAF = 0;
    00200   int nbDAFOK = 0;
    00201   int nbCheques = 0;
    00202   int nbChequesDeposes = 0;
    00203   uint i, j, nbA = 0;
    00204   Tools* tools = new Tools();
    00205   Paiements *paie = new Paiements();
    00206
    00207   QString debutLigne = "<td align=\"center\"><b>";
    00208   QString finLigne   = "</td></b>";
    00209   QString lineBreak = "<br /><br />";
    00210   QStringList hd, lines;
    00211   hd.clear();
    00212   lines.clear();
    00213
    00214   // Entête du rapport
    00215   m_QText_Synthese->clear();
    00216   msg =  "<p align=\"center\"><b>"+TR("Synthèse des honoraires")+"</b></p>";
    00217   msg +=  "<p align=\"center\"><b>"+m_pComptaMoteurBase->m_pUtilisateurActuel->getNom()+"</b></p>";
    00218
    00219   msg += "<p>";
    00220
    00221   hd << TR("Filtre en cours") << TR("Date de début") << TR("Date de fin");
    00222   lines << "&nbsp;" << m_pComptaMoteurBase->m_Filtre_Date_Debut.toString("dddd dd MMMM yyyy") << m_pComptaMoteurBase->m_Filtre_Date_Fin.toString("dddd dd MMMM yyyy");
    00223   tools->createHTMLTable(hd, lines, msg, 4, 0);
    00224   msg += lineBreak;
    00225
    00226   // Récupère les différents types d'actes
    00227   QString tmp = "";
    00228   QStringList typesActes;
    00229   typesActes.clear();
    00230   ACTES_LISTE::iterator it;
    00231   for (it = m_pActesListe->begin(); it !=  m_pActesListe->end(); ++it )
    00232    { tmp = (*it).getType();
    00233      if (typesActes.isEmpty() )
    00234         { typesActes.append( tmp ); }
    00235      else
    00236       { // Vérifier que le type n'est déjà dans la liste
    00237         if ( typesActes.contains( tmp ) == 0 )
    00238          { typesActes.append ( tmp ); }
    00239        }
    00240    }
    00241
    00242   // Crée une liste de int à la longueur de la QStringList ci-dessus et initialise la
    00243   QMemArray<int>    nbActesParType( typesActes.count() );
    00244   QMemArray<double> montantActesParType( typesActes.count() );
    00245   double montantTotalActes = 0.0;
    00246
    00247   for (i = 0; i < typesActes.count() ; ++i)
    00248    { nbActesParType[i]=0; montantActesParType[i]=0; }
    00249
    00250   HONO_LISTE::iterator ithono;
    00251   for (ithono = m_Hono_Liste->begin(); ithono != m_Hono_Liste->end() ; ++ithono)
    00252    {nbA = 0; i = 0; j = 0;
    00253     paie->m_Esp += (*ithono).getEsp();
    00254     paie->m_Chq += (*ithono).getChq();
    00255     if ((*ithono).getChq() > 0) nbCheques++;
    00256     paie->m_DAF  += (*ithono).getDAF();
    00257     if ((*ithono).getDAF() > 0) nbDAF++;
    00258     paie->m_CB   += (*ithono).getCB();
    00259     paie->m_Du   += (*ithono).getDu();
    00260     paie->m_Autre   += (*ithono).getAutre();
    00261     nbActesTotal = (*ithono).m_Actes.contains("|");
    00262     nbActes += nbActesTotal;
    00263
    00264     // Calcul le nomnre de chèques déposés et de DAF validés
    00265     if ((*ithono).m_Remarque.find("|") != -1) // alors il y a des infos à prendre en compte
    00266     { if ( (*ithono).m_Remarque.find(CHEQUE_DEPOSE) != -1) nbChequesDeposes++;
    00267       if ( (*ithono).m_Remarque.find(DAF_OK) != -1) nbDAFOK++;
    00268     }
    00269
    00270     // Calcul le nombre et le montant des actes de chaque honoraires
    00271     PAIEMENTS_LISTE montantActe;
    00272     montantActe.clear();
    00273     (*ithono).getActes(montantActe);
    00274     for (PAIEMENTS_LISTE::iterator it_paie = montantActe.begin() ; it_paie != montantActe.end(); ++it_paie)
    00275     // Calcul le nombre d'actes selon le type d'actes
    00276       { j=0;
    00277         while ((j < nbActesParType.count()) || (typesActes[j] == (*it_paie).getNom() ))
    00278          { if ( typesActes[j] == (*it_paie).getType() ) // Oui trouvé
    00279              {  nbActesParType[j]++;
    00280                 montantActesParType[j] += (*it_paie).total();
    00281                 break;
    00282              }
    00283            j++;
    00284          } // Fin while
    00285       }  // Fin for nbA
    00286    } // Fin for m_Hono_Liste
    00287
    00288   msg += "<table border=1 cellpadding=2 cellspacing=2 width=100%>";
    00289   QString tabRecap = "<tr>" + debutLigne + TR("Mode de paiement") + finLigne;
    00290   if (paie->getEsp() > 0)       tabRecap += debutLigne + TR("Espèces") +       finLigne;
    00291   if (paie->getChq() > 0)       tabRecap += debutLigne + TR("Chèques") +       finLigne;
    00292   if (paie->getCB() > 0)        tabRecap += debutLigne + TR("CB") +             finLigne;
    00293   if (paie->getDAF() > 0)       tabRecap += debutLigne + TR("DAF") +            finLigne;
    00294   if (paie->getAutre() > 0)     tabRecap += debutLigne + TR("Autre") +          finLigne;
    00295   if (paie->getDu() > 0)        tabRecap += debutLigne + TR("Du") +             finLigne;
    00296                                 tabRecap += debutLigne + TR("TOTAL") +          finLigne;
    00297   tabRecap += "</tr>";
    00298
    00299   msg += tabRecap;
    00300   tabRecap.replace( "<b>", "");
    00301   tabRecap.replace( "</b>", "");
    00302   tabRecap.replace( TR("Mode de paiement"), "<b>"+TR("Totaux")+"</b>" );
    00303   tabRecap.replace( TR("Espèces"), QString::number(paie->getEsp()) );
    00304   tabRecap.replace( TR("Chèques"), QString::number(paie->getChq()) );
    00305   tabRecap.replace( TR("CB"), QString::number(paie->getCB()) );
    00306   tabRecap.replace( TR("DAF"), QString::number(paie->getDAF()) );
    00307   tabRecap.replace( TR("Autre"), QString::number(paie->getAutre()) );
    00308   tabRecap.replace( TR("Du"), QString::number(paie->getDu()) );
    00309   tabRecap.replace( TR("Actes"), QString::number(nbActes) );
    00310   tabRecap.replace( TR("TOTAL"), QString::number(paie->total()) );
    00311   msg += tabRecap;
    00312   msg += "</table>";
    00313   msg += lineBreak;
    00314   msg += "<table border=1 cellpadding=2 cellspacing=2 width=100%>";
    00315
    00316   tabRecap = "<tr>" + debutLigne + TR("Mode de paiement") + finLigne;
    00317   if (nbCheques > 0)    tabRecap += debutLigne + TR("Nb Chèques") +    finLigne;
    00318   if (nbDAF > 0)        tabRecap += debutLigne + TR("Nb DAF") +         finLigne;
    00319   if (nbActes > 0 )     tabRecap += debutLigne + TR("Actes") +          finLigne;
    00320   msg += tabRecap;
    00321
    00322   tabRecap.replace( "<b>", "");
    00323   tabRecap.replace( "</b>", "");
    00324   tabRecap.replace( TR("Mode de paiement"), "<b>"+TR("Quantité")+"</b>" );
    00325   tabRecap.replace( TR("Nb Chèques"), QString::number(nbCheques) );
    00326   tabRecap.replace( TR("Nb DAF"), QString::number(nbDAF) );
    00327   tabRecap.replace( TR("Actes"), QString::number(nbActes) );
    00328   msg += tabRecap + "</table>";
    00329   msg += lineBreak + "</p>";
    00330
    00331   // Construit le tableau du nombre d'actes selon le type
    00332   msg += "<p align =\"center\"><b>Descriptif des actes</b></p><table border=1 cellpadding=2 cellspacing=2 width=100%>";
    00333   QString line1 = "";
    00334   QString line2 = "";
    00335   QString line3 = "";
    00336   QString line4 = "";
    00337
    00338   int nbC, nbV;
    00339   nbC = 0;
    00340   nbV = 0;
    00341
    00342   for (i=0; i < nbActesParType.count(); ++i)
    00343   {  montantTotalActes += montantActesParType[i];    }
    00344
    00345   for (i=0; i < nbActesParType.count(); ++i)
    00346    { if (nbActesParType[i] != 0)
    00347       { line1 += debutLigne + typesActes[i] + finLigne;
    00348         line2 += debutLigne + QString::number(nbActesParType[i]) + finLigne;
    00349         line3 += debutLigne + QString::number(montantActesParType[i]) + finLigne;
    00350         line4 += debutLigne + QString::number((montantActesParType[i] / montantTotalActes)*100,'f',2) + " %" +finLigne;
    00351         // Récupère le nombre de C et de V
    00352         if (typesActes[i] == "Consultation") nbC += nbActesParType[i];
    00353         else if (typesActes[i] == "Visite") nbV += nbActesParType[i];
    00354       }
    00355    }
    00356   line2.replace("<b>","");
    00357   line2.replace("</b>","");
    00358   line3.replace("<b>","");
    00359   line3.replace("</b>","");
    00360   line4.replace("<b>","");
    00361   line4.replace("</b>","");
    00362
    00363
    00364   msg += "<tr><td align=\"center\"><b>Type</b></td>" + line1 + "</tr>";
    00365   msg += "<tr><td align=\"center\"><b>Nombre</b></td>" + line2 + "</tr>";
    00366   msg += "<tr><td align=\"center\"><b>Montant</b></td>" + line3 +"</tr>";
    00367   msg += "<tr><td align=\"center\"><b>Pourcentage du montant total</b></td>" + line4 ;
    00368
    00369   msg+= "</tr></table>";
    00370
    00371   if ((typesActes.contains("Consultation")) && (typesActes.contains("Visite")))
    00372   { double ratio = ( (double)nbV/ (double)nbC) * 100.0;
    00373     msg += "<p>"+TR("Pourcentage de Visites par rapport aux consultations = ")+QString::number(ratio, 'f', 2)+" %</p>";
    00374   }
    00375
    00376  delete tools;
    00377  }
    00378
    00379  m_QText_Synthese->setText(msg);
    00380  return TRUE;
    00381 }
    00382
    00383 //************************* changeTableFilter *************************
    00386 void Hono_View::changeTableFilter( )
    00387 { m_Hono_Liste->clear();
    00388   if (m_pComptaMoteurBase->getHonorairesForTable( m_Hono_Liste ) )
    00389    {    setTableDesHonorairesTo( m_Hono_Liste );
    00390         afficheSynthese();
    00391    }
    00392   else
    00393    {    m_QTable_Hono->setNumRows(0);   m_QText_Synthese->clear();
    00394         QMessageBox::information( this, TR("Une erreur est survenue..."),
    00395           m_pComptaMoteurBase->m_messageErreur, TR("&OK"), QString::null, QString::null, 1 , 2 );
    00396    }
    00397
    00398   if (m_Hono_Liste->count() == 0)  { m_QTable_Hono->setNumRows(0);   m_QText_Synthese->clear();  }
    00399 }
    00400
    00401
    00404 void Hono_View::honoValide()
    00405 { // Vérifie qu'une ligne est bien sélectionnée sinon msg erreur
    00406   if (m_QTable_Hono->currentSelection () != -1)
    00407   { // récupère l'enregistrement en cours
    00408     HONO_LISTE::iterator  it = m_Hono_Liste->at( m_QTable_Hono->currentRow() );
    00409     HONO_LISTE* Hono_valide = new HONO_LISTE;
    00410     Hono_valide->clear();
    00411     Hono_valide->append( (*it) );
    00412     QString msg = "";
    00413      msg  = TR("Attention, vous vous apprêtez à valider des honoraires.<br />Cette validation comptable est obligatoire sur le plan légal et interdit par la suite de :<br />- modifier les honoraires validés,<br />- supprimer les honoraires validés.<br /><br /><br /><br /><b>Voulez-vous valider les honoraires filtrés ?</b><br />");
    00414     if (QMessageBox::information( this, TR("Validation comptable d'honoraires"),msg , TR("&OK"), QString::null, QString::null, 0 , 1 ) == 0)
    00415     { int nbUp = 0;
    00416       m_pComptaMoteurBase->valideHonoraires( Hono_valide, m_pUtilisateurActuel, nbUp );
    00417       msg = QString( TR("%1 honoraire(s) validés dans la base de données sans erreur.")).arg(nbUp);
    00418       QMessageBox::information( this, TR("Validation comptable d'honoraires"),msg , TR("&OK"), QString::null, QString::null, 0 , 1 );
    00419       if (nbUp != 0) changeTableFilter();
    00420     }
    00421     delete Hono_valide;
    00422   } // Fin if column selected
    00423 }
    00424
    00425
    00428 void Hono_View::honoView()
    00429 { // Vérifie qu'une ligne est bien sélectionnée sinon msg erreur
    00430   if (m_QTable_Hono->currentSelection () != -1)
    00431   { // récupère l'enregistrement en cours
    00432     HONO_LISTE::iterator  it = m_Hono_Liste->at( m_QTable_Hono->currentRow() );
    00433     Hono_Visualisation* hView = new Hono_Visualisation(this);
    00434     hView->setHonoraire( &(*it) );
    00435     hView->exec();
    00436     delete hView;
    00437    } // if hView
    00438 }
    00439
    00440
    00445 void Hono_View::honoModif()
    00446 { // Vérifie qu'une ligne est bien sélectionnée sinon msg erreur
    00447   if (m_QTable_Hono->currentSelection () != -1)
    00448     {// récupère l'honoraire à modifier
    00449      HONO_LISTE::iterator  it = m_Hono_Liste->at( m_QTable_Hono->currentRow() );
    00450      Honoraires sauvegarde = (*it);
    00451
    00452      FormPlugins *mForm = new FormPlugins();
    00453      if (mForm)
    00454       { QString tmp, dt;
    00455         dt = (*it).getDate().toString("dd-MM-yyyy");
    00456         mForm->setParams(tmp,tmp, m_pUtilisateurActuel, dt, tmp, FALSE, tmp, m_pComptaMoteurBase);
    00457         if (!mForm->setHonoraire( &(*it) ))
    00458           QMessageBox::information(this, TR("ERREUR"), TR("Attention, vous ne pouvez pas modifier un honoraire contenant :\nun chèque déposé en banque ou \nun paiement différé précédemment validé."),TR("Ok"),"","",1,0);
    00459         else
    00460          { mForm->exec();
    00461            // Met à jour le tableau des honoraires
    00462            if (mForm->result() == QDialog::Accepted)
    00463            { // Trace les modifications
    00464              (*it).traceModifications( &sauvegarde , m_pUtilisateurActuel );
    00465              changeTableFilter();
    00466              //emit( honoChange() );
    00467            }
    00468          }
    00469         delete mForm;
    00470        } // Fin if mForm
    00471      }
    00472 }
    00473
    00477 void Hono_View::honoDelete()
    00478 { // Vérifie qu'une ligne est bien sélectionnée sinon msg erreur
    00479   if (m_QTable_Hono->currentSelection () != -1 && m_Hono_Liste)
    00480    {// Récupère l'honoraire sélectionné
    00481     HONO_LISTE::iterator  it = m_Hono_Liste->at( m_QTable_Hono->currentRow() );
    00482     // Ouvrir un msgbox pour la demande de confirmation
    00483     QString msg = TR("Vous avez sélectionné l'honoraire suivant : <br /><br />");
    00484     msg += TR("Patient : ") + (*it).getPatient() + " <br />";
    00485     msg += TR("Date :&nbsp;&nbsp;&nbsp;&nbsp;") + (*it).getDate().toString("dd MMM yyyy") + " <br />";
    00486     msg += TR("Acte :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;") + (*it).getActesToString() + " <br />";
    00487     msg += TR("Id :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;") + QString::number( (*it).getId() );
    00488     msg += ".<br /><br />";
    00489
    00490     // Vérifie que l'honoraire ne contient ni chèque déposé ni DAF validé
    00491     if ((*it).getRemarque().find(CHEQUE_DEPOSE) != -1)
    00492         { msg += TR("Attention, vous ne pouvez pas supprimer un honoraire contenant un chèque encaissé.<br />");
    00493           QMessageBox::information( this, TR("ERREUR : Suppression d'honoraire."),
    00494                 msg, TR("&Annuler"), QString::null, QString::null,
    00495                 1 , 2 );
    00496         }
    00497     else if ((*it).getRemarque().find(DAF_OK) != -1)
    00498         { msg += TR("Attention, vous ne pouvez pas supprimer un honoraire contenant un paiement différé validé.<br />");
    00499           QMessageBox::information( this, TR("ERREUR : Suppression d'honoraire."),
    00500                 msg, TR("&Annuler"), QString::null, QString::null,
    00501                 1 , 2 );
    00502         }
    00503     else
    00504     {   msg += TR("<b>Confirmez-vous la suppression de cet honoraire ?</b>");
    00505
    00506         if ( QMessageBox::information( this, TR("Suppression d'honoraire"),
    00507                 msg, TR("&Supprimer"), TR("&Annuler"), QString::null,
    00508                 1 , 2 )  == 0 )
    00509         {  if (!m_pComptaMoteurBase->deleteHonoraire( (*it).getId() ) )
    00510            { // Message d'erreur
    00511                 QMessageBox::information( this, TR("Une erreur est survenue..."),
    00512                 m_pComptaMoteurBase->m_messageErreur, TR("&OK"), QString::null, QString::null, 1 , 2 );
    00513            }
    00514            else
    00515            { //rafraîchit la table des honoraires et recalcul la synthèse
    00516              m_Hono_Liste->remove ( it );
    00517              setTableDesHonorairesTo( m_Hono_Liste );
    00518              afficheSynthese();
    00519              //emit( honoChange() );
    00520            }
    00521          }  // Fin if MsgBox de suppression
    00522     } // Fin if remarque
    00523    } // Fin if Selection et m_Hono_Liste
    00524 }
    00525
    00526
    00527 void Hono_View::but_Validation_clicked()
    00528 { QString msg = "";
    00529   msg  = TR("Attention, vous vous apprêtez à valider des honoraires.<br />Cette validation comptable est obligatoire sur le plan légal et interdit par la suite de :<br />- modifier les honoraires validés,<br />- supprimer les honoraires validés.<br /><br /><br /><br /><b>Voulez-vous valider les honoraires filtrés ?</b><br />");
    00530   if (QMessageBox::information( this, TR("Validation comptable d'honoraires"),msg , TR("&OK"), QString::null, QString::null, 0 , 1 ) == 0)
    00531   { int nbUp = 0;
    00532     m_pComptaMoteurBase->valideHonoraires( m_Hono_Liste, m_pUtilisateurActuel, nbUp );
    00533     msg = QString( TR("%1 honoraire(s) validés dans la base de données sans erreur.")).arg(nbUp);
    00534     QMessageBox::information( this, TR("Validation comptable d'honoraires"),msg , TR("&OK"), QString::null, QString::null, 0 , 1 );
    00535   }
    00536 }