segunda-feira, 5 de agosto de 2024

VIDEO 4083 - Webservice - uninfe -dll - Melhorando Codigo busca Cnpj - top - Windev29 webdev mobile -

VIDEO 4083 - Webservice - uninfe -dll - Melhorando Codigo busca Cnpj - top - Windev29 webdev mobile -  









00:00:00 Introdução
00:01:12 Mostrando webservice consulta cadastro
00:01:25 Variaveis iniciais e parametros do webservice 
00:02:56 Primeiras configuracoes sefaz uninfe dll e pesquisa estado
00:05:11 caso nao encontre , pesquisar na receita 
00:06:08 Buscando dados da receita 
00:07:03 vou unificar o retorno do xml fazendo um somente 
00:07:11 Criando xml padrao 
00:07:40 Colocando dados do json no xml 
00:08:18 Colocando dados do xml do sefaz no xml 
00:08:49 Fazendo codigo do consumo 
00:10:04 Vamos testar 
00:10:35 Onde eu encontro o código 
00:10:53 Propaganda Windev Webde Mobile com Adriano boller
00:11:01 Erpmatos 
00:11:10 Representantes ErpMatos
00:11:21 Video Encerramento



Objetivo Aula:
Temos a consulta do cnpj pela busca do sefaz.. Normalmente sempre consulto
o cnpj, com o estado do emitente. mas caso nao seja do mesmo estado, ai teriamos
de pedir para o cliente digitar a Uf. Mas podemos simplificar isso automaticamente.
o que farei. caso o cnpj nao for do estado do emitente, entao , vou fazer uma
pesquisa pelo site receitaws.com para saber o estado, e ai, sim. na segunta busca,
já leva o estado. 
Outra coisa que faremos é caso , nao tiver inscrição estadual, ai ele vai
trazer as informações do site da receitaws.com.
Top demais. vamos a aula, e aproveite.



Resultado Json


{ "status": "OK", "ultima_atualizacao": "2019-08-24T14:15:22Z", "cnpj": "string", "tipo": "MATRIZ", "porte": "string", "nome": "string", "fantasia": "string", "abertura": "string", "atividade_principal": [ { "code": "string", "text": "string" } ], "atividades_secundarias": [ { "code": "string", "text": "string" } ], "natureza_juridica": "string", "logradouro": "string", "numero": "string", "complemento": "string", "cep": "string", "bairro": "string", "municipio": "string", "uf": "string", "email": "string", "telefone": "string", "efr": "string", "situacao": "string", "data_situacao": "string", "motivo_situacao": "string", "situacao_especial": "string", "data_situacao_especial": "string", "capital_social": "string", "qsa": [ { "nome": "string", "qual": "string", "pais_origem": "string", "nome_rep_legal": "string", "qual_rep_legal": "string" } ], "billing": { "free": true, "database": true } }

============================

