41require
'../../main.inc.php';
42require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formfile.class.php';
43require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formother.class.php';
44require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formcompany.class.php';
45if (isModEnabled(
'margin')) {
46 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formmargin.class.php';
48require_once DOL_DOCUMENT_ROOT.
'/core/modules/facture/modules_facture.php';
49require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
50require_once DOL_DOCUMENT_ROOT.
'/compta/facture/class/facture.class.php';
51require_once DOL_DOCUMENT_ROOT.
'/core/class/discount.class.php';
52require_once DOL_DOCUMENT_ROOT.
'/compta/paiement/class/paiement.class.php';
53require_once DOL_DOCUMENT_ROOT.
'/compta/facture/class/facture-rec.class.php';
54require_once DOL_DOCUMENT_ROOT.
'/core/lib/functions2.lib.php';
55require_once DOL_DOCUMENT_ROOT.
'/core/lib/invoice.lib.php';
56require_once DOL_DOCUMENT_ROOT.
'/core/lib/date.lib.php';
57require_once DOL_DOCUMENT_ROOT.
'/core/lib/company.lib.php';
58require_once DOL_DOCUMENT_ROOT.
'/projet/class/project.class.php';
59if (isModEnabled(
'commande')) {
60 require_once DOL_DOCUMENT_ROOT.
'/commande/class/commande.class.php';
64$langs->loadLangs(array(
'bills',
'companies',
'products',
'categories'));
66$sall = trim((
GETPOST(
'search_all',
'alphanohtml') !=
'') ?
GETPOST(
'search_all',
'alphanohtml') :
GETPOST(
'sall',
'alphanohtml'));
67$projectid = (
GETPOST(
'projectid') ?
GETPOST(
'projectid',
'int') : 0);
73$action =
GETPOST(
'action',
'aZ09');
74$massaction =
GETPOST(
'massaction',
'alpha');
75$show_files =
GETPOST(
'show_files',
'int');
76$confirm =
GETPOST(
'confirm',
'alpha');
77$toselect =
GETPOST(
'toselect',
'array');
78$optioncss =
GETPOST(
'optioncss',
'alpha');
79$contextpage =
GETPOST(
'contextpage',
'aZ') ?
GETPOST(
'contextpage',
'aZ') :
'invoicelist';
82if ($contextpage ==
'poslist') {
86$userid =
GETPOST(
'userid',
'int');
88$search_refcustomer =
GETPOST(
'search_refcustomer',
'alpha');
89$search_type =
GETPOST(
'search_type',
'int');
90$search_subtype =
GETPOST(
'search_subtype',
'int');
91$search_project_ref =
GETPOST(
'search_project_ref',
'alpha');
92$search_project =
GETPOST(
'search_project',
'alpha');
93$search_company =
GETPOST(
'search_company',
'alpha');
94$search_company_alias =
GETPOST(
'search_company_alias',
'alpha');
95$search_parent_name = trim(
GETPOST(
'search_parent_name',
'alphanohtml'));
96$search_montant_ht =
GETPOST(
'search_montant_ht',
'alpha');
97$search_montant_vat =
GETPOST(
'search_montant_vat',
'alpha');
98$search_montant_localtax1 =
GETPOST(
'search_montant_localtax1',
'alpha');
99$search_montant_localtax2 =
GETPOST(
'search_montant_localtax2',
'alpha');
100$search_montant_ttc =
GETPOST(
'search_montant_ttc',
'alpha');
101$search_login =
GETPOST(
'search_login',
'alpha');
102$search_multicurrency_code =
GETPOST(
'search_multicurrency_code',
'alpha');
103$search_multicurrency_tx =
GETPOST(
'search_multicurrency_tx',
'alpha');
104$search_multicurrency_montant_ht =
GETPOST(
'search_multicurrency_montant_ht',
'alpha');
105$search_multicurrency_montant_vat =
GETPOST(
'search_multicurrency_montant_vat',
'alpha');
106$search_multicurrency_montant_ttc =
GETPOST(
'search_multicurrency_montant_ttc',
'alpha');
107$search_status =
GETPOST(
'search_status',
'intcomma');
108$search_paymentmode =
GETPOST(
'search_paymentmode',
'int');
109$search_paymentterms =
GETPOST(
'search_paymentterms',
'int');
110$search_module_source =
GETPOST(
'search_module_source',
'alpha');
111$search_pos_source =
GETPOST(
'search_pos_source',
'alpha');
112$search_town =
GETPOST(
'search_town',
'alpha');
113$search_zip =
GETPOST(
'search_zip',
'alpha');
114$search_state =
GETPOST(
"search_state");
115$search_country =
GETPOST(
"search_country",
'alpha');
116$search_customer_code =
GETPOST(
"search_customer_code",
'alphanohtml');
117$search_type_thirdparty =
GETPOST(
"search_type_thirdparty",
'int');
118$search_user =
GETPOST(
'search_user',
'int');
119$search_sale =
GETPOST(
'search_sale',
'int');
120$search_date_startday =
GETPOST(
'search_date_startday',
'int');
121$search_date_startmonth =
GETPOST(
'search_date_startmonth',
'int');
122$search_date_startyear =
GETPOST(
'search_date_startyear',
'int');
123$search_date_endday =
GETPOST(
'search_date_endday',
'int');
124$search_date_endmonth =
GETPOST(
'search_date_endmonth',
'int');
125$search_date_endyear =
GETPOST(
'search_date_endyear',
'int');
126$search_date_start =
dol_mktime(0, 0, 0, $search_date_startmonth, $search_date_startday, $search_date_startyear);
127$search_date_end =
dol_mktime(23, 59, 59, $search_date_endmonth, $search_date_endday, $search_date_endyear);
128$search_date_valid_startday =
GETPOST(
'search_date_valid_startday',
'int');
129$search_date_valid_startmonth =
GETPOST(
'search_date_valid_startmonth',
'int');
130$search_date_valid_startyear =
GETPOST(
'search_date_valid_startyear',
'int');
131$search_date_valid_endday =
GETPOST(
'search_date_valid_endday',
'int');
132$search_date_valid_endmonth =
GETPOST(
'search_date_valid_endmonth',
'int');
133$search_date_valid_endyear =
GETPOST(
'search_date_valid_endyear',
'int');
134$search_date_valid_start =
dol_mktime(0, 0, 0, $search_date_valid_startmonth, $search_date_valid_startday, $search_date_valid_startyear);
135$search_date_valid_end =
dol_mktime(23, 59, 59, $search_date_valid_endmonth, $search_date_valid_endday, $search_date_valid_endyear);
136$search_datelimit_startday =
GETPOST(
'search_datelimit_startday',
'int');
137$search_datelimit_startmonth =
GETPOST(
'search_datelimit_startmonth',
'int');
138$search_datelimit_startyear =
GETPOST(
'search_datelimit_startyear',
'int');
139$search_datelimit_endday =
GETPOST(
'search_datelimit_endday',
'int');
140$search_datelimit_endmonth =
GETPOST(
'search_datelimit_endmonth',
'int');
141$search_datelimit_endyear =
GETPOST(
'search_datelimit_endyear',
'int');
142$search_datelimit_start =
dol_mktime(0, 0, 0, $search_datelimit_startmonth, $search_datelimit_startday, $search_datelimit_startyear);
143$search_datelimit_end =
dol_mktime(23, 59, 59, $search_datelimit_endmonth, $search_datelimit_endday, $search_datelimit_endyear);
144$search_categ_cus =
GETPOST(
"search_categ_cus",
'int');
145$search_product_category =
GETPOST(
'search_product_category',
'int');
146$search_fac_rec_source_title =
GETPOST(
"search_fac_rec_source_title",
'alpha');
147$search_btn =
GETPOST(
'button_search',
'alpha');
148$search_remove_btn =
GETPOST(
'button_removefilter',
'alpha');
150$search_option =
GETPOST(
'search_option');
151if ($search_option ==
'late') {
152 $search_status =
'1';
154$filtre =
GETPOST(
'filtre',
'alpha');
156$limit =
GETPOST(
'limit',
'int') ?
GETPOST(
'limit',
'int') : $conf->liste_limit;
157$sortfield =
GETPOST(
'sortfield',
'aZ09comma');
158$sortorder =
GETPOST(
'sortorder',
'aZ09comma');
159$page = GETPOSTISSET(
'pageplusone') ? (
GETPOST(
'pageplusone') - 1) :
GETPOST(
"page",
'int');
160if (empty($page) || $page < 0 ||
GETPOST(
'button_search',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')) {
163$offset = $limit * $page;
164if (!$sortorder &&
getDolGlobalString(
'INVOICE_DEFAULT_UNPAYED_SORT_ORDER') && $search_status ==
'1') {
165 $sortorder = $conf->global->INVOICE_DEFAULT_UNPAYED_SORT_ORDER;
171 $sortfield =
'f.datef';
173$pageprev = $page - 1;
174$pagenext = $page + 1;
176$diroutputmassaction = $conf->facture->dir_output.
'/temp/massgeneration/'.$user->id;
183$hookmanager->initHooks(array($contextpage));
187$extrafields->fetch_name_optionals_label($object->table_element);
189$search_array_options = $extrafields->getOptionalsFromPost($object->table_element,
'',
'search_');
192$fieldstosearchall = array(
194 'f.ref_client'=>
'RefCustomer',
195 'f.note_public'=>
'NotePublic',
196 's.nom'=>
"ThirdParty",
197 's.code_client'=>
"CustomerCodeShort",
198 's.name_alias'=>
"AliasNameShort",
201 'pd.description'=>
'Description',
203if (empty($user->socid)) {
204 $fieldstosearchall[
"f.note_private"] =
"NotePrivate";
207$checkedtypetiers = 0;
209 'f.ref'=>array(
'label'=>
"Ref",
'checked'=>1,
'position'=>5),
210 'f.ref_client'=>array(
'label'=>
"RefCustomer",
'checked'=>-1,
'position'=>10),
211 'f.type'=>array(
'label'=>
"Type",
'checked'=>0,
'position'=>15),
212 'f.datef'=>array(
'label'=>
"DateInvoice",
'checked'=>1,
'position'=>20),
213 'f.date_valid'=>array(
'label'=>
"DateValidation",
'checked'=>0,
'position'=>22),
214 'f.subtype'=>array(
'label'=>
"InvoiceSubtype",
'checked'=>0,
'position'=>17),
215 'f.date_lim_reglement'=>array(
'label'=>
"DateDue",
'checked'=>1,
'position'=>25),
216 'f.date_closing'=>array(
'label'=>
"DateClosing",
'checked'=>0,
'position'=>30),
217 'p.ref'=>array(
'label'=>
"ProjectRef",
'langs'=>
'projects',
'checked'=>1,
'enabled'=>(!isModEnabled(
'project') ? 0 : 1),
'position'=>40),
218 'p.title'=>array(
'label'=>
"ProjectLabel",
'checked'=>0,
'enabled'=>(!isModEnabled(
'project') ? 0 : 1),
'position'=>41),
219 's.nom'=>array(
'label'=>
"ThirdParty",
'checked'=>1,
'position'=>50),
220 's.name_alias'=>array(
'label'=>
"AliasNameShort",
'checked'=>1,
'position'=>51),
221 's.code_client'=>array(
'label'=>
"CustomerCodeShort",
'checked'=>-1,
'position'=>52),
222 's2.nom'=>array(
'label'=>
'ParentCompany',
'position'=>32,
'checked'=>0),
223 's.town'=>array(
'label'=>
"Town",
'checked'=>-1,
'position'=>55),
224 's.zip'=>array(
'label'=>
"Zip",
'checked'=>1,
'position'=>60),
225 'state.nom'=>array(
'label'=>
"StateShort",
'checked'=>0,
'position'=>65),
226 'country.code_iso'=>array(
'label'=>
"Country",
'checked'=>0,
'position'=>70),
227 'typent.code'=>array(
'label'=>
"ThirdPartyType",
'checked'=>$checkedtypetiers,
'position'=>75),
228 'f.fk_mode_reglement'=>array(
'label'=>
"PaymentMode",
'checked'=>1,
'position'=>80),
229 'f.fk_cond_reglement'=>array(
'label'=>
"PaymentConditionsShort",
'checked'=>1,
'position'=>85),
230 'f.module_source'=>array(
'label'=>
"POSModule",
'langs'=>
'cashdesk',
'checked'=>($contextpage ==
'poslist' ? 1 : 0),
'enabled'=>
"(isModEnabled('cashdesk') || isModEnabled('takepos') || getDolGlobalInt('INVOICE_SHOW_POS'))",
'position'=>90),
231 'f.pos_source'=>array(
'label'=>
"POSTerminal",
'langs'=>
'cashdesk',
'checked'=>($contextpage ==
'poslist' ? 1 : 0),
'enabled'=>
"(isModEnabled('cashdesk') || isModEnabled('takepos') || getDolGlobalInt('INVOICE_SHOW_POS'))",
'position'=>91),
232 'f.total_ht'=>array(
'label'=>
"AmountHT",
'checked'=>1,
'position'=>95),
233 'f.total_tva'=>array(
'label'=>
"AmountVAT",
'checked'=>0,
'position'=>100),
234 'f.total_localtax1'=>array(
'label'=>$langs->transcountry(
"AmountLT1", $mysoc->country_code),
'checked'=>0,
'enabled'=>($mysoc->localtax1_assuj ==
"1"),
'position'=>110),
235 'f.total_localtax2'=>array(
'label'=>$langs->transcountry(
"AmountLT2", $mysoc->country_code),
'checked'=>0,
'enabled'=>($mysoc->localtax2_assuj ==
"1"),
'position'=>120),
236 'f.total_ttc'=>array(
'label'=>
"AmountTTC",
'checked'=>0,
'position'=>130),
237 'dynamount_payed'=>array(
'label'=>
"Received",
'checked'=>0,
'position'=>140),
238 'rtp'=>array(
'label'=>
"Rest",
'checked'=>0,
'position'=>150),
239 'f.multicurrency_code'=>array(
'label'=>
'Currency',
'checked'=>0,
'enabled'=>(!isModEnabled(
'multicurrency') ? 0 : 1),
'position'=>280),
240 'f.multicurrency_tx'=>array(
'label'=>
'CurrencyRate',
'checked'=>0,
'enabled'=>(!isModEnabled(
'multicurrency') ? 0 : 1),
'position'=>285),
241 'f.multicurrency_total_ht'=>array(
'label'=>
'MulticurrencyAmountHT',
'checked'=>0,
'enabled'=>(!isModEnabled(
'multicurrency') ? 0 : 1),
'position'=>290),
242 'f.multicurrency_total_vat'=>array(
'label'=>
'MulticurrencyAmountVAT',
'checked'=>0,
'enabled'=>(!isModEnabled(
'multicurrency') ? 0 : 1),
'position'=>291),
243 'f.multicurrency_total_ttc'=>array(
'label'=>
'MulticurrencyAmountTTC',
'checked'=>0,
'enabled'=>(!isModEnabled(
'multicurrency') ? 0 : 1),
'position'=>292),
244 'multicurrency_dynamount_payed'=>array(
'label'=>
'MulticurrencyAlreadyPaid',
'checked'=>0,
'enabled'=>(!isModEnabled(
'multicurrency') ? 0 : 1),
'position'=>295),
245 'multicurrency_rtp'=>array(
'label'=>
'MulticurrencyRemainderToPay',
'checked'=>0,
'enabled'=>(!isModEnabled(
'multicurrency') ? 0 : 1),
'position'=>296),
246 'total_pa' => array(
'label' => ((
getDolGlobalString(
'MARGIN_TYPE') ==
'1') ?
'BuyingPrice' :
'CostPrice'),
'checked' => 0,
'position' => 300,
'enabled' => (!isModEnabled(
'margin') || empty($user->rights->margins->liretous) ? 0 : 1)),
247 'total_margin' => array(
'label' =>
'Margin',
'checked' => 0,
'position' => 301,
'enabled' => (!isModEnabled(
'margin') || empty($user->rights->margins->liretous) ? 0 : 1)),
248 'total_margin_rate' => array(
'label' =>
'MarginRate',
'checked' => 0,
'position' => 302,
'enabled' => (!isModEnabled(
'margin') || empty($user->rights->margins->liretous) || !
getDolGlobalString(
'DISPLAY_MARGIN_RATES') ? 0 : 1)),
249 'total_mark_rate' => array(
'label' =>
'MarkRate',
'checked' => 0,
'position' => 303,
'enabled' => (!isModEnabled(
'margin') || empty($user->rights->margins->liretous) || !
getDolGlobalString(
'DISPLAY_MARK_RATES') ? 0 : 1)),
250 'f.datec'=>array(
'label'=>
"DateCreation",
'checked'=>0,
'position'=>500),
251 'f.tms' =>array(
'type'=>
'timestamp',
'label'=>
'DateModificationShort',
'enabled'=>1,
'visible'=>-1,
'notnull'=>1,
'position'=>502),
252 'u.login'=>array(
'label'=>
"UserAuthor",
'checked'=>1,
'position'=>504),
253 'sale_representative'=>array(
'label'=>
"SaleRepresentativesOfThirdParty",
'checked'=>0,
'position'=>506),
258 'f.note_public'=>array(
'label'=>
'NotePublic',
'checked'=>0,
'position'=>520,
'enabled'=>(!
getDolGlobalInt(
'MAIN_LIST_HIDE_PUBLIC_NOTES'))),
259 'f.note_private'=>array(
'label'=>
'NotePrivate',
'checked'=>0,
'position'=>521,
'enabled'=>(!
getDolGlobalInt(
'MAIN_LIST_HIDE_PRIVATE_NOTES'))),
260 'f.fk_fac_rec_source'=>array(
'label'=>
'GeneratedFromTemplate',
'checked'=>0,
'position'=>530,
'enabled'=>
'1'),
261 'f.fk_statut'=>array(
'label'=>
"Status",
'checked'=>1,
'position'=>1000),
265 $arrayfields[
'f.retained_warranty'] = array(
'label'=>$langs->trans(
"RetainedWarranty"),
'checked'=>0,
'position'=>86);
268foreach ($object->fields as $key => $val) {
271 if (!empty($val[
'visible'])) {
272 $visible = (int)
dol_eval($val[
'visible'], 1, 1,
'1');
274 if (array_key_exists($key, $arrayfields)) {
276 } elseif (array_key_exists(
'f.'.$key, $arrayfields)) {
278 } elseif (array_key_exists(
'f.'.$key, $arrayfields)) {
280 } elseif (array_key_exists(
's.'.$key, $arrayfields)) {
284 $arrayfields[$newkey] = array(
285 'label'=>$val[
'label'],
286 'checked'=>(($visible < 0) ? 0 : 1),
287 'enabled'=>($visible != 3 &&
dol_eval($val[
'enabled'], 1, 1,
'1')),
288 'position'=>$val[
'position'],
289 'help' => empty($val[
'help']) ?
'' : $val[
'help'],
295include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_array_fields.tpl.php';
300if (!$user->hasRight(
'societe',
'client',
'voir') || $user->socid) {
301 $search_sale = $user->id;
305$fieldid = (!empty($ref) ?
'ref' :
'rowid');
306if (!empty($user->socid)) {
307 $socid = $user->socid;
309$result =
restrictedArea($user,
'facture', $id,
'',
'',
'fk_soc', $fieldid);
316if (
GETPOST(
'cancel',
'alpha')) {
320if (!
GETPOST(
'confirmmassaction',
'alpha') && $massaction !=
'presend' && $massaction !=
'confirm_presend') {
324$parameters = array(
'socid'=>$socid,
'arrayfields'=>&$arrayfields);
325$reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object, $action);
330include DOL_DOCUMENT_ROOT.
'/core/actions_changeselectedfields.inc.php';
333if (
GETPOST(
'button_removefilter_x',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha') ||
GETPOST(
'button_removefilter.x',
'alpha')) {
336 $search_product_category =
'';
338 $search_refcustomer =
'';
340 $search_subtype =
'';
341 $search_project_ref =
'';
342 $search_project =
'';
343 $search_company =
'';
344 $search_company_alias =
'';
345 $search_parent_name =
'';
346 $search_montant_ht =
'';
347 $search_montant_vat =
'';
348 $search_montant_localtax1 =
'';
349 $search_montant_localtax2 =
'';
350 $search_montant_ttc =
'';
352 $search_multicurrency_code =
'';
353 $search_multicurrency_tx =
'';
354 $search_multicurrency_montant_ht =
'';
355 $search_multicurrency_montant_vat =
'';
356 $search_multicurrency_montant_ttc =
'';
358 $search_paymentmode =
'';
359 $search_paymentterms =
'';
360 $search_module_source =
'';
361 $search_pos_source =
'';
365 $search_country =
'';
366 $search_type_thirdparty =
'';
367 $search_customer_code =
'';
368 $search_date_startday =
'';
369 $search_date_startmonth =
'';
370 $search_date_startyear =
'';
371 $search_date_endday =
'';
372 $search_date_endmonth =
'';
373 $search_date_endyear =
'';
374 $search_date_start =
'';
375 $search_date_end =
'';
376 $search_date_valid_startday =
'';
377 $search_date_valid_startmonth =
'';
378 $search_date_valid_startyear =
'';
379 $search_date_valid_endday =
'';
380 $search_date_valid_endmonth =
'';
381 $search_date_valid_endyear =
'';
382 $search_date_valid_start =
'';
383 $search_date_valid_end =
'';
384 $search_datelimit_startday =
'';
385 $search_datelimit_startmonth =
'';
386 $search_datelimit_startyear =
'';
387 $search_datelimit_endday =
'';
388 $search_datelimit_endmonth =
'';
389 $search_datelimit_endyear =
'';
390 $search_datelimit_start =
'';
391 $search_datelimit_end =
'';
392 $search_fac_rec_source_title =
'';
394 $search_array_options = array();
395 $search_categ_cus = 0;
400if (empty($reshook)) {
401 $objectclass =
'Facture';
402 $objectlabel =
'Invoices';
403 $permissiontoread = $user->hasRight(
"facture",
"lire");
404 $permissiontoadd = $user->hasRight(
"facture",
"creer");
405 $permissiontodelete = $user->hasRight(
"facture",
"supprimer");
406 $uploaddir = $conf->facture->dir_output;
407 include DOL_DOCUMENT_ROOT.
'/core/actions_massactions.inc.php';
410if ($action ==
'makepayment_confirm' && $user->hasRight(
'facture',
'paiement')) {
411 require_once DOL_DOCUMENT_ROOT.
'/compta/paiement/class/paiement.class.php';
412 $arrayofselected = is_array($toselect) ? $toselect : array();
413 if (!empty($arrayofselected)) {
414 $bankid =
GETPOST(
'bankid',
'int');
415 $paiementid =
GETPOST(
'paiementid',
'int');
417 if (empty($paiementdate)) {
418 setEventMessages($langs->trans(
"ErrorFieldRequired", $langs->transnoentitiesnoconv(
"Date")),
null,
'errors');
420 $action =
'makepayment';
424 foreach ($arrayofselected as $toselectid) {
427 $result = $facture->fetch($toselectid);
436 $paiementAmount = $facture->getSommePaiement();
437 $totalcreditnotes = $facture->getSumCreditNotesUsed();
438 $totaldeposits = $facture->getSumDepositsUsed();
439 $totalallpayments = $paiementAmount + $totalcreditnotes + $totaldeposits;
440 $remaintopay =
price2num($facture->total_ttc - $totalallpayments);
441 if ($remaintopay != 0) {
442 $resultBank = $facture->setBankAccount($bankid);
443 if ($resultBank < 0) {
448 $paiement->datepaye = $paiementdate;
449 $paiement->amounts[$facture->id] = $remaintopay;
450 $paiement->multicurrency_amounts[$facture->id] = $remaintopay;
451 $paiement->paiementid = $paiementid;
452 $paiement_id = $paiement->create($user, 1, $facture->thirdparty);
453 if ($paiement_id < 0) {
454 $langs->load(
"errors");
455 setEventMessages($facture->ref.
' '.$langs->trans($paiement->error), $paiement->errors,
'errors');
458 $result = $paiement->addPaymentToBank($user,
'payment',
'', $bankid,
'',
'');
460 $langs->load(
"errors");
461 setEventMessages($facture->ref.
' '.$langs->trans($paiement->error), $paiement->errors,
'errors');
467 setEventMessage($langs->trans(
'NoPaymentAvailable', $facture->ref),
'warnings');
471 setEventMessage($langs->trans(
'BulkPaymentNotPossibleForInvoice', $facture->ref),
'warnings');
476 if (empty($errorpayment)) {
477 setEventMessage($langs->trans(
'PaymentRegisteredAndInvoiceSetToPaid', $facture->ref));
485} elseif ($massaction ==
'withdrawrequest') {
486 $langs->load(
"withdrawals");
488 if (!$user->hasRight(
'prelevement',
'bons',
'creer')) {
495 $arrayofselected = is_array($toselect) ? $toselect : array();
496 $listofbills = array();
497 foreach ($arrayofselected as $toselectid) {
499 $result = $objecttmp->fetch($toselectid);
501 $totalpaid = $objecttmp->getSommePaiement();
502 $totalcreditnotes = $objecttmp->getSumCreditNotesUsed();
503 $totaldeposits = $objecttmp->getSumDepositsUsed();
504 $objecttmp->resteapayer =
price2num($objecttmp->total_ttc - $totalpaid - $totalcreditnotes - $totaldeposits,
'MT');
507 setEventMessages($objecttmp->ref.
' '.$langs->trans(
"Draft"), $objecttmp->errors,
'errors');
508 } elseif ($objecttmp->paye || $objecttmp->resteapayer == 0) {
510 setEventMessages($objecttmp->ref.
' '.$langs->trans(
"AlreadyPaid"), $objecttmp->errors,
'errors');
511 } elseif ($objecttmp->resteapayer < 0) {
513 setEventMessages($objecttmp->ref.
' '.$langs->trans(
"AmountMustBePositive"), $objecttmp->errors,
'errors');
516 $rsql =
"SELECT pfd.rowid, pfd.traite, pfd.date_demande as date_demande";
517 $rsql .=
" , pfd.date_traite as date_traite";
518 $rsql .=
" , pfd.amount";
519 $rsql .=
" , u.rowid as user_id, u.lastname, u.firstname, u.login";
520 $rsql .=
" FROM ".MAIN_DB_PREFIX.
"prelevement_demande as pfd";
521 $rsql .=
" , ".MAIN_DB_PREFIX.
"user as u";
522 $rsql .=
" WHERE fk_facture = ".((int) $objecttmp->id);
523 $rsql .=
" AND pfd.fk_user_demande = u.rowid";
524 $rsql .=
" AND pfd.traite = 0";
525 $rsql .=
" ORDER BY pfd.date_demande DESC";
527 $result_sql = $db->query($rsql);
529 $numprlv = $db->num_rows($result_sql);
534 setEventMessages($objecttmp->ref.
' '.$langs->trans(
"RequestAlreadyDone"), $objecttmp->errors,
'warnings');
535 } elseif (!empty($objecttmp->mode_reglement_code) && $objecttmp->mode_reglement_code !=
'PRE') {
537 setEventMessages($objecttmp->ref.
' '.$langs->trans(
"BadPaymentMethod"), $objecttmp->errors,
'errors');
539 $listofbills[] = $objecttmp;
545 if (!empty($listofbills)) {
546 $nbwithdrawrequestok = 0;
547 foreach ($listofbills as $aBill) {
549 $result = $aBill->demande_prelevement($user, $aBill->resteapayer,
'direct-debit',
'facture');
552 $nbwithdrawrequestok++;
558 if ($nbwithdrawrequestok > 0) {
559 setEventMessages($langs->trans(
"WithdrawRequestsDone", $nbwithdrawrequestok),
null,
'mesgs');
571$form =
new Form($db);
575if (isModEnabled(
'margin')) {
578$bankaccountstatic =
new Account($db);
579$facturestatic =
new Facture($db);
581$companystatic =
new Societe($db);
582$companyparent =
new Societe($db);
584$company_url_list = array();
585$subtypearray = $object->getArrayOfInvoiceSubtypes(0);
590 if (empty($search_company)) {
591 $search_company = $soc->name;
595$title = $langs->trans(
'BillsCustomers').
' '.($socid > 0 ?
' - '.$soc->name :
'');
596$help_url =
'EN:Customers_Invoices|FR:Factures_Clients|ES:Facturas_a_clientes';
598$varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
599$selectedfields = $form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage);
604if ($sall || $search_user > 0) {
605 $sql =
'SELECT DISTINCT';
607$sql .=
' f.rowid as id, f.ref, f.ref_client, f.fk_soc, f.type, f.subtype, f.note_private, f.note_public, f.increment, f.fk_mode_reglement, f.fk_cond_reglement, f.total_ht, f.total_tva, f.total_ttc,';
608$sql .=
' f.localtax1 as total_localtax1, f.localtax2 as total_localtax2,';
609$sql .=
' f.fk_user_author,';
610$sql .=
' f.fk_multicurrency, f.multicurrency_code, f.multicurrency_tx, f.multicurrency_total_ht, f.multicurrency_total_tva as multicurrency_total_vat, f.multicurrency_total_ttc,';
611$sql .=
' f.datef, f.date_valid, f.date_lim_reglement as datelimite, f.module_source, f.pos_source,';
612$sql .=
' f.paye as paye, f.fk_statut, f.close_code,';
613$sql .=
' f.datec as date_creation, f.tms as date_update, f.date_closing as date_closing,';
614$sql .=
' f.retained_warranty, f.retained_warranty_date_limit, f.situation_final, f.situation_cycle_ref, f.situation_counter,';
615$sql .=
' s.rowid as socid, s.nom as name, s.name_alias as alias, s.email, s.phone, s.fax, s.address, s.town, s.zip, s.fk_pays, s.client, s.fournisseur, s.code_client, s.code_fournisseur, s.code_compta as code_compta_client, s.code_compta_fournisseur,';
616$sql .=
" s.parent as fk_parent,";
617$sql .=
" s2.nom as name2,";
618$sql .=
' typent.code as typent_code,';
619$sql .=
' state.code_departement as state_code, state.nom as state_name,';
620$sql .=
' country.code as country_code,';
621$sql .=
' f.fk_fac_rec_source,';
622$sql .=
' p.rowid as project_id, p.ref as project_ref, p.title as project_label,';
623$sql .=
' u.login, u.lastname, u.firstname, u.email as user_email, u.statut as user_statut, u.entity, u.photo, u.office_phone, u.office_fax, u.user_mobile, u.job, u.gender';
633if (!empty($extrafields->attributes[$object->table_element][
'label'])) {
634 foreach ($extrafields->attributes[$object->table_element][
'label'] as $key => $val) {
635 $sql .= ($extrafields->attributes[$object->table_element][
'type'][$key] !=
'separate' ?
", ef.".$key.
" as options_".$key :
'');
639$parameters = array();
640$reshook = $hookmanager->executeHooks(
'printFieldListSelect', $parameters, $object, $action);
641$sql .= $hookmanager->resPrint;
642$sql = preg_replace(
'/,\s*$/',
'', $sql);
646$sql .=
' FROM '.MAIN_DB_PREFIX.
'societe as s';
647$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"societe as s2 ON s2.rowid = s.parent";
648$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_country as country on (country.rowid = s.fk_pays)";
649$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_typent as typent on (typent.id = s.fk_typent)";
650$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_departements as state on (state.rowid = s.fk_departement)";
651$sql .=
', '.MAIN_DB_PREFIX.
'facture as f';
652if ($sortfield ==
"f.datef") {
653 $sql .= $db->hintindex(
'idx_facture_datef');
655if (isset($extrafields->attributes[$object->table_element][
'label']) && is_array($extrafields->attributes[$object->table_element][
'label']) && count($extrafields->attributes[$object->table_element][
'label'])) {
656 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element.
"_extrafields as ef on (f.rowid = ef.fk_object)";
659 $sql .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'facturedet as pd ON f.rowid = pd.fk_facture';
661if (!empty($search_fac_rec_source_title)) {
662 $sql .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'facture_rec as facrec ON f.fk_fac_rec_source = facrec.rowid';
664$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"projet as p ON p.rowid = f.fk_projet";
665$sql .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'user AS u ON f.fk_user_author = u.rowid';
666if ($search_user > 0) {
667 $sql .=
", ".MAIN_DB_PREFIX.
"element_contact as ec";
668 $sql .=
", ".MAIN_DB_PREFIX.
"c_type_contact as tc";
671$parameters = array();
672$reshook = $hookmanager->executeHooks(
'printFieldListFrom', $parameters, $object);
673$sql .= $hookmanager->resPrint;
675$sql .=
' WHERE f.fk_soc = s.rowid';
676$sql .=
' AND f.entity IN ('.getEntity(
'invoice').
')';
678 $sql .=
' AND s.rowid = '.((int) $socid);
682 $sql .=
' AND f.fk_user_author IS NULL';
684 $sql .=
' AND f.fk_user_author = '.((int) $userid);
690if ($search_refcustomer) {
693if ($search_type !=
'' && $search_type !=
'-1') {
694 $sql .=
" AND f.type IN (".$db->sanitize($db->escape($search_type)).
")";
696if ($search_subtype !=
'' && $search_subtype !=
'-1') {
697 $sql .=
" AND f.subtype IN (".$db->sanitize($db->escape($search_subtype)).
")";
699if ($search_project_ref) {
702if ($search_project) {
705if (empty($arrayfields[
's.name_alias'][
'checked']) && $search_company) {
706 $sql .=
natural_search(array(
"s.nom",
"s.name_alias"), $search_company);
708 if ($search_company) {
711 if ($search_company_alias) {
715if ($search_parent_name) {
718if ($search_customer_code) {
730if (strlen(trim($search_country))) {
732 $country_code_in_EEC = $country_code_in_EEC_without_me =
'';
733 foreach ($arrayofcode as $key => $value) {
734 $country_code_in_EEC .= ($country_code_in_EEC ?
"," :
"").
"'".$value.
"'";
735 if ($value != $mysoc->country_code) {
736 $country_code_in_EEC_without_me .= ($country_code_in_EEC_without_me ?
"," :
"").
"'".$value.
"'";
739 if ($search_country ==
'special_allnotme') {
740 $sql .=
" AND country.code <> '".$db->escape($mysoc->country_code).
"'";
741 } elseif ($search_country ==
'special_eec') {
742 $sql .=
" AND country.code IN (".$db->sanitize($country_code_in_EEC, 1).
")";
743 } elseif ($search_country ==
'special_eecnotme') {
744 $sql .=
" AND country.code IN (".$db->sanitize($country_code_in_EEC_without_me, 1).
")";
745 } elseif ($search_country ==
'special_noteec') {
746 $sql .=
" AND country.code NOT IN (".$db->sanitize($country_code_in_EEC, 1).
")";
751if ($search_type_thirdparty !=
'' && $search_type_thirdparty !=
'-1') {
752 $sql .=
" AND s.fk_typent IN (".$db->sanitize($db->escape($search_type_thirdparty)).
')';
754if ($search_montant_ht !=
'') {
757if ($search_montant_vat !=
'') {
760if ($search_montant_localtax1 !=
'') {
761 $sql .=
natural_search(
'f.localtax1', $search_montant_localtax1, 1);
763if ($search_montant_localtax2 !=
'') {
764 $sql .=
natural_search(
'f.localtax2', $search_montant_localtax2, 1);
766if ($search_montant_ttc !=
'') {
769if ($search_multicurrency_code !=
'') {
770 $sql .=
" AND f.multicurrency_code = '".$db->escape($search_multicurrency_code).
"'";
772if ($search_multicurrency_tx !=
'') {
773 $sql .=
natural_search(
'f.multicurrency_tx', $search_multicurrency_tx, 1);
775if ($search_multicurrency_montant_ht !=
'') {
776 $sql .=
natural_search(
'f.multicurrency_total_ht', $search_multicurrency_montant_ht, 1);
778if ($search_multicurrency_montant_vat !=
'') {
779 $sql .=
natural_search(
'f.multicurrency_total_tva', $search_multicurrency_montant_vat, 1);
781if ($search_multicurrency_montant_ttc !=
'') {
782 $sql .=
natural_search(
'f.multicurrency_total_ttc', $search_multicurrency_montant_ttc, 1);
785 $sql .=
natural_search(array(
'u.login',
'u.firstname',
'u.lastname'), $search_login);
787if ($search_status !=
'-1' && $search_status !=
'') {
788 if (is_numeric($search_status) && $search_status >= 0) {
789 if ($search_status ==
'0') {
790 $sql .=
" AND f.fk_statut = 0";
792 if ($search_status ==
'1') {
793 $sql .=
" AND f.fk_statut = 1";
795 if ($search_status ==
'2') {
796 $sql .=
" AND f.fk_statut = 2";
798 if ($search_status ==
'3') {
799 $sql .=
" AND f.fk_statut = 3";
802 $sql .=
" AND f.fk_statut IN (".$db->sanitize($db->escape($search_status)).
")";
806if ($search_paymentmode > 0) {
807 $sql .=
" AND f.fk_mode_reglement = ".((int) $search_paymentmode);
809if ($search_paymentterms > 0) {
810 $sql .=
" AND f.fk_cond_reglement = ".((int) $search_paymentterms);
812if ($search_module_source) {
815if ($search_pos_source) {
818if ($search_date_start) {
819 $sql .=
" AND f.datef >= '".$db->idate($search_date_start).
"'";
821if ($search_date_end) {
822 $sql .=
" AND f.datef <= '".$db->idate($search_date_end).
"'";
824if ($search_date_valid_start) {
825 $sql .=
" AND f.date_valid >= '".$db->idate($search_date_valid_start).
"'";
827if ($search_date_valid_end) {
828 $sql .=
" AND f.date_valid <= '".$db->idate($search_date_valid_end).
"'";
830if ($search_datelimit_start) {
831 $sql .=
" AND f.date_lim_reglement >= '".$db->idate($search_datelimit_start).
"'";
833if ($search_datelimit_end) {
834 $sql .=
" AND f.date_lim_reglement <= '".$db->idate($search_datelimit_end).
"'";
836if ($search_option ==
'late') {
837 $sql .=
" AND f.date_lim_reglement < '".$db->idate(
dol_now() - $conf->facture->client->warning_delay).
"'";
842if ($search_user > 0) {
843 $sql .=
" AND ec.fk_c_type_contact = tc.rowid AND tc.element='facture' AND tc.source='internal' AND ec.element_id = f.rowid AND ec.fk_socpeople = ".((int) $search_user);
845if (!empty($search_fac_rec_source_title)) {
846 $sql .=
natural_search(
'facrec.titre', $search_fac_rec_source_title);
849if ($search_sale && $search_sale !=
'-1') {
850 if ($search_sale == -2) {
851 $sql .=
" AND NOT EXISTS (SELECT sc.fk_soc FROM ".MAIN_DB_PREFIX.
"societe_commerciaux as sc WHERE sc.fk_soc = f.fk_soc)";
852 } elseif ($search_sale > 0) {
853 $sql .=
" AND EXISTS (SELECT sc.fk_soc FROM ".MAIN_DB_PREFIX.
"societe_commerciaux as sc WHERE sc.fk_soc = f.fk_soc AND sc.fk_user = ".((int) $search_sale).
")";
857$searchCategoryProductList = $search_product_category ? array($search_product_category) : array();
858$searchCategoryProductOperator = 0;
859if (!empty($searchCategoryProductList)) {
860 $searchCategoryProductSqlList = array();
861 $listofcategoryid =
'';
862 foreach ($searchCategoryProductList as $searchCategoryProduct) {
863 if (intval($searchCategoryProduct) == -2) {
864 $searchCategoryProductSqlList[] =
"NOT EXISTS (SELECT ck.fk_product FROM ".MAIN_DB_PREFIX.
"categorie_product as ck, ".MAIN_DB_PREFIX.
"facturedet as fd WHERE fd.fk_facture = f.rowid AND fd.fk_product = ck.fk_product)";
865 } elseif (intval($searchCategoryProduct) > 0) {
866 if ($searchCategoryProductOperator == 0) {
867 $searchCategoryProductSqlList[] =
" EXISTS (SELECT ck.fk_product FROM ".MAIN_DB_PREFIX.
"categorie_product as ck, ".MAIN_DB_PREFIX.
"facturedet as fd WHERE fd.fk_facture = f.rowid AND fd.fk_product = ck.fk_product AND ck.fk_categorie = ".((int) $searchCategoryProduct).
")";
869 $listofcategoryid .= ($listofcategoryid ?
', ' :
'') .((
int) $searchCategoryProduct);
873 if ($listofcategoryid) {
874 $searchCategoryProductSqlList[] =
" EXISTS (SELECT ck.fk_product FROM ".MAIN_DB_PREFIX.
"categorie_product as ck, ".MAIN_DB_PREFIX.
"facturedet as fd WHERE fd.fk_facture = f.rowid AND fd.fk_product = ck.fk_product AND ck.fk_categorie IN (".$db->sanitize($listofcategoryid).
"))";
876 if ($searchCategoryProductOperator == 1) {
877 if (!empty($searchCategoryProductSqlList)) {
878 $sql .=
" AND (".implode(
' OR ', $searchCategoryProductSqlList).
")";
881 if (!empty($searchCategoryProductSqlList)) {
882 $sql .=
" AND (".implode(
' AND ', $searchCategoryProductSqlList).
")";
886$searchCategoryCustomerList = $search_categ_cus ? array($search_categ_cus) : array();
887$searchCategoryCustomerOperator = 0;
889if (!empty($searchCategoryCustomerList)) {
890 $searchCategoryCustomerSqlList = array();
891 $listofcategoryid =
'';
892 foreach ($searchCategoryCustomerList as $searchCategoryCustomer) {
893 if (intval($searchCategoryCustomer) == -2) {
894 $searchCategoryCustomerSqlList[] =
"NOT EXISTS (SELECT ck.fk_soc FROM ".MAIN_DB_PREFIX.
"categorie_societe as ck WHERE s.rowid = ck.fk_soc)";
895 } elseif (intval($searchCategoryCustomer) > 0) {
896 if ($searchCategoryCustomerOperator == 0) {
897 $searchCategoryCustomerSqlList[] =
" EXISTS (SELECT ck.fk_soc FROM ".MAIN_DB_PREFIX.
"categorie_societe as ck WHERE s.rowid = ck.fk_soc AND ck.fk_categorie = ".((int) $searchCategoryCustomer).
")";
899 $listofcategoryid .= ($listofcategoryid ?
', ' :
'') .((
int) $searchCategoryCustomer);
903 if ($listofcategoryid) {
904 $searchCategoryCustomerSqlList[] =
" EXISTS (SELECT ck.fk_soc FROM ".MAIN_DB_PREFIX.
"categorie_societe as ck WHERE s.rowid = ck.fk_soc AND ck.fk_categorie IN (".$db->sanitize($listofcategoryid).
"))";
906 if ($searchCategoryCustomerOperator == 1) {
907 if (!empty($searchCategoryCustomerSqlList)) {
908 $sql .=
" AND (".implode(
' OR ', $searchCategoryCustomerSqlList).
")";
911 if (!empty($searchCategoryCustomerSqlList)) {
912 $sql .=
" AND (".implode(
' AND ', $searchCategoryCustomerSqlList).
")";
917include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_sql.tpl.php';
919$parameters = array();
920$reshook = $hookmanager->executeHooks(
'printFieldListWhere', $parameters, $object, $action);
921$sql .= $hookmanager->resPrint;
928$parameters = array();
929$reshook = $hookmanager->executeHooks(
'printFieldListHaving', $parameters, $object, $action);
930$sql .= empty($hookmanager->resPrint) ?
"" :
" HAVING 1=1 ".$hookmanager->resPrint;
933$nbtotalofrecords =
'';
936 $sqlforcount = preg_replace(
'/^'.preg_quote($sqlfields,
'/').
'/',
'SELECT COUNT(*) as nbtotalofrecords', $sql);
937 $sqlforcount = preg_replace(
'/GROUP BY .*$/',
'', $sqlforcount);
939 $resql = $db->query($sqlforcount);
941 $objforcount = $db->fetch_object($resql);
942 $nbtotalofrecords = $objforcount->nbtotalofrecords;
947 if (($page * $limit) > $nbtotalofrecords) {
955$sql .= $db->order($sortfield, $sortorder);
957 $sql .= $db->plimit($limit + 1, $offset);
960$resql = $db->query($sql);
966$num = $db->num_rows($resql);
968$arrayofselected = is_array($toselect) ? $toselect : array();
971 $obj = $db->fetch_object($resql);
974 header(
"Location: ".DOL_URL_ROOT.
'/compta/facture/card.php?facid='.$id);
983$param =
'&socid='.urlencode($socid);
985 $param .=
'&mode='.urlencode($mode);
987if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
988 $param .=
'&contextpage='.urlencode($contextpage);
990if ($limit > 0 && $limit != $conf->liste_limit) {
991 $param .=
'&limit='.((int) $limit);
994 $param .=
'&sall='.urlencode($sall);
996if ($search_date_startday) {
997 $param .=
'&search_date_startday='.urlencode($search_date_startday);
999if ($search_date_startmonth) {
1000 $param .=
'&search_date_startmonth='.urlencode($search_date_startmonth);
1002if ($search_date_startyear) {
1003 $param .=
'&search_date_startyear='.urlencode($search_date_startyear);
1005if ($search_date_endday) {
1006 $param .=
'&search_date_endday='.urlencode($search_date_endday);
1008if ($search_date_endmonth) {
1009 $param .=
'&search_date_endmonth='.urlencode($search_date_endmonth);
1011if ($search_date_endyear) {
1012 $param .=
'&search_date_endyear='.urlencode($search_date_endyear);
1014if ($search_date_valid_startday) {
1015 $param .=
'&search_date_valid_startday='.urlencode($search_date_valid_startday);
1017if ($search_date_valid_startmonth) {
1018 $param .=
'&search_date_valid_startmonth='.urlencode($search_date_valid_startmonth);
1020if ($search_date_valid_startyear) {
1021 $param .=
'&search_date_valid_startyear='.urlencode($search_date_valid_startyear);
1023if ($search_date_valid_endday) {
1024 $param .=
'&search_date_valid_endday='.urlencode($search_date_valid_endday);
1026if ($search_date_valid_endmonth) {
1027 $param .=
'&search_date_valid_endmonth='.urlencode($search_date_valid_endmonth);
1029if ($search_date_valid_endyear) {
1030 $param .=
'&search_date_valid_endyear='.urlencode($search_date_valid_endyear);
1032if ($search_datelimit_startday) {
1033 $param .=
'&search_datelimit_startday='.urlencode($search_datelimit_startday);
1035if ($search_datelimit_startmonth) {
1036 $param .=
'&search_datelimit_startmonth='.urlencode($search_datelimit_startmonth);
1038if ($search_datelimit_startyear) {
1039 $param .=
'&search_datelimit_startyear='.urlencode($search_datelimit_startyear);
1041if ($search_datelimit_endday) {
1042 $param .=
'&search_datelimit_endday='.urlencode($search_datelimit_endday);
1044if ($search_datelimit_endmonth) {
1045 $param .=
'&search_datelimit_endmonth='.urlencode($search_datelimit_endmonth);
1047if ($search_datelimit_endyear) {
1048 $param .=
'&search_datelimit_endyear='.urlencode($search_datelimit_endyear);
1051 $param .=
'&search_ref='.urlencode($search_ref);
1053if ($search_refcustomer) {
1054 $param .=
'&search_refcustomer='.urlencode($search_refcustomer);
1056if ($search_project_ref) {
1057 $param .=
'&search_project_ref='.urlencode($search_project_ref);
1059if ($search_project) {
1060 $param .=
'&search_project='.urlencode($search_project);
1062if ($search_type !=
'') {
1063 $param .=
'&search_type='.urlencode($search_type);
1065if ($search_subtype !=
'') {
1066 $param .=
'&search_subtype='.urlencode($search_subtype);
1068if ($search_company) {
1069 $param .=
'&search_company='.urlencode($search_company);
1071if ($search_company_alias) {
1072 $param .=
'&search_company_alias='.urlencode($search_company_alias);
1074if ($search_parent_name !=
'') {
1075 $param .=
'&search_parent_name='.urlencode($search_parent_name);
1078 $param .=
'&search_town='.urlencode($search_town);
1081 $param .=
'&search_zip='.urlencode($search_zip);
1083if ($search_country) {
1084 $param .=
"&search_country=".urlencode($search_country);
1086if ($search_type_thirdparty !=
'') {
1087 $param .=
'&search_type_thirdparty='.urlencode($search_type_thirdparty);
1089if ($search_customer_code) {
1090 $param .=
'&search_customer_code='.urlencode($search_customer_code);
1092if ($search_sale > 0) {
1093 $param .=
'&search_sale='.urlencode($search_sale);
1095if ($search_user > 0) {
1096 $param .=
'&search_user='.urlencode($search_user);
1099 $param .=
'&search_login='.urlencode($search_login);
1101if ($search_product_category > 0) {
1102 $param .=
'&search_product_category='.urlencode($search_product_category);
1104if ($search_montant_ht !=
'') {
1105 $param .=
'&search_montant_ht='.urlencode($search_montant_ht);
1107if ($search_montant_vat !=
'') {
1108 $param .=
'&search_montant_vat='.urlencode($search_montant_vat);
1110if ($search_montant_localtax1 !=
'') {
1111 $param .=
'&search_montant_localtax1='.urlencode($search_montant_localtax1);
1113if ($search_montant_localtax2 !=
'') {
1114 $param .=
'&search_montant_localtax2='.urlencode($search_montant_localtax2);
1116if ($search_montant_ttc !=
'') {
1117 $param .=
'&search_montant_ttc='.urlencode($search_montant_ttc);
1119if ($search_multicurrency_code !=
'') {
1120 $param .=
'&search_multicurrency_code='.urlencode($search_multicurrency_code);
1122if ($search_multicurrency_tx !=
'') {
1123 $param .=
'&search_multicurrency_tx='.urlencode($search_multicurrency_tx);
1125if ($search_multicurrency_montant_ht !=
'') {
1126 $param .=
'&search_multicurrency_montant_ht='.urlencode($search_multicurrency_montant_ht);
1128if ($search_multicurrency_montant_vat !=
'') {
1129 $param .=
'&search_multicurrency_montant_vat='.urlencode($search_multicurrency_montant_vat);
1131if ($search_multicurrency_montant_ttc !=
'') {
1132 $param .=
'&search_multicurrency_montant_ttc='.urlencode($search_multicurrency_montant_ttc);
1134if ($search_status !=
'') {
1135 $param .=
'&search_status='.urlencode($search_status);
1137if ($search_paymentmode > 0) {
1138 $param .=
'&search_paymentmode='.urlencode($search_paymentmode);
1140if ($search_paymentterms > 0) {
1141 $param .=
'&search_paymentterms='.urlencode($search_paymentterms);
1143if ($search_module_source) {
1144 $param .=
'&search_module_source='.urlencode($search_module_source);
1146if ($search_pos_source) {
1147 $param .=
'&search_pos_source='.urlencode($search_pos_source);
1150 $param .=
'&show_files='.urlencode($show_files);
1152if ($search_option) {
1153 $param .=
"&search_option=".urlencode($search_option);
1155if ($optioncss !=
'') {
1156 $param .=
'&optioncss='.urlencode($optioncss);
1158if ($search_categ_cus > 0) {
1159 $param .=
'&search_categ_cus='.urlencode($search_categ_cus);
1161if (!empty($search_fac_rec_source_title)) {
1162 $param .=
'&search_fac_rec_source_title='.urlencode($search_fac_rec_source_title);
1166include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_param.tpl.php';
1168$parameters = array(
'param' => &$param);
1169$reshook = $hookmanager->executeHooks(
'printFieldListSearchParam', $parameters, $object, $action);
1170$param .= $hookmanager->resPrint;
1172$arrayofmassactions = array(
1173 'validate'=>
img_picto(
'',
'check',
'class="pictofixedwidth"').$langs->trans(
"Validate"),
1174 'generate_doc'=>
img_picto(
'',
'pdf',
'class="pictofixedwidth"').$langs->trans(
"ReGeneratePDF"),
1175 'builddoc'=>
img_picto(
'',
'pdf',
'class="pictofixedwidth"').$langs->trans(
"PDFMerge"),
1176 'presend'=>
img_picto(
'',
'email',
'class="pictofixedwidth"').$langs->trans(
"SendByMail"),
1179if ($user->hasRight(
'facture',
'paiement')) {
1180 $arrayofmassactions[
'makepayment'] =
img_picto(
'',
'payment',
'class="pictofixedwidth"').$langs->trans(
"MakePaymentAndClassifyPayed");
1182if (isModEnabled(
'prelevement') && $user->hasRight(
'prelevement',
'bons',
'creer')) {
1183 $langs->load(
"withdrawals");
1184 $arrayofmassactions[
'withdrawrequest'] =
img_picto(
'',
'payment',
'class="pictofixedwidth"').$langs->trans(
"MakeWithdrawRequest");
1186if ($user->hasRight(
'facture',
'supprimer')) {
1188 $arrayofmassactions[
'predeletedraft'] =
img_picto(
'',
'delete',
'class="pictofixedwidth"').$langs->trans(
"Deletedraft");
1190 $arrayofmassactions[
'predelete'] =
img_picto(
'',
'delete',
'class="pictofixedwidth"').$langs->trans(
"Delete");
1193if (in_array($massaction, array(
'presend',
'predelete',
'makepayment'))) {
1194 $arrayofmassactions = array();
1196$massactionbutton = $form->selectMassAction(
'', $arrayofmassactions);
1200if ($contextpage !=
'poslist') {
1201 $url = DOL_URL_ROOT.
'/compta/facture/card.php?action=create';
1202 if (!empty($socid)) {
1203 $url .=
'&socid='.$socid;
1205 $newcardbutton =
'';
1206 $newcardbutton .=
dolGetButtonTitle($langs->trans(
'ViewList'),
'',
'fa fa-bars imgforviewmode', $_SERVER[
"PHP_SELF"].
'?mode=common'.preg_replace(
'/(&|\?)*mode=[^&]+/',
'', $param),
'', ((empty($mode) || $mode ==
'common') ? 2 : 1), array(
'morecss'=>
'reposition'));
1207 $newcardbutton .=
dolGetButtonTitle($langs->trans(
'ViewKanban'),
'',
'fa fa-th-list imgforviewmode', $_SERVER[
"PHP_SELF"].
'?mode=kanban'.preg_replace(
'/(&|\?)*mode=[^&]+/',
'', $param),
'', ($mode ==
'kanban' ? 2 : 1), array(
'morecss'=>
'reposition'));
1209 $newcardbutton .=
dolGetButtonTitle($langs->trans(
'NewBill'),
'',
'fa fa-plus-circle', $url,
'', $user->hasRight(
"facture",
"creer"));
1213print
'<form method="POST" id="searchFormList" name="searchFormList" action="'.$_SERVER[
"PHP_SELF"].
'">'.
"\n";
1214if ($optioncss !=
'') {
1215 print
'<input type="hidden" name="optioncss" value="'.$optioncss.
'">';
1217print
'<input type="hidden" name="token" value="'.newToken().
'">';
1218print
'<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
1219if (!in_array($massaction, array(
'makepayment'))) {
1220 print
'<input type="hidden" name="action" value="list">';
1222print
'<input type="hidden" name="sortfield" value="'.$sortfield.
'">';
1223print
'<input type="hidden" name="sortorder" value="'.$sortorder.
'">';
1224print
'<input type="hidden" name="search_status" value="'.$search_status.
'">';
1225print
'<input type="hidden" name="contextpage" value="'.$contextpage.
'">';
1226print
'<input type="hidden" name="socid" value="'.$socid.
'">';
1227print
'<input type="hidden" name="mode" value="'.$mode.
'">';
1229print_barre_liste($title, $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords,
'bill', 0, $newcardbutton,
'', $limit, 0, 0, 1);
1231$topicmail =
"SendBillRef";
1232$modelmail =
"facture_send";
1234$trackid =
'inv'.$object->id;
1235include DOL_DOCUMENT_ROOT.
'/core/tpl/massactions_pre.tpl.php';
1237if ($massaction ==
'makepayment') {
1239 $formquestion = array(
1243 array(
'type' =>
'date',
'name' =>
'datepaiment',
'label' => $langs->trans(
"Date"),
'datenow' => 1),
1244 array(
'type' =>
'other',
'name' =>
'paiementid',
'label' => $langs->trans(
"PaymentMode"),
'value' => $form->select_types_paiements(
GETPOST(
'search_paymentmode'),
'paiementid',
'', 0, 0, 1, 0, 1,
'', 1)),
1245 array(
'type' =>
'other',
'name' =>
'bankid',
'label' => $langs->trans(
"BankAccount"),
'value'=>$form->select_comptes(
'',
'bankid', 0,
'', 0,
'', 0,
'', 1)),
1248 $formconfirm = $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
'MakePaymentAndClassifyPayed'), $langs->trans(
'EnterPaymentReceivedFromCustomer'),
'makepayment_confirm', $formquestion, 1, 0, 200, 500, 1);
1253 foreach ($fieldstosearchall as $key => $val) {
1254 $fieldstosearchall[$key] = $langs->trans($val);
1256 print
'<div class="divsearchfieldfilter">'.$langs->trans(
"FilterOnInto", $sall).join(
', ', $fieldstosearchall).
'</div>';
1261if ($user->hasRight(
"user",
"user",
"lire")) {
1262 $langs->load(
"commercial");
1263 $moreforfilter .=
'<div class="divsearchfield">';
1264 $tmptitle = $langs->trans(
'ThirdPartiesOfSaleRepresentative');
1265 $moreforfilter .=
img_picto($tmptitle,
'user',
'class="pictofixedwidth"').$formother->select_salesrepresentatives($search_sale,
'search_sale', $user, 0, $tmptitle,
'maxwidth200');
1266 $moreforfilter .=
'</div>';
1269if ($user->hasRight(
"user",
"user",
"lire")) {
1270 $moreforfilter .=
'<div class="divsearchfield">';
1271 $tmptitle = $langs->trans(
'LinkedToSpecificUsers');
1272 $moreforfilter .=
img_picto($tmptitle,
'user',
'class="pictofixedwidth"').$form->select_dolusers($search_user,
'search_user', $tmptitle,
'', 0,
'',
'', 0, 0, 0,
'', 0,
'',
'maxwidth200');
1273 $moreforfilter .=
'</div>';
1276if (isModEnabled(
'categorie') && $user->hasRight(
"categorie",
"lire") && ($user->hasRight(
"produit",
"lire") || $user->hasRight(
"service",
"lire"))) {
1277 include_once DOL_DOCUMENT_ROOT.
'/categories/class/categorie.class.php';
1278 $moreforfilter .=
'<div class="divsearchfield">';
1279 $tmptitle = $langs->trans(
'IncludingProductWithTag');
1280 $cate_arbo = $form->select_all_categories(Categorie::TYPE_PRODUCT,
null,
'parent',
null,
null, 1);
1281 $moreforfilter .=
img_picto($tmptitle,
'category',
'class="pictofixedwidth"').$form->selectarray(
'search_product_category', $cate_arbo, $search_product_category, $tmptitle, 0, 0,
'', 0, 0, 0, 0,
'maxwidth300 widthcentpercentminusx', 1);
1282 $moreforfilter .=
'</div>';
1284if (isModEnabled(
'categorie') && $user->hasRight(
"categorie",
"lire")) {
1285 require_once DOL_DOCUMENT_ROOT.
'/categories/class/categorie.class.php';
1286 $moreforfilter .=
'<div class="divsearchfield">';
1287 $tmptitle = $langs->trans(
'CustomersProspectsCategoriesShort');
1288 $moreforfilter .=
img_picto($tmptitle,
'category',
'class="pictofixedwidth"').$formother->select_categories(
'customer', $search_categ_cus,
'search_categ_cus', 1, $tmptitle);
1289 $moreforfilter .=
'</div>';
1292$moreforfilter .=
'<div class="divsearchfield">';
1293$moreforfilter .= $langs->trans(
'Alert').
' <input type="checkbox" name="search_option" value="late"'.($search_option ==
'late' ?
' checked' :
'').
'>';
1294$moreforfilter .=
'</div>';
1296$parameters = array();
1297$reshook = $hookmanager->executeHooks(
'printFieldPreListTitle', $parameters, $object, $action);
1298if (empty($reshook)) {
1299 $moreforfilter .= $hookmanager->resPrint;
1301 $moreforfilter = $hookmanager->resPrint;
1304if (!empty($moreforfilter)) {
1305 print
'<div class="liste_titre liste_titre_bydiv centpercent">';
1306 print $moreforfilter;
1310$varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
1311$selectedfields = $form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage,
getDolGlobalString(
'MAIN_CHECKBOX_LEFT_COLUMN',
''));
1314if ($massactionbutton && $contextpage !=
'poslist') {
1315 $selectedfields .= $form->showCheckAddButtons(
'checkforselect', 1);
1318print
'<div class="div-table-responsive">';
1319print
'<table class="tagtable nobottomiftotal liste'.($moreforfilter ?
" listwithfilterbefore" :
"").
'">'.
"\n";
1323print
'<tr class="liste_titre_filter">';
1327 print
'<td class="liste_titre center maxwidthsearch actioncolumn">';
1328 $searchpicto = $form->showFilterButtons(
'left');
1334 print
'<td class="liste_titre">';
1338if (!empty($arrayfields[
'f.ref'][
'checked'])) {
1339 print
'<td class="liste_titre" align="left">';
1340 print
'<input class="flat maxwidth50imp" type="text" name="search_ref" value="'.dol_escape_htmltag($search_ref).
'">';
1344if (!empty($arrayfields[
'f.ref_client'][
'checked'])) {
1345 print
'<td class="liste_titre">';
1346 print
'<input class="flat maxwidth50imp" type="text" name="search_refcustomer" value="'.dol_escape_htmltag($search_refcustomer).
'">';
1350if (!empty($arrayfields[
'f.type'][
'checked'])) {
1351 print
'<td class="liste_titre maxwidthonsmartphone">';
1362 print $form->selectarray(
'search_type', $listtype, $search_type, 1, 0, 0,
'', 0, 0, 0,
'',
'maxwidth100');
1366if (!empty($arrayfields[
'f.subtype'][
'checked'])) {
1367 print
'<td class="liste_titre maxwidthonsmartphone" align="center">';
1368 print $form->selectarray(
'search_subtype', $subtypearray, $search_subtype, 1, 0, 0,
'', 0, 0, 0,
'',
'maxwidth100');
1372if (!empty($arrayfields[
'f.datef'][
'checked'])) {
1373 print
'<td class="liste_titre center">';
1374 print
'<div class="nowrapfordate">';
1375 print $form->selectDate($search_date_start ? $search_date_start : -1,
'search_date_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'From'));
1377 print
'<div class="nowrapfordate">';
1378 print $form->selectDate($search_date_end ? $search_date_end : -1,
'search_date_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'to'));
1383if (!empty($arrayfields[
'f.date_valid'][
'checked'])) {
1384 print
'<td class="liste_titre center">';
1385 print
'<div class="nowrapfordate">';
1386 print $form->selectDate($search_date_valid_start ? $search_date_valid_start : -1,
'search_date_valid_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'From'));
1388 print
'<div class="nowrapfordate">';
1389 print $form->selectDate($search_date_valid_end ? $search_date_valid_end : -1,
'search_date_valid_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'to'));
1394if (!empty($arrayfields[
'f.date_lim_reglement'][
'checked'])) {
1395 print
'<td class="liste_titre center">';
1396 print
'<div class="nowrapfordate">';
1397 print $form->selectDate($search_datelimit_start ? $search_datelimit_start : -1,
'search_datelimit_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'From'));
1399 print
'<div class="nowrapfordate">';
1400 print $form->selectDate($search_datelimit_end ? $search_datelimit_end : -1,
'search_datelimit_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'to'));
1405if (!empty($arrayfields[
'p.ref'][
'checked'])) {
1406 print
'<td class="liste_titre"><input class="flat maxwidth50imp" type="text" name="search_project_ref" value="'.dol_escape_htmltag($search_project_ref).
'"></td>';
1409if (!empty($arrayfields[
'p.title'][
'checked'])) {
1410 print
'<td class="liste_titre"><input class="flat maxwidth50imp" type="text" name="search_project" value="'.dol_escape_htmltag($search_project).
'"></td>';
1413if (!empty($arrayfields[
's.nom'][
'checked'])) {
1414 print
'<td class="liste_titre"><input class="flat maxwidth75imp" type="text" name="search_company" value="'.dol_escape_htmltag($search_company).
'"'.($socid > 0 ?
" disabled" :
"").
'></td>';
1417if (!empty($arrayfields[
's.name_alias'][
'checked'])) {
1418 print
'<td class="liste_titre"><input class="flat maxwidth75imp" type="text" name="search_company_alias" value="'.dol_escape_htmltag($search_company_alias).
'"></td>';
1421if (!empty($arrayfields[
's2.nom'][
'checked'])) {
1422 print
'<td class="liste_titre">';
1423 print
'<input class="flat maxwidth100" type="text" name="search_parent_name" value="'.dol_escape_htmltag($search_parent_name).
'">';
1427if (!empty($arrayfields[
's.code_client'][
'checked'])) {
1428 print
'<td class="liste_titre"><input class="flat maxwidth75imp" type="text" name="search_customer_code" value="'.dol_escape_htmltag($search_customer_code).
'"></td>';
1431if (!empty($arrayfields[
's.town'][
'checked'])) {
1432 print
'<td class="liste_titre"><input class="flat maxwidth75imp" type="text" name="search_town" value="'.dol_escape_htmltag($search_town).
'"></td>';
1435if (!empty($arrayfields[
's.zip'][
'checked'])) {
1436 print
'<td class="liste_titre"><input class="flat maxwidth50imp" type="text" name="search_zip" value="'.dol_escape_htmltag($search_zip).
'"></td>';
1439if (!empty($arrayfields[
'state.nom'][
'checked'])) {
1440 print
'<td class="liste_titre">';
1441 print
'<input class="flat maxwidth50imp" type="text" name="search_state" value="'.dol_escape_htmltag($search_state).
'">';
1445if (!empty($arrayfields[
'country.code_iso'][
'checked'])) {
1446 print
'<td class="liste_titre center">';
1447 print $form->select_country($search_country,
'search_country',
'', 0,
'minwidth150imp maxwidth150',
'code2', 1, 0, 1,
null, 1);
1451if (!empty($arrayfields[
'typent.code'][
'checked'])) {
1452 print
'<td class="liste_titre maxwidthonsmartphone center">';
1453 print $form->selectarray(
"search_type_thirdparty", $formcompany->typent_array(0), $search_type_thirdparty, 1, 0, 0,
'', 0, 0, 0, (!
getDolGlobalString(
'SOCIETE_SORT_ON_TYPEENT') ?
'ASC' : $conf->global->SOCIETE_SORT_ON_TYPEENT),
'maxwidth100', 1);
1457if (!empty($arrayfields[
'f.fk_mode_reglement'][
'checked'])) {
1458 print
'<td class="liste_titre">';
1459 print $form->select_types_paiements($search_paymentmode,
'search_paymentmode',
'', 0, 1, 1, 0, 1,
'minwidth100 maxwidth100', 1);
1463if (!empty($arrayfields[
'f.fk_cond_reglement'][
'checked'])) {
1464 print
'<td class="liste_titre left">';
1465 print $form->getSelectConditionsPaiements($search_paymentterms,
'search_paymentterms', -1, 1, 1,
'minwidth100 maxwidth100');
1469if (!empty($arrayfields[
'f.module_source'][
'checked'])) {
1470 print
'<td class="liste_titre">';
1471 print
'<input class="flat maxwidth75" type="text" name="search_module_source" value="'.dol_escape_htmltag($search_module_source).
'">';
1475if (!empty($arrayfields[
'f.pos_source'][
'checked'])) {
1476 print
'<td class="liste_titre">';
1477 print
'<input class="flat maxwidth50" type="text" name="search_pos_source" value="'.dol_escape_htmltag($search_pos_source).
'">';
1480if (!empty($arrayfields[
'f.total_ht'][
'checked'])) {
1482 print
'<td class="liste_titre right">';
1483 print
'<input class="flat" type="text" size="4" name="search_montant_ht" value="'.dol_escape_htmltag($search_montant_ht).
'">';
1486if (!empty($arrayfields[
'f.total_tva'][
'checked'])) {
1488 print
'<td class="liste_titre right">';
1489 print
'<input class="flat" type="text" size="4" name="search_montant_vat" value="'.dol_escape_htmltag($search_montant_vat).
'">';
1492if (!empty($arrayfields[
'f.total_localtax1'][
'checked'])) {
1494 print
'<td class="liste_titre right">';
1495 print
'<input class="flat" type="text" size="4" name="search_montant_localtax1" value="'.dol_escape_htmltag($search_montant_localtax1).
'">';
1498if (!empty($arrayfields[
'f.total_localtax2'][
'checked'])) {
1500 print
'<td class="liste_titre right">';
1501 print
'<input class="flat" type="text" size="4" name="search_montant_localtax2" value="'.dol_escape_htmltag($search_montant_localtax2).
'">';
1504if (!empty($arrayfields[
'f.total_ttc'][
'checked'])) {
1506 print
'<td class="liste_titre right">';
1507 print
'<input class="flat" type="text" size="4" name="search_montant_ttc" value="'.dol_escape_htmltag($search_montant_ttc).
'">';
1510if (!empty($arrayfields[
'u.login'][
'checked'])) {
1512 print
'<td class="liste_titre" align="center">';
1513 print
'<input class="flat" size="4" type="text" name="search_login" value="'.dol_escape_htmltag($search_login).
'">';
1516if (!empty($arrayfields[
'sale_representative'][
'checked'])) {
1517 print
'<td class="liste_titre"></td>';
1519if (!empty($arrayfields[
'f.retained_warranty'][
'checked'])) {
1520 print
'<td class="liste_titre" align="right">';
1523if (!empty($arrayfields[
'dynamount_payed'][
'checked'])) {
1524 print
'<td class="liste_titre right">';
1527if (!empty($arrayfields[
'rtp'][
'checked'])) {
1528 print
'<td class="liste_titre">';
1531if (!empty($arrayfields[
'f.multicurrency_code'][
'checked'])) {
1533 print
'<td class="liste_titre">';
1534 print $form->selectMultiCurrency($search_multicurrency_code,
'search_multicurrency_code', 1);
1537if (!empty($arrayfields[
'f.multicurrency_tx'][
'checked'])) {
1539 print
'<td class="liste_titre">';
1540 print
'<input class="flat" type="text" size="4" name="search_multicurrency_tx" value="'.dol_escape_htmltag($search_multicurrency_tx).
'">';
1543if (!empty($arrayfields[
'f.multicurrency_total_ht'][
'checked'])) {
1545 print
'<td class="liste_titre right">';
1546 print
'<input class="flat" type="text" size="4" name="search_multicurrency_montant_ht" value="'.dol_escape_htmltag($search_multicurrency_montant_ht).
'">';
1549if (!empty($arrayfields[
'f.multicurrency_total_vat'][
'checked'])) {
1551 print
'<td class="liste_titre right">';
1552 print
'<input class="flat" type="text" size="4" name="search_multicurrency_montant_vat" value="'.dol_escape_htmltag($search_multicurrency_montant_vat).
'">';
1555if (!empty($arrayfields[
'f.multicurrency_total_ttc'][
'checked'])) {
1557 print
'<td class="liste_titre right">';
1558 print
'<input class="flat" type="text" size="4" name="search_multicurrency_montant_ttc" value="'.dol_escape_htmltag($search_multicurrency_montant_ttc).
'">';
1561if (!empty($arrayfields[
'multicurrency_dynamount_payed'][
'checked'])) {
1562 print
'<td class="liste_titre">';
1565if (!empty($arrayfields[
'multicurrency_rtp'][
'checked'])) {
1566 print
'<td class="liste_titre right">';
1569if (!empty($arrayfields[
'total_pa'][
'checked'])) {
1570 print
'<td class="liste_titre right">';
1573if (!empty($arrayfields[
'total_margin'][
'checked'])) {
1574 print
'<td class="liste_titre right">';
1577if (!empty($arrayfields[
'total_margin_rate'][
'checked'])) {
1578 print
'<td class="liste_titre right">';
1581if (!empty($arrayfields[
'total_mark_rate'][
'checked'])) {
1582 print
'<td class="liste_titre right">';
1587include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_input.tpl.php';
1590$parameters = array(
'arrayfields'=>$arrayfields);
1591$reshook = $hookmanager->executeHooks(
'printFieldListOption', $parameters, $object, $action);
1592print $hookmanager->resPrint;
1594if (!empty($arrayfields[
'f.datec'][
'checked'])) {
1595 print
'<td class="liste_titre">';
1599if (!empty($arrayfields[
'f.tms'][
'checked'])) {
1600 print
'<td class="liste_titre">';
1604if (!empty($arrayfields[
'f.date_closing'][
'checked'])) {
1605 print
'<td class="liste_titre">';
1608if (!empty($arrayfields[
'f.note_public'][
'checked'])) {
1610 print
'<td class="liste_titre">';
1613if (!empty($arrayfields[
'f.note_private'][
'checked'])) {
1615 print
'<td class="liste_titre">';
1618if (!empty($arrayfields[
'f.fk_fac_rec_source'][
'checked'])) {
1620 print
'<td class="liste_titre maxwidthonsmartphone right">';
1621 print
'<input class="flat maxwidth50imp" type="text" name="search_fac_rec_source_title" id="search_fac_rec_source_title" value="'.dol_escape_htmltag($search_fac_rec_source_title).
'">';
1625if (!empty($arrayfields[
'f.fk_statut'][
'checked'])) {
1626 print
'<td class="liste_titre center parentonrightofpage">';
1627 $liststatus = array(
'0'=>$langs->trans(
"BillShortStatusDraft"),
'0,1'=>$langs->trans(
"BillShortStatusDraft").
'+'.$langs->trans(
"BillShortStatusNotPaid"),
'1'=>$langs->trans(
"BillShortStatusNotPaid"),
'1,2'=>$langs->trans(
"BillShortStatusNotPaid").
'+'.$langs->trans(
"BillShortStatusPaid"),
'2'=>$langs->trans(
"BillShortStatusPaid"),
'3'=>$langs->trans(
"BillShortStatusCanceled"));
1628 print $form->selectarray(
'search_status', $liststatus, $search_status, 1, 0, 0,
'', 0, 0, 0,
'',
'search_status width100 onrightofpage', 1);
1633 print
'<td class="liste_titre center maxwidthsearch actioncolumn">';
1634 $searchpicto = $form->showFilterButtons();
1640$totalarray = array();
1641$totalarray[
'nbfield'] = 0;
1645print
'<tr class="liste_titre">';
1647 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'',
'',
'align="center"', $sortfield, $sortorder,
'maxwidthsearch ');
1648 $totalarray[
'nbfield']++;
1652 $totalarray[
'nbfield']++;
1654if (!empty($arrayfields[
'f.ref'][
'checked'])) {
1655 print_liste_field_titre($arrayfields[
'f.ref'][
'label'], $_SERVER[
'PHP_SELF'],
'f.ref',
'', $param,
'', $sortfield, $sortorder);
1656 $totalarray[
'nbfield']++;
1658if (!empty($arrayfields[
'f.ref_client'][
'checked'])) {
1659 print_liste_field_titre($arrayfields[
'f.ref_client'][
'label'], $_SERVER[
"PHP_SELF"],
'f.ref_client',
'', $param,
'', $sortfield, $sortorder);
1660 $totalarray[
'nbfield']++;
1662if (!empty($arrayfields[
'f.type'][
'checked'])) {
1663 print_liste_field_titre($arrayfields[
'f.type'][
'label'], $_SERVER[
"PHP_SELF"],
'f.type',
'', $param,
'', $sortfield, $sortorder);
1664 $totalarray[
'nbfield']++;
1666if (!empty($arrayfields[
'f.subtype'][
'checked'])) {
1667 print_liste_field_titre($arrayfields[
'f.subtype'][
'label'], $_SERVER[
"PHP_SELF"],
'f.subtype',
'', $param,
'', $sortfield, $sortorder);
1669if (!empty($arrayfields[
'f.datef'][
'checked'])) {
1670 print_liste_field_titre($arrayfields[
'f.datef'][
'label'], $_SERVER[
'PHP_SELF'],
'f.datef',
'', $param,
'', $sortfield, $sortorder,
'center ');
1671 $totalarray[
'nbfield']++;
1673if (!empty($arrayfields[
'f.date_valid'][
'checked'])) {
1674 print_liste_field_titre($arrayfields[
'f.date_valid'][
'label'], $_SERVER[
'PHP_SELF'],
'f.date_valid',
'', $param,
'', $sortfield, $sortorder,
'center ');
1675 $totalarray[
'nbfield']++;
1677if (!empty($arrayfields[
'f.date_lim_reglement'][
'checked'])) {
1678 print_liste_field_titre($arrayfields[
'f.date_lim_reglement'][
'label'], $_SERVER[
'PHP_SELF'],
"f.date_lim_reglement",
'', $param,
'', $sortfield, $sortorder,
'center ');
1679 $totalarray[
'nbfield']++;
1681if (!empty($arrayfields[
'p.ref'][
'checked'])) {
1682 $langs->load(
"projects");
1683 print_liste_field_titre($arrayfields[
'p.ref'][
'label'], $_SERVER[
'PHP_SELF'],
"p.ref",
'', $param,
'', $sortfield, $sortorder);
1684 $totalarray[
'nbfield']++;
1686if (!empty($arrayfields[
'p.title'][
'checked'])) {
1687 print_liste_field_titre($arrayfields[
'p.title'][
'label'], $_SERVER[
'PHP_SELF'],
"p.title",
'', $param,
'', $sortfield, $sortorder);
1688 $totalarray[
'nbfield']++;
1690if (!empty($arrayfields[
's.nom'][
'checked'])) {
1691 print_liste_field_titre($arrayfields[
's.nom'][
'label'], $_SERVER[
'PHP_SELF'],
's.nom',
'', $param,
'', $sortfield, $sortorder);
1692 $totalarray[
'nbfield']++;
1694if (!empty($arrayfields[
's.name_alias'][
'checked'])) {
1695 print_liste_field_titre($arrayfields[
's.name_alias'][
'label'], $_SERVER[
'PHP_SELF'],
's.name_alias',
'', $param,
'', $sortfield, $sortorder);
1696 $totalarray[
'nbfield']++;
1698if (!empty($arrayfields[
's2.nom'][
'checked'])) {
1699 print_liste_field_titre($arrayfields[
's2.nom'][
'label'], $_SERVER[
'PHP_SELF'],
's2.nom',
'', $param,
'', $sortfield, $sortorder);
1700 $totalarray[
'nbfield']++;
1702if (!empty($arrayfields[
's.code_client'][
'checked'])) {
1703 print_liste_field_titre($arrayfields[
's.code_client'][
'label'], $_SERVER[
'PHP_SELF'],
's.code_client',
'', $param,
'', $sortfield, $sortorder);
1704 $totalarray[
'nbfield']++;
1706if (!empty($arrayfields[
's.town'][
'checked'])) {
1707 print_liste_field_titre($arrayfields[
's.town'][
'label'], $_SERVER[
"PHP_SELF"],
's.town',
'', $param,
'', $sortfield, $sortorder);
1708 $totalarray[
'nbfield']++;
1710if (!empty($arrayfields[
's.zip'][
'checked'])) {
1711 print_liste_field_titre($arrayfields[
's.zip'][
'label'], $_SERVER[
"PHP_SELF"],
's.zip',
'', $param,
'', $sortfield, $sortorder);
1712 $totalarray[
'nbfield']++;
1714if (!empty($arrayfields[
'state.nom'][
'checked'])) {
1715 print_liste_field_titre($arrayfields[
'state.nom'][
'label'], $_SERVER[
"PHP_SELF"],
"state.nom",
"", $param,
'', $sortfield, $sortorder);
1716 $totalarray[
'nbfield']++;
1718if (!empty($arrayfields[
'country.code_iso'][
'checked'])) {
1719 print_liste_field_titre($arrayfields[
'country.code_iso'][
'label'], $_SERVER[
"PHP_SELF"],
"country.code_iso",
"", $param,
'', $sortfield, $sortorder,
'center ');
1720 $totalarray[
'nbfield']++;
1722if (!empty($arrayfields[
'typent.code'][
'checked'])) {
1723 print_liste_field_titre($arrayfields[
'typent.code'][
'label'], $_SERVER[
"PHP_SELF"],
"typent.code",
"", $param,
'', $sortfield, $sortorder,
'center ');
1724 $totalarray[
'nbfield']++;
1726if (!empty($arrayfields[
'f.fk_mode_reglement'][
'checked'])) {
1727 print_liste_field_titre($arrayfields[
'f.fk_mode_reglement'][
'label'], $_SERVER[
"PHP_SELF"],
"f.fk_mode_reglement",
"", $param,
"", $sortfield, $sortorder);
1728 $totalarray[
'nbfield']++;
1730if (!empty($arrayfields[
'f.fk_cond_reglement'][
'checked'])) {
1731 print_liste_field_titre($arrayfields[
'f.fk_cond_reglement'][
'label'], $_SERVER[
"PHP_SELF"],
"f.fk_cond_reglement",
"", $param,
"", $sortfield, $sortorder);
1732 $totalarray[
'nbfield']++;
1734if (!empty($arrayfields[
'f.module_source'][
'checked'])) {
1735 print_liste_field_titre($arrayfields[
'f.module_source'][
'label'], $_SERVER[
"PHP_SELF"],
"f.module_source",
"", $param,
"", $sortfield, $sortorder);
1736 $totalarray[
'nbfield']++;
1738if (!empty($arrayfields[
'f.pos_source'][
'checked'])) {
1739 print_liste_field_titre($arrayfields[
'f.pos_source'][
'label'], $_SERVER[
"PHP_SELF"],
"f.pos_source",
"", $param,
"", $sortfield, $sortorder);
1740 $totalarray[
'nbfield']++;
1742if (!empty($arrayfields[
'f.total_ht'][
'checked'])) {
1743 print_liste_field_titre($arrayfields[
'f.total_ht'][
'label'], $_SERVER[
'PHP_SELF'],
'f.total_ht',
'', $param,
'', $sortfield, $sortorder,
'right ');
1744 $totalarray[
'nbfield']++;
1746if (!empty($arrayfields[
'f.total_tva'][
'checked'])) {
1747 print_liste_field_titre($arrayfields[
'f.total_tva'][
'label'], $_SERVER[
'PHP_SELF'],
'f.total_tva',
'', $param,
'', $sortfield, $sortorder,
'right ');
1748 $totalarray[
'nbfield']++;
1750if (!empty($arrayfields[
'f.total_localtax1'][
'checked'])) {
1751 print_liste_field_titre($arrayfields[
'f.total_localtax1'][
'label'], $_SERVER[
'PHP_SELF'],
'f.localtax1',
'', $param,
'', $sortfield, $sortorder,
'right ');
1752 $totalarray[
'nbfield']++;
1754if (!empty($arrayfields[
'f.total_localtax2'][
'checked'])) {
1755 print_liste_field_titre($arrayfields[
'f.total_localtax2'][
'label'], $_SERVER[
'PHP_SELF'],
'f.localtax2',
'', $param,
'', $sortfield, $sortorder,
'right ');
1756 $totalarray[
'nbfield']++;
1758if (!empty($arrayfields[
'f.total_ttc'][
'checked'])) {
1759 print_liste_field_titre($arrayfields[
'f.total_ttc'][
'label'], $_SERVER[
'PHP_SELF'],
'f.total_ttc',
'', $param,
'', $sortfield, $sortorder,
'right ');
1760 $totalarray[
'nbfield']++;
1762if (!empty($arrayfields[
'u.login'][
'checked'])) {
1763 print_liste_field_titre($arrayfields[
'u.login'][
'label'], $_SERVER[
"PHP_SELF"],
'u.login',
'', $param,
'', $sortfield, $sortorder,
'center ');
1764 $totalarray[
'nbfield']++;
1766if (!empty($arrayfields[
'sale_representative'][
'checked'])) {
1767 print_liste_field_titre($arrayfields[
'sale_representative'][
'label'], $_SERVER[
"PHP_SELF"],
"",
"",
"$param",
'', $sortfield, $sortorder);
1768 $totalarray[
'nbfield']++;
1770if (!empty($arrayfields[
'f.retained_warranty'][
'checked'])) {
1771 print_liste_field_titre($arrayfields[
'f.retained_warranty'][
'label'], $_SERVER[
'PHP_SELF'],
'',
'', $param,
'', $sortfield, $sortorder,
'right ');
1772 $totalarray[
'nbfield']++;
1774if (!empty($arrayfields[
'dynamount_payed'][
'checked'])) {
1775 print_liste_field_titre($arrayfields[
'dynamount_payed'][
'label'], $_SERVER[
'PHP_SELF'],
'',
'', $param,
'', $sortfield, $sortorder,
'right ');
1776 $totalarray[
'nbfield']++;
1778if (!empty($arrayfields[
'rtp'][
'checked'])) {
1779 print_liste_field_titre($arrayfields[
'rtp'][
'label'], $_SERVER[
'PHP_SELF'],
'',
'', $param,
'', $sortfield, $sortorder,
'right ');
1780 $totalarray[
'nbfield']++;
1782if (!empty($arrayfields[
'f.multicurrency_code'][
'checked'])) {
1783 print_liste_field_titre($arrayfields[
'f.multicurrency_code'][
'label'], $_SERVER[
'PHP_SELF'],
'f.multicurrency_code',
'', $param,
'', $sortfield, $sortorder);
1784 $totalarray[
'nbfield']++;
1786if (!empty($arrayfields[
'f.multicurrency_tx'][
'checked'])) {
1787 print_liste_field_titre($arrayfields[
'f.multicurrency_tx'][
'label'], $_SERVER[
'PHP_SELF'],
'f.multicurrency_tx',
'', $param,
'', $sortfield, $sortorder);
1788 $totalarray[
'nbfield']++;
1790if (!empty($arrayfields[
'f.multicurrency_total_ht'][
'checked'])) {
1791 print_liste_field_titre($arrayfields[
'f.multicurrency_total_ht'][
'label'], $_SERVER[
'PHP_SELF'],
'f.multicurrency_total_ht',
'', $param,
'', $sortfield, $sortorder,
'right ');
1792 $totalarray[
'nbfield']++;
1794if (!empty($arrayfields[
'f.multicurrency_total_vat'][
'checked'])) {
1795 print_liste_field_titre($arrayfields[
'f.multicurrency_total_vat'][
'label'], $_SERVER[
'PHP_SELF'],
'f.multicurrency_total_tva',
'', $param,
'', $sortfield, $sortorder,
'right ');
1796 $totalarray[
'nbfield']++;
1798if (!empty($arrayfields[
'f.multicurrency_total_ttc'][
'checked'])) {
1799 print_liste_field_titre($arrayfields[
'f.multicurrency_total_ttc'][
'label'], $_SERVER[
'PHP_SELF'],
'f.multicurrency_total_ttc',
'', $param,
'', $sortfield, $sortorder,
'right ');
1800 $totalarray[
'nbfield']++;
1802if (!empty($arrayfields[
'multicurrency_dynamount_payed'][
'checked'])) {
1803 print_liste_field_titre($arrayfields[
'multicurrency_dynamount_payed'][
'label'], $_SERVER[
'PHP_SELF'],
'',
'', $param,
'', $sortfield, $sortorder,
'right ');
1804 $totalarray[
'nbfield']++;
1806if (!empty($arrayfields[
'multicurrency_rtp'][
'checked'])) {
1807 print_liste_field_titre($arrayfields[
'multicurrency_rtp'][
'label'], $_SERVER[
'PHP_SELF'],
'',
'', $param,
'', $sortfield, $sortorder,
'right ');
1808 $totalarray[
'nbfield']++;
1810if (!empty($arrayfields[
'total_pa'][
'checked'])) {
1811 print_liste_field_titre($arrayfields[
'total_pa'][
'label'], $_SERVER[
'PHP_SELF'],
'',
'', $param,
'', $sortfield, $sortorder,
'right ');
1812 $totalarray[
'nbfield']++;
1814if (!empty($arrayfields[
'total_margin'][
'checked'])) {
1815 print_liste_field_titre($arrayfields[
'total_margin'][
'label'], $_SERVER[
'PHP_SELF'],
'',
'', $param,
'', $sortfield, $sortorder,
'right ');
1816 $totalarray[
'nbfield']++;
1818if (!empty($arrayfields[
'total_margin_rate'][
'checked'])) {
1819 print_liste_field_titre($arrayfields[
'total_margin_rate'][
'label'], $_SERVER[
'PHP_SELF'],
'',
'', $param,
'', $sortfield, $sortorder,
'right ');
1820 $totalarray[
'nbfield']++;
1822if (!empty($arrayfields[
'total_mark_rate'][
'checked'])) {
1823 print_liste_field_titre($arrayfields[
'total_mark_rate'][
'label'], $_SERVER[
'PHP_SELF'],
'',
'', $param,
'', $sortfield, $sortorder,
'right ');
1824 $totalarray[
'nbfield']++;
1827include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_title.tpl.php';
1829$parameters = array(
'arrayfields'=>$arrayfields,
'param'=>$param,
'sortfield'=>$sortfield,
'sortorder'=>$sortorder,
'totalarray'=>$totalarray);
1830$reshook = $hookmanager->executeHooks(
'printFieldListTitle', $parameters, $object, $action);
1831print $hookmanager->resPrint;
1832if (!empty($arrayfields[
'f.datec'][
'checked'])) {
1833 print_liste_field_titre($arrayfields[
'f.datec'][
'label'], $_SERVER[
"PHP_SELF"],
"f.datec",
"", $param,
'', $sortfield, $sortorder,
'nowraponall center ');
1834 $totalarray[
'nbfield']++;
1836if (!empty($arrayfields[
'f.tms'][
'checked'])) {
1837 print_liste_field_titre($arrayfields[
'f.tms'][
'label'], $_SERVER[
"PHP_SELF"],
"f.tms",
"", $param,
'', $sortfield, $sortorder,
'nowraponall center ');
1838 $totalarray[
'nbfield']++;
1840if (!empty($arrayfields[
'f.date_closing'][
'checked'])) {
1841 print_liste_field_titre($arrayfields[
'f.date_closing'][
'label'], $_SERVER[
"PHP_SELF"],
"f.date_closing",
"", $param,
'', $sortfield, $sortorder,
'nowraponall center ');
1842 $totalarray[
'nbfield']++;
1844if (!empty($arrayfields[
'f.note_public'][
'checked'])) {
1845 print_liste_field_titre($arrayfields[
'f.note_public'][
'label'], $_SERVER[
"PHP_SELF"],
"f.note_public",
"", $param,
'', $sortfield, $sortorder,
'center nowrap ');
1846 $totalarray[
'nbfield']++;
1848if (!empty($arrayfields[
'f.note_private'][
'checked'])) {
1849 print_liste_field_titre($arrayfields[
'f.note_private'][
'label'], $_SERVER[
"PHP_SELF"],
"f.note_private",
"", $param,
'', $sortfield, $sortorder,
'center nowrap ');
1850 $totalarray[
'nbfield']++;
1852if (!empty($arrayfields[
'f.fk_fac_rec_source'][
'checked'])) {
1853 print_liste_field_titre($arrayfields[
'f.fk_fac_rec_source'][
'label'], $_SERVER[
"PHP_SELF"],
"facrec.titre",
"", $param,
'', $sortfield, $sortorder);
1854 $totalarray[
'nbfield']++;
1856if (!empty($arrayfields[
'f.fk_statut'][
'checked'])) {
1857 print_liste_field_titre($arrayfields[
'f.fk_statut'][
'label'], $_SERVER[
"PHP_SELF"],
"f.fk_statut,f.paye,f.type",
"", $param,
'', $sortfield, $sortorder,
'center ');
1858 $totalarray[
'nbfield']++;
1861 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'',
'',
'', $sortfield, $sortorder,
'maxwidthsearch center ');
1862 $totalarray[
'nbfield']++;
1867$projectstatic =
new Project($db);
1869$userstatic =
new User($db);
1875 $savnbfield = $totalarray[
'nbfield'];
1876 $totalarray = array();
1877 $totalarray[
'nbfield'] = 0;
1878 $totalarray[
'val'] = array();
1879 $totalarray[
'val'][
'f.total_ht'] = 0;
1880 $totalarray[
'val'][
'f.total_tva'] = 0;
1881 $totalarray[
'val'][
'f.total_localtax1']=0;
1882 $totalarray[
'val'][
'f.total_localtax1']=0;
1883 $totalarray[
'val'][
'f.total_ttc'] = 0;
1884 $totalarray[
'val'][
'totalam'] = 0;
1885 $totalarray[
'val'][
'rtp'] = 0;
1887 $typenArray = $formcompany->typent_array(1);
1889 $with_margin_info =
false;
1890 if (isModEnabled(
'margin') && (
1891 !empty($arrayfields[
'total_pa'][
'checked'])
1892 || !empty($arrayfields[
'total_margin'][
'checked'])
1893 || !empty($arrayfields[
'total_margin_rate'][
'checked'])
1894 || !empty($arrayfields[
'total_mark_rate'][
'checked'])
1897 $with_margin_info =
true;
1902 $imaxinloop = ($limit ? min($num, $limit) : $num);
1903 while ($i < $imaxinloop) {
1904 $obj = $db->fetch_object($resql);
1906 $datelimit = $db->jdate($obj->datelimite);
1908 $facturestatic->id = $obj->id;
1909 $facturestatic->ref = $obj->ref;
1910 $facturestatic->ref_client = $obj->ref_client;
1911 $facturestatic->ref_customer = $obj->ref_client;
1912 $facturestatic->type = $obj->type;
1913 $facturestatic->subtype = $obj->subtype;
1914 $facturestatic->total_ht = $obj->total_ht;
1915 $facturestatic->total_tva = $obj->total_tva;
1916 $facturestatic->total_ttc = $obj->total_ttc;
1917 $facturestatic->multicurrency_code = $obj->multicurrency_code;
1918 $facturestatic->multicurrency_tx = $obj->multicurrency_tx;
1919 $facturestatic->multicurrency_total_ht = $obj->multicurrency_total_ht;
1920 $facturestatic->multicurrency_total_tva = $obj->multicurrency_total_vat;
1921 $facturestatic->multicurrency_total_ttc = $obj->multicurrency_total_ttc;
1922 $facturestatic->statut = $obj->fk_statut;
1923 $facturestatic->status = $obj->fk_statut;
1924 $facturestatic->close_code = $obj->close_code;
1925 $facturestatic->total_ttc = $obj->total_ttc;
1926 $facturestatic->paye = $obj->paye;
1927 $facturestatic->socid = $obj->fk_soc;
1929 $facturestatic->date = $db->jdate($obj->datef);
1930 $facturestatic->date_validation = $db->jdate($obj->date_valid);
1931 $facturestatic->date_lim_reglement = $db->jdate($obj->datelimite);
1933 $facturestatic->note_public = $obj->note_public;
1934 $facturestatic->note_private = $obj->note_private;
1937 $facturestatic->retained_warranty = $obj->retained_warranty;
1938 $facturestatic->retained_warranty_date_limit = $obj->retained_warranty_date_limit;
1939 $facturestatic->situation_final = $obj->retained_warranty_date_limit;
1940 $facturestatic->situation_final = $obj->retained_warranty_date_limit;
1941 $facturestatic->situation_cycle_ref = $obj->situation_cycle_ref;
1942 $facturestatic->situation_counter = $obj->situation_counter;
1945 $companystatic->id = $obj->socid;
1946 $companystatic->name = $obj->name;
1947 $companystatic->name_alias = $obj->alias;
1948 $companystatic->client = $obj->client;
1949 $companystatic->fournisseur = $obj->fournisseur;
1950 $companystatic->code_client = $obj->code_client;
1951 $companystatic->code_compta_client = $obj->code_compta_client;
1952 $companystatic->code_fournisseur = $obj->code_fournisseur;
1953 $companystatic->code_compta_fournisseur = $obj->code_compta_fournisseur;
1954 $companystatic->email = $obj->email;
1955 $companystatic->phone = $obj->phone;
1956 $companystatic->fax = $obj->fax;
1957 $companystatic->address = $obj->address;
1958 $companystatic->zip = $obj->zip;
1959 $companystatic->town = $obj->town;
1960 $companystatic->country_code = $obj->country_code;
1962 $projectstatic->id = $obj->project_id;
1963 $projectstatic->ref = $obj->project_ref;
1964 $projectstatic->title = $obj->project_label;
1966 $paiement = $facturestatic->getSommePaiement();
1967 $totalcreditnotes = $facturestatic->getSumCreditNotesUsed();
1968 $totaldeposits = $facturestatic->getSumDepositsUsed();
1969 $totalpay = $paiement + $totalcreditnotes + $totaldeposits;
1970 $remaintopay = $obj->total_ttc - $totalpay;
1972 $multicurrency_paiement = $facturestatic->getSommePaiement(1);
1973 $multicurrency_totalcreditnotes = $facturestatic->getSumCreditNotesUsed(1);
1974 $multicurrency_totaldeposits = $facturestatic->getSumDepositsUsed(1);
1976 $totalpay = $paiement + $totalcreditnotes + $totaldeposits;
1977 $remaintopay =
price2num($facturestatic->total_ttc - $totalpay);
1979 $multicurrency_totalpay = $multicurrency_paiement + $multicurrency_totalcreditnotes + $multicurrency_totaldeposits;
1980 $multicurrency_remaintopay =
price2num($facturestatic->multicurrency_total_ttc - $multicurrency_totalpay);
1984 $multicurrency_remaintopay = 0;
1987 $remaincreditnote = $discount->getAvailableDiscounts($companystatic,
'',
'rc.fk_facture_source='.$facturestatic->id);
1988 $remaintopay = -$remaincreditnote;
1989 $totalpay =
price2num($facturestatic->total_ttc - $remaintopay);
1990 $multicurrency_remaincreditnote = $discount->getAvailableDiscounts($companystatic,
'',
'rc.fk_facture_source='.$facturestatic->id, 0, 0, 1);
1991 $multicurrency_remaintopay = -$multicurrency_remaincreditnote;
1992 $multicurrency_totalpay =
price2num($facturestatic->multicurrency_total_ttc - $multicurrency_remaintopay);
1995 $facturestatic->alreadypaid = $paiement;
1997 $marginInfo = array();
1998 if ($with_margin_info ===
true) {
1999 $facturestatic->fetch_lines();
2000 $marginInfo = $formmargin->getMarginInfosArray($facturestatic);
2001 $total_ht += $obj->total_ht;
2002 $total_margin += $marginInfo[
'total_margin'];
2005 $object = $facturestatic;
2007 if ($mode ==
'kanban') {
2009 print
'<tr class="trkanban"><td colspan="'.$savnbfield.
'">';
2010 print
'<div class="box-flex-container kanban">';
2013 if ($massactionbutton || $massaction) {
2015 if (in_array($object->id, $arrayofselected)) {
2020 $arraydata = array(
'alreadypaid' => $paiement,
'thirdparty' => $companystatic->getNomUrl(1,
'', 12),
'userauthor'=>$userstatic->getNomUrl(1),
'selected' => in_array($object->id, $arrayofselected));
2021 print $facturestatic->getKanbanView(
'', $arraydata);
2022 if ($i == ($imaxinloop - 1)) {
2029 print
'<tr data-rowid="'.$object->id.
'" class="oddeven"';
2030 if ($contextpage ==
'poslist') {
2031 print
' onclick="parent.$(\'#poslines\').load(\'invoice.php?action=history&placeid='.$obj->id.
'\',
function() {parent.$.colorbox.close();
';
2032 if (strpos($obj->ref, 'PROV
') !== false) {
2033 //If is a draft invoice, load var to be able to add products
2034 $place = str_replace(")", "", str_replace("(PROV-POS".$_SESSION["takeposterminal"]."-", "", $obj->ref));
2035 print 'parent.place=\
''.$place.
'\'';
2043 print
'<td class="nowrap center">';
2044 if (($massactionbutton || $massaction) && $contextpage !=
'poslist') {
2046 if (in_array($obj->id, $arrayofselected)) {
2049 print
'<input id="cb'.$obj->id.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->id.
'"'.($selected ?
' checked="checked"' :
'').
'>';
2053 $totalarray[
'nbfield']++;
2059 print
'<td>'.(($offset * $limit) + $i).
'</td>';
2061 $totalarray[
'nbfield']++;
2066 if (!empty($arrayfields[
'f.ref'][
'checked'])) {
2067 print
'<td class="nowraponall">';
2069 print
'<table class="nobordernopadding"><tr class="nocellnopadd">';
2071 print
'<td class="nobordernopadding nowraponall">';
2072 if ($contextpage ==
'poslist') {
2075 print $facturestatic->getNomUrl(1,
'', 200, 0,
'', 0, 1);
2079 $filepath = $conf->facture->multidir_output[$obj->entity] ?? $conf->facture->dir_output;
2080 $filedir = $filepath .
'/' . $filename;
2082 $urlsource = $_SERVER[
'PHP_SELF'].
'?id='.$obj->id;
2083 print $formfile->getDocumentsLink($facturestatic->element, $filename, $filedir);
2090 $totalarray[
'nbfield']++;
2095 if (!empty($arrayfields[
'f.ref_client'][
'checked'])) {
2096 print
'<td class="nowrap tdoverflowmax200">';
2100 $totalarray[
'nbfield']++;
2105 if (!empty($arrayfields[
'f.type'][
'checked'])) {
2106 print
'<td class="nowraponall tdoverflowmax100" title="'.$facturestatic->getLibType().
'">';
2107 print $facturestatic->getLibType(2);
2110 $totalarray[
'nbfield']++;
2115 if (!empty($arrayfields[
'f.subtype'][
'checked'])) {
2117 if ($facturestatic->subtype > 0) {
2118 $labeltoshow = $facturestatic->getSubtypeLabel(
'facture');
2120 print
'<td class="nowraponall tdoverflowmax300" title="'.$labeltoshow.
'">';
2124 $totalarray[
'nbfield']++;
2129 if (!empty($arrayfields[
'f.datef'][
'checked'])) {
2130 print
'<td align="center" class="nowraponall">';
2134 $totalarray[
'nbfield']++;
2139 if (!empty($arrayfields[
'f.date_valid'][
'checked'])) {
2140 print
'<td align="center" class="nowraponall">';
2144 $totalarray[
'nbfield']++;
2149 if (!empty($arrayfields[
'f.date_lim_reglement'][
'checked'])) {
2150 print
'<td align="center" class="nowraponall">'.dol_print_date($datelimit,
'day');
2151 if ($facturestatic->hasDelay()) {
2152 print
img_warning($langs->trans(
'Alert').
' - '.$langs->trans(
'Late'));
2156 $totalarray[
'nbfield']++;
2161 if (!empty($arrayfields[
'p.ref'][
'checked'])) {
2162 print
'<td class="nocellnopadd nowraponall">';
2163 if ($obj->project_id > 0) {
2164 print $projectstatic->getNomUrl(1);
2168 $totalarray[
'nbfield']++;
2173 if (!empty($arrayfields[
'p.title'][
'checked'])) {
2174 print
'<td class="nowraponall">';
2175 if ($obj->project_id > 0) {
2180 $totalarray[
'nbfield']++;
2185 if (!empty($arrayfields[
's.nom'][
'checked'])) {
2186 print
'<td class="tdoverflowmax200">';
2187 if ($contextpage ==
'poslist') {
2190 print $companystatic->getNomUrl(1,
'customer', 0, 0, -1, empty($arrayfields[
's.name_alias'][
'checked']) ? 0 : 1);
2194 $totalarray[
'nbfield']++;
2198 if (!empty($arrayfields[
's.name_alias'][
'checked'])) {
2199 print
'<td class="tdoverflowmax150" title="'.dol_escape_htmltag($companystatic->name_alias).
'">';
2203 $totalarray[
'nbfield']++;
2207 if (!empty($arrayfields[
's2.nom'][
'checked'])) {
2208 print
'<td class="tdoverflowmax200">';
2209 if ($obj->fk_parent > 0) {
2210 if (!isset($company_url_list[$obj->fk_parent])) {
2211 $companyparent =
new Societe($db);
2212 $res = $companyparent->fetch($obj->fk_parent);
2214 $company_url_list[$obj->fk_parent] = $companyparent->getNomUrl(1);
2217 if (isset($company_url_list[$obj->fk_parent])) {
2218 print $company_url_list[$obj->fk_parent];
2223 $totalarray[
'nbfield']++;
2227 if (!empty($arrayfields[
's.code_client'][
'checked'])) {
2228 print
'<td class="tdoverflowmax150" title="'.dol_escape_htmltag($companystatic->code_client).
'">';
2232 $totalarray[
'nbfield']++;
2236 if (!empty($arrayfields[
's.town'][
'checked'])) {
2237 print
'<td class="tdoverflowmax100" title="'.dol_escape_htmltag($obj->town).
'">';
2241 $totalarray[
'nbfield']++;
2245 if (!empty($arrayfields[
's.zip'][
'checked'])) {
2246 print
'<td class="nowraponall">';
2250 $totalarray[
'nbfield']++;
2254 if (!empty($arrayfields[
'state.nom'][
'checked'])) {
2255 print
'<td class="tdoverflowmax100" title="'.dol_escape_htmltag($obj->state_name).
'">'.
dol_escape_htmltag($obj->state_name).
"</td>\n";
2257 $totalarray[
'nbfield']++;
2261 if (!empty($arrayfields[
'country.code_iso'][
'checked'])) {
2262 $tmparray =
getCountry($obj->fk_pays,
'all');
2263 print
'<td class="center tdoverflowmax100" title="'.dol_escape_htmltag($tmparray[
'label']).
'">';
2267 $totalarray[
'nbfield']++;
2271 if (!empty($arrayfields[
'typent.code'][
'checked'])) {
2272 print
'<td class="center">';
2273 if (!is_array($typenArray) || count($typenArray) == 0) {
2274 $typenArray = $formcompany->typent_array(1);
2276 if (!empty($obj->typent_code)) {
2277 print $typenArray[$obj->typent_code];
2281 $totalarray[
'nbfield']++;
2285 if (!empty($arrayfields[
'staff.code'][
'checked'])) {
2286 print
'<td class="center">';
2287 if (!is_array($conf->cache[
'staff']) || count($conf->cache[
'staff']) == 0) {
2288 $conf->cache[
'staff'] = $formcompany->effectif_array(1);
2290 print $conf->cache[
'staff'][$obj->staff_code];
2293 $totalarray[
'nbfield']++;
2298 if (!empty($arrayfields[
'f.fk_mode_reglement'][
'checked'])) {
2299 $s = $form->form_modes_reglement($_SERVER[
'PHP_SELF'], $obj->fk_mode_reglement,
'none',
'', -1, 0,
'', 1);
2300 print
'<td class="tdoverflowmax100" title="'.dol_escape_htmltag($s).
'">';
2304 $totalarray[
'nbfield']++;
2309 if (!empty($arrayfields[
'f.fk_cond_reglement'][
'checked'])) {
2310 $s = $form->form_conditions_reglement($_SERVER[
'PHP_SELF'], $obj->fk_cond_reglement,
'none', 0,
'', -1, -1, 1);
2311 print
'<td class="tdoverflowmax100" title="'.dol_escape_htmltag($s).
'">';
2315 $totalarray[
'nbfield']++;
2320 if (!empty($arrayfields[
'f.module_source'][
'checked'])) {
2325 $totalarray[
'nbfield']++;
2330 if (!empty($arrayfields[
'f.pos_source'][
'checked'])) {
2335 $totalarray[
'nbfield']++;
2340 if (!empty($arrayfields[
'f.total_ht'][
'checked'])) {
2341 print
'<td class="right nowraponall amount">'.price($obj->total_ht).
"</td>\n";
2343 $totalarray[
'nbfield']++;
2346 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'f.total_ht';
2348 $totalarray[
'val'][
'f.total_ht'] += $obj->total_ht;
2351 if (!empty($arrayfields[
'f.total_tva'][
'checked'])) {
2352 print
'<td class="right nowraponall amount">'.price($obj->total_tva).
"</td>\n";
2354 $totalarray[
'nbfield']++;
2357 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'f.total_tva';
2359 $totalarray[
'val'][
'f.total_tva'] += $obj->total_tva;
2362 if (!empty($arrayfields[
'f.total_localtax1'][
'checked'])) {
2363 print
'<td class="right nowraponall amount">'.price($obj->total_localtax1).
"</td>\n";
2365 $totalarray[
'nbfield']++;
2368 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'f.total_localtax1';
2370 $totalarray[
'val'][
'f.total_localtax1'] += $obj->total_localtax1;
2373 if (!empty($arrayfields[
'f.total_localtax2'][
'checked'])) {
2374 print
'<td class="right nowraponall amount">'.price($obj->total_localtax2).
"</td>\n";
2376 $totalarray[
'nbfield']++;
2379 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'f.total_localtax2';
2381 $totalarray[
'val'][
'f.total_localtax2'] += $obj->total_localtax2;
2384 if (!empty($arrayfields[
'f.total_ttc'][
'checked'])) {
2385 print
'<td class="right nowraponall amount">'.price($obj->total_ttc).
"</td>\n";
2387 $totalarray[
'nbfield']++;
2390 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'f.total_ttc';
2392 $totalarray[
'val'][
'f.total_ttc'] += $obj->total_ttc;
2395 $userstatic->id = $obj->fk_user_author;
2396 $userstatic->login = $obj->login;
2397 $userstatic->lastname = $obj->lastname;
2398 $userstatic->firstname = $obj->firstname;
2399 $userstatic->email = $obj->user_email;
2400 $userstatic->statut = $obj->user_statut;
2401 $userstatic->status = $obj->user_statut;
2402 $userstatic->entity = $obj->entity;
2403 $userstatic->photo = $obj->photo;
2404 $userstatic->office_phone = $obj->office_phone;
2405 $userstatic->office_fax = $obj->office_fax;
2406 $userstatic->user_mobile = $obj->user_mobile;
2407 $userstatic->job = $obj->job;
2408 $userstatic->gender = $obj->gender;
2411 if (!empty($arrayfields[
'u.login'][
'checked'])) {
2412 print
'<td class="tdoverflowmax200">';
2413 if ($userstatic->id) {
2414 print $userstatic->getNomUrl(-1);
2420 $totalarray[
'nbfield']++;
2424 if (!empty($arrayfields[
'sale_representative'][
'checked'])) {
2427 if ($obj->socid > 0) {
2428 $listsalesrepresentatives = $companystatic->getSalesRepresentatives($user);
2429 if ($listsalesrepresentatives < 0) {
2432 $nbofsalesrepresentative = count($listsalesrepresentatives);
2433 if ($nbofsalesrepresentative > 6) {
2435 print $nbofsalesrepresentative;
2436 } elseif ($nbofsalesrepresentative > 0) {
2438 foreach ($listsalesrepresentatives as $val) {
2439 $userstatic->id = $val[
'id'];
2440 $userstatic->lastname = $val[
'lastname'];
2441 $userstatic->firstname = $val[
'firstname'];
2442 $userstatic->email = $val[
'email'];
2443 $userstatic->statut = $val[
'statut'];
2444 $userstatic->status = $val[
'statut'];
2445 $userstatic->entity = $val[
'entity'];
2446 $userstatic->photo = $val[
'photo'];
2447 $userstatic->login = $val[
'login'];
2448 $userstatic->office_phone = $val[
'office_phone'];
2449 $userstatic->office_fax = $val[
'office_fax'];
2450 $userstatic->user_mobile = $val[
'user_mobile'];
2451 $userstatic->job = $val[
'job'];
2452 $userstatic->gender = $val[
'gender'];
2454 print ($nbofsalesrepresentative < 2) ? $userstatic->getNomUrl(-1,
'', 0, 0, 12) : $userstatic->getNomUrl(-2);
2456 if ($j < $nbofsalesrepresentative) {
2468 $totalarray[
'nbfield']++;
2472 if (!empty($arrayfields[
'f.retained_warranty'][
'checked'])) {
2473 print
'<td align="right">'.(!empty($obj->retained_warranty) ?
price($obj->retained_warranty).
'%' :
' ').
'</td>';
2475 $totalarray[
'nbfield']++;
2479 if (!empty($arrayfields[
'dynamount_payed'][
'checked'])) {
2480 print
'<td class="right nowraponall amount">'.(!empty($totalpay) ?
price($totalpay, 0, $langs) :
' ').
'</td>';
2482 $totalarray[
'nbfield']++;
2485 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'totalam';
2487 $totalarray[
'val'][
'totalam'] += $totalpay;
2491 if (!empty($arrayfields[
'rtp'][
'checked'])) {
2492 print
'<td class="right nowraponall amount">';
2493 print(!empty($remaintopay) ?
price($remaintopay, 0, $langs) :
' ');
2496 $totalarray[
'nbfield']++;
2499 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'rtp';
2501 $totalarray[
'val'][
'rtp'] += $remaintopay;
2506 if (!empty($arrayfields[
'f.multicurrency_code'][
'checked'])) {
2507 print
'<td class="nowraponall tdoverflowmax125" title="'.dol_escape_htmltag($obj->multicurrency_code.
' - '.$langs->transnoentitiesnoconv(
'Currency'.$obj->multicurrency_code)).
'">';
2509 print $langs->transnoentitiesnoconv(
'Currency'.$obj->multicurrency_code);
2515 $totalarray[
'nbfield']++;
2520 if (!empty($arrayfields[
'f.multicurrency_tx'][
'checked'])) {
2521 print
'<td class="nowraponall">';
2522 $form->form_multicurrency_rate($_SERVER[
'PHP_SELF'].
'?id='.$obj->rowid, $obj->multicurrency_tx,
'none', $obj->multicurrency_code);
2525 $totalarray[
'nbfield']++;
2529 if (!empty($arrayfields[
'f.multicurrency_total_ht'][
'checked'])) {
2530 print
'<td class="right nowraponall amount">'.price($obj->multicurrency_total_ht).
"</td>\n";
2532 $totalarray[
'nbfield']++;
2536 if (!empty($arrayfields[
'f.multicurrency_total_vat'][
'checked'])) {
2537 print
'<td class="right nowraponall amount">'.price($obj->multicurrency_total_vat).
"</td>\n";
2539 $totalarray[
'nbfield']++;
2543 if (!empty($arrayfields[
'f.multicurrency_total_ttc'][
'checked'])) {
2544 print
'<td class="right nowraponall amount">'.price($obj->multicurrency_total_ttc).
"</td>\n";
2546 $totalarray[
'nbfield']++;
2550 if (!empty($arrayfields[
'multicurrency_dynamount_payed'][
'checked'])) {
2551 print
'<td class="right nowraponall amount">'.(!empty($multicurrency_totalpay) ?
price($multicurrency_totalpay, 0, $langs) :
' ').
'</td>';
2553 $totalarray[
'nbfield']++;
2558 if (!empty($arrayfields[
'multicurrency_rtp'][
'checked'])) {
2559 print
'<td class="right nowraponall">';
2560 print(!empty($multicurrency_remaintopay) ?
price($multicurrency_remaintopay, 0, $langs) :
' ');
2563 $totalarray[
'nbfield']++;
2568 if (!empty($arrayfields[
'total_pa'][
'checked'])) {
2569 print
'<td class="right nowrap">'.price($marginInfo[
'pa_total'], 0, $langs, 1, -1,
'MT').
'</td>';
2571 $totalarray[
'nbfield']++;
2572 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'total_pa';
2574 if (empty($totalarray[
'val'][
'total_pa'])) {
2575 $totalarray[
'val'][
'total_pa'] = 0;
2577 $totalarray[
'val'][
'total_pa'] += $marginInfo[
'pa_total'];
2580 if (!empty($arrayfields[
'total_margin'][
'checked'])) {
2581 print
'<td class="right nowrap">'.price($marginInfo[
'total_margin'], 0, $langs, 1, -1,
'MT').
'</td>';
2583 $totalarray[
'nbfield']++;
2584 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'total_margin';
2586 if (empty($totalarray[
'val'][
'total_margin'])) {
2587 $totalarray[
'val'][
'total_margin'] = 0;
2589 $totalarray[
'val'][
'total_margin'] += $marginInfo[
'total_margin'];
2592 if (!empty($arrayfields[
'total_margin_rate'][
'checked'])) {
2593 print
'<td class="right nowrap">'.(($marginInfo[
'total_margin_rate'] ==
'') ?
'' :
price($marginInfo[
'total_margin_rate'], null, null, null, null, 2).
'%').
'</td>';
2595 $totalarray[
'nbfield']++;
2599 if (!empty($arrayfields[
'total_mark_rate'][
'checked'])) {
2600 print
'<td class="right nowrap">'.(($marginInfo[
'total_mark_rate'] ==
'') ?
'' :
price($marginInfo[
'total_mark_rate'], null, null, null, null, 2).
'%').
'</td>';
2602 $totalarray[
'nbfield']++;
2603 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'total_mark_rate';
2605 if ($i >= $imaxinloop - 1) {
2606 if (!empty($total_ht)) {
2607 $totalarray[
'val'][
'total_mark_rate'] =
price2num($total_margin * 100 / $total_ht,
'MT');
2609 $totalarray[
'val'][
'total_mark_rate'] =
'';
2615 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_print_fields.tpl.php';
2617 $parameters = array(
'arrayfields'=>$arrayfields,
'obj'=>$obj,
'i'=>$i,
'totalarray'=>&$totalarray);
2618 $reshook = $hookmanager->executeHooks(
'printFieldListValue', $parameters, $object, $action);
2619 print $hookmanager->resPrint;
2621 if (!empty($arrayfields[
'f.datec'][
'checked'])) {
2622 print
'<td class="nowraponall center">';
2623 print
dol_print_date($db->jdate($obj->date_creation),
'dayhour',
'tzuser');
2626 $totalarray[
'nbfield']++;
2630 if (!empty($arrayfields[
'f.tms'][
'checked'])) {
2631 print
'<td class="nowraponall center">';
2632 print
dol_print_date($db->jdate($obj->date_update),
'dayhour',
'tzuser');
2635 $totalarray[
'nbfield']++;
2639 if (!empty($arrayfields[
'f.date_closing'][
'checked'])) {
2640 print
'<td class="nowraponall center">';
2641 print
dol_print_date($db->jdate($obj->date_closing),
'dayhour',
'tzuser');
2644 $totalarray[
'nbfield']++;
2648 if (!empty($arrayfields[
'f.note_public'][
'checked'])) {
2649 print
'<td class="center">';
2653 $totalarray[
'nbfield']++;
2657 if (!empty($arrayfields[
'f.note_private'][
'checked'])) {
2658 print
'<td class="center">';
2662 $totalarray[
'nbfield']++;
2666 if (!empty($arrayfields[
'f.fk_fac_rec_source'][
'checked'])) {
2667 print
'<td class="center">';
2668 if (!empty($obj->fk_fac_rec_source)) {
2670 $result = $facrec->fetch($obj->fk_fac_rec_source);
2674 print $facrec->getNomUrl();
2679 $totalarray[
'nbfield']++;
2683 if (!empty($arrayfields[
'f.fk_statut'][
'checked'])) {
2684 print
'<td class="nowrap center">';
2685 print $facturestatic->getLibStatut(5, $paiement);
2688 $totalarray[
'nbfield']++;
2695 print
'<td class="nowrap center">';
2696 if (($massactionbutton || $massaction) && $contextpage !=
'poslist') {
2698 if (in_array($obj->id, $arrayofselected)) {
2701 print
'<input id="cb'.$obj->id.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->id.
'"'.($selected ?
' checked="checked"' :
'').
'>';
2705 $totalarray[
'nbfield']++;
2716 $totalarray[
'val'][
'total_pa'] = (isset($totalarray[
'val'][
'total_pa']) ?
price2num($totalarray[
'val'][
'total_pa'],
'MT') : null);
2717 $totalarray[
'val'][
'total_margin'] = (isset($totalarray[
'val'][
'total_margin']) ?
price2num($totalarray[
'val'][
'total_margin'],
'MT') : null);
2720 include DOL_DOCUMENT_ROOT.
'/core/tpl/list_print_total.tpl.php';
2726 foreach ($arrayfields as $key => $val) {
2727 if (!empty($val[
'checked'])) {
2731 print
'<tr><td colspan="'.$colspan.
'"><span class="opacitymedium">'.$langs->trans(
"NoRecordFound").
'</span></td></tr>';
2736$parameters = array(
'arrayfields'=>$arrayfields,
'sql'=>$sql);
2737$reshook = $hookmanager->executeHooks(
'printFieldListFooter', $parameters, $object, $action);
2738print $hookmanager->resPrint;
2740print
'</table>'.
"\n";
2743print
'</form>'.
"\n";
2746if ($contextpage !=
'poslist') {
2747 $hidegeneratedfilelistifempty = 1;
2748 if ($massaction ==
'builddoc' || $action ==
'remove_file' || $show_files) {
2749 $hidegeneratedfilelistifempty = 0;
2753 $urlsource = $_SERVER[
'PHP_SELF'].
'?sortfield='.$sortfield.
'&sortorder='.$sortorder;
2754 $urlsource .= str_replace(
'&',
'&', $param);
2756 $filedir = $diroutputmassaction;
2757 $genallowed = $user->hasRight(
"facture",
"lire");
2758 $delallowed = $user->hasRight(
"facture",
"creer");
2761 print $formfile->showdocuments(
'massfilesarea_invoices',
'', $filedir, $urlsource, 0, $delallowed,
'', 1, 1, 0, 48, 1, $param, $title,
'',
'',
'',
null, $hidegeneratedfilelistifempty);
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader()
Empty header.
Class to manage bank accounts.
Class to manage absolute discounts.
Class to manage invoices.
const TYPE_REPLACEMENT
Replacement invoice.
const STATUS_DRAFT
Draft status.
const TYPE_STANDARD
Standard invoice.
const TYPE_SITUATION
Situation invoice.
const STATUS_VALIDATED
Validated (need to be paid)
const TYPE_DEPOSIT
Deposit invoice.
const TYPE_CREDIT_NOTE
Credit note invoice.
const STATUS_CLOSED
Classified paid.
Class to manage invoice templates.
Class to manage payments of customer invoices.
Class to manage projects.
Class to manage third parties objects (customers, suppliers, prospects...)
Class to manage Dolibarr users.
getCountriesInEEC()
Return list of countries that are inside the EEC (European Economic Community) Note: Try to keep this...
getCountry($searchkey, $withcode='', $dbtouse=0, $outputlangs='', $entconv=1, $searchlabel='')
Return country label, code or id from an id, code or label.
dol_mktime($hour, $minute, $second, $month, $day, $year, $gm='auto', $check=1)
Return a timestamp date built from detailed informations (by default a local PHP server timestamp) Re...
img_warning($titlealt='default', $moreatt='', $morecss='pictowarning')
Show warning logo.
GETPOSTINT($paramname, $method=0)
Return value of a param into GET or POST supervariable.
dol_string_nohtmltag($stringtoclean, $removelinefeed=1, $pagecodeto='UTF-8', $strip_tags=0, $removedoublespaces=1)
Clean a string from all HTML tags and entities.
price2num($amount, $rounding='', $option=0)
Function that return a number with universal decimal format (decimal separator is '.
dol_print_error($db='', $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
dolGetButtonTitle($label, $helpText='', $iconClass='fa fa-file', $url='', $id='', $status=1, $params=array())
Function dolGetButtonTitle : this kind of buttons are used in title in list.
setEventMessage($mesgs, $style='mesgs', $noduplicate=0)
Set event message in dol_events session object.
natural_search($fields, $value, $mode=0, $nofirstand=0)
Generate natural SQL search string for a criteria (this criteria can be tested on one or several fiel...
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='', $encodetooutput=false)
Output date in a string format according to outputlangs (or langs if not defined).
dol_now($mode='auto')
Return date for now.
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=false, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
dol_sort_array(&$array, $index, $order='asc', $natsort=0, $case_sensitive=0, $keepindex=0)
Advanced sort array by second index function, which produces ascending (default) or descending output...
dol_eval($s, $returnvalue=0, $hideerrors=1, $onlysimplestring='1')
Replace eval function to add more security.
print_liste_field_titre($name, $file="", $field="", $begin="", $moreparam="", $moreattrib="", $sortfield="", $sortorder="", $prefix="", $tooltip="", $forcenowrapcolumntitle=0)
Show title line of an array.
dolGetButtonTitleSeparator($moreClass="")
Add space between dolGetButtonTitle.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0)
Set event messages in dol_events session object.
print_barre_liste($titre, $page, $file, $options='', $sortfield='', $sortorder='', $morehtmlcenter='', $num=-1, $totalnboflines='', $picto='generic', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limit=-1, $hideselectlimit=0, $hidenavigation=0, $pagenavastextinput=0, $morehtmlrightbeforearrow='')
Print a title with navigation controls for pagination.
dol_sanitizeFileName($str, $newstr='_', $unaccent=1)
Clean a string to use it as a file name.
getDolGlobalString($key, $default='')
Return dolibarr global constant string value.
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.