diff --git a/trunk/SIPRPSoft/src/siprp/FichaDataProvider.java b/trunk/SIPRPSoft/src/siprp/FichaDataProvider.java index 13fd3430..37d444cc 100644 --- a/trunk/SIPRPSoft/src/siprp/FichaDataProvider.java +++ b/trunk/SIPRPSoft/src/siprp/FichaDataProvider.java @@ -17,11 +17,14 @@ import com.evolute.utils.Singleton; import com.evolute.utils.arrays.Virtual2DArray; import com.evolute.utils.data.IDObject; import com.evolute.utils.data.MappableObject; +import com.evolute.utils.db.DBException; import com.evolute.utils.db.DBManager; import com.evolute.utils.db.Executer; import com.evolute.utils.sql.Assignment; +import com.evolute.utils.sql.Expression; import com.evolute.utils.sql.Field; import com.evolute.utils.sql.Select; +import com.evolute.utils.sql.Select2; import com.evolute.utils.sql.Update; import com.evolute.utils.strings.StringPlainer; import com.evolute.utils.ui.search.SearchDialog; @@ -715,4 +718,30 @@ public class FichaDataProvider } return ( Integer ) medicosEstabelecimentosHash.get( estabelecimentoID ); } + + public Long countTrabalhadoresActivosForEmpresa( Integer empresaID ) + { + Long result = 0L; + try + { + Select2 query = new Select2( new String[]{"trabalhadores", "estabelecimentos", "empresas" }, + new Integer[]{ Select2.JOIN_INNER, Select2.JOIN_INNER }, + new Expression[]{ + new Field("estabelecimentos.id").isEqual(new Field("trabalhadores.estabelecimento_id")), + new Field("empresas.id").isEqual( new Field("estabelecimentos.empresa_id") ) }, + new String[]{"count(trabalhadores.id)" }, + new Field("empresas.id").isEqual( empresaID ). + and( new Field("trabalhadores.inactivo").isEqual( "n" ) ), + null, null, null, null); + Virtual2DArray returned = executer.executeQuery( query ); + if( returned.columnLength() > 0 ) + { + result = (Long) returned.get( 0, 0 ); + } + } + catch (DBException e) { + e.printStackTrace(); + } + return result; + } } diff --git a/trunk/SIPRPSoft/src/siprp/clientes/EmpresaPanel.java b/trunk/SIPRPSoft/src/siprp/clientes/EmpresaPanel.java index e71bf0d0..1460214a 100644 --- a/trunk/SIPRPSoft/src/siprp/clientes/EmpresaPanel.java +++ b/trunk/SIPRPSoft/src/siprp/clientes/EmpresaPanel.java @@ -31,6 +31,9 @@ import siprp.data.*; public class EmpresaPanel extends JPanel implements ControllableComponent, ListSelectionListener { + + private static final String STRING_TRABALHADORES_ACTIVOS = "Trabalhadores activos"; + private JDOProvider JDO; private FichaDataProvider provider; @@ -75,6 +78,7 @@ public class EmpresaPanel extends JPanel private MarcacaoEmpresaPanel marcacaoPanel; private CardLayout marcacoesCardLayout; private ProtocoloPanel protocoloPanel; + private JLabel labelTrabalhadoresActivos = new JLabel( getTextForTrabalhadoresActivos(0) ); // private UserPanel userPanel; private BaseTable estabelecimentosTable; @@ -96,6 +100,11 @@ public class EmpresaPanel extends JPanel setupComponentsHashtable(); } + private String getTextForTrabalhadoresActivos( long numTrabalhadoresActivos ) + { + return STRING_TRABALHADORES_ACTIVOS + " (" + numTrabalhadoresActivos + ")"; + } + private void setupComponents() throws Exception { @@ -459,9 +468,8 @@ public class EmpresaPanel extends JPanel constraints.weightx = 0.4; constraints.gridwidth = GridBagConstraints.REMAINDER; - pad = new JPanel(); - gridbag.setConstraints( pad, constraints ); - formalidadesPanel.add( pad ); + gridbag.setConstraints( labelTrabalhadoresActivos, constraints ); + formalidadesPanel.add( labelTrabalhadoresActivos ); // constraints.weightx = 0.5; // constraints.gridwidth = GridBagConstraints.REMAINDER; @@ -809,6 +817,12 @@ public class EmpresaPanel extends JPanel dadosProtocolo[ 1 ].add( analisesExamesB ); dadosProtocolo[ 1 ].add( elementosProtocolo[ 1 ] ); protocoloPanel.fill( dadosProtocolo ); + Integer empresaID = empresa == null ? null : (Integer) empresa.get( EmpresaData.ID ); + if( empresaID != null ) + { + Long numTrabalhadoresActivos = provider.countTrabalhadoresActivosForEmpresa( empresaID ); + labelTrabalhadoresActivos.setText( getTextForTrabalhadoresActivos( numTrabalhadoresActivos ) ); + } // if( webAware ) // { // userPanel.setEmpresaID( (Integer) empresa.get( EmpresaData.ID ) );