//=========== CONSUMO // criar as variaveis s_cnpj_emitente is string = "" s_certificado_senha is string = "" s_cnpj_consultar is string = "" s_uf is string = "" sEDT_Url_string is string = "http://www.amarildomatos.com.br/uninfe_consulta_cadastro" oRequest is httpRequest oResponse is httpResponse oRequest.URL = sEDT_Url_string oRequest.Method = httpPost oRequest..Header["s_recebe_cnpj_emitente"] = s_cnpj_emitente oRequest..Header["s_recebe_senha"] = s_certificado_senha oRequest..Header["s_recebe_UF"] = s_uf oRequest..Header["s_recebe_cnpj_cadastro"] = s_cnpj_consultar oRequest..Header["local_salvar"] = "E:" oRequest.Content = "" oRequest.ContentType = typeMimeJSON oResponse = RESTSend(oRequest) sRetorno_webservice is string = oResponse.Content edt_Resposta = sRetorno_webservice //======== WEBSERVICE PROCEDURE uninfe_consulta_cadastro() retorno_json is JSON cstat is string="" xmotivo is string="" s_auditoria is string = "" retorno_xml is string = "" razao_social is string="" s_recebe_cnpj_emitente is string = WebserviceReadHTTPHeader("s_recebe_cnpj_emitente") // cnpj do emitente-> certificado s_recebe_senha is string = WebserviceReadHTTPHeader("s_recebe_senha") // senha certificado s_recebe_UF is string = WebserviceReadHTTPHeader("s_recebe_UF") s_recebe_cnpj_cadastro is string = WebserviceReadHTTPHeader("s_recebe_cnpj_cadastro") s_local_salvar is string = WebserviceReadHTTPHeader("local_salvar") diretorio_salvar is string=fCurrentDir() // escolhendo onde salvar as informacoes IF s_local_salvar="" THEN ELSE diretorio_salvar=s_local_salvar // "e:" END s_arquivo_certificado is string = fCurrentDir()+"\erpmatos\"+s_recebe_cnpj_emitente+".pfx" s_diretorio is string = s_local_salvar+"\erpmatos\xml_"+s_recebe_cnpj_emitente+"\retorno" IF fMakeDir(s_diretorio)=False THEN END s_diretorio_log is string=s_local_salvar+"\erpmatos\xml_"+s_recebe_cnpj_emitente+"\retorno" IF fMakeDir(s_diretorio_log)=False THEN END s_busca_cnpj is string="" busca_cnpj_sefaz: o_configuracao is Unimake.Business.DFe.Servicos.Configuracao // configurações minimas o_configuracao.TipoDFe = TipoDFe.NFe //1 // nfe o_configuracao.CertificadoArquivo = s_arquivo_certificado o_configuracao.CertificadoSenha = s_recebe_senha oConsCad is Unimake.Business.DFe.XML.NFe.ConsCad() // criar xml oConsCad.VERSAO = "2.00" oInfCons is Unimake.Business.DFe.XML.NFe.InfCons() oInfCons.CNPJ = s_recebe_cnpj_cadastro oInfCons.uf = UFBrasil.RS IF s_recebe_UF<>"" THEN pesquisa_estado() END IF s_busca_cnpj="receita_busca" THEN busca_receita_cnpj() END oConsCad.InfCons = oInfCons WHEN EXCEPTION IN oConsultaCadastro is Unimake.Business.DFe.Servicos.NFe.ConsultaCadastro() oConsultaCadastro.Executar(oConsCad,o_configuracao) oRetConsCad is Unimake.Business.DFe.XML.NFe.RetConsCad <- oConsultaCadastro.Result cstat = oRetConsCad.InfCons.CStat xmotivo = oRetConsCad.InfCons.XMotivo IF cstat="259" THEN // cnpj da consulta não cadastrado como contribuinte na UF // na primeira vez, vai pesquizar o estado do emitente, ou da informacao fornecida pelo usuario // na segunda vez, vai pegar o resultado pela receita ws, pois nao tem inscrição ELSE razao_social = oRetConsCad.InfCons.InfCad.XNome retorno_xml = oConsultaCadastro.RetornoWSString s_busca_cnpj="sefaz_achou" END DO retorno_xml = "ERRO:"+ExceptionInfo(errFullDetails) s_busca_cnpj="sefaz_erro" END IF s_busca_cnpj="sefaz_achou" OR s_busca_cnpj="sefaz_erro" THEN ELSE IF s_busca_cnpj="" THEN s_busca_cnpj="receita_busca" GOTO busca_cnpj_sefaz END END INTERNAL PROCEDURE busca_receita_cnpj() // pegar pela receita o estado s_busca_cnpj="buscou" s_url is string = "https://www.receitaws.com.br/v1/cnpj/"+s_recebe_cnpj_cadastro IF HTTPRequest(s_url) THEN retorno_json=HTTPGetResult() recebi_o_estado is string = retorno_json.uf SWITCH recebi_o_estado CASE "AC" oInfCons.uf=UFBrasil.AC CASE "AL" oInfCons.uf=UFBrasil.AL CASE "AM" oInfCons.uf=UFBrasil.AM CASE "AP" oInfCons.uf=UFBrasil.AP CASE "BA" oInfCons.uf=UFBrasil.BA CASE "CE" oInfCons.uf=UFBrasil.CE CASE "DF" oInfCons.uf=UFBrasil.DF CASE "ES" oInfCons.uf=UFBrasil.ES CASE "EX" oInfCons.uf=UFBrasil.EX CASE "GO" oInfCons.uf=UFBrasil.GO CASE "MA" oInfCons.uf=UFBrasil.MA CASE "MG" oInfCons.uf=UFBrasil.MG CASE "MS" oInfCons.uf=UFBrasil.MS CASE "MT" oInfCons.uf=UFBrasil.MT CASE "PA" oInfCons.uf=UFBrasil.PA CASE "PB" oInfCons.uf=UFBrasil.PB CASE "PE" oInfCons.uf=UFBrasil.PE CASE "PI" oInfCons.uf=UFBrasil.PI CASE "PR" oInfCons.uf=UFBrasil.PR CASE "RJ" oInfCons.uf=UFBrasil.RJ CASE "RN" oInfCons.uf=UFBrasil.RN CASE "RO" oInfCons.uf=UFBrasil.RO CASE "RR" oInfCons.uf=UFBrasil.RR CASE "RS" oInfCons.uf=UFBrasil.RS CASE "SC" oInfCons.uf=UFBrasil.SC CASE "SE" oInfCons.uf=UFBrasil.SE CASE "SP" oInfCons.uf=UFBrasil.SP CASE "TO" oInfCons.uf=UFBrasil.TO OTHER CASE s_busca_cnpj="receita_nao_achou["+retorno_json END ELSE s_busca_cnpj="erro busca receita="+ErrorInfo(errFullDetails) END END INTERNAL PROCEDURE pesquisa_estado() SWITCH s_recebe_UF CASE "AC" oInfCons.uf=UFBrasil.AC CASE "AL" oInfCons.uf=UFBrasil.AL CASE "AM" oInfCons.uf=UFBrasil.AM CASE "AP" oInfCons.uf=UFBrasil.AP CASE "BA" oInfCons.uf=UFBrasil.BA CASE "CE" oInfCons.uf=UFBrasil.CE CASE "DF" oInfCons.uf=UFBrasil.DF CASE "ES" oInfCons.uf=UFBrasil.ES CASE "EX" oInfCons.uf=UFBrasil.EX CASE "GO" oInfCons.uf=UFBrasil.GO CASE "MA" oInfCons.uf=UFBrasil.MA CASE "MG" oInfCons.uf=UFBrasil.MG CASE "MS" oInfCons.uf=UFBrasil.MS CASE "MT" oInfCons.uf=UFBrasil.MT CASE "PA" oInfCons.uf=UFBrasil.PA CASE "PB" oInfCons.uf=UFBrasil.PB CASE "PE" oInfCons.uf=UFBrasil.PE CASE "PI" oInfCons.uf=UFBrasil.PI CASE "PR" oInfCons.uf=UFBrasil.PR CASE "RJ" oInfCons.uf=UFBrasil.RJ CASE "RN" oInfCons.uf=UFBrasil.RN CASE "RO" oInfCons.uf=UFBrasil.RO CASE "RR" oInfCons.uf=UFBrasil.RR CASE "RS" oInfCons.uf=UFBrasil.RS CASE "SC" oInfCons.uf=UFBrasil.SC CASE "SE" oInfCons.uf=UFBrasil.SE CASE "SP" oInfCons.uf=UFBrasil.SP CASE "TO" oInfCons.uf=UFBrasil.TO OTHER CASE s_busca_cnpj="nao_acho_estado" END END retorno_xml_erpmatos is string="" retorno_xml_erpmatos=[ <infCad> <IE>#IE#</IE> <CNPJ>#CNPJ#</CNPJ> <UF>#UF#</UF> <cSit>#cSit#</cSit> <indCredNFe>#indCredNFe#</indCredNFe> <indCredCTe>#indCredCTe#</indCredCTe> <xNome>#xNome#</xNome> <xFant>#xFant#</xFant> <xRegApur>#xRegApur#</xRegApur> <CNAE>#CNAE#</CNAE> <dIniAtiv>#dIniAtiv#</dIniAtiv> <dUltSit>#dUltSit#</dUltSit> <ender> <xLgr>#xLgr#</xLgr> <nro>#nro#</nro> <xCpl>#xCpl#</xCpl> <xBairro>#xBairro#</xBairro> <cMun>#cMun#</cMun> <xMun>#xMun#</xMun> <CEP>#CEP#</CEP> </ender> <alteracao>#alteracao#</alteracao> </infCad> ] IF cstat="259" THEN //caso nao tiver no sefaz, vai pegar o json da receita retorno_xml_erpmatos=Replace(retorno_xml_erpmatos,"#alteracao#","pegou pelo json da receita") retorno_xml_erpmatos=Replace(retorno_xml_erpmatos,"#IE#","") retorno_xml_erpmatos=Replace(retorno_xml_erpmatos,"#CNPJ#",s_recebe_cnpj_cadastro) retorno_xml_erpmatos=Replace(retorno_xml_erpmatos,"#UF#",retorno_json.uf) retorno_xml_erpmatos=Replace(retorno_xml_erpmatos,"#cSit#","") retorno_xml_erpmatos=Replace(retorno_xml_erpmatos,"#indCredNFe#","") retorno_xml_erpmatos=Replace(retorno_xml_erpmatos,"#indCredCTe#","") retorno_xml_erpmatos=Replace(retorno_xml_erpmatos,"#xNome#",retorno_json.nome) IF retorno_json.fantasia="" THEN retorno_xml_erpmatos=Replace(retorno_xml_erpmatos,"#xFant#",retorno_json.nome) ELSE retorno_xml_erpmatos=Replace(retorno_xml_erpmatos,"#xFant#",retorno_json.fantasia) END retorno_xml_erpmatos=Replace(retorno_xml_erpmatos,"#xRegApur#","") retorno_xml_erpmatos=Replace(retorno_xml_erpmatos,"#CNAE#","") retorno_xml_erpmatos=Replace(retorno_xml_erpmatos,"#dIniAtiv#","") retorno_xml_erpmatos=Replace(retorno_xml_erpmatos,"#dUltSit#","") retorno_xml_erpmatos=Replace(retorno_xml_erpmatos,"#xLgr#",retorno_json.logradouro) retorno_xml_erpmatos=Replace(retorno_xml_erpmatos,"#nro#",retorno_json.numero) retorno_xml_erpmatos=Replace(retorno_xml_erpmatos,"#xCpl#",retorno_json.complemento) retorno_xml_erpmatos=Replace(retorno_xml_erpmatos,"#xBairro#",retorno_json.bairro) retorno_xml_erpmatos=Replace(retorno_xml_erpmatos,"#cMun#","") retorno_xml_erpmatos=Replace(retorno_xml_erpmatos,"#xMun#",retorno_json.municipio) cep_string is string=retorno_json.cep cep_string=Replace(cep_string,".","") cep_string=Replace(cep_string,"-","") retorno_xml_erpmatos=Replace(retorno_xml_erpmatos,"#CEP#",cep_string) ELSE retorno_xml_erpmatos=Replace(retorno_xml_erpmatos,"#alteracao#","pegou pelo xml da sefaz") retorno_xml_erpmatos = Replace(retorno_xml_erpmatos,"#IE#",XMLExtractString(retorno_xml,"IE")) retorno_xml_erpmatos = Replace(retorno_xml_erpmatos,"#CNPJ#",s_recebe_cnpj_cadastro) retorno_xml_erpmatos = Replace(retorno_xml_erpmatos,"#UF#",XMLExtractString(retorno_xml,"UF")) retorno_xml_erpmatos = Replace(retorno_xml_erpmatos,"#cSit#",XMLExtractString(retorno_xml,"cSit")) retorno_xml_erpmatos = Replace(retorno_xml_erpmatos,"#indCredNFe#",XMLExtractString(retorno_xml,"indCredNFe")) retorno_xml_erpmatos = Replace(retorno_xml_erpmatos,"#indCredCTe#",XMLExtractString(retorno_xml,"indCredCTe")) retorno_xml_erpmatos = Replace(retorno_xml_erpmatos,"#xNome#",XMLExtractString(retorno_xml,"xNome")) IF XMLExtractString(retorno_xml,"xFant")="" THEN retorno_xml_erpmatos = Replace(retorno_xml_erpmatos,"#xFant#",XMLExtractString(retorno_xml,"xNome")) ELSE retorno_xml_erpmatos = Replace(retorno_xml_erpmatos,"#xFant#",XMLExtractString(retorno_xml,"xFant")) END retorno_xml_erpmatos = Replace(retorno_xml_erpmatos,"#xRegApur#",XMLExtractString(retorno_xml,"xRegApur")) retorno_xml_erpmatos = Replace(retorno_xml_erpmatos,"#CNAE#",XMLExtractString(retorno_xml,"CNAE")) retorno_xml_erpmatos = Replace(retorno_xml_erpmatos,"#dIniAtiv#",XMLExtractString(retorno_xml,"dIniAtiv")) retorno_xml_erpmatos = Replace(retorno_xml_erpmatos,"#dUltSit#",XMLExtractString(retorno_xml,"dUltSit")) retorno_xml_erpmatos = Replace(retorno_xml_erpmatos,"#xLgr#",XMLExtractString(retorno_xml,"xLgr")) retorno_xml_erpmatos = Replace(retorno_xml_erpmatos,"#nro#",XMLExtractString(retorno_xml,"nro")) retorno_xml_erpmatos = Replace(retorno_xml_erpmatos,"#xCpl#",XMLExtractString(retorno_xml,"xCpl")) retorno_xml_erpmatos = Replace(retorno_xml_erpmatos,"#xBairro#",XMLExtractString(retorno_xml,"xBairro")) retorno_xml_erpmatos = Replace(retorno_xml_erpmatos,"#cMun#",XMLExtractString(retorno_xml,"cMun")) retorno_xml_erpmatos = Replace(retorno_xml_erpmatos,"#xMun#",XMLExtractString(retorno_xml,"xMun")) retorno_xml_erpmatos = Replace(retorno_xml_erpmatos,"#CEP#",XMLExtractString(retorno_xml,"CEP")) //xFant END RESULT retorno_xml_erpmatos

