'Nome       : Diario.std
'Tipo       : LST
'Data       : 2016/07/07
'Versao     : 2.2
'Descricao  : STC - Listagens de movimentos

'==============================================================================
'#VER - Historia de modificacoes
'==============================================================================
'- Versao : 2.2   ____/__/__ --------------------------------------------------
'Permitir armazens com 4 digitos

'- Versao : 2.1   2013/07/19 --------------------------------------------------
'Opcao para listar conta de contabilizacao (TXT e XLS)

'- Versao : 2.0a  2006/09/27 --------------------------------------------------
'Correccao estetica listagens gráficas

'- Versao : 2.0   2006/08/02 --------------------------------------------------
'Listagem para Excel

'- Versao : 1.3b  2003/07/29 --------------------------------------------------
'Diminuir tamanho para impressao de valor (encurtar margem)

'- Versao : 1.3a  2003/05/06 --------------------------------------------------
'Impressao grafica, nao apresentava totais, nao fazia fim de pagina

'- Versao : 1.3   2003/02/10 --------------------------------------------------
'Impressao grafica

'- Versao : 1.2   2001/04/12 --------------------------------------------------
'Opcao para listar fichas de artigo

'- Versao : 1.1a  2000/11/16 --------------------------------------------------
'Forcar listagem a 16 cpi

'- Versao : 1.1   2000/10/18 --------------------------------------------------
'Alteracao do tamanho de letra e afinacao do aspecto

'- Versao : 1.0   1999/03/01 --------------------------------------------------
'Versao base


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


'==============================================================================
#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]=StcDia
Nome                       [DocNom]=Diario,Diario 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

'funcoes de listagem
Listar cabecalho            [FxCAB]=Dia_Cab
Listar linhas               [FxLIN]=Dia_Lin; Res
Listar fim                  [FxFIM]=Dia_Fim
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=StcDia
Nome                       [DocNom]=DiaCtp,Diario de Artigos + Contabilizacao

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

'funcoes de listagem
Listar cabecalho            [FxCAB]=DiaCtp_Cab
Listar linhas               [FxLIN]=DiaCtp_Lin; Res
Listar fim                  [FxFIM]=DiaCtp_Fim
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=StcDia
Nome                       [DocNom]=Diario_G,Diario de Artigos

'formato
Saida/Impressora           [DocPrt]=PAG_W
Linhas por pagina          [DocLpg]=50
Colunas por linha          [DocCol]=132
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0

'funcoes de listagem
Listar cabecalho            [FxCAB]=DiaG_Cab
Listar linhas               [FxLIN]=DiaG_Lin; Res
Listar fim                  [FxFIM]=DiaG_Fim
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=StcDia
Nome                       [DocNom]=XLSDia,(XLS) Diário de Artigos

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

'funcoes de listagem
Base para documento         [FxDOC]=XlsStcDia
Listar cabecalho            [FxCAB]=XlsStcDia_Cab
Listar linhas               [FxLIN]=XlsStcDia_Lin,0; Res,0
Listar fim                  [FxFIM]=XlsStcDia_Fim

Matriz auxiliar            [DocMat]=StcDia.xls
##



'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=StcDia
Nome                       [DocNom]=XlsDiaCtp,(XLS) Diário de Artigos + Contabilizacao

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

'funcoes de listagem
Base para documento         [FxDOC]=XlsDiaCtp
Listar cabecalho            [FxCAB]=XlsDiaCtp_Cab
Listar linhas               [FxLIN]=XlsDiaCtp_Lin,0; Res,0
Listar fim                  [FxFIM]=XlsDiaCtp_Fim

Matriz auxiliar            [DocMat]=StcDia.xls
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=FichArt
Nome                       [DocNom]=FichArt,Fichas de Artigo

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

'funcoes de listagem
Listar cabecalho            [FxCAB]=Fich_Cab
Listar linhas               [FxLIN]=Dia_Lin; Res
Listar fim                  [FxFIM]=Dia_Fim
##


'==============================================================================
#DOC - Fichas de Artigo
'==============================================================================
Tipo                       [DocTip]=FichArt
Nome                       [DocNom]=FichArt_G,Fichas do Artigo (Gráfico)

'formato
Saida/Impressora           [DocSai]=PAG_W
Linhas por pagina          [DocLpg]=50
Colunas por linha          [DocCol]=132
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0

'funcoes de listagem
Listar cabecalho            [FxCAB]=FichArtG_Cab
Listar linhas               [FxLIN]=FichArtG_Lin; Res
Listar fim                  [FxFIM]=FichArtG_Fim
##


'==============================================================================
#VAR - Variaveis
'==============================================================================
Pag      = Doc_CntPag
DataExt  = FrmVal$(SIG_DtHoje,45,0)

'variaveis a listar
Art      = StcCodFrm$(Stc_Mov_Art$)                
Dtl      = FrmVal$(Stc_Mov_Dtl,42,0)
Ndoc     = FrmNdo$("06",Stc_Mov_Tdoc$,Stc_Mov_Ndoc$)
CmvC     = FrmVal$(Stc_Mov_Cmv,21,-3)
CmvD     = MemTxt$(11)

'Ae       = FrmVal$(Stc_Mov_ArzEnt,20,3)
'As       = FrmVal$(Stc_Mov_ArzSai,20,3)

Ae       = FrmVal$(Stc_Mov_ArzEnt,20,4)
As       = FrmVal$(Stc_Mov_ArzSai,20,4)

Ct       = Stc_Mov_Ct$
Qu       = FrmVal$(Stc_Mov_Qu,21,9.3)
Vu       = FrmVal$(MemNum(11),21,14.2)
Vt       = FrmVal$(Stc_Mov_Vt,21,14.2)

'resumo de movimentos
RmCmv    = FrmVal$(MemNum(10),21,3)
RmDes    = MemTxt$(21)
RmES     = MemTxt$(22)

RmNum    = FrmVal$(MemNum(20),21,7)
RmQu     = FrmVal$(MemNum(21),21,9.3)
RmQ2     = FrmVal$(MemNum(22),21,8.3)
RmVt     = FrmVal$(MemNum(23),21,14.2)
RmVm     = FrmVal$(MemNum(24),21,14.2)

'resumo de entradas
ReNum    = FrmVal$(MemNum(20),21,7)
ReQu     = FrmVal$(MemNum(21),21,9.3)
ReQ2     = FrmVal$(MemNum(22),21,8.3)
ReVt     = FrmVal$(MemNum(23),21,14.2)
ReVm     = FrmVal$(MemNum(24),21,14.2)

'resumo de saidas
RsNum    = FrmVal$(MemNum(20),21,7)
RsQu     = FrmVal$(MemNum(21),21,9.3)
ReQ2     = FrmVal$(MemNum(22),21,8.3)
RsVt     = FrmVal$(MemNum(23),21,14.2)
RsVm     = FrmVal$(MemNum(24),21,14.2)

'resumo de existencia
ExNum    = FrmVal$(MemNum(20),21,7)
ExQu     = FrmVal$(MemNum(21),21,9.3)
ExQ2     = FrmVal$(MemNum(22),21,8.3)
ExVt     = FrmVal$(MemNum(23),21,14.2)
ExVm     = FrmVal$(MemNum(24),21,14.2)

'diversos
vaCtCtp  = vuCtCtp$                                         'conta de contrapartida
##


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


'==============================================================================
#PGM - Programa/Funcoes
'==============================================================================
'- +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
'- (13) --->'Comentario
'- (25) --------------->'Comentario
'- (28) ------------------>'Comentario
'- (40) ------------------------------>'Comentario
'- (43) --------------------------------->'Comentario
'- (46) ------------------------------------>'Comentario
'- (49) --------------------------------------->'Comentario
'- (52) ------------------------------------------>'Comentario
'- (55) --------------------------------------------->'Comentario
'- (58) ------------------------------------------------>'Comentario
'- (61) --------------------------------------------------->'Comentario
'- (64) ------------------------------------------------------>'Comentario
'- (67) --------------------------------------------------------->'Comentario
'- (70) ------------------------------------------------------------>'Comentario


'=============================================================================
'- COM -----------------------------------------------------------------------
'=============================================================================
SUB FxIni 'funcao de inicializacao
Call SigLstIni
FimDoc=272
Cmax  =190
End sub


SUB Lst_AJT
'nada a executar
end sub


'=============================================================================
'- TXT -----------------------------------------------------------------------
'=============================================================================
'-----------------------------------------------------------------------------
'- [TXT] - Diario de Artigos -------------------------------------------------
'-----------------------------------------------------------------------------
SUB Dia_Cab 'cabecalho
FxDiv LstIde,16CPI,0
?
print TxTit$("TT=16CPI, LD, PT=66C, TL=16CPI","Diario de Artigos")
?Data : @DataExt                                               Folha No : @Pag#
Print PrtCmd$("[16CPILN]");
print string$(132,"=")
?      Artigo       Dt.Lnc.   No Doc.   Cod     Descricao     AS   AE    Conta      Quantidade       V. Unitario           V. Total
print string$(132,"=")
end sub


SUB Dia_Lin 'linha de movimento
?@Art              @Dtl      @Ndoc     @CmvC @CmvD          @As   @Ae   @Ct         @Qu          @Vu              @Vt             #
end sub


SUB Dia_CabRes 'cabecalho para resumo
?
?
print string$(132,"=")
?Totais de Movimentos  Cod.  E/S    Descricao              Quantidade            V. U. Medio               Valor         Num
print string$(132,"=")
end sub


Sub Dia_LinRes 'linha de resumo
if MemTxt$(20)="MOV" then                 'resumo de movimentos
?                      @RmCmv @RmES @RmDes               @RmQu             @RmVm                @RmVt                @RmNum  #
end if

if MemTxt$(20)="ENT" then                 'resumo de entradas
print string$(132,"=")
?                                   Entradas             @ReQu             @ReVm                @ReVt                @ReNum  #
end if

if MemTxt$(20)="SAI" then                 'resumo de saidas
?                                   Saidas               @RsQu             @RsVm                @RsVt                @RsNum  #
end if

if MemTxt$(20)="EXI" then                 'resumo de existencia
print tab(36) string$(88,"-")
?                                   Existencia           @ExQu             @ExVm                @ExVt                @ExNum  #
end if
end sub


SUB Dia_FimAjt 'fim de pagina
print string$(132,"=")
FxDiv LstPer,SP
end sub


SUB Dia_Fim 'fim de listagem
print string$(132,"=")
FxDiv LstPer,SP
end sub


'-----------------------------------------------------------------------------
'- [TXT] - Diario de Artigos + Contabilizacao --------------------------------
'-----------------------------------------------------------------------------
Sub DiaCtp_Cab 'cabecalho
FxDiv LstIde,16CPI,0
?
print TxTit$("TT=16CPI, LD, PT=66C, TL=16CPI","Diario de Artigos")
Print PrtCmd$("[16CPILN]");

'print string$(132,"=")
print string$(150,"=")
'      Artigo       Dt.Lnc.   No Doc.   Cod     Descricao     AS   AE    Conta      Quantidade       V. Unitario           V. Total
?      Artigo       Dt.Lnc.   No Doc.   Cod     Descricao     AS   AE    Conta      Quantidade       V. Unitario           V. Total   Contabilizacao
'print string$(132,"=")
print string$(150,"=")
end sub


Sub DiaCtp_Lin 'linha de movimento
call ContaCtp                                 'conta de contrapartida

'@Art              @Dtl      @Ndoc     @CmvC @CmvD          @As   @Ae   @Ct         @Qu          @Vu              @Vt             #
?@Art              @Dtl      @Ndoc     @CmvC @CmvD          @As   @Ae   @Ct         @Qu          @Vu              @Vt                 @vaCtCtp        #
end sub


Sub DiaCtp_CabRes 'cabecalho para resumo
?
?
'print string$(132,"=")
print string$(150,"=")
?Totais de Movimentos  Cod.  E/S    Descricao              Quantidade            V. U. Medio               Valor         Num
'print string$(132,"=")
print string$(150,"=")
end sub


Sub DiaCtp_LinRes 'linha de resumo
if MemTxt$(20)="MOV" then                 'resumo de movimentos
?                      @RmCmv @RmES @RmDes               @RmQu             @RmVm                @RmVt                @RmNum  #
end if

if MemTxt$(20)="ENT" then                 'resumo de entradas
'print string$(132,"=")
print string$(150,"=")
?                                   Entradas             @ReQu             @ReVm                @ReVt                @ReNum  #
end if

if MemTxt$(20)="SAI" then                 'resumo de saidas
?                                   Saidas               @RsQu             @RsVm                @RsVt                @RsNum  #
end if

if MemTxt$(20)="EXI" then                 'resumo de existencia
print tab(36) string$(88,"-")
?                                   Existencia           @ExQu             @ExVm                @ExVt                @ExNum  #
end if
end sub


Sub DiaCtp_FimAjt 'fim de pagina
'print string$(132,"=")
print string$(150,"=")
FxDiv LstPer,SP
end sub


Sub DiaCtp_Fim 'fim de listagem
'print string$(132,"=")
print string$(150,"=")
FxDiv LstPer,SP
end sub


'-----------------------------------------------------------------------------
'- [TXT] - Fichas de Artigos -------------------------------------------------
'-----------------------------------------------------------------------------
SUB Fich_Cab 'cabecalho
FxDiv LstIde,16CPI,0

Print PrtCmd$("[16CPILD]");
print "Ficha do Artigo : " StcCodFrm$(Stc_Mst_Art$)+" - "+Stc_Mst_Nome1$
Print PrtCmd$("[16CPILN]");

?Data : @DataExt                                                                                                    Folha No : @Pag#
print string$(132,"=")
?      Artigo       Dt.Lnc.   No Doc.   Cod     Descricao     AS   AE    Conta      Quantidade       V. Unitario           V. Total
print string$(132,"=")
end sub


'=============================================================================
'- GRA -----------------------------------------------------------------------
'=============================================================================
'-----------------------------------------------------------------------------
'- [GRA] - Diario de Artigos -------------------------------------------------
'-----------------------------------------------------------------------------
SUB DiaG_Cab 'cabecalho
SigCabNorOpcTit=2 		                 'alterar origem do titulo
Titulo$="Diário de Artigos"
Call SigLstCab
Lin1=1                            'linha 1
Lin2=5                            'linha 2
'esp=19

