fixes for update invoice (#3303)

This commit is contained in:
David Bomba 2020-02-10 21:13:46 +11:00 committed by GitHub
parent 9a19f7fd4c
commit af72d27a49
3 changed files with 442 additions and 439 deletions

View File

@ -12,14 +12,12 @@
namespace App\DataMapper;
use App\DataMapper\CompanySettings;
use App\DataMapper\EmailTemplateDefaults;
use App\Models\Company;
/**
* CompanySettings
*/
class CompanySettings extends BaseSettings
{
class CompanySettings extends BaseSettings {
/*Group settings based on functionality*/
@ -29,8 +27,8 @@ class CompanySettings extends BaseSettings
public $enable_client_portal_tasks = false;
public $enable_client_portal_password = false;
public $enable_client_portal = true; //implemented
public $enable_client_portal_dashboard = true; //implemented
public $enable_client_portal = true;//implemented
public $enable_client_portal_dashboard = true;//implemented
public $signature_on_pdf = false;
public $document_email_attachment = false;
public $send_portal_password = false;
@ -69,8 +67,8 @@ class CompanySettings extends BaseSettings
public $translations;
public $counter_number_applied = 'when_saved'; // when_saved , when_sent , when_paid
public $quote_number_applied = 'when_saved'; // when_saved , when_sent
public $counter_number_applied = 'when_saved';// when_saved , when_sent , when_paid
public $quote_number_applied = 'when_saved';// when_saved , when_sent
/* Counters */
public $invoice_number_pattern = '';
@ -100,7 +98,6 @@ class CompanySettings extends BaseSettings
public $payment_number_pattern = '';
public $payment_number_counter = 1;
public $shared_invoice_quote_counter = false;
public $recurring_number_prefix = 'R';
public $reset_counter_frequency_id = '0';
@ -132,7 +129,7 @@ class CompanySettings extends BaseSettings
public $require_quote_signature = false;
//email settings
public $email_sending_method = 'default'; //enum 'default','gmail'
public $email_sending_method = 'default';//enum 'default','gmail'
public $gmail_sending_user_id = '0';
public $reply_to_email = '';
@ -140,8 +137,8 @@ class CompanySettings extends BaseSettings
public $pdf_email_attachment = false;
public $ubl_email_attachment = false;
public $email_style = 'plain'; //plain, light, dark, custom
public $email_style_custom = ''; //the template itself
public $email_style = 'plain';//plain, light, dark, custom
public $email_style_custom = '';//the template itself
public $email_subject_invoice = '';
public $email_subject_quote = '';
public $email_subject_payment = '';
@ -161,7 +158,6 @@ class CompanySettings extends BaseSettings
public $email_signature = '';
public $enable_email_markup = true;
public $email_subject_custom1 = '';
public $email_subject_custom2 = '';
public $email_subject_custom3 = '';
@ -178,17 +174,19 @@ class CompanySettings extends BaseSettings
public $num_days_reminder2 = 0;
public $num_days_reminder3 = 0;
public $schedule_reminder1 = ''; // (enum: after_invoice_date, before_due_date, after_due_date)
public $schedule_reminder2 = ''; // (enum: after_invoice_date, before_due_date, after_due_date)
public $schedule_reminder3 = ''; // (enum: after_invoice_date, before_due_date, after_due_date)
public $schedule_reminder1 = '';// (enum: after_invoice_date, before_due_date, after_due_date)
public $schedule_reminder2 = '';// (enum: after_invoice_date, before_due_date, after_due_date)
public $schedule_reminder3 = '';// (enum: after_invoice_date, before_due_date, after_due_date)
public $reminder_send_time = 32400; //number of seconds from UTC +0 to send reminders
public $reminder_send_time = 32400;//number of seconds from UTC +0 to send reminders
public $late_fee_amount1 = 0;
public $late_fee_amount2 = 0;
public $late_fee_amount3 = 0;
public $endless_reminder_frequency_id = '0';
public $late_fee_endless_amount = 0;
public $late_fee_endless_percent = 0;
public $client_online_payment_notification = true;
public $client_manual_payment_notification = true;
@ -220,6 +218,8 @@ class CompanySettings extends BaseSettings
public $invoice_variables = [];
public static $casts = [
'late_fee_endless_percent' => 'float',
'late_fee_endless_amount' => 'float',
'auto_email_invoice' => 'bool',
'reminder_send_time' => 'int',
'email_sending_method' => 'string',
@ -389,8 +389,7 @@ class CompanySettings extends BaseSettings
*
* @return \stdClass
*/
public function __construct($obj)
{
public function __construct($obj) {
// parent::__construct($obj);
}
@ -398,21 +397,20 @@ class CompanySettings extends BaseSettings
* Provides class defaults on init
* @return object
*/
public static function defaults() : \stdClass
{
public static function defaults():\stdClass {
$config = json_decode(config('ninja.settings'));
$data = (object)get_class_vars(CompanySettings::class);
$data = (object) get_class_vars(CompanySettings::class );
unset($data->casts);
unset($data->protected_fields);
$data->timezone_id = (string)config('ninja.i18n.timezone_id');
$data->currency_id = (string)config('ninja.i18n.currency_id');
$data->language_id = (string)config('ninja.i18n.language_id');
$data->payment_terms = (int)config('ninja.i18n.payment_terms');
$data->military_time = (bool)config('ninja.i18n.military_time');
$data->date_format_id = (string)config('ninja.i18n.date_format_id');
$data->country_id = (string)config('ninja.i18n.country_id');
$data->timezone_id = (string) config('ninja.i18n.timezone_id');
$data->currency_id = (string) config('ninja.i18n.currency_id');
$data->language_id = (string) config('ninja.i18n.language_id');
$data->payment_terms = (int) config('ninja.i18n.payment_terms');
$data->military_time = (bool) config('ninja.i18n.military_time');
$data->date_format_id = (string) config('ninja.i18n.date_format_id');
$data->country_id = (string) config('ninja.i18n.country_id');
$data->translations = (object) [];
$data->invoice_variables = (array) self::getInvoiceVariableDefaults();
@ -443,21 +441,19 @@ class CompanySettings extends BaseSettings
*
* @param object $data The settings object to be checked
*/
public static function setProperties($settings) :\stdClass
{
$company_settings = (object)get_class_vars(CompanySettings::class);
public static function setProperties($settings):\stdClass {
$company_settings = (object) get_class_vars(CompanySettings::class );
foreach ($company_settings as $key => $value) {
if (!property_exists($settings, $key)) {
$settings->{$key} = self::castAttribute($key, $company_settings->{$key});
$settings->{ $key} = self::castAttribute($key, $company_settings->{ $key});
}
}
return $settings;
}
private static function getInvoiceVariableDefaults()
{
private static function getInvoiceVariableDefaults() {
$variables = [
'client_details' => [
'name',

View File

@ -24,12 +24,10 @@ use App\Http\Requests\Invoice\EditInvoiceRequest;
use App\Http\Requests\Invoice\ShowInvoiceRequest;
use App\Http\Requests\Invoice\StoreInvoiceRequest;
use App\Http\Requests\Invoice\UpdateInvoiceRequest;
use App\Jobs\Invoice\CreateInvoicePdf;
use App\Jobs\Invoice\EmailInvoice;
use App\Jobs\Invoice\StoreInvoice;
use App\Models\Invoice;
use App\Repositories\InvoiceRepository;
use App\Transformers\InvoiceTransformer;
use App\Utils\Traits\MakesHash;
@ -41,6 +39,7 @@ use Illuminate\Http\Request;
*/
class InvoiceController extends BaseController {
use MakesHash;
protected $entity_type = Invoice::class ;
@ -654,6 +653,10 @@ class InvoiceController extends BaseController {
$contact = $invitation->contact;
$invoice = $invitation->invoice;
return response()->json($invitation_key);
$file_path = CreateInvoicePdf::dispatchNow($invoice, $invoice->company, $contact);
return response()->download($file_path);
//return response()->json($invitation_key);
}
}

View File

@ -81,6 +81,10 @@ class InvoiceRepository extends BaseRepository {
if (!$inv) {
if (isset($invitation['id'])) {
unset($invitation['id']);
}
$new_invitation = InvoiceInvitationFactory::create($invoice->company_id, $invoice->user_id);
$new_invitation->fill($invitation);
$new_invitation->invoice_id = $invoice->id;