'Nome       : EncDocCfg_Pgm.inc
'Tipo       : INC
'Data       : 2017/03/23
'Versao     : 2.7
'Descricao  : Inclusao de funcoes para cabecalho documentos ENC

'==============================================================================
'#VER - Historia de modificacoes
'==============================================================================
'- Versao : 2.7   2017/03/23 -------------------------------------------------
'colocar opcoes para CPD e CPF

'- Versao : 2.7   2017/02/22 -------------------------------------------------
'escrever informacao obrigatoria quando a via é quadruplicada

'- Versao : 2.6   2017/02/01 -------------------------------------------------
'correccao incremento posicao base X (incrementava o valor por cada pagina)

'- Versao : 2.5   2016/12/22 -------------------------------------------------
'escrever texto a direita na vertical

'- Versao : 2.4   2016/10/26 -------------------------------------------------
'retirar numero do cheque do cabecalho do recibo

'- Versao : 2.3   2016/10/04 -------------------------------------------------
'correccao IBAN (se campo da empresa estiver preenchido usa esse, caso contrario usa o que estiver nas variaveis do documento
'colocar IBAN nos documentos cujo tipo SAF-T seja FR (factura recibo)

'- Versao : 2.2   2016/05/16 -------------------------------------------------
'variaveis para largura e altura dos logotipos 1 e 2
'passa a usar IBAN da empresa (campo diversos). 
'tem que se preencher a variavel "Usa Iban da Empresa" com 1

'- Versao : 2.1   2016/04/15 -------------------------------------------------
'impressao do IBAN quando usa papel timbrado
'correccao das moradas na nota de debito

'- Versao : 2.0   2016/03/29 -------------------------------------------------
'correccao da impressao do contacto

'- Versao : 1.9   2016/03/22 -------------------------------------------------
'distico sobre resolucao de conflitos

'- Versao : 1.8   2016/02/18 -------------------------------------------------
'papel timbrado com logotipo

'- Versao : 1.7   2016/02/10 -------------------------------------------------
'morada de destino igual a morada de facturacao

'- Versao : 1.6   2016/01/15 --------------------------------------------------
'variavel para moeda alternativa para totais

'- Versao : 1.5   2015/12/10 --------------------------------------------------
'variavel para fonte texto das caixas do cabecalho e rodape

'- Versao : 1.4   2015/12/03 --------------------------------------------------
'variavel para deslocamento vertical do titulo da empresa

'- Versao : 1.3   2015/10/27 --------------------------------------------------
'escrever distico 'nao serve de factura' so no fim ou no principio

'- Versao : 1.2   2015/07/14 --------------------------------------------------
'total de quantidades, nome suplementar

'- Versao : 1.1   2015/06/25 --------------------------------------------------
'impressao do IBAN/NIB só na factura

'- Versao : 1.0d  2015/04/30 --------------------------------------------------
'impressao do codigo de barras

'- Versao : 1.0c  2015/03/23 --------------------------------------------------
'impressao do contacto do cliente 

'- Versao : 1.0b  2015/01/26 --------------------------------------------------
'usa MB para facturas e avisos de cobrança

'- Versao : 1.0a  2015/01/14 --------------------------------------------------
'impressao da data documento manual nas facturas por CPM

'- Versao : 1.0   2014/12/18 --------------------------------------------------
'Versao base


'==============================================================================
'INF - Informacaoes
'==============================================================================
'Incluir este ficheiro a seguir a zona PGM
'
'Exemplo:
'Funcoes para configurar CAB   =[SIG_DOC_DIR.ENC],EncDocCfg_Pgm.inc'


'==============================================================================
#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


'==============================================================================
'#CFG - Preparar opcoes da tabela de variaveis do documento
'==============================================================================
Sub PrpVar_Com 'preparar variaveis comuns
tabVar$ = "EmpTbDocVar"                                            'tabela de dados

'logotipo
CfgDocTipLogo$   = TabAdiCon$("V", tabVar$, "CFG_DOC_TIP.LOGO")    'tipo logotipo
if CfgDocTipLogo$="" then                                          'usa logotipo ?
   CfgDocTipLogo$="2"                                              'usa logotipo neutro
end if

CfgDocNomLogo$   = TabAdiCon$("V", tabVar$, "CFG_DOC_NOM.LOGO")    'nome logotipo
CfgDocLogCxe$    = TabAdiCon$("V", tabVar$, "CFG_DOC_LOG.CXE")     'usa caixa envolvente no logotipo
CfgDocLogDsX$    = TabAdiCon$("V", tabVar$, "CFG_DOC_LOG.DSX")     'deslocamento horizontal logotipo
CfgDocNomLog2$   = TabAdiCon$("V", tabVar$, "CFG_DOC_NOM.LOGO2")   'nome logotipo 2
CfgDocLarLog$    = TabAdiCon$("V", tabVar$, "CFG_DOC_LAR.LOGO")    'largura logotipo
CfgDocAltLog$    = TabAdiCon$("V", tabVar$, "CFG_DOC_ALT.LOGO")    'altura logotipo
CfgDocLarLog2$   = TabAdiCon$("V", tabVar$, "CFG_DOC_LAR.LOGO2")   'largura logotipo 2
CfgDocAltLog2$   = TabAdiCon$("V", tabVar$, "CFG_DOC_ALT.LOGO2")   'altura logotipo 2

'cabecalho documento
CfgDocUsaCxCab$  = TabAdiCon$("V", tabVar$, "CFG_DOC_CX.INF.CAB")  'usa caixa informacao cabecalho
CfgDocUsaInCab$  = TabAdiCon$("V", tabVar$, "CFG_DOC_TX.INF.CAB")  'texto para caixa informacao cabecalho
CfgDocUsaCorCab$ = TabAdiCon$("V", tabVar$, "CFG_DOC_USA.COR")     'usa cor nas caixas de cabecalho
CfgDocUsaNib$    = TabAdiCon$("V", tabVar$, "CFG_DOC_USA.NIB")     'usa nib da empresa
CfgDocUsaNibFon$ = TabAdiCon$("V", tabVar$, "CFG_DOC_USA.NIB.FON") 'usa fonte para nib da empresa
CfgDocUsaIban$   = TabAdiCon$("V", tabVar$, "CFG_DOC_USA.IBAN")    'usa Iban da empresa
CfgDocUsaIbanFon$= TabAdiCon$("V", tabVar$, "CFG_DOC_USA.IBAN.FON")'usa fonte para Iban da empresa
CfgDocLabCampo$  = TabAdiCon$("V", tabVar$, "CFG_DOC_LAB.CMP")     'label para campo novo
CfgDocEncTitEmp$ = TabAdiCon$("V", tabVar$, "CFG_DOC_ENC.TIT.EMP") 'posicao corte titulo empresa ENC
CfgDocEncTitFon$ = TabAdiCon$("V", tabVar$, "CFG_DOC_ENC.TIT.FON") 'fonte titulo empresa ENC
CfgDocEncMovTit$ = TabAdiCon$("V", tabVar$, "CFG_DOC_ENC.TIT.MOV") 'deslocamento horizontal titulo empresa ENC
CfgDocEncMovTitV$= TabAdiCon$("V", tabVar$, "CFG_DOC_ENC.TIT.MOVV")'deslocamento vertical titulo empresa ENC
CfgDocCtInfo$    = TabAdiCon$("V", tabVar$, "CFG_DOC_USA.CON.CT")  'usa contacto cliente ?

'fim/rodape do documento
CfgDocUsaCxRod$  = TabAdiCon$("V", tabVar$, "CFG_DOC_CX.INF.ROD")  'usa caixa informacao rodape
CfgDocUsaInRod$  = TabAdiCon$("V", tabVar$, "CFG_DOC_TX.INF.ROD")  'texto para caixa informacao rodape
CfgDocMotIseFim$ = TabAdiCon$("V", tabVar$, "CFG_DOC_MOT.ISE.FIM") 'motivo isencao no fim ?
CfgDocTipFonTcx$ = TabAdiCon$("V", tabVar$, "CFG_DOC_FON.TXT.CX")  'fonte para textos caixas cab/rodape

