mirror of
				https://github.com/invoiceninja/invoiceninja.git
				synced 2025-11-04 01:47:32 -05:00 
			
		
		
		
	bug fix to expense module - was not able to add a contact to a new vendor
This commit is contained in:
		
							parent
							
								
									172c1a0548
								
							
						
					
					
						commit
						f550e3734f
					
				@ -167,7 +167,8 @@ class VendorController extends BaseController
 | 
			
		||||
            'data' => Input::old('data'),
 | 
			
		||||
            'account' => Auth::user()->account,
 | 
			
		||||
            'sizes' => Cache::get('sizes'),
 | 
			
		||||
            'paymentTerms' => Cache::get('paymentTerms'),
 | 
			
		||||
            //'paymentTerms' => Cache::get('paymentTerms'),
 | 
			
		||||
            'paymentTerms' => PaymentTerm::get(),
 | 
			
		||||
            'industries' => Cache::get('industries'),
 | 
			
		||||
            'currencies' => Cache::get('currencies'),
 | 
			
		||||
            'languages' => Cache::get('languages'),
 | 
			
		||||
 | 
			
		||||
@ -200,7 +200,7 @@ Route::group(['middleware' => 'auth'], function() {
 | 
			
		||||
    Route::get('expenses/create/{vendor_id?}', 'ExpenseController@create');
 | 
			
		||||
    Route::post('expenses/bulk', 'ExpenseController@bulk');
 | 
			
		||||
    Route::get('api/expense/', array('as'=>'api.expenses', 'uses'=>'ExpenseController@getDatatable'));
 | 
			
		||||
    Route::get('api/expenseactivities/{vendor_id?}', array('as'=>'api.expenseactivities', 'uses'=>'ExpenseActivityController@getDatatable'));
 | 
			
		||||
    Route::get('api/expenseactivities/{expense_id?}', array('as'=>'api.expenseactivities', 'uses'=>'ExpenseActivityController@getDatatable'));
 | 
			
		||||
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -4,6 +4,7 @@ use Laracasts\Presenter\PresentableTrait;
 | 
			
		||||
use Illuminate\Database\Eloquent\SoftDeletes;
 | 
			
		||||
use App\Events\ExpenseWasCreated;
 | 
			
		||||
use App\Events\ExpenseWasUpdated;
 | 
			
		||||
use App\Events\ExpenseWasDeleted;
 | 
			
		||||
 | 
			
		||||
class Expense extends EntityModel
 | 
			
		||||
{
 | 
			
		||||
@ -91,5 +92,10 @@ Expense::updated(function ($expense) {
 | 
			
		||||
    event(new ExpenseWasUpdated($expense));
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
Expense::deleting(function ($expense) {
 | 
			
		||||
    $expense->setNullValues();
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Expense::deleted(function ($expense) {
 | 
			
		||||
    event(new ExpenseWasDeleted($expense));
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
@ -282,3 +282,11 @@ Vendor::updated(function ($vendor) {
 | 
			
		||||
    event(new VendorWasUpdated($vendor));
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Vendor::deleting(function ($vendor) {
 | 
			
		||||
    $vendor->setNullValues();
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
Vendor::deleted(function ($vendor) {
 | 
			
		||||
    event(new VendorWasDeleted($vendor));
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
@ -74,12 +74,11 @@
 | 
			
		||||
        <div class="tab-pane active" id="activity">
 | 
			
		||||
			{!! Datatable::table()
 | 
			
		||||
		    	->addColumn(
 | 
			
		||||
		    		trans('texts.date'),
 | 
			
		||||
		    		trans('texts.expense_date'),
 | 
			
		||||
		    		trans('texts.message'),
 | 
			
		||||
		    		trans('texts.balance'),
 | 
			
		||||
		    		trans('texts.adjustment'))
 | 
			
		||||
		    		trans('texts.amount'),
 | 
			
		||||
		    		trans('texts.public_notes'))
 | 
			
		||||
		    	->setUrl(url('api/expenseactivities/'. $expense->public_id))
 | 
			
		||||
                ->setCustomValues('entityType', 'activity')
 | 
			
		||||
		    	->setOptions('sPaginationType', 'bootstrap')
 | 
			
		||||
		    	->setOptions('bFilter', false)
 | 
			
		||||
		    	->setOptions('aaSorting', [['0', 'desc']])
 | 
			
		||||
@ -98,6 +97,7 @@
 | 
			
		||||
		$('.primaryDropDown:not(.dropdown-toggle)').click(function() {
 | 
			
		||||
			window.location = '{{ URL::to('expenses/create/' . $expense->public_id ) }}';
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	function onArchiveClick() {
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										24
									
								
								resources/views/vendors/edit.blade.php
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										24
									
								
								resources/views/vendors/edit.blade.php
									
									
									
									
										vendored
									
									
								
							@ -7,8 +7,8 @@
 | 
			
		||||
 | 
			
		||||
@section('content')
 | 
			
		||||
 | 
			
		||||
@if ($errors->first('vendor_contacts'))
 | 
			
		||||
    <div class="alert alert-danger">{{ trans($errors->first('vendor_contacts')) }}</div>
 | 
			
		||||
@if ($errors->first('vendorcontacts'))
 | 
			
		||||
    <div class="alert alert-danger">{{ trans($errors->first('vendorcontacts')) }}</div>
 | 
			
		||||
@endif
 | 
			
		||||
 | 
			
		||||
<div class="row">
 | 
			
		||||
@ -84,15 +84,15 @@
 | 
			
		||||
		                            beforeRemove: hideContact,
 | 
			
		||||
		                            afterAdd: showContact }'>
 | 
			
		||||
				{!! Former::hidden('public_id')->data_bind("value: public_id, valueUpdate: 'afterkeydown',
 | 
			
		||||
                        attr: {name: 'vendor_contacts[' + \$index() + '][public_id]'}") !!}
 | 
			
		||||
                        attr: {name: 'vendorcontacts[' + \$index() + '][public_id]'}") !!}
 | 
			
		||||
				{!! Former::text('first_name')->data_bind("value: first_name, valueUpdate: 'afterkeydown',
 | 
			
		||||
                        attr: {name: 'vendor_contacts[' + \$index() + '][first_name]'}") !!}
 | 
			
		||||
                        attr: {name: 'vendorcontacts[' + \$index() + '][first_name]'}") !!}
 | 
			
		||||
				{!! Former::text('last_name')->data_bind("value: last_name, valueUpdate: 'afterkeydown',
 | 
			
		||||
                        attr: {name: 'vendor_contacts[' + \$index() + '][last_name]'}") !!}
 | 
			
		||||
                        attr: {name: 'vendorcontacts[' + \$index() + '][last_name]'}") !!}
 | 
			
		||||
				{!! Former::text('email')->data_bind("value: email, valueUpdate: 'afterkeydown',
 | 
			
		||||
                        attr: {name: 'vendor_contacts[' + \$index() + '][email]', id:'email'+\$index()}") !!}
 | 
			
		||||
                        attr: {name: 'vendorcontacts[' + \$index() + '][email]', id:'email'+\$index()}") !!}
 | 
			
		||||
				{!! Former::text('phone')->data_bind("value: phone, valueUpdate: 'afterkeydown',
 | 
			
		||||
                        attr: {name: 'vendor_contacts[' + \$index() + '][phone]'}") !!}
 | 
			
		||||
                        attr: {name: 'vendorcontacts[' + \$index() + '][phone]'}") !!}
 | 
			
		||||
 | 
			
		||||
				<div class="form-group">
 | 
			
		||||
					<div class="col-lg-8 col-lg-offset-4 bold">
 | 
			
		||||
@ -175,10 +175,10 @@
 | 
			
		||||
	function VendorModel(data) {
 | 
			
		||||
		var self = this;
 | 
			
		||||
 | 
			
		||||
        self.vendor_contacts = ko.observableArray();
 | 
			
		||||
        self.vendorcontacts = ko.observableArray();
 | 
			
		||||
 | 
			
		||||
		self.mapping = {
 | 
			
		||||
		    'vendor_contacts': {
 | 
			
		||||
		    'vendorcontacts': {
 | 
			
		||||
		    	create: function(options) {
 | 
			
		||||
		    		return new VendorContactModel(options.data);
 | 
			
		||||
		    	}
 | 
			
		||||
@ -188,12 +188,12 @@
 | 
			
		||||
		if (data) {
 | 
			
		||||
			ko.mapping.fromJS(data, self.mapping, this);
 | 
			
		||||
		} else {
 | 
			
		||||
			self.vendor_contacts.push(new VendorContactModel());
 | 
			
		||||
			self.vendorcontacts.push(new VendorContactModel());
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		self.placeholderName = ko.computed(function() {
 | 
			
		||||
			if (self.vendor_contacts().length == 0) return '';
 | 
			
		||||
			var contact = self.vendor_contacts()[0];
 | 
			
		||||
			if (self.vendorcontacts().length == 0) return '';
 | 
			
		||||
			var contact = self.vendorcontacts()[0];
 | 
			
		||||
			if (contact.first_name() || contact.last_name()) {
 | 
			
		||||
				return contact.first_name() + ' ' + contact.last_name();
 | 
			
		||||
			} else {
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								resources/views/vendors/show.blade.php
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								resources/views/vendors/show.blade.php
									
									
									
									
										vendored
									
									
								
							@ -194,7 +194,7 @@
 | 
			
		||||
								trans('texts.credit_balance'),
 | 
			
		||||
								trans('texts.credit_date'),
 | 
			
		||||
								trans('texts.private_notes'))
 | 
			
		||||
				->setUrl(url('api/credits/' . $vendor->public_id))
 | 
			
		||||
				->setUrl(url('api/expenses/' . $vendor->public_id))
 | 
			
		||||
                ->setCustomValues('entityType', 'credits')
 | 
			
		||||
				->setOptions('sPaginationType', 'bootstrap')
 | 
			
		||||
				->setOptions('bFilter', false)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user