Variáveis para apuração com rateio
As regras para apuração com Rateio têm diferenças fundamentais das regras convencionais. A seguir são mostradas as variáveis e os exemplos para cada caso.
As variáveis utilizadas na regra de Apuração com Rateio são:
RatCol | Código de rateio do colaborador no dia. |
CodRat | Código de rateio desejado. |
SitRes | Situação para resultado da operação de rateio. |
SitOpe[] | Situação para operação. Indexado de 1 a 10. |
MinOpe | Minutos para operação. Somente números inteiros. |
TipOpe | Tipo de operação. |
Os Tipos de Operação podem ser:
+ | adição |
- | subtração |
* | multiplicação |
/ | divisão |
0 | zerar a situação SitRes |
Após o comando TipOpe, as variáveis CodRat, SitRes, SitOpe[], MinOpe e TipOpe são zeradas. Estas variáveis só estarão disponíveis se a empresa utilizar rateio de mão-de-obra. Na multiplicação e divisão, a variável SitOpe[] não funciona, pois não é possível multiplicar ou dividir uma situação por outra. A variável MinOpe pode ser utilizada nestes casos. Nestas duas operações a variável SitRes deve ter o mesmo código da variável SitOpe[1].
No caso de rateio, a variável HorSit não recebe valores na Regra, pode-se somente consultar o total de horas de cada situação com todos os rateios.
Para verificar as horas de uma situação num determinado código de rateio, utilizar a variável CodRat igual ao código de rateio desejado, e depois consultar a variável HorSit[].
Nota
As variáveis acima, apenas alteram os campos de quantidade e código da situação, conforme exemplos a seguir. O código do rateio não pode ser alterado.
Cenários
Regras de Apuração com Rateio:
CodRat = 3;
Se(HorSit[1] > 0)
Inicio
...
Fim;
(todos os rateios)
CodRat = 0;
SitRes = 301;
SitOpe[1] = 302;
TipOpe = '+';
(todos os rateios)
CodRat = 0;
SitRes = 302;
TipOpe = '0';
CodRat = 0;
Se(HorSit[302] > 0)
Inicio
SitRes = 301;
SitOpe[1] = 302;
TipOpe = '+';
SitRes = 302;
TipOpe = '0';
Fim;
CodRat = 2;
Se(HorSit[302] > 0)
Inicio
SitRes = 301;
SitOpe[1] = 302;
TipOpe = '+';
SitRes = 302;
TipOpe = '0';
Fim;
CodRat = 0;
SitRes = 8;
SitOpe[1] = 101;
SitOpe[2] = 103;
SitOpe[3] = 105;
TipOpe = '+';
SitRes = 101;
TipOpe = '0';
SitRes = 103;
TipOpe = '0';
SitRes = 105;
TipOpe = '0';
(proporcional as horas rateadas na situação 001)
CodRat = 0;
SitRes = 1;
MinOpe = 40;
TipOpe = '+';
(todos os rateios)
CodRat = 0;
SitRes = 1;
SitOpe[1] = 1;
SitOpe[2] = 101;
TipOpe = '-';
(todos os códigos de rateio)
CodRat = 0;
SitRes = 501;
SitOpe[1] = 1;
SitOpe[2] = 101;
SitOpe[3] = 103;
SitOpe[4] = 105;
TipOpe = '-';
CodRat = 0;
SitRes = 101;
SitOpe[1] = 101;
MinOpe = 30;
TipOpe = '-';
CodRat = 0;
SitRes = 51;
SitOpe[1] = 51;
MinOpe = 2;
TipOpe = '*';
2 no caso de Mensalistas e 3 no caso de Horistas.
Se(RegFun.TipSal = 1)
x1 = 2;
Senao
Se(RegFun.TipSal = 2)
x1 = 3;
CodRat = 0;
SitRes = 51;
SitOpe[1] = 51;
MinOpe = x1;
TipOpe = '*';
(somente para o rateio 3)
CodRat = 3;
SitRes = 301;
SitOpe[1] = 301;
MinOpe = 2;
TipOpe = '/';
Ou seja, multiplicar por 8 e dividir por 7 (é o mesmo que multiplicar por 1.142857).
CodRat = 0;
SitRes = 51;
SitOpe[1] = 51;
MinOpe = 8;
TipOpe = '*';
SitRes = 51;
SitOpe[1] = 51;
MinOpe = 7;
TipOpe = '/';
CodRat = 1;
SitRes = 302;
TipOpe = '0';
CodRat = 0;
SitRes = 101;
TipOpe = '0';
xValSai = 60;
CodRat = 0;
SitRes = 101;
MinOpe = xValSai;
TipOpe = '+';
Primeiramente, a situação deve ser zerada para não somar com outros valores.
xValSai = 60;
xOpHrRateio = HorSit[101] - xValSai;
CodRat = 0;
SitRes = 103;
SitOpe[1] = 1;
MinOpe = xOpHrRateio;
TipOpe = '+';
Quantidade | Situação | Descrição (situação) |
---|---|---|
03:00 | 001 | Trabalhando |
06:00 | 101 | Saída antecipada |
08:00 | 103 | Atraso |
3 + 6 = 9
9 - xValSai = 08 horas na situação 103
Observação:
O sistema vai selecionar os valores da situação 1 para 103, somar na 101 e diminuir xValSai.
CodRat = 0;
SitRes = 103;
TipOpe = '0';
SitRes = 101;
TipOpe = '0';
SitRes = 1;
TipOpe = '0';
CodRat = 0;
SitRes = 103;
SitOpe[1] = 1;
SitOpe[2] = 101;
TipOpe = '+';
CodRat = 0;
SitRes = 103;
SitOpe[1] = 103;
MinOpe = 60;
TipOpe = '-';
Não é possível utilizar duas operações ao mesmo tempo, por isso é necessário separar cada operação.