sexta-feira, 26 de julho de 2024

Video 4080 - Amarildo aprendendo flexboxWebdev - erpwebMatos - paulo viana parte 2

Video 4080 - Amarildo aprendendo flexbox Webdev - erpwebMatos


00:00:00 Introdução
00:00:00 Inicio explicacao paulo viana com amarildo matos
00:00:13 Ancoragem da pagina
00:00:22 Explicando flexbox 
00:00:29 Excluindo celula que eu tinha criado 
00:00:35 Pegando controles e colocando no flexbox
00:01:14 ancorando os controles dentro do flexbox 
00:03:00 fazendo outro flexbok
00:04:00 fazendo outro flexbox 
00:04:50 colocar campos invisiveis dentro dum popup
00:05:00 colocar os botoes de salvar dentro flexbox 
00:06:00 deixar mesma largura 
00:07:00 falando sobre table 
00:07:30 configurando table 
00:08:22 Propaganda Windev Webde Mobile com Adriano boller
00:08:30 Erpmatos 
00:08:39 Representantes ErpMatos
00:08:50 Video Encerramento


























quarta-feira, 17 de julho de 2024

VIDEO 4074 - Webservice - Windev29 webdev mobile - Consumir webservice cadastro no Webdev uninfe -dll





bom dia
VIDEO 4074 - Webservice - Windev29 webdev mobile - Consumir webservice cadastro no Webdev uninfe -dll

