v2 first commit

This commit is contained in:
denisdulici
2019-11-16 10:21:14 +03:00
parent 5b23e9c2c4
commit 6d50fa8442
3075 changed files with 3451681 additions and 65594 deletions

View File

@@ -0,0 +1,49 @@
<?php
namespace App\Imports\Banking;
use App\Models\Banking\Transaction as Model;
use App\Http\Requests\Banking\Transaction as Request;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Concerns\WithMapping;
use Maatwebsite\Excel\Concerns\WithValidation;
use Maatwebsite\Excel\Validators\Failure;
class Transactions implements ToModel, WithHeadingRow, WithMapping, WithValidation
{
public function model(array $row)
{
return new Model($row);
}
public function map($row): array
{
$row['company_id'] = session('company_id');
// Make reconciled field integer
if (isset($row['reconciled'])) {
$row['reconciled'] = (int) $row['reconciled'];
}
return $row;
}
public function rules(): array
{
return (new Request())->rules();
}
public function onFailure(Failure ...$failures)
{
foreach ($failures as $failure) {
$message = trans('messages.error.import_column', [
'message' => $failure->errors()->first(),
'sheet' => 'transactions',
'line' => $failure->attribute(),
]);
flash($message)->error()->important();
}
}
}

View File

@@ -0,0 +1,53 @@
<?php
namespace App\Imports\Common;
use App\Models\Common\Item as Model;
use App\Http\Requests\Common\Item as Request;
use App\Jobs\Common\CreateItem;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Concerns\WithMapping;
use Maatwebsite\Excel\Concerns\WithValidation;
use Maatwebsite\Excel\Validators\Failure;
class Items implements ToModel, WithHeadingRow, WithMapping, WithValidation
{
public function model(array $row)
{
return new Model($row);
//$request = (new Request())->merge($row);
//return dispatch_now(new CreateItem($request));
}
public function map($row): array
{
$row['company_id'] = session('company_id');
// Make enabled field integer
if (isset($row['enabled'])) {
$row['enabled'] = (int) $row['enabled'];
}
return $row;
}
public function rules(): array
{
return (new Request())->rules();
}
public function onFailure(Failure ...$failures)
{
foreach ($failures as $failure) {
$message = trans('messages.error.import_column', [
'message' => $failure->errors()->first(),
'sheet' => 'items',
'line' => $failure->attribute(),
]);
flash($message)->error()->important();
}
}
}

View File

@@ -0,0 +1,26 @@
<?php
namespace App\Imports\Expenses;
use App\Imports\Expenses\Sheets\Bills as Base;
use App\Imports\Expenses\Sheets\BillItems;
use App\Imports\Expenses\Sheets\BillItemTaxes;
use App\Imports\Expenses\Sheets\BillHistories;
use App\Imports\Expenses\Sheets\BillPayments;
use App\Imports\Expenses\Sheets\BillTotals;
use Maatwebsite\Excel\Concerns\WithMultipleSheets;
class Bills implements WithMultipleSheets
{
public function sheets(): array
{
return [
'bills' => new Base(),
'bill_items' => new BillItems(),
'bill_item_taxes' => new BillItemTaxes(),
'bill_histories' => new BillHistories(),
'bill_payments' => new BillPayments(),
'bill_totals' => new BillTotals(),
];
}
}

View File

@@ -0,0 +1,50 @@
<?php
namespace App\Imports\Income;
use App\Models\Banking\Transaction as Model;
use App\Http\Requests\Banking\Transaction as Request;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Concerns\WithMapping;
use Maatwebsite\Excel\Concerns\WithValidation;
use Maatwebsite\Excel\Validators\Failure;
class Payments implements ToModel, WithHeadingRow, WithMapping, WithValidation
{
public function model(array $row)
{
return new Model($row);
}
public function map($row): array
{
$row['company_id'] = session('company_id');
$row['type'] = 'expense';
// Make reconciled field integer
if (isset($row['reconciled'])) {
$row['reconciled'] = (int) $row['reconciled'];
}
return $row;
}
public function rules(): array
{
return (new Request())->rules();
}
public function onFailure(Failure ...$failures)
{
foreach ($failures as $failure) {
$message = trans('messages.error.import_column', [
'message' => $failure->errors()->first(),
'sheet' => 'payments',
'line' => $failure->attribute(),
]);
flash($message)->error()->important();
}
}
}

