Identificador de Regra
CTC-632ORDFI01
Módulo: CTC - Contabilidade de Custos.
Finalidade: Este identificador tem funcionalidade quanto o tipo de processamento é "P" (Processo). É possível definir a ordem de processamento das filiais através de uma regra definida pelo usuário, por exemplo, ter uma ordenação de fechamento de estoques de acordo com o nível de origem que está sendo apurado, neste caso, setar sempre a variável AOrdenaOrigem como “S” na regra.
Características: Este identificador tem funcionalidade quanto o tipo de processamento é "P" (Processo).
Tela: Custo Ajustado Multiníveis
Transação: Não se aplica.
Regra:
Definir Alfa AOrdenarOrigem;
Definir Alfa OrdemFil;
Definir Numero NNumOri; @Pode ser usado para definir as origens a que se quer verificar a qtde de transferências entre filiais @
Definir Data DPerIni;
Definir Data DPerFin;
Definir Alfa AuxPerIni;
Definir Alfa AuxPerFin;
Definir Alfa WAux;
Definir Cursor CurE210Mvp;
Definir Cursor CurE070Fil1;
AOrdenarOrigem = 'S';
ConverteMascara(3,DPerIni,AuxPerIni,"DD/MM/YYYY");
ConverteMascara(3,DPerFin,AuxPerFin,"DD/MM/YYYY");
AlfaParaData(AuxPerIni, DPerIni);
AlfaParaData(AuxPerFin, DPerFin);
se (NNumOri > 0)
inicio
@ Pega a partir da filial com mais transferências, filtra pelas transações de saída por transferência @
Definir Alfa Cur_E210MVP;
SQL_Criar(Cur_E210MVP);
SQL_DefinirComando(Cur_E210MVP, "Select E210MVP.FilDep, Count(1) from E210MVP, E075PRO \
where E075PRO.CODEMP = E210MVP.CODEMP \
and E075PRO.CODPRO = E210MVP.CODPRO \
and E210MVP.CodEmp = 1 and E210MVP.datmov >= :vdSQLPerIni \
and E210MVP.DatMov <= :vdSQLPerFin \
and E210MVP.EstEos = 'S' \
and E210MVP.CodTns in ('90253',...) \
and E075PRO.NUMORI = :vnSQLNumOri \
group by E210MVP.FilDep order by 2 desc, E210MVP.FilDep");
SQL_DefinirData(Cur_E210MVP, "vdSQLPerIni", DPerIni);
SQL_DefinirData(Cur_E210MVP, "vdSQLPerFin", DPerFin);
SQL_DefinirInteiro(Cur_E210MVP, "vnSQLNumOri", NNumOri);
SQL_AbrirCursor(Cur_E210MVP);
Enquanto (SQL_EOF(Cur_E210MVP) = 0)
Inicio
Se (OrdemFil <> "")
OrdemFil = OrdemFil + ",";
SQL_RetornarAlfA(Cur_E210MVP, "FilDep", WAux);
OrdemFil = OrdemFil + WAux;
SQL_Proximo(Cur_E210MVP);
Fim;
SQL_FecharCursor(Cur_E210MVP);
SQL_Destruir(Cur_E210MVP);
@ Pega as demais filiais que não tem transferência na ordem de cadastro para jogar na lista de filiais @
CurE070Fil1.SQL "select e070fil.codfil from e070fil \
where e070fil.codemp = 1 and \
not exists (select e210mvp.fildep from e210mvp, e075pro \
where e075pro.codemp = e210mvp.codemp and e075pro.codpro = e210mvp.codpro and \
e210mvp.codemp = 1 and e210mvp.datmov >= :DPerIni and e210mvp.datmov <= :DPerFin and \
e210mvp.fildep = e070fil.codfil and \
e075pro.NUMORI = :NNumOri and \
e210mvp.codtns in ('90250',...)) \
group by codfil order by codfil";
CurE070Fil1.AbrirCursor();
enquanto (CurE070Fil1.Achou)
inicio
Se (OrdemFil <> "")
OrdemFil = OrdemFil + ",";
IntParaAlfa(CurE070Fil1.CodFil,WAux);
OrdemFil = OrdemFil + WAux;
CurE070Fil1.Proximo();
fim;
CurE070Fil1.FecharCursor();
Fim;
Se (OrdemFil = "" ) @ se vazio pode definir oretorno fixo @
Inicio
OrdemFil = "1,2,3,... ";
Fim;
Atenção
Caso o parâmetro global LisVarReg esteja habilitado, a variável ListaVariaveis estará disponível em todos os identificadores de regras do sistema. O conteúdo desta variável lista os campos disponibilizados no identificador de regras em questão.
Não é aconselhada a ativação desse parâmetro global para o uso cotidiano. Esse recurso de listagem dos campos de identificadores auxilia a construção de regras e o Suporte para, por exemplo, depuração ou quando não houver acesso à documentação dos identificadores de regras.
Variáveis Disponibilizadas:
Nome | Tipo | Observações | Retorna Valor |
---|---|---|---|
OrdemFil | ALFA | Lista de filiais com ordem de execução do fechamento de estoques | S |
AOrdenarOrigem | ALFA | Executar regra no processamento de cada um dos níveis de origem | S |
NNumOri | Número | Nível de origem que está sendo processado | N |
DPerIni | Data | Período inicial para fechamento de estoques (período inicial tabela custos) | N |
DPerFin | Data | Período final para fechamento de estoques (período inicial tabela custos) | N |