diff --git a/htdocs/langs/en_US/cashdesk.lang b/htdocs/langs/en_US/cashdesk.lang
index bf99ee556b7..940307acb9b 100644
--- a/htdocs/langs/en_US/cashdesk.lang
+++ b/htdocs/langs/en_US/cashdesk.lang
@@ -56,5 +56,7 @@ BillsCoinsPad=Bills and Coins Pad
DolistorePosCategory=TakePOS modules and other POS solutions for Dolibarr
TakeposNeedsCategories=TakePOS needs product categories to work
OrderNotes=Order Notes
+CashDeskBankAccountFor=Account used for payments in
+NoPaimementModesDefined=No paiment mode defined in TakePOS configuration
TicketVatGrouped=Group VAT by rate in tickets
AutoPrintTickets=Automatically print tickets
\ No newline at end of file
diff --git a/htdocs/langs/fr_FR/cashdesk.lang b/htdocs/langs/fr_FR/cashdesk.lang
index 135464b81d7..44c978784a4 100644
--- a/htdocs/langs/fr_FR/cashdesk.lang
+++ b/htdocs/langs/fr_FR/cashdesk.lang
@@ -49,5 +49,7 @@ AmountAtEndOfPeriod=Montant en fin de période (jour, mois ou année)
TheoricalAmount=Montant théorique
RealAmount=Montant réel
CashFenceDone=Clôture de caisse faite pour la période
+CashDeskBankAccountFor=Compte utilisé pour les paiements en
+NoPaimementModesDefined=Pas de mode de paiement défini dans la configuration de TakePOS
TicketVatGrouped=Grouper la TVA par taux dans les tickets
AutoPrintTickets=Imprimet les tickets automatiquement
\ No newline at end of file
diff --git a/htdocs/takepos/admin/setup.php b/htdocs/takepos/admin/setup.php
index a2dd6ed1b96..973c8cbd9cc 100644
--- a/htdocs/takepos/admin/setup.php
+++ b/htdocs/takepos/admin/setup.php
@@ -41,19 +41,38 @@ if (!$user->admin) accessforbidden();
$langs->loadLangs(array("admin", "cashdesk"));
+global $db;
+
+$sql = "SELECT code, libelle FROM ".MAIN_DB_PREFIX."c_paiement";
+$sql.= " WHERE entity IN (".getEntity('c_paiement').")";
+$sql.= " AND active = 1";
+$sql.= " ORDER BY libelle";
+$resql = $db->query($sql);
+$paiements = array();
+if($resql){
+ while ($obj = $db->fetch_object($resql)){
+ array_push($paiements, $obj);
+ }
+}
+
/*
* Actions
*/
if (GETPOST('action', 'alpha') == 'set')
{
$db->begin();
-
if (GETPOST('socid', 'int') < 0) $_POST["socid"]='';
$res = dolibarr_set_const($db, "CASHDESK_ID_THIRDPARTY", (GETPOST('socid', 'int') > 0 ? GETPOST('socid', 'int') : ''), 'chaine', 0, '', $conf->entity);
- $res = dolibarr_set_const($db, "CASHDESK_ID_BANKACCOUNT_CASH", (GETPOST('CASHDESK_ID_BANKACCOUNT_CASH', 'alpha') > 0 ? GETPOST('CASHDESK_ID_BANKACCOUNT_CASH', 'alpha') : ''), 'chaine', 0, '', $conf->entity);
+
+ $res = dolibarr_set_const($db, "CASHDESK_ID_BANKACCOUNT_CASH", (GETPOST('CASHDESK_ID_BANKACCOUNT_CASH', 'alpha') > 0 ? GETPOST('CASHDESK_ID_BANKACCOUNT_CASH', 'alpha') : ''), 'chaine', 0, '', $conf->entity);
$res = dolibarr_set_const($db, "CASHDESK_ID_BANKACCOUNT_CHEQUE", (GETPOST('CASHDESK_ID_BANKACCOUNT_CHEQUE', 'alpha') > 0 ? GETPOST('CASHDESK_ID_BANKACCOUNT_CHEQUE', 'alpha') : ''), 'chaine', 0, '', $conf->entity);
$res = dolibarr_set_const($db, "CASHDESK_ID_BANKACCOUNT_CB", (GETPOST('CASHDESK_ID_BANKACCOUNT_CB', 'alpha') > 0 ? GETPOST('CASHDESK_ID_BANKACCOUNT_CB', 'alpha') : ''), 'chaine', 0, '', $conf->entity);
+ foreach($paiements as $modep) {
+ if (in_array($modep->code, array('LIQ', 'CB', 'CHQ'))) continue;
+ $name="CASHDESK_ID_BANKACCOUNT_".$modep->code;
+ $res = dolibarr_set_const($db, $name, (GETPOST($name, 'alpha') > 0 ? GETPOST($name, 'alpha') : ''), 'chaine', 0, '', $conf->entity);
+ }
$res = dolibarr_set_const($db, "CASHDESK_ID_WAREHOUSE", (GETPOST('CASHDESK_ID_WAREHOUSE', 'alpha') > 0 ? GETPOST('CASHDESK_ID_WAREHOUSE', 'alpha') : ''), 'chaine', 0, '', $conf->entity);
$res = dolibarr_set_const($db, "CASHDESK_NO_DECREASE_STOCK", GETPOST('CASHDESK_NO_DECREASE_STOCK', 'alpha'), 'chaine', 0, '', $conf->entity);
$res = dolibarr_set_const($db, "CASHDESK_SERVICES", GETPOST('CASHDESK_SERVICES', 'alpha'), 'chaine', 0, '', $conf->entity);
@@ -245,23 +264,28 @@ print $form->select_company($conf->global->CASHDESK_ID_THIRDPARTY, 'socid', 's.c
print '';
if (! empty($conf->banque->enabled))
{
-
- print '
| '.$langs->trans("CashDeskBankAccountForSell").' | ';
+ print '
| '.$langs->trans("CashDeskBankAccountForSell").' | ';
print '';
$form->select_comptes($conf->global->CASHDESK_ID_BANKACCOUNT_CASH, 'CASHDESK_ID_BANKACCOUNT_CASH', 0, "courant=2", 1);
print ' |
';
-
-
print '| '.$langs->trans("CashDeskBankAccountForCheque").' | ';
print '';
$form->select_comptes($conf->global->CASHDESK_ID_BANKACCOUNT_CHEQUE, 'CASHDESK_ID_BANKACCOUNT_CHEQUE', 0, "courant=1", 1);
print ' |
';
-
-
print '| '.$langs->trans("CashDeskBankAccountForCB").' | ';
print '';
$form->select_comptes($conf->global->CASHDESK_ID_BANKACCOUNT_CB, 'CASHDESK_ID_BANKACCOUNT_CB', 0, "courant=1", 1);
print ' |
';
+
+ foreach($paiements as $modep) {
+ if (in_array($modep->code, array('LIQ', 'CB', 'CHQ'))) continue;
+ $name="CASHDESK_ID_BANKACCOUNT_".$modep->code;
+ print '| '.$langs->trans("CashDeskBankAccountFor").' '.$langs->trans($modep->libelle).' | ';
+ print '';
+ $cour=preg_match('/^LIQ.*/', $modep->code)?2:1;
+ $form->select_comptes($conf->global->$name, $name, 0, "courant=".$cour, 1);
+ print ' |
';
+ }
}
if (! empty($conf->stock->enabled))
diff --git a/htdocs/takepos/invoice.php b/htdocs/takepos/invoice.php
index e1a4b32d935..4d6299b3c0a 100644
--- a/htdocs/takepos/invoice.php
+++ b/htdocs/takepos/invoice.php
@@ -16,10 +16,10 @@
* along with this program. If not, see .
*/
-// 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('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'); }
@@ -47,17 +47,33 @@ $invoice = new Facture($db);
$ret = $invoice->fetch('', '(PROV-POS-'.$place.')');
if ($ret > 0) $placeid = $invoice->id;
+$paycode = $pay;
+if ($pay == 'cash') $paycode = 'LIQ';
+if ($pay == 'card') $paycode = 'CB';
+if ($pay == 'cheque') $paycode = 'CHQ';
+
+// Retrieve paiementid
+$sql = "SELECT id FROM ".MAIN_DB_PREFIX."c_paiement";
+$sql.= " WHERE entity IN (".getEntity('c_paiement').")";
+$sql.= " AND code = '".$paycode."'";
+$resql = $db->query($sql);
+$codes = $db->fetch_array($resql);
+$paiementid=$codes[0];
/*
-* Actions
-*/
+ * Actions
+ */
if ($action == 'valid' && $user->rights->facture->creer)
{
- if ($pay == "cash") $bankaccount = $conf->global->CASHDESK_ID_BANKACCOUNT_CASH;
+ if ($pay == "cash") $bankaccount = $conf->global->CASHDESK_ID_BANKACCOUNT_CASH;
elseif ($pay == "card") $bankaccount = $conf->global->CASHDESK_ID_BANKACCOUNT_CB;
elseif ($pay == "cheque") $bankaccount = $conf->global->CASHDESK_ID_BANKACCOUNT_CHEQUE;
-
+ else
+ {
+ $accountname="CASHDESK_ID_BANKACCOUNT_".$pay;
+ $bankaccount=$conf->global->$accountname;
+ }
$now=dol_now();
$invoice = new Facture($db);
@@ -72,12 +88,10 @@ if ($action == 'valid' && $user->rights->facture->creer)
$payment->bank_account = $bankaccount;
$payment->amounts[$invoice->id] = $invoice->total_ttc;
- if ($pay=="cash") $payment->paiementid = 4;
- elseif ($pay=="card") $payment->paiementid = 6;
- elseif ($pay=="cheque") $payment->paiementid = 7;
- $payment->num_payment = $invoice->ref;
+ $payment->paiementid=$paiementid;
+ $payment->num_paiement=$invoice->ref;
- $payment->create($user);
+ $payment->create($user);
$payment->addPaymentToBank($user, 'payment', '(CustomerInvoicePayment)', $bankaccount, '', '');
$invoice->set_paid($user);
diff --git a/htdocs/takepos/pay.php b/htdocs/takepos/pay.php
index 33524b80a8c..49f252f1224 100644
--- a/htdocs/takepos/pay.php
+++ b/htdocs/takepos/pay.php
@@ -15,10 +15,10 @@
* along with this program. If not, see .
*/
-//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('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');
@@ -50,6 +50,24 @@ else{
top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss);
$langs->loadLangs(array("main", "bills", "cashdesk"));
+
+$sql = "SELECT code, libelle FROM ".MAIN_DB_PREFIX."c_paiement";
+$sql.= " WHERE entity IN (".getEntity('c_paiement').")";
+$sql.= " AND active = 1";
+$sql.= " ORDER BY libelle";
+$resql = $db->query($sql);
+$paiements = array();
+if ($resql) {
+ while ($obj = $db->fetch_object($resql)) {
+ $paycode = $obj->code;
+ if ($paycode == 'LIQ') $paycode = 'CASH';
+ if ($paycode == 'CB') $paycode = 'CARD';
+ if ($paycode == 'CHQ') $paycode = 'CHEQUE';
+
+ $accountname="CASHDESK_ID_BANKACCOUNT_".$paycode;
+ if (! empty($conf->global->$accountname) && $conf->global->$accountname > 0) array_push($paiements, $obj);
+ }
+}
?>
@@ -105,25 +123,68 @@ $langs->loadLangs(array("main", "bills", "cashdesk"));
"reset()",
+ "span" => "style='font-size: 150%;'",
+ "text" => "C",
+ ),
+ array(
+ "function" => "parent.$.colorbox.close();",
+ "span" => "id='printtext'",
+ "text" => $langs->trans("GoBack"),
+ ),
+);
$numpad=$conf->global->TAKEPOS_NUMPAD;
?>
-
+0) : ?>
+
+
+
+
-
+1) : ?>
+
+
+
+
+
-
+2) : ?>
+
+
+
+
+
-
-
+
+
+
+
+