first commit
This commit is contained in:
71
autoload/shop/class.Basket.php
Normal file
71
autoload/shop/class.Basket.php
Normal file
@@ -0,0 +1,71 @@
|
||||
<?php
|
||||
namespace shop;
|
||||
|
||||
class Basket implements \ArrayAccess
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
static public function validate_basket( $basket )
|
||||
{
|
||||
if ( !is_array( $basket ) )
|
||||
return $basket = array();
|
||||
else
|
||||
return $basket;
|
||||
}
|
||||
|
||||
// sprawdzanie czy ilość produktu w koszyku nie jest większa niż stan magazynowy
|
||||
public static function check_product_quantity_in_stock( $basket, bool $message = false )
|
||||
{
|
||||
$result = false;
|
||||
|
||||
foreach ( $basket as $key => $val )
|
||||
{
|
||||
$quantity_options = \shop\Product::get_product_permutation_quantity_options( $val['parent_id'] ? $val['parent_id'] : $val['product-id'], $val['attributes'][0] );
|
||||
|
||||
if ( ( $val[ 'quantity' ] > $quantity_options['quantity'] ) and !$quantity_options['stock_0_buy'] )
|
||||
{
|
||||
$basket[ $key ][ 'quantity' ] = $quantity_options['quantity'];
|
||||
if ( $message )
|
||||
\S::error( 'Ilość jednego lub więcej produktów została zmniejszona z powodu niestarczających stanów magazynowych. Sprawdź proszę koszyk.' );
|
||||
$result = true;
|
||||
}
|
||||
}
|
||||
\S::set_session( 'basket', $basket );
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function __get( $variable )
|
||||
{
|
||||
if ( array_key_exists( $variable, $this -> data ) )
|
||||
return $this -> $variable;
|
||||
}
|
||||
|
||||
public function __set( $variable, $value )
|
||||
{
|
||||
$this -> $variable = $value;
|
||||
}
|
||||
|
||||
public function offsetExists( $offset )
|
||||
{
|
||||
return isset( $this -> $offset );
|
||||
}
|
||||
|
||||
public function offsetGet( $offset )
|
||||
{
|
||||
return $this -> $offset;
|
||||
}
|
||||
|
||||
public function offsetSet( $offset, $value )
|
||||
{
|
||||
$this -> $offset = $value;
|
||||
}
|
||||
|
||||
public function offsetUnset( $offset )
|
||||
{
|
||||
unset( $this -> $offset );
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user