payments import/export

This commit is contained in:
denisdulici 2020-01-21 00:04:10 +03:00
parent 04173eae78
commit 9b42e2d127
3 changed files with 44 additions and 5 deletions

View File

@ -9,7 +9,7 @@ class Payments extends Export
{
public function collection()
{
$model = Model::type('expense')->usingSearchString(request('search'));
$model = Model::with(['account', 'bill', 'category', 'contact'])->type('expense')->usingSearchString(request('search'));
if (!empty($this->ids)) {
$model->whereIn('id', (array) $this->ids);
@ -18,6 +18,16 @@ class Payments extends Export
return $model->get();
}
public function map($model): array
{
$model->account_name = $model->account->name;
$model->bill_number = $model->bill ? $model->bill->bill_number : 0;
$model->contact_email = $model->contact->email;
$model->category_name = $model->category->name;
return parent::map($model);
}
public function fields(): array
{
return [
@ -25,10 +35,10 @@ class Payments extends Export
'amount',
'currency_code',
'currency_rate',
'account_id',
'document_id',
'contact_id',
'category_id',
'account_name',
'bill_number',
'contact_email',
'category_name',
'description',
'payment_method',
'reference',

View File

@ -5,6 +5,7 @@ namespace App\Imports\Purchases;
use App\Abstracts\Import;
use App\Models\Banking\Transaction as Model;
use App\Http\Requests\Banking\Transaction as Request;
use App\Models\Purchase\Bill;
class Payments extends Import
{
@ -19,6 +20,34 @@ class Payments extends Import
$row['type'] = 'expense';
if (empty($row['account_id']) && !empty($row['account_name'])) {
$row['account_id'] = $this->getAccountIdFromName($row);
}
if (empty($row['account_id']) && !empty($row['account_number'])) {
$row['account_id'] = $this->getAccountIdFromNumber($row);
}
if (empty($row['account_id']) && !empty($row['currency_code'])) {
$row['account_id'] = $this->getAccountIdFromCurrency($row);
}
if (empty($row['contact_id']) && !empty($row['contact_name'])) {
$row['contact_id'] = $this->getContactIdFromName($row, 'vendor');
}
if (empty($row['contact_id']) && !empty($row['contact_email'])) {
$row['contact_id'] = $this->getContactIdFromEmail($row, 'vendor');
}
if (empty($row['category_id']) && !empty($row['category_name'])) {
$row['category_id'] = $this->getCategoryIdFromName($row, 'expense');
}
if (!empty($row['bill_number'])) {
$row['document_id'] = Bill::number($row['bill_number'])->pluck('id')->first();
}
return $row;
}

Binary file not shown.