'Nome       : EncIva.std
'Tipo       : LST
'Data       : 2014/12/22
'Versao     : 1.0
'Descricao  : ENC - Mapa de IVA

'==============================================================================
'#VER - Historia de modificacoes
'==============================================================================
'- Versao : 1.0   ____/__/__ --------------------------------------------------
'Versao base


'==============================================================================
#DEF - Definicao global do documento
'==============================================================================
Caracteres invalidos             [CarInv]=#
Subtotalizadores                 [SbtNiv]=3
##


'==============================================================================
#ESP - Campos especificos
'==============================================================================
'Especifico 1                      [EspOp1]=Opcao 1
'Especifico 2                      [EspOp2]=Opcao 2
'Limites a listar                  [EspLim]=?

Zoom para preview                [PrvZoom]=1.5
Opcoes para impressora WIN      [PrWinOpc]=[ORI=P]
##


'==============================================================================
#SQL - Comandos SQL
'==============================================================================
Base de dados           [BD]=EmpFic$("EMP","Cemp,Emp_Dat.mdb")
'Base de dados           [BD]=EmpFic$("EMP","Enc,Enc.mdb")
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=EncIva
Nome                       [DocNom]=TXT_MapIva,Mapa de IVA

'formato
Saida/Impressora           [DocPrt]=
Linhas por pagina          [DocLpg]=50
Colunas por linha          [DocCol]=132
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
Especifico do documento    [DocEsp]=

'funcoes de listagem
Base para documento         [FxDOC]=MapIva
Listar cabecalho            [FxCAB]=MapIva_Cab
Listar linhas               [FxLIN]=MapIva_Lin,0; ResIni,2; ResVal,0; ResFim,0; +
                                   +              GrpIni,0; GrpFim,0
Listar fim                  [FxFIM]=MapIva_Fim
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=EncIva
Nome                       [DocNom]=TXT_MapIvaR,Mapa de IVA (Resumo)

'formato
Saida/Impressora           [DocPrt]=
Linhas por pagina          [DocLpg]=50
Colunas por linha          [DocCol]=132
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
Especifico do documento    [DocEsp]=
Modo resumo                [DocEsp]=OPC_RES=S


'funcoes de listagem
Base para documento         [FxDOC]=MapIva
Listar cabecalho            [FxCAB]=MapIva_Cab
Listar linhas               [FxLIN]=MapIva_Lin,0; ResIni,0; ResVal,0; ResFim,0; +
                                   +              GrpIni,0; GrpFim,0
Listar fim                  [FxFIM]=MapIva_Fim
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=EncIva
Nome                       [DocNom]=GRA_MapIva_G,Mapa de IVA

'formato
Saida/Impressora           [DocPrt]=PAG_W
Linhas por pagina          [DocLpg]=50
Colunas por linha          [DocCol]=132
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
Especifico do documento    [DocEsp]=

'funcoes de listagem
Base para documento         [FxDOC]=MapIvaG
Listar cabecalho            [FxCAB]=MapIvaG_Cab
Listar linhas               [FxLIN]=MapIvaG_Lin,0; ResIni,2; ResVal,0; ResFim,0; +
                                   +               GrpIni,1; GrpFim,0
Listar fim                  [FxFIM]=MapIvaG_Fim
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=EncIva
Nome                       [DocNom]=GRA_MapIvaR_G,Mapa de IVA (Resumo)

'formato
Saida/Impressora           [DocPrt]=PAG_W
Linhas por pagina          [DocLpg]=50
Colunas por linha          [DocCol]=132
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
Modo resumo                [DocEsp]=OPC_RES=S


'funcoes de listagem
Base para documento         [FxDOC]=MapIvaG
Listar cabecalho            [FxCAB]=MapIvaG_Cab
Listar linhas               [FxLIN]=MapIvaG_Lin,0; ResIni,1; ResVal,0; ResFim,0; +
                                   +               GrpIni,0; GrpFim,0
Listar fim                  [FxFIM]=MapIvaG_Fim
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=EncIva
Nome                       [DocNom]=XLS_MapIva,Mapa de IVA (XLS)

'formato
Saida/Impressora           [DocPrt]=NULA
Linhas por pagina          [DocLpg]=50
Colunas por linha          [DocCol]=80
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
Especifico do documento    [DocEsp]=

'funcoes de listagem
Base para documento         [FxDOC]=XlsMapIva
Listar cabecalho            [FxCAB]=XlsMapIva_Cab
Listar linhas               [FxLIN]=XlsMapIva_Lin,0; ResIni,0; ResVal,0; ResFim,0; +
                                   +                 GrpIni,0; GrpFim,0
Listar fim                  [FxFIM]=XlsMapIva_Fim

Matriz auxiliar            [DocMat]=EncIva.xls
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=EncIva
Nome                       [DocNom]=XLS_MapIvaR,Mapa de IVA/Resumo (XLS)

'formato
Saida/Impressora           [DocPrt]=NULA
Linhas por pagina          [DocLpg]=50
Colunas por linha          [DocCol]=80
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
Modo resumo                [DocEsp]=OPC_RES=S

'funcoes de listagem
Base para documento         [FxDOC]=XlsMapIva
Listar cabecalho            [FxCAB]=XlsMapIva_Cab
Listar linhas               [FxLIN]=XlsMapIva_Lin,0; ResIni,0; ResVal,0; ResFim,0; +
                                   +                 GrpIni,0; GrpFim,0
Listar fim                  [FxFIM]=XlsMapIva_Fim

