forked from Wavyzz/dolibarr
Merge remote-tracking branch 'Upstream/develop' into develop-51
This commit is contained in:
@@ -35,6 +35,7 @@ For developers:
|
||||
- New: Function yn can show a visual checkbox.
|
||||
- New: Introduced select2 jquery plugin.
|
||||
- New: Possibility to add javascript in main login page with "getLoginPageOptions" hook
|
||||
- New: possibility to defined a tab for all entities in module descriptor
|
||||
|
||||
WARNING: Following changes may create regression for some external modules, but was necessary to make
|
||||
Dolibarr better:
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
#------------------------------------------------------
|
||||
# Script to push language files to Transifex
|
||||
#
|
||||
# Laurent Destailleur - eldy@users.sourceforge.net
|
||||
# Laurent Destailleur (eldy) - eldy@users.sourceforge.net
|
||||
#------------------------------------------------------
|
||||
# Usage: txpush.sh (source|all|xx_XX) [-r dolibarr.file] [-f]
|
||||
# Usage: txpush.sh (source|xx_XX) [-r dolibarr.file] [-f]
|
||||
#------------------------------------------------------
|
||||
|
||||
# Syntax
|
||||
@@ -13,7 +13,7 @@ then
|
||||
echo "This push local files to transifex."
|
||||
echo "Note: If you push a language file (not source), file will be skipped if transifex file is newer."
|
||||
echo " Using -f will overwrite translation but not memory."
|
||||
echo "Usage: ./dev/translation/txpush.sh (source|all|xx_XX) [-r dolibarr.file] [-f] [--no-interactive]"
|
||||
echo "Usage: ./dev/translation/txpush.sh (source|xx_XX) [-r dolibarr.file] [-f] [--no-interactive]"
|
||||
exit
|
||||
fi
|
||||
|
||||
@@ -23,20 +23,15 @@ then
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ "x$1" = "xall" ]
|
||||
then
|
||||
for fic in ar_SA bg_BG bs_BA ca_ES cs_CZ da_DK de_DE el_GR es_ES et_EE eu_ES fa_IR fi_FI fr_FR he_IL hr_HR hu_HU id_ID is_IS it_IT ja_JP ka_GE ko_KR lt_LT lv_LV mk_MK nb_NO nl_NL pl_PL pt_PT ro_RO ru_RU ru_UA sk_SK sl_SI sq_AL sv_SE th_TH tr_TR uk_UA uz_UZ vi_VN zh_CN zh_TW
|
||||
do
|
||||
echo "tx push --skip -t -l $fic $2 $3"
|
||||
tx push --skip -t -l $fic $2 $3
|
||||
done
|
||||
else
|
||||
if [ "x$1" = "xsource" ]
|
||||
then
|
||||
echo "tx push -s $2 $3"
|
||||
tx push -s $2 $3
|
||||
else
|
||||
echo "tx push --skip -t -l $1 $2 $3 $4"
|
||||
tx push --skip -t -l $1 $2 $3 $4
|
||||
fi
|
||||
for file in `find htdocs/langs/$1/*.lang -type f`
|
||||
do
|
||||
export basefile=`basename $file | sed -s s/\.lang//g`
|
||||
echo "tx push --skip -r dolibarr.$basfile -t -l $1 $2 $3 $4"
|
||||
tx push --skip -r dolibarr.$basefile -t -l $1 $2 $3 $4
|
||||
done
|
||||
fi
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/* Copyright (C) 2013-2014 Olivier Geffroy <jeff@jeffinfo.com>
|
||||
* Copyright (C) 2013-2014 Alexandre Spangaro <alexandre.spangaro@gmail.com>
|
||||
* Copyright (C) 2013-2015 Alexandre Spangaro <alexandre.spangaro@gmail.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@@ -154,7 +154,7 @@ if ($result) {
|
||||
print_liste_field_titre($langs->trans("Accountparent"), $_SERVER["PHP_SELF"], "aa.account_parent", "", $param, "", $sortfield, $sortorder);
|
||||
print_liste_field_titre($langs->trans("Pcgtype"), $_SERVER["PHP_SELF"], "aa.pcg_type", "", $param, "", $sortfield, $sortorder);
|
||||
print_liste_field_titre($langs->trans("Pcgsubtype"), $_SERVER["PHP_SELF"], "aa.pcg_subtype", "", $param, "", $sortfield, $sortorder);
|
||||
print_liste_field_titre($langs->trans("Active"), $_SERVER["PHP_SELF"], "aa.active", "", $param, "", $sortfield, $sortorder);
|
||||
print_liste_field_titre($langs->trans("Activated"), $_SERVER["PHP_SELF"], "aa.active", "", $param, "", $sortfield, $sortorder);
|
||||
print_liste_field_titre($langs->trans("Action"),$_SERVER["PHP_SELF"],"",$param,"",'width="60" align="center"',$sortfield,$sortorder);
|
||||
print '</tr>';
|
||||
|
||||
@@ -174,12 +174,17 @@ if ($result) {
|
||||
|
||||
$var = true;
|
||||
|
||||
$accountstatic=new AccountingAccount($db);
|
||||
|
||||
while ( $i < min($num, $limit) ) {
|
||||
$obj = $db->fetch_object($resql);
|
||||
|
||||
$var = ! $var;
|
||||
$accountstatic->id=$obj->rowid;
|
||||
$accountstatic->label=$obj->label;
|
||||
$accountstatic->account_number=$obj->account_number;
|
||||
|
||||
print '<tr ' . $bc[$var] . '>';
|
||||
print '<td><a href="./card.php?id=' . $obj->rowid . '">' . $obj->account_number . '</td>';
|
||||
print '<td>' . $accountstatic->getNomUrl(1) . '</td>';
|
||||
print '<td>' . $obj->label . '</td>';
|
||||
print '<td>' . $obj->account_parent . '</td>';
|
||||
print '<td>' . $obj->pcg_type . '</td>';
|
||||
@@ -210,6 +215,7 @@ if ($result) {
|
||||
print '</td>' . "\n";
|
||||
|
||||
print "</tr>\n";
|
||||
$var=!$var;
|
||||
$i ++;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/* Copyright (C) 2013-2014 Olivier Geffroy <jeff@jeffinfo.com>
|
||||
* Copyright (C) 2013-2014 Alexandre Spangaro <alexandre.spangaro@gmail.com>
|
||||
* Copyright (C) 2013-2015 Alexandre Spangaro <alexandre.spangaro@gmail.com>
|
||||
* Copyright (C) 2013-2014 Florian Henry <florian.henry@open-concept.pro>
|
||||
* Copyright (C) 2014 Juanjo Menent <jmenent@2byte.es>
|
||||
*
|
||||
@@ -66,8 +66,7 @@ class AccountingAccount extends CommonObject
|
||||
*/
|
||||
function fetch($rowid = null, $account_number = null)
|
||||
{
|
||||
if ($rowid || $account_number)
|
||||
{
|
||||
if ($rowid || $account_number) {
|
||||
$sql = "SELECT rowid, datec, tms, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, fk_user_author, fk_user_modif, active";
|
||||
$sql.= " FROM " . MAIN_DB_PREFIX . "accountingaccount WHERE";
|
||||
if ($rowid) {
|
||||
@@ -78,12 +77,10 @@ class AccountingAccount extends CommonObject
|
||||
|
||||
dol_syslog(get_class($this) . "::fetch sql=" . $sql, LOG_DEBUG);
|
||||
$result = $this->db->query($sql);
|
||||
if ($result)
|
||||
{
|
||||
if ($result) {
|
||||
$obj = $this->db->fetch_object($result);
|
||||
|
||||
if ($obj)
|
||||
{
|
||||
if ($obj) {
|
||||
$this->id = $obj->rowid;
|
||||
$this->rowid = $obj->rowid;
|
||||
$this->datec = $obj->datec;
|
||||
@@ -99,18 +96,13 @@ class AccountingAccount extends CommonObject
|
||||
$this->active = $obj->active;
|
||||
|
||||
return $this->id;
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
dol_print_error($this->db);
|
||||
}
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -344,6 +336,31 @@ class AccountingAccount extends CommonObject
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Return clicable name (with picto eventually)
|
||||
*
|
||||
* @param int $withpicto 0=No picto, 1=Include picto into link, 2=Only picto
|
||||
* @return string Chaine avec URL
|
||||
*/
|
||||
function getNomUrl($withpicto=0)
|
||||
{
|
||||
global $langs;
|
||||
|
||||
$result='';
|
||||
|
||||
$link = '<a href="'.DOL_URL_ROOT.'/accountancy/admin/card.php?id='.$this->id.'">';
|
||||
$linkend='</a>';
|
||||
|
||||
$picto='billr';
|
||||
|
||||
$label=$langs->trans("Show").': '.$this->account_number.' - '.$this->label;
|
||||
|
||||
if ($withpicto) $result.=($link.img_object($label,$picto).$linkend);
|
||||
if ($withpicto && $withpicto != 2) $result.=' ';
|
||||
if ($withpicto != 2) $result.=$link.$this->account_number.$linkend;
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Information on record
|
||||
*
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -34,10 +34,12 @@ require '../main.inc.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||
|
||||
$langs->load("errors");
|
||||
$langs->load("admin");
|
||||
$langs->load("companies");
|
||||
$langs->load("resource");
|
||||
|
||||
$action=GETPOST('action','alpha')?GETPOST('action','alpha'):'view';
|
||||
$confirm=GETPOST('confirm','alpha');
|
||||
@@ -226,7 +228,7 @@ $tabfield[21]= "code,label";
|
||||
$tabfield[22]= "code,label";
|
||||
$tabfield[23]= "country_id,country,taux,accountancy_code_sell,accountancy_code_buy,note";
|
||||
$tabfield[24]= "code,label";
|
||||
$tabfield[25]= "label,type_template,private,position,topic,content";
|
||||
$tabfield[25]= "label,type_template,position,topic,content";
|
||||
$tabfield[26]= "code,label,short_label";
|
||||
$tabfield[27]= "code,libelle";
|
||||
$tabfield[28]= "code,label,delay,newByMonth,country_id,country";
|
||||
@@ -258,7 +260,7 @@ $tabfieldvalue[21]= "code,label";
|
||||
$tabfieldvalue[22]= "code,label";
|
||||
$tabfieldvalue[23]= "country,taux,accountancy_code_sell,accountancy_code_buy,note";
|
||||
$tabfieldvalue[24]= "code,label";
|
||||
$tabfieldvalue[25]= "label,type_template,private,position,topic,content";
|
||||
$tabfieldvalue[25]= "label,type_template,position,topic,content";
|
||||
$tabfieldvalue[26]= "code,label,short_label";
|
||||
$tabfieldvalue[27]= "code,libelle";
|
||||
$tabfieldvalue[28]= "code,label,delay,newByMonth,country";
|
||||
@@ -290,7 +292,7 @@ $tabfieldinsert[21]= "code,label";
|
||||
$tabfieldinsert[22]= "code,label";
|
||||
$tabfieldinsert[23]= "fk_pays,taux,accountancy_code_sell,accountancy_code_buy,note";
|
||||
$tabfieldinsert[24]= "code,label";
|
||||
$tabfieldinsert[25]= "label,type_template,private,position,topic,content";
|
||||
$tabfieldinsert[25]= "label,type_template,position,topic,content";
|
||||
$tabfieldinsert[26]= "code,label,short_label";
|
||||
$tabfieldinsert[27]= "code,libelle";
|
||||
$tabfieldinsert[28]= "code,label,delay,newByMonth,fk_country";
|
||||
@@ -364,35 +366,35 @@ $tabcond[29]= ! empty($conf->projet->enabled);
|
||||
|
||||
// List of help for fields
|
||||
$tabhelp=array();
|
||||
$tabhelp[1] = array();
|
||||
$tabhelp[2] = array();
|
||||
$tabhelp[3] = array();
|
||||
$tabhelp[4] = array();
|
||||
$tabhelp[5] = array();
|
||||
$tabhelp[6] = array();
|
||||
$tabhelp[7] = array();
|
||||
$tabhelp[8] = array();
|
||||
$tabhelp[9] = array();
|
||||
$tabhelp[10] = array();
|
||||
$tabhelp[1] = array('code'=>$langs->trans("EnterAnyCode"));
|
||||
$tabhelp[2] = array('code'=>$langs->trans("EnterAnyCode"));
|
||||
$tabhelp[3] = array('code'=>$langs->trans("EnterAnyCode"));
|
||||
$tabhelp[4] = array('code'=>$langs->trans("EnterAnyCode"));
|
||||
$tabhelp[5] = array('code'=>$langs->trans("EnterAnyCode"));
|
||||
$tabhelp[6] = array('code'=>$langs->trans("EnterAnyCode"), 'position'=>$langs->trans("PositionIntoComboList"));
|
||||
$tabhelp[7] = array('code'=>$langs->trans("EnterAnyCode"));
|
||||
$tabhelp[8] = array('code'=>$langs->trans("EnterAnyCode"));
|
||||
$tabhelp[9] = array('code'=>$langs->trans("EnterAnyCode"), 'unicode'=>$langs->trans("UnicodeCurrency"));
|
||||
$tabhelp[10] = array('taux'=>$langs->trans("SellTaxRate"), 'recuperableonly'=>$langs->trans("RecuperableOnly"), 'localtax1_type'=>$langs->trans("LocalTaxDesc"), 'localtax2_type'=>$langs->trans("LocalTaxDesc"));
|
||||
$tabhelp[11] = array();
|
||||
$tabhelp[12] = array();
|
||||
$tabhelp[13] = array();
|
||||
$tabhelp[14] = array();
|
||||
$tabhelp[15] = array();
|
||||
$tabhelp[16] = array();
|
||||
$tabhelp[17] = array();
|
||||
$tabhelp[18] = array();
|
||||
$tabhelp[19] = array();
|
||||
$tabhelp[20] = array();
|
||||
$tabhelp[21] = array();
|
||||
$tabhelp[22] = array();
|
||||
$tabhelp[12] = array('code'=>$langs->trans("EnterAnyCode"));
|
||||
$tabhelp[13] = array('code'=>$langs->trans("EnterAnyCode"));
|
||||
$tabhelp[14] = array('code'=>$langs->trans("EnterAnyCode"));
|
||||
$tabhelp[15] = array('code'=>$langs->trans("EnterAnyCode"));
|
||||
$tabhelp[16] = array('code'=>$langs->trans("EnterAnyCode"));
|
||||
$tabhelp[17] = array('code'=>$langs->trans("EnterAnyCode"));
|
||||
$tabhelp[18] = array('code'=>$langs->trans("EnterAnyCode"), 'tracking'=>$langs->trans("UrlTrackingDesc"));
|
||||
$tabhelp[19] = array('code'=>$langs->trans("EnterAnyCode"));
|
||||
$tabhelp[20] = array('code'=>$langs->trans("EnterAnyCode"));
|
||||
$tabhelp[21] = array('code'=>$langs->trans("EnterAnyCode"));
|
||||
$tabhelp[22] = array('code'=>$langs->trans("EnterAnyCode"));
|
||||
$tabhelp[23] = array();
|
||||
$tabhelp[24] = array();
|
||||
$tabhelp[25] = array();
|
||||
$tabhelp[26] = array();
|
||||
$tabhelp[27] = array();
|
||||
$tabhelp[28] = array();
|
||||
$tabhelp[29] = array();
|
||||
$tabhelp[24] = array('code'=>$langs->trans("EnterAnyCode"));
|
||||
$tabhelp[25] = array('type_template'=>$langs->trans("TemplateForElement"),'private'=>$langs->trans("TemplateIsVisibleByOwnerOnly"), 'position'=>$langs->trans("PositionIntoComboList"));
|
||||
$tabhelp[26] = array('code'=>$langs->trans("EnterAnyCode"));
|
||||
$tabhelp[27] = array('code'=>$langs->trans("EnterAnyCode"));
|
||||
$tabhelp[28] = array('delay'=>$langs->trans("MinimumNoticePeriod"), 'newByMonth'=>$langs->trans("NbAddedAutomatically"));
|
||||
$tabhelp[29] = array('code'=>$langs->trans("EnterAnyCode"), 'percent'=>$langs->trans("OpportunityPercent"), 'position'=>$langs->trans("PositionIntoComboList"));
|
||||
|
||||
// List of check for fields (NOT USED YET)
|
||||
$tabfieldcheck=array();
|
||||
@@ -468,6 +470,24 @@ if ($id == 11)
|
||||
'external' => $langs->trans('External')
|
||||
);
|
||||
}
|
||||
if ($id == 25)
|
||||
{
|
||||
// We save list of template type Dolibarr can manage. This list can found by a grep into code on "->param['models']"
|
||||
$elementList = array(
|
||||
'propal_send' => $langs->trans('MailToSendProposal'),
|
||||
'order_send' => $langs->trans('MailToSendOrder'),
|
||||
'facture_send' => $langs->trans('MailToSendInvoice'),
|
||||
|
||||
'shipping_send' => $langs->trans('MailToSendShipment'),
|
||||
'fichinter_send' => $langs->trans('MailToSendIntervention'),
|
||||
|
||||
'askpricesupplier_send' => $langs->trans('MailToSendSupplierRequestForQuotation'),
|
||||
'order_supplier_send' => $langs->trans('MailToSendSupplierOrder'),
|
||||
'invoice_supplier_send' => $langs->trans('MailToSendSupplierInvoice'),
|
||||
|
||||
'thirdparty' => $langs->trans('MailToThirdparty')
|
||||
);
|
||||
}
|
||||
|
||||
// Define localtax_typeList (used for dictionary "llx_c_tva")
|
||||
$localtax_typeList = array();
|
||||
@@ -814,7 +834,6 @@ if ($action == 'delete')
|
||||
*/
|
||||
if ($id)
|
||||
{
|
||||
|
||||
// Complete requete recherche valeurs avec critere de tri
|
||||
$sql=$tabsql[$id];
|
||||
|
||||
@@ -869,9 +888,9 @@ if ($id)
|
||||
else $valuetoshow=$langs->trans("Amount");
|
||||
$align='right';
|
||||
}
|
||||
if ($fieldlist[$field]=='localtax1_type') { $valuetoshow=$form->textwithtooltip($langs->trans("UseLocalTax")." 2",$langs->trans("LocalTaxDesc"),2,1,img_help(1,'')); $align="center"; $sortable=0; }
|
||||
if ($fieldlist[$field]=='localtax1_type') { $valuetoshow=$langs->trans("UseLocalTax")." 2"; $align="center"; $sortable=0; }
|
||||
if ($fieldlist[$field]=='localtax1') { $valuetoshow=$langs->trans("Rate")." 2";}
|
||||
if ($fieldlist[$field]=='localtax2_type') { $valuetoshow=$form->textwithtooltip($langs->trans("UseLocalTax")." 3",$langs->trans("LocalTaxDesc"),2,1,img_help(1,'')); $align="center"; $sortable=0; }
|
||||
if ($fieldlist[$field]=='localtax2_type') { $valuetoshow=$langs->trans("UseLocalTax")." 3"; $align="center"; $sortable=0; }
|
||||
if ($fieldlist[$field]=='localtax2') { $valuetoshow=$langs->trans("Rate")." 3";}
|
||||
if ($fieldlist[$field]=='organization') { $valuetoshow=$langs->trans("Organization"); }
|
||||
if ($fieldlist[$field]=='lang') { $valuetoshow=$langs->trans("Language"); }
|
||||
@@ -903,6 +922,7 @@ if ($id)
|
||||
if ($fieldlist[$field]=='pcg_subtype') { $valuetoshow=$langs->trans("Pcg_subtype"); }
|
||||
if ($fieldlist[$field]=='sortorder') { $valuetoshow=$langs->trans("SortOrder"); }
|
||||
if ($fieldlist[$field]=='short_label') { $valuetoshow=$langs->trans("ShortLabel"); }
|
||||
if ($fieldlist[$field]=='type_template') { $valuetoshow=$langs->trans("TypeOfTemplate"); }
|
||||
|
||||
if ($id == 2) // Special cas for state page
|
||||
{
|
||||
@@ -924,7 +944,7 @@ if ($id)
|
||||
if ($id == 4) print '<td></td>';
|
||||
print '<td colspan="4">';
|
||||
print '<input type="hidden" name="id" value="'.$id.'">';
|
||||
print ' </td>';
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
// Line to enter new values
|
||||
@@ -946,29 +966,43 @@ if ($id)
|
||||
$reshook=$hookmanager->executeHooks('createDictionaryFieldlist',$parameters, $obj, $tmpaction); // Note that $action and $object may have been modified by some hooks
|
||||
$error=$hookmanager->error; $errors=$hookmanager->errors;
|
||||
|
||||
if ($id == 3)
|
||||
if ($id == 3) unset($fieldlist[2]);
|
||||
|
||||
if (empty($reshook))
|
||||
{
|
||||
unset($fieldlist[2]);
|
||||
if ($tabname[$id] == MAIN_DB_PREFIX.'c_email_templates' && $action == 'edit')
|
||||
{
|
||||
fieldList($fieldlist,$obj,$tabname[$id],'hide');
|
||||
}
|
||||
else
|
||||
{
|
||||
fieldList($fieldlist,$obj,$tabname[$id],'add');
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($reshook)) fieldList($fieldlist,$obj);
|
||||
|
||||
if ($id == 4) print '<td></td>';
|
||||
print '<td colspan="3" align="right"><input type="submit" class="button" name="actionadd" value="'.$langs->trans("Add").'"></td>';
|
||||
print '<td colspan="3" align="right">';
|
||||
if ($tabname[$id] != MAIN_DB_PREFIX.'c_email_templates' || $action != 'edit')
|
||||
{
|
||||
print '<input type="submit" class="button" name="actionadd" value="'.$langs->trans("Add").'">';
|
||||
}
|
||||
print '</td>';
|
||||
print "</tr>";
|
||||
|
||||
$colspan=count($fieldlist)+2;
|
||||
if ($id == 4) $colspan++;
|
||||
|
||||
if (! empty($alabelisused)) // Si un des champs est un libelle
|
||||
if (! empty($alabelisused) && $id != 25) // If there is one label among fields, we show legend of *
|
||||
{
|
||||
print '<tr><td colspan="'.$colspan.'">* '.$langs->trans("LabelUsedByDefault").'.</td></tr>';
|
||||
}
|
||||
print '<tr><td colspan="'.$colspan.'"> </td></tr>';
|
||||
print '<tr><td colspan="'.$colspan.'"> </td></tr>'; // Keep to have a line with enough height
|
||||
}
|
||||
|
||||
print '</form>';
|
||||
|
||||
|
||||
|
||||
// List of available values in database
|
||||
dol_syslog("htdocs/admin/dict", LOG_DEBUG);
|
||||
$resql=$db->query($sql);
|
||||
@@ -983,7 +1017,7 @@ if ($id)
|
||||
if ($num > $listlimit)
|
||||
{
|
||||
print '<tr class="none"><td align="right" colspan="'.(3+count($fieldlist)).'">';
|
||||
print_fleche_navigation($page,$_SERVER["PHP_SELF"],'&id='.$id,($num > $listlimit),$langs->trans("Page").' '.($page+1));
|
||||
print_fleche_navigation($page, $_SERVER["PHP_SELF"], '&id='.$id, ($num > $listlimit), '<li class="pagination"><span>'.$langs->trans("Page").' '.($page+1).'</span></li>');
|
||||
print '</td></tr>';
|
||||
}
|
||||
|
||||
@@ -1013,9 +1047,9 @@ if ($id)
|
||||
else $valuetoshow=$langs->trans("Amount");
|
||||
$align='right';
|
||||
}
|
||||
if ($fieldlist[$field]=='localtax1_type') { $valuetoshow=$form->textwithtooltip($langs->trans("UseLocalTax")." 2",$langs->trans("LocalTaxDesc"),2,1,img_help(1,'')); $align="center"; $sortable=0; }
|
||||
if ($fieldlist[$field]=='localtax1_type') { $valuetoshow=$langs->trans("UseLocalTax")." 2"; $align="center"; $sortable=0; }
|
||||
if ($fieldlist[$field]=='localtax1') { $valuetoshow=$langs->trans("Rate")." 2"; $sortable=0; }
|
||||
if ($fieldlist[$field]=='localtax2_type') { $valuetoshow=$form->textwithtooltip($langs->trans("UseLocalTax")." 3",$langs->trans("LocalTaxDesc"),2,1,img_help(1,'')); $align="center"; $sortable=0; }
|
||||
if ($fieldlist[$field]=='localtax2_type') { $valuetoshow=$langs->trans("UseLocalTax")." 3"; $align="center"; $sortable=0; }
|
||||
if ($fieldlist[$field]=='localtax2') { $valuetoshow=$langs->trans("Rate")." 3"; $sortable=0; }
|
||||
if ($fieldlist[$field]=='organization') { $valuetoshow=$langs->trans("Organization"); }
|
||||
if ($fieldlist[$field]=='lang') { $valuetoshow=$langs->trans("Language"); }
|
||||
@@ -1041,6 +1075,7 @@ if ($id)
|
||||
if ($fieldlist[$field]=='pcg_subtype') { $valuetoshow=$langs->trans("Pcg_subtype"); }
|
||||
if ($fieldlist[$field]=='sortorder') { $valuetoshow=$langs->trans("SortOrder"); }
|
||||
if ($fieldlist[$field]=='short_label') { $valuetoshow=$langs->trans("ShortLabel"); }
|
||||
if ($fieldlist[$field]=='type_template') { $valuetoshow=$langs->trans("TypeOfTemplate"); }
|
||||
|
||||
// Affiche nom du champ
|
||||
if ($showfield)
|
||||
@@ -1076,7 +1111,7 @@ if ($id)
|
||||
$reshook=$hookmanager->executeHooks('editDictionaryFieldlist',$parameters,$obj, $tmpaction); // Note that $action and $object may have been modified by some hooks
|
||||
$error=$hookmanager->error; $errors=$hookmanager->errors;
|
||||
|
||||
if (empty($reshook)) fieldList($fieldlist,$obj,$tabname[$id]);
|
||||
if (empty($reshook)) fieldList($fieldlist,$obj,$tabname[$id],'edit');
|
||||
|
||||
print '<td colspan="3" align="right"><a name="'.(! empty($obj->rowid)?$obj->rowid:$obj->code).'"> </a><input type="submit" class="button" name="actionmodify" value="'.$langs->trans("Modify").'">';
|
||||
print ' <input type="submit" class="button" name="actioncancel" value="'.$langs->trans("Cancel").'"></td>';
|
||||
@@ -1096,6 +1131,10 @@ if ($id)
|
||||
$showfield=1;
|
||||
$align="left";
|
||||
$valuetoshow=$obj->$fieldlist[$field];
|
||||
if ($value == 'type_template')
|
||||
{
|
||||
$valuetoshow = isset($elementList[$valuetoshow])?$elementList[$valuetoshow]:$valuetoshow;
|
||||
}
|
||||
if ($value == 'element')
|
||||
{
|
||||
$valuetoshow = isset($elementList[$valuetoshow])?$elementList[$valuetoshow]:$valuetoshow;
|
||||
@@ -1392,21 +1431,24 @@ $db->close();
|
||||
* @param array $fieldlist Array of fields
|
||||
* @param Object $obj If we show a particular record, obj is filled with record fields
|
||||
* @param string $tabname Name of SQL table
|
||||
* @param string $context 'add'=Output field for the "add form", 'edit'=Output field for the "edit form", 'hide'=Output field for the "add form" but we dont want it to be rendered
|
||||
* @return void
|
||||
*/
|
||||
function fieldList($fieldlist,$obj='',$tabname='')
|
||||
function fieldList($fieldlist, $obj='', $tabname='', $context='')
|
||||
{
|
||||
global $conf,$langs,$db;
|
||||
global $form;
|
||||
global $region_id;
|
||||
global $elementList,$sourceList,$localtax_typeList;
|
||||
global $bc;
|
||||
|
||||
$formadmin = new FormAdmin($db);
|
||||
$formcompany = new FormCompany($db);
|
||||
|
||||
foreach ($fieldlist as $field => $value)
|
||||
{
|
||||
if ($fieldlist[$field] == 'country') {
|
||||
if ($fieldlist[$field] == 'country')
|
||||
{
|
||||
if (in_array('region_id',$fieldlist))
|
||||
{
|
||||
print '<td>';
|
||||
@@ -1419,7 +1461,8 @@ function fieldList($fieldlist,$obj='',$tabname='')
|
||||
print $form->select_country((! empty($obj->country_code)?$obj->country_code:(! empty($obj->country)?$obj->country:'')), $fieldname, '', 28);
|
||||
print '</td>';
|
||||
}
|
||||
elseif ($fieldlist[$field] == 'country_id') {
|
||||
elseif ($fieldlist[$field] == 'country_id')
|
||||
{
|
||||
if (! in_array('country',$fieldlist)) // If there is already a field country, we don't show country_id (avoid duplicate)
|
||||
{
|
||||
$country_id = (! empty($obj->$fieldlist[$field]) ? $obj->$fieldlist[$field] : 0);
|
||||
@@ -1428,22 +1471,32 @@ function fieldList($fieldlist,$obj='',$tabname='')
|
||||
print '</td>';
|
||||
}
|
||||
}
|
||||
elseif ($fieldlist[$field] == 'region') {
|
||||
elseif ($fieldlist[$field] == 'region')
|
||||
{
|
||||
print '<td>';
|
||||
$formcompany->select_region($region_id,'region');
|
||||
print '</td>';
|
||||
}
|
||||
elseif ($fieldlist[$field] == 'region_id') {
|
||||
elseif ($fieldlist[$field] == 'region_id')
|
||||
{
|
||||
$region_id = (! empty($obj->$fieldlist[$field])?$obj->$fieldlist[$field]:0);
|
||||
print '<td>';
|
||||
print '<input type="hidden" name="'.$fieldlist[$field].'" value="'.$region_id.'">';
|
||||
print '</td>';
|
||||
}
|
||||
elseif ($fieldlist[$field] == 'lang') {
|
||||
elseif ($fieldlist[$field] == 'lang')
|
||||
{
|
||||
print '<td>';
|
||||
print $formadmin->select_language($conf->global->MAIN_LANG_DEFAULT,'lang');
|
||||
print '</td>';
|
||||
}
|
||||
// Le type de template
|
||||
elseif ($fieldlist[$field] == 'type_template')
|
||||
{
|
||||
print '<td>';
|
||||
print $form->selectarray('type_template', $elementList,(! empty($obj->$fieldlist[$field])?$obj->$fieldlist[$field]:''));
|
||||
print '</td>';
|
||||
}
|
||||
// Le type de l'element (pour les type de contact)
|
||||
elseif ($fieldlist[$field] == 'element')
|
||||
{
|
||||
@@ -1476,9 +1529,25 @@ function fieldList($fieldlist,$obj='',$tabname='')
|
||||
print '<input type="text" class="flat" value="'.(isset($obj->$fieldlist[$field])?$obj->$fieldlist[$field]:'').'" size="3" name="'.$fieldlist[$field].'">';
|
||||
print '</td>';
|
||||
}
|
||||
elseif (in_array($fieldlist[$field], array('libelle_facture','content'))) {
|
||||
elseif (in_array($fieldlist[$field], array('libelle_facture'))) {
|
||||
print '<td><textarea cols="30" rows="'.ROWS_2.'" class="flat" name="'.$fieldlist[$field].'">'.(! empty($obj->$fieldlist[$field])?$obj->$fieldlist[$field]:'').'</textarea></td>';
|
||||
}
|
||||
elseif (in_array($fieldlist[$field], array('content')))
|
||||
{
|
||||
if ($tabname == MAIN_DB_PREFIX.'c_email_templates')
|
||||
{
|
||||
print '<td colspan="4"></td></tr><tr class="pair nohover"><td colspan="5">'; // To create an artificial CR for the current tr we are on
|
||||
}
|
||||
else print '<td>';
|
||||
if ($context != 'hide')
|
||||
{
|
||||
//print '<textarea cols="3" rows="'.ROWS_2.'" class="flat" name="'.$fieldlist[$field].'">'.(! empty($obj->$fieldlist[$field])?$obj->$fieldlist[$field]:'').'</textarea>';
|
||||
$doleditor = new DolEditor($fieldlist[$field], (! empty($obj->$fieldlist[$field])?$obj->$fieldlist[$field]:''), '', 140, 'dolibarr_mailings', 'In', 0, false, true, ROWS_5, '90%');
|
||||
print $doleditor->Create(1);
|
||||
}
|
||||
else print ' ';
|
||||
print '</td>';
|
||||
}
|
||||
elseif ($fieldlist[$field] == 'price' || preg_match('/^amount/i',$fieldlist[$field])) {
|
||||
print '<td><input type="text" class="flat" value="'.price((! empty($obj->$fieldlist[$field])?$obj->$fieldlist[$field]:'')).'" size="8" name="'.$fieldlist[$field].'"></td>';
|
||||
}
|
||||
@@ -1507,6 +1576,8 @@ function fieldList($fieldlist,$obj='',$tabname='')
|
||||
{
|
||||
print '<td>';
|
||||
$size='';
|
||||
if ($fieldlist[$field]=='code') $size='size="8" ';
|
||||
if ($fieldlist[$field]=='position') $size='size="4" ';
|
||||
if ($fieldlist[$field]=='libelle') $size='size="32" ';
|
||||
if ($fieldlist[$field]=='tracking') $size='size="92" ';
|
||||
if ($fieldlist[$field]=='accountancy_code') $size='size="10" ';
|
||||
|
||||
@@ -1768,8 +1768,11 @@ if ($action == 'create')
|
||||
$file = $fileparams['fullname'];
|
||||
}
|
||||
|
||||
print '<div class="clearboth"></div>';
|
||||
print '<br>';
|
||||
print_titre($langs->trans('SendAskByMail'));
|
||||
print_fiche_titre($langs->trans('SendAskByMail'));
|
||||
|
||||
dol_fiche_head('');
|
||||
|
||||
// Create form object
|
||||
include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php';
|
||||
@@ -1816,7 +1819,7 @@ if ($action == 'create')
|
||||
|
||||
print $formmail->get_form();
|
||||
|
||||
print '<br>';
|
||||
dol_fiche_end();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -131,7 +131,7 @@ if ($resql)
|
||||
}
|
||||
if ($conf->use_javascript_ajax)
|
||||
{
|
||||
print '<tr><td align="center" colspan="2">';
|
||||
print '<tr '.$bc[false].'><td align="center" colspan="2">';
|
||||
$data=array('series'=>$dataseries);
|
||||
dol_print_graph('stats',300,180,$data,1,'pie',1);
|
||||
print '</td></tr>';
|
||||
|
||||
@@ -992,6 +992,9 @@ else
|
||||
|
||||
// Print mail content
|
||||
print_fiche_titre($langs->trans("EMail"),'','');
|
||||
|
||||
dol_fiche_head('');
|
||||
|
||||
print '<table class="border" width="100%">';
|
||||
|
||||
// Subject
|
||||
@@ -1042,7 +1045,8 @@ else
|
||||
print '</tr>';
|
||||
|
||||
print '</table>';
|
||||
print "<br>";
|
||||
|
||||
dol_fiche_end();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||
* Copyright (C) 2005-2013 Laurent Destailleur <eldy@uers.sourceforge.net>
|
||||
* Copyright (C) 2005-2015 Laurent Destailleur <eldy@uers.sourceforge.net>
|
||||
* Copyright (C) 2005-2010 Regis Houssin <regis.houssin@capnetworks.com>
|
||||
* Copyright (C) 2014 Florian Henry <florian.henry@open-concept.pro>
|
||||
*
|
||||
@@ -408,20 +408,17 @@ if ($object->fetch($id) >= 0)
|
||||
print_liste_field_titre($langs->trans("Firstname"),$_SERVER["PHP_SELF"],"mc.firstname",$param,"","",$sortfield,$sortorder);
|
||||
print_liste_field_titre($langs->trans("OtherInformations"),$_SERVER["PHP_SELF"],"",$param,"","",$sortfield,$sortorder);
|
||||
print_liste_field_titre($langs->trans("Source"),$_SERVER["PHP_SELF"],"",$param,"",'align="center"',$sortfield,$sortorder);
|
||||
|
||||
// Date sending
|
||||
if ($object->statut < 2)
|
||||
{
|
||||
print '<td class="liste_titre"> </td>';
|
||||
print_liste_field_titre('');
|
||||
}
|
||||
else
|
||||
{
|
||||
print_liste_field_titre($langs->trans("DateSending"),$_SERVER["PHP_SELF"],"mc.date_envoi",$param,'','align="center"',$sortfield,$sortorder);
|
||||
}
|
||||
|
||||
print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"mc.statut",$param,'','align="right"',$sortfield,$sortorder);
|
||||
print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'','','',$sortfield,$sortorder,'maxwidthsearch ');
|
||||
|
||||
print '</tr>';
|
||||
|
||||
// Ligne des champs de filtres
|
||||
@@ -458,7 +455,6 @@ if ($object->fetch($id) >= 0)
|
||||
//Search Icon
|
||||
print '<td class="liste_titre" align="right">';
|
||||
print '<input type="image" class="liste_titre" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" name="button_search" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
|
||||
print ' ';
|
||||
print '<input type="image" class="liste_titre" src="'.img_picto($langs->trans("Reset"),'searchclear.png','','',1).'" name="button_removefilter" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
@@ -518,9 +514,6 @@ if ($object->fetch($id) >= 0)
|
||||
{
|
||||
print '<td align="center"> </td>';
|
||||
print '<td align="right" class="nowrap">'.$langs->trans("MailingStatusNotSent");
|
||||
if ($user->rights->mailing->creer && $allowaddtarget) {
|
||||
print '<a href="'.$_SERVER['PHP_SELF'].'?action=delete&rowid='.$obj->rowid.$param.'">'.img_delete($langs->trans("RemoveRecipient"));
|
||||
}
|
||||
print '</td>';
|
||||
}
|
||||
else
|
||||
@@ -532,7 +525,14 @@ if ($object->fetch($id) >= 0)
|
||||
}
|
||||
|
||||
//Sreach Icon
|
||||
print '<td></td>';
|
||||
print '<td align="right">';
|
||||
if ($obj->statut == 0)
|
||||
{
|
||||
if ($user->rights->mailing->creer && $allowaddtarget) {
|
||||
print '<a href="'.$_SERVER['PHP_SELF'].'?action=delete&rowid='.$obj->rowid.$param.'">'.img_delete($langs->trans("RemoveRecipient"));
|
||||
}
|
||||
}
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
$i++;
|
||||
@@ -540,7 +540,7 @@ if ($object->fetch($id) >= 0)
|
||||
}
|
||||
else
|
||||
{
|
||||
print '<tr '.$bc[false].'><td colspan="7">'.$langs->trans("NoTargetYet").'</td></tr>';
|
||||
print '<tr '.$bc[false].'><td colspan="8">'.$langs->trans("NoTargetYet").'</td></tr>';
|
||||
}
|
||||
print "</table><br>";
|
||||
|
||||
|
||||
@@ -2288,6 +2288,9 @@ if ($action == 'create')
|
||||
}
|
||||
print "<br>\n";
|
||||
|
||||
//Select mail models is same action as presend
|
||||
if (GETPOST('modelselected')) $action = 'presend';
|
||||
|
||||
if ($action != 'presend')
|
||||
{
|
||||
print '<div class="fichecenter"><div class="fichehalfleft">';
|
||||
@@ -2330,10 +2333,6 @@ if ($action == 'create')
|
||||
/*
|
||||
* Action presend
|
||||
*/
|
||||
//Select mail models is same action as presend
|
||||
if (GETPOST('modelselected')) {
|
||||
$action = 'presend';
|
||||
}
|
||||
if ($action == 'presend')
|
||||
{
|
||||
$object->fetch_projet();
|
||||
@@ -2369,8 +2368,11 @@ if ($action == 'create')
|
||||
$file = $fileparams['fullname'];
|
||||
}
|
||||
|
||||
print '<div class="clearboth"></div>';
|
||||
print '<br>';
|
||||
print_titre($langs->trans('SendPropalByMail'));
|
||||
print_fiche_titre($langs->trans('SendPropalByMail'));
|
||||
|
||||
dol_fiche_head('');
|
||||
|
||||
// Create form object
|
||||
include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php';
|
||||
@@ -2439,7 +2441,7 @@ if ($action == 'create')
|
||||
|
||||
print $formmail->get_form();
|
||||
|
||||
print '<br>';
|
||||
dol_fiche_end();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/* Copyright (C) 2001-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||
* Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2004-2015 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com>
|
||||
* Copyright (C) 2005 Marc Barilley / Ocebo <marc@ocebo.com>
|
||||
* Copyright (C) 2005-2013 Regis Houssin <regis.houssin@capnetworks.com>
|
||||
@@ -272,7 +272,7 @@ if ($result)
|
||||
$langs->load("commercial");
|
||||
$moreforfilter.='<div class="divsearchfield">';
|
||||
$moreforfilter.=$langs->trans('ThirdPartiesOfSaleRepresentative'). ': ';
|
||||
$moreforfilter.=$formother->select_salesrepresentatives($search_sale,'search_sale',$user);
|
||||
$moreforfilter.=$formother->select_salesrepresentatives($search_sale, 'search_sale', $user, 0, 1, 'maxwidth300');
|
||||
$moreforfilter.='</div>';
|
||||
}
|
||||
// If the user can view prospects other than his'
|
||||
@@ -280,7 +280,7 @@ if ($result)
|
||||
{
|
||||
$moreforfilter.='<div class="divsearchfield">';
|
||||
$moreforfilter.=$langs->trans('LinkedToSpecificUsers'). ': ';
|
||||
$moreforfilter.=$form->select_dolusers($search_user,'search_user',1);
|
||||
$moreforfilter.=$form->select_dolusers($search_user, 'search_user', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
|
||||
$moreforfilter.='</div>';
|
||||
}
|
||||
// If the user can view prospects other than his'
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
* \ingroup commande
|
||||
* \brief Page to show customer order
|
||||
*/
|
||||
|
||||
require '../main.inc.php';
|
||||
require_once DOL_DOCUMENT_ROOT . '/core/class/html.formfile.class.php';
|
||||
require_once DOL_DOCUMENT_ROOT . '/core/class/html.formorder.class.php';
|
||||
@@ -2362,8 +2363,11 @@ if ($action == 'create' && $user->rights->commande->creer)
|
||||
$file = $fileparams['fullname'];
|
||||
}
|
||||
|
||||
print '<div class="clearboth"></div>';
|
||||
print '<br>';
|
||||
print_titre($langs->trans('SendOrderByMail'));
|
||||
print_fiche_titre($langs->trans('SendOrderByMail'));
|
||||
|
||||
dol_fiche_head('');
|
||||
|
||||
// Cree l'objet formulaire mail
|
||||
include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php';
|
||||
@@ -2402,8 +2406,10 @@ if ($action == 'create' && $user->rights->commande->creer)
|
||||
$contactarr = array();
|
||||
$contactarr = $object->liste_contact(- 1, 'external');
|
||||
|
||||
if (is_array($contactarr) && count($contactarr) > 0) {
|
||||
foreach ($contactarr as $contact) {
|
||||
if (is_array($contactarr) && count($contactarr) > 0)
|
||||
{
|
||||
foreach ($contactarr as $contact)
|
||||
{
|
||||
if ($contact['libelle'] == $langs->trans('TypeContact_commande_external_CUSTOMER')) { // TODO Use code and not label
|
||||
$contactstatic = new Contact($db);
|
||||
$contactstatic->fetch($contact ['id']);
|
||||
@@ -2432,7 +2438,7 @@ if ($action == 'create' && $user->rights->commande->creer)
|
||||
// Show form
|
||||
print $formmail->get_form();
|
||||
|
||||
print '<br>';
|
||||
dol_fiche_end();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,6 +46,7 @@ $orderyear=GETPOST("orderyear","int");
|
||||
$ordermonth=GETPOST("ordermonth","int");
|
||||
$deliveryyear=GETPOST("deliveryyear","int");
|
||||
$deliverymonth=GETPOST("deliverymonth","int");
|
||||
$search_product_category=GETPOST('search_product_category','int');
|
||||
$search_ref=GETPOST('search_ref','alpha')!=''?GETPOST('search_ref','alpha'):GETPOST('sref','alpha');
|
||||
$search_ref_customer=GETPOST('search_ref_customer','alpha');
|
||||
$search_company=GETPOST('search_company','alpha');
|
||||
@@ -79,6 +80,7 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both
|
||||
$search_categ='';
|
||||
$search_user='';
|
||||
$search_sale='';
|
||||
$search_product_category='';
|
||||
$search_ref='';
|
||||
$search_ref_customer='';
|
||||
$search_company='';
|
||||
@@ -115,10 +117,14 @@ $companystatic = new Societe($db);
|
||||
$help_url="EN:Module_Customers_Orders|FR:Module_Commandes_Clients|ES:Módulo_Pedidos_de_clientes";
|
||||
llxHeader('',$langs->trans("Orders"),$help_url);
|
||||
|
||||
$sql = 'SELECT s.nom as name, s.rowid as socid, s.client, s.code_client, c.rowid, c.ref, c.total_ht, c.tva as total_tva, c.total_ttc, c.ref_client,';
|
||||
$sql = 'SELECT';
|
||||
if ($sall || $search_product_category > 0) $sql = 'SELECT DISTINCT';
|
||||
$sql.= ' s.nom as name, s.rowid as socid, s.client, s.code_client, c.rowid, c.ref, c.total_ht, c.tva as total_tva, c.total_ttc, c.ref_client,';
|
||||
$sql.= ' c.date_valid, c.date_commande, c.note_private, c.date_livraison as date_delivery, c.fk_statut, c.facture as facturee';
|
||||
$sql.= ' FROM '.MAIN_DB_PREFIX.'societe as s';
|
||||
$sql.= ', '.MAIN_DB_PREFIX.'commande as c';
|
||||
if ($sall || $search_product_category > 0) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'commandedet as pd ON c.rowid=pd.fk_commande';
|
||||
if ($search_product_category > 0) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie_product as cp ON cp.fk_product=pd.fk_product';
|
||||
// We'll need this table joined to the select in order to filter by sale
|
||||
if ($search_sale > 0 || (! $user->rights->societe->client->voir && ! $socid)) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
|
||||
if ($search_user > 0)
|
||||
@@ -128,7 +134,8 @@ if ($search_user > 0)
|
||||
}
|
||||
$sql.= ' WHERE c.fk_soc = s.rowid';
|
||||
$sql.= ' AND c.entity IN ('.getEntity('commande', 1).')';
|
||||
if ($socid) $sql.= ' AND s.rowid = '.$socid;
|
||||
if ($search_product_category > 0) $sql.=" AND cp.fk_categorie = ".$search_product_category;
|
||||
if ($socid > 0) $sql.= ' AND s.rowid = '.$socid;
|
||||
if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
|
||||
if ($search_ref) $sql .= natural_search('c.ref', $search_ref);
|
||||
if ($sall) $sql .= natural_search(array('c.ref', 'c.note_private'), $sall);
|
||||
@@ -260,15 +267,28 @@ if ($resql)
|
||||
if ($user->rights->societe->client->voir || $socid)
|
||||
{
|
||||
$langs->load("commercial");
|
||||
$moreforfilter.='<div class="divsearchfield">';
|
||||
$moreforfilter.=$langs->trans('ThirdPartiesOfSaleRepresentative'). ': ';
|
||||
$moreforfilter.=$formother->select_salesrepresentatives($search_sale,'search_sale',$user);
|
||||
$moreforfilter.=' ';
|
||||
$moreforfilter.=$formother->select_salesrepresentatives($search_sale, 'search_sale', $user, 0, 1, 'maxwidth300');
|
||||
$moreforfilter.='</div>';
|
||||
}
|
||||
// If the user can view prospects other than his'
|
||||
if ($user->rights->societe->client->voir || $socid)
|
||||
{
|
||||
$moreforfilter.=$langs->trans('LinkedToSpecificUsers'). ': ';
|
||||
$moreforfilter.=$form->select_dolusers($search_user,'search_user',1);
|
||||
$moreforfilter.='<div class="divsearchfield">';
|
||||
$moreforfilter.=$langs->trans('LinkedToSpecificUsers'). ': ';
|
||||
$moreforfilter.=$form->select_dolusers($search_user, 'search_user', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
|
||||
$moreforfilter.='</div>';
|
||||
}
|
||||
// If the user can view prospects other than his'
|
||||
if ($conf->categorie->enabled && $user->rights->produit->lire)
|
||||
{
|
||||
include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
|
||||
$moreforfilter.='<div class="divsearchfield">';
|
||||
$moreforfilter.=$langs->trans('IncludingProductWithTag'). ': ';
|
||||
$cate_arbo = $form->select_all_categories(Categorie::TYPE_PRODUCT, null, 'parent', null, null, 1);
|
||||
$moreforfilter.=$form->selectarray('search_product_category', $cate_arbo, $search_product_category, 1, 0, 0, '', 0, 0, 0, 0, '', 1);
|
||||
$moreforfilter.='</div>';
|
||||
}
|
||||
if (! empty($moreforfilter))
|
||||
{
|
||||
@@ -311,7 +331,10 @@ if ($resql)
|
||||
print '<td class="liste_titre" align="right">';
|
||||
print '<input class="flat" type="text" size="6" name="search_total_ht" value="'.$search_total_ht.'">';
|
||||
print '</td>';
|
||||
print '<td></td>';
|
||||
print '<td align="right">';
|
||||
$liststatus=array('0'=>$langs->trans("StatusOrderDraftShort"), '1'=>$langs->trans("StatusOrderValidated"), '2'=>$langs->trans("StatusOrderSentShort"), '3'=>$langs->trans("StatusOrderToBill"), '4'=>$langs->trans("StatusOrderProcessed"), '-1'=>$langs->trans("StatusOrderCanceledShort"));
|
||||
print $form->selectarray('viewstatut', $liststatus, $viewstatut, 1);
|
||||
print '</td>';
|
||||
print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" 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 "</td></tr>\n";
|
||||
|
||||
@@ -374,43 +374,34 @@ if ($id > 0 || ! empty($ref))
|
||||
* Boutons actions
|
||||
*/
|
||||
|
||||
if ($action != 'delete')
|
||||
{
|
||||
if ($action != 'delete') {
|
||||
print '<div class="tabsAction">';
|
||||
|
||||
if ($object->type != 2 && $object->rappro) // If not cash account and can be reconciliate
|
||||
{
|
||||
if ($user->rights->banque->consolidate)
|
||||
{
|
||||
if ($object->type != 2 && $object->rappro) { // If not cash account and can be reconciliate
|
||||
if ($user->rights->banque->consolidate) {
|
||||
print '<a class="butAction" href="'.DOL_URL_ROOT.'/compta/bank/rappro.php?account='.$object->id.($vline?'&vline='.$vline:'').'">'.$langs->trans("Conciliate").'</a>';
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
print '<a class="butActionRefused" title="'.$langs->trans("NotEnoughPermissions").'" href="#">'.$langs->trans("Conciliate").'</a>';
|
||||
}
|
||||
}
|
||||
|
||||
if ($action != 'addline')
|
||||
{
|
||||
if (empty($conf->global->BANK_DISABLE_DIRECT_INPUT))
|
||||
{
|
||||
if ($user->rights->banque->modifier)
|
||||
{
|
||||
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=addline&id='.$object->id.'&page='.$page.($vline?'&vline='.$vline:'').'">'.$langs->trans("AddBankRecord").'</a>';
|
||||
}
|
||||
else
|
||||
{
|
||||
print '<a class="butActionRefused" title="'.$langs->trans("NotEnoughPermissions").'" href="#">'.$langs->trans("AddBankRecord").'</a>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
print '<a class="butActionRefused" title="'.$langs->trans("FeatureDisabled").'" href="#">'.$langs->trans("AddBankRecord").'</a>';
|
||||
}
|
||||
}
|
||||
|
||||
print '</div>';
|
||||
}
|
||||
if ($action != 'addline') {
|
||||
if (empty($conf->global->BANK_DISABLE_DIRECT_INPUT)) {
|
||||
if (empty($conf->accounting->enabled)) {
|
||||
if ($user->rights->banque->modifier) {
|
||||
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=addline&id='.$object->id.'&page='.$page.($vline?'&vline='.$vline:'').'">'.$langs->trans("AddBankRecord").'</a>';
|
||||
} else {
|
||||
print '<a class="butActionRefused" title="'.$langs->trans("NotEnoughPermissions").'" href="#">'.$langs->trans("AddBankRecord").'</a>';
|
||||
}
|
||||
} else {
|
||||
print '<a class="butActionRefused" title="'.$langs->trans("FeatureDisabled").'" href="#">'.$langs->trans("AddBankRecord").'</a>';
|
||||
}
|
||||
} else {
|
||||
print '<a class="butActionRefused" title="'.$langs->trans("FeatureDisabled").'" href="#">'.$langs->trans("AddBankRecord").'</a>';
|
||||
}
|
||||
}
|
||||
print '</div>';
|
||||
}
|
||||
|
||||
print '<br>';
|
||||
|
||||
@@ -466,15 +457,12 @@ if ($id > 0 || ! empty($ref))
|
||||
print '<div class="floatright">'.$navig.'</div>';
|
||||
}
|
||||
|
||||
print '<table class="noborder" width="100%">';
|
||||
|
||||
// Form to add a transaction with no invoice
|
||||
if ($user->rights->banque->modifier && $action == 'addline')
|
||||
{
|
||||
print '<tr>';
|
||||
print '<td align="left" colspan="10"><b>'.$langs->trans("AddBankRecordLong").'</b></td>';
|
||||
print '</tr>';
|
||||
print_fiche_titre($langs->trans("AddBankRecordLong"),'','');
|
||||
|
||||
print '<table class="noborder" width="100%">';
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td>'.$langs->trans("Date").'</td>';
|
||||
print '<td> </td>';
|
||||
@@ -507,11 +495,13 @@ if ($id > 0 || ! empty($ref))
|
||||
print '<input type="submit" name="save" class="button" value="'.$langs->trans("Add").'"><br>';
|
||||
print '<input type="submit" name="cancel" class="button" value="'.$langs->trans("Cancel").'">';
|
||||
print '</td></tr>';
|
||||
print "</form>";
|
||||
|
||||
print '<tr class="noborder"><td colspan="10"> </td></tr>'."\n";
|
||||
print '</table>';
|
||||
print '</form>';
|
||||
print '<br>';
|
||||
}
|
||||
|
||||
print '<table class="noborder" width="100%">';
|
||||
|
||||
/*
|
||||
* Affiche tableau des transactions bancaires
|
||||
*/
|
||||
|
||||
@@ -2502,8 +2502,8 @@ if ($action == 'create')
|
||||
}
|
||||
|
||||
print '<br>';
|
||||
}
|
||||
else if ($id > 0 || ! empty($ref))
|
||||
}
|
||||
else if ($id > 0 || ! empty($ref))
|
||||
{
|
||||
/*
|
||||
* Show object in view mode
|
||||
@@ -2860,7 +2860,7 @@ else if ($id > 0 || ! empty($ref))
|
||||
$outstandingBills = $soc->get_OutstandingBill();
|
||||
print ' - ' . $langs->trans('CurrentOutstandingBill') . ': ';
|
||||
print price($outstandingBills, '', $langs, 0, 0, - 1, $conf->currency);
|
||||
if ($soc->outstanding_limit != '')
|
||||
if ($soc->outstanding_limit != '')
|
||||
{
|
||||
if ($outstandingBills > $soc->outstanding_limit)
|
||||
print img_warning($langs->trans("OutstandingBillReached"));
|
||||
@@ -2950,7 +2950,7 @@ else if ($id > 0 || ! empty($ref))
|
||||
} else
|
||||
print '. ';
|
||||
}
|
||||
if ($absolute_creditnote > 0)
|
||||
if ($absolute_creditnote > 0)
|
||||
{
|
||||
// If validated, we show link "add credit note to payment"
|
||||
if ($object->statut != 1 || $object->type == Facture::TYPE_CREDIT_NOTE || $object->type == Facture::TYPE_DEPOSIT) {
|
||||
@@ -3855,8 +3855,9 @@ else if ($id > 0 || ! empty($ref))
|
||||
$file = $fileparams['fullname'];
|
||||
}
|
||||
|
||||
print '<div class="clearboth"></div>';
|
||||
print '<br>';
|
||||
print_titre($langs->trans($titreform));
|
||||
print_fiche_titre($langs->trans($titreform));
|
||||
|
||||
// Cree l'objet formulaire mail
|
||||
dol_fiche_head();
|
||||
|
||||
@@ -2721,7 +2721,10 @@ class Facture extends CommonInvoice
|
||||
$dir = dol_buildpath($reldir."core/modules/facture/");
|
||||
|
||||
// Load file with numbering class (if found)
|
||||
$mybool|=@include_once $dir.$file;
|
||||
if (is_file($dir.$file) && is_readable($dir.$file))
|
||||
{
|
||||
$mybool |= include_once $dir . $file;
|
||||
}
|
||||
}
|
||||
|
||||
// For compatibility
|
||||
@@ -2734,8 +2737,11 @@ class Facture extends CommonInvoice
|
||||
foreach ($conf->file->dol_document_root as $dirroot)
|
||||
{
|
||||
$dir = $dirroot."/core/modules/facture/";
|
||||
|
||||
// Load file with numbering class (if found)
|
||||
$mybool|=@include_once $dir.$file;
|
||||
if (is_file($dir.$file) && is_readable($dir.$file)) {
|
||||
$mybool |= include_once $dir . $file;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -63,6 +63,7 @@ $action=GETPOST('action','alpha');
|
||||
$confirm=GETPOST('confirm','alpha');
|
||||
$lineid=GETPOST('lineid','int');
|
||||
$userid=GETPOST('userid','int');
|
||||
$search_product_category=GETPOST('search_product_category','int');
|
||||
$search_ref=GETPOST('sf_ref')?GETPOST('sf_ref','alpha'):GETPOST('search_ref','alpha');
|
||||
$search_refcustomer=GETPOST('search_refcustomer','alpha');
|
||||
$search_societe=GETPOST('search_societe','alpha');
|
||||
@@ -121,6 +122,7 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both
|
||||
$search_categ='';
|
||||
$search_user='';
|
||||
$search_sale='';
|
||||
$search_product_category='';
|
||||
$search_ref='';
|
||||
$search_refcustomer='';
|
||||
$search_societe='';
|
||||
@@ -144,8 +146,8 @@ $formfile = new FormFile($db);
|
||||
$bankaccountstatic=new Account($db);
|
||||
$facturestatic=new Facture($db);
|
||||
|
||||
if (! $sall) $sql = 'SELECT';
|
||||
else $sql = 'SELECT DISTINCT';
|
||||
$sql = 'SELECT';
|
||||
if ($sall || $search_product_category > 0) $sql = 'SELECT DISTINCT';
|
||||
$sql.= ' f.rowid as facid, f.facnumber, f.ref_client, f.type, f.note_private, f.increment, f.total as total_ht, f.tva as total_tva, f.total_ttc,';
|
||||
$sql.= ' f.datef as df, f.date_lim_reglement as datelimite,';
|
||||
$sql.= ' f.paye as paye, f.fk_statut,';
|
||||
@@ -155,6 +157,8 @@ $sql.= ' FROM '.MAIN_DB_PREFIX.'societe as s';
|
||||
$sql.= ', '.MAIN_DB_PREFIX.'facture as f';
|
||||
if (! $sall) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'paiement_facture as pf ON pf.fk_facture = f.rowid';
|
||||
else $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'facturedet as fd ON fd.fk_facture = f.rowid';
|
||||
if ($sall || $search_product_category > 0) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'facturedet as pd ON f.rowid=pd.fk_facture';
|
||||
if ($search_product_category > 0) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie_product as cp ON cp.fk_product=pd.fk_product';
|
||||
// We'll need this table joined to the select in order to filter by sale
|
||||
if ($search_sale > 0 || (! $user->rights->societe->client->voir && ! $socid)) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
|
||||
if ($search_user > 0)
|
||||
@@ -165,7 +169,8 @@ if ($search_user > 0)
|
||||
$sql.= ' WHERE f.fk_soc = s.rowid';
|
||||
$sql.= " AND f.entity = ".$conf->entity;
|
||||
if (! $user->rights->societe->client->voir && ! $socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
|
||||
if ($socid) $sql.= ' AND s.rowid = '.$socid;
|
||||
if ($search_product_category > 0) $sql.=" AND cp.fk_categorie = ".$search_product_category;
|
||||
if ($socid > 0) $sql.= ' AND s.rowid = '.$socid;
|
||||
if ($userid)
|
||||
{
|
||||
if ($userid == -1) $sql.=' AND f.fk_user_author IS NULL';
|
||||
@@ -275,16 +280,30 @@ if ($resql)
|
||||
if ($user->rights->societe->client->voir || $socid)
|
||||
{
|
||||
$langs->load("commercial");
|
||||
$moreforfilter.='<div class="divsearchfield">';
|
||||
$moreforfilter.=$langs->trans('ThirdPartiesOfSaleRepresentative'). ': ';
|
||||
$moreforfilter.=$formother->select_salesrepresentatives($search_sale,'search_sale',$user);
|
||||
$moreforfilter.=' ';
|
||||
$moreforfilter.=$formother->select_salesrepresentatives($search_sale, 'search_sale', $user, 0, 1, 'maxwidth300');
|
||||
$moreforfilter.='</div>';
|
||||
}
|
||||
// If the user can view prospects other than his'
|
||||
if ($user->rights->societe->client->voir || $socid)
|
||||
{
|
||||
$moreforfilter.=$langs->trans('LinkedToSpecificUsers'). ': ';
|
||||
$moreforfilter.=$form->select_dolusers($search_user,'search_user',1);
|
||||
$moreforfilter.='<div class="divsearchfield">';
|
||||
$moreforfilter.=$langs->trans('LinkedToSpecificUsers'). ': ';
|
||||
$moreforfilter.=$form->select_dolusers($search_user, 'search_user', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
|
||||
$moreforfilter.='</div>';
|
||||
}
|
||||
// If the user can view prospects other than his'
|
||||
if ($conf->categorie->enabled && $user->rights->produit->lire)
|
||||
{
|
||||
include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
|
||||
$moreforfilter.='<div class="divsearchfield">';
|
||||
$moreforfilter.=$langs->trans('IncludingProductWithTag'). ': ';
|
||||
$cate_arbo = $form->select_all_categories(Categorie::TYPE_PRODUCT, null, 'parent', null, null, 1);
|
||||
$moreforfilter.=$form->selectarray('search_product_category', $cate_arbo, $search_product_category, 1, 0, 0, '', 0, 0, 0, 0, '', 1);
|
||||
$moreforfilter.='</div>';
|
||||
}
|
||||
|
||||
if ($moreforfilter)
|
||||
{
|
||||
print '<tr class="liste_titre">';
|
||||
@@ -330,7 +349,10 @@ if ($resql)
|
||||
print '<td class="liste_titre"></td>';
|
||||
print '<td class="liste_titre" align="right"><input class="flat" type="text" size="6" name="search_montant_ttc" value="'.$search_montant_ttc.'"></td>';
|
||||
print '<td class="liste_titre"></td>';
|
||||
print '<td class="liste_titre"></td>';
|
||||
print '<td class="liste_titre" align="right">';
|
||||
$liststatus=array('0'=>$langs->trans("Draft"), '1'=>$langs->trans("Unpaid"), '2'=>$langs->trans("Paid"), '3'=>$langs->trans("Cancel"));
|
||||
print $form->selectarray('search_status', $liststatus, $search_status, 1);
|
||||
print '</td>';
|
||||
print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" 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 "</td></tr>\n";
|
||||
|
||||
@@ -203,7 +203,7 @@ if (! empty($conf->deplacement->enabled) && $user->rights->deplacement->lire)
|
||||
|
||||
if (! empty($conf->expensereport->enabled) && $user->rights->expensereport->lire)
|
||||
{
|
||||
$sql = "SELECT u.rowid as uid, u.lastname, u.firstname, x.rowid, x.date_debut as date, x.tms as dm, x.total_ttc, x.fk_statut as status";
|
||||
$sql = "SELECT u.rowid as uid, u.lastname, u.firstname, x.rowid, x.ref, x.date_debut as date, x.tms as dm, x.total_ttc, x.fk_statut as status";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."expensereport as x, ".MAIN_DB_PREFIX."user as u";
|
||||
if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= ", ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."societe_commerciaux as sc";
|
||||
$sql.= " WHERE u.rowid = x.fk_user_author";
|
||||
@@ -238,8 +238,8 @@ if (! empty($conf->expensereport->enabled) && $user->rights->expensereport->lire
|
||||
while ($i < $num && $i < $max)
|
||||
{
|
||||
$obj = $db->fetch_object($result);
|
||||
$expensereportstatic->ref=$obj->rowid;
|
||||
$expensereportstatic->id=$obj->rowid;
|
||||
$expensereportstatic->ref=$obj->ref;
|
||||
$userstatic->id=$obj->uid;
|
||||
$userstatic->lastname=$obj->lastname;
|
||||
$userstatic->firstname=$obj->firstname;
|
||||
|
||||
@@ -221,7 +221,26 @@ if ($action == 'confirm_valide' && $confirm == 'yes' && $user->rights->banque->c
|
||||
}
|
||||
else
|
||||
{
|
||||
setEventMessage($paiement->error, 'errors');
|
||||
setEventMessage($object->error, 'errors');
|
||||
}
|
||||
}
|
||||
|
||||
if ($action == 'confirm_reject_check' && $confirm == 'yes' && $user->rights->banque->cheque)
|
||||
{
|
||||
$reject_date = dol_mktime(0, 0, 0, GETPOST('rejectdate_month'), GETPOST('rejectdate_day'), GETPOST('rejectdate_year'));
|
||||
$rejected_check = GETPOST('bankid');
|
||||
|
||||
$object->fetch($id);
|
||||
$paiement_id = $object->reject_check($rejected_check, $reject_date);
|
||||
if ($paiement_id > 0)
|
||||
{
|
||||
setEventMessage($langs->trans("CheckRejectedAndInvoicesReopened"));
|
||||
header("Location: ".DOL_URL_ROOT.'/compta/paiement/card.php?id='.$paiement_id);
|
||||
exit;
|
||||
}
|
||||
else
|
||||
{
|
||||
setEventMessage($object->error, 'errors');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -334,6 +353,18 @@ else
|
||||
print $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans("ValidateCheckReceipt"), $langs->trans("ConfirmValidateCheckReceipt"), 'confirm_valide','','',1);
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Confirm check rejection
|
||||
*/
|
||||
if ($action == 'reject_check')
|
||||
{
|
||||
$formquestion = array(
|
||||
array('type' => 'hidden','name' => 'bankid','value' => GETPOST('lineid')),
|
||||
array('type' => 'date','name' => 'rejectdate_','label' => $langs->trans("RejectCheckDate"),'value' => dol_now())
|
||||
);
|
||||
print $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans("RejectCheck"), $langs->trans("ConfirmRejectCheck"), 'confirm_reject_check',$formquestion,'',1);
|
||||
}
|
||||
}
|
||||
|
||||
$accounts = array();
|
||||
@@ -350,7 +381,7 @@ if ($action == 'new')
|
||||
print '<input type="hidden" name="action" value="new">';
|
||||
|
||||
dol_fiche_head();
|
||||
|
||||
|
||||
print '<table class="border" width="100%">';
|
||||
//print '<tr><td width="30%">'.$langs->trans('Date').'</td><td width="70%">'.dol_print_date($now,'day').'</td></tr>';
|
||||
// Filter
|
||||
@@ -361,9 +392,9 @@ if ($action == 'new')
|
||||
$form->select_comptes($filteraccountid,'accountid',0,'courant <> 2',1);
|
||||
print '</td></tr>';
|
||||
print '</table>';
|
||||
|
||||
|
||||
dol_fiche_end();
|
||||
|
||||
|
||||
print '<div class="center">';
|
||||
print '<input type="submit" class="button" name="filter" value="'.dol_escape_htmltag($langs->trans("ToFilter")).'">';
|
||||
if ($filterdate || $filteraccountid > 0)
|
||||
@@ -377,10 +408,9 @@ if ($action == 'new')
|
||||
|
||||
$sql = "SELECT ba.rowid as bid, b.datec as datec, b.dateo as date, b.rowid as chqid, ";
|
||||
$sql.= " b.amount, ba.label, b.emetteur, b.num_chq, b.banque";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."bank as b,";
|
||||
$sql.= " ".MAIN_DB_PREFIX."bank_account as ba";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."bank as b";
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."bank_account as ba ON (b.fk_account = ba.rowid)";
|
||||
$sql.= " WHERE b.fk_type = 'CHQ'";
|
||||
$sql.= " AND b.fk_account = ba.rowid";
|
||||
$sql.= " AND ba.entity IN (".getEntity('bank_account', 1).")";
|
||||
$sql.= " AND b.fk_bordereau = 0";
|
||||
$sql.= " AND b.amount > 0";
|
||||
@@ -599,12 +629,11 @@ else
|
||||
// Liste des cheques
|
||||
$sql = "SELECT b.rowid, b.amount, b.num_chq, b.emetteur,";
|
||||
$sql.= " b.dateo as date, b.datec as datec, b.banque,";
|
||||
$sql.= " p.rowid as pid, ba.rowid as bid";
|
||||
$sql.= " p.rowid as pid, ba.rowid as bid, p.statut";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."bank_account as ba";
|
||||
$sql.= ", ".MAIN_DB_PREFIX."bank as b";
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."bank as b ON (b.fk_account = ba.rowid)";
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."paiement as p ON p.fk_bank = b.rowid";
|
||||
$sql.= " WHERE ba.rowid = b.fk_account";
|
||||
$sql.= " AND ba.entity IN (".getEntity('bank_account', 1).")";
|
||||
$sql.= " WHERE ba.entity IN (".getEntity('bank_account', 1).")";
|
||||
$sql.= " AND b.fk_type= 'CHQ'";
|
||||
$sql.= " AND b.fk_bordereau = ".$object->id;
|
||||
$sql.= " ORDER BY $sortfield $sortorder";
|
||||
@@ -625,7 +654,8 @@ else
|
||||
print_liste_field_titre($langs->trans("Bank"),$_SERVER["PHP_SELF"],"b.banque", "",$param,"",$sortfield,$sortorder);
|
||||
print_liste_field_titre($langs->trans("Amount"),$_SERVER["PHP_SELF"],"b.amount", "",$param,'align="right"',$sortfield,$sortorder);
|
||||
print_liste_field_titre($langs->trans("LineRecord"),$_SERVER["PHP_SELF"],"b.rowid", "",$param,'align="center"',$sortfield,$sortorder);
|
||||
print_liste_field_titre('');
|
||||
print_liste_field_titre($langs->trans("Payment"),$_SERVER["PHP_SELF"],"p.rowid", "",$param,'align="center"',$sortfield,$sortorder);
|
||||
print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'','','',$sortfield,$sortorder,'maxwidthsearch ');
|
||||
print "</tr>\n";
|
||||
$i=1;
|
||||
$var=false;
|
||||
@@ -654,13 +684,25 @@ else
|
||||
print ' ';
|
||||
}
|
||||
print '</td>';
|
||||
if ($object->statut == 0)
|
||||
print '<td align="center">';
|
||||
$paymentstatic->id=$objp->pid;
|
||||
$paymentstatic->ref=$objp->pid;
|
||||
if ($paymentstatic->id)
|
||||
{
|
||||
print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=remove&lineid='.$objp->rowid.'">'.img_delete().'</a></td>';
|
||||
print $paymentstatic->getNomUrl(1);
|
||||
}
|
||||
else
|
||||
{
|
||||
print '<td> </td>';
|
||||
print ' ';
|
||||
}
|
||||
print '</td>';
|
||||
if ($object->statut == 0)
|
||||
{
|
||||
print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=remove&lineid='.$objp->rowid.'">'.img_delete().'</a>';
|
||||
print '<a href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=reject_check&lineid='.$objp->rowid.'">'.img_picto($langs->trans("RejectCheck"),'disable').'</a></td>';
|
||||
}
|
||||
else if($objp->statut == 2) {
|
||||
print '<td align="right">'.img_picto($langs->trans('CheckRejected'),'statut8').'</a></td>';
|
||||
}
|
||||
print '</tr>';
|
||||
$var=!$var;
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
* \brief File with class to manage cheque delivery receipts
|
||||
*/
|
||||
require_once DOL_DOCUMENT_ROOT .'/core/class/commonobject.class.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
|
||||
|
||||
|
||||
/**
|
||||
@@ -647,17 +648,83 @@ class RemiseCheque extends CommonObject
|
||||
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$this->updateAmount();
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errno = -1032;
|
||||
dol_syslog("RemiseCheque::removeCheck ERREUR UPDATE ($this->errno)");
|
||||
}
|
||||
{
|
||||
$this->updateAmount();
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errno = -1032;
|
||||
dol_syslog("RemiseCheque::removeCheck ERREUR UPDATE ($this->errno)");
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check rejection management
|
||||
* Reopen linked invoices and saves a new negative payment
|
||||
*
|
||||
* @param int $bank_id Id of bank line concerned
|
||||
* @param date $rejection_date Date to use on the negative payment
|
||||
* @return int
|
||||
*/
|
||||
function reject_check($bank_id, $rejection_date)
|
||||
{
|
||||
global $db, $user;
|
||||
|
||||
$payment = new Paiement($db);
|
||||
$payment->fetch(0,0,$bank_id);
|
||||
|
||||
$bankaccount = $payment->fk_account;
|
||||
|
||||
// Get invoice list to reopen them
|
||||
$sql = 'SELECT pf.fk_facture, pf.amount';
|
||||
$sql.= ' FROM '.MAIN_DB_PREFIX.'paiement_facture as pf';
|
||||
$sql.= ' WHERE pf.fk_paiement = '.$payment->id;
|
||||
|
||||
$resql=$db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$rejectedPayment = new Paiement($db);
|
||||
$rejectedPayment->amounts = array();
|
||||
$rejectedPayment->datepaye = $rejection_date;
|
||||
$rejectedPayment->paiementid = dol_getIdFromCode($this->db, 'CHQ', 'c_paiement');
|
||||
$rejectedPayment->num_paiement = $payment->numero;
|
||||
|
||||
while($obj = $db->fetch_object($resql))
|
||||
{
|
||||
$invoice = new Facture($db);
|
||||
$invoice->fetch($obj->fk_facture);
|
||||
$invoice->set_unpaid($user);
|
||||
|
||||
$rejectedPayment->amounts[$obj->fk_facture] = price2num($obj->amount) * -1;
|
||||
}
|
||||
|
||||
if ($rejectedPayment->create($user) > 0)
|
||||
{
|
||||
$result=$rejectedPayment->addPaymentToBank($user,'payment','(CheckRejected)',$bankaccount,'','');
|
||||
if ($result > 0)
|
||||
{
|
||||
$payment->reject();
|
||||
return $rejectedPayment->id;
|
||||
}
|
||||
else
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->error=$this->db->error();
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Charge les proprietes ref_previous et ref_next
|
||||
*
|
||||
@@ -747,7 +814,7 @@ class RemiseCheque extends CommonObject
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."bordereau_cheque";
|
||||
$sql.= " SET number = '".$number."'" ;
|
||||
$sql.= " WHERE rowid = ".$this->id;
|
||||
|
||||
|
||||
dol_syslog("RemiseCheque::set_number", LOG_DEBUG);
|
||||
$resql=$this->db->query($sql);
|
||||
if ($resql)
|
||||
|
||||
@@ -78,11 +78,12 @@ class Paiement extends CommonObject
|
||||
/**
|
||||
* Load payment from database
|
||||
*
|
||||
* @param int $id Id of payment to get
|
||||
* @param int $ref Ref of payment to get (same as $id)
|
||||
* @return int <0 if KO, 0 if not found, >0 if OK
|
||||
* @param int $id Id of payment to get
|
||||
* @param string $ref Ref of payment to get (currently ref = id but this may change in future)
|
||||
* @param int $fk_bank Id of bank line associated to payment
|
||||
* @return int <0 if KO, 0 if not found, >0 if OK
|
||||
*/
|
||||
function fetch($id, $ref='')
|
||||
function fetch($id, $ref='', $fk_bank='')
|
||||
{
|
||||
$sql = 'SELECT p.rowid, p.datep as dp, p.amount, p.statut, p.fk_bank,';
|
||||
$sql.= ' c.code as type_code, c.libelle as type_libelle,';
|
||||
@@ -91,10 +92,12 @@ class Paiement extends CommonObject
|
||||
$sql.= ' FROM '.MAIN_DB_PREFIX.'c_paiement as c, '.MAIN_DB_PREFIX.'paiement as p';
|
||||
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'bank as b ON p.fk_bank = b.rowid ';
|
||||
$sql.= ' WHERE p.fk_paiement = c.id';
|
||||
if ($ref)
|
||||
$sql.= ' AND p.rowid = '.$ref;
|
||||
else
|
||||
if ($id > 0)
|
||||
$sql.= ' AND p.rowid = '.$id;
|
||||
else if ($ref)
|
||||
$sql.= ' AND p.rowid = '.$ref;
|
||||
else if ($fk_bank)
|
||||
$sql.= ' AND p.fk_bank = '.$fk_bank;
|
||||
|
||||
dol_syslog(get_class($this)."::fetch", LOG_DEBUG);
|
||||
$result = $this->db->query($sql);
|
||||
@@ -116,7 +119,8 @@ class Paiement extends CommonObject
|
||||
$this->type_code = $obj->type_code;
|
||||
$this->statut = $obj->statut;
|
||||
|
||||
$this->bank_account = $obj->fk_account;
|
||||
$this->bank_account = $obj->fk_account; // deprecated
|
||||
$this->fk_account = $obj->fk_account;
|
||||
$this->bank_line = $obj->fk_bank;
|
||||
|
||||
$this->db->free($result);
|
||||
@@ -670,6 +674,29 @@ class Paiement extends CommonObject
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reject payment
|
||||
*
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
function reject()
|
||||
{
|
||||
$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element.' SET statut = 2 WHERE rowid = '.$this->id;
|
||||
|
||||
dol_syslog(get_class($this).'::reject', LOG_DEBUG);
|
||||
$result = $this->db->query($sql);
|
||||
if ($result)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->error=$this->db->lasterror();
|
||||
dol_syslog(get_class($this).'::reject '.$this->error);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* \brief Information sur l'objet
|
||||
* \param id id du paiement dont il faut afficher les infos
|
||||
|
||||
@@ -176,6 +176,8 @@ if ($_GET["action"] == 'create')
|
||||
print '<input type="hidden" name="chid" value="'.$chid.'">';
|
||||
print '<input type="hidden" name="action" value="add_payment">';
|
||||
|
||||
dol_fiche_head('', '');
|
||||
|
||||
print '<table cellspacing="0" class="border" width="100%" cellpadding="2">';
|
||||
|
||||
print "<tr class=\"liste_titre\"><td colspan=\"3\">".$langs->trans("SocialContribution")."</td>";
|
||||
@@ -235,7 +237,7 @@ if ($_GET["action"] == 'create')
|
||||
|
||||
print '</table>';
|
||||
|
||||
print '<br>';
|
||||
dol_fiche_end();
|
||||
|
||||
/*
|
||||
* Autres charges impayees
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
/**
|
||||
* \file htdocs/compta/tva/clients.php
|
||||
* \ingroup tax
|
||||
* \ingroup tax
|
||||
* \brief Page des societes
|
||||
*/
|
||||
|
||||
@@ -30,6 +30,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/report.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/tax.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/compta/tva/class/tva.class.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/class/ccountry.class.php';
|
||||
|
||||
$langs->load("bills");
|
||||
$langs->load("compta");
|
||||
@@ -39,8 +40,7 @@ $langs->load("other");
|
||||
|
||||
// Date range
|
||||
$year=GETPOST("year");
|
||||
if (empty($year))
|
||||
{
|
||||
if (empty($year)) {
|
||||
$year_current = strftime("%Y",dol_now());
|
||||
$year_start = $year_current;
|
||||
} else {
|
||||
@@ -50,38 +50,55 @@ if (empty($year))
|
||||
$date_start=dol_mktime(0,0,0,$_REQUEST["date_startmonth"],$_REQUEST["date_startday"],$_REQUEST["date_startyear"]);
|
||||
$date_end=dol_mktime(23,59,59,$_REQUEST["date_endmonth"],$_REQUEST["date_endday"],$_REQUEST["date_endyear"]);
|
||||
// Quarter
|
||||
if (empty($date_start) || empty($date_end)) // We define date_start and date_end
|
||||
{
|
||||
$q=GETPOST("q");
|
||||
if (empty($q))
|
||||
{
|
||||
if (isset($_REQUEST["month"])) { $date_start=dol_get_first_day($year_start,$_REQUEST["month"],false); $date_end=dol_get_last_day($year_start,$_REQUEST["month"],false); }
|
||||
else
|
||||
{
|
||||
$month_current = strftime("%m",dol_now());
|
||||
if ($month_current >= 10) $q=4;
|
||||
elseif ($month_current >= 7) $q=3;
|
||||
elseif ($month_current >= 4) $q=2;
|
||||
else $q=1;
|
||||
if (empty($date_start) || empty($date_end)) {// We define date_start and date_end
|
||||
$q=GETPOST("q");
|
||||
if (empty($q)) {
|
||||
if (isset($_REQUEST["month"])) {
|
||||
$date_start=dol_get_first_day($year_start,$_REQUEST["month"],false);
|
||||
$date_end=dol_get_last_day($year_start,$_REQUEST["month"],false);
|
||||
} else {
|
||||
$month_current = strftime("%m",dol_now());
|
||||
if ($month_current >= 10) $q=4;
|
||||
elseif ($month_current >= 7) $q=3;
|
||||
elseif ($month_current >= 4) $q=2;
|
||||
else $q=1;
|
||||
}
|
||||
}
|
||||
if ($q==1) { $date_start=dol_get_first_day($year_start,1,false); $date_end=dol_get_last_day($year_start,3,false); }
|
||||
if ($q==2) { $date_start=dol_get_first_day($year_start,4,false); $date_end=dol_get_last_day($year_start,6,false); }
|
||||
if ($q==3) { $date_start=dol_get_first_day($year_start,7,false); $date_end=dol_get_last_day($year_start,9,false); }
|
||||
if ($q==4) { $date_start=dol_get_first_day($year_start,10,false); $date_end=dol_get_last_day($year_start,12,false); }
|
||||
if ($q==1) {
|
||||
$date_start=dol_get_first_day($year_start,1,false);
|
||||
$date_end=dol_get_last_day($year_start,3,false);
|
||||
}
|
||||
if ($q==2) {
|
||||
$date_start=dol_get_first_day($year_start,4,false);
|
||||
$date_end=dol_get_last_day($year_start,6,false);
|
||||
}
|
||||
if ($q==3) {
|
||||
$date_start=dol_get_first_day($year_start,7,false);
|
||||
$date_end=dol_get_last_day($year_start,9,false);
|
||||
}
|
||||
if ($q==4) {
|
||||
$date_start=dol_get_first_day($year_start,10,false);
|
||||
$date_end=dol_get_last_day($year_start,12,false);
|
||||
}
|
||||
}
|
||||
|
||||
$min = GETPOST("min");
|
||||
if (empty($min)) $min = 0;
|
||||
if (empty($min)) {
|
||||
$min = 0;
|
||||
}
|
||||
|
||||
// Define modetax (0 or 1)
|
||||
// 0=normal, 1=option vat for services is on debit
|
||||
$modetax = $conf->global->TAX_MODE;
|
||||
if (isset($_REQUEST["modetax"])) $modetax=$_REQUEST["modetax"];
|
||||
if (isset($_REQUEST["modetax"])) {
|
||||
$modetax=$_REQUEST["modetax"];
|
||||
}
|
||||
|
||||
// Security check
|
||||
$socid = GETPOST('socid','int');
|
||||
if ($user->societe_id) $socid=$user->societe_id;
|
||||
if ($user->societe_id) {
|
||||
$socid=$user->societe_id;
|
||||
}
|
||||
$result = restrictedArea($user, 'tax', '', '', 'charges');
|
||||
|
||||
|
||||
@@ -95,9 +112,15 @@ $company_static=new Societe($db);
|
||||
|
||||
$morequerystring='';
|
||||
$listofparams=array('date_startmonth','date_startyear','date_startday','date_endmonth','date_endyear','date_endday');
|
||||
foreach($listofparams as $param)
|
||||
{
|
||||
if (GETPOST($param)!='') $morequerystring.=($morequerystring?'&':'').$param.'='.GETPOST($param);
|
||||
foreach($listofparams as $param) {
|
||||
if (GETPOST($param)!='') {
|
||||
$morequerystring.=($morequerystring?'&':'').$param.'='.GETPOST($param);
|
||||
}
|
||||
}
|
||||
|
||||
$special_report = false;
|
||||
if (isset($_REQUEST['extra_report']) && $_REQUEST['extra_report'] == 1) {
|
||||
$special_report = true;
|
||||
}
|
||||
|
||||
llxHeader('','','','',0,0,'','',$morequerystring);
|
||||
@@ -109,62 +132,92 @@ $fsearch.=' '.$langs->trans("SalesTurnoverMinimum").': ';
|
||||
$fsearch.=' <input type="text" name="min" id="min" value="'.$min.'" size="6">';
|
||||
|
||||
// Affiche en-tete du rapport
|
||||
if ($modetax==1) // Calculate on invoice for goods and services
|
||||
{
|
||||
$name=$langs->trans("VATReportByCustomersInDueDebtMode");
|
||||
if ($modetax==1) { // Calculate on invoice for goods and services
|
||||
$name=$langs->trans("VATReportByCustomersInDueDebtMode");
|
||||
$calcmode=$langs->trans("CalcModeVATDebt");
|
||||
$calcmode.='<br>('.$langs->trans("TaxModuleSetupToModifyRules",DOL_URL_ROOT.'/admin/taxes.php').')';
|
||||
//$name.='<br>('.$langs->trans("SeeVATReportInInputOutputMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year_start.'&modetax=0">','</a>').')';
|
||||
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
|
||||
//$periodlink=($year_start?"<a href='".$_SERVER["PHP_SELF"]."?year=".($year_start-1)."&modetax=".$modetax."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year=".($year_start+1)."&modetax=".$modetax."'>".img_next()."</a>":"");
|
||||
$description=$langs->trans("RulesVATDueServices");
|
||||
$description.='<br>';
|
||||
$description.=$langs->trans("RulesVATDueProducts");
|
||||
//if ($conf->global->MAIN_MODULE_COMPTABILITE || $conf->global->MAIN_MODULE_ACCOUNTING) $description.='<br>'.img_warning().' '.$langs->trans('OptionVatInfoModuleComptabilite');
|
||||
//if (! empty($conf->global->MAIN_MODULE_COMPTABILITE)) $description.='<br>'.$langs->trans("WarningDepositsNotIncluded");
|
||||
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $description.='<br>'.$langs->trans("DepositsAreNotIncluded");
|
||||
else $description.='<br>'.$langs->trans("DepositsAreIncluded");
|
||||
$calcmode.='<br>('.$langs->trans("TaxModuleSetupToModifyRules",DOL_URL_ROOT.'/admin/taxes.php').')';
|
||||
//$name.='<br>('.$langs->trans("SeeVATReportInInputOutputMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year_start.'&modetax=0">','</a>').')';
|
||||
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
|
||||
//$periodlink=($year_start?"<a href='".$_SERVER["PHP_SELF"]."?year=".($year_start-1)."&modetax=".$modetax."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year=".($year_start+1)."&modetax=".$modetax."'>".img_next()."</a>":"");
|
||||
$description=$langs->trans("RulesVATDueServices");
|
||||
$description.='<br>';
|
||||
$description.=$langs->trans("RulesVATDueProducts");
|
||||
//if ($conf->global->MAIN_MODULE_COMPTABILITE || $conf->global->MAIN_MODULE_ACCOUNTING) $description.='<br>'.img_warning().' '.$langs->trans('OptionVatInfoModuleComptabilite');
|
||||
//if (! empty($conf->global->MAIN_MODULE_COMPTABILITE)) $description.='<br>'.$langs->trans("WarningDepositsNotIncluded");
|
||||
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) {
|
||||
$description.='<br>'.$langs->trans("DepositsAreNotIncluded");
|
||||
} else {
|
||||
$description.='<br>'.$langs->trans("DepositsAreIncluded");
|
||||
}
|
||||
$description.=$fsearch;
|
||||
$description.='<br>'
|
||||
. '<input type="radio" name="extra_report" value="0" '.($special_report?'':'checked="checked"').'> '
|
||||
. $langs->trans('SimpleReport')
|
||||
. '</input>'
|
||||
. '<br>'
|
||||
. '<input type="radio" name="extra_report" value="1" '.($special_report?'checked="checked"':'').'> '
|
||||
. $langs->trans('AddExtraReport')
|
||||
. '</input>'
|
||||
. '<br>';
|
||||
$builddate=time();
|
||||
//$exportlink=$langs->trans("NotYetAvailable");
|
||||
//$exportlink=$langs->trans("NotYetAvailable");
|
||||
|
||||
$elementcust=$langs->trans("CustomersInvoices");
|
||||
$productcust=$langs->trans("Description");
|
||||
$amountcust=$langs->trans("AmountHT");
|
||||
if ($mysoc->tva_assuj) $vatcust.=' ('.$langs->trans("ToPay").')';
|
||||
if ($mysoc->tva_assuj) {
|
||||
$vatcust.=' ('.$langs->trans("ToPay").')';
|
||||
}
|
||||
$elementsup=$langs->trans("SuppliersInvoices");
|
||||
$productsup=$langs->trans("Description");
|
||||
$amountsup=$langs->trans("AmountHT");
|
||||
if ($mysoc->tva_assuj) $vatsup.=' ('.$langs->trans("ToGetBack").')';
|
||||
if ($mysoc->tva_assuj) {
|
||||
$vatsup.=' ('.$langs->trans("ToGetBack").')';
|
||||
}
|
||||
}
|
||||
if ($modetax==0) // Invoice for goods, payment for services
|
||||
{
|
||||
$name=$langs->trans("VATReportByCustomersInInputOutputMode");
|
||||
$calcmode=$langs->trans("CalcModeVATEngagement");
|
||||
$calcmode.='<br>('.$langs->trans("TaxModuleSetupToModifyRules",DOL_URL_ROOT.'/admin/taxes.php').')';
|
||||
//$name.='<br>('.$langs->trans("SeeVATReportInDueDebtMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year_start.'&modetax=1">','</a>').')';
|
||||
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
|
||||
//$periodlink=($year_start?"<a href='".$_SERVER["PHP_SELF"]."?year=".($year_start-1)."&modetax=".$modetax."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year=".($year_start+1)."&modetax=".$modetax."'>".img_next()."</a>":"");
|
||||
$description=$langs->trans("RulesVATInServices");
|
||||
$description.=' '.$langs->trans("DepositsAreIncluded");
|
||||
$description.='<br>';
|
||||
$description.=$langs->trans("RulesVATInProducts");
|
||||
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $description.=' '.$langs->trans("DepositsAreNotIncluded");
|
||||
else $description.=' '.$langs->trans("DepositsAreIncluded");
|
||||
//if ($conf->global->MAIN_MODULE_COMPTABILITE || $conf->global->MAIN_MODULE_ACCOUNTING) $description.='<br>'.img_warning().' '.$langs->trans('OptionVatInfoModuleComptabilite');
|
||||
//if (! empty($conf->global->MAIN_MODULE_COMPTABILITE)) $description.='<br>'.$langs->trans("WarningDepositsNotIncluded");
|
||||
$description.=$fsearch;
|
||||
$builddate=time();
|
||||
//$exportlink=$langs->trans("NotYetAvailable");
|
||||
if ($modetax==0) { // Invoice for goods, payment for services
|
||||
$name=$langs->trans("VATReportByCustomersInInputOutputMode");
|
||||
$calcmode=$langs->trans("CalcModeVATEngagement");
|
||||
$calcmode.='<br>('.$langs->trans("TaxModuleSetupToModifyRules",DOL_URL_ROOT.'/admin/taxes.php').')';
|
||||
//$name.='<br>('.$langs->trans("SeeVATReportInDueDebtMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year_start.'&modetax=1">','</a>').')';
|
||||
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
|
||||
//$periodlink=($year_start?"<a href='".$_SERVER["PHP_SELF"]."?year=".($year_start-1)."&modetax=".$modetax."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year=".($year_start+1)."&modetax=".$modetax."'>".img_next()."</a>":"");
|
||||
$description=$langs->trans("RulesVATInServices");
|
||||
$description.=' '.$langs->trans("DepositsAreIncluded");
|
||||
$description.='<br>';
|
||||
$description.=$langs->trans("RulesVATInProducts");
|
||||
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) {
|
||||
$description .= ' ' . $langs->trans("DepositsAreNotIncluded");
|
||||
} else {
|
||||
$description .= ' ' . $langs->trans("DepositsAreIncluded");
|
||||
}
|
||||
//if ($conf->global->MAIN_MODULE_COMPTABILITE || $conf->global->MAIN_MODULE_ACCOUNTING) $description.='<br>'.img_warning().' '.$langs->trans('OptionVatInfoModuleComptabilite');
|
||||
//if (! empty($conf->global->MAIN_MODULE_COMPTABILITE)) $description.='<br>'.$langs->trans("WarningDepositsNotIncluded");
|
||||
$description.=$fsearch;
|
||||
$description.='<br>'
|
||||
. '<input type="radio" name="extra_report" value="0" '.($special_report?'':'checked="checked"').'> '
|
||||
. $langs->trans('SimpleReport')
|
||||
. '</input>'
|
||||
. '<br>'
|
||||
. '<input type="radio" name="extra_report" value="1" '.($special_report?'checked="checked"':'').'> '
|
||||
. $langs->trans('AddExtraReport')
|
||||
. '</input>'
|
||||
. '<br>';
|
||||
$builddate=time();
|
||||
//$exportlink=$langs->trans("NotYetAvailable");
|
||||
|
||||
$elementcust=$langs->trans("CustomersInvoices");
|
||||
$productcust=$langs->trans("Description");
|
||||
$amountcust=$langs->trans("AmountHT");
|
||||
if ($mysoc->tva_assuj) $vatcust.=' ('.$langs->trans("ToPay").')';
|
||||
if ($mysoc->tva_assuj) {
|
||||
$vatcust.=' ('.$langs->trans("ToPay").')';
|
||||
}
|
||||
$elementsup=$langs->trans("SuppliersInvoices");
|
||||
$productsup=$langs->trans("Description");
|
||||
$amountsup=$langs->trans("AmountHT");
|
||||
if ($mysoc->tva_assuj) $vatsup.=' ('.$langs->trans("ToGetBack").')';
|
||||
if ($mysoc->tva_assuj) {
|
||||
$vatsup.=' ('.$langs->trans("ToGetBack").')';
|
||||
}
|
||||
}
|
||||
report_header($name,$nomlink,$period,$periodlink,$description,$builddate,$exportlink,array(),$calcmode);
|
||||
|
||||
@@ -198,25 +251,18 @@ $parameters["direction"] = 'sell';
|
||||
$hookmanager->initHooks(array('externalbalance'));
|
||||
$reshook=$hookmanager->executeHooks('addStatisticLine',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
||||
|
||||
if (is_array($coll_list))
|
||||
{
|
||||
if (is_array($coll_list)) {
|
||||
$var=true;
|
||||
$total = 0; $totalamount = 0;
|
||||
$i = 1;
|
||||
foreach($coll_list as $coll)
|
||||
{
|
||||
if($min == 0 or ($min > 0 && $coll->amount > $min))
|
||||
{
|
||||
foreach ($coll_list as $coll) {
|
||||
if ($min == 0 or ($min > 0 && $coll->amount > $min)) {
|
||||
$var=!$var;
|
||||
$intra = str_replace($find,$replace,$coll->tva_intra);
|
||||
if(empty($intra))
|
||||
{
|
||||
if($coll->assuj == '1')
|
||||
{
|
||||
if(empty($intra)) {
|
||||
if($coll->assuj == '1') {
|
||||
$intra = $langs->trans('Unknown');
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
//$intra = $langs->trans('NotRegistered');
|
||||
$intra = '';
|
||||
}
|
||||
@@ -232,28 +278,27 @@ if (is_array($coll_list))
|
||||
print '<td class="nowrap">'.$intra."</td>";
|
||||
print "<td class=\"nowrap\" align=\"right\">".price($coll->amount)."</td>";
|
||||
print "<td class=\"nowrap\" align=\"right\">".price($coll->tva)."</td>";
|
||||
$totalamount = $totalamount + $coll->amount;
|
||||
$totalamount = $totalamount + $coll->amount;
|
||||
$total = $total + $coll->tva;
|
||||
print "</tr>\n";
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
$x_coll_sum = $total;
|
||||
$x_coll_sum = $total;
|
||||
|
||||
print '<tr class="liste_total"><td align="right" colspan="3">'.$langs->trans("Total").':</td>';
|
||||
print '<td class="nowrap" align="right">'.price($totalamount).'</td>';
|
||||
print '<td class="nowrap" align="right">'.price($totalamount).'</td>';
|
||||
print '<td class="nowrap" align="right">'.price($total).'</td>';
|
||||
print '</tr>';
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
$langs->load("errors");
|
||||
if ($coll_list == -1)
|
||||
print '<tr><td colspan="5">'.$langs->trans("ErrorNoAccountancyModuleLoaded").'</td></tr>';
|
||||
else if ($coll_list == -2)
|
||||
print '<tr><td colspan="5">'.$langs->trans("FeatureNotYetAvailable").'</td></tr>';
|
||||
else
|
||||
print '<tr><td colspan="5">'.$langs->trans("Error").'</td></tr>';
|
||||
if ($coll_list == -1) {
|
||||
print '<tr><td colspan="5">' . $langs->trans("ErrorNoAccountancyModuleLoaded") . '</td></tr>';
|
||||
} else if ($coll_list == -2) {
|
||||
print '<tr><td colspan="5">' . $langs->trans("FeatureNotYetAvailable") . '</td></tr>';
|
||||
} else {
|
||||
print '<tr><td colspan="5">' . $langs->trans("Error") . '</td></tr>';
|
||||
}
|
||||
}
|
||||
|
||||
//print '</table>';
|
||||
@@ -279,25 +324,18 @@ $coll_list = vat_by_thirdparty($db,0,$date_start,$date_end,$modetax,'buy');
|
||||
|
||||
$parameters["direction"] = 'buy';
|
||||
$reshook=$hookmanager->executeHooks('addStatisticLine',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
||||
if (is_array($coll_list))
|
||||
{
|
||||
if (is_array($coll_list)) {
|
||||
$var=true;
|
||||
$total = 0; $totalamount = 0;
|
||||
$i = 1;
|
||||
foreach($coll_list as $coll)
|
||||
{
|
||||
if($min == 0 or ($min > 0 && $coll->amount > $min))
|
||||
{
|
||||
foreach ($coll_list as $coll) {
|
||||
if ($min == 0 or ($min > 0 && $coll->amount > $min)) {
|
||||
$var=!$var;
|
||||
$intra = str_replace($find,$replace,$coll->tva_intra);
|
||||
if(empty($intra))
|
||||
{
|
||||
if($coll->assuj == '1')
|
||||
{
|
||||
if (empty($intra)) {
|
||||
if ($coll->assuj == '1') {
|
||||
$intra = $langs->trans('Unknown');
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
//$intra = $langs->trans('NotRegistered');
|
||||
$intra = '';
|
||||
}
|
||||
@@ -313,44 +351,197 @@ if (is_array($coll_list))
|
||||
print '<td class="nowrap">'.$intra."</td>";
|
||||
print "<td class=\"nowrap\" align=\"right\">".price($coll->amount)."</td>";
|
||||
print "<td class=\"nowrap\" align=\"right\">".price($coll->tva)."</td>";
|
||||
$totalamount = $totalamount + $coll->amount;
|
||||
$totalamount = $totalamount + $coll->amount;
|
||||
$total = $total + $coll->tva;
|
||||
print "</tr>\n";
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
$x_paye_sum = $total;
|
||||
$x_paye_sum = $total;
|
||||
|
||||
print '<tr class="liste_total"><td align="right" colspan="3">'.$langs->trans("Total").':</td>';
|
||||
print '<td class="nowrap" align="right">'.price($totalamount).'</td>';
|
||||
print '<td class="nowrap" align="right">'.price($totalamount).'</td>';
|
||||
print '<td class="nowrap" align="right">'.price($total).'</td>';
|
||||
print '</tr>';
|
||||
|
||||
print '</table>';
|
||||
|
||||
// Total to pay
|
||||
print '<br><br>';
|
||||
print '<table class="noborder" width="100%">';
|
||||
$diff = $x_coll_sum - $x_paye_sum;
|
||||
print '<tr class="liste_total">';
|
||||
print '<td class="liste_total" colspan="4">'.$langs->trans("TotalToPay").($q?', '.$langs->trans("Quadri").' '.$q:'').'</td>';
|
||||
print '<td class="liste_total nowrap" align="right"><b>'.price(price2num($diff,'MT'))."</b></td>\n";
|
||||
print "</tr>\n";
|
||||
// Total to pay
|
||||
print '<br><br>';
|
||||
print '<table class="noborder" width="100%">';
|
||||
$diff = $x_coll_sum - $x_paye_sum;
|
||||
print '<tr class="liste_total">';
|
||||
print '<td class="liste_total" colspan="4">'.$langs->trans("TotalToPay").($q?', '.$langs->trans("Quadri").' '.$q:'').'</td>';
|
||||
print '<td class="liste_total nowrap" align="right"><b>'.price(price2num($diff,'MT'))."</b></td>\n";
|
||||
print "</tr>\n";
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
$langs->load("errors");
|
||||
if ($coll_list == -1)
|
||||
print '<tr><td colspan="5">'.$langs->trans("ErrorNoAccountancyModuleLoaded").'</td></tr>';
|
||||
else if ($coll_list == -2)
|
||||
print '<tr><td colspan="5">'.$langs->trans("FeatureNotYetAvailable").'</td></tr>';
|
||||
else
|
||||
print '<tr><td colspan="5">'.$langs->trans("Error").'</td></tr>';
|
||||
if ($coll_list == -1) {
|
||||
print '<tr><td colspan="5">' . $langs->trans("ErrorNoAccountancyModuleLoaded") . '</td></tr>';
|
||||
} else if ($coll_list == -2) {
|
||||
print '<tr><td colspan="5">' . $langs->trans("FeatureNotYetAvailable") . '</td></tr>';
|
||||
} else {
|
||||
print '<tr><td colspan="5">' . $langs->trans("Error") . '</td></tr>';
|
||||
}
|
||||
}
|
||||
|
||||
print '</table>';
|
||||
|
||||
if ($special_report) {
|
||||
// Get country 2-letters code
|
||||
global $mysoc;
|
||||
$country_id = $mysoc->country_id;
|
||||
$country = new Ccountry($db);
|
||||
$country->fetch($country_id);
|
||||
|
||||
// Print listing of other-country customers as additional report
|
||||
// This matches tax requirements to list all same-country customers (only)
|
||||
print '<h3>'.$langs->trans('OtherCountriesCustomersReport').'</h3>';
|
||||
print $langs->trans('BasedOnTwoFirstLettersOfVATNumberBeingDifferentFromYourCompanyCountry');
|
||||
$coll_list = vat_by_thirdparty($db, 0, $date_start, $date_end, $modetax, 'sell');
|
||||
|
||||
print "<table class=\"noborder\" width=\"100%\">";
|
||||
print "<tr class=\"liste_titre\">";
|
||||
print '<td align="left">' . $langs->trans("Num") . "</td>";
|
||||
print '<td align="left">' . $langs->trans("Customer") . "</td>";
|
||||
print "<td>" . $langs->trans("VATIntra") . "</td>";
|
||||
print "<td align=\"right\">" . $langs->trans("AmountHTVATRealReceived") . "</td>";
|
||||
print "<td align=\"right\">" . $vatcust . "</td>";
|
||||
print "</tr>\n";
|
||||
|
||||
if (is_array($coll_list)) {
|
||||
$var = true;
|
||||
$total = 0;
|
||||
$totalamount = 0;
|
||||
$i = 1;
|
||||
foreach ($coll_list as $coll) {
|
||||
if (substr($coll->tva_intra, 0, 2) == $country->code) {
|
||||
// Only use different-country VAT codes
|
||||
continue;
|
||||
}
|
||||
if ($min == 0 or ($min > 0 && $coll->amount > $min)) {
|
||||
$var = !$var;
|
||||
$intra = str_replace($find, $replace, $coll->tva_intra);
|
||||
if (empty($intra)) {
|
||||
if ($coll->assuj == '1') {
|
||||
$intra = $langs->trans('Unknown');
|
||||
} else {
|
||||
//$intra = $langs->trans('NotRegistered');
|
||||
$intra = '';
|
||||
}
|
||||
}
|
||||
print "<tr " . $bc[$var] . ">";
|
||||
print '<td class="nowrap">' . $i . "</td>";
|
||||
$company_static->id = $coll->socid;
|
||||
$company_static->name = $coll->name;
|
||||
$company_static->client = 1;
|
||||
print '<td class="nowrap">' . $company_static->getNomUrl(1,
|
||||
'customer') . '</td>';
|
||||
$find = array(' ', '.');
|
||||
$replace = array('', '');
|
||||
print '<td class="nowrap">' . $intra . "</td>";
|
||||
print "<td class=\"nowrap\" align=\"right\">" . price($coll->amount) . "</td>";
|
||||
print "<td class=\"nowrap\" align=\"right\">" . price($coll->tva) . "</td>";
|
||||
$totalamount = $totalamount + $coll->amount;
|
||||
$total = $total + $coll->tva;
|
||||
print "</tr>\n";
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
$x_coll_sum = $total;
|
||||
|
||||
print '<tr class="liste_total"><td align="right" colspan="3">' . $langs->trans("Total") . ':</td>';
|
||||
print '<td class="nowrap" align="right">' . price($totalamount) . '</td>';
|
||||
print '<td class="nowrap" align="right">' . price($total) . '</td>';
|
||||
print '</tr>';
|
||||
} else {
|
||||
$langs->load("errors");
|
||||
if ($coll_list == -1) {
|
||||
print '<tr><td colspan="5">' . $langs->trans("ErrorNoAccountancyModuleLoaded") . '</td></tr>';
|
||||
} else {
|
||||
if ($coll_list == -2) {
|
||||
print '<tr><td colspan="5">' . $langs->trans("FeatureNotYetAvailable") . '</td></tr>';
|
||||
} else {
|
||||
print '<tr><td colspan="5">' . $langs->trans("Error") . '</td></tr>';
|
||||
}
|
||||
}
|
||||
}
|
||||
print '</table>';
|
||||
|
||||
// Print listing of same-country customers as additional report
|
||||
// This matches tax requirements to list all same-country customers (only)
|
||||
print '<h3>'.$langs->trans('SameCountryCustomersWithVAT').'</h3>';
|
||||
print $langs->trans('BasedOnTwoFirstLettersOfVATNumberBeingTheSameAsYourCompanyCountry');
|
||||
$coll_list = vat_by_thirdparty($db, 0, $date_start, $date_end, $modetax, 'sell');
|
||||
|
||||
print "<table class=\"noborder\" width=\"100%\">";
|
||||
print "<tr class=\"liste_titre\">";
|
||||
print '<td align="left">' . $langs->trans("Num") . "</td>";
|
||||
print '<td align="left">' . $langs->trans("Customer") . "</td>";
|
||||
print "<td>" . $langs->trans("VATIntra") . "</td>";
|
||||
print "<td align=\"right\">" . $langs->trans("AmountHTVATRealReceived") . "</td>";
|
||||
print "<td align=\"right\">" . $vatcust . "</td>";
|
||||
print "</tr>\n";
|
||||
|
||||
if (is_array($coll_list)) {
|
||||
$var = true;
|
||||
$total = 0;
|
||||
$totalamount = 0;
|
||||
$i = 1;
|
||||
foreach ($coll_list as $coll) {
|
||||
if (substr($coll->tva_intra, 0, 2) != $country->code) {
|
||||
// Only use same-country VAT codes
|
||||
continue;
|
||||
}
|
||||
if ($min == 0 or ($min > 0 && $coll->amount > $min)) {
|
||||
$var = !$var;
|
||||
$intra = str_replace($find, $replace, $coll->tva_intra);
|
||||
if (empty($intra)) {
|
||||
if ($coll->assuj == '1') {
|
||||
$intra = $langs->trans('Unknown');
|
||||
} else {
|
||||
//$intra = $langs->trans('NotRegistered');
|
||||
$intra = '';
|
||||
}
|
||||
}
|
||||
print "<tr " . $bc[$var] . ">";
|
||||
print '<td class="nowrap">' . $i . "</td>";
|
||||
$company_static->id = $coll->socid;
|
||||
$company_static->name = $coll->name;
|
||||
$company_static->client = 1;
|
||||
print '<td class="nowrap">' . $company_static->getNomUrl(1, 'customer') . '</td>';
|
||||
$find = array(' ', '.');
|
||||
$replace = array('', '');
|
||||
print '<td class="nowrap">' . $intra . "</td>";
|
||||
print "<td class=\"nowrap\" align=\"right\">" . price($coll->amount) . "</td>";
|
||||
print "<td class=\"nowrap\" align=\"right\">" . price($coll->tva) . "</td>";
|
||||
$totalamount = $totalamount + $coll->amount;
|
||||
$total = $total + $coll->tva;
|
||||
print "</tr>\n";
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
$x_coll_sum = $total;
|
||||
|
||||
print '<tr class="liste_total"><td align="right" colspan="3">' . $langs->trans("Total") . ':</td>';
|
||||
print '<td class="nowrap" align="right">' . price($totalamount) . '</td>';
|
||||
print '<td class="nowrap" align="right">' . price($total) . '</td>';
|
||||
print '</tr>';
|
||||
} else {
|
||||
$langs->load("errors");
|
||||
if ($coll_list == -1) {
|
||||
print '<tr><td colspan="5">' . $langs->trans("ErrorNoAccountancyModuleLoaded") . '</td></tr>';
|
||||
} else {
|
||||
if ($coll_list == -2) {
|
||||
print '<tr><td colspan="5">' . $langs->trans("FeatureNotYetAvailable") . '</td></tr>';
|
||||
} else {
|
||||
print '<tr><td colspan="5">' . $langs->trans("Error") . '</td></tr>';
|
||||
}
|
||||
}
|
||||
}
|
||||
print '</table>';
|
||||
}
|
||||
|
||||
llxFooter();
|
||||
|
||||
|
||||
@@ -72,8 +72,8 @@ function tva_coll($db,$y,$q)
|
||||
$sql.= " AND f.fk_statut in (1,2)";
|
||||
$sql.= " AND f.rowid = d.fk_facture ";
|
||||
$sql.= " AND date_format(f.datef,'%Y') = '".$y."'";
|
||||
$sql.= " AND (round(date_format(f.datef,'%m') > ".(($q-1)*3);
|
||||
$sql.= " AND round(date_format(f.datef,'%m')) <= ".($q*3).")";
|
||||
$sql.= " AND (date_format(f.datef,'%m') > ".(($q-1)*3);
|
||||
$sql.= " AND date_format(f.datef,'%m') <= ".($q*3).")";
|
||||
$sql.= " ORDER BY rate, facid";
|
||||
|
||||
}
|
||||
@@ -131,7 +131,7 @@ function tva_paye($db, $y,$q)
|
||||
if ($conf->global->ACCOUNTING_MODE == "CREANCES-DETTES")
|
||||
{
|
||||
// Si on paye la tva sur les factures dues (non brouillon)
|
||||
$sql = "SELECT d.fk_facture_fourn as facid, f.facnumber as facnum, d.tva_tx as rate, d.total_ht as totalht, d.tva as amount";
|
||||
$sql = "SELECT d.fk_facture_fourn as facid, f.ref_supplier as facnum, d.tva_tx as rate, d.total_ht as totalht, d.tva as amount";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."facture_fourn as f";
|
||||
$sql.= ", ".MAIN_DB_PREFIX."facture_fourn_det as d" ;
|
||||
$sql.= ", ".MAIN_DB_PREFIX."societe as s";
|
||||
@@ -222,8 +222,7 @@ if ($conf->global->ACCOUNTING_MODE == "CREANCES-DETTES")
|
||||
$subtot_coll_vat = 0;
|
||||
$subtot_paye_total = 0;
|
||||
$subtot_paye_vat = 0;
|
||||
for ($q = 1 ; $q <= 4 ; $q++)
|
||||
{
|
||||
for ($q = 1 ; $q <= 4 ; $q++) {
|
||||
print "<tr class=\"liste_titre\"><td colspan=\"8\">".$langs->trans("Quadri")." $q (".dol_print_date(dol_mktime(0,0,0,(($q-1)*3)+1,1,$y),"%b %Y").' - '.dol_print_date(dol_mktime(0,0,0,($q*3),1,$y),"%b %Y").")</td></tr>";
|
||||
$var=true;
|
||||
|
||||
|
||||
713
htdocs/compta/tva/quarter_report.php
Normal file
713
htdocs/compta/tva/quarter_report.php
Normal file
@@ -0,0 +1,713 @@
|
||||
<?php
|
||||
/* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||
* Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com>
|
||||
* Copyright (C) 2004-2013 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2006-2007, 2015 Yannick Warnier <ywarnier@beeznest.org>
|
||||
* Copyright (C) 2014 Ferran Marcet <fmarcet@2byte.es>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* 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/compta/tva/quadri_detail.php
|
||||
* \ingroup tax
|
||||
* \brief Trimestrial page - detailed version
|
||||
* TODO Deal with recurrent invoices as well
|
||||
*/
|
||||
|
||||
require '../../main.inc.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/report.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/tax.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/compta/tva/class/tva.class.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/fourn/class/paiementfourn.class.php';
|
||||
|
||||
$langs->load("main");
|
||||
$langs->load("bills");
|
||||
$langs->load("compta");
|
||||
$langs->load("companies");
|
||||
$langs->load("products");
|
||||
$langs->load("other");
|
||||
|
||||
// Date range
|
||||
$year=GETPOST('year', 'int');
|
||||
if (empty($year)) {
|
||||
$year_current = strftime("%Y",dol_now());
|
||||
$year_start = $year_current;
|
||||
} else {
|
||||
$year_current = $year;
|
||||
$year_start = $year;
|
||||
}
|
||||
$date_start=dol_mktime(0,0,0,$_REQUEST["date_startmonth"],$_REQUEST["date_startday"],$_REQUEST["date_startyear"]);
|
||||
$date_end=dol_mktime(23,59,59,$_REQUEST["date_endmonth"],$_REQUEST["date_endday"],$_REQUEST["date_endyear"]);
|
||||
// Quarter
|
||||
if (empty($date_start) || empty($date_end)) { // We define date_start and date_end
|
||||
$q=GETPOST('q', 'int');
|
||||
if (empty($q)) {
|
||||
if (isset($_REQUEST["month"])) {
|
||||
$date_start=dol_get_first_day($year_start,$_REQUEST["month"],false);
|
||||
$date_end=dol_get_last_day($year_start,$_REQUEST["month"],false);
|
||||
} else {
|
||||
$month_current = strftime("%m",dol_now());
|
||||
if ($month_current >= 10) $q=4;
|
||||
elseif ($month_current >= 7) $q=3;
|
||||
elseif ($month_current >= 4) $q=2;
|
||||
else $q=1;
|
||||
}
|
||||
}
|
||||
if ($q==1) {
|
||||
$date_start=dol_get_first_day($year_start,1,false);
|
||||
$date_end=dol_get_last_day($year_start,3,false);
|
||||
}
|
||||
if ($q==2) {
|
||||
$date_start=dol_get_first_day($year_start,4,false);
|
||||
$date_end=dol_get_last_day($year_start,6,false);
|
||||
}
|
||||
if ($q==3) {
|
||||
$date_start=dol_get_first_day($year_start,7,false);
|
||||
$date_end=dol_get_last_day($year_start,9,false);
|
||||
}
|
||||
if ($q==4) {
|
||||
$date_start=dol_get_first_day($year_start,10,false);
|
||||
$date_end=dol_get_last_day($year_start,12,false);
|
||||
}
|
||||
}
|
||||
|
||||
$min = GETPOST("min");
|
||||
if (empty($min)) {
|
||||
$min = 0;
|
||||
}
|
||||
|
||||
// Define modetax (0 or 1)
|
||||
// 0=normal, 1=option vat for services is on debit
|
||||
$modetax = $conf->global->TAX_MODE;
|
||||
if (isset($_REQUEST["modetax"])) {
|
||||
$modetax=$_REQUEST["modetax"];
|
||||
}
|
||||
if (empty($modetax)) {
|
||||
$modetax=0;
|
||||
}
|
||||
|
||||
// Security check
|
||||
$socid = GETPOST('socid','int');
|
||||
if ($user->societe_id) {
|
||||
$socid=$user->societe_id;
|
||||
}
|
||||
$result = restrictedArea($user, 'tax', '', '', 'charges');
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* View
|
||||
*/
|
||||
|
||||
$morequerystring='';
|
||||
$listofparams=array('date_startmonth','date_startyear','date_startday','date_endmonth','date_endyear','date_endday');
|
||||
foreach ($listofparams as $param) {
|
||||
if (GETPOST($param)!='') {
|
||||
$morequerystring.=($morequerystring?'&':'').$param.'='.GETPOST($param);
|
||||
}
|
||||
}
|
||||
|
||||
llxHeader('','','','',0,0,'','',$morequerystring);
|
||||
|
||||
$form=new Form($db);
|
||||
|
||||
$company_static=new Societe($db);
|
||||
$invoice_customer=new Facture($db);
|
||||
$invoice_supplier=new FactureFournisseur($db);
|
||||
$product_static=new Product($db);
|
||||
$payment_static=new Paiement($db);
|
||||
$paymentfourn_static=new PaiementFourn($db);
|
||||
|
||||
//print_fiche_titre($langs->trans("VAT"),"");
|
||||
|
||||
//$fsearch.='<br>';
|
||||
$fsearch.=' <input type="hidden" name="year" value="'.$year.'">';
|
||||
$fsearch.=' <input type="hidden" name="modetax" value="'.$modetax.'">';
|
||||
//$fsearch.=' '.$langs->trans("SalesTurnoverMinimum").': ';
|
||||
//$fsearch.=' <input type="text" name="min" value="'.$min.'">';
|
||||
|
||||
|
||||
// Affiche en-tete du rapport
|
||||
if ($modetax==1) { // Calculate on invoice for goods and services
|
||||
$nom=$langs->trans("VATReportByQuartersInDueDebtMode");
|
||||
$calcmode=$langs->trans("CalcModeVATDebt");
|
||||
$calcmode.='<br>('.$langs->trans("TaxModuleSetupToModifyRules",DOL_URL_ROOT.'/admin/taxes.php').')';
|
||||
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
|
||||
$prevyear=$year_start; $prevquarter=$q;
|
||||
if ($prevquarter > 1) {
|
||||
$prevquarter--;
|
||||
} else {
|
||||
$prevquarter=4; $prevyear--;
|
||||
}
|
||||
$nextyear=$year_start; $nextquarter=$q;
|
||||
if ($nextquarter < 4) {
|
||||
$nextquarter++;
|
||||
} else {
|
||||
$nextquarter=1; $nextyear++;
|
||||
}
|
||||
//$periodlink=($prevyear?"<a href='".$_SERVER["PHP_SELF"]."?year=".$prevyear."&q=".$prevquarter."&modetax=".$modetax."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year=".$nextyear."&q=".$nextquarter."&modetax=".$modetax."'>".img_next()."</a>":"");
|
||||
$description=$langs->trans("RulesVATDueServices");
|
||||
$description.='<br>';
|
||||
$description.=$langs->trans("RulesVATDueProducts");
|
||||
//if ($conf->global->MAIN_MODULE_COMPTABILITE || $conf->global->MAIN_MODULE_ACCOUNTING) $description.='<br>'.img_warning().' '.$langs->trans('OptionVatInfoModuleComptabilite');
|
||||
//if (! empty($conf->global->MAIN_MODULE_COMPTABILITE)) $description.='<br>'.$langs->trans("WarningDepositsNotIncluded");
|
||||
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) {
|
||||
$description.='<br>'.$langs->trans("DepositsAreNotIncluded");
|
||||
} else {
|
||||
$description.='<br>'.$langs->trans("DepositsAreIncluded");
|
||||
}
|
||||
$description.=$fsearch;
|
||||
$builddate=time();
|
||||
//$exportlink=$langs->trans("NotYetAvailable");
|
||||
|
||||
$elementcust=$langs->trans("CustomersInvoices");
|
||||
$productcust=$langs->trans("ProductOrService");
|
||||
$amountcust=$langs->trans("AmountHT");
|
||||
$vatcust=$langs->trans("VATReceived");
|
||||
$namecust=$langs->trans("Name");
|
||||
if ($mysoc->tva_assuj) {
|
||||
$vatcust.=' ('.$langs->trans("ToPay").')';
|
||||
}
|
||||
$elementsup=$langs->trans("SuppliersInvoices");
|
||||
$productsup=$langs->trans("ProductOrService");
|
||||
$amountsup=$langs->trans("AmountHT");
|
||||
$vatsup=$langs->trans("VATPaid");
|
||||
$namesup=$namecust;
|
||||
if ($mysoc->tva_assuj) {
|
||||
$vatsup.=' ('.$langs->trans("ToGetBack").')';
|
||||
}
|
||||
}
|
||||
if ($modetax==0) { // Invoice for goods, payment for services
|
||||
$nom=$langs->trans("VATReportByQuartersInInputOutputMode");
|
||||
$calcmode=$langs->trans("CalcModeVATEngagement");
|
||||
$calcmode.='<br>('.$langs->trans("TaxModuleSetupToModifyRules",DOL_URL_ROOT.'/admin/taxes.php').')';
|
||||
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
|
||||
$prevyear=$year_start; $prevquarter=$q;
|
||||
if ($prevquarter > 1) {
|
||||
$prevquarter--;
|
||||
} else {
|
||||
$prevquarter=4; $prevyear--;
|
||||
}
|
||||
$nextyear=$year_start; $nextquarter=$q;
|
||||
if ($nextquarter < 4) {
|
||||
$nextquarter++;
|
||||
} else {
|
||||
$nextquarter=1; $nextyear++;
|
||||
}
|
||||
//$periodlink=($prevyear?"<a href='".$_SERVER["PHP_SELF"]."?year=".$prevyear."&q=".$prevquarter."&modetax=".$modetax."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year=".$nextyear."&q=".$nextquarter."&modetax=".$modetax."'>".img_next()."</a>":"");
|
||||
$description=$langs->trans("RulesVATInServices");
|
||||
$description.=' '.$langs->trans("DepositsAreIncluded");
|
||||
$description.='<br>';
|
||||
$description.=$langs->trans("RulesVATInProducts");
|
||||
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) {
|
||||
$description.=' '.$langs->trans("DepositsAreNotIncluded");
|
||||
} else {
|
||||
$description.=' '.$langs->trans("DepositsAreIncluded");
|
||||
}
|
||||
//if ($conf->global->MAIN_MODULE_COMPTABILITE || $conf->global->MAIN_MODULE_ACCOUNTING) $description.='<br>'.img_warning().' '.$langs->trans('OptionVatInfoModuleComptabilite');
|
||||
//if (! empty($conf->global->MAIN_MODULE_COMPTABILITE)) $description.='<br>'.$langs->trans("WarningDepositsNotIncluded");
|
||||
$description.=$fsearch;
|
||||
$builddate=time();
|
||||
//$exportlink=$langs->trans("NotYetAvailable");
|
||||
|
||||
$elementcust=$langs->trans("CustomersInvoices");
|
||||
$productcust=$langs->trans("ProductOrService");
|
||||
$amountcust=$langs->trans("AmountHT");
|
||||
$vatcust=$langs->trans("VATReceived");
|
||||
$namecust=$langs->trans("Name");
|
||||
if ($mysoc->tva_assuj) {
|
||||
$vatcust.=' ('.$langs->trans("ToPay").')';
|
||||
}
|
||||
$elementsup=$langs->trans("SuppliersInvoices");
|
||||
$productsup=$productcust;
|
||||
$amountsup=$amountcust;
|
||||
$vatsup=$langs->trans("VATPaid");
|
||||
$namesup=$namecust;
|
||||
if ($mysoc->tva_assuj) {
|
||||
$vatsup.=' ('.$langs->trans("ToGetBack").')';
|
||||
}
|
||||
}
|
||||
report_header($nom,$nomlink,$period,$periodlink,$description,$builddate,$exportlink,array(),$calcmode);
|
||||
|
||||
$vatcust=$langs->trans("VATReceived");
|
||||
$vatsup=$langs->trans("VATPaid");
|
||||
|
||||
|
||||
// VAT Received and paid
|
||||
|
||||
echo '<table class="noborder" width="100%">';
|
||||
|
||||
$y = $year_current;
|
||||
$total = 0;
|
||||
$i=0;
|
||||
$columns = 6;
|
||||
|
||||
// Load arrays of datas
|
||||
$x_coll = vat_by_date($db, 0, 0, $date_start, $date_end, $modetax, 'sell');
|
||||
$x_paye = vat_by_date($db, 0, 0, $date_start, $date_end, $modetax, 'buy');
|
||||
|
||||
if (!is_array($x_coll) || !is_array($x_paye)) {
|
||||
$langs->load("errors");
|
||||
if ($x_coll == -1) {
|
||||
print '<tr><td colspan="' . $columns . '">' . $langs->trans("ErrorNoAccountancyModuleLoaded") . '</td></tr>';
|
||||
} else if ($x_coll == -2) {
|
||||
print '<tr><td colspan="' . $columns . '">' . $langs->trans("FeatureNotYetAvailable") . '</td></tr>';
|
||||
} else {
|
||||
print '<tr><td colspan="' . $columns . '">' . $langs->trans("Error") . '</td></tr>';
|
||||
}
|
||||
} else {
|
||||
$x_both = array();
|
||||
//now, from these two arrays, get another array with one rate per line
|
||||
foreach(array_keys($x_coll) as $my_coll_rate) {
|
||||
$x_both[$my_coll_rate]['coll']['totalht'] = $x_coll[$my_coll_rate]['totalht'];
|
||||
$x_both[$my_coll_rate]['coll']['vat'] = $x_coll[$my_coll_rate]['vat'];
|
||||
$x_both[$my_coll_rate]['paye']['totalht'] = 0;
|
||||
$x_both[$my_coll_rate]['paye']['vat'] = 0;
|
||||
$x_both[$my_coll_rate]['coll']['links'] = '';
|
||||
$x_both[$my_coll_rate]['coll']['detail'] = array();
|
||||
foreach($x_coll[$my_coll_rate]['facid'] as $id=>$dummy) {
|
||||
$invoice_customer->id=$x_coll[$my_coll_rate]['facid'][$id];
|
||||
$invoice_customer->ref=$x_coll[$my_coll_rate]['facnum'][$id];
|
||||
$invoice_customer->type=$x_coll[$my_coll_rate]['type'][$id];
|
||||
$company_static->fetch($x_coll[$my_coll_rate]['company_id'][$id]);
|
||||
$x_both[$my_coll_rate]['coll']['detail'][] = array(
|
||||
'id' =>$x_coll[$my_coll_rate]['facid'][$id],
|
||||
'descr' =>$x_coll[$my_coll_rate]['descr'][$id],
|
||||
'pid' =>$x_coll[$my_coll_rate]['pid'][$id],
|
||||
'pref' =>$x_coll[$my_coll_rate]['pref'][$id],
|
||||
'ptype' =>$x_coll[$my_coll_rate]['ptype'][$id],
|
||||
'payment_id'=>$x_coll[$my_coll_rate]['payment_id'][$id],
|
||||
'payment_amount'=>$x_coll[$my_coll_rate]['payment_amount'][$id],
|
||||
'ftotal_ttc'=>$x_coll[$my_coll_rate]['ftotal_ttc'][$id],
|
||||
'dtotal_ttc'=>$x_coll[$my_coll_rate]['dtotal_ttc'][$id],
|
||||
'dtype' =>$x_coll[$my_coll_rate]['dtype'][$id],
|
||||
'datef' =>$x_coll[$my_coll_rate]['datef'][$id],
|
||||
'company_link'=>$company_static->getNomUrl(1,'',20),
|
||||
'ddate_start'=>$x_coll[$my_coll_rate]['ddate_start'][$id],
|
||||
'ddate_end' =>$x_coll[$my_coll_rate]['ddate_end'][$id],
|
||||
'totalht' =>$x_coll[$my_coll_rate]['totalht_list'][$id],
|
||||
'vat' =>$x_coll[$my_coll_rate]['vat_list'][$id],
|
||||
'link' =>$invoice_customer->getNomUrl(1,'',12)
|
||||
);
|
||||
}
|
||||
}
|
||||
// tva paid
|
||||
foreach (array_keys($x_paye) as $my_paye_rate) {
|
||||
$x_both[$my_paye_rate]['paye']['totalht'] = $x_paye[$my_paye_rate]['totalht'];
|
||||
$x_both[$my_paye_rate]['paye']['vat'] = $x_paye[$my_paye_rate]['vat'];
|
||||
if (!isset($x_both[$my_paye_rate]['coll']['totalht'])) {
|
||||
$x_both[$my_paye_rate]['coll']['totalht'] = 0;
|
||||
$x_both[$my_paye_rate]['coll']['vat'] = 0;
|
||||
}
|
||||
$x_both[$my_paye_rate]['paye']['links'] = '';
|
||||
$x_both[$my_paye_rate]['paye']['detail'] = array();
|
||||
|
||||
foreach ($x_paye[$my_paye_rate]['facid'] as $id=>$dummy) {
|
||||
$invoice_supplier->id=$x_paye[$my_paye_rate]['facid'][$id];
|
||||
$invoice_supplier->ref=$x_paye[$my_paye_rate]['facnum'][$id];
|
||||
$invoice_supplier->type=$x_paye[$my_paye_rate]['type'][$id];
|
||||
$company_static->fetch($x_paye[$my_paye_rate]['company_id'][$id]);
|
||||
$x_both[$my_paye_rate]['paye']['detail'][] = array(
|
||||
'id' =>$x_paye[$my_paye_rate]['facid'][$id],
|
||||
'descr' =>$x_paye[$my_paye_rate]['descr'][$id],
|
||||
'pid' =>$x_paye[$my_paye_rate]['pid'][$id],
|
||||
'pref' =>$x_paye[$my_paye_rate]['pref'][$id],
|
||||
'ptype' =>$x_paye[$my_paye_rate]['ptype'][$id],
|
||||
'payment_id'=>$x_paye[$my_paye_rate]['payment_id'][$id],
|
||||
'payment_amount'=>$x_paye[$my_paye_rate]['payment_amount'][$id],
|
||||
'ftotal_ttc'=>price2num($x_paye[$my_paye_rate]['ftotal_ttc'][$id]),
|
||||
'dtotal_ttc'=>price2num($x_paye[$my_paye_rate]['dtotal_ttc'][$id]),
|
||||
'dtype' =>$x_paye[$my_paye_rate]['dtype'][$id],
|
||||
'datef' =>$x_paye[$my_paye_rate]['datef'][$id],
|
||||
'company_link'=>$company_static->getNomUrl(1,'',20),
|
||||
'ddate_start'=>$x_paye[$my_paye_rate]['ddate_start'][$id],
|
||||
'ddate_end' =>$x_paye[$my_paye_rate]['ddate_end'][$id],
|
||||
'totalht' =>price2num($x_paye[$my_paye_rate]['totalht_list'][$id]),
|
||||
'vat' =>$x_paye[$my_paye_rate]['vat_list'][$id],
|
||||
'link' =>$invoice_supplier->getNomUrl(1,'',12)
|
||||
);
|
||||
}
|
||||
}
|
||||
//now we have an array (x_both) indexed by rates for coll and paye
|
||||
|
||||
|
||||
//print table headers for this quadri - incomes first
|
||||
|
||||
$x_coll_sum = 0;
|
||||
$x_coll_ht = 0;
|
||||
$x_paye_sum = 0;
|
||||
$x_paye_ht = 0;
|
||||
|
||||
$span=$columns-3;
|
||||
if ($modetax == 0) $span+=2;
|
||||
|
||||
//print '<tr><td colspan="'.($span+1).'">'..')</td></tr>';
|
||||
|
||||
// Customers invoices
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td align="left">'.$elementcust.'</td>';
|
||||
print '<td align="left">'.$langs->trans("Date").'</td>';
|
||||
print '<td align="left">'.$namecust.'</td>';
|
||||
print '<td align="left">'.$productcust.'</td>';
|
||||
if ($modetax == 0) {
|
||||
print '<td align="right">'.$amountcust.'</td>';
|
||||
print '<td align="right">'.$langs->trans("Payment").' ('.$langs->trans("PercentOfInvoice").')</td>';
|
||||
}
|
||||
print '<td align="right">'.$langs->trans("AmountHTVATRealReceived").'</td>';
|
||||
print '<td align="right">'.$vatcust.'</td>';
|
||||
print '</tr>';
|
||||
|
||||
$action = "tvadetail";
|
||||
$parameters["mode"] = $modetax;
|
||||
$parameters["start"] = $date_start;
|
||||
$parameters["end"] = $date_end;
|
||||
$object = array(&$x_coll, &$x_paye, &$x_both);
|
||||
// Initialize technical object to manage hooks of expenses. Note that conf->hooks_modules contains array array
|
||||
$hookmanager->initHooks(array('externalbalance'));
|
||||
$reshook=$hookmanager->executeHooks('addStatisticLine',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
||||
|
||||
foreach (array_keys($x_coll) as $rate) {
|
||||
$subtot_coll_total_ht = 0;
|
||||
$subtot_coll_vat = 0;
|
||||
|
||||
if (is_array($x_both[$rate]['coll']['detail'])) {
|
||||
// VAT Rate
|
||||
$var=true;
|
||||
print "<tr>";
|
||||
print '<td class="tax_rate">'.$langs->trans("Rate").': '.vatrate($rate).'%</td><td colspan="'.$span.'"></td>';
|
||||
print '</tr>'."\n";
|
||||
|
||||
foreach ($x_both[$rate]['coll']['detail'] as $index => $fields) {
|
||||
// Define type
|
||||
$type=($fields['dtype']?$fields['dtype']:$fields['ptype']);
|
||||
// Try to enhance type detection using date_start and date_end for free lines where type
|
||||
// was not saved.
|
||||
if (!empty($fields['ddate_start'])) {
|
||||
$type=1;
|
||||
}
|
||||
if (!empty($fields['ddate_end'])) {
|
||||
$type=1;
|
||||
}
|
||||
|
||||
$var=!$var;
|
||||
print '<tr '.$bc[$var].'>';
|
||||
|
||||
// Ref
|
||||
print '<td class="nowrap" align="left">'.$fields['link'].'</td>';
|
||||
|
||||
// Invoice date
|
||||
print '<td align="left">' . $fields['datef'] . '</td>';
|
||||
// Company name
|
||||
print '<td align="left">' . $fields['company_link'] . '</td>';
|
||||
|
||||
// Description
|
||||
print '<td align="left">';
|
||||
if ($fields['pid']) {
|
||||
$product_static->id=$fields['pid'];
|
||||
$product_static->ref=$fields['pref'];
|
||||
$product_static->type=$fields['ptype'];
|
||||
print $product_static->getNomUrl(1);
|
||||
if (dol_string_nohtmltag($fields['descr'])) {
|
||||
print ' - '.dol_trunc(dol_string_nohtmltag($fields['descr']),16);
|
||||
}
|
||||
} else {
|
||||
if ($type) {
|
||||
$text = img_object($langs->trans('Service'),'service');
|
||||
} else {
|
||||
$text = img_object($langs->trans('Product'),'product');
|
||||
}
|
||||
if (preg_match('/^\((.*)\)$/',$fields['descr'],$reg)) {
|
||||
if ($reg[1]=='DEPOSIT') {
|
||||
$fields['descr']=$langs->transnoentitiesnoconv('Deposit');
|
||||
} elseif ($reg[1]=='CREDIT_NOTE') {
|
||||
$fields['descr']=$langs->transnoentitiesnoconv('CreditNote');
|
||||
} else {
|
||||
$fields['descr']=$langs->transnoentitiesnoconv($reg[1]);
|
||||
}
|
||||
}
|
||||
print $text.' '.dol_trunc(dol_string_nohtmltag($fields['descr']),16);
|
||||
|
||||
// Show range
|
||||
print_date_range($fields['ddate_start'],$fields['ddate_end']);
|
||||
}
|
||||
print '</td>';
|
||||
|
||||
// Total HT
|
||||
if ($modetax == 0) {
|
||||
print '<td class="nowrap" align="right">';
|
||||
print price($fields['totalht']);
|
||||
if (price2num($fields['ftotal_ttc'])) {
|
||||
//print $fields['dtotal_ttc']."/".$fields['ftotal_ttc']." - ";
|
||||
$ratiolineinvoice=($fields['dtotal_ttc']/$fields['ftotal_ttc']);
|
||||
//print ' ('.round($ratiolineinvoice*100,2).'%)';
|
||||
}
|
||||
print '</td>';
|
||||
}
|
||||
|
||||
// Payment
|
||||
$ratiopaymentinvoice=1;
|
||||
if ($modetax == 0) {
|
||||
if (isset($fields['payment_amount']) && $fields['ftotal_ttc']) {
|
||||
$ratiopaymentinvoice=($fields['payment_amount']/$fields['ftotal_ttc']);
|
||||
}
|
||||
print '<td class="nowrap" align="right">';
|
||||
//print $fields['totalht']."-".$fields['payment_amount']."-".$fields['ftotal_ttc'];
|
||||
if ($fields['payment_amount'] && $fields['ftotal_ttc']) {
|
||||
$payment_static->id=$fields['payment_id'];
|
||||
print $payment_static->getNomUrl(2);
|
||||
}
|
||||
if ($type == 0) {
|
||||
print $langs->trans("NotUsedForGoods");
|
||||
} else {
|
||||
print $fields['payment_amount'];
|
||||
if (isset($fields['payment_amount'])) {
|
||||
print ' ('.round($ratiopaymentinvoice*100,2).'%)';
|
||||
}
|
||||
}
|
||||
print '</td>';
|
||||
}
|
||||
|
||||
// Total collected
|
||||
print '<td class="nowrap" align="right">';
|
||||
$temp_ht=$fields['totalht'];
|
||||
if ($type == 1) {
|
||||
$temp_ht=$fields['totalht']*$ratiopaymentinvoice;
|
||||
}
|
||||
print price(price2num($temp_ht,'MT'),1);
|
||||
print '</td>';
|
||||
|
||||
// VAT
|
||||
print '<td class="nowrap" align="right">';
|
||||
$temp_vat=$fields['vat'];
|
||||
if ($type == 1) {
|
||||
$temp_vat=$fields['vat']*$ratiopaymentinvoice;
|
||||
}
|
||||
print price(price2num($temp_vat,'MT'),1);
|
||||
//print price($fields['vat']);
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
$subtot_coll_total_ht += $temp_ht;
|
||||
$subtot_coll_vat += $temp_vat;
|
||||
$x_coll_sum += $temp_vat;
|
||||
}
|
||||
}
|
||||
// Total customers for this vat rate
|
||||
print '<tr class="liste_total">';
|
||||
print '<td colspan="'.$span.'"></td>';
|
||||
print '<td align="right">'.$langs->trans("Total").':</td>';
|
||||
if ($modetax == 0) {
|
||||
print '<td class="nowrap" align="right"> </td>';
|
||||
print '<td align="right"> </td>';
|
||||
}
|
||||
print '<td align="right">'.price(price2num($subtot_coll_total_ht,'MT')).'</td>';
|
||||
print '<td class="nowrap" align="right">'.price(price2num($subtot_coll_vat,'MT')).'</td>';
|
||||
print '</tr>';
|
||||
}
|
||||
|
||||
if (count($x_coll) == 0) { // Show a total ine if nothing shown
|
||||
print '<tr class="liste_total">';
|
||||
print '<td colspan="'.$span.'"></td>';
|
||||
print '<td align="right">'.$langs->trans("Total").':</td>';
|
||||
if ($modetax == 0) {
|
||||
print '<td class="nowrap" align="right"> </td>';
|
||||
print '<td align="right"> </td>';
|
||||
}
|
||||
print '<td align="right">'.price(price2num(0,'MT')).'</td>';
|
||||
print '<td class="nowrap" align="right">'.price(price2num(0,'MT')).'</td>';
|
||||
print '</tr>';
|
||||
}
|
||||
|
||||
// Blank line
|
||||
print '<tr><td colspan="'.($span+1).'"> </td></tr>';
|
||||
|
||||
//print table headers for this quadri - expenses now
|
||||
//imprime les en-tete de tables pour ce quadri - maintenant les d<>penses
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td align="left">'.$elementsup.'</td>';
|
||||
print '<td align="left">'.$langs->trans("Date").'</td>';
|
||||
print '<td align="left">'.$namesup.'</td>';
|
||||
print '<td align="left">'.$productsup.'</td>';
|
||||
if ($modetax == 0) {
|
||||
print '<td align="right">'.$amountsup.'</td>';
|
||||
print '<td align="right">'.$langs->trans("Payment").' ('.$langs->trans("PercentOfInvoice").')</td>';
|
||||
}
|
||||
print '<td align="right">'.$langs->trans("AmountHTVATRealPaid").'</td>';
|
||||
print '<td align="right">'.$vatsup.'</td>';
|
||||
print '</tr>'."\n";
|
||||
|
||||
foreach (array_keys($x_paye) as $rate) {
|
||||
$subtot_paye_total_ht = 0;
|
||||
$subtot_paye_vat = 0;
|
||||
|
||||
if (is_array($x_both[$rate]['paye']['detail'])) {
|
||||
$var=true;
|
||||
print "<tr>";
|
||||
print '<td class="tax_rate">'.$langs->trans("Rate").': '.vatrate($rate).'%</td><td colspan="'.$span.'"></td>';
|
||||
print '</tr>'."\n";
|
||||
|
||||
foreach ($x_both[$rate]['paye']['detail'] as $index=>$fields) {
|
||||
// Define type
|
||||
$type=($fields['dtype']?$fields['dtype']:$fields['ptype']);
|
||||
// Try to enhance type detection using date_start and date_end for free lines where type
|
||||
// was not saved.
|
||||
if (!empty($fields['ddate_start'])) {
|
||||
$type=1;
|
||||
}
|
||||
if (!empty($fields['ddate_end'])) {
|
||||
$type=1;
|
||||
}
|
||||
|
||||
$var=!$var;
|
||||
print '<tr '.$bc[$var].'>';
|
||||
|
||||
// Ref
|
||||
print '<td class="nowrap" align="left">'.$fields['link'].'</td>';
|
||||
// Invoice date
|
||||
print '<td align="left">' . $fields['datef'] . '</td>';
|
||||
// Company name
|
||||
print '<td align="left">' . $fields['company_link'] . '</td>';
|
||||
|
||||
// Description
|
||||
print '<td align="left">';
|
||||
if ($fields['pid']) {
|
||||
$product_static->id=$fields['pid'];
|
||||
$product_static->ref=$fields['pref'];
|
||||
$product_static->type=$fields['ptype'];
|
||||
print $product_static->getNomUrl(1);
|
||||
if (dol_string_nohtmltag($fields['descr'])) {
|
||||
print ' - '.dol_trunc(dol_string_nohtmltag($fields['descr']),16);
|
||||
}
|
||||
} else {
|
||||
if ($type) {
|
||||
$text = img_object($langs->trans('Service'),'service');
|
||||
} else {
|
||||
$text = img_object($langs->trans('Product'),'product');
|
||||
}
|
||||
print $text.' '.dol_trunc(dol_string_nohtmltag($fields['descr']),16);
|
||||
|
||||
// Show range
|
||||
print_date_range($fields['ddate_start'],$fields['ddate_end']);
|
||||
}
|
||||
print '</td>';
|
||||
|
||||
// Total HT
|
||||
if ($modetax == 0) {
|
||||
print '<td class="nowrap" align="right">';
|
||||
print price($fields['totalht']);
|
||||
if (price2num($fields['ftotal_ttc'])) {
|
||||
//print $fields['dtotal_ttc']."/".$fields['ftotal_ttc']." - ";
|
||||
$ratiolineinvoice=($fields['dtotal_ttc']/$fields['ftotal_ttc']);
|
||||
//print ' ('.round($ratiolineinvoice*100,2).'%)';
|
||||
}
|
||||
print '</td>';
|
||||
}
|
||||
|
||||
// Payment
|
||||
$ratiopaymentinvoice=1;
|
||||
if ($modetax == 0) {
|
||||
if (isset($fields['payment_amount']) && $fields['ftotal_ttc']) {
|
||||
$ratiopaymentinvoice=($fields['payment_amount']/$fields['ftotal_ttc']);
|
||||
}
|
||||
print '<td class="nowrap" align="right">';
|
||||
if ($fields['payment_amount'] && $fields['ftotal_ttc']) {
|
||||
$paymentfourn_static->id=$fields['payment_id'];
|
||||
print $paymentfourn_static->getNomUrl(2);
|
||||
}
|
||||
if ($type == 0) {
|
||||
print $langs->trans("NotUsedForGoods");
|
||||
} else {
|
||||
print $fields['payment_amount'];
|
||||
if (isset($fields['payment_amount'])) {
|
||||
print ' ('.round($ratiopaymentinvoice*100,2).'%)';
|
||||
}
|
||||
}
|
||||
print '</td>';
|
||||
}
|
||||
|
||||
// VAT paid
|
||||
print '<td class="nowrap" align="right">';
|
||||
$temp_ht=$fields['totalht'];
|
||||
if ($type == 1) {
|
||||
$temp_ht=$fields['totalht']*$ratiopaymentinvoice;
|
||||
}
|
||||
print price(price2num($temp_ht,'MT'),1);
|
||||
print '</td>';
|
||||
|
||||
// VAT
|
||||
print '<td class="nowrap" align="right">';
|
||||
$temp_vat=$fields['vat'];
|
||||
if ($type == 1) {
|
||||
$temp_vat=$fields['vat']*$ratiopaymentinvoice;
|
||||
}
|
||||
print price(price2num($temp_vat,'MT'),1);
|
||||
//print price($fields['vat']);
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
$subtot_paye_total_ht += $temp_ht;
|
||||
$subtot_paye_vat += $temp_vat;
|
||||
$x_paye_sum += $temp_vat;
|
||||
}
|
||||
}
|
||||
// Total suppliers for this vat rate
|
||||
print '<tr class="liste_total">';
|
||||
print '<td colspan="'.$span.'"></td>';
|
||||
print '<td align="right">'.$langs->trans("Total").':</td>';
|
||||
if ($modetax == 0) {
|
||||
print '<td class="nowrap" align="right"> </td>';
|
||||
print '<td align="right"> </td>';
|
||||
}
|
||||
print '<td align="right">'.price(price2num($subtot_paye_total_ht,'MT')).'</td>';
|
||||
print '<td class="nowrap" align="right">'.price(price2num($subtot_paye_vat,'MT')).'</td>';
|
||||
print '</tr>';
|
||||
}
|
||||
|
||||
if (count($x_paye) == 0) { // Show a total ine if nothing shown
|
||||
print '<tr class="liste_total">';
|
||||
print '<td colspan="'.$span.'"></td>';
|
||||
print '<td align="right">'.$langs->trans("Total").':</td>';
|
||||
if ($modetax == 0) {
|
||||
print '<td class="nowrap" align="right"> </td>';
|
||||
print '<td align="right"> </td>';
|
||||
}
|
||||
print '<td align="right">'.price(price2num(0,'MT')).'</td>';
|
||||
print '<td class="nowrap" align="right">'.price(price2num(0,'MT')).'</td>';
|
||||
print '</tr>';
|
||||
}
|
||||
|
||||
print '</table>';
|
||||
|
||||
// Total to pay
|
||||
print '<br><br>';
|
||||
print '<table class="noborder" width="100%">';
|
||||
$diff = $x_coll_sum - $x_paye_sum;
|
||||
print '<tr class="liste_total">';
|
||||
print '<td class="liste_total" colspan="'.$span.'">'.$langs->trans("TotalToPay").($q?', '.$langs->trans("Quadri").' '.$q:'').'</td>';
|
||||
print '<td class="liste_total nowrap" align="right"><b>'.price(price2num($diff,'MT'))."</b></td>\n";
|
||||
print "</tr>\n";
|
||||
|
||||
$i++;
|
||||
}
|
||||
echo '</table>';
|
||||
|
||||
$db->close();
|
||||
|
||||
llxFooter();
|
||||
@@ -1254,10 +1254,11 @@ class Form
|
||||
* @param string $morefilter Add more filters into sql request
|
||||
* @param string $show_every 0=default list, 1=add also a value "Everybody" at beginning of list
|
||||
* @param string $enableonlytext If option $enableonly is set, we use this text to explain into label why record is disabled. Not used if enableonly is empty.
|
||||
* @param string $morecss More css
|
||||
* @return string HTML select string
|
||||
* @see select_dolgroups
|
||||
*/
|
||||
function select_dolusers($selected='', $htmlname='userid', $show_empty=0, $exclude='', $disabled=0, $include='', $enableonly='', $force_entity=0, $maxlength=0, $showstatus=0, $morefilter='', $show_every=0, $enableonlytext='')
|
||||
function select_dolusers($selected='', $htmlname='userid', $show_empty=0, $exclude='', $disabled=0, $include='', $enableonly='', $force_entity=0, $maxlength=0, $showstatus=0, $morefilter='', $show_every=0, $enableonlytext='', $morecss='')
|
||||
{
|
||||
global $conf,$user,$langs;
|
||||
|
||||
@@ -1339,7 +1340,7 @@ class Form
|
||||
$nodatarole=($comboenhancement?' data-role="none"':'');
|
||||
}
|
||||
|
||||
$out.= '<select class="flat minwidth200" id="'.$htmlname.'" name="'.$htmlname.'"'.($disabled?' disabled':'').$nodatarole.'>';
|
||||
$out.= '<select class="flat minwidth200'.($morecss?' '.$morecss:'').'" id="'.$htmlname.'" name="'.$htmlname.'"'.($disabled?' disabled':'').$nodatarole.'>';
|
||||
if ($show_empty) $out.= '<option value="-1"'.((empty($selected) || $selected==-1)?' selected':'').'> </option>'."\n";
|
||||
if ($show_every) $out.= '<option value="-2"'.(($selected==-2)?' selected':'').'>-- '.$langs->trans("Everybody").' --</option>'."\n";
|
||||
|
||||
@@ -3167,6 +3168,18 @@ class Form
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
else if ($input['type'] == 'date')
|
||||
{
|
||||
$more.='<tr><td>'.$input['label'].'</td>';
|
||||
$more.='<td colspan="2" align="left">';
|
||||
$more.=$this->select_date($input['value'],$input['name'],0,0,0,'',1,0,1);
|
||||
$more.='</td></tr>'."\n";
|
||||
$formquestion[] = array('name'=>$input['name'].'day');
|
||||
$formquestion[] = array('name'=>$input['name'].'month');
|
||||
$formquestion[] = array('name'=>$input['name'].'year');
|
||||
$formquestion[] = array('name'=>$input['name'].'hour');
|
||||
$formquestion[] = array('name'=>$input['name'].'min');
|
||||
}
|
||||
else if ($input['type'] == 'other')
|
||||
{
|
||||
$more.='<tr><td>';
|
||||
@@ -4296,7 +4309,7 @@ class Form
|
||||
$retstring.='</button> ';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (! empty($nooutput)) return $retstring;
|
||||
|
||||
print $retstring;
|
||||
|
||||
@@ -276,7 +276,8 @@ class FormMail extends Form
|
||||
|
||||
// Get message template
|
||||
$model_id=0;
|
||||
if (array_key_exists('models_id',$this->param)) {
|
||||
if (array_key_exists('models_id',$this->param))
|
||||
{
|
||||
$model_id=$this->param["models_id"];
|
||||
}
|
||||
$arraydefaultmessage=$this->getEMailTemplate($this->db, $this->param["models"], $user, $outputlangs, $model_id);
|
||||
@@ -295,23 +296,26 @@ class FormMail extends Form
|
||||
}
|
||||
|
||||
$result = $this->fetchAllEMailTemplate($this->param["models"], $user, $outputlangs);
|
||||
if ($result<0) {
|
||||
if ($result<0)
|
||||
{
|
||||
setEventMessage($this->error,'errors');
|
||||
}
|
||||
$modelmail_array=array();
|
||||
foreach($this->lines_model as $line) {
|
||||
foreach($this->lines_model as $line)
|
||||
{
|
||||
$modelmail_array[$line->id]=$line->label;
|
||||
}
|
||||
|
||||
if (count($modelmail_array)>0) {
|
||||
$out.= '<table class="nobordernopadding" width="100%"><tr><td width="20%">'."\n";
|
||||
// Zone to select its email template
|
||||
if (count($modelmail_array)>0)
|
||||
{
|
||||
$out.= '<div style="padding: 3px 0 3px 0">'."\n";
|
||||
$out.= $langs->trans('SelectMailModel').':'.$this->selectarray('modelmailselected', $modelmail_array,$model_id);
|
||||
$out.= '</td>';
|
||||
$out.= '<td width="5px">';
|
||||
if ($user->admin) $out.= info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1);
|
||||
$out.= '</td>';
|
||||
$out.= '<td><input class="flat" type="submit" value="'.$langs->trans('Valid').'" name="modelselected" id="modelselected"></td>';
|
||||
$out.= '</tr></table>';
|
||||
$out.= ' ';
|
||||
$out.= '<input class="button" type="submit" value="'.$langs->trans('Valid').'" name="modelselected" id="modelselected">';
|
||||
$out.= ' ';
|
||||
$out.= '</div>';
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -361,9 +361,10 @@ class FormOther
|
||||
* @param User $user Object user
|
||||
* @param int $showstatus 0=show user status only if status is disabled, 1=always show user status into label, -1=never show user status
|
||||
* @param int $showempty 1=show also an empty value
|
||||
* @param string $morecss More CSS
|
||||
* @return string Html combo list code
|
||||
*/
|
||||
function select_salesrepresentatives($selected,$htmlname,$user,$showstatus=0,$showempty=1)
|
||||
function select_salesrepresentatives($selected,$htmlname,$user,$showstatus=0,$showempty=1,$morecss='')
|
||||
{
|
||||
global $conf,$langs;
|
||||
$langs->load('users');
|
||||
@@ -383,7 +384,7 @@ class FormOther
|
||||
}
|
||||
}
|
||||
// Select each sales and print them in a select input
|
||||
$out.='<select class="flat" id="'.$htmlname.'" name="'.$htmlname.'"'.$nodatarole.'>';
|
||||
$out.='<select class="flat'.($morecss?' '.$morecss:'').'" id="'.$htmlname.'" name="'.$htmlname.'"'.$nodatarole.'>';
|
||||
if ($showempty) $out.='<option value="0"> </option>';
|
||||
|
||||
// Get list of users allowed to be viewed
|
||||
|
||||
@@ -261,7 +261,7 @@ class FormProjets
|
||||
*
|
||||
* @param int $socid Id third party (-1=all, 0=only projects not linked to a third party, id=projects not linked or linked to third party id)
|
||||
* @param int $selected Id task preselected
|
||||
* @param string $htmlname Nom de la zone html
|
||||
* @param string $htmlname Name of HTML select
|
||||
* @param int $maxlength Maximum length of label
|
||||
* @param int $option_only Return only html options lines without the select tag
|
||||
* @param int $show_empty Add an empty line
|
||||
@@ -270,7 +270,7 @@ class FormProjets
|
||||
* @param int $disabled Disabled
|
||||
* @return int Nber of project if OK, <0 if KO
|
||||
*/
|
||||
function select_task($socid=-1, $selected='', $htmlname='taskid', $maxlength=24, $option_only=0, $show_empty=1, $discard_closed=0, $forcefocus=0, $disabled=0)
|
||||
function selectTasks($socid=-1, $selected='', $htmlname='taskid', $maxlength=24, $option_only=0, $show_empty=1, $discard_closed=0, $forcefocus=0, $disabled=0)
|
||||
{
|
||||
global $user,$conf,$langs;
|
||||
|
||||
@@ -289,8 +289,11 @@ class FormProjets
|
||||
}
|
||||
|
||||
// Search all projects
|
||||
$sql = 'SELECT t.rowid, t.ref as tref, t.label as tlabel, p.ref, p.title, p.fk_soc, p.fk_statut, p.public';
|
||||
$sql.= ' FROM '.MAIN_DB_PREFIX .'projet as p, '.MAIN_DB_PREFIX.'projet_task as t';
|
||||
$sql = 'SELECT t.rowid, t.ref as tref, t.label as tlabel, p.ref, p.title, p.fk_soc, p.fk_statut, p.public,';
|
||||
$sql.= ' s.nom as name';
|
||||
$sql.= ' FROM '.MAIN_DB_PREFIX .'projet as p';
|
||||
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'societe as s ON s.rowid = p.fk_soc';
|
||||
$sql.= ', '.MAIN_DB_PREFIX.'projet_task as t';
|
||||
$sql.= " WHERE p.entity = ".$conf->entity;
|
||||
$sql.= " AND t.fk_projet = p.rowid";
|
||||
if ($projectsListId !== false) $sql.= " AND p.rowid IN (".$projectsListId.")";
|
||||
@@ -312,7 +315,7 @@ class FormProjets
|
||||
$comboenhancement = ajax_combobox($htmlname, '', 0, $forcefocus);
|
||||
$out.=$comboenhancement;
|
||||
$nodatarole=($comboenhancement?' data-role="none"':'');
|
||||
$minmax='minwidth100';
|
||||
$minmax='minwidth200';
|
||||
}
|
||||
|
||||
if (empty($option_only)) {
|
||||
@@ -346,6 +349,8 @@ class FormProjets
|
||||
//else $labeltoshow.=' ('.$langs->trans("Private").')';
|
||||
$labeltoshow.=' '.dol_trunc($obj->title,$maxlength);
|
||||
|
||||
if ($obj->name) $labeltoshow.=' ('.$obj->name.')';
|
||||
|
||||
$disabled=0;
|
||||
if ($obj->fk_statut == 0)
|
||||
{
|
||||
@@ -512,7 +517,7 @@ class FormProjets
|
||||
*
|
||||
* @param string $htmlname HTML name
|
||||
* @param int $preselected Preselected
|
||||
* @param int $shwoempty Add an empty line
|
||||
* @param int $showempty Add an empty line
|
||||
* @param int $useshortlabel Use short label
|
||||
* @return int|string The HTML select list of element or '' if nothing or -1 if KO
|
||||
*/
|
||||
|
||||
@@ -58,11 +58,12 @@ class Menu
|
||||
* @param string $target Target lien
|
||||
* @param string $mainmenu Main menu ('home', 'companies', 'products', ...)
|
||||
* @param string $leftmenu Left menu ('setup', 'system', 'admintools', ...)
|
||||
* @param int $position Position (not used yet)
|
||||
* @return void
|
||||
*/
|
||||
function add($url, $titre, $level=0, $enabled=1, $target='',$mainmenu='',$leftmenu='')
|
||||
function add($url, $titre, $level=0, $enabled=1, $target='',$mainmenu='',$leftmenu='',$position=0)
|
||||
{
|
||||
$this->liste[]=array('url'=>$url,'titre'=>$titre,'level'=>$level,'enabled'=>$enabled,'target'=>$target,'mainmenu'=>$mainmenu,'leftmenu'=>$leftmenu);
|
||||
$this->liste[]=array('url'=>$url,'titre'=>$titre,'level'=>$level,'enabled'=>$enabled,'target'=>$target,'mainmenu'=>$mainmenu,'leftmenu'=>$leftmenu, 'position'=>$position);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -76,12 +77,13 @@ class Menu
|
||||
* @param string $target Target lien
|
||||
* @param string $mainmenu Main menu ('home', 'companies', 'products', ...)
|
||||
* @param string $leftmenu Left menu ('setup', 'system', 'admintools', ...)
|
||||
* @param int $position Position (not used yet)
|
||||
* @return void
|
||||
*/
|
||||
function insert($idafter, $url, $titre, $level=0, $enabled=1, $target='',$mainmenu='',$leftmenu='')
|
||||
function insert($idafter, $url, $titre, $level=0, $enabled=1, $target='',$mainmenu='',$leftmenu='',$position=0)
|
||||
{
|
||||
$array_start = array_slice($this->liste,0,($idafter+1));
|
||||
$array_new = array(0=>array('url'=>$url,'titre'=>$titre,'level'=>$level,'enabled'=>$enabled,'target'=>$target,'mainmenu'=>$mainmenu,'leftmenu'=>$leftmenu));
|
||||
$array_new = array(0=>array('url'=>$url,'titre'=>$titre,'level'=>$level,'enabled'=>$enabled,'target'=>$target,'mainmenu'=>$mainmenu,'leftmenu'=>$leftmenu,'position'=>$position));
|
||||
$array_end = array_slice($this->liste,($idafter+1));
|
||||
$this->liste=array_merge($array_start,$array_new,$array_end);
|
||||
}
|
||||
|
||||
@@ -95,6 +95,7 @@ class Menubase
|
||||
$this->perms=trim($this->perms);
|
||||
$this->enabled=trim($this->enabled);
|
||||
$this->user=trim($this->user);
|
||||
$this->position=trim($this->position);
|
||||
if (! $this->level) $this->level=0;
|
||||
|
||||
// Check parameters
|
||||
|
||||
@@ -57,7 +57,8 @@ function showDP(base,dateFieldID,format,codelang)
|
||||
|
||||
showDP.box=document.createElement("div");
|
||||
showDP.box.className="bodyline";
|
||||
showDP.box.style.siplay="block";
|
||||
showDP.box.style.display="block";
|
||||
showDP.box.style.zIndex="1000";
|
||||
showDP.box.style.position="absolute";
|
||||
showDP.box.style.top=thetop + "px";
|
||||
showDP.box.style.left=theleft + "px";
|
||||
|
||||
@@ -2901,11 +2901,11 @@ function print_barre_liste($titre, $page, $file, $options='', $sortfield='', $so
|
||||
* @param string $file Page URL (in most cases provided with $_SERVER["PHP_SELF"])
|
||||
* @param string $options Other url paramaters to propagate ("" by default)
|
||||
* @param integer $nextpage Do we show a next page button
|
||||
* @param string $betweenarrows HTML content to show between arrows. Must contains '<li> </li>' tags.
|
||||
* @param string $betweenarrows HTML content to show between arrows. MUST contains '<li> </li>' tags or '<li><span> </span></li>'.
|
||||
* @param string $afterarrows HTML content to show after arrows. Must NOT contains '<li> </li>' tags.
|
||||
* @return void
|
||||
*/
|
||||
function print_fleche_navigation($page,$file,$options='',$nextpage=0,$betweenarrows='',$afterarrows='')
|
||||
function print_fleche_navigation($page, $file, $options='', $nextpage=0, $betweenarrows='', $afterarrows='')
|
||||
{
|
||||
global $conf, $langs;
|
||||
|
||||
@@ -2915,8 +2915,10 @@ function print_fleche_navigation($page,$file,$options='',$nextpage=0,$betweenarr
|
||||
if (empty($conf->dol_use_jmobile)) print '<li class="pagination"><a class="paginationprevious" href="'.$file.'?page='.($page-1).$options.'"><</a></li>';
|
||||
else print '<li><a data-role="button" data-icon="arrow-l" data-iconpos="left" href="'.$file.'?page='.($page-1).$options.'">'.$langs->trans("Previous").'</a></li>';
|
||||
}
|
||||
//if ($betweenarrows) print ($page > 0?' ':'').$betweenarrows.($nextpage>0?' ':'');
|
||||
print $betweenarrows;
|
||||
if ($betweenarrows)
|
||||
{
|
||||
print $betweenarrows;
|
||||
}
|
||||
if ($nextpage > 0)
|
||||
{
|
||||
if (empty($conf->dol_use_jmobile)) print '<li class="pagination"><a class="paginationnext" href="'.$file.'?page='.($page+1).$options.'">></a></li>';
|
||||
|
||||
@@ -24,18 +24,18 @@
|
||||
|
||||
|
||||
/**
|
||||
* Show header of a VAT report
|
||||
* Show header of a VAT report
|
||||
*
|
||||
* @param string $nom Name of report
|
||||
* @param string $variante Link for alternate report
|
||||
* @param string $period Period of report
|
||||
* @param string $periodlink Link to switch period
|
||||
* @param string $description Description
|
||||
* @param timestamp|integer $builddate Date generation
|
||||
* @param string $exportlink Link for export or ''
|
||||
* @param array $moreparam Array with list of params to add into form
|
||||
* @param string $calcmode Calculation mode
|
||||
* @return void
|
||||
* @param string $nom Name of report
|
||||
* @param string $variante Link for alternate report
|
||||
* @param string $period Period of report
|
||||
* @param string $periodlink Link to switch period
|
||||
* @param string $description Description
|
||||
* @param timestamp|integer $builddate Date generation
|
||||
* @param string $exportlink Link for export or ''
|
||||
* @param array $moreparam Array with list of params to add into form
|
||||
* @param string $calcmode Calculation mode
|
||||
* @return void
|
||||
*/
|
||||
function report_header($nom,$variante,$period,$periodlink,$description,$builddate,$exportlink='',$moreparam=array(),$calcmode='')
|
||||
{
|
||||
@@ -55,7 +55,7 @@ function report_header($nom,$variante,$period,$periodlink,$description,$builddat
|
||||
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
|
||||
foreach($moreparam as $key => $value)
|
||||
{
|
||||
print '<input type="hidden" name="'.$key.'" value="'.$value.'">';
|
||||
print '<input type="hidden" name="'.$key.'" value="'.$value.'">';
|
||||
}
|
||||
print '<table width="100%" class="border">';
|
||||
|
||||
|
||||
@@ -280,10 +280,11 @@ function vat_by_date($db, $y, $q, $date_start, $date_end, $modetax, $direction,
|
||||
$sql = "SELECT d.rowid, d.product_type as dtype, d.".$fk_facture." as facid, d.tva_tx as rate, d.total_ht as total_ht, d.total_ttc as total_ttc, d.".$total_tva." as total_vat, d.description as descr,";
|
||||
$sql .=" d.".$total_localtax1." as total_localtax1, d.".$total_localtax2." as total_localtax2, ";
|
||||
$sql.= " d.date_start as date_start, d.date_end as date_end,";
|
||||
$sql.= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc,";
|
||||
$sql.= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef, s.nom as company_name, s.rowid as company_id,";
|
||||
$sql.= " p.rowid as pid, p.ref as pref, p.fk_product_type as ptype,";
|
||||
$sql.= " 0 as payment_id, 0 as payment_amount";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX.$invoicetable." as f,";
|
||||
$sql.= " ".MAIN_DB_PREFIX."societe as s,";
|
||||
$sql.= " ".MAIN_DB_PREFIX.$invoicedettable." as d" ;
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p on d.fk_product = p.rowid";
|
||||
$sql.= " WHERE f.entity = " . $conf->entity;
|
||||
@@ -291,6 +292,7 @@ function vat_by_date($db, $y, $q, $date_start, $date_end, $modetax, $direction,
|
||||
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $sql.= " AND f.type IN (0,1,2,5)";
|
||||
else $sql.= " AND f.type IN (0,1,2,3,5)";
|
||||
$sql.= " AND f.rowid = d.".$fk_facture;
|
||||
$sql.= " AND s.rowid = f.fk_soc";
|
||||
if ($y && $m)
|
||||
{
|
||||
$sql.= " AND f.datef >= '".$db->idate(dol_get_first_day($y,$m,false))."'";
|
||||
@@ -325,10 +327,11 @@ function vat_by_date($db, $y, $q, $date_start, $date_end, $modetax, $direction,
|
||||
$sql = "SELECT d.rowid, d.product_type as dtype, d.".$fk_facture." as facid, d.tva_tx as rate, d.total_ht as total_ht, d.total_ttc as total_ttc, d.".$total_tva." as total_vat, d.description as descr,";
|
||||
$sql .=" d.".$total_localtax1." as total_localtax1, d.".$total_localtax2." as total_localtax2, ";
|
||||
$sql.= " d.date_start as date_start, d.date_end as date_end,";
|
||||
$sql.= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc,";
|
||||
$sql.= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef as date_f, s.nom as company_name, s.rowid as company_id,";
|
||||
$sql.= " p.rowid as pid, p.ref as pref, p.fk_product_type as ptype,";
|
||||
$sql.= " 0 as payment_id, 0 as payment_amount";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX.$invoicetable." as f,";
|
||||
$sql.= " ".MAIN_DB_PREFIX."societe as s,";
|
||||
$sql.= " ".MAIN_DB_PREFIX.$invoicedettable." as d" ;
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p on d.fk_product = p.rowid";
|
||||
$sql.= " WHERE f.entity = " . $conf->entity;
|
||||
@@ -336,6 +339,7 @@ function vat_by_date($db, $y, $q, $date_start, $date_end, $modetax, $direction,
|
||||
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $sql.= " AND f.type IN (0,1,2,5)";
|
||||
else $sql.= " AND f.type IN (0,1,2,3,5)";
|
||||
$sql.= " AND f.rowid = d.".$fk_facture;
|
||||
$sql.= " AND s.rowid = f.fk_soc";
|
||||
if ($y && $m)
|
||||
{
|
||||
$sql.= " AND f.datef >= '".$db->idate(dol_get_first_day($y,$m,false))."'";
|
||||
@@ -384,6 +388,9 @@ function vat_by_date($db, $y, $q, $date_start, $date_end, $modetax, $direction,
|
||||
}
|
||||
$list[$assoc['rate']]['dtotal_ttc'][] = $assoc['total_ttc'];
|
||||
$list[$assoc['rate']]['dtype'][] = $assoc['dtype'];
|
||||
$list[$assoc['rate']]['datef'][] = $assoc['datef'];
|
||||
$list[$assoc['rate']]['company_name'][] = $assoc['company_name'];
|
||||
$list[$assoc['rate']]['company_id'][] = $assoc['company_id'];
|
||||
$list[$assoc['rate']]['ddate_start'][] = $db->jdate($assoc['date_start']);
|
||||
$list[$assoc['rate']]['ddate_end'][] = $db->jdate($assoc['date_end']);
|
||||
|
||||
@@ -438,10 +445,11 @@ function vat_by_date($db, $y, $q, $date_start, $date_end, $modetax, $direction,
|
||||
$sql = "SELECT d.rowid, d.product_type as dtype, d.".$fk_facture." as facid, d.tva_tx as rate, d.total_ht as total_ht, d.total_ttc as total_ttc, d.".$total_tva." as total_vat, d.description as descr,";
|
||||
$sql .=" d.".$total_localtax1." as total_localtax1, d.".$total_localtax2." as total_localtax2, ";
|
||||
$sql.= " d.date_start as date_start, d.date_end as date_end,";
|
||||
$sql.= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc,";
|
||||
$sql.= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef, s.nom as company_name, s.rowid as company_id,";
|
||||
$sql.= " p.rowid as pid, p.ref as pref, p.fk_product_type as ptype,";
|
||||
$sql.= " 0 as payment_id, 0 as payment_amount";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX.$invoicetable." as f,";
|
||||
$sql.= " ".MAIN_DB_PREFIX."societe as s,";
|
||||
$sql.= " ".MAIN_DB_PREFIX.$invoicedettable." as d" ;
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p on d.fk_product = p.rowid";
|
||||
$sql.= " WHERE f.entity = " . $conf->entity;
|
||||
@@ -449,6 +457,7 @@ function vat_by_date($db, $y, $q, $date_start, $date_end, $modetax, $direction,
|
||||
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $sql.= " AND f.type IN (0,1,2,5)";
|
||||
else $sql.= " AND f.type IN (0,1,2,3,5)";
|
||||
$sql.= " AND f.rowid = d.".$fk_facture;
|
||||
$sql.= " AND s.rowid = f.fk_soc";
|
||||
if ($y && $m)
|
||||
{
|
||||
$sql.= " AND f.datef >= '".$db->idate(dol_get_first_day($y,$m,false))."'";
|
||||
@@ -484,12 +493,13 @@ function vat_by_date($db, $y, $q, $date_start, $date_end, $modetax, $direction,
|
||||
$sql = "SELECT d.rowid, d.product_type as dtype, d.".$fk_facture." as facid, d.tva_tx as rate, d.total_ht as total_ht, d.total_ttc as total_ttc, d.".$total_tva." as total_vat, d.description as descr,";
|
||||
$sql .=" d.".$total_localtax1." as total_localtax1, d.".$total_localtax2." as total_localtax2, ";
|
||||
$sql.= " d.date_start as date_start, d.date_end as date_end,";
|
||||
$sql.= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc,";
|
||||
$sql.= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef, s.nom as company_name, s.rowid as company_id,";
|
||||
$sql.= " p.rowid as pid, p.ref as pref, p.fk_product_type as ptype,";
|
||||
$sql.= " pf.".$fk_payment." as payment_id, pf.amount as payment_amount";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX.$invoicetable." as f,";
|
||||
$sql.= " ".MAIN_DB_PREFIX.$paymentfacturetable." as pf,";
|
||||
$sql.= " ".MAIN_DB_PREFIX.$paymenttable." as pa,";
|
||||
$sql.= " ".MAIN_DB_PREFIX."societe as s,";
|
||||
$sql.= " ".MAIN_DB_PREFIX.$invoicedettable." as d";
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p on d.fk_product = p.rowid";
|
||||
$sql.= " WHERE f.entity = " . $conf->entity;
|
||||
@@ -497,6 +507,7 @@ function vat_by_date($db, $y, $q, $date_start, $date_end, $modetax, $direction,
|
||||
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $sql.= " AND f.type IN (0,1,2,5)";
|
||||
else $sql.= " AND f.type IN (0,1,2,3,5)";
|
||||
$sql.= " AND f.rowid = d.".$fk_facture;
|
||||
$sql.= " AND s.rowid = f.fk_soc";
|
||||
$sql.= " AND pf.".$fk_facture2." = f.rowid";
|
||||
$sql.= " AND pa.rowid = pf.".$fk_payment;
|
||||
if ($y && $m)
|
||||
@@ -548,6 +559,9 @@ function vat_by_date($db, $y, $q, $date_start, $date_end, $modetax, $direction,
|
||||
}
|
||||
$list[$assoc['rate']]['dtotal_ttc'][] = $assoc['total_ttc'];
|
||||
$list[$assoc['rate']]['dtype'][] = $assoc['dtype'];
|
||||
$list[$assoc['rate']]['datef'][] = $assoc['datef'];
|
||||
$list[$assoc['rate']]['company_name'][] = $assoc['company_name'];
|
||||
$list[$assoc['rate']]['company_id'][] = $assoc['company_id'];
|
||||
$list[$assoc['rate']]['ddate_start'][] = $db->jdate($assoc['date_start']);
|
||||
$list[$assoc['rate']]['ddate_end'][] = $db->jdate($assoc['date_end']);
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/menubase.class.php';
|
||||
* @param DoliDB $db Database handler
|
||||
* @param string $atarget Target (Example: '' or '_top')
|
||||
* @param int $type_user 0=Menu for backoffice, 1=Menu for front office
|
||||
* @param array $tabMenu If array with menu entries already loaded, we put this array here (in most cases, it's empty)
|
||||
* @param array $tabMenu If array with menu entries already loaded, we put this array here (in most cases, it's empty)
|
||||
* @param array $menu Object Menu to return back list of menu entries
|
||||
* @param int $noout Disable output (Initialise &$menu only).
|
||||
* @return int 0
|
||||
@@ -732,9 +732,9 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
|
||||
if (! empty($conf->ficheinter->enabled))
|
||||
{
|
||||
$langs->load("interventions");
|
||||
$newmenu->add("/fichinter/list.php?leftmenu=ficheinter", $langs->trans("Interventions"), 0, $user->rights->ficheinter->lire, '', $mainmenu, 'ficheinter');
|
||||
$newmenu->add("/fichinter/card.php?action=create&leftmenu=ficheinter", $langs->trans("NewIntervention"), 1, $user->rights->ficheinter->creer);
|
||||
$newmenu->add("/fichinter/list.php?leftmenu=ficheinter", $langs->trans("List"), 1, $user->rights->ficheinter->lire);
|
||||
$newmenu->add("/fichinter/list.php?leftmenu=ficheinter", $langs->trans("Interventions"), 0, $user->rights->ficheinter->lire, '', $mainmenu, 'ficheinter', 200);
|
||||
$newmenu->add("/fichinter/card.php?action=create&leftmenu=ficheinter", $langs->trans("NewIntervention"), 1, $user->rights->ficheinter->creer, '', '', '', 201);
|
||||
$newmenu->add("/fichinter/list.php?leftmenu=ficheinter", $langs->trans("List"), 1, $user->rights->ficheinter->lire, '', '', '', 202);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1000,7 +1000,18 @@ print $sql;
|
||||
$i=0;
|
||||
foreach ($this->tabs as $key => $value)
|
||||
{
|
||||
if ($value)
|
||||
if (is_array($value) && count($value) == 0) continue; // Discard empty arrays
|
||||
|
||||
$entity=$conf->entity;
|
||||
$newvalue = $value;
|
||||
|
||||
if (is_array($value))
|
||||
{
|
||||
$newvalue = $value['data'];
|
||||
if (isset($value['entity'])) $entity = $value['entity'];
|
||||
}
|
||||
|
||||
if ($newvalue)
|
||||
{
|
||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."const (";
|
||||
$sql.= "name";
|
||||
@@ -1370,10 +1381,11 @@ print $sql;
|
||||
$menu->target=$this->menu[$key]['target'];
|
||||
$menu->user=$this->menu[$key]['user'];
|
||||
$menu->enabled=isset($this->menu[$key]['enabled'])?$this->menu[$key]['enabled']:0;
|
||||
|
||||
$menu->position=$this->menu[$key]['position'];
|
||||
|
||||
if (! $err)
|
||||
{
|
||||
$result=$menu->create($user);
|
||||
$result=$menu->create($user); // Save menu entry into table llx_menu
|
||||
if ($result > 0)
|
||||
{
|
||||
$this->menu[$key]['rowid']=$result;
|
||||
|
||||
@@ -148,7 +148,8 @@ class modAskPriceSupplier extends DolibarrModules
|
||||
'langs'=>'askpricesupplier', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
|
||||
'enabled'=>'$conf->askpricesupplier->enabled', // 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.
|
||||
'perms'=>'$user->rights->askpricesupplier->lire', // Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules
|
||||
'user'=>2 // 0=Menu for internal users, 1=external users, 2=both
|
||||
'user'=>2, // 0=Menu for internal users, 1=external users, 2=both
|
||||
'position'=>30
|
||||
);
|
||||
$r++;
|
||||
|
||||
@@ -160,7 +161,8 @@ class modAskPriceSupplier extends DolibarrModules
|
||||
'langs'=>'askpricesupplier',
|
||||
'enabled'=>'$conf->askpricesupplier->enabled',
|
||||
'perms'=>'$user->rights->askpricesupplier->creer',
|
||||
'user'=>2
|
||||
'user'=>2,
|
||||
'position'=>31
|
||||
);
|
||||
$r++;
|
||||
|
||||
@@ -172,7 +174,8 @@ class modAskPriceSupplier extends DolibarrModules
|
||||
'langs'=>'askpricesupplier',
|
||||
'enabled'=>'$conf->askpricesupplier->enabled',
|
||||
'perms'=>'$user->rights->askpricesupplier->lire',
|
||||
'user'=>2
|
||||
'user'=>2,
|
||||
'position'=>32
|
||||
);
|
||||
$r++;
|
||||
}
|
||||
|
||||
@@ -75,6 +75,8 @@
|
||||
<input type="hidden" name="token" value="<?php echo $_SESSION['newtoken']; ?>">
|
||||
<input type="hidden" name="action" value="add">
|
||||
|
||||
<?php dol_fiche_head(); ?>
|
||||
|
||||
<table summary="listofattributes" class="border centpercent">
|
||||
<!-- Label -->
|
||||
<tr><td class="fieldrequired"><?php echo $langs->trans("Label"); ?></td><td class="valeur"><input type="text" name="label" size="40" value="<?php echo GETPOST('label'); ?>"></td></tr>
|
||||
@@ -121,7 +123,9 @@
|
||||
<?php } ?>
|
||||
</table>
|
||||
|
||||
<div align="center"><br><input type="submit" name="button" class="button" value="<?php echo $langs->trans("Save"); ?>">
|
||||
<?php dol_fiche_end(); ?>
|
||||
|
||||
<div align="center"><input type="submit" name="button" class="button" value="<?php echo $langs->trans("Save"); ?>">
|
||||
<input type="submit" name="button" class="button" value="<?php echo $langs->trans("Cancel"); ?>"></div>
|
||||
|
||||
</form>
|
||||
|
||||
@@ -46,6 +46,8 @@
|
||||
<input type="hidden" name="action" value="update">
|
||||
<input type="hidden" name="rowid" value="<?php echo $rowid ?>">
|
||||
|
||||
<?php dol_fiche_head(); ?>
|
||||
|
||||
<table summary="listofattributes" class="border centpercent">
|
||||
|
||||
<?php
|
||||
@@ -123,7 +125,9 @@ if(($type == 'select') || ($type == 'sellist') || ($type == 'checkbox') || ($typ
|
||||
<?php } ?>
|
||||
</table>
|
||||
|
||||
<div align="center"><br><input type="submit" name="button" class="button" value="<?php echo $langs->trans("Save"); ?>">
|
||||
<?php dol_fiche_end(); ?>
|
||||
|
||||
<div align="center"><input type="submit" name="button" class="button" value="<?php echo $langs->trans("Save"); ?>">
|
||||
<input type="submit" name="button" class="button" value="<?php echo $langs->trans("Cancel"); ?>"></div>
|
||||
|
||||
</form>
|
||||
|
||||
@@ -1561,8 +1561,11 @@ else if ($id || $ref)
|
||||
$file=$fileparams['fullname'];
|
||||
}
|
||||
|
||||
print '<div class="clearboth"></div>';
|
||||
print '<br>';
|
||||
print_titre($langs->trans('SendShippingByEMail'));
|
||||
print_fiche_titre($langs->trans('SendShippingByEMail'));
|
||||
|
||||
dol_fiche_head('');
|
||||
|
||||
// Cree l'objet formulaire mail
|
||||
include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php';
|
||||
@@ -1638,7 +1641,7 @@ else if ($id || $ref)
|
||||
// Show form
|
||||
print $formmail->get_form();
|
||||
|
||||
print '<br>';
|
||||
dol_fiche_end();
|
||||
}
|
||||
|
||||
if ($action != 'presend' && ! empty($origin) && $object->$origin->id)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -245,16 +245,21 @@ if ($resql)
|
||||
$total_total_ht = 0;
|
||||
$total_total_ttc = 0;
|
||||
$total_total_tva = 0;
|
||||
|
||||
$expensereportstatic=new ExpenseReport($db);
|
||||
|
||||
if($num > 0)
|
||||
{
|
||||
while ($i < min($num,$limit))
|
||||
{
|
||||
$objp = $db->fetch_object($resql);
|
||||
|
||||
$expensereportstatic->id=$objp->rowid;
|
||||
$expensereportstatic->ref=$objp->ref;
|
||||
|
||||
$var=!$var;
|
||||
print "<tr ".$bc[$var].">";
|
||||
print '<td><a href="card.php?id='.$objp->rowid.'">'.img_object($langs->trans("ShowTrip"),"trip").' '.$objp->ref.'</a></td>';
|
||||
print '<td>'.$expensereportstatic->getNomUrl(1).'</td>';
|
||||
print '<td align="center">'.($objp->date_debut > 0 ? dol_print_date($objp->date_debut, 'day') : '').'</td>';
|
||||
print '<td align="center">'.($objp->date_fin > 0 ? dol_print_date($objp->date_fin, 'day') : '').'</td>';
|
||||
print '<td align="left"><a href="'.DOL_URL_ROOT.'/user/card.php?id='.$objp->id_user.'">'.img_object($langs->trans("ShowUser"),"user").' '.dolGetFirstLastname($objp->firstname, $objp->lastname).'</a></td>';
|
||||
|
||||
@@ -1795,8 +1795,11 @@ else if ($id > 0 || ! empty($ref))
|
||||
$file=$fileparams['fullname'];
|
||||
}
|
||||
|
||||
print '<div class="clearboth"></div>';
|
||||
print '<br>';
|
||||
print_titre($langs->trans('SendInterventionByMail'));
|
||||
print_fiche_titre($langs->trans('SendInterventionByMail'));
|
||||
|
||||
dol_fiche_head('');
|
||||
|
||||
// Create form object
|
||||
include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php';
|
||||
@@ -1860,7 +1863,7 @@ else if ($id > 0 || ! empty($ref))
|
||||
|
||||
print $formmail->get_form();
|
||||
|
||||
print '<br>';
|
||||
dol_fiche_end();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -504,39 +504,41 @@ class FactureFournisseur extends CommonInvoice
|
||||
{
|
||||
$obj = $this->db->fetch_object($resql_rows);
|
||||
|
||||
$this->lines[$i] = new SupplierInvoiceLine($this->db);
|
||||
$line = new SupplierInvoiceLine($this->db);
|
||||
|
||||
$this->lines[$i]->id = $obj->rowid;
|
||||
$this->lines[$i]->rowid = $obj->rowid;
|
||||
$this->lines[$i]->description = $obj->description;
|
||||
$this->lines[$i]->product_ref = $obj->product_ref; // Internal reference
|
||||
$this->lines[$i]->ref = $obj->product_ref; // deprecated.
|
||||
$this->lines[$i]->ref_supplier = $obj->ref_supplier; // Reference product supplier TODO Rename field ref to ref_supplier into table llx_facture_fourn_det and llx_commande_fournisseurdet and update fields it into updateline
|
||||
$this->lines[$i]->libelle = $obj->label; // Deprecated
|
||||
$this->lines[$i]->label = $obj->label; // This field may contains label of product (when invoice create from order)
|
||||
$this->lines[$i]->product_desc = $obj->product_desc; // Description du produit
|
||||
$this->lines[$i]->subprice = $obj->pu_ht;
|
||||
$this->lines[$i]->pu_ht = $obj->pu_ht;
|
||||
$this->lines[$i]->pu_ttc = $obj->pu_ttc;
|
||||
$this->lines[$i]->tva_tx = $obj->tva_tx;
|
||||
$this->lines[$i]->localtax1_tx = $obj->localtax1_tx;
|
||||
$this->lines[$i]->localtax2_tx = $obj->localtax2_tx;
|
||||
$this->lines[$i]->qty = $obj->qty;
|
||||
$this->lines[$i]->remise_percent = $obj->remise_percent;
|
||||
$this->lines[$i]->tva = $obj->total_tva;
|
||||
$this->lines[$i]->total_ht = $obj->total_ht;
|
||||
$this->lines[$i]->total_tva = $obj->total_tva;
|
||||
$this->lines[$i]->total_localtax1 = $obj->total_localtax1;
|
||||
$this->lines[$i]->total_localtax2 = $obj->total_localtax2;
|
||||
$this->lines[$i]->total_ttc = $obj->total_ttc;
|
||||
$this->lines[$i]->fk_product = $obj->fk_product;
|
||||
$this->lines[$i]->product_type = $obj->product_type;
|
||||
$this->lines[$i]->product_label = $obj->label;
|
||||
$this->lines[$i]->info_bits = $obj->info_bits;
|
||||
$this->lines[$i]->fk_parent_line = $obj->fk_parent_line;
|
||||
$this->lines[$i]->special_code = $obj->special_code;
|
||||
$this->lines[$i]->rang = $obj->rang;
|
||||
$this->lines[$i]->fk_unit = $obj->fk_unit;
|
||||
$line->id = $obj->rowid;
|
||||
$line->rowid = $obj->rowid;
|
||||
$line->description = $obj->description;
|
||||
$line->product_ref = $obj->product_ref;
|
||||
$line->ref = $obj->product_ref;
|
||||
$line->ref_supplier = $obj->ref_supplier;
|
||||
$line->libelle = $obj->label;
|
||||
$line->label = $obj->label;
|
||||
$line->product_desc = $obj->product_desc;
|
||||
$line->subprice = $obj->pu_ht;
|
||||
$line->pu_ht = $obj->pu_ht;
|
||||
$line->pu_ttc = $obj->pu_ttc;
|
||||
$line->tva_tx = $obj->tva_tx;
|
||||
$line->localtax1_tx = $obj->localtax1_tx;
|
||||
$line->localtax2_tx = $obj->localtax2_tx;
|
||||
$line->qty = $obj->qty;
|
||||
$line->remise_percent = $obj->remise_percent;
|
||||
$line->tva = $obj->total_tva;
|
||||
$line->total_ht = $obj->total_ht;
|
||||
$line->total_tva = $obj->total_tva;
|
||||
$line->total_localtax1 = $obj->total_localtax1;
|
||||
$line->total_localtax2 = $obj->total_localtax2;
|
||||
$line->total_ttc = $obj->total_ttc;
|
||||
$line->fk_product = $obj->fk_product;
|
||||
$line->product_type = $obj->product_type;
|
||||
$line->product_label = $obj->label;
|
||||
$line->info_bits = $obj->info_bits;
|
||||
$line->fk_parent_line = $obj->fk_parent_line;
|
||||
$line->special_code = $obj->special_code;
|
||||
$line->rang = $obj->rang;
|
||||
$line->fk_unit = $obj->fk_unit;
|
||||
|
||||
$this->lines[$i] = $line;
|
||||
|
||||
$i++;
|
||||
}
|
||||
@@ -1368,53 +1370,25 @@ class FactureFournisseur extends CommonInvoice
|
||||
*/
|
||||
function deleteline($rowid, $notrigger=0)
|
||||
{
|
||||
global $user, $langs, $conf;
|
||||
|
||||
if (! $rowid) $rowid=$this->id;
|
||||
|
||||
dol_syslog(get_class($this)."::delete rowid=".$rowid, LOG_DEBUG);
|
||||
|
||||
$error=0;
|
||||
$this->db->begin();
|
||||
|
||||
if (! $error && ! $notrigger)
|
||||
{
|
||||
// Call trigger
|
||||
$result=$this->call_trigger('LINEBILL_SUPPLIER_DELETE',$user);
|
||||
if ($result < 0) $error++;
|
||||
// End call triggers
|
||||
if (!$rowid) {
|
||||
$rowid = $this->id;
|
||||
}
|
||||
|
||||
if (! $error)
|
||||
{
|
||||
// Supprime ligne
|
||||
$sql = 'DELETE FROM '.MAIN_DB_PREFIX.'facture_fourn_det ';
|
||||
$sql.= ' WHERE rowid = '.$rowid;
|
||||
dol_syslog(get_class($this)."::delete", LOG_DEBUG);
|
||||
$resql = $this->db->query($sql);
|
||||
if (! $resql)
|
||||
{
|
||||
$error++;
|
||||
$this->error=$this->db->lasterror();
|
||||
}
|
||||
}
|
||||
$line = new SupplierInvoiceLine($this->db);
|
||||
|
||||
if (! $error)
|
||||
{
|
||||
// Mise a jour prix facture
|
||||
$result=$this->update_price();
|
||||
}
|
||||
if ($line->fetch($rowid) < 1) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (! $error)
|
||||
{
|
||||
$this->db->commit();
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db->rollback();
|
||||
return -1;
|
||||
}
|
||||
$res = $line->delete($notrigger);
|
||||
|
||||
if ($res < 1) {
|
||||
$this->errors[] = $line->error;
|
||||
} else {
|
||||
$res = $this->update_price();
|
||||
}
|
||||
|
||||
return $res;
|
||||
}
|
||||
|
||||
|
||||
@@ -1905,13 +1879,26 @@ class SupplierInvoiceLine extends CommonObjectLine
|
||||
* @see product_ref
|
||||
*/
|
||||
public $ref;
|
||||
/**
|
||||
* Internal ref
|
||||
* @var string
|
||||
*/
|
||||
public $product_ref;
|
||||
/**
|
||||
* Reference product supplier
|
||||
* TODO Rename field ref to ref_supplier into table llx_facture_fourn_det and llx_commande_fournisseurdet and update fields it into updateline
|
||||
* @var string
|
||||
*/
|
||||
public $ref_supplier;
|
||||
/**
|
||||
* @deprecated
|
||||
* @see label
|
||||
*/
|
||||
public $libelle;
|
||||
/**
|
||||
* Product description
|
||||
* @var string
|
||||
*/
|
||||
public $product_desc;
|
||||
|
||||
/**
|
||||
@@ -1946,6 +1933,7 @@ class SupplierInvoiceLine extends CommonObjectLine
|
||||
|
||||
/**
|
||||
* Product label
|
||||
* This field may contains label of product (when invoice create from order)
|
||||
* @var string
|
||||
*/
|
||||
var $label;
|
||||
@@ -1968,6 +1956,24 @@ class SupplierInvoiceLine extends CommonObjectLine
|
||||
*/
|
||||
public $fk_prev_id;
|
||||
|
||||
public $tva_tx;
|
||||
public $localtax1_tx;
|
||||
public $localtax2_tx;
|
||||
public $qty;
|
||||
public $remise_percent;
|
||||
public $total_ht;
|
||||
public $total_ttc;
|
||||
public $total_localtax1;
|
||||
public $total_localtax2;
|
||||
public $fk_product;
|
||||
public $product_type;
|
||||
public $product_label;
|
||||
public $info_bits;
|
||||
public $fk_parent_line;
|
||||
public $special_code;
|
||||
public $rang;
|
||||
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
@@ -1978,6 +1984,116 @@ class SupplierInvoiceLine extends CommonObjectLine
|
||||
$this->db= $db;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves a supplier invoice line
|
||||
*
|
||||
* @param int $rowid Line id
|
||||
* @return int <0 KO; 0 NOT FOUND; 1 OK
|
||||
*/
|
||||
public function fetch($rowid)
|
||||
{
|
||||
$sql = 'SELECT f.rowid, f.ref as ref_supplier, f.description, f.pu_ht, f.pu_ttc, f.qty, f.remise_percent, f.tva_tx';
|
||||
$sql.= ', f.localtax1_tx, f.localtax2_tx, f.total_localtax1, f.total_localtax2 ';
|
||||
$sql.= ', f.total_ht, f.tva as total_tva, f.total_ttc, f.fk_product, f.product_type, f.info_bits, f.rang, f.special_code, f.fk_parent_line, f.fk_unit';
|
||||
$sql.= ', p.rowid as product_id, p.ref as product_ref, p.label as label, p.description as product_desc';
|
||||
$sql.= ' FROM '.MAIN_DB_PREFIX.'facture_fourn_det as f';
|
||||
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON f.fk_product = p.rowid';
|
||||
$sql.= ' WHERE rowid = '.$rowid;
|
||||
$sql.= ' ORDER BY f.rang, f.rowid';
|
||||
|
||||
$query = $this->db->query($sql);
|
||||
|
||||
if (!$query) {
|
||||
$this->errors[] = $this->db->error();
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (!$this->db->num_rows($query)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
$obj = $this->db->fetch_object($query);
|
||||
|
||||
$this->id = $obj->rowid;
|
||||
$this->rowid = $obj->rowid;
|
||||
$this->description = $obj->description;
|
||||
$this->product_ref = $obj->product_ref;
|
||||
$this->ref = $obj->product_ref;
|
||||
$this->ref_supplier = $obj->ref_supplier;
|
||||
$this->libelle = $obj->label;
|
||||
$this->label = $obj->label;
|
||||
$this->product_desc = $obj->product_desc;
|
||||
$this->subprice = $obj->pu_ht;
|
||||
$this->pu_ht = $obj->pu_ht;
|
||||
$this->pu_ttc = $obj->pu_ttc;
|
||||
$this->tva_tx = $obj->tva_tx;
|
||||
$this->localtax1_tx = $obj->localtax1_tx;
|
||||
$this->localtax2_tx = $obj->localtax2_tx;
|
||||
$this->qty = $obj->qty;
|
||||
$this->remise_percent = $obj->remise_percent;
|
||||
$this->tva = $obj->total_tva;
|
||||
$this->total_ht = $obj->total_ht;
|
||||
$this->total_tva = $obj->total_tva;
|
||||
$this->total_localtax1 = $obj->total_localtax1;
|
||||
$this->total_localtax2 = $obj->total_localtax2;
|
||||
$this->total_ttc = $obj->total_ttc;
|
||||
$this->fk_product = $obj->fk_product;
|
||||
$this->product_type = $obj->product_type;
|
||||
$this->product_label = $obj->label;
|
||||
$this->info_bits = $obj->info_bits;
|
||||
$this->fk_parent_line = $obj->fk_parent_line;
|
||||
$this->special_code = $obj->special_code;
|
||||
$this->rang = $obj->rang;
|
||||
$this->fk_unit = $obj->fk_unit;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes a line
|
||||
*
|
||||
* @param bool|int $notrigger
|
||||
* @return int -1 KO; 1 OK
|
||||
*/
|
||||
public function delete($notrigger = 0)
|
||||
{
|
||||
global $user;
|
||||
|
||||
dol_syslog(get_class($this)."::deleteline rowid=".$this->id, LOG_DEBUG);
|
||||
|
||||
$error = 0;
|
||||
|
||||
$this->db->begin();
|
||||
|
||||
if (!$notrigger) {
|
||||
if ($this->call_trigger('LINEBILL_SUPPLIER_DELETE',$user) < 0) {
|
||||
$error++;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$error) {
|
||||
// Supprime ligne
|
||||
$sql = 'DELETE FROM '.MAIN_DB_PREFIX.'facture_fourn_det ';
|
||||
$sql .= ' WHERE rowid = '.$this->id;
|
||||
dol_syslog(get_class($this)."::delete", LOG_DEBUG);
|
||||
$resql = $this->db->query($sql);
|
||||
if (!$resql) {
|
||||
$error++;
|
||||
$this->error = $this->db->lasterror();
|
||||
}
|
||||
}
|
||||
|
||||
if (! $error)
|
||||
{
|
||||
$this->db->commit();
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db->rollback();
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1754,7 +1754,7 @@ elseif (! empty($object->id))
|
||||
*/
|
||||
if ($action == 'commande')
|
||||
{
|
||||
$date_com = dol_mktime(0,0,0,$_POST["remonth"],$_POST["reday"],$_POST["reyear"]);
|
||||
$date_com = dol_mktime(GETPOST('rehour'),GETPOST('remin'),GETPOST('resec'),GETPOST("remonth"),GETPOST("reday"),GETPOST("reyear"));
|
||||
$formconfirm = $form->formconfirm($_SERVER['PHP_SELF']."?id=".$object->id."&datecommande=".$date_com."&methode=".$_POST["methodecommande"]."&comment=".urlencode($_POST["comment"]), $langs->trans("MakeOrder"),$langs->trans("ConfirmMakeOrder",dol_print_date($date_com,'day')),"confirm_commande",'',0,2);
|
||||
|
||||
}
|
||||
@@ -2296,9 +2296,11 @@ elseif (! empty($object->id))
|
||||
$file=$fileparams['fullname'];
|
||||
}
|
||||
|
||||
print '<div class="clearboth"></div>';
|
||||
print '<br>';
|
||||
print_fiche_titre($langs->trans('SendOrderByMail'));
|
||||
|
||||
print_titre($langs->trans('SendOrderByMail'));
|
||||
dol_fiche_head('');
|
||||
|
||||
// Cree l'objet formulaire mail
|
||||
include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php';
|
||||
@@ -2367,7 +2369,7 @@ elseif (! empty($object->id))
|
||||
// Show form
|
||||
print $formmail->get_form();
|
||||
|
||||
print '<br>';
|
||||
dol_fiche_end();
|
||||
}
|
||||
/*
|
||||
* Action webservice
|
||||
|
||||
@@ -2313,6 +2313,11 @@ else
|
||||
|
||||
print '<div class="tabsAction">';
|
||||
|
||||
$parameters = array();
|
||||
$reshook = $hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object, $action); // Note that $action and $object may have been
|
||||
// modified by hook
|
||||
if (empty($reshook)) {
|
||||
|
||||
// Modify a validated invoice with no payments
|
||||
if ($object->statut == FactureFournisseur::STATUS_VALIDATED && $action != 'edit' && $object->getSommePaiement() == 0 && $user->rights->fournisseur->facture->creer)
|
||||
{
|
||||
@@ -2432,6 +2437,7 @@ else
|
||||
print '</div></div></div>';
|
||||
//print '</td></tr></table>';
|
||||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
* Show mail form
|
||||
@@ -2474,8 +2480,11 @@ else
|
||||
$file=$fileparams['fullname'];
|
||||
}
|
||||
|
||||
print '<div class="clearboth"></div>';
|
||||
print '<br>';
|
||||
print_titre($langs->trans('SendBillByMail'));
|
||||
print_fiche_titre($langs->trans('SendBillByMail'));
|
||||
|
||||
dol_fiche_head('');
|
||||
|
||||
// Cree l'objet formulaire mail
|
||||
include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php';
|
||||
@@ -2539,7 +2548,7 @@ else
|
||||
// Show form
|
||||
print $formmail->get_form();
|
||||
|
||||
print '<br>';
|
||||
dol_fiche_end();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -886,9 +886,10 @@ if ($step == 4 && $datatoimport)
|
||||
if ($objimport->array_import_convertvalue[0][$code]['rule']=='fetchidfromcodeid') $htmltext.=$langs->trans("DataComeFromIdFoundFromCodeId",$filecolumn,$langs->transnoentitiesnoconv($objimport->array_import_convertvalue[0][$code]['dict'])).'<br>';
|
||||
}
|
||||
}
|
||||
// Source required
|
||||
$htmltext.=$langs->trans("SourceRequired").': <b>'.yn(preg_match('/\*$/',$label)).'</b><br>';
|
||||
$example=$objimport->array_import_examplevalues[0][$code];
|
||||
|
||||
// Example
|
||||
if (empty($objimport->array_import_convertvalue[0][$code])) // If source file does not need convertion
|
||||
{
|
||||
if ($example) $htmltext.=$langs->trans("SourceExample").': <b>'.$example.'</b><br>';
|
||||
@@ -898,6 +899,11 @@ if ($step == 4 && $datatoimport)
|
||||
if ($objimport->array_import_convertvalue[0][$code]['rule']=='fetchidfromref') $htmltext.=$langs->trans("SourceExample").': <b>'.$langs->transnoentitiesnoconv("ExampleAnyRefFoundIntoElement",$entitylang).($example?' ('.$langs->transnoentitiesnoconv("Example").': '.$example.')':'').'</b><br>';
|
||||
if ($objimport->array_import_convertvalue[0][$code]['rule']=='fetchidfromcodeid') $htmltext.=$langs->trans("SourceExample").': <b>'.$langs->trans("ExampleAnyCodeOrIdFoundIntoDictionary",$langs->transnoentitiesnoconv($objimport->array_import_convertvalue[0][$code]['dict'])).($example?' ('.$langs->transnoentitiesnoconv("Example").': '.$example.')':'').'</b><br>';
|
||||
}
|
||||
// Format control rule
|
||||
if (! empty($objimport->array_import_regex[0][$code]))
|
||||
{
|
||||
$htmltext.=$langs->trans("FormatControlRule").': <b>'.$objimport->array_import_regex[0][$code].'</b><br>';
|
||||
}
|
||||
$htmltext.='<br>';
|
||||
// Target field info
|
||||
$htmltext.='<b><u>'.$langs->trans("FieldTarget").'</u></b><br>';
|
||||
|
||||
@@ -489,11 +489,11 @@ IMG;
|
||||
$name=preg_replace('/\.odt/i', '', $name);
|
||||
if (!empty($conf->global->MAIN_DOL_SCRIPTS_ROOT))
|
||||
{
|
||||
$command = $conf->global->MAIN_DOL_SCRIPTS_ROOT.'/scripts/odt2pdf/odt2pdf.sh '.$name.' '.(is_numeric($conf->global->MAIN_ODT_AS_PDF)?'jodconverter':$conf->global->MAIN_ODT_AS_PDF);
|
||||
$command = $conf->global->MAIN_DOL_SCRIPTS_ROOT.'/scripts/odt2pdf/odt2pdf.sh '.escapeshellcmd($name).' '.(is_numeric($conf->global->MAIN_ODT_AS_PDF)?'jodconverter':$conf->global->MAIN_ODT_AS_PDF);
|
||||
}
|
||||
else
|
||||
{
|
||||
$command = '../../scripts/odt2pdf/odt2pdf.sh '.$name.' '.(is_numeric($conf->global->MAIN_ODT_AS_PDF)?'jodconverter':$conf->global->MAIN_ODT_AS_PDF);
|
||||
$command = '../../scripts/odt2pdf/odt2pdf.sh '.escapeshellcmd($name).' '.(is_numeric($conf->global->MAIN_ODT_AS_PDF)?'jodconverter':$conf->global->MAIN_ODT_AS_PDF);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -227,3 +227,6 @@ update llx_facturedet set product_type = 1 where product_type = 2;
|
||||
delete from llx_commande_fournisseur_dispatch where fk_commandefourndet = 0 or fk_commandefourndet IS NULL;
|
||||
|
||||
|
||||
delete from llx_menu where menu_handler = 'smartphone';
|
||||
|
||||
|
||||
|
||||
@@ -429,8 +429,8 @@ Module20Name=مقترحات
|
||||
Module20Desc=مقترحات تجارية إدارة
|
||||
Module22Name=كتلة بالبريد الإلكتروني
|
||||
Module22Desc=البريد الإلكتروني الدمار إدارة
|
||||
Module23Name= طاقة
|
||||
Module23Desc= مراقبة استهلاك الطاقة
|
||||
Module23Name=طاقة
|
||||
Module23Desc=مراقبة استهلاك الطاقة
|
||||
Module25Name=طلبات الزبائن
|
||||
Module25Desc=طلبات الزبائن إدارة
|
||||
Module30Name=فواتير
|
||||
@@ -492,7 +492,7 @@ Module400Desc=Management of projects, opportunities or leads. You can then assig
|
||||
Module410Name=Webcalendar
|
||||
Module410Desc=Webcalendar التكامل
|
||||
Module500Name=Special expenses
|
||||
Module500Desc=Management of special expenses (taxes, social contribution, dividends)
|
||||
Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends)
|
||||
Module510Name=Salaries
|
||||
Module510Desc=Management of employees salaries and payments
|
||||
Module520Name=Loan
|
||||
@@ -501,7 +501,7 @@ Module600Name=الإخطارات
|
||||
Module600Desc=Send EMail notifications on some Dolibarr business events to third-party contacts (setup defined on each thirdparty)
|
||||
Module700Name=التبرعات
|
||||
Module700Desc=التبرعات إدارة
|
||||
Module770Name=Expense Report
|
||||
Module770Name=Expense reports
|
||||
Module770Desc=Management and claim expense reports (transportation, meal, ...)
|
||||
Module1120Name=Supplier commercial proposal
|
||||
Module1120Desc=Request supplier commercial proposal and prices
|
||||
@@ -579,7 +579,7 @@ Permission32=إنشاء / تعديل المنتجات
|
||||
Permission34=حذف المنتجات
|
||||
Permission36=انظر / إدارة المنتجات المخفية
|
||||
Permission38=منتجات التصدير
|
||||
Permission41=قراءة المشاريع والمهام
|
||||
Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet)
|
||||
Permission42=إنشاء / تعديل مشاريع تعديل مهام بلدي المشاريع
|
||||
Permission44=حذف مشاريع
|
||||
Permission61=قراءة التدخلات
|
||||
@@ -600,10 +600,10 @@ Permission86=إرسال أوامر العملاء
|
||||
Permission87=وثيقة أوامر العملاء
|
||||
Permission88=إلغاء أوامر العملاء
|
||||
Permission89=حذف أوامر العملاء
|
||||
Permission91=قراءة المساهمات الاجتماعية وضريبة القيمة المضافة
|
||||
Permission92=إنشاء / تعديل المساهمات الاجتماعية وضريبة القيمة المضافة
|
||||
Permission93=حذف المساهمات الاجتماعية وضريبة القيمة المضافة
|
||||
Permission94=تصدير المساهمات الاجتماعية
|
||||
Permission91=Read social or fiscal taxes and vat
|
||||
Permission92=Create/modify social or fiscal taxes and vat
|
||||
Permission93=Delete social or fiscal taxes and vat
|
||||
Permission94=Export social or fiscal taxes
|
||||
Permission95=قراءة تقارير
|
||||
Permission101=قراءة الإرسال
|
||||
Permission102=إنشاء / تعديل الإرسال
|
||||
@@ -621,9 +621,9 @@ Permission121=قراءة الغير مرتبطة المستخدم
|
||||
Permission122=إنشاء / تغيير الغير مرتبطة المستخدم
|
||||
Permission125=حذف الغير مرتبطة المستخدم
|
||||
Permission126=الصادرات الغير
|
||||
Permission141=المهام اقرأ
|
||||
Permission142=إنشاء / تعديل المهام
|
||||
Permission144=حذف المهام
|
||||
Permission141=Read all projects and tasks (also private projects i am not contact for)
|
||||
Permission142=Create/modify all projects and tasks (also private projects i am not contact for)
|
||||
Permission144=Delete all projects and tasks (also private projects i am not contact for)
|
||||
Permission146=قراءة موفري
|
||||
Permission147=قراءة احصائيات
|
||||
Permission151=قراءة أوامر دائمة
|
||||
@@ -801,7 +801,7 @@ DictionaryCountry=Countries
|
||||
DictionaryCurrency=Currencies
|
||||
DictionaryCivility=Civility title
|
||||
DictionaryActions=Type of agenda events
|
||||
DictionarySocialContributions=Social contributions types
|
||||
DictionarySocialContributions=Social or fiscal taxes types
|
||||
DictionaryVAT=VAT Rates or Sales Tax Rates
|
||||
DictionaryRevenueStamp=Amount of revenue stamps
|
||||
DictionaryPaymentConditions=Payment terms
|
||||
@@ -820,6 +820,7 @@ DictionaryAccountancysystem=Models for chart of accounts
|
||||
DictionaryEMailTemplates=Emails templates
|
||||
DictionaryUnits=Units
|
||||
DictionaryProspectStatus=Prospection status
|
||||
DictionaryHolidayTypes=Type of leaves
|
||||
SetupSaved=الإعداد المحفوظة
|
||||
BackToModuleList=العودة إلى قائمة الوحدات
|
||||
BackToDictionaryList=Back to dictionaries list
|
||||
@@ -1510,7 +1511,7 @@ ConfirmDeleteMenu=هل أنت متأكد من أنك تريد حذف القائ
|
||||
DeleteLine=حذف السطر
|
||||
ConfirmDeleteLine=هل أنت متأكد من أنك تريد حذف هذا الخط؟
|
||||
##### Tax #####
|
||||
TaxSetup=الضرائب والمساهمات الاجتماعية والأرباح وحدة الإعداد
|
||||
TaxSetup=Taxes, social or fiscal taxes and dividends module setup
|
||||
OptionVatMode=ضريبة القيمة المضافة المستحقة
|
||||
OptionVATDefault=Cash basis
|
||||
OptionVATDebitOption=Accrual basis
|
||||
@@ -1564,9 +1565,11 @@ EndPointIs=الصابون العملاء يجب إرسال الطلبات إلى
|
||||
ApiSetup=API module setup
|
||||
ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services.
|
||||
KeyForApiAccess=Key to use API (parameter "api_key")
|
||||
ApiProductionMode=Enable production mode
|
||||
ApiEndPointIs=You can access to the API at url
|
||||
ApiExporerIs=You can explore the API at url
|
||||
OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed
|
||||
ApiKey=Key for API
|
||||
##### Bank #####
|
||||
BankSetupModule=إعداد وحدة مصرفية
|
||||
FreeLegalTextOnChequeReceipts=نص حر على الشيكات والإيصالات
|
||||
@@ -1596,6 +1599,7 @@ ProjectsSetup=مشروع إعداد وحدة
|
||||
ProjectsModelModule=المشروع نموذج التقرير وثيقة
|
||||
TasksNumberingModules=Tasks numbering module
|
||||
TaskModelModule=Tasks reports document model
|
||||
UseSearchToSelectProject=Use autocompletion fields to choose project (instead of using a list box)
|
||||
##### ECM (GED) #####
|
||||
ECMSetup = GED Setup
|
||||
ECMAutoTree = Automatic tree folder and document
|
||||
@@ -1640,3 +1644,9 @@ ConfFileMuseContainCustom=Installing an external module from application save th
|
||||
HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
|
||||
PressF5AfterChangingThis=Press F5 on keyboard after changing this value to have it effective
|
||||
NotSupportedByAllThemes=Will works with eldy theme but is not supported by all themes
|
||||
BackgroundColor=Background color
|
||||
TopMenuBackgroundColor=Background color for Top menu
|
||||
LeftMenuBackgroundColor=Background color for Left menu
|
||||
BackgroundTableTitleColor=Background color for table title line
|
||||
BackgroundTableLineOddColor=Background color for odd table lines
|
||||
BackgroundTableLineEvenColor=Background color for even table lines
|
||||
|
||||
@@ -55,7 +55,6 @@ OrderBilledInDolibarr=Order %s classified billed
|
||||
OrderApprovedInDolibarr=تم الموافقة على %s من الطلب
|
||||
OrderRefusedInDolibarr=Order %s refused
|
||||
OrderBackToDraftInDolibarr=الطلب %s للذهاب بها إلى حالة المسودة
|
||||
OrderCanceledInDolibarr=تم إلغاء %s من الطلب
|
||||
ProposalSentByEMail=تم إرسال العرض الرسمي %s بواسطة البريد الإلكتروني
|
||||
OrderSentByEMail=تم إرسال طلبية العميل %s بواسطة البريد الإلكتروني
|
||||
InvoiceSentByEMail=تم إرسال فاتروة العميل %s بواسطة البريد الإلكتروني
|
||||
@@ -96,3 +95,5 @@ AddEvent=Create event
|
||||
MyAvailability=My availability
|
||||
ActionType=Event type
|
||||
DateActionBegin=Start event date
|
||||
CloneAction=Clone event
|
||||
ConfirmCloneEvent=Are you sure you want to clone the event <b>%s</b> ?
|
||||
|
||||
@@ -113,7 +113,7 @@ CustomerInvoicePayment=عملاء الدفع
|
||||
CustomerInvoicePaymentBack=Customer payment back
|
||||
SupplierInvoicePayment=المورد الدفع
|
||||
WithdrawalPayment=انسحاب الدفع
|
||||
SocialContributionPayment=دفع المساهمة الاجتماعية
|
||||
SocialContributionPayment=Social/fiscal tax payment
|
||||
FinancialAccountJournal=مجلة الحساب المالي
|
||||
BankTransfer=حوالة مصرفية
|
||||
BankTransfers=التحويلات المصرفية
|
||||
|
||||
@@ -178,7 +178,7 @@ NumberOfBills=ملاحظة : من الفواتير
|
||||
NumberOfBillsByMonth=ملحوظة من الفواتير من قبل شهر
|
||||
AmountOfBills=مبلغ الفواتير
|
||||
AmountOfBillsByMonthHT=كمية من الفواتير من قبل شهر (بعد خصم الضرائب)
|
||||
ShowSocialContribution=وتظهر مساهمة الاجتماعية
|
||||
ShowSocialContribution=Show social/fiscal tax
|
||||
ShowBill=وتظهر الفاتورة
|
||||
ShowInvoice=وتظهر الفاتورة
|
||||
ShowInvoiceReplace=وتظهر استبدال الفاتورة
|
||||
@@ -270,7 +270,7 @@ BillAddress=مشروع قانون معالجة
|
||||
HelpEscompte=هذا الخصم هو الخصم الممنوح للعميل لأن الدفع قبل البعيد.
|
||||
HelpAbandonBadCustomer=هذا المبلغ قد تم التخلي عنها (وذكر أن العملاء سيئة العملاء) ، ويعتبر أحد exceptionnal فضفاضة.
|
||||
HelpAbandonOther=هذا المبلغ قد تم التخلي عنها لأنها كانت خطأ (خطأ أو فاتورة العميل أي بعبارة أخرى على سبيل المثال)
|
||||
IdSocialContribution=المساهمة الاجتماعية معرف
|
||||
IdSocialContribution=Social/fiscal tax payment id
|
||||
PaymentId=دفع معرف
|
||||
InvoiceId=فاتورة معرف
|
||||
InvoiceRef=المرجع الفاتورة.
|
||||
|
||||
@@ -30,6 +30,7 @@ ThirdPartyContact=طرف ثالث اتصال
|
||||
StatusContactValidated=مركز الاتصال
|
||||
Company=شركة
|
||||
CompanyName=اسم الشركة
|
||||
AliasNames=Alias names (commercial, trademark, ...)
|
||||
Companies=الشركات
|
||||
CountryIsInEEC=البلد داخل المجموعة الاقتصادية الأوروبية
|
||||
ThirdPartyName=اسم طرف ثالث
|
||||
|
||||
@@ -56,23 +56,23 @@ VATCollected=جمعت ضريبة القيمة المضافة
|
||||
ToPay=دفع
|
||||
ToGet=العودة
|
||||
SpecialExpensesArea=Area for all special payments
|
||||
TaxAndDividendsArea=ضريبة أرباح الأسهم والمساهمات الاجتماعية ، ومنطقة
|
||||
SocialContribution=المساهمة الاجتماعية
|
||||
SocialContributions=المساهمات الاجتماعية
|
||||
TaxAndDividendsArea=Sale taxes, social/fiscal taxes contributions and dividends area
|
||||
SocialContribution=Social or fiscal tax
|
||||
SocialContributions=Social or fiscal taxes
|
||||
MenuSpecialExpenses=Special expenses
|
||||
MenuTaxAndDividends=الضرائب وعوائد
|
||||
MenuSalaries=Salaries
|
||||
MenuSocialContributions=المساهمات الاجتماعية
|
||||
MenuNewSocialContribution=مساهمة جديدة
|
||||
NewSocialContribution=المساهمة الاجتماعية الجديدة
|
||||
ContributionsToPay=دفع الاشتراكات
|
||||
MenuSocialContributions=Social/fiscal taxes
|
||||
MenuNewSocialContribution=New tax payment
|
||||
NewSocialContribution=New social/fiscal tax
|
||||
ContributionsToPay=Social/fiscal taxes to pay
|
||||
AccountancyTreasuryArea=المحاسبة / الخزانة المنطقة
|
||||
AccountancySetup=المحاسبة الإعداد
|
||||
NewPayment=دفع جديدة
|
||||
Payments=المدفوعات
|
||||
PaymentCustomerInvoice=الزبون تسديد الفاتورة
|
||||
PaymentSupplierInvoice=دفع فاتورة المورد
|
||||
PaymentSocialContribution=دفع المساهمة الاجتماعية
|
||||
PaymentSocialContribution=Social/fiscal tax payment
|
||||
PaymentVat=دفع ضريبة القيمة المضافة
|
||||
PaymentSalary=Salary payment
|
||||
ListPayment=قائمة المدفوعات
|
||||
@@ -91,7 +91,7 @@ LT1PaymentES=RE Payment
|
||||
LT1PaymentsES=RE Payments
|
||||
VATPayment=دفع ضريبة القيمة المضافة
|
||||
VATPayments=دفع ضريبة القيمة المضافة
|
||||
SocialContributionsPayments=المساهمات الاجتماعية المدفوعات
|
||||
SocialContributionsPayments=Social/fiscal taxes payments
|
||||
ShowVatPayment=وتظهر دفع ضريبة القيمة المضافة
|
||||
TotalToPay=على دفع ما مجموعه
|
||||
TotalVATReceived=تلقى مجموع الضريبة على القيمة المضافة
|
||||
@@ -116,11 +116,11 @@ NewCheckDepositOn=تهيئة لتلقي الودائع على حساب : ٪ ق
|
||||
NoWaitingChecks=لم ينتظر إيداع الشيكات.
|
||||
DateChequeReceived=استقبال المدخلات تاريخ الشيك
|
||||
NbOfCheques=ملاحظة : للشيكات
|
||||
PaySocialContribution=دفع المساهمات الاجتماعية
|
||||
ConfirmPaySocialContribution=هل أنت متأكد من أن يصنف هذه المساهمة paid الاجتماعية؟
|
||||
DeleteSocialContribution=حذف المساهمات الاجتماعية
|
||||
ConfirmDeleteSocialContribution=هل أنت متأكد من أنك تريد حذف هذه المساهمة الاجتماعية؟
|
||||
ExportDataset_tax_1=المساهمات الاجتماعية والمدفوعات
|
||||
PaySocialContribution=Pay a social/fiscal tax
|
||||
ConfirmPaySocialContribution=Are you sure you want to classify this social or fiscal tax as paid?
|
||||
DeleteSocialContribution=Delete a social or fiscal tax payment
|
||||
ConfirmDeleteSocialContribution=Are you sure you want to delete this social/fiscal tax payment?
|
||||
ExportDataset_tax_1=Social and fiscal taxes and payments
|
||||
CalcModeVATDebt=Mode <b>%sVAT on commitment accounting%s</b>.
|
||||
CalcModeVATEngagement=Mode <b>%sVAT on incomes-expenses%s</b>.
|
||||
CalcModeDebt=Mode <b>%sClaims-Debts%s</b> said <b>Commitment accounting</b>.
|
||||
@@ -198,10 +198,10 @@ CalculationRuleDescSupplier=according to supplier, choose appropriate method to
|
||||
TurnoverPerProductInCommitmentAccountingNotRelevant=Turnover report per product, when using a <b>cash accountancy</b> mode is not relevant. This report is only available when using <b>engagement accountancy</b> mode (see setup of accountancy module).
|
||||
CalculationMode=Calculation mode
|
||||
AccountancyJournal=Accountancy code journal
|
||||
ACCOUNTING_VAT_ACCOUNT=Default accountancy code for collecting VAT
|
||||
ACCOUNTING_VAT_SOLD_ACCOUNT=Default accountancy code for collecting VAT
|
||||
ACCOUNTING_VAT_BUY_ACCOUNT=Default accountancy code for paying VAT
|
||||
ACCOUNTING_ACCOUNT_CUSTOMER=Accountancy code by default for customer thirdparties
|
||||
ACCOUNTING_ACCOUNT_SUPPLIER=Accountancy code by default for supplier thirdparties
|
||||
CloneTax=Clone a social contribution
|
||||
ConfirmCloneTax=Confirm the clone of a social contribution
|
||||
CloneTax=Clone a social/fiscal tax
|
||||
ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
|
||||
CloneTaxForNextMonth=Clone it for next month
|
||||
|
||||
@@ -76,6 +76,7 @@ CronMethodHelp=The object method to launch. <BR> For exemple to fetch method of
|
||||
CronArgsHelp=The method arguments. <BR> For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be <i>0, ProductRef</i>
|
||||
CronCommandHelp=The system command line to execute.
|
||||
CronCreateJob=Create new Scheduled Job
|
||||
CronFrom=From
|
||||
# Info
|
||||
CronInfoPage=Information
|
||||
# Common
|
||||
|
||||
@@ -35,7 +35,7 @@ ECMSearchByEntity=بحث عن وجوه
|
||||
ECMSectionOfDocuments=أدلة وثائق
|
||||
ECMTypeManual=دليل
|
||||
ECMTypeAuto=التلقائي
|
||||
ECMDocsBySocialContributions=Documents linked to social contributions
|
||||
ECMDocsBySocialContributions=Documents linked to social or fiscal taxes
|
||||
ECMDocsByThirdParties=وثائق مرتبطة أطراف ثالثة
|
||||
ECMDocsByProposals=وثائق مرتبطة مقترحات
|
||||
ECMDocsByOrders=وثائق مرتبطة أوامر العملاء
|
||||
|
||||
@@ -191,3 +191,4 @@ WarningNotRelevant=Irrelevant operation for this dataset
|
||||
WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Feature disabled when display setup is optimized for blind person or text browsers.
|
||||
WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice date (%s) for invoice %s.
|
||||
WarningTooManyDataPleaseUseMoreFilters=Too many data. Please use more filters
|
||||
WarningSomeLinesWithNullHourlyRate=Some times were recorded by users when their hourly rate was not defined. A value of 0 was used but this may result in wrong valuation of time spent.
|
||||
|
||||
@@ -3,7 +3,7 @@ HRM=HRM
|
||||
Holidays=Leaves
|
||||
CPTitreMenu=Leaves
|
||||
MenuReportMonth=Monthly statement
|
||||
MenuAddCP=Make a leave request
|
||||
MenuAddCP=New leave request
|
||||
NotActiveModCP=You must enable the module Leaves to view this page.
|
||||
NotConfigModCP=You must configure the module Leaves to view this page. To do this, <a href="./admin/holiday.php?leftmenu=setup&mainmenu=home" style="font-weight: normal; color: red; text-decoration: underline;"> click here </ a>.
|
||||
NoCPforUser=You don't have any available day.
|
||||
@@ -71,7 +71,7 @@ MotifCP=سبب
|
||||
UserCP=مستخدم
|
||||
ErrorAddEventToUserCP=An error occurred while adding the exceptional leave.
|
||||
AddEventToUserOkCP=The addition of the exceptional leave has been completed.
|
||||
MenuLogCP=View logs of leave requests
|
||||
MenuLogCP=View change logs
|
||||
LogCP=Log of updates of available vacation days
|
||||
ActionByCP=Performed by
|
||||
UserUpdateCP=For the user
|
||||
@@ -93,6 +93,7 @@ ValueOptionCP=القيمة
|
||||
GroupToValidateCP=Group with the ability to approve leave requests
|
||||
ConfirmConfigCP=Validate the configuration
|
||||
LastUpdateCP=Last automatic update of leaves allocation
|
||||
MonthOfLastMonthlyUpdate=Month of last automatic update of leaves allocation
|
||||
UpdateConfCPOK=Updated successfully.
|
||||
ErrorUpdateConfCP=An error occurred during the update, please try again.
|
||||
AddCPforUsers=Please add the balance of leaves allocation of users by <a href="../define_holiday.php" style="font-weight: normal; color: red; text-decoration: underline;">clicking here</a>.
|
||||
@@ -127,6 +128,7 @@ ErrorMailNotSend=An error occurred while sending email:
|
||||
NoCPforMonth=No leave this month.
|
||||
nbJours=Number days
|
||||
TitleAdminCP=Configuration of Leaves
|
||||
NoticePeriod=Notice period
|
||||
#Messages
|
||||
Hello=Hello
|
||||
HolidaysToValidate=Validate leave requests
|
||||
@@ -139,10 +141,11 @@ HolidaysRefused=Request denied
|
||||
HolidaysRefusedBody=Your leave request for %s to %s has been denied for the following reason :
|
||||
HolidaysCanceled=Canceled leaved request
|
||||
HolidaysCanceledBody=Your leave request for %s to %s has been canceled.
|
||||
Permission20000=Read you own leave requests
|
||||
Permission20001=Create/modify your leave requests
|
||||
Permission20002=Create/modify leave requests for everybody
|
||||
Permission20001=Read you own leave requests
|
||||
Permission20002=Create/modify your leave requests
|
||||
Permission20003=Delete leave requests
|
||||
Permission20004=Setup users available vacation days
|
||||
Permission20005=Review log of modified leave requests
|
||||
Permission20006=Read leaves monthly report
|
||||
Permission20004=Read leave requests for everybody
|
||||
Permission20005=Create/modify leave requests for everybody
|
||||
Permission20006=Admin leave requests (setup and update balance)
|
||||
NewByMonth=Added per month
|
||||
GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leaves</strong> to setup the different types of leaves.
|
||||
|
||||
@@ -128,6 +128,7 @@ TagCheckMail=Track mail opening
|
||||
TagUnsubscribe=Unsubscribe link
|
||||
TagSignature=Signature sending user
|
||||
TagMailtoEmail=Recipient EMail
|
||||
NoEmailSentBadSenderOrRecipientEmail=No email sent. Bad sender or recipient email. Verify user profile.
|
||||
# Module Notifications
|
||||
Notifications=الإخطارات
|
||||
NoNotificationsWillBeSent=إشعارات البريد الإلكتروني لا يجري التخطيط لهذا الحدث ، وشركة
|
||||
|
||||
@@ -57,7 +57,7 @@ ErrorSomeErrorWereFoundRollbackIsDone=تم العثور على بعض الأخط
|
||||
ErrorConfigParameterNotDefined=المعلم <b>ل ٪</b> غير محدد Dolibarr داخل ملف <b>conf.php.</b>
|
||||
ErrorCantLoadUserFromDolibarrDatabase=فشلت في العثور على المستخدم <b>٪ ق</b> Dolibarr في قاعدة البيانات.
|
||||
ErrorNoVATRateDefinedForSellerCountry=خطأ ، لم يعرف لمعدلات ضريبة القيمة المضافة فى البلاد ٪ ق.
|
||||
ErrorNoSocialContributionForSellerCountry=خطأ ، لا يوجد نوع المساهمة الاجتماعية المحددة للبلد '%s'.
|
||||
ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'.
|
||||
ErrorFailedToSaveFile=خطأ ، وفشلت في انقاذ الملف.
|
||||
SetDate=Set date
|
||||
SelectDate=Select a date
|
||||
@@ -302,7 +302,7 @@ UnitPriceTTC=سعر الوحدة
|
||||
PriceU=ارتفاع
|
||||
PriceUHT=ارتفاع (صافي)
|
||||
AskPriceSupplierUHT=U.P. net Requested
|
||||
PriceUTTC=ارتفاع
|
||||
PriceUTTC=U.P. (inc. tax)
|
||||
Amount=مبلغ
|
||||
AmountInvoice=مبلغ الفاتورة
|
||||
AmountPayment=دفع مبلغ
|
||||
@@ -339,6 +339,7 @@ IncludedVAT=وتشمل الضريبة على القيمة المضافة
|
||||
HT=بعد خصم الضرائب
|
||||
TTC=شركة ضريبة على القيمة المضافة
|
||||
VAT=ضريبة القيمة المضافة
|
||||
VATs=Sales taxes
|
||||
LT1ES=تعاود
|
||||
LT2ES=IRPF
|
||||
VATRate=سعر الضريبة على القيمة المضافة
|
||||
|
||||
@@ -199,7 +199,8 @@ Entreprises=الشركات
|
||||
DOLIBARRFOUNDATION_PAYMENT_FORM=أن يسدد الاشتراك باستخدام حوالة مصرفية، راجع صفحة <a target="_blank" href="http://wiki.dolibarr.org/index.php/Subscribe#To_subscribe_making_a_bank_transfer">http://wiki.dolibarr.org/index.php/Subscribe</a> . <br> الدفع باستخدام بطاقة ائتمان أو باي بال، وانقر على زر في أسفل هذه الصفحة. <br>
|
||||
ByProperties=By characteristics
|
||||
MembersStatisticsByProperties=Members statistics by characteristics
|
||||
MembersByNature=Members by nature
|
||||
MembersByNature=This screen show you statistics on members by nature.
|
||||
MembersByRegion=This screen show you statistics on members by region.
|
||||
VATToUseForSubscriptions=VAT rate to use for subscriptions
|
||||
NoVatOnSubscription=No TVA for subscriptions
|
||||
MEMBER_PAYONLINE_SENDEMAIL=Email to warn when Dolibarr receive a confirmation of a validated payment for subscription
|
||||
|
||||
@@ -294,3 +294,5 @@ LastUpdated=Last updated
|
||||
CorrectlyUpdated=Correctly updated
|
||||
PropalMergePdfProductActualFile=Files use to add into PDF Azur are/is
|
||||
PropalMergePdfProductChooseFile=Select PDF files
|
||||
IncludingProductWithTag=Including product with tag
|
||||
DefaultPriceRealPriceMayDependOnCustomer=Default price, real price may depend on customer
|
||||
|
||||
@@ -14,7 +14,8 @@ MyTasksDesc=ويقتصر هذا الرأي على المشروعات أو الم
|
||||
OnlyOpenedProject=Only open projects are visible (projects in draft or closed status are not visible).
|
||||
TasksPublicDesc=هذا الرأي يعرض جميع المشاريع والمهام ويسمح لك قراءة.
|
||||
TasksDesc=هذا الرأي يعرض جميع المشاريع والمهام (أذونات المستخدم الخاص أعطى الصلاحية لعرض كل شيء).
|
||||
AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task you are assigned on.
|
||||
AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task you are assigned on. Assign task to you if you want to enter time on it.
|
||||
OnlyYourTaskAreVisible=Only tasks you are assigned on are visible. Assign task to you if you want to enter time on it.
|
||||
ProjectsArea=مشاريع المنطقة
|
||||
NewProject=مشروع جديد
|
||||
AddProject=إنشاء مشروع
|
||||
@@ -76,6 +77,7 @@ ListExpenseReportsAssociatedProject=List of expense reports associated with the
|
||||
ListDonationsAssociatedProject=List of donations associated with the project
|
||||
ListActionsAssociatedProject=قائمة الإجراءات المرتبطة بالمشروع
|
||||
ListTaskTimeUserProject=List of time consumed on tasks of project
|
||||
TaskTimeUserProject=Time consumed on tasks of project
|
||||
ActivityOnProjectThisWeek=نشاط المشروع هذا الاسبوع
|
||||
ActivityOnProjectThisMonth=نشاط المشروع هذا الشهر
|
||||
ActivityOnProjectThisYear=نشاط المشروع هذا العام
|
||||
@@ -149,3 +151,6 @@ ProjectsWithThisUserAsContact=Projects with this user as contact
|
||||
TasksWithThisUserAsContact=Tasks assigned to this user
|
||||
ResourceNotAssignedToProject=Not assigned to project
|
||||
ResourceNotAssignedToTask=Not assigned to task
|
||||
AssignTaskToMe=Assign task to me
|
||||
AssignTask=Assign
|
||||
ProjectOverview=Overview
|
||||
|
||||
@@ -76,6 +76,7 @@ BROUILLONNER=Reopen
|
||||
SendToValid=Sent on approval
|
||||
ModifyInfoGen=Edit
|
||||
ValidateAndSubmit=Validate and submit for approval
|
||||
ValidatedWaitingApproval=Validated (waiting for approval)
|
||||
|
||||
NOT_VALIDATOR=You are not allowed to approve this expense report
|
||||
NOT_AUTHOR=You are not the author of this expense report. Operation cancelled.
|
||||
|
||||
@@ -84,6 +84,11 @@ WithdrawalFile=Withdrawal file
|
||||
SetToStatusSent=Set to status "File Sent"
|
||||
ThisWillAlsoAddPaymentOnInvoice=This will also apply payments to invoices and will classify them as "Paid"
|
||||
StatisticsByLineStatus=Statistics by status of lines
|
||||
RUM=RUM
|
||||
RUMWillBeGenerated=RUM number will be generated once bank account information are saved
|
||||
WithdrawMode=Withdraw mode (FRST or RECUR)
|
||||
WithdrawRequestAmount=Withdraw request amount:
|
||||
WithdrawRequestErrorNilAmount=Unable to create withdraw request for nil amount.
|
||||
|
||||
### Notifications
|
||||
InfoCreditSubject=دفع %s النظام الدائمة من قبل البنك
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Dolibarr language file - Source file is en_US - admin
|
||||
WorkflowSetup=سير العمل وحدة الإعداد
|
||||
WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in.
|
||||
ThereIsNoWorkflowToModify=There is no workflow to modify for the activated module.
|
||||
ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules.
|
||||
descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed
|
||||
descWORKFLOW_PROPAL_AUTOCREATE_INVOICEAutomatically create a customer invoice after a commercial proposal is signed
|
||||
descWORKFLOW_CONTRACT_AUTOCREATE_INVOICEAutomatically create a customer invoice after a contract is validated
|
||||
|
||||
@@ -429,8 +429,8 @@ Module20Name=Предложения
|
||||
Module20Desc=Търговско предложение управление
|
||||
Module22Name=Масови имейли
|
||||
Module22Desc=Управление на масови имейли
|
||||
Module23Name= Енергия
|
||||
Module23Desc= Наблюдение на консумацията на енергия
|
||||
Module23Name=Енергия
|
||||
Module23Desc=Наблюдение на консумацията на енергия
|
||||
Module25Name=Поръчки от клиенти
|
||||
Module25Desc=Управление на поръчка на клиента
|
||||
Module30Name=Фактури
|
||||
@@ -492,7 +492,7 @@ Module400Desc=Management of projects, opportunities or leads. You can then assig
|
||||
Module410Name=Webcalendar
|
||||
Module410Desc=Webcalendar интеграция
|
||||
Module500Name=Special expenses
|
||||
Module500Desc=Management of special expenses (taxes, social contribution, dividends)
|
||||
Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends)
|
||||
Module510Name=Salaries
|
||||
Module510Desc=Management of employees salaries and payments
|
||||
Module520Name=Loan
|
||||
@@ -501,7 +501,7 @@ Module600Name=Известия
|
||||
Module600Desc=Send EMail notifications on some Dolibarr business events to third-party contacts (setup defined on each thirdparty)
|
||||
Module700Name=Дарения
|
||||
Module700Desc=Управление на дарения
|
||||
Module770Name=Expense Report
|
||||
Module770Name=Expense reports
|
||||
Module770Desc=Management and claim expense reports (transportation, meal, ...)
|
||||
Module1120Name=Supplier commercial proposal
|
||||
Module1120Desc=Request supplier commercial proposal and prices
|
||||
@@ -579,7 +579,7 @@ Permission32=Създаване / промяна на продукти
|
||||
Permission34=Изтриване на продукти
|
||||
Permission36=Преглед / управление на скрити продукти
|
||||
Permission38=Износ на продукти
|
||||
Permission41=Четене на проекти (общи проекти и проекти съм се с нас за)
|
||||
Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet)
|
||||
Permission42=Създаване / промяна на проекти (общи проекти и проекти съм се с нас за)
|
||||
Permission44=Изтриване на проекти (общи проекти и проекти съм се с нас за)
|
||||
Permission61=Прочети интервенции
|
||||
@@ -600,10 +600,10 @@ Permission86=Изпрати клиенти поръчки
|
||||
Permission87=Затваряне на поръчките на клиентите
|
||||
Permission88=Отказ клиенти поръчки
|
||||
Permission89=Изтриване на клиенти поръчки
|
||||
Permission91=Социалноосигурителните вноски и ДДС
|
||||
Permission92=Създаване / промяна на социалните вноски и ДДС
|
||||
Permission93=Изтриване на социалноосигурителните вноски и ДДС
|
||||
Permission94=Експортиране на социалноосигурителните вноски
|
||||
Permission91=Read social or fiscal taxes and vat
|
||||
Permission92=Create/modify social or fiscal taxes and vat
|
||||
Permission93=Delete social or fiscal taxes and vat
|
||||
Permission94=Export social or fiscal taxes
|
||||
Permission95=Прочети доклада
|
||||
Permission101=Прочети sendings
|
||||
Permission102=Създаване / промяна sendings
|
||||
@@ -621,9 +621,9 @@ Permission121=Четене на трети лица, свързани с пот
|
||||
Permission122=Създаване / промяна трети страни, свързани с потребителя
|
||||
Permission125=Изтриване на трети лица, свързани с потребителя
|
||||
Permission126=Трети страни за износ
|
||||
Permission141=Прочетете проекти (лично аз не съм се с нас за)
|
||||
Permission142=Създаване / промяна проекти (лично аз не съм се свържете)
|
||||
Permission144=Изтриване на проекти (лично аз не съм се с нас за)
|
||||
Permission141=Read all projects and tasks (also private projects i am not contact for)
|
||||
Permission142=Create/modify all projects and tasks (also private projects i am not contact for)
|
||||
Permission144=Delete all projects and tasks (also private projects i am not contact for)
|
||||
Permission146=Прочети доставчици
|
||||
Permission147=Прочети статистиката
|
||||
Permission151=Нареждания за периодични преводи
|
||||
@@ -801,7 +801,7 @@ DictionaryCountry=Countries
|
||||
DictionaryCurrency=Currencies
|
||||
DictionaryCivility=Civility title
|
||||
DictionaryActions=Type of agenda events
|
||||
DictionarySocialContributions=Social contributions types
|
||||
DictionarySocialContributions=Social or fiscal taxes types
|
||||
DictionaryVAT=VAT Rates or Sales Tax Rates
|
||||
DictionaryRevenueStamp=Amount of revenue stamps
|
||||
DictionaryPaymentConditions=Payment terms
|
||||
@@ -820,6 +820,7 @@ DictionaryAccountancysystem=Models for chart of accounts
|
||||
DictionaryEMailTemplates=Emails templates
|
||||
DictionaryUnits=Units
|
||||
DictionaryProspectStatus=Prospection status
|
||||
DictionaryHolidayTypes=Type of leaves
|
||||
SetupSaved=Setup спаси
|
||||
BackToModuleList=Обратно към списъка с модули
|
||||
BackToDictionaryList=Back to dictionaries list
|
||||
@@ -1510,7 +1511,7 @@ ConfirmDeleteMenu=Сигурен ли сте, че искате да изтри
|
||||
DeleteLine=Изтриване на ред
|
||||
ConfirmDeleteLine=Сигурни ли сте, че желаете да изтриете този ред?
|
||||
##### Tax #####
|
||||
TaxSetup=Данъци, социални осигуровки и дивиденти модул за настройка
|
||||
TaxSetup=Taxes, social or fiscal taxes and dividends module setup
|
||||
OptionVatMode=Дължимия ДДС
|
||||
OptionVATDefault=Cash basis
|
||||
OptionVATDebitOption=Accrual basis
|
||||
@@ -1564,9 +1565,11 @@ EndPointIs=SOAP клиентите трябва да изпратят своит
|
||||
ApiSetup=API module setup
|
||||
ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services.
|
||||
KeyForApiAccess=Key to use API (parameter "api_key")
|
||||
ApiProductionMode=Enable production mode
|
||||
ApiEndPointIs=You can access to the API at url
|
||||
ApiExporerIs=You can explore the API at url
|
||||
OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed
|
||||
ApiKey=Key for API
|
||||
##### Bank #####
|
||||
BankSetupModule=Модул за настройка на банката
|
||||
FreeLegalTextOnChequeReceipts=Свободен текст чековите разписки
|
||||
@@ -1596,6 +1599,7 @@ ProjectsSetup=Инсталационния проект модул
|
||||
ProjectsModelModule=Проект доклади документ модел
|
||||
TasksNumberingModules=Tasks numbering module
|
||||
TaskModelModule=Tasks reports document model
|
||||
UseSearchToSelectProject=Use autocompletion fields to choose project (instead of using a list box)
|
||||
##### ECM (GED) #####
|
||||
ECMSetup = GED Setup
|
||||
ECMAutoTree = Automatic tree folder and document
|
||||
@@ -1640,3 +1644,9 @@ ConfFileMuseContainCustom=Installing an external module from application save th
|
||||
HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
|
||||
PressF5AfterChangingThis=Press F5 on keyboard after changing this value to have it effective
|
||||
NotSupportedByAllThemes=Will works with eldy theme but is not supported by all themes
|
||||
BackgroundColor=Background color
|
||||
TopMenuBackgroundColor=Background color for Top menu
|
||||
LeftMenuBackgroundColor=Background color for Left menu
|
||||
BackgroundTableTitleColor=Background color for table title line
|
||||
BackgroundTableLineOddColor=Background color for odd table lines
|
||||
BackgroundTableLineEvenColor=Background color for even table lines
|
||||
|
||||
@@ -55,7 +55,6 @@ OrderBilledInDolibarr=Order %s classified billed
|
||||
OrderApprovedInDolibarr=Поръчка %s одобрен
|
||||
OrderRefusedInDolibarr=Order %s refused
|
||||
OrderBackToDraftInDolibarr=Поръчка %s се върне в състояние на чернова
|
||||
OrderCanceledInDolibarr=Поръчка %s отменен
|
||||
ProposalSentByEMail=Търговски %s предложението, изпратено по електронна поща
|
||||
OrderSentByEMail=, Изпратени по електронната поща %s поръчка на клиента
|
||||
InvoiceSentByEMail=, Изпратени по електронната поща %s клиенти фактура
|
||||
@@ -96,3 +95,5 @@ AddEvent=Create event
|
||||
MyAvailability=My availability
|
||||
ActionType=Event type
|
||||
DateActionBegin=Start event date
|
||||
CloneAction=Clone event
|
||||
ConfirmCloneEvent=Are you sure you want to clone the event <b>%s</b> ?
|
||||
|
||||
@@ -113,7 +113,7 @@ CustomerInvoicePayment=Клиентско плащане
|
||||
CustomerInvoicePaymentBack=Customer payment back
|
||||
SupplierInvoicePayment=Доставчик плащане
|
||||
WithdrawalPayment=Оттегляне плащане
|
||||
SocialContributionPayment=Осигурителната вноска за плащане
|
||||
SocialContributionPayment=Social/fiscal tax payment
|
||||
FinancialAccountJournal=Финансова сметка списание
|
||||
BankTransfer=Банков превод
|
||||
BankTransfers=Банкови преводи
|
||||
|
||||
@@ -178,7 +178,7 @@ NumberOfBills=Nb на фактури
|
||||
NumberOfBillsByMonth=Nb на фактури по месец
|
||||
AmountOfBills=Размер на фактури
|
||||
AmountOfBillsByMonthHT=Размер на фактури от месец (нетно от данъци)
|
||||
ShowSocialContribution=Показване на осигурителната вноска
|
||||
ShowSocialContribution=Show social/fiscal tax
|
||||
ShowBill=Покажи фактура
|
||||
ShowInvoice=Покажи фактура
|
||||
ShowInvoiceReplace=Покажи замяна фактура
|
||||
@@ -270,7 +270,7 @@ BillAddress=Бил адрес
|
||||
HelpEscompte=Тази отстъпка е отстъпка, предоставена на клиента, тъй като плащането е извършено преди термина.
|
||||
HelpAbandonBadCustomer=Тази сума е бил изоставен (клиент казва, че е лош клиент) и се счита като извънредна в насипно състояние.
|
||||
HelpAbandonOther=Тази сума е изоставена, тъй като тя е грешка (грешен клиент или фактура, заменен от друг например)
|
||||
IdSocialContribution=Социален принос ID
|
||||
IdSocialContribution=Social/fiscal tax payment id
|
||||
PaymentId=Плащане ID
|
||||
InvoiceId=Фактура номер
|
||||
InvoiceRef=Фактура с реф.
|
||||
|
||||
@@ -30,6 +30,7 @@ ThirdPartyContact=От страна на трети лица за контакт
|
||||
StatusContactValidated=Състояние на контакт/адрес
|
||||
Company=Фирма
|
||||
CompanyName=Име на фирмата
|
||||
AliasNames=Alias names (commercial, trademark, ...)
|
||||
Companies=Фирми
|
||||
CountryIsInEEC=Държавата е част от Европейската икономическа общност
|
||||
ThirdPartyName=Име на Трета страна
|
||||
|
||||
@@ -56,23 +56,23 @@ VATCollected=Събраният ДДС
|
||||
ToPay=За да платите
|
||||
ToGet=За да се върнете
|
||||
SpecialExpensesArea=Area for all special payments
|
||||
TaxAndDividendsArea=Данъци, вноски за социално и дивиденти площ
|
||||
SocialContribution=Социален принос
|
||||
SocialContributions=Социалноосигурителни вноски
|
||||
TaxAndDividendsArea=Sale taxes, social/fiscal taxes contributions and dividends area
|
||||
SocialContribution=Social or fiscal tax
|
||||
SocialContributions=Social or fiscal taxes
|
||||
MenuSpecialExpenses=Special expenses
|
||||
MenuTaxAndDividends=Данъци и дивиденти
|
||||
MenuSalaries=Salaries
|
||||
MenuSocialContributions=Социалноосигурителни вноски
|
||||
MenuNewSocialContribution=Нов принос
|
||||
NewSocialContribution=Нова социална принос
|
||||
ContributionsToPay=Вноски за плащане
|
||||
MenuSocialContributions=Social/fiscal taxes
|
||||
MenuNewSocialContribution=New tax payment
|
||||
NewSocialContribution=New social/fiscal tax
|
||||
ContributionsToPay=Social/fiscal taxes to pay
|
||||
AccountancyTreasuryArea=Счетоводство / Каса
|
||||
AccountancySetup=Настройки на счетоводството
|
||||
NewPayment=Нов плащане
|
||||
Payments=Плащания
|
||||
PaymentCustomerInvoice=Плащане на клиенти фактура
|
||||
PaymentSupplierInvoice=Плащане доставчик фактура
|
||||
PaymentSocialContribution=Осигурителната вноска за плащане
|
||||
PaymentSocialContribution=Social/fiscal tax payment
|
||||
PaymentVat=Плащането на ДДС
|
||||
PaymentSalary=Salary payment
|
||||
ListPayment=Списък на плащанията
|
||||
@@ -91,7 +91,7 @@ LT1PaymentES=RE Payment
|
||||
LT1PaymentsES=RE Payments
|
||||
VATPayment=Плащането на ДДС
|
||||
VATPayments=Плащанията по ДДС
|
||||
SocialContributionsPayments=Социални плащания вноски
|
||||
SocialContributionsPayments=Social/fiscal taxes payments
|
||||
ShowVatPayment=Покажи плащане на ДДС
|
||||
TotalToPay=Всичко за плащане
|
||||
TotalVATReceived=Общо ДДС
|
||||
@@ -116,11 +116,11 @@ NewCheckDepositOn=Създаване на разписка за депозит
|
||||
NoWaitingChecks=Няма проверки за депозит.
|
||||
DateChequeReceived=Проверете датата рецепция
|
||||
NbOfCheques=Nb на проверките
|
||||
PaySocialContribution=Заплащане на осигурителната вноска
|
||||
ConfirmPaySocialContribution=Сигурен ли сте, че искате да класифицира този осигурителната вноска като платен?
|
||||
DeleteSocialContribution=Изтриване на осигурителната вноска
|
||||
ConfirmDeleteSocialContribution=Сигурен ли сте, че искате да изтриете тази осигурителната вноска?
|
||||
ExportDataset_tax_1=Социални вноски и плащания
|
||||
PaySocialContribution=Pay a social/fiscal tax
|
||||
ConfirmPaySocialContribution=Are you sure you want to classify this social or fiscal tax as paid?
|
||||
DeleteSocialContribution=Delete a social or fiscal tax payment
|
||||
ConfirmDeleteSocialContribution=Are you sure you want to delete this social/fiscal tax payment?
|
||||
ExportDataset_tax_1=Social and fiscal taxes and payments
|
||||
CalcModeVATDebt=Mode <b>%sVAT on commitment accounting%s</b>.
|
||||
CalcModeVATEngagement=Mode <b>%sVAT on incomes-expenses%s</b>.
|
||||
CalcModeDebt=Mode <b>%sClaims-Debts%s</b> said <b>Commitment accounting</b>.
|
||||
@@ -198,10 +198,10 @@ CalculationRuleDescSupplier=according to supplier, choose appropriate method to
|
||||
TurnoverPerProductInCommitmentAccountingNotRelevant=Turnover report per product, when using a <b>cash accountancy</b> mode is not relevant. This report is only available when using <b>engagement accountancy</b> mode (see setup of accountancy module).
|
||||
CalculationMode=Calculation mode
|
||||
AccountancyJournal=Accountancy code journal
|
||||
ACCOUNTING_VAT_ACCOUNT=Счетоводен код по подразбиране за начисляване на ДДС
|
||||
ACCOUNTING_VAT_SOLD_ACCOUNT=Default accountancy code for collecting VAT
|
||||
ACCOUNTING_VAT_BUY_ACCOUNT=Счетоводен код по подразбиране за плащане на ДДС
|
||||
ACCOUNTING_ACCOUNT_CUSTOMER=Accountancy code by default for customer thirdparties
|
||||
ACCOUNTING_ACCOUNT_SUPPLIER=Accountancy code by default for supplier thirdparties
|
||||
CloneTax=Клониране на социално-осигурителни вноски
|
||||
ConfirmCloneTax=Потвърдете клонирането на социално-осигурителните вноски
|
||||
CloneTax=Clone a social/fiscal tax
|
||||
ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
|
||||
CloneTaxForNextMonth=Клониране за следващ месец
|
||||
|
||||
@@ -76,6 +76,7 @@ CronMethodHelp=The object method to launch. <BR> For exemple to fetch method of
|
||||
CronArgsHelp=The method arguments. <BR> For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be <i>0, ProductRef</i>
|
||||
CronCommandHelp=Системния команден ред за стартиране.
|
||||
CronCreateJob=Create new Scheduled Job
|
||||
CronFrom=From
|
||||
# Info
|
||||
CronInfoPage=Информация
|
||||
# Common
|
||||
|
||||
@@ -35,7 +35,7 @@ ECMSearchByEntity=Търсене по обект
|
||||
ECMSectionOfDocuments=Директории на документи
|
||||
ECMTypeManual=Ръчно
|
||||
ECMTypeAuto=Автоматично
|
||||
ECMDocsBySocialContributions=Документи, които се отнасят до социални вноски
|
||||
ECMDocsBySocialContributions=Documents linked to social or fiscal taxes
|
||||
ECMDocsByThirdParties=Документи, свързани с трети страни
|
||||
ECMDocsByProposals=Документи, свързани с предложения
|
||||
ECMDocsByOrders=Документи, свързани с поръчки на клиенти
|
||||
|
||||
@@ -191,3 +191,4 @@ WarningNotRelevant=Irrelevant operation for this dataset
|
||||
WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Feature disabled when display setup is optimized for blind person or text browsers.
|
||||
WarningPaymentDateLowerThanInvoiceDate=Датата на плащане (%s) е по-ранна от датата на фактуриране (%s) за фактура %s.
|
||||
WarningTooManyDataPleaseUseMoreFilters=Твърде много данни. Моля, използвайте повече филтри
|
||||
WarningSomeLinesWithNullHourlyRate=Some times were recorded by users when their hourly rate was not defined. A value of 0 was used but this may result in wrong valuation of time spent.
|
||||
|
||||
@@ -3,7 +3,7 @@ HRM=ЧР
|
||||
Holidays=Leaves
|
||||
CPTitreMenu=Leaves
|
||||
MenuReportMonth=Месечно извлечение
|
||||
MenuAddCP=Make a leave request
|
||||
MenuAddCP=New leave request
|
||||
NotActiveModCP=You must enable the module Leaves to view this page.
|
||||
NotConfigModCP=You must configure the module Leaves to view this page. To do this, <a href="./admin/holiday.php?leftmenu=setup&mainmenu=home" style="font-weight: normal; color: red; text-decoration: underline;"> click here </ a>.
|
||||
NoCPforUser=You don't have any available day.
|
||||
@@ -71,7 +71,7 @@ MotifCP=Причина
|
||||
UserCP=Потребител
|
||||
ErrorAddEventToUserCP=Възникна грешка при добавяне на изключително отпуск.
|
||||
AddEventToUserOkCP=Добавянето на извънредния отпуск е завършена.
|
||||
MenuLogCP=View logs of leave requests
|
||||
MenuLogCP=View change logs
|
||||
LogCP=Log of updates of available vacation days
|
||||
ActionByCP=В изпълнение на
|
||||
UserUpdateCP=За потребителя
|
||||
@@ -93,6 +93,7 @@ ValueOptionCP=Стойност
|
||||
GroupToValidateCP=Group with the ability to approve leave requests
|
||||
ConfirmConfigCP=Потвърждаване на конфигурацията
|
||||
LastUpdateCP=Last automatic update of leaves allocation
|
||||
MonthOfLastMonthlyUpdate=Month of last automatic update of leaves allocation
|
||||
UpdateConfCPOK=Актуализира се успешно.
|
||||
ErrorUpdateConfCP=Възникна грешка по време на актуализацията, моля опитайте отново.
|
||||
AddCPforUsers=Please add the balance of leaves allocation of users by <a href="../define_holiday.php" style="font-weight: normal; color: red; text-decoration: underline;">clicking here</a>.
|
||||
@@ -127,6 +128,7 @@ ErrorMailNotSend=Възникна грешка при изпращане на и
|
||||
NoCPforMonth=Не оставяйте този месец.
|
||||
nbJours=Брой дни
|
||||
TitleAdminCP=Configuration of Leaves
|
||||
NoticePeriod=Notice period
|
||||
#Messages
|
||||
Hello=Hello
|
||||
HolidaysToValidate=Validate leave requests
|
||||
@@ -139,10 +141,11 @@ HolidaysRefused=Request denied
|
||||
HolidaysRefusedBody=Your leave request for %s to %s has been denied for the following reason :
|
||||
HolidaysCanceled=Canceled leaved request
|
||||
HolidaysCanceledBody=Your leave request for %s to %s has been canceled.
|
||||
Permission20000=Read you own leave requests
|
||||
Permission20001=Create/modify your leave requests
|
||||
Permission20002=Create/modify leave requests for everybody
|
||||
Permission20001=Read you own leave requests
|
||||
Permission20002=Create/modify your leave requests
|
||||
Permission20003=Delete leave requests
|
||||
Permission20004=Setup users available vacation days
|
||||
Permission20005=Review log of modified leave requests
|
||||
Permission20006=Read leaves monthly report
|
||||
Permission20004=Read leave requests for everybody
|
||||
Permission20005=Create/modify leave requests for everybody
|
||||
Permission20006=Admin leave requests (setup and update balance)
|
||||
NewByMonth=Added per month
|
||||
GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leaves</strong> to setup the different types of leaves.
|
||||
|
||||
@@ -128,6 +128,7 @@ TagCheckMail=Tracker поща отвори
|
||||
TagUnsubscribe=Отписване връзка
|
||||
TagSignature=Подпис изпращане на потребителя
|
||||
TagMailtoEmail=E-mail на получателя
|
||||
NoEmailSentBadSenderOrRecipientEmail=No email sent. Bad sender or recipient email. Verify user profile.
|
||||
# Module Notifications
|
||||
Notifications=Известия
|
||||
NoNotificationsWillBeSent=Не са планирани за това събитие и компания известия по имейл
|
||||
|
||||
@@ -57,7 +57,7 @@ ErrorSomeErrorWereFoundRollbackIsDone=Някои бяха открити гре
|
||||
ErrorConfigParameterNotDefined=Параметъра <b>%s</b> не е дефиниран в конфигурационния файл на Dolibarr <b>conf.php</b>.
|
||||
ErrorCantLoadUserFromDolibarrDatabase=Не можа да се намери потребител <b>%s</b> в базата данни на Dolibarr.
|
||||
ErrorNoVATRateDefinedForSellerCountry=Грешка, няма дефинирани ДДС ставки, за държавата '%s'.
|
||||
ErrorNoSocialContributionForSellerCountry=Грешка, не е социален тип участие, определено за "%s" страна.
|
||||
ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'.
|
||||
ErrorFailedToSaveFile=Грешка, файла не е записан.
|
||||
SetDate=Set date
|
||||
SelectDate=Select a date
|
||||
@@ -302,7 +302,7 @@ UnitPriceTTC=Единична цена
|
||||
PriceU=U.P.
|
||||
PriceUHT=U.P. (нето)
|
||||
AskPriceSupplierUHT=U.P. net Requested
|
||||
PriceUTTC=U.P.
|
||||
PriceUTTC=U.P. (inc. tax)
|
||||
Amount=Размер
|
||||
AmountInvoice=Фактурирана стойност
|
||||
AmountPayment=Сума за плащане
|
||||
@@ -339,6 +339,7 @@ IncludedVAT=С включен данък
|
||||
HT=без данък
|
||||
TTC=с данък
|
||||
VAT=Данък върху продажбите
|
||||
VATs=Sales taxes
|
||||
LT1ES=RE
|
||||
LT2ES=IRPF
|
||||
VATRate=Данъчната ставка
|
||||
|
||||
@@ -199,7 +199,8 @@ Entreprises=Фирми
|
||||
DOLIBARRFOUNDATION_PAYMENT_FORM=За да направите абонамент на плащане чрез банков превод, вижте стр. <a target="_blank" href="http://wiki.dolibarr.org/index.php/Subscribe#To_subscribe_making_a_bank_transfer">http://wiki.dolibarr.org/index.php/Subscribe</a> . <br> За да платите чрез кредитна карта или Paypal, кликнете върху бутона в долната част на тази страница. <br>
|
||||
ByProperties=By characteristics
|
||||
MembersStatisticsByProperties=Members statistics by characteristics
|
||||
MembersByNature=Members by nature
|
||||
MembersByNature=This screen show you statistics on members by nature.
|
||||
MembersByRegion=This screen show you statistics on members by region.
|
||||
VATToUseForSubscriptions=VAT rate to use for subscriptions
|
||||
NoVatOnSubscription=No TVA for subscriptions
|
||||
MEMBER_PAYONLINE_SENDEMAIL=Email to warn when Dolibarr receive a confirmation of a validated payment for subscription
|
||||
|
||||
@@ -294,3 +294,5 @@ LastUpdated=Last updated
|
||||
CorrectlyUpdated=Correctly updated
|
||||
PropalMergePdfProductActualFile=Files use to add into PDF Azur are/is
|
||||
PropalMergePdfProductChooseFile=Select PDF files
|
||||
IncludingProductWithTag=Including product with tag
|
||||
DefaultPriceRealPriceMayDependOnCustomer=Default price, real price may depend on customer
|
||||
|
||||
@@ -14,7 +14,8 @@ MyTasksDesc=Тази гледна точка е ограничена до про
|
||||
OnlyOpenedProject=Only open projects are visible (projects in draft or closed status are not visible).
|
||||
TasksPublicDesc=Този възглед представя всички проекти и задачи, които може да чете.
|
||||
TasksDesc=Този възглед представя всички проекти и задачи (потребителски разрешения ви даде разрешение да видите всичко).
|
||||
AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task you are assigned on.
|
||||
AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task you are assigned on. Assign task to you if you want to enter time on it.
|
||||
OnlyYourTaskAreVisible=Only tasks you are assigned on are visible. Assign task to you if you want to enter time on it.
|
||||
ProjectsArea=Проекти област
|
||||
NewProject=Нов проект
|
||||
AddProject=Create project
|
||||
@@ -76,6 +77,7 @@ ListExpenseReportsAssociatedProject=List of expense reports associated with the
|
||||
ListDonationsAssociatedProject=List of donations associated with the project
|
||||
ListActionsAssociatedProject=Списък на събития, свързани с проекта
|
||||
ListTaskTimeUserProject=List of time consumed on tasks of project
|
||||
TaskTimeUserProject=Time consumed on tasks of project
|
||||
ActivityOnProjectThisWeek=Дейности в проекта тази седмица
|
||||
ActivityOnProjectThisMonth=Дейност по проект, този месец
|
||||
ActivityOnProjectThisYear=Дейности в проекта тази година
|
||||
@@ -149,3 +151,6 @@ ProjectsWithThisUserAsContact=Projects with this user as contact
|
||||
TasksWithThisUserAsContact=Tasks assigned to this user
|
||||
ResourceNotAssignedToProject=Not assigned to project
|
||||
ResourceNotAssignedToTask=Not assigned to task
|
||||
AssignTaskToMe=Assign task to me
|
||||
AssignTask=Assign
|
||||
ProjectOverview=Overview
|
||||
|
||||
@@ -76,6 +76,7 @@ BROUILLONNER=Reopen
|
||||
SendToValid=Sent on approval
|
||||
ModifyInfoGen=Edit
|
||||
ValidateAndSubmit=Validate and submit for approval
|
||||
ValidatedWaitingApproval=Validated (waiting for approval)
|
||||
|
||||
NOT_VALIDATOR=You are not allowed to approve this expense report
|
||||
NOT_AUTHOR=You are not the author of this expense report. Operation cancelled.
|
||||
|
||||
@@ -84,6 +84,11 @@ WithdrawalFile=Withdrawal file
|
||||
SetToStatusSent=Set to status "File Sent"
|
||||
ThisWillAlsoAddPaymentOnInvoice=This will also apply payments to invoices and will classify them as "Paid"
|
||||
StatisticsByLineStatus=Statistics by status of lines
|
||||
RUM=RUM
|
||||
RUMWillBeGenerated=RUM number will be generated once bank account information are saved
|
||||
WithdrawMode=Withdraw mode (FRST or RECUR)
|
||||
WithdrawRequestAmount=Withdraw request amount:
|
||||
WithdrawRequestErrorNilAmount=Unable to create withdraw request for nil amount.
|
||||
|
||||
### Notifications
|
||||
InfoCreditSubject=Плащане на постоянно нареждане %s от банката
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Dolibarr language file - Source file is en_US - admin
|
||||
WorkflowSetup=Настройки на модул Workflow
|
||||
WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in.
|
||||
ThereIsNoWorkflowToModify=There is no workflow to modify for the activated module.
|
||||
ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules.
|
||||
descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed
|
||||
descWORKFLOW_PROPAL_AUTOCREATE_INVOICEAutomatically create a customer invoice after a commercial proposal is signed
|
||||
descWORKFLOW_CONTRACT_AUTOCREATE_INVOICEAutomatically create a customer invoice after a contract is validated
|
||||
|
||||
@@ -429,8 +429,8 @@ Module20Name=Proposals
|
||||
Module20Desc=Commercial proposal management
|
||||
Module22Name=Mass E-mailings
|
||||
Module22Desc=Mass E-mailing management
|
||||
Module23Name= Energy
|
||||
Module23Desc= Monitoring the consumption of energies
|
||||
Module23Name=Energy
|
||||
Module23Desc=Monitoring the consumption of energies
|
||||
Module25Name=Customer Orders
|
||||
Module25Desc=Customer order management
|
||||
Module30Name=Invoices
|
||||
@@ -492,7 +492,7 @@ Module400Desc=Management of projects, opportunities or leads. You can then assig
|
||||
Module410Name=Webcalendar
|
||||
Module410Desc=Webcalendar integration
|
||||
Module500Name=Special expenses
|
||||
Module500Desc=Management of special expenses (taxes, social contribution, dividends)
|
||||
Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends)
|
||||
Module510Name=Salaries
|
||||
Module510Desc=Management of employees salaries and payments
|
||||
Module520Name=Loan
|
||||
@@ -501,7 +501,7 @@ Module600Name=Notifications
|
||||
Module600Desc=Send EMail notifications on some Dolibarr business events to third-party contacts (setup defined on each thirdparty)
|
||||
Module700Name=Donations
|
||||
Module700Desc=Donation management
|
||||
Module770Name=Expense Report
|
||||
Module770Name=Expense reports
|
||||
Module770Desc=Management and claim expense reports (transportation, meal, ...)
|
||||
Module1120Name=Supplier commercial proposal
|
||||
Module1120Desc=Request supplier commercial proposal and prices
|
||||
@@ -579,7 +579,7 @@ Permission32=Create/modify products
|
||||
Permission34=Delete products
|
||||
Permission36=See/manage hidden products
|
||||
Permission38=Export products
|
||||
Permission41=Read projects (shared project and projects i'm contact for)
|
||||
Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet)
|
||||
Permission42=Create/modify projects (shared project and projects i'm contact for)
|
||||
Permission44=Delete projects (shared project and projects i'm contact for)
|
||||
Permission61=Read interventions
|
||||
@@ -600,10 +600,10 @@ Permission86=Send customers orders
|
||||
Permission87=Close customers orders
|
||||
Permission88=Cancel customers orders
|
||||
Permission89=Delete customers orders
|
||||
Permission91=Read social contributions and vat
|
||||
Permission92=Create/modify social contributions and vat
|
||||
Permission93=Delete social contributions and vat
|
||||
Permission94=Export social contributions
|
||||
Permission91=Read social or fiscal taxes and vat
|
||||
Permission92=Create/modify social or fiscal taxes and vat
|
||||
Permission93=Delete social or fiscal taxes and vat
|
||||
Permission94=Export social or fiscal taxes
|
||||
Permission95=Read reports
|
||||
Permission101=Read sendings
|
||||
Permission102=Create/modify sendings
|
||||
@@ -621,9 +621,9 @@ Permission121=Read third parties linked to user
|
||||
Permission122=Create/modify third parties linked to user
|
||||
Permission125=Delete third parties linked to user
|
||||
Permission126=Export third parties
|
||||
Permission141=Read projects (also private i am not contact for)
|
||||
Permission142=Create/modify projects (also private i am not contact for)
|
||||
Permission144=Delete projects (also private i am not contact for)
|
||||
Permission141=Read all projects and tasks (also private projects i am not contact for)
|
||||
Permission142=Create/modify all projects and tasks (also private projects i am not contact for)
|
||||
Permission144=Delete all projects and tasks (also private projects i am not contact for)
|
||||
Permission146=Read providers
|
||||
Permission147=Read stats
|
||||
Permission151=Read standing orders
|
||||
@@ -801,7 +801,7 @@ DictionaryCountry=Countries
|
||||
DictionaryCurrency=Currencies
|
||||
DictionaryCivility=Civility title
|
||||
DictionaryActions=Type of agenda events
|
||||
DictionarySocialContributions=Social contributions types
|
||||
DictionarySocialContributions=Social or fiscal taxes types
|
||||
DictionaryVAT=VAT Rates or Sales Tax Rates
|
||||
DictionaryRevenueStamp=Amount of revenue stamps
|
||||
DictionaryPaymentConditions=Payment terms
|
||||
@@ -820,6 +820,7 @@ DictionaryAccountancysystem=Models for chart of accounts
|
||||
DictionaryEMailTemplates=Emails templates
|
||||
DictionaryUnits=Units
|
||||
DictionaryProspectStatus=Prospection status
|
||||
DictionaryHolidayTypes=Type of leaves
|
||||
SetupSaved=Setup saved
|
||||
BackToModuleList=Back to modules list
|
||||
BackToDictionaryList=Back to dictionaries list
|
||||
@@ -1510,7 +1511,7 @@ ConfirmDeleteMenu=Are you sure you want to delete menu entry <b>%s</b> ?
|
||||
DeleteLine=Delete line
|
||||
ConfirmDeleteLine=Are you sure you want to delete this line ?
|
||||
##### Tax #####
|
||||
TaxSetup=Taxes, social contributions and dividends module setup
|
||||
TaxSetup=Taxes, social or fiscal taxes and dividends module setup
|
||||
OptionVatMode=VAT due
|
||||
OptionVATDefault=Cash basis
|
||||
OptionVATDebitOption=Accrual basis
|
||||
@@ -1564,9 +1565,11 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa
|
||||
ApiSetup=API module setup
|
||||
ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services.
|
||||
KeyForApiAccess=Key to use API (parameter "api_key")
|
||||
ApiProductionMode=Enable production mode
|
||||
ApiEndPointIs=You can access to the API at url
|
||||
ApiExporerIs=You can explore the API at url
|
||||
OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed
|
||||
ApiKey=Key for API
|
||||
##### Bank #####
|
||||
BankSetupModule=Bank module setup
|
||||
FreeLegalTextOnChequeReceipts=Free text on cheque receipts
|
||||
@@ -1596,6 +1599,7 @@ ProjectsSetup=Project module setup
|
||||
ProjectsModelModule=Project reports document model
|
||||
TasksNumberingModules=Tasks numbering module
|
||||
TaskModelModule=Tasks reports document model
|
||||
UseSearchToSelectProject=Use autocompletion fields to choose project (instead of using a list box)
|
||||
##### ECM (GED) #####
|
||||
ECMSetup = GED Setup
|
||||
ECMAutoTree = Automatic tree folder and document
|
||||
@@ -1640,3 +1644,9 @@ ConfFileMuseContainCustom=Installing an external module from application save th
|
||||
HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
|
||||
PressF5AfterChangingThis=Press F5 on keyboard after changing this value to have it effective
|
||||
NotSupportedByAllThemes=Will works with eldy theme but is not supported by all themes
|
||||
BackgroundColor=Background color
|
||||
TopMenuBackgroundColor=Background color for Top menu
|
||||
LeftMenuBackgroundColor=Background color for Left menu
|
||||
BackgroundTableTitleColor=Background color for table title line
|
||||
BackgroundTableLineOddColor=Background color for odd table lines
|
||||
BackgroundTableLineEvenColor=Background color for even table lines
|
||||
|
||||
@@ -48,11 +48,13 @@ InvoiceValidatedInDolibarr=Invoice %s validated
|
||||
InvoiceValidatedInDolibarrFromPos=Invoice %s validated from POS
|
||||
InvoiceBackToDraftInDolibarr=Invoice %s go back to draft status
|
||||
InvoiceDeleteDolibarr=Invoice %s deleted
|
||||
OrderValidatedInDolibarr= Order %s validated
|
||||
OrderValidatedInDolibarr=Order %s validated
|
||||
OrderDeliveredInDolibarr=Order %s classified delivered
|
||||
OrderCanceledInDolibarr=Order %s canceled
|
||||
OrderBilledInDolibarr=Order %s classified billed
|
||||
OrderApprovedInDolibarr=Order %s approved
|
||||
OrderRefusedInDolibarr=Order %s refused
|
||||
OrderBackToDraftInDolibarr=Order %s go back to draft status
|
||||
OrderCanceledInDolibarr=Order %s canceled
|
||||
ProposalSentByEMail=Commercial proposal %s sent by EMail
|
||||
OrderSentByEMail=Customer order %s sent by EMail
|
||||
InvoiceSentByEMail=Customer invoice %s sent by EMail
|
||||
@@ -91,3 +93,7 @@ WorkingTimeRange=Working time range
|
||||
WorkingDaysRange=Working days range
|
||||
AddEvent=Create event
|
||||
MyAvailability=My availability
|
||||
ActionType=Event type
|
||||
DateActionBegin=Start event date
|
||||
CloneAction=Clone event
|
||||
ConfirmCloneEvent=Are you sure you want to clone the event <b>%s</b> ?
|
||||
|
||||
@@ -113,7 +113,7 @@ CustomerInvoicePayment=Customer payment
|
||||
CustomerInvoicePaymentBack=Customer payment back
|
||||
SupplierInvoicePayment=Supplier payment
|
||||
WithdrawalPayment=Withdrawal payment
|
||||
SocialContributionPayment=Social contribution payment
|
||||
SocialContributionPayment=Social/fiscal tax payment
|
||||
FinancialAccountJournal=Financial account journal
|
||||
BankTransfer=Bank transfer
|
||||
BankTransfers=Bank transfers
|
||||
|
||||
@@ -178,7 +178,7 @@ NumberOfBills=Nb of invoices
|
||||
NumberOfBillsByMonth=Nb of invoices by month
|
||||
AmountOfBills=Amount of invoices
|
||||
AmountOfBillsByMonthHT=Amount of invoices by month (net of tax)
|
||||
ShowSocialContribution=Show social contribution
|
||||
ShowSocialContribution=Show social/fiscal tax
|
||||
ShowBill=Show invoice
|
||||
ShowInvoice=Show invoice
|
||||
ShowInvoiceReplace=Show replacing invoice
|
||||
@@ -270,7 +270,7 @@ BillAddress=Bill address
|
||||
HelpEscompte=This discount is a discount granted to customer because its payment was made before term.
|
||||
HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loose.
|
||||
HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by an other for example)
|
||||
IdSocialContribution=Social contribution id
|
||||
IdSocialContribution=Social/fiscal tax payment id
|
||||
PaymentId=Payment id
|
||||
InvoiceId=Invoice id
|
||||
InvoiceRef=Invoice ref.
|
||||
|
||||
@@ -30,6 +30,7 @@ ThirdPartyContact=Third party contact/address
|
||||
StatusContactValidated=Status of contact/address
|
||||
Company=Company
|
||||
CompanyName=Company name
|
||||
AliasNames=Alias names (commercial, trademark, ...)
|
||||
Companies=Companies
|
||||
CountryIsInEEC=Country is inside European Economic Community
|
||||
ThirdPartyName=Third party name
|
||||
|
||||
@@ -56,23 +56,23 @@ VATCollected=VAT collected
|
||||
ToPay=To pay
|
||||
ToGet=To get back
|
||||
SpecialExpensesArea=Area for all special payments
|
||||
TaxAndDividendsArea=Tax, social contributions and dividends area
|
||||
SocialContribution=Social contribution
|
||||
SocialContributions=Social contributions
|
||||
TaxAndDividendsArea=Sale taxes, social/fiscal taxes contributions and dividends area
|
||||
SocialContribution=Social or fiscal tax
|
||||
SocialContributions=Social or fiscal taxes
|
||||
MenuSpecialExpenses=Special expenses
|
||||
MenuTaxAndDividends=Taxes and dividends
|
||||
MenuSalaries=Salaries
|
||||
MenuSocialContributions=Social contributions
|
||||
MenuNewSocialContribution=New contribution
|
||||
NewSocialContribution=New social contribution
|
||||
ContributionsToPay=Contributions to pay
|
||||
MenuSocialContributions=Social/fiscal taxes
|
||||
MenuNewSocialContribution=New tax payment
|
||||
NewSocialContribution=New social/fiscal tax
|
||||
ContributionsToPay=Social/fiscal taxes to pay
|
||||
AccountancyTreasuryArea=Accountancy/Treasury area
|
||||
AccountancySetup=Accountancy setup
|
||||
NewPayment=New payment
|
||||
Payments=Payments
|
||||
PaymentCustomerInvoice=Customer invoice payment
|
||||
PaymentSupplierInvoice=Supplier invoice payment
|
||||
PaymentSocialContribution=Social contribution payment
|
||||
PaymentSocialContribution=Social/fiscal tax payment
|
||||
PaymentVat=VAT payment
|
||||
PaymentSalary=Salary payment
|
||||
ListPayment=List of payments
|
||||
@@ -91,7 +91,7 @@ LT1PaymentES=RE Payment
|
||||
LT1PaymentsES=RE Payments
|
||||
VATPayment=VAT Payment
|
||||
VATPayments=VAT Payments
|
||||
SocialContributionsPayments=Social contributions payments
|
||||
SocialContributionsPayments=Social/fiscal taxes payments
|
||||
ShowVatPayment=Show VAT payment
|
||||
TotalToPay=Total to pay
|
||||
TotalVATReceived=Total VAT received
|
||||
@@ -116,11 +116,11 @@ NewCheckDepositOn=Create receipt for deposit on account: %s
|
||||
NoWaitingChecks=No checks waiting for deposit.
|
||||
DateChequeReceived=Check reception date
|
||||
NbOfCheques=Nb of checks
|
||||
PaySocialContribution=Pay a social contribution
|
||||
ConfirmPaySocialContribution=Are you sure you want to classify this social contribution as paid?
|
||||
DeleteSocialContribution=Delete a social contribution
|
||||
ConfirmDeleteSocialContribution=Are you sure you want to delete this social contribution?
|
||||
ExportDataset_tax_1=Social contributions and payments
|
||||
PaySocialContribution=Pay a social/fiscal tax
|
||||
ConfirmPaySocialContribution=Are you sure you want to classify this social or fiscal tax as paid?
|
||||
DeleteSocialContribution=Delete a social or fiscal tax payment
|
||||
ConfirmDeleteSocialContribution=Are you sure you want to delete this social/fiscal tax payment?
|
||||
ExportDataset_tax_1=Social and fiscal taxes and payments
|
||||
CalcModeVATDebt=Mode <b>%sVAT on commitment accounting%s</b>.
|
||||
CalcModeVATEngagement=Mode <b>%sVAT on incomes-expenses%s</b>.
|
||||
CalcModeDebt=Mode <b>%sClaims-Debts%s</b> said <b>Commitment accounting</b>.
|
||||
@@ -198,10 +198,10 @@ CalculationRuleDescSupplier=according to supplier, choose appropriate method to
|
||||
TurnoverPerProductInCommitmentAccountingNotRelevant=Turnover report per product, when using a <b>cash accountancy</b> mode is not relevant. This report is only available when using <b>engagement accountancy</b> mode (see setup of accountancy module).
|
||||
CalculationMode=Calculation mode
|
||||
AccountancyJournal=Accountancy code journal
|
||||
ACCOUNTING_VAT_ACCOUNT=Default accountancy code for collecting VAT
|
||||
ACCOUNTING_VAT_SOLD_ACCOUNT=Default accountancy code for collecting VAT
|
||||
ACCOUNTING_VAT_BUY_ACCOUNT=Default accountancy code for paying VAT
|
||||
ACCOUNTING_ACCOUNT_CUSTOMER=Accountancy code by default for customer thirdparties
|
||||
ACCOUNTING_ACCOUNT_SUPPLIER=Accountancy code by default for supplier thirdparties
|
||||
CloneTax=Clone a social contribution
|
||||
ConfirmCloneTax=Confirm the clone of a social contribution
|
||||
CloneTax=Clone a social/fiscal tax
|
||||
ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
|
||||
CloneTaxForNextMonth=Clone it for next month
|
||||
|
||||
@@ -76,6 +76,7 @@ CronMethodHelp=The object method to launch. <BR> For exemple to fetch method of
|
||||
CronArgsHelp=The method arguments. <BR> For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be <i>0, ProductRef</i>
|
||||
CronCommandHelp=The system command line to execute.
|
||||
CronCreateJob=Create new Scheduled Job
|
||||
CronFrom=From
|
||||
# Info
|
||||
CronInfoPage=Information
|
||||
# Common
|
||||
|
||||
@@ -35,7 +35,7 @@ ECMSearchByEntity=Search by object
|
||||
ECMSectionOfDocuments=Directories of documents
|
||||
ECMTypeManual=Manual
|
||||
ECMTypeAuto=Automatic
|
||||
ECMDocsBySocialContributions=Documents linked to social contributions
|
||||
ECMDocsBySocialContributions=Documents linked to social or fiscal taxes
|
||||
ECMDocsByThirdParties=Documents linked to third parties
|
||||
ECMDocsByProposals=Documents linked to proposals
|
||||
ECMDocsByOrders=Documents linked to customers orders
|
||||
|
||||
@@ -191,3 +191,4 @@ WarningNotRelevant=Irrelevant operation for this dataset
|
||||
WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Feature disabled when display setup is optimized for blind person or text browsers.
|
||||
WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice date (%s) for invoice %s.
|
||||
WarningTooManyDataPleaseUseMoreFilters=Too many data. Please use more filters
|
||||
WarningSomeLinesWithNullHourlyRate=Some times were recorded by users when their hourly rate was not defined. A value of 0 was used but this may result in wrong valuation of time spent.
|
||||
|
||||
@@ -3,7 +3,7 @@ HRM=HRM
|
||||
Holidays=Leaves
|
||||
CPTitreMenu=Leaves
|
||||
MenuReportMonth=Monthly statement
|
||||
MenuAddCP=Make a leave request
|
||||
MenuAddCP=New leave request
|
||||
NotActiveModCP=You must enable the module Leaves to view this page.
|
||||
NotConfigModCP=You must configure the module Leaves to view this page. To do this, <a href="./admin/holiday.php?leftmenu=setup&mainmenu=home" style="font-weight: normal; color: red; text-decoration: underline;"> click here </ a>.
|
||||
NoCPforUser=You don't have any available day.
|
||||
@@ -71,7 +71,7 @@ MotifCP=Reason
|
||||
UserCP=User
|
||||
ErrorAddEventToUserCP=An error occurred while adding the exceptional leave.
|
||||
AddEventToUserOkCP=The addition of the exceptional leave has been completed.
|
||||
MenuLogCP=View logs of leave requests
|
||||
MenuLogCP=View change logs
|
||||
LogCP=Log of updates of available vacation days
|
||||
ActionByCP=Performed by
|
||||
UserUpdateCP=For the user
|
||||
@@ -93,6 +93,7 @@ ValueOptionCP=Value
|
||||
GroupToValidateCP=Group with the ability to approve leave requests
|
||||
ConfirmConfigCP=Validate the configuration
|
||||
LastUpdateCP=Last automatic update of leaves allocation
|
||||
MonthOfLastMonthlyUpdate=Month of last automatic update of leaves allocation
|
||||
UpdateConfCPOK=Updated successfully.
|
||||
ErrorUpdateConfCP=An error occurred during the update, please try again.
|
||||
AddCPforUsers=Please add the balance of leaves allocation of users by <a href="../define_holiday.php" style="font-weight: normal; color: red; text-decoration: underline;">clicking here</a>.
|
||||
@@ -127,6 +128,7 @@ ErrorMailNotSend=An error occurred while sending email:
|
||||
NoCPforMonth=No leave this month.
|
||||
nbJours=Number days
|
||||
TitleAdminCP=Configuration of Leaves
|
||||
NoticePeriod=Notice period
|
||||
#Messages
|
||||
Hello=Hello
|
||||
HolidaysToValidate=Validate leave requests
|
||||
@@ -139,10 +141,11 @@ HolidaysRefused=Request denied
|
||||
HolidaysRefusedBody=Your leave request for %s to %s has been denied for the following reason :
|
||||
HolidaysCanceled=Canceled leaved request
|
||||
HolidaysCanceledBody=Your leave request for %s to %s has been canceled.
|
||||
Permission20000=Read you own leave requests
|
||||
Permission20001=Create/modify your leave requests
|
||||
Permission20002=Create/modify leave requests for everybody
|
||||
Permission20001=Read you own leave requests
|
||||
Permission20002=Create/modify your leave requests
|
||||
Permission20003=Delete leave requests
|
||||
Permission20004=Setup users available vacation days
|
||||
Permission20005=Review log of modified leave requests
|
||||
Permission20006=Read leaves monthly report
|
||||
Permission20004=Read leave requests for everybody
|
||||
Permission20005=Create/modify leave requests for everybody
|
||||
Permission20006=Admin leave requests (setup and update balance)
|
||||
NewByMonth=Added per month
|
||||
GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leaves</strong> to setup the different types of leaves.
|
||||
|
||||
@@ -128,6 +128,7 @@ TagCheckMail=Track mail opening
|
||||
TagUnsubscribe=Unsubscribe link
|
||||
TagSignature=Signature sending user
|
||||
TagMailtoEmail=Recipient EMail
|
||||
NoEmailSentBadSenderOrRecipientEmail=No email sent. Bad sender or recipient email. Verify user profile.
|
||||
# Module Notifications
|
||||
Notifications=Notifications
|
||||
NoNotificationsWillBeSent=No email notifications are planned for this event and company
|
||||
|
||||
@@ -57,7 +57,7 @@ ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. We rollback change
|
||||
ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined inside Dolibarr config file <b>conf.php</b>.
|
||||
ErrorCantLoadUserFromDolibarrDatabase=Failed to find user <b>%s</b> in Dolibarr database.
|
||||
ErrorNoVATRateDefinedForSellerCountry=Error, no vat rates defined for country '%s'.
|
||||
ErrorNoSocialContributionForSellerCountry=Error, no social contribution type defined for country '%s'.
|
||||
ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'.
|
||||
ErrorFailedToSaveFile=Error, failed to save file.
|
||||
SetDate=Set date
|
||||
SelectDate=Select a date
|
||||
@@ -302,7 +302,7 @@ UnitPriceTTC=Unit price
|
||||
PriceU=U.P.
|
||||
PriceUHT=U.P. (net)
|
||||
AskPriceSupplierUHT=U.P. net Requested
|
||||
PriceUTTC=U.P.
|
||||
PriceUTTC=U.P. (inc. tax)
|
||||
Amount=Amount
|
||||
AmountInvoice=Invoice amount
|
||||
AmountPayment=Payment amount
|
||||
@@ -339,6 +339,7 @@ IncludedVAT=Included tax
|
||||
HT=Net of tax
|
||||
TTC=Inc. tax
|
||||
VAT=Sales tax
|
||||
VATs=Sales taxes
|
||||
LT1ES=RE
|
||||
LT2ES=IRPF
|
||||
VATRate=Tax Rate
|
||||
|
||||
@@ -199,7 +199,8 @@ Entreprises=Companies
|
||||
DOLIBARRFOUNDATION_PAYMENT_FORM=To make your subscription payment using a bank transfer, see page <a target="_blank" href="http://wiki.dolibarr.org/index.php/Subscribe#To_subscribe_making_a_bank_transfer">http://wiki.dolibarr.org/index.php/Subscribe</a>.<br>To pay using a Credit Card or Paypal, click on button at bottom of this page.<br>
|
||||
ByProperties=By characteristics
|
||||
MembersStatisticsByProperties=Members statistics by characteristics
|
||||
MembersByNature=Members by nature
|
||||
MembersByNature=This screen show you statistics on members by nature.
|
||||
MembersByRegion=This screen show you statistics on members by region.
|
||||
VATToUseForSubscriptions=VAT rate to use for subscriptions
|
||||
NoVatOnSubscription=No TVA for subscriptions
|
||||
MEMBER_PAYONLINE_SENDEMAIL=Email to warn when Dolibarr receive a confirmation of a validated payment for subscription
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user