Updates to 03-2025
This commit is contained in:
parent
6167273a48
commit
9b54eb0512
348 changed files with 34535 additions and 5774 deletions
|
|
@ -5,12 +5,14 @@ namespace App\Repositories;
|
|||
|
||||
|
||||
use App\Models\CountryPrice;
|
||||
use App\Models\Attribute;
|
||||
use App\Models\Product;
|
||||
use App\Models\ProductAttribute;
|
||||
use App\Models\ProductCategory;
|
||||
use App\Models\ProductImage;
|
||||
use App\Models\ProductIngredient;
|
||||
|
||||
|
||||
class ProductRepository extends BaseRepository {
|
||||
|
||||
|
||||
|
|
@ -29,10 +31,12 @@ class ProductRepository extends BaseRepository {
|
|||
$data['active'] = isset($data['active']) ? 1 : 0;
|
||||
$data['single_commission'] = isset($data['single_commission']) ? 1 : 0;
|
||||
$data['amount_commission'] = isset($data['amount_commission']) ? 1 : 0;
|
||||
$data['exclude_stats_sales'] = isset($data['exclude_stats_sales']) ? 1 : 0;
|
||||
$data['whitelabel'] = isset($data['whitelabel']) ? 1 : 0;
|
||||
$data['shipping_addon'] = isset($data['shipping_addon']) ? 1 : 0;
|
||||
$data['max_buy'] = isset($data['max_buy']) ? 1 : 0;
|
||||
$data['show_on'] = isset($data['show_on']) ? $data['show_on'] : null;
|
||||
|
||||
|
||||
if($data['id'] === "new"){
|
||||
$this->model = Product::create($data);
|
||||
}
|
||||
|
|
@ -42,9 +46,14 @@ class ProductRepository extends BaseRepository {
|
|||
$this->model->save();
|
||||
}
|
||||
|
||||
$this->updateCategories(isset($data['categories']) ? $data['categories'] : array());
|
||||
$this->updateAttributes(isset($data['attributes']) ? $data['attributes'] : array());
|
||||
$this->updateIngredients(isset($data['product_ingredients']) ? $data['product_ingredients'] : array());
|
||||
|
||||
$this->updateCategories(isset($data['categories']) ? $data['categories'] : []);
|
||||
$this->updateAttributes(isset($data['attributes']) ? $data['attributes'] : []);
|
||||
|
||||
$this->updateWLVariants(isset($data['whitelabel_variants']) ? $data['whitelabel_variants'] : []);
|
||||
$this->updateWLImageAttributs(isset($data['image_wl_attributes']) ? $data['image_wl_attributes'] : [] , isset($data['whitelabel_variants']) ? $data['whitelabel_variants'] : []);
|
||||
|
||||
$this->updateIngredients(isset($data['product_ingredients']) ? $data['product_ingredients'] : []);
|
||||
$this->updateCountryPrices($data);
|
||||
|
||||
|
||||
|
|
@ -103,15 +112,62 @@ class ProductRepository extends BaseRepository {
|
|||
//set attr
|
||||
if(is_array($data)){
|
||||
foreach ($data as $id) {
|
||||
$attribute = Attribute::findOrFail($id);
|
||||
ProductAttribute::create([
|
||||
'product_id' => $this->model->id,
|
||||
'attribute_id' => $id,
|
||||
'type_id' => $attribute->attribute_type_id,
|
||||
'attribute_id' => $attribute->id,
|
||||
]);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public function updateWLVariants($data = array())
|
||||
{
|
||||
foreach ($this->model->attribute_variants as $variant) {
|
||||
if(($pos = array_search($variant->attribute_id, $data)) !== FALSE){
|
||||
unset($data[$pos]);
|
||||
}else{
|
||||
$variant->delete();
|
||||
}
|
||||
}
|
||||
//set attr
|
||||
if(is_array($data)){
|
||||
foreach ($data as $id) {
|
||||
$attribute = Attribute::findOrFail($id);
|
||||
ProductAttribute::create([
|
||||
'product_id' => $this->model->id,
|
||||
'type_id' => $attribute->attribute_type_id,
|
||||
'attribute_id' => $attribute->id,
|
||||
]);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public function updateWLImageAttributs($attributes = [], $variants = [])
|
||||
{
|
||||
//abgleich der attributes gegen die variants
|
||||
foreach ($attributes as $image => $value) {
|
||||
foreach ($value as $k => $val) {
|
||||
if(!is_array($variants) || !in_array($val, $variants)){
|
||||
unset($attributes[$image][$k]);
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach ($this->model->whitelabel_images as $image) {
|
||||
$image->update([
|
||||
'attributes' => isset($attributes[$image->id]) ? $attributes[$image->id] : NULL,
|
||||
]);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public function updateCountryPrices($data)
|
||||
{
|
||||
if(!isset($data['country_prices']) || !is_array($data['country_prices'])){
|
||||
|
|
@ -128,7 +184,6 @@ class ProductRepository extends BaseRepository {
|
|||
'c_price_old' => isset($data['c_price_old'][$country_id]) ? reFormatNumber($data['c_price_old'][$country_id]) : null,
|
||||
'c_currency' => isset($data['c_currency'][$country_id]) ? reFormatNumber($data['c_currency'][$country_id]) : null,
|
||||
]);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -156,6 +211,7 @@ class ProductRepository extends BaseRepository {
|
|||
foreach ($model->attributes as $attribute){
|
||||
ProductAttribute::create([
|
||||
'product_id' => $this->model->id,
|
||||
'type_id' => $this->model->attribute_type_id,
|
||||
'attribute_id' => $attribute->attribute_id,
|
||||
]);
|
||||
}
|
||||
|
|
@ -182,30 +238,26 @@ class ProductRepository extends BaseRepository {
|
|||
'images/product/'.$this->model->id.'/'.$name
|
||||
);
|
||||
|
||||
|
||||
ProductImage::create([
|
||||
'product_id' => $this->model->id,
|
||||
'type' => $image->type,
|
||||
'filename' => $name,
|
||||
'original_name' => $image->original_name,
|
||||
'ext' => $image->ext,
|
||||
'mine' => $image->mine,
|
||||
'size' => $image->size
|
||||
'size' => $image->size,
|
||||
'attributes' => $image->attributes
|
||||
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
return $this->model;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public function delete()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue