'Nome       : StdFac.Ipw
'Tipo       : LST
'Data       : 2003/05/27
'Versao     : 2.5b
'Descricao  : Formato de documento tipo Factura

'-----------------------------------------------------------------------------
' Modificacoes
'-----------------------------------------------------------------------------
'- Versao : 2.0  2000/01/05 -------------------------------------------------
'Versao base

'- Versao : 2.0a 2000/04/20 -------------------------------------------------
'Linha para medidas
'alterado funcionamento do campo local de entrega

'- Versao : 2.1  2000/05/11 -------------------------------------------------
'saltos de pagina

'- Versao : 2.2  2001/07/23 -------------------------------------------------
'Alteracao no aspecto grafico

'- Versao : 2.2a 2001/09/28 -------------------------------------------------
'Pedir descricao para documento (funciona em conjunto com descricao por
' expressao no .par

'- Versao : 2.1b  2001/10/30 -------------------------------------------------
'Permitir alterar data de documento na recolha do cabecalho
'Mostrar data de vencimento

'- Versao : 2.1c  2001/11/09 -------------------------------------------------
'Apresentar sempre contravalores
'Caso tivesse mais de uma folha, nao apresentava correctamente o numero e data

'- Versao : 2.3   2001/12/04 -------------------------------------------------
Ajuste de posicoes no cabecalho do documento

'- Versao : 2.4   2001/12/18 -------------------------------------------------
'Recolha de preco e visualizacao , usar formatacao automatica
'Disponibilizar valor de portes para impressao

'- Versao : 2.5   2002/05/14 -------------------------------------------------
'Mostrar 4 taxas de IVA

'- Versao : 2.5a  2002/08/08 -------------------------------------------------
'Correcao na impressao das linhas IDE

'- Versao : 2.5b  2003/??/??-------------------------------------------------
'ELiminar contravalores de moeda
'ajuste na impressao da quantidade


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


'-----------------------------------------------------------------------------
' Campos especificos
'-----------------------------------------------------------------------------
#ESP
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
##


'-----------------------------------------------------------------------------
' Configuracao do documento
'-----------------------------------------------------------------------------
#DOC
Nome                       [DocNom]=Factura
Vias                       [DocVia]=Original;Duplicado;Triplicado
Tipo                       [DocTip]=
Personalizacao             [DocPer]=
Dados especificos          [DocEsp]=ESP1,FAC

'formato
'Impressora                 [DocPrt]=
'Impressora                 [DocPrt]=PR01
Saida/Impressora           [DocPrt]=PAG_W
'Saida/Impressora           [DocPrt]=PAG_W,PRV
Linhas por pagina          [DocLpg]=23
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=3


'funcoes de listagem
Listar cabecalho            [FxCAB]=Cab
Listar linhas               [FxLIN]=Lin; Nor; Ajt; Txl; Med; Pmo; Doc; Cor;Ide
Listar fim                  [FxFIM]=Fim
##


'#DOC
'Nome                       [DocNom]=Guia Remessa
'Vias                       [DocVia]=Original;Copia
'Tipo                       [DocTip]=
'Personalizacao             [DocPer]=
'Dados especificos          [DocEsp]=ESP1,FAC
'Dados especificos          [DocEsp]=ESP2,GRM

''formato
'Impressora                 [DocPrt]=
''Impressora                 [DocPrt]=PR02
'Linhas por pagina          [DocLpg]=20
'Formato do papel           [DocPap]=72L
'Ajustar pagina             [DocApg]=3
'
''funcoes de listagem
'Listar cabecalho            [FxCAB]=Cab
'Listar linhas               [FxLIN]=
'Listar fim                  [FxFIM]=Fim
'##


'-----------------------------------------------------------------------------
' Variaveis
'-----------------------------------------------------------------------------
#VAR
Pag      = Doc_CntPag
DataExt  = FrmVal$(Sig_DtHoje,45,0)
PerSon   = SigLstInf$("PERSON")

'descricao da empresa 
EmpNome  = Emp_Inf_Nome$
EmpMorada= Emp_Inf_Morada$
EmpLocal = Emp_Inf_Local$
EmpCpost = Emp_Inf_Cpost$
EmpTel   = Emp_Inf_Telef$
EmpFax   = Emp_Inf_Fax$
EmpCtrb  = Emp_Inf_Contrib$
EmpTps   = Emp_Inf_NatJur$
EmpReg   = Emp_Inf_NumReg$
EmpMail  = Emp_Inf_Email$

