forked from Wavyzz/dolibarr
Merge remote-tracking branch 'origin/3.3' into develop
Conflicts: htdocs/core/tpl/freeproductline_create.tpl.php htdocs/core/tpl/predefinedproductline_create.tpl.php
This commit is contained in:
@@ -60,7 +60,7 @@ For users:
|
|||||||
- New: [ task #210 ] Can choose cash account during POS login.
|
- New: [ task #210 ] Can choose cash account during POS login.
|
||||||
- New: [ task #104 ] Can create an invoice from several orders.
|
- New: [ task #104 ] Can create an invoice from several orders.
|
||||||
- New: Update libs/tools/logo for DoliWamp (now use PHP 5.3).
|
- New: Update libs/tools/logo for DoliWamp (now use PHP 5.3).
|
||||||
- New: Added ODT Template tag {object_total_discount}
|
- New: Added ODT Template tag {object_total_discount_ht}
|
||||||
- New: Add new import options: Third parties bank details, warehouses and stocks, categories and suppliers prices
|
- New: Add new import options: Third parties bank details, warehouses and stocks, categories and suppliers prices
|
||||||
- New: English bank account need a bank code (called sort code) to identify an account.
|
- New: English bank account need a bank code (called sort code) to identify an account.
|
||||||
- New: Can choose menu entry to show with external site module.
|
- New: Can choose menu entry to show with external site module.
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ $path=dirname(__FILE__).'/';
|
|||||||
|
|
||||||
// Test if batch mode
|
// Test if batch mode
|
||||||
if (substr($sapi_type, 0, 3) == 'cgi') {
|
if (substr($sapi_type, 0, 3) == 'cgi') {
|
||||||
echo "Error: You ar usingr PH for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -423,7 +423,7 @@ class Adherent extends CommonObject
|
|||||||
$this->db->begin();
|
$this->db->begin();
|
||||||
|
|
||||||
$sql = "UPDATE ".MAIN_DB_PREFIX."adherent SET";
|
$sql = "UPDATE ".MAIN_DB_PREFIX."adherent SET";
|
||||||
$sql.= " civilite = ".($this->civilite_id?"'".$this->civilite_id."'":"null");
|
$sql.= " civilite = ".(!is_null($this->civilite_id)?"'".$this->civilite_id."'":"null");
|
||||||
$sql.= ", prenom = ".($this->firstname?"'".$this->db->escape($this->firstname)."'":"null");
|
$sql.= ", prenom = ".($this->firstname?"'".$this->db->escape($this->firstname)."'":"null");
|
||||||
$sql.= ", nom=" .($this->lastname?"'".$this->db->escape($this->lastname)."'":"null");
|
$sql.= ", nom=" .($this->lastname?"'".$this->db->escape($this->lastname)."'":"null");
|
||||||
$sql.= ", login=" .($this->login?"'".$this->db->escape($this->login)."'":"null");
|
$sql.= ", login=" .($this->login?"'".$this->db->escape($this->login)."'":"null");
|
||||||
|
|||||||
@@ -555,8 +555,14 @@ if ($action == 'create')
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
//For external user force the company to user company
|
||||||
|
if (!empty($user->societe_id)) {
|
||||||
|
print $form->select_company($user->societe_id,'socid','',1,1);
|
||||||
|
} else {
|
||||||
print $form->select_company('','socid','',1,1);
|
print $form->select_company('','socid','',1,1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
// If company is forced, we propose contacts (may be contact is also forced)
|
// If company is forced, we propose contacts (may be contact is also forced)
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
|
|||||||
|
|
||||||
$langs->load("companies");
|
$langs->load("companies");
|
||||||
$langs->load("categories");
|
$langs->load("categories");
|
||||||
|
$langs->load('withdrawals');
|
||||||
|
|
||||||
// Securite acces client
|
// Securite acces client
|
||||||
if ($user->societe_id > 0) accessforbidden();
|
if ($user->societe_id > 0) accessforbidden();
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ require_once DOL_DOCUMENT_ROOT.'/compta/prelevement/class/rejetprelevement.class
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
|
||||||
|
|
||||||
$langs->load("categories");
|
$langs->load("categories");
|
||||||
|
$langs->load('withdrawals');
|
||||||
|
|
||||||
// Securite acces client
|
// Securite acces client
|
||||||
if ($user->societe_id > 0) accessforbidden();
|
if ($user->societe_id > 0) accessforbidden();
|
||||||
|
|||||||
@@ -130,7 +130,7 @@ if ($action == 'infocredit' && $user->rights->prelevement->bons->credit)
|
|||||||
$bon = new BonPrelevement($db,"");
|
$bon = new BonPrelevement($db,"");
|
||||||
$form = new Form($db);
|
$form = new Form($db);
|
||||||
|
|
||||||
llxHeader('',$langs->trans("WithdrawalReceipts"));
|
llxHeader('',$langs->trans("WithdrawalReceipt"));
|
||||||
|
|
||||||
|
|
||||||
if ($id > 0)
|
if ($id > 0)
|
||||||
@@ -138,7 +138,7 @@ if ($id > 0)
|
|||||||
$bon->fetch($id);
|
$bon->fetch($id);
|
||||||
|
|
||||||
$head = prelevement_prepare_head($bon);
|
$head = prelevement_prepare_head($bon);
|
||||||
dol_fiche_head($head, 'prelevement', $langs->trans("WithdrawalReceipts"), '', 'payment');
|
dol_fiche_head($head, 'prelevement', $langs->trans("WithdrawalReceipt"), '', 'payment');
|
||||||
|
|
||||||
if (GETPOST('error','alpha')!='')
|
if (GETPOST('error','alpha')!='')
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
|
|||||||
if ($user->societe_id > 0) accessforbidden();
|
if ($user->societe_id > 0) accessforbidden();
|
||||||
|
|
||||||
$langs->load("categories");
|
$langs->load("categories");
|
||||||
|
$langs->load('withdrawals');
|
||||||
|
|
||||||
// Get supervariables
|
// Get supervariables
|
||||||
$prev_id = GETPOST('id','int');
|
$prev_id = GETPOST('id','int');
|
||||||
|
|||||||
@@ -2253,24 +2253,43 @@ abstract class CommonObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function that returns the total amount of discounts applied.
|
* Function that returns the total amount HT of discounts applied for all lines.
|
||||||
*
|
*
|
||||||
* @return false|float False is returned if the discount couldn't be retrieved
|
* @return float
|
||||||
*/
|
*/
|
||||||
function getTotalDiscount()
|
function getTotalDiscount()
|
||||||
{
|
{
|
||||||
$sql = 'SELECT (SUM(`subprice`) - SUM(`total_ht`)) as `discount` FROM '.MAIN_DB_PREFIX.$this->table_element.'det WHERE `'.$this->fk_element.'` = '.$this->id;
|
$total_discount=0.00;
|
||||||
|
|
||||||
$query = $this->db->query($sql);
|
$sql = "SELECT subprice as pu_ht, qty, remise_percent, total_ht";
|
||||||
|
$sql.= " FROM ".MAIN_DB_PREFIX.$this->table_element."det";
|
||||||
|
$sql.= " WHERE ".$this->fk_element." = ".$this->id;
|
||||||
|
|
||||||
if ($query)
|
dol_syslog(get_class($this).'::getTotalDiscount sql='.$sql);
|
||||||
|
$resql = $this->db->query($sql);
|
||||||
|
if ($resql)
|
||||||
{
|
{
|
||||||
$result = $this->db->fetch_object($query);
|
$num=$this->db->num_rows($resql);
|
||||||
|
$i=0;
|
||||||
|
while ($i < $num)
|
||||||
|
{
|
||||||
|
$obj = $this->db->fetch_object($query);
|
||||||
|
|
||||||
return price2num($result->discount);
|
$pu_ht = $obj->pu_ht;
|
||||||
|
$qty= $obj->qty;
|
||||||
|
$discount_percent_line = $obj->remise_percent;
|
||||||
|
$total_ht = $obj->total_ht;
|
||||||
|
|
||||||
|
$total_discount_line = price2num(($pu_ht * $qty) - $total_ht, 'MT');
|
||||||
|
$total_discount += $total_discount_line;
|
||||||
|
|
||||||
|
$i++;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
else dol_syslog(get_class($this).'::getTotalDiscount '.$this->db->lasterror(), LOG_ERR);
|
||||||
|
|
||||||
return false;
|
//print $total_discount; exit;
|
||||||
|
return price2num($total_discount);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -2313,7 +2332,7 @@ abstract class CommonObject
|
|||||||
function isInEEC()
|
function isInEEC()
|
||||||
{
|
{
|
||||||
// List of all country codes that are in europe for european vat rules
|
// List of all country codes that are in europe for european vat rules
|
||||||
// List found on http://ec.europa.eu/taxation_customs/vies/lang.do?fromWhichPage=vieshome
|
// List found on http://ec.europa.eu/taxation_customs/common/faq/faq_1179_en.htm#9
|
||||||
$country_code_in_EEC=array(
|
$country_code_in_EEC=array(
|
||||||
'AT', // Austria
|
'AT', // Austria
|
||||||
'BE', // Belgium
|
'BE', // Belgium
|
||||||
@@ -2326,16 +2345,17 @@ abstract class CommonObject
|
|||||||
'ES', // Spain
|
'ES', // Spain
|
||||||
'FI', // Finland
|
'FI', // Finland
|
||||||
'FR', // France
|
'FR', // France
|
||||||
'GB', // Royaume-uni
|
'GB', // United Kingdom
|
||||||
'GR', // Greece
|
'GR', // Greece
|
||||||
'NL', // Holland
|
'NL', // Holland
|
||||||
'HU', // Hungary
|
'HU', // Hungary
|
||||||
'IE', // Ireland
|
'IE', // Ireland
|
||||||
|
'IM', // Isle of Man - Included in UK
|
||||||
'IT', // Italy
|
'IT', // Italy
|
||||||
'LT', // Lithuania
|
'LT', // Lithuania
|
||||||
'LU', // Luxembourg
|
'LU', // Luxembourg
|
||||||
'LV', // Latvia
|
'LV', // Latvia
|
||||||
'MC', // Monaco Seems to use same IntraVAT than France (http://www.gouv.mc/devwww/wwwnew.nsf/c3241c4782f528bdc1256d52004f970b/9e370807042516a5c1256f81003f5bb3!OpenDocument)
|
'MC', // Monaco - Included in France
|
||||||
'MT', // Malta
|
'MT', // Malta
|
||||||
//'NO', // Norway
|
//'NO', // Norway
|
||||||
'PL', // Poland
|
'PL', // Poland
|
||||||
|
|||||||
@@ -3181,7 +3181,7 @@ class Form
|
|||||||
//print "name=$name, selectedrate=$selectedrate, seller=".$societe_vendeuse->country_code." buyer=".$societe_acheteuse->country_code." buyer is company=".$societe_acheteuse->isACompany()." idprod=$idprod, info_bits=$info_bits type=$type";
|
//print "name=$name, selectedrate=$selectedrate, seller=".$societe_vendeuse->country_code." buyer=".$societe_acheteuse->country_code." buyer is company=".$societe_acheteuse->isACompany()." idprod=$idprod, info_bits=$info_bits type=$type";
|
||||||
//exit;
|
//exit;
|
||||||
|
|
||||||
// Get list of all VAT rates to show
|
// Define list of countries to use to search VAT rates to show
|
||||||
// First we defined code_pays to use to find list
|
// First we defined code_pays to use to find list
|
||||||
if (is_object($societe_vendeuse))
|
if (is_object($societe_vendeuse))
|
||||||
{
|
{
|
||||||
@@ -3193,7 +3193,7 @@ class Form
|
|||||||
}
|
}
|
||||||
if (! empty($conf->global->SERVICE_ARE_ECOMMERCE_200238EC)) // If option to have vat for end customer for services is on
|
if (! empty($conf->global->SERVICE_ARE_ECOMMERCE_200238EC)) // If option to have vat for end customer for services is on
|
||||||
{
|
{
|
||||||
if (! $societe_vendeuse->isInEEC() && $societe_acheteuse->isInEEC() && ! $societe_acheteuse->isACompany())
|
if (! $societe_vendeuse->isInEEC() && (! is_object($societe_acheteuse) || ($societe_acheteuse->isInEEC() && ! $societe_acheteuse->isACompany())))
|
||||||
{
|
{
|
||||||
// We also add the buyer
|
// We also add the buyer
|
||||||
if (is_numeric($type))
|
if (is_numeric($type))
|
||||||
|
|||||||
@@ -120,6 +120,7 @@ class FormFile
|
|||||||
{
|
{
|
||||||
if ($perm)
|
if ($perm)
|
||||||
{
|
{
|
||||||
|
$langs->load('other');
|
||||||
print ' ('.$langs->trans("MaxSize").': '.$max.' '.$langs->trans("Kb");
|
print ' ('.$langs->trans("MaxSize").': '.$max.' '.$langs->trans("Kb");
|
||||||
print ' '.info_admin($langs->trans("ThisLimitIsDefinedInSetup",$max,$maxphp),1);
|
print ' '.info_admin($langs->trans("ThisLimitIsDefinedInSetup",$max,$maxphp),1);
|
||||||
print ')';
|
print ')';
|
||||||
|
|||||||
@@ -2921,6 +2921,18 @@ function get_default_tva($thirdparty_seller, $thirdparty_buyer, $idprod=0, $idpr
|
|||||||
|
|
||||||
dol_syslog("get_default_tva: seller use vat=".$thirdparty_seller->tva_assuj.", seller country=".$thirdparty_seller->country_code.", seller in cee=".$thirdparty_seller->isInEEC().", buyer country=".$thirdparty_buyer->country_code.", buyer in cee=".$thirdparty_buyer->isInEEC().", idprod=".$idprod.", idprodfournprice=".$idprodfournprice.", SERVICE_ARE_ECOMMERCE_200238EC=".(! empty($conf->global->SERVICES_ARE_ECOMMERCE_200238EC)?$conf->global->SERVICES_ARE_ECOMMERCE_200238EC:''));
|
dol_syslog("get_default_tva: seller use vat=".$thirdparty_seller->tva_assuj.", seller country=".$thirdparty_seller->country_code.", seller in cee=".$thirdparty_seller->isInEEC().", buyer country=".$thirdparty_buyer->country_code.", buyer in cee=".$thirdparty_buyer->isInEEC().", idprod=".$idprod.", idprodfournprice=".$idprodfournprice.", SERVICE_ARE_ECOMMERCE_200238EC=".(! empty($conf->global->SERVICES_ARE_ECOMMERCE_200238EC)?$conf->global->SERVICES_ARE_ECOMMERCE_200238EC:''));
|
||||||
|
|
||||||
|
// If services are eServices according to EU Council Directive 2002/38/EC (http://ec.europa.eu/taxation_customs/taxation/vat/traders/e-commerce/article_1610_en.htm)
|
||||||
|
// we use the buyer VAT.
|
||||||
|
if (! empty($conf->global->SERVICE_ARE_ECOMMERCE_200238EC))
|
||||||
|
{
|
||||||
|
//print "eee".$thirdparty_buyer->isACompany();exit;
|
||||||
|
if (! $thirdparty_seller->isInEEC() && $thirdparty_buyer->isInEEC() && ! $thirdparty_buyer->isACompany())
|
||||||
|
{
|
||||||
|
//print 'VATRULE 6';
|
||||||
|
return get_product_vat_for_country($idprod,$thirdparty_buyer,$idprodfournprice);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Si vendeur non assujeti a TVA (tva_assuj vaut 0/1 ou franchise/reel)
|
// Si vendeur non assujeti a TVA (tva_assuj vaut 0/1 ou franchise/reel)
|
||||||
if (is_numeric($thirdparty_seller->tva_assuj) && ! $thirdparty_seller->tva_assuj)
|
if (is_numeric($thirdparty_seller->tva_assuj) && ! $thirdparty_seller->tva_assuj)
|
||||||
{
|
{
|
||||||
@@ -2964,18 +2976,6 @@ function get_default_tva($thirdparty_seller, $thirdparty_buyer, $idprod=0, $idpr
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// If services are eServices according to EU Council Directive 2002/38/EC (ec.europa.eu/taxation_customs/taxation/v.../article_1610_en.htm)
|
|
||||||
// we use the buyer VAT.
|
|
||||||
if (! empty($conf->global->SERVICE_ARE_ECOMMERCE_200238EC))
|
|
||||||
{
|
|
||||||
//print "eee".$thirdparty_buyer->isACompany();exit;
|
|
||||||
if (! $thirdparty_seller->isInEEC() && $thirdparty_buyer->isInEEC() && ! $thirdparty_buyer->isACompany())
|
|
||||||
{
|
|
||||||
//print 'VATRULE 6';
|
|
||||||
return get_product_vat_for_country($idprod,$thirdparty_buyer,$idprodfournprice);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Sinon la TVA proposee par defaut=0. Fin de regle.
|
// Sinon la TVA proposee par defaut=0. Fin de regle.
|
||||||
// Rem: Cela signifie qu'au moins un des 2 est hors Communaute europeenne et que le pays differe
|
// Rem: Cela signifie qu'au moins un des 2 est hors Communaute europeenne et que le pays differe
|
||||||
//print 'VATRULE 7';
|
//print 'VATRULE 7';
|
||||||
|
|||||||
@@ -115,7 +115,7 @@ class doc_generic_order_odt extends ModelePDFCommandes
|
|||||||
'object_total_ht'=>price($object->total_ht,0,$outputlangs),
|
'object_total_ht'=>price($object->total_ht,0,$outputlangs),
|
||||||
'object_total_vat'=>price($object->total_tva,0,$outputlangs),
|
'object_total_vat'=>price($object->total_tva,0,$outputlangs),
|
||||||
'object_total_ttc'=>price($object->total_ttc,0,$outputlangs),
|
'object_total_ttc'=>price($object->total_ttc,0,$outputlangs),
|
||||||
'object_total_discount' => price($object->getTotalDiscount(), 0, $outputlangs),
|
'object_total_discount_ht' => price($object->getTotalDiscount(), 0, $outputlangs),
|
||||||
'object_vatrate'=>vatrate($object->tva),
|
'object_vatrate'=>vatrate($object->tva),
|
||||||
'object_note_private'=>$object->note,
|
'object_note_private'=>$object->note,
|
||||||
'object_note'=>$object->note_public,
|
'object_note'=>$object->note_public,
|
||||||
|
|||||||
@@ -124,7 +124,7 @@ class doc_generic_invoice_odt extends ModelePDFFactures
|
|||||||
'object_total_ht'=>price($object->total_ht,0,$outputlangs),
|
'object_total_ht'=>price($object->total_ht,0,$outputlangs),
|
||||||
'object_total_vat'=>price($object->total_tva,0,$outputlangs),
|
'object_total_vat'=>price($object->total_tva,0,$outputlangs),
|
||||||
'object_total_ttc'=>price($object->total_ttc,0,$outputlangs),
|
'object_total_ttc'=>price($object->total_ttc,0,$outputlangs),
|
||||||
'object_total_discount' => price($object->getTotalDiscount(), 0, $outputlangs),
|
'object_total_discount_ht' => price($object->getTotalDiscount(), 0, $outputlangs),
|
||||||
'object_vatrate'=>(isset($object->tva)?vatrate($object->tva):''),
|
'object_vatrate'=>(isset($object->tva)?vatrate($object->tva):''),
|
||||||
'object_note_private'=>$object->note,
|
'object_note_private'=>$object->note,
|
||||||
'object_note'=>$object->note_public,
|
'object_note'=>$object->note_public,
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ class doc_generic_proposal_odt extends ModelePDFPropales
|
|||||||
'object_total_ht'=>price($object->total_ht,0,$outputlangs),
|
'object_total_ht'=>price($object->total_ht,0,$outputlangs),
|
||||||
'object_total_vat'=>price($object->total_tva,0,$outputlangs),
|
'object_total_vat'=>price($object->total_tva,0,$outputlangs),
|
||||||
'object_total_ttc'=>price($object->total_ttc,0,$outputlangs),
|
'object_total_ttc'=>price($object->total_ttc,0,$outputlangs),
|
||||||
'object_total_discount' => price($object->getTotalDiscount(), 0, $outputlangs),
|
'object_total_discount_ht' => price($object->getTotalDiscount(), 0, $outputlangs),
|
||||||
'object_vatrate'=>vatrate($object->tva),
|
'object_vatrate'=>vatrate($object->tva),
|
||||||
'object_note_private'=>$object->note,
|
'object_note_private'=>$object->note,
|
||||||
'object_note'=>$object->note_public,
|
'object_note'=>$object->note_public,
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -65,7 +65,7 @@ DatabaseSuperUserAccess=Database server - Superuser access
|
|||||||
CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
|
CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
|
||||||
CheckToCreateUser=Check box if database owner does not exist and must be created.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
|
CheckToCreateUser=Check box if database owner does not exist and must be created.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
|
||||||
Experimental=(experimental)
|
Experimental=(experimental)
|
||||||
DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, useless if your database and your database login already exists (like when you're hosted by a web hosting provider).
|
DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
|
||||||
KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
|
KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
|
||||||
SaveConfigurationFile=Save values
|
SaveConfigurationFile=Save values
|
||||||
ConfigurationSaving=Saving configuration file
|
ConfigurationSaving=Saving configuration file
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ ShowSupplier=Mostrar proveedor
|
|||||||
OrderDate=Fecha de pedido
|
OrderDate=Fecha de pedido
|
||||||
BuyingPrice=Precio de compra
|
BuyingPrice=Precio de compra
|
||||||
BuyingPriceMin=Precio mínimo de compra
|
BuyingPriceMin=Precio mínimo de compra
|
||||||
BuyingPriceMinShort=Precio mín compra
|
BuyingPriceMinShort=Precio mín. compra
|
||||||
AddSupplierPrice=Añadir precio de proveedor
|
AddSupplierPrice=Añadir precio de proveedor
|
||||||
ChangeSupplierPrice=Modificar precio de proveedor
|
ChangeSupplierPrice=Modificar precio de proveedor
|
||||||
ErrorSupplierCountryIsNotDefined=El país de este proveedor no está definido, corrígalo en su ficha
|
ErrorSupplierCountryIsNotDefined=El país de este proveedor no está definido, corrígalo en su ficha
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ WithBankUsingRIB=Para las cuentas bancarias que utilizan CCC
|
|||||||
WithBankUsingBANBIC=Para las cuentas bancarias que utilizan el código BAN/BIC/SWIFT
|
WithBankUsingBANBIC=Para las cuentas bancarias que utilizan el código BAN/BIC/SWIFT
|
||||||
BankToReceiveWithdraw=Cuenta bancaria receptora de las domiciliaciones
|
BankToReceiveWithdraw=Cuenta bancaria receptora de las domiciliaciones
|
||||||
CreditDate=Abonada el
|
CreditDate=Abonada el
|
||||||
WithdrawalFileNotCapable=No es posible generar fichero bancario de domiciliacion para su pais
|
WithdrawalFileNotCapable=No es posible generar el fichero bancario de domiciliación para su país.
|
||||||
ShowWithdraw=Ver domiciliación
|
ShowWithdraw=Ver domiciliación
|
||||||
IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Sin embargo, si la factura tiene pendiente algún pago por domiciliación, no será cerrada para permitir la gestión de la domiciliación.
|
IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Sin embargo, si la factura tiene pendiente algún pago por domiciliación, no será cerrada para permitir la gestión de la domiciliación.
|
||||||
DoStandingOrdersBeforePayments=Esta pestaña le permite realizar una petición de domiciliación. Una vez terminada, puede ingresar el pago en la factura para proceder a su cierre.
|
DoStandingOrdersBeforePayments=Esta pestaña le permite realizar una petición de domiciliación. Una vez terminada, puede ingresar el pago en la factura para proceder a su cierre.
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ DatabaseSuperUserAccess=Serveur de base de données - Accès super utilisateur
|
|||||||
CheckToCreateDatabase=Cochez cette option si la base de données n'existe pas et doit être créée.<br>Dans ce cas, il faut renseigner le login/mot de passe du super-utilisateur au bas de cette page.
|
CheckToCreateDatabase=Cochez cette option si la base de données n'existe pas et doit être créée.<br>Dans ce cas, il faut renseigner le login/mot de passe du super-utilisateur au bas de cette page.
|
||||||
CheckToCreateUser=Cochez cette option si l'utilisateur propriétaire n'existe pas et doit être créé.<br>Dans ce cas, il faut renseigner le nom et mot de passe du propriétaire à créer ainsi que le login/mot de passe du superutilisateur au bas de cette page. Si la case n'est pas cochée, le nom et mot de passe du propriétaire doivent exister.
|
CheckToCreateUser=Cochez cette option si l'utilisateur propriétaire n'existe pas et doit être créé.<br>Dans ce cas, il faut renseigner le nom et mot de passe du propriétaire à créer ainsi que le login/mot de passe du superutilisateur au bas de cette page. Si la case n'est pas cochée, le nom et mot de passe du propriétaire doivent exister.
|
||||||
Experimental=(expérimental)
|
Experimental=(expérimental)
|
||||||
DatabaseRootLoginDescription=Login de l'utilisateur de la base ayant les droits de création de bases de données ou de comptes pour la base, inutile si la base et son compte d'accès existent déjà (comme lorsque vous êtes chez un hébergeur).
|
DatabaseRootLoginDescription=Login de l'utilisateur de la base ayant les droits de création de bases de données ou de comptes pour la base, requis si la base ou son propriétaire n'existe pas déjà et doivent être créés.
|
||||||
KeepEmptyIfNoPassword=Laissez vide si l'administrateur n'a pas de mot de passe
|
KeepEmptyIfNoPassword=Laissez vide si l'administrateur n'a pas de mot de passe
|
||||||
SaveConfigurationFile=Enregistrement du fichier de configuration
|
SaveConfigurationFile=Enregistrement du fichier de configuration
|
||||||
ConfigurationSaving=Enregistrement du fichier de configuration
|
ConfigurationSaving=Enregistrement du fichier de configuration
|
||||||
|
|||||||
@@ -32,7 +32,9 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
|
|||||||
|
|
||||||
$id=GETPOST('id','int');
|
$id=GETPOST('id','int');
|
||||||
$ref=GETPOST('ref','alpha');
|
$ref=GETPOST('ref','alpha');
|
||||||
$mine = $_REQUEST['mode']=='mine' ? 1 : 0;
|
|
||||||
|
$mode = GETPOST('mode', 'alpha');
|
||||||
|
$mine = ($mode == 'mine' ? 1 : 0);
|
||||||
//if (! $user->rights->projet->all->lire) $mine=1; // Special for projects
|
//if (! $user->rights->projet->all->lire) $mine=1; // Special for projects
|
||||||
|
|
||||||
$object = new Project($db);
|
$object = new Project($db);
|
||||||
@@ -99,7 +101,7 @@ if ($id > 0 || ! empty($ref))
|
|||||||
$head=project_prepare_head($object);
|
$head=project_prepare_head($object);
|
||||||
dol_fiche_head($head, $tab, $langs->trans("Project"),0,($object->public?'projectpub':'project'));
|
dol_fiche_head($head, $tab, $langs->trans("Project"),0,($object->public?'projectpub':'project'));
|
||||||
|
|
||||||
$param=($_REQUEST["mode"]=='mine'?'&mode=mine':'');
|
$param=($mode=='mine'?'&mode=mine':'');
|
||||||
|
|
||||||
print '<table class="border" width="100%">';
|
print '<table class="border" width="100%">';
|
||||||
|
|
||||||
@@ -110,8 +112,11 @@ if ($id > 0 || ! empty($ref))
|
|||||||
print $langs->trans("Ref");
|
print $langs->trans("Ref");
|
||||||
print '</td><td>';
|
print '</td><td>';
|
||||||
// Define a complementary filter for search of next/prev ref.
|
// Define a complementary filter for search of next/prev ref.
|
||||||
$objectsListId = $object->getProjectsAuthorizedForUser($user,$mine,1);
|
if (! $user->rights->projet->all->lire)
|
||||||
$object->next_prev_filter=" rowid in (".$objectsListId.")";
|
{
|
||||||
|
$projectsListId = $object->getProjectsAuthorizedForUser($user,$mine,0);
|
||||||
|
$object->next_prev_filter=" rowid in (".(count($projectsListId)?join(',',array_keys($projectsListId)):'0').")";
|
||||||
|
}
|
||||||
print $form->showrefnav($object, 'ref', $linkback, 1, 'ref', 'ref', '', $param);
|
print $form->showrefnav($object, 'ref', $linkback, 1, 'ref', 'ref', '', $param);
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
|
|||||||
@@ -80,6 +80,12 @@ $img_button=dol_buildpath($path.'/theme/amarok/img/button_bg.png',1);
|
|||||||
font-size:100%;
|
font-size:100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*.fiche ul {
|
||||||
|
margin:0.5em;
|
||||||
|
padding:0.5em;
|
||||||
|
padding-left: 2em;
|
||||||
|
}*/
|
||||||
|
|
||||||
body {
|
body {
|
||||||
background-color:#f5f5f5;
|
background-color:#f5f5f5;
|
||||||
<?php if ($_SESSION['dol_login'] != '') {?>
|
<?php if ($_SESSION['dol_login'] != '') {?>
|
||||||
@@ -517,6 +523,7 @@ div.vmenu {
|
|||||||
/* Panes for ECM or Filemanager */
|
/* Panes for ECM or Filemanager */
|
||||||
/* ============================================================================== */
|
/* ============================================================================== */
|
||||||
|
|
||||||
|
|
||||||
#containerlayout .layout-with-no-border {
|
#containerlayout .layout-with-no-border {
|
||||||
border: 0 !important;
|
border: 0 !important;
|
||||||
border-width: 0 !important;
|
border-width: 0 !important;
|
||||||
@@ -526,29 +533,185 @@ div.vmenu {
|
|||||||
padding: 2px !important;
|
padding: 2px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* PANES and CONTENT-DIVs
|
||||||
|
*/
|
||||||
#containerlayout .ui-layout-pane { /* all 'panes' */
|
#containerlayout .ui-layout-pane { /* all 'panes' */
|
||||||
background:#ffffff;
|
background: #FFF;
|
||||||
border:1px solid #bbbbbb;
|
border: 1px solid #BBB;
|
||||||
|
/* DO NOT add scrolling (or padding) to 'panes' that have a content-div,
|
||||||
|
otherwise you may get double-scrollbars - on the pane AND on the content-div
|
||||||
|
*/
|
||||||
padding: 0px;
|
padding: 0px;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
}
|
}
|
||||||
|
/* (scrolling) content-div inside pane allows for fixed header(s) and/or footer(s) */
|
||||||
#containerlayout .ui-layout-content {
|
#containerlayout .ui-layout-content {
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
position: relative; /* contain floated or positioned elements */
|
position: relative; /* contain floated or positioned elements */
|
||||||
overflow: auto; /* add scrolling to content-div */
|
overflow: auto; /* add scrolling to content-div */
|
||||||
}
|
}
|
||||||
|
|
||||||
#containerlayout .pane-in.ecm-in-layout-center.ui-layout-pane.ui-layout-pane-center {
|
/*
|
||||||
border:0px solid #bbbbbb;
|
* RESIZER-BARS
|
||||||
border-bottom:1px solid #bbbbbb;
|
*/
|
||||||
|
.ui-layout-resizer { /* all 'resizer-bars' */
|
||||||
|
width: <?php echo (empty($conf->browser->phone)?'8':'24'); ?>px !important;
|
||||||
|
}
|
||||||
|
.ui-layout-resizer-hover { /* affects both open and closed states */
|
||||||
|
}
|
||||||
|
/* NOTE: It looks best when 'hover' and 'dragging' are set to the same color,
|
||||||
|
otherwise color shifts while dragging when bar can't keep up with mouse */
|
||||||
|
/*.ui-layout-resizer-open-hover ,*/ /* hover-color to 'resize' */
|
||||||
|
.ui-layout-resizer-dragging { /* resizer beging 'dragging' */
|
||||||
|
background: #DDD;
|
||||||
|
width: <?php echo (empty($conf->browser->phone)?'8':'24'); ?>px;
|
||||||
|
}
|
||||||
|
.ui-layout-resizer-dragging { /* CLONED resizer being dragged */
|
||||||
|
border-left: 1px solid #BBB;
|
||||||
|
border-right: 1px solid #BBB;
|
||||||
|
}
|
||||||
|
/* NOTE: Add a 'dragging-limit' color to provide visual feedback when resizer hits min/max size limits */
|
||||||
|
.ui-layout-resizer-dragging-limit { /* CLONED resizer at min or max size-limit */
|
||||||
|
background: #E1A4A4; /* red */
|
||||||
|
}
|
||||||
|
.ui-layout-resizer-closed {
|
||||||
|
background-color: #DDDDDD;
|
||||||
|
}
|
||||||
|
.ui-layout-resizer-closed:hover {
|
||||||
|
background-color: #EEDDDD;
|
||||||
|
}
|
||||||
|
.ui-layout-resizer-sliding { /* resizer when pane is 'slid open' */
|
||||||
|
opacity: .10; /* show only a slight shadow */
|
||||||
|
filter: alpha(opacity=10);
|
||||||
|
}
|
||||||
|
.ui-layout-resizer-sliding-hover { /* sliding resizer - hover */
|
||||||
|
opacity: 1.00; /* on-hover, show the resizer-bar normally */
|
||||||
|
filter: alpha(opacity=100);
|
||||||
|
}
|
||||||
|
/* sliding resizer - add 'outside-border' to resizer on-hover */
|
||||||
|
/* this sample illustrates how to target specific panes and states */
|
||||||
|
/*.ui-layout-resizer-north-sliding-hover { border-bottom-width: 1px; }
|
||||||
|
.ui-layout-resizer-south-sliding-hover { border-top-width: 1px; }
|
||||||
|
.ui-layout-resizer-west-sliding-hover { border-right-width: 1px; }
|
||||||
|
.ui-layout-resizer-east-sliding-hover { border-left-width: 1px; }
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* TOGGLER-BUTTONS
|
||||||
|
*/
|
||||||
|
.ui-layout-toggler {
|
||||||
|
<?php if (empty($conf->browser->phone)) { ?>
|
||||||
|
border-top: 1px solid #AAA; /* match pane-border */
|
||||||
|
border-right: 1px solid #AAA; /* match pane-border */
|
||||||
|
border-bottom: 1px solid #AAA; /* match pane-border */
|
||||||
|
background-color: #DDD;
|
||||||
|
top: 5px !important;
|
||||||
|
<?php } else { ?>
|
||||||
|
diplay: none;
|
||||||
|
<?php } ?>
|
||||||
|
}
|
||||||
|
.ui-layout-toggler-open {
|
||||||
|
height: 54px !important;
|
||||||
|
width: <?php echo (empty($conf->browser->phone)?'7':'22'); ?>px !important;
|
||||||
|
-moz-border-radius:0px 10px 10px 0px;
|
||||||
|
-webkit-border-radius:0px 10px 10px 0px;
|
||||||
|
border-radius:0px 10px 10px 0px;
|
||||||
|
}
|
||||||
|
.ui-layout-toggler-closed {
|
||||||
|
height: <?php echo (empty($conf->browser->phone)?'54':'2'); ?>px !important;
|
||||||
|
width: <?php echo (empty($conf->browser->phone)?'7':'22'); ?>px !important;
|
||||||
|
-moz-border-radius:0px 10px 10px 0px;
|
||||||
|
-webkit-border-radius:0px 10px 10px 0px;
|
||||||
|
border-radius:0px 10px 10px 0px;
|
||||||
|
}
|
||||||
|
.ui-layout-toggler .content { /* style the text we put INSIDE the togglers */
|
||||||
|
color: #666;
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: bold;
|
||||||
|
width: 100%;
|
||||||
|
padding-bottom: 0.35ex; /* to 'vertically center' text inside text-span */
|
||||||
}
|
}
|
||||||
|
|
||||||
#containerlayout .pane-in.ecm-in-layout-south.layout-padding.ui-layout-pane.ui-layout-pane-south {
|
/* hide the toggler-button when the pane is 'slid open' */
|
||||||
border:0px solid #bbbbbb;
|
.ui-layout-resizer-sliding ui-layout-toggler {
|
||||||
border-top:1px solid #bbbbbb;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.ui-layout-north {
|
||||||
|
height: <?php print (empty($conf->browser->phone)?'54':'21'); ?>px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ECM */
|
||||||
|
|
||||||
|
#containerlayout .ecm-layout-pane { /* all 'panes' */
|
||||||
|
background: #FFF;
|
||||||
|
border: 1px solid #BBB;
|
||||||
|
/* DO NOT add scrolling (or padding) to 'panes' that have a content-div,
|
||||||
|
otherwise you may get double-scrollbars - on the pane AND on the content-div
|
||||||
|
*/
|
||||||
|
padding: 0px;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
/* (scrolling) content-div inside pane allows for fixed header(s) and/or footer(s) */
|
||||||
|
#containerlayout .ecm-layout-content {
|
||||||
|
padding: 10px;
|
||||||
|
position: relative; /* contain floated or positioned elements */
|
||||||
|
overflow: auto; /* add scrolling to content-div */
|
||||||
|
}
|
||||||
|
|
||||||
|
.ecm-layout-toggler {
|
||||||
|
border-top: 1px solid #AAA; /* match pane-border */
|
||||||
|
border-right: 1px solid #AAA; /* match pane-border */
|
||||||
|
border-bottom: 1px solid #AAA; /* match pane-border */
|
||||||
|
background-color: #CCC;
|
||||||
|
}
|
||||||
|
.ecm-layout-toggler-open {
|
||||||
|
height: 48px !important;
|
||||||
|
width: 6px !important;
|
||||||
|
-moz-border-radius:0px 10px 10px 0px;
|
||||||
|
-webkit-border-radius:0px 10px 10px 0px;
|
||||||
|
border-radius:0px 10px 10px 0px;
|
||||||
|
}
|
||||||
|
.ecm-layout-toggler-closed {
|
||||||
|
height: 48px !important;
|
||||||
|
width: 6px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ecm-layout-toggler .content { /* style the text we put INSIDE the togglers */
|
||||||
|
color: #666;
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: bold;
|
||||||
|
width: 100%;
|
||||||
|
padding-bottom: 0.35ex; /* to 'vertically center' text inside text-span */
|
||||||
|
}
|
||||||
|
#ecm-layout-west-resizer {
|
||||||
|
width: 6px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ecm-layout-resizer { /* all 'resizer-bars' */
|
||||||
|
border: 1px solid #BBB;
|
||||||
|
border-width: 0;
|
||||||
|
}
|
||||||
|
.ecm-layout-resizer-closed {
|
||||||
|
}
|
||||||
|
|
||||||
|
.ecm-in-layout-center {
|
||||||
|
border-left: 1px !important;
|
||||||
|
border-right: 0px !important;
|
||||||
|
border-top: 0px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ecm-in-layout-south {
|
||||||
|
border-left: 0px !important;
|
||||||
|
border-right: 0px !important;
|
||||||
|
border-bottom: 0px !important;
|
||||||
|
padding: 4px 0 4px 4px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* ============================================================================== */
|
/* ============================================================================== */
|
||||||
/* Onglets */
|
/* Onglets */
|
||||||
/* ============================================================================== */
|
/* ============================================================================== */
|
||||||
@@ -1003,6 +1166,9 @@ div.error {
|
|||||||
* Other
|
* Other
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
.product_line_stock_ok { color: #002200; }
|
||||||
|
.product_line_stock_too_low { color: #664400; }
|
||||||
|
|
||||||
.fieldrequired {
|
.fieldrequired {
|
||||||
font-weight:bold;
|
font-weight:bold;
|
||||||
color:#333333;
|
color:#333333;
|
||||||
@@ -1024,6 +1190,40 @@ div.titre {
|
|||||||
padding-bottom:2px;
|
padding-bottom:2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#dolpaymenttable { width: 600px; font-size: 13px; }
|
||||||
|
#tablepublicpayment { border: 1px solid #CCCCCC !important; width: 100%; }
|
||||||
|
#tablepublicpayment .CTableRow1 { background-color: #F0F0F0 !important; }
|
||||||
|
#tablepublicpayment tr.liste_total { border-bottom: 1px solid #CCCCCC !important; }
|
||||||
|
#tablepublicpayment tr.liste_total td { border-top: none; }
|
||||||
|
|
||||||
|
#divsubscribe { width: 700px; }
|
||||||
|
#tablesubscribe { width: 100%; }
|
||||||
|
|
||||||
|
div.table-border {
|
||||||
|
display:table;
|
||||||
|
width: 100%;
|
||||||
|
border-collapse: collapse;
|
||||||
|
border: 1px solid #DDD;
|
||||||
|
}
|
||||||
|
div.table-border-row {
|
||||||
|
display:table-row;
|
||||||
|
}
|
||||||
|
div.table-key-border-col {
|
||||||
|
display:table-cell;
|
||||||
|
width: 25%;
|
||||||
|
vertical-align:top;
|
||||||
|
padding: 1px 2px 1px 1px;
|
||||||
|
border: 1px solid #DDD;
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
div.table-val-border-col {
|
||||||
|
display:table-cell;
|
||||||
|
width:auto;
|
||||||
|
padding: 1px 2px 1px 1px;
|
||||||
|
border: 1px solid #DDD;
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* ============================================================================== */
|
/* ============================================================================== */
|
||||||
/* Formulaire confirmation (When Ajax JQuery is used) */
|
/* Formulaire confirmation (When Ajax JQuery is used) */
|
||||||
@@ -1636,3 +1836,133 @@ span.cke_skin_kama {padding:0px !important;}
|
|||||||
/* ============================================================================== */
|
/* ============================================================================== */
|
||||||
|
|
||||||
.template-upload {height:72px !important;}
|
.template-upload {height:72px !important;}
|
||||||
|
|
||||||
|
|
||||||
|
/* ============================================================================== */
|
||||||
|
/* JSGantt */
|
||||||
|
/* ============================================================================== */
|
||||||
|
|
||||||
|
div.scroll2 {
|
||||||
|
width: <?php print isset($_SESSION['dol_screenwidth'])?max($_SESSION['dol_screenwidth']-830,450):'450'; ?>px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ============================================================================== */
|
||||||
|
/* jFileTree */
|
||||||
|
/* ============================================================================== */
|
||||||
|
|
||||||
|
.ecmfiletree {
|
||||||
|
width: 99%;
|
||||||
|
height: 99%;
|
||||||
|
background: #FFF;
|
||||||
|
padding-left: 2px;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fileview {
|
||||||
|
width: 99%;
|
||||||
|
height: 99%;
|
||||||
|
background: #FFF;
|
||||||
|
padding-left: 2px;
|
||||||
|
padding-top: 4px;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.filedirelem {
|
||||||
|
position: relative;
|
||||||
|
display: block;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.filedirelem {
|
||||||
|
padding: 2px;
|
||||||
|
margin: 0 5px 5px 5px;
|
||||||
|
}
|
||||||
|
ul.filedirelem li {
|
||||||
|
list-style: none;
|
||||||
|
padding: 2px;
|
||||||
|
margin: 0 10px 20px 10px;
|
||||||
|
width: 160px;
|
||||||
|
height: 120px;
|
||||||
|
text-align: center;
|
||||||
|
display: block;
|
||||||
|
float: <?php print $left; ?>;
|
||||||
|
border: solid 1px #DDDDDD;
|
||||||
|
}
|
||||||
|
|
||||||
|
ui-layout-north {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.ecmjqft {
|
||||||
|
font-size: 11px;
|
||||||
|
line-height: 16px;
|
||||||
|
padding: 0px;
|
||||||
|
margin: 0px;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.ecmjqft li {
|
||||||
|
list-style: none;
|
||||||
|
padding: 0px;
|
||||||
|
padding-left: 20px;
|
||||||
|
margin: 0px;
|
||||||
|
white-space: nowrap;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.ecmjqft a {
|
||||||
|
line-height: 16px;
|
||||||
|
vertical-align: middle;
|
||||||
|
color: #333;
|
||||||
|
padding: 0px 0px;
|
||||||
|
font-weight:normal;
|
||||||
|
display: inline-block !important;
|
||||||
|
/* float: left;*/
|
||||||
|
}
|
||||||
|
ul.ecmjqft a:active {
|
||||||
|
font-weight: bold !important;
|
||||||
|
}
|
||||||
|
ul.ecmjqft a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
div.ecmjqft {
|
||||||
|
vertical-align: middle;
|
||||||
|
display: inline-block !important;
|
||||||
|
text-align: right;
|
||||||
|
position:absolute;
|
||||||
|
right:4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Core Styles */
|
||||||
|
.ecmjqft LI.directory { font-weight:normal; background: url(<?php echo dol_buildpath($path.'/theme/common/treemenu/folder2.png',1); ?>) left top no-repeat; }
|
||||||
|
.ecmjqft LI.expanded { font-weight:normal; background: url(<?php echo dol_buildpath($path.'/theme/common/treemenu/folder2-expanded.png',1); ?>) left top no-repeat; }
|
||||||
|
.ecmjqft LI.wait { font-weight:normal; background: url(<?php echo dol_buildpath('/theme/eldy/img/working.gif',1); ?>) left top no-repeat; }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* ============================================================================== */
|
||||||
|
/* jNotify */
|
||||||
|
/* ============================================================================== */
|
||||||
|
|
||||||
|
.jnotify-container {
|
||||||
|
position: fixed !important;
|
||||||
|
<?php if (! empty($conf->global->MAIN_JQUERY_JNOTIFY_BOTTOM)) { ?>
|
||||||
|
top: auto !important;
|
||||||
|
bottom: 4px !important;
|
||||||
|
<?php } ?>
|
||||||
|
text-align: center;
|
||||||
|
min-width: 500px;
|
||||||
|
width: auto;
|
||||||
|
padding-left: 10px !important;
|
||||||
|
padding-right: 10px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* use or not ? */
|
||||||
|
div.jnotify-background {
|
||||||
|
opacity : 0.95 !important;
|
||||||
|
-moz-box-shadow: 4px 4px 4px #AAA !important;
|
||||||
|
-webkit-box-shadow: 4px 4px 4px #AAA !important;
|
||||||
|
box-shadow: 4px 4px 4px #AAA !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -307,9 +307,27 @@ if ($action == 'update' && ! $_POST["cancel"])
|
|||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
$db->begin();
|
|
||||||
$object->fetch($id);
|
$object->fetch($id);
|
||||||
|
|
||||||
|
// Test if new login
|
||||||
|
if (GETPOST("login") && GETPOST("login") != $object->login)
|
||||||
|
{
|
||||||
|
dol_syslog("New login ".$object->login." is requested. We test it does not exists.");
|
||||||
|
$tmpuser=new User($db);
|
||||||
|
$result=$tmpuser->fetch(0, GETPOST("login"));
|
||||||
|
if ($result > 0)
|
||||||
|
{
|
||||||
|
$message='<div class="error">'.$langs->trans("ErrorLoginAlreadyExists").'</div>';
|
||||||
|
$action="edit"; // Go back to create page
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! $error)
|
||||||
|
{
|
||||||
|
$db->begin();
|
||||||
|
|
||||||
$object->oldcopy=dol_clone($object);
|
$object->oldcopy=dol_clone($object);
|
||||||
|
|
||||||
$object->lastname = GETPOST("nom");
|
$object->lastname = GETPOST("nom");
|
||||||
@@ -454,6 +472,12 @@ if ($action == 'update' && ! $_POST["cancel"])
|
|||||||
{
|
{
|
||||||
$message.='<div class="ok">'.$langs->trans("UserModified").'</div>';
|
$message.='<div class="ok">'.$langs->trans("UserModified").'</div>';
|
||||||
$db->commit();
|
$db->commit();
|
||||||
|
|
||||||
|
$login=$_SESSION["dol_login"];
|
||||||
|
if ($login && $login == $object->oldcopy->login && $object->oldcopy->login != $object->login) // Current user has changed its login
|
||||||
|
{
|
||||||
|
$_SESSION["dol_login"]=$object->login; // Set new login to avoid disconnect at next page
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -769,7 +793,7 @@ if (($action == 'create') || ($action == 'adduserldap'))
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// We do not use a field password but a field text to show new password to use.
|
// We do not use a field password but a field text to show new password to use.
|
||||||
print '<input size="30" maxsize="32" type="text" name="password" value="'.$password.'">';
|
print '<input size="30" maxsize="32" type="text" name="password" value="'.$password.'" autocomplete="off">';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
@@ -1648,7 +1672,7 @@ else
|
|||||||
}
|
}
|
||||||
else if ($caneditpassword)
|
else if ($caneditpassword)
|
||||||
{
|
{
|
||||||
$text='<input size="12" maxlength="32" type="password" class="flat" name="password" value="'.$object->pass.'">';
|
$text='<input size="12" maxlength="32" type="password" class="flat" name="password" value="'.$object->pass.'" autocomplete="off">';
|
||||||
if ($dolibarr_main_authentication && $dolibarr_main_authentication == 'http')
|
if ($dolibarr_main_authentication && $dolibarr_main_authentication == 'http')
|
||||||
{
|
{
|
||||||
$text=$form->textwithpicto($text,$langs->trans("DolibarrInHttpAuthenticationSoPasswordUseless",$dolibarr_main_authentication),1,'warning');
|
$text=$form->textwithpicto($text,$langs->trans("DolibarrInHttpAuthenticationSoPasswordUseless",$dolibarr_main_authentication),1,'warning');
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ $path=dirname(__FILE__).'/';
|
|||||||
|
|
||||||
// Test if batch mode
|
// Test if batch mode
|
||||||
if (substr($sapi_type, 0, 3) == 'cgi') {
|
if (substr($sapi_type, 0, 3) == 'cgi') {
|
||||||
echo "Error: You ar usingr PH for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ $path=dirname(__FILE__).'/';
|
|||||||
|
|
||||||
// Test if batch mode
|
// Test if batch mode
|
||||||
if (substr($sapi_type, 0, 3) == 'cgi') {
|
if (substr($sapi_type, 0, 3) == 'cgi') {
|
||||||
echo "Error: You ar usingr PH for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ $path=dirname(__FILE__).'/';
|
|||||||
|
|
||||||
// Test if batch mode
|
// Test if batch mode
|
||||||
if (substr($sapi_type, 0, 3) == 'cgi') {
|
if (substr($sapi_type, 0, 3) == 'cgi') {
|
||||||
echo "Error: You ar usingr PH for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ $path=dirname(__FILE__).'/';
|
|||||||
|
|
||||||
// Test if batch mode
|
// Test if batch mode
|
||||||
if (substr($sapi_type, 0, 3) == 'cgi') {
|
if (substr($sapi_type, 0, 3) == 'cgi') {
|
||||||
echo "Error: You ar usingr PH for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ $path=dirname(__FILE__).'/';
|
|||||||
|
|
||||||
// Test if batch mode
|
// Test if batch mode
|
||||||
if (substr($sapi_type, 0, 3) == 'cgi') {
|
if (substr($sapi_type, 0, 3) == 'cgi') {
|
||||||
echo "Error: You ar usingr PH for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ $path=dirname(__FILE__).'/';
|
|||||||
|
|
||||||
// Test if batch mode
|
// Test if batch mode
|
||||||
if (substr($sapi_type, 0, 3) == 'cgi') {
|
if (substr($sapi_type, 0, 3) == 'cgi') {
|
||||||
echo "Error: You ar usingr PH for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ $path=dirname(__FILE__).'/';
|
|||||||
|
|
||||||
// Test if batch mode
|
// Test if batch mode
|
||||||
if (substr($sapi_type, 0, 3) == 'cgi') {
|
if (substr($sapi_type, 0, 3) == 'cgi') {
|
||||||
echo "Error: You ar usingr PH for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ $path=dirname(__FILE__).'/';
|
|||||||
|
|
||||||
// Test if batch mode
|
// Test if batch mode
|
||||||
if (substr($sapi_type, 0, 3) == 'cgi') {
|
if (substr($sapi_type, 0, 3) == 'cgi') {
|
||||||
echo "Error: You ar usingr PH for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user