Naviguation dans :  Perl  JavaScript  Détail  - par cas d'appel / par traitements
 présentée :  par cas d'appel   par traitements 
Retour à l'accueil
  
   
 Requêtes 

 wsCaD_log 

 submit 

Requêtes de Ça-déménage.com
Requête de log d'accès
Appel de la requête
 
 
 Bibliothèque CaD 

 Base 

 Compta 

Bibliothèque de Ça-déménage.com
Accès aux bases
Gestion des messages échangés
 


 cptEcrire  Ecrit un message
Syntaxe cptEcrire(To,nom,val,NUM,x1,x2,mail)
Paramètres 
nom  type  Description 
To  IN Cas d'appel
nom  IN Identifiant d'appel
val  IN Destinataire du message
NUM  IN Etat actuel du contact
Perl : scalaire passé par référence – JavaScript : tableau à 1 élément
x1  IN Message à émettre
x2  IN Désignation de l'émetteur
mail  IN Adresse e-mail de l'émetteur (éventuellement vide)
–  INOUT Liste des contacts wwNum
retourne  OUT  0 : Traitement correct
non nul : Erreur de traitement
Fonctions util. 
 wsFile Fonction d'accès aux fichiers
 getRange Retourne la tranche du fichier
 getDate Permet d'obtenir la date du jour (date+heure)
 Trace Retourne l'enregistrement de trace du client (user agent)
 uneval Fonction réciproque de la fonction "eval"
 wwNum Liste des contacts


Code Perl 

sub cptEcrire {local($To,$nom,$val,$NUM,$x1,$x2,$mail) = @_; 
 if ($x1 ne "") {$x1 =~ s/\/#/\\\/\\#/gi};
 $x1 = &uneval($x1); $x1 = substr($x1,1,length($x1)-2);
 local($Dest,$etat); 
 if ($val!~/^(Admin|User)/) {return 101}; $Dest = $1; $val = substr($val,length($1));
if ($To eq $Dest) {
 $etat = "0";
} elsif (($To eq "User")&&($Dest eq "Admin")) {
 $etat = (($$NUM eq "9")?"2":$$NUM);
} elsif (($To eq "Admin")&&($Dest eq "User")) {
 $etat = (($$NUM eq "9")?"0":(($$NUM eq "2")?"1":$$NUM));
}
 local $Date = ''; local $Jour = ''; &getDate(\$Date,\$Jour); 
 local $date = $Date.$Jour; if ($x1 ne "") {if ($x1=~/^(\w+),/) {$date = $1}}; 
 local $sens = ">"; if ($x1=~/^\w+,[^,]*,pj:/) {$sens = "}"}; 
 if ($$NUM eq "9") {$wwNum .= $etat.",".$Dest.$val.",".$sens.",".$date.",/#"} else {$wwNum =~ s/.,$Dest$val,.,.{18},/$etat,$Dest$val,$sens,$date,/};
&wsFile("begin");
 local $Out = ''; 
 local $x = ""; 
 $x .= '//'.$Date;
 $x .= '/#T(cptOwner):'.$To.$nom;
 $x .= '/#T(cptError):'."0";
 $x .= '/#T(cptUser):'.$Dest.$val;
 $x .= '/#T(cptEtat):'.$etat;
 $x .= '/#T(cptMsg):'.$x1;
 $x = &Trace('Compta',$x);
 $Out = $x; &wsFile("buffer",$To,$nom,"Cpta",\$Out);
 if (&getRange("getFile",$To,$nom,"Cpta") ne &getRange("getFile",$Dest,$val,"Cpta")) {&wsFile("buffer",$Dest,$val,"Cpta",\$Out)}
 $Out = $x; &wsFile("buffer",$Dest,$val,"Cpta",\$Out);
}
if (($To eq "Admin")&&(($$NUM eq "9")||($$NUM eq "2"))) {
 $Out = "/".$val.",".$nom; &wsFile("buffer","Ctc","","Num",\$Out);
 local $x = ""; 
 $x .= '(#T(Contact)new://'.$Date;
 $x .= '/#T(ctcOwner):'.$val;
 $x .= '/#T(ctcError):'."0";
 $x .= '/#T(ctcAdmin):'.$nom;
 $x .= '/#T(ctcEtat):'."0";
 $x .= '/#T(ctcVData):'.$x2;
 $x .= '/#T(ctcVDate):'.$Date;
 $x .= '/#T(ctcVMail):'.$mail;
 $x .= '/#T)'."\n";
 $Out = $x; &wsFile("buffer",$Dest,$val,"",\$Out);
}
return &wsFile("end");
}
Code JavaScript 

function cptEcrire(To,nom,val,NUM,x1,x2,mail) { 
 if (x1!="") {x1 = x1.replace(/\/#/gi,"\\\/\\#")};
 x1 = uneval(x1); x1 = x1.substr(1,x1.length-2);
 var Dest,etat; 
 if (!val.match(/^(Admin|User)/)) {return 101}; Dest = RegExp.$1; val = val.substr(RegExp.$1.length);
if (To==Dest) {
 etat = "0";
} else if ((To=="User")&&(Dest=="Admin")) {
 etat = ((NUM[0]=="9")?"2":NUM[0]);
} else if ((To=="Admin")&&(Dest=="User")) {
 etat = ((NUM[0]=="9")?"0":((NUM[0]=="2")?"1":NUM[0]));
}
 var Date = Array(''); var Jour = Array(''); getDate(Date,Jour); 
 var date = Date[0]+Jour[0]; if (x1!="") {if (x1.match(/^(\w+),/)) {date = RegExp.$1}}; 
 var sens = ">"; if (x1.match(/^\w+,[^,]*,pj:/)) {sens = "}"}; 
 if (NUM[0]=="9") {wwNum[0] += etat+","+Dest+val+","+sens+","+date+",/#"} else {wwNum[0] = wwNum[0].replace(new RegExp(".,"+Dest+val+",.,.{18},"),etat+","+Dest+val+","+sens+","+date+",")};
wsFile("begin");
 var Out = Array(''); 
 var x = ""; 
 x += '//'+Date[0];
 x += '/#T(cptOwner):'+To+nom;
 x += '/#T(cptError):'+"0";
 x += '/#T(cptUser):'+Dest+val;
 x += '/#T(cptEtat):'+etat;
 x += '/#T(cptMsg):'+x1;
 x = Trace('Compta',x);
 Out[0] = x; wsFile("buffer",To,nom,"Cpta",Out);
 if (getRange("getFile",To,nom,"Cpta")!=getRange("getFile",Dest,val,"Cpta")) {wsFile("buffer",Dest,val,"Cpta",Out)}
 Out[0] = x; wsFile("buffer",Dest,val,"Cpta",Out);
}
if ((To=="Admin")&&((NUM[0]=="9")||(NUM[0]=="2"))) {
 Out[0] = "/"+val+","+nom; wsFile("buffer","Ctc","","Num",Out);
 var x = ""; 
 x += '(#T(Contact)new://'+Date[0];
 x += '/#T(ctcOwner):'+val;
 x += '/#T(ctcError):'+"0";
 x += '/#T(ctcAdmin):'+nom;
 x += '/#T(ctcEtat):'+"0";
 x += '/#T(ctcVData):'+x2;
 x += '/#T(ctcVDate):'+Date[0];
 x += '/#T(ctcVMail):'+mail;
 x += '/#T)'+"\n";
 Out[0] = x; wsFile("buffer",Dest,val,"",Out);
}
return wsFile("end");
}