'indicacao do destinatario do documento
Ct       = Cta_Mst_Ct$
Nome     = VarAlt$("Enc_Mst","Cta_Mst_Nome$")
Morada   = VarAlt$("Enc_Mst","Cta_Ang_Morada$")
Local    = VarAlt$("Enc_Mst","Cta_Ang_Local$")
Cpost    = VarAlt$("Enc_Mst","Cta_Ang_Cpost$")
Ctrb     = VarAlt$("Enc_Mst","Cta_Mst_Ctrb$")


'linhas do documento
LinArt     = Stc_Mst_Art$
LinOpcCor  = TxIde$(Enc_Mov_Opc$,"COR")   
ArtIde     = TxIde$(Enc_Mov_Opc$,"OPCIDE")   
'LinNome    = EncArtIde$("")
LinNome    = EncArtIde$("")+" "+TxIde$(Enc_Mov_Opc$,"COR")
LinQu      = StcQuFrm$(Doc_Art_Qu,13,"")
LinUni     = Stc_Mst_Unid$
LinDesco   = Enc_Mov_Desco$
LinMedTx   = Enc_Mov_MedTxt$


'LinPrc     = FrmMoe$("",14,Doc_Art_Prc)
LinLiq     = FrmMoe$("",14,Doc_Art_Liq)
LinPrc     = StcPrcFrm$(14,Doc_Art_Prc)
'LinLiq     = StcPrcFrm$(14,Doc_Art_Liq)



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

LinPrcEsc  = FrmVal$(MoeCnv("N",Doc_Art_Prc,Enc_Mst_Moeda,1),21,10.2)
LinLiqEsc  = FrmVal$(MoeCnv("N",Doc_Art_Liq,Enc_Mst_Moeda,1),21,10.2)
TxMoedaEsc = "Valores em escudos :"

Iva        = IvaTax$("A")+"%"
LinTxl     = Enc_Mov_Div$
DocArtQuM  = FrmVal$(Doc_Art_QuM,21,5.3)
DocArtMedV = FrmVal$(Doc_Art_MedVal,21,5.3)


'taxas de IVA
IvaT1    = FrmVal$(IvaTax(1),21,2.0)
IvaT2    = FrmVal$(IvaTax(2),21,2.0)
IvaT3    = FrmVal$(IvaTax(3),21,2.0)
IvaT4    = FrmVal$(IvaTax(4),21,2.0)

'valores de incidenica
IvaI0    = FrmMoe$("",12,Ado_Tot_IvaIse)
IvaI1    = FrmMoe$("",12,AdoIvaInc("T",1))
IvaI2    = FrmMoe$("",12,AdoIvaInc("T",2))
IvaI3    = FrmMoe$("",12,AdoIvaInc("T",3))
IvaI4    = FrmMoe$("",12,AdoIvaInc("T",4))

'valores de iva
IvaV1    = FrmMoe$("Z=0",12,AdoIvaVal("T",1))
IvaV2    = FrmMoe$("Z=0",12,AdoIvaVal("T",2))
IvaV3    = FrmMoe$("Z=0",12,AdoIvaVal("T",3))
IvaV4    = FrmMoe$("Z=0",12,AdoIvaVal("T",4))



'totais do documento
DocDesco = FrmMoe$("",15,Ado_Tot_Desco)
DocIlq   = FrmMoe$("",15,Ado_Tot_Ilq)
DocLiq   = FrmMoe$("",15,Ado_Tot_Liq)
DocPort  = FrmMoe$("",15,Ado_Tot_Ext)
DocIvaSuj= FrmMoe$("",15,Ado_Tot_IvaSuj)
DocInc   = FrmMoe$("",15,Ado_Tot_Inc)
DocIva   = FrmMoe$("",15,Ado_Tot_Iva)
DocIlq   = FrmMoe$("",15,Ado_Tot_Ilq)
DocLiq   = FrmMoe$("",15,Ado_Tot_Liq)
DocTot   = FrmMoe$("",15,Ado_Tot_Tot)


