-
Posts
1,402 -
Joined
-
Last visited
-
Days Won
31
Posts posted by edutraini
-
-
Bom dia, Pessoal
Antes de mais nada agradecer ao Alex e Motta pelas solucoes
Acabei usando o solucao do Motta pois como é só um executavel ficou bem rapido
Talvez com pacotes bem grande acho que do Alex pode funcionar tambem
Obrigado a todos
-
Bom dia, Pessoal
Estou implantando no meu sistema um executavel que vai em um ftp e baixa a versao nova do sistema
ou seja ele baixa o executavel em um pasta temp e atualiza a versao na maquina do cliente
Existe alguma forma de antes de baixar ele comparar a data do executavel , pois quando grava na pasta temp ele fica com a data do dia
dessa forma toda hora fica atualizando.
Obrigado
-
Boa tarde, eu uso uma solucao que talvez seja uma ideia
assim que emito a nota fiscal eletronica eu salvo o pdf da nota dentro de um campo text no sql
codificado para base64
quando preciso do pdf simplesmente leio o campo e mostro na tela
-
Bom dia pessoal
Existe alguma forma de rodar o sistema em um computador mac
Obrigado
-
-
Bom dia, Pessoal
a 1 ano atrás fiz a migração do dbf para sql usando o sqlrdd com uma grande ajuda do Emotta.
Hoje meu sistema roda em um servidor na locaweb
No principio fiz a mudança usando o comando simples use arquivo shared via sqlrdd e depois fui melhorando usando direto o select
Agora tenho observado os clientes reclamando de lentidao
Entao estou querendo fazer algumas mudanças e gostaria de sugestoes.
1 - Em vez de ter um servidor potente dividir em varios servidores menores por causa do consumo do sql
2 - Mudança na logica de abertura de arquivos. Em vez de ficar fazendo select em varias partes do sistema ou seja cada rotina que usuario entra
abrir logo no começo e depois usando esses select durante o sistema
Agradeço as sugestoes
Obrigado
-
Bom dia
qual a duvida
qualquer coisa me chama skype edutraini@uol.com.br
-
Bom dia Wellington
Obrigado pela dica vou dar uma estudada nas suas ideias
Um detalhe acho interessante amarrar o pis e cofins no ncm
Tenho caso de clientes que tem pis e cofins mas alguns produtos tem isencao de pis e cofins em um determinado ncm
Exemplo
o cliente fabrica cadeira de rodas ncm 87131000
esse produto o icms e reduzido e isento de pis e cofins
agora
se ele for vender um acessorio da cadeira de roda ncm 40170000 ai o icms pis e cofins sao normais
isso vale para venda para qualquer estado
-
Obrigado Rochinha pelas dicas
Realmente as regras de icms sao muito confusas
so como exemplo
Quando vc compra um produto que foi cobrado a substituicao tributaria 010 quando vc for revender o tributo esse produto nao tem mais icms 060
isso dentro do estado
Mas
quando vc vai vender para outro estado e esse estado nao tem convenio com o estado da venda vc tem que tributar novamente como 000
ou seja e muito dificil colocar a regra no produto tambem
Quando vc tem um usuario que entende de parte fiscal ele consegue visualizar esses problemas e faz a correcao manualmente
Mas
Como a maioria do usuarios que tiram nota fiscal nao sabe nem oque é um ncm ai tudo fica muito dificil
entao realmente e muito complexo fazer uma rotina que calcule tudo
Abraço
-
Bom dia Pessoal
Alguem saberia dizer aonde consigo baixar uma tabela de ncm com seus respectivos icms dentro de SP
Exemplo
Tem produto que tem redução na base de calculo do icms
Tem Produto que o icms é reduzido para 13,3 %
Tem Produto que o icms é 18 %
Os clientes vivem perguntando pois nunca sabem de nada e nem esses contadores de merda
-
Desejo a todos desse fórum muita paz, saúde, amor e paciência para nos aguentar mais ano.
Que Deus ilumine todas famílias, 2023 estaremos juntos novamente.
Amém
-
Esquece essa inscricao é rural
somente coloca cpf 9-Nao contribuinte
-
consulta aqui nao e cnpj é cpfNome da Empresa : RONALDO CURSAGE MAFRA UF: PA - 15CPF: 363.068.512-91Produtor Rural
-
Bom dia, Pessoal
Um cliente meu esta tendo dificuldade de conectar no sistema quando ele usa a internet do celular via Iphone/Vivo
aparece esse mensagem
6/11/2022 14:03:36: SQLDriverConnect Error: No ODBC connection established IM002 - 0 - [Microsoft][ODBC Driver Manager] Nome da fonte de dados não encontrado e nenhum driver padrão especificado
Alguem ja passo por isso e poderia dar uma dica de como resolver
Um amigo disse que a propria vivo faz o bloqueio disso pois nao tem ddns na conexao
-
boa tarde Ale
engraçado mas se colocar 01/01/1000 da erro usando sqlrdd
-
perfeito Kapi obrigado
vou criar a funcao e validar todas as datas
achei que tinha algum parametro direto no campo data
Abraço
-
Obrigado a todos
mas as vezes o usuario digita uma data errada em um campo get exemplo 01/01/1000
ai quando grava no sql da erro
queria nao deixar ele digitar exemplo menor que 01/01/2000
-
Bom dia Pessoal
Existe alguma funcao que valida a data digitada para que quando for gravar na base dados sql não de erro
Obrigado
-
Bom dia, Pessoal
Eu so a dll da flexdocs
De uns tempos para ca o sefaz esta me bloqueando toda vez que faço um consulta para pegar as notas de fornecedores
rejeição de consumo indevido ou rejeição 656
ai tenho que esperar 1 hora para consultar novamente
Pelo que entendi ele so deveria aparecer essa mensagem caso tivesse um volume bem grande de notas, e não o caso do meu cliente que
não passa de 100 eventos por dia
Alguem poderia da uma dica de como resolver
Att
Eduardo Mazur
-
21 horas atrás, kapiaba disse:
.f. ?
Tem certeza Edu?
Abs.
Absoluta
-
{"@emtinformatica.com.br", "smtp.emtinformatica.com.br", 587, .f. }
{"@uol.com.br", "smtp.uol.com.br", 587, .f. }Bom dia Kapi
Uso essas duas configuracoes
uma para email da empresa e outra pessoal
-
boa tarde kapi eu uso rmail usando a conta uolhost da minha empresa
fiz um email chamado nfe@emtinformatica.com.br e eles usam esse email para mandar a nota fiscal
acabou aquele problema de ficar configurando um monte de provedor de cada cliente
-
Boa Tarde, Wellington e Jorge
Entao estou no caminho certo
Obrigado
-
kapi funcionou normal
Uso Pelles
Geração GNRE com FlexDocs
in Programação
Posted
Bom dia
Eu achei essa rotina em meus arquivos
Nunca usei mas derrepente pode ajudar
function pacognre()
// Parametrizacao de uso
cPath := cFilePath( GetModuleFileName( GetInstance() ) )
//
cPathNFE := VerifyINI( "PATHS", "PathNFE" , cPath + "\NF-e\remessa\NFE" , cPath + "\" + "nfw.ini", .f.)
cPathGNRE := VerifyINI( "PATHS", "PathGNRE" , cPath + "\NF-e\remessa\GNRE" , cPath + "\" + "nfw.ini", .f.)
// Dados da empresa
cClNome := VerifyINI( "EMPRESA", "Nome" , "5VOLUTION.COM" , cPath + "\" + "nfw.ini", .f. )
cClEndereco := VerifyINI( "EMPRESA", "Endereco", "R Des M C Costa Leite, 25", cPath + "\" + "nfw.ini", .f. )
cClBairro := VerifyINI( "EMPRESA", "Bairro" , "Pirituba" , cPath + "\" + "nfw.ini", .f. )
cClCidade := VerifyINI( "EMPRESA", "Cidade" , "Sao Paulo" , cPath + "\" + "nfw.ini", .f. )
cClCEP := VerifyINI( "EMPRESA", "CEP" , "05171-560" , cPath + "\" + "nfw.ini", .f. )
cClEstado := VerifyINI( "EMPRESA", "Estado" , "SP" , cPath + "\" + "nfw.ini", .f. )
cClCNPJ := VerifyINI( "EMPRESA", "CNPJ" , "18.066.611/0001-06" , cPath + "\" + "nfw.ini", .f. )
cClInscr := VerifyINI( "EMPRESA", "IE" , "142.365.346.110" , cPath + "\" + "nfw.ini", .f. )
cClIM := VerifyINI( "EMPRESA", "IM" , "4.743.049-4" , cPath + "\" + "nfw.ini", .f. )
//
cCodUF := VerifyINI( "NFELETRONICA", "cCodUF" , "35" , cPath + "\" + "nfw.ini", .f.)
oGNRE := tGNRE():new()
oGNRE:nLote := 0 // Se numero de lote for igual a ZERO sera gerada uma guia unica, o contratio gera lote com varias guias
oGNRE:Homologacao := .t. // Se homologacao direciona para webservices especificos
oGNRE:c01_UfFavorecida := 26 // Contém a sigla da UF favorecida. Campo com 2 dígitos. (Ver ANEXO 1, na aba 'Anexos')
oGNRE:c02_receita := 1000099 // Contém o código da receita. Campo numérico com 6 dígitos. (Consultar na aba 'Regras de Preenchimento')
oGNRE:c25_detalhamentoReceita := 10101010 // Contém o código do detalhamento da receita. Campo numérico. A quantidade de dígitos corresponde a quantidade de dígitos do código. (Consultar na aba 'Regras de Preenchimento').
oGNRE:c26_produto := "TESTE DE PROD" // Contém o código do produto. Campo numérico. A quantidade de dígitos corresponde a quantidade de dígitos do código. (Consultar na aba 'Regras de Preenchimento').
oGNRE:c27_tipoIdentificacaoEmitente := 1 // Contém o código do tipo de identificação do contribuinte emitente (Responsável pelo Pagamento do Tributo). Campo numérico com 1 dígito. (Ver ANEXO 2, na aba 'Anexos'). Caso a identificação seja pela inscrição estadual, esse campo e sua tag poderão ser omitidos.
oGNRE:c03_idContribuinteEmitente := 41819055000105 // Contém o número do documento de identificação do contribuinte emitente. O CPF/ CNPJ não deverá conter espaços, pontos ou traços e apenas um documento poderá ser colocado no arquivo. Caso a identificação seja pela inscrição estadual, esse campo e sua tag poderão ser omitidos. Caso a identificação seja pelo CNPJ, a tag de CPF e de Inscrição Estadual poderão ser omitidas. Caso a identificação seja pelo CPF, os campos e as tags de CNPJ e de Inscrição Estadual poderão ser omitidos.
// Exemplos:
// CNPJ : <CNPJ>11111111111111</CNPJ>
// CPF : <CPF>11111111111</CPF>
oGNRE:c28_tipoDocOrigem := 10 // Contém o código do tipo de documento de origem. Campo numérico. A quantidade de dígitos corresponde a quantidade de dígitos do código. (Consultar na aba 'Regras de Preenchimento'). Caso a receita não exija documento de origem, esse campo e sua tag poderão ser omitidos.
oGNRE:c04_docOrigem := 5656 // Contém o número contido no documento de origem. Campo numérico sem espaços, traços, pontos ou vírgulas. A quantidade de dígitos corresponde a quantidade de dígitos do número. Caso a receita não exija documento de origem, esse campo e sua tag poderão ser omitidos.
oGNRE:c06_valorPrincipal := 10.99 // Contém o valor original da guia. Digitar apenas números. Usar ponto (".") como separador de decimal, e este deve ter 2 números. Caso a receita não exija valor principal, esse campo e sua tag poderão ser omitidos.
oGNRE:c10_valorTotal := 12.52 // Contém valor total da guia (valor original + encargos). Digitar apenas números. Usar ponto (".") como separador de decimal, e este deve ter 2 números. Caso a receita não exija valor total, esse campo e sua tag poderão ser omitidos. Para calcular os encargos, procurar informações na Sefaz do Estado da UF favorecida.
oGNRE:c14_dataVencimento := "2015-05-01" // Contém a data que o contribuinte deve pagar o tributo de acordo com a legislação de cada UF. Formato: AAAA-MM-DD.
oGNRE:c15_convenio := 546456 // Contém o número do convênio. Sem espaços, traços, pontos ou vírgulas. Este campo não é obrigatório e o tamanho do campo corresponde ao número do convênio. No caso de não ter essa informação, esse campo e sua tag poderão ser omitidos.
oGNRE:c16_razaoSocialEmitente := "GNRE PHP EMITENTE" // Contém o nome da razão social do contribuinte emitente. No caso da identificação do contribuinte ser por inscrição estadual, esse campo e sua tag poderão ser omitidos.
oGNRE:c17_inscricaoEstadualEmitente := 56756 // Contém a inscrição estadual do contribuinte emitente na UF favorecida. Campo numérico sem espaços ou traços. Caso seja inscrito na UF Favorecida, preencher este campo. Caso contrário, esse campo e sua tag poderão ser omitidos.
oGNRE:c18_enderecoEmitente := "Queens St" // Contém o endereço do contribuinte emitente. No caso da identificação do contribuinte ser por inscrição estadual, esse campo e sua tag poderão ser omitidos.
oGNRE:c19_municipioEmitente := 5300108 // Contém o código do município de localização do contribuinte emitente. Campo numérico. (Consultar no site do IBGE). O IBGE informará o código do município no formato "EEmmmmd". Tirar os 2 primeiros números que indicam o número do Estado e só colocar os 5 números restantes, ficando no formato "mmmmd".
// A cidade Recife tem o código 2611606, você tirará os dígitos "26" e colocará no arquivo de lote apenas os dígitos "11606".
oGNRE:c20_ufEnderecoEmitente := "DF" // Contém a UF de localização do contribuinte emitente. Campo com 2 dígitos. (Ver ANEXO 1, na aba 'Anexos'). No caso da identificação do contribuinte ser por inscrição estadual, esse campo e sua tag poderão ser omitidos.
oGNRE:c21_cepEmitente := "08215917" // Contém o CEP do contribuinte emitente com 8 dígitos. Digitar apenas números. Esse campo não é obrigatório. No caso da identificação do contribuinte ser por inscrição estadual, esse campo e sua tag poderão ser omitidos.
oGNRE:c22_telefoneEmitente := 1199999999 // Contém o telefone do contribuinte emitente. Colocar o DDD e o número do telefone. Digitar apenas números. Esse campo não é obrigatório. No caso de não ter essa informação, esse campo e sua tag poderão ser omitidos. Onde: 11 => DDD e 22222222 => Telefone
oGNRE:c34_tipoIdentificacaoDestinatario := 1 // Contém o código do tipo de identificação do contribuinte destinatário. Campo numérico com 1 dígito. (Ver ANEXO 2, na aba 'Anexos'). Caso a receita não exija destinatário, esse campo e sua tag poderão ser omitidos.
oGNRE:c35_idContribuinteDestinatario := 86268158000162 // Contém o número do documento de identificação do contribuinte destinatário. O CPF/ CNPJ não deverá conter espaços, pontos ou traços e apenas um documento poderá ser colocado no arquivo. Caso a receita não exija destinatário, esse campo e sua tag poderão ser omitidos.
oGNRE:c36_inscricaoEstadualDestinatario := 10809181 // Contém a inscrição estadual do contribuinte destinatário. Campo numérico sem espaços ou traços. Caso seja inscrito na UF Favorecida, preencher este campo. Caso a receita não exija destinatário, esse campo e sua tag poderão ser omitidos.
oGNRE:c37_razaoSocialDestinatario := "RAZAO SOCIAL GNRE PHP DESTINATARIO" // Contém o nome da firma ou a razão social do contribuinte destinatário. Caso a receita não exija destinatário, esse campo e sua tag poderão ser omitidos.
oGNRE:c38_municipioDestinatario := 2702306 // Contém o município de localização do contribuinte destinatário. Campo numérico. (Consultar no site do IBGE). O IBGE informará o código do município no formato "EEmmmmd". Tirar os 2 primeiros números que indicam o número do Estado e só colocar os 5 números restantes, ficando no formato "mmmmd".
oGNRE:c33_dataPagamento := "2015-11-30" // Contém a data que o contribuinte irá pagar o tributo.Formato: AAAA-MM-DD.
//oGNRE:c05_referencia := "" // Contém as informações do período de referência. Caso a receita não exija período de referência, esse campo e sua tag poderão ser omitidos.
oGNRE:mes := "05" // Contém o mês de referência da apuração. Campo numérico com 2 dígitos. (Ver ANEXO 3, na aba 'Anexos'). Caso a receita não exija mês de período de referência, esse campo e sua tag poderão ser omitidos.
oGNRE:ano := 2015 // Contém o ano de referência da apuração. Campo numérico com 4 dígitos. Caso a receita não exija ano de período de referência, esse campo e sua tag poderão ser omitidos.
oGNRE:parcela := 2 // Contém o número da parcela do débito. Campo numérico com tamanho máximo de 3 dígitos. Caso a receita não exija parcela no período de referência, esse campo e sua tag poderão ser omitidos.
oGNRE:periodo := 2014 // Contém o código do período. Campo numérico. A quantidade de dígitos corresponde a quantidade de dígitos do código. (Consultar na aba 'Regras de Preenchimento'). Caso a receita não exija código do período, esse campo e sua tag poderão ser omitidos
// Nao importantes
//c39_camposExtras := "" // Lista de campos extras. Poderá ter no máximo 3 campos extras por guia. Caso a receita não exija campos extras, esse campo e sua tag poderão ser omitidos.
//oGNRE:codigo := 0 // Contém o código do campo extra. Campo numérico. A quantidade de dígitos corresponde a quantidade de dígitos do código. (Consultar na aba 'Regras de Preenchimento'). Caso a receita não exija campos extras, esse campo e sua tag poderão ser omitidos.
//oGNRE:tipo := "" // Contém o tipo do campo extra. Campo com um caracter. (Consultar na aba 'Regras de Preenchimento'). Caso a receita não exija campos extras, esse campo e sua tag poderão ser omitidos.
//oGNRE:valor := 0.00 // Contém o valor solicitado no campo extra. Se for do tipo Data 'D', o formato é: AAAA-MM-DD. Se for do tipo Númerico 'N', usar ponto (".") como separador de decimal, e este deve ter 2 números.
//oGNRE:c42_identificadorGuia := 0 // Contém o identificador da guia no lote. O valor deste campo deverá ser informado pelo contribuinte para a identificação da guia. Esta informação é opcional e deve conter apenas números (até 10 posições).
// $lote = new Lote();
// $lote->addGuia($guia);
oGNRE:AdicionaGuia()
oGNRE:Serializa()
? oGNRE:MostraXML()
oGNRE:Enviar()
return .t.
CREATE CLASS tGNRE
VAR nLote
VAR cFileName
VAR Homologacao
VAR aGNRERegistros
VAR aGNRERegExtras
VAR c01_UfFavorecida
VAR c02_receita
VAR c25_detalhamentoReceita
VAR c26_produto
VAR c27_tipoIdentificacaoEmitente
VAR c03_idContribuinteEmitente
VAR c28_tipoDocOrigem
VAR c04_docOrigem
VAR c06_valorPrincipal
VAR c10_valorTotal
VAR c14_dataVencimento
VAR c15_convenio
VAR c16_razaoSocialEmitente
VAR c17_inscricaoEstadualEmitente
VAR c18_enderecoEmitente
VAR c19_municipioEmitente
VAR c20_ufEnderecoEmitente
VAR c21_cepEmitente
VAR c22_telefoneEmitente
VAR c34_tipoIdentificacaoDestinatario
VAR c35_idContribuinteDestinatario
VAR c36_inscricaoEstadualDestinatario
VAR c37_razaoSocialDestinatario
VAR c38_municipioDestinatario
VAR c33_dataPagamento
//VAR c05_referencia
VAR mes
VAR ano
VAR parcela
VAR periodo
//
METHOD New
METHOD AdicionaGuia
METHOD Serializa
METHOD MostraXML
//
METHOD Enviar
METHOD Consulta
END CLASS
METHOD New( cGNREFileName ) CLASS tGNRE
if cGNREFileName == nil
::cFileName := "GNRE.TXT"
else
::cFileName := cGNREFileName
endif
::nLote := 0
::Homologacao := .f.
::aGNRERegistros := {}
::aGNRERegExtras := {}
RETURN( self )
METHOD AdicionaGuia() CLASS tGNRE
aadd( ::aGNRERegistros, { ::c01_UfFavorecida ,;
::c02_receita ,;
::c25_detalhamentoReceita ,;
::c26_produto ,;
::c27_tipoIdentificacaoEmitente ,;
::c03_idContribuinteEmitente ,;
::c28_tipoDocOrigem ,;
::c04_docOrigem ,;
::c06_valorPrincipal ,;
::c10_valorTotal ,;
::c14_dataVencimento ,;
::c15_convenio ,;
::c16_razaoSocialEmitente ,;
::c17_inscricaoEstadualEmitente ,;
::c18_enderecoEmitente ,;
::c19_municipioEmitente ,;
::c20_ufEnderecoEmitente ,;
::c21_cepEmitente ,;
::c22_telefoneEmitente ,;
::c34_tipoIdentificacaoDestinatario ,;
::c35_idContribuinteDestinatario ,;
::c36_inscricaoEstadualDestinatario ,;
::c37_razaoSocialDestinatario ,;
::c38_municipioDestinatario ,;
::c33_dataPagamento ,;
::mes ,;
::ano ,;
::parcela ,;
::periodo })
//aadd( ::aGNRERegExtras, { ::c39_camposExtras ,;
// ::codigo ,;
// ::tipo ,;
// ::valor ,;
// ::c42_identificadorGuia })
return ::aGNRERegistros
METHOD Serializa() CLASS tGNRE
local aGNRE := ::aGNRERegistros
local nGNRE := fCreate( ::cFileName )
cResultado := "" // [<?xml version="1.0" encoding="utf-8"?>] + CRLF
if ::nLote > 0
//cResultado := cResultado + [ <TLote_GNRE xmlns="http://www.gnre.pe.gov.br">] + CRLF
//cResultado := cResultado + [ <guias>] + CRLF
//
endif
FOR I = 1 TO LEN(aGNRE)
//cResultado := cResultado + [ <guias>] + CRLF
cResultado := cResultado + [ <TDadosGNRE>] + CRLF
cResultado := cResultado + [ <c01_UfFavorecida>] + alltrim(str(aGNRE[01])) + [</c01_UfFavorecida>] + CRLF
cResultado := cResultado + [ <c02_receita>] + alltrim(str(aGNRE[02])) + [</c02_receita>] + CRLF
cResultado := cResultado + [ <c25_detalhamentoReceita>] + alltrim(str(aGNRE[03])) + [</c25_detalhamentoReceita>] + CRLF
cResultado := cResultado + [ <c26_produto>] + alltrim(aGNRE[04]) + [</c26_produto>] + CRLF
cResultado := cResultado + [ <c27_tipoIdentificacaoEmitente>] + alltrim(str(aGNRE[05])) + [</c27_tipoIdentificacaoEmitente>] + CRLF
cResultado := cResultado + [ <c03_idContribuinteEmitente>] + CRLF
cResultado := cResultado + [ <CNPJ>] + alltrim(str(aGNRE[06])) + [</CNPJ>] + CRLF
cResultado := cResultado + [ </c03_idContribuinteEmitente>] + CRLF
cResultado := cResultado + [ <c28_tipoDocOrigem>] + alltrim(str(aGNRE[07])) + [</c28_tipoDocOrigem>] + CRLF
cResultado := cResultado + [ <c04_docOrigem>] + alltrim(str(aGNRE[08])) + [</c04_docOrigem>] + CRLF
cResultado := cResultado + [ <c06_valorPrincipal>] + alltrim(str(aGNRE[09],2)) + [</c06_valorPrincipal>] + CRLF
cResultado := cResultado + [ <c10_valorTotal>] + alltrim(str(aGNRE[10],2)) + [</c10_valorTotal>] + CRLF
cResultado := cResultado + [ <c14_dataVencimento>] + alltrim(aGNRE[11]) + [</c14_dataVencimento>] + CRLF
cResultado := cResultado + [ <c15_convenio>] + alltrim(str(aGNRE[12])) + [</c15_convenio>] + CRLF
cResultado := cResultado + [ <c16_razaoSocialEmitente>] + alltrim(aGNRE[13]) + [</c16_razaoSocialEmitente>] + CRLF
cResultado := cResultado + [ <c17_inscricaoEstadualEmitente>] + alltrim(str(aGNRE[14])) + [</c17_inscricaoEstadualEmitente>] + CRLF
cResultado := cResultado + [ <c18_enderecoEmitente>] + alltrim(aGNRE[15]) + [</c18_enderecoEmitente>] + CRLF
cResultado := cResultado + [ <c19_municipioEmitente>] + alltrim(str(aGNRE[16])) + [</c19_municipioEmitente>] + CRLF
cResultado := cResultado + [ <c20_ufEnderecoEmitente>] + alltrim(aGNRE[17]) + [</c20_ufEnderecoEmitente>] + CRLF
cResultado := cResultado + [ <c21_cepEmitente>] + alltrim(aGNRE[18]) + [</c21_cepEmitente>] + CRLF
cResultado := cResultado + [ <c22_telefoneEmitente>] + alltrim(str(aGNRE[19])) + [</c22_telefoneEmitente>] + CRLF
cResultado := cResultado + [ <c34_tipoIdentificacaoDestinatario>] + alltrim(str(aGNRE[20])) + [</c34_tipoIdentificacaoDestinatario>] + CRLF
cResultado := cResultado + [ <c35_idContribuinteDestinatario>] + CRLF
cResultado := cResultado + [ <CNPJ>] + alltrim(str(aGNRE[21])) + [</CNPJ>] + CRLF
cResultado := cResultado + [ </c35_idContribuinteDestinatario>] + CRLF
cResultado := cResultado + [ <c36_inscricaoEstadualDestinatario>] + alltrim(str(aGNRE[22])) + [</c36_inscricaoEstadualDestinatario>] + CRLF
cResultado := cResultado + [ <c37_razaoSocialDestinatario>] + alltrim(aGNRE[23]) + [</c37_razaoSocialDestinatario>] + CRLF
cResultado := cResultado + [ <c38_municipioDestinatario>] + alltrim(str(aGNRE[24])) + [</c38_municipioDestinatario>] + CRLF
cResultado := cResultado + [ <c33_dataPagamento>] + alltrim(aGNRE[25]) + [</c33_dataPagamento>] + CRLF
cResultado := cResultado + [ <c05_referencia>] + CRLF
cResultado := cResultado + [ <mes>] + alltrim(aGNRE[26]) + [</mes>] + CRLF
cResultado := cResultado + [ <ano>] + alltrim(str(aGNRE[27])) + [</ano>] + CRLF
cResultado := cResultado + [ <parcela>] + alltrim(str(aGNRE[28])) + [</parcela>] + CRLF
cResultado := cResultado + [ <periodo>] + alltrim(str(aGNRE[29])) + [</periodo>] + CRLF
cResultado := cResultado + [ </c05_referencia>] + CRLF
/*
cResultado := cResultado + [ <c39_camposExtras>]
cResultado := cResultado + [ <campoExtra>]
cResultado := cResultado + [ <codigo>16</codigo>]
cResultado := cResultado + [ <tipo>T</tipo>]
cResultado := cResultado + [ <valor>1200012</valor>]
cResultado := cResultado + [ </campoExtra>]
cResultado := cResultado + [ <campoExtra>]
cResultado := cResultado + [ <codigo>15</codigo>]
cResultado := cResultado + [ <tipo>D</tipo>]
cResultado := cResultado + [ <valor>2015-03-02</valor>]
cResultado := cResultado + [ </campoExtra>]
cResultado := cResultado + [ <campoExtra>]
cResultado := cResultado + [ <codigo>10</codigo>]
cResultado := cResultado + [ <tipo>T</tipo>]
cResultado := cResultado + [ <valor>17.21</valor>]
cResultado := cResultado + [ </campoExtra>]
cResultado := cResultado + [ </c39_camposExtras>]
*/
cResultado := cResultado + [ </TDadosGNRE>] + CRLF
NEXT
if ::nLote > 0
//
//cResultado := cResultado + [ </guias>] + CRLF
//cResultado := cResultado + [ </TLote_GNRE>] + CRLF
endif
fWrite( nGNRE, cResultado, LEN(cResultado) )
fClose( nGNRE )
return cResultado
METHOD MostraXML() CLASS tGNRE
return MemoRead( ::cFileName )
METHOD Enviar() CLASS tGNRE
LOCAL cResultado
cURL := iif( ::Homologacao, "http://www.gnre-he.sp.gov.br", "http://www.gnre.sp.gov.br" )
//
cResultado := [<?xml version="1.0" encoding="utf-8"?>]
//
cResultado := cResultado + [<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">] + CRLF
cResultado := cResultado + [ <soap12:Header>] + CRLF
cResultado := cResultado + [ <gnreCabecMsg xmlns="http://www.gnre.pe.gov.br/wsdl/processar">] + CRLF
cResultado := cResultado + [ <versaoDados>1.00</versaoDados>] + CRLF
cResultado := cResultado + [ </gnreCabecMsg>] + CRLF
cResultado := cResultado + [ </soap12:Header>] + CRLF
cResultado := cResultado + [ <soap12:Body>] + CRLF
cResultado := cResultado + [ <gnreDadosMsg xmlns="http://www.gnre.pe.gov.br/webservice/GnreLoteRecepcao">] + CRLF
cResultado := cResultado + [ <TLote_GNRE xmlns="] + cURL + [">] + CRLF
cResultado := cResultado + [ <guias>] + CRLF
cResultado := cResultado + ::MostraXML() + CRLF
cResultado := cResultado + [ </guias>] + CRLF
cResultado := cResultado + [ </TLote_GNRE>] + CRLF
cResultado := cResultado + [ </gnreDadosMsg>] + CRLF
cResultado := cResultado + [ </soap12:Body>] + CRLF
cResultado := cResultado + [</soap12:Envelope>] + CRLF
//
//?"Enviar", cResultado
cResultado := GNREWebService( cResultado, "POST", cURL, "" ) // cSoapAction )
return cResultado
METHOD Consulta( cProtocolo, cUsuario, cSenha, cCNPJ, cCategoria ) CLASS tGNRE
LOCAL cResultado
//
cResultado := [<?xml version="1.0" encoding="utf-8"?>]
cResultado := ""
//
return cResultado
Function GNREWebService( cXMLFile, cMethod, cURL, cSoapAction )
DEFAULT cMethod := "POST", cSoapAction := cURL
DEFAULT cURL := "http://www.gnre.pe.gov.br/wsdl/processar"
oEDXSend:= TOLEAuto():New( "Microsoft.XMLHTTP" )
oEDXSend:Open( cMethod, cURL, .F. )
//oEDXSend:setrequestheader( "SOAPAction", cSoapAction )
//oEDXSend:setrequestheader( "content-type", "text/xml" )
oEDXSend:Send( cXMLFile )
cResultado := oEDXSend:ResponseText()
return cResultado
function VerifyINI( _section_, _entry_, _var_, _inifile_, _grava_ )
oIni := TIni():New( _inifile_ )
if _grava_ = .t.
oIni:Set( _section_, _entry_, _var_ )
endif
return oIni:Get( _section_, _entry_, _var_, _var_ )
function Consulta_sintegra()
local oDlglink,oDlgxml
*cRioGrandeSul := ( "https://www.sefaz.rs.gov.br/NFE/NFE-CCC.aspx" )
cRioGrandeSul := ( "https://dfe-portal.svrs.rs.gov.br/BPE/CCC")
MsgRun( ( "Conectando a Página da SEFAZ. " ), ;
"Conectando a Página da SEFAZ. Aguarde... ", ;
{ || ShellExecute(GetActiveWindow(),"open",'"'+cRioGrandeSul+'"', 0 ) } )
* REDEFINE BUTTONBMP oRioGrandeSul ID 320 OF oDlgLink ;
* ACTION( ( MsgRun( ( "Conectando a Página da SEFAZ. " ), ;
* "Conectando a Página da SEFAZ. Aguarde... ", ;
* { || ShellExecute(GetActiveWindow(),"open",'"'+cRioGrandeSul+'"', 0 ) } ) ) )
*
* oRioGrandeSul:cToolTip := OemToAnsi( "Sefaz do Estado do Rio Grande do Sul" )
* cValidSefazRS := ( "https://www.sefaz.rs.gov.br/NFE/NFE-VAL.aspx" )
*
* REDEFINE BUTTONBMP oValidSefazRS ID 301 OF oDlgXml WHEN( lLigaBtnDesab ) ;
* ACTION( ShellExecute(GetActiveWindow(),"open",'"'+cValidSefazRS+'"', 0 ) )
*
* oValidSefazRS:cToolTip := OemToAnsi( "Validador de Arquivos *.XML da SEFAZ/RS" )
retur(.t.)
// http://www.odaircontador.cnt.br/2015/12/tabela-do-fundo-de-combate-pobreza-icms.html
// https://blog.quantosobra.com.br/emitir-nota-fiscal-passo-passo-como-emitir-uma-nota-fiscal-eletronica/