'Nome       : StaResVcu.sql
'Tipo       : SQL
'Data       : 2016/07/22
'Versao     : 1.0
'Descricao  : Listagens de Custos

'==============================================================================
'#VER - Historia de modificacoes
'==============================================================================
'- Versao : 1.0   ____/__/__ --------------------------------------------------
'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")

'------------------------------------------------------------------------------
'- generico -------------------------------------------------------------------
'------------------------------------------------------------------------------
Nome do artigo [Cmd]=ArtNom=+
   +SELECT Nome1$ as [NOME$] +
   +FROM {TB_StcMst} +
   +WHERE Art$ = '{ART.COD}'

'------------------------------------------------------------------------------
'- Vendas por Artigo/Conta/Entidade/Vendedor (Pmc/Margem) ---------------------
'------------------------------------------------------------------------------
Gerar registos      [Cmd]=RcuArtCtuEntVnd=+
   +SELECT MOV.Art$ AS ART, MOV.Ct$ AS CTU, Entid$ AS ENT, Vend AS VND, ACM.PMC, +
   +SUM(Qu * VndSinQ) AS RQU, SUM(Vt * VndSinV) AS RVT +
   +FROM ((StcMov{Ano} MOV + 
   +INNER JOIN StcCmvMap CMV ON MOV.Cmv = CMV.Cmv) +
   +INNER JOIN {TB_CtaMst} CTM ON MOV.[Ct$] = CTM.[Ct$]) +
   +INNER JOIN StcAcm ACM ON MOV.[Art$] = ACM.[Art$] +
   +WHERE MOV.RecVal <> 255 +
   +AND   VndUsa$ = 'S' +
   +AND   ACM.[Ano] = {Ano} +
   +AND   MOV.Ct$  BETWEEN '{Opc_Ct.Ini}'    AND '{Opc_Ct.Fim}' +
   +AND   MOV.Art$ BETWEEN '{Opc_Art.Ini}'   AND '{Opc_Art.Fim}' +
   +AND   Dtl      BETWEEN  {Opc_Dtl.Ini}    AND  {Opc_Dtl.Fim} +
   +AND   Vend     BETWEEN  {Opc_Vnd.Ini}    AND  {Opc_Vnd.Fim} +
   +AND   {Opc_Ent} +
   +GROUP BY MOV.Art$, MOV.Ct$, Entid$, Vend, ACM.PMC +
   +ORDER BY MOV.Art$, MOV.Ct$, Entid$, Vend, ACM.PMC
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=SQL
Nome                       [DocNom]=ExpVndACEV_V,Custo de Vendas (Margem/Vendas) (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]=

'funcoes de listagem
Base para documento         [FxDOC]=ExpRcuArtCtuEntVnd_Vnd
Listar cabecalho            [FxCAB]=ExpVndArtCtuEntVnd_Cab
Listar linhas               [FxLIN]=ExpVndArtCtuEntVnd_Lin
Listar fim                  [FxFIM]=ExpVndArtCtuEntVnd_Fim

'controlo de listagem SQL
Gerador de dados a listar  [SQLDat]=RcuArtCtuEntVnd
Subtotalizadores           [SQLSbt]=

Matriz auxiliar            [DocMat]=StaResVcuExp.xls
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=SQL
Nome                       [DocNom]=ExpVndACEV_C,Custo de Vendas (Margem/Compras) (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]=

'funcoes de listagem
Base para documento         [FxDOC]=ExpRcuArtCtuEntVnd_Cmp
Listar cabecalho            [FxCAB]=ExpVndArtCtuEntVnd_Cab
Listar linhas               [FxLIN]=ExpVndArtCtuEntVnd_Lin
Listar fim                  [FxFIM]=ExpVndArtCtuEntVnd_Fim

'controlo de listagem SQL
Gerador de dados a listar  [SQLDat]=RcuArtCtuEntVnd
Subtotalizadores           [SQLSbt]=

Matriz auxiliar            [DocMat]=StaResVcuExp.xls
##


'==============================================================================
#VAR - Variaveis
'==============================================================================
Tipo     = MemTxt$(1)
Pag      = Doc_CntPag
Tit080   = TxTit$("TT=10CPI, LD, PT=40C",Memtxt$(1))
Tit132   = TxTit$("TT=16CPI, LD, PT=66C",Memtxt$(1))
DataExt  = FrmVal$(Sig_DtHoje,45,0)