'texto à direita
CfgDocUsaInDir$  = TabAdiCon$("V", tabVar$, "CFG_DOC_TX.INF.DIR")  'texto para caixa informacao rodape

'diversos
CfgDocPapTimb$   = TabAdiCon$("V", tabVar$, "CFG_DOC_PAP.TIM")     'usa papel timbrado
CfgDocUsaLinVert$= TabAdiCon$("V", tabVar$, "CFG_DOC_LIN.VERT")    'usa separadores verticais no corpo do documento
CfgDocUsaLinInf$ = TabAdiCon$("V", tabVar$, "CFG_DOC_INF.FIM.LIN") 'usa informacao para fim de linhas
CfgDocCorLetra$  = TabAdiCon$("V", tabVar$, "CFG_DOC_USA.COR.LT")  'usa cor nas letras
CfgDocFacGt$     = TabAdiCon$("V", tabVar$, "CFG_DOC_FAC.GT")      'usa factura como guia de transporte
CfgDocPosBas$    = TabAdiCon$("V", tabVar$, "CFG_DOC_POS.BAS")     'posicao base X
CfgDocUsaIvaPrc$ = TabAdiCon$("V", tabVar$, "CFG_DOC_VER.PRC.IVA") 'mostra iva no preco ?
CfgDocUsaMb$     = TabAdiCon$("V", tabVar$, "CFG_DOC_USA.MB")      'usa MB (so para facturas e Avisos Cobranca)
CfgDocImpCbar$   = TabAdiCon$("V", tabVar$, "CFG_DOC_IMP.CBAR")    'imprime codigo de barras
CfgDocUsaTotQ$   = TabAdiCon$("V", tabVar$, "CFG_DOC_USA.TOTQ")    'usa totais de quantidades
CfgDocUsaNSuplA$ = TabAdiCon$("V", tabVar$, "CFG_DOC_USA.NSUPL")   'imprime nome suplementar artigo
CfgDocMoeCtv$    = TabAdiCon$("V", tabVar$, "CFG_DOC_MOE.CTVL")    'usa moeda contravalor

'POS
CfgDocPosCtTit$  = TabAdiCon$("V", tabVar$, "CFG_DOC_POS.TIT.EMP") 'posicao corte titulo talao POS
CfgDocLrgTikPos$ = TabAdiCon$("V", tabVar$, "CFG_DOC_POS.LRG.TIK") 'largura do impresso POS
CfgDocPosTitFon$ = TabAdiCon$("V", tabVar$, "CFG_DOC_POS.TIT.FON") 'fonte titulo empresa POS

'RAL
CfgDocRalUsa$    = TabAdiCon$("V", tabVar$, "CFG_DOC_RAL.USA")     'usa distico RAL
CfgDocRalLoc$    = TabAdiCon$("V", tabVar$, "CFG_DOC_RAL.NOM")     'local do RAL
CfgDocRalCont$   = TabAdiCon$("V", tabVar$, "CFG_DOC_RAL.CON")     'contactos
CfgDocRalFon$    = TabAdiCon$("V", tabVar$, "CFG_DOC_RAL.FON")     'fonte para texto

'processar opcoes de configuracao
call LogoPrp                                                       'preparar logo

'azerar variaveis
UsaPapTim    = 0
UsaCxInf     = 0
UsaMotIseFim = 0
LstSepVert   = 0
UsaInfLin    = 0
UsaCxInfC    = 0
UsaCorCab    = 0
UsaNib       = 0
UsaIban      = 0
UsaFacGt     = 0
UsaPrcGt     = 0
UsaLabCmp    = 0
UsaPosBas    = 0
UsaLogoCxe   = 0
UsaLogo2     = 0
UsaContactoCt= 0
ImpCbar      = 0
UsaTqu       = 0
UsaNSupl     = 0
UsaRal       = 0
UsaAltLog    = 0
UsaLarLog    = 0
UsaAltLog2   = 0
UsaLarLog2   = 0

UsaCorLetra  = val(CfgDocCorLetra$)                                'activar cor da letra
UsaMoeCtv    = val(CfgDocMoeCtv$)                                  'moeda para contravalor

'LOGOTIPOS
if CfgDocNomLog2$ <> "" then                                       'usa logo 2?
   UsaLogo2 = 1                                                    'activar variavel
else
   UsaLogo2 = 0                                                    'activar variavel
end if


if CfgDocLogCxe$ = "1" then                                        'usa caixa envolvente no logotipo ?
   UsaLogoCxe = 1                                                  'activar variavel 
else
   UsaLogoCxe = 0                                                  'activar variavel 
end if


if CfgDocLogDsx$ <> "" then                                        'deslocamento horizontal no logotipo ?
   UsaDesLog = 1                                                   'activar variavel
   ValDesLog = val(CfgDocLogDsx$)                                  'valor posicao base 
else
   UsaDesLog = 0                                                   'activar variavel
end if

if CfgDocLarLog$ <> "" then                                        'largura do logotipo
   UsaLarLog = 1                                                   'activar variavel
   ValLarLog = val(CfgDocLarLog$)                                  'valor posicao base 
else
   UsaLarLog = 0                                                   'activar variavel
end if


if CfgDocAltLog$ <> "" then                                        'altura do logotipo
   UsaAltLog = 1                                                   'activar variavel
   ValAltLog = val(CfgDocAltLog$)                                  'valor posicao base 
else
   UsaAltLog = 0                                                   'activar variavel
end if

if CfgDocLarLog2$ <> "" then                                       'largura do logotipo 2
   UsaLarLog2 = 1                                                  'activar variavel
   ValLarLog2 = val(CfgDocLarLog2$)                                'valor posicao base 
else
   UsaLarLog2 = 0                                                   'activar variavel
end if

if CfgDocAltLog2$ <> "" then                                       'altura do logotipo 2
   UsaAltLog2 = 1                                                  'activar variavel
   ValAltLog2 = val(CfgDocAltLog2$)                                'valor posicao base 
else
   UsaAltLog = 0                                                   'activar variavel
end if



'FUNCOES PARA USAR NO CABECALHO ======================================================================================
if CfgDocUsaCxCab$ = "1" then                                      'usa caixa informacao cabecalho ?
   UsaCxInfC = 1                                                   'activar variavel 
   InfoCxCab$ = CfgDocUsaInCab$                                    'informacao para caixa
else
   UsaCxInfC = 0                                                   'activar variavel 
end if

if CfgDocUsaCorCab$ = "1" then                                     'usa cor nos cabecalhos ?
   UsaCorCab = 1                                                   'activar variavel
else
   UsaCorCab = 0                                                   'activar variavel
end if

if CfgDocUsaNib$ <> "" then                                        'usa nib ?
   UsaNib = 1                                                      'activar variavel
else
   UsaNib = 0                                                      'activar variavel
end if

if CfgDocUsaNibFon$ <> "" then                                     'fonte NIB
   UsaNibFon = 1                                                   'activar variavel
   ValNibFon = val(CfgDocUsaNibFon$)                               'valor fonte NIB
else
   UsaNibFon = 0                                                   'activar variavel
end if

if CfgDocUsaIban$ <> "" then                                       'usa iban ?
   if Emp_inf_Obs$ <> "" then                                      'empresa
      CfgDocUsaIban$ = Emp_Inf_Obs$
   else
      UsaIban = 1                                                  'activar variavel
      UsaNib  = 0                                                  'desactivar nib
   end if
else
   UsaIban = 0                                                     'activar variavel
end if

