Multible Tax files for Items

This commit is contained in:
cuneytsenturk
2018-10-19 19:43:50 +03:00
parent 42d5690a57
commit 983015509a
13 changed files with 165 additions and 864 deletions

View File

@ -345,22 +345,6 @@ class Items extends Controller
}
}
if ($request['multiple_tax']) {
foreach ($request['multiple_tax'] as $tax_row => $multiple_tax) {
if ($multiple_tax['position'] != 'GST') {
continue;
}
$multible_tax_object = Tax::find($multiple_tax['tax_id']);
$multiple_tax_amount = ($sub_total / 100) * $multible_tax_object->rate;
$sub_total += $multiple_tax_amount;
$taxes['multiple-tax-' . $tax_row . '-total'] = money($multiple_tax_amount, $currency_code, true)->format();
}
}
$json->items = $items;
$json->sub_total = money($sub_total, $currency_code, true)->format();
@ -378,32 +362,10 @@ class Items extends Controller
$sub_total = $sub_total - ($sub_total * ($discount / 100));
}
if ($request['multiple_tax']) {
foreach ($request['multiple_tax'] as $tax_row => $multiple_tax) {
if ($multiple_tax['position'] != 'PST') {
continue;
}
$multible_tax_object = Tax::find($multiple_tax['tax_id']);
$multiple_tax_amount = ($sub_total / 100) * $multible_tax_object->rate;
$tax_total += $multiple_tax_amount;
$taxes['multiple-tax-' . $tax_row . '-total'] = money($multiple_tax_amount, $currency_code, true)->format();
}
}
$grand_total = $sub_total + $tax_total;
$json->grand_total = money($grand_total, $currency_code, true)->format();
$json->multible_taxes = false;
if (!empty($taxes)) {
$json->multible_taxes = $taxes;
}
// Get currency object
$currency = Currency::where('code', $currency_code)->first();

View File

