From 864b90e6295d58b5135a9857749c5ad61ccabd8f Mon Sep 17 00:00:00 2001 From: Yan Date: Thu, 15 Mar 2018 10:28:22 +0630 Subject: [PATCH 1/7] found receipts in public --- public/receipts/receipt_bill_20180219-75.pdf | 483 ++++++++++++++++++ .../receipt_bill_qwer-20180307-77.pdf | 455 +++++++++++++++++ .../receipt_bill_qwer-20180307-78.pdf | 455 +++++++++++++++++ .../receipt_bill_qwer-20180307-79.pdf | 455 +++++++++++++++++ .../receipt_bill_qwer-20180307-80.pdf | 455 +++++++++++++++++ .../receipt_bill_qwer-20180307-81.pdf | 455 +++++++++++++++++ .../receipt_bill_qwer-20180307-82.pdf | 455 +++++++++++++++++ .../receipt_bill_qwer-20180307-83.pdf | 455 +++++++++++++++++ 8 files changed, 3668 insertions(+) create mode 100644 public/receipts/receipt_bill_20180219-75.pdf create mode 100644 public/receipts/receipt_bill_qwer-20180307-77.pdf create mode 100644 public/receipts/receipt_bill_qwer-20180307-78.pdf create mode 100644 public/receipts/receipt_bill_qwer-20180307-79.pdf create mode 100644 public/receipts/receipt_bill_qwer-20180307-80.pdf create mode 100644 public/receipts/receipt_bill_qwer-20180307-81.pdf create mode 100644 public/receipts/receipt_bill_qwer-20180307-82.pdf create mode 100644 public/receipts/receipt_bill_qwer-20180307-83.pdf diff --git a/public/receipts/receipt_bill_20180219-75.pdf b/public/receipts/receipt_bill_20180219-75.pdf new file mode 100644 index 00000000..95238846 --- /dev/null +++ b/public/receipts/receipt_bill_20180219-75.pdf @@ -0,0 +1,483 @@ +%PDF-1.3 +%ÿÿÿÿ +1 0 obj +<< /Creator +/Producer +>> +endobj +2 0 obj +<< /Type /Catalog +/Pages 3 0 R +>> +endobj +3 0 obj +<< /Type /Pages +/Count 1 +/Kids [5 0 R] +>> +endobj +4 0 obj +<< /Length 4242 +>> +stream +q + +BT +48.975 1417.82 Td +/F1.0 10 Tf +[<4f53414b41204f4853484f2854> 120 <616d77> 10 <6529>] TJ +ET + + +BT +10.268 1402.696 Td +/F1.0 8 Tf +[<4e6f> 40 <2e203235362c204b> 50 <79> 20 <61696b6b6173616e20526f61642c2054> 120 <616d77> 10 <652054> 120 <6f> 15 <776e73686970> 35 <2c2059> 140 <616e676f6e>] TJ +ET + + +BT +71.904 1388.448 Td +/F1.0 8 Tf +[<54> 120 <656c3a2030392d323538363736363131>] TJ +ET + +0.0 1379.944 m +210.0 1379.944 l +S +0.0 1379.944 m +210.0 1379.944 l +S + +BT +0.0 1367.2 Td +/F1.0 8 Tf +[<52656365697074204e6f3a2032303138303231392d3735>] TJ +ET + + +BT +0.0 1347.2 Td +/F1.0 8 Tf +[<54> 120 <6162> 20 <6c65202d207432>] TJ +ET + + +BT +100.0 1347.2 Td +/F1.0 8 Tf +[<573a2043617368696572>] TJ +ET + + +BT +160.216 1347.2 Td +/F1.0 8 Tf +[<433a2043617368696572>] TJ +ET + + +BT +0.0 1327.2 Td +/F1.0 8 Tf +[<44617465203a2031392d30322d323031382831303a323920414d2d31303a333620414d29>] TJ +ET + +0.0 1312.944 m +210.0 1312.944 l +S + +BT +0.0 1302.2 Td +/F1.0 8 Tf +[<4974656d73>] TJ +ET + + +BT +106.656 1302.2 Td +/F1.0 8 Tf +[<5072> -15 <696365>] TJ +ET + + +BT +138.276 1302.2 Td +/F1.0 8 Tf +[<517479>] TJ +ET + + +BT +187.176 1302.2 Td +/F1.0 8 Tf +[<54> 120 <6f74616c>] TJ +ET + +0.0 1292.944 m +210.0 1292.944 l +S + +BT +0.0 1282.2 Td +/F1.0 8 Tf +[<56> 80 <6f646b61202d>] TJ +ET + + +BT +93.864 1282.2 Td +/F1.0 8 Tf +[<31302c3030302e30>] TJ +ET + + +BT +138.94 1282.2 Td +/F1.0 8 Tf +[<312e30>] TJ +ET + + +BT +172.864 1282.2 Td +/F1.0 8 Tf +[<31302c3030302e30>] TJ +ET + + +BT +0.0 1267.952 Td +/F1.0 8 Tf +[<746573745f6974656d31202d>] TJ +ET + + +BT +0.0 1258.704 Td +/F1.0 8 Tf +[<74657374315f736d616c6c>] TJ +ET + + +BT +98.312 1267.952 Td +/F1.0 8 Tf +[<312c3030302e30>] TJ +ET + + +BT +138.94 1267.952 Td +/F1.0 8 Tf +[<312e30>] TJ +ET + + +BT +177.312 1267.952 Td +/F1.0 8 Tf +[<312c3030302e30>] TJ +ET + +0.0 1250.2 m +210.0 1250.2 l +S + +BT +0.0 1239.456 Td +/F1.0 8 Tf +[<5375622054> 120 <6f74616c>] TJ +ET + + +BT +170.864 1239.456 Td +/F1.0 8 Tf +[<31312c3030302e30>] TJ +ET + + +BT +0.0 1225.208 Td +/F1.0 8 Tf +[<4f76> 25 <6572> 10 <616c6c20446973636f756e743a>] TJ +ET + + +BT +181.104 1225.208 Td +/F1.0 8 Tf +[<2820302e302029>] TJ +ET + + +BT +0.0 1210.96 Td +/F1.0 8 Tf +[<536572> -30 <76696365204368617267657320282031302529>] TJ +ET + + +BT +175.312 1210.96 Td +/F1.0 8 Tf +[<312c3130302e30>] TJ +ET + + +BT +0.0 1196.712 Td +/F1.0 8 Tf +[<436f6d6d65726369616c2054> 120 <6178202820352529>] TJ +ET + + +BT +181.984 1196.712 Td +/F1.0 8 Tf +[<3535302e30>] TJ +ET + + +BT +0.0 1181.028 Td +/F2.0 10 Tf +[<4772616e642054> 80 <6f74616c>] TJ +ET + + +BT +163.08 1181.028 Td +/F2.0 10 Tf +[<31322c3635302e30>] TJ +ET + +0.0 1171.308 m +210.0 1171.308 l +S + +BT +0.0 1160.564 Td +/F1.0 8 Tf +[<436173682050> 40 <61> 30 <796d656e74>] TJ +ET + + +BT +170.864 1160.564 Td +/F1.0 8 Tf +[<31322c3635302e30>] TJ +ET + + +BT +0.0 1146.316 Td +/F1.0 8 Tf +[<4368616e676520416d6f756e74>] TJ +ET + + +BT +190.88 1146.316 Td +/F1.0 8 Tf +[<302e30>] TJ +ET + + +BT +0.0 1127.068 Td +/F1.0 8 Tf +[<437573746f6d6572204e616d65>] TJ +ET + + +BT +169.064 1127.068 Td +/F1.0 8 Tf +[<57> 50 <414c4b2d494e>] TJ +ET + +0.0 1118.564 m +210.0 1118.564 l +S + +BT +0.0 1107.82 Td +/F1.0 8 Tf +[<54> 120 <6f74616c2046> 30 <6f6f6420446973636f756e7473>] TJ +ET + + +BT +185.552 1107.82 Td +/F1.0 8 Tf +[<28302e3029>] TJ +ET + + +BT +0.0 1098.572 Td +/F1.0 8 Tf +[<54> 120 <6f74616c204265> 30 <76> 25 <6572> 10 <61676520446973636f756e7473>] TJ +ET + + +BT +185.552 1098.572 Td +/F1.0 8 Tf +[<28302e3029>] TJ +ET + + +BT +0.0 1089.324 Td +/F1.0 8 Tf +[<54> 120 <6f74616c2050726f6475637420446973636f756e7473>] TJ +ET + + +BT +185.552 1089.324 Td +/F1.0 8 Tf +[<28302e3029>] TJ +ET + +0.0 1080.82 m +210.0 1080.82 l +S + +BT +0.0 1070.076 Td +/F1.0 8 Tf +[<46> 30 <6f6f64>] TJ +ET + + +BT +175.312 1070.076 Td +/F1.0 8 Tf +[<312c3030302e30>] TJ +ET + + +BT +0.0 1060.828 Td +/F1.0 8 Tf +[<4265> 30 <76> 25 <6572> 10 <616765>] TJ +ET + + +BT +170.864 1060.828 Td +/F1.0 8 Tf +[<31302c3030302e30>] TJ +ET + + +BT +0.0 1051.58 Td +/F1.0 8 Tf +[<50726f64756374>] TJ +ET + + +BT +190.88 1051.58 Td +/F1.0 8 Tf +[<302e30>] TJ +ET + +0.0 1043.076 m +210.0 1043.076 l +S + +BT +0.0 1031.614 Td +/F1.0 9 Tf +[<53706c69742042696c6c2066> 30 <6f72203020706572736f6e73>] TJ +ET + + +BT +0.0 1017.332 Td +/F1.0 8 Tf +[<416d6f756e7420447565202870657220706572736f6e29>] TJ +ET + + +BT +193.104 1017.332 Td +/F1.0 8 Tf +[<496e66>] TJ +ET + +0.0 1008.828 m +210.0 1008.828 l +S + +BT +0.0 996.648 Td +/F2.0 10 Tf +[<50> 30 <616964>] TJ +ET + + +BT +102.0 998.084 Td +/F1.0 8 Tf +[<5468616e6b2059> 140 <6f7521205365652079> 20 <6f7520416761696e>] TJ +ET + +Q + +endstream +endobj +5 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 210 1450] +/CropBox [0 0 210 1450] +/BleedBox [0 0 210 1450] +/TrimBox [0 0 210 1450] +/ArtBox [0 0 210 1450] +/Contents 4 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << /F1.0 6 0 R +/F2.0 7 0 R +>> +>> +>> +endobj +6 0 obj +<< /Type /Font +/Subtype /Type1 +/BaseFont /Helvetica +/Encoding /WinAnsiEncoding +>> +endobj +7 0 obj +<< /Type /Font +/Subtype /Type1 +/BaseFont /Helvetica-Bold +/Encoding /WinAnsiEncoding +>> +endobj +xref +0 8 +0000000000 65535 f +0000000015 00000 n +0000000109 00000 n +0000000158 00000 n +0000000215 00000 n +0000004509 00000 n +0000004792 00000 n +0000004889 00000 n +trailer +<< /Size 8 +/Root 2 0 R +/Info 1 0 R +>> +startxref +4991 +%%EOF diff --git a/public/receipts/receipt_bill_qwer-20180307-77.pdf b/public/receipts/receipt_bill_qwer-20180307-77.pdf new file mode 100644 index 00000000..13df612b --- /dev/null +++ b/public/receipts/receipt_bill_qwer-20180307-77.pdf @@ -0,0 +1,455 @@ +%PDF-1.3 +%ÿÿÿÿ +1 0 obj +<< /Creator +/Producer +>> +endobj +2 0 obj +<< /Type /Catalog +/Pages 3 0 R +>> +endobj +3 0 obj +<< /Type /Pages +/Count 1 +/Kids [5 0 R] +>> +endobj +4 0 obj +<< /Length 4003 +>> +stream +q + +BT +48.975 1417.82 Td +/F1.0 10 Tf +[<4f53414b41204f4853484f2854> 120 <616d77> 10 <6529>] TJ +ET + + +BT +10.268 1402.696 Td +/F1.0 8 Tf +[<4e6f> 40 <2e203235362c204b> 50 <79> 20 <61696b6b6173616e20526f61642c2054> 120 <616d77> 10 <652054> 120 <6f> 15 <776e73686970> 35 <2c2059> 140 <616e676f6e>] TJ +ET + + +BT +71.904 1388.448 Td +/F1.0 8 Tf +[<54> 120 <656c3a2030392d323538363736363131>] TJ +ET + +0.0 1379.944 m +210.0 1379.944 l +S +0.0 1379.944 m +210.0 1379.944 l +S + +BT +0.0 1367.2 Td +/F1.0 8 Tf +[<52656365697074204e6f3a207177> 10 <65722d32303138303330372d3737>] TJ +ET + + +BT +0.0 1347.2 Td +/F1.0 8 Tf +[<54> 120 <6162> 20 <6c65202d207431>] TJ +ET + + +BT +100.0 1347.2 Td +/F1.0 8 Tf +[<573a2043617368696572>] TJ +ET + + +BT +160.216 1347.2 Td +/F1.0 8 Tf +[<433a2043617368696572>] TJ +ET + + +BT +0.0 1327.2 Td +/F1.0 8 Tf +[<44617465203a2030372d30332d323031382830353a333320504d2d30353a353020504d29>] TJ +ET + +0.0 1312.944 m +210.0 1312.944 l +S + +BT +0.0 1302.2 Td +/F1.0 8 Tf +[<4974656d73>] TJ +ET + + +BT +106.656 1302.2 Td +/F1.0 8 Tf +[<5072> -15 <696365>] TJ +ET + + +BT +138.276 1302.2 Td +/F1.0 8 Tf +[<517479>] TJ +ET + + +BT +187.176 1302.2 Td +/F1.0 8 Tf +[<54> 120 <6f74616c>] TJ +ET + +0.0 1292.944 m +210.0 1292.944 l +S + +BT +0.0 1282.2 Td +/F1.0 8 Tf +[<746573745f6974656d31202d>] TJ +ET + + +BT +0.0 1272.952 Td +/F1.0 8 Tf +[<74657374315f736d616c6c>] TJ +ET + + +BT +98.312 1282.2 Td +/F1.0 8 Tf +[<312c3030302e30>] TJ +ET + + +BT +138.94 1282.2 Td +/F1.0 8 Tf +[<312e30>] TJ +ET + + +BT +177.312 1282.2 Td +/F1.0 8 Tf +[<312c3030302e30>] TJ +ET + +0.0 1264.448 m +210.0 1264.448 l +S + +BT +0.0 1253.704 Td +/F1.0 8 Tf +[<5375622054> 120 <6f74616c>] TJ +ET + + +BT +175.312 1253.704 Td +/F1.0 8 Tf +[<312c3030302e30>] TJ +ET + + +BT +0.0 1239.456 Td +/F1.0 8 Tf +[<4f76> 25 <6572> 10 <616c6c20446973636f756e743a>] TJ +ET + + +BT +181.104 1239.456 Td +/F1.0 8 Tf +[<2820302e302029>] TJ +ET + + +BT +0.0 1225.208 Td +/F1.0 8 Tf +[<536572> -30 <76696365204368617267657320282031302529>] TJ +ET + + +BT +181.984 1225.208 Td +/F1.0 8 Tf +[<3130302e30>] TJ +ET + + +BT +0.0 1210.96 Td +/F1.0 8 Tf +[<436f6d6d65726369616c2054> 120 <6178202820352529>] TJ +ET + + +BT +186.432 1210.96 Td +/F1.0 8 Tf +[<35302e30>] TJ +ET + + +BT +0.0 1195.276 Td +/F2.0 10 Tf +[<4772616e642054> 80 <6f74616c>] TJ +ET + + +BT +168.64 1195.276 Td +/F2.0 10 Tf +[<312c3135302e30>] TJ +ET + +0.0 1185.556 m +210.0 1185.556 l +S + +BT +0.0 1174.812 Td +/F1.0 8 Tf +[<436173682050> 40 <61> 30 <796d656e74>] TJ +ET + + +BT +175.312 1174.812 Td +/F1.0 8 Tf +[<312c3135302e30>] TJ +ET + + +BT +0.0 1160.564 Td +/F1.0 8 Tf +[<4368616e676520416d6f756e74>] TJ +ET + + +BT +190.88 1160.564 Td +/F1.0 8 Tf +[<302e30>] TJ +ET + + +BT +0.0 1141.316 Td +/F1.0 8 Tf +[<437573746f6d6572204e616d65>] TJ +ET + + +BT +169.064 1141.316 Td +/F1.0 8 Tf +[<57> 50 <414c4b2d494e>] TJ +ET + +0.0 1132.812 m +210.0 1132.812 l +S + +BT +0.0 1122.068 Td +/F1.0 8 Tf +[<54> 120 <6f74616c2046> 30 <6f6f6420446973636f756e7473>] TJ +ET + + +BT +185.552 1122.068 Td +/F1.0 8 Tf +[<28302e3029>] TJ +ET + + +BT +0.0 1112.82 Td +/F1.0 8 Tf +[<54> 120 <6f74616c204265> 30 <76> 25 <6572> 10 <61676520446973636f756e7473>] TJ +ET + + +BT +185.552 1112.82 Td +/F1.0 8 Tf +[<28302e3029>] TJ +ET + + +BT +0.0 1103.572 Td +/F1.0 8 Tf +[<54> 120 <6f74616c2050726f6475637420446973636f756e7473>] TJ +ET + + +BT +185.552 1103.572 Td +/F1.0 8 Tf +[<28302e3029>] TJ +ET + +0.0 1095.068 m +210.0 1095.068 l +S + +BT +0.0 1084.324 Td +/F1.0 8 Tf +[<46> 30 <6f6f64>] TJ +ET + + +BT +175.312 1084.324 Td +/F1.0 8 Tf +[<312c3030302e30>] TJ +ET + + +BT +0.0 1075.076 Td +/F1.0 8 Tf +[<4265> 30 <76> 25 <6572> 10 <616765>] TJ +ET + + +BT +190.88 1075.076 Td +/F1.0 8 Tf +[<302e30>] TJ +ET + + +BT +0.0 1065.828 Td +/F1.0 8 Tf +[<50726f64756374>] TJ +ET + + +BT +190.88 1065.828 Td +/F1.0 8 Tf +[<302e30>] TJ +ET + +0.0 1057.324 m +210.0 1057.324 l +S + +BT +0.0 1045.862 Td +/F1.0 9 Tf +[<53706c69742042696c6c2066> 30 <6f72203020706572736f6e73>] TJ +ET + + +BT +0.0 1031.58 Td +/F1.0 8 Tf +[<416d6f756e7420447565202870657220706572736f6e29>] TJ +ET + + +BT +193.104 1031.58 Td +/F1.0 8 Tf +[<496e66>] TJ +ET + +0.0 1023.076 m +210.0 1023.076 l +S + +BT +0.0 1010.896 Td +/F2.0 10 Tf +[<50> 30 <616964>] TJ +ET + + +BT +102.0 1012.332 Td +/F1.0 8 Tf +[<5468616e6b2059> 140 <6f7521205365652079> 20 <6f7520416761696e>] TJ +ET + +Q + +endstream +endobj +5 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 210 1450] +/CropBox [0 0 210 1450] +/BleedBox [0 0 210 1450] +/TrimBox [0 0 210 1450] +/ArtBox [0 0 210 1450] +/Contents 4 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << /F1.0 6 0 R +/F2.0 7 0 R +>> +>> +>> +endobj +6 0 obj +<< /Type /Font +/Subtype /Type1 +/BaseFont /Helvetica +/Encoding /WinAnsiEncoding +>> +endobj +7 0 obj +<< /Type /Font +/Subtype /Type1 +/BaseFont /Helvetica-Bold +/Encoding /WinAnsiEncoding +>> +endobj +xref +0 8 +0000000000 65535 f +0000000015 00000 n +0000000109 00000 n +0000000158 00000 n +0000000215 00000 n +0000004270 00000 n +0000004553 00000 n +0000004650 00000 n +trailer +<< /Size 8 +/Root 2 0 R +/Info 1 0 R +>> +startxref +4752 +%%EOF diff --git a/public/receipts/receipt_bill_qwer-20180307-78.pdf b/public/receipts/receipt_bill_qwer-20180307-78.pdf new file mode 100644 index 00000000..0167d798 --- /dev/null +++ b/public/receipts/receipt_bill_qwer-20180307-78.pdf @@ -0,0 +1,455 @@ +%PDF-1.3 +%ÿÿÿÿ +1 0 obj +<< /Creator +/Producer +>> +endobj +2 0 obj +<< /Type /Catalog +/Pages 3 0 R +>> +endobj +3 0 obj +<< /Type /Pages +/Count 1 +/Kids [5 0 R] +>> +endobj +4 0 obj +<< /Length 4003 +>> +stream +q + +BT +48.975 1417.82 Td +/F1.0 10 Tf +[<4f53414b41204f4853484f2854> 120 <616d77> 10 <6529>] TJ +ET + + +BT +10.268 1402.696 Td +/F1.0 8 Tf +[<4e6f> 40 <2e203235362c204b> 50 <79> 20 <61696b6b6173616e20526f61642c2054> 120 <616d77> 10 <652054> 120 <6f> 15 <776e73686970> 35 <2c2059> 140 <616e676f6e>] TJ +ET + + +BT +71.904 1388.448 Td +/F1.0 8 Tf +[<54> 120 <656c3a2030392d323538363736363131>] TJ +ET + +0.0 1379.944 m +210.0 1379.944 l +S +0.0 1379.944 m +210.0 1379.944 l +S + +BT +0.0 1367.2 Td +/F1.0 8 Tf +[<52656365697074204e6f3a207177> 10 <65722d32303138303330372d3738>] TJ +ET + + +BT +0.0 1347.2 Td +/F1.0 8 Tf +[<54> 120 <6162> 20 <6c65202d207431>] TJ +ET + + +BT +100.0 1347.2 Td +/F1.0 8 Tf +[<573a2043617368696572>] TJ +ET + + +BT +160.216 1347.2 Td +/F1.0 8 Tf +[<433a2043617368696572>] TJ +ET + + +BT +0.0 1327.2 Td +/F1.0 8 Tf +[<44617465203a2030372d30332d323031382830363a303320504d2d30363a303420504d29>] TJ +ET + +0.0 1312.944 m +210.0 1312.944 l +S + +BT +0.0 1302.2 Td +/F1.0 8 Tf +[<4974656d73>] TJ +ET + + +BT +106.656 1302.2 Td +/F1.0 8 Tf +[<5072> -15 <696365>] TJ +ET + + +BT +138.276 1302.2 Td +/F1.0 8 Tf +[<517479>] TJ +ET + + +BT +187.176 1302.2 Td +/F1.0 8 Tf +[<54> 120 <6f74616c>] TJ +ET + +0.0 1292.944 m +210.0 1292.944 l +S + +BT +0.0 1282.2 Td +/F1.0 8 Tf +[<746573745f6974656d31202d>] TJ +ET + + +BT +0.0 1272.952 Td +/F1.0 8 Tf +[<74657374315f736d616c6c>] TJ +ET + + +BT +98.312 1282.2 Td +/F1.0 8 Tf +[<312c3030302e30>] TJ +ET + + +BT +138.94 1282.2 Td +/F1.0 8 Tf +[<312e30>] TJ +ET + + +BT +177.312 1282.2 Td +/F1.0 8 Tf +[<312c3030302e30>] TJ +ET + +0.0 1264.448 m +210.0 1264.448 l +S + +BT +0.0 1253.704 Td +/F1.0 8 Tf +[<5375622054> 120 <6f74616c>] TJ +ET + + +BT +175.312 1253.704 Td +/F1.0 8 Tf +[<312c3030302e30>] TJ +ET + + +BT +0.0 1239.456 Td +/F1.0 8 Tf +[<4f76> 25 <6572> 10 <616c6c20446973636f756e743a>] TJ +ET + + +BT +181.104 1239.456 Td +/F1.0 8 Tf +[<2820302e302029>] TJ +ET + + +BT +0.0 1225.208 Td +/F1.0 8 Tf +[<536572> -30 <76696365204368617267657320282031302529>] TJ +ET + + +BT +181.984 1225.208 Td +/F1.0 8 Tf +[<3130302e30>] TJ +ET + + +BT +0.0 1210.96 Td +/F1.0 8 Tf +[<436f6d6d65726369616c2054> 120 <6178202820352529>] TJ +ET + + +BT +186.432 1210.96 Td +/F1.0 8 Tf +[<35302e30>] TJ +ET + + +BT +0.0 1195.276 Td +/F2.0 10 Tf +[<4772616e642054> 80 <6f74616c>] TJ +ET + + +BT +168.64 1195.276 Td +/F2.0 10 Tf +[<312c3135302e30>] TJ +ET + +0.0 1185.556 m +210.0 1185.556 l +S + +BT +0.0 1174.812 Td +/F1.0 8 Tf +[<436173682050> 40 <61> 30 <796d656e74>] TJ +ET + + +BT +175.312 1174.812 Td +/F1.0 8 Tf +[<312c3135302e30>] TJ +ET + + +BT +0.0 1160.564 Td +/F1.0 8 Tf +[<4368616e676520416d6f756e74>] TJ +ET + + +BT +190.88 1160.564 Td +/F1.0 8 Tf +[<302e30>] TJ +ET + + +BT +0.0 1141.316 Td +/F1.0 8 Tf +[<437573746f6d6572204e616d65>] TJ +ET + + +BT +169.064 1141.316 Td +/F1.0 8 Tf +[<57> 50 <414c4b2d494e>] TJ +ET + +0.0 1132.812 m +210.0 1132.812 l +S + +BT +0.0 1122.068 Td +/F1.0 8 Tf +[<54> 120 <6f74616c2046> 30 <6f6f6420446973636f756e7473>] TJ +ET + + +BT +185.552 1122.068 Td +/F1.0 8 Tf +[<28302e3029>] TJ +ET + + +BT +0.0 1112.82 Td +/F1.0 8 Tf +[<54> 120 <6f74616c204265> 30 <76> 25 <6572> 10 <61676520446973636f756e7473>] TJ +ET + + +BT +185.552 1112.82 Td +/F1.0 8 Tf +[<28302e3029>] TJ +ET + + +BT +0.0 1103.572 Td +/F1.0 8 Tf +[<54> 120 <6f74616c2050726f6475637420446973636f756e7473>] TJ +ET + + +BT +185.552 1103.572 Td +/F1.0 8 Tf +[<28302e3029>] TJ +ET + +0.0 1095.068 m +210.0 1095.068 l +S + +BT +0.0 1084.324 Td +/F1.0 8 Tf +[<46> 30 <6f6f64>] TJ +ET + + +BT +175.312 1084.324 Td +/F1.0 8 Tf +[<312c3030302e30>] TJ +ET + + +BT +0.0 1075.076 Td +/F1.0 8 Tf +[<4265> 30 <76> 25 <6572> 10 <616765>] TJ +ET + + +BT +190.88 1075.076 Td +/F1.0 8 Tf +[<302e30>] TJ +ET + + +BT +0.0 1065.828 Td +/F1.0 8 Tf +[<50726f64756374>] TJ +ET + + +BT +190.88 1065.828 Td +/F1.0 8 Tf +[<302e30>] TJ +ET + +0.0 1057.324 m +210.0 1057.324 l +S + +BT +0.0 1045.862 Td +/F1.0 9 Tf +[<53706c69742042696c6c2066> 30 <6f72203020706572736f6e73>] TJ +ET + + +BT +0.0 1031.58 Td +/F1.0 8 Tf +[<416d6f756e7420447565202870657220706572736f6e29>] TJ +ET + + +BT +193.104 1031.58 Td +/F1.0 8 Tf +[<496e66>] TJ +ET + +0.0 1023.076 m +210.0 1023.076 l +S + +BT +0.0 1010.896 Td +/F2.0 10 Tf +[<50> 30 <616964>] TJ +ET + + +BT +102.0 1012.332 Td +/F1.0 8 Tf +[<5468616e6b2059> 140 <6f7521205365652079> 20 <6f7520416761696e>] TJ +ET + +Q + +endstream +endobj +5 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 210 1450] +/CropBox [0 0 210 1450] +/BleedBox [0 0 210 1450] +/TrimBox [0 0 210 1450] +/ArtBox [0 0 210 1450] +/Contents 4 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << /F1.0 6 0 R +/F2.0 7 0 R +>> +>> +>> +endobj +6 0 obj +<< /Type /Font +/Subtype /Type1 +/BaseFont /Helvetica +/Encoding /WinAnsiEncoding +>> +endobj +7 0 obj +<< /Type /Font +/Subtype /Type1 +/BaseFont /Helvetica-Bold +/Encoding /WinAnsiEncoding +>> +endobj +xref +0 8 +0000000000 65535 f +0000000015 00000 n +0000000109 00000 n +0000000158 00000 n +0000000215 00000 n +0000004270 00000 n +0000004553 00000 n +0000004650 00000 n +trailer +<< /Size 8 +/Root 2 0 R +/Info 1 0 R +>> +startxref +4752 +%%EOF diff --git a/public/receipts/receipt_bill_qwer-20180307-79.pdf b/public/receipts/receipt_bill_qwer-20180307-79.pdf new file mode 100644 index 00000000..8720c5b6 --- /dev/null +++ b/public/receipts/receipt_bill_qwer-20180307-79.pdf @@ -0,0 +1,455 @@ +%PDF-1.3 +%ÿÿÿÿ +1 0 obj +<< /Creator +/Producer +>> +endobj +2 0 obj +<< /Type /Catalog +/Pages 3 0 R +>> +endobj +3 0 obj +<< /Type /Pages +/Count 1 +/Kids [5 0 R] +>> +endobj +4 0 obj +<< /Length 4003 +>> +stream +q + +BT +48.975 1417.82 Td +/F1.0 10 Tf +[<4f53414b41204f4853484f2854> 120 <616d77> 10 <6529>] TJ +ET + + +BT +10.268 1402.696 Td +/F1.0 8 Tf +[<4e6f> 40 <2e203235362c204b> 50 <79> 20 <61696b6b6173616e20526f61642c2054> 120 <616d77> 10 <652054> 120 <6f> 15 <776e73686970> 35 <2c2059> 140 <616e676f6e>] TJ +ET + + +BT +71.904 1388.448 Td +/F1.0 8 Tf +[<54> 120 <656c3a2030392d323538363736363131>] TJ +ET + +0.0 1379.944 m +210.0 1379.944 l +S +0.0 1379.944 m +210.0 1379.944 l +S + +BT +0.0 1367.2 Td +/F1.0 8 Tf +[<52656365697074204e6f3a207177> 10 <65722d32303138303330372d3739>] TJ +ET + + +BT +0.0 1347.2 Td +/F1.0 8 Tf +[<54> 120 <6162> 20 <6c65202d207432>] TJ +ET + + +BT +100.0 1347.2 Td +/F1.0 8 Tf +[<573a2043617368696572>] TJ +ET + + +BT +160.216 1347.2 Td +/F1.0 8 Tf +[<433a2043617368696572>] TJ +ET + + +BT +0.0 1327.2 Td +/F1.0 8 Tf +[<44617465203a2030372d30332d323031382830363a303620504d2d30363a303620504d29>] TJ +ET + +0.0 1312.944 m +210.0 1312.944 l +S + +BT +0.0 1302.2 Td +/F1.0 8 Tf +[<4974656d73>] TJ +ET + + +BT +106.656 1302.2 Td +/F1.0 8 Tf +[<5072> -15 <696365>] TJ +ET + + +BT +138.276 1302.2 Td +/F1.0 8 Tf +[<517479>] TJ +ET + + +BT +187.176 1302.2 Td +/F1.0 8 Tf +[<54> 120 <6f74616c>] TJ +ET + +0.0 1292.944 m +210.0 1292.944 l +S + +BT +0.0 1282.2 Td +/F1.0 8 Tf +[<746573745f6974656d31202d>] TJ +ET + + +BT +0.0 1272.952 Td +/F1.0 8 Tf +[<74657374315f736d616c6c>] TJ +ET + + +BT +98.312 1282.2 Td +/F1.0 8 Tf +[<312c3030302e30>] TJ +ET + + +BT +138.94 1282.2 Td +/F1.0 8 Tf +[<312e30>] TJ +ET + + +BT +177.312 1282.2 Td +/F1.0 8 Tf +[<312c3030302e30>] TJ +ET + +0.0 1264.448 m +210.0 1264.448 l +S + +BT +0.0 1253.704 Td +/F1.0 8 Tf +[<5375622054> 120 <6f74616c>] TJ +ET + + +BT +175.312 1253.704 Td +/F1.0 8 Tf +[<312c3030302e30>] TJ +ET + + +BT +0.0 1239.456 Td +/F1.0 8 Tf +[<4f76> 25 <6572> 10 <616c6c20446973636f756e743a>] TJ +ET + + +BT +181.104 1239.456 Td +/F1.0 8 Tf +[<2820302e302029>] TJ +ET + + +BT +0.0 1225.208 Td +/F1.0 8 Tf +[<536572> -30 <76696365204368617267657320282031302529>] TJ +ET + + +BT +181.984 1225.208 Td +/F1.0 8 Tf +[<3130302e30>] TJ +ET + + +BT +0.0 1210.96 Td +/F1.0 8 Tf +[<436f6d6d65726369616c2054> 120 <6178202820352529>] TJ +ET + + +BT +186.432 1210.96 Td +/F1.0 8 Tf +[<35302e30>] TJ +ET + + +BT +0.0 1195.276 Td +/F2.0 10 Tf +[<4772616e642054> 80 <6f74616c>] TJ +ET + + +BT +168.64 1195.276 Td +/F2.0 10 Tf +[<312c3135302e30>] TJ +ET + +0.0 1185.556 m +210.0 1185.556 l +S + +BT +0.0 1174.812 Td +/F1.0 8 Tf +[<436173682050> 40 <61> 30 <796d656e74>] TJ +ET + + +BT +175.312 1174.812 Td +/F1.0 8 Tf +[<312c3135302e30>] TJ +ET + + +BT +0.0 1160.564 Td +/F1.0 8 Tf +[<4368616e676520416d6f756e74>] TJ +ET + + +BT +190.88 1160.564 Td +/F1.0 8 Tf +[<302e30>] TJ +ET + + +BT +0.0 1141.316 Td +/F1.0 8 Tf +[<437573746f6d6572204e616d65>] TJ +ET + + +BT +169.064 1141.316 Td +/F1.0 8 Tf +[<57> 50 <414c4b2d494e>] TJ +ET + +0.0 1132.812 m +210.0 1132.812 l +S + +BT +0.0 1122.068 Td +/F1.0 8 Tf +[<54> 120 <6f74616c2046> 30 <6f6f6420446973636f756e7473>] TJ +ET + + +BT +185.552 1122.068 Td +/F1.0 8 Tf +[<28302e3029>] TJ +ET + + +BT +0.0 1112.82 Td +/F1.0 8 Tf +[<54> 120 <6f74616c204265> 30 <76> 25 <6572> 10 <61676520446973636f756e7473>] TJ +ET + + +BT +185.552 1112.82 Td +/F1.0 8 Tf +[<28302e3029>] TJ +ET + + +BT +0.0 1103.572 Td +/F1.0 8 Tf +[<54> 120 <6f74616c2050726f6475637420446973636f756e7473>] TJ +ET + + +BT +185.552 1103.572 Td +/F1.0 8 Tf +[<28302e3029>] TJ +ET + +0.0 1095.068 m +210.0 1095.068 l +S + +BT +0.0 1084.324 Td +/F1.0 8 Tf +[<46> 30 <6f6f64>] TJ +ET + + +BT +175.312 1084.324 Td +/F1.0 8 Tf +[<312c3030302e30>] TJ +ET + + +BT +0.0 1075.076 Td +/F1.0 8 Tf +[<4265> 30 <76> 25 <6572> 10 <616765>] TJ +ET + + +BT +190.88 1075.076 Td +/F1.0 8 Tf +[<302e30>] TJ +ET + + +BT +0.0 1065.828 Td +/F1.0 8 Tf +[<50726f64756374>] TJ +ET + + +BT +190.88 1065.828 Td +/F1.0 8 Tf +[<302e30>] TJ +ET + +0.0 1057.324 m +210.0 1057.324 l +S + +BT +0.0 1045.862 Td +/F1.0 9 Tf +[<53706c69742042696c6c2066> 30 <6f72203020706572736f6e73>] TJ +ET + + +BT +0.0 1031.58 Td +/F1.0 8 Tf +[<416d6f756e7420447565202870657220706572736f6e29>] TJ +ET + + +BT +193.104 1031.58 Td +/F1.0 8 Tf +[<496e66>] TJ +ET + +0.0 1023.076 m +210.0 1023.076 l +S + +BT +0.0 1010.896 Td +/F2.0 10 Tf +[<50> 30 <616964>] TJ +ET + + +BT +102.0 1012.332 Td +/F1.0 8 Tf +[<5468616e6b2059> 140 <6f7521205365652079> 20 <6f7520416761696e>] TJ +ET + +Q + +endstream +endobj +5 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 210 1450] +/CropBox [0 0 210 1450] +/BleedBox [0 0 210 1450] +/TrimBox [0 0 210 1450] +/ArtBox [0 0 210 1450] +/Contents 4 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << /F1.0 6 0 R +/F2.0 7 0 R +>> +>> +>> +endobj +6 0 obj +<< /Type /Font +/Subtype /Type1 +/BaseFont /Helvetica +/Encoding /WinAnsiEncoding +>> +endobj +7 0 obj +<< /Type /Font +/Subtype /Type1 +/BaseFont /Helvetica-Bold +/Encoding /WinAnsiEncoding +>> +endobj +xref +0 8 +0000000000 65535 f +0000000015 00000 n +0000000109 00000 n +0000000158 00000 n +0000000215 00000 n +0000004270 00000 n +0000004553 00000 n +0000004650 00000 n +trailer +<< /Size 8 +/Root 2 0 R +/Info 1 0 R +>> +startxref +4752 +%%EOF diff --git a/public/receipts/receipt_bill_qwer-20180307-80.pdf b/public/receipts/receipt_bill_qwer-20180307-80.pdf new file mode 100644 index 00000000..e1ecd3dd --- /dev/null +++ b/public/receipts/receipt_bill_qwer-20180307-80.pdf @@ -0,0 +1,455 @@ +%PDF-1.3 +%ÿÿÿÿ +1 0 obj +<< /Creator +/Producer +>> +endobj +2 0 obj +<< /Type /Catalog +/Pages 3 0 R +>> +endobj +3 0 obj +<< /Type /Pages +/Count 1 +/Kids [5 0 R] +>> +endobj +4 0 obj +<< /Length 4003 +>> +stream +q + +BT +48.975 1417.82 Td +/F1.0 10 Tf +[<4f53414b41204f4853484f2854> 120 <616d77> 10 <6529>] TJ +ET + + +BT +10.268 1402.696 Td +/F1.0 8 Tf +[<4e6f> 40 <2e203235362c204b> 50 <79> 20 <61696b6b6173616e20526f61642c2054> 120 <616d77> 10 <652054> 120 <6f> 15 <776e73686970> 35 <2c2059> 140 <616e676f6e>] TJ +ET + + +BT +71.904 1388.448 Td +/F1.0 8 Tf +[<54> 120 <656c3a2030392d323538363736363131>] TJ +ET + +0.0 1379.944 m +210.0 1379.944 l +S +0.0 1379.944 m +210.0 1379.944 l +S + +BT +0.0 1367.2 Td +/F1.0 8 Tf +[<52656365697074204e6f3a207177> 10 <65722d32303138303330372d3830>] TJ +ET + + +BT +0.0 1347.2 Td +/F1.0 8 Tf +[<54> 120 <6162> 20 <6c65202d207432>] TJ +ET + + +BT +100.0 1347.2 Td +/F1.0 8 Tf +[<573a2043617368696572>] TJ +ET + + +BT +160.216 1347.2 Td +/F1.0 8 Tf +[<433a2043617368696572>] TJ +ET + + +BT +0.0 1327.2 Td +/F1.0 8 Tf +[<44617465203a2030372d30332d323031382830363a303720504d2d30363a303720504d29>] TJ +ET + +0.0 1312.944 m +210.0 1312.944 l +S + +BT +0.0 1302.2 Td +/F1.0 8 Tf +[<4974656d73>] TJ +ET + + +BT +106.656 1302.2 Td +/F1.0 8 Tf +[<5072> -15 <696365>] TJ +ET + + +BT +138.276 1302.2 Td +/F1.0 8 Tf +[<517479>] TJ +ET + + +BT +187.176 1302.2 Td +/F1.0 8 Tf +[<54> 120 <6f74616c>] TJ +ET + +0.0 1292.944 m +210.0 1292.944 l +S + +BT +0.0 1282.2 Td +/F1.0 8 Tf +[<746573745f6974656d31202d>] TJ +ET + + +BT +0.0 1272.952 Td +/F1.0 8 Tf +[<74657374315f736d616c6c>] TJ +ET + + +BT +98.312 1282.2 Td +/F1.0 8 Tf +[<312c3030302e30>] TJ +ET + + +BT +138.94 1282.2 Td +/F1.0 8 Tf +[<312e30>] TJ +ET + + +BT +177.312 1282.2 Td +/F1.0 8 Tf +[<312c3030302e30>] TJ +ET + +0.0 1264.448 m +210.0 1264.448 l +S + +BT +0.0 1253.704 Td +/F1.0 8 Tf +[<5375622054> 120 <6f74616c>] TJ +ET + + +BT +175.312 1253.704 Td +/F1.0 8 Tf +[<312c3030302e30>] TJ +ET + + +BT +0.0 1239.456 Td +/F1.0 8 Tf +[<4f76> 25 <6572> 10 <616c6c20446973636f756e743a>] TJ +ET + + +BT +181.104 1239.456 Td +/F1.0 8 Tf +[<2820302e302029>] TJ +ET + + +BT +0.0 1225.208 Td +/F1.0 8 Tf +[<536572> -30 <76696365204368617267657320282031302529>] TJ +ET + + +BT +181.984 1225.208 Td +/F1.0 8 Tf +[<3130302e30>] TJ +ET + + +BT +0.0 1210.96 Td +/F1.0 8 Tf +[<436f6d6d65726369616c2054> 120 <6178202820352529>] TJ +ET + + +BT +186.432 1210.96 Td +/F1.0 8 Tf +[<35302e30>] TJ +ET + + +BT +0.0 1195.276 Td +/F2.0 10 Tf +[<4772616e642054> 80 <6f74616c>] TJ +ET + + +BT +168.64 1195.276 Td +/F2.0 10 Tf +[<312c3135302e30>] TJ +ET + +0.0 1185.556 m +210.0 1185.556 l +S + +BT +0.0 1174.812 Td +/F1.0 8 Tf +[<436173682050> 40 <61> 30 <796d656e74>] TJ +ET + + +BT +175.312 1174.812 Td +/F1.0 8 Tf +[<312c3135302e30>] TJ +ET + + +BT +0.0 1160.564 Td +/F1.0 8 Tf +[<4368616e676520416d6f756e74>] TJ +ET + + +BT +190.88 1160.564 Td +/F1.0 8 Tf +[<302e30>] TJ +ET + + +BT +0.0 1141.316 Td +/F1.0 8 Tf +[<437573746f6d6572204e616d65>] TJ +ET + + +BT +169.064 1141.316 Td +/F1.0 8 Tf +[<57> 50 <414c4b2d494e>] TJ +ET + +0.0 1132.812 m +210.0 1132.812 l +S + +BT +0.0 1122.068 Td +/F1.0 8 Tf +[<54> 120 <6f74616c2046> 30 <6f6f6420446973636f756e7473>] TJ +ET + + +BT +185.552 1122.068 Td +/F1.0 8 Tf +[<28302e3029>] TJ +ET + + +BT +0.0 1112.82 Td +/F1.0 8 Tf +[<54> 120 <6f74616c204265> 30 <76> 25 <6572> 10 <61676520446973636f756e7473>] TJ +ET + + +BT +185.552 1112.82 Td +/F1.0 8 Tf +[<28302e3029>] TJ +ET + + +BT +0.0 1103.572 Td +/F1.0 8 Tf +[<54> 120 <6f74616c2050726f6475637420446973636f756e7473>] TJ +ET + + +BT +185.552 1103.572 Td +/F1.0 8 Tf +[<28302e3029>] TJ +ET + +0.0 1095.068 m +210.0 1095.068 l +S + +BT +0.0 1084.324 Td +/F1.0 8 Tf +[<46> 30 <6f6f64>] TJ +ET + + +BT +175.312 1084.324 Td +/F1.0 8 Tf +[<312c3030302e30>] TJ +ET + + +BT +0.0 1075.076 Td +/F1.0 8 Tf +[<4265> 30 <76> 25 <6572> 10 <616765>] TJ +ET + + +BT +190.88 1075.076 Td +/F1.0 8 Tf +[<302e30>] TJ +ET + + +BT +0.0 1065.828 Td +/F1.0 8 Tf +[<50726f64756374>] TJ +ET + + +BT +190.88 1065.828 Td +/F1.0 8 Tf +[<302e30>] TJ +ET + +0.0 1057.324 m +210.0 1057.324 l +S + +BT +0.0 1045.862 Td +/F1.0 9 Tf +[<53706c69742042696c6c2066> 30 <6f72203020706572736f6e73>] TJ +ET + + +BT +0.0 1031.58 Td +/F1.0 8 Tf +[<416d6f756e7420447565202870657220706572736f6e29>] TJ +ET + + +BT +193.104 1031.58 Td +/F1.0 8 Tf +[<496e66>] TJ +ET + +0.0 1023.076 m +210.0 1023.076 l +S + +BT +0.0 1010.896 Td +/F2.0 10 Tf +[<50> 30 <616964>] TJ +ET + + +BT +102.0 1012.332 Td +/F1.0 8 Tf +[<5468616e6b2059> 140 <6f7521205365652079> 20 <6f7520416761696e>] TJ +ET + +Q + +endstream +endobj +5 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 210 1450] +/CropBox [0 0 210 1450] +/BleedBox [0 0 210 1450] +/TrimBox [0 0 210 1450] +/ArtBox [0 0 210 1450] +/Contents 4 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << /F1.0 6 0 R +/F2.0 7 0 R +>> +>> +>> +endobj +6 0 obj +<< /Type /Font +/Subtype /Type1 +/BaseFont /Helvetica +/Encoding /WinAnsiEncoding +>> +endobj +7 0 obj +<< /Type /Font +/Subtype /Type1 +/BaseFont /Helvetica-Bold +/Encoding /WinAnsiEncoding +>> +endobj +xref +0 8 +0000000000 65535 f +0000000015 00000 n +0000000109 00000 n +0000000158 00000 n +0000000215 00000 n +0000004270 00000 n +0000004553 00000 n +0000004650 00000 n +trailer +<< /Size 8 +/Root 2 0 R +/Info 1 0 R +>> +startxref +4752 +%%EOF diff --git a/public/receipts/receipt_bill_qwer-20180307-81.pdf b/public/receipts/receipt_bill_qwer-20180307-81.pdf new file mode 100644 index 00000000..c2c35188 --- /dev/null +++ b/public/receipts/receipt_bill_qwer-20180307-81.pdf @@ -0,0 +1,455 @@ +%PDF-1.3 +%ÿÿÿÿ +1 0 obj +<< /Creator +/Producer +>> +endobj +2 0 obj +<< /Type /Catalog +/Pages 3 0 R +>> +endobj +3 0 obj +<< /Type /Pages +/Count 1 +/Kids [5 0 R] +>> +endobj +4 0 obj +<< /Length 4005 +>> +stream +q + +BT +48.975 1417.82 Td +/F1.0 10 Tf +[<4f53414b41204f4853484f2854> 120 <616d77> 10 <6529>] TJ +ET + + +BT +10.268 1402.696 Td +/F1.0 8 Tf +[<4e6f> 40 <2e203235362c204b> 50 <79> 20 <61696b6b6173616e20526f61642c2054> 120 <616d77> 10 <652054> 120 <6f> 15 <776e73686970> 35 <2c2059> 140 <616e676f6e>] TJ +ET + + +BT +71.904 1388.448 Td +/F1.0 8 Tf +[<54> 120 <656c3a2030392d323538363736363131>] TJ +ET + +0.0 1379.944 m +210.0 1379.944 l +S +0.0 1379.944 m +210.0 1379.944 l +S + +BT +0.0 1367.2 Td +/F1.0 8 Tf +[<52656365697074204e6f3a207177> 10 <65722d32303138303330372d3831>] TJ +ET + + +BT +0.0 1347.2 Td +/F1.0 8 Tf +[<54> 120 <6162> 20 <6c65202d207432>] TJ +ET + + +BT +100.0 1347.2 Td +/F1.0 8 Tf +[<573a2043617368696572>] TJ +ET + + +BT +160.216 1347.2 Td +/F1.0 8 Tf +[<433a2043617368696572>] TJ +ET + + +BT +0.0 1327.2 Td +/F1.0 8 Tf +[<44617465203a2030372d30332d323031382830363a303920504d2d30363a303920504d29>] TJ +ET + +0.0 1312.944 m +210.0 1312.944 l +S + +BT +0.0 1302.2 Td +/F1.0 8 Tf +[<4974656d73>] TJ +ET + + +BT +106.656 1302.2 Td +/F1.0 8 Tf +[<5072> -15 <696365>] TJ +ET + + +BT +138.276 1302.2 Td +/F1.0 8 Tf +[<517479>] TJ +ET + + +BT +187.176 1302.2 Td +/F1.0 8 Tf +[<54> 120 <6f74616c>] TJ +ET + +0.0 1292.944 m +210.0 1292.944 l +S + +BT +0.0 1282.2 Td +/F1.0 8 Tf +[<746573745f6974656d32202d>] TJ +ET + + +BT +0.0 1272.952 Td +/F1.0 8 Tf +[<74657374315f736d616c32>] TJ +ET + + +BT +98.312 1282.2 Td +/F1.0 8 Tf +[<322c3032302e30>] TJ +ET + + +BT +138.94 1282.2 Td +/F1.0 8 Tf +[<312e30>] TJ +ET + + +BT +177.312 1282.2 Td +/F1.0 8 Tf +[<322c3032302e30>] TJ +ET + +0.0 1264.448 m +210.0 1264.448 l +S + +BT +0.0 1253.704 Td +/F1.0 8 Tf +[<5375622054> 120 <6f74616c>] TJ +ET + + +BT +175.312 1253.704 Td +/F1.0 8 Tf +[<322c3032302e30>] TJ +ET + + +BT +0.0 1239.456 Td +/F1.0 8 Tf +[<4f76> 25 <6572> 10 <616c6c20446973636f756e743a>] TJ +ET + + +BT +181.104 1239.456 Td +/F1.0 8 Tf +[<2820302e302029>] TJ +ET + + +BT +0.0 1225.208 Td +/F1.0 8 Tf +[<536572> -30 <76696365204368617267657320282031302529>] TJ +ET + + +BT +181.984 1225.208 Td +/F1.0 8 Tf +[<3230322e30>] TJ +ET + + +BT +0.0 1210.96 Td +/F1.0 8 Tf +[<436f6d6d65726369616c2054> 120 <6178202820352529>] TJ +ET + + +BT +181.984 1210.96 Td +/F1.0 8 Tf +[<3130312e30>] TJ +ET + + +BT +0.0 1195.276 Td +/F2.0 10 Tf +[<4772616e642054> 80 <6f74616c>] TJ +ET + + +BT +168.64 1195.276 Td +/F2.0 10 Tf +[<322c3332332e30>] TJ +ET + +0.0 1185.556 m +210.0 1185.556 l +S + +BT +0.0 1174.812 Td +/F1.0 8 Tf +[<436173682050> 40 <61> 30 <796d656e74>] TJ +ET + + +BT +175.312 1174.812 Td +/F1.0 8 Tf +[<322c3332332e30>] TJ +ET + + +BT +0.0 1160.564 Td +/F1.0 8 Tf +[<4368616e676520416d6f756e74>] TJ +ET + + +BT +190.88 1160.564 Td +/F1.0 8 Tf +[<302e30>] TJ +ET + + +BT +0.0 1141.316 Td +/F1.0 8 Tf +[<437573746f6d6572204e616d65>] TJ +ET + + +BT +169.064 1141.316 Td +/F1.0 8 Tf +[<57> 50 <414c4b2d494e>] TJ +ET + +0.0 1132.812 m +210.0 1132.812 l +S + +BT +0.0 1122.068 Td +/F1.0 8 Tf +[<54> 120 <6f74616c2046> 30 <6f6f6420446973636f756e7473>] TJ +ET + + +BT +185.552 1122.068 Td +/F1.0 8 Tf +[<28302e3029>] TJ +ET + + +BT +0.0 1112.82 Td +/F1.0 8 Tf +[<54> 120 <6f74616c204265> 30 <76> 25 <6572> 10 <61676520446973636f756e7473>] TJ +ET + + +BT +185.552 1112.82 Td +/F1.0 8 Tf +[<28302e3029>] TJ +ET + + +BT +0.0 1103.572 Td +/F1.0 8 Tf +[<54> 120 <6f74616c2050726f6475637420446973636f756e7473>] TJ +ET + + +BT +185.552 1103.572 Td +/F1.0 8 Tf +[<28302e3029>] TJ +ET + +0.0 1095.068 m +210.0 1095.068 l +S + +BT +0.0 1084.324 Td +/F1.0 8 Tf +[<46> 30 <6f6f64>] TJ +ET + + +BT +175.312 1084.324 Td +/F1.0 8 Tf +[<322c3032302e30>] TJ +ET + + +BT +0.0 1075.076 Td +/F1.0 8 Tf +[<4265> 30 <76> 25 <6572> 10 <616765>] TJ +ET + + +BT +190.88 1075.076 Td +/F1.0 8 Tf +[<302e30>] TJ +ET + + +BT +0.0 1065.828 Td +/F1.0 8 Tf +[<50726f64756374>] TJ +ET + + +BT +190.88 1065.828 Td +/F1.0 8 Tf +[<302e30>] TJ +ET + +0.0 1057.324 m +210.0 1057.324 l +S + +BT +0.0 1045.862 Td +/F1.0 9 Tf +[<53706c69742042696c6c2066> 30 <6f72203020706572736f6e73>] TJ +ET + + +BT +0.0 1031.58 Td +/F1.0 8 Tf +[<416d6f756e7420447565202870657220706572736f6e29>] TJ +ET + + +BT +193.104 1031.58 Td +/F1.0 8 Tf +[<496e66>] TJ +ET + +0.0 1023.076 m +210.0 1023.076 l +S + +BT +0.0 1010.896 Td +/F2.0 10 Tf +[<50> 30 <616964>] TJ +ET + + +BT +102.0 1012.332 Td +/F1.0 8 Tf +[<5468616e6b2059> 140 <6f7521205365652079> 20 <6f7520416761696e>] TJ +ET + +Q + +endstream +endobj +5 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 210 1450] +/CropBox [0 0 210 1450] +/BleedBox [0 0 210 1450] +/TrimBox [0 0 210 1450] +/ArtBox [0 0 210 1450] +/Contents 4 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << /F1.0 6 0 R +/F2.0 7 0 R +>> +>> +>> +endobj +6 0 obj +<< /Type /Font +/Subtype /Type1 +/BaseFont /Helvetica +/Encoding /WinAnsiEncoding +>> +endobj +7 0 obj +<< /Type /Font +/Subtype /Type1 +/BaseFont /Helvetica-Bold +/Encoding /WinAnsiEncoding +>> +endobj +xref +0 8 +0000000000 65535 f +0000000015 00000 n +0000000109 00000 n +0000000158 00000 n +0000000215 00000 n +0000004272 00000 n +0000004555 00000 n +0000004652 00000 n +trailer +<< /Size 8 +/Root 2 0 R +/Info 1 0 R +>> +startxref +4754 +%%EOF diff --git a/public/receipts/receipt_bill_qwer-20180307-82.pdf b/public/receipts/receipt_bill_qwer-20180307-82.pdf new file mode 100644 index 00000000..088b1130 --- /dev/null +++ b/public/receipts/receipt_bill_qwer-20180307-82.pdf @@ -0,0 +1,455 @@ +%PDF-1.3 +%ÿÿÿÿ +1 0 obj +<< /Creator +/Producer +>> +endobj +2 0 obj +<< /Type /Catalog +/Pages 3 0 R +>> +endobj +3 0 obj +<< /Type /Pages +/Count 1 +/Kids [5 0 R] +>> +endobj +4 0 obj +<< /Length 4012 +>> +stream +q + +BT +48.975 1417.82 Td +/F1.0 10 Tf +[<4f53414b41204f4853484f2854> 120 <616d77> 10 <6529>] TJ +ET + + +BT +10.268 1402.696 Td +/F1.0 8 Tf +[<4e6f> 40 <2e203235362c204b> 50 <79> 20 <61696b6b6173616e20526f61642c2054> 120 <616d77> 10 <652054> 120 <6f> 15 <776e73686970> 35 <2c2059> 140 <616e676f6e>] TJ +ET + + +BT +71.904 1388.448 Td +/F1.0 8 Tf +[<54> 120 <656c3a2030392d323538363736363131>] TJ +ET + +0.0 1379.944 m +210.0 1379.944 l +S +0.0 1379.944 m +210.0 1379.944 l +S + +BT +0.0 1367.2 Td +/F1.0 8 Tf +[<52656365697074204e6f3a207177> 10 <65722d32303138303330372d3832>] TJ +ET + + +BT +0.0 1347.2 Td +/F1.0 8 Tf +[<54> 120 <6162> 20 <6c65202d207431>] TJ +ET + + +BT +100.0 1347.2 Td +/F1.0 8 Tf +[<573a2043617368696572>] TJ +ET + + +BT +160.216 1347.2 Td +/F1.0 8 Tf +[<433a2043617368696572>] TJ +ET + + +BT +0.0 1327.2 Td +/F1.0 8 Tf +[<44617465203a2030372d30332d323031382830363a313320504d2d30363a313320504d29>] TJ +ET + +0.0 1312.944 m +210.0 1312.944 l +S + +BT +0.0 1302.2 Td +/F1.0 8 Tf +[<4974656d73>] TJ +ET + + +BT +106.656 1302.2 Td +/F1.0 8 Tf +[<5072> -15 <696365>] TJ +ET + + +BT +138.276 1302.2 Td +/F1.0 8 Tf +[<517479>] TJ +ET + + +BT +187.176 1302.2 Td +/F1.0 8 Tf +[<54> 120 <6f74616c>] TJ +ET + +0.0 1292.944 m +210.0 1292.944 l +S + +BT +0.0 1282.2 Td +/F1.0 8 Tf +[<746573745f6974656d31202d>] TJ +ET + + +BT +0.0 1272.952 Td +/F1.0 8 Tf +[<74657374315f736d616c6c>] TJ +ET + + +BT +98.312 1282.2 Td +/F1.0 8 Tf +[<312c3030302e30>] TJ +ET + + +BT +138.94 1282.2 Td +/F1.0 8 Tf +[<312e30>] TJ +ET + + +BT +177.312 1282.2 Td +/F1.0 8 Tf +[<312c3030302e30>] TJ +ET + +0.0 1264.448 m +210.0 1264.448 l +S + +BT +0.0 1253.704 Td +/F1.0 8 Tf +[<5375622054> 120 <6f74616c>] TJ +ET + + +BT +175.312 1253.704 Td +/F1.0 8 Tf +[<312c3030302e30>] TJ +ET + + +BT +0.0 1239.456 Td +/F1.0 8 Tf +[<4f76> 25 <6572> 10 <616c6c20446973636f756e743a>] TJ +ET + + +BT +181.104 1239.456 Td +/F1.0 8 Tf +[<2820302e302029>] TJ +ET + + +BT +0.0 1225.208 Td +/F1.0 8 Tf +[<536572> -30 <76696365204368617267657320282031302529>] TJ +ET + + +BT +181.984 1225.208 Td +/F1.0 8 Tf +[<3130302e30>] TJ +ET + + +BT +0.0 1210.96 Td +/F1.0 8 Tf +[<436f6d6d65726369616c2054> 120 <6178202820352529>] TJ +ET + + +BT +186.432 1210.96 Td +/F1.0 8 Tf +[<35302e30>] TJ +ET + + +BT +0.0 1195.276 Td +/F2.0 10 Tf +[<4772616e642054> 80 <6f74616c>] TJ +ET + + +BT +168.64 1195.276 Td +/F2.0 10 Tf +[<312c3135302e30>] TJ +ET + +0.0 1185.556 m +210.0 1185.556 l +S + +BT +0.0 1174.812 Td +/F1.0 8 Tf +[<436173682050> 40 <61> 30 <796d656e74>] TJ +ET + + +BT +175.312 1174.812 Td +/F1.0 8 Tf +[<322c3330302e30>] TJ +ET + + +BT +0.0 1160.564 Td +/F1.0 8 Tf +[<4368616e676520416d6f756e74>] TJ +ET + + +BT +175.312 1160.564 Td +/F1.0 8 Tf +[<312c3135302e30>] TJ +ET + + +BT +0.0 1141.316 Td +/F1.0 8 Tf +[<437573746f6d6572204e616d65>] TJ +ET + + +BT +169.064 1141.316 Td +/F1.0 8 Tf +[<57> 50 <414c4b2d494e>] TJ +ET + +0.0 1132.812 m +210.0 1132.812 l +S + +BT +0.0 1122.068 Td +/F1.0 8 Tf +[<54> 120 <6f74616c2046> 30 <6f6f6420446973636f756e7473>] TJ +ET + + +BT +185.552 1122.068 Td +/F1.0 8 Tf +[<28302e3029>] TJ +ET + + +BT +0.0 1112.82 Td +/F1.0 8 Tf +[<54> 120 <6f74616c204265> 30 <76> 25 <6572> 10 <61676520446973636f756e7473>] TJ +ET + + +BT +185.552 1112.82 Td +/F1.0 8 Tf +[<28302e3029>] TJ +ET + + +BT +0.0 1103.572 Td +/F1.0 8 Tf +[<54> 120 <6f74616c2050726f6475637420446973636f756e7473>] TJ +ET + + +BT +185.552 1103.572 Td +/F1.0 8 Tf +[<28302e3029>] TJ +ET + +0.0 1095.068 m +210.0 1095.068 l +S + +BT +0.0 1084.324 Td +/F1.0 8 Tf +[<46> 30 <6f6f64>] TJ +ET + + +BT +175.312 1084.324 Td +/F1.0 8 Tf +[<312c3030302e30>] TJ +ET + + +BT +0.0 1075.076 Td +/F1.0 8 Tf +[<4265> 30 <76> 25 <6572> 10 <616765>] TJ +ET + + +BT +190.88 1075.076 Td +/F1.0 8 Tf +[<302e30>] TJ +ET + + +BT +0.0 1065.828 Td +/F1.0 8 Tf +[<50726f64756374>] TJ +ET + + +BT +190.88 1065.828 Td +/F1.0 8 Tf +[<302e30>] TJ +ET + +0.0 1057.324 m +210.0 1057.324 l +S + +BT +0.0 1045.862 Td +/F1.0 9 Tf +[<53706c69742042696c6c2066> 30 <6f72203020706572736f6e73>] TJ +ET + + +BT +0.0 1031.58 Td +/F1.0 8 Tf +[<416d6f756e7420447565202870657220706572736f6e29>] TJ +ET + + +BT +193.104 1031.58 Td +/F1.0 8 Tf +[<496e66>] TJ +ET + +0.0 1023.076 m +210.0 1023.076 l +S + +BT +0.0 1010.896 Td +/F2.0 10 Tf +[<50> 30 <616964>] TJ +ET + + +BT +102.0 1012.332 Td +/F1.0 8 Tf +[<5468616e6b2059> 140 <6f7521205365652079> 20 <6f7520416761696e>] TJ +ET + +Q + +endstream +endobj +5 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 210 1450] +/CropBox [0 0 210 1450] +/BleedBox [0 0 210 1450] +/TrimBox [0 0 210 1450] +/ArtBox [0 0 210 1450] +/Contents 4 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << /F1.0 6 0 R +/F2.0 7 0 R +>> +>> +>> +endobj +6 0 obj +<< /Type /Font +/Subtype /Type1 +/BaseFont /Helvetica +/Encoding /WinAnsiEncoding +>> +endobj +7 0 obj +<< /Type /Font +/Subtype /Type1 +/BaseFont /Helvetica-Bold +/Encoding /WinAnsiEncoding +>> +endobj +xref +0 8 +0000000000 65535 f +0000000015 00000 n +0000000109 00000 n +0000000158 00000 n +0000000215 00000 n +0000004279 00000 n +0000004562 00000 n +0000004659 00000 n +trailer +<< /Size 8 +/Root 2 0 R +/Info 1 0 R +>> +startxref +4761 +%%EOF diff --git a/public/receipts/receipt_bill_qwer-20180307-83.pdf b/public/receipts/receipt_bill_qwer-20180307-83.pdf new file mode 100644 index 00000000..ebac5da2 --- /dev/null +++ b/public/receipts/receipt_bill_qwer-20180307-83.pdf @@ -0,0 +1,455 @@ +%PDF-1.3 +%ÿÿÿÿ +1 0 obj +<< /Creator +/Producer +>> +endobj +2 0 obj +<< /Type /Catalog +/Pages 3 0 R +>> +endobj +3 0 obj +<< /Type /Pages +/Count 1 +/Kids [5 0 R] +>> +endobj +4 0 obj +<< /Length 4003 +>> +stream +q + +BT +48.975 1417.82 Td +/F1.0 10 Tf +[<4f53414b41204f4853484f2854> 120 <616d77> 10 <6529>] TJ +ET + + +BT +10.268 1402.696 Td +/F1.0 8 Tf +[<4e6f> 40 <2e203235362c204b> 50 <79> 20 <61696b6b6173616e20526f61642c2054> 120 <616d77> 10 <652054> 120 <6f> 15 <776e73686970> 35 <2c2059> 140 <616e676f6e>] TJ +ET + + +BT +71.904 1388.448 Td +/F1.0 8 Tf +[<54> 120 <656c3a2030392d323538363736363131>] TJ +ET + +0.0 1379.944 m +210.0 1379.944 l +S +0.0 1379.944 m +210.0 1379.944 l +S + +BT +0.0 1367.2 Td +/F1.0 8 Tf +[<52656365697074204e6f3a207177> 10 <65722d32303138303330372d3833>] TJ +ET + + +BT +0.0 1347.2 Td +/F1.0 8 Tf +[<54> 120 <6162> 20 <6c65202d207431>] TJ +ET + + +BT +100.0 1347.2 Td +/F1.0 8 Tf +[<573a2043617368696572>] TJ +ET + + +BT +160.216 1347.2 Td +/F1.0 8 Tf +[<433a2043617368696572>] TJ +ET + + +BT +0.0 1327.2 Td +/F1.0 8 Tf +[<44617465203a2030372d30332d323031382830363a313720504d2d30363a313720504d29>] TJ +ET + +0.0 1312.944 m +210.0 1312.944 l +S + +BT +0.0 1302.2 Td +/F1.0 8 Tf +[<4974656d73>] TJ +ET + + +BT +106.656 1302.2 Td +/F1.0 8 Tf +[<5072> -15 <696365>] TJ +ET + + +BT +138.276 1302.2 Td +/F1.0 8 Tf +[<517479>] TJ +ET + + +BT +187.176 1302.2 Td +/F1.0 8 Tf +[<54> 120 <6f74616c>] TJ +ET + +0.0 1292.944 m +210.0 1292.944 l +S + +BT +0.0 1282.2 Td +/F1.0 8 Tf +[<746573745f6974656d31202d>] TJ +ET + + +BT +0.0 1272.952 Td +/F1.0 8 Tf +[<74657374315f736d616c6c>] TJ +ET + + +BT +98.312 1282.2 Td +/F1.0 8 Tf +[<312c3030302e30>] TJ +ET + + +BT +138.94 1282.2 Td +/F1.0 8 Tf +[<312e30>] TJ +ET + + +BT +177.312 1282.2 Td +/F1.0 8 Tf +[<312c3030302e30>] TJ +ET + +0.0 1264.448 m +210.0 1264.448 l +S + +BT +0.0 1253.704 Td +/F1.0 8 Tf +[<5375622054> 120 <6f74616c>] TJ +ET + + +BT +175.312 1253.704 Td +/F1.0 8 Tf +[<312c3030302e30>] TJ +ET + + +BT +0.0 1239.456 Td +/F1.0 8 Tf +[<4f76> 25 <6572> 10 <616c6c20446973636f756e743a>] TJ +ET + + +BT +181.104 1239.456 Td +/F1.0 8 Tf +[<2820302e302029>] TJ +ET + + +BT +0.0 1225.208 Td +/F1.0 8 Tf +[<536572> -30 <76696365204368617267657320282031302529>] TJ +ET + + +BT +181.984 1225.208 Td +/F1.0 8 Tf +[<3130302e30>] TJ +ET + + +BT +0.0 1210.96 Td +/F1.0 8 Tf +[<436f6d6d65726369616c2054> 120 <6178202820352529>] TJ +ET + + +BT +186.432 1210.96 Td +/F1.0 8 Tf +[<35302e30>] TJ +ET + + +BT +0.0 1195.276 Td +/F2.0 10 Tf +[<4772616e642054> 80 <6f74616c>] TJ +ET + + +BT +168.64 1195.276 Td +/F2.0 10 Tf +[<312c3135302e30>] TJ +ET + +0.0 1185.556 m +210.0 1185.556 l +S + +BT +0.0 1174.812 Td +/F1.0 8 Tf +[<436173682050> 40 <61> 30 <796d656e74>] TJ +ET + + +BT +175.312 1174.812 Td +/F1.0 8 Tf +[<312c3135302e30>] TJ +ET + + +BT +0.0 1160.564 Td +/F1.0 8 Tf +[<4368616e676520416d6f756e74>] TJ +ET + + +BT +190.88 1160.564 Td +/F1.0 8 Tf +[<302e30>] TJ +ET + + +BT +0.0 1141.316 Td +/F1.0 8 Tf +[<437573746f6d6572204e616d65>] TJ +ET + + +BT +169.064 1141.316 Td +/F1.0 8 Tf +[<57> 50 <414c4b2d494e>] TJ +ET + +0.0 1132.812 m +210.0 1132.812 l +S + +BT +0.0 1122.068 Td +/F1.0 8 Tf +[<54> 120 <6f74616c2046> 30 <6f6f6420446973636f756e7473>] TJ +ET + + +BT +185.552 1122.068 Td +/F1.0 8 Tf +[<28302e3029>] TJ +ET + + +BT +0.0 1112.82 Td +/F1.0 8 Tf +[<54> 120 <6f74616c204265> 30 <76> 25 <6572> 10 <61676520446973636f756e7473>] TJ +ET + + +BT +185.552 1112.82 Td +/F1.0 8 Tf +[<28302e3029>] TJ +ET + + +BT +0.0 1103.572 Td +/F1.0 8 Tf +[<54> 120 <6f74616c2050726f6475637420446973636f756e7473>] TJ +ET + + +BT +185.552 1103.572 Td +/F1.0 8 Tf +[<28302e3029>] TJ +ET + +0.0 1095.068 m +210.0 1095.068 l +S + +BT +0.0 1084.324 Td +/F1.0 8 Tf +[<46> 30 <6f6f64>] TJ +ET + + +BT +175.312 1084.324 Td +/F1.0 8 Tf +[<312c3030302e30>] TJ +ET + + +BT +0.0 1075.076 Td +/F1.0 8 Tf +[<4265> 30 <76> 25 <6572> 10 <616765>] TJ +ET + + +BT +190.88 1075.076 Td +/F1.0 8 Tf +[<302e30>] TJ +ET + + +BT +0.0 1065.828 Td +/F1.0 8 Tf +[<50726f64756374>] TJ +ET + + +BT +190.88 1065.828 Td +/F1.0 8 Tf +[<302e30>] TJ +ET + +0.0 1057.324 m +210.0 1057.324 l +S + +BT +0.0 1045.862 Td +/F1.0 9 Tf +[<53706c69742042696c6c2066> 30 <6f72203020706572736f6e73>] TJ +ET + + +BT +0.0 1031.58 Td +/F1.0 8 Tf +[<416d6f756e7420447565202870657220706572736f6e29>] TJ +ET + + +BT +193.104 1031.58 Td +/F1.0 8 Tf +[<496e66>] TJ +ET + +0.0 1023.076 m +210.0 1023.076 l +S + +BT +0.0 1010.896 Td +/F2.0 10 Tf +[<50> 30 <616964>] TJ +ET + + +BT +102.0 1012.332 Td +/F1.0 8 Tf +[<5468616e6b2059> 140 <6f7521205365652079> 20 <6f7520416761696e>] TJ +ET + +Q + +endstream +endobj +5 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 210 1450] +/CropBox [0 0 210 1450] +/BleedBox [0 0 210 1450] +/TrimBox [0 0 210 1450] +/ArtBox [0 0 210 1450] +/Contents 4 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << /F1.0 6 0 R +/F2.0 7 0 R +>> +>> +>> +endobj +6 0 obj +<< /Type /Font +/Subtype /Type1 +/BaseFont /Helvetica +/Encoding /WinAnsiEncoding +>> +endobj +7 0 obj +<< /Type /Font +/Subtype /Type1 +/BaseFont /Helvetica-Bold +/Encoding /WinAnsiEncoding +>> +endobj +xref +0 8 +0000000000 65535 f +0000000015 00000 n +0000000109 00000 n +0000000158 00000 n +0000000215 00000 n +0000004270 00000 n +0000004553 00000 n +0000004650 00000 n +trailer +<< /Size 8 +/Root 2 0 R +/Info 1 0 R +>> +startxref +4752 +%%EOF From 28c23bb50d06cb0f86dc444cc214545aba98712b Mon Sep 17 00:00:00 2001 From: Yan Date: Thu, 15 Mar 2018 11:16:31 +0630 Subject: [PATCH 2/7] check bill --- app/pdf/receipt_bill_pdf.rb | 218 ++++++++++++++++++------------------ 1 file changed, 108 insertions(+), 110 deletions(-) diff --git a/app/pdf/receipt_bill_pdf.rb b/app/pdf/receipt_bill_pdf.rb index efc85c7f..6b8b33af 100755 --- a/app/pdf/receipt_bill_pdf.rb +++ b/app/pdf/receipt_bill_pdf.rb @@ -1,111 +1,113 @@ class ReceiptBillPdf < Prawn::Document - include ActionView::Helpers::NumberHelper + include ActionView::Helpers::NumberHelper - attr_accessor :label_width,:price_column_width,:page_width, :page_height, :margin, :price_width, :item_width, :header_font_size, :item_font_size,:item_height,:qty_width,:total_width,:item_description_width, :description_width, :price_num_width, :line_move - def initialize(printer_settings, sale_items, sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info = nil,rebate_amount = nil,shop_details, printed_status,current_balance,card_data) - self.page_width = printer_settings.page_width - self.page_height = printer_settings.page_height - self.margin = 0 - self.price_width = 60 - self.qty_width = 25 - self.total_width = 60 - self.item_width = self.page_width - ((self.qty_width + self.price_width + self.total_width)) - self.item_height = 15 - self.item_description_width = (self.page_width-5) / 2 - self.label_width = 100 + attr_accessor :label_width,:price_column_width,:page_width, :page_height, :margin, :price_width, :item_width, :header_font_size, :item_font_size,:item_height,:qty_width,:total_width,:item_description_width, :description_width, :price_num_width, :line_move + + def initialize(printer_settings, sale_items, sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info = nil,rebate_amount = nil,shop_details, printed_status,current_balance,card_data) + self.page_width = printer_settings.page_width + self.page_height = printer_settings.page_height + self.margin = 0 + self.price_width = 60 + self.qty_width = 25 + self.total_width = 60 + self.item_width = self.page_width - ((self.qty_width + self.price_width + self.total_width)) + self.item_height = 15 + self.item_description_width = (self.page_width-5) / 2 + self.label_width = 100 - self.description_width = 150 - self.price_num_width = 50 - self.line_move = 2 - # @item_width = self.page_width.to_i / 2 - # @qty_width = @item_width.to_i / 3 - # @double = @qty_width * 1.3 - # @half_qty = @qty_width / 2 - #setting page margin and width - super(:margin => [printer_settings.heading_space, self.margin, self.margin, self.margin], :page_size => [self.page_width, self.page_height]) + self.description_width = 150 + self.price_num_width = 50 + self.line_move = 2 + # @item_width = self.page_width.to_i / 2 + # @qty_width = @item_width.to_i / 3 + # @double = @qty_width * 1.3 + # @half_qty = @qty_width / 2 + #setting page margin and width + super(:margin => [printer_settings.heading_space, self.margin, self.margin, self.margin]) - #precision checked - if printer_settings.precision.to_i > 2 - printer_settings.precision = 2 + #precision checked + if printer_settings.precision.to_i > 2 + printer_settings.precision = 2 + end + + # db font setup + if printer_settings.font != "" + font_families.update("#{printer_settings.font}" => { + :normal => "public/fonts/#{printer_settings.font}.ttf", + :italic => "public/fonts/#{printer_settings.font}.ttf", + :bold => "public/fonts/#{printer_settings.font}.ttf", + :bold_italic => "public/fonts/#{printer_settings.font}.ttf" + }) + + font "#{printer_settings.font}" + fallback_fonts ["Courier", "Helvetica", "Times-Roman"] + end + # font "public/fonts/Zawgyi-One.ttf" + # font "public/fonts/padauk.ttf" + self.header_font_size = 10 + self.item_font_size = 8 + + if printer_settings.delimiter + delimiter = "," + else + delimiter = "" + end + + header(shop_details) + + stroke_horizontal_rule + + cashier_info(sale_data, customer_name) + line_items(sale_items,printer_settings.precision,delimiter) + all_total(sale_data,printer_settings.precision,delimiter) + + + if member_info != nil + member_info(member_info,customer_name,rebate_amount,sale_data,printer_settings.precision,delimiter,current_balance) + end + + customer(customer_name) + + #start card sale trans data + if card_data != nil + card_sale_data(card_data) + end + #end card sale trans data + + if discount_price_by_accounts.length > 0 && shop_details.show_account_info + discount_account(discount_price_by_accounts,printer_settings.precision,delimiter) + end + + if shop_details.show_account_info + items_account(item_price_by_accounts,printer_settings.precision,delimiter) + end + + #start for individual payment + if !sale_data.equal_persons.nil? + individual_payment(sale_data, printer_settings.precision, delimiter) + end + #end for individual payment + + sign(sale_data) + + footer(printed_status) end - # db font setup - if printer_settings.font != "" - font_families.update("#{printer_settings.font}" => { - :normal => "public/fonts/#{printer_settings.font}.ttf", - :italic => "public/fonts/#{printer_settings.font}.ttf", - :bold => "public/fonts/#{printer_settings.font}.ttf", - :bold_italic => "public/fonts/#{printer_settings.font}.ttf" - }) - - font "#{printer_settings.font}" - fallback_fonts ["Courier", "Helvetica", "Times-Roman"] - end - # font "public/fonts/Zawgyi-One.ttf" - # font "public/fonts/padauk.ttf" - self.header_font_size = 10 - self.item_font_size = 8 - - if printer_settings.delimiter - delimiter = "," - else - delimiter = "" - end - - header(shop_details) - - stroke_horizontal_rule - - cashier_info(sale_data, customer_name) - line_items(sale_items,printer_settings.precision,delimiter) - all_total(sale_data,printer_settings.precision,delimiter) - - - if member_info != nil - member_info(member_info,customer_name,rebate_amount,sale_data,printer_settings.precision,delimiter,current_balance) - end - - customer(customer_name) - - #start card sale trans data - if card_data != nil - card_sale_data(card_data) - end - #end card sale trans data - - if discount_price_by_accounts.length > 0 && shop_details.show_account_info - discount_account(discount_price_by_accounts,printer_settings.precision,delimiter) - end - - if shop_details.show_account_info - items_account(item_price_by_accounts,printer_settings.precision,delimiter) - end - - #start for individual payment - if !sale_data.equal_persons.nil? - individual_payment(sale_data, printer_settings.precision, delimiter) - end - #end for individual payment - - sign(sale_data) - - footer(printed_status) - end - - def header (shop_details) - text "#{shop_details.name}", :left_margin => -10, :size => self.header_font_size,:align => :center - move_down line_move - text "#{shop_details.address}", :size => self.item_font_size,:align => :center - # move_down self.item_height - move_down line_move - text "#{shop_details.phone_no}", :size => self.item_font_size,:align => :center - move_down line_move - - stroke_horizontal_rule - end - - def cashier_info(sale_data, customer_name) + def header (shop_details) + text "#{shop_details.name}", :left_margin => -10, :size => self.header_font_size,:align => :center move_down line_move + text "#{shop_details.address}", :size => self.item_font_size,:align => :center + # move_down self.item_height + move_down line_move + text "#{shop_details.phone_no}", :size => self.item_font_size,:align => :center + move_down line_move + + stroke_horizontal_rule + end + + def cashier_info(sale_data, customer_name) + move_down line_move + # move_down 2 y_position = cursor bounding_box([0,y_position], :width =>self.description_width + self.price_num_width, :height => self.item_height) do @@ -117,7 +119,7 @@ class ReceiptBillPdf < Prawn::Document text "#{ sale_data.bookings[0].dining_facility.type } - #{ sale_data.bookings[0].dining_facility.name }" , :size => self.item_font_size,:align => :right end end - + move_down line_move y_position = cursor @@ -141,12 +143,11 @@ class ReceiptBillPdf < Prawn::Document else time = sale_data.receipt_date.strftime('%d-%m-%Y %H:%M %p') end - + bounding_box([0,y_position], :width =>self.page_width - 10, :height => self.item_height) do text "Date : #{ time }",:size => self.item_font_size,:align => :left end - # bounding_box([self.item_description_width,y_position], :width =>self.label_width+5) do # text "(#{ sale_data.bookings[0].checkin_at.utc.getlocal.strftime('%I:%M %p') } # - #{ sale_data.bookings[0].checkin_at.utc.getlocal.strftime('%I:%M %p') })" , @@ -155,7 +156,7 @@ class ReceiptBillPdf < Prawn::Document move_down line_move stroke_horizontal_rule - end + end def line_items(sale_items,precision,delimiter) if precision.to_i > 0 @@ -250,7 +251,6 @@ class ReceiptBillPdf < Prawn::Document end def all_total(sale_data,precision,delimiter) - move_down line_move item_name_width = self.item_width y_position = cursor @@ -316,8 +316,7 @@ class ReceiptBillPdf < Prawn::Document end move_down line_move - sale_payment(sale_data,precision,delimiter) - + sale_payment(sale_data,precision,delimiter) end def sale_payment(sale_data,precision,delimiter) @@ -548,8 +547,7 @@ class ReceiptBillPdf < Prawn::Document text "Acknowledged By" , :size => self.item_font_size,:align => :center end end - - + end def footer(printed_status) From c982da42648c3eabb144fdfd5ae524e20658b51f Mon Sep 17 00:00:00 2001 From: Yan Date: Thu, 15 Mar 2018 18:56:29 +0630 Subject: [PATCH 3/7] add printer brand and api and type --- app/controllers/origami/payments_controller.rb | 11 ++++++++++- app/controllers/print_settings_controller.rb | 13 ++++++++++++- app/models/print_setting.rb | 2 +- app/models/printer/printer_worker.rb | 5 +++++ app/models/printer/receipt_printer.rb | 10 +++++----- app/pdf/receipt_bill_pdf.rb | 15 ++++----------- app/views/origami/home/show.html.erb | 4 +++- app/views/print_settings/_form.html.erb | 18 ++++++++++++++++++ .../_print_setting.json.jbuilder | 2 +- app/views/print_settings/show.html.erb | 8 ++++++++ config/routes.rb | 2 ++ .../20170628103624_create_print_settings.rb | 2 +- 12 files changed, 70 insertions(+), 22 deletions(-) diff --git a/app/controllers/origami/payments_controller.rb b/app/controllers/origami/payments_controller.rb index c764b92f..fc07f966 100755 --- a/app/controllers/origami/payments_controller.rb +++ b/app/controllers/origami/payments_controller.rb @@ -79,7 +79,16 @@ class Origami::PaymentsController < BaseOrigamiController printer = Printer::ReceiptPrinter.new(print_settings) - printer.print_receipt_bill(print_settings,cashier_terminal,sale_items,sale_data,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info, shop_details, "Frt",current_balance,nil) + filename, receipt_no, cashier_printer = printer.print_receipt_bill(print_settings,cashier_terminal,sale_items,sale_data,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info, shop_details, "Frt",current_balance,nil) + + result = { + :filepath => filename, + :printer_model => print_settings.brand_name, + :printer_url => print_settings.api_settings + } + + # Mobile Print + render :json => result.to_json end end diff --git a/app/controllers/print_settings_controller.rb b/app/controllers/print_settings_controller.rb index 710e6ea4..f12778af 100755 --- a/app/controllers/print_settings_controller.rb +++ b/app/controllers/print_settings_controller.rb @@ -64,6 +64,17 @@ class PrintSettingsController < ApplicationController end end + def get_printer_options + printer_name = params[:printer_name] + printer_options = Printer::PrinterWorker.printer_options(printer_name) + options = { + :url => printer_options['device-uri'], + :model => printer_options['printer-info'], + } + + render :json => options.to_json + end + private # Use callbacks to share common setup or constraints between actions. def set_print_setting @@ -72,7 +83,7 @@ class PrintSettingsController < ApplicationController # Never trust parameters from the scary internet, only allow the white list through. def print_setting_params - params.require(:print_setting).permit(:name, :unique_code, :template, :printer_name, :font, :api_settings, :page_width, :page_height, :print_copies,:precision,:delimiter,:heading_space) + params.require(:print_setting).permit(:name, :unique_code, :template, :printer_name, :brand_name, :printer_type, :font, :api_settings, :page_width, :page_height, :print_copies,:precision,:delimiter,:heading_space) end #Shop Name in Navbor diff --git a/app/models/print_setting.rb b/app/models/print_setting.rb index d28b852b..a3cfc597 100755 --- a/app/models/print_setting.rb +++ b/app/models/print_setting.rb @@ -1,6 +1,6 @@ class PrintSetting < ApplicationRecord # validations - validates_presence_of :name, :unique_code, :printer_name, :page_width, :page_height, :print_copies + validates_presence_of :name, :unique_code, :printer_name, :brand_name, :api_settings, :page_width, :page_height, :print_copies def self.get_precision_delimiter PrintSetting.find_by_unique_code("ReceiptBillPdf") diff --git a/app/models/printer/printer_worker.rb b/app/models/printer/printer_worker.rb index c0485187..2924853e 100755 --- a/app/models/printer/printer_worker.rb +++ b/app/models/printer/printer_worker.rb @@ -24,6 +24,11 @@ class Printer::PrinterWorker end end + # Options from printer name + def self.printer_options(printer_name) + Cups.options_for(printer_name) + end + def self.printers() Cups.show_destinations end diff --git a/app/models/printer/receipt_printer.rb b/app/models/printer/receipt_printer.rb index d544c908..597f264a 100755 --- a/app/models/printer/receipt_printer.rb +++ b/app/models/printer/receipt_printer.rb @@ -176,7 +176,7 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker def print_receipt_bill(printer_settings,cashier_terminal,sale_items,sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info = nil,rebate_amount=nil,shop_details, printed_status,balance,card_data) #Use CUPS service #Generate PDF - #Print + #Print pdf = ReceiptBillPdf.new(printer_settings, sale_items, sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details,printed_status,balance,card_data) receipt_bill_a5_pdf = Lookup.collection_of("print_settings") #print_settings with name:ReceiptBillA5Pdf if !receipt_bill_a5_pdf.empty? @@ -202,14 +202,14 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker begin if count == 1 - filename = "/receipts/receipt_bill_#{sale_data.receipt_no}.pdf" - pdf.render_file directory_name + "/receipt_bill_#{sale_data.receipt_no}.pdf" + filename = directory_name + "/receipt_bill_#{sale_data.receipt_no}.pdf" + pdf.render_file filename if printed_status != 'Paid' self.print(directory_name + "/receipt_bill_#{sale_data.receipt_no}.pdf", cashier_terminal.printer_name) end else - filename = "/receipts/receipt_bill_#{sale_data.receipt_no}_#{count}.pdf" - pdf.render_file directory_name + "/receipt_bill_#{sale_data.receipt_no}_#{count}.pdf" + filename = directory_name + "/receipt_bill_#{sale_data.receipt_no}_#{count}.pdf" + pdf.render_file filename if printed_status != 'Paid' self.print(directory_name + "/receipt_bill_#{sale_data.receipt_no}_#{count}.pdf", cashier_terminal.printer_name) end diff --git a/app/pdf/receipt_bill_pdf.rb b/app/pdf/receipt_bill_pdf.rb index 9926e423..c0299033 100755 --- a/app/pdf/receipt_bill_pdf.rb +++ b/app/pdf/receipt_bill_pdf.rb @@ -23,7 +23,7 @@ class ReceiptBillPdf < Prawn::Document # @double = @qty_width * 1.3 # @half_qty = @qty_width / 2 #setting page margin and width - super(:margin => [printer_settings.heading_space, self.margin, self.margin, self.margin]) + super(:margin => [printer_settings.heading_space, self.margin, self.margin, self.margin], :page_size => [self.page_width, self.page_height]) #precision checked if printer_settings.precision.to_i > 2 @@ -121,15 +121,8 @@ class ReceiptBillPdf < Prawn::Document end move_down line_move - y_position = cursor - if sale_data.bookings[0].dining_facility_id.to_i > 0 - bounding_box([0,y_position], :width => self.label_width, :height => self.item_height) do - text "#{ sale_data.bookings[0].dining_facility.type } - #{ sale_data.bookings[0].dining_facility.name }" , :size => self.item_font_size,:align => :left - end - end - - bounding_box([self.label_width, y_position], :width =>self.label_width, :height => self.item_height) do + bounding_box([0, y_position], :width =>self.label_width, :height => self.item_height) do text "W: #{sale_data.requested_by}" , :size => self.item_font_size, :align => :left end bounding_box([self.label_width - 2,y_position], :width =>self.label_width, :height => self.item_height) do @@ -493,8 +486,8 @@ class ReceiptBillPdf < Prawn::Document end #individual payment per person - def individual_payment(sale_data, precision, delimiter) - per_person = sale_data.grand_total.to_i / sale_data.equal_persons.to_i + def individual_payment(sale_data, survey, precision, delimiter) + per_person = sale_data.grand_total.to_f / survey.total_customer.to_i stroke_horizontal_rule move_down line_move y_position = cursor diff --git a/app/views/origami/home/show.html.erb b/app/views/origami/home/show.html.erb index 8c2e58bc..5f0245a9 100755 --- a/app/views/origami/home/show.html.erb +++ b/app/views/origami/home/show.html.erb @@ -689,7 +689,9 @@ receipt_no = ($("#receipt_no").html()).trim(); if((receipt_no!=undefined) && (receipt_no!="")) createReceiptNoInFirstBillData(receipt_no,""); - + + // console.log(result); + code2lab.printBill(result.filepath, result.printer_model, result.printer_url); location.reload(); } }); diff --git a/app/views/print_settings/_form.html.erb b/app/views/print_settings/_form.html.erb index b8804dcc..bec1b931 100755 --- a/app/views/print_settings/_form.html.erb +++ b/app/views/print_settings/_form.html.erb @@ -12,6 +12,8 @@ <%= f.input :template %> <%= f.input :font %> <%= f.input :printer_name, :as => :select, :collection => Printer::PrinterWorker.printers, include_blank: false %> + <%= f.input :brand_name %> + <%= f.input :printer_type %> <%= f.input :api_settings %> <%= f.input :page_width %> <%= f.input :page_height %> @@ -61,6 +63,22 @@ diff --git a/app/views/origami/payments/show.html.erb b/app/views/origami/payments/show.html.erb index 2deb9c0c..84ff842d 100755 --- a/app/views/origami/payments/show.html.erb +++ b/app/views/origami/payments/show.html.erb @@ -265,6 +265,20 @@
<%= number_with_precision(0, precision: precision.to_i ) %>
<% end %> + + <% if @junctionpaycount != 0.0 %> +
+
+
JUNCTION PAY
+
<%= number_with_precision(@junctionpaycount, precision: precision.to_i ) rescue number_with_precision(0, precision: precision.to_i ) %>
+
+ <% else %> + + <% end %>
Balance
<%= number_with_precision(@sale_data.grand_total, precision: precision.to_i ) rescue number_with_precision(0, precision: precision.to_i ) %>
@@ -488,10 +502,7 @@ var customer_name = "<%= @customer.name %>"; payment_type = ''; if ($("#server_mode").val() != "cloud") { // first bill not used in cloud - console.log("ssssssssssss") payment_type = checkReceiptNoInFirstBillData(receipt_no,"payment"); - console.log(member_id); - console.log(member_discount); if (member_id && member_discount) { if(parseInt(jQuery.inArray("Credit", payment_type)) == -1){ $("#credit_payment").hide(); @@ -562,6 +573,9 @@ var customer_name = "<%= @customer.name %>"; else if(payment_type == "UNIONPAY" && $('#unionpaycount').text()==0 && sub_total != 0.0){ swal("Oops","Please Pay with UNIONPAY Payment","warning"); } + else if(payment_type == "JUNCTIONPAY" && $('#junctionpaycount').text()==0 && sub_total != 0.0){ + swal("Oops","Please Pay with JUNCTIONPAY Payment","warning"); + } else if(payment_type == "Credit" && $('#credit').text()==0 && sub_total != 0.0){ swal("Oops","Please Pay with Credit Payment","warning"); }else{ @@ -837,6 +851,7 @@ var customer_name = "<%= @customer.name %>"; var jcb1 = $('#jcbcount').text(); var master1 = $('#mastercount').text(); var unionpay1 = $('#unionpaycount').text(); + var junctionpay1 = $('#junctionpaycount').text(); var othertotal = parseFloat(credit1) + parseFloat(card1) + parseFloat(paypar1) + parseFloat(visa1) + parseFloat(jcb1) + parseFloat(master1) + parseFloat(unionpay1); var total = $('#amount_due').text(); var amt = 0; @@ -865,6 +880,7 @@ var customer_name = "<%= @customer.name %>"; var jcb = $('#jcbcount').text(); var master = $('#mastercount').text(); var unionpay = $('#unionpaycount').text(); + var junctionpay = $('#junctionpaycount').text(); var amount_due = $('#amount_due').text(); var total = parseFloat(cash) + parseFloat(credit) + parseFloat(card) + parseFloat(paypar) + parseFloat(visa) + parseFloat(jcb) + parseFloat(master) + parseFloat(unionpay) var result = parseFloat(amount_due) - parseFloat(total); diff --git a/config/routes.rb b/config/routes.rb index 21395c32..57cd404f 100755 --- a/config/routes.rb +++ b/config/routes.rb @@ -177,6 +177,7 @@ scope "(:locale)", locale: /en|mm/ do post 'payment/master' => "master#create" post 'payment/visa' => "visa#create" post 'payment/unionpay' => "unionpay#create" + post 'payment/junctionpay' => "junction_pay#create" post 'payment/paypar' => 'paypar_payments#create' post 'payment/credit' => 'credit_payments#create' post 'payment/voucher' => 'voucher_payments#create' @@ -188,6 +189,7 @@ scope "(:locale)", locale: /en|mm/ do get 'sale/:sale_id/:type/payment/others_payment/Master' => "master#index" get 'sale/:sale_id/:type/payment/others_payment/JCB' => "jcb#index" get 'sale/:sale_id/:type/payment/others_payment/UNIONPAY' => "unionpay#index" + get 'sale/:sale_id/:type/payment/others_payment/JUNCTIONPAY' => "junction_pay#index" get 'sale/:sale_id/:type/payment/others_payment/Redeem' => "redeem_payments#index" get 'sale/:sale_id/:type/payment/others_payment/Voucher' => "voucher#index" From 259778a8919f32ac54ceeeea2beb5aa311913154 Mon Sep 17 00:00:00 2001 From: Yan Date: Mon, 19 Mar 2018 14:38:55 +0630 Subject: [PATCH 5/7] add junctionpay(vaap) --- .../origami/junction_pay_controller.rb | 16 +++- .../origami/payments_controller.rb | 4 +- app/models/sale_payment.rb | 3 +- app/views/origami/junction_pay/index.html.erb | 91 ++++++++++++++----- app/views/origami/payments/show.html.erb | 6 +- 5 files changed, 87 insertions(+), 33 deletions(-) diff --git a/app/controllers/origami/junction_pay_controller.rb b/app/controllers/origami/junction_pay_controller.rb index c02461aa..1c52a271 100644 --- a/app/controllers/origami/junction_pay_controller.rb +++ b/app/controllers/origami/junction_pay_controller.rb @@ -36,8 +36,20 @@ class Origami::JunctionPayController < BaseOrigamiController end def create - cash = params[:amount] + gift_amount = params[:gift_amount] + voucher_amount = params[:voucher_amount] + voucher_no = params[:voucher_no] sale_id = params[:sale_id] + + # Gift card or Voucher classified and add for payment_reference + remarks = '' + cash = (gift_amount.to_f + voucher_amount.to_f) + if gift_amount.to_f > 0 + remarks = "Junciton Gift Card Payment. RefNo-" + voucher_no + else + remarks = "Junciton Voucher Payment. RefNo-" + voucher_no + end + if(Sale.exists?(sale_id)) saleObj = Sale.find(sale_id) shop_details = Shop::ShopDetail @@ -51,7 +63,7 @@ class Origami::JunctionPayController < BaseOrigamiController # saleObj = Sale.find(sale_id) sale_payment = SalePayment.new - @status, @sale = sale_payment.process_payment(saleObj, @user, cash, "JunctionPay") + @status, @sale = sale_payment.process_payment(saleObj, @user, cash, "JunctionPay", remarks) end end diff --git a/app/controllers/origami/payments_controller.rb b/app/controllers/origami/payments_controller.rb index 1b4bd5bb..4e0c7100 100755 --- a/app/controllers/origami/payments_controller.rb +++ b/app/controllers/origami/payments_controller.rb @@ -334,8 +334,8 @@ class Origami::PaymentsController < BaseOrigamiController @mastercount += spay.payment_amount elsif spay.payment_method == "unionpay" @unionpaycount += spay.payment_amount - elsif spay.payment_method == "junctionpay" - @unionpaycount += spay.payment_amount + elsif spay.payment_method == "JunctionPay" + @junctionpaycount += spay.payment_amount elsif spay.payment_method == "creditnote" @credit += spay.payment_amount end diff --git a/app/models/sale_payment.rb b/app/models/sale_payment.rb index c49f30a7..b82cbf18 100755 --- a/app/models/sale_payment.rb +++ b/app/models/sale_payment.rb @@ -11,6 +11,7 @@ class SalePayment < ApplicationRecord def process_payment(invoice, action_by, cash_amount, payment_method,remark=nil) self.sale = invoice self.received_amount = cash_amount + self.payment_reference = remark amount_due = invoice.grand_total #get all payment for this invoices @@ -305,7 +306,7 @@ class SalePayment < ApplicationRecord #Next time - validate if the vochure number is valid - within self.payment_method = "JunctionPay" self.payment_amount = self.received_amount - self.payment_reference = self.voucher_no + # self.payment_reference = self.payment_reference self.outstanding_amount = self.sale.grand_total- self.received_amount self.payment_status = "paid" payment_method = self.save! diff --git a/app/views/origami/junction_pay/index.html.erb b/app/views/origami/junction_pay/index.html.erb index 4e371f76..cdbdc47d 100755 --- a/app/views/origami/junction_pay/index.html.erb +++ b/app/views/origami/junction_pay/index.html.erb @@ -202,32 +202,48 @@ $('#junction_pay').on('click',function(){ //end member discount $("#loading_wrapper").show(); var com_port = '/dev/' + $("#com_port_name").val(); + var is_rebate=false; //alert(cashier_id + amount + com_port); - code2lab.reqJunctionPay(true, cashier_id, parseFloat(amount), receipt_no, com_port); - - resJunctionPayUpdate(function(totalBillAmount , finalBillAmt,giftCardAmount,voucherAmount,voucherNumber,receiptNumber){ + code2lab.reqJunctionPay(true, cashier_id, parseFloat(amount), receipt_no, com_port); + resJunctionPayUpdate = function(totalBillAmount , finalBillAmt,giftCardAmount, voucherAmount,voucherNumber,receiptNumber){ $("#loading_wrapper").hide(); - $.ajax({type: "POST", - url: "/origami/payment/junctionpay", - data: "amount="+ totalBillAmount + "&sale_id="+ sale_id, - success:function(result){ - if(result){ - swal({ - title: "Information!", - text: "Payment Successfully", - html: true, + + var voucher_no = voucherNumber; + if (voucher_no == ''){ + voucher_no = reference_no; + } + + $.ajax({ + type: "POST", + url: "<%= origami_payment_junctionpay_path %>", + data: "gift_amount="+ giftCardAmount + "&voucher_amount=" + voucherAmount + + "&voucher_no=" + voucher_no + "&sale_id="+ sale_id, + success:function(result){ + if(result){ + var desc = 'Payment Successfully'; + // is_rebate get from resJunctionPay and if member + if(is_rebate){ desc = desc + ". And You get Rebate!"} + + swal({ + title: "Information!", + text: desc, + html: true, closeOnConfirm: false, closeOnCancel: false, allowOutsideClick: false - }, function () { - window.location.href = '/origami/sale/'+ sale_id +"/"+cashier_type+"/payment"; - }); - } - } - }); - }) + }, function () { + window.location.href = '/origami/sale/'+ sale_id +"/"+cashier_type+"/payment"; + }); + } + } + }); + }; - // resJunctionPay(function(memberno,transactionNo,finalBillingAmt){ + resJunctionPay = function(memberno,transactionNo,finalBillingAmt){ + if(memberno != ''){ is_rebate = true; } + }; + + // $("#loading_wrapper").hide(); // $.ajax({type: "POST", // url: "/origami/payment/"+payment_type, @@ -249,11 +265,36 @@ $('#junction_pay').on('click',function(){ // }); // }); - resError(function(message){ - $("#loading_wrapper").hide(); - swal ( "Oops" , message , "error" ); - }); + // var resError = function(message){ + // console.log(message); + // $("#loading_wrapper").hide(); + // swal ( "Oops" , message , "error" ); + // }; } } -}) +}); + +// var resJunctionPayUpdate = function(totalBillAmount , finalBillAmt,giftCardAmount,voucherAmount, voucherNumber,receiptNumber){ +// $("#loading_wrapper").hide(); +// // alert(voucherNumber + ' ' + totalBillAmount + ' ' + receiptNumber + ' ' + giftCardAmount); +// $.ajax({ +// type: "POST", +// url: "<%= origami_payment_junctionpay_path %>", +// data: "amount="+ totalBillAmount + "&sale_id="+ sale_id, +// success:function(result){ +// if(result){ +// swal({ +// title: "Information!", +// text: "Payment Successfully", +// html: true, +// closeOnConfirm: false, +// closeOnCancel: false, +// allowOutsideClick: false +// }, function () { +// window.location.href = '/origami/sale/'+ sale_id +"/"+cashier_type+"/payment"; +// }); +// } +// } +// }); +// }; diff --git a/app/views/origami/payments/show.html.erb b/app/views/origami/payments/show.html.erb index 84ff842d..415a3ba2 100755 --- a/app/views/origami/payments/show.html.erb +++ b/app/views/origami/payments/show.html.erb @@ -510,7 +510,7 @@ var customer_name = "<%= @customer.name %>"; $("#credit_payment").show(); } - if(parseInt(jQuery.inArray("MPU", payment_type)) !=-1 || parseInt(jQuery.inArray("VISA", payment_type)) !=-1 || parseInt(jQuery.inArray("JCB", payment_type)) !=-1 || parseInt(jQuery.inArray("Master", payment_type)) !=-1 || parseInt(jQuery.inArray("UNIONPAY", payment_type)) !=-1 || parseInt(jQuery.inArray("Redeem", payment_type)) !=-1){ + if(parseInt(jQuery.inArray("MPU", payment_type)) !=-1 || parseInt(jQuery.inArray("VISA", payment_type)) !=-1 || parseInt(jQuery.inArray("JCB", payment_type)) !=-1 || parseInt(jQuery.inArray("Master", payment_type)) !=-1 || parseInt(jQuery.inArray("UNIONPAY", payment_type)) !=-1 || parseInt(jQuery.inArray("Redeem", payment_type)) !=-1 || parseInt(jQuery.inArray("JUNCTIONPAY", payment_type)) !=-1){ $("#card_payment").show(); } else{ $("#card_payment").hide(); @@ -852,7 +852,7 @@ var customer_name = "<%= @customer.name %>"; var master1 = $('#mastercount').text(); var unionpay1 = $('#unionpaycount').text(); var junctionpay1 = $('#junctionpaycount').text(); - var othertotal = parseFloat(credit1) + parseFloat(card1) + parseFloat(paypar1) + parseFloat(visa1) + parseFloat(jcb1) + parseFloat(master1) + parseFloat(unionpay1); + var othertotal = parseFloat(credit1) + parseFloat(card1) + parseFloat(paypar1) + parseFloat(visa1) + parseFloat(jcb1) + parseFloat(master1) + parseFloat(unionpay1) + parseFloat(junctionpay1); var total = $('#amount_due').text(); var amt = 0; <% if precision.to_i > 0 %>; @@ -882,7 +882,7 @@ var customer_name = "<%= @customer.name %>"; var unionpay = $('#unionpaycount').text(); var junctionpay = $('#junctionpaycount').text(); var amount_due = $('#amount_due').text(); - var total = parseFloat(cash) + parseFloat(credit) + parseFloat(card) + parseFloat(paypar) + parseFloat(visa) + parseFloat(jcb) + parseFloat(master) + parseFloat(unionpay) + var total = parseFloat(cash) + parseFloat(credit) + parseFloat(card) + parseFloat(paypar) + parseFloat(visa) + parseFloat(jcb) + parseFloat(master) + parseFloat(unionpay) + parseFloat(junctionpay) var result = parseFloat(amount_due) - parseFloat(total); <% if precision.to_i > 0 %> $('#balance').text(parseFloat(result).toFixed(<%= precision %>)); From ca817197d917b017674a20f310741be6b2dd8c03 Mon Sep 17 00:00:00 2001 From: Aung Myo Date: Mon, 19 Mar 2018 18:13:38 +0630 Subject: [PATCH 6/7] update menu import and export --- Gemfile | 5 +- Gemfile.lock | 18 +++- app/controllers/settings/menus_controller.rb | 11 +-- app/models/menu.rb | 42 ++++++++- app/views/settings/menus/index.html.erb | 5 +- app/views/settings/menus/index.xlsx.axlsx | 86 +++++++++++++++++++ config/application.rb | 2 + config/initializers/mime_types.rb | 1 + out.xls | Bin 0 -> 3584 bytes 9 files changed, 155 insertions(+), 15 deletions(-) create mode 100644 app/views/settings/menus/index.xlsx.axlsx create mode 100644 out.xls diff --git a/Gemfile b/Gemfile index 4ca47865..c20dec66 100755 --- a/Gemfile +++ b/Gemfile @@ -46,8 +46,11 @@ gem 'mini_magick' gem 'cups' gem 'prawn' gem 'prawn-table' -gem 'spreadsheet' gem 'to_xls-rails' +gem 'rubyzip', '= 1.0.0' +gem 'axlsx', '= 2.0.1' +gem 'axlsx_rails' +gem 'roo' #Reporting gem #gem 'compendium' #gem "cancan" diff --git a/Gemfile.lock b/Gemfile.lock index 1c7e6534..254ff760 100755 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -50,6 +50,13 @@ GEM airbrussh (1.3.0) sshkit (>= 1.6.1, != 1.7.0) arel (8.0.0) + axlsx (2.0.1) + htmlentities (~> 4.3.1) + nokogiri (>= 1.4.1) + rubyzip (~> 1.0.0) + axlsx_rails (0.5.1) + actionpack (>= 3.1) + axlsx (>= 2.0.1) bcrypt (3.1.11) bindex (0.5.0) builder (3.2.3) @@ -100,6 +107,7 @@ GEM railties (>= 3.2, < 5.2) globalid (0.4.1) activesupport (>= 4.2.0) + htmlentities (4.3.4) httparty (0.15.6) multi_xml (>= 0.5.2) i18n (0.9.1) @@ -197,6 +205,10 @@ GEM rb-inotify (0.9.10) ffi (>= 0.5.0, < 2) redis (3.3.5) + roo (1.13.2) + nokogiri + rubyzip + spreadsheet (> 0.6.4) rspec-core (3.7.0) rspec-support (~> 3.7.0) rspec-expectations (3.7.0) @@ -215,6 +227,7 @@ GEM rspec-support (~> 3.7.0) rspec-support (3.7.0) ruby-ole (1.2.12.1) + rubyzip (1.0.0) sass (3.5.3) sass-listen (~> 4.0.0) sass-listen (4.0.0) @@ -286,6 +299,8 @@ PLATFORMS DEPENDENCIES aescrypt + axlsx (= 2.0.1) + axlsx_rails bcrypt (~> 3.1.7) byebug cancancan (~> 1.10) @@ -320,13 +335,14 @@ DEPENDENCIES rack-cors rails (~> 5.1.0) redis (~> 3.0) + roo rspec-rails (~> 3.5) + rubyzip (= 1.0.0) sass-rails (~> 5.0) schema_to_scaffold shoulda-matchers (~> 3.1) sidekiq simple_form - spreadsheet spring spring-watcher-listen (~> 2.0.0) tether-rails diff --git a/app/controllers/settings/menus_controller.rb b/app/controllers/settings/menus_controller.rb index 0a6d87c7..8fed1e97 100755 --- a/app/controllers/settings/menus_controller.rb +++ b/app/controllers/settings/menus_controller.rb @@ -7,12 +7,9 @@ class Settings::MenusController < ApplicationController def index @settings_menus = Menu.all.page(params[:page]).per(10) respond_to do |format| - format.html - # format.csv { send_data MenuCsvExport.generate } - -format.csv { send_data Menu.to_csv } -# format.csv { send_data MenuCategory.to_csv } - end + format.html + format.xlsx + end end # GET /settings/menus/1 @@ -76,7 +73,7 @@ format.csv { send_data Menu.to_csv } def import Menu.import(params[:file]) - redirect_to settings_menu_path, notice: "imported" + redirect_to settings_menus_path, notice: "imported" end private diff --git a/app/models/menu.rb b/app/models/menu.rb index 12784eea..09e36928 100755 --- a/app/models/menu.rb +++ b/app/models/menu.rb @@ -1,4 +1,6 @@ class Menu < ApplicationRecord + + require 'spreadsheet' has_many :menu_categories, dependent: :destroy validates_presence_of :name, :valid_days, :valid_time_from, :valid_time_to @@ -34,7 +36,7 @@ class Menu < ApplicationRecord def self.to_csv m_attributes = %w{name is_active valid_days valid_time_from valid_time_to created_by created_at updated_at} - CSV.generate(headers: true) do |csv| + CSV.generate(headers: true, row_sep: "\r\n") do |csv| csv << m_attributes menu = Menu.all menu.each do |user| @@ -44,9 +46,41 @@ class Menu < ApplicationRecord end def self.import(file) - CSV.foreach(file.path, headers:true) do |row| - Menu.create! row.to_hash - end + spreadsheet = Roo::Spreadsheet.open(file.path) + puts spreadsheet.info + + spreadsheet = Roo::Excelx.new(file.path) + puts spreadsheet.info + + # Use the extension option if the extension is ambiguous. + spreadsheet = Roo::Spreadsheet.open(file.path, extension: :xlsx) + + puts spreadsheet.info + + header = spreadsheet.row(1) + + (2..spreadsheet.last_row).each do |i| + + row = Hash[[header,spreadsheet.row(i)].transpose] + + menu = Menu.new + menu.name = row["name"] + menu.is_active = row["is_active"] + menu.valid_days = row["valid_days"] + menu.valid_time_from = row["valid_time_from"] + menu.valid_time_to = row["valid_time_to"] + menu.created_by = row["created_by"] + menu.save + end + end + + def self.open_spreadsheet(file) + case File.extname(file.original_filename) + when ".csv" then Roo::CSV.new(file.path,nil,:ignore) + when ".xls" then Roo::Excel.new(file.path,nil,:ignore) + when ".xlsx" then Roo::Excelx.new(file.path,nil,:ignore) + else raise "Unknown File type: #{original_filename}" + end end end \ No newline at end of file diff --git a/app/views/settings/menus/index.html.erb b/app/views/settings/menus/index.html.erb index ed215031..11ae575f 100755 --- a/app/views/settings/menus/index.html.erb +++ b/app/views/settings/menus/index.html.erb @@ -7,11 +7,12 @@
- +<%end%> +<%= link_to "Export users as spreadsheet", settings_menus_path(format: "xlsx") %>


diff --git a/app/views/settings/menus/index.xlsx.axlsx b/app/views/settings/menus/index.xlsx.axlsx new file mode 100644 index 00000000..977e9782 --- /dev/null +++ b/app/views/settings/menus/index.xlsx.axlsx @@ -0,0 +1,86 @@ +wb = xlsx_package.workbook +wb.styles do |s| + date = s.add_style(:format_code => "yyyy-mm-dd", :border => Axlsx::STYLE_THIN_BORDER) + wrap_text = s.add_style :sz => 11, + :alignment => { :horizontal => :left,:vertical => :center , + :wrap_text => true} + header_text = s.add_style :fg_color=> "FFFFFF", + :b => true, + :bg_color => "004586", + :sz => 12, + :border => { :style => :thin, :color => "00" }, + :alignment => { :horizontal => :left, + :vertical => :center , + :header_text => true} + + wb.add_worksheet(name: "Menu") do |sheet| + sheet.add_row %w( name is_active valid_days valid_time_from valid_time_to created_by ), :style=>header_text + @settings_menus.each do |menu| + sheet.add_row [ menu.name, menu.is_active, menu.valid_days, menu.valid_time_from,menu.valid_time_to, menu.created_by], :style=>[date,wrap_text] + end + end + + wb.add_worksheet(name: "Menu Category") do |sheet| + sheet.add_row %w(menu_id code name alt_name order_by created_by menu_category_id is_available created_at updated_at), :style=>header_text + MenuCategory.all.each do |mc| + sheet.add_row [mc.menu_id, mc.code, mc.name, mc.alt_name, mc.order_by, mc.created_by, mc.menu_category_id, mc.is_available, mc.created_at, mc.updated_at], :style=>wrap_text + end + end + + wb.add_worksheet(name: "Menu Item") do |sheet| + sheet.add_row %w(item_code name alt_name image_path description information unit type menu_category_id item_attributes item_options account_id _qty taxable is_sub_item is_available created_by created_at updated_at), :style=>header_text + MenuItem.all.each do |mi| + sheet.add_row [mi.item_code, mi.name, mi.alt_name, mi.image_path, mi.description, mi.information, mi.unit, mi.type, mi.menu_category_id, mi.item_attributes, mi.item_options, mi.account_id, mi.min_qty, mi.taxable, mi.is_sub_item, mi.is_available, mi.created_by, mi.created_at, mi.updated_at], :style=>wrap_text + end + end + + wb.add_worksheet(name: "Menu Item Instance") do |sheet| + sheet.add_row %w(menu_item_id item_instance_code item_instance_name item_attributes price is_on_promotion promotion_price is_available is_default created_at updated_at), :style=>header_text + MenuItemInstance.all.each do |mii| + sheet.add_row [mii.menu_item_id, mii.item_instance_code, mii.item_instance_name, mii.item_attributes, mii.price, mii.is_on_promotion, mii.promotion_price, mii.is_available, mii.is_default, mii.created_at, mii.updated_at], :style=>wrap_text + end + end + + wb.add_worksheet(name: "Menu Options") do |sheet| + sheet.add_row %w(option_type name value created_at updated_at), :style=>header_text + MenuItemOption.all.each do |option| + sheet.add_row [option.option_type, option.name, option.value, option.created_at, option.updated_at], :style=>wrap_text + end + end + + wb.add_worksheet(name: "Item Attributes") do |sheet| + sheet.add_row %w(attribute_type name value created_at updated_at), :style=>header_text + MenuItemAttribute.all.each do |attr| + sheet.add_row [ attr.attribute_type,attr.name,attr.value,attr.created_at,attr.updated_at], :style=>wrap_text + end + end + + wb.add_worksheet(name: "Account") do |sheet| + sheet.add_row %w(title account_type discount point bonus rebate created_at updated_at), :style=>header_text + Account.all.each do |acc| + sheet.add_row [acc.title,acc.account_type,acc.discount,acc.point,acc.bonus,acc.rebate,acc.created_at,acc.updated_at], :style=>wrap_text + end + end + + wb.add_worksheet(name: "Item Set") do |sheet| + sheet.add_row %w(name alt_name min_selectable_qty max_selectable_qty created_at updated_at), :style=>header_text + ItemSet.all.each do |set| + sheet.add_row [set.name, set.alt_name, set.min_selectable_qty, set.max_selectable_qty, set.created_at, set.updated_at], :style=>wrap_text + end + end + + wb.add_worksheet(name: "Menu Instance Item Set") do |sheet| + sheet.add_row %w(item_set_id menu_item_instance_id created_at updated_at), :style=>header_text + MenuInstanceItemSet.all.each do |miis| + sheet.add_row [miis.item_set_id, miis.menu_item_instance_id, miis.created_at, miis.updated_at], :style=>wrap_text + end + end + + wb.add_worksheet(name: "Menu Item Set") do |sheet| + sheet.add_row %w(item_set_id menu_item_id created_at updated_at), :style=>header_text + MenuItemSet.all.each do |mis| + sheet.add_row [mis.item_set_id, mis.menu_item_id, mis.created_at, mis.updated_at], :style=>wrap_text + end + end + +end diff --git a/config/application.rb b/config/application.rb index e9a4e634..5e672414 100755 --- a/config/application.rb +++ b/config/application.rb @@ -2,6 +2,8 @@ require_relative 'boot' require 'csv' require 'rails/all' +require 'creek' +# require 'iconv' # Require the gems listed in Gemfile, including any gems # you've limited to :test, :development, or :production. diff --git a/config/initializers/mime_types.rb b/config/initializers/mime_types.rb index 3859c754..3e0fb279 100755 --- a/config/initializers/mime_types.rb +++ b/config/initializers/mime_types.rb @@ -3,3 +3,4 @@ # Add new mime types for use in respond_to blocks: # Mime::Type.register "text/richtext", :rtf Mime::Type.register 'application/vnd.ms-excel', :xls +Mime::Type.register "application/xlsx", :xlsx diff --git a/out.xls b/out.xls new file mode 100644 index 0000000000000000000000000000000000000000..ffe4b922dd3da5584007d3d2209613a7f913243e GIT binary patch literal 3584 zcmeHJy=xRv5dXc+UcA%G*Ckpg$P(}i(#SS~#53YyqZTKUQlhyK zGLV13Mhgqi&SD{ooz*D_mO(5v&)>}59x+^D1dAg(yYpt=yf^dS&b*m@?>DD9>o1Oe z#x6LI5p25xMt8^!`H{3g3Haniw(Xn~agInfgCX)jAb>V6UGaTQ*4;KJ@^M2m<&<-;B|M7!5d4QjH%b$Bp^BC?KzMva!o^EKq z_Zmrlm5_-+=ru8EEFCiKcAF%IwGK9nSSAuAoFDOVlp|t45rbSx9%0p+y2qT9uNhs%RK}(EiKC)=FTHpkPmV%Hk(JE3FQkQ}!IEKqwQCgkuP!*A?-?9qr<+5Qf8jB%>)&Kc>)v?Jeo8KQCA`$!OeI3snQ;ZKAa)Ej=gges7ok&5sln;~ez(de z`~0`^sU7^8KEG9#ugPFPd7z30pH)`e3RXy)SliR*A3@Hfzq{T6{44#E9DTwfS8t+@ z+q#c>SGb3kf2RKWvX6nPA2w$nzWHd7Qcg2_Gqm&QM%!{>oC{&I&;@z?NuMz-UB^uTWm^ Date: Mon, 19 Mar 2018 18:22:15 +0630 Subject: [PATCH 7/7] update addorder sytle --- app/assets/javascripts/addorder.js | 2 +- app/models/menu.rb | 2 -- config/application.rb | 1 - 3 files changed, 1 insertion(+), 4 deletions(-) diff --git a/app/assets/javascripts/addorder.js b/app/assets/javascripts/addorder.js index f6365db0..d3723026 100755 --- a/app/assets/javascripts/addorder.js +++ b/app/assets/javascripts/addorder.js @@ -196,7 +196,7 @@ $(function() { +add+ '' +'
' +'
' - +"