Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop
This commit is contained in:
commit
1c99eaedbc
@ -1749,7 +1749,7 @@ class Adherent extends CommonObject
|
||||
|
||||
if (!$error) {
|
||||
// Set invoice as paid
|
||||
$invoice->set_paid($user);
|
||||
$invoice->setPaid($user);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -319,7 +319,7 @@ switch ($action)
|
||||
&& $obj_facturation->getSetPaymentMode() != 'DIFF')
|
||||
{
|
||||
// We set status to paid
|
||||
$result = $invoice->set_paid($user);
|
||||
$result = $invoice->setPaid($user);
|
||||
//print 'set paid';exit;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1630,7 +1630,7 @@ class Propal extends CommonObject
|
||||
$sql .= " fk_input_reason=".(isset($this->demand_reason_id) ? $this->demand_reason_id : "null").",";
|
||||
$sql .= " note_private=".(isset($this->note_private) ? "'".$this->db->escape($this->note_private)."'" : "null").",";
|
||||
$sql .= " note_public=".(isset($this->note_public) ? "'".$this->db->escape($this->note_public)."'" : "null").",";
|
||||
$sql .= " model_pdf=".(isset($this->modelpdf) ? "'".$this->db->escape($this->modelpdf)."'" : "null").",";
|
||||
$sql .= " model_pdf=".(isset($this->model_pdf) ? "'".$this->db->escape($this->model_pdf)."'" : "null").",";
|
||||
$sql .= " import_key=".(isset($this->import_key) ? "'".$this->db->escape($this->import_key)."'" : "null")."";
|
||||
$sql .= " WHERE rowid=".$this->id;
|
||||
|
||||
|
||||
@ -501,7 +501,7 @@ if (empty($reshook))
|
||||
setEventMessages($object->error, $object->errors, 'errors');
|
||||
}
|
||||
} elseif ($action == 'setremise' && $usercancreate) {
|
||||
$result = $object->set_remise($user, GETPOST('remise'));
|
||||
$result = $object->setDiscount($user, GETPOST('remise'));
|
||||
if ($result < 0)
|
||||
{
|
||||
setEventMessages($object->error, $object->errors, 'errors');
|
||||
@ -607,7 +607,7 @@ if (empty($reshook))
|
||||
setEventMessages($object->error, $object->errors, 'errors');
|
||||
}
|
||||
} elseif ($action == 'setremisepercent' && $usercancreate) {
|
||||
$result = $object->set_remise($user, price2num(GETPOST('remise_percent'), 2));
|
||||
$result = $object->setDiscount($user, price2num(GETPOST('remise_percent'), 2));
|
||||
} elseif ($action == 'setremiseabsolue' && $usercancreate) {
|
||||
$result = $object->set_remise_absolue($user, price2num(GETPOST('remise_absolue'), 'MU'));
|
||||
} elseif ($action == 'addline' && GETPOST('submitforalllines', 'alpha') && GETPOST('vatforalllines', 'alpha')) {
|
||||
|
||||
@ -2359,6 +2359,8 @@ class Commande extends CommonOrder
|
||||
/**
|
||||
* Applique une remise relative
|
||||
*
|
||||
* @deprecated
|
||||
* @see setDiscount()
|
||||
* @param User $user User qui positionne la remise
|
||||
* @param float $remise Discount (percent)
|
||||
* @param int $notrigger 1=Does not execute triggers, 0= execute triggers
|
||||
@ -2367,6 +2369,20 @@ class Commande extends CommonOrder
|
||||
public function set_remise($user, $remise, $notrigger = 0)
|
||||
{
|
||||
// phpcs:enable
|
||||
dol_syslog(get_class($this)."::set_remise is deprecated, use setDiscount instead", LOG_NOTICE);
|
||||
return $this->setDiscount($user, $remise, $notrigger);
|
||||
}
|
||||
|
||||
/**
|
||||
* Applique une remise relative
|
||||
*
|
||||
* @param User $user User qui positionne la remise
|
||||
* @param float $remise Discount (percent)
|
||||
* @param int $notrigger 1=Does not execute triggers, 0= execute triggers
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
public function setDiscount($user, $remise, $notrigger = 0)
|
||||
{
|
||||
$remise = trim($remise) ?trim($remise) : 0;
|
||||
|
||||
if ($user->rights->commande->creer)
|
||||
@ -3271,7 +3287,7 @@ class Commande extends CommonOrder
|
||||
$sql .= " fk_input_reason=".($this->demand_reason_id > 0 ? $this->demand_reason_id : "null").",";
|
||||
$sql .= " note_private=".(isset($this->note_private) ? "'".$this->db->escape($this->note_private)."'" : "null").",";
|
||||
$sql .= " note_public=".(isset($this->note_public) ? "'".$this->db->escape($this->note_public)."'" : "null").",";
|
||||
$sql .= " model_pdf=".(isset($this->modelpdf) ? "'".$this->db->escape($this->modelpdf)."'" : "null").",";
|
||||
$sql .= " model_pdf=".(isset($this->model_pdf) ? "'".$this->db->escape($this->model_pdf)."'" : "null").",";
|
||||
$sql .= " import_key=".(isset($this->import_key) ? "'".$this->db->escape($this->import_key)."'" : "null")."";
|
||||
|
||||
$sql .= " WHERE rowid=".$this->id;
|
||||
@ -3921,7 +3937,7 @@ class Commande extends CommonOrder
|
||||
|
||||
if (!empty($this->model_pdf)) {
|
||||
$modele = $this->model_pdf;
|
||||
} elseif (!empty($this->modelpdf)) { // dperecated
|
||||
} elseif (!empty($this->modelpdf)) { // deprecated
|
||||
$modele = $this->modelpdf;
|
||||
} elseif (!empty($conf->global->COMMANDE_ADDON_PDF)) {
|
||||
$modele = $conf->global->COMMANDE_ADDON_PDF;
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
* Copyright (C) 2013 Cédric Salvador <csalvador@gpcsolutions.fr>
|
||||
* Copyright (C) 2014-2019 Ferran Marcet <fmarcet@2byte.es>
|
||||
* Copyright (C) 2015-2016 Marcos García <marcosgdf@gmail.com>
|
||||
* Copyright (C) 2018-2019 Frédéric France <frederic.france@netlogic.fr>
|
||||
* Copyright (C) 2018-2021 Frédéric France <frederic.france@netlogic.fr>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -193,7 +193,7 @@ if (empty($reshook))
|
||||
$result = $object->fetch($id);
|
||||
|
||||
if ($object->statut == Facture::STATUS_CLOSED || ($object->statut == Facture::STATUS_ABANDONED && ($object->close_code != 'replaced' || $object->getIdReplacingInvoice() == 0)) || ($object->statut == Facture::STATUS_VALIDATED && $object->paye == 1)) { // ($object->statut == 1 && $object->paye == 1) should not happened but can be found when data are corrupted
|
||||
$result = $object->set_unpaid($user);
|
||||
$result = $object->setUnpaid($user);
|
||||
if ($result > 0) {
|
||||
header('Location: '.$_SERVER["PHP_SELF"].'?facid='.$id);
|
||||
exit();
|
||||
@ -483,7 +483,7 @@ if (empty($reshook))
|
||||
$result = $object->setBankAccount(GETPOST('fk_account', 'int'));
|
||||
} elseif ($action == 'setremisepercent' && $usercancreate) {
|
||||
$object->fetch($id);
|
||||
$result = $object->set_remise($user, price2num(GETPOST('remise_percent'), 2));
|
||||
$result = $object->setDiscount($user, price2num(GETPOST('remise_percent'), 2));
|
||||
} elseif ($action == "setabsolutediscount" && $usercancreate) {
|
||||
// POST[remise_id] or POST[remise_id_for_payment]
|
||||
|
||||
@ -747,7 +747,7 @@ if (empty($reshook))
|
||||
elseif ($action == 'confirm_paid' && $confirm == 'yes' && $usercanissuepayment)
|
||||
{
|
||||
$object->fetch($id);
|
||||
$result = $object->set_paid($user);
|
||||
$result = $object->setPaid($user);
|
||||
if ($result < 0) setEventMessages($object->error, $object->errors, 'errors');
|
||||
} // Classif "paid partialy"
|
||||
elseif ($action == 'confirm_paid_partially' && $confirm == 'yes' && $usercanissuepayment)
|
||||
@ -756,7 +756,7 @@ if (empty($reshook))
|
||||
$close_code = GETPOST("close_code", 'restricthtml');
|
||||
$close_note = GETPOST("close_note", 'restricthtml');
|
||||
if ($close_code) {
|
||||
$result = $object->set_paid($user, $close_code, $close_note);
|
||||
$result = $object->setPaid($user, $close_code, $close_note);
|
||||
if ($result < 0) setEventMessages($object->error, $object->errors, 'errors');
|
||||
} else {
|
||||
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Reason")), null, 'errors');
|
||||
@ -767,7 +767,7 @@ if (empty($reshook))
|
||||
$close_code = GETPOST("close_code", 'restricthtml');
|
||||
$close_note = GETPOST("close_note", 'restricthtml');
|
||||
if ($close_code) {
|
||||
$result = $object->set_canceled($user, $close_code, $close_note);
|
||||
$result = $object->setCanceled($user, $close_code, $close_note);
|
||||
if ($result < 0) setEventMessages($object->error, $object->errors, 'errors');
|
||||
} else {
|
||||
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Reason")), null, 'errors');
|
||||
@ -921,7 +921,7 @@ if (empty($reshook))
|
||||
{
|
||||
if ($object->type != Facture::TYPE_DEPOSIT) {
|
||||
// Classe facture
|
||||
$result = $object->set_paid($user);
|
||||
$result = $object->setPaid($user);
|
||||
if ($result >= 0)
|
||||
{
|
||||
$db->commit();
|
||||
|
||||
@ -910,7 +910,7 @@ class Invoices extends DolibarrApi
|
||||
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
|
||||
}
|
||||
|
||||
$result = $this->invoice->set_paid(DolibarrApiAccess::$user, $close_code, $close_note);
|
||||
$result = $this->invoice->setPaid(DolibarrApiAccess::$user, $close_code, $close_note);
|
||||
if ($result == 0) {
|
||||
throw new RestException(304, 'Error nothing done. May be object is already validated');
|
||||
}
|
||||
@ -960,7 +960,7 @@ class Invoices extends DolibarrApi
|
||||
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
|
||||
}
|
||||
|
||||
$result = $this->invoice->set_unpaid(DolibarrApiAccess::$user);
|
||||
$result = $this->invoice->setUnpaid(DolibarrApiAccess::$user);
|
||||
if ($result == 0) {
|
||||
throw new RestException(304, 'Nothing done');
|
||||
}
|
||||
@ -1167,7 +1167,7 @@ class Invoices extends DolibarrApi
|
||||
{
|
||||
if ($this->invoice->type != Facture::TYPE_DEPOSIT) {
|
||||
// Classe facture
|
||||
$result = $this->invoice->set_paid(DolibarrApiAccess::$user);
|
||||
$result = $this->invoice->setPaid(DolibarrApiAccess::$user);
|
||||
if ($result >= 0)
|
||||
{
|
||||
$this->db->commit();
|
||||
|
||||
@ -280,7 +280,7 @@ class FactureRec extends CommonInvoice
|
||||
$sql .= ", ".(!empty($facsrc->remise) ? $this->remise : '0');
|
||||
$sql .= ", ".(!empty($this->note_private) ? ("'".$this->db->escape($this->note_private)."'") : "NULL");
|
||||
$sql .= ", ".(!empty($this->note_public) ? ("'".$this->db->escape($this->note_public)."'") : "NULL");
|
||||
$sql .= ", ".(!empty($this->modelpdf) ? ("'".$this->db->escape($this->modelpdf)."'") : "NULL");
|
||||
$sql .= ", ".(!empty($this->model_pdf) ? ("'".$this->db->escape($this->model_pdf)."'") : "NULL");
|
||||
$sql .= ", '".$this->db->escape($user->id)."'";
|
||||
$sql .= ", ".(!empty($facsrc->fk_project) ? "'".$this->db->escape($facsrc->fk_project)."'" : "null");
|
||||
$sql .= ", ".(!empty($facsrc->fk_account) ? "'".$this->db->escape($facsrc->fk_account)."'" : "null");
|
||||
@ -347,7 +347,7 @@ class FactureRec extends CommonInvoice
|
||||
{
|
||||
// Extrafields
|
||||
if (method_exists($facsrc->lines[$i], 'fetch_optionals')) {
|
||||
$facsrc->lines[$i]->fetch_optionals($facsrc->lines[$i]->rowid);
|
||||
$facsrc->lines[$i]->fetch_optionals($facsrc->lines[$i]->id);
|
||||
$objectline->array_options = $facsrc->lines[$i]->array_options;
|
||||
}
|
||||
|
||||
@ -562,7 +562,7 @@ class FactureRec extends CommonInvoice
|
||||
$this->note_private = $obj->note_private;
|
||||
$this->note_public = $obj->note_public;
|
||||
$this->user_author = $obj->fk_user_author;
|
||||
$this->modelpdf = $obj->model_pdf; // deprecatd
|
||||
$this->modelpdf = $obj->model_pdf; // deprecated
|
||||
$this->model_pdf = $obj->model_pdf;
|
||||
$this->rang = $obj->rang;
|
||||
$this->special_code = $obj->special_code;
|
||||
@ -1280,9 +1280,8 @@ class FactureRec extends CommonInvoice
|
||||
{
|
||||
// We refresh the object in order to have all necessary data (like date_lim_reglement)
|
||||
$facture->fetch($facture->id);
|
||||
$result = $facture->generateDocument($facturerec->modelpdf, $langs);
|
||||
if ($result <= 0)
|
||||
{
|
||||
$result = $facture->generateDocument($facturerec->model_pdf, $langs);
|
||||
if ($result <= 0) {
|
||||
$this->errors = $facture->errors;
|
||||
$this->error = $facture->error;
|
||||
$error++;
|
||||
@ -1873,7 +1872,7 @@ class FactureRec extends CommonInvoice
|
||||
dol_syslog(get_class($this)."::setModelPdf", LOG_DEBUG);
|
||||
if ($this->db->query($sql))
|
||||
{
|
||||
$this->modelpdf = $model;
|
||||
$this->model_pdf = $model;
|
||||
return 1;
|
||||
} else {
|
||||
dol_print_error($this->db);
|
||||
|
||||
@ -498,7 +498,7 @@ class Facture extends CommonInvoice
|
||||
$this->fk_project = GETPOST('projectid', 'int') > 0 ? ((int) GETPOST('projectid', 'int')) : $_facrec->fk_project;
|
||||
$this->note_public = GETPOST('note_public', 'none') ? GETPOST('note_public', 'restricthtml') : $_facrec->note_public;
|
||||
$this->note_private = GETPOST('note_private', 'none') ? GETPOST('note_private', 'restricthtml') : $_facrec->note_private;
|
||||
$this->modelpdf = GETPOST('model', 'alpha') ? GETPOST('model', 'alpha') : $_facrec->modelpdf;
|
||||
$this->model_pdf = GETPOST('model', 'alpha') ? GETPOST('model', 'alpha') : $_facrec->model_pdf;
|
||||
$this->cond_reglement_id = GETPOST('cond_reglement_id', 'int') > 0 ? ((int) GETPOST('cond_reglement_id', 'int')) : $_facrec->cond_reglement_id;
|
||||
$this->mode_reglement_id = GETPOST('mode_reglement_id', 'int') > 0 ? ((int) GETPOST('mode_reglement_id', 'int')) : $_facrec->mode_reglement_id;
|
||||
$this->fk_account = GETPOST('fk_account') > 0 ? ((int) GETPOST('fk_account')) : $_facrec->fk_account;
|
||||
@ -1062,8 +1062,8 @@ class Facture extends CommonInvoice
|
||||
$facture->note_public = $this->note_public;
|
||||
$facture->note_private = $this->note_private;
|
||||
$facture->ref_client = $this->ref_client;
|
||||
$facture->modelpdf = $this->modelpdf; // deprecated
|
||||
$facture->model_pdf = $this->modelpdf;
|
||||
$facture->modelpdf = $this->model_pdf; // deprecated
|
||||
$facture->model_pdf = $this->model_pdf;
|
||||
$facture->fk_project = $this->fk_project;
|
||||
$facture->cond_reglement_id = $this->cond_reglement_id;
|
||||
$facture->mode_reglement_id = $this->mode_reglement_id;
|
||||
@ -2293,6 +2293,8 @@ class Facture extends CommonInvoice
|
||||
* Tag the invoice as paid completely (if close_code is filled) => this->fk_statut=2, this->paye=1
|
||||
* or partialy (if close_code filled) + appel trigger BILL_PAYED => this->fk_statut=2, this->paye stay 0
|
||||
*
|
||||
* @deprecated
|
||||
* @see setPaid()
|
||||
* @param User $user Object user that modify
|
||||
* @param string $close_code Code renseigne si on classe a payee completement alors que paiement incomplet (cas escompte par exemple)
|
||||
* @param string $close_note Commentaire renseigne si on classe a payee alors que paiement incomplet (cas escompte par exemple)
|
||||
@ -2301,6 +2303,21 @@ class Facture extends CommonInvoice
|
||||
public function set_paid($user, $close_code = '', $close_note = '')
|
||||
{
|
||||
// phpcs:enable
|
||||
dol_syslog(get_class($this)."::set_paid is deprecated, use setPaid instead", LOG_NOTICE);
|
||||
return $this->setPaid($user, $close_code, $close_note);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tag the invoice as paid completely (if close_code is filled) => this->fk_statut=2, this->paye=1
|
||||
* or partialy (if close_code filled) + appel trigger BILL_PAYED => this->fk_statut=2, this->paye stay 0
|
||||
*
|
||||
* @param User $user Object user that modify
|
||||
* @param string $close_code Code renseigne si on classe a payee completement alors que paiement incomplet (cas escompte par exemple)
|
||||
* @param string $close_note Commentaire renseigne si on classe a payee alors que paiement incomplet (cas escompte par exemple)
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
public function setPaid($user, $close_code = '', $close_note = '')
|
||||
{
|
||||
$error = 0;
|
||||
|
||||
if ($this->paye != 1)
|
||||
@ -2352,12 +2369,28 @@ class Facture extends CommonInvoice
|
||||
* Fonction utilisee quand un paiement prelevement est refuse,
|
||||
* ou quand une facture annulee et reouverte.
|
||||
*
|
||||
* @deprecated
|
||||
* @see setUnpaid()
|
||||
* @param User $user Object user that change status
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
public function set_unpaid($user)
|
||||
{
|
||||
// phpcs:enable
|
||||
dol_syslog(get_class($this)."::set_unpaid is deprecated, use setUnpaid instead", LOG_NOTICE);
|
||||
return $this->setUnpaid($user);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tag la facture comme non payee completement + appel trigger BILL_UNPAYED
|
||||
* Fonction utilisee quand un paiement prelevement est refuse,
|
||||
* ou quand une facture annulee et reouverte.
|
||||
*
|
||||
* @param User $user Object user that change status
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
public function setUnpaid($user)
|
||||
{
|
||||
$error = 0;
|
||||
|
||||
$this->db->begin();
|
||||
@ -2399,6 +2432,8 @@ class Facture extends CommonInvoice
|
||||
* Warning, if option to decrease stock on invoice was set, this function does not change stock (it might be a cancel because
|
||||
* of no payment even if merchandises were sent).
|
||||
*
|
||||
* @deprecated
|
||||
* @see setCanceled()
|
||||
* @param User $user Object user making change
|
||||
* @param string $close_code Code of closing invoice (CLOSECODE_REPLACED, CLOSECODE_...)
|
||||
* @param string $close_note Comment
|
||||
@ -2407,8 +2442,23 @@ class Facture extends CommonInvoice
|
||||
public function set_canceled($user, $close_code = '', $close_note = '')
|
||||
{
|
||||
// phpcs:enable
|
||||
dol_syslog(get_class($this)."::set_canceled is deprecated, use setCanceled instead", LOG_NOTICE);
|
||||
return $this->setCanceled($user, $close_code, $close_note);
|
||||
}
|
||||
|
||||
dol_syslog(get_class($this)."::set_canceled rowid=".$this->id, LOG_DEBUG);
|
||||
/**
|
||||
* Tag invoice as canceled, with no payment on it (example for replacement invoice or payment never received) + call trigger BILL_CANCEL
|
||||
* Warning, if option to decrease stock on invoice was set, this function does not change stock (it might be a cancel because
|
||||
* of no payment even if merchandises were sent).
|
||||
*
|
||||
* @param User $user Object user making change
|
||||
* @param string $close_code Code of closing invoice (CLOSECODE_REPLACED, CLOSECODE_...)
|
||||
* @param string $close_note Comment
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
public function setCanceled($user, $close_code = '', $close_note = '')
|
||||
{
|
||||
dol_syslog(get_class($this)."::setCanceled rowid=".$this->id, LOG_DEBUG);
|
||||
|
||||
$this->db->begin();
|
||||
|
||||
@ -2542,7 +2592,7 @@ class Facture extends CommonInvoice
|
||||
return -12;
|
||||
}
|
||||
|
||||
$result = $facreplaced->set_canceled($user, self::CLOSECODE_REPLACED, '');
|
||||
$result = $facreplaced->setCanceled($user, self::CLOSECODE_REPLACED, '');
|
||||
if ($result < 0)
|
||||
{
|
||||
$this->error = $facreplaced->error;
|
||||
@ -3370,8 +3420,8 @@ class Facture extends CommonInvoice
|
||||
}
|
||||
|
||||
$this->line->id = $rowid;
|
||||
$this->line->rowid = $rowid;
|
||||
$this->line->label = $label;
|
||||
$this->line->rowid = $rowid;
|
||||
$this->line->label = $label;
|
||||
$this->line->desc = $desc;
|
||||
$this->line->ref_ext = $ref_ext;
|
||||
$this->line->qty = ($this->type == self::TYPE_CREDIT_NOTE ?abs($qty) : $qty); // For credit note, quantity is always positive and unit price negative
|
||||
@ -3567,6 +3617,8 @@ class Facture extends CommonInvoice
|
||||
/**
|
||||
* Set percent discount
|
||||
*
|
||||
* @deprecated
|
||||
* @see setDiscount()
|
||||
* @param User $user User that set discount
|
||||
* @param double $remise Discount
|
||||
* @param int $notrigger 1=Does not execute triggers, 0= execute triggers
|
||||
@ -3575,6 +3627,20 @@ class Facture extends CommonInvoice
|
||||
public function set_remise($user, $remise, $notrigger = 0)
|
||||
{
|
||||
// phpcs:enable
|
||||
dol_syslog(get_class($this)."::set_remise is deprecated, use setDiscount instead", LOG_NOTICE);
|
||||
return $this->setDiscount($user, $remise, $notrigger);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set percent discount
|
||||
*
|
||||
* @param User $user User that set discount
|
||||
* @param double $remise Discount
|
||||
* @param int $notrigger 1=Does not execute triggers, 0= execute triggers
|
||||
* @return int <0 if ko, >0 if ok
|
||||
*/
|
||||
public function setDiscount($user, $remise, $notrigger = 0)
|
||||
{
|
||||
// Clean parameters
|
||||
if (empty($remise)) $remise = 0;
|
||||
|
||||
@ -3732,7 +3798,7 @@ class Facture extends CommonInvoice
|
||||
}
|
||||
|
||||
if (!empty($addon)) {
|
||||
dol_syslog("Call getNextNumRef with ".$addonConstName." = ".$conf->global->FACTURE_ADDON.", thirdparty=".$soc->nom.", type=".$soc->typent_code, LOG_DEBUG);
|
||||
dol_syslog("Call getNextNumRef with ".$addonConstName." = ".$conf->global->FACTURE_ADDON.", thirdparty=".$soc->name.", type=".$soc->typent_code, LOG_DEBUG);
|
||||
|
||||
$mybool = false;
|
||||
|
||||
|
||||
@ -119,7 +119,7 @@ if ($action == 'confirm_validate' && $confirm == 'yes' && $user->rights->facture
|
||||
$outputlangs->setDefaultLang($_REQUEST['lang_id']);
|
||||
}
|
||||
if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) {
|
||||
$fac->generateDocument($fac->modelpdf, $outputlangs);
|
||||
$fac->generateDocument($fac->model_pdf, $outputlangs);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -788,7 +788,7 @@ class RemiseCheque extends CommonObject
|
||||
{
|
||||
$invoice = new Facture($this->db);
|
||||
$invoice->fetch($obj->fk_facture);
|
||||
$invoice->set_unpaid($user);
|
||||
$invoice->setUnpaid($user);
|
||||
|
||||
$rejectedPayment->amounts[$obj->fk_facture] = price2num($obj->amount) * -1;
|
||||
}
|
||||
|
||||
@ -398,7 +398,7 @@ class Paiement extends CommonObject
|
||||
// Set invoice to paid
|
||||
if (!$error)
|
||||
{
|
||||
$result = $invoice->set_paid($user, '', '');
|
||||
$result = $invoice->setPaid($user, '', '');
|
||||
if ($result < 0)
|
||||
{
|
||||
$this->error = $invoice->error;
|
||||
@ -425,7 +425,7 @@ class Paiement extends CommonObject
|
||||
$outputlangs->setDefaultLang($newlang);
|
||||
}
|
||||
$ret = $invoice->fetch($facid); // Reload to get new records
|
||||
$result = $invoice->generateDocument($invoice->modelpdf, $outputlangs);
|
||||
$result = $invoice->generateDocument($invoice->model_pdf, $outputlangs);
|
||||
if ($result < 0) {
|
||||
setEventMessages($invoice->error, $invoice->errors, 'errors');
|
||||
$error++;
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/* Copyright (C) 2004-2014 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2016-2018 Frédéric France <frederic.france@netlogic.fr>
|
||||
* Copyright (C) 2016-2021 Frédéric France <frederic.france@netlogic.fr>
|
||||
* Copyright (C) 2021 Gauthier VERDOL <gauthier.verdol@atm-consulting.fr>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
@ -111,11 +111,10 @@ if ($action == 'add_payment' || ($action == 'confirm_paiement' && $confirm == 'y
|
||||
$paiement->amounts = $amounts; // Tableau de montant
|
||||
$paiement->paiementtype = GETPOST("paiementtype", 'alphanohtml');
|
||||
$paiement->num_payment = GETPOST("num_payment", 'alphanohtml');
|
||||
$paiement->note = GETPOST("note", 'restricthtml');
|
||||
$paiement->note_private = GETPOST("note", 'restricthtml');
|
||||
$paiement->note = (string) GETPOST("note", 'restricthtml');
|
||||
$paiement->note_private = (string) GETPOST("note", 'restricthtml');
|
||||
|
||||
if (!$error)
|
||||
{
|
||||
if (!$error) {
|
||||
$paymentid = $paiement->create($user, (GETPOST('closepaidvat') == 'on' ? 1 : 0));
|
||||
if ($paymentid < 0)
|
||||
{
|
||||
@ -193,7 +192,7 @@ if ($action == 'create')
|
||||
print '<input type="hidden" name="chid" value="'.$chid.'">';
|
||||
print '<input type="hidden" name="action" value="add_payment">';
|
||||
|
||||
dol_fiche_head('', '');
|
||||
print dol_get_fiche_head('', '');
|
||||
|
||||
print '<table class="border centpercent">';
|
||||
|
||||
@ -208,8 +207,7 @@ if ($action == 'create')
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."payment_vat as p";
|
||||
$sql .= " WHERE p.fk_tva = ".$chid;
|
||||
$resql = $db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
if ($resql) {
|
||||
$obj = $db->fetch_object($resql);
|
||||
$sumpaid = $obj->total;
|
||||
$db->free();
|
||||
@ -248,7 +246,7 @@ if ($action == 'create')
|
||||
|
||||
print '</table>';
|
||||
|
||||
dol_fiche_end();
|
||||
print dol_get_fiche_end();
|
||||
|
||||
/*
|
||||
* Autres charges impayees
|
||||
@ -314,8 +312,7 @@ if ($action == 'create')
|
||||
$totalrecu += $objp->am;
|
||||
$i++;
|
||||
}
|
||||
if ($i > 1)
|
||||
{
|
||||
if ($i > 1) {
|
||||
// Print total
|
||||
print '<tr class="oddeven">';
|
||||
print '<td colspan="2" class="left">'.$langs->trans("Total").':</td>';
|
||||
|
||||
@ -138,13 +138,12 @@ $h++;
|
||||
*/
|
||||
|
||||
|
||||
dol_fiche_head($head, $hselected, $langs->trans("VATPayment"), -1, 'payment');
|
||||
print dol_get_fiche_head($head, $hselected, $langs->trans("VATPayment"), -1, 'payment');
|
||||
|
||||
/*
|
||||
* Deletion confirmation of payment
|
||||
*/
|
||||
if ($action == 'delete')
|
||||
{
|
||||
if ($action == 'delete') {
|
||||
print $form->formconfirm('card.php?id='.$object->id, $langs->trans("DeletePayment"), $langs->trans("ConfirmDeletePayment"), 'confirm_delete', '', 0, 2);
|
||||
}
|
||||
|
||||
@ -213,7 +212,7 @@ print '</table>';
|
||||
|
||||
print '</div>';
|
||||
|
||||
dol_fiche_end();
|
||||
print dol_get_fiche_end();
|
||||
|
||||
|
||||
/*
|
||||
|
||||
@ -375,7 +375,7 @@ class BonPrelevement extends CommonObject
|
||||
dol_syslog(get_class($this)."::set_credite set_paid fac ".$facs[$i]);
|
||||
$fac = new Facture($this->db);
|
||||
$fac->fetch($facs[$i]);
|
||||
$result = $fac->set_paid($user);
|
||||
$result = $fac->setPaid($user);
|
||||
}
|
||||
}
|
||||
|
||||
@ -482,7 +482,7 @@ class BonPrelevement extends CommonObject
|
||||
|
||||
// @TODO Move this after creation of payment
|
||||
if (price2num($alreadypayed + $facs[$i][1], 'MT') == $fac->total_ttc) {
|
||||
$result = $fac->set_paid($user);
|
||||
$result = $fac->setPaid($user);
|
||||
if ($result < 0) {
|
||||
$this->error = $fac->error;
|
||||
$this->errors = $fac->errors;
|
||||
|
||||
@ -184,7 +184,7 @@ class RejetPrelevement
|
||||
//Tag invoice as unpaid
|
||||
dol_syslog("RejetPrelevement::Create set_unpaid fac ".$fac->ref);
|
||||
|
||||
$fac->set_unpaid($user);
|
||||
$fac->setUnpaid($user);
|
||||
|
||||
//TODO: Must be managed by notifications module
|
||||
// Send email to sender of the standing order request
|
||||
|
||||
@ -74,14 +74,14 @@ $object = new ChargeSociales($db);
|
||||
if ($action == 'confirm_paid' && $user->rights->tax->charges->creer && $confirm == 'yes')
|
||||
{
|
||||
$object->fetch($id);
|
||||
$result = $object->set_paid($user);
|
||||
$result = $object->setPaid($user);
|
||||
}
|
||||
|
||||
if ($action == 'reopen' && $user->rights->tax->charges->creer) {
|
||||
$result = $object->fetch($id);
|
||||
if ($object->paye)
|
||||
{
|
||||
$result = $object->set_unpaid($user);
|
||||
$result = $object->setUnpaid($user);
|
||||
if ($result > 0)
|
||||
{
|
||||
header('Location: '.$_SERVER["PHP_SELF"].'?id='.$id);
|
||||
|
||||
@ -432,12 +432,26 @@ class ChargeSociales extends CommonObject
|
||||
/**
|
||||
* Tag social contribution as paid completely
|
||||
*
|
||||
* @param User $user Object user making change
|
||||
* @return int <0 if KO, >0 if OK
|
||||
* @deprecated
|
||||
* @see setPaid()
|
||||
* @param User $user Object user making change
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
public function set_paid($user)
|
||||
{
|
||||
// phpcs:enable
|
||||
dol_syslog(get_class($this)."::set_paid is deprecated, use setPaid instead", LOG_NOTICE);
|
||||
return $this->setPaid($user);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tag social contribution as paid completely
|
||||
*
|
||||
* @param User $user Object user making change
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
public function setPaid($user)
|
||||
{
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."chargesociales SET";
|
||||
$sql .= " paye = 1";
|
||||
$sql .= " WHERE rowid = ".$this->id;
|
||||
@ -450,12 +464,26 @@ class ChargeSociales extends CommonObject
|
||||
/**
|
||||
* Remove tag paid on social contribution
|
||||
*
|
||||
* @param User $user Object user making change
|
||||
* @return int <0 if KO, >0 if OK
|
||||
* @deprecated
|
||||
* @see setUnpaid()
|
||||
* @param User $user Object user making change
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
public function set_unpaid($user)
|
||||
{
|
||||
// phpcs:enable
|
||||
dol_syslog(get_class($this)."::set_unpaid is deprecated, use setUnpaid instead", LOG_NOTICE);
|
||||
return $this->setUnpaid($user);
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove tag paid on social contribution
|
||||
*
|
||||
* @param User $user Object user making change
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
public function setUnpaid($user)
|
||||
{
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."chargesociales SET";
|
||||
$sql .= " paye = 0";
|
||||
$sql .= " WHERE rowid = ".$this->id;
|
||||
|
||||
@ -197,7 +197,7 @@ class PaymentSocialContribution extends CommonObject
|
||||
$remaintopay = price2num($contrib->amount - $paiement - $creditnotes - $deposits, 'MT');
|
||||
if ($remaintopay == 0)
|
||||
{
|
||||
$result = $contrib->set_paid($user);
|
||||
$result = $contrib->setPaid($user);
|
||||
} else dol_syslog("Remain to pay for conrib ".$contribid." not null. We do nothing.");
|
||||
}
|
||||
}
|
||||
|
||||
@ -111,14 +111,14 @@ if ($action == 'setbankaccount' && $user->rights->tax->charges->creer) {
|
||||
if ($action == 'confirm_paid' && $user->rights->tax->charges->creer && $confirm == 'yes')
|
||||
{
|
||||
$object->fetch($id);
|
||||
$result = $object->set_paid($user);
|
||||
$result = $object->setPaid($user);
|
||||
}
|
||||
|
||||
if ($action == 'reopen' && $user->rights->tax->charges->creer) {
|
||||
$result = $object->fetch($id);
|
||||
if ($object->paye)
|
||||
{
|
||||
$result = $object->set_unpaid($user);
|
||||
$result = $object->setUnpaid($user);
|
||||
if ($result > 0)
|
||||
{
|
||||
header('Location: '.$_SERVER["PHP_SELF"].'?id='.$id);
|
||||
|
||||
@ -194,7 +194,7 @@ class PaymentVAT extends CommonObject
|
||||
$remaintopay = price2num($contrib->amount - $paiement - $creditnotes - $deposits, 'MT');
|
||||
if ($remaintopay == 0)
|
||||
{
|
||||
$result = $contrib->set_paid($user);
|
||||
$result = $contrib->setPaid($user);
|
||||
}
|
||||
else dol_syslog("Remain to pay for conrib ".$contribid." not null. We do nothing.");
|
||||
}
|
||||
@ -480,7 +480,7 @@ class PaymentVAT extends CommonObject
|
||||
{
|
||||
$this->id = 0;
|
||||
|
||||
$this->fk_tva = '';
|
||||
$this->fk_tva = 0;
|
||||
$this->datec = '';
|
||||
$this->tms = '';
|
||||
$this->datep = '';
|
||||
@ -489,9 +489,9 @@ class PaymentVAT extends CommonObject
|
||||
$this->num_payment = '';
|
||||
$this->note_private = '';
|
||||
$this->note_public = '';
|
||||
$this->fk_bank = '';
|
||||
$this->fk_user_creat = '';
|
||||
$this->fk_user_modif = '';
|
||||
$this->fk_bank = 0;
|
||||
$this->fk_user_creat = 0;
|
||||
$this->fk_user_modif = 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -246,14 +246,14 @@ class Tva extends CommonObject
|
||||
* @param User $user Object user making change
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
public function set_paid($user)
|
||||
public function setPaid($user)
|
||||
{
|
||||
// phpcs:enable
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."tva SET";
|
||||
$sql .= " paye = 1";
|
||||
$sql .= " WHERE rowid = ".$this->id;
|
||||
$return = $this->db->query($sql);
|
||||
if ($return) return 1;
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql) return 1;
|
||||
else return -1;
|
||||
}
|
||||
|
||||
@ -263,14 +263,14 @@ class Tva extends CommonObject
|
||||
* @param User $user Object user making change
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
public function set_unpaid($user)
|
||||
public function setUnpaid($user)
|
||||
{
|
||||
// phpcs:enable
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."tva SET";
|
||||
$sql .= " paye = 0";
|
||||
$sql .= " WHERE rowid = ".$this->id;
|
||||
$return = $this->db->query($sql);
|
||||
if ($return) return 1;
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql) return 1;
|
||||
else return -1;
|
||||
}
|
||||
|
||||
|
||||
@ -304,7 +304,7 @@ if (!$error && $massaction == 'confirm_presend')
|
||||
if ($_POST['addmaindocfile'])
|
||||
{
|
||||
// TODO Use future field $objectobj->fullpathdoc to know where is stored default file
|
||||
// TODO If not defined, use $objectobj->modelpdf (or defaut invoice config) to know what is template to use to regenerate doc.
|
||||
// TODO If not defined, use $objectobj->model_pdf (or defaut invoice config) to know what is template to use to regenerate doc.
|
||||
$filename = dol_sanitizeFileName($objectobj->ref).'.pdf';
|
||||
$subdir = '';
|
||||
// TODO Set subdir to be compatible with multi levels dir trees
|
||||
@ -1281,7 +1281,7 @@ if (!$error && $massaction == 'generate_doc' && $permissiontoread)
|
||||
if (empty($hideref)) $hideref = 0;
|
||||
if (empty($moreparams)) $moreparams = null;
|
||||
|
||||
$result = $objecttmp->generateDocument($objecttmp->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref, $moreparams);
|
||||
$result = $objecttmp->generateDocument($objecttmp->model_pdf, $outputlangs, $hidedetails, $hidedesc, $hideref, $moreparams);
|
||||
|
||||
if ($result <= 0)
|
||||
{
|
||||
|
||||
@ -55,6 +55,11 @@ abstract class CommonDocGenerator
|
||||
*/
|
||||
public $extrafieldsCache;
|
||||
|
||||
/**
|
||||
* @var int If set to 1, save the fullname of generated file with path as the main doc when generating a doc with this template.
|
||||
*/
|
||||
public $update_main_doc_field;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
|
||||
@ -355,6 +355,13 @@ abstract class CommonObject
|
||||
*/
|
||||
public $model_pdf;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
* @deprecated
|
||||
* @see model_pdf
|
||||
*/
|
||||
public $modelpdf;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
* Contains relative path of last generated main file
|
||||
|
||||
@ -757,30 +757,36 @@ class FormCompany extends Form
|
||||
* @param string $sortorder Sort criteria ('position', 'code', ...)
|
||||
* @param int $showempty 1=Add en empty line
|
||||
* @param string $morecss Add more css to select component
|
||||
* @param int $output 0=return HTML, 1= direct print
|
||||
* @return void
|
||||
*/
|
||||
public function selectTypeContact($object, $selected, $htmlname = 'type', $source = 'internal', $sortorder = 'position', $showempty = 0, $morecss = '')
|
||||
public function selectTypeContact($object, $selected, $htmlname = 'type', $source = 'internal', $sortorder = 'position', $showempty = 0, $morecss = '', $output = 1)
|
||||
{
|
||||
global $user, $langs;
|
||||
|
||||
$out = '';
|
||||
if (is_object($object) && method_exists($object, 'liste_type_contact'))
|
||||
{
|
||||
$lesTypes = $object->liste_type_contact($source, $sortorder, 0, 1);
|
||||
|
||||
print '<select class="flat valignmiddle'.($morecss ? ' '.$morecss : '').'" name="'.$htmlname.'" id="'.$htmlname.'">';
|
||||
if ($showempty) print '<option value="0"></option>';
|
||||
$out .= '<select class="flat valignmiddle'.($morecss ? ' '.$morecss : '').'" name="'.$htmlname.'" id="'.$htmlname.'">';
|
||||
if ($showempty) $out .= '<option value="0"></option>';
|
||||
foreach ($lesTypes as $key=>$value)
|
||||
{
|
||||
print '<option value="'.$key.'"';
|
||||
if ($key == $selected) print ' selected';
|
||||
print '>'.$value.'</option>';
|
||||
$out .= '<option value="'.$key.'"';
|
||||
if ($key == $selected) $out .= ' selected';
|
||||
$out .= '>'.$value.'</option>';
|
||||
}
|
||||
print "</select>";
|
||||
if ($user->admin) print ' '.info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1);
|
||||
$out .= "</select>";
|
||||
if ($user->admin) $out .= ' '.info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1);
|
||||
|
||||
print ajax_combobox($htmlname);
|
||||
$out .= ajax_combobox($htmlname);
|
||||
|
||||
print "\n";
|
||||
$out .= "\n";
|
||||
}
|
||||
if (empty($output)) {
|
||||
return $out;
|
||||
} else {
|
||||
print $out;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -175,7 +175,7 @@ function rebuild_merge_pdf($db, $langs, $conf, $diroutputpdf, $newlangid, $filte
|
||||
if ($regenerate || !dol_is_file($filename))
|
||||
{
|
||||
if ($usestdout) print "Build PDF for invoice ".$obj->ref." - Lang = ".$outputlangs->defaultlang."\n";
|
||||
$result = $fac->generateDocument($regenerate ? $regenerate : $fac->modelpdf, $outputlangs);
|
||||
$result = $fac->generateDocument($regenerate ? $regenerate : $fac->model_pdf, $outputlangs);
|
||||
} else {
|
||||
if ($usestdout) print "PDF for invoice ".$obj->ref." already exists\n";
|
||||
}
|
||||
|
||||
@ -133,6 +133,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices
|
||||
$this->db = $db;
|
||||
$this->name = "canelle";
|
||||
$this->description = $langs->trans('SuppliersInvoiceModel');
|
||||
$this->update_main_doc_field = 1; // Save the name of generated file as the main doc when generating a doc with this template
|
||||
|
||||
// Page dimensions
|
||||
$this->type = 'pdf';
|
||||
|
||||
@ -56,6 +56,11 @@ class pdf_cornas extends ModelePDFSuppliersOrders
|
||||
*/
|
||||
public $description;
|
||||
|
||||
/**
|
||||
* @var int Save the name of generated file as the main doc when generating a doc with this template
|
||||
*/
|
||||
public $update_main_doc_field;
|
||||
|
||||
/**
|
||||
* @var string document type
|
||||
*/
|
||||
@ -130,6 +135,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders
|
||||
$this->db = $db;
|
||||
$this->name = "cornas";
|
||||
$this->description = $langs->trans('SuppliersCommandModel');
|
||||
$this->update_main_doc_field = 1; // Save the name of generated file as the main doc when generating a doc with this template
|
||||
|
||||
// Page size for A4 format
|
||||
$this->type = 'pdf';
|
||||
|
||||
@ -56,6 +56,11 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
|
||||
*/
|
||||
public $description;
|
||||
|
||||
/**
|
||||
* @var int Save the name of generated file as the main doc when generating a doc with this template
|
||||
*/
|
||||
public $update_main_doc_field;
|
||||
|
||||
/**
|
||||
* @var string document type
|
||||
*/
|
||||
@ -130,6 +135,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
|
||||
$this->db = $db;
|
||||
$this->name = "muscadet";
|
||||
$this->description = $langs->trans('SuppliersCommandModelMuscadet');
|
||||
$this->update_main_doc_field = 1; // Save the name of generated file as the main doc when generating a doc with this template
|
||||
|
||||
// Page size for A4 format
|
||||
$this->type = 'pdf';
|
||||
|
||||
@ -53,6 +53,11 @@ class pdf_standard extends ModelePDFSuppliersPayments
|
||||
*/
|
||||
public $description;
|
||||
|
||||
/**
|
||||
* @var int Save the name of generated file as the main doc when generating a doc with this template
|
||||
*/
|
||||
public $update_main_doc_field;
|
||||
|
||||
/**
|
||||
* @var string document type
|
||||
*/
|
||||
@ -127,6 +132,7 @@ class pdf_standard extends ModelePDFSuppliersPayments
|
||||
$this->db = $db;
|
||||
$this->name = "standard";
|
||||
$this->description = $langs->trans('DocumentModelStandardPDF');
|
||||
$this->update_main_doc_field = 1; // Save the name of generated file as the main doc when generating a doc with this template
|
||||
|
||||
// Page size for A4 format
|
||||
$this->type = 'pdf';
|
||||
|
||||
@ -53,6 +53,11 @@ class pdf_aurore extends ModelePDFSupplierProposal
|
||||
*/
|
||||
public $description;
|
||||
|
||||
/**
|
||||
* @var int Save the name of generated file as the main doc when generating a doc with this template
|
||||
*/
|
||||
public $update_main_doc_field;
|
||||
|
||||
/**
|
||||
* @var string document type
|
||||
*/
|
||||
@ -127,6 +132,7 @@ class pdf_aurore extends ModelePDFSupplierProposal
|
||||
$this->db = $db;
|
||||
$this->name = "aurore";
|
||||
$this->description = $langs->trans('DocModelAuroreDescription');
|
||||
$this->update_main_doc_field = 1; // Save the name of generated file as the main doc when generating a doc with this template
|
||||
|
||||
// Page size for A4 format
|
||||
$this->type = 'pdf';
|
||||
|
||||
@ -705,6 +705,13 @@ if (!empty($usemargins) && $user->rights->margins->creer)
|
||||
} ?>
|
||||
<?php
|
||||
} ?>
|
||||
<?php
|
||||
if (!empty($conf->global->PRODUCT_LOAD_EXTRAFIELD_INTO_OBJECTLINES)) { ?>
|
||||
jQuery.each(data.array_options, function( key, value ) {
|
||||
jQuery('div[class$="det'+key.replace('options_','_extras_')+'"] > #'+key).val(value);
|
||||
});
|
||||
<?php
|
||||
}?>
|
||||
},
|
||||
'json'
|
||||
);
|
||||
|
||||
@ -307,7 +307,7 @@ class InterfaceWorkflowManager extends DolibarrTriggers
|
||||
dol_syslog("Amount of linked proposals = ".$totalonlinkedelements.", of invoice = ".$object->total_ht.", egality is ".($totalonlinkedelements == $object->total_ht), LOG_DEBUG);
|
||||
if ($totalonlinkedelements == $object->total_ht) {
|
||||
foreach ($object->linkedObjects['reception'] as $element) {
|
||||
$ret = $element->set_billed();
|
||||
$ret = $element->setBilled();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -255,7 +255,7 @@ if ($action == 'set_cancel') {
|
||||
}
|
||||
if ($action == 'set_paid') {
|
||||
$object->fetch($id);
|
||||
if ($object->set_paid($id, $modepayment) >= 0) {
|
||||
if ($object->setPaid($id, $modepayment) >= 0) {
|
||||
$action = '';
|
||||
} else {
|
||||
setEventMessages($object->error, $object->errors, 'errors');
|
||||
|
||||
@ -761,13 +761,28 @@ class Don extends CommonObject
|
||||
/**
|
||||
* Classify the donation as paid, the donation was received
|
||||
*
|
||||
* @param int $id id of donation
|
||||
* @param int $modepayment mode of payment
|
||||
* @return int <0 if KO, >0 if OK
|
||||
* @deprecated
|
||||
* @see setPaid()
|
||||
* @param int $id id of donation
|
||||
* @param int $modepayment mode of payment
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
public function set_paid($id, $modepayment = 0)
|
||||
{
|
||||
// phpcs:enable
|
||||
dol_syslog(get_class($this)."::set_paid is deprecated, use setPaid instead", LOG_NOTICE);
|
||||
return $this->setPaid($id, $modepayment);
|
||||
}
|
||||
|
||||
/**
|
||||
* Classify the donation as paid, the donation was received
|
||||
*
|
||||
* @param int $id id of donation
|
||||
* @param int $modepayment mode of payment
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
public function setPaid($id, $modepayment = 0)
|
||||
{
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."don SET fk_statut = 2";
|
||||
if ($modepayment)
|
||||
{
|
||||
|
||||
@ -523,7 +523,7 @@ if (empty($reshook))
|
||||
} elseif ($action == 'classifybilled')
|
||||
{
|
||||
$object->fetch($id);
|
||||
$result = $object->set_billed();
|
||||
$result = $object->setBilled();
|
||||
if ($result >= 0) {
|
||||
header('Location: '.$_SERVER["PHP_SELF"].'?id='.$object->id);
|
||||
exit();
|
||||
|
||||
@ -581,7 +581,7 @@ class Expedition extends CommonObject
|
||||
$this->date_delivery = $this->db->jdate($obj->date_delivery); // Date planed
|
||||
$this->fk_delivery_address = $obj->fk_address;
|
||||
$this->model_pdf = $obj->model_pdf;
|
||||
$this->modelpdf = $obj->model_pdf;
|
||||
$this->modelpdf = $obj->model_pdf; // deprecated
|
||||
$this->shipping_method_id = $obj->fk_shipping_method;
|
||||
$this->shipping_method = $obj->shipping_method;
|
||||
$this->tracking_number = $obj->tracking_number;
|
||||
@ -1116,7 +1116,7 @@ class Expedition extends CommonObject
|
||||
$sql .= " weight=".(($this->trueWeight != '') ? $this->trueWeight : "null").",";
|
||||
$sql .= " note_private=".(isset($this->note_private) ? "'".$this->db->escape($this->note_private)."'" : "null").",";
|
||||
$sql .= " note_public=".(isset($this->note_public) ? "'".$this->db->escape($this->note_public)."'" : "null").",";
|
||||
$sql .= " model_pdf=".(isset($this->modelpdf) ? "'".$this->db->escape($this->modelpdf)."'" : "null").",";
|
||||
$sql .= " model_pdf=".(isset($this->model_pdf) ? "'".$this->db->escape($this->model_pdf)."'" : "null").",";
|
||||
$sql .= " entity=".$conf->entity;
|
||||
|
||||
$sql .= " WHERE rowid=".$this->id;
|
||||
@ -2307,11 +2307,24 @@ class Expedition extends CommonObject
|
||||
/**
|
||||
* Classify the shipping as invoiced (used when WORKFLOW_BILL_ON_SHIPMENT is on)
|
||||
*
|
||||
* @deprecated
|
||||
* @see setBilled()
|
||||
* @return int <0 if ko, >0 if ok
|
||||
*/
|
||||
public function set_billed()
|
||||
{
|
||||
// phpcs:enable
|
||||
dol_syslog(get_class($this)."::set_billed is deprecated, use setBilled instead", LOG_NOTICE);
|
||||
return $this->setBilled();
|
||||
}
|
||||
|
||||
/**
|
||||
* Classify the shipping as invoiced (used when WORKFLOW_BILL_ON_SHIPMENT is on)
|
||||
*
|
||||
* @return int <0 if ko, >0 if ok
|
||||
*/
|
||||
public function setBilled()
|
||||
{
|
||||
global $user;
|
||||
$error = 0;
|
||||
|
||||
|
||||
@ -953,7 +953,7 @@ if (empty($reshook))
|
||||
$object = new ExpenseReport($db);
|
||||
$object->fetch($id);
|
||||
|
||||
$result = $object->set_unpaid($user);
|
||||
$result = $object->setUnpaid($user);
|
||||
|
||||
if ($result > 0)
|
||||
{
|
||||
@ -981,7 +981,7 @@ if (empty($reshook))
|
||||
$object = new ExpenseReport($db);
|
||||
$object->fetch($id);
|
||||
|
||||
$result = $object->set_paid($id, $user);
|
||||
$result = $object->setPaid($id, $user);
|
||||
|
||||
if ($result > 0)
|
||||
{
|
||||
|
||||
@ -634,6 +634,23 @@ class ExpenseReport extends CommonObject
|
||||
}
|
||||
|
||||
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||
/**
|
||||
* Classify the expense report as paid
|
||||
*
|
||||
* @deprecated
|
||||
* @see setPaid()
|
||||
* @param int $id Id of expense report
|
||||
* @param user $fuser User making change
|
||||
* @param int $notrigger Disable triggers
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
public function set_paid($id, $fuser, $notrigger = 0)
|
||||
{
|
||||
// phpcs:enable
|
||||
dol_syslog(get_class($this)."::set_paid is deprecated, use setPaid instead", LOG_NOTICE);
|
||||
return $this->setPaid($id, $fuser, $notrigger);
|
||||
}
|
||||
|
||||
/**
|
||||
* Classify the expense report as paid
|
||||
*
|
||||
@ -642,9 +659,8 @@ class ExpenseReport extends CommonObject
|
||||
* @param int $notrigger Disable triggers
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
public function set_paid($id, $fuser, $notrigger = 0)
|
||||
public function setPaid($id, $fuser, $notrigger = 0)
|
||||
{
|
||||
// phpcs:enable
|
||||
$error = 0;
|
||||
$this->db->begin();
|
||||
|
||||
@ -1492,6 +1508,8 @@ class ExpenseReport extends CommonObject
|
||||
/**
|
||||
* set_unpaid
|
||||
*
|
||||
* @deprecated
|
||||
* @see setUnpaid()
|
||||
* @param User $fuser User
|
||||
* @param int $notrigger Disable triggers
|
||||
* @return int <0 if KO, >0 if OK
|
||||
@ -1499,6 +1517,19 @@ class ExpenseReport extends CommonObject
|
||||
public function set_unpaid($fuser, $notrigger = 0)
|
||||
{
|
||||
// phpcs:enable
|
||||
dol_syslog(get_class($this)."::set_unpaid is deprecated, use setUnpaid instead", LOG_NOTICE);
|
||||
return $this->setUnpaid($fuser, $notrigger);
|
||||
}
|
||||
|
||||
/**
|
||||
* set_unpaid
|
||||
*
|
||||
* @param User $fuser User
|
||||
* @param int $notrigger Disable triggers
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
public function setUnpaid($fuser, $notrigger = 0)
|
||||
{
|
||||
$error = 0;
|
||||
|
||||
if ($this->paid)
|
||||
|
||||
@ -144,7 +144,7 @@ if ($action == 'add_payment')
|
||||
if (!$error) {
|
||||
$payment->fetch($paymentid);
|
||||
if ($expensereport->total_ttc - $payment->amount == 0) {
|
||||
$result = $expensereport->set_paid($expensereport->id, $user);
|
||||
$result = $expensereport->setPaid($expensereport->id, $user);
|
||||
if (!$result > 0) {
|
||||
setEventMessages($payment->error, $payment->errors, 'errors');
|
||||
$error++;
|
||||
|
||||
@ -200,6 +200,7 @@ if (empty($reshook))
|
||||
$mesg = $object->error;
|
||||
}
|
||||
} elseif ($action == 'add' && $user->rights->ficheinter->creer) {
|
||||
$selectedLines = GETPOST('toselect', 'array');
|
||||
$object->socid = $socid;
|
||||
$object->duration = (int) GETPOST('duration', 'int');
|
||||
$object->fk_project = (int) GETPOST('projectid', 'int');
|
||||
@ -284,6 +285,8 @@ if (empty($reshook))
|
||||
|
||||
for ($i = 0; $i < $num; $i++)
|
||||
{
|
||||
if (!in_array($lines[$i]->id, $selectedLines)) continue; // Skip unselected lines
|
||||
|
||||
$product_type = ($lines[$i]->product_type ? $lines[$i]->product_type : Product::TYPE_PRODUCT);
|
||||
|
||||
if ($product_type == Product::TYPE_SERVICE || !empty($conf->global->FICHINTER_PRINT_PRODUCTS)) { //only services except if config includes products
|
||||
@ -1023,8 +1026,6 @@ if ($action == 'create')
|
||||
print '<input type="button" class="button button-cancel" value="'.$langs->trans("Cancel").'" onClick="javascript:history.go(-1)">';
|
||||
print '</div>';
|
||||
|
||||
print '</form>';
|
||||
|
||||
// Show origin lines
|
||||
if (!empty($origin) && !empty($originid) && is_object($objectsrc)) {
|
||||
$title = $langs->trans('Services');
|
||||
@ -1036,6 +1037,8 @@ if ($action == 'create')
|
||||
|
||||
print '</table>';
|
||||
}
|
||||
|
||||
print '</form>';
|
||||
} else {
|
||||
print '<form name="fichinter" action="'.$_SERVER['PHP_SELF'].'" method="POST">';
|
||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||
|
||||
@ -1250,6 +1250,8 @@ class FactureFournisseur extends CommonInvoice
|
||||
/**
|
||||
* Tag invoice as a paid invoice
|
||||
*
|
||||
* @deprecated
|
||||
* @see setPaid()
|
||||
* @param User $user Object user
|
||||
* @param string $close_code Code indicates whether the class has paid in full while payment is incomplete. Not implementd yet.
|
||||
* @param string $close_note Comment informs if the class has been paid while payment is incomplete. Not implementd yet.
|
||||
@ -1258,6 +1260,20 @@ class FactureFournisseur extends CommonInvoice
|
||||
public function set_paid($user, $close_code = '', $close_note = '')
|
||||
{
|
||||
// phpcs:enable
|
||||
dol_syslog(get_class($this)."::set_paid is deprecated, use setPaid instead", LOG_NOTICE);
|
||||
return $this->setPaid($user, $close_code, $close_note);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tag invoice as a paid invoice
|
||||
*
|
||||
* @param User $user Object user
|
||||
* @param string $close_code Code indicates whether the class has paid in full while payment is incomplete. Not implementd yet.
|
||||
* @param string $close_note Comment informs if the class has been paid while payment is incomplete. Not implementd yet.
|
||||
* @return int <0 si ko, >0 si ok
|
||||
*/
|
||||
public function setPaid($user, $close_code = '', $close_note = '')
|
||||
{
|
||||
global $conf, $langs;
|
||||
$error = 0;
|
||||
|
||||
@ -1291,8 +1307,24 @@ class FactureFournisseur extends CommonInvoice
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||
/**
|
||||
* Tag the invoice as not fully paid + trigger call BILL_UNPAYED
|
||||
* Function used when a direct debit payment is refused,
|
||||
* or when the invoice was canceled and reopened.
|
||||
*
|
||||
* @deprecated
|
||||
* @see setUnpaid()
|
||||
* @param User $user Object user that change status
|
||||
* @return int <0 si ok, >0 si ok
|
||||
*/
|
||||
public function set_unpaid($user)
|
||||
{
|
||||
// phpcs:enable
|
||||
dol_syslog(get_class($this)."::set_unpaid is deprecated, use setUnpaid instead", LOG_NOTICE);
|
||||
return $this->setUnpaid($user);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tag the invoice as not fully paid + trigger call BILL_UNPAYED
|
||||
* Function used when a direct debit payment is refused,
|
||||
@ -1301,9 +1333,8 @@ class FactureFournisseur extends CommonInvoice
|
||||
* @param User $user Object user that change status
|
||||
* @return int <0 si ok, >0 si ok
|
||||
*/
|
||||
public function set_unpaid($user)
|
||||
public function setUnpaid($user)
|
||||
{
|
||||
// phpcs:enable
|
||||
global $conf, $langs;
|
||||
$error = 0;
|
||||
|
||||
|
||||
@ -241,7 +241,7 @@ class PaiementFourn extends Paiement
|
||||
$remaintopay = price2num($invoice->total_ttc - $paiement - $creditnotes - $deposits, 'MT');
|
||||
if ($remaintopay == 0)
|
||||
{
|
||||
$result = $invoice->set_paid($user, '', '');
|
||||
$result = $invoice->setPaid($user, '', '');
|
||||
} else dol_syslog("Remain to pay for invoice ".$facid." not null. We do nothing.");
|
||||
}
|
||||
|
||||
|
||||
@ -277,7 +277,7 @@ if (empty($reshook))
|
||||
$discount->unlink_invoice();
|
||||
} elseif ($action == 'confirm_paid' && $confirm == 'yes' && $usercancreate) {
|
||||
$object->fetch($id);
|
||||
$result = $object->set_paid($user);
|
||||
$result = $object->setPaid($user);
|
||||
if ($result < 0) {
|
||||
setEventMessages($object->error, $object->errors, 'errors');
|
||||
}
|
||||
@ -605,7 +605,7 @@ if (empty($reshook))
|
||||
{
|
||||
if ($object->type != FactureFournisseur::TYPE_DEPOSIT) {
|
||||
// Classe facture
|
||||
$result = $object->set_paid($user);
|
||||
$result = $object->setPaid($user);
|
||||
if ($result >= 0)
|
||||
{
|
||||
$db->commit();
|
||||
@ -1545,7 +1545,7 @@ if (empty($reshook))
|
||||
if ($object->statut == FactureFournisseur::STATUS_CLOSED
|
||||
|| ($object->statut == FactureFournisseur::STATUS_ABANDONED && $object->close_code != 'replaced'))
|
||||
{
|
||||
$result = $object->set_unpaid($user);
|
||||
$result = $object->setUnpaid($user);
|
||||
if ($result > 0)
|
||||
{
|
||||
header('Location: '.$_SERVER["PHP_SELF"].'?id='.$id);
|
||||
|
||||
@ -267,4 +267,5 @@ NewInvoice=New invoice
|
||||
OneLinePerTask=One line per task
|
||||
OneLinePerPeriod=One line per period
|
||||
RefTaskParent=Ref. Parent Task
|
||||
ProfitIsCalculatedWith=Profit is calculated using
|
||||
ProfitIsCalculatedWith=Profit is calculated using
|
||||
AddPersonToTask=Add also to tasks
|
||||
|
||||
@ -67,7 +67,7 @@ if (empty($reshook))
|
||||
if ($action == 'confirm_paid' && $confirm == 'yes' && $user->rights->loan->write)
|
||||
{
|
||||
$object->fetch($id);
|
||||
$result = $object->set_paid($user);
|
||||
$result = $object->setPaid($user);
|
||||
if ($result > 0)
|
||||
{
|
||||
setEventMessages($langs->trans('LoanPaid'), null, 'mesgs');
|
||||
|
||||
@ -379,12 +379,26 @@ class Loan extends CommonObject
|
||||
/**
|
||||
* Tag loan as paid completely
|
||||
*
|
||||
* @deprecated
|
||||
* @see setPaid()
|
||||
* @param User $user Object user making change
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
public function set_paid($user)
|
||||
{
|
||||
// phpcs:enable
|
||||
dol_syslog(get_class($this)."::set_paid is deprecated, use setPaid instead", LOG_NOTICE);
|
||||
return $this->setPaid($user);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tag loan as paid completely
|
||||
*
|
||||
* @param User $user Object user making change
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
public function setPaid($user)
|
||||
{
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."loan SET";
|
||||
$sql .= " paid = ".$this::STATUS_PAID;
|
||||
$sql .= " WHERE rowid = ".$this->id;
|
||||
@ -399,14 +413,28 @@ class Loan extends CommonObject
|
||||
|
||||
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||
/**
|
||||
* Tag loan as payement started
|
||||
* Tag loan as payment started
|
||||
*
|
||||
* @deprecated
|
||||
* @see setStarted()
|
||||
* @param User $user Object user making change
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
public function set_started($user)
|
||||
{
|
||||
// phpcs:enable
|
||||
dol_syslog(get_class($this)."::set_started is deprecated, use setStarted instead", LOG_NOTICE);
|
||||
return $this->setStarted($user);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tag loan as payment started
|
||||
*
|
||||
* @param User $user Object user making change
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
public function setStarted($user)
|
||||
{
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."loan SET";
|
||||
$sql .= " paid = ".$this::STATUS_STARTED;
|
||||
$sql .= " WHERE rowid = ".$this->id;
|
||||
@ -422,13 +450,26 @@ class Loan extends CommonObject
|
||||
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||
/**
|
||||
* Tag loan as payement as unpaid
|
||||
*
|
||||
* @deprecated
|
||||
* @see setUnpaid()
|
||||
* @param User $user Object user making change
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
public function set_unpaid($user)
|
||||
{
|
||||
// phpcs:enable
|
||||
dol_syslog(get_class($this)."::set_unpaid is deprecated, use setUnpaid instead", LOG_NOTICE);
|
||||
return $this->setUnpaid($user);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tag loan as payement as unpaid
|
||||
*
|
||||
* @param User $user Object user making change
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
public function setUnpaid($user)
|
||||
{
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."loan SET";
|
||||
$sql .= " paid = ".$this::STATUS_UNPAID;
|
||||
$sql .= " WHERE rowid = ".$this->id;
|
||||
|
||||
@ -377,8 +377,7 @@ class PaymentLoan extends CommonObject
|
||||
if ($sum_payment == 0)
|
||||
{
|
||||
dol_syslog(get_class($this)."::delete : set loan to unpaid", LOG_DEBUG);
|
||||
if ($loan->set_unpaid($user) < 1)
|
||||
{
|
||||
if ($loan->setUnpaid($user) < 1) {
|
||||
$error++;
|
||||
dol_print_error($this->db);
|
||||
}
|
||||
@ -532,7 +531,7 @@ class PaymentLoan extends CommonObject
|
||||
if ($loan->paid == $loan::STATUS_UNPAID)
|
||||
{
|
||||
dol_syslog(get_class($this)."::addPaymentToBank : set loan payment to started", LOG_DEBUG);
|
||||
if ($loan->set_started($user) < 1)
|
||||
if ($loan->setStarted($user) < 1)
|
||||
{
|
||||
$error++;
|
||||
dol_print_error($this->db);
|
||||
|
||||
@ -230,7 +230,7 @@ if ($dirins && $action == 'initmodule' && $modulename)
|
||||
dol_delete_dir_recursive($destdir.'/core/tpl');
|
||||
dol_delete_dir_recursive($destdir.'/core/triggers');
|
||||
dol_delete_dir_recursive($destdir.'/doc');
|
||||
dol_delete_dir_recursive($destdir.'/.tx');
|
||||
//dol_delete_dir_recursive($destdir.'/.tx');
|
||||
dol_delete_dir_recursive($destdir.'/core/boxes');
|
||||
|
||||
dol_delete_file($destdir.'/admin/myobject_extrafields.php');
|
||||
|
||||
@ -192,7 +192,7 @@ if (!empty($action) && $action == 'fetch' && !empty($id))
|
||||
'tva_tx' => $outtva_tx,
|
||||
'qty' => $outqty,
|
||||
'discount' => $outdiscount,
|
||||
'array_option'=>$object->array_options);
|
||||
'array_options'=>$object->array_options);
|
||||
}
|
||||
|
||||
echo json_encode($outjson);
|
||||
|
||||
@ -58,7 +58,7 @@ $hookmanager->initHooks(array('projectcontactcard', 'globalcard'));
|
||||
*/
|
||||
|
||||
// Add new contact
|
||||
if ($action == 'addcontact' && $user->rights->projet->creer)
|
||||
if ($action == 'addcontact_confirm' && $user->rights->projet->creer)
|
||||
{
|
||||
$result = 0;
|
||||
$result = $object->fetch($id);
|
||||
@ -68,20 +68,48 @@ if ($action == 'addcontact' && $user->rights->projet->creer)
|
||||
$contactid = (GETPOST('userid') ? GETPOST('userid', 'int') : GETPOST('contactid', 'int'));
|
||||
$typeid = (GETPOST('typecontact') ? GETPOST('typecontact') : GETPOST('type'));
|
||||
$result = $object->add_contact($contactid, $typeid, GETPOST("source", 'aZ09'));
|
||||
if ( $result < 0) {
|
||||
if ($object->error == 'DB_ERROR_RECORD_ALREADY_EXISTS')
|
||||
{
|
||||
$langs->load("errors");
|
||||
setEventMessages($langs->trans("ErrorThisContactIsAlreadyDefinedAsThisType"), null, 'errors');
|
||||
} else {
|
||||
setEventMessages($object->error, $object->errors, 'errors');
|
||||
}
|
||||
}
|
||||
|
||||
$affecttotask=GETPOST('tasksavailable', 'intcomma');
|
||||
if (!empty($affecttotask)) {
|
||||
require_once DOL_DOCUMENT_ROOT.'/projet/class/task.class.php';
|
||||
$task_to_affect = explode(',', $affecttotask);
|
||||
if (!empty($task_to_affect)) {
|
||||
foreach ($task_to_affect as $task_id) {
|
||||
if (GETPOSTISSET('person_'.$task_id, 'san_alpha') && GETPOST('person_'.$task_id, 'san_alpha')=='on') {
|
||||
$tasksToAffect = new Task($db);
|
||||
$result=$tasksToAffect->fetch($task_id);
|
||||
if ($result < 0) {
|
||||
setEventMessage($tasksToAffect->error, 'errors');
|
||||
} else {
|
||||
$result = $tasksToAffect->add_contact($contactid, GETPOST('person_role_'.$task_id), GETPOST("source", 'aZ09'));
|
||||
if ($result < 0) {
|
||||
if ($tasksToAffect->error == 'DB_ERROR_RECORD_ALREADY_EXISTS') {
|
||||
$langs->load("errors");
|
||||
setEventMessages($langs->trans("ErrorThisContactIsAlreadyDefinedAsThisType"), null, 'errors');
|
||||
} else {
|
||||
setEventMessages($tasksToAffect->error, $tasksToAffect->errors, 'errors');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($result >= 0)
|
||||
{
|
||||
header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id);
|
||||
exit;
|
||||
} else {
|
||||
if ($object->error == 'DB_ERROR_RECORD_ALREADY_EXISTS')
|
||||
{
|
||||
$langs->load("errors");
|
||||
setEventMessages($langs->trans("ErrorThisContactIsAlreadyDefinedAsThisType"), null, 'errors');
|
||||
} else {
|
||||
setEventMessages($object->error, $object->errors, 'errors');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -145,6 +173,85 @@ if ($id > 0 || !empty($ref))
|
||||
$head = project_prepare_head($object);
|
||||
print dol_get_fiche_head($head, 'contact', $langs->trans("Project"), -1, ($object->public ? 'projectpub' : 'project'));
|
||||
|
||||
$formconfirm = '';
|
||||
|
||||
// Test if we can add contact to task at the same times
|
||||
if ($action == 'addcontact') {
|
||||
$source=GETPOST("source", 'aZ09');
|
||||
|
||||
$taskstatic = new Task($db);
|
||||
$task_array = $taskstatic->getTasksArray(0, 0, $object->id, 0, 0);
|
||||
$nbTasks = count($task_array);
|
||||
|
||||
//If no task avaiblable, redirec to to add confirm
|
||||
$type_to = (GETPOST('typecontact') ? 'typecontact='.GETPOST('typecontact') : 'type='.GETPOST('type'));
|
||||
$personToAffect = (GETPOST('userid') ? GETPOST('userid', 'int') : GETPOST('contactid', 'int'));
|
||||
$affect_to = (GETPOST('userid') ? 'userid='.$personToAffect : 'contactid='.$personToAffect);
|
||||
$url_redirect='?id='.$object->id.'&'.$affect_to.'&'.$type_to.'&source='.$source;
|
||||
|
||||
if (empty($conf->global->PROJECT_HIDE_TASKS) || $nbTasks > 0) {
|
||||
$text = $langs->trans('AddPersonToTask');
|
||||
$formquestion = array('text' => $text);
|
||||
|
||||
$task_to_affect = array();
|
||||
foreach ($task_array as $task) {
|
||||
$task_already_affected=false;
|
||||
$personsLinked = $task->liste_contact(-1, $source);
|
||||
if (!is_array($personsLinked) && coun($personsLinked) < 0) {
|
||||
setEventMessage($object->error, 'errors');
|
||||
} else {
|
||||
foreach ($personsLinked as $person) {
|
||||
if ($person['id']==$personToAffect) {
|
||||
$task_already_affected = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!$task_already_affected) {
|
||||
$task_to_affect[$task->id] = $task->ref . ' '.dol_trunc($task->label);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (empty($task_to_affect)) {
|
||||
//If person is already add to all task (how it can happen ????, anyway), redirect to to add confirm
|
||||
header("Location: ".$_SERVER['PHP_SELF'].$url_redirect);
|
||||
exit;
|
||||
} else {
|
||||
foreach ($task_to_affect as $key=>$val) {
|
||||
$formquestion[] = array('type' => 'checkbox', 'name' => 'person_'.$key, 'label' => $val, 'value' => true);
|
||||
$formquestion[] = array(
|
||||
'type' => 'other',
|
||||
'name' => 'person_role_'. $key,
|
||||
'label' => $langs->trans("ContactType"),
|
||||
'value' => $formcompany->selectTypeContact($taskstatic, '', 'person_role_' . $key, $source, 'position', 0, 'minwidth100imp', 0));
|
||||
}
|
||||
$formquestion[] = array('type'=> 'other', 'name'=>'tasksavailable', 'label'=>'', 'value' => '<input type="hidden" id="tasksavailable" name="tasksavailable" value="'.implode(',', array_keys($task_to_affect)).'">');
|
||||
}
|
||||
|
||||
$formconfirm = $form->formconfirm($_SERVER['PHP_SELF'] . $url_redirect, $text, '', 'addcontact_confirm', $formquestion, '', 1, 300, 590);
|
||||
$formconfirm .='
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
$("input:checkbox[name^=\'person_\']").change(function(){
|
||||
let taskid=$(this).attr("name").replace("person_","");
|
||||
$("#person_role_"+taskid).parents("div.tagtr").toggle();
|
||||
});
|
||||
});
|
||||
</script>';
|
||||
} else {
|
||||
//If no task avaiblable, redirec to to add confirm
|
||||
header("Location: ".$_SERVER['PHP_SELF'].$url_redirect.'&action=addcontact_confirm');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
// Call Hook formConfirm
|
||||
$parameters = array('formConfirm' => $formconfirm);
|
||||
$reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
|
||||
if (empty($reshook)) $formconfirm .= $hookmanager->resPrint;
|
||||
elseif ($reshook > 0) $formconfirm = $hookmanager->resPrint;
|
||||
|
||||
// Print form confirm
|
||||
print $formconfirm;
|
||||
|
||||
// Project card
|
||||
|
||||
|
||||
@ -506,7 +506,7 @@ if (empty($reshook))
|
||||
} elseif ($action == 'classifybilled')
|
||||
{
|
||||
$object->fetch($id);
|
||||
$result = $object->set_billed();
|
||||
$result = $object->setBilled();
|
||||
if ($result >= 0) {
|
||||
header('Location: '.$_SERVER["PHP_SELF"].'?id='.$object->id);
|
||||
exit();
|
||||
|
||||
@ -1551,11 +1551,24 @@ class Reception extends CommonObject
|
||||
/**
|
||||
* Classify the reception as invoiced (used when WORKFLOW_BILL_ON_RECEPTION is on)
|
||||
*
|
||||
* @deprecated
|
||||
* @see setBilled()
|
||||
* @return int <0 if ko, >0 if ok
|
||||
*/
|
||||
public function set_billed()
|
||||
{
|
||||
// phpcs:enable
|
||||
dol_syslog(get_class($this)."::set_billed is deprecated, use setBilled instead", LOG_NOTICE);
|
||||
return $this->setBilled();
|
||||
}
|
||||
|
||||
/**
|
||||
* Classify the reception as invoiced (used when WORKFLOW_BILL_ON_RECEPTION is on)
|
||||
*
|
||||
* @return int <0 if ko, >0 if ok
|
||||
*/
|
||||
public function setBilled()
|
||||
{
|
||||
global $user;
|
||||
$error = 0;
|
||||
|
||||
|
||||
@ -1699,13 +1699,13 @@ class SupplierProposal extends CommonObject
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$modelpdf = $conf->global->SUPPLIER_PROPOSAL_ADDON_PDF_ODT_CLOSED ? $conf->global->SUPPLIER_PROPOSAL_ADDON_PDF_ODT_CLOSED : (empty($this->modelpdf) ? '' : $this->modelpdf);
|
||||
$modelpdf = $conf->global->SUPPLIER_PROPOSAL_ADDON_PDF_ODT_CLOSED ? $conf->global->SUPPLIER_PROPOSAL_ADDON_PDF_ODT_CLOSED : (empty($this->model_pdf) ? '' : $this->model_pdf);
|
||||
$triggerName = 'PROPOSAL_SUPPLIER_CLOSE_REFUSED';
|
||||
|
||||
if ($status == 2)
|
||||
{
|
||||
$triggerName = 'PROPOSAL_SUPPLIER_CLOSE_SIGNED';
|
||||
$modelpdf = $conf->global->SUPPLIER_PROPOSAL_ADDON_PDF_ODT_TOBILL ? $conf->global->SUPPLIER_PROPOSAL_ADDON_PDF_ODT_TOBILL : (empty($this->modelpdf) ? '' : $this->modelpdf);
|
||||
$modelpdf = $conf->global->SUPPLIER_PROPOSAL_ADDON_PDF_ODT_TOBILL ? $conf->global->SUPPLIER_PROPOSAL_ADDON_PDF_ODT_TOBILL : (empty($this->model_pdf) ? '' : $this->model_pdf);
|
||||
|
||||
if (!empty($conf->global->SUPPLIER_PROPOSAL_UPDATE_PRICE_ON_SUPPlIER_PROPOSAL)) // TODO This option was not tested correctly. Error if product ref does not exists
|
||||
{
|
||||
|
||||
@ -270,7 +270,7 @@ if ($action == 'valid' && $user->rights->facture->creer)
|
||||
|
||||
if ($remaintopay == 0) {
|
||||
dol_syslog("Invoice is paid, so we set it to status Paid");
|
||||
$result = $invoice->set_paid($user);
|
||||
$result = $invoice->setPaid($user);
|
||||
if ($result > 0) $invoice->paye = 1;
|
||||
// set payment method
|
||||
$invoice->setPaymentMethods($paiementid);
|
||||
|
||||
@ -778,15 +778,15 @@ function updateInvoice($authentication, $invoice)
|
||||
}
|
||||
}
|
||||
if ($invoice['status'] == Facture::STATUS_CLOSED) {
|
||||
$result = $object->set_paid($fuser, $invoice['close_code'], $invoice['close_note']);
|
||||
$result = $object->setPaid($fuser, $invoice['close_code'], $invoice['close_note']);
|
||||
}
|
||||
if ($invoice['status'] == Facture::STATUS_ABANDONED) {
|
||||
$result = $object->setCanceled($fuser, $invoice['close_code'], $invoice['close_note']);
|
||||
}
|
||||
if ($invoice['status'] == Facture::STATUS_ABANDONED)
|
||||
$result = $object->set_canceled($fuser, $invoice['close_code'], $invoice['close_note']);
|
||||
}
|
||||
}
|
||||
|
||||
if ((!$error) && ($objectfound))
|
||||
{
|
||||
if ((!$error) && ($objectfound)) {
|
||||
$db->commit();
|
||||
$objectresp = array(
|
||||
'result'=>array('result_code'=>'OK', 'result_label'=>''),
|
||||
@ -794,9 +794,7 @@ function updateInvoice($authentication, $invoice)
|
||||
'ref'=>$object->ref,
|
||||
'ref_ext'=>$object->ref_ext
|
||||
);
|
||||
}
|
||||
elseif ($objectfound)
|
||||
{
|
||||
} elseif ($objectfound) {
|
||||
$db->rollback();
|
||||
$error++;
|
||||
$errorcode = 'KO';
|
||||
|
||||
@ -200,56 +200,56 @@ class BuildDocTest extends PHPUnit\Framework\TestCase
|
||||
$localobject->date_lim_reglement = dol_now() + 3600 * 24 *30;
|
||||
|
||||
// Crabe (english)
|
||||
$localobject->modelpdf='crabe';
|
||||
$result = $localobject->generateDocument($localobject->modelpdf, $langs);
|
||||
$localobject->model_pdf='crabe';
|
||||
$result = $localobject->generateDocument($localobject->model_pdf, $langs);
|
||||
$this->assertLessThan($result, 0);
|
||||
print __METHOD__." result=".$result."\n";
|
||||
|
||||
// Crabe (japanese)
|
||||
$newlangs1=new Translate("", $conf);
|
||||
$newlangs1->setDefaultLang('ja_JP');
|
||||
$localobject->modelpdf='crabe';
|
||||
$result = $localobject->generateDocument($localobject->modelpdf, $newlangs1);
|
||||
$localobject->model_pdf='crabe';
|
||||
$result = $localobject->generateDocument($localobject->model_pdf, $newlangs1);
|
||||
$this->assertLessThan($result, 0);
|
||||
print __METHOD__." result=".$result."\n";
|
||||
|
||||
// Crabe (saudiarabia)
|
||||
$newlangs2a=new Translate("", $conf);
|
||||
$newlangs2a->setDefaultLang('sa_SA');
|
||||
$localobject->modelpdf='crabe';
|
||||
$result = $localobject->generateDocument($localobject->modelpdf, $newlangs2a);
|
||||
$localobject->model_pdf='crabe';
|
||||
$result = $localobject->generateDocument($localobject->model_pdf, $newlangs2a);
|
||||
$this->assertLessThan($result, 0);
|
||||
print __METHOD__." result=".$result."\n";
|
||||
|
||||
// Crabe (english_saudiarabia)
|
||||
$newlangs2b=new Translate("", $conf);
|
||||
$newlangs2b->setDefaultLang('en_SA');
|
||||
$localobject->modelpdf='crabe';
|
||||
$result = $localobject->generateDocument($localobject->modelpdf, $newlangs2b);
|
||||
$localobject->model_pdf='crabe';
|
||||
$result = $localobject->generateDocument($localobject->model_pdf, $newlangs2b);
|
||||
$this->assertLessThan($result, 0);
|
||||
print __METHOD__." result=".$result."\n";
|
||||
|
||||
// Crabe (greek)
|
||||
$newlangs3=new Translate("", $conf);
|
||||
$newlangs3->setDefaultLang('el_GR');
|
||||
$localobject->modelpdf='crabe';
|
||||
$result = $localobject->generateDocument($localobject->modelpdf, $newlangs3);
|
||||
$localobject->model_pdf='crabe';
|
||||
$result = $localobject->generateDocument($localobject->model_pdf, $newlangs3);
|
||||
$this->assertLessThan($result, 0);
|
||||
print __METHOD__." result=".$result."\n";
|
||||
|
||||
// Crabe (chinese)
|
||||
$newlangs4=new Translate("", $conf);
|
||||
$newlangs4->setDefaultLang('zh_CN');
|
||||
$localobject->modelpdf='crabe';
|
||||
$result = $localobject->generateDocument($localobject->modelpdf, $newlangs4);
|
||||
$localobject->model_pdf='crabe';
|
||||
$result = $localobject->generateDocument($localobject->model_pdf, $newlangs4);
|
||||
$this->assertLessThan($result, 0);
|
||||
print __METHOD__." result=".$result."\n";
|
||||
|
||||
// Crabe (russian)
|
||||
$newlangs5=new Translate("", $conf);
|
||||
$newlangs5->setDefaultLang('ru_RU');
|
||||
$localobject->modelpdf='crabe';
|
||||
$result = $localobject->generateDocument($localobject->modelpdf, $newlangs5);
|
||||
$localobject->model_pdf='crabe';
|
||||
$result = $localobject->generateDocument($localobject->model_pdf, $newlangs5);
|
||||
$this->assertLessThan($result, 0);
|
||||
print __METHOD__." result=".$result."\n";
|
||||
|
||||
@ -274,8 +274,8 @@ class BuildDocTest extends PHPUnit\Framework\TestCase
|
||||
$localobject->initAsSpecimen();
|
||||
|
||||
// Canelle
|
||||
$localobject->modelpdf='canelle';
|
||||
$result = $localobject->generateDocument($localobject->modelpdf, $langs);
|
||||
$localobject->model_pdf='canelle';
|
||||
$result = $localobject->generateDocument($localobject->model_pdf, $langs);
|
||||
|
||||
$this->assertLessThan($result, 0);
|
||||
print __METHOD__." result=".$result."\n";
|
||||
@ -301,8 +301,8 @@ class BuildDocTest extends PHPUnit\Framework\TestCase
|
||||
$localobject->initAsSpecimen();
|
||||
|
||||
// Einstein
|
||||
$localobject->modelpdf='einstein';
|
||||
$result = $localobject->generateDocument($localobject->modelpdf, $langs);
|
||||
$localobject->model_pdf='einstein';
|
||||
$result = $localobject->generateDocument($localobject->model_pdf, $langs);
|
||||
|
||||
$this->assertLessThan($result, 0);
|
||||
print __METHOD__." result=".$result."\n";
|
||||
@ -329,8 +329,8 @@ class BuildDocTest extends PHPUnit\Framework\TestCase
|
||||
$localobject->initAsSpecimen();
|
||||
|
||||
// Muscadet
|
||||
$localobject->modelpdf='muscadet';
|
||||
$result= $localobject->generateDocument($localobject->modelpdf, $langs);
|
||||
$localobject->model_pdf='muscadet';
|
||||
$result= $localobject->generateDocument($localobject->model_pdf, $langs);
|
||||
|
||||
$this->assertLessThan($result, 0);
|
||||
print __METHOD__." result=".$result."\n";
|
||||
@ -356,8 +356,8 @@ class BuildDocTest extends PHPUnit\Framework\TestCase
|
||||
$localobject->initAsSpecimen();
|
||||
|
||||
// Azur
|
||||
$localobject->modelpdf='azur';
|
||||
$result = $localobject->generateDocument($localobject->modelpdf, $langs);
|
||||
$localobject->model_pdf='azur';
|
||||
$result = $localobject->generateDocument($localobject->model_pdf, $langs);
|
||||
|
||||
$this->assertLessThan($result, 0);
|
||||
print __METHOD__." result=".$result."\n";
|
||||
@ -382,8 +382,8 @@ class BuildDocTest extends PHPUnit\Framework\TestCase
|
||||
$localobject->initAsSpecimen();
|
||||
|
||||
// Baleine
|
||||
$localobject->modelpdf='baleine';
|
||||
$result = $localobject->generateDocument($localobject->modelpdf, $langs);
|
||||
$localobject->model_pdf='baleine';
|
||||
$result = $localobject->generateDocument($localobject->model_pdf, $langs);
|
||||
|
||||
$this->assertLessThan($result, 0);
|
||||
print __METHOD__." result=".$result."\n";
|
||||
@ -409,8 +409,8 @@ class BuildDocTest extends PHPUnit\Framework\TestCase
|
||||
$localobject->initAsSpecimen();
|
||||
|
||||
// Soleil
|
||||
$localobject->modelpdf='soleil';
|
||||
$result=fichinter_create($db, $localobject, $localobject->modelpdf, $langs);
|
||||
$localobject->model_pdf='soleil';
|
||||
$result=fichinter_create($db, $localobject, $localobject->model_pdf, $langs);
|
||||
|
||||
$this->assertLessThan($result, 0);
|
||||
print __METHOD__." result=".$result."\n";
|
||||
@ -436,15 +436,15 @@ class BuildDocTest extends PHPUnit\Framework\TestCase
|
||||
$localobject->initAsSpecimen();
|
||||
|
||||
// Merou
|
||||
$localobject->modelpdf='merou';
|
||||
$result= $localobject->generateDocument($localobject->modelpdf, $langs);
|
||||
$localobject->model_pdf='merou';
|
||||
$result= $localobject->generateDocument($localobject->model_pdf, $langs);
|
||||
|
||||
$this->assertLessThan($result, 0);
|
||||
print __METHOD__." result=".$result."\n";
|
||||
|
||||
// Rouget
|
||||
$localobject->modelpdf='rouget';
|
||||
$result= $localobject->generateDocument($localobject->modelpdf, $langs);
|
||||
$localobject->model_pdf='rouget';
|
||||
$result= $localobject->generateDocument($localobject->model_pdf, $langs);
|
||||
|
||||
$this->assertLessThan($result, 0);
|
||||
print __METHOD__." result=".$result."\n";
|
||||
|
||||
@ -174,7 +174,7 @@ class ChargeSocialesTest extends PHPUnit\Framework\TestCase
|
||||
/**
|
||||
* testChargeSocialesValid
|
||||
*
|
||||
* @param Object $localobject Social contribution
|
||||
* @param ChargeSociales $localobject Social contribution
|
||||
* @return void
|
||||
*
|
||||
* @depends testChargeSocialesFetch
|
||||
@ -188,7 +188,7 @@ class ChargeSocialesTest extends PHPUnit\Framework\TestCase
|
||||
$langs=$this->savlangs;
|
||||
$db=$this->savdb;
|
||||
|
||||
$result=$localobject->set_paid($user);
|
||||
$result=$localobject->setPaid($user);
|
||||
print __METHOD__." id=".$localobject->id." result=".$result."\n";
|
||||
|
||||
$this->assertLessThan($result, 0);
|
||||
@ -198,7 +198,7 @@ class ChargeSocialesTest extends PHPUnit\Framework\TestCase
|
||||
/**
|
||||
* testChargeSocialesOther
|
||||
*
|
||||
* @param Object $localobject Social contribution
|
||||
* @param ChargeSociales $localobject Social contribution
|
||||
* @return void
|
||||
*
|
||||
* @depends testChargeSocialesValid
|
||||
|
||||
@ -189,7 +189,7 @@ class LoanTest extends PHPUnit\Framework\TestCase
|
||||
$langs=$this->savlangs;
|
||||
$db=$this->savdb;
|
||||
|
||||
$result=$localobject->set_paid($user);
|
||||
$result=$localobject->setPaid($user);
|
||||
|
||||
print __METHOD__." id=".$localobject->id." result=".$result."\n";
|
||||
$this->assertLessThan($result, 0);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user