diff --git a/htdocs/takepos/invoice.php b/htdocs/takepos/invoice.php
index 6f5e829ca47..f315eac7df1 100644
--- a/htdocs/takepos/invoice.php
+++ b/htdocs/takepos/invoice.php
@@ -598,7 +598,7 @@ if (empty($reshook)) {
$localtax1_tx = get_localtax($tva_tx, 1, $customer, $mysoc, $tva_npr);
$localtax2_tx = get_localtax($tva_tx, 2, $customer, $mysoc, $tva_npr);
- $invoice->addline($desc, $number, 1, $tva_tx, $localtax1_tx, $localtax2_tx, 0, 0, '', 0, 0, 0, '', getDolGlobalInt('TAKEPOS_CHANGE_PRICE_HT') ? 'HT' : 'TTC', $number, 0, -1, 0, '', 0, 0, null, '', '', 0, 100, '', null, 0);
+ $invoice->addline($desc, $number, 1, $tva_tx, $localtax1_tx, $localtax2_tx, 0, 0, '', 0, 0, 0, '', getDolGlobalInt('TAKEPOS_DISCOUNT_TTC') ? ($number >= 0 ? 'HT' : 'TTC') : (getDolGlobalInt('TAKEPOS_CHANGE_PRICE_HT') ? 'HT' : 'TTC'), $number, 0, -1, 0, '', 0, 0, null, '', '', 0, 100, '', null, 0);
$invoice->fetch($placeid);
}
@@ -1684,7 +1684,7 @@ if ($placeid > 0) {
print '';
-if (($action == "valid" || $action == "history") && $invoice->type != Facture::TYPE_CREDIT_NOTE) {
+if (($action == "valid" || $action == "history") && $invoice->type != Facture::TYPE_CREDIT_NOTE && empty($conf->global->TAKEPOS_NO_CREDITNOTE)) {
print '';
}
diff --git a/htdocs/ticket/class/actions_ticket.class.php b/htdocs/ticket/class/actions_ticket.class.php
index 29a013f1eb9..c566bf54329 100644
--- a/htdocs/ticket/class/actions_ticket.class.php
+++ b/htdocs/ticket/class/actions_ticket.class.php
@@ -306,6 +306,14 @@ class ActionsTicket
if ($res) {
print $userstat->getNomUrl(0);
}
+ } elseif (isset($arraymsgs['fk_contact_author'])) {
+ $contactstat = new Contact($this->db);
+ $res = $contactstat->fetch(0, null, '', $arraymsgs['fk_contact_author']);
+ if ($res) {
+ print $contactstat->getNomUrl(0, 'nolink');
+ } else {
+ print $arraymsgs['fk_contact_author'];
+ }
} else {
print $langs->trans('Customer');
}
diff --git a/htdocs/ticket/class/ticket.class.php b/htdocs/ticket/class/ticket.class.php
index 2e36775bc0c..01d911d0c8b 100644
--- a/htdocs/ticket/class/ticket.class.php
+++ b/htdocs/ticket/class/ticket.class.php
@@ -1706,6 +1706,9 @@ class Ticket extends CommonObject
if ($send_email) {
$actioncomm->code .= '_SENTBYMAIL';
}
+ if ((empty($user->id) || $user->id == 0) && isset($_SESSION['email_customer'])) {
+ $actioncomm->email_from = $_SESSION['email_customer'];
+ }
$actioncomm->socid = $this->socid;
$actioncomm->label = $this->subject;
$actioncomm->note_private = $this->message;
@@ -1759,7 +1762,7 @@ class Ticket extends CommonObject
// Cache already loaded
- $sql = "SELECT id as rowid, fk_user_author, datec, label, note as message, code";
+ $sql = "SELECT id as rowid, fk_user_author, email_from, datec, label, note as message, code";
$sql .= " FROM ".MAIN_DB_PREFIX."actioncomm";
$sql .= " WHERE fk_element = ".(int) $this->id;
$sql .= " AND elementtype = 'ticket'";
@@ -1774,6 +1777,9 @@ class Ticket extends CommonObject
$obj = $this->db->fetch_object($resql);
$this->cache_msgs_ticket[$i]['id'] = $obj->rowid;
$this->cache_msgs_ticket[$i]['fk_user_author'] = $obj->fk_user_author;
+ if ($obj->code == 'TICKET_MSG' && empty($obj->fk_user_author)) {
+ $this->cache_msgs_ticket[$i]['fk_contact_author'] = $obj->email_from;
+ }
$this->cache_msgs_ticket[$i]['datec'] = $this->db->jdate($obj->datec);
$this->cache_msgs_ticket[$i]['subject'] = $obj->label;
$this->cache_msgs_ticket[$i]['message'] = $obj->message;
diff --git a/test/phpunit/ContactTest.php b/test/phpunit/ContactTest.php
index 45b5eb912b0..82447cd4bc9 100644
--- a/test/phpunit/ContactTest.php
+++ b/test/phpunit/ContactTest.php
@@ -298,7 +298,7 @@ class ContactTest extends PHPUnit\Framework\TestCase
$result=$localobject->getFullAddress(1);
print __METHOD__." id=".$localobject->id." result=".$result."\n";
- $this->assertContains("New address\nNew zip New town\nBelgium", $result);
+ $this->assertStringContainsString("New address\nNew zip New town\nBelgium", $result);
$localobject->info($localobject->id);
print __METHOD__." localobject->date_creation=".$localobject->date_creation."\n";
@@ -359,7 +359,7 @@ class ContactTest extends PHPUnit\Framework\TestCase
$localobjectadd->town='New town';
$result=$localobjectadd->getFullAddress(1);
print __METHOD__." id=".$localobjectadd->id." result=".$result."\n";
- $this->assertContains("New address\nNew zip New town\nFrance", $result);
+ $this->assertStringContainsString("New address\nNew zip New town\nFrance", $result);
// Belgium
unset($localobjectadd->country_code);
@@ -370,7 +370,7 @@ class ContactTest extends PHPUnit\Framework\TestCase
$localobjectadd->town='New town';
$result=$localobjectadd->getFullAddress(1);
print __METHOD__." id=".$localobjectadd->id." result=".$result."\n";
- $this->assertContains("New address\nNew zip New town\nBelgium", $result);
+ $this->assertStringContainsString("New address\nNew zip New town\nBelgium", $result);
// Switzerland
unset($localobjectadd->country_code);
@@ -381,7 +381,7 @@ class ContactTest extends PHPUnit\Framework\TestCase
$localobjectadd->town='New town';
$result=$localobjectadd->getFullAddress(1);
print __METHOD__." id=".$localobjectadd->id." result=".$result."\n";
- $this->assertContains("New address\nNew zip New town\nSwitzerland", $result);
+ $this->assertStringContainsString("New address\nNew zip New town\nSwitzerland", $result);
// USA
unset($localobjectadd->country_code);
@@ -392,7 +392,7 @@ class ContactTest extends PHPUnit\Framework\TestCase
$localobjectadd->town='New town';
$result=$localobjectadd->getFullAddress(1);
print __METHOD__." id=".$localobjectadd->id." result=".$result."\n";
- $this->assertContains("New address\nNew town, New zip\nUnited States", $result);
+ $this->assertStringContainsString("New address\nNew town, New zip\nUnited States", $result);
return $localobjectadd->id;
}