in service/src/main/java/org/apache/fineract/cn/office/internal/command/handler/OfficeAggregate.java [226:257]
private void createOffice(final Office office, final Office parentOffice) {
if (this.officeRepository.existsByIdentifier(office.getIdentifier())) {
this.logger.info("Office {} already exists.", office.getIdentifier());
throw ServiceException.conflict("Office {0} already exists.", office.getIdentifier());
}
final String modificationUser = UserContextHolder.checkedGetUser();
final Date modificationDate = Utils.utcNow();
final OfficeEntity officeEntity = OfficeMapper.map(office);
if (parentOffice != null) {
final Optional<OfficeEntity> optionalParentOfficeEntity = this.officeRepository.findByIdentifier(parentOffice.getIdentifier());
if (optionalParentOfficeEntity.isPresent()) {
final OfficeEntity parentOfficeEntity = optionalParentOfficeEntity.get();
officeEntity.setParentOfficeId(parentOfficeEntity.getId());
parentOfficeEntity.setLastModifiedBy(modificationUser);
parentOfficeEntity.setLastModifiedOn(modificationDate);
this.officeRepository.save(parentOfficeEntity);
}
}
officeEntity.setCreatedBy(modificationUser);
officeEntity.setCreatedOn(modificationDate);
final OfficeEntity savedOfficeEntity = this.officeRepository.save(officeEntity);
if (office.getAddress() != null) {
final AddressEntity addressEntity = AddressMapper.map(office.getAddress());
addressEntity.setOffice(savedOfficeEntity);
this.addressRepository.save(addressEntity);
}
}