Esta versão do sistema foi descontinuada e não recebe atualizações e novas implementações. Acesse a documentação da versão 5.10.3 aqui

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

Este artigo ajudou você?