diff --git a/VERSION.txt b/VERSION.txt index 0403edcfe8..b01dcc14f8 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -5.4.10 \ No newline at end of file +5.4.11 \ No newline at end of file diff --git a/app/Http/Controllers/MigrationController.php b/app/Http/Controllers/MigrationController.php index 2edaf042b9..c50868b85c 100644 --- a/app/Http/Controllers/MigrationController.php +++ b/app/Http/Controllers/MigrationController.php @@ -179,6 +179,7 @@ class MigrationController extends BaseController $company->tasks()->forceDelete(); $company->vendors()->forceDelete(); $company->expenses()->forceDelete(); + $company->purchase_orders()->forceDelete(); $settings = $company->settings; @@ -196,6 +197,7 @@ class MigrationController extends BaseController $settings->ticket_number_counter = 1; $settings->payment_number_counter = 1; $settings->project_number_counter = 1; + $settings->purchase_order_number_counter = 1; $company->settings = $settings; diff --git a/app/Http/Controllers/StripeConnectController.php b/app/Http/Controllers/StripeConnectController.php index faafe25fee..e954741440 100644 --- a/app/Http/Controllers/StripeConnectController.php +++ b/app/Http/Controllers/StripeConnectController.php @@ -120,7 +120,7 @@ class StripeConnectController extends BaseController $company_gateway->setConfig($payload); $company_gateway->save(); - StripeWebhook::dispatch($company->company_key, $company_gateway->id); + // StripeWebhook::dispatch($company->company_key, $company_gateway->id); //response here return view('auth.connect.completed'); diff --git a/app/Http/Requests/Company/StoreCompanyRequest.php b/app/Http/Requests/Company/StoreCompanyRequest.php index 0b8d72c69e..684dca2817 100644 --- a/app/Http/Requests/Company/StoreCompanyRequest.php +++ b/app/Http/Requests/Company/StoreCompanyRequest.php @@ -63,10 +63,6 @@ class StoreCompanyRequest extends Request { $input = $this->all(); - //https not sure i should be forcing this. - // if(array_key_exists('portal_domain', $input) && strlen($input['portal_domain']) > 1) - // $input['portal_domain'] = str_replace("http:", "https:", $input['portal_domain']); - if (array_key_exists('google_analytics_url', $input)) { $input['google_analytics_key'] = $input['google_analytics_url']; } diff --git a/app/Jobs/Company/CompanyImport.php b/app/Jobs/Company/CompanyImport.php index 4977b11368..6ce29bbaaf 100644 --- a/app/Jobs/Company/CompanyImport.php +++ b/app/Jobs/Company/CompanyImport.php @@ -458,7 +458,7 @@ class CompanyImport implements ShouldQueue $settings->ticket_number_counter = 1; $settings->payment_number_counter = 1; $settings->project_number_counter = 1; - $settings->purchase_order_counter = 1; + $settings->purchase_order_number_counter = 1; $this->company->settings = $co->settings; // $this->company->settings = $this->backup_file->company->settings; $this->company->save(); diff --git a/app/Listeners/Invoice/InvoiceArchivedActivity.php b/app/Listeners/Invoice/InvoiceArchivedActivity.php index 785983123f..5118ac5a29 100644 --- a/app/Listeners/Invoice/InvoiceArchivedActivity.php +++ b/app/Listeners/Invoice/InvoiceArchivedActivity.php @@ -21,7 +21,7 @@ class InvoiceArchivedActivity implements ShouldQueue { protected $activity_repo; - public $delay = 5; + public $delay = 15; /** * Create the event listener. diff --git a/app/Listeners/Invoice/InvoicePaidActivity.php b/app/Listeners/Invoice/InvoicePaidActivity.php index ec162331cb..040b12317a 100644 --- a/app/Listeners/Invoice/InvoicePaidActivity.php +++ b/app/Listeners/Invoice/InvoicePaidActivity.php @@ -21,7 +21,7 @@ class InvoicePaidActivity implements ShouldQueue { protected $activity_repo; - public $delay = 5; + public $delay = 10; /** * Create the event listener. diff --git a/app/Models/Task.php b/app/Models/Task.php index 1829b5011c..0693eb0041 100644 --- a/app/Models/Task.php +++ b/app/Models/Task.php @@ -71,22 +71,22 @@ class Task extends BaseModel public function client() { - return $this->belongsTo(Client::class); + return $this->belongsTo(Client::class)->withTrashed(); } public function status() { - return $this->belongsTo(TaskStatus::class); + return $this->belongsTo(TaskStatus::class)->withTrashed(); } public function invoice() { - return $this->belongsTo(Invoice::class); + return $this->belongsTo(Invoice::class)->withTrashed(); } public function project() { - return $this->belongsTo(Project::class); + return $this->belongsTo(Project::class)->withTrashed(); } diff --git a/app/PaymentDrivers/Stripe/Alipay.php b/app/PaymentDrivers/Stripe/Alipay.php index 3c18cb9bc9..5fee7aeac4 100644 --- a/app/PaymentDrivers/Stripe/Alipay.php +++ b/app/PaymentDrivers/Stripe/Alipay.php @@ -59,7 +59,7 @@ class Alipay $this->stripe->payment_hash->data = array_merge((array) $this->stripe->payment_hash->data, $request->all()); $this->stripe->payment_hash->save(); - if ($request->redirect_status == 'succeeded') { + if (in_array($request->redirect_status, ['succeeded', 'pending'])) { return $this->processSuccesfulRedirect($request->source); } diff --git a/app/PaymentDrivers/Stripe/Bancontact.php b/app/PaymentDrivers/Stripe/Bancontact.php index 6e4a640678..fcc257d9bf 100644 --- a/app/PaymentDrivers/Stripe/Bancontact.php +++ b/app/PaymentDrivers/Stripe/Bancontact.php @@ -81,7 +81,7 @@ class Bancontact $this->stripe->payment_hash->data = array_merge((array) $this->stripe->payment_hash->data, $request->all()); $this->stripe->payment_hash->save(); - if ($request->redirect_status == 'succeeded') { + if (in_array($request->redirect_status, ['succeeded','pending'])) { return $this->processSuccessfulPayment($request->payment_intent); } diff --git a/app/PaymentDrivers/Stripe/EPS.php b/app/PaymentDrivers/Stripe/EPS.php index baaf8f1807..677397b215 100644 --- a/app/PaymentDrivers/Stripe/EPS.php +++ b/app/PaymentDrivers/Stripe/EPS.php @@ -80,7 +80,7 @@ class EPS $this->stripe->payment_hash->data = array_merge((array) $this->stripe->payment_hash->data, $request->all()); $this->stripe->payment_hash->save(); - if ($request->redirect_status == 'succeeded') { + if (in_array($request->redirect_status, ['succeeded','pending'])) { return $this->processSuccessfulPayment($request->payment_intent); } diff --git a/app/PaymentDrivers/Stripe/FPX.php b/app/PaymentDrivers/Stripe/FPX.php index f669de5c36..dd415ea398 100644 --- a/app/PaymentDrivers/Stripe/FPX.php +++ b/app/PaymentDrivers/Stripe/FPX.php @@ -81,7 +81,7 @@ class FPX $this->stripe->payment_hash->data = array_merge((array) $this->stripe->payment_hash->data, $request->all()); $this->stripe->payment_hash->save(); - if ($request->redirect_status == 'succeeded') { + if (in_array($request->redirect_status, ['succeeded','pending'])) { return $this->processSuccessfulPayment($request->payment_intent); } diff --git a/app/PaymentDrivers/Stripe/GIROPAY.php b/app/PaymentDrivers/Stripe/GIROPAY.php index 0457a9b6de..5dfc098f54 100644 --- a/app/PaymentDrivers/Stripe/GIROPAY.php +++ b/app/PaymentDrivers/Stripe/GIROPAY.php @@ -80,7 +80,7 @@ class GIROPAY $this->stripe->payment_hash->data = array_merge((array) $this->stripe->payment_hash->data, $request->all()); $this->stripe->payment_hash->save(); - if ($request->redirect_status == 'succeeded') { + if (in_array($request->redirect_status, ['succeeded','pending'])) { return $this->processSuccessfulPayment($request->payment_intent); } diff --git a/app/PaymentDrivers/Stripe/PRZELEWY24.php b/app/PaymentDrivers/Stripe/PRZELEWY24.php index 6e497bb98b..871a1697c9 100644 --- a/app/PaymentDrivers/Stripe/PRZELEWY24.php +++ b/app/PaymentDrivers/Stripe/PRZELEWY24.php @@ -80,7 +80,7 @@ class PRZELEWY24 $this->stripe->payment_hash->data = array_merge((array) $this->stripe->payment_hash->data, $request->all()); $this->stripe->payment_hash->save(); - if ($request->redirect_status == 'succeeded') { + if (in_array($request->redirect_status, ['succeeded','pending'])) { return $this->processSuccessfulPayment($request->payment_intent); } diff --git a/app/PaymentDrivers/Stripe/SOFORT.php b/app/PaymentDrivers/Stripe/SOFORT.php index b40f216c8d..aed9f5a91e 100644 --- a/app/PaymentDrivers/Stripe/SOFORT.php +++ b/app/PaymentDrivers/Stripe/SOFORT.php @@ -77,10 +77,11 @@ class SOFORT public function paymentResponse($request) { + $this->stripe->payment_hash->data = array_merge((array) $this->stripe->payment_hash->data, $request->all()); $this->stripe->payment_hash->save(); - if ($request->redirect_status == 'succeeded') { + if (in_array($request->redirect_status, ['succeeded','pending'])) { return $this->processSuccessfulPayment($request->payment_intent); } diff --git a/app/PaymentDrivers/Stripe/iDeal.php b/app/PaymentDrivers/Stripe/iDeal.php index 1009f9a0c2..eecd2ce60a 100644 --- a/app/PaymentDrivers/Stripe/iDeal.php +++ b/app/PaymentDrivers/Stripe/iDeal.php @@ -80,7 +80,7 @@ class iDeal $this->stripe->payment_hash->data = array_merge((array) $this->stripe->payment_hash->data, $request->all()); $this->stripe->payment_hash->save(); - if ($request->redirect_status == 'succeeded') { + if (in_array($request->redirect_status, ['succeeded','pending'])) { return $this->processSuccessfulPayment($request->payment_intent); } diff --git a/app/Services/Invoice/InvoiceService.php b/app/Services/Invoice/InvoiceService.php index 234392313b..6da6423975 100644 --- a/app/Services/Invoice/InvoiceService.php +++ b/app/Services/Invoice/InvoiceService.php @@ -310,6 +310,9 @@ class InvoiceService elseif ($this->invoice->balance > 0 && $this->invoice->balance < $this->invoice->amount) { $this->invoice->status_id = Invoice::STATUS_PARTIAL; } + elseif ($this->invoice->balance < 0) { + $this->invoice->status_id = Invoice::STATUS_SENT; + } return $this; } diff --git a/app/Utils/Traits/ClientGroupSettingsSaver.php b/app/Utils/Traits/ClientGroupSettingsSaver.php index 985e0b69b3..7d819d754e 100644 --- a/app/Utils/Traits/ClientGroupSettingsSaver.php +++ b/app/Utils/Traits/ClientGroupSettingsSaver.php @@ -89,8 +89,9 @@ trait ClientGroupSettingsSaver if(property_exists($settings, 'translations')) unset($settings->translations); + //18-07-2022 removed || empty($settings->{$key}) from this check to allow "0" values to persist foreach ($settings as $key => $value) { - if (! isset($settings->{$key}) || empty($settings->{$key}) || (! is_object($settings->{$key}) && strlen($settings->{$key}) == 0)) { + if (! isset($settings->{$key}) || (! is_object($settings->{$key}) && strlen($settings->{$key}) == 0)) { unset($settings->{$key}); } } diff --git a/config/ninja.php b/config/ninja.php index ebab634dc8..d51e809873 100644 --- a/config/ninja.php +++ b/config/ninja.php @@ -14,8 +14,8 @@ return [ 'require_https' => env('REQUIRE_HTTPS', true), 'app_url' => rtrim(env('APP_URL', ''), '/'), 'app_domain' => env('APP_DOMAIN', 'invoicing.co'), - 'app_version' => '5.4.10', - 'app_tag' => '5.4.10', + 'app_version' => '5.4.11', + 'app_tag' => '5.4.11', 'minimum_client_version' => '5.0.16', 'terms_version' => '1.0.1', 'api_secret' => env('API_SECRET', ''),