add customer filter on index

This commit is contained in:
Jay Makwana
2020-03-18 17:19:09 +05:30
parent c72265ed50
commit 4bb44f8c93
7 changed files with 32 additions and 5 deletions

View File

@ -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'))
) )

View File

@ -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": "الفئة",

View File

@ -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",

View File

@ -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",

View File

@ -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",

View File

@ -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",

View File

@ -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(() => {