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 @@ +
+ + +
+
+ + + +
+
+
+
+ + +
+
+
+ +
+
+ + <%@can_junction_pay = @can_junction_pay +@rounding_adj%> + +
+
+
+ <% if @jcbcount != 0 %> +
+
+ + +
+
+
+ <% end %> +
+
+ + +
+
+
+
+
+
+ +
0.0
+
+
+
+
+
+
+ +
+
+
+
+
+
1
+
2
+
3
+
+
+
4
+
5
+
6
+
+
+
7
+
8
+
9
+
+
+
0
+
.
+
00
+
+
+
Nett
+
Del
+
Clr
+
+
+
+
+
1000
+
3000
+
+
+
5000
+
10000
+
+
+
Pay
+
+
+
+
+
+ +
+ +
+
+
+ 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 %> + + <% 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 @@ + @@ -29,6 +30,7 @@ <% @settings_tax_profiles.each do |settings_tax_profile| %> + 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") %> <%= t("views.right_panel.detail.name") %> <%= t("views.right_panel.detail.rate") %> <%= t("views.right_panel.detail.inclusive") %>
<%= settings_tax_profile.group_type %> <%= settings_tax_profile.name %> <%= settings_tax_profile.rate %> <%= settings_tax_profile.inclusive %>
+ + + + + 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
<%= t("views.right_panel.detail.group_type") %>:<%= @settings_tax_profile.group_type %>
<%= t("views.right_panel.detail.name") %>: <%= @settings_tax_profile.name %>