Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop

This commit is contained in:
Laurent Destailleur 2020-11-13 09:56:08 +01:00
commit 1d252c18fc
5 changed files with 90 additions and 35 deletions

View File

@ -221,7 +221,9 @@ class PrestaShopWebservice
* Load XML from string. Can throw exception * Load XML from string. Can throw exception
* *
* @param string $response String from a CURL response * @param string $response String from a CURL response
* @return SimpleXMLElement status_code, response * @return SimpleXMLElement|boolean status_code, response
*
* @throw PrestaShopWebserviceException
*/ */
protected function parseXML($response) protected function parseXML($response)
{ {
@ -251,6 +253,8 @@ class PrestaShopWebservice
* *
* @param array $options Options * @param array $options Options
* @return SimpleXMLElement status_code, response * @return SimpleXMLElement status_code, response
*
* @throw PrestaShopWebserviceException
*/ */
public function add($options) public function add($options)
{ {
@ -268,10 +272,10 @@ class PrestaShopWebservice
} else { } else {
throw new PrestaShopWebserviceException('Bad parameters given'); throw new PrestaShopWebserviceException('Bad parameters given');
} }
$request = self::executeRequest($url, array(CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => $xml)); $request = $this->executeRequest($url, array(CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => $xml));
self::checkStatusCode($request['status_code']); $this->checkStatusCode($request['status_code']);
return self::parseXML($request['response']); return $this->parseXML($request['response']);
} }
/** /**
@ -300,7 +304,9 @@ class PrestaShopWebservice
* ?> * ?>
* </code> * </code>
* @param array $options Array representing resource to get. * @param array $options Array representing resource to get.
* @return SimpleXMLElement status_code, response * @return SimpleXMLElement|boolean status_code, response
*
* @throw PrestaShopWebserviceException
*/ */
public function get($options) public function get($options)
{ {
@ -326,9 +332,9 @@ class PrestaShopWebservice
throw new PrestaShopWebserviceException('Bad parameters given '); throw new PrestaShopWebserviceException('Bad parameters given ');
} }
$request = self::executeRequest($url, array(CURLOPT_CUSTOMREQUEST => 'GET')); $request = $this->executeRequest($url, array(CURLOPT_CUSTOMREQUEST => 'GET'));
self::checkStatusCode($request['status_code']); // check the response validity $this->checkStatusCode($request['status_code']); // check the response validity
return self::parseXML($request['response']); return $this->parseXML($request['response']);
} }
/** /**
@ -336,6 +342,8 @@ class PrestaShopWebservice
* *
* @param array $options Array representing resource for head request. * @param array $options Array representing resource for head request.
* @return SimpleXMLElement status_code, response * @return SimpleXMLElement status_code, response
*
* @throw PrestaShopWebserviceException
*/ */
public function head($options) public function head($options)
{ {
@ -358,8 +366,8 @@ class PrestaShopWebservice
} else { } else {
throw new PrestaShopWebserviceException('Bad parameters given'); throw new PrestaShopWebserviceException('Bad parameters given');
} }
$request = self::executeRequest($url, array(CURLOPT_CUSTOMREQUEST => 'HEAD', CURLOPT_NOBODY => true)); $request = $this->executeRequest($url, array(CURLOPT_CUSTOMREQUEST => 'HEAD', CURLOPT_NOBODY => true));
self::checkStatusCode($request['status_code']); // check the response validity $this->checkStatusCode($request['status_code']); // check the response validity
return $request['header']; return $request['header'];
} }
/** /**
@ -372,6 +380,8 @@ class PrestaShopWebservice
* *
* @param array $options Array representing resource to edit. * @param array $options Array representing resource to edit.
* @return SimpleXMLElement status_code, response * @return SimpleXMLElement status_code, response
*
* @throw PrestaShopWebserviceException
*/ */
public function edit($options) public function edit($options)
{ {
@ -390,9 +400,9 @@ class PrestaShopWebservice
throw new PrestaShopWebserviceException('Bad parameters given'); throw new PrestaShopWebserviceException('Bad parameters given');
} }
$request = self::executeRequest($url, array(CURLOPT_CUSTOMREQUEST => 'PUT', CURLOPT_POSTFIELDS => $xml)); $request = $this->executeRequest($url, array(CURLOPT_CUSTOMREQUEST => 'PUT', CURLOPT_POSTFIELDS => $xml));
self::checkStatusCode($request['status_code']); // check the response validity $this->checkStatusCode($request['status_code']); // check the response validity
return self::parseXML($request['response']); return $this->parseXML($request['response']);
} }
} }

View File

@ -0,0 +1 @@

View File

@ -0,0 +1 @@

View File

