Naviguation dans :  Perl  JavaScript  Détail  - load.cgi?Appel=saveAdmin
 présentée :  par cas d'appel   par traitements 
Retour à l'accueil
  
   
 Requêtes 

 load – Admin 

 Execer 

Requêtes de Ça-déménage.com
Accès professionnel
Exécution de la requête
 
 
 Bibliothèque CaD 

 Utilitaires 

 getArea 

Bibliothèque de Ça-déménage.com
Divers utilitaires
Construit la région (départements limitrophes)
 


 getArea  Construit la région (départements limitrophes)
Syntaxe getArea(To,IN,AREA)
Paramètres 
nom  type  Description 
To  IN Cas d'appel
IN  IN Enregistrement contenant les codes postaux à régionaliser
Perl : scalaire passé par référence – JavaScript : tableau à 1 élément
AREA  OUT Liste des départements limitrophes des codes postaux présents en entrée
Perl : scalaire passé par référence – JavaScript : tableau à 1 élément
retourne  OUT  0 : Traitement correct
-1 : Traitement correct mais sans régionalisation (champ AREA non renseigné)
> 0 : Enregistrement incorrect
Fonctions util. Néant


Code Perl 

sub getArea {local($To,$IN,$AREA) = @_; 
 local($x1,$k,$x); 
 if ($To ne "Admin") {return -1}
 if ($$IN!~/\/#T\(gloVData\):(.*)/) {return 1}; $x1 = $1;
 if (substr($x1,0,4) ne "(#L:") {return 2}; $x1 = substr($x1,$k+3);
 if (($k=index($x1,"/#L)"))==-1) {return 2}; $x1 = substr($x1,0,$k);
 local @T = split(/\/#L/,$x1); if (scalar(@T)!=8) {return 2}; 
 if ($T[7]!~/[^,]*,([^;]*);/) {return 3}; $x = $1;
 if ($x eq "tous") {$x = ""; $x1 = $T[3]; if ($x1 ne "") {if ($x1=~/\\n(\d{5}) /) {$x = $1}}}
if ($x ne "") {
local @TDpt2 = ("","74,73,38,69,71,39","08,51,77,60,80,62,59","58,71,42,63,23,18","05,06,83,13,84","04,84,26,38,73","83,04","38,26,84,30,48,43,42","55,51,02,59","66,11,31","51,52,21,89,77","34,66,09,31,81","15,48,30,34,81,82","84,04,83,30","76,27,61,50","63,43,48,12,46,19","86,87,24,33,17,79","33,24,16,79,85","45,58,03,23,36,41,89","23,63,15,46,24,87","2A,2B","52,89,10,58,71,39,70","56,29,35","18,03,63,19,87,36","87,19,46,47,33,17,16","90,70,39","38,05,42,07,30,84,04","76,60,95,78,28,61,14","27,78,91,45,41,72,61","22,56","12,34,48,07,26,84,13","11,81,82,09,65,32","82,65,31,47,40,64","24,40,32,47,17","11,81,12,30","53,50,49,44,56,22","86,41,37,87,23,18","72,86,49,41,36","01,69,42,07,26,05,73","01,71,21,70,25","64,47,33,32","37,18,36,72,28,45","07,63,43,03,71,69,38,26","48,07,15,63,42","56,85,79,49,35","18,28,41,89,77,91","19,15,24,47,82,12","33,32,40,24,46,82","12,15,43,07,30","44,85,79,86,37,72,53,35","14,35,53,61","10,02,52,55,08,77","88,55,51,10,21,70","49,61,72,50,35,44","88,55,57","08,51,52,88,54","29,35,22,44","54,67,88","89,21,18,03,71","62,02,80","02,77,80,76,27,95","27,14,50,53,72,28","59,80,02","23,19,15,43,42,03","40,32,65","32,64,31","09,11","57,68,88","88,67,70,90","38,71,42,01","88,21,25,39,52,68,90","21,58,03,42,69,01,39","49,53,61,28,41,37","74,01,38,05","73,01","75,92,93,94","80,60,27,14","91,95,93,94","91,95,92","17,85,49,37,86,16","60,76,62,59,02","31,12,82,11,34","47,12,46,81,31,32","84,13,06,04","83,13,30,26,04","79,44,49,17","49,37,16,79,87,36","24,19,23,36,86,16","54,67,57,68,70,52,55","18,45,77,10,21,58","88,25,68,70","77,78,92,94","75,92,93,94","75,92,93,94","75,92,93,94","77,78,92,93","","","",""); 
 local(@T,$k,$k2); 
 $x =~ s/(\d\d)\d{3}/$1/g;
 @T = split(/,/,$x);
 for($k=0;$k<scalar(@T);$k++) {if (($k2=&crtLire($T[$k]))!=0) {$x .= ",".$TDpt2[$k2]}}
 @T = split(/,/,$x);
 $x = ","; for($k=0;$k<scalar(@T);$k++) {if (index($x,",".$T[$k].",")==-1) {$x .= $T[$k].","}}
 $x = substr($x,1,length($x)-2);
}
 $$AREA = $x;
 if ($$IN!~/\/#T\(gloError\):3(\d)\/#T/) {return -1}
 return 0
}

sub crtLire {local($dpt) = @_; 
 local($k); 
 if (($dpt eq "2A")||($dpt eq "2B")) {$dpt = "20"}; if ($dpt eq "98") {$dpt = "06"}
 if ($dpt!~/^(\d)(\d)/) {return 0}
 $k = ((($1 eq "0")?"":$1).$2)+0; if (($k<1)||(95<$k)) {return 0}
 return $k;
}
Code JavaScript 

function getArea(To,IN,AREA) { 
 var x1,k,x; 
 if (To!="Admin") {return -1}
 if (!IN[0].match(/\/#T\(gloVData\):(.*)/)) {return 1}; x1 = RegExp.$1;
 if (x1.substr(0,4)!="(#L:") {return 2}; x1 = x1.substr(k+3);
 if ((k=x1.indexOf("/#L)"))==-1) {return 2}; x1 = x1.substr(0,k);
 var T = x1.split(/\/#L/); if (T.length!=8) {return 2}; 
 if (!T[7].match(/[^,]*,([^;]*);/)) {return 3}; x = RegExp.$1;
 if (x=="tous") {x = ""; x1 = T[3]; if (x1!="") {if (x1.match(/\\n(\d{5}) /)) {x = RegExp.$1}}}
if (x!="") {
var TDpt2 = ["","74,73,38,69,71,39","08,51,77,60,80,62,59","58,71,42,63,23,18","05,06,83,13,84","04,84,26,38,73","83,04","38,26,84,30,48,43,42","55,51,02,59","66,11,31","51,52,21,89,77","34,66,09,31,81","15,48,30,34,81,82","84,04,83,30","76,27,61,50","63,43,48,12,46,19","86,87,24,33,17,79","33,24,16,79,85","45,58,03,23,36,41,89","23,63,15,46,24,87","2A,2B","52,89,10,58,71,39,70","56,29,35","18,03,63,19,87,36","87,19,46,47,33,17,16","90,70,39","38,05,42,07,30,84,04","76,60,95,78,28,61,14","27,78,91,45,41,72,61","22,56","12,34,48,07,26,84,13","11,81,82,09,65,32","82,65,31,47,40,64","24,40,32,47,17","11,81,12,30","53,50,49,44,56,22","86,41,37,87,23,18","72,86,49,41,36","01,69,42,07,26,05,73","01,71,21,70,25","64,47,33,32","37,18,36,72,28,45","07,63,43,03,71,69,38,26","48,07,15,63,42","56,85,79,49,35","18,28,41,89,77,91","19,15,24,47,82,12","33,32,40,24,46,82","12,15,43,07,30","44,85,79,86,37,72,53,35","14,35,53,61","10,02,52,55,08,77","88,55,51,10,21,70","49,61,72,50,35,44","88,55,57","08,51,52,88,54","29,35,22,44","54,67,88","89,21,18,03,71","62,02,80","02,77,80,76,27,95","27,14,50,53,72,28","59,80,02","23,19,15,43,42,03","40,32,65","32,64,31","09,11","57,68,88","88,67,70,90","38,71,42,01","88,21,25,39,52,68,90","21,58,03,42,69,01,39","49,53,61,28,41,37","74,01,38,05","73,01","75,92,93,94","80,60,27,14","91,95,93,94","91,95,92","17,85,49,37,86,16","60,76,62,59,02","31,12,82,11,34","47,12,46,81,31,32","84,13,06,04","83,13,30,26,04","79,44,49,17","49,37,16,79,87,36","24,19,23,36,86,16","54,67,57,68,70,52,55","18,45,77,10,21,58","88,25,68,70","77,78,92,94","75,92,93,94","75,92,93,94","75,92,93,94","77,78,92,93","","","",""]; 
 var T,k,k2; 
 x = x.replace(/(\d\d)\d{3}/g,"$1");
 T = x.split(/,/);
 for(k=0;k<T.length;k++) {if ((k2=crtLire(T[k]))!=0) {x += ","+TDpt2[k2]}}
 T = x.split(/,/);
 x = ","; for(k=0;k<T.length;k++) {if (x.indexOf(","+T[k]+",")==-1) {x += T[k]+","}}
 x = x.substr(1,x.length-2);
}
 AREA[0] = x;
 if (!IN[0].match(/\/#T\(gloError\):3(\d)\/#T/)) {return -1}
 return 0
}

function crtLire(dpt) { 
 var k; 
 if ((dpt=="2A")||(dpt=="2B")) {dpt = "20"}; if (dpt=="98") {dpt = "06"}
 if (!dpt.match(/^(\d)(\d)/)) {return 0}
 k = parseInt(((RegExp.$1=="0")?"":RegExp.$1)+RegExp.$2); if ((k<1)||(95<k)) {return 0}
 return k;
}