if CfgDocUsaIbanFon$ <> "" then                                    'fonte iban
   UsaIbanFon = 1                                                  'activar variavel
   ValIbanFon = val(CfgDocUsaIbanFon$)                             'valor fonte iban
else
   UsaIbanFon = 0                                                  'activar variavel
end if

if CfgDocLabCampo$ = "" then                                       'label para novo campo
   UsaLabCmp = 0                                                   'activar variavel
else
   UsaLabCmp = 1                                                   'activar variavel
end if


if CfgDocEncTitEmp$ <> "" then                                     'posicao corte titulo empresa ENC
   UsaEncTit = 1                                                   'activar variavel
   ValEncTit = val(CfgDocEncTitEmp$)                               'valor posicao corte empresa ENC
else
   UsaEncTit = 0                                                   'activar variavel
end if

if CfgDocEncTitFon$ <> "" then                                     'fonte titulo empresa ENC
   UsaEncTfo = 1                                                   'activar variavel
   ValEncTfo = val(CfgDocEncTitFon$)                               'valor fonte empresa ENC
else
   UsaEncTfo = 0                                                   'activar variavel
end if

if CfgDocEncMovTit$ <> "" then                                     'deslocamento horizontal titulo empresa ENC
   UsaEncTitDes = 1                                                'activar variavel
   ValEncTitDes = val(CfgDocEncMovTit$)                            'valor deslocamento empresa ENC
else
   UsaEncTitDes = 0                                                'activar variavel
end if

if CfgDocEncMovTitV$ <> "" then                                    'deslocamento vertical titulo empresa ENC
   UsaEncTitDesV = 1                                               'activar variavel
   ValEncTitDesV = val(CfgDocEncMovTitV$)                          'valor deslocamento empresa ENC
else
   UsaEncTitDesV = 0                                               'activar variavel
end if

if val(CfgDocCtInfo$) > 0 then                                     'usar contacto conta 
   UsaContactoCt= 1                                                'activar variavel
else
   UsaContactoCt= 0                                                'activar variavel
end if


'FUNCOES PARA USAR NO FIM/RODAPE =====================================================================================
if CfgDocUsaCxRod$ = "1" then                                      'usa caixa informacao rodape ?
   UsaCxInf  = 1                                                   'activar variavel 
   InfoCxRod$ = CfgDocUsaInRod$                                    'informacao para caixa
else
   UsaCxInf  = 0                                                   'activar variavel 
end if

if CfgDocTipFonTcx$ <> "" then                                     'fonte texto caixas cab/rodape
   UsaFonCxTxt = 1                                                 'activar variavel
   ValFonCxTxt = val(CfgDocTipFonTcx$)                             'valor fonte texto
else
   UsaFonCxTxt = 0                                                 'activar variavel
end if


if CfgDocMotIseFim$ = "1" then                                     'usa motivo isencao no fim do documento ?
   UsaMotIseFim = 1                                                'activar variavel 
else
   UsaMotIseFim = 0                                                'activar variavel 
end if


if CfgDocRalUsa$ <> "" then                                        'usa RAL ?
   if CfgDocRalUsa$ = "1" then                                       'aderente
      UsaRal = 1                                                   'activar variavel 
   end if

   if CfgDocRalUsa$ = "2" then                                       'nao aderente
      UsaRal = 2                                                   'activar variavel
   end if
end if

if CfgDocRalFon$ <> "" then                                        'fonte texto RAL
   UsaRalFon = 1                                                   'activar variavel
   ValRalFon = val(CfgDocRalFon$)                                  'valor fonte RAL
else
   UsaRalFon = 0                                                   'activar variavel
end if

'FUNCOES PARA USAR TEXTO DIREITA =====================================================================================
UsaCxInfD    = 0                                                   'azerar variavel

if CfgDocUsaInDir$ <> "" then                                      'usa texto informacao direita ?
   if OkVia = 4 then
      UsaCxInfD = 1                                                'activar variavel 
      InfoCxDir$ = CfgDocUsaInDir$                                 'informacao para caixa
   end if
else
   UsaCxInfD  = 0                                                  'activar variavel 
end if


'DIVERSOS ============================================================================================================
if CfgDocPapTimb$ = "2" then                                       'usa papel timbrado com logotipo ?
   UsaPapTim  = 2                                                  'activar variavel 
else 
   if CfgDocPapTimb$ = "1" then                                    'usa papel timbrado ?
      UsaPapTim  = 1                                               'activar variavel 
   else
      UsaPapTim  = 0                                               'activar variavel 
   end if
end if

if CfgDocusaLinVert$ = "1" then                                    'usa linhas verticais no corpo do documento ?
   LstSepVert = 1                                                  'activar variavel 
else
   LstSepVert = 0                                                  'activar variavel 
end if


if CfgDocUsaLinInf$ <> "" then                                     'informacao para fim de linha
   usaInfLin = 1                                                   'activar variavel
else
   usaInfLin = 0                                                   'activar variavel
end if


if CfgDocFacGt$ = "1" then                                         'usa factura como guia de transporte
   UsaFacGt = 1                                                    'activar variavel
else
   UsaFacGt = 0                                                    'activar variavel
end if


if CfgDocLogDsx$ <> "" then                                        'deslocamento horizontal no logotipo ?
   UsaDesLog = 1                                                   'activar variavel
   ValDesLog = val(CfgDocLogDsx$)                                  'valor posicao base 
else
   UsaDesLog = 0                                                   'activar variavel
end if


if CfgDocUsaMb$ = "1" then                                         'usa Multibanco ?
   UsaMb = 1                                                       'activar variavel 
else
   UsaMb = 0                                                       'activar variavel 
end if


if CfgDocUsaTotQ$ = "1" then                                       'usa totais de quantidades
   UsaTqu = 1                                                      'activar variavel
else
   UsaTqu = 0                                                      'activar variavel
end if


if CfgDocUsaNSuplA$ = "1" then                                     'usa totais de quantidades
   UsaNsupl = 1                                                    'activar variavel
else
   UsaNsupl = 0                                                    'activar variavel
end if


'imprime valores no documento
ImpVal$ = EncDocParOpcCon$("DOCIMPVAL")                            'ler valor ficheiro parametros
if ImpVal$ ="N" then                                               'nao imprime valores 
   UsaPrcGt = 0                                                    'activar variavel
else
   UsaPrcGt = 1                                                    'activar variavel
end if


if CfgDocPosBas$ <> "" then                                        'posicao X base
   UsaPosBas = 1                                                   'activar variavel
   ValPosBas = val(CfgDocPosBas$)                                  'valor posicao base 
else
   UsaPosBas = 0                                                   'activar variavel
   ValPosBas = Margem                                              'valor posicao base
end if


if CfgDocImpCbar$ = "1" then                                       'codigo de barras
   ImpCbar = 1                                                     'activar variavel
else
   ImpBar  = 0                                                     'activar variavel
end if


'POS - DIVERSOS ======================================================================================================
if CfgDocPosCtTit$ <> "" then                                      'posicao corte titulo talao POS
   UsaPosTit = 1                                                   'activar variavel
   ValPosTit = val(CfgDocPosCtTit$)                                'valor posicao corte titulo POS
else
   UsaPosTit = 0                                                   'activar variavel
end if


if val(CfgDocLrgTikPos$) > 0 then                                  'largura impresso POS
   UsaPosLrg = 1                                                   'activar variavel
   ValPosLrg = val(CfgDocLrgTikPos$)                               'largura impresso POS
else
   UsaPosLrg = 0                                                   'activar variavel
   ValPosLrg = 63                                                  'largura impresso POS
end if

if val(CfgDocUsaIvaPrc$) > 0 then
   UsaPrcIva = 1
else
   UsaPrcIva = 0
end if

