'Nome       : CONFART.STD
'Tipo       : LST
'Data       : 2006/09/28
'Versao     : 2.0
'Descricao  : Conferencia de Artigos


'==============================================================================
'#VER - Historia de modificacoes
'==============================================================================
'- Versao : 2.0a  2006/09/28 --------------------------------------------------
'correccao estetica listagens graficas

'- Versao : 2.0   2006/06/01 --------------------------------------------------
'Listagem em EXCEL

'- Versao : 1.1   2003/02/24 --------------------------------------------------
'Listagem em modo gráfico

'- Versao : 1.0   1998/10/07 -------------------------------------------------
'Versao base


'==============================================================================
#DEF - Definicao global do documento
'==============================================================================
Caracteres invalidos             [CarInv]=#{}
Subtotalizadores                 [SbtNiv]=2
##


'==============================================================================
#ESP - Campos especificos
'==============================================================================
##


'==============================================================================
#SQL - Comandos SQL
'==============================================================================
Base de dados           [BD]=EmpFic$("EMP","Cemp,Emp_Dat.mdb")
'Base de dados           [BD]=EmpFic$("EMP","Stc,Stc.mdb")
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=CnfArt
Nome                       [DocNom]=CnfArtL,Conferência de Artigos

'formato
Saida/Impressora           [DocSai]=1
Linhas por pagina          [DocLpg]=50
Colunas por linha          [DocCol]=132
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
Especifico do documento    [DocEsp]=LstTot=0
                           [DocEsp]=LstTit=1

'funcoes de listagem
Listar cabecalho            [FxCAB]=Cnf_Cab
Listar linhas               [FxLIN]=Cnf_Lin;Inf
Listar fim                  [FxFIM]=Cnf_Fim
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=CnfArt
Nome                       [DocNom]=CnfArtL_G,Conferência de Artigos

'formato
Saida/Impressora           [DocPrt]=PAG_W
Linhas por pagina          [DocLpg]=55
Colunas por linha          [DocCol]=132
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
Especifico do documento    [DocEsp]=LstTot=0
                           [DocEsp]=LstTit=1
'funcoes de listagem
Listar cabecalho            [FxCAB]=CnfG_Cab
Listar linhas               [FxLIN]=CnfG_Lin;Inf
Listar fim                  [FxFIM]=CnfG_Fim
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=CnfArt
Nome                       [DocNom]=CnfArt_XLS,Conferência de Artigos (XLS)

'formato
Saida/Impressora           [DocPrt]=NULA
Linhas por pagina          [DocLpg]=50
Colunas por linha          [DocCol]=80
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
Especifico do documento    [DocEsp]=LstTot=0
                           [DocEsp]=LstTot=1
'funcoes de listagem
Base para documento         [FxDOC]=XlsCnfArt
Listar cabecalho            [FxCAB]=XlsCnfArt_Cab
Listar linhas               [FxLIN]=XlsCnfArt_Lin,0; Inf,0
Listar fim                  [FxFIM]=XlsCnfArt_Fim

Matriz auxiliar            [DocMat]=CnfArt.xls
##


'==============================================================================
#VAR - Variaveis
'==============================================================================
Tipo     = MemTxt$(1)
Pag      = Doc_CntPag
DataExt  = FrmVal$(Sig_DtHoje,45,0)

'variaveis a listar
Art      = StcCodFrm$("")                
Nom1     = Stc_Mst_Nome1$
Unid     = Stc_Mst_Unid$
Pv1      = FrmVal$(Stc_Mst_Pv1,21,6.3,1)
Pv2      = FrmVal$(Stc_Mst_Pv2,21,6.3,1)
Iva      = FrmVal$(Stc_Mst_CodIva,21,2,1)
RepoTmp  = FrmVal$(Stc_Mst_RepoTmp,21,4.0,1)
RepoQu   = FrmVal$(Stc_Mst_RepoQu,21,6.1,1)
Penc     = FrmVal$(Stc_Mst_Penc,21,6.1,1)
Smin     = FrmVal$(Stc_Mst_Smin,21,6.1,1)
FrnCt    = Stc_Mst_FrnCt$
FrnCod   = Stc_Mst_FrnArt$
CodSbt   = Stc_Mst_CodSbt$
Loc      = Stc_Mst_Loc$
Desc     = Stc_Mst_Desco$
DtIni    = FrmVal$(Stc_Mst_DtIni,42,0)
NumDec   = FrmVal$(Stc_Mst_NumDec,21,1,1)
Fcnv     = FrmVal$(Stc_Mst_Fcnv,21,4.3,1)
'Com      = FrmVal$(Stc_Mst_ComVend,21,2,1)
Com      = Stc_Mst_CmvTx$