TCol1 =  0                         'artigo
TCol2 = 25                         'data movimento
TCol3 = 43                         'numero doc
TCol4 = 56                         'codigo movimento
TCol5 = 63                         'descricao
TCol6 = 83                         'armazem saida
TCol7 = 88                         'armazem entrada
TCol8 = 97                         'conta
TCol9 =118                         'quantidade
TCol10=144                         'valor unitario
TCol11=172                         'valor total
TCol12=190                         'margem direita
Cmax=Col12

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_N,TCol1 ,Lin1,"Código"
PrWIN TX_N,TCol2 ,Lin1,"Dt.Lnc"
PrWIN TX_N,TCol3 ,Lin1,"No Doc."
PrWIN TX_N,TCol4 ,Lin1,"Cod"
PrWIN TX_N,TCol5 ,Lin1,"Descrição"
PrWIN TX_N,TCol6 ,Lin1,"AS"
PrWIN TX_N,TCol7 ,Lin1,"AE"
PrWIN TX_N,TCol8 ,Lin1,"Conta"
PrWIN TX_N,TCol9 ,Lin1,"Quantidade"
PrWIN TX_N,TCol10,Lin1,"V.Unitário"
PrWIN TX_N,TCol11,Lin1,"V.Total"
PrWIN FON, "BOLD-"

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

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


SUB DiaG_Lin 'linha de movimento
Col1 =  0                         'artigo
Col2 = 25                         'data movimento
Col3 = 43                         'numero doc
Col4 = 57                         'codigo movimento
Col5 = 63                         'descricao
Col6 = 82                         'armazem saida
Col7 = 87                         'armazem entrada
Col8 = 97                         'conta
Col9 =118                         'quantidade
Col10=137                         'valor unitario
Col11=164                         'valor total
Col12=190                         'margem direita
Cmax=Col12

PrWIN AJT_B,  Margem, InicioLinhas+Doc_CntLin*4          	'posicao base
PrWIN COR_T,    CorLin
PrWIN TX_N,     Col1,0,              @Art
PrWIN TX_DMX,   Col2,0,Col3-Col2,    @Dtl
PrWIN TX_NP,    Col3,0          ,"N",@Ndoc
PrWIN TX_NP,    Col4,0          ,"N",@CmvC
PrWIN TX_NP,    Col5,0          ,"N",@CmvD
PrWIN TX_NP,    Col6,0          ,"N",@As
PrWIN TX_NP,    Col7,0          ,"N",@Ae
PrWIN TX_NP,    Col8,0          ,"N",@Ct
PrWIN TX_NP,    Col9,0          ,"N",@Qu
PrWIN TX_NP,    Col10,0         ,"N",@Vu
PrWIN TX_NP,    Col11,0         ,"N",@Vt
end sub


SUB DiaG_CabRes 'cabecalho para resumo
cnt=CntLin("CON")
fx=CntLin("FRC",cnt+2)
PrWIN AJT_B,  Margem, InicioLinhas+Doc_CntLin*4   'posicao base

PrWIN COR_T,  CorTitLst                           'cor de titulo
PrWIN FON  ,   8,   1                             'activar fonte

RCol1=  1                         'totais de movimentos
RCol2= 40                         'codigo
RCol3= 53                         'E/S
RCol4= 70                         'descricao
RCol5=102                         'quantidade
RCol6=128                         'v.u.medio
RCol7=160                         'valor
RCol8=180                         'numero
RCol9=190                         'coluna maxima
Cmax=RCol9

PrWIN GR_LI,     0, 0, Cmax, 0            	'linha
PrWIN FON, "BOLD+"
PrWIN TX_N,RCol1,Lin1,"Totais de Movimentos"
PrWIN TX_N,RCol2,Lin1,"Código"
PrWIN TX_N,RCol3,Lin1,"Ent/Sai"
PrWIN TX_N,RCol4,Lin1,"Descrição"
PrWIN TX_N,RCol5,Lin1,"Quantidade"
PrWIN TX_N,RCol6,Lin1,"V.U. Médio"
PrWIN TX_N,RCol7,Lin1,"Valor"
PrWIN TX_N,RCol8,Lin1,"Num"
PrWIN FON, "BOLD-"
PrWIN GR_LI,     0,  5, Cmax, 5            	'linha
end sub


Sub DiaG_LinRes 'linha de resumo
LRCol1= 25                     'totais de movimentos
LRCol2= 41                     'Codigo
LRCol3= 58                     'E/S
LRCol4= 70                     'descricao
LRCol5=102                     'quantidade
LRCol6=120                     'v.u.medio
LRCol7=148                     'valor
LRCol8=177                     'numero
LRCol9=190                     'maximo
Cmax=LRCol9

PrWIN AJT_B,  Margem, InicioLinhas+Doc_CntLin*4+1.5          	'posicao base

PrWIN COR_T,    CorLin
if MemTxt$(20)="MOV" then                 'resumo de movimentos

