Merge branch 'develop' of github.com:Dolibarr/dolibarr into theme_top_menu_login

This commit is contained in:
John BOTELLA 2019-03-12 14:00:52 +01:00
commit 240162b347
1660 changed files with 36919 additions and 22482 deletions

View File

@ -57,8 +57,7 @@ Image libraries:
Octicons 8.1 MIT Yes
Font libraries:
Fontawesome 4.7 ? Yes
Fontawesome 5.0 ? Yes
Fontawesome 5.7.2 Font Awesome Free licence Yes
For licenses compatibility informations:

View File

@ -16,6 +16,8 @@ Following changes may create regressions for some external modules, but were nec
* Method GetUrlTrackingStatus were renamed into getUrlTrackingStatus for consistency with naming rules.
* API getListOfCivility has been renamed into getListOfCivilities for consistency with naming rules.
* Deprecated function img_phone as been removed. You can use img_picto(..., 'call|call_out') instead.;
* Files for variables of themes were renamed from graph-color.php into theme_vars.inc.php to match naming
convention of extension .inc.php for files to be included.
***** ChangeLog for 9.0.1 compared to 9.0.0 *****

View File

@ -56,6 +56,14 @@ $sqls=array(
"DELETE FROM ".MAIN_DB_PREFIX."user_rights WHERE fk_user IN (SELECT rowid FROM ".MAIN_DB_PREFIX."user WHERE admin = 0 and login != 'admin') AND fk_user IN (select rowid FROM ".MAIN_DB_PREFIX."user where datec < '__DATE__')",
"DELETE FROM ".MAIN_DB_PREFIX."user WHERE admin = 0 and login != 'admin' AND datec < '__DATE__'",
),
'event'=>array(
//"DELETE FROM ".MAIN_DB_PREFIX."actioncomm WHERE lineid IN (SELECT rowid FROM ".MAIN_DB_PREFIX."bank WHERE datec < '__DATE__')",
"DELETE FROM ".MAIN_DB_PREFIX."actioncomm WHERE datec < '__DATE__'",
),
'payment'=>array(
"DELETE FROM ".MAIN_DB_PREFIX."paiement_facture where fk_facture IN (select rowid FROM ".MAIN_DB_PREFIX."facture where datec < '__DATE__')",
"DELETE FROM ".MAIN_DB_PREFIX."paiement where rowid NOT IN (SELECT fk_paiement FROM ".MAIN_DB_PREFIX."paiement_facture)",
),
'bank'=>array(
"DELETE FROM ".MAIN_DB_PREFIX."bank_class WHERE lineid IN (SELECT rowid FROM ".MAIN_DB_PREFIX."bank WHERE datec < '__DATE__')",
"DELETE FROM ".MAIN_DB_PREFIX."bank_url WHERE fk_bank IN (SELECT rowid FROM ".MAIN_DB_PREFIX."bank WHERE datec < '__DATE__')",
@ -64,22 +72,19 @@ $sqls=array(
'bankaccount'=>array(
"DELETE FROM ".MAIN_DB_PREFIX."bank_account WHERE datec < '__DATE__'",
),
'contract'=>array(
"DELETE FROM ".MAIN_DB_PREFIX."contratdet_extrafields WHERE fk_object IN (select rowid FROM ".MAIN_DB_PREFIX."contratdet WHERE fk_contrat IN (select rowid FROM ".MAIN_DB_PREFIX."contrat where date < '__DATE__'))",
"DELETE FROM ".MAIN_DB_PREFIX."contratdet WHERE fk_contrat IN (select rowid FROM ".MAIN_DB_PREFIX."contrat where datec < '__DATE__')",
"DELETE FROM ".MAIN_DB_PREFIX."contrat_extrafields WHERE fk_object IN (select rowid FROM ".MAIN_DB_PREFIX."contrat where date < '__DATE__')",
"DELETE FROM ".MAIN_DB_PREFIX."contrat WHERE datec < '__DATE__'",
),
'invoice'=>array(
'@payment',
"DELETE FROM ".MAIN_DB_PREFIX."societe_remise_except where fk_facture_source IN (select rowid FROM ".MAIN_DB_PREFIX."facture where datec < '__DATE__')",
"DELETE FROM ".MAIN_DB_PREFIX."societe_remise_except where fk_facture IN (select rowid FROM ".MAIN_DB_PREFIX."facture where datec < '__DATE__')",
"DELETE FROM ".MAIN_DB_PREFIX."societe_remise_except where fk_facture_line IN (select rowid FROM ".MAIN_DB_PREFIX."facturedet as fd WHERE fd.fk_facture IN (select rowid from ".MAIN_DB_PREFIX."facture where datec < '__DATE__'))",
"DELETE FROM ".MAIN_DB_PREFIX."paiement_facture where fk_facture IN (select rowid FROM ".MAIN_DB_PREFIX."facture where datec < '__DATE__')",
"DELETE FROM ".MAIN_DB_PREFIX."facture_rec where datec < '__DATE__'",
"DELETE FROM ".MAIN_DB_PREFIX."facturedet WHERE fk_facture IN (select rowid FROM ".MAIN_DB_PREFIX."facture where datec < '__DATE__')",
"UPDATE ".MAIN_DB_PREFIX."facture SET fk_facture_source = NULL WHERE fk_facture_source IN (select f2.rowid FROM (select * from ".MAIN_DB_PREFIX."facture) as f2 where f2.datec < '__DATE__')",
"DELETE FROM ".MAIN_DB_PREFIX."facture where datec < '__DATE__'",
),
'accounting'=>array(
"DELETE FROM ".MAIN_DB_PREFIX."accounting_bookkeeping where doc_date < '__DATE__'",
),
'proposal'=>array(
"DELETE FROM ".MAIN_DB_PREFIX."propaldet WHERE fk_propal IN (select rowid FROM ".MAIN_DB_PREFIX."propal where datec < '__DATE__')",
"DELETE FROM ".MAIN_DB_PREFIX."propal WHERE datec < '__DATE__'",
@ -88,7 +93,12 @@ $sqls=array(
"DELETE FROM ".MAIN_DB_PREFIX."supplier_proposaldet WHERE fk_supplier_proposal IN (select rowid FROM ".MAIN_DB_PREFIX."propal where datec < '__DATE__')",
"DELETE FROM ".MAIN_DB_PREFIX."supplier_proposal where datec < '__DATE__'",
),
'supplier_order'=>array(
'order'=>array(
'@shipment',
"DELETE FROM ".MAIN_DB_PREFIX."commandedet WHERE fk_commande IN (select rowid FROM ".MAIN_DB_PREFIX."commande where date_creation < '__DATE__')",
"DELETE FROM ".MAIN_DB_PREFIX."commande where date_creation < '__DATE__'",
),
'supplier_order'=>array(
"DELETE FROM ".MAIN_DB_PREFIX."commande_fournisseurdet WHERE fk_commande IN (select rowid FROM ".MAIN_DB_PREFIX."commande_fournisseur where date_creation < '__DATE__')",
"DELETE FROM ".MAIN_DB_PREFIX."commande_fournisseur where date_creation < '__DATE__'",
),
@ -96,10 +106,6 @@ $sqls=array(
"DELETE FROM ".MAIN_DB_PREFIX."facture_fourn_det WHERE fk_facture_fourn IN (select rowid FROM ".MAIN_DB_PREFIX."facture_fourn where datec < '__DATE__')",
"DELETE FROM ".MAIN_DB_PREFIX."facture_fourn where datec < '__DATE__'",
),
'delivery'=>array(
"DELETE FROM ".MAIN_DB_PREFIX."livraisondet WHERE fk_livraison IN (select rowid FROM ".MAIN_DB_PREFIX."livraison where date_creation < '__DATE__')",
"DELETE FROM ".MAIN_DB_PREFIX."livraison where date_creation < '__DATE__'",
),
'shipment'=>array(
'@delivery',
"DELETE FROM ".MAIN_DB_PREFIX."expeditiondet_batch WHERE fk_expeditiondet IN (select rowid FROM ".MAIN_DB_PREFIX."expeditiondet WHERE fk_expedition IN (select rowid FROM ".MAIN_DB_PREFIX."expedition where date_creation < '__DATE__'))",
@ -108,15 +114,23 @@ $sqls=array(
"DELETE FROM ".MAIN_DB_PREFIX."expedition_extrafields WHERE fk_object IN (select rowid FROM ".MAIN_DB_PREFIX."expedition where date_creation < '__DATE__')",
"DELETE FROM ".MAIN_DB_PREFIX."expedition where date_creation < '__DATE__'",
),
'order'=>array(
'@shipment',
"DELETE FROM ".MAIN_DB_PREFIX."commandedet WHERE fk_commande IN (select rowid FROM ".MAIN_DB_PREFIX."commande where date_creation < '__DATE__')",
"DELETE FROM ".MAIN_DB_PREFIX."commande where date_creation < '__DATE__'",
'delivery'=>array(
"DELETE FROM ".MAIN_DB_PREFIX."livraisondet WHERE fk_livraison IN (select rowid FROM ".MAIN_DB_PREFIX."livraison where date_creation < '__DATE__')",
"DELETE FROM ".MAIN_DB_PREFIX."livraison where date_creation < '__DATE__'",
),
'contract'=>array(
"DELETE FROM ".MAIN_DB_PREFIX."contratdet_extrafields WHERE fk_object IN (select rowid FROM ".MAIN_DB_PREFIX."contratdet WHERE fk_contrat IN (select rowid FROM ".MAIN_DB_PREFIX."contrat where datec < '__DATE__'))",
"DELETE FROM ".MAIN_DB_PREFIX."contratdet WHERE fk_contrat IN (select rowid FROM ".MAIN_DB_PREFIX."contrat where datec < '__DATE__')",
"DELETE FROM ".MAIN_DB_PREFIX."contrat_extrafields WHERE fk_object IN (select rowid FROM ".MAIN_DB_PREFIX."contrat where datec < '__DATE__')",
"DELETE FROM ".MAIN_DB_PREFIX."contrat WHERE datec < '__DATE__'",
),
'intervention'=>array(
"DELETE FROM ".MAIN_DB_PREFIX."fichinterdet WHERE fk_fichinter IN (select rowid FROM ".MAIN_DB_PREFIX."fichinter where datec < '__DATE__')",
"DELETE FROM ".MAIN_DB_PREFIX."fichinter where datec < '__DATE__'",
),
'stock'=>array(
"DELETE FROM ".MAIN_DB_PREFIX."stock_mouvement WHERE datem < '__DATE__'",
),
'product'=>array(
"DELETE FROM ".MAIN_DB_PREFIX."categorie_product WHERE fk_product IN (select rowid FROM ".MAIN_DB_PREFIX."product where datec < '__DATE__')",
"DELETE FROM ".MAIN_DB_PREFIX."product_lang WHERE fk_product IN (select rowid FROM ".MAIN_DB_PREFIX."product where datec < '__DATE__')",
@ -169,13 +183,26 @@ if (empty($mode) || ! in_array($mode, array('test','confirm'))) {
print "option can be ".implode(',', array_keys($sqls))."\n";
exit(-1);
}
if (empty($option) || ! in_array($option, array_merge(array('all'), array_keys($sqls))) ) {
if (empty($option))
{
print "Usage: $script_file (test|confirm) (all|option) (all|YYYY-MM-DD) [dbtype dbhost dbuser dbpassword dbname dbport]\n";
print "\n";
print "option can be ".implode(',', array_keys($sqls))."\n";
print "option must be defined with a value in list ".implode(',', array_keys($sqls))."\n";
exit(-1);
}
if ($option != 'all')
{
$listofoptions=explode(',', $option);
foreach($listofoptions as $cursoroption)
{
if (! in_array($cursoroption, array_keys($sqls))) {
print "Usage: $script_file (test|confirm) (all|option) (all|YYYY-MM-DD) [dbtype dbhost dbuser dbpassword dbname dbport]\n";
print "\n";
print "option '".$cursoroption."' must be in list ".implode(',', array_keys($sqls))."\n";
exit(-1);
}
}
}
if (empty($date) || (! preg_match('/\d\d\d\d\-\d\d\-\d\d$/', $date) && $date != 'all')) {
print "Usage: $script_file (test|confirm) (all|option) (all|YYYY-MM-DD) [dbtype dbhost dbuser dbpassword dbname dbport]\n";
@ -269,19 +296,23 @@ function processfamily($family, $date)
$db->begin();
$oldfamily='';
foreach($sqls as $family => $familysql)
$listofoptions=explode(',', $option);
foreach($listofoptions as $cursoroption)
{
if ($option && $option != 'all' && $option != $family) continue;
if ($family != $oldfamily) print "Process action for family ".$family."\n";
$oldfamily = $family;
$result=processfamily($family, $date);
if ($result < 0)
$oldfamily='';
foreach($sqls as $family => $familysql)
{
$error++;
break;
if ($cursoroption && $cursoroption != 'all' && $cursoroption != $family) continue;
if ($family != $oldfamily) print "Process action for family ".$family."\n";
$oldfamily = $family;
$result=processfamily($family, $date);
if ($result < 0)
{
$error++;
break;
}
}
}

View File

@ -171,8 +171,8 @@ elseif ($action == "add") {
$object->doc_ref = GETPOST('doc_ref', 'alpha');
$object->code_journal = $journal_code;
$object->journal_label = $journal_label;
$object->fk_doc = GETPOST('fk_doc', 'int');
$object->fk_docdet = GETPOST('fk_docdet', 'int');
$object->fk_doc = (int) GETPOST('fk_doc', 'int');
$object->fk_docdet = (int) GETPOST('fk_docdet', 'int');
if (floatval($debit) != 0.0) {
$object->montant = $debit;

View File

@ -244,7 +244,7 @@ else
// Show graphics
if (count($arrayjs) && $mode == 'memberbycountry')
{
$color_file = DOL_DOCUMENT_ROOT.'/theme/'.$conf->theme.'/graph-color.php';
$color_file = DOL_DOCUMENT_ROOT.'/theme/'.$conf->theme.'/theme_vars.inc.php';
if (is_readable($color_file)) include_once $color_file;
// Assume we've already included the proper headers so just call our script inline

View File

@ -27,7 +27,7 @@ require '../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
require_once DOL_DOCUMENT_ROOT.'/bom/class/bom.class.php';
require_once DOL_DOCUMENT_ROOT.'/bom/lib/bom_bom.lib.php';
require_once DOL_DOCUMENT_ROOT.'/bom/lib/bom.lib.php';
// Load translation files required by the page
$langs->loadLangs(array("mrp","other"));

View File

@ -29,7 +29,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
require_once DOL_DOCUMENT_ROOT.'/bom/class/bom.class.php';
require_once DOL_DOCUMENT_ROOT.'/bom/lib/bom_bom.lib.php';
require_once DOL_DOCUMENT_ROOT.'/bom/lib/bom.lib.php';
// Load translation files required by the page
$langs->loadLangs(array("mrp","companies","other","mails"));
@ -58,7 +58,7 @@ if (! $sortfield) $sortfield="name";
//if (! $sortfield) $sortfield="position_name";
// Initialize technical objects
$object=new BillOfMaterials($db);
$object=new BOM($db);
$extrafields = new ExtraFields($db);
$diroutputmassaction=$conf->bom->dir_output . '/temp/massgeneration/'.$user->id;
$hookmanager->initHooks(array('bomdocument', 'globalcard')); // Note that conf->hooks_modules contains array

View File

@ -332,7 +332,7 @@ print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sort
// Add code for pre mass action (confirmation or email presend form)
$topicmail="SendBillOfMaterialsRef";
$modelmail="bom";
$objecttmp=new BillOfMaterials($db);
$objecttmp=new BOM($db);
$trackid='xxxx'.$object->id;
include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php';

View File

@ -25,7 +25,7 @@
// Load Dolibarr environment
require '../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/bom/class/bom.class.php';
require_once DOL_DOCUMENT_ROOT.'/bom/lib/bom_bom.lib.php';
require_once DOL_DOCUMENT_ROOT.'/bom/lib/bom.lib.php';
// Load translation files required by the page
$langs->loadLangs(array("mrp","companies"));
@ -38,7 +38,7 @@ $cancel = GETPOST('cancel', 'aZ09');
$backtopage = GETPOST('backtopage', 'alpha');
// Initialize technical objects
$object=new BillOfMaterials($db);
$object=new BOM($db);
$extrafields = new ExtraFields($db);
$diroutputmassaction=$conf->bom->dir_output . '/temp/massgeneration/'.$user->id;
$hookmanager->initHooks(array('bomnote','globalcard')); // Note that conf->hooks_modules contains array

View File

@ -162,11 +162,12 @@ class BOMs extends DolibarrApi
if ($result)
{
$num = $db->num_rows($result);
$i = 0;
while ($i < $num)
{
$obj = $db->fetch_object($result);
$bom_static = new BOM($db);
if($bom_static->fetch($obj->rowid)) {
if ($bom_static->fetch($obj->rowid)) {
$obj_ret[] = $this->_cleanObjectDatas($bom_static);
}
$i++;

View File

@ -1017,7 +1017,7 @@ $cachecontacts=array();
$cacheusers=array();
// Define theme_datacolor array
$color_file = DOL_DOCUMENT_ROOT."/theme/".$conf->theme."/graph-color.php";
$color_file = DOL_DOCUMENT_ROOT."/theme/".$conf->theme."/theme_vars.inc.php";
if (is_readable($color_file))
{
include_once $color_file;

View File

@ -555,7 +555,7 @@ $cachethirdparties=array();
$cachecontacts=array();
// Define theme_datacolor array
$color_file = DOL_DOCUMENT_ROOT."/theme/".$conf->theme."/graph-color.php";
$color_file = DOL_DOCUMENT_ROOT."/theme/".$conf->theme."/theme_vars.inc.php";
if (is_readable($color_file))
{
include_once $color_file;

View File

@ -599,7 +599,7 @@ $cachecontacts=array();
$cacheusers=array();
// Define theme_datacolor array
$color_file = DOL_DOCUMENT_ROOT."/theme/".$conf->theme."/graph-color.php";
$color_file = DOL_DOCUMENT_ROOT."/theme/".$conf->theme."/theme_vars.inc.php";
if (is_readable($color_file))
{
include_once $color_file;

View File

@ -843,7 +843,7 @@ if (empty($reshook))
// Extrafields
$extrafieldsline = new ExtraFields($db);
$extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line);
$array_options = $extrafieldsline->getOptionalsFromPost($extralabelsline, $predef);
$array_options = $extrafieldsline->getOptionalsFromPost($object->table_element_line, $predef);
// Unset extrafield
if (is_array($extralabelsline)) {
// Get extra fields
@ -1211,7 +1211,7 @@ if (empty($reshook))
// Extrafields
$extrafieldsline = new ExtraFields($db);
$extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line);
$array_options = $extrafieldsline->getOptionalsFromPost($extralabelsline);
$array_options = $extrafieldsline->getOptionalsFromPost($object->table_element_line);
// Unset extrafield
if (is_array($extralabelsline)) {
// Get extra fields

View File

@ -108,7 +108,7 @@ class Propal extends CommonObject
/**
* @deprecated
* @see date_creation
* @see $date_creation
*/
public $datec;
@ -120,7 +120,7 @@ class Propal extends CommonObject
/**
* @deprecated
* @see date_validation
* @see $date_validation
*/
public $datev;
@ -138,7 +138,7 @@ class Propal extends CommonObject
/**
* @deprecated
* @see date
* @see $date
*/
public $datep;
public $date_livraison;
@ -150,17 +150,17 @@ class Propal extends CommonObject
/**
* @deprecated
* @see total_ht
* @see $total_ht
*/
public $price;
/**
* @deprecated
* @see total_tva
* @see $total_tva
*/
public $tva;
/**
* @deprecated
* @see total_ttc
* @see $total_ttc
*/
public $total;
@ -432,7 +432,7 @@ class Propal extends CommonObject
* @param double $pu_ht_devise Unit price in currency
* @param int $fk_remise_except Id discount if line is from a discount
* @return int >0 if OK, <0 if KO
* @see add_product
* @see add_product()
*/
public function addline($desc, $pu_ht, $qty, $txtva, $txlocaltax1 = 0.0, $txlocaltax2 = 0.0, $fk_product = 0, $remise_percent = 0.0, $price_base_type = 'HT', $pu_ttc = 0.0, $info_bits = 0, $type = 0, $rang = -1, $special_code = 0, $fk_parent_line = 0, $fk_fournprice = 0, $pa_ht = 0, $label = '', $date_start = '', $date_end = '', $array_options = 0, $fk_unit = null, $origin = '', $origin_id = 0, $pu_ht_devise = 0, $fk_remise_except = 0)
{
@ -1199,7 +1199,7 @@ class Propal extends CommonObject
*
* @param User $user User that create
* @return int Id of the new object if ok, <0 if ko
* @see create
* @see create()
*/
public function create_from($user)
{
@ -3193,20 +3193,14 @@ class Propal extends CommonObject
$this->labelstatut_short[4]=$langs->trans("PropalStatusBilledShort");
}
$statuttrans='';
if ($statut==self::STATUS_DRAFT) $statuttrans='statut0';
elseif ($statut==self::STATUS_VALIDATED) $statuttrans='statut1';
elseif ($statut==self::STATUS_SIGNED) $statuttrans='statut3';
elseif ($statut==self::STATUS_NOTSIGNED) $statuttrans='statut5';
elseif ($statut==self::STATUS_BILLED) $statuttrans='statut6';
$statusType='';
if ($statut==self::STATUS_DRAFT) $statusType='status0';
elseif ($statut==self::STATUS_VALIDATED) $statusType='status1';
elseif ($statut==self::STATUS_SIGNED) $statusType='status3';
elseif ($statut==self::STATUS_NOTSIGNED) $statusType='status5';
elseif ($statut==self::STATUS_BILLED) $statusType='status6';
if ($mode == 0) return $this->labelstatut[$statut];
elseif ($mode == 1) return $this->labelstatut_short[$statut];
elseif ($mode == 2) return img_picto($this->labelstatut_short[$statut], $statuttrans).' '.$this->labelstatut_short[$statut];
elseif ($mode == 3) return img_picto($this->labelstatut[$statut], $statuttrans);
elseif ($mode == 4) return img_picto($this->labelstatut[$statut], $statuttrans).' '.$this->labelstatut[$statut];
elseif ($mode == 5) return '<span class="hideonsmartphone">'.$this->labelstatut_short[$statut].' </span>'.img_picto($this->labelstatut[$statut], $statuttrans);
elseif ($mode == 6) return '<span class="hideonsmartphone">'.$this->labelstatut[$statut].' </span>'.img_picto($this->labelstatut[$statut], $statuttrans);
return dolGetStatus($this->labelstatut[$statut], $this->labelstatut_short[$statut], '', $statusType, $mode);
}
@ -3655,7 +3649,7 @@ class PropaleLigne extends CommonObjectLine
public $fk_product; // Id produit predefini
/**
* @deprecated
* @see product_type
* @see $product_type
*/
public $fk_product_type;
/**
@ -3683,7 +3677,7 @@ class PropaleLigne extends CommonObjectLine
// 2: ecotaxe
// 3: option line (when qty = 0)
public $info_bits = 0; // Liste d'options cumulables:
public $info_bits = 0; // Some other info:
// Bit 0: 0 si TVA normal - 1 si TVA NPR
// Bit 1: 0 ligne normale - 1 si ligne de remise fixe
@ -3698,14 +3692,14 @@ class PropaleLigne extends CommonObjectLine
public $remise;
/**
* @deprecated
* @see subprice
* @see $subprice
*/
public $price;
// From llx_product
/**
* @deprecated
* @see product_ref
* @see $product_ref
*/
public $ref;
/**
@ -3715,7 +3709,7 @@ class PropaleLigne extends CommonObjectLine
public $product_ref;
/**
* @deprecated
* @see product_label
* @see $product_label
*/
public $libelle;
/**
@ -3731,8 +3725,8 @@ class PropaleLigne extends CommonObjectLine
public $localtax1_tx; // Local tax 1
public $localtax2_tx; // Local tax 2
public $localtax1_type; // Local tax 1 type
public $localtax2_type; // Local tax 2 type
public $localtax1_type; // Local tax 1 type
public $localtax2_type; // Local tax 2 type
public $total_localtax1; // Line total local tax 1
public $total_localtax2; // Line total local tax 2

View File

@ -664,7 +664,7 @@ if (empty($reshook))
// Extrafields
$extrafieldsline = new ExtraFields($db);
$extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line);
$array_options = $extrafieldsline->getOptionalsFromPost($extralabelsline, $predef);
$array_options = $extrafieldsline->getOptionalsFromPost($object->table_element_line, $predef);
// Unset extrafield
if (is_array($extralabelsline)) {
// Get extra fields
@ -1027,7 +1027,7 @@ if (empty($reshook))
// Extrafields Lines
$extrafieldsline = new ExtraFields($db);
$extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line);
$array_options = $extrafieldsline->getOptionalsFromPost($extralabelsline);
$array_options = $extrafieldsline->getOptionalsFromPost($object->table_element_line);
// Unset extrafield POST Data
if (is_array($extralabelsline)) {
foreach ($extralabelsline as $key => $value) {

View File

@ -3425,77 +3425,49 @@ class Commande extends CommonOrder
$billedtext = '';
if (empty($donotshowbilled)) $billedtext .= ($billed?' - '.$langs->trans("Billed"):'');
//print 'x'.$statut.'-'.$billed;
if ($mode == 0)
{
if ($statut==self::STATUS_CANCELED) return $langs->trans('StatusOrderCanceled');
elseif ($statut==self::STATUS_DRAFT) return $langs->trans('StatusOrderDraft');
elseif ($statut==self::STATUS_VALIDATED) return $langs->trans('StatusOrderValidated').$billedtext;
elseif ($statut==self::STATUS_SHIPMENTONPROCESS) return $langs->trans('StatusOrderSentShort').$billedtext;
elseif ($statut==self::STATUS_CLOSED && (! $billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return $langs->trans('StatusOrderToBill');
elseif ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return $langs->trans('StatusOrderProcessed').$billedtext;
elseif ($statut==self::STATUS_CLOSED && (! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return $langs->trans('StatusOrderDelivered');
if ($statut==self::STATUS_CANCELED){
$labelstatut = $langs->trans('StatusOrderCanceled');
$labelstatutShort = $langs->trans('StatusOrderCanceledShort');
$statusType='status5';
}
elseif ($mode == 1)
{
if ($statut==self::STATUS_CANCELED) return $langs->trans('StatusOrderCanceledShort');
elseif ($statut==self::STATUS_DRAFT) return $langs->trans('StatusOrderDraftShort');
elseif ($statut==self::STATUS_VALIDATED) return $langs->trans('StatusOrderValidatedShort').$billedtext;
elseif ($statut==self::STATUS_SHIPMENTONPROCESS) return $langs->trans('StatusOrderSentShort').$billedtext;
elseif ($statut==self::STATUS_CLOSED && (! $billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return $langs->trans('StatusOrderToBillShort');
elseif ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return $langs->trans('StatusOrderProcessed').$billedtext;
elseif ($statut==self::STATUS_CLOSED && (! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return $langs->trans('StatusOrderDelivered');
elseif ($statut==self::STATUS_DRAFT){
$labelstatut = $langs->trans('StatusOrderDraft');
$labelstatutShort = $langs->trans('StatusOrderDraftShort');
$statusType='status0';
}
elseif ($mode == 2)
{
if ($statut==self::STATUS_CANCELED) return img_picto($langs->trans('StatusOrderCanceled'), 'statut5').' '.$langs->trans('StatusOrderCanceledShort');
elseif ($statut==self::STATUS_DRAFT) return img_picto($langs->trans('StatusOrderDraft'), 'statut0').' '.$langs->trans('StatusOrderDraftShort');
elseif ($statut==self::STATUS_VALIDATED) return img_picto($langs->trans('StatusOrderValidated'), 'statut1').' '.$langs->trans('StatusOrderValidatedShort').$billedtext;
elseif ($statut==self::STATUS_SHIPMENTONPROCESS) return img_picto($langs->trans('StatusOrderSent'), 'statut3').' '.$langs->trans('StatusOrderSentShort').$billedtext;
elseif ($statut==self::STATUS_CLOSED && (! $billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderToBill'), 'statut4').' '.$langs->trans('StatusOrderToBillShort');
elseif ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderProcessed').$billedtext, 'statut6').' '.$langs->trans('StatusOrderProcessed').$billedtext;
elseif ($statut==self::STATUS_CLOSED && (! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderDelivered'), 'statut6').' '.$langs->trans('StatusOrderDeliveredShort');
elseif ($statut==self::STATUS_VALIDATED){
$labelstatut = $langs->trans('StatusOrderValidated').$billedtext;
$labelstatutShort = $langs->trans('StatusOrderValidatedShort').$billedtext;
$statusType='status1';
}
elseif ($mode == 3)
{
if ($statut==self::STATUS_CANCELED) return img_picto($langs->trans('StatusOrderCanceled'), 'statut5');
elseif ($statut==self::STATUS_DRAFT) return img_picto($langs->trans('StatusOrderDraft'), 'statut0');
elseif ($statut==self::STATUS_VALIDATED) return img_picto($langs->trans('StatusOrderValidated').$billedtext, 'statut1');
elseif ($statut==self::STATUS_SHIPMENTONPROCESS) return img_picto($langs->trans('StatusOrderSentShort').$billedtext, 'statut3');
elseif ($statut==self::STATUS_CLOSED && (! $billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderToBill'), 'statut4');
elseif ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderProcessed').$billedtext, 'statut6');
elseif ($statut==self::STATUS_CLOSED && (! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderDelivered'), 'statut6');
elseif ($statut==self::STATUS_SHIPMENTONPROCESS){
$labelstatut = $langs->trans('StatusOrderSentShort').$billedtext;
$labelstatutShort = $langs->trans('StatusOrderSentShort').$billedtext;
$statusType='status3';
}
elseif ($mode == 4)
{
if ($statut==self::STATUS_CANCELED) return img_picto($langs->trans('StatusOrderCanceled'), 'statut5').' '.$langs->trans('StatusOrderCanceled');
elseif ($statut==self::STATUS_DRAFT) return img_picto($langs->trans('StatusOrderDraft'), 'statut0').' '.$langs->trans('StatusOrderDraft');
elseif ($statut==self::STATUS_VALIDATED) return img_picto($langs->trans('StatusOrderValidated').$billedtext, 'statut1').' '.$langs->trans('StatusOrderValidated').$billedtext;
elseif ($statut==self::STATUS_SHIPMENTONPROCESS) return img_picto($langs->trans('StatusOrderSentShort').$billedtext, 'statut3').' '.$langs->trans('StatusOrderSent').$billedtext;
elseif ($statut==self::STATUS_CLOSED && (! $billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderToBill'), 'statut4').' '.$langs->trans('StatusOrderToBill');
elseif ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderProcessedShort').$billedtext, 'statut6').' '.$langs->trans('StatusOrderProcessed').$billedtext;
elseif ($statut==self::STATUS_CLOSED && (! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderDelivered'), 'statut6').' '.$langs->trans('StatusOrderDelivered');
elseif ($statut==self::STATUS_CLOSED && (! $billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))){
$labelstatut = $langs->trans('StatusOrderToBill');
$labelstatutShort = $langs->trans('StatusOrderToBillShort');
$statusType='status4';
}
elseif ($mode == 5)
{
if ($statut==self::STATUS_CANCELED) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderCanceledShort').' </span>'.img_picto($langs->trans('StatusOrderCanceled'), 'statut5');
elseif ($statut==self::STATUS_DRAFT) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderDraftShort').' </span>'.img_picto($langs->trans('StatusOrderDraft'), 'statut0');
elseif ($statut==self::STATUS_VALIDATED) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderValidatedShort').$billedtext.' </span>'.img_picto($langs->trans('StatusOrderValidated').$billedtext, 'statut1');
elseif ($statut==self::STATUS_SHIPMENTONPROCESS) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderSentShort').$billedtext.' </span>'.img_picto($langs->trans('StatusOrderSent').$billedtext, 'statut3');
elseif ($statut==self::STATUS_CLOSED && (! $billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderToBillShort').' </span>'.img_picto($langs->trans('StatusOrderToBill'), 'statut4');
elseif ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderProcessedShort').$billedtext.' </span>'.img_picto($langs->trans('StatusOrderProcessed').$billedtext, 'statut6');
elseif ($statut==self::STATUS_CLOSED && (! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderDeliveredShort').' </span>'.img_picto($langs->trans('StatusOrderDelivered'), 'statut6');
elseif ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))){
$labelstatut = $langs->trans('StatusOrderProcessed').$billedtext;
$labelstatutShort = $langs->trans('StatusOrderProcessed').$billedtext;
$statusType='status6';
}
elseif ($mode == 6)
{
if ($statut==self::STATUS_CANCELED) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderCanceled').' </span>'.img_picto($langs->trans('StatusOrderCanceled'), 'statut5');
elseif ($statut==self::STATUS_DRAFT) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderDraft').' </span>'.img_picto($langs->trans('StatusOrderDraft'), 'statut0');
elseif ($statut==self::STATUS_VALIDATED) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderValidated').$billedtext.' </span>'.img_picto($langs->trans('StatusOrderValidated').$billedtext, 'statut1');
elseif ($statut==self::STATUS_SHIPMENTONPROCESS) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderSent').$billedtext.' </span>'.img_picto($langs->trans('StatusOrderSent').$billedtext, 'statut3');
elseif ($statut==self::STATUS_CLOSED && (! $billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderToBill').' </span>'.img_picto($langs->trans('StatusOrderToBill'), 'statut4');
elseif ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderProcessed').$billedtext.' </span>'.img_picto($langs->trans('StatusOrderProcessed').$billedtext, 'statut6');
elseif ($statut==self::STATUS_CLOSED && (! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderDelivered').' </span>'.img_picto($langs->trans('StatusOrderDelivered'), 'statut6');
elseif ($statut==self::STATUS_CLOSED && (! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))){
$labelstatut = $langs->trans('StatusOrderDelivered');
$labelstatutShort = $langs->trans('StatusOrderDelivered');
$statusType='status6';
}
else{
$labelstatut = $langs->trans('Unknown');
$labelstatutShort = '';
$statusType='';
$mode = 0;
}
return dolGetStatus($labelstatut, $labelstatutShort, '', $statusType, $mode);
}

View File

@ -1688,7 +1688,7 @@ if (empty($reshook))
// Extrafields
$extrafieldsline = new ExtraFields($db);
$extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line);
$array_options = $extrafieldsline->getOptionalsFromPost($extralabelsline, $predef);
$array_options = $extrafieldsline->getOptionalsFromPost($object->table_element_line, $predef);
// Unset extrafield
if (is_array($extralabelsline)) {
// Get extra fields
@ -2010,7 +2010,7 @@ if (empty($reshook))
// Extrafields
$extrafieldsline = new ExtraFields($db);
$extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line);
$array_options = $extrafieldsline->getOptionalsFromPost($extralabelsline);
$array_options = $extrafieldsline->getOptionalsFromPost($object->table_element_line);
// Unset extrafield
if (is_array($extralabelsline)) {
// Get extra fields

View File

@ -452,7 +452,7 @@ if (empty($reshook))
// Extrafields
$extrafieldsline = new ExtraFields($db);
$extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line);
$array_options = $extrafieldsline->getOptionalsFromPost($extralabelsline, $predef);
$array_options = $extrafieldsline->getOptionalsFromPost($object->table_element_line, $predef);
// Unset extrafield
if (is_array($extralabelsline))
{
@ -773,7 +773,7 @@ if (empty($reshook))
// Extrafields
$extrafieldsline = new ExtraFields($db);
$extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line);
$array_options = $extrafieldsline->getOptionalsFromPost($extralabelsline);
$array_options = $extrafieldsline->getOptionalsFromPost($object->table_element_line);
$objectline = new FactureLigneRec($db);
if ($objectline->fetch(GETPOST('lineid')))

View File

@ -457,7 +457,7 @@ if (empty($reshook))
// Extrafields
$extrafieldsline = new ExtraFields($db);
$extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line);
$array_options = $extrafieldsline->getOptionalsFromPost($extralabelsline, $predef);
$array_options = $extrafieldsline->getOptionalsFromPost($object->table_element_line, $predef);
// Unset extrafield
if (is_array($extralabelsline)) {
// Get extra fields
@ -737,7 +737,7 @@ if (empty($reshook))
// Extrafields
$extrafieldsline = new ExtraFields($db);
$extralabelsline = $extrafieldsline->fetch_name_optionals_label($objectline->table_element);
$array_options = $extrafieldsline->getOptionalsFromPost($extralabelsline, $predef);
$array_options = $extrafieldsline->getOptionalsFromPost($object->table_element_line, $predef);
$objectline->array_options=$array_options;
// TODO verifier price_min si fk_product et multiprix

View File

@ -469,118 +469,55 @@ abstract class CommonInvoice extends CommonObject
global $langs;
$langs->load('bills');
//print "$paye,$status,$mode,$alreadypaid,$type";
if ($mode == 0) {
$prefix='';
if (! $paye) {
if ($status == 0) return $langs->trans('Bill'.$prefix.'StatusDraft');
elseif (($status == 3 || $status == 2) && $alreadypaid <= 0) return $langs->trans('Bill'.$prefix.'StatusClosedUnpaid');
elseif (($status == 3 || $status == 2) && $alreadypaid > 0) return $langs->trans('Bill'.$prefix.'StatusClosedPaidPartially');
elseif ($alreadypaid <= 0) return $langs->trans('Bill'.$prefix.'StatusNotPaid');
else return $langs->trans('Bill'.$prefix.'StatusStarted');
}
else
{
if ($type == self::TYPE_CREDIT_NOTE) return $langs->trans('Bill'.$prefix.'StatusPaidBackOrConverted'); // credit note
elseif ($type == self::TYPE_DEPOSIT) return $langs->trans('Bill'.$prefix.'StatusConverted'); // deposit invoice
else return $langs->trans('Bill'.$prefix.'StatusPaid');
}
$statusType='status0';
$prefix='Short';
if (! $paye){
if ($status == 0){
$labelstatut = $langs->trans('BillStatusDraft');
$labelstatutShort = $langs->trans('Bill'.$prefix.'StatusDraft');
}
elseif (($status == 3 || $status == 2) && $alreadypaid <= 0){
$labelstatut = $langs->trans('BillStatusClosedUnpaid');
$labelstatutShort = $langs->trans('Bill'.$prefix.'StatusClosedUnpaid');
$statusType='status5';
}
elseif (($status == 3 || $status == 2) && $alreadypaid > 0){
$labelstatut = $langs->trans('BillStatusClosedPaidPartially');
$labelstatutShort = $langs->trans('Bill'.$prefix.'StatusClosedPaidPartially');
$statusType='status9';
}
elseif ($alreadypaid <= 0){
$labelstatut = $langs->trans('BillStatusNotPaid');
$labelstatutShort = $langs->trans('Bill'.$prefix.'StatusNotPaid');
$statusType='status1';
}
else{
$labelstatut = $langs->trans('BillStatusStarted');
$labelstatutShort = $langs->trans('Bill'.$prefix.'StatusStarted');
$statusType='status3';
}
}
elseif ($mode == 1)
else
{
$prefix='Short';
if (! $paye)
{
if ($status == 0) return $langs->trans('Bill'.$prefix.'StatusDraft');
elseif (($status == 3 || $status == 2) && $alreadypaid <= 0) return $langs->trans('Bill'.$prefix.'StatusCanceled');
elseif (($status == 3 || $status == 2) && $alreadypaid > 0) return $langs->trans('Bill'.$prefix.'StatusClosedPaidPartially');
elseif ($alreadypaid <= 0) return $langs->trans('Bill'.$prefix.'StatusNotPaid');
else return $langs->trans('Bill'.$prefix.'StatusStarted');
}
else
{
if ($type == self::TYPE_CREDIT_NOTE) return $langs->trans('Bill'.$prefix.'StatusPaidBackOrConverted');
elseif ($type == self::TYPE_DEPOSIT) return $langs->trans('Bill'.$prefix.'StatusConverted');
else return $langs->trans('Bill'.$prefix.'StatusPaid');
}
}
elseif ($mode == 2)
{
$prefix='Short';
if (! $paye)
{
if ($status == 0) return img_picto($langs->trans('BillStatusDraft'), 'statut0').' '.$langs->trans('Bill'.$prefix.'StatusDraft');
elseif (($status == 3 || $status == 2) && $alreadypaid <= 0) return img_picto($langs->trans('StatusCanceled'), 'statut5').' '.$langs->trans('Bill'.$prefix.'StatusCanceled');
elseif (($status == 3 || $status == 2) && $alreadypaid > 0) return img_picto($langs->trans('BillStatusClosedPaidPartially'), 'statut9').' '.$langs->trans('Bill'.$prefix.'StatusClosedPaidPartially');
elseif ($alreadypaid <= 0) return img_picto($langs->trans('BillStatusNotPaid'), 'statut1').' '.$langs->trans('Bill'.$prefix.'StatusNotPaid');
else return img_picto($langs->trans('BillStatusStarted'), 'statut3').' '.$langs->trans('Bill'.$prefix.'StatusStarted');
}
else
{
if ($type == self::TYPE_CREDIT_NOTE) return img_picto($langs->trans('BillStatusPaidBackOrConverted'), 'statut6').' '.$langs->trans('Bill'.$prefix.'StatusPaidBackOrConverted');
elseif ($type == self::TYPE_DEPOSIT) return img_picto($langs->trans('BillStatusConverted'), 'statut6').' '.$langs->trans('Bill'.$prefix.'StatusConverted');
else return img_picto($langs->trans('BillStatusPaid'), 'statut6').' '.$langs->trans('Bill'.$prefix.'StatusPaid');
}
}
elseif ($mode == 3)
{
$prefix='Short';
if (! $paye)
{
if ($status == 0) return img_picto($langs->trans('BillStatusDraft'), 'statut0');
elseif (($status == 3 || $status == 2) && $alreadypaid <= 0) return img_picto($langs->trans('BillStatusCanceled'), 'statut5');
elseif (($status == 3 || $status == 2) && $alreadypaid > 0) return img_picto($langs->trans('BillStatusClosedPaidPartially'), 'statut9');
elseif ($alreadypaid <= 0) return img_picto($langs->trans('BillStatusNotPaid'), 'statut1');
else return img_picto($langs->trans('BillStatusStarted'), 'statut3');
}
else
{
if ($type == self::TYPE_CREDIT_NOTE) return img_picto($langs->trans('BillStatusPaidBackOrConverted'), 'statut6');
elseif ($type == self::TYPE_DEPOSIT) return img_picto($langs->trans('BillStatusConverted'), 'statut6');
else return img_picto($langs->trans('BillStatusPaid'), 'statut6');
}
}
elseif ($mode == 4)
{
$prefix='';
if (! $paye)
{
if ($status == 0) return img_picto($langs->trans('BillStatusDraft'), 'statut0').' '.$langs->trans('BillStatusDraft');
elseif (($status == 3 || $status == 2) && $alreadypaid <= 0) return img_picto($langs->trans('BillStatusCanceled'), 'statut5').' '.$langs->trans('Bill'.$prefix.'StatusCanceled');
elseif (($status == 3 || $status == 2) && $alreadypaid > 0) return img_picto($langs->trans('BillStatusClosedPaidPartially'), 'statut9').' '.$langs->trans('Bill'.$prefix.'StatusClosedPaidPartially');
elseif ($alreadypaid <= 0) return img_picto($langs->trans('BillStatusNotPaid'), 'statut1').' '.$langs->trans('BillStatusNotPaid');
else return img_picto($langs->trans('BillStatusStarted'), 'statut3').' '.$langs->trans('BillStatusStarted');
}
else
{
if ($type == self::TYPE_CREDIT_NOTE) return img_picto($langs->trans('BillStatusPaidBackOrConverted'), 'statut6').' '.$langs->trans('BillStatusPaidBackOrConverted');
elseif ($type == self::TYPE_DEPOSIT) return img_picto($langs->trans('BillStatusConverted'), 'statut6').' '.$langs->trans('BillStatusConverted');
else return img_picto($langs->trans('BillStatusPaid'), 'statut6').' '.$langs->trans('BillStatusPaid');
}
}
elseif ($mode == 5 || $mode == 6)
{
$prefix='';
if ($mode == 5) $prefix='Short';
if (! $paye)
{
if ($status == 0) return '<span class="xhideonsmartphone">'.$langs->trans('Bill'.$prefix.'StatusDraft').' </span>'.img_picto($langs->trans('BillStatusDraft'), 'statut0');
elseif (($status == 3 || $status == 2) && $alreadypaid <= 0) return '<span class="xhideonsmartphone">'.$langs->trans('Bill'.$prefix.'StatusCanceled').' </span>'.img_picto($langs->trans('BillStatusCanceled'), 'statut5');
elseif (($status == 3 || $status == 2) && $alreadypaid > 0) return '<span class="xhideonsmartphone">'.$langs->trans('Bill'.$prefix.'StatusClosedPaidPartially').' </span>'.img_picto($langs->trans('BillStatusClosedPaidPartially'), 'statut9');
elseif ($alreadypaid <= 0)
{
if ($type == self::TYPE_CREDIT_NOTE) return '<span class="xhideonsmartphone">'.$langs->trans('Bill'.$prefix.'StatusNotRefunded').' </span>'.img_picto($langs->trans('StatusNotRefunded'), 'statut1');
return '<span class="xhideonsmartphone">'.$langs->trans('Bill'.$prefix.'StatusNotPaid').' </span>'.img_picto($langs->trans('BillStatusNotPaid'), 'statut1');
}
else return '<span class="xhideonsmartphone">'.$langs->trans('Bill'.$prefix.'StatusStarted').' </span>'.img_picto($langs->trans('BillStatusStarted'), 'statut3');
}
else
{
if ($type == self::TYPE_CREDIT_NOTE) return '<span class="xhideonsmartphone">'.$langs->trans('Bill'.$prefix.'StatusPaidBackOrConverted').' </span>'.img_picto($langs->trans('BillStatusPaidBackOrConverted'), 'statut6');
elseif ($type == self::TYPE_DEPOSIT) return '<span class="xhideonsmartphone">'.$langs->trans('Bill'.$prefix.'StatusConverted').' </span>'.img_picto($langs->trans('BillStatusConverted'), 'statut6');
else return '<span class="xhideonsmartphone">'.$langs->trans('Bill'.$prefix.'StatusPaid').' </span>'.img_picto($langs->trans('BillStatusPaid'), 'statut6');
}
$statusType='status6';
if ($type == self::TYPE_CREDIT_NOTE){
$labelstatut = $langs->trans('BillStatusPaidBackOrConverted'); // credit note
$labelstatutShort = $langs->trans('Bill'.$prefix.'StatusPaidBackOrConverted'); // credit note
}
elseif ($type == self::TYPE_DEPOSIT){
$labelstatut = $langs->trans('BillStatusConverted'); // deposit invoice
$labelstatutShort = $langs->trans('Bill'.$prefix.'StatusConverted'); // deposit invoice
}
else{
$labelstatut = $langs->trans('BillStatusPaid');
$labelstatutShort = $langs->trans('Bill'.$prefix.'StatusPaid');
}
}
return dolGetStatus($labelstatut, $labelstatutShort, '', $statusType, $mode);
}
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps

View File

@ -399,9 +399,24 @@ abstract class CommonObject
*/
public $location_incoterms;
/**
* @var string The name
*/
public $name;
/**
* @var string The lastname
*/
public $lastname;
/**
* @var string The firstname
*/
public $firstname;
/**
* @var string The civility code, not an integer
*/
public $civility_id;
// Dates

View File

@ -116,7 +116,7 @@ class DolGraph
$this->datacolor = array(array(120,130,150), array(160,160,180), array(190,190,220));
$this->bgcolor = array(235,235,224);
$color_file = DOL_DOCUMENT_ROOT.'/theme/'.$conf->theme.'/graph-color.php';
$color_file = DOL_DOCUMENT_ROOT.'/theme/'.$conf->theme.'/theme_vars.inc.php';
if (is_readable($color_file))
{
include_once $color_file;

View File

@ -611,7 +611,8 @@ class Utils
if (count($arrayversion))
{
$FILENAMEASCII=strtolower($module).'.asciidoc';
$FILENAMEDOC=strtolower($module).'.html'; // TODO Use/text PDF
$FILENAMEDOC=strtolower($module).'.html';
$FILENAMEDOCPDF=strtolower($module).'.pdf';
$dirofmodule = dol_buildpath(strtolower($module), 0);
$dirofmoduledoc = dol_buildpath(strtolower($module), 0).'/doc';
@ -627,8 +628,7 @@ class Utils
return -1;
}
$conf->global->MODULEBUILDER_ASCIIDOCTOR='asciidoctor';
if (empty($conf->global->MODULEBUILDER_ASCIIDOCTOR))
if (empty($conf->global->MODULEBUILDER_ASCIIDOCTOR) && empty($conf->global->MODULEBUILDER_ASCIIDOCTORPDF))
{
$this->error = 'Setup of module ModuleBuilder not complete';
return -1;
@ -690,11 +690,13 @@ class Utils
$currentdir = getcwd();
chdir($dirofmodule);
require_once DOL_DOCUMENT_ROOT.'/core/class/utils.class.php';
$utils = new Utils($db);
// Build HTML doc
$command=$conf->global->MODULEBUILDER_ASCIIDOCTOR.' '.$destfile.' -n -o '.$dirofmoduledoc.'/'.$FILENAMEDOC;
$outfile=$dirofmoduletmp.'/out.tmp';
require_once DOL_DOCUMENT_ROOT.'/core/class/utils.class.php';
$utils = new Utils($db);
$resarray = $utils->executeCLI($command, $outfile);
if ($resarray['result'] != '0')
{
@ -702,6 +704,17 @@ class Utils
}
$result = ($resarray['result'] == 0) ? 1 : 0;
// Build PDF doc
$command=$conf->global->MODULEBUILDER_ASCIIDOCTORPDF.' '.$destfile.' -n -o '.$dirofmoduledoc.'/'.$FILENAMEDOC;
$outfile=$dirofmoduletmp.'/outpdf.tmp';
$resarray = $utils->executeCLI($command, $outfile);
if ($resarray['result'] != '0')
{
$this->error = $resarray['error'].' '.$resarray['output'];
}
$result = ($resarray['result'] == 0) ? 1 : 0;
chdir($currentdir);
}
else

View File

@ -93,7 +93,7 @@ function dol_print_cron_urls()
// Cron launch
print '<div class="div-table-responsive-no-min">';
print '<u>'.$langs->trans("URLToLaunchCronJobs").':</u><br>';
print $langs->trans("URLToLaunchCronJobs").':<br>';
$url=$urlwithroot.'/public/cron/cron_run_jobs.php?'.(empty($conf->global->CRON_KEY)?'':'securitykey='.$conf->global->CRON_KEY.'&').'userlogin='.$user->login;
print img_picto('', 'object_globe.png').' <a href="'.$url.'" target="_blank">'.$url."</a><br>\n";
print ' '.$langs->trans("OrToLaunchASpecificJob").'<br>';
@ -101,10 +101,10 @@ function dol_print_cron_urls()
print img_picto('', 'object_globe.png').' <a href="'.$url.'" target="_blank">'.$url."</a><br>\n";
print '</div>';
print '<br>';
$logintouse = 'firstadmin';
if ($user->admin) $logintouse = $user->login;
print '<u>'.$langs->trans("FileToLaunchCronJobs").':</u><br>';
$file='/scripts/cron/cron_run_jobs.php'.' '.(empty($conf->global->CRON_KEY)?'securitykey':''.$conf->global->CRON_KEY.'').' '.$logintouse.' [cronjobid]';
@ -129,6 +129,6 @@ function dol_print_cron_urls()
print $langs->trans("CronExplainHowToRunWin");
}
}
return 0;
}

View File

@ -2980,16 +2980,20 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $
//if (in_array($picto, array('switch_off', 'switch_on', 'off', 'on')))
if (empty($srconly) && in_array($pictowithoutext, array(
'bank', 'close_title', 'delete', 'edit', 'ellipsis-h', 'filter', 'grip', 'grip_title', 'list', 'listlight', 'off', 'on', 'play', 'playdisabled', 'printer', 'resize',
'note', 'sign-out', 'split', 'switch_off', 'switch_on', 'unlink', 'uparrow', '1downarrow', '1uparrow', '1leftarrow', '1rightarrow',
'note', 'setup', 'sign-out', 'split', 'switch_off', 'switch_on', 'unlink', 'uparrow', '1downarrow', '1uparrow', '1leftarrow', '1rightarrow',
'jabber','skype','twitter','facebook','linkedin'
)
)) {
$fa='fa';
if (! empty($conf->global->MAIN_USE_FONT_AWESOME_5)) $fa='fas';
if (empty($conf->global->MAIN_DISABLE_FONT_AWESOME_5)) $fa='fas';
$fakey = $pictowithoutext;
$facolor = ''; $fasize = '';
$marginleftonlyshort = 2;
if ($pictowithoutext == 'switch_off') {
if ($pictowithoutext == 'setup') {
$fakey = 'fa-cog';
$fasize = '1.4em';
}
elseif ($pictowithoutext == 'switch_off') {
$fakey = 'fa-toggle-off';
$facolor = '#999';
$fasize = '2em';
@ -3021,14 +3025,14 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $
elseif ($pictowithoutext == 'edit') {
$fakey = 'fa-pencil';
$facolor = '#444';
if (! empty($conf->global->MAIN_USE_FONT_AWESOME_5)) $fakey = 'fa-pencil-alt';
if (empty($conf->global->MAIN_DISABLE_FONT_AWESOME_5)) $fakey = 'fa-pencil-alt';
}
elseif ($pictowithoutext == 'filter') {
$fakey = 'fa-'.$pictowithoutext;
}
elseif ($pictowithoutext == 'grip_title' || $pictowithoutext == 'grip') {
$fakey = 'fa-arrows';
if (! empty($conf->global->MAIN_USE_FONT_AWESOME_5)) $fakey = 'fa-arrows-alt';
if (empty($conf->global->MAIN_DISABLE_FONT_AWESOME_5)) $fakey = 'fa-arrows-alt';
}
elseif ($pictowithoutext == 'listlight') {
$fakey = 'fa-download';
@ -3062,7 +3066,7 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $
elseif ($pictowithoutext == 'sign-out') {
$fakey = 'fa-sign-out';
$marginleftonlyshort=0;
if (! empty($conf->global->MAIN_USE_FONT_AWESOME_5)) $fakey = 'fa-sign-out-alt';
if (empty($conf->global->MAIN_DISABLE_FONT_AWESOME_5)) $fakey = 'fa-sign-out-alt';
}
elseif ($pictowithoutext == 'unlink') {
$fakey = 'fa-chain-broken';
@ -3081,7 +3085,7 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $
}
elseif (in_array($pictowithoutext, array('skype', 'twitter', 'facebook', 'linkedin'))) {
$fakey = 'fa-'.$pictowithoutext;
if (! empty($conf->global->MAIN_USE_FONT_AWESOME_5)) $fa = 'fab';
if (empty($conf->global->MAIN_DISABLE_FONT_AWESOME_5)) $fa = 'fab';
}
elseif ($pictowithoutext == 'split') {
$fakey = 'fa-code-fork';
@ -7900,29 +7904,31 @@ function roundUpToNextMultiple($n, $x = 5)
}
/**
* @param string $label label of badge no html : use in alt attribute for accessibility
* @param string $html optional : label of badge with html
* @param string $type type of badge : Primary Secondary Success Danger Warning Info Light Dark status0 status1 status2 status3 status4 status5 status6 status7 status8 status9
* @param string $mode default '' , pill, dot
* @param string $url the url for link
* @param array $params various params for future : recommended rather than adding more fuction arguments
* @return string html badge
* Function dolGetBadge
*
* @param string $label label of badge no html : use in alt attribute for accessibility
* @param string $html optional : label of badge with html
* @param string $type type of badge : Primary Secondary Success Danger Warning Info Light Dark status0 status1 status2 status3 status4 status5 status6 status7 status8 status9
* @param string $mode default '' , pill, dot
* @param string $url the url for link
* @param array $params various params for future : recommended rather than adding more fuction arguments
* @return string Html badge
*/
function dolGetBadge($label, $html = '', $type = 'primary', $mode = '', $url = '', $params = array())
{
$attr=array(
'class'=>'badge'.(!empty($mode)?' badge-'.$mode:'').(!empty($type)?' badge-'.$type:'')
);
if(empty($html)){
$html = $label;
}
if(!empty($url)){
$attr['href'] = $url;
}
if($mode==='dot')
{
$attr['class'].= ' classfortooltip';
@ -7930,7 +7936,7 @@ function dolGetBadge($label, $html = '', $type = 'primary', $mode = '', $url = '
$attr['aria-label'] = $label;
$html='';
}
// Override attr
if(!empty($params['attr']) && is_array($params['attr'])){
foreach($params['attr']as $key => $value){
@ -7939,17 +7945,17 @@ function dolGetBadge($label, $html = '', $type = 'primary', $mode = '', $url = '
}
// TODO: add hook
// escape all attribute
$attr = array_map('dol_escape_htmltag', $attr);
$TCompiledAttr = array();
foreach($attr as $key => $value){
$TCompiledAttr[] = $key.'="'.$value.'"';
}
$compiledAttributes = !empty($TCompiledAttr)?implode(' ', $TCompiledAttr):'';
$tag = !empty($url)?'a':'span';
return '<'.$tag.' '.$compiledAttributes.'>'.$html.'</'.$tag.'>';
@ -7957,14 +7963,16 @@ function dolGetBadge($label, $html = '', $type = 'primary', $mode = '', $url = '
/**
* @param string $statusLabel label of badge no html : use in alt attribute for accessibility
* @param string $statusLabelShort short label of badge no html
* @param string $html optional : label of badge with html
* @param string $statusType status0 status1 status2 status3 status4 status5 status6 status7 status8 status9 : image name or badge name
* @param int $displayMode for retrocompatibility 0=Long label, 1=Short label, 2=Picto + Short label, 3=Picto, 4=Picto + Long label, 5=Short label + Picto, 6=Long label + Picto
* @param string $url the url for link
* @param array $params various params for future : recommended rather than adding more function arguments
* @return string html status
* Function dolGetStatus
*
* @param string $statusLabel Label of badge no html : use in alt attribute for accessibility
* @param string $statusLabelShort Short label of badge no html
* @param string $html Optional : label of badge with html
* @param string $statusType status0 status1 status2 status3 status4 status5 status6 status7 status8 status9 : image name or badge name
* @param int $displayMode 0=Long label, 1=Short label, 2=Picto + Short label, 3=Picto, 4=Picto + Long label, 5=Short label + Picto, 6=Long label + Picto
* @param string $url The url for link
* @param array $params Various params for future : recommended rather than adding more function arguments
* @return string Html status string
*/
function dolGetStatus($statusLabel = '', $statusLabelShort = '', $html = '', $statusType = 'status0', $displayMode = 0, $url = '', $params = array())
{
@ -7983,49 +7991,47 @@ function dolGetStatus($statusLabel = '', $statusLabelShort = '', $html = '', $st
,'status8' => 'statut8'
,'status9' => 'statut9'
);
// TODO : add a hook
if($displayMode==0){
if ($displayMode == 0) {
$return = !empty($html)?$html:$statusLabel;
}
elseif($displayMode===1){
elseif ($displayMode == 1) {
$return = !empty($html)?$html:(!empty($statusLabelShort)?$statusLabelShort:$statusLabel);
}
// use status with images
elseif(empty($conf->global->MAIN_STATUS_USES_CSS)){
elseif (empty($conf->global->MAIN_STATUS_USES_CSS)){
$return = '';
$htmlLabel = '<span class="hideonsmartphone">'.(!empty($html)?$html:$statusLabel).'</span>';
$htmlLabelShort = '<span class="hideonsmartphone">'.(!empty($html)?$html:(!empty($statusLabelShort)?$statusLabelShort:$statusLabel)).'</span>';
if(!empty($statusImg[$statusType])){
$htmlImg = img_picto($statusLabel, $statusImg[$statusType]);
}else{
$htmlImg = img_picto($statusLabel, $statusType);
}
if($displayMode === 2){
if ($displayMode === 2) {
$return = $htmlImg .' '. $htmlLabel;
}
elseif($displayMode === 3){
elseif ($displayMode === 3) {
$return = $htmlImg;
}
elseif($displayMode === 4){
elseif ($displayMode === 4) {
$return = $htmlImg .' '. $htmlLabel;
}
elseif($displayMode === 5){
elseif ($displayMode === 5) {
$return = $htmlLabelShort .' '. $htmlImg;
}
else{ // $displayMode >= 6
else { // $displayMode >= 6
$return = $htmlLabel .' '. $htmlImg;
}
}
// Use new badge
elseif(!empty($conf->global->MAIN_STATUS_USES_CSS) && !empty($displayMode)){
elseif (!empty($conf->global->MAIN_STATUS_USES_CSS) && !empty($displayMode)) {
$statusLabelShort = !empty($statusLabelShort)?$statusLabelShort:$statusLabel;
if($displayMode == 3){
$return = dolGetBadge($statusLabel, '', $statusType, 'dot');
}
@ -8036,30 +8042,30 @@ function dolGetStatus($statusLabel = '', $statusLabelShort = '', $html = '', $st
$return = dolGetBadge($statusLabel, $html, $statusType);
}
}
return $return;
}
/**
* @param string $label label of button no html : use in alt attribute for accessibility $html is not empty
* @param string $html optional : content with html
* @param string $actionType default, delete, danger
* @param string $url the url for link
* @param string $id attribute id of button
* @param int $userRight user action right
* @param array $params various params for future : recommended rather than adding more function arguments
* @return string html button
* Function dolGetButtonAction
*
* @param string $label label of button no html : use in alt attribute for accessibility $html is not empty
* @param string $html optional : content with html
* @param string $actionType default, delete, danger
* @param string $url the url for link
* @param string $id attribute id of button
* @param int $userRight user action right
* @param array $params various params for future : recommended rather than adding more function arguments
* @return string html button
*/
function dolGetButtonAction($label, $html = '', $actionType = 'default', $url = '', $id = '', $userRight = 1, $params = array())
{
$class = 'butAction' ;
if($actionType == 'danger' || $actionType == 'delete'){
$class = 'butActionDelete' ;
}
$attr=array(
'class' => $class
,'href' => empty($url)?'':$url
@ -8070,41 +8076,41 @@ function dolGetButtonAction($label, $html = '', $actionType = 'default', $url =
}else{
$attr['aria-label'] = $label;
}
if(empty($userRight)){
$attr['class'] = 'butActionRefused';
$attr['href'] = '';
}
if(empty($id)){
$attr['id'] = $id;
}
// Override attr
if(!empty($params['attr']) && is_array($params['attr'])){
foreach($params['attr'] as $key => $value){
$attr[$key] = $value;
}
}
if(isset($attr['href']) && empty($attr['href'])){
unset($attr['href']);
}
// TODO : add a hook
// escape all attribute
$attr = array_map('dol_escape_htmltag', $attr);
$TCompiledAttr = array();
foreach($attr as $key => $value){
$TCompiledAttr[] = $key.'="'.$value.'"';
}
$compiledAttributes = !empty($TCompiledAttr)?implode(' ', $TCompiledAttr):'';
$tag = !empty($attr['href'])?'a':'span';
return '<div class="inline-block divButAction"><'.$tag.' '.$compiledAttributes.'>'.$html.'</'.$tag.'></div>';
}

View File

@ -201,10 +201,10 @@ function print_eldy_menu($db, $atarget, $type_user, &$tabMenu, &$menu, $noout =
'position' => 30,
'id' => $id,
'idsel' => 'mrp',
'classname' => $classname = ( $_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "project" ) ? 'class="tmenusel"' : 'class="tmenu"',
'classname' => $classname = ( $_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "mrp" ) ? 'class="tmenusel"' : 'class="tmenu"',
'prefix' => '',
'session' => ( ( $_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "project" ) ? 0 : 1 ),
'loadLangs' => array("projects"),
'session' => ( ( $_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "mrp" ) ? 0 : 1 ),
'loadLangs' => array("mrp"),
'submenus' => array(),
);
@ -433,9 +433,9 @@ function print_eldy_menu($db, $atarget, $type_user, &$tabMenu, &$menu, $noout =
{
$smenu = (object) $smenu;
if( $smenu->enabled )
if ($smenu->enabled)
{
if($langs->session)
if ($smenu->session)
{
$_SESSION['idmenu']='';
}

View File

@ -104,8 +104,8 @@ class mod_barcode_product_standard extends ModeleNumRefBarCode
// Mask parameter
//$texte.= '<tr><td>'.$langs->trans("Mask").' ('.$langs->trans("BarCodeModel").'):</td>';
$texte.= '<tr><td>'.$langs->trans("Mask").':</td>';
$texte.= '<td align="right">'.$form->textwithpicto('<input type="text" class="flat" size="24" name="value1" value="'.(! empty($conf->global->BARCODE_STANDARD_PRODUCT_MASK)?$conf->global->BARCODE_STANDARD_PRODUCT_MASK:'').'"'.$disabled.'>', $tooltip, 1, 1).'</td>';
$texte.= '<td align="left" rowspan="2">&nbsp; <input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button"'.$disabled.'></td>';
$texte.= '<td class="right">'.$form->textwithpicto('<input type="text" class="flat" size="24" name="value1" value="'.(! empty($conf->global->BARCODE_STANDARD_PRODUCT_MASK)?$conf->global->BARCODE_STANDARD_PRODUCT_MASK:'').'"'.$disabled.'>', $tooltip, 1, 1).'</td>';
$texte.= '<td class="left" rowspan="2">&nbsp; <input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button"'.$disabled.'></td>';
$texte.= '</tr>';
$texte.= '</table>';

View File

@ -78,9 +78,9 @@ class mod_bom_advanced extends ModeleNumRefboms
// Parametrage du prefix
$texte.= '<tr><td>'.$langs->trans("Mask").':</td>';
$texte.= '<td align="right">'.$form->textwithpicto('<input type="text" class="flat" size="24" name="maskBom" value="'.$conf->global->BOM_ADVANCED_MASK.'">', $tooltip, 1, 1).'</td>';
$texte.= '<td class="right">'.$form->textwithpicto('<input type="text" class="flat" size="24" name="maskBom" value="'.$conf->global->BOM_ADVANCED_MASK.'">', $tooltip, 1, 1).'</td>';
$texte.= '<td align="left" rowspan="2">&nbsp; <input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button"></td>';
$texte.= '<td class="left" rowspan="2">&nbsp; <input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button"></td>';
$texte.= '</tr>';

View File

@ -72,9 +72,9 @@ class mod_chequereceipt_thyme extends ModeleNumRefChequeReceipts
// Parametrage du prefix
$texte.= '<tr><td>'.$langs->trans("Mask").':</td>';
$texte.= '<td align="right">'.$form->textwithpicto('<input type="text" class="flat" size="24" name="maskchequereceipts" value="'.$conf->global->CHEQUERECEIPTS_THYME_MASK.'">', $tooltip, 1, 1).'</td>';
$texte.= '<td class="right">'.$form->textwithpicto('<input type="text" class="flat" size="24" name="maskchequereceipts" value="'.$conf->global->CHEQUERECEIPTS_THYME_MASK.'">', $tooltip, 1, 1).'</td>';
$texte.= '<td align="left" rowspan="2">&nbsp; <input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button"></td>';
$texte.= '<td class="left" rowspan="2">&nbsp;<input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button"></td>';
$texte.= '</tr>';
@ -91,7 +91,7 @@ class mod_chequereceipt_thyme extends ModeleNumRefChequeReceipts
*/
public function getExample()
{
global $conf,$langs,$mysoc;
global $conf,$langs,$mysoc;
$old_code_client=$mysoc->code_client;
$mysoc->code_client='CCCCCCCCCC';

View File

@ -78,9 +78,9 @@ class mod_commande_saphir extends ModeleNumRefCommandes
// Parametrage du prefix
$texte.= '<tr><td>'.$langs->trans("Mask").':</td>';
$texte.= '<td align="right">'.$form->textwithpicto('<input type="text" class="flat" size="24" name="maskorder" value="'.$conf->global->COMMANDE_SAPHIR_MASK.'">', $tooltip, 1, 1).'</td>';
$texte.= '<td class="right">'.$form->textwithpicto('<input type="text" class="flat" size="24" name="maskorder" value="'.$conf->global->COMMANDE_SAPHIR_MASK.'">', $tooltip, 1, 1).'</td>';
$texte.= '<td align="left" rowspan="2">&nbsp; <input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button"></td>';
$texte.= '<td class="left" rowspan="2">&nbsp; <input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button"></td>';
$texte.= '</tr>';

View File

@ -81,8 +81,8 @@ class mod_contract_magre extends ModelNumRefContracts
$tooltip.=$langs->trans("GenericMaskCodes5");
$texte.= '<tr><td>'.$langs->trans("Mask").':</td>';
$texte.= '<td align="right">'.$form->textwithpicto('<input type="text" class="flat" size="24" name="maskcontract" value="'.$conf->global->CONTRACT_MAGRE_MASK.'">', $tooltip, 1, 1).'</td>';
$texte.= '<td align="left" rowspan="2">&nbsp; <input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button"></td>';
$texte.= '<td class="right">'.$form->textwithpicto('<input type="text" class="flat" size="24" name="maskcontract" value="'.$conf->global->CONTRACT_MAGRE_MASK.'">', $tooltip, 1, 1).'</td>';
$texte.= '<td class="left" rowspan="2">&nbsp; <input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button"></td>';
$texte.= '</tr>';
$texte.= '</table>';
$texte.= '</form>';

View File

@ -79,8 +79,8 @@ class mod_expedition_ribera extends ModelNumRefExpedition
$tooltip.=$langs->trans("GenericMaskCodes5");
$texte.= '<tr><td>'.$langs->trans("Mask").':</td>';
$texte.= '<td align="right">'.$form->textwithpicto('<input type="text" class="flat" size="24" name="maskexpedition" value="'.$conf->global->EXPEDITION_RIBERA_MASK.'">', $tooltip, 1, 1).'</td>';
$texte.= '<td align="left" rowspan="2">&nbsp; <input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button"></td>';
$texte.= '<td class="right">'.$form->textwithpicto('<input type="text" class="flat" size="24" name="maskexpedition" value="'.$conf->global->EXPEDITION_RIBERA_MASK.'">', $tooltip, 1, 1).'</td>';
$texte.= '<td class="left" rowspan="2">&nbsp; <input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button"></td>';
$texte.= '</tr>';
$texte.= '</table>';
$texte.= '</form>';

View File

@ -82,9 +82,9 @@ class mod_expensereport_sand extends ModeleNumRefExpenseReport
// Parametrage du prefix
$texte.= '<tr><td>'.$langs->trans("Mask").':</td>';
$texte.= '<td align="right">'.$form->textwithpicto('<input type="text" class="flat" size="24" name="maskvalue" value="'.$conf->global->EXPENSEREPORT_SAND_MASK.'">', $tooltip, 1, 1).'</td>';
$texte.= '<td class="right">'.$form->textwithpicto('<input type="text" class="flat" size="24" name="maskvalue" value="'.$conf->global->EXPENSEREPORT_SAND_MASK.'">', $tooltip, 1, 1).'</td>';
$texte.= '<td align="left" rowspan="2">&nbsp; <input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button"></td>';
$texte.= '<td class="left" rowspan="2">&nbsp; <input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button"></td>';
$texte.= '</tr>';

View File

@ -76,25 +76,25 @@ class mod_facture_mercure extends ModeleNumRefFactures
// Parametrage du prefix
$texte.= '<tr><td>'.$langs->trans("Mask").' ('.$langs->trans("InvoiceStandard").'):</td>';
$texte.= '<td align="right">'.$form->textwithpicto('<input type="text" class="flat" size="24" name="maskinvoice" value="'.$conf->global->FACTURE_MERCURE_MASK_INVOICE.'">', $tooltip, 1, 1).'</td>';
$texte.= '<td class="right">'.$form->textwithpicto('<input type="text" class="flat" size="24" name="maskinvoice" value="'.$conf->global->FACTURE_MERCURE_MASK_INVOICE.'">', $tooltip, 1, 1).'</td>';
$texte.= '<td align="left" rowspan="3">&nbsp; <input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button"></td>';
$texte.= '<td class="left" rowspan="3">&nbsp; <input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button"></td>';
$texte.= '</tr>';
// Parametrage du prefix des replacement
$texte.= '<tr><td>'.$langs->trans("Mask").' ('.$langs->trans("InvoiceReplacement").'):</td>';
$texte.= '<td align="right">'.$form->textwithpicto('<input type="text" class="flat" size="24" name="maskreplacement" value="'.$conf->global->FACTURE_MERCURE_MASK_REPLACEMENT.'">', $tooltip, 1, 1).'</td>';
$texte.= '<td class="right">'.$form->textwithpicto('<input type="text" class="flat" size="24" name="maskreplacement" value="'.$conf->global->FACTURE_MERCURE_MASK_REPLACEMENT.'">', $tooltip, 1, 1).'</td>';
$texte.= '</tr>';
// Parametrage du prefix des avoirs
$texte.= '<tr><td>'.$langs->trans("Mask").' ('.$langs->trans("InvoiceAvoir").'):</td>';
$texte.= '<td align="right">'.$form->textwithpicto('<input type="text" class="flat" size="24" name="maskcredit" value="'.$conf->global->FACTURE_MERCURE_MASK_CREDIT.'">', $tooltip, 1, 1).'</td>';
$texte.= '<td class="right">'.$form->textwithpicto('<input type="text" class="flat" size="24" name="maskcredit" value="'.$conf->global->FACTURE_MERCURE_MASK_CREDIT.'">', $tooltip, 1, 1).'</td>';
$texte.= '</tr>';
// Parametrage du prefix des acomptes
$texte.= '<tr><td>'.$langs->trans("Mask").' ('.$langs->trans("InvoiceDeposit").'):</td>';
$texte.= '<td align="right">'.$form->textwithpicto('<input type="text" class="flat" size="24" name="maskdeposit" value="'.$conf->global->FACTURE_MERCURE_MASK_DEPOSIT.'">', $tooltip, 1, 1).'</td>';
$texte.= '<td class="right">'.$form->textwithpicto('<input type="text" class="flat" size="24" name="maskdeposit" value="'.$conf->global->FACTURE_MERCURE_MASK_DEPOSIT.'">', $tooltip, 1, 1).'</td>';
$texte.= '</tr>';
$texte.= '</table>';

View File

@ -1,6 +1,6 @@
<?php
/* Copyright (C) 2005-2008 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2015 Regis Houssin <regis.houssin@inodbox.com>
/* Copyright (C) 2005-2008 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2015 Regis Houssin <regis.houssin@inodbox.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
@ -18,33 +18,46 @@
*/
/**
* \file htdocs/core/modules/facture/mod_facture_terre.php
* \ingroup facture
* \brief File containing class for numbering module Terre
* \file htdocs/core/modules/facture/mod_facture_terre.php
* \ingroup facture
* \brief File containing class for numbering module Terre
*/
require_once DOL_DOCUMENT_ROOT .'/core/modules/facture/modules_facture.php';
/** \class mod_facture_terre
* \brief Classe du modele de numerotation de reference de facture Terre
/**
* \class mod_facture_terre
* \brief Classe du modele de numerotation de reference de facture Terre
*/
class mod_facture_terre extends ModeleNumRefFactures
{
/**
* Dolibarr version of the loaded document
* @public string
/**
* Dolibarr version of the loaded document 'development', 'experimental', 'dolibarr'
* @var string
*/
public $version = 'dolibarr'; // 'development', 'experimental', 'dolibarr'
public $version = 'dolibarr';
public $prefixinvoice='FA';
/**
* Prefix for invoices
* @var string
*/
public $prefixinvoice='FA';
public $prefixcreditnote='AV';
/**
* Prefix for credit note
* @var string
*/
public $prefixcreditnote='AV';
public $prefixdeposit='AC';
/**
* Prefix for deposit
* @var string
*/
public $prefixdeposit='AC';
/**
* @var string Error code (or message)
*/
public $error='';
/**
* @var string Error code (or message)
*/
public $error='';
/**
@ -162,7 +175,7 @@ class mod_facture_terre extends ModeleNumRefFactures
/**
* Return next value not used or last value used
*
* @param Societe $objsoc Object third party
* @param Societe $objsoc Object third party
* @param Facture $invoice Object invoice
* @param string $mode 'next' for next value or 'last' for last value
* @return string Value
@ -234,10 +247,10 @@ class mod_facture_terre extends ModeleNumRefFactures
/**
* Return next free value
*
* @param Societe $objsoc Object third party
* @param string $objforref Object for number to search
* @param string $mode 'next' for next value or 'last' for last value
* @return string Next free value
* @param Societe $objsoc Object third party
* @param string $objforref Object for number to search
* @param string $mode 'next' for next value or 'last' for last value
* @return string Next free value
*/
public function getNumRef($objsoc, $objforref, $mode = 'next')
{

View File

@ -117,12 +117,12 @@ print '</div>';
print '</form>';
print '<br><br>';
print '<br><br><br>';
print $langs->trans("UseMenuModuleToolsToAddCronJobs").'<br>';
if (! empty($conf->global->CRON_WARNING_DELAY_HOURS)) print info_admin($langs->trans("WarningCronDelayed", $conf->global->CRON_WARNING_DELAY_HOURS));
if (! empty($conf->global->CRON_WARNING_DELAY_HOURS)) print info_admin($langs->trans("WarningCronDelayed", $conf->global->CRON_WARNING_DELAY_HOURS)).'<br>';
print '<br><br>';
print '<br>';
dol_print_cron_urls();

View File

@ -232,10 +232,10 @@ print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
print '<td>'.$langs->trans("Name").'</td>';
print '<td>'.$langs->trans("Description").'</td>';
print '<td align="center" width="60">'.$langs->trans("Activated").'</td>';
print '<td align="center" width="60">'.$langs->trans("Default").'</td>';
print '<td align="center" width="80">'.$langs->trans("ShortInfo").'</td>';
print '<td align="center" width="80">'.$langs->trans("Preview").'</td>';
print '<td class="center" width="60">'.$langs->trans("Activated").'</td>';
print '<td class="center" width="60">'.$langs->trans("Default").'</td>';
print '<td class="center" width="80">'.$langs->trans("ShortInfo").'</td>';
print '<td class="center" width="80">'.$langs->trans("Preview").'</td>';
print "</tr>\n";
clearstatcache();
@ -272,20 +272,20 @@ if (is_resource($handle))
{
if ($conf->global->DON_ADDON_MODEL == $name)
{
print "<td align=\"center\">\n";
print "<td class=\"center\">\n";
print img_picto($langs->trans("Enabled"), 'switch_on');
print '</td>';
}
else
{
print "<td align=\"center\">\n";
print "<td class=\"center\">\n";
print '<a href="'.$_SERVER["PHP_SELF"].'?action=setdoc&value='.$name.'&amp;scan_dir='.$module->scandir.'&amp;label='.urlencode($module->name).'">'.img_picto($langs->trans("Enabled"), 'switch_on').'</a>';
print '</td>';
}
}
else
{
print "<td align=\"center\">\n";
print "<td class=\"center\">\n";
print '<a href="'.$_SERVER["PHP_SELF"].'?action=set&amp;value='.$name.'&amp;scan_dir='.$module->scandir.'&amp;label='.urlencode($module->name).'">'.img_picto($langs->trans("Disabled"), 'switch_off').'</a>';
print "</td>";
}
@ -293,13 +293,13 @@ if (is_resource($handle))
// Default
if ($conf->global->DON_ADDON_MODEL == "$name")
{
print "<td align=\"center\">";
print "<td class=\"center\">";
print img_picto($langs->trans("Default"), 'on');
print '</td>';
}
else
{
print "<td align=\"center\">";
print "<td class=\"center\">";
print '<a href="'.$_SERVER["PHP_SELF"].'?action=setdoc&amp;value='.$name.'&amp;scan_dir='.$module->scandir.'&amp;label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"), 'off').'</a>';
print '</td>';
}
@ -314,12 +314,12 @@ if (is_resource($handle))
$htmltooltip.='<br><br><u>'.$langs->trans("FeaturesSupported").':</u>';
$htmltooltip.='<br>'.$langs->trans("Logo").': '.yn($module->option_logo, 1, 1);
$htmltooltip.='<br>'.$langs->trans("MultiLanguage").': '.yn($module->option_multilang, 1, 1);
print '<td align="center">';
print '<td class="center">';
print $form->textwithpicto('', $htmltooltip, -1, 0);
print '</td>';
// Preview
print '<td align="center">';
print '<td class="center">';
print '<a href="'.$_SERVER["PHP_SELF"].'?action=specimen&module='.$name.'" target="specimen">'.img_object($langs->trans("Preview"), 'generic').'</a>';
print '</td>';
@ -340,7 +340,7 @@ print load_fiche_titre($langs->trans("Options"), '', '');
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
print '<td>'.$langs->trans("Parameters").'</td>';
print '<td width="60" align="center">'.$langs->trans("Value")."</td>\n";
print '<td width="60" class="center">'.$langs->trans("Value")."</td>\n";
print '<td></td>';
print "</tr>\n";
@ -352,7 +352,7 @@ print '<tr class="oddeven">';
print '<td colspan="2">';
print $form->textwithpicto($langs->trans("DonationUserThirdparties"), $langs->trans("DonationUserThirdpartiesDesc"));
print '</td>';
print '<td align="center">';
print '<td class="center">';
if ($conf->use_javascript_ajax) {
print ajax_constantonoff('DONATION_USE_THIRDPARTIES');
} else {
@ -366,7 +366,7 @@ print '<tr class="oddeven">';
print '<td>';
$label = $langs->trans("AccountAccounting");
print '<label for="DONATION_ACCOUNTINGACCOUNT">' . $label . '</label></td>';
print '<td align="center">';
print '<td class="center">';
if (! empty($conf->accounting->enabled))
{
print $formaccounting->select_account($conf->global->DONATION_ACCOUNTINGACCOUNT, 'DONATION_ACCOUNTINGACCOUNT', 1, '', 1, 1);
@ -375,7 +375,7 @@ else
{
print '<input type="text" size="10" id="DONATION_ACCOUNTINGACCOUNT" name="DONATION_ACCOUNTINGACCOUNT" value="' . $conf->global->DONATION_ACCOUNTINGACCOUNT . '">';
}
print '</td><td align="center">';
print '</td><td class="center">';
print '<input type="submit" class="button" value="'.$langs->trans("Modify").'" />';
print "</td></tr>\n";
print '</form>';
@ -387,7 +387,7 @@ print '<input type="hidden" name="action" value="set_DONATION_MESSAGE" />';
print '<tr class="oddeven"><td colspan="2">';
print $langs->trans("FreeTextOnDonations").' '.img_info($langs->trans("AddCRIfTooLong")).'<br>';
print '<textarea name="DONATION_MESSAGE" class="flat" cols="80">'.$conf->global->DONATION_MESSAGE.'</textarea>';
print '</td><td align="center">';
print '</td><td class="center">';
print '<input type="submit" class="button" value="'.$langs->trans("Modify").'" />';
print "</td></tr>\n";
@ -405,12 +405,12 @@ if (preg_match('/fr/i', $conf->global->MAIN_INFO_SOCIETE_COUNTRY))
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
print '<td>'.$langs->trans("Parameters").'</td>'."\n";
print '<td align="center">'.$langs->trans("Status").'</td>'."\n";
print '<td class="center">'.$langs->trans("Status").'</td>'."\n";
print "</tr>\n";
print '<tr class="oddeven">';
print '<td width="80%">' . $langs->trans("DONATION_ART200") . '</td>';
print '<td align="center">';
print '<td class="center">';
if ($conf->use_javascript_ajax) {
print ajax_constantonoff('DONATION_ART200');
} else {
@ -421,7 +421,7 @@ if ($conf->use_javascript_ajax) {
print '<tr class="oddeven">';
print '<td width="80%">' . $langs->trans("DONATION_ART238") . '</td>';
print '<td align="center">';
print '<td class="center">';
if ($conf->use_javascript_ajax) {
print ajax_constantonoff('DONATION_ART238');
} else {
@ -432,7 +432,7 @@ if ($conf->use_javascript_ajax) {
print '<tr class="oddeven">';
print '<td width="80%">' . $langs->trans("DONATION_ART885") . '</td>';
print '<td align="center">';
print '<td class="center">';
if ($conf->use_javascript_ajax) {
print ajax_constantonoff('DONATION_ART885');
} else {

View File

@ -1,6 +1,6 @@
<?php
/* Copyright (C) 2015 Alexandre Spangaro <aspangaro@open-dsi.fr>
* Copyright (C) 2015 Juanjo Menent <jmenent@2byte.es>
/* Copyright (C) 2015 Alexandre Spangaro <aspangaro@open-dsi.fr>
* Copyright (C) 2015 Juanjo Menent <jmenent@2byte.es>
*
* 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
@ -17,9 +17,9 @@
*/
/**
* \file htdocs/don/admin/donation_extrafields.php
* \ingroup donations
* \brief Page to setup extra fields of donations
* \file htdocs/don/admin/donation_extrafields.php
* \ingroup donations
* \brief Page to setup extra fields of donations
*/
require '../../main.inc.php';

View File

@ -746,7 +746,7 @@ if ($object->socid) {
print '<td>'.$langs->trans("RefPayment").'</td>';
print '<td>'.$langs->trans("Date").'</td>';
print '<td>'.$langs->trans("Type").'</td>';
print '<td align="right">'.$langs->trans("Amount").'</td>';
print '<td class="right">'.$langs->trans("Amount").'</td>';
print '</tr>';
while ($i < $num)
@ -758,7 +758,7 @@ if ($object->socid) {
print '<td>'.dol_print_date($db->jdate($objp->dp), 'day')."</td>\n";
$labeltype=$langs->trans("PaymentType".$objp->type_code)!=("PaymentType".$objp->type_code)?$langs->trans("PaymentType".$objp->type_code):$objp->paiement_type;
print "<td>".$labeltype.' '.$objp->num_payment."</td>\n";
print '<td align="right">'.price($objp->amount)."</td>\n";
print '<td class="right">'.price($objp->amount)."</td>\n";
print "</tr>";
$totalpaid += $objp->amount;
$i++;
@ -766,13 +766,13 @@ if ($object->socid) {
if ($object->paid == 0)
{
print "<tr><td colspan=\"3\" align=\"right\">".$langs->trans("AlreadyPaid")." :</td><td align=\"right\">".price($totalpaid)."</td></tr>\n";
print "<tr><td colspan=\"3\" align=\"right\">".$langs->trans("AmountExpected")." :</td><td align=\"right\">".price($object->amount)."</td></tr>\n";
print "<tr><td colspan=\"3\" class=\"right\">".$langs->trans("AlreadyPaid")." :</td><td class=\"right\">".price($totalpaid)."</td></tr>\n";
print "<tr><td colspan=\"3\" class=\"right\">".$langs->trans("AmountExpected")." :</td><td class=\"right\">".price($object->amount)."</td></tr>\n";
$remaintopay = $object->amount - $totalpaid;
print "<tr><td colspan=\"3\" align=\"right\">".$langs->trans("RemainderToPay")." :</td>";
print '<td align="right"'.($resteapayeraffiche?' class="amountremaintopay"':'').'><b>'.price($remaintopay)."</b></td></tr>\n";
print "<tr><td colspan=\"3\" class=\"right\">".$langs->trans("RemainderToPay")." :</td>";
print '<td class="right"'.($resteapayeraffiche?' class="amountremaintopay"':'').'><b>'.price($remaintopay)."</b></td></tr>\n";
}
print "</table>";
$db->free($resql);

View File

@ -1,6 +1,6 @@
<?php
/* Copyright (C) 2019 Thibault FOUCART <support@ptibogxiv.net>
* Copyright (C) 2019 Laurent Destailleur <eldy@users.sourceforge.net>
/* Copyright (C) 2019 Thibault FOUCART <support@ptibogxiv.net>
* Copyright (C) 2019 Laurent Destailleur <eldy@users.sourceforge.net>
*
* 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
@ -58,7 +58,7 @@ class Donations extends DolibarrApi
*
* @param int $id ID of order
* @return array|mixed data without useless information
*
*
* @throws RestException
*/
public function get($id)
@ -89,13 +89,13 @@ class Donations extends DolibarrApi
*
* Get a list of donations
*
* @param string $sortfield Sort field
* @param string $sortorder Sort order
* @param int $limit Limit for list
* @param int $page Page number
* @param string $thirdparty_ids Thirdparty ids to filter orders of. {@example '1' or '1,2,3'} {@pattern /^[0-9,]*$/i}
* @param string $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.ref:like:'SO-%') and (t.date_creation:<:'20160101')"
* @return array Array of order objects
* @param string $sortfield Sort field
* @param string $sortorder Sort order
* @param int $limit Limit for list
* @param int $page Page number
* @param string $thirdparty_ids Thirdparty ids to filter orders of. {@example '1' or '1,2,3'} {@pattern /^[0-9,]*$/i}
* @param string $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.ref:like:'SO-%') and (t.date_creation:<:'20160101')"
* @return array Array of order objects
*
* @throws RestException
*/
@ -177,8 +177,8 @@ class Donations extends DolibarrApi
public function post($request_data = null)
{
if (! DolibarrApiAccess::$user->rights->don->creer) {
throw new RestException(401, "Insuffisant rights");
}
throw new RestException(401, "Insuffisant rights");
}
// Check mandatory fields
$result = $this->_validate($request_data);

View File

@ -1,7 +1,7 @@
<?php
/* Copyright (C) 2001-2002 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2015 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@inodbox.com>
/* Copyright (C) 2001-2002 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2015 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@inodbox.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
@ -126,7 +126,7 @@ foreach ($listofstatus as $status)
if ($conf->use_javascript_ajax)
{
print '<tr><td align="center" colspan="4">';
print '<tr><td class="center" colspan="4">';
include_once DOL_DOCUMENT_ROOT.'/core/class/dolgraph.class.php';
$dolgraph = new DolGraph();
@ -143,9 +143,9 @@ if ($conf->use_javascript_ajax)
print '<tr class="liste_titre">';
print '<td>'.$langs->trans("Status").'</td>';
print '<td align="right">'.$langs->trans("Number").'</td>';
print '<td align="right">'.$langs->trans("Total").'</td>';
print '<td align="right">'.$langs->trans("Average").'</td>';
print '<td class="right">'.$langs->trans("Number").'</td>';
print '<td class="right">'.$langs->trans("Total").'</td>';
print '<td class="right">'.$langs->trans("Average").'</td>';
print '</tr>';
$total=0;
@ -155,9 +155,9 @@ foreach ($listofstatus as $status)
print '<tr class="oddeven">';
print '<td><a href="list.php?statut='.$status.'">'.$donstatic->LibStatut($status, 4).'</a></td>';
print '<td align="right">'.(! empty($nb[$status])?$nb[$status]:'&nbsp;').'</td>';
print '<td align="right">'.(! empty($nb[$status])?price($somme[$status], 'MT'):'&nbsp;').'</td>';
print '<td align="right">'.(! empty($nb[$status])?price(price2num($somme[$status]/$nb[$status], 'MT')):'&nbsp;').'</td>';
print '<td class="right">'.(! empty($nb[$status])?$nb[$status]:'&nbsp;').'</td>';
print '<td class="right">'.(! empty($nb[$status])?price($somme[$status], 'MT'):'&nbsp;').'</td>';
print '<td class="right">'.(! empty($nb[$status])?price(price2num($somme[$status]/$nb[$status], 'MT')):'&nbsp;').'</td>';
$totalnb += (! empty($nb[$status])?$nb[$status]:0);
$total += (! empty($somme[$status])?$somme[$status]:0);
print "</tr>";
@ -165,9 +165,9 @@ foreach ($listofstatus as $status)
print '<tr class="liste_total">';
print '<td>'.$langs->trans("Total").'</td>';
print '<td align="right">'.$totalnb.'</td>';
print '<td align="right">'.price($total, 'MT').'</td>';
print '<td align="right">'.($totalnb?price(price2num($total/$totalnb, 'MT')):'&nbsp;').'</td>';
print '<td class="right">'.$totalnb.'</td>';
print '<td class="right">'.price($total, 'MT').'</td>';
print '<td class="right">'.($totalnb?price(price2num($total/$totalnb, 'MT')):'&nbsp;').'</td>';
print '</tr>';
print "</table>";
@ -218,14 +218,14 @@ if ($resql)
print dolGetFirstLastname($obj->lastname, $obj->firstname);
print '</td>';
print '<td align="right" class="nobordernopadding">';
print '<td class="right nobordernopadding">';
print price($obj->amount, 1);
print '</td>';
// Date
print '<td align="center">'.dol_print_date($db->jdate($obj->datem), 'day').'</td>';
print '<td class="center">'.dol_print_date($db->jdate($obj->datem), 'day').'</td>';
print '<td align="right">'.$donation_static->LibStatut($obj->fk_statut, 5).'</td>';
print '<td class="right">'.$donation_static->LibStatut($obj->fk_statut, 5).'</td>';
print '</tr>';
$i++;

View File

@ -1,9 +1,9 @@
<?php
/* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2018 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@inodbox.com>
* Copyright (C) 2013 Cédric Salvador <csalvador@gpcsolutions.fr>
* Copyright (C) 2019 Thibault FOUCART <support@ptibogxiv.net>
/* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2018 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@inodbox.com>
* Copyright (C) 2013 Cédric Salvador <csalvador@gpcsolutions.fr>
* Copyright (C) 2019 Thibault FOUCART <support@ptibogxiv.net>
*
* 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
@ -20,9 +20,9 @@
*/
/**
* \file htdocs/don/list.php
* \ingroup donations
* \brief List of donations
* \file htdocs/don/list.php
* \ingroup donations
* \brief List of donations
*/
require '../main.inc.php';
@ -178,18 +178,18 @@ if ($resql)
print '<td class="liste_titre">';
print '<input class="flat" size="10" type="text" name="search_name" value="'.$search_name.'">';
print '</td>';
print '<td class="liste_titre" align="left">';
print '<td class="liste_titre left">';
print '&nbsp;';
print '</td>';
if (! empty($conf->projet->enabled))
{
print '<td class="liste_titre" align="right">';
print '<td class="liste_titre right">';
print '&nbsp;';
print '</td>';
}
print '<td class="liste_titre" align="right"><input name="search_amount" class="flat" type="text" size="8" value="'.$search_amount.'"></td>';
print '<td class="liste_titre" align="right"></td>';
print '<td class="liste_titre" align="right">';
print '<td class="liste_titre right"><input name="search_amount" class="flat" type="text" size="8" value="'.$search_amount.'"></td>';
print '<td class="liste_titre right"></td>';
print '<td class="liste_titre right">';
$searchpicto=$form->showFilterAndCheckAddButtons(0);
print $searchpicto;
print '</td>';
@ -199,14 +199,14 @@ if ($resql)
print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "d.rowid", "", $param, "", $sortfield, $sortorder);
print_liste_field_titre("Company", $_SERVER["PHP_SELF"], "d.societe", "", $param, "", $sortfield, $sortorder);
print_liste_field_titre("Name", $_SERVER["PHP_SELF"], "d.lastname", "", $param, "", $sortfield, $sortorder);
print_liste_field_titre("Date", $_SERVER["PHP_SELF"], "d.datedon", "", $param, 'align="center"', $sortfield, $sortorder);
print_liste_field_titre("Date", $_SERVER["PHP_SELF"], "d.datedon", "", $param, '', $sortfield, $sortorder, 'center ');
if (! empty($conf->projet->enabled))
{
$langs->load("projects");
print_liste_field_titre("Project", $_SERVER["PHP_SELF"], "fk_projet", "", $param, "", $sortfield, $sortorder);
}
print_liste_field_titre("Amount", $_SERVER["PHP_SELF"], "d.amount", "", $param, 'align="right"', $sortfield, $sortorder);
print_liste_field_titre("Status", $_SERVER["PHP_SELF"], "d.fk_statut", "", $param, 'align="right"', $sortfield, $sortorder);
print_liste_field_titre("Amount", $_SERVER["PHP_SELF"], "d.amount", "", $param, '', $sortfield, $sortorder, 'right ');
print_liste_field_titre("Status", $_SERVER["PHP_SELF"], "d.fk_statut", "", $param, '', $sortfield, $sortorder, 'right ');
print_liste_field_titre('');
print "</tr>\n";
@ -222,7 +222,7 @@ if ($resql)
print "<td>".$donationstatic->getNomUrl(1)."</td>\n";
print "<td>".$objp->societe."</td>\n";
print "<td>".$donationstatic->getFullName($langs)."</td>\n";
print '<td align="center">'.dol_print_date($db->jdate($objp->datedon), 'day').'</td>';
print '<td class="center">'.dol_print_date($db->jdate($objp->datedon), 'day').'</td>';
if (! empty($conf->projet->enabled))
{
print "<td>";
@ -238,20 +238,20 @@ if ($resql)
else print '&nbsp;';
print "</td>\n";
}
print '<td align="right">'.price($objp->amount).'</td>';
print '<td align="right">'.$donationstatic->LibStatut($objp->statut, 5).'</td>';
print '<td class="right">'.price($objp->amount).'</td>';
print '<td class="right">'.$donationstatic->LibStatut($objp->statut, 5).'</td>';
print '<td></td>';
print "</tr>";
$i++;
}
print "</table>";
print '</div>';
print "</table>";
print '</div>';
print "</form>\n";
$db->free($resql);
}
else
{
dol_print_error($db);
dol_print_error($db);
}
llxFooter();

View File

@ -1,5 +1,6 @@
<?php
/* Copyright (C) 2015 Alexandre Spangaro <aspangaro@open-dsi.fr>
/* Copyright (C) 2015 Alexandre Spangaro <aspangaro@open-dsi.fr>
* Copyright (C) 2019 Frédéric France <frederic.france@netlogic.fr>
*
* 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
@ -216,9 +217,9 @@ if ($resql)
print '<br><table class="noborder" width="100%">';
print '<tr class="liste_titre">';
print '<td>'.$langs->trans('Donation').'</td>';
print '<td align="right">'.$langs->trans('ExpectedToPay').'</td>';
print '<td align="center">'.$langs->trans('Status').'</td>';
print '<td align="right">'.$langs->trans('PayedByThisPayment').'</td>';
print '<td class="right">'.$langs->trans('ExpectedToPay').'</td>';
print '<td class="center">'.$langs->trans('Status').'</td>';
print '<td class="right">'.$langs->trans('PayedByThisPayment').'</td>';
print "</tr>\n";
if ($num > 0)
@ -234,14 +235,14 @@ if ($resql)
print $don->getNomUrl(1);
print "</td>\n";
// Expected to pay
print '<td align="right">'.price($objp->d_amount).'</td>';
print '<td class="right">'.price($objp->d_amount).'</td>';
// Status
print '<td align="center">'.$don->getLibStatut(4, $objp->amount).'</td>';
print '<td class="center">'.$don->getLibStatut(4, $objp->amount).'</td>';
// Amount payed
print '<td align="right">'.price($objp->amount).'</td>';
print '<td class="right">'.price($objp->amount).'</td>';
print "</tr>\n";
if ($objp->paid == 1) // If at least one invoice is paid, disable delete
{
if ($objp->paid == 1) {
// If at least one invoice is paid, disable delete
$disable_delete = 1;
}
$total = $total + $objp->amount;

View File

@ -35,8 +35,7 @@ $amounts = array();
// Security check
$socid=0;
if ($user->societe_id > 0)
{
if ($user->societe_id > 0) {
$socid = $user->societe_id;
}
@ -244,10 +243,10 @@ if (GETPOST('action', 'aZ09') == 'create')
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
print '<td align="right">'.$langs->trans("Amount").'</td>';
print '<td align="right">'.$langs->trans("AlreadyPaid").'</td>';
print '<td align="right">'.$langs->trans("RemainderToPay").'</td>';
print '<td align="center">'.$langs->trans("Amount").'</td>';
print '<td class="right">'.$langs->trans("Amount").'</td>';
print '<td class="right">'.$langs->trans("AlreadyPaid").'</td>';
print '<td class="right">'.$langs->trans("RemainderToPay").'</td>';
print '<td class="center">'.$langs->trans("Amount").'</td>';
print "</tr>\n";
$total=0;
@ -259,13 +258,13 @@ if (GETPOST('action', 'aZ09') == 'create')
print '<tr class="oddeven">';
print '<td align="right">'.price($objp->amount)."</td>";
print '<td class="right">'.price($objp->amount)."</td>";
print '<td align="right">'.price($sumpaid)."</td>";
print '<td class="right">'.price($sumpaid)."</td>";
print '<td align="right">'.price($objp->amount - $sumpaid)."</td>";
print '<td class="right">'.price($objp->amount - $sumpaid)."</td>";
print '<td align="center">';
print '<td class="center">';
if ($sumpaid < $objp->amount)
{
$namef = "amount_".$objp->id;
@ -287,11 +286,11 @@ if (GETPOST('action', 'aZ09') == 'create')
{
// Print total
print '<tr class="oddeven">';
print '<td colspan="2" align="left">'.$langs->trans("Total").':</td>';
print "<td align=\"right\"><b>".price($total_ttc)."</b></td>";
print "<td align=\"right\"><b>".price($totalrecu)."</b></td>";
print "<td align=\"right\"><b>".price($total_ttc - $totalrecu)."</b></td>";
print '<td align="center">&nbsp;</td>';
print '<td colspan="2" class="left">'.$langs->trans("Total").':</td>';
print "<td class=\"right\"><b>".price($total_ttc)."</b></td>";
print "<td class=\"right\"><b>".price($totalrecu)."</b></td>";
print "<td class=\"right\"><b>".price($total_ttc - $totalrecu)."</b></td>";
print '<td class="center">&nbsp;</td>';
print "</tr>\n";
}

View File

@ -253,7 +253,7 @@ print '<div class="fichecenter"><div class="fichethirdleft">';
arsort($arrayyears);
print $form->selectarray('year', $arrayyears, $year, 0);
print '</td></tr>';
print '<tr><td align="center" colspan="2"><input type="submit" name="submit" class="button" value="'.$langs->trans("Refresh").'"></td></tr>';
print '<tr><td class="center" colspan="2"><input type="submit" name="submit" class="button" value="'.$langs->trans("Refresh").'"></td></tr>';
print '</table>';
print '</form>';
print '<br><br>';
@ -262,10 +262,10 @@ print '<div class="fichecenter"><div class="fichethirdleft">';
print '<div class="div-table-responsive-no-min">';
print '<table class="border" width="100%">';
print '<tr height="24">';
print '<td align="center">'.$langs->trans("Year").'</td>';
print '<td align="center">'.$langs->trans("NbOfSendings").'</td>';
/*print '<td align="center">'.$langs->trans("AmountTotal").'</td>';
print '<td align="center">'.$langs->trans("AmountAverage").'</td>';*/
print '<td class="center">'.$langs->trans("Year").'</td>';
print '<td class="center">'.$langs->trans("NbOfSendings").'</td>';
/*print '<td class="center">'.$langs->trans("AmountTotal").'</td>';
print '<td class="center">'.$langs->trans("AmountAverage").'</td>';*/
print '</tr>';
$oldyear=0;
@ -276,19 +276,19 @@ foreach ($data as $val)
{ // If we have empty year
$oldyear--;
print '<tr height="24">';
print '<td align="center"><a href="'.$_SERVER["PHP_SELF"].'?year='.$oldyear.'&amp;mode='.$mode.'">'.$oldyear.'</a></td>';
print '<td class="center"><a href="'.$_SERVER["PHP_SELF"].'?year='.$oldyear.'&amp;mode='.$mode.'">'.$oldyear.'</a></td>';
print '<td align="right">0</td>';
/*print '<td align="right">0</td>';
print '<td align="right">0</td>';*/
print '<td class="right">0</td>';
/*print '<td class="right">0</td>';
print '<td class="right">0</td>';*/
print '</tr>';
}
print '<tr height="24">';
print '<td align="center"><a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&amp;mode='.$mode.'">'.$year.'</a></td>';
print '<td align="right">'.$val['nb'].'</td>';
/*print '<td align="right">'.price(price2num($val['total'],'MT'),1).'</td>';
print '<td align="right">'.price(price2num($val['avg'],'MT'),1).'</td>';*/
print '<td class="center"><a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&amp;mode='.$mode.'">'.$year.'</a></td>';
print '<td class="right">'.$val['nb'].'</td>';
/*print '<td class="right">'.price(price2num($val['total'],'MT'),1).'</td>';
print '<td class="right">'.price(price2num($val['avg'],'MT'),1).'</td>';*/
print '</tr>';
$oldyear=$year;
}
@ -301,7 +301,7 @@ print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
// Show graphs
print '<table class="border" width="100%"><tr class="pair nohover"><td align="center">';
print '<table class="border" width="100%"><tr class="pair nohover"><td class="center">';
if ($mesg) { print $mesg; }
else {
print $px1->show();
@ -323,8 +323,8 @@ dol_fiche_end();
// TODO USe code similar to commande/stats/index.php instead of this one.
/*
print '<table class="border" width="100%">';
print '<tr><td align="center">'.$langs->trans("Year").'</td>';
print '<td width="40%" align="center">'.$langs->trans("NbOfSendings").'</td></tr>';
print '<tr><td class="center">'.$langs->trans("Year").'</td>';
print '<td width="40%" class="center">'.$langs->trans("NbOfSendings").'</td></tr>';
$sql = "SELECT count(*) as nb, date_format(date_expedition,'%Y') as dm";
$sql.= " FROM ".MAIN_DB_PREFIX."expedition";
@ -343,7 +343,7 @@ if ($resql)
$nbproduct = $row[0];
$year = $row[1];
print "<tr>";
print '<td align="center"><a href="month.php?year='.$year.'">'.$year.'</a></td><td align="center">'.$nbproduct.'</td></tr>';
print '<td class="center"><a href="month.php?year='.$year.'">'.$year.'</a></td><td class="center">'.$nbproduct.'</td></tr>';
$i++;
}
}

View File

@ -33,8 +33,7 @@ $linkedObjectBlock = $GLOBALS['linkedObjectBlock'];
$langs->load("donations");
$total=0; $ilink=0;
foreach($linkedObjectBlock as $key => $objectlink)
{
foreach($linkedObjectBlock as $key => $objectlink) {
$ilink++;
$trclass='oddeven';
@ -43,14 +42,14 @@ foreach($linkedObjectBlock as $key => $objectlink)
<tr class="<?php echo $trclass; ?>">
<td><?php echo $langs->trans("Donation"); ?></td>
<td><?php echo $objectlink->getNomUrl(1); ?></td>
<td align="center"><?php echo $objectlink->ref_client; ?></td>
<td align="center"><?php echo dol_print_date($objectlink->date, 'day'); ?></td>
<td align="right"><?php
<td class="center"><?php echo $objectlink->ref_client; ?></td>
<td class="center"><?php echo dol_print_date($objectlink->date, 'day'); ?></td>
<td class="right"><?php
$total = $total + $objectlink->total_ht;
echo price($objectlink->total_ht);
} ?>
</td>
<td align="right"><?php echo $objectlink->getLibStatut(3); ?></td>
<td class="right"><?php echo $objectlink->getLibStatut(3); ?></td>
</tr>
<?php
@ -60,11 +59,11 @@ if (count($linkedObjectBlock) > 1)
<tr class="liste_total <?php echo (empty($noMoreLinkedObjectBlockAfter)?'liste_sub_total':''); ?>">
<td><?php echo $langs->trans("Total"); ?></td>
<td></td>
<td align="center"></td>
<td align="center"></td>
<td align="right"><?php echo price($total); ?></td>
<td align="right"></td>
<td align="right"></td>
<td class="center"></td>
<td class="center"></td>
<td class="right"><?php echo price($total); ?></td>
<td class="right"></td>
<td class="right"></td>
</tr>
<?php
}

View File

@ -1106,9 +1106,9 @@ if ($action == 'create')
{
print '<tr class="liste_titre">';
print '<td>'.$langs->trans("Description").'</td>';
print '<td align="center">'.$langs->trans("QtyOrdered").'</td>';
print '<td align="center">'.$langs->trans("QtyShipped").'</td>';
print '<td align="center">'.$langs->trans("QtyToShip");
print '<td class="center">'.$langs->trans("QtyOrdered").'</td>';
print '<td class="center">'.$langs->trans("QtyShipped").'</td>';
print '<td class="center">'.$langs->trans("QtyToShip");
if (empty($conf->productbatch->enabled))
{
print ' <br>(<a href="#" id="autofill">'.$langs->trans("Fill").'</a>';
@ -1197,13 +1197,13 @@ if ($action == 'create')
}
// Qty
print '<td align="center">'.$line->qty;
print '<td class="center">'.$line->qty;
print '<input name="qtyasked'.$indiceAsked.'" id="qtyasked'.$indiceAsked.'" type="hidden" value="'.$line->qty.'">';
print '</td>';
$qtyProdCom=$line->qty;
// Qty already shipped
print '<td align="center">';
print '<td class="center">';
$quantityDelivered = $object->expeditions[$line->id];
print $quantityDelivered;
print '<input name="qtydelivered'.$indiceAsked.'" id="qtydelivered'.$indiceAsked.'" type="hidden" value="'.$quantityDelivered.'">';
@ -1232,7 +1232,7 @@ if ($action == 'create')
if (empty($conf->productbatch->enabled) || ! $product->hasbatch())
{
// Quantity to send
print '<td align="center">';
print '<td class="center">';
if ($line->product_type == Product::TYPE_PRODUCT || ! empty($conf->global->STOCK_SUPPORTS_SERVICES))
{
if (GETPOST('qtyl'.$indiceAsked, 'int')) $deliverableQty=GETPOST('qtyl'.$indiceAsked, 'int');
@ -1292,8 +1292,8 @@ if ($action == 'create')
}
print "<tr class=\"oddeven\"><td>&nbsp; &nbsp; &nbsp; ->
<a href=\"".DOL_URL_ROOT."/product/card.php?id=".$value['id']."\">".$value['fullpath']."
</a> (".$value['nb'].")</td><td align=\"center\"> ".$value['nb_total']."</td><td>&nbsp</td><td>&nbsp</td>
<td align=\"center\">".$value['stock']." ".$img."</td></tr>";
</a> (".$value['nb'].")</td><td class=\"center\"> ".$value['nb_total']."</td><td>&nbsp</td><td>&nbsp</td>
<td class=\"center\">".$value['stock']." ".$img."</td></tr>";
}
}
}
@ -1326,7 +1326,7 @@ if ($action == 'create')
$batchStock = + $dbatch->qty; // To get a numeric
$deliverableQty = min($quantityToBeDelivered, $batchStock);
print '<!-- subj='.$subj.'/'.$nbofsuggested.' --><tr '.((($subj + 1) == $nbofsuggested)?$bc[$var]:'').'>';
print '<td colspan="3" ></td><td align="center">';
print '<td colspan="3" ></td><td class="center">';
print '<input name="qtyl'.$indiceAsked.'_'.$subj.'" id="qtyl'.$indiceAsked.'_'.$subj.'" type="text" size="4" value="'.$deliverableQty.'">';
print '</td>';
@ -1357,7 +1357,7 @@ if ($action == 'create')
else
{
print '<!-- Case there is no details of lot at all -->';
print '<tr class="oddeven"><td colspan="3"></td><td align="center">';
print '<tr class="oddeven"><td colspan="3"></td><td class="center">';
print '<input name="qtyl'.$indiceAsked.'_'.$subj.'" id="qtyl'.$indiceAsked.'_'.$subj.'" type="text" size="4" value="0" disabled="disabled"> ';
print '</td>';
@ -1397,7 +1397,7 @@ if ($action == 'create')
$deliverableQty = max(0, $deliverableQty);
// Quantity to send
print '<!-- subj='.$subj.'/'.$nbofsuggested.' --><tr '.((($subj + 1) == $nbofsuggested)?$bc[$var]:'').'>';
print '<td colspan="3" ></td><td align="center"><!-- qty to ship (no lot management for product line indiceAsked='.$indiceAsked.') -->';
print '<td colspan="3" ></td><td class="center"><!-- qty to ship (no lot management for product line indiceAsked='.$indiceAsked.') -->';
if ($line->product_type == Product::TYPE_PRODUCT || ! empty($conf->global->STOCK_SUPPORTS_SERVICES))
{
print '<input name="qtyl'.$indiceAsked.'_'.$subj.'" id="qtyl'.$indiceAsked.'" type="text" size="4" value="'.$deliverableQty.'">';
@ -1450,8 +1450,8 @@ if ($action == 'create')
print '<tr class"oddeven"><td>';
print "&nbsp; &nbsp; &nbsp; ->
<a href=\"".DOL_URL_ROOT."/product/card.php?id=".$value['id']."\">".$value['fullpath']."
</a> (".$value['nb'].")</td><td align=\"center\"> ".$value['nb_total']."</td><td>&nbsp</td><td>&nbsp</td>
<td align=\"center\">".$value['stock']." ".$img."</td>";
</a> (".$value['nb'].")</td><td class=\"center\"> ".$value['nb_total']."</td><td>&nbsp</td><td>&nbsp</td>
<td class=\"center\">".$value['stock']." ".$img."</td>";
print "</tr>";
}
}
@ -1488,7 +1488,7 @@ if ($action == 'create')
$batchStock = + $dbatch->qty; // To get a numeric
$deliverableQty = min($quantityToBeDelivered, $batchStock);
if ($deliverableQty < 0) $deliverableQty = 0;
print '<!-- subj='.$subj.'/'.$nbofsuggested.' --><tr '.((($subj + 1) == $nbofsuggested)?$bc[$var]:'').'><td colspan="3"></td><td align="center">';
print '<!-- subj='.$subj.'/'.$nbofsuggested.' --><tr '.((($subj + 1) == $nbofsuggested)?$bc[$var]:'').'><td colspan="3"></td><td class="center">';
print '<input name="qtyl'.$indiceAsked.'_'.$subj.'" id="qtyl'.$indiceAsked.'_'.$subj.'" type="text" size="4" value="'.$deliverableQty.'">';
print '</td>';
@ -1520,7 +1520,7 @@ if ($action == 'create')
if ($subj == 0) // Line not shown yet, we show it
{
print '<!-- line not shown yet, we show it -->';
print '<tr class="oddeven"><td colspan="3" ></td><td align="center">';
print '<tr class="oddeven"><td colspan="3" ></td><td class="center">';
if ($line->product_type == Product::TYPE_PRODUCT || ! empty($conf->global->STOCK_SUPPORTS_SERVICES))
{
$disabled='';
@ -1782,7 +1782,7 @@ elseif ($id || $ref)
print $langs->trans('DateDeliveryPlanned');
print '</td>';
if ($action != 'editdate_livraison') print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editdate_livraison&amp;id='.$object->id.'">'.img_edit($langs->trans('SetDeliveryDate'), 1).'</a></td>';
if ($action != 'editdate_livraison') print '<td class="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editdate_livraison&amp;id='.$object->id.'">'.img_edit($langs->trans('SetDeliveryDate'), 1).'</a></td>';
print '</tr></table>';
print '</td><td colspan="2">';
if ($action == 'editdate_livraison')
@ -1921,7 +1921,7 @@ elseif ($id || $ref)
print $langs->trans('SendingMethod');
print '</td>';
if ($action != 'editshipping_method_id') print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editshipping_method_id&amp;id='.$object->id.'">'.img_edit($langs->trans('SetSendingMethod'), 1).'</a></td>';
if ($action != 'editshipping_method_id') print '<td class="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editshipping_method_id&amp;id='.$object->id.'">'.img_edit($langs->trans('SetSendingMethod'), 1).'</a></td>';
print '</tr></table>';
print '</td><td colspan="2">';
if ($action == 'editshipping_method_id')
@ -1958,7 +1958,7 @@ elseif ($id || $ref)
print '<tr><td>';
print '<table width="100%" class="nobordernopadding"><tr><td>';
print $langs->trans('IncotermLabel');
print '<td><td align="right">';
print '<td><td class="right">';
if ($user->rights->expedition->creer) print '<a href="'.DOL_URL_ROOT.'/expedition/card.php?id='.$object->id.'&action=editincoterm">'.img_edit().'</a>';
else print '&nbsp;';
print '</td></tr></table>';
@ -2003,22 +2003,22 @@ elseif ($id || $ref)
// Adds a line numbering column
if (! empty($conf->global->MAIN_VIEW_LINE_NUMBER))
{
print '<td width="5" align="center">&nbsp;</td>';
print '<td width="5" class="center">&nbsp;</td>';
}
// Product/Service
print '<td>'.$langs->trans("Products").'</td>';
// Qty
print '<td align="center">'.$langs->trans("QtyOrdered").'</td>';
print '<td class="center">'.$langs->trans("QtyOrdered").'</td>';
if ($origin && $origin_id > 0)
{
print '<td align="center">'.$langs->trans("QtyInOtherShipments").'</td>';
print '<td class="center">'.$langs->trans("QtyInOtherShipments").'</td>';
}
if ($action == 'editline')
{
$editColspan = 3;
if (empty($conf->stock->enabled)) $editColspan--;
if (empty($conf->productbatch->enabled)) $editColspan--;
print '<td align="center" colspan="'. $editColspan . '">';
print '<td class="center" colspan="'. $editColspan . '">';
if ($object->statut <= 1)
{
print $langs->trans("QtyToShip").' - ';
@ -2041,11 +2041,11 @@ elseif ($id || $ref)
{
if ($object->statut <= 1)
{
print '<td align="center">'.$langs->trans("QtyToShip").'</td>';
print '<td class="center">'.$langs->trans("QtyToShip").'</td>';
}
else
{
print '<td align="center">'.$langs->trans("QtyShipped").'</td>';
print '<td class="center">'.$langs->trans("QtyShipped").'</td>';
}
if (! empty($conf->stock->enabled))
{
@ -2057,9 +2057,9 @@ elseif ($id || $ref)
print '<td class="left">'.$langs->trans("Batch").'</td>';
}
}
print '<td align="center">'.$langs->trans("CalculatedWeight").'</td>';
print '<td align="center">'.$langs->trans("CalculatedVolume").'</td>';
//print '<td align="center">'.$langs->trans("Size").'</td>';
print '<td class="center">'.$langs->trans("CalculatedWeight").'</td>';
print '<td class="center">'.$langs->trans("CalculatedVolume").'</td>';
//print '<td class="center">'.$langs->trans("Size").'</td>';
if ($object->statut == 0)
{
print '<td class="linecoledit"></td>';
@ -2135,7 +2135,7 @@ elseif ($id || $ref)
// Adds a line numbering column
if (! empty($conf->global->MAIN_VIEW_LINE_NUMBER))
{
print '<td align="center">'.($i+1).'</td>';
print '<td class="center">'.($i+1).'</td>';
}
// Predefined product or service
@ -2187,12 +2187,12 @@ elseif ($id || $ref)
}
// Qty ordered
print '<td align="center">'.$lines[$i]->qty_asked.'</td>';
print '<td class="center">'.$lines[$i]->qty_asked.'</td>';
// Qty in other shipments (with shipment and warehouse used)
if ($origin && $origin_id > 0)
{
print '<td align="center" class="nowrap">';
print '<td class="center" class="nowrap">';
foreach ($alreadysent as $key => $val)
{
if ($lines[$i]->fk_origin_line == $key)
@ -2223,7 +2223,7 @@ elseif ($id || $ref)
if ($action == 'editline' && $lines[$i]->id == $line_id)
{
// edit mode
print '<td colspan="'.$editColspan.'" align="center"><table class="nobordernopadding">';
print '<td colspan="'.$editColspan.'" class="center"><table class="nobordernopadding">';
if (is_array($lines[$i]->detail_batch) && count($lines[$i]->detail_batch) > 0)
{
print '<!-- case edit 1 -->';
@ -2305,7 +2305,7 @@ elseif ($id || $ref)
else
{
// Qty to ship or shipped
print '<td align="center">'.$lines[$i]->qty_shipped.'</td>';
print '<td class="center">'.$lines[$i]->qty_shipped.'</td>';
// Warehouse source
if (! empty($conf->stock->enabled))
@ -2366,30 +2366,30 @@ elseif ($id || $ref)
}
// Weight
print '<td align="center">';
print '<td class="center">';
if ($lines[$i]->fk_product_type == Product::TYPE_PRODUCT) print $lines[$i]->weight*$lines[$i]->qty_shipped.' '.measuring_units_string($lines[$i]->weight_units, "weight");
else print '&nbsp;';
print '</td>';
// Volume
print '<td align="center">';
print '<td class="center">';
if ($lines[$i]->fk_product_type == Product::TYPE_PRODUCT) print $lines[$i]->volume*$lines[$i]->qty_shipped.' '.measuring_units_string($lines[$i]->volume_units, "volume");
else print '&nbsp;';
print '</td>';
// Size
//print '<td align="center">'.$lines[$i]->volume*$lines[$i]->qty_shipped.' '.measuring_units_string($lines[$i]->volume_units,"volume").'</td>';
//print '<td class="center">'.$lines[$i]->volume*$lines[$i]->qty_shipped.' '.measuring_units_string($lines[$i]->volume_units,"volume").'</td>';
if ($action == 'editline' && $lines[$i]->id == $line_id)
{
print '<td align="center" colspan="2" valign="middle">';
print '<td class="center" colspan="2" valign="middle">';
print '<input type="submit" class="button" id="savelinebutton" name="save" value="' . $langs->trans("Save") . '"><br>';
print '<input type="submit" class="button" id="cancellinebutton" name="cancel" value="' . $langs->trans("Cancel") . '"><br>';
}
elseif ($object->statut == 0)
{
// edit-delete buttons
print '<td class="linecoledit" align="center">';
print '<td class="linecoledit center">';
print '<a href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&amp;action=editline&amp;lineid=' . $lines[$i]->id . '">' . img_edit() . '</a>';
print '</td>';
print '<td class="linecoldelete" width="10">';

View File

@ -1,6 +1,6 @@
<?php
/* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
* Copyright (C) 2016 Laurent Destailleur <eldy@users.sourceforge.net>
/* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
* Copyright (C) 2016 Laurent Destailleur <eldy@users.sourceforge.net>
*
* 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

View File

@ -160,7 +160,7 @@ if ($resql)
print '<td>';
print $companystatic->getNomUrl(1, 'customer', 32);
print '</td>';
print '<td align="right">';
print '<td class="right">';
print $orderstatic->getLibStatut(3);
print '</td>';
print '</tr>';
@ -219,7 +219,7 @@ if ( $resql )
print '<td>';
print $companystatic->getNomUrl(1, 'customer');
print '</td>';
print '<td align="right">';
print '<td class="right">';
print $orderstatic->getLibStatut(3);
print '</td>';
print '</tr>';

View File

@ -338,7 +338,7 @@ if ($resql)
// Thirdparty
if (! empty($arrayfields['s.nom']['checked']))
{
print '<td class="liste_titre" align="left">';
print '<td class="liste_titre left">';
print '<input class="flat" type="text" size="8" name="search_company" value="'.dol_escape_htmltag($search_company).'">';
print '</td>';
}
@ -356,14 +356,14 @@ if ($resql)
// Country
if (! empty($arrayfields['country.code_iso']['checked']))
{
print '<td class="liste_titre" align="center">';
print '<td class="liste_titre center">';
print $form->select_country($search_country, 'search_country', '', 0, 'minwidth100imp maxwidth100');
print '</td>';
}
// Company type
if (! empty($arrayfields['typent.code']['checked']))
{
print '<td class="liste_titre maxwidthonsmartphone" align="center">';
print '<td class="liste_titre maxwidthonsmartphone center">';
print $form->selectarray("search_type_thirdparty", $formcompany->typent_array(0), $search_type_thirdparty, 0, 0, 0, '', 0, 0, 0, (empty($conf->global->SOCIETE_SORT_ON_TYPEENT)?'ASC':$conf->global->SOCIETE_SORT_ON_TYPEENT));
print '</td>';
}
@ -406,19 +406,19 @@ if ($resql)
// Status
if (! empty($arrayfields['e.fk_statut']['checked']))
{
print '<td class="liste_titre maxwidthonsmartphone" align="right">';
print '<td class="liste_titre maxwidthonsmartphone right">';
print $form->selectarray('viewstatut', array('0'=>$langs->trans('StatusSendingDraftShort'),'1'=>$langs->trans('StatusSendingValidatedShort'),'2'=>$langs->trans('StatusSendingProcessedShort')), $viewstatut, 1);
print '</td>';
}
// Status billed
if (! empty($arrayfields['e.billed']['checked']))
{
print '<td class="liste_titre maxwidthonsmartphone" align="center">';
print '<td class="liste_titre maxwidthonsmartphone center">';
print $form->selectyesno('search_billed', $search_billed, 1, 0, 1);
print '</td>';
}
// Action column
print '<td class="liste_titre" align="middle">';
print '<td class="liste_titre middle">';
$searchpicto=$form->showFilterAndCheckAddButtons(0);
print $searchpicto;
print '</td>';
@ -427,15 +427,15 @@ if ($resql)
print '<tr class="liste_titre">';
if (! empty($arrayfields['e.ref']['checked'])) print_liste_field_titre($arrayfields['e.ref']['label'], $_SERVER["PHP_SELF"], "e.ref", "", $param, '', $sortfield, $sortorder);
if (! empty($arrayfields['e.ref_customer']['checked'])) print_liste_field_titre($arrayfields['e.ref_customer']['label'], $_SERVER["PHP_SELF"], "e.ref_customer", "", $param, '', $sortfield, $sortorder);
if (! empty($arrayfields['s.nom']['checked'])) print_liste_field_titre($arrayfields['s.nom']['label'], $_SERVER["PHP_SELF"], "s.nom", "", $param, 'align="left"', $sortfield, $sortorder);
if (! empty($arrayfields['s.nom']['checked'])) print_liste_field_titre($arrayfields['s.nom']['label'], $_SERVER["PHP_SELF"], "s.nom", "", $param, '', $sortfield, $sortorder, 'left ');
if (! empty($arrayfields['s.town']['checked'])) print_liste_field_titre($arrayfields['s.town']['label'], $_SERVER["PHP_SELF"], 's.town', '', $param, '', $sortfield, $sortorder);
if (! empty($arrayfields['s.zip']['checked'])) print_liste_field_titre($arrayfields['s.zip']['label'], $_SERVER["PHP_SELF"], 's.zip', '', $param, '', $sortfield, $sortorder);
if (! empty($arrayfields['state.nom']['checked'])) print_liste_field_titre($arrayfields['state.nom']['label'], $_SERVER["PHP_SELF"], "state.nom", "", $param, '', $sortfield, $sortorder);
if (! empty($arrayfields['country.code_iso']['checked'])) print_liste_field_titre($arrayfields['country.code_iso']['label'], $_SERVER["PHP_SELF"], "country.code_iso", "", $param, 'align="center"', $sortfield, $sortorder);
if (! empty($arrayfields['typent.code']['checked'])) print_liste_field_titre($arrayfields['typent.code']['label'], $_SERVER["PHP_SELF"], "typent.code", "", $param, 'align="center"', $sortfield, $sortorder);
if (! empty($arrayfields['e.date_delivery']['checked'])) print_liste_field_titre($arrayfields['e.date_delivery']['label'], $_SERVER["PHP_SELF"], "e.date_delivery", "", $param, 'align="center"', $sortfield, $sortorder);
if (! empty($arrayfields['country.code_iso']['checked'])) print_liste_field_titre($arrayfields['country.code_iso']['label'], $_SERVER["PHP_SELF"], "country.code_iso", "", $param, '', $sortfield, $sortorder, 'center ');
if (! empty($arrayfields['typent.code']['checked'])) print_liste_field_titre($arrayfields['typent.code']['label'], $_SERVER["PHP_SELF"], "typent.code", "", $param, '', $sortfield, $sortorder, 'center ');
if (! empty($arrayfields['e.date_delivery']['checked'])) print_liste_field_titre($arrayfields['e.date_delivery']['label'], $_SERVER["PHP_SELF"], "e.date_delivery", "", $param, '', $sortfield, $sortorder, 'center ');
if (! empty($arrayfields['l.ref']['checked'])) print_liste_field_titre($arrayfields['l.ref']['label'], $_SERVER["PHP_SELF"], "l.ref", "", $param, '', $sortfield, $sortorder);
if (! empty($arrayfields['l.date_delivery']['checked'])) print_liste_field_titre($arrayfields['l.date_delivery']['label'], $_SERVER["PHP_SELF"], "l.date_delivery", "", $param, 'align="center"', $sortfield, $sortorder);
if (! empty($arrayfields['l.date_delivery']['checked'])) print_liste_field_titre($arrayfields['l.date_delivery']['label'], $_SERVER["PHP_SELF"], "l.date_delivery", "", $param, '', $sortfield, $sortorder, 'center ');
// Extra fields
if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
{
@ -454,11 +454,11 @@ if ($resql)
$parameters=array('arrayfields'=>$arrayfields,'param'=>$param,'sortfield'=>$sortfield,'sortorder'=>$sortorder);
$reshook=$hookmanager->executeHooks('printFieldListTitle', $parameters); // Note that $action and $object may have been modified by hook
print $hookmanager->resPrint;
if (! empty($arrayfields['e.datec']['checked'])) print_liste_field_titre($arrayfields['e.datec']['label'], $_SERVER["PHP_SELF"], "e.date_creation", "", $param, 'align="center" class="nowrap"', $sortfield, $sortorder);
if (! empty($arrayfields['e.tms']['checked'])) print_liste_field_titre($arrayfields['e.tms']['label'], $_SERVER["PHP_SELF"], "e.tms", "", $param, 'align="center" class="nowrap"', $sortfield, $sortorder);
if (! empty($arrayfields['e.fk_statut']['checked'])) print_liste_field_titre($arrayfields['e.fk_statut']['label'], $_SERVER["PHP_SELF"], "e.fk_statut", "", $param, 'align="right"', $sortfield, $sortorder);
if (! empty($arrayfields['e.billed']['checked'])) print_liste_field_titre($arrayfields['e.billed']['label'], $_SERVER["PHP_SELF"], "e.billed", "", $param, 'align="center"', $sortfield, $sortorder);
print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', 'align="center"', $sortfield, $sortorder, 'maxwidthsearch ');
if (! empty($arrayfields['e.datec']['checked'])) print_liste_field_titre($arrayfields['e.datec']['label'], $_SERVER["PHP_SELF"], "e.date_creation", "", $param, '', $sortfield, $sortorder, 'center nowrap ');
if (! empty($arrayfields['e.tms']['checked'])) print_liste_field_titre($arrayfields['e.tms']['label'], $_SERVER["PHP_SELF"], "e.tms", "", $param, '', $sortfield, $sortorder, 'center nowrap ');
if (! empty($arrayfields['e.fk_statut']['checked'])) print_liste_field_titre($arrayfields['e.fk_statut']['label'], $_SERVER["PHP_SELF"], "e.fk_statut", "", $param, '', $sortfield, $sortorder, 'right ');
if (! empty($arrayfields['e.billed']['checked'])) print_liste_field_titre($arrayfields['e.billed']['label'], $_SERVER["PHP_SELF"], "e.billed", "", $param, '', $sortfield, $sortorder, 'center ');
print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ');
print "</tr>\n";
$i=0;
@ -528,7 +528,7 @@ if ($resql)
// Country
if (! empty($arrayfields['country.code_iso']['checked']))
{
print '<td align="center">';
print '<td class="center">';
$tmparray=getCountry($obj->fk_pays, 'all');
print $tmparray['label'];
print '</td>';
@ -537,7 +537,7 @@ if ($resql)
// Type ent
if (! empty($arrayfields['typent.code']['checked']))
{
print '<td align="center">';
print '<td class="center">';
if (count($typenArray)==0) $typenArray = $formcompany->typent_array(1);
print $typenArray[$obj->typent_code];
print '</td>';
@ -547,7 +547,7 @@ if ($resql)
// Date delivery planed
if (! empty($arrayfields['e.date_delivery']['checked']))
{
print '<td align="center">';
print '<td class="center">';
print dol_print_date($db->jdate($obj->date_livraison), "day");
/*$now = time();
if ( ($now - $db->jdate($obj->date_expedition)) > $conf->warnings->lim && $obj->statutid == 1 )
@ -573,7 +573,7 @@ if ($resql)
if (! empty($arrayfields['l.date_delivery']['checked']))
{
// Date received
print '<td align="center">';
print '<td class="center">';
print dol_print_date($db->jdate($obj->date_reception), "day");
print '</td>'."\n";
}
@ -588,7 +588,7 @@ if ($resql)
// Date creation
if (! empty($arrayfields['e.datec']['checked']))
{
print '<td align="center" class="nowrap">';
print '<td class="center nowrap">';
print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser');
print '</td>';
if (! $i) $totalarray['nbfield']++;
@ -596,7 +596,7 @@ if ($resql)
// Date modification
if (! empty($arrayfields['e.tms']['checked']))
{
print '<td align="center" class="nowrap">';
print '<td class="center nowrap">';
print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser');
print '</td>';
if (! $i) $totalarray['nbfield']++;
@ -604,13 +604,13 @@ if ($resql)
// Status
if (! empty($arrayfields['e.fk_statut']['checked']))
{
print '<td align="right" class="nowrap">'.$shipment->LibStatut($obj->fk_statut, 5).'</td>';
print '<td class="right nowrap">'.$shipment->LibStatut($obj->fk_statut, 5).'</td>';
if (! $i) $totalarray['nbfield']++;
}
// Billed
if (! empty($arrayfields['e.billed']['checked']))
{
print '<td align="center">'.yn($obj->billed).'</td>';
print '<td class="center">'.yn($obj->billed).'</td>';
if (! $i) $totalarray['nbfield']++;
}
@ -630,7 +630,7 @@ if ($resql)
}
else
{
dol_print_error($db);
dol_print_error($db);
}
// End of page

View File

@ -362,7 +362,7 @@ if ($id > 0 || ! empty($ref))
print $langs->trans('DateDeliveryPlanned');
print '</td>';
if ($action != 'editdate_livraison') print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editdate_livraison&amp;id='.$object->id.'">'.img_edit($langs->trans('SetDeliveryDate'), 1).'</a></td>';
if ($action != 'editdate_livraison') print '<td class="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editdate_livraison&amp;id='.$object->id.'">'.img_edit($langs->trans('SetDeliveryDate'), 1).'</a></td>';
print '</tr></table>';
print '</td><td colspan="2">';
if ($action == 'editdate_livraison')
@ -394,7 +394,7 @@ if ($id > 0 || ! empty($ref))
print $langs->trans('SendingMethod');
print '</td>';
if ($action != 'editshippingmethod' && $user->rights->expedition->creer)
print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editshippingmethod&amp;id='.$object->id.'">'.img_edit($langs->trans('SetShippingMode'), 1).'</a></td>';
print '<td class="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editshippingmethod&amp;id='.$object->id.'">'.img_edit($langs->trans('SetShippingMode'), 1).'</a></td>';
print '</tr></table>';
print '</td><td colspan="2">';
if ($action == 'editshippingmethod') {
@ -414,7 +414,7 @@ if ($id > 0 || ! empty($ref))
print $langs->trans('Warehouse');
print '</td>';
if ($action != 'editwarehouse' && $user->rights->commande->creer)
print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editwarehouse&amp;id='.$object->id.'">'.img_edit($langs->trans('SetWarehouse'), 1).'</a></td>';
print '<td class="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editwarehouse&amp;id='.$object->id.'">'.img_edit($langs->trans('SetWarehouse'), 1).'</a></td>';
print '</tr></table>';
print '</td><td colspan="2">';
if ($action == 'editwarehouse') {
@ -433,7 +433,7 @@ if ($id > 0 || ! empty($ref))
print $langs->trans('PaymentConditionsShort');
print '</td>';
if ($action != 'editconditions' && ! empty($object->brouillon)) print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editconditions&amp;id='.$object->id.'">'.img_edit($langs->trans('SetConditions'),1).'</a></td>';
if ($action != 'editconditions' && ! empty($object->brouillon)) print '<td class="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editconditions&amp;id='.$object->id.'">'.img_edit($langs->trans('SetConditions'),1).'</a></td>';
print '</tr></table>';
print '</td><td colspan="2">';
if ($action == 'editconditions')
@ -451,7 +451,7 @@ if ($id > 0 || ! empty($ref))
print '<table class="nobordernopadding" width="100%"><tr><td>';
print $langs->trans('PaymentMode');
print '</td>';
if ($action != 'editmode' && ! empty($object->brouillon)) print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editmode&amp;id='.$object->id.'">'.img_edit($langs->trans('SetMode'),1).'</a></td>';
if ($action != 'editmode' && ! empty($object->brouillon)) print '<td class="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editmode&amp;id='.$object->id.'">'.img_edit($langs->trans('SetMode'),1).'</a></td>';
print '</tr></table>';
print '</td><td colspan="2">';
if ($action == 'editmode')
@ -470,7 +470,7 @@ if ($id > 0 || ! empty($ref))
print $langs->trans('AvailabilityPeriod');
print '</td>';
if ($action != 'editavailability')
print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editavailability&amp;id=' . $object->id . '">' . img_edit($langs->trans('SetAvailability'), 1) . '</a></td>';
print '<td class="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editavailability&amp;id=' . $object->id . '">' . img_edit($langs->trans('SetAvailability'), 1) . '</a></td>';
print '</tr></table>';
print '</td><td colspan="3">';
if ($action == 'editavailability') {
@ -486,7 +486,7 @@ if ($id > 0 || ! empty($ref))
print $langs->trans('Source');
print '</td>';
if ($action != 'editdemandreason')
print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editdemandreason&amp;id=' . $object->id . '">' . img_edit($langs->trans('SetDemandReason'), 1) . '</a></td>';
print '<td class="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editdemandreason&amp;id=' . $object->id . '">' . img_edit($langs->trans('SetDemandReason'), 1) . '</a></td>';
print '</tr></table>';
print '</td><td colspan="3">';
if ($action == 'editdemandreason') {
@ -518,7 +518,7 @@ if ($id > 0 || ! empty($ref))
print '<tr><td>';
print '<table width="100%" class="nobordernopadding"><tr><td>';
print $langs->trans('IncotermLabel');
print '<td><td align="right">';
print '<td><td class="right">';
if ($user->rights->commande->creer) print '<a href="'.$_SERVER['PHP_SELF'].'/expedition/shipment.php?id='.$object->id.'&action=editincoterm">'.img_edit().'</a>';
else print '&nbsp;';
print '</td></tr></table>';
@ -628,12 +628,12 @@ if ($id > 0 || ! empty($ref))
print '<tr class="liste_titre">';
print '<td>'.$langs->trans("Description").'</td>';
print '<td align="center">'.$langs->trans("QtyOrdered").'</td>';
print '<td align="center">'.$langs->trans("QtyShipped").'</td>';
print '<td align="center">'.$langs->trans("KeepToShip").'</td>';
print '<td class="center">'.$langs->trans("QtyOrdered").'</td>';
print '<td class="center">'.$langs->trans("QtyShipped").'</td>';
print '<td class="center">'.$langs->trans("KeepToShip").'</td>';
if (! empty($conf->stock->enabled))
{
print '<td align="center">'.$langs->trans("RealStock").'</td>';
print '<td class="center">'.$langs->trans("RealStock").'</td>';
}
else
{
@ -730,18 +730,18 @@ if ($id > 0 || ! empty($ref))
}
// Qty ordered
print '<td align="center">' . $objp->qty . '</td>';
print '<td class="center">' . $objp->qty . '</td>';
// Qty already shipped
$qtyProdCom=$objp->qty;
print '<td align="center">';
print '<td class="center">';
// Nb of sending products for this line of order
$qtyAlreadyShipped = (! empty($object->expeditions[$objp->rowid])?$object->expeditions[$objp->rowid]:0);
print $qtyAlreadyShipped;
print '</td>';
// Qty remains to ship
print '<td align="center">';
print '<td class="center">';
if ($type == 0 || ! empty($conf->global->STOCK_SUPPORTS_SERVICES))
{
$toBeShipped[$objp->fk_product] = $objp->qty - $qtyAlreadyShipped;
@ -763,7 +763,7 @@ if ($id > 0 || ! empty($ref))
if ($objp->fk_product > 0 && ($type == Product::TYPE_PRODUCT || ! empty($conf->global->STOCK_SUPPORTS_SERVICES)) && ! empty($conf->stock->enabled))
{
print '<td align="center">';
print '<td class="center">';
print $product->stock_reel;
if ($product->stock_reel < $toBeShipped[$objp->fk_product])
{
@ -797,10 +797,10 @@ if ($id > 0 || ! empty($ref))
$img=img_warning($langs->trans("StockTooLow"));
}
print '<tr class="oddeven"><td>&nbsp; &nbsp; &nbsp; -> <a href="'.DOL_URL_ROOT."/product/card.php?id=".$value['id'].'">'.$value['fullpath'].'</a> ('.$value['nb'].')</td>';
print '<td align="center"> '.$value['nb_total'].'</td>';
print '<td class="center"> '.$value['nb_total'].'</td>';
print '<td>&nbsp</td>';
print '<td>&nbsp</td>';
print '<td align="center">'.$value['stock'].' '.$img.'</td></tr>'."\n";
print '<td class="center">'.$value['stock'].' '.$img.'</td></tr>'."\n";
}
}
}
@ -892,7 +892,7 @@ if ($id > 0 || ! empty($ref))
}
//print '</td>';
}
//print '<td align="center">';
//print '<td class="center">';
print '<input type="submit" class="butAction" named="save" value="'.$langs->trans("CreateShipment").'">';
if ($toBeShippedTotal <= 0)
{

View File

@ -253,7 +253,7 @@ print '<div class="fichecenter"><div class="fichethirdleft">';
arsort($arrayyears);
print $form->selectarray('year', $arrayyears, $year, 0);
print '</td></tr>';
print '<tr><td align="center" colspan="2"><input type="submit" name="submit" class="button" value="'.$langs->trans("Refresh").'"></td></tr>';
print '<tr><td class="center" colspan="2"><input type="submit" name="submit" class="button" value="'.$langs->trans("Refresh").'"></td></tr>';
print '</table>';
print '</form>';
print '<br><br>';
@ -263,10 +263,10 @@ print '<div class="fichecenter"><div class="fichethirdleft">';
print '<div class="div-table-responsive-no-min">';
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre" height="24">';
print '<td align="center">'.$langs->trans("Year").'</td>';
print '<td align="right">'.$langs->trans("NbOfSendings").'</td>';
/*print '<td align="center">'.$langs->trans("AmountTotal").'</td>';
print '<td align="center">'.$langs->trans("AmountAverage").'</td>';*/
print '<td class="center">'.$langs->trans("Year").'</td>';
print '<td class="right">'.$langs->trans("NbOfSendings").'</td>';
/*print '<td class="center">'.$langs->trans("AmountTotal").'</td>';
print '<td class="center">'.$langs->trans("AmountAverage").'</td>';*/
print '</tr>';
$oldyear=0;
@ -279,22 +279,22 @@ foreach ($data as $val)
print '<tr class="oddeven" height="24">';
print '<td align="center"><a href="'.$_SERVER["PHP_SELF"].'?year='.$oldyear.'&amp;mode='.$mode.'">'.$oldyear.'</a></td>';
print '<td class="center"><a href="'.$_SERVER["PHP_SELF"].'?year='.$oldyear.'&amp;mode='.$mode.'">'.$oldyear.'</a></td>';
print '<td align="right">0</td>';
/*print '<td align="right">0</td>';
print '<td align="right">0</td>';*/
print '<td class="right">0</td>';
/*print '<td class="right">0</td>';
print '<td class="right">0</td>';*/
print '</tr>';
}
print '<tr class="oddeven" height="24">';
print '<td align="center">';
print '<td class="center">';
if ($year) print '<a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&amp;mode='.$mode.'">'.$year.'</a>';
else print $langs->trans("ValidationDateNotDefinedEvenIfShipmentValidated");
print '</td>';
print '<td align="right">'.$val['nb'].'</td>';
/*print '<td align="right">'.price(price2num($val['total'],'MT'),1).'</td>';
print '<td align="right">'.price(price2num($val['avg'],'MT'),1).'</td>';*/
print '<td class="right">'.$val['nb'].'</td>';
/*print '<td class="right">'.price(price2num($val['total'],'MT'),1).'</td>';
print '<td class="right">'.price(price2num($val['avg'],'MT'),1).'</td>';*/
print '</tr>';
$oldyear=$year;
}
@ -307,7 +307,7 @@ print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
// Show graphs
print '<table class="border" width="100%"><tr class="pair nohover"><td align="center">';
print '<table class="border" width="100%"><tr class="pair nohover"><td class="center">';
if ($mesg) { print $mesg; }
else {
print $px1->show();
@ -329,8 +329,8 @@ dol_fiche_end();
// TODO USe code similar to commande/stats/index.php instead of this one.
/*
print '<table class="border" width="100%">';
print '<tr><td align="center">'.$langs->trans("Year").'</td>';
print '<td width="40%" align="center">'.$langs->trans("NbOfSendings").'</td></tr>';
print '<tr><td class="center">'.$langs->trans("Year").'</td>';
print '<td width="40%" class="center">'.$langs->trans("NbOfSendings").'</td></tr>';
$sql = "SELECT count(*) as nb, date_format(date_expedition,'%Y') as dm";
$sql.= " FROM ".MAIN_DB_PREFIX."expedition";
@ -349,7 +349,7 @@ if ($resql)
$nbproduct = $row[0];
$year = $row[1];
print "<tr>";
print '<td align="center"><a href="month.php?year='.$year.'">'.$year.'</a></td><td align="center">'.$nbproduct.'</td></tr>';
print '<td class="center"><a href="month.php?year='.$year.'">'.$year.'</a></td><td class="center">'.$nbproduct.'</td></tr>';
$i++;
}
}

View File

@ -1,6 +1,6 @@
<?php
/* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2009 Laurent Destailleur <eldy@users.sourceforge.net>
/* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2009 Laurent Destailleur <eldy@users.sourceforge.net>
*
* 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
@ -53,22 +53,21 @@ $fileurl = DOL_URL_ROOT.'/viewimage.php?modulepart=expeditionstats&file=expediti
$px = new DolGraph();
$mesg = $px->isGraphKo();
if (! $mesg)
{
if (! $mesg) {
$px->SetData($data);
$px->SetMaxValue($px->GetCeilMaxValue());
$px->SetWidth($WIDTH);
$px->SetHeight($HEIGHT);
$px->SetYLabel($langs->trans("NbOfOrders"));
$px->SetYLabel($langs->trans("NbOfSendings"));
$px->SetShading(3);
$px->SetHorizTickIncrement(1);
$px->SetPrecisionY(0);
$px->SetHorizTickIncrement(1);
$px->SetPrecisionY(0);
$px->draw($filename, $fileurl);
}
print '<table class="border" width="100%">';
print '<tr><td align="center">Nombre d expedition par mois</td>';
print '<td align="center">';
print '<tr><td class="center">'.$langs->trans("NbOfSendingsByMonth").'</td>';
print '<td class="center">';
print $px->show();
print '</td></tr>';
print '</table>';

View File

@ -1,6 +1,6 @@
<?php
/* Copyright (C) 2012 Regis Houssin <regis.houssin@inodbox.com>
* Copyright (C) 2014 Marcos García <marcosgdf@gmail.com>
/* Copyright (C) 2012 Regis Houssin <regis.houssin@inodbox.com>
* Copyright (C) 2014 Marcos García <marcosgdf@gmail.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
@ -49,14 +49,14 @@ foreach($linkedObjectBlock as $key => $objectlink)
<td><?php echo $langs->trans("Shipment"); ?></td>
<td><?php echo $objectlink->getNomUrl(1); ?></td>
<td></td>
<td align="center"><?php echo dol_print_date($objectlink->date_delivery, 'day'); ?></td>
<td align="right"><?php
<td class="center"><?php echo dol_print_date($objectlink->date_delivery, 'day'); ?></td>
<td class="right"><?php
if ($user->rights->expedition->lire) {
$total = $total + $objectlink->total_ht;
echo price($objectlink->total_ht);
} ?></td>
<td align="right"><?php echo $objectlink->getLibStatut(3); ?></td>
<td align="right">
<td class="right"><?php echo $objectlink->getLibStatut(3); ?></td>
<td class="right">
<?php
// For now, shipments must stay linked to order, so link is not deletable
if($object->element != 'commande') {
@ -68,17 +68,16 @@ foreach($linkedObjectBlock as $key => $objectlink)
</tr>
<?php
}
if (count($linkedObjectBlock) > 1)
{
if (count($linkedObjectBlock) > 1) {
?>
<tr class="liste_total <?php echo (empty($noMoreLinkedObjectBlockAfter)?'liste_sub_total':''); ?>">
<td><?php echo $langs->trans("Total"); ?></td>
<td></td>
<td align="center"></td>
<td align="center"></td>
<td align="right"><?php echo price($total); ?></td>
<td align="right"></td>
<td align="right"></td>
<td class="center"></td>
<td class="center"></td>
<td class="right"><?php echo price($total); ?></td>
<td class="right"></td>
<td class="right"></td>
</tr>
<?php
}

View File

@ -878,7 +878,7 @@ class Export
print '<td>'.str_replace(',', ' , ', $filter['value']).'</td>';
}
// suppression de l'export
print '<td align="right">';
print '<td class="right">';
print '<a href="'.$_SERVER["PHP_SELF"].'?action=deleteprof&id='.$obj->rowid.'">';
print img_delete();
print '</a>';

View File

@ -463,7 +463,7 @@ if ($step == 1 || ! $datatoexport)
//print $value.'-'.$icon.'-'.$label."<br>";
print img_object($objexport->array_export_module[$key]->getName(), $icon).' ';
print $label;
print '</td><td align="right">';
print '</td><td class="right">';
if ($objexport->array_export_perms[$key])
{
print '<a href="'.DOL_URL_ROOT.'/exports/export.php?step=2&datatoexport='.$objexport->array_export_code[$key].'">'.img_picto($langs->trans("NewExport"), 'filenew').'</a>';
@ -623,7 +623,7 @@ if ($step == 2 && $datatoexport)
{
// Selected fields
print '<td>&nbsp;</td>';
print '<td align="center"><a class="reposition" href="'.$_SERVER["PHP_SELF"].'?step=2&datatoexport='.$datatoexport.'&action=unselectfield&field='.$code.'">'.img_left('default', 0, 'style="max-width: 20px"').'</a></td>';
print '<td class="center"><a class="reposition" href="'.$_SERVER["PHP_SELF"].'?step=2&datatoexport='.$datatoexport.'&action=unselectfield&field='.$code.'">'.img_left('default', 0, 'style="max-width: 20px"').'</a></td>';
print '<td>';
//print $text.'-'.$htmltext."<br>";
print $form->textwithpicto($text, $htmltext);
@ -638,7 +638,7 @@ if ($step == 2 && $datatoexport)
print $form->textwithpicto($text, $htmltext);
//print ' ('.$code.')';
print '</td>';
print '<td align="center"><a class="reposition" href="'.$_SERVER["PHP_SELF"].'?step=2&datatoexport='.$datatoexport.'&action=selectfield&field='.$code.'">'.img_right('default', 0, 'style="max-width: 20px"').'</a></td>';
print '<td class="center"><a class="reposition" href="'.$_SERVER["PHP_SELF"].'?step=2&datatoexport='.$datatoexport.'&action=selectfield&field='.$code.'">'.img_right('default', 0, 'style="max-width: 20px"').'</a></td>';
print '<td>&nbsp;</td>';
}
@ -751,7 +751,7 @@ if ($step == 3 && $datatoexport)
print '<tr class="liste_titre">';
print '<td>'.$langs->trans("Entities").'</td>';
//print '<td>'.$langs->trans("ExportableFields").'</td>';
//print '<td align="center"></td>';
//print '<td class="center"></td>';
print '<td>'.$langs->trans("ExportableFields").'</td>';
print '<td width="25%">'.$langs->trans("FilteredFieldsValues").'</td>';
print '</tr>';
@ -955,7 +955,7 @@ if ($step == 4 && $datatoexport)
print '<tr class="liste_titre">';
print '<td>'.$langs->trans("Entities").'</td>';
print '<td>'.$langs->trans("ExportedFields").'</td>';
print '<td align="right" colspan="2">'.$langs->trans("Position").'</td>';
print '<td class="right" colspan="2">'.$langs->trans("Position").'</td>';
//print '<td>&nbsp;</td>';
//print '<td>'.$langs->trans("FieldsTitle").'</td>';
print '</tr>';
@ -1007,9 +1007,9 @@ if ($step == 4 && $datatoexport)
//print ' ('.$code.')';
print '</td>';
print '<td align="right" width="100">';
print '<td class="right" width="100">';
print $value.' ';
print '</td><td align="center" width="20">';
print '</td><td class="center" width="20">';
if ($value < count($array_selected)) print '<a href="'.$_SERVER["PHP_SELF"].'?step='.$step.'&datatoexport='.$datatoexport.'&action=downfield&field='.$code.'">'.img_down().'</a>';
if ($value > 1) print '<a href="'.$_SERVER["PHP_SELF"].'?step='.$step.'&datatoexport='.$datatoexport.'&action=upfield&field='.$code.'">'.img_up().'</a>';
print '</td>';
@ -1060,7 +1060,7 @@ if ($step == 4 && $datatoexport)
print '</tr>';
print '<tr class="oddeven">';
print '<td><input name="export_name" size="32" value=""></td><td align="right">';
print '<td><input name="export_name" size="32" value=""></td><td class="right">';
print '<input type="submit" class="button" value="'.$langs->trans("Save").'">';
print '</td></tr>';
@ -1080,7 +1080,7 @@ if ($step == 4 && $datatoexport)
$obj = $db->fetch_object($resql);
print '<tr class="oddeven"><td>';
print $obj->label;
print '</td><td align="right">';
print '</td><td class="right">';
print '<a href="'.$_SERVER["PHP_SELF"].'?step='.$step.'&datatoexport='.$datatoexport.'&action=deleteprof&id='.$obj->rowid.'">';
print img_delete();
print '</a>';
@ -1231,7 +1231,7 @@ if ($step == 5 && $datatoexport)
$label=$listeall[$key];
$htmltabloflibs.= $form->textwithpicto($label, $text).'</td>';
$htmltabloflibs.= '<td>'.$objmodelexport->getLibLabelForKey($key).'</td>';
$htmltabloflibs.= '<td align="right">'.$objmodelexport->getLibVersionForKey($key).'</td>';
$htmltabloflibs.= '<td class="right">'.$objmodelexport->getLibVersionForKey($key).'</td>';
$htmltabloflibs.= '</tr>'."\n";
}
$htmltabloflibs.= '</table>';

View File

@ -71,7 +71,7 @@ print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
print '<td colspan="2">'.$langs->trans("AvailableFormats").'</td>';
print '<td>'.$langs->trans("LibraryShort").'</td>';
print '<td align="right">'.$langs->trans("LibraryVersion").'</td>';
print '<td class="right">'.$langs->trans("LibraryVersion").'</td>';
print '</tr>';
include_once DOL_DOCUMENT_ROOT.'/core/modules/export/modules_export.php';
@ -91,7 +91,7 @@ foreach($liste as $key => $val)
$label=$liste[$key];
print '<td>'.$form->textwithpicto($label, $text).'</td>';
print '<td>'.$model->getLibLabelForKey($key).'</td>';
print '<td class="nowrap" align="right">'.$model->getLibVersionForKey($key).'</td>';
print '<td class="nowrap right">'.$model->getLibVersionForKey($key).'</td>';
print '</tr>';
}

View File

@ -363,7 +363,7 @@ if (empty($reshook))
// Extrafields
$extrafieldsline = new ExtraFields($db);
$extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line);
$array_options = $extrafieldsline->getOptionalsFromPost($extralabelsline, $predef);
$array_options = $extrafieldsline->getOptionalsFromPost($object->table_element_line, $predef);
$result = $object->addline(
$user,
@ -508,7 +508,7 @@ if (empty($reshook))
// Extrafields
$extrafieldsline = new ExtraFields($db);
$extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line);
$array_options = $extrafieldsline->getOptionalsFromPost($extralabelsline);
$array_options = $extrafieldsline->getOptionalsFromPost($object->table_element_line);
$result=$object->addline(
$user,
@ -620,7 +620,7 @@ if (empty($reshook))
// Extrafields
$extrafieldsline = new ExtraFields($db);
$extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line);
$array_options = $extrafieldsline->getOptionalsFromPost($extralabelsline);
$array_options = $extrafieldsline->getOptionalsFromPost($object->table_element_line);
$objectline->array_options = $array_options;
$result = $objectline->update($user);

View File

@ -308,7 +308,7 @@ if (empty($reshook))
// Extrafields
$extrafieldsline = new ExtraFields($db);
$extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line);
$array_options = $extrafieldsline->getOptionalsFromPost($extralabelsline, $predef);
$array_options = $extrafieldsline->getOptionalsFromPost($object->table_element_line, $predef);
// Unset extrafield
if (is_array($extralabelsline)) {
// Get extra fields
@ -618,7 +618,7 @@ if (empty($reshook))
// Extrafields Lines
$extrafieldsline = new ExtraFields($db);
$extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line);
$array_options = $extrafieldsline->getOptionalsFromPost($extralabelsline);
$array_options = $extrafieldsline->getOptionalsFromPost($object->table_element_line);
// Unset extrafield POST Data
if (is_array($extralabelsline)) {
foreach ($extralabelsline as $key => $value) {

View File

@ -1076,7 +1076,7 @@ if (empty($reshook))
// Extrafields Lines
$extrafieldsline = new ExtraFields($db);
$extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line);
$array_options = $extrafieldsline->getOptionalsFromPost($extralabelsline);
$array_options = $extrafieldsline->getOptionalsFromPost($object->table_element_line);
// Unset extrafield POST Data
if (is_array($extralabelsline)) {
foreach ($extralabelsline as $key => $value) {
@ -1153,7 +1153,7 @@ if (empty($reshook))
// Extrafields
$extrafieldsline = new ExtraFields($db);
$extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line);
$array_options = $extrafieldsline->getOptionalsFromPost($extralabelsline, $predef);
$array_options = $extrafieldsline->getOptionalsFromPost($object->table_element_line, $predef);
// Unset extrafield
if (is_array($extralabelsline)) {
// Get extra fields

View File

@ -1,6 +1,6 @@
<?php
/* Copyright (C) 2004-2016 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2011 Juanjo Menent <jmenent@2byte.es>
/* Copyright (C) 2004-2016 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2011 Juanjo Menent <jmenent@2byte.es>
*
* 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
@ -117,7 +117,7 @@ if (GETPOST('delete', 'alpha'))
if ($result3) $result4=dolibarr_del_const($db, "FTP_PASSWORD_" . $entry, $conf->entity);
if ($result4) $result5=dolibarr_del_const($db, "FTP_NAME_" . $entry, $conf->entity);
if ($result4) $result6=dolibarr_del_const($db, "FTP_PASSIVE_" . $entry, $conf->entity);
if ($result1 && $result2 && $result3 && $result4 && $result5 && $result6)
{
$db->commit();
@ -199,9 +199,9 @@ else
print '<td>'.$form->selectyesno('FTP_PASSIVE_'.($lastftpentry+1), $defaultpassive, 2).'</td>';
print '<td>'.$langs->trans("No").'</td>';
print '</tr>';
print '</table>';
?>
<br><div class="center"><input type="submit" class="button" value="<?php echo $langs->trans("Add") ?>"></div>
<input type="hidden" name="action" value="add">
@ -236,7 +236,7 @@ else
print "<form name=\"externalrssconfig\" action=\"".$_SERVER["PHP_SELF"]."\" method=\"post\">";
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<input type="hidden" name="numero_entry" value="'.$idrss.'">';
print '<table class="noborder" width="100%">'."\n";
print '<tr class="liste_titre">';
@ -250,44 +250,44 @@ else
$keyforuser="FTP_USER_" . $idrss;
$keyforpassword="FTP_PASSWORD_" . $idrss;
$keyforpassive="FTP_PASSIVE_" . $idrss;
print '<tr class="oddeven">';
print "<td>".$langs->trans("Name")."</td>";
print "<td><input type=\"text\" class=\"flat\" name=\"FTP_NAME_" . $idrss . "\" value=\"" . $conf->global->$keyforname . "\" size=\"64\"></td>";
print "</tr>";
print '<tr class="oddeven">';
print "<td>".$langs->trans("Server")."</td>";
print "<td><input type=\"text\" class=\"flat\" name=\"FTP_SERVER_" . $idrss . "\" value=\"" . $conf->global->$keyforserver . "\" size=\"64\"></td>";
print "</tr>";
print '<tr class="oddeven">';
print "<td width=\"100\">".$langs->trans("Port")."</td>";
print "<td><input type=\"text\" class=\"flat\" name=\"FTP_PORT_" . $idrss . "\" value=\"" . $conf->global->$keyforport . "\" size=\"64\"></td>";
print "</tr>";
print '<tr class="oddeven">';
print "<td width=\"100\">".$langs->trans("User")."</td>";
print "<td><input type=\"text\" class=\"flat\" name=\"FTP_USER_" . $idrss . "\" value=\"" . $conf->global->$keyforuser . "\" size=\"24\"></td>";
print "</tr>";
print '<tr class="oddeven">';
print "<td width=\"100\">".$langs->trans("Password")."</td>";
print "<td><input type=\"password\" class=\"flat\" name=\"FTP_PASSWORD_" . $idrss . "\" value=\"" . $conf->global->$keyforpassword . "\" size=\"24\"></td>";
print "</tr>";
print '<tr class="oddeven">';
print "<td width=\"100\">".$langs->trans("FTPPassiveMode")."</td>";
print '<td>'.$form->selectyesno('FTP_PASSIVE_'.$idrss, $conf->global->$keyforpassive, 1).'</td>';
print "</tr>";
print "<tr>";
print "<td colspan=\"2\" align=\"center\">";
print "<td colspan=\"2\" class=\"center\">";
print "<input type=\"submit\" class=\"button\" name=\"modify\" value=\"".$langs->trans("Modify")."\">";
print " &nbsp; ";
print "<input type=\"submit\" class=\"button\" name=\"delete\" value=\"".$langs->trans("Delete")."\">";
@ -295,10 +295,10 @@ else
print "</tr>";
print '</table>';
print "</form>";
print '<br>';
$i++;
}
}

View File

@ -1,6 +1,7 @@
<?php
/* Copyright (C) 2008-2016 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2008-2009 Regis Houssin <regis.houssin@inodbox.com>
/* Copyright (C) 2008-2016 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2008-2009 Regis Houssin <regis.houssin@inodbox.com>
* Copyright (C) 2019 Frédéric France <frederic.france@netlogic.fr>
*
* 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
@ -17,9 +18,9 @@
*/
/**
* \file htdocs/ftp/index.php
* \ingroup ftp
* \brief Main page for FTP section area
* \file htdocs/ftp/index.php
* \ingroup ftp
* \brief Main page for FTP section area
*/
require '../main.inc.php';
@ -453,13 +454,13 @@ else
print '<table width="100%" class="noborder">'."\n";
print '<tr class="liste_titre">'."\n";
print '<td class="liste_titre" align="left">'.$langs->trans("Content").'</td>'."\n";
print '<td class="liste_titre" align="center">'.$langs->trans("Size").'</td>'."\n";
print '<td class="liste_titre" align="center">'.$langs->trans("Date").'</td>'."\n";
print '<td class="liste_titre" align="center">'.$langs->trans("Owner").'</td>'."\n";
print '<td class="liste_titre" align="center">'.$langs->trans("Group").'</td>'."\n";
print '<td class="liste_titre" align="center">'.$langs->trans("Permissions").'</td>'."\n";
print '<td class="liste_titre nowrap" align="right">';
print '<td class="liste_titre" class="left">'.$langs->trans("Content").'</td>'."\n";
print '<td class="liste_titre" class="center">'.$langs->trans("Size").'</td>'."\n";
print '<td class="liste_titre" class="center">'.$langs->trans("Date").'</td>'."\n";
print '<td class="liste_titre" class="center">'.$langs->trans("Owner").'</td>'."\n";
print '<td class="liste_titre" class="center">'.$langs->trans("Group").'</td>'."\n";
print '<td class="liste_titre" class="center">'.$langs->trans("Permissions").'</td>'."\n";
print '<td class="liste_titre nowrap right">';
if ($conf->use_javascript_ajax) print '<a href="#" id="checkall">'.$langs->trans("All").'</a> / <a href="#" id="checknone">'.$langs->trans("None").'</a> ';
print '<a href="'.$_SERVER["PHP_SELF"].'?action=refreshmanual&numero_ftp='.$numero_ftp.($section?'&section='.urlencode($section):'').'">'.img_picto($langs->trans("Refresh"), 'refresh').'</a>&nbsp;';
print '</td>'."\n";
@ -558,28 +559,28 @@ else
if ($is_directory) print '</a>';
print '</td>';
// Size
print '<td align="center" class="nowrap">';
print '<td class="center nowrap">';
if (! $is_directory && ! $is_link) print $vals[4];
else print '&nbsp;';
print '</td>';
// Date
print '<td align="center" class="nowrap">';
print '<td class="center nowrap">';
print $vals[5].' '.$vals[6].' '.$vals[7];
print '</td>';
// User
print '<td align="center" class="nowrap">';
print '<td class="center nowrap">';
print $vals[2];
print '</td>';
// Group
print '<td align="center" class="nowrap">';
print '<td class="center nowrap">';
print $vals[3];
print '</td>';
// Permissions
print '<td align="center" class="nowrap">';
print '<td class="center nowrap">';
print $vals[0];
print '</td>';
// Action
print '<td align="right" width="64" class="nowrap">';
print '<td class="right" width="64" class="nowrap">';
if ($is_directory)
{
if ($file != '..') print '<a href="'.$_SERVER["PHP_SELF"].'?action=delete_section&numero_ftp='.$numero_ftp.'&section='.urlencode($section).'&file='.urlencode($file).'">'.img_delete().'</a>';
@ -628,7 +629,7 @@ else
*/
print '<br>';
print '<div id="delconst" align="right">';
print '<div id="delconst" class="right">';
print '<input type="submit" name="delete" class="button" value="'.$langs->trans("Delete").'">';
print '</div>';

View File

@ -1326,7 +1326,7 @@ else
if ($action == 'edit' && $object->statut == Holiday::STATUS_DRAFT)
{
print '<div align="center">';
print '<div class="center">';
if ($cancreate && $object->statut == Holiday::STATUS_DRAFT)
{
print '<input type="submit" value="'.$langs->trans("Save").'" class="button">';

View File

@ -271,7 +271,7 @@ else
print '<td class="liste_titre"></td>';
// Action column
print '<td class="liste_titre" align="right">';
print '<td class="liste_titre right">';
$searchpicto=$form->showFilterButtons();
print $searchpicto;
print '</td>';
@ -286,7 +286,7 @@ else
foreach($typeleaves as $key => $val)
{
$labeltype = ($langs->trans($val['code'])!=$val['code']) ? $langs->trans($val['code']) : $langs->trans($val['label']);
print_liste_field_titre($labeltype, $_SERVER["PHP_SELF"], '', '', '', 'align="center"');
print_liste_field_titre($labeltype, $_SERVER["PHP_SELF"], '', '', '', '', '', '', 'center ');
}
}
else

View File

@ -374,7 +374,7 @@ print '<input class="flat" size="4" type="text" name="search_ref" value="'.dol_e
print '</td>';
// Create date
print '<td class="liste_titre" align="center">';
print '<td class="liste_titre center">';
print '<input class="flat valignmiddle" type="text" size="1" maxlength="2" name="search_month_create" value="'.dol_escape_htmltag($search_month_create).'">';
$formother->select_year($search_year_create, 'search_year_create', 1, $min_year, 0);
print '</td>';
@ -394,14 +394,14 @@ if ($id && ! GETPOSTISSET('search_employee'))
if (! empty($user->rights->holiday->read_all)) // Can see all
{
if (GETPOSTISSET('search_employee')) $search_employee=GETPOST('search_employee', 'int');
print '<td class="liste_titre maxwidthonsmartphone" align="left">';
print '<td class="liste_titre maxwidthonsmartphone left">';
print $form->select_dolusers($search_employee, "search_employee", 1, "", $disabled, '', '', 0, 0, 0, $morefilter, 0, '', 'maxwidth200');
print '</td>';
}
else
{
if (GETPOSTISSET('search_employee')) $search_employee=GETPOST('search_employee', 'int');
print '<td class="liste_titre maxwidthonsmartphone" align="left">';
print '<td class="liste_titre maxwidthonsmartphone left">';
print $form->select_dolusers($search_employee, "search_employee", 1, "", $disabled, 'hierarchyme', '', 0, 0, 0, $morefilter, 0, '', 'maxwidth200');
print '</td>';
}
@ -409,7 +409,7 @@ else
// Approve
if ($user->rights->holiday->read_all)
{
print '<td class="liste_titre maxwidthonsmartphone" align="left">';
print '<td class="liste_titre maxwidthonsmartphone left">';
$validator = new UserGroup($db);
$excludefilter=$user->admin?'':'u.rowid <> '.$user->id;
@ -445,24 +445,24 @@ print '</td>';
print '<td class="liste_titre">&nbsp;</td>';
// Start date
print '<td class="liste_titre" align="center">';
print '<td class="liste_titre center">';
print '<input class="flat valignmiddle" type="text" size="1" maxlength="2" name="search_month_start" value="'.dol_escape_htmltag($search_month_start).'">';
$formother->select_year($search_year_start, 'search_year_start', 1, $min_year, $max_year);
print '</td>';
// End date
print '<td class="liste_titre" align="center">';
print '<td class="liste_titre center">';
print '<input class="flat valignmiddle" type="text" size="1" maxlength="2" name="search_month_end" value="'.dol_escape_htmltag($search_month_end).'">';
$formother->select_year($search_year_end, 'search_year_end', 1, $min_year, $max_year);
print '</td>';
// Status
print '<td class="liste_titre maxwidthonsmartphone maxwidth200" align="right">';
print '<td class="liste_titre maxwidthonsmartphone maxwidth200 right">';
$holiday->selectStatutCP($search_statut, 'search_statut');
print '</td>';
// Actions
print '<td class="liste_titre" align="right">';
print '<td class="liste_titre right">';
$searchpicto=$form->showFilterAndCheckAddButtons(0);
print $searchpicto;
print '</td>';
@ -471,32 +471,31 @@ print "</tr>\n";
print '<tr class="liste_titre">';
print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "cp.ref", "", $param, '', $sortfield, $sortorder);
print_liste_field_titre("DateCreateCP", $_SERVER["PHP_SELF"], "cp.date_create", "", $param, 'align="center"', $sortfield, $sortorder);
print_liste_field_titre("DateCreateCP", $_SERVER["PHP_SELF"], "cp.date_create", "", $param, '', $sortfield, $sortorder, 'center ');
print_liste_field_titre("Employee", $_SERVER["PHP_SELF"], "cp.fk_user", "", $param, '', $sortfield, $sortorder);
print_liste_field_titre("ValidatorCP", $_SERVER["PHP_SELF"], "cp.fk_validator", "", $param, '', $sortfield, $sortorder);
print_liste_field_titre("Type", $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder);
print_liste_field_titre("NbUseDaysCPShort", $_SERVER["PHP_SELF"], '', '', $pram, 'align="right"', $sortfield, $sortorder);
print_liste_field_titre("DateDebCP", $_SERVER["PHP_SELF"], "cp.date_debut", "", $param, 'align="center"', $sortfield, $sortorder);
print_liste_field_titre("DateFinCP", $_SERVER["PHP_SELF"], "cp.date_fin", "", $param, 'align="center"', $sortfield, $sortorder);
print_liste_field_titre("Status", $_SERVER["PHP_SELF"], "cp.statut", "", $param, 'align="right"', $sortfield, $sortorder);
print getTitleFieldOfList($selectedfields, 0, $_SERVER["PHP_SELF"], "", '', $param, 'align="center"', $sortfield, $sortorder, 'maxwidthsearch ')."\n";
print_liste_field_titre("NbUseDaysCPShort", $_SERVER["PHP_SELF"], '', '', $pram, '', $sortfield, $sortorder, 'right ');
print_liste_field_titre("DateDebCP", $_SERVER["PHP_SELF"], "cp.date_debut", "", $param, '', $sortfield, $sortorder, 'center ');
print_liste_field_titre("DateFinCP", $_SERVER["PHP_SELF"], "cp.date_fin", "", $param, '', $sortfield, $sortorder, 'center ');
print_liste_field_titre("Status", $_SERVER["PHP_SELF"], "cp.statut", "", $param, '', $sortfield, $sortorder, 'right ');
print getTitleFieldOfList($selectedfields, 0, $_SERVER["PHP_SELF"], "", '', $param, '', $sortfield, $sortorder, 'center maxwidthsearch ')."\n";
print "</tr>\n";
$listhalfday=array('morning'=>$langs->trans("Morning"),"afternoon"=>$langs->trans("Afternoon"));
// If we ask a dedicated card and not allow to see it, we forc on user.
if ($id && empty($user->rights->holiday->read_all) && ! in_array($id, $childids))
{
if ($id && empty($user->rights->holiday->read_all) && ! in_array($id, $childids)) {
$langs->load("errors");
print '<tr class="oddeven opacitymediuem"><td colspan="10">'.$langs->trans("NotEnoughPermissions").'</td></tr>';
$result = 0;
}
// Lines
elseif (! empty($holiday->holiday) && !empty($mysoc->country_id))
{
$userstatic = new User($db);
$approbatorstatic = new User($db);
// Lines
$userstatic = new User($db);
$approbatorstatic = new User($db);
$typeleaves=$holiday->getTypes(1, -1);
@ -538,22 +537,22 @@ elseif (! empty($holiday->holiday) && !empty($mysoc->country_id))
$labeltypeleavetoshow = ($langs->trans($typeleaves[$infos_CP['fk_type']]['code'])!=$typeleaves[$infos_CP['fk_type']]['code'] ? $langs->trans($typeleaves[$infos_CP['fk_type']]['code']) : $typeleaves[$infos_CP['fk_type']]['label']);
print empty($typeleaves[$infos_CP['fk_type']]['label']) ? $langs->trans("TypeWasDisabledOrRemoved", $infos_CP['fk_type']) : $labeltypeleavetoshow;
print '</td>';
print '<td align="right">';
print '<td class="right">';
$nbopenedday=num_open_day($infos_CP['date_debut_gmt'], $infos_CP['date_fin_gmt'], 0, 1, $infos_CP['halfday']);
print $nbopenedday.' '.$langs->trans('DurationDays');
print '</td>';
print '<td align="center">';
print '<td class="center">';
print dol_print_date($infos_CP['date_debut'], 'day');
print ' <span class="opacitymedium">('.$langs->trans($listhalfday[$starthalfday]).')</span>';
print '</td>';
print '<td align="center">';
print '<td class="center">';
print dol_print_date($infos_CP['date_fin'], 'day');
print ' <span class="opacitymedium">('.$langs->trans($listhalfday[$endhalfday]).')</span>';
print '</td>';
print '<td align="right">'.$holidaystatic->LibStatut($infos_CP['statut'], 5).'</td>';
print '<td class="right">'.$holidaystatic->LibStatut($infos_CP['statut'], 5).'</td>';
// Action column
print '<td class="nowrap" align="center">';
print '<td class="nowrap center">';
if ($massactionbutton || $massaction) // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined
{
$selected=0;

View File

@ -1,7 +1,7 @@
<?php
/* Copyright (C) 2007-2010 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2011 François Legastelois <flegastelois@teclib.com>
* Copyright (C) 2018 Frédéric France <frederic.france@netlogic.fr>
/* Copyright (C) 2007-2010 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2011 François Legastelois <flegastelois@teclib.com>
* Copyright (C) 2018-2019 Frédéric France <frederic.france@netlogic.fr>
*
* 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
@ -110,12 +110,12 @@ print '<tr class="liste_titre">';
print '<td>' . $langs->trans('Ref') . '</td>';
print '<td>' . $langs->trans('Employee') . '</td>';
print '<td>' . $langs->trans('Type') . '</td>';
print '<td align="center">' . $langs->trans('DateDebCP') . '</td>';
print '<td align="center">' . $langs->trans('DateFinCP') . '</td>';
print '<td align="right">' . $langs->trans('NbUseDaysCPShort') . '</td>';
print '<td align="center">' . $langs->trans('DateStartInMonth') . '</td>';
print '<td align="center">' . $langs->trans('DateEndInMonth') . '</td>';
print '<td align="right">' . $langs->trans('NbUseDaysCPShortInMonth') . '</td>';
print '<td class="center">' . $langs->trans('DateDebCP') . '</td>';
print '<td class="center">' . $langs->trans('DateFinCP') . '</td>';
print '<td class="right">' . $langs->trans('NbUseDaysCPShort') . '</td>';
print '<td class="center">' . $langs->trans('DateStartInMonth') . '</td>';
print '<td class="center">' . $langs->trans('DateEndInMonth') . '</td>';
print '<td class="right">' . $langs->trans('NbUseDaysCPShortInMonth') . '</td>';
print '<td class="maxwidth300">' . $langs->trans('DescCP') . '</td>';
print '</tr>';
@ -173,20 +173,20 @@ else
print '</td>';
print '<td>' . $user->getFullName($langs) . '</td>';
print '<td>' . $obj->label . '</td>';
print '<td align="center">' . dol_print_date($obj->date_debut, 'day');
print '<td class="center">' . dol_print_date($obj->date_debut, 'day');
print ' <span class="opacitymedium">('.$langs->trans($listhalfday[$starthalfday]).')</span>';
print '</td>';
print '<td align="center">' . dol_print_date($obj->date_fin, 'day');
print '<td class="center">' . dol_print_date($obj->date_fin, 'day');
print ' <span class="opacitymedium">('.$langs->trans($listhalfday[$endhalfday]).')</span>';
print '</td>';
print '<td align="right">' . num_open_day($date_start, $date_end, 0, 1, $obj->halfday) . '</td>';
print '<td align="center">' . dol_print_date($date_start_inmonth, 'day');
print '<td class="right">' . num_open_day($date_start, $date_end, 0, 1, $obj->halfday) . '</td>';
print '<td class="center">' . dol_print_date($date_start_inmonth, 'day');
print ' <span class="opacitymedium">('.$langs->trans($listhalfday[$starthalfdayinmonth]).')</span>';
print '</td>';
print '<td align="center">' . dol_print_date($date_end_inmonth, 'day');
print '<td class="center">' . dol_print_date($date_end_inmonth, 'day');
print ' <span class="opacitymedium">('.$langs->trans($listhalfday[$endhalfdayinmonth]).')</span>';
print '</td>';
print '<td align="right">' . num_open_day($date_start_inmonth, $date_end_inmonth, 0, 1, $halfdayinmonth) . '</td>';
print '<td class="right">' . num_open_day($date_start_inmonth, $date_end_inmonth, 0, 1, $halfdayinmonth) . '</td>';
print '<td class="maxwidth300">' . dol_escape_htmltag(dolGetFirstLineOfText($obj->description)) . '</td>';
print '</tr>';
}

View File

@ -193,7 +193,7 @@ print '<td class="liste_titre"></td>';
print '<td class="liste_titre"></td>';
print '<td class="liste_titre"></td>';
// Action column
print '<td class="liste_titre" align="right">';
print '<td class="liste_titre right">';
$searchpicto=$form->showFilterButtons();
print $searchpicto;
print '</td>';
@ -201,15 +201,15 @@ print '</tr>';
print '<tr class="liste_titre">';
print_liste_field_titre('ID');
print_liste_field_titre('Date', $_SERVER["PHP_SELF"], '', '', '', 'align="center"');
print_liste_field_titre('Date', $_SERVER["PHP_SELF"], '', '', '', '', '', '', 'center ');
print_liste_field_titre('ActionByCP');
print_liste_field_titre('UserUpdateCP');
print_liste_field_titre('Description');
print_liste_field_titre('Type');
print_liste_field_titre('PrevSoldeCP', $_SERVER["PHP_SELF"], '', '', '', 'align="right"');
print_liste_field_titre('Variation', $_SERVER["PHP_SELF"], '', '', '', 'align="right"');
print_liste_field_titre('NewSoldeCP', $_SERVER["PHP_SELF"], '', '', '', 'align="right"');
print getTitleFieldOfList($selectedfields, 0, $_SERVER["PHP_SELF"], '', '', '', 'align="center"', $sortfield, $sortorder, 'maxwidthsearch ')."\n";
print_liste_field_titre('PrevSoldeCP', $_SERVER["PHP_SELF"], '', '', '', '', '', '', 'right ');
print_liste_field_titre('Variation', $_SERVER["PHP_SELF"], '', '', '', '', '', '', 'right ');
print_liste_field_titre('NewSoldeCP', $_SERVER["PHP_SELF"], '', '', '', '', '', '', 'right ');
print getTitleFieldOfList($selectedfields, 0, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ')."\n";
print '</tr>';

View File

@ -95,7 +95,7 @@ if ($result)
print_liste_field_titre("Address", $_SERVER["PHP_SELF"], "e.address", "", "", "", $sortfield, $sortorder);
print_liste_field_titre("Zipcode", $_SERVER["PHP_SELF"], "e.zip", "", "", "", $sortfield, $sortorder);
print_liste_field_titre("Town", $_SERVER["PHP_SELF"], "e.town", "", "", "", $sortfield, $sortorder);
print_liste_field_titre("Status", $_SERVER["PHP_SELF"], "e.status", "", "", 'align="right"', $sortfield, $sortorder);
print_liste_field_titre("Status", $_SERVER["PHP_SELF"], "e.status", "", "", '', $sortfield, $sortorder, 'right ');
print "</tr>\n";
if ($num > 0)
@ -117,7 +117,7 @@ if ($result)
print '<td class="left">'.$obj->zip.'</td>';
print '<td class="left">'.$obj->town.'</td>';
print '<td align="right">';
print '<td class="right">';
print $establishmentstatic->getLibStatut(5);
print '</td>';
print "</tr>\n";

View File

@ -198,7 +198,7 @@ if (! empty($conf->holiday->enabled) && $user->rights->holiday->read)
print '<th colspan="3">'.$langs->trans("BoxTitleLastLeaveRequests", min($max, $num)).'</th>';
print '<th>'.$langs->trans("from").'</th>';
print '<th>'.$langs->trans("to").'</th>';
print '<th align="right">'.$langs->trans("DateModificationShort").'</th>';
print '<th class="right">'.$langs->trans("DateModificationShort").'</th>';
print '<th width="16">&nbsp;</th>';
print '</tr>';
if ($num)
@ -228,7 +228,7 @@ if (! empty($conf->holiday->enabled) && $user->rights->holiday->read)
print '<td>'.dol_print_date($obj->date_start, 'day').' '.$langs->trans($listhalfday[$starthalfday]);
print '<td>'.dol_print_date($obj->date_end, 'day').' '.$langs->trans($listhalfday[$endhalfday]);
print '<td align="right">'.dol_print_date($db->jdate($obj->dm), 'day').'</td>';
print '<td class="right">'.dol_print_date($db->jdate($obj->dm), 'day').'</td>';
print '<td>'.$holidaystatic->LibStatut($obj->status, 3).'</td>';
print '</tr>';
@ -271,8 +271,8 @@ if (! empty($conf->deplacement->enabled) && $user->rights->deplacement->lire)
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
print '<th colspan="2">'.$langs->trans("BoxTitleLastModifiedExpenses", min($max, $num)).'</th>';
print '<th align="right">'.$langs->trans("FeesKilometersOrAmout").'</th>';
print '<th align="right">'.$langs->trans("DateModificationShort").'</th>';
print '<th class="right">'.$langs->trans("FeesKilometersOrAmout").'</th>';
print '<th class="right">'.$langs->trans("DateModificationShort").'</th>';
print '<th width="16">&nbsp;</th>';
print '</tr>';
if ($num)
@ -299,8 +299,8 @@ if (! empty($conf->deplacement->enabled) && $user->rights->deplacement->lire)
print '<tr class="oddeven">';
print '<td class="nowraponall">'.$deplacementstatic->getNomUrl(1).'</td>';
print '<td>'.$userstatic->getNomUrl(-1).'</td>';
print '<td align="right">'.$obj->km.'</td>';
print '<td align="right">'.dol_print_date($db->jdate($obj->dm), 'day').'</td>';
print '<td class="right">'.$obj->km.'</td>';
print '<td class="right">'.dol_print_date($db->jdate($obj->dm), 'day').'</td>';
print '<td>'.$deplacementstatic->LibStatut($obj->fk_statut, 3).'</td>';
print '</tr>';
@ -343,8 +343,8 @@ if (! empty($conf->expensereport->enabled) && $user->rights->expensereport->lire
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
print '<th colspan="2">'.$langs->trans("BoxTitleLastModifiedExpenses", min($max, $num)).'</th>';
print '<th align="right">'.$langs->trans("TotalTTC").'</th>';
print '<th align="right">'.$langs->trans("DateModificationShort").'</th>';
print '<th class="right">'.$langs->trans("TotalTTC").'</th>';
print '<th class="right">'.$langs->trans("DateModificationShort").'</th>';
print '<th width="16">&nbsp;</th>';
print '</tr>';
if ($num)
@ -371,8 +371,8 @@ if (! empty($conf->expensereport->enabled) && $user->rights->expensereport->lire
print '<tr class="oddeven">';
print '<td class="nowraponall">'.$expensereportstatic->getNomUrl(1).'</td>';
print '<td>'.$userstatic->getNomUrl(-1).'</td>';
print '<td align="right">'.price($obj->total_ttc).'</td>';
print '<td align="right">'.dol_print_date($db->jdate($obj->dm), 'day').'</td>';
print '<td class="right">'.price($obj->total_ttc).'</td>';
print '<td class="right">'.dol_print_date($db->jdate($obj->dm), 'day').'</td>';
print '<td>'.$expensereportstatic->LibStatut($obj->status, 3).'</td>';
print '</tr>';

View File

@ -72,7 +72,7 @@ print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
print "<td>".$langs->trans("Parameter")."</td>";
print '<td align="center">'.$langs->trans("Value")."</td>";
print '<td class="center">'.$langs->trans("Value")."</td>";
print "<td>&nbsp;</td>";
print "</tr>";
@ -81,13 +81,13 @@ print '<td>'.$langs->trans("ProductionMode").'</td>';
$production_mode=(empty($conf->global->IFTTT_PRODUCTION_MODE)?false:true);
if ($production_mode)
{
print '<td align="center"><a href="'.$_SERVER['PHP_SELF'].'?action=setproductionmode&value='.($i+1).'&status=0">';
print '<td class="center"><a href="'.$_SERVER['PHP_SELF'].'?action=setproductionmode&value='.($i+1).'&status=0">';
print img_picto($langs->trans("Activated"), 'switch_on');
print '</a></td>';
}
else
{
print '<td align="center"><a href="'.$_SERVER['PHP_SELF'].'?action=setproductionmode&value='.($i+1).'&status=1">';
print '<td class="center"><a href="'.$_SERVER['PHP_SELF'].'?action=setproductionmode&value='.($i+1).'&status=1">';
print img_picto($langs->trans("Disabled"), 'switch_off');
print '</a></td>';
}

View File

@ -242,3 +242,6 @@ ALTER TABLE llx_facturedet_rec ADD COLUMN fk_user_modif integer;
ALTER TABLE llx_expensereport_det MODIFY COLUMN value_unit double(24,8) NOT NULL;
ALTER TABLE llx_expensereport_det ADD COLUMN subprice double(24,8) DEFAULT 0 NOT NULL after qty;
ALTER TABLE llx_product_attribute_combination ADD INDEX idx_product_att_com_product_parent (fk_product_parent);
ALTER TABLE llx_product_attribute_combination ADD INDEX idx_product_att_com_product_child (fk_product_child);

View File

@ -0,0 +1,20 @@
-- ============================================================================
-- Copyright (C) 2019 Laurent Destailleur <eldy@users.sourceforge.net>
--
-- 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 <http://www.gnu.org/licenses/>.
--
-- ============================================================================
ALTER TABLE llx_product_attribute_combination ADD INDEX idx_product_att_com_product_parent (fk_product_parent);
ALTER TABLE llx_product_attribute_combination ADD INDEX idx_product_att_com_product_child (fk_product_child);

View File

@ -1285,7 +1285,7 @@ function top_htmlhead($head, $title = '', $disablejs = 0, $disablehead = 0, $arr
{
print '<!-- Includes CSS for font awesome -->'."\n";
print '<link rel="stylesheet" type="text/css" href="'.DOL_URL_ROOT.'/theme/common/fontawesome/css/font-awesome.min.css'.($ext?'?'.$ext:'').'">'."\n";
if (! empty($conf->global->MAIN_USE_FONT_AWESOME_5))
if (empty($conf->global->MAIN_DISABLE_FONT_AWESOME_5))
{
print '<link rel="stylesheet" type="text/css" href="'.DOL_URL_ROOT.'/theme/common/fontawesome-5/css/all.min.css'.($ext?'?'.$ext:'').'">'."\n";
print '<link rel="stylesheet" type="text/css" href="'.DOL_URL_ROOT.'/theme/common/fontawesome-5/css/v4-shims.min.css'.($ext?'?'.$ext:'').'">'."\n";

View File

@ -35,9 +35,12 @@ $backtopage = GETPOST('backtopage', 'alpha');
/*
* Actions
*/
if ($action=="update"){
$res1=dolibarr_set_const($db, 'MODULEBUILDER_SPECIFIC_README', GETPOST('MODULEBUILDER_SPECIFIC_README'), 'chaine', 0, '', $conf->entity);
if ($res1 < 0) {
if ($action=="update")
{
$res1=dolibarr_set_const($db, 'MODULEBUILDER_SPECIFIC_README', GETPOST('MODULEBUILDER_SPECIFIC_README', 'none'), 'chaine', 0, '', $conf->entity);
$res2=dolibarr_set_const($db, 'MODULEBUILDER_ASCIIDOCTOR', GETPOST('MODULEBUILDER_ASCIIDOCTOR', 'nohtml'), 'chaine', 0, '', $conf->entity);
$res3=dolibarr_set_const($db, 'MODULEBUILDER_ASCIIDOCTORPDF', GETPOST('MODULEBUILDER_ASCIIDOCTORPDF', 'nohtml'), 'chaine', 0, '', $conf->entity);
if ($res1 < 0 || $res2 < 0 || $res3 < 0) {
setEventMessages('ErrorFailedToSaveDate', null, 'errors');
$db->rollback();
}
@ -81,10 +84,7 @@ $form = new Form($db);
llxHeader('', $langs->trans("ModulebuilderSetup"));
$linkback = '';
if (GETPOST('withtab', 'alpha')) {
$linkback = '<a href="' . ($backtopage ? $backtopage : DOL_URL_ROOT . '/admin/modules.php') . '">' . $langs->trans("BackToModuleList") . '</a>';
}
$linkback = '<a href="' . ($backtopage ? $backtopage : DOL_URL_ROOT . '/admin/modules.php') . '">' . $langs->trans("BackToModuleList") . '</a>';
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
@ -103,7 +103,7 @@ print '<br>';
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
print '<td>' . $langs->trans("Key") . '</td>';
print '<td style="width: 30%">' . $langs->trans("Key") . '</td>';
print '<td>' . $langs->trans("Value") . '</td>';
print "</tr>\n";
@ -125,20 +125,6 @@ if ($conf->global->MAIN_FEATURES_LEVEL >= 2)
}
}
print '</td></tr>';
print '<tr class="oddeven">';
print '<td>' . $langs->trans("UseDocFolder") . '</td>';
print '<td class="center">';
if ($conf->use_javascript_ajax) {
print ajax_constantonoff('MODULEBUILDER_USE_DOCFOLDER');
} else {
if (empty($conf->global->MODULEBUILDER_USE_DOCFOLDER)) {
print '<a href="' . $_SERVER['PHP_SELF'] . '?action=set_MODULEBUILDER_USE_DOCFOLDER">' . img_picto($langs->trans("Disabled"), 'off') . '</a>';
} else {
print '<a href="' . $_SERVER['PHP_SELF'] . '?action=del_MODULEBUILDER_USE_DOCFOLDER">' . img_picto($langs->trans("Enabled"), 'on') . '</a>';
}
}
print '</td></tr>';
}
print '<tr class="oddeven">';
@ -147,6 +133,23 @@ print '<td>';
print '<textarea class="centpercent" rows="20" name="MODULEBUILDER_SPECIFIC_README">'.$conf->global->MODULEBUILDER_SPECIFIC_README.'</textarea>';
print '</td>';
print '</tr>';
print '<tr class="oddeven">';
print '<td class="tdtop">' . $langs->trans("AsciiToHtmlConverter") . '</td>';
print '<td>';
print '<input type="text" name="MODULEBUILDER_ASCIIDOCTOR" value="'.$conf->global->MODULEBUILDER_ASCIIDOCTOR.'">';
print ' '.$langs->trans("Example").': asciidoc, asciidoctor';
print '</td>';
print '</tr>';
print '<tr class="oddeven">';
print '<td class="tdtop">' . $langs->trans("AsciiToPdfConverter") . '</td>';
print '<td>';
print '<input type="text" name="MODULEBUILDER_ASCIIDOCTORPDF" value="'.$conf->global->MODULEBUILDER_ASCIIDOCTORPDF.'">';
print ' '.$langs->trans("Example").': asciidoctor-pdf';
print '</td>';
print '</tr>';
print '</table>';
print '<center><input type="submit" class="button" value="'.$langs->trans("Save").'" name="Button"></center>';

View File

@ -1226,7 +1226,7 @@ if ($module == 'initmodule')
}
elseif ($module == 'deletemodule')
{
print '<form name="delete">';
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST" name="delete">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<input type="hidden" name="action" value="confirm_delete">';
print '<input type="hidden" name="module" value="deletemodule">';
@ -1514,7 +1514,7 @@ elseif (! empty($module))
print '<br>';
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<input type="hidden" name="action" value="addlanguage">';
print '<input type="hidden" name="file" value="'.dol_escape_htmltag($file).'">';
@ -1820,21 +1820,19 @@ elseif (! empty($module))
//var_dump($reflectorpropdefault);
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
print '<input class="button" type="submit" name="regenerateclasssql" value="'.$langs->trans("RegenerateClassAndSql").'">';
print '<input class="button" type="submit" name="regeneratemissing" value="'.$langs->trans("RegenerateMissingFiles").'">';
print '<br><br>';
print load_fiche_titre($langs->trans("Properties"), '', '');
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<input type="hidden" name="action" value="addproperty">';
print '<input type="hidden" name="tab" value="objects">';
print '<input type="hidden" name="module" value="'.dol_escape_htmltag($module.($forceddirread?'@'.$dirread:'')).'">';
print '<input type="hidden" name="tabobj" value="'.dol_escape_htmltag($tabobj).'">';
print '<input class="button" type="submit" name="regenerateclasssql" value="'.$langs->trans("RegenerateClassAndSql").'">';
print '<input class="button" type="submit" name="regeneratemissing" value="'.$langs->trans("RegenerateMissingFiles").'">';
print '<br><br>';
print load_fiche_titre($langs->trans("Properties"), '', '');
print '<div class="div-table-responsive">';
print '<table class="noborder">';
print '<tr class="liste_titre">';
@ -2834,7 +2832,8 @@ elseif (! empty($module))
print '<br>';
print '<form name="generatepackage">';
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST" name="generatepackage">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<input type="hidden" name="action" value="generatepackage">';
print '<input type="hidden" name="tab" value="'.dol_escape_htmltag($tab).'">';
print '<input type="hidden" name="module" value="'.dol_escape_htmltag($module).'">';
@ -2857,7 +2856,8 @@ elseif (! empty($module))
print '<br>';
print '<form name="generatedoc">';
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST" name="generatedoc">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<input type="hidden" name="action" value="generatedoc">';
print '<input type="hidden" name="tab" value="'.dol_escape_htmltag($tab).'">';
print '<input type="hidden" name="module" value="'.dol_escape_htmltag($module).'">';

View File

@ -4151,83 +4151,73 @@ class Product extends CommonObject
{
// phpcs:enable
global $conf, $langs;
$langs->load('products');
if (! empty($conf->productbatch->enabled)) { $langs->load("productbatch");
}
if ($type == 2) {
switch ($mode)
{
case 0:
return ($status == 0 ? $langs->trans('ProductStatusNotOnBatch') : $langs->trans('ProductStatusOnBatch'));
case 1:
return ($status == 0 ? $langs->trans('ProductStatusNotOnBatchShort') : $langs->trans('ProductStatusOnBatchShort'));
case 2:
return $this->LibStatut($status, 3, 2).' '.$this->LibStatut($status, 1, 2);
case 3:
if ($status == 0) {
return img_picto($langs->trans('ProductStatusNotOnBatch'), 'statut5');
}
return img_picto($langs->trans('ProductStatusOnBatch'), 'statut4');
case 4:
return $this->LibStatut($status, 3, 2).' '.$this->LibStatut($status, 0, 2);
case 5:
return $this->LibStatut($status, 1, 2).' '.$this->LibStatut($status, 3, 2);
default:
return $langs->trans('Unknown');
case 0:
$label = ($status == 0 ? $langs->trans('ProductStatusNotOnBatch') : $langs->trans('ProductStatusOnBatch'));
return dolGetStatus($label);
case 1:
$label = ($status == 0 ? $langs->trans('ProductStatusNotOnBatchShort') : $langs->trans('ProductStatusOnBatchShort'));
return dolGetStatus($label);
case 2:
return $this->LibStatut($status, 3, 2).' '.$this->LibStatut($status, 1, 2);
case 3:
return dolGetStatus($langs->trans('ProductStatusNotOnBatch'), '','',empty($status)?'status5':'status4',3,'dot');
case 4:
return $this->LibStatut($status, 3, 2).' '.$this->LibStatut($status, 0, 2);
case 5:
return $this->LibStatut($status, 1, 2).' '.$this->LibStatut($status, 3, 2);
default:
return dolGetStatus($langs->trans('Unknown'));
}
}
if ($mode == 0) {
if ($status == 0) {
return ($type==0 ? $langs->trans('ProductStatusNotOnSellShort'):$langs->trans('ProductStatusNotOnBuyShort'));
} elseif ($status == 1) {
return ($type==0 ? $langs->trans('ProductStatusOnSellShort'):$langs->trans('ProductStatusOnBuyShort'));
$statuttrans=empty($status)?'status5':'status4';
if($status == 0){
// $type 0=Status "to sell", 1=Status "to buy", 2=Status "to Batch"
if($type==0){
$labelstatut = $langs->trans('ProductStatusNotOnSellShort');
$labelstatutShort = $langs->trans('ProductStatusNotOnSell');
}
elseif($type == 1){
$labelstatut = $langs->trans('ProductStatusNotOnBuyShort');
$labelstatutShort = $langs->trans('ProductStatusNotOnBuy');
}
elseif($type == 2){
$labelstatut = $langs->trans('ProductStatusNotOnBatch');
$labelstatutShort = $langs->trans('ProductStatusNotOnBatchShort');
}
}
elseif ($mode == 1) {
if ($status == 0) {
return ($type==0 ? $langs->trans('ProductStatusNotOnSell'):$langs->trans('ProductStatusNotOnBuy'));
} elseif ($status == 1) {
return ($type==0 ? $langs->trans('ProductStatusOnSell'):$langs->trans('ProductStatusOnBuy'));
elseif($status == 1){
// $type 0=Status "to sell", 1=Status "to buy", 2=Status "to Batch"
if($type==0){
$labelstatut = $langs->trans('ProductStatusOnSellShort');
$labelstatutShort = $langs->trans('ProductStatusOnSell');
}
elseif($type == 1){
$labelstatut = $langs->trans('ProductStatusOnBuyShort');
$labelstatutShort = $langs->trans('ProductStatusOnBuy');
}
elseif($type == 2){
$labelstatut = $langs->trans('ProductStatusOnBatch');
$labelstatutShort = $langs->trans('ProductStatusOnBatchShort');
}
}
elseif ($mode == 2) {
if ($status == 0) {
return img_picto($langs->trans('ProductStatusNotOnSell'), 'statut5', 'class="pictostatus"').' '.($type==0 ? $langs->trans('ProductStatusNotOnSellShort'):$langs->trans('ProductStatusNotOnBuyShort'));
} elseif ($status == 1) {
return img_picto($langs->trans('ProductStatusOnSell'), 'statut4', 'class="pictostatus"').' '.($type==0 ? $langs->trans('ProductStatusOnSellShort'):$langs->trans('ProductStatusOnBuyShort'));
}
if($mode>6){
return dolGetStatus($langs->trans('Unknown'),'', '', 'status0', 0);
}
elseif ($mode == 3) {
if ($status == 0) {
return img_picto(($type==0 ? $langs->trans('ProductStatusNotOnSell') : $langs->trans('ProductStatusNotOnBuy')), 'statut5', 'class="pictostatus"');
} elseif ($status == 1) {
return img_picto(($type==0 ? $langs->trans('ProductStatusOnSell') : $langs->trans('ProductStatusOnBuy')), 'statut4', 'class="pictostatus"');
}
}
elseif ($mode == 4) {
if ($status == 0) {
return img_picto($langs->trans('ProductStatusNotOnSell'), 'statut5', 'class="pictostatus"').' '.($type==0 ? $langs->trans('ProductStatusNotOnSell'):$langs->trans('ProductStatusNotOnBuy'));
} elseif ($status == 1) {
return img_picto($langs->trans('ProductStatusOnSell'), 'statut4', 'class="pictostatus"').' '.($type==0 ? $langs->trans('ProductStatusOnSell'):$langs->trans('ProductStatusOnBuy'));
}
}
elseif ($mode == 5) {
if ($status == 0) {
return ($type==0 ? $langs->trans('ProductStatusNotOnSellShort'):$langs->trans('ProductStatusNotOnBuyShort')).' '.img_picto(($type==0 ? $langs->trans('ProductStatusNotOnSell'):$langs->trans('ProductStatusNotOnBuy')), 'statut5', 'class="pictostatus"');
} elseif ($status == 1) {
return ($type==0 ? $langs->trans('ProductStatusOnSellShort'):$langs->trans('ProductStatusOnBuyShort')).' '.img_picto(($type==0 ? $langs->trans('ProductStatusOnSell'):$langs->trans('ProductStatusOnBuy')), 'statut4', 'class="pictostatus"');
}
}
elseif ($mode == 6) {
if ($status == 0) {
return ($type==0 ? $langs->trans('ProductStatusNotOnSellShort'):$langs->trans('ProductStatusNotOnBuyShort')).' '.img_picto(($type==0 ? $langs->trans('ProductStatusNotOnSell'):$langs->trans('ProductStatusNotOnBuy')), 'statut5', 'class="pictostatus"');
} elseif ($status == 1) {
return ($type==0 ? $langs->trans('ProductStatusOnSellShort'):$langs->trans('ProductStatusOnBuyShort')).' '.img_picto(($type==0 ? $langs->trans('ProductStatusOnSell'):$langs->trans('ProductStatusOnBuy')), 'statut4', 'class="pictostatus"');
}
}
return $langs->trans('Unknown');
else{
return dolGetStatus($labelstatut, $labelstatutShort, '', $statuttrans, $mode);
}
}
@ -4792,7 +4782,7 @@ class Product extends CommonObject
*
* @param Product $object Object product or service
* @param string $type Barcode type (ean, isbn, ...)
* @return void
* @return string
*/
public function get_barcode($object, $type = '')
{

View File

@ -34,6 +34,13 @@ if (! defined('NOLOGIN')) define('NOLOGIN', '1');
$entity=(! empty($_GET['entity']) ? (int) $_GET['entity'] : (! empty($_POST['entity']) ? (int) $_POST['entity'] : 1));
if (is_numeric($entity)) define("DOLENTITY", $entity);
// Error if CLI mode
if (php_sapi_name() == "cli")
{
echo "Error: This page can't be used as a CLI script. For the CLI version of script, launch cron_run_job.php available into scripts/cron/ directory.\n";
exit(-1);
}
// librarie core
// Dolibarr environment
require '../../main.inc.php';
@ -46,6 +53,8 @@ global $langs, $conf;
// Language Management
$langs->loadLangs(array("admin", "cron"));
/*
* View
*/

View File

@ -551,7 +551,7 @@ if (empty($reshook))
// Extrafields
$extrafieldsline = new ExtraFields($db);
$extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line);
$array_options = $extrafieldsline->getOptionalsFromPost($extralabelsline, $predef);
$array_options = $extrafieldsline->getOptionalsFromPost($object->table_element_line, $predef);
// Unset extrafield
if (is_array($extralabelsline)) {
// Get extra fields
@ -820,7 +820,7 @@ if (empty($reshook))
// Extrafields
$extrafieldsline = new ExtraFields($db);
$extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line);
$array_options = $extrafieldsline->getOptionalsFromPost($extralabelsline);
$array_options = $extrafieldsline->getOptionalsFromPost($object->table_element_line);
// Unset extrafield
if (is_array($extralabelsline)) {
// Get extra fields

View File

@ -10,7 +10,7 @@ In the Font Awesome Free download, the CC BY 4.0 license applies to all icons
packaged as SVG and JS file types.
# Fonts: SIL OFL 1.1 License (https://scripts.sil.org/OFL)
In the Font Awesome Free download, the SIL OLF license applies to all icons
In the Font Awesome Free download, the SIL OFL license applies to all icons
packaged as web and desktop font files.
# Code: MIT License (https://opensource.org/licenses/MIT)
@ -18,7 +18,7 @@ In the Font Awesome Free download, the MIT license applies to all non-font and
non-icon files.
# Attribution
Attribution is required by MIT, SIL OLF, and CC BY licenses. Downloaded Font
Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font
Awesome Free files already contain embedded comments with sufficient
attribution, so you shouldn't need to do anything additional when using these
files normally.

View File

@ -1,7 +1,3 @@
/*!
* Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
.fa,
.fas,
.far,
@ -148,7 +144,7 @@
-webkit-transform: scale(1, -1);
transform: scale(1, -1); }
.fa-flip-horizontal.fa-flip-vertical {
.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
-webkit-transform: scale(-1, -1);
transform: scale(-1, -1); }
@ -157,7 +153,8 @@
:root .fa-rotate-180,
:root .fa-rotate-270,
:root .fa-flip-horizontal,
:root .fa-flip-vertical {
:root .fa-flip-vertical,
:root .fa-flip-both {
-webkit-filter: none;
filter: none; }
@ -167,7 +164,7 @@
line-height: 2em;
position: relative;
vertical-align: middle;
width: 2em; }
width: 2.5em; }
.fa-stack-1x,
.fa-stack-2x {
@ -214,6 +211,9 @@ readers do not read off random characters that represent icons */
.fa-adn:before {
content: "\f170"; }
.fa-adobe:before {
content: "\f778"; }
.fa-adversal:before {
content: "\f36a"; }
@ -373,6 +373,9 @@ readers do not read off random characters that represent icons */
.fa-arrows-alt-v:before {
content: "\f338"; }
.fa-artstation:before {
content: "\f77a"; }
.fa-assistive-listening-systems:before {
content: "\f2a2"; }
@ -388,6 +391,9 @@ readers do not read off random characters that represent icons */
.fa-atlas:before {
content: "\f558"; }
.fa-atlassian:before {
content: "\f77b"; }
.fa-atom:before {
content: "\f5d2"; }
@ -412,12 +418,21 @@ readers do not read off random characters that represent icons */
.fa-aws:before {
content: "\f375"; }
.fa-baby:before {
content: "\f77c"; }
.fa-baby-carriage:before {
content: "\f77d"; }
.fa-backspace:before {
content: "\f55a"; }
.fa-backward:before {
content: "\f04a"; }
.fa-bacon:before {
content: "\f7e5"; }
.fa-balance-scale:before {
content: "\f24e"; }
@ -493,6 +508,9 @@ readers do not read off random characters that represent icons */
.fa-binoculars:before {
content: "\f1e5"; }
.fa-biohazard:before {
content: "\f780"; }
.fa-birthday-cake:before {
content: "\f1fd"; }
@ -520,6 +538,9 @@ readers do not read off random characters that represent icons */
.fa-blind:before {
content: "\f29d"; }
.fa-blog:before {
content: "\f781"; }
.fa-blogger:before {
content: "\f37c"; }
@ -553,6 +574,9 @@ readers do not read off random characters that represent icons */
.fa-book-dead:before {
content: "\f6b7"; }
.fa-book-medical:before {
content: "\f7e6"; }
.fa-book-open:before {
content: "\f518"; }
@ -580,6 +604,9 @@ readers do not read off random characters that represent icons */
.fa-brain:before {
content: "\f5dc"; }
.fa-bread-slice:before {
content: "\f7ec"; }
.fa-briefcase:before {
content: "\f0b1"; }
@ -640,6 +667,9 @@ readers do not read off random characters that represent icons */
.fa-calendar-check:before {
content: "\f274"; }
.fa-calendar-day:before {
content: "\f783"; }
.fa-calendar-minus:before {
content: "\f272"; }
@ -649,6 +679,9 @@ readers do not read off random characters that represent icons */
.fa-calendar-times:before {
content: "\f273"; }
.fa-calendar-week:before {
content: "\f784"; }
.fa-camera:before {
content: "\f030"; }
@ -658,6 +691,12 @@ readers do not read off random characters that represent icons */
.fa-campground:before {
content: "\f6bb"; }
.fa-canadian-maple-leaf:before {
content: "\f785"; }
.fa-candy-cane:before {
content: "\f786"; }
.fa-cannabis:before {
content: "\f55f"; }
@ -703,12 +742,18 @@ readers do not read off random characters that represent icons */
.fa-caret-up:before {
content: "\f0d8"; }
.fa-carrot:before {
content: "\f787"; }
.fa-cart-arrow-down:before {
content: "\f218"; }
.fa-cart-plus:before {
content: "\f217"; }
.fa-cash-register:before {
content: "\f788"; }
.fa-cat:before {
content: "\f6be"; }
@ -745,6 +790,9 @@ readers do not read off random characters that represent icons */
.fa-centercode:before {
content: "\f380"; }
.fa-centos:before {
content: "\f789"; }
.fa-certificate:before {
content: "\f0a3"; }
@ -784,6 +832,9 @@ readers do not read off random characters that represent icons */
.fa-check-square:before {
content: "\f14a"; }
.fa-cheese:before {
content: "\f7ef"; }
.fa-chess:before {
content: "\f439"; }
@ -850,6 +901,9 @@ readers do not read off random characters that represent icons */
.fa-city:before {
content: "\f64f"; }
.fa-clinic-medical:before {
content: "\f7f2"; }
.fa-clipboard:before {
content: "\f328"; }
@ -874,12 +928,27 @@ readers do not read off random characters that represent icons */
.fa-cloud-download-alt:before {
content: "\f381"; }
.fa-cloud-meatball:before {
content: "\f73b"; }
.fa-cloud-moon:before {
content: "\f6c3"; }
.fa-cloud-moon-rain:before {
content: "\f73c"; }
.fa-cloud-rain:before {
content: "\f73d"; }
.fa-cloud-showers-heavy:before {
content: "\f740"; }
.fa-cloud-sun:before {
content: "\f6c4"; }
.fa-cloud-sun-rain:before {
content: "\f743"; }
.fa-cloud-upload-alt:before {
content: "\f382"; }
@ -934,6 +1003,9 @@ readers do not read off random characters that represent icons */
.fa-comment-dots:before {
content: "\f4ad"; }
.fa-comment-medical:before {
content: "\f7f5"; }
.fa-comment-slash:before {
content: "\f4b3"; }
@ -952,9 +1024,15 @@ readers do not read off random characters that represent icons */
.fa-compress:before {
content: "\f066"; }
.fa-compress-arrows-alt:before {
content: "\f78c"; }
.fa-concierge-bell:before {
content: "\f562"; }
.fa-confluence:before {
content: "\f78d"; }
.fa-connectdevelop:before {
content: "\f20e"; }
@ -1045,6 +1123,9 @@ readers do not read off random characters that represent icons */
.fa-crown:before {
content: "\f521"; }
.fa-crutch:before {
content: "\f7f7"; }
.fa-css3:before {
content: "\f13c"; }
@ -1066,6 +1147,9 @@ readers do not read off random characters that represent icons */
.fa-d-and-d:before {
content: "\f38d"; }
.fa-d-and-d-beyond:before {
content: "\f6ca"; }
.fa-dashcube:before {
content: "\f210"; }
@ -1078,6 +1162,9 @@ readers do not read off random characters that represent icons */
.fa-delicious:before {
content: "\f1a5"; }
.fa-democrat:before {
content: "\f747"; }
.fa-deploydog:before {
content: "\f38e"; }
@ -1096,9 +1183,15 @@ readers do not read off random characters that represent icons */
.fa-dharmachakra:before {
content: "\f655"; }
.fa-dhl:before {
content: "\f790"; }
.fa-diagnoses:before {
content: "\f470"; }
.fa-diaspora:before {
content: "\f791"; }
.fa-dice:before {
content: "\f522"; }
@ -1225,6 +1318,12 @@ readers do not read off random characters that represent icons */
.fa-dumbbell:before {
content: "\f44b"; }
.fa-dumpster:before {
content: "\f793"; }
.fa-dumpster-fire:before {
content: "\f794"; }
.fa-dungeon:before {
content: "\f6d9"; }
@ -1243,6 +1342,9 @@ readers do not read off random characters that represent icons */
.fa-edit:before {
content: "\f044"; }
.fa-egg:before {
content: "\f7fb"; }
.fa-eject:before {
content: "\f052"; }
@ -1291,6 +1393,9 @@ readers do not read off random characters that represent icons */
.fa-ethereum:before {
content: "\f42e"; }
.fa-ethernet:before {
content: "\f796"; }
.fa-etsy:before {
content: "\f2d7"; }
@ -1363,12 +1468,21 @@ readers do not read off random characters that represent icons */
.fa-feather-alt:before {
content: "\f56b"; }
.fa-fedex:before {
content: "\f797"; }
.fa-fedora:before {
content: "\f798"; }
.fa-female:before {
content: "\f182"; }
.fa-fighter-jet:before {
content: "\f0fb"; }
.fa-figma:before {
content: "\f799"; }
.fa-file:before {
content: "\f15b"; }
@ -1456,6 +1570,9 @@ readers do not read off random characters that represent icons */
.fa-fire:before {
content: "\f06d"; }
.fa-fire-alt:before {
content: "\f7e4"; }
.fa-fire-extinguisher:before {
content: "\f134"; }
@ -1486,6 +1603,9 @@ readers do not read off random characters that represent icons */
.fa-flag-checkered:before {
content: "\f11e"; }
.fa-flag-usa:before {
content: "\f74d"; }
.fa-flask:before {
content: "\f0c3"; }
@ -1612,6 +1732,9 @@ readers do not read off random characters that represent icons */
.fa-gift:before {
content: "\f06b"; }
.fa-gifts:before {
content: "\f79c"; }
.fa-git:before {
content: "\f1d3"; }
@ -1636,12 +1759,18 @@ readers do not read off random characters that represent icons */
.fa-gitter:before {
content: "\f426"; }
.fa-glass-cheers:before {
content: "\f79f"; }
.fa-glass-martini:before {
content: "\f000"; }
.fa-glass-martini-alt:before {
content: "\f57b"; }
.fa-glass-whiskey:before {
content: "\f7a0"; }
.fa-glasses:before {
content: "\f530"; }
@ -1663,6 +1792,9 @@ readers do not read off random characters that represent icons */
.fa-globe-asia:before {
content: "\f57e"; }
.fa-globe-europe:before {
content: "\f7a2"; }
.fa-gofore:before {
content: "\f3a7"; }
@ -1759,6 +1891,12 @@ readers do not read off random characters that represent icons */
.fa-grip-horizontal:before {
content: "\f58d"; }
.fa-grip-lines:before {
content: "\f7a4"; }
.fa-grip-lines-vertical:before {
content: "\f7a5"; }
.fa-grip-vertical:before {
content: "\f58e"; }
@ -1768,6 +1906,9 @@ readers do not read off random characters that represent icons */
.fa-grunt:before {
content: "\f3ad"; }
.fa-guitar:before {
content: "\f7a6"; }
.fa-gulp:before {
content: "\f3ae"; }
@ -1783,6 +1924,9 @@ readers do not read off random characters that represent icons */
.fa-hackerrank:before {
content: "\f5f7"; }
.fa-hamburger:before {
content: "\f805"; }
.fa-hammer:before {
content: "\f6e3"; }
@ -1801,6 +1945,9 @@ readers do not read off random characters that represent icons */
.fa-hand-lizard:before {
content: "\f258"; }
.fa-hand-middle-finger:before {
content: "\f806"; }
.fa-hand-paper:before {
content: "\f256"; }
@ -1843,6 +1990,9 @@ readers do not read off random characters that represent icons */
.fa-hanukiah:before {
content: "\f6e6"; }
.fa-hard-hat:before {
content: "\f807"; }
.fa-hashtag:before {
content: "\f292"; }
@ -1870,6 +2020,9 @@ readers do not read off random characters that represent icons */
.fa-heart:before {
content: "\f004"; }
.fa-heart-broken:before {
content: "\f7a9"; }
.fa-heartbeat:before {
content: "\f21e"; }
@ -1897,6 +2050,9 @@ readers do not read off random characters that represent icons */
.fa-hockey-puck:before {
content: "\f453"; }
.fa-holly-berry:before {
content: "\f7aa"; }
.fa-home:before {
content: "\f015"; }
@ -1909,6 +2065,9 @@ readers do not read off random characters that represent icons */
.fa-horse:before {
content: "\f6f0"; }
.fa-horse-head:before {
content: "\f7ab"; }
.fa-hospital:before {
content: "\f0f8"; }
@ -1921,6 +2080,9 @@ readers do not read off random characters that represent icons */
.fa-hot-tub:before {
content: "\f593"; }
.fa-hotdog:before {
content: "\f80f"; }
.fa-hotel:before {
content: "\f594"; }
@ -1957,6 +2119,12 @@ readers do not read off random characters that represent icons */
.fa-i-cursor:before {
content: "\f246"; }
.fa-ice-cream:before {
content: "\f810"; }
.fa-icicles:before {
content: "\f7ad"; }
.fa-id-badge:before {
content: "\f2c1"; }
@ -1966,6 +2134,9 @@ readers do not read off random characters that represent icons */
.fa-id-card-alt:before {
content: "\f47f"; }
.fa-igloo:before {
content: "\f7ae"; }
.fa-image:before {
content: "\f03e"; }
@ -1996,9 +2167,15 @@ readers do not read off random characters that represent icons */
.fa-instagram:before {
content: "\f16d"; }
.fa-intercom:before {
content: "\f7af"; }
.fa-internet-explorer:before {
content: "\f26b"; }
.fa-invision:before {
content: "\f7b0"; }
.fa-ioxhost:before {
content: "\f208"; }
@ -2023,6 +2200,9 @@ readers do not read off random characters that represent icons */
.fa-jenkins:before {
content: "\f3b6"; }
.fa-jira:before {
content: "\f7b1"; }
.fa-joget:before {
content: "\f3b7"; }
@ -2098,6 +2278,9 @@ readers do not read off random characters that represent icons */
.fa-laptop-code:before {
content: "\f5fc"; }
.fa-laptop-medical:before {
content: "\f812"; }
.fa-laravel:before {
content: "\f3bd"; }
@ -2323,12 +2506,18 @@ readers do not read off random characters that represent icons */
.fa-memory:before {
content: "\f538"; }
.fa-mendeley:before {
content: "\f7b3"; }
.fa-menorah:before {
content: "\f676"; }
.fa-mercury:before {
content: "\f223"; }
.fa-meteor:before {
content: "\f753"; }
.fa-microchip:before {
content: "\f2db"; }
@ -2359,6 +2548,9 @@ readers do not read off random characters that represent icons */
.fa-minus-square:before {
content: "\f146"; }
.fa-mitten:before {
content: "\f7b5"; }
.fa-mix:before {
content: "\f3cb"; }
@ -2419,6 +2611,9 @@ readers do not read off random characters that represent icons */
.fa-mouse-pointer:before {
content: "\f245"; }
.fa-mug-hot:before {
content: "\f7b6"; }
.fa-music:before {
content: "\f001"; }
@ -2512,6 +2707,9 @@ readers do not read off random characters that represent icons */
.fa-pagelines:before {
content: "\f18c"; }
.fa-pager:before {
content: "\f815"; }
.fa-paint-brush:before {
content: "\f1fc"; }
@ -2596,6 +2794,9 @@ readers do not read off random characters that represent icons */
.fa-people-carry:before {
content: "\f4ce"; }
.fa-pepper-hot:before {
content: "\f816"; }
.fa-percent:before {
content: "\f295"; }
@ -2605,6 +2806,9 @@ readers do not read off random characters that represent icons */
.fa-periscope:before {
content: "\f3da"; }
.fa-person-booth:before {
content: "\f756"; }
.fa-phabricator:before {
content: "\f3db"; }
@ -2656,6 +2860,9 @@ readers do not read off random characters that represent icons */
.fa-pinterest-square:before {
content: "\f0d3"; }
.fa-pizza-slice:before {
content: "\f818"; }
.fa-place-of-worship:before {
content: "\f67f"; }
@ -2701,6 +2908,9 @@ readers do not read off random characters that represent icons */
.fa-poo:before {
content: "\f2fe"; }
.fa-poo-storm:before {
content: "\f75a"; }
.fa-poop:before {
content: "\f619"; }
@ -2782,15 +2992,30 @@ readers do not read off random characters that represent icons */
.fa-r-project:before {
content: "\f4f7"; }
.fa-radiation:before {
content: "\f7b9"; }
.fa-radiation-alt:before {
content: "\f7ba"; }
.fa-rainbow:before {
content: "\f75b"; }
.fa-random:before {
content: "\f074"; }
.fa-raspberry-pi:before {
content: "\f7bb"; }
.fa-ravelry:before {
content: "\f2d9"; }
.fa-react:before {
content: "\f41b"; }
.fa-reacteurope:before {
content: "\f75d"; }
.fa-readme:before {
content: "\f4d5"; }
@ -2815,6 +3040,9 @@ readers do not read off random characters that represent icons */
.fa-reddit-square:before {
content: "\f1a2"; }
.fa-redhat:before {
content: "\f7bc"; }
.fa-redo:before {
content: "\f01e"; }
@ -2824,9 +3052,6 @@ readers do not read off random characters that represent icons */
.fa-registered:before {
content: "\f25d"; }
.fa-rendact:before {
content: "\f3e4"; }
.fa-renren:before {
content: "\f18b"; }
@ -2839,12 +3064,18 @@ readers do not read off random characters that represent icons */
.fa-replyd:before {
content: "\f3e6"; }
.fa-republican:before {
content: "\f75e"; }
.fa-researchgate:before {
content: "\f4f8"; }
.fa-resolving:before {
content: "\f3e7"; }
.fa-restroom:before {
content: "\f7bd"; }
.fa-retweet:before {
content: "\f079"; }
@ -2914,6 +3145,12 @@ readers do not read off random characters that represent icons */
.fa-sass:before {
content: "\f41e"; }
.fa-satellite:before {
content: "\f7bf"; }
.fa-satellite-dish:before {
content: "\f7c0"; }
.fa-save:before {
content: "\f0c7"; }
@ -2932,6 +3169,9 @@ readers do not read off random characters that represent icons */
.fa-scroll:before {
content: "\f70e"; }
.fa-sd-card:before {
content: "\f7c2"; }
.fa-search:before {
content: "\f002"; }
@ -3034,6 +3274,9 @@ readers do not read off random characters that represent icons */
.fa-signature:before {
content: "\f5b7"; }
.fa-sim-card:before {
content: "\f7c4"; }
.fa-simplybuilt:before {
content: "\f215"; }
@ -3046,6 +3289,18 @@ readers do not read off random characters that represent icons */
.fa-sith:before {
content: "\f512"; }
.fa-skating:before {
content: "\f7c5"; }
.fa-sketch:before {
content: "\f7c6"; }
.fa-skiing:before {
content: "\f7c9"; }
.fa-skiing-nordic:before {
content: "\f7ca"; }
.fa-skull:before {
content: "\f54c"; }
@ -3067,6 +3322,9 @@ readers do not read off random characters that represent icons */
.fa-slash:before {
content: "\f715"; }
.fa-sleigh:before {
content: "\f7cc"; }
.fa-sliders-h:before {
content: "\f1de"; }
@ -3082,12 +3340,18 @@ readers do not read off random characters that represent icons */
.fa-smile-wink:before {
content: "\f4da"; }
.fa-smog:before {
content: "\f75f"; }
.fa-smoking:before {
content: "\f48d"; }
.fa-smoking-ban:before {
content: "\f54d"; }
.fa-sms:before {
content: "\f7cd"; }
.fa-snapchat:before {
content: "\f2ab"; }
@ -3097,9 +3361,18 @@ readers do not read off random characters that represent icons */
.fa-snapchat-square:before {
content: "\f2ad"; }
.fa-snowboarding:before {
content: "\f7ce"; }
.fa-snowflake:before {
content: "\f2dc"; }
.fa-snowman:before {
content: "\f7d0"; }
.fa-snowplow:before {
content: "\f7d2"; }
.fa-socks:before {
content: "\f696"; }
@ -3136,6 +3409,9 @@ readers do not read off random characters that represent icons */
.fa-soundcloud:before {
content: "\f1be"; }
.fa-sourcetree:before {
content: "\f7d3"; }
.fa-spa:before {
content: "\f5bb"; }
@ -3298,6 +3574,9 @@ readers do not read off random characters that represent icons */
.fa-surprise:before {
content: "\f5c2"; }
.fa-suse:before {
content: "\f7d6"; }
.fa-swatchbook:before {
content: "\f5c3"; }
@ -3367,9 +3646,18 @@ readers do not read off random characters that represent icons */
.fa-telegram-plane:before {
content: "\f3fe"; }
.fa-temperature-high:before {
content: "\f769"; }
.fa-temperature-low:before {
content: "\f76b"; }
.fa-tencent-weibo:before {
content: "\f1d5"; }
.fa-tenge:before {
content: "\f7d7"; }
.fa-terminal:before {
content: "\f120"; }
@ -3418,6 +3706,9 @@ readers do not read off random characters that represent icons */
.fa-thermometer-three-quarters:before {
content: "\f2c8"; }
.fa-think-peaks:before {
content: "\f731"; }
.fa-thumbs-down:before {
content: "\f165"; }
@ -3451,12 +3742,18 @@ readers do not read off random characters that represent icons */
.fa-toggle-on:before {
content: "\f205"; }
.fa-toilet:before {
content: "\f7d8"; }
.fa-toilet-paper:before {
content: "\f71e"; }
.fa-toolbox:before {
content: "\f552"; }
.fa-tools:before {
content: "\f7d9"; }
.fa-tooth:before {
content: "\f5c9"; }
@ -3481,6 +3778,9 @@ readers do not read off random characters that represent icons */
.fa-train:before {
content: "\f238"; }
.fa-tram:before {
content: "\f7da"; }
.fa-transgender:before {
content: "\f224"; }
@ -3493,6 +3793,12 @@ readers do not read off random characters that represent icons */
.fa-trash-alt:before {
content: "\f2ed"; }
.fa-trash-restore:before {
content: "\f829"; }
.fa-trash-restore-alt:before {
content: "\f82a"; }
.fa-tree:before {
content: "\f1bb"; }
@ -3550,6 +3856,9 @@ readers do not read off random characters that represent icons */
.fa-uber:before {
content: "\f402"; }
.fa-ubuntu:before {
content: "\f7df"; }
.fa-uikit:before {
content: "\f403"; }
@ -3592,6 +3901,9 @@ readers do not read off random characters that represent icons */
.fa-upload:before {
content: "\f093"; }
.fa-ups:before {
content: "\f7e0"; }
.fa-usb:before {
content: "\f287"; }
@ -3643,6 +3955,9 @@ readers do not read off random characters that represent icons */
.fa-user-ninja:before {
content: "\f504"; }
.fa-user-nurse:before {
content: "\f82f"; }
.fa-user-plus:before {
content: "\f234"; }
@ -3670,6 +3985,9 @@ readers do not read off random characters that represent icons */
.fa-users-cog:before {
content: "\f509"; }
.fa-usps:before {
content: "\f7e1"; }
.fa-ussunnah:before {
content: "\f407"; }
@ -3754,6 +4072,12 @@ readers do not read off random characters that represent icons */
.fa-volume-up:before {
content: "\f028"; }
.fa-vote-yea:before {
content: "\f772"; }
.fa-vr-cardboard:before {
content: "\f729"; }
.fa-vuejs:before {
content: "\f41f"; }
@ -3766,6 +4090,9 @@ readers do not read off random characters that represent icons */
.fa-warehouse:before {
content: "\f494"; }
.fa-water:before {
content: "\f773"; }
.fa-weebly:before {
content: "\f5cc"; }
@ -3853,6 +4180,9 @@ readers do not read off random characters that represent icons */
.fa-wpforms:before {
content: "\f298"; }
.fa-wpressr:before {
content: "\f3e4"; }
.fa-wrench:before {
content: "\f0ad"; }
@ -3880,6 +4210,9 @@ readers do not read off random characters that represent icons */
.fa-yandex-international:before {
content: "\f414"; }
.fa-yarn:before {
content: "\f7e3"; }
.fa-yelp:before {
content: "\f1e9"; }
@ -3922,6 +4255,7 @@ readers do not read off random characters that represent icons */
font-family: 'Font Awesome 5 Brands';
font-style: normal;
font-weight: normal;
font-display: auto;
src: url("../webfonts/fa-brands-400.eot");
src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); }
@ -3931,6 +4265,7 @@ readers do not read off random characters that represent icons */
font-family: 'Font Awesome 5 Free';
font-style: normal;
font-weight: 400;
font-display: auto;
src: url("../webfonts/fa-regular-400.eot");
src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); }
@ -3941,6 +4276,7 @@ readers do not read off random characters that represent icons */
font-family: 'Font Awesome 5 Free';
font-style: normal;
font-weight: 900;
font-display: auto;
src: url("../webfonts/fa-solid-900.eot");
src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); }

File diff suppressed because one or more lines are too long

View File

@ -1,11 +1,8 @@
/*!
* Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
@font-face {
font-family: 'Font Awesome 5 Brands';
font-style: normal;
font-weight: normal;
font-display: auto;
src: url("../webfonts/fa-brands-400.eot");
src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); }

View File

@ -1,5 +1 @@
/*!
* Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:normal;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}
@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:normal;font-display:auto;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}

View File

@ -1,7 +1,3 @@
/*!
* Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
.fa,
.fas,
.far,
@ -148,7 +144,7 @@
-webkit-transform: scale(1, -1);
transform: scale(1, -1); }
.fa-flip-horizontal.fa-flip-vertical {
.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
-webkit-transform: scale(-1, -1);
transform: scale(-1, -1); }
@ -157,7 +153,8 @@
:root .fa-rotate-180,
:root .fa-rotate-270,
:root .fa-flip-horizontal,
:root .fa-flip-vertical {
:root .fa-flip-vertical,
:root .fa-flip-both {
-webkit-filter: none;
filter: none; }
@ -167,7 +164,7 @@
line-height: 2em;
position: relative;
vertical-align: middle;
width: 2em; }
width: 2.5em; }
.fa-stack-1x,
.fa-stack-2x {
@ -214,6 +211,9 @@ readers do not read off random characters that represent icons */
.fa-adn:before {
content: "\f170"; }
.fa-adobe:before {
content: "\f778"; }
.fa-adversal:before {
content: "\f36a"; }
@ -373,6 +373,9 @@ readers do not read off random characters that represent icons */
.fa-arrows-alt-v:before {
content: "\f338"; }
.fa-artstation:before {
content: "\f77a"; }
.fa-assistive-listening-systems:before {
content: "\f2a2"; }
@ -388,6 +391,9 @@ readers do not read off random characters that represent icons */
.fa-atlas:before {
content: "\f558"; }
.fa-atlassian:before {
content: "\f77b"; }
.fa-atom:before {
content: "\f5d2"; }
@ -412,12 +418,21 @@ readers do not read off random characters that represent icons */
.fa-aws:before {
content: "\f375"; }
.fa-baby:before {
content: "\f77c"; }
.fa-baby-carriage:before {
content: "\f77d"; }
.fa-backspace:before {
content: "\f55a"; }
.fa-backward:before {
content: "\f04a"; }
.fa-bacon:before {
content: "\f7e5"; }
.fa-balance-scale:before {
content: "\f24e"; }
@ -493,6 +508,9 @@ readers do not read off random characters that represent icons */
.fa-binoculars:before {
content: "\f1e5"; }
.fa-biohazard:before {
content: "\f780"; }
.fa-birthday-cake:before {
content: "\f1fd"; }
@ -520,6 +538,9 @@ readers do not read off random characters that represent icons */
.fa-blind:before {
content: "\f29d"; }
.fa-blog:before {
content: "\f781"; }
.fa-blogger:before {
content: "\f37c"; }
@ -553,6 +574,9 @@ readers do not read off random characters that represent icons */
.fa-book-dead:before {
content: "\f6b7"; }
.fa-book-medical:before {
content: "\f7e6"; }
.fa-book-open:before {
content: "\f518"; }
@ -580,6 +604,9 @@ readers do not read off random characters that represent icons */
.fa-brain:before {
content: "\f5dc"; }
.fa-bread-slice:before {
content: "\f7ec"; }
.fa-briefcase:before {
content: "\f0b1"; }
@ -640,6 +667,9 @@ readers do not read off random characters that represent icons */
.fa-calendar-check:before {
content: "\f274"; }
.fa-calendar-day:before {
content: "\f783"; }
.fa-calendar-minus:before {
content: "\f272"; }
@ -649,6 +679,9 @@ readers do not read off random characters that represent icons */
.fa-calendar-times:before {
content: "\f273"; }
.fa-calendar-week:before {
content: "\f784"; }
.fa-camera:before {
content: "\f030"; }
@ -658,6 +691,12 @@ readers do not read off random characters that represent icons */
.fa-campground:before {
content: "\f6bb"; }
.fa-canadian-maple-leaf:before {
content: "\f785"; }
.fa-candy-cane:before {
content: "\f786"; }
.fa-cannabis:before {
content: "\f55f"; }
@ -703,12 +742,18 @@ readers do not read off random characters that represent icons */
.fa-caret-up:before {
content: "\f0d8"; }
.fa-carrot:before {
content: "\f787"; }
.fa-cart-arrow-down:before {
content: "\f218"; }
.fa-cart-plus:before {
content: "\f217"; }
.fa-cash-register:before {
content: "\f788"; }
.fa-cat:before {
content: "\f6be"; }
@ -745,6 +790,9 @@ readers do not read off random characters that represent icons */
.fa-centercode:before {
content: "\f380"; }
.fa-centos:before {
content: "\f789"; }
.fa-certificate:before {
content: "\f0a3"; }
@ -784,6 +832,9 @@ readers do not read off random characters that represent icons */
.fa-check-square:before {
content: "\f14a"; }
.fa-cheese:before {
content: "\f7ef"; }
.fa-chess:before {
content: "\f439"; }
@ -850,6 +901,9 @@ readers do not read off random characters that represent icons */
.fa-city:before {
content: "\f64f"; }
.fa-clinic-medical:before {
content: "\f7f2"; }
.fa-clipboard:before {
content: "\f328"; }
@ -874,12 +928,27 @@ readers do not read off random characters that represent icons */
.fa-cloud-download-alt:before {
content: "\f381"; }
.fa-cloud-meatball:before {
content: "\f73b"; }
.fa-cloud-moon:before {
content: "\f6c3"; }
.fa-cloud-moon-rain:before {
content: "\f73c"; }
.fa-cloud-rain:before {
content: "\f73d"; }
.fa-cloud-showers-heavy:before {
content: "\f740"; }
.fa-cloud-sun:before {
content: "\f6c4"; }
.fa-cloud-sun-rain:before {
content: "\f743"; }
.fa-cloud-upload-alt:before {
content: "\f382"; }
@ -934,6 +1003,9 @@ readers do not read off random characters that represent icons */
.fa-comment-dots:before {
content: "\f4ad"; }
.fa-comment-medical:before {
content: "\f7f5"; }
.fa-comment-slash:before {
content: "\f4b3"; }
@ -952,9 +1024,15 @@ readers do not read off random characters that represent icons */
.fa-compress:before {
content: "\f066"; }
.fa-compress-arrows-alt:before {
content: "\f78c"; }
.fa-concierge-bell:before {
content: "\f562"; }
.fa-confluence:before {
content: "\f78d"; }
.fa-connectdevelop:before {
content: "\f20e"; }
@ -1045,6 +1123,9 @@ readers do not read off random characters that represent icons */
.fa-crown:before {
content: "\f521"; }
.fa-crutch:before {
content: "\f7f7"; }
.fa-css3:before {
content: "\f13c"; }
@ -1066,6 +1147,9 @@ readers do not read off random characters that represent icons */
.fa-d-and-d:before {
content: "\f38d"; }
.fa-d-and-d-beyond:before {
content: "\f6ca"; }
.fa-dashcube:before {
content: "\f210"; }
@ -1078,6 +1162,9 @@ readers do not read off random characters that represent icons */
.fa-delicious:before {
content: "\f1a5"; }
.fa-democrat:before {
content: "\f747"; }
.fa-deploydog:before {
content: "\f38e"; }
@ -1096,9 +1183,15 @@ readers do not read off random characters that represent icons */
.fa-dharmachakra:before {
content: "\f655"; }
.fa-dhl:before {
content: "\f790"; }
.fa-diagnoses:before {
content: "\f470"; }
.fa-diaspora:before {
content: "\f791"; }
.fa-dice:before {
content: "\f522"; }
@ -1225,6 +1318,12 @@ readers do not read off random characters that represent icons */
.fa-dumbbell:before {
content: "\f44b"; }
.fa-dumpster:before {
content: "\f793"; }
.fa-dumpster-fire:before {
content: "\f794"; }
.fa-dungeon:before {
content: "\f6d9"; }
@ -1243,6 +1342,9 @@ readers do not read off random characters that represent icons */
.fa-edit:before {
content: "\f044"; }
.fa-egg:before {
content: "\f7fb"; }
.fa-eject:before {
content: "\f052"; }
@ -1291,6 +1393,9 @@ readers do not read off random characters that represent icons */
.fa-ethereum:before {
content: "\f42e"; }
.fa-ethernet:before {
content: "\f796"; }
.fa-etsy:before {
content: "\f2d7"; }
@ -1363,12 +1468,21 @@ readers do not read off random characters that represent icons */
.fa-feather-alt:before {
content: "\f56b"; }
.fa-fedex:before {
content: "\f797"; }
.fa-fedora:before {
content: "\f798"; }
.fa-female:before {
content: "\f182"; }
.fa-fighter-jet:before {
content: "\f0fb"; }
.fa-figma:before {
content: "\f799"; }
.fa-file:before {
content: "\f15b"; }
@ -1456,6 +1570,9 @@ readers do not read off random characters that represent icons */
.fa-fire:before {
content: "\f06d"; }
.fa-fire-alt:before {
content: "\f7e4"; }
.fa-fire-extinguisher:before {
content: "\f134"; }
@ -1486,6 +1603,9 @@ readers do not read off random characters that represent icons */
.fa-flag-checkered:before {
content: "\f11e"; }
.fa-flag-usa:before {
content: "\f74d"; }
.fa-flask:before {
content: "\f0c3"; }
@ -1612,6 +1732,9 @@ readers do not read off random characters that represent icons */
.fa-gift:before {
content: "\f06b"; }
.fa-gifts:before {
content: "\f79c"; }
.fa-git:before {
content: "\f1d3"; }
@ -1636,12 +1759,18 @@ readers do not read off random characters that represent icons */
.fa-gitter:before {
content: "\f426"; }
.fa-glass-cheers:before {
content: "\f79f"; }
.fa-glass-martini:before {
content: "\f000"; }
.fa-glass-martini-alt:before {
content: "\f57b"; }
.fa-glass-whiskey:before {
content: "\f7a0"; }
.fa-glasses:before {
content: "\f530"; }
@ -1663,6 +1792,9 @@ readers do not read off random characters that represent icons */
.fa-globe-asia:before {
content: "\f57e"; }
.fa-globe-europe:before {
content: "\f7a2"; }
.fa-gofore:before {
content: "\f3a7"; }
@ -1759,6 +1891,12 @@ readers do not read off random characters that represent icons */
.fa-grip-horizontal:before {
content: "\f58d"; }
.fa-grip-lines:before {
content: "\f7a4"; }
.fa-grip-lines-vertical:before {
content: "\f7a5"; }
.fa-grip-vertical:before {
content: "\f58e"; }
@ -1768,6 +1906,9 @@ readers do not read off random characters that represent icons */
.fa-grunt:before {
content: "\f3ad"; }
.fa-guitar:before {
content: "\f7a6"; }
.fa-gulp:before {
content: "\f3ae"; }
@ -1783,6 +1924,9 @@ readers do not read off random characters that represent icons */
.fa-hackerrank:before {
content: "\f5f7"; }
.fa-hamburger:before {
content: "\f805"; }
.fa-hammer:before {
content: "\f6e3"; }
@ -1801,6 +1945,9 @@ readers do not read off random characters that represent icons */
.fa-hand-lizard:before {
content: "\f258"; }
.fa-hand-middle-finger:before {
content: "\f806"; }
.fa-hand-paper:before {
content: "\f256"; }
@ -1843,6 +1990,9 @@ readers do not read off random characters that represent icons */
.fa-hanukiah:before {
content: "\f6e6"; }
.fa-hard-hat:before {
content: "\f807"; }
.fa-hashtag:before {
content: "\f292"; }
@ -1870,6 +2020,9 @@ readers do not read off random characters that represent icons */
.fa-heart:before {
content: "\f004"; }
.fa-heart-broken:before {
content: "\f7a9"; }
.fa-heartbeat:before {
content: "\f21e"; }
@ -1897,6 +2050,9 @@ readers do not read off random characters that represent icons */
.fa-hockey-puck:before {
content: "\f453"; }
.fa-holly-berry:before {
content: "\f7aa"; }
.fa-home:before {
content: "\f015"; }
@ -1909,6 +2065,9 @@ readers do not read off random characters that represent icons */
.fa-horse:before {
content: "\f6f0"; }
.fa-horse-head:before {
content: "\f7ab"; }
.fa-hospital:before {
content: "\f0f8"; }
@ -1921,6 +2080,9 @@ readers do not read off random characters that represent icons */
.fa-hot-tub:before {
content: "\f593"; }
.fa-hotdog:before {
content: "\f80f"; }
.fa-hotel:before {
content: "\f594"; }
@ -1957,6 +2119,12 @@ readers do not read off random characters that represent icons */
.fa-i-cursor:before {
content: "\f246"; }
.fa-ice-cream:before {
content: "\f810"; }
.fa-icicles:before {
content: "\f7ad"; }
.fa-id-badge:before {
content: "\f2c1"; }
@ -1966,6 +2134,9 @@ readers do not read off random characters that represent icons */
.fa-id-card-alt:before {
content: "\f47f"; }
.fa-igloo:before {
content: "\f7ae"; }
.fa-image:before {
content: "\f03e"; }
@ -1996,9 +2167,15 @@ readers do not read off random characters that represent icons */
.fa-instagram:before {
content: "\f16d"; }
.fa-intercom:before {
content: "\f7af"; }
.fa-internet-explorer:before {
content: "\f26b"; }
.fa-invision:before {
content: "\f7b0"; }
.fa-ioxhost:before {
content: "\f208"; }
@ -2023,6 +2200,9 @@ readers do not read off random characters that represent icons */
.fa-jenkins:before {
content: "\f3b6"; }
.fa-jira:before {
content: "\f7b1"; }
.fa-joget:before {
content: "\f3b7"; }
@ -2098,6 +2278,9 @@ readers do not read off random characters that represent icons */
.fa-laptop-code:before {
content: "\f5fc"; }
.fa-laptop-medical:before {
content: "\f812"; }
.fa-laravel:before {
content: "\f3bd"; }
@ -2323,12 +2506,18 @@ readers do not read off random characters that represent icons */
.fa-memory:before {
content: "\f538"; }
.fa-mendeley:before {
content: "\f7b3"; }
.fa-menorah:before {
content: "\f676"; }
.fa-mercury:before {
content: "\f223"; }
.fa-meteor:before {
content: "\f753"; }
.fa-microchip:before {
content: "\f2db"; }
@ -2359,6 +2548,9 @@ readers do not read off random characters that represent icons */
.fa-minus-square:before {
content: "\f146"; }
.fa-mitten:before {
content: "\f7b5"; }
.fa-mix:before {
content: "\f3cb"; }
@ -2419,6 +2611,9 @@ readers do not read off random characters that represent icons */
.fa-mouse-pointer:before {
content: "\f245"; }
.fa-mug-hot:before {
content: "\f7b6"; }
.fa-music:before {
content: "\f001"; }
@ -2512,6 +2707,9 @@ readers do not read off random characters that represent icons */
.fa-pagelines:before {
content: "\f18c"; }
.fa-pager:before {
content: "\f815"; }
.fa-paint-brush:before {
content: "\f1fc"; }
@ -2596,6 +2794,9 @@ readers do not read off random characters that represent icons */
.fa-people-carry:before {
content: "\f4ce"; }
.fa-pepper-hot:before {
content: "\f816"; }
.fa-percent:before {
content: "\f295"; }
@ -2605,6 +2806,9 @@ readers do not read off random characters that represent icons */
.fa-periscope:before {
content: "\f3da"; }
.fa-person-booth:before {
content: "\f756"; }
.fa-phabricator:before {
content: "\f3db"; }
@ -2656,6 +2860,9 @@ readers do not read off random characters that represent icons */
.fa-pinterest-square:before {
content: "\f0d3"; }
.fa-pizza-slice:before {
content: "\f818"; }
.fa-place-of-worship:before {
content: "\f67f"; }
@ -2701,6 +2908,9 @@ readers do not read off random characters that represent icons */
.fa-poo:before {
content: "\f2fe"; }
.fa-poo-storm:before {
content: "\f75a"; }
.fa-poop:before {
content: "\f619"; }
@ -2782,15 +2992,30 @@ readers do not read off random characters that represent icons */
.fa-r-project:before {
content: "\f4f7"; }
.fa-radiation:before {
content: "\f7b9"; }
.fa-radiation-alt:before {
content: "\f7ba"; }
.fa-rainbow:before {
content: "\f75b"; }
.fa-random:before {
content: "\f074"; }
.fa-raspberry-pi:before {
content: "\f7bb"; }
.fa-ravelry:before {
content: "\f2d9"; }
.fa-react:before {
content: "\f41b"; }
.fa-reacteurope:before {
content: "\f75d"; }
.fa-readme:before {
content: "\f4d5"; }
@ -2815,6 +3040,9 @@ readers do not read off random characters that represent icons */
.fa-reddit-square:before {
content: "\f1a2"; }
.fa-redhat:before {
content: "\f7bc"; }
.fa-redo:before {
content: "\f01e"; }
@ -2824,9 +3052,6 @@ readers do not read off random characters that represent icons */
.fa-registered:before {
content: "\f25d"; }
.fa-rendact:before {
content: "\f3e4"; }
.fa-renren:before {
content: "\f18b"; }
@ -2839,12 +3064,18 @@ readers do not read off random characters that represent icons */
.fa-replyd:before {
content: "\f3e6"; }
.fa-republican:before {
content: "\f75e"; }
.fa-researchgate:before {
content: "\f4f8"; }
.fa-resolving:before {
content: "\f3e7"; }
.fa-restroom:before {
content: "\f7bd"; }
.fa-retweet:before {
content: "\f079"; }
@ -2914,6 +3145,12 @@ readers do not read off random characters that represent icons */
.fa-sass:before {
content: "\f41e"; }
.fa-satellite:before {
content: "\f7bf"; }
.fa-satellite-dish:before {
content: "\f7c0"; }
.fa-save:before {
content: "\f0c7"; }
@ -2932,6 +3169,9 @@ readers do not read off random characters that represent icons */
.fa-scroll:before {
content: "\f70e"; }
.fa-sd-card:before {
content: "\f7c2"; }
.fa-search:before {
content: "\f002"; }
@ -3034,6 +3274,9 @@ readers do not read off random characters that represent icons */
.fa-signature:before {
content: "\f5b7"; }
.fa-sim-card:before {
content: "\f7c4"; }
.fa-simplybuilt:before {
content: "\f215"; }
@ -3046,6 +3289,18 @@ readers do not read off random characters that represent icons */
.fa-sith:before {
content: "\f512"; }
.fa-skating:before {
content: "\f7c5"; }
.fa-sketch:before {
content: "\f7c6"; }
.fa-skiing:before {
content: "\f7c9"; }
.fa-skiing-nordic:before {
content: "\f7ca"; }
.fa-skull:before {
content: "\f54c"; }
@ -3067,6 +3322,9 @@ readers do not read off random characters that represent icons */
.fa-slash:before {
content: "\f715"; }
.fa-sleigh:before {
content: "\f7cc"; }
.fa-sliders-h:before {
content: "\f1de"; }
@ -3082,12 +3340,18 @@ readers do not read off random characters that represent icons */
.fa-smile-wink:before {
content: "\f4da"; }
.fa-smog:before {
content: "\f75f"; }
.fa-smoking:before {
content: "\f48d"; }
.fa-smoking-ban:before {
content: "\f54d"; }
.fa-sms:before {
content: "\f7cd"; }
.fa-snapchat:before {
content: "\f2ab"; }
@ -3097,9 +3361,18 @@ readers do not read off random characters that represent icons */
.fa-snapchat-square:before {
content: "\f2ad"; }
.fa-snowboarding:before {
content: "\f7ce"; }
.fa-snowflake:before {
content: "\f2dc"; }
.fa-snowman:before {
content: "\f7d0"; }
.fa-snowplow:before {
content: "\f7d2"; }
.fa-socks:before {
content: "\f696"; }
@ -3136,6 +3409,9 @@ readers do not read off random characters that represent icons */
.fa-soundcloud:before {
content: "\f1be"; }
.fa-sourcetree:before {
content: "\f7d3"; }
.fa-spa:before {
content: "\f5bb"; }
@ -3298,6 +3574,9 @@ readers do not read off random characters that represent icons */
.fa-surprise:before {
content: "\f5c2"; }
.fa-suse:before {
content: "\f7d6"; }
.fa-swatchbook:before {
content: "\f5c3"; }
@ -3367,9 +3646,18 @@ readers do not read off random characters that represent icons */
.fa-telegram-plane:before {
content: "\f3fe"; }
.fa-temperature-high:before {
content: "\f769"; }
.fa-temperature-low:before {
content: "\f76b"; }
.fa-tencent-weibo:before {
content: "\f1d5"; }
.fa-tenge:before {
content: "\f7d7"; }
.fa-terminal:before {
content: "\f120"; }
@ -3418,6 +3706,9 @@ readers do not read off random characters that represent icons */
.fa-thermometer-three-quarters:before {
content: "\f2c8"; }
.fa-think-peaks:before {
content: "\f731"; }
.fa-thumbs-down:before {
content: "\f165"; }
@ -3451,12 +3742,18 @@ readers do not read off random characters that represent icons */
.fa-toggle-on:before {
content: "\f205"; }
.fa-toilet:before {
content: "\f7d8"; }
.fa-toilet-paper:before {
content: "\f71e"; }
.fa-toolbox:before {
content: "\f552"; }
.fa-tools:before {
content: "\f7d9"; }
.fa-tooth:before {
content: "\f5c9"; }
@ -3481,6 +3778,9 @@ readers do not read off random characters that represent icons */
.fa-train:before {
content: "\f238"; }
.fa-tram:before {
content: "\f7da"; }
.fa-transgender:before {
content: "\f224"; }
@ -3493,6 +3793,12 @@ readers do not read off random characters that represent icons */
.fa-trash-alt:before {
content: "\f2ed"; }
.fa-trash-restore:before {
content: "\f829"; }
.fa-trash-restore-alt:before {
content: "\f82a"; }
.fa-tree:before {
content: "\f1bb"; }
@ -3550,6 +3856,9 @@ readers do not read off random characters that represent icons */
.fa-uber:before {
content: "\f402"; }
.fa-ubuntu:before {
content: "\f7df"; }
.fa-uikit:before {
content: "\f403"; }
@ -3592,6 +3901,9 @@ readers do not read off random characters that represent icons */
.fa-upload:before {
content: "\f093"; }
.fa-ups:before {
content: "\f7e0"; }
.fa-usb:before {
content: "\f287"; }
@ -3643,6 +3955,9 @@ readers do not read off random characters that represent icons */
.fa-user-ninja:before {
content: "\f504"; }
.fa-user-nurse:before {
content: "\f82f"; }
.fa-user-plus:before {
content: "\f234"; }
@ -3670,6 +3985,9 @@ readers do not read off random characters that represent icons */
.fa-users-cog:before {
content: "\f509"; }
.fa-usps:before {
content: "\f7e1"; }
.fa-ussunnah:before {
content: "\f407"; }
@ -3754,6 +4072,12 @@ readers do not read off random characters that represent icons */
.fa-volume-up:before {
content: "\f028"; }
.fa-vote-yea:before {
content: "\f772"; }
.fa-vr-cardboard:before {
content: "\f729"; }
.fa-vuejs:before {
content: "\f41f"; }
@ -3766,6 +4090,9 @@ readers do not read off random characters that represent icons */
.fa-warehouse:before {
content: "\f494"; }
.fa-water:before {
content: "\f773"; }
.fa-weebly:before {
content: "\f5cc"; }
@ -3853,6 +4180,9 @@ readers do not read off random characters that represent icons */
.fa-wpforms:before {
content: "\f298"; }
.fa-wpressr:before {
content: "\f3e4"; }
.fa-wrench:before {
content: "\f0ad"; }
@ -3880,6 +4210,9 @@ readers do not read off random characters that represent icons */
.fa-yandex-international:before {
content: "\f414"; }
.fa-yarn:before {
content: "\f7e3"; }
.fa-yelp:before {
content: "\f1e9"; }

File diff suppressed because one or more lines are too long

View File

@ -1,11 +1,8 @@
/*!
* Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
@font-face {
font-family: 'Font Awesome 5 Free';
font-style: normal;
font-weight: 400;
font-display: auto;
src: url("../webfonts/fa-regular-400.eot");
src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); }

View File

@ -1,5 +1 @@
/*!
* Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:"Font Awesome 5 Free";font-weight:400}
@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:auto;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:"Font Awesome 5 Free";font-weight:400}

View File

@ -1,11 +1,8 @@
/*!
* Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
@font-face {
font-family: 'Font Awesome 5 Free';
font-style: normal;
font-weight: 900;
font-display: auto;
src: url("../webfonts/fa-solid-900.eot");
src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); }

View File

@ -1,5 +1 @@
/*!
* Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:"Font Awesome 5 Free";font-weight:900}
@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:auto;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:"Font Awesome 5 Free";font-weight:900}

View File

@ -1,7 +1,3 @@
/*!
* Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
svg:not(:root).svg-inline--fa {
overflow: visible; }
@ -287,7 +283,7 @@ svg:not(:root).svg-inline--fa {
-webkit-transform: scale(1, -1);
transform: scale(1, -1); }
.fa-flip-horizontal.fa-flip-vertical {
.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
-webkit-transform: scale(-1, -1);
transform: scale(-1, -1); }
@ -296,7 +292,8 @@ svg:not(:root).svg-inline--fa {
:root .fa-rotate-180,
:root .fa-rotate-270,
:root .fa-flip-horizontal,
:root .fa-flip-vertical {
:root .fa-flip-vertical,
:root .fa-flip-both {
-webkit-filter: none;
filter: none; }
@ -304,7 +301,7 @@ svg:not(:root).svg-inline--fa {
display: inline-block;
height: 2em;
position: relative;
width: 2em; }
width: 2.5em; }
.fa-stack-1x,
.fa-stack-2x {
@ -317,11 +314,11 @@ svg:not(:root).svg-inline--fa {
.svg-inline--fa.fa-stack-1x {
height: 1em;
width: 1em; }
width: 1.25em; }
.svg-inline--fa.fa-stack-2x {
height: 2em;
width: 2em; }
width: 2.5em; }
.fa-inverse {
color: #fff; }

View File

@ -1,5 +1 @@
/*!
* Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
.svg-inline--fa,svg:not(:root).svg-inline--fa{overflow:visible}.svg-inline--fa{display:inline-block;font-size:inherit;height:1em;vertical-align:-.125em}.svg-inline--fa.fa-lg{vertical-align:-.225em}.svg-inline--fa.fa-w-1{width:.0625em}.svg-inline--fa.fa-w-2{width:.125em}.svg-inline--fa.fa-w-3{width:.1875em}.svg-inline--fa.fa-w-4{width:.25em}.svg-inline--fa.fa-w-5{width:.3125em}.svg-inline--fa.fa-w-6{width:.375em}.svg-inline--fa.fa-w-7{width:.4375em}.svg-inline--fa.fa-w-8{width:.5em}.svg-inline--fa.fa-w-9{width:.5625em}.svg-inline--fa.fa-w-10{width:.625em}.svg-inline--fa.fa-w-11{width:.6875em}.svg-inline--fa.fa-w-12{width:.75em}.svg-inline--fa.fa-w-13{width:.8125em}.svg-inline--fa.fa-w-14{width:.875em}.svg-inline--fa.fa-w-15{width:.9375em}.svg-inline--fa.fa-w-16{width:1em}.svg-inline--fa.fa-w-17{width:1.0625em}.svg-inline--fa.fa-w-18{width:1.125em}.svg-inline--fa.fa-w-19{width:1.1875em}.svg-inline--fa.fa-w-20{width:1.25em}.svg-inline--fa.fa-pull-left{margin-right:.3em;width:auto}.svg-inline--fa.fa-pull-right{margin-left:.3em;width:auto}.svg-inline--fa.fa-border{height:1.5em}.svg-inline--fa.fa-li{width:2em}.svg-inline--fa.fa-fw{width:1.25em}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{transform-origin:center center}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers-text{left:50%;top:50%;transform:translate(-50%,-50%);transform-origin:center center}.fa-layers-counter{background-color:#ff253a;border-radius:1em;box-sizing:border-box;color:#fff;height:1.5em;line-height:1;max-width:5em;min-width:1.5em;overflow:hidden;padding:.25em;right:0;text-overflow:ellipsis;top:0;transform:scale(.25);transform-origin:top right}.fa-layers-bottom-right{bottom:0;right:0;top:auto;transform:scale(.25);transform-origin:bottom right}.fa-layers-bottom-left{bottom:0;left:0;right:auto;top:auto;transform:scale(.25);transform-origin:bottom left}.fa-layers-top-right{right:0;top:0;transform:scale(.25);transform-origin:top right}.fa-layers-top-left{left:0;right:auto;top:0;transform:scale(.25);transform-origin:top left}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;position:relative;width:2em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.svg-inline--fa.fa-stack-1x{height:1em;width:1em}.svg-inline--fa.fa-stack-2x{height:2em;width:2em}.fa-inverse{color:#fff}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}
.svg-inline--fa,svg:not(:root).svg-inline--fa{overflow:visible}.svg-inline--fa{display:inline-block;font-size:inherit;height:1em;vertical-align:-.125em}.svg-inline--fa.fa-lg{vertical-align:-.225em}.svg-inline--fa.fa-w-1{width:.0625em}.svg-inline--fa.fa-w-2{width:.125em}.svg-inline--fa.fa-w-3{width:.1875em}.svg-inline--fa.fa-w-4{width:.25em}.svg-inline--fa.fa-w-5{width:.3125em}.svg-inline--fa.fa-w-6{width:.375em}.svg-inline--fa.fa-w-7{width:.4375em}.svg-inline--fa.fa-w-8{width:.5em}.svg-inline--fa.fa-w-9{width:.5625em}.svg-inline--fa.fa-w-10{width:.625em}.svg-inline--fa.fa-w-11{width:.6875em}.svg-inline--fa.fa-w-12{width:.75em}.svg-inline--fa.fa-w-13{width:.8125em}.svg-inline--fa.fa-w-14{width:.875em}.svg-inline--fa.fa-w-15{width:.9375em}.svg-inline--fa.fa-w-16{width:1em}.svg-inline--fa.fa-w-17{width:1.0625em}.svg-inline--fa.fa-w-18{width:1.125em}.svg-inline--fa.fa-w-19{width:1.1875em}.svg-inline--fa.fa-w-20{width:1.25em}.svg-inline--fa.fa-pull-left{margin-right:.3em;width:auto}.svg-inline--fa.fa-pull-right{margin-left:.3em;width:auto}.svg-inline--fa.fa-border{height:1.5em}.svg-inline--fa.fa-li{width:2em}.svg-inline--fa.fa-fw{width:1.25em}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{transform-origin:center center}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers-text{left:50%;top:50%;transform:translate(-50%,-50%);transform-origin:center center}.fa-layers-counter{background-color:#ff253a;border-radius:1em;box-sizing:border-box;color:#fff;height:1.5em;line-height:1;max-width:5em;min-width:1.5em;overflow:hidden;padding:.25em;right:0;text-overflow:ellipsis;top:0;transform:scale(.25);transform-origin:top right}.fa-layers-bottom-right{bottom:0;right:0;top:auto;transform:scale(.25);transform-origin:bottom right}.fa-layers-bottom-left{bottom:0;left:0;right:auto;top:auto;transform:scale(.25);transform-origin:bottom left}.fa-layers-top-right{right:0;top:0;transform:scale(.25);transform-origin:top right}.fa-layers-top-left{left:0;right:auto;top:0;transform:scale(.25);transform-origin:top left}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{display:inline-block;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:#fff}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}

View File

@ -1,7 +1,3 @@
/*!
* Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
.fa.fa-glass:before {
content: "\f000"; }
@ -1777,10 +1773,6 @@
.fa.fa-map-o:before {
content: "\f279"; }
.fa.fa-commenting {
font-family: 'Font Awesome 5 Free';
font-weight: 400; }
.fa.fa-commenting:before {
content: "\f4ad"; }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More