'Nome       : Vnd_Ncr.ipw
'Tipo       : LST
'Data       : 2016/09/06
'Versao     : 1.3
'Descricao  : Factura - Modo grafico - Nota de credito com carta

'==============================================================================
'#VER - Historia de modificacoes
'==============================================================================
'- Versao : 1.3    2016/09/06 -------------------------------------------------
'impressao de zona de texto nos documentos

'- Versao : 1.2    2016/05/16 -------------------------------------------------
'funcoes para altura e largura dos logotipos

'- Versao : 1.1    2015/12/10 -------------------------------------------------
'usar fonte para texto caixas rodape
'imprimir desconto centrado na linha

'- Versao : 1.0    2015/10/27 -------------------------------------------------
'nova versao


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


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

'Artigos fixos a recolher       [DocArtFix]=*:*,PORTES,MOB:1
'Formato para definicao de artigos fixos:
' [DocArtFix]=art1:max1,art2:max2, ...
'              |    |
'              |    +-> Vezes a recolher (maximo)
'              |        Se nao for indicado e considerado 1 (neste caso nao usar o separador ':')
'              |        Se for indicado '*' nao e limitado o numero de vezes de recolha
'              |
'              +------> Artigo fixo a usar.
'                       Se for indicado '*' pode ser usado qualquer artigo
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Nome                       [DocNom]=FAC
Vias                       [DocVia]=Original;Duplicado;Triplicado
'Vias                       [DocVia]=Original
'Vias                       [DocVia]=Original;Duplicado
'Vias                       [DocVia]=Original;Duplicado;Triplicado

Tipo                       [DocTip]=
Dados especificos          [DocEsp]=ESP1,FAC

'formato
Saida/Impressora           [DocPrt]=PAG_W

Linhas por pagina          [DocLpg]=30
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=3

'funcoes de listagem
Funcao do documento         [FxDoc]=Doc
Listar cabecalho            [FxCAB]=DocCab
Listar linhas               [FxLIN]=DocLin; Nor; Ajt; Txl,0; Med; Pmo,0; Doc; Cor; Ide; Lot; Lom; Eco_Art; Eco_Dis; Agp; Ret_Irs; Vto; Ida
Listar fim                  [FxFIM]=DocFim
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Nome                       [DocNom]=Carta
Vias                       [DocVia]=Original
'Vias                       [DocVia]=Original;Duplicado;Triplicado

Tipo                       [DocTip]=
Dados especificos          [DocEsp]=ESP1,FAC

'formato
Saida/Impressora           [DocPrt]=PAG_W

Linhas por pagina          [DocLpg]=25
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=3

'funcoes de listagem
Listar cabecalho            [FxCAB]=CartaCab
Listar linhas               [FxLIN]=CartaLin,0; Nor,0; Ajt,0; Txl,0; Pmo,0
Listar fim                  [FxFIM]=CartaFim
##


'==============================================================================
#VAR - Variaveis
'==============================================================================
Pag      = Doc_CntPag                                                   'contador pagina
DataExt  = FrmVal$(Sig_DtHoje,45,0)                                     'data do dia
PerSon   = SigLstInf$("PERSON")                                         'personalizacao


'----------------------------------------------------------------------------------------------
'opcoes de configuracao do documento
'----------------------------------------------------------------------------------------------
CfgDocTipLogo$   = ""                                                   'usar logotipo
CfgDocNomLogo$   = ""                                                   'nome logotipo
CfgDocUsaCxRod$  = ""                                                   'usa caixa informacao rodape
CfgDocUsaInRod$  = ""                                                   'informacao para caixa rodape
CfgDocMotIseFim$ = ""                                                   'motivo isencao IVA
CfgDocusaLinVert$= ""                                                   'separador vertical nas linhas
CfgDocPapTimb$   = ""                                                   'usa papel timbrado
CfgDocusaLinInf$ = ""                                                   'usa linha final informacao
CfgDocUsaCorCab$ = ""                                                   'usa cor nas caixas de cabecalho
CfgDocUsaNib$    = ""                                                   'usa nib da empresa
CfgDocUsaIban$   = ""                                                   'usa Iban da empresa
CfgDocFacGt$     = ""                                                   'usa factura como guia transporte
CfgDocUsaPrcGt$  = ""                                                   'usa precos na guia transporte

'----------------------------------------------------------------------------------------------
'dados da empresa 
'----------------------------------------------------------------------------------------------
EmpNome  = Emp_Inf_Nome$                                                'nome empresa
EmpMorada= Emp_Inf_Morada$                                              'morada empresa 
EmpLocal = Emp_Inf_Local$                                               'localidade empresa
EmpCpost = Emp_Inf_Cpost$                                               'codigo postal
EmpTel   = Emp_Inf_Telef$                                               'telefone
EmpFax   = Emp_Inf_Fax$                                                 'fax
EmpCtrb  = Emp_Inf_Contrib$                                             'contribuinte
EmpTps   = Emp_Inf_NatJur$                                              'natureza juridica
EmpReg   = Emp_Inf_NumReg$                                              'numero registo conservatoria
EmpMail  = Emp_Inf_Email$                                               'mail 
EmpCapS  = FrmVal$(Emp_Inf_CapSoc,21,18.2)                              'capital social
EmpWeb   = Emp_Inf_Web$                                                 'site
EmpTelFax= Emp_Inf_Telef$+" / "+Emp_Inf_Fax$                            'telefone+fax

EmpPtim  = "Nome: "+Emp_Inf_Nome$+"     Morada: "+Emp_Inf_Morada$+"     Local: "+Emp_Inf_Local$+"     Cód.Postal: "+Emp_Inf_Cpost$+"     Contribuinte: "+ Emp_Inf_Contrib$
EmpTSoc  = "Tipo de Sociedade: "+Emp_Inf_NatJur$+"                                                             C.R.C.: "+Emp_Inf_NumReg$+"                                         Capital Social: "+FrmVal$(Emp_Inf_CapSoc,21,18.2)
EmpInfUt = "Informações úteis :   Telefone: "+Emp_Inf_Telef$+"                        Fax: "+Emp_Inf_Fax$
EmpInfUt2= "Informações úteis :   Endereço NET: "+Emp_Inf_Web$+"                                                                    E-Mail: "+Emp_Inf_EMail$+"                                                              Telefone/Fax: "+Emp_Inf_Telef$+" / "+Emp_Inf_Fax$

'----------------------------------------------------------------------------------------------
'dados do local de saida
'----------------------------------------------------------------------------------------------
SaiMor   = VarAlt$("Enc_Mst","Emp_Inf_Morada$")                         'morada destinatario
SaiLoc   = VarAlt$("Enc_Mst","Emp_Inf_Local$")                          'localidade destinatario
SaiCpo   = VarAlt$("Enc_Mst","Emp_Inf_Cpost$")                          'codigo postal destinatario

'----------------------------------------------------------------------------------------------
'dados do cliente
'----------------------------------------------------------------------------------------------
Ct       = Cta_Mst_Ct$                                                  'conta
Nome     = Cta_Mst_Nome$                                                'nome
Morada   = Cta_Ang_Morada$                                              'morada
Local    = Cta_Ang_Local$                                               'localidade
Cpost    = Cta_Ang_Cpost$                                               'codigo postal
Ctrb     = Cta_Mst_Ctrb$                                                'contribuinte
Contacto = Cta_Ang_Contacto$                                            'contacto 
NovCmp   = Cta_Ang_Txt$                                                 'texto para novo campo

'----------------------------------------------------------------------------------------------
'dados do destinatario do documento
'----------------------------------------------------------------------------------------------
DesMor   = VarAlt$("Enc_Mst","Cta_Ang_Morada$")                         'morada destinatario
DesLoc   = VarAlt$("Enc_Mst","Cta_Ang_Local$")                          'localidade destinatario
DesCpo   = VarAlt$("Enc_Mst","Cta_Ang_Cpost$")                          'codigo postal

'----------------------------------------------------------------------------------------------
'linhas do documento
'----------------------------------------------------------------------------------------------
LinArt   = Stc_Mst_Art$                                                 'codigo artigo
LinArtF  = StcCodFrm$("")                                               'codigo artigo formatado
LinNome  = EncArtIde$("")                                               'nome artigo
LinNomS  = Stc_Mst_Nome2$                                               'nome suplementar artigo

LinQu    = StcQuFrm$(Doc_Art_Qu,12,"")                                  'quantidade
LinQu2   = StcQuFrm$(Doc_Art_Qu2,12,"")                                 'quantidade 2
LinUni   = Stc_Mst_Unid$                                                'unidade
LinDesco = Enc_Mov_Desco$                                               'desconto
LinMedTx = Enc_Mov_MedTxt$                                              'medidas texto
LinLote  = Enc_Mov_Lote$                                                'lote
LinCbar  = Stc_Mst_CodBar$                                              'codigo barras

LinLiq   = FrmMoe$("",13,Doc_Art_Liq)                                   'liquido
LinPrc   = StcPrcFrm$(14,Doc_Art_Prc)                                   'preco 
'LinPrc   = FrmNum$(9.3,Doc_Art_Prc)                                     'preco 

LinPrc2  = FrmVal$(MoeCnv("N",Doc_Art_Prc,Enc_Mst_Moeda,2),21,10.2)     'preco 2
LinLiq2  = FrmVal$(MoeCnv("N",Doc_Art_Liq,Enc_Mst_Moeda,2),21,10.2)     'liquido 2  
MoedaExt = "Valores na moeda Euro :"                                    'extenso para moeda

Iva        = FrmVal$(IvaTax$("A"),21,2.0)+"%"                           'taxa IVA
LinTxl     = Enc_Mov_Div$                                               'texto livre
DocArtQuM  = FrmVal$(Doc_Art_QuM,21,5.3)                                'medidas - quantidade
DocArtMedV = FrmVal$(Doc_Art_MedVal,21,5.3)                             'medidas - valor

'valores sem IVA
vaPrcIva   = FrmNum$(9.2,vuPrcIva)                                      'preco - iva
vaPrcInc   = FrmNum$(9.2,vuPrcInc)                                      'preco - sem iva

vaLiqIva   = FrmMoe$("",13,vuLiqIva)                                    'liquido - iva
vaLiqInc   = FrmMoe$("",13,vuLiqInc)                                    'liquido - sem iva

'----------------------------------------------------------------------------------------------
'valores de iva/taxas do documento
'----------------------------------------------------------------------------------------------
'Ver funcao EncDocCom_PrpLstIva no ficheiro EncDocCom_Pgm.inc
'IvaIse$ = EncIdeTbIvaIse$("",Enc_Mov_Opc$)
IvaIseFim$=""

'----------------------------------------------------------------------------------------------
'totais do documento
'----------------------------------------------------------------------------------------------
DocDesco  = FrmMoe$("",15,Ado_Tot_Desco)                                'desconto
DocIlq    = FrmMoe$("",15,Ado_Tot_Ilq)                                  'iliquido
DocLiq    = FrmMoe$("",15,Ado_Tot_Liq)                                  'liquido
DocLiqAjp = FrmMoe$("",15,Ado_Tot_Liq-vuPortes)                         'liquido ajustado (sem portes)
DocLiqAje = FrmMoe$("",15,Ado_Tot_Liq-vuEcoval)                         'liquido ajustado (sem ecovalor)
DocPort   = FrmMoe$("",15,Ado_Tot_Ext)                                  'portes
DocIvaSuj = FrmMoe$("",15,Ado_Tot_IvaSuj)                               'iva sujeito
DocInc    = FrmMoe$("",15,Ado_Tot_Inc)                                  'iva incidencia
DocIva    = FrmMoe$("",15,Ado_Tot_Iva)                                  'iva total
DocTot    = FrmMoe$("",15,Ado_Tot_Tot)                                  'total documento

DocIlqSii = FrmMoe$("",15,Ado_Tot_IvaSuj+Ado_Tot_IvaIse+Ado_Tot_Desco)  'iliquido - sem iva incluido
DocLiqSii = FrmMoe$("",15,Ado_Tot_IvaSuj+Ado_Tot_IvaIse)                'liquido  - sem iva incluido


'----------------------------------------------------------------------------------------------
'informacoes sobre o documento
'----------------------------------------------------------------------------------------------
DocNome   = Doc_Ide_Nome$                                               'nome documento
'DocNome   = Doc_Ide_Sdoc$

DocNum    = FrmNdo$("",Enc_Mst_Tdoc$,Enc_Mst_Ndoc$)                     'numero documento
DocNum2   = TxtCarEli$(0,FrmNdo$("44",Enc_Mst_Tdoc$,Enc_Mst_Ndoc$),",") 'numero documento

DocVia    = Doc_Ide_Via$                                                'via
DocDtl    = FrmVal$(Doc_Ide_Dtl,44,0)                                   'data lancamento
DocDtv    = FrmVal$(Doc_Ide_Dtv,44,0)                                   'data vencimento 
DocOrg    = VarAlt$("ENC_MST","Emp_Inf_Local$")                         'local carga
DocDest   = VarAlt$("ENC_MST","Cta_Ang_Local$,LocEnt$")                 'local entrega
Viatura   = TxIde$(Enc_Mst_Opc$,"MAT")                                  'viatura
HorSai    = FrmVal$(Enc_Mst_HrSai,53,0)                                 'hora de saida 
DatSai    = FrmVal$(TxIde$(Enc_Mst_Opc$,"DtSai"),44,0)                  'data de saida
Cpag      = EmpTabCon$("Cpag",Enc_Mst_CpagCod,"Des")                    'condicoes pagamento 

Vend      = "("+Enc_Mst_Vend+") "+EmpTabCon$("Vend",Enc_Mst_Vend,"Nome")'vendedor - codigo+nome
'Vend      = Enc_Mst_Vend                                                'vendedor - codigo
'Vend      = EmpTabCon$("Vend",Enc_Mst_Vend,"Nome")                      'vendedor - nome 

'inTrp     = FrmVal$(TxIde$(Enc_Mst_Opc$,"DtSai"),44,0)+"   às  "+FrmVal$(Enc_Mst_HrSai,53,0) 'data e hora inicio transporte
'fimTp     = FrmVal$(Enc_Mst_Dtpe#,44,0)+"   às  "+FrmVal$(Enc_Mst_HrFim,53,0) 'data e hora fim transporte

inTrp     = FrmVal$(TxIde$(Enc_Mst_Opc$,"DtSai"),44,0)+"  "+FrmVal$(Enc_Mst_HrSai,53,0) 'data e hora inicio transporte
fimTp     = FrmVal$(Enc_Mst_Dtpe,44,0)+"  "+FrmVal$(Enc_Mst_HrFim,53,0)                 'data e hora fim transporte

'----------------------------------------------------------------------------------------------
'informacoes sobre o documento incluido
'----------------------------------------------------------------------------------------------
DocRcNum  = DocRcNum$                                                   'numero documento
DocRcDtl  = DocRcDtl$                                                   'data lancamento
DocRcDtv  = DocRcDtv$                                                   'data vencimento
DocRcDtSai= FrmDt$("",DocRcDtSai$)                                      'data saida
DocRcDest = DocRcDest$                                                  'local entrega
DocRcOrg  = DocRcOrg$                                                   'local carga 
DocRcHrSai= DocRcHrSai$                                                 'hora saida 
DocRcViat = DocRcViat$                                                  'viatura

'listar documentos
DocIde    = Enc_Mst_Tdoc$+" "+FrmNdo$("",Enc_Mst_Tdoc$,Enc_Mst_Ndoc$)   'identificacao documento
'DocIde    = Enc_Mst_Descr$

CodIdeDoc = TxIde$(Enc_Mst_Opc$,"AT_DTR_IDE")                           'codigo AT para guias

LinOpcCor= TxIde$(Enc_Mov_Opc$,"COR")                                   'cor   
ArtIde   = TxIde$(Enc_Mov_Opc$,"OPCIDE")                                'nome alternativo artigo
Abv1     = EmpTabCon$("MOEDA",Enc_Mst_Moeda,"ABRV")                     'abreviatura para moeda
LinInf1  = LinInf1$                                                     'informacao

Ecovalor = FrmNum$(12.2,CtpVl(93,"T"))                                  'valor total ecovalor
'MoedaAbv1 = MoedaAbv1$

RzaNcr$=""                                                              'razao nota credito

'----------------------------------------------------------------------------------------------
'retencao de IRS
'----------------------------------------------------------------------------------------------
vaRetIrsIde = vuRetIrsIde$                                              'identificacao
vaRetIrsVal = vuRetIrsVal$                                              'valor
vaRetIrsRecI= vuRetIrsRecI$                                             'total a receber - identificacao
vaRetIrsRecV= vuRetIrsRecV$                                             'total a receber - valor

'----------------------------------------------------------------------------------------------
'bancos e contas
'----------------------------------------------------------------------------------------------
BcNom1= TxIde$(Emp_Inf_Opc$,"B01Nom")                                   'banco 1 - nome
BcNib1= TxIde$(Emp_Inf_Opc$,"B01Nib")                                   'banco 1 - nib
BcIbn1= TxIde$(Emp_Inf_Opc$,"B01Ibn")                                   'banco 1 - iban
BcBic1= TxIde$(Emp_Inf_Opc$,"B01Bic")                                   'banco 1 - swift/bic

BcNom2= TxIde$(Emp_Inf_Opc$,"B02Nom")                                   'banco 2 - nome
BcNib2= TxIde$(Emp_Inf_Opc$,"B02Nib")                                   'banco 2 - nib
BcIbn2= TxIde$(Emp_Inf_Opc$,"B02Ibn")                                   'banco 2 - iban
BcBic2= TxIde$(Emp_Inf_Opc$,"B02Bic")                                   'banco 2 - swift/bic

TotQu = FrmVal$(TotKg,21,5.2)                                           'totais - quantidade

'----------------------------------------------------------------------------------------------
'morada de facturacao
'----------------------------------------------------------------------------------------------
MorFacTip = TxIde$(Enc_Mst_Opc$,"MOR_FAC_TIP")                          'tipo
MorFacDes = TxIde$(Enc_Mst_Opc$,"MOR_FAC_DES")                          'nome
MorFacMor = TxIde$(Enc_Mst_Opc$,"MOR_FAC_MORADA")                       'morada
MorFacLoc = TxIde$(Enc_Mst_Opc$,"MOR_FAC_LOCAL")                        'localidade
MorFacCpo = TxIde$(Enc_Mst_Opc$,"MOR_FAC_CPOST")                        'codigo postal
##


'==============================================================================
#INC - Inclusao de funcionalidades
'==============================================================================
Variaveis para certificacao       =[SIG_DOC_DIR.ENC],EncDocCer_Var.inc
Variaveis para IVA                =[SIG_DOC_DIR.ENC],EncDocCom_Var.inc
##


'==============================================================================
#SEQ - Sequencias para recolha de artigos
'==============================================================================
'------------------------------------------------------------------------------
'#NOR - Tipo Normal
'------------------------------------------------------------------------------
Identificacao de sequencia [IDS]=NOR
Codigos validos            [ID1]=*
Codigos invalidos          [ID0]=PORTE,MOBRA

'Modos de uso               [IDM]=Rec,Cor

Funcao : Recolha       [FX,REC ]=REC; EXE
Funcao : Corrigir      [FX,COR ]=COR; EXECOR
Funcao : Executar      [FX,EXE ]=*

Recolha automatica           [E]=RAUTO
'Campo opcional              [E]=OPC Var$,Descricao,Tipo(A/N)+Dig
'Centro de custo adicional   [E]=OPC CCU.ADI,CCU Adicional,A10
'Conta de contabilizacao     [E]=OPC_CT [IDE=Contabilizacao][TPC=CTP.ADI][PSQ=7]
'Activar modo automatico      [E]=AUT 1

'Modo Automatico              [E]=AUT 1
Quantidade                   [E]=QU; ESC:LPL
'Quantidade 2                [E]=QU2
'Desactivar modo automatico   [E]=AUT 0

Preco                        [E]=PRC 0,-1
Desconto                     [E]=DES
Razao NCR                    [E]=NCR_RAZ [USO=AUT]
'Iva                          [E]=IVA [ISE=]
Iva                          [E]=IVA

'Funcao e Mensagem (MsgBox)   [E]=FxExe UtzMsgBox
'Funcao e Mensagem (Sbar)     [E]=FxExe UtzMsgSbar
'Mensagem em MsgBox           [E]=MsgBox "",Titulo,Linha1|Linha2
'Mensagem em Status Bar       [E]=MsgSbar 1,Msg painel 1
'Esperar (segundos)           [E]=EspSeg 2

Total                  [E,TOT  ]=TOT
Confirmar linha              [E]=CFL; CF2:ALT, ESC:LPL
Registar                     [E]=REG
Fim de sequencia             [E]=FIM

'alterar dados
Inicio de alteracao    [E,ALT  ]=ALT
'Campo opcional 1            [E]=OPC 1
Quantidade                   [E]=QU
Preco                        [E]=PRC 0,-1
Desconto                     [E]=DES
Razao NCR                    [E]=NCR_RAZ [USO=AUT]
'Iva                          [E]=IVA [ISE=]; TOT
Iva                          [E]=IVA; TOT

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM

Inicio de correccao   [E,EXECOR]=COR
'Campo opcional 1            [E]=OPC 1
Quantidade                   [E]=QU
Preco                        [E]=PRC 0,-1
Desconto                     [E]=DES
Razao NCR                    [E]=NCR_RAZ [USO=AUT]
'Iva                          [E]=IVA [ISE=]; TOT
Iva                          [E]=IVA; TOT

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM


'------------------------------------------------------------------------------
'#LOT - Tipo Lotes
'------------------------------------------------------------------------------
Identificacao de sequencia [IDS]=LOT
Codigos validos            [ID1]=
Codigos invalidos          [ID0]=

Funcao : Recolha       [FX,REC ]=REC; EXE
Funcao : Corrigir      [FX,COR ]=COR; EXECOR
Funcao : Executar      [FX,EXE ]=*
Recolha automatica           [E]=RAUTO

'Campo opcional              [E]=OPC Var$,Descricao,Tipo(A/N)+Dig

'Quantidade                   [E]=QU; ESC:LPL
'Quantidade 2                [E]=QU2

Lotes                        [E]=LOTSEL; ESC:LPL
Preco                        [E]=PRC 0,-1
Desconto                     [E]=DES
Razao NCR                    [E]=NCR_RAZ [USO=AUT]
Iva                          [E]=IVA

Total                  [E,TOT  ]=TOT
Confirmar linha              [E]=CFL; CF2:ALT, ESC:LPL
Registar                     [E]=REG
Fim de sequencia             [E]=FIM

'alterar dados
Inicio de alteracao    [E,ALT  ]=ALT
'Campo opcional 1            [E]=OPC 1
'Quantidade                   [E]=QU
Lotes                        [E]=LOTSEL; ESC:LPL
Preco                        [E]=PRC 0,-1
Desconto                     [E]=DES
Razao NCR                    [E]=NCR_RAZ [USO=AUT]
'Iva                          [E]=IVA [ISE=]; TOT
Iva                          [E]=IVA; TOT

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM


Inicio de correccao   [E,EXECOR]=COR
'Campo opcional 1            [E]=OPC 1
Quantidade                   [E]=QU
Lotes                        [E]=LOTSEL; ESC:LPL
Preco                        [E]=PRC 0,-1
Desconto                     [E]=DES
Razao NCR                    [E]=NCR_RAZ [USO=AUT]
'Iva                          [E]=IVA [ISE=]; TOT
Iva                          [E]=IVA; TOT

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM


'------------------------------------------------------------------------------
'#LOM - Lotes (manual)
'------------------------------------------------------------------------------
Identificacao de sequencia [IDS]=LOM
Codigos validos            [ID1]=*
Codigos invalidos          [ID0]=PORTE,MOBRA

'Modos de uso               [IDM]=Rec,Cor

Funcao : Recolha       [FX,REC ]=REC; EXE
Funcao : Corrigir      [FX,COR ]=COR; EXECOR
Funcao : Executar      [FX,EXE ]=*
Recolha automatica           [E]=RAUTO
'Campo opcional              [E]=OPC Var$,Descricao,Tipo(A/N)+Dig

Lote                         [E]=LOT
Quantidade                   [E]=QU; ESC:LPL
'Quantidade 2                 [E]=QU2
Preco                        [E]=PRC 0,-1
Desconto                     [E]=DES
Iva                          [E]=IVA
Razao NCR                    [E]=NCR_RAZ [USO=AUT]

'Funcao e Mensagem (MsgBox)   [E]=FxExe UtzMsgBox
'Funcao e Mensagem (Sbar)     [E]=FxExe UtzMsgSbar
'Mensagem em MsgBox           [E]=MsgBox "",Titulo,Linha1|Linha2
'Mensagem em Status Bar       [E]=MsgSbar 1,Msg painel 1
'Esperar (segundos)           [E]=EspSeg 2

Total                  [E,TOT  ]=TOT
Confirmar linha              [E]=CFL; CF2:ALT, ESC:LPL
Registar                     [E]=REG
Fim de sequencia             [E]=FIM

'alterar dados
Inicio de alteracao    [E,ALT  ]=ALT
'Campo opcional 1            [E]=OPC 1
Lote                         [E]=LOT
Quantidade                   [E]=QU
Preco                        [E]=PRC 0,-1
Desconto                     [E]=DES
Iva                          [E]=IVA; TOT

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM

Inicio de correccao   [E,EXECOR]=COR
'Campo opcional 1            [E]=OPC 1
Lote                         [E]=LOT
Quantidade                   [E]=QU
Preco                        [E]=PRC 0,-1
Desconto                     [E]=DES
'Iva                          [E]=IVA [ISE=]; TOT
Iva                          [E]=IVA; TOT

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM


'------------------------------------------------------------------------------
'#COR - Linha com campos opcionais 
'------------------------------------------------------------------------------
' Deficinao de Campos opcionais  ex:Cor

' linha para sequencia                     [E]=OPC Var$,Descricao,Tipo(A/N)+Dig
'               Campo opcional Cor         [E]=OPC COR,Cor escolhida,A15

' definir a linha no cabecalho do documento e no documento com o nome "COR"
'
' Indicar no artigo o tipo de linha da identificacao de sequencia 
' neste caso "COR"
'------------------------------------------------------------------------------
Identificacao de sequencia [IDS]=COR
Codigos validos            [ID1]=*
Codigos invalidos          [ID0]=PORTE,MOBRA
'Modos de uso               [IDM]=Rec,Cor

Funcao : Recolha       [FX,REC ]=REC; EXE
Funcao : Corrigir      [FX,COR ]=COR; EXECOR
Funcao : Executar      [FX,EXE ]=*
Recolha aautomatica          [E]=RAUTO
Campo opcional 1             [E]=OPC COR,Cor,A15
Campo opcional 2             [E]=OPC XYZ,Opcao XYZ,A5
Quantidade                   [E]=QU; ESC:LPL
Quantidade 2                 [E]=QU2
Preco                        [E]=PRC 0,-1
Desconto                     [E]=DES
Razao NCR                    [E]=NCR_RAZ [USO=AUT]
'Iva                          [E]=IVA [ISE=]
Iva                          [E]=IVA

Total                  [E,TOT  ]=TOT
Confirmar linha              [E]=CFL; CF2:ALT, ESC:LPL
Registar                     [E]=REG
Fim de sequencia             [E]=FIM

'alterar dados
Inicio de alteracao    [E,ALT  ]=ALT
'Campo opcional 1            [E]=OPC 1
Quantidade                   [E]=QU
Preco                        [E]=PRC 0,-1
Desconto                     [E]=DES
Razao NCR                    [E]=NCR_RAZ [USO=AUT]
Iva                          [E]=IVA;TOT
'Iva                          [E]=IVA [ISE=]; TOT

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM

Inicio de correccao   [E,EXECOR]=COR
'Campo opcional 1            [E]=OPC 1
Quantidade                   [E]=QU
Preco                        [E]=PRC 0,-1
Desconto                     [E]=DES
Razao NCR                    [E]=NCR_RAZ [USO=AUT]
Iva                          [E]=IVA;TOT
'Iva                          [E]=IVA [ISE=]; TOT

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM


'------------------------------------------------------------------------------
'#PMO - Tipo Valor total (portes e Mao de obra)
'------------------------------------------------------------------------------
Identificacao de sequencia [IDS]=PMO
Codigos validos            [ID1]=PORTE,MOBRA
Codigos invalidos          [ID0]=

Funcao : Recolha       [FX,REC ]=REC; EXE
Funcao : Corrigir      [FX,COR ]=COR; EXECOR
Funcao : Executar      [FX,EXE ]=*
Recolha automatica           [E]=RAUTO
Preco                        [E]=PRC 0,-1
Desconto                     [E]=DES
Razao NCR                    [E]=NCR_RAZ [USO=AUT]
Iva                          [E]=IVA
'Iva                          [E]=IVA [ISE=]
Total                  [E,TOT  ]=TOT
Confirmar linha              [E]=CFL; CF2:ALT, ESC:LPL
Registar                     [E]=REG
Fim de sequencia             [E]=FIM

Inicio de alteracao    [E,ALT  ]=ALT
Preco                        [E]=PRC 0,-1
Desconto                     [E]=DES
Razao NCR                    [E]=NCR_RAZ [USO=AUT]
Iva                          [E]=IVA;TOT
'Iva                          [E]=IVA [ISE=]; TOT

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM

Inicio de correccao   [E,EXECOR]=COR
Preco                        [E]=PRC 0,-1
Desconto                     [E]=DES
Razao NCR                    [E]=NCR_RAZ [USO=AUT]
Iva                          [E]=IVA;TOT
'Iva                          [E]=IVA [ISE=]; TOT

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM


'------------------------------------------------------------------------------
'#MED - Tipo Medidas
'------------------------------------------------------------------------------
Identificacao de sequencia [IDS]=MED
Codigos validos            [ID1]=MED
Codigos invalidos          [ID0]=

Funcao : Recolha       [FX,REC ]=REC; EXE
Funcao : Corrigir      [FX,COR ]=COR; EXECOR
Funcao : Executar      [FX,EXE ]=*
Recolha automatica           [E]=RAUTO
Quantidade                   [E]=QU
Medidas (altera se nulo)     [E]=MED
'Medidas (forca alteracao)    [E]=MED ALT
'Esperar (segundos)           [E]=EspSeg 2
Preco                        [E]=PRC 0,-1
Desconto                     [E]=DES
Razao NCR                    [E]=NCR_RAZ [USO=AUT]
Iva                          [E]=IVA
'Iva                          [E]=IVA [ISE=]
Total                  [E,TOT  ]=TOT
Confirmar linha              [E]=CFL; CF2:ALT, ESC:LPL
Registar                     [E]=REG
Fim de sequencia             [E]=FIM

Inicio de alteracao    [E,ALT  ]=ALT
Medidas (forca alteracao)    [E]=MED ALT
Preco                        [E]=PRC 0,-1
Desconto                     [E]=DES
Razao NCR                    [E]=NCR_RAZ [USO=AUT]
Iva                          [E]=IVA; TOT
Iva                          [E]=IVA [ISE=]; TOT

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM

Inicio de correccao   [E,EXECOR]=COR
Medidas (forca alteracao)    [E]=MED ALT
Preco                        [E]=PRC 0,-1
Desconto                     [E]=DES
Razao NCR                    [E]=NCR_RAZ [USO=AUT]
Iva                          [E]=IVA; TOT
'Iva                          [E]=IVA [ISE=]; TOT

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM



'------------------------------------------------------------------------------
'#TXL - Tipo Texto livre
'------------------------------------------------------------------------------
Identificacao de sequencia [IDS]=TXL
Codigos validos            [ID1]=
Codigos invalidos          [ID0]=
'Modos de uso               [IDM]=Rec:RTX; Alt:RTX; Cor:RTX

Funcao : Recolha       [FX,REC ]=REC; EXE
Funcao : Corrigir      [FX,COR ]=COR; EXE
Funcao : Executar      [FX,EXE ]=*

Texto                  [E,RTX  ]=TXL

Recolha automatica           [E]=RAUTO
Confirmar linha              [E]=CFL; CF2:RTX, ESC:LPL
Registar                     [E]=REG
Fim de sequencia             [E]=FIM

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM


'------------------------------------------------------------------------------
'#IDE - Linha artigo com nome livre 
'------------------------------------------------------------------------------
Identificacao de sequencia [IDS]=IDE
Codigos validos            [ID1]=
Codigos invalidos          [ID0]=
'Modos de uso               [IDM]=Rec,Cor

Funcao : Recolha       [FX,REC ]=REC; EXE
Funcao : Corrigir      [FX,COR ]=COR; EXECOR
Funcao : Executar      [FX,EXE ]=*
Recolha aautomatica          [E]=RAUTO
Campo opcional 1             [E]=OPC OPCIDE,Nome,A30

Descricao adicional          [E]=ZTX [IDE=Descrição Adicional][DX=6000][DY=3500][NDI=120]

Quantidade                   [E]=QU; ESC:LPL
Preco                        [E]=PRC 0,-1
Desconto                     [E]=DES
Razao NCR                    [E]=NCR_RAZ [USO=AUT]
Iva                          [E]=IVA
'Iva                          [E]=IVA [ISE=]

Total                  [E,TOT  ]=TOT
Confirmar linha              [E]=CFL; CF2:ALT, ESC:LPL
Registar                     [E]=REG
Fim de sequencia             [E]=FIM

'alterar dados
Inicio de alteracao    [E,ALT  ]=ALT
Quantidade                   [E]=QU
Preco                        [E]=PRC 0,-1
Desconto                     [E]=DES
Razao NCR                    [E]=NCR_RAZ [USO=AUT]
Iva                          [E]=IVA; TOT
'Iva                          [E]=IVA [ISE=]; TOT

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM


Inicio de correccao   [E,EXECOR]=COR
Quantidade                   [E]=QU
Preco                        [E]=PRC 0,-1
Desconto                     [E]=DES
Razao NCR                    [E]=NCR_RAZ [USO=AUT]
Iva                          [E]=IVA; TOT
'Iva                          [E]=IVA [ISE=]; TOT

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM



'------------------------------------------------------------------------------
'#ECO_ART - Artigos com Ecovalor
'------------------------------------------------------------------------------
Identificacao de sequencia [IDS]=ECO_ART
Codigos validos            [ID1]=
Codigos invalidos          [ID0]=

'Modos de uso               [IDM]=Rec,Cor

Funcao : Recolha       [FX,REC ]=REC; EXE
Funcao : Corrigir      [FX,COR ]=COR; EXECOR
Funcao : Executar      [FX,EXE ]=*
Recolha automatica           [E]=RAUTO ART:SBT
Quantidade                   [E]=QU; ESC:LPL
Preco                        [E]=PRC 0,-1
Desconto                     [E]=DES
Iva                          [E]=IVA
'Iva                          [E]=IVA [ISE=]

Total                  [E,TOT  ]=TOT
Confirmar linha              [E]=CFL; CF2:ALT, ESC:LPL

Guardar quantidade           [E]=MEM_G ECO.QU,[QUR]

Registar                     [E]=REG
Fim de sequencia             [E]=FIM

'alterar dados
Inicio de alteracao    [E,ALT  ]=ALT
Quantidade                   [E]=QU
Preco                        [E]=PRC 0,-1
Desconto                     [E]=DES
Razao NCR                    [E]=NCR_RAZ [USO=AUT]
Iva                          [E]=IVA; TOT
'Iva                          [E]=IVA [ISE=]; TOT


'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM

Inicio de correccao   [E,EXECOR]=COR
Quantidade                   [E]=QU
Preco                        [E]=PRC 0,-1
Desconto                     [E]=DES
Razao NCR                    [E]=NCR_RAZ [USO=AUT]
Iva                          [E]=IVA; TOT
'Iva                          [E]=IVA [ISE=]; TOT

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM


'------------------------------------------------------------------------------
'#ECO_DIS - Ecovalor discriminado
'------------------------------------------------------------------------------
Identificacao de sequencia [IDS]=ECO_DIS
Codigos validos            [ID1]=
Codigos invalidos          [ID0]=

'Modos de uso               [IDM]=Rec,Cor

Funcao : Recolha       [FX,REC ]=REC; EXE
Funcao : Corrigir      [FX,COR ]=COR; EXECOR
Funcao : Executar      [FX,EXE ]=*
Recolha automatica           [E]=RAUTO

Activar modo automatico      [E]=AUT 1
Consultar quantidade         [E]=MEM_C ECO.QU,[QUR]
Quantidade                   [E]=QU; ESC:LPL
Desactivar modo automatico   [E]=AUT 0

Preco                        [E]=PRC 0,-1
Desconto                     [E]=DES
Razao NCR                    [E]=NCR_RAZ [USO=AUT]
Iva                          [E]=IVA
'Iva                          [E]=IVA [ISE=]

Funcao : Executar      [FX,CMP ]=*
Recolha automatica           [E]=RAUTO

Total                  [E,TOT  ]=TOT
Confirmar linha              [E]=CFL; CF2:ALT, ESC:LPL
Registar                     [E]=REG
Fim de sequencia             [E]=FIM

'alterar dados
Inicio de alteracao    [E,ALT  ]=ALT
Quantidade                   [E]=QU
Preco                        [E]=PRC 0,-1
Desconto                     [E]=DES
Razao NCR                    [E]=NCR_RAZ [USO=AUT]
Iva                          [E]=IVA; TOT
'Iva                          [E]=IVA [ISE=]; TOT

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM


Inicio de correccao   [E,EXECOR]=COR
Quantidade                   [E]=QU
Preco                        [E]=PRC 0,-1
Desconto                     [E]=DES
Razao NCR                    [E]=NCR_RAZ [USO=AUT]
Iva                          [E]=IVA; TOT
'Iva                          [E]=IVA [ISE=]; TOT
'Iva                          [E]=IVA; TOT

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM


'------------------------------------------------------------------------------
'#AGP - Artigo/Grupo cores e tamanhos
'------------------------------------------------------------------------------
Identificacao de sequencia [IDS]=AGP
Codigos validos            [ID1]=
Codigos invalidos          [ID0]=

Funcao : Recolha       [FX,REC ]=REC; EXE
Funcao : Corrigir      [FX,COR ]=COR; EXECOR
Funcao : Executar      [FX,EXE ]=*
Recolha automatica           [E]=RAUTO
Quantidade                   [E]=QUAGP; ESC:LPL
Preco                        [E]=PRC 0,-1
Desconto                     [E]=DES
Razao NCR                    [E]=NCR_RAZ [USO=AUT]
Iva                          [E]=IVA
'Iva                          [E]=IVA [ISE=]

Total                  [E,TOT  ]=TOT
Confirmar linha              [E]=CFL; CF2:ALT, ESC:LPL
Registar                     [E]=REG
Fim de sequencia             [E]=FIM

'alterar dados
Inicio de alteracao    [E,ALT  ]=ALT
Quantidade                   [E]=QUAGP
Preco                        [E]=PRC 0,-1
Desconto                     [E]=DES
Razao NCR                    [E]=NCR_RAZ [USO=AUT]
Iva                          [E]=IVA; TOT
'Iva                          [E]=IVA [ISE=]; TOT

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM

Inicio de correccao   [E,EXECOR]=COR
Quantidade                   [E]=QUAGP
Preco                        [E]=PRC 0,-1
Desconto                     [E]=DES
Razao NCR                    [E]=NCR_RAZ [USO=AUT]
Iva                          [E]=IVA; TOT
'Iva                          [E]=IVA [ISE=]; TOT

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM



'------------------------------------------------------------------------------
'#RET_IRS - Retencao de IRS
'------------------------------------------------------------------------------
Identificacao de sequencia [IDS]=RET_IRS
Codigos validos            [ID1]=
Codigos invalidos          [ID0]=

'Modos de uso               [IDM]=Rec,Cor

Funcao : Recolha       [FX,REC ]=REC; EXE
Funcao : Corrigir      [FX,COR ]=COR; EXECOR
Funcao : Executar      [FX,EXE ]=*
Recolha automatica           [E]=RAUTO ART:SBT

'Quantidade                   [E]=QU; ESC:LPL
'Quantidade+opcoes            [E]=QuOpc [MQU=NEG][ZER=N]; ESC:LPL
Quantidade+opcoes            [E]=QuOpc [MQU=AUT][QUA= 1]; ESC:LPL

'Preco                        [E]=PRC
Preco                        [E]=AUTO_VU CTP72:79

'Percentagem a usar           [E]=PER 25
Percentagem a usar           [E]=PER PV1

Desconto                     [E]=DES
Iva                          [E]=IVA
'Iva                          [E]=IVA [ISE=-]

Total                  [E,TOT  ]=TOT
Confirmar linha              [E]=CFL; CF2:ALT, ESC:LPL

Registar                     [E]=REG
Fim de sequencia             [E]=FIM

'alterar dados
Inicio de alteracao    [E,ALT  ]=ALT
Quantidade                   [E]=QU
'Quantidade+opcoes            [E]=QuOpc [MQU=NEG][ZER=N]; ESC:LPL
'Quantidade+opcoes            [E]=QuOpc [MQU=AUT][QUA= -2]; ESC:LPL
Preco                        [E]=PRC
'Desconto                     [E]=DES
Iva                          [E]=IVA; TOT
'Iva                          [E]=IVA [ISE=-]; TOT

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM

Inicio de correccao   [E,EXECOR]=COR
Quantidade                   [E]=QU
Preco                        [E]=PRC
'Desconto                     [E]=DES
Iva                          [E]=IVA; TOT
'Iva                          [E]=IVA [ISE=]; TOT

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM


'------------------------------------------------------------------------------
'#VTO - Recolha por valor total 
'------------------------------------------------------------------------------
Identificacao de sequencia [IDS]=VTO
Codigos validos            [ID1]=
Codigos invalidos          [ID0]=
'Modos de uso               [IDM]=Rec,Cor

Funcao : Recolha       [FX,REC ]=REC; EXE
Funcao : Corrigir      [FX,COR ]=COR; EXECOR
Funcao : Executar      [FX,EXE ]=*
Recolha aautomatica          [E]=RAUTO
'Campo opcional 1             [E]=OPC OPCIDE,Nome,A30
Quantidade                   [E]=QU; ESC:LPL
'Preco                        [E]=PRC 0,-1

Valor total                  [E]=VTO
'Valor total                  [E]=VTO [VLC=QUA][PRC=PV2]

Desconto                     [E]=DES
Razao NCR                    [E]=NCR_RAZ [USO=AUT]
Iva                          [E]=IVA
'Iva                          [E]=IVA [ISE=]


Total                  [E,TOT  ]=TOT
Confirmar linha              [E]=CFL; CF2:ALT, ESC:LPL
Registar                     [E]=REG
Fim de sequencia             [E]=FIM

'alterar dados
Inicio de alteracao    [E,ALT  ]=ALT
Quantidade                   [E]=QU
Valor total                  [E]=VTO
'Valor total                  [E]=VTO [VLC=QUA][PRC=PV2]
'Preco                        [E]=PRC 0,-1
Desconto                     [E]=DES
Razao NCR                    [E]=NCR_RAZ [USO=AUT]
Iva                          [E]=IVA; TOT
'Iva                          [E]=IVA [ISE=]; TOT

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM


Inicio de correccao   [E,EXECOR]=COR
Quantidade                   [E]=QU
Valor total                  [E]=VTO
'Preco                        [E]=PRC 0,-1
Desconto                     [E]=DES
Razao NCR                    [E]=NCR_RAZ [USO=AUT]
Iva                          [E]=IVA; TOT
'Iva                          [E]=IVA [ISE=]; TOT

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM


'------------------------------------------------------------------------------
'#IDA - Tipo IDA
'------------------------------------------------------------------------------
Identificacao de sequencia [IDS]=IDA
Codigos validos            [ID1]=*
Codigos invalidos          [ID0]=PORTE,MOBRA

'Modos de uso               [IDM]=Rec,Cor

Funcao : Recolha       [FX,REC ]=REC; EXE
Funcao : Corrigir      [FX,COR ]=COR; EXECOR
Funcao : Executar      [FX,EXE ]=*

Recolha automatica           [E]=RAUTO
'Campo opcional              [E]=OPC Var$,Descricao,Tipo(A/N)+Dig
'Centro de custo adicional   [E]=OPC CCU.ADI,CCU Adicional,A10
'Conta de contabilizacao     [E]=OPC_CT [IDE=Contabilizacao][TPC=CTP.ADI][PSQ=7]
'Activar modo automatico      [E]=AUT 1

'Modo Automatico              [E]=AUT 1
Quantidade                   [E]=QU; ESC:LPL
'Quantidade 2                [E]=QU2
'Desactivar modo automatico   [E]=AUT 0

'Preco                        [E]=PRC 0,-1
Preco IDA                    [E]=IdaPRC
Desconto                     [E]=DES
Razao NCR                    [E]=NCR_RAZ [USO=AUT]
'Iva                          [E]=IVA [ISE=]
Iva                          [E]=IVA

'Funcao e Mensagem (MsgBox)   [E]=FxExe UtzMsgBox
'Funcao e Mensagem (Sbar)     [E]=FxExe UtzMsgSbar
'Mensagem em MsgBox           [E]=MsgBox "",Titulo,Linha1|Linha2
'Mensagem em Status Bar       [E]=MsgSbar 1,Msg painel 1
'Esperar (segundos)           [E]=EspSeg 2

Total                  [E,TOT  ]=TOT
Confirmar linha              [E]=CFL; CF2:ALT, ESC:LPL
Registar                     [E]=REG
Fim de sequencia             [E]=FIM

'alterar dados
Inicio de alteracao    [E,ALT  ]=ALT
'Campo opcional 1            [E]=OPC 1
Quantidade                   [E]=QU
'Preco                        [E]=PRC 0,-1
Preco IDA                    [E]=IdaPRC
Desconto                     [E]=DES
Razao NCR                    [E]=NCR_RAZ [USO=AUT]
'Iva                          [E]=IVA [ISE=]; TOT
Iva                          [E]=IVA; TOT

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM

Inicio de correccao   [E,EXECOR]=COR
'Campo opcional 1            [E]=OPC 1
Quantidade                   [E]=QU
'Preco                        [E]=PRC 0,-1
Preco IDA                    [E]=IdaPRC
Desconto                     [E]=DES
Razao NCR                    [E]=NCR_RAZ [USO=AUT]
'Iva                          [E]=IVA [ISE=]; TOT
Iva                          [E]=IVA; TOT

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM
##


