no message

git-svn-id: https://svn.coded.pt/svn/SIPRP@316 bb69d46d-e84e-40c8-a05a-06db0d633741
0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
Frederico Palma 19 years ago
parent d52eb37e57
commit 7d2272dc60

@ -11,6 +11,8 @@ package siprp.medicina.presencas;
import com.evolute.utils.data.IDObject;
import com.evolute.utils.data.MappableObject;
import com.evolute.utils.fop.FOPCreator;
import com.evolute.utils.fop.FOPPrinter;
import com.evolute.utils.tracker.TrackableWindow;
import com.evolute.utils.ui.DialogException;
import com.evolute.utils.ui.calendar.JCalendarPanel;
@ -21,12 +23,21 @@ import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.text.DateFormat;
import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
import java.util.Hashtable;
import java.util.List;
import java.util.Locale;
import java.util.Vector;
import javax.swing.*;
import org.jdom.*;
import org.jdom.output.*;
import siprp.clientes.ClientesDataProvider;
import siprp.medicina.MedicinaDataProvider;
import siprp.medicina.prestadores.PrestadoresDataProvider;
@ -37,6 +48,9 @@ import siprp.medicina.prestadores.PrestadoresDataProvider;
public class RegistarPresencasWindow extends JFrame
implements ActionListener, TrackableWindow
{
protected static final String PRINT_TEMPLATE = "/siprp/medicina/presencas/auxiliares.xsl";
protected static final DateFormat D_F = DateFormat.getDateInstance( DateFormat.SHORT, new Locale( "pt", "PT" ) );
protected static final Integer PRESTADOR_ID_SIPRP = new Integer( -1 );
protected static final Integer PRESTADOR_ID_TODOS = new Integer( -2 );
@ -47,6 +61,7 @@ public class RegistarPresencasWindow extends JFrame
protected JButton carregarButton;
protected JComboBox prestadoresCombo;
protected JButton recarregarPrestadoresButton;
protected JButton imprimirAuxiliaresButton;
protected JScrollPane listECDsScroll;
protected JScrollPane listConsultasScroll;
protected MultipleActionListPanel listECDsPanel;
@ -54,6 +69,8 @@ public class RegistarPresencasWindow extends JFrame
protected MedicinaDataProvider provider;
protected PrestadoresDataProvider prestadoresProvider;
protected Presenca ECDS[];
/** Creates a new instance of RegistarPresencasWindow */
public RegistarPresencasWindow()
@ -77,6 +94,8 @@ public class RegistarPresencasWindow extends JFrame
prestadoresCombo = new JComboBox ();
recarregarPrestadoresButton = new JButton( "Recarregar Prestadores" );
recarregarPrestadoresButton.addActionListener( this );
imprimirAuxiliaresButton = new JButton( "Imprimir" );
imprimirAuxiliaresButton.addActionListener( this );
PresencasActionFactory realizouFactory = new PresencasActionFactory( PresencasActionFactory.REALIZOU );
PresencasActionFactory realizouParcialmenteFactory = new PresencasActionFactory( PresencasActionFactory.REALIZOU_PARCIALMENTE );
@ -117,6 +136,7 @@ public class RegistarPresencasWindow extends JFrame
upperPanel.add( prestadoresLabel );
upperPanel.add( prestadoresCombo );
upperPanel.add( recarregarPrestadoresButton );
upperPanel.add( imprimirAuxiliaresButton );
setDefaultCloseOperation( WindowConstants.DO_NOTHING_ON_CLOSE );
addWindowListener( new WindowAdapter(){
@ -145,6 +165,10 @@ public class RegistarPresencasWindow extends JFrame
{
recarregarPrestadores();
}
else if( source.equals( imprimirAuxiliaresButton ) )
{
imprimirAuxiliares();
}
}
public void refresh()
@ -175,6 +199,7 @@ public class RegistarPresencasWindow extends JFrame
protected void carregar()
{
ECDS = null;
try
{
Date data = dataPanel.getDate();
@ -190,7 +215,8 @@ public class RegistarPresencasWindow extends JFrame
ecds.add( new Presenca( id, nome, nomePlain, empresa, tipo ) );
}
Collections.sort( ecds );
listECDsPanel.showList( ecds.toArray( new Presenca[ ecds.size() ] ) );
ECDS = ecds.toArray( new Presenca[ ecds.size() ] );
listECDsPanel.showList( ECDS );
listECDsScroll.setViewportView( listECDsPanel );
Object consultasArray[][] = provider.getListaConsultasByData( data );
@ -233,4 +259,79 @@ public class RegistarPresencasWindow extends JFrame
DialogException.showExceptionMessage( ex, "Erro a carregar prestadores", true );
}
}
protected void imprimirAuxiliares()
{
try
{
Date data = dataPanel.getDate();
if( ECDS == null || data == null )
{
return;
}
ClientesDataProvider clientesProvider =
( ClientesDataProvider ) ClientesDataProvider.getProvider();
MedicinaDataProvider medicinaProvider =
( MedicinaDataProvider ) MedicinaDataProvider.getProvider();
String dataStr = D_F.format( data );
Element rootElement = new Element( "lista-presencas" );
for( int n = 0; n < ECDS.length; n++ )
{
Element presencaElement = new Element( "presenca" );
Element trabalhadorElement = new Element( "trabalhador" );
trabalhadorElement.setText( ECDS[ n ].getNome() );
presencaElement.addContent( trabalhadorElement );
Element empresaElement = new Element( "empresa" );
empresaElement.setText( ECDS[ n ].getNomeEmpresa() );
presencaElement.addContent( empresaElement );
Element dataElement = new Element( "data" );
dataElement.setText( dataStr );
presencaElement.addContent( dataElement );
Integer trabalhadorID = medicinaProvider.getTrabalhadorIDByMarcacaoID( ECDS[ n ].getID() );
Integer empresaID = clientesProvider.getEmpresaIDByTrabalhadorID( trabalhadorID );
Integer realizados[] = medicinaProvider.getDetalhesRealizadosForEstadosMarcacao( ECDS[ n ].getID() );
Vector realizadosVector = new Vector();
realizadosVector.addAll( Arrays.asList( realizados ) );
IDObject validos[] = medicinaProvider.getDetalhesValidosTrabalhador( empresaID, trabalhadorID );
for( int v = 0; v < validos.length; v++ )
{
Integer id = validos[ v ].getID();
if( !realizadosVector.contains( id ) )
{
Element ecdElement = new Element( "ecd" );
ecdElement.setText( validos[ v ].toString() );
presencaElement.addContent( ecdElement );
}
}
rootElement.addContent( presencaElement );
}
Document doc = new Document( rootElement );
ByteArrayOutputStream baos = new ByteArrayOutputStream();
//new XMLOutputter().output( doc, System.out );
new XMLOutputter().output( doc, baos );
ByteArrayOutputStream out = new ByteArrayOutputStream();
FOPCreator creator = FOPCreator.getFOPCreator();
InputStream xmlIn = new ByteArrayInputStream( baos.toByteArray() );
creator.createFOfromXML( xmlIn,
getClass().getResourceAsStream( PRINT_TEMPLATE ),
out );
ByteArrayInputStream in = new ByteArrayInputStream( out.toByteArray() );
Hashtable printOptions = new Hashtable();
FOPPrinter.getFOPPrinter().printFO( in, true, true, printOptions );
}
catch( Exception ex )
{
DialogException.showExceptionMessage( ex, "Erro a imprimir", true );
}
}
}

