'Nome       : StdFac.Imp
'Tipo       : LST
'Data       : 2001/06/05
'Versao     : 1.0
'Descricao  : Formato de documento tipo Factura para import/Export

'-----------------------------------------------------------------------------
' Modificacoes
'-----------------------------------------------------------------------------
'- Versao : 2.0  2001/??/?? -------------------------------------------------
'Versao base


'-----------------------------------------------------------------------------
' 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
'Vias                       [DocVia]=Original;Duplicado,2;Triplicado
'Vias                       [DocVia]=Original;Duplicado;Triplicado
Vias                       [DocVia]=Original unico
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]=18
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)

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

'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  = left$(Stc_Mst_Nome1$,25)
LinQu    = FrmVal$(Doc_Art_Qu,21,5.3)
LinPrc   = FrmVal$(Doc_Art_Prc,21,8.2)
LinUni   = Stc_Mst_Unid$
LinDesco = Enc_Mov_Desco$
LinLiq   = FrmVal$(Doc_Art_Liq,21,10.2)
Iva      = IvaTax("A")
LinTxl   = Enc_Mov_Div$
DocArtQuM  = FrmVal$(Doc_Art_QuM,21,5.3)
DocArtMedV = FrmVal$(Doc_Art_MedVal,21,5.3)


'valores de iva/taxas do documento
IvaI0    = FrmVal$(Ado_Tot_IvaIse,21,10.2)
IvaT1    = FrmVal$(IvaTax(1),21,2.0)
IvaI1    = FrmVal$(AdoIvaInc("T",1),21,10.2)
IvaV1    = FrmVal$(AdoIvaVal("T",1),21,10.2)
IvaT2    = FrmVal$(IvaTax(2),21,2.0)
IvaI2    = FrmVal$(AdoIvaInc("T",2),21,10.2)
IvaV2    = FrmVal$(AdoIvaVal("T",2),21,10.2)
IvaT3    = FrmVal$(IvaTax(3),21,2.0)
IvaI3    = FrmVal$(AdoIvaInc("T",3),21,10.2)
IvaV3    = FrmVal$(AdoIvaVal("T",3),21,10.2)


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


'conversão de moeda
DocEurTot=FrmVal$(MoeCnv("N",Doc_Tot_Tot,Enc_Mst_Moeda,2),21,13.2)
DocEurCmb=FrmVal$(EmpTabCon$("MOEDA",Enc_Mst_Moeda,"CMBEUR"),21,3.3)

'informacoes sobre o documento
Vend      = "("+Enc_Mst_Vend+") "+EmpTabCon$("Vend",Enc_Mst_Vend,"Nome")
Cpag      = EmpTabCon$("Cpag",Enc_Mst_CpagCod,"Des")
DocNome   = Doc_Ide_Nome$
'DocNum    = FrmNdo$("44",Enc_Mst_Tdoc$,Enc_Mst_Ndoc$)
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)

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

'listar documentos
DocIde    = Enc_Mst_Tdoc$+" "+FrmNdo$("44",Enc_Mst_Tdoc$,Enc_Mst_Ndoc$)
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)
##


'------------------------------------------------------------------------------
' 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              [E]=OPC Var$,Descricao,Tipo(A/N)+Dig
Quantidade                   [E]=QU; ESC:LPL
'Quantidade 2                [E]=QU2
Preco                        [E]=PRC
Desconto                     [E]=DES
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
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
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
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
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
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
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
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
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
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

10, 53, 390,170,"Hora de saida   ",100,Enc_Mst_HrSai                              , 4.0,100
31, 10, 390,200,"Local de carga  ",100,VarAlt$("ENC_MST","Emp_Inf_Local$")        ,30.0,100
31, 10, 390,230,"Local de entrega",100,VarAlt$("ENC_MST","Cta_Ang_Local$,LocEnt$"),30.0,100
31, 10, 390,260,"Matricula       ",100,TxIde$(Enc_Mst_Opc$,"MAT")                 ,30.0,100
##

'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
DocRcNum$ = FrmNdo$("44",Enc_Mst_Tdoc$,Enc_Mst_Ndoc$)
DocRcDtl$ = FrmVal$(Doc_Ide_Dtl,44,0)
DocRcDtv$ = FrmVal$(Doc_Ide_Dtv,44,0)
end sub

'-----------------------------------------------------------------------------
' Cabecalho do documento
'-----------------------------------------------------------------------------
SUB CAB 'cabecalho do documento
'PrWIN COR_F, 15                              'cor de fundo

PrWIN AJT_B,  8.0, 10.0                       'posicao base

'PrWIN GR_CX,   2,   2, 190, 110, 2            'caixa de moldura

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, 55, 10,"Soluções Informaticas, Lda."
PrWin FON, "BOLD-"                              'desactivar bold

PrWIN GR_CX,  2, 25, 80, 75, 2               'caixa da morada da empresa
PrWIN FON, 10, 1                             'activar fonte
PrWIN TX_N, 10, 28,@EmpNome
PrWIN TX_N, 10, 33,@EmpMorada
PrWIN TX_N, 10, 38,@EmpLocal
PrWIN TX_N, 10, 43,@EmpCpost
PrWIN TX_N, 10, 48,"Telefone:"
PrWIN TX_N, 31, 48,@EmpTel
PrWIN TX_N, 10, 53,"Telefax:"
PrWIN TX_N, 31, 53,@EmpFax

'PrWIN GR_CX,  2, 65, 80, 80, 2               'caixa dos dados da empresa
PrWIN TX_N, 10, 58,"Contribuinte:"
PrWIN TX_N, 31, 58,@EmpCtrb
PrWIN TX_N, 10, 63,@EmpTps
PrWIN TX_N, 10, 68,@EmpReg

'PrWIN AJT_B, 95, 25                           'posicao base
PrWIN GR_CX, 85, 25, 190, 75, 2                'caixa da morada do cliente
PrWIN TX_N, 100, 35,"Exmo(s). Snr(s).:"
PrWIN TX_N, 100, 45,@Nome
PrWIN TX_N, 100, 50,@Morada
PrWIN TX_N, 100, 55,@Local
PrWIN TX_N, 100, 60,@Cpost

PrWIN AJT_B, 8.0, 85                            'posicao base
PrWIN GR_CX,  2,  5, 80, 25, 2                  'caixa dos dados do cliente
PrWIN TX_N, 10,  08,"Data :"
PrWIN TX_N, 30,  08,@DocDtl
PrWIN TX_N, 10,  13,"Conta :"
PrWIN TX_N, 30,  13,@Ct
PrWIN TX_N, 10,  18,"V/ Ctrb. :"
PrWIN TX_N, 30,  18,@Ctrb

PrWIN FON, 20, 1                             	'activar fonte
PrWIN TX_N, 100,   5,@DocNome
PrWIN FON, 10, 1                             	'activar fonte
PrWIN TX_N, 100,  15,"NUMERO :"
PrWIN TX_N, 130,  15,@DocNum
PrWIN TX_N, 100,  20,"VIA :"
PrWIN TX_N, 130,  20,@DocVia


'-corpo do documento----------------------------------------------------------
PrWIN AJT_B, 8.0, 115                           'posicao base
PrWIN COR_E, 200, 200, 200                      'Cor de enchimento RGB
PrWIN GR_ME, 0                                  'modo de enchimento

PrWIN GR_CE,  2,  0, 190,  08, 2           	'caixa do cabecalho
PrWIN GR_CX,  2, 08, 190, 100, 2           	'caixa de corpo

'PrWIN GR_LI,130,  0, 130, 110, 2           	'separador vertical

PrWin FON, "BOLD+"                              'activar bold
PrWIN FON, 10, 1                             	'activar fonte

PrWIN TX_CTR,  2,  0,  20,  08,"Codigo"         'texto centrado
PrWIN TX_CTR, 20,  0,  70,  08,"Descrição"      'texto centrado
PrWIN TX_CTR, 70,  0, 100,  08,"Quantidade"     'texto centrado
PrWIN TX_CTR,100,  0, 105,  08,"Uni"            'texto centrado
PrWIN TX_CTR,107,  0, 135,  08,"Preço unit."    'texto centrado
PrWIN TX_CTR,138,  0, 150,  08,"Desconto"       'texto centrado
PrWIN TX_CTR,155,  0, 181,  08,"Total liquido"  'texto centrado
PrWIN TX_CTR,182,  0, 189,  08,"IVA"            'texto centrado

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


