mirror of
				https://github.com/invoiceninja/invoiceninja.git
				synced 2025-11-03 23:07:32 -05:00 
			
		
		
		
	Merge pull request #6893 from turbo124/v5-develop
Minor fixes for Gateway Types
This commit is contained in:
		
						commit
						1462c9ef57
					
				@ -52,6 +52,7 @@ class Handler extends ExceptionHandler
 | 
				
			|||||||
        MaxAttemptsExceededException::class,
 | 
					        MaxAttemptsExceededException::class,
 | 
				
			||||||
        CommandNotFoundException::class,
 | 
					        CommandNotFoundException::class,
 | 
				
			||||||
        ValidationException::class,
 | 
					        ValidationException::class,
 | 
				
			||||||
 | 
					        ModelNotFoundException::class,
 | 
				
			||||||
    ];
 | 
					    ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
 | 
				
			|||||||
@ -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
 | 
				
			||||||
 | 
				
			|||||||
@ -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');
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -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);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -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);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -92,7 +92,7 @@ class ClientContact extends Authenticatable implements HasLocalePreference
 | 
				
			|||||||
        'custom_value4',
 | 
					        'custom_value4',
 | 
				
			||||||
        'email',
 | 
					        'email',
 | 
				
			||||||
        'is_primary',
 | 
					        'is_primary',
 | 
				
			||||||
        // 'client_id',
 | 
					        'send_email',
 | 
				
			||||||
    ];
 | 
					    ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
 | 
				
			|||||||
@ -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:
 | 
				
			||||||
 | 
				
			|||||||
@ -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') {
 | 
				
			||||||
 | 
				
			|||||||
@ -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)
 | 
				
			||||||
 | 
				
			|||||||
@ -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';
 | 
				
			||||||
 | 
				
			|||||||
@ -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();
 | 
				
			||||||
 | 
				
			|||||||
@ -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;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -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
 | 
				
			||||||
 | 
				
			|||||||
@ -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()
 | 
				
			||||||
 | 
				
			|||||||
@ -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));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user