diff --git a/Jenkinsfile b/Jenkinsfile index 06addc9408..9ed7055db4 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -8,6 +8,7 @@ def RUN_BUILD def BRANCH_ENV = [ test: 'test', master: 'production', + main: 'production', beta: 'production' ] @@ -20,12 +21,14 @@ node { 'dev', 'test', 'master', + 'main', 'beta' ].contains(env.BRANCH_NAME) FROM_GIT = env.JOB_NAME.startsWith('gitea/') RUN_TESTS = !PROTECTED_BRANCH && FROM_GIT RUN_BUILD = PROTECTED_BRANCH && FROM_GIT + IS_LATEST = ['master', 'main'].contains(env.BRANCH_NAME) // https://www.jenkins.io/doc/book/pipeline/jenkinsfile/#using-environment-variables echo "NODE_NAME: ${env.NODE_NAME}" @@ -73,6 +76,7 @@ pipeline { def packageJson = readJSON file: 'package.json' def version = "${packageJson.version}-build${env.BUILD_ID}" writeFile(file: 'VERSION.txt', text: version) + echo "VERSION: ${version}" } } } @@ -105,93 +109,72 @@ pipeline { } } } - stage('Stack') { + stage('Test') { + when { + expression { RUN_TESTS } + } + environment { + NODE_ENV = '' + } parallel { stage('Back') { - stages { - stage('Test') { - when { - expression { RUN_TESTS } - } - environment { - NODE_ENV = '' - } - steps { - sh 'node back/tests.js --junit' - } - post { - always { - junit( - testResults: 'junitresults.xml', - allowEmptyResults: true - ) - } - } - } - stage('Build') { - when { - expression { RUN_BUILD } - } - environment { - VERSION = readFile 'VERSION.txt' - } - steps { - sh 'docker-compose build back' - } + steps { + sh 'node back/tests.js --junit' + } + post { + always { + junit( + testResults: 'junitresults.xml', + allowEmptyResults: true + ) } } } stage('Front') { - when { - expression { FROM_GIT } + steps { + sh 'jest --ci --reporters=default --reporters=jest-junit --maxWorkers=10' } - stages { - stage('Test') { - when { - expression { RUN_TESTS } - } - environment { - NODE_ENV = '' - } - steps { - sh 'jest --ci --reporters=default --reporters=jest-junit --maxWorkers=10' - } - post { - always { - junit( - testResults: 'junit.xml', - allowEmptyResults: true - ) - } - } - } - stage('Build') { - when { - expression { RUN_BUILD } - } - environment { - VERSION = readFile 'VERSION.txt' - } - steps { - sh 'gulp build' - sh 'docker-compose build front' - } + post { + always { + junit( + testResults: 'junit.xml', + allowEmptyResults: true + ) } } } } } - stage('Push') { + stage('Build') { when { expression { RUN_BUILD } } environment { - CREDENTIALS = credentials('docker-registry') VERSION = readFile 'VERSION.txt' + CREDENTIALS = credentials('docker-registry') } - steps { - sh 'docker login --username $CREDENTIALS_USR --password $CREDENTIALS_PSW $REGISTRY' - sh 'docker-compose push' + parallel { + stage('Back') { + steps { + dockerBuildPush 'salix-back', '.', 'back/Dockerfile' + } + } + stage('Front') { + steps { + sh 'gulp build' + dockerBuildPush 'salix-front', 'front' + } + } + stage('DB') { + steps { + sh 'npx myt run -t' + sh 'docker exec vn-database sh -c "cp -r /var/lib/mysql /data"' + sh 'docker commit vn-database vn_db' + sh 'docker stop vn-database' + sh 'docker rm vn-database' + dockerBuildPush 'salix-db', 'db' + } + } } } stage('Deploy') { @@ -264,3 +247,16 @@ pipeline { } } } + +def dockerBuildPush(imageName, context, dockerfile = null) { + if (dockerfile == null) + dockerfile = "${context}/Dockerfile" + + docker.withRegistry("https://${env.REGISTRY}", 'docker-registry') { + def baseImage = "${imageName}:${env.VERSION}" + def image = docker.build(baseImage, "-f ${dockerfile} ${context}") + image.push() + image.push(env.BRANCH_NAME) + if (IS_LATEST) image.push('latest') + } +} diff --git a/back/Dockerfile b/back/Dockerfile index b2c3298966..bd48374d6e 100644 --- a/back/Dockerfile +++ b/back/Dockerfile @@ -25,7 +25,7 @@ RUN apt-get update \ libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 \ libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 \ libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 \ - libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 \ + libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 build-essential \ fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget # Extra dependencies @@ -55,4 +55,4 @@ COPY \ README.md \ ./ -CMD ["node", "--tls-min-v1.0", "--openssl-legacy-provider", "./loopback/server/server.js"] \ No newline at end of file +CMD ["node", "--tls-min-v1.0", "--openssl-legacy-provider", "./loopback/server/server.js"] diff --git a/db/Dockerfile b/db/Dockerfile new file mode 100644 index 0000000000..599c739ea7 --- /dev/null +++ b/db/Dockerfile @@ -0,0 +1,4 @@ +FROM mariadb:10.11.6 +ENV TZ Europe/Madrid +COPY --from=vn_db /data /var/lib/mysql +CMD ["mysqld"] diff --git a/db/dump/fixtures.before.sql b/db/dump/fixtures.before.sql index 4f71d8b845..8dc363590c 100644 --- a/db/dump/fixtures.before.sql +++ b/db/dump/fixtures.before.sql @@ -799,7 +799,7 @@ INSERT INTO `vn`.`ticket`(`id`, `priority`, `agencyModeFk`,`warehouseFk`,`routeF (35, 1, 1, 1, 3, util.VN_CURDATE(), util.VN_CURDATE(), 1102, 'Somewhere in Philippines', 123, NULL, 0, 1, 16, 0, util.VN_CURDATE(), NULL, NULL, NULL, NULL), (36, 1, 1, 1, 3, util.VN_CURDATE(), util.VN_CURDATE(), 1102, 'Ant-Man Adventure', 123, NULL, 0, 1, 16, 0, util.VN_CURDATE(), NULL, NULL, NULL, NULL), (37, 1, 1, 1, 3, util.VN_CURDATE(), util.VN_CURDATE(), 1110, 'Deadpool swords', 123, NULL, 0, 1, 16, 0, util.VN_CURDATE(), NULL, NULL, NULL, NULL), - (1000000, NULL, 1, 1, NULL, util.VN_CURDATE(), util.VN_CURDATE(), 1, 'employee', 131, NULL, 0, 1, 1.00, 0.00, CURDATE(), NULL, NULL, '', NULL); + (1000000, NULL, 1, 1, NULL, util.VN_CURDATE(), util.VN_CURDATE(), 1, 'employee', 121, NULL, 0, 1, 1.00, 0.00, CURDATE(), NULL, NULL, '', NULL); INSERT INTO `vn`.`ticketObservation`(`id`, `ticketFk`, `observationTypeFk`, `description`) VALUES @@ -1609,12 +1609,12 @@ INSERT INTO `bs`.`waste`(`buyerFk`, `year`, `week`, `itemFk`, `itemTypeFk`, `sal (13, 7, 1, 50, 0, 3, 1, 2.000, 2.000, 0.000, 1, 1, 'packing', NULL, 0.00, 99.6, 99.4, 0, 1, 0, NULL, 4, util.VN_CURDATE()), (14, 7, 2, 5, 0, 3, 1, 2.000, 2.000, 0.000, 10, 10, 'grouping', NULL, 0.00, 7.30, 7.00, 0, 1, 0, NULL, 4, util.VN_CURDATE()), (15, 7, 4, 1.25, 0, 3, 1, 2.000, 2.000, 0.000, 10, 10, 'grouping', NULL, 0.00, 1.75, 1.67, 0, 1, 0, NULL, 4, util.VN_CURDATE()), - (16, 99, 1, 50.0000, 5000, 4, 1, 1.500, 1.500, 0.000, 1, 1, 'packing', NULL, 0.00, 99.60, 99.40, 0, 1, 0, NULL, 1.00, '2024-07-30 08:13:51.000'), + (16, 99, 1, 50.0000, 5000, 4, 1, 1.500, 1.500, 0.000, 1, 1, 'packing', NULL, 0.00, 99.60, 99.40, 0, 1, 0, NULL, 1.00, util.VN_CURDATE()), (17, 11, 1, 50, 5000, 4, 1, 1.500, 1.500, 0.000, 1, 1, 'packing', NULL, 0.00, 99.6, 99.4, 0, 1, 0, NULL, 1, util.VN_CURDATE() - INTERVAL 2 MONTH), (18, 12, 1, 50, 5000, 4, 1, 1.500, 1.500, 0.000, 1, 1, 'grouping', NULL, 0.00, 99.6, 99.4, 0, 1, 0, NULL, 1, util.VN_CURDATE() - INTERVAL 2 MONTH), (19, 100, 1, 50, 100, 4, 1, 1.500, 1.500, 0.000, 1, 1, 'grouping', NULL, 0.00, 99.6, 99.4, 0, 1, 0, NULL, 1, util.VN_CURDATE()), (20, 100, 2, 5, 450, 3, 2, 1.000, 1.000, 0.000, 10, 10, NULL, NULL, 0.00, 7.30, 7.00, 0, 1, 0, NULL, 2.5, util.VN_CURDATE()), - (21, 100,72, 55, 500, 5, 3, 1.000, 1.000, 0.000, 1, 1, 'packing', NULL, 0.00, 78.3, 75.6, 0, 1, 0, 1, 3, util.VN_CURDATE()), + (21, 100,72, 55, 500, 5, 3, 1.000, 1.000, 0.000, 1, 1, 'packing', NULL, 0.00, 78.3, 75.6, 0, 1, 0, 1, 3, util.VN_CURDATE()), (10000002, 12,88, 50.0000, 5000, 4, 1, 1.500, 1.500, 0.000, 1, 1, 'grouping', NULL, 0.00, 99.60, 99.40, 0, 1, 0, 1.00, 1,util.VN_CURDATE() - INTERVAL 2 MONTH); INSERT INTO `hedera`.`order`(`id`, `date_send`, `customer_id`, `delivery_method_id`, `agency_id`, `address_id`, `company_id`, `note`, `source_app`, `confirmed`,`total`, `date_make`, `first_row_stamp`, `confirm_date`) diff --git a/db/routines/vn/procedures/item_getBalance.sql b/db/routines/vn/procedures/item_getBalance.sql index 4c425e20be..a68724eb50 100644 --- a/db/routines/vn/procedures/item_getBalance.sql +++ b/db/routines/vn/procedures/item_getBalance.sql @@ -207,7 +207,7 @@ BEGIN SELECT t.originType, t.originId, - @shipped:= t.shipped, + @shipped:= t.shipped shipped, t.alertLevel, t.stateName, t.reference, diff --git a/db/routines/vn/procedures/productionControl.sql b/db/routines/vn/procedures/productionControl.sql index e23232b8b0..fdb927a6e0 100644 --- a/db/routines/vn/procedures/productionControl.sql +++ b/db/routines/vn/procedures/productionControl.sql @@ -72,7 +72,7 @@ proc: BEGIN IF(tpr.isFreezed, ' CONGELADO',''), IF(tpr.hasHighRisk, ' RIESGO',''), IF(tpr.hasTicketRequest, ' COD 100',''), - IF(tpr.isTaxDataChecked, '',' FICHA INCOMPLETA'), + IF(tpr.isTaxDataChecked, ' FICHA INCOMPLETA', ''), IF(tpr.hasComponentLack, ' COMPONENTES', ''), IF(HOUR(util.VN_NOW()) < IF(HOUR(t.shipped), HOUR(t.shipped), COALESCE(HOUR(zc.hour),HOUR(z.hour))) AND tpr.isTooLittle, ' PEQUEÑO', '') diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 923bb57809..0000000000 --- a/docker-compose.yml +++ /dev/null @@ -1,11 +0,0 @@ -version: '3.7' -services: - front: - image: registry.verdnatura.es/salix-front:${VERSION:?} - build: - context: front - back: - image: registry.verdnatura.es/salix-back:${VERSION:?} - build: - context: . - dockerfile: back/Dockerfile diff --git a/modules/entry/back/methods/stock-bought/getStockBought.js b/modules/entry/back/methods/stock-bought/getStockBought.js index 9768b58e72..e94f2dfb1a 100644 --- a/modules/entry/back/methods/stock-bought/getStockBought.js +++ b/modules/entry/back/methods/stock-bought/getStockBought.js @@ -45,7 +45,7 @@ module.exports = Self => { { relation: 'user', scope: { - fields: ['id', 'name'] + fields: ['id', 'nickname'] } } ] diff --git a/modules/route/back/methods/route/specs/getSuggestedTickets.spec.js b/modules/route/back/methods/route/specs/getSuggestedTickets.spec.js index 3d6702482d..73264ad546 100644 --- a/modules/route/back/methods/route/specs/getSuggestedTickets.spec.js +++ b/modules/route/back/methods/route/specs/getSuggestedTickets.spec.js @@ -33,7 +33,7 @@ describe('route getSuggestedTickets()', () => { expect(result.length).toEqual(5); expect(anyResult.zoneFk).toEqual(1); - expect(anyResult.agencyModeFk).toEqual(8); + expect([1, 8]).toContain(anyResult.agencyModeFk); await tx.rollback(); } catch (e) { diff --git a/modules/travel/back/methods/travel/filter.js b/modules/travel/back/methods/travel/filter.js index 837e30b305..ad7a71d11d 100644 --- a/modules/travel/back/methods/travel/filter.js +++ b/modules/travel/back/methods/travel/filter.js @@ -173,6 +173,7 @@ module.exports = Self => { t.isRaid, t.daysInForward, t.awbFk, + t.availabled, am.name agencyModeName, a.code awbCode, win.name warehouseInName, diff --git a/modules/travel/back/models/travel.json b/modules/travel/back/models/travel.json index a2a9e478e3..feeb24f698 100644 --- a/modules/travel/back/models/travel.json +++ b/modules/travel/back/models/travel.json @@ -56,6 +56,9 @@ }, "daysInForward": { "type": "number" + }, + "availabled": { + "type": "date" } }, "relations": { diff --git a/print/templates/email/invoice/locale/fr.yml b/print/templates/email/invoice/locale/fr.yml index 9efbdf5a03..937976f390 100644 --- a/print/templates/email/invoice/locale/fr.yml +++ b/print/templates/email/invoice/locale/fr.yml @@ -1,9 +1,8 @@ subject: Votre facture title: Votre facture -dear: Cher client, -description: Le facture {0} correspondant à la commande {1} est maintenant disponible.
- Vous pouvez le télécharger en cliquant sur la pièce jointe dans cet email. -poll: Si vous le souhaitez, vous pouvez répondre à notre questionaire de satisfaction - pour nous aider à améliorer notre service. Votre avis est très important pour nous! -help: N'hésitez pas nous envoyer toute doute ou question, nous sommes là pour vous aider! +dear: Chère cliente, cher client +description: La facture {0} correspondant à votre commande {1} est maintenant disponible.
+ Vous pouvez la télécharger en cliquant sur la pièce jointe. +poll: +help: En cas de besoin d'eclaircissement, n'hésitez pas à nous contacter, nous sommes là pour vous aider! conclusion: Merci pour votre attention!