View File

@@ -0,0 +1,44 @@
<?php
namespace App\Imports\Expenses\Sheets;
use App\Models\Expense\BillHistory as Model;
use App\Http\Requests\Expense\BillHistory as Request;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Concerns\WithMapping;
use Maatwebsite\Excel\Concerns\WithValidation;
use Maatwebsite\Excel\Validators\Failure;
class BillHistories implements ToModel, WithHeadingRow, WithMapping, WithValidation
{
public function model(array $row)
{
return new Model($row);
}
public function map($row): array
{
$row['company_id'] = session('company_id');
return $row;
}
public function rules(): array
{
return (new Request())->rules();
}
public function onFailure(Failure ...$failures)
{
foreach ($failures as $failure) {
$message = trans('messages.error.import_column', [
'message' => $failure->errors()->first(),
'sheet' => 'bill_histories',
'line' => $failure->attribute(),
]);
flash($message)->error()->important();
}
}
}

View File

@@ -0,0 +1,37 @@
<?php
namespace App\Imports\Expenses\Sheets;
use App\Models\Expense\BillItemTax as Model;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Concerns\WithMapping;
use Maatwebsite\Excel\Validators\Failure;
class BillItemTaxes implements ToModel, WithHeadingRow, WithMapping
{
public function model(array $row)
{
return new Model($row);
}
public function map($row): array
{
$row['company_id'] = session('company_id');
return $row;
}
public function onFailure(Failure ...$failures)
{
foreach ($failures as $failure) {
$message = trans('messages.error.import_column', [
'message' => $failure->errors()->first(),
'sheet' => 'bill_item_taxes',
'line' => $failure->attribute(),
]);
flash($message)->error()->important();
}
}
}

View File

@@ -0,0 +1,44 @@
<?php
namespace App\Imports\Expenses\Sheets;
use App\Models\Expense\BillItem as Model;
use App\Http\Requests\Expense\BillItem as Request;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Concerns\WithMapping;
use Maatwebsite\Excel\Concerns\WithValidation;
use Maatwebsite\Excel\Validators\Failure;
class BillItems implements ToModel, WithHeadingRow, WithMapping, WithValidation
{
public function model(array $row)
{
return new Model($row);
}
public function map($row): array
{
$row['company_id'] = session('company_id');
return $row;
}
public function rules(): array
{
return (new Request())->rules();
}
public function onFailure(Failure ...$failures)
{
foreach ($failures as $failure) {
$message = trans('messages.error.import_column', [
'message' => $failure->errors()->first(),
'sheet' => 'bill_items',
'line' => $failure->attribute(),
]);
flash($message)->error()->important();
}
}
}

View File

@@ -0,0 +1,50 @@
<?php
namespace App\Imports\Expenses\Sheets;
use App\Models\Banking\Transaction as Model;
use App\Http\Requests\Banking\Transaction as Request;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Concerns\WithMapping;
use Maatwebsite\Excel\Concerns\WithValidation;
use Maatwebsite\Excel\Validators\Failure;
class BillPayments implements ToModel, WithHeadingRow, WithMapping, WithValidation
{
public function model(array $row)
{
return new Model($row);
}
public function map($row): array
{
$row['company_id'] = session('company_id');
$row['type'] = 'expense';
// Make reconciled field integer
if (isset($row['reconciled'])) {
$row['reconciled'] = (int) $row['reconciled'];
}
return $row;
}
public function rules(): array
{
return (new Request())->rules();
}
public function onFailure(Failure ...$failures)
{
foreach ($failures as $failure) {
$message = trans('messages.error.import_column', [
'message' => $failure->errors()->first(),
'sheet' => 'bill_payments',
'line' => $failure->attribute(),
]);
flash($message)->error()->important();
}
}
}

View File

@@ -0,0 +1,44 @@
<?php
namespace App\Imports\Expenses\Sheets;
use App\Models\Expense\BillTotal as Model;
use App\Http\Requests\Expense\BillTotal as Request;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Concerns\WithMapping;
use Maatwebsite\Excel\Concerns\WithValidation;
use Maatwebsite\Excel\Validators\Failure;
class BillTotals implements ToModel, WithHeadingRow, WithMapping, WithValidation
{
public function model(array $row)
{
return new Model($row);
}
public function map($row): array
{
$row['company_id'] = session('company_id');
return $row;
}
public function rules(): array
{
return (new Request())->rules();
}
public function onFailure(Failure ...$failures)
{
foreach ($failures as $failure) {
$message = trans('messages.error.import_column', [
'message' => $failure->errors()->first(),
'sheet' => 'bill_totals',
'line' => $failure->attribute(),
]);
flash($message)->error()->important();
}
}
}

View File

@@ -0,0 +1,44 @@
<?php
namespace App\Imports\Expenses\Sheets;
use App\Models\Expense\Bill as Model;
use App\Http\Requests\Expense\Bill as Request;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Concerns\WithMapping;
use Maatwebsite\Excel\Concerns\WithValidation;
use Maatwebsite\Excel\Validators\Failure;
class Bills implements ToModel, WithHeadingRow, WithMapping, WithValidation
{
public function model(array $row)
{
return new Model($row);
}
public function map($row): array
{
$row['company_id'] = session('company_id');
return $row;
}
public function rules(): array
{
return (new Request())->rules();
}
public function onFailure(Failure ...$failures)
{
foreach ($failures as $failure) {
$message = trans('messages.error.import_column', [
'message' => $failure->errors()->first(),
'sheet' => 'bills',
'line' => $failure->attribute(),
]);
flash($message)->error()->important();
}
}
}

View File

@@ -0,0 +1,50 @@
<?php
namespace App\Imports\Incomes;
use App\Models\Common\Contact as Model;
use App\Http\Requests\Common\Contact as Request;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Concerns\WithMapping;
use Maatwebsite\Excel\Concerns\WithValidation;
use Maatwebsite\Excel\Validators\Failure;
class Vendors implements ToModel, WithHeadingRow, WithMapping, WithValidation
{
public function model(array $row)
{
return new Model($row);
}
public function map($row): array
{
$row['company_id'] = session('company_id');
$row['type'] = 'vendor';
// Make enabled field integer
if (isset($row['enabled'])) {
$row['enabled'] = (int) $row['enabled'];
}
return $row;
}
public function rules(): array
{
return (new Request())->rules();
}
public function onFailure(Failure ...$failures)
{
foreach ($failures as $failure) {
$message = trans('messages.error.import_column', [
'message' => $failure->errors()->first(),
'sheet' => 'vendors',
'line' => $failure->attribute(),
]);
flash($message)->error()->important();
}
}
}

View File

@@ -0,0 +1,50 @@
<?php
namespace App\Imports\Incomes;
use App\Models\Common\Contact as Model;
use App\Http\Requests\Common\Contact as Request;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Concerns\WithMapping;
use Maatwebsite\Excel\Concerns\WithValidation;
use Maatwebsite\Excel\Validators\Failure;
class Customers implements ToModel, WithHeadingRow, WithMapping, WithValidation
{
public function model(array $row)
{
return new Model($row);
}
public function map($row): array
{
$row['company_id'] = session('company_id');
$row['type'] = 'customer';
// Make enabled field integer
if (isset($row['enabled'])) {
$row['enabled'] = (int) $row['enabled'];
}
return $row;
}
public function rules(): array
{
return (new Request())->rules();
}
public function onFailure(Failure ...$failures)
{
foreach ($failures as $failure) {
$message = trans('messages.error.import_column', [
'message' => $failure->errors()->first(),
'sheet' => 'customers',
'line' => $failure->attribute(),
]);
flash($message)->error()->important();
}
}
}

