diff --git a/htdocs/expensereport/card.php b/htdocs/expensereport/card.php index 5b7045fd628..4eabd0ea765 100755 --- a/htdocs/expensereport/card.php +++ b/htdocs/expensereport/card.php @@ -1558,7 +1558,12 @@ else // Sélection TVA print ''; - print $form->load_tva('fk_c_tva', (isset($_POST["fk_c_tva"])?$_POST["fk_c_tva"]:-1), $mysoc, ''); + $defaultvat=-1; + if (! empty($conf->global->DEPLACEMENT_NO_DEFAULT_VAT)) $conf->global->MAIN_VAT_DEFAULT_IF_AUTODETECT_FAILS = 'none'; + print ''; print ''; // Prix unitaire diff --git a/htdocs/expensereport/class/expensereport.class.php b/htdocs/expensereport/class/expensereport.class.php index f5ff354ffbc..ee8555a6e69 100755 --- a/htdocs/expensereport/class/expensereport.class.php +++ b/htdocs/expensereport/class/expensereport.class.php @@ -397,9 +397,11 @@ class ExpenseReport extends CommonObject /** + * fetch_line_by_project * - * @param unknown_type $projectid - * @param unknown_type $user + * @param int $projectid Project id + * @param User $user User + * @return int <0 if KO, >0 if OK */ function fetch_line_by_project($projectid,$user='') { @@ -500,7 +502,14 @@ class ExpenseReport extends CommonObject } - function recalculer($id){ + /** + * recalculer + * + * @param int $id + * @return int <0 if KO, >0 if OK + */ + function recalculer($id) + { $sql = 'SELECT tt.total_ht, tt.total_ttc, tt.total_tva'; $sql.= ' FROM '.MAIN_DB_PREFIX.$this->table_element_line.' as tt'; $sql.= ' WHERE tt.'.$this->fk_element.' = '.$id; @@ -510,7 +519,8 @@ class ExpenseReport extends CommonObject dol_syslog('ExpenseReport::recalculer sql='.$sql,LOG_DEBUG); $result = $this->db->query($sql); - if($result): + if($result) + { $num = $this->db->num_rows($result); $i = 0; while ($i < $num): @@ -535,13 +545,20 @@ class ExpenseReport extends CommonObject dol_syslog('ExpenseReport::recalculer: Error '.$this->error,LOG_ERR); return -3; endif; - else: + } + else + { $this->error=$this->db->error(); dol_syslog('ExpenseReport::recalculer: Error '.$this->error,LOG_ERR); return -3; - endif; + } } + /** + * fetch_lines + * + * @return int <0 if OK, >0 if KO + */ function fetch_lines() { $sql = ' SELECT de.rowid, de.comments, de.qty, de.value_unit, de.date,'; @@ -602,11 +619,18 @@ class ExpenseReport extends CommonObject } } + + /** + * delete + * + * @param int $rowid Id to delete (optional) + * @return int <0 if KO, >0 if OK + */ function delete($rowid=0) { global $user,$langs,$conf; - if (!$rowid) $rowid=$this->id; + if (! $rowid) $rowid=$this->id; $sql = 'DELETE FROM '.MAIN_DB_PREFIX.$this->table_element_line.' WHERE '.$this->fk_element.' = '.$rowid; if ($this->db->query($sql)) @@ -635,7 +659,14 @@ class ExpenseReport extends CommonObject } } - function set_save($user){ + /** + * set_save + * + * @param User $user User + * @return int <0 if KO, >0 if OK + */ + function set_save($user) + { global $conf,$langs; $expld_car = (empty($conf->global->NDF_EXPLODE_CHAR))?"-":$conf->global->NDF_EXPLODE_CHAR; @@ -655,11 +686,13 @@ class ExpenseReport extends CommonObject $this->date_debut = $expld_date_debut[0].$expld_date_debut[1].$expld_date_debut[2]; // Création du ref_number suivant - if($ref_next): + if($ref_next) + { $this->ref_number = strtoupper($user->login).$expld_car."NDF".$this->ref_number.$expld_car.$this->date_debut; - endif; + } - if ($this->fk_c_expensereport_statuts != 2): + if ($this->fk_c_expensereport_statuts != 2) + { $sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element; $sql.= " SET ref_number = '".$this->ref_number."', fk_c_expensereport_statuts = 2"; $sql.= " ,ref_number_int = $ref_number_int"; @@ -667,21 +700,30 @@ class ExpenseReport extends CommonObject dol_syslog(get_class($this)."::set_save sql=".$sql, LOG_DEBUG); - if ($this->db->query($sql)): + if ($this->db->query($sql)) + { return 1; - else: + } + else + { $this->error=$this->db->error(); return -1; - endif; - - else: - + } + } + else + { dol_syslog(get_class($this)."::set_save expensereport already with save status", LOG_WARNING); - - endif; + } } - function set_save_from_refuse($user){ + /** + * set_to_validate + * + * @param User $user User + * @return int <0 if KO, >0 if OK + */ + function set_save_from_refuse($user) + { global $conf,$langs; // Sélection de la date de début de la NDF @@ -697,31 +739,42 @@ class ExpenseReport extends CommonObject $expld_date_debut = explode("-",$this->date_debut); $this->date_debut = $expld_date_debut[0].$expld_date_debut[1].$expld_date_debut[2]; - if ($this->fk_c_expensereport_statuts != 2): + if ($this->fk_c_expensereport_statuts != 2) + { $sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element; $sql.= " SET fk_c_expensereport_statuts = 2"; $sql.= ' WHERE rowid = '.$this->id; dol_syslog(get_class($this)."::set_save_from_refuse sql=".$sql, LOG_DEBUG); - if ($this->db->query($sql)): + if ($this->db->query($sql)) + { return 1; - else: - $this->error=$this->db->error(); + } + else + { + $this->error=$this->db->lasterror(); return -1; - endif; - - else: - + } + } + else + { dol_syslog(get_class($this)."::set_save_from_refuse expensereport already with save status", LOG_WARNING); - - endif; + } } - function set_valide($user){ + /** + * set_valide + * + * @param User $user User + * @return int <0 if KO, >0 if OK + */ + function set_valide($user) + { // date de validation $this->date_valide = $this->db->idate(gmmktime()); - if ($this->fk_c_expensereport_statuts != 5): + if ($this->fk_c_expensereport_statuts != 5) + { $sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element; $sql.= " SET ref_number = '".$this->ref_number."', fk_c_expensereport_statuts = 5, fk_user_valid = ".$user->id; $sql.= ', date_valide='.$this->date_valide; @@ -735,13 +788,15 @@ class ExpenseReport extends CommonObject $this->error=$this->db->error(); return -1; endif; - else: + } + else + { dol_syslog(get_class($this)."::set_valide expensereport already with valide status", LOG_WARNING); - endif; + } } /** - * Refuse + * set_refuse * * @param User $user User * @param Details $details Details @@ -750,7 +805,8 @@ class ExpenseReport extends CommonObject { // date de refus $this->date_refuse = $this->db->idate(gmmktime()); - if ($this->fk_c_expensereport_statuts != 99): + if ($this->fk_c_expensereport_statuts != 99) + { $sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element; $sql.= " SET ref_number = '".$this->ref_number."', fk_c_expensereport_statuts = 99, fk_user_refuse = ".$user->id; $sql.= ', date_refuse='.$this->date_refuse; @@ -765,14 +821,24 @@ class ExpenseReport extends CommonObject $this->error=$this->db->error(); return -1; endif; - else: + } + else + { dol_syslog(get_class($this)."::set_refuse expensereport already with refuse status", LOG_WARNING); - endif; + } } - function set_paid($user){ + /** + * set_paid + * + * @param User $user User + * @return int <0 if KO, >0 if OK + */ + function set_paid($user) + { $this->date_paiement = $this->db->idate(gmmktime()); - if ($this->fk_c_expensereport_statuts != 6): + if ($this->fk_c_expensereport_statuts != 6) + { $sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element; $sql.= " SET fk_c_expensereport_statuts = 6, fk_user_paid = ".$user->id; $sql.= ', date_paiement='.$this->date_paiement; @@ -780,23 +846,34 @@ class ExpenseReport extends CommonObject dol_syslog(get_class($this)."::set_paid sql=".$sql, LOG_DEBUG); - if ($this->db->query($sql)): + if ($this->db->query($sql)) + { return 1; - else: + } + else + { $this->error=$this->db->error(); return -1; - endif; - else: + } + } + else + { dol_syslog(get_class($this)."::set_paid expensereport already with paid status", LOG_WARNING); - endif; + } } + /** + * set_unpaid + * + * @param User $user User + * @return int <0 if KO, >0 if OK + */ function set_unpaid($user) { - if ($this->fk_c_expensereport_statuts != 5) + if ($this->fk_c_deplacement_statuts != 5) { $sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element; - $sql.= " SET fk_c_expensereport_statuts = 5"; + $sql.= " SET fk_c_deplacement_statuts = 5"; $sql.= ' WHERE rowid = '.$this->id; dol_syslog(get_class($this)."::set_unpaid sql=".$sql, LOG_DEBUG); @@ -810,16 +887,22 @@ class ExpenseReport extends CommonObject } else { - dol_syslog(get_class($this)."::set_unpaid expensereport already with unpaid status", LOG_WARNING); + dol_syslog(get_class($this)."::set_unpaid deplacement already with unpaid status", LOG_WARNING); } } + /** + * set_draft + * + * @param User $user User + * @return int <0 if KO, >0 if OK + */ function set_draft($user) { - if ($this->fk_c_expensereport_statuts != 1) + if ($this->fk_c_deplacement_statuts != 1) { $sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element; - $sql.= " SET fk_c_expensereport_statuts = 1,"; + $sql.= " SET fk_c_deplacement_statuts = 1,"; //$sql.= " , ref_number = '(PROV".$this->id.")', ref_number_int = 0"; $sql.= " ref_number_int = 0"; $sql.= ' WHERE rowid = '.$this->id; @@ -835,53 +918,80 @@ class ExpenseReport extends CommonObject } else { - dol_syslog(get_class($this)."::set_draft expensereport already with draft status", LOG_WARNING); + dol_syslog(get_class($this)."::set_draft deplacement already with draft status", LOG_WARNING); } } + /** + * set_to_validate + * + * @param User $user User + * @return int <0 if KO, >0 if OK + */ function set_to_valide($user) { - if ($this->fk_c_expensereport_statuts != 2): + if ($this->fk_c_expensereport_statuts != 2) + { $sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element; $sql.= " SET fk_c_expensereport_statuts = 2, fk_user_validator = ".$this->fk_user_validator; $sql.= ' WHERE rowid = '.$this->id; dol_syslog(get_class($this)."::set_to_valide sql=".$sql, LOG_DEBUG); - if ($this->db->query($sql)): + if ($this->db->query($sql)) + { return 1; - else: + } + else + { $this->error=$this->db->error(); return -1; - endif; - else: + } + } + else + { dol_syslog(get_class($this)."::set_to_valide expensereport already with to-valide status", LOG_WARNING); - endif; + } } - function set_cancel($user,$detail){ + /** + * set_cancel + * + * @param User $user User + * @param string $detail Detail + * @return int <0 if KO, >0 if OK + */ + function set_cancel($user,$detail) + { $this->date_cancel = $this->db->idate(gmmktime()); - if ($this->fk_c_expensereport_statuts != 4): + if ($this->fk_c_expensereport_statuts != 4) + { $sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element; $sql.= " SET fk_c_expensereport_statuts = 4, fk_user_cancel = ".$user->id; $sql.= ', date_cancel='.$this->date_cancel; - $sql.= " ,detail_cancel='".addslashes($detail)."'"; + $sql.= " ,detail_cancel='".$this->db->escape($detail)."'"; $sql.= ' WHERE rowid = '.$this->id; dol_syslog(get_class($this)."::set_cancel sql=".$sql, LOG_DEBUG); - if ($this->db->query($sql)): + if ($this->db->query($sql)) + { return 1; - else: + } + else + { $this->error=$this->db->error(); return -1; - endif; - else: + } + } + else + { dol_syslog(get_class($this)."::set_cancel expensereport already with cancel status", LOG_WARNING); - endif; + } } - function getNextNumRef(){ + function getNextNumRef() + { global $conf; $expld_car = (empty($conf->global->NDF_EXPLODE_CHAR))?"-":$conf->global->NDF_EXPLODE_CHAR;