added customer and vendor scopes

This commit is contained in:
denisdulici 2020-04-07 14:39:35 +03:00
parent d94bf5d5b5
commit a2b17eaab5
9 changed files with 50 additions and 37 deletions

View File

@ -82,17 +82,17 @@ abstract class Report
public function getCustomers()
{
return $this->getContacts($this->getCustomerTypes());
return $this->getContacts('customer');
}
public function getVendors()
{
return $this->getContacts($this->getVendorTypes());
return $this->getContacts('vendor');
}
public function getContacts($types)
public function getContacts($type)
{
return Contact::type($types)->orderBy('name')->pluck('name', 'id')->toArray();
return Contact::$type()->orderBy('name')->pluck('name', 'id')->toArray();
}
public function applyDateFilter($event)

View File

@ -9,12 +9,9 @@ use App\Models\Common\Contact;
use App\Models\Purchase\Bill;
use App\Models\Sale\Invoice;
use App\Models\Common\Item;
use App\Traits\Contacts;
class Search extends Controller
{
use Contacts;
/**
* Display a listing of the resource.
*
@ -82,7 +79,7 @@ class Search extends Controller
}
}*/
$customers = Contact::type($this->getCustomerTypes())->enabled()->usingSearchString($keyword)->get();
$customers = Contact::customer()->enabled()->usingSearchString($keyword)->get();
if ($customers->count()) {
foreach ($customers as $customer) {
@ -124,7 +121,7 @@ class Search extends Controller
}
}*/
$vendors = Contact::type($this->getVendorTypes())->enabled()->usingSearchString($keyword)->get();
$vendors = Contact::vendor()->enabled()->usingSearchString($keyword)->get();
if ($vendors->count()) {
foreach ($vendors as $vendor) {

View File

@ -20,7 +20,6 @@ use App\Models\Purchase\Bill;
use App\Models\Setting\Category;
use App\Models\Setting\Currency;
use App\Models\Setting\Tax;
use App\Traits\Contacts;
use App\Traits\Currencies;
use App\Traits\DateTime;
use App\Traits\Purchases;
@ -29,7 +28,7 @@ use App\Utilities\Modules;
class Bills extends Controller
{
use Contacts, Currencies, DateTime, Purchases, Uploads;
use Currencies, DateTime, Purchases, Uploads;
/**
* Display a listing of the resource.
@ -40,7 +39,7 @@ class Bills extends Controller
{
$bills = Bill::with(['contact', 'items', 'histories', 'transactions'])->collect(['billed_at'=> 'desc']);
$vendors = Contact::type($this->getVendorTypes())->enabled()->orderBy('name')->pluck('name', 'id');
$vendors = Contact::vendor()->enabled()->orderBy('name')->pluck('name', 'id');
$categories = Category::type('expense')->enabled()->orderBy('name')->pluck('name', 'id');
@ -66,7 +65,7 @@ class Bills extends Controller
$account_currency_code = Account::where('id', setting('default.account'))->pluck('currency_code')->first();
$vendors = Contact::type($this->getVendorTypes())->enabled()->orderBy('name')->pluck('name', 'id');
$vendors = Contact::vendor()->enabled()->orderBy('name')->pluck('name', 'id');
$categories = Category::type('expense')->enabled()->orderBy('name')->pluck('name', 'id');
@ -97,7 +96,7 @@ class Bills extends Controller
*/
public function create()
{
$vendors = Contact::type($this->getVendorTypes())->enabled()->orderBy('name')->pluck('name', 'id');
$vendors = Contact::vendor()->enabled()->orderBy('name')->pluck('name', 'id');
$currencies = Currency::enabled()->orderBy('name')->pluck('name', 'code')->toArray();
@ -193,7 +192,7 @@ class Bills extends Controller
*/
public function edit(Bill $bill)
{
$vendors = Contact::type($this->getVendorTypes())->enabled()->orderBy('name')->pluck('name', 'id');
$vendors = Contact::vendor()->enabled()->orderBy('name')->pluck('name', 'id');
$currencies = Currency::enabled()->orderBy('name')->pluck('name', 'code')->toArray();

View File

@ -15,14 +15,13 @@ use App\Models\Banking\Transaction;
use App\Models\Common\Contact;
use App\Models\Setting\Category;
use App\Models\Setting\Currency;
use App\Traits\Contacts;
use App\Traits\Currencies;
use App\Traits\DateTime;
use App\Utilities\Modules;
class Payments extends Controller
{
use Contacts, Currencies, DateTime;
use Currencies, DateTime;
/**
* Display a listing of the resource.
@ -33,7 +32,7 @@ class Payments extends Controller
{
$payments = Transaction::type('expense')->with(['account', 'category', 'contact'])->isNotTransfer()->collect(['paid_at'=> 'desc']);
$vendors = Contact::type($this->getVendorTypes())->enabled()->orderBy('name')->pluck('name', 'id');
$vendors = Contact::vendor()->enabled()->orderBy('name')->pluck('name', 'id');
$categories = Category::type('expense')->enabled()->orderBy('name')->pluck('name', 'id');
@ -67,7 +66,7 @@ class Payments extends Controller
$currency = Currency::where('code', $account_currency_code)->first();
$vendors = Contact::type($this->getVendorTypes())->enabled()->orderBy('name')->pluck('name', 'id');
$vendors = Contact::vendor()->enabled()->orderBy('name')->pluck('name', 'id');
$categories = Category::type('expense')->enabled()->orderBy('name')->pluck('name', 'id');
@ -155,7 +154,7 @@ class Payments extends Controller
$currency = Currency::where('code', $payment->currency_code)->first();
$vendors = Contact::type($this->getVendorTypes())->enabled()->orderBy('name')->pluck('name', 'id');
$vendors = Contact::vendor()->enabled()->orderBy('name')->pluck('name', 'id');
$categories = Category::type('expense')->enabled()->orderBy('name')->pluck('name', 'id');

View File

@ -28,7 +28,7 @@ class Vendors extends Controller
*/
public function index()
{
$vendors = Contact::type($this->getVendorTypes())->collect();
$vendors = Contact::vendor()->collect();
return view('purchases.vendors.index', compact('vendors'));
}

View File

@ -14,14 +14,11 @@ use App\Models\Banking\Transaction;
use App\Models\Common\Contact;
use App\Models\Sale\Invoice;
use App\Models\Setting\Currency;
use App\Traits\Contacts;
use Date;
use Illuminate\Http\Request as BaseRequest;
class Customers extends Controller
{
use Contacts;
/**
* Display a listing of the resource.
*
@ -29,7 +26,7 @@ class Customers extends Controller
*/
public function index()
{
$customers = Contact::type($this->getCustomerTypes())->collect();
$customers = Contact::customer()->collect();
return view('sales.customers.index', compact('customers'));
}

View File

@ -20,7 +20,6 @@ use App\Models\Setting\Category;
use App\Models\Setting\Currency;
use App\Models\Setting\Tax;
use App\Notifications\Sale\Invoice as Notification;
use App\Traits\Contacts;
use App\Traits\Currencies;
use App\Traits\DateTime;
use App\Traits\Sales;
@ -30,7 +29,7 @@ use Illuminate\Support\Facades\URL;
class Invoices extends Controller
{
use Contacts, Currencies, DateTime, Sales;
use Currencies, DateTime, Sales;
/**
* Display a listing of the resource.
@ -41,7 +40,7 @@ class Invoices extends Controller
{
$invoices = Invoice::with(['contact', 'items', 'histories', 'transactions'])->collect(['invoice_number'=> 'desc']);
$customers = Contact::type($this->getCustomerTypes())->enabled()->orderBy('name')->pluck('name', 'id');
$customers = Contact::customer()->enabled()->orderBy('name')->pluck('name', 'id');
$categories = Category::type('income')->enabled()->orderBy('name')->pluck('name', 'id');
@ -67,7 +66,7 @@ class Invoices extends Controller
$account_currency_code = Account::where('id', setting('default.account'))->pluck('currency_code')->first();
$customers = Contact::type($this->getCustomerTypes())->enabled()->orderBy('name')->pluck('name', 'id');
$customers = Contact::customer()->enabled()->orderBy('name')->pluck('name', 'id');
$categories = Category::type('income')->enabled()->orderBy('name')->pluck('name', 'id');
@ -100,7 +99,7 @@ class Invoices extends Controller
*/
public function create()
{
$customers = Contact::type($this->getCustomerTypes())->enabled()->orderBy('name')->pluck('name', 'id');
$customers = Contact::customer()->enabled()->orderBy('name')->pluck('name', 'id');
$currencies = Currency::enabled()->orderBy('name')->pluck('name', 'code')->toArray();
@ -196,7 +195,7 @@ class Invoices extends Controller
*/
public function edit(Invoice $invoice)
{
$customers = Contact::type($this->getCustomerTypes())->enabled()->orderBy('name')->pluck('name', 'id');
$customers = Contact::customer()->enabled()->orderBy('name')->pluck('name', 'id');
$currencies = Currency::enabled()->orderBy('name')->pluck('name', 'code')->toArray();

View File

@ -15,14 +15,13 @@ use App\Models\Banking\Transaction;
use App\Models\Common\Contact;
use App\Models\Setting\Category;
use App\Models\Setting\Currency;
use App\Traits\Contacts;
use App\Traits\Currencies;
use App\Traits\DateTime;
use App\Utilities\Modules;
class Revenues extends Controller
{
use Contacts, Currencies, DateTime;
use Currencies, DateTime;
/**
* Display a listing of the resource.
@ -33,7 +32,7 @@ class Revenues extends Controller
{
$revenues = Transaction::type('income')->with(['account', 'category', 'contact'])->isNotTransfer()->collect(['paid_at'=> 'desc']);
$customers = Contact::type($this->getCustomerTypes())->enabled()->orderBy('name')->pluck('name', 'id');
$customers = Contact::customer()->enabled()->orderBy('name')->pluck('name', 'id');
$categories = Category::type('income')->enabled()->orderBy('name')->pluck('name', 'id');
@ -67,7 +66,7 @@ class Revenues extends Controller
$currency = Currency::where('code', $account_currency_code)->first();
$customers = Contact::type($this->getCustomerTypes())->enabled()->orderBy('name')->pluck('name', 'id');
$customers = Contact::customer()->enabled()->orderBy('name')->pluck('name', 'id');
$categories = Category::type('income')->enabled()->orderBy('name')->pluck('name', 'id');
@ -155,7 +154,7 @@ class Revenues extends Controller
$currency = Currency::where('code', $revenue->currency_code)->first();
$customers = Contact::type($this->getCustomerTypes())->enabled()->orderBy('name')->pluck('name', 'id');
$customers = Contact::customer()->enabled()->orderBy('name')->pluck('name', 'id');
$categories = Category::type('income')->enabled()->orderBy('name')->pluck('name', 'id');

View File

@ -4,13 +4,14 @@ namespace App\Models\Common;
use App\Abstracts\Model;
use Bkwld\Cloner\Cloneable;
use App\Traits\Contacts;
use App\Traits\Currencies;
use App\Traits\Media;
use Illuminate\Notifications\Notifiable;
class Contact extends Model
{
use Cloneable, Currencies, Media, Notifiable;
use Cloneable, Contacts, Currencies, Media, Notifiable;
protected $table = 'contacts';
@ -79,6 +80,28 @@ class Contact extends Model
return $query->whereIn($this->table . '.type', (array) $types);
}
/**
* Scope to include only vendors.
*
* @param \Illuminate\Database\Eloquent\Builder $query
* @return \Illuminate\Database\Eloquent\Builder
*/
public function scopeVendor($query)
{
return $query->whereIn($this->table . '.type', (array) $this->getVendorTypes());
}
/**
* Scope to include only customers.
*
* @param \Illuminate\Database\Eloquent\Builder $query
* @return \Illuminate\Database\Eloquent\Builder
*/
public function scopeCustomer($query)
{
return $query->whereIn($this->table . '.type', (array) $this->getCustomerTypes());
}
public function scopeEmail($query, $email)
{
return $query->where('email', '=', $email);