@senior-gestao-empresarial/erpx-components 4.20.4 → 4.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/senior-gestao-empresarial-erpx-components.umd.js +85 -0
- package/bundles/senior-gestao-empresarial-erpx-components.umd.js.map +1 -1
- package/bundles/senior-gestao-empresarial-erpx-components.umd.min.js +1 -1
- package/bundles/senior-gestao-empresarial-erpx-components.umd.min.js.map +1 -1
- package/components/rateio-editor/erp-rateio-editor.types.d.ts +27 -0
- package/components/rateio-editor/erp-rateio-editor.utils.d.ts +7 -0
- package/components/rateio-editor/index.d.ts +2 -1
- package/esm2015/components/rateio-editor/erp-rateio-editor.types.js +1 -1
- package/esm2015/components/rateio-editor/erp-rateio-editor.utils.js +83 -0
- package/esm2015/components/rateio-editor/index.js +2 -1
- package/esm5/components/rateio-editor/erp-rateio-editor.types.js +1 -1
- package/esm5/components/rateio-editor/erp-rateio-editor.utils.js +85 -0
- package/esm5/components/rateio-editor/index.js +2 -1
- package/fesm2015/senior-gestao-empresarial-erpx-components.js +84 -1
- package/fesm2015/senior-gestao-empresarial-erpx-components.js.map +1 -1
- package/fesm5/senior-gestao-empresarial-erpx-components.js +85 -1
- package/fesm5/senior-gestao-empresarial-erpx-components.js.map +1 -1
- package/package.json +1 -1
- package/senior-gestao-empresarial-erpx-components.metadata.json +1 -1
|
@@ -37611,6 +37611,90 @@
|
|
|
37611
37611
|
return ErpRateioEditorConverter;
|
|
37612
37612
|
}());
|
|
37613
37613
|
|
|
37614
|
+
var CASAS_DECIMAIS_VALOR = 2;
|
|
37615
|
+
/**
|
|
37616
|
+
* Arredonda um valor para o número de casas decimais informado (default: 2).
|
|
37617
|
+
*/
|
|
37618
|
+
function arredondar(valor, casas) {
|
|
37619
|
+
if (casas === void 0) { casas = CASAS_DECIMAIS_VALOR; }
|
|
37620
|
+
return +(valor || 0).toFixed(casas);
|
|
37621
|
+
}
|
|
37622
|
+
/**
|
|
37623
|
+
* Proporcionaliza um valor de acordo com o percentual informado, arredondando para
|
|
37624
|
+
* 2 casas decimais (percentual nulo é tratado como zero).
|
|
37625
|
+
*/
|
|
37626
|
+
function proporcionaliza(valorTotal, percentual) {
|
|
37627
|
+
var percentualSeguro = percentual || 0;
|
|
37628
|
+
return arredondar(valorTotal * (percentualSeguro / 100));
|
|
37629
|
+
}
|
|
37630
|
+
/**
|
|
37631
|
+
* Recalcula o valor de cada centro de custo com base no valor da conta financeira.
|
|
37632
|
+
*/
|
|
37633
|
+
function atualizaValorCentrosCusto(centrosCusto, valorConta) {
|
|
37634
|
+
if (!centrosCusto) {
|
|
37635
|
+
return;
|
|
37636
|
+
}
|
|
37637
|
+
centrosCusto.forEach(function (centroCusto) {
|
|
37638
|
+
centroCusto.valor = proporcionaliza(valorConta, centroCusto.percentual);
|
|
37639
|
+
});
|
|
37640
|
+
}
|
|
37641
|
+
/**
|
|
37642
|
+
* Distribui o valor total entre os centros de custo de acordo com os percentuais,
|
|
37643
|
+
* corrigindo diferenças de arredondamento no último centro.
|
|
37644
|
+
*/
|
|
37645
|
+
function distribuirCentrosCusto(valorTotal, centrosCusto) {
|
|
37646
|
+
if (!centrosCusto || centrosCusto.length === 0) {
|
|
37647
|
+
return centrosCusto;
|
|
37648
|
+
}
|
|
37649
|
+
var valorTotalCentros = 0;
|
|
37650
|
+
var ultimo;
|
|
37651
|
+
var distribuicao = centrosCusto.map(function (centroCusto) {
|
|
37652
|
+
var distribuido = __assign(__assign({}, centroCusto), { valor: proporcionaliza(valorTotal, centroCusto.percentual) });
|
|
37653
|
+
valorTotalCentros += distribuido.valor;
|
|
37654
|
+
ultimo = distribuido;
|
|
37655
|
+
return distribuido;
|
|
37656
|
+
});
|
|
37657
|
+
var diferenca = arredondar(valorTotal - valorTotalCentros);
|
|
37658
|
+
if (ultimo && diferenca !== 0) {
|
|
37659
|
+
ultimo.valor = arredondar(ultimo.valor + diferenca);
|
|
37660
|
+
}
|
|
37661
|
+
return distribuicao;
|
|
37662
|
+
}
|
|
37663
|
+
/**
|
|
37664
|
+
* Constrói uma conta financeira já com o valor proporcionalizado e com os centros de
|
|
37665
|
+
* custo distribuídos.
|
|
37666
|
+
*/
|
|
37667
|
+
function distribuirConta(valorTotal, conta) {
|
|
37668
|
+
var distribuida = __assign(__assign({}, conta), { valor: proporcionaliza(valorTotal, conta.percentual) });
|
|
37669
|
+
distribuida.centrosCusto = distribuirCentrosCusto(distribuida.valor, conta.centrosCusto);
|
|
37670
|
+
return distribuida;
|
|
37671
|
+
}
|
|
37672
|
+
/**
|
|
37673
|
+
* Distribui o valor total entre as contas financeiras de acordo com os percentuais,
|
|
37674
|
+
* corrigindo diferenças de arredondamento na última conta e cascateando o recálculo
|
|
37675
|
+
* para os centros de custo.
|
|
37676
|
+
*/
|
|
37677
|
+
function atualizaValoresRateioManual(rateiosContasFinanceiras, valorTotal) {
|
|
37678
|
+
if (!rateiosContasFinanceiras || rateiosContasFinanceiras.length === 0) {
|
|
37679
|
+
return rateiosContasFinanceiras;
|
|
37680
|
+
}
|
|
37681
|
+
var valorTotalContasFinanceiras = 0;
|
|
37682
|
+
var ultima;
|
|
37683
|
+
var distribuicaoRateioFinal = rateiosContasFinanceiras.map(function (rateioContaFinanceira) {
|
|
37684
|
+
var distribuicao = distribuirConta(valorTotal, rateioContaFinanceira);
|
|
37685
|
+
valorTotalContasFinanceiras += distribuicao.valor;
|
|
37686
|
+
ultima = distribuicao;
|
|
37687
|
+
return distribuicao;
|
|
37688
|
+
});
|
|
37689
|
+
var diferencaValores = arredondar(valorTotal - valorTotalContasFinanceiras);
|
|
37690
|
+
// Corrige diferença de percentual e arredondamentos para a última conta financeira
|
|
37691
|
+
if (ultima && diferencaValores !== 0) {
|
|
37692
|
+
ultima.valor = arredondar(ultima.valor + diferencaValores);
|
|
37693
|
+
atualizaValorCentrosCusto(ultima.centrosCusto, ultima.valor);
|
|
37694
|
+
}
|
|
37695
|
+
return distribuicaoRateioFinal;
|
|
37696
|
+
}
|
|
37697
|
+
|
|
37614
37698
|
var fallback = {
|
|
37615
37699
|
"erpx.tributos.badge_tipo_calculo_imposto_info_sign_text_calculado": "Valor calculado pelo sistema conforme regras fiscais",
|
|
37616
37700
|
"erpx.tributos.badge_tipo_calculo_imposto_info_sign_text_herdado": "Valor gerado por um processo de origem",
|
|
@@ -37679,6 +37763,7 @@
|
|
|
37679
37763
|
exports.ErpTributosComponent = ErpTributosComponent;
|
|
37680
37764
|
exports.ErpTributosModule = ErpTributosModule;
|
|
37681
37765
|
exports.ExportUtils = ExportUtils;
|
|
37766
|
+
exports.atualizaValoresRateioManual = atualizaValoresRateioManual;
|
|
37682
37767
|
exports.fallback = fallback;
|
|
37683
37768
|
exports.isEmpty = isEmpty;
|
|
37684
37769
|
exports.isNotEmpty = isNotEmpty;
|