Merge pull request #6893 from turbo124/v5-develop

Minor fixes for Gateway Types
This commit is contained in:
David Bomba 2021-10-25 16:39:41 +11:00 committed by GitHub
commit 1462c9ef57
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 64 additions and 29 deletions

View File

@ -52,6 +52,7 @@ class Handler extends ExceptionHandler
MaxAttemptsExceededException::class, MaxAttemptsExceededException::class,
CommandNotFoundException::class, CommandNotFoundException::class,
ValidationException::class, ValidationException::class,
ModelNotFoundException::class,
]; ];
/** /**

View File

@ -81,8 +81,8 @@ class ContactLoginController extends Controller
{ {
Auth::shouldUse('contact'); Auth::shouldUse('contact');
if(Ninja::isHosted() && $request->has('db')) if(Ninja::isHosted() && $request->has('company_key'))
MultiDB::setDb($request->input('db')); MultiDB::findAndSetDbByCompanyKey($request->input('company_key'));
$this->validateLogin($request); $this->validateLogin($request);
// If the class is using the ThrottlesLogins trait, we can automatically throttle // If the class is using the ThrottlesLogins trait, we can automatically throttle

View File

@ -27,7 +27,7 @@ class SwitchCompanyController extends Controller
->where('id', $this->transformKeys($contact)) ->where('id', $this->transformKeys($contact))
->first(); ->first();
auth()->guard('contact')->user()->login($client_contact, true); auth()->guard('contact')->login($client_contact, true);
return redirect('/client/dashboard'); return redirect('/client/dashboard');
} }

View File

@ -42,6 +42,9 @@ class StoreRecurringExpenseRequest extends Request
$rules['client_id'] = 'bail|sometimes|exists:clients,id,company_id,'.auth()->user()->company()->id; $rules['client_id'] = 'bail|sometimes|exists:clients,id,company_id,'.auth()->user()->company()->id;
$rules['frequency_id'] = 'required|integer|digits_between:1,12'; $rules['frequency_id'] = 'required|integer|digits_between:1,12';
$rules['tax_amount1'] = 'numeric';
$rules['tax_amount2'] = 'numeric';
$rules['tax_amount3'] = 'numeric';
return $this->globalRules($rules); return $this->globalRules($rules);
} }

View File

@ -43,6 +43,10 @@ class UpdateRecurringExpenseRequest extends Request
$rules['number'] = Rule::unique('recurring_expenses')->where('company_id', auth()->user()->company()->id)->ignore($this->recurring_expense->id); $rules['number'] = Rule::unique('recurring_expenses')->where('company_id', auth()->user()->company()->id)->ignore($this->recurring_expense->id);
} }
$rules['tax_amount1'] = 'numeric';
$rules['tax_amount2'] = 'numeric';
$rules['tax_amount3'] = 'numeric';
return $this->globalRules($rules); return $this->globalRules($rules);
} }

View File

@ -92,7 +92,7 @@ class ClientContact extends Authenticatable implements HasLocalePreference
'custom_value4', 'custom_value4',
'email', 'email',
'is_primary', 'is_primary',
// 'client_id', 'send_email',
]; ];
/** /**

View File

@ -84,7 +84,7 @@ class GatewayType extends StaticModel
case self::EPS: case self::EPS:
return ctrans('texts.eps'); return ctrans('texts.eps');
case self::BECS: case self::BECS:
return ctrans('tets.becs'); return ctrans('texts.becs');
case self::ACSS: case self::ACSS:
return ctrans('texts.acss'); return ctrans('texts.acss');
case self::DIRECT_DEBIT: case self::DIRECT_DEBIT:

View File

@ -185,7 +185,7 @@ class WePayPaymentDriver extends BaseDriver
} }
if (! isset($objectType)) { if (! isset($objectType)) {
throw new Exception('Could not find object id parameter'); throw new \Exception('Could not find object id parameter');
} }
if ($objectType == 'credit_card') { if ($objectType == 'credit_card') {

View File

@ -113,25 +113,26 @@ class BaseRepository
* @param $action * @param $action
* *
* @return int * @return int
* @deprecated - this doesn't appear to be used anywhere?
*/ */
public function bulk($ids, $action) // public function bulk($ids, $action)
{ // {
if (! $ids) { // if (! $ids) {
return 0; // return 0;
} // }
$ids = $this->transformKeys($ids); // $ids = $this->transformKeys($ids);
$entities = $this->findByPublicIdsWithTrashed($ids); // $entities = $this->findByPublicIdsWithTrashed($ids);
foreach ($entities as $entity) { // foreach ($entities as $entity) {
if (auth()->user()->can('edit', $entity)) { // if (auth()->user()->can('edit', $entity)) {
$this->$action($entity); // $this->$action($entity);
} // }
} // }
return count($entities); // return count($entities);
} // }
/* Returns an invoice if defined as a key in the $resource array*/ /* Returns an invoice if defined as a key in the $resource array*/
public function getInvitation($invitation, $resource) public function getInvitation($invitation, $resource)