00:00:00 Introdução
00:00:11 Vamos entrar no cadastro de cliente, e no botao busca cnpj
00:00:29 Vamos perguntar se já existe cnpj digitado
00:00:38 vamos criar as variaveis
00:01:20 vamos instanciar request e response e informar url e metodo
00:01:41 vamos informar os parametors e o tipo
00:02:13 vamos pegar o retorno 
00:02:27 vamos adicionar as informações nos campos com xmlExtractString
00:03:44 Vamos gerar deploy do projeto erp_web_matos
00:04:22 Executando o Site webdev Erp_web_matos
00:04:59 Próxima Aula 
00:05:13 Propaganda Windev Webde Mobile com Adriano boller
00:05:23 Erpmatos 
00:05:29 Representantes ErpMatos
00:05:40 Video Encerramento




=========================================

// vamos verificar se tem cnpj digitado

IF edt_cnpj_cpf<>"" THEN
// buscar cnpj pelo uninfe dll
// criar as variaveis 
s_cnpj_emitente is string = ""
s_certificado_senha is string = ""
s_cnpj_consultar is string = ""
n_cuf is int = 43 
sEDT_Url_string is string = "http://www.amarildomatos.com.br/uninfe_consulta_cadastro"
s_cnpj_consultar = edt_cnpj_cpf
// vamos instanciar request e response
oRequest is httpRequest
oResponse is httpResponse
// vamos informar a url e metodo
oRequest.URL = sEDT_Url_string 
oRequest.Method = httpPost
// vamos informar os parametros
oRequest..Header["s_recebe_cnpj"] = s_cnpj_emitente
oRequest..Header["s_recebe_senha"] = s_certificado_senha
oRequest..Header["n_recebe_CUF"] = n_cuf
oRequest..Header["s_recebe_cnpj_cadastro"] = s_cnpj_consultar
// vamos colocar tipo 
oRequest.Content = ""
oRequest.ContentType = typeMimeJSON

