MyTetra Share
Делитесь знаниями!
Редактирование начислений
Время создания: 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)

Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования