19 |
* |
* |
20 |
* $Id$ |
* $Id$ |
21 |
* $Source$ |
* $Source$ |
|
* |
|
22 |
*/ |
*/ |
23 |
|
|
24 |
/** |
/** |
25 |
\file htdocs/compta/facture/prelevement.php |
\file htdocs/compta/facture/prelevement.php |
26 |
\ingroup facture |
\ingroup facture |
27 |
\brief Gestion des prelevement d'une facture |
\brief Gestion des prelevement d'une facture |
28 |
\version $Revision$ |
\version $Revision$ |
29 |
*/ |
*/ |
30 |
|
|
31 |
require("./pre.inc.php"); |
require("./pre.inc.php"); |
39 |
|
|
40 |
require_once(DOL_DOCUMENT_ROOT."/facture.class.php"); |
require_once(DOL_DOCUMENT_ROOT."/facture.class.php"); |
41 |
|
|
42 |
|
// Sécurité accés client |
43 |
|
if ($user->societe_id > 0) |
44 |
|
{ |
45 |
|
$action = ''; |
46 |
|
$socidp = $user->societe_id; |
47 |
|
} |
48 |
|
|
49 |
|
|
50 |
|
/* |
51 |
|
* Actions |
52 |
|
*/ |
53 |
|
|
54 |
if ($_GET["action"] == "new") |
if ($_GET["action"] == "new") |
55 |
{ |
{ |
56 |
$fact = new Facture($db); |
$fact = new Facture($db); |
77 |
} |
} |
78 |
} |
} |
79 |
|
|
80 |
/* |
|
|
* Sécurité accés client |
|
|
*/ |
|
|
if ($user->societe_id > 0) |
|
|
{ |
|
|
$action = ''; |
|
|
$socidp = $user->societe_id; |
|
|
} |
|
81 |
|
|
82 |
llxHeader('',$langs->trans("Bill")); |
llxHeader('',$langs->trans("Bill")); |
83 |
|
|
90 |
/* *************************************************************************** */ |
/* *************************************************************************** */ |
91 |
|
|
92 |
if ($_GET["facid"] > 0) |
if ($_GET["facid"] > 0) |
93 |
{ |
{ |
94 |
$fac = New Facture($db); |
$fac = New Facture($db); |
95 |
if ( $fac->fetch($_GET["facid"], $user->societe_id) > 0) |
if ( $fac->fetch($_GET["facid"], $user->societe_id) > 0) |
96 |
{ |
{ |
97 |
$soc = new Societe($db, $fac->socidp); |
$soc = new Societe($db, $fac->socidp); |
98 |
$soc->fetch($fac->socidp); |
$soc->fetch($fac->socidp); |
99 |
$author = new User($db); |
$author = new User($db); |
100 |
$author->id = $fac->user_author; |
$author->id = $fac->user_author; |
101 |
$author->fetch(); |
$author->fetch(); |
102 |
|
|
103 |
$h = 0; |
$h = 0; |
104 |
$head[$h][0] = DOL_URL_ROOT.'/compta/facture.php?facid='.$fac->id; |
$head[$h][0] = DOL_URL_ROOT.'/compta/facture.php?facid='.$fac->id; |
105 |
$head[$h][1] = $langs->trans("CardBill"); |
$head[$h][1] = $langs->trans("CardBill"); |
106 |
$h++; |
$h++; |
107 |
$head[$h][0] = DOL_URL_ROOT.'/compta/facture/apercu.php?facid='.$fac->id; |
|
108 |
$head[$h][1] = $langs->trans("Preview"); |
$head[$h][0] = DOL_URL_ROOT.'/compta/facture/apercu.php?facid='.$fac->id; |
109 |
$h++; |
$head[$h][1] = $langs->trans("Preview"); |
110 |
$head[$h][0] = DOL_URL_ROOT.'/compta/facture/prelevement.php?facid='.$fac->id; |
$h++; |
111 |
$head[$h][1] = $langs->trans("StandingOrders"); |
|
112 |
$hselected = $h; |
if ($fac->mode_reglement_code == 'PRE') |
113 |
$h++; |
{ |
114 |
$head[$h][0] = DOL_URL_ROOT.'/compta/facture/note.php?facid='.$fac->id; |
$head[$h][0] = DOL_URL_ROOT.'/compta/facture/prelevement.php?facid='.$fac->id; |
115 |
$head[$h][1] = $langs->trans("Note"); |
$head[$h][1] = $langs->trans("StandingOrders"); |
116 |
$h++; |
$hselected = $h; |
117 |
$head[$h][0] = DOL_URL_ROOT.'/compta/facture/info.php?facid='.$fac->id; |
$h++; |
118 |
$head[$h][1] = $langs->trans("Info"); |
} |
119 |
$h++; |
|
120 |
|
$head[$h][0] = DOL_URL_ROOT.'/compta/facture/note.php?facid='.$fac->id; |
121 |
dolibarr_fiche_head($head, $hselected, $langs->trans("Bill")." : $fac->ref"); |
$head[$h][1] = $langs->trans("Note"); |
122 |
|
$h++; |
123 |
/* |
|
124 |
* Facture |
$head[$h][0] = DOL_URL_ROOT.'/compta/facture/info.php?facid='.$fac->id; |
125 |
*/ |
$head[$h][1] = $langs->trans("Info"); |
126 |
print '<table class="border" width="100%">'; |
$h++; |
127 |
print '<tr><td>'.$langs->trans("Company").'</td>'; |
|
128 |
print '<td colspan="3">'; |
dolibarr_fiche_head($head, $hselected, $langs->trans("Bill")." : $fac->ref"); |
129 |
print '<b><a href="'.DOL_URL_ROOT.'/compta/fiche.php?socid='.$soc->id.'">'.$soc->nom.'</a></b></td>'; |
|
130 |
|
/* |
131 |
print "<td>Conditions de réglement : " . $fac->cond_reglement ."</td></tr>"; |
* Facture |
132 |
|
*/ |
133 |
print '<tr><td>'.$langs->trans("Date").'</td>'; |
print '<table class="border" width="100%">'; |
134 |
print "<td colspan=\"3\">".dolibarr_print_date($fac->date,"%A %d %B %Y")."</td>\n"; |
|
135 |
print '<td>'.$langs->trans("DateClosing").dolibarr_print_date($fac->date_lim_reglement,"%A %d %B %Y").'</td></tr>'; |
// Societe |
136 |
|
print '<tr><td>'.$langs->trans("Company").'</td>'; |
137 |
print '<tr><td height="10">'.$langs->trans("Author").'</td><td colspan="4">'.$author->fullname.'</td></tr>'; |
print '<td colspan="5">'; |
138 |
|
print '<a href="'.DOL_URL_ROOT.'/compta/fiche.php?socid='.$soc->id.'">'.$soc->nom.'</a></td>'; |
139 |
print '<tr><td height="10">'.$langs->trans("AmountHT").'</td>'; |
print '</tr>'; |
140 |
print '<td align="right" colspan="2"><b>'.price($fac->total_ht).'</b></td>'; |
|
141 |
print '<td>'.$langs->trans("Currency".$conf->monnaie).'</td><td> </td></tr>'; |
// Dates |
142 |
|
print '<tr><td>'.$langs->trans("Date").'</td>'; |
143 |
print '<tr><td height="10">'.$langs->trans("AmountTTC").'</td>'; |
print '<td colspan="3">'.dolibarr_print_date($fac->date,"%A %d %B %Y").'</td>'; |
144 |
print '<td align="right" colspan="2"><b>'.price($fac->total_ttc).'</b></td>'; |
print '<td>'.$langs->trans("DateClosing").'</td><td>' . dolibarr_print_date($fac->date_lim_reglement,"%A %d %B %Y"); |
145 |
print '<td>'.$langs->trans("Currency".$conf->monnaie).'</td><td> </td></tr>'; |
if ($fac->paye == 0 && $fac->date_lim_reglement < (time() - $warning_delay)) print img_warning($langs->trans("Late")); |
146 |
|
print "</td></tr>"; |
147 |
print '<tr><td>RIB</td><td colspan="4">'; |
|
148 |
print $soc->display_rib(); |
// Conditions et modes de réglement |
149 |
print '</td></tr>'; |
print '<tr><td>'.$langs->trans("PaymentConditions").'</td><td colspan="3">'; |
150 |
|
$html->form_conditions_reglement($_SERVER["PHP_SELF"]."?facid=$fac->id",$fac->cond_reglement_id,"none"); |
151 |
print "</table>"; |
print '</td>'; |
152 |
|
print '<td width="25%">'.$langs->trans("PaymentMode").'</td><td width="25%">'; |
153 |
/* |
$html->form_modes_reglement($_SERVER["PHP_SELF"]."?facid=$fac->id",$fac->mode_reglement_id,"none"); |
154 |
* Demande de prélèvement |
print '</td></tr>'; |
155 |
* |
|
156 |
*/ |
print '<tr><td>'.$langs->trans("AmountHT").'</td>'; |
157 |
|
print '<td align="right" colspan="2"><b>'.price($fac->total_ht).'</b></td>'; |
158 |
$sql = "SELECT pfd.rowid, pfd.traite,".$db->pdate("pfd.date_demande")." as date_demande"; |
print '<td>'.$langs->trans("Currency".$conf->monnaie).'</td><td colspan="2"> </td></tr>'; |
159 |
$sql .= " ,".$db->pdate("pfd.date_traite")." as date_traite"; |
|
160 |
$sql .= " , pfd.amount"; |
print '<tr><td>'.$langs->trans("AmountTTC").'</td>'; |
161 |
$sql .= " , u.name, u.firstname"; |
print '<td align="right" colspan="2"><b>'.price($fac->total_ttc).'</b></td>'; |
162 |
$sql .= " FROM ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd"; |
print '<td>'.$langs->trans("Currency".$conf->monnaie).'</td><td colspan="2"> </td></tr>'; |
163 |
$sql .= " , ".MAIN_DB_PREFIX."user as u"; |
|
164 |
$sql .= " WHERE fk_facture = ".$fac->id; |
print '<tr><td>RIB</td><td colspan="5">'; |
165 |
$sql .= " AND pfd.fk_user_demande = u.rowid"; |
print $soc->display_rib(); |
166 |
$sql .= " AND pfd.traite = 0"; |
print '</td></tr>'; |
167 |
$sql .= " ORDER BY pfd.date_demande DESC"; |
|
168 |
|
print '</table>'; |
169 |
$result_sql = $db->query($sql); |
print '</div>'; |
170 |
if ($result_sql) |
|
171 |
{ |
/* |
172 |
$num = $db->num_rows($result_sql); |
* Demande de prélèvement |
173 |
} |
* |
174 |
|
*/ |
175 |
|
|
176 |
print "<div class=\"tabsAction\">\n"; |
$sql = "SELECT pfd.rowid, pfd.traite,".$db->pdate("pfd.date_demande")." as date_demande"; |
177 |
|
$sql .= " ,".$db->pdate("pfd.date_traite")." as date_traite"; |
178 |
// Valider |
$sql .= " , pfd.amount"; |
179 |
if ($fac->statut > 0 && $fac->paye == 0 && $fac->mode_reglement == 3 && $num == 0) |
$sql .= " , u.name, u.firstname"; |
180 |
{ |
$sql .= " FROM ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd"; |
181 |
if ($user->rights->facture->creer) |
$sql .= " , ".MAIN_DB_PREFIX."user as u"; |
182 |
{ |
$sql .= " WHERE fk_facture = ".$fac->id; |
183 |
print '<a class="butAction" href="prelevement.php?facid='.$fac->id.'&action=new">Faire une demande de prélèvement</a>'; |
$sql .= " AND pfd.fk_user_demande = u.rowid"; |
184 |
} |
$sql .= " AND pfd.traite = 0"; |
185 |
} |
$sql .= " ORDER BY pfd.date_demande DESC"; |
186 |
print "</div><br/>"; |
|
187 |
|
$result_sql = $db->query($sql); |
188 |
/* |
if ($result_sql) |
189 |
* Prélèvement |
{ |
190 |
*/ |
$num = $db->num_rows($result_sql); |
191 |
print '<table class="noborder" width="100%">'; |
} |
192 |
|
|
193 |
print '<tr class="liste_titre">'; |
|
194 |
print '<td align="center">Date demande</td>'; |
print "<div class=\"tabsAction\">\n"; |
195 |
print '<td align="center">Date traitement</td>'; |
|
196 |
print '<td align="center">'.$langs->trans("Amount").'</td>'; |
// Valider |
197 |
print '<td align="center">Bon prélèvement</td>'; |
if ($fac->statut > 0 && $fac->paye == 0 && $fac->mode_reglement_code == 'PRE' && $num == 0) |
198 |
print '<td align="center">'.$langs->trans("User").'</td><td> </td><td> </td>'; |
{ |
199 |
print '</tr>'; |
if ($user->rights->facture->creer) |
200 |
$var=True; |
{ |
201 |
|
print '<a class="butAction" href="prelevement.php?facid='.$fac->id.'&action=new">Faire une demande de prélèvement</a>'; |
202 |
if ($result_sql) |
} |
203 |
{ |
} |
204 |
$i = 0; |
print "</div><br/>"; |
205 |
|
|
206 |
while ($i < $num) |
/* |
207 |
{ |
* Prélèvement |
208 |
$obj = $db->fetch_object($result_sql); |
*/ |
209 |
$var=!$var; |
print '<table class="noborder" width="100%">'; |
210 |
|
|
211 |
print "<tr $bc[$var]>"; |
print '<tr class="liste_titre">'; |
212 |
print '<td align="center">'.strftime("%d/%m/%Y",$obj->date_demande)."</td>\n"; |
print '<td align="center">Date demande</td>'; |
213 |
print '<td align="center">En attente de traitement</td>'; |
print '<td align="center">Date traitement</td>'; |
214 |
print '<td align="center">'.price($obj->amount).'</td>'; |
print '<td align="center">'.$langs->trans("Amount").'</td>'; |
215 |
print '<td align="center">-</td>'; |
print '<td align="center">Bon prélèvement</td>'; |
216 |
print '<td align="center" colspan="2">'.$obj->firstname." ".$obj->name.'</td>'; |
print '<td align="center">'.$langs->trans("User").'</td><td> </td><td> </td>'; |
217 |
print '<td>'; |
print '</tr>'; |
218 |
print '<a href="prelevement.php?facid='.$fac->id.'&action=delete&did='.$obj->rowid.'">'; |
$var=True; |
219 |
print img_delete(); |
|
220 |
print '</a></td>'; |
if ($result_sql) |
221 |
print "</tr>\n"; |
{ |
222 |
$i++; |
$i = 0; |
223 |
} |
|
224 |
|
while ($i < $num) |
225 |
$db->free($result_sql); |
{ |
226 |
} |
$obj = $db->fetch_object($result_sql); |
227 |
else |
$var=!$var; |
228 |
{ |
|
229 |
dolibarr_print_error($db); |
print "<tr $bc[$var]>"; |
230 |
} |
print '<td align="center">'.strftime("%d/%m/%Y",$obj->date_demande)."</td>\n"; |
231 |
|
print '<td align="center">En attente de traitement</td>'; |
232 |
$sql = "SELECT pfd.rowid, pfd.traite,".$db->pdate("pfd.date_demande")." as date_demande"; |
print '<td align="center">'.price($obj->amount).'</td>'; |
233 |
$sql .= " ,".$db->pdate("pfd.date_traite")." as date_traite"; |
print '<td align="center">-</td>'; |
234 |
$sql .= " , pfd.fk_prelevement_bons, pfd.amount"; |
print '<td align="center" colspan="2">'.$obj->firstname." ".$obj->name.'</td>'; |
235 |
$sql .= " , u.name, u.firstname"; |
print '<td>'; |
236 |
$sql .= " FROM ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd"; |
print '<a href="prelevement.php?facid='.$fac->id.'&action=delete&did='.$obj->rowid.'">'; |
237 |
$sql .= " , ".MAIN_DB_PREFIX."user as u"; |
print img_delete(); |
238 |
$sql .= " WHERE fk_facture = ".$fac->id; |
print '</a></td>'; |
239 |
$sql .= " AND pfd.fk_user_demande = u.rowid"; |
print "</tr>\n"; |
240 |
$sql .= " AND pfd.traite = 1"; |
$i++; |
241 |
$sql .= " ORDER BY pfd.date_demande DESC"; |
} |
242 |
|
|
243 |
$result = $db->query($sql); |
$db->free($result_sql); |
244 |
if ($result) |
} |
245 |
{ |
else |
246 |
$num = $db->num_rows($result); |
{ |
247 |
$i = 0; |
dolibarr_print_error($db); |
248 |
|
} |
249 |
while ($i < $num) |
|
250 |
{ |
$sql = "SELECT pfd.rowid, pfd.traite,".$db->pdate("pfd.date_demande")." as date_demande"; |
251 |
$obj = $db->fetch_object($result); |
$sql .= " ,".$db->pdate("pfd.date_traite")." as date_traite"; |
252 |
$var=!$var; |
$sql .= " , pfd.fk_prelevement_bons, pfd.amount"; |
253 |
|
$sql .= " , u.name, u.firstname"; |
254 |
print "<tr $bc[$var]>"; |
$sql .= " FROM ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd"; |
255 |
|
$sql .= " , ".MAIN_DB_PREFIX."user as u"; |
256 |
print '<td align="center">'.strftime("%d/%m/%Y",$obj->date_demande)."</td>\n"; |
$sql .= " WHERE fk_facture = ".$fac->id; |
257 |
|
$sql .= " AND pfd.fk_user_demande = u.rowid"; |
258 |
print '<td align="center">'.strftime("%d/%m/%Y",$obj->date_traite)."</td>\n"; |
$sql .= " AND pfd.traite = 1"; |
259 |
print '<td align="center">'.price($obj->amount).'</td>'; |
$sql .= " ORDER BY pfd.date_demande DESC"; |
260 |
print '<td align="center">'; |
|
261 |
print '<a href="'.DOL_URL_ROOT.'/compta/prelevement/fiche.php?id='.$obj->fk_prelevement_bons; |
$result = $db->query($sql); |
262 |
print '">'.$obj->fk_prelevement_bons."</a></td>\n"; |
if ($result) |
263 |
|
{ |
264 |
print '<td align="center" colspan="2">'.$obj->firstname." ".$obj->name.'</td>'; |
$num = $db->num_rows($result); |
265 |
|
$i = 0; |
266 |
print '<td>-</td>'; |
|
267 |
|
while ($i < $num) |
268 |
print "</tr>\n"; |
{ |
269 |
$i++; |
$obj = $db->fetch_object($result); |
270 |
} |
$var=!$var; |
271 |
|
|
272 |
$db->free($result); |
print "<tr $bc[$var]>"; |
273 |
} |
|
274 |
else |
print '<td align="center">'.strftime("%d/%m/%Y",$obj->date_demande)."</td>\n"; |
275 |
{ |
|
276 |
dolibarr_print_error($db); |
print '<td align="center">'.strftime("%d/%m/%Y",$obj->date_traite)."</td>\n"; |
277 |
} |
print '<td align="center">'.price($obj->amount).'</td>'; |
278 |
|
print '<td align="center">'; |
279 |
|
print '<a href="'.DOL_URL_ROOT.'/compta/prelevement/fiche.php?id='.$obj->fk_prelevement_bons; |
280 |
|
print '">'.$obj->fk_prelevement_bons."</a></td>\n"; |
281 |
|
|
282 |
|
print '<td align="center" colspan="2">'.$obj->firstname." ".$obj->name.'</td>'; |
283 |
|
|
284 |
|
print '<td>-</td>'; |
285 |
|
|
286 |
|
print "</tr>\n"; |
287 |
|
$i++; |
288 |
|
} |
289 |
|
|
290 |
|
$db->free($result); |
291 |
|
} |
292 |
|
else |
293 |
|
{ |
294 |
|
dolibarr_print_error($db); |
295 |
|
} |
296 |
|
|
297 |
print "</table>"; |
print "</table>"; |
298 |
|
|
299 |
} |
} |
300 |
else |
else |
301 |
{ |
{ |
302 |
/* Facture non trouvée */ |
/* Facture non trouvée */ |
303 |
print $langs->trans("ErrorBillNotFound",$_GET["facid"]); |
print $langs->trans("ErrorBillNotFound",$_GET["facid"]); |
304 |
} |
} |
305 |
} |
} |
306 |
|
|
307 |
print '</div>'; |
print '</div>'; |
308 |
|
|