Aggiunge pagamento con bonifico e importo concordato per società.
Il piano si attiva solo dopo la conferma admin; Stripe resta a listino se non c'è un prezzo commerciale. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -2,13 +2,17 @@ module Billing
|
||||
class IssueInvoice
|
||||
class Error < StandardError; end
|
||||
|
||||
def self.call(invoice:, pdf: nil)
|
||||
new(invoice: invoice, pdf: pdf).call
|
||||
MAILER_ACTIONS = %i[invoice_pdf plan_activated_with_invoice].freeze
|
||||
|
||||
def self.call(invoice:, pdf: nil, mailer_action: :invoice_pdf)
|
||||
new(invoice: invoice, pdf: pdf, mailer_action: mailer_action).call
|
||||
end
|
||||
|
||||
def initialize(invoice:, pdf: nil)
|
||||
def initialize(invoice:, pdf: nil, mailer_action: :invoice_pdf)
|
||||
@invoice = invoice
|
||||
@pdf = pdf
|
||||
@mailer_action = mailer_action.to_sym
|
||||
raise Error, "Azione email non valida" unless MAILER_ACTIONS.include?(@mailer_action)
|
||||
end
|
||||
|
||||
def call
|
||||
@@ -22,7 +26,7 @@ module Billing
|
||||
|
||||
@invoice.update!(status: "issued")
|
||||
|
||||
Billing::InvoiceMailer.with(invoice: @invoice).invoice_pdf.deliver_now
|
||||
Billing::InvoiceMailer.with(invoice: @invoice).public_send(@mailer_action).deliver_now
|
||||
@invoice.update!(status: "sent", emailed_at: Time.current)
|
||||
|
||||
@invoice
|
||||
|
||||
Reference in New Issue
Block a user