first upload all files

This commit is contained in:
NW
2023-06-11 13:14:03 +01:00
parent f14dbc52b5
commit c08b36d1b6
1705 changed files with 106852 additions and 0 deletions

View File

@@ -0,0 +1,54 @@
<?php
namespace Modules\Tax\Http\Controllers\Admin;
use Modules\Tax\Entities\TaxClass;
use Modules\Admin\Traits\HasCrudActions;
use Modules\Tax\Http\Requests\SaveTaxRequest;
class TaxController
{
use HasCrudActions;
/**
* Model for the resource.
*
* @var string
*/
protected $model = TaxClass::class;
/**
* The relations to eager load on every query.
*
* @var array
*/
protected $with = ['taxRates'];
/**
* Label of the resource.
*
* @var string
*/
protected $label = 'tax::taxes.tax';
/**
* View path of the resource.
*
* @var string
*/
protected $viewPath = 'tax::admin.taxes';
/**
* Route prefix of the resource.
*
* @var string
*/
protected $routePrefix = 'admin.taxes';
/**
* Form requests for the resource.
*
* @var array|string
*/
protected $validation = SaveTaxRequest::class;
}

View File

@@ -0,0 +1,31 @@
<?php
namespace Modules\Tax\Http\Controllers;
use Illuminate\Http\Request;
use Modules\Cart\Facades\Cart;
class CartTaxController
{
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$this->mergeShippingAddress($request);
Cart::addTaxes($request);
return Cart::instance();
}
private function mergeShippingAddress($request)
{
$request->merge([
'shipping' => $request->ship_to_a_different_address ? $request->shipping : $request->billing,
]);
}
}

View File

@@ -0,0 +1,57 @@
<?php
namespace Modules\Tax\Http\Requests;
use Illuminate\Validation\Rule;
use Modules\Tax\Entities\TaxClass;
use Modules\Core\Http\Requests\Request;
class SaveTaxRequest extends Request
{
/**
* Available attributes.
*
* @var string
*/
protected $availableAttributes = 'tax::attributes';
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'label' => 'required',
'based_on' => ['required', Rule::in([TaxClass::SHIPPING_ADDRESS, TaxClass::BILLING_ADDRESS, TaxClass::STORE_ADDRESS])],
'rates.*.name' => 'required_with:rates.*.rate',
'rates.*.rate' => ['required_with:rates.*.name', 'numeric', 'min:0', 'max:9999'],
];
}
/**
* Get data to be validated from the request.
*
* @return array
*/
public function validationData()
{
return request()->merge([
'rates' => $this->filter($this->rates ?? []),
])->all();
}
/**
* Filter tax rates.
*
* @param array $rates
* @return array
*/
private function filter($rates = [])
{
return array_filter($rates, function ($rate) {
return ! is_null($rate['name']) || ! is_null($rate['rate']);
});
}
}