diff --git a/README.md b/README.md
index b5d2c62b..506ab0b6 100755
--- a/README.md
+++ b/README.md
@@ -132,12 +132,34 @@ ADD COLUMN image_path VARCHAR(255);
ALTER TABLE sales
ADD COLUMN equal_persons INT(11) after rebate_status;
+
+ALTER TABLE sale_items
+ADD COLUMN remark VARCHAR(255) after status;
+
+ALTER TABLE shops
+ADD COLUMN shop_code VARCHAR(255) after name,
+ADD COLUMN client_name VARCHAR(255) after shop_code,
+ADD COLUMN client_code VARCHAR(255) after client_name;
+
+ALTER TABLE print_settings
+ADD COLUMN brand_name VARCHAR(255) after api_settings,
+ADD COLUMN type VARCHAR(255) after brand_name;
+
+ALTER TABLE tax_profiles
+ADD COLUMN group_type VARCHAR(255) after name;
+
<---- Extra Fields Script ----->
For CloseCashierCustomisePdf in lookups
*** change CloseCashierPdf to CloseCashierCustomisePdf
1) settings/print_settings
2) settings/lookups => { type:print_settings, name: CloseCashierCustomisePdf, value:1 }
+/* Tax Profile Group Types in lookups */
+1) settings/lookups => { type:tax_profiles, name: Cashier, value:cashier }
+2) settings/lookups => { type:tax_profiles, name: Quick Service, value: quick_service }
+3) settings/lookups => { type:tax_profiles, name: Doemal, value: doemal }
+/* Tax Profile Group Types in lookups */
+
* ToDo list
1. Migration
diff --git a/app/controllers/oqs/edit_controller.rb b/app/controllers/oqs/edit_controller.rb
old mode 100755
new mode 100644
index b123ac73..94ba5842
--- a/app/controllers/oqs/edit_controller.rb
+++ b/app/controllers/oqs/edit_controller.rb
@@ -6,6 +6,11 @@ class Oqs::EditController < BaseOqsController
if params[:type] == 'oqs'
assigned_item = AssignedOrderItem.find(assigned_item_id)
@order_item = OrderItem.where("order_id='#{ assigned_item.order_id }' AND item_instance_code='#{ assigned_item.instance_code }'")
+ elsif
+ assigned_item = OrderItem.find(assigned_item_id)
+ @booking = Booking.joins(" JOIN booking_orders as bko on bko.booking_id = bookings.booking_id")
+ .where("bko.order_id = '#{assigned_item.order_id}'").first()
+ @order_item = OrderItem.where("order_id='#{ assigned_item.order_id }' AND item_instance_code='#{ assigned_item.item_instance_code }'")
else
assigned_item = OrderItem.find(assigned_item_id)
dining = DiningFacility.find_by_id(params[:type])
@@ -25,13 +30,6 @@ class Oqs::EditController < BaseOqsController
order_item.item_order_by = current_user.name
order_item.qty = qty_weight
order_item.remark = remarks
- if !order_item.set_menu_items.nil?
- instance_item_sets = JSON.parse(order_item.set_menu_items)
- instance_item_sets.each_with_index do |instance_item, instance_index|
- instance_item_sets[instance_index]["quantity"] = qty_weight
- end
- order_item.set_menu_items = instance_item_sets.to_json
- end
order_item.save
if ENV["SERVER_MODE"] != "cloud" #no print in cloud server
@@ -67,4 +65,9 @@ class Oqs::EditController < BaseOqsController
end
end
+ #Shop Name in Navbor
+ helper_method :shop_detail
+ def shop_detail
+ @shop = Shop.first
+ end
end
diff --git a/app/controllers/origami/junction_pay_controller.rb b/app/controllers/origami/junction_pay_controller.rb
new file mode 100644
index 00000000..1c52a271
--- /dev/null
+++ b/app/controllers/origami/junction_pay_controller.rb
@@ -0,0 +1,70 @@
+class Origami::JunctionPayController < BaseOrigamiController
+
+ def index
+ @sale_id = params[:sale_id]
+ @cashier_type = params[:type]
+ # limit jcb_amount
+ sale_data = Sale.find_by_sale_id(@sale_id)
+ total = sale_data.grand_total
+ @junction_pay_count = 0
+ others = 0
+ @cashier_id = current_user.emp_id
+
+ @payment_method_setting_nav = PaymentMethodSetting.all
+ @shop = Shop::ShopDetail
+ if @shop.is_rounding_adj
+ new_total = Sale.get_rounding_adjustment(sale_data.grand_total)
+ else
+ new_total = sale_data.grand_total
+ end
+ @rounding_adj = new_total-sale_data.grand_total
+
+ sale_data.sale_payments.each do |sale_payment|
+ if sale_payment.payment_method == "JunctionPay"
+ @junction_pay_count = @junction_pay_count + sale_payment.payment_amount
+ else
+ others = others + sale_payment.payment_amount
+ end
+ end
+ @can_junction_pay = total - @junction_pay_count - others
+
+ @member_discount = MembershipSetting.find_by_discount(1)
+ @sub_total = sale_data.total_amount
+ @membership_id = sale_data.customer.membership_id
+ #for bank integration
+ @receipt_no = sale_data.receipt_no
+ end
+
+ def create
+ 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
+
+ # rounding adjustment
+ # if shop_details.is_rounding_adj
+ # new_total = Sale.get_rounding_adjustment(saleObj.grand_total)
+ # rounding_adj = new_total-saleObj.grand_total
+ # saleObj.update_attributes(grand_total: new_total,old_grand_total: saleObj.grand_total,rounding_adjustment:rounding_adj)
+ # end
+
+ # saleObj = Sale.find(sale_id)
+ sale_payment = SalePayment.new
+ @status, @sale = sale_payment.process_payment(saleObj, @user, cash, "JunctionPay", remarks)
+ end
+ end
+
+end
diff --git a/app/controllers/origami/payments_controller.rb b/app/controllers/origami/payments_controller.rb
index 49320273..a2a85b92 100755
--- a/app/controllers/origami/payments_controller.rb
+++ b/app/controllers/origami/payments_controller.rb
@@ -27,7 +27,7 @@ class Origami::PaymentsController < BaseOrigamiController
cashier_terminal = CashierTerminal.find(shift.cashier_terminal_id)
end
- if ENV["SERVER_MODE"] != "cloud" #no print in cloud server
+ # if ENV["SERVER_MODE"] != "cloud" #no print in cloud server
receipt_bill_a5_pdf = Lookup.collection_of("print_settings") #print_settings with name:ReceiptBillA5Pdf
# Print for First Bill to Customer
unique_code = "ReceiptBillPdf"
@@ -79,8 +79,17 @@ 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)
- end
+ 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
def create
@@ -131,7 +140,7 @@ class Origami::PaymentsController < BaseOrigamiController
end
# For Print
- if ENV["SERVER_MODE"] != "cloud" #no print in cloud server
+ # if ENV["SERVER_MODE"] != "cloud" #no print in cloud server
receipt_bill_a5_pdf = Lookup.collection_of("print_settings") #print_settings with name:ReceiptBillA5Pdf
unique_code = "ReceiptBillPdf"
if !receipt_bill_a5_pdf.empty?
@@ -195,7 +204,20 @@ class Origami::PaymentsController < BaseOrigamiController
filename, sale_receipt_no, printer_name = printer.print_receipt_bill(print_settings,cashier_terminal,saleObj.sale_items,saleObj,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details, "Paid",current_balance,card_data)
render json: JSON.generate({:status => saleObj.rebate_status, :message => "Can't Rebate coz of Sever Error ", :filename => filename, :receipt_no => sale_receipt_no, :printer_name => printer_name})
- end
+
+ if params[:type] == "quick_service"
+ booking = Booking.find_by_sale_id(sale_id)
+ if booking.dining_facility_id.to_i>0
+ table_id = booking.dining_facility_id
+ else
+ table_id = 0
+ end
+
+ booking.booking_orders.each do |order|
+ Order.pay_process_order_queue(order.order_id,table_id)
+ end
+ # end
+ end
end
end
@@ -213,6 +235,7 @@ class Origami::PaymentsController < BaseOrigamiController
@jcbcount= 0.0
@mastercount = 0.0
@unionpaycount = 0.0
+ @junctionpaycount = 0.0
@credit = 0.0
@sale_data = Sale.find_by_sale_id(sale_id)
@balance = 0.00
@@ -325,6 +348,8 @@ class Origami::PaymentsController < BaseOrigamiController
@mastercount += spay.payment_amount
elsif spay.payment_method == "unionpay"
@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/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/controllers/settings/tax_profiles_controller.rb b/app/controllers/settings/tax_profiles_controller.rb
index 77414c57..75e4343e 100755
--- a/app/controllers/settings/tax_profiles_controller.rb
+++ b/app/controllers/settings/tax_profiles_controller.rb
@@ -6,6 +6,18 @@ class Settings::TaxProfilesController < ApplicationController
# GET /settings/tax_profiles.json
def index
@settings_tax_profiles = TaxProfile.all
+ tax_profiles = Lookup.collection_of("tax_profiles")
+ if !@settings_tax_profiles.nil?
+ @settings_tax_profiles.each_with_index do |setting_tax_profile, tax_index|
+ if !tax_profiles.nil?
+ tax_profiles.each do |group|
+ if setting_tax_profile.group_type == group[1]
+ @settings_tax_profiles[tax_index].group_type = group[0]
+ end
+ end
+ end
+ end
+ end
end
# GET /settings/tax_profiles/1
@@ -15,11 +27,19 @@ class Settings::TaxProfilesController < ApplicationController
# GET /settings/tax_profiles/new
def new
+ @name = nil
@settings_tax_profile = TaxProfile.new
+ @tax_profiles = TaxProfile.all
end
# GET /settings/tax_profiles/1/edit
def edit
+ @settings_tax_profile = TaxProfile.find(params[:id])
+ @name = nil
+ if !@settings_tax_profile.nil?
+ @name = @settings_tax_profile.name
+ end
+ @tax_profiles = TaxProfile.all
end
# POST /settings/tax_profiles
@@ -69,10 +89,20 @@ class Settings::TaxProfilesController < ApplicationController
# Use callbacks to share common setup or constraints between actions.
def set_settings_tax_profile
@settings_tax_profile = TaxProfile.find(params[:id])
+ tax_profiles = Lookup.collection_of("tax_profiles")
+ if !@settings_tax_profile.nil?
+ if !tax_profiles.nil?
+ tax_profiles.each do |group|
+ if @settings_tax_profile.group_type == group[1]
+ @settings_tax_profile.group_type = group[0]
+ end
+ end
+ end
+ end
end
# Never trust parameters from the scary internet, only allow the white list through.
def settings_tax_profile_params
- params.require(:tax_profile).permit(:name, :rate, :inclusive, :order_by, :created_by)
+ params.require(:tax_profile).permit(:name, :group_type, :rate, :inclusive, :order_by, :created_by)
end
end
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/models/sale_payment.rb b/app/models/sale_payment.rb
index 5809dc0f..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
@@ -48,6 +49,8 @@ class SalePayment < ApplicationRecord
payment_status = paypar_payment
when "foc"
payment_status = foc_payment
+ when "JunctionPay"
+ payment_status = junction_pay_payment
else
puts "it was something else"
end
@@ -297,6 +300,22 @@ class SalePayment < ApplicationRecord
end
+ def junction_pay_payment
+ payment_status = false
+
+ #Next time - validate if the vochure number is valid - within
+ self.payment_method = "JunctionPay"
+ self.payment_amount = self.received_amount
+ # self.payment_reference = self.payment_reference
+ self.outstanding_amount = self.sale.grand_total- self.received_amount
+ self.payment_status = "paid"
+ payment_method = self.save!
+ sale_update_payment_status(self.received_amount)
+
+ return payment_status
+
+ end
+
def sale_update_payment_status(paid_amount,check_foc = false)
#update amount_outstanding
self.sale.amount_received = self.sale.amount_received.to_f + paid_amount.to_f
diff --git a/app/models/tax_profile.rb b/app/models/tax_profile.rb
index e478ecd5..a9e56fac 100755
--- a/app/models/tax_profile.rb
+++ b/app/models/tax_profile.rb
@@ -1,5 +1,5 @@
class TaxProfile < ApplicationRecord
default_scope { order('order_by asc') }
# validations
- validates_presence_of :name, :rate
+ validates_presence_of :name, :rate, :group_type
end
diff --git a/app/pdf/receipt_bill_pdf.rb b/app/pdf/receipt_bill_pdf.rb
index fe1ee628..c0299033 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], :page_size => [self.page_width, self.page_height])
- #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,17 +119,10 @@ 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
- 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
@@ -141,12 +136,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 +149,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 +244,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 +309,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)
@@ -494,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
@@ -548,8 +540,7 @@ class ReceiptBillPdf < Prawn::Document
text "Acknowledged By" , :size => self.item_font_size,:align => :center
end
end
-
-
+
end
def footer(printed_status)
diff --git a/app/views/oqs/edit/index.html.erb b/app/views/oqs/edit/index.html.erb
old mode 100755
new mode 100644
index 775b214d..7a1eebab
--- a/app/views/oqs/edit/index.html.erb
+++ b/app/views/oqs/edit/index.html.erb
@@ -112,6 +112,8 @@ $(document).ready(function(){
var remarks = $("textarea[name='remarks']").val();
var order_items_id = $(this).attr('data-id');
var params = { 'order_items_id': order_items_id, 'qty_weight': qty_weight, 'remarks': remarks }
+ var booking_id = '<%= @booking.booking_id %>';
+
$.ajax({
type: 'POST',
url: '/oqs/' + order_items_id,
@@ -121,6 +123,8 @@ $(document).ready(function(){
<% if !@link_type.nil? %>
<% if @link_type == 'oqs' %>
window.location.href = '/oqs';
+ <% elsif @link_type == 'pending' %>
+ window.location.href = '/origami/quick_service/pending_order/'+booking_id;
<% else %>
<% if !@dining_type.nil? %>
<% if @dining_type == 'Table' %>
diff --git a/app/views/origami/home/show.html.erb b/app/views/origami/home/show.html.erb
index 54b0e956..6c38ba99 100755
--- a/app/views/origami/home/show.html.erb
+++ b/app/views/origami/home/show.html.erb
@@ -723,7 +723,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/origami/junction_pay/create.json.jbuilder b/app/views/origami/junction_pay/create.json.jbuilder
new file mode 100755
index 00000000..9767a7d8
--- /dev/null
+++ b/app/views/origami/junction_pay/create.json.jbuilder
@@ -0,0 +1,5 @@
+if(@status)
+ json.status @status
+else
+ json.status false
+end
diff --git a/app/views/origami/junction_pay/index.html.erb b/app/views/origami/junction_pay/index.html.erb
new file mode 100755
index 00000000..cdbdc47d
--- /dev/null
+++ b/app/views/origami/junction_pay/index.html.erb
@@ -0,0 +1,300 @@
+
+
+
+
+
+
<%= @membership_id%>
+
<%= @member_discount%>
+
<%= @sub_total%>
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/views/origami/payments/show.html.erb b/app/views/origami/payments/show.html.erb
index 2deb9c0c..415a3ba2 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 %>
+
+
+
JUNCTION PAY
+
<%= number_with_precision(0, precision: precision.to_i ) %>
+
+ <% 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();
@@ -499,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();
@@ -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,7 +851,8 @@ var customer_name = "<%= @customer.name %>";
var jcb1 = $('#jcbcount').text();
var master1 = $('#mastercount').text();
var unionpay1 = $('#unionpaycount').text();
- var othertotal = parseFloat(credit1) + parseFloat(card1) + parseFloat(paypar1) + parseFloat(visa1) + parseFloat(jcb1) + parseFloat(master1) + parseFloat(unionpay1);
+ var junctionpay1 = $('#junctionpaycount').text();
+ 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 %>;
@@ -865,8 +880,9 @@ 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 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 %>));
diff --git a/app/views/origami/pending_order/show.html.erb b/app/views/origami/pending_order/show.html.erb
old mode 100755
new mode 100644
index ac164636..a7ade0a4
--- a/app/views/origami/pending_order/show.html.erb
+++ b/app/views/origami/pending_order/show.html.erb
@@ -100,7 +100,7 @@
@order_items.each do |order_item|
sub_total = sub_total + order_item.price %>
-
+
| <%= order_item.item_name %> |
<%= order_item.qty %> |
<%= order_item.price %> |
@@ -289,5 +289,13 @@ $(document).ready(function(){
window.location.href = linkURL;
});
}
+
+ /*edit order in oqs*/
+ $('.edit_order').on('click',function(){
+ var assigned_order_item_id = $(this).attr('data-id');
+ if((assigned_order_item_id!=undefined) && (assigned_order_item_id!='')){
+ window.location.href = '/oqs/'+ assigned_order_item_id + "/edit/pending";
+ }
+ });
});
diff --git a/app/views/origami/split_bill/index.html.erb b/app/views/origami/split_bill/index.html.erb
old mode 100755
new mode 100644
index fb97b51d..a62fb66e
--- a/app/views/origami/split_bill/index.html.erb
+++ b/app/views/origami/split_bill/index.html.erb
@@ -53,12 +53,14 @@
+ <% order_item_count = 0 %>
<% if !@order_items.nil? %>
<% sub_total = 0 %>
<% @order_items.each do |order_item| %>
<% if order_item.include? ('all_order') %>
<% order_item['all_order'].each do |odr_item| %>
<%
+ order_item_count = order_item_count.to_i + 1
sub_total += odr_item['qty'].to_f * odr_item['price'].to_f
%>
>
@@ -385,10 +387,9 @@
//order_item_split
$('#order_item_split').on('click',function () {
- var cnt_order_item = "<%= @order_items.count %>";
+ var cnt_order_item = "<%= order_item_count %>";
var order_items = get_selected_order_items();// Selected Order Items
-
- var cnt_items = parseInt(cnt_order_item - 1) - parseInt(order_items.length);
+ var cnt_items = parseInt(cnt_order_item) - parseInt(order_items.length);
if (order_items.length > 0){
// if(cnt_items > 0){
swal({
@@ -423,6 +424,7 @@
$.each(orders, function(key,value){
if($("a[href$='#"+value.order_id+"']").parent().hasClass('selected-split-item')){
$("a[href$='#"+value.order_id+"']").parent().removeClass('selected-split-item');
+ $(".item-row").removeClass('selected-split-item');
}
});
}
@@ -621,6 +623,7 @@ function orderItemSplitBillProcess(cnt_items){
if(cnt_items == 0){
booking_id = json_booking.booking_id;
}
+ console.log(booking_id);
var order_ids = [];
var arr_order_ids = [];
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/settings/tax_profiles/index.html.erb b/app/views/settings/tax_profiles/index.html.erb
index fdfc0895..e1e63c06 100755
--- a/app/views/settings/tax_profiles/index.html.erb
+++ b/app/views/settings/tax_profiles/index.html.erb
@@ -17,6 +17,7 @@
+ | <%= t("views.right_panel.detail.group_type") %> |
<%= t("views.right_panel.detail.name") %> |
<%= t("views.right_panel.detail.rate") %> |
<%= t("views.right_panel.detail.inclusive") %> |
@@ -29,6 +30,7 @@
<% @settings_tax_profiles.each do |settings_tax_profile| %>
+ | <%= settings_tax_profile.group_type %> |
<%= settings_tax_profile.name %> |
<%= settings_tax_profile.rate %> |
<%= settings_tax_profile.inclusive %> |
diff --git a/app/views/settings/tax_profiles/show.html.erb b/app/views/settings/tax_profiles/show.html.erb
index 77a503f2..b405066f 100755
--- a/app/views/settings/tax_profiles/show.html.erb
+++ b/app/views/settings/tax_profiles/show.html.erb
@@ -15,6 +15,11 @@
<%= t("en.tax_profile") %>
+
+ | <%= t("views.right_panel.detail.group_type") %>: |
+ <%= @settings_tax_profile.group_type %> |
+
+
| <%= t("views.right_panel.detail.name") %>: |
<%= @settings_tax_profile.name %> |
diff --git a/config/locales/en.yml b/config/locales/en.yml
index c66d4cc3..dda9180c 100755
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -450,6 +450,7 @@ en:
additional_parameter: "Additional parameter"
lookup: "Lookup"
product_sale_report: "Product Sale"
+ group_type: "Group Type"
code_txt: "code "
charge_txt: "charge"
diff --git a/config/locales/mm.yml b/config/locales/mm.yml
index 8ede4a79..af901d6e 100755
--- a/config/locales/mm.yml
+++ b/config/locales/mm.yml
@@ -445,6 +445,7 @@ mm:
survey: "ခြုံငုံလေ့လာခြင်း"
lookup: "သတ်မှတ်ချက်များ"
product_sale_report: "Product Sale"
+ group_type: "Group Type"
code_txt: "ကုတ်ဒ် "
charge_txt: "ကောက်ခံသည်"
diff --git a/config/routes.rb b/config/routes.rb
index b51baca3..d3921f13 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"
@@ -435,6 +437,8 @@ scope "(:locale)", locale: /en|mm/ do
#----------- Print Setup --------#
resources :print_settings
+ get '/get_printer_options/:printer_name' => 'print_settings#get_printer_options'
+
resources :commissioners
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
end
diff --git a/db/migrate/20170403183755_create_tax_profiles.rb b/db/migrate/20170403183755_create_tax_profiles.rb
index 1f9dfceb..f5210bbb 100755
--- a/db/migrate/20170403183755_create_tax_profiles.rb
+++ b/db/migrate/20170403183755_create_tax_profiles.rb
@@ -2,6 +2,7 @@ class CreateTaxProfiles < ActiveRecord::Migration[5.1]
def change
create_table :tax_profiles do |t|
t.string :name, :null => false
+ t.string :group_type, :null => false
t.decimal :rate, :precision => 10, :scale => 2, :null => false, :default => 0.00
t.boolean :inclusive, :null => false, :default => false
t.integer :order_by, :null => false, :default => 1
diff --git a/db/migrate/20170628103624_create_print_settings.rb b/db/migrate/20170628103624_create_print_settings.rb
index 4f27bd0c..b95e4d2f 100755
--- a/db/migrate/20170628103624_create_print_settings.rb
+++ b/db/migrate/20170628103624_create_print_settings.rb
@@ -8,7 +8,7 @@ class CreatePrintSettings < ActiveRecord::Migration[5.1]
t.string :printer_name, :null => false
t.string :api_settings
t.string :brand_name
- t.string :type
+ t.string :printer_type
t.decimal :page_width, :null => false, :default => 210
t.decimal :page_height, :null => false, :default => 1450
t.integer :print_copies, :null => false, :default => 1
diff --git a/db/seeds.rb b/db/seeds.rb
index df707508..df5e815e 100755
--- a/db/seeds.rb
+++ b/db/seeds.rb
@@ -119,8 +119,8 @@ customer2 = Customer.create({name:"TAKEAWAY", email: "cus2@customer.com", contac
# room = Room.create({name:"Table 2", zone: zone2, status:"available", seater: 4 , order_by:1, created_by:"SYSTEM DEFAULT"})
#Tax Profile
-tax_profiles = TaxProfile.create({id:1, name: "Commercial Tax", rate:5.0, order_by:2, created_by:"SYSTEM DEFAULT"})
-service_charges = TaxProfile.create({id:2, name: "Service Charges", rate:10.0, order_by:1, created_by:"SYSTEM DEFAULT"})
+tax_profiles = TaxProfile.create({id:1, name: "Commercial Tax", group_type: "cashier", rate:5.0, order_by:2, created_by:"SYSTEM DEFAULT"})
+service_charges = TaxProfile.create({id:2, name: "Service Charges", group_type: "cashier", rate:10.0, order_by:1, created_by:"SYSTEM DEFAULT"})
#Default menu
menu = Menu.create({name: "Main Menu", is_active: true, created_by: "SYSTEM DEFAULT"})
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