if CfgDocPosTitFon$ <> "" then                                     'fonte titulo empresa POS
   UsaPosTfo = 1                                                   'activar variavel
   ValPosTfo = val(CfgDocPosTitFon$)                               'valor fonte empresa POS
else
   UsaPosTfo = 0                                                   'activar variavel
end if
end sub


'==============================================================================
'#CAB - Preparar listagem do Cabecalho do documento
'==============================================================================
Sub DocCabFac 'cabecalho do documento
docNli = VBS_DocConOpc("DocLpg")                    'numero de linhas do documento

FimDoc       = docNli * dimLinY + 115               'fim do documento
dimZonLinY   = Fimdoc - PosIdeLin                   'dimensao da zona de linhas - altura


'listar
PrWin PAG_PRP                                       'preparar pagina

call DocCerLisAnu                                   'listar informacao de anulado
call DocCabLogo                                     'cabecalho do documento - logotipo

if UsaPosBas > 0 then                               'nova posicao Base X ?
   Margem = Margem+ValPosBas                        'adicionar valor a variavel Margem
   ValPosBas = 0                                    'azerar variavel
end if


'- Tamanhos das colunas ----------------------------------------------------------
esp=0                                               'espaco entre colunas
altQ=5                                              'altura de quadro titulo de linha
DocTipRecibo = 0                                    'documento tipo recibo - azerar variavel

MargemD= 184                                        'margem direita
liCabDy = 5                                         'altura da linha de cabecalho (titulos de colunas)
uso$ = "DC"                                         'tipo de uso - por dimensao das colunas

if @RcPgModo = "RCB" then 
   DocTipRecibo = 1                                 'documento tipo recibo
end if

if @RcPgModo = "PAG" then 
   DocTipRecibo = 1                                 'documento tipo recibo
end if

if DocTipRecibo = 1 then
   FimDocR      = docNli * dimLinY + 125            'fim do documento - recibo
   dimZonLinY   = FimdocR - PosIdeLin               'dimensao da zona de linhas - altura

   if uso$ = "PC" then                              'por posicao de colunas
      co01Px =   0                                  'posicao coluna esquerda (documento)
      co02Px =  79                                  'posicao coluna esquerda (valor) 
      co03Px = 114                                  'posicao coluna esquerda (valor pago)
      co04Px = 149                                  'posicao coluna esquerda (valor pendente)
      co05Px = MargemD                              'posicao da coluna 4

      co01Dx = co02Px - co01Px                      'dimensao da coluna 1
      co02Dx = co03Px - co02Px                      'dimensao da coluna 2
      co03Dx = co04Px - co03Px                      'dimensao da coluna 3
      co04Dx = co05Px - co04Px                      'dimensao da coluna 4
   else
      co01Dx = 79                                   'dimensao da coluna 1
      co02Dx = 35                                   'dimensao da coluna 2
      co03Dx = 35                                   'dimensao da coluna 3
      co04Dx = 35                                   'dimensao da coluna 4

      co01Px = 0
      co02Px = co01Px + co01Dx
      co03Px = co02Px + co02Dx
      co04Px = co03Px + co03Dx
      co05Px = co04Px + co04Dx

      'ajuste da ultima coluna
      co05Px = MargemD                              'posicao da coluna 5
      co04Dx = co05Px - co05Px                      'dimensao da coluna 4
   end if

   co01Pv = co01Px + 0.5                            'posicao do valor coluna 1
   co02Pv = co02Px + 0.5                            'posicao do valor coluna 2
   co03Pv = co03Px + 0.5                            'posicao do valor coluna 3
   co04Pv = co04Px + 0.5                            'posicao do valor coluna 4
   co05Pv = co05Px + 0.5                            'posicao do valor coluna 5
else
   if uso$ = "PC" then                              'por posicao de colunas
      co01Px =   0                                  'posicao coluna esquerda (codigo)
      co02Px =  24                                  'posicao coluna esquerda (designacao) 
      co03Px =  90                                  'posicao coluna esquerda (quantidade)   
      co04Px = 106                                  'posicao coluna esquerda (unidade) 
      co05Px = 114                                  'posicao coluna esquerda (preco unitario) 
      co06Px = 124                                  'posicao coluna esquerda (desconto) 
      co07Px = 149                                  'posicao coluna esquerda (valor total) 
      co08Px = 179                                  'posicao coluna esquerda (iva) 
      co09Px = MargemD                              'posicao da coluna 9

      co01Dx = co02Px - co01Px                      'dimensao da coluna 1
      co02Dx = co03Px - co02Px                      'dimensao da coluna 2
      co03Dx = co04Px - co03Px                      'dimensao da coluna 3
      co04Dx = co05Px - co04Px                      'dimensao da coluna 4
      co05Dx = co06Px - co05Px                      'dimensao da coluna 5
      co06Dx = co07Px - co06Px                      'dimensao da coluna 6
      co07Dx = co08Px - co07Px                      'dimensao da coluna 7
      co08Dx = co09Px - co08Px                      'dimensao da coluna 8
   else
      co01Dx = 25                                   'dimensao da coluna 1
      co02Dx = 70                                   'dimensao da coluna 2
      co03Dx = 18                                   'dimensao da coluna 3
      co04Dx =  8                                   'dimensao da coluna 4
      co05Dx = 20                                   'dimensao da coluna 5
      co06Dx = 17                                   'dimensao da coluna 6
      co07Dx = 20                                   'dimensao da coluna 7
      co08Dx =  7                                   'dimensao da coluna 8

      co01Px = 0
      co02Px = co01Px + co01Dx
      co03Px = co02Px + co02Dx
      co04Px = co03Px + co03Dx
      co05Px = co04Px + co04Dx
      co06Px = co05Px + co05Dx
      co07Px = co06Px + co06Dx
      co08Px = co07Px + co07Dx

      'ajuste da ultima coluna
      co09Px = MargemD                              'posicao da coluna 9
      co08Dx = co09Px - co08Px                      'dimensao da coluna 8
   end if

   co01Pv = co01Px + 0.5                            'posicao do valor coluna 1
   co02Pv = co02Px + 0.5                            'posicao do valor coluna 2
   co03Pv = co03Px + 0.5                            'posicao do valor coluna 3
   co04Pv = co04Px + 0.5                            'posicao do valor coluna 4
   co05Pv = co05Px + 0.5                            'posicao do valor coluna 5
   co06Pv = co06Px + 0.5                            'posicao do valor coluna 6
   co07Pv = co07Px + 0.5                            'posicao do valor coluna 7
   co08Pv = co08Px + 0.5                            'posicao do valor coluna 8  
   co09Pv = co09Px + 0.5                            'posicao do valor coluna 9
end if

'---------------------------------------------------------------------------------------------
PrWIN COR_T, CfgDocCorLetra$                        'activar cor de traco (letra) 
PrWIN AJT_B,  Margem, 10.0                          'posicao base

