SNGPC
Segue o incicio para criar um sistema para SNGPC, fica a aberto para quem quiser contribuir.
procedure TForm1.BitBtn1Click(Sender: TObject);
var
i,x: Word;
NCorpo,NMedicamento,NData: IXMLNode;
XMLDoc: TXMLDocument;
begin
x:=1;
//x:=10;
// Cria o documento
XMLDoc:=TXMLDocument.Create(Application);
with XMLDoc do
begin
Active:=True;
Version:='1.0';
Encoding:='ISO-8859-1';
AddChild('mensagemSNGPC','urn:sngpc-schema');
with DocumentElement do
begin
AddChild('cabecalho');
ChildNodes.Last.AddChild('cnpjEmissor').NodeValue:='99999999000199';
ChildNodes.Last.AddChild ('cpfTransmissor').NodeValue:='00000000000';
ChildNodes.Last.AddChild('dataInicio').NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
ChildNodes.Last.AddChild('dataFim').NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
end;
NCorpo:=DocumentElement.AddChild('corpo');
// *************************** MEDICAMENTO *********************************
NMedicamento:=NCorpo.AddChild('medicamentos');
// Loop das [Entradas] :: MEDICAMENTO
for i:=1 to x do
begin
NData:=NMedicamento.AddChild('entradaMedicamentos');
with NData do
begin
ChildNodes['notaFiscalEntradaMedicamento'].ChildNodes['numeroNotaFiscal'].NodeValue:=IntToStr(i);
// [tipoOperacaoNotaFiscal]
// 1 Compra
// 2 Transferência
// 3 Venda
ChildNodes['notaFiscalEntradaMedicamento'].ChildNodes['tipoOperacaoNotaFiscal'].NodeValue:='1';
ChildNodes['notaFiscalEntradaMedicamento'].ChildNodes['dataNotaFiscal'].NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
ChildNodes['notaFiscalEntradaMedicamento'].ChildNodes['cnpjOrigem'].NodeValue:='99999999000199';
ChildNodes['notaFiscalEntradaMedicamento'].ChildNodes['cnpjDestino'].NodeValue:='99999999000199';
ChildNodes['medicamentoEntrada'].ChildNodes['registroMSMedicamento'].NodeValue:='1010000750061';
ChildNodes['medicamentoEntrada'].ChildNodes['numeroLoteMedicamento'].NodeValue:='RV365';
ChildNodes['medicamentoEntrada'].ChildNodes['quantidadeMedicamento'].NodeValue:='12';
ChildNodes['dataRecebimentoMedicamento'].NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
end;
end;
// Loop das [Saidas] :: MEDICAMENTO
for i:=1 to x do
begin
NData:=NMedicamento.AddChild('saidaMedicamentoVendaAoConsumidor');
with NData do
begin
// [tipoReceituarioMedicamento]
// 1 Receita de Controle Especial em 2 vias (Receita Branca)
// 2 Notificação de Receita B (Notificação Azul)
// 3 Notificação de Receita Especial (Notificação Branca)
// 4 Notificação de Receita A (Notificação Amarela)
ChildNodes['tipoReceituarioMedicamento'].NodeValue:='1';
ChildNodes['numeroNotificacaoMedicamento'].NodeValue:='213213';
ChildNodes['dataPrescricaoMedicamento'].NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
ChildNodes['prescritorMedicamento'].ChildNodes['nomePrescritor'].NodeValue:='XFULANO';
ChildNodes['prescritorMedicamento'].ChildNodes['numeroRegistroProfissional'].NodeValue:='99999';
// [conselhoProfissional]
// CRM Conselho Regional de Medicina
// CRMV Conselho Regional de Medicina Veterinária
// CRO Conselho Regional de Odontologia
ChildNodes['prescritorMedicamento'].ChildNodes['conselhoProfissional'].NodeValue:='CRM';
ChildNodes['prescritorMedicamento'].ChildNodes['UFConselho'].NodeValue:='PR';
// [usoMedicamento]
// 1 Humano
// 2 Veterinario
ChildNodes['usoMedicamento'].NodeValue:='1';
ChildNodes['compradorMedicamento'].ChildNodes['nomeComprador'].NodeValue:='XCICLANO';
// [tipoDocumento]
// 1 CARTEIRA DE REGISTRO PROFISSIONAL
// 2 CARTEIRA DE IDENTIDADE . . . existem mais
ChildNodes['compradorMedicamento'].ChildNodes['tipoDocumento'].NodeValue:='1';
ChildNodes['compradorMedicamento'].ChildNodes['numeroDocumento'].NodeValue:='123';
ChildNodes['compradorMedicamento'].ChildNodes['orgaoExpedidor'].NodeValue:='SSP';
ChildNodes['compradorMedicamento'].ChildNodes['UFEmissaoDocumento'].NodeValue:='PR';
ChildNodes['medicamentoVenda'].ChildNodes['registroMSMedicamento'].NodeValue:='1010000430215';
ChildNodes['medicamentoVenda'].ChildNodes['numeroLoteMedicamento'].NodeValue:='RGJ0400';
ChildNodes['medicamentoVenda'].ChildNodes['quantidadeMedicamento'].NodeValue:='3';
ChildNodes['dataVendaMedicamento'].NodeValue := FormatDateTime('yyyy-mm-dd',Date);
end;
end;
// Loop das [Transferencias] :: MEDICAMENTO
for i:=1 to x do
begin
NData:=NMedicamento.AddChild('saidaMedicamentoTransferencia');
with NData do
begin
ChildNodes['notaFiscalTransferenciaMedicamento'].ChildNodes['numeroNotaFiscal'].NodeValue:=IntToStr(i);
// [tipoOperacaoNotaFiscal]
// 1 Compra
// 2 Transferência
// 3 Venda
ChildNodes['notaFiscalTransferenciaMedicamento'].ChildNodes['tipoOperacaoNotaFiscal'].NodeValue:='2';
ChildNodes['notaFiscalTransferenciaMedicamento'].ChildNodes['dataNotaFiscal'].NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
ChildNodes['notaFiscalTransferenciaMedicamento'].ChildNodes['cnpjOrigem'].NodeValue:='99999999000199';
ChildNodes['notaFiscalTransferenciaMedicamento'].ChildNodes['cnpjDestino'].NodeValue:='99999999000199';
ChildNodes['medicamentoTransferencia'].ChildNodes['registroMSMedicamento'].NodeValue:='1058302590029';
ChildNodes['medicamentoTransferencia'].ChildNodes['numeroLoteMedicamento'].NodeValue:='153353';
ChildNodes['medicamentoTransferencia'].ChildNodes['quantidadeMedicamento'].NodeValue:='2';
ChildNodes['dataTransferenciaMedicamento'].NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
end;
end;
// Loop das [Perdas] :: MEDICAMENTO
for i:=1 to x do
begin
NData:=NMedicamento.AddChild('saidaMedicamentoPerda');
with NData do
begin
// [motivoPerdaMedicamento]
// 1 Furto / Roubo
// 2 Avaria
// 3 Vencimento
// 4 Apreensão / Recolhimento pela Visa
ChildNodes['motivoPerdaMedicamento'].NodeValue:='3';
ChildNodes['medicamentoPerda'].ChildNodes['registroMSMedicamento'].NodeValue:='1010000750061';
ChildNodes['medicamentoPerda'].ChildNodes['numeroLoteMedicamento'].NodeValue:='RV365';
ChildNodes['medicamentoPerda'].ChildNodes['quantidadeMedicamento'].NodeValue:='2';
ChildNodes['dataPerdaMedicamento'].NodeValue := FormatDateTime('yyyy-mm-dd',Date);
end;
end;
// *************************************************************************
// ********************************* INSUMO ********************************
NMedicamento:=NCorpo.AddChild('insumos');
// Loop das [Entradas] :: INSUMO
for i:=1 to x do
begin
NData:=NMedicamento.AddChild('entradaInsumos');
with NData do
begin
ChildNodes['notaFiscalEntradaInsumo'].ChildNodes['numeroNotaFiscal'].NodeValue:=IntToStr(i);
// [tipoOperacaoNotaFiscal]
// 1 Compra
// 2 Transferência
// 3 Venda
ChildNodes['notaFiscalEntradaInsumo'].ChildNodes['tipoOperacaoNotaFiscal'].NodeValue:='1';
ChildNodes['notaFiscalEntradaInsumo'].ChildNodes['dataNotaFiscal'].NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
ChildNodes['notaFiscalEntradaInsumo'].ChildNodes['cnpjOrigem'].NodeValue:='99999999000199';
ChildNodes['notaFiscalEntradaInsumo'].ChildNodes['cnpjDestino'].NodeValue:='99999999000199';
ChildNodes['substanciaInsumoEntrada'].ChildNodes['insumoEntrada'].ChildNodes['codigoInsumo'].NodeValue:='0075';
ChildNodes['substanciaInsumoEntrada'].ChildNodes['insumoEntrada'].ChildNodes['numeroLoteInsumo'].NodeValue:='788cpf';
ChildNodes['substanciaInsumoEntrada'].ChildNodes['insumoEntrada'].ChildNodes['insumoCNPJFornecedor'].NodeValue:='99999999000199';
ChildNodes['substanciaInsumoEntrada'].ChildNodes['quantidadeInsumoEntrada'].NodeValue:='40000.0';
ChildNodes['substanciaInsumoEntrada'].ChildNodes['tipoUnidadeEntrada'].NodeValue:='1';
ChildNodes['dataRecebimentoInsumo'].NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
end;
end;
// Loop das [Saidas] :: INSUMO
for i:=1 to x do
begin
NData:=NMedicamento.AddChild('saidaInsumoVendaAoConsumidor');
with NData do
begin
// [tipoReceituarioInsumo]
// 1 Receita de Controle Especial em 2 vias (Receita Branca)
// 2 Notificação de Receita B (Notificação Azul)
// 3 Notificação de Receita Especial (Notificação Branca)
// 4 Notificação de Receita A (Notificação Amarela)
ChildNodes['tipoReceituarioInsumo'].NodeValue:='2';
ChildNodes['numeroNotificacaoInsumo'].NodeValue:='9897651';
ChildNodes['dataPrescricaoInsumo'].NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
ChildNodes['prescritorInsumo'].ChildNodes['nomePrescritor'].NodeValue:='Dr. Antenor';
ChildNodes['prescritorInsumo'].ChildNodes['numeroRegistroProfissional'].NodeValue:='8888';
// [conselhoProfissional]
// CRM Conselho Regional de Medicina
// CRMV Conselho Regional de Medicina Veterinária
// CRO Conselho Regional de Odontologia
ChildNodes['prescritorInsumo'].ChildNodes['conselhoProfissional'].NodeValue:='CRM';
ChildNodes['prescritorInsumo'].ChildNodes['UFConselho'].NodeValue:='PR';
ChildNodes['usoInsumo'].NodeValue:='1';
ChildNodes['compradorInsumo'].ChildNodes['nomeComprador'].NodeValue:='Manuela Danta';
// [tipoDocumento]
// 1 CARTEIRA DE REGISTRO PROFISSIONAL
// 2 CARTEIRA DE IDENTIDADE . . . existem mais
ChildNodes['compradorInsumo'].ChildNodes['tipoDocumento'].NodeValue:='2';
ChildNodes['compradorInsumo'].ChildNodes['numeroDocumento'].NodeValue:='89786453';
ChildNodes['compradorInsumo'].ChildNodes['orgaoExpedidor'].NodeValue:='SSP';
ChildNodes['compradorInsumo'].ChildNodes['UFEmissaoDocumento'].NodeValue:='PR';
ChildNodes['substanciaInsumoVendaAoConsumidor'].ChildNodes['insumoVendaAoConsumidor'].NodeValue:='';
ChildNodes['substanciaInsumoVendaAoConsumidor'].ChildNodes['insumoVendaAoConsumidor'].ChildNodes['codigoInsumo'].NodeValue:='02904';
ChildNodes['substanciaInsumoVendaAoConsumidor'].ChildNodes['insumoVendaAoConsumidor'].ChildNodes['numeroLoteInsumo'].NodeValue:='123dzp';
ChildNodes['substanciaInsumoVendaAoConsumidor'].ChildNodes['insumoVendaAoConsumidor'].ChildNodes['insumoCNPJFornecedor'].NodeValue:='99999999000199';
ChildNodes['substanciaInsumoVendaAoConsumidor'].ChildNodes['quantidadeDeInsumoPorUnidadeFarmacotecnica'].NodeValue:='5.0';
// [unidadeDeMedidaDoInsumo]
// 1 Miligrama
// 2 Mililitro
// 3 Unidade (U)
ChildNodes['substanciaInsumoVendaAoConsumidor'].ChildNodes['unidadeDeMedidaDoInsumo'].NodeValue:='1';
// [unidadeFarmacotecnica]
// 1 Miligrama
// 2 Cápsula
// 3 Comprimido
// 4 Mililitro
ChildNodes['substanciaInsumoVendaAoConsumidor'].ChildNodes['unidadeFarmacotecnica'].NodeValue:='2';
ChildNodes['substanciaInsumoVendaAoConsumidor'].ChildNodes['quantidadeDeUnidadesFarmacotecnicas'].NodeValue:='60.0';
ChildNodes['dataVendaInsumo'].NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
end;
end;
// Loop das [Transferencias] :: INSUMO
for i:=1 to x do
begin
NData:=NMedicamento.AddChild('saidaInsumoTransferencia');
with NData do
begin
ChildNodes['notaFiscalTransferenciaInsumo'].ChildNodes['numeroNotaFiscal'].NodeValue:=IntToStr(i);
// [tipoOperacaoNotaFiscal]
// 1 Compra
// 2 Transferência
// 3 Venda
ChildNodes['notaFiscalTransferenciaInsumo'].ChildNodes['tipoOperacaoNotaFiscal'].NodeValue:='2';
ChildNodes['notaFiscalTransferenciaInsumo'].ChildNodes['dataNotaFiscal'].NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
ChildNodes['notaFiscalTransferenciaInsumo'].ChildNodes['cnpjOrigem'].NodeValue:='99999999000199';
ChildNodes['notaFiscalTransferenciaInsumo'].ChildNodes['cnpjDestino'].NodeValue:='99999999000199';
ChildNodes['substanciaInsumoTransferencia'].ChildNodes['insumoTransferencia'].ChildNodes['codigoInsumo'].NodeValue:='02904';
ChildNodes['substanciaInsumoTransferencia'].ChildNodes['insumoTransferencia'].ChildNodes['numeroLoteInsumo'].NodeValue:='15353';
ChildNodes['substanciaInsumoTransferencia'].ChildNodes['insumoTransferencia'].ChildNodes['insumoCNPJFornecedor'].NodeValue:='99999999000199';
ChildNodes['substanciaInsumoTransferencia'].ChildNodes['quantidadeInsumoTransferencia'].NodeValue:='20000.0';
ChildNodes['substanciaInsumoTransferencia'].ChildNodes['tipoUnidadeTransferencia'].NodeValue:='1';
ChildNodes['dataTransferenciaInsumo'].NodeValue :=FormatDateTime('yyyy-mm-dd',Date);
end;
end;
// Loop das [Perdas] :: INSUMO
for i:=1 to x do
begin
NData:=NMedicamento.AddChild('saidaInsumoPerda');
with NData do
begin
// [motivoPerdaInsumo]
// 1 Furto / Roubo
// 2 Avaria
// 3 Vencimento
// 4 Apreensão / Recolhimento pela Visa
ChildNodes['motivoPerdaInsumo'].NodeValue:='2';
ChildNodes['substanciaInsumoPerda'].ChildNodes['insumoPerda'].ChildNodes['codigoInsumo'].NodeValue:='02904';
ChildNodes['substanciaInsumoPerda'].ChildNodes['insumoPerda'].ChildNodes['numeroLoteInsumo'].NodeValue:='786dpz';
ChildNodes['substanciaInsumoPerda'].ChildNodes['insumoPerda'].ChildNodes['insumoCNPJFornecedor'].NodeValue:='99999999000199';
ChildNodes['substanciaInsumoPerda'].ChildNodes['quantidadeInsumoPerda'].NodeValue:='12345.0';
ChildNodes['substanciaInsumoPerda'].ChildNodes['tipoUnidadePerda'].NodeValue:='1';
ChildNodes['dataPerdaInsumo'].NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
ChildNodes['cnpjFornecedorInsumo'].NodeValue:='99999999000199';
end;
end;
// *************************************************************************
SaveToFile(ExtractFileDir(Application.ExeName)+'\Sngpc_'+FormatDateTime('dd_mm_yyyy',Date)+'.xml');
end;
XMLDoc.Active:=False;
XMLDoc.Free;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
ws_TESTE:= HTTPRIO1 AS sngpcSoap; //GetsngpcSoap();
HashIdentificacao:= MD5DigestToStr(MD5File('D:\SNGPC\TESTE.XML'));
Edit3.Text := HashIdentificacao;
XMLDocument1.LoadFromFile('D:\SNGPC\TESTE.XML');
Memo1.Lines.Add(ws_TESTE.EnviaArquivoSNGPC('seu email','sua senha', XMLDocument1.XML.Text, HashIdentificacao));
//HashIdentificacao := Guid();
end;
procedure TForm1.BitBtn3Click(Sender: TObject);
var strcomp: string;
begin
ws_TESTE:= GetsngpcSoap();
Memo1.Lines.Add:= (ws_TESTE.ValidarUsuario('seu email','sua senha'));
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var
i,x: Word;
NCorpo,NMedicamento,NData: IXMLNode;
XMLDoc: TXMLDocument;
begin
x:=1;
//x:=10;
// Cria o documento
XMLDoc:=TXMLDocument.Create(Application);
with XMLDoc do
begin
Active:=True;
Version:='1.0';
Encoding:='ISO-8859-1';
AddChild('mensagemSNGPC','urn:sngpc-schema');
with DocumentElement do
begin
AddChild('cabecalho');
ChildNodes.Last.AddChild('cnpjEmissor').NodeValue:='99999999000199';
ChildNodes.Last.AddChild ('cpfTransmissor').NodeValue:='00000000000';
ChildNodes.Last.AddChild('dataInicio').NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
ChildNodes.Last.AddChild('dataFim').NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
end;
NCorpo:=DocumentElement.AddChild('corpo');
// *************************** MEDICAMENTO *********************************
NMedicamento:=NCorpo.AddChild('medicamentos');
// Loop das [Entradas] :: MEDICAMENTO
for i:=1 to x do
begin
NData:=NMedicamento.AddChild('entradaMedicamentos');
with NData do
begin
ChildNodes['notaFiscalEntradaMedicamento'].ChildNodes['numeroNotaFiscal'].NodeValue:=IntToStr(i);
// [tipoOperacaoNotaFiscal]
// 1 Compra
// 2 Transferência
// 3 Venda
ChildNodes['notaFiscalEntradaMedicamento'].ChildNodes['tipoOperacaoNotaFiscal'].NodeValue:='1';
ChildNodes['notaFiscalEntradaMedicamento'].ChildNodes['dataNotaFiscal'].NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
ChildNodes['notaFiscalEntradaMedicamento'].ChildNodes['cnpjOrigem'].NodeValue:='99999999000199';
ChildNodes['notaFiscalEntradaMedicamento'].ChildNodes['cnpjDestino'].NodeValue:='99999999000199';
ChildNodes['medicamentoEntrada'].ChildNodes['registroMSMedicamento'].NodeValue:='1010000750061';
ChildNodes['medicamentoEntrada'].ChildNodes['numeroLoteMedicamento'].NodeValue:='RV365';
ChildNodes['medicamentoEntrada'].ChildNodes['quantidadeMedicamento'].NodeValue:='12';
ChildNodes['dataRecebimentoMedicamento'].NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
end;
end;
// Loop das [Saidas] :: MEDICAMENTO
for i:=1 to x do
begin
NData:=NMedicamento.AddChild('saidaMedicamentoVendaAoConsumidor');
with NData do
begin
// [tipoReceituarioMedicamento]
// 1 Receita de Controle Especial em 2 vias (Receita Branca)
// 2 Notificação de Receita B (Notificação Azul)
// 3 Notificação de Receita Especial (Notificação Branca)
// 4 Notificação de Receita A (Notificação Amarela)
ChildNodes['tipoReceituarioMedicamento'].NodeValue:='1';
ChildNodes['numeroNotificacaoMedicamento'].NodeValue:='213213';
ChildNodes['dataPrescricaoMedicamento'].NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
ChildNodes['prescritorMedicamento'].ChildNodes['nomePrescritor'].NodeValue:='XFULANO';
ChildNodes['prescritorMedicamento'].ChildNodes['numeroRegistroProfissional'].NodeValue:='99999';
// [conselhoProfissional]
// CRM Conselho Regional de Medicina
// CRMV Conselho Regional de Medicina Veterinária
// CRO Conselho Regional de Odontologia
ChildNodes['prescritorMedicamento'].ChildNodes['conselhoProfissional'].NodeValue:='CRM';
ChildNodes['prescritorMedicamento'].ChildNodes['UFConselho'].NodeValue:='PR';
// [usoMedicamento]
// 1 Humano
// 2 Veterinario
ChildNodes['usoMedicamento'].NodeValue:='1';
ChildNodes['compradorMedicamento'].ChildNodes['nomeComprador'].NodeValue:='XCICLANO';
// [tipoDocumento]
// 1 CARTEIRA DE REGISTRO PROFISSIONAL
// 2 CARTEIRA DE IDENTIDADE . . . existem mais
ChildNodes['compradorMedicamento'].ChildNodes['tipoDocumento'].NodeValue:='1';
ChildNodes['compradorMedicamento'].ChildNodes['numeroDocumento'].NodeValue:='123';
ChildNodes['compradorMedicamento'].ChildNodes['orgaoExpedidor'].NodeValue:='SSP';
ChildNodes['compradorMedicamento'].ChildNodes['UFEmissaoDocumento'].NodeValue:='PR';
ChildNodes['medicamentoVenda'].ChildNodes['registroMSMedicamento'].NodeValue:='1010000430215';
ChildNodes['medicamentoVenda'].ChildNodes['numeroLoteMedicamento'].NodeValue:='RGJ0400';
ChildNodes['medicamentoVenda'].ChildNodes['quantidadeMedicamento'].NodeValue:='3';
ChildNodes['dataVendaMedicamento'].NodeValue := FormatDateTime('yyyy-mm-dd',Date);
end;
end;
// Loop das [Transferencias] :: MEDICAMENTO
for i:=1 to x do
begin
NData:=NMedicamento.AddChild('saidaMedicamentoTransferencia');
with NData do
begin
ChildNodes['notaFiscalTransferenciaMedicamento'].ChildNodes['numeroNotaFiscal'].NodeValue:=IntToStr(i);
// [tipoOperacaoNotaFiscal]
// 1 Compra
// 2 Transferência
// 3 Venda
ChildNodes['notaFiscalTransferenciaMedicamento'].ChildNodes['tipoOperacaoNotaFiscal'].NodeValue:='2';
ChildNodes['notaFiscalTransferenciaMedicamento'].ChildNodes['dataNotaFiscal'].NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
ChildNodes['notaFiscalTransferenciaMedicamento'].ChildNodes['cnpjOrigem'].NodeValue:='99999999000199';
ChildNodes['notaFiscalTransferenciaMedicamento'].ChildNodes['cnpjDestino'].NodeValue:='99999999000199';
ChildNodes['medicamentoTransferencia'].ChildNodes['registroMSMedicamento'].NodeValue:='1058302590029';
ChildNodes['medicamentoTransferencia'].ChildNodes['numeroLoteMedicamento'].NodeValue:='153353';
ChildNodes['medicamentoTransferencia'].ChildNodes['quantidadeMedicamento'].NodeValue:='2';
ChildNodes['dataTransferenciaMedicamento'].NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
end;
end;
// Loop das [Perdas] :: MEDICAMENTO
for i:=1 to x do
begin
NData:=NMedicamento.AddChild('saidaMedicamentoPerda');
with NData do
begin
// [motivoPerdaMedicamento]
// 1 Furto / Roubo
// 2 Avaria
// 3 Vencimento
// 4 Apreensão / Recolhimento pela Visa
ChildNodes['motivoPerdaMedicamento'].NodeValue:='3';
ChildNodes['medicamentoPerda'].ChildNodes['registroMSMedicamento'].NodeValue:='1010000750061';
ChildNodes['medicamentoPerda'].ChildNodes['numeroLoteMedicamento'].NodeValue:='RV365';
ChildNodes['medicamentoPerda'].ChildNodes['quantidadeMedicamento'].NodeValue:='2';
ChildNodes['dataPerdaMedicamento'].NodeValue := FormatDateTime('yyyy-mm-dd',Date);
end;
end;
// *************************************************************************
// ********************************* INSUMO ********************************
NMedicamento:=NCorpo.AddChild('insumos');
// Loop das [Entradas] :: INSUMO
for i:=1 to x do
begin
NData:=NMedicamento.AddChild('entradaInsumos');
with NData do
begin
ChildNodes['notaFiscalEntradaInsumo'].ChildNodes['numeroNotaFiscal'].NodeValue:=IntToStr(i);
// [tipoOperacaoNotaFiscal]
// 1 Compra
// 2 Transferência
// 3 Venda
ChildNodes['notaFiscalEntradaInsumo'].ChildNodes['tipoOperacaoNotaFiscal'].NodeValue:='1';
ChildNodes['notaFiscalEntradaInsumo'].ChildNodes['dataNotaFiscal'].NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
ChildNodes['notaFiscalEntradaInsumo'].ChildNodes['cnpjOrigem'].NodeValue:='99999999000199';
ChildNodes['notaFiscalEntradaInsumo'].ChildNodes['cnpjDestino'].NodeValue:='99999999000199';
ChildNodes['substanciaInsumoEntrada'].ChildNodes['insumoEntrada'].ChildNodes['codigoInsumo'].NodeValue:='0075';
ChildNodes['substanciaInsumoEntrada'].ChildNodes['insumoEntrada'].ChildNodes['numeroLoteInsumo'].NodeValue:='788cpf';
ChildNodes['substanciaInsumoEntrada'].ChildNodes['insumoEntrada'].ChildNodes['insumoCNPJFornecedor'].NodeValue:='99999999000199';
ChildNodes['substanciaInsumoEntrada'].ChildNodes['quantidadeInsumoEntrada'].NodeValue:='40000.0';
ChildNodes['substanciaInsumoEntrada'].ChildNodes['tipoUnidadeEntrada'].NodeValue:='1';
ChildNodes['dataRecebimentoInsumo'].NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
end;
end;
// Loop das [Saidas] :: INSUMO
for i:=1 to x do
begin
NData:=NMedicamento.AddChild('saidaInsumoVendaAoConsumidor');
with NData do
begin
// [tipoReceituarioInsumo]
// 1 Receita de Controle Especial em 2 vias (Receita Branca)
// 2 Notificação de Receita B (Notificação Azul)
// 3 Notificação de Receita Especial (Notificação Branca)
// 4 Notificação de Receita A (Notificação Amarela)
ChildNodes['tipoReceituarioInsumo'].NodeValue:='2';
ChildNodes['numeroNotificacaoInsumo'].NodeValue:='9897651';
ChildNodes['dataPrescricaoInsumo'].NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
ChildNodes['prescritorInsumo'].ChildNodes['nomePrescritor'].NodeValue:='Dr. Antenor';
ChildNodes['prescritorInsumo'].ChildNodes['numeroRegistroProfissional'].NodeValue:='8888';
// [conselhoProfissional]
// CRM Conselho Regional de Medicina
// CRMV Conselho Regional de Medicina Veterinária
// CRO Conselho Regional de Odontologia
ChildNodes['prescritorInsumo'].ChildNodes['conselhoProfissional'].NodeValue:='CRM';
ChildNodes['prescritorInsumo'].ChildNodes['UFConselho'].NodeValue:='PR';
ChildNodes['usoInsumo'].NodeValue:='1';
ChildNodes['compradorInsumo'].ChildNodes['nomeComprador'].NodeValue:='Manuela Danta';
// [tipoDocumento]
// 1 CARTEIRA DE REGISTRO PROFISSIONAL
// 2 CARTEIRA DE IDENTIDADE . . . existem mais
ChildNodes['compradorInsumo'].ChildNodes['tipoDocumento'].NodeValue:='2';
ChildNodes['compradorInsumo'].ChildNodes['numeroDocumento'].NodeValue:='89786453';
ChildNodes['compradorInsumo'].ChildNodes['orgaoExpedidor'].NodeValue:='SSP';
ChildNodes['compradorInsumo'].ChildNodes['UFEmissaoDocumento'].NodeValue:='PR';
ChildNodes['substanciaInsumoVendaAoConsumidor'].ChildNodes['insumoVendaAoConsumidor'].NodeValue:='';
ChildNodes['substanciaInsumoVendaAoConsumidor'].ChildNodes['insumoVendaAoConsumidor'].ChildNodes['codigoInsumo'].NodeValue:='02904';
ChildNodes['substanciaInsumoVendaAoConsumidor'].ChildNodes['insumoVendaAoConsumidor'].ChildNodes['numeroLoteInsumo'].NodeValue:='123dzp';
ChildNodes['substanciaInsumoVendaAoConsumidor'].ChildNodes['insumoVendaAoConsumidor'].ChildNodes['insumoCNPJFornecedor'].NodeValue:='99999999000199';
ChildNodes['substanciaInsumoVendaAoConsumidor'].ChildNodes['quantidadeDeInsumoPorUnidadeFarmacotecnica'].NodeValue:='5.0';
// [unidadeDeMedidaDoInsumo]
// 1 Miligrama
// 2 Mililitro
// 3 Unidade (U)
ChildNodes['substanciaInsumoVendaAoConsumidor'].ChildNodes['unidadeDeMedidaDoInsumo'].NodeValue:='1';
// [unidadeFarmacotecnica]
// 1 Miligrama
// 2 Cápsula
// 3 Comprimido
// 4 Mililitro
ChildNodes['substanciaInsumoVendaAoConsumidor'].ChildNodes['unidadeFarmacotecnica'].NodeValue:='2';
ChildNodes['substanciaInsumoVendaAoConsumidor'].ChildNodes['quantidadeDeUnidadesFarmacotecnicas'].NodeValue:='60.0';
ChildNodes['dataVendaInsumo'].NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
end;
end;
// Loop das [Transferencias] :: INSUMO
for i:=1 to x do
begin
NData:=NMedicamento.AddChild('saidaInsumoTransferencia');
with NData do
begin
ChildNodes['notaFiscalTransferenciaInsumo'].ChildNodes['numeroNotaFiscal'].NodeValue:=IntToStr(i);
// [tipoOperacaoNotaFiscal]
// 1 Compra
// 2 Transferência
// 3 Venda
ChildNodes['notaFiscalTransferenciaInsumo'].ChildNodes['tipoOperacaoNotaFiscal'].NodeValue:='2';
ChildNodes['notaFiscalTransferenciaInsumo'].ChildNodes['dataNotaFiscal'].NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
ChildNodes['notaFiscalTransferenciaInsumo'].ChildNodes['cnpjOrigem'].NodeValue:='99999999000199';
ChildNodes['notaFiscalTransferenciaInsumo'].ChildNodes['cnpjDestino'].NodeValue:='99999999000199';
ChildNodes['substanciaInsumoTransferencia'].ChildNodes['insumoTransferencia'].ChildNodes['codigoInsumo'].NodeValue:='02904';
ChildNodes['substanciaInsumoTransferencia'].ChildNodes['insumoTransferencia'].ChildNodes['numeroLoteInsumo'].NodeValue:='15353';
ChildNodes['substanciaInsumoTransferencia'].ChildNodes['insumoTransferencia'].ChildNodes['insumoCNPJFornecedor'].NodeValue:='99999999000199';
ChildNodes['substanciaInsumoTransferencia'].ChildNodes['quantidadeInsumoTransferencia'].NodeValue:='20000.0';
ChildNodes['substanciaInsumoTransferencia'].ChildNodes['tipoUnidadeTransferencia'].NodeValue:='1';
ChildNodes['dataTransferenciaInsumo'].NodeValue :=FormatDateTime('yyyy-mm-dd',Date);
end;
end;
// Loop das [Perdas] :: INSUMO
for i:=1 to x do
begin
NData:=NMedicamento.AddChild('saidaInsumoPerda');
with NData do
begin
// [motivoPerdaInsumo]
// 1 Furto / Roubo
// 2 Avaria
// 3 Vencimento
// 4 Apreensão / Recolhimento pela Visa
ChildNodes['motivoPerdaInsumo'].NodeValue:='2';
ChildNodes['substanciaInsumoPerda'].ChildNodes['insumoPerda'].ChildNodes['codigoInsumo'].NodeValue:='02904';
ChildNodes['substanciaInsumoPerda'].ChildNodes['insumoPerda'].ChildNodes['numeroLoteInsumo'].NodeValue:='786dpz';
ChildNodes['substanciaInsumoPerda'].ChildNodes['insumoPerda'].ChildNodes['insumoCNPJFornecedor'].NodeValue:='99999999000199';
ChildNodes['substanciaInsumoPerda'].ChildNodes['quantidadeInsumoPerda'].NodeValue:='12345.0';
ChildNodes['substanciaInsumoPerda'].ChildNodes['tipoUnidadePerda'].NodeValue:='1';
ChildNodes['dataPerdaInsumo'].NodeValue:=FormatDateTime('yyyy-mm-dd',Date);
ChildNodes['cnpjFornecedorInsumo'].NodeValue:='99999999000199';
end;
end;
// *************************************************************************
SaveToFile(ExtractFileDir(Application.ExeName)+'\Sngpc_'+FormatDateTime('dd_mm_yyyy',Date)+'.xml');
end;
XMLDoc.Active:=False;
XMLDoc.Free;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
ws_TESTE:= HTTPRIO1 AS sngpcSoap; //GetsngpcSoap();
HashIdentificacao:= MD5DigestToStr(MD5File('D:\SNGPC\TESTE.XML'));
Edit3.Text := HashIdentificacao;
XMLDocument1.LoadFromFile('D:\SNGPC\TESTE.XML');
Memo1.Lines.Add(ws_TESTE.EnviaArquivoSNGPC('seu email','sua senha', XMLDocument1.XML.Text, HashIdentificacao));
//HashIdentificacao := Guid();
end;
procedure TForm1.BitBtn3Click(Sender: TObject);
var strcomp: string;
begin
ws_TESTE:= GetsngpcSoap();
Memo1.Lines.Add:= (ws_TESTE.ValidarUsuario('seu email','sua senha'));
end;

David
Curtidas 0
Respostas

Francisco Junior
01/06/2011
Nossa, é o início mas vai me ajudar muito.
vlw.
vlw.
GOSTEI 0