'informacoes sobre o documento
'Vend      = "("+Enc_Mst_Vend+") "+EmpTabCon$("Vend",Enc_Mst_Vend,"Nome")
Vend      = Enc_Mst_Vend 
Cpag      = EmpTabCon$("Cpag",Enc_Mst_CpagCod,"Des")

DocNome   = Doc_Ide_Nome$
'DocNome   = Doc_Ide_Sdoc$

DocNum    = FrmNdo$("",Enc_Mst_Tdoc$,Enc_Mst_Ndoc$)
DocVia    = Doc_Ide_Via$
DocDtl    = FrmVal$(Doc_Ide_Dtl,44,0)
DocDtv    = FrmVal$(Doc_Ide_Dtv,44,0)
DocOrg    = VarAlt$("ENC_MST","Emp_Inf_Local$")
DocDest   = VarAlt$("ENC_MST","Cta_Ang_Local$,LocEnt$")
Viatura   = TxIde$(Enc_Mst_Opc$,"MAT")
HorSai    = FrmVal$(Enc_Mst_HrSai,53,0)
Gremessa  = TxIde$(Enc_Mst_Opc$,"GRE")

DocRcNum  = DocRcNum$
DocRcDtl  = DocRcDtl$
DocRcDtv  = DocRcDtv$

'listar documentos
DocIde    = Enc_Mst_Tdoc$+" "+FrmNdo$("",Enc_Mst_Tdoc$,Enc_Mst_Ndoc$)
'DocIde    = Enc_Mst_Descr$
DocVl     = FrmVal$(Doc_Tot_Tot,21,13.2)
pIvaI1    = FrmVal$(IvaInc("T",1),21,10.2)
pIvaV1    = FrmVal$(IvaVal("T",1),21,10.2)
pDocIva   = FrmVal$(Doc_Tot_Iva,21,13.2)
pDocTot   = FrmVal$(Doc_Tot_Tot,21,13.2)
PDocDtl   = FrmVal$(Doc_Mst_Dtl,44,0)

Abv1 = EmpTabCon$("MOEDA",Enc_Mst_Moeda,"ABRV")


MoedaAbv1  = MoedaAbv1$
LinInf1    = LinInf1$
##

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

'------------------------------------------------------------------------------
' Sequencias para recolha de artigos
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
' Tipo Normal
'------------------------------------------------------------------------------
#SEQ
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; EXE
Funcao : Executar      [FX,EXE ]=*
Recolha automatica           [E]=RAUTO
'Campo opcional 1             [E]=OPC COR,Cor,A15
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

'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
Iva                          [E]=IVA; TOT

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


'------------------------------------------------------------------------------
' 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; EXE
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
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
Iva                          [E]=IVA; TOT

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


'------------------------------------------------------------------------------
' 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; EXE
Funcao : Executar      [FX,EXE ]=*
Recolha automatica           [E]=RAUTO
Preco                        [E]=PRC 0,-1
Desconto                     [E]=DES
Iva                          [E]=IVA
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
Iva                          [E]=IVA; TOT

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


'------------------------------------------------------------------------------
' 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; EXE
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
Iva                          [E]=IVA
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
Iva                          [E]=IVA; TOT

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


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


'------------------------------------------------------------------------------
' 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; EXE
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
Desconto                     [E]=DES
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
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

##


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


#PAG  Dados para Documento    'Definicao da pagina 
'mo asp x   y  identificacao      di  variavel                            frm   dv ope
30,-10, 20, 50,"Conta          " ,100,Cta_Mst_Ct$                         ,30.0,250
31, 10, 20, 80,"Nome           " ,100,VarAlt$("ENC_MST","Cta_Mst_Nome$")  ,30.0,250
31, 10, 20,110,"Morada         " ,100,VarAlt$("ENC_MST","Cta_Ang_Morada$"),30.0,250
31, 10, 20,140,"Localidade     " ,100,VarAlt$("ENC_MST","Cta_Ang_Local$") ,30.0,250
31, 10, 20,170,"Codigo Postal  " ,100,VarAlt$("ENC_MST","Cta_Ang_Cpost$") ,30.0,250
31, 10, 20,200,"Vendedor       " ,100,Enc_Mst_Vend                        , 2.0, 50
30, 10, 20,230,"Contribuinte   " ,100,VarAlt$("ENC_MST","Cta_Mst_Ctrb$")  ,12.0,130
30,110, 20,260,"Cond. Pagamento" ,100,Enc_Mst_CpagCod                     , 2.0, 50

