37 |
"identifier" => "donnees_techniques", |
"identifier" => "donnees_techniques", |
38 |
"portlet" => array( |
"portlet" => array( |
39 |
"type" => "action-self", |
"type" => "action-self", |
40 |
"libelle" => _("Données techniques"), |
"libelle" => __("Données techniques"), |
41 |
"order" => 100, |
"order" => 100, |
42 |
"class" => "rediger-16", |
"class" => "rediger-16", |
43 |
), |
), |
52 |
"identifier" => "transferer_lot_nouveaux_demandeurs", |
"identifier" => "transferer_lot_nouveaux_demandeurs", |
53 |
"portlet" => array( |
"portlet" => array( |
54 |
"type" => "action-direct", |
"type" => "action-direct", |
55 |
"libelle" => _("Transferer ce lot aux nouveaux demandeurs"), |
"libelle" => __("Transferer ce lot aux nouveaux demandeurs"), |
56 |
"order" => 110, |
"order" => 110, |
57 |
"class" => "transferer-16", |
"class" => "transferer-16", |
58 |
), |
), |
84 |
/*Donnees*/ |
/*Donnees*/ |
85 |
$idxDossier = $this->getVal("dossier"); |
$idxDossier = $this->getVal("dossier"); |
86 |
//Si les liaisons n'existent pas déjà |
//Si les liaisons n'existent pas déjà |
87 |
$sql = "SELECT |
$qres = $this->f->get_all_results_from_db_query( |
88 |
lot.lot as lot, lien_lot_demandeur.demandeur as demandeur |
sprintf( |
89 |
|
'SELECT |
90 |
|
lot.lot, |
91 |
|
lien_lot_demandeur.demandeur |
92 |
FROM |
FROM |
93 |
".DB_PREFIXE."lien_dossier_demandeur |
%1$slien_dossier_demandeur |
94 |
INNER JOIN ".DB_PREFIXE."lien_lot_demandeur |
INNER JOIN %1$slien_lot_demandeur |
95 |
ON |
ON lien_lot_demandeur.demandeur = lien_dossier_demandeur.demandeur |
96 |
lien_lot_demandeur.demandeur = lien_dossier_demandeur.demandeur |
INNER JOIN %1$slot |
97 |
INNER JOIN ".DB_PREFIXE."lot |
ON lot.lot = %2$d |
98 |
ON |
WHERE |
99 |
lot.lot = ".$this->getVal($this->clePrimaire)." |
lien_dossier_demandeur.dossier = \'%3$s\'', |
100 |
WHERE lien_dossier_demandeur.dossier = '$idxDossier'"; |
DB_PREFIXE, |
101 |
|
intval($this->getVal($this->clePrimaire)), |
102 |
$res = $this->f->db->query($sql); |
$this->f->db->escapeSimple($idxDossier) |
103 |
$this->addToLog(__METHOD__."(): db->query(\"".$sql."\");", VERBOSE_MODE); |
), |
104 |
|
array( |
105 |
// Si une erreur survient |
'origin' => __METHOD__, |
106 |
if (database::isError($res, true)) { |
'force_result' => true |
107 |
|
) |
108 |
|
); |
109 |
|
if ($qres['code'] !== 'OK') { |
110 |
// Appel de la methode de recuperation des erreurs |
// Appel de la methode de recuperation des erreurs |
111 |
$this->erreur_db($res->getDebugInfo(), $res->getMessage(), ''); |
$this->erreur_db($qres['messsage'], $qres['messsage'], ''); |
|
$res->free(); |
|
112 |
$this->correct = false; |
$this->correct = false; |
113 |
// Termine le traitement |
// Termine le traitement |
114 |
return $this->end_treatment(__METHOD__, false); |
return $this->end_treatment(__METHOD__, false); |
116 |
|
|
117 |
// Récupère la liste des demandeurs associés aux lot et dossier d'instruction |
// Récupère la liste des demandeurs associés aux lot et dossier d'instruction |
118 |
$listDemandeurLie = array(); |
$listDemandeurLie = array(); |
119 |
if ($res->numrows() > 0) { |
if ($qres['row_count'] > 0) { |
120 |
|
|
121 |
$i = 0; |
$i = 0; |
122 |
while($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){ |
foreach ($qres['result'] as $row) { |
123 |
|
$listDemandeurLie[$i++] = $row['demandeur']; |
|
$listDemandeurLie[$i++] = $row['demandeur']; |
|
124 |
} |
} |
125 |
} |
} |
126 |
echo (" nbDossierDemandeurIJ: " . $res->numrows()); |
echo (" nbDossierDemandeurIJ: " . $qres['row_count']); |
127 |
|
|
|
$res->free(); |
|
128 |
// Récupère les demandeurs du dossier d'instruction |
// Récupère les demandeurs du dossier d'instruction |
129 |
$sql = "SELECT |
$qres = $this->f->get_all_results_from_db_query( |
130 |
|
sprintf( |
131 |
|
'SELECT |
132 |
lien_dossier_demandeur.demandeur as demandeur, |
lien_dossier_demandeur.demandeur as demandeur, |
133 |
lien_dossier_demandeur.petitionnaire_principal as pp |
lien_dossier_demandeur.petitionnaire_principal as pp |
134 |
FROM |
FROM |
135 |
".DB_PREFIXE."lien_dossier_demandeur |
%1$slien_dossier_demandeur |
136 |
WHERE lien_dossier_demandeur.dossier = '$idxDossier'"; |
WHERE |
137 |
|
lien_dossier_demandeur.dossier = \'%2$s\'', |
138 |
$res = $this->f->db->query($sql); |
DB_PREFIXE, |
139 |
$this->addToLog(__METHOD__."(): db->query(\"".$sql."\");", VERBOSE_MODE); |
$this->f->db->escapeSimple($idxDossier) |
140 |
|
), |
141 |
// Si une erreur survient |
array( |
142 |
if (database::isError($res, true)) { |
'origin' => __METHOD__, |
143 |
|
'force_result' => true |
144 |
|
) |
145 |
|
); |
146 |
|
if ($qres['code'] !== 'OK') { |
147 |
// Appel de la methode de recuperation des erreurs |
// Appel de la methode de recuperation des erreurs |
148 |
$this->erreur_db($res->getDebugInfo(), $res->getMessage(), ''); |
$this->erreur_db($qres['message'], $qres['message'], ''); |
|
$res->free(); |
|
149 |
$this->correct = false; |
$this->correct = false; |
150 |
// Termine le traitement |
// Termine le traitement |
151 |
return $this->end_treatment(__METHOD__, false); |
return $this->end_treatment(__METHOD__, false); |
152 |
} |
} |
153 |
|
|
154 |
echo (" nbDossierDemandeurWD: " . $res->numrows()); |
echo (" nbDossierDemandeurWD: " . $qres['row_count']); |
155 |
|
|
156 |
// Transfert des demandeurs entre le dossier et le lot |
// Transfert des demandeurs entre le dossier et le lot |
157 |
if (count($listDemandeurLie) != $res->numrows()){ |
if (count($listDemandeurLie) != $qres['row_count']) { |
158 |
|
|
159 |
//Supprime les anciens liens |
//Supprime les anciens liens |
160 |
$sql = "DELETE FROM ".DB_PREFIXE."lien_lot_demandeur |
$sql = "DELETE FROM ".DB_PREFIXE."lien_lot_demandeur |
164 |
|
|
165 |
echo (" delLotDemandeur: " . $res2); |
echo (" delLotDemandeur: " . $res2); |
166 |
$this->addToLog(__METHOD__."(): db->query(\"".$sql."\");", VERBOSE_MODE); |
$this->addToLog(__METHOD__."(): db->query(\"".$sql."\");", VERBOSE_MODE); |
167 |
|
if ($this->f->isDatabaseError($res2, true) !== false) { |
|
|
|
|
// Si une erreur survient |
|
|
if (database::isError($res2, true)) { |
|
|
|
|
168 |
// Appel de la methode de recuperation des erreurs |
// Appel de la methode de recuperation des erreurs |
169 |
$this->erreur_db($res2->getDebugInfo(), $res2->getMessage(), ''); |
$this->erreur_db($res2->getDebugInfo(), $res2->getMessage(), ''); |
170 |
$res2->free(); |
$res2->free(); |
177 |
|
|
178 |
|
|
179 |
// Créé autant de liaisons que de demandeurs liés au dossier d'instruction |
// Créé autant de liaisons que de demandeurs liés au dossier d'instruction |
180 |
while($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){ |
foreach ($qres['result'] as $row) { |
181 |
|
|
182 |
if (!in_array($row['demandeur'], $listDemandeurLie)){ |
if (!in_array($row['demandeur'], $listDemandeurLie)){ |
183 |
|
|
191 |
"obj" => "lien_lot_demandeur", |
"obj" => "lien_lot_demandeur", |
192 |
"idx" => "]", |
"idx" => "]", |
193 |
)); |
)); |
194 |
$lld->valF = ""; |
$lld->valF = array(); |
195 |
|
|
196 |
$lld->ajouter($valLLD) ; |
$lld->ajouter($valLLD) ; |
197 |
|
|
198 |
$sql = "SELECT |
$qres2 = $this->f->get_all_results_from_db_query( |
199 |
|
sprintf( |
200 |
|
'SELECT |
201 |
civilite.code as code, |
civilite.code as code, |
202 |
CASE WHEN demandeur.qualite='particulier' |
CASE WHEN demandeur.qualite = \'particulier\' |
203 |
THEN TRIM(CONCAT(demandeur.particulier_nom, ' ', demandeur.particulier_prenom)) |
THEN TRIM(CONCAT(demandeur.particulier_nom, \' \', demandeur.particulier_prenom)) |
204 |
ELSE TRIM(CONCAT(demandeur.personne_morale_raison_sociale, ' ', demandeur.personne_morale_denomination)) |
ELSE TRIM(CONCAT(demandeur.personne_morale_raison_sociale, \' \', demandeur.personne_morale_denomination)) |
205 |
END as nom |
END as nom |
206 |
FROM |
FROM |
207 |
".DB_PREFIXE."demandeur |
%1$sdemandeur |
208 |
LEFT JOIN |
LEFT JOIN %1$scivilite |
209 |
".DB_PREFIXE."civilite |
ON demandeur.particulier_civilite = civilite.civilite |
210 |
ON |
OR demandeur.personne_morale_civilite = civilite.civilite |
211 |
demandeur.particulier_civilite = civilite.civilite OR |
WHERE |
212 |
demandeur.personne_morale_civilite = civilite.civilite |
demandeur.demandeur = %2$d', |
213 |
WHERE demandeur.demandeur = ".$row['demandeur']; |
DB_PREFIXE, |
214 |
|
intval($row['demandeur']) |
215 |
$res2 = $this->f->db->query($sql); |
), |
216 |
$this->addToLog(__METHOD__."(): db->query(\"".$sql."\");", VERBOSE_MODE); |
array( |
217 |
|
'origin' => __METHOD__, |
218 |
// Si une erreur survient |
'force_result' => true |
219 |
if (database::isError($res2, true)) { |
) |
220 |
|
); |
221 |
|
if ($qres2['result'] !== 'OK') { |
222 |
// Appel de la methode de recuperation des erreurs |
// Appel de la methode de recuperation des erreurs |
223 |
$this->erreur_db($res2->getDebugInfo(), $res2->getMessage(), ''); |
$this->erreur_db($qres2['message'], $qres2['message'], ''); |
|
$res2->free(); |
|
224 |
$this->correct = false; |
$this->correct = false; |
225 |
// Termine le traitement |
// Termine le traitement |
226 |
return $this->end_treatment(__METHOD__, false); |
return $this->end_treatment(__METHOD__, false); |
227 |
} |
} |
228 |
|
|
229 |
$row=& $res2->fetchRow(DB_FETCHMODE_ASSOC); |
$row = array_shift($qres2['result']); |
230 |
$ret .= $row['code']. " " . $row['nom'] . "<br/>" ; |
$ret .= $row['code']. " " . $row['nom'] . "<br/>" ; |
231 |
|
|
|
$res2->free(); |
|
232 |
} |
} |
233 |
} |
} |
|
$res->free(); |
|
234 |
|
|
235 |
//Envoie du message de retour |
//Envoie du message de retour |
236 |
$this->addToMessage(_("Transfert effectue avec succès")); |
$this->addToMessage(__("Transfert effectue avec succès")); |
237 |
} |
} |
238 |
//Sinon |
//Sinon |
239 |
else { |
else { |
240 |
//Envoie du message de retour |
//Envoie du message de retour |
241 |
$this->addToMessage(_("Les demandeurs ont déjà été transférés")); |
$this->addToMessage(__("Les demandeurs ont déjà été transférés")); |
242 |
} |
} |
243 |
|
|
244 |
// Termine le traitement |
// Termine le traitement |
257 |
&& isset($obj) && !empty($obj)){ |
&& isset($obj) && !empty($obj)){ |
258 |
|
|
259 |
// Vérifie que l'objet n'existe pas |
// Vérifie que l'objet n'existe pas |
260 |
$sql = "SELECT donnees_techniques |
$qres = $this->f->get_all_results_from_db_query( |
261 |
FROM ".DB_PREFIXE."donnees_techniques |
sprintf( |
262 |
WHERE donnees_techniques.lot = ".$idx; |
'SELECT |
263 |
// Ajout au log |
donnees_techniques |
264 |
$this->f->addToLog($obj.".php: db->query(\"".$sql."\");", VERBOSE_MODE); |
FROM |
265 |
// Exécution de la requête |
%1$sdonnees_techniques |
266 |
$res = $this->f->db->query($sql); |
WHERE |
267 |
$this->f->isDatabaseError($res); |
donnees_techniques.lot = %2$d', |
268 |
|
DB_PREFIXE, |
269 |
|
intval($idx) |
270 |
|
), |
271 |
|
array( |
272 |
|
'origin' => __METHOD__ |
273 |
|
) |
274 |
|
); |
275 |
|
|
276 |
// S'il n'y en a pas, afficher le formulaire d'ajout |
// S'il n'y en a pas, afficher le formulaire d'ajout |
277 |
if ($res->numrows() == 0) { |
if ($qres['row_count'] == 0) { |
278 |
// |
// |
279 |
echo ' |
echo ' |
280 |
<script type="text/javascript" > |
<script type="text/javascript" > |
286 |
// Sinon afficher l'objet en consultation |
// Sinon afficher l'objet en consultation |
287 |
else { |
else { |
288 |
// |
// |
289 |
$row =& $res->fetchRow(DB_FETCHMODE_ASSOC); |
$row = array_shift($qres['result']); |
290 |
// |
// |
291 |
echo ' |
echo ' |
292 |
<script type="text/javascript" > |
<script type="text/javascript" > |
354 |
function is_ajoutable_or_modifiable_or_supprimable() { |
function is_ajoutable_or_modifiable_or_supprimable() { |
355 |
// Tester si le dossier est cloturé , |
// Tester si le dossier est cloturé , |
356 |
// et si l'instructeur est de la même division |
// et si l'instructeur est de la même division |
357 |
if ($this->is_instructeur_from_division_dossier() === true and |
if ($this->is_instructeur_from_division_dossier() === true && |
358 |
$this->is_dossier_instruction_not_closed() === true){ |
$this->is_dossier_instruction_not_closed() === true){ |
359 |
return true; |
return true; |
360 |
} |
} |
411 |
"obj" => "lien_lot_demandeur", |
"obj" => "lien_lot_demandeur", |
412 |
"idx" => "]", |
"idx" => "]", |
413 |
)); |
)); |
414 |
$sqlDemandeur = "SELECT * FROM ".DB_PREFIXE."lien_dossier_demandeur |
|
415 |
WHERE dossier='".$this->getParameter("idxformulaire")."'"; |
$qres = $this->f->get_all_results_from_db_query( |
416 |
$res = $this->f->db->query($sqlDemandeur); |
sprintf( |
417 |
$this->f->addToLog(__METHOD__."(): db->query(\"".$sqlDemandeur."\");", VERBOSE_MODE); |
'SELECT |
418 |
if ( database::isError($res)){ |
* |
419 |
die(); |
FROM |
420 |
} |
%1$slien_dossier_demandeur |
421 |
while($row = $res->fetchRow(DB_FETCHMODE_ASSOC)) { |
WHERE |
422 |
|
dossier = \'%2$s\'', |
423 |
|
DB_PREFIXE, |
424 |
|
$this->f->db->escapeSimple($this->getParameter("idxformulaire")) |
425 |
|
), |
426 |
|
array( |
427 |
|
'origin' => __METHOD__ |
428 |
|
) |
429 |
|
); |
430 |
|
foreach ($qres['result'] as $row) { |
431 |
unset($row['lien_dossier_demandeur']); |
unset($row['lien_dossier_demandeur']); |
432 |
unset($row['dossier']); |
unset($row['dossier']); |
433 |
$row['lien_lot_demandeur'] = ""; |
$row['lien_lot_demandeur'] = ""; |
440 |
// |
// |
441 |
if ($add_dt === false) { |
if ($add_dt === false) { |
442 |
// |
// |
443 |
$this->addToMessage(_("Impossible d'associer des données techniques au lot.")." "._("Veuillez contacter votre administrateur.")); |
$this->addToMessage(__("Impossible d'associer des données techniques au lot.")." ".__("Veuillez contacter votre administrateur.")); |
444 |
return false; |
return false; |
445 |
} |
} |
446 |
} |
} |
501 |
if ( $maj == 3 ){ |
if ( $maj == 3 ){ |
502 |
|
|
503 |
//Récupère la liste des demandeurs |
//Récupère la liste des demandeurs |
504 |
$sql = "SELECT |
$qres = $this->f->get_all_results_from_db_query( |
505 |
|
sprintf( |
506 |
|
'SELECT |
507 |
civilite.code as code, |
civilite.code as code, |
508 |
CASE WHEN demandeur.qualite='particulier' |
CASE WHEN demandeur.qualite = \'particulier\' |
509 |
THEN TRIM(CONCAT(demandeur.particulier_nom, ' ', demandeur.particulier_prenom)) |
THEN TRIM(CONCAT(demandeur.particulier_nom, \' \', demandeur.particulier_prenom)) |
510 |
ELSE TRIM(CONCAT(demandeur.personne_morale_raison_sociale, ' ', demandeur.personne_morale_denomination)) |
ELSE TRIM(CONCAT(demandeur.personne_morale_raison_sociale, \' \', demandeur.personne_morale_denomination)) |
511 |
END as nom, |
END as nom, |
512 |
lien_lot_demandeur.petitionnaire_principal as petitionnaire_principal, |
lien_lot_demandeur.petitionnaire_principal as petitionnaire_principal, |
513 |
demandeur.type_demandeur as type_demandeur |
demandeur.type_demandeur as type_demandeur |
514 |
FROM |
FROM |
515 |
".DB_PREFIXE."lien_lot_demandeur |
%1$slien_lot_demandeur |
516 |
LEFT JOIN |
LEFT JOIN %1$sdemandeur |
517 |
".DB_PREFIXE."demandeur |
ON lien_lot_demandeur.demandeur = demandeur.demandeur |
518 |
ON |
LEFT JOIN %1$scivilite |
519 |
lien_lot_demandeur.demandeur = demandeur.demandeur |
ON demandeur.particulier_civilite = civilite.civilite OR |
|
LEFT JOIN |
|
|
".DB_PREFIXE."civilite |
|
|
ON |
|
|
demandeur.particulier_civilite = civilite.civilite OR |
|
520 |
demandeur.personne_morale_civilite = civilite.civilite |
demandeur.personne_morale_civilite = civilite.civilite |
521 |
WHERE lien_lot_demandeur.lot = ".$this->val[array_search('lot', $this->champs)]." |
WHERE |
522 |
ORDER BY demandeur.type_demandeur DESC"; |
lien_lot_demandeur.lot = %2$d |
523 |
|
ORDER BY |
524 |
$res = $this->f->db->query($sql); |
demandeur.type_demandeur DESC', |
525 |
$this->f->addToLog("sousformSpecificContent() : db->query(\"".$sql."\")", VERBOSE_MODE); |
DB_PREFIXE, |
526 |
if ( database::isError($res)){ |
intval($this->val[array_search('lot', $this->champs)]) |
527 |
die(); |
), |
528 |
} |
array( |
529 |
|
'origin' => __METHOD__ |
530 |
|
) |
531 |
|
); |
532 |
//Affichage des données |
//Affichage des données |
533 |
echo "<div class=\"field field-type-static\">"; |
echo "<div class=\"field field-type-static\">"; |
534 |
echo "<div class=\"form-libelle\">"; |
echo "<div class=\"form-libelle\">"; |
535 |
echo "<label id=\"lib-libelle\" class=\"libelle-demandeur\" for=\"demandeur\">"; |
echo "<label id=\"lib-libelle\" class=\"libelle-demandeur\" for=\"demandeur\">"; |
536 |
echo _("demandeur"); |
echo __("demandeur"); |
537 |
echo "</label>"; |
echo "</label>"; |
538 |
echo "</div>"; |
echo "</div>"; |
539 |
echo "<div class=\"form-content\">"; |
echo "<div class=\"form-content\">"; |
541 |
|
|
542 |
$listDemandeur = ""; |
$listDemandeur = ""; |
543 |
//La liste des demandeurs |
//La liste des demandeurs |
544 |
while($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){ |
foreach ($qres['result'] as $row) { |
545 |
|
|
546 |
//Ordonne l'affichage des demandeur |
//Ordonne l'affichage des demandeur |
547 |
if ( $row['petitionnaire_principal'] == 't' ){ |
if ( $row['petitionnaire_principal'] == 't' ){ |
548 |
|
|
549 |
$listDemandeur = $row['code']. " " . $row['nom'] . ", " . _("petitionnaire principal") . "<br/>".$listDemandeur; |
$listDemandeur = $row['code']. " " . $row['nom'] . ", " . __("petitionnaire principal") . "<br/>".$listDemandeur; |
550 |
} |
} |
551 |
else { |
else { |
552 |
|
|
573 |
|
|
574 |
//On récupère le statut de l'état du dossier d'instruction à partir de |
//On récupère le statut de l'état du dossier d'instruction à partir de |
575 |
//l'identifiant du dossier |
//l'identifiant du dossier |
576 |
$sql = "SELECT donnees_techniques.donnees_techniques |
$qres = $this->f->get_all_results_from_db_query( |
577 |
FROM ".DB_PREFIXE."donnees_techniques |
sprintf( |
578 |
LEFT JOIN |
'SELECT |
579 |
".DB_PREFIXE."dossier |
donnees_techniques.donnees_techniques |
580 |
ON |
FROM |
581 |
donnees_techniques.dossier_instruction = dossier.dossier |
%1$sdonnees_techniques |
582 |
WHERE dossier.dossier = '".$idx."'"; |
LEFT JOIN %1$sdossier |
583 |
$donnees_techniques = $this->f->db->query($sql); |
ON donnees_techniques.dossier_instruction = dossier.dossier |
584 |
$this->f->addToLog("hasDonneesTechniquesDossier() : db->query(\"".$sql."\")", VERBOSE_MODE); |
WHERE |
585 |
if ( database::isError($donnees_techniques)){ |
dossier.dossier = \'%2$s\'', |
586 |
die(); |
DB_PREFIXE, |
587 |
} |
$this->f->db->escapeSimple($idx) |
588 |
|
), |
589 |
if ( $donnees_techniques->numRows() > 0 ){ |
array( |
590 |
|
'origin' => __METHOD__ |
591 |
|
) |
592 |
|
); |
593 |
|
if ($qres['row_count'] > 0 ){ |
594 |
return TRUE; |
return TRUE; |
595 |
} |
} |
596 |
} |
} |
715 |
// Si aucun CERFA n'est identifié |
// Si aucun CERFA n'est identifié |
716 |
if ($valF['cerfa'] === '' || $valF['cerfa'] === null) { |
if ($valF['cerfa'] === '' || $valF['cerfa'] === null) { |
717 |
// |
// |
718 |
$this->f->addToLog(__METHOD__."() : ERROR - "._("Aucun CERFA paramétré."), DEBUG_MODE); |
$this->f->addToLog(__METHOD__."() : ERROR - ".__("Aucun CERFA paramétré."), DEBUG_MODE); |
719 |
return false; |
return false; |
720 |
} |
} |
721 |
|
|
724 |
// |
// |
725 |
if ($add === false) { |
if ($add === false) { |
726 |
// |
// |
727 |
$this->f->addToLog(__METHOD__."() : ERROR - "._("Impossible d'ajouter les données techniques du lot."), DEBUG_MODE); |
$this->f->addToLog(__METHOD__."() : ERROR - ".__("Impossible d'ajouter les données techniques du lot."), DEBUG_MODE); |
728 |
return false; |
return false; |
729 |
} |
} |
730 |
|
|