Merge branch 'test' into 6222-test-saleCcomponentUpdate
gitea/salix/pipeline/head There was a failure building this commit
Details
gitea/salix/pipeline/head There was a failure building this commit
Details
This commit is contained in:
commit
aac3e17d3c
|
@ -258,18 +258,20 @@ module.exports = function(Self) {
|
|||
|
||||
class Mailer {
|
||||
async send(verifyOptions, cb) {
|
||||
const url = new URL(verifyOptions.verifyHref);
|
||||
if (process.env.NODE_ENV) url.port = '';
|
||||
try {
|
||||
const url = new URL(verifyOptions.verifyHref);
|
||||
if (process.env.NODE_ENV) url.port = '';
|
||||
|
||||
const params = {
|
||||
url: url.href,
|
||||
recipient: verifyOptions.to
|
||||
};
|
||||
const email = new Email('email-verify', {
|
||||
url: url.href,
|
||||
recipient: verifyOptions.to
|
||||
});
|
||||
await email.send();
|
||||
|
||||
const email = new Email('email-verify', params);
|
||||
email.send();
|
||||
|
||||
cb(null, verifyOptions.to);
|
||||
cb(null, verifyOptions.to);
|
||||
} catch (err) {
|
||||
cb(err);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
DELETE FROM `account`.`signInLog` where owner <> FALSE
|
|
@ -0,0 +1,2 @@
|
|||
DELETE FROM `account`.`signInLog` where owner <> FALSE;
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
DELETE FROM salix.ACL
|
||||
WHERE model = 'WorkerTimeControl'
|
||||
AND property IN ('*','addTime');
|
||||
|
||||
INSERT INTO `salix`.`ACL` (model, property, accessType, permission, principalType, principalId)
|
||||
VALUES
|
||||
('WorkerTimeControl', 'addTimeEntry', 'WRITE', 'ALLOW', 'ROLE', 'employee'),
|
||||
('WorkerTimeControl', 'deleteTimeEntry', 'WRITE', 'ALLOW', 'ROLE', 'employee'),
|
||||
('WorkerTimeControl', 'updateTimeEntry', 'WRITE', 'ALLOW', 'ROLE', 'employee'),
|
||||
('WorkerTimeControl', 'sendMail', 'WRITE', 'ALLOW', 'ROLE', 'employee'),
|
||||
('WorkerTimeControl', 'updateWorkerTimeControlMail', 'WRITE', 'ALLOW', 'ROLE', 'employee'),
|
||||
('WorkerTimeControl', 'weeklyHourRecordEmail', 'WRITE', 'ALLOW', 'ROLE', 'employee'),
|
||||
('WorkerTimeControl', 'getMailStates', 'READ', 'ALLOW', 'ROLE', 'employee'),
|
||||
('WorkerTimeControl', 'resendWeeklyHourEmail', 'WRITE', 'ALLOW', 'ROLE', 'employee');
|
|
@ -735,7 +735,7 @@ export default {
|
|||
},
|
||||
createStateView: {
|
||||
state: 'vn-autocomplete[ng-model="$ctrl.stateFk"]',
|
||||
worker: 'vn-worker-autocomplete[ng-model="$ctrl.workerFk"]',
|
||||
worker: 'vn-worker-autocomplete[ng-model="$ctrl.userFk"]',
|
||||
saveStateButton: `button[type=submit]`
|
||||
},
|
||||
claimsIndex: {
|
||||
|
|
|
@ -203,5 +203,6 @@
|
|||
"keepPrice": "keepPrice",
|
||||
"Cannot past travels with entries": "Cannot past travels with entries",
|
||||
"It was not able to remove the next expeditions:": "It was not able to remove the next expeditions: {{expeditions}}",
|
||||
"Incorrect pin": "Incorrect pin."
|
||||
}
|
||||
"Incorrect pin": "Incorrect pin.",
|
||||
"The notification subscription of this worker cant be modified": "The notification subscription of this worker cant be modified"
|
||||
}
|
|
@ -7,7 +7,8 @@ const execFile = require('child_process').execFile;
|
|||
* https://docs.microsoft.com/en-us/troubleshoot/windows-server/identity/useraccountcontrol-manipulate-account-properties
|
||||
*/
|
||||
const UserAccountControlFlags = {
|
||||
ACCOUNTDISABLE: 2
|
||||
ACCOUNTDISABLE: 0x2,
|
||||
DONT_EXPIRE_PASSWD: 0x10000
|
||||
};
|
||||
|
||||
module.exports = Self => {
|
||||
|
@ -118,7 +119,8 @@ module.exports = Self => {
|
|||
}
|
||||
|
||||
entry = {
|
||||
userAccountControl: sambaUser.userAccountControl
|
||||
userAccountControl: (sambaUser.userAccountControl
|
||||
| UserAccountControlFlags.DONT_EXPIRE_PASSWD)
|
||||
& ~UserAccountControlFlags.ACCOUNTDISABLE,
|
||||
uidNumber: info.uidNumber,
|
||||
accountExpires: 0,
|
||||
|
|
|
@ -16,19 +16,4 @@ columns:
|
|||
vehicleFk: vehicle
|
||||
agencyModeFk: agency
|
||||
routeFk: route
|
||||
zoneFk: zone
|
||||
name: name
|
||||
beachFk: beach
|
||||
ticketPacked: tickets packed
|
||||
ticketFree: tickets free
|
||||
ticketProduction: tickets production
|
||||
packages: packages
|
||||
note: note
|
||||
dated: dated
|
||||
dockFk: dock
|
||||
priority: priority
|
||||
etd: etd
|
||||
expeditionTruckFk: truck
|
||||
m3boxes: m3 boxes
|
||||
bufferFk: buffer
|
||||
isPickingAllowed: is picking allowed
|
||||
zoneFk: zone
|
|
@ -16,19 +16,4 @@ columns:
|
|||
vehicleFk: vehículo
|
||||
agencyModeFk: agencia
|
||||
routeFk: ruta
|
||||
zoneFk: zona
|
||||
name: nombre
|
||||
beachFk: playa
|
||||
ticketPacked: tickets encajados
|
||||
ticketFree: tickets libres
|
||||
ticketProduction: tickets producción
|
||||
packages: paquetes
|
||||
note: nota
|
||||
dated: fecha
|
||||
dockFk: muelle
|
||||
priority: prioridad
|
||||
etd: etd
|
||||
expeditionTruckFk: camión
|
||||
m3boxes: m3 cajas
|
||||
bufferFk: buffer
|
||||
isPickingAllowed: está permitido recoger
|
||||
zoneFk: zona
|
|
@ -0,0 +1,19 @@
|
|||
name: routesMonitor
|
||||
columns:
|
||||
routeFk: route
|
||||
name: name
|
||||
beachFk: beach
|
||||
ticketPacked: tickets packed
|
||||
ticketFree: tickets free
|
||||
ticketProduction: tickets production
|
||||
packages: packages
|
||||
note: note
|
||||
dated: dated
|
||||
dockFk: dock
|
||||
m3: m3
|
||||
priority: priority
|
||||
etd: etd
|
||||
expeditionTruckFk: truck
|
||||
m3boxes: m3 boxes
|
||||
bufferFk: buffer
|
||||
isPickingAllowed: is picking allowed
|
|
@ -0,0 +1,19 @@
|
|||
name: monitorRutas
|
||||
columns:
|
||||
routeFk: ruta
|
||||
name: nombre
|
||||
beachFk: playa
|
||||
ticketPacked: tickets encajados
|
||||
ticketFree: tickets libres
|
||||
ticketProduction: tickets producción
|
||||
packages: paquetes
|
||||
note: nota
|
||||
dated: fecha
|
||||
dockFk: muelle
|
||||
m3: m3
|
||||
priority: prioridad
|
||||
etd: etd
|
||||
expeditionTruckFk: camión
|
||||
m3boxes: m3 cajas
|
||||
bufferFk: buffer
|
||||
isPickingAllowed: está permitido recoger
|
|
@ -22,5 +22,8 @@
|
|||
},
|
||||
"Vehicle": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"RoutesMonitor": {
|
||||
"dataSource": "vn"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,61 @@
|
|||
{
|
||||
"name": "RoutesMonitor",
|
||||
"base": "Loggable",
|
||||
"options": {
|
||||
"mysql": {
|
||||
"table": "routesMonitor"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"routeFk": {
|
||||
"type": "number",
|
||||
"id": true,
|
||||
"description": "Identifier"
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"beachFk": {
|
||||
"type": "number"
|
||||
},
|
||||
"ticketPacked": {
|
||||
"type": "number"
|
||||
},
|
||||
"ticketFree": {
|
||||
"type": "number"
|
||||
},
|
||||
"ticketProduction": {
|
||||
"type": "number"
|
||||
},
|
||||
"packages": {
|
||||
"type": "number"
|
||||
},
|
||||
"note": {
|
||||
"type": "string"
|
||||
},
|
||||
"dated": {
|
||||
"type": "date"
|
||||
},
|
||||
"dockFk": {
|
||||
"type": "number"
|
||||
},
|
||||
"m3": {
|
||||
"type": "number"
|
||||
},
|
||||
"priority": {
|
||||
"type": "number"
|
||||
},
|
||||
"expeditionTruckFk": {
|
||||
"type": "number"
|
||||
},
|
||||
"m3boxes": {
|
||||
"type": "number"
|
||||
},
|
||||
"bufferFk": {
|
||||
"type": "number"
|
||||
},
|
||||
"isPickingAllowed": {
|
||||
"type": "boolean"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -49,7 +49,7 @@ module.exports = Self => {
|
|||
for (const id of ticketIds) {
|
||||
const promise = await models.Ticket.state(ctx, {
|
||||
stateFk: state.id,
|
||||
workerFk: worker.id,
|
||||
userFk: worker.id,
|
||||
ticketFk: id
|
||||
}, myOptions);
|
||||
promises.push(promise);
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
</vn-autocomplete>
|
||||
<vn-worker-autocomplete
|
||||
vn-one
|
||||
ng-model="$ctrl.workerFk">
|
||||
ng-model="$ctrl.userFk">
|
||||
</vn-worker-autocomplete>
|
||||
</vn-horizontal>
|
||||
</vn-card>
|
||||
|
|
|
@ -17,19 +17,19 @@ class Controller extends Section {
|
|||
set stateFk(value) {
|
||||
this.params.stateFk = value;
|
||||
this.isPickerDesignedState = this.getIsPickerDesignedState(value);
|
||||
this.workerFk = window.localStorage.currentUserWorkerId;
|
||||
this.userFk = window.localStorage.currentUserWorkerId;
|
||||
}
|
||||
|
||||
get stateFk() {
|
||||
return this.params.stateFk;
|
||||
}
|
||||
|
||||
set workerFk(value) {
|
||||
this.params.workerFk = value;
|
||||
set userFk(value) {
|
||||
this.params.userFk = value;
|
||||
}
|
||||
|
||||
get workerFk() {
|
||||
return this.params.workerFk;
|
||||
get userFk() {
|
||||
return this.params.userFk;
|
||||
}
|
||||
|
||||
getPickerDesignedState() {
|
||||
|
|
|
@ -29,11 +29,11 @@ describe('Ticket', () => {
|
|||
});
|
||||
});
|
||||
|
||||
describe('workerFk setter', () => {
|
||||
it('should set params.workerFk', () => {
|
||||
controller.workerFk = 1;
|
||||
describe('userFk setter', () => {
|
||||
it('should set params.userFk', () => {
|
||||
controller.userFk = 1;
|
||||
|
||||
expect(controller.params.workerFk).toEqual(1);
|
||||
expect(controller.params.userFk).toEqual(1);
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ const UserError = require('vn-loopback/util/user-error');
|
|||
module.exports = Self => {
|
||||
Self.remoteMethodCtx('deleteTimeEntry', {
|
||||
description: 'Deletes a manual time entry for a worker if the user role is above the worker',
|
||||
accessType: 'READ',
|
||||
accessType: 'WRITE',
|
||||
accepts: [{
|
||||
arg: 'id',
|
||||
type: 'number',
|
||||
|
|
|
@ -7,7 +7,7 @@ module.exports = {
|
|||
this.invoice = await this.findOneFromDef('invoice', [this.reference]);
|
||||
this.checkMainEntity(this.invoice);
|
||||
this.client = await this.findOneFromDef('client', [this.reference]);
|
||||
this.incoterms = await this.findOneFromDef('incoterms', [this.reference, this.reference, this.reference]);
|
||||
this.incoterms = await this.findOneFromDef('incoterms', [this.reference, this.reference, this.reference, this.reference]);
|
||||
},
|
||||
props: {
|
||||
reference: {
|
||||
|
|
|
@ -1,13 +1,12 @@
|
|||
SELECT
|
||||
c.id,
|
||||
c.socialName,
|
||||
c.street AS postalAddress,
|
||||
IF (ios.taxAreaFk IS NOT NULL, CONCAT(cty.code, c.fi), c.fi) fi,
|
||||
CONCAT(c.postcode, ' - ', c.city) postcodeCity
|
||||
FROM vn.invoiceOut io
|
||||
JOIN vn.client c ON c.id = io.clientFk
|
||||
JOIN vn.country cty ON cty.id = c.countryFk
|
||||
LEFT JOIN vn.invoiceOutSerial ios ON ios.code = io.serial
|
||||
AND ios.taxAreaFk = 'CEE'
|
||||
LEFT JOIN ticket t ON t.refFk = io.ref
|
||||
WHERE t.refFk = ?
|
||||
SELECT c.id,
|
||||
c.socialName,
|
||||
c.street postalAddress,
|
||||
IF (ios.taxAreaFk IS NOT NULL, CONCAT(cty.code, c.fi), c.fi) fi,
|
||||
CONCAT(c.postcode, ' - ', c.city) postcodeCity
|
||||
FROM vn.invoiceOut io
|
||||
JOIN vn.client c ON c.id = io.clientFk
|
||||
JOIN vn.country cty ON cty.id = c.countryFk
|
||||
LEFT JOIN vn.invoiceOutSerial ios ON ios.code = io.serial
|
||||
AND ios.taxAreaFk = 'CEE'
|
||||
LEFT JOIN ticket t ON t.refFk = io.ref
|
||||
WHERE t.refFk = ?
|
|
@ -1,38 +1,14 @@
|
|||
SELECT io.issued,
|
||||
c.socialName,
|
||||
c.street postalAddress,
|
||||
c.fi,
|
||||
io.clientFk,
|
||||
c.postcode,
|
||||
c.city,
|
||||
io.companyFk,
|
||||
io.ref,
|
||||
tc.code,
|
||||
s.concept,
|
||||
s.quantity,
|
||||
s.price,
|
||||
s.discount,
|
||||
s.ticketFk,
|
||||
t.shipped,
|
||||
t.refFk,
|
||||
a.nickname,
|
||||
s.itemFk,
|
||||
s.id saleFk,
|
||||
pm.name AS pmname,
|
||||
sa.iban,
|
||||
c.phone,
|
||||
MAX(t.packages) packages,
|
||||
SELECT pack.packages,
|
||||
a.incotermsFk,
|
||||
ic.name incotermsName ,
|
||||
ic.name incotermsName,
|
||||
t.weight,
|
||||
t.observations,
|
||||
ca.fiscalName customsAgentName,
|
||||
ca.street customsAgentStreet,
|
||||
ca.nif customsAgentNif,
|
||||
ca.phone customsAgentPhone,
|
||||
ca.email customsAgentEmail,
|
||||
CAST(sub2.volume AS DECIMAL (10,2)) volume,
|
||||
sub3.intrastat
|
||||
CAST(vol.volume AS DECIMAL (10,2)) volume,
|
||||
intr.intrastat
|
||||
FROM vn.invoiceOut io
|
||||
JOIN vn.supplier su ON su.id = io.companyFk
|
||||
JOIN vn.client c ON c.id = io.clientFk
|
||||
|
@ -42,26 +18,35 @@ SELECT io.issued,
|
|||
LEFT JOIN vn.incoterms ic ON ic.code = a.incotermsFk
|
||||
LEFT JOIN vn.customsAgent ca ON ca.id = a.customsAgentFk
|
||||
JOIN vn.sale s ON s.ticketFk = t.id
|
||||
JOIN (SELECT SUM(volume) volume
|
||||
FROM vn.invoiceOut io
|
||||
JOIN vn.ticket t ON t.refFk = io.ref
|
||||
JOIN vn.saleVolume sv ON sv.ticketFk = t.id
|
||||
WHERE t.refFk = ?
|
||||
) sub2 ON TRUE
|
||||
JOIN vn.itemTaxCountry itc ON itc.countryFk = su.countryFk AND itc.itemFk = s.itemFk
|
||||
JOIN (
|
||||
SELECT SUM(volume) volume, COUNT(*) packages
|
||||
FROM vn.invoiceOut io
|
||||
JOIN vn.ticket t ON t.refFk = io.ref
|
||||
JOIN vn.saleVolume sv ON sv.ticketFk = t.id
|
||||
WHERE t.refFk = ?
|
||||
) vol
|
||||
JOIN vn.itemTaxCountry itc ON itc.countryFk = su.countryFk
|
||||
AND itc.itemFk = s.itemFk
|
||||
JOIN vn.taxClass tc ON tc.id = itc.taxClassFk
|
||||
JOIN vn.invoiceOutSerial ios ON ios.code = io.serial AND ios.taxAreaFk = 'WORLD'
|
||||
JOIN vn.invoiceOutSerial ios ON ios.code = io.serial
|
||||
AND ios.taxAreaFk = 'WORLD'
|
||||
JOIN vn.country cty ON cty.id = c.countryFk
|
||||
JOIN vn.payMethod pm ON pm.id = c .payMethodFk
|
||||
JOIN vn.company co ON co.id=io.companyFk
|
||||
JOIN vn.supplierAccount sa ON sa.id=co.supplierAccountFk
|
||||
LEFT JOIN (SELECT GROUP_CONCAT(DISTINCT ir.description ORDER BY ir.description SEPARATOR '. ' ) as intrastat
|
||||
FROM vn.ticket t
|
||||
JOIN vn.invoiceOut io ON io.ref = t.refFk
|
||||
JOIN vn.sale s ON t.id = s.ticketFk
|
||||
JOIN vn.item i ON i.id = s.itemFk
|
||||
JOIN vn.intrastat ir ON ir.id = i.intrastatFk
|
||||
WHERE t.refFk = ?
|
||||
)sub3 ON TRUE
|
||||
WHERE t.refFk = ?
|
||||
|
||||
JOIN (
|
||||
SELECT GROUP_CONCAT(DISTINCT ir.description ORDER BY ir.description SEPARATOR '. ' ) intrastat
|
||||
FROM vn.ticket t
|
||||
JOIN vn.invoiceOut io ON io.ref = t.refFk
|
||||
JOIN vn.sale s ON t.id = s.ticketFk
|
||||
JOIN vn.item i ON i.id = s.itemFk
|
||||
JOIN vn.intrastat ir ON ir.id = i.intrastatFk
|
||||
WHERE t.refFk = ?
|
||||
) intr
|
||||
JOIN (
|
||||
SELECT SUM(packages) packages
|
||||
FROM ticket
|
||||
WHERE refFk = ?
|
||||
) pack
|
||||
WHERE t.refFk = ?
|
||||
LIMIT 1
|
||||
|
|
|
@ -1,18 +1,17 @@
|
|||
SELECT
|
||||
io.id,
|
||||
io.issued,
|
||||
io.clientFk,
|
||||
io.companyFk,
|
||||
io.ref,
|
||||
pm.code AS payMethodCode,
|
||||
cny.code companyCode,
|
||||
sa.iban,
|
||||
ios.footNotes
|
||||
FROM invoiceOut io
|
||||
JOIN client c ON c.id = io.clientFk
|
||||
JOIN payMethod pm ON pm.id = c.payMethodFk
|
||||
JOIN company cny ON cny.id = io.companyFk
|
||||
JOIN supplierAccount sa ON sa.id = cny.supplierAccountFk
|
||||
LEFT JOIN invoiceOutSerial ios ON ios.code = io.serial
|
||||
LEFT JOIN ticket t ON t.refFk = io.ref
|
||||
WHERE t.refFk = ?
|
||||
SELECT io.id,
|
||||
io.issued,
|
||||
io.clientFk,
|
||||
io.companyFk,
|
||||
io.ref,
|
||||
pm.code payMethodCode,
|
||||
cny.code companyCode,
|
||||
sa.iban,
|
||||
ios.footNotes
|
||||
FROM invoiceOut io
|
||||
JOIN client c ON c.id = io.clientFk
|
||||
JOIN payMethod pm ON pm.id = c.payMethodFk
|
||||
JOIN company cny ON cny.id = io.companyFk
|
||||
JOIN supplierAccount sa ON sa.id = cny.supplierAccountFk
|
||||
LEFT JOIN invoiceOutSerial ios ON ios.code = io.serial
|
||||
LEFT JOIN ticket t ON t.refFk = io.ref
|
||||
WHERE t.refFk = ?
|
Loading…
Reference in New Issue