if UsaPapTim = 0 then                               'usa papel timbrado ?
   if UsaEncTfo = 1 then                            'usa fonte para titulo ?
      PrWIN FON, ValEncTfo, 1                       'activar fonte
      PrWin FON, "BOLD+"                            'activar bold
   else
      PrWIN FON, 18, 1                              'activar fonte
      PrWin FON, "BOLD+"                            'activar bold
   end if

   tam = 60 - ValEncTit                             'tamanho do nome da empresa para mid$

   if logoUsaEmp = 3 then
      if UsaEncTit = 1 then
         PrWIN TX_N,  2,  6,left$(Emp_Inf_Nome$,ValEncTit)         'nome da empresa
         PrWIN TX_N,  2, 12,mid$(Emp_Inf_Nome$,ValEncTit+1,tam)    'nome da empresa
      else
         PrWIN TX_N,  2+ValEncTitDes, 15+ValEncTitDesV,@EmpNome    'nome da empresa
      end if
   else
      if logoUsaEmp = 0 then
         if UsaEncTit = 1 then
            PrWIN TX_N,  2,  6,left$(Emp_Inf_Nome$,ValEncTit)      'nome da empresa
            PrWIN TX_N,  2, 12,mid$(Emp_Inf_Nome$,ValEncTit+1,tam) 'nome da empresa
         else
            PrWIN TX_N,  2+ValEncTitDes, 15+ValEncTitDesV,@EmpNome 'nome da empresa
         end if
      else
         if UsaEncTit = 1 then
            PrWIN TX_N, 55,  6,left$(Emp_Inf_Nome$,ValEncTit)      'nome da empresa
            PrWIN TX_N, 55, 12,mid$(Emp_Inf_Nome$,ValEncTit+1,tam) 'nome da empresa
         else
            PrWIN TX_N, 55+ValEncTitDes, 10+ValEncTitDesV,@EmpNome 'nome da empresa
         end if 
      end if
   end if
   PrWin FON, "BOLD-"                               'desactivar bold

   'Dados da empresa
   PrWIN FON,  9, 1                                 'activar fonte
   PrWIN AJT_B,  Margem+2, 10.0                     'posicao base

   if CerTdoTip$ = "NSF" then

      EscNsf = 1                                    'valido 
      if CerNatChv$ = "VND.ORC" then                'documento orcamento - nao escreve
         EscNsf = 0
      end if

      if CerNatChv$ = "VND.FPR" then                'documento factura proforma - nao escreve
         EscNsf = 0
      end if
 
      if EscNsf <> 0 then                           'documento factura proforma - nao escreve
         PrWIN GR_CX, 98,26,155, 33, 2              'caixa dos dados do documento     
         PrWIN TX_N ,100,28,@vCerTdoTip             'distico "Este documento não serve de factura
      end if
   end if

   PrWIN TX_N,  0, 24,@EmpMorada                    'morada
   PrWIN TX_N,  0, 28,@EmpLocal                     'localidade
   PrWIN TX_N,  0, 32,@EmpCpost                     'código postal

   if Emp_Inf_Fax$ = "" then
      PrWIN TX_N,  0, 38,"Telefone: "               'titulo - tipo de sociedade
      PrWIN TX_N, 16, 38,@EmpTel                    'telefone
   else
      PrWIN TX_N,  0, 38,"Telefone/Fax: "           'titulo - tipo de sociedade
      PrWIN TX_N, 21, 38,@EmpTelFax                 'telefone/fax
   end if

   if Emp_Inf_Web$ <> "" then
      PrWIN TX_N,  0, 42,"Endereço NET : "          'titulo - endereço net
      PrWIN TX_N, 24, 42,@EmpWeb                    'endereço net
      PrWIN TX_N,  0, 46,"E-Mail:"                  'titulo - email
      PrWIN TX_N, 13, 46,@EmpMail                   'mail        
   else
      if Emp_Inf_Email$ <> "" then
         PrWIN TX_N,  0, 42,"E-Mail:"               'titulo - email
         PrWIN TX_N, 13, 42,@EmpMail                'mail
      end if 
   end if

   PrWIN TX_N,  0, 51,"Contribuinte Nº:"            'titulo - contribuinte
   PrWIN TX_N, 26, 51,@EmpCtrb                      'contribuinte

   call VerTdocUsaOk  'ver se documento é válido para listar
   if OkUsa = 1 then                                'valido

      if UsaIban = 1 then
         if UsaIbanFon = 1 then
            PrWIN FON, ValIbanFon, 1                   'activar fonte
            PrWIN TX_N,  0, 55,"IBAN: "                'titulo - Iban
            PrWIN TX_N,  9, 55, CfgDocUsaIban$         'escreve Iban
            PrWIN FON, 9, 1                            'activar fonte
         else
            PrWIN FON, 8, 1                            'activar fonte
            PrWIN TX_N,  0, 55,"IBAN: "                'titulo - Iban
            PrWIN TX_N,  9, 55, CfgDocUsaIban$         'escreve Iban
         end if
      else
         if UsaNib = 1 then
            if UsaNibFon = 1 then       
               PrWIN FON, ValNibFon, 1                 'activar fonte
               PrWIN TX_N,  0, 55,"NIB: "              'titulo - nib      
               PrWIN TX_N,  8, 55, CfgDocUsaNib$       'escreve nib
               PrWIN FON, 9, 1                         'activar fonte
            else
               PrWIN FON, 8, 1                         'activar fonte
               PrWIN TX_N,  0, 55,"NIB: "              'titulo - nib      
               PrWIN TX_N,  8, 55, CfgDocUsaNib$       'escreve nib
            end if
         end if
      end if
   end if
end if


'dados de registo 
PrWIN AJT_B, Margem, 70                             'posicao base

if UsaCorCab = 1 then                               'usa cor cabecalho ?
   PrWIN COR_E, 200, 200, 200                       'cor de enchimento RGB
   PrWIN GR_ME, 0                                   'modo de enchimento
   PrWIN GR_CE,  0,  0, 75, 12, 2                   'caixa do cabecalho
else
   PrWIN GR_CX,  0,  0, 75, 12, 2                   'caixa do cabecalho
end if

PrWIN GR_CX,  0,  0, 75, 17, 2                      'caixa dos dados do documento
PrWIN GR_LI,  0,  7, 75,  7, 2                      'separador horizontal do documento
PrWIN GR_LI,  0, 12, 75, 12, 2                      'separador horizontal do documento
PrWIN GR_LI, 18,  7, 18, 17, 2                      'separador Vertical   do documento
PrWIN GR_LI, 60,  7, 60, 17, 2                      'separador Vertical do documento

if UsaPapTim = 1 then
   call VerTdocUsaOk                                'ver se documento é válido para listar
   if OkUsa = 1 then                                'valido
      if UsaIban = 1 then                           'usa IBAN ?
         if UsaIbanFon = 1 then                     'usa fonte na variavel do documento ? 
            PrWIN FON, ValIbanFon, 1                'activar fonte
            PrWIN TX_N,  0,-7,"IBAN: "              'titulo - Iban
            PrWIN TX_N,  9,-7, CfgDocUsaIban$       'escreve Iban
            PrWIN FON, 9, 1                         'activar fonte
         else
            PrWIN FON, 8, 1                         'activar fonte
            PrWIN TX_N,  0,-7,"IBAN: "              'titulo - Iban
            PrWIN TX_N,  9,-7, CfgDocUsaIban$       'escreve Iban
         end if
      end if  
   end if
end if

'caixa para dados do documento
PrWin FON, "BOLD+"                                  'activar bold
PrWIN   FON, 16,   1                                'activar fonte
PrWIN TX_CTR, 0,  0, 75,  7,@vCerDocIde
PrWIN   FON,  9,   1                                'activar fonte
PrWIN TX_CTR, 0,  7, 18, 12,"Data"                  'titulo - data
PrWIN TX_CTR,18,  7, 60, 12,"Número"                'titulo - documento

NVia = TxIde$(Enc_Mst_DocImp$,"IMPCNT")             'numero via
if Nvia > 1 then
   PrWIN TX_CTR,60,  7, 75, 12,"2ª Via"             'titulo - via
else
   PrWIN TX_CTR,60,  7, 75, 12,"Via"                'titulo - via
end if

PrWin FON, "BOLD-"                                  'desactivar bold
PrWIN TX_CTR, 0, 12, 18, 17,@DocRcDtl               'data
PrWIN TX_CTR,18, 12, 60, 17,@vCerDocNum             'numero
PrWIN TX_CTR,60, 12, 75, 17,@DocVia                 'via

usaCpm = 0                                          'assume nao usar copia manual

if CerDocSit$ = "CPM" then                          'copia documento manual ?
   usaCpm = 1                                       'usar copia manual
end if

