mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-07 15:54:31 -04:00
commit
8075849e7d
@ -1 +1 @@
|
|||||||
5.4.7
|
5.4.8
|
@ -17,12 +17,15 @@ use App\Http\Middleware\UserVerified;
|
|||||||
use App\Http\Requests\Email\SendEmailRequest;
|
use App\Http\Requests\Email\SendEmailRequest;
|
||||||
use App\Jobs\Entity\EmailEntity;
|
use App\Jobs\Entity\EmailEntity;
|
||||||
use App\Jobs\Mail\EntitySentMailer;
|
use App\Jobs\Mail\EntitySentMailer;
|
||||||
|
use App\Jobs\PurchaseOrder\PurchaseOrderEmail;
|
||||||
use App\Models\Credit;
|
use App\Models\Credit;
|
||||||
use App\Models\Invoice;
|
use App\Models\Invoice;
|
||||||
|
use App\Models\PurchaseOrder;
|
||||||
use App\Models\Quote;
|
use App\Models\Quote;
|
||||||
use App\Models\RecurringInvoice;
|
use App\Models\RecurringInvoice;
|
||||||
use App\Transformers\CreditTransformer;
|
use App\Transformers\CreditTransformer;
|
||||||
use App\Transformers\InvoiceTransformer;
|
use App\Transformers\InvoiceTransformer;
|
||||||
|
use App\Transformers\PurchaseOrderTransformer;
|
||||||
use App\Transformers\QuoteTransformer;
|
use App\Transformers\QuoteTransformer;
|
||||||
use App\Transformers\RecurringInvoiceTransformer;
|
use App\Transformers\RecurringInvoiceTransformer;
|
||||||
use App\Utils\Ninja;
|
use App\Utils\Ninja;
|
||||||
@ -125,6 +128,10 @@ class EmailController extends BaseController
|
|||||||
'body' => $body
|
'body' => $body
|
||||||
];
|
];
|
||||||
|
|
||||||
|
if($entity == 'purchaseOrder' || $template == 'purchase_order'){
|
||||||
|
return $this->sendPurchaseOrder($entity_obj, $data);
|
||||||
|
}
|
||||||
|
|
||||||
$entity_obj->invitations->each(function ($invitation) use ($data, $entity_string, $entity_obj, $template) {
|
$entity_obj->invitations->each(function ($invitation) use ($data, $entity_string, $entity_obj, $template) {
|
||||||
|
|
||||||
if (!$invitation->contact->trashed() && $invitation->contact->email) {
|
if (!$invitation->contact->trashed() && $invitation->contact->email) {
|
||||||
@ -176,4 +183,17 @@ class EmailController extends BaseController
|
|||||||
|
|
||||||
return $this->itemResponse($entity_obj->fresh());
|
return $this->itemResponse($entity_obj->fresh());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function sendPurchaseOrder($entity_obj, $data)
|
||||||
|
{
|
||||||
|
|
||||||
|
$this->entity_type = PurchaseOrder::class;
|
||||||
|
|
||||||
|
$this->entity_transformer = PurchaseOrderTransformer::class;
|
||||||
|
|
||||||
|
PurchaseOrderEmail::dispatch($entity_obj, $entity_obj->company, $data);
|
||||||
|
|
||||||
|
return $this->itemResponse($entity_obj);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,6 +13,7 @@ namespace App\Http\Requests\Email;
|
|||||||
|
|
||||||
use App\Http\Requests\Request;
|
use App\Http\Requests\Request;
|
||||||
use App\Utils\Traits\MakesHash;
|
use App\Utils\Traits\MakesHash;
|
||||||
|
use Illuminate\Support\Str;
|
||||||
|
|
||||||
class SendEmailRequest extends Request
|
class SendEmailRequest extends Request
|
||||||
{
|
{
|
||||||
@ -60,7 +61,7 @@ class SendEmailRequest extends Request
|
|||||||
$input['entity_id'] = $this->decodePrimaryKey($input['entity_id']);
|
$input['entity_id'] = $this->decodePrimaryKey($input['entity_id']);
|
||||||
|
|
||||||
if(array_key_exists('entity', $input))
|
if(array_key_exists('entity', $input))
|
||||||
$input['entity'] = "App\Models\\".ucfirst($input['entity']);
|
$input['entity'] = "App\Models\\".ucfirst(Str::camel($input['entity']));
|
||||||
|
|
||||||
$this->replace($input);
|
$this->replace($input);
|
||||||
}
|
}
|
||||||
|
@ -85,7 +85,6 @@ class SendRecurring implements ShouldQueue
|
|||||||
$invoice = $invoice->service()
|
$invoice = $invoice->service()
|
||||||
->markSent()
|
->markSent()
|
||||||
->applyNumber()
|
->applyNumber()
|
||||||
//->createInvitations() //need to only link invitations to those in the recurring invoice
|
|
||||||
->fillDefaults()
|
->fillDefaults()
|
||||||
->adjustInventory()
|
->adjustInventory()
|
||||||
->save();
|
->save();
|
||||||
|
@ -275,7 +275,12 @@ class Import implements ShouldQueue
|
|||||||
|
|
||||||
info('Completed🚀🚀🚀🚀🚀 at '.now());
|
info('Completed🚀🚀🚀🚀🚀 at '.now());
|
||||||
|
|
||||||
unlink($this->file_path);
|
try{
|
||||||
|
unlink($this->file_path);
|
||||||
|
}
|
||||||
|
catch(\Exception $e){
|
||||||
|
nlog("problem unsetting file");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private function fixData()
|
private function fixData()
|
||||||
|
@ -210,7 +210,6 @@ class ClientContact extends Authenticatable implements HasLocalePreference
|
|||||||
|
|
||||||
NinjaMailerJob::dispatch($nmo);
|
NinjaMailerJob::dispatch($nmo);
|
||||||
|
|
||||||
//$this->notify(new ClientContactResetPassword($token));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function preferredLocale()
|
public function preferredLocale()
|
||||||
|
@ -78,10 +78,10 @@ class NewAccountNotification extends Notification
|
|||||||
public function toSlack($notifiable)
|
public function toSlack($notifiable)
|
||||||
{
|
{
|
||||||
$content = "New Trial Started\n";
|
$content = "New Trial Started\n";
|
||||||
$content = "{$this->client->name}\n";
|
$content .= "{$this->client->name}\n";
|
||||||
$content = "Account key: {$this->account->key}\n";
|
$content .= "Account key: {$this->account->key}\n";
|
||||||
$content = "Users: {$this->account->users()->pluck('email')}\n";
|
$content .= "Users: {$this->account->users()->pluck('email')}\n";
|
||||||
$content = "Contacts: {$this->client->contacts()->pluck('email')}\n";
|
$content .= "Contacts: {$this->client->contacts()->pluck('email')}\n";
|
||||||
|
|
||||||
|
|
||||||
return (new SlackMessage)
|
return (new SlackMessage)
|
||||||
|
@ -32,7 +32,7 @@ class VendorContactRepository extends BaseRepository
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Get array of IDs which have been removed from the contacts array and soft delete each contact */
|
/* Get array of IDs which have been removed from the contacts array and soft delete each contact */
|
||||||
$vendor->contacts->pluck('id')->diff($contacts->pluck('id'))->each(function ($contact) {
|
$vendor->contacts->pluck('hashed_id')->diff($contacts->pluck('id'))->each(function ($contact) {
|
||||||
VendorContact::destroy($contact);
|
VendorContact::destroy($contact);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -43,12 +43,10 @@ class ApplyNumber extends AbstractService
|
|||||||
switch ($this->client->getSetting('counter_number_applied')) {
|
switch ($this->client->getSetting('counter_number_applied')) {
|
||||||
case 'when_saved':
|
case 'when_saved':
|
||||||
$this->trySaving();
|
$this->trySaving();
|
||||||
// $this->invoice->number = $this->getNextInvoiceNumber($this->client, $this->invoice, $this->invoice->recurring_id);
|
|
||||||
break;
|
break;
|
||||||
case 'when_sent':
|
case 'when_sent':
|
||||||
if ($this->invoice->status_id == Invoice::STATUS_SENT) {
|
if ($this->invoice->status_id == Invoice::STATUS_SENT) {
|
||||||
$this->trySaving();
|
$this->trySaving();
|
||||||
// $this->invoice->number = $this->getNextInvoiceNumber($this->client, $this->invoice, $this->invoice->recurring_id);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ class PurchaseOrderService
|
|||||||
|
|
||||||
public function applyNumber()
|
public function applyNumber()
|
||||||
{
|
{
|
||||||
$this->invoice = (new ApplyNumber($this->purchase_order->vendor, $this->purchase_order))->run();
|
$this->purchase_order = (new ApplyNumber($this->purchase_order->vendor, $this->purchase_order))->run();
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
@ -84,9 +84,6 @@ class TemplateEngine
|
|||||||
|
|
||||||
public function build()
|
public function build()
|
||||||
{
|
{
|
||||||
|
|
||||||
if ($this->template == 'email_template_null')
|
|
||||||
$this->template = 'email_template_purchase_order';
|
|
||||||
|
|
||||||
return $this->setEntity()
|
return $this->setEntity()
|
||||||
->setSettingsObject()
|
->setSettingsObject()
|
||||||
@ -185,7 +182,8 @@ class TemplateEngine
|
|||||||
'allow_unsafe_links' => false,
|
'allow_unsafe_links' => false,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$this->body = $converter->convert($this->body);
|
$this->body = $converter->convert($this->body)->getContent();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private function entityValues($contact)
|
private function entityValues($contact)
|
||||||
|
@ -14,8 +14,8 @@ return [
|
|||||||
'require_https' => env('REQUIRE_HTTPS', true),
|
'require_https' => env('REQUIRE_HTTPS', true),
|
||||||
'app_url' => rtrim(env('APP_URL', ''), '/'),
|
'app_url' => rtrim(env('APP_URL', ''), '/'),
|
||||||
'app_domain' => env('APP_DOMAIN', 'invoicing.co'),
|
'app_domain' => env('APP_DOMAIN', 'invoicing.co'),
|
||||||
'app_version' => '5.4.7',
|
'app_version' => '5.4.8',
|
||||||
'app_tag' => '5.4.7',
|
'app_tag' => '5.4.8',
|
||||||
'minimum_client_version' => '5.0.16',
|
'minimum_client_version' => '5.0.16',
|
||||||
'terms_version' => '1.0.1',
|
'terms_version' => '1.0.1',
|
||||||
'api_secret' => env('API_SECRET', ''),
|
'api_secret' => env('API_SECRET', ''),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user