Matriz auxiliar            [DocMat]=EncIva.xls
##



'==============================================================================
#VAR - Variaveis
'==============================================================================
'- Formatar ------------------------------------------------------------------
Tipo      = MemTxt$(1)                                      'titulo
vaDocTdo  = Enc_Mst_Tdoc$                                   'tipo de documento

Pag       = Doc_CntPag                                      'numero da pagina
Nlp       = Doc_CntLin                                      'numero da linha
Cnt       = FrmVal$(CntAux(1),21,4)                         'contador auxiliar

vcDtExt   = FrmVal$(Sig_DtHoje,45,0)                        'data em extenso
vcDt      = FrmDt$("",Sig_DtHoje)                           'data
vcHr      = DataTms$("H")                                   'hora
vcUtz     = SigUtz$("SIG")                                  'utilizador do SIG
vcUtzWin  = SigUtz$("WIN")                                  'utilizador do windows
vcUtzMaq  = SigUtz$("MAQ")                                  'utilizador do SIG - maquina


'dados da empresa 
vaEmpIde  = vuEmpIde$                                       'empresa
vaEmpMor  = vuEmpMor$                                       'morada
vaEmpLoc  = vuEmpLoc$                                       'localidade
vaEmpCpo  = vuEmpCpo$                                       'codigo postal
vaEmpTel  = vuEmpTel$                                       'telefone
vaEmpFax  = vuEmpFax$                                       'fax
vaEmpNif  = vuEmpNif$                                       'nif
vaEmpNju  = vuEmpNju$                                       'natureza juridica
vaEmpReg  = vuEmpReg$                                       'numero de registo
vaEmpCps  = vuEmpCps$                                       'capital social

'titulos - texto
Tit080    = TxTit$("TT=10CPI, LD, PT=40C",Memtxt$(1))       'titulo -  80 colunas
Tit132    = TxTit$("TT=16CPI, LD, PT=66C",Memtxt$(1))       'titulo - 132 colunas

'- dados a listar -------------------------------------------------------------
'conta
vaCtCod   = Enc_Mst_Ctent$                                  'codigo da conta
vaCtNom   = VarAlt$("ENC_MST","Cta_Mst_Nome$")              'nome
vaCtNomR  = left$(VarAlt$("ENC_MST","Cta_Mst_Nome$"),28)    'nome (reduzido)


'documento
vaDocTdo  = Enc_Mst_Tdoc$                                   'tipo de documento
vaDocNdo  = Enc_Mst_Ndoc$                                   'numero de documento
vaDocIde  = FrmNdo$("",Enc_Mst_Tdoc$,Enc_Mst_Ndoc$)         'identificacaco do documento
vaDocDtr  = FrmDt$("",Enc_Mst_Dtl)                          'data de registo
vaDocDes  = TdoNome$(1,Enc_Mst_Tdoc$)                       'identificacaco do documento

'valores
PM        = FrmVal$(Enc_Mst_Pais,21,2.0)+"/"+FrmVal$(Enc_Mst_Moeda,21,1.0)
PV        = FrmVal$(Enc_Mst_Ptv,21,1.0)+"/"+FrmVal$(Enc_Mst_Vend,21,2.0)

'documento
Ndoc      = FrmNdo$("",Enc_Mst_Tdoc$,Enc_Mst_Ndoc$)
LNdoc     = len(Ndoc)

CmvNdoc   = Enc_Mst_Tdoc$+"  "+FrmNdo$("04",Enc_Mst_Tdoc$,Enc_Mst_Ndoc$)
P         = FrmVal$(Enc_Mst_Ptv,21,2.0)
DocDescr  = Enc_Mst_Descr$
PaisNome  = PaisNome$

'vendedor
'- (61) --------------------------------------------------->'Comentario
Vd        = FrmVal$(Enc_Mst_Vend,21,2.0)                    'vendedor
V         = FrmVal$(Enc_Mst_Vend,21,2.0)                    'vendedor

'contagem
toNrg     = FrmNum$(9.0,TotCnt("vaDoc",0))                  'numero de registos - total
s1Nrg     = FrmNum$(9.0,TotCnt("vaDoc",1))                  'numero de registos - subtotal 1
s2Nrg     = FrmNum$(9.0,TotCnt("vaDoc",2))                  'numero de registos - subtotal 2

'iliquido
'- (61) --------------------------------------------------->'Comentario
vaIlq     = FrmMoe$("",10,vuIlq)                            'valor
taIlq     = FrmMoe$("",10,vuAcmIlq)                         'total
toIlq     = FrmMoe$("",10,Total(vaIlq))                     'total automatico

'desconto
'- (61) --------------------------------------------------->'Comentario
vaDsc     = FrmMoe$("", 8,vuDsc)                            'valor
taDsc     = FrmMoe$("", 8,vuAcmDsc)                         'total

'liquido
vaLiq     = FrmMoe$("",10,vuLiq)                            'valor
taLiq     = FrmMoe$("",10,vuAcmLiq)                         'total
toLiq     = FrmMoe$("",10,Total(vaLiq))                     'total automatico

'IVA
'- (61) --------------------------------------------------->'Comentario
vaIva     = FrmMoe$("",10,vuValIva)                         'valor de IVA
taIva     = FrmMoe$("",10,vuAcmIva)                         'total
toIva     = FrmMoe$("",14,Total(vaIva))                     'total - automatico
s1Iva     = FrmNum$(10.2,Total("vaIva",0))                  'valor de IVA - subtotal 1
s2Iva     = FrmNum$(10.2,Total("vaIva",0))                  'valor de IVA - subtotal 2

