mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-04-06 07:29:16 +00:00
Merge pull request #5712 from mbudm/issue/5208
Add payment details to invoice
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
@import '../admin/variables';
|
||||
|
||||
/* -------------------------------------
|
||||
* GLOBAL
|
||||
*------------------------------------- */
|
||||
|
||||
45
app/assets/stylesheets/mail/payments_list.scss
Normal file
45
app/assets/stylesheets/mail/payments_list.scss
Normal file
@@ -0,0 +1,45 @@
|
||||
@import "../admin/variables";
|
||||
|
||||
// payment list, used in both invoice pdfs and order confirmation emails
|
||||
|
||||
.payments-list {
|
||||
width: 100%;
|
||||
border-collapse: separate;
|
||||
border-spacing: 0;
|
||||
font-size: 12px;
|
||||
margin-bottom: 20px;
|
||||
|
||||
td {
|
||||
padding: 5px;
|
||||
border-bottom: 1px solid $medium-grey;
|
||||
|
||||
.payment-method-name {
|
||||
display: block;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.payment-method-description {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
thead th {
|
||||
border-bottom: 1px solid $medium-grey;
|
||||
padding: 10px 5px 5px;
|
||||
text-transform: uppercase;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.amount {
|
||||
text-align: right;
|
||||
padding-right: 15px;
|
||||
}
|
||||
|
||||
.payment-state {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.payment-state-value {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
}
|
||||
@@ -4,4 +4,8 @@ module OrderHelper
|
||||
def last_payment_method(order)
|
||||
OrderPaymentFinder.new(order).last_payment&.payment_method
|
||||
end
|
||||
|
||||
def outstanding_balance_label(order)
|
||||
order.outstanding_balance.negative? ? t(:credit_owed) : t(:balance_due)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -5,6 +5,7 @@ module Spree
|
||||
helper HtmlHelper
|
||||
helper ::CheckoutHelper
|
||||
helper SpreeCurrencyHelper
|
||||
helper Spree::Admin::PaymentsHelper
|
||||
helper OrderHelper
|
||||
include I18nHelper
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ class SubscriptionMailer < Spree::BaseMailer
|
||||
helper CheckoutHelper
|
||||
helper ShopMailHelper
|
||||
helper OrderHelper
|
||||
helper Spree::Admin::PaymentsHelper
|
||||
include I18nHelper
|
||||
|
||||
def confirmation_email(order)
|
||||
|
||||
@@ -70,4 +70,4 @@
|
||||
%p
|
||||
= @order.distributor.invoice_text
|
||||
|
||||
= render 'spree/order_mailer/payment'
|
||||
= render 'spree/shared/payment'
|
||||
|
||||
@@ -71,4 +71,4 @@
|
||||
%p
|
||||
= @order.distributor.invoice_text
|
||||
|
||||
= render 'spree/order_mailer/payment'
|
||||
= render 'spree/shared/payment'
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
- if @order.outstanding_balance?
|
||||
%h5.outstanding-balance
|
||||
= @order.outstanding_balance < 0 ? t(:credit_owed) : t(:balance_due)
|
||||
= outstanding_balance_label(@order)
|
||||
\:
|
||||
%strong= @order.display_outstanding_balance
|
||||
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
%p.callout
|
||||
%span{:style => "float:right;"}
|
||||
- if @order.paid?
|
||||
= t :email_payment_paid
|
||||
- else
|
||||
= t :email_payment_not_paid
|
||||
%strong
|
||||
= t :email_payment_summary
|
||||
%h4
|
||||
= t :email_payment_method
|
||||
%strong= last_payment_method(@order)&.name
|
||||
%p
|
||||
%em= last_payment_method(@order)&.description
|
||||
%p
|
||||
@@ -21,7 +21,7 @@
|
||||
= t :email_confirm_customer_details_html, distributor: @order.distributor.name
|
||||
|
||||
= render 'order_summary'
|
||||
= render 'payment'
|
||||
= render 'spree/shared/payment'
|
||||
= render 'shipping'
|
||||
= render 'special_instructions'
|
||||
= render 'signoff'
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
= @order.bill_address.phone if @order.bill_address.phone
|
||||
|
||||
= render 'order_summary'
|
||||
= render 'payment'
|
||||
= render 'spree/shared/payment'
|
||||
= render 'shipping'
|
||||
= render 'special_instructions'
|
||||
|
||||
|
||||
15
app/views/spree/shared/_payment.html.haml
Normal file
15
app/views/spree/shared/_payment.html.haml
Normal file
@@ -0,0 +1,15 @@
|
||||
%p.callout
|
||||
%span{:style => "float:right;"}
|
||||
- if @order.outstanding_balance?
|
||||
= outstanding_balance_label(@order)
|
||||
\:
|
||||
%strong= @order.display_outstanding_balance
|
||||
- else
|
||||
- if @order.paid?
|
||||
= t :email_payment_paid
|
||||
- else
|
||||
= t :email_payment_not_paid
|
||||
%strong
|
||||
= t :email_payment_summary
|
||||
- if @order.payments.any?
|
||||
= render partial: 'spree/shared/payments_list', locals: { payments: @order.payments }
|
||||
14
app/views/spree/shared/_payments_list.html.haml
Normal file
14
app/views/spree/shared/_payments_list.html.haml
Normal file
@@ -0,0 +1,14 @@
|
||||
%table.payments-list
|
||||
%thead
|
||||
%tr
|
||||
%th= t('.date_time')
|
||||
%th= t('.payment_method')
|
||||
%th.payment-state= t('.payment_state')
|
||||
%th.amount= t('.amount')
|
||||
%tbody
|
||||
- payments.each do |payment|
|
||||
%tr
|
||||
%td= l(payment.created_at, format: "%b %d, %Y %H:%M")
|
||||
%td.payment-method-name= payment_method_name(payment)
|
||||
%td.payment-state.payment-state-value= t(payment.state, scope: :payment_states, default: payment.state.capitalize)
|
||||
%td.amount= payment.display_amount.to_html
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
= render 'spree/order_mailer/order_summary'
|
||||
|
||||
= render 'spree/order_mailer/payment'
|
||||
= render 'spree/shared/payment'
|
||||
= render 'spree/order_mailer/shipping'
|
||||
= render 'spree/order_mailer/special_instructions'
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
|
||||
= render 'spree/order_mailer/order_summary'
|
||||
|
||||
= render 'spree/order_mailer/payment'
|
||||
= render 'spree/shared/payment'
|
||||
= render 'spree/order_mailer/shipping'
|
||||
= render 'spree/order_mailer/special_instructions'
|
||||
|
||||
|
||||
@@ -3138,6 +3138,11 @@ See the %{link} to find out more about %{sitename}'s features and to start using
|
||||
one: "1 error prohibited this record from being saved:"
|
||||
other: "%{count} errors prohibited this record from being saved:"
|
||||
there_were_problems_with_the_following_fields: "There were problems with the following fields"
|
||||
payments_list:
|
||||
date_time: "Date/time"
|
||||
amount: "Amount"
|
||||
payment_method: "Payment Method"
|
||||
payment_state: "Payment State"
|
||||
errors:
|
||||
messages:
|
||||
blank: "can't be blank"
|
||||
|
||||
Reference in New Issue
Block a user