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();
}
*/
}
}