//vamos pegar o retorno 
oResponse = RESTSend(oRequest)
sRetorno_webservice is string = oResponse.Content
    //vamos adicionar as informações nos campos
IF edt_razao_social_nome="" THEN
edt_razao_social_nome=XMLExtractString(sRetorno_webservice,"xNome")
END
IF edt_nome_fantasia="" THEN
edt_nome_fantasia=XMLExtractString(sRetorno_webservice,"xFant")
END
IF EDT_Endereco_cep="" OR EDT_Endereco_cep=0 THEN
EDT_Endereco_cep = XMLExtractString(sRetorno_webservice,"CEP")
END
IF EDT_Endereco_rua="" THEN
EDT_Endereco_rua=XMLExtractString(sRetorno_webservice,"xLgr")
END
IF EDT_Endereco_numero="" OR EDT_Endereco_numero=0 THEN
EDT_Endereco_numero=XMLExtractString(sRetorno_webservice,"nro")
END
IF EDT_Endereco_complemento="" THEN
EDT_Endereco_complemento=XMLExtractString(sRetorno_webservice,"xCpl")
END
IF EDT_Endereco_bairro="" THEN
EDT_Endereco_bairro=XMLExtractString(sRetorno_webservice,"xBairro")
END
IF EDT_Endereco_cidade="" THEN
EDT_Endereco_cidade=XMLExtractString(sRetorno_webservice,"xMun")
END
IF EDT_Endereco_uf="" THEN
EDT_Endereco_uf=XMLExtractString(sRetorno_webservice,"UF")
END
IF EDT_Email=""
EDT_Email=XMLExtractString(sRetorno_webservice,"email")
END
IF edt_inscricao_estadual=""
edt_inscricao_estadual=XMLExtractString(sRetorno_webservice,"IE")
END
IF EDT_Endereco_cmun=0 OR EDT_Endereco_cmun="" THEN
EDT_Endereco_cmun = XMLExtractString(sRetorno_webservice,"cMun")
EDT_Endereco_pais = "BRASIL"
EDT_Endereco_cpais = "1058"
END
IF EDT_Cnae="" THEN
EDT_Cnae=XMLExtractString(sRetorno_webservice,"CNAE")
END
//EDT_Observacao_texto=XMLExtractString(sRetorno_webservice,"")
IF gnRecebe_tipo_cliente_fornecedor=2 THEN
//cliente
CBOX_Tabela_cliente=True
ELSE IF gnRecebe_tipo_cliente_fornecedor=3 
//fornecedor
CBOX_Tabela_fornecedor=True
END
END




terça-feira, 16 de julho de 2024

VIDEO 4073 - Webservice - Windev29 webdev mobile - Consumir webservice cadastro no windev uninfe -dll



bom dia
VIDEO 4073 - Webservice - Windev29 webdev mobile - Consumir webservice cadastro no windev uninfe -dll


