1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-11-09 20:52:56 +01:00

Stubs for sending edocs

This commit is contained in:
David Bomba 2024-08-29 11:17:38 +10:00
parent ac5718b6e8
commit 9f7ff7dc59
4 changed files with 81 additions and 1 deletions

View File

@ -48,6 +48,7 @@ class NinjaMailerJob implements ShouldQueue
use MakesHash;
public $tries = 4; //number of retries
public $deleteWhenMissingModels = true;
/** @var null|\App\Models\Company $company **/

View File

@ -294,6 +294,17 @@ class BaseModel extends Model
if ($subscriptions) {
WebhookHandler::dispatch($event_id, $this->withoutRelations(), $this->company, $additional_data);
}
// special catch here for einvoicing eventing
if($event_id == Webhook::EVENT_SENT_INVOICE && $this->e_invoice){
$this->handleEinvoiceSending();
}
}
private function handleEinvoiceSending()
{
}
/**

View File

@ -0,0 +1,68 @@
<?php
/**
* Invoice Ninja (https://invoiceninja.com).
*
* @link https://github.com/invoiceninja/invoiceninja source repository
*
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
*
* @license https://www.elastic.co/licensing/elastic-license
*/
namespace App\Services\EDocument\Jobes;
use App\Libraries\MultiDB;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\Middleware\WithoutOverlapping;
class SendEDocument implements ShouldQueue
{
use Dispatchable;
use InteractsWithQueue;
use Queueable;
use SerializesModels;
public $tries = 2;
public $deleteWhenMissingModels = true;
public function __construct(private string $entity, private int $id, private string $db)
{
}
public function backoff()
{
return [rand(5, 29), rand(30, 59)];
}
public function handle()
{
MultiDB::setDB($this->db);
$model = $this->entity::find($this->id);
$e_invoice_standard = $model->client ? $model->client->getSetting('e_invoice_type') : $model->company->getSetting('e_invoice_type');
if($e_invoice_standard != 'PEPPOL')
return;
}
public function failed($exception = null)
{
if ($exception) {
nlog("EXCEPTION:: SENDEDOCUMENT::");
nlog($exception->getMessage());
}
config(['queue.failed.driver' => null]);
}
public function middleware()
{
return [new WithoutOverlapping($this->entity.$this->id.$this->db)];
}
}

View File

@ -646,7 +646,7 @@ class Email implements ShouldQueue
$user = $this->resolveSendingUser();
$sending_email = (isset($this->email_object->settings->custom_sending_email) && stripos($this->email_object->settings->custom_sending_email, "@")) ? $this->email_object->settings->custom_sending_email : $user->email;
$sending_email = (isset($this->email_object->settings->custom_sending_email) && (stripos($this->email_object->settings->custom_sending_email, "@")) !== false) ? $this->email_object->settings->custom_sending_email : $user->email;
$sending_user = (isset($this->email_object->settings->email_from_name) && strlen($this->email_object->settings->email_from_name) > 2) ? $this->email_object->settings->email_from_name : $user->name();
$this->mailable