5918-worker.time-control_resend #1685
|
@ -37,31 +37,40 @@ module.exports = Self => {
|
|||
}
|
||||
});
|
||||
|
||||
Self.updateWorkerTimeControlMail = async(ctx, workerId, year, week, state, reason, options) => {
|
||||
Self.updateWorkerTimeControlMail = async(ctx, options) => {
|
||||
const models = Self.app.models;
|
||||
|
||||
const args = ctx.args;
|
||||
const myOptions = {};
|
||||
|
||||
if (typeof options == 'object')
|
||||
Object.assign(myOptions, options);
|
||||
|
||||
const workerTimeControlMail = await models.WorkerTimeControlMail.findOne({
|
||||
const [sent] = await models.WorkerTimeControlMail.find({
|
||||
where: {
|
||||
workerFk: workerId,
|
||||
year,
|
||||
week
|
||||
}
|
||||
year: args.year,
|
||||
week: args.week,
|
||||
},
|
||||
limit: 1
|
||||
}, myOptions);
|
||||
|
||||
console.log('workerTimeControlMail: ', workerTimeControlMail);
|
||||
if (!workerTimeControlMail) throw new UserError(`There aren't records for this week`);
|
||||
if (!sent) throw new UserError(`There aren't records for this week`);
|
||||
|
||||
await workerTimeControlMail.updateAttributes({
|
||||
state,
|
||||
reason: reason || null
|
||||
}, myOptions);
|
||||
const workerTimeControlMail = await models.WorkerTimeControlMail.upsertWithWhere(
|
||||
{
|
||||
year: args.year,
|
||||
week: args.week,
|
||||
workerFk: args.workerId
|
||||
},
|
||||
{
|
||||
state: args.state,
|
||||
reason: args.workerId,
|
||||
year: args.year,
|
||||
week: args.week,
|
||||
workerFk: args.workerId
|
||||
},
|
||||
myOptions);
|
||||
|
||||
if (state == 'SENDED') {
|
||||
if (args.state == 'SENDED') {
|
||||
await workerTimeControlMail.updateAttributes({
|
||||
sendedCounter: workerTimeControlMail.sendedCounter + 1
|
||||
}, myOptions);
|
||||
|
|
|
@ -61,9 +61,8 @@ module.exports = Self => {
|
|||
const url = `${salix.url}worker/${args.workerId}/time-control?timestamp=${timestamp}`;
|
||||
ctx.args.url = url;
|
||||
|
||||
await Self.sendTemplate(ctx, 'weekly-hour-record');
|
||||
|
||||
return models.WorkerTimeControl.updateWorkerTimeControlMail(ctx, myOptions);
|
||||
await models.WorkerTimeControl.updateWorkerTimeControlMail(ctx, myOptions);
|
||||
return Self.sendTemplate(ctx, 'weekly-hour-record');
|
||||
};
|
||||
|
||||
function getMondayDateFromYearWeek(yearNumber, weekNumber) {
|
||||
|
|
|
@ -102,7 +102,7 @@
|
|||
ng-click="sendEmailConfirmation.show()"
|
||||
class="right"
|
||||
vn-tooltip="Resend email of this week to the user"
|
||||
ng-show="$ctrl.isHr && $ctrl.canResend">
|
||||
ng-show="$ctrl.isHr && $ctrl.state != 'CONFIRMED' && $ctrl.canResend">
|
||||
</vn-button>
|
||||
</vn-button-bar>
|
||||
</div>
|
||||
|
|
|
@ -53,6 +53,8 @@ class Controller extends Section {
|
|||
set worker(value) {
|
||||
this._worker = value;
|
||||
this.fetchHours();
|
||||
if (this.date)
|
||||
this.getWeekData();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -110,8 +112,8 @@ class Controller extends Section {
|
|||
}
|
||||
|
||||
if (!this.weekTotalHours) this.fetchHours();
|
||||
if (this.worker)
|
||||
this.getWeekData();
|
||||
this.isMailSended();
|
||||
}
|
||||
|
||||
set weekTotalHours(totalHours) {
|
||||
|
@ -128,21 +130,23 @@ class Controller extends Section {
|
|||
workerFk: this.$params.id,
|
||||
year: this._date.getFullYear(),
|
||||
week: this.getWeekNumber(this._date)
|
||||
}
|
||||
},
|
||||
};
|
||||
this.$http.get('WorkerTimeControlMails', {filter})
|
||||
.then(res => {
|
||||
const mail = res.data;
|
||||
if (!mail.length) {
|
||||
if (!res.data.length) {
|
||||
this.state = null;
|
||||
return;
|
||||
}
|
||||
this.state = mail[0].state;
|
||||
this.reason = mail[0].reason;
|
||||
const [mail] = res.data;
|
||||
this.state = mail.state;
|
||||
this.reason = mail.reason;
|
||||
});
|
||||
this.canBeResend();
|
||||
}
|
||||
|
||||
isMailSended() {
|
||||
canBeResend() {
|
||||
this.canResend = false;
|
||||
const filter = {
|
||||
where: {
|
||||
year: this._date.getFullYear(),
|
||||
|
@ -150,27 +154,10 @@ class Controller extends Section {
|
|||
},
|
||||
limit: 1
|
||||
};
|
||||
// no repeat request
|
||||
this.$http.get('WorkerTimeControlMails', {filter})
|
||||
.then(res => {
|
||||
if (!res.data.length) {
|
||||
this.canResend = false;
|
||||
return;
|
||||
}
|
||||
|
||||
const filter = {
|
||||
where: {
|
||||
workerFk: this.$params.id
|
||||
},
|
||||
include: {
|
||||
relation: 'department'
|
||||
}
|
||||
};
|
||||
this.$http.get('WorkerDepartments/findOne', {filter})
|
||||
.then(res => {
|
||||
const department = res.data.department;
|
||||
if (department.isTeleworking) this.canResend = true;
|
||||
});
|
||||
if (res.data.length)
|
||||
this.canResend = true;
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -389,30 +376,25 @@ class Controller extends Section {
|
|||
}
|
||||
|
||||
isSatisfied() {
|
||||
const params = {
|
||||
workerId: this.worker.id,
|
||||
year: this.date.getFullYear(),
|
||||
week: this.weekNumber,
|
||||
state: 'CONFIRMED'
|
||||
};
|
||||
const query = `WorkerTimeControls/updateWorkerTimeControlMail`;
|
||||
this.$http.post(query, params).then(() => {
|
||||
this.getMailStates(this.date);
|
||||
this.getWeekData();
|
||||
this.vnApp.showSuccess(this.$t('Data saved!'));
|
||||
});
|
||||
this.updateWorkerTimeControlMail('CONFIRMED');
|
||||
}
|
||||
|
||||
isUnsatisfied() {
|
||||
if (!this.reason) throw new UserError(`You must indicate a reason`);
|
||||
this.updateWorkerTimeControlMail('REVISE', this.reason);
|
||||
}
|
||||
|
||||
updateWorkerTimeControlMail(state, reason) {
|
||||
const params = {
|
||||
workerId: this.worker.id,
|
||||
year: this.date.getFullYear(),
|
||||
week: this.weekNumber,
|
||||
state: 'REVISE',
|
||||
reason: this.reason
|
||||
state
|
||||
};
|
||||
|
||||
if (reason)
|
||||
params.reason = reason;
|
||||
|
||||
const query = `WorkerTimeControls/updateWorkerTimeControlMail`;
|
||||
this.$http.post(query, params).then(() => {
|
||||
this.getMailStates(this.date);
|
||||
|
|
Loading…
Reference in New Issue