Errores solucionados
This commit is contained in:
parent
2cd108ea3a
commit
5a1ef1a0a6
|
@ -32,7 +32,7 @@ if ($db->getValue ('SELECT COUNT(*) > 0 FROM blacklist WHERE phone = #', [$calle
|
|||
|
||||
$sundayFestive = $db->getValue ('SELECT sunday_festive FROM config');
|
||||
|
||||
if (date ('N') == 6 && $sundayFestive)
|
||||
if (date ('N') == 7 && $sundayFestive)
|
||||
{
|
||||
Agi::exec ('SET VARIABLE MACRO playback');
|
||||
Agi::exec ('SET VARIABLE ARG1 out-of-ours');
|
||||
|
@ -65,8 +65,6 @@ if ($customer)
|
|||
Agi::exec ('SET VARIABLE MACRO playback');
|
||||
Agi::exec ('SET VARIABLE ARG1 busy');
|
||||
}
|
||||
|
||||
exit ();
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
vn-asterisk (1.004-deb7) stable; urgency=low
|
||||
vn-asterisk (1.005-deb7) stable; urgency=low
|
||||
|
||||
* Initial Release.
|
||||
|
||||
|
|
|
@ -4,17 +4,18 @@
|
|||
* @param v_phone The caller phone number
|
||||
* @return The customer id or %NULL if customer not exists or is inactive
|
||||
**/
|
||||
DROP FUNCTION IF EXISTS pbx.customer_from_phone;
|
||||
USE pbx;
|
||||
DROP FUNCTION IF EXISTS customer_from_phone;
|
||||
DELIMITER $$
|
||||
CREATE FUNCTION pbx.customer_from_phone (v_phone VARCHAR(255))
|
||||
CREATE FUNCTION customer_from_phone (v_phone VARCHAR(255))
|
||||
RETURNS INT
|
||||
DETERMINISTIC
|
||||
BEGIN
|
||||
DECLARE v_customer INT DEFAULT NULL;
|
||||
|
||||
SET @phone = v_phone COLLATE 'utf8_unicode_ci';
|
||||
|
||||
-- Searchs a customer associated to the phone number
|
||||
DECLARE v_customer INT DEFAULT NULL;
|
||||
|
||||
SET @phone = v_phone COLLATE 'utf8_unicode_ci';
|
||||
|
||||
-- Searchs a customer associated to the phone number
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp.customer;
|
||||
CREATE TEMPORARY TABLE tmp.customer
|
||||
|
@ -34,12 +35,12 @@ BEGIN
|
|||
JOIN vn2008.Contactos c ON r.Id_Contacto = c.Id_Contacto
|
||||
WHERE telefono = @phone
|
||||
OR movil = @phone;
|
||||
|
||||
|
||||
SELECT t.customer INTO v_customer
|
||||
FROM tmp.customer t
|
||||
JOIN vn2008.Clientes c
|
||||
JOIN vn2008.Clientes c ON c.id_cliente = t.customer
|
||||
WHERE c.activo
|
||||
LIMIT 1;
|
||||
LIMIT 1;
|
||||
|
||||
DROP TEMPORARY TABLE tmp.customer;
|
||||
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
/**
|
||||
* Checks whether a passed extension number has valid sintax
|
||||
*
|
||||
* @param v_extension The extension to check format
|
||||
* @return %TRUE if it's well formated
|
||||
**/
|
||||
USE pbx;
|
||||
DROP PROCEDURE IF EXISTS extension_is_valid;
|
||||
DELIMITER $$
|
||||
CREATE PROCEDURE extension_is_valid (v_extension VARCHAR(255))
|
||||
BEGIN
|
||||
DECLARE v_is_valid BOOLEAN;
|
||||
|
||||
SET v_is_valid = v_extension IS NULL
|
||||
OR (v_extension REGEXP '^[0-9]{4}$'
|
||||
AND MOD(v_extension, 100) != 0);
|
||||
|
||||
IF NOT v_is_valid
|
||||
THEN
|
||||
SIGNAL SQLSTATE '45000'
|
||||
SET MESSAGE_TEXT = 'EXTENSION_INVALID_FORMAT';
|
||||
END IF;
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -4,9 +4,10 @@
|
|||
* @param v_phone The phone to format
|
||||
* @return The formated phone or %NULL if bad sintax
|
||||
**/
|
||||
DROP FUNCTION IF EXISTS pbx.phone_format;
|
||||
USE pbx;
|
||||
DROP FUNCTION IF EXISTS phone_format;
|
||||
DELIMITER $$
|
||||
CREATE FUNCTION pbx.phone_format (phone VARCHAR(255))
|
||||
CREATE FUNCTION phone_format (phone VARCHAR(255))
|
||||
RETURNS VARCHAR(255)
|
||||
DETERMINISTIC
|
||||
BEGIN
|
||||
|
@ -16,19 +17,19 @@ BEGIN
|
|||
DECLARE newPhone VARCHAR(255) DEFAULT '';
|
||||
|
||||
WHILE i < len
|
||||
DO
|
||||
DO
|
||||
SET chr = SUBSTR(phone, i+1, 1);
|
||||
|
||||
|
||||
IF chr REGEXP '^[0-9]$'
|
||||
THEN
|
||||
THEN
|
||||
SET newPhone = CONCAT(newPhone, chr);
|
||||
ELSEIF chr = '+' AND i = 0
|
||||
THEN
|
||||
THEN
|
||||
SET newPhone = CONCAT(newPhone, '00');
|
||||
END IF;
|
||||
|
||||
SET i = i + 1;
|
||||
END WHILE;
|
||||
|
||||
SET i = i + 1;
|
||||
END WHILE;
|
||||
|
||||
IF newPhone REGEXP '^0+$' OR newPhone = '' THEN
|
||||
RETURN NULL;
|
||||
|
|
|
@ -4,21 +4,22 @@
|
|||
* @param v_phone The phone to check format
|
||||
* @return %TRUE if it's well formated
|
||||
**/
|
||||
DROP PROCEDURE IF EXISTS pbx.phone_is_valid;
|
||||
USE pbx;
|
||||
DROP PROCEDURE IF EXISTS phone_is_valid;
|
||||
DELIMITER $$
|
||||
CREATE PROCEDURE pbx.phone_is_valid (v_phone VARCHAR(255))
|
||||
CREATE PROCEDURE phone_is_valid (v_phone VARCHAR(255))
|
||||
BEGIN
|
||||
DECLARE v_is_valid BOOLEAN;
|
||||
|
||||
SET v_is_valid = v_phone IS NULL
|
||||
SET v_is_valid = v_phone IS NULL
|
||||
OR (v_phone REGEXP '^[0-9]+$'
|
||||
AND v_phone NOT REGEXP '^0+$'
|
||||
AND v_phone NOT REGEXP '^0034');
|
||||
|
||||
IF NOT v_is_valid
|
||||
THEN
|
||||
THEN
|
||||
SIGNAL SQLSTATE '45000'
|
||||
SET MESSAGE_TEXT = 'PHONE_INVALID_FORMAT';
|
||||
END IF;
|
||||
END IF;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
/**
|
||||
* Checks whether a passed queue number has valid sintax
|
||||
*
|
||||
* @param v_queue The queue to check format
|
||||
* @return %TRUE if it's well formated
|
||||
**/
|
||||
USE pbx;
|
||||
DROP PROCEDURE IF EXISTS queue_is_valid;
|
||||
DELIMITER $$
|
||||
CREATE PROCEDURE queue_is_valid (v_queue VARCHAR(255))
|
||||
BEGIN
|
||||
DECLARE v_is_valid BOOLEAN;
|
||||
|
||||
SET v_is_valid = v_queue IS NULL
|
||||
OR v_queue REGEXP '^[1-9][0-9]00$';
|
||||
|
||||
IF NOT v_is_valid
|
||||
THEN
|
||||
SIGNAL SQLSTATE '45000'
|
||||
SET MESSAGE_TEXT = 'QUEUE_INVALID_FORMAT';
|
||||
END IF;
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -1,42 +1,44 @@
|
|||
|
||||
USE vn2008;
|
||||
|
||||
-- Updates the bad formated phones
|
||||
|
||||
UPDATE vn2008.Clientes
|
||||
UPDATE Clientes
|
||||
SET telefono = pbx.phone_format (telefono),
|
||||
fax = pbx.phone_format (fax),
|
||||
movil = pbx.phone_format (movil);
|
||||
|
||||
UPDATE vn2008.Consignatarios
|
||||
UPDATE Consignatarios
|
||||
SET telefono = pbx.phone_format (telefono),
|
||||
movil = pbx.phone_format (movil);
|
||||
|
||||
UPDATE vn2008.Contactos
|
||||
UPDATE Contactos
|
||||
SET telefono = pbx.phone_format (telefono),
|
||||
fax = pbx.phone_format (fax),
|
||||
movil = pbx.phone_format (movil);
|
||||
|
||||
-- Indexes the phone columns
|
||||
|
||||
ALTER TABLE vn2008.`Clientes` ADD INDEX(`Telefono`);
|
||||
ALTER TABLE vn2008.`Clientes` ADD INDEX(`movil`);
|
||||
ALTER TABLE Clientes ADD INDEX(Telefono);
|
||||
ALTER TABLE Clientes ADD INDEX(movil);
|
||||
|
||||
ALTER TABLE vn2008.`Consignatarios` ADD INDEX(`telefono`);
|
||||
ALTER TABLE vn2008.`Consignatarios` ADD INDEX(`movil`);
|
||||
ALTER TABLE Consignatarios ADD INDEX(telefono);
|
||||
ALTER TABLE Consignatarios ADD INDEX(movil);
|
||||
|
||||
ALTER TABLE vn2008.`Contactos` ADD INDEX(`Telefono`);
|
||||
ALTER TABLE vn2008.`Contactos` ADD INDEX(`Movil`);
|
||||
ALTER TABLE Contactos ADD INDEX(Telefono);
|
||||
ALTER TABLE Contactos ADD INDEX(Movil);
|
||||
|
||||
-- Returns all bad formated phones
|
||||
|
||||
SELECT telefono, movil c FROM vn2008.Clientes
|
||||
SELECT telefono, movil c FROM Clientes
|
||||
WHERE telefono NOT REGEXP '^[0-9]+$'
|
||||
OR movil NOT REGEXP '^[0-9]+$'
|
||||
UNION
|
||||
SELECT telefono, movil FROM vn2008.Consignatarios
|
||||
SELECT telefono, movil FROM Consignatarios
|
||||
WHERE telefono NOT REGEXP '^[0-9]+$'
|
||||
OR movil NOT REGEXP '^[0-9]+$'
|
||||
UNION
|
||||
SELECT telefono, movil FROM vn2008.Contactos
|
||||
SELECT telefono, movil FROM Contactos
|
||||
WHERE telefono NOT REGEXP '^[0-9]+$'
|
||||
OR movil NOT REGEXP '^[0-9]+$';
|
||||
|
||||
|
|
Loading…
Reference in New Issue