'- dados a listar -------------------------------------------------------------
vaEntCod = vuEntCod$                            'entidade - codigo
vaEntCov = vuEntCov$                            'entidade - codigo formatado
vaEntIde = vuEntIde$                            'entidade - identificacao

'artigo
vaArtCod = vuArtCod$                            'codigo
vaArtCov = vuArtCov$                            'codigo formatado
vaArtNom = vuArtNom$                            'nome

'conta
vaCtCod  = Cta_Mst_Ct$                          'codigo da conta
vaCtNom  = Cta_Mst_Nome$                        'nome

'entidade da conta
vaEntCod = vuCteCod$                            'codigo
vaEntCov = vuCteCov$                            'codigo formatado
vaEntNom = vuCteNom$                            'nome

'armazem
vaArzCod = vuArzCod$                            'codigo
vaArzCov = vuArzCov$                            'codigo formatado
vaArzNom = vuArzNom$                            'nome

'vendedor
vaVndCod = vuVndCod$                            'codigo
vaVndCov = vuVndCov$                            'codigo formatado
vaVndNom = vuVndNom$                            'nome

'- diversos -------------------------------------------------------------------
vaObs    = vuUsaObs$                            'observacaoes

'contagem
toNrg    = FrmNum$(9.0,TotCnt("vEntCov",0))     'numero de registos - total
s1Nrg    = FrmNum$(9.0,TotCnt("vEntCov",1))     'numero de registos - subtotal 1
s2Nrg    = FrmNum$(9.0,TotCnt("vEntCov",2))     'numero de registos - subtotal 2

'resumo
vaResQu  = FrmNum$(6.3,vuResQu)                 'quantidade
toResQu  = FrmNum$(6.3,Total("vaResQu",0))      'quantidade - total
s1ResQu  = FrmNum$(6.3,Total("vaResQu",1))      'quantidade - subtotal 1
s2ResQu  = FrmNum$(6.3,Total("vaResQu",2))      'quantidade - subtotal 2

'valor da venda
vaResVt  = FrmNum$(12.2,vuResVt)                'valor
toResVt  = FrmNum$(12.2,Total("vaResVt",0))     'valor - total
s1ResVt  = FrmNum$(12.2,Total("vaResVt",1))     'valor - subtotal 1
s2ResVt  = FrmNum$(12.2,Total("vaResVt",2))     'valor - subtotal 2

'custo da venda
vaResVc  = FrmNum$(12.2,vuResVc)                'valor
toResVc  = FrmNum$(12.2,Total("vaResVc",0))     'valor - total
s1ResVc  = FrmNum$(12.2,Total("vaResVc",1))     'valor - subtotal 1
s2ResVc  = FrmNum$(12.2,Total("vaResVc",2))     'valor - subtotal 2
##


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


Sub FxIni 'funcao de inicializacao
'nada a excutar
end sub


Sub FxFim 'funcao de finalizacao
'nada a excutar
end sub


Sub Lst_AJT 'ajuste
'nada a excutar
end sub


'=============================================================================
'- Comum ---------------------------------------------------------------------
'=============================================================================
'-----------------------------------------------------------------------------
'- [VAR] - Variaveis ---------------------------------------------------------
'-----------------------------------------------------------------------------
Sub Com_Var_Con 'consultar variaveis
ArtCod$ = SqlCmp$("ART")                           'artigo
CtuCod$ = SqlCmp$("CTU")                           'conta

CteCod$ = SqlCmp$("ENT")                           'entidade
ArzCod  = SqlCmp("ARZ")                            'armazem
VndCod  = SqlCmp("VND")                            'vendedor

vuResQu   = SqlCmp("RQU")                          'quantidade
vuResVt   = SqlCmp("RVT")                          'valor

vuResPm   = SqlCmp("ACM.PMC")                      'preco medio custo
end sub


Sub Com_Var_Prp 'preparar variaveis
vuUsaObs$ = ""                                     'anular observacoes
call Com_Var_Con                                   'consultar variaveis

'preparar valores
call Com_Var_PrpArt                                'preparar variaveis - artigo
call Com_Var_PrpEnt                                'preparar variaveis - entidade
call Com_Var_PrpArz                                'preparar variaveis - armazem
call Com_Var_PrpVnd                                'preparar variaveis - vendedor
call Com_Var_PrpCtu                                'preparar variaveis - conta
end sub


Sub Com_Var_PrpArt 'preparar variaveis - artigo
res     = SqlOpcAct("Art.Cod",ArtCod$)             'registar artigo
res     = SqlCalc("ARTNOM")                        'preparar nome do artigo

vuArtCov$ = StcCodFrm$(ArtCod$)                    'codigo formatado
vuArtNom$ = SqlOpcCon$("NOME$")                    'nome
vuArtIde$ = vaArtCov$ + " - " + vaArtNom$          'identificacao
end sub


Sub Com_Var_PrpEnt 'preparar variaveis - entidade
if CteCod$ = "" then                                 'sem codigo ?
   vuCteIdc$ = "(Sem entidade)"                      'identificacao do codigo
   vuCteIcu$ = "? - " + vuCteIdc$                    'identificacao do codigo a usar
else
   vuCteIdc$ = EmpTabCon$("ENT", CteCod$, "NOME")    'identificar codigo
   vuCteIcu$ = vuCteCod$ + " - " + vuCteIdc$         'identificacao do codigo a usar
end if

vuCteCov$ = vuCteCod$                              'codigo formatado
vuCteNom$ = vuCteIdc$                              'nome
vuCteIde$ = "Entidade: " + vuCteIcu$               'identificacao
end sub


Sub Com_Var_PrpArz 'preparar variaveis - armazem
vuArzCov$ = NumTxt$(ArzCod, 4)                     'codigo formatado
vuArzNom$ = "Armazem " + vuArzCov$                 'nome
vuArzIde$ = "Armazem " + vuArzCov$                 'identificacao
end sub


Sub Com_Var_PrpVnd 'preparar variaveis - vendedor
vuVndCov$ = NumTxt$(VndCod, 3)                     'codigo formatado
vuVndNom$ = EmpTabCon$("VEND", vuVndCod, "NOME")   'nome
vuVndIde$ = vuVndCov$ + " - " + vuVndNom$          'identificacao
end sub


Sub Com_Var_PrpCtu 'preparar variaveis - conta
res  = CtaContaLer(CtuCod$)                        'preparar dados da conta

vuCtuCov$ = CTA_MST_Ct$                            'codigo formatado
vuCtuNom$ = CTA_MST_Nome$                          'nome
vuCtuIde$ = vuCtuCov$ + " - " + vuCtuNom$          'identificacao
end sub


'------------------------------------------------------------------------------
'- [XLS] - Listar para EXCEL --------------------------------------------------
'------------------------------------------------------------------------------
Sub Com_Xls_DocIni 'inicializar documento
xlsOpcNfi$ = "RND:" + comXlsFic$                   '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$ = comCabTit$                               '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
end sub


Sub Com_Xls_DocFim 'terminar documento
'res = XlsWksAct("A", 1)                            'activar worksheet
call XlsComDoc_Fim                                 'terminar/mostrar documento
end sub


Sub Com_Xls_IncLin 'incrementar linha
'call XlsComLin_Inc                                 'incrementar linha
call XlsComLin_IncRep                              'incrementar linha + repor formato normal

zon$ = XlsZon$(liUsa, coCod,liUsa, coNom)          'zona
'zon$= XlsZonNum$("L", liUsa)                      'zona da linha
res = XlsAli(zon$, "<")                            'alinhamento
end sub


Sub Com_Xls_LinSep 'linha de separacao
call XlsVnd_IncLin                                 'incrementar linha
end sub


Sub Com_Xls_LstLinIde 'listar linha - identificacao (codigo e nome)
res = XlsLst(liUsa, coCod, vaCod$)                 'codigo
res = XlsLst(liUsa, coNom, vaNom$)                 'nome
end sub


Sub Com_Xls_LstLinArt 'listar linha - artigo
res = XlsLst(liUsa, coArtCod, ArtCod$)             'codigo
res = XlsLst(liUsa, coArtNom, vuArtNom$)           'nome
end sub


Sub Com_Xls_LstLinEnt 'listar linha - entidade
res = XlsLst(liUsa, coEntCod, vuCteCod$)           'codigo
end sub


Sub Com_Xls_LstLinArz 'listar linha - armazem
res = XlsLst(liUsa, coArzCod, vuArzCod)            'codigo
end sub


Sub Com_Xls_LstLinVnd 'listar linha - vendedor
res = XlsLst(liUsa, coVndCod, vuVndCod)            'codigo
end sub


Sub Com_Xls_LstLinCtu 'listar linha - conta
res = XlsLst(liUsa, coCtuCod, CtuCod$)             'codigo
res = XlsLst(liUsa, coCtuNom, vuCtuNom$)           'nome
end sub


Sub Com_Xls_LstLinRes 'listar linha - pmc/margem
vuResVc  = vuResQu * vuResPm                       'resumo de custo

vuVndUn  = vuResVt / vuResQu                       'Vendas (valor unitario)
vuVcuUn  = vuResVc / vuResQu                       'Custo (valor unitario)
vuMrgUn  = vuVndUn - vuVcuUn                       'Margem (valor unitario)

VndMrgV = vuResVt - vuResVc                        'margem da venda em valor

if tipMrg$ = "CMP" then
   VndMrgP = 0 + (VndMrgV / vuResVc) * 100         'margem da venda em %
else
   VndMrgP = 0 + (VndMrgV / vuResVt) * 100         'margem da venda em %
end if

res = XlsLst(liUsa, coResQu , vuResQu)             'quantidade

'vendas
res = XlsLst(liUsa, coResVtu, vuVndUn)             'vendas (valor unitario)
res = XlsLst(liUsa, coResVt , vuResVt)             'vendas (valor total)

'custos pmc
res = XlsLst(liUsa, coResVu , vuResPm)             'custos (valor unitario PMC)
res = XlsLst(liUsa, coResVc , vuResVc)             'custo  (valor total PMC)

'margem
res = XlsLst(liUsa, coResMgVu, vuMrgUn)            'margem (valor unitario)
res = XlsLst(liUsa, coResMgVt, VndMrgV)            'margem (valor total)
res = XlsLst(liUsa, coResMgP , VndMrgP)            'margem em %

res = AcmExe("vaResQu", vuResQu)                   'acumular - quantidade
res = AcmExe("vaResVt", vuResVt)                   'acumular - vendas (valor total)
res = AcmExe("vaResVc", vuResVc)                   'acumular - custo (valor total)
res = AcmExe("vaVndMv", VndMrgV)                   'acumular - margem (valor total)
end sub


Sub Com_Xls_LstTot 'listar totais
call XlsComLin_Fim                                 'fim de linhas

vNrg   = TotCnt("vaResQu", 0)                      'numero de registos
vResQu = Total("vaResQu", 0)                       'quantidade
vResVt = Total("vaResVt", 0)                       'valor
vResVc = Total("vaResVc", 0)                       'valor de custo
vMrgVc = Total("vuVndMv", 0)                       'valor da margem

'listar
liUsa = linFim                                     'linha a usar

call XlsComLin_ActBI                               'activar linha em BOLD+ITALICO
res = XlsLst(liUsa, coNrg, vNrg)                   'numero de registos
res = XlsLst(liUsa, coResQu, vResQu)               'total quantidade
res = XlsLst(liUsa, coResVt, vResVt)               'total valor
res = XlsLst(liUsa, coResVc, vResVc)               'total valor custo
res = XlsLst(liUsa, coResMgVt, vMrgVc)             'total valor margem
end sub


Sub Com_Xls_LinTit1 'titulo 1
if titIde$ <> "" then                              'ha titulo ?
   call Com_Xls_IncLin                             'incrementar linha	

   res = XlsLst(liUsa, coNom, titIde$)             'listar identificacao
end if

titIde$ = ""                                       'anular titulo
end sub


Sub Com_Xls_LinTit2 'titulo 2
if titIde$ <> "" then                              'ha titulo ?
   call Com_Xls_IncLin                             'incrementar linha	

   res = XlsLst(liUsa, coNom, titIde$)             'listar identificacao
end if

titIde$ = ""                                       'anular titulo
end sub


Sub Com_Xls_SbtNrg 'numero de registos do subtotal
res = XlsLst(liUsa, coNrs, vNrg)                   'numero de registos

zon$ = XlsZon$(liUsa, coNrs)                       'zona
res = XlsAli(zon$, "|")                            'alinhamento
end sub


Sub Com_Xls_LinSbt1 'subtotal 1
vNrg   = TotCnt("vaResQu", 1)                      'numero de registos
vResQu = Total("vaResQu", 1)                       'quantidade
vResVt = Total("vaResVt", 1)                       'valor

if vNrg > 1 then                                   'listar numero ?
   call Com_Xls_IncLin                             'incrementar linha	
   call XlsComLin_ActBI                            'activar linha em BOLD+ITALICO

   call Com_Xls_SbtNrg                             'numero de registos do subtotal
   res = XlsLst(liUsa, coResQu, vResQu)            'total quantidade
   res = XlsLst(liUsa, coResVt, vResVt)            'total valor