'para as linhas de titulos e totais
txinf1   = MemTxt$(11)
txinf2   = MemTxt$(12)
TxInfTot = MemTxt$(11)+" : "+MemTxt$(12)
##


'==============================================================================
#INC - includes
'==============================================================================
Variaveis  comuns                 =[SIG_Dir.Div],LsComVar.std
##


'==============================================================================
#PGM - Programa/Funcoes
'==============================================================================
SUB Lst_AJT
end sub

'-----------------------------------------------------------------------------
' Formato do documento
'-----------------------------------------------------------------------------
'- Precario de Artigos -------------------------------------------------------
SUB Cnf_Cab
FxDiv LstIde,16CPI,0
print TxTit$("TT=16CPI, LD, PT=66C, TL=16CPI","Conferencia de Artigos")
?Data : @DataExt                                                                                                    Folha No : @Pag#
?===================================================================================================================================
?Codigo           Pr.Venda 1    Stk.Repos.   Stk.Minimo   Fornecedor     F.Conv.           Dec.          Desc.          Art.Substit.
?Designacao       Pr.Venda 2    P.Encomenda  Tempo Repos. Art.Fornec.    Unidade    IVA           Com.       Dt.Cri     Localizacao
?===================================================================================================================================
end sub


SUB Cnf_Lin
?@Art             @Pv1          @RepoQu      @Smin        @FrnCt         @Fcnv      @Iva          @Com   @Desc          @CodSbt
? @Nom1           @Pv2          @Penc        @RepoTmp     @FrnCod        @Unid             @NumDec           @DtIni     @Loc
end sub


Sub Cnf_LinInf
'Listar Titulos
if MemNum(11)=201                   'titulo de familia
?-----------------------------------------------------------------------------------------------------------------------------------
?@txinf2                 @Txinf1                                              #
?-----------------------------------------------------------------------------------------------------------------------------------
end if

if MemNum(11)=202                   'titulo de subfamilia
?-----------------------------------------------------------------------------------------------------------------------------------
?@txinf2              @Txinf1                                              #
?-----------------------------------------------------------------------------------------------------------------------------------
end if
end Sub


SUB Cnf_Fim
?==================================================================================================================================
FxDiv LstPer,SP
end sub


'==============================================================================
' *****  Formato dos documentos em modo grafico  ****
'==============================================================================
SUB FxIni 'funcao de inicializacao
Call SigLstIni
FimDoc=272
End sub


Sub Listar_TitulosG 'titulos da listagem
PrWIN AJT_B,  Margem, InicioLinhas+Doc_CntLin*4          	'posicao base
Listar=0

If MemNum(11)=201 then 
   Listar=1                  'titulo familia
end if

If MemNum(11)=202 then
   Listar=1                  'titulo sub-familia
end if

if Listar=1 then
  PrWIN COR_T,CorTraco                            'cor de linhas
  PrWIN GR_LI,     0,  0, Cmax, 0            	'linha
  PrWIN GR_LI,     0,  4, Cmax, 4            	'linha
  PrWIN COR_T,     CorTit
  PrWIN  TX_N,     Col1+10, 0   ,@txinf2
  PrWIN  TX_N,     Col2+10, 0   ,@txinf1
end if
End sub


SUB CnfG_Cab
SigCabNorOpcTit=2 		         'alterar origem do titulo
Titulo$="Conferência de artigos"
Call SigLstCab
Lin1=1                        		'linha 1
Lin2=5                                  'linha2
esp=19

Col1=0
Col2=Col1+esp
Col3=Col2+esp
Col4=Col3+esp
Col5=Col4+esp
Col6=Col5+esp
Col7=Col6+esp
Col8=Col7+esp
Col9=Col8+esp
Col10=Col9+esp
Col11=Col10+esp
Cmax=Col11

PrWIN COR_T,  CorTitLst                         'cor de titulo
PrWIN FON  ,   8,   1                        	'activar fonte
PrWIN AJT_B,  Margem, 26                    	'posicao base


PrWin FON,"BOLD+"
PrWIN TX_CTR,  Col1,Lin1,Col2,Lin1,"Código"
PrWIN TX_DMX,  Col1,Lin2,Col3-Col2,"Designação"

PrWIN TX_CTR,  Col2,Lin1,Col3,Lin1,"Pr.Venda 1"
PrWIN TX_CTR,  Col2,Lin2,Col3,Lin2,"Pr.Venda 2"

PrWIN TX_CTR,  Col3,Lin1,Col4,Lin1,"Stk.Repos."
PrWIN TX_CTR,  Col3,Lin2,Col4,Lin2,"P.Encomenda"