'==============================================================================
'- Recolha do Cabecalho do documento ------------------------------------------
'==============================================================================
'==============================================================================
#PAGDEF - Definicao de paginas
'==============================================================================
Pagina inicial      [PagIni]=1
Campo inicial       [CmpIni]=5
##


'==============================================================================
#PAG  Dados para Documento    'Definicao da pagina 
'==============================================================================
'mo asp x   y  identificacao      di  variavel                                     frm   dv ope
30,-10, 10, 30,"Conta          "  ,100,Cta_Mst_Ct$                                 ,30.0,250
30,-10, 10, 50,"Nome           "  ,100,VarAlt$("ENC_MST","Cta_Mst_Nome$")          ,30.0,250
30,-10,370, 30,"Contribuinte  "   ,100,VarAlt$("ENC_MST","Cta_Mst_Ctrb$")          ,12.0,130

30,-10,112, 80,"Transporte - Destino",250,XXX                                      ,10.0,  1
31, 10, 10,105,"Morada       "    ,100,VarAlt$("ENC_MST","Cta_Ang_Morada$")        ,40.0,250
31, 10, 10,125,"Localidade   "    ,100,VarAlt$("ENC_MST","Cta_Ang_Local$")         ,40.0,250
31, 10, 10,145,"Código Postal"    ,100,VarAlt$("ENC_MST","Cta_Ang_Cpost$")         ,40.0,250

30,-10,112,175,"Transporte - Origem",250,XXX                                       ,10.0,  1
31, 10, 10,200,"Morada          " ,100,VarAlt$("ENC_MST","Emp_Inf_Morada$")        ,40.0,250
31, 10, 10,220,"Localidade      " ,100,VarAlt$("ENC_MST","Emp_Inf_Local$")         ,40.0,250
31, 10, 10,240,"Código Postal   " ,100,VarAlt$("ENC_MST","Emp_Inf_Cpost$")         ,40.0,250
31, 10, 10,280,"Informação Livre" ,100,TxIde$(Enc_Mst_Opc$,"INF1")                 ,40.0,250

31, 10,370,105,"Desconto a usar ",100,VarAlt$("ENC_MST","Cta_Ang_Desco$,Desco")   ,30.0, 25
31, 10,370,135,"Cond. Pagamento" ,100,Enc_Mst_CpagCod                             , 2.0, 50
31, 10,370,165,"Vendedor       " ,100,Enc_Mst_Vend                                , 2.0, 50
31, 10,370,195,"Descrição p/ doc"   ,100,TxIde$(Enc_Mst_Opc$,"DOC_DESCR")         , 8.0, 90
'31, 10,370,225,"IVA pelo adquirente",100,TxIde$(Enc_Mst_Opc$,"OPC_IvaAdq")        , 5.0, 50

'30,110,370,250,"CCU - Saida    " ,100,TxIde$(Enc_Mst_Opc$,"CCU.SAI")              , 5.0, 50
'30,110,370,280,"CCU - Entrada  " ,100,TxIde$(Enc_Mst_Opc$,"CCU.ENT")              , 5.0, 50
##

'30, 10,430,100,100,  8.0,"Texto   : ",150,Variavel,Ope
' |   |  |   |   |    |      |          |    |       |
' |   |  |   |   |    |      |          |    |       +--> Opcao especial
' |   |  |   |   |    |      |          |    +----------> Variavel
' |   |  |   |   |    |      |          +---------------> Dimensao da identificacao
' |   |  |   |   |    |      +--------------------------> Texto Informativo
' |   |  |   |   |    +--------------> Formato do valor
' |   |  |   |   +-------------------> Dimensao
' |   |  |   +-----------------------> Coluna
' |   |  +---------------------------> Linha
' |   +------------------------------> Tipo de valor/Aspecto
' +----------------------------------> Controlo de recolha
'
'1o parametro - modo/controlo de recolha (<0 nao pode alterar)
'2o parametro - tipo dos dados/aspecto
'3o parametro - linha
'4o parametro - coluna
'5o parametro - dimensao da identificacao
'6o parametro - formato do valor (inteiros.decimais)
'7o parametro - texto informativo
'8o parametro - variavel
'
'Controlo de recolha : 1x - Pode modificar para registo novo
'                      2x - Pode modificar para alteracao de registo
'                      3x - Igual a 1x+2x
'                      ?0 - Nao cria variavel
'                      ?1 - Cria variavel
'
'Notas : O campo 'Opcao especial' e opcional


'==============================================================================
#PGM - Funcoes para impressao do documento
'==============================================================================
'- +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
'- (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


'------------------------------------------------------------------------------
'Inicializacao do documento
'------------------------------------------------------------------------------
Sub FxIni 'funcao de inicializacao
Margem = 13

'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 

'diversos
call PrpVar_Com                            'preparar variaveis comuns
end sub


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


'------------------------------------------------------------------------------
'Logotipo
'------------------------------------------------------------------------------
Sub LogoPrp 'logotipo - preparar
logoUsaEmp = val(CfgDocTipLogo$)                'tipo de logo a usar

'activar logotipo a usar
if logoUsaEmp = 1 then                          'usar logotipo especifico da empresa ?
   logoNom$ = CfgDocNomLogo$                    'nome do logotipo
   logoDba$ = EmpFic$("EMP","Img")              'directorio de imagens na empresa
   logoUsa$ = logoDba$ +"\" + logoNom$          'logotipo a usar - empresa
   logoFic$ = VarTx$(logoUsa$,"R")              'ficheiro do logotipo
   PrWIN IMG_F, 1, logoFic$                     'imagem (logotipo)
end if

if logoUsaEmp = 2 then                          'usar logotipo neutro ?
   logoNom$ = "DocLogo.bmp"                     'nome do logotipo
   logoUsa$ = "[SIG_DIR.DIV]," + logoNom$       'logotipo a usar - comum
   logoFic$ = VarTx$(logoUsa$,"R")              'ficheiro do logotipo
   PrWIN IMG_F, 1, logoFic$                     'imagem (logotipo)
end if
end sub


Sub LogoDoc 'logotipo do documento
'validar uso de logotipo
usaLogo$ = "N"                                  'assume nao usar logotipo
prtLogo$ = PrtCmd$("[USALOGO]")                 'opcao de usar logotipo da impressora

if prtLogo$ = "S" then                          'usarlogotipo em funcao da impressora ?
   usaLogo$ = "S"                               'usar logotipo
else
   if logoUsaEmp <> 0 then                      'empresa usa logotipo ?
      usaLogo$ = "S"                            'usar logotipo
   end if

   if usaPapTim = 1 then                        'usa papel timbrado ? 
      usaLogo$ = "N"                            'nao usar logotipo
   end if
end if

'executar
if usaLogo$ = "S" then                          'usar ?
   call LogoExe                                 'logotipo - executar
end if
end sub


Sub LogoExe 'logotipo - executar
PrWIN AJT_B,  Margem, 10.0                      'posicao base

if UsaLarLog <> 0 then
   PrWIN IMG_V,1, 2, 2, ValLarLog, ValAltLog    'imagem (logotipo)
else
   PrWIN IMG_V,1, 2, 2, 50, 20                  'imagem (logotipo)
end if

if UsaLogoCxe = 1 then
   if UsaLarLog <> 0 then
   alt$ = chr$(34)+"+"+ValAltLog+chr$(34)       'altura
   lar$ = chr$(34)+"+"+ValLarLog+chr$(34)       'largura

      PrWIN GR_CX,   2, 2, lar$, alt$, 2        'caixa envolvente
   else
      PrWIN GR_CX,   2, 2, "+50", "+20", 2      'caixa envolvente
   end if
end if
end sub


Sub LogoMb 'logotipo - multibanco
logoNom$ = "Mb_01.bmp"                          'nome do logotipo
logoUsa$ = "[SIG_DIR.DIV]," + logoNom$          'logotipo a usar - comum
logoFic$ = VarTx$(logoUsa$,"R")                 'ficheiro do logotipo
PrWIN IMG_F, 3, logoFic$                        'imagem (logotipo)
end sub


'------------------------------------------------------------------------------
' Funcoes para impressao do documento
'------------------------------------------------------------------------------
Sub DocCabIni 'inicializacao do documento
'definicao das moedas para valores
Moeda1    = Enc_Mst_Moeda                                                    'moeda do documento

'variaveis para totais
MoedaAbv1$ = EmpTabCon$("MOEDA",Enc_Mst_Moeda,"ABRV")                        'abreviatura moeda documento
TotalAbv1$ = "Total "+EmpTabCon$("MOEDA",Moeda1,"ABRV")                      'abreviatura total moeda  
DocEurCmb$ = FrmVal$(EmpTabCon$("MOEDA",Enc_Mst_Moeda,"CMBEUR"),21,3.3)      'cambio

'Definicao de posicoes de linhas
PosIdeLin    = 108                                                           'titulos das linhas
InicioLinhas = PosIdeLin                                                     'escrita das linhas documento
FimDoc       = 220                                                           'fim do documento

dimLinY      = 3.5                                                           'dimensao das linhas (altura)

'memorizar variaveis diversas
LinInf1$    = TxIde$(Enc_Mst_Opc$,"INF1")

DocRcDtSai$ = TxIde$(Enc_Mst_Opc$,"DTSAI")                                   'data de saida
'DocRcNum$   = FrmNdo$("",Enc_Mst_Tdoc$,Enc_Mst_Ndoc$)                       'numero documento
DocRcNum$   = DocFrmAsp$("AT.NDO", Enc_Mst_Tdoc$, Enc_Mst_Ndoc$,Enc_Mst_Dtl) 'numero documento formato AT
DocRcDtl$   = FrmVal$(Doc_Ide_Dtl,44,0)                                      'data lancamento 
DocRcDtv$   = FrmVal$(Doc_Ide_Dtv,44,0)                                      'data vencimento
DocRcDest$  = VarAlt$("ENC_MST","Cta_Ang_Local$,LocEnt$")                    'local de destino
DocRcOrg$   = VarAlt$("ENC_MST","Emp_Inf_Local$")                            'local de partida 
DocRcHrSai$ = FrmVal$(Enc_Mst_HrSai,53,0)                                    'hora de saida
DocRcViat$  = TxIde$(Enc_Mst_Opc$,"MAT")                                     'matricula

CerDocAnuAsp = 1                                                             'aspecto para documento anulado
call DocCerVarPrp                                                            'preparar variaveis referentes a certificacao

EcoValor   = 0                                                               'azerar variavel ecovalor
UsaPortes  = 0                                                               'azerar variavel portes
TotQu      = 0                                                               'total quantidades (unidades)
TotKg      = 0                                                               'total Kg
okIncLin   = 0                                                               'flag de incremento de linha

TipoRegIva = 0                                                               'usa regime de caixa ?
call UsaIvaCx                                                                'regime de iva
end sub


SUB DocCab                                                                   'cabecalho
PrWIN COR_T, UsaCorLetra                                                     'escrever letras com cor
call DocCabFac
end sub


Sub DocCabLogo 'cabecalho do documento - logotipo
call LogoDoc                                        'logotipo do documento
end sub


'------------------------------------------------------------------------------
' Linhas do Documento - Adicionais
'------------------------------------------------------------------------------
Sub Doc_LinIni 'inicio de linhas (previas)
'call Doc_LinIni_Exe                   'executar listagem
end sub


Sub Doc_LinFim 'fim de linhas (posteriores)
'call Doc_LinFim_Exe                   'executar listagem
end sub


Sub Doc_LinIni_Exe 'inicio de linhas - executar
'MsgBox "","FimDoc","LinIni"                                 'mostrar mensagem

for i = 1 to 3
txLin$ = "Linha previa: " + TxtCv$(i)                       'informacao a listar

call DocLinPos_Adi                                          'posicionar linha adicional
PrWIN TX_N, co01Pv, 0,txLin$                                'listar
next
end sub


Sub Doc_LinFim 'fim de linhas - executar
'MsgBox "","FimDoc","LinFim"                                 'mostrar mensagem

for i = 1 to 5
txLin$ = "Linha adicional: " + TxtCv$(i)

call DocLinPos_Adi                                          'posicionar linha adicional
PrWIN TX_N, co01Pv, 0,txLin$                                'listar
next
end sub


'------------------------------------------------------------------------------
' Linhas do Documento
'------------------------------------------------------------------------------
Sub DocLinPos 'posicionar linha
PrWIN AJT_B,   Margem, InicioLinhas+Doc_CntLin*3.5          'posicao base
end Sub


Sub DocLinPos_Adi 'posicionar linha adicional
tmp = CntLin("INC", 1)                                      'incrementar contador linhas
call DocLinPos                                              'posicionar linha
end Sub


Sub DocLinNor 'artigos tipo normal
Call DocLinPos                                              'posicionar linha

'listar
PrWIN TX_N,  co01Pv, 0,    @LinArtF                         'artigo
PrWIN TX_N,  co02Pv, 0,    @LinNome                         'nome
PrWIN TX_NP, co03Pv, 0,"N",@LinQu                           'quantidade 
PrWIN TX_N,  co04Pv, 0,    @LinUni                          'unidade

if UsaPrcGt = 1 then
   call DocLinLerVal                                        'ler valores
end if

if UsaMotIseFim = 0 then
   call PrtLinAdi_Ise                                       'escrever isencao do IVA
else
   IvaIseFim$ = EncIdeTbIvaIse$("",Enc_Mov_Opc$)            'motivo isencao
end if

call PrtLinAdi_RzNcr                                        'escrever razao nota credito

if UsaTqu = 1 then                                          'usa total de quantidades
   TotPs = Doc_Art_Qu * Stc_Mst_Peso                        'calcular total do peso
   TotKg = TotKg + TotPs                                    'acumular totais
end if

call PrtLinAdi_Cbar                                         'escreve codigo de barras ?
call PrtLinAdi_NomeS                                        'escreve nome suplementar do artigo ?
end sub


Sub DocLinNorIde 'artigos tipo normal com nome alterado
Call DocLinPos                                              'posicionar linha

'listar
PrWIN TX_N,  co01Pv, 0,    @LinArt                          'artigo
PrWIN TX_N,  co02Pv, 0,    @ArtIde                          'identificacao
PrWIN TX_NP, co03Pv, 0,"N",@LinQu                           'quantidade 
PrWIN TX_N,  co04Pv, 0,    @LinUni                          'unidade

if UsaPrcGt = 1 then
   call DocLinLerVal                                        'ler valores
end if

call PrtLinAdi_Cbar                                         'escreve codigo de barras ?
call PrtLinAdi_NomeS                                        'escreve nome suplementar do artigo ?

if UsaMotIseFim = 0 then
   call PrtLinAdi_Ise                                       'escrever isencao do IVA
else
   IvaIseFim$ = EncIdeTbIvaIse$("",Enc_Mov_Opc$)            'motivo isencao
end if

call PrtLinAdi_RzNcr                                        'escrever razao nota credito
end sub


Sub DocLinLot 'artigos tipo lote
Call DocLinPos                                              'posicionar linha

'listar
PrWIN TX_N,  co01Pv, 0,    @LinArt                          'artigo
PrWIN TX_N,  co02Pv, 0,    @LinNome                         'nome
PrWIN TX_NP, co03Pv, 0,"N",@LinQu                           'quantidade
PrWIN TX_N,  co04Pv, 0,    @LinUni                          'unidade

if UsaPrcGt = 1 then
   call DocLinLerVal                                        'ler valores
end if

call PrtLinAdi_Lot                                          'escrever lote