PrWIN FON,"BOLD+"
PrWIN TX_NP,   LRCol2,0          ,"N",@RmCmv
PrWIN TX_NP,   LRCol3,0          ,"N",@RmEs
PrWIN TX_NP,   LRCol4,0          ,"N",@RmDes
PrWIN FON,"BOLD-"
PrWIN TX_NP,   LRCol5,0          ,"N",@RmQu
PrWIN TX_NP,   LRCol6,0          ,"N",@RmVm
PrWIN TX_NP,   LRCol7,0          ,"N",@RmVt
PrWIN TX_NP,   LRCol8,0          ,"N",@RmNum
end if

PrWIN FON,"BOLD+"
if MemTxt$(20)="ENT" then                 'resumo de entradas
PrWIN GR_LI,     0,  0, Cmax, 0            	'linha
PrWIN TX_N,    LRCol1,0          ,"Entradas"
PrWIN TX_NP,   LRCol5,0          ,"N",@ReQu
PrWIN TX_NP,   LRCol6,0          ,"N",@ReVm
PrWIN TX_NP,   LRCol7,0          ,"N",@ReVt
PrWIN TX_NP,   LRCol8,0          ,"N",@ReNum
end if

if MemTxt$(20)="SAI" then                 'resumo de saidas
PrWIN TX_N,    LRCol1,0          ,"Saídas"
PrWIN TX_NP,   LRCol5,0          ,"N",@RsQu
PrWIN TX_NP,   LRCol6,0          ,"N",@RsVm
PrWIN TX_NP,   LRCol7,0          ,"N",@RsVt
PrWIN TX_NP,   LRCol8,0          ,"N",@RsNum
end if

if MemTxt$(20)="EXI" then                  'resumo de existencia
PrWIN GR_LI,     0,  0, Cmax, 0            	'linha
PrWIN TX_N,    LRCol1,0          ,"Existência"
PrWIN TX_NP,   LRCol5,0          ,"N",@ExQu
PrWIN TX_NP,   LRCol6,0          ,"N",@ExVm
PrWIN TX_NP,   LRCol7,0          ,"N",@ExVt
PrWIN TX_NP,   LRCol8,0          ,"N",@ExNum
PrWIN GR_LI,     0,  4, Cmax, 4            	'linha
end if

PrWIN FON,"BOLD-"
end sub


SUB DiaG_FimAjt 'fim de pagina
call DiaG_fim                                   'listar fim
end sub


SUB DiaG_Fim 'fim de listagem
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


'-----------------------------------------------------------------------------
'- [TXT] - Fichas de Artigos -------------------------------------------------
'-----------------------------------------------------------------------------
SUB FichArtG_Cab 'cabecalho
'SigCabNorOpcTit=2 		                 'alterar origem do titulo
'Titulo$="Ficha do Artigos" StcCodFrm$(Stc_Mst_Art$)+" - "+Stc_Mst_Nome1$

Call SigLstCab
Lin1=1                            		'linha 1
Lin2=5                                          'linha2
esp=19

Col1=0                          'artigo
Col2=25                         'data movimento
Col3=Col2+20                    'numero doc
Col4=Col3+15                    'codigo movimento
Col5=Col4+5                     'descricao
Col6=Col5+esp                   'armazem saida
Col7=Col6+5                     'armazem entrada
Col8=Col7+10                    'conta
Col9=Col8+esp                   'quantidade
Col10=Col9+esp                  'valor unitario
Col11=Col10+25                  'valor total
Col12=Col11+22                  'margem direita
Cmax=Col12

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

PrWIN TX_CTR,  Col1,Lin1,Col2 ,Lin1,"Artigo"
PrWIN TX_CTR,  Col2,Lin1,Col3 ,Lin1,"Dt.Lnc"
PrWIN TX_CTR,  Col3,Lin1,Col4 ,Lin1,"No Doc."
PrWIN TX_CTR,  Col4,Lin1,Col5 ,Lin1,"Cód"
PrWIN TX_CTR,  Col5,Lin1,Col6 ,Lin1,"Descrição"
PrWIN TX_CTR,  Col6,Lin1,Col7 ,Lin1,"AS"
PrWIN TX_CTR,  Col7,Lin1,Col8 ,Lin1,"AE"
PrWIN TX_CTR,  Col8,Lin1,Col9 ,Lin1,"Conta"
PrWIN TX_CTR,  Col9,Lin1,Col10,Lin1,"Quantidade"
PrWIN TX_CTR, Col10,Lin1,Col11,Lin1,"V.Unitário"
PrWIN TX_CTR, Col11,Lin1,Col12,Lin1,"V.Total"

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

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


