diff --git a/src/main/resources/com/unicenta/pos/templates/script.Totaldiscount.txt b/src/main/resources/com/unicenta/pos/templates/script.Totaldiscount.txt index 3dbe8ed..df2cf5b 100644 --- a/src/main/resources/com/unicenta/pos/templates/script.Totaldiscount.txt +++ b/src/main/resources/com/unicenta/pos/templates/script.Totaldiscount.txt @@ -36,15 +36,16 @@ if (index >= 0) { sdiscount = Formats.PERCENT.formatValue((discountrate)); for (int number= 0; number < ticket.getLinesCount(); number++) { line = ticket.getLine(number); - ticket.setLine(number, - new TicketLineInfo( - line.getProductID(), - line.getProductName() + " - Item Discount @ " + sdiscount, - line.getProductTaxCategoryID(), - line.getProductPrinter(), - line.getMultiply(), - line.getNewPrice() - (double)Math.abs(line.getNewPrice() * discountrate * 100) /100, - line.getTaxInfo())); + TicketLineInfo ticketLineInfo = new TicketLineInfo( + line.getProductID(), + line.getProductName() + " - Item Discount @ " + sdiscount, + line.getProductTaxCategoryID(), + line.getProductPrinter(), + line.getMultiply(), + line.getNewPrice() - (double)Math.abs(line.getNewPrice() * discountrate * 100) /100, + line.getTaxInfo()); + ticketLineInfo.setTicketUpdated("ticket.updated", "true"); + ticket.setLine(number,ticketLineInfo); } } else { java.awt.Toolkit.getDefaultToolkit().beep(); diff --git a/src/test/java/com/unicenta/pos/ticket/TicketLineInfoTest.java b/src/test/java/com/unicenta/pos/ticket/TicketLineInfoTest.java new file mode 100644 index 0000000..5442daa --- /dev/null +++ b/src/test/java/com/unicenta/pos/ticket/TicketLineInfoTest.java @@ -0,0 +1,95 @@ +package com.unicenta.pos.ticket; + +import com.google.gson.Gson; +import org.junit.Test; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; + +import static org.junit.Assert.*; + +public class TicketLineInfoTest { + + @Test + public void shouldSendOrderDiscountToPrinter(){ + + String json = getText("src/test/resources/TicketLineInfo.json"); + assert json != null; + TicketLineInfo ticketLineInfo = new Gson().fromJson(json, TicketLineInfo.class); + assert ticketLineInfo != null; + sendOrderScript(ticketLineInfo); + } + + @Test + public void shouldSendItemDiscountToPrinter() { + String json = getText("src/test/resources/TicketLineInfoOrderDiscount.json"); + assert json != null; + TicketLineInfo ticketLineInfo = new Gson().fromJson(json, TicketLineInfo.class); + assert ticketLineInfo != null; + sendOrderScript(ticketLineInfo); + + } + + private void sendOrderScript(TicketLineInfo line) { + boolean printedP1 = false; + boolean printedP2 = false; + boolean printedP3 = false; + boolean printedP4 = false; + boolean printedP5 = false; + boolean printedP6 = false; + + if (line.getProperty("product.printer")!=null && line.getProperty("ticket.updated")!=null) { + + if (line.getProperty("product.printer").equals("1")) { + System.out.print("getting property: "); + System.out.println(line.getProperty("ticket.updated").equals("true")); + if((printedP1 == false)) { + //sales.printTicket("Printer.Ticket.P1"); + printedP1 = true; + } + } + + if (line.getProperty("product.printer").equals("2")) { + if((printedP2 == false) && line.getProperty("ticket.updated").equals("true")){ + //sales.printTicket("Printer.Ticket.P2"); + printedP2 = true; + } + } + if (line.getProperty("product.printer").equals("3")) { + if((printedP3 == false) && line.getProperty("ticket.updated").equals("true")){ + //sales.printTicket("Printer.Ticket.P3"); + printedP3 = true; + } + } + + if (line.getProperty("product.printer").equals("4")) { + if((printedP4 == false) && line.getProperty("ticket.updated").equals("true")){ + //sales.printTicket("Printer.Ticket.P4"); + printedP4 = true; + } + } + if (line.getProperty("product.printer").equals("5")) { + if((printedP5 == false) && line.getProperty("ticket.updated").equals("true")){ + //sales.printTicket("Printer.Ticket.P5"); + printedP5 = true; + } + } + + if (line.getProperty("product.printer").equals("6")) { + if((printedP6 == false) && line.getProperty("ticket.updated").equals("true")){ + //sales.printTicket("Printer.Ticket.P6"); + printedP6 = true; + } + } + } + } + + private String getText(String path) { + try { + return new String(Files.readAllBytes(Paths.get(path))); + } catch (IOException e) { + throw new RuntimeException(e); + } + } +} \ No newline at end of file diff --git a/src/test/resources/TicketLineInfo.json b/src/test/resources/TicketLineInfo.json new file mode 100644 index 0000000..4973481 --- /dev/null +++ b/src/test/resources/TicketLineInfo.json @@ -0,0 +1,35 @@ +{ + "m_sTicket": "8c5bfd03-f4f8-4a3f-b216-57f194e1cda6", + "m_iLine": 0, + "multiply": 1.0, + "price": 8.333333333333334, + "tax": + { + "id": "001", + "name": "Tax Standard", + "taxcategoryid": "001", + "rate": 0.2, + "cascade": false + }, + "attributes": + { + "product.printer": "1", + "product.warranty": "false", + "product.reference": "123", + "product.com": "false", + "product.verpatrib": "false", + "ticket.updated": "true", + "product.name": "Burger", + "product.service": "false", + "product.categoryid": "000", + "product.taxcategoryid": "001", + "product.memodate": "1900-01-01 00:00:01", + "product.code": "123", + "product.vprice": "false", + "product.texttip": "", + "product.constant": "false" + }, + "productid": "fc33fa54-3af1-486b-85e7-9838160053ea", + "updated": false, + "newprice": 10.0 +} \ No newline at end of file diff --git a/src/test/resources/TicketLineInfoOrderDiscount.json b/src/test/resources/TicketLineInfoOrderDiscount.json new file mode 100644 index 0000000..f2248be --- /dev/null +++ b/src/test/resources/TicketLineInfoOrderDiscount.json @@ -0,0 +1,23 @@ +{ + "m_sTicket": "5ff16e4c-0df9-4002-bc54-cc60fce92de2", + "m_iLine": 0, + "multiply": 1.0, + "price": 7.333333333333334, + "tax": + { + "id": "001", + "name": "Tax Standard", + "taxcategoryid": "001", + "rate": 0.2, + "cascade": false + }, + "attributes": + { + "product.taxcategoryid": "001", + "product.printer": "1", + "product.name": "Burger - Item Discount @ 12%" + }, + "productid": "fc33fa54-3af1-486b-85e7-9838160053ea", + "updated": false, + "newprice": 0.0 +} \ No newline at end of file