"bezahlt", 'appointed' => "offen", 'failed' => "abbruch", 'extern' => "extern", 'open' => "offen", 'invoice_open' => "Re. offen", 'invoice_paid' => "Re. bezahlt", 'invoice_non' => "Re. keine Zahlung", 'non' => "keine Zahlung", 'NULL' => 'keine Zahlung', ]; public static $txaction_invoice = [ 'open' => "offen", 'paid' => "bezahlt", 'non' => "keine Zahlung", /*'open_vor' => "Vorkasse offen", 'paid_vor' => "Vorkasse bezahlt", 'non_vor' => "Vorkasse keine Zahlung", 'invoice_open' => "Rechung offen", 'invoice_paid' => "Rechung bezahlt", 'invoice_non' => 'Rechung keine Zahlung',*/ ]; public static $txaction_color = [ 'appointed' => "warning", 'failed' => "danger", 'extern' => "success", 'open' => "warning", 'paid' => "success", 'non' => "danger", 'open_vor' => "warning", 'paid_vor' => "success", 'non_vor' => "danger", 'invoice_open' => "warning", 'invoice_paid' => "success", 'invoice_non' => "danger", ]; public static function getFormattedTxaction($txaction){ if($txaction && isset(self::$txaction_text[$txaction])){ return self::$txaction_text[$txaction]; } return self::$txaction_text['NULL']; } public static function getFormattedTxactionColor($txaction){ if($txaction && isset(self::$txaction_color[$txaction])){ return self::$txaction_color[$txaction]; } return "warning"; } public static function generateNextInvoiceNumber(){ $invoice_number = \App\Models\Setting::getContentBySlug('invoice-number'); return $invoice_number; } public static function getShoppingOrderBadge(ShoppingOrder $shopping_order){ if($shopping_order->mode === 'test'){ return ''.strtoupper($shopping_order->mode).' - '.self::getFormattedTxaction($shopping_order->txaction).''; } if($shopping_order->mode === 'dev'){ return ''.strtoupper($shopping_order->mode).' - '.self::getFormattedTxaction($shopping_order->txaction).''; } return ''.self::getFormattedTxaction($shopping_order->txaction).''; } public static function getShoppingPaymentBadge(ShoppingPayment $shopping_payment){ if($shopping_payment->mode === 'test'){ return ''.strtoupper($shopping_payment->mode).' - '.self::getFormattedTxaction($shopping_payment->txaction).''; } return ''.self::getFormattedTxaction($shopping_payment->txaction).''; } public static function addUserPayCredits(User $user, $credit, $status, $message, $shopping_order_id = null){ UserPayCredit::create([ 'user_id' => $user->id, 'credit' => $credit, 'old_credit_total' => $user->payment_credit, 'new_credit_total' => $user->payment_credit + $credit, 'message' => $message, 'status' => $status, 'shopping_order_id' => $shopping_order_id, ]); $user->payment_credit = $user->payment_credit + $credit; $user->save(); } public static function addUserCreditMargin(User $user, $credit, $status, $message){ UserCreditMargin::create([ 'user_id' => $user->id, 'credit' => $credit, 'message' => $message, 'status' => $status, ]); } public static function addProductBuy(User $user, Product $product){ if($product->max_buy && $product->max_buy_num > 0){ $ProductBuy = ProductBuy::where('auth_user_id', $user->id)->where('product_id', $product->id)->first(); if(!$ProductBuy){ ProductBuy::create([ 'auth_user_id' => $user->id, 'product_id' => $product->id, 'num' => 1, ]); }else{ $ProductBuy->num = $ProductBuy->num+1; $ProductBuy->save(); } } } public static function paymentStatusPaidAction(ShoppingOrder $shopping_order, $paid){ $send_link = false; $shopping_order->setUserHistoryValue(['status' => 8]); Shop::userOrders(); $shopping_order->paid = $paid; $shopping_order->save(); //if product has actions if($shopping_order->shopping_order_items && $shopping_order->auth_user_id){ foreach($shopping_order->shopping_order_items as $shopping_order_item){ if($shopping_order_item->product){ //add product when buy $user = User::findOrFail($shopping_order->auth_user_id); if($shopping_order_item->product->max_buy && $shopping_order_item->product->max_buy_num > 0){ self::addProductBuy($user, $shopping_order_item->product); } //product action if($shopping_order_item->product->action){ $user->save(); $send_link = true; //new date $date = \Carbon::now()->modify('1 year'); if($user->payment_account && $user->daysActiveAccount()>0){ $date = \Carbon::parse($user->payment_account)->modify('1 year'); } foreach ($shopping_order_item->product->action as $do){ if($shopping_order_item->product->getActionName($do) === 'payment_for_account'){ // $user->payment_order_id = $shopping_order_item->product->id; //34 $user->payment_account = $date; $user->wizard = 100; $user->save(); self::addUserPayCredits($user, $shopping_order_item->product->price, 1, 'payment_for_account', $shopping_order->id); $shopping_order->setUserHistoryValue(['status' => 9]); } /*if($shopping_order_item->product->getActionName($do) === 'payment_for_shop'){ $user->payment_order_id = $shopping_order_item->product->id; //35 $user->payment_shop = $date; $user->wizard = 100; $shopping_order->setUserHistoryValue(['status' => 9]); } if($shopping_order_item->product->getActionName($do) === 'payment_for_shop_upgrade'){ if($shopping_order_item->product->upgrade_to_id){ $user->payment_order_id = $shopping_order_item->product->upgrade_to_id; } $user->payment_shop = $user->payment_account; //same Date, is upgrade $shopping_order->setUserHistoryValue(['status' => 9]); } if($shopping_order_item->product->getActionName($do) === 'payment_for_lead_upgrade'){ if($shopping_order_item->product->upgrade_to_id){ $user->m_level = $shopping_order_item->product->upgrade_to_id; } }*/ //$user->save(); } } } } //if the order has action if($shopping_order->shopping_user->is_from === 'user_order'){ //is margin -> set paid $shopping_order->shopping_order_margin->paid = true; $shopping_order->shopping_order_margin->save(); } } return $send_link; } //remove form credit, every sale fnc / vor / etc from CheckoutController //when stone, put it back SalesController public static function handelUserPayCredits(ShoppingOrder $shopping_order, $do){ //is payment credit, reduce Sae if($do === 'deduction'){ if($shopping_order->shopping_order_margin->from_payment_credit > 0){ $credit = $shopping_order->shopping_order_margin->from_payment_credit * -1; self::addUserPayCredits($shopping_order->auth_user, $credit, 2, 'user_order_deduction', $shopping_order->id); } } if($do === 'return'){ if($shopping_order->shopping_order_margin->from_payment_credit > 0){ $credit = $shopping_order->shopping_order_margin->from_payment_credit; self::addUserPayCredits($shopping_order->auth_user, $credit, 4, 'user_order_return', $shopping_order->id); } } } public static function paymentStatusSendMail(ShoppingOrder $shopping_order, $shopping_payment, $data){ $bcc = []; $billing_email = $shopping_order->shopping_user->billing_email; if(!$billing_email){ if($data['mode'] === 'test'){ $billing_email = config('app.checkout_test_mail'); }else{ $billing_email = config('app.checkout_mail'); } } if($data['mode'] === 'test'){ $bcc[] = config('app.checkout_test_mail'); }else{ $bcc[] = config('app.checkout_mail'); } if(!$shopping_order->shopping_user->is_like && $shopping_order->shopping_user->member){ $bcc[] = $shopping_order->shopping_user->member->email; } Mail::to($billing_email)->bcc($bcc)->send(new MailCheckout($data['txaction'], $shopping_order, $shopping_payment, $data['send_link'], $data['mode'])); } }