#904 ticket.summary incluir las secciones cubos y servicios
This commit is contained in:
parent
9daa991d0f
commit
649824b97f
|
@ -52,55 +52,156 @@
|
|||
</vn-one>
|
||||
</vn-horizontal>
|
||||
<vn-horizontal>
|
||||
<table class="vn-grid">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th number translate>Item</th>
|
||||
<th translate>Description</th>
|
||||
<th number translate>Quantity</th>
|
||||
<th number translate>Price</th>
|
||||
<th number translate>Discount</th>
|
||||
<th number translate>Amount</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr ng-repeat="sale in $ctrl.summary.sales track by sale.id">
|
||||
<td>
|
||||
<a ui-sref="claim.card.basicData({id: sale.claimBeginning.claimFk})">
|
||||
<vn-icon
|
||||
ng-show="sale.claimBeginning.claimFk"
|
||||
<vn-one margin-medium-v>
|
||||
<h5 translate>Sale</h5>
|
||||
<table class="vn-grid">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th number translate>Item</th>
|
||||
<th translate>Description</th>
|
||||
<th number translate>Quantity</th>
|
||||
<th number translate>Price</th>
|
||||
<th number translate>Discount</th>
|
||||
<th number translate>Amount</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr ng-repeat="sale in $ctrl.summary.sales track by sale.id">
|
||||
<td>
|
||||
<a ui-sref="claim.card.basicData({id: sale.claimBeginning.claimFk})">
|
||||
<vn-icon
|
||||
ng-show="sale.claimBeginning.claimFk"
|
||||
orange
|
||||
icon="icon-claims"
|
||||
vn-tooltip="{{::$ctrl.$translate.instant('Claim')}}: {{::sale.claimBeginning.claimFk}}">
|
||||
</vn-icon>
|
||||
</a>
|
||||
<vn-icon
|
||||
ng-show="sale.visible || sale.available"
|
||||
orange
|
||||
icon="icon-claims"
|
||||
vn-tooltip="{{::$ctrl.$translate.instant('Claim')}}: {{::sale.claimBeginning.claimFk}}">
|
||||
icon="warning"
|
||||
vn-tooltip="Visible: {{::sale.visible || 0}} <br> {{::$ctrl.translate.instant('Available')}} {{::sale.available || 0}}">
|
||||
</vn-icon>
|
||||
</a>
|
||||
<vn-icon
|
||||
ng-show="sale.visible || sale.available"
|
||||
orange
|
||||
icon="warning"
|
||||
vn-tooltip="Visible: {{::sale.visible || 0}} <br> {{::$ctrl.translate.instant('Available')}} {{::sale.available || 0}}">
|
||||
</vn-icon>
|
||||
<vn-icon ng-show="sale.reserved" icon="icon-reserva"></vn-icon>
|
||||
</td>
|
||||
<td number>
|
||||
<span
|
||||
ng-click="$ctrl.showDescriptor($event, sale.itemFk)"
|
||||
class="link" pointer>
|
||||
{{("000000"+sale.itemFk).slice(-6)}}
|
||||
</span>
|
||||
</td>
|
||||
<td><vn-fetched-tags max-length="6" item="sale.item"/></td>
|
||||
<td number>{{::sale.quantity}}</td>
|
||||
<td number>{{::sale.price | currency:'€':2}}</td>
|
||||
<td number>{{::sale.discount}} %</td>
|
||||
<td number>{{::sale.quantity * sale.price | currency:'€':2}}</td>
|
||||
</tr>
|
||||
<tr ng-if="!$ctrl.summary.sales" class="list list-element">
|
||||
<td colspan="8" style="text-align: center" translate>No results</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<vn-icon ng-show="sale.reserved" icon="icon-reserva"></vn-icon>
|
||||
</td>
|
||||
<td number>
|
||||
<span
|
||||
ng-click="$ctrl.showDescriptor($event, sale.itemFk)"
|
||||
class="link" pointer>
|
||||
{{("000000"+sale.itemFk).slice(-6)}}
|
||||
</span>
|
||||
</td>
|
||||
<td><vn-fetched-tags max-length="6" item="sale.item"/></td>
|
||||
<td number>{{::sale.quantity}}</td>
|
||||
<td number>{{::sale.price | currency:'€':2}}</td>
|
||||
<td number>{{::sale.discount}} %</td>
|
||||
<td number>{{::sale.quantity * sale.price | currency:'€':2}}</td>
|
||||
</tr>
|
||||
<tr ng-if="!$ctrl.summary.sales" class="list list-element">
|
||||
<td colspan="8" style="text-align: center" translate>No results</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</vn-one>
|
||||
</vn-horizontal>
|
||||
<vn-horizontal>
|
||||
<vn-one margin-medium-v ng-if="$ctrl.summary.packagings.length != 0">
|
||||
<h5 translate>Packages</h5>
|
||||
<vn-table model="model">
|
||||
<vn-thead>
|
||||
<vn-tr>
|
||||
<vn-th number>Created</vn-th>
|
||||
<vn-th number>Package</vn-th>
|
||||
<vn-th number>Quantity</vn-th>
|
||||
</vn-tr>
|
||||
</vn-thead>
|
||||
<vn-tbody>
|
||||
<vn-tr ng-repeat="package in $ctrl.summary.packagings">
|
||||
<vn-td number>{{package.created | dateTime: 'dd/MM/yyyy'}}</vn-td>
|
||||
<vn-td number>{{package.packaging.item.name}}</vn-td>
|
||||
<vn-td number>{{package.quantity}}</vn-td>
|
||||
</vn-tr>
|
||||
</vn-tbody>
|
||||
<vn-empty-rows ng-if="model.data.length === 0" translate>
|
||||
No results
|
||||
</vn-empty-rows>
|
||||
</vn-table>
|
||||
</vn-one>
|
||||
<vn-one margin-medium ng-if="$ctrl.summary.services.length != 0">
|
||||
<h5 translate>Service</h5>
|
||||
<vn-table model="model">
|
||||
<vn-thead>
|
||||
<vn-tr>
|
||||
<vn-th number>Id</vn-th>
|
||||
<vn-th>Description</vn-th>
|
||||
<vn-th number>Quantity</vn-th>
|
||||
<vn-th number>Price</vn-th>
|
||||
<vn-th>Tax class</vn-th>
|
||||
</vn-tr>
|
||||
</vn-thead>
|
||||
<vn-tbody>
|
||||
<vn-tr ng-repeat="service in $ctrl.summary.services">
|
||||
<vn-td number>{{::service.id}}</vn-td>
|
||||
<vn-td>{{::service.description}}</vn-td>
|
||||
<vn-td number>{{::service.quantity}}</vn-td>
|
||||
<vn-td number>{{::service.price}}</vn-td>
|
||||
<vn-td>{{::service.taxClass.description}}</vn-td>
|
||||
</vn-tr>
|
||||
</vn-tbody>
|
||||
<vn-empty-rows ng-if="$ctrl.summary.services.length === 0" translate>
|
||||
No results
|
||||
</vn-empty-rows>
|
||||
</vn-table>
|
||||
</vn-one>
|
||||
</vn-horizontal>
|
||||
<vn-horizontal ng-if="$ctrl.summary.requests.length != 0">
|
||||
<vn-one margin-medium-v>
|
||||
<h5 translate>Purchase request</h5>
|
||||
<vn-table model="model">
|
||||
<vn-thead>
|
||||
<vn-tr>
|
||||
<vn-th number>Id</vn-th>
|
||||
<vn-th>Description</vn-th>
|
||||
<vn-th number>Created</vn-th>
|
||||
<vn-th>Requester</vn-th>
|
||||
<vn-th>Atender</vn-th>
|
||||
<vn-th number>Quantity</vn-th>
|
||||
<vn-th number>Price</vn-th>
|
||||
<vn-th number>Sale id</vn-th>
|
||||
<vn-th number>Ok</vn-th>
|
||||
</vn-tr>
|
||||
</vn-thead>
|
||||
<vn-tbody>
|
||||
<vn-tr ng-repeat="request in $ctrl.summary.requests">
|
||||
<vn-td number>{{::request.id}}</vn-td>
|
||||
<vn-td>{{::request.description}}</vn-td>
|
||||
<vn-td number>{{::request.created | dateTime: 'dd/MM/yyyy'}}</vn-td>
|
||||
<vn-td>{{::request.requester.firstName}} {{::request.requester.name}}</vn-td>
|
||||
<vn-td>{{::request.atender.firstName}} {{::request.atender.name}}</vn-td>
|
||||
<vn-td number>{{::request.quantity}}</vn-td>
|
||||
<vn-td number>{{::request.price}}</vn-td>
|
||||
<vn-td number>
|
||||
<span
|
||||
ng-show="::request.saleFk"
|
||||
ng-click="$ctrl.showDescriptor($event, request.sale)"
|
||||
pointer class="link">
|
||||
{{("000000"+request.saleFk).slice(-6)}}
|
||||
</span>
|
||||
</vn-td>
|
||||
<vn-td number>
|
||||
<vn-check vn-one
|
||||
field="::request.isOk"
|
||||
disabled="true">
|
||||
</vn-check>
|
||||
</vn-td>
|
||||
</vn-tr>
|
||||
</vn-tbody>
|
||||
<vn-empty-rows ng-if="$ctrl.summary.requests.length === 0" translate>
|
||||
No results
|
||||
</vn-empty-rows>
|
||||
</vn-table>
|
||||
</vn-one>
|
||||
</vn-horizontal>
|
||||
</vn-vertical>
|
||||
</vn-card>
|
||||
|
|
|
@ -26,6 +26,22 @@ module.exports = Self => {
|
|||
summaryObj.subTotal = getSubTotal(summaryObj.sales);
|
||||
summaryObj.VAT = await models.Ticket.getVAT(ticketFk);
|
||||
summaryObj.total = await models.Ticket.getTotal(ticketFk);
|
||||
summaryObj.packagings = await models.TicketPackaging.find({
|
||||
where: {ticketFk: ticketFk},
|
||||
include: [{relation: 'packaging',
|
||||
scope: {
|
||||
fields: ['itemFk', 'name'],
|
||||
include: {
|
||||
relation: 'item'
|
||||
}
|
||||
}
|
||||
}]
|
||||
});
|
||||
summaryObj.requests = await getRequests(Self, ticketFk);
|
||||
summaryObj.services = await models.TicketService.find({
|
||||
where: {ticketFk: ticketFk},
|
||||
include: [{relation: 'taxClass'}]
|
||||
});
|
||||
|
||||
return summaryObj;
|
||||
};
|
||||
|
@ -98,6 +114,19 @@ module.exports = Self => {
|
|||
return await Sale.find(filter);
|
||||
}
|
||||
|
||||
async function getRequests(Self, ticketFk) {
|
||||
let filter = {
|
||||
where: {
|
||||
ticketFk: ticketFk
|
||||
},
|
||||
include: [
|
||||
{relation: 'requester'},
|
||||
{relation: 'atender'}
|
||||
]
|
||||
};
|
||||
return await Self.app.models.TicketRequest.find(filter);
|
||||
}
|
||||
|
||||
function getSubTotal(sales) {
|
||||
let subTotal = 0.00;
|
||||
|
||||
|
|
Loading…
Reference in New Issue