00:00:00 Introdução
00:00:12 Criar um botao e um edt resposta 
00:00:58 Vamos criar as variaveis 
00:01:22 vamos instanciar request e response
00:01:33 vamos informar a url e metodo
00:01:47 vamos informar os parametros
00:02:16 vamos colocar tipo 
00:02:28 vamos pegar retorno 
00:02:47 vamos testar 
00:03:06 Próxima Aula 
00:03:10 Propaganda Windev Webde Mobile com Adriano boller
00:03:18 Erpmatos 
00:03:27 Representantes ErpMatos
00:04:38 Video Encerramento





// criar as variaveis 
s_cnpj_emitente is string = ""
s_certificado_senha is string = ""
s_cnpj_consultar is string = ""
n_cuf is int = 43 
sEDT_Url_string is string = "http://www.dominio.com.br/uninfe_consulta_cadastro"
s_cnpj_emitente = "019"
s_certificado_senha = "19"
s_cnpj_consultar = "893"
// vamos instanciar request e response
oRequest is httpRequest
oResponse is httpResponse
// vamos informar a url e metodo
oRequest.URL = sEDT_Url_string 
oRequest.Method = httpPost
// vamos informar os parametros
oRequest..Header["s_recebe_cnpj"] = s_cnpj_emitente
oRequest..Header["s_recebe_senha"] = s_certificado_senha
oRequest..Header["n_recebe_CUF"] = n_cuf
oRequest..Header["s_recebe_cnpj_cadastro"] = s_cnpj_consultar
// vamos colocar tipo 
oRequest.Content = ""
oRequest.ContentType = typeMimeJSON
//vamos pegar o retorno 
oResponse = RESTSend(oRequest)
sRetorno_webservice is string = oResponse.Content
edt_Resposta = sRetorno_webservice


VIDEO 4072 - Webservice - Windev29 webdev mobile - Criar Webservice Rest Cadastro Contribuinte Uninfe Dll





bom dia
VIDEO 4072 - Webservice - Windev29 webdev mobile - Criar Webservice Rest Cadastro Contribuinte Uninfe Dll


00:00:00 Introdução
00:00:15 Explicando o que será feito 
00:00:32 Criando Rest com botao direito 
00:00:41 Criando Rest - nome do Rest 
00:00:51 Criar Point
00:01:02 Associando a procedure
00:01:29 Identificado o metodo como Post
00:01:45 Definir o nome do metodo
00:02:00 Definindo Request formato e Response
00:02:20 Mostrando Metodo
00:02:23 Gerando Webservice para o servidor 
00:03:07 Mostrando servico webservice 
00:03:19 Próxima Aula 
00:03:24 Propaganda Windev Webde Mobile com Adriano boller
00:03:32 Erpmatos 
00:03:41 Representantes ErpMatos
00:04:52 Video Encerramento





// PROCEDURE uninfe_consulta_cadastro()

s_auditoria is string = ""
retorno_xml is string = ""
s_recebe_cnpj is string = WebserviceReadHTTPHeader("s_recebe_cnpj") // cnpj do emitente-> certificado
s_recebe_senha is string = WebserviceReadHTTPHeader("s_recebe_senha") // senha certificado
n_recebe_CUF is int = WebserviceReadHTTPHeader("n_recebe_CUF") // 43 - res
s_recebe_cnpj_cadastro  is string = WebserviceReadHTTPHeader("s_recebe_cnpj_cadastro")

s_arquivo_certificado is string = fCurrentDir()+"\erpmatos\"+s_recebe_cnpj+".pfx"
s_diretorio is string = fCurrentDir()+"\erpmatos\xml_"+s_recebe_cnpj+"\retorno"
IF fMakeDir(s_diretorio)=False THEN
END

s_diretorio_log is string=fCurrentDir()+"\erpmatos\xml_"+s_recebe_cnpj+"\retorno"
IF fMakeDir(s_diretorio_log)=False THEN
END

s_auditoria+="Versao 27.03.15.31"
s_auditoria+=CR+"s_recebe_cnpj["+s_recebe_cnpj+"]"
//s_auditoria+=CR+"s_recebe_senha["+s_recebe_senha+"]"
s_auditoria+=CR+"n_recebe_CUF["+n_recebe_CUF+"]"
s_auditoria+=CR+"s_recebe_cnpj_cadastro["+s_recebe_cnpj_cadastro+"]"
s_auditoria+=CR+"s_arquivo_certificado["+s_arquivo_certificado+"]"
s_auditoria+=CR+"s_diretorio["+s_diretorio+"]"
s_auditoria+=CR+"s_diretorio_log["+s_diretorio_log+"]"

//Revisar acima 
//https://www.youtube.com/live/qUosXijsuPw?si=plDq6F3j8mz9yfgI //comeca 27.32 

// configurações minimas 
o_configuracao is Unimake.Business.DFe.Servicos.Configuracao
o_configuracao.TipoDFe = TipoDFe.NFe //1 // nfe
o_configuracao.CertificadoArquivo = s_arquivo_certificado
o_configuracao.CertificadoSenha = s_recebe_senha

//criar o xml
oConsCad is Unimake.Business.DFe.XML.NFe.ConsCad()
oConsCad.VERSAO = "2.00"

oInfCons is Unimake.Business.DFe.XML.NFe.InfCons()
oInfCons.CNPJ=s_recebe_cnpj_cadastro
oInfCons.uf=UFBrasil.RS // cuf=43 direto //perguntar

oConsCad.InfCons=oInfCons

WHEN EXCEPTION IN
// vamos consumir o servico // Criado um objeto oconsultacadastro
oConsultaCadastro is Unimake.Business.DFe.Servicos.NFe.ConsultaCadastro() 
    
    // vamos chamar ele, passando o xml e a configuração
  oConsultaCadastro.Executar(oConsCad,o_configuracao)
oRetConsCad is Unimake.Business.DFe.XML.NFe.RetConsCad <- oConsultaCadastro.Result
    cstat is string=oRetConsCad.InfCons.CStat
    xmotivo is string=oRetConsCad.InfCons.XMotivo
razao_social is string=oRetConsCad.InfCons.InfCad.XNome
retorno_xml = oConsultaCadastro.RetornoWSString 
DO
retorno_xml="ERRO:"+ExceptionInfo(errFullDetails)
END

// vamos gravar auditoria no servidor
s_auditoria+=CR+retorno_xml+CR
fSaveText(s_diretorio_log+"\cadastro_log.txt",s_auditoria)
fSaveText(s_diretorio+"\cadastro_retorno.xml",retorno_xml)


RESULT retorno_xml


segunda-feira, 6 de maio de 2024

Video 4060 - windev webdev Mobile - Stc Vertical





// youtube : Amarildo Matos - Programador dos pampas


// 06 05 2024
fonte is Font 
fonte..Name="ARIAL"
fonte..Size=13
fonte..Orientation=90
STC_titulo..Font=fonte 
STC_titulo..Width=177
STC_titulo..Height=150









terça-feira, 26 de março de 2024

Video 4044 - windev webdev Mobile - Validar Cpf

Video 4044 - windev webdev Mobile - Validar Cpf

Repositorio





Video 4044 - windev webdev Mobile - Validar Cpf

00:00:00 Introducao
00:00:07 no Windev criar window para pedir o cpf 
00:00:22 Criando a procedure e codigo valida cpf 
00:02:39 Voltando a window digita cpf e chamar a procedure 
00:03:48 Executando e testando cpf 
00:04:02 fazer cpf dentro do windev mobile 
00:05:35 fazer cpf dentro do webdev 
00:07:02 Propaganda wxsolucoes
00:07:24 Progranda Erpmatos 
00:07:33 Representantes erpmatos 
00:07:36 Video encerramento 

=======================================================

validar_cpf(pCpf is string)

_CPF is string
_Peso is 2-byte unsigned int
_Resto is 1-byte int
_Digito is 1-byte int

FOR i=1 _TO_ Length(pCpf)
IF 47 < Asc(pCpf[[i]]) < 58 THEN 
_CPF+=pCpf[[i]]
END
END

IF Length(_CPF) <> 11 THEN RESULT False

FOR i=1 TO 10
_Peso = _Peso + (Asc(_CPF[[1 TO 10]][[i]]) -48)  * (10-i+2)
END

_Resto = modulo(_Peso,11)
IF _Resto < 2 THEN 
_Digito = 0 
ELSE 
_Digito = 11 - _Resto
END

IF Val(_CPF[[11]]) <> _Digito THEN
RESULT False 
ELSE 
RESULT True
END

====================================

terça-feira, 19 de março de 2024

Video 4039 - windev webdev Mobile - novidade 2024 - Alinhamento

00:00:00 Introducao 
00:00:08 Mostrando alinhamento windev 
00:01:18 Mostrando alinhamento webdev  
00:01:51 Mostrando alinhamento Windev mobile 
00:02:21 Propaganda wxsolucoes
00:02:29 Progranda Erpmatos 
00:02:38 Representantes erpmatos 
00:02:41 Video encerramento 


segunda-feira, 18 de março de 2024

Video 4038 - windev webdev Mobile - novidade 2024 - Token

00:00:00 Introducao 
00:00:09 Mostrando o que sera feito 
00:00:24 Criando o botao token 
00:00:36 Escolhendo o tipo de botao token 
00:00:39 Marcando para multiplos escolhas
00:00:50 Marcando para poder mudar de posicao 
00:00:59 Vamos testar 
00:01:25 Propaganda wxsolucoes
00:01:33 Progranda Erpmatos 
00:01:41 Representantes erpmatos 
00:01:45 Video encerramento 



domingo, 17 de março de 2024

segunda-feira, 18 de setembro de 2023

DICA 3909 - Tabela Como imprimir table - Windev-Webdev-Mobile