View File

@@ -0,0 +1,26 @@
<?php
namespace App\Imports\Incomes;
use App\Imports\Incomes\Sheets\Invoices as Base;
use App\Imports\Incomes\Sheets\InvoiceItems;
use App\Imports\Incomes\Sheets\InvoiceItemTaxes;
use App\Imports\Incomes\Sheets\InvoiceHistories;
use App\Imports\Incomes\Sheets\InvoicePayments;
use App\Imports\Incomes\Sheets\InvoiceTotals;
use Maatwebsite\Excel\Concerns\WithMultipleSheets;
class Invoices implements WithMultipleSheets
{
public function sheets(): array
{
return [
'invoices' => new Base(),
'invoice_items' => new InvoiceItems(),
'invoice_item_taxes' => new InvoiceItemTaxes(),
'invoice_histories' => new InvoiceHistories(),
'invoice_payments' => new InvoicePayments(),
'invoice_totals' => new InvoiceTotals(),
];
}
}

View File

@@ -0,0 +1,50 @@
<?php
namespace App\Imports\Income;
use App\Models\Banking\Transaction as Model;
use App\Http\Requests\Banking\Transaction as Request;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Concerns\WithMapping;
use Maatwebsite\Excel\Concerns\WithValidation;
use Maatwebsite\Excel\Validators\Failure;
class Revenues implements ToModel, WithHeadingRow, WithMapping, WithValidation
{
public function model(array $row)
{
return new Model($row);
}
public function map($row): array
{
$row['company_id'] = session('company_id');
$row['type'] = 'income';
// Make reconciled field integer
if (isset($row['reconciled'])) {
$row['reconciled'] = (int) $row['reconciled'];
}
return $row;
}
public function rules(): array
{
return (new Request())->rules();
}
public function onFailure(Failure ...$failures)
{
foreach ($failures as $failure) {
$message = trans('messages.error.import_column', [
'message' => $failure->errors()->first(),
'sheet' => 'revenues',
'line' => $failure->attribute(),
]);
flash($message)->error()->important();
}
}
}

View File

@@ -0,0 +1,44 @@
<?php
namespace App\Imports\Incomes\Sheets;
use App\Models\Income\InvoiceHistory as Model;
use App\Http\Requests\Income\InvoiceHistory as Request;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Concerns\WithMapping;
use Maatwebsite\Excel\Concerns\WithValidation;
use Maatwebsite\Excel\Validators\Failure;
class InvoiceHistories implements ToModel, WithHeadingRow, WithMapping, WithValidation
{
public function model(array $row)
{
return new Model($row);
}
public function map($row): array
{
$row['company_id'] = session('company_id');
return $row;
}
public function rules(): array
{
return (new Request())->rules();
}
public function onFailure(Failure ...$failures)
{
foreach ($failures as $failure) {
$message = trans('messages.error.import_column', [
'message' => $failure->errors()->first(),
'sheet' => 'invoice_histories',
'line' => $failure->attribute(),
]);
flash($message)->error()->important();
}
}
}

View File

@@ -0,0 +1,37 @@
<?php
namespace App\Imports\Incomes\Sheets;
use App\Models\Income\InvoiceItemTax as Model;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Concerns\WithMapping;
use Maatwebsite\Excel\Validators\Failure;
class InvoiceItemTaxes implements ToModel, WithHeadingRow, WithMapping
{
public function model(array $row)
{
return new Model($row);
}
public function map($row): array
{
$row['company_id'] = session('company_id');
return $row;
}
public function onFailure(Failure ...$failures)
{
foreach ($failures as $failure) {
$message = trans('messages.error.import_column', [
'message' => $failure->errors()->first(),
'sheet' => 'invoice_item_taxes',
'line' => $failure->attribute(),
]);
flash($message)->error()->important();
}
}
}

