fixes #4866 más detalle en faltas #1201

Merged
alexandre merged 14 commits from 4866-detalle-faltas into dev 2023-01-17 07:37:50 +00:00
8 changed files with 103 additions and 26 deletions

View File

@ -679,7 +679,10 @@ export default {
moveToTicketButton: '.vn-popover.shown vn-icon[icon="arrow_forward_ios"]', moveToTicketButton: '.vn-popover.shown vn-icon[icon="arrow_forward_ios"]',
moveToNewTicketButton: '.vn-popover.shown vn-button[label="New ticket"]', moveToNewTicketButton: '.vn-popover.shown vn-button[label="New ticket"]',
stateMenuButton: 'vn-ticket-sale vn-tool-bar > vn-button-menu[label="State"]', stateMenuButton: 'vn-ticket-sale vn-tool-bar > vn-button-menu[label="State"]',
moreMenuState: 'body > div > div > div.content > div.filter.ng-scope > vn-textfield' moreMenuState: 'body > div > div > div.content > div.filter.ng-scope > vn-textfield',
firstSaleHistoryButton: 'vn-ticket-sale vn-tr:nth-child(1) vn-icon-button[icon="history"]',
firstSaleHistory: 'form vn-table div > vn-tbody > vn-tr',
closeHistory: 'div.window vn-button[icon="clear"]'
}, },
ticketTracking: { ticketTracking: {
createStateButton: 'vn-float-button' createStateButton: 'vn-float-button'

View File

@ -196,6 +196,15 @@ describe('Ticket Edit sale path', () => {
expect(result).toContain('22.50'); expect(result).toContain('22.50');
}); });
it('should check in the history that logs has been added', async() => {
await page.waitToClick(selectors.ticketSales.firstSaleHistoryButton);
await page.waitForSelector(selectors.ticketSales.firstSaleHistory);
const result = await page.countElement(selectors.ticketSales.firstSaleHistory);
expect(result).toBeGreaterThan(0);
await page.waitToClick(selectors.ticketSales.closeHistory);
});
it('should recalculate price of sales', async() => { it('should recalculate price of sales', async() => {
await page.waitToClick(selectors.ticketSales.firstSaleCheckbox); await page.waitToClick(selectors.ticketSales.firstSaleCheckbox);
await page.waitToClick(selectors.ticketSales.secondSaleCheckbox); await page.waitToClick(selectors.ticketSales.secondSaleCheckbox);

View File

@ -19,4 +19,5 @@ import './user-popover';
import './upload-photo'; import './upload-photo';
import './bank-entity'; import './bank-entity';
import './log'; import './log';
import './instance-log';
import './sendSms'; import './sendSms';

View File

@ -0,0 +1,12 @@
<vn-dialog
vn-id="instanceLog">
<tpl-body>
<vn-log
url="{{$ctrl.url}}"
origin-id="$ctrl.originId"
changed-model="$ctrl.changedModel"
changed-model-id="$ctrl.changedModelId">
</vn-log>
</tpl-body>
</vn-dialog>

View File

@ -0,0 +1,21 @@
import ngModule from '../../module';
import Section from '../section';
import './style.scss';
export default class Controller extends Section {
open() {
this.$.instanceLog.show();
}
}
ngModule.vnComponent('vnInstanceLog', {
controller: Controller,
template: require('./index.html'),
bindings: {
model: '<',
originId: '<',
changedModelId: '<',
changedModel: '@',
url: '@'
}
});

View File

@ -0,0 +1,13 @@
.vn-dialog {
& > .window:not(:has(.empty-rows)) {
width:60%;
vn-log {
vn-card {
visibility: hidden;
& > * {
visibility: visible;
}
}
}
}
}

View File

@ -30,7 +30,7 @@
ng-click="moreOptions.show($event)" ng-click="moreOptions.show($event)"
ng-show="$ctrl.hasSelectedSales()"> ng-show="$ctrl.hasSelectedSales()">
</vn-button> </vn-button>
<vn-button <vn-button
disabled="!$ctrl.hasSelectedSales() || !$ctrl.isEditable" disabled="!$ctrl.hasSelectedSales() || !$ctrl.isEditable"
ng-click="deleteLines.show()" ng-click="deleteLines.show()"
vn-tooltip="Remove lines" vn-tooltip="Remove lines"
@ -53,7 +53,7 @@
<vn-thead> <vn-thead>
<vn-tr> <vn-tr>
<vn-th shrink> <vn-th shrink>
<vn-multi-check model="model" <vn-multi-check model="model"
on-change="$ctrl.resetChanges()"> on-change="$ctrl.resetChanges()">
</vn-multi-check> </vn-multi-check>
</vn-th> </vn-th>
@ -68,6 +68,7 @@
<vn-th number>Disc</vn-th> <vn-th number>Disc</vn-th>
<vn-th number>Amount</vn-th> <vn-th number>Amount</vn-th>
<vn-th shrink>Packaging</vn-th> <vn-th shrink>Packaging</vn-th>
<vn-th shrink></vn-th>
</vn-tr> </vn-tr>
</vn-thead> </vn-thead>
<vn-tbody> <vn-tbody>
@ -84,13 +85,13 @@
vn-tooltip="{{::$ctrl.$t('Claim')}}: {{::sale.claim.claimFk}}"> vn-tooltip="{{::$ctrl.$t('Claim')}}: {{::sale.claim.claimFk}}">
</vn-icon> </vn-icon>
</a> </a>
<vn-icon <vn-icon
ng-show="::(sale.visible < 0)" ng-show="::(sale.visible < 0)"
color-main color-main
icon="warning" icon="warning"
vn-tooltip="Visible: {{::sale.visible || 0}}"> vn-tooltip="Visible: {{::sale.visible || 0}}">
</vn-icon> </vn-icon>
<vn-icon ng-show="sale.reserved" <vn-icon ng-show="sale.reserved"
icon="icon-reserve" icon="icon-reserve"
translate-attr="{title: 'Reserved'}"> translate-attr="{title: 'Reserved'}">
</vn-icon> </vn-icon>
@ -108,21 +109,21 @@
</vn-icon> </vn-icon>
</vn-td> </vn-td>
<vn-td shrink> <vn-td shrink>
<img <img
ng-src="{{$root.imagePath('catalog', '50x50', sale.itemFk)}}" ng-src="{{$root.imagePath('catalog', '50x50', sale.itemFk)}}"
zoom-image="{{$root.imagePath('catalog', '1600x900', sale.itemFk)}}" zoom-image="{{$root.imagePath('catalog', '1600x900', sale.itemFk)}}"
on-error-src/> on-error-src/>
</vn-td> </vn-td>
<vn-td shrink> <vn-td shrink>
<vn-chip <vn-chip
class="transparent" class="transparent"
ng-class="{'alert': sale.visible < 0}"> ng-class="{'alert': sale.visible < 0}">
{{::sale.visible}} {{::sale.visible}}
</vn-chip> </vn-chip>
</vn-td> </vn-td>
<vn-td shrink> <vn-td shrink>
<vn-chip <vn-chip
class="transparent" class="transparent"
ng-class="{'alert': sale.available < 0}"> ng-class="{'alert': sale.available < 0}">
{{::sale.available}} {{::sale.available}}
</vn-chip> </vn-chip>
@ -195,7 +196,7 @@
translate-attr="{title: !$ctrl.isLocked ? 'Edit discount' : ''}" translate-attr="{title: !$ctrl.isLocked ? 'Edit discount' : ''}"
ng-click="$ctrl.showEditDiscountPopover($event, sale)" ng-click="$ctrl.showEditDiscountPopover($event, sale)"
ng-if="sale.id"> ng-if="sale.id">
{{(sale.discount / 100) | percentage}} {{(sale.discount / 100) | percentage}}
</span> </span>
</vn-td> </vn-td>
<vn-td number> <vn-td number>
@ -204,6 +205,22 @@
<vn-td shrink> <vn-td shrink>
{{::sale.item.itemPackingTypeFk | dashIfEmpty}} {{::sale.item.itemPackingTypeFk | dashIfEmpty}}
</vn-td> </vn-td>
<vn-td shrink>
<vn-icon-button
vn-none
vn-tooltip="History"
icon="history"
ng-click="log.open()">
</vn-icon-button>
<vn-instance-log
vn-id="log"
url="TicketLogs"
origin-id="$ctrl.$params.id"
changed-model="Sale"
changed-model-id="sale.id">
</vn-instance-log>
</vn-td>
</vn-tr> </vn-tr>
</vn-tbody> </vn-tbody>
</vn-table> </vn-table>
@ -383,8 +400,8 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr <tr
class="clickable" class="clickable"
ng-repeat="ticket in $ctrl.transfer.lastActiveTickets track by ticket.id" ng-repeat="ticket in $ctrl.transfer.lastActiveTickets track by ticket.id"
ng-click="$ctrl.transferSales(ticket.id)"> ng-click="$ctrl.transferSales(ticket.id)">
<td shrink>{{::ticket.id}}</td> <td shrink>{{::ticket.id}}</td>
@ -392,22 +409,22 @@
<td shrink>{{::ticket.agencyName}}</td> <td shrink>{{::ticket.agencyName}}</td>
<td expand>{{::ticket.address}} <td expand>{{::ticket.address}}
<span vn-tooltip=" <span vn-tooltip="
{{::ticket.nickname}} {{::ticket.nickname}}
{{::ticket.name}} {{::ticket.name}}
{{::ticket.street}} {{::ticket.street}}
{{::ticket.postalCode}} {{::ticket.postalCode}}
{{::ticket.city}}"> {{::ticket.city}}">
{{::ticket.nickname}} {{::ticket.nickname}}
{{::ticket.name}} {{::ticket.name}}
{{::ticket.street}} {{::ticket.street}}
{{::ticket.postalCode}} {{::ticket.postalCode}}
{{::ticket.city}} {{::ticket.city}}
</span> </span>
</td> </td>
</tr> </tr>
<tr> <tr>
<td <td
ng-if="!$ctrl.transfer.lastActiveTickets.length" ng-if="!$ctrl.transfer.lastActiveTickets.length"
class="empty-rows" class="empty-rows"
colspan="4" colspan="4"
translate> translate>
@ -503,4 +520,4 @@
vn-acl-action="remove"> vn-acl-action="remove">
Refund Refund
</vn-item> </vn-item>
</vn-menu> </vn-menu>

View File

@ -13,9 +13,9 @@ New ticket: Nuevo ticket
Edit price: Editar precio Edit price: Editar precio
You are going to delete lines of the ticket: Vas a eliminar lineas del ticket You are going to delete lines of the ticket: Vas a eliminar lineas del ticket
This ticket will be removed from current route! Continue anyway?: ¡Se eliminará el ticket de la ruta actual! ¿Continuar de todas formas? This ticket will be removed from current route! Continue anyway?: ¡Se eliminará el ticket de la ruta actual! ¿Continuar de todas formas?
You have to allow pop-ups in your web browser to use this functionality: You have to allow pop-ups in your web browser to use this functionality:
Debes permitir los pop-pups en tu navegador para que esta herramienta funcione correctamente Debes permitir los pop-pups en tu navegador para que esta herramienta funcione correctamente
Disc: Dto Disc: Dto
Available: Disponible Available: Disponible
What is the day of receipt of the ticket?: ¿Cual es el día de preparación del pedido? What is the day of receipt of the ticket?: ¿Cual es el día de preparación del pedido?
Add claim: Crear reclamación Add claim: Crear reclamación
@ -39,3 +39,4 @@ Packaging: Encajado
Refund: Abono Refund: Abono
Promotion mana: Maná promoción Promotion mana: Maná promoción
Claim mana: Maná reclamación Claim mana: Maná reclamación
History: Historial