Jump to content
Fivewin Brasil

Alain da Silva

Membros
  • Posts

    535
  • Joined

  • Last visited

  • Days Won

    10

Everything posted by Alain da Silva

  1. Bom dia galera, classe para fazer o download do XML no Portal Nacional. Necessita do Certificado do Cliente. Abraços. /********************************************************* * Classe original TSintegra * Data : 10/02/2011 | 02:36 AM * Autor: Lailton Fernando Mariano - <developer@lailton.com.br> * Função : Classe para abrir Download do Xml * Data : 20/03/2014 14:00:00 Por : Alain/Rancharia * Como Usar : oDownXml:=ClassDownloadXml():New() oDownXml:Consulta() Return Nil **********************************************************/ #Include "Fivewin.ch" //----------------------------------------------------------------------------------------------------------------------// Function GetDownloadXml(); Retu( ClassDownloadXml():New()) //----------------------------------------------------------------------------------------------------------------------// Class ClassDownloadXml Data nTimeOut Init 200 // 2 minutos Data lDownload, lError, cError, lOk Data cUrl,cPost,cView Method New() Constructor Method Consulta(cChave) Method DownloadComplete(oAct) Method Clear() INLINE DelUrlCache({::cPost,::cView}) EndClass //----------------------------------------------------------------------------------------------------------------------// Method New() Class ClassDownloadXml Local aUrls aUrls := {"http://www.nfe.fazenda.gov.br/portal/",; "consulta.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8=",; "consultaCompleta.aspx?tipoConteudo=XbSeqxE8pl8="} ::cUrl := aUrls[1] ::cPost := ::cUrl+aUrls[2] ::cView := ::cUrl+aUrls[3] Return Self //----------------------------------------------------------------------------------------------------------------------// Method Consulta(cchave) Class ClassDownloadXml Local oDlg, oAct Local nTimer If IsInternet() == .F. MsgStop("Sem conexão com a internet !") Return {} Else ::Clear() EndIf ::lDownload := .F. ::lError := .F. ::lOk := .T. Define Dialog oDlg From 0,0 To 600,664 Pixel Title "[ Download do Documento Xml - Portal Nacional ] - Necessita do Certificado" //Style WS_CAPTION oDlg:lHelpIcon:=.F. Activate Dialog oDlg NoWait Centered oAct:=TActivex():New(oDlg,"Shell.Explorer",00,0,664,600) oAct:bOnEvent := {|cEv|If(cEv=="DownloadComplete",::DownloadComplete( oAct ),Nil)} oAct:Silent := .f. oAct:Navigate( ::cPost ) oAct:SetFocus() *WHILE oAct:Busy SysWait(.2) *ENDDO oActdo:=oAct:Document() oActdo:All:Item("ctl00$ContentPlaceHolder1$txtChaveAcessoCompleta",0):Value:=cchave nTimer:=Seconds() While !::lDownload If !IsWindowVisible( oDlg:hWnd ) ::lDownload := .T. ::lError := .T. ::cError := "Consulta Cancelada !" ElseIf !IsInternet() ::lDownload := .T. ::lError := .T. ::cError := "Perda de conexao com a internet !" ElseIf( Seconds()-nTimer ) >= ::nTimeOut If MsgYesNo( "O Processo esta Lento, Deseja Continuar Tentando ?","Confirmação") nTimer:=Seconds() Else ::lDownload := .T. ::lError := .T. ::cError := "Tempo limit esgotado !" Endif EndIf SysRefresh() End Try Catch oE ::lDownload := .T. ::lError := .T. ::cError := "Falha no recebimento dos dados!" End oDlg:End() SysRefresh() If ::lDownload .and. !::lError MsgInfo("Download Executado Com Sucesso!!!","AVISO DE ALERTA") Else MsgStop(::cError,"Atenção") EndIf Return {} //----------------------------------------------------------------------------------------------------------------------// Method DownloadComplete(oAct) Class ClassDownloadXml Local cHTTP:= oAct:LocationURL if ::cview<>chttp;;endif If ( ::cView == cHTTP ) IF ::lOk ::lOk:=.F. MsgRun('Pesquisando Certificado e Executando Processo de Download','Página Encontrada...') oact:Document:all:Item("ctl00$ContentPlaceHolder1$btnDownload"):click() Else ::lDownload :=.T. endif ElseIf SUBS(CHTTP,1,105)=="https://www.nfe.fazenda.gov.br/PORTAL/downloadNFe.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8=&a=" ::cError := "O CNPJ ou CPF do certificado não está autorizado a fazer o download do documento" ::lError := .T. ::lDownload := .T. EndIf Return nil //----------------------------------------------------------------------------------------------------------------------// Static Function DelUrlCache( aUrl ) Return AEval( aUrl, {|nX,nNum| DeleteUrlCacheEntry( aUrl[nNum] )} ) Return Nil //----------------------------------------------------------------------------------------------------------------------// EXIT PROCEDURE SAIR PostQuitMessage( 0 ) __Quit() Return Nil //----------------------------------------------------------------------------------------------------------------------// DLL Static Function DeleteUrlCacheEntry(lpszUrlName AS STRING) AS LONG PASCAL FROM "DeleteUrlCacheEntryA" LIB "wininet.dll" //----------------------------------------------------------------------------------------------------------------------//
  2. Alo Daniel, achei essa rotina que seleciona o certificado, mas ainda não da sequência no download Tem mais alguma dica. obrigado ******************************** STATIC FUNCTION PEGA_CERTIFICADO *Retorna um Vetor com o numero de serie na primeira possição *e o vencimento do certificado na segunda possição *Leonardo Machado - 03/05/2010 ******************************** Local oCerts1, oCerts2, oCerts3, oStore, oCertificates, aVETOR:={} TRY oCertificates := GetActiveObject( "CAPICOM.Certificates" ) CATCH TRY oCertificates := CreateObject( "CAPICOM.Certificates" ) CATCH alert("A Dll (capicom.dll) Não está registrada, Favor executar o arquivo INSTALL.BAT") //myrun("install.bat") Return(aVETOR) END END TRY oStore = GetActiveObject("CAPICOM.Store") CATCH TRY oStore := CreateObject( "CAPICOM.Store") CATCH alert("A Dll (capicom.dll) Não está registrada, Favor executar o arquivo INSTALL.BAT") //myrun("install.bat") Return(aVETOR) END END TRY oStore:open(2,'My',2) oCerts1:=oStore:Certificates() oCerts2:=oCerts1:Select("Selecione o certificado para uso da Nfe","Selecione o certificado",.F.) IF oCerts2:Count() > 0 oCerts3 := oCerts2:Item(1) AADD(aVETOR,{oCerts3:SerialNumber,oCerts3:ValidToDate}) ENDIF CATCH Return(aVETOR) END Return(aVETOR)
  3. é complicado, até estou mandando o comando: oact:Document:all:Item("ContentPlaceHolder1_btnDownload"):click() ele até faz a pergunta (para fazer o download é necessário possuir um certificado...) mas para por ai, não continua o download. vou quebrar mais a cabeça. obrigado
  4. então Daniel, veja parte do código da página de uma consulta que fiz: <input type="submit" name="ctl00$ContentPlaceHolder1$btnDownload" value="Download do documento*" onclick="return confirm('Para fazer o download, é necessário possuir um certificado de cliente. \n Clique em Ok para iniciar o download.');" id="ContentPlaceHolder1_btnDownload" class="botao" /> será que aqui não daria para mandar o comando via programação?
  5. bom dia, com essa rotina eu entro na pagina do portal nacional nfe, Define Window oWnd oAct:=TActiveX():New( oWnd, "Shell.Explorer" ) oAct:Navigate2( "http://www.nfe.fazenda.gov.br/portal/consulta.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8=") oWnd:oClient := oAct oAct:oWnd:Hide() Activate Window oWnd Minha pergunta é: teria como acionar o botão do download do xml via programação? Ou saber se esse botão foi acionado? obrigado
  6. bom dia, alguem saberia me dizer, acessando a pagina da nfe no portal, como faço para capturar direto o xml pela sefaz. eu tenho o endereço: https://www.nfe.fazenda.gov.br/PORTAL/downloadNFe.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8=&a=BpcFwe/X3X9jXJu0yVapAEyfW3H88MsP9BT1kKgyRdCLRgpU1WFWhwnWRAnBmiPt. em que parte do html se encontra esse código: BpcFwe/X3X9jXJu0yVapAEyfW3H88MsP9BT1kKgyRdCLRgpU1WFWhwnWRAnBmiPt. para que eu dispare o endereço acima? assim: Define Window oWnd oAct:=TActiveX():New( oWnd, "Shell.Explorer" ) oAct:Navigate2( "https://www.nfe.fazenda.gov.br/PORTAL/downloadNFe.aspx? tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8=&a=BpcFwe/X3X9jXJu0yVapAEyfW3H88MsP9BT1kKgyRdCLRgpU1WFWhwnWRAnBmiPt") oWnd:oClient := oAct oAct:oWnd:Hide() Activate Window oWnd obrigado
  7. vagner, será que não é provisório. na sexta tinha voltado ao normal, hoje estou vendo que voltou esse erro: function visualizaEvento(id) { if(janela) janela.focus() if (document.getElementById(id)) { var dataAtual = new Date(); janela = window.open('', 'winNFeCompleta', 'top=50,left=50,width=800,height=500,scrollbars=yes,status=yes'); var HTML = ''; HTML += ''; HTML += ''; HTML += '.notprint {overflow: hidden;display: none;}'; HTML += ''; HTML += ''; HTML += '.toggle { background-image:none !important; }'; HTML += '.toggable { display: block !important; }'; HTML += ''; if(id=='CCe') { HTML += 'Carta de Correção'; } else if ( id=='EventoCanc') {HTML += 'Evento de Cancelamento'; } HTML += document.getElementById(id).innerHTML; HTML += ''; HTML += ''; abs
  8. obrigado daniel, João uso a rotina do sintegra para puchar os dados da html. estou modificando o programa. obrigado
  9. Bom dia, desde ontem não consigo fazer a importação da nfe pelo site. Alguns dados não aparecem, (duplicatas/transportador...) Será que essa mudança é definitiva ou é só uma manutenção.
  10. boa tarde ALe_Bass, vc pode me ajudar, eu usei o exemplo harbourboleto. estou tentando com o banco bradesco. só que ele não muda o logo. O que tem que ser feito? #INCLUDE "FIVEWIN.CH" FUNCTION DEMO() LOCAL oBol ? "Gerando boleto ..." // Preparar o boleto ... oBol := oBoleto("237") // Como o "new" e o Constructor não precisa ser especificado oBol:lRemessa := .f. // Se não quiser gerar Arquivo Remessa. oBol:lBoleto := .t. // Se não quiser gerar Boleto Bancário. oBol:nBolsPag := 1 oBol:Cedente := "NOME DA EMPRESA" oBol:cNumCC := "28305-3" oBol:cNumAgencia := "0009-0" oBol:cDVAgencia := "" oBol:cCarteira := "109" // Fixado oBol:Destino := "temp\" oBol:NomeHtm := "recibo.htm" oBol:Modelo := MEMOREAD("boleto\bol.htm") oBol:EspecieTit := "REC" oBol:Open() oBol:cImgSrcLocal := "..\boleto\" oBol:SACADO := "NOME DO SACADO" oBol:ENDERECO := "RUA DO SACADO, XXX" oBol:COMPLEMENTO := "AP 13" oBol:BAIRRO := "VILA OSASCO" oBol:CIDADE := "OSASCO" oBol:ESTADO := "SP" oBol:CEP := "CEP: 06230-010" oBol:INSTRUCOES := "INSTRUÇÕES DIVERSAS" oBol:DtVenc := DATE() oBol:cNumDoc := "172909" oBol:cNossoNumero := "172909-7" oBol:nValor := 1001.00 oBol:Execute() ? "Execute ..." oBol:Close() ? "Finalizado ..." RETURN NIL
  11. boa noite, o layout é para sped fiscal mesmo. Mas é como esta no título, é para ter um caminho mais para estudo mesmo, ja que sem a base de dados fica difícil. Como achei pouco material em termos de programação achei que seria válido.
  12. SANOTA->(DBSETORDER(6)) // indexado por str(CONTROLE,3)+STR(TURMA,2)+ESTAGIO+NOME OrdScope(0,str(ccontr,3)+str(ctur,2)+cestagio) OrdScope(1,str(ccontr,3)+str(ctur,2)+cestagio) SANOTA->(DBGOTOP())
  13. Pra quem precisar de um caminho. #INCLUDE "FIVEWIN.CH" #include "FiveWin.ch" #include "Utilprn.ch" #INCLUDE "CORGET.CH" #INCLUDE "CORES.CH" #INCLUDE "TSBUTTON.CH" #include "BTNGET.ch" FUNCTION EFDFISCAL() MEMVAR XDT,XDT2 STORE DATE() TO XDT,XDT2 STORE 0 TO VL_TOT_DEB,VL_AJ_DEBITOS,VL_TOT_AJ_DEBITOS,VL_ESTORNOS_CRED,VL_TOT_CREDITOS,VL_AJ_CREDITOS,VL_TOT_AJ_CREDITOS,VL_ESTORNOS_DEB,B0COD_VER STORE 0 TO VL_SLD_CREDOR_ANT,VL_SLD_APURADO,VL_TOT_DED,VL_ICMS_RECOLHER,VL_SLD_CREDOR_TRANSPORTAR,DEB_ESP Define Dialog oDlg From 0,0 To 600,700 Pixel Title "SPED - EFD-FISCAL" Style WS_CAPTION oDlg:lHelpIcon:=.F. @ 05,10 SAY oSAY VAR "PERÃODO DE APURAÇÃO" Of oDLg Size 200,40 PIXEL @ 15,10 SAY oSAY VAR "Período Inicial" Of oDLg Size 200,40 PIXEL @ 15,110 SAY oSAY VAR "Período Final" Of oDLg Size 200,40 PIXEL @ 05,220 SAY oSAY VAR "VERSÃO DO ARQUIVO" Of oDLg Size 200,40 PIXEL @ 15,50 BTNGET OSAY VAR XDT PICTURE "99/99/99" OF ODLG RESOURCE "CALENDARIO" Action CALEND(@XDT,OSAY) Size 50,10 PIXEL @ 15,150 BTNGET OSAY2 VAR XDT2 PICTURE "99/99/99" OF ODLG RESOURCE "CALENDARIO" Action CALEND(@XDT2,OSAY2) Size 50,10 PIXEL @ 15,220 GET OSAY VAR B0COD_VER PICTURE "999" OF ODLG Size 20,10 PIXEL @ 30,10 SAY oSAY VAR "1-Valor Total dos Débitos Por Saídas **" Of oDLg Size 200,40 PIXEL @ 30,150 GET OSAY VAR VL_TOT_DEB PICTURE "99999999.99" OF ODLG Size 50,10 PIXEL @ 40,10 SAY oSAY VAR "2+Valor Total dos ajustes a débito" Of oDLg Size 200,40 PIXEL @ 40,150 GET OSAY VAR VL_AJ_DEBITOS PICTURE "99999999.99" OF ODLG Size 50,10 PIXEL @ 50,10 SAY oSAY VAR "3-Valor Total de 'Ajustes a débito'" Of oDLg Size 200,40 PIXEL @ 50,150 GET OSAY VAR VL_TOT_AJ_DEBITOS PICTURE "99999999.99" OF ODLG Size 50,10 PIXEL @ 60,10 SAY oSAY VAR "4+Valor Total de Ajustes 'Estornos de crédito'" Of oDLg Size 200,40 PIXEL @ 60,150 GET OSAY VAR VL_ESTORNOS_CRED PICTURE "99999999.99" OF ODLG Size 50,10 PIXEL @ 70,10 SAY oSAY VAR "5-Valor total dos créditos por ´Entradas'" Of oDLg Size 200,40 PIXEL @ 70,150 GET OSAY VAR VL_TOT_CREDITOS PICTURE "99999999.99" OF ODLG Size 50,10 PIXEL @ 80,10 SAY oSAY VAR "6-Valor total dos ajustes de crédito" Of oDLg Size 200,40 PIXEL @ 80,150 GET OSAY VAR VL_AJ_CREDITOS PICTURE "99999999.99" OF ODLG Size 50,10 PIXEL @ 90,10 SAY oSAY VAR "7-Valor total dos ajustes 'Estornos de débitos'" Of oDLg Size 200,40 PIXEL @ 90,150 GET OSAY VAR VL_TOT_AJ_CREDITOS PICTURE "99999999.99" OF ODLG Size 50,10 PIXEL @ 100,10 SAY oSAY VAR "8-Valor total de Ajustes “Estornos de Débitosâ€" Of oDLg Size 200,40 PIXEL @ 100,150 GET OSAY VAR VL_ESTORNOS_DEB PICTURE "99999999.99" OF ODLG Size 50,10 PIXEL @ 110,10 SAY oSAY VAR "9-Valor total de â€Saldo credor do período anteriorâ€" Of oDLg Size 200,40 PIXEL @ 110,150 GET OSAY VAR VL_SLD_CREDOR_ANT PICTURE "99999999.99" OF ODLG Size 50,10 PIXEL @ 120,10 SAY oSAY VAR "10-Valor do saldo devedor apurado **" Of oDLg Size 200,40 PIXEL @ 120,150 GET OSAY VAR VL_SLD_APURADO PICTURE "99999999.99" OF ODLG Size 50,10 PIXEL @ 130,10 SAY oSAY VAR "11-Valor total de â€Deduções†**" Of oDLg Size 200,40 PIXEL @ 130,150 GET OSAY VAR VL_TOT_DED PICTURE "99999999.99" OF ODLG Size 50,10 PIXEL @ 140,10 SAY oSAY VAR "12-Valor total de â€ICMS a recolher (11-12)†**" Of oDLg Size 200,40 PIXEL @ 140,150 GET OSAY VAR VL_ICMS_RECOLHER PICTURE "99999999.99" OF ODLG Size 50,10 PIXEL @ 150,10 SAY oSAY VAR "13-Valor total de â€Sdo credor a transp período seguinteâ€" Of oDLg Size 200,40 PIXEL @ 150,150 GET OSAY VAR VL_SLD_CREDOR_TRANSPORTAR PICTURE "99999999.99" OF ODLG Size 50,10 PIXEL @ 160,10 SAY oSAY VAR "14-Valores recolhidos ou a recolher, extra apuração" Of oDLg Size 200,40 PIXEL @ 160,150 GET OSAY VAR DEB_ESP PICTURE "99999999.99" OF ODLG Size 50,10 PIXEL @ 200,10 Button "Ok" Size 40,10 Pixel Action (IMPRESSAO_EFDPISCOFINS(XDT,XDT2,VL_TOT_DEB,VL_AJ_DEBITOS,VL_TOT_AJ_DEBITOS,VL_ESTORNOS_CRED,VL_TOT_CREDITOS,VL_AJ_CREDITOS,VL_TOT_AJ_CREDITOS,VL_ESTORNOS_DEB,VL_SLD_CREDOR_ANT,VL_SLD_APURADO,VL_TOT_DED,VL_ICMS_RECOLHER,VL_SLD_CREDOR_TRANSPORTAR,DEB_ESP,B0COD_VER),SAIDLG:=.T.,ODLG:END()) @ 200,70 Button "Cancelar" Size 40,10 Pixel Action (SAIDLG:=.T.,oDLG:END()) Activate Dialog oDlg Centered //VALID SAIDLG RETURN NIL FUNCTION IMPRESSAO_EFDPISCOFINS(XDT,XDT2,VL_TOT_DEB,VL_AJ_DEBITOS,VL_TOT_AJ_DEBITOS,VL_ESTORNOS_CRED,VL_TOT_CREDITOS,VL_AJ_CREDITOS,VL_TOT_AJ_CREDITOS,VL_ESTORNOS_DEB,VL_SLD_CREDOR_ANT,VL_SLD_APURADO,VL_TOT_DED,VL_ICMS_RECOLHER,VL_SLD_CREDOR_TRANSPORTAR,DEB_ESP,B0COD_VER) IF ABRE17()=.F..OR.ABRE18()=.F..OR.ABRE43()=.F..OR.ABRE1()=.F..OR.ABRE45()=.F..OR.ABRE19()=.F..OR.ABRE14()=.F..OR.ABRE16()=.F..OR.ABRE23()=.F..OR.ABRE20()=.F..OR.ABRE42()=.F..OR.ABRE200()=.F..OR.ABRE46()=.F..OR.ABRE180()=.F..OR.ABRE190()=.F..OR.ABRE170()=.F..OR.ABRE21()=.F..OR.ABRE201()=.F..OR.ABRE202()=.F..OR.ABRE160()=.F..OR.ABRE52()=.F. MSGALERT("Não Foi Possível Abrir os Arquivos, Tente Novamente...","Mensagem") RETURN(.F.) ENDIF SELE 18 ORDSCOPE(0,NIL) ORDSCOPE(1,NIL) SELE 19 ORDSCOPE(0,NIL) ORDSCOPE(1,NIL) SELE 16 ORDSCOPE(0,NIL) ORDSCOPE(1,NIL) SELE 20 ORDSCOPE(0,NIL) ORDSCOPE(1,NIL) SELE 17 OrdDescend(,,.F.) cArqTxt:=".\TXT\EFDFISCAL.TXT" If File(cArqTxt) FErase(cArqTxt) EndIf oTxt := TTxtFile():New(cArqTxt) If oTxt:Open() TOTALGERAL:=1 **BLOCO 0: ABERTURA, IDENTIFICAÇÃO E REFERÊNCIAS. STORE 1 TO TOTALBLOCO0 **REGISTRO 0000: ABERTURA DO ARQUIVO DIGITAL E IDENTIFICAÇÃO DA ENTIDADE b0reg :="0000" b0cod_ver :=STRZERO(B0COD_VER,3) b0cod_fin :="0" //0=remessa arquivo original 1-remessa do arquivo substituto b0dt_ini :=SUBS(DTOC(XDT),1,2)+SUBS(DTOC(XDT),4,2)+SUBS(DTOC(XDT),7,4) b0dt_fin :=SUBS(DTOC(XDT2),1,2)+SUBS(DTOC(XDT2),4,2)+SUBS(DTOC(XDT2),7,4) b0nome :=ALLTRIM(ARQEMP->NOME) b0cnpj :=ALLTRIM(CharCNPJ(ARQEMP->CNPJ)) b0cpf :="" b0uf :=ALLTRIM(ARQEMP->ESTADO) b0if :=ALLTRIM(ARQEMP->INSEST) SELE 43 DBSETORDER(3) DBSEEK(CONTADOR->UF+CONTADOR->MUNICIPIO) b0cod_mun :=ALLTRIM(ARQMUN->CODIGO) b0im :=ALLTRIM(ARQEMP->INSMUN) b0suframa :="" b0ind_perfil:="A" b0ind_ativ :="0" //0 industrial ou equiparado 1-outros *------------------------------------------------------------------------------------------------------------------------ oTexto:="|"+b0reg+"|"+b0cod_ver+"|"+b0cod_fin+"|"+b0dt_ini+"|"+b0dt_fin+"|"+b0nome+"|"+b0cnpj+"|"+b0cpf+"|"+b0uf+"|"+b0if+; "|"+b0cod_mun+"|"+b0im+"|"+b0suframa+"|"+b0ind_perfil+"|"+b0ind_ativ+"|" oTxt:Add(oTexto) TOTALBLOCO0+=1 TOTALGERAL+=1 *----------------// **REGISTRO 0001: ABERTURA DO BLOCO 0 b1reg:="0001" b1ind_mov:="0" //bloco com dados informados *------------------------------------------------------------------------------------------------------------------------ oTexto="|"+b1reg+"|"+b1ind_mov+"|" oTxt:Add(oTexto) TOTALBLOCO0+=1 TOTALGERAL+=1 *----------------// **REGISTRO 0005: DADOS COMPLEMENTARES DA ENTIDADE b5reg :="0005" b5fantasia :=ALLTRIM(ARQEMP->FANTASIA) b5cep :=ALLTRIM(CharCNPJ(ARQEMP->CEP)) b5end :=ALLTRIM(ARQEMP->ENDERECO) b5num :=ALLTRIM(ARQEMP->NUMERO) b5compl :=ALLTRIM(ARQEMP->COMPLTO) b5bairro :=ALLTRIM(ARQEMP->BAIRRO) b5fone :=ALLTRIM(CharCNPJ(ARQEMP->TELEFONE)) b5fax :="" b5email :="valpanemaserraria@uol.com.br" *------------------------------------------------------------------------------------------------------------------------ oTexto:="|"+b5reg+"|"+b5fantasia+"|"+b5cep+"|"+b5end+"|"+b5num+"|"+b5compl+"|"+b5bairro+"|"+b5fone+"|"+b5fax+"|"+b5email+"|" oTxt:Add(oTexto) TOTALBLOCO0+=1 TOTALGERAL+=1 *----------------// **REGISTRO 0015: DADOS DO CONTRIBUINTE SUBSTITUTO //Registro obrigatório para todos os contribuintes substitutos tributários do ICMS, conforme definidos na legislação //pertinente. Deve ser gerado um registro para cada uma das inscrições estaduais cadastradas nas unidades federadas dos //contribuintes substituídos, ainda que não tenha tido movimentação no período, ficando obrigado à apresentação dos //registros E200 e filhos. **REGISTRO 0100: DADOS DO CONTABILISTA SELE 52 GO TOP b100REG :="0100" b100NOME :=ALLTRIM(CONTADOR->NOME) b100CPF :=ALLTRIM(CHARIE(CONTADOR->CPF)) b100CRC :=ALLTRIM(CONTADOR->CRC) b100CNPJ :=ALLTRIM(CharCNPJ(CONTADOR->CNPJ)) b100CEP :=ALLTRIM(CHARIE(CONTADOR->CEP)) b100END :=ALLTRIM(CONTADOR->LOGRADOURO) b100NUM :=ALLTRIM(CONTADOR->NUMERO) b100COMPL :=ALLTRIM(CONTADOR->COMPLEMENT) b100BAIRRO:=ALLTRIM(CONTADOR->BAIRRO) b100FONE :=ALLTRIM(CharCNPJ(CONTADOR->TELEFONE)) b100FAX :=ALLTRIM(CharCNPJ(CONTADOR->FAX)) b100EMAIL :=ALLTRIM(CONTADOR->EMAIL) SELE 43 DBSETORDER(3) DBSEEK(CONTADOR->UF+CONTADOR->MUNICIPIO) b100COD_MUN:=ARQMUN->CODIGO *------------------------------------------------------------------------------------------------------------------------ oTexto:="|"+b100REG+"|"+b100NOME+"|"+b100CPF+"|"+b100CRC+"|"+b100CNPJ+"|"+b100CEP+"|"+b100END+"|"+b100NUM+"|"+b100COMPL+"|"+b100BAIRRO+"|"+b100FONE+"|"+b100FAX+"|"+b100EMAIL+"|"+b100COD_MUN+"|" oTxt:Add(oTexto) TOTALBLOCO0+=1 TOTALGERAL+=1 *----------------// **REGISTRO 0150: TABELA DE CADASTRO DO PARTICIPANTE TOTAL150:=0 SELE 1 DBSETORDER(4) ARQCLI->(DBGOTOP()) DO WHILE !EOF() STORE "" TO GREG,GCOD_PART,GNOME,GCOD_PAIS,GCNPJ,GCPF,GIE,GCOD_MUN,GSUFRAMA,GEND,GNUM,GCOMPL,GBAIRRO SELE 17 DBSETORDER(4) DBSEEK(EMPRESA_ATIVA+ALLTRIM(ARQCLI->CGCCLI),.T.) B150REG:="" DO WHILE ARQNFE->(!EOF()).AND.ARQNFE->CPFCNPJC==ARQCLI->CGCCLI.AND.DTOS(ARQNFE->DTEMISSAO)<=DTOS(XDT2) IF DTOS(ARQNFE->DTEMISSAO)<DTOS(XDT) ARQNFE->(DBSKIP()) LOOP ENDIF b150REG :="0150" b150COD_PART :=ALLTRIM(CharCNPJ(ARQNFE->CPFCNPJC)) b150NOME :=ALLTRIM(ARQNFE->DESTINATA) b150COD_PAIS :="01058" IF ARQNFE->TIPOC="CNPJ" b150CNPJ :=ALLTRIM(CharCNPJ(ARQNFE->CPFCNPJC)) b150CPF :="" ELSE b150CNPJ :="" b150CPF :=ALLTRIM(CharCNPJ(ARQNFE->CPFCNPJC)) ENDIF b150IE :=ALLTRIM(CHARIE(ARQNFE->INSCRICAO)) SELE 43 DBSETORDER(3) DBSEEK(ARQNFE->ESTADO+ARQNFE->MUNICIPIO) b150COD_MUN:=ARQMUN->CODIGO SELE 17 b150SUFRAMA :=ALLTRIM(ARQNFE->SUFRAMA) b150END :=ALLTRIM(ARQNFE->LOGRADOURO) b150NUM :=ALLTRIM(ARQNFE->NUMERO) b150COMPL :=ALLTRIM(ARQNFE->COMPLTO) b150BAIRRO :=ALLTRIM(ARQNFE->BAIRRO) ARQNFE->(DBSKIP()) ENDDO IF !EMPTY(b150REG) *------------------------------------------------------------------------------------------------------------------------ oTexto:="|"+b150REG+"|"+b150COD_PART+"|"+b150NOME +"|"+b150COD_PAIS+"|"+b150CNPJ+"|"+b150CPF+"|"+b150IE+"|"+b150COD_MUN+"|"+b150SUFRAMA+; "|"+b150END+"|"+b150NUM +"|"+b150COMPL+"|"+b150BAIRRO +"|" oTxt:Add(oTexto) TOTALBLOCO0+=1 TOTALGERAL+=1 TOTAL150+=1 *----------------// ENDIF SELE 1 ARQCLI->(DBSKIP()) ENDDO **REGISTRO 0175: ALTERAÇÃO DA TABELA DE CADASTRO DE PARTICIPANTE //Este registro é de preenchimento obrigatório quando houver, dentro do período, alteração nos dados informados no //registro 0150, campos: NOME, COD_PAIS, CNPJ, CPF, IE, COD_MUN, SUFRAMA, END, NUM, COMPL e BAIRRO. ***REGISTRO 0190: IDENTIFICAÇÃO DAS UNIDADES DE MEDIDA * TOTAL0190:=0 * SELE 16 * DBSETORDER(2) * DBSEEK(EMPRESA_ATIVA,.T.) * ORDSCOPE(0,EMPRESA_ATIVA) * ORDSCOPE(1,EMPRESA_ATIVA) * ARQNFEPRO->(DBGOTOP()) * DO WHILE ARQNFEPRO->(!EOF()) * IF DTOS(ARQNFEPRO->DATFAT)<DTOS(XDT).OR.DTOS(ARQNFEPRO->DATFAT)>DTOS(XDT2) * ARQNFEPRO->(DBSKIP()) * LOOP * ENDIF * OUNIDADE:=UNIDADE * b190REG:="" * DO WHILE ARQNFEPRO->(!EOF()).AND.OUNIDADE==UNIDADE * IF DTOS(ARQNFEPRO->DATFAT)<DTOS(XDT).OR.DTOS( ARQNFEPRO->DATFAT)>DTOS(XDT2) * EXIT * ENDIF * b190REG :="0190" * b190UNID :=ALLTRIM(ARQNFEPRO->UNIDADE) * ARQNFEPRO->(DBSKIP()) * ENDDO * IF !EMPTY(b190REG) * IF b190UNID="M3" * b190DESCR :="METRO CUBICO" * ELSEIF b190UNID="ST" * b190DESCR :="ESTEREO" * ELSEIF b190UNID="T" * b190DESCR :="TONELADA" * ELSEIF b190UNID="UN" * b190DESCR :="UNIDADE" * ELSEIF b190UNID="PC" * b190DESCR :="PEÇA" * ELSEIF="A CADASTRAR" * ENDIF * *------------------------------------------------------------------------------------------------------------------------ * oTexto:="|"+b190REG+"|"+b190UNID+"|"+b190DESCR+"|" * oTxt:Add(oTexto) * TOTALBLOCO0+=1 * TOTALGERAL+=1 * TOTAL0190+=1 * *----------------// * ENDIF * ENDDO **REGISTRO 0200: TABELA DE IDENTIFICAÇÃO DO ITEM (PRODUTOS E SERVIÇOS) * TOTAL200:=0 * SELE 16 * ORDSCOPE(0,NIL) * ORDSCOPE(1,NIL) * SELE 16 * DBSETORDER(3) * DBSEEK(EMPRESA_ATIVA,.T.) * ORDSCOPE(0,EMPRESA_ATIVA) * ORDSCOPE(1,EMPRESA_ATIVA) * ARQNFEPRO->(DBGOTOP()) * DO WHILE ARQNFEPRO->(!EOF()) * IF DTOS(ARQNFEPRO->DATFAT)<DTOS(XDT).OR.DTOS(ARQNFEPRO->DATFAT)>DTOS(XDT2) * ARQNFEPRO->(DBSKIP()) * LOOP * ENDIF * XCODIGO:=ARQNFEPRO->CODIGO * b200REG:="" * DO WHILE ARQNFEPRO->(!EOF()).AND.XCODIGO=ARQNFEPRO->CODIGO * IF DTOS(ARQNFEPRO->DATFAT)<DTOS(XDT).OR.DTOS(ARQNFEPRO->DATFAT)>DTOS(XDT2) * EXIT * ENDIF * b200REG :="0200" * b200COD_ITEM :=ALLTRIM(STR(ARQNFEPRO->CODIGO,14)) * b200DESCR_ITEM :=ALLTRIM(ARQNFEPRO->DESCRICAO) * b200COD_BARRA :="" * b200COD_ANT_ITE:="" * b200UNI_INV :=ALLTRIM(ARQNFEPRO->UNIDADE) * b200TIPO_ITEM :="04" //produto acabado * b200COD_NCM :=ALLTRIM(ARQNFEPRO->NCM) * b200EX_TIP :=ALLTRIM(STR(ARQNFEPRO->EXTIPI,3)) * b200COD_LIST :="" * b200COD_GEN :="44" * b200ALIQ_ICMS :="18" // AQUI NAO TENHO CERTEZA * ARQNFEPRO->(DBSKIP()) * ENDDO * IF !EMPTY(b200REG) * *------------------------------------------------------------------------------------------------------------------------ * oTexto:="|"+b200REG+"|"+b200COD_ITEM+"|"+b200DESCR_ITEM+"|"+b200COD_BARRA+"|"+b200COD_ANT_ITE+"|"+b200UNI_INV+"|"+b200TIPO_ITEM+"|"+b200COD_NCM+"|"+b200EX_TIP+"|"+b200COD_GEN+"|"+b200COD_LIST+"|"+b200ALIQ_ICMS+"|" * oTxt:Add(oTexto) * TOTALBLOCO0+=1 * TOTALGERAL+=1 * TOTAL200+=1 * *----------------// * ENDIF * ENDDO **REGISTRO 0205: ALTERAÇÃO DO ITEM **REGISTRO 0206: CÓDIGO DE PRODUTO CONFORME TABELA ANP (COMBUSTÃVEIS) **REGISTRO 0220: FATORES DE CONVERSÃO DE UNIDADES //Este registro tem por objetivo informar os fatores de conversão dos itens discriminados na Tabela de Identificação //do Item (Produtos e Serviços) entre a unidade informada no registro 0200 e as unidades informadas nos registros dos //documentos fiscais. //Quando for utilizada unidade de inventário diferente da unidade comercial do produto é necessário informar o //registro 0220 para informar os fatores de conversão entre as unidades. **REGISTRO 0300: CADASTRO DE BENS OU COMPONENTES DO ATIVO IMOBILIZADO //Este registro tem o objetivo de identificar e caracterizar todos os bens ou componentes arrolados no registro G125 //do Bloco G e os bens em construção. **REGISTRO 0305: INFORMAÇÃO SOBRE A UTILIZAÇÃO DO BEM /*Este registro tem o objetivo de prestar informações sobre a utilização do bem, sendo obrigatório quando o conteúdo do campo IDENT_MERC do registro 0300 for igual a “1†*/ **REGISTRO 0400: TABELA DE NATUREZA DA OPERAÇÃO/PRESTAÇÃO SELE 16 ORDSCOPE(0,NIL) ORDSCOPE(1,NIL) SELE 16 DBSETORDER(4) DBSEEK(EMPRESA_ATIVA,.T.) ORDSCOPE(0,EMPRESA_ATIVA) ORDSCOPE(1,EMPRESA_ATIVA) ARQNFEPRO->(DBGOTOP()) DO WHILE ARQNFEPRO->(!EOF()) IF DTOS(ARQNFEPRO->DATFAT)<DTOS(XDT).OR.DTOS(ARQNFEPRO->DATFAT)>=DTOS(XDT2) ARQNFEPRO->(DBSKIP()) LOOP ENDIF XCFO:=ARQNFEPRO->CFO b400reg:=" " DO WHILE ARQNFEPRO->(!EOF()).AND.XCFO=ARQNFEPRO->CFO IF DTOS(ARQNFEPRO->DATFAT)<DTOS(XDT).OR.DTOS(ARQNFEPRO->DATFAT)>=DTOS(XDT2) EXIT ENDIF breg :="0400" b400OD_NAT :=SUBS(ARQNFEPRO->CFO,1,5) b400DESCR_NAT :=ALLTRIM(SUBS(ARQNFEPRO->CFO,9,100)) ARQNFEPRO->(DBSKIP()) ENDDO IF !EMPTY(B400REG) *------------------------------------------------------------------------------------------------------------------------ oTexto:="|"+JREG+"|"+JCOD_NAT+"|"+JDESCR_NAT+"|" oTxt:Add(oTexto) TOTALBLOCO0+=1 TOTALGERAL+=1 *----------------// ENDIF ENDDO **REGISTRO 0450: TABELA DE INFORMAÇÃO COMPLEMENTAR DO DOCUMENTO FISCAL **REGISTRO 0460: TABELA DE OBSERVAÇÕES DO LANÇAMENTO FISCAL /*Este registro é utilizado para informar anotações de escrituração determinadas pela legislação pertinente aos lançamentos fiscais, tais como: ajustes efetuados por diferimento parcial de imposto, antecipações, diferencial de alíquota e outros. */ **REGISTRO 0500: PLANO DE CONTAS CONTÃBEIS **REGISTRO 0600: CENTRO DE CUSTOS **REGISTRO 0990: ENCERRAMENTO DO BLOCO 0 *------------------------------------------------------------------------------------------------------------------------ oTexto:="|"+"0990"+"|"+ALLTRIM(STR(TOTALBLOCO0,4))+"|" oTxt:Add(oTexto) TOTALGERAL+=1 *----------------// //------------------------------------------------------------------------------------------------------------------------ **BLOCO C: DOCUMENTOS FISCAIS I - MERCADORIAS (ICMS/IPI) **REGISTRO C001: ABERTURA DO BLOCO C STORE 1 TO TOTALBLOCOC *------------------------------------------------------------------------------------------------------------------------ oTexto:="|"+"C001"+"|"+"0"+"|" //0 bloco com dados oTxt:Add(oTexto) TOTALBLOCOC+=1 TOTALGERAL+=1 **REGISTRO C100: NOTA FISCAL (CÓDIGO 01), NOTA FISCAL AVULSA (CÓDIGO 1B), NOTA FISCAL DE PRODUTOR (CÓDIGO 04) E NF-e (CÓDIGO 55). TOTAL100:=0 TOTAL170:=0 TOTAL190:=0 SELE 17 SET ORDER TO 3 ARQNFE->(DBGOTOP()) DBSEEK(EMPRESA_ATIVA+DTOS(XDT),.T.) DO WHILE !ARQNFE->(EOF()).AND.DTOS(ARQNFE->DTEMISSAO)>=DTOS(XDT).AND.DTOS(ARQNFE->DTEMISSAO)<=DTOS(XDT2) SELE 16 DBSETORDER(1) DBSEEK(EMPRESA_ATIVA+STR(ARQNFE->SERIE,3)+STR(ARQNFE->NOTA,11)) ORDSCOPE(0,EMPRESA_ATIVA+STR(ARQNFE->SERIE,3)+STR(ARQNFE->NOTA,11)) ORDSCOPE(1,EMPRESA_ATIVA+STR(ARQNFE->SERIE,3)+STR(ARQNFE->NOTA,11)) OrdDescend(,,.F.) ARQNFEPRO->(DBGOTOP()) C100VL_DESC :=0.00 ; ARQNFEPRO->(dbEval({||C100VL_DESC :=C100VL_DESC+ARQNFEPRO->DESCONTO})) C100VL_FRT :=0.00 ; ARQNFEPRO->(dbEval({||C100VL_FRT :=C100VL_FRT +ARQNFEPRO->FRETE})) C100VL_SEG :=0.00 ; ARQNFEPRO->(dbEval({||C100VL_SEG :=C100VL_SEG +ARQNFEPRO->SEGURO})) C100VL_OUT_DA :=0.00 ; ARQNFEPRO->(dbEval({||C100VL_OUT_DA :=C100VL_OUT_DA +ARQNFEPRO->DESPESA})) C100VL_BC_ICMS:=0.00 ; ARQNFEPRO->(dbEval({||C100VL_BC_ICMS:=C100VL_BC_ICMS+ARQNFEPRO->BICMS})) C100VL_ICMS :=0.00 ; ARQNFEPRO->(dbEval({||C100VL_ICMS :=C100VL_ICMS+ARQNFEPRO->VICMS})) C100VL_IPI :=0.00 ; ARQNFEPRO->(dbEval({||C100VL_IPI :=C100VL_IPI+ARQNFEPRO->VALORIPI})) C100VL_PIS :=0.00 ; ARQNFEPRO->(dbEval({||C100VL_PIS :=C100VL_PIS+ARQNFEPRO->VALORPIS})) C100VL_COFINS :=0.00 ; ARQNFEPRO->(dbEval({||C100VL_COFINS :=C100VL_COFINS+ARQNFEPRO->VALORCOFIN})) ARQNFEPRO->(DBGOTOP()) IF C100VL_DESC<>0 C100VL_DESC :=ALLTRIM(STR(C100VL_DESC,10,2)) ELSE C100VL_DESC:="" ENDIF * RC100VL_DESC:=STRTRAN(ALLTRIM(STR(RC100VL_DESC,10,2)),".",",") C100VL_FRT :=STRTRAN(ALLTRIM(STR(C100VL_FRT,10,2)),".",",") C100VL_SEG :=STRTRAN(ALLTRIM(STR(C100VL_SEG,10,2)),".",",") C100VL_OUT_DA :=STRTRAN(ALLTRIM(STR(C100VL_OUT_DA,10,2)),".",",") C100VL_BC_ICMS :=STRTRAN(ALLTRIM(STR(C100VL_BC_ICMS,10,2)),".",",") C100VL_ICMS :=STRTRAN(ALLTRIM(STR(C100VL_ICMS,10,2)),".",",") C100BC_ICMS_ST :="0,00" C100VL_ICMS_ST :="0,00" C100VL_IPI :=STRTRAN(ALLTRIM(STR(C100VL_IPI,10,2)),".",",") C100VL_PIS :=STRTRAN(ALLTRIM(STR(C100VL_PIS,10,2)),".",",") C100VL_COFINS :=STRTRAN(ALLTRIM(STR(C100VL_COFINS,10,2)),".",",") C100VL_PIS_ST :="0,00" C100VL_COFIN_ST :="0,00" SELE 17 C100REG :="C100" C100IND_OPER :=SUBS(ARQNFE->TIPODOC,1,1) //0ENTRADEA 1SAIDA C100IND_EMIT :="0" C100COD_PART :=ALLTRIM(CharCNPJ(ARQNFE->CPFCNPJC)) C100COD_MOD :="55" C100COD_SIT :="00" C100SER :=ALLTRIM(STR(ARQNFE->SERIE,3)) C100DOC :=ALLTRIM(STR(ARQNFE->NOTA,9)) C100CHV_NFE :=ALLTRIM(CharCNPJ(ARQNFE->CHAVE)) C100DT_DOC :=SUBS(DTOC(ARQNFE->DTEMISSAO),1,2)+SUBS(DTOC(ARQNFE->DTEMISSAO),4,2)+SUBS(DTOC(ARQNFE->DTEMISSAO),7,4) C100DT_E_S :=SUBS(DTOC(ARQNFE->DTSAIDA),1,2)+SUBS(DTOC(ARQNFE->DTSAIDA),4,2)+SUBS(DTOC(ARQNFE->DTSAIDA),7,4) C100VL_DOC :=STRTRAN(ALLTRIM(STR(ARQNFE->VALORTOTAL,10,2)),".",",") C100IND_PGTO :=SUBS(ARQNFE->PAGAMENTO,1,1) C100VL_ABAT_NT :="" C100VL_MERC :=STRTRAN(ALLTRIM(STR(ARQNFE->VALORTOTAL,10,2)),".",",") C100IND_FRT :=SUBS(ARQNFE->MODALIDADE,1,1) //PARA PASSAR NA VALIDAÇÃO * STORE "" TO C100VL_FRT,C100VL_SEG,C100VL_OUT_DA,C100VL_BC_ICMS,C100VL_ICMS,C100VL_IPI,C100VL_PIS,C100VL_COFINS,C100VL_MERC,C100VL_DESC //,C100VL_DOC ****** *------------------------------------------------------------------------------------------------------------------------ oTexto:="|"+C100REG +"|"+C100IND_OPER +"|"+C100IND_EMIT +"|"+C100COD_PART +"|"+C100COD_MOD +"|"+C100COD_SIT+; "|"+C100SER +"|"+C100DOC +"|"+C100CHV_NFE +"|"+C100DT_DOC +"|"+C100DT_E_S +"|"+C100VL_DOC+; "|"+C100IND_PGTO+"|"+C100VL_DESC +"|"+C100VL_ABAT_NT+"|"+C100VL_MERC +"|"+C100IND_FRT +"|"+C100VL_FRT+; "|"+C100VL_SEG +"|"+C100VL_OUT_DA+"|"+C100VL_BC_ICMS+"|"+C100VL_ICMS +"|"+C100BC_ICMS_ST +"|"+C100VL_ICMS_ST+; "|"+C100VL_IPI +"|"+C100VL_PIS +"|"+C100VL_COFINS +"|"+C100VL_PIS_ST+"|"+C100VL_COFIN_ST+"|" oTxt:Add(oTexto) TOTALBLOCOC+=1 TOTALGERAL+=1 TOTAL100+=1 *----------------// **REGISTRO C105: OPERAÇÕES COM ICMS ST RECOLHIDO PARA UF DIVERSA DO DESTINATÃRIO DO DOCUMENTO FISCAL (CÓDIGO 55). **REGISTRO C110: COMPLEMENTO DO DOCUMENTO - INFORMAÇÃO COMPLEMENTAR DA NOTA FISCAL (CÓDIGOS 01, 1B, 04 e 55) **REGISTRO C111: PROCESSO REFERENCIADO **REGISTRO C112: DOCUMENTO DE ARRECADAÇÃO REFERENCIADO. **REGISTRO C113: DOCUMENTO FISCAL REFERENCIADO **REGISTRO C114: CUPOM FISCAL REFERENCIADO **REGISTRO C115: LOCAL DA COLETA E/OU ENTREGA (CÓDIGO 01, 1B E 04) **REGISTRO C116: CUPOM FISCAL ELETRÔNICO REFERENCIADO **REGISTRO C120: COMPLEMENTO DO DOCUMENTO - OPERAÇÕES DE IMPORTAÇÃO (CÓDIGO 01) **REGISTRO C130: ISSQN, IRRF E PREVIDÊNCIA SOCIAL **REGISTRO C140: FATURA (CÓDIGO 01) */Duplicatas * SELE 20 * DBSETORDER(1) * DBSEEK(EMPRESA_ATIVA+STR(ARQNFE->SERIE,3)+STR(ARQNFE->NOTA,11)) * ORDSCOPE(0,EMPRESA_ATIVA+STR(ARQNFE->SERIE,3)+STR(ARQNFE->NOTA,11)) * ORDSCOPE(1,EMPRESA_ATIVA+STR(ARQNFE->SERIE,3)+STR(ARQNFE->NOTA,11)) * OrdDescend(,,.F.) * ARQDUP->(DBGOTOP()) * IF ARQDUP->(!EOF()) * C140VL_TIT :=0.00 ; ARQDUP->(dbEval({||C140VL_TIT :=C140VL_TIT+ARQDUP->VALOR})) * C140VL_TIT :=ALLTRIM(STR(C140VL_TIT,10,2)) * ARQDUP->(DBGOBOTTOM()) * C140REG :="C140" * C140IND_EMIT :="0" * C140IND_TIT :="00" * C140DESC_TIT :=ALLTRIM(ARQDUP->FATURA) * C140NUM_TIT :=ALLTRIM(STR(ARQDUP->NOTA,11)) * C140QTD_PARC :=ALLTRIM(STR(ARQDUP->ITEM,2)) * *------------------------------------------------------------------------------------------------------------------------ * oTexto:="|"+C140REG+"|"+C140IND_EMIT+"|"+C140IND_TIT+"|"+C140DESC_TIT+"|"+C140NUM_TIT+"|"+C140QTD_PARC+"|"+C140VL_TIT+"|" * oTxt:Add(oTexto) * TOTALBLOCOC+=1 * TOTALGERAL+=1 * ENDIF *----------------// **REGISTRO C141: VENCIMENTO DA FATURA (CÓDIGO 01). * ARQDUP->(DBGOTOP()) * WHILE ARQDUP->(!EOF()) * C141REG:="C141" * C141NUM_PARC:=ALLTRIM(STR(ARQDUP->ITEM,2)) * C141DT_VCTO:=SUBS(DTOC(ARQDUP->VENCTO),1,2)+SUBS(DTOC(ARQDUP->VENCTO),4,2)+SUBS(DTOC(ARQDUP->VENCTO),7,4) * C141VL_PARC:=ALLTRIM(STR(ARQDUP->VALOR,10,2)) * *------------------------------------------------------------------------------------------------------------------------ * oTexto:="|"+C141REG+"|"+C141NUM_PARC+"|"+C141DT_VCTO+"|"+C141VL_PARC+"|" * oTxt:Add(oTexto) * TOTALBLOCOC+=1 * TOTALGERAL+=1 * *----------------// * ARQDUP->(DBSKIP()) * ENDDO **REGISTRO C160: VOLUMES TRANSPORTADOS (CÓDIGO 01 E 04) - EXCETO COMBUSTÃVEIS. * SELE 17 * C160REG :="C160" * C160COD_PART :=ALLTRIM(CharCNPJ(ARQNFE->CPFCNPJC)) * C160VEIC_ID :=ALLTRIM(ARQNFE->PLACA) * C160UF_ID :=ALLTRIM(ARQNFE->UFP) * SELE 19 * DBSETORDER(1) * ORDSCOPE(0,EMPRESA_ATIVA+STR(ARQNFE->SERIE,3)+STR(ARQNFE->NOTA,11)) * ORDSCOPE(1,EMPRESA_ATIVA+STR(ARQNFE->SERIE,3)+STR(ARQNFE->NOTA,11)) * OrdDescend(,,.F.) * ARQVOL->(DBGOTOP()) * C160PESO_BRT :=ALLTRIM(STR(ARQVOL->BRUTO,10,2)) * C160PESO_LIQ :=ALLTRIM(STR(ARQVOL->PESO,10,2)) * C160QTD_VOL :=ALLTRIM(STR(ARQVOL->QUANTIDADE,3)) * *------------------------------------------------------------------------------------------------------------------------ * oTexto:="|"+C160REG+"|"+C160COD_PART+"|"+C160VEIC_ID+"|"+C160QTD_VOL+"|"+C160PESO_BRT+"|"+C160PESO_LIQ+"|"+C160UF_ID+"|" * oTxt:Add(oTexto) * TOTALBLOCOC+=1 * TOTALGERAL+=1 *----------------// **REGISTRO C165: OPERAÇÕES COM COMBUSTÃVEIS (CÓDIGO 01) **REGISTRO C170: COMPLEMENTO DO DOCUMENTO - ITENS DO DOCUMENTO (CÓDIGOS 01, 1B, 04 e 55) * SELE 16 * ARQNFEPRO->(DBGOTOP()) * DO WHILE ARQNFEPRO->(!EOF()) * C170REG :="C170" * C170COD_ITEM :=ALLTRIM(STR(ARQNFEPRO->CODIGO,14)) * C170NUM_ITEM :=STRZERO(ARQNFEPRO->ITEM,3) * C170DESCR_COMPL :="" * C170QTD :=ALLTRIM(STR(ARQNFEPRO->QUANTIDADE,15,5)) * C170UNID :=ALLTRIM(ARQNFEPRO->UNIDADE) * C170VL_ITEM :=ALLTRIM(STR(ARQNFEPRO->UNITARIO,10,2)) * C170VL_DESC :=ALLTRIM(STR(ARQNFEPRO->DESCONTO,10,2)) * C170IND_MOV :="0" * C170CST_ICMS :=STRZERO(VAL(SUBS(ARQNFEPRO->SITUACAO,1,2)),3) * C170CFOP :=ALLTRIM(CharCNPJ(SUBS(ARQNFEPRO->CFO,1,5))) * C170COD_NAT :=SUBS(ARQNFEPRO->CFO,1,5) * C170VL_BC_ICMS :=ALLTRIM(STR(ARQNFEPRO->BICMS,10,2)) * C170ALIQ_ICMS :=ALLTRIM(STR(ARQNFEPRO->ALIQUOTA,6,2)) * C170VL_ICMS :=ALLTRIM(STR(ARQNFEPRO->VICMS,10,2)) * C170VL_BC_ICMS_ST :="" * C170ALIQ_ST :="" * C170VL_ICMS_ST :="" * C170IND_APUR :="0" * C170COD_ENQ :=STRZERO(VAL(SUBS(ARQNFEPRO->CENQUAD,1,2)),2) * C170CST_IPI :=STRZERO(VAL(SUBS(ARQNFEPRO->SITUAIPI,1,2)),2) * C170VL_BC_IPI :=ALLTRIM(STR(ARQNFEPRO->BASEIPI,10,2)) * C170ALIQ_IPI :=ALLTRIM(STR(ARQNFEPRO->ALIQIPI,6,2)) * C170VL_IPI :=ALLTRIM(STR(ARQNFEPRO->VALORIPI,10,2)) * C170CST_PIS :=STRZERO(VAL(SUBS(ARQNFEPRO->SITUAPIS,1,2)),2) * C170VL_BC_PIS :=ALLTRIM(STR(ARQNFEPRO->BASEPIS,10,2)) * C170ALIQ_PIS :=ALLTRIM(STR(ARQNFEPRO->ALIQPIS,8,4)) * C170QUANT_BC_PIS :=ALLTRIM(STR(ARQNFEPRO->QUANTPIS,10,2)) * C170VL_PIS :=ALLTRIM(STR(ARQNFEPRO->VALORPIS,10,2)) * C170CST_COFINS :=STRZERO(VAL(SUBS(ARQNFEPRO->SITUACOFIN,1,2)),2) * C170VL_BC_COFINS :=ALLTRIM(STR(ARQNFEPRO->BASECOFINS,10,2)) * C170ALIQ_COFINS :=ALLTRIM(STR(ARQNFEPRO->ALIQCOFINS,8,4)) * C170QUANT_BC_COFINS:=ALLTRIM(STR(ARQNFEPRO->QUANTCOFIN,10,2)) * C170VL_COFINS :=ALLTRIM(STR(ARQNFEPRO->VALORCOFIN,10,2)) * C170COD_CTA :="" * * //PARA PASSAR NA VALIDAÇÃO * STORE "" TO C170QTD,C170VL_ITEM,C170VL_DESC,C170VL_BC_ICMS,C170ALIQ,ICMS,C170VL_ICMS,C170VL_BC_IPI,C170ALIQ_IPI,C170VL_IPI,C170VL_BC_PIS,C170ALIQ_PIS_PERC,C170QUANT_BC_PIS * STORE "" TO C170ALIQ_PIS,C170VL_PIS,C170VL_BC_COFINS,C170ALIQ_COFINS_PERC,C170QUANT_BC_COFINS * STORE "" TO C170ALIQ_COFINS,C170VL_COFINS,C170COD_ENQ,C170ALIQ_ICMS * ************* * * *------------------------------------------------------------------------------------------------------------------------ * oTexto:="|"+C170REG +"|"+C170NUM_ITEM +"|"+C170COD_ITEM +"|"+C170DESCR_COMPL +"|"+C170QTD+; * "|"+C170UNID +"|"+C170VL_ITEM +"|"+C170VL_DESC +"|"+C170IND_MOV +"|"+C170CST_ICMS+; * "|"+C170CFOP +"|"+C170COD_NAT +"|"+C170VL_BC_ICMS +"|"+C170ALIQ_ICMS +"|"+C170VL_ICMS+; * "|"+C170VL_BC_ICMS_ST+"|"+C170ALIQ_ST +"|"+C170VL_ICMS_ST +"|"+C170IND_APUR +"|"+C170CST_IPI+; * "|"+C170COD_ENQ +"|"+C170VL_BC_IPI +"|"+C170ALIQ_IPI +"|"+C170VL_IPI +"|"+C170CST_PIS+; * "|"+C170VL_BC_PIS +"|"+C170ALIQ_PIS +"|"+C170QUANT_BC_PIS+"|"+C170ALIQ_PIS +"|"+C170VL_PIS+; * "|"+C170CST_COFINS +"|"+C170VL_BC_COFINS+"|"+C170ALIQ_COFINS +"|"+C170QUANT_BC_COFINS+"|"+C170ALIQ_COFINS+; * "|"+C170VL_COFINS +"|"+C170COD_CTA +"|" * oTxt:Add(oTexto) * TOTALBLOCOC+=1 * TOTALGERAL+=1 * TOTAL170+=1 * *----------------// * ARQNFEPRO->(DBSKIP()) * ENDDO **REGISTRO C171: ARMAZENAMENTO DE COMBUSTIVEIS (código 01, 55) **REGISTRO C172: OPERAÇÕES COM ISSQN (CÓDIGO 01) **REGISTRO C173: OPERAÇÕES COM MEDICAMENTOS (CÓDIGO 01 e 55) **REGISTRO C174: OPERAÇÕES COM ARMAS DE FOGO (CÓDIGO 01). **REGISTRO C175: OPERAÇÕES COM VEÃCULOS NOVOS (CÓDIGO 01 e 55) **REGISTRO C176: RESSARCIMENTO DE ICMS EM OPERAÇÕES COM SUBSTITUIÇÃO TRIBUTÃRIA (CÓDIGO 01, 55). **REGISTRO C177: OPERAÇÕES COM PRODUTOS SUJEITOS A SELO DE CONTROLE IPI. **REGISTRO C178: OPERAÇÕES COM PRODUTOS SUJEITOS À TRIBUTAÇÀO DE IPI POR UNIDADE OU QUANTIDADE DE PRODUTO. **REGISTRO C179: INFORMAÇÕES COMPLEMENTARES ST (CÓDIGO 01). **REGISTRO C190: REGISTRO ANALÃTICO DO DOCUMENTO (CÓDIGO 01, 1B, 04 E 55). SELE 17 SELE 16 DBSETORDER(1) ARQNFEPRO->(DBGOTOP()) C190VL_BC_ICMS :=0.00 ; ARQNFEPRO->(dbEval({||C190VL_BC_ICMS:=C190VL_BC_ICMS+ARQNFEPRO->BICMS})) C190VL_ICMS :=0.00 ; ARQNFEPRO->(dbEval({||C190VL_ICMS :=C190VL_ICMS+ARQNFEPRO->VICMS})) C190VL_IPI :=0.00 ; ARQNFEPRO->(dbEval({||C190VL_IPI :=C190VL_IPI+ARQNFEPRO->VALORIPI})) C190REG :="C190" C190CST_ICMS :=STRZERO(VAL(SUBS(ARQNFEPRO->SITUACAO,1,2)),3) ARQNFEPRO->(DBGOTOP()) C190CFOP :=ALLTRIM(CharCNPJ(SUBS(ARQNFEPRO->CFO,1,5))) C190ALIQ_ICMS :=ALLTRIM(STR(ARQNFEPRO->ALIQUOTA,6,2)) C190VL_OPR :=STRTRAN(ALLTRIM(STR(ARQNFE->VALORTOTAL,10,2)),".",",") C190VL_RED_BC :=STRTRAN(ALLTRIM(STR(ARQNFE->VALORTOTAL-C190VL_BC_ICMS,10,2)),".",",") C190VL_BC_ICMS :=STRTRAN(ALLTRIM(STR(C190VL_BC_ICMS,10,2)),".",",") C190VL_ICMS :=STRTRAN(ALLTRIM(STR(C190VL_ICMS,10,2)),".",",") C190VL_BC_ICMS_ST :="0,00" C190VL_ICMS_ST :="0,00" C190VL_IPI :=STRTRAN(ALLTRIM(STR(C190VL_IPI,10,2)),".",",") C190COD_OBS :="" //PARA PASSAR NA VALIDAÇÃO STORE "" TO C190ALIQ_ICMS //,C190VL_BC_ICMS,C190VL_ICMS,C190VL_RED_BC,C190VL_IPI,C190ALIQ_ICMS //,C190VL_OPR *------------------------------------------------------------------------------------------------------------------------ oTexto:="|"+C190REG +"|"+C190CST_ICMS +"|"+C190CFOP +"|"+C190ALIQ_ICMS +"|"+C190VL_OPR+; "|"+C190VL_BC_ICMS+"|"+C190VL_ICMS +"|"+C190VL_BC_ICMS_ST+"|"+C190VL_ICMS_ST+"|"+C190VL_RED_BC+; "|"+C190VL_IPI +"|"+C190COD_OBS +"|" oTxt:Add(oTexto) TOTALBLOCOC+=1 TOTALGERAL+=1 TOTAL190+=1 *----------------// **REGISTRO C195: OBSERVAÇOES DO LANÇAMENTO FISCAL (CÓDIGO 01, 1B E 55) **REGISTRO C197: OUTRAS OBRIGAÇÕES TRIBUTÃRIAS, AJUSTES E INFORMAÇÕES DE VALORES PROVENIENTES DE DOCUMENTO FISCAL. **REGISTRO C300: RESUMO DIÃRIO DAS NOTAS FISCAIS DE VENDA A CONSUMIDOR (CÓDIGO 02) **REGISTRO C310: DOCUMENTOS CANCELADOS DE NOTAS FISCAIS DE VENDA A CONSUMIDOR (CÓDIGO 02). **REGISTRO C320: REGISTRO ANALÃTICO DO RESUMO DIÃRIO DAS NOTAS FISCAIS DE VENDA A CONSUMIDOR (CÓDIGO 02). **REGISTRO C321: ITENS DO RESUMO DIÃRIO DOS DOCUMENTOS (CÓDIGO 02). **REGISTRO C350: NOTA FISCAL DE VENDA A CONSUMIDOR (CÓDIGO 02) **REGISTRO C370: ITENS DO DOCUMENTO (CÓDIGO 02) **REGISTRO C390: REGISTRO ANALÃTICO DAS NOTAS FISCAIS DE VENDA A CONSUMIDOR (CÓDIGO 02) **REGISTRO C400: EQUIPAMENTO ECF (CÓDIGO 02 e 2D). **REGISTRO C405: REDUÇÃO Z (CÓDIGO 02 e 2D) **REGISTRO C410: PIS E COFINS TOTALIZADOS NO DIA (CÓDIGO 02 e 2D). **REGISTRO C420: REGISTRO DOS TOTALIZADORES PARCIAIS DA REDUÇÃO Z (COD 02 e 2D). **REGISTRO C425: RESUMO DE ITENS DO MOVIMENTO DIÃRIO (CÓDIGO 02 e 2D). **REGISTRO C460: DOCUMENTO FISCAL EMITIDO POR ECF (CÓDIGO 02 e 2D). **REGISTRO C470: ITENS DO DOCUMENTO FISCAL EMITIDO POR ECF (CÓDIGO 02 e 2D) **REGISTRO C490: REGISTRO ANALÃTICO DO MOVIMENTO DIÃRIO (CÓDIGO 02 e 2D). **REGISTRO C495: RESUMO MENSAL DE ITENS DO ECF POR ESTABELECIMENTO (CÓDIGO 02 e 2D). **REGISTRO C500: NOTA FISCAL/CONTA DE ENERGIA ELÉTRICA (CÓDIGO 06), NOTA FISCAL/CONTA DE FORNECIMENTO D'ÃGUA CANALIZADA (CÓDIGO 29) E NOTA FISCAL CONSUMO FORNECIMENTO DE GÃS (CÓDIGO 28). **REGISTRO C510: ITENS DO DOCUMENTO NOTA FISCAL/CONTA ENERGIA ELÉTRICA (CÓDIGO 06), NOTA FISCAL/CONTA DE FORNECIMENTO D'ÃGUA CANALIZADA (CÓDIGO 29) E NOTA FISCAL/CONTA DE FORNECIMENTO DE GÃS (CÓDIGO 28). **REGISTRO C590: REGISTRO ANALÃTICO DO DOCUMENTO - NOTA FISCAL/CONTA DE ENERGIA ELÉTRICA (CÓDIGO 06), NOTA FISCAL/CONTA DE FORNECIMENTO D'ÃGUA CANALIZADA (CÓDIGO 29) E NOTA FISCAL CONSUMO FORNECIMENTO DE GÃS (CÓDIGO 28). **REGISTRO C600: CONSOLIDAÇÃO DIÃRIA DE NOTAS FISCAIS/CONTAS DE ENERGIA ELÉTRICA (CÓDIGO 06), NOTA FISCAL/CONTA DE FORNECIMENTO D'ÃGUA CANALIZADA (CÓDIGO 29) E NOTA FISCAL/CONTA DE FORNECIMENTO DE GÃS (CÓDIGO 28) (EMPRESAS NÃO OBRIGADAS AO CONVÊNIO ICMS 115/03). **REGISTRO C601: DOCUMENTOS CANCELADOS - CONSOLIDAÇÃO DIÃRIA DE NOTAS FISCAIS/CONTAS DE ENERGIA ELÉTRICA (CÓDIGO 06), NOTA FISCAL/CONTA DE FORNECIMENTO D'ÃGUA CANALIZADA (CÓDIGO 29) E NOTA FISCAL/CONTA DE FORNECIMENTO DE GÃS (CÓDIGO 28) **REGISTRO C610: ITENS DO DOCUMENTO CONSOLIDADO (CÓDIGO 06), NOTA FISCAL/CONTA DE FORNECIMENTO D'ÃGUA CANALIZADA (CÓDIGO 29) E NOTA FISCAL/CONTA DE FORNECIMENTO DE GÃS (CÓDIGO 28) (EMPRESAS NÃO OBRIGADAS AO CONVÊNIO ICMS 115/03). **REGISTRO C690: REGISTRO ANALÃTICO DOS DOCUMENTOS (NOTAS FISCAIS/CONTAS DE ENERGIA ELÉTRICA (CÓDIGO 06), NOTA FISCAL/CONTA DE FORNECIMENTO D’ÃGUA CANALIZADA (CÓDIGO 29) E NOTA FISCAL/CONTA DE FORNECIMENTO DE GÃS (CÓDIGO 28) **REGISTRO C700: CONSOLIDAÇÃO DOS DOCUMENTOS NF/CONTA ENERGIA ELÉTRICA (CÓD 06), EMITIDAS EM VIA ÚNICA (EMPRESAS OBRIGADAS À ENTREGA DO ARQUIVO PREVISTO NO CONVÊNIO ICMS 115/03) E NOTA FISCAL/CONTA DE FORNECIMENTO DE GÃS CANALIZADO (CÓDIGO 28) **REGISTRO C790: REGISTRO ANALÃTICO DOS DOCUMENTOS (CÓDIGOS 06 e 28). **REGISTRO C791: REGISTRO DE INFORMAÇÕES DE ST POR UF (COD 06) **REGISTRO C800: CUPOM FISCAL ELETRÔNICO (CÓDIGO 59) **REGISTRO C850: REGISTRO ANALÃTICO DO CF-E (CODIGO 59) **REGISTRO C860: IDENTIFICAÇÃO DO EQUIPAMENTO SAT-CF-E **REGISTRO C890: RESUMO DIÃRIO DO CF-E (CÓDIGO 59) POR EQUIPAMENTO SATCF-E ARQNFE->(DBSKIP()) ENDDO **REGISTRO C990: ENCERRAMENTO DO BLOCO C *------------------------------------------------------------------------------------------------------------------------ oTexto:="|"+"C990"+"|"+ALLTRIM(STR(TOTALBLOCOC,4))+"|" oTxt:Add(oTexto) TOTALGERAL+=1 *----------------// **BLOCO D: DOCUMENTOS FISCAIS II - SERVIÇOS (ICMS). /*Bloco de registros dos dados relativos à emissão ou ao recebimento de documentos fiscais que acobertam as prestações de serviços de comunicação, transporte intermunicipal e interestadual. */ **REGISTRO D001: ABERTURA DO BLOCO D *------------------------------------------------------------------------------------------------------------------------ oTexto:="|"+"D001"+"|1|" //1-SEM DADOS INFORMADOS oTxt:Add(oTexto) TOTALGERAL+=1 *----------------// **REGISTRO D100: NOTA FISCAL DE SERVIÇO DE TRANSPORTE (CÓDIGO 07) E CONHECIMENTOS DE TRANSPORTE RODOVIÃRIO DE CARGAS (CÓDIGO 08), CONHECIMENTOS DE TRANSPORTE DE CARGAS AVULSO (CÓDIGO 8B), AQUAVIÃRIO DE CARGAS (CÓDIGO 09), AÉREO (CÓDIGO 10), FERROVIÃRIO DE CARGAS (CÓDIGO 11) E MULTIMODAL DE CARGAS (CÓDIGO 26), NOTA FISCAL DE TRANSPORTE FERROVIÃRIO DE CARGA ( CÓDIGO 27) E CONHECIMENTO DE TRANSPORTE ELETRÔNICO – CT-e (CÓDIGO 57). **REGISTRO D120: COMPLEMENTO DA NOTA FISCAL DE SERVIÇOS DE TRANSPORTE (CÓDIGO 07). **REGISTRO D130: COMPLEMENTO DO CONHECIMENTO RODOVIÃRIO DE CARGAS (CÓDIGO 08) E DO CONHECIMENTO RODOVIÃRIO DE CARGAS AVULSO (CÓDIGO 8B). **REGISTRO D140: COMPLEMENTO DO CONHECIMENTO AQUAVIÃRIO DE CARGAS (CÓDIGO 09). **REGISTRO D150: COMPLEMENTO DO CONHECIMENTO AÉREO (CÓDIGO 10). **REGISTRO D160: CARGA TRANSPORTADA (CÓDIGO 08, 8B, 09, 10, 11, 26 e 27) **REGISTRO D161: LOCAL DA COLETA E ENTREGA (CÓDIGO 08, 8B, 09, 10, 11 e 26). **REGISTRO D170: COMPLEMENTO DO CONHECIMENTO MULTIMODAL DE CARGAS (CÓDIGO 26). **REGISTRO D180: MODAIS (CÓDIGO 26) **REGISTRO D190: REGISTRO ANALÃTICO DOS DOCUMENTOS (CÓDIGO 07, 08, 8B, 09, 10, 11, 26, 27 e 57). **REGISTRO D195: OBSERVAÇOES DO LANÇAMENTO FISCAL **REGISTRO D197: OUTRAS OBRIGAÇÕES TRIBUTÃRIAS, AJUSTES E INFORMAÇÕES DE VALORES PROVENIENTES DE DOCUMENTO FISCAL. **REGISTRO D300: REGISTRO ANALÃTICO DOS BILHETES CONSOLIDADOS DE PASSAGEM RODOVIÃRIO (CÓDIGO 13), DE PASSAGEM AQUAVIÃRIO (CÓDIGO 14), DE PASSAGEM E NOTA DE BAGAGEM (CÓDIGO 15) E DE PASSAGEM FERROVIÃRIO (CÓDIGO 16). **REGISTRO D301: DOCUMENTOS CANCELADOS DOS BILHETES DE PASSAGEM RODOVIÃRIO (CÓDIGO 13), DE PASSAGEM AQUAVIÃRIO (CÓDIGO 14), DE PASSAGEM E NOTA DE BAGAGEM (CÓDIGO 15) E DE PASSAGEM FERROVIÃRIO (CÓDIGO 16). **REGISTRO D310: COMPLEMENTO DOS BILHETES (CÓDIGO 13, 14, 15 E 16). **REGISTRO D350: EQUIPAMENTO ECF (CÓDIGOS 2E, 13, 14, 15 e 16) **REGISTRO D355: REDUÇÃO Z (CÓDIGOS 2E, 13, 14, 15 e 16). **REGISTRO D360: PIS E COFINS TOTALIZADOS NO DIA (CÓDIGOS 2E, 13, 14, 15 e 16). **REGISTRO D365: REGISTRO DOS TOTALIZADORES PARCIAIS DA REDUÇÃO Z (CÓDIGOS 2E, 13, 14, 15 e 16). **REGISTRO D370: COMPLEMENTO DOS DOCUMENTOS INFORMADOS (CÓDIGOS 13, 14, 15 e 16 e 2E) **REGISTRO D390: REGISTRO ANALÃTICO DO MOVIMENTO DIÃRIO (CÓDIGOS 13, 14, 15, 16 E 2E). **REGISTRO D400: RESUMO DE MOVIMENTO DIÃRIO - RMD (CÓDIGO 18). **REGISTRO D410: DOCUMENTOS INFORMADOS (CÓDIGOS 13, 14, 15 E 16). **REGISTRO D411: DOCUMENTOS CANCELADOS DOS DOCUMENTOS INFORMADOS (CÓDIGO 13, 14, 15 e 16). **REGISTRO D420: COMPLEMENTO DOS DOCUMENTOS INFORMADOS (CÓDIGO 13, 14, 15 e 16). **REGISTRO D500: NOTA FISCAL DE SERVIÇO DE COMUNICAÇÃO (CÓDIGO 21) E NOTA FISCAL DE SERVIÇO DE TELECOMUNICAÇÃO (CÓDIGO 22) **REGISTRO D510: ITENS DO DOCUMENTO – NOTA FISCAL DE SERVIÇO DE COMUNICAÇÃO (CÓDIGO 21) E SERVIÇO DE TELECOMUNICAÇÃO (CÓDIGO 22). **REGISTRO D530: TERMINAL FATURADO. **REGISTRO D590: REGISTRO ANALÃTICO DO DOCUMENTO (CÓDIGO 21 E 22) **REGISTRO D600: CONSOLIDAÇÃO DA PRESTAÇÃO DE SERVIÇOS - NOTAS DE SERVIÇO DE COMUNICAÇÃO (CÓDIGO 21) E DE SERVIÇO DE TELECOMUNICAÇÃO (CÓDIGO 22). **REGISTRO D610: ITENS DO DOCUMENTO CONSOLIDADO (CÓDIGO 21 E 22) **REGISTRO D690: REGISTRO ANALÃTICO DOS DOCUMENTOS (CÓDIGOS 21 e 22). **REGISTRO D695: CONSOLIDAÇÃO DA PRESTAÇÃO DE SERVIÇOS - NOTAS DE SERVIÇO DE COMUNICAÇÃO (CÓDIGO 21) E DE SERVIÇO DE TELECOMUNICAÇÃO (CÓDIGO 22) (EMPRESAS OBRIGADAS À ENTREGA DOS ARQUIVOS PREVISTOS NO CONVÊNIO ICMS 115/03). **REGISTRO D696: REGISTRO ANALÃTICO DOS DOCUMENTOS (CÓDIGO 21 E 22) **REGISTRO D697: REGISTRO DE INFORMAÇÕES DE OUTRAS UFs, RELATIVAMENTE AOS SERVIÇOS “NÃO-MEDIDOS†DE TELEVISÃO POR ASSINATURA VIA SATÉLITE. **REGISTRO D990: ENCERRAMENTO DO BLOCO D. *------------------------------------------------------------------------------------------------------------------------ oTexto:="|"+"D990"+"|2|" oTxt:Add(oTexto) TOTALGERAL+=1 *----------------// **BLOCO E: APURAÇÃO DO ICMS E DO IPI TOTALBLOCOE:=1 *------------------------------------------------------------------------------------------------------------------------ oTexto:="|"+"E001"+"|0|" //1BLOCO SEM DADOS INFORMADOS oTxt:Add(oTexto) TOTALBLOCOE+=1 TOTALGERAL+=1 *----------------// **REGISTRO E100: PERÃODO DA APURAÇÃO DO ICMS. E100REG :="E100" E100DT_INI :=SUBS(DTOC(XDT),1,2)+SUBS(DTOC(XDT),4,2)+SUBS(DTOC(XDT),7,4) E100DT_FIN :=SUBS(DTOC(XDT2),1,2)+SUBS(DTOC(XDT2),4,2)+SUBS(DTOC(XDT2),7,4) *------------------------------------------------------------------------------------------------------------------------ oTexto:="|"+E100REG+"|"+E100DT_INI+"|"+E100DT_FIN+"|" oTxt:Add(oTexto) TOTALBLOCOE+=1 TOTALGERAL+=1 *----------------// **REGISTRO E110: APURAÇÃO DO ICMS – OPERAÇÕES PRÓPRIAS. E110REG :="E110" E110VL_TOT_DEB :=STRTRAN(ALLTRIM(STR(VL_TOT_DEB,10,2)),".",",") E110VL_AJ_DEBITOS :=STRTRAN(ALLTRIM(STR(VL_AJ_DEBITOS,10,2)),".",",") E110VL_TOT_AJ_DEBITOS :=STRTRAN(ALLTRIM(STR(VL_TOT_AJ_DEBITOS,10,2)),".",",") E110VL_ESTORNOS_CRED :=STRTRAN(ALLTRIM(STR(VL_ESTORNOS_CRED,10,2)),".",",") E110VL_TOT_CREDITOS :=STRTRAN(ALLTRIM(STR(VL_TOT_CREDITOS,10,2)),".",",") E110VL_AJ_CREDITOS :=STRTRAN(ALLTRIM(STR(VL_AJ_CREDITOS,10,2)),".",",") E110VL_TOT_AJ_CREDITOS :=STRTRAN(ALLTRIM(STR(VL_TOT_AJ_CREDITOS,10,2)),".",",") E110VL_ESTORNOS_DEB :=STRTRAN(ALLTRIM(STR(VL_ESTORNOS_DEB,10,2)),".",",") E110VL_SLD_CREDOR_ANT :=STRTRAN(ALLTRIM(STR(VL_SLD_CREDOR_ANT,10,2)),".",",") E110VL_SLD_APURADO :=STRTRAN(ALLTRIM(STR(VL_SLD_APURADO,10,2)),".",",") E110VL_TOT_DED :=STRTRAN(ALLTRIM(STR(VL_TOT_DED,10,2)),".",",") E110VL_ICMS_RECOLHER :=STRTRAN(ALLTRIM(STR(VL_ICMS_RECOLHER,10,2)),".",",") E110VL_SLD_CREDOR_TRANSPORTAR :=STRTRAN(ALLTRIM(STR(VL_SLD_CREDOR_TRANSPORTAR,10,2)),".",",") E110DEB_ESP :=STRTRAN(ALLTRIM(STR(DEB_ESP,10,2)),".",",") *------------------------------------------------------------------------------------------------------------------------ oTexto:="|"+E110REG+"|"+E110VL_TOT_DEB+"|"+E110VL_AJ_DEBITOS+"|"+E110VL_TOT_AJ_DEBITOS+"|"+E110VL_ESTORNOS_CRED+"|"+E110VL_TOT_CREDITOS+"|"+E110VL_AJ_CREDITOS+"|"+E110VL_TOT_AJ_CREDITOS+"|"+E110VL_ESTORNOS_DEB+"|"+E110VL_SLD_CREDOR_ANT+"|"+E110VL_SLD_APURADO+"|"+E110VL_TOT_DED+"|"+E110VL_ICMS_RECOLHER+"|"+E110VL_SLD_CREDOR_TRANSPORTAR+"|"+E110DEB_ESP+"|" oTxt:Add(oTexto) TOTALBLOCOE+=1 TOTALGERAL+=1 *----------------// **REGISTRO E111: AJUSTE/BENEFÃCIO/INCENTIVO DA APURAÇÃO DO ICMS **REGISTRO E112: INFORMAÇÕES ADICIONAIS DOS AJUSTES DA APURAÇÃO DO ICMS. **REGISTRO E113: INFORMAÇÕES ADICIONAIS DOS AJUSTES DA APURAÇÃO DO ICMS – IDENTIFICAÇÃO DOS DOCUMENTOS FISCAIS. **REGISTRO E115: INFORMAÇÕES ADICIONAIS DA APURAÇÃO – VALORES DECLARATÓRIOS. **REGISTRO E116: OBRIGAÇÕES DO ICMS RECOLHIDO OU A RECOLHER – OPERAÇÕES PRÓPRIAS. E116REG :="E116" E116COD_OR :="000" E116VL_OR :=STRTRAN(ALLTRIM(STR(VL_SLD_APURADO,10,2)),".",",") E116DT_VCTO :="10112012" E116COD_REC :="046-2" E116NUM_PROC :="" E116IND_PROC :="" E116PROC :="" E116TXT_COMPL:="" E116MES_REF :=SUBS(DTOC(XDT),4,2)+SUBS(DTOC(XDT),7,4) *------------------------------------------------------------------------------------------------------------------------ oTexto:="|"+E116REG+"|"+E116COD_OR+"|"+E116VL_OR+"|"+E116DT_VCTO+"|"+E116COD_REC+"|"+E116NUM_PROC+"|"+E116IND_PROC+"|"+E116PROC+"|"+E116TXT_COMPL+"|"+E116MES_REF+"|" oTxt:Add(oTexto) TOTALBLOCOE+=1 TOTALGERAL+=1 *----------------// **REGISTRO E200: PERÃODO DA APURAÇÃO DO ICMS - SUBSTITUIÇÃO TRIBUTÃRIA **REGISTRO E210: APURAÇÃO DO ICMS – SUBSTITUIÇÃO TRIBUTÃRIA. **REGISTRO E220: AJUSTE/BENEFÃCIO/INCENTIVO DA APURAÇÃO DO ICMS SUBSTITUIÇÃO TRIBUTÃRIA. **REGISTRO E230: INFORMAÇÕES ADICIONAIS DOS AJUSTES DA APURAÇÃO DO ICMS SUBSTITUIÇÃO TRIBUTÃRIA. **REGISTRO E240: INFORMAÇÕES ADICIONAIS DOS AJUSTES DA APURAÇÃO DO ICMS SUBSTITUIÇÃO TRIBUTÃRIA – IDENTIFICAÇÃO DOS DOCUMENTOS FISCAIS. **REGISTRO E250: OBRIGAÇÕES DO ICMS RECOLHIDO OU A RECOLHER – SUBSTITUIÇÃO TRIBUTÃRIA **REGISTRO E500: PERÃODO DE APURAÇÃO DO IPI E500REG :="E500" E500IND_APUR:="0" E500DT_INI :=SUBS(DTOC(XDT),1,2)+SUBS(DTOC(XDT),4,2)+SUBS(DTOC(XDT),7,4) E500DT_FIN :=SUBS(DTOC(XDT2),1,2)+SUBS(DTOC(XDT2),4,2)+SUBS(DTOC(XDT2),7,4) *------------------------------------------------------------------------------------------------------------------------ oTexto:="|"+E500REG+"|"+E500IND_APUR+"|"+E500DT_INI+"|"+E500DT_FIN+"|" oTxt:Add(oTexto) TOTALBLOCOE+=1 TOTALGERAL+=1 *----------------// **REGISTRO E510: CONSOLIDAÇÃO DOS VALORES DO IPI **REGISTRO E520: APURAÇÃO DO IPI E520REG :="E520" E520SL_SD_ANT_IPI:="0,00" E520VL_DEB_IPI :="0,00" E520VL_CRED_IPI :="0,00" E520VL_OD_IPI :="0,00" E520VL_OC_IPI :="0,00" E520VL_SC_IPI :="0,00" E520VL_SD_IPI :="0,00" *------------------------------------------------------------------------------------------------------------------------ oTexto:="|"+E520REG+"|"+E520SL_SD_ANT_IPI+"|"+E520VL_DEB_IPI+"|"+E520VL_CRED_IPI+"|"+E520VL_OD_IPI+"|"+E520VL_OC_IPI+"|"+E520VL_SC_IPI+"|"+E520VL_SD_IPI+"|" oTxt:Add(oTexto) TOTALBLOCOE+=1 TOTALGERAL+=1 *----------------// **REGISTRO E530: AJUSTES DA APURAÇÃO DO IPI. **REGISTRO E990: ENCERRAMENTO DO BLOCO E *------------------------------------------------------------------------------------------------------------------------ oTexto:="|"+"E990"+"|"+ALLTRIM(STR(TOTALBLOCOE,4))+"|" oTxt:Add(oTexto) TOTALGERAL+=1 *----------------// **BLOCO G – CONTROLE DO CRÉDITO DE ICMS DO ATIVO PERMANENTE CIAP TOTALBLOCOG:=1 **REGISTRO G001: ABERTURA DO BLOCO G G001reg:="G001" G001ind_mov:="1" //bloco sem dados informados *------------------------------------------------------------------------------------------------------------------------ oTexto="|"+G001reg+"|"+G001ind_mov+"|" oTxt:Add(oTexto) TOTALGERAL+=1 *----------------// **REGISTRO G110: ICMS – ATIVO PERMANENTE – CIAP **REGISTRO G125: MOVIMENTAÇÃO DE BEM OU COMPONENTE DO ATIVO IMOBILIZADO **REGISTRO G126: OUTROS CRÉDITOS CIAP **REGISTRO G130: IDENTIFICAÇÃO DO DOCUMENTO FISCAL **REGISTRO G140: IDENTIFICAÇÃO DO ITEM DO DOCUMENTO FISCAL **REGISTRO G990: ENCERRAMENTO DO BLOCO G *------------------------------------------------------------------------------------------------------------------------ oTexto:="|G990|2|" oTxt:Add(oTexto) TOTALGERAL+=1 *----------------// **BLOCO H: INVENTÃRIO FÃSICO **REGISTRO H001: ABERTURA DO BLOCO H H001reg:="H001" H001ind_mov:="1" //bloco sem dados informados *------------------------------------------------------------------------------------------------------------------------ oTexto="|"+H001reg+"|"+H001ind_mov+"|" oTxt:Add(oTexto) TOTALGERAL+=1 *----------------// **REGISTRO H005: TOTAIS DO INVENTÃRIO **REGISTRO H010: INVENTÃRIO. **REGISTRO H020: Informação complementar do Inventário. **REGISTRO H990: ENCERRAMENTO DO BLOCO H. *------------------------------------------------------------------------------------------------------------------------ oTexto:="|H990|2|" oTxt:Add(oTexto) TOTALGERAL+=1 *----------------// **BLOCO 1: OUTRAS INFORMAÇÕES BLOCO1reg:="1001" BLOCO1ind_mov:="0" //bloco COM dados informados *------------------------------------------------------------------------------------------------------------------------ oTexto="|"+BLOCO1reg+"|"+BLOCO1ind_mov+"|" oTxt:Add(oTexto) TOTALGERAL+=1 *----------------// **REGISTRO 1010: OBRIGATORIEDADE DE REGISTROS DO BLOCO 1 R1010REG:="1010" STORE "N" TO R1010IND_EXP,R1010IND_CCRF,R1010IND_COMB,R1010IND_USINA,R1010IND_VA,R1010IND_VA,R1010IND_EE,R1010IND_CART,R1010IND_FORM,R1010IND_AER *------------------------------------------------------------------------------------------------------------------------ oTexto="|"+R1010REG +"|"+R1010IND_EXP +"|"+R1010IND_CCRF+"|"+R1010IND_COMB+"|"+R1010IND_USINA+"|"+R1010IND_VA+; "|"+R1010IND_EE+"|"+R1010IND_CART+"|"+R1010IND_FORM+"|"+R1010IND_AER +"|" oTxt:Add(oTexto) TOTALGERAL+=1 *----------------// **REGISTRO 1100: REGISTRO DE INFORMAÇÕES SOBRE EXPORTAÇÃO. **REGISTRO 1105: DOCUMENTOS FISCAIS DE EXPORTAÇÃO. **REGISTRO- 1110: OPERAÇÕES DE EXPORTAÇÃO INDIRETA - MERCADORIAS DE TERCEIROS. **REGISTRO 1200: CONTROLE DE CRÉDITOS FISCAIS - ICMS. **REGISTRO 1210: UTILIZAÇÃO DE CRÉDITOS FISCAIS – ICMS **REGISTRO 1300: MOVIMENTAÇÃO DIÃRIA DE COMBUSTÃVEIS **REGISTRO 1310: MOVIMENTAÇÃO DIÃRIA DE COMBUSTÃVEIS POR TANQUE **REGISTRO 1320: VOLUME DE VENDAS **REGISTRO 1350: BOMBAS **REGISTRO 1360: LACRES DA BOMBA **REGISTRO 1370: BICOS DA BOMBA **REGISTRO 1390: CONTROLE DE PRODUÇÃO DE USINA **REGISTRO 1391: PRODUÇÃO DIÃRIA DA USINA **REGISTRO 1400: INFORMAÇÃO SOBRE VALORES AGREGADOS **REGISTRO 1500: NOTA FISCAL/CONTA DE ENERGIA ELÉTRICA (CÓDIGO 06) – OPERAÇÕES INTERESTADUAIS **REGISTRO 1510: ITENS DO DOCUMENTO NOTA FISCAL/CONTA ENERGIA ELÉTRICA (CÓDIGO 06) **REGISTRO 1600: TOTAL DAS OPERAÇÕES COM CARTÃO DE CRÉDITO E/OU DÉBITO **REGISTRO 1700: DOCUMENTOS FISCAIS UTILIZADOS **REGISTRO 1710: DOCUMENTOS FISCAIS CANCELADOS/INUTILIZADOS **REGISTRO 1800: DCTA – DEMONSTRATIVO DE CRÉDITO DO ICMS SOBRE TRANSPORTE AÉREO **REGISTRO 1900: INDICADOR DE SUB-APURAÇÃO DO ICMS **REGISTRO 1910: PERÃODO DA SUB-APURAÇÃO DO ICMS **REGISTRO 1920: SUB-APURAÇÃO DO ICMS **REGISTRO 1921: AJUSTE/BENEFÃCIO/INCENTIVO DA SUB-APURAÇÃO DO ICMS **REGISTRO 1922: INFORMAÇÕES ADICIONAIS DOS AJUSTES DA SUB-APURAÇÃO DO ICMS **REGISTRO 1923: INFORMAÇÕES ADICIONAIS DOS AJUSTES DA SUB-APURAÇÃO DO ICMS – IDENTIFICAÇÃO DOS DOCUMENTOS FISCAIS **REGISTRO 1925: INFORMAÇÕES ADICIONAIS DA SUB-APURAÇÃO – VALORES DECLARATÓRIOS **REGISTRO 1926: OBRIGAÇÕES DO ICMS A RECOLHER – OPERAÇÕES REFERENTES À SUB-APURAÇÃO **REGISTRO 1990: ENCERRAMENTO DO BLOCO 1 *------------------------------------------------------------------------------------------------------------------------ oTexto:="|1990|3|" oTxt:Add(oTexto) TOTALGERAL+=1 *----------------// **BLOCO 9: CONTROLE E ENCERRAMENTO DO ARQUIVO DIGITAL **REGISTRO 9001: ABERTURA DO BLOCO 9 BLOCO9reg:="9001" BLOCO9ind_mov:="0" //bloco com dados informados *------------------------------------------------------------------------------------------------------------------------ oTexto="|"+BLOCO9reg+"|"+BLOCO9ind_mov+"|" oTxt:Add(oTexto) TOTALGERAL+=1 *----------------// **REGISTRO 9900: REGISTROS DO ARQUIVO. *------------------------------------------------------------------------------------------------------------------------ oTexto:="|9900|0000|1|" oTxt:Add(oTexto) TOTALGERAL+=1 oTexto:="|9900|0001|1|" oTxt:Add(oTexto) TOTALGERAL+=1 oTexto:="|9900|0005|1|" oTxt:Add(oTexto) TOTALGERAL+=1 oTexto:="|9900|0100|1|" oTxt:Add(oTexto) TOTALGERAL+=1 oTexto:="|9900|0150|"+ALLTRIM(STR(TOTAL150,4))+"|" oTxt:Add(oTexto) TOTALGERAL+=1 * oTexto:="|9900|0190|"+ALLTRIM(STR(TOTAL0190,4))+"|" * oTxt:Add(oTexto) * TOTALGERAL+=1 * oTexto:="|9900|0200|"+ALLTRIM(STR(TOTAL200,4))+"|" * oTxt:Add(oTexto) * TOTALGERAL+=1 oTexto:="|9900|1001|1|" oTxt:Add(oTexto) TOTALGERAL+=1 oTexto:="|9900|9001|1|" oTxt:Add(oTexto) TOTALGERAL+=1 oTexto:="|9900|9900|31|" oTxt:Add(oTexto) TOTALGERAL+=1 oTexto:="|9900|9990|1|" oTxt:Add(oTexto) TOTALGERAL+=1 oTexto:="|9900|9999|1|" oTxt:Add(oTexto) TOTALGERAL+=1 oTexto:="|9900|0990|1|" oTxt:Add(oTexto) TOTALGERAL+=1 oTexto:="|9900|C001|1|" oTxt:Add(oTexto) TOTALGERAL+=1 oTexto:="|9900|C100|"+ALLTRIM(STR(TOTAL100,4))+"|" oTxt:Add(oTexto) TOTALGERAL+=1 oTexto:="|9900|C170|"+ALLTRIM(STR(TOTAL170,4))+"|" oTxt:Add(oTexto) TOTALGERAL+=1 oTexto:="|9900|C190|"+ALLTRIM(STR(TOTAL190,4))+"|" oTxt:Add(oTexto) TOTALGERAL+=1 oTexto:="|9900|C990|1|" oTxt:Add(oTexto) TOTALGERAL+=1 oTexto:="|9900|D001|1|" oTxt:Add(oTexto) TOTALGERAL+=1 oTexto:="|9900|D990|1|" oTxt:Add(oTexto) TOTALGERAL+=1 oTexto:="|9900|E001|1|" oTxt:Add(oTexto) TOTALGERAL+=1 oTexto:="|9900|E100|1|" oTxt:Add(oTexto) TOTALGERAL+=1 oTexto:="|9900|E110|1|" oTxt:Add(oTexto) TOTALGERAL+=1 oTexto:="|9900|E116|1|" oTxt:Add(oTexto) TOTALGERAL+=1 oTexto:="|9900|E500|1|" oTxt:Add(oTexto) TOTALGERAL+=1 oTexto:="|9900|E520|1|" oTxt:Add(oTexto) TOTALGERAL+=1 oTexto:="|9900|E990|1|" oTxt:Add(oTexto) TOTALGERAL+=1 oTexto:="|9900|G001|1|" oTxt:Add(oTexto) TOTALGERAL+=1 oTexto:="|9900|G990|1|" oTxt:Add(oTexto) TOTALGERAL+=1 oTexto:="|9900|H001|1|" oTxt:Add(oTexto) TOTALGERAL+=1 oTexto:="|9900|H990|1|" oTxt:Add(oTexto) TOTALGERAL+=1 oTexto:="|9900|1990|1|" oTxt:Add(oTexto) TOTALGERAL+=1 oTexto:="|9900|1010|1|" oTxt:Add(oTexto) TOTALGERAL+=1 **REGISTRO 9990: ENCERRAMENTO DO BLOCO 9 oTexto:="|9990|34|" oTxt:Add(oTexto) TOTALGERAL+=1 **REGISTRO 9999: ENCERRAMENTO DO ARQUIVO DIGITAL. *------------------------------------------------------------------------------------------------------------------------ oTexto="|9999|"+ALLTRIM(STR(TOTALGERAL,4))+"|" oTextofin:="" oTxt:Add(oTexto) oTxt:Add(oTextoFin) *----------------// *----------FIM DO ARQUIVO MSGINFO("Arquivo TXT Criado com Sucesso!!!","AVISO DE ALERTA") oTxt:Close() EndIf SELE 18 ORDSCOPE(0,NIL) ORDSCOPE(1,NIL) SELE 19 ORDSCOPE(0,NIL) ORDSCOPE(1,NIL) SELE 16 ORDSCOPE(0,NIL) ORDSCOPE(1,NIL) SELE 20 ORDSCOPE(0,NIL) ORDSCOPE(1,NIL) RETURN(.T.) *******final
  14. Pessoal, preciso gerar o arquivo para lucro presumido em regime de caixa. Alguém aceita negociar?
  15. Bom dia a todos, como o amigo Jackson mostrou. Configuração correta e funcionando. {"@uol.com.br", "smtps.uol.com.br", 465, .t. } Obrigado Alain/Rancharia XHarbour 0.99.71 FWHX 7.04 Workshop 4.5
  16. Ola, sim, testei das duas formas e não deu certo. {"@uol.com.br", "smtp.uol.com.br", 587, .f. },; {"@uol.com.br", "smtp.uol.com.br", 587, .t. },; e também {"@uol.com.br", "smtps.uol.com.br", 587, .f. },; {"@uol.com.br", "smtps.uol.com.br", 587, .t. },; Alain/Rancharia XHarbour 0.99.71 FWHX 7.04 Workshop 4.5 Editado por - boingo on 27/12/2012 15:35:23
  17. Ola amigo, eu ja tinha mudado para 587 e 465, mas sem resultado. O programa avisa que não foi possível enviar nessa parte. ******************************************************************************** Function Envia_Mail(oCfg,cFrom, cTo, cCC, cBCC, cMsg, cSubject) local cToken local lRet := .f. cTo := Destinatarios( cTo ) //--> PARA cCC := Destinatarios( cCC ) //--> COM COPIA cBCC := Destinatarios( cBCC ) //--> COM COPIA OCULTA TRY oMsg := CREATEOBJECT ( "CDO.Message" ) WITH OBJECT oMsg :Configuration = oCfg :From = cFrom :To = cTo :CC = cCC :BCC = cBCC :Subject = cSubject :TextBody = cMsg For x := 1 To Len( aAttach ) if aAttach[x] <> NIL :AddAttachment(AllTrim(aAttach[x])) endif Next :Send() END WITH lRet := .t. CATCH MsgInfo("Não Foi Possível enviar a mensagem. aqui") lRet := .f. END Return lRet id=code>id=code>Alain/Rancharia XHarbour 0.99.71 FWHX 7.04 Workshop 4.5
  18. Pessoal, não estou mais conseguindo enviar email usando a rotina Ricardo de Moura Marques, com o provedor uol. Só estou conseguindo enviar usando o terra. Private aServs := { {"@hotmail.com", "smtp.live.com", 25, .t. },; {"@yahoo.com.br", "smtp.mail.yahoo.com.br", 25, .f. },; {"@gmail.com", "smtp.gmail.com", 465, .t. },; {"@uol.com.br", "smtp.uol.com.br", 25, .f. },; {"@bol.com.br", "smtp.bol.com.br", 25, .f. },; {"@terra.com.br", "smtp.terra.com.br", 25, .f. },; {"@ig.com.br", "smtp.ig.com.br", 465, .t. },; {"@ibest.com.br", "smtp.ibest.com.br", 465, .t. },; {"@itelefonica.com.br","smtp.itelefonica.com.br", 25, .f. },; {"@pop.com.br", "smpt.pop.com.br", 25, .f. } } id=code>id=code>Tem alguma mudança na configuração. Obrigado Alain/Rancharia XHarbour 0.99.71 FWHX 7.04 Workshop 4.5
  19. Pessoal, não estou mais conseguindo enviar email usando a rotina Ricardo de Moura Marques, com o provedor uol. Só estou conseguindo enviar usando o terra. Private aServs := { {"@hotmail.com", "smtp.live.com", 25, .t. },; {"@yahoo.com.br", "smtp.mail.yahoo.com.br", 25, .f. },; {"@gmail.com", "smtp.gmail.com", 465, .t. },; {"@uol.com.br", "smtp.uol.com.br", 25, .f. },; {"@bol.com.br", "smtp.bol.com.br", 25, .f. },; {"@terra.com.br", "smtp.terra.com.br", 25, .f. },; {"@ig.com.br", "smtp.ig.com.br", 465, .t. },; {"@ibest.com.br", "smtp.ibest.com.br", 465, .t. },; {"@itelefonica.com.br","smtp.itelefonica.com.br", 25, .f. },; {"@pop.com.br", "smpt.pop.com.br", 25, .f. } } id=code>id=code>Tem alguma mudança na configuração. Obrigado Alain/Rancharia XHarbour 0.99.71 FWHX 7.04 Workshop 4.5
  20. Pois é, fiz o teste agora e só conta reorganizando o arquivo. Testei com ordKeyCount() WTOT:=0.00 ; ARQNFECP->(dbEval({||WTOT :=WTOT+1})) e Reccount(). E agora, qual outra opção? Alain/Rancharia XHarbour 0.99.71 FWHX 7.04 Workshop 4.5
  21. Obrigado amigos, ficou assim: SELE 49 ARQNFECP->(DBGOTOP()) TOTALLC:=Reccount() Alain/Rancharia XHarbour 0.99.71 FWHX 7.04 Workshop 4.5
  22. bom dia pessoal, pra colocar um totalizador no rodape eu faço assim: WQUANT:=0.00 ; ARQNFECP->(dbEval({||WQUANT :=WQUANT+ARQNFECP->QUANTIDADE})) id=code>id=code>Agora, como eu faço para colocar o total de registros do arquivo, exemplo: total de notas cadastradas Seria usando recno() ou outro comando? Alain/Rancharia XHarbour 0.99.71 FWHX 7.04 Workshop 4.5
  23. bom dia pessoal, pra colocar um totalizador no rodape eu faço assim: WQUANT:=0.00 ; ARQNFECP->(dbEval({||WQUANT :=WQUANT+ARQNFECP->QUANTIDADE})) id=code>id=code>Agora, como eu faço para colocar o total de registros do arquivo, exemplo: total de notas cadastradas Seria usando recno() ou outro comando? Alain/Rancharia XHarbour 0.99.71 FWHX 7.04 Workshop 4.5
  24. Eu estava com uma versão diferente. Pode desconsiderar esse tópico. Alain/Rancharia XHarbour 0.99.71 FWHX 7.04 Workshop 4.5
  25. Eu comecei a usar o sbutton transparente sem bordas. Acontece que quando clico no botão ele aparece o tracejado, depois do comando feito o tracejado continua até que eu clique nele novamente. Ja tentei refrescar o btn, mas não adiantou. Alguem teria a solução para isso? REDEFINE SBUTTON OBTN[1] ID 4 FILE "IMAGE\NOVO.BMP"; ACTION (MsgRun("Manutenção de Funcionário","Aguarde... Carregando Telas de Cadastro",{||MANUTFUN("I")}),VERIFICAARQUIVO(@VAZIO),LIMPAGETFUN(),XSETFOCUS(ONOM),ARQFUN->(DBSETORDER(2)),ARQFUN->(DBGOTOP()),OBRW:REFRESH(),OBRW:GOTOP()); TOOLTIP "Inclui Funcionários" ; NOBOX RECT OF TLOFUN id=code>id=code>Alain/Rancharia XHarbour 0.99.71 FWHX 7.04 Workshop 4.5
×
×
  • Create New...