From 833da30af10cc0c1ffe60ca6507df9c1f75687dc Mon Sep 17 00:00:00 2001 From: David Beniamine Date: Fri, 15 Mar 2019 12:07:33 +0100 Subject: [PATCH] Use any dolibarr enabled paiement mode --- htdocs/langs/en_US/cashdesk.lang | 4 +- htdocs/langs/fr_FR/cashdesk.lang | 2 + htdocs/takepos/admin/setup.php | 47 ++++++++++--------- htdocs/takepos/invoice.php | 32 +++++++------ htdocs/takepos/pay.php | 79 ++++++++++++++++++++++++++------ htdocs/takepos/takepos.php | 12 ++++- 6 files changed, 126 insertions(+), 50 deletions(-) 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) : ?> + + + + + - - + + + + +
diff --git a/htdocs/takepos/takepos.php b/htdocs/takepos/takepos.php index 36b670146f9..d8120579a7d 100644 --- a/htdocs/takepos/takepos.php +++ b/htdocs/takepos/takepos.php @@ -450,7 +450,17 @@ $( document ).ready(function() { global->CASHDESK_ID_THIRDPARTY) or empty($conf->global->CASHDESK_ID_BANKACCOUNT_CASH) or empty($conf->global->CASHDESK_ID_BANKACCOUNT_CB)) { +// TODO +$sql="SELECT code,libelle FROM ".MAIN_DB_PREFIX."c_paiement WHERE active=1 ORDER BY libelle"; +$resql = $db->query($sql); +$paiementsModes = array(); +if($resql){ + while ($obj = $db->fetch_object($resql)){ + $accountname="CASHDESK_ID_BANKACCOUNT_".$obj->code; + if($conf->global->$accountname) array_push($paiementsModes, $obj); + } +} +if (empty($paiementsModes)) { setEventMessages($langs->trans("ErrorModuleSetupNotComplete"), null, 'errors'); } if (count($maincategories)==0) {