revenues import/export

This commit is contained in:
denisdulici
2020-01-20 23:50:19 +03:00
parent b119deca9f
commit a3372aeb63
10 changed files with 163 additions and 123 deletions

View File

@ -5,8 +5,6 @@ namespace App\Imports\Common;
use App\Abstracts\Import;
use App\Http\Requests\Common\Item as Request;
use App\Models\Common\Item as Model;
use App\Models\Setting\Category;
use App\Models\Setting\Tax;
class Items extends Import
{
@ -20,25 +18,11 @@ class Items extends Import
$row = parent::map($row);
if (empty($row['category_id']) && !empty($row['category_name'])) {
$row['category_id'] = Category::firstOrCreate([
'name' => $row['category_name'],
], [
'company_id' => session('company_id'),
'type' => 'income',
'color' => '#' . dechex(rand(0x000000, 0xFFFFFF)),
'enabled' => 1,
])->id;
$row['category_id'] = $this->getCategoryIdFromName($row, 'item');
}
if (empty($row['tax_id']) && !empty($row['tax_rate'])) {
$row['tax_id'] = Tax::firstOrCreate([
'rate' => $row['tax_rate'],
], [
'company_id' => session('company_id'),
'type' => 'normal',
'name' => $row['tax_rate'],
'enabled' => 1,
])->id;
$row['tax_id'] = $this->getTaxIdFromRate($row);
}
return $row;

View File

@ -3,8 +3,9 @@
namespace App\Imports\Sales;
use App\Abstracts\Import;
use App\Models\Banking\Transaction as Model;
use App\Http\Requests\Banking\Transaction as Request;
use App\Models\Banking\Transaction as Model;
use App\Models\Sale\Invoice;
class Revenues extends Import
{
@ -19,6 +20,34 @@ class Revenues extends Import
$row['type'] = 'income';
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, 'customer');
}
if (empty($row['contact_id']) && !empty($row['contact_email'])) {
$row['contact_id'] = $this->getContactIdFromEmail($row, 'customer');
}
if (empty($row['category_id']) && !empty($row['category_name'])) {
$row['category_id'] = $this->getCategoryIdFromName($row, 'income');
}
if (!empty($row['invoice_number'])) {
$row['document_id'] = Invoice::number($row['invoice_number'])->pluck('id')->first();
}
return $row;
}

View File

@ -40,14 +40,7 @@ class InvoiceItemTaxes extends Import
}
if (empty($row['tax_id']) && !empty($row['tax_rate'])) {
$row['tax_id'] = Tax::firstOrCreate([
'rate' => $row['tax_rate'],
], [
'company_id' => session('company_id'),
'type' => 'normal',
'name' => $row['tax_rate'],
'enabled' => 1,
])->id;
$row['tax_id'] = $this->getTaxIdFromRate($row);
}
if (empty($row['name']) && !empty($row['item_name'])) {

View File

@ -4,7 +4,6 @@ namespace App\Imports\Sales\Sheets;
use App\Abstracts\Import;
use App\Http\Requests\Sale\InvoiceItem as Request;
use App\Models\Common\Item;
use App\Models\Sale\Invoice;
use App\Models\Sale\InvoiceItem as Model;
@ -22,14 +21,7 @@ class InvoiceItems extends Import
$row['invoice_id'] = Invoice::number($row['invoice_number'])->pluck('id')->first();
if (empty($row['item_id']) && !empty($row['item_name'])) {
$row['item_id'] = Item::firstOrCreate([
'name' => $row['item_name'],
], [
'company_id' => session('company_id'),
'sale_price' => $row['price'],
'purchase_price' => $row['price'],
'enabled' => 1,
])->id;
$row['item_id'] = $this->getItemIdFromName($row);
$row['name'] = $row['item_name'];
}

View File

@ -4,11 +4,8 @@ namespace App\Imports\Sales\Sheets;
use App\Abstracts\Import;
use App\Http\Requests\Banking\Transaction as Request;
use App\Models\Banking\Account;
use App\Models\Banking\Transaction as Model;
use App\Models\Common\Contact;
use App\Models\Sale\Invoice;
use App\Models\Setting\Category;
class InvoiceTransactions extends Import
{
@ -24,73 +21,27 @@ class InvoiceTransactions extends Import
$row['type'] = 'income';
if (empty($row['account_id']) && !empty($row['account_name'])) {
$row['account_id'] = Account::firstOrCreate([
'name' => $row['account_name'],
], [
'company_id' => session('company_id'),
'number' => Account::max('number') + 1,
'currency_code' => setting('default.currency'),
'opening_balance' => 0,
'enabled' => 1,
])->id;
$row['account_id'] = $this->getAccountIdFromName($row);
}
if (empty($row['account_id']) && !empty($row['account_number'])) {
$row['account_id'] = Account::firstOrCreate([
'number' => $row['account_number'],
], [
'company_id' => session('company_id'),
'name' => $row['account_number'],
'currency_code' => setting('default.currency'),
'opening_balance' => 0,
'enabled' => 1,
])->id;
$row['account_id'] = $this->getAccountIdFromNumber($row);
}
if (empty($row['account_id']) && !empty($row['currency_code'])) {
$row['account_id'] = Account::firstOrCreate([
'currency_code' => $row['currency_code'],
], [
'company_id' => session('company_id'),
'name' => $row['currency_code'],
'number' => Account::max('number') + 1,
'opening_balance' => 0,
'enabled' => 1,
])->id;
$row['account_id'] = $this->getAccountIdFromCurrency($row);
}
if (empty($row['contact_id']) && !empty($row['contact_name'])) {
$row['contact_id'] = Contact::firstOrCreate([
'name' => $row['contact_name'],
], [
'company_id' => session('company_id'),
'type' => 'customer',
'currency_code' => setting('default.currency'),
'enabled' => 1,
])->id;
$row['contact_id'] = $this->getContactIdFromName($row, 'customer');
}
if (empty($row['contact_id']) && !empty($row['contact_email'])) {
$row['contact_id'] = Contact::firstOrCreate([
'email' => $row['contact_email'],
], [
'company_id' => session('company_id'),
'type' => 'customer',
'name' => $row['contact_email'],
'currency_code' => setting('default.currency'),
'enabled' => 1,
])->id;
$row['contact_id'] = $this->getContactIdFromEmail($row, 'customer');
}
if (empty($row['category_id']) && !empty($row['category_name'])) {
$row['category_id'] = Category::firstOrCreate([
'name' => $row['category_name'],
], [
'company_id' => session('company_id'),
'type' => 'income',
'color' => '#' . dechex(rand(0x000000, 0xFFFFFF)),
'enabled' => 1,
])->id;
$row['category_id'] = $this->getCategoryIdFromName($row, 'income');
}
$row['document_id'] = Invoice::number($row['invoice_number'])->pluck('id')->first();

View File

@ -4,9 +4,7 @@ namespace App\Imports\Sales\Sheets;
use App\Abstracts\Import;
use App\Http\Requests\Sale\Invoice as Request;
use App\Models\Common\Contact;
use App\Models\Sale\Invoice as Model;
use App\Models\Setting\Category;
class Invoices extends Import
{
@ -20,37 +18,15 @@ class Invoices extends Import
$row = parent::map($row);
if (empty($row['contact_id']) && !empty($row['contact_name'])) {
$row['contact_id'] = Contact::firstOrCreate([
'name' => $row['contact_name'],
], [
'company_id' => session('company_id'),
'type' => 'customer',
'currency_code' => setting('default.currency'),
'enabled' => 1,
])->id;
$row['contact_id'] = $this->getContactIdFromName($row, 'customer');
}
if (empty($row['contact_id']) && !empty($row['contact_email'])) {
$row['contact_id'] = Contact::firstOrCreate([
'email' => $row['contact_email'],
], [
'company_id' => session('company_id'),
'type' => 'customer',
'name' => $row['contact_email'],
'currency_code' => setting('default.currency'),
'enabled' => 1,
])->id;
$row['contact_id'] = $this->getContactIdFromEmail($row, 'customer');
}
if (empty($row['category_id']) && !empty($row['category_name'])) {
$row['category_id'] = Category::firstOrCreate([
'name' => $row['category_name'],
], [
'company_id' => session('company_id'),
'type' => 'income',
'color' => '#' . dechex(rand(0x000000, 0xFFFFFF)),
'enabled' => 1,
])->id;
$row['category_id'] = $this->getCategoryIdFromName($row, 'income');
}
return $row;