27 lines
954 B
SQL
27 lines
954 B
SQL
ALTER TABLE vn.client
|
|
CHANGE hasDailyInvoice hasDailyInvoice tinyint(1) DEFAULT 0 NOT NULL
|
|
COMMENT 'Indica si el cliente requiere facturación diaria por defecto se copiará lo que tenga country.hasDailyInvoice'
|
|
AFTER recommendedCredit,
|
|
ADD geoFk int(11) DEFAULT NULL NULL AFTER hasDailyInvoice,
|
|
ADD CONSTRAINT client_zoneGeo_FK FOREIGN KEY (geoFk)
|
|
REFERENCES vn.zoneGeo(id) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
CREATE OR REPLACE TEMPORARY TABLE tmp.tClientGeo
|
|
(PRIMARY KEY (id))
|
|
ENGINE = MEMORY
|
|
SELECT c.id, p.geoFk
|
|
FROM vn.client c
|
|
JOIN vn.town t ON t.provinceFk = c.provinceFk
|
|
JOIN vn.postCode p ON p.townFk = t.id
|
|
AND (p.code = c.postcode OR c.postcode IS NULL)
|
|
JOIN vn.zoneGeo zg ON zg.id = p.geoFk
|
|
GROUP BY c.id
|
|
ORDER BY (c.city SOUNDS LIKE t.`name`) DESC,
|
|
(p.code = c.postcode) DESC;
|
|
|
|
UPDATE vn.client c
|
|
JOIN tmp.tClientGeo tcg ON tcg.id = c.id
|
|
SET c.geoFk = tcg.geoFk;
|
|
|
|
DROP TEMPORARY TABLE tmp.tClientGeo;
|