'Nome       : CasPro.imp
'Tipo       : LST
'Data       : 2000/03/10
'Versao     : 1.0
'Descricao  : Proposta (CAS) 
'-----------------------------------------------------------------------------
' Definicao global do documento
'-----------------------------------------------------------------------------
#DEF
Caracteres invalidos             [CarInv]=#
Artigo para assistencia          [AssArt]=01019
Funcao para assistencia           [AssFx]=Ass
##


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


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

'formato
Impressora                 [DocPrt]=
'Impressora                 [DocPrt]=PR01
Linhas por pagina          [DocLpg]=32
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=3


'funcoes de listagem
Listar cabecalho            [FxCAB]=Cab
Listar linhas               [FxLIN]=Lin; Nor; Ajt; Txl; Ide; Ass
Listar fim                  [FxFIM]=Fim; Nor; Imp
##


'-----------------------------------------------------------------------------
' Variaveis
'-----------------------------------------------------------------------------
#VAR
Pag      = Doc_CntPag
DataDoc  = FrmVal$(Sig_DtHoje,44,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
NCA      = CasFrmCod$(Cas_Ctr_Ndoc$, "", "CA")
Ct       = Cas_Ctr_CtFac$
Nome     = Cta_Mst_Nome$
Morada   = Cta_Ang_Morada$
Local    = Cta_Ang_Local$
Cpost    = Cta_Ang_Cpost$
Ctrb     = Cta_Mst_Ctrb$

DtCaIni   = FrmVal$(Cas_Ctr_DtICa,44,0)
DtCaFim   = FrmVal$(Cas_Ctr_DtFCa,44,0)

'linhas do documento
LinArt   = CasFrmArt$(Cas_Prq_Art$)
LinNome  = left$(CasPrqArtCon$(Cas_Prq_Crg$,"NOME$"),30)
LinCrg   = Cas_Prq_Crg$
LinFgar  = FrmVal$(Cas_Prq_DtFgar,44,0)
LinPrc   = FrmNum$(9.2, CasArtPrcUsa(Cas_Prq_Art$, Cas_Prq_Prc))
'LinDuo   = FrmNum$(2,CasArtDuo$("", CasCalcDuoCtr(Cas_Ctr_TFac$, Cas_Ctr_AcrIni$, Cas_Ctr_DtICa, Cas_Prq_DtFGar)))
LinDuo  = FrmNum$(2,CasArtDuo$("", CasCalcDuoCtr(Cas_Ctr_TFac$, Cas_Ctr_AcrIni$, Sig_DtHoje, Cas_Ctr_DtICa, Cas_Ctr_DtFCa, Cas_Prq_DtFGar)))
'Duo      = FrmNum$(2,CasArtDuo$("", CasMesPer(Cas_Ctr_TFac$)))
LinDesco = FrmVal$(CasFrmDesco$(Cas_Ctr_Desco$),21,9.2)
'LinLiq   = FrmVal$(CasVlLiq(CasArtPrcUsa(Cas_Prq_Art$, Cas_Prq_Prc), CasCalcDuoCtr(Cas_Ctr_TFac$, Cas_Ctr_AcrIni$, Cas_Ctr_DtICa, Cas_Prq_DtFGar)),21,9.2)
LinLiq  = FrmVal$(CasVlLiq(CasArtPrcUsa(Cas_Prq_Art$, Cas_Prq_Prc), CasCalcDuoCtr(Cas_Ctr_TFac$, Cas_Ctr_AcrIni$, Sig_DtHoje, Cas_Ctr_DtICa, Cas_Ctr_DtFCa, Cas_Prq_DtFGar)),21,9.2)
Iva      = FrmVal$(TabIva(CasPrqArtCon(Cas_Prq_Crg$, "Iva")),21,2.0)
'Iva      = IvaTax("A")
'
''valores do iva/taxas
'IvaI0    = FrmVal$(Doc_Tot_IvaIse,21,9.2)
'IvaT1    = FrmVal$(IvaTax(1),21,2.0)
'IvaI1    = FrmVal$(IvaInc("T",1),21,9.2)
'IvaV1    = FrmVal$(IvaVal("T",1),21,9.2)
'IvaT2    = FrmVal$(IvaTax(2),21,2.0)
'IvaI2    = FrmVal$(IvaInc("T",2),21,9.2)
'IvaV2    = FrmVal$(IvaVal("T",2),21,9.2)
'IvaT3    = FrmVal$(IvaTax(3),21,2.0)
'IvaI3    = FrmVal$(IvaInc("T",3),21,9.2)
'IvaV3    = FrmVal$(IvaVal("T",3),21,9.2)
'
''totais do documento
DocDesco = FrmVal$(Cas_Ctr_Desco,21,9.2)
'DocIlq   = FrmVal$(Doc_Tot_Ilq,21,9.2)
'DocLiq   = FrmVal$(Doc_Tot_Liq,21,9.2)
'DocPort  = FrmVal$(Doc_Tot_Ext,21,9.2)
'DocIvaSuj= FrmVal$(Doc_Tot_IvaSuj,21,9.2)
'DocInc   = FrmVal$(Doc_Tot_Inc,21,9.2)
'DocIva   = FrmVal$(Doc_Tot_Iva,21,9.2)
'DocTot   = FrmVal$(Doc_Tot_Tot,21,9.2)
'DocIlq   = FrmVal$(Doc_Tot_Ilq,21,9.2)
DocBrt   = FrmNum$( 9.2,Total("LinLiq",0))
DocLiq   = FrmNum$( 9.2,TotalLiquido$(Total("LinLiq",0), Cas_Ctr_Desco$))
'FrmVal$(Cas_Ctr_Valor,21,9.2)
'DocTot   = FrmVal$(Doc_Tot_Tot,21,9.2)
'
'conversao de moeda
DocEurTot=FrmVal$(MoeCnv("N",TotalLiquido$(Total("LinLiq",0), Cas_Ctr_Desco),Enc_Mst_Moeda,2),21,9.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$
'DocNome   = Doc_Ide_Sdoc$
''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$")
'Viatura   = TxIde$(Enc_Mst_Opc$,"MAT")
'
''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,9.2)
##


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

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

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 Assistencia (CAS)
'------------------------------------------------------------------------------
Identificacao de sequencia [IDS]=ASS
Codigos validos            [ID1]=ASS
Codigos invalidos          [ID0]=

Funcao : Recolha       [FX,REC ]=REC; EXE
Funcao : Corrigir      [FX,COR ]=COR; EXE
Funcao : Executar      [FX,EXE ]=*
Recolha automatica           [E]=RAUTO
Idntificacao                 [E]=OPC OPCIDE,Nome,A30
Codigo de registo            [E]=OPC CasCrg,Codigo de Registo,A20
Quantidade                   [E]=QU
Medidas                      [E]=MED
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 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,VarAlt$("ENC_MST","Cta_Ang_Cpag")   , 2.0, 50

10, 53, 390,170,"Hora de saida   ",100,VarAlt$("ENC_MST","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$"),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 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
print PrtCmd$("[10CPILN]");
?
?
?
print PrtCmd$("[10CPILD]") tab(5) "CONTRATO DE ASSISTÊNCIA TÉCNICA" PrtCmd$("[10CPILN]")
?
?
?
?                                        ======================================
?                                        |A:                                  |
?CONTRATO Nº       :  @NCA               | @Nome                            # |
?DATA              :    @DataDoc         | @Morada                          # |
?VALIDADE          : De @DtCaIni         | @Local                           # |
?                    A  @DtCaFim         | @Cpost                           # |
?COD. CLIENTE      : @Ct                 |                                    |
?V/No CONTRIBUINTE : @Ctrb               ======================================
?
?
?Exmos. Senhores
?Vimos pela presente apresentar a V. Exas. o
?contrato de assistencia técnica aos seguintes equipamentos:
?                                                              Folha No : @Pag#
print PrtCmd$("[16CPILN]")
?====================================================================================================================================
? Codigo               Descricao                      Matricula            Fim Gar.       Preco        Duod.        Liquido    IVA  
?====================================================================================================================================
end sub


'-----------------------------------------------------------------------------
' Linhas do Documento
'-----------------------------------------------------------------------------
SUB LinNor 'artigos tipo normal
?@LinArt              @LinNome                       @LinCrg              @LinFGar    @LinPrc           @LinDuo  @LinLiq        @IVA#
end sub



SUB LinIde 'artigos tipo nome livre
?|@Crg         |@Nome                    |@Fg       |    |@VlA       |           |
end sub


SUB LinTxl 'artigos tipo texto livre
Print Tab(19) left$(Enc_Mov_Div$,30)
end sub


SUB LinAjt 'ajuste de linhas
?
end sub


'-----------------------------------------------------------------------------
' Final do Documento
'-----------------------------------------------------------------------------
SUB FimAjt  'ajuste de fim de pagina
print PrtCmd$("[SP]");
end sub


SUB Fim     'total do documento
print PrtCmd$("[10CPILN]");
?=============================================================================
?  TOTAL  : @DocBrt       DESCONTO  :  @LinDesco     TOTAL LIQ. : @DocLiq    #
?-----------------------------------------------------------------------------
?   Factor de conversao EURO: @DocEurCmb        TOTAL EM EURO  : @DocEurTot  #
?=============================================================================
?Valores sujeitos a I.V.A. à taxa correspondente
?Validade da presente proposta: 30 dias
'ExtNl=NumExtPrp("80,80","=")                      'preparar extenso

'print NumExt$(1 ,Doc_Tot_Tot,"ESC",3)             'linha 1 de extenso
'print NumExt$(2)                                  'linha 2 de extenso

'tmp=MoeCnv("N",Doc_Tot_Tot,Enc_Mst_Moeda,2)       'conversao em EUROS
'print NumExt$(1 ,tmp,"EUR",3)                     'linha 1 de extenso em EUROS
'print NumExt$(2)                                  'linha 2 de extenso em EUROS

'print PrtCmd$("[10CILN]")            
print PrtCmd$("[SP]");                             'terminar pagina
end sub
##

