Merge remote-tracking branch 'Upstream/develop' into develop-a4
Conflicts: htdocs/product/card.php
This commit is contained in:
commit
51640c19bb
19
.travis.yml
19
.travis.yml
@ -109,6 +109,12 @@ install:
|
||||
echo
|
||||
|
||||
before_script:
|
||||
- |
|
||||
echo Start travis
|
||||
echo Current dir is `pwd`
|
||||
echo Home dir is `echo ~`
|
||||
echo TRAVIS_BUILD_DIR is $TRAVIS_BUILD_DIR
|
||||
|
||||
- |
|
||||
echo "Re-enabling Xdebug for PHP CodeSniffer and PHP Unit"
|
||||
phpenv config-add /tmp/xdebug.ini
|
||||
@ -149,7 +155,7 @@ before_script:
|
||||
mysql -e "SELECT VERSION();"
|
||||
echo
|
||||
fi
|
||||
|
||||
|
||||
- |
|
||||
echo "Setting up database"
|
||||
if [ "$DB" = 'mysql' ] || [ "$DB" = 'mariadb' ]; then
|
||||
@ -166,8 +172,8 @@ before_script:
|
||||
echo
|
||||
|
||||
- |
|
||||
echo "Setting up Dolibarr"
|
||||
export CONF_FILE=htdocs/conf/conf.php
|
||||
echo "Setting up Dolibarr $CONF_FILE"
|
||||
echo '<?php ' > $CONF_FILE
|
||||
echo '$'dolibarr_main_url_root=\'http://127.0.0.1\'';' >> $CONF_FILE
|
||||
echo '$'dolibarr_main_document_root=\'$TRAVIS_BUILD_DIR/htdocs\'';' >> $CONF_FILE
|
||||
@ -184,15 +190,9 @@ before_script:
|
||||
#fi
|
||||
# TODO: SQLite
|
||||
echo '$'dolibarr_main_authentication=\'dolibarr\'';' >> $CONF_FILE
|
||||
cat $CONF_FILE
|
||||
echo
|
||||
|
||||
- |
|
||||
if [ "$DEBUG" = true ]; then
|
||||
echo "Debugging informations"
|
||||
cat $CONF_FILE
|
||||
echo
|
||||
fi
|
||||
|
||||
- |
|
||||
echo "Create documents directory and set permissions"
|
||||
# and admin/temp subdirectory needed for unit tests
|
||||
@ -306,3 +306,4 @@ after_failure:
|
||||
fi
|
||||
|
||||
after_script:
|
||||
|
||||
|
||||
@ -124,7 +124,7 @@
|
||||
<!-- Tweaks to metrics -->
|
||||
<rule ref="Generic.Metrics.CyclomaticComplexity">
|
||||
<properties>
|
||||
<property name="complexity" value="80" />
|
||||
<property name="complexity" value="120" />
|
||||
<property name="absoluteComplexity" value="250" />
|
||||
</properties>
|
||||
</rule>
|
||||
|
||||
@ -88,7 +88,7 @@ $extrafields = new ExtraFields($db);
|
||||
********************************************************************/
|
||||
|
||||
$parameters=array();
|
||||
$reshook=$hookmanager->executeHooks('doActions',$parameters); // Note that $action and $object may have been modified by some hooks
|
||||
$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
||||
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
||||
|
||||
if (empty($reshook))
|
||||
|
||||
@ -124,7 +124,7 @@ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_lab
|
||||
********************************************************************/
|
||||
|
||||
$parameters=array();
|
||||
$reshook=$hookmanager->executeHooks('doActions',$parameters); // Note that $action and $object may have been modified by some hooks
|
||||
$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
||||
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
||||
|
||||
include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
|
||||
|
||||
@ -7,13 +7,15 @@
|
||||
# Usage: txpush.sh (source|xx_XX) [-r dolibarr.file] [-f]
|
||||
#------------------------------------------------------
|
||||
|
||||
export project='dolibarr'
|
||||
|
||||
# Syntax
|
||||
if [ "x$1" = "x" ]
|
||||
then
|
||||
echo "This push local files to transifex."
|
||||
echo "This push local files to transifex for project $project."
|
||||
echo "Note: If you push a language file (not source), file will be skipped if transifex file is newer."
|
||||
echo " Using -f will overwrite translation but not memory."
|
||||
echo "Usage: ./dev/translation/txpush.sh (source|xx_XX) [-r dolibarr.file] [-f] [--no-interactive]"
|
||||
echo "Usage: ./dev/translation/txpush.sh (source|xx_XX|all) [-r dolibarr.file] [-f] [--no-interactive]"
|
||||
exit
|
||||
fi
|
||||
|
||||
@ -28,11 +30,24 @@ then
|
||||
echo "tx push -s $2 $3"
|
||||
tx push -s $2 $3
|
||||
else
|
||||
for file in `find htdocs/langs/$1/*.lang -type f`
|
||||
do
|
||||
echo $file
|
||||
export basefile=`basename $file | sed -s s/\.lang//g`
|
||||
echo "tx push --skip -r dolibarr.$basefile -t -l $1 $2 $3 $4"
|
||||
tx push --skip -r dolibarr.$basefile -t -l $1 $2 $3 $4
|
||||
done
|
||||
if [ "x$1" = "xall" ]
|
||||
then
|
||||
for dir in `find htdocs/langs/* -type d`
|
||||
do
|
||||
shortdir=`basename $dir`
|
||||
file=$3
|
||||
echo $file
|
||||
export basefile=`basename $file | sed -s s/\.lang//g`
|
||||
echo "tx push --skip -t -l $shortdir $2 $3 $4"
|
||||
tx push --skip -t -l $shortdir $2 $3 $4
|
||||
done
|
||||
else
|
||||
for file in `find htdocs/langs/$1/*.lang -type f`
|
||||
do
|
||||
echo $file
|
||||
export basefile=`basename $file | sed -s s/\.lang//g`
|
||||
echo "tx push --skip -r $project.$basefile -t -l $1 $2 $3 $4"
|
||||
tx push --skip -r $project.$basefile -t -l $1 $2 $3 $4
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -148,14 +148,14 @@ if ($action == 'create')
|
||||
dol_fiche_head();
|
||||
|
||||
print '<table class="border" width="100%">';
|
||||
|
||||
print '<tr><td width="25%">' . $langs->trans("AccountNumber") . '</td>';
|
||||
|
||||
print '<tr><td width="25%"><span class="fieldrequired">' . $langs->trans("AccountNumber") . '</span></td>';
|
||||
print '<td><input name="account_number" size="30" value="' . $accounting->account_number . '"</td></tr>';
|
||||
print '<tr><td>' . $langs->trans("Label") . '</td>';
|
||||
print '<tr><td><span class="fieldrequired">' . $langs->trans("Label") . '</span></td>';
|
||||
print '<td><input name="label" size="70" value="' . $accounting->label . '"</td></tr>';
|
||||
print '<tr><td>' . $langs->trans("Accountparent") . '</td>';
|
||||
print '<td>';
|
||||
print $htmlacc->select_account($accounting->account_parent, 'account_parent');
|
||||
print $htmlacc->select_account($accounting->account_parent, 'account_parent', 1);
|
||||
print '</td></tr>';
|
||||
print '<tr><td>' . $langs->trans("Pcgtype") . '</td>';
|
||||
print '<td>';
|
||||
@ -204,13 +204,13 @@ else if ($id)
|
||||
|
||||
print '<table class="border" width="100%">';
|
||||
|
||||
print '<tr><td width="25%">' . $langs->trans("AccountNumber") . '</td>';
|
||||
print '<tr><td width="25%"><span class="fieldrequired">' . $langs->trans("AccountNumber") . '</span></td>';
|
||||
print '<td><input name="account_number" size="30" value="' . $accounting->account_number . '"</td></tr>';
|
||||
print '<tr><td>' . $langs->trans("Label") . '</td>';
|
||||
print '<tr><td><span class="fieldrequired">' . $langs->trans("Label") . '</span></td>';
|
||||
print '<td><input name="label" size="70" value="' . $accounting->label . '"</td></tr>';
|
||||
print '<tr><td>' . $langs->trans("Accountparent") . '</td>';
|
||||
print '<td>';
|
||||
print $htmlacc->select_account($accounting->account_parent, 'account_parent');
|
||||
print $htmlacc->select_account($accounting->account_parent, 'account_parent', 1);
|
||||
print '</td></tr>';
|
||||
print '<tr><td>' . $langs->trans("Pcgtype") . '</td>';
|
||||
print '<td>';
|
||||
|
||||
@ -98,7 +98,8 @@ abstract class ActionsAdherentCardCommon
|
||||
}
|
||||
|
||||
/**
|
||||
* Load data control
|
||||
* doActions of a canvas is not the doActions of the hook
|
||||
* @deprecated Use the doActions of hooks instead of this.
|
||||
*
|
||||
* @param string $action Type of action
|
||||
* @param int $id Id of object
|
||||
|
||||
@ -97,7 +97,7 @@ if ($action == 'setModuleOptions')
|
||||
|
||||
if (! $error)
|
||||
{
|
||||
setEventMessages($langs->trans("SetupSaved"), null, 'msgs');
|
||||
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -2,7 +2,8 @@
|
||||
/* Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2005-2009 Regis Houssin <regis.houssin@capnetworks.com>
|
||||
* Copyright (C) 2006 Andre Cianfarani <acianfa@free.fr>
|
||||
* Copyright (C) 2011-2015 Juanjo Menent <jmenent@2byte.es>
|
||||
* Copyright (C) 2011-2015 Juanjo Menent <jmenent@2byte.es>ù
|
||||
* Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
|
||||
*
|
||||
* 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
|
||||
@ -26,6 +27,7 @@
|
||||
|
||||
require '../main.inc.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/expedition.lib.php';
|
||||
|
||||
$langs->load("admin");
|
||||
$langs->load("sendings");
|
||||
@ -76,29 +78,9 @@ llxHeader("","");
|
||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
||||
print load_fiche_titre($langs->trans("SendingsSetup"),$linkback,'title_setup');
|
||||
print '<br>';
|
||||
$head = expedition_admin_prepare_head();
|
||||
|
||||
$h = 0;
|
||||
|
||||
$head[$h][0] = DOL_URL_ROOT."/admin/confexped.php";
|
||||
$head[$h][1] = $langs->trans("Setup");
|
||||
$hselected=$h;
|
||||
$h++;
|
||||
|
||||
if (! empty($conf->global->MAIN_SUBMODULE_EXPEDITION))
|
||||
{
|
||||
$head[$h][0] = DOL_URL_ROOT."/admin/expedition.php";
|
||||
$head[$h][1] = $langs->trans("Shipment");
|
||||
$h++;
|
||||
}
|
||||
|
||||
if (! empty($conf->global->MAIN_SUBMODULE_LIVRAISON))
|
||||
{
|
||||
$head[$h][0] = DOL_URL_ROOT."/admin/livraison.php";
|
||||
$head[$h][1] = $langs->trans("Receivings");
|
||||
$h++;
|
||||
}
|
||||
|
||||
dol_fiche_head($head, $hselected, $langs->trans("ModuleSetup"));
|
||||
dol_fiche_head($head, 'general', $langs->trans("ModuleSetup"), 0, 'sending');
|
||||
|
||||
/*
|
||||
* Formulaire parametres divers
|
||||
|
||||
@ -478,20 +478,16 @@ if ($id == 11)
|
||||
if ($id == 25)
|
||||
{
|
||||
// We save list of template type Dolibarr can manage. This list can found by a grep into code on "->param['models']"
|
||||
$elementList = array(
|
||||
'propal_send' => $langs->trans('MailToSendProposal'),
|
||||
'order_send' => $langs->trans('MailToSendOrder'),
|
||||
'facture_send' => $langs->trans('MailToSendInvoice'),
|
||||
|
||||
'shipping_send' => $langs->trans('MailToSendShipment'),
|
||||
'fichinter_send' => $langs->trans('MailToSendIntervention'),
|
||||
|
||||
'supplier_proposal_send' => $langs->trans('MailToSendSupplierRequestForQuotation'),
|
||||
'order_supplier_send' => $langs->trans('MailToSendSupplierOrder'),
|
||||
'invoice_supplier_send' => $langs->trans('MailToSendSupplierInvoice'),
|
||||
|
||||
'thirdparty' => $langs->trans('MailToThirdparty')
|
||||
);
|
||||
$elementList = array();
|
||||
if ($conf->propal->enabled) $elementList['propal_send']=$langs->trans('MailToSendProposal');
|
||||
if ($conf->commande->enabled) $elementList['order_send']=$langs->trans('MailToSendOrder');
|
||||
if ($conf->facture->enabled) $elementList['facture_send']=$langs->trans('MailToSendInvoice');
|
||||
if ($conf->expedition->enabled) $elementList['shipping_send']=$langs->trans('MailToSendShipment');
|
||||
if ($conf->ficheinter->enabled) $elementList['fichinter_send']=$langs->trans('MailToSendIntervention');
|
||||
if ($conf->supplier_proposal->enabled) $elementList['supplier_proposal_send']=$langs->trans('MailToSendSupplierRequestForQuotation');
|
||||
if ($conf->fournisseur->enabled) $elementList['order_supplier_send']=$langs->trans('MailToSendSupplierOrder');
|
||||
if ($conf->fournisseur->enabled) $elementList['invoice_supplier_send']=$langs->trans('MailToSendSupplierInvoice');
|
||||
if ($conf->societe->enabled) $elementList['thirdparty']=$langs->trans('MailToThirdparty');
|
||||
}
|
||||
|
||||
// Define localtax_typeList (used for dictionary "llx_c_tva")
|
||||
|
||||
@ -30,6 +30,7 @@
|
||||
|
||||
require '../main.inc.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/expedition.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php';
|
||||
|
||||
$langs->load("admin");
|
||||
@ -219,30 +220,9 @@ llxHeader("","");
|
||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
||||
print load_fiche_titre($langs->trans("SendingsSetup"),$linkback,'title_setup');
|
||||
print '<br>';
|
||||
$head = expedition_admin_prepare_head();
|
||||
|
||||
|
||||
//if ($mesg) print $mesg.'<br>';
|
||||
|
||||
|
||||
$h = 0;
|
||||
|
||||
$head[$h][0] = DOL_URL_ROOT."/admin/confexped.php";
|
||||
$head[$h][1] = $langs->trans("Setup");
|
||||
$h++;
|
||||
|
||||
$head[$h][0] = DOL_URL_ROOT."/admin/expedition.php";
|
||||
$head[$h][1] = $langs->trans("Shipment");
|
||||
$hselected=$h;
|
||||
$h++;
|
||||
|
||||
if (! empty($conf->global->MAIN_SUBMODULE_LIVRAISON))
|
||||
{
|
||||
$head[$h][0] = DOL_URL_ROOT."/admin/livraison.php";
|
||||
$head[$h][1] = $langs->trans("Receivings");
|
||||
$h++;
|
||||
}
|
||||
|
||||
dol_fiche_head($head, $hselected, $langs->trans("ModuleSetup"));
|
||||
dol_fiche_head($head, 'shipment', $langs->trans("Sendings"), 0, 'sending');
|
||||
|
||||
/*
|
||||
* Expedition numbering model
|
||||
|
||||
126
htdocs/admin/expedition_extrafields.php
Normal file
126
htdocs/admin/expedition_extrafields.php
Normal file
@ -0,0 +1,126 @@
|
||||
<?php
|
||||
/* Copyright (C) 2001-2002 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||
* Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org>
|
||||
* Copyright (C) 2004-2013 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||
* Copyright (C) 2012 Florian Henry <florian.henry@open-concept.pro>
|
||||
* Copyright (C) 2013 Philippe Grand <philippe.grand@atoo-net.com>
|
||||
* Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file htdocs/admin/expedition_extrafields.php
|
||||
* \ingroup expedition
|
||||
* \brief Page to setup extra fields of expedition
|
||||
*/
|
||||
|
||||
require '../main.inc.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/expedition.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
|
||||
|
||||
|
||||
if (!$user->admin)
|
||||
accessforbidden();
|
||||
|
||||
$langs->load("admin");
|
||||
$langs->load("other");
|
||||
$langs->load("sendings");
|
||||
$langs->load("deliveries");
|
||||
|
||||
|
||||
$extrafields = new ExtraFields($db);
|
||||
$form = new Form($db);
|
||||
|
||||
// List of supported format
|
||||
$tmptype2label=ExtraFields::$type2label;
|
||||
$type2label=array('');
|
||||
foreach ($tmptype2label as $key => $val) $type2label[$key]=$langs->trans($val);
|
||||
|
||||
$action=GETPOST('action', 'alpha');
|
||||
$attrname=GETPOST('attrname', 'alpha');
|
||||
$elementtype='expedition'; //Must be the $table_element of the class that manage extrafield
|
||||
|
||||
if (!$user->admin) accessforbidden();
|
||||
|
||||
|
||||
/*
|
||||
* Actions
|
||||
*/
|
||||
|
||||
require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php';
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* View
|
||||
*/
|
||||
|
||||
$textobject=$langs->transnoentitiesnoconv("Sendings");
|
||||
|
||||
llxHeader('',$langs->trans("SendingsSetup"));
|
||||
|
||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
||||
print load_fiche_titre($langs->trans("SendingsSetup"),$linkback,'title_setup');
|
||||
print "<br>\n";
|
||||
|
||||
$head = expedition_admin_prepare_head();
|
||||
|
||||
dol_fiche_head($head, 'attributes_shipment', $langs->trans("Sendings"), 0, 'sending');
|
||||
|
||||
require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php';
|
||||
|
||||
dol_fiche_end();
|
||||
|
||||
|
||||
// Buttons
|
||||
if ($action != 'create' && $action != 'edit')
|
||||
{
|
||||
print '<div class="tabsAction">';
|
||||
print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
|
||||
print "</div>";
|
||||
}
|
||||
|
||||
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* Creation d'un champ optionnel */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
if ($action == 'create')
|
||||
{
|
||||
print "<br>";
|
||||
print load_fiche_titre($langs->trans('NewAttribute'));
|
||||
|
||||
require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
|
||||
}
|
||||
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* Edition d'un champ optionnel */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
if ($action == 'edit' && ! empty($attrname))
|
||||
{
|
||||
print "<br>";
|
||||
print load_fiche_titre($langs->trans("FieldEdition", $attrname));
|
||||
|
||||
require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
|
||||
}
|
||||
|
||||
llxFooter();
|
||||
|
||||
$db->close();
|
||||
126
htdocs/admin/expeditiondet_extrafields.php
Normal file
126
htdocs/admin/expeditiondet_extrafields.php
Normal file
@ -0,0 +1,126 @@
|
||||
<?php
|
||||
/* Copyright (C) 2001-2002 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||
* Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org>
|
||||
* Copyright (C) 2004-2013 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||
* Copyright (C) 2012 Florian Henry <florian.henry@open-concept.pro>
|
||||
* Copyright (C) 2013 Philippe Grand <philippe.grand@atoo-net.com>
|
||||
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
|
||||
* Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
|
||||
*
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file htdocs/admin/expeditiondet_extrafields.php
|
||||
* \ingroup expedition
|
||||
* \brief Page to setup extra fields of expedition
|
||||
*/
|
||||
|
||||
require '../main.inc.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/expedition.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
|
||||
|
||||
|
||||
if (!$user->admin)
|
||||
accessforbidden();
|
||||
|
||||
$langs->load("admin");
|
||||
$langs->load("other");
|
||||
$langs->load("sendings");
|
||||
|
||||
$extrafields = new ExtraFields($db);
|
||||
$form = new Form($db);
|
||||
|
||||
// List of supported format
|
||||
$tmptype2label=ExtraFields::$type2label;
|
||||
$type2label=array('');
|
||||
foreach ($tmptype2label as $key => $val) $type2label[$key]=$langs->trans($val);
|
||||
|
||||
$action=GETPOST('action', 'alpha');
|
||||
$attrname=GETPOST('attrname', 'alpha');
|
||||
$elementtype='expeditiondet'; //Must be the $table_element of the class that manage extrafield
|
||||
|
||||
if (!$user->admin) accessforbidden();
|
||||
|
||||
|
||||
/*
|
||||
* Actions
|
||||
*/
|
||||
|
||||
require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php';
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* View
|
||||
*/
|
||||
|
||||
$textobject=$langs->transnoentitiesnoconv("Sendings");
|
||||
|
||||
llxHeader('',$langs->trans("SendingsSetup"));
|
||||
|
||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
||||
print load_fiche_titre($langs->trans("SendingsSetup"),$linkback,'title_setup');
|
||||
print "<br>\n";
|
||||
|
||||
$head = expedition_admin_prepare_head();
|
||||
|
||||
dol_fiche_head($head, 'attributeslines_shipment', $langs->trans("Sendings"), 0, 'sending');
|
||||
|
||||
require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php';
|
||||
|
||||
dol_fiche_end();
|
||||
|
||||
|
||||
// Buttons
|
||||
if ($action != 'create' && $action != 'edit')
|
||||
{
|
||||
print '<div class="tabsAction">';
|
||||
print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
|
||||
print "</div>";
|
||||
}
|
||||
|
||||
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* Creation d'un champ optionnel */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
if ($action == 'create')
|
||||
{
|
||||
print "<br>";
|
||||
print load_fiche_titre($langs->trans('NewAttribute'));
|
||||
|
||||
require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
|
||||
}
|
||||
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* Edition d'un champ optionnel */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
if ($action == 'edit' && ! empty($attrname))
|
||||
{
|
||||
print "<br>";
|
||||
print load_fiche_titre($langs->trans("FieldEdition", $attrname));
|
||||
|
||||
require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
|
||||
}
|
||||
|
||||
llxFooter();
|
||||
|
||||
$db->close();
|
||||
@ -180,21 +180,21 @@ else
|
||||
|
||||
// Always show vat rates with vat 0
|
||||
$s=2/7;$qty=1;$vat=0;
|
||||
$tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0,0);
|
||||
$tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0,0,$mysoc);
|
||||
print $langs->trans("UnitPriceOfProduct").": ".price2num($s,'MU');
|
||||
print " x ".$langs->trans("Quantity").": ".$qty;
|
||||
print " - ".$langs->trans("VAT").": ".$vat.'%';
|
||||
print " -> ".$langs->trans("TotalPriceAfterRounding").": ".$tmparray[0].' / '.$tmparray[1].' / '.$tmparray[2]."<br>\n";
|
||||
|
||||
$s=10/3;$qty=1;$vat=0;
|
||||
$tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0,0);
|
||||
$tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0,0,$mysoc);
|
||||
print $langs->trans("UnitPriceOfProduct").": ".price2num($s,'MU');
|
||||
print " x ".$langs->trans("Quantity").": ".$qty;
|
||||
print " - ".$langs->trans("VAT").": ".$vat.'%';
|
||||
print " -> ".$langs->trans("TotalPriceAfterRounding").": ".$tmparray[0].' / '.$tmparray[1].' / '.$tmparray[2]."<br>\n";
|
||||
|
||||
$s=10/3;$qty=2;$vat=0;
|
||||
$tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0, 0);
|
||||
$tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0, 0,$mysoc);
|
||||
print $langs->trans("UnitPriceOfProduct").": ".price2num($s,'MU');
|
||||
print " x ".$langs->trans("Quantity").": ".$qty;
|
||||
print " - ".$langs->trans("VAT").": ".$vat.'%';
|
||||
@ -230,7 +230,7 @@ else
|
||||
for ($qty=1; $qty<=2; $qty++)
|
||||
{
|
||||
$s=10/3;
|
||||
$tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0, 0);
|
||||
$tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0, 0,$mysoc);
|
||||
print $langs->trans("UnitPriceOfProduct").": ".price2num($s,'MU');
|
||||
print " x ".$langs->trans("Quantity").": ".$qty;
|
||||
print " - ".$langs->trans("VAT").": ".$vat.'%';
|
||||
@ -245,14 +245,14 @@ else
|
||||
// were calculated to show all possible cases of rounding. If we change this, examples becomes useless or show the same rounding rule.
|
||||
|
||||
$s=10/3;$qty=1;$vat=10;
|
||||
$tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0, 0);
|
||||
$tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0, 0,$mysoc);
|
||||
print $langs->trans("UnitPriceOfProduct").": ".price2num($s,'MU');
|
||||
print " x ".$langs->trans("Quantity").": ".$qty;
|
||||
print " - ".$langs->trans("VAT").": ".$vat.'%';
|
||||
print " -> ".$langs->trans("TotalPriceAfterRounding").": ".$tmparray[0].' / '.$tmparray[1].' / '.$tmparray[2]."<br>\n";
|
||||
|
||||
$s=10/3;$qty=2;$vat=10;
|
||||
$tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0, 0);
|
||||
$tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0, 0,$mysoc);
|
||||
print $langs->trans("UnitPriceOfProduct").": ".price2num($s,'MU');
|
||||
print " x ".$langs->trans("Quantity").": ".$qty;
|
||||
print " - ".$langs->trans("VAT").": ".$vat.'%';
|
||||
@ -272,8 +272,8 @@ else
|
||||
$s2=2/7;
|
||||
|
||||
// Round by line
|
||||
$tmparray1=calcul_price_total(1,$qty*price2num($s1,'MU'),0,$vat,0,0,0,'HT',0, 0);
|
||||
$tmparray2=calcul_price_total(1,$qty*price2num($s2,'MU'),0,$vat,0,0,0,'HT',0, 0);
|
||||
$tmparray1=calcul_price_total(1,$qty*price2num($s1,'MU'),0,$vat,0,0,0,'HT',0, 0,$mysoc);
|
||||
$tmparray2=calcul_price_total(1,$qty*price2num($s2,'MU'),0,$vat,0,0,0,'HT',0, 0,$mysoc);
|
||||
$total_ht = $tmparray1[0] + $tmparray2[0];
|
||||
$total_tva = $tmparray1[1] + $tmparray2[1];
|
||||
$total_ttc = $tmparray1[2] + $tmparray2[2];
|
||||
@ -296,7 +296,7 @@ else
|
||||
|
||||
// Global round
|
||||
$subtotal_ht = (($qty*price2num($s1,'MU')) + ($qty*price2num($s2,'MU')));
|
||||
$tmparray3=calcul_price_total(1,$subtotal_ht,0,$vat,0,0,0,'HT',0, 0);
|
||||
$tmparray3=calcul_price_total(1,$subtotal_ht,0,$vat,0,0,0,'HT',0, 0,$mysoc);
|
||||
$total_ht = $tmparray3[0];
|
||||
$total_tva = $tmparray3[1];
|
||||
$total_ttc = $tmparray3[2];
|
||||
|
||||
@ -7,6 +7,7 @@
|
||||
* Copyright (C) 2005-2014 Regis Houssin <regis.houssin@capnetworks.com>
|
||||
* Copyright (C) 2011-2013 Juanjo Menent <jmenent@2byte.es>
|
||||
* Copyright (C) 2011-2015 Philippe Grand <philippe.grand@atoo-net.com>
|
||||
* Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
|
||||
*
|
||||
* 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
|
||||
@ -29,6 +30,7 @@
|
||||
*/
|
||||
require '../main.inc.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/expedition.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/livraison/class/livraison.class.php';
|
||||
|
||||
$langs->load("admin");
|
||||
@ -210,28 +212,10 @@ $form=new Form($db);
|
||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
||||
print load_fiche_titre($langs->trans("SendingsSetup"),$linkback,'title_setup');
|
||||
print '<br>';
|
||||
$head = expedition_admin_prepare_head();
|
||||
|
||||
dol_fiche_head($head, 'receivings', $langs->trans("Receivings"), 0, 'sending');
|
||||
|
||||
$h = 0;
|
||||
|
||||
$head[$h][0] = DOL_URL_ROOT."/admin/confexped.php";
|
||||
$head[$h][1] = $langs->trans("Setup");
|
||||
$h++;
|
||||
|
||||
if (! empty($conf->global->MAIN_SUBMODULE_EXPEDITION))
|
||||
{
|
||||
$head[$h][0] = DOL_URL_ROOT."/admin/expedition.php";
|
||||
$head[$h][1] = $langs->trans("Shipment");
|
||||
$h++;
|
||||
}
|
||||
|
||||
$head[$h][0] = DOL_URL_ROOT."/admin/livraison.php";
|
||||
$head[$h][1] = $langs->trans("Receivings");
|
||||
$hselected=$h;
|
||||
$h++;
|
||||
|
||||
|
||||
dol_fiche_head($head, $hselected, $langs->trans("ModuleSetup"));
|
||||
|
||||
/*
|
||||
* Livraison numbering model
|
||||
|
||||
126
htdocs/admin/livraison_extrafields.php
Normal file
126
htdocs/admin/livraison_extrafields.php
Normal file
@ -0,0 +1,126 @@
|
||||
<?php
|
||||
/* Copyright (C) 2001-2002 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||
* Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org>
|
||||
* Copyright (C) 2004-2013 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||
* Copyright (C) 2012 Florian Henry <florian.henry@open-concept.pro>
|
||||
* Copyright (C) 2013 Philippe Grand <philippe.grand@atoo-net.com>
|
||||
* Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file htdocs/admin/livraison_extrafields.php
|
||||
* \ingroup livraison
|
||||
* \brief Page to setup extra fields of livraison
|
||||
*/
|
||||
|
||||
require '../main.inc.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/expedition.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
|
||||
|
||||
|
||||
if (!$user->admin)
|
||||
accessforbidden();
|
||||
|
||||
$langs->load("admin");
|
||||
$langs->load("other");
|
||||
$langs->load("sendings");
|
||||
$langs->load("deliveries");
|
||||
|
||||
|
||||
$extrafields = new ExtraFields($db);
|
||||
$form = new Form($db);
|
||||
|
||||
// List of supported format
|
||||
$tmptype2label=ExtraFields::$type2label;
|
||||
$type2label=array('');
|
||||
foreach ($tmptype2label as $key => $val) $type2label[$key]=$langs->trans($val);
|
||||
|
||||
$action=GETPOST('action', 'alpha');
|
||||
$attrname=GETPOST('attrname', 'alpha');
|
||||
$elementtype='livraison'; //Must be the $table_element of the class that manage extrafield
|
||||
|
||||
if (!$user->admin) accessforbidden();
|
||||
|
||||
|
||||
/*
|
||||
* Actions
|
||||
*/
|
||||
|
||||
require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php';
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* View
|
||||
*/
|
||||
|
||||
$textobject=$langs->transnoentitiesnoconv("Receivings");
|
||||
|
||||
llxHeader('',$langs->trans("SendingsSetup"));
|
||||
|
||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
||||
print load_fiche_titre($langs->trans("SendingsSetup"),$linkback,'title_setup');
|
||||
print "<br>\n";
|
||||
|
||||
$head = expedition_admin_prepare_head();
|
||||
|
||||
dol_fiche_head($head, 'attributes_receivings', $langs->trans("Receivings"), 0, 'sending');
|
||||
|
||||
require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php';
|
||||
|
||||
dol_fiche_end();
|
||||
|
||||
|
||||
// Buttons
|
||||
if ($action != 'create' && $action != 'edit')
|
||||
{
|
||||
print '<div class="tabsAction">';
|
||||
print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
|
||||
print "</div>";
|
||||
}
|
||||
|
||||
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* Creation d'un champ optionnel */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
if ($action == 'create')
|
||||
{
|
||||
print "<br>";
|
||||
print load_fiche_titre($langs->trans('NewAttribute'));
|
||||
|
||||
require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
|
||||
}
|
||||
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* Edition d'un champ optionnel */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
if ($action == 'edit' && ! empty($attrname))
|
||||
{
|
||||
print "<br>";
|
||||
print load_fiche_titre($langs->trans("FieldEdition", $attrname));
|
||||
|
||||
require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
|
||||
}
|
||||
|
||||
llxFooter();
|
||||
|
||||
$db->close();
|
||||
126
htdocs/admin/livraisondet_extrafields.php
Normal file
126
htdocs/admin/livraisondet_extrafields.php
Normal file
@ -0,0 +1,126 @@
|
||||
<?php
|
||||
/* Copyright (C) 2001-2002 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||
* Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org>
|
||||
* Copyright (C) 2004-2013 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||
* Copyright (C) 2012 Florian Henry <florian.henry@open-concept.pro>
|
||||
* Copyright (C) 2013 Philippe Grand <philippe.grand@atoo-net.com>
|
||||
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
|
||||
* Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
|
||||
*
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file htdocs/admin/livraisondet_extrafields.php
|
||||
* \ingroup livraison
|
||||
* \brief Page to setup extra fields of livraison
|
||||
*/
|
||||
|
||||
require '../main.inc.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/expedition.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
|
||||
|
||||
|
||||
if (!$user->admin)
|
||||
accessforbidden();
|
||||
|
||||
$langs->load("admin");
|
||||
$langs->load("other");
|
||||
$langs->load("sendings");
|
||||
|
||||
$extrafields = new ExtraFields($db);
|
||||
$form = new Form($db);
|
||||
|
||||
// List of supported format
|
||||
$tmptype2label=ExtraFields::$type2label;
|
||||
$type2label=array('');
|
||||
foreach ($tmptype2label as $key => $val) $type2label[$key]=$langs->trans($val);
|
||||
|
||||
$action=GETPOST('action', 'alpha');
|
||||
$attrname=GETPOST('attrname', 'alpha');
|
||||
$elementtype='livraisondet'; //Must be the $table_element of the class that manage extrafield
|
||||
|
||||
if (!$user->admin) accessforbidden();
|
||||
|
||||
|
||||
/*
|
||||
* Actions
|
||||
*/
|
||||
|
||||
require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php';
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* View
|
||||
*/
|
||||
|
||||
$textobject=$langs->transnoentitiesnoconv("Receivings");
|
||||
|
||||
llxHeader('',$langs->trans("SendingsSetup"));
|
||||
|
||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
||||
print load_fiche_titre($langs->trans("SendingsSetup"),$linkback,'title_setup');
|
||||
print "<br>\n";
|
||||
|
||||
$head = expedition_admin_prepare_head();
|
||||
|
||||
dol_fiche_head($head, 'attributeslines_receivings', $langs->trans("Receivings"), 0, 'sending');
|
||||
|
||||
require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php';
|
||||
|
||||
dol_fiche_end();
|
||||
|
||||
|
||||
// Buttons
|
||||
if ($action != 'create' && $action != 'edit')
|
||||
{
|
||||
print '<div class="tabsAction">';
|
||||
print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
|
||||
print "</div>";
|
||||
}
|
||||
|
||||
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* Creation d'un champ optionnel */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
if ($action == 'create')
|
||||
{
|
||||
print "<br>";
|
||||
print load_fiche_titre($langs->trans('NewAttribute'));
|
||||
|
||||
require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
|
||||
}
|
||||
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* Edition d'un champ optionnel */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
if ($action == 'edit' && ! empty($attrname))
|
||||
{
|
||||
print "<br>";
|
||||
print load_fiche_titre($langs->trans("FieldEdition", $attrname));
|
||||
|
||||
require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
|
||||
}
|
||||
|
||||
llxFooter();
|
||||
|
||||
$db->close();
|
||||
@ -89,7 +89,7 @@ class Facturation
|
||||
*/
|
||||
public function ajoutArticle()
|
||||
{
|
||||
global $conf,$db;
|
||||
global $conf,$db,$mysoc;
|
||||
|
||||
$thirdpartyid = $_SESSION['CASHDESK_ID_THIRDPARTY'];
|
||||
|
||||
@ -118,7 +118,7 @@ class Facturation
|
||||
}
|
||||
|
||||
// Define part of HT, VAT, TTC
|
||||
$resultarray=calcul_price_total($this->qte,$this->prix(),$this->remisePercent(),$vat_rate,0,0,0,'HT',0,$product->type,0);
|
||||
$resultarray=calcul_price_total($this->qte,$this->prix(),$this->remisePercent(),$vat_rate,0,0,0,'HT',0,$product->type,$mysoc);
|
||||
|
||||
// Calcul du total ht sans remise
|
||||
$total_ht = $resultarray[0];
|
||||
|
||||
@ -325,7 +325,7 @@ if (empty($reshook))
|
||||
for($i = 0; $i < $num; $i ++)
|
||||
{
|
||||
$label = (! empty($lines[$i]->label) ? $lines[$i]->label : '');
|
||||
$desc = (! empty($lines[$i]->desc) ? $lines[$i]->desc : $lines[$i]->libelle);
|
||||
$desc = (! empty($lines[$i]->desc) ? $lines[$i]->desc : '');
|
||||
$product_type = (! empty($lines[$i]->product_type) ? $lines[$i]->product_type : 0);
|
||||
|
||||
// Dates
|
||||
|
||||
@ -1222,7 +1222,7 @@ class Commande extends CommonOrder
|
||||
$localtaxes_type=getLocalTaxesFromRate($txtva,0,$this->thirdparty,$mysoc);
|
||||
$txtva = preg_replace('/\s*\(.*\)/','',$txtva); // Remove code into vatrate.
|
||||
|
||||
$tabprice = calcul_price_total($qty, $pu, $remise_percent, $txtva, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $product_type,'', $localtaxes_type);
|
||||
$tabprice = calcul_price_total($qty, $pu, $remise_percent, $txtva, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $product_type, $mysoc, $localtaxes_type);
|
||||
$total_ht = $tabprice[0];
|
||||
$total_tva = $tabprice[1];
|
||||
$total_ttc = $tabprice[2];
|
||||
|
||||
@ -405,6 +405,8 @@ class FactureRec extends Facture
|
||||
*/
|
||||
function addline($desc, $pu_ht, $qty, $txtva, $fk_product=0, $remise_percent=0, $price_base_type='HT', $info_bits=0, $fk_remise_except='', $pu_ttc=0, $type=0, $rang=-1, $special_code=0, $label='', $fk_unit=null)
|
||||
{
|
||||
global $mysoc;
|
||||
|
||||
$facid=$this->id;
|
||||
|
||||
dol_syslog("FactureRec::addline facid=$facid,desc=$desc,pu_ht=$pu_ht,qty=$qty,txtva=$txtva,fk_product=$fk_product,remise_percent=$remise_percent,date_start=$date_start,date_end=$date_end,ventil=$ventil,info_bits=$info_bits,fk_remise_except=$fk_remise_except,price_base_type=$price_base_type,pu_ttc=$pu_ttc,type=$type,fk_unit=$fk_unit", LOG_DEBUG);
|
||||
@ -437,7 +439,7 @@ class FactureRec extends Facture
|
||||
// qty, pu, remise_percent et txtva
|
||||
// TRES IMPORTANT: C'est au moment de l'insertion ligne qu'on doit stocker
|
||||
// la part ht, tva et ttc, et ce au niveau de la ligne qui a son propre taux tva.
|
||||
$tabprice=calcul_price_total($qty, $pu, $remise_percent, $txtva, 0, 0, 0, $price_base_type, $info_bits, $type);
|
||||
$tabprice=calcul_price_total($qty, $pu, $remise_percent, $txtva, 0, 0, 0, $price_base_type, $info_bits, $type, $mysoc);
|
||||
$total_ht = $tabprice[0];
|
||||
$total_tva = $tabprice[1];
|
||||
$total_ttc = $tabprice[2];
|
||||
|
||||
@ -2401,18 +2401,20 @@ class Facture extends CommonInvoice
|
||||
/**
|
||||
* Update invoice line with percentage
|
||||
*
|
||||
* @param FactureLigne $line Invoice line
|
||||
* @param int $percent Percentage
|
||||
* @param FactureLigne $line Invoice line
|
||||
* @param int $percent Percentage
|
||||
* @return void
|
||||
*/
|
||||
function update_percent($line, $percent)
|
||||
{
|
||||
global $mysoc;
|
||||
|
||||
include_once(DOL_DOCUMENT_ROOT . '/core/lib/price.lib.php');
|
||||
|
||||
// Cap percentages to 100
|
||||
if ($percent > 100) $percent = 100;
|
||||
$line->situation_percent = $percent;
|
||||
$tabprice = calcul_price_total($line->qty, $line->subprice, $line->remise_percent, $line->tva_tx, $line->localtax1_tx, $line->localtax2_tx, $line->product_type, 'HT', 0, 0, '', '', $percent);
|
||||
$tabprice = calcul_price_total($line->qty, $line->subprice, $line->remise_percent, $line->tva_tx, $line->localtax1_tx, $line->localtax2_tx, $line->product_type, 'HT', 0, 0, $mysoc, '', $percent);
|
||||
$line->total_ht = $tabprice[0];
|
||||
$line->total_tva = $tabprice[1];
|
||||
$line->total_ttc = $tabprice[2];
|
||||
|
||||
@ -329,10 +329,11 @@ if (empty($reshook))
|
||||
$result=$mailfile->sendfile();
|
||||
if ($result)
|
||||
{
|
||||
$resaction.=$langs->trans('MailSuccessfulySent',$mailfile->getValidAddress($from,2),$mailfile->getValidAddress($sendto,2)); // Must not contain "
|
||||
$resaction.=$langs->trans('MailSuccessfulySent',$mailfile->getValidAddress($from,2),$mailfile->getValidAddress($sendto,2)).'<br>'; // Must not contain "
|
||||
|
||||
$error=0;
|
||||
|
||||
// Insert logs into agenda
|
||||
foreach($listofqualifiedinvoice as $invid => $object)
|
||||
{
|
||||
$actiontypecode='AC_FAC';
|
||||
@ -357,16 +358,13 @@ if (empty($reshook))
|
||||
include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php");
|
||||
$interface=new Interfaces($db);
|
||||
$result=$interface->run_triggers('BILL_SENTBYMAIL',$object,$user,$langs,$conf);
|
||||
if ($result < 0) { $error++; $this->errors=$interface->errors; }
|
||||
if ($result < 0) { $error++; $errors=$interface->errors; }
|
||||
// Fin appel triggers
|
||||
|
||||
if (! $error)
|
||||
if ($error)
|
||||
{
|
||||
$resaction.=$langs->trans("MailSent").': '.$sendto."<br>\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
dol_print_error($db);
|
||||
setEventMessages($db->lasterror(), $errors, 'errors');
|
||||
dol_syslog("Error in trigger BILL_SENTBYMAIL ".$db->lasterror(), LOG_ERR);
|
||||
}
|
||||
$nbsent++;
|
||||
}
|
||||
@ -615,7 +613,7 @@ if ($resql)
|
||||
include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php';
|
||||
$formmail = new FormMail($db);
|
||||
|
||||
dol_fiche_head(null, '', $langs->trans("SendByMail"));
|
||||
dol_fiche_head(null, '', '');
|
||||
|
||||
$topicmail="SendBillRef";
|
||||
$modelmail="facture_send";
|
||||
@ -660,7 +658,7 @@ if ($resql)
|
||||
$formmail->withtocc=1;
|
||||
$formmail->withtoccc=$conf->global->MAIN_EMAIL_USECCC;
|
||||
$formmail->withtopic=$langs->transnoentities($topicmail, '__REF__', '__REFCLIENT__');
|
||||
$formmail->withfile=$langs->trans("EachInvoiceWillBeAttachedToEmail");
|
||||
$formmail->withfile=$langs->trans("OnlyPDFattachmentSupported");
|
||||
$formmail->withbody=1;
|
||||
$formmail->withdeliveryreceipt=1;
|
||||
$formmail->withcancel=1;
|
||||
|
||||
@ -732,7 +732,7 @@ if ($resql)
|
||||
$formmail->withtocc=1;
|
||||
$formmail->withtoccc=$conf->global->MAIN_EMAIL_USECCC;
|
||||
$formmail->withtopic=$langs->transnoentities($topicmail, '__REF__', '__REFCLIENT__');
|
||||
$formmail->withfile=$langs->trans("EachInvoiceWillBeAttachedToEmail");
|
||||
$formmail->withfile=$langs->trans("OnlyPDFattachmentSupported");
|
||||
$formmail->withbody=1;
|
||||
$formmail->withdeliveryreceipt=1;
|
||||
$formmail->withcancel=1;
|
||||
|
||||
@ -94,7 +94,8 @@ abstract class ActionsContactCardCommon
|
||||
}
|
||||
|
||||
/**
|
||||
* Load data control
|
||||
* doActions of a canvas is not the doActions of the hook
|
||||
* @deprecated Use the doActions of hooks instead of this.
|
||||
*
|
||||
* @param string $action Type of action
|
||||
* @param int $id Id of object
|
||||
|
||||
@ -36,7 +36,9 @@ $langs->load("companies");
|
||||
$langs->load("suppliers");
|
||||
|
||||
// Security check
|
||||
$id = GETPOST('id','int');
|
||||
$contactid = GETPOST('id','int');
|
||||
$ref = ''; // There is no ref for contacts
|
||||
if ($user->societe_id) $socid=$user->societe_id;
|
||||
$result = restrictedArea($user, 'contact', $contactid,'');
|
||||
|
||||
@ -150,13 +152,20 @@ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_lab
|
||||
}
|
||||
}
|
||||
|
||||
$object=new Contact($db);
|
||||
if (($id > 0 || ! empty($ref)) && $action != 'add')
|
||||
{
|
||||
$result=$object->fetch($id,$ref);
|
||||
if ($result < 0) dol_print_error($db);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Actions
|
||||
*/
|
||||
|
||||
$parameters=array();
|
||||
$reshook=$hookmanager->executeHooks('doActions',$parameters); // Note that $action and $object may have been modified by some hooks
|
||||
$reshook=$hookmanager->executeHooks('doActions',$parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
|
||||
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
||||
|
||||
include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
|
||||
|
||||
@ -8,6 +8,7 @@
|
||||
* Copyright (C) 2013 Christophe Battarel <christophe.battarel@altairis.fr>
|
||||
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
|
||||
* Copyright (C) 2014-2015 Marcos García <marcosgdf@gmail.com>
|
||||
* Copyright (C) 2015 Ferran Marcet <fmarcet@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
|
||||
@ -989,6 +990,13 @@ class Contrat extends CommonObject
|
||||
}
|
||||
}
|
||||
|
||||
if (! $error)
|
||||
{
|
||||
// Delete linked object
|
||||
$res = $this->deleteObjectLinked();
|
||||
if ($res < 0) $error++;
|
||||
}
|
||||
|
||||
if (! $error)
|
||||
{
|
||||
// Delete contratdet_log
|
||||
|
||||
@ -264,6 +264,7 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Send mail
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php';
|
||||
$mailfile = new CMailFile($subject,$sendto,$from,$message,$filepath,$mimetype,$filename,$sendtocc,$sendtobcc,$deliveryreceipt,-1,'','',$trackid);
|
||||
@ -277,6 +278,8 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO
|
||||
if ($result)
|
||||
{
|
||||
$error=0;
|
||||
|
||||
// FIXME This must be moved into a trigger for action $trigger_name
|
||||
if (! empty($conf->dolimail->enabled))
|
||||
{
|
||||
$mid = (GETPOST('mid','int') ? GETPOST('mid','int') : 0); // Original mail id is set ?
|
||||
@ -295,7 +298,7 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO
|
||||
else setEventMessages($langs->trans("MailMovedToImapFolder_Warning",$folder), null, 'warnings');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Initialisation of datas
|
||||
$object->socid = $sendtosocid; // To link to a company
|
||||
$object->sendtoid = $sendtoid; // To link to a contact/address
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
/* Copyright (C) 2010-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||
/* Copyright (C) 2010-2015 Regis Houssin <regis.houssin@capnetworks.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
|
||||
@ -17,15 +17,17 @@
|
||||
|
||||
/**
|
||||
* \file htdocs/core/ajax/row.php
|
||||
* \brief File to return Ajax response on Row move
|
||||
* \brief File to return Ajax response on Row move.
|
||||
* This ajax page is called when doing an up or down drag and drop.
|
||||
*/
|
||||
|
||||
if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL','1'); // Disables token renewal
|
||||
if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL','1'); // Disable token renewal
|
||||
if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU','1');
|
||||
if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1');
|
||||
if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1');
|
||||
if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC','1');
|
||||
if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1');
|
||||
if (! defined('NOREQUIREHOOK')) define('NOREQUIREHOOK','1'); // Disable "main.inc.php" hooks
|
||||
|
||||
require '../../main.inc.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/class/genericobject.class.php';
|
||||
@ -63,7 +65,7 @@ if ((isset($_POST['roworder']) && ! empty($_POST['roworder'])) && (isset($_POST[
|
||||
$row->line_ajaxorder($newrowordertab);
|
||||
|
||||
// Reorder line to have position of chilren lines sharing same counter than parent lines
|
||||
// This should be useless because there is no need to have children sharing same counter that parent.
|
||||
// This should be useless because there is no need to have children sharing same counter than parent, but well, it's cleaner into database.
|
||||
if (in_array($fk_element,array('fk_facture','fk_propal','fk_commande')))
|
||||
{
|
||||
$result=$row->line_order(true);
|
||||
|
||||
@ -179,13 +179,14 @@ class Canvas
|
||||
}
|
||||
|
||||
/**
|
||||
* Shared method for canvas to execute actions
|
||||
* Shared method for canvas to execute actions.
|
||||
* @deprecated Use the doActions of hooks instead of this.
|
||||
* This function is called if you add a doActions class inside your canvas. Try to not
|
||||
* do that and add action code into a hook instead.
|
||||
*
|
||||
* @param string $action Action string
|
||||
* @param int $id Object id
|
||||
* @return mixed Return return code of doActions of canvas
|
||||
* @deprecated This function is called if you add a doActions class inside your canvas. Try to not
|
||||
* do that and add action code into a hook instead.
|
||||
* @see http://wiki.dolibarr.org/index.php/Canvas_development
|
||||
*/
|
||||
function doActions(&$action='view', $id=0)
|
||||
|
||||
@ -4243,7 +4243,7 @@ class Form
|
||||
else
|
||||
{
|
||||
// Day
|
||||
$retstring.='<select'.($disabled?' disabled':'').' class="flat" name="'.$prefix.'day">';
|
||||
$retstring.='<select'.($disabled?' disabled':'').' class="flat" id="'.$prefix.'day" name="'.$prefix.'day">';
|
||||
|
||||
if ($emptydate || $set_time == -1)
|
||||
{
|
||||
@ -4257,7 +4257,7 @@ class Form
|
||||
|
||||
$retstring.="</select>";
|
||||
|
||||
$retstring.='<select'.($disabled?' disabled':'').' class="flat" name="'.$prefix.'month">';
|
||||
$retstring.='<select'.($disabled?' disabled':'').' class="flat" id="'.$prefix.'month" name="'.$prefix.'month">';
|
||||
if ($emptydate || $set_time == -1)
|
||||
{
|
||||
$retstring.='<option value="0" selected> </option>';
|
||||
@ -4275,11 +4275,11 @@ class Form
|
||||
// Year
|
||||
if ($emptydate || $set_time == -1)
|
||||
{
|
||||
$retstring.='<input'.($disabled?' disabled':'').' placeholder="'.dol_escape_htmltag($langs->trans("Year")).'" class="flat" type="text" size="3" maxlength="4" name="'.$prefix.'year" value="'.$syear.'">';
|
||||
$retstring.='<input'.($disabled?' disabled':'').' placeholder="'.dol_escape_htmltag($langs->trans("Year")).'" class="flat" type="text" size="3" maxlength="4" id="'.$prefix.'year" name="'.$prefix.'year" value="'.$syear.'">';
|
||||
}
|
||||
else
|
||||
{
|
||||
$retstring.='<select'.($disabled?' disabled':'').' class="flat" name="'.$prefix.'year">';
|
||||
$retstring.='<select'.($disabled?' disabled':'').' class="flat" id="'.$prefix.'year" name="'.$prefix.'year">';
|
||||
|
||||
for ($year = $syear - 5; $year < $syear + 10 ; $year++)
|
||||
{
|
||||
|
||||
@ -316,10 +316,25 @@ class FormMail extends Form
|
||||
$out.= $langs->trans('SelectMailModel').': '.$this->selectarray('modelmailselected', $modelmail_array, 0, 1);
|
||||
if ($user->admin) $out.= info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1);
|
||||
$out.= ' ';
|
||||
$out.= '<input class="button" type="submit" value="'.$langs->trans('Valid').'" name="modelselected" id="modelselected">';
|
||||
$out.= '<input class="button" type="submit" value="'.$langs->trans('Use').'" name="modelselected" id="modelselected">';
|
||||
$out.= ' ';
|
||||
$out.= '</div>';
|
||||
}
|
||||
elseif (! empty($this->param['models']) && in_array($this->param['models'], array(
|
||||
'propal_send','order_send','facture_send',
|
||||
'shipping_send','fichinter_send','supplier_proposal_send','order_supplier_send',
|
||||
'invoice_supplier_send','thirdparty'
|
||||
)))
|
||||
{
|
||||
$out.= '<div style="padding: 3px 0 3px 0">'."\n";
|
||||
$out.= $langs->trans('SelectMailModel').': <select name="modelmailselected" disabled="disabled"><option value="none" disabled="disabled">'.$langs->trans("NoTemplateDefined").'</option></select>';
|
||||
if ($user->admin) $out.= info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1);
|
||||
$out.= ' ';
|
||||
$out.= '<input class="button" type="submit" value="'.$langs->trans('Use').'" name="modelselected" disabled="disabled" id="modelselected">';
|
||||
$out.= ' ';
|
||||
$out.= '</div>';
|
||||
}
|
||||
|
||||
|
||||
|
||||
$out.= '<table class="border" width="100%">'."\n";
|
||||
|
||||
@ -237,9 +237,9 @@ abstract class DoliDB implements Database
|
||||
|
||||
$return.=preg_replace('/[^0-9a-z_\.]/i','',$val);
|
||||
// Only ASC and DESC values are valid SQL
|
||||
if ($sortorder === 'ASC') {
|
||||
if (strtoupper($sortorder) === 'ASC') {
|
||||
$return .= ' ASC';
|
||||
} elseif ($sortorder === 'DESC') {
|
||||
} elseif (strtoupper($sortorder) === 'DESC') {
|
||||
$return .= ' DESC';
|
||||
}
|
||||
}
|
||||
|
||||
50
htdocs/core/extrafieldsinexport.inc.php
Normal file
50
htdocs/core/extrafieldsinexport.inc.php
Normal file
@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
if (empty($keyforselect) || empty($keyforelement) || empty($keyforaliasextra))
|
||||
{
|
||||
//print $keyforselet.' - '.$keyforelement.' - '.$keyforaliasextra;
|
||||
dol_print_error('', 'include of file extrafieldsinexport.inc.php was done but var $keyforselect or $keyforelement or $keyforaliasextra was not set');
|
||||
exit;
|
||||
}
|
||||
|
||||
// Add extra fields
|
||||
$sql="SELECT name, label, type, param FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = '".$keyforselect."' AND entity IN (0, ".$conf->entity.')';
|
||||
//print $sql;
|
||||
$resql=$this->db->query($sql);
|
||||
if ($resql) // This can fail when class is used on old database (during migration for example)
|
||||
{
|
||||
while ($obj=$this->db->fetch_object($resql))
|
||||
{
|
||||
$fieldname=$keyforaliasextra.'.'.$obj->name;
|
||||
$fieldlabel=ucfirst($obj->label);
|
||||
$typeFilter="Text";
|
||||
switch($obj->type)
|
||||
{
|
||||
case 'int':
|
||||
case 'double':
|
||||
case 'price':
|
||||
$typeFilter="Numeric";
|
||||
break;
|
||||
case 'date':
|
||||
case 'datetime':
|
||||
$typeFilter="Date";
|
||||
break;
|
||||
case 'boolean':
|
||||
$typeFilter="Boolean";
|
||||
break;
|
||||
case 'sellist':
|
||||
$tmp='';
|
||||
$tmpparam=unserialize($obj->param); // $tmp ay be array 'options' => array 'c_currencies:code_iso:code_iso' => null
|
||||
if ($tmpparam['options'] && is_array($tmpparam['options'])) {
|
||||
$tmpkeys=array_keys($tmpparam['options']);
|
||||
$tmp=array_shift($tmpkeys);
|
||||
}
|
||||
if (preg_match('/[a-z0-9_]+:[a-z0-9_]+:[a-z0-9_]+/', $tmp)) $typeFilter="List:".$tmp;
|
||||
break;
|
||||
}
|
||||
$this->export_fields_array[$r][$fieldname]=$fieldlabel;
|
||||
$this->export_TypeFields_array[$r][$fieldname]=$typeFilter;
|
||||
$this->export_entities_array[$r][$fieldname]=$keyforelement;
|
||||
}
|
||||
}
|
||||
// End add axtra fields
|
||||
142
htdocs/core/lib/expedition.lib.php
Normal file
142
htdocs/core/lib/expedition.lib.php
Normal file
@ -0,0 +1,142 @@
|
||||
<?php
|
||||
/* Copyright (C) 2006-2012 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||
* Copyright (C) 2010-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||
* Copyright (C) 2010 Juanjo Menent <jmenent@2byte.es>
|
||||
* Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
|
||||
*
|
||||
* 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/>.
|
||||
* or see http://www.gnu.org/
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file htdocs/core/lib/expedition.lib.php
|
||||
* \brief Function for expedition module
|
||||
* \ingroup expedition
|
||||
*/
|
||||
|
||||
/**
|
||||
* Prepare array with list of tabs
|
||||
*
|
||||
* @param Expedition $object Object related to tabs
|
||||
* @return array Array of tabs to show
|
||||
*/
|
||||
function expedition_prepare_head(Expedition $object)
|
||||
{
|
||||
global $langs, $conf, $user;
|
||||
if (! empty($conf->expedition->enabled)) $langs->load("sendings");
|
||||
$langs->load("orders");
|
||||
|
||||
$h = 0;
|
||||
$head = array();
|
||||
$h = 0;
|
||||
|
||||
$head[$h][0] = DOL_URL_ROOT."/admin/confexped.php";
|
||||
$head[$h][1] = $langs->trans("Setup");
|
||||
$h++;
|
||||
|
||||
$head[$h][0] = DOL_URL_ROOT."/admin/expedition.php";
|
||||
$head[$h][1] = $langs->trans("Shipment");
|
||||
$hselected=$h;
|
||||
$h++;
|
||||
|
||||
if (! empty($conf->global->MAIN_SUBMODULE_LIVRAISON))
|
||||
{
|
||||
$head[$h][0] = DOL_URL_ROOT."/admin/livraison.php";
|
||||
$head[$h][1] = $langs->trans("Receivings");
|
||||
$h++;
|
||||
}
|
||||
|
||||
|
||||
complete_head_from_modules($conf,$langs,$object,$head,$h,'order','remove');
|
||||
|
||||
return $head;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return array head with list of tabs to view object informations.
|
||||
*
|
||||
* @return array head array with tabs
|
||||
*/
|
||||
function expedition_admin_prepare_head()
|
||||
{
|
||||
global $langs, $conf, $user;
|
||||
$langs->load("sendings");
|
||||
|
||||
$h = 0;
|
||||
$head = array();
|
||||
|
||||
$head[$h][0] = DOL_URL_ROOT."/admin/confexped.php";
|
||||
$head[$h][1] = $langs->trans("Setup");
|
||||
$head[$h][2] = 'general';
|
||||
$h++;
|
||||
|
||||
|
||||
if (! empty($conf->global->MAIN_SUBMODULE_EXPEDITION))
|
||||
{
|
||||
$head[$h][0] = DOL_URL_ROOT."/admin/expedition.php";
|
||||
$head[$h][1] = $langs->trans("Shipment");
|
||||
$head[$h][2] = 'shipment';
|
||||
$h++;
|
||||
}
|
||||
|
||||
|
||||
if (! empty($conf->global->MAIN_SUBMODULE_EXPEDITION))
|
||||
{
|
||||
$head[$h][0] = DOL_URL_ROOT.'/admin/expedition_extrafields.php';
|
||||
$head[$h][1] = $langs->trans("ExtraFields");
|
||||
$head[$h][2] = 'attributes_shipment';
|
||||
$h++;
|
||||
}
|
||||
|
||||
if (! empty($conf->global->MAIN_SUBMODULE_EXPEDITION))
|
||||
{
|
||||
$head[$h][0] = DOL_URL_ROOT.'/admin/expeditiondet_extrafields.php';
|
||||
$head[$h][1] = $langs->trans("ExtraFieldsLines");
|
||||
$head[$h][2] = 'attributeslines_shipment';
|
||||
$h++;
|
||||
}
|
||||
|
||||
if (! empty($conf->global->MAIN_SUBMODULE_LIVRAISON))
|
||||
{
|
||||
$head[$h][0] = DOL_URL_ROOT."/admin/livraison.php";
|
||||
$head[$h][1] = $langs->trans("Receivings");
|
||||
$head[$h][2] = 'receivings';
|
||||
$h++;
|
||||
}
|
||||
|
||||
if (! empty($conf->global->MAIN_SUBMODULE_LIVRAISON))
|
||||
{
|
||||
$head[$h][0] = DOL_URL_ROOT.'/admin/livraison_extrafields.php';
|
||||
$head[$h][1] = $langs->trans("ExtraFields");
|
||||
$head[$h][2] = 'attributes_receivings';
|
||||
$h++;
|
||||
}
|
||||
|
||||
if (! empty($conf->global->MAIN_SUBMODULE_LIVRAISON))
|
||||
{
|
||||
$head[$h][0] = DOL_URL_ROOT.'/admin/livraisondet_extrafields.php';
|
||||
$head[$h][1] = $langs->trans("ExtraFieldsLines");
|
||||
$head[$h][2] = 'attributeslines_receivings';
|
||||
$h++;
|
||||
}
|
||||
|
||||
|
||||
|
||||
complete_head_from_modules($conf,$langs,null,$head,$h,'expedition_admin','remove');
|
||||
|
||||
return $head;
|
||||
}
|
||||
|
||||
|
||||
@ -32,7 +32,7 @@
|
||||
*
|
||||
* Parent class for module descriptor class files
|
||||
*/
|
||||
class DolibarrModules // Can not be abstract, because we need to instantiant it into unActivateModule to be able to disable a module whose files were removed.
|
||||
class DolibarrModules // Can not be abstract, because we need to instantiate it into unActivateModule to be able to disable a module whose files were removed.
|
||||
{
|
||||
/**
|
||||
* @var DoliDb Database handler
|
||||
@ -432,7 +432,7 @@ class DolibarrModules // Can not be abstract, because we need to insta
|
||||
}
|
||||
else
|
||||
{
|
||||
// If module description translation using it's unique id does not exists, we take use its name to find translation
|
||||
// If module description translation does not exist using its unique id, we can use its name to find translation
|
||||
if (is_array($this->langfiles))
|
||||
{
|
||||
foreach($this->langfiles as $val)
|
||||
@ -510,12 +510,12 @@ class DolibarrModules // Can not be abstract, because we need to insta
|
||||
$langstring="ExportDataset_".$this->export_code[$r];
|
||||
if ($langs->trans($langstring) == $langstring)
|
||||
{
|
||||
// Traduction non trouvee
|
||||
// Translation not found
|
||||
return $langs->trans($this->export_label[$r]);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Traduction trouvee
|
||||
// Translation found
|
||||
return $langs->trans($langstring);
|
||||
}
|
||||
}
|
||||
@ -536,12 +536,12 @@ class DolibarrModules // Can not be abstract, because we need to insta
|
||||
//print "x".$langstring;
|
||||
if ($langs->trans($langstring) == $langstring)
|
||||
{
|
||||
// Traduction non trouvee
|
||||
// Translation not found
|
||||
return $langs->trans($this->import_label[$r]);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Traduction trouvee
|
||||
// Translation found
|
||||
return $langs->trans($langstring);
|
||||
}
|
||||
}
|
||||
@ -1223,7 +1223,7 @@ print $sql;
|
||||
$obj=$this->db->fetch_object($resql);
|
||||
if ($obj !== null && ! empty($obj->value) && ! empty($this->rights))
|
||||
{
|
||||
// Si module actif
|
||||
// If the module is active
|
||||
foreach ($this->rights as $key => $value)
|
||||
{
|
||||
$r_id = $this->rights[$key][0];
|
||||
|
||||
@ -484,7 +484,7 @@ class pdf_einstein extends ModelePDFCommandes
|
||||
$this->tva[$vatrate] += $tvaligne;
|
||||
|
||||
// Add line
|
||||
if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1))
|
||||
if ($conf->global->MAIN_PDF_DASH_BETWEEN_LINES && $i < ($nblignes - 1))
|
||||
{
|
||||
$pdf->setPage($pageposafter);
|
||||
$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));
|
||||
|
||||
@ -279,7 +279,7 @@ class pdf_merou extends ModelePdfExpedition
|
||||
$pdf->MultiCell(30, 3, $object->lines[$i]->qty_shipped, 0, 'C', 0);
|
||||
|
||||
// Add line
|
||||
if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1))
|
||||
if ($conf->global->MAIN_PDF_DASH_BETWEEN_LINES && $i < ($nblignes - 1))
|
||||
{
|
||||
$pdf->setPage($pageposafter);
|
||||
$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));
|
||||
|
||||
@ -452,7 +452,7 @@ class pdf_rouget extends ModelePdfExpedition
|
||||
$pdf->MultiCell(($this->page_largeur - $this->marge_droite - $this->posxqtytoship), 3, $object->lines[$i]->qty_shipped,'','C');
|
||||
|
||||
// Add line
|
||||
if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1))
|
||||
if ($conf->global->MAIN_PDF_DASH_BETWEEN_LINES && $i < ($nblignes - 1))
|
||||
{
|
||||
$pdf->setPage($pageposafter);
|
||||
$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));
|
||||
|
||||
@ -579,7 +579,7 @@ class pdf_crabe extends ModelePDFFactures
|
||||
if ($posYAfterImage > $posYAfterDescription) $nexY=$posYAfterImage;
|
||||
|
||||
// Add line
|
||||
if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1))
|
||||
if ($conf->global->MAIN_PDF_DASH_BETWEEN_LINES && $i < ($nblignes - 1))
|
||||
{
|
||||
$pdf->setPage($pageposafter);
|
||||
$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));
|
||||
|
||||
@ -183,52 +183,23 @@ class modCommande extends DolibarrModules
|
||||
$this->export_TypeFields_array[$r]=array('s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','co.label'=>'List:c_country:label:label','co.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','c.ref'=>"Text",'c.ref_client'=>"Text",'c.date_creation'=>"Date",'c.date_commande'=>"Date",'c.amount_ht'=>"Numeric",'c.remise_percent'=>"Numeric",'c.total_ht'=>"Numeric",'c.total_ttc'=>"Numeric",'c.facture'=>"Boolean",'c.fk_statut'=>'Status','c.note_public'=>"Text",'c.date_livraison'=>'Date','cd.description'=>"Text",'cd.product_type'=>'Boolean','cd.tva_tx'=>"Numeric",'cd.qty'=>"Numeric",'cd.total_ht'=>"Numeric",'cd.total_tva'=>"Numeric",'cd.total_ttc'=>"Numeric",'p.rowid'=>'List:product:ref','p.ref'=>'Text','p.label'=>'Text');
|
||||
$this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company','co.label'=>'company','co.code'=>'company','s.phone'=>'company','s.siren'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.siret'=>'company','c.rowid'=>"order",'c.ref'=>"order",'c.ref_client'=>"order",'c.fk_soc'=>"order",'c.date_creation'=>"order",'c.date_commande'=>"order",'c.amount_ht'=>"order",'c.remise_percent'=>"order",'c.total_ht'=>"order",'c.total_ttc'=>"order",'c.facture'=>"order",'c.fk_statut'=>"order",'c.note'=>"order",'c.date_livraison'=>"order",'cd.rowid'=>'order_line','cd.label'=>"order_line",'cd.description'=>"order_line",'cd.product_type'=>'order_line','cd.tva_tx'=>"order_line",'cd.qty'=>"order_line",'cd.total_ht'=>"order_line",'cd.total_tva'=>"order_line",'cd.total_ttc'=>"order_line",'p.rowid'=>'product','p.ref'=>'product','p.label'=>'product');
|
||||
$this->export_dependencies_array[$r]=array('order_line'=>'cd.rowid','product'=>'cd.rowid'); // To add unique key if we ask a field of a child to avoid the DISTINCT to discard them
|
||||
// Add extra fields
|
||||
$sql="SELECT name, label, type FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'commande' AND entity IN (0, ".$conf->entity.')';
|
||||
$resql=$this->db->query($sql);
|
||||
if ($resql) // This can fail when class is used on old database (during migration for example)
|
||||
{
|
||||
while ($obj=$this->db->fetch_object($resql))
|
||||
{
|
||||
$fieldname='extra.'.$obj->name;
|
||||
$fieldlabel=ucfirst($obj->label);
|
||||
$typeFilter="Text";
|
||||
switch($obj->type)
|
||||
{
|
||||
case 'int':
|
||||
case 'double':
|
||||
case 'price':
|
||||
$typeFilter="Numeric";
|
||||
break;
|
||||
case 'date':
|
||||
case 'datetime':
|
||||
$typeFilter="Date";
|
||||
break;
|
||||
case 'boolean':
|
||||
$typeFilter="Boolean";
|
||||
break;
|
||||
case 'sellist':
|
||||
$tmp='';
|
||||
$tmpparam=unserialize($obj->param); // $tmp ay be array 'options' => array 'c_currencies:code_iso:code_iso' => null
|
||||
if ($tmpparam['options'] && is_array($tmpparam['options'])) $tmp=array_shift(array_keys($tmpparam['options']));
|
||||
if (preg_match('/[a-z0-9_]+:[a-z0-9_]+:[a-z0-9_]+/', $tmp)) $typeFilter="List:".$tmp;
|
||||
break;
|
||||
}
|
||||
$this->export_fields_array[$r][$fieldname]=$fieldlabel;
|
||||
$this->export_TypeFields_array[$r][$fieldname]=$typeFilter;
|
||||
$this->export_entities_array[$r][$fieldname]='order';
|
||||
}
|
||||
}
|
||||
// End add extra fields
|
||||
$keyforselect='commande'; $keyforelement='order'; $keyforaliasextra='extra';
|
||||
include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
|
||||
$keyforselect='commandedet'; $keyforelement='order_line'; $keyforaliasextra='extra2';
|
||||
include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
|
||||
$keyforselect='product'; $keyforelement='product'; $keyforaliasextra='extra3';
|
||||
include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
|
||||
$this->export_sql_start[$r]='SELECT DISTINCT ';
|
||||
$this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'societe as s';
|
||||
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'c_country as co ON s.fk_pays = co.rowid,';
|
||||
$this->export_sql_end[$r] .=' '.MAIN_DB_PREFIX.'commande as c';
|
||||
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'user as uc ON c.fk_user_author = uc.rowid';
|
||||
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'user as uv ON c.fk_user_valid = uc.rowid';
|
||||
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'user as uv ON c.fk_user_valid = uv.rowid';
|
||||
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'commande_extrafields as extra ON c.rowid = extra.fk_object';
|
||||
$this->export_sql_end[$r] .=' , '.MAIN_DB_PREFIX.'commandedet as cd';
|
||||
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'commandedet_extrafields as extra2 on cd.rowid = extra2.fk_object';
|
||||
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product as p on cd.fk_product = p.rowid';
|
||||
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product_extrafields as extra3 on p.rowid = extra3.fk_object';
|
||||
$this->export_sql_end[$r] .=' WHERE c.fk_soc = s.rowid AND c.rowid = cd.fk_commande';
|
||||
$this->export_sql_end[$r] .=' AND c.entity IN ('.getEntity('commande',1).')';
|
||||
}
|
||||
|
||||
@ -128,7 +128,7 @@ class modCron extends DolibarrModules
|
||||
$this->menu[$r]=array( 'fk_menu'=>'fk_mainmenu=home,fk_leftmenu=modulesadmintools', // Use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode
|
||||
'type'=>'left', // This is a Left menu entry
|
||||
'titre'=>'CronList',
|
||||
'url'=>'/cron/list.php?status=-1',
|
||||
'url'=>'/cron/list.php?status=-2',
|
||||
'langs'=>'cron', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
|
||||
'position'=>200,
|
||||
'enabled'=>'$leftmenu==\'modulesadmintools\'', // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected.
|
||||
|
||||
@ -185,46 +185,12 @@ class modFacture extends DolibarrModules
|
||||
$this->export_TypeFields_array[$r]=array('s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','c.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.code_compta'=>'Text','s.code_compta_fournisseur'=>'Text','s.tva_intra'=>'Text','f.facnumber'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date",'f.date_lim_reglement'=>"Date",'f.total'=>"Numeric",'f.total_ttc'=>"Numeric",'f.tva'=>"Numeric",'f.paye'=>"Boolean",'f.fk_statut'=>'Status','f.note_private'=>"Text",'f.note_public'=>"Text",'fd.description'=>"Text",'fd.subprice'=>"Numeric",'fd.tva_tx'=>"Numeric",'fd.qty'=>"Numeric",'fd.total_ht'=>"Numeric",'fd.total_tva'=>"Numeric",'fd.total_ttc'=>"Numeric",'fd.date_start'=>"Date",'fd.date_end'=>"Date",'fd.special_code'=>'Numeric','fd.product_type'=>"Numeric",'fd.fk_product'=>'List:product:label','p.ref'=>'Text','p.label'=>'Text','p.accountancy_code_sell'=>'Text');
|
||||
$this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company','c.code'=>'company','s.phone'=>'company','s.siren'=>'company','s.siret'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.code_compta'=>'company','s.code_compta_fournisseur'=>'company','s.tva_intra'=>'company','f.rowid'=>"invoice",'f.facnumber'=>"invoice",'f.datec'=>"invoice",'f.datef'=>"invoice",'f.date_lim_reglement'=>"invoice",'f.total'=>"invoice",'f.total_ttc'=>"invoice",'f.tva'=>"invoice",'f.paye'=>"invoice",'f.fk_statut'=>'invoice','f.note_private'=>"invoice",'f.note_public'=>"invoice",'fd.rowid'=>'invoice_line','fd.label'=>"invoice_line",'fd.description'=>"invoice_line",'fd.subprice'=>"invoice_line",'fd.total_ht'=>"invoice_line",'fd.total_tva'=>"invoice_line",'fd.total_ttc'=>"invoice_line",'fd.tva_tx'=>"invoice_line",'fd.qty'=>"invoice_line",'fd.date_start'=>"invoice_line",'fd.date_end'=>"invoice_line",'fd.special_code'=>'invoice_line','fd.product_type'=>'invoice_line','fd.fk_product'=>'product','p.ref'=>'product','p.label'=>'product','p.accountancy_code_sell'=>'product','f.fk_user_author'=>'user','uc.login'=>'user','f.fk_user_valid'=>'user','uv.login'=>'user');
|
||||
$this->export_dependencies_array[$r]=array('invoice_line'=>'fd.rowid','product'=>'fd.rowid'); // To add unique key if we ask a field of a child to avoid the DISTINCT to discard them
|
||||
// Add extra fields
|
||||
$sql="SELECT name, label, type, param FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'facture'";
|
||||
$resql=$this->db->query($sql);
|
||||
if ($resql) // This can fail when class is used on old database (during migration for example)
|
||||
{
|
||||
while ($obj=$this->db->fetch_object($resql))
|
||||
{
|
||||
$fieldname='extra.'.$obj->name;
|
||||
$fieldlabel=ucfirst($obj->label);
|
||||
$typeFilter="Text";
|
||||
switch($obj->type)
|
||||
{
|
||||
case 'int':
|
||||
case 'double':
|
||||
case 'price':
|
||||
$typeFilter="Numeric";
|
||||
break;
|
||||
case 'date':
|
||||
case 'datetime':
|
||||
$typeFilter="Date";
|
||||
break;
|
||||
case 'boolean':
|
||||
$typeFilter="Boolean";
|
||||
break;
|
||||
case 'sellist':
|
||||
$tmp='';
|
||||
$tmpparam=unserialize($obj->param); // $tmp ay be array 'options' => array 'c_currencies:code_iso:code_iso' => null
|
||||
if ($tmpparam['options'] && is_array($tmpparam['options'])) {
|
||||
$tmpkeys=array_keys($tmpparam['options']);
|
||||
$tmp=array_shift($tmpkeys);
|
||||
}
|
||||
if (preg_match('/[a-z0-9_]+:[a-z0-9_]+:[a-z0-9_]+/', $tmp)) $typeFilter="List:".$tmp;
|
||||
break;
|
||||
}
|
||||
$this->export_fields_array[$r][$fieldname]=$fieldlabel;
|
||||
$this->export_TypeFields_array[$r][$fieldname]=$typeFilter;
|
||||
$this->export_entities_array[$r][$fieldname]='facture';
|
||||
}
|
||||
}
|
||||
// End add axtra fields
|
||||
$keyforselect='facture'; $keyforelement='invoice'; $keyforaliasextra='extra';
|
||||
include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
|
||||
$keyforselect='facturedet'; $keyforelement='invoice_line'; $keyforaliasextra='extra2';
|
||||
include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
|
||||
$keyforselect='product'; $keyforelement='product'; $keyforaliasextra='extra3';
|
||||
include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
|
||||
$this->export_sql_start[$r]='SELECT DISTINCT ';
|
||||
$this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'societe as s';
|
||||
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'c_country as c on s.fk_pays = c.rowid,';
|
||||
@ -233,7 +199,9 @@ class modFacture extends DolibarrModules
|
||||
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'user as uv ON f.fk_user_valid = uv.rowid';
|
||||
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'facture_extrafields as extra ON f.rowid = extra.fk_object';
|
||||
$this->export_sql_end[$r] .=' , '.MAIN_DB_PREFIX.'facturedet as fd';
|
||||
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'facturedet_extrafields as extra2 on fd.rowid = extra2.fk_object';
|
||||
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product as p on (fd.fk_product = p.rowid)';
|
||||
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product_extrafields as extra3 on p.rowid = extra3.fk_object';
|
||||
$this->export_sql_end[$r] .=' WHERE f.fk_soc = s.rowid AND f.rowid = fd.fk_facture';
|
||||
$this->export_sql_end[$r] .=' AND f.entity IN ('.getEntity('facture',1).')';
|
||||
$r++;
|
||||
@ -247,46 +215,8 @@ class modFacture extends DolibarrModules
|
||||
$this->export_TypeFields_array[$r]=array('s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','c.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.code_compta'=>'Text','s.code_compta_fournisseur'=>'Text','s.tva_intra'=>'Text','f.rowid'=>"List:facture:facnumber",'f.facnumber'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date",'f.date_lim_reglement'=>"Date",'f.total'=>"Numeric",'f.total_ttc'=>"Numeric",'f.tva'=>"Numeric",'f.paye'=>"Boolean",'f.fk_statut'=>'Status','f.note_private'=>"Text",'f.note_public'=>"Text",'pf.amount'=>'Numeric','p.datep'=>'Date','p.num_paiement'=>'Numeric','p.fk_bank'=>'Numeric','p.note'=>'Text');
|
||||
$this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company','c.code'=>'company','s.phone'=>'company','s.siren'=>'company','s.siret'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.code_compta'=>'company','s.code_compta_fournisseur'=>'company','s.tva_intra'=>'company','f.rowid'=>"invoice",'f.facnumber'=>"invoice",'f.datec'=>"invoice",'f.datef'=>"invoice",'f.date_lim_reglement'=>"invoice",'f.total'=>"invoice",'f.total_ttc'=>"invoice",'f.tva'=>"invoice",'f.paye'=>"invoice",'f.fk_statut'=>'invoice','f.note_private'=>"invoice",'f.note_public'=>"invoice",'p.rowid'=>'payment','p.ref'=>'payment','p.amount'=>'payment','pf.amount'=>'payment','p.datep'=>'payment','p.num_paiement'=>'payment','pt.code'=>'payment','p.fk_bank'=>'payment','p.note'=>'payment','f.fk_user_author'=>'user','uc.login'=>'user','f.fk_user_valid'=>'user','uv.login'=>'user');
|
||||
$this->export_dependencies_array[$r]=array('payment'=>'p.rowid'); // To add unique key if we ask a field of a child to avoid the DISTINCT to discard them
|
||||
// Add extra fields
|
||||
$sql="SELECT name, label, type, param FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'facture'";
|
||||
$resql=$this->db->query($sql);
|
||||
if ($resql) // This can fail when class is used on old database (during migration for example)
|
||||
{
|
||||
while ($obj=$this->db->fetch_object($resql))
|
||||
{
|
||||
$fieldname='extra.'.$obj->name;
|
||||
$fieldlabel=ucfirst($obj->label);
|
||||
$typeFilter="Text";
|
||||
switch($obj->type)
|
||||
{
|
||||
case 'int':
|
||||
case 'double':
|
||||
case 'price':
|
||||
$typeFilter="Numeric";
|
||||
break;
|
||||
case 'date':
|
||||
case 'datetime':
|
||||
$typeFilter="Date";
|
||||
break;
|
||||
case 'boolean':
|
||||
$typeFilter="Boolean";
|
||||
break;
|
||||
case 'sellist':
|
||||
$tmp='';
|
||||
$tmpparam=unserialize($obj->param); // $tmp ay be array 'options' => array 'c_currencies:code_iso:code_iso' => null
|
||||
if ($tmpparam['options'] && is_array($tmpparam['options'])) {
|
||||
$tmpkeys=array_keys($tmpparam['options']);
|
||||
$tmp=array_shift($tmpkeys);
|
||||
}
|
||||
if (preg_match('/[a-z0-9_]+:[a-z0-9_]+:[a-z0-9_]+/', $tmp)) $typeFilter="List:".$tmp;
|
||||
break;
|
||||
}
|
||||
$this->export_fields_array[$r][$fieldname]=$fieldlabel;
|
||||
$this->export_TypeFields_array[$r][$fieldname]=$typeFilter;
|
||||
$this->export_entities_array[$r][$fieldname]='facture';
|
||||
}
|
||||
}
|
||||
// End add axtra fields
|
||||
$keyforselect='facture'; $keyforelement='invoice'; $keyforaliasextra='extra';
|
||||
include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
|
||||
$this->export_sql_start[$r]='SELECT DISTINCT ';
|
||||
$this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'societe as s';
|
||||
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'c_country as c on s.fk_pays = c.rowid,';
|
||||
|
||||
@ -176,52 +176,23 @@ class modPropale extends DolibarrModules
|
||||
$this->export_TypeFields_array[$r]=array('s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','co.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','c.ref'=>"Text",'c.ref_client'=>"Text",'c.datec'=>"Date",'c.datep'=>"Date",'c.fin_validite'=>"Date",'c.remise_percent'=>"Numeric",'c.total_ht'=>"Numeric",'c.total'=>"Numeric",'c.fk_statut'=>'Status','c.note_public'=>"Text",'c.date_livraison'=>'Date','cd.description'=>"Text",'cd.product_type'=>'Boolean','cd.tva_tx'=>"Numeric",'cd.qty'=>"Numeric",'cd.total_ht'=>"Numeric",'cd.total_tva'=>"Numeric",'cd.total_ttc'=>"Numeric",'p.ref'=>'Text','p.label'=>'Text');
|
||||
$this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company','co.code'=>'company','s.phone'=>'company','s.siren'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.siret'=>'company','c.rowid'=>"propal",'c.ref'=>"propal",'c.ref_client'=>"propal",'c.fk_soc'=>"propal",'c.datec'=>"propal",'c.datep'=>"propal",'c.fin_validite'=>"propal",'c.remise_percent'=>"propal",'c.total_ht'=>"propal",'c.total'=>"propal",'c.fk_statut'=>"propal",'c.note_public'=>"propal",'c.date_livraison'=>"propal",'cd.rowid'=>'propal_line','cd.label'=>"propal_line",'cd.description'=>"propal_line",'cd.product_type'=>'propal_line','cd.tva_tx'=>"propal_line",'cd.qty'=>"propal_line",'cd.total_ht'=>"propal_line",'cd.total_tva'=>"propal_line",'cd.total_ttc'=>"propal_line",'p.rowid'=>'product','p.ref'=>'product','p.label'=>'product');
|
||||
$this->export_dependencies_array[$r]=array('propal_line'=>'cd.rowid','product'=>'cd.rowid'); // To add unique key if we ask a field of a child to avoid the DISTINCT to discard them
|
||||
// Add extra fields
|
||||
$sql="SELECT name, label, type FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'propal' AND entity IN (0, ".$conf->entity.')';
|
||||
$resql=$this->db->query($sql);
|
||||
if ($resql) // This can fail when class is used on old database (during migration for example)
|
||||
{
|
||||
while ($obj=$this->db->fetch_object($resql))
|
||||
{
|
||||
$fieldname='extra.'.$obj->name;
|
||||
$fieldlabel=ucfirst($obj->label);
|
||||
$typeFilter="Text";
|
||||
switch($obj->type)
|
||||
{
|
||||
case 'int':
|
||||
case 'double':
|
||||
case 'price':
|
||||
$typeFilter="Numeric";
|
||||
break;
|
||||
case 'date':
|
||||
case 'datetime':
|
||||
$typeFilter="Date";
|
||||
break;
|
||||
case 'boolean':
|
||||
$typeFilter="Boolean";
|
||||
break;
|
||||
case 'sellist':
|
||||
$tmp='';
|
||||
$tmpparam=unserialize($obj->param); // $tmp ay be array 'options' => array 'c_currencies:code_iso:code_iso' => null
|
||||
if ($tmpparam['options'] && is_array($tmpparam['options'])) $tmp=array_shift(array_keys($tmpparam['options']));
|
||||
if (preg_match('/[a-z0-9_]+:[a-z0-9_]+:[a-z0-9_]+/', $tmp)) $typeFilter="List:".$tmp;
|
||||
break;
|
||||
}
|
||||
$this->export_fields_array[$r][$fieldname]=$fieldlabel;
|
||||
$this->export_TypeFields_array[$r][$fieldname]=$typeFilter;
|
||||
$this->export_entities_array[$r][$fieldname]='propal';
|
||||
}
|
||||
}
|
||||
// End add extra fields
|
||||
$keyforselect='propal'; $keyforelement='propal'; $keyforaliasextra='extra';
|
||||
include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
|
||||
$keyforselect='propaldet'; $keyforelement='propal_line'; $keyforaliasextra='extra2';
|
||||
include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
|
||||
$keyforselect='product'; $keyforelement='product'; $keyforaliasextra='extra3';
|
||||
include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
|
||||
$this->export_sql_start[$r]='SELECT DISTINCT ';
|
||||
$this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'societe as s ';
|
||||
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'c_country as co ON s.fk_pays = co.rowid,';
|
||||
$this->export_sql_end[$r] .=' '.MAIN_DB_PREFIX.'propal as c';
|
||||
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'user as uc ON c.fk_user_author = uc.rowid';
|
||||
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'user as uv ON c.fk_user_valid = uc.rowid';
|
||||
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'user as uv ON c.fk_user_valid = uv.rowid';
|
||||
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'propal_extrafields as extra ON c.rowid = extra.fk_object';
|
||||
$this->export_sql_end[$r] .=', '.MAIN_DB_PREFIX.'propaldet as cd';
|
||||
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'propaldet_extrafields as extra2 on cd.rowid = extra2.fk_object';
|
||||
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product as p on (cd.fk_product = p.rowid)';
|
||||
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product_extrafields as extra3 on p.rowid = extra3.fk_object';
|
||||
$this->export_sql_end[$r] .=' WHERE c.fk_soc = s.rowid AND c.rowid = cd.fk_propal';
|
||||
$this->export_sql_end[$r] .=' AND c.entity IN ('.getEntity('propal',1).')';
|
||||
}
|
||||
|
||||
@ -572,7 +572,7 @@ class pdf_azur extends ModelePDFPropales
|
||||
if ($posYAfterImage > $posYAfterDescription) $nexY=$posYAfterImage;
|
||||
|
||||
// Add line
|
||||
if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1))
|
||||
if ($conf->global->MAIN_PDF_DASH_BETWEEN_LINES && $i < ($nblignes - 1))
|
||||
{
|
||||
$pdf->setPage($pageposafter);
|
||||
$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));
|
||||
|
||||
@ -448,7 +448,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices
|
||||
$this->localtax2[$localtax2rate]+=$localtax2ligne;
|
||||
|
||||
// Add line
|
||||
if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1))
|
||||
if ($conf->global->MAIN_PDF_DASH_BETWEEN_LINES && $i < ($nblignes - 1))
|
||||
{
|
||||
$pdf->setPage($pageposafter);
|
||||
$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));
|
||||
|
||||
@ -470,7 +470,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
|
||||
|
||||
|
||||
// Add line
|
||||
if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1))
|
||||
if ($conf->global->MAIN_PDF_DASH_BETWEEN_LINES && $i < ($nblignes - 1))
|
||||
{
|
||||
$pdf->setPage($pageposafter);
|
||||
$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));
|
||||
|
||||
@ -59,6 +59,8 @@ if (empty($reshook) && ! empty($extrafields->attribute_label))
|
||||
if (isset($user->rights->$keyforperm)) $permok=$user->rights->$keyforperm->creer||$user->rights->$keyforperm->create||$user->rights->$keyforperm->write;
|
||||
if ($object->element=='order_supplier') $permok=$user->rights->fournisseur->commande->creer;
|
||||
if ($object->element=='invoice_supplier') $permok=$user->rights->fournisseur->facture->creer;
|
||||
if ($object->element=='shipping') $permok=$user->rights->expedition->creer;
|
||||
if ($object->element=='delivery') $permok=$user->rights->expedition->livraison->creer;
|
||||
|
||||
if (($object->statut == 0 || $extrafields->attribute_alwayseditable[$key])
|
||||
&& $permok && ($action != 'edit_extras' || GETPOST('attribute') != $key))
|
||||
|
||||
@ -32,7 +32,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/triggers/dolibarrtriggers.class.php';
|
||||
|
||||
class InterfaceWorkflowManager extends DolibarrTriggers
|
||||
{
|
||||
public $picto = 'paypal@paypal';
|
||||
public $picto = 'technic';
|
||||
public $family = 'core';
|
||||
public $description = "Triggers of this module allows to manage workflows";
|
||||
public $version = self::VERSION_DOLIBARR;
|
||||
|
||||
@ -43,6 +43,11 @@ $action=GETPOST('action','alpha');
|
||||
$confirm=GETPOST('confirm','alpha');
|
||||
$cancel=GETPOST('cancel');
|
||||
|
||||
|
||||
/*
|
||||
* Actions
|
||||
*/
|
||||
|
||||
$object = new Cronjob($db);
|
||||
if (!empty($id))
|
||||
{
|
||||
@ -53,7 +58,7 @@ if (!empty($id))
|
||||
}
|
||||
}
|
||||
|
||||
if(!empty($cancel))
|
||||
if (!empty($cancel))
|
||||
{
|
||||
if (!empty($id))
|
||||
{
|
||||
@ -61,7 +66,7 @@ if(!empty($cancel))
|
||||
}
|
||||
else
|
||||
{
|
||||
Header("Location: ".DOL_URL_ROOT.'/cron/list.php?status=1');
|
||||
Header("Location: ".DOL_URL_ROOT.'/cron/list.php?status=-2');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
@ -78,7 +83,7 @@ if ($action == 'confirm_delete' && $confirm == "yes" && $user->rights->cron->del
|
||||
}
|
||||
else
|
||||
{
|
||||
Header("Location: ".DOL_URL_ROOT.'/cron/list.php?status=1');
|
||||
Header("Location: ".DOL_URL_ROOT.'/cron/list.php?status=-2');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
@ -312,7 +317,7 @@ if (($action=="create") || ($action=="edit"))
|
||||
print "</tr>\n";
|
||||
|
||||
print "<tr><td>";
|
||||
print $langs->trans('CronHourStart')."</td><td>";
|
||||
print $langs->trans('CronDtStart')."</td><td>";
|
||||
if(!empty($object->datestart))
|
||||
{
|
||||
$form->select_date($object->datestart,'datestart',1,1,'',"cronform");
|
||||
@ -513,15 +518,22 @@ else
|
||||
print "</td></tr>";
|
||||
|
||||
print "<tr><td>";
|
||||
print $langs->trans('CronHourStart')."</td><td>";
|
||||
if(!empty($object->datestart)) {print dol_print_date($object->datestart,'dayhourtext');} else {print $langs->trans('CronNone');}
|
||||
print $langs->trans('CronDtStart')."</td><td>";
|
||||
if(!empty($object->datestart)) {print dol_print_date($object->datestart,'dayhourtext');}
|
||||
print "</td></tr>";
|
||||
|
||||
print "<tr><td>";
|
||||
print $langs->trans('CronDtEnd')."</td><td>";
|
||||
if(!empty($object->dateend)) {print dol_print_date($object->dateend,'dayhourtext');} else {print $langs->trans('CronNone');}
|
||||
if(!empty($object->dateend)) {print dol_print_date($object->dateend,'dayhourtext');}
|
||||
print "</td></tr>";
|
||||
|
||||
print '<tr><td>';
|
||||
print $langs->trans('CronDtNextLaunch');
|
||||
print ' ('.$langs->trans('CronFrom').')';
|
||||
print "</td><td>";
|
||||
if(!empty($object->datenextrun)) {print dol_print_date($object->datenextrun,'dayhoursec');} else {print $langs->trans('CronNone');}
|
||||
print "</td></tr>";
|
||||
|
||||
print "<tr><td>";
|
||||
print $langs->trans('CronPriority')."</td>";
|
||||
print "<td>".$object->priority;
|
||||
@ -586,23 +598,17 @@ else
|
||||
|
||||
print '<br>';
|
||||
|
||||
|
||||
print '<table class="border" width="100%">';
|
||||
|
||||
print '<tr><td width="30%">';
|
||||
print $langs->trans('CronDtLastLaunch')."</td><td>";
|
||||
if(!empty($object->datelastrun)) {print dol_print_date($object->datelastrun,'dayhourtext');} else {print $langs->trans('CronNone');}
|
||||
print "</td></tr>";
|
||||
|
||||
print '<tr><td>';
|
||||
print $langs->trans('CronDtNextLaunch');
|
||||
print ' ('.$langs->trans('CronFrom').')';
|
||||
print "</td><td>";
|
||||
if(!empty($object->datenextrun)) {print dol_print_date($object->datenextrun,'dayhourtext');} else {print $langs->trans('CronNone');}
|
||||
if(!empty($object->datelastrun)) {print dol_print_date($object->datelastrun,'dayhoursec');} else {print $langs->trans('CronNone');}
|
||||
print "</td></tr>";
|
||||
|
||||
print '<tr><td>';
|
||||
print $langs->trans('CronDtLastResult')."</td><td>";
|
||||
if(!empty($object->datelastresult)) {print dol_print_date($object->datelastresult,'dayhourtext');} else {print $langs->trans('CronNone');}
|
||||
if(!empty($object->datelastresult)) {print dol_print_date($object->datelastresult,'dayhoursec');} else {print $langs->trans('CronNone');}
|
||||
print "</td></tr>";
|
||||
|
||||
print '<tr><td>';
|
||||
|
||||
@ -521,9 +521,6 @@ class Cronjob extends CommonObject
|
||||
|
||||
// Check parameters
|
||||
// Put here code to add a control on parameters values
|
||||
if (empty($this->status)) {
|
||||
$this->dateend=dol_now();
|
||||
}
|
||||
if (dol_strlen($this->datestart)==0) {
|
||||
$this->errors[]=$langs->trans('CronFieldMandatory',$langs->trans('CronDtStart'));
|
||||
$error++;
|
||||
@ -830,7 +827,9 @@ class Cronjob extends CommonObject
|
||||
|
||||
|
||||
/**
|
||||
* Run a job
|
||||
* Run a job.
|
||||
* Once job is finished, status and nb of of run is updated.
|
||||
* This function does not plan the next run. This is done by function ->reprogram_jobs
|
||||
*
|
||||
* @param string $userlogin User login
|
||||
* @return int <0 if KO, >0 if OK
|
||||
@ -843,7 +842,8 @@ class Cronjob extends CommonObject
|
||||
|
||||
$langs->load('cron');
|
||||
|
||||
if (empty($userlogin)) {
|
||||
if (empty($userlogin))
|
||||
{
|
||||
$this->error="User login is mandatory";
|
||||
dol_syslog(get_class($this)."::run_jobs ".$this->error, LOG_ERR);
|
||||
return -1;
|
||||
@ -891,7 +891,7 @@ class Cronjob extends CommonObject
|
||||
$this->datelastrun=$now;
|
||||
$this->lastoutput='';
|
||||
$this->lastresult='';
|
||||
$this->nbrun=$this->nbrun+1;
|
||||
$this->nbrun=$this->nbrun + 1;
|
||||
$result = $this->update($user);
|
||||
if ($result<0) {
|
||||
dol_syslog(get_class($this)."::run_jobs ".$this->error, LOG_ERR);
|
||||
@ -1055,23 +1055,28 @@ class Cronjob extends CommonObject
|
||||
/**
|
||||
* Reprogram a job
|
||||
*
|
||||
* @param string $userlogin User login
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*
|
||||
* @param string $userlogin User login
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
function reprogram_jobs($userlogin)
|
||||
{
|
||||
dol_syslog(get_class($this)."::reprogram_jobs userlogin:$userlogin", LOG_DEBUG);
|
||||
|
||||
|
||||
$now = dol_now();
|
||||
|
||||
require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php';
|
||||
$user=new User($this->db);
|
||||
$result=$user->fetch('',$userlogin);
|
||||
if ($result<0) {
|
||||
if ($result<0)
|
||||
{
|
||||
$this->error="User Error:".$user->error;
|
||||
dol_syslog(get_class($this)."::reprogram_jobs ".$this->error, LOG_ERR);
|
||||
return -1;
|
||||
}else {
|
||||
if (empty($user->id)) {
|
||||
}
|
||||
else
|
||||
{
|
||||
if (empty($user->id))
|
||||
{
|
||||
$this->error=" User user login:".$userlogin." do not exists";
|
||||
dol_syslog(get_class($this)."::reprogram_jobs ".$this->error, LOG_ERR);
|
||||
return -1;
|
||||
@ -1080,17 +1085,41 @@ class Cronjob extends CommonObject
|
||||
|
||||
dol_syslog(get_class($this)."::reprogram_jobs ", LOG_DEBUG);
|
||||
|
||||
if (empty($this->datenextrun)) {
|
||||
$this->datenextrun=dol_now()+$this->frequency;
|
||||
} else {
|
||||
if ($this->datenextrun<dol_now()) {
|
||||
$this->datenextrun=dol_now()+$this->frequency;
|
||||
} else {
|
||||
$this->datenextrun=$this->datenextrun+$this->frequency;
|
||||
|
||||
if (empty($this->datenextrun))
|
||||
{
|
||||
$this->datenextrun = $now + $this->frequency;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($this->datenextrun < $now && $this->frequency > 0)
|
||||
{
|
||||
// Loop until date is after future
|
||||
while ($this->datenextrun < $now)
|
||||
{
|
||||
$this->datenextrun += $this->frequency;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//$this->datenextrun=$this->datenextrun+$this->frequency;
|
||||
}
|
||||
}
|
||||
|
||||
// Archive job
|
||||
if ($this->autodelete == 2)
|
||||
{
|
||||
if (($this->maxrun > 0 && ($this->nbrun >= $this->maxrun))
|
||||
|| ($this->dateend && ($this->datenextrun > $this->dateend)))
|
||||
{
|
||||
$this->status = 2;
|
||||
dol_syslog(get_class($this)."::reprogram_jobs Job must be set to archived", LOG_ERR);
|
||||
}
|
||||
}
|
||||
|
||||
$result = $this->update($user);
|
||||
if ($result<0) {
|
||||
if ($result<0)
|
||||
{
|
||||
dol_syslog(get_class($this)."::reprogram_jobs ".$this->error, LOG_ERR);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -47,6 +47,7 @@ $sortorder=GETPOST('sortorder','alpha');
|
||||
$sortfield=GETPOST('sortfield','alpha');
|
||||
$page=GETPOST('page','int');
|
||||
$status=GETPOST('status','int');
|
||||
if ($status == '') $status=-2;
|
||||
|
||||
//Search criteria
|
||||
$search_label=GETPOST("search_label",'alpha');
|
||||
@ -116,7 +117,7 @@ if ($action == 'confirm_execute' && $confirm == "yes" && $user->rights->cron->ex
|
||||
}
|
||||
}
|
||||
|
||||
header("Location: ".DOL_URL_ROOT.'/cron/list.php?status=-1'); // Make a call to avoid to run twice job when using back
|
||||
header("Location: ".DOL_URL_ROOT.'/cron/list.php?status=-2'); // Make a call to avoid to run twice job when using back
|
||||
exit;
|
||||
}
|
||||
|
||||
@ -131,22 +132,6 @@ $pagetitle=$langs->trans("CronList");
|
||||
|
||||
llxHeader('',$pagetitle);
|
||||
|
||||
print load_fiche_titre($pagetitle,'','title_setup');
|
||||
|
||||
print $langs->trans('CronInfo');
|
||||
|
||||
if ($action == 'delete')
|
||||
{
|
||||
print $form->formconfirm($_SERVER['PHP_SELF']."?id=".$id.'&status='.$status,$langs->trans("CronDelete"),$langs->trans("CronConfirmDelete"),"confirm_delete",'','',1);
|
||||
|
||||
}
|
||||
|
||||
if ($action == 'execute')
|
||||
{
|
||||
print $form->formconfirm($_SERVER['PHP_SELF']."?id=".$id.'&status='.$status,$langs->trans("CronExecute"),$langs->trans("CronConfirmExecute"),"confirm_execute",'','',1);
|
||||
|
||||
}
|
||||
|
||||
// list of jobs created
|
||||
$object = new Cronjob($db);
|
||||
$result=$object->fetch_all($sortorder, $sortfield, $limit, $offset, $status, $filter);
|
||||
@ -154,29 +139,50 @@ if ($result < 0)
|
||||
{
|
||||
setEventMessages($object->error, $object->errors, 'errors');
|
||||
}
|
||||
$nbtotalofrecord=0;
|
||||
$num=count($object->lines);
|
||||
|
||||
$param='&page='.$page.'&status='.$status.'&search_label='.$search_label;
|
||||
|
||||
|
||||
print_barre_liste($pagetitle, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'title_setup');
|
||||
|
||||
|
||||
print $langs->trans('CronInfo');
|
||||
print "<br><br>";
|
||||
|
||||
|
||||
if ($action == 'delete')
|
||||
{
|
||||
print $form->formconfirm($_SERVER['PHP_SELF']."?id=".$id.'&status='.$status,$langs->trans("CronDelete"),$langs->trans("CronConfirmDelete"),"confirm_delete",'','',1);
|
||||
|
||||
}
|
||||
|
||||
if ($action == 'execute')
|
||||
{
|
||||
print $form->formconfirm($_SERVER['PHP_SELF']."?id=".$id.'&status='.$status,$langs->trans("CronExecute"),$langs->trans("CronConfirmExecute"),"confirm_execute",'','',1);
|
||||
|
||||
}
|
||||
|
||||
|
||||
print '<form method="GET" action="'.$url_form.'" name="search_form">'."\n";
|
||||
print '<input type="hidden" name="status" value="'.$status.'" >';
|
||||
|
||||
print '<table width="100%" class="noborder">';
|
||||
print '<tr class="liste_titre">';
|
||||
$arg_url='&page='.$page.'&status='.$status.'&search_label='.$search_label;
|
||||
print_liste_field_titre($langs->trans("ID"),$_SERVER["PHP_SELF"],"t.rowid","",$arg_url,'',$sortfield,$sortorder);
|
||||
print_liste_field_titre($langs->trans("CronLabel"),$_SERVER["PHP_SELF"],"t.label","",$arg_url,'',$sortfield,$sortorder);
|
||||
print_liste_field_titre($langs->trans("CronTask"),'','',"",$arg_url,'',$sortfield,$sortorder);
|
||||
print_liste_field_titre($langs->trans("CronDtStart"),$_SERVER["PHP_SELF"],"t.datestart","",$arg_url,'',$sortfield,$sortorder);
|
||||
print_liste_field_titre($langs->trans("CronDtEnd"),$_SERVER["PHP_SELF"],"t.dateend","",$arg_url,'',$sortfield,$sortorder);
|
||||
print_liste_field_titre($langs->trans("CronDtLastLaunch"),$_SERVER["PHP_SELF"],"t.datelastrun","",$arg_url,'',$sortfield,$sortorder);
|
||||
print_liste_field_titre($langs->trans("CronDtNextLaunch"),$_SERVER["PHP_SELF"],"t.datenextrun","",$arg_url,'',$sortfield,$sortorder);
|
||||
print_liste_field_titre($langs->trans("CronFrequency"),'',"","",$arg_url,'',$sortfield,$sortorder);
|
||||
print_liste_field_titre($langs->trans("CronNbRun"),$_SERVER["PHP_SELF"],"t.nbrun","",$arg_url,'',$sortfield,$sortorder);
|
||||
print_liste_field_titre($langs->trans("CronLastResult"),$_SERVER["PHP_SELF"],"t.lastresult","",$arg_url,'',$sortfield,$sortorder);
|
||||
print_liste_field_titre($langs->trans("CronLastOutput"),$_SERVER["PHP_SELF"],"t.lastoutput","",$arg_url,'',$sortfield,$sortorder);
|
||||
print_liste_field_titre($langs->trans("Enabled"),$_SERVER["PHP_SELF"],"t.status","",$arg_url,'align="center"',$sortfield,$sortorder);
|
||||
print_liste_field_titre($langs->trans("ID"),$_SERVER["PHP_SELF"],"t.rowid","",$param,'',$sortfield,$sortorder);
|
||||
print_liste_field_titre($langs->trans("CronLabel"),$_SERVER["PHP_SELF"],"t.label","",$param,'',$sortfield,$sortorder);
|
||||
print_liste_field_titre($langs->trans("CronTask"),'','',"",$param,'',$sortfield,$sortorder);
|
||||
print_liste_field_titre($langs->trans("CronDtStart"),$_SERVER["PHP_SELF"],"t.datestart","",$param,'align="center"',$sortfield,$sortorder);
|
||||
print_liste_field_titre($langs->trans("CronDtEnd"),$_SERVER["PHP_SELF"],"t.dateend","",$param,'align="center"',$sortfield,$sortorder);
|
||||
print_liste_field_titre($langs->trans("CronDtNextLaunch"),$_SERVER["PHP_SELF"],"t.datenextrun","",$param,'align="center"',$sortfield,$sortorder);
|
||||
print_liste_field_titre($langs->trans("CronFrequency"),'',"","",$param,'',$sortfield,$sortorder);
|
||||
print_liste_field_titre($langs->trans("CronMaxRun"),$_SERVER["PHP_SELF"],"t.maxrun","",$param,'align="right"',$sortfield,$sortorder);
|
||||
print_liste_field_titre($langs->trans("CronNbRun"),$_SERVER["PHP_SELF"],"t.nbrun","",$param,'align="right"',$sortfield,$sortorder);
|
||||
print_liste_field_titre($langs->trans("CronDtLastLaunch"),$_SERVER["PHP_SELF"],"t.datelastrun","",$param,'align="center"',$sortfield,$sortorder);
|
||||
print_liste_field_titre($langs->trans("CronLastResult"),$_SERVER["PHP_SELF"],"t.lastresult","",$param,'align="center"',$sortfield,$sortorder);
|
||||
print_liste_field_titre($langs->trans("CronLastOutput"),$_SERVER["PHP_SELF"],"t.lastoutput","",$param,'',$sortfield,$sortorder);
|
||||
print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"t.status","",$param,'align="center"',$sortfield,$sortorder);
|
||||
print_liste_field_titre('');
|
||||
print "</tr>\n";
|
||||
|
||||
@ -194,8 +200,9 @@ print '<td> </td>';
|
||||
print '<td> </td>';
|
||||
print '<td> </td>';
|
||||
print '<td> </td>';
|
||||
print '<td> </td>';
|
||||
print '<td class="liste_titre" align="center">';
|
||||
print $form->selectarray('status', array('0'=>$langs->trans("No"),'1'=>$langs->trans("Yes")), $status, 1);
|
||||
print $form->selectarray('status', array('0'=>$langs->trans("Disabled"), '1'=>$langs->trans("Enabled"), '-2'=>$langs->trans("EnabledAndDisabled"), '2'=>$langs->trans("Archived")), $status, 1);
|
||||
print '</td><td class="liste_titre" align="right">';
|
||||
print '<input class="liste_titre" type="image" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
|
||||
print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
|
||||
@ -203,9 +210,9 @@ print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
|
||||
if (count($object->lines) > 0)
|
||||
if ($num > 0)
|
||||
{
|
||||
// Loop on each active job
|
||||
// Loop on each job
|
||||
$style='pair';
|
||||
foreach($object->lines as $line)
|
||||
{
|
||||
@ -229,7 +236,7 @@ if (count($object->lines) > 0)
|
||||
}
|
||||
else
|
||||
{
|
||||
print $langs->trans('CronNone');
|
||||
//print $langs->trans('CronNone');
|
||||
}
|
||||
print '</td>';
|
||||
|
||||
@ -252,20 +259,16 @@ if (count($object->lines) > 0)
|
||||
}
|
||||
print '</td>';
|
||||
|
||||
print '<td>';
|
||||
if(!empty($line->datestart)) {print dol_print_date($line->datestart,'dayhour');} else {print $langs->trans('CronNone');}
|
||||
print '<td class="center">';
|
||||
if(!empty($line->datestart)) {print dol_print_date($line->datestart,'dayhour');}
|
||||
print '</td>';
|
||||
|
||||
print '<td>';
|
||||
if(!empty($line->dateend)) {print dol_print_date($line->dateend,'dayhour');} else {print $langs->trans('CronNone');}
|
||||
print '<td class="center">';
|
||||
if(!empty($line->dateend)) {print dol_print_date($line->dateend,'dayhour');}
|
||||
print '</td>';
|
||||
|
||||
print '<td>';
|
||||
if(!empty($line->datelastrun)) {print dol_print_date($line->datelastrun,'dayhour');} else {print $langs->trans('CronNone');}
|
||||
print '</td>';
|
||||
|
||||
print '<td>';
|
||||
if(!empty($line->datenextrun)) {print dol_print_date($line->datenextrun,'dayhour');} else {print $langs->trans('CronNone');}
|
||||
print '<td class="center">';
|
||||
if(!empty($line->datenextrun)) {print dol_print_date($line->datenextrun,'dayhour');}
|
||||
print '</td>';
|
||||
|
||||
print '<td>';
|
||||
@ -275,21 +278,31 @@ if (count($object->lines) > 0)
|
||||
if($line->unitfrequency == "604800") print $langs->trans('CronEach')." ".($line->frequency/$line->unitfrequency)." ".$langs->trans('Weeks');
|
||||
print '</td>';
|
||||
|
||||
print '<td>';
|
||||
if(!empty($line->nbrun)) {print $line->nbrun;} else {print '0';}
|
||||
print '<td align="right">';
|
||||
if (!empty($line->maxrun)) {print $line->maxrun;}
|
||||
print '</td>';
|
||||
|
||||
print '<td align="right">';
|
||||
if (!empty($line->nbrun)) {print $line->nbrun;} else {print '0';}
|
||||
print '</td>';
|
||||
|
||||
print '<td class="center">';
|
||||
if(!empty($line->datelastrun)) {print dol_print_date($line->datelastrun,'dayhour');}
|
||||
print '</td>';
|
||||
|
||||
print '<td class="center">';
|
||||
if(!empty($line->lastresult)) {print dol_trunc($line->lastresult);}
|
||||
print '</td>';
|
||||
|
||||
print '<td>';
|
||||
if(!empty($line->lastresult)) {print dol_trunc($line->lastresult);} else {print $langs->trans('CronNone');}
|
||||
print '</td>';
|
||||
|
||||
print '<td>';
|
||||
if(!empty($line->lastoutput)) {print dol_trunc(nl2br($line->lastoutput),100);} else {print $langs->trans('CronNone');}
|
||||
if(!empty($line->lastoutput)) {print dol_trunc(nl2br($line->lastoutput),100);}
|
||||
print '</td>';
|
||||
|
||||
// Status
|
||||
print '<td align="center">';
|
||||
print yn($line->status);
|
||||
if ($line->status == 1) print $langs->trans("Enabled");
|
||||
elseif ($line->status == 2) print $langs->trans("Archived");
|
||||
else print $langs->trans("Disabled");
|
||||
print '</td>';
|
||||
|
||||
print '<td align="right" class="nowrap">';
|
||||
|
||||
@ -8,6 +8,7 @@
|
||||
* Copyright (C) 2013 Marcos García <marcosgdf@gmail.com>
|
||||
* Copyright (C) 2014 Cedric GROSS <c.gross@kreiz-it.fr>
|
||||
* Copyright (C) 2014 Francis Appels <francis.appels@yahoo.com>
|
||||
* Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
|
||||
*
|
||||
* 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
|
||||
@ -37,6 +38,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/product.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/sendings.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/modules/expedition/modules_expedition.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||
require_once DOL_DOCUMENT_ROOT . '/core/class/extrafields.class.php';
|
||||
if (! empty($conf->product->enabled) || ! empty($conf->service->enabled)) require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
|
||||
if (! empty($conf->propal->enabled)) require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php';
|
||||
if (! empty($conf->commande->enabled)) require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php';
|
||||
@ -75,6 +77,15 @@ $hidedesc = (GETPOST('hidedesc','int') ? GETPOST('hidedesc','int') : (! empty(
|
||||
$hideref = (GETPOST('hideref','int') ? GETPOST('hideref','int') : (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_REF) ? 1 : 0));
|
||||
|
||||
$object = new Expedition($db);
|
||||
$extrafields = new ExtraFields($db);
|
||||
$extrafieldsline = new ExtraFields($db);
|
||||
|
||||
// fetch optionals attributes and labels
|
||||
$extralabels = $extrafields->fetch_name_optionals_label($object->table_element);
|
||||
|
||||
// fetch optionals attributes lines and labels
|
||||
$extralabelslines=$extrafieldsline->fetch_name_optionals_label($object->table_element_line);
|
||||
|
||||
|
||||
// Load object. Make an object->fetch
|
||||
include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once
|
||||
@ -111,6 +122,33 @@ if ($action == 'set_incoterms' && !empty($conf->incoterm->enabled))
|
||||
$result = $object->setIncoterms(GETPOST('incoterm_id', 'int'), GETPOST('location_incoterms', 'alpha'));
|
||||
}
|
||||
|
||||
if ($action == 'update_extras')
|
||||
{
|
||||
// Fill array 'array_options' with data from update form
|
||||
$extralabels = $extrafields->fetch_name_optionals_label($object->table_element);
|
||||
$ret = $extrafields->setOptionalsFromPost($extralabels, $object, GETPOST('attribute'));
|
||||
if ($ret < 0) $error++;
|
||||
|
||||
if (! $error)
|
||||
{
|
||||
// Actions on extra fields (by external module or standard code)
|
||||
// TODO le hook fait double emploi avec le trigger !!
|
||||
$hookmanager->initHooks(array('expeditiondao'));
|
||||
$parameters = array('id' => $object->id);
|
||||
$reshook = $hookmanager->executeHooks('insertExtraFields', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
|
||||
if (empty($reshook)) {
|
||||
$result = $object->insertExtraFields();
|
||||
if ($result < 0) {
|
||||
$error++;
|
||||
}
|
||||
} else if ($reshook < 0)
|
||||
$error++;
|
||||
}
|
||||
|
||||
if ($error)
|
||||
$action = 'edit_extras';
|
||||
}
|
||||
|
||||
$parameters=array();
|
||||
$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
||||
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
||||
@ -119,9 +157,10 @@ if (empty($reshook))
|
||||
{
|
||||
include DOL_DOCUMENT_ROOT.'/core/actions_dellink.inc.php'; // Must be include, not include_once
|
||||
|
||||
if ($action == 'add')
|
||||
if ($action == 'add' && $user->rights->expedition->creer)
|
||||
{
|
||||
$error=0;
|
||||
$predef='';
|
||||
|
||||
$db->begin();
|
||||
|
||||
@ -157,7 +196,8 @@ if (empty($reshook))
|
||||
$object->location_incoterms = GETPOST('location_incoterms', 'alpha');
|
||||
|
||||
$batch_line = array();
|
||||
|
||||
$array_options=array();
|
||||
|
||||
$num=count($objectsrc->lines);
|
||||
$totalqty=0;
|
||||
|
||||
@ -201,8 +241,20 @@ if (empty($reshook))
|
||||
//shipment line for product with no batch management
|
||||
if (GETPOST($qty,'int') > 0) $totalqty+=GETPOST($qty,'int');
|
||||
}
|
||||
|
||||
// Extrafields
|
||||
$extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line);
|
||||
$array_options[$i] = $extrafieldsline->getOptionalsFromPost($extralabelsline, $i);
|
||||
// Unset extrafield
|
||||
if (is_array($extralabelsline)) {
|
||||
// Get extra fields
|
||||
foreach ($extralabelsline as $key => $value) {
|
||||
unset($_POST["options_" . $key]);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
//var_dump($batch_line[2]);
|
||||
|
||||
if ($totalqty > 0) // There is at least one thing to ship
|
||||
@ -220,8 +272,8 @@ if (empty($reshook))
|
||||
$idl = "idl".$i;
|
||||
$entrepot_id = is_numeric(GETPOST($ent,'int'))?GETPOST($ent,'int'):GETPOST('entrepot_id','int');
|
||||
if ($entrepot_id < 0) $entrepot_id='';
|
||||
|
||||
$ret=$object->addline($entrepot_id,GETPOST($idl,'int'),GETPOST($qty,'int'));
|
||||
|
||||
$ret=$object->addline($entrepot_id,GETPOST($idl,'int'),GETPOST($qty,'int'),$array_options[$i]);
|
||||
if ($ret < 0)
|
||||
{
|
||||
setEventMessages($object->error, $object->errors, 'errors');
|
||||
@ -234,7 +286,7 @@ if (empty($reshook))
|
||||
// batch mode
|
||||
if ($batch_line[$i]['qty']>0)
|
||||
{
|
||||
$ret=$object->addline_batch($batch_line[$i]);
|
||||
$ret=$object->addline_batch($batch_line[$i],$array_options[$i]);
|
||||
if ($ret < 0)
|
||||
{
|
||||
setEventMessages($object->error, $object->errors, 'errors');
|
||||
@ -242,8 +294,11 @@ if (empty($reshook))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
// Fill array 'array_options' with data from add form
|
||||
$ret = $extrafields->setOptionalsFromPost($extralabels, $object);
|
||||
if ($ret < 0) $error++;
|
||||
|
||||
if (! $error)
|
||||
{
|
||||
$ret=$object->create($user); // This create shipment (like Odoo picking) and line of shipments. Stock movement will when validating shipment.
|
||||
@ -603,6 +658,15 @@ if ($action == 'create')
|
||||
print '<td colspan="3">';
|
||||
print '<input name="tracking_number" size="20" value="'.GETPOST('tracking_number','alpha').'">';
|
||||
print "</td></tr>\n";
|
||||
|
||||
// Other attributes
|
||||
$parameters = array('objectsrc' => $objectsrc, 'colspan' => ' colspan="3"', 'socid'=>$socid);
|
||||
$reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$expe,$action); // Note that $action and $object may have been modified by hook
|
||||
|
||||
if (empty($reshook) && ! empty($extrafields->attribute_label)) {
|
||||
print $expe->showOptionals($extrafields, 'edit');
|
||||
}
|
||||
|
||||
|
||||
// Incoterms
|
||||
if (!empty($conf->incoterm->enabled))
|
||||
@ -621,17 +685,13 @@ if ($action == 'create')
|
||||
$liste = ModelePdfExpedition::liste_modeles($db);
|
||||
print $form->selectarray('model', $liste, $conf->global->EXPEDITION_ADDON_PDF);
|
||||
print "</td></tr>\n";
|
||||
|
||||
// Other attributes
|
||||
$parameters=array('colspan' => ' colspan="3"');
|
||||
$reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$expe,$action); // Note that $action and $object may have been modified by hook
|
||||
|
||||
|
||||
print "</table>";
|
||||
|
||||
dol_fiche_end();
|
||||
|
||||
/*
|
||||
* Lignes de commandes
|
||||
* Expedition Lines
|
||||
*/
|
||||
|
||||
$numAsked = count($object->lines);
|
||||
@ -895,6 +955,17 @@ if ($action == 'create')
|
||||
print img_warning().' '.$langs->trans("NoProductToShipFoundIntoStock", $staticwarehouse->libelle);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//Display lines extrafields
|
||||
if (is_array($extralabelslines) && count($extralabelslines)>0) {
|
||||
$colspan=5;
|
||||
$line = new ExpeditionLigne($db);
|
||||
$line->fetch_optionals($object->id,$extralabelslines);
|
||||
print '<tr '.$bc[$var].'>';
|
||||
print $line->showOptionals($extrafieldsline, 'edit', array('style'=>$bc[$var], 'colspan'=>$colspan),$indiceAsked);
|
||||
print '</tr>';
|
||||
}
|
||||
|
||||
$indiceAsked++;
|
||||
}
|
||||
@ -934,6 +1005,8 @@ else if ($id || $ref)
|
||||
|
||||
$soc = new Societe($db);
|
||||
$soc->fetch($object->socid);
|
||||
|
||||
$res = $object->fetch_optionals($object->id, $extralabels);
|
||||
|
||||
$head=shipping_prepare_head($object);
|
||||
dol_fiche_head($head, 'shipping', $langs->trans("Shipment"), 0, 'sending');
|
||||
@ -1252,9 +1325,9 @@ else if ($id || $ref)
|
||||
}
|
||||
|
||||
// Other attributes
|
||||
$parameters=array('colspan' => ' colspan="3"');
|
||||
$reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook
|
||||
|
||||
$cols = 3;
|
||||
include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php';
|
||||
|
||||
print "</table>\n";
|
||||
|
||||
/*
|
||||
@ -1437,6 +1510,16 @@ else if ($id || $ref)
|
||||
}
|
||||
}
|
||||
print "</tr>";
|
||||
|
||||
//Display lines extrafields
|
||||
if (is_array($extralabelslines) && count($extralabelslines)>0) {
|
||||
$colspan= empty($conf->productbatch->enabled) ? 5 : 6;
|
||||
$line = new ExpeditionLigne($db);
|
||||
$line->fetch_optionals($lines[$i]->id,$extralabelslines);
|
||||
print '<tr '.$bc[$var].'>';
|
||||
print $line->showOptionals($extrafieldsline, 'view', array('style'=>$bc[$var], 'colspan'=>$colspan),$indiceAsked);
|
||||
print '</tr>';
|
||||
}
|
||||
|
||||
$var=!$var;
|
||||
}
|
||||
|
||||
@ -8,6 +8,7 @@
|
||||
* Copyright (C) 2014 Cedric GROSS <c.gross@kreiz-it.fr>
|
||||
* Copyright (C) 2014-2015 Marcos García <marcosgdf@gmail.com>
|
||||
* Copyright (C) 2014-2015 Francis Appels <francis.appels@yahoo.com>
|
||||
* Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
|
||||
*
|
||||
* 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
|
||||
@ -30,6 +31,7 @@
|
||||
*/
|
||||
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php';
|
||||
require_once DOL_DOCUMENT_ROOT."/core/class/commonobjectline.class.php";
|
||||
if (! empty($conf->propal->enabled)) require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php';
|
||||
if (! empty($conf->commande->enabled)) require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php';
|
||||
if (! empty($conf->productbatch->enabled)) require_once DOL_DOCUMENT_ROOT.'/expedition/class/expeditionbatch.class.php';
|
||||
@ -43,6 +45,7 @@ class Expedition extends CommonObject
|
||||
public $element="shipping";
|
||||
public $fk_element="fk_expedition";
|
||||
public $table_element="expedition";
|
||||
public $table_element_line="expeditiondet";
|
||||
protected $ismultientitymanaged = 1; // 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
|
||||
|
||||
var $socid;
|
||||
@ -167,11 +170,12 @@ class Expedition extends CommonObject
|
||||
* Create expedition en base
|
||||
*
|
||||
* @param User $user Objet du user qui cree
|
||||
* @param int $notrigger 1=Does not execute triggers, 0= execuete triggers
|
||||
* @return int <0 si erreur, id expedition creee si ok
|
||||
*/
|
||||
function create($user)
|
||||
function create($user, $notrigger=0)
|
||||
{
|
||||
global $conf, $langs;
|
||||
global $conf, $langs, $hookmanager;
|
||||
|
||||
$now=dol_now();
|
||||
|
||||
@ -255,14 +259,14 @@ class Expedition extends CommonObject
|
||||
{
|
||||
if (! isset($this->lines[$i]->detail_batch))
|
||||
{ // no batch management
|
||||
if (! $this->create_line($this->lines[$i]->entrepot_id, $this->lines[$i]->origin_line_id, $this->lines[$i]->qty) > 0)
|
||||
if (! $this->create_line($this->lines[$i]->entrepot_id, $this->lines[$i]->origin_line_id, $this->lines[$i]->qty, $this->lines[$i]->array_options) > 0)
|
||||
{
|
||||
$error++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{ // with batch management
|
||||
if (! $this->create_line_batch($this->lines[$i]) > 0)
|
||||
if (! $this->create_line_batch($this->lines[$i],$this->lines[$i]->array_options) > 0)
|
||||
{
|
||||
$error++;
|
||||
}
|
||||
@ -284,8 +288,26 @@ class Expedition extends CommonObject
|
||||
$error++;
|
||||
}
|
||||
}
|
||||
|
||||
// Actions on extra fields (by external module or standard code)
|
||||
// TODO le hook fait double emploi avec le trigger !!
|
||||
$hookmanager->initHooks(array('expeditiondao'));
|
||||
$parameters=array('socid'=>$this->id);
|
||||
$reshook=$hookmanager->executeHooks('insertExtraFields',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks
|
||||
if (empty($reshook))
|
||||
{
|
||||
if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) // For avoid conflicts if trigger used
|
||||
{
|
||||
$result=$this->insertExtraFields();
|
||||
if ($result < 0)
|
||||
{
|
||||
$error++;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ($reshook < 0) $error++;
|
||||
|
||||
if (! $error)
|
||||
if (! $error && ! $notrigger)
|
||||
{
|
||||
// Call trigger
|
||||
$result=$this->call_trigger('SHIPPING_CREATE',$user);
|
||||
@ -340,10 +362,12 @@ class Expedition extends CommonObject
|
||||
* @param int $entrepot_id Id of warehouse
|
||||
* @param int $origin_line_id Id of source line
|
||||
* @param int $qty Quantity
|
||||
* @param array $array_options extrafields array
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
function create_line($entrepot_id, $origin_line_id, $qty)
|
||||
function create_line($entrepot_id, $origin_line_id, $qty,$array_options=0)
|
||||
{
|
||||
global $conf;
|
||||
$error = 0;
|
||||
|
||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."expeditiondet (";
|
||||
@ -363,6 +387,19 @@ class Expedition extends CommonObject
|
||||
{
|
||||
$error++;
|
||||
}
|
||||
|
||||
if (!$error && empty($conf->global->MAIN_EXTRAFIELDS_DISABLED) && is_array($array_options) && count($array_options)>0) // For avoid conflicts if trigger used
|
||||
{
|
||||
$expeditionline = new ExpeditionLigne($this->db);
|
||||
$expeditionline->array_options=$array_options;
|
||||
$expeditionline->id= $this->db->last_insert_id(MAIN_DB_PREFIX.$expeditionline->table_element);
|
||||
$result=$expeditionline->insertExtraFields();
|
||||
if ($result < 0)
|
||||
{
|
||||
$this->error[]=$expeditionline->error;
|
||||
$error++;
|
||||
}
|
||||
}
|
||||
|
||||
if (! $error) return 1;
|
||||
else return -1;
|
||||
@ -373,13 +410,14 @@ class Expedition extends CommonObject
|
||||
* Create the detail (eat-by date) of the expedition line
|
||||
*
|
||||
* @param object $line_ext full line informations
|
||||
* @param array $array_options extrafields array
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
function create_line_batch($line_ext)
|
||||
function create_line_batch($line_ext,$array_options=0)
|
||||
{
|
||||
$error = 0;
|
||||
|
||||
if ($this->create_line(($line_ext->entrepot_id?$line_ext->entrepot_id:'null'),$line_ext->origin_line_id,$line_ext->qty) < 0)
|
||||
if ($this->create_line(($line_ext->entrepot_id?$line_ext->entrepot_id:'null'),$line_ext->origin_line_id,$line_ext->qty,$array_options) < 0)
|
||||
{
|
||||
$error++;
|
||||
}
|
||||
@ -500,6 +538,13 @@ class Expedition extends CommonObject
|
||||
* Thirparty
|
||||
*/
|
||||
$result=$this->fetch_thirdparty();
|
||||
|
||||
// Retrieve all extrafields for expedition
|
||||
// fetch optionals attributes and labels
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
|
||||
$extrafields=new ExtraFields($this->db);
|
||||
$extralabels=$extrafields->fetch_name_optionals_label($this->table_element,true);
|
||||
$this->fetch_optionals($this->id,$extralabels);
|
||||
|
||||
/*
|
||||
* Lines
|
||||
@ -784,9 +829,10 @@ class Expedition extends CommonObject
|
||||
* @param int $entrepot_id Id of warehouse
|
||||
* @param int $id Id of source line (order line)
|
||||
* @param int $qty Quantity
|
||||
* @param array $array_options extrafields array
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
function addline($entrepot_id, $id, $qty)
|
||||
function addline($entrepot_id, $id, $qty,$array_options=0)
|
||||
{
|
||||
global $conf, $langs;
|
||||
|
||||
@ -824,7 +870,11 @@ class Expedition extends CommonObject
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// extrafields
|
||||
if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED) && is_array($array_options) && count($array_options)>0) // For avoid conflicts if trigger used
|
||||
$line->array_options = $array_options;
|
||||
|
||||
$this->lines[$num] = $line;
|
||||
}
|
||||
|
||||
@ -832,10 +882,13 @@ class Expedition extends CommonObject
|
||||
* Add a shipment line with batch record
|
||||
*
|
||||
* @param array $dbatch Array of value (key 'detail' -> Array, key 'qty' total quantity for line, key ix_l : original line index)
|
||||
* @param array $array_options extrafields array
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
function addline_batch($dbatch)
|
||||
function addline_batch($dbatch,$array_options=0)
|
||||
{
|
||||
global $conf;
|
||||
|
||||
$num = count($this->lines);
|
||||
if ($dbatch['qty']>0)
|
||||
{
|
||||
@ -872,6 +925,10 @@ class Expedition extends CommonObject
|
||||
$line->qty = $dbatch['qty'];
|
||||
$line->detail_batch=$tab;
|
||||
|
||||
// extrafields
|
||||
if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED) && is_array($array_options) && count($array_options)>0) // For avoid conflicts if trigger used
|
||||
$line->array_options = $array_options;
|
||||
|
||||
//var_dump($line);
|
||||
$this->lines[$num] = $line;
|
||||
}
|
||||
@ -1181,7 +1238,7 @@ class Expedition extends CommonObject
|
||||
*/
|
||||
function fetch_lines()
|
||||
{
|
||||
global $conf;
|
||||
global $conf, $mysoc;
|
||||
// TODO: recuperer les champs du document associe a part
|
||||
|
||||
$sql = "SELECT cd.rowid, cd.fk_product, cd.label as custom_label, cd.description, cd.qty as qty_asked";
|
||||
@ -1257,7 +1314,7 @@ class Expedition extends CommonObject
|
||||
$line->volume_units = $obj->volume_units;
|
||||
|
||||
// For invoicing
|
||||
$tabprice = calcul_price_total($obj->qty_shipped, $obj->subprice, $obj->remise_percent, $obj->tva_tx, $obj->localtax1_tx, $obj->localtax2_tx, 0, 'HT', $obj->info_bits, $obj->fk_product_type); // We force type to 0
|
||||
$tabprice = calcul_price_total($obj->qty_shipped, $obj->subprice, $obj->remise_percent, $obj->tva_tx, $obj->localtax1_tx, $obj->localtax2_tx, 0, 'HT', $obj->info_bits, $obj->fk_product_type, $mysoc); // We force type to 0
|
||||
$line->desc = $obj->description; // We need ->desc because some code into CommonObject use desc (property defined for other elements)
|
||||
$line->qty = $line->qty_shipped;
|
||||
$line->total_ht = $tabprice[0];
|
||||
@ -1766,7 +1823,7 @@ class Expedition extends CommonObject
|
||||
/**
|
||||
* Classe de gestion des lignes de bons d'expedition
|
||||
*/
|
||||
class ExpeditionLigne
|
||||
class ExpeditionLigne extends CommonObjectLine
|
||||
{
|
||||
var $db;
|
||||
|
||||
@ -1791,6 +1848,9 @@ class ExpeditionLigne
|
||||
var $total_localtax1; // Total Local tax 1
|
||||
var $total_localtax2; // Total Local tax 2
|
||||
|
||||
public $element='expeditiondet';
|
||||
public $table_element='expeditiondet';
|
||||
|
||||
public $fk_origin_line;
|
||||
|
||||
// Deprecated
|
||||
|
||||
@ -886,7 +886,8 @@ if ($action == "addline")
|
||||
$object_ligne->fk_expensereport = $_POST['fk_expensereport'];
|
||||
|
||||
$type = 0; // TODO What if service ?
|
||||
$tmp = calcul_price_total($qty, $up, 0, $vatrate, 0, 0, 0, 'TTC', 0, $type);
|
||||
$seller = ''; // seller is unknown
|
||||
$tmp = calcul_price_total($qty, $up, 0, $vatrate, 0, 0, 0, 'TTC', 0, $type, $seller);
|
||||
|
||||
$object_ligne->vatrate = price2num($vatrate);
|
||||
$object_ligne->total_ttc = $tmp[2];
|
||||
|
||||
@ -167,9 +167,9 @@ $tmp='';
|
||||
$found=0;
|
||||
$real_dolibarr_main_document_root=str_replace('\\','/',realpath($dolibarr_main_document_root)); // A) Value found into config file, to say where are store htdocs files. Ex: C:/xxx/dolibarr, C:/xxx/dolibarr/htdocs
|
||||
if (!empty($_SERVER["DOCUMENT_ROOT"])) {
|
||||
$pathroot = $_SERVER["DOCUMENT_ROOT"]; // B) Value reported by web server setup, to say where is root of web server instance. Ex: C:/xxx/dolibarr, C:/xxx/dolibarr/htdocs
|
||||
$pathroot = $_SERVER["DOCUMENT_ROOT"]; // B) Value reported by web server setup (not defined on CLI mode), to say where is root of web server instance. Ex: C:/xxx/dolibarr, C:/xxx/dolibarr/htdocs
|
||||
} else {
|
||||
$pathroot = 'BOGUS';
|
||||
$pathroot = 'NOTDEFINED';
|
||||
}
|
||||
$paths=explode('/',str_replace('\\','/',$_SERVER["SCRIPT_NAME"])); // C) Value reported by web server, to say full path on filesystem of a file. Ex: /dolibarr/htdocs/admin/system/phpinfo.php
|
||||
// Try to detect if $_SERVER["DOCUMENT_ROOT"]+start of $_SERVER["SCRIPT_NAME"] is $dolibarr_main_document_root. If yes, relative url to add before dol files is this start part.
|
||||
@ -189,6 +189,7 @@ foreach($paths as $tmppath) // We check to find (B+start of C)=A
|
||||
}
|
||||
//else print "Not found yet for concatpath=".$concatpath."<br>\n";
|
||||
}
|
||||
//print "found=".$found." dolibarr_main_url_root=".$dolibarr_main_url_root."\n";
|
||||
if (! $found) $tmp=$dolibarr_main_url_root; // If autodetect fails (Ie: when using apache alias that point outside default DOCUMENT_ROOT).
|
||||
else $tmp='http'.(((empty($_SERVER["HTTPS"]) || $_SERVER["HTTPS"] != 'on') && (empty($_SERVER["SERVER_PORT"])||$_SERVER["SERVER_PORT"]!=443))?'':'s').'://'.$_SERVER["SERVER_NAME"].((empty($_SERVER["SERVER_PORT"])||$_SERVER["SERVER_PORT"]==80||$_SERVER["SERVER_PORT"]==443)?'':':'.$_SERVER["SERVER_PORT"]).($tmp3?(preg_match('/^\//',$tmp3)?'':'/').$tmp3:'');
|
||||
//print "tmp1=".$tmp1." tmp2=".$tmp2." tmp3=".$tmp3." tmp=".$tmp."\n";
|
||||
|
||||
@ -732,7 +732,8 @@ class CommandeFournisseur extends CommonOrder
|
||||
|
||||
// Do we have to change status now ? (If double approval is required and first approval, we keep status to 1 = validated)
|
||||
$movetoapprovestatus=true;
|
||||
|
||||
$comment='';
|
||||
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."commande_fournisseur";
|
||||
$sql.= " SET ref='".$this->db->escape($num)."',";
|
||||
if (empty($secondlevel)) // standard or first level approval
|
||||
@ -741,7 +742,11 @@ class CommandeFournisseur extends CommonOrder
|
||||
$sql.= " fk_user_approve = ".$user->id;
|
||||
if (! empty($conf->global->SUPPLIER_ORDER_DOUBLE_APPROVAL) && $conf->global->MAIN_FEATURES_LEVEL > 0 && $this->total_ht >= $conf->global->SUPPLIER_ORDER_DOUBLE_APPROVAL)
|
||||
{
|
||||
if (empty($this->user_approve_id2)) $movetoapprovestatus=false; // second level approval not done
|
||||
if (empty($this->user_approve_id2))
|
||||
{
|
||||
$movetoapprovestatus=false; // second level approval not done
|
||||
$comment=' (first level)';
|
||||
}
|
||||
}
|
||||
}
|
||||
else // request a second level approval
|
||||
@ -749,6 +754,7 @@ class CommandeFournisseur extends CommonOrder
|
||||
$sql.= " date_approve2='".$this->db->idate($now)."',";
|
||||
$sql.= " fk_user_approve2 = ".$user->id;
|
||||
if (empty($this->user_approve_id)) $movetoapprovestatus=false; // first level approval not done
|
||||
$comment=' (second level)';
|
||||
}
|
||||
// If double approval is required and first approval, we keep status to 1 = validated
|
||||
if ($movetoapprovestatus) $sql.= ", fk_statut = 2";
|
||||
@ -758,7 +764,7 @@ class CommandeFournisseur extends CommonOrder
|
||||
|
||||
if ($this->db->query($sql))
|
||||
{
|
||||
$this->log($user, 2, time()); // Statut 2
|
||||
$this->log($user, 2, time(), $comment); // Statut 2
|
||||
|
||||
if (! empty($conf->global->SUPPLIER_ORDER_AUTOADD_USER_CONTACT))
|
||||
{
|
||||
|
||||
@ -2733,10 +2733,24 @@ elseif (! empty($object->id))
|
||||
// Reopen
|
||||
if (in_array($object->statut, array(2)))
|
||||
{
|
||||
if ($user->rights->fournisseur->commande->commander)
|
||||
{
|
||||
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=reopen">'.$langs->trans("Disapprove").'</a>';
|
||||
}
|
||||
$buttonshown=0;
|
||||
if (! $buttonshown && $user->rights->fournisseur->commande->approuver)
|
||||
{
|
||||
if (empty($conf->global->SUPPLIER_ORDER_REOPEN_BY_APPROVER_ONLY)
|
||||
|| (! empty($conf->global->SUPPLIER_ORDER_REOPEN_BY_APPROVER_ONLY) && $user->id == $object->user_approve_id))
|
||||
{
|
||||
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=reopen">'.$langs->trans("Disapprove").'</a>';
|
||||
$buttonshown++;
|
||||
}
|
||||
}
|
||||
if (! $buttonshown && $user->rights->fournisseur->commande->approve2 && ! empty($conf->global->SUPPLIER_ORDER_DOUBLE_APPROVAL))
|
||||
{
|
||||
if (empty($conf->global->SUPPLIER_ORDER_REOPEN_BY_APPROVER2_ONLY)
|
||||
|| (! empty($conf->global->SUPPLIER_ORDER_REOPEN_BY_APPROVER2_ONLY) && $user->id == $object->user_approve_id2))
|
||||
{
|
||||
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=reopen">'.$langs->trans("Disapprove").'</a>';
|
||||
}
|
||||
}
|
||||
}
|
||||
if (in_array($object->statut, array(3, 5, 6, 7, 9)) || ($object->statut == 4 && $object->billed))
|
||||
{
|
||||
|
||||
@ -195,8 +195,8 @@ insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (18
|
||||
insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1812, 181, '0','0','VAT Rate 0',1);
|
||||
|
||||
-- POLAND (id country=184)
|
||||
insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1841, 184, '20','0','VAT standard rate',1);
|
||||
insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1842, 184, '7','0','VAT reduced rate',1);
|
||||
insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1841, 184, '23','0','VAT standard rate',1);
|
||||
insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1842, 184, '8','0','VAT reduced rate',1);
|
||||
insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1843, 184, '3','0','VAT reduced rate',1);
|
||||
insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1844, 184, '0','0','VAT Rate 0', 1);
|
||||
|
||||
|
||||
@ -340,6 +340,54 @@ create table llx_categorie_project
|
||||
import_key varchar(14)
|
||||
)ENGINE=innodb;
|
||||
|
||||
|
||||
|
||||
|
||||
-- Extrafields Expedition (shipment)
|
||||
create table llx_expedition_extrafields
|
||||
(
|
||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||
tms timestamp,
|
||||
fk_object integer NOT NULL,
|
||||
import_key varchar(14) -- import key
|
||||
) ENGINE=innodb;
|
||||
|
||||
ALTER TABLE llx_expedition_extrafields ADD INDEX idx_expedition_extrafields (fk_object);
|
||||
|
||||
create table llx_expeditiondet_extrafields
|
||||
(
|
||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||
tms timestamp,
|
||||
fk_object integer NOT NULL, -- object id
|
||||
import_key varchar(14) -- import key
|
||||
)ENGINE=innodb;
|
||||
|
||||
ALTER TABLE llx_expeditiondet_extrafields ADD INDEX idx_expeditiondet_extrafields (fk_object);
|
||||
|
||||
|
||||
|
||||
-- Extrafields Expedition (delivery receipts)
|
||||
create table llx_livraison_extrafields
|
||||
(
|
||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||
tms timestamp,
|
||||
fk_object integer NOT NULL,
|
||||
import_key varchar(14) -- import key
|
||||
) ENGINE=innodb;
|
||||
|
||||
ALTER TABLE llx_livraison_extrafields ADD INDEX idx_livraison_extrafields (fk_object);
|
||||
|
||||
create table llx_livraisondet_extrafields
|
||||
(
|
||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||
tms timestamp,
|
||||
fk_object integer NOT NULL, -- object id
|
||||
import_key varchar(14) -- import key
|
||||
)ENGINE=innodb;
|
||||
|
||||
ALTER TABLE llx_livraisondet_extrafields ADD INDEX idx_livraisondet_extrafields (fk_object);
|
||||
|
||||
|
||||
ALTER TABLE llx_categorie_project ADD PRIMARY KEY pk_categorie_project (fk_categorie, fk_project);
|
||||
ALTER TABLE llx_categorie_project ADD INDEX idx_categorie_project_fk_categorie (fk_categorie);
|
||||
ALTER TABLE llx_categorie_project ADD INDEX idx_categorie_project_fk_project (fk_project);
|
||||
|
||||
23
htdocs/install/mysql/tables/llx_cronjob.key.sql
Normal file
23
htdocs/install/mysql/tables/llx_cronjob.key.sql
Normal file
@ -0,0 +1,23 @@
|
||||
-- ===================================================================
|
||||
-- Copyright (C) 2015 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_cronjob ADD INDEX idx_cronjob_status (status);
|
||||
ALTER TABLE llx_cronjob ADD INDEX idx_cronjob_datelastrun (datelastrun);
|
||||
ALTER TABLE llx_cronjob ADD INDEX idx_cronjob_datenextrun (datenextrun);
|
||||
ALTER TABLE llx_cronjob ADD INDEX idx_cronjob_datestart (datestart);
|
||||
ALTER TABLE llx_cronjob ADD INDEX idx_cronjob_dateend (dateend);
|
||||
@ -33,19 +33,19 @@ CREATE TABLE llx_cronjob
|
||||
md5params varchar(32),
|
||||
module_name varchar(255),
|
||||
priority integer DEFAULT 0,
|
||||
datelastrun datetime, -- date last run and when should be next
|
||||
datelastrun datetime, -- date last run start (see datelastresult for end with a result)
|
||||
datenextrun datetime, -- job will be run if current date higher that this date
|
||||
datestart datetime, -- before this date no jobs will be run
|
||||
dateend datetime, -- after this date, no more jobs will be run
|
||||
datelastresult datetime,
|
||||
datelastresult datetime, -- date last run end
|
||||
lastresult text,
|
||||
lastoutput text,
|
||||
unitfrequency integer NOT NULL DEFAULT 0,
|
||||
frequency integer NOT NULL DEFAULT 0,
|
||||
maxrun integer NOT NULL DEFAULT 0, -- set this to 1 for a job queued for on run only
|
||||
nbrun integer, -- nb of run complete (failed or not)
|
||||
autodelete integer DEFAULT 0, -- Job can be delete once finished
|
||||
status integer NOT NULL DEFAULT 1,
|
||||
autodelete integer DEFAULT 0, -- 0=Job is kept unchanged once nbrun > maxrun or date > dateend, 2=Job must be archived (archive = status 2) once nbrun > maxrun or date > dateend
|
||||
status integer NOT NULL DEFAULT 1, -- 0=disabled, 1=enabled, 2=archived
|
||||
fk_user_author integer DEFAULT NULL,
|
||||
fk_user_mod integer DEFAULT NULL,
|
||||
fk_mailing integer DEFAULT NULL, -- id of emailing if job was queued to send mass emailing
|
||||
|
||||
@ -0,0 +1,20 @@
|
||||
-- ===================================================================
|
||||
-- Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
|
||||
--
|
||||
-- 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_expedition_extrafields ADD INDEX idx_expedition_extrafields (fk_object);
|
||||
26
htdocs/install/mysql/tables/llx_expedition_extrafields.sql
Normal file
26
htdocs/install/mysql/tables/llx_expedition_extrafields.sql
Normal file
@ -0,0 +1,26 @@
|
||||
-- ========================================================================
|
||||
-- Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
|
||||
--
|
||||
-- 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/>.
|
||||
--
|
||||
-- ========================================================================
|
||||
|
||||
create table llx_expedition_extrafields
|
||||
(
|
||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||
tms timestamp,
|
||||
fk_object integer NOT NULL,
|
||||
import_key varchar(14) -- import key
|
||||
) ENGINE=innodb;
|
||||
|
||||
@ -0,0 +1,20 @@
|
||||
-- ===================================================================
|
||||
-- Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
|
||||
--
|
||||
-- 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_expeditiondet_extrafields ADD INDEX idx_expeditiondet_extrafields (fk_object);
|
||||
@ -0,0 +1,25 @@
|
||||
-- ===================================================================
|
||||
-- Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
|
||||
--
|
||||
-- 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/>.
|
||||
--
|
||||
-- ===================================================================
|
||||
|
||||
create table llx_expeditiondet_extrafields
|
||||
(
|
||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||
tms timestamp,
|
||||
fk_object integer NOT NULL, -- object id
|
||||
import_key varchar(14) -- import key
|
||||
)ENGINE=innodb;
|
||||
@ -0,0 +1,20 @@
|
||||
-- ===================================================================
|
||||
-- Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
|
||||
--
|
||||
-- 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_livraison_extrafields ADD INDEX idx_livraison_extrafields (fk_object);
|
||||
26
htdocs/install/mysql/tables/llx_livraison_extrafields.sql
Normal file
26
htdocs/install/mysql/tables/llx_livraison_extrafields.sql
Normal file
@ -0,0 +1,26 @@
|
||||
-- ========================================================================
|
||||
-- Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
|
||||
--
|
||||
-- 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/>.
|
||||
--
|
||||
-- ========================================================================
|
||||
|
||||
create table llx_livraison_extrafields
|
||||
(
|
||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||
tms timestamp,
|
||||
fk_object integer NOT NULL,
|
||||
import_key varchar(14) -- import key
|
||||
) ENGINE=innodb;
|
||||
|
||||
@ -0,0 +1,20 @@
|
||||
-- ===================================================================
|
||||
-- Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
|
||||
--
|
||||
-- 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_livraisondet_extrafields ADD INDEX idx_livraisondet_extrafields (fk_object);
|
||||
25
htdocs/install/mysql/tables/llx_livraisondet_extrafields.sql
Normal file
25
htdocs/install/mysql/tables/llx_livraisondet_extrafields.sql
Normal file
@ -0,0 +1,25 @@
|
||||
-- ===================================================================
|
||||
-- Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
|
||||
--
|
||||
-- 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/>.
|
||||
--
|
||||
-- ===================================================================
|
||||
|
||||
create table llx_livraisondet_extrafields
|
||||
(
|
||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||
tms timestamp,
|
||||
fk_object integer NOT NULL, -- object id
|
||||
import_key varchar(14) -- import key
|
||||
)ENGINE=innodb;
|
||||
@ -1292,7 +1292,10 @@ function migrate_paiementfourn_facturefourn($db,$langs,$conf)
|
||||
function migrate_price_facture($db,$langs,$conf)
|
||||
{
|
||||
$err=0;
|
||||
|
||||
|
||||
$tmpmysoc=new Societe($db);
|
||||
$tmpmysoc->setMysoc($conf);
|
||||
|
||||
$db->begin();
|
||||
|
||||
print '<tr><td colspan="4">';
|
||||
@ -1333,7 +1336,7 @@ function migrate_price_facture($db,$langs,$conf)
|
||||
$facligne= new FactureLigne($db);
|
||||
$facligne->fetch($rowid);
|
||||
|
||||
$result=calcul_price_total($qty,$pu,$remise_percent,$vatrate, 0, 0,$remise_percent_global,'HT',$info_bits,0);
|
||||
$result=calcul_price_total($qty,$pu,$remise_percent,$vatrate, 0, 0,$remise_percent_global,'HT',$info_bits,$facligne->product_type,$tmpmysoc);
|
||||
$total_ht = $result[0];
|
||||
$total_tva = $result[1];
|
||||
$total_ttc = $result[2];
|
||||
@ -1407,6 +1410,9 @@ function migrate_price_facture($db,$langs,$conf)
|
||||
*/
|
||||
function migrate_price_propal($db,$langs,$conf)
|
||||
{
|
||||
$tmpmysoc=new Societe($db);
|
||||
$tmpmysoc->setMysoc($conf);
|
||||
|
||||
$db->begin();
|
||||
|
||||
print '<tr><td colspan="4">';
|
||||
@ -1445,7 +1451,7 @@ function migrate_price_propal($db,$langs,$conf)
|
||||
$propalligne= new PropaleLigne($db);
|
||||
$propalligne->fetch($rowid);
|
||||
|
||||
$result=calcul_price_total($qty,$pu,$remise_percent,$vatrate,0,0,$remise_percent_global,'HT',$info_bits,0);
|
||||
$result=calcul_price_total($qty,$pu,$remise_percent,$vatrate,0,0,$remise_percent_global,'HT',$info_bits,$propalligne->product_type,$tmpmysoc);
|
||||
$total_ht = $result[0];
|
||||
$total_tva = $result[1];
|
||||
$total_ttc = $result[2];
|
||||
@ -1552,9 +1558,9 @@ function migrate_price_contrat($db,$langs,$conf)
|
||||
// On met a jour les 3 nouveaux champs
|
||||
$contratligne= new ContratLigne($db);
|
||||
//$contratligne->fetch($rowid); Non requis car le update_total ne met a jour que chp redefinis
|
||||
$contratligne->id=$rowid;
|
||||
$contratligne->fetch($rowid);
|
||||
|
||||
$result=calcul_price_total($qty,$pu,$remise_percent,$vatrate,0,0,0,'HT',$info_bits,0,$tmpmysoc);
|
||||
$result=calcul_price_total($qty,$pu,$remise_percent,$vatrate,0,0,0,'HT',$info_bits,$contratligne->product_type,$tmpmysoc);
|
||||
$total_ht = $result[0];
|
||||
$total_tva = $result[1];
|
||||
$total_ttc = $result[2];
|
||||
@ -1603,6 +1609,9 @@ function migrate_price_commande($db,$langs,$conf)
|
||||
{
|
||||
$db->begin();
|
||||
|
||||
$tmpmysoc=new Societe($db);
|
||||
$tmpmysoc->setMysoc($conf);
|
||||
|
||||
print '<tr><td colspan="4">';
|
||||
|
||||
print '<br>';
|
||||
@ -1639,7 +1648,7 @@ function migrate_price_commande($db,$langs,$conf)
|
||||
$commandeligne= new OrderLine($db);
|
||||
$commandeligne->fetch($rowid);
|
||||
|
||||
$result=calcul_price_total($qty,$pu,$remise_percent,$vatrate,0,0,$remise_percent_global,'HT',$info_bits,0);
|
||||
$result=calcul_price_total($qty,$pu,$remise_percent,$vatrate,0,0,$remise_percent_global,'HT',$info_bits,$commandeligne->product_type,$tmpmysoc);
|
||||
$total_ht = $result[0];
|
||||
$total_tva = $result[1];
|
||||
$total_ttc = $result[2];
|
||||
@ -1716,7 +1725,10 @@ function migrate_price_commande($db,$langs,$conf)
|
||||
function migrate_price_commande_fournisseur($db,$langs,$conf)
|
||||
{
|
||||
$db->begin();
|
||||
|
||||
|
||||
$tmpmysoc=new Societe($db);
|
||||
$tmpmysoc->setMysoc($conf);
|
||||
|
||||
print '<tr><td colspan="4">';
|
||||
|
||||
print '<br>';
|
||||
@ -1753,7 +1765,7 @@ function migrate_price_commande_fournisseur($db,$langs,$conf)
|
||||
$commandeligne= new CommandeFournisseurLigne($db);
|
||||
$commandeligne->fetch($rowid);
|
||||
|
||||
$result=calcul_price_total($qty,$pu,$remise_percent,$vatrate,0,0,$remise_percent_global,'HT',$info_bits,0);
|
||||
$result=calcul_price_total($qty,$pu,$remise_percent,$vatrate,0,0,$remise_percent_global,'HT',$info_bits,$commandeligne->product_type,$tmpsoc);
|
||||
$total_ht = $result[0];
|
||||
$total_tva = $result[1];
|
||||
$total_ttc = $result[2];
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
# Dolibarr language file - en_US - Accounting Expert
|
||||
CHARSET=UTF-8
|
||||
ACCOUNTING_EXPORT_SEPARATORCSV=Column separator for export file
|
||||
ACCOUNTING_EXPORT_DATE=Date format for export file
|
||||
ACCOUNTING_EXPORT_PIECE=Export the number of piece
|
||||
@ -12,8 +11,6 @@ ACCOUNTING_EXPORT_PREFIX_SPEC=Specify the prefix for the file name
|
||||
|
||||
Accounting=Accounting
|
||||
Globalparameters=Global parameters
|
||||
Chartofaccounts=Chart of accounts
|
||||
Fiscalyear=Fiscal years
|
||||
Menuaccount=Accounting accounts
|
||||
Menuthirdpartyaccount=Thirdparty accounts
|
||||
MenuTools=Tools
|
||||
@ -33,23 +30,17 @@ Back=Return
|
||||
|
||||
Definechartofaccounts=Define a chart of accounts
|
||||
Selectchartofaccounts=Select a chart of accounts
|
||||
Validate=Validate
|
||||
Addanaccount=Add an accounting account
|
||||
AccountAccounting=Accounting account
|
||||
AccountAccountingSuggest=Accounting account suggest
|
||||
Ventilation=Breakdown
|
||||
ToDispatch=To dispatch
|
||||
Dispatched=Dispatched
|
||||
|
||||
CustomersVentilation=Breakdown customers
|
||||
SuppliersVentilation=Breakdown suppliers
|
||||
TradeMargin=Trade margin
|
||||
Reports=Reports
|
||||
ByCustomerInvoice=By invoices customers
|
||||
ByMonth=By Month
|
||||
NewAccount=New accounting account
|
||||
Update=Update
|
||||
List=List
|
||||
Create=Create
|
||||
CreateMvts=Create movement
|
||||
UpdateAccount=Modification of an accounting account
|
||||
@ -61,7 +52,6 @@ AccountBalanceByMonth=Account balance by month
|
||||
AccountingVentilation=Breakdown accounting
|
||||
AccountingVentilationSupplier=Breakdown accounting supplier
|
||||
AccountingVentilationCustomer=Breakdown accounting customer
|
||||
Line=Line
|
||||
|
||||
CAHTF=Total purchase supplier before tax
|
||||
InvoiceLines=Lines of invoice to be ventilated
|
||||
@ -112,22 +102,19 @@ Docref=Reference
|
||||
Numerocompte=Account
|
||||
Code_tiers=Thirdparty
|
||||
Labelcompte=Label account
|
||||
Debit=Debit
|
||||
Credit=Credit
|
||||
Amount=Amount
|
||||
Sens=Sens
|
||||
Codejournal=Journal
|
||||
|
||||
DelBookKeeping=Delete the records of the general ledger
|
||||
|
||||
SellsJournal=Sells journal
|
||||
PurchasesJournal=Purchases journal
|
||||
DescSellsJournal=Sells journal
|
||||
DescPurchasesJournal=Purchases journal
|
||||
BankJournal=Bank journal
|
||||
DescBankJournal=Bank journal including all the types of payments other than cash
|
||||
CashJournal=Cash journal
|
||||
DescCashJournal=Cash journal including the type of payment cash
|
||||
FinanceJournal=Finance journal
|
||||
DescFinanceJournal=Finance journal including all the types of payments by bank account
|
||||
|
||||
CashPayment=Cash Payment
|
||||
|
||||
@ -150,9 +137,6 @@ Pcgversion=Version of the plan
|
||||
Pcgtype=Class of account
|
||||
Pcgsubtype=Under class of account
|
||||
Accountparent=Root of the account
|
||||
Active=Statement
|
||||
|
||||
NewFiscalYear=New fiscal year
|
||||
|
||||
DescVentilCustomer=Consult here the annual breakdown accounting of your invoices customers
|
||||
TotalVente=Total turnover before tax
|
||||
|
||||
@ -105,7 +105,6 @@ DetailPosition=رتب الرقم لتعريف موقع القائمة
|
||||
PersonalizedMenusNotSupported=القوائم الشخصية غير مدعومة
|
||||
AllMenus=الكل
|
||||
NotConfigured=النموذج غير مهيء
|
||||
Setup=الإعداد
|
||||
Activation=التفعيل
|
||||
Active=نشطة
|
||||
SetupShort=الإعداد
|
||||
@ -193,15 +192,12 @@ ExportOptions=خيارات التصدير
|
||||
AddDropDatabase=أمر إضافة, حذف قاعدة بيانات
|
||||
AddDropTable=أمر إضافة حذف الجدول
|
||||
ExportStructure=البنية
|
||||
Datas=البيانات
|
||||
NameColumn=اسم الأعمدة
|
||||
ExtendedInsert=الإضافة الممددة
|
||||
NoLockBeforeInsert=لا يوجد أوامر قفل حول الإضافة
|
||||
DelayedInsert=إضافة متأخرة
|
||||
EncodeBinariesInHexa=ترميز البيانات الأحادية لستة عشرية
|
||||
IgnoreDuplicateRecords=تجاهل الأخطاء في السجلات المكررة (تجاهل الإدراج)
|
||||
Yes=نعم
|
||||
No=لا
|
||||
AutoDetectLang=اكتشاف تلقائي (لغة المتصفح)
|
||||
FeatureDisabledInDemo=الميزة معلطة في العرض التجريبي
|
||||
Rights=الصلاحيات
|
||||
@ -285,14 +281,16 @@ ModuleSetup=إعداد وحدة
|
||||
ModulesSetup=نمائط الإعداد
|
||||
ModuleFamilyBase=نظام
|
||||
ModuleFamilyCrm=Ressource العملاء إدارة (إدارة علاقات العملاء)
|
||||
ModuleFamilyProducts=إدارة المنتجات
|
||||
ModuleFamilyHr=إدارة الموارد البشرية
|
||||
ModuleFamilyProducts=Products Management (PM)
|
||||
ModuleFamilyHr=Human Resource Management (HR)
|
||||
ModuleFamilyProjects=مشاريع / العمل التعاوني
|
||||
ModuleFamilyOther=أخرى
|
||||
ModuleFamilyTechnic=Multi بين وحدات وأدوات
|
||||
ModuleFamilyExperimental=نماذج تجريبية
|
||||
ModuleFamilyFinancial=الوحدات المالية (المحاسبة / الخزانة)
|
||||
ModuleFamilyECM=إدارة المحتوى في المؤسسة
|
||||
ModuleFamilyPortal=Web sites and other frontal application
|
||||
ModuleFamilyInterface=Interfaces with external systems
|
||||
MenuHandlers=قائمة مناولي
|
||||
MenuAdmin=قائمة تحرير
|
||||
DoNotUseInProduction=Do not use in production
|
||||
@ -331,7 +329,7 @@ UMaskExplanation=تسمح لك هذه المعلمة لتحديد الاذونا
|
||||
SeeWikiForAllTeam=إلقاء نظرة على صفحة ويكي قائمة كاملة لجميع الجهات الفاعلة والمنظمة
|
||||
UseACacheDelay= التخزين المؤقت للتأخير في الرد على الصادرات ثانية (0 فارغة أو لا مخبأ)
|
||||
DisableLinkToHelpCenter=الاختباء وصلة <b>"هل تحتاج إلى مساعدة أو دعم"</b> على صفحة تسجيل الدخول
|
||||
DisableLinkToHelp=إخفاء ارتباط <b>"ق ٪ أخبار يساعد"</b> على القائمة اليمنى
|
||||
DisableLinkToHelp=Hide link to online help "<b>%s</b>"
|
||||
AddCRIfTooLong=ليس هناك التفاف تلقائي ، حتى إذا خرج من خط صفحة على وثائق لفترة طويلة جدا ، يجب إضافة حرف إرجاع نفسك في ناحية النص.
|
||||
ModuleDisabled=نميطة المعوقين
|
||||
ModuleDisabledSoNoEvent=نميطة المعوقين بغية خلق حالة أبدا
|
||||
@ -354,7 +352,7 @@ ThemeDir=جلود دليل
|
||||
ConnectionTimeout=بمناسبه المهلة
|
||||
ResponseTimeout=استجابة مهلة
|
||||
SmsTestMessage=رسالة اختبار من __PHONEFROM__ إلى __PHONETO__
|
||||
ModuleMustBeEnabledFirst=يجب تمكين <b>%s</b> الوحدة الأولى قبل استخدام هذه الميزة.
|
||||
ModuleMustBeEnabledFirst=Module <b>%s</b> must be enabled first if you need this feature.
|
||||
SecurityToken=المفتاح لعناوين المواقع الآمنة
|
||||
NoSmsEngine=لا مدير مرسل الرسائل القصيرة المتاحة. لم يتم تثبيت SMS المرسل مع مدير التوزيع الافتراضي (لأنها تعتمد على مورد خارجي)، ولكن يمكنك أن تجد بعض على http://www.dolistore.com
|
||||
PDF=PDF
|
||||
@ -364,6 +362,7 @@ HideAnyVATInformationOnPDF=إخفاء كل المعلومات المتعلقة
|
||||
HideDescOnPDF=Hide products description on generated PDF
|
||||
HideRefOnPDF=Hide products ref. on generated PDF
|
||||
HideDetailsOnPDF=Hide products lines details on generated PDF
|
||||
PlaceCustomerAddressToIsoLocation=Use french standard position (La Posteà for customer address position
|
||||
Library=المكتبة
|
||||
UrlGenerationParameters=المعلمات لتأمين عناوين المواقع
|
||||
SecurityTokenIsUnique=استخدام معلمة securekey فريدة لكل URL
|
||||
@ -394,8 +393,9 @@ ExtrafieldLink=Link to an object
|
||||
ExtrafieldParamHelpselect=Parameters list have to be like key,value<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...<br><br>In order to have the list depending on another :<br>1,value1|parent_list_code:parent_key<br>2,value2|parent_list_code:parent_key
|
||||
ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
|
||||
ExtrafieldParamHelpradio=Parameters list have to be like key,value<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
|
||||
ExtrafieldParamHelpsellist=Parameters list comes from a table<br>Syntax : table_name:label_field:id_field::filter<br>Example : c_typent:libelle:id::filter<br><br>filter can be a simple test (eg active=1) to display only active value <br> if you want to filter on extrafields use syntaxt extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another :<br>c_typent:libelle:id:parent_list_code|parent_column:filter
|
||||
ExtrafieldParamHelpchkbxlst=Parameters list comes from a table<br>Syntax : table_name:label_field:id_field::filter<br>Example : c_typent:libelle:id::filter<br><br>filter can be a simple test (eg active=1) to display only active value <br> if you want to filter on extrafields use syntaxt extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another :<br>c_typent:libelle:id:parent_list_code|parent_column:filter
|
||||
ExtrafieldParamHelpsellist=Parameters list comes from a table<br>Syntax : table_name:label_field:id_field::filter<br>Example : c_typent:libelle:id::filter<br><br>filter can be a simple test (eg active=1) to display only active value<br>You can also use $ID$ in filter witch is the current id of current object<br>To do a SELECT in filter use $SEL$<br>if you want to filter on extrafields use syntaxt extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another :<br>c_typent:libelle:id:parent_list_code|parent_column:filter
|
||||
ExtrafieldParamHelpchkbxlst=Parameters list comes from a table<br>Syntax : table_name:label_field:id_field::filter<br>Example : c_typent:libelle:id::filter<br><br>filter can be a simple test (eg active=1) to display only active value<br>You can also use $ID$ in filter witch is the current id of current object<br>To do a SELECT in filter use $SEL$<br>if you want to filter on extrafields use syntaxt extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another :<br>c_typent:libelle:id:parent_list_code|parent_column:filter
|
||||
ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath<br>Syntax : ObjectName:Classpath<br>Example : Societe:societe/class/societe.class.php
|
||||
LibraryToBuildPDF=Library used to build PDF
|
||||
WarningUsingFPDF=Warning: Your <b>conf.php</b> contains directive <b>dolibarr_pdf_force_fpdf=1</b>. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.<br>To solve this and have a full support of PDF generation, please download <a href="http://www.tcpdf.org/" target="_blank">TCPDF library</a>, then comment or remove the line <b>$dolibarr_pdf_force_fpdf=1</b>, and add instead <b>$dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir'</b>
|
||||
LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:<br>1 : local tax apply on products and services without vat (localtax is calculated on amount without tax)<br>2 : local tax apply on products and services including vat (localtax is calculated on amount + main tax)<br>3 : local tax apply on products without vat (localtax is calculated on amount without tax)<br>4 : local tax apply on products including vat (localtax is calculated on amount + main vat)<br>5 : local tax apply on services without vat (localtax is calculated on amount without tax)<br>6 : local tax apply on services including vat (localtax is calculated on amount + tax)
|
||||
@ -524,19 +524,21 @@ Module2400Name=جدول الأعمال
|
||||
Module2400Desc=الأعمال / الإدارة المهام وجدول الأعمال
|
||||
Module2500Name=إدارة المحتوى الإلكتروني
|
||||
Module2500Desc=حفظ وتبادل الوثائق
|
||||
Module2600Name=API services (Web services SOAP)
|
||||
Module2600Name=API/Web services (SOAP server)
|
||||
Module2600Desc=Enable the Dolibarr SOAP server providing API services
|
||||
Module2610Name=API services (Web services REST)
|
||||
Module2610Name=API/Web services (REST server)
|
||||
Module2610Desc=Enable the Dolibarr REST server providing API services
|
||||
Module2650Name=WebServices (client)
|
||||
Module2650Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment)
|
||||
Module2660Name=Call WebServices (SOAP client)
|
||||
Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment)
|
||||
Module2700Name=غرفتر
|
||||
Module2700Desc=استخدام خدمة غرفتر على الانترنت (www.gravatar.com) لإظهار الصورة من المستخدمين / أعضاء (وجدت مع رسائل البريد الإلكتروني الخاصة بهم). في حاجة الى الوصول الى شبكة الانترنت
|
||||
Module2800Desc=FTP Client
|
||||
Module2900Name=GeoIPMaxmind
|
||||
Module2900Desc=GeoIP التحويلات Maxmind القدرات
|
||||
Module3100Name=Skype
|
||||
Module3100Desc=Add a Skype button into card of adherents / third parties / contacts
|
||||
Module3100Desc=Add a Skype button into card of users / third parties / contacts / members
|
||||
Module4000Name=HRM
|
||||
Module4000Desc=Human resources management
|
||||
Module5000Name=شركة متعددة
|
||||
Module5000Desc=يسمح لك لإدارة الشركات المتعددة
|
||||
Module6000Name=Workflow
|
||||
@ -802,7 +804,7 @@ Permission59003=Read every user margin
|
||||
DictionaryCompanyType=Thirdparties type
|
||||
DictionaryCompanyJuridicalType=Juridical kinds of thirdparties
|
||||
DictionaryProspectLevel=Prospect potential level
|
||||
DictionaryCanton=State/Cantons
|
||||
DictionaryCanton=State/Province
|
||||
DictionaryRegion=Regions
|
||||
DictionaryCountry=Countries
|
||||
DictionaryCurrency=Currencies
|
||||
@ -840,14 +842,12 @@ VATIsUsedExampleFR=في فرنسا ، فإن ذلك يعني وجود منظما
|
||||
VATIsNotUsedExampleFR=في فرنسا ، فإن ذلك يعني أن الجمعيات غير المعلنة ضريبة القيمة المضافة أو شركات أو مؤسسات المهن الحرة التي اختارت المشاريع الصغيرة النظام الضريبي (ضريبة القيمة المضافة في الانتخاب) ، ودفع ضريبة القيمة المضافة في الانتخاب دون أي إعلان من ضريبة القيمة المضافة. هذا الخيار سيتم عرض المرجعي "غير الضريبة على القيمة المضافة المطبقة -- الفن - 293B من المجموعة الاستشارية لاندونيسيا" على الفواتير.
|
||||
##### Local Taxes #####
|
||||
LTRate=Rate
|
||||
LocalTax1IsUsed=Use second tax
|
||||
LocalTax1IsNotUsed=Do not use second tax
|
||||
LocalTax1IsUsedDesc=Use a second type of tax (other than VAT)
|
||||
LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT)
|
||||
LocalTax1Management=Second type of tax
|
||||
LocalTax1IsUsedExample=
|
||||
LocalTax1IsNotUsedExample=
|
||||
LocalTax2IsUsed=Use third tax
|
||||
LocalTax2IsNotUsed=Do not use third tax
|
||||
LocalTax2IsUsedDesc=Use a third type of tax (other than VAT)
|
||||
LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT)
|
||||
@ -922,7 +922,6 @@ MenuCompanySetup=الشركة / المؤسسة
|
||||
MenuNewUser=مستخدم جديد
|
||||
MenuTopManager=المدير الأعلى
|
||||
MenuLeftManager=مدير القائمة اليمنى
|
||||
MenuManager=Menu manager
|
||||
MenuSmartphoneManager=الهاتف الذكي القائمة مدير
|
||||
DefaultMenuTopManager=المدير الأعلى
|
||||
DefaultMenuLeftManager=مدير القائمة اليمنى
|
||||
@ -931,14 +930,14 @@ DefaultMenuSmartphoneManager=الهاتف الذكي القائمة مدير
|
||||
Skin=موضوع الجلد
|
||||
DefaultSkin=موضوع التقصير الجلد
|
||||
MaxSizeList=الحد الأقصى لطول قائمة
|
||||
DefaultMaxSizeList=تقصير المدة القصوى للقائمة
|
||||
DefaultMaxSizeList=Default max length for lists
|
||||
DefaultMaxSizeShortList=Default max length for short lists (ie in customer card)
|
||||
MessageOfDay=رسالة اليوم
|
||||
MessageLogin=ادخل صفحة الرسالة
|
||||
PermanentLeftSearchForm=دائم البحث عن شكل القائمة اليمنى
|
||||
DefaultLanguage=اللغة الافتراضية لاستخدام (شفرة اللغة)
|
||||
EnableMultilangInterface=تتيح واجهة متعددة اللغات
|
||||
EnableShowLogo=عرض الشعار على اليسار القائمة
|
||||
EnableHtml5=Enable Html5 (Developement - Only available on Eldy template)
|
||||
SystemSuccessfulyUpdated=النظام الخاص بك تم تحديث بنجاح
|
||||
CompanyInfo=الشركة / المؤسسة المعلومات
|
||||
CompanyIds=الشركة / المؤسسة الهويات
|
||||
@ -975,6 +974,7 @@ Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=تأخير التسامح (في يوم)
|
||||
Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=تأخير التسامح (في يوم) في حالة تأهب قبل يوم في انتظار التسوية المصرفية
|
||||
Delays_MAIN_DELAY_MEMBERS=تأخير التسامح (في يوم) في حالة تأهب قبل يوم تأخير رسوم العضوية
|
||||
Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=تأخير التسامح (في يوم) في حالة تأهب قبل لإيداع الشيكات للقيام
|
||||
Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve
|
||||
SetupDescription1=جميع البارامترات المتاحة في مجال الإعداد تسمح لك قبل البدء في الإعداد Dolibarr استخدامه.
|
||||
SetupDescription2=2 إن أهم الخطوات هي الإعداد 2 أول من غادر في إعداد القائمة ، وهذا يعني الشركة / المؤسسة صفحة إعداد صفحة إعداد وحدات :
|
||||
SetupDescription3=البارامترات في <b>إعداد</b> القائمة <b>--> الشركة / المؤسسة</b> المطلوب لأن مدخلات تستخدم المعلومات عن Dolibarr عرض وتعديل السلوك Dolibarr (على سبيل المثال لخصائص تتعلق بلدكم).
|
||||
@ -1002,6 +1002,7 @@ SystemAreaForAdminOnly=هذا المجال المتاح لمدير المستخ
|
||||
CompanyFundationDesc=تعديل على هذه الصفحة كل المعلومات المعروفة للشركة أو مؤسسة تحتاج لإدارة
|
||||
DisplayDesc=يمكنك ان تختار كل معلمة إلى Dolibarr هنا الشكل والمظهر
|
||||
AvailableModules=تتوفر وحدات
|
||||
DeprecatedModules=Deprecated modules
|
||||
ToActivateModule=لتفعيل وحدات ، على الإعداد منطقة الصفحة الرئيسية> الإعداد -> الوحدات).
|
||||
SessionTimeOut=للمرة الخمسين
|
||||
SessionExplanation=تضمن هذا العدد أن الدورة لن ينتهي قبل هذا التأخير. PHP sessoin ولكن الإدارة لا الكفالة التي دائما تنتهي الدورة بعد هذا التأخير : ويحدث هذا إذا كان نظام لتنظيف مخبأ الدورة الجارية. <br> ملاحظة : مع أي نظام الداخلي PHP عملية تنظيف كل دورة حوالي <b>٪ ق / ق ٪</b> فقط ولكن وصول وصول أدلى به خلال دورات أخرى.
|
||||
@ -1104,13 +1105,15 @@ XDebugInstalled=XDebug is loaded.
|
||||
XCacheInstalled=XCache is loaded.
|
||||
AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp".
|
||||
FieldEdition=Edition of field %s
|
||||
FixTZ=TimeZone fix
|
||||
FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced)
|
||||
GetBarCode=Get barcode
|
||||
EmptyNumRefModelDesc=The code is free. This code can be modified at any time.
|
||||
##### Module password generation
|
||||
PasswordGenerationStandard=عودة كلمة سر ولدت الداخلية وفقا لخوارزمية Dolibarr : 8 أحرف مشتركة تتضمن الأرقام والحروف في حرف صغير.
|
||||
PasswordGenerationNone=لا توحي بأي كلمة المرور المتولدة. يجب أن تكون كلمة السر في نوع يدويا.
|
||||
PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually.
|
||||
PasswordGenerationPerso=Return a password according to your personally defined configuration.
|
||||
SetupPerso=According to your configuration
|
||||
PasswordPatternDesc=Password pattern description
|
||||
##### Users setup #####
|
||||
UserGroupSetup=مستخدمين والمجموعات وحدة الإعداد
|
||||
GeneratePassword=وتشير ولدت كلمة السر
|
||||
@ -1120,6 +1123,8 @@ EncryptedPasswordInDatabase=السماح للتشفير كلمات السر في
|
||||
DisableForgetPasswordLinkOnLogonPage=لا تظهر وصلة "نسيت كلمة المرور" على صفحة تسجيل الدخول
|
||||
UsersSetup=شاهد الإعداد وحدة
|
||||
UserMailRequired=مطلوب بريد إلكتروني لإنشاء مستخدم جديد
|
||||
##### HRM setup #####
|
||||
HRMSetup=HRM module setup
|
||||
##### Company setup #####
|
||||
CompanySetup=وحدة الإعداد للشركات
|
||||
CompanyCodeChecker=نموذج للجيل الثالث لقانون الأحزاب ومراجعة (عميل أو مورد)
|
||||
@ -1172,6 +1177,7 @@ CreditNotePDFModules=المذكرة وثيقة من وثائق الائتمان
|
||||
CreditNote=علما الائتمان
|
||||
CreditNotes=ويلاحظ الائتمان
|
||||
ForceInvoiceDate=قوة تاريخ الفاتورة تاريخ المصادقة على
|
||||
AllowCreditNoteWithoutRelatedInvoice=Allow to create credit note without a related invoice
|
||||
DisableRepeatable=تعطيل تكرار الفواتير
|
||||
SuggestedPaymentModesIfNotDefinedInInvoice=واقترح على طريقة دفع الفواتير تلقائيا اذا لم تعرف للفاتورة
|
||||
EnableEditDeleteValidInvoice=تتيح إمكانية تعديل أو حذف صحيحة دون دفع الفاتورة
|
||||
@ -1179,6 +1185,7 @@ SuggestPaymentByRIBOnAccount=وتشير دفع سحب على حساب
|
||||
SuggestPaymentByChequeToAddress=وتشير إلى دفع الشيكات
|
||||
FreeLegalTextOnInvoices=نص حر على الفواتير
|
||||
WatermarkOnDraftInvoices=Watermark on draft invoices (none if empty)
|
||||
PaymentsNumberingModule=Payments numbering model
|
||||
##### Proposals #####
|
||||
PropalSetup=وحدة إعداد مقترحات تجارية
|
||||
CreateForm=خلق أشكال
|
||||
@ -1200,6 +1207,7 @@ SupplierProposalPDFModules=Price requests suppliers documents models
|
||||
FreeLegalTextOnSupplierProposal=Free text on price requests suppliers
|
||||
WatermarkOnDraftSupplierProposal=Watermark on draft price requests suppliers (none if empty)
|
||||
BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Ask for bank account destination of price request
|
||||
WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Ask for Warehouse Source for order
|
||||
##### Orders #####
|
||||
OrdersSetup=أوامر إدارة الإعداد
|
||||
OrdersNumberingModules=أوامر الترقيم نمائط
|
||||
@ -1227,6 +1235,7 @@ ContractsNumberingModules=عقود ترقيم الوحدات
|
||||
TemplatePDFContracts=Contracts documents models
|
||||
FreeLegalTextOnContracts=Free text on contracts
|
||||
WatermarkOnDraftContractCards=Watermark on draft contracts (none if empty)
|
||||
ContractsAndServices=List of contracts and services
|
||||
##### Members #####
|
||||
MembersSetup=أعضاء وحدة الإعداد
|
||||
MemberMainOptions=الخيارات الرئيسية
|
||||
@ -1408,6 +1417,7 @@ SetDefaultBarcodeTypeThirdParties=النوع الافتراضي لاستخدام
|
||||
UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
|
||||
ProductCodeChecker= Module for product code generation and checking (product or service)
|
||||
ProductOtherConf= Product / Service configuration
|
||||
IsNotADir=is not a directory!
|
||||
##### Syslog #####
|
||||
SyslogSetup=Syslog حدة الإعداد
|
||||
SyslogOutput=سجل الناتج
|
||||
@ -1519,8 +1529,7 @@ DetailLevel=المستوى (-1 : الأعلى ، 0 : رأس القائمة ،>
|
||||
ModifMenu=قائمة التغيير
|
||||
DeleteMenu=حذف من القائمة الدخول
|
||||
ConfirmDeleteMenu=هل أنت متأكد من أنك تريد حذف القائمة دخول <b>٪ ق؟</b>
|
||||
DeleteLine=حذف السطر
|
||||
ConfirmDeleteLine=هل أنت متأكد من أنك تريد حذف هذا الخط؟
|
||||
FailedToInitializeMenu=Failed to initialize menu
|
||||
##### Tax #####
|
||||
TaxSetup=Taxes, social or fiscal taxes and dividends module setup
|
||||
OptionVatMode=ضريبة القيمة المضافة المستحقة
|
||||
@ -1551,7 +1560,9 @@ AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filt
|
||||
AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view
|
||||
AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda
|
||||
##### ClickToDial #####
|
||||
ClickToDialDesc=هذا النموذج يسمح لإضافة رمز بعد رقم هاتف Dolibarr الاتصالات. وهناك اضغط على هذه الأيقونة ، سوف يطلب من أحد serveur معينة مع تحديد عنوان لكم أدناه. ويمكن استخدام هذه الكلمة لدعوة من مركز نظام Dolibarr التي يمكن الاتصال على رقم الهاتف هذا المسبار النظام على سبيل المثال.
|
||||
ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
|
||||
ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
|
||||
ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
|
||||
##### Point Of Sales (CashDesk) #####
|
||||
CashDesk=نقاط البيع
|
||||
CashDeskSetup=مكتب الإعداد وحدة نقدية
|
||||
@ -1577,7 +1588,7 @@ EndPointIs=الصابون العملاء يجب إرسال الطلبات إلى
|
||||
ApiSetup=API module setup
|
||||
ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services.
|
||||
KeyForApiAccess=Key to use API (parameter "api_key")
|
||||
ApiProductionMode=Enable production mode
|
||||
ApiProductionMode=Enable production mode (this will activate use of a caches for services management)
|
||||
ApiEndPointIs=You can access to the API at url
|
||||
ApiExporerIs=You can explore the API at url
|
||||
OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed
|
||||
@ -1614,7 +1625,7 @@ TaskModelModule=Tasks reports document model
|
||||
UseSearchToSelectProject=Use autocompletion fields to choose project (instead of using a list box)
|
||||
##### ECM (GED) #####
|
||||
ECMSetup = GED Setup
|
||||
ECMAutoTree = Automatic tree folder and document
|
||||
ECMAutoTree = Show also the automatic tree folder and document
|
||||
##### Fiscal Year #####
|
||||
FiscalYears=Fiscal years
|
||||
FiscalYear=Fiscal year
|
||||
@ -1625,8 +1636,6 @@ OpenFiscalYear=Open fiscal year
|
||||
CloseFiscalYear=Close fiscal year
|
||||
DeleteFiscalYear=Delete fiscal year
|
||||
ConfirmDeleteFiscalYear=Are you sure to delete this fiscal year ?
|
||||
Opened=Open
|
||||
Closed=Closed
|
||||
AlwaysEditable=Can always be edited
|
||||
MAIN_APPLICATION_TITLE=Force visible name of application (warning: setting your own name here may break autofill login feature when using DoliDroid mobile application)
|
||||
NbMajMin=Minimum number of uppercase characters
|
||||
@ -1654,7 +1663,8 @@ SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade desc
|
||||
InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file <strong>%s</strong> to allow this feature.
|
||||
ConfFileMuseContainCustom=Installing an external module from application save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to have option<br>- <strong>$dolibarr_main_url_root_alt</strong> enabled to value <strong>$dolibarr_main_url_root_alt="/custom"</strong><br>- <strong>$dolibarr_main_document_root_alt</strong> enabled to value <strong>"%s/custom"</strong>
|
||||
HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
|
||||
HighlightLinesColor=Color of highlight line when mouse move passes over (keep empty for no highlight)
|
||||
HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
|
||||
LinkColor=Color of links
|
||||
PressF5AfterChangingThis=Press F5 on keyboard after changing this value to have it effective
|
||||
NotSupportedByAllThemes=Will works with eldy theme but is not supported by all themes
|
||||
BackgroundColor=Background color
|
||||
@ -1688,3 +1698,10 @@ MailToSendSupplierRequestForQuotation=To send quotation request to supplier
|
||||
MailToSendSupplierOrder=To send supplier order
|
||||
MailToSendSupplierInvoice=To send supplier invoice
|
||||
MailToThirdparty=To send email from thirdparty page
|
||||
ByDefaultInList=Show by default on list view
|
||||
YouUseLastStableVersion=You use the last stable version
|
||||
TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
|
||||
TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
|
||||
ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of http://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
|
||||
ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of http://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
|
||||
MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
|
||||
|
||||
@ -59,7 +59,6 @@ PaymentBack=دفع العودة
|
||||
Payments=المدفوعات
|
||||
PaymentsBack=عودة المدفوعات
|
||||
PaidBack=Paid back
|
||||
DatePayment=تاريخ الدفع
|
||||
DeletePayment=حذف الدفع
|
||||
ConfirmDeletePayment=هل أنت متأكد من أنك تريد حذف هذا المبلغ؟
|
||||
ConfirmConvertToReduc=هل تريد تحويل هذه القروض إلى الودائع أو علما مطلقة الخصم؟ <br> المبلغ حتى يتم حفظ جميع الخصومات ويمكن استخدام خصم لحالي أو مستقبلي الفاتورة لهذا العميل.
|
||||
@ -74,6 +73,7 @@ PaymentsAlreadyDone=المدفوعات قد فعلت
|
||||
PaymentsBackAlreadyDone=Payments back already done
|
||||
PaymentRule=دفع الحكم
|
||||
PaymentMode=نوع الدفع
|
||||
PaymentModeShort=Payment type
|
||||
PaymentTerm=Payment term
|
||||
PaymentConditions=Payment terms
|
||||
PaymentConditionsShort=Payment terms
|
||||
@ -88,6 +88,7 @@ ClassifyCanceled=تصنيف 'المهجورة'
|
||||
ClassifyClosed=تصنيف 'مغلقة'
|
||||
ClassifyUnBilled=Classify 'Unbilled'
|
||||
CreateBill=إنشاء الفاتورة
|
||||
CreateCreditNote=Create credit note
|
||||
AddBill=Create invoice or credit note
|
||||
AddToDraftInvoices=Add to draft invoice
|
||||
DeleteBill=شطب فاتورة
|
||||
@ -101,7 +102,6 @@ ConvertToReduc=تحويل الخصم في المستقبل
|
||||
EnterPaymentReceivedFromCustomer=دخول الدفع الواردة من العملاء
|
||||
EnterPaymentDueToCustomer=من المقرر أن يسدد العميل
|
||||
DisabledBecauseRemainderToPayIsZero=Disabled because remaining unpaid is zero
|
||||
Amount=مبلغ
|
||||
PriceBase=سعر الأساس
|
||||
BillStatus=حالة الفاتورة
|
||||
BillStatusDraft=مشروع (لا بد من التحقق من صحة)
|
||||
@ -185,7 +185,6 @@ ShowInvoiceReplace=وتظهر استبدال الفاتورة
|
||||
ShowInvoiceAvoir=وتظهر المذكرة الائتمان
|
||||
ShowInvoiceDeposit=وتبين أن تودع الفاتورة
|
||||
ShowPayment=وتظهر الدفع
|
||||
File=ملف
|
||||
AlreadyPaid=دفعت بالفعل
|
||||
AlreadyPaidBack=Already paid back
|
||||
AlreadyPaidNoCreditNotesNoDeposits=دفعت بالفعل (بدون تلاحظ الائتمان والودائع)
|
||||
@ -216,8 +215,8 @@ DateEcheance=الحد من الموعد المقرر
|
||||
DateInvoice=تاريخ الفاتورة
|
||||
NoInvoice=لا الفاتورة
|
||||
ClassifyBill=تصنيف الفاتورة
|
||||
SupplierBillsToPay=دفع فواتير الموردين
|
||||
CustomerBillsUnpaid=فواتير غير مدفوعة للعملاء
|
||||
SupplierBillsToPay=Unpaid supplier invoices
|
||||
CustomerBillsUnpaid=Unpaid customer invoices
|
||||
NonPercuRecuperable=غير القابلة للاسترداد
|
||||
SetConditions=تحدد شروط الدفع
|
||||
SetMode=حدد طريقة الدفع
|
||||
@ -238,7 +237,6 @@ Reduction=تخفيض
|
||||
ReductionShort=Reduc.
|
||||
Reductions=التخفيضات
|
||||
ReductionsShort=Reduc.
|
||||
Discount=الخصم
|
||||
Discounts=خصومات
|
||||
AddDiscount=إضافة الخصم
|
||||
AddRelativeDiscount=خلق خصم قريب
|
||||
@ -351,7 +349,7 @@ ExtraInfos=معلومات اضافية
|
||||
RegulatedOn=وتنظم على
|
||||
ChequeNumber=رقم الشيك
|
||||
ChequeOrTransferNumber=شيك / نقل رقم
|
||||
ChequeMaker=فحص جهاز الإرسال
|
||||
ChequeMaker=Check/Transfer transmitter
|
||||
ChequeBank=الشيكات المصرفية
|
||||
CheckBank=Check
|
||||
NetToBePaid=الصافي للدفع
|
||||
|
||||
@ -58,7 +58,7 @@ BoxLastExpiredServices=%s مشاركة أقدم اتصالات مع خدمات
|
||||
BoxTitleLastActionsToDo=ق ٪ الإجراءات الأخيرة للقيام
|
||||
BoxTitleLastContracts=%s العقود الماضية
|
||||
BoxTitleLastModifiedDonations=%s آخر تعديل التبرعات
|
||||
BoxTitleLastModifiedExpenses=%s آخر تعديل النفقات
|
||||
BoxTitleLastModifiedExpenses=Last %s modified expense reports
|
||||
BoxGlobalActivity=Global activity (invoices, proposals, orders)
|
||||
FailedToRefreshDataInfoNotUpToDate=فشلت في تجديد تدفق RSS. اخر تحديث تاريخ : ٪ ق
|
||||
LastRefreshDate=تاريخ آخر تجديد
|
||||
|
||||
@ -38,3 +38,4 @@ ShowStock=عرض مستودع
|
||||
DeleteArticle=انقر لإزالة هذه المادة
|
||||
FilterRefOrLabelOrBC=Search (Ref/Label)
|
||||
UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that use POS need to have permission to edit stock.
|
||||
DolibarrReceiptPrinter=Dolibarr Receipt Printer
|
||||
|
||||
@ -56,7 +56,6 @@ ReportByCustomers=تقرير للعملاء
|
||||
ReportByQuarter=تقرير الربع
|
||||
CivilityCode=قانون الكياسة
|
||||
RegisteredOffice=المكتب المسجل
|
||||
Name=اسم
|
||||
Lastname=اللقب
|
||||
Firstname=Firstname
|
||||
PostOrFunction=وظيفة / وظيفة
|
||||
@ -64,6 +63,7 @@ UserTitle=العنوان
|
||||
Surname=لقب / مزيف
|
||||
Address=عنوان
|
||||
State=الولاية / المقاطعة
|
||||
StateShort=State
|
||||
Region=المنطقة
|
||||
Country=قطر
|
||||
CountryCode=رمز البلد
|
||||
@ -88,8 +88,10 @@ VATIsNotUsed=ضريبة القيمة المضافة لا يستخدم
|
||||
CopyAddressFromSoc=Fill address with thirdparty address
|
||||
NoEmailDefined=There is no email defined
|
||||
##### Local Taxes #####
|
||||
LocalTax1IsUsed=Use second tax
|
||||
LocalTax1IsUsedES= يتم استخدام الطاقة المتجددة
|
||||
LocalTax1IsNotUsedES= لا يتم استخدام الطاقة المتجددة
|
||||
LocalTax2IsUsed=Use third tax
|
||||
LocalTax2IsUsedES= يستخدم IRPF
|
||||
LocalTax2IsNotUsedES= IRPF لا يستخدم
|
||||
LocalTax1ES=تعاود
|
||||
@ -109,7 +111,7 @@ ProfId2Short=معرف الأستاذ 2
|
||||
ProfId3Short=الأستاذ معرف 3
|
||||
ProfId4Short=الأستاذ معرف 4
|
||||
ProfId5Short=البروفيسور رقم 5
|
||||
ProfId6Short=Prof. id 5
|
||||
ProfId6Short=Prof. id 6
|
||||
ProfId1=الهوية المهنية (1)
|
||||
ProfId2=الهوية المهنية (2)
|
||||
ProfId3=3 الهوية المهنية
|
||||
@ -284,6 +286,8 @@ PersonalInformations=البيانات الشخصية
|
||||
AccountancyCode=قانون المحاسبة
|
||||
CustomerCode=رمز العميل
|
||||
SupplierCode=رمز المورد
|
||||
CustomerCodeShort=Customer code
|
||||
SupplierCodeShort=Supplier code
|
||||
CustomerAccount=حساب الزبون
|
||||
SupplierAccount=مورد الحساب
|
||||
CustomerCodeDesc=شفرة الزبون ، فريدة من نوعها لجميع العملاء
|
||||
@ -302,7 +306,7 @@ ListOfCustomersContacts=قائمة عملاء الاتصالات
|
||||
ListOfSuppliersContacts=قائمة الموردين اتصالات
|
||||
ListOfCompanies=قائمة الشركات
|
||||
ListOfThirdParties=قائمة أطراف ثالثة
|
||||
ShowCompany=وتبين للشركة
|
||||
ShowCompany=Show thirdparty
|
||||
ShowContact=وتظهر الاتصال
|
||||
ContactsAllShort=جميع (بدون فلتر)
|
||||
ContactType=نوع الاتصال
|
||||
@ -414,7 +418,7 @@ UniqueThirdParties=مجموع الأطراف الثالثة فريدة من نو
|
||||
InActivity=فتح
|
||||
ActivityCeased=مغلق
|
||||
ActivityStateFilter=نشاط المركز
|
||||
ProductsIntoElements=List of products into %s
|
||||
ProductsIntoElements=List of products/services into %s
|
||||
CurrentOutstandingBill=Current outstanding bill
|
||||
OutstandingBill=Max. for outstanding bill
|
||||
OutstandingBillReached=Reached max. for outstanding bill
|
||||
|
||||
@ -79,16 +79,21 @@ ListPayment=قائمة المدفوعات
|
||||
ListOfPayments=قائمة المدفوعات
|
||||
ListOfCustomerPayments=قائمة مدفوعات العملاء
|
||||
ListOfSupplierPayments=قائمة الموردين المدفوعات
|
||||
DatePayment=تاريخ الدفع
|
||||
DateStartPeriod=Date start period
|
||||
DateEndPeriod=Date end period
|
||||
NewVATPayment=دفع ضريبة القيمة المضافة الجديدة
|
||||
newLT2PaymentES=جديد IRPF دفع
|
||||
newLT1Payment=New tax 2 payment
|
||||
newLT2Payment=New tax 3 payment
|
||||
LT1Payment=Tax 2 payment
|
||||
LT1Payments=Tax 2 payments
|
||||
LT2Payment=Tax 3 payment
|
||||
LT2Payments=Tax 3 payments
|
||||
newLT1PaymentES=New RE payment
|
||||
LT2PaymentES=IRPF الدفع
|
||||
LT2PaymentsES=الدفعات IRPF
|
||||
newLT2PaymentES=جديد IRPF دفع
|
||||
LT1PaymentES=RE Payment
|
||||
LT1PaymentsES=RE Payments
|
||||
LT2PaymentES=IRPF الدفع
|
||||
LT2PaymentsES=الدفعات IRPF
|
||||
VATPayment=دفع ضريبة القيمة المضافة
|
||||
VATPayments=دفع ضريبة القيمة المضافة
|
||||
VATRefund=VAT Refund
|
||||
@ -99,6 +104,8 @@ TotalToPay=على دفع ما مجموعه
|
||||
TotalVATReceived=تلقى مجموع الضريبة على القيمة المضافة
|
||||
CustomerAccountancyCode=قانون محاسبة العملاء
|
||||
SupplierAccountancyCode=مورد قانون المحاسبة
|
||||
CustomerAccountancyCodeShort=Cust. account. code
|
||||
SupplierAccountancyCodeShort=Sup. account. code
|
||||
AccountNumberShort=رقم الحساب
|
||||
AccountNumber=رقم الحساب
|
||||
NewAccount=حساب جديد
|
||||
@ -140,9 +147,9 @@ AnnualByCompaniesInputOutputMode=ميزان الإيرادات والنفقات
|
||||
SeeReportInInputOutputMode=انظر التقرير <b>sIncomes ٪</b> بين <b>المصروفات ٪ ق</b> قال <b>المحاسبة النقدية</b> لحساب المدفوعات الفعلية
|
||||
SeeReportInDueDebtMode=انظر التقرير <b>sClaims ٪</b> بين <b>ديونها ٪ ق الالتزام والمحاسبة</b> وقال لحساب فواتير
|
||||
RulesAmountWithTaxIncluded=- Amounts shown are with all taxes included
|
||||
RulesResultDue=-- المبالغ المبينة مع كل الضرائب وشملت <br> -- ويشمل الفواتير غير المسددة والنفقات والضريبة على القيمة المضافة المدفوعة سواء كانوا أم لا. <br> -- يقوم على تاريخ المصادقة على الفواتير وضريبة القيمة المضافة وعلى الموعد المقرر لتغطية النفقات.
|
||||
RulesResultInOut=- It includes the real payments made on invoices, expenses and VAT. <br>- It is based on the payment dates of the invoices, expenses and VAT.
|
||||
RulesCADue=-- ويشمل العملاء الفواتير المستحقة ما إذا كانت دفعت أم لا. <br> -- يقوم على تاريخ المصادقة على هذه الفواتير. <br>
|
||||
RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whether they are paid or not. Is also includes paid salaries.<br>- It is based on the validation date of invoices and VAT and on the due date for expenses. For salaries defined with Salary module, the value date of payment is used.
|
||||
RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries. <br>- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation.
|
||||
RulesCADue=- It includes the client's due invoices whether they are paid or not. <br>- It is based on the validation date of these invoices.<br>
|
||||
RulesCAIn=-- ويشمل جميع الفعال دفع الفواتير الواردة من العملاء. <br> -- يقوم على دفع هذه الفواتير تاريخ <br>
|
||||
DepositsAreNotIncluded=- يتم ولا تشمل ودائع الفواتير
|
||||
DepositsAreIncluded=- وترد الفواتير ودائع
|
||||
@ -192,7 +199,6 @@ ByProductsAndServices=By products and services
|
||||
RefExt=External ref
|
||||
ToCreateAPredefinedInvoice=To create a predefined invoice, create a standard invoice then, without validating it, click onto button "Convert to predefined invoice".
|
||||
LinkedOrder=Link to order
|
||||
ReCalculate=Recalculate
|
||||
Mode1=Method 1
|
||||
Mode2=Method 2
|
||||
CalculationRuleDesc=To calculate total VAT, there is two methods:<br>Method 1 is rounding vat on each line, then summing them.<br>Method 2 is summing all vat on each line, then rounding result.<br>Final result may differs from few cents. Default mode is mode <b>%s</b>.
|
||||
|
||||
@ -19,6 +19,7 @@ ServiceStatusLateShort=انتهى
|
||||
ServiceStatusClosed=مغلقة
|
||||
ServicesLegend=خدمات أسطورة
|
||||
Contracts=عقود
|
||||
ContractsSubscriptions=Contracts/Subscriptions
|
||||
ContractsAndLine=Contracts and line of contracts
|
||||
Contract=العقد
|
||||
ContractLine=Contract line
|
||||
@ -30,6 +31,7 @@ MenuRunningServices=ادارة الخدمات
|
||||
MenuExpiredServices=انتهت الخدمات
|
||||
MenuClosedServices=أغلقت الخدمات
|
||||
NewContract=العقد الجديد
|
||||
NewContractSubscription=New contract/subscription
|
||||
AddContract=Create contract
|
||||
SearchAContract=بحث عقد
|
||||
DeleteAContract=الغاء العقد
|
||||
|
||||
@ -7,6 +7,7 @@ DeliveryOrders=توصيل الطلبات
|
||||
DeliveryDate=تاريخ التسليم
|
||||
DeliveryDateShort=Deliv. تاريخ
|
||||
CreateDeliveryOrder=ومن أجل توليد التسليم
|
||||
DeliveryStateSaved=Delivery state saved
|
||||
QtyDelivered=الكمية المسلمة
|
||||
SetDeliveryDate=حدد تاريخ الشحن
|
||||
ValidateDeliveryReceipt=تحقق من إنجاز ورود
|
||||
@ -24,3 +25,5 @@ Deliverer=المنفذ :
|
||||
Sender=مرسل
|
||||
Recipient=المتلقي
|
||||
ErrorStockIsNotEnough=There's not enough stock
|
||||
Shippable=Shippable
|
||||
NonShippable=Not Shippable
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
# Dolibarr language file - Source file is en_US - ecm
|
||||
MenuECM=وثائق
|
||||
DocsMine=بلدي وثائق
|
||||
DocsGenerated=ولدت وثائق
|
||||
DocsElements=عناصر وثائق
|
||||
|
||||
@ -3,8 +3,6 @@
|
||||
# No errors
|
||||
NoErrorCommitIsDone=No error, we commit
|
||||
# Errors
|
||||
Error=خطأ
|
||||
Errors=أخطاء
|
||||
ErrorButCommitIsDone=Errors found but we validate despite this
|
||||
ErrorBadEMail=بريد إلكتروني خاطئ %s
|
||||
ErrorBadUrl=عنوان الموقع هو الخطأ %s
|
||||
@ -172,8 +170,11 @@ ErrorFieldMustBeANumeric=Field <b>%s</b> must be a numeric value
|
||||
ErrorFieldMustBeAnInteger=Field <b>%s</b> must be an integer
|
||||
ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
|
||||
ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
|
||||
ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
|
||||
ErrorSavingChanges=An error has ocurred when saving the changes
|
||||
|
||||
# Warnings
|
||||
WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
|
||||
WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined
|
||||
WarningSafeModeOnCheckExecDir=انذار ، فب <b>safe_mode</b> الخيار في ذلك تخزين الأمر يجب أن يكون داخل الدليل الذي أعلنته <b>safe_mode_exec_dir</b> المعلمة بي.
|
||||
WarningAllowUrlFopenMustBeOn=<b>allow_url_fopen</b> المعلم يجب أن يوضع <b>على</b> المدون في <b>php.ini</b> لتعمل هذه الوحدة بشكل كامل. يجب عليك أن تعدل عن هذا الملف يدويا.
|
||||
|
||||
@ -24,5 +24,5 @@ BackToHelpCenter=Otherwise, click here to go <a href=بخلاف ذلك ، انق
|
||||
LinkToGoldMember=تستطيع الاتصال به من قبل المدرب مختار مسبقا لغتك Dolibarr (٪) عن طريق النقر فوق القطعة له (والحد الاعلى لسعر يتم تحديثها تلقائيا) :
|
||||
PossibleLanguages=وأيد لغات
|
||||
MakeADonation=مساعدة Dolibarr المشروع ، تقديم تبرع
|
||||
SubscribeToFoundation=Help Dolibarr project, subscribe to the foundation
|
||||
SubscribeToFoundation=مساعدة مشروع Dolibarr، الاشتراك في الجمعية
|
||||
SeeOfficalSupport=For official Dolibarr support in your language: <br><b><a href="%s" target="_blank">%s</a></b>
|
||||
|
||||
19
htdocs/langs/ar_SA/hrm.lang
Normal file
19
htdocs/langs/ar_SA/hrm.lang
Normal file
@ -0,0 +1,19 @@
|
||||
# Dolibarr language file - en_US - hrm
|
||||
# Admin
|
||||
HRM_EMAIL_EXTERNAL_SERVICE=Email to prevent HRM external service
|
||||
Establishments=Establishments
|
||||
Establishment=Establishment
|
||||
NewEstablishment=New establishment
|
||||
DeleteEstablishment=Delete establishment
|
||||
ConfirmDeleteEstablishment=Are-you sure to delete this establishment ?
|
||||
OpenEtablishment=Open establishment
|
||||
CloseEtablishment=Close establishment
|
||||
# Dictionary
|
||||
DictionaryDepartment=HRM - Department list
|
||||
DictionaryFunction=HRM - Function list
|
||||
# Module
|
||||
ListOfEmployees=List of employees
|
||||
Employees=Employees
|
||||
Employee=Employee
|
||||
NewEmployee=New employee
|
||||
EmployeeCard=Employee card
|
||||
@ -52,9 +52,7 @@ ServerPortDescription=قاعدة بيانات الميناء. تبقي فارغ
|
||||
DatabaseServer=خادم قاعدة البيانات
|
||||
DatabaseName=اسم قاعدة البيانات
|
||||
DatabasePrefix=قاعدة بيانات بادئة الجدول
|
||||
Login=تسجيل الدخول
|
||||
AdminLogin=ادخل لDolibarr مدير قاعدة البيانات. تبقي فارغة إذا لم يذكر اسمه في اتصال
|
||||
Password=كلمة السر
|
||||
PasswordAgain=أعد كتابة كلمة المرور مرة ثانية
|
||||
AdminPassword=Dolibarr كلمة السر لمدير قاعدة البيانات. تبقي فارغة إذا لم يذكر اسمه في اتصال
|
||||
CreateDatabase=إنشاء قاعدة بيانات
|
||||
@ -62,14 +60,11 @@ CreateUser=إنشاء مستخدم
|
||||
DatabaseSuperUserAccess=قاعدة بيانات -- وصول مستخدم الكومبيوتر ذو الصلاحيات العليا
|
||||
CheckToCreateDatabase=المربع إذا كان لا وجود قاعدة بيانات ، ويجب تهيئة. <br> في هذه الحالة ، يجب عليك ملء ادخل كلمة السر لحساب المستعملين المتميزين في أسفل هذه الصفحة.
|
||||
CheckToCreateUser=المربع اذا ادخل لا وجود له ، ويجب تهيئة. <br> في هذه الحالة ، يجب عليك ملء ادخل كلمة السر لحساب المستعملين المتميزين في أسفل هذه الصفحة.
|
||||
Experimental=(التجريبية وغير التشغيلية)
|
||||
Deprecated=(deprecated)
|
||||
DatabaseRootLoginDescription=ادخل يسمح للمستخدم لإنشاء قواعد بيانات جديدة أو المستخدمين الجدد ، وإذا كانت غير مجدية وقاعدة البيانات وقاعدة البيانات ادخل موجود بالفعل (مثل عندما كنت استضافته استضافة ويب).
|
||||
KeepEmptyIfNoPassword=ترك فارغا إذا لم المستخدم كلمة السر (تجنب هذا؟)
|
||||
SaveConfigurationFile=إنقاذ القيم
|
||||
ConfigurationSaving=إنقاذ ملفات
|
||||
ServerConnection=اتصال الخادم
|
||||
DatabaseConnection=قاعدة بيانات الصدد
|
||||
DatabaseCreation=إنشاء قاعدة بيانات
|
||||
UserCreation=إنشاء مستخدم
|
||||
CreateDatabaseObjects=إنشاء قاعدة بيانات الأجسام
|
||||
@ -92,7 +87,6 @@ GoToDolibarr=الذهاب إلى Dolibarr
|
||||
GoToSetupArea=الذهاب إلى Dolibarr (مجال الإعداد)
|
||||
MigrationNotFinished=نسخة من قاعدة البيانات الخاصة بك لا يصل تماما حتى الآن ، لذلك سيكون لديك لتشغيل عملية الترقية مرة أخرى.
|
||||
GoToUpgradePage=الذهاب لتحديث الصفحة مرة أخرى
|
||||
Examples=أمثلة
|
||||
WithNoSlashAtTheEnd=بدون خفض "/" في نهاية
|
||||
DirectoryRecommendation=وrecommanded به لاستخدام دليل خارج الدليل الخاص من صفحات موقعك.
|
||||
LoginAlreadyExists=موجود بالفعل
|
||||
@ -113,7 +107,6 @@ Upgrade=ترقية
|
||||
UpgradeDesc=استخدام هذه الطريقة إذا كنت قد حلت محل القديمة Dolibarr الملفات من الملفات مع إصدار أحدث. وهذا من شأنه رفع مستوى قاعدة البيانات والبيانات.
|
||||
Start=يبدأ
|
||||
InstallNotAllowed=الإعداد غير مسموح به <b>conf.php</b> الاذونات
|
||||
NotAvailable=غير متاحة
|
||||
YouMustCreateWithPermission=يجب إنشاء ملف ق ٪ ومجموعة الكتابة على أذونات لملقم الويب أثناء عملية التثبيت.
|
||||
CorrectProblemAndReloadPage=يرجى تحديد المشكلة والصحافة F5 لإعادة تحميل الصفحة.
|
||||
AlreadyDone=بالفعل هاجر
|
||||
@ -155,7 +148,7 @@ MigrationFinished=الانتهاء من الهجرة
|
||||
LastStepDesc=<strong>الخطوة الأخيرة</strong> : تعريف المستخدم وكلمة السر هنا كنت تخطط لاستخدامها للاتصال البرمجيات. لا تفقد هذا كما هو حساب لإدارة جميع الآخرين.
|
||||
ActivateModule=تفعيل وحدة %s
|
||||
ShowEditTechnicalParameters=انقر هنا لعرض/تحرير المعلمات المتقدمة (وضع الخبراء)
|
||||
WarningUpgrade=Warning:\nDid your run a database backup first ?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
|
||||
WarningUpgrade=Warning:\nDid your run a database backup first ?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
|
||||
ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug making data loss if you make structure change on your database, like it is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a higher fixed version (list of known bugged version: %s)
|
||||
|
||||
#########
|
||||
|
||||
@ -84,9 +84,12 @@ EachInvoiceWillBeAttachedToEmail=A document using default invoice document templ
|
||||
MailTopicSendRemindUnpaidInvoices=Reminder of invoice %s (%s)
|
||||
SendRemind=Send reminder by EMails
|
||||
RemindSent=%s reminder(s) sent
|
||||
AllRecipientSelectedForRemind=All thirdparties selected and if an email is set (note that one mail per invoice will be sent)
|
||||
AllRecipientSelected=All thirdparties selected and if an email is set.
|
||||
NoRemindSent=No EMail reminder sent
|
||||
ResultOfMassSending=Result of mass EMail reminders sending
|
||||
ResultOfMailSending=Result of mass EMail sending
|
||||
NbSelected=Nb selected
|
||||
NbIgnored=Nb ignored
|
||||
NbSent=Nb sent
|
||||
|
||||
# Libelle des modules de liste de destinataires mailing
|
||||
MailingModuleDescContactCompanies=اتصالات لجميع الأطراف الثالثة (العملاء ، والاحتمال ، والمورد ،...)
|
||||
@ -97,7 +100,7 @@ MailingModuleDescEmailsFromUser=EMails from user input (email;lastname;firstname
|
||||
MailingModuleDescContactsCategories=أطراف ثالثة مع رسائل البريد الإلكتروني (حسب الفئة)
|
||||
MailingModuleDescDolibarrContractsLinesExpired=أطراف ثالثة مع انتهاء العقد خطوط
|
||||
MailingModuleDescContactsByCompanyCategory=اتصالات من أطراف ثالثة (من قبل أطراف ثالثة الفئة)
|
||||
MailingModuleDescContactsByCategory=Contacts/addresses of third parties by category
|
||||
MailingModuleDescContactsByCategory=Contacts/addresses of third parties (by category)
|
||||
MailingModuleDescMembersCategories=أعضاء مؤسسة (حسب الفئات)
|
||||
MailingModuleDescContactsByFunction=اتصالات من أطراف ثالثة (من قبل المنصب / الوظيفة)
|
||||
LineInFile=خط المستندات في ملف ٪
|
||||
|
||||
@ -28,6 +28,7 @@ NoTranslation=No translation
|
||||
NoRecordFound=No record found
|
||||
NoError=أي خطأ
|
||||
Error=خطأ
|
||||
Errors=Errors
|
||||
ErrorFieldRequired=الميدان '٪ ق' مطلوب
|
||||
ErrorFieldFormat=الميدان '٪ ق' سيئة القيمة
|
||||
ErrorFileDoesNotExists=ملف ٪ ق لا يوجد
|
||||
@ -59,6 +60,7 @@ ErrorCantLoadUserFromDolibarrDatabase=فشلت في العثور على المس
|
||||
ErrorNoVATRateDefinedForSellerCountry=خطأ ، لم يعرف لمعدلات ضريبة القيمة المضافة فى البلاد ٪ ق.
|
||||
ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'.
|
||||
ErrorFailedToSaveFile=خطأ ، وفشلت في انقاذ الملف.
|
||||
NotAuthorized=You are not authorized to do that.
|
||||
SetDate=Set date
|
||||
SelectDate=Select a date
|
||||
SeeAlso=See also %s
|
||||
@ -97,6 +99,7 @@ DolibarrHasDetectedError=Dolibarr اكتشفت خطأ فني
|
||||
InformationToHelpDiagnose=هذه هي المعلومات التي يمكن أن تساعد على تشخيص
|
||||
MoreInformation=مزيد من المعلومات
|
||||
TechnicalInformation=Technical information
|
||||
TechnicalID=Technical ID
|
||||
NotePublic=علما (العامة)
|
||||
NotePrivate=المذكرة (الخاصة)
|
||||
PrecisionUnitIsLimitedToXDecimals=Dolibarr كان الإعداد بدقة للحد من أسعار الوحدات إلى <b>٪ ق</b> عشرية.
|
||||
@ -228,6 +231,7 @@ DateAndHour=Date and hour
|
||||
DateStart=تاريخ البدء
|
||||
DateEnd=نهاية التاريخ
|
||||
DateCreation=تاريخ الإنشاء
|
||||
DateCreationShort=Creat. date
|
||||
DateModification=تعديل التاريخ
|
||||
DateModificationShort=Modif. تاريخ
|
||||
DateLastModification=تاريخ آخر تعديل
|
||||
@ -384,6 +388,7 @@ NActions=ق ٪ الإجراءات
|
||||
NActionsLate=ق ٪ في وقت متأخر
|
||||
RequestAlreadyDone=Request already recorded
|
||||
Filter=فلتر
|
||||
FilterOnInto=Search criteria '<strong>%s</strong>' into fields %s
|
||||
RemoveFilter=إزالة فلتر
|
||||
ChartGenerated=رسم ولدت
|
||||
ChartNotGenerated=رسم لم تولد
|
||||
@ -574,6 +579,7 @@ SendByMail=أرسل عن طريق البريد الالكتروني
|
||||
MailSentBy=البريد الإلكتروني التي بعث بها
|
||||
TextUsedInTheMessageBody=هيئة البريد الإلكتروني
|
||||
SendAcknowledgementByMail=ارسال Ack. عن طريق البريد الإلكتروني
|
||||
EMail=E-mail
|
||||
NoEMail=أي بريد إلكتروني
|
||||
NoMobilePhone=No mobile phone
|
||||
Owner=مالك
|
||||
@ -666,7 +672,7 @@ NewAttribute=جديد السمة
|
||||
AttributeCode=السمة رمز
|
||||
OptionalFieldsSetup=اضافية سمات الإعداد
|
||||
URLPhoto=للتسجيل من الصورة / الشعار
|
||||
SetLinkToThirdParty=ربط طرف ثالث آخر
|
||||
SetLinkToAnotherThirdParty=Link to another third party
|
||||
CreateDraft=خلق مشروع
|
||||
SetToDraft=Back to draft
|
||||
ClickToEdit=انقر للتحرير
|
||||
@ -693,6 +699,7 @@ Deductible=Deductible
|
||||
from=from
|
||||
toward=toward
|
||||
Access=Access
|
||||
SelectAction=Select action
|
||||
HelpCopyToClipboard=Use Ctrl+C to copy to clipboard
|
||||
SaveUploadedFileWithMask=Save file on server with name "<strong>%s</strong>" (otherwise "%s")
|
||||
OriginFileName=Original filename
|
||||
@ -717,6 +724,9 @@ ViewList=List view
|
||||
Mandatory=Mandatory
|
||||
Hello=Hello
|
||||
Sincerely=Sincerely
|
||||
DeleteLine=Delete line
|
||||
ConfirmDeleteLine=Are you sure you want to delete this line ?
|
||||
|
||||
# Week day
|
||||
Monday=يوم الاثنين
|
||||
Tuesday=الثلاثاء
|
||||
@ -748,4 +758,24 @@ ShortSaturday=دإ
|
||||
ShortSunday=دإ
|
||||
SelectMailModel=Select email template
|
||||
SetRef=Set ref
|
||||
SearchIntoProject=Search %s into projects
|
||||
Select2ResultFoundUseArrows=
|
||||
Select2NotFound=No result found
|
||||
Select2Enter=Enter
|
||||
Select2MoreCharacters=or more characters
|
||||
Select2LoadingMoreResults=Loading more results...
|
||||
Select2SearchInProgress=Search in progress...
|
||||
SearchIntoThirdparties=Thirdparties
|
||||
SearchIntoContacts=Contacts
|
||||
SearchIntoMembers=Members
|
||||
SearchIntoUsers=Users
|
||||
SearchIntoProductsOrServices=Products or services
|
||||
SearchIntoProjects=Projects
|
||||
SearchIntoCustomerInvoices=Customer invoices
|
||||
SearchIntoSupplierInvoices=Supplier invoices
|
||||
SearchIntoCustomerOrders=Customer orders
|
||||
SearchIntoSupplierOrders=Supplier orders
|
||||
SearchIntoCustomerProposals=Customer proposals
|
||||
SearchIntoSupplierProposals=Supplier proposals
|
||||
SearchIntoInterventions=Interventions
|
||||
SearchIntoContracts=Contracts
|
||||
SearchIntoExpenseReports=Expense reports
|
||||
|
||||
@ -121,7 +121,6 @@ AttributeName=اسم السمة
|
||||
String=سلسلة
|
||||
Text=النص
|
||||
Int=Int
|
||||
Date=تاريخ
|
||||
DateAndTime=التاريخ والوقت
|
||||
PublicMemberCard=عضو بطاقة العامة
|
||||
MemberNotOrNoMoreExpectedToSubscribe=أو ليست عضوا في أي أكثر من المتوقع للاكتتاب
|
||||
|
||||
14
htdocs/langs/ar_SA/oauth.lang
Normal file
14
htdocs/langs/ar_SA/oauth.lang
Normal file
@ -0,0 +1,14 @@
|
||||
# Dolibarr language file - Source file is en_US - oauth
|
||||
ConfigOAuth=Oauth Configuration
|
||||
NoAccessToken=No access token saved into local database
|
||||
HasAccessToken=A token was generated and saved into local database
|
||||
NewTokenStored=Token received ans saved
|
||||
ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider
|
||||
TokenDeleted=Token deleted
|
||||
RequestAccess=Click here to request/renew access and receive a new token to save
|
||||
DeleteAccess=Click here to delete token
|
||||
UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credential on your OAuth provider:
|
||||
ListOfSupportedOauthProviders=Enter here credential provided by your OAuth2 provider. Only supported OAuth2 providers are visible here. This setup may be used by other modules than need OAuth2 authentication.
|
||||
OAUTH_GOOGLE_NAME=Api Google
|
||||
OAUTH_GOOGLE_ID=Api Google Id
|
||||
OAUTH_GOOGLE_SECRET=Api Google Secret
|
||||
@ -31,10 +31,12 @@ StatusOrderSentShort=في عملية
|
||||
StatusOrderSent=Shipment in process
|
||||
StatusOrderOnProcessShort=Ordered
|
||||
StatusOrderProcessedShort=تجهيز
|
||||
StatusOrderDelivered=Delivered
|
||||
StatusOrderToBillShort=على مشروع قانون
|
||||
StatusOrderToBill2Short=على مشروع قانون
|
||||
StatusOrderApprovedShort=وافق
|
||||
StatusOrderRefusedShort=رفض
|
||||
StatusOrderBilledShort=Billed
|
||||
StatusOrderToProcessShort=لعملية
|
||||
StatusOrderReceivedPartiallyShort=تلقى جزئيا
|
||||
StatusOrderReceivedAllShort=وتلقى كل شيء
|
||||
@ -48,6 +50,7 @@ StatusOrderToBill=على مشروع قانون
|
||||
StatusOrderToBill2=على مشروع قانون
|
||||
StatusOrderApproved=وافق
|
||||
StatusOrderRefused=رفض
|
||||
StatusOrderBilled=Billed
|
||||
StatusOrderReceivedPartially=تلقى جزئيا
|
||||
StatusOrderReceivedAll=وتلقى كل شيء
|
||||
ShippingExist=شحنة موجود
|
||||
@ -61,7 +64,6 @@ SearchOrder=من أجل البحث
|
||||
SearchACustomerOrder=Search a customer order
|
||||
SearchASupplierOrder=Search a supplier order
|
||||
ShipProduct=سفينة المنتج
|
||||
Discount=الخصم
|
||||
CreateOrder=خلق أمر
|
||||
RefuseOrder=رفض النظام
|
||||
ApproveOrder=Approve order
|
||||
@ -70,6 +72,7 @@ ValidateOrder=من أجل التحقق من صحة
|
||||
UnvalidateOrder=Unvalidate النظام
|
||||
DeleteOrder=من أجل حذف
|
||||
CancelOrder=من أجل إلغاء
|
||||
OrderReopened= Order %s Reopened
|
||||
AddOrder=Create order
|
||||
AddToMyOrders=أضف إلى أوامر
|
||||
AddToOtherOrders=إضافة إلى أوامر أخرى
|
||||
@ -79,6 +82,8 @@ OrdersOpened=Orders to process
|
||||
NoOpenedOrders=No open orders
|
||||
NoOtherOpenedOrders=No other open orders
|
||||
NoDraftOrders=No draft orders
|
||||
NoOrder=No Order
|
||||
NoSupplierOrder=No supplier order
|
||||
OtherOrders=أوامر أخرى
|
||||
LastOrders=Last %s customer orders
|
||||
LastCustomerOrders=Last %s customer orders
|
||||
@ -105,6 +110,7 @@ ClassifyShipped=Classify delivered
|
||||
ClassifyBilled=تصنيف "فواتير"
|
||||
ComptaCard=بطاقة المحاسبة
|
||||
DraftOrders=مشروع أوامر
|
||||
DraftSuppliersOrders=Draft suppliers orders
|
||||
RelatedOrders=الأوامر ذات الصلة
|
||||
RelatedCustomerOrders=Related customer orders
|
||||
RelatedSupplierOrders=Related supplier orders
|
||||
|
||||
@ -10,27 +10,26 @@ BirthdayAlertOn= عيد ميلاد النشطة في حالة تأهب
|
||||
BirthdayAlertOff= عيد الميلاد فى حالة تأهب الخاملة
|
||||
Notify_FICHINTER_VALIDATE=تدخل المصادق
|
||||
Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
|
||||
Notify_BILL_VALIDATE=فاتورة مصادق
|
||||
Notify_BILL_UNVALIDATE=Customer invoice unvalidated
|
||||
Notify_ORDER_VALIDATE=التحقق من صحة النظام العميل
|
||||
Notify_ORDER_SENTBYMAIL=النظام العميل ترسل عن طريق البريد
|
||||
Notify_ORDER_SUPPLIER_SENTBYMAIL=النظام مزود ترسل عن طريق البريد
|
||||
Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
|
||||
Notify_ORDER_SUPPLIER_APPROVE=من أجل الموافقة على المورد
|
||||
Notify_ORDER_SUPPLIER_REFUSE=من أجل رفض الموردين
|
||||
Notify_ORDER_VALIDATE=التحقق من صحة النظام العميل
|
||||
Notify_PROPAL_VALIDATE=التحقق من صحة اقتراح العملاء
|
||||
Notify_PROPAL_CLOSE_SIGNED=Customer propal closed signed
|
||||
Notify_PROPAL_CLOSE_REFUSED=Customer propal closed refused
|
||||
Notify_PROPAL_SENTBYMAIL=اقتراح التجارية المرسلة عن طريق البريد
|
||||
Notify_WITHDRAW_TRANSMIT=انتقال انسحاب
|
||||
Notify_WITHDRAW_CREDIT=انسحاب الائتمان
|
||||
Notify_WITHDRAW_EMIT=Isue انسحاب
|
||||
Notify_ORDER_SENTBYMAIL=النظام العميل ترسل عن طريق البريد
|
||||
Notify_COMPANY_CREATE=طرف ثالث خلق
|
||||
Notify_COMPANY_SENTBYMAIL=Mails sent from third party card
|
||||
Notify_PROPAL_SENTBYMAIL=اقتراح التجارية المرسلة عن طريق البريد
|
||||
Notify_BILL_VALIDATE=فاتورة مصادق
|
||||
Notify_BILL_UNVALIDATE=Customer invoice unvalidated
|
||||
Notify_BILL_PAYED=دفعت فاتورة العميل
|
||||
Notify_BILL_CANCEL=فاتورة الزبون إلغاء
|
||||
Notify_BILL_SENTBYMAIL=فاتورة الزبون إرسالها عن طريق البريد
|
||||
Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
|
||||
Notify_ORDER_SUPPLIER_SENTBYMAIL=النظام مزود ترسل عن طريق البريد
|
||||
Notify_BILL_SUPPLIER_VALIDATE=فاتورة المورد المصادق
|
||||
Notify_BILL_SUPPLIER_PAYED=دفعت فاتورة المورد
|
||||
Notify_BILL_SUPPLIER_SENTBYMAIL=فاتورة المورد ترسل عن طريق البريد
|
||||
@ -58,13 +57,13 @@ Miscellaneous=متفرقات
|
||||
NbOfActiveNotifications=Number of notifications (nb of recipient emails)
|
||||
PredefinedMailTest=هذا هو الاختبار الإلكتروني. تكون مفصولة \\ nThe سطرين من قبل حرف إرجاع.
|
||||
PredefinedMailTestHtml=هذا هو البريد <b>الاختبار</b> (الاختبار يجب أن تكون في كلمة جريئة). <br> وتفصل بين الخطين من قبل حرف إرجاع.
|
||||
PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __FACREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
|
||||
PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __FACREF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
|
||||
PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
|
||||
PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
|
||||
PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nYou will find here the commercial proposal __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
|
||||
PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
|
||||
PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nYou will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
|
||||
PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYou will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
|
||||
PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __FACREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
|
||||
PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
|
||||
PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
|
||||
PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
|
||||
PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__
|
||||
@ -121,24 +120,23 @@ LengthUnitdm=مارك ألماني
|
||||
LengthUnitcm=الطول
|
||||
LengthUnitmm=مم
|
||||
Surface=منطقة
|
||||
SurfaceUnitm2=m2
|
||||
SurfaceUnitdm2=dm2
|
||||
SurfaceUnitcm2=cm2
|
||||
SurfaceUnitmm2=mm2
|
||||
SurfaceUnitfoot2=ft2
|
||||
SurfaceUnitinch2=in2
|
||||
SurfaceUnitm2=m²
|
||||
SurfaceUnitdm2=dm²
|
||||
SurfaceUnitcm2=cm²
|
||||
SurfaceUnitmm2=mm²
|
||||
SurfaceUnitfoot2=ft²
|
||||
SurfaceUnitinch2=in²
|
||||
Volume=حجم
|
||||
TotalVolume=الحجم الإجمالي
|
||||
VolumeUnitm3=m3
|
||||
VolumeUnitdm3=dm3
|
||||
VolumeUnitcm3=cm3
|
||||
VolumeUnitmm3=mm3
|
||||
VolumeUnitfoot3=ft3
|
||||
VolumeUnitinch3=in3
|
||||
VolumeUnitm3=m³
|
||||
VolumeUnitdm3=dm³ (L)
|
||||
VolumeUnitcm3=cm³ (ml)
|
||||
VolumeUnitmm3=mm³ (µl)
|
||||
VolumeUnitfoot3=ft³
|
||||
VolumeUnitinch3=in³
|
||||
VolumeUnitounce=أوقية
|
||||
VolumeUnitlitre=لتر
|
||||
VolumeUnitgallon=غالون
|
||||
Size=حجم
|
||||
SizeUnitm=م
|
||||
SizeUnitdm=مارك ألماني
|
||||
SizeUnitcm=سم
|
||||
|
||||
@ -23,3 +23,9 @@ PAYPAL_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not)
|
||||
ReturnURLAfterPayment=Return URL after payment
|
||||
ValidationOfPaypalPaymentFailed=Validation of Paypal payment failed
|
||||
PaypalConfirmPaymentPageWasCalledButFailed=Payment confirmation page for Paypal was called by Paypal but confirmation failed
|
||||
SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed.
|
||||
DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed.
|
||||
DetailedErrorMessage=Detailed Error Message
|
||||
ShortErrorMessage=Short Error Message
|
||||
ErrorCode=Error Code
|
||||
ErrorSeverityCode=Error Severity Code
|
||||
|
||||
@ -1,6 +1,9 @@
|
||||
# Dolibarr language file - Source file is en_US - products
|
||||
ProductRef=المرجع المنتج.
|
||||
ProductLabel=وصف المنتج
|
||||
ProductLabelTranslated=Translated product label
|
||||
ProductDescriptionTranslated=Translated product description
|
||||
ProductNoteTranslated=Translated product note
|
||||
ProductServiceCard=منتجات / خدمات البطاقات
|
||||
Products=المنتجات
|
||||
Services=الخدمات
|
||||
@ -64,12 +67,17 @@ ProductStatusNotOnBuy=عفا عليها الزمن
|
||||
ProductStatusOnBuyShort=متاح
|
||||
ProductStatusNotOnBuyShort=عفا عليها الزمن
|
||||
UpdatePrice=آخر التطورات في الأسعار
|
||||
UpdateVAT=Update vat
|
||||
UpdateDefaultPrice=Update default price
|
||||
UpdateLevelPrices=Update prices for each level
|
||||
AppliedPricesFrom=تطبق الأسعار من
|
||||
SellingPrice=سعر البيع
|
||||
SellingPriceHT=سعر البيع (صافي الضرائب)
|
||||
SellingPriceTTC=سعر البيع (شركة الضريبية)
|
||||
PublicPrice=السعر العام
|
||||
CurrentPrice=السعر الحالي
|
||||
CostPriceDescription=This price (net of tax) can be used to store the average amount this product cost to your company. It may be any price you calculate yourself, for example from the average buying price plus average production and distribution cost.
|
||||
CostPriceUsage=In a future version, this value could be used for margin calculation.
|
||||
NewPrice=السعر الجديد
|
||||
MinPrice=Min. selling price
|
||||
MinPriceHT=Min. selling price (net of tax)
|
||||
@ -98,9 +106,10 @@ AddToOtherProposals=إضافة إلى اقتراحات أخرى
|
||||
AddToMyBills=أضف إلى الفواتير
|
||||
AddToOtherBills=إضافة إلى غيرها من مشاريع القوانين
|
||||
CorrectStock=تصحيح الأوراق المالية
|
||||
AddPhoto=إضافة الصورة
|
||||
ListOfStockMovements=قائمة الحركات الأسهم
|
||||
BuyingPrice=سعر الشراء
|
||||
PriceForEachProduct=Products with specific prices
|
||||
NoPriceSpecificToCustomer=This customer has no specific prices. All standard prices for products/services will be used.
|
||||
SupplierCard=بطاقة المورد
|
||||
CommercialCard=بطاقة تجارية
|
||||
AllWays=الطريق إلى إيجاد منتجك في الأسهم
|
||||
@ -129,7 +138,6 @@ KeywordFilter=الكلمة الرئيسية فلتر
|
||||
CategoryFilter=فئة فلتر
|
||||
ProductToAddSearch=إضافة إلى البحث عن المنتج
|
||||
AddDel=إضافة / حذف
|
||||
Quantity=الكمية
|
||||
NoMatchFound=العثور على أي مباراة
|
||||
ProductAssociationList=List of products/services that are component of this virtual product/package
|
||||
ProductParentList=List of package products/services with this product as a component
|
||||
@ -182,6 +190,8 @@ ClonePricesProduct=استنساخ الرئيسية معلومات والأسعا
|
||||
CloneCompositionProduct=Clone packaged product/service
|
||||
ProductIsUsed=ويستخدم هذا المنتج
|
||||
NewRefForClone=المرجع. من المنتجات الجديدة / خدمة
|
||||
SellingPrices=Selling prices
|
||||
BuyingPrices=Buying prices
|
||||
CustomerPrices=Customer prices
|
||||
SuppliersPrices=Supplier prices
|
||||
SuppliersPricesOfProductsOrServices=Supplier prices (of products or services)
|
||||
@ -228,6 +238,10 @@ PriceByQuantityRange=Quantity range
|
||||
ProductsDashboard=Products/Services summary
|
||||
UpdateOriginalProductLabel=Modify original label
|
||||
HelpUpdateOriginalProductLabel=Allows to edit the name of the product
|
||||
MultipriceRules=Price level rules
|
||||
UseMultipriceRules=Use price level rules (defined into product module setup) to autocalculate prices of all other level according to first level
|
||||
PercentVariationOver=%% variation over %s
|
||||
PercentDiscountOver=%% discount over %s
|
||||
### composition fabrication
|
||||
Building=Production and items dispatchment
|
||||
Build=Produce
|
||||
@ -294,6 +308,7 @@ LastUpdated=Last updated
|
||||
CorrectlyUpdated=Correctly updated
|
||||
PropalMergePdfProductActualFile=Files use to add into PDF Azur are/is
|
||||
PropalMergePdfProductChooseFile=Select PDF files
|
||||
IncludingProductWithTag=Including product with tag
|
||||
IncludingProductWithTag=Including product/service with tag
|
||||
DefaultPriceRealPriceMayDependOnCustomer=Default price, real price may depend on customer
|
||||
WarningSelectOneDocument=Please select at least one document
|
||||
DefaultUnitToShow=Units
|
||||
|
||||
@ -99,7 +99,6 @@ ReOpenAProject=فتح مشروع
|
||||
ConfirmReOpenAProject=هل أنت متأكد أنك تريد إعادة فتح هذا المشروع؟
|
||||
ProjectContact=مشروع اتصالات
|
||||
ActionsOnProject=الإجراءات على المشروع
|
||||
OpenedProjects=Opened projects
|
||||
YouAreNotContactOfProject=كنت لا اتصال لهذا المشروع الخاص
|
||||
DeleteATimeSpent=قضى الوقت حذف
|
||||
ConfirmDeleteATimeSpent=هل أنت متأكد أنك تريد حذف هذا الوقت الذي يقضيه؟
|
||||
@ -175,9 +174,12 @@ ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by mo
|
||||
ProjectOpenedProjectByOppStatus=Opened project/lead by opportunity status
|
||||
ProjectsStatistics=Statistics on projects/leads
|
||||
TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
|
||||
IdTaskTime=Id task time
|
||||
YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label.
|
||||
OpenedProjectsByThirdparties=Opened projects by thirdparties
|
||||
OpportunityTotalAmount=Opportunities total amount
|
||||
OpportunityPonderatedAmount=Opportunities weighted amount
|
||||
OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability (depending on status of opportunity)
|
||||
OppStatusPROSP=Prospection
|
||||
OppStatusQUAL=Qualification
|
||||
OppStatusPROPO=Proposal
|
||||
|
||||
@ -53,6 +53,7 @@ ListOfProposals=قائمة مقترحات تجارية
|
||||
ActionsOnPropal=الإجراءات على الاقتراح
|
||||
NoOpenedPropals=No open commercial proposals
|
||||
NoOtherOpenedPropals=No other open commercial proposals
|
||||
NoPropal=No commercial proposal
|
||||
RefProposal=اقتراح المرجع التجارية
|
||||
SendPropalByMail=اقتراح ارسال التجارية عن طريق البريد
|
||||
AssociatedDocuments=الوثائق المرتبطة الاقتراح :
|
||||
|
||||
96
htdocs/langs/ar_SA/receiptprinter.lang
Normal file
96
htdocs/langs/ar_SA/receiptprinter.lang
Normal file
@ -0,0 +1,96 @@
|
||||
# Dolibarr language file - Source file is en_US - receiptprinter
|
||||
PrinterAdded=Printer %s added
|
||||
PrinterUpdated=Printer %s updated
|
||||
PrinterDeleted=Printer %s deleted
|
||||
TestSentToPrinter=Test Sent To Printer %s
|
||||
ReceiptPrinterDesc=Setup of printers
|
||||
ReceiptPrinterTemplateDesc=Setup of Templates
|
||||
ReceiptPrinterTypeDesc=Description of Receipt Printer's type
|
||||
ReceiptPrinterProfileDesc=Description of Receipt Printer's Profile
|
||||
ListPrinters=List of Printers
|
||||
SetupReceiptTemplate=Template Setup
|
||||
CONNECTOR_DUMMY=Dummy Printer
|
||||
CONNECTOR_NETWORK_PRINT=Network Printer
|
||||
CONNECTOR_FILE_PRINT=Local Printer
|
||||
CONNECTOR_WINDOWS_PRINT=Local Windows Printer
|
||||
CONNECTOR_DUMMY_HELP=Fake Printer for test, does nothing
|
||||
CONNECTOR_NETWORK_PRINT_HELP=10.x.x.x:9100
|
||||
CONNECTOR_FILE_PRINT_HELP=/dev/usb/lp0, /dev/usb/lp1
|
||||
CONNECTOR_WINDOWS_PRINT_HELP=LPT1, COM1, smb://FooUser:secret@computername/workgroup/Receipt Printer
|
||||
PROFILE_DEFAULT=Default Profile
|
||||
PROFILE_SIMPLE=Simple Profile
|
||||
PROFILE_EPOSTEP=Epos Tep Profile
|
||||
PROFILE_P822D=P822D Profile
|
||||
PROFILE_STAR=Star Profile
|
||||
PROFILE_DEFAULT_HELP=Default Profile suitable for Epson printers
|
||||
PROFILE_SIMPLE_HELP=Simple Profile No Graphics
|
||||
PROFILE_EPOSTEP_HELP=Epos Tep Profile Help
|
||||
PROFILE_P822D_HELP=P822D Profile No Graphics
|
||||
PROFILE_STAR_HELP=Star Profile
|
||||
DOL_ALIGN_LEFT=Left align text
|
||||
DOL_ALIGN_CENTER=Center text
|
||||
DOL_ALIGN_RIGHT=Right align text
|
||||
DOL_USE_FONT_A=Use font A of printer
|
||||
DOL_USE_FONT_B=Use font B of printer
|
||||
DOL_USE_FONT_C=Use font C of printer
|
||||
DOL_BOLD=Text Bold
|
||||
/DOL_BOLD=End of Text Bold
|
||||
DOL_DOUBLE_HEIGHT=Text double height
|
||||
/DOL_DOUBLE_HEIGHT=End of Text double height
|
||||
DOL_DOUBLE_WIDTH=Text double width
|
||||
/DOL_DOUBLE_WIDTH=End of Text double width
|
||||
DOL_UNDERLINE=Underline text
|
||||
/DOL_UNDERLINE=End of Underline text
|
||||
DOL_UNDERLINE_2DOTS=Underline with double line
|
||||
/DOL_UNDERLINE_2DOTS=End of Underline with double line
|
||||
DOL_EMPHASIZED=Emphasized text
|
||||
/DOL_EMPHASIZED=End of Emphasized text
|
||||
DOL_SWITCH_COLORS=Print in white on black
|
||||
/DOL_SWITCH_COLORS=End of Print in white on black
|
||||
DOL_PRINT_BARCODE=Print barcode
|
||||
DOL_PRINT_BARCODE_CUSTOMER_ID=Print barcode customer id
|
||||
DOL_SET_PRINT_WIDTH_57=Ticket print width of 57mm
|
||||
DOL_CUT_PAPER_FULL=Cut ticket completely
|
||||
DOL_CUT_PAPER_PARTIAL=Cut ticket partially
|
||||
DOL_OPEN_DRAWER=Open cash drawer
|
||||
DOL_ACTIVATE_BUZZER=Activate buzzer
|
||||
DOL_PRINT_QRCODE=Print QR Code
|
||||
DOL_PRINT_DATE=Print date AAAA-MM-DD
|
||||
DOL_PRINT_DATE_TIME=Print date and time AAAA-MM-DD HH:MM:SS
|
||||
DOL_PRINT_YEAR=Print Year
|
||||
DOL_PRINT_MONTH_LETTERS=Print month in letters (example : november)
|
||||
DOL_PRINT_MONTH=Print month number
|
||||
DOL_PRINT_DAY=Print day number
|
||||
DOL_PRINT_DAY_LETTERS=Print day number
|
||||
DOL_PRINT_TABLE=Print table number (for restaurant, bar...)
|
||||
DOL_PRINT_CUTLERY=Print number of cutlery (for restaurant)
|
||||
DOL_PRINT_PAYMENT=Print payment method
|
||||
DOL_PRINT_LOGO=Print logo stored on printer. Example : 32|32
|
||||
DOL_PRINT_LOGO_OLD=Print logo stored on printer. Must be followed by logo code. For old printers.
|
||||
DOL_PRINT_ORDER_LINES=Print order lines
|
||||
DOL_PRINT_ORDER_TAX=Print order total tax
|
||||
DOL_PRINT_ORDER_LOCAL_TAX=Print order local tax
|
||||
DOL_PRINT_ORDER_TOTAL=Print order total
|
||||
DOL_PRINT_ORDER_NUMBER=Print order number
|
||||
DOL_PRINT_ORDER_NUMBER_UNIQUE=Print order number after validation
|
||||
DOL_PRINT_CUSTOMER_FIRSTNAME=Print customer firstname
|
||||
DOL_PRINT_CUSTOMER_LASTNAME=Print customer name
|
||||
DOL_PRINT_CUSTOMER_MAIL=Print customer mail
|
||||
DOL_PRINT_CUSTOMER_PHONE=Print customer phone
|
||||
DOL_PRINT_CUSTOMER_MOBILE=Print customer mobile
|
||||
DOL_PRINT_CUSTOMER_SKYPE=Print customer skype
|
||||
DOL_PRINT_CUSTOMER_TAX_NUMBER=Print customer VAT number
|
||||
DOL_PRINT_CUSTOMER_ACCOUNT_BALANCE=Print customer account balance
|
||||
DOL_PRINT_VENDOR_LASTNAME=Print vendor name
|
||||
DOL_PRINT_VENDOR_FIRSTNAME=Print vendor firstname
|
||||
DOL_PRINT_VENDOR_MAIL=Print vendor mail
|
||||
DOL_PRINT_CUSTOMER_POINTS=Print customer points
|
||||
DOL_PRINT_ORDER_POINTS=Print number of points for this order
|
||||
DOL_PRINT_IF_CUSTOMER=Print the line IF a customer is affected to the order
|
||||
DOL_PRINT_IF_VENDOR=Print the line IF a vendor is affected to the order
|
||||
DOL_PRINT_IF_HAPPY_HOUR=Print the line IF Happy Hour
|
||||
DOL_PRINT_IF_NUM_ORDER_UNIQUE=Print the line IF order is validated
|
||||
DOL_PRINT_IF_CUSTOMER_POINTS=Print the line IF customer points > 0
|
||||
DOL_PRINT_IF_ORDER_POINTS=Print the line IF points of the order > 0
|
||||
DOL_PRINT_IF_CUSTOMER_TAX_NUMBER=Print the line IF customer has vat number
|
||||
DOL_PRINT_IF_CUSTOMER_ACCOUNT_BALANCE_POSITIVE=Print the line IF customer balance > 0
|
||||
@ -1,4 +1,4 @@
|
||||
|
||||
# Dolibarr language file - Source file is en_US - resource
|
||||
MenuResourceIndex=Resources
|
||||
MenuResourceAdd=New resource
|
||||
MenuResourcePlanning=Resource planning
|
||||
@ -17,6 +17,7 @@ ResourceFormLabel_description=Resource description
|
||||
|
||||
ResourcesLinkedToElement=Resources linked to element
|
||||
|
||||
ShowResource=Show resource
|
||||
ShowResourcePlanning=Show resource planning
|
||||
GotoDate=Go to date
|
||||
|
||||
|
||||
@ -69,7 +69,7 @@ ProductQtyInCustomersOrdersRunning=Product quantity into opened customers orders
|
||||
ProductQtyInSuppliersOrdersRunning=Product quantity into opened suppliers orders
|
||||
ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent
|
||||
ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from opened supplier order already received
|
||||
NoProductToShipFoundIntoStock=No product to ship found into warehouse <b>%s</b>. Correct sotck or go back to choose another warehouse.
|
||||
NoProductToShipFoundIntoStock=No product to ship found into warehouse <b>%s</b>. Correct stock or go back to choose another warehouse.
|
||||
|
||||
# Sending methods
|
||||
SendingMethodCATCH=القبض على العملاء
|
||||
|
||||
60
htdocs/langs/ar_SA/supplier_proposal.lang
Normal file
60
htdocs/langs/ar_SA/supplier_proposal.lang
Normal file
@ -0,0 +1,60 @@
|
||||
# Dolibarr language file - Source file is en_US - supplier_proposal
|
||||
SupplierProposal=Supplier commercial proposals
|
||||
supplier_proposalDESC=Manage price requests to suppliers
|
||||
supplier_proposalMENU_LEFT_TITLE=Supplier proposals
|
||||
supplier_proposalMENU_LEFT_TITLE_NEW=New request
|
||||
supplier_proposalMENU_LEFT_TITLE_LIST=List
|
||||
CommRequest=Price request
|
||||
CommRequests=Price requests
|
||||
SearchRequest=Find a request
|
||||
DraftRequests=Draft requests
|
||||
LastModifiedRequests=Last %s modified price requests
|
||||
RequestsOpened=Open price requests
|
||||
SupplierProposalArea=Supplier proposals area
|
||||
SupplierProposalShort=Supplier proposal
|
||||
SupplierProposals=Supplier proposals
|
||||
NewAskPrice=New price request
|
||||
NewAsk=New request
|
||||
ShowSupplierProposal=Show price request
|
||||
AddSupplierProposal=Create a price request
|
||||
SupplierProposalRefFourn=Supplier ref
|
||||
SupplierProposalDate=Delivery date
|
||||
SupplierProposalRefFournNotice=Before closing to "Accepted", think to grasp suppliers references.
|
||||
RelatedSupplierProposal=Related price requests suppliers
|
||||
ConfirmValidateAsk=Are you sure you want to validate this price request under name <b>%s</b> ?
|
||||
DateAsk=Date of request
|
||||
DeleteAsk=Delete request
|
||||
ValidateAsk=Validate request
|
||||
AddAsk=Create a request
|
||||
SupplierProposalDraft=Drafts
|
||||
SupplierProposalOpened=Open
|
||||
SupplierProposalStatusDraft=Draft (needs to be validated)
|
||||
SupplierProposalStatusValidated=Validated (request is open)
|
||||
SupplierProposalStatusOpened=Validated (request is open)
|
||||
SupplierProposalStatusClosed=Closed
|
||||
SupplierProposalStatusSigned=Accepted
|
||||
SupplierProposalStatusNotSigned=Refused
|
||||
SupplierProposalStatusBilled=Billed
|
||||
SupplierProposalStatusDraftShort=Draft
|
||||
SupplierProposalStatusValidatedShort=Validated
|
||||
SupplierProposalStatusOpenedShort=Open
|
||||
SupplierProposalStatusClosedShort=Closed
|
||||
SupplierProposalStatusSignedShort=Accepted
|
||||
SupplierProposalStatusNotSignedShort=Refused
|
||||
SupplierProposalStatusBilledShort=Billed
|
||||
CopyAskFrom=Create price request by copying existing a request
|
||||
CreateEmptyAsk=Create blank request
|
||||
CloneAsk=Clone price request
|
||||
ConfirmCloneAsk=Are you sure you want to clone the price request <b>%s</b> ?
|
||||
ConfirmReOpenAsk=Are you sure you want to open back the price request <b>%s</b> ?
|
||||
SendAskByMail=Send price request by mail
|
||||
SendAskRef=Sending the price request %s
|
||||
SupplierProposalCard=Request card
|
||||
ConfirmDeleteAsk=Are you sure you want to delete this price request ?
|
||||
ActionsOnSupplierProposal=Events on price request
|
||||
DocModelAuroreDescription=A complete request model (logo...)
|
||||
CommercialAsk=Price request
|
||||
DefaultModelSupplierProposalCreate=Default model creation
|
||||
DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted)
|
||||
DefaultModelSupplierProposalClosed=Default template when closing a price request (refused)
|
||||
ListOfSupplierProposal=List of supplier proposal requests
|
||||
@ -28,8 +28,6 @@ AnyOtherInThisListCanValidate=Person to inform for validation.
|
||||
TripSociete=Information company
|
||||
TripSalarie=Informations user
|
||||
TripNDF=Informations expense report
|
||||
DeleteLine=Delete a line of the expense report
|
||||
ConfirmDeleteLine=Are you sure you want to delete this line ?
|
||||
PDFStandardExpenseReports=Standard template to generate a PDF document for expense report
|
||||
ExpenseReportLine=Expense report line
|
||||
TF_OTHER=أخرى
|
||||
@ -53,8 +51,6 @@ AddLineMini=Add
|
||||
Date_DEBUT=Period date start
|
||||
Date_FIN=Period date end
|
||||
ModePaiement=Payment mode
|
||||
Note=Note
|
||||
Project=Project
|
||||
|
||||
VALIDATOR=User responsible for approval
|
||||
VALIDOR=Approved by
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user