end if

call Com_Xls_IncLin                                'incrementar linha	

x = TotLpz(1)                                      'limpar totais
end sub


Sub Com_Xls_LinSbt2 'subtotal 2
vNrg   = TotCnt("vaResQu", 2)                      'numero de registos
vResQu = Total("vaResQu", 2)                       'quantidade
vResVt = Total("vaResVt", 2)                       'valor

if vNrg > 1 then                                   'listar numero ?
   call Com_Xls_IncLin                             'incrementar linha	
   call XlsComLin_ActBI                            'activar linha em BOLD+ITALICO

   call Com_Xls_SbtNrg                             'numero de registos do subtotal
   res = XlsLst(liUsa, coResQu, vResQu)            'total quantidade
   res = XlsLst(liUsa, coResVt, vResVt)            'total valor
end if

if sepSbt2 = 1 then                                'separar subtotal 2 ?
   call Com_Xls_IncLin                             'incrementar linha	
end if

sepSbt2 = 1                                        'separar subtotal 2
x = TotLpz(2)                                      'limpar totais
end sub


'==============================================================================
'- [XLS] - Listar para XLS ----------------------------------------------------
'==============================================================================
'------------------------------------------------------------------------------
'- [EXP] - Exportar vendas por artigo/conta/entidade/vendedor/pmc/margem ------
'------------------------------------------------------------------------------
Sub ExpVndArtCtuEntVndCom_DocIni 'inicializar documento
comXlsFic$ = "StaResVcuExp.xls"                    'nome do ficheiro
call Com_Xls_DocIni                                'inicializar documento

'definicao das colunas
coNrg    = 2                                       'numero de registos

coArtCod = 2                                       'artigo - codigo
coArtNom = 3                                       'artigo - nome

coCtuCod = 4                                       'conta - codigo
coCtuNom = 5                                       'conta - nome

coEntCod = 6                                       'entidade - codigo
coVndCod = 7                                       'vendedor - codigo
coResQu  = 8                                       'quantidade

coResVtu = 9                                       'valor unitario
coResVt  = 10                                      'valor

coResVu  = 11                                      'preco medio de custo (valor medio)
coResVc  = 12                                      'preco medio de custo (valor total)

coResMgVu= 13                                      'margem (valor unitario)
coResMgVt= 14                                      'margem (valor total)
coResMgP = 15                                      'margem (percentagem)
end sub


Sub ExpVndArtCtuEntVnd_DocFim 'terminar documento
call Com_Xls_DocFim                                'terminar documento
end sub


Sub ExpVndArtCtuEntVnd_Lin 'linha
call Com_Var_Prp                                   'preparar variaveis
call Com_Xls_IncLin                                'incrementar linha	

'listar
call Com_Xls_LstLinArt                             'listar artigo
call Com_Xls_LstLinCtu                             'listar conta
call Com_Xls_LstLinEnt                             'listar entidade
call Com_Xls_LstLinVnd                             'listar vendedor
call Com_Xls_LstLinRes                             'listar resumo
end sub


Sub ExpVndArtCtuEntVnd_Fim 'terminar
call Com_Xls_LstTot                                'listar totais
end sub


'------------------------------------------------------------------------------
'- [EXP] - Exportar custos de vendas (Margem/Vendas) --------------------------
'------------------------------------------------------------------------------
Sub ExpRcuArtCtuEntVnd_Vnd_DocIni 'inicializar documento
tipMrg$ = "VND"                                        'tipo de margem
comCabTit$ = "Custo das Vendas (Margem/Vendas)"        'titulo

call ExpVndArtCtuEntVndCom_DocIni                      'inicializar documento
end sub

Sub ExpRcuArtCtuEntVnd_Vnd_DocFim 'terminar
call Com_Xls_DocFim                                    'terminar documento
end sub


'------------------------------------------------------------------------------
'- [EXP] - Exportar custos de compras (Margem/Compras) --------------------------
'------------------------------------------------------------------------------
Sub ExpRcuArtCtuEntVnd_Cmp_DocIni 'inicializar documento
tipMrg$ = "CMP"
comCabTit$ = "Custo das Vendas (Margem/Compras)"        'titulo

call ExpVndArtCtuEntVndCom_DocIni                       'inicializar documento
end sub

Sub ExpRcuArtCtuEntVnd_Cmp_DocFim 'terminar
call Com_Xls_DocFim                                     'terminar documento
end sub

##


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