mirror of
				https://github.com/invoiceninja/invoiceninja.git
				synced 2025-11-04 03:17:35 -05:00 
			
		
		
		
	Updates for multi invoice payment flow
This commit is contained in:
		
							parent
							
								
									c4f93e4d12
								
							
						
					
					
						commit
						2baebffc32
					
				@ -516,9 +516,10 @@ class CompanySettings extends BaseSettings
 | 
				
			|||||||
    public $quote_late_fee_amount1 = 0;
 | 
					    public $quote_late_fee_amount1 = 0;
 | 
				
			||||||
    public $quote_late_fee_percent1 = 0;
 | 
					    public $quote_late_fee_percent1 = 0;
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
 | 
					    public string $payment_flow = 'default'; //smooth
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static $casts = [
 | 
					    public static $casts = [
 | 
				
			||||||
 | 
					        'payment_flow'                       => 'string',
 | 
				
			||||||
        'enable_quote_reminder1'             => 'bool',
 | 
					        'enable_quote_reminder1'             => 'bool',
 | 
				
			||||||
        'quote_num_days_reminder1'           => 'int',
 | 
					        'quote_num_days_reminder1'           => 'int',
 | 
				
			||||||
        'quote_schedule_reminder1'           => 'string',
 | 
					        'quote_schedule_reminder1'           => 'string',
 | 
				
			||||||
 | 
				
			|||||||
@ -79,13 +79,16 @@ class InvoiceController extends Controller
 | 
				
			|||||||
            'hash' => $hash,
 | 
					            'hash' => $hash,
 | 
				
			||||||
            'variables' => $variables,
 | 
					            'variables' => $variables,
 | 
				
			||||||
            'invoices' => [$invoice->hashed_id],
 | 
					            'invoices' => [$invoice->hashed_id],
 | 
				
			||||||
 | 
					            'db' => $invoice->company->db,
 | 
				
			||||||
        ];
 | 
					        ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if ($request->query('mode') === 'fullscreen') {
 | 
					        if ($request->query('mode') === 'fullscreen') {
 | 
				
			||||||
            return render('invoices.show-fullscreen', $data);
 | 
					            return render('invoices.show-fullscreen', $data);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return $this->render('invoices.show_smooth', $data);
 | 
					        return auth()->guard('contact')->user()->client->getSetting('payment_flow') == 'default' ? $this->render('invoices.show', $data) : $this->render('invoices.show_smooth', $data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // return $this->render('invoices.show_smooth', $data);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public function showBlob($hash)
 | 
					    public function showBlob($hash)
 | 
				
			||||||
@ -237,9 +240,12 @@ class InvoiceController extends Controller
 | 
				
			|||||||
            'hashed_ids' => $invoices->pluck('hashed_id'),
 | 
					            'hashed_ids' => $invoices->pluck('hashed_id'),
 | 
				
			||||||
            'total' =>  $total,
 | 
					            'total' =>  $total,
 | 
				
			||||||
            'variables' => $variables,
 | 
					            'variables' => $variables,
 | 
				
			||||||
 | 
					            'invitation' => $invitation,
 | 
				
			||||||
 | 
					            'db' => $invitation->company->db,
 | 
				
			||||||
        ];
 | 
					        ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return $this->render('invoices.payment', $data);
 | 
					        // return $this->render('invoices.payment', $data);
 | 
				
			||||||
 | 
					        return auth()->guard('contact')->user()->client->getSetting('payment_flow') === 'default' ? $this->render('invoices.payment', $data) : $this->render('invoices.show_smooth_multi', $data);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
 | 
				
			|||||||
@ -238,9 +238,12 @@ class InvoicePay extends Component
 | 
				
			|||||||
        $this->setContext('settings', $settings); // $this->context['settings'] = $settings;
 | 
					        $this->setContext('settings', $settings); // $this->context['settings'] = $settings;
 | 
				
			||||||
        $this->setContext('db', $this->db); // $this->context['db'] = $this->db;
 | 
					        $this->setContext('db', $this->db); // $this->context['db'] = $this->db;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $invoices = Invoice::find($this->transformKeys($this->invoices));
 | 
					        nlog($this->invoices);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $invoices = $invoices->filter(function ($i) {
 | 
					        if(is_array($this->invoices))
 | 
				
			||||||
 | 
					            $this->invoices = Invoice::find($this->transformKeys($this->invoices));
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        $invoices = $this->invoices->filter(function ($i) {
 | 
				
			||||||
            $i = $i->service()
 | 
					            $i = $i->service()
 | 
				
			||||||
                ->markSent()
 | 
					                ->markSent()
 | 
				
			||||||
                ->removeUnpaidGatewayFees()
 | 
					                ->removeUnpaidGatewayFees()
 | 
				
			||||||
 | 
				
			|||||||
@ -20,12 +20,12 @@ class InvoiceSummary extends Component
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    use WithSecureContext;
 | 
					    use WithSecureContext;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public $invoice;
 | 
					    public $invoices;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public function mount()
 | 
					    public function mount()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        //@TODO for a single invoice - show all details, for multi-invoices, only show the summaries
 | 
					        //@TODO for a single invoice - show all details, for multi-invoices, only show the summaries
 | 
				
			||||||
        $this->invoice = $this->getContext()['invitation']->invoice; // $this->context['invitation']->invoice;
 | 
					        $this->invoices = $this->getContext()['invoices']; // $this->context['invitation']->invoice;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #[On(self::CONTEXT_UPDATE)]
 | 
					    #[On(self::CONTEXT_UPDATE)]
 | 
				
			||||||
@ -33,13 +33,15 @@ class InvoiceSummary extends Component
 | 
				
			|||||||
    {
 | 
					    {
 | 
				
			||||||
        // refactor logic for updating the price for eg if it changes with under/over pay
 | 
					        // refactor logic for updating the price for eg if it changes with under/over pay
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $this->invoice = $this->getContext()['invitation']->invoice;
 | 
					        $this->invoices = $this->getContext()['invoices'];
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public function render(): \Illuminate\Contracts\View\Factory|\Illuminate\View\View
 | 
					    public function render(): \Illuminate\Contracts\View\Factory|\Illuminate\View\View
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        return render('flow2.invoice-summary', [
 | 
					        return render('flow2.invoices-summary', [
 | 
				
			||||||
            'invoice' => $this->invoice
 | 
					            'invoice' => $this->invoices,
 | 
				
			||||||
 | 
					            'client' => $this->invoices->first()->client,
 | 
				
			||||||
        ]);
 | 
					        ]);
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -25,7 +25,7 @@ class Terms extends Component
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public function mount()
 | 
					    public function mount()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        $this->invoice = $this->getContext()['invoice'];
 | 
					        $this->invoice = $this->getContext()['invoices']->first();
 | 
				
			||||||
        $this->variables = $this->getContext()['variables'];
 | 
					        $this->variables = $this->getContext()['variables'];
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -89,6 +89,8 @@ class LivewireInstantPayment
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public function run()
 | 
					    public function run()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 | 
					        nlog($this->data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $company_gateway = CompanyGateway::query()->find($this->data['company_gateway_id']);
 | 
					        $company_gateway = CompanyGateway::query()->find($this->data['company_gateway_id']);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if ($this->data['company_gateway_id'] == CompanyGateway::GATEWAY_CREDIT) {
 | 
					        if ($this->data['company_gateway_id'] == CompanyGateway::GATEWAY_CREDIT) {
 | 
				
			||||||
 | 
				
			|||||||
@ -1,67 +0,0 @@
 | 
				
			|||||||
<div class="w-full">
 | 
					 | 
				
			||||||
   <div class="rounded-lg border bg-card bg-white text-card-foreground shadow-sm overflow-hidden" x-chunk="An order details card with order details, shipping information, customer information and payment information.">
 | 
					 | 
				
			||||||
      <div class="space-y-1.5 p-6 flex flex-row items-start bg-muted/50">
 | 
					 | 
				
			||||||
         <div class="grid gap-0.5">
 | 
					 | 
				
			||||||
            <h3 class="font-semibold tracking-tight group flex items-center gap-2 text-lg">
 | 
					 | 
				
			||||||
               {{ ctrans('texts.invoice') }} {{ $invoice->number }}
 | 
					 | 
				
			||||||
               <button class="inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-6 w-6 opacity-0 transition-opacity group-hover:opacity-100">
 | 
					 | 
				
			||||||
                  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-copy h-3 w-3">
 | 
					 | 
				
			||||||
                     <rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect>
 | 
					 | 
				
			||||||
                     <path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path>
 | 
					 | 
				
			||||||
                  </svg>
 | 
					 | 
				
			||||||
                  <span class="sr-only">{{ ctrans('texts.copy') }}</span>
 | 
					 | 
				
			||||||
               </button>
 | 
					 | 
				
			||||||
            </h3>
 | 
					 | 
				
			||||||
            <p class="text-sm text-muted-foreground">{{ ctrans('texts.date') }}:  {{ $invoice->translateDate($invoice->date, $invoice->client->date_format(), $invoice->client->locale()) }}</p>
 | 
					 | 
				
			||||||
         </div>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      </div>
 | 
					 | 
				
			||||||
      <div class="p-6 text-sm">
 | 
					 | 
				
			||||||
         <div class="grid gap-3">
 | 
					 | 
				
			||||||
            <div class="font-semibold">{{ ctrans('texts.invoice_details') }} </div>
 | 
					 | 
				
			||||||
            <ul class="grid gap-3">
 | 
					 | 
				
			||||||
                @foreach($invoice->line_items as $item)
 | 
					 | 
				
			||||||
               <li class="flex items-center justify-between"><span class="text-muted-foreground">{{ $item->notes }}<span></span></span><span> {{ App\Utils\Number::formatMoney($item->line_total, $invoice->client) }}</span></li>
 | 
					 | 
				
			||||||
                @endforeach
 | 
					 | 
				
			||||||
            </ul>
 | 
					 | 
				
			||||||
            <div data-orientation="horizontal" role="none" class="shrink-0 bg-border h-[1px] w-full my-2"></div>
 | 
					 | 
				
			||||||
            <ul class="grid gap-3">
 | 
					 | 
				
			||||||
                @if($invoice->total_taxes > 0)
 | 
					 | 
				
			||||||
                <li class="flex items-center justify-between"><span class="text-muted-foreground">{{ ctrans('texts.tax')}}</span><span>{{App\Utils\Number::formatMoney($invoice->total_taxes, $invoice->client) }} </span></li>
 | 
					 | 
				
			||||||
                @endif
 | 
					 | 
				
			||||||
                <li class="flex items-center justify-between font-semibold"><span class="text-muted-foreground">{{ ctrans('texts.total') }}</span><span>{{ App\Utils\Number::formatMoney($invoice->amount, $invoice->client) }}</span></li>
 | 
					 | 
				
			||||||
            </ul>
 | 
					 | 
				
			||||||
         </div>
 | 
					 | 
				
			||||||
         <div data-orientation="horizontal" role="none" class="shrink-0 bg-border h-[1px] w-full my-4"></div>
 | 
					 | 
				
			||||||
         <div class="grid grid-cols-2 gap-4">
 | 
					 | 
				
			||||||
            <div class="grid auto-rows-max gap-3">
 | 
					 | 
				
			||||||
               <div class="font-semibold"></div>
 | 
					 | 
				
			||||||
            </div>
 | 
					 | 
				
			||||||
         </div>
 | 
					 | 
				
			||||||
         <div data-orientation="horizontal" role="none" class="shrink-0 bg-border h-[1px] w-full my-4"></div>
 | 
					 | 
				
			||||||
         <div class="grid gap-3">
 | 
					 | 
				
			||||||
            <div class="font-semibold">{{ ctrans('texts.client_information') }}</div>
 | 
					 | 
				
			||||||
            <dl class="grid gap-3">
 | 
					 | 
				
			||||||
               <div class="flex items-center justify-between">
 | 
					 | 
				
			||||||
                  <dt class="text-muted-foreground">{{ ctrans('texts.client') }}</dt>
 | 
					 | 
				
			||||||
                  <dd>{{ $invoice->client->present()->name() }}</dd>
 | 
					 | 
				
			||||||
               </div>
 | 
					 | 
				
			||||||
               <div class="flex items-center justify-between">
 | 
					 | 
				
			||||||
                  <dt class="text-muted-foreground">{{ ctrans('texts.email') }}</dt>
 | 
					 | 
				
			||||||
                  <dd><a href="mailto:">{{ $invoice->client->present()->email() }}</a></dd>
 | 
					 | 
				
			||||||
               </div>
 | 
					 | 
				
			||||||
               <div class="flex items-center justify-between">
 | 
					 | 
				
			||||||
                  <dt class="text-muted-foreground">{{ ctrans('texts.phone') }}</dt>
 | 
					 | 
				
			||||||
                  <dd><a href="tel:">{{ $invoice->client->present()->phone() }} </a></dd>
 | 
					 | 
				
			||||||
               </div>
 | 
					 | 
				
			||||||
            </dl>
 | 
					 | 
				
			||||||
         </div>
 | 
					 | 
				
			||||||
         <div data-orientation="horizontal" role="none" class="shrink-0 bg-border h-[1px] w-full my-4"></div>
 | 
					 | 
				
			||||||
         <div class="grid gap-3">
 | 
					 | 
				
			||||||
            <div class="font-semibold"></div>
 | 
					 | 
				
			||||||
            <dl class="grid gap-3">
 | 
					 | 
				
			||||||
            </dl>
 | 
					 | 
				
			||||||
         </div>
 | 
					 | 
				
			||||||
      </div>
 | 
					 | 
				
			||||||
   </div>
 | 
					 | 
				
			||||||
</div>
 | 
					 | 
				
			||||||
@ -0,0 +1,71 @@
 | 
				
			|||||||
 | 
					<div class="w-full">
 | 
				
			||||||
 | 
					    <div class="rounded-lg border bg-card bg-white text-card-foreground shadow-sm overflow-hidden" x-chunk="An order details card with order details, shipping information, customer information and payment information.">
 | 
				
			||||||
 | 
					        <div class="pt-6 px-6 flex flex-row items-start bg-muted/50">
 | 
				
			||||||
 | 
					            <div class="grid gap-0.5">
 | 
				
			||||||
 | 
					            <h3 class="font-semibold tracking-tight group flex items-center gap-2 text-lg">
 | 
				
			||||||
 | 
					                {{ ctrans('texts.invoices') }}
 | 
				
			||||||
 | 
					                <button class="inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-6 w-6 opacity-0 transition-opacity group-hover:opacity-100">
 | 
				
			||||||
 | 
					                    <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-copy h-3 w-3">
 | 
				
			||||||
 | 
					                        <rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect>
 | 
				
			||||||
 | 
					                        <path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path>
 | 
				
			||||||
 | 
					                    </svg>
 | 
				
			||||||
 | 
					                </button>
 | 
				
			||||||
 | 
					            </h3>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <div class="p-6 text-sm">
 | 
				
			||||||
 | 
					            @foreach($invoices as $invoice)
 | 
				
			||||||
 | 
					            <div class="mb-4 grid gap-3">
 | 
				
			||||||
 | 
					                <div class="font-semibold">{{ ctrans('texts.invoice') }} {{ $invoice->number }}</div>
 | 
				
			||||||
 | 
					                <dl class="grid gap-3">
 | 
				
			||||||
 | 
					                <div class="flex items-center justify-between">
 | 
				
			||||||
 | 
					                    <dt class="text-muted-foreground">{{ ctrans('texts.invoice_date') }}</dt>
 | 
				
			||||||
 | 
					                    <dd>{{ $invoice->translateDate($invoice->date, $invoice->client->date_format(), $invoice->client->locale()) }}</dd>
 | 
				
			||||||
 | 
					                </div>
 | 
				
			||||||
 | 
					                @if($invoice->due_date)
 | 
				
			||||||
 | 
					                <div class="flex items-center justify-between">
 | 
				
			||||||
 | 
					                    <dt class="text-muted-foreground">{{ ctrans('texts.due_date') }}</dt>
 | 
				
			||||||
 | 
					                    <dd>{{ $invoice->translateDate($invoice->due_date, $invoice->client->date_format(), $invoice->client->locale()) }}</dd>
 | 
				
			||||||
 | 
					                </div>
 | 
				
			||||||
 | 
					                @endif
 | 
				
			||||||
 | 
					                <div class="flex items-center justify-between">
 | 
				
			||||||
 | 
					                    <dt class="text-muted-foreground">{{ ctrans('texts.amount_due') }}</dt>
 | 
				
			||||||
 | 
					                    <dd>
 | 
				
			||||||
 | 
					                        {{ $invoice->client->currency()->code }} ({{ $invoice->client->currency()->symbol }})
 | 
				
			||||||
 | 
					                        {{ $invoice->partial > 0 ? $invoice->partial : $invoice->balance }}
 | 
				
			||||||
 | 
					                    </dd>
 | 
				
			||||||
 | 
					                </div>
 | 
				
			||||||
 | 
					                </dl>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					            @endforeach
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            <div data-orientation="horizontal" role="none" class="shrink-0 bg-border h-[1px] w-full my-4"></div>
 | 
				
			||||||
 | 
					            <div class="grid gap-3">
 | 
				
			||||||
 | 
					                <div class="font-semibold">{{ ctrans('texts.client_information') }}</div>
 | 
				
			||||||
 | 
					                <dl class="grid gap-3">
 | 
				
			||||||
 | 
					                <div class="flex items-center justify-between">
 | 
				
			||||||
 | 
					                    <dt class="text-muted-foreground">{{ ctrans('texts.client') }}</dt>
 | 
				
			||||||
 | 
					                    <dd>{{ $client->present()->name() }}</dd>
 | 
				
			||||||
 | 
					                </div>
 | 
				
			||||||
 | 
					                <div class="flex items-center justify-between">
 | 
				
			||||||
 | 
					                    <dt class="text-muted-foreground">{{ ctrans('texts.email') }}</dt>
 | 
				
			||||||
 | 
					                    <dd><a href="mailto:">{{ $client->present()->email() }}</a></dd>
 | 
				
			||||||
 | 
					                </div>
 | 
				
			||||||
 | 
					                @if($client->present()->phone())
 | 
				
			||||||
 | 
					                <div class="flex items-center justify-between">
 | 
				
			||||||
 | 
					                    <dt class="text-muted-foreground">{{ ctrans('texts.phone') }}</dt>
 | 
				
			||||||
 | 
					                    <dd><a href="tel:">{{ $client->present()->phone() }} </a></dd>
 | 
				
			||||||
 | 
					                </div>
 | 
				
			||||||
 | 
					                @endif
 | 
				
			||||||
 | 
					                </dl>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					            <div data-orientation="horizontal" role="none" class="shrink-0 bg-border h-[1px] w-full my-4"></div>
 | 
				
			||||||
 | 
					            <div class="grid gap-3">
 | 
				
			||||||
 | 
					                <div class="font-semibold"></div>
 | 
				
			||||||
 | 
					                <dl class="grid gap-3">
 | 
				
			||||||
 | 
					                </dl>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
@ -17,11 +17,9 @@
 | 
				
			|||||||
    @endif
 | 
					    @endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @if($invoice->isPayable())
 | 
					    @if($invoice->isPayable())
 | 
				
			||||||
        @livewire('flow2.invoice-pay', ['invoices' => $invoices, 'invitation_id' => $invitation->id, 'db' => $invoice->company->db, 'variables' => $variables])
 | 
					        @livewire('flow2.invoice-pay', ['invoices' => $invoices, 'invitation_id' => $invitation->id, 'db' => $db, 'variables' => $variables])
 | 
				
			||||||
    @endif
 | 
					    @endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @include('portal.ninja2020.components.entity-documents', ['entity' => $invoice])
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@endsection
 | 
					@endsection
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@section('footer')
 | 
					@section('footer')
 | 
				
			||||||
 | 
				
			|||||||
@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					@extends('portal.ninja2020.layout.app')
 | 
				
			||||||
 | 
					@section('meta_title', ctrans('texts.view_invoice'))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@push('head')
 | 
				
			||||||
 | 
					@endpush
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@section('body')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @livewire('flow2.invoice-pay', ['invoices' => $invoices, 'invitation_id' => $invitation->id, 'db' => $db, 'variables' => $variables])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@endsection
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@section('footer')
 | 
				
			||||||
 | 
					@endsection
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@push('head')
 | 
				
			||||||
 | 
					@endpush
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user