Merge pull request #13369 from OPEN-DSI/new-takepos-freezone-vat-rate

NEW add VAT rates on free zone in cash desk
This commit is contained in:
Laurent Destailleur 2020-03-18 19:37:04 +01:00 committed by GitHub
commit 9f65c4a7db
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 81 additions and 11 deletions

View File

@ -159,6 +159,19 @@ button.actionbutton {
border-width: 0; border-width: 0;
} }
button.item_value {
background: #bbbbbb;
border: #000000 1px solid;
border-radius: 4px;
padding: 8px;
}
button.item_value.selected {
background: #ffffff;
color: #000000;
font-weight: bold;
}
div[aria-describedby="dialog-info"] button:before { div[aria-describedby="dialog-info"] button:before {
content: "\f788"; content: "\f788";
font-family: "Font Awesome 5 Free"; font-family: "Font Awesome 5 Free";

View File

@ -16,7 +16,7 @@
*/ */
/** /**
* \file htdocs/takepos/floors.php * \file htdocs/takepos/freezone.php
* \ingroup takepos * \ingroup takepos
* \brief Popup to enter a free line * \brief Popup to enter a free line
*/ */
@ -32,6 +32,11 @@ if (!defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1');
if (!defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1'); if (!defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1');
require '../main.inc.php'; // Load $user and permissions require '../main.inc.php'; // Load $user and permissions
require_once DOL_DOCUMENT_ROOT . '/core/lib/functions.lib.php';
require_once DOL_DOCUMENT_ROOT . '/compta/facture/class/facture.class.php';
require_once DOL_DOCUMENT_ROOT . '/societe/class/societe.class.php';
global $mysoc;
$langs->loadLangs(array("bills", "cashdesk")); $langs->loadLangs(array("bills", "cashdesk"));
@ -44,6 +49,20 @@ if (empty($user->rights->takepos->run)) {
access_forbidden(); access_forbidden();
} }
// get invoice
$invoice = new Facture($db);
if ($place > 0) {
$invoice->fetch($place);
} else {
$invoice->fetch('', '(PROV-POS'.$_SESSION['takeposterminal'].'-'.$place.')');
}
// get default vat rate
$constforcompanyid = 'CASHDESK_ID_THIRDPARTY'.$_SESSION['takeposterminal'];
$soc = new Societe($db);
if ($invoice->socid > 0) $soc->fetch($invoice->socid);
else $soc->fetch($conf->global->$constforcompanyid);
$vatRateDefault = get_default_tva($mysoc, $soc);
/* /*
* View * View
@ -52,12 +71,28 @@ if (empty($user->rights->takepos->run)) {
$arrayofcss = array('/takepos/css/pos.css.php'); $arrayofcss = array('/takepos/css/pos.css.php');
$arrayofjs = array(); $arrayofjs = array();
top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss); top_htmlhead($head, '', 0, 0, $arrayofjs, $arrayofcss);
?> ?>
<script> <script>
var vatRate = '<?php echo dol_escape_js($vatRateDefault); ?>';
/**
* Apply new VAT rate
*
* @param {string} id VAT id
* @param {string} rate VAT rate
*/
function ApplyVATRate(id, rate) {
vatRate = rate;
jQuery('button.vat_rate').removeClass('selected');
jQuery('#vat_rate_' + id).addClass('selected');
}
/**
* Save (validate)
*/
function Save() { function Save() {
$.get( "invoice.php", { action: "<?php echo $action; ?>", place: "<?php echo $place; ?>", desc:$('#desc').val(), number:$('#number').val()} ); $.get( "invoice.php", { action: "<?php echo $action; ?>", place: "<?php echo $place; ?>", desc:$('#desc').val(), number:$('#number').val(), tva_tx: vatRate} );
parent.$.colorbox.close(); parent.$.colorbox.close();
} }
@ -76,6 +111,21 @@ if ($action == "addnote") echo '<input type="hidden" id="number" name="number" v
?> ?>
<input type="hidden" name="place" class="takepospay" value="<?php echo $place; ?>"> <input type="hidden" name="place" class="takepospay" value="<?php echo $place; ?>">
<input type="button" class="button takepospay clearboth" value="OK" onclick="Save();"> <input type="button" class="button takepospay clearboth" value="OK" onclick="Save();">
<?php
if ($action == 'freezone') {
require_once DOL_DOCUMENT_ROOT . '/core/class/html.form.class.php';
$form = new Form($db);
$num = $form->load_cache_vatrates("'" . $mysoc->country_code . "'");
if ($num > 0) {
print '<br><br>';
print $langs->trans('VAT') . ' : ';
foreach ($form->cache_vatrates as $rate) {
print '<button type="button" class="button item_value vat_rate' . ($rate['txtva'] == $vatRateDefault ? ' selected' : '') . '" id="vat_rate_' . $rate['rowid'] . '" onclick="ApplyVATRate(\'' . $rate['rowid'] . '\', \'' . $rate['txtva'] .'\');">' . $rate['txtva'] . ' %</button>';
}
}
}
?>
</center> </center>
</body> </body>

View File

@ -37,6 +37,8 @@ require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php';
global $mysoc;
$langs->loadLangs(array("companies", "commercial", "bills", "cashdesk", "stocks")); $langs->loadLangs(array("companies", "commercial", "bills", "cashdesk", "stocks"));
$id = GETPOST('id', 'int'); $id = GETPOST('id', 'int');
@ -333,7 +335,12 @@ if ($action == "freezone") {
$customer = new Societe($db); $customer = new Societe($db);
$customer->fetch($invoice->socid); $customer->fetch($invoice->socid);
$tva_tx = GETPOST('tva_tx', 'alpha');
if ($tva_tx != '') {
$tva_tx = price2num($tva_tx);
} else {
$tva_tx = get_default_tva($mysoc, $customer); $tva_tx = get_default_tva($mysoc, $customer);
}
// Local Taxes // Local Taxes
$localtax1_tx = get_localtax($tva_tx, 1, $customer, $mysoc, $tva_npr); $localtax1_tx = get_localtax($tva_tx, 1, $customer, $mysoc, $tva_npr);