@ -41,7 +41,7 @@ if (!empty($_REQUEST['CASHDESK_ID_THIRDPARTY'.$terminal.'_id']))
// Security check // Security check
if (!$user->admin) accessforbidden(); if (!$user->admin) accessforbidden();
$langs->loadLangs(array("admin", "cashdesk", "printing")); $langs->loadLangs(array("admin", "cashdesk", "printing", "receiptprinter"));
global $db; global $db;
@ -255,7 +255,7 @@ if ($conf->global->TAKEPOS_PRINT_METHOD == "receiptprinter" || $conf->global->TA
foreach ($printer->listprinterstemplates as $key => $value) { foreach ($printer->listprinterstemplates as $key => $value) {
$templates[$value['rowid']] = $value['name']; $templates[$value['rowid']] = $value['name'];
} }
print '<tr class="oddeven"><td>'.$langs->trans("MainTemplateToUse").'</td>'; print '<tr class="oddeven"><td>'.$langs->trans("MainTemplateToUse").' (<a href="'.DOL_URL_ROOT.'/admin/receiptprinter.php?mode=template">'.$langs->trans("SetupReceiptTemplate").'</a>)</td>';
print '<td>'; print '<td>';
print $form->selectarray('TAKEPOS_TEMPLATE_TO_USE_FOR_INVOICES'.$terminal, $templates, (empty($conf->global->{'TAKEPOS_TEMPLATE_TO_USE_FOR_INVOICES'.$terminal}) ? '0' : $conf->global->{'TAKEPOS_TEMPLATE_TO_USE_FOR_INVOICES'.$terminal}), 1); print $form->selectarray('TAKEPOS_TEMPLATE_TO_USE_FOR_INVOICES'.$terminal, $templates, (empty($conf->global->{'TAKEPOS_TEMPLATE_TO_USE_FOR_INVOICES'.$terminal}) ? '0' : $conf->global->{'TAKEPOS_TEMPLATE_TO_USE_FOR_INVOICES'.$terminal}), 1);
print '</td></tr>'; print '</td></tr>';

View File

@ -672,7 +672,7 @@ if ($action == "updatereduction")
if ($action == "order" and $placeid != 0) if ($action == "order" and $placeid != 0)
{ {
include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
if ($conf->global->TAKEPOS_PRINT_METHOD == "receiptprinter") { if ($conf->global->TAKEPOS_PRINT_METHOD == "receiptprinter" || $conf->global->TAKEPOS_PRINT_METHOD == "takeposconnector") {
require_once DOL_DOCUMENT_ROOT.'/core/class/dolreceiptprinter.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/dolreceiptprinter.class.php';
$printer = new dolReceiptPrinter($db); $printer = new dolReceiptPrinter($db);
} }
@ -703,10 +703,13 @@ if ($action == "order" and $placeid != 0)
$order_receipt_printer1 .= '</td></tr>'; $order_receipt_printer1 .= '</td></tr>';
} }
} }
if ($conf->global->TAKEPOS_PRINT_METHOD == "receiptprinter" && $linestoprint > 0) { if (($conf->global->TAKEPOS_PRINT_METHOD == "receiptprinter" || $conf->global->TAKEPOS_PRINT_METHOD == "takeposconnector") && $linestoprint > 0) {
$invoice->fetch($placeid); //Reload object before send to printer $invoice->fetch($placeid); //Reload object before send to printer
$printer->orderprinter = 1; $printer->orderprinter = 1;
echo "<script>";
echo "var orderprinter1esc='";
$ret = $printer->sendToPrinter($invoice, $conf->global->{'TAKEPOS_TEMPLATE_TO_USE_FOR_ORDERS'.$_SESSION["takeposterminal"]}, $conf->global->{'TAKEPOS_ORDER_PRINTER1_TO_USE'.$_SESSION["takeposterminal"]}); // PRINT TO PRINTER 1 $ret = $printer->sendToPrinter($invoice, $conf->global->{'TAKEPOS_TEMPLATE_TO_USE_FOR_ORDERS'.$_SESSION["takeposterminal"]}, $conf->global->{'TAKEPOS_ORDER_PRINTER1_TO_USE'.$_SESSION["takeposterminal"]}); // PRINT TO PRINTER 1
echo "';</script>";
} }
$sql = "UPDATE ".MAIN_DB_PREFIX."facturedet set special_code='4' where special_code='1' and fk_facture=".$invoice->id; // Set as printed $sql = "UPDATE ".MAIN_DB_PREFIX."facturedet set special_code='4' where special_code='1' and fk_facture=".$invoice->id; // Set as printed
$db->query($sql); $db->query($sql);
@ -731,10 +734,13 @@ if ($action == "order" and $placeid != 0)
$order_receipt_printer2 .= '</td></tr>'; $order_receipt_printer2 .= '</td></tr>';
} }
} }
if ($conf->global->TAKEPOS_PRINT_METHOD == "receiptprinter" && $linestoprint > 0) { if (($conf->global->TAKEPOS_PRINT_METHOD == "receiptprinter" || $conf->global->TAKEPOS_PRINT_METHOD == "takeposconnector") && $linestoprint > 0) {
$invoice->fetch($placeid); //Reload object before send to printer $invoice->fetch($placeid); //Reload object before send to printer
$printer->orderprinter = 2; $printer->orderprinter = 2;
echo "<script>";
echo "var orderprinter2esc='";
$ret = $printer->sendToPrinter($invoice, $conf->global->{'TAKEPOS_TEMPLATE_TO_USE_FOR_ORDERS'.$_SESSION["takeposterminal"]}, $conf->global->{'TAKEPOS_ORDER_PRINTER2_TO_USE'.$_SESSION["takeposterminal"]}); // PRINT TO PRINTER 2 $ret = $printer->sendToPrinter($invoice, $conf->global->{'TAKEPOS_TEMPLATE_TO_USE_FOR_ORDERS'.$_SESSION["takeposterminal"]}, $conf->global->{'TAKEPOS_ORDER_PRINTER2_TO_USE'.$_SESSION["takeposterminal"]}); // PRINT TO PRINTER 2
echo "';</script>";
} }
$sql = "UPDATE ".MAIN_DB_PREFIX."facturedet set special_code='4' where special_code='2' and fk_facture=".$invoice->id; // Set as printed $sql = "UPDATE ".MAIN_DB_PREFIX."facturedet set special_code='4' where special_code='2' and fk_facture=".$invoice->id; // Set as printed
$db->query($sql); $db->query($sql);
@ -759,10 +765,13 @@ if ($action == "order" and $placeid != 0)
$order_receipt_printer3 .= '</td></tr>'; $order_receipt_printer3 .= '</td></tr>';
} }
} }
if ($conf->global->TAKEPOS_PRINT_METHOD == "receiptprinter" && $linestoprint > 0) { if (($conf->global->TAKEPOS_PRINT_METHOD == "receiptprinter" || $conf->global->TAKEPOS_PRINT_METHOD == "takeposconnector") && $linestoprint > 0) {
$invoice->fetch($placeid); //Reload object before send to printer $invoice->fetch($placeid); //Reload object before send to printer
$printer->orderprinter = 3; $printer->orderprinter = 3;
echo "<script>";
echo "var orderprinter3esc='";
$ret = $printer->sendToPrinter($invoice, $conf->global->{'TAKEPOS_TEMPLATE_TO_USE_FOR_ORDERS'.$_SESSION["takeposterminal"]}, $conf->global->{'TAKEPOS_ORDER_PRINTER3_TO_USE'.$_SESSION["takeposterminal"]}); // PRINT TO PRINTER 3 $ret = $printer->sendToPrinter($invoice, $conf->global->{'TAKEPOS_TEMPLATE_TO_USE_FOR_ORDERS'.$_SESSION["takeposterminal"]}, $conf->global->{'TAKEPOS_ORDER_PRINTER3_TO_USE'.$_SESSION["takeposterminal"]}); // PRINT TO PRINTER 3
echo "';</script>";
} }
$sql = "UPDATE ".MAIN_DB_PREFIX."facturedet set special_code='4' where special_code='3' and fk_facture=".$invoice->id; // Set as printed $sql = "UPDATE ".MAIN_DB_PREFIX."facturedet set special_code='4' where special_code='3' and fk_facture=".$invoice->id; // Set as printed
$db->query($sql); $db->query($sql);
@ -841,6 +850,16 @@ $(document).ready(function() {
<?php <?php
if ($action == "order" and $order_receipt_printer1 != "") { if ($action == "order" and $order_receipt_printer1 != "") {
if (filter_var($conf->global->TAKEPOS_PRINT_SERVER, FILTER_VALIDATE_URL) == true){
?>
$.ajax({
type: "POST",
url: '<?php print $conf->global->TAKEPOS_PRINT_SERVER; ?>/printer/index.php',
data: 'invoice='+orderprinter1esc
});
<?php
}
else {
?> ?>
$.ajax({ $.ajax({
type: "POST", type: "POST",
@ -849,9 +868,20 @@ if ($action == "order" and $order_receipt_printer1 != "") {
print $headerorder.$order_receipt_printer1.$footerorder; ?>' print $headerorder.$order_receipt_printer1.$footerorder; ?>'
}); });
<?php <?php
}
} }
if ($action == "order" and $order_receipt_printer2 != "") { if ($action == "order" and $order_receipt_printer2 != "") {
if (filter_var($conf->global->TAKEPOS_PRINT_SERVER, FILTER_VALIDATE_URL) == true){
?>
$.ajax({
type: "POST",
url: '<?php print $conf->global->TAKEPOS_PRINT_SERVER; ?>/printer/index.php?printer=2',
data: 'invoice='+orderprinter2esc
});
<?php
}
else {
?> ?>
$.ajax({ $.ajax({
type: "POST", type: "POST",
@ -860,6 +890,19 @@ if ($action == "order" and $order_receipt_printer2 != "") {
print $headerorder.$order_receipt_printer2.$footerorder; ?>' print $headerorder.$order_receipt_printer2.$footerorder; ?>'
}); });
<?php <?php
}
}
if ($action == "order" and $order_receipt_printer3 != "") {
if (filter_var($conf->global->TAKEPOS_PRINT_SERVER, FILTER_VALIDATE_URL) == true){
?>
$.ajax({
type: "POST",
url: '<?php print $conf->global->TAKEPOS_PRINT_SERVER; ?>/printer/index.php?printer=3',
data: 'invoice='+orderprinter3esc
});
<?php
}
} }
// Set focus to search field // Set focus to search field