Skip to content
Snippets Groups Projects
Commit f7d281cd authored by Ghislain Loas's avatar Ghislain Loas
Browse files

hotline #18547 fix text failure

parent 61c37ddf
Branches
Tags
4 merge requests!896Master,!869Master,!868Hotline master,!861Hotline#18547 pickup choice for pergme
......@@ -20,7 +20,7 @@
*/
class Class_Systeme_PergameService {
use Trait_TimeSource;
use Trait_TimeSource, Trait_Translator;
private $user;
......@@ -113,32 +113,46 @@ class Class_Systeme_PergameService {
public function getReservations() {
$data=fetchAll("select * from reservations where IDABON='".$this->user->IDABON."' and ORDREABON=".$this->user->ORDREABON);
if(!$data) return array();
foreach($data as $enreg)
{
$notice=$this->getNoticeFromTransaction($enreg["SUPPORT"],$enreg["ID_NOTICE_ORIGINE"]);
$data = Class_Reservation::findAllBy(['idabon' => $this->user->getIdabon(),
'ordreabon' => $this->user->getOrdreabon()]);
if(!$data)
return [];
foreach($data as $enreg) {
$notice = $this->getNoticeFromTransaction($enreg->getSupport(),
$enreg->getIdNoticeOrigine());
$resa["titre"]=$notice["J"];
if($notice["A"]) $resa["titre"].=" / ".$notice["A"];
// rang
$rang=fetchOne("select count(*) from reservations where ID_NOTICE_ORIGINE=".$enreg["ID_NOTICE_ORIGINE"]." and DATE_RESA<'".$enreg["DATE_RESA"]."'");
$resa["rang"]=$rang+1;
$resa["id_suppr"]=$enreg["ID_RESA"];
if($notice["A"])
$resa["titre"].= " / ".$notice["A"];
$rang = Class_Reservation::countBy(['where' => "ID_NOTICE_ORIGINE = " . $enreg->getIdNoticeOrigine() .
" and DATE_RESA < '" . $enreg->getDateResa() . "'"]);
$resa["rang"] = $rang + 1;
$resa["id_suppr"] = $enreg->getIdResa();
// Controle si en pret
$en_pret=fetchOne("select count(*) from prets where ID_NOTICE_ORIGINE=".$enreg["ID_NOTICE_ORIGINE"]." and EN_COURS=1");
if($en_pret>0) $resa["etat"]="en prêt";
elseif($resa["rang"]==1) $resa["etat"]="disponible";
else $resa["etat"]="réservé";
$en_pret = Class_Pret::countBy(['id_notice_origine' => $enreg->getIdNoticeOrigine(),
'en_cours' => 1]);
// empiler
$reservations[]=$resa;
$resa['etat'] = $this->getHoldStatus($en_pret, $resa['rang']);
$reservations[] = $resa;
}
return $reservations;
}
protected function getHoldStatus($numbers_of_loans, $hold_rank) {
if($numbers_of_loans > 0)
return $this->_('en prêt');
if( 1 == $hold_rank)
return $this->_('disponible');
return $this->_('réservé');
}
private function getNoticeFromCodeBarres($id_bib, $code_barres) {
$cls_notice = new Class_Notice();
$id_notice = fetchOne("select id_notice from exemplaires where code_barres='$code_barres' and id_bib=$id_bib");
......@@ -175,13 +189,19 @@ class Class_Systeme_PergameService {
public function reserverExemplairePergame($id_bib, $exemplaire, $code_annexe) {
if (!$this->user || !$this->user->ID_USER)
return ['erreur' => 'Vous devez être connecté pour réserver un document'];
return ['erreur' => $this->_('Vous devez être connecté pour réserver un document')];
if(!$this->user->IDABON)
return ['erreur' => 'Vous devez être connecté en tant qu\'abonné pour réserver un document'];
return ['erreur' => $this->_('Vous devez être connecté en tant qu\'abonné pour réserver un document')];
if (!$exemplaire)
return ['erreur' => 'Une erreur s\'est produite lors de la lecture de la notice.'];
return ['erreur' => $this->_('Une erreur s\'est produite lors de la lecture de la notice.')];
if(!$id_bib)
$id_bib = 1;
if(!$code_annexe)
$code_annexe = $id_bib;
$notice = $exemplaire->getNotice();
$support = $notice->getFamilleId();
......@@ -212,9 +232,6 @@ class Class_Systeme_PergameService {
if ($nb >= $regles['Max_par_document'])
return ['erreur' => 'La réservation est impossible car le nombre maximum de réservations pour ce document a été atteint (' . $regles["Max_par_document"] . ').'];
if (!$id_bib)
$id_bib = 1;
$time_source = self::getTimeSource();
Class_Reservation::newInstance([
......
......@@ -64,7 +64,7 @@ class Class_WebService_SIGB_Pergame_Service extends Class_WebService_SIGB_Abstra
public function getUserAnnexe($user) {
return $user->getIdSite();
return $user->getIdSite();;
}
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment