Errores solucionados

This commit is contained in:
Juan Ferrer Toribio 2016-04-24 13:23:34 +02:00
parent 2cd108ea3a
commit 5a1ef1a0a6
8 changed files with 90 additions and 40 deletions

View File

@ -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 ();
}
?>

2
debian/changelog vendored
View File

@ -1,4 +1,4 @@
vn-asterisk (1.004-deb7) stable; urgency=low
vn-asterisk (1.005-deb7) stable; urgency=low
* Initial Release.

View File

@ -4,9 +4,10 @@
* @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
@ -37,7 +38,7 @@ BEGIN
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;

View File

@ -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 ;

View File

@ -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

View File

@ -4,9 +4,10 @@
* @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;

23
sql/queue_is_valid.sql Normal file
View File

@ -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 ;

View File

@ -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]+$';