|
|||||||
Редактирование начислений
Время создания: 15.11.2019 17:00
Раздел: INFO - JOB - CUBA - GroovyScripts
Запись: wwwlir/Tetra/master/base/1573808422hdv7lhtkpx/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
import com.groupstp.rtneo.entity.*; import com.haulmont.cuba.core.global.*; import com.groupstp.rtneo.service.*; import java.math.RoundingMode; DataManager dataManager = AppBeans.get(DataManager.NAME); ContractService contractService = AppBeans.get(ContractService.NAME); Calendar calendar = Calendar.getInstance(); calendar.set(2019, 5, 1); Date period=calendar.getTime(); def accruals = dataManager.load(Accrual.class) .query('select a from rtneo$Accrual a where a.contractPosition.id = :id order by a.period') .parameter("id", UUID.fromString("684c2024-9f6e-331e-46ea-e7f481b1f2f8")) .view("accrual-edit") .list(); log.debug(accruals.size()) // Количество расчетных единиц базовый def calculationAmount = 294.8 //Норматив def norm = 1.66 def nds = 1.2 def price = nds.multiply(435.74) def price2 = nds.multiply(464.8) def amount = norm.multiply(calculationAmount).divide(12.0, 5, RoundingMode.HALF_UP) //Если нужно изменить расчетную единицу. Также ее нужно изменить в позиции договора чтобы она в нем отображалась //Unit calculationUnit = dataManager.load(Unit.class).id(UUID.fromString('e22e4be2-5ae2-30ce-29a2-84ed17ddeced')).optional().orElse(null)
CommitContext commitContext = new CommitContext(); def tariff = 0.0 def sum = 0.0 def ndsSum = 0.0 for(Accrual accrual : accruals){ tariff = period.after(accrual.getPeriod())?price:price2 sum = amount.multiply(tariff) ndsSum = sum.subtract(sum.divide(6.0).multiply(5.0))
log.debug("tariff ${tariff}, sum ${sum}, ndsSum ${ndsSum}, amount ${amount}, ")
accrual.setCalculationAmountBase(calculationAmount) accrual.setCalculationAmount(calculationAmount) accrual.setTotalSum(sum) accrual.setSum(sum) accrual.setTotalSumBase(sum) accrual.setPrice(tariff) accrual.setAmount(amount) accrual.setAmountBase(amount) accrual.setNdsSumBase(ndsSum) accrual.setNdsSum(ndsSum) //Если нужно изменить расчетную единицу //accrual.setCalculationUnit(calculationUnit)
commitContext.addInstanceToCommit(accrual, "accrual-edit"); } log.debug(commitContext) dataManager.commit(commitContext) |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|