vTip      = VarCom("Iva_Tip")                               'tipo
vCod      = VarCom("Iva_Cod")                               'codigo
Cdi       = FrmNum$(4.0,VarCom("Iva_Cod"))                  'codigo - formato reduzido

vTax      = VarCom("Iva_Tax")                               'taxa
T         = FrmNum$(2.0,VarCom("Iva_Tax"))                  'taxa - formato reduzido

'total do doumento
'- (61) --------------------------------------------------->'Comentario
vaVto    = FrmMoe$("",12,vuVto)                             'valor
taVto    = FrmMoe$("",12,vuAcmVto)                          'total
toVto    = FrmNum$(10.2,Total("vaVto",0))                   'total automatico
s1Vto    = FrmNum$(10.2,Total("vaVto",0))                   'subtotal 1
s2Vto    = FrmNum$(10.2,Total("vaVto",0))                   'subtotal 2

'- diversos -------------------------------------------------------------------
vaTdoCod  = vuTdoCod$                                       'diario - codigo
vaTdoDes  = vuTdoDes$                                       'diario - descricao

##


'==============================================================================
#INC - includes
'==============================================================================
Variaveis  comuns                 =[SIG_Dir.Div],LsComVar.std
##


'==============================================================================
#PGM - Programa/Funcoes
'==============================================================================
'- +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
'- (13) --->'Comentario
'- (25) --------------->'Comentario
'- (28) ------------------>'Comentario
'- (40) ------------------------------>'Comentario
'- (43) --------------------------------->'Comentario
'- (46) ------------------------------------>'Comentario
'- (49) --------------------------------------->'Comentario
'- (52) ------------------------------------------>'Comentario
'- (55) --------------------------------------------->'Comentario
'- (58) ------------------------------------------------>'Comentario
'- (61) --------------------------------------------------->'Comentario
'- (64) ------------------------------------------------------>'Comentario
'- (67) --------------------------------------------------------->'Comentario
'- (70) ------------------------------------------------------------>'Comentario


'------------------------------------------------------------------------------
'- INI - Inicializacao/Ajuste -------------------------------------------------
'------------------------------------------------------------------------------
Sub FxIni 'funcao de inicializacao
Call SigLstIni                                     'inicializar
'- (52) ------------------------------------------>'Comentario

'modo WIN
'PrWIN AJT_F, 56.7,  56.7                   'ajuste para milimetros
'PrWIN AJT_D,-280.0,-280.0                  'deslocamento de ajuste 
'PrWIN ET,  2                               'espessura de traco 
end sub


Sub FxFim 'funcao de finalizacao
PrWIN FON, "REG"                           'limpar registo de fontes
end sub


Sub Lst_AJT 'ajuste
'nada a executar
end sub


'==============================================================================
'- [COM] - Funcoes comuns -----------------------------------------------------
'==============================================================================
Sub ComAcmIni 'inicializar acumuladores
'- (52) ------------------------------------------>'Comentario
vuAcmIlq  = 0                                      'iliquido
vuAcmDsc  = 0                                      'desconto
vuAcmLiq  = 0                                      'liquido
vuAcmIva  = 0                                      'IVA
vuAcmVto  = 0                                      'total
end sub

Sub ComAcmDoc 'acumular totais do documento
'- (52) ------------------------------------------>'Comentario
vuAcmIlq  = vuAcmIlq + vuIlq                       'iliquido
vuAcmDsc  = vuAcmDsc + vuDsc                       'desconto
vuAcmLiq  = vuAcmLiq + vuLiq                       'liquido
vuAcmIva  = vuAcmIva + vuIva                       'IVA
vuAcmVto  = vuAcmVto + vuVto                       'total
end sub


Sub ComDocVar 'variaveis do documento
'- (52) ------------------------------------------>'Comentario
vuIlq     = Ado_Tot_Ilq                            'iliquido
vuDsc     = Ado_Tot_Desco                          'desconto
vuLiq     = Ado_Tot_Liq                            'liquido
vuIva     = Ado_Tot_Iva                            'IVA
vuVto     = Enc_Mst_ValTot                         'total
end sub


Sub ComLinVar 'variaveis para linha
'- (52) ------------------------------------------>'Comentario
vuIvaNum  = VarCom("Iva_Num")                      'numero de taxas
vuIvaIdx  = VarCom("Iva_Idx")                      'indice para taxas

vuIvaTip  = VarCom("Iva_Tip")                      'tipo
vuIvaCod  = VarCom("Iva_Cod")                      'codigo
vuIvaTax  = VarCom("Iva_Tax")                      'taxa

vuValBas  = VarCom("ValBas")                       'valor base
vuValInc  = VarCom("ValInc")                       'valor de incidencia
vuValIva  = VarCom("ValIva")                       'valor de IVA
vuValTot  = VarCom("ValTot")                       'valor total
end sub


'==============================================================================
'- [TXT] - Listar em modo texto -----------------------------------------------
'==============================================================================
'------------------------------------------------------------------------------
'- [MPI] - Mapa de IVA --------------------------------------------------------
'------------------------------------------------------------------------------
Sub MapIva_DocIni 'inicializar documento
call ComAcmIni                                     'inicializar acumuladores
end sub


