Skip to content

Commit

Permalink
Merge pull request #185 from cleydyr/issue-178
Browse files Browse the repository at this point in the history
  • Loading branch information
cleydyr authored Mar 15, 2020
2 parents 4057b94 + 87b5ed2 commit 893598d
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 23 deletions.
13 changes: 7 additions & 6 deletions WebContent/freemarker/receipt.ftl
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
<#setting datetime_format="${dateTimeFormat}">
<#setting date_format="${dateFormat}">

<html>
<head>
Expand Down Expand Up @@ -36,12 +37,12 @@
<tr><td colspan="2"><hr /></td></tr>
<tr> <td>&nbsp;</td></tr>
<#list currentLendings as item>
<tr><td class="left-cell">${authorLabel}:</td><td class="right-cell">${item.biblio.author}</td></tr>
<tr><td class="left-cell">${authorLabel}:</td><td class="right-cell">${item.biblio.author!}</td></tr>
<tr><td class="left-cell">${titleLabel}:</td><td class="right-cell">${item.biblio.title}</td></tr>
<tr><td class="left-cell">${biblioLabel}:</td><td class="right-cell">${item.holding.id}</td></tr>
<tr><td class="left-cell">${holdingLabel}:</td><td class="right-cell">${item.holding.accessionNumber}</td></tr>
<tr><td class="left-cell">${lendingDateLabel}:</td><td class="right-cell">${item.lending.created}</td></tr>
<tr><td class="left-cell">${expectedDateLabel}:</td><td class="right-cell">${item.lending.expectedReturnDate}</td></tr>
<tr><td class="left-cell">${expectedDateLabel}:</td><td class="right-cell">${item.lending.expectedReturnDate?date}</td></tr>
<tr><td>&nbsp;</td></tr>
</#list>
<tr><td colspan="2"><hr /></td></tr>
Expand All @@ -51,12 +52,12 @@
<tr><td colspan="2"><hr /></td></tr>
<tr> <td>&nbsp;</td></tr>
<#list currentRenews as item>
<tr><td class="left-cell">${authorLabel}:</td><td class="right-cell">${item.biblio.author}</td></tr>
<tr><td class="left-cell">${authorLabel}:</td><td class="right-cell">${item.biblio.author!}</td></tr>
<tr><td class="left-cell">${titleLabel}:</td><td class="right-cell">${item.biblio.title}</td></tr>
<tr><td class="left-cell">${biblioLabel}:</td><td class="right-cell">${item.holding.id}</td></tr>
<tr><td class="left-cell">${holdingLabel}:</td><td class="right-cell">${item.holding.accessionNumber}</td></tr>
<tr><td class="left-cell">${lendingDateLabel}:</td><td class="right-cell">${item.lending.created}</td></tr>
<tr><td class="left-cell">${expectedDateLabel}:</td><td class="right-cell">${item.lending.expectedReturnDate}</td></tr>
<tr><td class="left-cell">${expectedDateLabel}:</td><td class="right-cell">${item.lending.expectedReturnDate?date}</td></tr>
<tr><td>&nbsp;</td></tr>
</#list>
<tr><td colspan="2"><hr /></td></tr>
Expand All @@ -66,12 +67,12 @@
<tr><td colspan="2"><hr /></td></tr>
<tr> <td>&nbsp;</td></tr>
<#list currentReturns as item>
<tr><td class="left-cell">${authorLabel}:</td><td class="right-cell">${item.biblio.author}</td></tr>
<tr><td class="left-cell">${authorLabel}:</td><td class="right-cell">${item.biblio.author!}</td></tr>
<tr><td class="left-cell">${titleLabel}:</td><td class="right-cell">${item.biblio.title}</td></tr>
<tr><td class="left-cell">${biblioLabel}:</td><td class="right-cell">${item.holding.id}</td></tr>
<tr><td class="left-cell">${holdingLabel}:</td><td class="right-cell">${item.holding.accessionNumber}</td></tr>
<tr><td class="left-cell">${lendingDateLabel}:</td><td class="right-cell">${item.lending.created}</td></tr>
<tr><td class="left-cell">${returnDateLabel}:</td><td class="right-cell">${item.lending.expectedReturnDate}</td></tr>
<tr><td class="left-cell">${returnDateLabel}:</td><td class="right-cell">${item.lending.expectedReturnDate?date}</td></tr>
<tr><td>&nbsp;</td></tr>
</#list>
<tr><td colspan="2"><hr /></td></tr>
Expand Down
12 changes: 11 additions & 1 deletion src/main/java/biblivre/circulation/lending/Handler.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
******************************************************************************/
package biblivre.circulation.lending;

import java.io.IOException;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
Expand Down Expand Up @@ -46,6 +47,7 @@
import biblivre.core.configurations.Configurations;
import biblivre.core.enums.ActionResult;
import biblivre.core.utils.Constants;
import freemarker.template.TemplateException;

public class Handler extends AbstractHandler {

Expand Down Expand Up @@ -330,12 +332,20 @@ public void printReceipt(ExtendedRequest request, ExtendedResponse response) {
}

LendingBO bo = LendingBO.getInstance(schema);
String receipt = bo.generateReceipt(ids, request.getTranslationsMap());


try {
String receipt = bo.generateReceipt(ids, request.getTranslationsMap());

this.json.put("receipt", receipt);
} catch(JSONException e) {
e.printStackTrace();

this.setMessage(ActionResult.WARNING, "error.invalid_json");
} catch (TemplateException | IOException e) {
e.printStackTrace();

this.setMessage(ActionResult.ERROR, "error.runtime_error");
}
}
}
36 changes: 20 additions & 16 deletions src/main/java/biblivre/circulation/lending/LendingBO.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
package biblivre.circulation.lending;

