diff --git a/htdocs/langs/en_US/cashdesk.lang b/htdocs/langs/en_US/cashdesk.lang
index 83939e94187..0d248dc593d 100644
--- a/htdocs/langs/en_US/cashdesk.lang
+++ b/htdocs/langs/en_US/cashdesk.lang
@@ -55,4 +55,6 @@ Numberspad=Numbers Pad
BillsCoinsPad=Bills and Coins Pad
DolistorePosCategory=TakePOS modules and other POS solutions for Dolibarr
TakeposNeedsCategories=TakePOS needs product categories to work
-OrderNotes=Order Notes
\ No newline at end of file
+OrderNotes=Order Notes
+CashDeskBankAccountFor=Account used for payments in
+NoPaimementModesDefined=No paiment mode defined in TakePOS configuration
diff --git a/htdocs/langs/fr_FR/cashdesk.lang b/htdocs/langs/fr_FR/cashdesk.lang
index f588b04a751..8b7926c0c56 100644
--- a/htdocs/langs/fr_FR/cashdesk.lang
+++ b/htdocs/langs/fr_FR/cashdesk.lang
@@ -49,3 +49,5 @@ 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
diff --git a/htdocs/takepos/admin/setup.php b/htdocs/takepos/admin/setup.php
index c00fa060493..0de0793176b 100644
--- a/htdocs/takepos/admin/setup.php
+++ b/htdocs/takepos/admin/setup.php
@@ -41,19 +41,30 @@ if (!$user->admin) accessforbidden();
$langs->loadLangs(array("admin", "cashdesk"));
+global $db;
+
+$sql="SELECT code, libelle FROM ".MAIN_DB_PREFIX."c_paiement WHERE active=1 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_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){
+ $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);
@@ -225,27 +236,19 @@ print "\n";
print '
| '.$langs->trans("CashDeskThirdPartyForSell").' | ';
print '';
-print $form->select_company($conf->global->CASHDESK_ID_THIRDPARTY, 'socid', 's.client in (1,3) AND s.status = 1', 1, 0, 0, array(), 0);
+print $form->select_company($conf->global->CASHDESK_ID_THIRDPARTY, 'socid', 's.client in (1, 3) AND s.status = 1', 1, 0, 0, array(), 0);
print ' |
';
if (! empty($conf->banque->enabled))
{
-
- 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){
+ $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 45a65af3f94..69c9a83cae2 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'); }
@@ -40,6 +40,10 @@ $number = GETPOST('number');
$idline = GETPOST('idline');
$desc = GETPOST('desc', 'alpha');
$pay = GETPOST('pay');
+$sql="SELECT rowid FROM ".MAIN_DB_PREFIX."facture where ref='(PROV-POS-".$place.")'";
+$resql = $db->query($sql);
+$row = $db->fetch_array($resql);
+$placeid = $row[0];
$placeid = 0; // $placeid is id of invoice
@@ -48,16 +52,20 @@ $ret = $invoice->fetch('', '(PROV-POS-'.$place.')');
if ($ret > 0) $placeid = $invoice->id;
+// Retrieve paiementid
+$sql="SELECT id FROM ".MAIN_DB_PREFIX."c_paiement WHERE code='$pay'";
+$resql = $db->query($sql);
+$codes = $db->fetch_array($resql);
+$paiementid=$codes[0];
+
/*
* Actions
*/
if ($action == 'valid' && $user->rights->facture->creer)
{
- 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;
-
+ $accountname="CASHDESK_ID_BANKACCOUNT_".$pay;
+ $bankaccount=$conf->global->$accountname;
$now=dol_now();
$invoice = new Facture($db);
@@ -72,12 +80,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..1ae6a5af7d8 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,16 @@ 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 WHERE active=1 ORDER BY libelle";
+$resql = $db->query($sql);
+$paiements = array();
+if($resql){
+ while ($obj = $db->fetch_object($resql)){
+ $accountname="CASHDESK_ID_BANKACCOUNT_".$obj->code;
+ if($conf->global->$accountname) array_push($paiements, $obj);
+ }
+}
?>
@@ -105,25 +115,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) : ?>
+
+
+
+
+
-
-
+
+
+
+
+