mirror of
				https://github.com/crater-invoice/crater.git
				synced 2025-10-28 04:01:10 -04:00 
			
		
		
		
	add customer filter on index
This commit is contained in:
		| @ -37,8 +37,13 @@ class ExpensesController extends Controller | |||||||
|             ->select('expenses.*', 'expense_categories.name') |             ->select('expenses.*', 'expense_categories.name') | ||||||
|             ->paginate($limit); |             ->paginate($limit); | ||||||
|  |  | ||||||
|  |         $customers = User::customer() | ||||||
|  |             ->whereCompany($request->header('company')) | ||||||
|  |             ->get(); | ||||||
|  |  | ||||||
|         return response()->json([ |         return response()->json([ | ||||||
|             'expenses' => $expenses, |             'expenses' => $expenses, | ||||||
|  |             'customers' => $customers, | ||||||
|             'currency' => Currency::findOrFail( |             'currency' => Currency::findOrFail( | ||||||
|                 CompanySetting::getSetting('currency', $request->header('company')) |                 CompanySetting::getSetting('currency', $request->header('company')) | ||||||
|             ) |             ) | ||||||
|  | |||||||
| @ -412,6 +412,7 @@ | |||||||
|     "title": "النفقات", |     "title": "النفقات", | ||||||
|     "expenses_list": "قائمة النفقات", |     "expenses_list": "قائمة النفقات", | ||||||
|     "expense_title": "Title", |     "expense_title": "Title", | ||||||
|  |     "select_a_customer": "حدد عميلاً", | ||||||
|     "customer": "العميل", |     "customer": "العميل", | ||||||
|     "contact": "تواصل", |     "contact": "تواصل", | ||||||
|     "category": "الفئة", |     "category": "الفئة", | ||||||
|  | |||||||
| @ -201,6 +201,7 @@ | |||||||
|     "action": "Aktion", |     "action": "Aktion", | ||||||
|     "add_expense": "Aufwendung hinzufügen", |     "add_expense": "Aufwendung hinzufügen", | ||||||
|     "add_new_expense": "Neue Aufwendung hinzufügen", |     "add_new_expense": "Neue Aufwendung hinzufügen", | ||||||
|  |     "select_a_customer": "Wählen Sie einen Kunden aus", | ||||||
|     "amount": "Summe", |     "amount": "Summe", | ||||||
|     "categories": { |     "categories": { | ||||||
|       "actions": "Aktionen", |       "actions": "Aktionen", | ||||||
|  | |||||||
| @ -426,6 +426,7 @@ | |||||||
|   "expenses": { |   "expenses": { | ||||||
|     "title": "Expenses", |     "title": "Expenses", | ||||||
|     "expenses_list": "Expenses List", |     "expenses_list": "Expenses List", | ||||||
|  |     "select_a_customer": "Select a customer", | ||||||
|     "expense_title": "Title", |     "expense_title": "Title", | ||||||
|     "customer": "Customer", |     "customer": "Customer", | ||||||
|     "contact": "Contact", |     "contact": "Contact", | ||||||
|  | |||||||
| @ -413,6 +413,7 @@ | |||||||
|     "expense_title": "Título", |     "expense_title": "Título", | ||||||
|     "contact": "Contacto", |     "contact": "Contacto", | ||||||
|     "customer": "Cliente", |     "customer": "Cliente", | ||||||
|  |     "select_a_customer": "Selecciona un cliente", | ||||||
|     "category": "Categoría", |     "category": "Categoría", | ||||||
|     "from_date": "Desde la fecha", |     "from_date": "Desde la fecha", | ||||||
|     "to_date": "Hasta la fecha", |     "to_date": "Hasta la fecha", | ||||||
|  | |||||||
| @ -411,6 +411,7 @@ | |||||||
|     "expense_title": "Titre", |     "expense_title": "Titre", | ||||||
|     "contact": "Contact", |     "contact": "Contact", | ||||||
|     "customer": "Client Client", |     "customer": "Client Client", | ||||||
|  |     "select_a_customer": "Sélectionnez un client", | ||||||
|     "category": "Catégorie", |     "category": "Catégorie", | ||||||
|     "from_date": "A partir de la date", |     "from_date": "A partir de la date", | ||||||
|     "to_date": "À ce jour", |     "to_date": "À ce jour", | ||||||
|  | |||||||
| @ -43,7 +43,19 @@ | |||||||
|     <transition name="fade"> |     <transition name="fade"> | ||||||
|       <div v-show="showFilters" class="filter-section"> |       <div v-show="showFilters" class="filter-section"> | ||||||
|         <div class="row"> |         <div class="row"> | ||||||
|           <div class="col-md-4"> |           <div class="col-md-3"> | ||||||
|  |             <label>{{ $t('expenses.customer') }}</label> | ||||||
|  |             <base-select | ||||||
|  |               v-model="filters.user" | ||||||
|  |               :options="customers" | ||||||
|  |               :searchable="true" | ||||||
|  |               :show-labels="false" | ||||||
|  |               :placeholder="$t('expenses.select_a_customer')" | ||||||
|  |               label="name" | ||||||
|  |               @click="filter = ! filter" | ||||||
|  |             /> | ||||||
|  |           </div> | ||||||
|  |           <div class="col-md-3"> | ||||||
|             <label>{{ $t('expenses.category') }}</label> |             <label>{{ $t('expenses.category') }}</label> | ||||||
|             <base-select |             <base-select | ||||||
|               v-model="filters.category" |               v-model="filters.category" | ||||||
| @ -55,7 +67,7 @@ | |||||||
|               @click="filter = ! filter" |               @click="filter = ! filter" | ||||||
|             /> |             /> | ||||||
|           </div> |           </div> | ||||||
|           <div class="col-md-4"> |           <div class="col-md-3"> | ||||||
|             <label>{{ $t('expenses.from_date') }}</label> |             <label>{{ $t('expenses.from_date') }}</label> | ||||||
|             <base-date-picker |             <base-date-picker | ||||||
|               v-model="filters.from_date" |               v-model="filters.from_date" | ||||||
| @ -63,7 +75,7 @@ | |||||||
|               calendar-button-icon="calendar" |               calendar-button-icon="calendar" | ||||||
|             /> |             /> | ||||||
|           </div> |           </div> | ||||||
|           <div class="col-md-4"> |           <div class="col-md-3"> | ||||||
|             <label>{{ $t('expenses.to_date') }}</label> |             <label>{{ $t('expenses.to_date') }}</label> | ||||||
|             <base-date-picker |             <base-date-picker | ||||||
|               v-model="filters.to_date" |               v-model="filters.to_date" | ||||||
| @ -237,10 +249,12 @@ export default { | |||||||
|       showFilters: false, |       showFilters: false, | ||||||
|       filtersApplied: false, |       filtersApplied: false, | ||||||
|       isRequestOngoing: true, |       isRequestOngoing: true, | ||||||
|  |       customers: [], | ||||||
|       filters: { |       filters: { | ||||||
|         category: null, |         category: null, | ||||||
|         from_date: '', |         from_date: '', | ||||||
|         to_date: '' |         to_date: '', | ||||||
|  |         user: '' | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|   }, |   }, | ||||||
| @ -308,6 +322,7 @@ export default { | |||||||
|     ]), |     ]), | ||||||
|     async fetchData ({ page, filter, sort }) { |     async fetchData ({ page, filter, sort }) { | ||||||
|       let data = { |       let data = { | ||||||
|  |         user_id: this.filters.user ? this.filters.user.id : null, | ||||||
|         expense_category_id: this.filters.category !== null ? this.filters.category.id : '', |         expense_category_id: this.filters.category !== null ? this.filters.category.id : '', | ||||||
|         from_date: this.filters.from_date === '' ? this.filters.from_date : moment(this.filters.from_date).format('DD/MM/YYYY'), |         from_date: this.filters.from_date === '' ? this.filters.from_date : moment(this.filters.from_date).format('DD/MM/YYYY'), | ||||||
|         to_date: this.filters.to_date === '' ? this.filters.to_date : moment(this.filters.to_date).format('DD/MM/YYYY'), |         to_date: this.filters.to_date === '' ? this.filters.to_date : moment(this.filters.to_date).format('DD/MM/YYYY'), | ||||||
| @ -318,6 +333,7 @@ export default { | |||||||
|  |  | ||||||
|       this.isRequestOngoing = true |       this.isRequestOngoing = true | ||||||
|       let response = await this.fetchExpenses(data) |       let response = await this.fetchExpenses(data) | ||||||
|  |       this.customers = response.data.customers | ||||||
|       this.isRequestOngoing = false |       this.isRequestOngoing = false | ||||||
|  |  | ||||||
|       return { |       return { | ||||||
| @ -340,7 +356,8 @@ export default { | |||||||
|       this.filters = { |       this.filters = { | ||||||
|         category: null, |         category: null, | ||||||
|         from_date: '', |         from_date: '', | ||||||
|         to_date: '' |         to_date: '', | ||||||
|  |         user: null | ||||||
|       } |       } | ||||||
|  |  | ||||||
|       this.$nextTick(() => { |       this.$nextTick(() => { | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user