31, 10, 390, 50,"Desconto a usar  ",100,VarAlt$("ENC_MST","Cta_Ang_Desco$,Desco")   ,30.0,25
31, 10 ,390, 80,"Descrição p/ doc ",100,TxIde$(Enc_Mst_Opc$,"DOC_DESCR")           ,08.0, 90
31, 44, 390,110,"Data             ", 50,Enc_Mst_Dtl                        , 8.0,100
10, 53, 390,140,"Hora de saida   ",100,Enc_Mst_HrSai                              , 4.0,100
31, 10, 390,170,"Local de carga  ",100,VarAlt$("ENC_MST","Emp_Inf_Local$")        ,30.0,100
31, 10, 390,200,"Local de entrega",100,VarAlt$("ENC_MST","Cta_Ang_Local$,LocEnt$"),30.0,100
31, 10, 390,230,"Matricula       ",100,TxIde$(Enc_Mst_Opc$,"MAT")                 ,30.0,100
31, 10, 390,260,"Guia Remessa    ",100,TxIde$(Enc_Mst_Opc$,"GRE")                 ,30.0,100
'31, 10, 240,260,"Informação Livre",100,TxIde$(Enc_Mst_Opc$,"INF1")                ,40.0,250
##

'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 inicializacao
'-----------------------------------------------------------------------------
SUB FxIni 'funcao de inicializacao
'modo WIN
PrWIN AJT_F, 56.7,  56.7                   'ajuste para milimetros
PrWIN AJT_D,-280.0,-280.0                  'deslocamento de ajuste 
PrWIN IMG_F, 1, VarTx$("[SIG_DIR.DIV],DocLogo.bmp","R")     'imagem (logotipo)
PrWIN ET,  2                               'espessura de traco 
end sub


SUB FxFim 'funcao de finalizacao
PrWIN FON, "REG"                           'limpar registo de fontes

end sub

'-----------------------------------------------------------------------------
' Funcoes para impressao do documento
'-----------------------------------------------------------------------------
SUB CabIni

'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")  
DocEurCmb$ = FrmVal$(EmpTabCon$("MOEDA",Enc_Mst_Moeda,"CMBEUR"),21,3.3)
IvaNR=0
'Margem=7                                   'margem esquerda do documento
Margem=10                                   'margem esquerda do documento

'Definicao de posicoes de linhas
PosIdeLin=110                               'titulos das linhas
InicioLinhas=PosIdeLin+2                    'escrita das linhas documento
FimDoc=236                                  'fim do documento


'memorizar variaveis diversas
LinInf1$  = TxIde$(Enc_Mst_Opc$,"INF1")
DocRcNum$ = FrmNdo$("",Enc_Mst_Tdoc$,Enc_Mst_Ndoc$)
DocRcDtl$ = FrmVal$(Doc_Ide_Dtl,44,0)
DocRcDtv$ = FrmVal$(Doc_Ide_Dtv,44,0)

'RzaNcr$=""                                                                'azerar variavel razao NC
end sub


'-----------------------------------------------------------------------------
' Cabecalho do documento
'-----------------------------------------------------------------------------
SUB CAB 'cabecalho do documento
call DocCerVarPrp                               'preparar variaveis referentes a certificacao



'-Tamanhos das colunas----------------------------------------------------------
Tcod=25      'tamanho para codigo
Tdes=68      'tamanho para descricao
Tqnt=25      'tamanho para quantidade
Tuni=6       'tamanho para unidade
Tpun=30      'tamanho para preco unitario
TDsc=5       'tamanho para desconto
Tliq=Tpun    'tamanho para liquido
TIva=TDsc    'tamanho para IVA


'-Posicoes iniciais para as colunas----------------------------------------------------------
esp=0             'espaco entre colunas

Col1=0                     'coluna de codigo
Col2=Col1+Tcod             'coluna de descricao
Col3=Col2+Tdes+esp         'coluna de quantidade
col4=col3+tqnt+esp         'coluna de unidade
col5=col4+tuni+esp         'coluna de prc unitario
col6=col5+tpun+esp         'coluna desconto
col7=col6+tdsc+esp         'coluna liquido
col8=col7+tliq+esp         'coluna iva
Col9=col8+tIva             'coluna maxima
MargemD=Col9               'margem direita


