• File: MonthClose.php
  • Full Path: /var/www/sandbox/app/MonthClose.php
  • Date Modified: 04/15/2024 8:53 PM
  • File size: 1.88 KB
  • MIME-type: text/x-php
  • Charset: utf-8
<?php

namespace App;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Spatie\Activitylog\LogOptions;
use Spatie\Activitylog\Traits\LogsActivity;
use DateTimeInterface;

setlocale(LC_TIME, 'pt');

class MonthClose extends Model
{
    use HasFactory;
    use LogsActivity;

    protected $fillable = ['transaction', 'date_reference', 'voucher_phone', 'voucher_tv', 'voucher_water', 'voucher_credelec', 'payment', 'transfer', 'total', 'status', 'user_id'];

    protected static $logAttributes = ['transaction', 'date_reference', 'voucher_phone', 'voucher_tv', 'voucher_water', 'voucher_credelec', 'payment', 'transfer', 'total', 'status', 'user_id'];
    protected $logAttribute = ['transaction', 'date_reference', 'voucher_phone', 'voucher_tv', 'voucher_water', 'voucher_credelec', 'payment', 'transfer', 'total', 'status', 'user_id'];

    public function getDescriptionForEvent(string $eventName): string
    {
        return "This model has been {$eventName}";
    }

    protected function serializeDate(DateTimeInterface $date)
    {
        return $date->format('d-m-Y H:i:s');
    }

    public function getDateReferenceAttribute($value)
    {
//        return date("D, d M Y", strtotime($value));
//        setlocale(LC_TIME, 'pt_BR', 'pt_BR.utf-8', 'pt_BR.utf-8', 'portuguese');


//        setlocale(LC_TIME, 'pt_BR', 'pt_BR.utf-8', 'pt_BR.utf-8', 'portuguese');
//        date_default_timezone_set('America/Sao_Paulo');

//        return date("M Y", strtotime($value));
//        return date("F Y", strtotime($value));
//        \Carbon\Carbon::setLocale('America/Sao_Paulo');
//        echo $date_to_show_in_view = $base_weight_category->created_at->diffForHumans();


        return date("F Y", strtotime($value));
    }

    public function getActivitylogOptions(): LogOptions
    {
        return LogOptions::defaults()->logOnly($this->logAttribute);
    }
}