This commit is contained in:
Kevin Adametz 2022-06-15 18:08:45 +02:00
parent 9b0b5feb7e
commit 7a040c3e19
106 changed files with 4074 additions and 1349 deletions

View file

@ -0,0 +1,304 @@
<?php
namespace App\Services\SyS;
use Carbon;
use Request;
use App\Models\Product;
use App\Models\Homeparty;
use App\Models\SySetting;
use App\Models\ShoppingUser;
use App\Models\ShoppingOrder;
use App\Models\UserSalesVolume;
use App\Models\ShoppingOrderItem;
use App\Repositories\ImportRepository;
class Correction
{
private static function userSalesVolume($order){
/*
status
1 => 'hinzugefügt aus Bestellung',
2 => 'hinzugefügt aus Shop',
3 => 'hinzugefügt aus Shop / pending',
*/
$status = UserSalesVolume::getStatusByOrder($order);
$user_id = $order->auth_user_id ? $order->auth_user_id : $order->member_id;
//akuteller tag / Monat.
$month = $order->created_at->format('m');
$year = $order->created_at->format('Y');
$date = $order->created_at->format('d.m.Y');
if($status === 3){ //shop bestellung User pending
$user_id = $order->auth_user_id ? $order->auth_user_id : $order->member_id;
$month_points = 0;
$month_total_net = 0;
$month_shop_points = 0;
$month_shop_total_net = 0;
}else{
$month_points = UserSalesVolume::where('user_id', $user_id)->where('status', 1)->where('month', $month)->where('year', $year)->sum('points');
$month_total_net = UserSalesVolume::where('user_id', $user_id)->where('status', 1)->where('month', $month)->where('year', $year)->sum('total_net');
$month_shop_points = UserSalesVolume::where('user_id', $user_id)->where('status', 2)->where('month', $month)->where('year', $year)->sum('points');
$month_shop_total_net = UserSalesVolume::where('user_id', $user_id)->where('status', 2)->where('month', $month)->where('year', $year)->sum('total_net');
}
switch ($status) {
case 1: //Bestellung
$month_points += $order->points;
$month_total_net += $order->subtotal;
break;
case 2: //Shop
$month_shop_points += $order->points;
$month_shop_total_net += $order->subtotal;
break;
}
return UserSalesVolume::create([
'user_id' => $user_id,
'shopping_order_id' => $order->id,
'month' => $month,
'year' => $year,
'date' => $date,
'points' => $order->points,
'month_points' => $month_points,
'month_shop_points' => $month_shop_points,
'total_net' => $order->subtotal,
'month_total_net' => $month_total_net,
'month_shop_total_net' => $month_shop_total_net,
'message' => '',
'status' => $status,
]);
}
public static function show()
{
// abort(403, 'STOP funtion not online');
$c = 0;
if(true){ //11
dump("calculate user_sales_volumes from Orders");
//dd('check function');
$year = 21;
$months = range(1, 12);
foreach($months as $month){
$ShoppingOrders = ShoppingOrder::where('txaction', 'paid')->where('created_at', '>=', $year.'-'.$month.'-01 00:00:00')->where('created_at', '<=', $year.'-'.$month.'-31 23:59:59')->get();
foreach($ShoppingOrders as $item){
if(UserSalesVolume::whereShoppingOrderId($item->id)->count() === 0){
dump($item->id);
self::userSalesVolume($item);
}
$c ++;
}
}
dump("counter");
dd($c);
}
if(false){ //11
dump("set Discount to Order Items");
dd('check function');
$ShoppingOrderItems = ShoppingOrderItem::where('discount', null)
//$ShoppingOrderItems = ShoppingOrderItem::where('discount', 0)->get();
->skip(0)->take(1000)->get();
//->skip(2000)->take(2000)->get();
foreach($ShoppingOrderItems as $item){
$no_commission = $item->product ? $item->product->no_commission : false;
$item->discount = $no_commission ? 0 : $item->shopping_order->getUserDiscount();
$item->save();
//dump($item->discount);
$c ++;
}
dump("counter");
dd($c);
}
if(false){ //10
dump("set ProduktPoints to Order Items");
dd('check function');
$ShoppingOrderItems = ShoppingOrderItem::where('points', null)->get();
$ShoppingOrderItems = ShoppingOrderItem::where('points', 0)->get();
//->skip(0)->take(500)->get();
//->skip(500)->take(500)->get();
foreach($ShoppingOrderItems as $item){
if($item->product){
$item->points = $item->product->points;
$item->save();
}else{
}
$c ++;
}
dd($c);
}
if(false){ //9
dump("make homeparty tax_split in shopping_order");
dd('check function');
$ShoppingOrders = ShoppingOrder::where('payment_for', '=', NULL)->get();
foreach($ShoppingOrders as $ShoppingOrder){
dump($ShoppingOrder->id);
dump($ShoppingOrder->shopping_user->getOrderPaymentFor());
$ShoppingOrder->payment_for = $ShoppingOrder->shopping_user->getOrderPaymentFor();
$ShoppingOrder->save();
$c ++;
}
dd($c);
}
if(false){ //8
dump("make homeparty tax_split in shopping_order");
dd('check function');
$ShoppingOrders = ShoppingOrder::where('homeparty_id', '!=', NULL)->get();
//->skip(0)->take(500)->get();
//->skip(500)->take(500)->get();
foreach($ShoppingOrders as $ShoppingOrder){
$ShoppingOrder->makeHomepartyTaxSplit();
$c ++;
}
dd($c);
}
if(false){ //7
dump("make homeparty shipping_tax in homeparty order user_cart");
dd('check function');
$ShoppingOrders = ShoppingOrder::where('homeparty_id', '!=', NULL)->get();
//->skip(0)->take(500)->get();
//->skip(500)->take(500)->get();
foreach($ShoppingOrders as $ShoppingOrder){
if(isset($ShoppingOrder->homeparty->order['user_carts'])){
$user_carts = [];
foreach($ShoppingOrder->homeparty->order['user_carts'] as $id => $values){
$values['shipping_tax'] = round($values['shipping_price'] - $values['shipping_price_net'], 2);
dump($values['shipping_tax']);
$user_carts[$id] = $values;
}
$order = $ShoppingOrder->homeparty->order;
$order['user_carts'] = $user_carts;
$ShoppingOrder->homeparty->order = $order;
$ShoppingOrder->homeparty->save();
}
$c ++;
}
dd($c);
}
if(false){ //6
dump("make tax_split in shopping_order");
dd('check function');
$ShoppingOrders = ShoppingOrder::where('homeparty_id', '=', NULL)->get();
//->skip(0)->take(500)->get();
//->skip(500)->take(500)->get();
foreach($ShoppingOrders as $ShoppingOrder){
$ShoppingOrder->makeTaxSplit();
$c ++;
}
dd($c);
}
if(false){ //5
//run after make points etc.
dump("correction shopping_order homeparty");
dd('check function');
$ShoppingOrders = ShoppingOrder::where('payment_for', 5)->get();
//->skip(0)->take(500)->get();
//->skip(500)->take(500)->get();
foreach($ShoppingOrders as $ShoppingOrder){
$homeparty = Homeparty::find($ShoppingOrder->homeparty_id);
if($homeparty && $homeparty->completed && $homeparty->step > 10){
$ShoppingOrder->subtotal = $homeparty->order['ek_price_net'];
$ShoppingOrder->subtotal_ws = 0;
$ShoppingOrder->tax = $ShoppingOrder->total - $homeparty->order['ek_price_net'];
$ShoppingOrder->points = $homeparty->order['points'] - $homeparty->order['bonus_points_diff'];
$ShoppingOrder->save();
$c ++;
}
}
dd($c);
}
if(false){ //4
dump("make tax in ShoppingOrderItem");
dd('check function');
$ShoppingOrderItems = ShoppingOrderItem::all();
//->skip(0)->take(500)->get();
//->skip(500)->take(500)->get();
foreach($ShoppingOrderItems as $item){
$item->tax = $item->price - $item->price_net;
$item->save();
$c ++;
}
dd($c);
}
if(false){ //3
dump("make price_net in ShoppingOrderItem");
dd('check function');
$ShoppingOrderItems = ShoppingOrderItem::where('price_net', '=', NULL)->get();
//->skip(0)->take(500)->get();
//->skip(500)->take(500)->get();
foreach($ShoppingOrderItems as $item){
$item->price_net = $item->price / (100 + $item->tax_rate) * 100;
$item->save();
$c ++;
}
dd($c);
}
if(false){ //2
dump("add payment_for in shopping_order");
dd('check function');
$ShoppingUsers = ShoppingUser::all();
foreach($ShoppingUsers as $ShoppingUser){
if($ShoppingUser->shopping_order){
$ShoppingUser->shopping_order->payment_for = $ShoppingUser->getOrderPaymentFor();
$ShoppingUser->shopping_order->save();
$c ++;
}
}
dd($c);
}
if(false){ //1
dump("make points in shopping_order_item and total in ShoppingOrder");
dd('check function');
$ShoppingOrders = ShoppingOrder::all();
//->skip(0)->take(500)->get();
//->skip(500)->take(500)->get();
foreach($ShoppingOrders as $ShoppingOrder){
$points_total = 0;
foreach($ShoppingOrder->shopping_order_items as $shopping_order_item){
$points = $shopping_order_item->product ? $shopping_order_item->product->points : 0;
$points_total += $points;
$shopping_order_item->points = $points;
$shopping_order_item->save();
$c ++;
}
$ShoppingOrder->points = $points_total;
$ShoppingOrder->save();
}
dd($c);
}
}
public static function store()
{
abort(403, 'STOP funtion not online');
}
}