if CerDocSit$ = "CPD" then                          'copia documento danificado ?
   usaCpm = 1                                       'usar copia manual
end if

if CerDocSit$ = "CPF" then                          'copia documento de fornecedor ?
   usaCpm = 1                                       'usar copia manual
end if

if usaCpm = 1 then                                  'copia documento manual ?
   if @CodIdeDoc <> "" then                         'guia de transporte?
      PrWIN GR_CX,  0, 17, 37.5, 22, 2              'caixa dos dados do documento
      PrWIN GR_CX,37.5,17, 75  , 22, 2              'caixa dos dados do documento
      PrWIN   FON,  7,   1                          'activar fonte
  
      PrWin FON, "BOLD+"                            'activar bold
      PrWIN  TX_N,  2, 18,"Doc. Org. Nº:"           'titulo
      PrWin FON, "BOLD-"                            'activar bold
      PrWIN  TX_N, 19, 18,@vCerDocAss               'assinatura
      PrWin FON, "BOLD+"                            'activar bold
      PrWIN  TX_N, 39, 18,"Código AT :"             'titulo
      PrWin FON, "BOLD-"                            'activar bold
      PrWIN TX_N,  55, 18,@CodIdeDoc                'codigo de identificacao documento
   else
      PrWIN GR_CX,  0, 17, 75, 22, 2                'caixa dos dados do documento
      PrWIN   FON,  6.5,   1                        'activar fonte
      PrWin FON, "BOLD+"                            'activar bold
      PrWIN  TX_N,  1, 18,"Cópia Doc. Manual Nº "   'titulo
      PrWin FON, "BOLD-"                            'activar bold

      DocNumM$ = TxIde$(Enc_Mst_Opc$,"CER_CPM_NUM") 'ler numero documento original
      PrWIN  TX_N, 26, 18,DocNumM$                  'numero documento original

      DocDatM$ = TxIde$(Enc_Mst_Opc$,"CER_CPM_DTM") 'ler data documento original
      PrWIN  TX_N, 62, 18,DocDatM$                  'data documento original
      PrWIN   FON,  8,   1                          'activar fonte
   end if
end if


if @CodIdeDoc <> "" then                            'guia de transporte?
   if CerDocSit$="CPM" then
      PrWIN GR_CX,  0, 17, 37.5, 22, 2              'caixa dos dados do documento
      PrWIN GR_CX,37.5,17, 75  , 22, 2              'caixa dos dados do documento
      PrWIN   FON,  7,   1                          'activar fonte
  
      PrWin FON, "BOLD+"                            'activar bold
      PrWIN  TX_N,  2, 18,"Doc. Org. Nº:"           'titulo
      PrWin FON, "BOLD-"                            'activar bold
      PrWIN  TX_N, 19, 18,@vCerDocAss               'assinatura
      PrWin FON, "BOLD+"                            'activar bold
      PrWIN  TX_N, 39, 18,"Código AT :"             'titulo
      PrWin FON, "BOLD-"                            'activar bold
      PrWIN TX_N,  55, 18,@CodIdeDoc                'codigo de identificacao documento
   else
      PrWIN GR_CX,  0, 17, 75, 22, 2                'caixa dos dados do documento
      PrWIN   FON,  9,   1                          'activar fonte
      PrWin FON, "BOLD+"                            'activar bold
      PrWIN  TX_N, 15, 18,"Código AT :"             'titulo
      PrWIN TX_N,  35, 18,@CodIdeDoc                'codigo de identificacao documento
      PrWin FON, "BOLD-"                            'activar bold
   end if
end if
  
'caixa para informacoes para cabecalho
if UsaCxInfC = 1 then                               'caixa de informacoes no cabecalho
   PrWIN GR_CX, 78, 12,MargemD, 17, 2               'caixa para informacoes

   info$=InfoCxCab$                                 'texto para informacao

   if UsaFonCxTxt = 1 then                          'activar variavel
      PrWIN   FON, ValFonCxTxt,   1                 'activar fonte
   else
      PrWIN   FON,  6,   1                          'activar fonte
   end if

   PrWIN TX_CTR,79, 12,MargemD, 17,info$            'informacao
   PrWIN   FON,  9,   1                             'activar fonte
end if

PrWIN AJT_B, Margem, 59                             'posicao base

if UsaLabCmp = 1 then                               'novo campo
   CmpPos = left$(CfgDocLabCampo$,2)                'posicao escrita campo novo 
   CmpLab$= mid$(CfgDocLabCampo$,4,15)              'identificacao para campo novo

   PrWIN TX_N, 80, 30,CmpLab$                       'titulo - campo novo       
   PrWIN TX_N, 80+CmpPos, 30,@Adse                  'titulo - campo novo       
end if

PrWIN  TX_N,169, 30,"Página:"                       'titulo 
PrWIN  TX_N,181, 30,@Pag                            'numero da pagina
PrWIN FON, 10, 1                                    'activar fonte

'destinatario do documento
PrWIN AJT_B, Margem+100, 37                         'posicao base
PrWIN TX_N, 0, 10,"Exmo(s). Snr(s).:"               'titulo

MorTip$ = TxIde$(Enc_Mst_Opc$,"MOR_FAC_TIP")        'tipo de morada de facturacao
MorDes$ = TxIde$(Enc_Mst_Opc$,"MOR_FAC_DES")        'nome do destinatario

if MorTip$ <> "" then                               'tem morada de facturacao ?
   if MorDes$ = "Sede" then
      PrWIN TX_N,  0, 20,@Nome                      'nome do destinatario do documento
      PrWIN TX_N,  0, 25,@MorFacMor                 'morada
      PrWIN TX_N,  0, 30,@MorFacLoc                 'localidade
      PrWIN TX_N,  0, 35,@MorFacCpo                 'código postal
   else
      PrWIN TX_N,  0, 20,@MorFacDes                 'nome
      PrWIN TX_N,  0, 25,@MorFacMor                 'morada
      PrWIN TX_N,  0, 30,@MorFacLoc                 'localidade
      PrWIN TX_N,  0, 35,@MorFacCpo                 'código postal
   end if
else
   PrWIN TX_N,  0, 20,@Nome                         'nome do destinatario do documento
   PrWIN TX_N,  0, 25,@Morada                       'morada do destinatario do documento
   PrWIN TX_N,  0, 30,@Local                        'localidade do destinatario do documento
   PrWIN TX_N,  0, 35,@Cpost                        'codigo postal do destinatario do documento
end if

if UsaContactoCt > 0 then 
   PrWIN TX_N, 0, 40,"Contacto Cliente :"           'titulo
   PrWIN TX_N,29, 40,@Contacto                      'contacto do destinatario do documento
end if

PrWIN AJT_B, Margem,  94                            'posicao base
PrWIN   FON,  8,   1                                'activar fonte
PrWIN GR_CX,  0,  0, MargemD, 10, 2                 'caixa dos dados do cliente

if UsaCorCab = 1 then                               'usa cor cabecalho ?
   PrWIN COR_E, 200, 200, 200                       'cor de enchimento RGB
   PrWIN GR_ME, 0                                   'modo de enchimento
   PrWIN GR_CE,  0,  0, MargemD,  5, 2              'caixa do cabecalho
else
   PrWIN GR_CX,  0,  0, MargemD,  5, 2              'caixa do cabecalho
end if

if DocTipRecibo = 1 then
   call CabRec2                                     'recibo
else
   call CabFac2                                     'factura
end if
end sub


'-----------------------------------------------------------------------------------
' Cabecalho Factura
'-----------------------------------------------------------------------------------
SUB CabFac2 
call VerForOk                                       ' ver se é fornecedor

PrWIN GR_LI,  0,  5, MargemD,  5, 2
PrWIN GR_LI, 26,  0, 26, 10, 2                      'separador Vertical do documento