altQ=5               'altura de quadro titulo de linh


PrWIN AJT_B,  Margem, 10.0                       'posicao base
'PrWIN IMG_V,1, 2, 2, 50, 20                  'imagem (logotipo)
'PrWIN GR_CX,   2, 2, "+50", "+20", 2         'caixa envolvente

PrWIN FON, 18, 1                             	'activar fonte
PrWin FON, "BOLD+"                              'activar bold
'PrWIN TX_N, 2, 10,@EmpNome
PrWin FON, "BOLD-"                              'desactivar bold

'Dados da empresa
PrWIN FON, 09, 1                               'activar fonte
PrWIN AJT_B,  Margem+2, 10.0                   'posicao base
'PrWIN TX_N, 0, 23,@EmpMorada
'PrWIN TX_N, 0, 28,@EmpLocal
'PrWIN TX_N, 0, 33,@EmpCpost
'PrWIN TX_N, 0, 38,"Telefone:"
'PrWIN TX_N, 21, 38,@EmpTel
'PrWIN TX_N, 0, 43,"Telefax:"
'PrWIN TX_N, 21, 43,@EmpFax

'dados de registo 
'PrWIN TX_N,  0, 53,"Contribuinte:"
'PrWIN TX_N, 21, 53,@EmpCtrb
'PrWIN TX_N,  0, 63,@EmpTps
'PrWIN TX_N,  0, 68,@EmpReg

PrWIN AJT_B, Margem, 60                        'posicao base
PrWIN COR_E, 200, 200, 200                         'Cor de enchimento RGB
PrWIN GR_ME, 0                                     'modo de enchimento
PrWIN GR_CE,  0,  0, 70, 12, 2              'caixa do cabecalho
PrWIN GR_CX,  0,  0, 70, 17, 2                     'caixa dos dados do documento
PrWIN GR_LI,  0,  7, 70,  7, 2                     'separador horizontal do documento
PrWIN GR_LI,  0, 12, 70, 12, 2                     'separador horizontal do documento
PrWIN GR_LI, 35,  7, 35, 17, 2                     'separador Vertical   do documento
PrWin FON, "BOLD+"                                 'activar bold
PrWIN   FON, 16,   1                               'activar fonte
PrWIN TX_CTR, 0,  0, 70,  7,@vCerDocIde
'PrWIN TX_CTR, 0,  0, 70,  7,@DocNome
PrWIN   FON,  9,   1                               'activar fonte
PrWIN TX_CTR, 0,  7, 35, 12,"Data"
PrWIN TX_CTR,35,  7, 70, 12,"Numero"
PrWin FON, "BOLD-"                                 'desactivar bold
PrWIN TX_CTR, 0, 12, 35, 17,@DocRcDtl
'PrWIN TX_CTR,35, 12, 70, 17,vCerDocNum 
PrWIN TX_CTR,35, 12, 70, 17,@DocRcNum

'PrWIN  TX_N, 12,  19,"Via Documento:"
PrWIN  TX_N, 15,  19,@DocVia

PrWIN  TX_N,175, 30,"Pagina:"
PrWIN  TX_N,187, 30,@Pag


PrWIN FON, 10, 1                               'activar fonte
'destinatario do documento
PrWIN AJT_B, Margem+100, 37                           'posicao base
PrWIN TX_N, 0, 10,"Exmo(s). Snr(s).:"
PrWIN TX_N, 0, 20,@Nome
PrWIN TX_N, 0, 25,@Morada
PrWIN TX_N, 0, 30,@Local
PrWIN TX_N, 0, 35,@Cpost

