dolibarr 21.0.0-alpha
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
41// Load translation files required by the page
42$langs->loadLangs(array('bills', 'banks', 'companies'));
43
44// Security check
45$id = GETPOSTINT("id");
46$action = GETPOST('action', 'aZ09');
47$confirm = GETPOST('confirm', 'aZ09');
48if ($user->socid) {
49 $socid = $user->socid;
50}
51
53if ($id > 0) {
54 $result = $object->fetch($id);
55 if (!$result) {
56 dol_print_error($db, 'Failed to get payment id '.$id);
57 }
58}
59
60$result = restrictedArea($user, 'payment_sc', $object, '');
61
62
63/*
64 * Actions
65 */
66
67// Delete payment
68if ($action == 'confirm_delete' && $confirm == 'yes' && $user->hasRight('tax', 'charges', 'supprimer')) {
69 $db->begin();
70
71 $result = $object->delete($user);
72 if ($result > 0) {
73 $db->commit();
74 header("Location: ".DOL_URL_ROOT."/compta/sociales/payments.php");
75 exit;
76 } else {
77 setEventMessages($object->error, $object->errors, 'errors');
78 $db->rollback();
79 }
80}
81
82/*if ($action == 'setdatep' && GETPOST('datepday') && $user->hasRight('tax', 'charges', 'creer')) {
83 $datepaye = dol_mktime(GETPOST('datephour', 'int'), GETPOST('datepmin', 'int'), GETPOST('datepsec', 'int'), GETPOST('datepmonth', 'int'), GETPOST('datepday', 'int'), GETPOST('datepyear', 'int'));
84 $res = $object->update_date($datepaye);
85 if ($res === 0) {
86 setEventMessages($langs->trans('PaymentDateUpdateSucceeded'), null, 'mesgs');
87 } else {
88 setEventMessages($langs->trans('PaymentDateUpdateFailed'), null, 'errors');
89 }
90}*/
91
92
93/*
94 * View
95 */
96
97llxHeader();
98
99$socialcontrib = new ChargeSociales($db);
100
101$form = new Form($db);
102
103$h = 0;
104
105$head = array();
106$head[$h][0] = DOL_URL_ROOT.'/compta/payment_sc/card.php?id='.$id;
107$head[$h][1] = $langs->trans("PaymentSocialContribution");
108$hselected = (string) $h;
109$h++;
110
111/*$head[$h][0] = DOL_URL_ROOT.'/compta/payment_sc/info.php?id='.$id;
112$head[$h][1] = $langs->trans("Info");
113$h++;
114*/
115
116
117print dol_get_fiche_head($head, $hselected, $langs->trans("PaymentSocialContribution"), -1, 'payment');
118
119/*
120 * Deletion confirmation of payment
121 */
122if ($action == 'delete') {
123 print $form->formconfirm('card.php?id='.$object->id, $langs->trans("DeletePayment"), $langs->trans("ConfirmDeletePayment"), 'confirm_delete', '', 0, 2);
124}
125
126$linkback = '<a href="'.DOL_URL_ROOT.'/compta/sociales/payments.php">'.$langs->trans("BackToList").'</a>';
127
128dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'id', '');
129
130
131print '<div class="fichecenter">';
132print '<div class="underbanner clearboth"></div>';
133
134print '<table class="border centpercent">';
135
136// Date
137print '<tr><td>'.$langs->trans('Date').'</td><td>'.dol_print_date($object->datep, 'day').'</td></tr>';
138
139// Mode
140print '<tr><td>'.$langs->trans('Mode').'</td><td>'.$langs->trans("PaymentType".$object->type_code).'</td></tr>';
141
142// Numero
143print '<tr><td>'.$langs->trans('Numero').'</td><td>'.dol_escape_htmltag($object->num_payment).'</td></tr>';
144
145// Amount
146print '<tr><td>'.$langs->trans('Amount').'</td><td>'.price($object->amount, 0, $langs, 1, -1, -1, $conf->currency).'</td></tr>';
147
148// Note
149print '<tr><td>'.$langs->trans('Note').'</td><td class="wordbreak sensiblehtmlcontent">'.dol_string_onlythesehtmltags(dol_htmlcleanlastbr($object->note_private)).'</td></tr>';
150
151// Bank account
152if (isModEnabled("bank")) {
153 if ($object->bank_account) {
154 $bankline = new AccountLine($db);
155 $bankline->fetch($object->bank_line);
156
157 print '<tr>';
158 print '<td>'.$langs->trans('BankTransactionLine').'</td>';
159 print '<td>';
160 print $bankline->getNomUrl(1, 0, 'showall');
161 print '</td>';
162 print '</tr>';
163 }
164}
165
166print '</table>';
167
168print '</div>';
169
170print dol_get_fiche_end();
171
172
173/*
174 * List of social contributions paid
175 */
176
177$disable_delete = 0;
178$sql = 'SELECT f.rowid as scid, f.libelle as label, f.paye, f.amount as sc_amount, pf.amount, pc.libelle as sc_type';
179$sql .= ' FROM '.MAIN_DB_PREFIX.'paiementcharge as pf,'.MAIN_DB_PREFIX.'chargesociales as f, '.MAIN_DB_PREFIX.'c_chargesociales as pc';
180$sql .= ' WHERE pf.fk_charge = f.rowid AND f.fk_type = pc.id';
181$sql .= ' AND f.entity = '.$conf->entity;
182$sql .= ' AND pf.rowid = '.((int) $object->id);
183
184dol_syslog("compta/payment_sc/card.php", LOG_DEBUG);
185$resql = $db->query($sql);
186if ($resql) {
187 $num = $db->num_rows($resql);
188
189 $i = 0;
190 $total = 0;
191 print '<br><table class="noborder centpercent">';
192 print '<tr class="liste_titre">';
193 print '<td>'.$langs->trans('SocialContribution').'</td>';
194 print '<td>'.$langs->trans('Type').'</td>';
195 print '<td>'.$langs->trans('Label').'</td>';
196 print '<td class="right">'.$langs->trans('ExpectedToPay').'</td>';
197 print '<td class="center">'.$langs->trans('Status').'</td>';
198 print '<td class="right">'.$langs->trans('PayedByThisPayment').'</td>';
199 print "</tr>\n";
200
201 if ($num > 0) {
202 while ($i < $num) {
203 $objp = $db->fetch_object($resql);
204
205 print '<tr class="oddeven">';
206 // Ref
207 print '<td>';
208 $socialcontrib->fetch($objp->scid);
209 print $socialcontrib->getNomUrl(1);
210 print "</td>\n";
211 // Type
212 print '<td>';
213 print $socialcontrib->type_label;
214 /*print $socialcontrib->type;*/
215 print "</td>\n";
216 // Label
217 print '<td>'.$objp->label.'</td>';
218 // Expected to pay
219 print '<td class="right"><span class="amount">'.price($objp->sc_amount).'</span></td>';
220 // Status
221 print '<td class="center">'.$socialcontrib->getLibStatut(4, $objp->amount).'</td>';
222 // Amount paid
223 print '<td class="right"><span class="amount">'.price($objp->amount).'</span></td>';
224 print "</tr>\n";
225 if ($objp->paye == 1) { // If at least one invoice is paid, disable delete
226 $disable_delete = 1;
227 }
228 $total += $objp->amount;
229 $i++;
230 }
231 }
232
233
234 print "</table>\n";
235 $db->free($resql);
236} else {
237 dol_print_error($db);
238}
239
240
241
242/*
243 * Actions Buttons
244 */
245print '<div class="tabsAction">';
246
247/*
248if (!empty($conf->global->BILL_ADD_PAYMENT_VALIDATION))
249{
250 if ($user->socid == 0 && $object->statut == 0 && $action == '')
251 {
252 if ($user->hasRight('facture', 'paiement')){
253 print '<a class="butAction" href="card.php?id='.GETPOST('id', 'int').'&amp;facid='.$objp->facid.'&amp;action=valide">'.$langs->trans('Valid').'</a>';
254 }
255 }
256}
257*/
258
259if ($action == '') {
260 if ($user->hasRight('tax', 'charges', 'supprimer')) {
261 if (!$disable_delete) {
262 print dolGetButtonAction($langs->trans("Delete"), '', 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken(), 'delete', 1);
263 } else {
264 print dolGetButtonAction($langs->trans("CantRemovePaymentWithOneInvoicePaid"), $langs->trans("Delete"), 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken(), 'delete', 0);
265 }
266 }
267}
268
269print '</div>';
270
271// End of page
272llxFooter();
273$db->close();
$id
Definition account.php:39
if( $user->socid > 0) if(! $user->hasRight('accounting', 'chartofaccount')) $object
Definition card.php:58
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 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...
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.