Sub MapIva_Cab 'cabecalho
call MostraPais
FxDiv LstIde,16CPI,0
?@Tit132                                                                                                                           #
?@DataExt                                              @PaisNome                                                       Folha No: @Pag
?====================================================================================================================================
?|             Dados da Conta               |       Documento       |Zona |     |        Valor      |        IVA       |            |
?|------------------------------------------|-----------------------|-----|     |-------------------|------------------|    Valor   |
?|  Código   |           Nome               |   Numero   |   Data   |P|Moe|PV|Vd| Iliquido | Desco  |Cod |Tx|  Valor   |    Total   |
?====================================================================================================================================
end sub


Sub MapIva_Lin 'linha
call ComLinVar                                     'variaveis para linha

if vuIvaIdx = 1 then                               'primeira linha do documento ?
   call ComDocVar                                  'variaveis do documento (totais)
   call ComAcmDoc                                  'acumular totais do documento

?|@vaCtCod   |@VaCtNom                      |@Ndoc       |@vaDocDtr |@PM  |@P|@V|@vaIlq    |@vaDsc  |@Cdi|@T|@vaIva    |@vaVto      |
end if

if vuIvaIdx > 1 then                               'linha adicional do documento ?
?|           |                              |            |          |     |  |  |          |        |@Cdi|@T|@vaIva    |            |
end if

if vuIvaIdx = 0 then                               'total do documento ?
?|           |                              |            |          |     |  |  |          |        | Total:|@vaIva    |            |
end if
end sub


Sub MapIva_LinResIni 'resumo - inicio
?|           |                              |            |          |     |  |  |          |        |    |  |          |            |
?|----------------------------------------------------------------------------------------------------------------------------------|
?|           | RESUMO DE TAXAS :            |            |          |     |  |  |          |        |    |  |          |            |
?|----------------------------------------------------------------------------------------------------------------------------------|
end sub


Sub MapIva_LinGrpIni 'titulo grupo
vuTdoCod$  = VarCom$("TdoCod")                           'diario - codigo
vuTdoDes$  = VarCom$("TdoDes")                           'diario - descricao

?|           |                              |            |          |     |  |  |          |        |    |  |          |            |
?|----------------------------------------------------------------------------------------------------------------------------------|
?|@vaTdoCod  | @vaTdoDes                    |            |          |     |  |  |          |        |    |  |          |            |
?|----------------------------------------------------------------------------------------------------------------------------------|
end sub


Sub MapIva_LinResVal 'resumo - valor
call ComLinVar                                     'variaveis para linha

?|           |                              |            |          |     |  |  |          |        |@Cdi|@T|@vaIva    |            |
end sub


Sub MapIva_LinResFim 'resumo - fim
'nada a executar
end sub


Sub MapIva_Fim 'fecho
FxDiv LstPer,SP
end sub


'==============================================================================
'- [GRF] - Listagem grafica ---------------------------------------------------
'==============================================================================
'------------------------------------------------------------------------------
'- [COM] - Funcoes comuns -----------------------------------------------------
'------------------------------------------------------------------------------
Sub GrfCom_PosLin 'ajustar posicao de linha
'- (52) ------------------------------------------>'Comentario
InicioLinha=30

linPx = Margem                                     'posicao X
linPy = InicioLinha + Doc_CntLin * 4               'posicao Y

PrWIN AJT_B, linPx, linPy                          'posicao base
end sub


'------------------------------------------------------------------------------
'- [MPI] - Mapa de IVA --------------------------------------------------------
'------------------------------------------------------------------------------
Sub MapIvaG_Cab 'cabecalho
PrWin PAG_PRP                                   'preparar pagina

Titulo$ = "Mapa de IVA"                         'titulo
SigCabNorOpcTit=2                               'opcao para origem do titulo na funcao de cabecalho normal

Margem=2
call SigLstCab

PrWIN AJT_B,  Margem, 16                                 'posicao base
PrWIN COR_T,CorTraco                                     'cor de linhas

Col01 =   0                                              'coluna base
Col02 =  18                                              'coluna 2
Col03 =  54                                              'coluna 3
Col04 =  64                                              'coluna 4
Col05 =  78                                              'coluna 5
col06 =  88                                              'coluna 6
col07 =  94                                              'coluna 7
col08 = 100                                              'coluna 8
col09 = 120                                              'coluna 9
col10 = 140	                                         'coluna 10
col11 = 148                                              'coluna 11
col12 = 152                                              'coluna 12
col13 = 172                                              'coluna 13
col14 = 194                                              'coluna 14	

Lin1 = 10                                                'linha 1
Lin2 = 15                                                'linha 2
Lin3 = 20                                                'linha 3

PrWIN COR_T,  CorTitLst                                  'cor de titulo

'dados da conta
PrWIN FON  ,   8,   1                                    'activar fonte
PrWIN FON, "BOLD+"                                       'activar bold

PrWIN GR_CX,Col01,Lin1,Col03,Lin2,1                      'caixa
PrWIN TX_CTR,Col01,Lin1,Col03,Lin2,"Dados da Conta"      'titulo
PrWIN GR_CX,Col01,Lin2,Col02,Lin3,1             	 'caixa
PrWIN TX_CTR,Col01,Lin2,Col02,Lin3,"Código"              'título
PrWIN GR_CX,Col02,Lin2,Col03,Lin3,1             	 'caixa
PrWIN TX_CTR,Col02,Lin2,Col03,Lin3,"Nome"                'título

