hotFix #5194 cambios ticketFutureAdvance #1320

Merged
alexandre merged 11 commits from 5194-cambios-ticketFutureAdvance into master 2023-02-16 14:05:44 +00:00
6 changed files with 74 additions and 29 deletions
Showing only changes of commit ec16a0d66c - Show all commits

View File

@ -0,0 +1,30 @@
DROP FUNCTION IF EXISTS `vn`.`invoiceOut_getWeight`;
DELIMITER $$
$$
CREATE DEFINER=`root`@`localhost` FUNCTION `vn`.`invoiceOut_getWeight`(vInvoice VARCHAR(15)) RETURNS decimal(10,2)
READS SQL DATA
BEGIN
/**
* Calcula el peso de una factura emitida
*
* @param vInvoice Id de la factura
* @return vTotalWeight peso de la factura
*/
DECLARE vTotalWeight DECIMAL(10,2);
SELECT SUM(CAST(IFNULL(i.stems, 1)
* s.quantity
* IF(ic.grams, ic.grams, IFNULL(i.weightByPiece, 0)) / 1000 AS DECIMAL(10,2)))
INTO vTotalWeight
FROM ticket t
JOIN sale s ON s.ticketFk = t.id
JOIN item i ON i.id = s.itemFk
JOIN itemCost ic ON ic.itemFk = i.id
AND ic.warehouseFk = t.warehouseFk
WHERE t.refFk = vInvoice
AND i.intrastatFk;
RETURN vTotalWeight;
END$$
DELIMITER ;

View File

@ -13,7 +13,7 @@
</tr> </tr>
<tr> <tr>
<td class="font gray uppercase">{{$t('date')}}</td> <td class="font gray uppercase">{{$t('date')}}</td>
<th>{{formatDate(new Date(), '%d-%m-%Y');}}</th> <th>{{formatDate(new Date(), '%d-%m-%Y')}}</th>
</tr> </tr>
</tbody> </tbody>
</table> </table>
@ -44,7 +44,7 @@
</thead> </thead>
<tbody v-for="sale in sales" :key="sale.id"> <tbody v-for="sale in sales" :key="sale.id">
<tr> <tr>
<td>{{formatDate(sale.issued, '%d-%m-%Y');}}</td> <td>{{formatDate(sale.issued, '%d-%m-%Y')}}</td>
<td>{{sale.ref}}</td> <td>{{sale.ref}}</td>
<td class="number">{{sale.debtOut}}</td> <td class="number">{{sale.debtOut}}</td>
<td class="number">{{sale.debtIn}}</td> <td class="number">{{sale.debtIn}}</td>

View File

@ -203,7 +203,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="size100 no-page-break" v-if="intrastat.length > 0"> <div class="size100 no-page-break" v-if="hasIntrastat">
<h2>{{$t('intrastat')}}</h2> <h2>{{$t('intrastat')}}</h2>
<table class="column-oriented"> <table class="column-oriented">
<thead> <thead>

View File

@ -10,7 +10,8 @@ module.exports = {
this.checkMainEntity(this.invoice); this.checkMainEntity(this.invoice);
this.client = await this.findOneFromDef('client', [this.reference]); this.client = await this.findOneFromDef('client', [this.reference]);
this.taxes = await this.rawSqlFromDef(`taxes`, [this.reference]); this.taxes = await this.rawSqlFromDef(`taxes`, [this.reference]);
this.intrastat = await this.rawSqlFromDef(`intrastat`, [this.reference, this.reference, this.reference]); this.hasIntrastat = await this.findValueFromDef(`hasIntrastat`, [this.reference]);
this.intrastat = await this.rawSqlFromDef(`intrastat`, [this.reference, this.reference, this.reference, this.reference]);
this.rectified = await this.rawSqlFromDef(`rectified`, [this.reference]); this.rectified = await this.rawSqlFromDef(`rectified`, [this.reference]);
this.hasIncoterms = await this.findValueFromDef(`hasIncoterms`, [this.reference]); this.hasIncoterms = await this.findValueFromDef(`hasIncoterms`, [this.reference]);

View File

@ -0,0 +1,4 @@
SELECT taxAreaFk != 'NATIONAL'
FROM vn.invoiceOutSerial ios
JOIN vn.invoiceOut io ON io.serial = ios.code
WHERE io.ref = ?;

View File

@ -1,26 +1,36 @@
SELECT * SELECT *
FROM invoiceOut io FROM (
JOIN invoiceOutSerial ios ON io.serial = ios.code SELECT i.intrastatFk code,
JOIN( it.description,
SELECT ir.id code, CAST(SUM(ROUND((s.quantity * s.price * (100 - s.discount) / 100 ) , 2))AS DECIMAL(10, 2)) subtotal,
ir.description, SUM(IFNULL(i.stems, 1) * s.quantity) stems,
iii.stems, CAST(SUM(IFNULL(i.stems, 1)
iii.net netKg, * s.quantity
iii.amount subtotal * IF(ic.grams, ic.grams, IFNULL(i.weightByPiece, 0)) / 1000)
FROM vn.invoiceInIntrastat iii * IF(sub.totalWeight, sub.totalWeight / vn.invoiceOut_getWeight(?), 1)
LEFT JOIN vn.invoiceIn ii ON ii.id = iii.invoiceInFk AS DECIMAL(10,2)) netKg
LEFT JOIN vn.invoiceOut io ON io.ref = ii.supplierRef FROM sale s
LEFT JOIN vn.intrastat ir ON ir.id = iii.intrastatFk JOIN ticket t ON s.ticketFk = t.id
WHERE io.`ref` = ? JOIN supplier su ON su.id = t.companyFk
UNION ALL JOIN item i ON i.id = s.itemFk
SELECT NULL code, JOIN intrastat it ON it.id = i.intrastatFk
'Servicios' description, LEFT JOIN itemCost ic ON ic.itemFk = i.id AND ic.warehouseFk = t.warehouseFk
0 stems, LEFT JOIN (
0 netKg, SELECT SUM(weight)totalWeight
IF(CAST(SUM((ts.quantity * ts.price)) AS DECIMAL(10,2)), CAST(SUM((ts.quantity * ts.price)) AS DECIMAL(10,2)), 0) subtotal FROM vn.ticket
FROM vn.ticketService ts WHERE refFk = ?
JOIN vn.ticket t ON ts.ticketFk = t.id AND weight
WHERE t.refFk = ? ) sub ON TRUE
) sub WHERE t.refFk =?
WHERE io.ref = ? AND ios.isCEE GROUP BY i.intrastatFk
ORDER BY sub.code; UNION ALL
SELECT NULL ,
IF((SUM((ts.quantity * ts.price))), 'Servicios', NULL),
IFNULL(CAST(SUM((ts.quantity * ts.price)) AS DECIMAL(10,2)), 0),
0 ,
0
FROM vn.ticketService ts
JOIN vn.ticket t ON ts.ticketFk = t.id
WHERE t.refFk = ?
) sub2
WHERE `description` IS NOT NULL;