PrWIN AJT_B, Margem,  95                           'posicao base
PrWIN   FON,  9,   1                               'activar fonte
PrWIN GR_CX,  0,  0, MargemD, 10, 2                'caixa dos dados do cliente
PrWIN COR_E, 200, 200, 200                         'Cor de enchimento RGB
PrWIN GR_ME, 0                                     'modo de enchimento
PrWIN GR_CE,  0,  0, MargemD,  5, 2                'caixa do cabecalho
PrWIN GR_LI,  0,  5, MargemD,  5, 1
PrWIN GR_LI, 25,  0, 25, 10, 1                     'separador Vertical   do documento
PrWIN GR_LI, 55,  0, 55, 10, 1
PrWIN GR_LI, 90,  0, 90, 10, 1
PrWIN GR_LI,120,  0,120, 10, 1
PrWIN GR_LI,150,  0,150, 10, 1
PrWIN TX_CTR, 0,  0, 25, 05,"V/ Codigo"
PrWIN TX_CTR,25,  0, 55, 05,"V/ Nº Contribuinte "
PrWIN TX_CTR,55,  0, 90, 05,"Vendedor "
PrWIN TX_CTR,90,  0,120, 05,"Guia Remessa"
PrWIN TX_CTR,120, 0,150, 05,"Data Vencimento"
PrWIN TX_CTR,150, 0,MargemD, 05,"Condições Pagamento"
PrWIN TX_CTR, 0,  5, 25, 10,@Ct
PrWIN TX_CTR,25,  5, 55, 10,@Ctrb
PrWIN TX_CTR,55,  5, 90, 10,@Vend
PrWIN TX_CTR,90,  5,120, 10,@Gremessa
PrWIN TX_CTR,120,  5,150, 10,@DocRcDtv
PrWIN TX_CTR,150, 5,MargemD, 10,@cpag




'PrWIN TX_N, 2, 19,@LinInf1




PrWIN AJT_B, Margem, PosIdeLin                   'posicao base



PrWIN FON, 08, 1                             	'activar fonte
cano=Datacmp(Doc_Ide_Dtl,A4)

'If cano < 2011 Then 
'   PrWIN TX_Ro,  -3, 70, 90,"PROCESSADO POR COMPUTADOR"
'Else
'   PrWIN TX_Ro,  -3,100, 90,@vCerPgmDes             'certificacao do programa
'End If



PrWIN COR_E, 200, 200, 200                      'Cor de enchimento RGB
PrWIN GR_ME, 0                                  'modo de enchimento
PrWIN GR_CE,  0,  0,MargemD,  altq, 2           'caixa do cabecalho
PrWin FON, "BOLD+"                              'activar bold
PrWIN FON, 9, 1                             	'Fonte para titulos da linha

PrWIN TX_CTR, Col1,  0, Col2, Altq,"Referência"     'texto centrado
PrWIN TX_CTR, Col1,  0, Col3, Altq,"Descrição"      'texto centrado
PrWIN TX_CTR, Col3,  0, Col4, Altq,"Quant"          'texto centrado

PrWIN TX_CTR, Col4,  0, Col5, Altq,"Un"             'texto centrado
PrWIN TX_CTR, Col5,  0, Col6, Altq,"Unitário"       'texto centrado

PrWIN TX_CTR, Col6,  0, Col7, Altq,"Desc %"         'texto centrado
PrWIN TX_CTR, Col7,  0, Col8, Altq,"Valor total"    'texto centrado
PrWIN TX_CTR, Col8,  0, Col9, Altq,"IVA"            'texto centrado

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

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


PrWIN GR_CX,  0,  0, MargemD ,Fimdoc-PosIdeLin-5     'caixa do corpo da factura
'PrWIN Tx_N,   0,  Fimdoc-PosIdeLin-4,"Os Serviços/Artigos foram colocados à disposição do Cliente na data indicada no documento"  'Linha de texto
Portes$=""
End sub


'-----------------------------------------------------------------------------
' Linhas do Documento
'-----------------------------------------------------------------------------
Sub LinPos   'posicionar em linha
PrWIN AJT_B,   Margem, InicioLinhas+Doc_CntLin*5                'posicao base
end Sub


SUB LinNor 'artigos tipo normal
Call LinPos                                               'posicionar linha
PrWIN TX_N,  Col1+3,  0,     @LinArt
PrWIN TX_N,  Col2,  0,     @LinNome
PrWIN TX_NP, Col3+5,  0,"N",@LinQu
PrWIN TX_N,  Col4,  0,    @LinUni
PrWIN TX_NP, Col5,  0,"N",@LinPrc
PrWIN TX_NP, Col6,  0,"N",@LinDesco
PrWIN TX_NP, Col7,  0,"N",@LinLiq
PrWIN TX_NP, Col8,  0,"N",@Iva
call PrtLinIvaIse                                           'escrever isencao do IVA
'If Enc_Mov_Iva=4 Then
'  IvaNR=1
'End If
RzaNcr$ = EncIdeTbNcrRaz$("",Enc_Mov_Opc$)
end sub



