30if (!defined(
'NOTOKENRENEWAL')) {
31 define(
'NOTOKENRENEWAL',
'1');
33if (!defined(
'NOREQUIREMENU')) {
34 define(
'NOREQUIREMENU',
'1');
36if (!defined(
'NOREQUIREHTML')) {
37 define(
'NOREQUIREHTML',
'1');
39if (!defined(
'NOREQUIREAJAX')) {
40 define(
'NOREQUIREAJAX',
'1');
44require
'../main.inc.php';
45require_once DOL_DOCUMENT_ROOT.
'/compta/facture/class/facture.class.php';
52$langs->loadLangs(array(
"main",
"bills",
"cashdesk",
"banks"));
54$action =
GETPOST(
'action',
'aZ09');
57if (!$user->hasRight(
'takepos',
'run')) {
66if ($action ==
"split" && $user->hasRight(
'takepos',
'run')) {
72 $sourceref =
'(PROV-POS'.$_SESSION[
"takeposterminal"].
'-'.($split == 1 ? $place :
'SPLIT').
')';
75 $ret = $invoice->fetch(0,
'(PROV-POS'.$_SESSION[
"takeposterminal"].
'-SPLIT)');
77 $placeid = $invoice->id;
79 $constforcompanyid =
'CASHDESK_ID_THIRDPARTY'.$_SESSION[
"takeposterminal"];
82 $invoice->module_source =
'takepos';
83 $invoice->pos_source = $_SESSION[
"takeposterminal"];
84 $invoice->entity = !empty($_SESSION[
"takeposinvoiceentity"]) ? $_SESSION[
"takeposinvoiceentity"] :
$conf->entity;
85 if ($invoice->socid <= 0) {
86 $langs->load(
'errors');
89 $placeid = $invoice->create($user);
94 $sql =
"UPDATE ".MAIN_DB_PREFIX.
"facture SET ref='(PROV-POS".$_SESSION[
"takeposterminal"].
"-SPLIT)'";
95 $sql .=
" WHERE rowid = ".((int) $placeid);
100 $sql =
"UPDATE ".MAIN_DB_PREFIX.
"facturedet SET fk_facture = ".((int) $placeid).
" WHERE rowid = ".((int) $line);
101 $sql .=
" AND fk_facture IN (SELECT f.rowid FROM ".MAIN_DB_PREFIX.
"facture as f WHERE f.ref = '".
$db->escape($sourceref).
"'";
102 $sql .=
" AND f.fk_statut = ".Facture::STATUS_DRAFT.
" AND f.entity IN (".
getEntity(
'invoice').
"))";
105 } elseif ($split == 0) {
107 if ($place ==
"SPLIT") {
110 $ret = $invoice->fetch(0,
'(PROV-POS'.$_SESSION[
"takeposterminal"].
'-'.$place.
')');
112 $placeid = $invoice->id;
114 $constforcompanyid =
'CASHDESK_ID_THIRDPARTY'.$_SESSION[
"takeposterminal"];
117 $invoice->module_source =
'takepos';
118 $invoice->pos_source = $_SESSION[
"takeposterminal"];
119 $invoice->entity = !empty($_SESSION[
"takeposinvoiceentity"]) ? $_SESSION[
"takeposinvoiceentity"] :
$conf->entity;
120 if ($invoice->socid <= 0) {
121 $langs->load(
'errors');
124 $placeid = $invoice->create($user);
129 $sql =
"UPDATE ".MAIN_DB_PREFIX.
"facture SET ref='(PROV-POS".$_SESSION[
"takeposterminal"].
"-".$place.
")'";
130 $sql .=
" WHERE rowid = ".((int) $placeid);
135 $sql =
"UPDATE ".MAIN_DB_PREFIX.
"facturedet SET fk_facture = ".((int) $placeid).
" WHERE rowid = ".((int) $line);
136 $sql .=
" AND fk_facture IN (SELECT f.rowid FROM ".MAIN_DB_PREFIX.
"facture as f WHERE f.ref = '".
$db->escape($sourceref).
"'";
137 $sql .=
" AND f.fk_statut = ".Facture::STATUS_DRAFT.
" AND f.entity IN (".
getEntity(
'invoice').
"))";
141 if ($invoice !==
null) {
142 $invoice->fetch(0,
'(PROV-POS'.$_SESSION[
"takeposterminal"].
'-SPLIT)');
143 $invoice->update_price();
145 $invoice->fetch(0,
'(PROV-POS'.$_SESSION[
"takeposterminal"].
'-'.$place.
')');
146 $invoice->update_price();
156if (isset($invoiceid) && $invoiceid > 0) {
157 $invoice->fetch($invoiceid);
159 $sql =
"SELECT rowid FROM ".MAIN_DB_PREFIX.
"facture where ref = '".
$db->escape(
"(PROV-POS".$_SESSION[
"takeposterminal"].
"-".$place.
")").
"'";
160 $resql =
$db->query($sql);
161 $obj =
$db->fetch_object($resql);
163 $invoiceid = $obj->rowid;
165 if (!isset($invoiceid)) {
168 $invoice->fetch($invoiceid);
172$arrayofcss = array(
'/takepos/css/pos.css.php');
174 $arrayofcss[] =
'/takepos/css/colorful.css';
183top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss);
186$arrayOfValidPaymentModes = array();
187$arrayOfValidBankAccount = array();
190<body
class=
"takepossplitphp">
193function Split(selectedline, split) {
195 url:
"split.php?action=split&token=<?php echo newToken(); ?>&line="+selectedline+
"&split="+split+
"&place=<?php echo $place;?>",
196 context: document.body
198 $(
"#currentplace").load(
"invoice.php?place="+parent.place+
"&invoiceid="+parent.invoiceid,
function() {
199 $(
'#currentplace').find(
'.posinvoiceline').click(function(){
203 $(
"#splitplace").load(
"invoice.php?place=SPLIT",
function() {
204 $(
'#splitplace').find(
'.posinvoiceline').click(
function(){
211$( document ).ready(
function() {
212 if (parent.place==
'SPLIT') {
217 $(
"#currentplace").load(
"invoice.php?place="+parent.place+
"&invoiceid="+parent.invoiceid,
function() {
218 $(
'#currentplace').find(
'.posinvoiceline')
224 $(
"#splitplace").load(
"invoice.php?place=SPLIT",
function() {
225 $(
'#splitplace').find(
'.posinvoiceline').click(
function(){
232 $(
"#headersplit1").html(
"<?php echo $langs->trans("Place
");?> "+parent.place);
233 $(
"#headersplit2").html(
"<?php echo $langs->trans("SplitSale
");?>");
238<div
class=
"headersplit">
239 <a href=
"#" onclick=
"top.location.href='index.php?place='+parent.place"><div
class=
"headercontent" id=
"headersplit1"></div></a>
242<div
class=
"rowsplit">
243 <div
class=
"splitsale" id=
"currentplace"></div>
246<div
class=
"headersplit">
247 <a href=
"#" onclick=
"top.location.href='index.php?place=SPLIT'"><div
class=
"headercontent" id=
"headersplit2"></div></a>
250<div
class=
"rowsplit">
251 <div
class=
"splitsale" id=
"splitplace"></div>
Class to manage invoices.
dol_now($mode='gmt')
Return date for now.
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0, $nodefault=0)
Return value of a param into GET or POST supervariable.
GETPOSTINT($paramname, $method=0, $nodefault=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
dol_htmloutput_errors($mesgstring='', $mesgarray=array(), $keepembedded=0)
Print formatted error messages to output (Used to show messages on html output).
getEntity($element, $shared=1, $currentobject=null)
Get list of entity id to use.
top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs=array(), $arrayofcss=array(), $disableforlogin=0, $disablenofollow=0, $disablenoindex=0)
Output html header of a page.
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.