SUB FichArtG_Lin 'linha de movimento
PrWIN AJT_B,  Margem, InicioLinhas+Doc_CntLin*4          	'posicao base
PrWIN COR_T,    CorLin
PrWIN TX_N,     Col1,0,              @Art
PrWIN TX_DMX,   Col2,0,Col3-Col2,    @Dtl
PrWIN TX_NP,    Col3,0          ,"N",@Ndoc
PrWIN TX_NP,    Col4,0          ,"N",@CmvC
PrWIN TX_NP,    Col5,0          ,"N",@CmvD
PrWIN TX_NP,    Col6,0          ,"N",@As
PrWIN TX_NP,    Col7,0          ,"N",@Ae
PrWIN TX_NP,    Col8,0          ,"N",@Ct
PrWIN TX_NP,    Col9,0          ,"N",@Qu
PrWIN TX_NP,    Col10,0         ,"N",@Vu
PrWIN TX_NP,    Col11,0         ,"N",@Vt
end sub


SUB FichArtG_CabRes 'cabecalho para resumo
cnt=CntLin("CON")
fx=CntLin("FRC",cnt+2)
PrWIN AJT_B,  Margem, InicioLinhas+Doc_CntLin*4   'posicao base

PrWIN COR_T,  CorTitLst                           'cor de titulo
PrWIN FON  ,   7,   1                        	'activar fonte


esp=20

Col1=25                         'codigo
Col2=Col1+esp                    'E/S
Col3=Col2+esp                    'descricao
Col4=Col3+esp                    'vu medio
Col5=Col4+esp                     'valor
Col6=Col5+esp                   'movimentos
Col7=Col6+esp                     'armazem entrada
Col8=Col7+esp                     'armazem entrada
Col9=Col8+esp                     'armazem entrada
Cmax=Col12


PrWIN GR_LI,     0,  0, Cmax, 0            	'linha
PrWIN TX_N,  Col1-10,Lin1,"Totais de Movimentos"
PrWIN TX_N,  Col2,Lin1,"Código"
PrWIN TX_N,  Col3-5,Lin1,"Entra/Sai"
PrWIN TX_CTR,  Col4,Lin1,Col5 ,Lin1,"Descrição"
PrWIN TX_CTR,  Col5,Lin1,Col6 ,Lin1,"Quantidade"
PrWIN TX_N,  Col6+10,Lin1,"V.U. Médio"
PrWIN TX_N,  Col7+10,Lin1,"Valor"
PrWIN TX_CTR,  Col8,Lin1,Col9 ,Lin1,"Num"
end sub


Sub FichArtG_LinRes 'linha de resumo
PrWIN AJT_B,  Margem, InicioLinhas+Doc_CntLin*4          	'posicao base
PrWIN COR_T,    CorLin

if MemTxt$(20)="MOV" then                 'resumo de movimentos
PrWIN TX_NP,    Col2,0          ,"N",@RmCmv
PrWIN TX_NP,    Col3,0          ,"N",@RmEs
PrWIN TX_NP,    Col4,0          ,"N",@RmDes
PrWIN TX_NP,    Col5,0          ,"N",@RmQu
PrWIN TX_NP,    Col6,0          ,"N",@RmVm
PrWIN TX_NP,    Col7,0          ,"N",@RmVt
PrWIN TX_NP,    Col8,0          ,"N",@RmNum
end if

if MemTxt$(20)="ENT" then                 'resumo de entradas
PrWIN GR_LI,     0,  0, Cmax, 0            	'linha
PrWIN TX_N,     Col2,0          ,"Entradas"
PrWIN TX_NP,    Col5,0          ,"N",@ReQu
PrWIN TX_NP,    Col6,0          ,"N",@ReVm
PrWIN TX_NP,    Col7,0          ,"N",@ReVt
PrWIN TX_NP,    Col8,0          ,"N",@ReNum
end if

if MemTxt$(20)="SAI" then                 'resumo de saidas
PrWIN TX_N,     Col2,0          ,"Saídas"
PrWIN TX_NP,    Col5,0          ,"N",@RsQu
PrWIN TX_NP,    Col6,0          ,"N",@RsVm
PrWIN TX_NP,    Col7,0          ,"N",@RsVt
PrWIN TX_NP,    Col8,0          ,"N",@RsNum
end if

if MemTxt$(20)="EXI" then                  'resumo de existencia
PrWIN GR_LI,     0,  0, Cmax, 0            	'linha
PrWIN TX_N,     Col2,0          ,"Existência"
PrWIN TX_NP,    Col5,0          ,"N",@ExQu
PrWIN TX_NP,    Col6,0          ,"N",@ExVm
PrWIN TX_NP,    Col7,0          ,"N",@ExVt
PrWIN TX_NP,    Col8,0          ,"N",@ExNum
end if
end sub


SUB FichArtG_FimAjt 'fim de pagina
call DiaG_fim                                   'listar fim
end sub


SUB FichArtG_Fim 'fim de listagem
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 -----------------------------------------------------------------------
'=============================================================================
'=============================================================================
' XLS - Funcoes comuns
'=============================================================================
Sub Xls_DocIni 'inicializar documento
xlsOpcNfi$ = "RND:StcDia.xls"                      'nome do ficheiro a gerar
xlsOpcWks$ = ""                                    'nome da woorksheet