PrWIN TX_CTR,  Col4,Lin1,Col5,Lin1,"Stk.Minimo"
PrWIN TX_CTR,  Col4,Lin2,Col5,Lin2,"Tempo Rep."

PrWIN TX_CTR,  Col5,Lin1,Col6,Lin1,"Fornecedor"
PrWIN TX_CTR,  Col5,Lin2,Col6,Lin2,"Art.Fornec."

PrWIN TX_CTR,  Col6,Lin1,Col7,Lin1,"F.Conv."
PrWIN TX_CTR,  Col6,Lin2,Col7,Lin2,"Unidade"

PrWIN TX_CTR,  Col7,Lin1,Col8,Lin1,"Decimais"
PrWIN TX_CTR,  Col7,Lin2,Col8,Lin2,"IVA"

PrWIN TX_CTR,  Col8,Lin1,Col9,Lin1,"Desconto"
PrWIN TX_CTR,  Col8,Lin2,Col9,Lin2,"Com."

PrWIN TX_CTR,  Col9,Lin1,Col10,Lin1,"Art.Subst."
PrWIN TX_CTR,  Col9,Lin2,Col10,Lin2,"Dt.Cri"

PrWIN TX_CTR, Col10,Lin1,Col11,Lin1,""
PrWIN TX_CTR, Col10,Lin2,Col11,Lin2,"Localização"
PrWin FON,"BOLD-"

PrWIN COR_T,CorTraco                            'cor de linhas
PrWIN GR_LI, 0, 0, Cmax, 0                      'linha
PrWIN GR_LI, 0, 9, Cmax, 9                      'linha

PrWIN FON  ,   8,   1                           'activar fonte
PrWIN COR_T,CorLin                              'cor de linhas
InicioLinhas=32
end sub


SUB CnfG_Lin
Lin1=1                            		'linha 1
Lin2=4                                          'linha2

LCol1 =   0
LCol2 =  22
LCol3 =  38
LCol4 =  57
LCol5 =  76
LCol6 = 100
LCol7 = 114
LCol8 = 133
LCol9 = 152
LCol10= 171
LCol11= 190
Cmax=LCol11


PrWIN FON  ,   7,   1                           'activar fonte
PrWIN AJT_B,  Margem, InicioLinhas+Doc_CntLin*4          	'posicao base
PrWIN COR_T,    CorLin

PrWIN TX_N,     LCol1,0,                @Art
PrWIN TX_DMX,   LCol1,Lin2,LCol2-LCol1, @Nom1

PrWIN TX_NP,    LCol2,0          ,"N",@Pv1
PrWIN TX_NP,    LCol2,Lin2       ,"N",@Pv2

PrWIN TX_NP,    LCol3,0          ,"N",@RepoQu
PrWIN TX_NP,    LCol3,Lin2       ,"N",@Penc

PrWIN TX_NP,    LCol4,0          ,"N",@Smin
PrWIN TX_NP,    LCol4,Lin2       ,"N",@RepoTmp

PrWIN TX_NP,    LCol5,0          ,"N",@FrnCt
PrWIN TX_NP,    LCol5,Lin2       ,"N",@FrnCod

PrWIN TX_NP,    LCol6,0          ,"N",@Fcnv
PrWIN TX_NP,    LCol6,Lin2       ,"N",@Unid

PrWIN TX_NP,    LCol7,0          ,"N",@NumDec
PrWIN TX_NP,    LCol7,Lin2       ,"N",@Iva

PrWIN TX_NP,    LCol8,0          ,"N",@Desc
PrWIN TX_NP,    LCol8,Lin2       ,"N",@Com

PrWIN TX_NP,    LCol9,0          ,"N",@CodSbt
PrWIN TX_NP,    LCol9,Lin2       ,"N",@DtIni

PrWIN TX_NP,   LCol10,0          ,"N",""
PrWIN TX_NP,   LCol10,Lin2       ,"N",@Loc

cnt=CntLin("CON")
 fx=CntLin("FRC",cnt+1)
end sub


Sub CnfG_LinInf
Call Listar_TitulosG
end Sub


SUB CnfG_Fim
PrWIN COR_T,CorTraco                            'cor de linhas
PrWIN AJT_B,Margem,FimDoc                       'posicao base
PrWIN GR_LI,     0,  0, Cmax, 0            	'linha
Call SigLstRod
PrWin FP
end sub