if IvaTax$("A") = 0 then
   if UsaMotIseFim = 0 then
      call PrtLinAdi_Ise                                    'escrever isencao do IVA
   else
      IvaIseFim$ = EncIdeTbIvaIse$("",Enc_Mov_Opc$)         'motivo isencao
   end if
end if
end sub


Sub DocLinLoM 'artigos tipo lote (manual)
Call DocLinPos                                              'posicionar linha

'listar
PrWIN TX_N,  co01Pv, 0,    @LinArt                          'artigo
PrWIN TX_N,  co02Pv, 0,    @LinNome                         'nome
PrWIN TX_NP, co03Pv, 0,"N",@LinQu                           'quantidade
PrWIN TX_N,  co04Pv, 0,    @LinUni                          'unidade

if UsaPrcGt = 1 then
   call DocLinLerVal                                        'ler valores
end if

call PrtLinAdi_Lom                                          'escrever lote

if IvaTax$("A") = 0 then
   if UsaMotIseFim = 0 then
      call PrtLinAdi_Ise                                    'escrever isencao do IVA
   else
      IvaIseFim$ = EncIdeTbIvaIse$("",Enc_Mov_Opc$)         'motivo isencao
   end if
end if
end sub


Sub DocLinMed 'artigos com medidas
call DocLinNor                                              'listar dados do artigo

'listar - medidas
tmp=CntLin("INC",1)                                         'incrementar contador linhas
Call DocLinPos                                              'posicionar linha
PrWIN TX_N,co02Pv   ,  0,"Medidas digitadas :"              'titulo - medidas 
PrWIN TX_N,co02Pv+22,  0,@LinMedTx                          'medidas digitadas

PrWIN TX_N,co02Pv+50,  0,"Medidas (Qnt)  :"                 'titulo
PrWIN TX_N,co03Pv+6 ,  0,@DocArtQuM                         'medidas em quantidade

'if UsaPrcGt = 1 then
'   PrWIN TX_N,co06Pv   ,  0,"Medidas (Val):"                'titulo
'   PrWIN TX_N,co07Pv+9 ,  0,@DocArtMedV                     'medidas em valor
'end if

if UsaMotIseFim = 0 then
   call PrtLinAdi_Ise                                       'escrever isencao do IVA
else
   IvaIseFim$ = EncIdeTbIvaIse$("",Enc_Mov_Opc$)            'motivo isencao
end if

call PrtLinAdi_RzNcr                                        'escrever razao nota credito
end sub


Sub DocLinIde 'artigos tipo nome livre
ArtIdeLin=1                                                 'activar tipo de linha
call DocLinNorIde                                           'listar
ArtIdeLin=0                                                 'desactivar tipo linha

vtx$ = ENC_Mov_Div$                                         'texto
nls = TgsExe("L", vtx$, 150, " ")                           'separar

for i = 1 to nls
    ltx$ = TgsCon$(i)                                       'consultar
    tmp = CntLin("INC",1)                                   'incrementar contador linhas
    Call DocLinPos                                          'posicionar linha

    PrWIN TX_N,  Co02Pv,  0,ltx$                            'listar
next

if UsaMotIseFim = 0 then
   call PrtLinAdi_Ise                                       'escrever isencao do IVA
else
   IvaIseFim$ = EncIdeTbIvaIse$("",Enc_Mov_Opc$)            'motivo isencao
end if

call PrtLinAdi_RzNcr                                        'escrever razao nota credito
end sub


Sub DocLinEco_Art 'artigos com ecovalor
vuEcoVal = Doc_Art_Liq                                      'guardar ecovalor

Call DocLinPos                                              'posicionar linha

'listar
PrWIN TX_N,  co01Pv, 0,    @LinArt                          'artigos
PrWIN TX_N,  co02Pv, 0,    @LinNome                         'nome
PrWIN TX_NP, co03Pv, 0,"N",@LinQu                           'quantidade
PrWIN TX_N,  co04Pv, 0,    @LinUni                          'unidade

if UsaPrcGt = 1 then
   call DocLinLerVal                                        'ler valores
end if


if UsaMotIseFim = 0 then
   call PrtLinAdi_Ise                                       'escrever isencao do IVA
else
   IvaIseFim$ = EncIdeTbIvaIse$("",Enc_Mov_Opc$)            'motivo isencao
end if

call PrtLinAdi_RzNcr                                        'escrever razao nota credito

EcoValor = 1                                                'usa ecovalor
end sub


Sub DocLinEco_Dis 'artigos discriminados com ecovalor
vuEcoVal = Doc_Art_Liq                                      'guardar ecovalor

Call DocLinPos                                              'posicionar linha

'listar
PrWIN TX_N,  co01Pv, 0,    @LinArt                          'artigo
PrWIN TX_N,  co02Pv, 0,    @LinNome                         'nome
PrWIN TX_NP, co03Pv, 0,"N",@LinQu                           'quantidade
PrWIN TX_N,  co04Pv, 0,    @LinUni                          'unidade 

if UsaPrcGt = 1 then
   call DocLinLerVal                                        'ler valores
end if

if UsaMotIseFim = 0 then
   call PrtLinAdi_Ise                                       'escrever isencao do IVA
else
   IvaIseFim$ = EncIdeTbIvaIse$("",Enc_Mov_Opc$)            'motivo isencao
end if

call PrtLinAdi_RzNcr                                        'escrever razao nota credito

EcoValor = 1                                                'usa ecovalor
end sub


Sub DocLinCor 'Exemplo campos opcionais
Call DocLinPos                                              'posicionar linha

'listar
call DocLinNor
call DocLinPos_Adi                                          'posicionar linha adicional
PrWIN TX_N, co02Pv ,  0,"Cor escolhida   :"
PrWIN TX_N, co02Pv+20,0,@LinOpcCor
end sub


Sub DocLinPmo 'artigos tipo Portes e Mao-de-obra
vuPortes = Doc_Art_Liq                                      'guardar valor de portes
Portes$  = FrmVal$(Doc_Art_Liq,21,12.2)                     'guardar valor para imprimir no final do documento
UsaPortes = 1                                               'usa portes
end sub


Sub DocLinTxl 'artigos tipo texto livre
'listar
call ZtxLst_Txl                                             'listar zona de texto - texto livre
end sub


Sub DocLinIda 'Exemplo IDA
ida$ = TxIde$(Enc_Mov_Opc$,"IDA")                           'artigo IDA

Call DocLinPos                                              'posicionar linha

'listar
call DocLinNor
call DocLinPos_Adi                                          'posicionar linha adicional
PrWIN TX_N, co02Pv ,  0,"IDA  :"                            'escrever label
PrWIN TX_N, co02Pv+8,0,ida$                                 'escrever IDA
end sub


Sub DocLinAjt 'ajuste de linhas
'nada a executar
end sub


Sub DocLinDoc 'linha de documento
Call DocLinPos                                              'posicionar linha

'listar
PrWIN TX_N,   co01Pv,  0,"Documento :"                      'titulo - documento
PrWIN TX_N,   co02Pv,  0,@DocIde                            'identificacao documento
end sub


Sub DocLinAgp 'artigos tipo grupo
Call DocLinNor                                              'listar dados do artigo

'listar dados adicionais
AgpC1=  3                                                   'coluna de codigo
AgpC2= 30                                                   'coluna de descricao
AgpC6=105                                                   'coluna de Quanidade
AgpC7=125                                                   'coluna de unidade

tmp=CntLin("INC",1)                                         'incrementar contador linhas
RegAgp = AgpAsp(">", 9, "Total")                            'separar titulos com 10 caracteres
nli    = AgpPrp(Enc_Mov_Art$, Enc_Mov_Opc$, zer)            'separar tamanhos recolhidos
tco$   = FrmVal$(AgpLin$(0),8)                              'descritivo dos tamanhos

call DocLinPos                                              'posicionar linha

AgpC1=  5                                                   'coluna de codigo
AgpC2= 25                                                   'coluna de descricao

PrWIN FON,  6.5, 1                             	            'activar fonte
PrWIN TX_NP, AgpC1, 0  ,"N","Cores   Tam. >>"               'titulo
PrWIN TX_NP, AgpC2, 0  ,"N",tco$                            'titulo

for li = 1 to nli
tmp=CntLin("INC",1)                                         'incrementar linha
PrWIN FON, 6.5, 1                             	            'activar fonte

call DocLinPos                                              'posicionar na linha
PrWIN TX_NP, AgpC1, 0,"N",AgpIde$(li)                       'nome das cores
PrWIN TX_NP, AgpC2, 0,"N",AgpLin$(li)                       'quantidade das cores
next

tmp=CntLin("INC",1)                                         'incrementar linha
PrWIN FON, 6.5, 1                             	            'activar fonte
call DocLinPos                                              'posicao base

tot$ = FrmVal$(AgpTot$(0),8)                                'descritivo dos tamanhos
PrWIN TX_NP,AgpC1, 0,"N","Totais : "                        'titulo totais
PrWIN TX_NP,AgpC2, 0,"N",tot$                               'totais
end sub


Sub DocLinRet_Irs 'artigos com retencao de IRS
call DocLinPos                                              'posicao base

PrWIN TX_N,  co01Pv, 0,    @LinArt                          'artigo
PrWIN TX_N,  co02Pv, 0,    @LinNome                         'nome
PrWIN TX_NP, co05Pv, 0,"N",@LinLiq                          'liquido
end sub


Sub DocLinLerVal 'documento com valores ?
usaIvaSep = 0                                               'assume preco sem iva separado
if Stc_Mst_CodIva > 1000 then                               'preco com IVA incluido ?
   if UsaPrcIva > 0 then                                    'usar preco com IVA separado ?
      usaIvaSep = 1                                         'usar preco com iva separado
      call DocLinValPrcIva
   end if
end if

if usaIvaSep = 1 then                                       'preco com iva separado
   PrWIN TX_NP, co05Pv, 0,"N",@vaPrcInc                     'preco unitario sem iva
   PrWIN TX_NP, co07Pv, 0,"N",@vaLiqInc                     'liquido sem iva
else
   PrWIN TX_NP, co05Pv, 0,"N",@LinPrc                       'preco unitario 
   PrWIN TX_NP, co07Pv, 0,"N",@LinLiq                       'liquido
end if

PrWIN TX_CTR, co06Pv, 0, co07Pv,0,@LinDesco                 'desconto 
PrWIN TX_NP, co08Pv, 0,"N",@Iva                             'IVA
end sub


Sub DocLinVto 'valor total
Call DocLinPos                                              'posicionar linha

'listar
PrWIN TX_N,  co01Pv, 0,    @LinArtF                         'artigo
PrWIN TX_N,  co02Pv, 0,    @LinNome                         'nome
PrWIN TX_NP, co03Pv, 0,"N",@LinQu                           'quantidade 
PrWIN TX_N,  co04Pv, 0,    @LinUni                          'unidade

if UsaPrcGt = 1 then
   call DocLinLerVal                                        'ler valores
end if

if UsaMotIseFim = 0 then
   call PrtLinAdi_Ise                                       'escrever isencao do IVA
else
   IvaIseFim$ = EncIdeTbIvaIse$("",Enc_Mov_Opc$)            'motivo isencao
end if

call PrtLinAdi_RzNcr                                        'escrever razao nota credito
end sub



Sub DocLinValPrcIva 'separar valor de IVA
vuPrcIva = IvaIncSep("IVA",Doc_Art_Prc,IvaTax$("A"),2,2)    'preco unitario - valor de IVA
vuPrcInc = IvaIncSep("LIQ",Doc_Art_Prc,IvaTax$("A"),2,2)    'preco unitario - sem IVA

VuLiqIva =IvaIncSep("IVA",Doc_Art_Liq,IvaTax$("A"),2,2)     'valor liquido - valor de IVA
VuLiqInc =IvaIncSep("LIQ",Doc_Art_Liq,IvaTax$("A"),2,2)     'valor liquido - sem IVA
end sub


'------------------------------------------------------------------------------
' Final do Documento
'------------------------------------------------------------------------------
Sub DocFimAjt 'ajuste de fim de pagina
PrWIN AJT_B,   8, FimDoc                                    'posicao base
PrWIN FON, 9, 1                             	            'activar fonte
PrWIN TX_N,  5,  0,"Documento não totalmente impresso ..."
PrWIN FP                                                    'fim de pagina
end sub


Sub DocFim 'totais do documento
IvaLinMax = 4                                           'maximo de linhas para IVA
call EncDocCom_PrpLstIva                                'preparar listagem IVA
call RetIrsPrp                                          'preparar dados para retencao de IRS

if usaInfLin = 1 then
   PrWIN FON, 6, 1                             	        'activar fonte
   PrWIN AJT_B, Margem, FimDoc-2                        'posicao base
   PrWIN TX_N,  0, 0, CfgDocUsaLinInf$                  'informacao de fim de linha
   PrWIN FON, 8, 1                             	        'activar fonte
end if

PrWIN AJT_B,   Margem, FimDoc+2                         '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
end if

call SelTipFimDoc

'terminar
PrWIN FP                                                'fim de pagina
end sub


Sub RetIrsPrp 'preparar dados para retencao de IRS
usaRetIrsVal = CtpVl(81,"T")                            'valor de retencao a usar

if usaRetIrsVal <> 0 then                               'ha retencao de IRS ?
   vuRetIrsIde$ = "Retenção IRS"                        'identificacao
   vuRetIrsVal$ = FrmNum$(12.2,usaRetIrsVal)            'valor

   usaRetIrsRecV = Ado_Tot_Tot - usaRetIrsVal           'valor a receber (total - retencao)
   vuRetIrsRecI$ = "Total a Receber"                    'total a receber - identificacao
   vuRetIrsRecV$ = FrmNum$(12.2,usaRetIrsRecV)          'total a receber - valor
else
   vuRetIrsIde$ = ""                                    'identificacao
   vuRetIrsVal$ = ""                                    'valor

   vuRetIrsRecI$ = ""                                   'total a receber - identificacao
   vuRetIrsRecV$ = ""                                   'total a receber - valor
end if
end sub


Sub PrtLinAdi_Lot 'escrever lote
call DocLinPos_Adi                                      'posicionar linha adicional
res = EncLotLer(Enc_Mov_Lote$)                          'ler lote
PrWin FON, "BOLD+"                                      'activar bold
PrWIN TX_N,  co02Pv, 0,"Lote :"                         'titulo 
PrWIN TX_N,  co02Pv+ 8,0,Enc_LOT_Lot$                   'imprime numero lote
PrWIN TX_N,  co02Pv+42,0,"Validade :"                   'titulo 
PrWIN TX_N,  co02Pv+55,0,Enc_LOT_DtLim$                 'imprime data
PrWin FON, "BOLD-"                                      'desactivar bold
end sub


Sub PrtLinAdi_Lom 'escrever lote (manual)
call DocLinPos_Adi                                      'posicionar linha adicional
PrWIN TX_N,  co02Pv  , 0,"Lote :"                       'lote - texto
PrWIN TX_N,  co02Pv+8, 0,@LinLote                       'lote
end sub


Sub PrtLinAdi_Ise 'escrever isencao do IVA
IvaIse$ = EncIdeTbIvaIse$("",Enc_Mov_Opc$)

if IvaIse$<>"" then                                     'motivo isencao iva ?
   call DocLinPos_Adi                                   'posicionar linha adicional
   PrWIN TX_NP,co02Pv, 0,"N",IvaIse$                    'isencao iva
end if
end sub


Sub PrtLinAdi_RzNcr 'escrever razao nota credito
RzaNcr$ = EncIdeTbNcrRaz$("",Enc_Mov_Opc$)

if RzaNcr$<>"" then                                     'razao nota credito ?
   call DocLinPos_Adi                                   'posicionar linha adicional
   PrWIN TX_NP,co02Pv, 0,"N",RzaNcr$                    'razao nota credito ?
end if
end sub


Sub PrtLinAdi_Cbar 'escrever codigo de barras
if ImpCbar = 1 then
   call DocLinPos_Adi                                   'posicionar linha adicional
   PrWIN TX_N,  co01Pv, 0,    @LinCbar                  'codigo barras
   okIncLin = 0                                         'escreve, nao incrementa linha 
else
   okIncLin = 1                                         'no proximo campo, incrementa linha
end if
end sub


Sub PrtLinAdi_NomeS 'escrever nome suplementar do artigo
if UsaNSupl = 1 then
   if okIncLin = 0 then                                 'ja incrementou linha
      PrWIN TX_N,  co02Pv, 0,    @LinNomS               'nome suplementar
   else
      call DocLinPos_Adi                                'posicionar linha adicional
      PrWIN TX_N,  co02Pv, 0,    @LinNomS               'nome suplementar
   end if
end if
end sub


SUB UsaIvaCx 'regime de iva
'IvaCx$ = TxIde$(Emp_Inf_Opc$,"IVACX")                   'usa regime Iva caixa ?
IvaCx$ = TxIde$(Enc_Mst_Opc$,"IVACX_DOC")               'usa regime Iva caixa ?

if IvaCx$="S" then
   TipoRegIva = 1                                       'usa regime iva caixa
else
   TipoRegIva = 0                                       'usa regime iva geral
end if
end sub


'------------------------------------------------------------------------------
' Funcoes diversas
'------------------------------------------------------------------------------
'Sub UtzMsgSbar 'mensagem na status bar
'zona=0                                'numero da zona
'msg$="Mensagem ao utilizador"         'mensagem

'upc=Stc_Acm_Upc                       'UPC
'prc=Doc_Art_Prc                       'preco
'maV=prc-upc                           'margem em valor
'if maV<>0 then
'   if prc=0 then
'      txm$="0 (Prc=0)
'   else
'      maP=maV/prc*100                 'calcular %
'      txm$= FrmVal$(maP,21,3.2)+"%"
'    end if
'else
'   txm$="100 (UPC=0)"
'end if

'txi$="  UPC="+str$(upc)+"  Prc="+str$(prc)+"  Dif.="+str$(maV)             
'msg$="Margem: "+txm$+txi$             

'MsgSbar zona,msg$                     'mostrar mensagem
'end sub


'Sub UtzMsgBox 'mensagem
'modo$=""                              'modo da mensagem
'tit$="Titulo da mensagem"             'titulo
'msg$="Mensagem ao utilizador"         'mensagem
'MsgBox modo$,tit$,msg$                'mostrar mensagem
'end sub


'==============================================================================
'#ZON.DOC - Zonas do documento
'==============================================================================
Sub SelTipFimDoc                                        'seleccionar tipo de fim do documento
out=0

'CerNatChv$ = EncDocCer$("TDO.TSA.COD",Enc_Mst_Tdoc$)    'natureza - codigo

if CerNatChv$ = "FT" then                               'factura
   call Zon_IvaPos                                      'listar zona de IVA

   if UsaFacGt = 1 then
      call Zon_TrpPos                                   'listar zona de transporte
   else
      call Zon_FacPos                                   'listar zona de factura
   end if

   call Zon_TotPos                                      'listar zona de totais
   call Zon_RpePos                                      'listar zona de rodape
   out = 1                                              'activar 

   if UsaMb = 1 then                                    'usa multibanco ?
      if UsaFacGT = 1 then
         call MbRefGT
      else
         call MbRef
      end if
   end if
end if


if CerNatChv$ = "FR" then                               'factura/recibo
   call Zon_IvaPos                                      'listar zona de IVA

   if UsaFacGt = 1 then
      call Zon_TrpPos                                   'listar zona de transporte
   else
      call Zon_FacPos                                   'listar zona de factura
   end if

   call Zon_TotPos                                      'listar zona de totais
   call Zon_RpePos                                      'listar zona de rodape
   out = 1                                              'activar 
end if


if CerNatChv$ = "FS" then                               'factura simplificada
   call Zon_IvaPos                                      'listar zona de IVA
   call Zon_FacPos                                      'listar zona de factura
   call Zon_TotPos                                      'listar zona de totais
   call Zon_RpePos                                      'listar zona de rodape
   out = 1                                              'activar 
end if

if CerNatChv$ = "VD" then                               'venda a dinheiro/factura recibo
   call Zon_IvaPos                                      'listar zona de IVA

   if UsaFacGt = 1 then
      call Zon_TrpPos                                   'listar zona de transporte
   else
      call Zon_FacPos                                   'listar zona de factura
   end if

   call Zon_TotPos                                      'listar zona de totais
   call Zon_RpePos                                      'listar zona de rodape
   out = 1                                              'activar 
end if

if CerNatChv$ = "ND" then                               'nota de debito
   call Zon_IvaPos                                      'listar zona de IVA
   call Zon_FacPos                                      'listar zona de factura
   call Zon_TotPos                                      'listar zona de totais
   call Zon_RpePos                                      'listar zona de rodape
   out = 1                                              'activar 
end if

if CerNatChv$ = "NC" then                               'nota de credito
   call Zon_IvaPos                                      'listar zona de IVA
   call Zon_NcrPos                                      'listar zona de nota de credito
   call Zon_TotPos                                      'listar zona de totais
   call Zon_RpePos                                      'listar zona de rodape
   out = 1                                              'activar
end if

if CerNatChv$ = "GR" then                               'guia de remessa
   call Zon_IvaPos                                      'listar zona de IVA
   call Zon_TrpPos                                      'listar zona de transporte
   call Zon_TotPos                                      'listar zona de totais
   call Zon_RpePos                                      'listar zona de rodape
   out = 1                                              'activar 
end if

if CerNatChv$ = "GT" then                               'guia de transporte
   call Zon_IvaPos                                      'listar zona de IVA
   call Zon_TrpPos                                      'listar zona de transporte
   call Zon_TotPos                                      'listar zona de totais
   call Zon_RpePos                                      'listar zona de rodape
   out = 1                                              'activar 

   'if UsaMb = 1 then                                    'usa multibanco ?
   '   call MbRefGT
   'end if
end if

if CerNatChv$ = "GA" then                               'guia de movimentacao activos proprios
   call Zon_IvaPos                                      'listar zona de IVA
   call Zon_TrpPos                                      'listar zona de transporte
   call Zon_TotPos                                      'listar zona de totais
   call Zon_RpePos                                      'listar zona de rodape
   out = 1                                              'activar 
end if

if CerNatChv$ = "GC" then                               'guia de consignacao
   call Zon_IvaPos                                      'listar zona de IVA
   call Zon_TrpPos                                      'listar zona de transporte
   call Zon_TotPos                                      'listar zona de totais
   call Zon_RpePos                                      'listar zona de rodape
   out = 1                                              'activar 
end if

if CerNatChv$ = "GD" then                               'guia ou nota de devolucao efectuada pelo cliente
   call Zon_IvaPos                                      'listar zona de IVA
   call Zon_TrpPos                                      'listar zona de transporte
   call Zon_TotPos                                      'listar zona de totais
   call Zon_RpePos                                      'listar zona de rodape
   out = 1                                              'activar 
end if

if CerNatChv$ = "VND.FPR" then                          'factura proforma
   call Zon_IvaPos                                      'listar zona de IVA
   call Zon_FacOrc                                      'listar proforma ou orcamento
   call Zon_TotPos                                      'listar zona de totais
   call Zon_RpePos                                      'listar zona de rodape
   out = 1                                              'activar 
end if

if CerNatChv$ = "VND.ORC" then                          'orcamento
   call Zon_IvaPos                                      'listar zona de IVA
   call Zon_FacOrc                                      'listar proforma ou orcamento
   call Zon_TotPos                                      'listar zona de totais
   call Zon_RpePos                                      'listar zona de rodape
   out = 1                                              'activar 
end if

if out = 0 then                                         'outros documentos   
   call Zon_IvaPos                                      'listar zona de IVA
   call Zon_NeuPos                                      'zona em branco 
   call Zon_TotPos                                      'listar zona de totais
end if
end sub


Sub Zon_Listar 'listar zonas do documento
tabVar$ = "EmpTbDocVar"                                        'tabela de dados
zonTrp = TabAdiCon("V", tabVar$, "CFG_DOC_ZON_TRP")            'usar zona de transporte
zonNcr = TabAdiCon("V", tabVar$, "CFG_DOC_ZON_NCR")            'usar zona de nota de credito

'listar
if zonTrp = 1 then                                             'listar zona de transporte ?
   zonPx   = TabAdiCon$("V", tabVar$, "CFG_DOC_ZON_TRP.PX")    'posicao X
   zonPy   = TabAdiCon$("V", tabVar$, "CFG_DOC_ZON_TRP.PY")    'posicao Y

   PrWIN AJT_B, zonPx, zonPy                                   'posicao base
end if

if zonTrp = 1 then                                             'listar zona de transporte ?
   zonPx   = TabAdiCon$("V", tabVar$, "CFG_DOC_ZON_NCR.PX")    'posicao X
   zonPy   = TabAdiCon$("V", tabVar$, "CFG_DOC_ZON_NCR.PY")    'posicao Y

   PrWIN AJT_B, zonPx, zonPy                                   'posicao base
end if
end sub


'---------------------------------------------------------------------------------------------
' IVA
'---------------------------------------------------------------------------------------------
Sub Zon_IvaPos 'zona de IVA + posicionar
zonIvaPx = Margem                   'posicao X
zonIvaPy = FimDoc+2                 'posicao Y

PrWIN AJT_B, zonIvaPx, zonIvaPy     'posicao base
call Zon_Iva                        'zona de IVA
end sub


Sub Zon_Iva 'zona de IVA
PrWIN GR_CX, 0,  0, 60,  40, 2                   'caixa de moldura
PrWIN GR_CX, 0, 22, 60,  27, 2                   'caixa de moldura

if UsaCorCab = 1 then
   PrWIN GR_CE, 0,  0, 60,  05, 2                'caixa com enchimento
else
   PrWIN GR_CX, 0,  0, 60,  05, 2                'caixa sem enchimento
end if

PrWIN FON,  8, 1                                 'activar fonte
py = 1                                           'posicao Y
PrWIN TX_N,  2, py,"Taxa"                        'identificar coluna de taxa de IVA
PrWIN TX_N, 19, py,"Incidência"                  'identificar coluna de valor de incidencia
PrWIN TX_N, 48, py,"I.V.A."                      'identificar coluna de valor de IVA
PrWIN TX_N,160, py,"TOTAIS"                      'identificar coluna de totais

if usaPrcGt = 1 then
   PrWIN TX_NP,  2, 6,"N"," 0"                      'taxa iva isento
   PrWIN TX_NP, 14, 6,"N",@IvaI0                    'valor incidencia iva isento 
   PrWIN TX_NP, 38, 6,"N","         0.00"           'valor iva isento 

   PrWIN TX_NP,  2, 9,"N",@IvaT1                    'taxa iva 1
   PrWIN TX_NP, 14, 9,"N",@IvaI1                    'valor incidencia iva 1 
   PrWIN TX_NP, 38, 9,"N",@IvaV1                    'valor iva 1 

   PrWIN TX_NP,  2,12,"N",@IvaT2                    'taxa iva 2
   PrWIN TX_NP, 14,12,"N",@IvaI2                    'valor incidencia iva 2 
   PrWIN TX_NP, 38,12,"N",@IvaV2                    'valor iva 2 

   PrWIN TX_NP,  2,15,"N",@IvaT3                    'taxa iva 3
   PrWIN TX_NP, 14,15,"N",@IvaI3                    'valor incidencia iva 3
   PrWIN TX_NP, 38,15,"N",@IvaV3                    'valor iva 3

   PrWIN TX_NP,  2,18,"N",@IvaT4                    'taxa iva 4
   PrWIN TX_NP, 14,18,"N",@IvaI4                    'valor incidencia iva 4
   PrWIN TX_NP, 38,18,"N",@IvaV4                    'valor iva 4

   if UsaMotIseFim = 1 then                         'usa motivo isencao no fim ?
      PrWIN FON,  6, 1                           	 'activar fonte
      PrWIN TX_N,  2, 23,"Isenção IVA: "            'isencao iva - texto
      PrWIN TX_N, 22, 23,IvaIseFim$                 'isencao iva - valor
 
      PrWIN FON,  9, 1                              'activar fonte
   end if

   if UsaMb = 1 then
      if UsaFacGT = 0 then  
         if @BcNom1<>"" then
            PrWIN GR_CE, 0, 27, 60,  30.5, 1           'caixa de moldura
            PrWIN FON,  6, 1                           'activar fonte
            PrWin FON, "BOLD+"                         'activar bold  
            PrWIN TX_N,  2, 27.5,"Banco :"             'titulo
            PrWIN TX_N, 11, 27.5,@BcNom1               'titulo
            PrWin FON, "BOLD-"                         'desactivar bold

            PrWin FON, "BOLD+"                         'activar bold  
            PrWIN TX_N,  1, 31.5,"NIB"                 'banco 1 - nib (titulo)
            PrWIN TX_N,  1, 34,"IBAN"                  'banco 1 - iban (titulo)
            PrWIN TX_N,  1, 37,"SWIFT/BIC"             'banco 1 - swift/bic (titulo)
            PrWin FON, "BOLD-"                         'desactivar bold

            PrWIN TX_N, 18, 31.5,@BcNib1               'banco 1 - nib
            PrWIN TX_N, 18, 34,@BcIbn1                 'banco 1 - iban
            PrWIN TX_N, 18, 37,@BcBic1                 'banco 1 - swift/bic
         end if
      end if
   else
      npg      = PosMpgPrp(Enc_Mst_Opc$)               'preparar modos de pagamento
      if npg > 0 then
         call Lst_Mpg                                  'listar modos de pagamento
      else
         if UsaFacGt = 1 then                          'activar variavel
            FacGtOk = 1
         end if
      end if
   end if
end if

if UsaFacGt = 1 then
   if FacGtOk = 1 then
      PrWIN FON,  6, 1                                                                     'activar fonte
      PrWIN TX_N,  1,29,"Os  artigos  constantes  neste  documento  foram  colocados"      'texto
      PrWIN TX_N,  1,32,"à  disposição  do  adquirente  na(s)  data(s)  constante(s)  do " 'texto
      PrWIN TX_N,  1,35,"mesmo, conforme disposto no Art.º 36 nº5 alínea f) do CIVA"       'texto
      PrWIN FON,  8, 1                                    'activar fonte
   else
      PrWIN TX_CTR, 4,  0, 56, 66,"_____________________________"
      PrWIN TX_CTR, 4,  2, 56, 72,"(Assinatura)"
   end if
end if
end sub


'---------------------------------------------------------------------------------------------
' MULTIBANCO
'---------------------------------------------------------------------------------------------
Sub MbRef 'referencia para multibanco
PrWIN AJT_B, Margem + 74, FimDoc+29                 'posicao base

call LogoMb                                         'logotipo
PrWIN IMG_V,3, 1,1,12,11                            'imagem (logotipo)
PrWIN GR_CX, 1, 1, "+12", "+11", 1                  'caixa envolvente


ide$ = ""                                           'identificador
carTip$ = mid$(Cta_Mst_Ct$, 5, 1)                   'tipo de conta


