diff --git a/html/fragments.html b/html/fragments.html index 761a059..3fade23 100644 --- a/html/fragments.html +++ b/html/fragments.html @@ -306,16 +306,52 @@ <button>Ladda upp</button> </form> </div> -<div id="product-history" - class="¤hidden¤"> +<div id="product-history"> <h2>Artikelhistorik</h2> ¤history¤ </div> <div id="product-label" - class="¤hidden¤"> + class="¤label_hidden¤"> <h2>Etikett</h2> ¤label¤ </div> +<div id="product-direct-checkout" class="¤checkout_hidden¤"> + <h2>Låna ut</h2> + <form class="light" + onSubmit="JavaScript:checkoutProduct(event)"> + <datalist id="user_suggest"></datalist> + <input type="hidden" + name="page" + value="checkout" /> + <label for="user">Användarnamn:</label> + <input onFocus="JavaScript:suggest(this, 'user')" + type="text" + name="user" + list="user_suggest" + autocomplete="off" + placeholder="Användarnamn" + required /> + <input type="hidden" + id="product" + name="product" + value="¤serial¤" /> + <button> + Låna ut + </button> + <br/> + <label>Löptid:</label> + <button onClick="JavaScript:loanLength(event, 7, 'day')">1 vecka</button> + <button onClick="JavaScript:loanLength(event, 1, 'year')">1 år</button> + <button onClick="JavaScript:loanLength(event, 3, 'year')">3 år</button> + <br/> + <label for="end">Slutdatum:</label> + <input type="text" + id="end" + onClick="JavaScript:calendar(event)" + name="end" + value="¤end¤" /> + </form> +</div> ¤¤ attachment_list ¤¤ <ul class="attachment-list"> diff --git a/include/Loan.php b/include/Loan.php index 89b8465..26254ed 100644 --- a/include/Loan.php +++ b/include/Loan.php @@ -42,16 +42,24 @@ class Loan extends Event { protected function queue_receipt($user) { $now = time(); + $sendtime = $now + 3600; $pending = prepare('select * from `pending_receipt` where `user` = ? and `since_time` < ? and `send_time` > ?'); bind($pending, 'iii', $user->get_id(), $now, $now); execute($pending); - if(result_single($pending) === null) { + $result = result_single($pending); + if($result === null) { $add = prepare('insert into `pending_receipt` (`user`, `since_time`, `send_time`) values(?, ?, ?)'); - bind($add, 'iii', $user->get_id(), $now, $now + 3600); + bind($add, 'iii', $user->get_id(), $now, $sendtime); execute($add); + } else { + $update = prepare('update `pending_receipt` set `send_time` = ? + where `user` = ? and `since_time` < ? + and `send_time` > ?'); + bind($update, 'iiii', $sendtime, $user->get_id(), $now, $now); + execute($update); } } diff --git a/include/ProductPage.php b/include/ProductPage.php index afb25b1..b0fefb4 100644 --- a/include/ProductPage.php +++ b/include/ProductPage.php @@ -67,19 +67,24 @@ class ProductPage extends Page { 'tags' => $tags, 'info' => $info, 'label' => '', - 'hidden' => 'hidden', + 'label_hidden' => 'hidden', + 'checkout_hidden' => 'hidden', 'service' => 'Starta service', 'history' => $history, - 'attachments' => $attachments); + 'attachments' => $attachments, + 'end' => format_date(default_loan_end(time()))); if(class_exists('QRcode')) { $fields['label'] = replace($fields, $this->fragments['product_label']); } if(!$this->product->get_discardtime()) { - $fields['hidden'] = ''; + $fields['label_hidden'] = ''; if($this->product->get_status() == 'service') { $fields['service'] = 'Avsluta service'; } + if($this->product->get_status() == 'available') { + $fields['checkout_hidden'] = ''; + } } return replace($fields, $this->fragments['product_form']); } diff --git a/pending_receipts.sql b/pending_receipts.sql deleted file mode 100644 index 550da5b..0000000 --- a/pending_receipts.sql +++ /dev/null @@ -1,9 +0,0 @@ -create table `pending_receipt` ( - `user` bigint(20) not null, - primary key (`user`), - constraint `pr_f_user` - foreign key(`user`) references `user`(`id`), - `send_time` bigint(20) not null, - `since_time` bigint(20) not null -) character set utf8mb4, - collate utf8mb4_unicode_ci;