View File

@ -134,9 +134,9 @@ class InvoiceService
* *
* @return InvoiceService Parent class object * @return InvoiceService Parent class object
*/ */
public function updateBalance($balance_adjustment) public function updateBalance($balance_adjustment, bool $is_draft = false)
{ {
$this->invoice = (new UpdateBalance($this->invoice, $balance_adjustment))->run(); $this->invoice = (new UpdateBalance($this->invoice, $balance_adjustment, $is_draft))->run();
if ((int)$this->invoice->balance == 0) { if ((int)$this->invoice->balance == 0) {
$this->invoice->next_send_date = null; $this->invoice->next_send_date = null;
@ -339,6 +339,10 @@ class InvoiceService
public function removeUnpaidGatewayFees() public function removeUnpaidGatewayFees()
{ {
//return early if type three does not exist.
if(!collect($this->invoice->line_items)->contains('type_id', 3))
return $this;
$this->invoice->line_items = collect($this->invoice->line_items) $this->invoice->line_items = collect($this->invoice->line_items)
->reject(function ($item) { ->reject(function ($item) {
return $item->type_id == '3'; return $item->type_id == '3';

View File

@ -47,7 +47,7 @@ class MarkSent extends AbstractService
->service() ->service()
->applyNumber() ->applyNumber()
->setDueDate() ->setDueDate()
->updateBalance($this->invoice->amount) ->updateBalance($this->invoice->amount, true)
->deletePdf() ->deletePdf()
->setReminder() ->setReminder()
->save(); ->save();

View File

@ -20,10 +20,13 @@ class UpdateBalance extends AbstractService
public $balance_adjustment; public $balance_adjustment;
public function __construct($invoice, $balance_adjustment) private $is_draft;
public function __construct($invoice, $balance_adjustment, bool $is_draft)
{ {
$this->invoice = $invoice; $this->invoice = $invoice;
$this->balance_adjustment = $balance_adjustment; $this->balance_adjustment = $balance_adjustment;
$this->is_draft = $is_draft;
} }
public function run() public function run()
@ -34,7 +37,7 @@ class UpdateBalance extends AbstractService
$this->invoice->balance += floatval($this->balance_adjustment); $this->invoice->balance += floatval($this->balance_adjustment);
if ($this->invoice->balance == 0) { if ($this->invoice->balance == 0 && !$this->is_draft) {
$this->invoice->status_id = Invoice::STATUS_PAID; $this->invoice->status_id = Invoice::STATUS_PAID;
} }

View File

@ -22,7 +22,7 @@
</label> </label>
<div id="mandate-acceptance"> <div id="mandate-acceptance">
<input type="checkbox" id="becs-mandate-acceptance" class="input mr-4"> <input type="checkbox" id="becs-mandate-acceptance" class="input mr-4">
<label for="becs-mandate-acceptance">{{ctrans('texts.becs_mandat')}}</label> <label for="becs-mandate-acceptance">{{ctrans('texts.becs_mandate')}}</label>
</div> </div>
</form> </form>
@endcomponent @endcomponent

View File

@ -32,6 +32,10 @@ class DownloadHistoricalInvoiceTest extends TestCase
parent::setUp(); parent::setUp();
$this->makeTestData(); $this->makeTestData();
if (config('ninja.testvars.travis') !== false) {
$this->markTestSkipped('Skip test for Travis');
}
} }
private function mockActivity() private function mockActivity()

View File

@ -10,6 +10,7 @@
*/ */
namespace Tests\Unit; namespace Tests\Unit;
use App\Factory\InvoiceItemFactory;
use App\Utils\Traits\UserSessionAttributes; use App\Utils\Traits\UserSessionAttributes;
use Illuminate\Support\Facades\Session; use Illuminate\Support\Facades\Session;
use Tests\TestCase; use Tests\TestCase;
@ -19,13 +20,10 @@ use Tests\TestCase;
*/ */
class CollectionMergingTest extends TestCase class CollectionMergingTest extends TestCase
{ {
use UserSessionAttributes;
public function setUp() :void public function setUp() :void
{ {
parent::setUp(); parent::setUp();
Session::start();
} }
public function testUniqueValues() public function testUniqueValues()
@ -62,4 +60,21 @@ class CollectionMergingTest extends TestCase
$intersect = $collection->intersectByKeys($collection->flatten(1)->unique()); $intersect = $collection->intersectByKeys($collection->flatten(1)->unique());
$this->assertEquals(11, $intersect->count()); $this->assertEquals(11, $intersect->count());
} }
public function testExistenceInCollection()
{
$items = InvoiceItemFactory::generate(5);
$this->assertFalse(collect($items)->contains('type_id', "3"));
$this->assertFalse(collect($items)->contains('type_id', 3));
$item = InvoiceItemFactory::create();
$item->type_id = "3";
$items[] = $item;
$this->assertTrue(collect($items)->contains('type_id', "3"));
$this->assertTrue(collect($items)->contains('type_id', 3));
}
} }