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

# /home/eric/Bureau/MedinTux-V-2.00/Plug/Compta2/compta/ui/daf_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 #define TR      QObject::tr
    00015
    00016 void Daf_View::init()
    00017 { m_QTable_DAF->setColumnWidth(0, 150);
    00018   m_QTable_DAF->setColumnWidth(1, 100);
    00019   m_QTable_DAF->setColumnWidth(2, 100);
    00020   m_QTable_DAF->setColumnWidth(3, 50);
    00021   m_QTable_DAF->setColumnWidth(4, 100);
    00022   m_QTable_DAF->setColumnWidth(5, 20);
    00023
    00024   m_pHono_Liste_DAF = 0;
    00025   m_Verbose = FALSE;
    00026   m_pComptaMoteurBase = 0;
    00027   m_Modified = FALSE;
    00028   m_Popup = 0;
    00029 }
    00030
    00031 void Daf_View::destroy()
    00032 { if (m_Verbose) qWarning("DAF_VIEW::Destruct");
    00033   if (m_pHono_Liste_DAF)        delete m_pHono_Liste_DAF;
    00034   // m_pComptaMoteurBase est deleted par CApp
    00035   if (m_Verbose) qWarning("DAF_VIEW::Destruct Fin");
    00036 }
    00037
    00038
    00039 void Daf_View::setParams(ComptaMoteurBase*      pComptaMoteurBase,
    00040                          Utilisateurs*          pUtilisateurActuel,
    00041                          bool                   verbose)
    00042 { m_pUtilisateurActuel = pUtilisateurActuel;
    00043   m_Verbose = verbose;
    00044   m_pComptaMoteurBase = pComptaMoteurBase;
    00045   m_pHono_Liste_DAF = new HONO_LISTE;
    00046
    00047   setTableTo();
    00048 }
    00049
    00050 void Daf_View::m_QTable_DAF_contextMenuRequested( int, int, const QPoint & p )
    00051 {bool valide = FALSE;
    00052  bool canBeValidate = FALSE;
    00053
    00054  HONO_LISTE::iterator it = m_pHono_Liste_DAF->at( m_QTable_DAF->currentRow() );
    00055  if (((*it).getRemarque().find(DAF_OK) != -1) ||
    00056      ((*it).getRemarque().find(CHEQUE_DEPOSE) != -1) ||
    00057      ((*it).getValidite() != 0))
    00058         { valide = TRUE; }
    00059
    00060  if (((*it).getRemarque().find(DAF_PAS_OK) != -1) ||
    00061      ((*it).getRemarque().find(CHEQUE_PAS_DEPOSE) != -1) ||
    00062      ((*it).getValidite() != 1))
    00063         { canBeValidate = TRUE; }
    00064
    00065  if (m_Popup) delete m_Popup;
    00066  m_Popup = new QPopupMenu(this, "popTable");
    00067  if (m_Popup)
    00068  { m_Popup->insertItem (TR("Voir"),      this, SLOT(honoView() ) );
    00069    if (!valide)
    00070    { m_Popup->insertItem (TR("Modifier") , this, SLOT(honoModif()  ) );
    00071      m_Popup->insertItem (TR("Supprimer"), this, SLOT(honoDelete() ) );
    00072      if (canBeValidate) m_Popup->insertItem (TR("Valider"), this,   SLOT(honoValide() ) );
    00073    }
    00074    m_Popup->popup(p);
    00075  }
    00076 }
    00077
    00078
    00081 void Daf_View::honoValide()
    00082 { // Vérifie qu'une ligne est bien sélectionnée sinon msg erreur
    00083   if (m_QTable_DAF->currentSelection () != -1)
    00084   { // récupère l'enregistrement en cours
    00085     HONO_LISTE::iterator  it = m_pHono_Liste_DAF->at( m_QTable_DAF->currentRow() );
    00086     HONO_LISTE* Hono_valide = new HONO_LISTE;
    00087     Hono_valide->clear();
    00088     Hono_valide->append( (*it) );
    00089     QString msg = "";
    00090      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 />");
    00091     if (QMessageBox::information( this, TR("Validation comptable d'honoraires"),msg , TR("&OK"), QString::null, QString::null, 0 , 1 ) == 0)
    00092     { int nbUp = 0;
    00093       m_pComptaMoteurBase->valideHonoraires( Hono_valide, m_pUtilisateurActuel, nbUp );
    00094       msg = QString( TR("%1 honoraire(s) validés dans la base de données sans erreur.")).arg(nbUp);
    00095       QMessageBox::information( this, TR("Validation comptable d'honoraires"),msg , TR("&OK"), QString::null, QString::null, 0 , 1 );
    00096     }
    00097   } // Fin if column selected
    00098 }
    00099
    00100
    00103 void Daf_View::honoView()
    00104 { // Vérifie qu'une ligne est bien sélectionnée sinon msg erreur
    00105   if (m_QTable_DAF->currentSelection () != -1)
    00106   { // récupère l'enregistrement en cours
    00107     HONO_LISTE::iterator  it = m_pHono_Liste_DAF->at( m_QTable_DAF->currentRow() );
    00108     Hono_Visualisation* hView = new Hono_Visualisation(this);
    00109     hView->setHonoraire( &(*it) );
    00110     hView->exec();
    00111     delete hView;
    00112    } // if hView
    00113 }
    00114
    00115
    00120 void Daf_View::honoModif()
    00121 { // Vérifie qu'une ligne est bien sélectionnée sinon msg erreur
    00122   if (m_QTable_DAF->currentSelection () != -1)
    00123     {// récupère l'honoraire à modifier
    00124      HONO_LISTE::iterator  it = m_pHono_Liste_DAF->at( m_QTable_DAF->currentRow() );
    00125      FormPlugins *mForm = new FormPlugins();
    00126      if (mForm)
    00127       { QString tmp, dt;
    00128         dt = (*it).getDate().toString("dd-MM-yyyy");
    00129         mForm->setParams(tmp,tmp, m_pUtilisateurActuel, dt, tmp, FALSE, tmp, m_pComptaMoteurBase);
    00130         if (!mForm->setHonoraire( &(*it) ))
    00131           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);
    00132         else
    00133          { mForm->exec();
    00134            // Met à jour le tableau des honoraires
    00135            if (mForm->result() == QDialog::Accepted)
    00136            { setTableTo();
    00137              //emit( honoChange() );
    00138            }
    00139          }
    00140         delete mForm;
    00141        } // Fin if mForm
    00142      }
    00143 }
    00144
    00148 void Daf_View::honoDelete()
    00149 { // Vérifie qu'une ligne est bien sélectionnée sinon msg erreur
    00150   if (m_QTable_DAF->currentSelection () != -1 && m_pHono_Liste_DAF)
    00151    {// Récupère l'honoraire sélectionné
    00152     HONO_LISTE::iterator  it = m_pHono_Liste_DAF->at( m_QTable_DAF->currentRow() );
    00153     // Ouvrir un msgbox pour la demande de confirmation
    00154     QString msg = TR("Vous avez sélectionné l'honoraire suivant : <br /><br />");
    00155     msg += TR("Patient : ") + (*it).getPatient() + " <br />";
    00156     msg += TR("Date :&nbsp;&nbsp;&nbsp;&nbsp;") + (*it).getDate().toString("dd MMM yyyy") + " <br />";
    00157     msg += TR("Acte :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;") + (*it).getActesToString() + " <br />";
    00158     msg += TR("Id :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;") + QString::number( (*it).getId() );
    00159     msg += ".<br /><br />";
    00160
    00161     // Vérifie que l'honoraire ne contient ni chèque déposé ni DAF validé
    00162     if ((*it).getRemarque().find(CHEQUE_DEPOSE) != -1)
    00163         { msg += TR("Attention, vous ne pouvez pas supprimer un honoraire contenant un chèque encaissé.<br />");
    00164           QMessageBox::information( this, TR("ERREUR : Suppression d'honoraire."),
    00165                 msg, TR("&Annuler"), QString::null, QString::null,
    00166                 1 , 2 );
    00167         }
    00168     else if ((*it).getRemarque().find(DAF_OK) != -1)
    00169         { msg += TR("Attention, vous ne pouvez pas supprimer un honoraire contenant un paiement différé validé.<br />");
    00170           QMessageBox::information( this, TR("ERREUR : Suppression d'honoraire."),
    00171                 msg, TR("&Annuler"), QString::null, QString::null,
    00172                 1 , 2 );
    00173         }
    00174     else
    00175     {   msg += TR("<b>Confirmez-vous la suppression de cet honoraire ?</b>");
    00176
    00177         if ( QMessageBox::information( this, TR("Suppression d'honoraire"),
    00178                 msg, TR("&Supprimer"), TR("&Annuler"), QString::null,
    00179                 1 , 2 )  == 0 )
    00180         {  if (!m_pComptaMoteurBase->deleteHonoraire( (*it).getId() ) )
    00181            { // Message d'erreur
    00182                 QMessageBox::information( this, TR("Une erreur est survenue..."),
    00183                 m_pComptaMoteurBase->m_messageErreur, TR("&OK"), QString::null, QString::null, 1 , 2 );
    00184            }
    00185            else
    00186            { //rafraîchit la table des honoraires et recalcul la synthèse
    00187              m_pHono_Liste_DAF->remove ( it );
    00188              setTableTo( );
    00189              //emit( honoChange() );
    00190            }
    00191          }  // Fin if MsgBox de suppression
    00192     } // Fin if remarque
    00193    } // Fin if Selection et m_Hono_Liste
    00194 }
    00195
    00196
    00197
    00201 void Daf_View::setTableTo( )
    00202 { bool voirTout, voirValides, voirNonValides;
    00203   voirTout=FALSE; voirValides=FALSE; voirNonValides=FALSE;
    00204
    00205   switch (m_Combo_Voir->currentItem())
    00206   { case 0 : { voirTout=TRUE; voirValides=FALSE; voirNonValides=FALSE; break; }
    00207     case 1 : { voirTout=FALSE; voirValides=TRUE; voirNonValides=FALSE; break; }
    00208     case 2 : { voirTout=FALSE; voirValides=FALSE; voirNonValides=TRUE; break; }
    00209   }
    00210
    00211  // Récupère les honoraires DAF pour la période
    00212  if (!m_pComptaMoteurBase->getHonoraires_DAF_ForGestion( m_pHono_Liste_DAF ) )
    00213  { if (m_Verbose) qWarning(m_pComptaMoteurBase->m_messageErreur); return;}
    00214
    00215  for (int i = 0; i < m_QTable_DAF->numRows(); ++i)
    00216  { m_QTable_DAF->clearCell(i, 0);
    00217    m_QTable_DAF->clearCell(i, 1);
    00218    m_QTable_DAF->clearCell(i, 2);
    00219    m_QTable_DAF->clearCell(i, 3);
    00220    m_QTable_DAF->clearCell(i, 4);
    00221  }
    00222
    00223  if ((m_pHono_Liste_DAF->count() == 0) || (!m_pHono_Liste_DAF))
    00224  { m_QTable_DAF->setNumRows( 1 );
    00225    m_QTable_DAF->setText(0,0, TR("Aucun DAF enregistré pour cette période") );
    00226    for (int i = 1; i < 9; ++i)
    00227         m_QTable_DAF->setText(0,i, " " );
    00228  }
    00229  else
    00230  { int r = 0;
    00231    double daf = 0.0;
    00232    HONO_LISTE::iterator it;
    00233    m_QTable_DAF->setNumRows( m_pHono_Liste_DAF->count() );
    00234    for (it = m_pHono_Liste_DAF->begin(); it !=  m_pHono_Liste_DAF->end(); ++it )
    00235    { if ((voirTout) || (((*it).getRemarque().find(DAF_OK) != -1) && (voirValides))
    00236                      || (((*it).getRemarque().find(DAF_PAS_OK) != -1) && (voirNonValides))
    00237          )
    00238       {
    00239         // Récupère le nom de tous les actes
    00240         m_QTable_DAF->setText( r,1, (*it).getActesToString() );
    00241         // Récupère les données de l'honoraire
    00242         m_QTable_DAF->setText( r,0, (*it).getPatient() );
    00243         m_QTable_DAF->setText( r,2, (*it).getDate().toString("dd-MM-yyyy") );
    00244         m_QTable_DAF->setText( r,3, QString::number( (*it).getDAF() ) );
    00245         m_QTable_DAF->setItem( r,4, new QCheckTableItem( m_QTable_DAF, TR("Encaisser") ) );
    00246         if ((*it).getRemarque().find(DAF_OK) != -1)
    00247         { QCheckTableItem* item = dynamic_cast<QCheckTableItem*>(m_QTable_DAF->item(r,4));
    00248           item->setChecked(TRUE);
    00249         }
    00250         m_QTable_DAF->setText( r,5, " "  );
    00251
    00252         daf += (*it).getDAF();
    00253         r++;
    00254       } // Fin if
    00255     } // Fin for
    00256    if (r == 0)  // Aucun DAF selon filtre combobox
    00257    { m_QTable_DAF->setNumRows( 1 );
    00258      m_QTable_DAF->setText(0,0, TR("Aucun DAF"));
    00259      m_QTable_DAF->setText(0,1, TR("pour la période"));
    00260      m_QTable_DAF->setText(0,2, TR("filtrée"));
    00261      m_QTable_DAF->setText(0,4, "");
    00262      m_QTable_DAF->setText(0,5, "");
    00263      m_QTable_DAF->setText(0,6, "");
    00264    }
    00265    m_LineEdit_TotalDAF->setText(QString::number(daf, 'f', 2));
    00266  } // Fin if count() == 0
    00267 }
    00268
    00269
    00271 void Daf_View::but_SelectAll_clicked()
    00272 { for (int i=0; i < m_QTable_DAF->numRows(); ++i)
    00273     { QCheckTableItem* item = dynamic_cast<QCheckTableItem*>(m_QTable_DAF->item(i,4));
    00274       item->setChecked(TRUE);
    00275     }
    00276   m_Modified = TRUE;
    00277 }
    00278
    00279
    00281 void Daf_View::but_DeSelect_clicked()
    00282 { for (int i=0; i < m_QTable_DAF->numRows(); ++i)
    00283     { QCheckTableItem* item = dynamic_cast<QCheckTableItem*>(m_QTable_DAF->item(i,4));
    00284       item->setChecked(FALSE);
    00285     }
    00286   m_Modified = TRUE;
    00287 }
    00288
    00289
    00290 void Daf_View::m_Combo_Voir_activated( int )
    00291 { setTableTo(); }
    00292
    00293
    00294 void Daf_View::m_QTable_DAF_clicked( int r, int, int, const QPoint & )
    00295 { QCheckTableItem* item = dynamic_cast<QCheckTableItem*>(m_QTable_DAF->item(r,4));
    00296   if (item->isChecked()) item->setChecked(FALSE); else item->setChecked(TRUE);
    00297   m_Modified = TRUE;
    00298 }
    00299
    00300
    00301 void Daf_View::but_Encaisser_clicked()
    00302 { // Continue que si modification des checkbox
    00303   if (!m_Modified) return;
    00304   HONO_LISTE::iterator it;
    00305   HONO_LISTE* p_Liste_DAF_Modifie = new HONO_LISTE;
    00306   p_Liste_DAF_Modifie->clear();
    00307
    00308   // Pour tous les honoraires récupère le statut encaissé ou non encaissé
    00309  for (uint i=0; i < m_pHono_Liste_DAF->count(); ++i)
    00310   { it = m_pHono_Liste_DAF->at ( i );
    00311     // Récupère le checkbox
    00312     QCheckTableItem* item = dynamic_cast<QCheckTableItem*>(m_QTable_DAF->item(i,4));
    00313
    00314     // Test modification d'état d'encaissement
    00315     if (item->isChecked())
    00316     { if ( (*it).getRemarque().find(DAF_PAS_OK) != -1) p_Liste_DAF_Modifie->append( (*it) );
    00317     }
    00318
    00319   }
    00320   // Met à jour la base de données
    00321   if (p_Liste_DAF_Modifie->count() != 0)
    00322   { int nbUp = 0;
    00323     m_pComptaMoteurBase->encaisseDAF( p_Liste_DAF_Modifie, m_pUtilisateurActuel , nbUp);
    00324     QString msg = QString( TR("%1 DAF viennent d'être encaissés.") ).arg(nbUp);
    00325     QMessageBox::information(this, TR("Encaissement des DAF"), msg , TR("Ok"),"","",1,0);
    00326   }
    00327   delete p_Liste_DAF_Modifie;
    00328   setTableTo();
    00329 }
    00330
    00331
    00332
    00333
    00334
    00335