category->Local_ID; } public function getArticleOptionsAttribute(){ $options = json_decode($this->options); $options->{"Conditionement"} = ""; return $options; } public function category(){ return $this->belongsTo(Category::class,'categorie_id'); } public function store(){ return $this->belongsTo(Store::class); } public function user(){ return $this->belongsTo(User::class); } public static function saveFromSyncArray($data){ foreach($data as $item){ $article = self::where('matricule', $item->Matricule) ->where('nom', $item->Nom) ->first(); if(!$article) $article = new Article(); $article->saveFromSync($item); } } public function saveFromSync($item){ $storeUser = StoreUsers::first(); $options = [ "PrixVente" => $item->PrixVente, "Conditionement" => $item->Conditionement ?? "", "QteMAx" => $item->QteMAx, "QteMin" => $item->QteMin, "QuantiteHS" => $item->QuantiteHS ?? 0, "DefulteTVA" => $item->DefulteTVA ?? "", "IsDisplayedOnNet" => $item->IsDisplayedOnNet ?? false, "AvecEMI" => $item->AvecEMI ?? false, "IsOld" => $item->IsOld ?? false, "Garantie" => $item->Garantie ?? false, "Grade" => $item->Grade ?? "", "IsService" => $item->IsService ?? false ]; $this->matricule = $item->Matricule; $this->nom = $item->Nom; $this->store_id = $storeUser->store_id; $this->user_id = $storeUser->user_id; $this->categorie_id = Category::where('Local_ID', $item->idCategorie)->first()->id ?? 1; $this->information = null; $this->options = json_encode((array)$options); $this->composition = null; $this->save(); if(str_contains($item->Matricule, "SUPP_")) $this->delete(); } public static function addArrayComposition($data){ foreach($data as $item){ $article = self::where(["matricule" => $item->MatriculeEnfant])->first(); if($article) $article->addComposition($item); } } public function addComposition($item){ $composition = json_decode($this->composition); $options = [ "qte" => $item->Qte, "article_id" => $item->MatriculePere, "prix" => $item->Prix, ]; if($this->composition != null) $composition = array_prepend((array)$composition, $options); else $composition = $options; $this->update([ "composition" => json_encode((array)$composition) ]); } }