'dados do documento
PrWIN GR_CX,Col03,Lin1,Col05,Lin2,1                      'caixa
PrWIN TX_CTR,Col03,Lin1,Col05,Lin2,"Documento"           'titulo
PrWIN GR_CX,Col03,Lin2,Col04,Lin3,1                      'caixa
PrWIN TX_CTR,Col03,Lin2,Col04,Lin3,"Nº"                  'titulo
PrWIN GR_CX,Col04,Lin2,Col05,Lin3,1                      'caixa
PrWIN TX_CTR,Col04,Lin2,Col05,Lin3,"Data"                'titulo

'zona
PrWIN GR_CX,Col05,Lin1,Col06,Lin2,1                      'caixa
PrWIN TX_CTR,Col05,Lin1,Col06,Lin2,"Zona"                'titulo
PrWIN GR_CX,Col05,Lin2,Col06,Lin3,1                      'caixa
PrWIN TX_CTR,Col05,Lin2,Col06,Lin3,"P|M"                 'titulo

'posto de venda/vendedor
PrWIN GR_CX,Col06,Lin1,Col07,Lin3,1                      'caixa
PrWIN TX_CTR,Col06,Lin2,Col07,Lin3,"Pv"                  'titulo
PrWIN GR_CX,Col07,Lin1,Col08,Lin3,1                      'caixa
PrWIN TX_CTR,Col07,Lin2,Col08,Lin3,"Vd"                  'titulo

'valor
PrWIN GR_CX,Col08,Lin1,Col10,Lin2,1                      'caixa
PrWIN TX_CTR,Col08,Lin1,Col10,Lin2,"Valor"               'titulo
PrWIN GR_CX,Col08,Lin2,Col09,Lin3,1                      'caixa
PrWIN TX_CTR,Col08,Lin2,Col09,Lin3,"Ilíquido"            'titulo
PrWIN GR_CX,Col09,Lin2,Col10,Lin3,1                      'caixa
PrWIN TX_CTR,Col09,Lin2,Col10,Lin3,"Desco"               'titulo

'iva
PrWIN GR_CX,Col10,Lin1,Col13,Lin2,1                      'caixa
PrWIN TX_CTR,Col10,Lin1,Col13,Lin2,"IVA"                 'titulo
PrWIN GR_CX,Col10,Lin2,Col11,Lin3,1                      'caixa
PrWIN TX_CTR,Col10,Lin2,Col11,Lin3,"Cod"                 'titulo
PrWIN GR_CX,Col11,Lin2,Col12,Lin3,1                      'caixa
PrWIN TX_CTR,Col11,Lin2,Col12,Lin3,"Tx"                  'titulo
PrWIN GR_CX,Col12,Lin2,Col13,Lin3,1                      'caixa
PrWIN TX_CTR,Col12,Lin2,Col13,Lin3,"Valor"               'titulo

'valor total
PrWIN GR_CX,Col13,Lin1,Col14,Lin3,1                      'caixa
PrWIN TX_CTR,Col13,Lin1,Col14,Lin2,"Valor"               'titulo
PrWIN TX_CTR,Col13,Lin2,Col14,Lin3,"Total"               'titulo

PrWIN FON  ,   8,   1                                    'activar fonte
PrWIN FON, "BOLD-"                                       'desactivar bold
end sub


Sub MapIvaG_Lin 'linha
call ComLinVar                                           'variaveis para linha

InicioEscrita = 30                                       'posicao X
Lin = 5                                                  'linha
call GrfCom_PosLin

LCol1  =   0
Lcol2  =  19
Lcol3  =  51
Lcol4  =  65
Lcol5  =  79
Lcol6  =  89
Lcol7  =  95
Lcol8  = 106
Lcol9  = 128
Lcol10 = 141
Lcol11 = 149
Lcol12 = 158
Lcol13 = 177

PrWIN FON  ,   7,   1                                    'activar fonte

if vuIvaIdx = 1 then                                     'primeira linha do documento ?
   call ComDocVar                                        'variaveis do documento (totais)
   call ComAcmDoc                                        'acumular totais do documento

if len(Enc_Mst_Ctent$) > 12 then
   PrWIN FON  ,   6,   1                                 'activar fonte
   PrWIN TX_NP, LCol1 ,Lin,"N",@vaCtCod                  'conta
   PrWIN FON  ,   7,   1                                 'reactivar fonte original
else
   PrWIN TX_NP, LCol1 ,Lin,"N",@vaCtCod                  'conta
end if


if len(Cta_Mst_Nome$) > 30 then
   PrWIN FON  ,   6,   1                                 'activar fonte
   PrWIN TX_DMX,LCol2 ,Lin,33,@vaCtNom                   'nome
   PrWIN FON  ,   7,   1                                 'reactivar fonte original
else
   PrWIN TX_DMX,LCol2 ,Lin,33,@vaCtNom                   'nome
end if

if @LNdoc > 8 then
   PrWIN FON  ,   6,   1                                 'activar fonte
   PrWIN TX_N,  LCol3 ,Lin,@Ndoc                         'numero documento
   PrWIN FON  ,   7,   1                                 'reactivar fonte original
else
   PrWIN TX_N,  LCol3 ,Lin,@Ndoc                         'numero documento