SUB LinMed 'artigos com medidas
call LinNor
tmp=CntLin("INC",1)                             'incrementar contador linhas
Call LinPos                                               'posicionar linha
PrWIN TX_N,  Col3,  0,"Medidas digitadas :"
PrWIN TX_N,  Col3+25,  0,@LinMedTx

'PrWIN TX_N,  Col3,  0,"Medidas em Qnt  :"
'PrWIN TX_N,  Col3+25,  0,@DocArtQuM

PrWIN TX_N,  Col6,  0,"Medidas em Valor :"
PrWIN TX_N,  col6+27,  0,@DocArtMedV
call PrtLinIvaIse                                           'escrever isencao do IVA
end sub


SUB LinIde 'artigos tipo nome livre
ArtIdeLin=1                     'activar tipo de linha
Call LinNor
ArtIdeLin=0                     'desactivar tipo linha
end sub


SUB LinCor 'Exemplo campos opcionais
Call LinPos                                               'posicionar linha
PrWIN TX_N,    Col3,  0,"Cor escolhida   :"
PrWIN TX_N, Col3+30,  0,@LinOpcCor
end sub



SUB LinPmo 'artigos tipo Portes e Mao-de-obra
'guardar valor para imprimir no final do documento
Portes$  = FrmVal$(Doc_Art_Liq,21,13.2)
end sub


SUB LinTxl 'artigos tipo texto livre
Call LinPos
PrWIN TX_N,   Col2,  0,@LinTxl
end sub


SUB LinAjt 'ajuste de linhas

end sub


SUB LinDoc 'linha de documento
Call LinPos                                               'posicionar linha
PrWIN TX_N,   Col1,  0,"Documento :"
PrWIN TX_N,   Col2+3,  0,@DocIde
'PrWIN TX_N,   Col3,    0,@pDocDtl
'PrWIN TX_NP,  Col5,   0,"N",@pDocTot
end sub


'-----------------------------------------------------------------------------
' Final do Documento
'-----------------------------------------------------------------------------
SUB FimAjt  '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 Fim     'totais do documento
PrWIN AJT_B,   Margem, FimDoc                        'posicao base
PrWIN COR_E, 200, 200, 200                      'Cor de enchimento RGB
PrWIN GR_ME, 0                                  'modo de enchimento

'if RzaNcr$<>"" then                                         'existe razao nota credito ?
'call PrtLinAdi_RzNcr                                     'escrever razao nota credito
'end if

PrWIN GR_CX,   0,   0, MargemD,  37, 2          'caixa de moldura
PrWIN GR_CE,  0,  0, MargemD,  05, 2            'caixa com enchimento - cabecalho

PrWIN GR_CX, 125,   0, 155,  37, 2         	'caixa central

PrWIN GR_LI,   0,  24, 125,  24, 1           	'separador horizontal dos IVAS
'PrWIN GR_LI, 100,  42, 196,  42, 2           	'separador horizontal dos TOTAIS
'PrWIN GR_LI,   0,  58, 190,  58, 2           	'separador horizontal FINAL

PrWin FON, "BOLD+"                              'activar bold
PrWIN FON, 09, 1                             	'activar fonte
PrWIN TX_N,  8,  1,"IVA   Taxa             V.Incidencia                         I.V.A."
PrWin FON, "BOLD-"                              'desactivar bold

'RzaNcr$ = EncIdeTbNcrRaz$("",Enc_Mov_Opc$)
PrWIN TX_N,  5, -10,"Razão da Nota de Crédito : "
PrWIN TX_NP, 50, -10,"N",RzaNcr$                    'razao nota credito ?

'PrWIN FON, 08, 1                             	'activar fonte
if IvaIse$<>"" then
   tmp=CntLin("INC",1)                                 'incrementar contador linhas
      PrWIN FON, 08, 1                             	'activar fonte
      PrWIN TX_NP, 2,  11,"N","Isenção de Iva -"
      PrWIN TX_NP, 29,  11,"N",IvaIse$