@ -18,7 +18,7 @@
</fo:block>
</xsl:when>
<xsl:otherwise >
<fo:block>
<fo:block space-after="40pt">
<xsl:apply-templates select="." />
</fo:block>
</xsl:otherwise>
@ -30,21 +30,21 @@
</xsl:template>
<xsl:template match="presenca">
<fo:table table-layout="fixed" width="100%" space-after="10pt">
<fo:table table-layout="fixed" width="100%">
<fo:table-column />
<fo:table-body>
<fo:table-row height="350pt" >
<fo:table-cell border-color="black" border-style="solid" border-width="thin" >
<fo:block font-size="16pt" font-weight="bold" space-after="8pt" space-before="8pt" padding-left="8pt">
<fo:block font-size="14pt" font-weight="bold" space-after="4pt" space-before="8pt" padding-left="8pt">
Realiza&#xe7;&#xe3;o de ECDs
</fo:block>
<fo:block font-size="14pt" font-weight="bold" padding-left="8pt">
<fo:block font-size="12pt" font-weight="bold" padding-left="8pt">
<xsl:value-of select="trabalhador" />
</fo:block>
<fo:block font-size="12pt" space-afer="8pt" padding-left="8pt">
<fo:block font-size="10pt" space-after="4pt" padding-left="8pt">
( <xsl:value-of select="empresa" /> )
</fo:block>
<fo:block font-size="14pt" font-weight="bold" space-after="8pt" padding-left="8pt">
<fo:block font-size="12pt" font-weight="bold" space-after="4pt" padding-left="8pt">
data: <xsl:value-of select="data" />
</fo:block>
<fo:block font-size="12pt" font-weight="bold" space-after="8pt" padding-left="8pt">
@ -52,23 +52,23 @@
</fo:block>
<fo:block padding-left="8pt" padding-right="8pt" space-after="8pt">
<fo:table>
<fo:table-column column-width="100pt"/>
<fo:table-column column-width="200pt"/>
<fo:table-column column-width="100pt"/>
<fo:table-column />
<fo:table-body>
<fo:table-row>
<fo:table-cell border-color="black" border-style="solid" border-width="thin" >
<fo:block font-weight="bold" text-align="center" >
<fo:block font-size="12pt" font-weight="bold" text-align="center" >
ECD
</fo:block>
</fo:table-cell>
<fo:table-cell border-color="black" border-style="solid" border-width="thin" >
<fo:block font-weight="bold" text-align="center" >
<fo:block font-size="12pt" font-weight="bold" text-align="center" >
R&#xfa;brica
</fo:block>
</fo:table-cell>
<fo:table-cell border-color="black" border-style="solid" border-width="thin" >
<fo:block font-weight="bold" text-align="center" >
<fo:block font-size="12pt" font-weight="bold" text-align="center" >
Motivo de n&#xe3;o realiza&#xe7;&#xe3;o
</fo:block>
</fo:table-cell>
@ -76,7 +76,7 @@
<xsl:for-each select="ecd">
<fo:table-row>
<fo:table-cell border-color="black" border-style="solid" border-width="thin" >
<fo:block >
<fo:block font-size="10pt" >
<xsl:value-of select="." />
</fo:block>
</fo:table-cell>
@ -95,19 +95,14 @@
</fo:table-body>
</fo:table>
</fo:block>
<fo:block font-size="12pt" font-weight="bold" space-after="16pt" padding-left="8pt">
<fo:block font-size="12pt" font-weight="bold" space-after="8pt" padding-left="8pt">
hora de sa&#xed;da: __h__m
</fo:block>
<fo:block font-size="12pt" font-weight="bold" space-after="8pt" padding-left="8pt">
<fo:block font-size="12pt" font-weight="bold" padding-left="8pt">
assinatura do trabalhador:________________________________________
</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row height="40pt">
<fo:table-cell>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</xsl:template>

Loading…
Cancel
Save