View File

@@ -0,0 +1,44 @@
<?php
namespace App\Imports\Incomes\Sheets;
use App\Models\Income\InvoiceItem as Model;
use App\Http\Requests\Income\InvoiceItem as Request;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Concerns\WithMapping;
use Maatwebsite\Excel\Concerns\WithValidation;
use Maatwebsite\Excel\Validators\Failure;
class InvoiceItems implements ToModel, WithHeadingRow, WithMapping, WithValidation
{
public function model(array $row)
{
return new Model($row);
}
public function map($row): array
{
$row['company_id'] = session('company_id');
return $row;
}
public function rules(): array
{
return (new Request())->rules();
}
public function onFailure(Failure ...$failures)
{
foreach ($failures as $failure) {
$message = trans('messages.error.import_column', [
'message' => $failure->errors()->first(),
'sheet' => 'invoice_items',
'line' => $failure->attribute(),
]);
flash($message)->error()->important();
}
}
}

View File

@@ -0,0 +1,50 @@
<?php
namespace App\Imports\Incomes\Sheets;
use App\Models\Banking\Transaction as Model;
use App\Http\Requests\Banking\Transaction as Request;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Concerns\WithMapping;
use Maatwebsite\Excel\Concerns\WithValidation;
use Maatwebsite\Excel\Validators\Failure;
class InvoicePayments implements ToModel, WithHeadingRow, WithMapping, WithValidation
{
public function model(array $row)
{
return new Model($row);
}
public function map($row): array
{
$row['company_id'] = session('company_id');
$row['type'] = 'income';
// Make reconciled field integer
if (isset($row['reconciled'])) {
$row['reconciled'] = (int) $row['reconciled'];
}
return $row;
}
public function rules(): array
{
return (new Request())->rules();
}
public function onFailure(Failure ...$failures)
{
foreach ($failures as $failure) {
$message = trans('messages.error.import_column', [
'message' => $failure->errors()->first(),
'sheet' => 'invoice_payments',
'line' => $failure->attribute(),
]);
flash($message)->error()->important();
}
}
}

View File

@@ -0,0 +1,44 @@
<?php
namespace App\Imports\Incomes\Sheets;
use App\Models\Income\InvoiceTotal as Model;
use App\Http\Requests\Income\InvoiceTotal as Request;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Concerns\WithMapping;
use Maatwebsite\Excel\Concerns\WithValidation;
use Maatwebsite\Excel\Validators\Failure;
class InvoiceTotals implements ToModel, WithHeadingRow, WithMapping, WithValidation
{
public function model(array $row)
{
return new Model($row);
}
public function map($row): array
{
$row['company_id'] = session('company_id');
return $row;
}
public function rules(): array
{
return (new Request())->rules();
}
public function onFailure(Failure ...$failures)
{
foreach ($failures as $failure) {
$message = trans('messages.error.import_column', [
'message' => $failure->errors()->first(),
'sheet' => 'invoice_totals',
'line' => $failure->attribute(),
]);
flash($message)->error()->important();
}
}
}

View File

@@ -0,0 +1,44 @@
<?php
namespace App\Imports\Incomes\Sheets;
use App\Models\Income\Invoice as Model;
use App\Http\Requests\Income\Invoice as Request;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Concerns\WithMapping;
use Maatwebsite\Excel\Concerns\WithValidation;
use Maatwebsite\Excel\Validators\Failure;
class Invoices implements ToModel, WithHeadingRow, WithMapping, WithValidation
{
public function model(array $row)
{
return new Model($row);
}
public function map($row): array
{
$row['company_id'] = session('company_id');
return $row;
}
public function rules(): array
{
return (new Request())->rules();
}
public function onFailure(Failure ...$failures)
{
foreach ($failures as $failure) {
$message = trans('messages.error.import_column', [
'message' => $failure->errors()->first(),
'sheet' => 'invoices',
'line' => $failure->attribute(),
]);
flash($message)->error()->important();
}
}
}