*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
/**
* \file importzugferd/lib/importzugferd.lib.php
* \ingroup importzugferd
* \brief Library files with common functions for ImportZugferd
*/
/**
* Prepare admin pages header
*
* @return array
*/
function importzugferdAdminPrepareHead()
{
global $langs, $conf;
// global $db;
// $extrafields = new ExtraFields($db);
// $extrafields->fetch_name_optionals_label('myobject');
$langs->load("importzugferd@importzugferd");
$h = 0;
$head = array();
$head[$h][0] = dol_buildpath("/importzugferd/admin/setup.php", 1);
$head[$h][1] = $langs->trans("Settings");
$head[$h][2] = 'settings';
$h++;
/*
$head[$h][0] = dol_buildpath("/importzugferd/admin/myobject_extrafields.php", 1);
$head[$h][1] = $langs->trans("ExtraFields");
$nbExtrafields = (isset($extrafields->attributes['myobject']['label']) && is_countable($extrafields->attributes['myobject']['label'])) ? count($extrafields->attributes['myobject']['label']) : 0;
if ($nbExtrafields > 0) {
$head[$h][1] .= '' . $nbExtrafields . '';
}
$head[$h][2] = 'myobject_extrafields';
$h++;
$head[$h][0] = dol_buildpath("/importzugferd/admin/myobjectline_extrafields.php", 1);
$head[$h][1] = $langs->trans("ExtraFieldsLines");
$nbExtrafields = (isset($extrafields->attributes['myobjectline']['label']) && is_countable($extrafields->attributes['myobjectline']['label'])) ? count($extrafields->attributes['myobject']['label']) : 0;
if ($nbExtrafields > 0) {
$head[$h][1] .= '' . $nbExtrafields . '';
}
$head[$h][2] = 'myobject_extrafieldsline';
$h++;
*/
$head[$h][0] = dol_buildpath("/importzugferd/admin/about.php", 1);
$head[$h][1] = $langs->trans("About");
$head[$h][2] = 'about';
$h++;
// Show more tabs from modules
// Entries must be declared in modules descriptor with line
//$this->tabs = array(
// 'entity:+tabname:Title:@importzugferd:/importzugferd/mypage.php?id=__ID__'
//); // to add new tab
//$this->tabs = array(
// 'entity:-tabname:Title:@importzugferd:/importzugferd/mypage.php?id=__ID__'
//); // to remove a tab
complete_head_from_modules($conf, $langs, null, $head, $h, 'importzugferd@importzugferd');
complete_head_from_modules($conf, $langs, null, $head, $h, 'importzugferd@importzugferd', 'remove');
return $head;
}
/**
* Get readable label for UN/ECE Recommendation 20 unit codes
*
* @param string $code UN/ECE unit code (e.g. C62, MTR, LTR)
* @return string Readable label or original code if not found
*/
function zugferdGetUnitLabel($code)
{
// UN/ECE Recommendation 20 - Common unit codes used in ZUGFeRD/Factur-X
$units = array(
// Pieces / Count
'C62' => 'Stk.', // One (piece/unit)
'PCE' => 'Stk.', // Piece
'EA' => 'Stk.', // Each
'H87' => 'Stk.', // Piece
'XPP' => 'Stk.', // Piece
'NAR' => 'Stk.', // Number of articles
'NMP' => 'Stk.', // Number of packs
'NPR' => 'Paar', // Number of pairs
'SET' => 'Set', // Set
'PR' => 'Paar', // Pair
// Length
'MTR' => 'm', // Metre
'CMT' => 'cm', // Centimetre
'MMT' => 'mm', // Millimetre
'KMT' => 'km', // Kilometre
'INH' => 'Zoll', // Inch
'FOT' => 'Fuß', // Foot
'LM' => 'lfm', // Linear metre
// Area
'MTK' => 'm²', // Square metre
'CMK' => 'cm²', // Square centimetre
'MMK' => 'mm²', // Square millimetre
// Volume
'MTQ' => 'm³', // Cubic metre
'LTR' => 'l', // Litre
'MLT' => 'ml', // Millilitre
'HLT' => 'hl', // Hectolitre
'CMQ' => 'cm³', // Cubic centimetre
// Mass / Weight
'KGM' => 'kg', // Kilogram
'GRM' => 'g', // Gram
'MGM' => 'mg', // Milligram
'TNE' => 't', // Tonne (metric ton)
'LBR' => 'lb', // Pound
// Time
'HUR' => 'Std.', // Hour
'MIN' => 'Min.', // Minute
'SEC' => 'Sek.', // Second
'DAY' => 'Tag', // Day
'WEE' => 'Woche', // Week
'MON' => 'Monat', // Month
'ANN' => 'Jahr', // Year
// Packaging
'XBX' => 'Karton', // Box
'XCT' => 'Karton', // Carton
'XPK' => 'Paket', // Package
'XPA' => 'Palette', // Pallet
'XSA' => 'Sack', // Sack
'XBG' => 'Beutel', // Bag
'XBO' => 'Flasche', // Bottle
'XCA' => 'Dose', // Can
'XRO' => 'Rolle', // Roll
'XTU' => 'Tube', // Tube
// Other
'P1' => '%', // Percent
'KWH' => 'kWh', // Kilowatt hour
'MWH' => 'MWh', // Megawatt hour
'WTT' => 'W', // Watt
'KWT' => 'kW', // Kilowatt
);
$code = strtoupper(trim($code));
if (isset($units[$code])) {
return $units[$code];
}
return $code;
}