01 2022 Microsite Promotion

This commit is contained in:
Kevin Adametz 2022-01-18 18:30:14 +01:00
parent 3f1fb9377d
commit 38e7fd504a
39 changed files with 761 additions and 336 deletions

View file

@ -21,7 +21,7 @@ class CategoryController extends Controller
{
$data = [
'values' => Category::all(),
'values' => Category::orderBy('pos', 'ASC')->get(),
];
return view('admin.category.index', $data);
}
@ -46,42 +46,66 @@ class CategoryController extends Controller
{
$data = Request::all();
$data['active'] = isset($data['active']) ? true : false;
$data['parent_id'] = isset($data['parent_id']) ? $data['parent_id'] : null;
if($data['id'] == "new"){
$model = Category::create($data);
}else{
$model = Category::find($data['id']);
$model->fill($data)->save();
if($data['action'] === 'save-product_category'){
if($data['id'] === 'new'){
$ProductCategory = ProductCategory::create([
'pos' => $data['pos'],
'product_id' => $data['product_id'],
'category_id' => $data['category_id'],
]);
\Session()->flash('alert-save', '1');
return redirect(route('admin_product_category_edit', [$ProductCategory->category_id]));
}else{
$ProductCategory = ProductCategory::findOrFail($data['id']);
if($ProductCategory->category_id != $data['category_id']){
abort(404);
}
$ProductCategory->pos = $data['pos'];
$ProductCategory->product_id = $data['product_id'];
$ProductCategory->save();
\Session()->flash('alert-save', '1');
return redirect(route('admin_product_category_edit', [$ProductCategory->category_id]));
}
}
$trans = [];
if(!empty($data['trans_name'])){
foreach ($data['trans_name'] as $lang => $value){
if($value && $value != null){
$trans[$lang] = $value;
if($data['action'] === 'save-form'){
$data['active'] = isset($data['active']) ? true : false;
$data['parent_id'] = isset($data['parent_id']) ? $data['parent_id'] : null;
if($data['id'] == "new"){
$model = Category::create($data);
}else{
$model = Category::find($data['id']);
$model->fill($data)->save();
}
$trans = [];
if(!empty($data['trans_name'])){
foreach ($data['trans_name'] as $lang => $value){
if($value && $value != null){
$trans[$lang] = $value;
}
}
}
}
$model->trans_name = $trans;
$model->save();
$trans = [];
if(!empty($data['trans_headline'])){
foreach ($data['trans_headline'] as $lang => $value){
if($value && $value != null){
$trans[$lang] = $value;
$model->trans_name = $trans;
$model->save();
$trans = [];
if(!empty($data['trans_headline'])){
foreach ($data['trans_headline'] as $lang => $value){
if($value && $value != null){
$trans[$lang] = $value;
}
}
}
$model->trans_headline = $trans;
$model->save();
\Session()->flash('alert-save', '1');
return redirect(route('admin_product_categories'));
}
$model->trans_headline = $trans;
$model->save();
\Session()->flash('alert-save', '1');
return redirect(route('admin_product_categories'));
}
@ -157,7 +181,7 @@ class CategoryController extends Controller
return redirect(route('admin_product_category_edit', [$category->id]));
}
catch (Exception $e) {
catch (\Exception $e) {
\Session()->flash('alert-danger', "Fehler".$e);
return redirect(route('admin_product_category_edit', [$category->id]));
}

View file

@ -8,6 +8,8 @@ use Response;
use Validator;
use App\Services\Util;
use App\Models\Product;
use App\Models\Category;
use App\Services\Payment;
use App\Models\UserHistory;
use App\Models\PaymentMethod;
use App\Models\PromotionUser;
@ -17,7 +19,6 @@ use App\Services\PromotionCart;
use App\Models\PaymentTransaction;
use App\Http\Controllers\Controller;
use App\Repositories\CheckoutRepository;
use App\Services\Payment;
class PromotionController extends Controller
{
@ -45,10 +46,16 @@ class PromotionController extends Controller
return view('web.promotion.outofstock', $data);
}
PromotionCart::initYard();
$first_category = Category::where('active', true)->whereJsonContains('show_on', ['3'])->orderBy('pos', 'DESC')->first();
$first_category_id = isset($first_category->id) ? $first_category->id : false;
$shop_products = $this->getShowProducts();
$data = [
'promotion_user' => $PromotionUser,
'shop_products' => Product::where('active', true)->whereJsonContains('show_on', ['3'])->orderBy('pos', 'ASC')->get(),
'shop_products' => $shop_products,
'user_payment_methods' => PaymentMethod::getDefaultAsArray()->toArray(),
'first_category_id' => $first_category_id,
];
return view('web.promotion.index', $data);
}
@ -95,7 +102,6 @@ class PromotionController extends Controller
}
if($data['action'] === 'submit-reminder-service'){
return redirect(route('web_promotion_goto', ['thanksreminder', $PromotionUser->id]));
}
if($data['action'] === 'submit-promotion-order'){
$rules = array(
@ -142,8 +148,6 @@ class PromotionController extends Controller
}
}
private function directPaymentStatus(PaymentTransaction $payt, $identifier){
if(isset($payt->transmitted_data['param'])){
@ -201,12 +205,19 @@ class PromotionController extends Controller
$data = Request::all();
$ret = "";
$status = false;
if(Request::ajax()){
if($data['action'] === 'web-show-product'){
$product = Product::find($data['id']); //current user form order
$ret = view("web.promotion.show_product", compact('product', 'data'))->render();
}
if($data['perform']){
if(isset($data['perform'])){
if($data['action'] === 'switch-show_products'){
$category_id = isset($data['show_products_option']) ? $data['show_products_option'] : false;
$shop_products = $this->getShowProducts($category_id);
$shop_products_view = view("web.promotion._shop_products_inner", compact('shop_products'))->render();
return response()->json(['response' => $data, 'shop_products_view'=>$shop_products_view, 'status'=>$status]);
}
if($data['action'] === 'switch-free-product'){
\App\Services\PromotionCart::updateFeeProduct($data);
}
@ -226,6 +237,10 @@ class PromotionController extends Controller
if($data['action'] === 'switch-shipping'){
\App\Services\PromotionCart::switchShipping($data);
}
if($data['action'] === 'change-state-shipping'){
\App\Services\PromotionCart::changeStateShipping($data);
}
$cart = view("web.promotion._promotion_cart", compact('data'))->render();
if(Yard::instance('shopping')->isQuickShipping()){
$invoice = view("web.promotion._invoice_details_quick")->render();
@ -233,10 +248,25 @@ class PromotionController extends Controller
$invoice = view("web.promotion._invoice_details")->render();
}
$checkout = view("web.promotion._checkout")->render();
$data['shipping_price_formated'] = Yard::instance('shopping')->shipping();
return response()->json(['response' => $data, 'cart'=>$cart, 'invoice'=>$invoice, 'checkout'=>$checkout, 'status'=>$status]);
}
return response()->json(['response' => $data, 'html'=>$ret, 'status'=>$status]);
}
}
private function getShowProducts($category_id = false){
$shop_products = [];
if($category_id){
$shop_products = Product::where('active', true)->whereJsonContains('show_on', ['3'])
->whereHas('categories', function ($query) use ($category_id) {
$query->where('category_id', $category_id); //->whereJsonContains('show_on', ['3']);
})->orderBy('pos', 'ASC')->get();
}else{
$shop_products = Product::where('active', true)->whereJsonContains('show_on', ['3'])
->orderBy('pos', 'ASC')->get();
}
return $shop_products;
}
}