MyTetra Share
Делитесь знаниями!
Скрипт переноса арендаторов(Простой)
Время создания: 03.02.2020 15:37
Раздел: INFO - JOB - rtneo - Работа над задачами - Управление
Запись: wwwlir/Tetra/master/base/1580715432zoe2yqe6p2/text.html на raw.githubusercontent.com

import com.groupstp.rtneo.entity.*

import com.haulmont.cuba.core.global.*

import org.apache.commons.collections4.*;


//ID объекта недвижимости

String creOwnerId = "25b56190-9876-12a4-21f4-48ab68b5b38e"

//ЛС управляшки

String pa = "ААА3810320910"

/**

*

*/

CommitContext ctx = new CommitContext()


ContragentRealEstate creOwner = dataManager.load(ContragentRealEstate.class)

.id(UUID.fromString(creOwnerId)).view("contragentRealEstate-calc").one()

RealEstateRenter reRenterOwner = null



Contragent manager = dataManager.load(Contragent.class)

.query('select c from rtneo$Contragent c where c.personalAccount = :pa').parameter("pa", pa).view("contragent-create-contract").optional().orElse(null);

ContragentRealEstate creManager = null


if(creOwner == null || manager == null)return


log.debug("OK")


reRenterOwner = createRERenter(manager, creOwner, ctx)

log.debug(reRenterOwner)


ctx.addInstanceToCommit(reRenterOwner)


dataManager.commit(ctx)

ctx.getCommitInstances().clear()


//Получаем всех арендаторов владельца(кроме управлчшки)

List<RealEstateRenter> listRR = dataManager.load(RealEstateRenter)

.query('select r from rtneo$RealEstateRenter r where r.contragentRealEstate.id = :id and not r.id = :upr')

.parameter("id", creOwner.getId())

.parameter("upr", reRenterOwner.getId())

.view("realEstateRenter-edit")

.list();


creManager = reRenterOwner.getRenterRecord()


for(def item : listRR){

item.setContragentRealEstate(creManager)

item.setPayOwner(true)

log.debug(item)

ctx.addInstanceToCommit(item)

}


dataManager.commit(ctx)


log.debug("_____________________")


/**

*

*

*

*

*

*/

private RealEstateRenter createRERenter(Contragent manager, ContragentRealEstate cre, CommitContext ctx){


RealEstateRenter renter = findRenter(cre);

if (renter != null) {

log.debug("Renter creOwner not is null!!!")

return;

}

BigDecimal area = BigDecimal.ZERO;

// area = cre.getCalculationAmount()

if(cre.getShare() != null){

area = cre.getRealEstate().getArea()*cre.getShare()

}else{

area = cre.getRealEstate().getArea()

}

List<ContragentRealEstate> realEstates = manager.getRealEstates();

//Проверяем что у управляшки еще нет этого объекта

// ContragentRealEstate contragentRealEstate = CollectionUtils.isEmpty(realEstates) ? null : realEstates.stream()

// .filter({e -> Objects.equals(e.getRealEstate(), cre.getRealEstate())})

// .findFirst()

// .orElse(null);

// if (contragentRealEstate == null) {

contragentRealEstate = dataManager.create(ContragentRealEstate.class);

contragentRealEstate.setContragent(manager);

// contragentRealEstate.setShare(BigDecimal.ONE);

contragentRealEstate.setShare(cre.getShare());

contragentRealEstate.setRealEstate(cre.getRealEstate());

contragentRealEstate.setCategory(cre.getCategory());

contragentRealEstate.setType(cre.getType());

// contragentRealEstate.setCalculationAmount(getCalculationAmount(cre));

contragentRealEstate.setCalculationAmount(area);

contragentRealEstate.setAreaInRent(area)

contragentRealEstate.setOwnType(TypeOwnership.MANAGEMENT)

contragentRealEstate.setLandlord(cre.getContragent())

ctx.addInstanceToCommit(contragentRealEstate)

// }else{

// log.debug("У управляшки уже существует этот объект")

// return

// }

renter = dataManager.create(RealEstateRenter.class);

// renter = em.merge(renter);

renter.setContragentRealEstate(cre);

renter.setContragent(manager);

// renter.setAreaInRent(cre.getAreaInRent());

//Нужно брать из объекта недвижимости, умножая на долю

renter.setAreaInRent(area);

renter.setCategory(cre.getCategory());

// renter.setContractFile(cre.getRentContract().getFile());

renter.setRenterRecord(contragentRealEstate);

ctx.addInstanceToCommit(renter)

// dataManager.commit(ctx)

return renter;

}

private RealEstateRenter findRenter(ContragentRealEstate cre) {

RealEstateRenter rr = dataManager.load(RealEstateRenter.class)

.query('select e from rtneo$RealEstateRenter e where e.renterRecord.id =:id')

.parameter("id", cre.getId())

.view("_local")

.optional()

.orElse(null);

return rr;

}

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