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
|
echo
|
||||||
|
|
||||||
before_script:
|
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"
|
echo "Re-enabling Xdebug for PHP CodeSniffer and PHP Unit"
|
||||||
phpenv config-add /tmp/xdebug.ini
|
phpenv config-add /tmp/xdebug.ini
|
||||||
@ -149,7 +155,7 @@ before_script:
|
|||||||
mysql -e "SELECT VERSION();"
|
mysql -e "SELECT VERSION();"
|
||||||
echo
|
echo
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- |
|
- |
|
||||||
echo "Setting up database"
|
echo "Setting up database"
|
||||||
if [ "$DB" = 'mysql' ] || [ "$DB" = 'mariadb' ]; then
|
if [ "$DB" = 'mysql' ] || [ "$DB" = 'mariadb' ]; then
|
||||||
@ -166,8 +172,8 @@ before_script:
|
|||||||
echo
|
echo
|
||||||
|
|
||||||
- |
|
- |
|
||||||
echo "Setting up Dolibarr"
|
|
||||||
export CONF_FILE=htdocs/conf/conf.php
|
export CONF_FILE=htdocs/conf/conf.php
|
||||||
|
echo "Setting up Dolibarr $CONF_FILE"
|
||||||
echo '<?php ' > $CONF_FILE
|
echo '<?php ' > $CONF_FILE
|
||||||
echo '$'dolibarr_main_url_root=\'http://127.0.0.1\'';' >> $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
|
echo '$'dolibarr_main_document_root=\'$TRAVIS_BUILD_DIR/htdocs\'';' >> $CONF_FILE
|
||||||
@ -184,15 +190,9 @@ before_script:
|
|||||||
#fi
|
#fi
|
||||||
# TODO: SQLite
|
# TODO: SQLite
|
||||||
echo '$'dolibarr_main_authentication=\'dolibarr\'';' >> $CONF_FILE
|
echo '$'dolibarr_main_authentication=\'dolibarr\'';' >> $CONF_FILE
|
||||||
|
cat $CONF_FILE
|
||||||
echo
|
echo
|
||||||
|
|
||||||
- |
|
|
||||||
if [ "$DEBUG" = true ]; then
|
|
||||||
echo "Debugging informations"
|
|
||||||
cat $CONF_FILE
|
|
||||||
echo
|
|
||||||
fi
|
|
||||||
|
|
||||||
- |
|
- |
|
||||||
echo "Create documents directory and set permissions"
|
echo "Create documents directory and set permissions"
|
||||||
# and admin/temp subdirectory needed for unit tests
|
# and admin/temp subdirectory needed for unit tests
|
||||||
@ -306,3 +306,4 @@ after_failure:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
after_script:
|
after_script:
|
||||||
|
|
||||||
|
|||||||
@ -124,7 +124,7 @@
|
|||||||
<!-- Tweaks to metrics -->
|
<!-- Tweaks to metrics -->
|
||||||
<rule ref="Generic.Metrics.CyclomaticComplexity">
|
<rule ref="Generic.Metrics.CyclomaticComplexity">
|
||||||
<properties>
|
<properties>
|
||||||
<property name="complexity" value="80" />
|
<property name="complexity" value="120" />
|
||||||
<property name="absoluteComplexity" value="250" />
|
<property name="absoluteComplexity" value="250" />
|
||||||
</properties>
|
</properties>
|
||||||
</rule>
|
</rule>
|
||||||
|
|||||||
@ -88,7 +88,7 @@ $extrafields = new ExtraFields($db);
|
|||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
$parameters=array();
|
$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 ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
||||||
|
|
||||||
if (empty($reshook))
|
if (empty($reshook))
|
||||||
|
|||||||
@ -124,7 +124,7 @@ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_lab
|
|||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
$parameters=array();
|
$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 ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
||||||
|
|
||||||
include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
|
include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
|
||||||
|
|||||||
@ -7,13 +7,15 @@
|
|||||||
# Usage: txpush.sh (source|xx_XX) [-r dolibarr.file] [-f]
|
# Usage: txpush.sh (source|xx_XX) [-r dolibarr.file] [-f]
|
||||||
#------------------------------------------------------
|
#------------------------------------------------------
|
||||||
|
|
||||||
|
export project='dolibarr'
|
||||||
|
|
||||||
# Syntax
|
# Syntax
|
||||||
if [ "x$1" = "x" ]
|
if [ "x$1" = "x" ]
|
||||||
then
|
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 "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 " 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
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -28,11 +30,24 @@ then
|
|||||||
echo "tx push -s $2 $3"
|
echo "tx push -s $2 $3"
|
||||||
tx push -s $2 $3
|
tx push -s $2 $3
|
||||||
else
|
else
|
||||||
for file in `find htdocs/langs/$1/*.lang -type f`
|
if [ "x$1" = "xall" ]
|
||||||
do
|
then
|
||||||
echo $file
|
for dir in `find htdocs/langs/* -type d`
|
||||||
export basefile=`basename $file | sed -s s/\.lang//g`
|
do
|
||||||
echo "tx push --skip -r dolibarr.$basefile -t -l $1 $2 $3 $4"
|
shortdir=`basename $dir`
|
||||||
tx push --skip -r dolibarr.$basefile -t -l $1 $2 $3 $4
|
file=$3
|
||||||
done
|
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
|
fi
|
||||||
|
|||||||
@ -148,14 +148,14 @@ if ($action == 'create')
|
|||||||
dol_fiche_head();
|
dol_fiche_head();
|
||||||
|
|
||||||
print '<table class="border" width="100%">';
|
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 '<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 '<td><input name="label" size="70" value="' . $accounting->label . '"</td></tr>';
|
||||||
print '<tr><td>' . $langs->trans("Accountparent") . '</td>';
|
print '<tr><td>' . $langs->trans("Accountparent") . '</td>';
|
||||||
print '<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 '</td></tr>';
|
||||||
print '<tr><td>' . $langs->trans("Pcgtype") . '</td>';
|
print '<tr><td>' . $langs->trans("Pcgtype") . '</td>';
|
||||||
print '<td>';
|
print '<td>';
|
||||||
@ -204,13 +204,13 @@ else if ($id)
|
|||||||
|
|
||||||
print '<table class="border" width="100%">';
|
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 '<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 '<td><input name="label" size="70" value="' . $accounting->label . '"</td></tr>';
|
||||||
print '<tr><td>' . $langs->trans("Accountparent") . '</td>';
|
print '<tr><td>' . $langs->trans("Accountparent") . '</td>';
|
||||||
print '<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 '</td></tr>';
|
||||||
print '<tr><td>' . $langs->trans("Pcgtype") . '</td>';
|
print '<tr><td>' . $langs->trans("Pcgtype") . '</td>';
|
||||||
print '<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 string $action Type of action
|
||||||
* @param int $id Id of object
|
* @param int $id Id of object
|
||||||
|
|||||||
@ -97,7 +97,7 @@ if ($action == 'setModuleOptions')
|
|||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
setEventMessages($langs->trans("SetupSaved"), null, 'msgs');
|
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -2,7 +2,8 @@
|
|||||||
/* Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net>
|
/* Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2005-2009 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2005-2009 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
* Copyright (C) 2006 Andre Cianfarani <acianfa@free.fr>
|
* 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
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -26,6 +27,7 @@
|
|||||||
|
|
||||||
require '../main.inc.php';
|
require '../main.inc.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.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("admin");
|
||||||
$langs->load("sendings");
|
$langs->load("sendings");
|
||||||
@ -76,29 +78,9 @@ llxHeader("","");
|
|||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("SendingsSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("SendingsSetup"),$linkback,'title_setup');
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
$head = expedition_admin_prepare_head();
|
||||||
|
|
||||||
$h = 0;
|
dol_fiche_head($head, 'general', $langs->trans("ModuleSetup"), 0, 'sending');
|
||||||
|
|
||||||
$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"));
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Formulaire parametres divers
|
* Formulaire parametres divers
|
||||||
|
|||||||
@ -478,20 +478,16 @@ if ($id == 11)
|
|||||||
if ($id == 25)
|
if ($id == 25)
|
||||||
{
|
{
|
||||||
// We save list of template type Dolibarr can manage. This list can found by a grep into code on "->param['models']"
|
// We save list of template type Dolibarr can manage. This list can found by a grep into code on "->param['models']"
|
||||||
$elementList = array(
|
$elementList = array();
|
||||||
'propal_send' => $langs->trans('MailToSendProposal'),
|
if ($conf->propal->enabled) $elementList['propal_send']=$langs->trans('MailToSendProposal');
|
||||||
'order_send' => $langs->trans('MailToSendOrder'),
|
if ($conf->commande->enabled) $elementList['order_send']=$langs->trans('MailToSendOrder');
|
||||||
'facture_send' => $langs->trans('MailToSendInvoice'),
|
if ($conf->facture->enabled) $elementList['facture_send']=$langs->trans('MailToSendInvoice');
|
||||||
|
if ($conf->expedition->enabled) $elementList['shipping_send']=$langs->trans('MailToSendShipment');
|
||||||
'shipping_send' => $langs->trans('MailToSendShipment'),
|
if ($conf->ficheinter->enabled) $elementList['fichinter_send']=$langs->trans('MailToSendIntervention');
|
||||||
'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');
|
||||||
'supplier_proposal_send' => $langs->trans('MailToSendSupplierRequestForQuotation'),
|
if ($conf->fournisseur->enabled) $elementList['invoice_supplier_send']=$langs->trans('MailToSendSupplierInvoice');
|
||||||
'order_supplier_send' => $langs->trans('MailToSendSupplierOrder'),
|
if ($conf->societe->enabled) $elementList['thirdparty']=$langs->trans('MailToThirdparty');
|
||||||
'invoice_supplier_send' => $langs->trans('MailToSendSupplierInvoice'),
|
|
||||||
|
|
||||||
'thirdparty' => $langs->trans('MailToThirdparty')
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Define localtax_typeList (used for dictionary "llx_c_tva")
|
// Define localtax_typeList (used for dictionary "llx_c_tva")
|
||||||
|
|||||||
@ -30,6 +30,7 @@
|
|||||||
|
|
||||||
require '../main.inc.php';
|
require '../main.inc.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.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';
|
require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php';
|
||||||
|
|
||||||
$langs->load("admin");
|
$langs->load("admin");
|
||||||
@ -219,30 +220,9 @@ llxHeader("","");
|
|||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("SendingsSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("SendingsSetup"),$linkback,'title_setup');
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
$head = expedition_admin_prepare_head();
|
||||||
|
|
||||||
|
dol_fiche_head($head, 'shipment', $langs->trans("Sendings"), 0, 'sending');
|
||||||
//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"));
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Expedition numbering model
|
* 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
|
// Always show vat rates with vat 0
|
||||||
$s=2/7;$qty=1;$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 $langs->trans("UnitPriceOfProduct").": ".price2num($s,'MU');
|
||||||
print " x ".$langs->trans("Quantity").": ".$qty;
|
print " x ".$langs->trans("Quantity").": ".$qty;
|
||||||
print " - ".$langs->trans("VAT").": ".$vat.'%';
|
print " - ".$langs->trans("VAT").": ".$vat.'%';
|
||||||
print " -> ".$langs->trans("TotalPriceAfterRounding").": ".$tmparray[0].' / '.$tmparray[1].' / '.$tmparray[2]."<br>\n";
|
print " -> ".$langs->trans("TotalPriceAfterRounding").": ".$tmparray[0].' / '.$tmparray[1].' / '.$tmparray[2]."<br>\n";
|
||||||
|
|
||||||
$s=10/3;$qty=1;$vat=0;
|
$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 $langs->trans("UnitPriceOfProduct").": ".price2num($s,'MU');
|
||||||
print " x ".$langs->trans("Quantity").": ".$qty;
|
print " x ".$langs->trans("Quantity").": ".$qty;
|
||||||
print " - ".$langs->trans("VAT").": ".$vat.'%';
|
print " - ".$langs->trans("VAT").": ".$vat.'%';
|
||||||
print " -> ".$langs->trans("TotalPriceAfterRounding").": ".$tmparray[0].' / '.$tmparray[1].' / '.$tmparray[2]."<br>\n";
|
print " -> ".$langs->trans("TotalPriceAfterRounding").": ".$tmparray[0].' / '.$tmparray[1].' / '.$tmparray[2]."<br>\n";
|
||||||
|
|
||||||
$s=10/3;$qty=2;$vat=0;
|
$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 $langs->trans("UnitPriceOfProduct").": ".price2num($s,'MU');
|
||||||
print " x ".$langs->trans("Quantity").": ".$qty;
|
print " x ".$langs->trans("Quantity").": ".$qty;
|
||||||
print " - ".$langs->trans("VAT").": ".$vat.'%';
|
print " - ".$langs->trans("VAT").": ".$vat.'%';
|
||||||
@ -230,7 +230,7 @@ else
|
|||||||
for ($qty=1; $qty<=2; $qty++)
|
for ($qty=1; $qty<=2; $qty++)
|
||||||
{
|
{
|
||||||
$s=10/3;
|
$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 $langs->trans("UnitPriceOfProduct").": ".price2num($s,'MU');
|
||||||
print " x ".$langs->trans("Quantity").": ".$qty;
|
print " x ".$langs->trans("Quantity").": ".$qty;
|
||||||
print " - ".$langs->trans("VAT").": ".$vat.'%';
|
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.
|
// 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;
|
$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 $langs->trans("UnitPriceOfProduct").": ".price2num($s,'MU');
|
||||||
print " x ".$langs->trans("Quantity").": ".$qty;
|
print " x ".$langs->trans("Quantity").": ".$qty;
|
||||||
print " - ".$langs->trans("VAT").": ".$vat.'%';
|
print " - ".$langs->trans("VAT").": ".$vat.'%';
|
||||||
print " -> ".$langs->trans("TotalPriceAfterRounding").": ".$tmparray[0].' / '.$tmparray[1].' / '.$tmparray[2]."<br>\n";
|
print " -> ".$langs->trans("TotalPriceAfterRounding").": ".$tmparray[0].' / '.$tmparray[1].' / '.$tmparray[2]."<br>\n";
|
||||||
|
|
||||||
$s=10/3;$qty=2;$vat=10;
|
$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 $langs->trans("UnitPriceOfProduct").": ".price2num($s,'MU');
|
||||||
print " x ".$langs->trans("Quantity").": ".$qty;
|
print " x ".$langs->trans("Quantity").": ".$qty;
|
||||||
print " - ".$langs->trans("VAT").": ".$vat.'%';
|
print " - ".$langs->trans("VAT").": ".$vat.'%';
|
||||||
@ -272,8 +272,8 @@ else
|
|||||||
$s2=2/7;
|
$s2=2/7;
|
||||||
|
|
||||||
// Round by line
|
// Round by line
|
||||||
$tmparray1=calcul_price_total(1,$qty*price2num($s1,'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);
|
$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_ht = $tmparray1[0] + $tmparray2[0];
|
||||||
$total_tva = $tmparray1[1] + $tmparray2[1];
|
$total_tva = $tmparray1[1] + $tmparray2[1];
|
||||||
$total_ttc = $tmparray1[2] + $tmparray2[2];
|
$total_ttc = $tmparray1[2] + $tmparray2[2];
|
||||||
@ -296,7 +296,7 @@ else
|
|||||||
|
|
||||||
// Global round
|
// Global round
|
||||||
$subtotal_ht = (($qty*price2num($s1,'MU')) + ($qty*price2num($s2,'MU')));
|
$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_ht = $tmparray3[0];
|
||||||
$total_tva = $tmparray3[1];
|
$total_tva = $tmparray3[1];
|
||||||
$total_ttc = $tmparray3[2];
|
$total_ttc = $tmparray3[2];
|
||||||
|
|||||||
@ -7,6 +7,7 @@
|
|||||||
* Copyright (C) 2005-2014 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2005-2014 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
* Copyright (C) 2011-2013 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2011-2013 Juanjo Menent <jmenent@2byte.es>
|
||||||
* Copyright (C) 2011-2015 Philippe Grand <philippe.grand@atoo-net.com>
|
* 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
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -29,6 +30,7 @@
|
|||||||
*/
|
*/
|
||||||
require '../main.inc.php';
|
require '../main.inc.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.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';
|
require_once DOL_DOCUMENT_ROOT.'/livraison/class/livraison.class.php';
|
||||||
|
|
||||||
$langs->load("admin");
|
$langs->load("admin");
|
||||||
@ -210,28 +212,10 @@ $form=new Form($db);
|
|||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("SendingsSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("SendingsSetup"),$linkback,'title_setup');
|
||||||
print '<br>';
|
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
|
* 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()
|
public function ajoutArticle()
|
||||||
{
|
{
|
||||||
global $conf,$db;
|
global $conf,$db,$mysoc;
|
||||||
|
|
||||||
$thirdpartyid = $_SESSION['CASHDESK_ID_THIRDPARTY'];
|
$thirdpartyid = $_SESSION['CASHDESK_ID_THIRDPARTY'];
|
||||||
|
|
||||||
@ -118,7 +118,7 @@ class Facturation
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Define part of HT, VAT, TTC
|
// 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
|
// Calcul du total ht sans remise
|
||||||
$total_ht = $resultarray[0];
|
$total_ht = $resultarray[0];
|
||||||
|
|||||||
@ -325,7 +325,7 @@ if (empty($reshook))
|
|||||||
for($i = 0; $i < $num; $i ++)
|
for($i = 0; $i < $num; $i ++)
|
||||||
{
|
{
|
||||||
$label = (! empty($lines[$i]->label) ? $lines[$i]->label : '');
|
$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);
|
$product_type = (! empty($lines[$i]->product_type) ? $lines[$i]->product_type : 0);
|
||||||
|
|
||||||
// Dates
|
// Dates
|
||||||
|
|||||||
@ -1222,7 +1222,7 @@ class Commande extends CommonOrder
|
|||||||
$localtaxes_type=getLocalTaxesFromRate($txtva,0,$this->thirdparty,$mysoc);
|
$localtaxes_type=getLocalTaxesFromRate($txtva,0,$this->thirdparty,$mysoc);
|
||||||
$txtva = preg_replace('/\s*\(.*\)/','',$txtva); // Remove code into vatrate.
|
$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_ht = $tabprice[0];
|
||||||
$total_tva = $tabprice[1];
|
$total_tva = $tabprice[1];
|
||||||
$total_ttc = $tabprice[2];
|
$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)
|
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;
|
$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);
|
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
|
// qty, pu, remise_percent et txtva
|
||||||
// TRES IMPORTANT: C'est au moment de l'insertion ligne qu'on doit stocker
|
// 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.
|
// 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_ht = $tabprice[0];
|
||||||
$total_tva = $tabprice[1];
|
$total_tva = $tabprice[1];
|
||||||
$total_ttc = $tabprice[2];
|
$total_ttc = $tabprice[2];
|
||||||
|
|||||||
@ -2401,18 +2401,20 @@ class Facture extends CommonInvoice
|
|||||||
/**
|
/**
|
||||||
* Update invoice line with percentage
|
* Update invoice line with percentage
|
||||||
*
|
*
|
||||||
* @param FactureLigne $line Invoice line
|
* @param FactureLigne $line Invoice line
|
||||||
* @param int $percent Percentage
|
* @param int $percent Percentage
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function update_percent($line, $percent)
|
function update_percent($line, $percent)
|
||||||
{
|
{
|
||||||
|
global $mysoc;
|
||||||
|
|
||||||
include_once(DOL_DOCUMENT_ROOT . '/core/lib/price.lib.php');
|
include_once(DOL_DOCUMENT_ROOT . '/core/lib/price.lib.php');
|
||||||
|
|
||||||
// Cap percentages to 100
|
// Cap percentages to 100
|
||||||
if ($percent > 100) $percent = 100;
|
if ($percent > 100) $percent = 100;
|
||||||
$line->situation_percent = $percent;
|
$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_ht = $tabprice[0];
|
||||||
$line->total_tva = $tabprice[1];
|
$line->total_tva = $tabprice[1];
|
||||||
$line->total_ttc = $tabprice[2];
|
$line->total_ttc = $tabprice[2];
|
||||||
|
|||||||
@ -329,10 +329,11 @@ if (empty($reshook))
|
|||||||
$result=$mailfile->sendfile();
|
$result=$mailfile->sendfile();
|
||||||
if ($result)
|
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;
|
$error=0;
|
||||||
|
|
||||||
|
// Insert logs into agenda
|
||||||
foreach($listofqualifiedinvoice as $invid => $object)
|
foreach($listofqualifiedinvoice as $invid => $object)
|
||||||
{
|
{
|
||||||
$actiontypecode='AC_FAC';
|
$actiontypecode='AC_FAC';
|
||||||
@ -357,16 +358,13 @@ if (empty($reshook))
|
|||||||
include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php");
|
include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php");
|
||||||
$interface=new Interfaces($db);
|
$interface=new Interfaces($db);
|
||||||
$result=$interface->run_triggers('BILL_SENTBYMAIL',$object,$user,$langs,$conf);
|
$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
|
// Fin appel triggers
|
||||||
|
|
||||||
if (! $error)
|
if ($error)
|
||||||
{
|
{
|
||||||
$resaction.=$langs->trans("MailSent").': '.$sendto."<br>\n";
|
setEventMessages($db->lasterror(), $errors, 'errors');
|
||||||
}
|
dol_syslog("Error in trigger BILL_SENTBYMAIL ".$db->lasterror(), LOG_ERR);
|
||||||
else
|
|
||||||
{
|
|
||||||
dol_print_error($db);
|
|
||||||
}
|
}
|
||||||
$nbsent++;
|
$nbsent++;
|
||||||
}
|
}
|
||||||
@ -615,7 +613,7 @@ if ($resql)
|
|||||||
include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php';
|
||||||
$formmail = new FormMail($db);
|
$formmail = new FormMail($db);
|
||||||
|
|
||||||
dol_fiche_head(null, '', $langs->trans("SendByMail"));
|
dol_fiche_head(null, '', '');
|
||||||
|
|
||||||
$topicmail="SendBillRef";
|
$topicmail="SendBillRef";
|
||||||
$modelmail="facture_send";
|
$modelmail="facture_send";
|
||||||
@ -660,7 +658,7 @@ if ($resql)
|
|||||||
$formmail->withtocc=1;
|
$formmail->withtocc=1;
|
||||||
$formmail->withtoccc=$conf->global->MAIN_EMAIL_USECCC;
|
$formmail->withtoccc=$conf->global->MAIN_EMAIL_USECCC;
|
||||||
$formmail->withtopic=$langs->transnoentities($topicmail, '__REF__', '__REFCLIENT__');
|
$formmail->withtopic=$langs->transnoentities($topicmail, '__REF__', '__REFCLIENT__');
|
||||||
$formmail->withfile=$langs->trans("EachInvoiceWillBeAttachedToEmail");
|
$formmail->withfile=$langs->trans("OnlyPDFattachmentSupported");
|
||||||
$formmail->withbody=1;
|
$formmail->withbody=1;
|
||||||
$formmail->withdeliveryreceipt=1;
|
$formmail->withdeliveryreceipt=1;
|
||||||
$formmail->withcancel=1;
|
$formmail->withcancel=1;
|
||||||
|
|||||||
@ -732,7 +732,7 @@ if ($resql)
|
|||||||
$formmail->withtocc=1;
|
$formmail->withtocc=1;
|
||||||
$formmail->withtoccc=$conf->global->MAIN_EMAIL_USECCC;
|
$formmail->withtoccc=$conf->global->MAIN_EMAIL_USECCC;
|
||||||
$formmail->withtopic=$langs->transnoentities($topicmail, '__REF__', '__REFCLIENT__');
|
$formmail->withtopic=$langs->transnoentities($topicmail, '__REF__', '__REFCLIENT__');
|
||||||
$formmail->withfile=$langs->trans("EachInvoiceWillBeAttachedToEmail");
|
$formmail->withfile=$langs->trans("OnlyPDFattachmentSupported");
|
||||||
$formmail->withbody=1;
|
$formmail->withbody=1;
|
||||||
$formmail->withdeliveryreceipt=1;
|
$formmail->withdeliveryreceipt=1;
|
||||||
$formmail->withcancel=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 string $action Type of action
|
||||||
* @param int $id Id of object
|
* @param int $id Id of object
|
||||||
|
|||||||
@ -36,7 +36,9 @@ $langs->load("companies");
|
|||||||
$langs->load("suppliers");
|
$langs->load("suppliers");
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
|
$id = GETPOST('id','int');
|
||||||
$contactid = GETPOST('id','int');
|
$contactid = GETPOST('id','int');
|
||||||
|
$ref = ''; // There is no ref for contacts
|
||||||
if ($user->societe_id) $socid=$user->societe_id;
|
if ($user->societe_id) $socid=$user->societe_id;
|
||||||
$result = restrictedArea($user, 'contact', $contactid,'');
|
$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
|
* Actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$parameters=array();
|
$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 ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
||||||
|
|
||||||
include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
|
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 Christophe Battarel <christophe.battarel@altairis.fr>
|
||||||
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
|
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
|
||||||
* Copyright (C) 2014-2015 Marcos García <marcosgdf@gmail.com>
|
* 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
|
* 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
|
* 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)
|
if (! $error)
|
||||||
{
|
{
|
||||||
// Delete contratdet_log
|
// Delete contratdet_log
|
||||||
|
|||||||
@ -264,6 +264,7 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Send mail
|
// Send mail
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php';
|
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);
|
$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)
|
if ($result)
|
||||||
{
|
{
|
||||||
$error=0;
|
$error=0;
|
||||||
|
|
||||||
|
// FIXME This must be moved into a trigger for action $trigger_name
|
||||||
if (! empty($conf->dolimail->enabled))
|
if (! empty($conf->dolimail->enabled))
|
||||||
{
|
{
|
||||||
$mid = (GETPOST('mid','int') ? GETPOST('mid','int') : 0); // Original mail id is set ?
|
$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');
|
else setEventMessages($langs->trans("MailMovedToImapFolder_Warning",$folder), null, 'warnings');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Initialisation of datas
|
// Initialisation of datas
|
||||||
$object->socid = $sendtosocid; // To link to a company
|
$object->socid = $sendtosocid; // To link to a company
|
||||||
$object->sendtoid = $sendtoid; // To link to a contact/address
|
$object->sendtoid = $sendtoid; // To link to a contact/address
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -17,15 +17,17 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* \file htdocs/core/ajax/row.php
|
* \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('NOREQUIREMENU')) define('NOREQUIREMENU','1');
|
||||||
if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1');
|
if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1');
|
||||||
if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1');
|
if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1');
|
||||||
if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC','1');
|
if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC','1');
|
||||||
if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1');
|
if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1');
|
||||||
|
if (! defined('NOREQUIREHOOK')) define('NOREQUIREHOOK','1'); // Disable "main.inc.php" hooks
|
||||||
|
|
||||||
require '../../main.inc.php';
|
require '../../main.inc.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/genericobject.class.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);
|
$row->line_ajaxorder($newrowordertab);
|
||||||
|
|
||||||
// Reorder line to have position of chilren lines sharing same counter than parent lines
|
// 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')))
|
if (in_array($fk_element,array('fk_facture','fk_propal','fk_commande')))
|
||||||
{
|
{
|
||||||
$result=$row->line_order(true);
|
$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 string $action Action string
|
||||||
* @param int $id Object id
|
* @param int $id Object id
|
||||||
* @return mixed Return return code of doActions of canvas
|
* @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
|
* @see http://wiki.dolibarr.org/index.php/Canvas_development
|
||||||
*/
|
*/
|
||||||
function doActions(&$action='view', $id=0)
|
function doActions(&$action='view', $id=0)
|
||||||
|
|||||||
@ -4243,7 +4243,7 @@ class Form
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Day
|
// 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)
|
if ($emptydate || $set_time == -1)
|
||||||
{
|
{
|
||||||
@ -4257,7 +4257,7 @@ class Form
|
|||||||
|
|
||||||
$retstring.="</select>";
|
$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)
|
if ($emptydate || $set_time == -1)
|
||||||
{
|
{
|
||||||
$retstring.='<option value="0" selected> </option>';
|
$retstring.='<option value="0" selected> </option>';
|
||||||
@ -4275,11 +4275,11 @@ class Form
|
|||||||
// Year
|
// Year
|
||||||
if ($emptydate || $set_time == -1)
|
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
|
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++)
|
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);
|
$out.= $langs->trans('SelectMailModel').': '.$this->selectarray('modelmailselected', $modelmail_array, 0, 1);
|
||||||
if ($user->admin) $out.= info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1);
|
if ($user->admin) $out.= info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1);
|
||||||
$out.= ' ';
|
$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.= ' ';
|
||||||
$out.= '</div>';
|
$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";
|
$out.= '<table class="border" width="100%">'."\n";
|
||||||
|
|||||||
@ -237,9 +237,9 @@ abstract class DoliDB implements Database
|
|||||||
|
|
||||||
$return.=preg_replace('/[^0-9a-z_\.]/i','',$val);
|
$return.=preg_replace('/[^0-9a-z_\.]/i','',$val);
|
||||||
// Only ASC and DESC values are valid SQL
|
// Only ASC and DESC values are valid SQL
|
||||||
if ($sortorder === 'ASC') {
|
if (strtoupper($sortorder) === 'ASC') {
|
||||||
$return .= ' ASC';
|
$return .= ' ASC';
|
||||||
} elseif ($sortorder === 'DESC') {
|
} elseif (strtoupper($sortorder) === 'DESC') {
|
||||||
$return .= ' 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
|
* 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
|
* @var DoliDb Database handler
|
||||||
@ -432,7 +432,7 @@ class DolibarrModules // Can not be abstract, because we need to insta
|
|||||||
}
|
}
|
||||||
else
|
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))
|
if (is_array($this->langfiles))
|
||||||
{
|
{
|
||||||
foreach($this->langfiles as $val)
|
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];
|
$langstring="ExportDataset_".$this->export_code[$r];
|
||||||
if ($langs->trans($langstring) == $langstring)
|
if ($langs->trans($langstring) == $langstring)
|
||||||
{
|
{
|
||||||
// Traduction non trouvee
|
// Translation not found
|
||||||
return $langs->trans($this->export_label[$r]);
|
return $langs->trans($this->export_label[$r]);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Traduction trouvee
|
// Translation found
|
||||||
return $langs->trans($langstring);
|
return $langs->trans($langstring);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -536,12 +536,12 @@ class DolibarrModules // Can not be abstract, because we need to insta
|
|||||||
//print "x".$langstring;
|
//print "x".$langstring;
|
||||||
if ($langs->trans($langstring) == $langstring)
|
if ($langs->trans($langstring) == $langstring)
|
||||||
{
|
{
|
||||||
// Traduction non trouvee
|
// Translation not found
|
||||||
return $langs->trans($this->import_label[$r]);
|
return $langs->trans($this->import_label[$r]);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Traduction trouvee
|
// Translation found
|
||||||
return $langs->trans($langstring);
|
return $langs->trans($langstring);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1223,7 +1223,7 @@ print $sql;
|
|||||||
$obj=$this->db->fetch_object($resql);
|
$obj=$this->db->fetch_object($resql);
|
||||||
if ($obj !== null && ! empty($obj->value) && ! empty($this->rights))
|
if ($obj !== null && ! empty($obj->value) && ! empty($this->rights))
|
||||||
{
|
{
|
||||||
// Si module actif
|
// If the module is active
|
||||||
foreach ($this->rights as $key => $value)
|
foreach ($this->rights as $key => $value)
|
||||||
{
|
{
|
||||||
$r_id = $this->rights[$key][0];
|
$r_id = $this->rights[$key][0];
|
||||||
|
|||||||
@ -484,7 +484,7 @@ class pdf_einstein extends ModelePDFCommandes
|
|||||||
$this->tva[$vatrate] += $tvaligne;
|
$this->tva[$vatrate] += $tvaligne;
|
||||||
|
|
||||||
// Add line
|
// 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->setPage($pageposafter);
|
||||||
$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));
|
$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);
|
$pdf->MultiCell(30, 3, $object->lines[$i]->qty_shipped, 0, 'C', 0);
|
||||||
|
|
||||||
// Add line
|
// 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->setPage($pageposafter);
|
||||||
$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));
|
$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');
|
$pdf->MultiCell(($this->page_largeur - $this->marge_droite - $this->posxqtytoship), 3, $object->lines[$i]->qty_shipped,'','C');
|
||||||
|
|
||||||
// Add line
|
// 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->setPage($pageposafter);
|
||||||
$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));
|
$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;
|
if ($posYAfterImage > $posYAfterDescription) $nexY=$posYAfterImage;
|
||||||
|
|
||||||
// Add line
|
// 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->setPage($pageposafter);
|
||||||
$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));
|
$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_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_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
|
$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
|
$keyforselect='commande'; $keyforelement='order'; $keyforaliasextra='extra';
|
||||||
$sql="SELECT name, label, type FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'commande' AND entity IN (0, ".$conf->entity.')';
|
include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
|
||||||
$resql=$this->db->query($sql);
|
$keyforselect='commandedet'; $keyforelement='order_line'; $keyforaliasextra='extra2';
|
||||||
if ($resql) // This can fail when class is used on old database (during migration for example)
|
include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
|
||||||
{
|
$keyforselect='product'; $keyforelement='product'; $keyforaliasextra='extra3';
|
||||||
while ($obj=$this->db->fetch_object($resql))
|
include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
|
||||||
{
|
|
||||||
$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
|
|
||||||
$this->export_sql_start[$r]='SELECT DISTINCT ';
|
$this->export_sql_start[$r]='SELECT DISTINCT ';
|
||||||
$this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'societe as s';
|
$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] .=' 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] .=' '.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 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] .=' 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] .=' , '.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 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] .=' WHERE c.fk_soc = s.rowid AND c.rowid = cd.fk_commande';
|
||||||
$this->export_sql_end[$r] .=' AND c.entity IN ('.getEntity('commande',1).')';
|
$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
|
$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
|
'type'=>'left', // This is a Left menu entry
|
||||||
'titre'=>'CronList',
|
'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.
|
'langs'=>'cron', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
|
||||||
'position'=>200,
|
'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.
|
'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_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_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
|
$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
|
$keyforselect='facture'; $keyforelement='invoice'; $keyforaliasextra='extra';
|
||||||
$sql="SELECT name, label, type, param FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'facture'";
|
include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
|
||||||
$resql=$this->db->query($sql);
|
$keyforselect='facturedet'; $keyforelement='invoice_line'; $keyforaliasextra='extra2';
|
||||||
if ($resql) // This can fail when class is used on old database (during migration for example)
|
include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
|
||||||
{
|
$keyforselect='product'; $keyforelement='product'; $keyforaliasextra='extra3';
|
||||||
while ($obj=$this->db->fetch_object($resql))
|
include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
|
||||||
{
|
|
||||||
$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
|
|
||||||
$this->export_sql_start[$r]='SELECT DISTINCT ';
|
$this->export_sql_start[$r]='SELECT DISTINCT ';
|
||||||
$this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'societe as s';
|
$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,';
|
$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.'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] .=' 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] .=' , '.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 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] .=' WHERE f.fk_soc = s.rowid AND f.rowid = fd.fk_facture';
|
||||||
$this->export_sql_end[$r] .=' AND f.entity IN ('.getEntity('facture',1).')';
|
$this->export_sql_end[$r] .=' AND f.entity IN ('.getEntity('facture',1).')';
|
||||||
$r++;
|
$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_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_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
|
$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
|
$keyforselect='facture'; $keyforelement='invoice'; $keyforaliasextra='extra';
|
||||||
$sql="SELECT name, label, type, param FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'facture'";
|
include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
|
||||||
$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
|
|
||||||
$this->export_sql_start[$r]='SELECT DISTINCT ';
|
$this->export_sql_start[$r]='SELECT DISTINCT ';
|
||||||
$this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'societe as s';
|
$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,';
|
$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_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_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
|
$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
|
$keyforselect='propal'; $keyforelement='propal'; $keyforaliasextra='extra';
|
||||||
$sql="SELECT name, label, type FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'propal' AND entity IN (0, ".$conf->entity.')';
|
include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
|
||||||
$resql=$this->db->query($sql);
|
$keyforselect='propaldet'; $keyforelement='propal_line'; $keyforaliasextra='extra2';
|
||||||
if ($resql) // This can fail when class is used on old database (during migration for example)
|
include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
|
||||||
{
|
$keyforselect='product'; $keyforelement='product'; $keyforaliasextra='extra3';
|
||||||
while ($obj=$this->db->fetch_object($resql))
|
include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
|
||||||
{
|
|
||||||
$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
|
|
||||||
$this->export_sql_start[$r]='SELECT DISTINCT ';
|
$this->export_sql_start[$r]='SELECT DISTINCT ';
|
||||||
$this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'societe as s ';
|
$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] .=' 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] .=' '.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 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] .=' 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] .=', '.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 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] .=' WHERE c.fk_soc = s.rowid AND c.rowid = cd.fk_propal';
|
||||||
$this->export_sql_end[$r] .=' AND c.entity IN ('.getEntity('propal',1).')';
|
$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;
|
if ($posYAfterImage > $posYAfterDescription) $nexY=$posYAfterImage;
|
||||||
|
|
||||||
// Add line
|
// 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->setPage($pageposafter);
|
||||||
$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));
|
$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));
|
||||||
|
|||||||
@ -448,7 +448,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices
|
|||||||
$this->localtax2[$localtax2rate]+=$localtax2ligne;
|
$this->localtax2[$localtax2rate]+=$localtax2ligne;
|
||||||
|
|
||||||
// Add line
|
// 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->setPage($pageposafter);
|
||||||
$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));
|
$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));
|
||||||
|
|||||||
@ -470,7 +470,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
|
|||||||
|
|
||||||
|
|
||||||
// Add line
|
// 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->setPage($pageposafter);
|
||||||
$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));
|
$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 (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=='order_supplier') $permok=$user->rights->fournisseur->commande->creer;
|
||||||
if ($object->element=='invoice_supplier') $permok=$user->rights->fournisseur->facture->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])
|
if (($object->statut == 0 || $extrafields->attribute_alwayseditable[$key])
|
||||||
&& $permok && ($action != 'edit_extras' || GETPOST('attribute') != $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
|
class InterfaceWorkflowManager extends DolibarrTriggers
|
||||||
{
|
{
|
||||||
public $picto = 'paypal@paypal';
|
public $picto = 'technic';
|
||||||
public $family = 'core';
|
public $family = 'core';
|
||||||
public $description = "Triggers of this module allows to manage workflows";
|
public $description = "Triggers of this module allows to manage workflows";
|
||||||
public $version = self::VERSION_DOLIBARR;
|
public $version = self::VERSION_DOLIBARR;
|
||||||
|
|||||||
@ -43,6 +43,11 @@ $action=GETPOST('action','alpha');
|
|||||||
$confirm=GETPOST('confirm','alpha');
|
$confirm=GETPOST('confirm','alpha');
|
||||||
$cancel=GETPOST('cancel');
|
$cancel=GETPOST('cancel');
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Actions
|
||||||
|
*/
|
||||||
|
|
||||||
$object = new Cronjob($db);
|
$object = new Cronjob($db);
|
||||||
if (!empty($id))
|
if (!empty($id))
|
||||||
{
|
{
|
||||||
@ -53,7 +58,7 @@ if (!empty($id))
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!empty($cancel))
|
if (!empty($cancel))
|
||||||
{
|
{
|
||||||
if (!empty($id))
|
if (!empty($id))
|
||||||
{
|
{
|
||||||
@ -61,7 +66,7 @@ if(!empty($cancel))
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Header("Location: ".DOL_URL_ROOT.'/cron/list.php?status=1');
|
Header("Location: ".DOL_URL_ROOT.'/cron/list.php?status=-2');
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -78,7 +83,7 @@ if ($action == 'confirm_delete' && $confirm == "yes" && $user->rights->cron->del
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Header("Location: ".DOL_URL_ROOT.'/cron/list.php?status=1');
|
Header("Location: ".DOL_URL_ROOT.'/cron/list.php?status=-2');
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -312,7 +317,7 @@ if (($action=="create") || ($action=="edit"))
|
|||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
print "<tr><td>";
|
print "<tr><td>";
|
||||||
print $langs->trans('CronHourStart')."</td><td>";
|
print $langs->trans('CronDtStart')."</td><td>";
|
||||||
if(!empty($object->datestart))
|
if(!empty($object->datestart))
|
||||||
{
|
{
|
||||||
$form->select_date($object->datestart,'datestart',1,1,'',"cronform");
|
$form->select_date($object->datestart,'datestart',1,1,'',"cronform");
|
||||||
@ -513,15 +518,22 @@ else
|
|||||||
print "</td></tr>";
|
print "</td></tr>";
|
||||||
|
|
||||||
print "<tr><td>";
|
print "<tr><td>";
|
||||||
print $langs->trans('CronHourStart')."</td><td>";
|
print $langs->trans('CronDtStart')."</td><td>";
|
||||||
if(!empty($object->datestart)) {print dol_print_date($object->datestart,'dayhourtext');} else {print $langs->trans('CronNone');}
|
if(!empty($object->datestart)) {print dol_print_date($object->datestart,'dayhourtext');}
|
||||||
print "</td></tr>";
|
print "</td></tr>";
|
||||||
|
|
||||||
print "<tr><td>";
|
print "<tr><td>";
|
||||||
print $langs->trans('CronDtEnd')."</td><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 "</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 "<tr><td>";
|
||||||
print $langs->trans('CronPriority')."</td>";
|
print $langs->trans('CronPriority')."</td>";
|
||||||
print "<td>".$object->priority;
|
print "<td>".$object->priority;
|
||||||
@ -586,23 +598,17 @@ else
|
|||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
|
|
||||||
print '<table class="border" width="100%">';
|
print '<table class="border" width="100%">';
|
||||||
|
|
||||||
print '<tr><td width="30%">';
|
print '<tr><td width="30%">';
|
||||||
print $langs->trans('CronDtLastLaunch')."</td><td>";
|
print $langs->trans('CronDtLastLaunch')."</td><td>";
|
||||||
if(!empty($object->datelastrun)) {print dol_print_date($object->datelastrun,'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('CronDtNextLaunch');
|
|
||||||
print ' ('.$langs->trans('CronFrom').')';
|
|
||||||
print "</td><td>";
|
|
||||||
if(!empty($object->datenextrun)) {print dol_print_date($object->datenextrun,'dayhourtext');} else {print $langs->trans('CronNone');}
|
|
||||||
print "</td></tr>";
|
print "</td></tr>";
|
||||||
|
|
||||||
print '<tr><td>';
|
print '<tr><td>';
|
||||||
print $langs->trans('CronDtLastResult')."</td><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 "</td></tr>";
|
||||||
|
|
||||||
print '<tr><td>';
|
print '<tr><td>';
|
||||||
|
|||||||
@ -521,9 +521,6 @@ class Cronjob extends CommonObject
|
|||||||
|
|
||||||
// Check parameters
|
// Check parameters
|
||||||
// Put here code to add a control on parameters values
|
// Put here code to add a control on parameters values
|
||||||
if (empty($this->status)) {
|
|
||||||
$this->dateend=dol_now();
|
|
||||||
}
|
|
||||||
if (dol_strlen($this->datestart)==0) {
|
if (dol_strlen($this->datestart)==0) {
|
||||||
$this->errors[]=$langs->trans('CronFieldMandatory',$langs->trans('CronDtStart'));
|
$this->errors[]=$langs->trans('CronFieldMandatory',$langs->trans('CronDtStart'));
|
||||||
$error++;
|
$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
|
* @param string $userlogin User login
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
@ -843,7 +842,8 @@ class Cronjob extends CommonObject
|
|||||||
|
|
||||||
$langs->load('cron');
|
$langs->load('cron');
|
||||||
|
|
||||||
if (empty($userlogin)) {
|
if (empty($userlogin))
|
||||||
|
{
|
||||||
$this->error="User login is mandatory";
|
$this->error="User login is mandatory";
|
||||||
dol_syslog(get_class($this)."::run_jobs ".$this->error, LOG_ERR);
|
dol_syslog(get_class($this)."::run_jobs ".$this->error, LOG_ERR);
|
||||||
return -1;
|
return -1;
|
||||||
@ -891,7 +891,7 @@ class Cronjob extends CommonObject
|
|||||||
$this->datelastrun=$now;
|
$this->datelastrun=$now;
|
||||||
$this->lastoutput='';
|
$this->lastoutput='';
|
||||||
$this->lastresult='';
|
$this->lastresult='';
|
||||||
$this->nbrun=$this->nbrun+1;
|
$this->nbrun=$this->nbrun + 1;
|
||||||
$result = $this->update($user);
|
$result = $this->update($user);
|
||||||
if ($result<0) {
|
if ($result<0) {
|
||||||
dol_syslog(get_class($this)."::run_jobs ".$this->error, LOG_ERR);
|
dol_syslog(get_class($this)."::run_jobs ".$this->error, LOG_ERR);
|
||||||
@ -1055,23 +1055,28 @@ class Cronjob extends CommonObject
|
|||||||
/**
|
/**
|
||||||
* Reprogram a job
|
* Reprogram a job
|
||||||
*
|
*
|
||||||
* @param string $userlogin User login
|
* @param string $userlogin User login
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
function reprogram_jobs($userlogin)
|
function reprogram_jobs($userlogin)
|
||||||
{
|
{
|
||||||
dol_syslog(get_class($this)."::reprogram_jobs userlogin:$userlogin", LOG_DEBUG);
|
dol_syslog(get_class($this)."::reprogram_jobs userlogin:$userlogin", LOG_DEBUG);
|
||||||
|
|
||||||
|
$now = dol_now();
|
||||||
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php';
|
||||||
$user=new User($this->db);
|
$user=new User($this->db);
|
||||||
$result=$user->fetch('',$userlogin);
|
$result=$user->fetch('',$userlogin);
|
||||||
if ($result<0) {
|
if ($result<0)
|
||||||
|
{
|
||||||
$this->error="User Error:".$user->error;
|
$this->error="User Error:".$user->error;
|
||||||
dol_syslog(get_class($this)."::reprogram_jobs ".$this->error, LOG_ERR);
|
dol_syslog(get_class($this)."::reprogram_jobs ".$this->error, LOG_ERR);
|
||||||
return -1;
|
return -1;
|
||||||
}else {
|
}
|
||||||
if (empty($user->id)) {
|
else
|
||||||
|
{
|
||||||
|
if (empty($user->id))
|
||||||
|
{
|
||||||
$this->error=" User user login:".$userlogin." do not exists";
|
$this->error=" User user login:".$userlogin." do not exists";
|
||||||
dol_syslog(get_class($this)."::reprogram_jobs ".$this->error, LOG_ERR);
|
dol_syslog(get_class($this)."::reprogram_jobs ".$this->error, LOG_ERR);
|
||||||
return -1;
|
return -1;
|
||||||
@ -1080,17 +1085,41 @@ class Cronjob extends CommonObject
|
|||||||
|
|
||||||
dol_syslog(get_class($this)."::reprogram_jobs ", LOG_DEBUG);
|
dol_syslog(get_class($this)."::reprogram_jobs ", LOG_DEBUG);
|
||||||
|
|
||||||
if (empty($this->datenextrun)) {
|
|
||||||
$this->datenextrun=dol_now()+$this->frequency;
|
if (empty($this->datenextrun))
|
||||||
} else {
|
{
|
||||||
if ($this->datenextrun<dol_now()) {
|
$this->datenextrun = $now + $this->frequency;
|
||||||
$this->datenextrun=dol_now()+$this->frequency;
|
}
|
||||||
} else {
|
else
|
||||||
$this->datenextrun=$this->datenextrun+$this->frequency;
|
{
|
||||||
|
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);
|
$result = $this->update($user);
|
||||||
if ($result<0) {
|
if ($result<0)
|
||||||
|
{
|
||||||
dol_syslog(get_class($this)."::reprogram_jobs ".$this->error, LOG_ERR);
|
dol_syslog(get_class($this)."::reprogram_jobs ".$this->error, LOG_ERR);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -47,6 +47,7 @@ $sortorder=GETPOST('sortorder','alpha');
|
|||||||
$sortfield=GETPOST('sortfield','alpha');
|
$sortfield=GETPOST('sortfield','alpha');
|
||||||
$page=GETPOST('page','int');
|
$page=GETPOST('page','int');
|
||||||
$status=GETPOST('status','int');
|
$status=GETPOST('status','int');
|
||||||
|
if ($status == '') $status=-2;
|
||||||
|
|
||||||
//Search criteria
|
//Search criteria
|
||||||
$search_label=GETPOST("search_label",'alpha');
|
$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;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -131,22 +132,6 @@ $pagetitle=$langs->trans("CronList");
|
|||||||
|
|
||||||
llxHeader('',$pagetitle);
|
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
|
// list of jobs created
|
||||||
$object = new Cronjob($db);
|
$object = new Cronjob($db);
|
||||||
$result=$object->fetch_all($sortorder, $sortfield, $limit, $offset, $status, $filter);
|
$result=$object->fetch_all($sortorder, $sortfield, $limit, $offset, $status, $filter);
|
||||||
@ -154,29 +139,50 @@ if ($result < 0)
|
|||||||
{
|
{
|
||||||
setEventMessages($object->error, $object->errors, 'errors');
|
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>";
|
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 '<form method="GET" action="'.$url_form.'" name="search_form">'."\n";
|
||||||
print '<input type="hidden" name="status" value="'.$status.'" >';
|
print '<input type="hidden" name="status" value="'.$status.'" >';
|
||||||
|
|
||||||
print '<table width="100%" class="noborder">';
|
print '<table width="100%" class="noborder">';
|
||||||
print '<tr class="liste_titre">';
|
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","",$param,'',$sortfield,$sortorder);
|
||||||
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","",$param,'',$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"),'','',"",$param,'',$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","",$param,'align="center"',$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","",$param,'align="center"',$sortfield,$sortorder);
|
||||||
print_liste_field_titre($langs->trans("CronDtEnd"),$_SERVER["PHP_SELF"],"t.dateend","",$arg_url,'',$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("CronDtLastLaunch"),$_SERVER["PHP_SELF"],"t.datelastrun","",$arg_url,'',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("CronFrequency"),'',"","",$param,'',$sortfield,$sortorder);
|
||||||
print_liste_field_titre($langs->trans("CronDtNextLaunch"),$_SERVER["PHP_SELF"],"t.datenextrun","",$arg_url,'',$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("CronFrequency"),'',"","",$arg_url,'',$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("CronNbRun"),$_SERVER["PHP_SELF"],"t.nbrun","",$arg_url,'',$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","",$arg_url,'',$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","",$arg_url,'',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("CronLastOutput"),$_SERVER["PHP_SELF"],"t.lastoutput","",$param,'',$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("Status"),$_SERVER["PHP_SELF"],"t.status","",$param,'align="center"',$sortfield,$sortorder);
|
||||||
print_liste_field_titre('');
|
print_liste_field_titre('');
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
@ -194,8 +200,9 @@ print '<td> </td>';
|
|||||||
print '<td> </td>';
|
print '<td> </td>';
|
||||||
print '<td> </td>';
|
print '<td> </td>';
|
||||||
print '<td> </td>';
|
print '<td> </td>';
|
||||||
|
print '<td> </td>';
|
||||||
print '<td class="liste_titre" align="center">';
|
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 '</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 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")).'">';
|
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>';
|
print '</tr>';
|
||||||
|
|
||||||
|
|
||||||
if (count($object->lines) > 0)
|
if ($num > 0)
|
||||||
{
|
{
|
||||||
// Loop on each active job
|
// Loop on each job
|
||||||
$style='pair';
|
$style='pair';
|
||||||
foreach($object->lines as $line)
|
foreach($object->lines as $line)
|
||||||
{
|
{
|
||||||
@ -229,7 +236,7 @@ if (count($object->lines) > 0)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print $langs->trans('CronNone');
|
//print $langs->trans('CronNone');
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
@ -252,20 +259,16 @@ if (count($object->lines) > 0)
|
|||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
print '<td>';
|
print '<td class="center">';
|
||||||
if(!empty($line->datestart)) {print dol_print_date($line->datestart,'dayhour');} else {print $langs->trans('CronNone');}
|
if(!empty($line->datestart)) {print dol_print_date($line->datestart,'dayhour');}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
print '<td>';
|
print '<td class="center">';
|
||||||
if(!empty($line->dateend)) {print dol_print_date($line->dateend,'dayhour');} else {print $langs->trans('CronNone');}
|
if(!empty($line->dateend)) {print dol_print_date($line->dateend,'dayhour');}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
print '<td>';
|
print '<td class="center">';
|
||||||
if(!empty($line->datelastrun)) {print dol_print_date($line->datelastrun,'dayhour');} else {print $langs->trans('CronNone');}
|
if(!empty($line->datenextrun)) {print dol_print_date($line->datenextrun,'dayhour');}
|
||||||
print '</td>';
|
|
||||||
|
|
||||||
print '<td>';
|
|
||||||
if(!empty($line->datenextrun)) {print dol_print_date($line->datenextrun,'dayhour');} else {print $langs->trans('CronNone');}
|
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
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');
|
if($line->unitfrequency == "604800") print $langs->trans('CronEach')." ".($line->frequency/$line->unitfrequency)." ".$langs->trans('Weeks');
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
print '<td>';
|
print '<td align="right">';
|
||||||
if(!empty($line->nbrun)) {print $line->nbrun;} else {print '0';}
|
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>';
|
||||||
|
|
||||||
print '<td>';
|
print '<td>';
|
||||||
if(!empty($line->lastresult)) {print dol_trunc($line->lastresult);} else {print $langs->trans('CronNone');}
|
if(!empty($line->lastoutput)) {print dol_trunc(nl2br($line->lastoutput),100);}
|
||||||
print '</td>';
|
|
||||||
|
|
||||||
print '<td>';
|
|
||||||
if(!empty($line->lastoutput)) {print dol_trunc(nl2br($line->lastoutput),100);} else {print $langs->trans('CronNone');}
|
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
// Status
|
// Status
|
||||||
print '<td align="center">';
|
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>';
|
||||||
|
|
||||||
print '<td align="right" class="nowrap">';
|
print '<td align="right" class="nowrap">';
|
||||||
|
|||||||
@ -8,6 +8,7 @@
|
|||||||
* Copyright (C) 2013 Marcos García <marcosgdf@gmail.com>
|
* Copyright (C) 2013 Marcos García <marcosgdf@gmail.com>
|
||||||
* Copyright (C) 2014 Cedric GROSS <c.gross@kreiz-it.fr>
|
* Copyright (C) 2014 Cedric GROSS <c.gross@kreiz-it.fr>
|
||||||
* Copyright (C) 2014 Francis Appels <francis.appels@yahoo.com>
|
* 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
|
* 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
|
* 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/lib/sendings.lib.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/modules/expedition/modules_expedition.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/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->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->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->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));
|
$hideref = (GETPOST('hideref','int') ? GETPOST('hideref','int') : (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_REF) ? 1 : 0));
|
||||||
|
|
||||||
$object = new Expedition($db);
|
$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
|
// Load object. Make an object->fetch
|
||||||
include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once
|
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'));
|
$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();
|
$parameters=array();
|
||||||
$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // 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 ($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
|
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;
|
$error=0;
|
||||||
|
$predef='';
|
||||||
|
|
||||||
$db->begin();
|
$db->begin();
|
||||||
|
|
||||||
@ -157,7 +196,8 @@ if (empty($reshook))
|
|||||||
$object->location_incoterms = GETPOST('location_incoterms', 'alpha');
|
$object->location_incoterms = GETPOST('location_incoterms', 'alpha');
|
||||||
|
|
||||||
$batch_line = array();
|
$batch_line = array();
|
||||||
|
$array_options=array();
|
||||||
|
|
||||||
$num=count($objectsrc->lines);
|
$num=count($objectsrc->lines);
|
||||||
$totalqty=0;
|
$totalqty=0;
|
||||||
|
|
||||||
@ -201,8 +241,20 @@ if (empty($reshook))
|
|||||||
//shipment line for product with no batch management
|
//shipment line for product with no batch management
|
||||||
if (GETPOST($qty,'int') > 0) $totalqty+=GETPOST($qty,'int');
|
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]);
|
//var_dump($batch_line[2]);
|
||||||
|
|
||||||
if ($totalqty > 0) // There is at least one thing to ship
|
if ($totalqty > 0) // There is at least one thing to ship
|
||||||
@ -220,8 +272,8 @@ if (empty($reshook))
|
|||||||
$idl = "idl".$i;
|
$idl = "idl".$i;
|
||||||
$entrepot_id = is_numeric(GETPOST($ent,'int'))?GETPOST($ent,'int'):GETPOST('entrepot_id','int');
|
$entrepot_id = is_numeric(GETPOST($ent,'int'))?GETPOST($ent,'int'):GETPOST('entrepot_id','int');
|
||||||
if ($entrepot_id < 0) $entrepot_id='';
|
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)
|
if ($ret < 0)
|
||||||
{
|
{
|
||||||
setEventMessages($object->error, $object->errors, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
@ -234,7 +286,7 @@ if (empty($reshook))
|
|||||||
// batch mode
|
// batch mode
|
||||||
if ($batch_line[$i]['qty']>0)
|
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)
|
if ($ret < 0)
|
||||||
{
|
{
|
||||||
setEventMessages($object->error, $object->errors, 'errors');
|
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)
|
if (! $error)
|
||||||
{
|
{
|
||||||
$ret=$object->create($user); // This create shipment (like Odoo picking) and line of shipments. Stock movement will when validating shipment.
|
$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 '<td colspan="3">';
|
||||||
print '<input name="tracking_number" size="20" value="'.GETPOST('tracking_number','alpha').'">';
|
print '<input name="tracking_number" size="20" value="'.GETPOST('tracking_number','alpha').'">';
|
||||||
print "</td></tr>\n";
|
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
|
// Incoterms
|
||||||
if (!empty($conf->incoterm->enabled))
|
if (!empty($conf->incoterm->enabled))
|
||||||
@ -621,17 +685,13 @@ if ($action == 'create')
|
|||||||
$liste = ModelePdfExpedition::liste_modeles($db);
|
$liste = ModelePdfExpedition::liste_modeles($db);
|
||||||
print $form->selectarray('model', $liste, $conf->global->EXPEDITION_ADDON_PDF);
|
print $form->selectarray('model', $liste, $conf->global->EXPEDITION_ADDON_PDF);
|
||||||
print "</td></tr>\n";
|
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>";
|
print "</table>";
|
||||||
|
|
||||||
dol_fiche_end();
|
dol_fiche_end();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Lignes de commandes
|
* Expedition Lines
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$numAsked = count($object->lines);
|
$numAsked = count($object->lines);
|
||||||
@ -895,6 +955,17 @@ if ($action == 'create')
|
|||||||
print img_warning().' '.$langs->trans("NoProductToShipFoundIntoStock", $staticwarehouse->libelle);
|
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++;
|
$indiceAsked++;
|
||||||
}
|
}
|
||||||
@ -934,6 +1005,8 @@ else if ($id || $ref)
|
|||||||
|
|
||||||
$soc = new Societe($db);
|
$soc = new Societe($db);
|
||||||
$soc->fetch($object->socid);
|
$soc->fetch($object->socid);
|
||||||
|
|
||||||
|
$res = $object->fetch_optionals($object->id, $extralabels);
|
||||||
|
|
||||||
$head=shipping_prepare_head($object);
|
$head=shipping_prepare_head($object);
|
||||||
dol_fiche_head($head, 'shipping', $langs->trans("Shipment"), 0, 'sending');
|
dol_fiche_head($head, 'shipping', $langs->trans("Shipment"), 0, 'sending');
|
||||||
@ -1252,9 +1325,9 @@ else if ($id || $ref)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Other attributes
|
// Other attributes
|
||||||
$parameters=array('colspan' => ' colspan="3"');
|
$cols = 3;
|
||||||
$reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook
|
include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php';
|
||||||
|
|
||||||
print "</table>\n";
|
print "</table>\n";
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1437,6 +1510,16 @@ else if ($id || $ref)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
print "</tr>";
|
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;
|
$var=!$var;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,6 +8,7 @@
|
|||||||
* Copyright (C) 2014 Cedric GROSS <c.gross@kreiz-it.fr>
|
* Copyright (C) 2014 Cedric GROSS <c.gross@kreiz-it.fr>
|
||||||
* Copyright (C) 2014-2015 Marcos García <marcosgdf@gmail.com>
|
* Copyright (C) 2014-2015 Marcos García <marcosgdf@gmail.com>
|
||||||
* Copyright (C) 2014-2015 Francis Appels <francis.appels@yahoo.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
|
* 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
|
* 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/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->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->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';
|
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 $element="shipping";
|
||||||
public $fk_element="fk_expedition";
|
public $fk_element="fk_expedition";
|
||||||
public $table_element="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
|
protected $ismultientitymanaged = 1; // 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
|
||||||
|
|
||||||
var $socid;
|
var $socid;
|
||||||
@ -167,11 +170,12 @@ class Expedition extends CommonObject
|
|||||||
* Create expedition en base
|
* Create expedition en base
|
||||||
*
|
*
|
||||||
* @param User $user Objet du user qui cree
|
* @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
|
* @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();
|
$now=dol_now();
|
||||||
|
|
||||||
@ -255,14 +259,14 @@ class Expedition extends CommonObject
|
|||||||
{
|
{
|
||||||
if (! isset($this->lines[$i]->detail_batch))
|
if (! isset($this->lines[$i]->detail_batch))
|
||||||
{ // no batch management
|
{ // 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++;
|
$error++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ // with batch management
|
{ // 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++;
|
$error++;
|
||||||
}
|
}
|
||||||
@ -284,8 +288,26 @@ class Expedition extends CommonObject
|
|||||||
$error++;
|
$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
|
// Call trigger
|
||||||
$result=$this->call_trigger('SHIPPING_CREATE',$user);
|
$result=$this->call_trigger('SHIPPING_CREATE',$user);
|
||||||
@ -340,10 +362,12 @@ class Expedition extends CommonObject
|
|||||||
* @param int $entrepot_id Id of warehouse
|
* @param int $entrepot_id Id of warehouse
|
||||||
* @param int $origin_line_id Id of source line
|
* @param int $origin_line_id Id of source line
|
||||||
* @param int $qty Quantity
|
* @param int $qty Quantity
|
||||||
|
* @param array $array_options extrafields array
|
||||||
* @return int <0 if KO, >0 if OK
|
* @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;
|
$error = 0;
|
||||||
|
|
||||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."expeditiondet (";
|
$sql = "INSERT INTO ".MAIN_DB_PREFIX."expeditiondet (";
|
||||||
@ -363,6 +387,19 @@ class Expedition extends CommonObject
|
|||||||
{
|
{
|
||||||
$error++;
|
$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;
|
if (! $error) return 1;
|
||||||
else return -1;
|
else return -1;
|
||||||
@ -373,13 +410,14 @@ class Expedition extends CommonObject
|
|||||||
* Create the detail (eat-by date) of the expedition line
|
* Create the detail (eat-by date) of the expedition line
|
||||||
*
|
*
|
||||||
* @param object $line_ext full line informations
|
* @param object $line_ext full line informations
|
||||||
|
* @param array $array_options extrafields array
|
||||||
* @return int <0 if KO, >0 if OK
|
* @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;
|
$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++;
|
$error++;
|
||||||
}
|
}
|
||||||
@ -500,6 +538,13 @@ class Expedition extends CommonObject
|
|||||||
* Thirparty
|
* Thirparty
|
||||||
*/
|
*/
|
||||||
$result=$this->fetch_thirdparty();
|
$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
|
* Lines
|
||||||
@ -784,9 +829,10 @@ class Expedition extends CommonObject
|
|||||||
* @param int $entrepot_id Id of warehouse
|
* @param int $entrepot_id Id of warehouse
|
||||||
* @param int $id Id of source line (order line)
|
* @param int $id Id of source line (order line)
|
||||||
* @param int $qty Quantity
|
* @param int $qty Quantity
|
||||||
|
* @param array $array_options extrafields array
|
||||||
* @return int <0 if KO, >0 if OK
|
* @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;
|
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;
|
$this->lines[$num] = $line;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -832,10 +882,13 @@ class Expedition extends CommonObject
|
|||||||
* Add a shipment line with batch record
|
* 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 $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
|
* @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);
|
$num = count($this->lines);
|
||||||
if ($dbatch['qty']>0)
|
if ($dbatch['qty']>0)
|
||||||
{
|
{
|
||||||
@ -872,6 +925,10 @@ class Expedition extends CommonObject
|
|||||||
$line->qty = $dbatch['qty'];
|
$line->qty = $dbatch['qty'];
|
||||||
$line->detail_batch=$tab;
|
$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);
|
//var_dump($line);
|
||||||
$this->lines[$num] = $line;
|
$this->lines[$num] = $line;
|
||||||
}
|
}
|
||||||
@ -1181,7 +1238,7 @@ class Expedition extends CommonObject
|
|||||||
*/
|
*/
|
||||||
function fetch_lines()
|
function fetch_lines()
|
||||||
{
|
{
|
||||||
global $conf;
|
global $conf, $mysoc;
|
||||||
// TODO: recuperer les champs du document associe a part
|
// 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";
|
$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;
|
$line->volume_units = $obj->volume_units;
|
||||||
|
|
||||||
// For invoicing
|
// 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->desc = $obj->description; // We need ->desc because some code into CommonObject use desc (property defined for other elements)
|
||||||
$line->qty = $line->qty_shipped;
|
$line->qty = $line->qty_shipped;
|
||||||
$line->total_ht = $tabprice[0];
|
$line->total_ht = $tabprice[0];
|
||||||
@ -1766,7 +1823,7 @@ class Expedition extends CommonObject
|
|||||||
/**
|
/**
|
||||||
* Classe de gestion des lignes de bons d'expedition
|
* Classe de gestion des lignes de bons d'expedition
|
||||||
*/
|
*/
|
||||||
class ExpeditionLigne
|
class ExpeditionLigne extends CommonObjectLine
|
||||||
{
|
{
|
||||||
var $db;
|
var $db;
|
||||||
|
|
||||||
@ -1791,6 +1848,9 @@ class ExpeditionLigne
|
|||||||
var $total_localtax1; // Total Local tax 1
|
var $total_localtax1; // Total Local tax 1
|
||||||
var $total_localtax2; // Total Local tax 2
|
var $total_localtax2; // Total Local tax 2
|
||||||
|
|
||||||
|
public $element='expeditiondet';
|
||||||
|
public $table_element='expeditiondet';
|
||||||
|
|
||||||
public $fk_origin_line;
|
public $fk_origin_line;
|
||||||
|
|
||||||
// Deprecated
|
// Deprecated
|
||||||
|
|||||||
@ -886,7 +886,8 @@ if ($action == "addline")
|
|||||||
$object_ligne->fk_expensereport = $_POST['fk_expensereport'];
|
$object_ligne->fk_expensereport = $_POST['fk_expensereport'];
|
||||||
|
|
||||||
$type = 0; // TODO What if service ?
|
$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->vatrate = price2num($vatrate);
|
||||||
$object_ligne->total_ttc = $tmp[2];
|
$object_ligne->total_ttc = $tmp[2];
|
||||||
|
|||||||
@ -167,9 +167,9 @@ $tmp='';
|
|||||||
$found=0;
|
$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
|
$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"])) {
|
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 {
|
} 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
|
$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.
|
// 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";
|
//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).
|
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:'');
|
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";
|
//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)
|
// Do we have to change status now ? (If double approval is required and first approval, we keep status to 1 = validated)
|
||||||
$movetoapprovestatus=true;
|
$movetoapprovestatus=true;
|
||||||
|
$comment='';
|
||||||
|
|
||||||
$sql = "UPDATE ".MAIN_DB_PREFIX."commande_fournisseur";
|
$sql = "UPDATE ".MAIN_DB_PREFIX."commande_fournisseur";
|
||||||
$sql.= " SET ref='".$this->db->escape($num)."',";
|
$sql.= " SET ref='".$this->db->escape($num)."',";
|
||||||
if (empty($secondlevel)) // standard or first level approval
|
if (empty($secondlevel)) // standard or first level approval
|
||||||
@ -741,7 +742,11 @@ class CommandeFournisseur extends CommonOrder
|
|||||||
$sql.= " fk_user_approve = ".$user->id;
|
$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($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
|
else // request a second level approval
|
||||||
@ -749,6 +754,7 @@ class CommandeFournisseur extends CommonOrder
|
|||||||
$sql.= " date_approve2='".$this->db->idate($now)."',";
|
$sql.= " date_approve2='".$this->db->idate($now)."',";
|
||||||
$sql.= " fk_user_approve2 = ".$user->id;
|
$sql.= " fk_user_approve2 = ".$user->id;
|
||||||
if (empty($this->user_approve_id)) $movetoapprovestatus=false; // first level approval not done
|
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 double approval is required and first approval, we keep status to 1 = validated
|
||||||
if ($movetoapprovestatus) $sql.= ", fk_statut = 2";
|
if ($movetoapprovestatus) $sql.= ", fk_statut = 2";
|
||||||
@ -758,7 +764,7 @@ class CommandeFournisseur extends CommonOrder
|
|||||||
|
|
||||||
if ($this->db->query($sql))
|
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))
|
if (! empty($conf->global->SUPPLIER_ORDER_AUTOADD_USER_CONTACT))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -2733,10 +2733,24 @@ elseif (! empty($object->id))
|
|||||||
// Reopen
|
// Reopen
|
||||||
if (in_array($object->statut, array(2)))
|
if (in_array($object->statut, array(2)))
|
||||||
{
|
{
|
||||||
if ($user->rights->fournisseur->commande->commander)
|
$buttonshown=0;
|
||||||
{
|
if (! $buttonshown && $user->rights->fournisseur->commande->approuver)
|
||||||
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=reopen">'.$langs->trans("Disapprove").'</a>';
|
{
|
||||||
}
|
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))
|
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);
|
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)
|
-- 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 (1841, 184, '23','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 (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 (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);
|
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)
|
import_key varchar(14)
|
||||||
)ENGINE=innodb;
|
)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 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_categorie (fk_categorie);
|
||||||
ALTER TABLE llx_categorie_project ADD INDEX idx_categorie_project_fk_project (fk_project);
|
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),
|
md5params varchar(32),
|
||||||
module_name varchar(255),
|
module_name varchar(255),
|
||||||
priority integer DEFAULT 0,
|
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
|
datenextrun datetime, -- job will be run if current date higher that this date
|
||||||
datestart datetime, -- before this date no jobs will be run
|
datestart datetime, -- before this date no jobs will be run
|
||||||
dateend datetime, -- after this date, no more 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,
|
lastresult text,
|
||||||
lastoutput text,
|
lastoutput text,
|
||||||
unitfrequency integer NOT NULL DEFAULT 0,
|
unitfrequency integer NOT NULL DEFAULT 0,
|
||||||
frequency 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
|
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)
|
nbrun integer, -- nb of run complete (failed or not)
|
||||||
autodelete integer DEFAULT 0, -- Job can be delete once finished
|
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,
|
status integer NOT NULL DEFAULT 1, -- 0=disabled, 1=enabled, 2=archived
|
||||||
fk_user_author integer DEFAULT NULL,
|
fk_user_author integer DEFAULT NULL,
|
||||||
fk_user_mod 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
|
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)
|
function migrate_price_facture($db,$langs,$conf)
|
||||||
{
|
{
|
||||||
$err=0;
|
$err=0;
|
||||||
|
|
||||||
|
$tmpmysoc=new Societe($db);
|
||||||
|
$tmpmysoc->setMysoc($conf);
|
||||||
|
|
||||||
$db->begin();
|
$db->begin();
|
||||||
|
|
||||||
print '<tr><td colspan="4">';
|
print '<tr><td colspan="4">';
|
||||||
@ -1333,7 +1336,7 @@ function migrate_price_facture($db,$langs,$conf)
|
|||||||
$facligne= new FactureLigne($db);
|
$facligne= new FactureLigne($db);
|
||||||
$facligne->fetch($rowid);
|
$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_ht = $result[0];
|
||||||
$total_tva = $result[1];
|
$total_tva = $result[1];
|
||||||
$total_ttc = $result[2];
|
$total_ttc = $result[2];
|
||||||
@ -1407,6 +1410,9 @@ function migrate_price_facture($db,$langs,$conf)
|
|||||||
*/
|
*/
|
||||||
function migrate_price_propal($db,$langs,$conf)
|
function migrate_price_propal($db,$langs,$conf)
|
||||||
{
|
{
|
||||||
|
$tmpmysoc=new Societe($db);
|
||||||
|
$tmpmysoc->setMysoc($conf);
|
||||||
|
|
||||||
$db->begin();
|
$db->begin();
|
||||||
|
|
||||||
print '<tr><td colspan="4">';
|
print '<tr><td colspan="4">';
|
||||||
@ -1445,7 +1451,7 @@ function migrate_price_propal($db,$langs,$conf)
|
|||||||
$propalligne= new PropaleLigne($db);
|
$propalligne= new PropaleLigne($db);
|
||||||
$propalligne->fetch($rowid);
|
$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_ht = $result[0];
|
||||||
$total_tva = $result[1];
|
$total_tva = $result[1];
|
||||||
$total_ttc = $result[2];
|
$total_ttc = $result[2];
|
||||||
@ -1552,9 +1558,9 @@ function migrate_price_contrat($db,$langs,$conf)
|
|||||||
// On met a jour les 3 nouveaux champs
|
// On met a jour les 3 nouveaux champs
|
||||||
$contratligne= new ContratLigne($db);
|
$contratligne= new ContratLigne($db);
|
||||||
//$contratligne->fetch($rowid); Non requis car le update_total ne met a jour que chp redefinis
|
//$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_ht = $result[0];
|
||||||
$total_tva = $result[1];
|
$total_tva = $result[1];
|
||||||
$total_ttc = $result[2];
|
$total_ttc = $result[2];
|
||||||
@ -1603,6 +1609,9 @@ function migrate_price_commande($db,$langs,$conf)
|
|||||||
{
|
{
|
||||||
$db->begin();
|
$db->begin();
|
||||||
|
|
||||||
|
$tmpmysoc=new Societe($db);
|
||||||
|
$tmpmysoc->setMysoc($conf);
|
||||||
|
|
||||||
print '<tr><td colspan="4">';
|
print '<tr><td colspan="4">';
|
||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
@ -1639,7 +1648,7 @@ function migrate_price_commande($db,$langs,$conf)
|
|||||||
$commandeligne= new OrderLine($db);
|
$commandeligne= new OrderLine($db);
|
||||||
$commandeligne->fetch($rowid);
|
$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_ht = $result[0];
|
||||||
$total_tva = $result[1];
|
$total_tva = $result[1];
|
||||||
$total_ttc = $result[2];
|
$total_ttc = $result[2];
|
||||||
@ -1716,7 +1725,10 @@ function migrate_price_commande($db,$langs,$conf)
|
|||||||
function migrate_price_commande_fournisseur($db,$langs,$conf)
|
function migrate_price_commande_fournisseur($db,$langs,$conf)
|
||||||
{
|
{
|
||||||
$db->begin();
|
$db->begin();
|
||||||
|
|
||||||
|
$tmpmysoc=new Societe($db);
|
||||||
|
$tmpmysoc->setMysoc($conf);
|
||||||
|
|
||||||
print '<tr><td colspan="4">';
|
print '<tr><td colspan="4">';
|
||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
@ -1753,7 +1765,7 @@ function migrate_price_commande_fournisseur($db,$langs,$conf)
|
|||||||
$commandeligne= new CommandeFournisseurLigne($db);
|
$commandeligne= new CommandeFournisseurLigne($db);
|
||||||
$commandeligne->fetch($rowid);
|
$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_ht = $result[0];
|
||||||
$total_tva = $result[1];
|
$total_tva = $result[1];
|
||||||
$total_ttc = $result[2];
|
$total_ttc = $result[2];
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
# Dolibarr language file - en_US - Accounting Expert
|
# Dolibarr language file - en_US - Accounting Expert
|
||||||
CHARSET=UTF-8
|
|
||||||
ACCOUNTING_EXPORT_SEPARATORCSV=Column separator for export file
|
ACCOUNTING_EXPORT_SEPARATORCSV=Column separator for export file
|
||||||
ACCOUNTING_EXPORT_DATE=Date format for export file
|
ACCOUNTING_EXPORT_DATE=Date format for export file
|
||||||
ACCOUNTING_EXPORT_PIECE=Export the number of piece
|
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
|
Accounting=Accounting
|
||||||
Globalparameters=Global parameters
|
Globalparameters=Global parameters
|
||||||
Chartofaccounts=Chart of accounts
|
|
||||||
Fiscalyear=Fiscal years
|
|
||||||
Menuaccount=Accounting accounts
|
Menuaccount=Accounting accounts
|
||||||
Menuthirdpartyaccount=Thirdparty accounts
|
Menuthirdpartyaccount=Thirdparty accounts
|
||||||
MenuTools=Tools
|
MenuTools=Tools
|
||||||
@ -33,23 +30,17 @@ Back=Return
|
|||||||
|
|
||||||
Definechartofaccounts=Define a chart of accounts
|
Definechartofaccounts=Define a chart of accounts
|
||||||
Selectchartofaccounts=Select a chart of accounts
|
Selectchartofaccounts=Select a chart of accounts
|
||||||
Validate=Validate
|
|
||||||
Addanaccount=Add an accounting account
|
Addanaccount=Add an accounting account
|
||||||
AccountAccounting=Accounting account
|
AccountAccounting=Accounting account
|
||||||
AccountAccountingSuggest=Accounting account suggest
|
AccountAccountingSuggest=Accounting account suggest
|
||||||
Ventilation=Breakdown
|
Ventilation=Breakdown
|
||||||
ToDispatch=To dispatch
|
|
||||||
Dispatched=Dispatched
|
|
||||||
|
|
||||||
CustomersVentilation=Breakdown customers
|
CustomersVentilation=Breakdown customers
|
||||||
SuppliersVentilation=Breakdown suppliers
|
SuppliersVentilation=Breakdown suppliers
|
||||||
TradeMargin=Trade margin
|
TradeMargin=Trade margin
|
||||||
Reports=Reports
|
Reports=Reports
|
||||||
ByCustomerInvoice=By invoices customers
|
ByCustomerInvoice=By invoices customers
|
||||||
ByMonth=By Month
|
|
||||||
NewAccount=New accounting account
|
NewAccount=New accounting account
|
||||||
Update=Update
|
|
||||||
List=List
|
|
||||||
Create=Create
|
Create=Create
|
||||||
CreateMvts=Create movement
|
CreateMvts=Create movement
|
||||||
UpdateAccount=Modification of an accounting account
|
UpdateAccount=Modification of an accounting account
|
||||||
@ -61,7 +52,6 @@ AccountBalanceByMonth=Account balance by month
|
|||||||
AccountingVentilation=Breakdown accounting
|
AccountingVentilation=Breakdown accounting
|
||||||
AccountingVentilationSupplier=Breakdown accounting supplier
|
AccountingVentilationSupplier=Breakdown accounting supplier
|
||||||
AccountingVentilationCustomer=Breakdown accounting customer
|
AccountingVentilationCustomer=Breakdown accounting customer
|
||||||
Line=Line
|
|
||||||
|
|
||||||
CAHTF=Total purchase supplier before tax
|
CAHTF=Total purchase supplier before tax
|
||||||
InvoiceLines=Lines of invoice to be ventilated
|
InvoiceLines=Lines of invoice to be ventilated
|
||||||
@ -112,22 +102,19 @@ Docref=Reference
|
|||||||
Numerocompte=Account
|
Numerocompte=Account
|
||||||
Code_tiers=Thirdparty
|
Code_tiers=Thirdparty
|
||||||
Labelcompte=Label account
|
Labelcompte=Label account
|
||||||
Debit=Debit
|
|
||||||
Credit=Credit
|
|
||||||
Amount=Amount
|
|
||||||
Sens=Sens
|
Sens=Sens
|
||||||
Codejournal=Journal
|
Codejournal=Journal
|
||||||
|
|
||||||
DelBookKeeping=Delete the records of the general ledger
|
DelBookKeeping=Delete the records of the general ledger
|
||||||
|
|
||||||
SellsJournal=Sells journal
|
|
||||||
PurchasesJournal=Purchases journal
|
|
||||||
DescSellsJournal=Sells journal
|
DescSellsJournal=Sells journal
|
||||||
DescPurchasesJournal=Purchases journal
|
DescPurchasesJournal=Purchases journal
|
||||||
BankJournal=Bank journal
|
BankJournal=Bank journal
|
||||||
DescBankJournal=Bank journal including all the types of payments other than cash
|
DescBankJournal=Bank journal including all the types of payments other than cash
|
||||||
CashJournal=Cash journal
|
CashJournal=Cash journal
|
||||||
DescCashJournal=Cash journal including the type of payment cash
|
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
|
CashPayment=Cash Payment
|
||||||
|
|
||||||
@ -150,9 +137,6 @@ Pcgversion=Version of the plan
|
|||||||
Pcgtype=Class of account
|
Pcgtype=Class of account
|
||||||
Pcgsubtype=Under class of account
|
Pcgsubtype=Under class of account
|
||||||
Accountparent=Root of the account
|
Accountparent=Root of the account
|
||||||
Active=Statement
|
|
||||||
|
|
||||||
NewFiscalYear=New fiscal year
|
|
||||||
|
|
||||||
DescVentilCustomer=Consult here the annual breakdown accounting of your invoices customers
|
DescVentilCustomer=Consult here the annual breakdown accounting of your invoices customers
|
||||||
TotalVente=Total turnover before tax
|
TotalVente=Total turnover before tax
|
||||||
|
|||||||
@ -105,7 +105,6 @@ DetailPosition=رتب الرقم لتعريف موقع القائمة
|
|||||||
PersonalizedMenusNotSupported=القوائم الشخصية غير مدعومة
|
PersonalizedMenusNotSupported=القوائم الشخصية غير مدعومة
|
||||||
AllMenus=الكل
|
AllMenus=الكل
|
||||||
NotConfigured=النموذج غير مهيء
|
NotConfigured=النموذج غير مهيء
|
||||||
Setup=الإعداد
|
|
||||||
Activation=التفعيل
|
Activation=التفعيل
|
||||||
Active=نشطة
|
Active=نشطة
|
||||||
SetupShort=الإعداد
|
SetupShort=الإعداد
|
||||||
@ -193,15 +192,12 @@ ExportOptions=خيارات التصدير
|
|||||||
AddDropDatabase=أمر إضافة, حذف قاعدة بيانات
|
AddDropDatabase=أمر إضافة, حذف قاعدة بيانات
|
||||||
AddDropTable=أمر إضافة حذف الجدول
|
AddDropTable=أمر إضافة حذف الجدول
|
||||||
ExportStructure=البنية
|
ExportStructure=البنية
|
||||||
Datas=البيانات
|
|
||||||
NameColumn=اسم الأعمدة
|
NameColumn=اسم الأعمدة
|
||||||
ExtendedInsert=الإضافة الممددة
|
ExtendedInsert=الإضافة الممددة
|
||||||
NoLockBeforeInsert=لا يوجد أوامر قفل حول الإضافة
|
NoLockBeforeInsert=لا يوجد أوامر قفل حول الإضافة
|
||||||
DelayedInsert=إضافة متأخرة
|
DelayedInsert=إضافة متأخرة
|
||||||
EncodeBinariesInHexa=ترميز البيانات الأحادية لستة عشرية
|
EncodeBinariesInHexa=ترميز البيانات الأحادية لستة عشرية
|
||||||
IgnoreDuplicateRecords=تجاهل الأخطاء في السجلات المكررة (تجاهل الإدراج)
|
IgnoreDuplicateRecords=تجاهل الأخطاء في السجلات المكررة (تجاهل الإدراج)
|
||||||
Yes=نعم
|
|
||||||
No=لا
|
|
||||||
AutoDetectLang=اكتشاف تلقائي (لغة المتصفح)
|
AutoDetectLang=اكتشاف تلقائي (لغة المتصفح)
|
||||||
FeatureDisabledInDemo=الميزة معلطة في العرض التجريبي
|
FeatureDisabledInDemo=الميزة معلطة في العرض التجريبي
|
||||||
Rights=الصلاحيات
|
Rights=الصلاحيات
|
||||||
@ -285,14 +281,16 @@ ModuleSetup=إعداد وحدة
|
|||||||
ModulesSetup=نمائط الإعداد
|
ModulesSetup=نمائط الإعداد
|
||||||
ModuleFamilyBase=نظام
|
ModuleFamilyBase=نظام
|
||||||
ModuleFamilyCrm=Ressource العملاء إدارة (إدارة علاقات العملاء)
|
ModuleFamilyCrm=Ressource العملاء إدارة (إدارة علاقات العملاء)
|
||||||
ModuleFamilyProducts=إدارة المنتجات
|
ModuleFamilyProducts=Products Management (PM)
|
||||||
ModuleFamilyHr=إدارة الموارد البشرية
|
ModuleFamilyHr=Human Resource Management (HR)
|
||||||
ModuleFamilyProjects=مشاريع / العمل التعاوني
|
ModuleFamilyProjects=مشاريع / العمل التعاوني
|
||||||
ModuleFamilyOther=أخرى
|
ModuleFamilyOther=أخرى
|
||||||
ModuleFamilyTechnic=Multi بين وحدات وأدوات
|
ModuleFamilyTechnic=Multi بين وحدات وأدوات
|
||||||
ModuleFamilyExperimental=نماذج تجريبية
|
ModuleFamilyExperimental=نماذج تجريبية
|
||||||
ModuleFamilyFinancial=الوحدات المالية (المحاسبة / الخزانة)
|
ModuleFamilyFinancial=الوحدات المالية (المحاسبة / الخزانة)
|
||||||
ModuleFamilyECM=إدارة المحتوى في المؤسسة
|
ModuleFamilyECM=إدارة المحتوى في المؤسسة
|
||||||
|
ModuleFamilyPortal=Web sites and other frontal application
|
||||||
|
ModuleFamilyInterface=Interfaces with external systems
|
||||||
MenuHandlers=قائمة مناولي
|
MenuHandlers=قائمة مناولي
|
||||||
MenuAdmin=قائمة تحرير
|
MenuAdmin=قائمة تحرير
|
||||||
DoNotUseInProduction=Do not use in production
|
DoNotUseInProduction=Do not use in production
|
||||||
@ -331,7 +329,7 @@ UMaskExplanation=تسمح لك هذه المعلمة لتحديد الاذونا
|
|||||||
SeeWikiForAllTeam=إلقاء نظرة على صفحة ويكي قائمة كاملة لجميع الجهات الفاعلة والمنظمة
|
SeeWikiForAllTeam=إلقاء نظرة على صفحة ويكي قائمة كاملة لجميع الجهات الفاعلة والمنظمة
|
||||||
UseACacheDelay= التخزين المؤقت للتأخير في الرد على الصادرات ثانية (0 فارغة أو لا مخبأ)
|
UseACacheDelay= التخزين المؤقت للتأخير في الرد على الصادرات ثانية (0 فارغة أو لا مخبأ)
|
||||||
DisableLinkToHelpCenter=الاختباء وصلة <b>"هل تحتاج إلى مساعدة أو دعم"</b> على صفحة تسجيل الدخول
|
DisableLinkToHelpCenter=الاختباء وصلة <b>"هل تحتاج إلى مساعدة أو دعم"</b> على صفحة تسجيل الدخول
|
||||||
DisableLinkToHelp=إخفاء ارتباط <b>"ق ٪ أخبار يساعد"</b> على القائمة اليمنى
|
DisableLinkToHelp=Hide link to online help "<b>%s</b>"
|
||||||
AddCRIfTooLong=ليس هناك التفاف تلقائي ، حتى إذا خرج من خط صفحة على وثائق لفترة طويلة جدا ، يجب إضافة حرف إرجاع نفسك في ناحية النص.
|
AddCRIfTooLong=ليس هناك التفاف تلقائي ، حتى إذا خرج من خط صفحة على وثائق لفترة طويلة جدا ، يجب إضافة حرف إرجاع نفسك في ناحية النص.
|
||||||
ModuleDisabled=نميطة المعوقين
|
ModuleDisabled=نميطة المعوقين
|
||||||
ModuleDisabledSoNoEvent=نميطة المعوقين بغية خلق حالة أبدا
|
ModuleDisabledSoNoEvent=نميطة المعوقين بغية خلق حالة أبدا
|
||||||
@ -354,7 +352,7 @@ ThemeDir=جلود دليل
|
|||||||
ConnectionTimeout=بمناسبه المهلة
|
ConnectionTimeout=بمناسبه المهلة
|
||||||
ResponseTimeout=استجابة مهلة
|
ResponseTimeout=استجابة مهلة
|
||||||
SmsTestMessage=رسالة اختبار من __PHONEFROM__ إلى __PHONETO__
|
SmsTestMessage=رسالة اختبار من __PHONEFROM__ إلى __PHONETO__
|
||||||
ModuleMustBeEnabledFirst=يجب تمكين <b>%s</b> الوحدة الأولى قبل استخدام هذه الميزة.
|
ModuleMustBeEnabledFirst=Module <b>%s</b> must be enabled first if you need this feature.
|
||||||
SecurityToken=المفتاح لعناوين المواقع الآمنة
|
SecurityToken=المفتاح لعناوين المواقع الآمنة
|
||||||
NoSmsEngine=لا مدير مرسل الرسائل القصيرة المتاحة. لم يتم تثبيت SMS المرسل مع مدير التوزيع الافتراضي (لأنها تعتمد على مورد خارجي)، ولكن يمكنك أن تجد بعض على http://www.dolistore.com
|
NoSmsEngine=لا مدير مرسل الرسائل القصيرة المتاحة. لم يتم تثبيت SMS المرسل مع مدير التوزيع الافتراضي (لأنها تعتمد على مورد خارجي)، ولكن يمكنك أن تجد بعض على http://www.dolistore.com
|
||||||
PDF=PDF
|
PDF=PDF
|
||||||
@ -364,6 +362,7 @@ HideAnyVATInformationOnPDF=إخفاء كل المعلومات المتعلقة
|
|||||||
HideDescOnPDF=Hide products description on generated PDF
|
HideDescOnPDF=Hide products description on generated PDF
|
||||||
HideRefOnPDF=Hide products ref. on generated PDF
|
HideRefOnPDF=Hide products ref. on generated PDF
|
||||||
HideDetailsOnPDF=Hide products lines details on generated PDF
|
HideDetailsOnPDF=Hide products lines details on generated PDF
|
||||||
|
PlaceCustomerAddressToIsoLocation=Use french standard position (La Posteà for customer address position
|
||||||
Library=المكتبة
|
Library=المكتبة
|
||||||
UrlGenerationParameters=المعلمات لتأمين عناوين المواقع
|
UrlGenerationParameters=المعلمات لتأمين عناوين المواقع
|
||||||
SecurityTokenIsUnique=استخدام معلمة securekey فريدة لكل URL
|
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
|
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>...
|
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>...
|
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
|
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> 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
|
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>
|
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)
|
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=الأعمال / الإدارة المهام وجدول الأعمال
|
Module2400Desc=الأعمال / الإدارة المهام وجدول الأعمال
|
||||||
Module2500Name=إدارة المحتوى الإلكتروني
|
Module2500Name=إدارة المحتوى الإلكتروني
|
||||||
Module2500Desc=حفظ وتبادل الوثائق
|
Module2500Desc=حفظ وتبادل الوثائق
|
||||||
Module2600Name=API services (Web services SOAP)
|
Module2600Name=API/Web services (SOAP server)
|
||||||
Module2600Desc=Enable the Dolibarr SOAP server providing API services
|
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
|
Module2610Desc=Enable the Dolibarr REST server providing API services
|
||||||
Module2650Name=WebServices (client)
|
Module2660Name=Call WebServices (SOAP 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)
|
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=غرفتر
|
Module2700Name=غرفتر
|
||||||
Module2700Desc=استخدام خدمة غرفتر على الانترنت (www.gravatar.com) لإظهار الصورة من المستخدمين / أعضاء (وجدت مع رسائل البريد الإلكتروني الخاصة بهم). في حاجة الى الوصول الى شبكة الانترنت
|
Module2700Desc=استخدام خدمة غرفتر على الانترنت (www.gravatar.com) لإظهار الصورة من المستخدمين / أعضاء (وجدت مع رسائل البريد الإلكتروني الخاصة بهم). في حاجة الى الوصول الى شبكة الانترنت
|
||||||
Module2800Desc=FTP Client
|
Module2800Desc=FTP Client
|
||||||
Module2900Name=GeoIPMaxmind
|
Module2900Name=GeoIPMaxmind
|
||||||
Module2900Desc=GeoIP التحويلات Maxmind القدرات
|
Module2900Desc=GeoIP التحويلات Maxmind القدرات
|
||||||
Module3100Name=Skype
|
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=شركة متعددة
|
Module5000Name=شركة متعددة
|
||||||
Module5000Desc=يسمح لك لإدارة الشركات المتعددة
|
Module5000Desc=يسمح لك لإدارة الشركات المتعددة
|
||||||
Module6000Name=Workflow
|
Module6000Name=Workflow
|
||||||
@ -802,7 +804,7 @@ Permission59003=Read every user margin
|
|||||||
DictionaryCompanyType=Thirdparties type
|
DictionaryCompanyType=Thirdparties type
|
||||||
DictionaryCompanyJuridicalType=Juridical kinds of thirdparties
|
DictionaryCompanyJuridicalType=Juridical kinds of thirdparties
|
||||||
DictionaryProspectLevel=Prospect potential level
|
DictionaryProspectLevel=Prospect potential level
|
||||||
DictionaryCanton=State/Cantons
|
DictionaryCanton=State/Province
|
||||||
DictionaryRegion=Regions
|
DictionaryRegion=Regions
|
||||||
DictionaryCountry=Countries
|
DictionaryCountry=Countries
|
||||||
DictionaryCurrency=Currencies
|
DictionaryCurrency=Currencies
|
||||||
@ -840,14 +842,12 @@ VATIsUsedExampleFR=في فرنسا ، فإن ذلك يعني وجود منظما
|
|||||||
VATIsNotUsedExampleFR=في فرنسا ، فإن ذلك يعني أن الجمعيات غير المعلنة ضريبة القيمة المضافة أو شركات أو مؤسسات المهن الحرة التي اختارت المشاريع الصغيرة النظام الضريبي (ضريبة القيمة المضافة في الانتخاب) ، ودفع ضريبة القيمة المضافة في الانتخاب دون أي إعلان من ضريبة القيمة المضافة. هذا الخيار سيتم عرض المرجعي "غير الضريبة على القيمة المضافة المطبقة -- الفن - 293B من المجموعة الاستشارية لاندونيسيا" على الفواتير.
|
VATIsNotUsedExampleFR=في فرنسا ، فإن ذلك يعني أن الجمعيات غير المعلنة ضريبة القيمة المضافة أو شركات أو مؤسسات المهن الحرة التي اختارت المشاريع الصغيرة النظام الضريبي (ضريبة القيمة المضافة في الانتخاب) ، ودفع ضريبة القيمة المضافة في الانتخاب دون أي إعلان من ضريبة القيمة المضافة. هذا الخيار سيتم عرض المرجعي "غير الضريبة على القيمة المضافة المطبقة -- الفن - 293B من المجموعة الاستشارية لاندونيسيا" على الفواتير.
|
||||||
##### Local Taxes #####
|
##### Local Taxes #####
|
||||||
LTRate=Rate
|
LTRate=Rate
|
||||||
LocalTax1IsUsed=Use second tax
|
|
||||||
LocalTax1IsNotUsed=Do not use second tax
|
LocalTax1IsNotUsed=Do not use second tax
|
||||||
LocalTax1IsUsedDesc=Use a second type of tax (other than VAT)
|
LocalTax1IsUsedDesc=Use a second type of tax (other than VAT)
|
||||||
LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT)
|
LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT)
|
||||||
LocalTax1Management=Second type of tax
|
LocalTax1Management=Second type of tax
|
||||||
LocalTax1IsUsedExample=
|
LocalTax1IsUsedExample=
|
||||||
LocalTax1IsNotUsedExample=
|
LocalTax1IsNotUsedExample=
|
||||||
LocalTax2IsUsed=Use third tax
|
|
||||||
LocalTax2IsNotUsed=Do not use third tax
|
LocalTax2IsNotUsed=Do not use third tax
|
||||||
LocalTax2IsUsedDesc=Use a third type of tax (other than VAT)
|
LocalTax2IsUsedDesc=Use a third type of tax (other than VAT)
|
||||||
LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT)
|
LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT)
|
||||||
@ -922,7 +922,6 @@ MenuCompanySetup=الشركة / المؤسسة
|
|||||||
MenuNewUser=مستخدم جديد
|
MenuNewUser=مستخدم جديد
|
||||||
MenuTopManager=المدير الأعلى
|
MenuTopManager=المدير الأعلى
|
||||||
MenuLeftManager=مدير القائمة اليمنى
|
MenuLeftManager=مدير القائمة اليمنى
|
||||||
MenuManager=Menu manager
|
|
||||||
MenuSmartphoneManager=الهاتف الذكي القائمة مدير
|
MenuSmartphoneManager=الهاتف الذكي القائمة مدير
|
||||||
DefaultMenuTopManager=المدير الأعلى
|
DefaultMenuTopManager=المدير الأعلى
|
||||||
DefaultMenuLeftManager=مدير القائمة اليمنى
|
DefaultMenuLeftManager=مدير القائمة اليمنى
|
||||||
@ -931,14 +930,14 @@ DefaultMenuSmartphoneManager=الهاتف الذكي القائمة مدير
|
|||||||
Skin=موضوع الجلد
|
Skin=موضوع الجلد
|
||||||
DefaultSkin=موضوع التقصير الجلد
|
DefaultSkin=موضوع التقصير الجلد
|
||||||
MaxSizeList=الحد الأقصى لطول قائمة
|
MaxSizeList=الحد الأقصى لطول قائمة
|
||||||
DefaultMaxSizeList=تقصير المدة القصوى للقائمة
|
DefaultMaxSizeList=Default max length for lists
|
||||||
|
DefaultMaxSizeShortList=Default max length for short lists (ie in customer card)
|
||||||
MessageOfDay=رسالة اليوم
|
MessageOfDay=رسالة اليوم
|
||||||
MessageLogin=ادخل صفحة الرسالة
|
MessageLogin=ادخل صفحة الرسالة
|
||||||
PermanentLeftSearchForm=دائم البحث عن شكل القائمة اليمنى
|
PermanentLeftSearchForm=دائم البحث عن شكل القائمة اليمنى
|
||||||
DefaultLanguage=اللغة الافتراضية لاستخدام (شفرة اللغة)
|
DefaultLanguage=اللغة الافتراضية لاستخدام (شفرة اللغة)
|
||||||
EnableMultilangInterface=تتيح واجهة متعددة اللغات
|
EnableMultilangInterface=تتيح واجهة متعددة اللغات
|
||||||
EnableShowLogo=عرض الشعار على اليسار القائمة
|
EnableShowLogo=عرض الشعار على اليسار القائمة
|
||||||
EnableHtml5=Enable Html5 (Developement - Only available on Eldy template)
|
|
||||||
SystemSuccessfulyUpdated=النظام الخاص بك تم تحديث بنجاح
|
SystemSuccessfulyUpdated=النظام الخاص بك تم تحديث بنجاح
|
||||||
CompanyInfo=الشركة / المؤسسة المعلومات
|
CompanyInfo=الشركة / المؤسسة المعلومات
|
||||||
CompanyIds=الشركة / المؤسسة الهويات
|
CompanyIds=الشركة / المؤسسة الهويات
|
||||||
@ -975,6 +974,7 @@ Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=تأخير التسامح (في يوم)
|
|||||||
Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=تأخير التسامح (في يوم) في حالة تأهب قبل يوم في انتظار التسوية المصرفية
|
Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=تأخير التسامح (في يوم) في حالة تأهب قبل يوم في انتظار التسوية المصرفية
|
||||||
Delays_MAIN_DELAY_MEMBERS=تأخير التسامح (في يوم) في حالة تأهب قبل يوم تأخير رسوم العضوية
|
Delays_MAIN_DELAY_MEMBERS=تأخير التسامح (في يوم) في حالة تأهب قبل يوم تأخير رسوم العضوية
|
||||||
Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=تأخير التسامح (في يوم) في حالة تأهب قبل لإيداع الشيكات للقيام
|
Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=تأخير التسامح (في يوم) في حالة تأهب قبل لإيداع الشيكات للقيام
|
||||||
|
Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve
|
||||||
SetupDescription1=جميع البارامترات المتاحة في مجال الإعداد تسمح لك قبل البدء في الإعداد Dolibarr استخدامه.
|
SetupDescription1=جميع البارامترات المتاحة في مجال الإعداد تسمح لك قبل البدء في الإعداد Dolibarr استخدامه.
|
||||||
SetupDescription2=2 إن أهم الخطوات هي الإعداد 2 أول من غادر في إعداد القائمة ، وهذا يعني الشركة / المؤسسة صفحة إعداد صفحة إعداد وحدات :
|
SetupDescription2=2 إن أهم الخطوات هي الإعداد 2 أول من غادر في إعداد القائمة ، وهذا يعني الشركة / المؤسسة صفحة إعداد صفحة إعداد وحدات :
|
||||||
SetupDescription3=البارامترات في <b>إعداد</b> القائمة <b>--> الشركة / المؤسسة</b> المطلوب لأن مدخلات تستخدم المعلومات عن Dolibarr عرض وتعديل السلوك Dolibarr (على سبيل المثال لخصائص تتعلق بلدكم).
|
SetupDescription3=البارامترات في <b>إعداد</b> القائمة <b>--> الشركة / المؤسسة</b> المطلوب لأن مدخلات تستخدم المعلومات عن Dolibarr عرض وتعديل السلوك Dolibarr (على سبيل المثال لخصائص تتعلق بلدكم).
|
||||||
@ -1002,6 +1002,7 @@ SystemAreaForAdminOnly=هذا المجال المتاح لمدير المستخ
|
|||||||
CompanyFundationDesc=تعديل على هذه الصفحة كل المعلومات المعروفة للشركة أو مؤسسة تحتاج لإدارة
|
CompanyFundationDesc=تعديل على هذه الصفحة كل المعلومات المعروفة للشركة أو مؤسسة تحتاج لإدارة
|
||||||
DisplayDesc=يمكنك ان تختار كل معلمة إلى Dolibarr هنا الشكل والمظهر
|
DisplayDesc=يمكنك ان تختار كل معلمة إلى Dolibarr هنا الشكل والمظهر
|
||||||
AvailableModules=تتوفر وحدات
|
AvailableModules=تتوفر وحدات
|
||||||
|
DeprecatedModules=Deprecated modules
|
||||||
ToActivateModule=لتفعيل وحدات ، على الإعداد منطقة الصفحة الرئيسية> الإعداد -> الوحدات).
|
ToActivateModule=لتفعيل وحدات ، على الإعداد منطقة الصفحة الرئيسية> الإعداد -> الوحدات).
|
||||||
SessionTimeOut=للمرة الخمسين
|
SessionTimeOut=للمرة الخمسين
|
||||||
SessionExplanation=تضمن هذا العدد أن الدورة لن ينتهي قبل هذا التأخير. PHP sessoin ولكن الإدارة لا الكفالة التي دائما تنتهي الدورة بعد هذا التأخير : ويحدث هذا إذا كان نظام لتنظيف مخبأ الدورة الجارية. <br> ملاحظة : مع أي نظام الداخلي PHP عملية تنظيف كل دورة حوالي <b>٪ ق / ق ٪</b> فقط ولكن وصول وصول أدلى به خلال دورات أخرى.
|
SessionExplanation=تضمن هذا العدد أن الدورة لن ينتهي قبل هذا التأخير. PHP sessoin ولكن الإدارة لا الكفالة التي دائما تنتهي الدورة بعد هذا التأخير : ويحدث هذا إذا كان نظام لتنظيف مخبأ الدورة الجارية. <br> ملاحظة : مع أي نظام الداخلي PHP عملية تنظيف كل دورة حوالي <b>٪ ق / ق ٪</b> فقط ولكن وصول وصول أدلى به خلال دورات أخرى.
|
||||||
@ -1104,13 +1105,15 @@ XDebugInstalled=XDebug is loaded.
|
|||||||
XCacheInstalled=XCache 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".
|
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
|
FieldEdition=Edition of field %s
|
||||||
FixTZ=TimeZone fix
|
|
||||||
FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced)
|
FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced)
|
||||||
GetBarCode=Get barcode
|
GetBarCode=Get barcode
|
||||||
EmptyNumRefModelDesc=The code is free. This code can be modified at any time.
|
EmptyNumRefModelDesc=The code is free. This code can be modified at any time.
|
||||||
##### Module password generation
|
##### Module password generation
|
||||||
PasswordGenerationStandard=عودة كلمة سر ولدت الداخلية وفقا لخوارزمية Dolibarr : 8 أحرف مشتركة تتضمن الأرقام والحروف في حرف صغير.
|
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 #####
|
##### Users setup #####
|
||||||
UserGroupSetup=مستخدمين والمجموعات وحدة الإعداد
|
UserGroupSetup=مستخدمين والمجموعات وحدة الإعداد
|
||||||
GeneratePassword=وتشير ولدت كلمة السر
|
GeneratePassword=وتشير ولدت كلمة السر
|
||||||
@ -1120,6 +1123,8 @@ EncryptedPasswordInDatabase=السماح للتشفير كلمات السر في
|
|||||||
DisableForgetPasswordLinkOnLogonPage=لا تظهر وصلة "نسيت كلمة المرور" على صفحة تسجيل الدخول
|
DisableForgetPasswordLinkOnLogonPage=لا تظهر وصلة "نسيت كلمة المرور" على صفحة تسجيل الدخول
|
||||||
UsersSetup=شاهد الإعداد وحدة
|
UsersSetup=شاهد الإعداد وحدة
|
||||||
UserMailRequired=مطلوب بريد إلكتروني لإنشاء مستخدم جديد
|
UserMailRequired=مطلوب بريد إلكتروني لإنشاء مستخدم جديد
|
||||||
|
##### HRM setup #####
|
||||||
|
HRMSetup=HRM module setup
|
||||||
##### Company setup #####
|
##### Company setup #####
|
||||||
CompanySetup=وحدة الإعداد للشركات
|
CompanySetup=وحدة الإعداد للشركات
|
||||||
CompanyCodeChecker=نموذج للجيل الثالث لقانون الأحزاب ومراجعة (عميل أو مورد)
|
CompanyCodeChecker=نموذج للجيل الثالث لقانون الأحزاب ومراجعة (عميل أو مورد)
|
||||||
@ -1172,6 +1177,7 @@ CreditNotePDFModules=المذكرة وثيقة من وثائق الائتمان
|
|||||||
CreditNote=علما الائتمان
|
CreditNote=علما الائتمان
|
||||||
CreditNotes=ويلاحظ الائتمان
|
CreditNotes=ويلاحظ الائتمان
|
||||||
ForceInvoiceDate=قوة تاريخ الفاتورة تاريخ المصادقة على
|
ForceInvoiceDate=قوة تاريخ الفاتورة تاريخ المصادقة على
|
||||||
|
AllowCreditNoteWithoutRelatedInvoice=Allow to create credit note without a related invoice
|
||||||
DisableRepeatable=تعطيل تكرار الفواتير
|
DisableRepeatable=تعطيل تكرار الفواتير
|
||||||
SuggestedPaymentModesIfNotDefinedInInvoice=واقترح على طريقة دفع الفواتير تلقائيا اذا لم تعرف للفاتورة
|
SuggestedPaymentModesIfNotDefinedInInvoice=واقترح على طريقة دفع الفواتير تلقائيا اذا لم تعرف للفاتورة
|
||||||
EnableEditDeleteValidInvoice=تتيح إمكانية تعديل أو حذف صحيحة دون دفع الفاتورة
|
EnableEditDeleteValidInvoice=تتيح إمكانية تعديل أو حذف صحيحة دون دفع الفاتورة
|
||||||
@ -1179,6 +1185,7 @@ SuggestPaymentByRIBOnAccount=وتشير دفع سحب على حساب
|
|||||||
SuggestPaymentByChequeToAddress=وتشير إلى دفع الشيكات
|
SuggestPaymentByChequeToAddress=وتشير إلى دفع الشيكات
|
||||||
FreeLegalTextOnInvoices=نص حر على الفواتير
|
FreeLegalTextOnInvoices=نص حر على الفواتير
|
||||||
WatermarkOnDraftInvoices=Watermark on draft invoices (none if empty)
|
WatermarkOnDraftInvoices=Watermark on draft invoices (none if empty)
|
||||||
|
PaymentsNumberingModule=Payments numbering model
|
||||||
##### Proposals #####
|
##### Proposals #####
|
||||||
PropalSetup=وحدة إعداد مقترحات تجارية
|
PropalSetup=وحدة إعداد مقترحات تجارية
|
||||||
CreateForm=خلق أشكال
|
CreateForm=خلق أشكال
|
||||||
@ -1200,6 +1207,7 @@ SupplierProposalPDFModules=Price requests suppliers documents models
|
|||||||
FreeLegalTextOnSupplierProposal=Free text on price requests suppliers
|
FreeLegalTextOnSupplierProposal=Free text on price requests suppliers
|
||||||
WatermarkOnDraftSupplierProposal=Watermark on draft price requests suppliers (none if empty)
|
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
|
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 #####
|
##### Orders #####
|
||||||
OrdersSetup=أوامر إدارة الإعداد
|
OrdersSetup=أوامر إدارة الإعداد
|
||||||
OrdersNumberingModules=أوامر الترقيم نمائط
|
OrdersNumberingModules=أوامر الترقيم نمائط
|
||||||
@ -1227,6 +1235,7 @@ ContractsNumberingModules=عقود ترقيم الوحدات
|
|||||||
TemplatePDFContracts=Contracts documents models
|
TemplatePDFContracts=Contracts documents models
|
||||||
FreeLegalTextOnContracts=Free text on contracts
|
FreeLegalTextOnContracts=Free text on contracts
|
||||||
WatermarkOnDraftContractCards=Watermark on draft contracts (none if empty)
|
WatermarkOnDraftContractCards=Watermark on draft contracts (none if empty)
|
||||||
|
ContractsAndServices=List of contracts and services
|
||||||
##### Members #####
|
##### Members #####
|
||||||
MembersSetup=أعضاء وحدة الإعداد
|
MembersSetup=أعضاء وحدة الإعداد
|
||||||
MemberMainOptions=الخيارات الرئيسية
|
MemberMainOptions=الخيارات الرئيسية
|
||||||
@ -1408,6 +1417,7 @@ SetDefaultBarcodeTypeThirdParties=النوع الافتراضي لاستخدام
|
|||||||
UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
|
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)
|
ProductCodeChecker= Module for product code generation and checking (product or service)
|
||||||
ProductOtherConf= Product / Service configuration
|
ProductOtherConf= Product / Service configuration
|
||||||
|
IsNotADir=is not a directory!
|
||||||
##### Syslog #####
|
##### Syslog #####
|
||||||
SyslogSetup=Syslog حدة الإعداد
|
SyslogSetup=Syslog حدة الإعداد
|
||||||
SyslogOutput=سجل الناتج
|
SyslogOutput=سجل الناتج
|
||||||
@ -1519,8 +1529,7 @@ DetailLevel=المستوى (-1 : الأعلى ، 0 : رأس القائمة ،>
|
|||||||
ModifMenu=قائمة التغيير
|
ModifMenu=قائمة التغيير
|
||||||
DeleteMenu=حذف من القائمة الدخول
|
DeleteMenu=حذف من القائمة الدخول
|
||||||
ConfirmDeleteMenu=هل أنت متأكد من أنك تريد حذف القائمة دخول <b>٪ ق؟</b>
|
ConfirmDeleteMenu=هل أنت متأكد من أنك تريد حذف القائمة دخول <b>٪ ق؟</b>
|
||||||
DeleteLine=حذف السطر
|
FailedToInitializeMenu=Failed to initialize menu
|
||||||
ConfirmDeleteLine=هل أنت متأكد من أنك تريد حذف هذا الخط؟
|
|
||||||
##### Tax #####
|
##### Tax #####
|
||||||
TaxSetup=Taxes, social or fiscal taxes and dividends module setup
|
TaxSetup=Taxes, social or fiscal taxes and dividends module setup
|
||||||
OptionVatMode=ضريبة القيمة المضافة المستحقة
|
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_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
|
AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda
|
||||||
##### ClickToDial #####
|
##### 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) #####
|
##### Point Of Sales (CashDesk) #####
|
||||||
CashDesk=نقاط البيع
|
CashDesk=نقاط البيع
|
||||||
CashDeskSetup=مكتب الإعداد وحدة نقدية
|
CashDeskSetup=مكتب الإعداد وحدة نقدية
|
||||||
@ -1577,7 +1588,7 @@ EndPointIs=الصابون العملاء يجب إرسال الطلبات إلى
|
|||||||
ApiSetup=API module setup
|
ApiSetup=API module setup
|
||||||
ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services.
|
ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services.
|
||||||
KeyForApiAccess=Key to use API (parameter "api_key")
|
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
|
ApiEndPointIs=You can access to the API at url
|
||||||
ApiExporerIs=You can explore the API at url
|
ApiExporerIs=You can explore the API at url
|
||||||
OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed
|
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)
|
UseSearchToSelectProject=Use autocompletion fields to choose project (instead of using a list box)
|
||||||
##### ECM (GED) #####
|
##### ECM (GED) #####
|
||||||
ECMSetup = GED Setup
|
ECMSetup = GED Setup
|
||||||
ECMAutoTree = Automatic tree folder and document
|
ECMAutoTree = Show also the automatic tree folder and document
|
||||||
##### Fiscal Year #####
|
##### Fiscal Year #####
|
||||||
FiscalYears=Fiscal years
|
FiscalYears=Fiscal years
|
||||||
FiscalYear=Fiscal year
|
FiscalYear=Fiscal year
|
||||||
@ -1625,8 +1636,6 @@ OpenFiscalYear=Open fiscal year
|
|||||||
CloseFiscalYear=Close fiscal year
|
CloseFiscalYear=Close fiscal year
|
||||||
DeleteFiscalYear=Delete fiscal year
|
DeleteFiscalYear=Delete fiscal year
|
||||||
ConfirmDeleteFiscalYear=Are you sure to delete this fiscal year ?
|
ConfirmDeleteFiscalYear=Are you sure to delete this fiscal year ?
|
||||||
Opened=Open
|
|
||||||
Closed=Closed
|
|
||||||
AlwaysEditable=Can always be edited
|
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)
|
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
|
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.
|
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>
|
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
|
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
|
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
|
NotSupportedByAllThemes=Will works with eldy theme but is not supported by all themes
|
||||||
BackgroundColor=Background color
|
BackgroundColor=Background color
|
||||||
@ -1688,3 +1698,10 @@ MailToSendSupplierRequestForQuotation=To send quotation request to supplier
|
|||||||
MailToSendSupplierOrder=To send supplier order
|
MailToSendSupplierOrder=To send supplier order
|
||||||
MailToSendSupplierInvoice=To send supplier invoice
|
MailToSendSupplierInvoice=To send supplier invoice
|
||||||
MailToThirdparty=To send email from thirdparty page
|
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=المدفوعات
|
Payments=المدفوعات
|
||||||
PaymentsBack=عودة المدفوعات
|
PaymentsBack=عودة المدفوعات
|
||||||
PaidBack=Paid back
|
PaidBack=Paid back
|
||||||
DatePayment=تاريخ الدفع
|
|
||||||
DeletePayment=حذف الدفع
|
DeletePayment=حذف الدفع
|
||||||
ConfirmDeletePayment=هل أنت متأكد من أنك تريد حذف هذا المبلغ؟
|
ConfirmDeletePayment=هل أنت متأكد من أنك تريد حذف هذا المبلغ؟
|
||||||
ConfirmConvertToReduc=هل تريد تحويل هذه القروض إلى الودائع أو علما مطلقة الخصم؟ <br> المبلغ حتى يتم حفظ جميع الخصومات ويمكن استخدام خصم لحالي أو مستقبلي الفاتورة لهذا العميل.
|
ConfirmConvertToReduc=هل تريد تحويل هذه القروض إلى الودائع أو علما مطلقة الخصم؟ <br> المبلغ حتى يتم حفظ جميع الخصومات ويمكن استخدام خصم لحالي أو مستقبلي الفاتورة لهذا العميل.
|
||||||
@ -74,6 +73,7 @@ PaymentsAlreadyDone=المدفوعات قد فعلت
|
|||||||
PaymentsBackAlreadyDone=Payments back already done
|
PaymentsBackAlreadyDone=Payments back already done
|
||||||
PaymentRule=دفع الحكم
|
PaymentRule=دفع الحكم
|
||||||
PaymentMode=نوع الدفع
|
PaymentMode=نوع الدفع
|
||||||
|
PaymentModeShort=Payment type
|
||||||
PaymentTerm=Payment term
|
PaymentTerm=Payment term
|
||||||
PaymentConditions=Payment terms
|
PaymentConditions=Payment terms
|
||||||
PaymentConditionsShort=Payment terms
|
PaymentConditionsShort=Payment terms
|
||||||
@ -88,6 +88,7 @@ ClassifyCanceled=تصنيف 'المهجورة'
|
|||||||
ClassifyClosed=تصنيف 'مغلقة'
|
ClassifyClosed=تصنيف 'مغلقة'
|
||||||
ClassifyUnBilled=Classify 'Unbilled'
|
ClassifyUnBilled=Classify 'Unbilled'
|
||||||
CreateBill=إنشاء الفاتورة
|
CreateBill=إنشاء الفاتورة
|
||||||
|
CreateCreditNote=Create credit note
|
||||||
AddBill=Create invoice or credit note
|
AddBill=Create invoice or credit note
|
||||||
AddToDraftInvoices=Add to draft invoice
|
AddToDraftInvoices=Add to draft invoice
|
||||||
DeleteBill=شطب فاتورة
|
DeleteBill=شطب فاتورة
|
||||||
@ -101,7 +102,6 @@ ConvertToReduc=تحويل الخصم في المستقبل
|
|||||||
EnterPaymentReceivedFromCustomer=دخول الدفع الواردة من العملاء
|
EnterPaymentReceivedFromCustomer=دخول الدفع الواردة من العملاء
|
||||||
EnterPaymentDueToCustomer=من المقرر أن يسدد العميل
|
EnterPaymentDueToCustomer=من المقرر أن يسدد العميل
|
||||||
DisabledBecauseRemainderToPayIsZero=Disabled because remaining unpaid is zero
|
DisabledBecauseRemainderToPayIsZero=Disabled because remaining unpaid is zero
|
||||||
Amount=مبلغ
|
|
||||||
PriceBase=سعر الأساس
|
PriceBase=سعر الأساس
|
||||||
BillStatus=حالة الفاتورة
|
BillStatus=حالة الفاتورة
|
||||||
BillStatusDraft=مشروع (لا بد من التحقق من صحة)
|
BillStatusDraft=مشروع (لا بد من التحقق من صحة)
|
||||||
@ -185,7 +185,6 @@ ShowInvoiceReplace=وتظهر استبدال الفاتورة
|
|||||||
ShowInvoiceAvoir=وتظهر المذكرة الائتمان
|
ShowInvoiceAvoir=وتظهر المذكرة الائتمان
|
||||||
ShowInvoiceDeposit=وتبين أن تودع الفاتورة
|
ShowInvoiceDeposit=وتبين أن تودع الفاتورة
|
||||||
ShowPayment=وتظهر الدفع
|
ShowPayment=وتظهر الدفع
|
||||||
File=ملف
|
|
||||||
AlreadyPaid=دفعت بالفعل
|
AlreadyPaid=دفعت بالفعل
|
||||||
AlreadyPaidBack=Already paid back
|
AlreadyPaidBack=Already paid back
|
||||||
AlreadyPaidNoCreditNotesNoDeposits=دفعت بالفعل (بدون تلاحظ الائتمان والودائع)
|
AlreadyPaidNoCreditNotesNoDeposits=دفعت بالفعل (بدون تلاحظ الائتمان والودائع)
|
||||||
@ -216,8 +215,8 @@ DateEcheance=الحد من الموعد المقرر
|
|||||||
DateInvoice=تاريخ الفاتورة
|
DateInvoice=تاريخ الفاتورة
|
||||||
NoInvoice=لا الفاتورة
|
NoInvoice=لا الفاتورة
|
||||||
ClassifyBill=تصنيف الفاتورة
|
ClassifyBill=تصنيف الفاتورة
|
||||||
SupplierBillsToPay=دفع فواتير الموردين
|
SupplierBillsToPay=Unpaid supplier invoices
|
||||||
CustomerBillsUnpaid=فواتير غير مدفوعة للعملاء
|
CustomerBillsUnpaid=Unpaid customer invoices
|
||||||
NonPercuRecuperable=غير القابلة للاسترداد
|
NonPercuRecuperable=غير القابلة للاسترداد
|
||||||
SetConditions=تحدد شروط الدفع
|
SetConditions=تحدد شروط الدفع
|
||||||
SetMode=حدد طريقة الدفع
|
SetMode=حدد طريقة الدفع
|
||||||
@ -238,7 +237,6 @@ Reduction=تخفيض
|
|||||||
ReductionShort=Reduc.
|
ReductionShort=Reduc.
|
||||||
Reductions=التخفيضات
|
Reductions=التخفيضات
|
||||||
ReductionsShort=Reduc.
|
ReductionsShort=Reduc.
|
||||||
Discount=الخصم
|
|
||||||
Discounts=خصومات
|
Discounts=خصومات
|
||||||
AddDiscount=إضافة الخصم
|
AddDiscount=إضافة الخصم
|
||||||
AddRelativeDiscount=خلق خصم قريب
|
AddRelativeDiscount=خلق خصم قريب
|
||||||
@ -351,7 +349,7 @@ ExtraInfos=معلومات اضافية
|
|||||||
RegulatedOn=وتنظم على
|
RegulatedOn=وتنظم على
|
||||||
ChequeNumber=رقم الشيك
|
ChequeNumber=رقم الشيك
|
||||||
ChequeOrTransferNumber=شيك / نقل رقم
|
ChequeOrTransferNumber=شيك / نقل رقم
|
||||||
ChequeMaker=فحص جهاز الإرسال
|
ChequeMaker=Check/Transfer transmitter
|
||||||
ChequeBank=الشيكات المصرفية
|
ChequeBank=الشيكات المصرفية
|
||||||
CheckBank=Check
|
CheckBank=Check
|
||||||
NetToBePaid=الصافي للدفع
|
NetToBePaid=الصافي للدفع
|
||||||
|
|||||||
@ -58,7 +58,7 @@ BoxLastExpiredServices=%s مشاركة أقدم اتصالات مع خدمات
|
|||||||
BoxTitleLastActionsToDo=ق ٪ الإجراءات الأخيرة للقيام
|
BoxTitleLastActionsToDo=ق ٪ الإجراءات الأخيرة للقيام
|
||||||
BoxTitleLastContracts=%s العقود الماضية
|
BoxTitleLastContracts=%s العقود الماضية
|
||||||
BoxTitleLastModifiedDonations=%s آخر تعديل التبرعات
|
BoxTitleLastModifiedDonations=%s آخر تعديل التبرعات
|
||||||
BoxTitleLastModifiedExpenses=%s آخر تعديل النفقات
|
BoxTitleLastModifiedExpenses=Last %s modified expense reports
|
||||||
BoxGlobalActivity=Global activity (invoices, proposals, orders)
|
BoxGlobalActivity=Global activity (invoices, proposals, orders)
|
||||||
FailedToRefreshDataInfoNotUpToDate=فشلت في تجديد تدفق RSS. اخر تحديث تاريخ : ٪ ق
|
FailedToRefreshDataInfoNotUpToDate=فشلت في تجديد تدفق RSS. اخر تحديث تاريخ : ٪ ق
|
||||||
LastRefreshDate=تاريخ آخر تجديد
|
LastRefreshDate=تاريخ آخر تجديد
|
||||||
|
|||||||
@ -38,3 +38,4 @@ ShowStock=عرض مستودع
|
|||||||
DeleteArticle=انقر لإزالة هذه المادة
|
DeleteArticle=انقر لإزالة هذه المادة
|
||||||
FilterRefOrLabelOrBC=Search (Ref/Label)
|
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.
|
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=تقرير الربع
|
ReportByQuarter=تقرير الربع
|
||||||
CivilityCode=قانون الكياسة
|
CivilityCode=قانون الكياسة
|
||||||
RegisteredOffice=المكتب المسجل
|
RegisteredOffice=المكتب المسجل
|
||||||
Name=اسم
|
|
||||||
Lastname=اللقب
|
Lastname=اللقب
|
||||||
Firstname=Firstname
|
Firstname=Firstname
|
||||||
PostOrFunction=وظيفة / وظيفة
|
PostOrFunction=وظيفة / وظيفة
|
||||||
@ -64,6 +63,7 @@ UserTitle=العنوان
|
|||||||
Surname=لقب / مزيف
|
Surname=لقب / مزيف
|
||||||
Address=عنوان
|
Address=عنوان
|
||||||
State=الولاية / المقاطعة
|
State=الولاية / المقاطعة
|
||||||
|
StateShort=State
|
||||||
Region=المنطقة
|
Region=المنطقة
|
||||||
Country=قطر
|
Country=قطر
|
||||||
CountryCode=رمز البلد
|
CountryCode=رمز البلد
|
||||||
@ -88,8 +88,10 @@ VATIsNotUsed=ضريبة القيمة المضافة لا يستخدم
|
|||||||
CopyAddressFromSoc=Fill address with thirdparty address
|
CopyAddressFromSoc=Fill address with thirdparty address
|
||||||
NoEmailDefined=There is no email defined
|
NoEmailDefined=There is no email defined
|
||||||
##### Local Taxes #####
|
##### Local Taxes #####
|
||||||
|
LocalTax1IsUsed=Use second tax
|
||||||
LocalTax1IsUsedES= يتم استخدام الطاقة المتجددة
|
LocalTax1IsUsedES= يتم استخدام الطاقة المتجددة
|
||||||
LocalTax1IsNotUsedES= لا يتم استخدام الطاقة المتجددة
|
LocalTax1IsNotUsedES= لا يتم استخدام الطاقة المتجددة
|
||||||
|
LocalTax2IsUsed=Use third tax
|
||||||
LocalTax2IsUsedES= يستخدم IRPF
|
LocalTax2IsUsedES= يستخدم IRPF
|
||||||
LocalTax2IsNotUsedES= IRPF لا يستخدم
|
LocalTax2IsNotUsedES= IRPF لا يستخدم
|
||||||
LocalTax1ES=تعاود
|
LocalTax1ES=تعاود
|
||||||
@ -109,7 +111,7 @@ ProfId2Short=معرف الأستاذ 2
|
|||||||
ProfId3Short=الأستاذ معرف 3
|
ProfId3Short=الأستاذ معرف 3
|
||||||
ProfId4Short=الأستاذ معرف 4
|
ProfId4Short=الأستاذ معرف 4
|
||||||
ProfId5Short=البروفيسور رقم 5
|
ProfId5Short=البروفيسور رقم 5
|
||||||
ProfId6Short=Prof. id 5
|
ProfId6Short=Prof. id 6
|
||||||
ProfId1=الهوية المهنية (1)
|
ProfId1=الهوية المهنية (1)
|
||||||
ProfId2=الهوية المهنية (2)
|
ProfId2=الهوية المهنية (2)
|
||||||
ProfId3=3 الهوية المهنية
|
ProfId3=3 الهوية المهنية
|
||||||
@ -284,6 +286,8 @@ PersonalInformations=البيانات الشخصية
|
|||||||
AccountancyCode=قانون المحاسبة
|
AccountancyCode=قانون المحاسبة
|
||||||
CustomerCode=رمز العميل
|
CustomerCode=رمز العميل
|
||||||
SupplierCode=رمز المورد
|
SupplierCode=رمز المورد
|
||||||
|
CustomerCodeShort=Customer code
|
||||||
|
SupplierCodeShort=Supplier code
|
||||||
CustomerAccount=حساب الزبون
|
CustomerAccount=حساب الزبون
|
||||||
SupplierAccount=مورد الحساب
|
SupplierAccount=مورد الحساب
|
||||||
CustomerCodeDesc=شفرة الزبون ، فريدة من نوعها لجميع العملاء
|
CustomerCodeDesc=شفرة الزبون ، فريدة من نوعها لجميع العملاء
|
||||||
@ -302,7 +306,7 @@ ListOfCustomersContacts=قائمة عملاء الاتصالات
|
|||||||
ListOfSuppliersContacts=قائمة الموردين اتصالات
|
ListOfSuppliersContacts=قائمة الموردين اتصالات
|
||||||
ListOfCompanies=قائمة الشركات
|
ListOfCompanies=قائمة الشركات
|
||||||
ListOfThirdParties=قائمة أطراف ثالثة
|
ListOfThirdParties=قائمة أطراف ثالثة
|
||||||
ShowCompany=وتبين للشركة
|
ShowCompany=Show thirdparty
|
||||||
ShowContact=وتظهر الاتصال
|
ShowContact=وتظهر الاتصال
|
||||||
ContactsAllShort=جميع (بدون فلتر)
|
ContactsAllShort=جميع (بدون فلتر)
|
||||||
ContactType=نوع الاتصال
|
ContactType=نوع الاتصال
|
||||||
@ -414,7 +418,7 @@ UniqueThirdParties=مجموع الأطراف الثالثة فريدة من نو
|
|||||||
InActivity=فتح
|
InActivity=فتح
|
||||||
ActivityCeased=مغلق
|
ActivityCeased=مغلق
|
||||||
ActivityStateFilter=نشاط المركز
|
ActivityStateFilter=نشاط المركز
|
||||||
ProductsIntoElements=List of products into %s
|
ProductsIntoElements=List of products/services into %s
|
||||||
CurrentOutstandingBill=Current outstanding bill
|
CurrentOutstandingBill=Current outstanding bill
|
||||||
OutstandingBill=Max. for outstanding bill
|
OutstandingBill=Max. for outstanding bill
|
||||||
OutstandingBillReached=Reached max. for outstanding bill
|
OutstandingBillReached=Reached max. for outstanding bill
|
||||||
|
|||||||
@ -79,16 +79,21 @@ ListPayment=قائمة المدفوعات
|
|||||||
ListOfPayments=قائمة المدفوعات
|
ListOfPayments=قائمة المدفوعات
|
||||||
ListOfCustomerPayments=قائمة مدفوعات العملاء
|
ListOfCustomerPayments=قائمة مدفوعات العملاء
|
||||||
ListOfSupplierPayments=قائمة الموردين المدفوعات
|
ListOfSupplierPayments=قائمة الموردين المدفوعات
|
||||||
DatePayment=تاريخ الدفع
|
|
||||||
DateStartPeriod=Date start period
|
DateStartPeriod=Date start period
|
||||||
DateEndPeriod=Date end period
|
DateEndPeriod=Date end period
|
||||||
NewVATPayment=دفع ضريبة القيمة المضافة الجديدة
|
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
|
newLT1PaymentES=New RE payment
|
||||||
LT2PaymentES=IRPF الدفع
|
newLT2PaymentES=جديد IRPF دفع
|
||||||
LT2PaymentsES=الدفعات IRPF
|
|
||||||
LT1PaymentES=RE Payment
|
LT1PaymentES=RE Payment
|
||||||
LT1PaymentsES=RE Payments
|
LT1PaymentsES=RE Payments
|
||||||
|
LT2PaymentES=IRPF الدفع
|
||||||
|
LT2PaymentsES=الدفعات IRPF
|
||||||
VATPayment=دفع ضريبة القيمة المضافة
|
VATPayment=دفع ضريبة القيمة المضافة
|
||||||
VATPayments=دفع ضريبة القيمة المضافة
|
VATPayments=دفع ضريبة القيمة المضافة
|
||||||
VATRefund=VAT Refund
|
VATRefund=VAT Refund
|
||||||
@ -99,6 +104,8 @@ TotalToPay=على دفع ما مجموعه
|
|||||||
TotalVATReceived=تلقى مجموع الضريبة على القيمة المضافة
|
TotalVATReceived=تلقى مجموع الضريبة على القيمة المضافة
|
||||||
CustomerAccountancyCode=قانون محاسبة العملاء
|
CustomerAccountancyCode=قانون محاسبة العملاء
|
||||||
SupplierAccountancyCode=مورد قانون المحاسبة
|
SupplierAccountancyCode=مورد قانون المحاسبة
|
||||||
|
CustomerAccountancyCodeShort=Cust. account. code
|
||||||
|
SupplierAccountancyCodeShort=Sup. account. code
|
||||||
AccountNumberShort=رقم الحساب
|
AccountNumberShort=رقم الحساب
|
||||||
AccountNumber=رقم الحساب
|
AccountNumber=رقم الحساب
|
||||||
NewAccount=حساب جديد
|
NewAccount=حساب جديد
|
||||||
@ -140,9 +147,9 @@ AnnualByCompaniesInputOutputMode=ميزان الإيرادات والنفقات
|
|||||||
SeeReportInInputOutputMode=انظر التقرير <b>sIncomes ٪</b> بين <b>المصروفات ٪ ق</b> قال <b>المحاسبة النقدية</b> لحساب المدفوعات الفعلية
|
SeeReportInInputOutputMode=انظر التقرير <b>sIncomes ٪</b> بين <b>المصروفات ٪ ق</b> قال <b>المحاسبة النقدية</b> لحساب المدفوعات الفعلية
|
||||||
SeeReportInDueDebtMode=انظر التقرير <b>sClaims ٪</b> بين <b>ديونها ٪ ق الالتزام والمحاسبة</b> وقال لحساب فواتير
|
SeeReportInDueDebtMode=انظر التقرير <b>sClaims ٪</b> بين <b>ديونها ٪ ق الالتزام والمحاسبة</b> وقال لحساب فواتير
|
||||||
RulesAmountWithTaxIncluded=- Amounts shown are with all taxes included
|
RulesAmountWithTaxIncluded=- Amounts shown are with all taxes included
|
||||||
RulesResultDue=-- المبالغ المبينة مع كل الضرائب وشملت <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 and VAT. <br>- It is based on the payment dates of the invoices, expenses and VAT.
|
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=-- ويشمل العملاء الفواتير المستحقة ما إذا كانت دفعت أم لا. <br> -- يقوم على تاريخ المصادقة على هذه الفواتير. <br>
|
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>
|
RulesCAIn=-- ويشمل جميع الفعال دفع الفواتير الواردة من العملاء. <br> -- يقوم على دفع هذه الفواتير تاريخ <br>
|
||||||
DepositsAreNotIncluded=- يتم ولا تشمل ودائع الفواتير
|
DepositsAreNotIncluded=- يتم ولا تشمل ودائع الفواتير
|
||||||
DepositsAreIncluded=- وترد الفواتير ودائع
|
DepositsAreIncluded=- وترد الفواتير ودائع
|
||||||
@ -192,7 +199,6 @@ ByProductsAndServices=By products and services
|
|||||||
RefExt=External ref
|
RefExt=External ref
|
||||||
ToCreateAPredefinedInvoice=To create a predefined invoice, create a standard invoice then, without validating it, click onto button "Convert to predefined invoice".
|
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
|
LinkedOrder=Link to order
|
||||||
ReCalculate=Recalculate
|
|
||||||
Mode1=Method 1
|
Mode1=Method 1
|
||||||
Mode2=Method 2
|
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>.
|
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=مغلقة
|
ServiceStatusClosed=مغلقة
|
||||||
ServicesLegend=خدمات أسطورة
|
ServicesLegend=خدمات أسطورة
|
||||||
Contracts=عقود
|
Contracts=عقود
|
||||||
|
ContractsSubscriptions=Contracts/Subscriptions
|
||||||
ContractsAndLine=Contracts and line of contracts
|
ContractsAndLine=Contracts and line of contracts
|
||||||
Contract=العقد
|
Contract=العقد
|
||||||
ContractLine=Contract line
|
ContractLine=Contract line
|
||||||
@ -30,6 +31,7 @@ MenuRunningServices=ادارة الخدمات
|
|||||||
MenuExpiredServices=انتهت الخدمات
|
MenuExpiredServices=انتهت الخدمات
|
||||||
MenuClosedServices=أغلقت الخدمات
|
MenuClosedServices=أغلقت الخدمات
|
||||||
NewContract=العقد الجديد
|
NewContract=العقد الجديد
|
||||||
|
NewContractSubscription=New contract/subscription
|
||||||
AddContract=Create contract
|
AddContract=Create contract
|
||||||
SearchAContract=بحث عقد
|
SearchAContract=بحث عقد
|
||||||
DeleteAContract=الغاء العقد
|
DeleteAContract=الغاء العقد
|
||||||
|
|||||||
@ -7,6 +7,7 @@ DeliveryOrders=توصيل الطلبات
|
|||||||
DeliveryDate=تاريخ التسليم
|
DeliveryDate=تاريخ التسليم
|
||||||
DeliveryDateShort=Deliv. تاريخ
|
DeliveryDateShort=Deliv. تاريخ
|
||||||
CreateDeliveryOrder=ومن أجل توليد التسليم
|
CreateDeliveryOrder=ومن أجل توليد التسليم
|
||||||
|
DeliveryStateSaved=Delivery state saved
|
||||||
QtyDelivered=الكمية المسلمة
|
QtyDelivered=الكمية المسلمة
|
||||||
SetDeliveryDate=حدد تاريخ الشحن
|
SetDeliveryDate=حدد تاريخ الشحن
|
||||||
ValidateDeliveryReceipt=تحقق من إنجاز ورود
|
ValidateDeliveryReceipt=تحقق من إنجاز ورود
|
||||||
@ -24,3 +25,5 @@ Deliverer=المنفذ :
|
|||||||
Sender=مرسل
|
Sender=مرسل
|
||||||
Recipient=المتلقي
|
Recipient=المتلقي
|
||||||
ErrorStockIsNotEnough=There's not enough stock
|
ErrorStockIsNotEnough=There's not enough stock
|
||||||
|
Shippable=Shippable
|
||||||
|
NonShippable=Not Shippable
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
# Dolibarr language file - Source file is en_US - ecm
|
# Dolibarr language file - Source file is en_US - ecm
|
||||||
MenuECM=وثائق
|
|
||||||
DocsMine=بلدي وثائق
|
DocsMine=بلدي وثائق
|
||||||
DocsGenerated=ولدت وثائق
|
DocsGenerated=ولدت وثائق
|
||||||
DocsElements=عناصر وثائق
|
DocsElements=عناصر وثائق
|
||||||
|
|||||||
@ -3,8 +3,6 @@
|
|||||||
# No errors
|
# No errors
|
||||||
NoErrorCommitIsDone=No error, we commit
|
NoErrorCommitIsDone=No error, we commit
|
||||||
# Errors
|
# Errors
|
||||||
Error=خطأ
|
|
||||||
Errors=أخطاء
|
|
||||||
ErrorButCommitIsDone=Errors found but we validate despite this
|
ErrorButCommitIsDone=Errors found but we validate despite this
|
||||||
ErrorBadEMail=بريد إلكتروني خاطئ %s
|
ErrorBadEMail=بريد إلكتروني خاطئ %s
|
||||||
ErrorBadUrl=عنوان الموقع هو الخطأ %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
|
ErrorFieldMustBeAnInteger=Field <b>%s</b> must be an integer
|
||||||
ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
|
ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
|
||||||
ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
|
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
|
# 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
|
WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined
|
||||||
WarningSafeModeOnCheckExecDir=انذار ، فب <b>safe_mode</b> الخيار في ذلك تخزين الأمر يجب أن يكون داخل الدليل الذي أعلنته <b>safe_mode_exec_dir</b> المعلمة بي.
|
WarningSafeModeOnCheckExecDir=انذار ، فب <b>safe_mode</b> الخيار في ذلك تخزين الأمر يجب أن يكون داخل الدليل الذي أعلنته <b>safe_mode_exec_dir</b> المعلمة بي.
|
||||||
WarningAllowUrlFopenMustBeOn=<b>allow_url_fopen</b> المعلم يجب أن يوضع <b>على</b> المدون في <b>php.ini</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 (٪) عن طريق النقر فوق القطعة له (والحد الاعلى لسعر يتم تحديثها تلقائيا) :
|
LinkToGoldMember=تستطيع الاتصال به من قبل المدرب مختار مسبقا لغتك Dolibarr (٪) عن طريق النقر فوق القطعة له (والحد الاعلى لسعر يتم تحديثها تلقائيا) :
|
||||||
PossibleLanguages=وأيد لغات
|
PossibleLanguages=وأيد لغات
|
||||||
MakeADonation=مساعدة Dolibarr المشروع ، تقديم تبرع
|
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>
|
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=خادم قاعدة البيانات
|
DatabaseServer=خادم قاعدة البيانات
|
||||||
DatabaseName=اسم قاعدة البيانات
|
DatabaseName=اسم قاعدة البيانات
|
||||||
DatabasePrefix=قاعدة بيانات بادئة الجدول
|
DatabasePrefix=قاعدة بيانات بادئة الجدول
|
||||||
Login=تسجيل الدخول
|
|
||||||
AdminLogin=ادخل لDolibarr مدير قاعدة البيانات. تبقي فارغة إذا لم يذكر اسمه في اتصال
|
AdminLogin=ادخل لDolibarr مدير قاعدة البيانات. تبقي فارغة إذا لم يذكر اسمه في اتصال
|
||||||
Password=كلمة السر
|
|
||||||
PasswordAgain=أعد كتابة كلمة المرور مرة ثانية
|
PasswordAgain=أعد كتابة كلمة المرور مرة ثانية
|
||||||
AdminPassword=Dolibarr كلمة السر لمدير قاعدة البيانات. تبقي فارغة إذا لم يذكر اسمه في اتصال
|
AdminPassword=Dolibarr كلمة السر لمدير قاعدة البيانات. تبقي فارغة إذا لم يذكر اسمه في اتصال
|
||||||
CreateDatabase=إنشاء قاعدة بيانات
|
CreateDatabase=إنشاء قاعدة بيانات
|
||||||
@ -62,14 +60,11 @@ CreateUser=إنشاء مستخدم
|
|||||||
DatabaseSuperUserAccess=قاعدة بيانات -- وصول مستخدم الكومبيوتر ذو الصلاحيات العليا
|
DatabaseSuperUserAccess=قاعدة بيانات -- وصول مستخدم الكومبيوتر ذو الصلاحيات العليا
|
||||||
CheckToCreateDatabase=المربع إذا كان لا وجود قاعدة بيانات ، ويجب تهيئة. <br> في هذه الحالة ، يجب عليك ملء ادخل كلمة السر لحساب المستعملين المتميزين في أسفل هذه الصفحة.
|
CheckToCreateDatabase=المربع إذا كان لا وجود قاعدة بيانات ، ويجب تهيئة. <br> في هذه الحالة ، يجب عليك ملء ادخل كلمة السر لحساب المستعملين المتميزين في أسفل هذه الصفحة.
|
||||||
CheckToCreateUser=المربع اذا ادخل لا وجود له ، ويجب تهيئة. <br> في هذه الحالة ، يجب عليك ملء ادخل كلمة السر لحساب المستعملين المتميزين في أسفل هذه الصفحة.
|
CheckToCreateUser=المربع اذا ادخل لا وجود له ، ويجب تهيئة. <br> في هذه الحالة ، يجب عليك ملء ادخل كلمة السر لحساب المستعملين المتميزين في أسفل هذه الصفحة.
|
||||||
Experimental=(التجريبية وغير التشغيلية)
|
|
||||||
Deprecated=(deprecated)
|
|
||||||
DatabaseRootLoginDescription=ادخل يسمح للمستخدم لإنشاء قواعد بيانات جديدة أو المستخدمين الجدد ، وإذا كانت غير مجدية وقاعدة البيانات وقاعدة البيانات ادخل موجود بالفعل (مثل عندما كنت استضافته استضافة ويب).
|
DatabaseRootLoginDescription=ادخل يسمح للمستخدم لإنشاء قواعد بيانات جديدة أو المستخدمين الجدد ، وإذا كانت غير مجدية وقاعدة البيانات وقاعدة البيانات ادخل موجود بالفعل (مثل عندما كنت استضافته استضافة ويب).
|
||||||
KeepEmptyIfNoPassword=ترك فارغا إذا لم المستخدم كلمة السر (تجنب هذا؟)
|
KeepEmptyIfNoPassword=ترك فارغا إذا لم المستخدم كلمة السر (تجنب هذا؟)
|
||||||
SaveConfigurationFile=إنقاذ القيم
|
SaveConfigurationFile=إنقاذ القيم
|
||||||
ConfigurationSaving=إنقاذ ملفات
|
ConfigurationSaving=إنقاذ ملفات
|
||||||
ServerConnection=اتصال الخادم
|
ServerConnection=اتصال الخادم
|
||||||
DatabaseConnection=قاعدة بيانات الصدد
|
|
||||||
DatabaseCreation=إنشاء قاعدة بيانات
|
DatabaseCreation=إنشاء قاعدة بيانات
|
||||||
UserCreation=إنشاء مستخدم
|
UserCreation=إنشاء مستخدم
|
||||||
CreateDatabaseObjects=إنشاء قاعدة بيانات الأجسام
|
CreateDatabaseObjects=إنشاء قاعدة بيانات الأجسام
|
||||||
@ -92,7 +87,6 @@ GoToDolibarr=الذهاب إلى Dolibarr
|
|||||||
GoToSetupArea=الذهاب إلى Dolibarr (مجال الإعداد)
|
GoToSetupArea=الذهاب إلى Dolibarr (مجال الإعداد)
|
||||||
MigrationNotFinished=نسخة من قاعدة البيانات الخاصة بك لا يصل تماما حتى الآن ، لذلك سيكون لديك لتشغيل عملية الترقية مرة أخرى.
|
MigrationNotFinished=نسخة من قاعدة البيانات الخاصة بك لا يصل تماما حتى الآن ، لذلك سيكون لديك لتشغيل عملية الترقية مرة أخرى.
|
||||||
GoToUpgradePage=الذهاب لتحديث الصفحة مرة أخرى
|
GoToUpgradePage=الذهاب لتحديث الصفحة مرة أخرى
|
||||||
Examples=أمثلة
|
|
||||||
WithNoSlashAtTheEnd=بدون خفض "/" في نهاية
|
WithNoSlashAtTheEnd=بدون خفض "/" في نهاية
|
||||||
DirectoryRecommendation=وrecommanded به لاستخدام دليل خارج الدليل الخاص من صفحات موقعك.
|
DirectoryRecommendation=وrecommanded به لاستخدام دليل خارج الدليل الخاص من صفحات موقعك.
|
||||||
LoginAlreadyExists=موجود بالفعل
|
LoginAlreadyExists=موجود بالفعل
|
||||||
@ -113,7 +107,6 @@ Upgrade=ترقية
|
|||||||
UpgradeDesc=استخدام هذه الطريقة إذا كنت قد حلت محل القديمة Dolibarr الملفات من الملفات مع إصدار أحدث. وهذا من شأنه رفع مستوى قاعدة البيانات والبيانات.
|
UpgradeDesc=استخدام هذه الطريقة إذا كنت قد حلت محل القديمة Dolibarr الملفات من الملفات مع إصدار أحدث. وهذا من شأنه رفع مستوى قاعدة البيانات والبيانات.
|
||||||
Start=يبدأ
|
Start=يبدأ
|
||||||
InstallNotAllowed=الإعداد غير مسموح به <b>conf.php</b> الاذونات
|
InstallNotAllowed=الإعداد غير مسموح به <b>conf.php</b> الاذونات
|
||||||
NotAvailable=غير متاحة
|
|
||||||
YouMustCreateWithPermission=يجب إنشاء ملف ق ٪ ومجموعة الكتابة على أذونات لملقم الويب أثناء عملية التثبيت.
|
YouMustCreateWithPermission=يجب إنشاء ملف ق ٪ ومجموعة الكتابة على أذونات لملقم الويب أثناء عملية التثبيت.
|
||||||
CorrectProblemAndReloadPage=يرجى تحديد المشكلة والصحافة F5 لإعادة تحميل الصفحة.
|
CorrectProblemAndReloadPage=يرجى تحديد المشكلة والصحافة F5 لإعادة تحميل الصفحة.
|
||||||
AlreadyDone=بالفعل هاجر
|
AlreadyDone=بالفعل هاجر
|
||||||
@ -155,7 +148,7 @@ MigrationFinished=الانتهاء من الهجرة
|
|||||||
LastStepDesc=<strong>الخطوة الأخيرة</strong> : تعريف المستخدم وكلمة السر هنا كنت تخطط لاستخدامها للاتصال البرمجيات. لا تفقد هذا كما هو حساب لإدارة جميع الآخرين.
|
LastStepDesc=<strong>الخطوة الأخيرة</strong> : تعريف المستخدم وكلمة السر هنا كنت تخطط لاستخدامها للاتصال البرمجيات. لا تفقد هذا كما هو حساب لإدارة جميع الآخرين.
|
||||||
ActivateModule=تفعيل وحدة %s
|
ActivateModule=تفعيل وحدة %s
|
||||||
ShowEditTechnicalParameters=انقر هنا لعرض/تحرير المعلمات المتقدمة (وضع الخبراء)
|
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)
|
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)
|
MailTopicSendRemindUnpaidInvoices=Reminder of invoice %s (%s)
|
||||||
SendRemind=Send reminder by EMails
|
SendRemind=Send reminder by EMails
|
||||||
RemindSent=%s reminder(s) sent
|
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
|
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
|
# Libelle des modules de liste de destinataires mailing
|
||||||
MailingModuleDescContactCompanies=اتصالات لجميع الأطراف الثالثة (العملاء ، والاحتمال ، والمورد ،...)
|
MailingModuleDescContactCompanies=اتصالات لجميع الأطراف الثالثة (العملاء ، والاحتمال ، والمورد ،...)
|
||||||
@ -97,7 +100,7 @@ MailingModuleDescEmailsFromUser=EMails from user input (email;lastname;firstname
|
|||||||
MailingModuleDescContactsCategories=أطراف ثالثة مع رسائل البريد الإلكتروني (حسب الفئة)
|
MailingModuleDescContactsCategories=أطراف ثالثة مع رسائل البريد الإلكتروني (حسب الفئة)
|
||||||
MailingModuleDescDolibarrContractsLinesExpired=أطراف ثالثة مع انتهاء العقد خطوط
|
MailingModuleDescDolibarrContractsLinesExpired=أطراف ثالثة مع انتهاء العقد خطوط
|
||||||
MailingModuleDescContactsByCompanyCategory=اتصالات من أطراف ثالثة (من قبل أطراف ثالثة الفئة)
|
MailingModuleDescContactsByCompanyCategory=اتصالات من أطراف ثالثة (من قبل أطراف ثالثة الفئة)
|
||||||
MailingModuleDescContactsByCategory=Contacts/addresses of third parties by category
|
MailingModuleDescContactsByCategory=Contacts/addresses of third parties (by category)
|
||||||
MailingModuleDescMembersCategories=أعضاء مؤسسة (حسب الفئات)
|
MailingModuleDescMembersCategories=أعضاء مؤسسة (حسب الفئات)
|
||||||
MailingModuleDescContactsByFunction=اتصالات من أطراف ثالثة (من قبل المنصب / الوظيفة)
|
MailingModuleDescContactsByFunction=اتصالات من أطراف ثالثة (من قبل المنصب / الوظيفة)
|
||||||
LineInFile=خط المستندات في ملف ٪
|
LineInFile=خط المستندات في ملف ٪
|
||||||
|
|||||||
@ -28,6 +28,7 @@ NoTranslation=No translation
|
|||||||
NoRecordFound=No record found
|
NoRecordFound=No record found
|
||||||
NoError=أي خطأ
|
NoError=أي خطأ
|
||||||
Error=خطأ
|
Error=خطأ
|
||||||
|
Errors=Errors
|
||||||
ErrorFieldRequired=الميدان '٪ ق' مطلوب
|
ErrorFieldRequired=الميدان '٪ ق' مطلوب
|
||||||
ErrorFieldFormat=الميدان '٪ ق' سيئة القيمة
|
ErrorFieldFormat=الميدان '٪ ق' سيئة القيمة
|
||||||
ErrorFileDoesNotExists=ملف ٪ ق لا يوجد
|
ErrorFileDoesNotExists=ملف ٪ ق لا يوجد
|
||||||
@ -59,6 +60,7 @@ ErrorCantLoadUserFromDolibarrDatabase=فشلت في العثور على المس
|
|||||||
ErrorNoVATRateDefinedForSellerCountry=خطأ ، لم يعرف لمعدلات ضريبة القيمة المضافة فى البلاد ٪ ق.
|
ErrorNoVATRateDefinedForSellerCountry=خطأ ، لم يعرف لمعدلات ضريبة القيمة المضافة فى البلاد ٪ ق.
|
||||||
ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'.
|
ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'.
|
||||||
ErrorFailedToSaveFile=خطأ ، وفشلت في انقاذ الملف.
|
ErrorFailedToSaveFile=خطأ ، وفشلت في انقاذ الملف.
|
||||||
|
NotAuthorized=You are not authorized to do that.
|
||||||
SetDate=Set date
|
SetDate=Set date
|
||||||
SelectDate=Select a date
|
SelectDate=Select a date
|
||||||
SeeAlso=See also %s
|
SeeAlso=See also %s
|
||||||
@ -97,6 +99,7 @@ DolibarrHasDetectedError=Dolibarr اكتشفت خطأ فني
|
|||||||
InformationToHelpDiagnose=هذه هي المعلومات التي يمكن أن تساعد على تشخيص
|
InformationToHelpDiagnose=هذه هي المعلومات التي يمكن أن تساعد على تشخيص
|
||||||
MoreInformation=مزيد من المعلومات
|
MoreInformation=مزيد من المعلومات
|
||||||
TechnicalInformation=Technical information
|
TechnicalInformation=Technical information
|
||||||
|
TechnicalID=Technical ID
|
||||||
NotePublic=علما (العامة)
|
NotePublic=علما (العامة)
|
||||||
NotePrivate=المذكرة (الخاصة)
|
NotePrivate=المذكرة (الخاصة)
|
||||||
PrecisionUnitIsLimitedToXDecimals=Dolibarr كان الإعداد بدقة للحد من أسعار الوحدات إلى <b>٪ ق</b> عشرية.
|
PrecisionUnitIsLimitedToXDecimals=Dolibarr كان الإعداد بدقة للحد من أسعار الوحدات إلى <b>٪ ق</b> عشرية.
|
||||||
@ -228,6 +231,7 @@ DateAndHour=Date and hour
|
|||||||
DateStart=تاريخ البدء
|
DateStart=تاريخ البدء
|
||||||
DateEnd=نهاية التاريخ
|
DateEnd=نهاية التاريخ
|
||||||
DateCreation=تاريخ الإنشاء
|
DateCreation=تاريخ الإنشاء
|
||||||
|
DateCreationShort=Creat. date
|
||||||
DateModification=تعديل التاريخ
|
DateModification=تعديل التاريخ
|
||||||
DateModificationShort=Modif. تاريخ
|
DateModificationShort=Modif. تاريخ
|
||||||
DateLastModification=تاريخ آخر تعديل
|
DateLastModification=تاريخ آخر تعديل
|
||||||
@ -384,6 +388,7 @@ NActions=ق ٪ الإجراءات
|
|||||||
NActionsLate=ق ٪ في وقت متأخر
|
NActionsLate=ق ٪ في وقت متأخر
|
||||||
RequestAlreadyDone=Request already recorded
|
RequestAlreadyDone=Request already recorded
|
||||||
Filter=فلتر
|
Filter=فلتر
|
||||||
|
FilterOnInto=Search criteria '<strong>%s</strong>' into fields %s
|
||||||
RemoveFilter=إزالة فلتر
|
RemoveFilter=إزالة فلتر
|
||||||
ChartGenerated=رسم ولدت
|
ChartGenerated=رسم ولدت
|
||||||
ChartNotGenerated=رسم لم تولد
|
ChartNotGenerated=رسم لم تولد
|
||||||
@ -574,6 +579,7 @@ SendByMail=أرسل عن طريق البريد الالكتروني
|
|||||||
MailSentBy=البريد الإلكتروني التي بعث بها
|
MailSentBy=البريد الإلكتروني التي بعث بها
|
||||||
TextUsedInTheMessageBody=هيئة البريد الإلكتروني
|
TextUsedInTheMessageBody=هيئة البريد الإلكتروني
|
||||||
SendAcknowledgementByMail=ارسال Ack. عن طريق البريد الإلكتروني
|
SendAcknowledgementByMail=ارسال Ack. عن طريق البريد الإلكتروني
|
||||||
|
EMail=E-mail
|
||||||
NoEMail=أي بريد إلكتروني
|
NoEMail=أي بريد إلكتروني
|
||||||
NoMobilePhone=No mobile phone
|
NoMobilePhone=No mobile phone
|
||||||
Owner=مالك
|
Owner=مالك
|
||||||
@ -666,7 +672,7 @@ NewAttribute=جديد السمة
|
|||||||
AttributeCode=السمة رمز
|
AttributeCode=السمة رمز
|
||||||
OptionalFieldsSetup=اضافية سمات الإعداد
|
OptionalFieldsSetup=اضافية سمات الإعداد
|
||||||
URLPhoto=للتسجيل من الصورة / الشعار
|
URLPhoto=للتسجيل من الصورة / الشعار
|
||||||
SetLinkToThirdParty=ربط طرف ثالث آخر
|
SetLinkToAnotherThirdParty=Link to another third party
|
||||||
CreateDraft=خلق مشروع
|
CreateDraft=خلق مشروع
|
||||||
SetToDraft=Back to draft
|
SetToDraft=Back to draft
|
||||||
ClickToEdit=انقر للتحرير
|
ClickToEdit=انقر للتحرير
|
||||||
@ -693,6 +699,7 @@ Deductible=Deductible
|
|||||||
from=from
|
from=from
|
||||||
toward=toward
|
toward=toward
|
||||||
Access=Access
|
Access=Access
|
||||||
|
SelectAction=Select action
|
||||||
HelpCopyToClipboard=Use Ctrl+C to copy to clipboard
|
HelpCopyToClipboard=Use Ctrl+C to copy to clipboard
|
||||||
SaveUploadedFileWithMask=Save file on server with name "<strong>%s</strong>" (otherwise "%s")
|
SaveUploadedFileWithMask=Save file on server with name "<strong>%s</strong>" (otherwise "%s")
|
||||||
OriginFileName=Original filename
|
OriginFileName=Original filename
|
||||||
@ -717,6 +724,9 @@ ViewList=List view
|
|||||||
Mandatory=Mandatory
|
Mandatory=Mandatory
|
||||||
Hello=Hello
|
Hello=Hello
|
||||||
Sincerely=Sincerely
|
Sincerely=Sincerely
|
||||||
|
DeleteLine=Delete line
|
||||||
|
ConfirmDeleteLine=Are you sure you want to delete this line ?
|
||||||
|
|
||||||
# Week day
|
# Week day
|
||||||
Monday=يوم الاثنين
|
Monday=يوم الاثنين
|
||||||
Tuesday=الثلاثاء
|
Tuesday=الثلاثاء
|
||||||
@ -748,4 +758,24 @@ ShortSaturday=دإ
|
|||||||
ShortSunday=دإ
|
ShortSunday=دإ
|
||||||
SelectMailModel=Select email template
|
SelectMailModel=Select email template
|
||||||
SetRef=Set ref
|
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=سلسلة
|
String=سلسلة
|
||||||
Text=النص
|
Text=النص
|
||||||
Int=Int
|
Int=Int
|
||||||
Date=تاريخ
|
|
||||||
DateAndTime=التاريخ والوقت
|
DateAndTime=التاريخ والوقت
|
||||||
PublicMemberCard=عضو بطاقة العامة
|
PublicMemberCard=عضو بطاقة العامة
|
||||||
MemberNotOrNoMoreExpectedToSubscribe=أو ليست عضوا في أي أكثر من المتوقع للاكتتاب
|
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
|
StatusOrderSent=Shipment in process
|
||||||
StatusOrderOnProcessShort=Ordered
|
StatusOrderOnProcessShort=Ordered
|
||||||
StatusOrderProcessedShort=تجهيز
|
StatusOrderProcessedShort=تجهيز
|
||||||
|
StatusOrderDelivered=Delivered
|
||||||
StatusOrderToBillShort=على مشروع قانون
|
StatusOrderToBillShort=على مشروع قانون
|
||||||
StatusOrderToBill2Short=على مشروع قانون
|
StatusOrderToBill2Short=على مشروع قانون
|
||||||
StatusOrderApprovedShort=وافق
|
StatusOrderApprovedShort=وافق
|
||||||
StatusOrderRefusedShort=رفض
|
StatusOrderRefusedShort=رفض
|
||||||
|
StatusOrderBilledShort=Billed
|
||||||
StatusOrderToProcessShort=لعملية
|
StatusOrderToProcessShort=لعملية
|
||||||
StatusOrderReceivedPartiallyShort=تلقى جزئيا
|
StatusOrderReceivedPartiallyShort=تلقى جزئيا
|
||||||
StatusOrderReceivedAllShort=وتلقى كل شيء
|
StatusOrderReceivedAllShort=وتلقى كل شيء
|
||||||
@ -48,6 +50,7 @@ StatusOrderToBill=على مشروع قانون
|
|||||||
StatusOrderToBill2=على مشروع قانون
|
StatusOrderToBill2=على مشروع قانون
|
||||||
StatusOrderApproved=وافق
|
StatusOrderApproved=وافق
|
||||||
StatusOrderRefused=رفض
|
StatusOrderRefused=رفض
|
||||||
|
StatusOrderBilled=Billed
|
||||||
StatusOrderReceivedPartially=تلقى جزئيا
|
StatusOrderReceivedPartially=تلقى جزئيا
|
||||||
StatusOrderReceivedAll=وتلقى كل شيء
|
StatusOrderReceivedAll=وتلقى كل شيء
|
||||||
ShippingExist=شحنة موجود
|
ShippingExist=شحنة موجود
|
||||||
@ -61,7 +64,6 @@ SearchOrder=من أجل البحث
|
|||||||
SearchACustomerOrder=Search a customer order
|
SearchACustomerOrder=Search a customer order
|
||||||
SearchASupplierOrder=Search a supplier order
|
SearchASupplierOrder=Search a supplier order
|
||||||
ShipProduct=سفينة المنتج
|
ShipProduct=سفينة المنتج
|
||||||
Discount=الخصم
|
|
||||||
CreateOrder=خلق أمر
|
CreateOrder=خلق أمر
|
||||||
RefuseOrder=رفض النظام
|
RefuseOrder=رفض النظام
|
||||||
ApproveOrder=Approve order
|
ApproveOrder=Approve order
|
||||||
@ -70,6 +72,7 @@ ValidateOrder=من أجل التحقق من صحة
|
|||||||
UnvalidateOrder=Unvalidate النظام
|
UnvalidateOrder=Unvalidate النظام
|
||||||
DeleteOrder=من أجل حذف
|
DeleteOrder=من أجل حذف
|
||||||
CancelOrder=من أجل إلغاء
|
CancelOrder=من أجل إلغاء
|
||||||
|
OrderReopened= Order %s Reopened
|
||||||
AddOrder=Create order
|
AddOrder=Create order
|
||||||
AddToMyOrders=أضف إلى أوامر
|
AddToMyOrders=أضف إلى أوامر
|
||||||
AddToOtherOrders=إضافة إلى أوامر أخرى
|
AddToOtherOrders=إضافة إلى أوامر أخرى
|
||||||
@ -79,6 +82,8 @@ OrdersOpened=Orders to process
|
|||||||
NoOpenedOrders=No open orders
|
NoOpenedOrders=No open orders
|
||||||
NoOtherOpenedOrders=No other open orders
|
NoOtherOpenedOrders=No other open orders
|
||||||
NoDraftOrders=No draft orders
|
NoDraftOrders=No draft orders
|
||||||
|
NoOrder=No Order
|
||||||
|
NoSupplierOrder=No supplier order
|
||||||
OtherOrders=أوامر أخرى
|
OtherOrders=أوامر أخرى
|
||||||
LastOrders=Last %s customer orders
|
LastOrders=Last %s customer orders
|
||||||
LastCustomerOrders=Last %s customer orders
|
LastCustomerOrders=Last %s customer orders
|
||||||
@ -105,6 +110,7 @@ ClassifyShipped=Classify delivered
|
|||||||
ClassifyBilled=تصنيف "فواتير"
|
ClassifyBilled=تصنيف "فواتير"
|
||||||
ComptaCard=بطاقة المحاسبة
|
ComptaCard=بطاقة المحاسبة
|
||||||
DraftOrders=مشروع أوامر
|
DraftOrders=مشروع أوامر
|
||||||
|
DraftSuppliersOrders=Draft suppliers orders
|
||||||
RelatedOrders=الأوامر ذات الصلة
|
RelatedOrders=الأوامر ذات الصلة
|
||||||
RelatedCustomerOrders=Related customer orders
|
RelatedCustomerOrders=Related customer orders
|
||||||
RelatedSupplierOrders=Related supplier orders
|
RelatedSupplierOrders=Related supplier orders
|
||||||
|
|||||||
@ -10,27 +10,26 @@ BirthdayAlertOn= عيد ميلاد النشطة في حالة تأهب
|
|||||||
BirthdayAlertOff= عيد الميلاد فى حالة تأهب الخاملة
|
BirthdayAlertOff= عيد الميلاد فى حالة تأهب الخاملة
|
||||||
Notify_FICHINTER_VALIDATE=تدخل المصادق
|
Notify_FICHINTER_VALIDATE=تدخل المصادق
|
||||||
Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
|
Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
|
||||||
Notify_BILL_VALIDATE=فاتورة مصادق
|
Notify_ORDER_VALIDATE=التحقق من صحة النظام العميل
|
||||||
Notify_BILL_UNVALIDATE=Customer invoice unvalidated
|
Notify_ORDER_SENTBYMAIL=النظام العميل ترسل عن طريق البريد
|
||||||
|
Notify_ORDER_SUPPLIER_SENTBYMAIL=النظام مزود ترسل عن طريق البريد
|
||||||
Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
|
Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
|
||||||
Notify_ORDER_SUPPLIER_APPROVE=من أجل الموافقة على المورد
|
Notify_ORDER_SUPPLIER_APPROVE=من أجل الموافقة على المورد
|
||||||
Notify_ORDER_SUPPLIER_REFUSE=من أجل رفض الموردين
|
Notify_ORDER_SUPPLIER_REFUSE=من أجل رفض الموردين
|
||||||
Notify_ORDER_VALIDATE=التحقق من صحة النظام العميل
|
|
||||||
Notify_PROPAL_VALIDATE=التحقق من صحة اقتراح العملاء
|
Notify_PROPAL_VALIDATE=التحقق من صحة اقتراح العملاء
|
||||||
Notify_PROPAL_CLOSE_SIGNED=Customer propal closed signed
|
Notify_PROPAL_CLOSE_SIGNED=Customer propal closed signed
|
||||||
Notify_PROPAL_CLOSE_REFUSED=Customer propal closed refused
|
Notify_PROPAL_CLOSE_REFUSED=Customer propal closed refused
|
||||||
|
Notify_PROPAL_SENTBYMAIL=اقتراح التجارية المرسلة عن طريق البريد
|
||||||
Notify_WITHDRAW_TRANSMIT=انتقال انسحاب
|
Notify_WITHDRAW_TRANSMIT=انتقال انسحاب
|
||||||
Notify_WITHDRAW_CREDIT=انسحاب الائتمان
|
Notify_WITHDRAW_CREDIT=انسحاب الائتمان
|
||||||
Notify_WITHDRAW_EMIT=Isue انسحاب
|
Notify_WITHDRAW_EMIT=Isue انسحاب
|
||||||
Notify_ORDER_SENTBYMAIL=النظام العميل ترسل عن طريق البريد
|
|
||||||
Notify_COMPANY_CREATE=طرف ثالث خلق
|
Notify_COMPANY_CREATE=طرف ثالث خلق
|
||||||
Notify_COMPANY_SENTBYMAIL=Mails sent from third party card
|
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_PAYED=دفعت فاتورة العميل
|
||||||
Notify_BILL_CANCEL=فاتورة الزبون إلغاء
|
Notify_BILL_CANCEL=فاتورة الزبون إلغاء
|
||||||
Notify_BILL_SENTBYMAIL=فاتورة الزبون إرسالها عن طريق البريد
|
Notify_BILL_SENTBYMAIL=فاتورة الزبون إرسالها عن طريق البريد
|
||||||
Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
|
|
||||||
Notify_ORDER_SUPPLIER_SENTBYMAIL=النظام مزود ترسل عن طريق البريد
|
|
||||||
Notify_BILL_SUPPLIER_VALIDATE=فاتورة المورد المصادق
|
Notify_BILL_SUPPLIER_VALIDATE=فاتورة المورد المصادق
|
||||||
Notify_BILL_SUPPLIER_PAYED=دفعت فاتورة المورد
|
Notify_BILL_SUPPLIER_PAYED=دفعت فاتورة المورد
|
||||||
Notify_BILL_SUPPLIER_SENTBYMAIL=فاتورة المورد ترسل عن طريق البريد
|
Notify_BILL_SUPPLIER_SENTBYMAIL=فاتورة المورد ترسل عن طريق البريد
|
||||||
@ -58,13 +57,13 @@ Miscellaneous=متفرقات
|
|||||||
NbOfActiveNotifications=Number of notifications (nb of recipient emails)
|
NbOfActiveNotifications=Number of notifications (nb of recipient emails)
|
||||||
PredefinedMailTest=هذا هو الاختبار الإلكتروني. تكون مفصولة \\ nThe سطرين من قبل حرف إرجاع.
|
PredefinedMailTest=هذا هو الاختبار الإلكتروني. تكون مفصولة \\ nThe سطرين من قبل حرف إرجاع.
|
||||||
PredefinedMailTestHtml=هذا هو البريد <b>الاختبار</b> (الاختبار يجب أن تكون في كلمة جريئة). <br> وتفصل بين الخطين من قبل حرف إرجاع.
|
PredefinedMailTestHtml=هذا هو البريد <b>الاختبار</b> (الاختبار يجب أن تكون في كلمة جريئة). <br> وتفصل بين الخطين من قبل حرف إرجاع.
|
||||||
PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __FACREF__\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 __FACREF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\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__
|
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__
|
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__
|
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__
|
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__
|
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__
|
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__
|
PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__
|
||||||
@ -121,24 +120,23 @@ LengthUnitdm=مارك ألماني
|
|||||||
LengthUnitcm=الطول
|
LengthUnitcm=الطول
|
||||||
LengthUnitmm=مم
|
LengthUnitmm=مم
|
||||||
Surface=منطقة
|
Surface=منطقة
|
||||||
SurfaceUnitm2=m2
|
SurfaceUnitm2=m²
|
||||||
SurfaceUnitdm2=dm2
|
SurfaceUnitdm2=dm²
|
||||||
SurfaceUnitcm2=cm2
|
SurfaceUnitcm2=cm²
|
||||||
SurfaceUnitmm2=mm2
|
SurfaceUnitmm2=mm²
|
||||||
SurfaceUnitfoot2=ft2
|
SurfaceUnitfoot2=ft²
|
||||||
SurfaceUnitinch2=in2
|
SurfaceUnitinch2=in²
|
||||||
Volume=حجم
|
Volume=حجم
|
||||||
TotalVolume=الحجم الإجمالي
|
TotalVolume=الحجم الإجمالي
|
||||||
VolumeUnitm3=m3
|
VolumeUnitm3=m³
|
||||||
VolumeUnitdm3=dm3
|
VolumeUnitdm3=dm³ (L)
|
||||||
VolumeUnitcm3=cm3
|
VolumeUnitcm3=cm³ (ml)
|
||||||
VolumeUnitmm3=mm3
|
VolumeUnitmm3=mm³ (µl)
|
||||||
VolumeUnitfoot3=ft3
|
VolumeUnitfoot3=ft³
|
||||||
VolumeUnitinch3=in3
|
VolumeUnitinch3=in³
|
||||||
VolumeUnitounce=أوقية
|
VolumeUnitounce=أوقية
|
||||||
VolumeUnitlitre=لتر
|
VolumeUnitlitre=لتر
|
||||||
VolumeUnitgallon=غالون
|
VolumeUnitgallon=غالون
|
||||||
Size=حجم
|
|
||||||
SizeUnitm=م
|
SizeUnitm=م
|
||||||
SizeUnitdm=مارك ألماني
|
SizeUnitdm=مارك ألماني
|
||||||
SizeUnitcm=سم
|
SizeUnitcm=سم
|
||||||
|
|||||||
@ -23,3 +23,9 @@ PAYPAL_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not)
|
|||||||
ReturnURLAfterPayment=Return URL after payment
|
ReturnURLAfterPayment=Return URL after payment
|
||||||
ValidationOfPaypalPaymentFailed=Validation of Paypal payment failed
|
ValidationOfPaypalPaymentFailed=Validation of Paypal payment failed
|
||||||
PaypalConfirmPaymentPageWasCalledButFailed=Payment confirmation page for Paypal was called by Paypal but confirmation 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
|
# Dolibarr language file - Source file is en_US - products
|
||||||
ProductRef=المرجع المنتج.
|
ProductRef=المرجع المنتج.
|
||||||
ProductLabel=وصف المنتج
|
ProductLabel=وصف المنتج
|
||||||
|
ProductLabelTranslated=Translated product label
|
||||||
|
ProductDescriptionTranslated=Translated product description
|
||||||
|
ProductNoteTranslated=Translated product note
|
||||||
ProductServiceCard=منتجات / خدمات البطاقات
|
ProductServiceCard=منتجات / خدمات البطاقات
|
||||||
Products=المنتجات
|
Products=المنتجات
|
||||||
Services=الخدمات
|
Services=الخدمات
|
||||||
@ -64,12 +67,17 @@ ProductStatusNotOnBuy=عفا عليها الزمن
|
|||||||
ProductStatusOnBuyShort=متاح
|
ProductStatusOnBuyShort=متاح
|
||||||
ProductStatusNotOnBuyShort=عفا عليها الزمن
|
ProductStatusNotOnBuyShort=عفا عليها الزمن
|
||||||
UpdatePrice=آخر التطورات في الأسعار
|
UpdatePrice=آخر التطورات في الأسعار
|
||||||
|
UpdateVAT=Update vat
|
||||||
|
UpdateDefaultPrice=Update default price
|
||||||
|
UpdateLevelPrices=Update prices for each level
|
||||||
AppliedPricesFrom=تطبق الأسعار من
|
AppliedPricesFrom=تطبق الأسعار من
|
||||||
SellingPrice=سعر البيع
|
SellingPrice=سعر البيع
|
||||||
SellingPriceHT=سعر البيع (صافي الضرائب)
|
SellingPriceHT=سعر البيع (صافي الضرائب)
|
||||||
SellingPriceTTC=سعر البيع (شركة الضريبية)
|
SellingPriceTTC=سعر البيع (شركة الضريبية)
|
||||||
PublicPrice=السعر العام
|
PublicPrice=السعر العام
|
||||||
CurrentPrice=السعر الحالي
|
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=السعر الجديد
|
NewPrice=السعر الجديد
|
||||||
MinPrice=Min. selling price
|
MinPrice=Min. selling price
|
||||||
MinPriceHT=Min. selling price (net of tax)
|
MinPriceHT=Min. selling price (net of tax)
|
||||||
@ -98,9 +106,10 @@ AddToOtherProposals=إضافة إلى اقتراحات أخرى
|
|||||||
AddToMyBills=أضف إلى الفواتير
|
AddToMyBills=أضف إلى الفواتير
|
||||||
AddToOtherBills=إضافة إلى غيرها من مشاريع القوانين
|
AddToOtherBills=إضافة إلى غيرها من مشاريع القوانين
|
||||||
CorrectStock=تصحيح الأوراق المالية
|
CorrectStock=تصحيح الأوراق المالية
|
||||||
AddPhoto=إضافة الصورة
|
|
||||||
ListOfStockMovements=قائمة الحركات الأسهم
|
ListOfStockMovements=قائمة الحركات الأسهم
|
||||||
BuyingPrice=سعر الشراء
|
BuyingPrice=سعر الشراء
|
||||||
|
PriceForEachProduct=Products with specific prices
|
||||||
|
NoPriceSpecificToCustomer=This customer has no specific prices. All standard prices for products/services will be used.
|
||||||
SupplierCard=بطاقة المورد
|
SupplierCard=بطاقة المورد
|
||||||
CommercialCard=بطاقة تجارية
|
CommercialCard=بطاقة تجارية
|
||||||
AllWays=الطريق إلى إيجاد منتجك في الأسهم
|
AllWays=الطريق إلى إيجاد منتجك في الأسهم
|
||||||
@ -129,7 +138,6 @@ KeywordFilter=الكلمة الرئيسية فلتر
|
|||||||
CategoryFilter=فئة فلتر
|
CategoryFilter=فئة فلتر
|
||||||
ProductToAddSearch=إضافة إلى البحث عن المنتج
|
ProductToAddSearch=إضافة إلى البحث عن المنتج
|
||||||
AddDel=إضافة / حذف
|
AddDel=إضافة / حذف
|
||||||
Quantity=الكمية
|
|
||||||
NoMatchFound=العثور على أي مباراة
|
NoMatchFound=العثور على أي مباراة
|
||||||
ProductAssociationList=List of products/services that are component of this virtual product/package
|
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
|
ProductParentList=List of package products/services with this product as a component
|
||||||
@ -182,6 +190,8 @@ ClonePricesProduct=استنساخ الرئيسية معلومات والأسعا
|
|||||||
CloneCompositionProduct=Clone packaged product/service
|
CloneCompositionProduct=Clone packaged product/service
|
||||||
ProductIsUsed=ويستخدم هذا المنتج
|
ProductIsUsed=ويستخدم هذا المنتج
|
||||||
NewRefForClone=المرجع. من المنتجات الجديدة / خدمة
|
NewRefForClone=المرجع. من المنتجات الجديدة / خدمة
|
||||||
|
SellingPrices=Selling prices
|
||||||
|
BuyingPrices=Buying prices
|
||||||
CustomerPrices=Customer prices
|
CustomerPrices=Customer prices
|
||||||
SuppliersPrices=Supplier prices
|
SuppliersPrices=Supplier prices
|
||||||
SuppliersPricesOfProductsOrServices=Supplier prices (of products or services)
|
SuppliersPricesOfProductsOrServices=Supplier prices (of products or services)
|
||||||
@ -228,6 +238,10 @@ PriceByQuantityRange=Quantity range
|
|||||||
ProductsDashboard=Products/Services summary
|
ProductsDashboard=Products/Services summary
|
||||||
UpdateOriginalProductLabel=Modify original label
|
UpdateOriginalProductLabel=Modify original label
|
||||||
HelpUpdateOriginalProductLabel=Allows to edit the name of the product
|
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
|
### composition fabrication
|
||||||
Building=Production and items dispatchment
|
Building=Production and items dispatchment
|
||||||
Build=Produce
|
Build=Produce
|
||||||
@ -294,6 +308,7 @@ LastUpdated=Last updated
|
|||||||
CorrectlyUpdated=Correctly updated
|
CorrectlyUpdated=Correctly updated
|
||||||
PropalMergePdfProductActualFile=Files use to add into PDF Azur are/is
|
PropalMergePdfProductActualFile=Files use to add into PDF Azur are/is
|
||||||
PropalMergePdfProductChooseFile=Select PDF files
|
PropalMergePdfProductChooseFile=Select PDF files
|
||||||
IncludingProductWithTag=Including product with tag
|
IncludingProductWithTag=Including product/service with tag
|
||||||
DefaultPriceRealPriceMayDependOnCustomer=Default price, real price may depend on customer
|
DefaultPriceRealPriceMayDependOnCustomer=Default price, real price may depend on customer
|
||||||
WarningSelectOneDocument=Please select at least one document
|
WarningSelectOneDocument=Please select at least one document
|
||||||
|
DefaultUnitToShow=Units
|
||||||
|
|||||||
@ -99,7 +99,6 @@ ReOpenAProject=فتح مشروع
|
|||||||
ConfirmReOpenAProject=هل أنت متأكد أنك تريد إعادة فتح هذا المشروع؟
|
ConfirmReOpenAProject=هل أنت متأكد أنك تريد إعادة فتح هذا المشروع؟
|
||||||
ProjectContact=مشروع اتصالات
|
ProjectContact=مشروع اتصالات
|
||||||
ActionsOnProject=الإجراءات على المشروع
|
ActionsOnProject=الإجراءات على المشروع
|
||||||
OpenedProjects=Opened projects
|
|
||||||
YouAreNotContactOfProject=كنت لا اتصال لهذا المشروع الخاص
|
YouAreNotContactOfProject=كنت لا اتصال لهذا المشروع الخاص
|
||||||
DeleteATimeSpent=قضى الوقت حذف
|
DeleteATimeSpent=قضى الوقت حذف
|
||||||
ConfirmDeleteATimeSpent=هل أنت متأكد أنك تريد حذف هذا الوقت الذي يقضيه؟
|
ConfirmDeleteATimeSpent=هل أنت متأكد أنك تريد حذف هذا الوقت الذي يقضيه؟
|
||||||
@ -175,9 +174,12 @@ ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by mo
|
|||||||
ProjectOpenedProjectByOppStatus=Opened project/lead by opportunity status
|
ProjectOpenedProjectByOppStatus=Opened project/lead by opportunity status
|
||||||
ProjectsStatistics=Statistics on projects/leads
|
ProjectsStatistics=Statistics on projects/leads
|
||||||
TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
|
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
|
OpenedProjectsByThirdparties=Opened projects by thirdparties
|
||||||
OpportunityTotalAmount=Opportunities total amount
|
OpportunityTotalAmount=Opportunities total amount
|
||||||
OpportunityPonderatedAmount=Opportunities weighted amount
|
OpportunityPonderatedAmount=Opportunities weighted amount
|
||||||
|
OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability (depending on status of opportunity)
|
||||||
OppStatusPROSP=Prospection
|
OppStatusPROSP=Prospection
|
||||||
OppStatusQUAL=Qualification
|
OppStatusQUAL=Qualification
|
||||||
OppStatusPROPO=Proposal
|
OppStatusPROPO=Proposal
|
||||||
|
|||||||
@ -53,6 +53,7 @@ ListOfProposals=قائمة مقترحات تجارية
|
|||||||
ActionsOnPropal=الإجراءات على الاقتراح
|
ActionsOnPropal=الإجراءات على الاقتراح
|
||||||
NoOpenedPropals=No open commercial proposals
|
NoOpenedPropals=No open commercial proposals
|
||||||
NoOtherOpenedPropals=No other open commercial proposals
|
NoOtherOpenedPropals=No other open commercial proposals
|
||||||
|
NoPropal=No commercial proposal
|
||||||
RefProposal=اقتراح المرجع التجارية
|
RefProposal=اقتراح المرجع التجارية
|
||||||
SendPropalByMail=اقتراح ارسال التجارية عن طريق البريد
|
SendPropalByMail=اقتراح ارسال التجارية عن طريق البريد
|
||||||
AssociatedDocuments=الوثائق المرتبطة الاقتراح :
|
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
|
MenuResourceIndex=Resources
|
||||||
MenuResourceAdd=New resource
|
MenuResourceAdd=New resource
|
||||||
MenuResourcePlanning=Resource planning
|
MenuResourcePlanning=Resource planning
|
||||||
@ -17,6 +17,7 @@ ResourceFormLabel_description=Resource description
|
|||||||
|
|
||||||
ResourcesLinkedToElement=Resources linked to element
|
ResourcesLinkedToElement=Resources linked to element
|
||||||
|
|
||||||
|
ShowResource=Show resource
|
||||||
ShowResourcePlanning=Show resource planning
|
ShowResourcePlanning=Show resource planning
|
||||||
GotoDate=Go to date
|
GotoDate=Go to date
|
||||||
|
|
||||||
|
|||||||
@ -69,7 +69,7 @@ ProductQtyInCustomersOrdersRunning=Product quantity into opened customers orders
|
|||||||
ProductQtyInSuppliersOrdersRunning=Product quantity into opened suppliers orders
|
ProductQtyInSuppliersOrdersRunning=Product quantity into opened suppliers orders
|
||||||
ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent
|
ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent
|
||||||
ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from opened supplier order already received
|
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
|
# Sending methods
|
||||||
SendingMethodCATCH=القبض على العملاء
|
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
|
TripSociete=Information company
|
||||||
TripSalarie=Informations user
|
TripSalarie=Informations user
|
||||||
TripNDF=Informations expense report
|
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
|
PDFStandardExpenseReports=Standard template to generate a PDF document for expense report
|
||||||
ExpenseReportLine=Expense report line
|
ExpenseReportLine=Expense report line
|
||||||
TF_OTHER=أخرى
|
TF_OTHER=أخرى
|
||||||
@ -53,8 +51,6 @@ AddLineMini=Add
|
|||||||
Date_DEBUT=Period date start
|
Date_DEBUT=Period date start
|
||||||
Date_FIN=Period date end
|
Date_FIN=Period date end
|
||||||
ModePaiement=Payment mode
|
ModePaiement=Payment mode
|
||||||
Note=Note
|
|
||||||
Project=Project
|
|
||||||
|
|
||||||
VALIDATOR=User responsible for approval
|
VALIDATOR=User responsible for approval
|
||||||
VALIDOR=Approved by
|
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