@ -211,10 +211,10 @@ class Bills extends Controller
// Set taxes
if (isset($tax_object)) {
if (isset($taxes['VAT']) && array_key_exists($tax_object->id, $taxes['VAT'])) {
$taxes['VAT'][$tax_object->id]['amount'] += $tax;
if (isset($taxes) && array_key_exists($tax_object->id, $taxes)) {
$taxes[$tax_object->id]['amount'] += $tax;
} else {
$taxes['VAT'][$tax_object->id] = [
$taxes[$tax_object->id] = [
'name' => $tax_object->name,
'amount' => $tax
];
@ -229,30 +229,6 @@ class Bills extends Controller
}
}
if ($request['multiple_tax']) {
foreach ($request['multiple_tax'] as $multiple_tax) {
if ($multiple_tax['position'] != 'GST') {
continue;
}
$multible_tax_object = Tax::find($multiple_tax['tax_id']);
$multiple_tax_amount = ($sub_total / 100) * $multible_tax_object->rate;
if (isset($taxes['GST']) && array_key_exists($multible_tax_object->id, $taxes['GST'])) {
$taxes['GST'][$multible_tax_object->id]['amount'] += $multiple_tax_amount;
} else {
$taxes['GST'][$multible_tax_object->id] = [
'id' => $multible_tax_object->id,
'name' => $multible_tax_object->name,
'amount' => $multiple_tax_amount
];
}
$sub_total += $multiple_tax_amount;
}
}
$s_total = $sub_total;
// Apply discount to total
@ -262,30 +238,6 @@ class Bills extends Controller
$s_total = $s_total - $s_discount;
}
if ($request['multiple_tax']) {
foreach ($request['multiple_tax'] as $multiple_tax) {
if ($multiple_tax['position'] != 'PST') {
continue;
}
$multible_tax_object = Tax::find($multiple_tax['tax_id']);
$multiple_tax_amount = ($s_total / 100) * $multible_tax_object->rate;
if (isset($taxes['PST']) && array_key_exists($multible_tax_object->id, $taxes['PST'])) {
$taxes['PST'][$multible_tax_object->id]['amount'] += $multiple_tax_amount;
} else {
$taxes['PST'][$multible_tax_object->id] = [
'id' => $multible_tax_object->id,
'name' => $multible_tax_object->name,
'amount' => $multiple_tax_amount
];
}
$tax_total += $multiple_tax_amount;
}
}
$amount = $s_total + $tax_total;
$request['amount'] = money($amount, $request['currency_code'])->getAmount();
@ -422,6 +374,7 @@ class Bills extends Controller
public function update(Bill $bill, Request $request)
{
$taxes = [];
$tax_total = 0;
$sub_total = 0;
$discount_total = 0;
@ -470,10 +423,10 @@ class Bills extends Controller
$bill_item['total'] = (double) $item['price'] * (double) $item['quantity'];
if (isset($tax_object)) {
if (isset($taxes['VAT']) && array_key_exists($tax_object->id, $taxes['VAT'])) {
$taxes['VAT'][$tax_object->id]['amount'] += $tax;
if (isset($taxes) && array_key_exists($tax_object->id, $taxes)) {
$taxes[$tax_object->id]['amount'] += $tax;
} else {
$taxes['VAT'][$tax_object->id] = [
$taxes[$tax_object->id] = [
'name' => $tax_object->name,
'amount' => $tax
];
@ -487,30 +440,6 @@ class Bills extends Controller
}
}
if ($request['multiple_tax']) {
foreach ($request['multiple_tax'] as $multiple_tax) {
if ($multiple_tax['position'] != 'GST') {
continue;
}
$multible_tax_object = Tax::find($multiple_tax['tax_id']);
$multiple_tax_amount = ($sub_total / 100) * $multible_tax_object->rate;
if (isset($taxes['GST']) && array_key_exists($multible_tax_object->id, $taxes['GST'])) {
$taxes['GST'][$multible_tax_object->id]['amount'] += $multiple_tax_amount;
} else {
$taxes['GST'][$multible_tax_object->id] = [
'id' => $multible_tax_object->id,
'name' => $multible_tax_object->name,
'amount' => $multiple_tax_amount
];
}
$sub_total += $multiple_tax_amount;
}
}
$s_total = $sub_total;
// Apply discount to total
@ -520,30 +449,6 @@ class Bills extends Controller
$s_total = $s_total - $s_discount;
}
if ($request['multiple_tax']) {
foreach ($request['multiple_tax'] as $multiple_tax) {
if ($multiple_tax['position'] != 'PST') {
continue;
}
$multible_tax_object = Tax::find($multiple_tax['tax_id']);
$multiple_tax_amount = ($s_total / 100) * $multible_tax_object->rate;
if (isset($taxes['PST']) && array_key_exists($multible_tax_object->id, $taxes['PST'])) {
$taxes['PST'][$multible_tax_object->id]['amount'] += $multiple_tax_amount;
} else {
$taxes['PST'][$multible_tax_object->id] = [
'id' => $multible_tax_object->id,
'name' => $multible_tax_object->name,
'amount' => $multiple_tax_amount
];
}
$tax_total += $multiple_tax_amount;
}
}
$amount = $s_total + $tax_total;
$request['amount'] = money($amount, $request['currency_code'])->getAmount();
@ -892,21 +797,6 @@ class Bills extends Controller
{
$sort_order = 1;
if (isset($taxes['GST'])) {
foreach ($taxes['GST'] as $tax) {
InvoiceTotal::create([
'company_id' => $request['company_id'],
'invoice_id' => $invoice->id,
'code' => 'gst-' . $tax['id'],
'name' => $tax['name'],
'amount' => $tax['amount'],
'sort_order' => $sort_order,
]);
$sort_order++;
}
}
// Added bill sub total
BillTotal::create([
'company_id' => $request['company_id'],
@ -936,24 +826,9 @@ class Bills extends Controller
$sort_order++;
}
if (isset($taxes['PST'])) {
foreach ($taxes['PST'] as $tax) {
InvoiceTotal::create([
'company_id' => $request['company_id'],
'invoice_id' => $invoice->id,
'code' => 'pst-' . $tax['id'],
'name' => $tax['name'],
'amount' => $tax['amount'],
'sort_order' => $sort_order,
]);
$sort_order++;
}
}
// Added bill taxes
if (isset($taxes['VAT'])) {
foreach ($taxes['VAT'] as $tax) {
if (isset($taxes)) {
foreach ($taxes as $tax) {
BillTotal::create([
'company_id' => $request['company_id'],
'bill_id' => $bill->id,

View File

@ -246,10 +246,10 @@ class Invoices extends Controller
// Set taxes
if (isset($tax_object)) {
if (isset($taxes['VAT']) && array_key_exists($tax_object->id, $taxes['VAT'])) {
$taxes['VAT'][$tax_object->id]['amount'] += $tax;
if (isset($taxes) && array_key_exists($tax_object->id, $taxes)) {
$taxes[$tax_object->id]['amount'] += $tax;
} else {
$taxes['VAT'][$tax_object->id] = [
$taxes[$tax_object->id] = [
'name' => $tax_object->name,
'amount' => $tax
];
@ -264,30 +264,6 @@ class Invoices extends Controller
}
}
if ($request['multiple_tax']) {
foreach ($request['multiple_tax'] as $multiple_tax) {
if ($multiple_tax['position'] != 'GST') {
continue;
}
$multible_tax_object = Tax::find($multiple_tax['tax_id']);
$multiple_tax_amount = ($sub_total / 100) * $multible_tax_object->rate;
if (isset($taxes['GST']) && array_key_exists($multible_tax_object->id, $taxes['GST'])) {
$taxes['GST'][$multible_tax_object->id]['amount'] += $multiple_tax_amount;
} else {
$taxes['GST'][$multible_tax_object->id] = [
'id' => $multible_tax_object->id,
'name' => $multible_tax_object->name,
'amount' => $multiple_tax_amount
];
}
$sub_total += $multiple_tax_amount;
}
}
$s_total = $sub_total;
// Apply discount to total
@ -297,30 +273,6 @@ class Invoices extends Controller
$s_total = $s_total - $s_discount;
}
if ($request['multiple_tax']) {
foreach ($request['multiple_tax'] as $multiple_tax) {
if ($multiple_tax['position'] != 'PST') {
continue;
}
$multible_tax_object = Tax::find($multiple_tax['tax_id']);
$multiple_tax_amount = ($s_total / 100) * $multible_tax_object->rate;
if (isset($taxes['PST']) && array_key_exists($multible_tax_object->id, $taxes['PST'])) {
$taxes['PST'][$multible_tax_object->id]['amount'] += $multiple_tax_amount;
} else {
$taxes['PST'][$multible_tax_object->id] = [
'id' => $multible_tax_object->id,
'name' => $multible_tax_object->name,
'amount' => $multiple_tax_amount
];
}
$tax_total += $multiple_tax_amount;
}
}
$amount = $s_total + $tax_total;
$request['amount'] = money($amount, $request['currency_code'])->getAmount();
@ -463,6 +415,7 @@ class Invoices extends Controller
public function update(Invoice $invoice, Request $request)
{
$taxes = [];
$tax_total = 0;
$sub_total = 0;
$discount_total = 0;
@ -511,10 +464,10 @@ class Invoices extends Controller
$invoice_item['total'] = (double) $item['price'] * (double) $item['quantity'];
if (isset($tax_object)) {
if (isset($taxes['VAT']) && array_key_exists($tax_object->id, $taxes['VAT'])) {
$taxes['VAT'][$tax_object->id]['amount'] += $tax;
if (isset($taxes) && array_key_exists($tax_object->id, $taxes)) {
$taxes[$tax_object->id]['amount'] += $tax;
} else {
$taxes['VAT'][$tax_object->id] = [
$taxes[$tax_object->id] = [
'name' => $tax_object->name,
'amount' => $tax
];
@ -528,30 +481,6 @@ class Invoices extends Controller
}
}
if ($request['multiple_tax']) {
foreach ($request['multiple_tax'] as $multiple_tax) {
if ($multiple_tax['position'] != 'GST') {
continue;
}
$multible_tax_object = Tax::find($multiple_tax['tax_id']);
$multiple_tax_amount = ($sub_total / 100) * $multible_tax_object->rate;
if (isset($taxes['GST']) && array_key_exists($multible_tax_object->id, $taxes['GST'])) {
$taxes['GST'][$multible_tax_object->id]['amount'] += $multiple_tax_amount;
} else {
$taxes['GST'][$multible_tax_object->id] = [
'id' => $multible_tax_object->id,
'name' => $multible_tax_object->name,
'amount' => $multiple_tax_amount
];
}
$sub_total += $multiple_tax_amount;
}
}
$s_total = $sub_total;
// Apply discount to total
@ -561,30 +490,6 @@ class Invoices extends Controller
$s_total = $s_total - $s_discount;
}
if ($request['multiple_tax']) {
foreach ($request['multiple_tax'] as $multiple_tax) {
if ($multiple_tax['position'] != 'PST') {
continue;
}
$multible_tax_object = Tax::find($multiple_tax['tax_id']);
$multiple_tax_amount = ($s_total / 100) * $multible_tax_object->rate;
if (isset($taxes['PST']) && array_key_exists($multible_tax_object->id, $taxes['PST'])) {
$taxes['PST'][$multible_tax_object->id]['amount'] += $multiple_tax_amount;
} else {
$taxes['PST'][$multible_tax_object->id] = [
'id' => $multible_tax_object->id,
'name' => $multible_tax_object->name,
'amount' => $multiple_tax_amount
];
}
$tax_total += $multiple_tax_amount;
}
}
$amount = $s_total + $tax_total;
$request['amount'] = money($amount, $request['currency_code'])->getAmount();
@ -1049,21 +954,6 @@ class Invoices extends Controller
{
$sort_order = 1;
if (isset($taxes['GST'])) {
foreach ($taxes['GST'] as $tax) {
InvoiceTotal::create([
'company_id' => $request['company_id'],
'invoice_id' => $invoice->id,
'code' => 'gst-' . $tax['id'],
'name' => $tax['name'],
'amount' => $tax['amount'],
'sort_order' => $sort_order,
]);
$sort_order++;
}
}
// Added invoice sub total
InvoiceTotal::create([
'company_id' => $request['company_id'],
@ -1093,24 +983,9 @@ class Invoices extends Controller
$sort_order++;
}
if (isset($taxes['PST'])) {
foreach ($taxes['PST'] as $tax) {
InvoiceTotal::create([
'company_id' => $request['company_id'],
'invoice_id' => $invoice->id,
'code' => 'pst-' . $tax['id'],
'name' => $tax['name'],
'amount' => $tax['amount'],
'sort_order' => $sort_order,
]);
$sort_order++;
}
}
// Added invoice taxes
if (isset($taxes['VAT'])) {
foreach ($taxes['VAT'] as $tax) {
if (isset($taxes)) {
foreach ($taxes as $tax) {
InvoiceTotal::create([
'company_id' => $request['company_id'],
'invoice_id' => $invoice->id,

View File

@ -0,0 +1,63 @@
<?php
namespace App\Http\Controllers\Modals;
use App\Http\Controllers\Controller;
use App\Http\Requests\Setting\Tax as Request;
use App\Models\Setting\Tax;
class Taxes extends Controller
{
/**
* Instantiate a new controller instance.
*/
public function __construct()
{
// Add CRUD permission check
$this->middleware('permission:create-settings-taxes')->only(['create', 'store']);
$this->middleware('permission:read-settings-taxes')->only(['index', 'edit']);
$this->middleware('permission:update-settings-taxes')->only(['update', 'enable', 'disable']);
$this->middleware('permission:delete-settings-taxes')->only('destroy');
}
/**
* Show the form for creating a new resource.
*
* @return Response
*/
public function create()
{
$html = view('modals.taxes.create')->render();
return response()->json([
'success' => true,
'error' => false,
'message' => 'null',
'html' => $html,
]);
}
/**
* Store a newly created resource in storage.
*
* @param Request $request
*
* @return Response
*/
public function store(Request $request)
{
$request['enabled'] = 1;
$tax = Tax::create($request->all());
$message = trans('messages.success.added', ['type' => trans_choice('general.taxes', 1)]);
return response()->json([
'success' => true,
'error' => false,
'data' => $tax,
'message' => $message,
'html' => 'null',
]);
}
}