View file

@ -0,0 +1,32 @@
<?php
namespace App\Services\SyS;
use Request;
class Cronjobs
{
public static function show()
{
//$user_shops = UserShop::all();
$text = "";
$values = [
'Prüft die Dauer der Mitgliedschaft und sendet Erinnerungsmails' => route('cron_jobs_action', ['check_payments_account', 'key'])
];
$data = [
'values' => $values,
'text' => $text,
];
return view('sys.tools.cronjobs', $data);
}
public static function store()
{
$data = Request::all();
\Session()->flash('alert-save', true);
return back();
}
}

View file

@ -0,0 +1,63 @@
<?php
namespace App\Services\SyS;
use Auth;
use Request;
use App\User;
use App\Models\ShoppingUser;
use App\Models\PaymentMethod;
use App\Services\CustomerPriority;
use App\Repositories\ContractPDFRepository;
class Customers
{
public static function show()
{
$shopping_users = ShoppingUser::where('member_id', '=', NULL)->where('auth_user_id', '=', NULL)->get();
$data = [
'values' => $shopping_users,
'text' => '',
];
return view('sys.tools.customers', $data);
}
public static function store()
{
$data = Request::all();
$ret = "";
if($data['action'] === 'makePaymentMethodsDefault'){
$users = User::where('payment_methods', '=', NULL)->get();
//$users = User::all();
foreach ($users as $user){
$user->payment_methods = PaymentMethod::getDefaultAsArray();
$user->save();
}
}
if($data['action'] === 'checkForAll'){
$shopping_users = CustomerPriority::checkForAll();
}
if($data['action'] === 'checkContractPDF'){
//create PDF
$user = User::findOrFail(80);
$pdf = new ContractPDFRepository($user);
$pdf->_set('disk', 'user');
$pdf->_set('dir', '/'.$user->id.'/documents/');
$pdf->_set('user_id', $user->id);
$pdf->_set('identifier', 'contract');
$pdf->createContractPDF();
}
if(strpos($data['action'], 'checkOne_') !== false){
$id = (int) str_replace('checkOne_', '', $data['action']);
$shopping_user = ShoppingUser::findOrFail($id);
$ret = CustomerPriority::checkOne($shopping_user);
}
\Session()->flash('alert-success', $ret);
return back();
}
}

