Rechnungen + Gutschriften
This commit is contained in:
parent
39ef16686a
commit
35ae3da244
33 changed files with 2834 additions and 34 deletions
1
.env
1
.env
|
|
@ -10,6 +10,7 @@ APP_INFO_MAIL=kevin.adametz@me.com
|
|||
APP_INFO_TEST_MAIL=kevin.adametz@me.com
|
||||
|
||||
APP_MAIN_TAX = 1.19
|
||||
APP_MAIN_TAX_RATE = 19
|
||||
|
||||
LOG_CHANNEL=stack
|
||||
LOG_LEVEL=debug
|
||||
|
|
|
|||
|
|
@ -61,6 +61,34 @@ class FileController extends Controller
|
|||
|
||||
}
|
||||
|
||||
if ($disk === 'credit'){
|
||||
$UserCredit = \App\Models\UserCredit::findOrFail($id);
|
||||
$filename = Invoice::getCreditFilename($UserCredit);
|
||||
$path = Invoice::getCreditDownloadPath($UserCredit);
|
||||
if (!Storage::disk('public')->exists($path)) {
|
||||
return Response::make('File no found.', 404);
|
||||
}
|
||||
$file = Storage::disk('public')->get($path);
|
||||
$type = Storage::disk('public')->mimeType($path);
|
||||
|
||||
if($do === 'download'){
|
||||
return Response::make($file, 200)
|
||||
->header("Content-Type", $type)
|
||||
->header('Content-disposition', 'attachment; filename="'.$filename.'"');
|
||||
/* $full_path = Invoice::getDownloadPath($shopping_order, true);
|
||||
$he
|
||||
if (file_exists($full_path)) {
|
||||
return Response::download($full_path, $filename);
|
||||
}*/
|
||||
}
|
||||
if($do === 'stream'){
|
||||
return Response::make($file, 200)
|
||||
->header("Content-Type", $type)
|
||||
->header('Content-disposition','filename="'.$filename.'"');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
138
app/Http/Controllers/PaymentCreditController.php
Normal file
138
app/Http/Controllers/PaymentCreditController.php
Normal file
|
|
@ -0,0 +1,138 @@
|
|||
<?php
|
||||
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
use Carbon;
|
||||
use Request;
|
||||
use App\User;
|
||||
use App\Services\Invoice;
|
||||
use App\Services\Payment;
|
||||
use App\Models\ShoppingOrder;
|
||||
use App\Models\ShoppingOrderMargin;
|
||||
use App\Models\UserCredit;
|
||||
use App\Repositories\CreditRepository;
|
||||
|
||||
class PaymentCreditController extends Controller
|
||||
{
|
||||
|
||||
private $startYear;
|
||||
private $endYear;
|
||||
private $rangeYears;
|
||||
private $activeYear;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('auth');
|
||||
$this->startYear = 2021;
|
||||
$this->endYear = date('Y');
|
||||
$this->rangeYears = range($this->startYear, $this->endYear);
|
||||
$this->activeYear = $this->endYear;
|
||||
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
$this->setActiveYears();
|
||||
$date1 = Carbon::parse('01.01.'.$this->activeYear." 00:00:00")->format('Y-m-d H:i:s');
|
||||
$date2 = Carbon::parse('31.12.'.$this->activeYear." 23:59:59")->toDateString();
|
||||
|
||||
|
||||
$ShoppingOrderMargins = ShoppingOrderMargin::join('users', 'm_sponsor_id', '=', 'users.id')
|
||||
->groupBy('m_sponsor_id')
|
||||
->join('user_accounts', 'account_id', '=', 'user_accounts.id')
|
||||
->select('users.id as user_id', 'users.email', 'user_accounts.first_name', 'user_accounts.last_name')
|
||||
->wherePaid(true)
|
||||
->whereCancellation(false)
|
||||
->wherePartnerCommissionPaid(false)
|
||||
->where('partner_commission_pending_to', '<', Carbon::now())
|
||||
->get();
|
||||
|
||||
$ShoppingOrderMarginPendings = ShoppingOrderMargin::join('users', 'm_sponsor_id', '=', 'users.id')
|
||||
->groupBy('m_sponsor_id')
|
||||
->join('user_accounts', 'account_id', '=', 'user_accounts.id')
|
||||
->select('users.id as user_id', 'users.email', 'user_accounts.first_name', 'user_accounts.last_name')
|
||||
->wherePaid(true)
|
||||
->whereCancellation(false)
|
||||
->wherePartnerCommissionPaid(false)
|
||||
->where('partner_commission_pending_to', '>=', Carbon::now())
|
||||
->get();
|
||||
|
||||
|
||||
$data = [
|
||||
'years' => $this->rangeYears,
|
||||
'active_year' => $this->activeYear,
|
||||
'ShoppingOrderMargins' => $ShoppingOrderMargins,
|
||||
'ShoppingOrderMarginPendings' => $ShoppingOrderMarginPendings,
|
||||
];
|
||||
return view('admin.payment.credit.index', $data);
|
||||
}
|
||||
|
||||
public function create(){
|
||||
$data = Request::all();
|
||||
if(!isset($data['userid'])){
|
||||
abort(404);
|
||||
}
|
||||
if(isset($data['action'])){
|
||||
if($data['action'] === 'create_credit'){
|
||||
$user = User::findOrFail($data['userid']);
|
||||
$invoice_repo = new CreditRepository($user);
|
||||
$invoice_repo->create($data);
|
||||
return redirect($data['back']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private function setActiveYears(){
|
||||
if(Request::get('filter_sales_year')){
|
||||
$this->activeYear = Request::get('filter_sales_year');
|
||||
}
|
||||
}
|
||||
|
||||
public function datatable(){
|
||||
|
||||
$this->setActiveYears();
|
||||
$date1 = Carbon::parse('01.01.'.$this->activeYear)->format('Y-m-d');
|
||||
$date2 = Carbon::parse('31.12.'.$this->activeYear)->format('Y-m-d');
|
||||
|
||||
$query = UserCredit::with('user', 'user.account')->select('user_credits.*')
|
||||
//::with('shopping_user', )->select('shopping_orders.*')
|
||||
//->where('paid', '=', 1)
|
||||
->whereBetween('date', [$date1, $date2]);
|
||||
//->orderBy('created_at', 'DESC');
|
||||
|
||||
return \DataTables::eloquent($query)
|
||||
|
||||
|
||||
->addColumn('total', function (UserCredit $UserCredit) {
|
||||
return $UserCredit->getFormattedTotal();
|
||||
})
|
||||
->addColumn('user_margins', function (UserCredit $UserCredit) {
|
||||
$ret = "";
|
||||
if($UserCredit->user_margins){
|
||||
foreach($UserCredit->user_margins as $user_margin){
|
||||
$ret .= $user_margin->firstname."/".$user_margin->lastname."/".$user_margin->reference."/".$user_margin->created_at."<br>";
|
||||
}
|
||||
}
|
||||
return $ret;
|
||||
})
|
||||
/* ->addColumn('txaction', function (ShoppingOrder $ShoppingOrder) {
|
||||
return Payment::getShoppingOrderBadge($ShoppingOrder);
|
||||
})*/
|
||||
->addColumn('credit', function (UserCredit $UserCredit) {
|
||||
$ret = "";
|
||||
if(Invoice::isCredit($UserCredit)){
|
||||
$ret .= '<a href="'.route('storage_file', [$UserCredit->id, 'credit', 'download']).'" class="btn btn-primary btn-xs"><i class="fa fa-download"></i></a> ';
|
||||
$ret .= '<a href="'.route('storage_file', [$UserCredit->id, 'credit', 'stream']).'" target="_blank" class="btn btn-warning btn-xs"><i class="fa fa-eye"></i></a>';
|
||||
}else{
|
||||
$ret = "-";
|
||||
}
|
||||
return $ret;
|
||||
})
|
||||
|
||||
->orderColumn('id', 'id $1')
|
||||
->orderColumn('status', 'status $1')
|
||||
->orderColumn('total', 'total $1')
|
||||
->rawColumns(['shipping_order', 'total', 'credit', 'user_margins'])
|
||||
->make(true);
|
||||
}
|
||||
}
|
||||
101
app/Http/Controllers/PaymentInvoiceController.php
Normal file
101
app/Http/Controllers/PaymentInvoiceController.php
Normal file
|
|
@ -0,0 +1,101 @@
|
|||
<?php
|
||||
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
use Carbon;
|
||||
use Request;
|
||||
use App\User;
|
||||
use App\Services\Invoice;
|
||||
use App\Services\Payment;
|
||||
use App\Models\ShoppingOrder;
|
||||
|
||||
|
||||
class PaymentInvoiceController extends Controller
|
||||
{
|
||||
|
||||
private $startYear;
|
||||
private $endYear;
|
||||
private $rangeYears;
|
||||
private $activeYear;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('auth');
|
||||
$this->startYear = 2021;
|
||||
$this->endYear = date('Y');
|
||||
$this->rangeYears = range($this->startYear, $this->endYear);
|
||||
$this->activeYear = $this->endYear;
|
||||
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
$this->setActiveYears();
|
||||
$date1 = Carbon::parse('01.01.'.$this->activeYear." 00:00:00")->format('Y-m-d H:i:s');
|
||||
$date2 = Carbon::parse('31.12.'.$this->activeYear." 23:59:59")->toDateString();
|
||||
|
||||
$data = [
|
||||
'years' => $this->rangeYears,
|
||||
'active_year' => $this->activeYear,
|
||||
];
|
||||
return view('admin.payment.invoice.index', $data);
|
||||
}
|
||||
|
||||
private function setActiveYears(){
|
||||
if(Request::get('filter_sales_year')){
|
||||
$this->activeYear = Request::get('filter_sales_year');
|
||||
}
|
||||
}
|
||||
|
||||
public function datatable(){
|
||||
|
||||
$this->setActiveYears();
|
||||
$date1 = Carbon::parse('01.01.'.$this->activeYear." 00:00:00")->format('Y-m-d H:i:s');
|
||||
$date2 = Carbon::parse('31.12.'.$this->activeYear." 23:59:59")->toDateString();
|
||||
|
||||
$query = ShoppingOrder::with('shopping_user')->select('shopping_orders.*')
|
||||
->where('shopping_orders.auth_user_id', '!=', NULL) //::with('shopping_user', )->select('shopping_orders.*')
|
||||
->where('mode', '=', 'live')
|
||||
//->where('paid', '=', 1)
|
||||
->whereBetween('created_at', [$date1, $date2]);
|
||||
//->orderBy('created_at', 'DESC');
|
||||
|
||||
return \DataTables::eloquent($query)
|
||||
->addColumn('id', function (ShoppingOrder $ShoppingOrder) {
|
||||
return '<a href="' . route('admin_sales_customers_detail', [$ShoppingOrder->id]) . '" class="btn icon-btn btn-sm btn-primary"><span class="fa fa-edit"></span></a>';
|
||||
})
|
||||
->addColumn('total_shipping', function (ShoppingOrder $ShoppingOrder) {
|
||||
return $ShoppingOrder->getFormattedTotalShipping()." €";
|
||||
})
|
||||
->addColumn('created_at', function (ShoppingOrder $ShoppingOrder) {
|
||||
return $ShoppingOrder->created_at->format("d.m.Y");
|
||||
})
|
||||
->addColumn('shipping_order', function (ShoppingOrder $ShoppingOrder) {
|
||||
$ret = "";
|
||||
foreach($ShoppingOrder->shopping_order_items as $shopping_order_item){
|
||||
$ret .= $shopping_order_item->product->name."<br>";
|
||||
}
|
||||
return $ret;
|
||||
})
|
||||
->addColumn('txaction', function (ShoppingOrder $ShoppingOrder) {
|
||||
return Payment::getShoppingOrderBadge($ShoppingOrder);
|
||||
})
|
||||
->addColumn('invoice', function (ShoppingOrder $ShoppingOrder) {
|
||||
$ret = "";
|
||||
if(Invoice::isInvoice($ShoppingOrder)){
|
||||
$ret .= '<a href="'.route('storage_file', [$ShoppingOrder->id, 'invoice', 'download']).'" class="btn btn-primary btn-xs"><i class="fa fa-download"></i></a> ';
|
||||
$ret .= '<a href="'.route('storage_file', [$ShoppingOrder->id, 'invoice', 'stream']).'" target="_blank" class="btn btn-warning btn-xs"><i class="fa fa-eye"></i></a>';
|
||||
}else{
|
||||
$ret = "-";
|
||||
}
|
||||
return $ret;
|
||||
})
|
||||
|
||||
->orderColumn('id', 'id $1')
|
||||
->orderColumn('txaction', 'txaction $1')
|
||||
->orderColumn('shipped', 'shipped $1')
|
||||
->orderColumn('total_shipping', 'total_shipping $1')
|
||||
->rawColumns(['id', 'shipping_order', 'txaction', 'invoice'])
|
||||
->make(true);
|
||||
}
|
||||
}
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\PaymentTransaction;
|
||||
use App\Models\Setting;
|
||||
use App\Models\ShoppingOrder;
|
||||
use App\Models\ShoppingPayment;
|
||||
use App\Models\ShoppingUser;
|
||||
|
|
@ -245,8 +246,6 @@ class SalesController extends Controller
|
|||
return '';
|
||||
})
|
||||
|
||||
|
||||
|
||||
->orderColumn('id', 'id $1')
|
||||
->orderColumn('txaction', 'txaction $1')
|
||||
->orderColumn('member_id', 'member_id $1')
|
||||
|
|
@ -266,6 +265,42 @@ class SalesController extends Controller
|
|||
$shopping_order = ShoppingOrder::findOrFail($data['id']);
|
||||
$shopping_order->shipped = $data['shipped'];
|
||||
$shopping_order->save();
|
||||
|
||||
if($shopping_order->getAPIShippedType() === 'sent' || $shopping_order->getAPIShippedType() === 'close'){
|
||||
if(!$shopping_order->shipped_at){
|
||||
$shopping_order->shipped_at = now();
|
||||
$shopping_order->save();
|
||||
//set to oder_margin
|
||||
if($shopping_order->shopping_order_margin && $shopping_order->shopping_order_margin->hasPartnerCommission()){
|
||||
$days = Setting::getContentBySlug('pending_partner_commissions_in_days');
|
||||
$days = $days ? $days : 20;
|
||||
$partner_commission_pending_to = $shopping_order->shipped_at;
|
||||
$partner_commission_pending_to->addDays($days);
|
||||
$shopping_order->shopping_order_margin->partner_commission_pending_to = $partner_commission_pending_to;
|
||||
$shopping_order->shopping_order_margin->save();
|
||||
}
|
||||
}
|
||||
}else{
|
||||
$shopping_order->shipped_at = null;
|
||||
$shopping_order->save();
|
||||
if($shopping_order->shopping_order_margin && $shopping_order->shopping_order_margin->hasPartnerCommission()){
|
||||
$shopping_order->shopping_order_margin->partner_commission_pending_to = null;
|
||||
$shopping_order->shopping_order_margin->save();
|
||||
}
|
||||
}
|
||||
if($shopping_order->getAPIShippedType() === 'cancel'){
|
||||
if($shopping_order->shopping_order_margin){
|
||||
$shopping_order->shopping_order_margin->cancellation = true;
|
||||
$shopping_order->shopping_order_margin->save();
|
||||
}
|
||||
}else{
|
||||
if($shopping_order->shopping_order_margin && $shopping_order->shopping_order_margin->cancellation){
|
||||
$shopping_order->shopping_order_margin->cancellation = false;
|
||||
$shopping_order->shopping_order_margin->save();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
if($data['action'] === 'store_txaction' && isset($data['txaction']) && isset($data['payment_id'])){
|
||||
|
|
|
|||
|
|
@ -135,6 +135,7 @@ class OrderController extends Controller
|
|||
|
||||
public function list($for, $id=null)
|
||||
{
|
||||
|
||||
$user = User::find(\Auth::user()->id);
|
||||
$shopping_user = null;
|
||||
$delivery_id = null;
|
||||
|
|
|
|||
53
app/Http/Controllers/User/RevenueController.php
Normal file
53
app/Http/Controllers/User/RevenueController.php
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
<?php
|
||||
|
||||
|
||||
namespace App\Http\Controllers\User;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\User;
|
||||
use Request;
|
||||
use Carbon;
|
||||
use App\Models\ShoppingOrder;
|
||||
|
||||
|
||||
class RevenueController extends Controller
|
||||
{
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('auth');
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
$start = 2021;
|
||||
$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('user.revenue.index', $data);
|
||||
}
|
||||
}
|
||||
|
|
@ -93,6 +93,10 @@ use Illuminate\Database\Eloquent\SoftDeletes;
|
|||
* @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder whereSubtotalShipping($value)
|
||||
* @property string|null $total_without_credit
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder whereTotalWithoutCredit($value)
|
||||
* @property array|null $invoice
|
||||
* @property \Illuminate\Support\Carbon|null $shipped_at
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder whereInvoice($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder whereShippedAt($value)
|
||||
*/
|
||||
class ShoppingOrder extends Model
|
||||
{
|
||||
|
|
@ -127,12 +131,14 @@ class ShoppingOrder extends Model
|
|||
'wp_notice',
|
||||
'mode',
|
||||
'shipped',
|
||||
'shipped_at',
|
||||
'tracking'
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'wp_notice' => 'array',
|
||||
'invoice' => 'array',
|
||||
'shipped_at' => 'datetime',
|
||||
];
|
||||
|
||||
public static $shippedTypes = [
|
||||
|
|
@ -159,9 +165,6 @@ class ShoppingOrder extends Model
|
|||
10 => 'danger',
|
||||
];
|
||||
|
||||
|
||||
|
||||
|
||||
public function shopping_user()
|
||||
{
|
||||
return $this->belongsTo('App\Models\ShoppingUser','shopping_user_id');
|
||||
|
|
@ -298,9 +301,6 @@ class ShoppingOrder extends Model
|
|||
return formatNumber($this->attributes['total_shipping']);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public function getItemsCount(){
|
||||
$count = 0;
|
||||
if($this->shopping_order_items){
|
||||
|
|
|
|||
|
|
@ -52,6 +52,11 @@ use Illuminate\Database\Eloquent\Model;
|
|||
* @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrderMargin whereUpdatedAt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrderMargin whereUserId($value)
|
||||
* @mixin \Eloquent
|
||||
* @property \Illuminate\Support\Carbon|null $partner_commission_pending_to
|
||||
* @property bool|null $partner_commission_paid
|
||||
* @property-read User|null $m_sponsor
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrderMargin wherePartnerCommissionPaid($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrderMargin wherePartnerCommissionPendingTo($value)
|
||||
*/
|
||||
class ShoppingOrderMargin extends Model
|
||||
{
|
||||
|
|
@ -68,7 +73,9 @@ class ShoppingOrderMargin extends Model
|
|||
'net_partner_commission' => 'float',
|
||||
'paid' => 'bool',
|
||||
'cancellation' => 'bool',
|
||||
'status' => 'int'
|
||||
'status' => 'int',
|
||||
'partner_commission_pending_to' => 'datetime',
|
||||
'partner_commission_paid' => 'bool',
|
||||
];
|
||||
|
||||
protected $dates = [
|
||||
|
|
@ -88,6 +95,8 @@ class ShoppingOrderMargin extends Model
|
|||
'paid',
|
||||
'cancellation',
|
||||
'status',
|
||||
'partner_commission_pending_to',
|
||||
'partner_commission_paid',
|
||||
'content'
|
||||
];
|
||||
|
||||
|
|
@ -105,4 +114,17 @@ class ShoppingOrderMargin extends Model
|
|||
{
|
||||
return $this->belongsTo(User::class, 'm_sponsor_id');
|
||||
}
|
||||
|
||||
|
||||
public function m_sponsor()
|
||||
{
|
||||
return $this->belongsTo(User::class, 'm_sponsor_id');
|
||||
}
|
||||
|
||||
public function hasPartnerCommission(){
|
||||
if($this->m_sponsor_id || $this->net_partner_commission > 0){
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
116
app/Models/UserCredit.php
Normal file
116
app/Models/UserCredit.php
Normal file
|
|
@ -0,0 +1,116 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Created by Reliese Model.
|
||||
*/
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
|
||||
/**
|
||||
* Class UserCredit
|
||||
*
|
||||
* @property int $id
|
||||
* @property int $auth_user_id
|
||||
* @property float|null $net
|
||||
* @property float|null $tax_rate
|
||||
* @property float|null $tax
|
||||
* @property float|null $total
|
||||
* @property string|null $credit
|
||||
* @property string|null $user_margins
|
||||
* @property bool $paid_out
|
||||
* @property bool $cancellation
|
||||
* @property int $status
|
||||
* @property Carbon|null $created_at
|
||||
* @property Carbon|null $updated_at
|
||||
* @property User $user
|
||||
* @package App\Models
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|UserCredit newModelQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|UserCredit newQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|UserCredit query()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|UserCredit whereAuthUserId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|UserCredit whereCancellation($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|UserCredit whereCreatedAt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|UserCredit whereCredit($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|UserCredit whereId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|UserCredit whereNet($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|UserCredit wherePaidOut($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|UserCredit whereStatus($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|UserCredit whereTax($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|UserCredit whereTaxRate($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|UserCredit whereTotal($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|UserCredit whereUpdatedAt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|UserCredit whereUserMargins($value)
|
||||
* @mixin \Eloquent
|
||||
*/
|
||||
class UserCredit extends Model
|
||||
{
|
||||
protected $table = 'user_credits';
|
||||
|
||||
protected $casts = [
|
||||
'auth_user_id' => 'int',
|
||||
'net' => 'float',
|
||||
'tax_rate' => 'float',
|
||||
'tax' => 'float',
|
||||
'total' => 'float',
|
||||
'paid_out' => 'bool',
|
||||
'cancellation' => 'bool',
|
||||
'status' => 'int',
|
||||
'credit' => 'array',
|
||||
'user_margins' => 'object'
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'auth_user_id',
|
||||
'net',
|
||||
'tax_rate',
|
||||
'tax',
|
||||
'total',
|
||||
'date',
|
||||
'credit',
|
||||
'user_margins',
|
||||
'paid_out',
|
||||
'cancellation',
|
||||
'status'
|
||||
];
|
||||
|
||||
public function user()
|
||||
{
|
||||
return $this->belongsTo(\App\User::class, 'auth_user_id');
|
||||
}
|
||||
|
||||
public function getDateAttribute($value)
|
||||
{
|
||||
if(!$value){
|
||||
return "";
|
||||
}
|
||||
return Carbon::parse($value)->format(\Util::formatDateDB());
|
||||
}
|
||||
|
||||
|
||||
public function setDateAttribute( $value ) {
|
||||
$this->attributes['date'] = isset($value) ? (new Carbon($value))->format('Y-m-d') : NULL;
|
||||
}
|
||||
public function getDateRaw(){
|
||||
return isset($this->attributes['date']) ? $this->attributes['date'] : NULL;
|
||||
}
|
||||
|
||||
public function getFormattedTax()
|
||||
{
|
||||
return formatNumber($this->attributes['tax']);
|
||||
}
|
||||
|
||||
public function getFormattedNet()
|
||||
{
|
||||
return formatNumber($this->attributes['net']);
|
||||
}
|
||||
|
||||
public function getFormattedTotal()
|
||||
{
|
||||
return formatNumber($this->attributes['total']);
|
||||
}
|
||||
|
||||
}
|
||||
122
app/Repositories/CreditRepository.php
Normal file
122
app/Repositories/CreditRepository.php
Normal file
|
|
@ -0,0 +1,122 @@
|
|||
<?php
|
||||
|
||||
namespace App\Repositories;
|
||||
|
||||
use PDF;
|
||||
use Storage;
|
||||
use App\Services\Invoice;
|
||||
use App\Services\MyPDFMerger;
|
||||
use App\Services\UserMarign;
|
||||
use App\Models\UserCredit;
|
||||
|
||||
use App\User;
|
||||
|
||||
class CreditRepository extends BaseRepository {
|
||||
|
||||
public function __construct(User $model)
|
||||
{
|
||||
$this->model = $model;
|
||||
}
|
||||
|
||||
public function create($request = [])
|
||||
{
|
||||
//need invoice $data
|
||||
$credit_number = isset($request['credit_number']) ? $request['credit_number'] : Invoice::getInvoiceNumber();
|
||||
$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);
|
||||
|
||||
$user_credits = $this->makeUserCredit();
|
||||
|
||||
$data = [
|
||||
'user' => $this->model,
|
||||
'credit_date' => $credit_date,
|
||||
'credit_number' => $credit_number,
|
||||
'user_credits' => $user_credits,
|
||||
];
|
||||
|
||||
$pdf = PDF::loadView('pdf.credit', $data);
|
||||
$pdf->setPaper('A4', 'portrait');
|
||||
|
||||
$dir = Invoice::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);
|
||||
|
||||
$pdf->save($path.$dir.$filename);
|
||||
|
||||
$pdfMerger = new MyPDFMerger();
|
||||
$pdfMerger->addPDF($path.$dir.$filename);
|
||||
$file = $pdfMerger->myMerge('string', $filename, 'template_invoice_de');
|
||||
Storage::disk('public')->put($dir.$filename, $file);
|
||||
|
||||
|
||||
$credit_file = [
|
||||
'filename' => $filename,
|
||||
'dir' => $dir,
|
||||
'disk' => 'public',
|
||||
'invoice_number' => $credit_number,
|
||||
'credit_date' => $credit_date,
|
||||
];
|
||||
UserCredit::create([
|
||||
'auth_user_id' => $this->model->id,
|
||||
'net' => $user_credits->net,
|
||||
'tax_rate' => $user_credits->tax_rate,
|
||||
'tax' => $user_credits->tax,
|
||||
'total' => $user_credits->total,
|
||||
'date' => $credit_date,
|
||||
'credit' => $credit_file,
|
||||
'user_margins' => $user_credits->margins,
|
||||
]);
|
||||
|
||||
|
||||
if($credit_send_mail){
|
||||
//Invoice::sendInvoiceMail($this->model);
|
||||
}
|
||||
//Invoice::makeNextInvoiceNumber();
|
||||
return true;
|
||||
//return $pdf->stream('invoice.pdf');
|
||||
//return $this->output($path.$dir, $filename);
|
||||
}
|
||||
|
||||
private function makeUserCredit(){
|
||||
|
||||
$ret = new \stdClass();
|
||||
$ret->net = 0;
|
||||
$UserMarigns = UserMarign::getOrderFromPartnerCommissionByID($this->model->id);
|
||||
foreach($UserMarigns as $UserMarign){
|
||||
$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");
|
||||
$ret->margins[] = $margin;
|
||||
$ret->net += $UserMarign->net_partner_commission;
|
||||
}
|
||||
/* taxable_sales //user tax
|
||||
1 //umsatzsteuerpflichtig
|
||||
2 // nicht umsatzsteuerpflichtig
|
||||
*/
|
||||
if($this->model->account){
|
||||
$ret->taxable = $this->model->account->taxable_sales == 2 ? false : false;
|
||||
if($ret->taxable){
|
||||
$ret->tax_rate = config('app.main_tax_number');
|
||||
$ret->total = round($ret->net * config('app.main_tax'), 2);
|
||||
$ret->tax = $ret->total - $ret->net;
|
||||
|
||||
}else{
|
||||
$ret->tax_rate = 0;
|
||||
$ret->total = $ret->net;
|
||||
$ret->tax = 0;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return $ret;
|
||||
}
|
||||
}
|
||||
|
|
@ -5,6 +5,7 @@ use App\Mail\MailInvoice;
|
|||
use App\Services\Util;
|
||||
use App\Models\Setting;
|
||||
use App\Models\ShoppingOrder;
|
||||
use App\Models\UserCredit;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
|
||||
class Invoice
|
||||
|
|
@ -30,27 +31,44 @@ class Invoice
|
|||
return "/invoice/".\Carbon::parse($invoice_date)->format('Y/m/');
|
||||
}
|
||||
|
||||
public static function makeInvoiceFilename($invoice_number){
|
||||
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]);
|
||||
}
|
||||
|
||||
public static function getDownloadPath(ShoppingOrder $shopping_order, $full = false){
|
||||
$dir = self::getDir($shopping_order);
|
||||
$filename = self::getFilename($shopping_order);
|
||||
|
|
@ -60,6 +78,15 @@ 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;
|
||||
|
|
|
|||
|
|
@ -9,8 +9,6 @@ use Carbon;
|
|||
class UserMarign
|
||||
{
|
||||
|
||||
|
||||
|
||||
public static function getMontlyPrice(User $user, $date = null, $format = false){
|
||||
|
||||
$now = $date ? Carbon::parse($date) : Carbon::now();
|
||||
|
|
@ -64,12 +62,13 @@ class UserMarign
|
|||
}
|
||||
|
||||
|
||||
|
||||
public static function getMontlyPartnerCommission(User $user, $date = null, $format = false){
|
||||
|
||||
$now = $date ? Carbon::parse($date) : Carbon::now();
|
||||
$startDay = $now->startOfMonth()->toDateString();
|
||||
$endDay = $now->endOfMonth()->toDateString();
|
||||
//$now = $date ? Carbon::parse($date) : Carbon::now();
|
||||
$start = Carbon::parse('01.01.2021');
|
||||
$end = Carbon::now();
|
||||
$startDay = $start->startOfMonth()->toDateString();
|
||||
$endDay = $end->endOfMonth()->toDateString();
|
||||
|
||||
$sum_net_amount = ShoppingOrderMargin::whereMSponsorId($user->id)
|
||||
->whereBetween('from', [$startDay, $endDay])
|
||||
|
|
@ -82,6 +81,104 @@ class UserMarign
|
|||
|
||||
return $sum_net_amount;
|
||||
}
|
||||
//monthy amount, sum
|
||||
|
||||
|
||||
public static function getMontlyPartnerCommissionOpen(User $user, $date = null, $format = false){
|
||||
|
||||
//$now = $date ? Carbon::parse($date) : Carbon::now();
|
||||
$start = Carbon::parse('01.01.2021');
|
||||
$end = Carbon::now();
|
||||
$startDay = $start->startOfMonth()->toDateString();
|
||||
$endDay = $end->endOfMonth()->toDateString();
|
||||
|
||||
$sum_net_amount = ShoppingOrderMargin::whereMSponsorId($user->id)
|
||||
->whereBetween('from', [$startDay, $endDay])
|
||||
->wherePaid(true)
|
||||
->whereCancellation(false)
|
||||
->wherePartnerCommissionPaid(false)
|
||||
->where('partner_commission_pending_to', '<', Carbon::now())
|
||||
->sum('net_partner_commission');
|
||||
if($format){
|
||||
$sum_net_amount = Util::formatNumber($sum_net_amount);
|
||||
}
|
||||
|
||||
return $sum_net_amount;
|
||||
}
|
||||
|
||||
public static function getMontlyPartnerCommissionOpenByID($user_id, $date = null, $format = false){
|
||||
|
||||
$sum_net_amount = ShoppingOrderMargin::whereMSponsorId($user_id)
|
||||
->wherePaid(true)
|
||||
->whereCancellation(false)
|
||||
->wherePartnerCommissionPaid(false)
|
||||
->where('partner_commission_pending_to', '<', Carbon::now())
|
||||
->sum('net_partner_commission');
|
||||
if($format){
|
||||
$sum_net_amount = Util::formatNumber($sum_net_amount);
|
||||
}
|
||||
|
||||
return $sum_net_amount;
|
||||
}
|
||||
|
||||
public static function getMontlyPartnerCommissionPending(User $user, $date = null, $format = false){
|
||||
|
||||
//$now = $date ? Carbon::parse($date) : Carbon::now();
|
||||
$start = Carbon::parse('01.01.2021');
|
||||
$end = Carbon::now();
|
||||
$startDay = $start->startOfMonth()->toDateString();
|
||||
$endDay = $end->endOfMonth()->toDateString();
|
||||
|
||||
$sum_net_amount = ShoppingOrderMargin::whereMSponsorId($user->id)
|
||||
->whereBetween('from', [$startDay, $endDay])
|
||||
->wherePaid(true)
|
||||
->whereCancellation(false)
|
||||
->wherePartnerCommissionPaid(false)
|
||||
->where('partner_commission_pending_to', '>=', Carbon::now())
|
||||
->sum('net_partner_commission');
|
||||
if($format){
|
||||
$sum_net_amount = Util::formatNumber($sum_net_amount);
|
||||
}
|
||||
|
||||
return $sum_net_amount;
|
||||
}
|
||||
|
||||
public static function getMontlyPartnerCommissionPendingByID($user_id, $date = null, $format = false){
|
||||
|
||||
$sum_net_amount = ShoppingOrderMargin::whereMSponsorId($user_id)
|
||||
->wherePaid(true)
|
||||
->whereCancellation(false)
|
||||
->wherePartnerCommissionPaid(false)
|
||||
->where('partner_commission_pending_to', '>=', Carbon::now())
|
||||
->sum('net_partner_commission');
|
||||
if($format){
|
||||
$sum_net_amount = Util::formatNumber($sum_net_amount);
|
||||
}
|
||||
|
||||
return $sum_net_amount;
|
||||
}
|
||||
|
||||
|
||||
public static function getOrderFromPartnerCommissionByID($user_id){
|
||||
|
||||
$ShoppingOrderMargins = ShoppingOrderMargin::whereMSponsorId($user_id)
|
||||
->wherePaid(true)
|
||||
->whereCancellation(false)
|
||||
->wherePartnerCommissionPaid(false)
|
||||
->where('partner_commission_pending_to', '<', Carbon::now())
|
||||
->get();
|
||||
|
||||
return $ShoppingOrderMargins;
|
||||
}
|
||||
|
||||
public static function getOrderFromPartnerCommissionPendingByID($user_id){
|
||||
|
||||
$ShoppingOrderMargins = ShoppingOrderMargin::whereMSponsorId($user_id)
|
||||
->wherePaid(true)
|
||||
->whereCancellation(false)
|
||||
->wherePartnerCommissionPaid(false)
|
||||
->where('partner_commission_pending_to', '>=', Carbon::now())
|
||||
->get();
|
||||
|
||||
return $ShoppingOrderMargins;
|
||||
}
|
||||
}
|
||||
|
|
@ -168,6 +168,7 @@ class Yard extends Cart
|
|||
$yard_commission = new Commission();
|
||||
$yard_commission = $content->reduce(function ($yard_commission, CartItem $cartItem) {
|
||||
$price_net = $cartItem->price / ((100 + $cartItem->taxRate) / 100);
|
||||
//nicht vom Staffelrabatt -> extra Rabatt / Provision
|
||||
if($cartItem->options->single_commission){
|
||||
$value_commission = $price_net / 100 * $cartItem->options->value_commission;
|
||||
$partner_commission = $price_net / 100 * $cartItem->options->partner_commission;
|
||||
|
|
@ -175,7 +176,7 @@ class Yard extends Cart
|
|||
$price_net_commission = ($cartItem->qty * $price_net) - ($cartItem->qty * $value_commission);
|
||||
$yard_commission->single_price_net += ($cartItem->qty * $price_net);
|
||||
$yard_commission->single_value_commission += ($cartItem->qty * $value_commission);
|
||||
if($this->user->user_level->partner_provision){
|
||||
if($this->user->sponsorHasCommisson()){
|
||||
$yard_commission->single_partner_commission += ($cartItem->qty * $partner_commission);
|
||||
}
|
||||
$yard_commission->single_price_net_commission += $price_net_commission;
|
||||
|
|
@ -227,13 +228,17 @@ class Yard extends Cart
|
|||
}
|
||||
$last_limit = $user_level_margin->price_from;
|
||||
if($balance != 0){
|
||||
$commission = 0;
|
||||
if($this->user->sponsorHasCommisson()){
|
||||
$commission = $user_level_margin->commission;
|
||||
}
|
||||
$margin->add($user_level_margin->price_from, [
|
||||
'price_net' => $price_net,
|
||||
'range' => $range,
|
||||
'rest_amount' => $rest_amount,
|
||||
'balance' => $balance,
|
||||
'trading_margin'=> $user_level_margin->trading_margin,
|
||||
'commission'=> $user_level_margin->commission,
|
||||
'commission'=> $commission,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -148,6 +148,12 @@ class User extends Authenticatable
|
|||
return $this->belongsTo('App\User', 'm_sponsor');
|
||||
}
|
||||
|
||||
public function sponsorHasCommisson(){
|
||||
if($this->user_sponsor && $this->user_sponsor->user_level && $this->user_sponsor->user_level->partner_provision){
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public function files(){
|
||||
return $this->hasMany('App\Models\File', 'user_id', '');
|
||||
}
|
||||
|
|
|
|||
|
|
@ -60,6 +60,7 @@ return [
|
|||
'info_test_mail' => env('APP_INFO_TEST_MAIL', 'kevin.adametz@me.com'),
|
||||
|
||||
'main_tax' => env('APP_MAIN_TAX', 1.19),
|
||||
'main_tax_rate' => env('APP_MAIN_TAX_RATE', 19),
|
||||
|
||||
'asset_url' => env('ASSET_URL', null),
|
||||
|
||||
|
|
|
|||
|
|
@ -52,6 +52,8 @@ class CreateShoppingOrdersTable extends Migration
|
|||
|
||||
$table->string('txaction', 20)->nullable()->index();
|
||||
$table->unsignedTinyInteger('shipped')->default(0);
|
||||
$table->timestamp('shipped_at')->nullable();
|
||||
|
||||
$table->string('tracking', 255)->nullable();
|
||||
|
||||
$table->char('mode', 4)->nullable();
|
||||
|
|
|
|||
|
|
@ -32,6 +32,8 @@ class CreateShoppingOrderMarginsTable extends Migration
|
|||
$table->boolean('cancellation')->default(false);
|
||||
$table->unsignedTinyInteger('status')->index()->default(0);
|
||||
|
||||
$table->timestamp('partner_commission_pending_to')->nullable();
|
||||
$table->boolean('partner_commission_paid')->default(false);
|
||||
|
||||
$table->text('content')->nullable();
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,48 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateUserCreditsTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('user_credits', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->unsignedInteger('auth_user_id');
|
||||
$table->decimal('net', 13, 2)->nullable();
|
||||
$table->decimal('tax_rate', 8, 2)->nullable();
|
||||
$table->decimal('tax', 8, 2)->nullable();
|
||||
$table->decimal('total', 13, 2)->nullable();
|
||||
$table->date('date')->nullable();
|
||||
$table->text('credit')->nullable();
|
||||
$table->text('user_margins')->nullable();
|
||||
|
||||
$table->boolean('paid_out')->default(false);
|
||||
$table->boolean('cancellation')->default(false);
|
||||
$table->unsignedTinyInteger('status')->index()->default(0);
|
||||
|
||||
$table->timestamps();
|
||||
|
||||
$table->foreign('auth_user_id')
|
||||
->references('id')
|
||||
->on('users');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('user_credits');
|
||||
}
|
||||
}
|
||||
|
|
@ -39,5 +39,9 @@ return [
|
|||
'countries'=>'Länder',
|
||||
'logout'=>'Logout',
|
||||
'system_settings' => 'Systemeinstellungen',
|
||||
'new_register' => 'neu registrieren'
|
||||
'new_register' => 'neu registrieren',
|
||||
'payments' => 'Zahlungen',
|
||||
'credit' => 'Gutschriften',
|
||||
'invoice' => 'Rechnungen',
|
||||
'revenue' => 'Umsätze',
|
||||
];
|
||||
|
|
|
|||
|
|
@ -53,8 +53,10 @@
|
|||
<div class="form-group col-12">
|
||||
<label class="custom-control custom-checkbox m-2">
|
||||
{!! Form::checkbox('partner_provision', 1, $value->partner_provision, ['class'=>'custom-control-input']) !!}
|
||||
<span class="custom-control-label">Vertriebspartner Provision berechnen</span>
|
||||
<span class="custom-control-label">Bekommt Provision von seinen Vertriebspartner</span>
|
||||
</label>
|
||||
<em>Auch immer die Provision bei den Staffelpreisen eintragen!<br>Die Provision wird beim Käufer berechnet und nur ein Sponsor mit der Rolle wo diese Checkbox aktiv ist bekommt die Provison gutgeschrieben.</em>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
232
resources/views/admin/payment/credit/index.blade.php
Executable file
232
resources/views/admin/payment/credit/index.blade.php
Executable file
|
|
@ -0,0 +1,232 @@
|
|||
@extends('layouts.layout-2')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="card">
|
||||
<h6 class="card-header">
|
||||
Zahlungen / offene Gutschriften
|
||||
</h6>
|
||||
<div class="card-datatable table-responsive pt-0">
|
||||
<table class="datatables-style table table-striped table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{__('Vorname')}}</th>
|
||||
<th>{{__('Nachname') }}</th>
|
||||
<th>{{__('E-Mail') }}</th>
|
||||
<th>{{__('Betrag') }}</th>
|
||||
<th>{{__('Aus Bestellung')}}</th>
|
||||
<th>{{__('#')}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($ShoppingOrderMargins as $ShoppingOrderMargin)
|
||||
<tr>
|
||||
<td>{{ $ShoppingOrderMargin->first_name }}</td>
|
||||
<td>{{ $ShoppingOrderMargin->last_name }}</td>
|
||||
<td>{{ $ShoppingOrderMargin->email }}</td>
|
||||
<td>{!! \App\Services\UserMarign::getMontlyPartnerCommissionOpenByID($ShoppingOrderMargin->user_id, null, true) !!} €</td>
|
||||
<td>
|
||||
@foreach (\App\Services\UserMarign::getOrderFromPartnerCommissionByID($ShoppingOrderMargin->user_id) as $order)
|
||||
@if($order->shopping_order)
|
||||
<a href="{{ route('admin_sales_customers_detail', [$order->shopping_order->id]) }}">
|
||||
{{$order->shopping_order->shopping_user->billing_firstname }}
|
||||
{{$order->shopping_order->shopping_user->billing_lastname }}
|
||||
/ {{ $order->shopping_order->getLastShoppingPayment('reference') }}
|
||||
/ {{ $order->shopping_order->getFormattedTotalWithoutCredit()." €" }}
|
||||
/ {{ $order->shopping_order->created_at->format("d.m.Y") }}
|
||||
</a> <br>
|
||||
@endif
|
||||
@endforeach
|
||||
</td>
|
||||
<td>
|
||||
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-credit"
|
||||
data-userid="{{ $ShoppingOrderMargin->user_id }}"
|
||||
data-email="{{ $ShoppingOrderMargin->email }}"
|
||||
data-back="{{url()->current()}}"
|
||||
data-action="create_credit">
|
||||
<span class="far fa-file-invoice-dollar"></span> <strong>Gutschrift erstellen</strong>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="card mt-3">
|
||||
<h6 class="card-header">
|
||||
Zahlungen / offene Gutschriften pending
|
||||
</h6>
|
||||
<div class="card-datatable table-responsive pt-0">
|
||||
<table class="datatables-style table table-striped table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{__('Vorname')}}</th>
|
||||
<th>{{__('Nachname') }}</th>
|
||||
<th>{{__('E-Mail') }}</th>
|
||||
<th>{{__('Betrag') }}</th>
|
||||
<th>{{__('aus Bestellung')}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($ShoppingOrderMarginPendings as $ShoppingOrderMarginPending)
|
||||
<tr>
|
||||
<td>{{ $ShoppingOrderMarginPending->first_name }}</td>
|
||||
<td>{{ $ShoppingOrderMarginPending->last_name }}</td>
|
||||
<td>{{ $ShoppingOrderMarginPending->email }}</td>
|
||||
<td>{!! \App\Services\UserMarign::getMontlyPartnerCommissionPendingByID($ShoppingOrderMarginPending->user_id, null, true) !!} €</td>
|
||||
<td>
|
||||
@foreach (\App\Services\UserMarign::getOrderFromPartnerCommissionPendingByID($ShoppingOrderMarginPending->user_id) as $order)
|
||||
@if($order->shopping_order)
|
||||
<a href="{{ route('admin_sales_customers_detail', [$order->shopping_order->id]) }}">
|
||||
{{$order->shopping_order->shopping_user->billing_firstname }}
|
||||
{{$order->shopping_order->shopping_user->billing_lastname }}
|
||||
/ {{ $order->shopping_order->getLastShoppingPayment('reference') }}
|
||||
/ {{$order->shopping_order->getFormattedTotalWithoutCredit()." €" }}
|
||||
/ {{ $order->shopping_order->created_at->format("d.m.Y") }}
|
||||
|
||||
</a> <br>
|
||||
@endif
|
||||
@endforeach
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card mt-3">
|
||||
<h6 class="card-header">
|
||||
Zahlungen / erstellte Gutschriften
|
||||
</h6>
|
||||
<div class="col-sm-6 mb-0 mt-2">
|
||||
{!! Form::open(['url' => route('admin_payments_credit'), 'class' => 'form-horizontal', 'id'=>'form_filter_sales_year']) !!}
|
||||
|
||||
<label class="form-label" for="filter_sales_year">Filter Jahr</label>
|
||||
<select class="custom-select" name="filter_sales_year" id="filter_sales_year">
|
||||
@foreach($years as $year)
|
||||
<option value="{{$year}}" @if($active_year == $year) selected @endif>{{$year}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
{!! Form::close() !!}
|
||||
|
||||
</div>
|
||||
|
||||
<div class="card-datatable table-responsive pt-0">
|
||||
<table class="datatables-style table table-striped table-bordered" id="datatable-credit">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>{{__('Vorname')}}</th>
|
||||
<th>{{__('Nachname') }}</th>
|
||||
<th>{{__('E-Mail') }}</th>
|
||||
<th>{{__('Betrag') }}</th>
|
||||
<th>{{__('Datum') }}</th>
|
||||
<th>{{__('aus Bestellung')}}</th>
|
||||
<th>{{__('Status')}}</th>
|
||||
<th>{{__('Gutschrift')}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
$( document ).ready(function() {
|
||||
var oTable = $('#datatable-credit').DataTable({
|
||||
"processing": true,
|
||||
"serverSide": true,
|
||||
ajax: {
|
||||
url: '{!! route( 'admin_payments_credit_datatable') !!}',
|
||||
data: function(d) {
|
||||
d.filter_sales_year = $('select[name=filter_sales_year]').val();
|
||||
}
|
||||
},
|
||||
"order": [[0, "desc" ]],
|
||||
"columns": [
|
||||
{ data: 'id', searchable: false },
|
||||
{ data: 'user.account.first_name', name: 'user.account.first_name', orderable: false },
|
||||
{ data: 'user.account.last_name', name: 'user.account.last_name', orderable: false },
|
||||
{ data: 'user.email', name: 'user.email', orderable: false },
|
||||
{ data: 'total', name: 'total' },
|
||||
{ data: 'date', name: 'date' },
|
||||
{ data: 'user_margins', name: 'user_margins', orderable: false },
|
||||
{ data: 'status', name: 'status', searchable: false },
|
||||
{ data: 'credit', name: 'credit', orderable: false, searchable: false },
|
||||
],
|
||||
"bLengthChange": false,
|
||||
"iDisplayLength": 100,
|
||||
"language": {
|
||||
"url": "/js/German.json"
|
||||
}
|
||||
});
|
||||
$('#filter_sales_year').on('change', function(){
|
||||
oTable.draw();
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
/*$('#filter_sales_year').on('change', function(){
|
||||
$('#form_filter_sales_year').submit();
|
||||
});*/
|
||||
|
||||
|
||||
$( document ).ready(function() {
|
||||
$('#modals-credit').on('show.bs.modal', function (event) {
|
||||
var button = $(event.relatedTarget);
|
||||
$(this).find(".modal-content input[name='userid']").val(button.data('userid'));
|
||||
$(this).find(".modal-body #set_credit_send_mail").html(button.data('email'));
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
<div class="modal fade" id="modals-credit">
|
||||
<div class="modal-dialog">
|
||||
<form class="modal-content" action="{{ route('admin_payments_credit_create') }}" method="post">
|
||||
@csrf
|
||||
<input type="hidden" name="userid" value="">
|
||||
<input type="hidden" name="action" value="create_credit">
|
||||
<input type="hidden" name="back" value="{{url()->current()}}">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">{{__('Gutschrift')}}</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="form-group col-sm-12">
|
||||
{{ Form::select('credit_option', ['create'=>'Gutschrift erstellen'], false, array('data-live-search'=>'false', 'class'=>'selectpicker')) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-12">
|
||||
<label class="form-label" for="credit_date">{{ __('Gutschriftsdatum') }}</label>
|
||||
{!! Form::text('credit_date', \Carbon::now()->format("d.m.Y"), ['class'=>'form-control datepicker-base']) !!}
|
||||
</div>
|
||||
<div class="form-group col-sm-12">
|
||||
<label class="form-label" for="credit_number">{{ __('Gutschriftsnummer') }}</label>
|
||||
{!! Form::text('credit_number', App\Services\Invoice::getInvoiceNumber(), ['class'=>'form-control']) !!}
|
||||
<em> nächste Rechnungsnummer <a href="{{ route('admin_settings') }}"><i class="fa fa-edit"></i></a></em>
|
||||
</div>
|
||||
<div class="form-group col-sm-12">
|
||||
<label class="custom-control custom-checkbox">
|
||||
{!! Form::checkbox('credit_send_mail', 1, true, ['class'=>'custom-control-input']) !!}
|
||||
<span class="custom-control-label">Rechnung an <span id="set_credit_send_mail">123</span></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">{{__('close')}}</button>
|
||||
<button type="submit" class="btn btn-primary">{{__('save')}}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
86
resources/views/admin/payment/invoice/index.blade.php
Executable file
86
resources/views/admin/payment/invoice/index.blade.php
Executable file
|
|
@ -0,0 +1,86 @@
|
|||
@extends('layouts.layout-2')
|
||||
|
||||
@section('content')
|
||||
<div class="card">
|
||||
<h6 class="card-header">
|
||||
Zahlungen / Rechnungen
|
||||
</h6>
|
||||
<div class="col-sm-6 mb-0 mt-2">
|
||||
{!! Form::open(['url' => route('admin_payments_invoice'), 'class' => 'form-horizontal', 'id'=>'form_filter_sales_year']) !!}
|
||||
|
||||
<label class="form-label" for="filter_sales_year">Filter Jahr</label>
|
||||
<select class="custom-select" name="filter_sales_year" id="filter_sales_year">
|
||||
@foreach($years as $year)
|
||||
<option value="{{$year}}" @if($active_year == $year) selected @endif>{{$year}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
{!! Form::close() !!}
|
||||
|
||||
</div>
|
||||
|
||||
<div class="card-datatable table-responsive pt-0">
|
||||
<table class="datatables-style table table-striped table-bordered" id="datatable-invoice">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>{{__('Vorname')}}</th>
|
||||
<th>{{__('Nachname') }}</th>
|
||||
<th>{{__('E-Mail') }}</th>
|
||||
<th>{{__('Betrag') }}</th>
|
||||
<th>{{__('Datum') }}</th>
|
||||
<th>{{__('Order')}}</th>
|
||||
<th>{{__('Status')}}</th>
|
||||
<th>{{__('Rechnung')}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
$( document ).ready(function() {
|
||||
var oTable = $('#datatable-invoice').DataTable({
|
||||
"processing": true,
|
||||
"serverSide": true,
|
||||
ajax: {
|
||||
url: '{!! route( 'admin_payments_invoice_datatable') !!}',
|
||||
data: function(d) {
|
||||
d.filter_sales_year = $('select[name=filter_sales_year]').val();
|
||||
}
|
||||
},
|
||||
"order": [[0, "desc" ]],
|
||||
"columns": [
|
||||
{ data: 'id', searchable: false },
|
||||
{ data: 'shopping_user.billing_firstname', name: 'shopping_user.billing_firstname', orderable: false },
|
||||
{ data: 'shopping_user.billing_lastname', name: 'shopping_user.billing_lastname', orderable: false },
|
||||
{ data: 'shopping_user.billing_email', name: 'shopping_user.billing_email', orderable: false },
|
||||
{ data: 'total_shipping', name: 'total_shipping' },
|
||||
{ data: 'created_at', name: 'shopping_orders.created_at' },
|
||||
{ data: 'shipping_order', name: 'shipping_order', orderable: false },
|
||||
{ data: 'txaction', name: 'txaction', searchable: false },
|
||||
{ data: 'invoice', name: 'invoice', orderable: false, searchable: false },
|
||||
],
|
||||
"bLengthChange": false,
|
||||
"iDisplayLength": 100,
|
||||
"language": {
|
||||
"url": "/js/German.json"
|
||||
}
|
||||
});
|
||||
$('#filter_sales_year').on('change', function(){
|
||||
oTable.draw();
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
/*$('#filter_sales_year').on('change', function(){
|
||||
$('#form_filter_sales_year').submit();
|
||||
});*/
|
||||
|
||||
|
||||
</script>
|
||||
@endsection
|
||||
|
|
@ -50,6 +50,20 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card mb-2">
|
||||
<div class="card-body">
|
||||
<h4>Bestellungen Einstellungen</h4>
|
||||
<div class="form-row">
|
||||
<div class="form-group col-sm-12">
|
||||
<label class="form-label">{{ __('Pending in Tagen nach Versand für die Partner Provision') }}*</label>
|
||||
{{ Form::text('settings[pending_partner_commissions_in_days][val]', \App\Models\Setting::getContentBySlug('pending_partner_commissions_in_days'), array('class'=>'form-control')) }}
|
||||
{{ Form::hidden('settings[pending_partner_commissions_in_days][type]', 'int') }}
|
||||
</div>
|
||||
</div>
|
||||
<button type="submit" name="action" value="save_prepayment" class="btn btn-primary btn-sm mb-2"><i class="ion ion-ios-save"></i> speichern</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{!! Form::close() !!}
|
||||
|
||||
@endsection
|
||||
|
|
|
|||
|
|
@ -160,7 +160,7 @@
|
|||
@endif
|
||||
</p>
|
||||
<hr>
|
||||
<h6>{{__('Umsätze')}} {{date('m.Y')}}</h6>
|
||||
<h6>{{__('Umsätze')}} {{ date('m.Y') }}</h6>
|
||||
<table class="table table-striped table-bordered">
|
||||
<tr>
|
||||
<td class="text-left font-weight-semibold">{{__('Umsatz gesamt')}}:</td>
|
||||
|
|
@ -182,12 +182,18 @@
|
|||
</tr>
|
||||
</table>
|
||||
<hr>
|
||||
<h6>{{__('Provision')}} {{date('m.Y')}}</h6>
|
||||
<h6>{{__('Provision')}} {{-- date('m.Y') --}}</h6>
|
||||
<table class="table table-striped table-bordered">
|
||||
<tr>
|
||||
<td class="text-left font-weight-semibold">{{__('Vertriebspartner Provision')}}:</td>
|
||||
<td class="text-left font-weight-semibold">{{__('Vertriebspartner Provision')}} pending:</td>
|
||||
<td class="text-right font-weight-bold">
|
||||
{!! \App\Services\UserMarign::getMontlyPartnerCommission($user, null, true) !!} €*
|
||||
{!! \App\Services\UserMarign::getMontlyPartnerCommissionPending($user, null, true) !!} €*
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="text-left font-weight-semibold">{{__('Vertriebspartner Provision')}} bestätigt:</td>
|
||||
<td class="text-right font-weight-bold">
|
||||
{!! \App\Services\UserMarign::getMontlyPartnerCommissionOpen($user, null, true) !!} €*
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@
|
|||
</li>
|
||||
|
||||
@if(Auth::user()->showSideNav())
|
||||
|
||||
<li class="sidenav-item @if(Request::is('user/edit', 'user/membership')) open @endif">
|
||||
<a href="javascript:void(0)" class="sidenav-link sidenav-toggle">
|
||||
<i class="sidenav-icon ion ion-ios-contact"></i>
|
||||
|
|
@ -28,6 +27,10 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
{{-- <li class="sidenav-item Request::is('user/revenue') ? ' active' : '' }} {{ Request::is('user/revenues/*') ? ' active' : '' }}">
|
||||
<a href="{{ route('user_revenue') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-cash"></i><div>{{ __('navigation.revenue') }}</div></a>
|
||||
</li>--}}
|
||||
|
||||
@if(Auth::user()->isActiveAccount())
|
||||
<li class="sidenav-item @if(Request::is('user/team/*')) open @endif">
|
||||
<a href="javascript:void(0)" class="sidenav-link sidenav-toggle">
|
||||
|
|
@ -101,6 +104,22 @@
|
|||
</ul>
|
||||
</li>
|
||||
|
||||
|
||||
<li class="sidenav-item @if(Request::is('admin/payments/*')) open @endif">
|
||||
<a href="javascript:void(0)" class="sidenav-link sidenav-toggle">
|
||||
<i class="sidenav-icon ion ion-md-cash"></i>
|
||||
<div>{{ __('navigation.payments') }}</div>
|
||||
</a>
|
||||
<ul class="sidenav-menu">
|
||||
<li class="sidenav-item{{ Request::is('admin/payments/credit') ? ' active' : '' }}">
|
||||
<a href="{{ route('admin_payments_credit') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-arrow-dropright-circle"></i><div>{{ __('navigation.credit') }}</div></a>
|
||||
</li>
|
||||
<li class="sidenav-item{{ Request::is('admin/payments/invoice') ? ' active' : '' }}">
|
||||
<a href="{{ route('admin_payments_invoice') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-arrow-dropleft-circle"></i><div>{{ __('navigation.invoice') }}</div></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li class="sidenav-item @if(Request::is('admin/product/*')) open @endif">
|
||||
<a href="javascript:void(0)" class="sidenav-link sidenav-toggle">
|
||||
<i class="sidenav-icon ion ion-md-cube"></i>
|
||||
|
|
|
|||
400
resources/views/pdf/credit.blade.php
Normal file
400
resources/views/pdf/credit.blade.php
Normal file
|
|
@ -0,0 +1,400 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<title>partner.gruene-seele.bio</title>
|
||||
<style>
|
||||
|
||||
/* roboto-300 - latin */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
src: url('fonts/roboto-v20-latin-300.ttf') format('truetype'), /* Safari, Android, iOS */
|
||||
}
|
||||
/* roboto-regular - latin */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: url('fonts/roboto-v20-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */
|
||||
}
|
||||
/* roboto-500 - latin */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
src: url('fonts/roboto-v20-latin-500.ttf') format('truetype'), /* Safari, Android, iOS */
|
||||
}
|
||||
/* roboto-700 - latin */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: url('fonts/roboto-v20-latin-700.ttf') format('truetype'), /* Safari, Android, iOS */
|
||||
}
|
||||
html {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
margin: 0 auto;
|
||||
padding: 0;
|
||||
color: #000;
|
||||
background: #fff;
|
||||
font-family: 'Roboto', sans-serif;
|
||||
font-size: 8pt;
|
||||
font-weight: 400 ;
|
||||
}
|
||||
table {
|
||||
border: none;
|
||||
}
|
||||
|
||||
strong {
|
||||
font-weight: bold !important;
|
||||
}
|
||||
|
||||
@page {
|
||||
margin: 0px;
|
||||
}
|
||||
@page {
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
|
||||
@page {
|
||||
margin: 75mm 0 40mm 0;
|
||||
}
|
||||
|
||||
.font-weight-bold {
|
||||
font-weight: bold !important;
|
||||
}
|
||||
|
||||
#address_box {
|
||||
position: absolute;
|
||||
top:-30mm;
|
||||
left: 15mm;
|
||||
width: 100mm;
|
||||
height: 45mm;
|
||||
z-index: 1;
|
||||
font-size: 8pt;
|
||||
line-height: 9pt;
|
||||
letter-spacing: 0.05em;
|
||||
}
|
||||
#address_box_top {
|
||||
font-size: 7pt;
|
||||
color:#858585;
|
||||
}
|
||||
|
||||
#title_box {
|
||||
position: absolute;
|
||||
top:0mm;
|
||||
left: 15mm;
|
||||
width: 180mm;
|
||||
height: 10mm;
|
||||
z-index: 2;
|
||||
text-align: center;
|
||||
}
|
||||
#title_box .title {
|
||||
font-size: 15pt;
|
||||
line-height: 12pt;
|
||||
}
|
||||
#title_box .subtitle {
|
||||
font-size: 9pt;
|
||||
line-height: 9pt;
|
||||
}
|
||||
|
||||
#detail_box_left {
|
||||
position: absolute;
|
||||
top:8mm;
|
||||
left: 15mm;
|
||||
width: 90mm;
|
||||
height: 15mm;
|
||||
z-index: 3;
|
||||
font-size: 8pt;
|
||||
}
|
||||
|
||||
#detail_box_right {
|
||||
position: absolute;
|
||||
top:8mm;
|
||||
left: 105mm;
|
||||
width: 90mm;
|
||||
height: 15mm;
|
||||
z-index: 4;
|
||||
font-size: 8pt;
|
||||
}
|
||||
|
||||
#detail_box_left table, #detail_box_right table {
|
||||
width: 100%;
|
||||
line-height: 9pt;
|
||||
}
|
||||
|
||||
#detail_box_left table td {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#detail_box_right table td {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
|
||||
#invoice_box {
|
||||
position: relative;
|
||||
padding-top: 20mm;
|
||||
margin-left: 15mm;
|
||||
width: 180mm;
|
||||
font-size: 8pt;
|
||||
line-height: 8pt;
|
||||
}
|
||||
|
||||
#invoice_box table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
|
||||
#invoice_box table tr {
|
||||
page-break-after: avoid;
|
||||
}
|
||||
|
||||
#invoice_box table tr td {
|
||||
vertical-align: top;
|
||||
padding-top: 2mm;
|
||||
padding-bottom: 2mm;
|
||||
padding-left: 1.5mm;
|
||||
padding-right: 1.5mm;
|
||||
border-top: 0.5pt dotted #1a1a18;
|
||||
}
|
||||
|
||||
#invoice_box table tfoot tr td {
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
#invoice_box table tfoot tr.fullline td {
|
||||
border-top: 0.3pt solid #575755;
|
||||
}
|
||||
|
||||
#invoice_box table tfoot tr.fullline td.no-border {
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
#invoice_box table tfoot tr td {
|
||||
padding-top: 1.2mm;
|
||||
padding-bottom: 1.2mm;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
#invoice_box table td.small {
|
||||
width: 1%;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
#invoice_box table tr th {
|
||||
line-height: 12pt;
|
||||
padding-bottom: 1mm;
|
||||
padding-left: 1mm;
|
||||
padding-right: 1mm;
|
||||
background-color: rgb(212, 212, 212);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
#invoice_box table td .title {
|
||||
font-size: 10pt;
|
||||
}
|
||||
#invoice_box table td .description {
|
||||
padding-top: 1mm;
|
||||
font-size: 9pt;
|
||||
|
||||
}
|
||||
|
||||
#invoice_box table td .price_net {
|
||||
padding-top: 1mm;
|
||||
font-size: 10pt;
|
||||
padding-bottom: 1mm;
|
||||
}
|
||||
|
||||
#invoice_box table td .price_tax {
|
||||
padding-top: 0.7mm;
|
||||
padding-bottom: 0.7mm;
|
||||
}
|
||||
|
||||
#invoice_box table td .price_total {
|
||||
padding-top: 2mm;
|
||||
font-size: 11pt;
|
||||
}
|
||||
.singel-line-top {
|
||||
border-top: 1pt solid #1a1a18;
|
||||
}
|
||||
.double-line {
|
||||
border-bottom: 2.5pt double #1a1a18;
|
||||
}
|
||||
.dotted-line {
|
||||
border-bottom: 0.8pt dotted #1a1a18;
|
||||
}
|
||||
|
||||
#footer_box {
|
||||
position: relative;
|
||||
top:0mm;
|
||||
left: 15mm;
|
||||
width: 180mm;
|
||||
height: 20mm;
|
||||
z-index: 6;
|
||||
font-size: 8pt;
|
||||
line-height: 8pt;
|
||||
}
|
||||
|
||||
.text-right {
|
||||
text-align: right;
|
||||
}
|
||||
.text-left {
|
||||
text-align: left;
|
||||
}
|
||||
.text-center {
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="address_box">
|
||||
<div id="address_box_top">GRÜNE SEELE GbR • Hauptstr. 174 • 51143 Köln</div>
|
||||
@if($user->account)
|
||||
@if($user->account->company)
|
||||
{{ $user->account->company }}<br>
|
||||
@else
|
||||
Firma <br>
|
||||
@endif
|
||||
{{ \App\Services\HTMLHelper::getSalutationLang($user->account->salutation) }}
|
||||
{{ $user->account->first_name }} {{ $user->account->last_name }}<br>
|
||||
{{ $user->account->address }}<br>
|
||||
@if($user->account->address_2)
|
||||
{{ $user->account->address_2 }}<br>
|
||||
@endif
|
||||
{{ $user->account->zipcode}} {{ $user->account->city }}<br>
|
||||
@if($user->account->country)
|
||||
{{ $user->account->country->getLocated() }}
|
||||
@endif
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div id="title_box">
|
||||
<div class="title">GUTSCHRIFT</div>
|
||||
{{-- @if($cancellation)
|
||||
<div class="subtitle">{{ $invoice->invoice_name }}</div>
|
||||
@endif--}}
|
||||
</div>
|
||||
|
||||
<div id="detail_box_left">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
{{ __('Gutschriftsnummer') }}: {{ $credit_number }}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div id="detail_box_right">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
{{ __('Datum') }}/{{ __('Leistungsdatum)') }}: {{ $credit_date }}
|
||||
</td>
|
||||
</tr>
|
||||
@if($user->account->tax_number)
|
||||
<tr>
|
||||
<td>
|
||||
{{ __('St.-Nr') }}: {{ $user->account->tax_number}}
|
||||
</td>
|
||||
</tr>
|
||||
@else
|
||||
@if($user->account->tax_identification_number)
|
||||
<tr>
|
||||
<td>
|
||||
{{ __('USt-IdNr.') }}: {{ $user->account->tax_identification_number}}
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
@endif
|
||||
</table>
|
||||
</div>
|
||||
<div id="invoice_box">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="text-left" style="width: 75%">Gutschrift aus</th>
|
||||
<th class="text-right" style="width: 25%">Betrag</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach($user_credits->margins as $margin)
|
||||
<tr class="item">
|
||||
<td class="small text-left">
|
||||
{{ $margin->firstname }} {{ $margin->lastname }} / {{ $margin->reference }} / {{ $margin->created_at }}
|
||||
</td>
|
||||
<td class="text-right small">
|
||||
{{ \App\Services\Util::formatNumber($margin->net) }} €*
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr class="fullline">
|
||||
<td class="text-right">
|
||||
Zwischensumme
|
||||
</td>
|
||||
<td class="text-right">
|
||||
{{ \App\Services\Util::formatNumber($user_credits->net) }} €*
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@if ($user_credits->taxable)
|
||||
<tr class="">
|
||||
<td class="text-right">
|
||||
Mehrwertsteuer: {{ $user_credits->tax_rate }} % <br>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
{{ \App\Services\Util::formatNumber($user_credits->tax) }} €
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@else
|
||||
<tr class="">
|
||||
<td class="text-right">
|
||||
Mehrwertsteuer: {{ $user_credits->tax_rate }} % <br>
|
||||
Gutschriftsempfänger ist Kleinunternehmer nach § 19 (1) UStG.
|
||||
|
||||
</td>
|
||||
<td class="text-right">
|
||||
{{ \App\Services\Util::formatNumber($user_credits->tax) }} €
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
|
||||
<tr class="fullline">
|
||||
<td class="text-right">
|
||||
<b>Auszahlungsbetrag (Brutto):</b>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<b> {{ \App\Services\Util::formatNumber($user_credits->total) }} €</b>
|
||||
<br>
|
||||
<span style="font-size: 0.9em"><em>* Nettobeträge</em></span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
<div id="footer_box">
|
||||
<div class="text">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -264,10 +264,12 @@
|
|||
</head>
|
||||
<body>
|
||||
<div id="address_box">
|
||||
<div id="address_box_top">GÜNE SEELE • Hauptstr. 174 • 51143 Köln</div>
|
||||
<div id="address_box_top">GRÜNE SEELE GbR • Hauptstr. 174 • 51143 Köln</div>
|
||||
|
||||
@if($shopping_order->shopping_user->billing_company)
|
||||
{{ $shopping_order->shopping_user->billing_company }}<br>
|
||||
@else
|
||||
Firma <br>
|
||||
@endif
|
||||
{{ \App\Services\HTMLHelper::getSalutationLang($shopping_order->shopping_user->billing_salutation) }}
|
||||
{{ $shopping_order->shopping_user->billing_firstname }} {{ $shopping_order->shopping_user->billing_lastname }}<br>
|
||||
|
|
@ -276,7 +278,9 @@
|
|||
{{ $shopping_order->shopping_user->billing_address_2 }}<br>
|
||||
@endif
|
||||
{{ $shopping_order->shopping_user->billing_zipcode }} {{ $shopping_order->shopping_user->billing_city }}<br>
|
||||
@if($shopping_order->shopping_user->billing_country)
|
||||
{{ $shopping_order->shopping_user->billing_country->getLocated() }}
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div id="title_box">
|
||||
|
|
|
|||
65
resources/views/user/revenue/index.blade.php
Normal file
65
resources/views/user/revenue/index.blade.php
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
@extends('layouts.layout-2')
|
||||
|
||||
@section('content')
|
||||
<div class="card">
|
||||
<h6 class="card-header">
|
||||
Berater Bestellungen
|
||||
</h6>
|
||||
<div class="col-sm-6 mb-2">
|
||||
{!! Form::open(['url' => route('user_revenue'), 'class' => 'form-horizontal', 'id'=>'filter_sales_member']) !!}
|
||||
|
||||
<label class="form-label" for="filter_user_shop_id">Filter Jahr</label>
|
||||
<select class="custom-select" name="filter_sales_year" id="filter_sales_year">
|
||||
@foreach($years as $year)
|
||||
<option value="{{$year}}" @if($active_year == $year) selected @endif>{{$year}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
{!! Form::close() !!}
|
||||
|
||||
</div>
|
||||
|
||||
<div class="card-datatable table-responsive">
|
||||
<table class="datatables-style table table-striped table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{__('Vorname')}}</th>
|
||||
<th>{{__('Nachname') }}</th>
|
||||
<th>{{__('E-Mail') }}</th>
|
||||
<th>{{__('Betrag') }}</th>
|
||||
<th>{{__('Datum') }}</th>
|
||||
<th>{{__('Order')}}</th>
|
||||
<th>{{__('Status')}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach($values as $value)
|
||||
<tr>
|
||||
<td>{{ $value->shopping_user->billing_firstname }}</td>
|
||||
<td>{{ $value->shopping_user->billing_lastname }}</td>
|
||||
<td>{{ $value->shopping_user->billing_email }}</td>
|
||||
<td>{{ $value->getFormattedTotalShipping()." €" }}</td>
|
||||
<td>{{ $value->created_at->format("d.m.Y") }}</td>
|
||||
<td>@foreach($value->shopping_order_items as $shopping_order_item)
|
||||
{{ $shopping_order_item->product->name }}<br>
|
||||
@endforeach
|
||||
|
||||
</td>
|
||||
|
||||
<td>{!! App\Services\Payment::getShoppingOrderBadge($value) !!}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
$('#filter_sales_year').on('change', function(){
|
||||
$('#filter_sales_member').submit();
|
||||
});
|
||||
|
||||
|
||||
</script>
|
||||
@endsection
|
||||
|
|
@ -131,9 +131,9 @@
|
|||
</div>
|
||||
<div class="form-group col-md-12">
|
||||
@if($errors->has('phone') || $errors->has('mobil'))
|
||||
<div class="alert badge-danger block p-2">Bitte {{ __('Phone') }} und/oder {{ __('Mobile Phone') }} angeben!*</div>
|
||||
<div class="alert badge-danger block p-2">Fehler: Bitte {{ __('Phone') }} und/oder {{ __('Mobile Phone') }} angeben!*</div>
|
||||
@else
|
||||
<div class="badge badge-warning">Bitte {{ __('Phone') }} und/oder {{ __('Mobile Phone') }} angeben!*</div>
|
||||
<div class="badge badge-default">Hinweis: Bitte {{ __('Phone') }} und/oder {{ __('Mobile Phone') }} angeben!*</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -344,9 +344,9 @@
|
|||
<div class="row">
|
||||
<div class="form-group col-md-12">
|
||||
@if($errors->has('tax_number') || $errors->has('tax_identification_number'))
|
||||
<div class="alert badge-danger block p-2">Bitte {{ __('Steuernummer') }} und/oder {{ __('USt-ID Nummer') }} angeben!*</div>
|
||||
<div class="alert badge-danger block p-2">Fehler: Bitte {{ __('Steuernummer') }} und/oder {{ __('USt-ID Nummer') }} angeben!*</div>
|
||||
@else
|
||||
<div class="badge badge-warning">Bitte {{ __('Steuernummer') }} und/oder {{ __('USt-ID Nummer') }} angeben!*</div>
|
||||
<div class="badge badge-default">Hinweis: Bitte {{ __('Steuernummer') }} und/oder {{ __('USt-ID Nummer') }} angeben!*</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -179,6 +179,10 @@ Route::group(['middleware' => ['auth:user']], function() {
|
|||
Route::get('/user/membership', 'MembershipController@index')->name('user_membership');
|
||||
Route::post('/user/membership/store/{action}', 'MembershipController@storePayment')->name('user_membership_store');
|
||||
|
||||
Route::get('/user/revenue', 'User\RevenueController@index')->name('user_revenue');
|
||||
Route::post('/user/revenue', 'User\RevenueController@index')->name('user_revenue');
|
||||
|
||||
|
||||
Route::get('/user/checkout/{identifier?}', 'User\CheckoutController@checkout')->name('user_checkout');
|
||||
Route::post('/user/checkout_store/{identifier?}', 'User\CheckoutController@store')->name('user_checkout_store');
|
||||
Route::get('/user/checkout_final/{payid}/{reference}/{identifier?}', 'User\CheckoutController@final')->name('user_checkout_final');
|
||||
|
|
@ -277,6 +281,21 @@ Route::group(['middleware' => ['admin']], function()
|
|||
|
||||
Route::post('/admin/sales/store', 'SalesController@store')->name('admin_sales_store');
|
||||
Route::post('/admin/sales/invoice', 'SalesController@invoice')->name('admin_sales_invoice');
|
||||
|
||||
//payments
|
||||
Route::get('/admin/payments/credit', 'PaymentCreditController@index')->name('admin_payments_credit');
|
||||
Route::post('/admin/payments/credit', 'PaymentCreditController@index')->name('admin_payments_credit');
|
||||
Route::get('/admin/payments/credit/datatable', 'PaymentCreditController@datatable')->name('admin_payments_credit_datatable');
|
||||
Route::post('/admin/payments/credit/create', 'PaymentCreditController@create')->name('admin_payments_credit_create');
|
||||
|
||||
|
||||
Route::get('/admin/payments/invoice', 'PaymentInvoiceController@index')->name('admin_payments_invoice');
|
||||
Route::post('/admin/payments/invoice', 'PaymentInvoiceController@index')->name('admin_payments_invoice');
|
||||
Route::get('/admin/payments/invoice/datatable', 'PaymentInvoiceController@datatable')->name('admin_payments_invoice_datatable');
|
||||
|
||||
|
||||
|
||||
|
||||
});
|
||||
|
||||
//login pages for superadmin
|
||||
|
|
|
|||
572
storage/fonts/Times-Bold.afm.php
Normal file
572
storage/fonts/Times-Bold.afm.php
Normal file
|
|
@ -0,0 +1,572 @@
|
|||
<?php return array (
|
||||
'codeToName' =>
|
||||
array (
|
||||
32 => 'space',
|
||||
160 => 'space',
|
||||
33 => 'exclam',
|
||||
34 => 'quotedbl',
|
||||
35 => 'numbersign',
|
||||
36 => 'dollar',
|
||||
37 => 'percent',
|
||||
38 => 'ampersand',
|
||||
146 => 'quoteright',
|
||||
40 => 'parenleft',
|
||||
41 => 'parenright',
|
||||
42 => 'asterisk',
|
||||
43 => 'plus',
|
||||
44 => 'comma',
|
||||
45 => 'hyphen',
|
||||
173 => 'hyphen',
|
||||
46 => 'period',
|
||||
47 => 'slash',
|
||||
48 => 'zero',
|
||||
49 => 'one',
|
||||
50 => 'two',
|
||||
51 => 'three',
|
||||
52 => 'four',
|
||||
53 => 'five',
|
||||
54 => 'six',
|
||||
55 => 'seven',
|
||||
56 => 'eight',
|
||||
57 => 'nine',
|
||||
58 => 'colon',
|
||||
59 => 'semicolon',
|
||||
60 => 'less',
|
||||
61 => 'equal',
|
||||
62 => 'greater',
|
||||
63 => 'question',
|
||||
64 => 'at',
|
||||
65 => 'A',
|
||||
66 => 'B',
|
||||
67 => 'C',
|
||||
68 => 'D',
|
||||
69 => 'E',
|
||||
70 => 'F',
|
||||
71 => 'G',
|
||||
72 => 'H',
|
||||
73 => 'I',
|
||||
74 => 'J',
|
||||
75 => 'K',
|
||||
76 => 'L',
|
||||
77 => 'M',
|
||||
78 => 'N',
|
||||
79 => 'O',
|
||||
80 => 'P',
|
||||
81 => 'Q',
|
||||
82 => 'R',
|
||||
83 => 'S',
|
||||
84 => 'T',
|
||||
85 => 'U',
|
||||
86 => 'V',
|
||||
87 => 'W',
|
||||
88 => 'X',
|
||||
89 => 'Y',
|
||||
90 => 'Z',
|
||||
91 => 'bracketleft',
|
||||
92 => 'backslash',
|
||||
93 => 'bracketright',
|
||||
94 => 'asciicircum',
|
||||
95 => 'underscore',
|
||||
145 => 'quoteleft',
|
||||
97 => 'a',
|
||||
98 => 'b',
|
||||
99 => 'c',
|
||||
100 => 'd',
|
||||
101 => 'e',
|
||||
102 => 'f',
|
||||
103 => 'g',
|
||||
104 => 'h',
|
||||
105 => 'i',
|
||||
106 => 'j',
|
||||
107 => 'k',
|
||||
108 => 'l',
|
||||
109 => 'm',
|
||||
110 => 'n',
|
||||
111 => 'o',
|
||||
112 => 'p',
|
||||
113 => 'q',
|
||||
114 => 'r',
|
||||
115 => 's',
|
||||
116 => 't',
|
||||
117 => 'u',
|
||||
118 => 'v',
|
||||
119 => 'w',
|
||||
120 => 'x',
|
||||
121 => 'y',
|
||||
122 => 'z',
|
||||
123 => 'braceleft',
|
||||
124 => 'bar',
|
||||
125 => 'braceright',
|
||||
126 => 'asciitilde',
|
||||
161 => 'exclamdown',
|
||||
162 => 'cent',
|
||||
163 => 'sterling',
|
||||
165 => 'yen',
|
||||
131 => 'florin',
|
||||
167 => 'section',
|
||||
164 => 'currency',
|
||||
39 => 'quotesingle',
|
||||
147 => 'quotedblleft',
|
||||
171 => 'guillemotleft',
|
||||
139 => 'guilsinglleft',
|
||||
155 => 'guilsinglright',
|
||||
150 => 'endash',
|
||||
134 => 'dagger',
|
||||
135 => 'daggerdbl',
|
||||
183 => 'periodcentered',
|
||||
182 => 'paragraph',
|
||||
149 => 'bullet',
|
||||
130 => 'quotesinglbase',
|
||||
132 => 'quotedblbase',
|
||||
148 => 'quotedblright',
|
||||
187 => 'guillemotright',
|
||||
133 => 'ellipsis',
|
||||
137 => 'perthousand',
|
||||
191 => 'questiondown',
|
||||
96 => 'grave',
|
||||
180 => 'acute',
|
||||
136 => 'circumflex',
|
||||
152 => 'tilde',
|
||||
175 => 'macron',
|
||||
168 => 'dieresis',
|
||||
184 => 'cedilla',
|
||||
151 => 'emdash',
|
||||
198 => 'AE',
|
||||
170 => 'ordfeminine',
|
||||
216 => 'Oslash',
|
||||
140 => 'OE',
|
||||
186 => 'ordmasculine',
|
||||
230 => 'ae',
|
||||
248 => 'oslash',
|
||||
156 => 'oe',
|
||||
223 => 'germandbls',
|
||||
207 => 'Idieresis',
|
||||
233 => 'eacute',
|
||||
159 => 'Ydieresis',
|
||||
247 => 'divide',
|
||||
221 => 'Yacute',
|
||||
194 => 'Acircumflex',
|
||||
225 => 'aacute',
|
||||
219 => 'Ucircumflex',
|
||||
253 => 'yacute',
|
||||
234 => 'ecircumflex',
|
||||
220 => 'Udieresis',
|
||||
218 => 'Uacute',
|
||||
203 => 'Edieresis',
|
||||
169 => 'copyright',
|
||||
229 => 'aring',
|
||||
224 => 'agrave',
|
||||
227 => 'atilde',
|
||||
154 => 'scaron',
|
||||
237 => 'iacute',
|
||||
251 => 'ucircumflex',
|
||||
226 => 'acircumflex',
|
||||
231 => 'ccedilla',
|
||||
222 => 'Thorn',
|
||||
179 => 'threesuperior',
|
||||
210 => 'Ograve',
|
||||
192 => 'Agrave',
|
||||
215 => 'multiply',
|
||||
250 => 'uacute',
|
||||
255 => 'ydieresis',
|
||||
238 => 'icircumflex',
|
||||
202 => 'Ecircumflex',
|
||||
228 => 'adieresis',
|
||||
235 => 'edieresis',
|
||||
205 => 'Iacute',
|
||||
177 => 'plusminus',
|
||||
166 => 'brokenbar',
|
||||
174 => 'registered',
|
||||
200 => 'Egrave',
|
||||
142 => 'Zcaron',
|
||||
208 => 'Eth',
|
||||
199 => 'Ccedilla',
|
||||
193 => 'Aacute',
|
||||
196 => 'Adieresis',
|
||||
232 => 'egrave',
|
||||
211 => 'Oacute',
|
||||
243 => 'oacute',
|
||||
239 => 'idieresis',
|
||||
212 => 'Ocircumflex',
|
||||
217 => 'Ugrave',
|
||||
254 => 'thorn',
|
||||
178 => 'twosuperior',
|
||||
214 => 'Odieresis',
|
||||
181 => 'mu',
|
||||
236 => 'igrave',
|
||||
190 => 'threequarters',
|
||||
153 => 'trademark',
|
||||
204 => 'Igrave',
|
||||
189 => 'onehalf',
|
||||
244 => 'ocircumflex',
|
||||
241 => 'ntilde',
|
||||
201 => 'Eacute',
|
||||
188 => 'onequarter',
|
||||
138 => 'Scaron',
|
||||
176 => 'degree',
|
||||
242 => 'ograve',
|
||||
249 => 'ugrave',
|
||||
209 => 'Ntilde',
|
||||
245 => 'otilde',
|
||||
195 => 'Atilde',
|
||||
197 => 'Aring',
|
||||
213 => 'Otilde',
|
||||
206 => 'Icircumflex',
|
||||
172 => 'logicalnot',
|
||||
246 => 'odieresis',
|
||||
252 => 'udieresis',
|
||||
240 => 'eth',
|
||||
158 => 'zcaron',
|
||||
185 => 'onesuperior',
|
||||
128 => 'Euro',
|
||||
),
|
||||
'isUnicode' => false,
|
||||
'FontName' => 'Times-Bold',
|
||||
'FullName' => 'Times Bold',
|
||||
'FamilyName' => 'Times',
|
||||
'Weight' => 'Bold',
|
||||
'ItalicAngle' => '0',
|
||||
'IsFixedPitch' => 'false',
|
||||
'CharacterSet' => 'ExtendedRoman',
|
||||
'FontBBox' =>
|
||||
array (
|
||||
0 => '-168',
|
||||
1 => '-218',
|
||||
2 => '1000',
|
||||
3 => '935',
|
||||
),
|
||||
'UnderlinePosition' => '-100',
|
||||
'UnderlineThickness' => '50',
|
||||
'Version' => '002.000',
|
||||
'EncodingScheme' => 'WinAnsiEncoding',
|
||||
'CapHeight' => '676',
|
||||
'XHeight' => '461',
|
||||
'Ascender' => '683',
|
||||
'Descender' => '-217',
|
||||
'StdHW' => '44',
|
||||
'StdVW' => '139',
|
||||
'StartCharMetrics' => '317',
|
||||
'C' =>
|
||||
array (
|
||||
32 => 250.0,
|
||||
160 => 250.0,
|
||||
33 => 333.0,
|
||||
34 => 555.0,
|
||||
35 => 500.0,
|
||||
36 => 500.0,
|
||||
37 => 1000.0,
|
||||
38 => 833.0,
|
||||
146 => 333.0,
|
||||
40 => 333.0,
|
||||
41 => 333.0,
|
||||
42 => 500.0,
|
||||
43 => 570.0,
|
||||
44 => 250.0,
|
||||
45 => 333.0,
|
||||
173 => 333.0,
|
||||
46 => 250.0,
|
||||
47 => 278.0,
|
||||
48 => 500.0,
|
||||
49 => 500.0,
|
||||
50 => 500.0,
|
||||
51 => 500.0,
|
||||
52 => 500.0,
|
||||
53 => 500.0,
|
||||
54 => 500.0,
|
||||
55 => 500.0,
|
||||
56 => 500.0,
|
||||
57 => 500.0,
|
||||
58 => 333.0,
|
||||
59 => 333.0,
|
||||
60 => 570.0,
|
||||
61 => 570.0,
|
||||
62 => 570.0,
|
||||
63 => 500.0,
|
||||
64 => 930.0,
|
||||
65 => 722.0,
|
||||
66 => 667.0,
|
||||
67 => 722.0,
|
||||
68 => 722.0,
|
||||
69 => 667.0,
|
||||
70 => 611.0,
|
||||
71 => 778.0,
|
||||
72 => 778.0,
|
||||
73 => 389.0,
|
||||
74 => 500.0,
|
||||
75 => 778.0,
|
||||
76 => 667.0,
|
||||
77 => 944.0,
|
||||
78 => 722.0,
|
||||
79 => 778.0,
|
||||
80 => 611.0,
|
||||
81 => 778.0,
|
||||
82 => 722.0,
|
||||
83 => 556.0,
|
||||
84 => 667.0,
|
||||
85 => 722.0,
|
||||
86 => 722.0,
|
||||
87 => 1000.0,
|
||||
88 => 722.0,
|
||||
89 => 722.0,
|
||||
90 => 667.0,
|
||||
91 => 333.0,
|
||||
92 => 278.0,
|
||||
93 => 333.0,
|
||||
94 => 581.0,
|
||||
95 => 500.0,
|
||||
145 => 333.0,
|
||||
97 => 500.0,
|
||||
98 => 556.0,
|
||||
99 => 444.0,
|
||||
100 => 556.0,
|
||||
101 => 444.0,
|
||||
102 => 333.0,
|
||||
103 => 500.0,
|
||||
104 => 556.0,
|
||||
105 => 278.0,
|
||||
106 => 333.0,
|
||||
107 => 556.0,
|
||||
108 => 278.0,
|
||||
109 => 833.0,
|
||||
110 => 556.0,
|
||||
111 => 500.0,
|
||||
112 => 556.0,
|
||||
113 => 556.0,
|
||||
114 => 444.0,
|
||||
115 => 389.0,
|
||||
116 => 333.0,
|
||||
117 => 556.0,
|
||||
118 => 500.0,
|
||||
119 => 722.0,
|
||||
120 => 500.0,
|
||||
121 => 500.0,
|
||||
122 => 444.0,
|
||||
123 => 394.0,
|
||||
124 => 220.0,
|
||||
125 => 394.0,
|
||||
126 => 520.0,
|
||||
161 => 333.0,
|
||||
162 => 500.0,
|
||||
163 => 500.0,
|
||||
'fraction' => 167.0,
|
||||
165 => 500.0,
|
||||
131 => 500.0,
|
||||
167 => 500.0,
|
||||
164 => 500.0,
|
||||
39 => 278.0,
|
||||
147 => 500.0,
|
||||
171 => 500.0,
|
||||
139 => 333.0,
|
||||
155 => 333.0,
|
||||
'fi' => 556.0,
|
||||
'fl' => 556.0,
|
||||
150 => 500.0,
|
||||
134 => 500.0,
|
||||
135 => 500.0,
|
||||
183 => 250.0,
|
||||
182 => 540.0,
|
||||
149 => 350.0,
|
||||
130 => 333.0,
|
||||
132 => 500.0,
|
||||
148 => 500.0,
|
||||
187 => 500.0,
|
||||
133 => 1000.0,
|
||||
137 => 1000.0,
|
||||
191 => 500.0,
|
||||
96 => 333.0,
|
||||
180 => 333.0,
|
||||
136 => 333.0,
|
||||
152 => 333.0,
|
||||
175 => 333.0,
|
||||
'breve' => 333.0,
|
||||
'dotaccent' => 333.0,
|
||||
168 => 333.0,
|
||||
'ring' => 333.0,
|
||||
184 => 333.0,
|
||||
'hungarumlaut' => 333.0,
|
||||
'ogonek' => 333.0,
|
||||
'caron' => 333.0,
|
||||
151 => 1000.0,
|
||||
198 => 1000.0,
|
||||
170 => 300.0,
|
||||
'Lslash' => 667.0,
|
||||
216 => 778.0,
|
||||
140 => 1000.0,
|
||||
186 => 330.0,
|
||||
230 => 722.0,
|
||||
'dotlessi' => 278.0,
|
||||
'lslash' => 278.0,
|
||||
248 => 500.0,
|
||||
156 => 722.0,
|
||||
223 => 556.0,
|
||||
207 => 389.0,
|
||||
233 => 444.0,
|
||||
'abreve' => 500.0,
|
||||
'uhungarumlaut' => 556.0,
|
||||
'ecaron' => 444.0,
|
||||
159 => 722.0,
|
||||
247 => 570.0,
|
||||
221 => 722.0,
|
||||
194 => 722.0,
|
||||
225 => 500.0,
|
||||
219 => 722.0,
|
||||
253 => 500.0,
|
||||
'scommaaccent' => 389.0,
|
||||
234 => 444.0,
|
||||
'Uring' => 722.0,
|
||||
220 => 722.0,
|
||||
'aogonek' => 500.0,
|
||||
218 => 722.0,
|
||||
'uogonek' => 556.0,
|
||||
203 => 667.0,
|
||||
'Dcroat' => 722.0,
|
||||
'commaaccent' => 250.0,
|
||||
169 => 747.0,
|
||||
'Emacron' => 667.0,
|
||||
'ccaron' => 444.0,
|
||||
229 => 500.0,
|
||||
'Ncommaaccent' => 722.0,
|
||||
'lacute' => 278.0,
|
||||
224 => 500.0,
|
||||
'Tcommaaccent' => 667.0,
|
||||
'Cacute' => 722.0,
|
||||
227 => 500.0,
|
||||
'Edotaccent' => 667.0,
|
||||
154 => 389.0,
|
||||
'scedilla' => 389.0,
|
||||
237 => 278.0,
|
||||
'lozenge' => 494.0,
|
||||
'Rcaron' => 722.0,
|
||||
'Gcommaaccent' => 778.0,
|
||||
251 => 556.0,
|
||||
226 => 500.0,
|
||||
'Amacron' => 722.0,
|
||||
'rcaron' => 444.0,
|
||||
231 => 444.0,
|
||||
'Zdotaccent' => 667.0,
|
||||
222 => 611.0,
|
||||
'Omacron' => 778.0,
|
||||
'Racute' => 722.0,
|
||||
'Sacute' => 556.0,
|
||||
'dcaron' => 672.0,
|
||||
'Umacron' => 722.0,
|
||||
'uring' => 556.0,
|
||||
179 => 300.0,
|
||||
210 => 778.0,
|
||||
192 => 722.0,
|
||||
'Abreve' => 722.0,
|
||||
215 => 570.0,
|
||||
250 => 556.0,
|
||||
'Tcaron' => 667.0,
|
||||
'partialdiff' => 494.0,
|
||||
255 => 500.0,
|
||||
'Nacute' => 722.0,
|
||||
238 => 278.0,
|
||||
202 => 667.0,
|
||||
228 => 500.0,
|
||||
235 => 444.0,
|
||||
'cacute' => 444.0,
|
||||
'nacute' => 556.0,
|
||||
'umacron' => 556.0,
|
||||
'Ncaron' => 722.0,
|
||||
205 => 389.0,
|
||||
177 => 570.0,
|
||||
166 => 220.0,
|
||||
174 => 747.0,
|
||||
'Gbreve' => 778.0,
|
||||
'Idotaccent' => 389.0,
|
||||
'summation' => 600.0,
|
||||
200 => 667.0,
|
||||
'racute' => 444.0,
|
||||
'omacron' => 500.0,
|
||||
'Zacute' => 667.0,
|
||||
142 => 667.0,
|
||||
'greaterequal' => 549.0,
|
||||
208 => 722.0,
|
||||
199 => 722.0,
|
||||
'lcommaaccent' => 278.0,
|
||||
'tcaron' => 416.0,
|
||||
'eogonek' => 444.0,
|
||||
'Uogonek' => 722.0,
|
||||
193 => 722.0,
|
||||
196 => 722.0,
|
||||
232 => 444.0,
|
||||
'zacute' => 444.0,
|
||||
'iogonek' => 278.0,
|
||||
211 => 778.0,
|
||||
243 => 500.0,
|
||||
'amacron' => 500.0,
|
||||
'sacute' => 389.0,
|
||||
239 => 278.0,
|
||||
212 => 778.0,
|
||||
217 => 722.0,
|
||||
'Delta' => 612.0,
|
||||
254 => 556.0,
|
||||
178 => 300.0,
|
||||
214 => 778.0,
|
||||
181 => 556.0,
|
||||
236 => 278.0,
|
||||
'ohungarumlaut' => 500.0,
|
||||
'Eogonek' => 667.0,
|
||||
'dcroat' => 556.0,
|
||||
190 => 750.0,
|
||||
'Scedilla' => 556.0,
|
||||
'lcaron' => 394.0,
|
||||
'Kcommaaccent' => 778.0,
|
||||
'Lacute' => 667.0,
|
||||
153 => 1000.0,
|
||||
'edotaccent' => 444.0,
|
||||
204 => 389.0,
|
||||
'Imacron' => 389.0,
|
||||
'Lcaron' => 667.0,
|
||||
189 => 750.0,
|
||||
'lessequal' => 549.0,
|
||||
244 => 500.0,
|
||||
241 => 556.0,
|
||||
'Uhungarumlaut' => 722.0,
|
||||
201 => 667.0,
|
||||
'emacron' => 444.0,
|
||||
'gbreve' => 500.0,
|
||||
188 => 750.0,
|
||||
138 => 556.0,
|
||||
'Scommaaccent' => 556.0,
|
||||
'Ohungarumlaut' => 778.0,
|
||||
176 => 400.0,
|
||||
242 => 500.0,
|
||||
'Ccaron' => 722.0,
|
||||
249 => 556.0,
|
||||
'radical' => 549.0,
|
||||
'Dcaron' => 722.0,
|
||||
'rcommaaccent' => 444.0,
|
||||
209 => 722.0,
|
||||
245 => 500.0,
|
||||
'Rcommaaccent' => 722.0,
|
||||
'Lcommaaccent' => 667.0,
|
||||
195 => 722.0,
|
||||
'Aogonek' => 722.0,
|
||||
197 => 722.0,
|
||||
213 => 778.0,
|
||||
'zdotaccent' => 444.0,
|
||||
'Ecaron' => 667.0,
|
||||
'Iogonek' => 389.0,
|
||||
'kcommaaccent' => 556.0,
|
||||
'minus' => 570.0,
|
||||
206 => 389.0,
|
||||
'ncaron' => 556.0,
|
||||
'tcommaaccent' => 333.0,
|
||||
172 => 570.0,
|
||||
246 => 500.0,
|
||||
252 => 556.0,
|
||||
'notequal' => 549.0,
|
||||
'gcommaaccent' => 500.0,
|
||||
240 => 500.0,
|
||||
158 => 444.0,
|
||||
'ncommaaccent' => 556.0,
|
||||
185 => 300.0,
|
||||
'imacron' => 278.0,
|
||||
128 => 500.0,
|
||||
),
|
||||
'CIDtoGID_Compressed' => true,
|
||||
'CIDtoGID' => 'eJwDAAAAAAE=',
|
||||
'_version_' => 6,
|
||||
);
|
||||
572
storage/fonts/Times-Italic.afm.php
Normal file
572
storage/fonts/Times-Italic.afm.php
Normal file
|
|
@ -0,0 +1,572 @@
|
|||
<?php return array (
|
||||
'codeToName' =>
|
||||
array (
|
||||
32 => 'space',
|
||||
160 => 'space',
|
||||
33 => 'exclam',
|
||||
34 => 'quotedbl',
|
||||
35 => 'numbersign',
|
||||
36 => 'dollar',
|
||||
37 => 'percent',
|
||||
38 => 'ampersand',
|
||||
146 => 'quoteright',
|
||||
40 => 'parenleft',
|
||||
41 => 'parenright',
|
||||
42 => 'asterisk',
|
||||
43 => 'plus',
|
||||
44 => 'comma',
|
||||
45 => 'hyphen',
|
||||
173 => 'hyphen',
|
||||
46 => 'period',
|
||||
47 => 'slash',
|
||||
48 => 'zero',
|
||||
49 => 'one',
|
||||
50 => 'two',
|
||||
51 => 'three',
|
||||
52 => 'four',
|
||||
53 => 'five',
|
||||
54 => 'six',
|
||||
55 => 'seven',
|
||||
56 => 'eight',
|
||||
57 => 'nine',
|
||||
58 => 'colon',
|
||||
59 => 'semicolon',
|
||||
60 => 'less',
|
||||
61 => 'equal',
|
||||
62 => 'greater',
|
||||
63 => 'question',
|
||||
64 => 'at',
|
||||
65 => 'A',
|
||||
66 => 'B',
|
||||
67 => 'C',
|
||||
68 => 'D',
|
||||
69 => 'E',
|
||||
70 => 'F',
|
||||
71 => 'G',
|
||||
72 => 'H',
|
||||
73 => 'I',
|
||||
74 => 'J',
|
||||
75 => 'K',
|
||||
76 => 'L',
|
||||
77 => 'M',
|
||||
78 => 'N',
|
||||
79 => 'O',
|
||||
80 => 'P',
|
||||
81 => 'Q',
|
||||
82 => 'R',
|
||||
83 => 'S',
|
||||
84 => 'T',
|
||||
85 => 'U',
|
||||
86 => 'V',
|
||||
87 => 'W',
|
||||
88 => 'X',
|
||||
89 => 'Y',
|
||||
90 => 'Z',
|
||||
91 => 'bracketleft',
|
||||
92 => 'backslash',
|
||||
93 => 'bracketright',
|
||||
94 => 'asciicircum',
|
||||
95 => 'underscore',
|
||||
145 => 'quoteleft',
|
||||
97 => 'a',
|
||||
98 => 'b',
|
||||
99 => 'c',
|
||||
100 => 'd',
|
||||
101 => 'e',
|
||||
102 => 'f',
|
||||
103 => 'g',
|
||||
104 => 'h',
|
||||
105 => 'i',
|
||||
106 => 'j',
|
||||
107 => 'k',
|
||||
108 => 'l',
|
||||
109 => 'm',
|
||||
110 => 'n',
|
||||
111 => 'o',
|
||||
112 => 'p',
|
||||
113 => 'q',
|
||||
114 => 'r',
|
||||
115 => 's',
|
||||
116 => 't',
|
||||
117 => 'u',
|
||||
118 => 'v',
|
||||
119 => 'w',
|
||||
120 => 'x',
|
||||
121 => 'y',
|
||||
122 => 'z',
|
||||
123 => 'braceleft',
|
||||
124 => 'bar',
|
||||
125 => 'braceright',
|
||||
126 => 'asciitilde',
|
||||
161 => 'exclamdown',
|
||||
162 => 'cent',
|
||||
163 => 'sterling',
|
||||
165 => 'yen',
|
||||
131 => 'florin',
|
||||
167 => 'section',
|
||||
164 => 'currency',
|
||||
39 => 'quotesingle',
|
||||
147 => 'quotedblleft',
|
||||
171 => 'guillemotleft',
|
||||
139 => 'guilsinglleft',
|
||||
155 => 'guilsinglright',
|
||||
150 => 'endash',
|
||||
134 => 'dagger',
|
||||
135 => 'daggerdbl',
|
||||
183 => 'periodcentered',
|
||||
182 => 'paragraph',
|
||||
149 => 'bullet',
|
||||
130 => 'quotesinglbase',
|
||||
132 => 'quotedblbase',
|
||||
148 => 'quotedblright',
|
||||
187 => 'guillemotright',
|
||||
133 => 'ellipsis',
|
||||
137 => 'perthousand',
|
||||
191 => 'questiondown',
|
||||
96 => 'grave',
|
||||
180 => 'acute',
|
||||
136 => 'circumflex',
|
||||
152 => 'tilde',
|
||||
175 => 'macron',
|
||||
168 => 'dieresis',
|
||||
184 => 'cedilla',
|
||||
151 => 'emdash',
|
||||
198 => 'AE',
|
||||
170 => 'ordfeminine',
|
||||
216 => 'Oslash',
|
||||
140 => 'OE',
|
||||
186 => 'ordmasculine',
|
||||
230 => 'ae',
|
||||
248 => 'oslash',
|
||||
156 => 'oe',
|
||||
223 => 'germandbls',
|
||||
207 => 'Idieresis',
|
||||
233 => 'eacute',
|
||||
159 => 'Ydieresis',
|
||||
247 => 'divide',
|
||||
221 => 'Yacute',
|
||||
194 => 'Acircumflex',
|
||||
225 => 'aacute',
|
||||
219 => 'Ucircumflex',
|
||||
253 => 'yacute',
|
||||
234 => 'ecircumflex',
|
||||
220 => 'Udieresis',
|
||||
218 => 'Uacute',
|
||||
203 => 'Edieresis',
|
||||
169 => 'copyright',
|
||||
229 => 'aring',
|
||||
224 => 'agrave',
|
||||
227 => 'atilde',
|
||||
154 => 'scaron',
|
||||
237 => 'iacute',
|
||||
251 => 'ucircumflex',
|
||||
226 => 'acircumflex',
|
||||
231 => 'ccedilla',
|
||||
222 => 'Thorn',
|
||||
179 => 'threesuperior',
|
||||
210 => 'Ograve',
|
||||
192 => 'Agrave',
|
||||
215 => 'multiply',
|
||||
250 => 'uacute',
|
||||
255 => 'ydieresis',
|
||||
238 => 'icircumflex',
|
||||
202 => 'Ecircumflex',
|
||||
228 => 'adieresis',
|
||||
235 => 'edieresis',
|
||||
205 => 'Iacute',
|
||||
177 => 'plusminus',
|
||||
166 => 'brokenbar',
|
||||
174 => 'registered',
|
||||
200 => 'Egrave',
|
||||
142 => 'Zcaron',
|
||||
208 => 'Eth',
|
||||
199 => 'Ccedilla',
|
||||
193 => 'Aacute',
|
||||
196 => 'Adieresis',
|
||||
232 => 'egrave',
|
||||
211 => 'Oacute',
|
||||
243 => 'oacute',
|
||||
239 => 'idieresis',
|
||||
212 => 'Ocircumflex',
|
||||
217 => 'Ugrave',
|
||||
254 => 'thorn',
|
||||
178 => 'twosuperior',
|
||||
214 => 'Odieresis',
|
||||
181 => 'mu',
|
||||
236 => 'igrave',
|
||||
190 => 'threequarters',
|
||||
153 => 'trademark',
|
||||
204 => 'Igrave',
|
||||
189 => 'onehalf',
|
||||
244 => 'ocircumflex',
|
||||
241 => 'ntilde',
|
||||
201 => 'Eacute',
|
||||
188 => 'onequarter',
|
||||
138 => 'Scaron',
|
||||
176 => 'degree',
|
||||
242 => 'ograve',
|
||||
249 => 'ugrave',
|
||||
209 => 'Ntilde',
|
||||
245 => 'otilde',
|
||||
195 => 'Atilde',
|
||||
197 => 'Aring',
|
||||
213 => 'Otilde',
|
||||
206 => 'Icircumflex',
|
||||
172 => 'logicalnot',
|
||||
246 => 'odieresis',
|
||||
252 => 'udieresis',
|
||||
240 => 'eth',
|
||||
158 => 'zcaron',
|
||||
185 => 'onesuperior',
|
||||
128 => 'Euro',
|
||||
),
|
||||
'isUnicode' => false,
|
||||
'FontName' => 'Times-Italic',
|
||||
'FullName' => 'Times Italic',
|
||||
'FamilyName' => 'Times',
|
||||
'Weight' => 'Medium',
|
||||
'ItalicAngle' => '-15.5',
|
||||
'IsFixedPitch' => 'false',
|
||||
'CharacterSet' => 'ExtendedRoman',
|
||||
'FontBBox' =>
|
||||
array (
|
||||
0 => '-169',
|
||||
1 => '-217',
|
||||
2 => '1010',
|
||||
3 => '883',
|
||||
),
|
||||
'UnderlinePosition' => '-100',
|
||||
'UnderlineThickness' => '50',
|
||||
'Version' => '002.000',
|
||||
'EncodingScheme' => 'WinAnsiEncoding',
|
||||
'CapHeight' => '653',
|
||||
'XHeight' => '441',
|
||||
'Ascender' => '683',
|
||||
'Descender' => '-217',
|
||||
'StdHW' => '32',
|
||||
'StdVW' => '76',
|
||||
'StartCharMetrics' => '317',
|
||||
'C' =>
|
||||
array (
|
||||
32 => 250.0,
|
||||
160 => 250.0,
|
||||
33 => 333.0,
|
||||
34 => 420.0,
|
||||
35 => 500.0,
|
||||
36 => 500.0,
|
||||
37 => 833.0,
|
||||
38 => 778.0,
|
||||
146 => 333.0,
|
||||
40 => 333.0,
|
||||
41 => 333.0,
|
||||
42 => 500.0,
|
||||
43 => 675.0,
|
||||
44 => 250.0,
|
||||
45 => 333.0,
|
||||
173 => 333.0,
|
||||
46 => 250.0,
|
||||
47 => 278.0,
|
||||
48 => 500.0,
|
||||
49 => 500.0,
|
||||
50 => 500.0,
|
||||
51 => 500.0,
|
||||
52 => 500.0,
|
||||
53 => 500.0,
|
||||
54 => 500.0,
|
||||
55 => 500.0,
|
||||
56 => 500.0,
|
||||
57 => 500.0,
|
||||
58 => 333.0,
|
||||
59 => 333.0,
|
||||
60 => 675.0,
|
||||
61 => 675.0,
|
||||
62 => 675.0,
|
||||
63 => 500.0,
|
||||
64 => 920.0,
|
||||
65 => 611.0,
|
||||
66 => 611.0,
|
||||
67 => 667.0,
|
||||
68 => 722.0,
|
||||
69 => 611.0,
|
||||
70 => 611.0,
|
||||
71 => 722.0,
|
||||
72 => 722.0,
|
||||
73 => 333.0,
|
||||
74 => 444.0,
|
||||
75 => 667.0,
|
||||
76 => 556.0,
|
||||
77 => 833.0,
|
||||
78 => 667.0,
|
||||
79 => 722.0,
|
||||
80 => 611.0,
|
||||
81 => 722.0,
|
||||
82 => 611.0,
|
||||
83 => 500.0,
|
||||
84 => 556.0,
|
||||
85 => 722.0,
|
||||
86 => 611.0,
|
||||
87 => 833.0,
|
||||
88 => 611.0,
|
||||
89 => 556.0,
|
||||
90 => 556.0,
|
||||
91 => 389.0,
|
||||
92 => 278.0,
|
||||
93 => 389.0,
|
||||
94 => 422.0,
|
||||
95 => 500.0,
|
||||
145 => 333.0,
|
||||
97 => 500.0,
|
||||
98 => 500.0,
|
||||
99 => 444.0,
|
||||
100 => 500.0,
|
||||
101 => 444.0,
|
||||
102 => 278.0,
|
||||
103 => 500.0,
|
||||
104 => 500.0,
|
||||
105 => 278.0,
|
||||
106 => 278.0,
|
||||
107 => 444.0,
|
||||
108 => 278.0,
|
||||
109 => 722.0,
|
||||
110 => 500.0,
|
||||
111 => 500.0,
|
||||
112 => 500.0,
|
||||
113 => 500.0,
|
||||
114 => 389.0,
|
||||
115 => 389.0,
|
||||
116 => 278.0,
|
||||
117 => 500.0,
|
||||
118 => 444.0,
|
||||
119 => 667.0,
|
||||
120 => 444.0,
|
||||
121 => 444.0,
|
||||
122 => 389.0,
|
||||
123 => 400.0,
|
||||
124 => 275.0,
|
||||
125 => 400.0,
|
||||
126 => 541.0,
|
||||
161 => 389.0,
|
||||
162 => 500.0,
|
||||
163 => 500.0,
|
||||
'fraction' => 167.0,
|
||||
165 => 500.0,
|
||||
131 => 500.0,
|
||||
167 => 500.0,
|
||||
164 => 500.0,
|
||||
39 => 214.0,
|
||||
147 => 556.0,
|
||||
171 => 500.0,
|
||||
139 => 333.0,
|
||||
155 => 333.0,
|
||||
'fi' => 500.0,
|
||||
'fl' => 500.0,
|
||||
150 => 500.0,
|
||||
134 => 500.0,
|
||||
135 => 500.0,
|
||||
183 => 250.0,
|
||||
182 => 523.0,
|
||||
149 => 350.0,
|
||||
130 => 333.0,
|
||||
132 => 556.0,
|
||||
148 => 556.0,
|
||||
187 => 500.0,
|
||||
133 => 889.0,
|
||||
137 => 1000.0,
|
||||
191 => 500.0,
|
||||
96 => 333.0,
|
||||
180 => 333.0,
|
||||
136 => 333.0,
|
||||
152 => 333.0,
|
||||
175 => 333.0,
|
||||
'breve' => 333.0,
|
||||
'dotaccent' => 333.0,
|
||||
168 => 333.0,
|
||||
'ring' => 333.0,
|
||||
184 => 333.0,
|
||||
'hungarumlaut' => 333.0,
|
||||
'ogonek' => 333.0,
|
||||
'caron' => 333.0,
|
||||
151 => 889.0,
|
||||
198 => 889.0,
|
||||
170 => 276.0,
|
||||
'Lslash' => 556.0,
|
||||
216 => 722.0,
|
||||
140 => 944.0,
|
||||
186 => 310.0,
|
||||
230 => 667.0,
|
||||
'dotlessi' => 278.0,
|
||||
'lslash' => 278.0,
|
||||
248 => 500.0,
|
||||
156 => 667.0,
|
||||
223 => 500.0,
|
||||
207 => 333.0,
|
||||
233 => 444.0,
|
||||
'abreve' => 500.0,
|
||||
'uhungarumlaut' => 500.0,
|
||||
'ecaron' => 444.0,
|
||||
159 => 556.0,
|
||||
247 => 675.0,
|
||||
221 => 556.0,
|
||||
194 => 611.0,
|
||||
225 => 500.0,
|
||||
219 => 722.0,
|
||||
253 => 444.0,
|
||||
'scommaaccent' => 389.0,
|
||||
234 => 444.0,
|
||||
'Uring' => 722.0,
|
||||
220 => 722.0,
|
||||
'aogonek' => 500.0,
|
||||
218 => 722.0,
|
||||
'uogonek' => 500.0,
|
||||
203 => 611.0,
|
||||
'Dcroat' => 722.0,
|
||||
'commaaccent' => 250.0,
|
||||
169 => 760.0,
|
||||
'Emacron' => 611.0,
|
||||
'ccaron' => 444.0,
|
||||
229 => 500.0,
|
||||
'Ncommaaccent' => 667.0,
|
||||
'lacute' => 278.0,
|
||||
224 => 500.0,
|
||||
'Tcommaaccent' => 556.0,
|
||||
'Cacute' => 667.0,
|
||||
227 => 500.0,
|
||||
'Edotaccent' => 611.0,
|
||||
154 => 389.0,
|
||||
'scedilla' => 389.0,
|
||||
237 => 278.0,
|
||||
'lozenge' => 471.0,
|
||||
'Rcaron' => 611.0,
|
||||
'Gcommaaccent' => 722.0,
|
||||
251 => 500.0,
|
||||
226 => 500.0,
|
||||
'Amacron' => 611.0,
|
||||
'rcaron' => 389.0,
|
||||
231 => 444.0,
|
||||
'Zdotaccent' => 556.0,
|
||||
222 => 611.0,
|
||||
'Omacron' => 722.0,
|
||||
'Racute' => 611.0,
|
||||
'Sacute' => 500.0,
|
||||
'dcaron' => 544.0,
|
||||
'Umacron' => 722.0,
|
||||
'uring' => 500.0,
|
||||
179 => 300.0,
|
||||
210 => 722.0,
|
||||
192 => 611.0,
|
||||
'Abreve' => 611.0,
|
||||
215 => 675.0,
|
||||
250 => 500.0,
|
||||
'Tcaron' => 556.0,
|
||||
'partialdiff' => 476.0,
|
||||
255 => 444.0,
|
||||
'Nacute' => 667.0,
|
||||
238 => 278.0,
|
||||
202 => 611.0,
|
||||
228 => 500.0,
|
||||
235 => 444.0,
|
||||
'cacute' => 444.0,
|
||||
'nacute' => 500.0,
|
||||
'umacron' => 500.0,
|
||||
'Ncaron' => 667.0,
|
||||
205 => 333.0,
|
||||
177 => 675.0,
|
||||
166 => 275.0,
|
||||
174 => 760.0,
|
||||
'Gbreve' => 722.0,
|
||||
'Idotaccent' => 333.0,
|
||||
'summation' => 600.0,
|
||||
200 => 611.0,
|
||||
'racute' => 389.0,
|
||||
'omacron' => 500.0,
|
||||
'Zacute' => 556.0,
|
||||
142 => 556.0,
|
||||
'greaterequal' => 549.0,
|
||||
208 => 722.0,
|
||||
199 => 667.0,
|
||||
'lcommaaccent' => 278.0,
|
||||
'tcaron' => 300.0,
|
||||
'eogonek' => 444.0,
|
||||
'Uogonek' => 722.0,
|
||||
193 => 611.0,
|
||||
196 => 611.0,
|
||||
232 => 444.0,
|
||||
'zacute' => 389.0,
|
||||
'iogonek' => 278.0,
|
||||
211 => 722.0,
|
||||
243 => 500.0,
|
||||
'amacron' => 500.0,
|
||||
'sacute' => 389.0,
|
||||
239 => 278.0,
|
||||
212 => 722.0,
|
||||
217 => 722.0,
|
||||
'Delta' => 612.0,
|
||||
254 => 500.0,
|
||||
178 => 300.0,
|
||||
214 => 722.0,
|
||||
181 => 500.0,
|
||||
236 => 278.0,
|
||||
'ohungarumlaut' => 500.0,
|
||||
'Eogonek' => 611.0,
|
||||
'dcroat' => 500.0,
|
||||
190 => 750.0,
|
||||
'Scedilla' => 500.0,
|
||||
'lcaron' => 300.0,
|
||||
'Kcommaaccent' => 667.0,
|
||||
'Lacute' => 556.0,
|
||||
153 => 980.0,
|
||||
'edotaccent' => 444.0,
|
||||
204 => 333.0,
|
||||
'Imacron' => 333.0,
|
||||
'Lcaron' => 611.0,
|
||||
189 => 750.0,
|
||||
'lessequal' => 549.0,
|
||||
244 => 500.0,
|
||||
241 => 500.0,
|
||||
'Uhungarumlaut' => 722.0,
|
||||
201 => 611.0,
|
||||
'emacron' => 444.0,
|
||||
'gbreve' => 500.0,
|
||||
188 => 750.0,
|
||||
138 => 500.0,
|
||||
'Scommaaccent' => 500.0,
|
||||
'Ohungarumlaut' => 722.0,
|
||||
176 => 400.0,
|
||||
242 => 500.0,
|
||||
'Ccaron' => 667.0,
|
||||
249 => 500.0,
|
||||
'radical' => 453.0,
|
||||
'Dcaron' => 722.0,
|
||||
'rcommaaccent' => 389.0,
|
||||
209 => 667.0,
|
||||
245 => 500.0,
|
||||
'Rcommaaccent' => 611.0,
|
||||
'Lcommaaccent' => 556.0,
|
||||
195 => 611.0,
|
||||
'Aogonek' => 611.0,
|
||||
197 => 611.0,
|
||||
213 => 722.0,
|
||||
'zdotaccent' => 389.0,
|
||||
'Ecaron' => 611.0,
|
||||
'Iogonek' => 333.0,
|
||||
'kcommaaccent' => 444.0,
|
||||
'minus' => 675.0,
|
||||
206 => 333.0,
|
||||
'ncaron' => 500.0,
|
||||
'tcommaaccent' => 278.0,
|
||||
172 => 675.0,
|
||||
246 => 500.0,
|
||||
252 => 500.0,
|
||||
'notequal' => 549.0,
|
||||
'gcommaaccent' => 500.0,
|
||||
240 => 500.0,
|
||||
158 => 389.0,
|
||||
'ncommaaccent' => 500.0,
|
||||
185 => 300.0,
|
||||
'imacron' => 278.0,
|
||||
128 => 500.0,
|
||||
),
|
||||
'CIDtoGID_Compressed' => true,
|
||||
'CIDtoGID' => 'eJwDAAAAAAE=',
|
||||
'_version_' => 6,
|
||||
);
|
||||
Loading…
Add table
Add a link
Reference in a new issue