'=============================================================================
' XLS - Funcoes comuns
'=============================================================================
Sub Xls_DocIni 'inicializar documento
dfi$ = FicEmp$("EMP","Ext","dExcel",cmo$)          'directorio de documentos EXCEL
nfi$ = "RND:CnfArt.xls"                            'nome do ficheiro
cmo$ = SigCmoCur$("MIX")                           'modulo corrente
ficDoc$ = FicTmp$(dfi$, nfi$)                      'ficheiro para documento
res = DirCri("D", dfi$)                            'criar directorio para documento

xlsMatNom$ = DocOpc$("DocMat")                     'nome do ficheiro matriz
xlsMat$    = DocOpc$("DocMat+SBT")                 'endereco do ficheiro matriz

res = FicCop(xlsMat$, ficDoc$)                     'criar ficheiro (copia de matriz)
res = XlsPrp(0)                                    'preparar EXCEL
res = XlsDocLer(ficDoc$)                           'ler ficheiro

'res = XlsDocCri("")                                'criar documento
end sub


Sub Xls_DocFim 'terminar documento
res = XlsLinEli(xlsLin, 1)                         'eliminar linha - ultima
res = XlsLinEli(xlsLba, 1)                         'eliminar linha - primeira

res = XlsDocDir$("A", dfi$)                        'activar directorio
res = XlsDocGrv(ficDoc$)                           'gravar ficheiro

'res = XlsPrt(1)                                    'listar worksheet
'res = XlsVer(0)                                    'mostrar EXCEL - normal
res = XlsVer(1)                                    'mostrar EXCEL - maximizado
res = XlsLib(0)                                    'libertar EXCEL
end sub


Sub Xls_DocCab 'cabecalho do documento
empNum$ = Emp_Inf_Cod$                             'numero da empresa
empNom$ = Emp_Inf_Nome$                            'nome da empresa
lstTit$ = MemTxt$(1)                               'titulo da listagem
lstTip$ = MemTxt$(2)                               'tipo da listagem
lstDt$  = FrmDt$("EXT", Sig_DtHoje)                'data para listagem

res = XlsIdeLst("Emp_Num", empNum$)                'numero da empresa
res = XlsIdeLst("Emp_Nome", empNom$)               'nome da empresa
res = XlsIdeLst("Lst_Tit", lstTit$)                'titulo da listagem
res = XlsIdeLst("Lst_Tipo", lstTip$)               'tipo da listagem
res = XlsIdeLst("Lst_Data", lstDt$)                'data
end sub


Sub Xls_LinInc 'incrementar linha
xlsLsa = xlsLin                                    'linha de saida
res = XlsLinIns(xlsLin, 1)                         'juntar linha

'seguinte
xlsLin = xlsLin + 1                                'contar linha
end sub


Sub Xls_LinIni 'iniciar linhas
res = XlsIdePsq("PO_BAS")                          'pesquisar posicao base
linBav = XlsIdePsqRes("L")                         'linha da posicao base

xlsLba = linBav                                    'linha base
xlsLin = linBav + 1                                'contador de linhas usadas
end sub


Sub Xls_LinFim 'fim de linhas
res = XlsLinEli(xlsLin, 1)                         'eliminar linha - ultima
res = XlsLinEli(xlsLba, 1)                         'eliminar linha - primeira

res = XlsIdePsq("PO_FIM")                          'pesquisar posicao final
linFim = XlsIdePsqRes("L")                         'linha da posicao final
end sub


'=============================================================================
' Conferencia de Artigos (EXCEL)
'=============================================================================
Sub XlsCnfArt_DocIni 'inicializar documento
call Xls_DocIni                                    'inicializar documento
call XlsCnfArt_Prep                                'preparar
end sub


Sub XlsCnfArt_DocFim 'terminar documento
call Xls_DocFim                                    'terminar/mostrar documento
end sub


Sub XlsCnfArt_Prep 'preparar para listar
res = XlsWks("Valores")                            'activar worksheet
call Xls_DocCab                                    'cabecalho do documento
call Xls_LinIni                                    'iniciar linhas

'definicao das colunas
coArt = 2                                          'codigo do artigo
coDes = 3                                          'descricao
coPr1 = 4                                          'preco 1
coPr2 = 5                                          'preco 2
coStr = 6                                          'stock reposicao
coPen = 7                                          'ponto encomenda
coStm = 8                                          'stock minimo
coTre = 9                                          'tempo reposicao
coFor = 10                                         'fornecedor
coAfo = 11                                         'artigo fornecedor
coFcv = 12                                         'factor conversao
coUni = 13                                         'unidade
coIva = 14                                         'iva
coDec = 15                                         'decimais
coCom = 16                                         'comissao
coDsc = 17                                         'desconto
coDtc = 18                                         'data criacao
coAsb = 19                                         'artigo substituicao
coLoc = 20                                         'localizacao
end sub


