dolibarr 21.0.0-beta
card.php
Go to the documentation of this file.
1<?php
2/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
3 * Copyright (C) 2004-2014 Laurent Destailleur <eldy@users.sourceforge.net>
4 * Copyright (C) 2005 Marc Barilley / Ocebo <marc@ocebo.com>
5 * Copyright (C) 2005-2009 Regis Houssin <regis.houssin@inodbox.com>
6 * Copyright (C) 2022 Alexandre Spangaro <aspangaro@open-dsi.fr>
7 * Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
8 * Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 3 of the License, or
13 * (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with this program. If not, see <https://www.gnu.org/licenses/>.
22 */
23
31// Load Dolibarr environment
32require '../../main.inc.php';
33require_once DOL_DOCUMENT_ROOT.'/compta/sociales/class/chargesociales.class.php';
34require_once DOL_DOCUMENT_ROOT.'/compta/sociales/class/paymentsocialcontribution.class.php';
35require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
36require_once DOL_DOCUMENT_ROOT.'/core/modules/facture/modules_facture.php';
37if (isModEnabled("bank")) {
38 require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
39}
40
49// Load translation files required by the page
50$langs->loadLangs(array('bills', 'banks', 'companies'));
51
52// Security check
53$id = GETPOSTINT("id");
54$action = GETPOST('action', 'aZ09');
55$confirm = GETPOST('confirm', 'aZ09');
56if ($user->socid) {
57 $socid = $user->socid;
58}
59
61if ($id > 0) {
62 $result = $object->fetch($id);
63 if (!$result) {
64 dol_print_error($db, 'Failed to get payment id '.$id);
65 }
66}
67
68$result = restrictedArea($user, 'payment_sc', $object, '');
69
70
71/*
72 * Actions
73 */
74
75// Delete payment
76if ($action == 'confirm_delete' && $confirm == 'yes' && $user->hasRight('tax', 'charges', 'supprimer')) {
77 $db->begin();
78
79 $result = $object->delete($user);
80 if ($result > 0) {
81 $db->commit();
82 header("Location: ".DOL_URL_ROOT."/compta/sociales/payments.php");
83 exit;
84 } else {
85 setEventMessages($object->error, $object->errors, 'errors');
86 $db->rollback();
87 }
88}
89
90/*if ($action == 'setdatep' && GETPOST('datepday') && $user->hasRight('tax', 'charges', 'creer')) {
91 $datepaye = dol_mktime(GETPOST('datephour', 'int'), GETPOST('datepmin', 'int'), GETPOST('datepsec', 'int'), GETPOST('datepmonth', 'int'), GETPOST('datepday', 'int'), GETPOST('datepyear', 'int'));
92 $res = $object->update_date($datepaye);
93 if ($res === 0) {
94 setEventMessages($langs->trans('PaymentDateUpdateSucceeded'), null, 'mesgs');
95 } else {
96 setEventMessages($langs->trans('PaymentDateUpdateFailed'), null, 'errors');
97 }
98}*/
99
100
101/*
102 * View
103 */
104
105llxHeader();
106
107$socialcontrib = new ChargeSociales($db);
108
109$form = new Form($db);
110
111$h = 0;
112
113$head = array();
114$head[$h][0] = DOL_URL_ROOT.'/compta/payment_sc/card.php?id='.$id;
115$head[$h][1] = $langs->trans("PaymentSocialContribution");
116$hselected = (string) $h;
117$h++;
118
119/*$head[$h][0] = DOL_URL_ROOT.'/compta/payment_sc/info.php?id='.$id;
120$head[$h][1] = $langs->trans("Info");
121$h++;
122*/
123
124
125print dol_get_fiche_head($head, $hselected, $langs->trans("PaymentSocialContribution"), -1, 'payment');
126
127/*
128 * Deletion confirmation of payment
129 */
130if ($action == 'delete') {
131 print $form->formconfirm('card.php?id='.$object->id, $langs->trans("DeletePayment"), $langs->trans("ConfirmDeletePayment"), 'confirm_delete', '', 0, 2);
132}
133
134$linkback = '<a href="'.DOL_URL_ROOT.'/compta/sociales/payments.php">'.$langs->trans("BackToList").'</a>';
135
136dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'id', '');
137
138
139print '<div class="fichecenter">';
140print '<div class="underbanner clearboth"></div>';
141
142print '<table class="border centpercent">';
143
144// Date
145print '<tr><td>'.$langs->trans('Date').'</td><td>'.dol_print_date($object->datep, 'day').'</td></tr>';
146
147// Mode
148print '<tr><td>'.$langs->trans('Mode').'</td><td>'.$langs->trans("PaymentType".$object->type_code).'</td></tr>';
149
150// Numero
151print '<tr><td>'.$langs->trans('Numero').'</td><td>'.dol_escape_htmltag($object->num_payment).'</td></tr>';
152
153// Amount
154print '<tr><td>'.$langs->trans('Amount').'</td><td>'.price($object->amount, 0, $langs, 1, -1, -1, $conf->currency).'</td></tr>';
155
156// Note
157print '<tr><td>'.$langs->trans('Note').'</td><td class="wordbreak sensiblehtmlcontent">'.dol_string_onlythesehtmltags(dol_htmlcleanlastbr($object->note_private)).'</td></tr>';
158
159// Bank account
160if (isModEnabled("bank")) {
161 if ($object->bank_account) {
162 $bankline = new AccountLine($db);
163 $bankline->fetch($object->bank_line);
164
165 print '<tr>';
166 print '<td>'.$langs->trans('BankTransactionLine').'</td>';
167 print '<td>';
168 print $bankline->getNomUrl(1, 0, 'showall');
169 print '</td>';
170 print '</tr>';
171 }
172}
173
174print '</table>';
175
176print '</div>';
177
178print dol_get_fiche_end();
179
180
181/*
182 * List of social contributions paid
183 */
184
185$disable_delete = 0;
186$sql = 'SELECT f.rowid as scid, f.libelle as label, f.paye, f.amount as sc_amount, pf.amount, pc.libelle as sc_type';
187$sql .= ' FROM '.MAIN_DB_PREFIX.'paiementcharge as pf,'.MAIN_DB_PREFIX.'chargesociales as f, '.MAIN_DB_PREFIX.'c_chargesociales as pc';
188$sql .= ' WHERE pf.fk_charge = f.rowid AND f.fk_type = pc.id';
189$sql .= ' AND f.entity = '.$conf->entity;
190$sql .= ' AND pf.rowid = '.((int) $object->id);
191
192dol_syslog("compta/payment_sc/card.php", LOG_DEBUG);
193$resql = $db->query($sql);
194if ($resql) {
195 $num = $db->num_rows($resql);
196
197 $i = 0;
198 $total = 0;
199 print '<br><table class="noborder centpercent">';
200 print '<tr class="liste_titre">';
201 print '<td>'.$langs->trans('SocialContribution').'</td>';
202 print '<td>'.$langs->trans('Type').'</td>';
203 print '<td>'.$langs->trans('Label').'</td>';
204 print '<td class="right">'.$langs->trans('ExpectedToPay').'</td>';
205 print '<td class="center">'.$langs->trans('Status').'</td>';
206 print '<td class="right">'.$langs->trans('PayedByThisPayment').'</td>';
207 print "</tr>\n";
208
209 if ($num > 0) {
210 while ($i < $num) {
211 $objp = $db->fetch_object($resql);
212
213 print '<tr class="oddeven">';
214 // Ref
215 print '<td>';
216 $socialcontrib->fetch($objp->scid);
217 print $socialcontrib->getNomUrl(1);
218 print "</td>\n";
219 // Type
220 print '<td>';
221 print $socialcontrib->type_label;
222 /*print $socialcontrib->type;*/
223 print "</td>\n";
224 // Label
225 print '<td>'.$objp->label.'</td>';
226 // Expected to pay
227 print '<td class="right"><span class="amount">'.price($objp->sc_amount).'</span></td>';
228 // Status
229 print '<td class="center">'.$socialcontrib->getLibStatut(4, $objp->amount).'</td>';
230 // Amount paid
231 print '<td class="right"><span class="amount">'.price($objp->amount).'</span></td>';
232 print "</tr>\n";
233 if ($objp->paye == 1) { // If at least one invoice is paid, disable delete
234 $disable_delete = 1;
235 }
236 $total += $objp->amount;
237 $i++;
238 }
239 }
240
241
242 print "</table>\n";
243 $db->free($resql);
244} else {
245 dol_print_error($db);
246}
247
248
249
250/*
251 * Actions Buttons
252 */
253print '<div class="tabsAction">';
254
255/*
256if (!empty($conf->global->BILL_ADD_PAYMENT_VALIDATION))
257{
258 if ($user->socid == 0 && $object->statut == 0 && $action == '')
259 {
260 if ($user->hasRight('facture', 'paiement')){
261 print '<a class="butAction" href="card.php?id='.GETPOST('id', 'int').'&amp;facid='.$objp->facid.'&amp;action=valide">'.$langs->trans('Valid').'</a>';
262 }
263 }
264}
265*/
266
267if ($action == '') {
268 if ($user->hasRight('tax', 'charges', 'supprimer')) {
269 if (!$disable_delete) {
270 print dolGetButtonAction($langs->trans("Delete"), '', 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken(), 'delete', 1);
271 } else {
272 print dolGetButtonAction($langs->trans("CantRemovePaymentWithOneInvoicePaid"), $langs->trans("Delete"), 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken(), 'delete', 0);
273 }
274 }
275}
276
277print '</div>';
278
279// End of page
280llxFooter();
281$db->close();
$id
Definition account.php:48
if( $user->socid > 0) if(! $user->hasRight('accounting', 'chartofaccount')) $object
Definition card.php:66
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:71
Class to manage bank transaction lines.
Class for managing the social charges.
Class to manage generation of HTML components Only common components must be here.
Class to manage payments of social contributions.
llxFooter()
Footer empty.
Definition document.php:107
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_string_onlythesehtmltags($stringtoclean, $cleanalsosomestyles=1, $removeclassattribute=1, $cleanalsojavascript=0, $allowiframe=0, $allowed_tags=array(), $allowlink=0, $allowscript=0, $allowstyle=0)
Clean a string to keep only desirable HTML tags.
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.
price($amount, $form=0, $outlangs='', $trunc=1, $rounding=-1, $forcerounding=-1, $currency_code='')
Function to format a value into an amount for visual output Function used into PDF and HTML pages.
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs=null, $encodetooutput=false)
Output date in a string format according to outputlangs (or langs if not defined).
newToken()
Return the value of token currently saved into session with name 'newtoken'.
dolGetButtonAction($label, $text='', $actionType='default', $url='', $id='', $userRight=1, $params=array())
Function dolGetButtonAction.
dol_htmlcleanlastbr($stringtodecode)
This function remove all ending and br at end.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
dol_print_error($db=null, $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename='', $restricttologhandler='', $logcontext=null)
Write log message into outputs.
dol_escape_htmltag($stringtoescape, $keepb=0, $keepn=0, $noescapetags='', $escapeonlyhtmltags=0, $cleanalsojavascript=0)
Returns text escaped for inclusion in HTML alt or title or value tags, or into values of HTML input f...
global $conf
The following vars must be defined: $type2label $form $conf, $lang, The following vars may also be de...
Definition member.php:79
restrictedArea(User $user, $features, $object=0, $tableandshare='', $feature2='', $dbt_keyfield='fk_soc', $dbt_select='rowid', $isdraft=0, $mode=0)
Check permissions of a user to show a page and an object.