From b4aa1c600ff9eeedc65a9d443242e177acfbf375 Mon Sep 17 00:00:00 2001 From: phyusin Date: Thu, 4 Oct 2018 16:31:19 +0630 Subject: [PATCH] check js func: and card balance amount for Paymal payment --- README.md | 4 + .../origami/payments_controller.rb | 15 +++- app/controllers/origami/void_controller.rb | 2 +- .../origami/waste_spoile_controller.rb | 2 +- .../transactions/sales_controller.rb | 2 +- app/models/printer/receipt_printer.rb | 8 +- app/models/sale_audit.rb | 34 ++++++++- app/pdf/receipt_bill_a5_pdf.rb | 26 ++++++- app/pdf/receipt_bill_pdf.rb | 30 +++++++- app/views/origami/dinga/index.html.erb | 73 ++++++++++--------- app/views/origami/paymal/index.html.erb | 73 ++++++++++--------- 11 files changed, 181 insertions(+), 88 deletions(-) diff --git a/README.md b/README.md index 363d0be3..0e92142a 100755 --- a/README.md +++ b/README.md @@ -257,6 +257,10 @@ For TaxProfiles On/Off For Add Kitchen Role 1) settings/lookups => {type:employee_roles, name:Kitchen, value:kitchen} +For Food Court Settings On/Off + ** '0' means can not use food court and '1' means can use food court ** + => settings/lookups => { type:food_court, name: FoodCourt, value:'{0 or 1}' } + * ToDo list 1. Migration diff --git a/app/controllers/origami/payments_controller.rb b/app/controllers/origami/payments_controller.rb index cc363298..7294eb80 100755 --- a/app/controllers/origami/payments_controller.rb +++ b/app/controllers/origami/payments_controller.rb @@ -91,7 +91,7 @@ class Origami::PaymentsController < BaseOrigamiController printer = Printer::ReceiptPrinter.new(print_settings) - 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_detail, "Frt",current_balance,nil,other_amount,nil) + filename, receipt_no, cashier_printer = printer.print_receipt_bill(print_settings,cashier_terminal,sale_items,sale_data,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info, shop_detail, "Frt",current_balance,nil,other_amount,nil,nil) result = { :filepath => filename, @@ -234,6 +234,9 @@ class Origami::PaymentsController < BaseOrigamiController card_data.push({'res_date' => card_res_date, 'res_time' => card_res_time, 'batch_no' => cash_sale_trans.batch_no, 'trace' => cash_sale_trans.trace, 'pan' => card_no, 'app' => cash_sale_trans.app, 'tid' => cash_sale_trans.terminal_id, 'app_code' => cash_sale_trans.app_code, 'ref_no' => cash_sale_trans.ref_no, 'mid' => cash_sale_trans.merchant_id}) end end + + #card_balance amount for Paymal payment + card_balance_amount = SaleAudit.getCardBalanceAmount(sale_id) # get printer info print_settings=PrintSetting.find_by_unique_code(unique_code) @@ -243,7 +246,7 @@ class Origami::PaymentsController < BaseOrigamiController other_amount = SaleItem.calculate_other_charges(sale_items) printer = Printer::ReceiptPrinter.new(print_settings) - filename, sale_receipt_no, printer_name = printer.print_receipt_bill(print_settings,cashier_terminal,sale_items,saleObj,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_detail, "Paid",current_balance,card_data,other_amount,latest_order_no) + filename, sale_receipt_no, printer_name = printer.print_receipt_bill(print_settings,cashier_terminal,sale_items,saleObj,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_detail, "Paid",current_balance,card_data,other_amount,latest_order_no,card_balance_amount) 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}) @@ -524,6 +527,10 @@ class Origami::PaymentsController < BaseOrigamiController card_data.push({'res_date' => card_res_date, 'res_time' => card_res_time, 'batch_no' => cash_sale_trans.batch_no, 'trace' => cash_sale_trans.trace, 'pan' => card_no, 'app' => cash_sale_trans.app, 'tid' => cash_sale_trans.terminal_id, 'app_code' => cash_sale_trans.app_code, 'ref_no' => cash_sale_trans.ref_no, 'mid' => cash_sale_trans.merchant_id}) end end + + #card_balance amount for Paymal payment + card_balance_amount = SaleAudit.getCardBalanceAmount(sale_id) + # get printer info print_settings=PrintSetting.find_by_unique_code(unique_code) @@ -533,7 +540,7 @@ class Origami::PaymentsController < BaseOrigamiController other_amount = SaleItem.calculate_other_charges(saleObj.sale_items) printer = Printer::ReceiptPrinter.new(print_settings) - filename, receipt_no, cashier_printer = 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_detail, "Re-print",current_balance,card_data,other_amount,latest_order_no) + filename, receipt_no, cashier_printer = 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_detail, "Re-print",current_balance,card_data,other_amount,latest_order_no,card_balance_amount) result = { :status => true, @@ -619,7 +626,7 @@ class Origami::PaymentsController < BaseOrigamiController printer = Printer::ReceiptPrinter.new(print_settings) - 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_detail, "FOC",nil,nil,other_amount,nil) + 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_detail, "FOC",nil,nil,other_amount,nil,nil) result = { :status => true, :filepath => filename, diff --git a/app/controllers/origami/void_controller.rb b/app/controllers/origami/void_controller.rb index 1e9acafb..2748a5c2 100755 --- a/app/controllers/origami/void_controller.rb +++ b/app/controllers/origami/void_controller.rb @@ -126,7 +126,7 @@ class Origami::VoidController < BaseOrigamiController discount_price_by_accounts = SaleItem.get_discount_price_by_accounts(sale.sale_items) other_amount = SaleItem.calculate_other_charges(sale.sale_items) printer = Printer::ReceiptPrinter.new(print_settings) - filename, sale_receipt_no, printer_name = printer.print_receipt_bill(print_settings,cashier_terminal,sale.sale_items,sale,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details, "VOID",current_balance,nil,other_amount,nil) + filename, sale_receipt_no, printer_name = printer.print_receipt_bill(print_settings,cashier_terminal,sale.sale_items,sale,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details, "VOID",current_balance,nil,other_amount,nil,nil) result = { :filepath => filename, :printer_model => print_settings.brand_name, diff --git a/app/controllers/origami/waste_spoile_controller.rb b/app/controllers/origami/waste_spoile_controller.rb index 6d2bb094..bea7c455 100755 --- a/app/controllers/origami/waste_spoile_controller.rb +++ b/app/controllers/origami/waste_spoile_controller.rb @@ -107,7 +107,7 @@ class Origami::WasteSpoileController < BaseOrigamiController discount_price_by_accounts = SaleItem.get_discount_price_by_accounts(sale.sale_items) other_amount = SaleItem.calculate_other_charges(sale.sale_items) printer = Printer::ReceiptPrinter.new(print_settings) - filename, sale_receipt_no, printer_name = printer.print_receipt_bill(print_settings,cashier_terminal,sale.sale_items,sale,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details, remark,current_balance,nil,other_amount,nil) + filename, sale_receipt_no, printer_name = printer.print_receipt_bill(print_settings,cashier_terminal,sale.sale_items,sale,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details, remark,current_balance,nil,other_amount,nil,nil) result = { :filepath => filename, :printer_model => print_settings.brand_name, diff --git a/app/controllers/transactions/sales_controller.rb b/app/controllers/transactions/sales_controller.rb index 32636ccd..c93766a5 100755 --- a/app/controllers/transactions/sales_controller.rb +++ b/app/controllers/transactions/sales_controller.rb @@ -364,7 +364,7 @@ class Transactions::SalesController < ApplicationController other_amount = SaleItem.calculate_other_charges(sale.sale_items) #other charges printer = Printer::ReceiptPrinter.new(print_settings) - filename, sale_receipt_no, printer_name = printer.print_receipt_bill(print_settings,cashier_terminal,sale.sale_items,sale,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details, "VOID",current_balance,nil,other_amount,nil) + filename, sale_receipt_no, printer_name = printer.print_receipt_bill(print_settings,cashier_terminal,sale.sale_items,sale,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details, "VOID",current_balance,nil,other_amount,nil,nil) result = { :filepath => filename, :printer_model => print_settings.brand_name, diff --git a/app/models/printer/receipt_printer.rb b/app/models/printer/receipt_printer.rb index cb516be2..8b7f5d56 100755 --- a/app/models/printer/receipt_printer.rb +++ b/app/models/printer/receipt_printer.rb @@ -188,19 +188,19 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker end #Bill Receipt Print - 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,other_amount,latest_order_no) + 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,other_amount,latest_order_no,card_balance_amount) #Use CUPS service #Generate PDF #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,other_amount,latest_order_no) + 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,other_amount,latest_order_no,card_balance_amount) receipt_bill_a5_pdf = Lookup.collection_of("print_settings") #print_settings with name:ReceiptBillA5Pdf if !receipt_bill_a5_pdf.empty? receipt_bill_a5_pdf.each do |receipt_bilA5| if receipt_bilA5[0] == 'ReceiptBillA5Pdf' if receipt_bilA5[1] == '1' - pdf = ReceiptBillA5Pdf.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,other_amount,latest_order_no) + pdf = ReceiptBillA5Pdf.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,other_amount,latest_order_no,card_balance_amount) else - 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,other_amount,latest_order_no) + 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,other_amount,latest_order_no,card_balance_amount) end end end diff --git a/app/models/sale_audit.rb b/app/models/sale_audit.rb index b28753c4..33be29f1 100755 --- a/app/models/sale_audit.rb +++ b/app/models/sale_audit.rb @@ -119,8 +119,36 @@ class SaleAudit < ApplicationRecord end - private - def generate_custom_id - self.sale_audit_id = SeedGenerator.generate_id(self.class.name, "SAI") + def self.getCardBalanceAmount(sale_id) + card_balance_amount = 0 + sale_audits = SaleAudit.where("sale_id='#{sale_id}' AND action='PAYMAL'") + if !sale_audits.nil? + sale_audits.each do |sale_audit| + if sale_audit.remark.split('}')[0] + if self.valid_json('['+ sale_audit.remark.split('}')[0] + '}]') + remark = JSON.parse(('['+ sale_audit.remark.split('}')[0] + '}]')) + if remark[0] + if remark[0]["status"] + card_balance_amount = remark[0]["card_balance_amount"] + end + end + end + end + end + end + + return card_balance_amount end + + def self.valid_json(json) + JSON.parse(json) + return true + rescue JSON::ParserError => e + return false + end + + private + def generate_custom_id + self.sale_audit_id = SeedGenerator.generate_id(self.class.name, "SAI") + end end diff --git a/app/pdf/receipt_bill_a5_pdf.rb b/app/pdf/receipt_bill_a5_pdf.rb index 0314b1a9..f32c1009 100644 --- a/app/pdf/receipt_bill_a5_pdf.rb +++ b/app/pdf/receipt_bill_a5_pdf.rb @@ -2,7 +2,7 @@ class ReceiptBillA5Pdf < Prawn::Document 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,other_charges_amount,latest_order_no) + 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,other_charges_amount,latest_order_no,card_balance_amount) self.page_width = printer_settings.page_width self.page_height = printer_settings.page_height self.header_font_size = printer_settings.header_font_size.to_i @@ -72,7 +72,12 @@ class ReceiptBillA5Pdf < Prawn::Document card_sale_data(card_data) end #end card sale trans data - + #start card blanace amount + if !card_balance_amount.nil? + card_balance_data(card_balance_amount) + end + #end card blanace amount + if discount_price_by_accounts.length > 0 && shop_details.show_account_info discount_account(discount_price_by_accounts,printer_settings.precision,delimiter) end @@ -707,6 +712,23 @@ class ReceiptBillA5Pdf < Prawn::Document end end + #start card balance data + def card_balance_data(card_balance_amount) + if card_balance_amount > 0 + move_down line_move + stroke_horizontal_rule + move_down line_move + + y_position = cursor + bounding_box([0, y_position], :width =>self.label_width) do + text "Card Balance: ",:style => :bold, :size => header_font_size,:align => :left + end + bounding_box([self.item_description_width,y_position], :width =>self.label_width) do + text "#{card_balance_amount}" , :size => self.item_font_size,:align => :right + end + end + end + #check ReceiptBillAltName included def show_alt_name bill_alt_name = Lookup.collection_of("print_settings") #print_settings with name:ReceiptBillA5Pdf diff --git a/app/pdf/receipt_bill_pdf.rb b/app/pdf/receipt_bill_pdf.rb index f060a95a..e3fb259b 100755 --- a/app/pdf/receipt_bill_pdf.rb +++ b/app/pdf/receipt_bill_pdf.rb @@ -3,7 +3,7 @@ class ReceiptBillPdf < Prawn::Document 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,other_charges_amount,latest_order_no) + 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,other_charges_amount,latest_order_no,card_balance_amount) self.page_width = printer_settings.page_width self.page_height = printer_settings.page_height self.header_font_size = printer_settings.header_font_size.to_i @@ -73,6 +73,11 @@ class ReceiptBillPdf < Prawn::Document card_sale_data(card_data) end #end card sale trans data + #start card blanace amount + if !card_balance_amount.nil? + card_balance_data(card_balance_amount) + end + #end card blanace amount if discount_price_by_accounts.length > 0 && shop_details.show_account_info discount_account(discount_price_by_accounts,printer_settings.precision,delimiter) @@ -509,9 +514,9 @@ class ReceiptBillPdf < Prawn::Document bounding_box([0,y_position], :width =>self.item_description_width, :height => self.item_height) do text "Total Balance", :size => self.item_font_size,:align => :left end - bounding_box([self.item_description_width,y_position], :width =>self.label_width) do - text "#{number_with_precision(total_balance, :precision => precision.to_i, :delimiter => delimiter)}" , :size => self.item_font_size,:align => :right - end + bounding_box([self.item_description_width,y_position], :width =>self.label_width) do + text "#{number_with_precision(total_balance, :precision => precision.to_i, :delimiter => delimiter)}" , :size => self.item_font_size,:align => :right + end end end @@ -707,6 +712,23 @@ class ReceiptBillPdf < Prawn::Document end end + #start card balance data + def card_balance_data(card_balance_amount) + if card_balance_amount > 0 + move_down line_move + stroke_horizontal_rule + move_down line_move + + y_position = cursor + bounding_box([0, y_position], :width =>self.label_width) do + text "Card Balance: ",:style => :bold, :size => header_font_size,:align => :left + end + bounding_box([self.item_description_width,y_position], :width =>self.label_width) do + text "#{card_balance_amount}" , :size => self.item_font_size,:align => :right + end + end + end + #check ReceiptBillAltName included def show_alt_name bill_alt_name = Lookup.collection_of("print_settings") #print_settings with name:ReceiptBillA5Pdf diff --git a/app/views/origami/dinga/index.html.erb b/app/views/origami/dinga/index.html.erb index 3e4a909f..8c326ac2 100644 --- a/app/views/origami/dinga/index.html.erb +++ b/app/views/origami/dinga/index.html.erb @@ -201,47 +201,52 @@ } }); - $("#dinga_payment").click(function(){ + $("#dinga_payment").on('click', function(){ valid_amount = $("#valid_amount").val(); sale_id = $("#valid_amount").attr('data-value'); membership_id = $("#valid_amount").attr('data-member-value'); payment_amount = parseFloat($("#used_amount").text()); - if((membership_id!=undefined) && (membership_id!="") && (membership_id > 0)){ - if(payment_amount<=0 ){ - swal ( "Oops" , "Please type valid amount!" , "warning" ); - }else if(valid_amount< payment_amount){ - swal ( "Oops" , "Insufficient Amount!" , "warning" ); - }else{ - if(payment_amount <= "<%= @payment_prices %>"){ - $(this).off("click"); - $.ajax({ - type: "POST", - url: "<%=origami_payment_dinga_path%>", - data: {payment_amount:payment_amount,membership_id:membership_id,sale_id:sale_id,transaction_ref:"",account_no:0}, - success: function(result){ - if(result.status == true){ - swal({ - title: "Information!", - text: result.message, - html: true, - closeOnConfirm: false, - closeOnCancel: false, - allowOutsideClick: false - }, function () { - window.location.href = '/origami/sale/'+ sale_id + "/"+cashier_type+"/payment" - }); + if(payment_amount > 0){ + if((membership_id!=undefined) && (membership_id!="") && (membership_id > 0)){ + if(payment_amount<=0 ){ + swal ( "Oops" , "Please type valid amount!" , "warning" ); + }else if(valid_amount< payment_amount){ + swal ( "Oops" , "Insufficient Amount!" , "warning" ); + }else{ + if(payment_amount <= "<%= @payment_prices %>"){ + $(this).off("click"); + $.ajax({ + type: "POST", + url: "<%=origami_payment_dinga_path%>", + data: {payment_amount:payment_amount,membership_id:membership_id,sale_id:sale_id,transaction_ref:"",account_no:0}, + success: function(result){ + if(result.status == true){ + swal({ + title: "Information!", + text: result.message, + html: true, + closeOnConfirm: false, + closeOnCancel: false, + allowOutsideClick: false + }, function () { + window.location.href = '/origami/sale/'+ sale_id + "/"+cashier_type+"/payment" + }); - }else{ - swal ( "Information" , result.message); + }else{ + swal ( "Information" , result.message); + } } - } - }) - }else { - swal ( "Oops" , "Payment Amount is over!" , "warning" ); + }) + }else { + swal ( "Oops" , "Payment Amount is over!" , "warning" ); + } } + }else{ + $("#is_paymemberModal").show(); + $("#is_paymemberModal").modal({show : true, backdrop: false, keyboard : false}); } }else{ - $("#is_paymemberModal").modal({show : true, backdrop: false, keyboard : false}); + swal ( "Oops" , "Amount should be greater than 0!" , "warning" ); } }); @@ -273,7 +278,7 @@ console.log(data) if (data.status == true) { var valid_amount = parseFloat(data.old_balance_amount) - parseFloat(data.reload_amount); - $("#valid_amount").val(parseFloat(valid_amount)); + $("#valid_amount").val((valid_amount > 0) ? parseFloat(valid_amount) : 0); $.ajax({ type: "POST", @@ -350,7 +355,7 @@ success: function(data) { if (data.status == true) { var valid_amount = parseFloat(data.old_balance_amount) - parseFloat(data.reload_amount); - $("#valid_amount").val(parseFloat(valid_amount)); + $("#valid_amount").val((valid_amount > 0) ? parseFloat(valid_amount) : 0); $.ajax({ type: "POST", diff --git a/app/views/origami/paymal/index.html.erb b/app/views/origami/paymal/index.html.erb index 0035784b..802c1ce4 100644 --- a/app/views/origami/paymal/index.html.erb +++ b/app/views/origami/paymal/index.html.erb @@ -197,47 +197,52 @@ } }); - $("#paymal_payment").click(function(){ + $("#paymal_payment").on('click',function(){ valid_amount = $("#valid_amount").val(); sale_id = $("#valid_amount").attr('data-value'); membership_id = $("#valid_amount").attr('data-member-value'); payment_amount = parseFloat($("#used_amount").text()); - if((membership_id!=undefined) && (membership_id!="") && (membership_id > 0)){ - if(payment_amount<=0 ){ - swal ( "Oops" , "Please type valid amount!" , "warning" ); - }else if(valid_amount< payment_amount){ - swal ( "Oops" , "Insufficient Amount!" , "warning" ); - }else{ - if(payment_amount <= "<%= @payment_prices %>"){ - $(this).off("click"); - $.ajax({ - type: "POST", - url: "<%=origami_payment_paymal_path%>", - data: {payment_amount:payment_amount,membership_id:membership_id,sale_id:sale_id,transaction_ref:"",account_no:0}, - success: function(result){ - if(result.status == true){ - swal({ - title: "Information!", - text: result.message, - html: true, - closeOnConfirm: false, - closeOnCancel: false, - allowOutsideClick: false - }, function () { - window.location.href = '/origami/sale/'+ sale_id + "/"+cashier_type+"/payment" - }); + if(payment_amount > 0){ + if((membership_id!=undefined) && (membership_id!="") && (membership_id > 0)){ + if(payment_amount<=0 ){ + swal ( "Oops" , "Please type valid amount!" , "warning" ); + }else if(valid_amount< payment_amount){ + swal ( "Oops" , "Insufficient Amount!" , "warning" ); + }else{ + if(payment_amount <= "<%= @payment_prices %>"){ + $(this).off("click"); + $.ajax({ + type: "POST", + url: "<%=origami_payment_paymal_path%>", + data: {payment_amount:payment_amount,membership_id:membership_id,sale_id:sale_id,transaction_ref:"",account_no:0}, + success: function(result){ + if(result.status == true){ + swal({ + title: "Information!", + text: result.message, + html: true, + closeOnConfirm: false, + closeOnCancel: false, + allowOutsideClick: false + }, function () { + window.location.href = '/origami/sale/'+ sale_id + "/"+cashier_type+"/payment" + }); - }else{ - swal ( "Information" , result.message); + }else{ + swal ( "Information" , result.message); + } } - } - }) - }else { - swal ( "Oops" , "Payment Amount is over!" , "warning" ); + }) + }else { + swal ( "Oops" , "Payment Amount is over!" , "warning" ); + } } + }else{ + $("#is_paymemberModal").show(); + $("#is_paymemberModal").modal({show : true, backdrop: false, keyboard : false}); } }else{ - $("#is_paymemberModal").modal({show : true, backdrop: false, keyboard : false}); + swal ( "Oops" , "Amount should be greater than 0!" , "warning" ); } }); @@ -268,7 +273,7 @@ success: function(data) { if (data.status == true) { var valid_amount = parseFloat(data.old_balance_amount) - parseFloat(data.reload_amount); - $("#valid_amount").val(parseFloat(valid_amount)); + $("#valid_amount").val((valid_amount > 0) ? parseFloat(valid_amount) : 0); $.ajax({ type: "POST", @@ -344,7 +349,7 @@ success: function(data) { if (data.status == true) { var valid_amount = parseFloat(data.old_balance_amount) - parseFloat(data.reload_amount); - $("#valid_amount").val(parseFloat(valid_amount)); + $("#valid_amount").val((valid_amount > 0) ? parseFloat(valid_amount) : 0); $.ajax({ type: "POST",