call XlsComDoc_IniMat                              'inicializar documento por matriz

'preparacao especifica
res = XlsWks("Valores")                            'activar worksheet

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

call XlsComLin_Ini                                 'iniciar linhas

'definicao das colunas
coArt = 2                                          'codigo do artigo
coDat = 3                                          'data lancamento
coDoc = 4                                          'documento
coCod = 5                                          'codigo 
coDes = 6                                          'descricao
coAze = 7                                          'armazem entrada
coAzs = 8                                          'armazem saida
coCte = 9                                          'conta
coQut = 10                                         'quantidade
coVun = 11                                         'valor unitario
coTot = 12                                         'valor total
coCtp = 13                                         'contabilizacao
end sub


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


Sub Xls_LinInc 'incrementar linha
call XlsComLin_IncRep                              'incrementar linha + repor formato normal
end sub


'-----------------------------------------------------------------------------
'- [XLS] - Diario de Artigos -------------------------------------------------
'-----------------------------------------------------------------------------
Sub XlsStcDia_DocIni 'inicializar documento
call Xls_DocIni                                    'inicializar documento
zonFim = 0                                         'nao esta na zona de fim
end sub


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


Sub XlsStcDia_IncLin 'incrementar linha	
call XlsComLin_IncRep                              'incrementar linha + repor formato normal
end sub


Sub XlsStcDia_Lin 'linha de valores
vuCtCtp$ = ""                                      'contabilizacao
call XlsStcDia_ExeLin                              'linha de valores - executar
end sub


Sub XlsStcDia_ExeLin 'linha de valores - executar
call XlsStcDia_IncLin                              'incrementar linha	

'valores a listar
art$ = StcCodFrm$(Stc_Mov_Art$)                
dtl$ = FrmVal$(Stc_Mov_Dtl,42,0)
ndo$ = FrmNdo$("06",Stc_Mov_Tdoc$,Stc_Mov_Ndoc$)
cod$ = FrmVal$(Stc_Mov_Cmv,21,-3)
des$ = MemTxt$(11)
aze$ = FrmVal$(Stc_Mov_ArzEnt,20,4)
azs$ = FrmVal$(Stc_Mov_ArzSai,20,4)
cte$ = Stc_Mov_Ct$
qut  = Stc_Mov_Qu
vun  = MemNum(11)
vto  = Stc_Mov_Vt

'listar
res = XlsLst(liUsa, coArt, art$)                   'codigo artigo
res = XlsLst(liUsa, coDat, dtl$)                   'data de lancamento
res = XlsLst(liUsa, coDoc, ndo$)                   'numero documento
res = XlsLst(liUsa, coCod, cod$)                   'codigo
res = XlsLst(liUsa, coDes, des$)                   'descricao
res = XlsLst(liUsa, coAze, aze$)                   'armazem de entrada
res = XlsLst(liUsa, coAzs, azs$)                   'armazem de saida
res = XlsLst(liUsa, coCte, cte$)                   'conta
res = XlsLst(liUsa, coQut, qut)                    'quantidade
res = XlsLst(liUsa, coVun, vun)                    'valor unitario
res = XlsLst(liUsa, coTot, vto)                    'valor total
res = XlsLst(liUsa, coCtp, vuCtCtp$)               'contabilizacao
end sub


Sub XlsStcDia_LinSep 'linha de separacao
call XlsStcDia_IncLin                              'incrementar linha
end sub


Sub XlsStcDia_LinRes 'linha de resumo
'XlsMat$ = ""                                       'invalidar eliminacao de linhas

if zonFim = 0 then                                 'ainda nao iniciou resumo ?
   res = XlsLinEli(xlsLin, 1)                      'eliminar linha - ultima
   res = XlsLinEli(xlsLba, 1)                      'eliminar linha - primeira

   call XlsComLin_Fim                              'fim de linhas
   zonFim = 1                                      'iniciou fim

   xlsLba = linFim                                 'linha base
   xlsLin = linFim + 1                             'ajustar posicao para zona de resumo
end if

if MemTxt$(20)="MOV" then                          'movimentos 
   RmCmv    = MemNum(10)
   RmDes$   = MemTxt$(21)
   RmES$    = MemTxt$(22)
   RmNum    = MemNum(20)
   RmQu     = MemNum(21)
   RmQ2     = MemNum(22)
   RmVt     = MemNum(23)
   RmVm     = MemNum(24)

   call XlsStcDia_IncLin                            'incrementar linha	

   res = XlsLst(liUsa, coDes, RmNum)                'numero de registos
   res = XlsLst(liUsa, coAze, RmCmv)                'codigo
   res = XlsLst(liUsa, coAzs, RmES$)                'E/S
   res = XlsLst(liUsa, coCte, RmDes$)               'descricao
   res = XlsLst(liUsa, coQut, RmQu)                 'quantidade
   res = XlsLst(liUsa, coVun, RmVm)                 'valor unitario
   res = XlsLst(liUsa, coTot, RmVt)                 'valor total
