Merge branch 'dev' into 6173-dump-BBDD
gitea/salix/pipeline/head This commit looks good Details

This commit is contained in:
Javi Gallego 2023-09-05 13:48:35 +02:00
commit 6a4d8fbfbf
15 changed files with 85 additions and 11 deletions

View File

@ -6,6 +6,15 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [2338.01] - 2023-09-21
### Added
### Changed
- (Trabajadores -> Calendario) Icono de check arreglado cuando pulsas un tipo de dia
### Fixed
## [2336.01] - 2023-09-07 ## [2336.01] - 2023-09-07
### Added ### Added

View File

@ -0,0 +1,6 @@
ALTER TABLE `vn`.`deviceLog` ADD serialNumber varchar(45) DEFAULT NULL NULL;
INSERT INTO `salix`.`ACL` ( model, property, accessType, permission, principalType, principalId)
VALUES( 'DeviceLog', 'create', 'WRITE', 'ALLOW', 'ROLE', 'employee');

View File

View File

@ -27,7 +27,7 @@ export default class Controller extends Component {
setTimeout(() => element.classList.add('shown'), 30); setTimeout(() => element.classList.add('shown'), 30);
shape.element = element; shape.element = element;
if (data.additionalData) { if (data.additionalData && this.vnToken.token) {
this.additionalData = data.additionalData; this.additionalData = data.additionalData;
let supportButton = document.createElement('i'); let supportButton = document.createElement('i');
supportButton.setAttribute('class', 'material-icons clickable'); supportButton.setAttribute('class', 'material-icons clickable');

View File

@ -7,12 +7,15 @@ export default class Controller extends Dialog {
} }
responseHandler(response) { responseHandler(response) {
if (response !== 'accept')
return super.responseHandler(response);
this.$http.post('Ostickets/send-to-support', { this.$http.post('Ostickets/send-to-support', {
reason: this.reason, reason: this.reason,
additionalData: this.additionalData additionalData: this.additionalData
}) })
.then(() => super.responseHandler(response)) .then(() => super.responseHandler(response))
.then(() => this.vnApp.showSuccess(this.$t('Email sended!'))); .then(() => this.vnApp.showSuccess(this.$t('Email sended!')));
} }
} }

View File

@ -186,5 +186,6 @@
"This ticket is locked.": "This ticket is locked.", "This ticket is locked.": "This ticket is locked.",
"This ticket is not editable.": "This ticket is not editable.", "This ticket is not editable.": "This ticket is not editable.",
"The ticket doesn't exist.": "The ticket doesn't exist.", "The ticket doesn't exist.": "The ticket doesn't exist.",
"The sales do not exists": "The sales do not exists" "The sales do not exists": "The sales do not exists",
} "Ticket without Route": "Ticket without route"
}

View File

@ -315,5 +315,6 @@
"This ticket is not editable.": "Este ticket no es editable.", "This ticket is not editable.": "Este ticket no es editable.",
"The ticket doesn't exist.": "No existe el ticket.", "The ticket doesn't exist.": "No existe el ticket.",
"Social name should be uppercase": "La razón social debe ir en mayúscula", "Social name should be uppercase": "La razón social debe ir en mayúscula",
"Street should be uppercase": "La dirección fiscal debe ir en mayúscula" "Street should be uppercase": "La dirección fiscal debe ir en mayúscula",
"Ticket without Route": "Ticket sin ruta"
} }

View File

@ -1,3 +1,5 @@
const UserError = require('vn-loopback/util/user-error');
module.exports = Self => { module.exports = Self => {
Self.remoteMethodCtx('priceDifference', { Self.remoteMethodCtx('priceDifference', {
description: 'Returns sales with price difference if the ticket is editable', description: 'Returns sales with price difference if the ticket is editable',

View File

@ -93,6 +93,8 @@ module.exports = Self => {
}, myOptions); }, myOptions);
const dmsType = await models.DmsType.findOne({where: {code: 'Ticket'}, fields: ['id']}, myOptions); const dmsType = await models.DmsType.findOne({where: {code: 'Ticket'}, fields: ['id']}, myOptions);
const ctxUploadFile = Object.assign({}, ctx); const ctxUploadFile = Object.assign({}, ctx);
if (ticket.route() === null)
throw new UserError('Ticket without route');
ctxUploadFile.args = { ctxUploadFile.args = {
warehouseId: ticket.warehouseFk, warehouseId: ticket.warehouseFk,
companyId: ticket.companyFk, companyId: ticket.companyFk,

View File

@ -23,6 +23,9 @@
"Device": { "Device": {
"dataSource": "vn" "dataSource": "vn"
}, },
"DeviceLog": {
"dataSource": "vn"
},
"DeviceProduction": { "DeviceProduction": {
"dataSource": "vn" "dataSource": "vn"
}, },

View File

@ -0,0 +1,40 @@
{
"name": "DeviceLog",
"base": "VnModel",
"options": {
"mysql": {
"table": "deviceLog"
}
},
"properties": {
"id": {
"id": true,
"type": "number"
},
"android_id": {
"type": "string"
},
"userFk": {
"type": "number"
},
"created": {
"type": "date"
},
"nameApp": {
"type": "string"
},
"versionApp": {
"type": "string"
},
"deviceProductionFk": {
"type": "number"
}
},
"relations": {
"user": {
"type": "belongsTo",
"model": "VnUser",
"foreignKey": "userFk"
}
}
}

View File

@ -84,7 +84,8 @@
<div name="absenceTypes" class="input vn-py-md" style="overflow: hidden;"> <div name="absenceTypes" class="input vn-py-md" style="overflow: hidden;">
<vn-chip ng-repeat="absenceType in absenceTypes" ng-class="::{'selectable': $ctrl.isSubordinate}" ng-click="$ctrl.pick(absenceType)"> <vn-chip ng-repeat="absenceType in absenceTypes" ng-class="::{'selectable': $ctrl.isSubordinate}" ng-click="$ctrl.pick(absenceType)">
<vn-avatar ng-style="{backgroundColor: absenceType.rgb}"> <vn-avatar ng-style="{backgroundColor: absenceType.rgb}">
<vn-icon icon="check" ng-if="absenceType.id == $ctrl.absenceType.id"></vn-icon> <vn-icon class="check" icon="check" ng-if="absenceType.id == $ctrl.absenceType.id"></vn-icon>
</vn-avatar> </vn-avatar>
{{absenceType.name}} {{absenceType.name}}
</vn-chip> </vn-chip>

View File

@ -9,7 +9,7 @@ vn-worker-calendar {
align-items: center; align-items: center;
box-sizing: border-box; box-sizing: border-box;
padding: $spacing-md; padding: $spacing-md;
& > vn-calendar { & > vn-calendar {
border: $border-thin; border: $border-thin;
margin: $spacing-md; margin: $spacing-md;
@ -32,7 +32,7 @@ vn-worker-calendar {
} }
vn-icon[icon="info"] { vn-icon[icon="info"] {
position: absolute; position: absolute;
top: 16px; top: 16px;
right: 16px right: 16px
} }
@ -40,7 +40,7 @@ vn-worker-calendar {
vn-side-menu div > .input { vn-side-menu div > .input {
border-bottom: $border-thin; border-bottom: $border-thin;
} }
.festive, .festive,
vn-avatar.today { vn-avatar.today {
color: $color-font; color: $color-font;
@ -56,4 +56,10 @@ vn-worker-calendar {
vn-avatar.today { vn-avatar.today {
border: 2px solid $color-font-link border: 2px solid $color-font-link
} }
.check {
margin-top: 0.5px;
margin-left: -3px;
font-size: 125%;
}
} }

View File

@ -1,6 +1,6 @@
{ {
"name": "salix-back", "name": "salix-back",
"version": "23.36.01", "version": "23.38.01",
"author": "Verdnatura Levante SL", "author": "Verdnatura Levante SL",
"description": "Salix backend", "description": "Salix backend",
"license": "GPL-3.0", "license": "GPL-3.0",