Document.php 2.17 KB
<?php
namespace App\Model\Entity;

use Cake\ORM\Entity;

/**
 * Document Entity.
 *
 * @property int $id
 * @property string $type_doc
 * @property string $chemin
 * @property string $description
 * @property string $nom
 * @property bool $photo
 * @property int $materiel_id
 * @property \App\Model\Entity\Materiel $materiel
 * @property int $suivi_id
 * @property \App\Model\Entity\Suivi $suivi
 * @property int $type_document_id
 * @property \App\Model\Entity\TypeDocument $type_document
 */
class Document extends Entity
{

    /**
     * Fields that can be mass assigned using newEntity() or patchEntity().
     *
     * Note that when '*' is set to true, this allows all unspecified fields to
     * be mass assigned. For security purposes, it is advised to set '*' to false
     * (or remove it), and explicitly make individual fields accessible as needed.
     *
     * @var array
     */
    protected $_accessible = [
        '*' => true,
        'id' => false
    ];
    
    // (EP 20200504)
    // Propriétés virtuelles (attributs virtuels de l'entité)
    // A utiliser dans le controleur ainsi : $materiel->is_devis
    //protected function _getIsCreated() { return $this->_fields['status'] == 'CREATED'; }
    protected function _getIsDevis() { 
        //debug($this);
        /*
        // Ceci permettra des accès du type $document->type_document->nom depuis la vue
        $document = $this->Documents->get($id, [
            'contain' => ['TypeDocuments']
        ])
        $doc_type = $this->Documents->TypeDocuments->get($this->type_document_id)['nom'];
        */
        return strtoupper(trim($this->type_document->nom)) == 'DEVIS';
    }
    
    public function isOfType($doc_type) {
        //debug($doc_type);
        $doc_type_name = 'UNKNOWN';
        switch ($doc_type) {
            case 'DOC_DEVIS': $doc_type_name = 'DEVIS'; break;
            case 'DOC_BC': $doc_type_name = 'BC (BON DE COMMANDE)'; break;
            case 'DOC_BL': $doc_type_name = 'BL (BON DE LIVRAISON)'; break;
            case 'DOC_FACTURE': $doc_type_name = 'FACTURE';
        }
        //debug($doc_type_name); exit;
        return strtoupper(trim($this->type_document->nom)) == $doc_type_name;
    }
}