Phone layout and functional improvements
This commit is contained in:
parent
7a927a22e3
commit
8f03813aa9
81
htdocs/takepos/css/phone.css
Normal file
81
htdocs/takepos/css/phone.css
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
html,body {
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding:3px;
|
||||||
|
margin:0;
|
||||||
|
height:100%;
|
||||||
|
width:100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container{
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
margin: 0 auto;
|
||||||
|
overflow: visible;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.phonerow1{
|
||||||
|
margin: 0 auto;
|
||||||
|
width: 100%;
|
||||||
|
height: 40%;
|
||||||
|
min-height: 40%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.phonerow2{
|
||||||
|
margin: 0 auto;
|
||||||
|
width: 100%;
|
||||||
|
height: 40%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.phonebuttonsrow{
|
||||||
|
margin: 0 auto;
|
||||||
|
width: 100%;
|
||||||
|
height: 5%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.phonediv1{
|
||||||
|
height:100%;
|
||||||
|
min-height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
text-align: center;
|
||||||
|
box-sizing: border-box;
|
||||||
|
overflow: auto;
|
||||||
|
padding-top: 0;
|
||||||
|
padding-bottom: 10px;
|
||||||
|
padding-right: 5px;
|
||||||
|
padding-left: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.phonediv2{
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding-top: 0;
|
||||||
|
padding-bottom: 10px;
|
||||||
|
padding-right: 5px;
|
||||||
|
padding-left: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.phonediv3{
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding-top: 0;
|
||||||
|
padding-bottom: 10px;
|
||||||
|
padding-right: 5px;
|
||||||
|
padding-left: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
button.phonebutton {
|
||||||
|
display: inline-block;
|
||||||
|
position: relative;
|
||||||
|
padding: 0;
|
||||||
|
line-height: normal;
|
||||||
|
cursor: pointer;
|
||||||
|
vertical-align: middle;
|
||||||
|
text-align: center;
|
||||||
|
overflow: visible; /* removes extra width in IE */
|
||||||
|
width:24%;
|
||||||
|
height:90%;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
@ -570,13 +570,19 @@ if ($conf->global->TAKEPOS_BAR_RESTAURANT)
|
|||||||
$label = $obj->label;
|
$label = $obj->label;
|
||||||
$floor = $obj->floor;
|
$floor = $obj->floor;
|
||||||
}
|
}
|
||||||
print $langs->trans('Place')." <b>".$label."</b> - ";
|
// In phone version only show when is invoice page
|
||||||
print $langs->trans('Floor')." <b>".$floor."</b> - ";
|
if ($mobilepage=="invoice" || $mobilepage=="") {
|
||||||
|
print $langs->trans('Place') . " <b>" . $label . "</b> - ";
|
||||||
|
print $langs->trans('Floor') . " <b>" . $floor . "</b> - ";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// In phone version only show when is invoice page
|
||||||
|
if ($mobilepage=="invoice" || $mobilepage=="") {
|
||||||
|
print $langs->trans('TotalTTC');
|
||||||
|
print ' : <b>' . price($invoice->total_ttc, 1, '', 1, -1, -1, $conf->currency) . '</b></span>';
|
||||||
|
print '<br>' . $sectionwithinvoicelink;
|
||||||
|
print '</td>';
|
||||||
}
|
}
|
||||||
print $langs->trans('TotalTTC');
|
|
||||||
print ' : <b>'.price($invoice->total_ttc, 1, '', 1, - 1, - 1, $conf->currency).'</b></span>';
|
|
||||||
print '<br>'.$sectionwithinvoicelink;
|
|
||||||
print '</td>';
|
|
||||||
if ($_SESSION["basiclayout"]!=1)
|
if ($_SESSION["basiclayout"]!=1)
|
||||||
{
|
{
|
||||||
print '<td class="linecolqty right">' . $langs->trans('ReductionShort') . '</td>';
|
print '<td class="linecolqty right">' . $langs->trans('ReductionShort') . '</td>';
|
||||||
@ -595,16 +601,14 @@ if ($_SESSION["basiclayout"]==1)
|
|||||||
$htmlforlines = '';
|
$htmlforlines = '';
|
||||||
foreach ($categories as $row){
|
foreach ($categories as $row){
|
||||||
$htmlforlines.= '<tr class="drag drop oddeven posinvoiceline';
|
$htmlforlines.= '<tr class="drag drop oddeven posinvoiceline';
|
||||||
$htmlforlines.= '" onclick="location.href=\'invoice.php?mobilepage=products&place=' . $place . '&catid=' . $row['id'] . '\'">';
|
$htmlforlines.= '" onclick="LoadProducts(' . $row['id'] . ');">';
|
||||||
$htmlforlines.= '<td class="left">';
|
$htmlforlines.= '<td class="left">';
|
||||||
$htmlforlines.= $row['label'];
|
$htmlforlines.= $row['label'];
|
||||||
$htmlforlines.= '</td>';
|
$htmlforlines.= '</td>';
|
||||||
$htmlforlines.= '</tr>'."\n";
|
$htmlforlines.= '</tr>'."\n";
|
||||||
}
|
}
|
||||||
$htmlforlines.= '</table>';
|
$htmlforlines.= '</table>';
|
||||||
$htmlforlines.= '<div class="tabsAction">';
|
$htmlforlines.= '</table>';
|
||||||
$htmlforlines.= '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?mobilepage=places&place=' . $place. '">'.$langs->trans("Floors").'</a>';
|
|
||||||
$htmlforlines.= '</div>';
|
|
||||||
print $htmlforlines;
|
print $htmlforlines;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -618,17 +622,13 @@ if ($_SESSION["basiclayout"]==1)
|
|||||||
$htmlforlines = '';
|
$htmlforlines = '';
|
||||||
foreach ($prods as $row) {
|
foreach ($prods as $row) {
|
||||||
$htmlforlines.= '<tr class="drag drop oddeven posinvoiceline';
|
$htmlforlines.= '<tr class="drag drop oddeven posinvoiceline';
|
||||||
$htmlforlines.= '" onclick="location.href=\'invoice.php?mobilepage=invoice&action=addline&place=' . $place . '&idproduct=' . $row->id . '\'">';
|
$htmlforlines.= '" onclick="AddProduct(\'' . $place . '\', ' . $row->id . ')">';
|
||||||
$htmlforlines.= '<td class="left">';
|
$htmlforlines.= '<td class="left">';
|
||||||
$htmlforlines.= $row->label;
|
$htmlforlines.= $row->label;
|
||||||
$htmlforlines.= '</td>';
|
$htmlforlines.= '</td>';
|
||||||
$htmlforlines.= '</tr>'."\n";
|
$htmlforlines.= '</tr>'."\n";
|
||||||
}
|
}
|
||||||
$htmlforlines.= '</table>';
|
$htmlforlines.= '</table>';
|
||||||
$htmlforlines.= '<div class="tabsAction">';
|
|
||||||
$htmlforlines.= '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?mobilepage=cats&place=' . $place. '">'.$langs->trans("Categories").'</a>';
|
|
||||||
$htmlforlines.= '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?mobilepage=places&place=' . $place. '">'.$langs->trans("Floors").'</a>';
|
|
||||||
$htmlforlines.= '</div>';
|
|
||||||
print $htmlforlines;
|
print $htmlforlines;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -641,24 +641,22 @@ if ($_SESSION["basiclayout"]==1)
|
|||||||
while($row = $db->fetch_array($resql)){
|
while($row = $db->fetch_array($resql)){
|
||||||
$rows[] = $row;
|
$rows[] = $row;
|
||||||
$htmlforlines.= '<tr class="drag drop oddeven posinvoiceline';
|
$htmlforlines.= '<tr class="drag drop oddeven posinvoiceline';
|
||||||
$htmlforlines.= '" onclick="location.href=\'invoice.php?mobilepage=invoice&place=' . $row['label'] . '\'">';
|
$htmlforlines.= '" onclick="LoadPlace(\'' . $row['label'] . '\')">';
|
||||||
$htmlforlines.= '<td class="left">';
|
$htmlforlines.= '<td class="left">';
|
||||||
$htmlforlines.= $row['label'];
|
$htmlforlines.= $row['label'];
|
||||||
$htmlforlines.= '</td>';
|
$htmlforlines.= '</td>';
|
||||||
$htmlforlines.= '</tr>'."\n";
|
$htmlforlines.= '</tr>'."\n";
|
||||||
}
|
}
|
||||||
$htmlforlines.= '</table>';
|
$htmlforlines.= '</table>';
|
||||||
$htmlforlines.= '<div class="tabsAction">';
|
|
||||||
$htmlforlines.= '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?mobilepage=cats&place=' . $place. '">'.$langs->trans("Categories").'</a>';
|
|
||||||
$htmlforlines.= '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?mobilepage=places&place=' . $place. '">'.$langs->trans("Floors").'</a>';
|
|
||||||
$htmlforlines.= '</div>';
|
|
||||||
print $htmlforlines;
|
print $htmlforlines;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($placeid > 0)
|
if ($placeid > 0)
|
||||||
{
|
{
|
||||||
if ($_SESSION["basiclayout"]==1 && $mobilepage!="invoice") return;
|
//In Phone basic layout hide some content depends situation
|
||||||
|
if ($_SESSION["basiclayout"]==1 && $mobilepage!="invoice" && $action!="order") return;
|
||||||
|
|
||||||
if (is_array($invoice->lines) && count($invoice->lines))
|
if (is_array($invoice->lines) && count($invoice->lines))
|
||||||
{
|
{
|
||||||
$tmplines = array_reverse($invoice->lines);
|
$tmplines = array_reverse($invoice->lines);
|
||||||
@ -716,14 +714,6 @@ else { // No invoice generated yet
|
|||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
if ($_SESSION["basiclayout"]==1 && $mobilepage=="invoice")
|
|
||||||
{
|
|
||||||
print '<div class="tabsAction">';
|
|
||||||
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?mobilepage=cats&place=' . $place. '">'.$langs->trans("Categories").'</a>';
|
|
||||||
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?mobilepage=places&place=' . $place. '">'.$langs->trans("Floors").'</a>';
|
|
||||||
print '</div>';
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($invoice->socid != $conf->global->{'CASHDESK_ID_THIRDPARTY'.$_SESSION["takeposterminal"]})
|
if ($invoice->socid != $conf->global->{'CASHDESK_ID_THIRDPARTY'.$_SESSION["takeposterminal"]})
|
||||||
{
|
{
|
||||||
$soc = new Societe($db);
|
$soc = new Societe($db);
|
||||||
|
|||||||
190
htdocs/takepos/phone.php
Normal file
190
htdocs/takepos/phone.php
Normal file
@ -0,0 +1,190 @@
|
|||||||
|
<?php
|
||||||
|
/* Copyright (C) 2018 Andreu Bisquerra <jove@bisquerra.com>
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file htdocs/takepos/phone.php
|
||||||
|
* \ingroup takepos
|
||||||
|
* \brief TakePOS Phone screen
|
||||||
|
*/
|
||||||
|
|
||||||
|
//if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER','1'); // Not disabled cause need to load personalized language
|
||||||
|
//if (! defined('NOREQUIREDB')) define('NOREQUIREDB','1'); // Not disabled cause need to load personalized language
|
||||||
|
//if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC','1');
|
||||||
|
//if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1');
|
||||||
|
if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK', '1');
|
||||||
|
if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', '1');
|
||||||
|
if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1');
|
||||||
|
if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1');
|
||||||
|
if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1');
|
||||||
|
|
||||||
|
require '../main.inc.php'; // Load $user and permissions
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php';
|
||||||
|
|
||||||
|
$place = (GETPOST('place', 'int') > 0 ? GETPOST('place', 'int') : 0); // $place is id of table for Ba or Restaurant
|
||||||
|
$action = GETPOST('action', 'alpha');
|
||||||
|
$setterminal = GETPOST('setterminal', 'int');
|
||||||
|
|
||||||
|
if ($setterminal>0)
|
||||||
|
{
|
||||||
|
$_SESSION["takeposterminal"]=$setterminal;
|
||||||
|
}
|
||||||
|
|
||||||
|
$langs->loadLangs(array("bills","orders","commercial","cashdesk","receiptprinter"));
|
||||||
|
|
||||||
|
/*
|
||||||
|
* View
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Title
|
||||||
|
$title='TakePOS - Dolibarr '.DOL_VERSION;
|
||||||
|
if (! empty($conf->global->MAIN_APPLICATION_TITLE)) $title='TakePOS - '.$conf->global->MAIN_APPLICATION_TITLE;
|
||||||
|
$head='<meta name="apple-mobile-web-app-title" content="TakePOS"/>
|
||||||
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||||
|
<meta name="mobile-web-app-capable" content="yes">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>';
|
||||||
|
top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss);
|
||||||
|
|
||||||
|
?>
|
||||||
|
<link rel="stylesheet" href="css/phone.css">
|
||||||
|
<script language="javascript">
|
||||||
|
<?php
|
||||||
|
$categorie = new Categorie($db);
|
||||||
|
$categories = $categorie->get_full_arbo('product', (($conf->global->TAKEPOS_ROOT_CATEGORY_ID > 0)?$conf->global->TAKEPOS_ROOT_CATEGORY_ID:0), 1);
|
||||||
|
|
||||||
|
// Search root category to know its level
|
||||||
|
//$conf->global->TAKEPOS_ROOT_CATEGORY_ID=0;
|
||||||
|
$levelofrootcategory=0;
|
||||||
|
if ($conf->global->TAKEPOS_ROOT_CATEGORY_ID > 0)
|
||||||
|
{
|
||||||
|
foreach($categories as $key => $categorycursor)
|
||||||
|
{
|
||||||
|
if ($categorycursor['id'] == $conf->global->TAKEPOS_ROOT_CATEGORY_ID)
|
||||||
|
{
|
||||||
|
$levelofrootcategory = $categorycursor['level'];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$levelofmaincategories = $levelofrootcategory + 1;
|
||||||
|
|
||||||
|
$maincategories = array();
|
||||||
|
$subcategories = array();
|
||||||
|
foreach($categories as $key => $categorycursor)
|
||||||
|
{
|
||||||
|
if ($categorycursor['level'] == $levelofmaincategories)
|
||||||
|
{
|
||||||
|
$maincategories[$key] = $categorycursor;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$subcategories[$key] = $categorycursor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sort($maincategories);
|
||||||
|
sort($subcategories);
|
||||||
|
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
var categories = <?php echo json_encode($maincategories); ?>;
|
||||||
|
var subcategories = <?php echo json_encode($subcategories); ?>;
|
||||||
|
|
||||||
|
var currentcat;
|
||||||
|
var pageproducts=0;
|
||||||
|
var pagecategories=0;
|
||||||
|
var pageactions=0;
|
||||||
|
var place="<?php echo $place;?>";
|
||||||
|
var editaction="qty";
|
||||||
|
var editnumber="";
|
||||||
|
|
||||||
|
|
||||||
|
$( document ).ready(function() {
|
||||||
|
console.log("Refresh");
|
||||||
|
$("#phonediv1").load("invoice.php?mobilepage=places", function() {
|
||||||
|
});
|
||||||
|
$("#phonediv2").load("invoice.php?mobilepage=invoice&place="+place, function() {
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
function LoadPlace(placeid){
|
||||||
|
place=placeid;
|
||||||
|
$("#phonediv2").load("invoice.php?mobilepage=invoice&place="+place, function() {
|
||||||
|
});
|
||||||
|
LoadCats();
|
||||||
|
}
|
||||||
|
|
||||||
|
function AddProduct(placeid, productid){
|
||||||
|
place=placeid;
|
||||||
|
$("#phonediv2").load("invoice.php?mobilepage=invoice&action=addline&place="+place+"&idproduct="+productid, function() {
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function LoadCats(){
|
||||||
|
$("#phonediv1").load("invoice.php?mobilepage=cats&place="+place, function() {
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function LoadProducts(idcat){
|
||||||
|
$("#phonediv1").load("invoice.php?mobilepage=products&catid="+idcat+"&place="+place, function() {
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function LoadPlacesList(){
|
||||||
|
$("#phonediv1").load("invoice.php?mobilepage=places", function() {
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function TakeposPrintingOrder(){
|
||||||
|
console.log("TakeposPrintingOrder");
|
||||||
|
$("#phonediv2").load("invoice.php?action=order&place="+place, function() {
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function Exit(){
|
||||||
|
window.location.href='../user/logout.php';
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<body style="overflow: hidden; background-color:#D1D1D1;">
|
||||||
|
<?php
|
||||||
|
if ($conf->global->TAKEPOS_NUM_TERMINALS!="1" && $_SESSION["takeposterminal"]=="") print '<div id="dialog-info" title="TakePOS">'.$langs->trans('TerminalSelect').'</div>';
|
||||||
|
?>
|
||||||
|
<div class="container">
|
||||||
|
<div class="phonebuttonsrow">
|
||||||
|
<button type="button" class="phonebutton" onclick="LoadPlacesList();"><?php echo strtoupper(substr($langs->trans('Floors'), 0, 3));?></button>
|
||||||
|
<button type="button" class="phonebutton" onclick="LoadCats();"><?php echo strtoupper(substr($langs->trans('Categories'), 0, 3));?></button>
|
||||||
|
<button type="button" class="phonebutton" onclick="TakeposPrintingOrder();"><?php echo strtoupper(substr($langs->trans('Order'), 0, 3));?></button>
|
||||||
|
<button type="button" class="phonebutton" onclick="Exit();"><?php echo strtoupper(substr($langs->trans('Logout'), 0, 3));?></button>
|
||||||
|
</div>
|
||||||
|
<div class="row1">
|
||||||
|
<div id="phonediv1" class="phonediv1"></div>
|
||||||
|
</div>
|
||||||
|
<div class="row2">
|
||||||
|
<div id="phonediv2" class="phonediv2"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
<?php
|
||||||
|
|
||||||
|
llxFooter();
|
||||||
|
|
||||||
|
$db->close();
|
||||||
@ -63,7 +63,7 @@ if ($conf->browser->layout == 'phone')
|
|||||||
if ($_SESSION["takeposterminal"]!="" && $conf->global->TAKEPOS_PHONE_BASIC_LAYOUT==1)
|
if ($_SESSION["takeposterminal"]!="" && $conf->global->TAKEPOS_PHONE_BASIC_LAYOUT==1)
|
||||||
{
|
{
|
||||||
$_SESSION["basiclayout"]=1;
|
$_SESSION["basiclayout"]=1;
|
||||||
header("Location: invoice.php?mobilepage=invoice");
|
header("Location: phone.php?mobilepage=invoice");
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user