1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-09-20 16:31:33 +02:00

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,
CommandNotFoundException::class,
ValidationException::class,
ModelNotFoundException::class,
];
/**

View File

@ -81,8 +81,8 @@ class ContactLoginController extends Controller
{
Auth::shouldUse('contact');
if(Ninja::isHosted() && $request->has('db'))
MultiDB::setDb($request->input('db'));
if(Ninja::isHosted() && $request->has('company_key'))
MultiDB::findAndSetDbByCompanyKey($request->input('company_key'));
$this->validateLogin($request);
// 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))
->first();
auth()->guard('contact')->user()->login($client_contact, true);
auth()->guard('contact')->login($client_contact, true);
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['frequency_id'] = 'required|integer|digits_between:1,12';
$rules['tax_amount1'] = 'numeric';
$rules['tax_amount2'] = 'numeric';
$rules['tax_amount3'] = 'numeric';
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['tax_amount1'] = 'numeric';
$rules['tax_amount2'] = 'numeric';
$rules['tax_amount3'] = 'numeric';
return $this->globalRules($rules);
}

View File

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

View File

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

View File

@ -185,7 +185,7 @@ class WePayPaymentDriver extends BaseDriver
}
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') {

View File

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

View File

@ -134,9 +134,9 @@ class InvoiceService
*
* @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) {
$this->invoice->next_send_date = null;
@ -339,6 +339,10 @@ class InvoiceService
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)
->reject(function ($item) {
return $item->type_id == '3';

View File

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

View File

@ -20,10 +20,13 @@ class UpdateBalance extends AbstractService
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->balance_adjustment = $balance_adjustment;
$this->is_draft = $is_draft;
}
public function run()
@ -34,7 +37,7 @@ class UpdateBalance extends AbstractService
$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;
}

View File

@ -22,7 +22,7 @@
</label>
<div id="mandate-acceptance">
<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>
</form>
@endcomponent

View File

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

View File

@ -10,6 +10,7 @@
*/
namespace Tests\Unit;
use App\Factory\InvoiceItemFactory;
use App\Utils\Traits\UserSessionAttributes;
use Illuminate\Support\Facades\Session;
use Tests\TestCase;
@ -19,13 +20,10 @@ use Tests\TestCase;
*/
class CollectionMergingTest extends TestCase
{
use UserSessionAttributes;
public function setUp() :void
{
parent::setUp();
Session::start();
}
public function testUniqueValues()
@ -62,4 +60,21 @@ class CollectionMergingTest extends TestCase
$intersect = $collection->intersectByKeys($collection->flatten(1)->unique());
$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));
}
}