cleanup AddDownloadLog

master
Gilles Crettenand 11 years ago
parent fdf081493e
commit 55a80f3d65

@ -18,110 +18,86 @@ class NetBiblio extends WebService
private $login = '';
private $client = 'website';
/**
* @param $IP
* @param $client
* @param $login
* @param $code
* @throws SqlException
* @return array
*/
public function AddDownloadLog($IP, $client, $login, $code)
{
$client = str_replace("'", "", $client);
$login = str_replace("'", "", $login);
$code = ltrim(str_replace("'", "", $code), '0');
$itemNr = $code . 'V';
$itemId = '';
$userId = '';
/* Récupération de l'id de l'exemplaire */
$sql = "SELECT itemID from Netbiblio3.dbo.items where ltrim(rtrim(itemnr))='$itemNr';";
$sql = "SELECT itemID FROM Items WHERE LTRIM(RTRIM(ItemNr)) = '$itemNr';";
$result = Connection::execute($sql, false);
if ($row = $result->next()) {
if ($row = $result->current()) {
$itemId = $row['itemID'];
} else {
throw new WebException("ItemNotFound", "cannot find item", -1030);
}
/* Récupération de l'id du compte */
$sql = "SELECT useraccountID from Netbiblio3.dbo.UserAccounts where ltrim(rtrim(useraccountnr))='$login';";
$sql = "SELECT UserAccountID FROM UserAccounts WHERE LTRIM(RTRIM(UserAccountNr)) = '$login';";
$result = Connection::execute($sql, false);
if ($row = $result->next()) {
$userId = $row['useraccountID'];
if ($row = $result->current()) {
$userId = $row['UserAccountID'];
} else {
throw new WebException("UserNotFound", "cannot find user", -1031);
}
$sql = "SELECT circulationId from Netbiblio3.dbo.OldCirculations where useraccountID=$userId AND itemID=$itemId AND ltrim(rtrim(remark))='$client';";
$sql = "SELECT circulationId
FROM OldCirculations
WHERE
useraccountID= $userId AND
itemID = $itemId AND
LTRIM(RTRIM(remark)) = '$client';";
$result = Connection::execute($sql, false);
if ($existingEntry = $result->next()) {
$existingId = $existingEntry['circulationId'];
$logSql = "UPDATE OldCirculations SET CheckInDate=GETDATE(), CheckOutDate=GETDATE() WHERE circulationID=$existingId";
} else {
$sql = "SELECT TOP 1 circulationID FROM oldcirculations ORDER BY CirculationID DESC";
if ($row = $result->current()) {
$id = $row['circulationId'];
$sql = "UPDATE OldCirculations
SET
CheckInDate=GETDATE(),
CheckOutDate=GETDATE()
WHERE circulationID = $id";
Connection::execute($sql);
return true;
}
$sql = "SELECT TOP 1 circulationID FROM OldCirculations ORDER BY CirculationID DESC";
$result = Connection::execute($sql, false);
if ($row = $result->next()) {
if ($row = $result->current()) {
$nextId = $row['circulationID'] + 1;
} else {
$nextId = 1;
}
/* Ajout d'un ancien prêt dans OldCirculations */
$sql = "UPDATE Useraccounts
SET
Circulations = Circulations + 1,
TotalCirculations = TotalCirculations + 1
WHERE UseraccountID = $userId;";
Connection::execute($sql);
$sql = "UPDATE Items
SET
Circulations = Circulations + 1,
TotalCirculations = TotalCirculations + 1
WHERE ItemID = $itemId;";
Connection::execute($sql);
$worker_id = Configuration::get('netbiblio_worker_id');
$logSql = "INSERT INTO Netbiblio3.dbo.OldCirculations (" .
" CirculationID, " .
" ItemID, " .
" UseraccountID, " .
" DueDate, " .
" Remark, " .
" CheckOutDate, " .
" CheckOutBranchofficeID, " .
" CheckOutEmployeeID, " .
" CheckInDate, " .
" CheckInBranchofficeID, " .
" CheckInEmployeeID, " .
" Reminders, " .
" Renewals, " .
" Prereminder, " .
" InfoCode, " .
" CheckOutSIP2Info, " .
" CheckInSIP2Info " .
") VALUES ( " .
" $nextId, " .
" $itemId, " .
" $userId, " .
" DATEADD(month, 2, GETDATE()), " .
" '$client', " .
" GETDATE(), " .
" 2, " .
" $worker_id, " .
" GETDATE(), " .
" 2, " .
" $worker_id, " .
" 0, " .
" 0, " .
" 1, " .
" '-', " .
" 1, " .
" 1 " .
");";
/* Incrément du compteur de prêts "Circulations" dans Items (exemplaires) */
$incrementUserCountersSQL =
"UPDATE Useraccounts " .
"SET Circulations=Circulations+1, TotalCirculations=TotalCirculations+1 " .
"WHERE UseraccountID=$userId;";
Connection::execute($incrementUserCountersSQL);
/* Incrément du compteur de prêts "TotalCirculations" dans UserAccounts (comptes auditeurs) */
$incrementItemCountersSQL =
"UPDATE Items " .
"SET Circulations=Circulations+1, TotalCirculations=TotalCirculations+1 " .
"WHERE ItemID=$itemId;";
Connection::execute($incrementItemCountersSQL);
}
Connection::execute($logSql);
return array(true);
$sql = "INSERT INTO OldCirculations (
CirculationID, ItemID, UseraccountID,
Remark,
DueDate, CheckOutDate, CheckInDate,
CheckOutBranchofficeID, CheckOutEmployeeID, CheckInBranchofficeID, CheckInEmployeeID,
Reminders, Renewals, Prereminder, InfoCode, CheckOutSIP2Info, CheckInSIP2Info
) VALUES (
$nextId, $itemId, $userId,
'$client',
DATEADD(month, 2, GETDATE()), GETDATE(), GETDATE(),
2, $worker_id, 2, $worker_id,
0, 0, 1, '-', 1, 1
);";
Connection::execute($sql);
return true;
}
public function Authenticate($login, $password, $client = "website")

Loading…
Cancel
Save