Untitled
unknown
plain_text
2 years ago
3.7 kB
8
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...