<commit_before><?php

abstract class Mouvement extends acCouchdbDocumentTree
{
    const TYPE_HASH_CONTRAT_VRAC = 'vrac_details';
    const TYPE_HASH_CONTRAT_RAISIN = VracClient::TYPE_TRANSACTION_RAISINS;
    const TYPE_HASH_CONTRAT_MOUT = VracClient::TYPE_TRANSACTION_MOUTS;

    public function setProduitHash($value) {
        $this->_set('produit_hash',  $value);
        $this->produit_libelle = $this->getProduitConfig()->getLibelleFormat(array(), "%g% %a% %m% %l% %co% %ce%");
    }

    public function facturer() {
        $this->facture = 1;
    }

    public function defacturer() {
        $this->facture = 0;
    }

    public function getMD5Key() {
        $key = $this->getDocument()->identifiant . $this->produit_hash . $this->type_hash . $this->detail_identifiant;
        if ($this->detail_identifiant)
            $key.= uniqid();
        
        return md5($key);
    }

    public function isFacturable() {        
        return $this->facturable;
    }

    public function setVolume($v) {
      if ($this->volume === 0 && $v) {
	throw new sfException('PB Facturable : plus capable de savoir si le mouvement est facturable ou non');
      }
      if (!$v)
	$this->facturable = 0;
      return $this->_set('volume', $v);
    }

    public function setCVO($cvo) {
      if ($this->cvo === 0 && $cvo) {
	throw new sfException('PB Facturable : plus capable de savoir si le mouvement est facturable ou non');
      }
      if (!$cvo)
	$this->facturable = 0;
      return $this->_set('cvo', $cvo);
    }

    public function isVrac() {

        return $this->vrac_numero;
    }

    public function getVrac() {

        if (!$this->isVrac()) {
            return null;
        }

        $vrac = VracClient::getInstance()->findByNumContrat($this->vrac_numero);

        if (!$vrac) {

            throw new sfException(sprintf("Le contrat '%s' n'a pas été trouvé", $this->vrac_numero));
        }

        return $vrac;
    }

    public function getProduitConfig() {

       return ConfigurationClient::getCurrent()->get($this->produit_hash);
    }
    
    public function getDocId() {

        return $this->getDocument()->_id;
    }
   

    public function getId() {

        return $this->getDocument()->_id.'/mouvements/'.$this->getKey();
    }

    public function getType() {

        return $this->getDocument()->getType();
    }

    public function getNumeroArchive() {

        return $this->getDocument()->numero_archive;
    }
}<commit_msg>Renvoi le numero d'archive du contrat dans le une sortie vrac d'une drm<commit_after><?php

abstract class Mouvement extends acCouchdbDocumentTree
{
    const TYPE_HASH_CONTRAT_VRAC = 'vrac_details';
    const TYPE_HASH_CONTRAT_RAISIN = VracClient::TYPE_TRANSACTION_RAISINS;
    const TYPE_HASH_CONTRAT_MOUT = VracClient::TYPE_TRANSACTION_MOUTS;

    public function setProduitHash($value) {
        $this->_set('produit_hash',  $value);
        $this->produit_libelle = $this->getProduitConfig()->getLibelleFormat(array(), "%g% %a% %m% %l% %co% %ce%");
    }

    public function facturer() {
        $this->facture = 1;
    }

    public function defacturer() {
        $this->facture = 0;
    }

    public function getMD5Key() {
        $key = $this->getDocument()->identifiant . $this->produit_hash . $this->type_hash . $this->detail_identifiant;
        if ($this->detail_identifiant)
            $key.= uniqid();
        
        return md5($key);
    }

    public function isFacturable() {        
        return $this->facturable;
    }

    public function setVolume($v) {
      if ($this->volume === 0 && $v) {
	throw new sfException('PB Facturable : plus capable de savoir si le mouvement est facturable ou non');
      }
      if (!$v)
	$this->facturable = 0;
      return $this->_set('volume', $v);
    }

    public function setCVO($cvo) {
      if ($this->cvo === 0 && $cvo) {
	throw new sfException('PB Facturable : plus capable de savoir si le mouvement est facturable ou non');
      }
      if (!$cvo)
	$this->facturable = 0;
      return $this->_set('cvo', $cvo);
    }

    public function isVrac() {

        return $this->vrac_numero;
    }

    public function getVrac() {

        if (!$this->isVrac()) {
            return null;
        }

        $vrac = VracClient::getInstance()->findByNumContrat($this->vrac_numero);

        if (!$vrac) {

            throw new sfException(sprintf("Le contrat '%s' n'a pas été trouvé", $this->vrac_numero));
        }

        return $vrac;
    }

    public function getProduitConfig() {

       return ConfigurationClient::getCurrent()->get($this->produit_hash);
    }
    
    public function getDocId() {

        return $this->getDocument()->_id;
    }
   

    public function getId() {

        return $this->getDocument()->_id.'/mouvements/'.$this->getKey();
    }

    public function getType() {

        return $this->getDocument()->getType();
    }

    public function getNumeroArchive() {
        if(!$this->isVrac()) {
            return;
        }

        return $this->detail_libelle;
    }
}
{'fraction_non_alphanumeric': 0.14237623762376236, 'fraction_numerical': 0.0031683168316831685, 'mean_word_length': 2.544561403508772, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 73, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4207597', 'n_tokens_mistral': 1669, 'n_tokens_neox': 1621, 'n_words': 350}