implement paid cancel

This commit is contained in:
Oleg Hasjanov 2021-04-22 11:49:30 +03:00
parent a1c38fb1cc
commit af8bc41556
4 changed files with 29 additions and 0 deletions

View file

@ -20,6 +20,23 @@ module Admin
end
end
def cancel_paid
invoice_id = params[:invoice_id]
invoice = Invoice.find(invoice_id)
account_activity = AccountActivity.find_by(invoice_id: invoice_id)
account_activity_dup = account_activity.dup
account_activity_dup.sum = -account_activity.sum
if account_activity_dup.save and invoice.update(cancelled_at: Time.zone.today)
flash[:notice] = t(:payment_was_cancelled)
redirect_to admin_invoices_path
else
flash[:alert] = t(:failed_to_payment_cancel)
redirect_to admin_invoices_path
end
end
def index
@q = Invoice.includes(:account_activity).search(params[:q])
@q.sorts = 'number desc' if @q.sorts.empty?

View file

@ -6,6 +6,10 @@
%h1.text-right.text-center-xs
- if @invoice.unpaid?
= link_to(t(:payment_received), new_admin_bank_statement_path(invoice_id: @invoice.id), class: 'btn btn-default')
- if @invoice.paid? and !@invoice.cancelled?
= link_to(t(:cancel_payment), cancel_paid_admin_invoices_path(invoice_id: @invoice.id), method: 'post', data: { confirm: t(:are_you_sure) }, class: 'btn btn-warning')
= link_to(t('.download_btn'), download_admin_invoice_path(@invoice), class: 'btn btn-default')
= link_to(t('.deliver_btn'), new_admin_invoice_delivery_path(@invoice), class: 'btn btn-default')
- if @invoice.cancellable?