end if

   PrWIN TX_N,  LCol4 ,Lin,@vaDocDtr                     'data documento
   PrWIN TX_NP, LCol5 ,Lin,"N",@PM                       'pais/moeda
   PrWIN TX_NP, LCol6 ,Lin,"N",@P                        'posto de venda
   PrWIN TX_NP, LCol7 ,Lin,"N",@V                        'vendedor
   PrWIN TX_NP, LCol8 ,Lin,"N",@vaIlq                    'valor iliquido
   PrWIN TX_NP, LCol9 ,Lin,"N",@vaDsc                    'desconto
   PrWIN TX_NP, LCol10,Lin,"N",@Cdi                      'codigo iva
   PrWIN TX_NP, LCol11,Lin,"N",@T                        'taxa
   PrWIN TX_NP, LCol12,Lin,"N",@vaIva                    'valor iva
   PrWIN TX_NP, LCol13,Lin,"N",@vaVto                    'valor total
end if

if vuIvaIdx > 1 then                                     'linhas adicionais ?
   PrWIN TX_NP, LCol10,Lin,"N",@Cdi                      'codigo iva
   PrWIN TX_NP, LCol11,Lin,"N",@T                        'taxa
   PrWIN TX_NP, LCol12,Lin,"N",@vaIva                    'valor iva
end if

if vuIvaIdx = 0 then                                     'total do documento ?
   PrWIN TX_NP, LCol11,Lin,"N","Total:"                  'identificacao do valor
   PrWIN TX_NP, LCol12,Lin,"N",@vaIva                    'valor iva
end if

tmp = CntLin("INC", 1)                                   'contar linha
end sub


Sub MapIvaG_LinResIni 'resumo inicio
call GrfCom_PosLin                                       'posicao base

Lin1 =  0
Col01= 64                                                'coluna

PrWIN FON, "BOLD+"                                       'activar bold
PrWIN TX_CTR,Col01,Lin1,Col01,Lin1,"Resumo de Taxas :"   'titulo
PrWIN FON, "BOLD-"                                       'desactivar bold
end sub


Sub MapIvaG_LinResVal 'resumo - valor
call ComLinVar                                           'variaveis para linha
call GrfCom_PosLin                                       'posicao base

Lin   =  0                                               'linha
Lcol10=141                                               'coluna 10
Lcol11=149                                               'coluna 11
Lcol12=158                                               'coluna 12

PrWIN TX_NP, LCol10,Lin,"N",@Cdi                         'codigo iva
PrWIN TX_NP, LCol11,Lin,"N",@T                           'taxa
PrWIN TX_NP, LCol12,Lin,"N",@vaIva                       'valor iva
tmp = CntLin("INC", 1)                                   'contar linha
end sub


Sub MapIvaG_LinGrpIni 'inicio de grupo (diario)
call GrfCom_PosLin                                       'posicao base

vuTdoCod$  = VarCom$("TdoCod")                           'diario - codigo
vuTdoDes$  = VarCom$("TdoDes")                           'diario - descricao

PrWIN FON, "BOLD+"                                       'activar bold
PrWIN TX_N, 10, 5,@vaTdoCod                              'tipo de documento
PrWIN TX_N, 25, 5,@vaTdoDes                              'nome documento
PrWIN FON, "BOLD-"                                       'desactivar bold

tmp = CntLin("INC", 1)                                   'contar linha
end sub


Sub MapIvaG_LinResFim 'resumo fim
'nada a executar
end sub


Sub MapIvaG_Fim 'fim
call SigLstRod
PRWIN FP
end sub


'==============================================================================
'- [XLS] - Listar para XLS ----------------------------------------------------
'==============================================================================
'------------------------------------------------------------------------------
'- [COM] - Funcoes comuns -----------------------------------------------------
'------------------------------------------------------------------------------
Sub Xls_DocIni 'inicializar documento
call ComAcmIni                                     'inicializar acumuladores

dfi$ = FicEmp$("EMP","Ext","dExcel",cmo$)          'directorio de documentos EXCEL
nfi$ = "RND:EncMpv.xls"                            'nome do ficheiro
cmo$ = SigCmoCur$("MIX")                           'modulo corrente
ficDoc$ = FicTmp$(dfi$, nfi$)                      'ficheiro para documento
res = DirCri("D", dfi$)                            'criar directorio para documento

xlsMatNom$ = DocOpc$("DocMat")                     'nome do ficheiro matriz
xlsMat$    = DocOpc$("DocMat+SBT")                 'endereco do ficheiro matriz

res = FicCop(xlsMat$, ficDoc$)                     'criar ficheiro (copia de matriz)
res = XlsPrp(0)                                    'preparar EXCEL
res = XlsDocLer(ficDoc$)                           'ler ficheiro

'res = XlsDocCri("")                                'criar documento
end sub


Sub Xls_DocFim 'terminar documento
'res = XlsLinEli(xlsLin, 1)                         'eliminar linha - ultima
'res = XlsLinEli(xlsLba, 1)                         'eliminar linha - primeira

res = XlsDocDir$("A", dfi$)                        'activar directorio
res = XlsDocGrv(ficDoc$)                           'gravar ficheiro

'res = XlsPrt(1)                                    'listar worksheet
res = XlsVer(1)                                    'mostrar EXCEL - maximizado
res = XlsLib(0)                                    'libertar EXCEL
end sub


Sub Xls_DocCab 'cabecalho do documento
empNum$ = Emp_Inf_Cod$                             'numero da empresa
empNom$ = Emp_Inf_Nome$                            'nome da empresa
lstTit$ = MemTxt$(1)                               'titulo da listagem
lstTip$ = MemTxt$(2)                               'tipo da listagem
lstDt$  = FrmDt$("EXT", Sig_DtHoje)                'data para listagem

