v2 first commit
This commit is contained in:
		
							
								
								
									
										102
									
								
								app/BulkActions/Expenses/Bills.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										102
									
								
								app/BulkActions/Expenses/Bills.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,102 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\BulkActions\Expenses;
 | 
			
		||||
 | 
			
		||||
use App\Abstracts\BulkAction;
 | 
			
		||||
use App\Exports\Expenses\Bills as Export;
 | 
			
		||||
use App\Models\Expense\Bill;
 | 
			
		||||
use App\Models\Expense\BillHistory;
 | 
			
		||||
 | 
			
		||||
class Bills extends BulkAction
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    public $model = Bill::class;
 | 
			
		||||
 | 
			
		||||
    public $actions = [
 | 
			
		||||
        'received' => [
 | 
			
		||||
            'name' => 'general.received',
 | 
			
		||||
            'message' => '',
 | 
			
		||||
            'permission' => 'update-expenses-bills'
 | 
			
		||||
        ],
 | 
			
		||||
        'duplicate' => [
 | 
			
		||||
            'name' => 'general.duplicate',
 | 
			
		||||
            'message' => 'bulk_actions.message.duplicate',
 | 
			
		||||
            'permission' => 'create-expenses-bills',
 | 
			
		||||
            'multiple' => true
 | 
			
		||||
        ],
 | 
			
		||||
        'export' => [
 | 
			
		||||
            'name' => 'general.export',
 | 
			
		||||
            'message' => 'bulk_actions.message.exports',
 | 
			
		||||
        ],
 | 
			
		||||
        'delete' => [
 | 
			
		||||
            'name' => 'general.delete',
 | 
			
		||||
            'message' => 'bulk_actions.message.deletes',
 | 
			
		||||
            'permission' => 'delete-expenses-bills'
 | 
			
		||||
        ]
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    public function duplicate($request)
 | 
			
		||||
    {
 | 
			
		||||
        $selected = $request->get('selected', []);
 | 
			
		||||
 | 
			
		||||
        $bills = $this->model::find($selected);
 | 
			
		||||
 | 
			
		||||
        foreach ($bills as $bill) {
 | 
			
		||||
            $clone = $bill->duplicate();
 | 
			
		||||
 | 
			
		||||
            // Add bill history
 | 
			
		||||
            BillHistory::create([
 | 
			
		||||
                'company_id' => session('company_id'),
 | 
			
		||||
                'bill_id' => $clone->id,
 | 
			
		||||
                'status_code' => 'draft',
 | 
			
		||||
                'notify' => 0,
 | 
			
		||||
                'description' => trans('messages.success.added', ['type' => $clone->bill_number]),
 | 
			
		||||
            ]);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function delete($request)
 | 
			
		||||
    {
 | 
			
		||||
        $this->destroy($request);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function destroy($request)
 | 
			
		||||
    {
 | 
			
		||||
        $selected = $request->get('selected', []);
 | 
			
		||||
 | 
			
		||||
        $bills = $this->model::find($selected);
 | 
			
		||||
 | 
			
		||||
        foreach ($bills as $bill) {
 | 
			
		||||
            $this->deleteRelationships($bill, ['items', 'item_taxes', 'histories', 'payments', 'recurring', 'totals']);
 | 
			
		||||
            $bill->delete();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function export($request)
 | 
			
		||||
    {
 | 
			
		||||
        $selected = $request->get('selected', []);
 | 
			
		||||
 | 
			
		||||
        return \Excel::download(new Export($selected), trans_choice('general.bills', 2) . '.xlsx');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function received($request)
 | 
			
		||||
    {
 | 
			
		||||
        $selected = $request->get('selected', []);
 | 
			
		||||
 | 
			
		||||
        $bills = $this->model::find($selected);
 | 
			
		||||
 | 
			
		||||
        foreach ($bills as $bill) {
 | 
			
		||||
            $bill->bill_status_code = 'received';
 | 
			
		||||
            $bill->save();
 | 
			
		||||
 | 
			
		||||
            // Add bill history
 | 
			
		||||
            BillHistory::create([
 | 
			
		||||
                'company_id' => $bill->company_id,
 | 
			
		||||
                'bill_id' => $bill->id,
 | 
			
		||||
                'status_code' => 'received',
 | 
			
		||||
                'notify' => 0,
 | 
			
		||||
                'description' => trans('bills.mark_recevied'),
 | 
			
		||||
            ]);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										77
									
								
								app/BulkActions/Expenses/Payments.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								app/BulkActions/Expenses/Payments.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,77 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\BulkActions\Expenses;
 | 
			
		||||
 | 
			
		||||
use App\Abstracts\BulkAction;
 | 
			
		||||
use App\Exports\Expenses\Payments as Export;
 | 
			
		||||
use App\Models\Banking\Transaction;
 | 
			
		||||
use App\Models\Setting\Category;
 | 
			
		||||
 | 
			
		||||
class Payments extends BulkAction
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    public $model = Transaction::class;
 | 
			
		||||
 | 
			
		||||
    public $actions = [
 | 
			
		||||
        'duplicate' => [
 | 
			
		||||
            'name' => 'general.duplicate',
 | 
			
		||||
            'message' => 'bulk_actions.message.duplicate',
 | 
			
		||||
            'permission' => 'create-expenses-payments',
 | 
			
		||||
            'multiple' => true
 | 
			
		||||
        ],
 | 
			
		||||
        'export' => [
 | 
			
		||||
            'name' => 'general.export',
 | 
			
		||||
            'message' => 'bulk_actions.message.exports',
 | 
			
		||||
        ],
 | 
			
		||||
        'delete' => [
 | 
			
		||||
            'name' => 'general.delete',
 | 
			
		||||
            'message' => 'bulk_actions.message.deletes',
 | 
			
		||||
            'permission' => 'delete-expenses-payments'
 | 
			
		||||
        ]
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    public function duplicate($request)
 | 
			
		||||
    {
 | 
			
		||||
        $selected = $request->get('selected', []);
 | 
			
		||||
 | 
			
		||||
        $transactions = $this->model::find($selected);
 | 
			
		||||
 | 
			
		||||
        foreach ($transactions as $transaction) {
 | 
			
		||||
            $clone = $transaction->duplicate();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function delete($request)
 | 
			
		||||
    {
 | 
			
		||||
        $this->destroy($request);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function destroy($request)
 | 
			
		||||
    {
 | 
			
		||||
        $selected = $request->get('selected', []);
 | 
			
		||||
 | 
			
		||||
        $transactions = $this->model::find($selected);
 | 
			
		||||
 | 
			
		||||
        foreach ($transactions as $transaction) {
 | 
			
		||||
            if ($transaction->category->id != Category::transfer()) {
 | 
			
		||||
                $type = $transaction->type;
 | 
			
		||||
 | 
			
		||||
                $transaction->recurring()->delete();
 | 
			
		||||
                $transaction->delete();
 | 
			
		||||
 | 
			
		||||
                $message = trans('messages.success.deleted', ['type' => trans_choice('general.' . \Str::plural($type), 1)]);
 | 
			
		||||
 | 
			
		||||
                return new Response($message);
 | 
			
		||||
            } else {
 | 
			
		||||
                $this->response->errorUnauthorized();
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function export($request)
 | 
			
		||||
    {
 | 
			
		||||
        $selected = $request->get('selected', []);
 | 
			
		||||
 | 
			
		||||
        return \Excel::download(new Export($selected), trans_choice('general.payments', 2) . '.xlsx');
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										97
									
								
								app/BulkActions/Expenses/Vendors.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										97
									
								
								app/BulkActions/Expenses/Vendors.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,97 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\BulkActions\Expenses;
 | 
			
		||||
 | 
			
		||||
use App\Abstracts\BulkAction;
 | 
			
		||||
use App\Exports\Expenses\Vendors as Export;
 | 
			
		||||
use App\Models\Common\Contact;
 | 
			
		||||
 | 
			
		||||
class Vendors extends BulkAction
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    public $model = Contact::class;
 | 
			
		||||
 | 
			
		||||
    public $actions = [
 | 
			
		||||
        'enable' => [
 | 
			
		||||
            'name' => 'general.enable',
 | 
			
		||||
            'message' => 'bulk_actions.message.enable',
 | 
			
		||||
            'permission' => 'update-expenses-vendors'
 | 
			
		||||
        ],
 | 
			
		||||
        'disable' => [
 | 
			
		||||
            'name' => 'general.disable',
 | 
			
		||||
            'message' => 'bulk_actions.message.disable',
 | 
			
		||||
            'permission' => 'update-expenses-vendors'
 | 
			
		||||
        ],
 | 
			
		||||
        'duplicate' => [
 | 
			
		||||
            'name' => 'general.duplicate',
 | 
			
		||||
            'message' => 'bulk_actions.message.duplicate',
 | 
			
		||||
            'permission' => 'create-expenses-vendors',
 | 
			
		||||
            'multiple' => true
 | 
			
		||||
        ],
 | 
			
		||||
        'export' => [
 | 
			
		||||
            'name' => 'general.export',
 | 
			
		||||
            'message' => 'bulk_actions.message.exports',
 | 
			
		||||
        ],
 | 
			
		||||
        'delete' => [
 | 
			
		||||
            'name' => 'general.delete',
 | 
			
		||||
            'message' => 'bulk_actions.message.deletes',
 | 
			
		||||
            'permission' => 'delete-expenses-vendors'
 | 
			
		||||
        ]
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    public function duplicate($request)
 | 
			
		||||
    {
 | 
			
		||||
        $selected = $request->get('selected', []);
 | 
			
		||||
 | 
			
		||||
        $contacts = $this->model::find($selected);
 | 
			
		||||
 | 
			
		||||
        foreach ($contacts as $contact) {
 | 
			
		||||
            $clone = $contact->duplicate();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function delete($request)
 | 
			
		||||
    {
 | 
			
		||||
        $this->destroy($request);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function destroy($request)
 | 
			
		||||
    {
 | 
			
		||||
        $selected = $request->get('selected', []);
 | 
			
		||||
 | 
			
		||||
        $contacts = $this->model::find($selected);
 | 
			
		||||
 | 
			
		||||
        foreach ($contacts as $contact) {
 | 
			
		||||
            if (!$relationships = $this->getRelationships($contact)) {
 | 
			
		||||
                $contact->delete();
 | 
			
		||||
 | 
			
		||||
                $message = trans('messages.success.deleted', ['type' => $contact->name]);
 | 
			
		||||
 | 
			
		||||
                return new Response($message);
 | 
			
		||||
            } else {
 | 
			
		||||
                $message = trans('messages.warning.deleted', ['name' => $contact->name, 'text' => implode(', ', $relationships)]);
 | 
			
		||||
 | 
			
		||||
                $this->response->errorUnauthorized($message);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function export($request)
 | 
			
		||||
    {
 | 
			
		||||
        $selected = $request->get('selected', []);
 | 
			
		||||
 | 
			
		||||
        return \Excel::download(new Export($selected), trans_choice('general.vendors', 2) . '.xlsx');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected function getRelationships($contact)
 | 
			
		||||
    {
 | 
			
		||||
        $rels = [
 | 
			
		||||
            'bills' => 'bills',
 | 
			
		||||
            'payments' => 'payments',
 | 
			
		||||
        ];
 | 
			
		||||
 | 
			
		||||
        $relationships = $this->countRelationships($contact, $rels);
 | 
			
		||||
 | 
			
		||||
        return $relationships;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user