Clean code. Load thirdparty for correct lang before generating doc

This commit is contained in:
Laurent Destailleur 2020-02-10 00:22:53 +01:00
parent 18d332994f
commit f70dd8ec06
4 changed files with 36 additions and 24 deletions

View File

@ -1365,7 +1365,7 @@ class Propal extends CommonObject
} }
/** /**
* Load a proposal from database and its ligne array * Load a proposal from database. Get also lines.
* *
* @param int $rowid id of object to load * @param int $rowid id of object to load
* @param string $ref Ref of proposal * @param string $ref Ref of proposal
@ -1373,7 +1373,6 @@ class Propal extends CommonObject
*/ */
public function fetch($rowid, $ref = '') public function fetch($rowid, $ref = '')
{ {
$sql = "SELECT p.rowid, p.ref, p.entity, p.remise, p.remise_percent, p.remise_absolue, p.fk_soc"; $sql = "SELECT p.rowid, p.ref, p.entity, p.remise, p.remise_percent, p.remise_absolue, p.fk_soc";
$sql .= ", p.total, p.tva, p.localtax1, p.localtax2, p.total_ht"; $sql .= ", p.total, p.tva, p.localtax1, p.localtax2, p.total_ht";
$sql .= ", p.datec"; $sql .= ", p.datec";
@ -1437,8 +1436,13 @@ class Propal extends CommonObject
$this->total_localtax1 = $obj->localtax1; $this->total_localtax1 = $obj->localtax1;
$this->total_localtax2 = $obj->localtax2; $this->total_localtax2 = $obj->localtax2;
$this->total_ttc = $obj->total; $this->total_ttc = $obj->total;
$this->socid = $obj->fk_soc; $this->socid = $obj->fk_soc;
$this->thirdparty = null; // Clear if another value was already set by fetch_thirdparty
$this->fk_project = $obj->fk_project; $this->fk_project = $obj->fk_project;
$this->project = null; // Clear if another value was already set by fetch_projet
$this->modelpdf = $obj->model_pdf; $this->modelpdf = $obj->model_pdf;
$this->last_main_doc = $obj->last_main_doc; $this->last_main_doc = $obj->last_main_doc;
$this->note = $obj->note_private; // TODO deprecated $this->note = $obj->note_private; // TODO deprecated
@ -1506,9 +1510,7 @@ class Propal extends CommonObject
$this->lines = array(); $this->lines = array();
/* // Lines
* Lines
*/
$result = $this->fetch_lines(); $result = $this->fetch_lines();
if ($result < 0) if ($result < 0)
{ {

View File

@ -1680,7 +1680,7 @@ class Commande extends CommonOrder
/** /**
* Get object and lines from database * Get object from database. Get also lines.
* *
* @param int $id Id of object to load * @param int $id Id of object to load
* @param string $ref Ref of object * @param string $ref Ref of object
@ -1690,7 +1690,6 @@ class Commande extends CommonOrder
*/ */
public function fetch($id, $ref = '', $ref_ext = '', $ref_int = '') public function fetch($id, $ref = '', $ref_ext = '', $ref_int = '')
{ {
// Check parameters // Check parameters
if (empty($id) && empty($ref) && empty($ref_ext) && empty($ref_int)) return -1; if (empty($id) && empty($ref) && empty($ref_ext) && empty($ref_int)) return -1;
@ -1740,7 +1739,13 @@ class Commande extends CommonOrder
$this->ref_customer = $obj->ref_client; $this->ref_customer = $obj->ref_client;
$this->ref_ext = $obj->ref_ext; $this->ref_ext = $obj->ref_ext;
$this->ref_int = $obj->ref_int; $this->ref_int = $obj->ref_int;
$this->socid = $obj->fk_soc; $this->socid = $obj->fk_soc;
$this->thirdparty = null; // Clear if another value was already set by fetch_thirdparty
$this->fk_project = $obj->fk_project;
$this->project = null; // Clear if another value was already set by fetch_projet
$this->statut = $obj->fk_statut; $this->statut = $obj->fk_statut;
$this->user_author_id = $obj->fk_user_author; $this->user_author_id = $obj->fk_user_author;
$this->user_valid = $obj->fk_user_valid; $this->user_valid = $obj->fk_user_valid;
@ -1762,7 +1767,6 @@ class Commande extends CommonOrder
$this->note = $obj->note_private; // deprecated $this->note = $obj->note_private; // deprecated
$this->note_private = $obj->note_private; $this->note_private = $obj->note_private;
$this->note_public = $obj->note_public; $this->note_public = $obj->note_public;
$this->fk_project = $obj->fk_project;
$this->modelpdf = $obj->model_pdf; $this->modelpdf = $obj->model_pdf;
$this->last_main_doc = $obj->last_main_doc; $this->last_main_doc = $obj->last_main_doc;
$this->mode_reglement_id = $obj->fk_mode_reglement; $this->mode_reglement_id = $obj->fk_mode_reglement;
@ -1810,9 +1814,7 @@ class Commande extends CommonOrder
$this->db->free($result); $this->db->free($result);
/* // Lines
* Lines
*/
$result = $this->fetch_lines(); $result = $this->fetch_lines();
if ($result < 0) if ($result < 0)
{ {

View File

@ -1436,7 +1436,7 @@ class Facture extends CommonInvoice
} }
/** /**
* Get object and lines from database * Get object from database. Get also lines.
* *
* @param int $rowid Id of object to load * @param int $rowid Id of object to load
* @param string $ref Reference of invoice * @param string $ref Reference of invoice
@ -1517,7 +1517,13 @@ class Facture extends CommonInvoice
$this->paye = $obj->paye; $this->paye = $obj->paye;
$this->close_code = $obj->close_code; $this->close_code = $obj->close_code;
$this->close_note = $obj->close_note; $this->close_note = $obj->close_note;
$this->socid = $obj->fk_soc; $this->socid = $obj->fk_soc;
$this->thirdparty = null; // Clear if another value was already set by fetch_thirdparty
$this->fk_project = $obj->fk_project;
$this->project = null; // Clear if another value was already set by fetch_projet
$this->statut = $obj->fk_statut; $this->statut = $obj->fk_statut;
$this->date_lim_reglement = $this->db->jdate($obj->dlr); $this->date_lim_reglement = $this->db->jdate($obj->dlr);
$this->mode_reglement_id = $obj->fk_mode_reglement; $this->mode_reglement_id = $obj->fk_mode_reglement;
@ -1528,7 +1534,6 @@ class Facture extends CommonInvoice
$this->cond_reglement = $obj->cond_reglement_libelle; $this->cond_reglement = $obj->cond_reglement_libelle;
$this->cond_reglement_doc = $obj->cond_reglement_libelle_doc; $this->cond_reglement_doc = $obj->cond_reglement_libelle_doc;
$this->fk_account = ($obj->fk_account > 0) ? $obj->fk_account : null; $this->fk_account = ($obj->fk_account > 0) ? $obj->fk_account : null;
$this->fk_project = $obj->fk_project;
$this->fk_facture_source = $obj->fk_facture_source; $this->fk_facture_source = $obj->fk_facture_source;
$this->fk_fac_rec_source = $obj->fk_fac_rec_source; $this->fk_fac_rec_source = $obj->fk_fac_rec_source;
$this->note = $obj->note_private; // deprecated $this->note = $obj->note_private; // deprecated
@ -1574,10 +1579,7 @@ class Facture extends CommonInvoice
// fetch optionals attributes and labels // fetch optionals attributes and labels
$this->fetch_optionals(); $this->fetch_optionals();
/* // Lines
* Lines
*/
$this->lines = array(); $this->lines = array();
$result = $this->fetch_lines(); $result = $this->fetch_lines();

View File

@ -272,6 +272,8 @@ class Paiement extends CommonObject
return -1; return -1;
} }
dol_syslog(get_class($this)."::create insert paiement", LOG_DEBUG);
$this->db->begin(); $this->db->begin();
$this->ref = $this->getNextNumRef(is_object($thirdparty)?$thirdparty:''); $this->ref = $this->getNextNumRef(is_object($thirdparty)?$thirdparty:'');
@ -293,7 +295,6 @@ class Paiement extends CommonObject
$sql = "INSERT INTO ".MAIN_DB_PREFIX."paiement (entity, ref, datec, datep, amount, multicurrency_amount, fk_paiement, num_paiement, note, ext_payment_id, ext_payment_site, fk_user_creat)"; $sql = "INSERT INTO ".MAIN_DB_PREFIX."paiement (entity, ref, datec, datep, amount, multicurrency_amount, fk_paiement, num_paiement, note, ext_payment_id, ext_payment_site, fk_user_creat)";
$sql.= " VALUES (".$conf->entity.", '".$this->db->escape($this->ref)."', '". $this->db->idate($now)."', '".$this->db->idate($this->datepaye)."', ".$total.", ".$mtotal.", ".$this->paiementid.", '".$this->db->escape($num_payment)."', '".$this->db->escape($note)."', ".($this->ext_payment_id?"'".$this->db->escape($this->ext_payment_id)."'":"null").", ".($this->ext_payment_site?"'".$this->db->escape($this->ext_payment_site)."'":"null").", ".$user->id.")"; $sql.= " VALUES (".$conf->entity.", '".$this->db->escape($this->ref)."', '". $this->db->idate($now)."', '".$this->db->idate($this->datepaye)."', ".$total.", ".$mtotal.", ".$this->paiementid.", '".$this->db->escape($num_payment)."', '".$this->db->escape($note)."', ".($this->ext_payment_id?"'".$this->db->escape($this->ext_payment_id)."'":"null").", ".($this->ext_payment_site?"'".$this->db->escape($this->ext_payment_site)."'":"null").", ".$user->id.")";
dol_syslog(get_class($this)."::Create insert paiement", LOG_DEBUG);
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
if ($resql) if ($resql)
{ {
@ -309,7 +310,7 @@ class Paiement extends CommonObject
$sql = 'INSERT INTO '.MAIN_DB_PREFIX.'paiement_facture (fk_facture, fk_paiement, amount, multicurrency_amount)'; $sql = 'INSERT INTO '.MAIN_DB_PREFIX.'paiement_facture (fk_facture, fk_paiement, amount, multicurrency_amount)';
$sql .= ' VALUES ('.$facid.', '. $this->id.', \''.$amount.'\', \''.$this->multicurrency_amounts[$key].'\')'; $sql .= ' VALUES ('.$facid.', '. $this->id.', \''.$amount.'\', \''.$this->multicurrency_amounts[$key].'\')';
dol_syslog(get_class($this).'::Create Amount line '.$key.' insert paiement_facture', LOG_DEBUG); dol_syslog(get_class($this).'::create Amount line '.$key.' insert paiement_facture', LOG_DEBUG);
$resql=$this->db->query($sql); $resql=$this->db->query($sql);
if ($resql) if ($resql)
{ {
@ -409,9 +410,14 @@ class Paiement extends CommonObject
// Regenerate documents of invoices // Regenerate documents of invoices
if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE))
{ {
dol_syslog(get_class($this).'::create Regenerate the document after inserting payment for thirdparty default_lang='.(is_object($invoice->thirdparty) ? $invoice->thirdparty->default_lang : 'null'), LOG_DEBUG);
$newlang=''; $newlang='';
$outputlangs = $langs; $outputlangs = $langs;
if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang = $invoice->thirdparty->default_lang; if ($conf->global->MAIN_MULTILANGS && empty($newlang)) {
$invoice->fetch_thirdparty();
$newlang = $invoice->thirdparty->default_lang;
}
if (! empty($newlang)) { if (! empty($newlang)) {
$outputlangs = new Translate("", $conf); $outputlangs = new Translate("", $conf);
$outputlangs->setDefaultLang($newlang); $outputlangs->setDefaultLang($newlang);