import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
Expand All @@ -33,8 +32,8 @@
import java.util.Map.Entry;
import java.util.Set;

import org.apache.commons.text.StringEscapeUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.text.StringEscapeUtils;

import biblivre.administration.usertype.UserTypeBO;
import biblivre.administration.usertype.UserTypeDTO;
Expand Down Expand Up @@ -412,7 +411,8 @@ public List<LendingDTO> listLendings(List<Integer> lendingsIds) {
return lendingList;
}

public String generateReceipt(List<Integer> lendingsIds, TranslationsMap i18n) {
public String generateReceipt(List<Integer> lendingsIds, TranslationsMap i18n)
throws TemplateException, IOException {
PrinterType printerType = PrinterType.fromString(Configurations.getString(this.getSchema(), Constants.CONFIG_LENDING_PRINTER_TYPE));
int columns = 24;

Expand All @@ -434,21 +434,15 @@ public String generateReceipt(List<Integer> lendingsIds, TranslationsMap i18n) {
}

if (columns == 0) {
try {
return this.generateTableReceipt(lendingsIds, i18n);
} catch (TemplateException | IOException e) {
PrintWriter errorWriter = new PrintWriter(new StringWriter());
e.printStackTrace(errorWriter);
return errorWriter.toString();
}
return this.generateTableReceipt(lendingsIds, i18n);
} else {
return this.generateTxtReceipt(lendingsIds, i18n, columns);
}
}

private String generateTxtReceipt(List<Integer> lendingsIds, TranslationsMap i18n, int columns) {
DateFormat receiptDateFormat = new SimpleDateFormat(i18n.getText("format.datetime"));

List<LendingDTO> lendings = this.listLendings(lendingsIds);
if (lendings == null || lendings.isEmpty()) {
return "";
Expand Down Expand Up @@ -522,6 +516,9 @@ private String generateTxtReceipt(List<Integer> lendingsIds, TranslationsMap i18
String returnDateLabel = i18n.getText("circulation.lending.receipt.return_date");
String lendingDateLabel = i18n.getText("circulation.lending.receipt.lending_date");

DateFormat returnDateFormat =
new SimpleDateFormat(i18n.getText(Constants.TRANSLATION_FORMAT_DATE));

if (!currentLendings.isEmpty()) {

String header = "**" + i18n.getText("circulation.lending.receipt.lendings") + "**";
Expand Down Expand Up @@ -549,7 +546,7 @@ private String generateTxtReceipt(List<Integer> lendingsIds, TranslationsMap i18
receipt.append(" ").append(receiptDateFormat.format(lendingDate)).append("\n");
receipt.append(expectedDateLabel).append(":\n");
Date expectedReturnDate = info.getLending().getExpectedReturnDate();
receipt.append(" ").append(receiptDateFormat.format(expectedReturnDate)).append("\n");
receipt.append(" ").append(returnDateFormat.format(expectedReturnDate)).append("\n");
receipt.append(StringUtils.repeat('*', columns / 2)).append("\n");
receipt.append("\n");
}
Expand Down Expand Up @@ -583,7 +580,7 @@ private String generateTxtReceipt(List<Integer> lendingsIds, TranslationsMap i18
receipt.append(" ").append(receiptDateFormat.format(lendingDate)).append("\n");
receipt.append(expectedDateLabel).append(":\n");
Date expectedReturnDate = info.getLending().getExpectedReturnDate();
receipt.append(" ").append(receiptDateFormat.format(expectedReturnDate)).append("\n");
receipt.append(" ").append(returnDateFormat.format(expectedReturnDate)).append("\n");
receipt.append(StringUtils.repeat('*', columns / 2)).append("\n");
receipt.append("\n");
}
Expand Down Expand Up @@ -640,9 +637,15 @@ private String generateTableReceipt(List<Integer> lendingsIds, TranslationsMap i

Map<String, Object> root = new HashMap<>();

DateFormat receiptDateFormat = new SimpleDateFormat(i18n.getText("format.datetime"));
String formatDateTime = i18n.getText(Constants.TRANSLATION_FORMAT_DATETIME);

DateFormat dateTimeFormat = new SimpleDateFormat(formatDateTime);

root.put("dateTimeFormat", i18n.getText("format.datetime"));
root.put("dateTimeFormat", formatDateTime);

String formatDate = i18n.getText(Constants.TRANSLATION_FORMAT_DATE);

root.put("dateFormat", formatDate);

List<LendingDTO> lendings = this.listLendings(lendingsIds);

Expand All @@ -659,7 +662,7 @@ private String generateTableReceipt(List<Integer> lendingsIds, TranslationsMap i
root.put("lendingInfo", lendingInfo);

String libraryName = Configurations.getString(this.getSchema(), "general.title");
String now = receiptDateFormat.format(new Date());
String now = dateTimeFormat.format(new Date());

root.put("libraryName", libraryName);
root.put("now", now);
Expand Down Expand Up @@ -692,6 +695,7 @@ private String generateTableReceipt(List<Integer> lendingsIds, TranslationsMap i

for (LendingInfoDTO info : lendingInfo) {
LendingDTO lendingDto = info.getLending();

if (lendingDto.getReturnDate() != null) {
currentReturns.add(info);
continue;
Expand Down

0 comments on commit 893598d

Please sign in to comment.