if Enc_Mst_Tdoc$ = "AC" then                        'aviso de cobranca ?
   ide$ = right$(Cta_Mst_Ct$, 4)                    'numero do cliente
else
   ide$ = mid$(ENC_Mst_Ndoc$, 9, 4)                 'numero do documento
end if

vlp = Ado_Tot_Tot                                   'valor
ent$ = EmpPagMbCon$("ENT")                          'consultar entidade
rmb$ = EmpPagMbRef$(ide$, vlp)                      'gerar referencia

PrWIN FON,  7, 1                                    'activar fonte

txEnt$ = "Entidade:"                                'entidade
txRef$ = "Referência:"                              'referencia
txVlp$ = "Valor:"                                   'valor

txEntV$ = ent$                                      'valor para entidade
txRefV$ = rmb$                                      'valor para referencia
txVlpV$ = frmNum$(10.2,vlp)                         'valor

px = 15                                             'posicao para texto
px2= 53                                             'posicao para valor

PrWIN TX_N, px,  1,txEnt$                           'entidade - texto
PrWIN TX_N, px2, 1,txEntV$                          'entidade - valor

PrWIN TX_N, px,  5,txRef$                           'referencia - texto
PrWIN TX_N, px2, 5,txRefV$                          'referencia - valor

PrWIN TX_N, px,  9,txVlp$                           'valor - texto
PrWIN TX_N, px2-2, 9,txVlpV$                          'valor - valor
end Sub


Sub MbRefGT 'referencia para multibanco (guia de transporte)
PrWIN AJT_B, Margem, FimDoc-16                      'posicao base
PrWIN GR_CX, 0, 0, 72, 13, 1                        'caixa envolvente

call LogoMb                                         'logotipo
PrWIN IMG_V,3, 1,1,12,11                            'imagem (logotipo)
PrWIN GR_CX, 1, 1, "+12", "+11", 1                  'caixa envolvente

ide$ = ""                                           'identificador
carTip$ = mid$(Cta_Mst_Ct$, 5, 1)                   'tipo de conta

if Enc_Mst_Tdoc$ = "AC" then                        'aviso de cobranca ?
   ide$ = right$(Cta_Mst_Ct$, 4)                    'numero do cliente
else
   ide$ = mid$(ENC_Mst_Ndoc$, 9, 4)                 'numero do documento
end if

vlp = Ado_Tot_Tot                                   'valor
ent$ = EmpPagMbCon$("ENT")                          'consultar entidade
rmb$ = EmpPagMbRef$(ide$, vlp)                      'gerar referencia

PrWIN FON,  7, 1                                    'activar fonte

txEnt$ = "Entidade:"                                'entidade
txRef$ = "Referência:"                              'referencia
txVlp$ = "Valor:"                                   'valor

txEntV$ = ent$                                      'valor para entidade
txRefV$ = rmb$                                      'valor para referencia
txVlpV$ = frmNum$(10.2,vlp)                         'valor

px = 15                                             'posicao para texto
px2= 53                                             'posicao para valor

PrWIN TX_N, px,  1,txEnt$                           'entidade - texto
PrWIN TX_N, px2, 1,txEntV$                          'entidade - valor

PrWIN TX_N, px,  5,txRef$                           'referencia - texto
PrWIN TX_N, px2, 5,txRefV$                          'referencia - valor

PrWIN TX_N, px,  9,txVlp$                           'valor - texto
PrWIN TX_N, px2-2, 9,txVlpV$                          'valor - valor


if @BcNom1<>"" then                                 'existe banco 1 ?
   PrWIN GR_CX,72, 0,MargemD, 13, 1                 'caixa envolvente

   PrWIN FON,  7, 1                                 'activar fonte
   PrWin FON, "BOLD+"                               'activar bold  
   PrWIN TX_N, 77, 1,"Banco :"                      'titulo
   PrWIN TX_N, 87, 1,@BcNom1                        'titulo
   PrWin FON, "BOLD-"                               'desactivar bold

   PrWin FON, "BOLD+"                               'activar bold  
   PrWIN TX_N, 77, 4,"NIB"                          'banco 1 - nib (titulo)
   PrWIN TX_N, 77, 7,"IBAN"                         'banco 1 - iban (titulo)
   PrWIN TX_N, 77,10,"SWIFT/BIC"                    'banco 1 - swift/bic (titulo)
   PrWin FON, "BOLD-"                               'desactivar bold

   PrWIN TX_N, 87, 4,@BcNib1                        'banco 1 - nib
   PrWIN TX_N, 87, 7,@BcIbn1                        'banco 1 - iban
   PrWIN TX_N, 92,10,@BcBic1                        'banco 1 - swift/bic
end if

if @BcNom2<>"" then                                 'existe banco 2 ?
   PrWIN FON,  7, 1                                 'activar fonte
   PrWin FON, "BOLD+"                               'activar bold  
   PrWIN TX_N,133, 1,"Banco :"                      'titulo
   PrWIN TX_N,143, 1,@BcNom2                        'titulo
   PrWin FON, "BOLD-"                               'desactivar bold

   PrWin FON, "BOLD+"                               'activar bold  
   PrWIN TX_N,133, 4,"NIB"                          'banco 2 - nib (titulo)
   PrWIN TX_N,133, 7,"IBAN"                         'banco 2 - iban (titulo)
   PrWIN TX_N,133,10,"SWIFT/BIC"                    'banco 2 - swift/bic (titulo)
   PrWin FON, "BOLD-"                               'desactivar bold

   PrWIN TX_N,143, 4,@BcNib2                        'banco 2 - nib
   PrWIN TX_N,143, 7,@BcIbn2                        'banco 2 - iban
   PrWIN TX_N,148,10,@BcBic2                        'banco 2 - swift/bic
end if

end Sub



'---------------------------------------------------------------------------------------------
' TRANSPORTE
'---------------------------------------------------------------------------------------------
Sub Zon_TrpPos 'zona de transporte + posicionar
zonIvaPx = Margem+60                'posicao X
zonIvaPy = FimDoc+2                 'posicao Y

PrWIN AJT_B, zonIvaPx, zonIvaPy     'posicao base
call Zon_Trp                        'zona de transporte
end sub


Sub Zon_Trp 'zona de transporte
PrWIN FON,  8, 1                             	        'activar fonte
PrWIN GR_CX, 0,  0,  70,  40, 2                         'caixa de moldura

'inicio de transporte + viatura
if UsaCorCab = 1 then
   PrWIN GR_CE, 0   ,  0,  70,  05, 2                   'caixa com enchimento
else
   PrWIN GR_CX, 0   ,  0,  70,  05, 2                   'caixa sem enchimento
end if

PrWIN GR_CX, 0   ,  0,  26,  10, 2                           'caixa de moldura
PrWIN GR_CX, 0   ,  0,  52,  10, 2                           'caixa de moldura
PrWIN TX_N, 2, 1,"   Data de Saída        Data de Entrega"  'titulo

PrWIN TX_N,  2, 6,@InTrp                                'inicio do transporte
PrWIN TX_N, 28, 6,@FimTp                                'fim do transporte

PrWIN TX_N, 57, 1,"Viatura"                             'titulo
PrWIN TX_N, 55, 6,@DocRcViat                            'viatura

'local de saida
if UsaCorCab = 1 then
   PrWIN GR_CE,   0, 10, 70,  15, 2                     'caixa com enchimento
else
   PrWIN GR_CX,   0, 10, 70,  15, 2                     'caixa sem enchimento
end if

PrWIN TX_N, 25, 11,"Local de Saída"                     'titulo
PrWIN TX_N,  1, 15.5,@SaiMor                            'morada saida
PrWIN TX_N,  1, 18.5,@SaiLoc                            'local saida
PrWIN TX_N,  1, 21.5,@SaiCpo                            'codigo postal saida

'local de entrega
if UsaCorCab = 1 then
   PrWIN GR_CE,  0, 25,  70,  30, 2                     'caixa com enchimento
else
   PrWIN GR_CX,  0, 25,  70,  30, 2                     'caixa sem enchimento
end if

PrWIN TX_N, 25, 26,"Local de Entrega"                   'titulo

PrWIN TX_N,  1, 30.5,@DesMor                            'morada entrega
PrWIN TX_N,  1, 33.5,@DesLoc                            'local entrega
PrWIN TX_N,  1, 36.5,@DesCpo                            'codigo postal entrega
end sub


'---------------------------------------------------------------------------------------------
' NOTA DE CREDITO
'---------------------------------------------------------------------------------------------
Sub Zon_NcrPos 'zona de nota de credito + posicionar
zonIvaPx = Margem+60                'posicao X
zonIvaPy = FimDoc+2                 'posicao Y

PrWIN AJT_B, zonIvaPx, zonIvaPy     'posicao base
call Zon_Ncr                        'zona de nota de credito
end sub


Sub Zon_Ncr 'zona de nota de credito
PrWIN FON,  8, 1                             	        'activar fonte
PrWIN GR_CX,  0,  0,  70,  40, 2                        'caixa de moldura

if UsaCorCab = 1 then
   PrWIN GR_CE,  0,  0,  70,  05, 2                     'caixa com enchimento
else
   PrWIN GR_CX,  0,  0,  70,  05, 2                     'caixa sem enchimento
end if

PrWIN TX_CTR, 0,  1,  70,  1,"Informação sobre Nota de Crédito"

PrWIN FON,  7, 1                                        'activar fonte
PrWIN TX_N,   1, 6,"A fim de podermos dar cumprimento ao disposto no nº 5 do"    'texto
PrWIN TX_N,   1, 9,"Art.º 78º do  CIVA - com a nova redacção introduzida pelo"   'texto
PrWIN TX_N,   1,12,"Decreto Lei nº 198/90 de Junho, devolvemos este documento"   'texto
PrWIN TX_N,   1,15,"assinado e carimbado"

PrWIN TX_N,   1,23,"Data : "                            'titulo
PrWIN TX_N,   9,23,@DocRcDtl                            'data do documento

PrWIN TX_CTR, 0, 33, 70, 33,"________________________________________________"
PrWIN TX_CTR, 0, 36, 70, 36,"(Assinatura e Carimbo)"
end sub


'---------------------------------------------------------------------------------------------
' FACTURA
'---------------------------------------------------------------------------------------------
Sub Zon_FacPos 'zona de factura + posicionar
zonIvaPx = Margem+60                'posicao X
zonIvaPy = FimDoc+2                 'posicao Y

PrWIN AJT_B, zonIvaPx, zonIvaPy     'posicao base
call Zon_Fac                        'zona de factura
end sub


Sub Zon_Fac 'zona de factura
PrWIN FON,  8, 1                             	                                      'activar fonte
PrWIN GR_CX,  0,  0,  70,  40, 2                                                      'caixa de moldura

if UsaCorCab = 1 then
   PrWIN GR_CE,  0,  0, 70,  05, 2                                                    'caixa com enchimento
else
   PrWIN GR_CX,  0,  0, 70,  05, 2                                                    'caixa sem enchimento
end if

if UsaMb = 1 then
   PrWIN GR_CX, 0,27, 70, 40, 1                                                       'caixa envolvente para MB
end if

PrWIN TX_CTR, 0,  1, 70,  1,"Assinatura e Carimbo"                                    'titulo

PrWIN FON,  7, 1                                                                      'activar fonte
PrWIN TX_N,   1, 6,"Os  artigos  constantes  neste  documento  foram  colocados"      'texto
PrWIN TX_N,   1, 9,"à  disposição  do  adquirente  na(s)  data(s)  constante(s)  do " 'texto
PrWIN TX_N,   1,12,"mesmo, conforme disposto no Art.º 36 nº5 alínea f) do CIVA"       'texto

if UsaMb = 1 then
   PrWIN TX_N,   1,16,"Data : "                                                       'titulo
   PrWIN TX_N,   9,16,@DocRcDtl                                                       'data do documento

   PrWIN TX_CTR, 0, 20, 70, 20,"__________________________________________"           'traco para assinatura
   PrWIN TX_CTR, 0, 23, 70, 23,"(Assinatura e Carimbo)"
else
   PrWIN TX_N,   1,18,"Data : "                                                       'titulo
   PrWIN TX_N,   9,18,@DocRcDtl                                                       'data do documento

   PrWIN TX_CTR, 0, 33, 70, 33,"__________________________________________"           'traco para assinatura
   PrWIN TX_CTR, 0, 36, 70, 36,"(Assinatura e Carimbo)"
end if
end sub


'---------------------------------------------------------------------------------------------
' FACTURA PROFORMA E ORÇAMENTOS
'---------------------------------------------------------------------------------------------
Sub Zon_FacOrc 'zona de factura + posicionar
zonIvaPx = Margem+60                'posicao X
zonIvaPy = FimDoc+2                 'posicao Y

PrWIN AJT_B, zonIvaPx, zonIvaPy     'posicao base
call Zon_Orc                        'zona de factura
end sub


Sub Zon_Orc 'zona de factura
PrWIN FON,  8, 1                             	                                      'activar fonte
PrWIN GR_CX,  0,  0,  70,  40, 2                                                      'caixa de moldura

if UsaCorCab = 1 then
   PrWIN GR_CE,  0,  0, 70,  05, 2                                                    'caixa com enchimento
else
   PrWIN GR_CX,  0,  0, 70,  05, 2                                                    'caixa sem enchimento
end if

PrWIN TX_CTR, 0,  1, 70,  1,"Assinatura e Carimbo"                                    'titulo

PrWIN FON,  7, 1                                                                      'activar fonte
PrWIN TX_N,   1, 6,"ESTE DOCUMENTO NÃO SERVE DE FACTURA"                              'texto

PrWIN TX_N,   1,18,"Data : "                                                          'titulo
PrWIN TX_N,   9,18,@DocRcDtl                                                          'data do documento

PrWIN TX_CTR, 0, 33, 70, 33,"__________________________________________"              'traco para assinatura
PrWIN TX_CTR, 0, 36, 70, 36,"(Assinatura e Carimbo)"
end sub


'---------------------------------------------------------------------------------------------
' ZONA NEUTRA
'---------------------------------------------------------------------------------------------
Sub Zon_NeuPos 'zona neutra
zonIvaPx = Margem+60                'posicao X
zonIvaPy = FimDoc+2                 'posicao Y

PrWIN AJT_B, zonIvaPx, zonIvaPy     'posicao base
call Zon_Neu                        'zona neutra
end sub


Sub Zon_Neu 'zona neutra
PrWIN FON,  8, 1                             	                                      'activar fonte
PrWIN GR_CX,  0,  0,  70,  40, 2                                                      'caixa de moldura

if UsaCorCab = 1 then
   PrWIN GR_CE,  0,  0, 70,  05, 2                                                    'caixa com enchimento
else
   PrWIN GR_CX,  0,  0, 70,  05, 2                                                    'caixa sem enchimento
end if

PrWIN TX_CTR, 0,  1, 70,  1,"Outras Informações"                                      'titulo
end sub




'---------------------------------------------------------------------------------------------
' TOTAIS
'---------------------------------------------------------------------------------------------
Sub Zon_TotPos 'zona de totais + posicionar
zonIvaPx = Margem+130               'posicao X
zonIvaPy = FimDoc+2                 'posicao Y

PrWIN AJT_B, zonIvaPx, zonIvaPy     'posicao base
call Zon_Tot                        'zona de totais
end sub


Sub Zon_Tot 'zona de totais
PrWIN GR_CX,  0,  0,  54,  40, 2                           'caixa de moldura

if UsaCorCab = 1 then
   PrWIN GR_CE,  0,  0,  54,  05, 2                        'caixa com enchimento
else
   PrWIN GR_CX,  0,  0,  54,  05, 2                        'caixa com enchimento
