DELIMITER $$ CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `vn`.`entry_isIntrastat`(vSelf INT) RETURNS int(11) NOT DETERMINISTIC READS SQL DATA BEGIN /** * Devuelve si el proveedor de la entrada es de la CEE * * @param vSelf Id de la entrada * @return true si es de la CEE */ DECLARE vIsUeeSupplier BOOLEAN; DECLARE vIsUeeCompany BOOLEAN; DECLARE vSupplierCountry INT; DECLARE vCompanyCountry INT; SELECT IFNULL(a.isUeeMember, c.isUeeMember), c.id INTO vIsUeeSupplier, vSupplierCountry FROM entry e JOIN supplier s ON s.id = e.supplierFk JOIN country c ON c.id = s.countryFk LEFT JOIN province p ON p.id = s.provinceFk LEFT JOIN autonomy a ON a.id = p.autonomyFk WHERE e.id = vSelf; SELECT IFNULL(a.isUeeMember, c.isUeeMember), c.id INTO vIsUeeCompany, vCompanyCountry FROM entry e JOIN supplier s ON s.id = e.companyFk JOIN country c ON c.id = s.countryFk LEFT JOIN province p ON p.id = s.provinceFk LEFT JOIN autonomy a ON a.id = p.autonomyFk WHERE e.id = vSelf; RETURN vIsUeeCompany AND vIsUeeSupplier AND (vSupplierCountry <> vCompanyCountry); END$$ DELIMITER ;