View file

@ -0,0 +1,104 @@
<?php
namespace App\Services\SyS;
use Request;
use App\Models\UserShop;
use App\Http\Controllers\Api\KasController;
use App\Http\Controllers\Api\KasSLLController;
class DomainSSL
{
public static function show()
{
$user_shops = UserShop::limit(1000)->get();
$text = "";
$kas = new KasController();
//$domain = 'mivita.care';
// $ssl = KasSLLController::getApiSSLParameter();
$SubDomains = [];
$get_subdomains = $kas->action('get_subdomains');
foreach ($get_subdomains as $subdomain){
if(strpos($subdomain['subdomain_name'], 'www.') !== false){
continue;
}
if(strpos($subdomain['subdomain_name'], 'api.') !== false){
continue;
}
if(strpos($subdomain['subdomain_name'], 'checkout.') !== false){
continue;
}
$SubDomains[$subdomain['subdomain_name']] = $subdomain['ssl_certificate_sni'];
/* if($subdomain['ssl_certificate_sni'] !== "Y"){
$pra = array(
'hostname' => $subdomain['subdomain_name'],
);
$pra = array_merge($pra, $ssl);
$value = $kas->action('update_ssl', $pra);
$text .= $value;
}else{
if(isset($subdomain['ssl_certificate_sni_is_active'])){
$text .= $subdomain['ssl_certificate_sni_is_active'].'-is_active';
}else{
$text .= '-CHECK!';
}
}*/
//$text .= "\n";
}
foreach($user_shops as $user_shop){
$user_shop->hasSubdomain = false;
$user_shop->hasSSL = false;
if(array_key_exists($user_shop->slug.'.mivita.care', $SubDomains)){
$user_shop->hasSubdomain = true;
$user_shop->hasSSL = $SubDomains[$user_shop->slug.'.mivita.care'] === 'Y' ? true : false;
unset($SubDomains[$user_shop->slug.'.mivita.care']);
}
}
$data = [
'values' => $user_shops,
'text' => $text,
'SubDomains' => $SubDomains,
];
return view('sys.tools.domain-ssl', $data);
}
public static function store()
{
$data = Request::all();
if(isset($data['delete_sub_kas'])){
$kas = new KasController();
$pra = array(
'subdomain_name' => $data['delete_sub_kas'],
);
$value = $kas->action('delete_subdomain', $pra);
\Session()->flash('alert-success', 'subdomain: '.$value.' gelöscht');
}
if(isset($data['delete_user_shop'])){
$user_shop = UserShop::findOrFail($data['delete_user_shop']);
$subdomain_name = $user_shop->slug.'.mivita.care';
$user_shop->name = "delete".$user_shop->id;
$user_shop->slug = "delete".$user_shop->id;
$user_shop->save();
$user_shop->delete();
$kas = new KasController();
$pra = array(
'subdomain_name' => $subdomain_name,
);
$value = $kas->action('delete_subdomain', $pra);
\Session()->flash('alert-success', 'shop/subdomain: '.$value.' gelöscht');
}
return back();
}
}