res = XlsIdeLst("Emp_Num", empNum$)                'numero da empresa
res = XlsIdeLst("Emp_Nome", empNom$)               'nome da empresa
res = XlsIdeLst("Lst_Tit", lstTit$)                'titulo da listagem
res = XlsIdeLst("Lst_Tipo", lstTip$)               'tipo da listagem
res = XlsIdeLst("Lst_Data", lstDt$)                'data
end sub


Sub Xls_LinInc 'incrementar linha
xlsLsa = xlsLin                                    'linha de saida
res = XlsLinIns(xlsLin, 1)                         'juntar linha

'seguinte
xlsLin = xlsLin + 1                                'contar linha
end sub


Sub Xls_LinIni 'iniciar linhas
res = XlsIdePsq("PO_BAS")                          'pesquisar posicao base
linBav = XlsIdePsqRes("L")                         'linha da posicao base

xlsLba = linBav                                    'linha base
xlsLin = linBav + 1                                'contador de linhas usadas
end sub


Sub Xls_LinFim 'fim de linhas
res = XlsLinEli(xlsLin, 1)                         'eliminar linha - ultima
res = XlsLinEli(xlsLba, 1)                         'eliminar linha - primeira

res = XlsIdePsq("PO_FIM")                          'pesquisar posicao final
linFim = XlsIdePsqRes("L")                         'linha da posicao final
end sub


'------------------------------------------------------------------------------
'- [MPI] - Mapa de IVA --------------------------------------------------------
'------------------------------------------------------------------------------
Sub XlsMapIva_DocIni 'inicializar documento
call Xls_DocIni                                    'inicializar documento
call XlsMapIva_Prep                                'preparar
call XlsMapIva_Cab                                 'cabecalho	
end sub


Sub XlsMapIva_DocFim 'terminar documento
call Xls_DocFim                                    'terminar/mostrar documento
end sub


Sub XlsMapIva_Cab 'cabecalho	
empNum$ = Emp_Inf_Cod$                             'numero da empresa
empNom$ = Emp_Inf_Nome$                            'nome da empresa
lstTit$ = MemTxt$(1)                               'titulo da listagem
lstTip$ = MemTxt$(2)                               'tipo da listagem
lstDt$  = FrmDt$("EXT", Sig_DtHoje)                'data para listagem

res = XlsIdeLst("Emp_Num", empNum$)                'numero da empresa
res = XlsIdeLst("Emp_Nome", empNom$)               'nome da empresa
res = XlsIdeLst("Lst_Tit", lstTit$)                'titulo da listagem
res = XlsIdeLst("Lst_Tipo", lstTip$)               'tipo da listagem
res = XlsIdeLst("Lst_Data", lstDt$)                'data
end sub


Sub XlsMapIva_Prep 'preparar para listar
res = XlsWks("Valores")                            'activar worksheet
call Xls_DocCab                                    'cabecalho do documento
res = XlsIdeLst("Lst_Tipo", "")                    'anular tipo da listagem
call Xls_LinIni                                    'iniciar linhas

'definicao das colunas
coCtu =  2                                         'conta - codigo
coNom =  3                                         'conta - nome
coDoc =  4                                         'documento
coDtl =  5                                         'data
coZpa =  6                                         'pais
coMoe =  7                                         'moeda
coPtv =  8                                         'posto de venda
coVnd =  9                                         'vendedor
coIlq = 10                                         'iliquido
coDsc = 11                                         'desconto
coCod = 12                                         'IVA - codigo
coTax = 13                                         'IVA - taxa
coInc = 14                                         'IVA - imcidencia
coIva = 15                                         'IVA - valor
coVto = 16                                         'valor do documento
end sub


Sub XlsMapIva_IncLin 'incrementar linha	
call Xls_LinInc                                    'incrementar linha
liUsa =  xlsLsa                                    'linha a usar

zon$= XlsZonNum$("L", liUsa)                       'zona da linha
res = XlsFon(zon$, ",,B-I-")                       'desactivar fonte bold, italico
end sub


Sub XlsMapIva_Lin 'linha de valores
call ComLinVar                                     'variaveis para linha

call XlsMapIva_IncLin                              'incrementar linha	

'valores a listar
vNdo$ = FrmNdo$("", "", Enc_Mst_Ndoc$)             'documento - numero
vDtl$ = FrmDt$("", Enc_Mst_Dtl)                    'data documento
vCtu$ = ENC_MST_CtEnt$                             'conta
vZpa  = ENC_MST_Pais                               'pais
vMoe  = ENC_MST_Moeda                              'moeda
vPtv  = ENC_MST_Ptv                                'posto de venda
vVnd  = ENC_MST_Vend                               'vendedor

vTotDoc = Enc_Mst_ValTot                           'total do documento
vTotIva = Doc_Tot_IVA                              'total do IVA
vTotIse = Doc_Tot_IVAISE                           'total valores isentos
vTotIlq = Ado_Tot_Ilq                              'total de iliquido
vTotDsc = Ado_Tot_Desco                            'total de descontos

