Merge pull request 'fixes bug#AL-4128' (!187) from AL-4128 into master
Reviewed-on: adm/ModelWeb#187 Reviewed-by: Gleison da Cruz <gleison.cruz@totvs.com.br>master
commit
8c864b939b
2
pom.xml
2
pom.xml
|
@ -3,7 +3,7 @@
|
|||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>br.com.rjconsultores</groupId>
|
||||
<artifactId>ModelWeb</artifactId>
|
||||
<version>1.58.0</version>
|
||||
<version>1.58.1</version>
|
||||
|
||||
<distributionManagement>
|
||||
<repository>
|
||||
|
|
|
@ -16,6 +16,8 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.persistence.criteria.CriteriaBuilder.Case;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
@ -443,11 +445,30 @@ public class CalcularPeajeHibernateDAO extends GenericHibernateDAO<String, Strin
|
|||
}
|
||||
}
|
||||
|
||||
private static BigDecimal calculateImportePeajeAGER(BigDecimal km, OrgaoConcedente orgao) {
|
||||
private static BigDecimal calculateImportePeajeAGER(BigDecimal km, OrgaoConcedente orgao, BigDecimal importe,
|
||||
BigDecimal rutaCantEixos, BigDecimal rutaCantAsientos) {
|
||||
BigDecimal indicePejeOrgao = orgao!=null && orgao.getIndicePeaje() !=null ? orgao.getIndicePeaje() : new BigDecimal(INDICE_ORIGINAL_AGER_MT);
|
||||
return km.multiply(indicePejeOrgao).setScale(HIGH_PRECISION, RoundingMode.HALF_UP); // esse valor deveria vir do indice do orgao mas as casas decimais nao sao compativeis.. verificar se pode mudar a precisao do campo de indice..
|
||||
// esse valor deveria vir do indice do orgao mas as casas decimais nao sao compativeis.. verificar se pode mudar a precisao do campo de indice..
|
||||
return validaValorMaxPedagioAGR(km.multiply(indicePejeOrgao).setScale(HIGH_PRECISION, RoundingMode.HALF_UP),
|
||||
indicePejeOrgao, importe, rutaCantEixos, rutaCantAsientos ); }
|
||||
|
||||
/* -- RESOLUÇÃO NORMATIVA AGER/MT N.º 002/2023 --
|
||||
* O cálculo do valor a ser repassado ao passageiro não poderá ser superior ao
|
||||
* valor obtido mediante a aplicação da seguinte fórmula:
|
||||
* 𝐕𝐀𝐏 = ∑𝐕𝐏 𝐱 𝐧º𝐄 / 𝐋𝐎𝐓 𝐱 𝐈𝐀𝐏
|
||||
* VAP - Valor a ser pago por passageiro
|
||||
* ∑VP – Somatória do valor de pedágio no trecho percorrido pelo passageiro para 01 eixo simples
|
||||
* NºE – Número de Eixos
|
||||
* LOT - Lotação total do veículo padrão - 46 lugares (Edital de Licitação STCRIP)
|
||||
* IAP - Índice de Aproveitamento previsto na planilha tarifária - 60% (Edital de Licitação STCRIP)
|
||||
* */
|
||||
private static BigDecimal validaValorMaxPedagioAGR(BigDecimal pedagio, BigDecimal indicePejeOrgao, BigDecimal importe,
|
||||
BigDecimal rutaCantEixos, BigDecimal rutaCantAsientos) {
|
||||
BigDecimal valorCalculado = importe.multiply(rutaCantEixos)
|
||||
.divide(indicePejeOrgao.multiply(rutaCantAsientos),HIGH_PRECISION, RoundingMode.HALF_UP);
|
||||
return valorCalculado.min(pedagio);
|
||||
}
|
||||
|
||||
|
||||
// ((importe * rutaCantEixos) / (indice)) / ( 1 - icms)
|
||||
private static BigDecimal calculateImportePeajeARTESP(BigDecimal importe, BigDecimal icms,
|
||||
BigDecimal indice, BigDecimal rutaCantEixos, boolean usaICMS) {
|
||||
|
@ -475,7 +496,7 @@ public class CalcularPeajeHibernateDAO extends GenericHibernateDAO<String, Strin
|
|||
return calculateImportePeajeANTT(importe, icms, indice, rutaCantEixos, getRutaCantAsientos(ruta), usaICMS);
|
||||
}
|
||||
if (Constantes.ORGAOS_CONCEDENTES_CALCULO_AGER.contains(orgao.getOrgaoConcedenteId())) {
|
||||
return calculateImportePeajeAGER(km, orgao);
|
||||
return calculateImportePeajeAGER(km, orgao, importe, rutaCantEixos, getRutaCantAsientos(ruta));
|
||||
}
|
||||
|
||||
return BigDecimal.ZERO; // TODO throw an exception? como calcular quando é outro orgao concendente?
|
||||
|
|
Loading…
Reference in New Issue