View file

@ -0,0 +1,49 @@
<?php
namespace App\Services\SyS;
use Carbon;
use Request;
use App\Models\SySetting;
use App\Repositories\ImportRepository;
class Import
{
public static function show()
{
abort(403, 'STOP funtion not online');
return view('sys.tools.import', []);
}
public static function store()
{
abort(403, 'STOP funtion not online');
}
public function importStore()
{
$input = Request::all();
$import_repo = new ImportRepository();
return $import_repo->upload($input);
}
public function importShow($type, $file, $skip = 0, $limit = 4000)
{
$import_repo = new ImportRepository();
$import = $import_repo->read($type, $file, $skip, $limit);
$data = [
'limit' => $limit,
'type' => $type,
'file' => $file,
'import' => $import,
'skip' => $skip,
];
return view('sys.tools.import-show', $data);
}
}

View file

@ -0,0 +1,65 @@
<?php
namespace App\Services\SyS;
use Request;
use Carbon;
use App\Models\SySetting;
use App\Models\ShoppingOrder;
class Sales
{
public static function show()
{
$start = 2019;
$end = date('Y');
$years = range($start, $end);
if(Request::get('filter_sales_year')){
$active_year = Request::get('filter_sales_year');
}else{
$active_year = $end;
}
$date1 = Carbon::parse('01.01.'.$active_year." 00:00:00")->format('Y-m-d H:i:s');
$date2 = Carbon::parse('31.12.'.$active_year." 23:59:59")->toDateString();
$values = ShoppingOrder::where('shopping_orders.auth_user_id', '!=', NULL) //::with('shopping_user', )->select('shopping_orders.*')
->where('mode', '=', 'live')
->where('paid', '=', 1)
->whereHas('shopping_order_items', function($q) {
$q->where('product_id', 34)->OrWhere('product_id', 35)->OrWhere('product_id', 36)->OrWhere('product_id', 67)->OrWhere('product_id', 69);
})
->whereBetween('created_at', [$date1, $date2])
->get();
$data = [
'years' => $years,
'active_year' => $active_year,
'values' => $values,
];
return view('sys.tools.sales', $data);
}
public static function store()
{
$data = Request::all();
$data['active'] = isset($data['active']) ? true : false;
if($data['id'] === "new"){
$model = SySetting::create($data);
}else{
$model = SySetting::find($data['id']);
$model->fill($data);
$model->save();
}
\Session()->flash('alert-save', '1');
return redirect(route('sysadmin_tool', ['sales_members']));
}
}

View file

@ -0,0 +1,64 @@
<?php
namespace App\Services\SyS;
use Request;
use App\Services\Shop;
use App\Models\UserShop;
use App\Models\ShoppingUser;
use App\Http\Controllers\Api\KasController;
use App\Http\Controllers\Api\KasSLLController;
class ShoppingOrders
{
public static function show()
{
abort(403, 'STOP funtion not online');
$shopping_users = ShoppingUser::all();
$data = [
'values' => $shopping_users,
'text' => '',
];
return view('sys.tools.shopping-orders', $data);
}
public static function store()
{
abort(403, 'STOP funtion not online');
dd("");
$data = Request::all();
if($data['action'] === 'first_run'){
$shopping_users = ShoppingUser::whereHas('shopping_order', function($q) {
$q->where('txaction', 'paid')->OrWhere('txaction', 'appointed');
})->get();
$order_email = [];
$order_number = [];
foreach ($shopping_users as $shopping_user){
$order_email[$shopping_user->billing_email] = isset($order_email[$shopping_user->billing_email]) ? $order_email[$shopping_user->billing_email] + 1 : 1;
if($shopping_user->number) {
$order_number[$shopping_user->number] = isset($order_number[$shopping_user->number]) ? $order_number[$shopping_user->number] + 1 : 1;
$shopping_user->orders = $order_number[$shopping_user->number];
}else {
$shopping_user->orders = $order_email[$shopping_user->billing_email];
}
$shopping_user->save();
}
\Session()->flash('alert-save', true);
}
if($data['action'] === 'next_run'){
Shop::userOrders();
\Session()->flash('alert-save', true);
}
return back();
}
}