'end if
'PrWIN FON, 09, 1                             	'activar fonte
'If IvaNR=1 Then
'   PrWIN TX_N,   25, 11,"Iva - Autoliquidação"
Else
   PrWIN FON, 09, 1                             	'activar fonte    
   PrWIN TX_NP,  10, 07,"N","0"
   PrWIN TX_NP,  20, 07,"N"," 0"
   PrWIN TX_NP,  30, 07,"N",@IvaI0
   PrWIN TX_NP,  60, 07,"N","0" 
   PrWIN TX_NP,  10, 11,"N","1"
   PrWIN TX_NP,  20, 11,"N",@IvaT1
   PrWIN TX_NP,  30, 11,"N",@IvaI1
   PrWIN TX_NP,  60, 11,"N",@IvaV1
   PrWIN TX_NP,  10, 15,"N","2"
   PrWIN TX_NP,  20, 15,"N",@IvaT2
   PrWIN TX_NP,  30, 15,"N",@IvaI2
   PrWIN TX_NP,  60, 15,"N",@IvaV2
   PrWIN TX_NP,  10, 19,"N","3"
   PrWIN TX_NP,  20, 19,"N",@IvaT3
   PrWIN TX_NP,  30, 19,"N",@IvaI3
   PrWIN TX_NP,  60, 19,"N",@IvaV3
End If


'PrWIN TX_NP,  10, 30,"N","4"
'PrWIN TX_NP,  20, 30,"N",@IvaT4
'PrWIN TX_NP,  30, 30,"N",@IvaI4
'PrWIN TX_NP,  60, 30,"N",@IvaV4


PrWin FON, "BOLD+"                              'activar bold
PrWIN TX_N,  05, 26,"Local Entrega"
PrWIN TX_N,  05, 30,"Local de Carga"
PrWIN TX_N,  90, 26,"Hora Saída"
PrWIN TX_N,  90, 30,"Viatura"

PrWIN TX_N, 130, 10,"Iliquido"
PrWIN TX_N, 130, 14,"Desconto"
PrWIN TX_N, 130, 18,"Liquido"
PrWIN TX_N, 130, 22,"Total de IVA"
PrWIN TX_N, 130, 26,TotalAbv1$


PrWin FON, "BOLD-"                              'desactivar bold

PrWIN TX_N,  30, 26,@DocDest
PrWIN TX_N,  30, 30,@DocOrg
PrWIN TX_N, 108, 26,@HorSai
PrWIN TX_N, 108, 30,@Viatura

PrWIN TX_NP, 160, 10,"N",@DocIlq
PrWIN TX_NP, 160, 14,"N",@DocDesco
PrWIN TX_NP, 160, 18,"N",@DocLiq
PrWIN TX_NP, 160, 22,"N",@DocIva
PrWIN TX_NP, 160, 26,"N",@DocTot
'PrWIN TX_NP, 150, 50,"N",Portes$        'valor de portes


PrWIN FON, 7, 1                             	'activar fonte
'PrWIN TX_N,  03, 33,"Software OLISOFT licensiado por FORMATIC II para LEIRIPLAS, LDA."
'PrWIN TX_N,  03, 33,@PerSon

EmpPtim$=Trim$(Emp_Inf_Nome$)+" - "+Trim$(Emp_Inf_Morada$)+" - "+Trim$(Emp_Inf_Local$)+" - "+Trim$(Emp_Inf_Cpost$)+" - Contribuinte: "+Emp_Inf_Contrib$
PrWIN FON, 07, 1                                                 'activar fonte
PrWIN TX_Ro,  -4, 5, 90,EmpPTim$                 'dados empresa quando  papel timbrado
PrWIN FON, 10, 1                                                 'activar fonte


If cano < 2011 Then 
   PrWIN TX_N,  3, 38,"PROCESSADO POR COMPUTADOR"
Else
   PrWIN TX_N,  3, 38,@vCerPgmDes             'certificacao do programa
End If



PrWin FON, 8, 1
'PrWIN TX_N,  85, 36,@EmpMail
'PrWIN TX_N, 145, 38,"PROCESSADO POR COMPUTADOR



'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

PrWIN FP                                           'fim de pagina
end sub

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

'if IvaIse$<>"" then
'   tmp=CntLin("INC",1)                                         'incrementar contador linhas
'   PrWIN TX_NP, Col2,   5,"N",IvaIse$
'end if
end sub

Sub PrtLinAdi_RzNcr 'escrever razao nota credito
RzaNcr$ = EncIdeTbNcrRaz$("",Enc_Mov_Opc$)
PrWIN TX_NP, 5, -10,"N",RzaNcr$                    'razao nota credito ?
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
##

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


