123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223 |
- <?php
- /* Copyright (C) 2007-2008 Jeremie Ollivier <jeremie.o@laposte.net>
- * Copyright (C) 2011 Laurent Destailleur <eldy@users.sourceforge.net>
- * Copyright (C) 2011 Juanjo Menent <jmenent@2byte.es>
- * Copyright (C) 2015 Regis Houssin <regis.houssin@inodbox.com>
- * Copyright (C) 2018 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
- * 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/>.
- *
- */
- // Protection to avoid direct call of template
- if (empty($langs) || !is_object($langs))
- {
- print "Error, template page can't be called as URL";
- exit;
- }
- // Load translation files required by the page
- $langs->loadLangs(array("main", "bills", "cashdesk"));
- // Object $form must de defined
- ?>
- <script type="text/javascript" src="javascript/facturation1.js"></script>
- <script type="text/javascript" src="javascript/dhtml.js"></script>
- <script type="text/javascript" src="javascript/keypad.js"></script>
- <!-- ========================= Cadre "Article" ============================= -->
- <fieldset class="cadre_facturation"><legend class="titre1"><?php echo $langs->trans("Article"); ?></legend>
- <form id="frmFacturation" class="formulaire1" method="post" action="facturation_verif.php" autocomplete="off">
- <input type="hidden" name="token" value="<?php echo newToken(); ?>" />
- <input type="hidden" name="hdnSource" value="NULL" />
- <table class="center">
- <tr><th class="label1"><?php echo $langs->trans("FilterRefOrLabelOrBC"); ?></th><th class="label1"><?php echo $langs->trans("Designation"); ?></th></tr>
- <tr>
- <!-- Affichage de la reference et de la designation -->
- <!-- Suppression de l'attribut onkeyup qui causait un probleme d'emulation avec les douchettes -->
- <td><input class="texte_ref" type="text" id ="txtRef" name="txtRef" value="<?php echo $obj_facturation->ref() ?>"
- onchange="javascript: setSource('REF');"
- onfocus="javascript: this.select();" />
- </td>
- <td class="select_design maxwidthonsmartphone">
- <select id="selProduit" class="maxwidthonsmartphone" name="selProduit" onchange="javascript: setSource('LISTE');">
- <?php
- print '<option value="0">'.$top_liste_produits.'</option>'."\n";
- $id = $obj_facturation->id();
- // Si trop d'articles ont ete trouves, on n'affiche que les X premiers (defini dans le fichier de configuration) ...
- $nbtoshow = $nbr_enreg;
- if (!empty($conf_taille_listes) && $nbtoshow > $conf_taille_listes) $nbtoshow = $conf_taille_listes;
- for ($i = 0; $i < $nbtoshow; $i++)
- {
- if ($id == $tab_designations[$i]['rowid']) {
- $selected = 'selected';
- } else {
- $selected = '';
- }
- $label = $tab_designations[$i]['label'];
- print '<option '.$selected.' value="'.$tab_designations[$i]['rowid'].'">'.dol_trunc($tab_designations[$i]['ref'], 16).' - '.dol_trunc($label, 35, 'middle');
- if (!empty($conf->stock->enabled) && !empty($conf_fkentrepot) && $tab_designations[$i]['fk_product_type'] == 0) {
- print ' ('.$langs->trans("CashDeskStock").': '.(empty($tab_designations[$i]['reel']) ? 0 : $tab_designations[$i]['reel']).')';
- }
- print '</option>'."\n";
- }
- ?>
- </select>
- </td>
- </tr>
- </table>
- </form>
- <form id="frmQte" class="formulaire1" method="post" action="facturation_verif.php?action=ajout_article" onsubmit ="javascript: return verifSaisie();">
- <input type="hidden" name="token" value="<?php echo newToken(); ?>" />
- <table class="center">
- <tr>
- <th><?php echo $langs->trans("Qty"); ?></th>
- <th><?php echo $langs->trans("PriceUHT"); ?></th>
- <th><?php echo $langs->trans("Discount"); ?> (%)</th>
- <th><?php echo $langs->trans("VATRate"); ?></th>
- <th></th>
- </tr>
- <tr>
- <td><input class="texte1 maxwidth50onsmartphone" type="text" id="txtQte" name="txtQte" value="1" onkeyup="javascript: modif();" onfocus="javascript: this.select();" />
- <?php print genkeypad("txtQte", "frmQte"); ?>
- </td>
- <!-- Show unit price -->
- <?php // TODO Remove the disabled and use this value when adding product into cart ?>
- <td><input class="texte1_off maxwidth50onsmartphone" type="text" name="txtPrixUnit" value="<?php echo price2num($obj_facturation->prix(), 'MU'); ?>" onchange="javascript: modif();" disabled /></td>
- <!-- Choix de la remise -->
- <td><input class="texte1 maxwidth50onsmartphone" type="text" id="txtRemise" name="txtRemise" value="0" onkeyup="javascript: modif();" onfocus="javascript: this.select();"/>
- <?php print genkeypad("txtRemise", "frmQte"); ?>
- </td>
- <!-- Choix du taux de TVA -->
- <td class="select_tva center">
- <?php
- $vatrate = $obj_facturation->vatrate; // To get vat rate we just have selected
- $buyer = new Societe($db);
- if ($_SESSION["CASHDESK_ID_THIRDPARTY"] > 0) $buyer->fetch($_SESSION["CASHDESK_ID_THIRDPARTY"]);
- echo $form->load_tva('selTva', (GETPOSTISSET("selTva") ? GETPOST("selTva", 'alpha', 2) : $vatrate), $mysoc, $buyer, 0, 0, '', false, -1);
- ?>
- </td>
- <td></td>
- </tr>
- <tr>
- <!-- Affichage du stock pour l'article courant -->
- <tr>
- <td><?php echo $langs->trans("Stock"); ?></td>
- <td>
- <input class="texte1_off maxwidth50onsmartphone" type="text" name="txtStock" value="<?php echo $obj_facturation->stock() ?>" disabled />
- </td>
- <td><?php echo $langs->trans("TotalHT"); ?></td>
- <!-- Affichage du total HT -->
- <td colspan="2"><input class="texte1_off maxwidth50onsmartphone" type="text" name="txtTotal" value="" disabled /></td><td></td>
- </tr>
- </table>
- <input class="button bouton_ajout_article" type="submit" id="sbmtEnvoyer" value="<?php echo $langs->trans("AddThisArticle"); ?>" />
- </form>
- </fieldset>
- <!-- ========================= Cadre "Amount" ============================= -->
- <form id="frmDifference" class="formulaire1" method="post" onsubmit="javascript: return verifReglement()" action="validation_verif.php?action=valide_achat">
- <input type="hidden" name="hdnChoix" value="" />
- <input type="hidden" name="token" value="<?php echo newToken(); ?>" />
- <fieldset class="cadre_facturation"><legend class="titre1"><?php echo $langs->trans("Amount"); ?></legend>
- <table class="centpercent">
- <tr><th class="label1"><?php echo $langs->trans("TotalTicket"); ?></th><th class="label1"><?php echo $langs->trans("Received"); ?></th><th class="label1"><?php echo $langs->trans("Change"); ?></th></tr>
- <tr>
- <!-- Affichage du montant du -->
- <td><input class="texte2_off maxwidth100onsmartphone" type="text" name="txtDu" value="<?php echo price2num($obj_facturation->prixTotalTtc(), 'MT'); ?>" disabled /></td>
- <!-- Choix du montant encaisse -->
- <td><input class="texte2 maxwidth100onsmartphone" type="text" id="txtEncaisse" name="txtEncaisse" value="" onkeyup="javascript: verifDifference();" onfocus="javascript: this.select();" />
- <?php print genkeypad("txtEncaisse", "frmDifference"); ?>
- </td>
- <!-- Affichage du montant rendu -->
- <td><input class="texte2_off maxwidth100onsmartphone" type="text" name="txtRendu" value="0" disabled /></td>
- </tr>
- <tr>
- </table>
- </fieldset>
- <fieldset class="cadre_facturation"><legend class="titre1"><?php echo $langs->trans("PaymentMode"); ?></legend>
- <div class="inline-block">
- <?php
- print '<div class="inline-block" style="margin: 6px;">';
- if (empty($_SESSION['CASHDESK_ID_BANKACCOUNT_CASH']) || $_SESSION['CASHDESK_ID_BANKACCOUNT_CASH'] < 0)
- {
- $langs->load("errors");
- print '<input class="bouton_mode_reglement_disabled" type="button" name="btnModeReglement" value="'.$langs->trans("Cash").'" title="'.dol_escape_htmltag($langs->trans("ErrorModuleSetupNotComplete", $langs->transnoentitiesnoconv("CashDesk"))).'" />';
- }
- else print '<input class="button bouton_mode_reglement" type="submit" name="btnModeReglement" value="'.$langs->trans("Cash").'" onclick="javascript: verifClic(\'ESP\');" />';
- print '</div>';
- print '<div class="inline-block" style="margin: 6px;">';
- if (empty($_SESSION['CASHDESK_ID_BANKACCOUNT_CB']) || $_SESSION['CASHDESK_ID_BANKACCOUNT_CB'] < 0)
- {
- $langs->load("errors");
- print '<input class="bouton_mode_reglement_disabled" type="button" name="btnModeReglement" value="'.$langs->trans("CreditCard").'" title="'.dol_escape_htmltag($langs->trans("ErrorModuleSetupNotComplete", $langs->transnoentitiesnoconv("CashDesk"))).'" />';
- }
- else print '<input class="button bouton_mode_reglement" type="submit" name="btnModeReglement" value="'.$langs->trans("CreditCard").'" onclick="javascript: verifClic(\'CB\');" />';
- print '</div>';
- print '<div class="inline-block" style="margin: 6px;">';
- if (empty($_SESSION['CASHDESK_ID_BANKACCOUNT_CHEQUE']) || $_SESSION['CASHDESK_ID_BANKACCOUNT_CHEQUE'] < 0)
- {
- $langs->load("errors");
- print '<input class="bouton_mode_reglement_disabled" type="button" name="btnModeReglement" value="'.$langs->trans("CheckBank").'" title="'.dol_escape_htmltag($langs->trans("ErrorModuleSetupNotComplete"), $langs->transnoentitiesnoconv("CashDesk")).'" />';
- }
- else print '<input class="button bouton_mode_reglement" type="submit" name="btnModeReglement" value="'.$langs->trans("CheckBank").'" onclick="javascript: verifClic(\'CHQ\');" />';
- print '</div>';
- print '<div class="clearboth">';
- print '<div class="inline-block" style="margin: 6px;">';
- ?>
- <input class="button bouton_mode_reglement" type="submit" name="btnModeReglement" value="<?php echo $langs->trans("Reported"); ?>" onclick="javascript: verifClic('DIF');" />
- <?php
- print $langs->trans("DateDue").' :';
- print $form->selectDate(-1, 'txtDatePaiement', 0, 0, 0, 'paymentmode', 1, 0);
- print '</div>';
- ?>
- </div>
- </fieldset>
- </form>
- <script type="text/javascript">
- /* Calendar.setup ({
- inputField : "txtDatePaiement",
- ifFormat : "%Y-%m-%d",
- button : "btnCalendrier"
- });
- */
- if (document.getElementById('frmFacturation').txtRef.value) {
- modif();
- document.getElementById('frmQte').txtQte.focus();
- document.getElementById('frmQte').txtQte.select();
- } else {
- document.getElementById('frmFacturation').txtRef.focus();
- }
- </script>
|