end if

if MemTxt$(20)="ENT" then                           'resumo de entradas
   ReTit$   ="Entradas"
   ReNum    = MemNum(20)
   ReQu     = MemNum(21)
   ReQ2     = MemNum(22)
   ReVt     = MemNum(23)
   ReVm     = MemNum(24)

   xlsLba = linFim                                  'linha a eliminar - primeira
   xlsLin = liUsa + 1                               'linha a eliminar - ultima

   liUsa = liUsa + 3                                'ajustar linha

   res = XlsLst(liUsa, coDes, ReNum)                'numero de registos
   res = XlsLst(liUsa, coCte, ReTit$)               'descricao
   res = XlsLst(liUsa, coQut, ReQu)                 'quantidade
   res = XlsLst(liUsa, coVun, ReVm)                 'valor unitario
   res = XlsLst(liUsa, coTot, ReVt)                 'valor total
end if


if MemTxt$(20)="SAI" then                          'resumo de saidas
   RsTit$   ="Saídas"
   RsNum    = MemNum(20)
   RsQu     = MemNum(21)
   RsQ2     = MemNum(22)
   RsVt     = MemNum(23)
   RsVm     = MemNum(24)

   liUsa = liUsa + 1                               'ajustar linha

   res = XlsLst(liUsa, coDes, RsNum)                'numero de registos
   res = XlsLst(liUsa, coCte, RsTit$)               'descricao
   res = XlsLst(liUsa, coQut, RsQu)                 'quantidade
   res = XlsLst(liUsa, coVun, RsVm)                 'valor unitario
   res = XlsLst(liUsa, coTot, RsVt)                 'valor total
end if


if MemTxt$(20)="EXI" then                          'resumo de existencia
   RxTit$   ="Existência"
   ExNum    = MemNum(20)
   ExQu     = MemNum(21)
   ExQ2     = MemNum(22)
   ExVt     = MemNum(23)
   ExVm     = MemNum(24)

   liUsa = liUsa + 1                               'ajustar linha

   res = XlsLst(liUsa, coDes, ExNum)                'numero de registos
   res = XlsLst(liUsa, coCte, RxTit$)               'descricao
   res = XlsLst(liUsa, coQut, ExQu)                 'quantidade
   res = XlsLst(liUsa, coVun, ExVm)                 'valor unitario
   res = XlsLst(liUsa, coTot, ExVt)                 'valor total
end if
end sub


Sub XlsStcDia_Fim 'terminar
call XlsStcDia_DocFim                               'terminar documento

'call XlsComLin_Fim                                 'fim de linhas

'listar
liUsa = linFim                                      'linha a usar

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


'-----------------------------------------------------------------------------
'- [XLS] - Diario de Artigos + contabilizacao --------------------------------
'-----------------------------------------------------------------------------
Sub XlsDiaCtp_DocIni 'inicializar documento
call XlsStcDia_DocIni                              'inicializar documento
end sub


Sub XlsDiaCtp_DocFim 'terminar documento
call XlsStcDia_DocFim                              'terminar documento
end sub


Sub XlsDiaCtp_IncLin 'incrementar linha	
call XlsStcDia_IncLin                              'incrementar linha	
end sub


Sub XlsDiaCtp_Lin 'linha de valores
call ContaCtp                                      'conta de contrapartida
call XlsStcDia_ExeLin                              'linha de valores - executar
end sub


Sub XlsDiaCtp_LinRes 'linha de resumo
call XlsStcDia_LinRes                              'terminar
end sub


Sub XlsDiaCtp_Fim 'terminar
call XlsStcDia_Fim                                 'terminar
end sub


'==============================================================================
'= DIV ========================================================================
'==============================================================================
Sub ContaCtp 'conta de contrapartida
'- (40) ------------------------------>'Comentario
art$ = STC_MOV_Art$                    'artigo
tdo$ = STC_MOV_Tdoc$                   'tipo de documento
zpa  = STC_MOV_Pais                    'pais
ctp  = STC_MST_CtpTip                  'tipo de contrapartida
grp$ = "ART"                           'grupo de valores
tpv$ = "ART>C-01"                      'tipo de valor
tdc$ = "AUT"                           'tipo debito/credito

exi% = StcArtLer(art$)                 'ler artigo

vuCtCtp$ = CtaCtbCt(tdo$, grp$, zpa, ctp, tpv$, tdc$)       'conta de contabilizacao
end sub

##


'==============================================================================
#INC - Funcoes comuns
'==============================================================================
Funcoes comuns                    =[SIG_Dir.Div],LsComPgm.std
Funcoes comuns XLS                =[SIG_LST_DIR.XLS],XlsCom_Pgm.inc
##