'-----------------------------------------------------------------------------
' Linhas do Documento
'-----------------------------------------------------------------------------
SUB LinNor 'artigos tipo normal
'?@LinArt           @LinNome                           @LinQu          @Uni     @LinPrc           @LinDesco       @LinLiq        @Iva

PrWIN AJT_B,   8, 110+Doc_CntLin*5                'posicao base
PrWIN TX_N,    4,  10,@LinArt
PrWIN TX_N,   30,  10,@LinNome
PrWIN TX_NP,  80,  10,"N",@LinQu
PrWIN TX_N,  100,  10,@LinUni
PrWIN TX_NP, 115,  10,"N",@LinPrc
PrWIN TX_NP, 135,  10,"N",@LinDesco
PrWIN TX_NP, 155,  10,"N",@LinLiq
PrWIN TX_NP, 182,  10,"N",@Iva
end sub


SUB LinMed 'artigos com medidas
PrWIN AJT_B,   8, 110+Doc_CntLin*5                'posicao base
PrWIN TX_N,    4,  10,@LinArt
PrWIN TX_N,   30,  10,@LinNome
PrWIN TX_NP,  80,  10,"N",@LinQu
PrWIN TX_N,  100,  10,@LinUni
PrWIN TX_NP, 115,  10,"N",@LinPrc
PrWIN TX_NP, 135,  10,"N",@LinDesco
PrWIN TX_NP, 155,  10,"N",@LinLiq
PrWIN TX_NP, 182,  10,"N",@Iva
PrWIN TX_N,    4,  15,"Qu Medidas   :"
PrWIN TX_N,   30,  15,@DocArtQuM

PrWIN TX_N,    4,  20,"Medidas      :"
PrWIN TX_N,   30,  20,@DocArtMedV
end sub


SUB LinIde 'artigos tipo nome livre
'?@LinArt           @ArtIde                            @LinQu          @Uni     @LinPrc           @LinDesco       @LinLiq        @Iva
PrWIN AJT_B,   8, 110+Doc_CntLin*5                'posicao base
PrWIN TX_N,    4,  10,@LinArt
PrWIN TX_N,   30,  10,@ArtIde
PrWIN TX_NP,  80,  10,"N",@LinQu
PrWIN TX_N,  100,  10,@LinUni
PrWIN TX_NP, 115,  10,"N",@LinPrc
PrWIN TX_NP, 135,  10,"N",@LinDesco
PrWIN TX_NP, 155,  10,"N",@LinLiq
PrWIN TX_NP, 182,  10,"N",@Iva
end sub


SUB LinCor 'Exemplo campos opcionais
'?@LinArt           @LinNome                           @LinQu          @Uni     @LinPrc           @LinDesco       @LinLiq        @Iva
'?Cor escolhida   : @LinOpcCor
PrWIN AJT_B,   8, 110+Doc_CntLin*5                'posicao base
PrWIN TX_N,    4,  10,"Cor escolhida   :"
PrWIN TX_N,   30,  10,@LinOpcCor
end sub



'SUB LinPmo 'artigos tipo Portes e Mao-de-obra
'?
'end sub


SUB LinTxl 'artigos tipo texto livre
PrWIN AJT_B,   8, 110+Doc_CntLin*5                'posicao base
PrWIN TX_N,    4,  10,@LinTxl
end sub


SUB LinAjt 'ajuste de linhas
'PrWIN AJT_B,   8, 110+Doc_CntLin*5                'posicao base
end sub


SUB LinDoc 'linha de documento
PrWIN AJT_B,   8, 110+Doc_CntLin*5                'posicao base
PrWIN TX_N,    4,  10,@DocIde
PrWIN TX_NP,  40,  10,"N",@pDocTot
PrWIN TX_NP, 100,  10,"N",@pDocIva
end sub


'-----------------------------------------------------------------------------
' Final do Documento
'-----------------------------------------------------------------------------
SUB FimAjt  'ajuste de fim de pagina
PrWIN FP                                           'fim de pagina
end sub


SUB Fim     'totais do documento
PrWIN AJT_B,   8, 220                           'posicao base
PrWIN COR_E, 200, 200, 200                      'Cor de enchimento RGB
PrWIN GR_ME, 0                                  'modo de enchimento
PrWIN GR_CE,  2,  0, 190,  08, 2           	'caixa do cabecalho

PrWIN GR_CX,   2,   0, 190,  69, 2         	'caixa de moldura
PrWIN GR_CX, 100,   0, 135,  58, 2         	'caixa central

PrWIN GR_LI,   2,  32, 100,  32, 2           	'separador horizontal dos IVAS
PrWIN GR_LI, 100,  42, 190,  42, 2           	'separador horizontal dos TOTAIS
PrWIN GR_LI,   2,  58, 190,  58, 2           	'separador horizontal FINAL

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

'?  1    @IvaT1 @IvaI1        @IvaV1
'PrWIN TX_NP,  10, 10,"N","0"
'PrWIN TX_NP,  20, 10,"N"," 0"
'PrWIN TX_NP,  30, 10,"N",@IvaI0
'PrWIN TX_NP,  60, 10,"N","0"
'PrWIN TX_NP,  10, 15,"N","1"
'PrWIN TX_NP,  20, 15,"N",@IvaT1
'PrWIN TX_NP,  30, 15,"N",@IvaI1
'PrWIN TX_NP,  60, 15,"N",@IvaV1
'PrWIN TX_NP,  10, 20,"N","2"
'PrWIN TX_NP,  20, 20,"N",@IvaT2
'PrWIN TX_NP,  30, 20,"N",@IvaI2
'PrWIN TX_NP,  60, 20,"N",@IvaV2
'PrWIN TX_NP,  10, 25,"N","3"
'PrWIN TX_NP,  20, 25,"N",@IvaT3
'PrWIN TX_NP,  30, 25,"N",@IvaI3
'PrWIN TX_NP,  60, 25,"N",@IvaV3

PrWin FON, "BOLD+"                              'activar bold
PrWIN TX_N,  10, 35,"Local Entrega"
PrWIN TX_N,  10, 40,"Local de Carga"
PrWIN TX_N,  10, 45,"Hora de Saida"
PrWIN TX_N,  10, 50,"Viatura"

PrWIN TX_N, 105, 10,"Iliquido"
PrWIN TX_N, 105, 15,"Desconto"
PrWIN TX_N, 105, 20,"Liquido"
PrWIN TX_N, 105, 35,"Total de IVA"
PrWIN TX_N, 105, 45,"Total"
PrWIN TX_N, 105, 50,"Total em Euro"
PrWin FON, "BOLD-"                              'desactivar bold

PrWIN TX_N, 152, 60,"PROCESSADO"
PrWIN TX_N, 148, 65,"POR COMPUTADOR"

PrWIN TX_N,  40, 35,@DocDest
PrWIN TX_N,  40, 40,@DocOrg
PrWIN TX_N,  40, 45,@HorSai
PrWIN TX_N,  40, 50,@Viatura

PrWIN TX_NP, 150, 10,"N",@DocIlq
PrWIN TX_NP, 150, 15,"N",@DocDesco
PrWIN TX_NP, 150, 20,"N",@DocLiq
PrWIN TX_NP, 150, 35,"N",@DocIva
PrWIN TX_NP, 150, 45,"N",@DocTot
PrWIN TX_NP, 150, 50,"N",@DocEurTot

ExtNl=NumExtPrp("75,75","=")                      'preparar extenso
PrWIN TX_N,  05, 60,NumExt$(1,Doc_Tot_Tot,"ESC",3) 'linha 1 de extenso
PrWIN TX_N,  05, 65,NumExt$(2)                     'linha 2 de extenso

tmp=MoeCnv("N",Doc_Tot_Tot,Enc_Mst_Moeda,2)       'conversao em EUROS
'PrWIN TX_N,  05, 60,NumExt$(1 ,tmp,"EUR",3)       'linha 1 de extenso em EUROS
'PrWIN TX_N,  05, 65,NumExt$(2)                    'linha 2 de extenso em EUROS

'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


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