refs #7531 Modify zone_getAddresses #2675
|
@ -1,40 +1,28 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`zone_getAddresses`(
|
||||
vSelf INT,
|
||||
vDated DATE,
|
||||
vDepartment INT
|
||||
vShipped DATE,
|
||||
vDepartmentFk INT
|
||||
ivanm marked this conversation as resolved
Outdated
|
||||
)
|
||||
BEGIN
|
||||
/**
|
||||
* Devuelve un listado de todos los clientes activos
|
||||
* con consignatarios a los que se les puede
|
||||
* vender producto para esa zona y no tiene un ticket
|
||||
* para ese día.
|
||||
* vender producto para esa zona.
|
||||
*
|
||||
* @param vSelf Id de zona
|
||||
* @param vDated Fecha de entrega
|
||||
* @param vDepartment Departamento del trabajador
|
||||
* @param vShipped Fecha de envio
|
||||
* @param vDepartmentFk Id de departamento
|
||||
* @return Un select
|
||||
ivanm marked this conversation as resolved
Outdated
guillermo
commented
vDepartmentFk Id de departamento vDepartmentFk Id de departamento
|
||||
*/
|
||||
CALL zone_getPostalCode(vSelf);
|
||||
|
||||
WITH notHasTicket AS (
|
||||
SELECT id
|
||||
FROM vn.client
|
||||
WHERE id NOT IN (
|
||||
SELECT clientFk
|
||||
FROM vn.ticket
|
||||
WHERE landed BETWEEN vDated AND util.dayEnd(vDated)
|
||||
)
|
||||
),
|
||||
hasTicketShippedToday AS (
|
||||
SELECT clientFk,
|
||||
IF (COUNT(*) > 0, TRUE, FALSE) hasTicketShipped
|
||||
WITH clientWithTicket AS (
|
||||
SELECT clientFk
|
||||
FROM vn.ticket
|
||||
WHERE shipped BETWEEN vDated AND util.dayEnd(vDated)
|
||||
GROUP BY clientFk
|
||||
WHERE shipped BETWEEN vShipped AND util.dayEnd(vShipped)
|
||||
)
|
||||
ivanm marked this conversation as resolved
guillermo
commented
notHasTicket crec que te sobra notHasTicket crec que te sobra
|
||||
SELECT c.id clientFk,
|
||||
SELECT c.id,
|
||||
c.name,
|
||||
c.phone,
|
||||
bt.description,
|
||||
|
@ -42,12 +30,12 @@ BEGIN
|
|||
u.name username,
|
||||
ivanm marked this conversation as resolved
guillermo
commented
hasTickets (today no es correcte perque li pots pasar una altra fetxa que no siga hui) hasTickets (today no es correcte perque li pots pasar una altra fetxa que no siga hui)
|
||||
aai.invoiced,
|
||||
ivanm marked this conversation as resolved
guillermo
commented
Aço queda mes net aixina:
Aço queda mes net aixina:
```
SELECT DISTINCT clientFk
FROM vn.ticket
WHERE shipped BETWEEN vDated AND util.dayEnd(vDated)
```
|
||||
cnb.lastShipped,
|
||||
ht.hasTicketShipped
|
||||
cwt.clientFk
|
||||
FROM vn.client c
|
||||
ivanm marked this conversation as resolved
guillermo
commented
Si li preguntares i volia per shipped ok Si li preguntares i volia per shipped ok
|
||||
JOIN vn.worker w ON w.id = c.salesPersonFk
|
||||
JOIN vn.workerDepartment wd ON wd.workerFk = w.id
|
||||
JOIN vn.department d ON d.id = wd.departmentFk
|
||||
JOIN notHasTicket ON notHasTicket.id = c.id
|
||||
LEFT JOIN clientWithTicket cwt ON cwt.clientFk = c.id
|
||||
LEFT JOIN account.`user` u ON u.id = c.salesPersonFk
|
||||
JOIN vn.`address` a ON a.clientFk = c.id
|
||||
JOIN vn.postCode pc ON pc.code = a.postalCode
|
||||
|
@ -58,12 +46,11 @@ BEGIN
|
|||
LEFT JOIN vn.annualAverageInvoiced aai ON aai.clientFk = c.id
|
||||
JOIN vn.clientType ct ON ct.code = c.typeFk
|
||||
JOIN vn.businessType bt ON bt.code = c.businessTypeFk
|
||||
LEFT JOIN hasTicketShippedToday ht ON ht.clientFk = c.id
|
||||
WHERE a.isActive
|
||||
AND c.isActive
|
||||
AND ct.code = 'normal'
|
||||
AND bt.code <> 'worker'
|
||||
AND d.id = vDepartment
|
||||
AND d.id = vDepartmentFk
|
||||
ivanm marked this conversation as resolved
Outdated
guillermo
commented
Soporta que pueda ser null: Soporta que pueda ser null:
`(d.id = vDepartmentFk OR NOT vDepartmentFk)`
ivanm
commented
Cert, també demana els que no tinguen comercial/departament assignat. Ho modifique. Cert, també demana els que no tinguen comercial/departament assignat. Ho modifique.
|
||||
GROUP BY c.id;
|
||||
|
||||
DROP TEMPORARY TABLE tmp.zoneNodes;
|
||||
|
|
Loading…
Reference in New Issue
vDepartmentFk