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

View file

@ -4,7 +4,7 @@ namespace App\Repositories;
use PDF;
use Storage;
use App\Services\Invoice;
use App\Services\Credit;
use App\Services\MyPDFMerger;
use App\Services\UserMarign;
use App\Models\UserCredit;
@ -21,10 +21,10 @@ class CreditRepository extends BaseRepository {
public function create($request = [])
{
//need invoice $data
$credit_number = isset($request['credit_number']) ? $request['credit_number'] : Invoice::getInvoiceNumber();
$credit_number = isset($request['credit_number']) ? $request['credit_number'] : Credit::getCreditNumber();
$credit_date = isset($request['credit_date']) ? $request['credit_date'] : \Carbon::now()->format("d.m.Y");
$credit_send_mail = isset($request['credit_send_mail']) ? true: false;
$credit_number = Invoice::createInvoiceNumber($credit_number, $credit_date);
$credit_number = Credit::createCreditNumber($credit_number, $credit_date);
$user_credits = $this->makeUserCredit();
@ -38,13 +38,13 @@ class CreditRepository extends BaseRepository {
$pdf = PDF::loadView('pdf.credit', $data);
$pdf->setPaper('A4', 'portrait');
$dir = Invoice::getCreditStorageDir($credit_date);
$dir = Credit::getCreditStorageDir($credit_date);
if(!Storage::disk('public')->exists( $dir )){
Storage::disk('public')->makeDirectory($dir); //creates directory
}
$path = Storage::disk('public')->getAdapter()->getPathPrefix();
$filename = Invoice::makeCreditFilename($credit_number);
$filename = Credit::makeCreditFilename($credit_number);
$pdf->save($path.$dir.$filename);
@ -61,7 +61,7 @@ class CreditRepository extends BaseRepository {
'invoice_number' => $credit_number,
'credit_date' => $credit_date,
];
UserCredit::create([
$user_credit = UserCredit::create([
'auth_user_id' => $this->model->id,
'net' => $user_credits->net,
'tax_rate' => $user_credits->tax_rate,
@ -72,31 +72,47 @@ class CreditRepository extends BaseRepository {
'user_margins' => $user_credits->margins,
]);
if($credit_send_mail){
//Invoice::sendInvoiceMail($this->model);
Credit::sendCreditMail($user_credit);
}
//Invoice::makeNextInvoiceNumber();
$this->finishUserCredit($user_credit);
return true;
//return $pdf->stream('invoice.pdf');
//return $this->output($path.$dir, $filename);
}
private function finishUserCredit($user_credit){
//next number
Credit::makeNextCreditNumber();
//mark as payed
$ShoppingOrderMargins = UserMarign::getOrderFromPartnerCommissionByID($this->model->id);
foreach($ShoppingOrderMargins as $ShoppingOrderMargin){
$ShoppingOrderMargin->partner_commission_paid = true;
$ShoppingOrderMargin->user_credit_id = $user_credit->id;
$ShoppingOrderMargin->save();
}
}
private function makeUserCredit(){
$ret = new \stdClass();
$ret->net = 0;
$UserMarigns = UserMarign::getOrderFromPartnerCommissionByID($this->model->id);
foreach($UserMarigns as $UserMarign){
$ShoppingOrderMargins = UserMarign::getOrderFromPartnerCommissionByID($this->model->id);
foreach($ShoppingOrderMargins as $ShoppingOrderMargin){
$margin = new \stdClass();
$margin->id = $UserMarign->id;
$margin->net = $UserMarign->net_partner_commission;
$margin->reference = $UserMarign->shopping_order->getLastShoppingPayment('reference');
$margin->firstname = $UserMarign->shopping_order->shopping_user->billing_firstname;
$margin->lastname = $UserMarign->shopping_order->shopping_user->billing_lastname;
$margin->created_at = $UserMarign->shopping_order->created_at->format("d.m.Y");
$margin->id = $ShoppingOrderMargin->id;
$margin->net = $ShoppingOrderMargin->net_partner_commission;
$margin->reference = $ShoppingOrderMargin->shopping_order->getLastShoppingPayment('reference');
$margin->firstname = $ShoppingOrderMargin->shopping_order->shopping_user->billing_firstname;
$margin->lastname = $ShoppingOrderMargin->shopping_order->shopping_user->billing_lastname;
$margin->created_at = $ShoppingOrderMargin->shopping_order->created_at->format("d.m.Y");
$ret->margins[] = $margin;
$ret->net += $UserMarign->net_partner_commission;
$ret->net += $ShoppingOrderMargin->net_partner_commission;
}
/* taxable_sales //user tax
1 //umsatzsteuerpflichtig