end if

PrWIN GR_LI,  0, 30,  54,  30, 2                           'separador horizontal

PrWIN FON,  8, 1                             	           'activar fonte
PrWIN TX_N,  22, 1,"Totais"                                'identificar coluna de taxa de IVA

if UsaPrcGt = 1 then                                       'usa preço no documento ?
   PrWIN TX_N,   1, 06,"Ilíquido"                          'titulo
   PrWIN TX_N,   1, 10,"Desconto"                          'titulo
   PrWIN TX_N,   1, 14,"Líquido"                           'titulo

   if EcoValor = 1 then                                    'usa ecovalor
      PrWIN TX_N,   1, 18,"Ecovalor"                       'titulo - ecovalor
   end if

   if UsaPortes = 1 then                                   'usa portes ?
      PrWIN TX_N,   1, 18,"Portes"                         'titulo - portes
   end if

   PrWIN TX_N,   1, 22,@vaRetIrsIde                        'retencao irs
   PrWIN TX_N,   1, 26,"IVA"                               'titulo 

   if @vaRetIrsVal<>0 then
      PrWIN FON,  9, 1                         	           'activar fonte
      PrWIN TX_N,   1, 32,TotalAbv1$                       'abreviatura moeda
      PrWIN TX_N,   1, 36,@vaRetIrsRecI                    'total a receber
      PrWIN TX_NP, 23, 32,"N",@DocTot                      'total documento
      PrWIN TX_NP, 23, 36,"N",@vaRetIrsRecV                'total retencao IRS
      PrWin FON, "BOLD-"                                   'desactivar bold
   else
      if TotKg <> 0 then
         PrWIN FON, 10, 1                                  'activar fonte
         PrWin FON, "BOLD+"                                'activar bold
         PrWIN TX_N,    1, 31,"Total Quant."               'total quantidades - texto
         PrWIN TX_NP,  37, 31,"N",@TotQu                   'total quantidades
         PrWIN TX_N,    1, 35,TotalAbv1$                   'abreviatura moeda
         PrWIN TX_NP,  23, 35,"N",@DocTot                  'total documento
         PrWin FON, "BOLD-"                                'desactivar bold
      else
         PrWIN FON, 10, 1                                  'activar fonte
         PrWin FON, "BOLD+"                                'activar bold
         PrWIN TX_N,   1, 33,TotalAbv1$                    'abreviatura moeda
         PrWIN TX_NP, 23, 33,"N",@DocTot                   'total documento
         PrWin FON, "BOLD-"                                'desactivar bold
      end if
   end if

   PrWIN FON,  8, 1                                        'activar fonte
   if UsaPrcIva > 0 then                                   'usar preco com IVA separado ?
      PrWIN TX_NP,  29, 06,"N",@DocIlqSii                  'total iliquido sem IVA incluido
   else
      PrWIN TX_NP,  29, 06,"N",@DocIlq                     'total iliquido
   end if
   PrWIN TX_NP,  29, 10,"N",@DocDesco                      'total desconto 

   if UsaPortes = 0 then                                   'usa portes ?
      if EcoValor = 0 then                                 'usa ecovalor ?
         if UsaPrcIva > 0 then                             'usar preco com IVA separado ?
            PrWIN TX_NP,  29, 14,"N",@DocLiqSii            'total iliquido sem IVA incluido
         else
            PrWIN TX_NP,  29, 14,"N",@DocLiq               'total liquido
         end if

      else
         PrWIN TX_NP,  29, 14,"N",@DocLiqAje               'total liquido (ajustado)
         PrWIN TX_NP,  29, 18,"N",@EcoValor                'total ecovalor
      end if
   else
      PrWIN TX_NP,  29, 14,"N",@DocLiqAjp                  'total liquido (ajustado)
      PrWIN TX_NP,  29, 18,"N",Portes$                     'valor de portes
   end if

   PrWIN TX_NP,  29, 22,"N",@vaRetIrsVal                   'total retencao IRS
   PrWIN TX_NP,  29, 26,"N",@DocIva                        'total iva 
end if

TotDif = abs(Ado_Tot_Tot - Enc_Mst_ValTot)                 'diferenca nos totais (listagem/registado)
if TotDif > 0.001 then                                     'nao valor residual ?
   CerDocAnu = 1                                           'activar informacao de erro (usa variavel de anulado)
   CerDocAnuAsp = -1                                       'documento com erros
   call DocCerLisAnu                                       'listar informacao de erro
end if

PrWIN FON,  8, 1                             	           'activar fonte
end sub


'---------------------------------------------------------------------------------------------
' RODAPE
'---------------------------------------------------------------------------------------------
Sub Zon_RpePos 'zona de rodape + posicionar
zonIvaPx = Margem                   'posicao X
zonIvaPy = FimDoc+42                'posicao Y

PrWIN AJT_B, zonIvaPx, zonIvaPy     'posicao base
call Zon_Rpe                        'zona de totais
end sub


Sub Zon_Rpe 'zona de rodape
PrWIN FON, 6, 1                                         'activar
if Emp_Inf_NatJur$<>"" then                             'tem natureza juridica ?
   PrWIN TX_N,  1,  1,@EmpTSoc                          'informacoes uteis

   PrWIN TX_N,  1,  5,@vCerPgmDes                       'certificacao do programa
   PrWIN TX_N,130,  5,@vCerDocAdi                       'informacao adicional do documento
   PrWIN TX_N,  1,  9,@PerSon                           'personalizacao/licenca do programa
else
   PrWIN TX_N,  1,  1,@vCerPgmDes                       'certificacao do programa
   PrWIN TX_N,130,  1,@vCerDocAdi                       'informacao adicional do documento
   PrWIN TX_N,  1,  5,@PerSon                           'personalizacao/licenca do programa
end if

'PrWin TX_N,  1, 60,@EmpPtim                            'escrever dados da empresa qd papel é timbrado

'caixa para informacoes
if UsaCxInf = 1 then
   info$=""                                             'texto para informacao
   PrWIN GR_CX, 01, 13,MargemD, 18, 2                   'caixa para informacoes

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

   PrWIN TX_CTR,01, 13,MargemD, 18,InfoCxRod$           'informacao
   PrWIN   FON,  9,   1                                 'activar fonte
end if

'caso pretenda escrever a assinatura digital em 2 linhas use estas variaveis em vez de vCerPgmDes
'PrWIN TX_N, 137, 60,@vCerPgmDe1                         'certificacao do programa - linha 1
'PrWIN TX_N, 137, 64,@vCerPgmDe2                         'certificacao do programa - linha 2

PrWin FON, 8, 1                                         'repor fonte

'tmp$=left$(Cta_Ang_Grupo$,2)
'if tmp$="AA" then
'   PrWIN TX_N,  05,  70, "Este cliente e do tipo AA"
'else
'   PrWIN TX_N,  05,  70, "Este cliente e de tipo desconhecido"
'end if
end sub


Sub Lst_Mpg 'listar modos de pagamento
npg       = PosMpgPrp(Enc_Mst_Opc$)                          'preparar modos de pagamento

if npg > 0 then                                              'ha modos de pagamento ?

   if npg >3 then
      npg = 3
   end if

   PrWin FON, "BOLD+"                                        'activar bold
   PrWIN GR_CX,  0, 27, 60, 30, 2                            'caixa de moldura
   PrWIN TX_CTR, 0 ,27, 60, 30,"Modos de Pagamento"          'titulo
   PrWin FON, "BOLD-"                                        'desactivar bold

   for i = 1 to npg
      mpgTip$ = PosMpgCon$(i, "CHV")                         'consultar tipo 
      mpgIde$ = PosMpgCon$(i, "IDE")                         'consultar identificacao
      mpgLiq  = PosMpgCon$(i, "LIQ")                         'consultar valor de pagamento
      mpgVlp$ = FrmNum$(05.2, mpgLiq)                        'formatar valor

      PrWIN TX_N,  2, 27+i*3,mpgTip$                         'listar tipo
      PrWIN TX_N, 14, 27+i*3,mpgIde$                         'listar identificacao
      PrWIN TX_N, 49, 27+i*3,mpgVlp$                         'listar identificacao
   next
end if
end sub


'=============================================================================
'= Carta de acompanhamento (Nota de Credito)  ================================
'=============================================================================
Sub CartaCab 'cabecalho do documento  
margem = 5                                            'margem
azul   = 1                                            '?
Preto  = 0                                            '?

PrWIN AJT_B,  Margem+10, 10                           'posicao base
ajt=0                                                 'inicializar ajuste

'dados do documento
PrWIN AJT_B,  Margem+10, 20                           'posicao base
PrWIN FON  , 16, 1                                    'activar fonte
PrWIN TX_N, 0,  5,@Nome                               'nome
PrWIN FON  , 14, 1                                    'activar fonte
PrWIN TX_N, 0, 10,@Morada                             'morada
PrWIN TX_N, 0, 15,@Local                              'localidade
PrWIN TX_N, 0, 20,@Cpost                              'codigo postal


'dados da janela da carta
PrWIN AJT_B, 110, 50                                  'posicao base
PrWIN FON, 10,  1                                     'activar fonte
PrWIN TX_N, 0,  5,@EmpNome                            'nome cliente
PrWIN TX_N, 0, 10,@EmpMorada                          'morada
PrWIN TX_N, 0, 15,@EmpLocal                           'localidade
PrWIN TX_N, 0, 20,@EmpCpost                           'codigo postal
end sub


'-----------------------------------------------------------------------------
' Linhas do Documento
'-----------------------------------------------------------------------------
Sub CartaLin_PosAjt 'ajustar posicao de linha
PrWIN AJT_B,  Margem+10, 110+Doc_CntLin*5             'posicao base
end sub


Sub CartaLin_Inc 'incrementar linha
nli = Doc_CntPag                                      'numero de linhas

if nli = 0 then                                       'linha inicial ?
   tmp = CntLin("INC",1)                              'contar linha adicional
   call Lin_PosAjt                                    'posicao base
end if
end sub


Sub CartaLinTxl 'artigos tipo texto livre
'nada a executar
end sub


Sub CartaLinIde 'artigos tipo nome livre
'nada a executar
end sub


Sub CartaLinNor 'artigos tipo normal
call CartaLin_Inc                                     'incrementar linha
end sub


Sub CartaFim 'totais do documento
PrWIN AJT_B,  Margem+10, 100                          'posicao base
px = 0                                                'posicao X

vDocNum$ = FrmNdo$("46",Enc_Mst_Tdoc$,Enc_Mst_Ndoc$)  'numero do documento
vDocVto$ = FrmVal$(Doc_Tot_Tot,21,13.2)               'valor do documento

'assunto
py = 0                                                'posicao Y

txDoc$ = Doc_Ide_Nome$ + " Nº " + vDocNum$            'documento
txVto$ = "Euros " + vDocVto$                          'valor
txAss$ = "ASSUNTO: " + txDoc$ + ", " + txVto$         'informacao de assunto

PrWIN FON, 14, 1                                      'activar fonte
PrWin FON, "BOLD+"                                    'activar bold
PrWIN TX_N, px, py,txAss$                             'listar assunto
PrWin FON, "BOLD-"                                    'desactivar bold

'texto da carta
py =  20                                              'posicao X

PrWIN FON, 14, 1                                      'activar fonte
PrWIN TX_N, px, py+000,"Exmos Srs.:"                  'listar

PrWIN TX_N, px, py+010,"Para dar cumprimento ao estipulado no n.º 5 do artigo 78º do CIVA,"
PrWIN TX_N, px, py+015,"com a nova redacção introduzida pelo Decreto Lei nº 198/90 de Junho,"
PrWIN TX_N, px, py+020,"solicitamos a V.Exas o favor de acusarem a recepção desta nota de crédito,"
PrWIN TX_N, px, py+025,"devolvendo devidamente assinado o respectivo duplicado"

px =  20                                              'posicao X
py =  80                                              'posicao Y

vtx$ = "Recebi o original da " + Doc_Ide_Nome$ + " em referência"
PrWIN TX_N, px, py+000,vtx$

PrWIN TX_N, px, py+015,"Data, Carimbo e Assinatura"

'terminar
PrWIN FP                                              'fim de pagina
end Sub

'---------------------------------------------------------------------------------------------
'#ZTX - Funcoes para zona de texto
'---------------------------------------------------------------------------------------------
Sub ZtxLst_Txl 'listar zona de texto - texto livre
ztxTx$ = ENC_Mov_Div$                                       'texto
ztxCo  = Co02Pv                                             'coluna de listagem
ztxDi  = 150                                                'dimensao de listagem
call DocLinPos                                              'posicionar linha
call ZtxLst                                                 'listar zona de texto
end sub


Sub ZtxLst 'listar zona de texto
if ztxTx$ = "" then                                         'sem valor (linha em branco) ?
   ztxTxu$ = " "                                            'forcar valor a listar
else
   ztxTxu$ = ztxTx$                                         'usar valor indicado
end if

nls = TgsExe("L", ztxTxu$, ztxDi, " ")                      'separar

for i = 1 to nls
ltx$ = TgsCon$(i)                                           'consultar
Call DocLinPos                                              'posicionar linha
tmp = CntLin("INC",1)                                       'incrementar contador linhas

PrWIN TX_N, ztxCo, 0,ltx$                                   'listar
next
end sub
##


'==============================================================================
#VBS - VbScript
'==============================================================================
'------------------------------------------------------------------------------
'- +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
'- (13) --->'Comentario
'- (25) --------------->'Comentario
'- (28) ------------------>'Comentario
'- (40) ------------------------------>'Comentario


'= Variaveis ==================================================================
Dim VarXxx                             'variavel XXX


'= Consultar opcoes do documento ==============================================
Function DocIde(arg) 'identificacao do documento
'arg        - argumento (nao usado)

with FxPre
res = .DocConOpc("T", "DocIde")        'consultar
end with

DocIde = res                           'devolver resultado
end function


Function DocConEsp(ide) 'consultar opcao especifica de documento
'ide        - identificador 

with FxPre
res = .DocConEsp("T", ide)             'consultar
end with

DocConEsp = res                        'devolver valor
end function


Function DocConOpc(ide) 'consultar opcao de documento
'ide        - identificador 

with FxPre
res = .DocConOpc("T", ide)             'consultar
end with

DocConOpc = res                        'devolver valor
end function


Function DocConOpcEsp(ide) 'consultar opcao especifica do documento
'ide        - identificador 

with FxPre
res = .DocConOpcEsp("T", ide)          'consultar
end with

DocConOpcEsp = res                     'devolver valor
end function


Function DocConVar(ide) 'consultar variavel do documento
'ide        - identificador 

with FxPre
res = .DocConVar("T", ide)             'consultar
end with

DocConVar = res                        'devolver valor
end function


'==============================================================================
'#DIV - Funcoes diversas
'==============================================================================
Function PosTx(vtx, txp) 'posicao de texto
'vtx        - texto a analisar
'txp        - texto a pesquisar

on error resume next                   'controlar erros

'tmp = vtx & "< >" & txp

'msgbox tmp
'msgbox "VBS"

res = 0                                'inicializar resultado
res = instr(vtx, txp)                  'pesquisar

'terminar
PosTx = res                            'devolver resultado
end function
##


'==============================================================================
#INC - Inclusao de funcionalidades
'==============================================================================
Funcoes para certificacao         =[SIG_DOC_DIR.ENC],EncDocCer_Pgm.inc
Funcoes para IVA                  =[SIG_DOC_DIR.ENC],EncDocCom_Pgm.inc
Funcoes para configurar documento =[SIG_DOC_DIR.ENC],EncDocCfg_Pgm.inc
##

