Country Prices | Homeparty | Shop | Order

This commit is contained in:
Kevin Adametz 2021-08-27 18:53:12 +02:00
parent 51d81d8ec6
commit 39d1e93416
284 changed files with 784 additions and 216 deletions

View file

@ -2,18 +2,20 @@
namespace App\Http\Controllers;
use App\Mail\MailInfo;
use App\Models\Product;
use App\Models\ShoppingInstance;
use App\Models\UserHistory;
use App\User;
use Auth;
use Carbon;
use Config;
use Illuminate\Validation\Rules\In;
use Request;
use Util;
use Yard;
use Carbon;
use Config;
use Request;
use App\User;
use App\Mail\MailInfo;
use App\Models\Product;
use App\Models\UserHistory;
use App\Services\UserService;
use App\Models\ShippingCountry;
use App\Models\ShoppingInstance;
use Illuminate\Validation\Rules\In;
use Illuminate\Support\Facades\Mail;
@ -43,6 +45,13 @@ class MembershipController extends Controller
$userHistoryUpgradeOrder = UserHistory::whereUserId($user->id)->whereAction('upgrade_order')->get()->last();
$userHistoryDeleteMembership = UserHistory::whereUserId($user->id)->whereAction('delete_membership')->whereStatus(50)->get()->last();
$shipping_country_id = $this->checkShoppingCountry($user);
if(!$shipping_country_id){
abort(403, __('validation.custom.shipping_not_found'));
}
UserService::checkUserTaxShippingCountry($user, $shipping_country_id);
$data = [
'user' => $user,
'products' => Product::where('active', true)->whereJsonContains('show_on', ['4', '5'])->orderBy('pos', 'ASC')->get(),
@ -51,11 +60,27 @@ class MembershipController extends Controller
'userHistoryPaymentOrder' => $userHistoryPaymentOrder,
'userHistoryUpgradeOrder' => $userHistoryUpgradeOrder,
'userHistoryDeleteMembership' => $userHistoryDeleteMembership,
'yard_info' => UserService::getYardInfo(),
];
return view('user.membership.index', $data);
}
private function checkShoppingCountry($user ){
$country_id = null;
if($user->account->same_as_billing){
$country_id = $user->account->country_id;
}else{
$country_id = $user->account->shipping_country_id;
}
if($country_id){
if($shipping_country = ShippingCountry::whereCountryId($country_id)->first()){
return $shipping_country->id;
}
}
return false;
}
public function storePayment($action){
@ -90,13 +115,29 @@ class MembershipController extends Controller
$user->abo_options = true;
$user->save();
}
$shipping_country_id = $this->checkShoppingCountry($user);
if(!$shipping_country_id){
abort(403, __('validation.custom.shipping_not_found'));
}
UserService::checkUserTaxShippingCountry($user, $shipping_country_id);
Yard::instance('shopping')->setUserPriceInfos(UserService::getYardInfo());
Yard::instance('shopping')->setShippingCountryWithPrice($shipping_country_id);
if($product && $product->active){
$image = "";
if($product->images->count()){
$image = $product->images->first()->slug;
}
$qty = Request::get('qty') ? Request::get('qty') : 1;
Yard::instance('shopping')->add($product->id, $product->getLang('name'), $qty, $product->price, ['image' => $image, 'slug' => $product->slug, 'weight' => $product->weight]);
$cartItem = Yard::instance('shopping')->add($product->id, $product->getLang('name'), $qty, $product->getPriceWith(\App\Services\UserService::getTaxFree(), false, \App\Services\UserService::$user_country), ['image' => $image, 'slug' => $product->slug, 'weight' => $product->weight]);
if(\App\Services\UserService::getTaxFree()){
Yard::setTax($cartItem->rowId, 0);
}else{
Yard::setTax($cartItem->rowId, $product->getTaxWith(\App\Services\UserService::$user_country));
}
do {
$identifier = Util::getToken();
@ -105,6 +146,7 @@ class MembershipController extends Controller
$data = [];
$data['is_from'] = 'membership';
$data['is_for'] = 'me';
$data['user_price_infos'] = \App\Services\UserService::getUserPriceInfos();
ShoppingInstance::create([
'identifier' => $identifier,

View file

@ -460,7 +460,8 @@ class HomepartyController extends Controller
$date = date('d.m.Y H:i:s', $time);
$user = User::find(Auth::user()->id);
Yard::instance('shopping')->destroy();
Yard::instance('shopping')->add($homeparty->id, 'Bestellung Homeparty '.$date, 1, \App\Services\HomepartyCart::$ek_price, ['image' => "", 'slug' => $time, 'weight' => 0]);
$cartItem = Yard::instance('shopping')->add($homeparty->id, 'Bestellung Homeparty '.$date, 1, \App\Services\HomepartyCart::$ek_price, ['image' => "", 'slug' => $time, 'weight' => 0]);
Yard::setTax($cartItem->rowId, 0);
do {
$identifier = Util::getToken();
} while( ShoppingInstance::where('identifier', $identifier)->count() );
@ -469,10 +470,22 @@ class HomepartyController extends Controller
$data = [];
$data['is_from'] = 'homeparty';
$data['shop_price_net'] = HomepartyCart::getFormattedEkPriceNet();
$data['shop_price_tax'] = HomepartyCart::getFormattedEkPriceTax();
if($homeparty->getCardInfo('user_tax_free')){
$data['shop_price'] = HomepartyCart::getFormattedEkPrice();
$data['shop_price_net'] = HomepartyCart::getFormattedEkPrice();
$data['shop_price_tax'] = 0;
$data['user_tax_free'] = true;
}else{
$data['shop_price'] = HomepartyCart::getFormattedEkPrice();
$data['shop_price_net'] = HomepartyCart::getFormattedEkPriceNet();
$data['shop_price_tax'] = HomepartyCart::getFormattedEkPriceTax();
$data['user_tax_free'] = false;
}
$data['homeparty_id'] = $homeparty->id;
$data['is_for'] = 'hp';
$data['user_price_infos'] = $homeparty->card_info;
ShoppingInstance::create([
'identifier' => $identifier,

View file

@ -251,7 +251,10 @@ class OrderController extends Controller
}
if($country_id){
if($shipping_country = ShippingCountry::whereCountryId($country_id)->first()){
return $shipping_country->id;
if($shipping_country->shipping && $shipping_country->shipping->active){
return $shipping_country->id;
}
}
}
return false;

View file

@ -3,12 +3,13 @@
namespace App\Http\Controllers\Web;
use App\Http\Controllers\Controller;
use App\Models\Product;
use App\Models\ShoppingInstance;
use App\Services\Util;
use Yard;
use Request;
use App\Services\Shop;
use App\Services\Util;
use App\Models\Product;
use App\Models\ShoppingInstance;
use App\Http\Controllers\Controller;
class CardController extends Controller
{
@ -32,8 +33,12 @@ class CardController extends Controller
if($product->images->count()){
$image = $product->images->first()->slug;
}
$cartItem = Yard::instance('shopping')->add($product->id, $product->getLang('name'), $quantity, $product->price, ['image' => $image, 'slug' => $product_slug, 'weight' => $product->weight]);
Yard::setTax($cartItem->rowId, $product->tax);
$cartItem = Yard::instance('shopping')->add($product->id, $product->getLang('name'), $quantity, $product->getPriceWith(Yard::instance('shopping')->getUserTaxFree(), false, Yard::instance('shopping')->getUserCountry()), ['image' => $image, 'slug' => $product->slug, 'weight' => $product->weight]);
if(Yard::instance('shopping')->getUserTaxFree()){
Yard::setTax($cartItem->rowId, 0);
}else{
Yard::setTax($cartItem->rowId, $product->getTaxWith(Yard::instance('shopping')->getUserCountry()));
}
Yard::instance('shopping')->reCalculateShippingPrice();
\Session()->flash('show-card-after-add', true);
@ -55,7 +60,12 @@ class CardController extends Controller
}
$quantity = Request::get('quantity') ? Request::get('quantity') : 1;
$cartItem = Yard::instance('shopping')->add($product->id, $product->getLang('name'), $quantity, $product->price, ['image' => $image, 'slug' => $product->slug, 'weight' => $product->weight]);
Yard::setTax($cartItem->rowId, $product->tax);
$cartItem = Yard::instance('shopping')->add($product->id, $product->getLang('name'), $quantity, $product->getPriceWith(Yard::instance('shopping')->getUserTaxFree(), false, Yard::instance('shopping')->getUserCountry()), ['image' => $image, 'slug' => $product->slug, 'weight' => $product->weight]);
if(Yard::instance('shopping')->getUserTaxFree()){
Yard::setTax($cartItem->rowId, 0);
}else{
Yard::setTax($cartItem->rowId, $product->getTaxWith(Yard::instance('shopping')->getUserCountry()));
}
Yard::instance('shopping')->reCalculateShippingPrice();
\Session()->flash('show-card-after-add', true);
@ -74,6 +84,8 @@ class CardController extends Controller
}
$data = [
'user_shop' => Util::getUserShop(),
'mylangs' => Shop::getLangChange(),
];
return view('web.templates.card', $data);
}
@ -103,6 +115,8 @@ class CardController extends Controller
$data = [];
$data['is_from'] = 'shopping';
$data['user_price_infos'] = Yard::instance('shopping')->getUserPriceInfos();
ShoppingInstance::create([
'identifier' => $identifier,

View file

@ -89,6 +89,13 @@ class CheckoutController extends Controller
$shopping_user->same_as_billing = false;
}
if(!$shopping_user->billing_country){
$shopping_user->billing_country = Yard::instance('shopping')->getUserCountry();
}
if(!$shopping_user->shipping_country){
$shopping_user->shipping_country = Yard::instance('shopping')->getUserCountry();
}
if(old('selected_country') && old('selected_country') === 'change'){
\Session::forget('_old_input.selected_country');
$shopping_user->billing_state = old('billing_state');
@ -479,7 +486,7 @@ class CheckoutController extends Controller
'subtotal_ws' => 0,
'tax' => 0,
'total_shipping' => Yard::instance('shopping')->totalWithShipping(2, '.', ''),
'points' => $homeparty->order['points'],
'points' => $homeparty->order['points'] - $homeparty->order['bonus_points_diff'],
'weight' => 0,
'txaction' => 'prev',
'mode' => Util::getUserShoppingMode(),

View file

@ -3,13 +3,14 @@
namespace App\Http\Controllers\Web;
use App\Http\Controllers\Controller;
use App\Mail\MailContact;
use GuzzleHttp\Client;
use Request;
use Illuminate\Support\Facades\Mail;
use App\Services\Util;
use Validator;
use App\Services\Shop;
use App\Services\Util;
use GuzzleHttp\Client;
use App\Mail\MailContact;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Mail;
class ContactController extends Controller
@ -27,11 +28,14 @@ class ContactController extends Controller
}
public function create()
{
$data = [
'GOOGLE_ReCAPTCHA_KEY' => $this->GOOGLE_ReCAPTCHA_KEY,
'user_shop' => Util::getUserShop(),
'mylangs' => Shop::getLangChange(),
];
return view('web.templates.kontakt', $data);
}
@ -91,6 +95,7 @@ class ContactController extends Controller
$data = [
'user_shop' => Util::getUserShop(),
'mylangs' => Shop::getLangChange(),
];
return view('web.templates.contact-final', $data);

View file

@ -3,35 +3,29 @@
namespace App\Http\Controllers\Web;
use App\Http\Controllers\Controller;
use App\Models\Category;
use Yard;
use Request;
use App\Models\IqSite;
use App\Models\Product;
use App\Models\ProductCategory;
use App\Services\Shop;
use App\Services\Util;
use App\Models\Product;
use App\Models\Category;
use App\Models\ProductCategory;
use App\Http\Controllers\Controller;
class SiteController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
}
public function index()
{
$products = ['aloe-vera-gel-99', 'aloe-vera-saft-500-ml', 'aloe-vera-lippenbalsam'];
// $set_products = ['aloe-vera-cleaner-set', 'aloe-vera-koerper-set', 'aloe-vera-repair-set'];
$set_products = ['aloe-vera-koerper-set', 'baby-set', 'aloe-vera-gel-set'];
$data = [
'products' => Product::whereIn('slug', $products)->where('active', true)->whereJsonContains('show_on', '1')->get(),
'set_products' => Product::whereIn('slug', $set_products)->where('active', true)->whereJsonContains('show_on', '1')->get(),
'user_shop' => Util::getUserShop(),
'mylangs' => Shop::getLangChange(),
'site' => IqSite::find(1),
];
return view('web.index', $data);
@ -40,6 +34,20 @@ class SiteController extends Controller
public function domainCheck(){
die("checked");
}
public function changeLang(){
$data = Request::all();
if(isset($data['change_country_id'])){
$mylangs = Shop::getLangChange();
foreach($mylangs as $code => $country){
if(strtolower($data['change_country_id']) === strtolower($code)){
Shop::initUserShopLang($country);
return back();
}
}
}
}
public function site($site, $subsite = false, $product_slug = false)
{
$subsite = trim($subsite, '/');
@ -52,11 +60,11 @@ class SiteController extends Controller
$data = [
'user_shop' => Util::getUserShop(),
'mylangs' => Shop::getLangChange(),
'subsite' => $subsite,
'categories' => Category::where('active', true)->orderBy('pos', 'ASC')->get(),
'product' => $product,
'p_count' => Product::where('active', true)->whereJsonContains('show_on', '1')->count(),
];
return view('web.templates.produkte-show', $data);
}
@ -79,6 +87,7 @@ class SiteController extends Controller
$data = [
'user_shop' => Util::getUserShop(),
'mylangs' => Shop::getLangChange(),
'subsite' => $subsite,
'categories' => Category::where('active', true)->orderBy('pos', 'DESC')->get(),
'products' => false,
@ -93,6 +102,7 @@ class SiteController extends Controller
}
$data = [
'user_shop' => Util::getUserShop(),
'mylangs' => Shop::getLangChange(),
'subsite' => 'alle-produkte',
'categories' => Category::where('active', true)->orderBy('pos', 'DESC')->get(),
'products' => Product::where('active', true)->whereJsonContains('show_on', '1')->orderBy('pos', 'DESC')->get(),
@ -104,7 +114,8 @@ class SiteController extends Controller
return view('web.templates.'.$site, $data);
}
$data = [
'user_shop' => Util::getUserShop()
'user_shop' => Util::getUserShop(),
'mylangs' => Shop::getLangChange(),
];
if($subsite){
if(!view()->exists('web.templates.'.$subsite)){

View file

@ -2,21 +2,23 @@
namespace App\Http\Controllers;
use App\Mail\MailReleaseAccount;
use App\Models\File;
use App\Models\Product;
use App\Models\ShoppingInstance;
use App\Models\UserAccount;
use App\Models\UserHistory;
use App\Repositories\FileRepository;
use App\Services\Util;
use App\User;
use Auth;
use Hash;
use Illuminate\Support\Facades\Mail;
use Request;
use Validator;
use Yard;
use Request;
use App\User;
use Validator;
use App\Models\File;
use App\Services\Util;
use App\Models\Product;
use App\Models\UserAccount;
use App\Models\UserHistory;
use App\Services\UserService;
use App\Models\ShippingCountry;
use App\Mail\MailReleaseAccount;
use App\Models\ShoppingInstance;
use App\Repositories\FileRepository;
use Illuminate\Support\Facades\Mail;
class WizardController extends Controller
{
@ -119,6 +121,15 @@ class WizardController extends Controller
}
$userHistoryWizardPayment = UserHistory::whereUserId($user->id)->whereAction('wizard_payment')->get()->last();
$shipping_country_id = $this->checkShoppingCountry($user);
if(!$shipping_country_id){
abort(403, __('validation.custom.shipping_not_found'));
}
UserService::checkUserTaxShippingCountry($user, $shipping_country_id);
//Yard::instance('shopping')->setShippingCountryWithPrice($shipping_country_id, $for);
//Yard::instance('shopping')->setUserPriceInfos(UserService::getYardInfo());
$data = [
'user' => Auth::user(),
@ -126,8 +137,10 @@ class WizardController extends Controller
'products' => Product::where('active', true)->whereJsonContains('show_on', ['4', '5'])->orderBy('pos', 'ASC')->get(),
'products_on_board' => Product::where('active', true)->whereJsonContains('show_on', '6')->orderBy('pos', 'ASC')->get(),
'userHistoryWizardPayment' => $userHistoryWizardPayment,
'yard_info' => UserService::getYardInfo(),
];
if($user->wizard == 20){
return view('user.wizard.register_payment', $data);
}
@ -135,6 +148,22 @@ class WizardController extends Controller
return redirect(route('/'));
}
private function checkShoppingCountry($user ){
$country_id = null;
if($user->account->same_as_billing){
$country_id = $user->account->country_id;
}else{
$country_id = $user->account->shipping_country_id;
}
if($country_id){
if($shipping_country = ShippingCountry::whereCountryId($country_id)->first()){
return $shipping_country->id;
}
}
return false;
}
public function storeRegister($step = false)
{
@ -433,14 +462,30 @@ class WizardController extends Controller
$user->save();
}
$shipping_country_id = $this->checkShoppingCountry($user);
if(!$shipping_country_id){
abort(403, __('validation.custom.shipping_not_found'));
}
UserService::checkUserTaxShippingCountry($user, $shipping_country_id);
Yard::instance('shopping')->setUserPriceInfos(UserService::getYardInfo());
Yard::instance('shopping')->setShippingCountryWithPrice($shipping_country_id);
if($product && $product->active){
//set membership product
$image = "";
if($product->images->count()){
$image = $product->images->first()->slug;
}
Yard::instance('shopping')->add($product->id, $product->getLang('name'), 1, $product->price, ['image' => $image, 'slug' => $product->slug, 'weight' => $product->weight]);
$cartItem = Yard::instance('shopping')->add($product->id, $product->getLang('name'), 1, $product->getPriceWith(\App\Services\UserService::getTaxFree(), false, \App\Services\UserService::$user_country), ['image' => $image, 'slug' => $product->slug, 'weight' => $product->weight]);
if(\App\Services\UserService::getTaxFree()){
Yard::setTax($cartItem->rowId, 0);
}else{
Yard::setTax($cartItem->rowId, $product->getTaxWith(\App\Services\UserService::$user_country));
}
//set onboarding products
if(Request::get('products_on_board')){
foreach (Request::get('products_on_board') as $product_on_board_id){
@ -449,7 +494,12 @@ class WizardController extends Controller
if($product_on_board->images->count()){
$image = $product_on_board->images->first()->slug;
}
Yard::instance('shopping')->add($product_on_board->id, $product_on_board->getLang('name'), 1, $product_on_board->price, ['image' => $image, 'slug' => $product_on_board->slug, 'weight' => $product_on_board->weight]);
$cartItem = Yard::instance('shopping')->add($product_on_board->id, $product_on_board->getLang('name'), 1, $product_on_board->getPriceWith(\App\Services\UserService::getTaxFree(), false, \App\Services\UserService::$user_country), ['image' => $image, 'slug' => $product_on_board->slug, 'weight' => $product_on_board->weight]);
if(\App\Services\UserService::getTaxFree()){
Yard::setTax($cartItem->rowId, 0);
}else{
Yard::setTax($cartItem->rowId, $product->getTaxWith(\App\Services\UserService::$user_country));
}
}
}
@ -457,11 +507,10 @@ class WizardController extends Controller
$identifier = Util::getToken();
} while( ShoppingInstance::where('identifier', $identifier)->count() );
$data = [];
$data['is_from'] = 'wizard';
$data['is_for'] = 'me';
$data['user_price_infos'] = \App\Services\UserService::getUserPriceInfos();
ShoppingInstance::create([
'identifier' => $identifier,