bom dia

DICA 3909 - Tabela Como imprimir table - Windev-Webdev-Mobile

Indice..

00:00:00 Apresentação
00:00:29 Criando botao 
00:00:39 Colocando codigo tableprint
00:00:50 Testando relatorio
00:01:20 Criando segunda opcao relatorio table
00:01:53 Mostrando Relatorio Gerado
00:02:07 Mostrando Repositorio Windev

Blog

Repositorio Windev

Video Youtube















sexta-feira, 7 de julho de 2023

DICA 3897 - Array e Struture - Como Criar - windev 28 - curso array 28



Video Youtube





Repositorio 


============================

Vamos Criar uma estrutura dados com nome e cidade
Vamos crir um array em cima da estrutura 
Vamos criar dois edt 
Vamos criar um botao onde vamos adicionar os dados no array 
vamos criar outro botao onde vamos ler todos os array e colocar em uma tabela 


============================


------------------ INDICE DO CURSO DE ARRAY e ESTRUTURA


WinDev - Array - 001/... Adiciona/Classifica Ordem/Mostra
WinDev - Array - 002/... Quantas Ocorrencias Array
WinDev - Array - 003/... ArrayDeleteLine - Eliminha uma Linha do Array
WinDev - Array - 004/... ArrayToString - Leva Array Para String
WinDev - Array - 005/... Seek - Procura Por Valor
WinDev - Array - 006/... ArrayDeleteDuplicate - Elimina itens duplos
WinDev - Array - 007/... Delete - Elimina Uma Linha
WinDev - Array - 008/... DeleteAll - Limpa Array
WinDev - Array - 009/... SwapLine - Mover de Lugar
WinDev - Array - 010/... Sum - Somar Array
ARRAYREVERSE - ARRAY - 011/ ... AULA 1185 
ARRAY INICIO - ARRAY 012 / AULA 1229

----------------------------------------------------









quinta-feira, 25 de maio de 2023

Dica 3889 - CommandLine - Linha comando para Programa - Windev 28 - Comandos 96




Dica 3889 - CommandLine - Linha comando para Programa - Windev 28 - Comandos 96

Video Youtube






Link Help


Repositorio do Exemplo





================

GLOBAL
RECEBER_CODIGO is string=CommandLine(1)
RECEBER_NOME is string=CommandLine(2)








-------------------------------INDICES COMANDOS

DICAS 1979 - WINDEV - COMANDOS 29 sidebar control Barra Lateral
DICAS 2147 WINDEV WEBDEV MOBILE COMANDOS 63 MAIS 1 PARAMETRO RETORNO JANELA
DICAS 2148 WINDEV WEBDEV MOBILE COMANDOS 64 The Splitter control
DICAS 2156 WINDEV WEBDEV MOBILE COMANDOS 65 HourGlass Lupa Ampuleta
DICAS 2157 WINDEV WEBDEV MOBILE COMANDOS 66 CEP
DICAS 2168 WINDEV WEBDEV MOBILE WEBSERVICE COMANDOS 67 SysListScreen
DICAS 2196 WINDEV WEBDEV MOBILE COMANDOS 68 eDT TOKEN
DICAS 2198 WINDEV WEBDEV MOBILE COMANDOS 69 eDT TOKEN PROGRAMACAO
DICAS 2213 WINDEV WEBDEV MOBILE COMANDOS 70 LEAPYEAR ANO BISSEXTO
DICAS 2215 WINDEV WEBDEV MOBILE 24 NOVIDADES 18 COMANDOS 71 BCToImage -GERAR IMAGEN CODIGO DE BARRA
DICAS 2229 WINDEV WEBDEV MOBILE 24 NOVIDADES 28 COMANDOS 72 PLANOS NOME
DICAS 2230 WINDEV WEBDEV MOBILE 24 NOVIDADES 29 COMANDOS 73 CONDICOES DEBUG
DICAS 2237 WINDEV WEBDEV MOBILE 24 NOVIDADES 33 COMANDOS 76 MININIZAR Iconize
DICAS 2240 WINDEV WEBDEV MOBILE 24 novidades 34 Comandos 77 Maximize
DICAS 2256 WINDEV WEBDEV MOBILE 24 Novidades 45 Comandos 78 Manual Fonte
DICAS 2257 WINDEV WEBDEV MOBILE 24 Novidades 46 Comandos 79 Help Como Fazer
DICAS 2258 WINDEV WEBDEV MOBILE 24 Novidades 47 Comandos 80 TraceDeleteAll
DICAS 2260 WINDEV WEBDEV MOBILE 24 Novidades 49 Comandos 82 Edit AddAssi...
DICAS 2272 WINDEV WEBDEV MOBILE COMANDOS 82 ExeListProcess
DICAS 2273 WINDEV WEBDEV MOBILE COMANDOS 83 DLL LINKADAS PROCESSOS AddChildDelayed
dica 2631 extrair conteudo com Middle

======================

Teste

Teste
teste