Gutschriften

This commit is contained in:
Kevin Adametz 2021-04-23 14:52:25 +02:00
parent 35ae3da244
commit 6ac9fcc4d2
20 changed files with 510 additions and 63 deletions

81
app/Services/Credit.php Normal file
View file

@ -0,0 +1,81 @@
<?php
namespace App\Services;
use App\Services\Util;
use App\Models\Setting;
use App\Mail\MailCredit;
use App\Models\UserCredit;
use Illuminate\Support\Facades\Mail;
class Credit
{
public static function getCreditNumber(){
return (int) Setting::getContentBySlug('credit-number');
}
public static function makeNextCreditNumber(){
$invoice_number = self::getCreditNumber();
$invoice_number = $invoice_number+1;
Setting::setContentBySlug('credit-number', $invoice_number, 'int');
return $invoice_number;
}
public static function createCreditNumber($invoice_number, $invoice_date){
$prefix = "GS".\Carbon::parse($invoice_date)->format('Ym');
return $prefix.$invoice_number;
}
public static function getCreditStorageDir($invoice_date){
return "/credit/".\Carbon::parse($invoice_date)->format('Y/m/');
}
public static function makeCreditFilename($invoice_number){
return "Gutschrift-".$invoice_number.".pdf";
}
public static function isCredit(UserCredit $user_credit){
return isset($user_credit->credit['filename']) ? true : false;
}
public static function getFilename(UserCredit $user_credit){
return isset($user_credit->credit['filename']) ? $user_credit->credit['filename'] : false;
}
public static function getDir(UserCredit $user_credit){
return isset($user_credit->credit['dir']) ? $user_credit->credit['dir'] : false;
}
public static function getDownloadURL(UserCredit $user_credit, $do = false){
return route('storage_file', [$user_credit->id, 'cms_download_file', $do]);
}
public static function getDownloadPath(UserCredit $user_credit, $full = false){
$dir = self::getDir($user_credit);
$filename = self::getFilename($user_credit);
if(!$full){
return $dir.$filename;
}
return \Storage::disk('public')->path($dir.$filename);
}
public static function sendCreditMail(UserCredit $user_credit){
$bcc = [];
$email = $user_credit->user->email;
$email = "kevin.adametz@me.com";
if(!$email){
if($user_credit->user->mode === 'test'){
}else{
$email = config('app.checkout_mail');
}
}
if($user_credit->user->mode === 'test'){
$bcc[] = config('app.checkout_test_mail');
}else{
$bcc[] = config('app.checkout_mail');
}
Mail::to($email)->bcc($bcc)->send(new MailCredit($user_credit));
}
}

View file

@ -31,41 +31,22 @@ class Invoice
return "/invoice/".\Carbon::parse($invoice_date)->format('Y/m/');
}
public static function getCreditStorageDir($invoice_date){
return "/credit/".\Carbon::parse($invoice_date)->format('Y/m/');
}
public static function makeInvoiceFilename($invoice_number){
return "Rechnung-".$invoice_number.".pdf";
}
public static function makeCreditFilename($invoice_number){
return "Gutschrift-".$invoice_number.".pdf";
}
public static function isInvoice(ShoppingOrder $shopping_order){
return isset($shopping_order->invoice['filename']) ? true : false;
}
public static function isCredit(UserCredit $user_credit){
return isset($user_credit->credit['filename']) ? true : false;
}
public static function getFilename(ShoppingOrder $shopping_order){
return isset($shopping_order->invoice['filename']) ? $shopping_order->invoice['filename'] : false;
}
public static function getCreditFilename(UserCredit $user_credit){
return isset($user_credit->credit['filename']) ? $user_credit->credit['filename'] : false;
}
public static function getDir(ShoppingOrder $shopping_order){
return isset($shopping_order->invoice['dir']) ? $shopping_order->invoice['dir'] : false;
}
public static function getCreditDir(UserCredit $user_credit){
return isset($user_credit->credit['dir']) ? $user_credit->credit['dir'] : false;
}
public static function getDownloadURL(ShoppingOrder $shopping_order, $do = false){
return route('storage_file', [$shopping_order->id, 'cms_download_file', $do]);
}
@ -78,15 +59,6 @@ class Invoice
return \Storage::disk('public')->path($dir.$filename);
}
public static function getCreditDownloadPath(UserCredit $user_credit, $full = false){
$dir = self::getCreditDir($user_credit);
$filename = self::getCreditFilename($user_credit);
if(!$full){
return $dir.$filename;
}
return \Storage::disk('public')->path($dir.$filename);
}
public static function sendInvoiceMail($shopping_order){
$bcc = [];
$billing_email = $shopping_order->shopping_user->billing_email;

View file

@ -6,6 +6,7 @@ use App\Mail\MailCheckout;
use App\Models\Setting;
use App\Models\ShoppingOrder;
use App\Models\ShoppingPayment;
use App\Models\UserPayCredit;
use App\User;
use Illuminate\Support\Facades\Mail;
@ -91,7 +92,22 @@ class Payment
return '<span class="badge badge-pill badge-'.self::getFormattedTxactionColor($shopping_payment->txaction).'">'.self::getFormattedTxaction($shopping_payment->txaction).'</span>';
}
public static function addUserPayCredits(User $user, $credit, $status, $message, $shopping_order_id = null){
$new_credit_total = $user->payment_credit;
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 paymentStatusPaidAction(ShoppingOrder $shopping_order, $paid){
$send_link = false;
@ -119,8 +135,10 @@ class Payment
// $user->payment_order_id = $shopping_order_item->product->id; //34
$user->payment_account = $date;
$user->wizard = 100;
$user->payment_credit = $shopping_order_item->product->price;
$user->save();
self::addUserPayCredits($user, $shopping_order_item->product->price, 1, 'payment_for_account');
$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
@ -140,7 +158,7 @@ class Payment
$user->m_level = $shopping_order_item->product->upgrade_to_id;
}
}*/
$user->save();
//$user->save();
}
}
}
@ -154,10 +172,8 @@ class Payment
$shopping_order->shopping_order_margin->save();
//is payment credit, reduce
if($shopping_order->shopping_order_margin->from_payment_credit > 0){
$new_credit = $shopping_order->auth_user->payment_credit - $shopping_order->shopping_order_margin->from_payment_credit;
$new_credit = $new_credit < 0 ? 0 : $new_credit;
$shopping_order->auth_user->payment_credit = $new_credit;
$shopping_order->auth_user->save();
$credit = $shopping_order->shopping_order_margin->from_payment_credit * -1;
self::addUserPayCredits($shopping_order->auth_user, $credit, 2, 'user_order_deduction');
}
}