* Copyright (C) 2004-2011 Laurent Destailleur * Copyright (C) 2005 Eric Seigne * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2008 Raphael Bertrand (Resultic) * Copyright (C) 2012-2013 Juanjo Menent * Copyright (C) 2014 Teddy Andreotti <125155@supinfo.com> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ /** * \file htdocs/admin/facture.php * \ingroup facture * \brief Page to setup invoice module */ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/invoice.lib.php'; require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; // Load translation files required by the page $langs->loadLangs(array('admin', 'errors', 'other', 'bills')); if (!$user->admin) { accessforbidden(); } $action = GETPOST('action', 'aZ09'); $value = GETPOST('value', 'alpha'); $label = GETPOST('label', 'alpha'); $scandir = GETPOST('scan_dir', 'alpha'); $type = 'invoice'; /* * Actions */ include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; /* * View */ $dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']); llxHeader( "", $langs->trans("BillsSetup"), 'EN:Invoice_Configuration|FR:Configuration_module_facture|ES:ConfiguracionFactura' ); $form = new Form($db); $linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("BillsSetup"), $linkback, 'title_setup'); $head = invoice_admin_prepare_head(); print dol_get_fiche_head($head, 'situation', $langs->trans("InvoiceSituation"), -1, 'invoice'); print ''.$langs->trans("InvoiceFirstSituationDesc").'

'; /* * Numbering module */ print '
'; print ''; print '
'; // You can use div-table-responsive-no-min if you dont need reserved height for your table print ''; print ''; print ''; print ''; print ''; print "\n"; _printOnOff('INVOICE_USE_SITUATION', $langs->trans('UseSituationInvoices')); _printOnOff('INVOICE_USE_SITUATION_CREDIT_NOTE', $langs->trans('UseSituationInvoicesCreditNote')); //_printOnOff('INVOICE_USE_RETAINED_WARRANTY', $langs->trans('Retainedwarranty')); $confkey = 'INVOICE_USE_RETAINED_WARRANTY'; $arrayAvailableType = array( Facture::TYPE_SITUATION => $langs->trans("InvoiceSituation"), Facture::TYPE_STANDARD.'+'.Facture::TYPE_SITUATION => $langs->trans("InvoiceSituation").' + '.$langs->trans("InvoiceStandard"), ); $selected = $conf->global->$confkey; $curentInput = (empty($inputCount) ? 1 : ($inputCount + 1)); $formSelectInvoiceType = $form->selectarray('value'.$curentInput, $arrayAvailableType, $selected, 1); _printInputFormPart($confkey, $langs->trans('AllowedInvoiceForRetainedWarranty'), '', array(), $formSelectInvoiceType); //_printOnOff('INVOICE_RETAINED_WARRANTY_LIMITED_TO_SITUATION', $langs->trans('RetainedwarrantyOnlyForSituation')); _printOnOff('INVOICE_RETAINED_WARRANTY_LIMITED_TO_FINAL_SITUATION', $langs->trans('RetainedwarrantyOnlyForSituationFinal')); $metas = array( 'type' => 'number', 'step' => '0.01', 'min' => 0, 'max' => 100 ); _printInputFormPart('INVOICE_SITUATION_DEFAULT_RETAINED_WARRANTY_PERCENT', $langs->trans('RetainedwarrantyDefaultPercent'), '', $metas); // Conditions paiements $inputCount = empty($inputCount) ? 1 : ($inputCount + 1); print ''; print ''; print ''; print ''; print '
'.$langs->trans("Parameter").''.$langs->trans("Value").' 
'.$langs->trans('PaymentConditionsShortRetainedWarranty').' '; print ''; $form->select_conditions_paiements($conf->global->INVOICE_SITUATION_DEFAULT_RETAINED_WARRANTY_COND_ID, 'value'.$inputCount, -1, 1); print '
'; print '
'; print '
'; _updateBtn(); print '
'; print dol_get_fiche_end(); // End of page llxFooter(); $db->close(); /** * Print an update button * * @return void */ function _updateBtn() { global $langs; print '
'; print ''; print '
'; } /** * Print a On/Off button * * @param string $confkey the conf key * @param bool $title Title of conf * @param string $desc Description * * @return void */ function _printOnOff($confkey, $title = false, $desc = '') { global $langs; print ''; print ''.($title ? $title : $langs->trans($confkey)); if (!empty($desc)) { print '
'.$langs->trans($desc).''; } print ''; print ' '; print ''; print ajax_constantonoff($confkey); print ''; } /** * Print a form part * * @param string $confkey the conf key * @param bool $title Title of conf * @param string $desc Description of * @param array $metas html meta * @param string $type type of input textarea or input * @param bool $help help description * * @return void */ function _printInputFormPart($confkey, $title = false, $desc = '', $metas = array(), $type = 'input', $help = false) { global $langs, $conf, $db, $inputCount; $inputCount = empty($inputCount) ? 1 : ($inputCount + 1); $form = new Form($db); $defaultMetas = array( 'name' => 'value'.$inputCount ); if ($type != 'textarea') { $defaultMetas['type'] = 'text'; $defaultMetas['value'] = $conf->global->{$confkey}; } $metas = array_merge($defaultMetas, $metas); $metascompil = ''; foreach ($metas as $key => $values) { $metascompil .= ' '.$key.'="'.$values.'" '; } print ''; print ''; if (!empty($help)) { print $form->textwithtooltip(($title ? $title : $langs->trans($confkey)), $langs->trans($help), 2, 1, img_help(1, '')); } else { print $title ? $title : $langs->trans($confkey); } if (!empty($desc)) { print '
'.$langs->trans($desc).''; } print ''; print ' '; print ''; print ''; print ''; if ($type == 'textarea') { print ''; } elseif ($type == 'input') { print ''; } else { // custom print $type; } print ''; }