-
Total de ítens
187 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que Élviro Cavalcanti postou
-
Você pode usar essa rotina e tentar verificar se existe algum erro no banco, espero que lhe ajude! RecuperarFirebird.bat
-
Roteiro E Fontes Para Sngpc V2 E Farmacia Popular Do Brasil
Élviro Cavalcanti replied to j2c9m7's tópico in Classificados
Opa, peço desculpas, vou anexar a partir de agora! USNGPC.pas -
Roteiro E Fontes Para Sngpc V2 E Farmacia Popular Do Brasil
Élviro Cavalcanti replied to j2c9m7's tópico in Classificados
Segue abaixo a rotina que usava e enviava para o site, pode ser que ajude procedure TFrmSNGPC.BitBtn1Click(Sender: TObject); var i,x: Word; NCorpo,NMedicamento,NData: IXMLNode; XMLDoc: TXMLDocument; var dti,dtf:string; begin dti := formatdatetime('mm/dd/yyyy',DateEdit1.DATE); dtf := formatdatetime('mm/dd/yyyy',DateEdit2.DATE); dm.IBUsuario.close; dm.IBUsuario.SelectSQL.Clear; dm.IBUsuario.SelectSQL.Add('SELECT * FROM USUARIO'); dm.IBUsuario.open; x:=1; // x:=10; // Cria o documento //Transformando a data eddataemissao.Text := copy(DateEdit1.Text, 7, 4) + '-' + copy(DateEdit1.Text, 4, 2) + '-' + copy(DateEdit1.Text, 1, 2); eddatasaida.Text := copy(DateEdit2.Text, 7, 4) + '-' + copy(DateEdit2.Text, 4, 2) + '-' + copy(DateEdit2.Text, 1, 2); eddataemissaoSalvar.Text := copy(DateEdit1.Text, 7, 4) + '_' + copy(DateEdit1.Text, 4, 2) + '_' + copy(DateEdit1.Text, 1, 2); eddatasaidaSalvar.Text := copy(DateEdit2.Text, 7, 4) + '_' + copy(DateEdit2.Text, 4, 2) + '_' + copy(DateEdit2.Text, 1, 2); //Busca todas as entradas no período dm.IBDetVenda.close; dm.IBDetVenda.SelectSQL.Clear; dm.IBDetVenda.SelectSQL.Add('SELECT * FROM DETVENDA'); dm.IBDetVenda.SelectSQL.ADD('WHERE DATA BETWEEN ' + QuotedStr(dti) + ' and ' + QuotedStr(dtf) + ' AND REGISTROMSMANVISA IS NOT NULL'); dm.IBDetVenda.open; 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:=dm.IBUsuarioCPFCNPJ.text; ChildNodes.Last.AddChild('cpfTransmissor').NodeValue:=DM.IBUsuarioCPFRESPOSANVEL.Text; //Abrir no cadastro da empresa o CPF e nome do resposável ChildNodes.Last.AddChild('dataInicio').NodeValue:= eddataemissao.text; // FormatDateTime('yyyy-mm-dd',Date); ChildNodes.Last.AddChild('dataFim').NodeValue:= eddatasaida.Text; // FormatDateTime('yyyy-mm-dd',Date); end; NCorpo:=DocumentElement.AddChild('corpo'); // *************************** MEDICAMENTO ********************************* NMedicamento:=NCorpo.AddChild('medicamentos'); // Loop das [Entradas] :: MEDICAMENTO //Busca todas as entradas no período dm.IBDetEntrada.close; dm.IBDetEntrada.SelectSQL.Clear; dm.IBDetEntrada.SelectSQL.Add('SELECT * FROM DETENTRADA'); dm.IBDetEntrada.SelectSQL.ADD('WHERE DATA BETWEEN ' + QuotedStr(dti) + ' and ' + QuotedStr(dtf) + ' AND TIPOMATERIALFARMACIA = ' + QuotedStr('MEDICAMENTO') + ' AND REGISTROMSMANVISA IS NOT NULL'); dm.IBDetEntrada.open; if dm.IBDetEntrada.IsEmpty then begin ShowMessage('Nada de entrada!'); end else begin //for i:=1 to x do dm.ibdetentrada.First; While not dm.IBDetEntrada.eof do begin NData:=NMedicamento.AddChild('entradaMedicamentos'); with NData do begin ChildNodes['notaFiscalEntradaMedicamento'].ChildNodes['numeroNotaFiscal'].NodeValue:='1'; // [tipoOperacaoNotaFiscal] // 1 Compra // 2 Transferência // 3 Venda ChildNodes['notaFiscalEntradaMedicamento'].ChildNodes['tipoOperacaoNotaFiscal'].NodeValue:='1'; ChildNodes['notaFiscalEntradaMedicamento'].ChildNodes['dataNotaFiscal'].NodeValue:= copy(dm.IBDetEntradaDATA.Text, 7, 4) + '-' + copy(dm.IBDetEntradaDATA.Text, 4, 2) + '-' + copy(dm.IBDetEntradaDATA.Text, 1, 2);//'2010-02-18'; // FormatDateTime('yyyy-mm-dd',Date); // A data da nota fiscal (2010-03-03) não pode ser maior que a data do final do periodo informado ChildNodes['notaFiscalEntradaMedicamento'].ChildNodes['cnpjOrigem'].NodeValue:= dm.IBDetEntradaCNPJFORNECEDOR.text; //'09616205000170'; //**** O CNPJ do fornecedor (09.616.205/0001-70) não existe na base de dados da ANVISA. ChildNodes['notaFiscalEntradaMedicamento'].ChildNodes['cnpjDestino'].NodeValue:= dm.IBUsuarioCPFCNPJ.text; //'02326764000105'; // O CNPJ do fornecedor (99.999.999/0001-99) não existe na base de dados da ANVISA. ChildNodes['medicamentoEntrada'].ChildNodes['registroMSMedicamento'].NodeValue:= dm.IBDetEntradaREGISTROMSMANVISA.Text; //'1071402340048'; ChildNodes['medicamentoEntrada'].ChildNodes['numeroLoteMedicamento'].NodeValue:= dm.IBDetEntradaNLOTE.Text; //'A0540'; ChildNodes['medicamentoEntrada'].ChildNodes['quantidadeMedicamento'].NodeValue:= dm.IBDetEntradaQUANTIDADE.Text; //'10'; // A data de recebimento do medicamento (2010-03-03 00:00:00) da nota fiscal (1) não pode ser maior que a data do final do período informado (2010-02-1Cool ChildNodes['dataRecebimentoMedicamento'].NodeValue:= copy(frmlogin.EdDataDia.Text, 7, 4) + '-' + copy(frmlogin.EdDataDia.Text, 4, 2) + '-' + copy(frmlogin.EdDataDia.Text, 1, 2); //'2010-02-18'; // FormatDateTime('yyyy-mm-dd',Date); end; dm.IBDetEntrada.Next; end; end; //Busca todas as entradas no período dm.IBDetVenda.close; dm.IBDetVenda.SelectSQL.Clear; dm.IBDetVenda.SelectSQL.Add('SELECT * FROM DETVENDA'); dm.IBDetVenda.SelectSQL.ADD('WHERE DATA BETWEEN ' + QuotedStr(dti) + ' and ' + QuotedStr(dtf) + ' AND TIPOMATERIALFARMACIA = ' + QuotedStr('MEDICAMENTO') + ' AND REGISTROMSMANVISA IS NOT NULL'); dm.IBDetVenda.open; if dm.IBDetVenda.IsEmpty then begin ShowMessage('Nada de venda!'); end else begin // Loop das [Saidas] :: MEDICAMENTO //for i:=1 to x do dm.ibdetvenda.First; while not dm.IBDetVenda.eof 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) //Consulta a venda para pegar os dados do médico dm.IBVenda.close; dm.IBVenda.SelectSQL.Clear; dm.IBVenda.SelectSQL.Add('SELECT * FROM VENDAS'); dm.IBVenda.SelectSQL.ADD('WHERE CODIGO = ' + QuotedStr(DM.IBDetVendaCODVENDA.Text) + ''); dm.IBVenda.open; //Consulta cliente da venda para pegar os dados do cliente dm.IBClientes.close; dm.IBClientes.SelectSQL.Clear; dm.IBClientes.SelectSQL.Add('SELECT * FROM CLIENTES'); dm.IBClientes.SelectSQL.ADD('WHERE CODIGO = ' + QuotedStr(DM.IBDetVendaCODCLI.Text) + ''); dm.IBClientes.open; ChildNodes['tipoReceituarioMedicamento'].NodeValue:='1'; ChildNodes['numeroNotificacaoMedicamento'].NodeValue:= dm.IBDetVendaREGISTROMSMANVISA.text; //'213213'; ChildNodes['dataPrescricaoMedicamento'].NodeValue:= copy(dm.IBDetVendaDATA.Text, 7, 4) + '-' + copy(dm.IBDetVendaDATA.Text, 4, 2) + '-' + copy(dm.IBDetVendaDATA.Text, 1, 2);//'2010-02-18'; // FormatDateTime('yyyy-mm-dd',Date); // A data de prescricão (2010-03-03) não pode ser maior que a data do final do período informado ChildNodes['prescritorMedicamento'].ChildNodes['nomePrescritor'].NodeValue:= dm.IBVendaMEDICO.Text; //'XFULANO'; ChildNodes['prescritorMedicamento'].ChildNodes['numeroRegistroProfissional'].NodeValue:= dm.IBVendaREGISTROMEDICO.Text; //'99999'; // [conselhoProfissional] // CRM Conselho Regional de Medicina // CRMV Conselho Regional de Medicina Veterinária // CRO Conselho Regional de Odontologia ChildNodes['prescritorMedicamento'].ChildNodes['conselhoProfissional'].NodeValue:= dm.IBVendaCONSELHOMEDICO.Text; //'CRM'; ChildNodes['prescritorMedicamento'].ChildNodes['UFConselho'].NodeValue:= dm.IBVendaUFCONSELHOMEDICO.Text; //'SP'; // [usoMedicamento] // 1 Humano // 2 Veterinario ChildNodes['usoMedicamento'].NodeValue:='1'; ChildNodes['compradorMedicamento'].ChildNodes['nomeComprador'].NodeValue:= DM.IBVendaCLIENTE.Text; //'XCICLANO'; // [tipoDocumento] // 1 CARTEIRA DE REGISTRO PROFISSIONAL // 2 CARTEIRA DE IDENTIDADE . . . existem mais ChildNodes['compradorMedicamento'].ChildNodes['tipoDocumento'].NodeValue:='2'; ChildNodes['compradorMedicamento'].ChildNodes['numeroDocumento'].NodeValue:= DM.IBClientesRGINSC.Text; //'431053984'; ChildNodes['compradorMedicamento'].ChildNodes['orgaoExpedidor'].NodeValue:= dm.IBClientesEMISSOR.text; //'SSP'; ChildNodes['compradorMedicamento'].ChildNodes['UFEmissaoDocumento'].NodeValue:= dm.IBClientesUFEMISSOR.Text; //'SP'; ChildNodes['medicamentoVenda'].ChildNodes['registroMSMedicamento'].NodeValue:= dm.IBDetVendaREGISTROMSMANVISA.Text; //'1071402340048'; ChildNodes['medicamentoVenda'].ChildNodes['numeroLoteMedicamento'].NodeValue:= dm.IBDetVendaNLOTE.Text; //'A0540'; // O lote (RGJ0400) do produto de número de registro (1.0100.0043.021-5 - LEXOTAN) não foi encontrado nem no inventário inicial nem nas transações de compras informadas ChildNodes['medicamentoVenda'].ChildNodes['quantidadeMedicamento'].NodeValue:= dm.IBDetVendaQUANTIDADE.Text; //'1'; // A quantidade vendida (3) do produto de número de registro (1.0100.0043.021-5 - LEXOTAN) do lote (RGJ0400) é maior que a quantidade em estoque. Para obter informações sobre essa mensagem de erro visite o endereço http://www.anvisa.gov.br/hotsite/sngpc/mensagens_de_validacao.htm. ChildNodes['dataVendaMedicamento'].NodeValue := copy(dm.IBDetVendaDATA.Text, 7, 4) + '-' + copy(dm.IBDetVendaDATA.Text, 4, 2) + '-' + copy(dm.IBDetVendaDATA.Text, 1, 2); //'2010-02-18'; // FormatDateTime('yyyy-mm-dd',Date); // A data da venda (2010-03-03 00:00:00) não pode ser maior que a data do final do periodo informado. end; dm.IBDetVenda.Next; 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); ChildNodes['notaFiscalTransferenciaMedicamento'].ChildNodes['tipoOperacaoNotaFiscal'].NodeValue:= '2'; ChildNodes['notaFiscalTransferenciaMedicamento'].ChildNodes['dataNotaFiscal'].NodeValue:= '2010-02-18'; // FormatDateTime('yyyy-mm-dd',Date); // A data da nota fiscal (2010-03-03 00:00:00) não pode ser maior que a data do final do período informado ChildNodes['notaFiscalTransferenciaMedicamento'].ChildNodes['cnpjOrigem'].NodeValue:= '09616205000170'; //**** não pode haver a transferência entre estas duas empresas.**** O CNPJ da empresa de origem (99.999.999/0001-99) não existe na base de dados da ANVISA. ChildNodes['notaFiscalTransferenciaMedicamento'].ChildNodes['cnpjDestino'].NodeValue:= '02326764000105'; // O CNPJ da empresa de origem (02.326.764/0001-05) não existe na base de dados da ANVISA. ChildNodes['medicamentoTransferencia'].ChildNodes['registroMSMedicamento'].NodeValue:= '1029802250061'; // AMYTRIL ChildNodes['medicamentoTransferencia'].ChildNodes['numeroLoteMedicamento'].NodeValue:= '09021207'; // O lote (153353) do produto de número de registro (1.0583.0259.002-9 - HIPOFAGIN S) não foi encontrado nem no inventário inicial nem nas transações de compras informadas. ChildNodes['medicamentoTransferencia'].ChildNodes['quantidadeMedicamento'].NodeValue:= '1'; // A quantidade transferida (2) do medicamento de número de registro (1.0583.0259.002-9 - HIPOFAGIN S) é maior que a quantidade em estoque. Para obter informações sobre essa mensagem de erro visite o endereço http://www.anvisa.gov.br/hotsite/sngpc/mensagens_de_validacao.htm. ChildNodes['dataTransferenciaMedicamento'].NodeValue:='';// '2010-02-18'; // FormatDateTime('yyyy-mm-dd',Date); end; end; // [tipoOperacaoNotaFiscal] // 1 Compra // 2 Transferência // 3 Venda // 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:='1071402340048'; ChildNodes['medicamentoPerda'].ChildNodes['numeroLoteMedicamento'].NodeValue:='A0540'; ChildNodes['medicamentoPerda'].ChildNodes['quantidadeMedicamento'].NodeValue:='1'; // A quantidade perdida (2) do produto de número de registro (1.0100.0075.006-1 - ROHYPNOL) é maior que a quantidade em estoque. Para obter informações sobre essa mensagem de erro visite o endereço http://www.anvisa.gov.br/hotsite/sngpc/mensagens_de_validacao.htm. ChildNodes['dataPerdaMedicamento'].NodeValue := '2010-02-18'; // FormatDateTime('yyyy-mm-dd',Date); // A data da perda (2010-03-03 00:00:00) não pode ser maior que a data do final do período informado. end; end; // ************************************************************************* // ********************************* INSUMO ******************************** NMedicamento:=NCorpo.AddChild('insumos'); // Loop das [Entradas] :: INSUMO //Busca todas as entradas no período dm.IBDetEntrada.close; dm.IBDetEntrada.SelectSQL.Clear; dm.IBDetEntrada.SelectSQL.Add('SELECT * FROM DETENTRADA'); dm.IBDetEntrada.SelectSQL.ADD('WHERE DATA BETWEEN ' + QuotedStr(dti) + ' and ' + QuotedStr(dtf) + ' AND TIPOMATERIALFARMACIA = ' + QuotedStr('INSUMO') + ' AND REGISTROMSMANVISA IS NOT NULL'); dm.IBDetEntrada.open; dm.IBDetEntrada.First; While not dm.IBDetEntrada.eof 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:= copy(dm.IBDetEntradaDATA.Text, 7, 4) + '-' + copy(dm.IBDetEntradaDATA.Text, 4, 2) + '-' + copy(dm.IBDetEntradaDATA.Text, 1, 2); //'2010-02-18'; // FormatDateTime('yyyy-mm-dd',Date); // A data da nota fiscal (2010-03-03 00:00:00) não pode ser maior que a data do final do período informado. ChildNodes['notaFiscalEntradaInsumo'].ChildNodes['cnpjOrigem'].NodeValue:= dm.IBUsuarioCPFCNPJ.text; //'09616205000170'; // O CNPJ do fornecedor (99.999.999/0001-99) não pode ser igual ao CNPJ de destino. ChildNodes['notaFiscalEntradaInsumo'].ChildNodes['cnpjDestino'].NodeValue:= dm.IBFornecedorCPFCNPJ.Text; //'02326764000105'; // O CNPJ DO fornecedor (99.999.999/0001-99) não existe na base de dados da ANVISA. ChildNodes['substanciaInsumoEntrada'].ChildNodes['insumoEntrada'].ChildNodes['codigoInsumo'].NodeValue:= dm.IBDetEntradaCODPRODUTO.text; //'00075'; ChildNodes['substanciaInsumoEntrada'].ChildNodes['insumoEntrada'].ChildNodes['numeroLoteInsumo'].NodeValue:= dm.IBDetEntradaNLOTE.text; //'788cpf'; ChildNodes['substanciaInsumoEntrada'].ChildNodes['insumoEntrada'].ChildNodes['insumoCNPJFornecedor'].NodeValue:= dm.IBFornecedorCPFCNPJ.Text; //'02326764000105'; ChildNodes['substanciaInsumoEntrada'].ChildNodes['quantidadeInsumoEntrada'].NodeValue:= dm.IBDetEntradaQUANTIDADE.text; //'40000.0'; ChildNodes['substanciaInsumoEntrada'].ChildNodes['tipoUnidadeEntrada'].NodeValue:= '1'; ChildNodes['dataRecebimentoInsumo'].NodeValue:= copy(dm.IBDetEntradaDATA.Text, 7, 4) + '-' + copy(dm.IBDetEntradaDATA.Text, 4, 2) + '-' + copy(dm.IBDetEntradaDATA.Text, 1, 2); //'2010-02-18'; // FormatDateTime('yyyy-mm-dd',Date); // A data de recebimento do insumo (2010-03-03 00:00:00) não pode ser maior que a data do final do período informado (2010-02-18 00:00:00) end; dm.IBDetEntrada.Next; end; // Loop das [Saidas] :: INSUMO //Busca todas as entradas no período dm.IBDetVenda.close; dm.IBDetVenda.SelectSQL.Clear; dm.IBDetVenda.SelectSQL.Add('SELECT * FROM DETVENDA'); dm.IBDetVenda.SelectSQL.ADD('WHERE DATA BETWEEN ' + QuotedStr(dti) + ' and ' + QuotedStr(dtf) + ' AND TIPOMATERIALFARMACIA = ' + QuotedStr('INSUMO') + ' AND REGISTROMSMANVISA IS NOT NULL'); dm.IBDetVenda.open; DM.IBDETVENDA.First; While not dm.ibdetvenda.Eof 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:= dm.IBDetVendaCODPRODUTO.text; //'9897651'; ChildNodes['dataPrescricaoInsumo'].NodeValue:= copy(dm.IBDetVendaDATA.Text, 7, 4) + '-' + copy(dm.IBDetVendaDATA.Text, 4, 2) + '-' + copy(dm.IBDetVendaDATA.Text, 1, 2); //'2010-02-18'; // FormatDateTime('yyyy-mm-dd',Date); // A data da prescricão (2010-03-03) não pode ser maior que a data do final do período informado. ChildNodes['prescritorInsumo'].ChildNodes['nomePrescritor'].NodeValue:= dm.IBVendaMEDICO.text; //'Dr. Antenor'; ChildNodes['prescritorInsumo'].ChildNodes['numeroRegistroProfissional'].NodeValue:= dm.IBVendaREGISTROMEDICO.text; //'8888'; // [conselhoProfissional] // CRM Conselho Regional de Medicina // CRMV Conselho Regional de Medicina Veterinária // CRO Conselho Regional de Odontologia ChildNodes['prescritorInsumo'].ChildNodes['conselhoProfissional'].NodeValue:= dm.IBVendaCONSELHOMEDICO.text; //'CRM'; ChildNodes['prescritorInsumo'].ChildNodes['UFConselho'].NodeValue:= dm.IBVendaUFCONSELHOMEDICO.text; //'PR'; // A sigla da UF da notificação de receita azul não coincide com a sigla da UF do profissional prescritor. ChildNodes['usoInsumo'].NodeValue:= '1'; ChildNodes['compradorInsumo'].ChildNodes['nomeComprador'].NodeValue:= dm.IBVendaCLIENTE.text; //'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:= dm.IBClientesRGINSC.Text; //'89786453'; ChildNodes['compradorInsumo'].ChildNodes['orgaoExpedidor'].NodeValue:= dm.IBClientesEMISSOR.Text; //'SSP'; ChildNodes['compradorInsumo'].ChildNodes['UFEmissaoDocumento'].NodeValue:= dm.IBClientesUFEMISSOR.Text; //'PR'; ChildNodes['substanciaInsumoVendaAoConsumidor'].ChildNodes['insumoVendaAoConsumidor'].NodeValue:= ''; ChildNodes['substanciaInsumoVendaAoConsumidor'].ChildNodes['insumoVendaAoConsumidor'].ChildNodes['codigoInsumo'].NodeValue:= dm.IBDetVendaCODPRODUTO.text; //'02904'; ChildNodes['substanciaInsumoVendaAoConsumidor'].ChildNodes['insumoVendaAoConsumidor'].ChildNodes['numeroLoteInsumo'].NodeValue:= dm.IBDetVendaNLOTE.text; //'123dzp'; ChildNodes['substanciaInsumoVendaAoConsumidor'].ChildNodes['insumoVendaAoConsumidor'].ChildNodes['insumoCNPJFornecedor'].NodeValue:= dm.IBFornecedorCPFCNPJ.text; //'02326764000105'; // O CNPJ do fornecedor (99.999.999/0001-99) não existe na base de dados da ANVISA. ChildNodes['substanciaInsumoVendaAoConsumidor'].ChildNodes['quantidadeDeInsumoPorUnidadeFarmacotecnica'].NodeValue:= dm.IBDetVendaQUANTIDADE.text; //'5.0'; // A quantidade vendida (300) do insumo de número DCB (02904 - diazepam) do lote (123dzp) é maior que a quantidade em estoque. Para obter informações sobre essa mensagem de erro visite o endereço http://www.anvisa.gov.br/hotsite/sngpc/mensagens_de_validacao.htm. // [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:= '2010-02-18'; // FormatDateTime('yyyy-mm-dd',Date); // A data da venda (2010-03-03 00:00:00) não pode ser maior que a data do final do período informado. end; dm.ibdetvenda.Next; end; // Loop das [Transferencias] :: INSUMO for i:=1 to x do begin NData:=NMedicamento.AddChild('saidaInsumoTransferenci'); with NData do begin ChildNodes['notaFiscalTransferenciaInsum'].ChildNodes['numeroNotaFiscal'].NodeValue:= IntToStr(i); // [tipoOperacaoNotaFiscal] // 1 Compra // 2 Transferência // 3 Venda ChildNodes['notaFiscalTransferenciaInsumo'].ChildNodes['tipoOperacaoNotaFiscal'].NodeValue:= '2'; ChildNodes['notaFiscalTransferenciaInsumo'].ChildNodes['dataNotaFiscal'].NodeValue:= '2010-02-18'; // FormatDateTime('yyyy-mm-dd',Date); // A data da nota fiscal (2010-03-03 00:00:00) não pode ser maior que a data do final do período informado. ChildNodes['notaFiscalTransferenciaInsumo'].ChildNodes['cnpjOrigem'].NodeValue:= '09616205000170'; // O CNPJ do estabelecimento de origem (99.999.999/0001-99) não existe na base DO Corporativo da ANVISA. ChildNodes['notaFiscalTransferenciaInsumo'].ChildNodes['cnpjDestino'].NodeValue:= '02326764000105'; // O CNPJ do estabelecimento de destino (99.999.999/0001-99) não existe na base de dados da ANVISA. ChildNodes['substanciaInsumoTransferencia'].ChildNodes['insumoTransferencia'].ChildNodes['codigoInsumo'].NodeValue:= '02904'; ChildNodes['substanciaInsumoTransferencia'].ChildNodes['insumoTransferencia'].ChildNodes['numeroLoteInsumo'].NodeValue:= '15353'; ChildNodes['substanciaInsumoTransferencia'].ChildNodes['insumoTransferencia'].ChildNodes['insumoCNPJFornecedor'].NodeValue:= '02326764000105'; ChildNodes['substanciaInsumoTransferencia'].ChildNodes['quantidadeInsumoTransferencia'].NodeValue:= '20000.0'; // A quantidade transferida (20000) do insumo de número DCB (02904 - diazepam) é maior que a quantidade em estoque. Para obter informações sobre essa mensagem de erro visite o endereço http://www.anvisa.gov.br/hotsite/sngpc/mensagens_de_validacao.htm. ChildNodes['substanciaInsumoTransferencia'].ChildNodes['tipoUnidadeTransferencia'].NodeValue:= '1'; ChildNodes['dataTransferenciaInsumo'].NodeValue := '2010-02-18'; // 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'; // O CNPJ do fornecedor (99.999.999/0001-99) não foi encontrado na base de dados da ANVISA. ChildNodes['substanciaInsumoPerda'].ChildNodes['quantidadeInsumoPerda'].NodeValue:= '12345.0'; // A quantidade perdida (12345) do insumo de número DCB (02904 - diazepam) é maior que a quantidade em estoque. Para obter informações sobre essa mensagem de erro visite o endereço http://www.anvisa.gov.br/hotsite/sngpc/mensagens_de_validacao.htm. ChildNodes['substanciaInsumoPerda'].ChildNodes['tipoUnidadePerda'].NodeValue:= '1'; ChildNodes['dataPerdaInsumo'].NodeValue:= '2010-02-18'; // FormatDateTime('yyyy-mm-dd',Date); // A data da perda (2010-03-03) não pode ser maior que a data do final do período informado. ChildNodes['cnpjFornecedorInsumo'].NodeValue:='02326764000105'; // O CNPJ do fornecedor (99.999.999/0001-99) não foi encontrado na base de dados da ANVISA. end; end; // ************************************************************************* //SaveToFile(ExtractFileDir(Application.ExeName)+'\SNGPC\Sngpc_'+FormatDateTime('dd_mm_yyyy',Date)+'.xml'); SaveToFile(ExtractFileDir(Application.ExeName)+'\SNGPC\Sngpc_' + eddataemissaoSalvar.text + '_a_' + eddatasaidaSalvar.text + '.xml'); end; XMLDoc.Active:=False; XMLDoc.Free; end; -
Roteiro E Fontes Para Sngpc V2 E Farmacia Popular Do Brasil
Élviro Cavalcanti replied to j2c9m7's tópico in Classificados
Eu possuo uma rotina de SNGPC que faz assa comunicação, posso disponibilizar ela pra vocês -
Possivelmente você está deixando alguma transação aberta e por isso não consegue efetuar o update.
-
Aqui em PE cupons acima de 1.000,00 era preciso colocar o CPF ou CNPJ do comprador, na Paraíba esse valor é de 500,00 se não me engano, mas agora PE mudou esse valor, só coloquei o post pois minha aplicação tem como parâmetro esse valor, assim já avisa ao usuário que precisa informar os dados do cliente acima de X valor, caso alguém não tenha pego essa informação, deixei aqui registrado
-
NFCe em PE sem identificação passando até 5.000,00
um tópico no fórum postou Élviro Cavalcanti NFC-e - Nota Fiscal do Consumidor Eletrônica
Bom dia pessoal, aqui em PE a NFCe que antes era até 1.000,00 sem identificação, agora está passando com valor até 5.000,00, caso alguém tenha essa trava no sistema, pode alterar essa quantidade. -
Quando clico em novo, aciono os comandos DM.UFornecedor.close; DM.UFornecedor.SQL.Clear; DM.UFornecedor.SQL.Add('SELECT codigo, dtcadastro, nomerazao, fantasia, tipo, cpfcnpj, rginsc, '); DM.UFornecedor.SQL.Add('endereco, numero, complemento, bairro, cidade, uf, cep, codmunicipio, email, '); DM.UFornecedor.SQL.Add('site, fone, fone2, contato, fonecontato, celularcontato, emailcontato, '); DM.UFornecedor.SQL.Add('ramoatividade, bloqueado, dtalteracao, usuario, dtcontato, motivocontato,'); DM.UFornecedor.SQL.Add('usuariocontato, tempocadastro, codusuario, obs FROM fornecedor'); DM.UFornecedor.SQL.ADD('WHERE codigo = -1'); DM.UFornecedor.open; DM.UFornecedor.Append; e direciono o foco para o DBEdit, mas ele não deixa nada ser digitado, e quando salvo na tabela ele salva com um registro vazio, como se estivesse funcionando normal o comando de novo e de salvar.
-
DBEdit não permite digitar no delphi 2010 e MySQL
um tópico no fórum postou Élviro Cavalcanti Object Pascal - Delphi & Lazarus
Boa tarde pessoal, estou tendo uma situação curiosa no delphi 2010 usando o componente Unidac e Mysql, apenas uma tabela do meu banco (fornecedor) eu vejo os dados usando o MySQL Workbench, mas quando tento incluir um novo registro nessa tabela o dbedit não permite digitar nada, mesmo o DBGrid não consigo exibir os dados. Alguém já passou por esse problema? Lembrando que é apenas nessa tabela, mas demais estão normais! -
App com conexão UniConnection com Firebird no servidor Linux
um tópico no fórum postou Élviro Cavalcanti Object Pascal - Delphi & Lazarus
Bom dia pessoal, tenho um banco de dados Firebird hospedado no servidor em Linux na web, pela máquina usando o windows eu tenho acesso e trabalho normal com ele, mas quando tento acessar o banco via app, aparece uma mensagem de erro : 'failed to locate host machine. Undefined services gds_db/ tcp', estou usando o componente UniConnection. Alguém já passou ou tem algo que possa ajudar? -
Boa tarde, caso precise posso colocar meu código, mas usei gerando direto e não usando o ACBR, mas só nesse caso
- 2 replies
-
- sped ecf
- sped fiscal
- (e 1 mais)
-
Erro ao Compilar projeto - Delphi 6
Élviro Cavalcanti replied to frankimiotto's tópico in Object Pascal - Delphi & Lazarus
Infelizmente não tenho o D6 aqui na minha máquina, apenas o delphi 2010 e o 10.3 e não tenho essa pasta Rtl mencionada, mas vou tentar pesquisar algo mais pra tentar ajudar! -
Consumir API do IFood - Delphi
Élviro Cavalcanti replied to RRamboli's tópico in Object Pascal - Delphi & Lazarus
Boa tarde, eu fiz a comunicação com o Ifood mercado que é bem parecido acredito eu com o ifood tradicional, mas no caso eles me passaram um link onde tem as informações de como fazer, vou deixar aqui abaixo e tentar ajudar https://developermercado.ifood.com.br/ -
Erro ao Compilar projeto - Delphi 6
Élviro Cavalcanti replied to frankimiotto's tópico in Object Pascal - Delphi & Lazarus
Boa tarde, esse GETMEM.INC é uma Unit do seu projeto? Tentei achar esse mesmo arquivo aqui no meu computador e não achei, você poderia explicar melhor? -
Eu trabalho com essa situação e achei mais tranquilo usar sempre as empresas no caso separadas, a cada venda e entrada é informado o local de onde está sendo feito o processo.
-
Opa, bem melhor sim dessa forma, não tinha prestado atenção que estava on line e consumindo banda de internet!
-
Você pode utilizar um campo blob e colocar o arquivo xml dentro dele, assim você tem o arquivo salvo na pasta o no seu banco.
-
Bom dia, achei essa resposta no site contábil, não sei se seria útil. (grupo prod - ID I01), com: CFOP 5949 - Outra saída de mercadoria ou prestação de serviço não especificado; CST 40 – Isenta da tributação do ICMS (campo CST - ID N03); NCM 99; Segue abaixo, fonte da pesquisa https://www.contabeis.com.br/forum/tributos-estaduais-municipais/255233/ncm-para-gorjeta/
-
Bom dia, quais seriam esses dados, você se refere a criar um campo para guardar o xml validado ou os dados de envio com as informações completas do cupom?
-
Boa tarde Juliomar, fiz os testes com o mesmo banco, inserindo quatro registros numa venda, segue abaixo os resultados em tempo. Usando o servidor (Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz com 8BG) e o terminal que fez a inserção (Intel(R) Core(TM) i3-7100U CPU @ 2.40GHz com 4GB). Usei o seguinte formato para gravar o tempo t := GetTickCount(); t := GetTickCount() - t; //ShowMessage(FormatFloat(',0 milisegundos', t)); Label23.Caption := 'Tempo de resposta : ' + FormatFloat(',0 milisegundos', t); Unidac IBX 969 234 984 216 953 234 938 203 Deixo aqui o registro desse primeiro teste, assim podemos enriquecer nossos conhecimentos num fórum sempre construtivo !