Untitled
unknown
plain_text
3 years ago
3.7 kB
9
Indexable
async updateSubcriptionManyTable(payload) {
const { companyData } = payload;
let dataCompanyBusinessModels = [];
const companySubscription = companyData.data.subscription;
if (companySubscription.type === SUBSCRIPTION_TYPE.PERIODIC_PARTNERS) {
if (validate.isEmpty(companySubscription.freeTrialStartDate)
|| validate.isEmpty(companySubscription.freeTrialEndDate)){
dataCompanyBusinessModels.push({
company_id: dataCompany.id,
type: companySubscription.type,
status: companySubscription.status,
start_date: companySubscription.startDate,
end_date: companySubscription.endDate,
free_trial_start_date: '',
free_trial_end_date: '',
value: companySubscription.price,
field_assistant: companySubscription.fieldAssistant,
field_assistant_schema: companySubscription.fieldAssistantSchema
});
} else {
dataCompanyBusinessModels.push({
company_id: dataCompany.id,
type: companySubscription.type,
status: companySubscription.status,
start_date: companySubscription.startDate,
end_date: companySubscription.endDate,
free_trial_start_date: companySubscription.freeTrialStartDate,
free_trial_end_date: companySubscription.freeTrialEndDate,
value: companySubscription.price,
field_assistant: companySubscription.fieldAssistant,
field_assistant_schema: companySubscription.fieldAssistantSchema
});
}
} else {
if (validate.isEmpty(companySubscription.freeTrialStartDate)
|| validate.isEmpty(companySubscription.freeTrialEndDate)){
dataCompanyBusinessModels.push({
company_id: dataCompany.id,
type: companySubscription.type,
status: companySubscription.status,
start_date: companySubscription.startDate,
end_date: companySubscription.endDate,
free_trial_start_date: '',
free_trial_end_date: '',
value: companySubscription.percent,
field_assistant: companySubscription.fieldAssistant,
field_assistant_schema: companySubscription.fieldAssistantSchema
});
} else {
dataCompanyBusinessModels.push({
company_id: dataCompany.id,
type: companySubscription.type,
status: companySubscription.status,
start_date: companySubscription.startDate,
end_date: companySubscription.endDate,
free_trial_start_date: companySubscription.freeTrialStartDate,
free_trial_end_date: companySubscription.freeTrialEndDate,
value: companySubscription.percent,
field_assistant: companySubscription.fieldAssistant,
field_assistant_schema: companySubscription.fieldAssistantSchema
});
}
}
await this.commandCompanyBusinessModels.delete({ 'company_id': companyData.id });
await this.commandCompanyBusinessModels.insertOne(dataCompanyBusinessModels);
}
async resetStatusPaid() {
const ctx = 'company-reset-status-paid';
const dateNow = new Date();
crontab.scheduleJob("0 0 0 * * *" , function(){
const query = {
status: SUBSCRIPTION_STATUS.ACTIVE,
free_trial_start_date: '',
free_trial_end_date: '',
modifiedAt: new Date(),
modifiedBy: 'Admin'
}
},
{
schedule: true,
timezone: "Asia/Jakarta"
});
await this.command.updateMany('free_trial_end_date', '=<', dateNow, query);
return wrapper.data('', ctx, 200);
}Editor is loading...