Sub XlsCnfArt_IncLin 'incrementar linha	
call Xls_LinInc                                    'incrementar linha
liUsa =  xlsLsa                                    'linha a usar

zon$= XlsZonNum$("L", liUsa)                       'zona da linha
res = XlsFon(zon$, ",,B-I-")                       'desactivar fonte bold, italico
end sub


Sub XlsCnfArt_Lin 'linha de valores
call XlsCnfArt_IncLin                              'incrementar linha	

'valores a listar
art$     =StcCodFrm$("")                
nom$     =Stc_Mst_Nome1$
uni$     =Stc_Mst_Unid$
pv1      =Stc_Mst_Pv1
pv2      =Stc_Mst_Pv2
iva      =Stc_Mst_CodIva
tre      =Stc_Mst_RepoTmp
qrp      =Stc_Mst_RepoQu
pen      =Stc_Mst_Penc
smi      =Stc_Mst_Smin
ctf$     =Stc_Mst_FrnCt$
arf$     =Stc_Mst_FrnArt$
csb$     =Stc_Mst_CodSbt$
loc$     =Stc_Mst_Loc$
dsc$     =Stc_Mst_Desco$
dtc$     =FrmVal$(Stc_Mst_DtIni,42,0)
nde      =Stc_Mst_NumDec
fcv      =Stc_Mst_Fcnv
com$     =FrmVal$(Stc_Mst_ComVend,21,2,1)

coArt = 2                                          'codigo do artigo
coDes = 3                                          'descricao
coPr1 = 4                                          'preco 1
coPr2 = 5                                          'preco 2
coStr = 6                                          'stock reposicao
coPen = 7                                          'ponto encomenda
coStm = 8                                          'stock minimo
coTre = 9                                          'tempo reposicao
coFor = 10                                         'fornecedor
coAfo = 11                                         'artigo fornecedor
coFcv = 12                                         'factor conversao
coUni = 13                                         'unidade
coIva = 14                                         'iva
coDec = 15                                         'decimais
coCom = 16                                         'comissao
coDsc = 17                                         'desconto
coDtc = 18                                         'data criacao
coAsb = 19                                         'artigo substituicao
coLoc = 20                                         'localizacao

'listar
res = XlsLst(liUsa, coArt, art$)                   'codigo artigo
res = XlsLst(liUsa, coDes, nom$)                   'descricao
res = XlsLst(liUsa, coPr1, pv1)                    'preco 1
res = XlsLst(liUsa, coPr2, pv2)                    'preco 2
res = XlsLst(liUsa, coStr, qrp)                    'stock reposicao
res = XlsLst(liUsa, coPen, pen)                    'ponto encomenda
res = XlsLst(liUsa, coStm, smi)                    'stock minimo
res = XlsLst(liUsa, coTre, tre)                    'tempo reposicao
res = XlsLst(liUsa, coFor, ctf$)                   'fornecedor
res = XlsLst(liUsa, coAfo, arf$)                   'artigo fornecedor
res = XlsLst(liUsa, coFcv, fcv)                    'factor conversao
res = XlsLst(liUsa, coUni, uni$)                   'unidade
res = XlsLst(liUsa, coIva, iva)                    'iva
res = XlsLst(liUsa, coDec, nde)                    'decimais
res = XlsLst(liUsa, coCom, com$)                   'comissao
res = XlsLst(liUsa, coDsc, dsc$)                   'desconto
res = XlsLst(liUsa, coDtc, dtc$)                   'data criacao
res = XlsLst(liUsa, coAsb, csb$)                   'artigo substituicao
res = XlsLst(liUsa, coLoc, loc$)                   'localizacao
end sub


Sub XlsCnfArt_LinSep 'linha de separacao
call XlsCnfArt_IncLin                              'incrementar linha
end sub



Sub XlsCnfArt_Fim 'terminar
call Xls_Lin_Fim                                    'fim de linhas

'valores a listar
'Tqut   = Total("QU_CMP", 0)                        'descontos
'Ttot   = Total("STOT", 0)                          'total

'listar
'liUsa = linFim                                     'linha a usar

'res = XlsLst(liUsa, coQut, Tqut)                   'total descontos
'res = XlsLst(liUsa, coTot, Ttot)                   'total valor

'mostrar
res = XlsWksAct("A", 1)                            'activar worksheet
'call XlsCnfArt_DocFim                              'terminar documento
end sub
##

##


'==============================================================================
#INC - Funcoes comuns
'==============================================================================
Funcoes comuns                    =[SIG_Dir.Div],LsComPgm.std
##