if ForOk = 1
   PrWIN GR_LI, 73,  0, 73, 10, 2                   'separador Vertical do documento
else
   PrWIN GR_LI, 54,  0, 54, 10, 2                   'separador Vertical do documento
   PrWIN GR_LI, 73,  0, 73, 10, 2                   'separador Vertical do documento
end if

PrWIN GR_LI,102,  0,102, 10, 2                      'separador Vertical do documento
PrWIN GR_LI,114,  0,114, 10, 2                      'separador Vertical do documento
PrWIN GR_LI,152,  0,152, 10, 2                      'separador Vertical do documento
PrWIN GR_LI,MargemD,  0,MargemD, 10, 2

if ForOk = 1 then
   PrWIN TX_CTR,  0, 0, 26, 05,"Fornecedor"         'titulo
else
   PrWIN TX_CTR,  0, 0, 26, 05,"Cliente"            'titulo
end if

if ForOk = 1 then
   PrWIN TX_CTR, 26, 0, 73, 05,"V/ Nº Contribuinte " 'titulo
else
   PrWIN TX_CTR, 26, 0, 54, 05,"V/ Nº Contribuinte " 'titulo
   PrWIN TX_CTR, 54, 0, 73, 05,"Vendedor "           'titulo 
end if

PrWIN TX_CTR, 73, 0,102, 05,"Data Vencimento"       'titulo
PrWIN TX_CTR,102, 0,114, 05,"Moeda"                 'titulo
PrWIN TX_CTR,114, 0,152, 05,"Condições Pagamento"   'titulo
PrWIN TX_CTR,152, 0,MargemD, 05,"Regime IVA"        'titulo

PrWIN TX_CTR, 0,  5, 26, 10,@Ct                     'conta

if ForOk = 1 then
   if @Ctrb<>"999999990" then                          'contribuinte = 999999990 ?
      PrWIN TX_CTR,25,  5, 72, 10,@Ctrb                'contribuinte
   else
      PrWIN TX_CTR,25,  5, 72, 10,"Consumidor Final"   'escrever consumidor final
   end if
else
   if @Ctrb<>"999999990" then                          'contribuinte = 999999990 ?
      PrWIN TX_CTR,25,  5, 55, 10,@Ctrb                'contribuinte
   else
      'PrWIN TX_CTR,25,  5, 55, 10,"Consumidor Final"   'escrever consumidor final
      PrWIN TX_CTR,25,  5, 55, 10,"*********"          'escrever consumidor final
   end if

   if Enc_Mst_Vend = 0 then                            'vendedor - empresa ?
      PrWIN TX_CTR,55,  5, 72, 10,"Empresa"            'vendedor
   else
      PrWIN   FON,  5,   1                             'activar fonte
      PrWIN TX_CTR,56,  5, 72, 10,@Vend                'vendedor
      PrWIN   FON,  8,   1                             'activar fonte
   end if
end if

PrWIN TX_CTR,72,  5,102, 10,@DocRcDtv               'data vencimento
PrWIN TX_CTR,103, 5,114, 10,@Abv1                   'moeda
PrWIN TX_CTR,114, 5,152, 10,@cpag                   'condicoes de pagamento 

if TipoRegIva=1 then
   PrWIN   FON,  7,   1                             'activar fonte
   Riva$ = "IVA - Regime de Caixa"                  'regime de iva de caixa
   PrWIN TX_CTR,150, 5,MargemD, 10,Riva$            'escrever regime
   PrWIN   FON,  8,   1                             'activar fonte
else
   Riva$ = "IVA - Regime Geral"                     'regime de iva geral
   PrWIN TX_CTR,150, 5,MargemD, 10,Riva$            'escrever regime
end if

PrWIN AJT_B, Margem, PosIdeLin-3                    'posicao base

if UsaPapTim > 0 then                               'usa papel timbrado ?
   PrWIN FON, 06, 1                                 'activar fonte
   PrWIN TX_Ro,  -3.5,150, 90,@EmpPTim              'dados empresa quando é papel timbrado
end if

if okVia = 4 then
   UsaCxInfD = 1
   InfoCxDir$ = MsgVia$
end if

if UsaCxInfD > 0 then
   if ValFonCxTxt <> 0 then                         'fonte nas variaveis
      PrWIN FON, ValFonCxTxt, 1                     'activar fonte
   else
      PrWIN FON, 06, 1                              'activar fonte
   end if
      PrWIN TX_Ro,  MargemD+ 1.0,155, 90,InfoCxDir$ 'campos para escrever à direita
   end if
end if

if UsaCorCab = 1 then                               'usa cor cabecalho ?
   PrWIN COR_E, 200, 200, 200                       'cor de enchimento RGB
   PrWIN GR_ME, 0                                   'modo de enchimento
   PrWIN GR_CE,  0,  0,MargemD,  altq, 2            'caixa do cabecalho
else
   PrWIN GR_CX,  0,  0,MargemD,  altq, 2            'caixa do cabecalho
end if

PrWin FON, "BOLD+"                                  'activar bold
PrWIN FON, 8, 1                             	    'fonte para titulos da linha

PrWIN  TX_CTR, co01Px, 0, co02Px, liCabDy,"Código"       'titulo 
PrWIN  TX_CTR, co02Px, 0, co03Px, liCabDy,"Designação"   'titulo 
PrWIN  TX_CTR, co03Px, 0, co04Px, liCabDy,"Quant."       'titulo 
PrWIN  TX_CTR, co04Px, 0, co05Px, liCabDy,"Und."         'titulo 
PrWIN  TX_CTR, co05Px, 0, co06Px, liCabDy,"Pr. Unitário" 'titulo 
PrWIN  TX_CTR, co06Px, 0, co07Px, liCabDy,"Desco"        'titulo 
PrWIN  TX_CTR, co07Px, 0, co08Px, liCabDy,"Valor Total"  'titulo
PrWIN  TX_CTR, co08Px, 0, co09Px, liCabDy,"IVA"          'titulo

PrWIN FON, 7, 1                                     'fonte para linhas
PrWin FON, "BOLD-"                                  'desactivar bold

'ajustes para colunas
ajt=0
Col3=Col3+ajt
Col4=Col4+ajt
Col5=Col5+ajt
Col6=Col6+ajt
Col7=Col7+ajt
Col8=Col8

if LstSepVert = 1 then                              'usa separadores verticais no corpo documento ?
   PrWIN GR_LV,co02Px,  0, dimZonLinY, 2            'separador Vertical na linha do documento
   PrWIN GR_LV,co03Px,  0, dimZonLinY, 2            'separador Vertical na linha do documento
   PrWIN GR_LV,co04Px,  0, dimZonLinY, 2            'separador Vertical na linha do documento
   PrWIN GR_LV,co05Px,  0, dimZonLinY, 2            'separador Vertical na linha do documento
   PrWIN GR_LV,co06Px,  0, dimZonLinY, 2            'separador Vertical na linha do documento
   PrWIN GR_LV,co07Px,  0, dimZonLinY, 2            'separador Vertical na linha do documento
   PrWIN GR_LV,co08Px,  0, dimZonLinY, 2            'separador Vertical na linha do documento
end if

PrWIN GR_CX,  0,  0, MargemD,dimZonLinY, 2          'caixa do corpo das linhas
Portes$=""
end sub


'-----------------------------------------------------------------------------------
' Cabecalho Recibo/Pagamento
'-----------------------------------------------------------------------------------
Sub CabRec2 'cabecalho do documento (Recibo)

call VerForOk                                       'ver se é fornecedor

PrWIN AJT_B, Margem,  94                            'posicao base
PrWIN   FON,  8,   1                                'activar fonte
PrWIN GR_CX,  0,  0, MargemD, 10, 2                 'caixa dos dados do cliente
PrWIN COR_E, 200, 200, 200                          'cor de enchimento RGB
PrWIN GR_ME, 0                                      'modo de enchimento
PrWIN GR_CE,  0,  0, MargemD,  5, 2                 'caixa do cabecalho
PrWIN GR_LI,  0,  5, MargemD,  5, 2                 'linha

