details)); } public function getDateeAttribute() { return Carbon::parse($this->date_)->format('Y-m-d'); } /** * Relationships */ public function user() { return $this->belongsTo(User::class); } public function client() { return $this->belongsTo(client::class); } public static function syncFromArray($data) { $sortiestocks = []; foreach ($data as $item) { $sortieStock = self::where(["numsortie" => $item->numSortie])->first(); if (!$sortieStock) $sortieStock = new SortieStock(); $sortieStock->saveFromSync($item); } } public function saveFromSync($item) { $storeUser = StoreUsers::first(); $this->numsortie = $item->numSortie; $this->numdocument = $item->numDocument ?? NULL; $this->type = $item->Type; $this->montant = $item->Montant; $options = [ 'Etat' => $item->Etat, 'User_' => $item->User_, 'Vendeur' => $item->Vendeur, ]; $this->options = json_encode((array) $options); $this->client_id = isset($item->Client) ? (Client::where('numclient', $item->Client)->first()->id ?? NULL) : NULL; $this->user_id = $storeUser->user_id; $this->store_id = $storeUser->store_id; $this->date_ = Carbon::parse($item->Date_); $this->save(); $this->addDetails($item); } public function addDetails($item) { $details = json_decode($this->details); $options = [ "Matricule" => $item->Matricule, "Quantite" => $item->Quantite, "Remise" => $item->Remise, "TVA" => $item->TVA, "PrixTTC" => $item->PrixTTC, "ID_Depot" => $item->ID_Depot, ]; $details = array_prepend((array) $details, $options); $this->update([ "details" => json_encode((array) $details) ]); } }