Código: Selecionar todos
#include "hwgui.ch"
#include "inkeyw.ch"
#include "fileio.ch"
#include "directry.ch"
#define CRLF CHR(13)+CHR(10) // PULO DE LINHA
*----------------------------------------------------------------------------*
* Programa..: Tag.Prg - Versão : XHARBOUR C/HWGUI (AGO/2009) *
* Função....: Importador de Notas Fiscais Eletrônicas *
* Data......: 06/08/2009 *
* Autor.....: Cleber *
*----------------------------------------------------------------------------*
FUNCTION Main
Public oDir := "\"+Curdir()+"\"
PUBLIC cNomLabel, cObjLabel
PUBLIC oFontNegr, oFontMenu, oFontNorm, oFontCalc, oFontNor1
PUBLIC nUltCalc := 0
// CORES
PUBLIC x_LIGHTGREEN := 12507070
PUBLIC x_BLUE := 16711680
PUBLIC x_DARKBLUE := 10027008
PUBLIC x_WHITE := 16777215
PUBLIC x_CYAN := 16776960
PUBLIC x_BLACK := 0
PUBLIC x_RED := 255
PUBLIC x_GREEN := 32768
PUBLIC x_GRAY := 8421504
PUBLIC x_YELLOW := 65535
PRIVATE oMenu00, oSplash, cSenha, oLabelRH, cLabelRH := ""
PRIVATE aVetor1 := { {"NF" ,"C",15, 0} ,;
{"CFOP" ,"C", 6, 0} ,;
{"MENSAGEM" ,"C",70, 0} ,;
{"ARQUIVO" ,"C",15, 0} ,;
{"DTPROC" ,"D", 8, 0} }
// Versão para XHARBOUR
PRIVATE lMaster := .T., lMalaDir := .F., lCompleto := .T. , lExeMono := .F.
PRIVATE Gc_Versao := "JUNHO/2010", Gl_Versao := "Versão 1.11", lSistemaON := .F.
PRIVATE pEmp_tela := " "
PRIVATE Sistema := 1
PRIVATE pSis := "TAG"
PRIVATE pMatriz := "U" && Matriz,Filial,Unica.
PRIVATE pAbrevMat := SPACE(08) && Nome da ultima empresa matriz acessada.
PRIVATE vSistema := "Importador de Notas Fiscais Eletrônicas"
PRIVATE pSystem := "TAG"
PRIVATE pTitulosis := "Importador NF-e"
PRIVATE pEnter := "ENTER"
PRIVATE pBranco := SPACE(80)
PRIVATE pData := DATE()
PRIVATE pDtbr := CTOD(" / / ")
PRIVATE mxmat := 130
PRIVATE vxRelat := "80"
PRIVATE Wf09 := .f.
PRIVATE WgeraFT := ""
PRIVATE EmpresaX := vAbrev := SPACE(08)
PRIVATE PathDbf1 := PathDbf2 := PathNtx1 := PathNtx2 := " "
PRIVATE yTot_Dep := yTot_Set := yTot_Sec := yFol_Dep := yFol_Set := yFol_Sec := " "
PRIVATE vCriaNtxR := vCriaNtxE := "N"
PRIVATE VrDepIr := 0 && Variavel utilizada nos calculos para calc. do dep. ir.
PRIVATE vBaseCx := 0 && Variavel utilizada nos calculos para receber a base acumulada usada na funcao IrU
PRIVATE vIrCx := 0 && Variavel utilizada nos calculos para receber a soma dos ir pago, usada na funcao IrU
PRIVATE Trab := 0 && Dias trabalhados em mes de 30 dias.
PRIVATE TrabP := 0 && Trab/30
PRIVATE RemuFer := 0 && Vide funcao38.
PRIVATE Stk_Vid := ""
PRIVATE Stk_Dbf := ""
PRIVATE AlterouCad := .F.
PRIVATE AlterouTab := .F.
PRIVATE lIntegrado := .F.
PRIVATE lInstala := .F.
PRIVATE SistOpera := "WIN98"
PRIVATE nQtdFiles := 0
PRIVATE nVerDbf1 := 0
PRIVATE nVerDbf2 := 0
PRIVATE nAliqFgts := 0.08 // Aliquota generica do Fgts (depende da empresa)
PRIVATE cEmpresa2 := SPACE(08)
PRIVATE Gl_View := "N"
PRIVATE AlterouMoe := .F.
PRIVATE Colorido := .F.
PRIVATE CPadrao := 0
*----------------------------------------------------------------------------*
* Variaveis publicas de impressao *
*----------------------------------------------------------------------------*
PRIVATE Gl_Impr := 1 // 1 := Padrao Epson 10:=Laser 20:=Deskjet
PRIVATE Gl_Device := 1 // 1:=Impressora 2:=Video 3:=Arquivo
PRIVATE Gl_Txt := "" // Nome do arquivo
PRIVATE Gl_Larg := 132 // Largura do relatorio
PRIVATE Gl_Compr := .T. // .T. := Comprimido, .F. := Normal
PRIVATE Gl_ChkImp := .T. // Checa impressora
PRIVATE Gl_Imprimiu := .F. // .T. := Imprimiu, .F. := Nao Imprimiu
PRIVATE Gl_Corpo := 10 // Pitch da impressao atual
PRIVATE Gl_LinPol := 6 // Qtde de linhas por polegada
PRIVATE Gl_LinPag := 66 // Qtde de linhas por pagina
PRIVATE Gl_LinQue := 59 // Quebra de folha ( 66 - 4 - 3 = 59 )
PRIVATE Gl_Fonte := "COURIER"
PRIVATE Gl_Estilo := "NORMAL"
PRIVATE Gl_Traco := "-"
PRIVATE Gx_Printer := 0
*----------------------------------------------------------------------------*
* Inicializa picture *
*----------------------------------------------------------------------------*
PRIVATE vPic_cep := "@R 99999-XXX"
PRIVATE vPic_cgc := "@R 99.999.999/9999-99"
PRIVATE vPic_cpf := "@R 999.999.999-99"
PRIVATE Colorido := .F.
PRIVATE CPadrao := 0
PRIVATE vSubDir := ""
PRIVATE vLSubDir := ""
PRIVATE pGrupo := ""
PRIVATE vxChecImp := ""
PRIVATE pEmpresa := ""
PRIVATE Gx_Prori := ""
PRIVATE lImpUsbOri:= .F.
PRIVATE xCode := 1
PRIVATE DtSys := CTOD("01/01/91")
PRIVATE lnewfor := .F.
****** Simples Paulista - Aliquota e valores de deducao *****
PRIVATE nSimplesA := 2.1526
PRIVATE nSimplesB := 3.1008
PRIVATE nSimpDedA := 275.00
PRIVATE nSimpDedB := 600.00 // 1% da base de calculo do imposto ou limitado a 600.00
**** Data limite ****
PRIVATE vAno := 0, vMes := 0, vAux_Ano := 0, vAux_Mes := 0, Dt_Limite := CTOD(" / / "),;
vMem1 := "", vMem2 := "", pemp_tela:= "", vPic1 := "" , vPic2 := "", VPic3 := "" ,;
vPic4 := "", vPic7 := "", vPic8 := "", vxReceita := "", vxDespesa := ""
PRIVATE lImpUsb := .F.
// Indica se já foi gerado algum processo de impressão via IMPDOS e está pendente seu fechamento
PRIVATE lImpNow := .F.
PRIVATE eMenu := "", oMenuE, oBut1
PRIVATE vMenu := "SOFTLOGIC - "+Gl_Versao, oMenuV
cNomLabel := "cLabelRH"
cObjLabel := "oLabelRH"
REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850
HB_LANGSELECT("PT")
HB_SETCODEPAGE("PT850" )
SET EXCLUSIVE OFF
SET DELE ON
SET EPOCH TO 1930
SET DELETE ON
SET DATE BRIT
SET DELETE ON
SET SCORE OFF
SET CONFIRM ON
*----------------------------------------------------------------------------*
* Compilacao *
*----------------------------------------------------------------------------*
xCompila := 9
lPelicano := .F.
lJsd := .F.
*----------------------------------------------------------------------------*
* Novas versoes para compilar *
*----------------------------------------------------------------------------*
lMaster := .T.
lMalaDir := .F.
lCompleto := .T.
lExeMono := .F.
// Fontes
oFontNegr := HFont():Add( 'Arial',0,-13,700,,,)
oFontNorm := HFont():Add( 'Arial',0,-13,100,,,)
oFontMenu := HFont():Add( 'Arial',0,-23,700,,,)
oFontCalc := HFont():Add( 'Arial',0,-35,700,,,)
oFontNor1 := HFont():Add( 'Courier New',0,-13,100,,,)
**** Guarda o nome do grupo e da empresa para seguranca ****
EmpresaX := SPACE(08)
vAbrev := SPACE(08)
vMem1 := empresa
vMem2 := grupo
pGrupo := grupo
pemp_tela := " "
**** Guarda a picture da conta do plano matriz ****
vPic1 := "@R "
vPic2 := "@R "
**** Picture da conta plano empresa ****
vPic3 := "@R "
vPic4 := "@R "
**** Formato europeu ****
vpic7 := "@E "
vpic8 := "@E "
vxRelat := "80"
cTitle := " "+vSistema
// TELA DO MENU PRINCIPAL
INIT DIALOG oMenu00 CLIPPER NOEXIT ;
TITLE cTitle ;
ICON oIcon ;
AT 0,0 ;
STYLE WS_POPUP+WS_CAPTION+DS_CENTER+WS_SYSMENU ;
SIZE GetDesktopWidth(), GetDesktopHeight() - 50 ;
ON EXIT {|| IIF(Answer( 2, "Deseja sair do programa ?")=1,.T., .F.) }
lSistemaON := .T.
@ 070,050 SAY oLabelR CAPTION "Importação" ;
FONT oFontMenu ;
STYLE SS_NOTIFY+WS_TABSTOP SIZE 219,35 ;
ON INIT {|| oBut1:SETFOCUS() }
// MENU POR BOTÕES
@ 070,080 BUTTON oBut1 CAPTION "&Importação NF-e" STYLE WS_BORDER+SS_NOTIFY ON CLICK {|| msginfo("importação") } SIZE 220,40 //;
// ON INIT {|| oBut1:setfocus(),keyb_event(40),keyb_event(40),keyb_event(38)}
@ 070,120 BUTTON "&Limpeza" STYLE WS_BORDER+SS_NOTIFY ON CLICK {|| msginfo("limpeza") } SIZE 220,40
@ 070,160 BUTTON "&Parâmetros" STYLE WS_BORDER+SS_NOTIFY ON CLICK {|| msginfo("parametros") } SIZE 220,40
@ 070,200 BUTTON "&Escolher Empresa" STYLE WS_BORDER+SS_NOTIFY ON CLICK {|| msginfo("empresa") } SIZE 220,40
// MENU WINDOWS
Desenha_menu('oMenu00')
// TELA SPLASH
//SPLASH oSplash TO "LOGO1" FROM RESOURCE TIME 800
@ 10,GetDesktopHeight() - 120 SAY oMenuE CAPTION eMenu OF oMenu00 COLOR x_DARKBLUE SIZE 500,20
@ GetDesktopWidth()-220,GetDesktopHeight() - 120 SAY oMenuV CAPTION vMenu OF oMenu00 COLOR x_DARKBLUE SIZE 210,20
@ 0,GetDesktopHeight() - 100 SAY oLabelRH CAPTION cLabelRH OF oMenu00 ;
STYLE WS_BORDER ;
COLOR x_BLACK ;
SIZE GetDesktopWidth()-5,20
ACTIVATE DIALOG oMenu00
//FTELA99(PEMPRESA)
CLOSE DATABASES
RETURN nil
STATIC FUNCTION MenuSobre()
RETURN Nil
// MENU PRINCIPAL - CHAMADO PELOS BOTÕES - RECONSTRÓI
FUNCTION Desenha_Menu(Nome_Menu)
MENU OF &Nome_menu
MENUITEM ' Importação NF-e ' ACTION ""
MENUITEM ' Limpeza ' ACTION ""
MENU TITLE ' Help'
MENUITEM 'Manual' ACTION ""
MENUITEM 'Sobre' ACTION ""
ENDMENU
ENDMENU
RETURN .T.