PrWIN GR_LI, 26,  0, 26, 10, 2                      'separador Vertical do documento
PrWIN GR_LI, 54,  0, 54, 10, 2                      'separador Vertical do documento
PrWIN GR_LI,102,  0,102, 10, 2                      'separador Vertical do documento
PrWIN GR_LI,114,  0,114, 10, 2                      'separador Vertical do documento
PrWIN GR_LI,MargemD,  0,MargemD, 10, 2

if ForOk = 1 then
   PrWIN TX_CTR,  0, 0, 26, 05,"Fornecedor"            'titulo
else
   PrWIN TX_CTR,  0, 0, 26, 05,"Cliente"               'titulo
end if

PrWIN TX_CTR, 26, 0, 54, 05,"V/ Nº Contribuinte "      'titulo
PrWIN TX_CTR, 54, 0,102, 05,"Vendedor "                'titulo 
PrWIN TX_CTR,102, 0,114, 05,"Moeda"                    'titulo
PrWIN TX_CTR,114, 0,MargemD, 05,"Regime IVA"           'titulo

PrWIN TX_CTR, 0,  5, 26, 10,@Ct                        'conta

if @Ctrb<>"999999990" then                             'contribuinte = 999999990 ?
   PrWIN TX_CTR,25,  5, 55, 10,@Ctrb                   'contribuinte
else
   PrWIN TX_CTR,25,  5, 55, 10,"Consumidor Final"      'escrever consumidor final
end if

if Enc_Mst_Vend = 0 then                               'vendedor - empresa ?
   PrWIN TX_CTR,55,  5, 102, 10,"Empresa"              'vendedor
else
   PrWIN TX_CTR,56,  5, 102, 10,@Vend                  'vendedor
end if

PrWIN TX_CTR,102, 5,114, 10,@Abv1                      'moeda

if TipoRegIva=1 then
   Riva$ = "IVA - Regime de Caixa"                     'regime de iva de caixa
   PrWIN TX_CTR,114, 5,MargemD, 10,Riva$               'escrever regime
else
   Riva$ = "IVA - Regime Geral"                        'regime de iva geral
   PrWIN TX_CTR,114, 5,MargemD, 10,Riva$               'escrever regime
end if

PrWIN AJT_B, Margem, PosIdeLin-3                       'posicao base

if UsaPapTim > 0 then                                  'usa papel timbrado ?
   PrWIN FON, 08, 1                                    'activar fonte
   PrWIN TX_Ro,  -3.5,150, 90,@EmpPTim                 'dados empresa quando é papel timbrado
end if

'-----------------------------------------------------------------------------------------
'titulos para linhas (recibo)
'-----------------------------------------------------------------------------------------
PrWIN COR_E, 200, 200, 200                                            'cor de enchimento RGB
PrWIN GR_ME, 0                                                        'modo de enchimento
PrWIN GR_CE,  0,  0,MargemD,liCabDy , 2                               'caixa do cabecalho
PrWin FON, "BOLD+"                                                    'activar bold
PrWIN FON, 8, 1                             	                      'fonte para titulos da linha
PrWIN GR_CX,  0, 0, MargemD,DimZonLinY, 2                             'caixa do corpo das linhas

if usaDisIva = 1 then
   PrWIN GR_CE,  0,  0,MargemD, liCabDy , 2                           'caixa do cabecalho 
   PrWIN  TX_CTR,co01Px,0,co02Px,liCabDy,"Documento"                  'titulo 
   PrWIN  TX_CTR,co02Px,0,co03Px,liCabDy,"Valor"                      'titulo 
   PrWIN  TX_CTR,co03Px,0,co04Px,liCabDy,"Valor Pago"                 'titulo 
   PrWIN  TX_CTR,co04Px,0,co05Px,liCabDy,"Valor Pendente"             'titulo 
 
   PrWin FON, "BOLD-"                                                 'desactivar bold
   PrWIN FON,  8, 1                           	                      'activar fonte
   PrWIN GR_CE,  0,liCabDy,MargemD, liCabDy*2 , 2                     'caixa do cabecalho 
   PrWIN TX_CTR,co01Px,liCabDy,co02Px,liCabDy*2,"Motivo Isenção/Taxa" 'texto centrado
   PrWIN TX_CTR,co02Px,liCabDy,co03Px,liCabDy*2,"Base/Incidência"     'texto centrado
   PrWIN TX_CTR,co03Px,liCabDy,co04Px,liCabDy*2,"IVA"                 'texto centrado
   PrWIN FON, 10, 1                            	                      'activar fonte
else
   PrWIN GR_CE,  0,  0,MargemD, liCabDy, 2                            'caixa do cabecalho
   PrWin FON, "BOLD+"                                                 'activar bold
   PrWIN  TX_CTR,co01Px,0,co02Px,liCabDy,"Documento"                  'titulo 
   PrWIN  TX_CTR,co02Px,0,co03Px,liCabDy,"Valor"                      'titulo 
   PrWIN  TX_CTR,co03Px,0,co04Px,liCabDy,"Valor Pago"                 'titulo 
   PrWIN  TX_CTR,co04Px,0,co05Px,liCabDy,"Valor Pendente"             'titulo 
   PrWin FON, "BOLD-"                                                 'desactivar bold
end if

PrWIN FON, 8, 1                                                       'fonte para linhas
PrWin FON, "BOLD-"                                                    'desactivar bold

if LstSepVert = 1 then                                  'usa separadores verticais no corpo documento ?
   PrWIN GR_LV,co02Px,  0, dimZonLinY, 2                'separador Vertical na linha do documento
   PrWIN GR_LV,co03Px,  0, dimZonLinY, 2                'separador Vertical na linha do documento
   PrWIN GR_LV,co04Px,  0, dimZonLinY, 2                'separador Vertical na linha do documento
   PrWIN GR_LV,co05Px,  0, dimZonLinY, 2                'separador Vertical na linha do documento
end if

Portes$=""
end sub


SUB VerForOk ' ver se é fornecedor
ForOk = 0

if left$(Enc_Mst_CtEnt$,2) = "22" then
   ForOk = 1                                  'é fornecedor
else
   ForOk = 0                                  'cliente
end if
end sub


SUB VerTdocUsaOk ' ver se iban é válido para documento a listar
OkUsa  = 0

if CerNatChv$ = "FT" then                               'factura
   OkUsa = 1
end if

if CerNatChv$ = "FR" then                               'factura
   OkUsa = 1
end if

if CerNatChv$ = "ND" then                               'factura
   OkUsa = 1
end if
end sub


SUB VerViaOk ' ver se via é quadruplicado
okVia = 0

if Doc_Ide_Via$ = "Original" then                       'original
   okVia = 1
end if

if Doc_Ide_Via$ = "Duplicado" then                      'duplicado
   okVia = 2   
end if

if Doc_Ide_Via$ = "Triplicado" then                     'triplicado
   okVia = 3   
end if

if Doc_Ide_Via$ = "Quadruplicado" then                  'quadruplicado
   okVia = 4   
   MsgVia$ = "Cópia de documentos não válida para os fins previstos no Regime dos Bens em circulação (Decreto-Lei 147/2003 de 11 de Julho - Artº 8 - nº 4)"
end if

if Doc_Ide_Via$ = "Quadriplicado" then                 'quadriplicado
   okVia = 4   
   MsgVia$ = "Cópia de documentos não válida para os fins previstos no Regime dos Bens em circulação (Decreto-Lei 147/2003 de 11 de Julho - Artº 8 - nº 4)"
end if
end sub

##

