7430_devToTest #2490
|
@ -259,7 +259,7 @@ BEGIN
|
|||
JOIN tmp.ticketComponentSum tcs ON tcs.itemFk = tcc.itemFk
|
||||
AND tcs.warehouseFk = tcc.warehouseFk
|
||||
WHERE IFNULL(tcs.classRate, 1) = 1
|
||||
AND NOT tcc.groupingMode = 'packing'
|
||||
AND (tcc.groupingMode = 'grouping' OR tcc.groupingMode IS NULL)
|
||||
AND (tcc.packing > tcc.`grouping` OR tcc.groupingMode IS NULL)
|
||||
GROUP BY tcs.warehouseFk, tcs.itemFk;
|
||||
|
||||
|
|
|
@ -28,8 +28,7 @@ BEGIN
|
|||
JOIN entry e ON e.invoiceInFk = ii.id
|
||||
JOIN duaEntry de ON de.entryFk = e.id
|
||||
JOIN dua d ON d.id = de.duaFk
|
||||
SET ii.isBooked = TRUE,
|
||||
ii.booked = IFNULL(ii.booked,d.booked),
|
||||
SET ii.booked = IFNULL(ii.booked, d.booked),
|
||||
ii.operated = IFNULL(ii.operated, d.operated),
|
||||
ii.issued = IFNULL(ii.issued, d.issued),
|
||||
ii.bookEntried = IFNULL(ii.bookEntried, d.bookEntried),
|
||||
|
@ -71,5 +70,9 @@ BEGIN
|
|||
SET ASIEN = vASIEN
|
||||
WHERE id = vDuaFk;
|
||||
|
||||
UPDATE invoiceIn ii
|
||||
JOIN duaInvoiceIn dii ON dii.invoiceInFk = ii.id
|
||||
SET ii.isBooked = TRUE
|
||||
WHERE dii.duaFk = vDuaFk;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
|
|
@ -10,8 +10,6 @@ BEGIN
|
|||
DECLARE vLines INT;
|
||||
DECLARE vHasDistinctTransactions INT;
|
||||
|
||||
CALL invoiceIn_checkBooked(vInvoiceInFk);
|
||||
|
||||
SELECT taxRowLimit INTO vTaxRowLimit FROM invoiceInConfig;
|
||||
|
||||
SELECT COUNT(*) INTO vLines
|
||||
|
|
|
@ -5,8 +5,6 @@ BEGIN
|
|||
DECLARE vDated DATE;
|
||||
DECLARE vExpenseFk VARCHAR(10);
|
||||
|
||||
CALL invoiceIn_checkBooked(vInvoiceInFk);
|
||||
|
||||
SELECT MAX(rr.dated) INTO vDated
|
||||
FROM referenceRate rr
|
||||
JOIN invoiceIn ii ON ii.id = vInvoiceInFk
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`invoiceInCorrection_beforeDelete`
|
||||
BEFORE DELETE ON `invoiceInCorrection`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
CALL invoiceIn_checkBooked(OLD.correctingFk);
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -1,8 +0,0 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`invoiceInCorrection_beforeInsert`
|
||||
BEFORE INSERT ON `invoiceInCorrection`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
CALL invoiceIn_checkBooked(NEW.correctingFk);
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -1,8 +0,0 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`invoiceInCorrection_beforeUpdate`
|
||||
BEFORE UPDATE ON `invoiceInCorrection`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
CALL invoiceIn_checkBooked(OLD.correctingFk);
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -1,8 +0,0 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`invoiceInDueDay_beforeDelete`
|
||||
BEFORE DELETE ON `invoiceInDueDay`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
CALL invoiceIn_checkBooked(OLD.invoiceInFk);
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -5,8 +5,6 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`invoiceInDueDay_befor
|
|||
BEGIN
|
||||
DECLARE vIsNotified BOOLEAN;
|
||||
|
||||
CALL invoiceIn_checkBooked(NEW.invoiceInFk);
|
||||
|
||||
SET NEW.editorFk = account.myUser_getId();
|
||||
|
||||
SELECT isNotified INTO vIsNotified
|
||||
|
|
|
@ -5,7 +5,6 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`invoiceInDueDay_befor
|
|||
BEGIN
|
||||
DECLARE vIsNotified BOOLEAN;
|
||||
|
||||
CALL invoiceIn_checkBooked(OLD.invoiceInFk);
|
||||
SET NEW.editorFk = account.myUser_getId();
|
||||
|
||||
SELECT isNotified INTO vIsNotified
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`invoiceInIntrastat_beforeDelete`
|
||||
BEFORE DELETE ON `invoiceInIntrastat`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
CALL invoiceIn_checkBooked(OLD.invoiceInFk);
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -1,8 +0,0 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`invoiceInIntrastat_beforeInsert`
|
||||
BEFORE INSERT ON `invoiceInIntrastat`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
CALL invoiceIn_checkBooked(NEW.invoiceInFk);
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -1,8 +0,0 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`invoiceInIntrastat_beforeUpdate`
|
||||
BEFORE UPDATE ON `invoiceInIntrastat`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
CALL invoiceIn_checkBooked(OLD.invoiceInFk);
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -1,8 +0,0 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`invoiceInTax_beforeDelete`
|
||||
BEFORE DELETE ON `invoiceInTax`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
CALL invoiceIn_checkBooked(OLD.invoiceInFk);
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -3,8 +3,6 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`invoiceInTax_beforeUp
|
|||
BEFORE UPDATE ON `invoiceInTax`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
CALL invoiceIn_checkBooked(OLD.invoiceInFk);
|
||||
|
||||
IF NOT (NEW.invoiceInFk <=> OLD.invoiceInFk) THEN
|
||||
CALL invoiceInTax_afterUpsert(NEW.invoiceInFk);
|
||||
END IF;
|
||||
|
|
|
@ -5,10 +5,6 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`invoiceIn_beforeUpdat
|
|||
BEGIN
|
||||
DECLARE vWithholdingSageFk INT;
|
||||
|
||||
IF NEW.isBooked = OLD.isBooked THEN
|
||||
CALL invoiceIn_checkBooked(OLD.id);
|
||||
END IF;
|
||||
|
||||
IF NOT (NEW.supplierRef <=> OLD.supplierRef) AND NOT util.checkPrintableChars(NEW.supplierRef) THEN
|
||||
CALL util.throw('The invoiceIn reference contains invalid characters');
|
||||
END IF;
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
DELETE FROM salix.ACL
|
||||
WHERE model = 'Worker'
|
||||
AND property = '__get__summary'
|
||||
AND principalId = 'employee';
|
||||
|
||||
UPDATE salix.ACL SET principalId = 'employee'
|
||||
WHERE model = 'Worker'
|
||||
AND property IN ('find','findById','findOne')
|
||||
AND principalId = 'hr';
|
|
@ -2,6 +2,7 @@ import selectors from '../../helpers/selectors.js';
|
|||
import getBrowser from '../../helpers/puppeteer';
|
||||
|
||||
describe('Worker summary path', () => {
|
||||
const workerId = 3;
|
||||
let browser;
|
||||
let page;
|
||||
beforeAll(async() => {
|
||||
|
@ -9,7 +10,7 @@ describe('Worker summary path', () => {
|
|||
page = browser.page;
|
||||
await page.loginAndModule('employee', 'worker');
|
||||
const httpDataResponse = page.waitForResponse(response => {
|
||||
return response.status() === 200 && response.url().includes(`Workers/summary`);
|
||||
return response.status() === 200 && response.url().includes(`Workers/${workerId}`);
|
||||
});
|
||||
await page.accessToSearchResult('agencyNick');
|
||||
await httpDataResponse;
|
||||
|
|
|
@ -92,86 +92,5 @@
|
|||
"model": "WorkerTeamCollegues",
|
||||
"foreignKey": "workerFk"
|
||||
}
|
||||
},
|
||||
"scopes":{
|
||||
"summary": {
|
||||
"include": [
|
||||
{
|
||||
"relation": "user",
|
||||
"scope": {
|
||||
"fields": ["email", "name", "nickname", "roleFk", "emailVerified"],
|
||||
"include": [
|
||||
{
|
||||
"relation": "role",
|
||||
"scope": {
|
||||
"fields": ["name"]
|
||||
}
|
||||
},
|
||||
{
|
||||
"relation": "emailUser",
|
||||
"scope": {
|
||||
"fields": ["email"]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
"relation": "department",
|
||||
"scope": {
|
||||
"include": {
|
||||
"relation": "department"
|
||||
}
|
||||
}
|
||||
}, {
|
||||
"relation": "boss"
|
||||
}, {
|
||||
"relation": "client",
|
||||
"scope": {
|
||||
"fields": [
|
||||
"id",
|
||||
"name",
|
||||
"fi",
|
||||
"socialName",
|
||||
"contact",
|
||||
"street",
|
||||
"city",
|
||||
"postcode",
|
||||
"email",
|
||||
"mobile",
|
||||
"isActive",
|
||||
"credit",
|
||||
"creditInsurance",
|
||||
"iban",
|
||||
"dueDay",
|
||||
"isEqualizated",
|
||||
"isFreezed",
|
||||
"hasToInvoiceByAddress",
|
||||
"hasToInvoice",
|
||||
"isToBeMailed",
|
||||
"hasSepaVnl",
|
||||
"hasLcr",
|
||||
"hasCoreVnl",
|
||||
"hasCoreVnh",
|
||||
"hasIncoterms",
|
||||
"isTaxDataChecked",
|
||||
"quality",
|
||||
"isVies",
|
||||
"isRelevant",
|
||||
"accountingAccount",
|
||||
"created",
|
||||
"sageTaxTypeFk",
|
||||
"sageTransactionTypeFk",
|
||||
"businessTypeFk",
|
||||
"salesPersonFk",
|
||||
"hasElectronicInvoice",
|
||||
"rating",
|
||||
"recommendedCredit"
|
||||
]
|
||||
}
|
||||
}, {
|
||||
"relation": "sip"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,13 +4,37 @@ import ModuleCard from 'salix/components/module-card';
|
|||
class Controller extends ModuleCard {
|
||||
reload() {
|
||||
const filter = {
|
||||
where: {
|
||||
id: this.$params.id}
|
||||
include: [
|
||||
{
|
||||
relation: 'user',
|
||||
scope: {
|
||||
fields: ['name', 'emailVerified'],
|
||||
include: {
|
||||
relation: 'emailUser',
|
||||
scope: {
|
||||
fields: ['email']
|
||||
}
|
||||
}
|
||||
}
|
||||
}, {
|
||||
relation: 'sip',
|
||||
scope: {
|
||||
fields: ['extension', 'secret']
|
||||
}
|
||||
}, {
|
||||
relation: 'department',
|
||||
scope: {
|
||||
include: {
|
||||
relation: 'department'
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
return Promise.all([
|
||||
this.$http.get(`Workers/summary`, {filter})
|
||||
.then(res => this.worker = res.data[0]),
|
||||
this.$http.get(`Workers/${this.$params.id}`, {filter})
|
||||
.then(res => this.worker = res.data),
|
||||
this.$http.get(`Workers/${this.$params.id}/activeContract`)
|
||||
.then(res => this.hasWorkCenter = res.data?.workCenterFk)
|
||||
]);
|
||||
|
|
|
@ -37,11 +37,41 @@ class Controller extends Descriptor {
|
|||
|
||||
loadData() {
|
||||
const filter = {
|
||||
where: {id: this.id},
|
||||
include: [
|
||||
{
|
||||
relation: 'user',
|
||||
scope: {
|
||||
fields: ['name', 'emailVerified'],
|
||||
include: {
|
||||
relation: 'emailUser',
|
||||
scope: {
|
||||
fields: ['email']
|
||||
}
|
||||
}
|
||||
}
|
||||
}, {
|
||||
relation: 'client',
|
||||
scope: {
|
||||
fields: ['fi']
|
||||
}
|
||||
}, {
|
||||
relation: 'sip',
|
||||
scope: {
|
||||
fields: ['extension']
|
||||
}
|
||||
}, {
|
||||
relation: 'department',
|
||||
scope: {
|
||||
include: {
|
||||
relation: 'department'
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
return this.getData(`Workers/summary`, {filter})
|
||||
.then(res => this.entity = res.data[0]);
|
||||
return this.getData(`Workers/${this.id}`, {filter})
|
||||
.then(res => this.entity = res.data);
|
||||
}
|
||||
|
||||
getPassRequirements() {
|
||||
|
|
|
@ -14,14 +14,14 @@ describe('vnWorkerDescriptor', () => {
|
|||
describe('loadData()', () => {
|
||||
it(`should perform a get query to store the worker data into the controller`, () => {
|
||||
const id = 1;
|
||||
const response = ['foo'];
|
||||
const response = 'foo';
|
||||
|
||||
$httpBackend.whenGET('UserConfigs/getUserConfig').respond({});
|
||||
$httpBackend.expectRoute('GET', `Workers/summary`).respond(response);
|
||||
$httpBackend.expectRoute('GET', `Workers/${id}`).respond(response);
|
||||
controller.id = id;
|
||||
$httpBackend.flush();
|
||||
|
||||
expect([controller.worker]).toEqual(response);
|
||||
expect(controller.worker).toEqual(response);
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -10,14 +10,53 @@ class Controller extends Summary {
|
|||
this.$.worker = null;
|
||||
if (!value) return;
|
||||
|
||||
const query = `Workers/${value.id}`;
|
||||
const filter = {
|
||||
where: {
|
||||
id: value.id
|
||||
include: [
|
||||
{
|
||||
relation: 'user',
|
||||
scope: {
|
||||
fields: ['name', 'roleFk'],
|
||||
include: [{
|
||||
relation: 'role',
|
||||
scope: {
|
||||
fields: ['name']
|
||||
}
|
||||
},
|
||||
{
|
||||
relation: 'emailUser',
|
||||
scope: {
|
||||
fields: ['email']
|
||||
}
|
||||
}]
|
||||
}
|
||||
},
|
||||
{
|
||||
relation: 'client',
|
||||
scope: {fields: ['fi', 'phone']}
|
||||
},
|
||||
{
|
||||
relation: 'boss',
|
||||
scope: {fields: ['id', 'name']}
|
||||
},
|
||||
{
|
||||
relation: 'sip',
|
||||
scope: {fields: ['extension']}
|
||||
},
|
||||
{
|
||||
relation: 'department',
|
||||
scope: {
|
||||
include: {
|
||||
relation: 'department',
|
||||
scope: {fields: ['id', 'code', 'name']}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
this.$http.get(`Workers/summary`, {filter}).then(res => {
|
||||
this.$.worker = res.data[0];
|
||||
this.$http.get(query, {params: {filter}}).then(res => {
|
||||
this.$.worker = res.data;
|
||||
});
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue