Merge pull request 'waitForState minor refactor' (#442) from 2568-ticket_basic_data_e2e_fix into dev
gitea/salix/pipeline/head This commit looks good
Details
gitea/salix/pipeline/head This commit looks good
Details
Reviewed-on: #442 Reviewed-by: Bernat Exposito <bernat@verdnatura.es>
This commit is contained in:
commit
2c1b89db38
|
@ -1,3 +1,4 @@
|
||||||
INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`) VALUES ('Supplier', 'updateFiscalData', 'WRITE', 'ALLOW', 'ROLE', 'administrative');
|
|
||||||
INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`) VALUES ('Supplier', '*', 'READ', 'ALLOW', 'ROLE', 'employee');
|
INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`) VALUES ('Supplier', '*', 'READ', 'ALLOW', 'ROLE', 'employee');
|
||||||
|
INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`) VALUES ('Supplier', '*', 'WRITE', 'ALLOW', 'ROLE', 'administrative');
|
||||||
INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`) VALUES ('SupplierLog', '*', 'READ', 'ALLOW', 'ROLE', 'employee');
|
INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`) VALUES ('SupplierLog', '*', 'READ', 'ALLOW', 'ROLE', 'employee');
|
||||||
|
INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`) VALUES ('SupplierContact', '*', 'WRITE', 'ALLOW', 'ROLE', 'administrative');
|
|
@ -0,0 +1,43 @@
|
||||||
|
DROP PROCEDURE IF EXISTS `vn`.`timeControl_calculate`;
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE DEFINER=`root`@`%` PROCEDURE `vn`.`timeControl_calculate`(vDatedFrom DATETIME, vDatedTo DATETIME)
|
||||||
|
BEGIN
|
||||||
|
SET @vIsOdd := TRUE;
|
||||||
|
SET @vUser := NULL;
|
||||||
|
SET @vDated := NULL;
|
||||||
|
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp.timeControlCalculate;
|
||||||
|
|
||||||
|
CREATE TEMPORARY TABLE tmp.timeControlCalculate
|
||||||
|
SELECT
|
||||||
|
userFk,
|
||||||
|
dated,
|
||||||
|
IF( timeWork >= 18000, @timeWork:=timeWork + 1200, @timeWork:=timeWork) timeWorkSeconds,
|
||||||
|
SEC_TO_TIME(@timeWork ) timeWorkSexagesimal,
|
||||||
|
@timeWork / 3600 timeWorkDecimal,
|
||||||
|
timed
|
||||||
|
FROM (SELECT SUM(timeWork) timeWork,
|
||||||
|
userFk,
|
||||||
|
dated,
|
||||||
|
GROUP_CONCAT(DATE_FORMAT(sub.timed,"%H:%i") ORDER BY sub.timed ASC SEPARATOR ' - ') timed
|
||||||
|
FROM (SELECT IF(@vUser = wtc.userFk, @vUser :=@vUser, @vUser := wtc.userFk),
|
||||||
|
IF(@vIsOdd, @vIsOdd := FALSE, @vIsOdd := TRUE),
|
||||||
|
IF(direction='in', @vIsOdd := TRUE, @vIsOdd := @vIsOdd),
|
||||||
|
IF(@vIsOdd, @vLastTimed:=UNIX_TIMESTAMP(timed),@vLastTimed:=@vLastTimed),
|
||||||
|
IF(@vIsOdd, 0, UNIX_TIMESTAMP(timed)-@vLastTimed) timeWork,
|
||||||
|
IF(direction='in', @vDated := DATE(wtc.timed), @vDated :=@vDated) dated,
|
||||||
|
wtc.timed timed,
|
||||||
|
wtc.userFk,
|
||||||
|
direction
|
||||||
|
FROM (SELECT DISTINCT(wtc.id), wtc.userFk, wtc.timed, wtc.direction
|
||||||
|
FROM workerTimeControl wtc
|
||||||
|
JOIN tmp.`user` w ON w.userFk = wtc.userFk
|
||||||
|
WHERE wtc.timed BETWEEN vDatedFrom AND vDatedTo
|
||||||
|
ORDER BY userFk, timed ASC
|
||||||
|
) wtc
|
||||||
|
WHERE wtc.timed BETWEEN vDatedFrom AND vDatedTo
|
||||||
|
) sub
|
||||||
|
GROUP BY userFk, dated
|
||||||
|
)sub2;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -1,2 +0,0 @@
|
||||||
INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`) VALUES ('supplier', '*', 'WRITE', 'ALLOW', 'ROLE', 'administrative');
|
|
||||||
INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`) VALUES ('SupplierContact', '*', 'WRITE', 'ALLOW', 'ROLE', 'administrative');
|
|
|
@ -123,15 +123,20 @@ let actions = {
|
||||||
},
|
},
|
||||||
|
|
||||||
waitForState: async function(state) {
|
waitForState: async function(state) {
|
||||||
await this.waitFor(state => {
|
await this.waitForFunction(state => {
|
||||||
let $state = angular.element(document.body).injector().get('$state');
|
let $state = angular.element(document.body).injector().get('$state');
|
||||||
return !$state.transition && $state.is(state);
|
return !$state.transition && $state.is(state);
|
||||||
}, {}, state);
|
}, {}, state);
|
||||||
|
await this.waitForFunction(() => {
|
||||||
|
return angular.element(() => {
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
});
|
||||||
await this.waitForSpinnerLoad();
|
await this.waitForSpinnerLoad();
|
||||||
},
|
},
|
||||||
|
|
||||||
waitForTransition: async function() {
|
waitForTransition: async function() {
|
||||||
await this.waitFor(() => {
|
await this.waitForFunction(() => {
|
||||||
const $state = angular.element(document.body).injector().get('$state');
|
const $state = angular.element(document.body).injector().get('$state');
|
||||||
return !$state.transition;
|
return !$state.transition;
|
||||||
});
|
});
|
||||||
|
@ -522,7 +527,7 @@ let actions = {
|
||||||
},
|
},
|
||||||
|
|
||||||
waitForSpinnerLoad: async function() {
|
waitForSpinnerLoad: async function() {
|
||||||
await this.waitFor('vn-topbar vn-spinner', {hidden: true});
|
await this.waitForSelector('vn-topbar vn-spinner', {hidden: true});
|
||||||
},
|
},
|
||||||
|
|
||||||
waitForWatcherData: async function(selector) {
|
waitForWatcherData: async function(selector) {
|
||||||
|
|
|
@ -48,7 +48,7 @@ describe('Ticket Create new tracking state path', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should now access to the create state view by clicking the create floating button', async() => {
|
it('should now access to the create state view by clicking the create floating button', async() => {
|
||||||
await page.waitFor('.vn-popup', {hidden: true}),
|
await page.waitFor('.vn-popup', {hidden: true});
|
||||||
await page.waitToClick(selectors.ticketTracking.createStateButton);
|
await page.waitToClick(selectors.ticketTracking.createStateButton);
|
||||||
await page.waitForState('ticket.card.tracking.edit');
|
await page.waitForState('ticket.card.tracking.edit');
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue