dolibarr 21.0.0-alpha
card.php
Go to the documentation of this file.
1<?php
2/* Copyright (C) 2013-2014 Olivier Geffroy <jeff@jeffinfo.com>
3 * Copyright (C) 2013-2014 Florian Henry <florian.henry@open-concept.pro>
4 * Copyright (C) 2013-2024 Alexandre Spangaro <aspangaro@easya.solutions>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <https://www.gnu.org/licenses/>.
18 */
19
25require '../../main.inc.php';
26
27require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
28require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php';
29
30// Load translation files required by the page
31$langs->loadLangs(array("bills", "accountancy"));
32
33$action = GETPOST('action', 'aZ09');
34$cancel = GETPOST('cancel', 'alpha');
35$backtopage = GETPOST('backtopage', 'alpha');
36
37$codeventil = GETPOSTINT('codeventil');
38$id = GETPOSTINT('id');
39
40// Security check
41if (!isModEnabled('accounting')) {
43}
44if ($user->socid > 0) {
46}
47if (!$user->hasRight('accounting', 'bind', 'write')) {
49}
50
51
52
53/*
54 * Actions
55 */
56
57if ($action == 'ventil' && $user->hasRight('accounting', 'bind', 'write')) {
58 if (!$cancel) {
59 if ($codeventil < 0) {
60 $codeventil = 0;
61 }
62
63 $sql = " UPDATE ".MAIN_DB_PREFIX."facturedet";
64 $sql .= " SET fk_code_ventilation = ".((int) $codeventil);
65 $sql .= " WHERE rowid = ".((int) $id);
66
67 $resql = $db->query($sql);
68 if (!$resql) {
69 setEventMessages($db->lasterror(), null, 'errors');
70 } else {
71 setEventMessages($langs->trans("RecordModifiedSuccessfully"), null, 'mesgs');
72 if ($backtopage) {
73 header("Location: ".$backtopage);
74 exit();
75 }
76 }
77 } else {
78 header("Location: ./lines.php");
79 exit();
80 }
81}
82
83
84/*
85 * View
86 */
87$help_url ='EN:Module_Double_Entry_Accounting|FR:Module_Comptabilit&eacute;_en_Partie_Double#Liaisons_comptables';
88
89llxHeader("", $langs->trans('FicheVentilation'), $help_url, '', 0, 0, '', '', '', 'mod-accountancy accountancy-customer page-card');
90
91if ($cancel == $langs->trans("Cancel")) {
92 $action = '';
93}
94
95/*
96 * Create
97 */
98$form = new Form($db);
99$facture_static = new Facture($db);
100$formaccounting = new FormAccounting($db);
101
102if (!empty($id)) {
103 $sql = "SELECT f.ref, f.rowid as facid, l.fk_product, l.description, l.price,";
104 $sql .= " l.qty, l.rowid, l.tva_tx, l.remise_percent, l.subprice, l.fk_code_ventilation,";
105 $sql .= " p.rowid as product_id, p.ref as product_ref, p.label as product_label,";
106 if (getDolGlobalString('MAIN_PRODUCT_PERENTITY_SHARED')) {
107 $sql .= " ppe.accountancy_code_sell as code_sell,";
108 } else {
109 $sql .= " p.accountancy_code_sell as code_sell,";
110 }
111 $sql .= " aa.account_number, aa.label";
112 $sql .= " FROM ".MAIN_DB_PREFIX."facturedet as l";
113 $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON p.rowid = l.fk_product";
114 if (getDolGlobalString('MAIN_PRODUCT_PERENTITY_SHARED')) {
115 $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product_perentity as ppe ON ppe.fk_product = p.rowid AND ppe.entity = " . ((int) $conf->entity);
116 }
117 $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as aa ON l.fk_code_ventilation = aa.rowid";
118 $sql .= " INNER JOIN ".MAIN_DB_PREFIX."facture as f ON f.rowid = l.fk_facture";
119 $sql .= " WHERE f.fk_statut > 0 AND l.rowid = ".((int) $id);
120 $sql .= " AND f.entity IN (".getEntity('invoice', 0).")"; // We don't share object for accountancy
121
122 dol_syslog("/accounting/customer/card.php", LOG_DEBUG);
123 $result = $db->query($sql);
124
125 if ($result) {
126 $num_lines = $db->num_rows($result);
127 $i = 0;
128
129 if ($num_lines) {
130 $objp = $db->fetch_object($result);
131
132 print '<form action="'.$_SERVER["PHP_SELF"].'?id='.$id.'" method="post">'."\n";
133 print '<input type="hidden" name="token" value="'.newToken().'">';
134 print '<input type="hidden" name="action" value="ventil">';
135 print '<input type="hidden" name="backtopage" value="'.dol_escape_htmltag($backtopage).'">';
136
137 print load_fiche_titre($langs->trans('CustomersVentilation'), '', 'title_accountancy');
138
139 print dol_get_fiche_head();
140
141 print '<table class="border centpercent">';
142
143 // Ref invoice
144 print '<tr><td>'.$langs->trans("Invoice").'</td>';
145 $facture_static->ref = $objp->ref;
146 $facture_static->id = $objp->facid;
147 print '<td>'.$facture_static->getNomUrl(1).'</td>';
148 print '</tr>';
149
150 print '<tr><td>'.$langs->trans("Description").'</td>';
151 print '<td>'.dolPrintHTML($objp->description).'</td></tr>';
152
153 print '<tr><td>'.$langs->trans("ProductLabel").'</td>';
154 print '<td>'.dol_trunc($objp->product_label, 24).'</td></tr>';
155
156 print '<tr><td>'.$langs->trans("Account").'</td><td>';
157 print $formaccounting->select_account($objp->fk_code_ventilation, 'codeventil', 1);
158 print '</td></tr>';
159
160 print '</table>';
161
162 print dol_get_fiche_end();
163
164 print '<div class="center">';
165 print '<input class="button button-save" type="submit" value="'.$langs->trans("Save").'">';
166 print '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
167 print '<input class="button button-cancel" type="submit" name="cancel" value="'.$langs->trans("Cancel").'">';
168 print '</div>';
169
170 print '</form>';
171 } else {
172 print "Error";
173 }
174 } else {
175 print "Error";
176 }
177} else {
178 print "Error ID incorrect";
179}
180
181// End of page
182llxFooter();
183$db->close();
$id
Definition account.php:39
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader($head='', $title='', $help_url='', $target='', $disablejs=0, $disablehead=0, $arrayofjs='', $arrayofcss='', $morequerystring='', $morecssonbody='', $replacemainareaby='', $disablenofollow=0, $disablenoindex=0)
Empty header.
Definition wrapper.php:70
Class to manage invoices.
Class to manage generation of HTML components for accounting management.
Class to manage generation of HTML components Only common components must be here.
llxFooter()
Footer empty.
Definition document.php:107
load_fiche_titre($title, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='')
Load a title with picto.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0, $attop=0)
Set event messages in dol_events session object.
GETPOSTINT($paramname, $method=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $picto='', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limittoshow=0, $moretabssuffix='', $dragdropfile=0)
Show tabs of a record.
dol_get_fiche_end($notab=0)
Return tab footer of a card.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
getDolGlobalString($key, $default='')
Return a Dolibarr global constant string value.
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename='', $restricttologhandler='', $logcontext=null)
Write log message into outputs.
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.