'listar
if vuIvaIdx = 1 then                               'primeira linha do documento ?
   call ComDocVar                                  'variaveis do documento (totais)
   call ComAcmDoc                                  'acumular totais do documento

   res = XlsLst(liUsa, coCtu, vCtu$)               'conta - codigo
   res = XlsLst(liUsa, coNom, CTA_MST_Nome$)       'conta - nome
   res = XlsLst(liUsa, coDoc, vNdo$)               'documento
   res = XlsLst(liUsa, coDtl, vDtl$)               'data
   res = XlsLst(liUsa, coZpa, vZpa)                'pais
   res = XlsLst(liUsa, coMoe, vMoe)                'moeda
   res = XlsLst(liUsa, coPtv, vPtv)                'posto de venda
   res = XlsLst(liUsa, coVnd, vVnd)                'vendedor
   res = XlsLst(liUsa, coIlq, vTotIlq)             'iliquido
   res = XlsLst(liUsa, coDsc, vTotDsc)             'desconto
   res = XlsLst(liUsa, coVto, vTotDoc)             'valor do documento

   res = XlsLst(liUsa, coCod, vuIvaCod)            'IVA - codigo
   res = XlsLst(liUsa, coTax, vuIvaTax)            'IVA - taxa
   res = XlsLst(liUsa, coInc, vuValInc)            'IVA - incidencia
   res = XlsLst(liUsa, coIva, vuValIva)            'IVA - valor

'   res = AcmExe("vaVto", vTotDoc)                  'total dos documentos
end if

if vuIvaIdx > 1 then                               'linhas adicionais do documento ?
   res = XlsLst(liUsa, coCod, vuIvaCod)            'IVA - codigo
   res = XlsLst(liUsa, coTax, vuIvaTax)            'IVA - taxa
   res = XlsLst(liUsa, coInc, vuValInc)            'IVA - incidencia
   res = XlsLst(liUsa, coIva, vuValIva)            'IVA - valor
end if

if vuIvaIdx = 0 then                               'total do documento ?
   res = XlsLst(liUsa, coTax, "Total:")            'IVA - identificar tipo de valor
   res = XlsLst(liUsa, coInc, vuValInc)            'IVA - incidencia
   res = XlsLst(liUsa, coIva, vuValIva)            'IVA - valor
end if

'acumular
'res = AcmExe("vaIva", vuValIva)                    'total de IVA
'res = AcmExe("vaVto", vTotDoc)                     'total dos documentos
end sub


Sub XlsMapIva_LinResIni 'resumo - iniciar
call XlsMapIva_IncLin                              'incrementar linha	
call XlsMapIva_IncLin                              'incrementar linha	

vDes$ = "Resumo de Taxas"                          'descricao
res   = XlsLst(liUsa, coNom, vDes$)                'identificar

liRes = liUsa                                      'linha de resumo
end sub


Sub XlsMapIva_LinResFim 'resumo - terminar
'call XlsMapIva_IncLin                              'incrementar linha	

l1 = liRes
l2 = liRes
 
zon$= XlsZon$(l1, coCtu, l2, coVto)                'zona
res = XlsEnvZon(zon$, "T,B", l1, 2)                'envolvente
res = XlsFon(zon$, ",,B+")                         'activar fonte bold
end sub


Sub XlsMapIva_LinResVal 'resumo - linha de valores
call ComLinVar                                     'variaveis para linha

call XlsMapIva_IncLin                              'incrementar linha	

'valores a listar
res = XlsLst(liUsa, coCod, vuIvaCod)               'IVA - codigo
res = XlsLst(liUsa, coTax, vuIvaTax)               'IVA - taxa
res = XlsLst(liUsa, coInc, vuValInc)               'IVA - incidencia
res = XlsLst(liUsa, coIva, vuValIva)               'IVA - valor

'acumular
'res = AcmExe("vaIva", vuValIva)                    'total de IVA
end sub


Sub XlsMapIva_Fim 'terminar
call Xls_LinFim                                    'fim de linhas

'valores a listar
'vtIva    = Total("vaIva",0)                        'total de IVA
'vtDoc    = Total("vaVto",0)                        'total dos documentos

vtIlq    = vuAcmIlq                                'iliquido
vtDsc    = vuAcmDsc                                'desconto
vtLiq    = vuAcmLiq                                'liquido
vtIva    = vuAcmIva                                'total de IVA
vtDoc    = vuAcmVto                                'total dos documentos

'listar
liUsa = linFim                                     'linha a usar
res = XlsLst(liUsa, coIlq, vtIlq)                  'iliquido
res = XlsLst(liUsa, coDsc, vtDsc)                  'desconto
res = XlsLst(liUsa, coIva, vtIva)                  'total de IVA
res = XlsLst(liUsa, coInc, vtLiq)                  'liquido
res = XlsLst(liUsa, coVto, vtDoc)                  'total dos documentos

'mostrar
res = XlsWksAct("A", 1)                            'activar worksheet
end sub


Sub XlsMapIva_LinGrpIni 'inicio de grupo (diario)
vuTdoCod$  = VarCom$("TdoCod")                     'diario - codigo
vuTdoDes$  = VarCom$("TdoDes")                     'diario - descricao

call XlsMapIva_IncLin                              'incrementar linha	

'valores a listar
res = XlsLst(liUsa, coCtu, vuTdoCod$)              'diario - codigo
res = XlsLst(liUsa, coNom, vuTdoDes$)              'diario - descricao

l1 = liUsa                                         'linha inicial
l2 = liUsa                                         'linha final

zon$= XlsZon$(l1, coCtu, l2, coVto)                'zona
res = XlsFon(zon$, ",,B+")                         'activar fonte bold
end sub


Sub XlsMapIva_LinGrpFim 'fim de grupo (diario)
call XlsMapIva_IncLin                              'incrementar linha	
end sub
##


'==============================================================================
#INC - Funcoes comuns
'==============================================================================
Funcoes comuns                         =[SIG_Dir.Div],LsComPgm.std
Funcoes comuns XLS                     =[SIG_LST_DIR.XLS],XlsCom_Pgm.inc
##


