Subversion Repositories Integrator Subversion

Rev

Rev 106 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

package br.com.ec.domain.dto.anvisa;

import java.io.StringWriter;
import java.util.Date;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.PropertyException;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.transform.stream.StreamResult;

import br.com.ec.core.util.DataUtils;
import br.com.ec.core.util.VerificadorUtil;
import br.com.ec.domain.model.TransmissaoSngpc;

@XmlRootElement(name="mensagemSNGPC", namespace="urn:sngpc-schema")
public class MensagemSNGPC {
       
        private Cabecalho cabecalho;
        private Corpo corpo;
       
        public Cabecalho getCabecalho() {
                return cabecalho;
        }
        public void setCabecalho(Cabecalho cabecalho) {
                this.cabecalho = cabecalho;
        }
       
        public Corpo getCorpo() {
                return corpo;
        }
        public void setCorpo(Corpo corpo) {
                this.corpo = corpo;
        }
       
        public String gerarXmlTransmissao(TransmissaoSngpc transmissaoSngpc) {
                MensagemSNGPC mensagemSNGPC = new MensagemSNGPC();
                Cabecalho cabecalho = new Cabecalho();
                cabecalho.setCnpjEmissor("24884351000170");
                cabecalho.setCpfTransmissor("05864264423");
               
                Date dataInicial = transmissaoSngpc.getDataInicial();
                if (VerificadorUtil.naoEstaNulo(dataInicial)) {
                        cabecalho.setDataInicio(DataUtils.converterDataParaStringNoFormato(dataInicial, "yyyy-MM-dd")); //2018-07-02
                }
                Date dataFinal = transmissaoSngpc.getDataFinal();
                if (VerificadorUtil.naoEstaNulo(dataFinal)) {
                        cabecalho.setDataFim(DataUtils.converterDataParaStringNoFormato(dataFinal, "yyyy-MM-dd")); //2018-07-04
                }
                mensagemSNGPC.setCabecalho(cabecalho);
               
                Corpo corpo = new Corpo();
                corpo.setMedicamentos(new Medicamentos());
                corpo.setInsumos(new Insumos());
                mensagemSNGPC.setCorpo(corpo);
               
                final StringWriter out = new StringWriter();
        JAXBContext context = null;
        try {
            context = JAXBContext.newInstance(mensagemSNGPC.getClass());
            Marshaller marshaller = context.createMarshaller();
            marshaller.setProperty("jaxb.encoding", "ISO-8859-1");
            marshaller.setProperty(javax.xml.bind.Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
            marshaller.marshal(mensagemSNGPC, new StreamResult(out));
        } catch (PropertyException e) {
            e.printStackTrace();
        } catch (JAXBException e) {
            e.printStackTrace();
        }
        return out.toString().replace("ns2:", "").replace(":ns2", "");
        }

        public static void main(String[] args) {
                MensagemSNGPC mensagemSNGPC = new MensagemSNGPC();
                Cabecalho cabecalho = new Cabecalho();
                cabecalho.setCnpjEmissor("24884351000170");
                cabecalho.setCpfTransmissor("05864264423");
                cabecalho.setDataInicio("2018-07-02");
                cabecalho.setDataFim("2018-07-04");
                mensagemSNGPC.setCabecalho(cabecalho);
               
                Corpo corpo = new Corpo();
                /*
                Medicamentos medicamentos = new Medicamentos();
                EntradaMedicamentos entradaMedicamentos = new EntradaMedicamentos();
                MedicamentoEntrada medicamentoEntrada = new MedicamentoEntrada();
                MedicamentoEntrada medicamentoEntrada2 = new MedicamentoEntrada();
                ArrayList<MedicamentoEntrada> medicamentosEntrada = new ArrayList<MedicamentoEntrada>();
                medicamentosEntrada.add(medicamentoEntrada);
                medicamentosEntrada.add(medicamentoEntrada2);
                entradaMedicamentos.setMedicamentoEntrada(medicamentosEntrada);
                medicamentos.setEntradaMedicamentos(entradaMedicamentos);
                corpo.setMedicamentos(medicamentos);
                */

               
                corpo.setMedicamentos(new Medicamentos());
                corpo.setInsumos(new Insumos());
                mensagemSNGPC.setCorpo(corpo);
               
                final StringWriter out = new StringWriter();
        JAXBContext context = null;
        try {
            context = JAXBContext.newInstance(mensagemSNGPC.getClass());
            Marshaller marshaller = context.createMarshaller();
            marshaller.setProperty("jaxb.encoding", "ISO-8859-1");
            marshaller.setProperty(javax.xml.bind.Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
            marshaller.marshal(mensagemSNGPC, new StreamResult(out));
        } catch (PropertyException e) {
            e.printStackTrace();
        } catch (JAXBException e) {
            e.printStackTrace();
        }
        System.out.println(out.toString());
       
        /*
                MensagemSNGPC mensagemSNGPC = new MensagemSNGPC();
                Cabecalho cabecalho = new Cabecalho();
                cabecalho.setCnpjEmissor("24884351000170");
                mensagemSNGPC.setCabecalho(cabecalho);
               
                try {
                        JAXBContext context = JAXBContext.newInstance("br.com.caelum");
                        Marshaller marshaller = context.createMarshaller();
                        JAXBElement<MensagemSNGPC> element = new ObjectFactory().createCarro(mensagemSNGPC);
                        marshaller.marshal(element, System.out);
                       
                        context = JAXBContext.newInstance("mensagemSNGPC");
                        Marshaller m = context.createMarshaller();
                m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
                m.marshal(mensagemSNGPC, System.out);
                } catch (JAXBException e) {
                        e.printStackTrace();
                }
                */

        }

}