add maintenance tasks for accounting entries
This commit is contained in:
parent
3d4d8a7bc1
commit
728f022a16
|
@ -158,6 +158,15 @@ public class AuditableAction {
|
|||
public static final EventId Maintenance_SendTenantTouchEvents = new EventId(230002, "Maintenance_SendTenantTouchEvents");
|
||||
public static final EventId Maintenance_SendPlanTouchEvents = new EventId(230003, "Maintenance_SendPlanTouchEvents");
|
||||
public static final EventId Maintenance_SendDescriptionTouchEvents = new EventId(230004, "Maintenance_SendDescriptionTouchEvents");
|
||||
public static final EventId Maintenance_SendPlanAccountingEntriesEvents = new EventId(230005, "Maintenance_SendPlanAccountingEntriesEvents");
|
||||
public static final EventId Maintenance_SendBlueprintAccountingEntriesEvents = new EventId(230006, "Maintenance_SendBlueprintAccountingEntriesEvents");
|
||||
public static final EventId Maintenance_SendDescriptionAccountingEntriesEvents = new EventId(230007, "Maintenance_SendDescriptionAccountingEntriesEvents");
|
||||
public static final EventId Maintenance_SendDescriptionTemplateAccountingEntriesEvents = new EventId(230008, "Maintenance_SendDescriptionTemplateAccountingEntriesEvents");
|
||||
public static final EventId Maintenance_SendDescriptionTemplateTypeAccountingEntriesEvents = new EventId(230009, "Maintenance_SendDescriptionTemplateTypeAccountingEntriesEvents");
|
||||
public static final EventId Maintenance_SendPrefillingSourceAccountingEntriesEvents = new EventId(230010, "Maintenance_SendPrefillingSourceAccountingEntriesEvents");
|
||||
public static final EventId Maintenance_SendReferenceTypeAccountingEntriesEvents = new EventId(230011, "Maintenance_SendReferenceTypeAccountingEntriesEvents");
|
||||
public static final EventId Maintenance_SendUserAccountingEntriesEvents = new EventId(230012, "Maintenance_SendUserAccountingEntriesEvents");
|
||||
|
||||
|
||||
public static final EventId Principal_Lookup = new EventId(240000, "Principal_Lookup");
|
||||
public static final EventId Principal_MyTenants = new EventId(240001, "Principal_MyTenants");
|
||||
|
|
|
@ -3,8 +3,9 @@ package org.opencdmp.integrationevent.outbox.accountingentrycreated;
|
|||
import org.opencdmp.commons.enums.accounting.AccountingValueType;
|
||||
|
||||
import javax.management.InvalidApplicationException;
|
||||
import java.util.UUID;
|
||||
|
||||
public interface AccountingEntryCreatedIntegrationEventHandler {
|
||||
|
||||
void handleAccountingEntry(String metric, AccountingValueType valueType) throws InvalidApplicationException;
|
||||
void handleAccountingEntry(String metric, AccountingValueType valueType, String subjectId, UUID tenantId) throws InvalidApplicationException;
|
||||
}
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
package org.opencdmp.integrationevent.outbox.accountingentrycreated;
|
||||
|
||||
import gr.cite.tools.data.query.QueryFactory;
|
||||
import gr.cite.tools.logging.LoggerService;
|
||||
import org.opencdmp.commons.enums.accounting.AccountingMeasureType;
|
||||
import org.opencdmp.commons.enums.accounting.AccountingValueType;
|
||||
import org.opencdmp.commons.scope.tenant.TenantScope;
|
||||
import org.opencdmp.integrationevent.outbox.OutboxIntegrationEvent;
|
||||
import org.opencdmp.integrationevent.outbox.OutboxService;
|
||||
import org.opencdmp.service.accounting.AccountingProperties;
|
||||
|
@ -25,16 +23,10 @@ public class AccountingEntryCreatedIntegrationEventHandlerImpl implements Accoun
|
|||
|
||||
private final OutboxService outboxService;
|
||||
|
||||
private final QueryFactory queryFactory;
|
||||
|
||||
private final TenantScope tenantScope;
|
||||
|
||||
private final AccountingProperties accountingProperties;
|
||||
|
||||
public AccountingEntryCreatedIntegrationEventHandlerImpl(OutboxService outboxService, QueryFactory queryFactory, TenantScope tenantScope, TenantScope tenantScope1, AccountingProperties accountingProperties) {
|
||||
public AccountingEntryCreatedIntegrationEventHandlerImpl(OutboxService outboxService, AccountingProperties accountingProperties) {
|
||||
this.outboxService = outboxService;
|
||||
this.queryFactory = queryFactory;
|
||||
this.tenantScope = tenantScope1;
|
||||
this.accountingProperties = accountingProperties;
|
||||
}
|
||||
|
||||
|
@ -47,7 +39,7 @@ public class AccountingEntryCreatedIntegrationEventHandlerImpl implements Accoun
|
|||
}
|
||||
|
||||
@Override
|
||||
public void handleAccountingEntry(String metric, AccountingValueType valueType) throws InvalidApplicationException {
|
||||
public void handleAccountingEntry(String metric, AccountingValueType valueType, String subjectId, UUID tenantId) throws InvalidApplicationException {
|
||||
AccountingEntryCreatedIntegrationEvent event = new AccountingEntryCreatedIntegrationEvent();
|
||||
event.setTimeStamp(Instant.now());
|
||||
event.setServiceId(accountingProperties.getServiceId());
|
||||
|
@ -55,9 +47,9 @@ public class AccountingEntryCreatedIntegrationEventHandlerImpl implements Accoun
|
|||
event.setMeasure(AccountingMeasureType.Unit);
|
||||
event.setType(valueType);
|
||||
event.setResource(metric);
|
||||
if (this.tenantScope.getTenantCode() != null && !this.tenantScope.getTenantCode().equals(this.tenantScope.getDefaultTenantCode())){
|
||||
event.setTenant(this.tenantScope.getTenant());
|
||||
}
|
||||
event.setUserId(subjectId);
|
||||
event.setValue(1.0);
|
||||
event.setTenant(tenantId);
|
||||
|
||||
this.handle(event);
|
||||
}
|
||||
|
|
|
@ -8,6 +8,8 @@ public class AccountingProperties {
|
|||
|
||||
private String action;
|
||||
|
||||
private String subjectId;
|
||||
|
||||
public String getServiceId() {
|
||||
return serviceId;
|
||||
}
|
||||
|
@ -23,4 +25,12 @@ public class AccountingProperties {
|
|||
public void setAction(String action) {
|
||||
this.action = action;
|
||||
}
|
||||
|
||||
public String getSubjectId() {
|
||||
return subjectId;
|
||||
}
|
||||
|
||||
public void setSubjectId(String subjectId) {
|
||||
this.subjectId = subjectId;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,15 +1,16 @@
|
|||
package org.opencdmp.service.accounting;
|
||||
|
||||
import gr.cite.commons.web.authz.service.AuthorizationService;
|
||||
import gr.cite.tools.data.query.QueryFactory;
|
||||
import gr.cite.tools.logging.LoggerService;
|
||||
import org.opencdmp.commons.enums.UsageLimitTargetMetric;
|
||||
import org.opencdmp.commons.enums.accounting.AccountingValueType;
|
||||
import org.opencdmp.convention.ConventionService;
|
||||
import org.opencdmp.errorcode.ErrorThesaurusProperties;
|
||||
import org.opencdmp.commons.scope.tenant.TenantScope;
|
||||
import org.opencdmp.commons.scope.user.UserScope;
|
||||
import org.opencdmp.data.UserCredentialEntity;
|
||||
import org.opencdmp.integrationevent.outbox.accountingentrycreated.AccountingEntryCreatedIntegrationEventHandler;
|
||||
import org.opencdmp.query.UserCredentialQuery;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.MessageSource;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.management.InvalidApplicationException;
|
||||
|
@ -18,27 +19,18 @@ import javax.management.InvalidApplicationException;
|
|||
public class AccountingServiceImpl implements AccountingService {
|
||||
|
||||
private static final LoggerService logger = new LoggerService(LoggerFactory.getLogger(AccountingServiceImpl.class));
|
||||
private final AuthorizationService authorizationService;
|
||||
private final ConventionService conventionService;
|
||||
|
||||
private final ErrorThesaurusProperties errors;
|
||||
|
||||
private final MessageSource messageSource;
|
||||
|
||||
private final QueryFactory queryFactory;
|
||||
private final AccountingEntryCreatedIntegrationEventHandler accountingEntryCreatedIntegrationEventHandler;
|
||||
private final UserScope userScope;
|
||||
private final TenantScope tenantScope;
|
||||
|
||||
@Autowired
|
||||
public AccountingServiceImpl(
|
||||
AuthorizationService authorizationService,
|
||||
ConventionService conventionService,
|
||||
ErrorThesaurusProperties errors,
|
||||
MessageSource messageSource,
|
||||
AccountingEntryCreatedIntegrationEventHandler accountingEntryCreatedIntegrationEventHandler) {
|
||||
this.authorizationService = authorizationService;
|
||||
this.conventionService = conventionService;
|
||||
this.errors = errors;
|
||||
this.messageSource = messageSource;
|
||||
QueryFactory queryFactory, AccountingEntryCreatedIntegrationEventHandler accountingEntryCreatedIntegrationEventHandler, UserScope userScope, TenantScope tenantScope) {
|
||||
this.queryFactory = queryFactory;
|
||||
this.accountingEntryCreatedIntegrationEventHandler = accountingEntryCreatedIntegrationEventHandler;
|
||||
this.userScope = userScope;
|
||||
this.tenantScope = tenantScope;
|
||||
}
|
||||
|
||||
public Integer getCurrentMetricValue(UsageLimitTargetMetric metric) {
|
||||
|
@ -52,11 +44,23 @@ public class AccountingServiceImpl implements AccountingService {
|
|||
}
|
||||
|
||||
public void increase(String metric) throws InvalidApplicationException {
|
||||
this.accountingEntryCreatedIntegrationEventHandler.handleAccountingEntry(metric, AccountingValueType.Plus);
|
||||
String subjectId;
|
||||
|
||||
UserCredentialEntity userCredential = this.queryFactory.query(UserCredentialQuery.class).disableTracking().userIds(this.userScope.getUserId()).first();
|
||||
if (userCredential != null) subjectId = userCredential.getExternalId();
|
||||
else subjectId = this.userScope.getUserId().toString();
|
||||
|
||||
this.accountingEntryCreatedIntegrationEventHandler.handleAccountingEntry(metric, AccountingValueType.Plus, subjectId, this.tenantScope.getTenant());
|
||||
}
|
||||
|
||||
public void decrease(String metric) throws InvalidApplicationException {
|
||||
this.accountingEntryCreatedIntegrationEventHandler.handleAccountingEntry(metric, AccountingValueType.Minus);
|
||||
String subjectId;
|
||||
|
||||
UserCredentialEntity userCredential = this.queryFactory.query(UserCredentialQuery.class).disableTracking().userIds(this.userScope.getUserId()).first();
|
||||
if (userCredential != null) subjectId = userCredential.getExternalId();
|
||||
else subjectId = this.userScope.getUserId().toString();
|
||||
|
||||
this.accountingEntryCreatedIntegrationEventHandler.handleAccountingEntry(metric, AccountingValueType.Minus, subjectId, this.tenantScope.getTenant());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -12,4 +12,21 @@ public interface MaintenanceService {
|
|||
void sendPlanTouchEvents() throws InvalidApplicationException;
|
||||
|
||||
void sendDescriptionTouchEvents() throws InvalidApplicationException;
|
||||
|
||||
void sendPlanAccountingEntriesEvents() throws InvalidApplicationException;
|
||||
|
||||
void sendBlueprintAccountingEntriesEvents() throws InvalidApplicationException;
|
||||
|
||||
void sendDescriptionAccountingEntriesEvents() throws InvalidApplicationException;
|
||||
|
||||
void sendDescriptionTemplateAccountingEntriesEvents() throws InvalidApplicationException;
|
||||
|
||||
void sendDescriptionTemplateTypeAccountingEntriesEvents() throws InvalidApplicationException;
|
||||
|
||||
void sendPrefillingSourceAccountingEntriesEvents() throws InvalidApplicationException;
|
||||
|
||||
void sendReferenceTypeAccountingEntriesEvents() throws InvalidApplicationException;
|
||||
|
||||
void sendUserAccountingEntriesEvents() throws InvalidApplicationException;
|
||||
|
||||
}
|
||||
|
|
|
@ -6,8 +6,11 @@ import gr.cite.tools.fieldset.BaseFieldSet;
|
|||
import gr.cite.tools.logging.LoggerService;
|
||||
import org.opencdmp.authorization.Permission;
|
||||
import org.opencdmp.commons.enums.IsActive;
|
||||
import org.opencdmp.commons.enums.UsageLimitTargetMetric;
|
||||
import org.opencdmp.commons.enums.accounting.AccountingValueType;
|
||||
import org.opencdmp.commons.scope.tenant.TenantScope;
|
||||
import org.opencdmp.data.*;
|
||||
import org.opencdmp.integrationevent.outbox.accountingentrycreated.AccountingEntryCreatedIntegrationEventHandler;
|
||||
import org.opencdmp.integrationevent.outbox.annotationentityremoval.AnnotationEntityRemovalIntegrationEventHandler;
|
||||
import org.opencdmp.integrationevent.outbox.annotationentitytouch.AnnotationEntityTouchedIntegrationEventHandler;
|
||||
import org.opencdmp.integrationevent.outbox.tenantremoval.TenantRemovalIntegrationEventHandler;
|
||||
|
@ -15,25 +18,31 @@ import org.opencdmp.integrationevent.outbox.tenanttouched.TenantTouchedIntegrati
|
|||
import org.opencdmp.integrationevent.outbox.tenanttouched.TenantTouchedIntegrationEventHandler;
|
||||
import org.opencdmp.integrationevent.outbox.userremoval.UserRemovalIntegrationEventHandler;
|
||||
import org.opencdmp.integrationevent.outbox.usertouched.UserTouchedIntegrationEventHandler;
|
||||
import org.opencdmp.model.DescriptionTemplateType;
|
||||
import org.opencdmp.model.Tenant;
|
||||
import org.opencdmp.model.description.Description;
|
||||
import org.opencdmp.model.descriptiontemplate.DescriptionTemplate;
|
||||
import org.opencdmp.model.plan.Plan;
|
||||
import org.opencdmp.model.planblueprint.PlanBlueprint;
|
||||
import org.opencdmp.model.prefillingsource.PrefillingSource;
|
||||
import org.opencdmp.model.referencetype.ReferenceType;
|
||||
import org.opencdmp.model.user.User;
|
||||
import org.opencdmp.query.DescriptionQuery;
|
||||
import org.opencdmp.query.PlanQuery;
|
||||
import org.opencdmp.query.TenantQuery;
|
||||
import org.opencdmp.query.UserQuery;
|
||||
import org.opencdmp.query.*;
|
||||
import org.opencdmp.service.accounting.AccountingProperties;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.management.InvalidApplicationException;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
public class MaintenanceServiceImpl implements MaintenanceService {
|
||||
|
||||
private static final LoggerService logger = new LoggerService(LoggerFactory.getLogger(MaintenanceServiceImpl.class));
|
||||
private static final Logger log = LoggerFactory.getLogger(MaintenanceServiceImpl.class);
|
||||
private final TenantEntityManager entityManager;
|
||||
private final AuthorizationService authorizationService;
|
||||
private final QueryFactory queryFactory;
|
||||
|
@ -47,12 +56,14 @@ public class MaintenanceServiceImpl implements MaintenanceService {
|
|||
private final TenantRemovalIntegrationEventHandler tenantRemovalIntegrationEventHandler;
|
||||
private final AnnotationEntityRemovalIntegrationEventHandler annotationEntityRemovalIntegrationEventHandler;
|
||||
private final AnnotationEntityTouchedIntegrationEventHandler annotationEntityTouchedIntegrationEventHandler;
|
||||
private final AccountingEntryCreatedIntegrationEventHandler accountingEntryCreatedIntegrationEventHandler;
|
||||
private final TenantScope tenantScope;
|
||||
|
||||
private final TenantEntityManager tenantEntityManager;
|
||||
private final AccountingProperties accountingProperties;
|
||||
|
||||
public MaintenanceServiceImpl(
|
||||
TenantEntityManager entityManager, AuthorizationService authorizationService,
|
||||
QueryFactory queryFactory, UserTouchedIntegrationEventHandler userTouchedIntegrationEventHandler, UserRemovalIntegrationEventHandler userRemovalIntegrationEventHandler, TenantTouchedIntegrationEventHandler tenantTouchedIntegrationEventHandler, TenantRemovalIntegrationEventHandler tenantRemovalIntegrationEventHandler, AnnotationEntityRemovalIntegrationEventHandler annotationEntityRemovalIntegrationEventHandler, AnnotationEntityTouchedIntegrationEventHandler annotationEntityTouchedIntegrationEventHandler, TenantScope tenantScope) {
|
||||
QueryFactory queryFactory, UserTouchedIntegrationEventHandler userTouchedIntegrationEventHandler, UserRemovalIntegrationEventHandler userRemovalIntegrationEventHandler, TenantTouchedIntegrationEventHandler tenantTouchedIntegrationEventHandler, TenantRemovalIntegrationEventHandler tenantRemovalIntegrationEventHandler, AnnotationEntityRemovalIntegrationEventHandler annotationEntityRemovalIntegrationEventHandler, AnnotationEntityTouchedIntegrationEventHandler annotationEntityTouchedIntegrationEventHandler, AccountingEntryCreatedIntegrationEventHandler accountingEntryCreatedIntegrationEventHandler, TenantScope tenantScope, TenantEntityManager tenantEntityManager, AccountingProperties accountingProperties) {
|
||||
this.entityManager = entityManager;
|
||||
this.authorizationService = authorizationService;
|
||||
this.queryFactory = queryFactory;
|
||||
|
@ -62,7 +73,10 @@ public class MaintenanceServiceImpl implements MaintenanceService {
|
|||
this.tenantRemovalIntegrationEventHandler = tenantRemovalIntegrationEventHandler;
|
||||
this.annotationEntityRemovalIntegrationEventHandler = annotationEntityRemovalIntegrationEventHandler;
|
||||
this.annotationEntityTouchedIntegrationEventHandler = annotationEntityTouchedIntegrationEventHandler;
|
||||
this.accountingEntryCreatedIntegrationEventHandler = accountingEntryCreatedIntegrationEventHandler;
|
||||
this.tenantScope = tenantScope;
|
||||
this.tenantEntityManager = tenantEntityManager;
|
||||
this.accountingProperties = accountingProperties;
|
||||
}
|
||||
|
||||
|
||||
|
@ -191,4 +205,180 @@ public class MaintenanceServiceImpl implements MaintenanceService {
|
|||
}
|
||||
return tenants;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendPlanAccountingEntriesEvents() throws InvalidApplicationException {
|
||||
logger.debug("send plan accounting entries queue events");
|
||||
this.authorizationService.authorizeForce(Permission.ManageQueueEvents);
|
||||
|
||||
try {
|
||||
this.tenantEntityManager.disableTenantFilters();
|
||||
List<PlanEntity> items = this.queryFactory.query(PlanQuery.class).disableTracking().collectAs(new BaseFieldSet().ensure(Plan._id).ensure(Plan._isActive).ensure(Plan._creator));
|
||||
List<UserCredentialEntity> userCredentials = this.queryFactory.query(UserCredentialQuery.class).disableTracking().userIds(items.stream().map(x -> x.getCreatorId()).distinct().collect(Collectors.toList())).collect();
|
||||
|
||||
for (PlanEntity item : items) {
|
||||
String subjectId;
|
||||
if (userCredentials != null) {
|
||||
UserCredentialEntity userCredential = userCredentials.stream().filter(x -> x.getUserId().equals(item.getCreatorId())).findFirst().orElse(null);
|
||||
if (userCredential != null) subjectId = userCredential.getExternalId();
|
||||
else subjectId = item.getCreatorId().toString();
|
||||
} else {
|
||||
subjectId = item.getCreatorId().toString();
|
||||
}
|
||||
if (item.getIsActive().equals(IsActive.Active)) this.accountingEntryCreatedIntegrationEventHandler.handleAccountingEntry(UsageLimitTargetMetric.PLAN_COUNT.getValue(), AccountingValueType.Plus, subjectId, item.getTenantId());
|
||||
else this.accountingEntryCreatedIntegrationEventHandler.handleAccountingEntry(UsageLimitTargetMetric.PLAN_COUNT.getValue(), AccountingValueType.Minus, subjectId, item.getTenantId());
|
||||
}
|
||||
} finally {
|
||||
this.tenantEntityManager.reloadTenantFilters();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendBlueprintAccountingEntriesEvents() throws InvalidApplicationException {
|
||||
logger.debug("send plan blueprint accounting entries queue events");
|
||||
this.authorizationService.authorizeForce(Permission.ManageQueueEvents);
|
||||
|
||||
try {
|
||||
this.tenantEntityManager.disableTenantFilters();
|
||||
List<PlanBlueprintEntity> items = this.queryFactory.query(PlanBlueprintQuery.class).disableTracking().collectAs(new BaseFieldSet().ensure(PlanBlueprint._id).ensure(PlanBlueprint._isActive));
|
||||
|
||||
for (PlanBlueprintEntity item : items) {
|
||||
String subjectId = accountingProperties.getSubjectId();
|
||||
if (item.getIsActive().equals(IsActive.Active)) this.accountingEntryCreatedIntegrationEventHandler.handleAccountingEntry(UsageLimitTargetMetric.BLUEPRINT_COUNT.getValue(), AccountingValueType.Plus, subjectId, item.getTenantId());
|
||||
else this.accountingEntryCreatedIntegrationEventHandler.handleAccountingEntry(UsageLimitTargetMetric.BLUEPRINT_COUNT.getValue(), AccountingValueType.Minus, subjectId, item.getTenantId());
|
||||
}
|
||||
} finally {
|
||||
this.tenantEntityManager.reloadTenantFilters();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendDescriptionAccountingEntriesEvents() throws InvalidApplicationException {
|
||||
logger.debug("send descriptions entries queue events");
|
||||
this.authorizationService.authorizeForce(Permission.ManageQueueEvents);
|
||||
|
||||
try {
|
||||
this.tenantEntityManager.disableTenantFilters();
|
||||
List<DescriptionEntity> items = this.queryFactory.query(DescriptionQuery.class).disableTracking().collectAs(new BaseFieldSet().ensure(Description._id).ensure(Description._isActive).ensure(Description._createdBy));
|
||||
List<UserCredentialEntity> userCredentials = this.queryFactory.query(UserCredentialQuery.class).disableTracking().userIds(items.stream().map(x -> x.getCreatedById()).distinct().collect(Collectors.toList())).collect();
|
||||
|
||||
for (DescriptionEntity item : items) {
|
||||
String subjectId;
|
||||
if (userCredentials != null) {
|
||||
UserCredentialEntity userCredential = userCredentials.stream().filter(x -> x.getUserId().equals(item.getCreatedById())).findFirst().orElse(null);
|
||||
if (userCredential != null) subjectId = userCredential.getExternalId();
|
||||
else subjectId = item.getCreatedById().toString();
|
||||
} else {
|
||||
subjectId = item.getCreatedById().toString();
|
||||
}
|
||||
if (item.getIsActive().equals(IsActive.Active)) this.accountingEntryCreatedIntegrationEventHandler.handleAccountingEntry(UsageLimitTargetMetric.DESCRIPTION_COUNT.getValue(), AccountingValueType.Plus, subjectId, item.getTenantId());
|
||||
else this.accountingEntryCreatedIntegrationEventHandler.handleAccountingEntry(UsageLimitTargetMetric.DESCRIPTION_COUNT.getValue(), AccountingValueType.Minus, subjectId, item.getTenantId());
|
||||
}
|
||||
} finally {
|
||||
this.tenantEntityManager.reloadTenantFilters();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendDescriptionTemplateAccountingEntriesEvents() throws InvalidApplicationException {
|
||||
logger.debug("send description templates accounting entries queue events");
|
||||
this.authorizationService.authorizeForce(Permission.ManageQueueEvents);
|
||||
|
||||
try {
|
||||
this.tenantEntityManager.disableTenantFilters();
|
||||
List<DescriptionTemplateEntity> items = this.queryFactory.query(DescriptionTemplateQuery.class).disableTracking().collectAs(new BaseFieldSet().ensure(DescriptionTemplate._id).ensure(DescriptionTemplate._isActive));
|
||||
|
||||
for (DescriptionTemplateEntity item : items) {
|
||||
String subjectId = accountingProperties.getSubjectId();
|
||||
if (item.getIsActive().equals(IsActive.Active)) this.accountingEntryCreatedIntegrationEventHandler.handleAccountingEntry(UsageLimitTargetMetric.DESCRIPTION_TEMPLATE_COUNT.getValue(), AccountingValueType.Plus, subjectId, item.getTenantId());
|
||||
else this.accountingEntryCreatedIntegrationEventHandler.handleAccountingEntry(UsageLimitTargetMetric.DESCRIPTION_TEMPLATE_COUNT.getValue(), AccountingValueType.Minus, subjectId, item.getTenantId());
|
||||
}
|
||||
} finally {
|
||||
this.tenantEntityManager.reloadTenantFilters();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendDescriptionTemplateTypeAccountingEntriesEvents() throws InvalidApplicationException {
|
||||
logger.debug("send description templates types accounting entries queue events");
|
||||
this.authorizationService.authorizeForce(Permission.ManageQueueEvents);
|
||||
|
||||
try {
|
||||
this.tenantEntityManager.disableTenantFilters();
|
||||
List<DescriptionTemplateTypeEntity> items = this.queryFactory.query(DescriptionTemplateTypeQuery.class).disableTracking().collectAs(new BaseFieldSet().ensure(DescriptionTemplateType._id).ensure(DescriptionTemplateType._isActive));
|
||||
|
||||
for (DescriptionTemplateTypeEntity item : items) {
|
||||
String subjectId = accountingProperties.getSubjectId();
|
||||
if (item.getIsActive().equals(IsActive.Active)) this.accountingEntryCreatedIntegrationEventHandler.handleAccountingEntry(UsageLimitTargetMetric.DESCRIPTION_TEMPLATE_TYPE_COUNT.getValue(), AccountingValueType.Plus, subjectId, item.getTenantId());
|
||||
else this.accountingEntryCreatedIntegrationEventHandler.handleAccountingEntry(UsageLimitTargetMetric.DESCRIPTION_TEMPLATE_TYPE_COUNT.getValue(), AccountingValueType.Minus, subjectId, item.getTenantId());
|
||||
}
|
||||
} finally {
|
||||
this.tenantEntityManager.reloadTenantFilters();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendPrefillingSourceAccountingEntriesEvents() throws InvalidApplicationException {
|
||||
logger.debug("send prefilling sources accounting entries queue events");
|
||||
this.authorizationService.authorizeForce(Permission.ManageQueueEvents);
|
||||
|
||||
try {
|
||||
this.tenantEntityManager.disableTenantFilters();
|
||||
List<PrefillingSourceEntity> items = this.queryFactory.query(PrefillingSourceQuery.class).disableTracking().collectAs(new BaseFieldSet().ensure(PrefillingSource._id).ensure(PrefillingSource._isActive));
|
||||
|
||||
for (PrefillingSourceEntity item : items) {
|
||||
String subjectId = accountingProperties.getSubjectId();
|
||||
if (item.getIsActive().equals(IsActive.Active)) this.accountingEntryCreatedIntegrationEventHandler.handleAccountingEntry(UsageLimitTargetMetric.PREFILLING_SOURCES_COUNT.getValue(), AccountingValueType.Plus, subjectId, item.getTenantId());
|
||||
else this.accountingEntryCreatedIntegrationEventHandler.handleAccountingEntry(UsageLimitTargetMetric.PREFILLING_SOURCES_COUNT.getValue(), AccountingValueType.Minus, subjectId, item.getTenantId());
|
||||
}
|
||||
} finally {
|
||||
this.tenantEntityManager.reloadTenantFilters();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendReferenceTypeAccountingEntriesEvents() throws InvalidApplicationException {
|
||||
logger.debug("send reference types accounting entries queue events");
|
||||
this.authorizationService.authorizeForce(Permission.ManageQueueEvents);
|
||||
|
||||
try {
|
||||
this.tenantEntityManager.disableTenantFilters();
|
||||
List<ReferenceTypeEntity> items = this.queryFactory.query(ReferenceTypeQuery.class).disableTracking().collectAs(new BaseFieldSet().ensure(ReferenceType._id).ensure(ReferenceType._isActive));
|
||||
|
||||
for (ReferenceTypeEntity item : items) {
|
||||
String subjectId = accountingProperties.getSubjectId();
|
||||
if (item.getIsActive().equals(IsActive.Active)) this.accountingEntryCreatedIntegrationEventHandler.handleAccountingEntry(UsageLimitTargetMetric.REFERENCE_TYPE_COUNT.getValue(), AccountingValueType.Plus, subjectId, item.getTenantId());
|
||||
else this.accountingEntryCreatedIntegrationEventHandler.handleAccountingEntry(UsageLimitTargetMetric.REFERENCE_TYPE_COUNT.getValue(), AccountingValueType.Minus, subjectId, item.getTenantId());
|
||||
}
|
||||
} finally {
|
||||
this.tenantEntityManager.reloadTenantFilters();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendUserAccountingEntriesEvents() throws InvalidApplicationException {
|
||||
logger.debug("send users accounting entries queue events");
|
||||
this.authorizationService.authorizeForce(Permission.ManageQueueEvents);
|
||||
|
||||
try {
|
||||
this.tenantEntityManager.disableTenantFilters();
|
||||
List<TenantUserEntity> items = this.queryFactory.query(TenantUserQuery.class).disableTracking().collectAs(new BaseFieldSet().ensure(TenantUserEntity._id).ensure(TenantUserEntity._userId).ensure(TenantUserEntity._isActive));
|
||||
List<UserCredentialEntity> userCredentials = this.queryFactory.query(UserCredentialQuery.class).disableTracking().userIds(items.stream().map(x -> x.getUserId()).distinct().collect(Collectors.toList())).collect();
|
||||
|
||||
for (TenantUserEntity item : items) {
|
||||
String subjectId;
|
||||
if (userCredentials != null) {
|
||||
UserCredentialEntity userCredential = userCredentials.stream().filter(x -> x.getUserId().equals(item.getUserId())).findFirst().orElse(null);
|
||||
if (userCredential != null) subjectId = userCredential.getExternalId();
|
||||
else subjectId = item.getUserId().toString();
|
||||
} else {
|
||||
subjectId = item.getUserId().toString();
|
||||
}
|
||||
if (item.getIsActive().equals(IsActive.Active)) this.accountingEntryCreatedIntegrationEventHandler.handleAccountingEntry(UsageLimitTargetMetric.USER_COUNT.getValue(), AccountingValueType.Plus, subjectId, item.getTenantId());
|
||||
else this.accountingEntryCreatedIntegrationEventHandler.handleAccountingEntry(UsageLimitTargetMetric.USER_COUNT.getValue(), AccountingValueType.Minus, subjectId, item.getTenantId());
|
||||
}
|
||||
} finally {
|
||||
this.tenantEntityManager.reloadTenantFilters();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -101,4 +101,84 @@ public class MaintenanceController {
|
|||
|
||||
this.auditService.track(AuditableAction.Maintenance_SendDescriptionTouchEvents);
|
||||
}
|
||||
|
||||
@RequestMapping(method = RequestMethod.POST, value = "/events/plans/accounting-entry")
|
||||
public void sendPlanAccountingEntriesEvents() throws InvalidApplicationException {
|
||||
logger.debug("send plan accounting entries queue events");
|
||||
this.authorizationService.authorizeForce(Permission.ManageQueueEvents);
|
||||
|
||||
this.maintenanceService.sendPlanAccountingEntriesEvents();
|
||||
|
||||
this.auditService.track(AuditableAction.Maintenance_SendPlanAccountingEntriesEvents);
|
||||
}
|
||||
|
||||
@RequestMapping(method = RequestMethod.POST, value = "/events/descriptions/accounting-entry")
|
||||
public void sendDescriptionAccountingEntriesEvents() throws InvalidApplicationException {
|
||||
logger.debug("send plan accounting entries queue events");
|
||||
this.authorizationService.authorizeForce(Permission.ManageQueueEvents);
|
||||
|
||||
this.maintenanceService.sendDescriptionAccountingEntriesEvents();
|
||||
|
||||
this.auditService.track(AuditableAction.Maintenance_SendDescriptionAccountingEntriesEvents);
|
||||
}
|
||||
|
||||
@RequestMapping(method = RequestMethod.POST, value = "/events/plan-blueprints/accounting-entry")
|
||||
public void sendBlueprintAccountingEntriesEvents() throws InvalidApplicationException {
|
||||
logger.debug("send blueprints accounting entries queue events");
|
||||
this.authorizationService.authorizeForce(Permission.ManageQueueEvents);
|
||||
|
||||
this.maintenanceService.sendBlueprintAccountingEntriesEvents();
|
||||
|
||||
this.auditService.track(AuditableAction.Maintenance_SendBlueprintAccountingEntriesEvents);
|
||||
}
|
||||
|
||||
@RequestMapping(method = RequestMethod.POST, value = "/events/description-templates/accounting-entry")
|
||||
public void sendDescriptionTemplateAccountingEntriesEvents() throws InvalidApplicationException {
|
||||
logger.debug("send description templates accounting entries queue events");
|
||||
this.authorizationService.authorizeForce(Permission.ManageQueueEvents);
|
||||
|
||||
this.maintenanceService.sendDescriptionTemplateAccountingEntriesEvents();
|
||||
|
||||
this.auditService.track(AuditableAction.Maintenance_SendDescriptionTemplateAccountingEntriesEvents);
|
||||
}
|
||||
|
||||
@RequestMapping(method = RequestMethod.POST, value = "/events/description-template-types/accounting-entry")
|
||||
public void sendDescriptionTemplateTypeAccountingEntriesEvents() throws InvalidApplicationException {
|
||||
logger.debug("send description template types accounting entries queue events");
|
||||
this.authorizationService.authorizeForce(Permission.ManageQueueEvents);
|
||||
|
||||
this.maintenanceService.sendDescriptionTemplateTypeAccountingEntriesEvents();
|
||||
|
||||
this.auditService.track(AuditableAction.Maintenance_SendDescriptionTemplateTypeAccountingEntriesEvents);
|
||||
}
|
||||
|
||||
@RequestMapping(method = RequestMethod.POST, value = "/events/prefilling-sources/accounting-entry")
|
||||
public void sendPrefillingSourceAccountingEntriesEvents() throws InvalidApplicationException {
|
||||
logger.debug("send prefilling source accounting entries queue events");
|
||||
this.authorizationService.authorizeForce(Permission.ManageQueueEvents);
|
||||
|
||||
this.maintenanceService.sendPrefillingSourceAccountingEntriesEvents();
|
||||
|
||||
this.auditService.track(AuditableAction.Maintenance_SendPrefillingSourceAccountingEntriesEvents);
|
||||
}
|
||||
|
||||
@RequestMapping(method = RequestMethod.POST, value = "/events/reference-types/accounting-entry")
|
||||
public void sendReferenceTypeAccountingEntriesEvents() throws InvalidApplicationException {
|
||||
logger.debug("send reference type accounting entries queue events");
|
||||
this.authorizationService.authorizeForce(Permission.ManageQueueEvents);
|
||||
|
||||
this.maintenanceService.sendReferenceTypeAccountingEntriesEvents();
|
||||
|
||||
this.auditService.track(AuditableAction.Maintenance_SendReferenceTypeAccountingEntriesEvents);
|
||||
}
|
||||
|
||||
@RequestMapping(method = RequestMethod.POST, value = "/events/users/accounting-entry")
|
||||
public void sendUserAccountingEntriesEvents() throws InvalidApplicationException {
|
||||
logger.debug("send user accounting entries queue events");
|
||||
this.authorizationService.authorizeForce(Permission.ManageQueueEvents);
|
||||
|
||||
this.maintenanceService.sendUserAccountingEntriesEvents();
|
||||
|
||||
this.auditService.track(AuditableAction.Maintenance_SendUserAccountingEntriesEvents);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
accounting:
|
||||
serviceId: ${SERVICE_ID}
|
||||
action: ${ACCOUNTING_ACTION}
|
||||
subjectId: unknown
|
||||
|
|
|
@ -56,4 +56,61 @@ export class MaintenanceService extends BaseService {
|
|||
.post<any>(url, null).pipe(
|
||||
catchError((error: any) => throwError(error)));
|
||||
}
|
||||
|
||||
sendPlanAccountingEntriesEvents(): Observable<any> {
|
||||
const url = `${this.apiBase}/events/plans/accounting-entry`;
|
||||
return this.http
|
||||
.post<any>(url, null).pipe(
|
||||
catchError((error: any) => throwError(error)));
|
||||
}
|
||||
|
||||
sendDescriptionAccountingEntriesEvents(): Observable<any> {
|
||||
const url = `${this.apiBase}/events/descriptions/accounting-entry`;
|
||||
return this.http
|
||||
.post<any>(url, null).pipe(
|
||||
catchError((error: any) => throwError(error)));
|
||||
}
|
||||
|
||||
|
||||
sendBlueprintAccountingEntriesEvents(): Observable<any> {
|
||||
const url = `${this.apiBase}/events/plan-blueprints/accounting-entry`;
|
||||
return this.http
|
||||
.post<any>(url, null).pipe(
|
||||
catchError((error: any) => throwError(error)));
|
||||
}
|
||||
|
||||
sendDescriptionTemplateAccountingEntriesEvents(): Observable<any> {
|
||||
const url = `${this.apiBase}/events/description-templates/accounting-entry`;
|
||||
return this.http
|
||||
.post<any>(url, null).pipe(
|
||||
catchError((error: any) => throwError(error)));
|
||||
}
|
||||
|
||||
sendDescriptionTemplateTypeAccountingEntriesEvents(): Observable<any> {
|
||||
const url = `${this.apiBase}/events/description-template-types/accounting-entry`;
|
||||
return this.http
|
||||
.post<any>(url, null).pipe(
|
||||
catchError((error: any) => throwError(error)));
|
||||
}
|
||||
|
||||
sendPrefillingSourceAccountingEntriesEvents(): Observable<any> {
|
||||
const url = `${this.apiBase}/events/prefilling-sources/accounting-entry`;
|
||||
return this.http
|
||||
.post<any>(url, null).pipe(
|
||||
catchError((error: any) => throwError(error)));
|
||||
}
|
||||
|
||||
sendReferenceTypeAccountingEntriesEvents(): Observable<any> {
|
||||
const url = `${this.apiBase}/events/reference-types/accounting-entry`;
|
||||
return this.http
|
||||
.post<any>(url, null).pipe(
|
||||
catchError((error: any) => throwError(error)));
|
||||
}
|
||||
|
||||
sendUserAccountingEntriesEvents(): Observable<any> {
|
||||
const url = `${this.apiBase}/events/users/accounting-entry`;
|
||||
return this.http
|
||||
.post<any>(url, null).pipe(
|
||||
catchError((error: any) => throwError(error)));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -35,6 +35,14 @@
|
|||
<button mat-raised-button color="primary" (click)="sendTenantTouchEvents($event)" class="lightblue-btn button">{{language.instant('MAINTENANCE-TASKS.SECTIONS.EVENTS.ACTIONS.SEND-TENANT-TOUCH')}}</button>
|
||||
<button mat-raised-button color="primary" (click)="sendPlanTouchEvents($event)" class="lightblue-btn button">{{language.instant('MAINTENANCE-TASKS.SECTIONS.EVENTS.ACTIONS.SEND-PLAN-TOUCH')}}</button>
|
||||
<button mat-raised-button color="primary" (click)="sendDescriptionTouchEvents($event)" class="lightblue-btn button">{{language.instant('MAINTENANCE-TASKS.SECTIONS.EVENTS.ACTIONS.SEND-DESCRIPTION-TOUCH')}}</button>
|
||||
<button mat-raised-button color="primary" (click)="sendPlanAccountingEntriesEvents($event)" class="lightblue-btn button">{{language.instant('MAINTENANCE-TASKS.SECTIONS.EVENTS.ACTIONS.SEND-PLAN-ACCOUNTING-ENTRIES')}}</button>
|
||||
<button mat-raised-button color="primary" (click)="sendDescriptionAccountingEntriesEvents($event)" class="lightblue-btn button">{{language.instant('MAINTENANCE-TASKS.SECTIONS.EVENTS.ACTIONS.SEND-DESCRIPTION-ACCOUNTING-ENTRIES')}}</button>
|
||||
<button mat-raised-button color="primary" (click)="sendBlueprintAccountingEntriesEvents($event)" class="lightblue-btn button">{{language.instant('MAINTENANCE-TASKS.SECTIONS.EVENTS.ACTIONS.SEND-PLAN-BLUEPRINT-ACCOUNTING-ENTRIES')}}</button>
|
||||
<button mat-raised-button color="primary" (click)="sendDescriptionTemplateAccountingEntriesEvents($event)" class="lightblue-btn button">{{language.instant('MAINTENANCE-TASKS.SECTIONS.EVENTS.ACTIONS.SEND-DESCRIPTION-TEMPLATE-ACCOUNTING-ENTRIES')}}</button>
|
||||
<button mat-raised-button color="primary" (click)="sendDescriptionTemplateTypeAccountingEntriesEvents($event)" class="lightblue-btn button">{{language.instant('MAINTENANCE-TASKS.SECTIONS.EVENTS.ACTIONS.SEND-DESCRIPTION-TEMPLATE-TYPE-ACCOUNTING-ENTRIES')}}</button>
|
||||
<button mat-raised-button color="primary" (click)="sendPrefillingSourceAccountingEntriesEvents($event)" class="lightblue-btn button">{{language.instant('MAINTENANCE-TASKS.SECTIONS.EVENTS.ACTIONS.SEND-PREFILLING-SOURCE-ACCOUNTING-ENTRIES')}}</button>
|
||||
<button mat-raised-button color="primary" (click)="sendReferenceTypeAccountingEntriesEvents($event)" class="lightblue-btn button">{{language.instant('MAINTENANCE-TASKS.SECTIONS.EVENTS.ACTIONS.SEND-REFERENCE-TYPE-ACCOUNTING-ENTRIES')}}</button>
|
||||
<button mat-raised-button color="primary" (click)="sendUserAccountingEntriesEvents($event)" class="lightblue-btn button">{{language.instant('MAINTENANCE-TASKS.SECTIONS.EVENTS.ACTIONS.SEND-USER-ACCOUNTING-ENTRIES')}}</button>
|
||||
</div>
|
||||
</mat-expansion-panel>
|
||||
</mat-accordion>
|
||||
|
|
|
@ -217,6 +217,254 @@ export class MaintenanceTasksComponent extends BaseComponent implements OnInit {
|
|||
);
|
||||
}
|
||||
|
||||
sendPlanAccountingEntriesEvents(ev: Event) {
|
||||
this.dialog.open(ConfirmationDialogComponent, {
|
||||
data: {
|
||||
message: this.language.instant('MAINTENANCE-TASKS.CONFIRMATION.MESSAGE'),
|
||||
confirmButton: this.language.instant('GENERAL.CONFIRMATION-DIALOG.ACTIONS.CONFIRM'),
|
||||
cancelButton: this.language.instant('GENERAL.CONFIRMATION-DIALOG.ACTIONS.CANCEL')
|
||||
},
|
||||
maxWidth: '30em'
|
||||
})
|
||||
.afterClosed()
|
||||
.subscribe(confirm => {
|
||||
if (confirm) {
|
||||
this.doSendPlanAccountingEntriesEvents(ev);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private doSendPlanAccountingEntriesEvents(ev: Event) {
|
||||
(ev.target as HTMLButtonElement).disabled = true;
|
||||
this.maintenanceService.sendPlanAccountingEntriesEvents().pipe(takeUntil(this._destroyed)).subscribe(
|
||||
_ => {
|
||||
(ev.target as HTMLButtonElement).disabled = false;
|
||||
this.onCallbackSuccess();
|
||||
},
|
||||
error => {
|
||||
(ev.target as HTMLButtonElement).disabled = false;
|
||||
this.onCallbackError(error);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
sendDescriptionAccountingEntriesEvents(ev: Event) {
|
||||
this.dialog.open(ConfirmationDialogComponent, {
|
||||
data: {
|
||||
message: this.language.instant('MAINTENANCE-TASKS.CONFIRMATION.MESSAGE'),
|
||||
confirmButton: this.language.instant('GENERAL.CONFIRMATION-DIALOG.ACTIONS.CONFIRM'),
|
||||
cancelButton: this.language.instant('GENERAL.CONFIRMATION-DIALOG.ACTIONS.CANCEL')
|
||||
},
|
||||
maxWidth: '30em'
|
||||
})
|
||||
.afterClosed()
|
||||
.subscribe(confirm => {
|
||||
if (confirm) {
|
||||
this.doSendDescriptionAccountingEntriesEvents(ev);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private doSendDescriptionAccountingEntriesEvents(ev: Event) {
|
||||
(ev.target as HTMLButtonElement).disabled = true;
|
||||
this.maintenanceService.sendDescriptionAccountingEntriesEvents().pipe(takeUntil(this._destroyed)).subscribe(
|
||||
_ => {
|
||||
(ev.target as HTMLButtonElement).disabled = false;
|
||||
this.onCallbackSuccess();
|
||||
},
|
||||
error => {
|
||||
(ev.target as HTMLButtonElement).disabled = false;
|
||||
this.onCallbackError(error);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
sendBlueprintAccountingEntriesEvents(ev: Event) {
|
||||
this.dialog.open(ConfirmationDialogComponent, {
|
||||
data: {
|
||||
message: this.language.instant('MAINTENANCE-TASKS.CONFIRMATION.MESSAGE'),
|
||||
confirmButton: this.language.instant('GENERAL.CONFIRMATION-DIALOG.ACTIONS.CONFIRM'),
|
||||
cancelButton: this.language.instant('GENERAL.CONFIRMATION-DIALOG.ACTIONS.CANCEL')
|
||||
},
|
||||
maxWidth: '30em'
|
||||
})
|
||||
.afterClosed()
|
||||
.subscribe(confirm => {
|
||||
if (confirm) {
|
||||
this.doSendBlueprintAccountingEntriesEvents(ev);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private doSendBlueprintAccountingEntriesEvents(ev: Event) {
|
||||
(ev.target as HTMLButtonElement).disabled = true;
|
||||
this.maintenanceService.sendBlueprintAccountingEntriesEvents().pipe(takeUntil(this._destroyed)).subscribe(
|
||||
_ => {
|
||||
(ev.target as HTMLButtonElement).disabled = false;
|
||||
this.onCallbackSuccess();
|
||||
},
|
||||
error => {
|
||||
(ev.target as HTMLButtonElement).disabled = false;
|
||||
this.onCallbackError(error);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
sendDescriptionTemplateAccountingEntriesEvents(ev: Event) {
|
||||
this.dialog.open(ConfirmationDialogComponent, {
|
||||
data: {
|
||||
message: this.language.instant('MAINTENANCE-TASKS.CONFIRMATION.MESSAGE'),
|
||||
confirmButton: this.language.instant('GENERAL.CONFIRMATION-DIALOG.ACTIONS.CONFIRM'),
|
||||
cancelButton: this.language.instant('GENERAL.CONFIRMATION-DIALOG.ACTIONS.CANCEL')
|
||||
},
|
||||
maxWidth: '30em'
|
||||
})
|
||||
.afterClosed()
|
||||
.subscribe(confirm => {
|
||||
if (confirm) {
|
||||
this.doSendDescriptionTemplateAccountingEntriesEvents(ev);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private doSendDescriptionTemplateAccountingEntriesEvents(ev: Event) {
|
||||
(ev.target as HTMLButtonElement).disabled = true;
|
||||
this.maintenanceService.sendDescriptionTemplateAccountingEntriesEvents().pipe(takeUntil(this._destroyed)).subscribe(
|
||||
_ => {
|
||||
(ev.target as HTMLButtonElement).disabled = false;
|
||||
this.onCallbackSuccess();
|
||||
},
|
||||
error => {
|
||||
(ev.target as HTMLButtonElement).disabled = false;
|
||||
this.onCallbackError(error);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
sendDescriptionTemplateTypeAccountingEntriesEvents(ev: Event) {
|
||||
this.dialog.open(ConfirmationDialogComponent, {
|
||||
data: {
|
||||
message: this.language.instant('MAINTENANCE-TASKS.CONFIRMATION.MESSAGE'),
|
||||
confirmButton: this.language.instant('GENERAL.CONFIRMATION-DIALOG.ACTIONS.CONFIRM'),
|
||||
cancelButton: this.language.instant('GENERAL.CONFIRMATION-DIALOG.ACTIONS.CANCEL')
|
||||
},
|
||||
maxWidth: '30em'
|
||||
})
|
||||
.afterClosed()
|
||||
.subscribe(confirm => {
|
||||
if (confirm) {
|
||||
this.doSendDescriptionTemplateTypeAccountingEntriesEvents(ev);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private doSendDescriptionTemplateTypeAccountingEntriesEvents(ev: Event) {
|
||||
(ev.target as HTMLButtonElement).disabled = true;
|
||||
this.maintenanceService.sendDescriptionTemplateTypeAccountingEntriesEvents().pipe(takeUntil(this._destroyed)).subscribe(
|
||||
_ => {
|
||||
(ev.target as HTMLButtonElement).disabled = false;
|
||||
this.onCallbackSuccess();
|
||||
},
|
||||
error => {
|
||||
(ev.target as HTMLButtonElement).disabled = false;
|
||||
this.onCallbackError(error);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
sendPrefillingSourceAccountingEntriesEvents(ev: Event) {
|
||||
this.dialog.open(ConfirmationDialogComponent, {
|
||||
data: {
|
||||
message: this.language.instant('MAINTENANCE-TASKS.CONFIRMATION.MESSAGE'),
|
||||
confirmButton: this.language.instant('GENERAL.CONFIRMATION-DIALOG.ACTIONS.CONFIRM'),
|
||||
cancelButton: this.language.instant('GENERAL.CONFIRMATION-DIALOG.ACTIONS.CANCEL')
|
||||
},
|
||||
maxWidth: '30em'
|
||||
})
|
||||
.afterClosed()
|
||||
.subscribe(confirm => {
|
||||
if (confirm) {
|
||||
this.doSendPrefillingSourceAccountingEntriesEvents(ev);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private doSendPrefillingSourceAccountingEntriesEvents(ev: Event) {
|
||||
(ev.target as HTMLButtonElement).disabled = true;
|
||||
this.maintenanceService.sendPrefillingSourceAccountingEntriesEvents().pipe(takeUntil(this._destroyed)).subscribe(
|
||||
_ => {
|
||||
(ev.target as HTMLButtonElement).disabled = false;
|
||||
this.onCallbackSuccess();
|
||||
},
|
||||
error => {
|
||||
(ev.target as HTMLButtonElement).disabled = false;
|
||||
this.onCallbackError(error);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
sendReferenceTypeAccountingEntriesEvents(ev: Event) {
|
||||
this.dialog.open(ConfirmationDialogComponent, {
|
||||
data: {
|
||||
message: this.language.instant('MAINTENANCE-TASKS.CONFIRMATION.MESSAGE'),
|
||||
confirmButton: this.language.instant('GENERAL.CONFIRMATION-DIALOG.ACTIONS.CONFIRM'),
|
||||
cancelButton: this.language.instant('GENERAL.CONFIRMATION-DIALOG.ACTIONS.CANCEL')
|
||||
},
|
||||
maxWidth: '30em'
|
||||
})
|
||||
.afterClosed()
|
||||
.subscribe(confirm => {
|
||||
if (confirm) {
|
||||
this.doSendReferenceTypeAccountingEntriesEvents(ev);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private doSendReferenceTypeAccountingEntriesEvents(ev: Event) {
|
||||
(ev.target as HTMLButtonElement).disabled = true;
|
||||
this.maintenanceService.sendReferenceTypeAccountingEntriesEvents().pipe(takeUntil(this._destroyed)).subscribe(
|
||||
_ => {
|
||||
(ev.target as HTMLButtonElement).disabled = false;
|
||||
this.onCallbackSuccess();
|
||||
},
|
||||
error => {
|
||||
(ev.target as HTMLButtonElement).disabled = false;
|
||||
this.onCallbackError(error);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
sendUserAccountingEntriesEvents(ev: Event) {
|
||||
this.dialog.open(ConfirmationDialogComponent, {
|
||||
data: {
|
||||
message: this.language.instant('MAINTENANCE-TASKS.CONFIRMATION.MESSAGE'),
|
||||
confirmButton: this.language.instant('GENERAL.CONFIRMATION-DIALOG.ACTIONS.CONFIRM'),
|
||||
cancelButton: this.language.instant('GENERAL.CONFIRMATION-DIALOG.ACTIONS.CANCEL')
|
||||
},
|
||||
maxWidth: '30em'
|
||||
})
|
||||
.afterClosed()
|
||||
.subscribe(confirm => {
|
||||
if (confirm) {
|
||||
this.doSendUserAccountingEntriesEvents(ev);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private doSendUserAccountingEntriesEvents(ev: Event) {
|
||||
(ev.target as HTMLButtonElement).disabled = true;
|
||||
this.maintenanceService.sendUserAccountingEntriesEvents().pipe(takeUntil(this._destroyed)).subscribe(
|
||||
_ => {
|
||||
(ev.target as HTMLButtonElement).disabled = false;
|
||||
this.onCallbackSuccess();
|
||||
},
|
||||
error => {
|
||||
(ev.target as HTMLButtonElement).disabled = false;
|
||||
this.onCallbackError(error);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
onCallbackSuccess(): void {
|
||||
this.uiNotificationService.snackBarNotification(this.translate.instant('GENERAL.SNACK-BAR.SUCCESSFUL-UPDATE'), SnackBarNotificationLevel.Success);
|
||||
this.router.navigate(['/reload']).then(() => this.router.navigate([this.routerUtils.generateUrl('/maintenance-tasks')]));
|
||||
|
|
|
@ -366,7 +366,15 @@
|
|||
"SEND-USER-TOUCH": "Send user touch events",
|
||||
"SEND-TENANT-TOUCH": "Send tenant touch events",
|
||||
"SEND-PLAN-TOUCH": "Send plan touch events",
|
||||
"SEND-DESCRIPTION-TOUCH": "Send description touch events"
|
||||
"SEND-DESCRIPTION-TOUCH": "Send description touch events",
|
||||
"SEND-PLAN-ACCOUNTING-ENTRIES": "Send plan accounting entries events",
|
||||
"SEND-PLAN-BLUEPRINT-ACCOUNTING-ENTRIES": "Send plan blueprint accounting entries events",
|
||||
"SEND-DESCRIPTION-ACCOUNTING-ENTRIES": "Send description accounting entries events",
|
||||
"SEND-DESCRIPTION-TEMPLATE-ACCOUNTING-ENTRIES": "Send description template accounting entries events",
|
||||
"SEND-DESCRIPTION-TEMPLATE-TYPE-ACCOUNTING-ENTRIES": "Send description template types accounting entries events",
|
||||
"SEND-PREFILLING-SOURCE-ACCOUNTING-ENTRIES": "Send prefilling source accounting entries events",
|
||||
"SEND-REFERENCE-TYPE-ACCOUNTING-ENTRIES": "Send reference type accounting entries events",
|
||||
"SEND-USER-ACCOUNTING-ENTRIES": "Send user accounting entries events"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -366,7 +366,15 @@
|
|||
"SEND-USER-TOUCH": "Send user touch events",
|
||||
"SEND-TENANT-TOUCH": "Send tenant touch events",
|
||||
"SEND-PLAN-TOUCH": "Send plan touch events",
|
||||
"SEND-DESCRIPTION-TOUCH": "Send description touch events"
|
||||
"SEND-DESCRIPTION-TOUCH": "Send description touch events",
|
||||
"SEND-PLAN-ACCOUNTING-ENTRIES": "Send plan accounting entries events",
|
||||
"SEND-PLAN-BLUEPRINT-ACCOUNTING-ENTRIES": "Send plan blueprint accounting entries events",
|
||||
"SEND-DESCRIPTION-ACCOUNTING-ENTRIES": "Send description accounting entries events",
|
||||
"SEND-DESCRIPTION-TEMPLATE-ACCOUNTING-ENTRIES": "Send description template accounting entries events",
|
||||
"SEND-DESCRIPTION-TEMPLATE-TYPE-ACCOUNTING-ENTRIES": "Send description template types accounting entries events",
|
||||
"SEND-PREFILLING-SOURCE-ACCOUNTING-ENTRIES": "Send prefilling source accounting entries events",
|
||||
"SEND-REFERENCE-TYPE-ACCOUNTING-ENTRIES": "Send reference type accounting entries events",
|
||||
"SEND-USER-ACCOUNTING-ENTRIES": "Send user accounting entries events"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -366,7 +366,15 @@
|
|||
"SEND-USER-TOUCH": "Send user touch events",
|
||||
"SEND-TENANT-TOUCH": "Send tenant touch events",
|
||||
"SEND-PLAN-TOUCH": "Send plan touch events",
|
||||
"SEND-DESCRIPTION-TOUCH": "Send description touch events"
|
||||
"SEND-DESCRIPTION-TOUCH": "Send description touch events",
|
||||
"SEND-PLAN-ACCOUNTING-ENTRIES": "Send plan accounting entries events",
|
||||
"SEND-PLAN-BLUEPRINT-ACCOUNTING-ENTRIES": "Send plan blueprint accounting entries events",
|
||||
"SEND-DESCRIPTION-ACCOUNTING-ENTRIES": "Send description accounting entries events",
|
||||
"SEND-DESCRIPTION-TEMPLATE-ACCOUNTING-ENTRIES": "Send description template accounting entries events",
|
||||
"SEND-DESCRIPTION-TEMPLATE-TYPE-ACCOUNTING-ENTRIES": "Send description template types accounting entries events",
|
||||
"SEND-PREFILLING-SOURCE-ACCOUNTING-ENTRIES": "Send prefilling source accounting entries events",
|
||||
"SEND-REFERENCE-TYPE-ACCOUNTING-ENTRIES": "Send reference type accounting entries events",
|
||||
"SEND-USER-ACCOUNTING-ENTRIES": "Send user accounting entries events"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -366,7 +366,15 @@
|
|||
"SEND-USER-TOUCH": "Send user touch events",
|
||||
"SEND-TENANT-TOUCH": "Send tenant touch events",
|
||||
"SEND-PLAN-TOUCH": "Send plan touch events",
|
||||
"SEND-DESCRIPTION-TOUCH": "Send description touch events"
|
||||
"SEND-DESCRIPTION-TOUCH": "Send description touch events",
|
||||
"SEND-PLAN-ACCOUNTING-ENTRIES": "Send plan accounting entries events",
|
||||
"SEND-PLAN-BLUEPRINT-ACCOUNTING-ENTRIES": "Send plan blueprint accounting entries events",
|
||||
"SEND-DESCRIPTION-ACCOUNTING-ENTRIES": "Send description accounting entries events",
|
||||
"SEND-DESCRIPTION-TEMPLATE-ACCOUNTING-ENTRIES": "Send description template accounting entries events",
|
||||
"SEND-DESCRIPTION-TEMPLATE-TYPE-ACCOUNTING-ENTRIES": "Send description template types accounting entries events",
|
||||
"SEND-PREFILLING-SOURCE-ACCOUNTING-ENTRIES": "Send prefilling source accounting entries events",
|
||||
"SEND-REFERENCE-TYPE-ACCOUNTING-ENTRIES": "Send reference type accounting entries events",
|
||||
"SEND-USER-ACCOUNTING-ENTRIES": "Send user accounting entries events"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -366,7 +366,15 @@
|
|||
"SEND-USER-TOUCH": "Send user touch events",
|
||||
"SEND-TENANT-TOUCH": "Send tenant touch events",
|
||||
"SEND-PLAN-TOUCH": "Send plan touch events",
|
||||
"SEND-DESCRIPTION-TOUCH": "Send description touch events"
|
||||
"SEND-DESCRIPTION-TOUCH": "Send description touch events",
|
||||
"SEND-PLAN-ACCOUNTING-ENTRIES": "Send plan accounting entries events",
|
||||
"SEND-PLAN-BLUEPRINT-ACCOUNTING-ENTRIES": "Send plan blueprint accounting entries events",
|
||||
"SEND-DESCRIPTION-ACCOUNTING-ENTRIES": "Send description accounting entries events",
|
||||
"SEND-DESCRIPTION-TEMPLATE-ACCOUNTING-ENTRIES": "Send description template accounting entries events",
|
||||
"SEND-DESCRIPTION-TEMPLATE-TYPE-ACCOUNTING-ENTRIES": "Send description template types accounting entries events",
|
||||
"SEND-PREFILLING-SOURCE-ACCOUNTING-ENTRIES": "Send prefilling source accounting entries events",
|
||||
"SEND-REFERENCE-TYPE-ACCOUNTING-ENTRIES": "Send reference type accounting entries events",
|
||||
"SEND-USER-ACCOUNTING-ENTRIES": "Send user accounting entries events"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -366,7 +366,15 @@
|
|||
"SEND-USER-TOUCH": "Send user touch events",
|
||||
"SEND-TENANT-TOUCH": "Send tenant touch events",
|
||||
"SEND-PLAN-TOUCH": "Send plan touch events",
|
||||
"SEND-DESCRIPTION-TOUCH": "Send description touch events"
|
||||
"SEND-DESCRIPTION-TOUCH": "Send description touch events",
|
||||
"SEND-PLAN-ACCOUNTING-ENTRIES": "Send plan accounting entries events",
|
||||
"SEND-PLAN-BLUEPRINT-ACCOUNTING-ENTRIES": "Send plan blueprint accounting entries events",
|
||||
"SEND-DESCRIPTION-ACCOUNTING-ENTRIES": "Send description accounting entries events",
|
||||
"SEND-DESCRIPTION-TEMPLATE-ACCOUNTING-ENTRIES": "Send description template accounting entries events",
|
||||
"SEND-DESCRIPTION-TEMPLATE-TYPE-ACCOUNTING-ENTRIES": "Send description template types accounting entries events",
|
||||
"SEND-PREFILLING-SOURCE-ACCOUNTING-ENTRIES": "Send prefilling source accounting entries events",
|
||||
"SEND-REFERENCE-TYPE-ACCOUNTING-ENTRIES": "Send reference type accounting entries events",
|
||||
"SEND-USER-ACCOUNTING-ENTRIES": "Send user accounting entries events"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -366,7 +366,15 @@
|
|||
"SEND-USER-TOUCH": "Send user touch events",
|
||||
"SEND-TENANT-TOUCH": "Send tenant touch events",
|
||||
"SEND-PLAN-TOUCH": "Send plan touch events",
|
||||
"SEND-DESCRIPTION-TOUCH": "Send description touch events"
|
||||
"SEND-DESCRIPTION-TOUCH": "Send description touch events",
|
||||
"SEND-PLAN-ACCOUNTING-ENTRIES": "Send plan accounting entries events",
|
||||
"SEND-PLAN-BLUEPRINT-ACCOUNTING-ENTRIES": "Send plan blueprint accounting entries events",
|
||||
"SEND-DESCRIPTION-ACCOUNTING-ENTRIES": "Send description accounting entries events",
|
||||
"SEND-DESCRIPTION-TEMPLATE-ACCOUNTING-ENTRIES": "Send description template accounting entries events",
|
||||
"SEND-DESCRIPTION-TEMPLATE-TYPE-ACCOUNTING-ENTRIES": "Send description template types accounting entries events",
|
||||
"SEND-PREFILLING-SOURCE-ACCOUNTING-ENTRIES": "Send prefilling source accounting entries events",
|
||||
"SEND-REFERENCE-TYPE-ACCOUNTING-ENTRIES": "Send reference type accounting entries events",
|
||||
"SEND-USER-ACCOUNTING-ENTRIES": "Send user accounting entries events"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -366,7 +366,15 @@
|
|||
"SEND-USER-TOUCH": "Send user touch events",
|
||||
"SEND-TENANT-TOUCH": "Send tenant touch events",
|
||||
"SEND-PLAN-TOUCH": "Send plan touch events",
|
||||
"SEND-DESCRIPTION-TOUCH": "Send description touch events"
|
||||
"SEND-DESCRIPTION-TOUCH": "Send description touch events",
|
||||
"SEND-PLAN-ACCOUNTING-ENTRIES": "Send plan accounting entries events",
|
||||
"SEND-PLAN-BLUEPRINT-ACCOUNTING-ENTRIES": "Send plan blueprint accounting entries events",
|
||||
"SEND-DESCRIPTION-ACCOUNTING-ENTRIES": "Send description accounting entries events",
|
||||
"SEND-DESCRIPTION-TEMPLATE-ACCOUNTING-ENTRIES": "Send description template accounting entries events",
|
||||
"SEND-DESCRIPTION-TEMPLATE-TYPE-ACCOUNTING-ENTRIES": "Send description template types accounting entries events",
|
||||
"SEND-PREFILLING-SOURCE-ACCOUNTING-ENTRIES": "Send prefilling source accounting entries events",
|
||||
"SEND-REFERENCE-TYPE-ACCOUNTING-ENTRIES": "Send reference type accounting entries events",
|
||||
"SEND-USER-ACCOUNTING-ENTRIES": "Send user accounting entries events"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -366,7 +366,15 @@
|
|||
"SEND-USER-TOUCH": "Send user touch events",
|
||||
"SEND-TENANT-TOUCH": "Send tenant touch events",
|
||||
"SEND-PLAN-TOUCH": "Send plan touch events",
|
||||
"SEND-DESCRIPTION-TOUCH": "Send description touch events"
|
||||
"SEND-DESCRIPTION-TOUCH": "Send description touch events",
|
||||
"SEND-PLAN-ACCOUNTING-ENTRIES": "Send plan accounting entries events",
|
||||
"SEND-PLAN-BLUEPRINT-ACCOUNTING-ENTRIES": "Send plan blueprint accounting entries events",
|
||||
"SEND-DESCRIPTION-ACCOUNTING-ENTRIES": "Send description accounting entries events",
|
||||
"SEND-DESCRIPTION-TEMPLATE-ACCOUNTING-ENTRIES": "Send description template accounting entries events",
|
||||
"SEND-DESCRIPTION-TEMPLATE-TYPE-ACCOUNTING-ENTRIES": "Send description template types accounting entries events",
|
||||
"SEND-PREFILLING-SOURCE-ACCOUNTING-ENTRIES": "Send prefilling source accounting entries events",
|
||||
"SEND-REFERENCE-TYPE-ACCOUNTING-ENTRIES": "Send reference type accounting entries events",
|
||||
"SEND-USER-ACCOUNTING-ENTRIES": "Send user accounting entries events"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -366,7 +366,15 @@
|
|||
"SEND-USER-TOUCH": "Send user touch events",
|
||||
"SEND-TENANT-TOUCH": "Send tenant touch events",
|
||||
"SEND-PLAN-TOUCH": "Send plan touch events",
|
||||
"SEND-DESCRIPTION-TOUCH": "Send description touch events"
|
||||
"SEND-DESCRIPTION-TOUCH": "Send description touch events",
|
||||
"SEND-PLAN-ACCOUNTING-ENTRIES": "Send plan accounting entries events",
|
||||
"SEND-PLAN-BLUEPRINT-ACCOUNTING-ENTRIES": "Send plan blueprint accounting entries events",
|
||||
"SEND-DESCRIPTION-ACCOUNTING-ENTRIES": "Send description accounting entries events",
|
||||
"SEND-DESCRIPTION-TEMPLATE-ACCOUNTING-ENTRIES": "Send description template accounting entries events",
|
||||
"SEND-DESCRIPTION-TEMPLATE-TYPE-ACCOUNTING-ENTRIES": "Send description template types accounting entries events",
|
||||
"SEND-PREFILLING-SOURCE-ACCOUNTING-ENTRIES": "Send prefilling source accounting entries events",
|
||||
"SEND-REFERENCE-TYPE-ACCOUNTING-ENTRIES": "Send reference type accounting entries events",
|
||||
"SEND-USER-ACCOUNTING-ENTRIES": "Send user accounting entries events"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -366,7 +366,15 @@
|
|||
"SEND-USER-TOUCH": "Send user touch events",
|
||||
"SEND-TENANT-TOUCH": "Send tenant touch events",
|
||||
"SEND-PLAN-TOUCH": "Send plan touch events",
|
||||
"SEND-DESCRIPTION-TOUCH": "Send description touch events"
|
||||
"SEND-DESCRIPTION-TOUCH": "Send description touch events",
|
||||
"SEND-PLAN-ACCOUNTING-ENTRIES": "Send plan accounting entries events",
|
||||
"SEND-PLAN-BLUEPRINT-ACCOUNTING-ENTRIES": "Send plan blueprint accounting entries events",
|
||||
"SEND-DESCRIPTION-ACCOUNTING-ENTRIES": "Send description accounting entries events",
|
||||
"SEND-DESCRIPTION-TEMPLATE-ACCOUNTING-ENTRIES": "Send description template accounting entries events",
|
||||
"SEND-DESCRIPTION-TEMPLATE-TYPE-ACCOUNTING-ENTRIES": "Send description template types accounting entries events",
|
||||
"SEND-PREFILLING-SOURCE-ACCOUNTING-ENTRIES": "Send prefilling source accounting entries events",
|
||||
"SEND-REFERENCE-TYPE-ACCOUNTING-ENTRIES": "Send reference type accounting entries events",
|
||||
"SEND-USER-ACCOUNTING-ENTRIES": "Send user accounting entries events"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue