New: Customer and supplier codes can be automatically generated

This commit is contained in:
Laurent Destailleur 2009-01-31 15:23:05 +00:00
parent 67c92017c2
commit bb90ab1288
49 changed files with 907 additions and 1219 deletions

View File

@ -247,12 +247,12 @@ if ($handle)
// Info
$htmltooltip='';
$htmltooltip.='<b>'.$langs->trans("Version").'</b>: '.$module->getVersion().'<br>';
$htmltooltip.=''.$langs->trans("Version").': <b>'.$module->getVersion().'</b><br>';
$facture->type=0;
$nextval=$module->getNextValue($mysoc,$commande);
if ("$nextval" != $langs->trans("NotAvailable")) // Keep " on nextval
{
$htmltooltip.='<b>'.$langs->trans("NextValue").'</b>: ';
$htmltooltip.=''.$langs->trans("NextValue").': ';
if ($nextval)
{
$htmltooltip.=$nextval.'<br>';
@ -373,17 +373,17 @@ while (($file = readdir($handle))!==false)
print '</td>';
// Info
$htmltooltip = '<b>'.$langs->trans("Name").'</b>: '.$module->name;
$htmltooltip.='<br><b>'.$langs->trans("Type").'</b>: '.($module->type?$module->type:$langs->trans("Unknown"));
$htmltooltip.='<br><b>'.$langs->trans("Height").'/'.$langs->trans("Width").'</b>: '.$module->page_hauteur.'/'.$module->page_largeur;
$htmltooltip.='<br><br>'.$langs->trans("FeaturesSupported").':';
$htmltooltip.='<br><b>'.$langs->trans("Logo").'</b>: '.yn($module->option_logo);
$htmltooltip.='<br><b>'.$langs->trans("PaymentMode").'</b>: '.yn($module->option_modereg);
$htmltooltip.='<br><b>'.$langs->trans("PaymentConditions").'</b>: '.yn($module->option_condreg);
$htmltooltip.='<br><b>'.$langs->trans("MultiLanguage").'</b>: '.yn($module->option_multilang);
// \TODO : $htmltooltip.='<br><b>'.$langs->trans("Escompte").'</b>: '.yn($module->option_escompte);
$htmltooltip.='<br><b>'.$langs->trans("CreditNote").'</b>: '.yn($module->option_credit_note);
$htmltooltip.='<br><b>'.$langs->trans("WatermarkOnDraftOrders").'</b>: '.yn($module->option_draft_watermark);
$htmltooltip = ''.$langs->trans("Name").': '.$module->name;
$htmltooltip.='<br>'.$langs->trans("Type").': '.($module->type?$module->type:$langs->trans("Unknown"));
$htmltooltip.='<br>'.$langs->trans("Height").'/'.$langs->trans("Width").': '.$module->page_hauteur.'/'.$module->page_largeur;
$htmltooltip.='<br><br><u>'.$langs->trans("FeaturesSupported").':</u>';
$htmltooltip.='<br>'.$langs->trans("Logo").': '.yn($module->option_logo,1,1);
$htmltooltip.='<br>'.$langs->trans("PaymentMode").': '.yn($module->option_modereg,1,1);
$htmltooltip.='<br>'.$langs->trans("PaymentConditions").': '.yn($module->option_condreg,1,1);
$htmltooltip.='<br>'.$langs->trans("MultiLanguage").': '.yn($module->option_multilang,1,1);
//$htmltooltip.='<br>'.$langs->trans("Escompte").': '.yn($module->option_escompte,1,1);
//$htmltooltip.='<br>'.$langs->trans("CreditNote").': '.yn($module->option_credit_note,1,1);
$htmltooltip.='<br>'.$langs->trans("WatermarkOnDraftOrders").': '.yn($module->option_draft_watermark,1,1);
print '<td align="center">';
print $html->textwithhelp('',$htmltooltip,1,0);

View File

@ -1,5 +1,5 @@
<?php
/* Copyright (C) 2005-208 Laurent Destailleur <eldy@users.sourceforge.net>
/* Copyright (C) 2005-2009 Laurent Destailleur <eldy@users.sourceforge.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -16,7 +16,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
/**
/**
* \file htdocs/admin/dons.php
* \ingroup dons
* \brief Page d'administration/configuration du module Dons
@ -71,12 +71,12 @@ if ($_GET["action"] == 'specimen')
$mesg='<div class="error">'.$langs->trans("ErrorModuleNotFound").'</div>';
dolibarr_syslog($langs->trans("ErrorModuleNotFound"), LOG_ERR);
}
}
}
if ($_GET["action"] == 'setdoc')
{
$db->begin();
if (dolibarr_set_const($db, "DON_ADDON_MODEL",$_GET["value"]))
{
$conf->global->DON_ADDON_MODEL = $_GET["value"];
@ -89,7 +89,7 @@ if ($_GET["action"] == 'setdoc')
$result1=$db->query($sql_del);
$sql = "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom,type) VALUES ('".$_GET["value"]."','".$type."')";
$result2=$db->query($sql);
if ($result1 && $result2)
if ($result1 && $result2)
{
$db->commit();
}
@ -184,7 +184,7 @@ while (($file = readdir($handle))!==false)
$var = !$var;
$name = substr($file, 0, strlen($file) -12);
$classname = substr($file, 0, strlen($file) -12);
require_once($dir.'/'.$file);
$module=new $classname($db);
@ -200,7 +200,7 @@ while (($file = readdir($handle))!==false)
print '<td>';
print $module->description;
print '</td>';
// Active
if (in_array($name, $def))
{
@ -223,7 +223,7 @@ while (($file = readdir($handle))!==false)
print '<a href="'.$_SERVER["PHP_SELF"].'?action=set&amp;value='.$name.'">'.$langs->trans("Activate").'</a>';
print "</td>";
}
// Defaut
print "<td align=\"center\">";
if ($conf->global->DON_ADDON_MODEL == "$name")
@ -235,21 +235,21 @@ while (($file = readdir($handle))!==false)
print '<a href="'.$_SERVER["PHP_SELF"].'?action=setdoc&amp;value='.$name.'" alt="'.$langs->trans("Default").'">'.$langs->trans("Default").'</a>';
}
print '</td>';
// Info
$htmltooltip = '<b>'.$langs->trans("Name").'</b>: '.$module->name;
$htmltooltip.='<br><b>'.$langs->trans("Type").'</b>: '.($module->type?$module->type:$langs->trans("Unknown"));
$htmltooltip.='<br><b>'.$langs->trans("Height").'/'.$langs->trans("Width").'</b>: '.$module->page_hauteur.'/'.$module->page_largeur;
$htmltooltip.='<br><br>'.$langs->trans("FeaturesSupported").':';
$htmltooltip.='<br><b>'.$langs->trans("Logo").'</b>: '.yn($module->option_logo);
$htmltooltip.='<br><b>'.$langs->trans("MultiLanguage").'</b>: '.yn($module->option_multilang);
$htmltooltip = ''.$langs->trans("Name").': '.$module->name;
$htmltooltip.='<br>'.$langs->trans("Type").': '.($module->type?$module->type:$langs->trans("Unknown"));
$htmltooltip.='<br>'.$langs->trans("Height").'/'.$langs->trans("Width").': '.$module->page_hauteur.'/'.$module->page_largeur;
$htmltooltip.='<br><br><u>'.$langs->trans("FeaturesSupported").':</u>';
$htmltooltip.='<br>'.$langs->trans("Logo").': '.yn($module->option_logo,1,1);
$htmltooltip.='<br>'.$langs->trans("MultiLanguage").': '.yn($module->option_multilang,1,1);
print '<td align="center">';
print $html->textwithhelp('',$htmltooltip,1,0);
print '</td>';
print '<td align="center">';
print '<a href="'.$_SERVER["PHP_SELF"].'?action=specimen&module='.$name.'" target="specimen">'.img_object($langs->trans("Preview"),'generic').'</a>';
print '</td>';
print "</tr>\n";
}
}

View File

@ -439,11 +439,11 @@ if(is_dir($dir))
print '</td>';
// Info
$htmltooltip = '<b>'.$langs->trans("Name").'</b>: '.$module->name;
$htmltooltip.='<br><b>'.$langs->trans("Type").'</b>: '.($module->type?$module->type:$langs->trans("Unknown"));
$htmltooltip.='<br><b>'.$langs->trans("Width").'/'.$langs->trans("Height").'</b>: '.$module->page_largeur.'/'.$module->page_hauteur;
$htmltooltip.='<br><br>'.$langs->trans("FeaturesSupported").':';
$htmltooltip.='<br><b>'.$langs->trans("Logo").'</b>: '.yn($module->option_logo);
$htmltooltip = ''.$langs->trans("Name").': '.$module->name;
$htmltooltip.='<br>'.$langs->trans("Type").': '.($module->type?$module->type:$langs->trans("Unknown"));
$htmltooltip.='<br>'.$langs->trans("Width").'/'.$langs->trans("Height").': '.$module->page_largeur.'/'.$module->page_hauteur;
$htmltooltip.='<br><br><u>'.$langs->trans("FeaturesSupported").':</u>';
$htmltooltip.='<br>'.$langs->trans("Logo").': '.yn($module->option_logo,1,1);
print '<td align="center">';
print $html->textwithhelp('',$htmltooltip,1,0);
print '</td>';

View File

@ -3,7 +3,7 @@
* Copyright (C) 2004-2008 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005 Eric Seigne <eric.seigne@ryxeo.com>
* Copyright (C) 2005-2007 Regis Houssin <regis@dolibarr.fr>
* Copyright (C) 2008 Raphael Bertrand (Resultic) <raphael.bertrand@resultic.fr>
* Copyright (C) 2008 Raphael Bertrand (Resultic) <raphael.bertrand@resultic.fr>
*
* 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
@ -288,12 +288,12 @@ while (($file = readdir($handle))!==false)
// Example for standard invoice
$htmltooltip='';
$htmltooltip.='<b>'.$langs->trans("Version").'</b>: '.$module->getVersion().'<br>';
$htmltooltip.=''.$langs->trans("Version").': <b>'.$module->getVersion().'</b><br>';
$facture->type=0;
$nextval=$module->getNextValue($mysoc,$facture);
if ("$nextval" != $langs->trans("NotAvailable")) // Keep " on nextval
{
$htmltooltip.='<b>'.$langs->trans("NextValueForInvoices").'</b>: ';
$htmltooltip.=$langs->trans("NextValueForInvoices").': ';
if ($nextval)
{
$htmltooltip.=$nextval.'<br>';
@ -308,7 +308,7 @@ while (($file = readdir($handle))!==false)
$nextval=$module->getNextValue($mysoc,$facture);
if ("$nextval" != $langs->trans("NotAvailable")) // Keep " on nextval
{
$htmltooltip.='<b>'.$langs->trans("NextValueForCreditNotes").'</b>: ';
$htmltooltip.=$langs->trans("NextValueForCreditNotes").': ';
if ($nextval)
{
$htmltooltip.=$nextval;
@ -428,17 +428,17 @@ while (($file = readdir($handle))!==false)
print '</td>';
// Info
$htmltooltip = '<b>'.$langs->trans("Name").'</b>: '.$module->name;
$htmltooltip.='<br><b>'.$langs->trans("Type").'</b>: '.($module->type?$module->type:$langs->trans("Unknown"));
$htmltooltip.='<br><b>'.$langs->trans("Height").'/'.$langs->trans("Width").'</b>: '.$module->page_hauteur.'/'.$module->page_largeur;
$htmltooltip.='<br><br>'.$langs->trans("FeaturesSupported").':';
$htmltooltip.='<br><b>'.$langs->trans("Logo").'</b>: '.yn($module->option_logo,1,1);
$htmltooltip.='<br><b>'.$langs->trans("PaymentMode").'</b>: '.yn($module->option_modereg,1,1);
$htmltooltip.='<br><b>'.$langs->trans("PaymentConditions").'</b>: '.yn($module->option_condreg,1,1);
$htmltooltip.='<br><b>'.$langs->trans("Escompte").'</b>: '.yn($module->option_escompte,1,1);
$htmltooltip.='<br><b>'.$langs->trans("CreditNote").'</b>: '.yn($module->option_credit_note,1,1);
$htmltooltip.='<br><b>'.$langs->trans("MultiLanguage").'</b>: '.yn($module->option_multilang,1,1);
$htmltooltip.='<br><b>'.$langs->trans("WatermarkOnDraftInvoices").'</b>: '.yn($module->option_draft_watermark,1,1);
$htmltooltip = ''.$langs->trans("Name").': '.$module->name;
$htmltooltip.='<br>'.$langs->trans("Type").': '.($module->type?$module->type:$langs->trans("Unknown"));
$htmltooltip.='<br>'.$langs->trans("Height").'/'.$langs->trans("Width").': '.$module->page_hauteur.'/'.$module->page_largeur;
$htmltooltip.='<br><br><u>'.$langs->trans("FeaturesSupported").':</u>';
$htmltooltip.='<br>'.$langs->trans("Logo").': '.yn($module->option_logo,1,1);
$htmltooltip.='<br>'.$langs->trans("PaymentMode").': '.yn($module->option_modereg,1,1);
$htmltooltip.='<br>'.$langs->trans("PaymentConditions").': '.yn($module->option_condreg,1,1);
$htmltooltip.='<br>'.$langs->trans("Escompte").': '.yn($module->option_escompte,1,1);
$htmltooltip.='<br>'.$langs->trans("CreditNote").': '.yn($module->option_credit_note,1,1);
$htmltooltip.='<br>'.$langs->trans("MultiLanguage").': '.yn($module->option_multilang,1,1);
$htmltooltip.='<br>'.$langs->trans("WatermarkOnDraftInvoices").': '.yn($module->option_draft_watermark,1,1);
print '<td align="center">';

View File

@ -229,10 +229,11 @@ if ($handle)
// Info
$htmltooltip='';
$htmltooltip.=''.$langs->trans("Version").': <b>'.$module->getVersion().'</b><br>';
$nextval=$module->getNextValue($mysoc,$ficheinter);
if ($nextval != $langs->trans("NotAvailable"))
{
$htmltooltip='<b>'.$langs->trans("NextValue").'</b>: '.$nextval;
$htmltooltip.=''.$langs->trans("NextValue").': '.$nextval;
}
print '<td align="center">';
print $html->textwithhelp('',$htmltooltip,1,0);
@ -342,15 +343,15 @@ while (($file = readdir($handle))!==false)
print '</td>';
// Info
$htmltooltip = '<b>'.$langs->trans("Type").'</b>: '.($module->type?$module->type:$langs->trans("Unknown"));
$htmltooltip.='<br><b>'.$langs->trans("Width").'</b>: '.$module->page_largeur;
$htmltooltip.='<br><b>'.$langs->trans("Height").'</b>: '.$module->page_hauteur;
$htmltooltip.='<br><br>'.$langs->trans("FeaturesSupported").':';
$htmltooltip.='<br><b>'.$langs->trans("Logo").'</b>: '.yn($module->option_logo);
$htmltooltip.='<br><b>'.$langs->trans("PaymentMode").'</b>: '.yn($module->option_modereg);
$htmltooltip.='<br><b>'.$langs->trans("PaymentConditions").'</b>: '.yn($module->option_condreg);
$htmltooltip.='<br><b>'.$langs->trans("MultiLanguage").'</b>: '.yn($module->option_multilang);
$htmltooltip.='<br><b>'.$langs->trans("WatermarkOnDraftOrders").'</b>: '.yn($module->option_draft_watermark);
$htmltooltip = ''.$langs->trans("Name").': '.$module->name;
$htmltooltip.='<br>'.$langs->trans("Type").': '.($module->type?$module->type:$langs->trans("Unknown"));
$htmltooltip.='<br>'.$langs->trans("Width").'/'.$langs->trans("Height").': '.$module->page_largeur.'/'.$module->page_hauteur;
$htmltooltip.='<br><br><u>'.$langs->trans("FeaturesSupported").':</u>';
$htmltooltip.='<br>'.$langs->trans("Logo").': '.yn($module->option_logo,1,1);
$htmltooltip.='<br>'.$langs->trans("PaymentMode").': '.yn($module->option_modereg,1,1);
$htmltooltip.='<br>'.$langs->trans("PaymentConditions").': '.yn($module->option_condreg,1,1);
$htmltooltip.='<br>'.$langs->trans("MultiLanguage").': '.yn($module->option_multilang,1,1);
$htmltooltip.='<br>'.$langs->trans("WatermarkOnDraftOrders").': '.yn($module->option_draft_watermark,1,1);
print '<td align="center">';
print $html->textwithhelp('',$htmltooltip,1,0);
print '</td>';

View File

@ -225,18 +225,18 @@ if ($handle)
print '<a href="'.$_SERVER["PHP_SELF"].'?action=setmod&amp;value='.$file.'" alt="'.$langs->trans("Default").'">'.$langs->trans("Activate").'</a>';
}
print '</td>';
$commande=new CommandeFournisseur($db);
$commande->initAsSpecimen();
// Info
$htmltooltip='';
$htmltooltip.='<b>'.$langs->trans("Version").'</b>: '.$module->getVersion().'<br>';
$htmltooltip.=''.$langs->trans("Version").': <b>'.$module->getVersion().'</b><br>';
$facture->type=0;
$nextval=$module->getNextValue($mysoc,$commande);
if ("$nextval" != $langs->trans("NotAvailable")) // Keep " on nextval
{
$htmltooltip.='<b>'.$langs->trans("NextValue").'</b>: ';
$htmltooltip.=''.$langs->trans("NextValue").': ';
if ($nextval)
{
$htmltooltip.=$nextval.'<br>';
@ -357,13 +357,13 @@ while (($file = readdir($handle))!==false)
print '</td>';
// Info
$htmltooltip = '<b>'.$langs->trans("Type").'</b>: '.($module->type?$module->type:$langs->trans("Unknown"));
$htmltooltip.='<br><b>'.$langs->trans("Width").'</b>: '.$module->page_largeur;
$htmltooltip.='<br><b>'.$langs->trans("Height").'</b>: '.$module->page_hauteur;
$htmltooltip.='<br><br>'.$langs->trans("FeaturesSupported").':';
$htmltooltip.='<br><b>'.$langs->trans("Logo").'</b>: '.yn($module->option_logo);
$htmltooltip.='<br><b>'.$langs->trans("PaymentMode").'</b>: '.yn($module->option_modereg);
$htmltooltip.='<br><b>'.$langs->trans("PaymentConditions").'</b>: '.yn($module->option_condreg);
$htmltooltip = ''.$langs->trans("Name").': '.$module->name;
$htmltooltip.='<br>'.$langs->trans("Type").': '.($module->type?$module->type:$langs->trans("Unknown"));
$htmltooltip.='<br>'.$langs->trans("Width").'/'.$langs->trans("Height").': '.$module->page_largeur.'/'.$module->page_hauteur;
$htmltooltip.='<br><br><u>'.$langs->trans("FeaturesSupported").':</u>';
$htmltooltip.='<br>'.$langs->trans("Logo").': '.yn($module->option_logo,1,1);
$htmltooltip.='<br>'.$langs->trans("PaymentMode").': '.yn($module->option_modereg,1,1);
$htmltooltip.='<br>'.$langs->trans("PaymentConditions").': '.yn($module->option_condreg,1,1);
print '<td align="center">';
print $html->textwithhelp('',$htmltooltip,1,0);
print '</td>';

View File

@ -43,7 +43,7 @@ if (!$user->admin) accessforbidden();
/*
* Actions
*/
if ($_POST["action"] == 'updateMask')
{
$maskconstdelivery=$_POST['maskconstdelivery'];
@ -111,7 +111,7 @@ if ($_GET["action"] == 'del')
if ($_GET["action"] == 'setdoc')
{
$db->begin();
if (dolibarr_set_const($db, "LIVRAISON_ADDON_PDF",$_GET["value"]))
{
$conf->global->LIVRAISON_ADDON_PDF = $_GET["value"];
@ -124,7 +124,7 @@ if ($_GET["action"] == 'setdoc')
$result1=$db->query($sql_del);
$sql = "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom,type) VALUES ('".$_GET["value"]."','".$type."')";
$result2=$db->query($sql);
if ($result1 && $result2)
if ($result1 && $result2)
{
$db->commit();
}
@ -224,10 +224,10 @@ if ($handle)
print '<tr '.$bc[$var].'><td>'.$module->nom."</td><td>\n";
print $module->info();
print '</td>';
// Affiche example
print '<td nowrap="nowrap">'.$module->getExample().'</td>';
print '<td align="center">';
if ($conf->global->LIVRAISON_ADDON == "$file")
{
@ -238,18 +238,18 @@ if ($handle)
print '<a href="'.$_SERVER["PHP_SELF"].'?action=setmod&amp;value='.$file.'" alt="'.$langs->trans("Default").'">'.$langs->trans("Default").'</a>';
}
print '</td>';
$livraison=new Livraison($db);
$livraison->initAsSpecimen();
// Info
$htmltooltip='';
$htmltooltip.='<b>'.$langs->trans("Version").'</b>: '.$module->getVersion().'<br>';
$htmltooltip.=''.$langs->trans("Version").': <b>'.$module->getVersion().'</b><br>';
$facture->type=0;
$nextval=$module->getNextValue($mysoc,$livraison);
if ("$nextval" != $langs->trans("NotAvailable")) // Keep " on nextval
{
$htmltooltip.='<b>'.$langs->trans("NextValue").'</b>: ';
$htmltooltip.=''.$langs->trans("NextValue").': ';
if ($nextval)
{
$htmltooltip.=$nextval.'<br>';
@ -259,11 +259,11 @@ if ($handle)
$htmltooltip.=$langs->trans($module->error).'<br>';
}
}
print '<td align="center">';
print $html->textwithhelp('',$htmltooltip,1,0);
print '</td>';
print '</tr>';
}
}
@ -373,11 +373,10 @@ if(is_dir($dir))
print '</td>';
// Info
$htmltooltip = '<b>'.$langs->trans("Type").'</b>: '.($module->type?$module->type:$langs->trans("Unknown"));
$htmltooltip.='<br><b>'.$langs->trans("Width").'</b>: '.$module->page_largeur;
$htmltooltip.='<br><b>'.$langs->trans("Height").'</b>: '.$module->page_hauteur;
$htmltooltip = ''.$langs->trans("Type").': '.($module->type?$module->type:$langs->trans("Unknown"));
$htmltooltip.='<br>'.$langs->trans("Width").'/'.$langs->trans("Height").': '.$module->page_largeur.'/'.$module->page_hauteur;
$htmltooltip.='<br><br>'.$langs->trans("FeaturesSupported").':';
$htmltooltip.='<br><b>'.$langs->trans("Logo").'</b>: '.yn($module->option_logo);
$htmltooltip.='<br>'.$langs->trans("Logo").': '.yn($module->option_logo,1,1);
print '<td align="center">';
print $html->textwithhelp('',$htmltooltip,1,0);
print '</td>';

View File

@ -1,6 +1,6 @@
<?php
/* Copyright (C) 2003-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2008 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2004-2009 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2004 Sebastien Di Cintio <sdicintio@ressource-toi.org>
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
* Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com>
@ -267,12 +267,12 @@ if ($handle)
// Info
$htmltooltip='';
$htmltooltip.='<b>'.$langs->trans("Version").'</b>: '.$module->getVersion().'<br>';
$htmltooltip.=''.$langs->trans("Version").': <b>'.$module->getVersion().'</b><br>';
$facture->type=0;
$nextval=$module->getNextValue($mysoc,$propale);
if ("$nextval" != $langs->trans("NotAvailable")) // Keep " on nextval
{
$htmltooltip.='<b>'.$langs->trans("NextValue").'</b>: ';
$htmltooltip.=''.$langs->trans("NextValue").': ';
if ($nextval)
{
$htmltooltip.=$nextval.'<br>';
@ -392,17 +392,17 @@ while (($file = readdir($handle))!==false)
print '</td>';
// Info
$htmltooltip = '<b>'.$langs->trans("Name").'</b>: '.$module->name;
$htmltooltip.='<br><b>'.$langs->trans("Type").'</b>: '.($module->type?$module->type:$langs->trans("Unknown"));
$htmltooltip.='<br><b>'.$langs->trans("Height").'/'.$langs->trans("Width").'</b>: '.$module->page_hauteur.'/'.$module->page_largeur;
$htmltooltip.='<br><br>'.$langs->trans("FeaturesSupported").':';
$htmltooltip.='<br><b>'.$langs->trans("Logo").'</b>: '.yn($module->option_logo);
$htmltooltip.='<br><b>'.$langs->trans("PaymentMode").'</b>: '.yn($module->option_modereg);
$htmltooltip.='<br><b>'.$langs->trans("PaymentConditions").'</b>: '.yn($module->option_condreg);
$htmltooltip.='<br><b>'.$langs->trans("MultiLanguage").'</b>: '.yn($module->option_multilang);
//TODO : $htmltooltip.='<br><b>'.$langs->trans("Escompte").'</b>: '.yn($module->option_escompte);
$htmltooltip.='<br><b>'.$langs->trans("CreditNote").'</b>: '.yn($module->option_credit_note);
$htmltooltip.='<br><b>'.$langs->trans("WatermarkOnDraftProposal").'</b>: '.yn($module->option_draft_watermark);
$htmltooltip = ''.$langs->trans("Name").': '.$module->name;
$htmltooltip.='<br>'.$langs->trans("Type").': '.($module->type?$module->type:$langs->trans("Unknown"));
$htmltooltip.='<br>'.$langs->trans("Height").'/'.$langs->trans("Width").': '.$module->page_hauteur.'/'.$module->page_largeur;
$htmltooltip.='<br><br><u>'.$langs->trans("FeaturesSupported").':</u>';
$htmltooltip.='<br>'.$langs->trans("Logo").': '.yn($module->option_logo,1,1);
$htmltooltip.='<br>'.$langs->trans("PaymentMode").': '.yn($module->option_modereg,1,1);
$htmltooltip.='<br>'.$langs->trans("PaymentConditions").': '.yn($module->option_condreg,1,1);
$htmltooltip.='<br>'.$langs->trans("MultiLanguage").': '.yn($module->option_multilang,1,1);
//$htmltooltip.='<br>'.$langs->trans("Escompte").': '.yn($module->option_escompte,1,1);
//$htmltooltip.='<br>'.$langs->trans("CreditNote").': '.yn($module->option_credit_note,1,1);
$htmltooltip.='<br>'.$langs->trans("WatermarkOnDraftProposal").': '.yn($module->option_draft_watermark,1,1);

View File

@ -47,7 +47,7 @@ if ($_GET["action"] == 'setcodeclient')
}
else
{
dolibarr_print_error($db);
dolibarr_print_error($db);
}
}
@ -60,7 +60,7 @@ if ($_GET["action"] == 'setcodecompta')
}
else
{
dolibarr_print_error($db);
dolibarr_print_error($db);
}
}
@ -80,8 +80,8 @@ if ($_POST["action"] == 'usesearchtoselectcompany')
// define constants for tigre model
if ($_POST["action"] == 'updateMask')
{
dolibarr_set_const($db, "CODE_TIGRE_MASK_CUSTOMER",$_POST["maskcustomer"]);
dolibarr_set_const($db, "CODE_TIGRE_MASK_SUPPLIER",$_POST["masksupplier"]);
dolibarr_set_const($db, "COMPANY_ELEPHANT_MASK_CUSTOMER",$_POST["maskcustomer"]);
dolibarr_set_const($db, "COMPANY_ELEPHANT_MASK_SUPPLIER",$_POST["masksupplier"]);
}
@ -120,7 +120,7 @@ $handle = opendir($dir);
if ($handle)
{
$var = true;
// Loop on each module find in opened directory
while (($file = readdir($handle))!==false)
{
@ -141,7 +141,7 @@ if ($handle)
print $modCodeTiers->info($langs);
print "</td>\n";
print '<td nowrap="nowrap">'.$modCodeTiers->getExample($langs)."</td>\n";
if ($conf->global->SOCIETE_CODECLIENT_ADDON == "$file")
{
print "<td align=\"center\">\n";
@ -157,7 +157,7 @@ if ($handle)
$s=$modCodeTiers->getToolTip($langs,$soc,-1);
print $form->textwithhelp('',$s,1);
print '</td>';
print '</tr>';
}
}
@ -205,7 +205,7 @@ if ($handle)
print $modCodeCompta->info($langs);
print '</td>';
print '<td nowrap="nowrap">'.$modCodeCompta->getExample($langs)."</td>\n";
if ($conf->global->SOCIETE_CODECOMPTA_ADDON == "$file")
{
print '<td align="center">';
@ -224,7 +224,7 @@ if ($handle)
closedir($handle);
}
print "</table>\n";
print '<br>';
@ -246,7 +246,7 @@ print '<td width="80%">'.$langs->trans("UseSearchToSelectCompany").'</td>';
if (! $conf->use_javascript_ajax)
{
print '<td nowrap="nowrap" align="right" colspan="2">';
print $langs->trans("NotAvailableWhenAjaxDisabled");
print $langs->trans("NotAvailableWhenAjaxDisabled");
print "</td>";
}
else

View File

@ -40,7 +40,7 @@ class mod_commande_saphir extends ModeleNumRefCommandes
var $error = '';
var $nom = 'Saphir';
/** \brief Renvoi la description du modele de num<EFBFBD>rotation
* \return string Texte descripif
*/
@ -49,23 +49,29 @@ class mod_commande_saphir extends ModeleNumRefCommandes
global $conf,$langs;
$langs->load("bills");
$form = new Form($db);
$texte = $langs->trans('GenericNumRefModelDesc')."<br>\n";
$texte.= '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
$texte.= '<input type="hidden" name="action" value="updateMask">';
$texte.= '<input type="hidden" name="maskconstorder" value="COMMANDE_SAPHIR_MASK">';
$texte.= '<table class="nobordernopadding" width="100%">';
// Parametrage du prefix des factures
$tooltip=$langs->trans("GenericMaskCodes",$langs->transnoentities("Order"));
$tooltip.=$langs->trans("GenericMaskCodes2");
$tooltip.=$langs->trans("GenericMaskCodes3");
$tooltip.=$langs->trans("GenericMaskCodes4a",$langs->transnoentities("Order"),$langs->transnoentities("Order"));
$tooltip.=$langs->trans("GenericMaskCodes5");
// Parametrage du prefix
$texte.= '<tr><td>'.$langs->trans("Mask").':</td>';
$texte.= '<td align="right">'.$form->textwithhelp('<input type="text" class="flat" size="24" name="maskorder" value="'.$conf->global->COMMANDE_SAPHIR_MASK.'">',$langs->trans("GenericMaskCodes",$langs->transnoentities("Order"),$langs->transnoentities("Order"),$langs->transnoentities("Order")),1,1).'</td>';
$texte.= '<td align="right">'.$form->textwithhelp('<input type="text" class="flat" size="24" name="maskorder" value="'.$conf->global->COMMANDE_SAPHIR_MASK.'">',$tooltip,1,1).'</td>';
$texte.= '<td align="left" rowspan="2">&nbsp; <input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button"></td>';
$texte.= '</tr>';
$texte.= '</table>';
$texte.= '</form>';
@ -78,12 +84,12 @@ class mod_commande_saphir extends ModeleNumRefCommandes
function getExample()
{
global $conf,$langs,$mysoc;
$old_code_client=$mysoc->code_client;
$mysoc->code_client='CCCCCCCCCC';
$numExample = $this->getNextValue($mysoc,'');
$mysoc->code_client=$old_code_client;
if (! $numExample)
{
$numExample = $langs->trans('NotConfigured');
@ -101,22 +107,22 @@ class mod_commande_saphir extends ModeleNumRefCommandes
global $db,$conf;
require_once(DOL_DOCUMENT_ROOT ."/lib/functions2.lib.php");
// We get cursor rule
$mask=$conf->global->COMMANDE_SAPHIR_MASK;
if (! $mask)
if (! $mask)
{
$this->error='NotConfigured';
return 0;
}
$numFinal=get_next_value($db,$mask,'commande','ref','',$objsoc->code_client,$commande->date);
return $numFinal;
}
/** \brief Return next free value
* \param objsoc Object third party
* \param objforref Object for number to search
@ -126,7 +132,7 @@ class mod_commande_saphir extends ModeleNumRefCommandes
{
return $this->getNextValue($objsoc,$objforref);
}
}
}
?>

View File

@ -39,7 +39,7 @@ class mod_facture_mercure extends ModeleNumRefFactures
var $version='dolibarr'; // 'development', 'experimental', 'dolibarr'
var $error = '';
/** \brief Renvoi la description du modele de numerotation
* \return string Texte descripif
*/
@ -48,47 +48,53 @@ class mod_facture_mercure extends ModeleNumRefFactures
global $conf,$langs;
$langs->load("bills");
$form = new Form($db);
$texte = $langs->trans('GenericNumRefModelDesc')."<br>\n";
$texte.= '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
$texte.= '<input type="hidden" name="action" value="updateMask">';
$texte.= '<input type="hidden" name="maskconstinvoice" value="FACTURE_MERCURE_MASK_INVOICE">';
$texte.= '<input type="hidden" name="maskconstcredit" value="FACTURE_MERCURE_MASK_CREDIT">';
$texte.= '<table class="nobordernopadding" width="100%">';
// Parametrage du prefix des factures
$tooltip=$langs->trans("GenericMaskCodes",$langs->transnoentities("Invoice"));
$tooltip.=$langs->trans("GenericMaskCodes2");
$tooltip.=$langs->trans("GenericMaskCodes3");
$tooltip.=$langs->trans("GenericMaskCodes4a",$langs->transnoentities("Invoice"),$langs->transnoentities("Invoice"));
$tooltip.=$langs->trans("GenericMaskCodes5");
// Parametrage du prefix
$texte.= '<tr><td>'.$langs->trans("Mask").' ('.$langs->trans("InvoiceStandard").'):</td>';
$texte.= '<td align="right">'.$form->textwithhelp('<input type="text" class="flat" size="24" name="maskinvoice" value="'.$conf->global->FACTURE_MERCURE_MASK_INVOICE.'">',$langs->trans("GenericMaskCodes",$langs->transnoentities("Invoice"),$langs->transnoentities("Invoice"),$langs->transnoentities("Invoice")),1,1).'</td>';
$texte.= '<td align="right">'.$form->textwithhelp('<input type="text" class="flat" size="24" name="maskinvoice" value="'.$conf->global->FACTURE_MERCURE_MASK_INVOICE.'">',$tooltip,1,1).'</td>';
$texte.= '<td align="left" rowspan="2">&nbsp; <input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button"></td>';
$texte.= '</tr>';
// Parametrage du prefix des avoirs
$texte.= '<tr><td>'.$langs->trans("Mask").' ('.$langs->trans("InvoiceAvoir").'):</td>';
$texte.= '<td align="right">'.$form->textwithhelp('<input type="text" class="flat" size="24" name="maskcredit" value="'.$conf->global->FACTURE_MERCURE_MASK_CREDIT.'">',$langs->trans("GenericMaskCodes",$langs->transnoentities("Invoice"),$langs->transnoentities("Invoice"),$langs->transnoentities("Invoice")),1,1).'</td>';
$texte.= '<td align="right">'.$form->textwithhelp('<input type="text" class="flat" size="24" name="maskcredit" value="'.$conf->global->FACTURE_MERCURE_MASK_CREDIT.'">',$tooltip,1,1).'</td>';
$texte.= '</tr>';
$texte.= '</table>';
$texte.= '</form>';
return $texte;
}
/** \brief Renvoi un exemple de numerotation
/** \brief Return an example of number value
* \return string Example
*/
function getExample()
{
global $conf,$langs,$mysoc;
$old_code_client=$mysoc->code_client;
$mysoc->code_client='CCCCCCCCCC';
$numExample = $this->getNextValue($mysoc,'');
$mysoc->code_client=$old_code_client;
if (! $numExample)
{
$numExample = $langs->trans('NotConfigured');
@ -106,12 +112,12 @@ class mod_facture_mercure extends ModeleNumRefFactures
global $db,$conf;
require_once(DOL_DOCUMENT_ROOT ."/lib/functions2.lib.php");
// On defini critere recherche compteur
// Get Mask value
$mask = '';
if (is_object($facture) && $facture->type == 2) $mask=$conf->global->FACTURE_MERCURE_MASK_CREDIT;
else $mask=$conf->global->FACTURE_MERCURE_MASK_INVOICE;
if (! $mask)
if (! $mask)
{
$this->error='NotConfigured';
return 0;
@ -120,13 +126,13 @@ class mod_facture_mercure extends ModeleNumRefFactures
$where='';
if ($facture->type == 2) $where.= " AND type = 2";
else $where.=" AND type != 2";
$numFinal=get_next_value($db,$mask,'facture','facnumber',$where,$objsoc->code_client,$facture->date);
return $numFinal;
}
/** \brief Return next free value
* \param objsoc Object third party
* \param objforref Object for number to search
@ -136,6 +142,6 @@ class mod_facture_mercure extends ModeleNumRefFactures
{
return $this->getNextValue($objsoc,$objforref);
}
}
}
?>

View File

@ -38,7 +38,7 @@ class mod_arctic extends ModeleNumRefFicheinter
var $version='dolibarr'; // 'development', 'experimental', 'dolibarr'
var $error = '';
var $nom = 'Artic';
/** \brief Constructeur
*/
function mod_arctic()
@ -54,23 +54,29 @@ class mod_arctic extends ModeleNumRefFicheinter
global $conf,$langs;
$langs->load("bills");
$form = new Form($db);
$texte = $langs->trans('GenericNumRefModelDesc')."<br>\n";
$texte.= '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
$texte.= '<input type="hidden" name="action" value="updateMask">';
$texte.= '<input type="hidden" name="maskconst" value="FICHINTER_ARTIC_MASK">';
$texte.= '<table class="nobordernopadding" width="100%">';
// Parametrage du prefix des factures
$tooltip=$langs->trans("GenericMaskCodes",$langs->transnoentities("InterventionCard"));
$tooltip.=$langs->trans("GenericMaskCodes2");
$tooltip.=$langs->trans("GenericMaskCodes3");
$tooltip.=$langs->trans("GenericMaskCodes4a",$langs->transnoentities("InterventionCard"),$langs->transnoentities("InterventionCard"));
$tooltip.=$langs->trans("GenericMaskCodes5");
// Parametrage du prefix
$texte.= '<tr><td>'.$langs->trans("Mask").':</td>';
$texte.= '<td align="right">'.$form->textwithhelp('<input type="text" class="flat" size="24" name="maskvalue" value="'.$conf->global->FICHINTER_ARTIC_MASK.'">',$langs->trans("GenericMaskCodes",$langs->transnoentities("InterventionCard"),$langs->transnoentities("InterventionCard"),$langs->transnoentities("InterventionCard")),1,1).'</td>';
$texte.= '<td align="right">'.$form->textwithhelp('<input type="text" class="flat" size="24" name="maskvalue" value="'.$conf->global->FICHINTER_ARTIC_MASK.'">',$tooltip,1,1).'</td>';
$texte.= '<td align="left" rowspan="2">&nbsp; <input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button"></td>';
$texte.= '</tr>';
$texte.= '</table>';
$texte.= '</form>';
@ -83,12 +89,12 @@ class mod_arctic extends ModeleNumRefFicheinter
function getExample()
{
global $conf,$langs,$mysoc;
$old_code_client=$mysoc->code_client;
$mysoc->code_client='CCCCCCCCCC';
$numExample = $this->getNextValue($mysoc,'');
$mysoc->code_client=$old_code_client;
if (! $numExample)
{
$numExample = $langs->trans('NotConfigured');
@ -106,22 +112,22 @@ class mod_arctic extends ModeleNumRefFicheinter
global $db,$conf;
require_once(DOL_DOCUMENT_ROOT ."/lib/functions2.lib.php");
// On défini critere recherche compteur
$mask=$conf->global->FICHINTER_ARTIC_MASK;
if (! $mask)
if (! $mask)
{
$this->error='NotConfigured';
return 0;
}
$numFinal=get_next_value($db,$mask,'fichinter','ref','',$objsoc->code_client,$ficheinter->date);
return $numFinal;
}
/** \brief Return next free value
* \param objsoc Object third party
* \param objforref Object for number to search
@ -132,6 +138,6 @@ class mod_arctic extends ModeleNumRefFicheinter
return $this->getNextValue($objsoc,$objforref);
}
}
}
?>

View File

@ -37,8 +37,8 @@ class mod_livraison_saphir extends ModeleNumRefDeliveryOrder
var $version='dolibarr'; // 'development', 'experimental', 'dolibarr'
var $error = '';
var $nom = 'Saphir';
/** \brief Renvoi la description du modele de numerotation
* \return string Texte descripif
*/
@ -47,23 +47,29 @@ class mod_livraison_saphir extends ModeleNumRefDeliveryOrder
global $conf,$langs;
$langs->load("bills");
$form = new Form($db);
$texte = $langs->trans('GenericNumRefModelDesc')."<br>\n";
$texte.= '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
$texte.= '<input type="hidden" name="action" value="updateMask">';
$texte.= '<input type="hidden" name="maskconstdelivery" value="LIVRAISON_SAPHIR_MASK">';
$texte.= '<table class="nobordernopadding" width="100%">';
// Parametrage du prefix des factures
$tooltip=$langs->trans("GenericMaskCodes",$langs->transnoentities("Delivery"));
$tooltip.=$langs->trans("GenericMaskCodes2");
$tooltip.=$langs->trans("GenericMaskCodes3");
$tooltip.=$langs->trans("GenericMaskCodes4a",$langs->transnoentities("Delivery"),$langs->transnoentities("Delivery"));
$tooltip.=$langs->trans("GenericMaskCodes5");
// Parametrage du prefix
$texte.= '<tr><td>'.$langs->trans("Mask").':</td>';
$texte.= '<td align="right">'.$form->textwithhelp('<input type="text" class="flat" size="24" name="maskdelivery" value="'.$conf->global->LIVRAISON_SAPHIR_MASK.'">',$langs->trans("GenericMaskCodes",$langs->transnoentities("Delivery"),$langs->transnoentities("Delivery"),$langs->transnoentities("Delivery")),1,1).'</td>';
$texte.= '<td align="right">'.$form->textwithhelp('<input type="text" class="flat" size="24" name="maskdelivery" value="'.$conf->global->LIVRAISON_SAPHIR_MASK.'">',$tooltip,1,1).'</td>';
$texte.= '<td align="left" rowspan="2">&nbsp; <input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button"></td>';
$texte.= '</tr>';
$texte.= '</table>';
$texte.= '</form>';
@ -76,12 +82,12 @@ class mod_livraison_saphir extends ModeleNumRefDeliveryOrder
function getExample()
{
global $conf,$langs,$mysoc;
$old_code_client=$mysoc->code_client;
$mysoc->code_client='CCCCCCCCCC';
$numExample = $this->getNextValue($mysoc,'');
$mysoc->code_client=$old_code_client;
if (! $numExample)
{
$numExample = $langs->trans('NotConfigured');
@ -100,22 +106,22 @@ class mod_livraison_saphir extends ModeleNumRefDeliveryOrder
global $db,$conf;
require_once(DOL_DOCUMENT_ROOT ."/lib/functions2.lib.php");
// On d<>fini critere recherche compteur
$mask=$conf->global->LIVRAISON_SAPHIR_MASK;
if (! $mask)
if (! $mask)
{
$this->error='NotConfigured';
return 0;
}
$numFinal=get_next_value($db,$mask,'livraison','ref','',$objsoc->code_client,$livraison->date_livraison);
return $numFinal;
}
/** \brief Return next free value
* \param objsoc Object third party
* \param objforref Object for number to search
@ -125,7 +131,7 @@ class mod_livraison_saphir extends ModeleNumRefDeliveryOrder
{
return $this->getNextValue($objsoc,$objforref);
}
/** \brief Renvoie la r<EFBFBD>f<EFBFBD>rence de commande suivante non utilis<EFBFBD>e
* \param objsoc Objet soci<EFBFBD>t<EFBFBD>
@ -136,7 +142,7 @@ class mod_livraison_saphir extends ModeleNumRefDeliveryOrder
{
return $this->getNextValue($objsoc,$livraison);
}
}
}
?>

View File

@ -39,7 +39,7 @@ class mod_propale_saphir extends ModeleNumRefPropales
var $version='dolibarr'; // 'development', 'experimental', 'dolibarr'
var $error = '';
var $nom = 'Saphir';
/** \brief Renvoi la description du modele de numérotation
* \return string Texte descripif
@ -49,23 +49,29 @@ class mod_propale_saphir extends ModeleNumRefPropales
global $conf,$langs;
$langs->load("bills");
$form = new Form($db);
$texte = $langs->trans('GenericNumRefModelDesc')."<br>\n";
$texte.= '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
$texte.= '<input type="hidden" name="action" value="updateMask">';
$texte.= '<input type="hidden" name="maskconstpropal" value="PROPALE_SAPHIR_MASK">';
$texte.= '<table class="nobordernopadding" width="100%">';
// Parametrage du prefix des factures
$tooltip=$langs->trans("GenericMaskCodes",$langs->transnoentities("Proposal"));
$tooltip.=$langs->trans("GenericMaskCodes2");
$tooltip.=$langs->trans("GenericMaskCodes3");
$tooltip.=$langs->trans("GenericMaskCodes4a",$langs->transnoentities("Proposal"),$langs->transnoentities("Proposal"));
$tooltip.=$langs->trans("GenericMaskCodes5");
// Parametrage du prefix
$texte.= '<tr><td>'.$langs->trans("Mask").':</td>';
$texte.= '<td align="right">'.$form->textwithhelp('<input type="text" class="flat" size="24" name="maskpropal" value="'.$conf->global->PROPALE_SAPHIR_MASK.'">',$langs->trans("GenericMaskCodes",$langs->transnoentities("Proposal"),$langs->transnoentities("Proposal"),$langs->transnoentities("Proposal")),1,1).'</td>';
$texte.= '<td align="right">'.$form->textwithhelp('<input type="text" class="flat" size="24" name="maskpropal" value="'.$conf->global->PROPALE_SAPHIR_MASK.'">',$tooltip,1,1).'</td>';
$texte.= '<td align="left" rowspan="2">&nbsp; <input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button"></td>';
$texte.= '</tr>';
$texte.= '</table>';
$texte.= '</form>';
@ -78,12 +84,12 @@ class mod_propale_saphir extends ModeleNumRefPropales
function getExample()
{
global $conf,$langs,$mysoc;
$old_code_client=$mysoc->code_client;
$mysoc->code_client='CCCCCCCCCC';
$numExample = $this->getNextValue($mysoc,'');
$mysoc->code_client=$old_code_client;
if (! $numExample)
{
$numExample = $langs->trans('NotConfigured');
@ -101,20 +107,20 @@ class mod_propale_saphir extends ModeleNumRefPropales
global $db,$conf;
require_once(DOL_DOCUMENT_ROOT ."/lib/functions2.lib.php");
// On défini critere recherche compteur
$mask=$conf->global->PROPALE_SAPHIR_MASK;
if (! $mask)
if (! $mask)
{
$this->error='NotConfigured';
return 0;
}
$numFinal=get_next_value($db,$mask,'propal','ref','',$objsoc->code_client,$propal->date);
return $numFinal;
}
}
}
?>

View File

@ -0,0 +1,285 @@
<?php
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2006-2009 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2007 Regis Houssin <regis@dolibarr.fr>
*
* 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 2 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, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* or see http://www.gnu.org/
*/
/**
* \file htdocs/includes/modules/societe/mod_codeclient_elephant.class.php
* \ingroup societe
* \brief File of class to manage third party code with elephant rule
* \version $Id$
*/
require_once(DOL_DOCUMENT_ROOT."/includes/modules/societe/modules_societe.class.php");
/**
* \class mod_codeclient_elephant
* \brief Class to manage third party code with elephant rule
*/
class mod_codeclient_elephant extends ModeleThirdPartyCode
{
var $nom; // Nom du modele
var $code_modifiable; // Code modifiable
var $code_modifiable_invalide; // Code modifiable si il est invalide
var $code_modifiable_null; // Code modifiables si il est null
var $code_null; // Code facultatif
var $version; // 'development', 'experimental', 'dolibarr'
var $code_auto; // Numerotation automatique
var $searchcode; // String de recherche
var $numbitcounter; // Nombre de chiffres du compteur
var $prefixIsRequired; // Le champ prefix du tiers doit etre renseign<67> quand on utilise {pre}
/** \brief Constructeur classe
*/
function mod_codeclient_elephant()
{
$this->nom = "Elephant";
$this->version = "dolibarr";
$this->code_modifiable = 0;
$this->code_modifiable_invalide = 1;
$this->code_modifiable_null = 1;
$this->code_null = 0;
$this->code_auto = 1;
$this->prefixIsRequired = 0;
}
/** \brief Renvoi la description du module
* \return string Texte descripif
*/
function info($langs)
{
global $conf,$langs;
$langs->load("companies");
$form = new Form($db);
$texte = $langs->trans('GenericNumRefModelDesc')."<br>\n";
$texte.= '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
$texte.= '<input type="hidden" name="action" value="updateMask">';
$texte.= '<input type="hidden" name="maskcustomer" value="COMPANY_ELEPHANT_MASK_CUSTOMER">';
$texte.= '<input type="hidden" name="masksupplier" value="COMPANY_ELEPHANT_MASK_SUPPLIER">';
$texte.= '<table class="nobordernopadding" width="100%">';
$tooltip=$langs->trans("GenericMaskCodes",$langs->transnoentities("ThirdParty"));
//$tooltip.=$langs->trans("GenericMaskCodes2"); Not required for third party numbering
$tooltip.=$langs->trans("GenericMaskCodes3");
$tooltip.=$langs->trans("GenericMaskCodes4b");
$tooltip.=$langs->trans("GenericMaskCodes5");
// Parametrage du prefix customers
$texte.= '<tr><td>'.$langs->trans("Mask").' ('.$langs->trans("CustomerCodeModel").'):</td>';
$texte.= '<td align="right">'.$form->textwithhelp('<input type="text" class="flat" size="24" name="maskcustomer" value="'.$conf->global->COMPANY_ELEPHANT_MASK_CUSTOMER.'">',$tooltip,1,1).'</td>';
$texte.= '<td align="left" rowspan="2">&nbsp; <input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button"></td>';
$texte.= '</tr>';
// Parametrage du prefix suppliers
$texte.= '<tr><td>'.$langs->trans("Mask").' ('.$langs->trans("SupplierCodeModel").'):</td>';
$texte.= '<td align="right">'.$form->textwithhelp('<input type="text" class="flat" size="24" name="masksupplier" value="'.$conf->global->COMPANY_ELEPHANT_MASK_SUPPLIER.'">',$tooltip,1,1).'</td>';
$texte.= '</tr>';
$texte.= '</table>';
$texte.= '</form>';
return $texte;
}
/** \brief Return an example of number value
* \param $type Client ou fournisseur (1:client, 2:fournisseur)
* \return string Texte descripif
*/
function getExample($langs,$objsoc=0,$type=-1)
{
if ($type == 0 || $type == -1)
{
$examplecust = $this->getNextValue($objsoc,0);
if (! $examplecust)
{
$examplecust = $langs->trans('NotConfigured');
}
}
if ($type == 1 || $type == -1)
{
$examplesup = $this->getNextValue($objsoc,1);
if (! $examplesup)
{
$examplesup = $langs->trans('NotConfigured');
}
}
if ($type == 0) return $examplecust;
if ($type == 1) return $examplesup;
return $examplecust.'<br>'.$examplesup;
}
/** \brief Return next value
* \param objsoc Object third party
* \param $type Client ou fournisseur (1:client, 2:fournisseur)
* \return string Value if OK, '' if module not configured, <0 if KO
*/
function getNextValue($objsoc=0,$type=-1)
{
global $db,$conf;
require_once(DOL_DOCUMENT_ROOT ."/lib/functions2.lib.php");
// Get Mask value
$mask = '';
if ($type==0) $mask = $conf->global->COMPANY_ELEPHANT_MASK_CUSTOMER;
if ($type==1) $mask = $conf->global->COMPANY_ELEPHANT_MASK_SUPPLIER;
if (! $mask)
{
$this->error='NotConfigured';
return '';
}
$field='';$where='';
if ($type == 0)
{
$field = 'code_client';
//$where = ' AND client in (1,2)';
}
else if ($type == 1)
{
$field = 'code_fournisseur';
//$where = ' AND fournisseur = 1';
}
else return -1;
$now=gmmktime();
$numFinal=get_next_value($db,$mask,'societe',$field,$where,'',$now);
return $numFinal;
}
/**
* \brief Verifie si le mask utilise le prefix
*
*/
function verif_prefixIsUsed()
{
global $conf;
$mask = $conf->global->COMPANY_ELEPHANT_MASK_CUSTOMER;
if (eregi('\{pre\}',$mask)) return 1;
$mask = $conf->global->COMPANY_ELEPHANT_MASK_SUPPLIER;
if (eregi('\{pre\}',$mask)) return 1;
return 0;
}
/**
* \brief Verifie la validite du code
* \param $db Handler acces base
* \param $code Code a verifier/corriger
* \param $soc Objet societe
* \param $type 0 = client/prospect , 1 = fournisseur
* \return int <0 if KO, 0 if OK
*/
function verif($db, &$code, $soc, $type)
{
global $conf;
require_once(DOL_DOCUMENT_ROOT ."/lib/functions2.lib.php");
$result=0;
$code = strtoupper(trim($code));
if (! $code && $this->code_null)
{
$result=0;
}
else
{
// Get Mask value
$mask = '';
if ($type==0) $mask = $conf->global->COMPANY_ELEPHANT_MASK_CUSTOMER;
if ($type==1) $mask = $conf->global->COMPANY_ELEPHANT_MASK_SUPPLIER;
if (! $mask)
{
$this->error='NotConfigured';
return '';
}
$result=check_value($mask,$code);
}
dolibarr_syslog("mod_codeclient_elephant::verif type=".$type." result=".$result);
return $result;
}
/**
* \brief Renvoi une valeur correcte
* \param $db Handler acces base
* \param $code Code reference eventuel
* \return string Code correct, <0 si KO
*/
function get_correct($db, $code)
{
}
/**
* \brief Renvoi si un code est pris ou non (par autre tiers)
* \param $db Handler acces base
* \param $code Code a verifier
* \param $soc Objet societe
* \return int 0 si dispo, <0 si erreur
*/
function verif_dispo($db, $code, $soc)
{
$sql = "SELECT code_client FROM ".MAIN_DB_PREFIX."societe";
$sql.= " WHERE code_client = '".$code."'";
$sql.= " AND rowid != '".$soc->id."'";
$resql=$db->query($sql);
if ($resql)
{
if ($db->num_rows($resql) == 0)
{
return 0;
}
else
{
return -1;
}
}
else
{
return -2;
}
}
}
?>

View File

@ -17,7 +17,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* or see http://www.gnu.org/
*/
/**
* \file htdocs/includes/modules/societe/mod_codeclient_leopard.class.php
* \ingroup societe
@ -35,7 +35,7 @@ require_once(DOL_DOCUMENT_ROOT."/includes/modules/societe/modules_societe.class.
class mod_codeclient_leopard extends ModeleThirdPartyCode
{
/*
* Attention ce module est utilise par defaut si aucun module n'a
* Attention ce module est utilise par defaut si aucun module n'a
* ete definit dans la configuration
*
* Le fonctionnement de celui-ci doit dont rester le plus ouvert
@ -50,7 +50,7 @@ class mod_codeclient_leopard extends ModeleThirdPartyCode
var $version; // 'development', 'experimental', 'dolibarr'
var $code_auto; // Numerotation automatique
/** \brief Constructeur classe
*/
function mod_codeclient_leopard()
@ -64,17 +64,17 @@ class mod_codeclient_leopard extends ModeleThirdPartyCode
$this->code_auto = 0;
}
/**
* \brief Renvoie la description du module
* \return string Texte descripif
*/
function info($langs)
{
return "Renvoie toujours ok, pour ceux qui ne veulent pas faire de test. Verification mais pas de generation automatique.";
return $langs->trans("LeopardNumRefModelDesc");
}
/**
* \brief V<EFBFBD>rifie la validit<EFBFBD> du code
* \param $db Handler acces base

View File

@ -29,10 +29,10 @@ require_once(DOL_DOCUMENT_ROOT."/includes/modules/societe/modules_societe.class.
/**
\class mod_codeclient_lion
\brief Classe permettant la gestion lion des codes tiers
\class mod_codeclient_monkey
\brief Classe permettant la gestion monkey des codes tiers
*/
class mod_codeclient_lion extends ModeleThirdPartyCode
class mod_codeclient_monkey extends ModeleThirdPartyCode
{
var $nom; // Nom du modele
var $code_modifiable; // Code modifiable
@ -45,10 +45,10 @@ class mod_codeclient_lion extends ModeleThirdPartyCode
/** \brief Constructeur classe
*/
function mod_codeclient_lion()
function mod_codeclient_monkey()
{
$this->nom = "Lion";
$this->version = "dolibarr";
$this->nom = "Monkey";
$this->version = "experimental";
$this->code_modifiable = 0;
$this->code_modifiable_invalide = 1;
$this->code_modifiable_null = 1;
@ -62,7 +62,7 @@ class mod_codeclient_lion extends ModeleThirdPartyCode
*/
function info($langs)
{
return "Verifie si le code client/fournisseur est de la forme numerique 999 et sur au moins 3 chiffres. Verification mais pas de generation automatique.";
return $langs->trans("MonkeyNumRefModelDesc");
}
@ -71,14 +71,14 @@ class mod_codeclient_lion extends ModeleThirdPartyCode
*/
function getExample($langs)
{
return "001";
return "000001";
}
/**
* \brief V<EFBFBD>rifie la validit<EFBFBD> du code
* \brief Verifie la validite du code
* \param $db Handler acces base
* \param $code Code a v<EFBFBD>rifier/corriger
* \param $code Code a verifier/corriger
* \param $soc Objet societe
* \return int <0 si KO, 0 si OK
*/
@ -117,7 +117,7 @@ class mod_codeclient_lion extends ModeleThirdPartyCode
}
}
}
dolibarr_syslog("mod_codeclient_lion::verif result=".$result);
dolibarr_syslog("mod_codeclient_monkey::verif result=".$result);
return $result;
}

View File

@ -1,452 +0,0 @@
<?php
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2006-2007 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2007 Regis Houssin <regis@dolibarr.fr>
*
* 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 2 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, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* or see http://www.gnu.org/
*/
/**
* \file htdocs/includes/modules/societe/mod_codeclient_tigre.class.php
* \ingroup societe
* \brief Fichier de la classe des gestion tigre des codes clients
* \version $Id$
*/
require_once(DOL_DOCUMENT_ROOT."/includes/modules/societe/modules_societe.class.php");
/**
\class mod_codeclient_tigre
\brief Classe permettant la gestion tigre des codes tiers
*/
class mod_codeclient_tigre extends ModeleThirdPartyCode
{
var $nom; // Nom du modele
var $code_modifiable; // Code modifiable
var $code_modifiable_invalide; // Code modifiable si il est invalide
var $code_modifiable_null; // Code modifiables si il est null
var $code_null; // Code facultatif
var $version; // 'development', 'experimental', 'dolibarr'
var $code_auto; // Numerotation automatique
var $searchcode; // String de recherche
var $numbitcounter; // Nombre de chiffres du compteur
var $prefixIsRequired; // Le champ prefix du tiers doit etre renseign<67> quand on utilise {pre}
/** \brief Constructeur classe
*/
function mod_codeclient_tigre()
{
$this->nom = "Tigre";
$this->version = "experimental";
$this->code_modifiable = 0;
$this->code_modifiable_invalide = 1;
$this->code_modifiable_null = 1;
$this->code_null = 0;
$this->code_auto = 1;
$this->prefixIsRequired = 0;
}
/** \brief Renvoi la description du module
* \return string Texte descripif
*/
function info($langs)
{
global $conf,$langs;
$langs->load("companies");
$form = new Form($db);
$texte = $langs->trans('TigreNumRefModelDesc1')."<br>\n";
$texte.= '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
$texte.= '<input type="hidden" name="action" value="updateMask">';
$texte.= '<table class="nobordernopadding" width="100%">';
// Parametrage du masque
$texte.= '<tr><td>'.$langs->trans("CustomerCodeModel").'</td>';
$texte.= '<td align="right">'.$form->textwithhelp('<input type="text" class="flat" size="24" name="maskcustomer" value="'.$conf->global->CODE_TIGRE_MASK_CUSTOMER.'">',$langs->trans("TigreMaskCodes"),1,1).'</td>';
$texte.= '</tr>';
$texte.= '<tr><td>'.$langs->trans("SupplierCodeModel").'</td>';
$texte.= '<td align="right">'.$form->textwithhelp('<input type="text" class="flat" size="24" name="masksupplier" value="'.$conf->global->CODE_TIGRE_MASK_SUPPLIER.'">',$langs->trans("TigreMaskCodes"),1,1).'</td>';
$texte.= '</tr>';
$texte.= '<tr><td>&nbsp;</td><td align="left"><input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button"></td></tr>';
$texte.= '</table>';
$texte.= '</form>';
return $texte;
}
/** \brief Renvoi la description du module
* \param $type Client ou fournisseur (1:client, 2:fournisseur)
* \return string Texte descripif
*/
function getExample($langs,$objsoc=0,$type=-1)
{
if ($type == 0)
{
$example = $this->getNextValue($objsoc,0);
}
else if ($type == 1)
{
$example = $this->getNextValue($objsoc,1);
}
else
{
$example = $this->getNextValue($objsoc,0)."<br>".$this->getNextValue($objsoc,1);
}
return $example;
}
/** \brief Renvoi prochaine valeur attribu<EFBFBD>e
* \param $type Client ou fournisseur (1:client, 2:fournisseur)
* \return string Valeur
*/
function getNextValue($objsoc=0,$type=-1)
{
global $db,$conf;
$mask = $this->buildMask($objsoc,$type);
if ($type == 0)
{
$field = 'code_client';
}
else if ($type == 1)
{
$field = 'code_fournisseur';
}
// On r<>cup<75>re la valeur max (r<>ponse imm<6D>diate car champ ind<6E>x<EFBFBD>)
$posindice = $this->numbitcounter;
$sql = "SELECT MAX(0+SUBSTRING(".$field.",-".$posindice."))";
$sql.= " FROM ".MAIN_DB_PREFIX."societe";
$sql.= " WHERE ".$field." REGEXP '^".$this->searchcode."$'";
$resql=$db->query($sql);
if ($resql)
{
$row = $db->fetch_row($resql);
$max = $row[0];
}
// On applique le nombre de chiffres du compteur
$arg = '%0'.$this->numbitcounter.'s';
$num = sprintf($arg,$max+1);
$mask = eregi_replace('\{0+\}',$num,$mask);
dolibarr_syslog("mod_codeclient_tigre::getNextValue return ".$mask);
return $mask;
}
/** \brief Construction du masque de num<EFBFBD>rotation
* \param objsoc Objet soci<EFBFBD>t<EFBFBD>
* \param $type Client ou fournisseur (1:client, 2:fournisseur)
* \return string Valeur
*/
function buildMask($objsoc=0,$type=-1)
{
global $conf;
if ($type==0)
{
$mask = $conf->global->CODE_TIGRE_MASK_CUSTOMER;
}
else if ($type==1)
{
$mask = $conf->global->CODE_TIGRE_MASK_SUPPLIER;
}
$maskElement = preg_split('/[|]{1}/', $mask);
$foundCounter = 0;
$substrBegin = 0;
$substrEnd = 0;
$maskRebuild = '';
$error = 0;
$this->searchcode = '';
for ($i = 0; $i < count($maskElement); $i++)
{
// Ajout du jour en cours
if ($maskElement[$i] == '{dd}')
{
$maskRebuild .= strftime("%d",time());
$this->searchcode .= '([0-9]{2})';
}
else if (eregi('\{d+\}',$maskElement[$i]) && (eregi('\{d+\}',$$maskElement[$i]) != '{dd}'))
{
$error++;
}
// Ajout du mois en cours
if ($maskElement[$i] == '{mm}')
{
$maskRebuild .= strftime("%m",time());
$this->searchcode .= '([0-9]{2})';
}
else if (eregi('\{m+\}',$maskElement[$i]) && (eregi('\{m+\}',$maskElement[$i]) != '{mm}'))
{
$error++;
}
// Ajout de l'ann<6E>e en cours
if ($maskElement[$i] == '{aa}')
{
$maskRebuild .= substr(strftime("%Y",time()),2);
$this->searchcode .= '([0-9]{2})';
}
else if ($maskElement[$i] == '{aaaa}')
{
$maskRebuild .= strftime("%Y",time());
$this->searchcode .= '([0-9]{4})';
}
else if (eregi('\{a+\}',$maskElement[$i]) && ((eregi('\{a+\}',$maskElement[$i]) != '{aa}') || (eregi('\{a+\}',$maskElement[$i]) != '{aaa}')))
{
$error++;
}
// Ajout du pr<70>fix de la soci<63>t<EFBFBD>
if (is_object($objsoc) && $objsoc->prefix_comm && $maskElement[$i] == '{pre}')
{
if ((!$objsoc->fournisseur && !$objsoc->code_fournisseur) || (!$objsoc->client && !$objsoc->code_client))
{
$maskRebuild .= strtoupper($objsoc->prefix_comm);
$this->searchcode .= '([0-9A-Z]{1,})';
}
else
{
$maskRebuild .= 'ABC';
$this->searchcode .= '([0-9A-Z]{1,})';
}
}
else if (is_object($objsoc) && !$objsoc->prefix_comm && $maskElement[$i] == '{pre}')
{
$maskRebuild .= 'ABC';
$error++;
$this->prefixIsRequired = 1;
}
else if (!is_object($objsoc) && $maskElement[$i] == '{pre}')
{
if (is_string($objsoc) && $objsoc)
{
$maskRebuild .= $objsoc;
$this->searchcode .= '([0-9A-Z]{1,})';
}
else if ($objsoc === 0)
{
$maskRebuild .= 'ABC';
$this->searchcode .= '([0-9A-Z]{1,})';
}
else
{
$error++;
$this->prefixIsRequired = 1;
}
}
// Ajout des s<>parateurs <20>ventuels : \ / -
if (eregi('[\/-]{1}',$maskElement[$i]))
{
$maskRebuild .= $maskElement[$i];
$this->searchcode .= '([\/-]{1})';
}
else if (eregi('[\/-]{2,}',$maskElement[$i]))
{
$error++;
}
// Ajout des champs libres <20>ventuels
if (eregi('^[0-9A-Z]+$',$maskElement[$i]))
{
$maskRebuild .= strtoupper($maskElement[$i]);
$this->searchcode .= '([0-9A-Z]+)';
}
// D<>finition du compteur
if (eregi('\{0+\}',$maskElement[$i]))
{
// D<>fini le nombre de chiffres du compteur
$this->numbitcounter = strlen(substr($maskElement[$i],1,-1));
// Permettra d'effectuer une recherche dans la table
$this->searchcode .= '([0-9]{'.$this->numbitcounter.'})';
$maskRebuild .= $maskElement[$i];
$foundCounter = 1;
}
else if ($i == count($maskElement) && !eregi('\{0+\}',$maskElement[$i]) && $foundCounter == 0)
{
$error++;
}
}
return $maskRebuild;
}
/**
* \brief V<EFBFBD>rifie si le mask utilise le pr<EFBFBD>fix
*
*/
function verif_prefixIsUsed()
{
global $conf;
$mask = $conf->global->CODE_TIGRE_MASK_CUSTOMER;
if (eregi('\{pre\}',$mask)) return 1;
$mask = $conf->global->CODE_TIGRE_MASK_SUPPLIER;
if (eregi('\{pre\}',$mask)) return 1;
return 0;
}
/**
* \brief V<EFBFBD>rifie la validit<EFBFBD> du code
* \param $db Handler acces base
* \param $code Code a v<EFBFBD>rifier/corriger
* \param $soc Objet societe
* \param $type 0 = client/prospect , 1 = fournisseur
* \return int <0 si KO, 0 si OK
*/
function verif($db, &$code, $soc, $type)
{
$result=0;
$code = strtoupper(trim($code));
if (! $code && $this->code_null)
{
$result=0;
}
else
{
if ($this->verif_syntax($code) >= 0)
{
$is_dispo = $this->verif_dispo($db, $code, $soc);
if ($is_dispo <> 0)
{
$result=-3;
}
else if ($type == 0 && $soc->prefixCustomerIsRequired && !$soc->prefix_comm)
{
$result=-4;
}
else if ($type == 1 && $soc->prefixSupplierIsRequired && !$soc->prefix_comm)
{
$result=-5;
}
else
{
$result=0;
}
}
else
{
if (strlen($code) == 0)
{
$result=-2;
}
else
{
$result=-1;
}
}
}
dolibarr_syslog("mod_codeclient_tigre::verif result=".$result);
return $result;
}
/**
* \brief Renvoi une valeur correcte
* \param $db Handler acces base
* \param $code Code reference eventuel
* \return string Code correct, <0 si KO
*/
function get_correct($db, $code)
{
}
/**
* \brief Renvoi si un code est pris ou non (par autre tiers)
* \param $db Handler acces base
* \param $code Code a verifier
* \param $soc Objet societe
* \return int 0 si dispo, <0 si erreur
*/
function verif_dispo($db, $code, $soc)
{
$sql = "SELECT code_client FROM ".MAIN_DB_PREFIX."societe";
$sql.= " WHERE code_client = '".$code."'";
$sql.= " AND rowid != '".$soc->id."'";
$resql=$db->query($sql);
if ($resql)
{
if ($db->num_rows($resql) == 0)
{
return 0;
}
else
{
return -1;
}
}
else
{
return -2;
}
}
/**
* \brief Renvoi si un code respecte la syntaxe
* \param $code Code a verifier
* \return int 0 si OK, <0 si KO
*/
function verif_syntax($code)
{
$res = 0;
return $res;
}
/**
* Renvoi 0 si numerique, sinon renvoi nb de car non numerique
*/
function is_num($str)
{
$ok = 0;
return $ok;
}
}
?>

View File

@ -1,270 +0,0 @@
<?php
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2006-2007 Laurent Destailleur <eldy@users.sourceforge.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 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, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* or see http://www.gnu.org/
*/
/**
* \file htdocs/includes/modules/societe/mod_codeclient_zebre.class.php
* \ingroup societe
* \brief Fichier de la classe des gestion zebre des codes clients
* \version $Id$
*/
require_once(DOL_DOCUMENT_ROOT."/includes/modules/societe/modules_societe.class.php");
/**
\class mod_codeclient_zebre
\brief Classe permettant la gestion zebre des codes tiers
*/
class mod_codeclient_zebre extends ModeleThirdPartyCode
{
var $nom; // Nom du modele
var $code_modifiable; // Can be changed if valid
var $code_modifiable_invalide; // Can be changed if not valid
var $code_modifiable_null; // Can be changed if not defined
var $code_null; // Can be undefined
var $version; // 'development', 'experimental', 'dolibarr'
var $code_auto; // Numerotation automatique
/** \brief Constructeur classe
*/
function mod_codeclient_zebre()
{
$this->nom = "Zebre";
$this->version = "dolibarr";
$this->code_modifiable = 0; // Can be changed if valid
$this->code_modifiable_invalide = 1; // Can be changed if not valid
$this->code_modifiable_null = 1; // Can be changed if not defined
$this->code_null = 0; // Can be undefined
$this->code_auto = 0;
}
/**
* \brief Renvoie la description du module
* \return string Texte descripif
*/
function info($langs)
{
return "Verifie si le code client/fournisseur est de la forme CCCC9999. Les quatres premieres lettres etant une representation mnemotechnique, suivi du code postal en 2 chiffres et un numero d'ordre pour la prise en compte des doublons. Verification mais pas de generation automatique.";
}
/** \brief Renvoi la description du module
* \return string Texte descripif
*/
function getExample($langs)
{
return "ABCD7501";
}
/**
* \brief V<EFBFBD>rifie la validit<EFBFBD> du code
* \param $db Handler acces base
* \param $code Code a v<EFBFBD>rifier/corriger
* \param $soc Objet societe
* \return int <0 si KO, 0 si OK
*/
function verif($db, &$code, $soc)
{
$result=0;
$code = strtoupper(trim($code));
if (! $code && $this->code_null)
{
$result=0;
}
else
{
if ($this->verif_syntax($code) == 0)
{
$i = 1;
$is_dispo = $this->verif_dispo($db, $code, $soc);
while ($is_dispo <> 0 && $i < 99)
{
$arr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$code = substr($code,0,6) . substr("00".$i, -2);
$is_dispo = $this->verif_dispo($db, $code, $soc);
$i++;
}
if ($is_dispo <> 0)
{
$result=-3;
}
}
else
{
if (strlen(trim($code)) == 0)
{
$result=-2;
}
else
{
$result=-1;
}
}
}
dolibarr_syslog("mod_codeclient_zebre::verif result=".$result);
return $result;
}
/**
* \brief Renvoi une valeur correcte
* \param $db Handler acces base
* \param $code Code reference eventuel
* \return string Code correct, <0 si KO
*/
function get_correct($db, $code)
{
if ($this->verif_syntax($code) == 0)
{
$i = 1;
$is_dispo = $this->verif_dispo($db, $code, $soc);
while ( $is_dispo <> 0 && $i < 99)
{
$arr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$code = substr($code,0,6) . substr("00".$i, -2);
$is_dispo = $this->verif_dispo($db, $code, $soc);
$i++;
}
return $is_dispo;
}
else
{
return -1;
}
}
/**
* \brief Renvoi si un code est pris ou non (par autre tiers)
* \param $db Handler acces base
* \param $code Code a verifier
* \param $soc Objet societe
* \return int 0 si dispo, <0 si erreur
*/
function verif_dispo($db, $code, $soc)
{
$sql = "SELECT code_client FROM ".MAIN_DB_PREFIX."societe";
$sql.= " WHERE code_client = '".$code."'";
$sql.= " AND rowid != '".$soc->id."'";
$resql=$db->query($sql);
if ($resql)
{
if ($db->num_rows($resql) == 0)
{
return 0;
}
else
{
return -1;
}
}
else
{
return -2;
}
}
/**
* \brief Renvoi si un code respecte la syntaxe
* \param $code Code a verifier
* \return int 0 si OK, <0 si KO
*/
function verif_syntax(&$code)
{
$res = 0;
if (strlen($code) <> 8)
{
$res = -1;
}
else
{
if ($this->is_alpha(substr($code,0,4)) == 0 && $this->is_num(substr($code,4,4)) == 0 )
{
$res = 0;
}
else
{
$res = -2;
}
}
return $res;
}
function is_alpha($str)
{
$ok = 0;
// Je n'ai pas trouv<75> de fonction pour tester une chaine alpha sans les caract<63>re accentu<74>s
// dommage
$alpha = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
for ($i = 0 ; $i < 4 ; $i++)
{
if (strpos($alpha, substr($str,$i, 1)) === false)
{
$ok++;
}
}
return $ok;
}
function is_num($str)
{
$ok = 0;
$alpha = '0123456789';
for ($i = 0 ; $i < 4 ; $i++)
{
if (strpos($alpha, substr($str,$i, 1)) === false)
{
$ok++;
}
}
return $ok;
}
}
?>

View File

@ -1,6 +1,6 @@
<?php
/* Copyright (C) 2003-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2007 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2004-2009 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com>
* Copyright (C) 2005-2007 Regis Houssin <regis@dolibarr.fr>
*
@ -81,7 +81,7 @@ class ModeleThirdPartyCode
return $langs->trans("NotAvailable");
}
/** \brief Renvoi version du module numerotation
* \return string Valeur
*/
@ -94,9 +94,9 @@ class ModeleThirdPartyCode
if ($this->version == 'experimental') return $langs->trans("VersionExperimental");
if ($this->version == 'dolibarr') return DOL_VERSION;
return $langs->trans("NotAvailable");
}
}
/**
/**
* \brief Renvoi la liste des modèles actifs
* \param db Handler de base
*/
@ -104,7 +104,7 @@ class ModeleThirdPartyCode
{
$liste=array();
$sql ="";
$resql = $db->query($sql);
if ($resql)
{
@ -124,7 +124,7 @@ class ModeleThirdPartyCode
return $liste;
}
/**
/**
* \brief Return description of module parameters
* \param langs Output language
* \param soc Third party object
@ -134,20 +134,22 @@ class ModeleThirdPartyCode
function getToolTip($langs,$soc,$type)
{
$s='';
$s.=$langs->trans("Name").': <b>'.$this->nom.'</b><br>';
$s.=$langs->trans("Version").': <b>'.$this->getVersion().'</b><br>';
if ($type == 0) $s.=$langs->trans("CustomerCodeDesc").'<br>';
if ($type == 1) $s.=$langs->trans("SupplierCodeDesc").'<br>';
if ($type != -1) $s.=$langs->trans("ValidityControledByModule").': <b>'.$this->getNom($langs).'</b><br>';
$s.='<br>';
$s.='<u>'.$langs->trans("ThisIsModuleRules").'</u>:<br>';
if ($type == 0) $s.=$langs->trans("RequiredIfCustomer").': <b>'.yn(!$this->code_null).'</b><br>';
if ($type == 1) $s.=$langs->trans("RequiredIfSupplier").': <b>'.yn(!$this->code_null).'</b><br>';
if ($type == -1) $s.=$langs->trans("Required").': <b>'.yn(!$this->code_null).'</b><br>';
$s.=$langs->trans("CanBeModifiedIfOk").': <b>'.yn($this->code_modifiable).'</b><br>';
$s.=$langs->trans("CanBeModifiedIfKo").': <b>'.yn($this->code_modifiable_invalide).'</b><br>';
$s.=$langs->trans("AutomaticCode").': <b>'.yn($this->code_auto).'</b><br>';
if ($type == 0) $s.=$langs->trans("Example").': <b>'.$this->getExample($langs,$soc,0).'</b>';
if ($type == 1) $s.=$langs->trans("Example").': <b>'.$this->getExample($langs,$soc,1).'</b>';
$s.='<u>'.$langs->trans("ThisIsModuleRules").':</u><br>';
if ($type == 0) $s.=$langs->trans("RequiredIfCustomer").': '.yn(!$this->code_null,1,1).'<br>';
if ($type == 1) $s.=$langs->trans("RequiredIfSupplier").': '.yn(!$this->code_null,1,1).'<br>';
if ($type == -1) $s.=$langs->trans("Required").': '.yn(!$this->code_null,1,1).'<br>';
$s.=$langs->trans("CanBeModifiedIfOk").': '.yn($this->code_modifiable,1,1).'<br>';
$s.=$langs->trans("CanBeModifiedIfKo").': '.yn($this->code_modifiable_invalide,1,1).'<br>';
$s.=$langs->trans("AutomaticCode").': '.yn($this->code_auto,1,1).'<br>';
$s.='<br>';
if ($type == 0 || $type == -1) $s.=$langs->trans("NextValue").': <b>'.$this->getExample($langs,$soc,0).'</b><br>';
if ($type == 1 || $type == -1) $s.=$langs->trans("NextValue").': <b>'.$this->getExample($langs,$soc,1).'</b>';
return $s;
}
}

View File

@ -38,7 +38,7 @@ class mod_commande_fournisseur_orchidee extends ModeleNumRefSuppliersOrders
var $version='dolibarr'; // 'development', 'experimental', 'dolibarr'
var $error = '';
var $nom = 'Orchidee';
/** \brief Renvoi la description du modele de numérotation
* \return string Texte descripif
@ -49,23 +49,29 @@ class mod_commande_fournisseur_orchidee extends ModeleNumRefSuppliersOrders
$langs->load("bills");
$langs->load("admin");
$form = new Form($db);
$texte = $langs->trans('GenericNumRefModelDesc')."<br>\n";
$texte.= '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
$texte.= '<input type="hidden" name="action" value="updateMask">';
$texte.= '<input type="hidden" name="maskconstorder" value="COMMANDE_FOURNISSEUR_ORCHIDEE_MASK">';
$texte.= '<table class="nobordernopadding" width="100%">';
// Parametrage du prefix des factures
$tooltip=$langs->trans("GenericMaskCodes",$langs->transnoentities("Order"));
$tooltip.=$langs->trans("GenericMaskCodes2");
$tooltip.=$langs->trans("GenericMaskCodes3");
$tooltip.=$langs->trans("GenericMaskCodes4a",$langs->transnoentities("Order"),$langs->transnoentities("Order"));
$tooltip.=$langs->trans("GenericMaskCodes5");
// Parametrage du prefix
$texte.= '<tr><td>'.$langs->trans("Mask").':</td>';
$texte.= '<td align="right">'.$form->textwithhelp('<input type="text" class="flat" size="24" name="maskorder" value="'.$conf->global->COMMANDE_FOURNISSEUR_ORCHIDEE_MASK.'">',$langs->trans("GenericMaskCodes",$langs->transnoentities("Order"),$langs->transnoentities("Order"),$langs->transnoentities("Order")),1,1).'</td>';
$texte.= '<td align="right">'.$form->textwithhelp('<input type="text" class="flat" size="24" name="maskorder" value="'.$conf->global->COMMANDE_FOURNISSEUR_ORCHIDEE_MASK.'">',$tooltip,1,1).'</td>';
$texte.= '<td align="left" rowspan="2">&nbsp; <input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button"></td>';
$texte.= '</tr>';
$texte.= '</table>';
$texte.= '</form>';
@ -78,12 +84,12 @@ class mod_commande_fournisseur_orchidee extends ModeleNumRefSuppliersOrders
function getExample()
{
global $conf,$langs,$mysoc;
$old_code_client=$mysoc->code_client;
$mysoc->code_client='CCCCCCCCCC';
$numExample = $this->getNextValue($mysoc,'');
$mysoc->code_client=$old_code_client;
if (! $numExample)
{
$numExample = $langs->trans('NotConfigured');
@ -101,22 +107,22 @@ class mod_commande_fournisseur_orchidee extends ModeleNumRefSuppliersOrders
global $db,$conf;
require_once(DOL_DOCUMENT_ROOT ."/lib/functions2.lib.php");
// On défini critere recherche compteur
$mask=$conf->global->COMMANDE_FOURNISSEUR_ORCHIDEE_MASK;
if (! $mask)
if (! $mask)
{
$this->error='NotConfigured';
return 0;
}
$numFinal=get_next_value($db,$mask,'commande_fournisseur','ref','',$objsoc->code_client,$commande->date_commande);
return $numFinal;
}
/** \brief Renvoie la référence de commande suivante non utilisée
* \param objsoc Objet société
* \param commande Objet commande
@ -126,6 +132,6 @@ class mod_commande_fournisseur_orchidee extends ModeleNumRefSuppliersOrders
{
return $this->getNextValue($objsoc,$commande);
}
}
}
?>

View File

@ -205,7 +205,7 @@ SetupIsReadyForUse = La instal·lació ha finalitzat i Dolibarr està disponible
CurrentVersion = Versió actual de Dolibarr
CallUpdatePage = Trucar a la pàgina d'actualització de l'estructura i dades de la base de dades %s.
LastStableVersion = Última versió estable
GenericMaskCodes = Podeu introduir qualsevol màscara numèrica. En aquesta màscara, pot utilitzar les següents etiquetes: <br> <b> (000000) </b> correspon a un nombre que s'incrementa en cadascun %s. Introduïu tants zeros com longuitud desitgi mostrar. El comptador es completarà a partir de zeros per l'esquerra per tal de tenir tants zeros com la màscara. <br> <b> 000.000 (000) </b> Igual que l'anterior, amb una compensació corresponent al número a la dreta del signe + s'aplica a partir del primer %s. <br> <b> (000000) @ x </b> igual que l'anterior, però el comptador es restableix a zero quan s'arriba a x mesos (x entre 1 i 12). Si aquesta opció s'utilitza i x és de 2 o superior, llavors la seqüència () (aa mm) (o) (aaaa) mm també és necessària. <br> <b> dd () </b> dies (01 a 31). <br> <b> mm () </ b> mes (01 a 12). <br> <b> yy () </ b>, <b> (aaaa) </ b> o <b> (i) </ b> de més de 2 anys, 4 o l'1 de números. <br> <b> cccc000 () </b> el codi de client en n caràcters seguits d'una ref. client sense offset i 0 al comptador global. <br> Tots els altres caràcters de la màscara es mantindran intactes. <br> No es permeten espais. <br> <u> exemple, en la 99 % s del tercer de l'empresa dóna 31.01.2007: </u> <br> <b> ABC yy () (mm) - (000000) < /b> donarà <b> ABC0701-000099 </b> <br> <b> 0000 (100)-ZZZ/() dd / XXX </b> donarà <b> 0199-ZZZ/31/XXX </b ><br>
GenericMaskCodes =
GenericNumRefModelDesc = Retorna un nombre creat d'acord amb una màscara definida.
ServerAvailableOnIPOrPort = Servidor disponible a l'adreça <b>%s</b> al port <b>%s</b>
ServerNotAvailableOnIPOrPort = Servidor no disponible en l'adreça <b>%s</b> al port <b>%s</b>

View File

@ -217,7 +217,7 @@ SetupIsReadyForUse=Installer er færdig og Dolibarr er klar til brug med denne n
CurrentVersion=Dolibarr aktuelle version
CallUpdatePage=Gå til den side, der opdaterer database struktur og oplysningerne% s.
LastStableVersion=Seneste stabile version
GenericMaskCodes=Du kan indtaste et hvilket som helst nummerressourcer maske. I denne maske, Følgende tags kan bruges: <br> <b>(000000)</b> svarer til et nummer, der skal øges for hver% s. Angiv så mange nuller som den ønskede længde på tælleren. Tælleren vil blive suppleret af nuller fra venstre for at få så mange nuller som maske. <br> <b>(000000 +000)</b> samme som tidligere, men en offset svarende til antallet til højre for tegnet + anvendes starter den første% s. <br> <b>(000000 @ x)</b> samme som tidligere, men tælleren er nulstillet når måned x er nået (x mellem 1 og 12). Hvis denne indstilling er anvendt, og x er 2 eller højere, så SEQUENCE (yy) (mm) eller (ÅÅÅÅ) (mm) er også påkrævet. <br> <b>(dd)</b> dag (01 til 31). <br> <b>(mm)</b> måned (01 til 12). <br> <b>(yy), (ÅÅÅÅ)</b> eller <b>(y)</b> år over 2, 4 eller 1 numre. <br> <b>(cccc000)</b> kunden kode på n tegn efterfulgt af en klients ref counter uden kompensation og zeroized whith den globale counter. <br><br> Alle andre tegn i maske vil forblive intakt. <br> Mellemrum er ikke tilladt. <br><br> <u>Eksempel på 99.% s af den tredje part TheCompany gjort 31/01/2007:</u> <br> <b>ABC (yy) (mm) - (000000)</b> vil give <b>ABC0701-000099</b> <br> <b>(0000 +100)-ZZZ / (dd) / XXX</b> vil give <b>0199-ZZZ/31/XXX</b> <br>
GenericMaskCodes=
GenericNumRefModelDesc=Retur en tilpasselig antal henhold til en bestemt maske.
ServerAvailableOnIPOrPort=Server findes på <b>adressen% s port% s</b>
ServerNotAvailableOnIPOrPort=Serveren er ikke tilgængelig på <b>adressen% s port% s</b>

View File

@ -215,7 +215,7 @@ SetupIsReadyForUse=Installation abgeschlossen ist und Dolibarr ist bereit für d
CurrentVersion=Dolibarr aktuelle Version
CallUpdatePage=Gehen Sie zu der Seite, dass Updates der Datenbankstruktur und der Daten% s.
LastStableVersion=Letzte stabile Version
GenericMaskCodes=Sie können alle Nummern Maske. In dieser Maske, die folgende Tags verwendet werden können: <br> <b>(000000)</b> entspricht einer Zahl, die erhöht auf jedem% s. Geben Sie so viele Nullen, wie die gewünschte Länge des Zählers. Der Zähler wird durch Nullen ergänzt werden, von der linken Seite, um so viele Nullen, wie die Maske. <br> <b>(000000 +000)</b> wie oben, sondern ein Ausgleich entsprechend der Zahl auf der rechten Seite das +-Zeichen wird ab dem ersten% s. <br> <b>@ X (000000)</b> wie oben, aber der Zähler auf Null zurückgesetzt, wenn Monat x erreicht ist (x zwischen 1 und 12). Wenn diese Option verwendet wird, und x ist 2 oder höher, dann SEQUENCE (yy) (mm) oder (JJJJ) (mm) ist ebenfalls erforderlich. <br> <b>tt ()</b> Tag (01 bis 31). <br> <b>() mm</b> Monat (01 bis 12). <br> <b>yy (), (JJJJ)</b> oder <b>(y)</b> Jahr über 2, 4 oder 1-Nummern. <br> <b>() cccc000</b> den Client-Code auf n-Zeichen, gefolgt von einem Client-ref Zähler ohne Offset-und zeroized whith der globalen Zähler. <br><br> Alle anderen Zeichen in der Maske bleiben. <br> Leerzeichen sind nicht zulässig. <br><br> <u>Beispiel auf der 99.% s des Dritten TheCompany getan 31/01/2007:</u> <br> <b>ABC (yy) (mm) - (000000)</b> wird <b>ABC0701-000099</b> <br> <b>(0000 +100)-ZZZ / tt () / XXX</b> wird <b>0199-ZZZ/31/XXX</b> <br>
GenericMaskCodes=
GenericNumRefModelDesc=Zurück eine anpassbare Zahl nach einem definierten Maske.
ServerAvailableOnIPOrPort=Server ist verfügbar unter der <b>Adresse% s</b> auf <b>Port% s</b>
ServerNotAvailableOnIPOrPort=Server nicht verfügbar ist unter der <b>Adresse% s</b> auf <b>Port% s</b>

View File

@ -206,7 +206,12 @@ SetupIsReadyForUse=Install is finished and Dolibarr is ready to use with this ne
CurrentVersion=Dolibarr current version
CallUpdatePage=Go to the page that updates database structure and datas %s.
LastStableVersion=Last stable version
GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:<br><b>{000000}</b> corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask. <br><b>{000000+000}</b> same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s. <br><b>{000000@x}</b> same as previous but the counter is reset to zero when month x is reached (x between 1 and 12). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required. <br><b>{dd}</b> day (01 to 31).<br><b>{mm}</b> month (01 to 12).<br><b>{yy}</b>, <b>{yyyy}</b> or <b>{y}</b> year over 2, 4 or 1 numbers. <br> <b>{cccc000}</b> the client code on n characters followed by a client's ref counter without offset and zeroized whith the global counter.<br><br>All other characters in the mask will remain intact.<br>Spaces are not allowed.<br><br><u>Example on the 99th %s of the third party TheCompany done 31/01/2007:</u><br><b>ABC{yy}{mm}-{000000}</b> will give <b>ABC0701-000099</b><br><b>{0000+100}-ZZZ/{dd}/XXX</b> will give <b>0199-ZZZ/31/XXX</b><br>
GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:<br><b>{000000}</b> corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask. <br><b>{000000+000}</b> same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s. <br><b>{000000@x}</b> same as previous but the counter is reset to zero when month x is reached (x between 1 and 12). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required. <br><b>{dd}</b> day (01 to 31).<br><b>{mm}</b> month (01 to 12).<br><b>{yy}</b>, <b>{yyyy}</b> or <b>{y}</b> year over 2, 4 or 1 numbers. <br>
GenericMaskCodes2=<b>{cccc}</b> the client code<br><b>{cccc000}</b> the client code on n characters is followed by a client's ref counter without offset and zeroized whith the global counter.<br>
GenericMaskCodes3=All other characters in the mask will remain intact.<br>Spaces are not allowed.<br>
GenericMaskCodes4a=<u>Example on the 99th %s of the third party TheCompany done 2007-01-31:</u><br>
GenericMaskCodes4b=<u>Example on third party created on 2007-03-01:</u><br>
GenericMaskCodes5=<b>ABC{yy}{mm}-{000000}</b> will give <b>ABC0701-000099</b><br><b>{0000+100}-ZZZ/{dd}/XXX</b> will give <b>0199-ZZZ/31/XXX</b>
GenericNumRefModelDesc=Return a customizable number according to a defined mask.
ServerAvailableOnIPOrPort=Server is available at address <b>%s</b> on port <b>%s</b>
ServerNotAvailableOnIPOrPort=Server is not available at address <b>%s</b> on port <b>%s</b>

View File

@ -258,5 +258,7 @@ AutomaticallyGenerated=Automatically generated
FiscalYearInformation=Information on the fiscal year
FiscalMonthStart=Starting month of the fiscal year
# Tigre
TigreNumRefModelDesc1=Return a customizable customer/supplier number according to a defined mask.
# Monkey
MonkeyNumRefModelDesc=Check that customer/supplier code contains 6 numbers.
# Leopard
LeopardNumRefModelDesc=Customer/supplier code is free. This code can be modified at any time.

View File

@ -205,7 +205,7 @@ SetupIsReadyForUse = La instalación ha finalizado y Dolibarr está disponible c
CurrentVersion = Versión actual de Dolibarr
CallUpdatePage = Llamar a la página de actualización de la estructura y datos de la base de datos %s.
LastStableVersion = Última versión estable
GenericMaskCodes = Puede introducir cualquier máscara numérica. En esta máscara, puede utilizar las siguientes etiquetas:<br><b>{000000} </b> corresponde a un número que se incrementa en cada uno de %s. Introduzca tantos ceros como longuitud desee mostrar. El contador se completará a partir de ceros por la izquierda con el fin de tener tantos ceros como la máscara. <br> <b> 000.000 (000) </ b> Igual que el anterior, con una compensación correspondiente al número a la derecha del signo + se aplica a partir del primer %s. <br> <b> (000000) @ x </b> igual que el anterior, pero el contador se restablece a cero cuando se llega a x meses (x entre 1 y 12). Si esta opción se utiliza y x es de 2 o superior, entonces la secuencia () (aa mm) (o) (aaaa) mm también es necesaria. <br> <b> dd () </ b> días (01 a 31). <br> <b> mm () </ b> mes (01 a 12). <br> <b> yy () < / b>, <b> (aaaa) </ b> o <b> (y) </ b> de más de 2 años, 4 o el 1 de números. <br> <b> cccc000 () </ b> el código de cliente en n caracteres seguidos de una ref. cliente sin offset y a 0 en el contador global. <br> <br> Todos los demás caracteres de la máscara se mantendrán intactos. <br> No se permiten espacios. <br> <br> <u> ejemplo, en la 99 %s del tercero de la empresa da 31/01/2007: </ u> <br> <b> ABC yy () ( mm) - (000000) </ b> dará <b> ABC0701-000099 </ b> <br> <b> 0000 (100)-ZZZ / () dd / XXX </ b> dará <b> 0199-ZZZ/31/XXX </ b> <br>
GenericMaskCodes =
GenericNumRefModelDesc = Devuelve un número creado acorde a una máscara definida.
ServerAvailableOnIPOrPort = Servidor disponible en la dirección <b>%s</b> en el puerto <b>%s</b>
ServerNotAvailableOnIPOrPort = Servidor no disponible en la dirección <b>%s</b> en el puerto <b>%s</b>

View File

@ -215,7 +215,7 @@ SetupIsReadyForUse=Asenna on päättynyt ja Dolibarr on valmis käyttämään t
CurrentVersion=Dolibarr nykyinen versio
CallUpdatePage=Siirry sivun päivitykset tietokannan rakennetta ja datas% s.
LastStableVersion=Viimeisin vakaa versio
GenericMaskCodes=Voit kirjoittaa minkä tahansa numerointiin mask. Tässä mask, seuraavia koodeja voidaan käyttää: <br> <b>(000000)</b> vastaa numero, jonka on kasvatettu kunkin% s. Kirjoita niin monta nollaa kuin toivottu pituus vastatakaus. Laskuri on täydennettävä nollilla vasemmalta, jotta on niin monta nollaa kuin peittää. <br> <b>(000000 +000)</b> sama kuin edellinen, mutta offset vastaa numeron oikealla puolella olevaa plusmerkkiä sovelletaan alkaa ensimmäiset% s. <br> <b>(000000 @ x)</b> sama kuin edellinen, mutta nollautuu nollaan, kun kuukausi x on saavutettu (x välillä 1 ja 12). Jos tämä vaihtoehto on käytössä, ja x on 2 tai enemmän, sitten järjestyksessä (yy) (mm) tai (vvvv) (mm) on myös tarpeen. <br> <b>(dd)</b> vrk (01-31). <br> <b>(mm)</b> kk (01-12). <br> <b>(yy), (vvvv)</b> tai <b>(y)</b> vuodessa yli 2, 4 tai 1-numerot. <br> <b>(cccc000)</b> asiakkaan koodi n merkkiä seuraa asiakkaan ref counter ilman tasoitusta ja zeroized whith maailmanlaajuisen laskuri. <br><br> Kaikki muut merkit ja maski pysyy ennallaan. <br> Välilyönnit eivät ole sallittuja. <br><br> <u>Esimerkki on 99% s on kolmannen osapuolen TheCompany tehnyt 31/01/2007:</u> <br> <b>ABC (yy) (mm) - (000000)</b> antaa <b>ABC0701-000099</b> <br> <b>(0000 +100)-ZZZ / (dd) / XXX</b> antaa <b>0199-ZZZ/31/XXX</b> <br>
GenericMaskCodes=
GenericNumRefModelDesc=Paluu mukautettavan numeron mukaan määritelty mask.
ServerAvailableOnIPOrPort=Server on saatavilla <b>osoitteessa% s satama% s</b>
ServerNotAvailableOnIPOrPort=Palvelin ei ole käytettävissä <b>osoitteessa% s satama% s</b>

View File

@ -205,7 +205,12 @@ SetupIsReadyForUse=L'installation est terminée et Dolibarr est prêt à être u
CurrentVersion=Version en cours de Dolibarr
CallUpdatePage=Appeler la page de mise a jour de la structure et données de la base %s.
LastStableVersion=Dernière version stable
GenericMaskCodes=Vous pouvez saisir tout masque de numérotation. Dans ce masque, les balises suivantes peuvent etre utilisées:<br><b>{000000}</b> correspond a un numéro qui sera incrémenté à chaque %s. Mettre autant de zéro que la longueur désirée du compteur. Le compteur sera complété par des 0 à gauche afin d'avoir autant de zéro que dans le masque.<br><b>{000000+000}</b> idem précédemment mais un offset correpondant au nombre à droite du + est appliqué dès la premiere %s.<br><b>{000000@x}</b> idem précédemment mais le compteur est remis à zero le xeme mois de l'année (x entre 1 et 12). Si cette option est utilisée et x vaut 2 ou plus, alors la sequence {yy}{mm} ou {yyyy}{mm} est obligatoire. <br><b>{dd}</b> jour (01 à 31).<br><b>{mm}</b> mois (01 à 12).<br><b>{yy}</b>, <b>{yyyy}</b> ou <b>{y}</b> annee sur 2, 4 ou 1 chiffres.<br> <b>{cccc000}</b> le code client sur n lettres et suivi d'un compteur propre au client sans offset, complété par des zéros pour en avoir autant que dans le masque, et remis à zéro en même temps que le compteur global.<br><br> Tout autre caractère dans le masque sera laissé inchangé.<br>Les espaces ne sont pas permis.<br><br><u>Exemple sur la 99eme %s du tiers LaCompanie faite le 31/03/2007:</u><br><b>ABC{yy}{mm}-{000000}</b> donnera <b>ABC0703-000099</b><br><b>{0000+100}-XXX/{dd}/YYY</b> donnera <b>0199-XXX/31/YYY</b><br>
GenericMaskCodes=Vous pouvez saisir tout masque de numérotation. Dans ce masque, les balises suivantes peuvent etre utilisées:<br><b>{000000}</b> correspond a un numéro qui sera incrémenté à chaque %s. Mettre autant de zéro que la longueur désirée du compteur. Le compteur sera complété par des 0 à gauche afin d'avoir autant de zéro que dans le masque.<br><b>{000000+000}</b> idem précédemment mais un offset correpondant au nombre à droite du + est appliqué dès la premiere %s.<br><b>{000000@x}</b> idem précédemment mais le compteur est remis à zero le xeme mois de l'année (x entre 1 et 12). Si cette option est utilisée et x vaut 2 ou plus, alors la sequence {yy}{mm} ou {yyyy}{mm} est obligatoire. <br><b>{dd}</b> jour (01 à 31).<br><b>{mm}</b> mois (01 à 12).<br><b>{yy}</b>, <b>{yyyy}</b> ou <b>{y}</b> annee sur 2, 4 ou 1 chiffres.<br>
GenericMaskCodes2=<b>{cccc}</b> le code client sur n lettres<br><b>{cccc000}</b> le code client sur n lettres est suivi d'un compteur propre au client sans offset, complété par des zéros pour en avoir autant que dans le masque, et remis à zéro en même temps que le compteur global.<br>
GenericMaskCodes3=Tout autre caractère dans le masque sera laissé inchangé.<br>Les espaces ne sont pas permis.<br>
GenericMaskCodes4a=<u>Exemple sur la 99eme %s du tiers LaCompanie faite le 31/03/2007:</u><br>
GenericMaskCodes4b=<u>Exemple sur un tiers crée le 31/03/2007:</u><br>
GenericMaskCodes5=<b>ABC{yy}{mm}-{000000}</b> donnera <b>ABC0703-000099</b><br><b>{0000+100}-XXX/{dd}/YYY</b> donnera <b>0199-XXX/31/YYY</b>
GenericNumRefModelDesc=Renvoie un numéro personalisable selon un masque à définir.
ServerAvailableOnIPOrPort=Serveur disponible a l'adresse <b>%s</b> sur le port <b>%s</b>
ServerNotAvailableOnIPOrPort=Serveur non disponible à l'adresse <b>%s</b> sur le port <b>%s</b>

View File

@ -261,6 +261,7 @@ AutomaticallyGenerated=Généré automatiquement
FiscalYearInformation=Information sur l'année fiscale
FiscalMonthStart=Mois de début d'exercice
# Tigre
TigreNumRefModelDesc1=Renvoie un code client/fournisseur personnalisable selon un masque à définir.
TigreMaskCodes=Vous pouvez saisir tout masque de numérotation. Dans ce masque, les balises suivantes peuvent etre utilisées:<br><b>{000000}</b> correspond a un numéro qui sera incrémenté à chaque code client/fournisseur. Mettre autant de zéro que la longueur désirée du compteur. Le compteur sera complété par des 0 à gauche afin d'avoir autant de zéro que dans le masque.<br><b>{dd}</b> jour de la création du code client/fournisseur (01 à 31).<br><b>{mm}</b> mois de la création du code client/fournisseur (01 à 12).<br><b>{yy}</b> et/ou {yyyy} annee, sur 2 ou 4 chiffres, de la création du code client/fournisseur.<br><b>{pre}</b> prefix du tiers.<br>Tout autre caractère dans le masque sera laissé inchangé.<br>Vous pouvez utiliser les caractères suivant comme séparateur : slash, anti-slash et tiret<br>Différencier les éléments utilisés avec un pipe <b>|</b> (altgr+6).<br>Les espaces ne sont pas permis.<br><br><u>Exemple de code client/fournisseur simple</u><br><b>CC|{00000}</b> donnera <b>CC00001</b><br><b>CF|-|{00000}</b> donnera <b>CF-00001</b><br><br><u>Exemple sur le 99eme code client/fournisseur fait le 31/01/2007:</u><br><b>ABC|-|{yy}|{mm}|-|{000000}</b> donnera <b>ABC-0701-000099</b><br><b>{0000}|-|{pre}|/|{dd}|/|INV</b> donnera <b>0099-SFR/31/INV</b><br>
# Monkey
MonkeyNumRefModelDesc=Vérifie que le code client/fournisseur est un nombre sur 6 chiffres, sans ruptures.
# Leopard
LeopardNumRefModelDesc=Code client/fournisseur libre sans vérification. Peut-etre modifié à tout moment.

View File

@ -192,7 +192,11 @@ SetupIsReadyForUse =Installare
CurrentVersion =Dolibarr versione corrente
CallUpdatePage =Vai alla pagina che aggiorna la struttura del database e dati su %s.
LastStableVersion =Ultima versione stabile
GenericMaskCodes =Puoi inserire uno schema di numerazione. In questo schema, possono essere utilizzati i seguenti tag : <br><br> <b> {000000} </b> Corrisponde a un numero che sarà incrementato in ogni %s. Inserisci il numero di zeri euivalente alla lunghezza desiderata del contatore. Il contatore sarà completato da zeri a sinistra al fine di avere tanti zeri come lo schema definito. <br><b> {000000+000} </b> Come il precedente, ma un offset corrispondente al numero a destra del segno + viene applicato a partire dalla prima %s. <br> <b> {000000@x} </b> Lo stesso come il precedente, ma il contatore non viene reimpostato a zero quando il mese x è raggiunto (x è tra 1 e 12). Se viene utilizzata questa opzione e x è 2 o superiore, allora la sequenza {yy}{mm} o {yyyy}{mm} è anche necessaria. <br> <b> {dd} </b> giorno (da 01 a 31). <br> <b> {mm} </b> mese (da 01 a 12). <br> <b> {yy} </b>, <b> {yyyy} </b> o <b> {y} </b> anno più di 2, 4 o 1 numeri. <br><br> <b> {cccc000} </b> Il codice cliente su n caratteri seguiti dal contatore rif. cliente senza offset e azzerato con il contatore globale. <br> <br> Tutti gli altri caratteri nello schema rimarranno intatti. <br> Spazi non sono ammessi. <br> <br> <u> Esempio sulla 99a %s del terzo TheCompany fatta il 31/01/2007: </u> <br> <b> ABC{yy}{mm}-{000000} </b> darà <b> ABC0701-000099 </b> <br> <b> {0000+100}-ZZZ/{dd}/XXX </b> darà <b> 0199-ZZZ/31/XXX </b> <br>
GenericMaskCodes =Puoi inserire uno schema di numerazione. In questo schema, possono essere utilizzati i seguenti tag : <br><b> {000000} </b> Corrisponde a un numero che sarà incrementato in ogni %s. Inserisci il numero di zeri euivalente alla lunghezza desiderata del contatore. Il contatore sarà completato da zeri a sinistra al fine di avere tanti zeri come lo schema definito. <br><b> {000000+000} </b> Come il precedente, ma un offset corrispondente al numero a destra del segno + viene applicato a partire dalla prima %s. <br> <b> {000000@x} </b> Lo stesso come il precedente, ma il contatore non viene reimpostato a zero quando il mese x è raggiunto (x è tra 1 e 12). Se viene utilizzata questa opzione e x è 2 o superiore, allora la sequenza {yy}{mm} o {yyyy}{mm} è anche necessaria. <br> <b> {dd} </b> giorno (da 01 a 31). <br> <b> {mm} </b> mese (da 01 a 12). <br> <b> {yy} </b>, <b> {yyyy} </b> o <b> {y} </b> anno più di 2, 4 o 1 numeri.<br>
GenericMaskCodes2=<b> {cccc000} </b> Il codice cliente su n caratteri seguiti dal contatore rif. cliente senza offset e azzerato con il contatore globale.<br>
GenericMaskCodes3=Tutti gli altri caratteri nello schema rimarranno intatti. <br> Spazi non sono ammessi. <br>
GenericMaskCodes4a=<u> Esempio sulla 99a %s del terzo TheCompany fatta il 31/01/2007: </u> <br>
GenericMaskCodes5=<b> ABC{yy}{mm}-{000000} </b> darà <b> ABC0701-000099 </b> <br> <b> {0000+100}-ZZZ/{dd}/XXX </b> darà <b> 0199-ZZZ/31/XXX </b>
GenericNumRefModelDesc =Ritorna un numero personalizzabile in base allo schema definito.
ServerAvailableOnIPOrPort =Server è disponibile presso l'indirizzo <b> %s </b> sulla porta <b> %s </b>
ServerNotAvailableOnIPOrPort =Server non è disponibile presso l'indirizzo <b> %s </b> sulla porta <b> %s </b>

View File

@ -218,7 +218,7 @@ SetupIsReadyForUse=Installatie is voltooid en Dolibarr is gereed voor gebruik me
CurrentVersion=Dolibarr huidige versie
CallUpdatePage=Ga naar de pagina die updates database structuur en data% s.
LastStableVersion=Laatste stabiele versie
GenericMaskCodes=U kunt elke nummering masker. In dit masker, de volgende tags kunnen worden gebruikt: <br> <b>(000000)</b> komt overeen met een aantal dat zal worden verhoogd voor elk% s. Voer zoveel nullen als de gewenste lengte van de teller. De teller zal worden aangevuld met nullen van links om zoveel nullen als het masker. <br> <b>(000000 +000)</b> hetzelfde als de vorige, maar een compensatie overeenkomt met het aantal aan het recht van het + teken is toegepast, beginnend op eerste% s. <br> <b>(000000 @ x)</b> hetzelfde als de vorige, maar de teller op nul wanneer maand x is bereikt (x tussen 1 en 12). Als deze optie wordt gebruikt en x 2 of hoger, dan sequentie yy () () of (mm jjjj) () mm is ook nodig. <br> <b>dd ()</b> dag (01 tot 31). <br> <b>() mm</b> maand (01 tot 12). <br> <b>yy (), (jjjj)</b> of <b>(y)</b> jaar gedurende 2, 4 of 1 nummers. <br> <b>() cccc000</b> de client code op n tekens gevolgd door een klant ref teller zonder offset en zeroized breken de wereldwijde teller. <br><br> Alle andere tekens in het masker blijft intact. <br> Spaties zijn niet toegestaan. <br><br> <u>Voorbeeld op de 99e% s van de derde partij TheCompany gedaan 31/01/2007:</u> <br> <b>ABC yy () (MM) - (000.000)</b> geeft <b>ABC0701-000099</b> <br> <b>0000 +100 ()-ZZZ / dd () / XXX</b> zal <b>0199-ZZZ/31/XXX</b> <br>
GenericMaskCodes=
GenericNumRefModelDesc=Terugkeer een aanpasbare aantal volgens een omschreven masker.
ServerAvailableOnIPOrPort=Server is beschikbaar op het <b>adres% s</b> op <b>poort% s</b>
ServerNotAvailableOnIPOrPort=Server is niet beschikbaar op het <b>adres% s</b> op <b>poort% s</b>

View File

@ -286,9 +286,6 @@ MarsNumRefModelDesc1=Numéro de facture sous la forme, PREF-10-2004-005, qui cor
MarsNumRefModelDesc2=Le nombre final est formaté sur 3 chiffres ou plus.
MarsNumRefModelDesc3=Si la constante FACTURE_MARS_DELTA est définie, un offset est appliqué sur le compteur
# mercure
MercureNumRefModelDesc1=Renvoie le numéro de facture sous une forme numérique simple, la première facture porte le numéro 1, la quinzième facture ayant le numéro 15, le numéro est préfixé par la lettre F, ce module peut être utilisé avec dans le cas d'une numérotaion double.
# neptune
NeptuneNumRefModelDesc1=Renvoie le numéro de facture sous une forme du préfix FA suivi de l'année sur 2 chiffres et d'un compteur simple sur 4 chiffres.
NeptuneNumRefModelDesc2=Si la constante FACTURE_NEPTUNE_DELTA est définie, un offset est appliqué sur le compteur

View File

@ -217,7 +217,7 @@ SetupIsReadyForUse=Installatie is voltooid en Dolibarr is gereed voor gebruik me
CurrentVersion=Dolibarr huidige versie
CallUpdatePage=Ga naar de pagina die updates database structuur en data% s.
LastStableVersion=Laatste stabiele versie
GenericMaskCodes=U kunt elke nummering masker. In dit masker, de volgende tags kunnen worden gebruikt: <br> <b>(000000)</b> komt overeen met een aantal dat zal worden verhoogd voor elk% s. Voer zoveel nullen als de gewenste lengte van de teller. De teller zal worden aangevuld met nullen van links om zoveel nullen als het masker. <br> <b>(000000 +000)</b> hetzelfde als de vorige, maar een compensatie overeenkomt met het aantal aan het recht van het + teken is toegepast, beginnend op eerste% s. <br> <b>(000000 @ x)</b> hetzelfde als de vorige, maar de teller op nul wanneer maand x is bereikt (x tussen 1 en 12). Als deze optie wordt gebruikt en x 2 of hoger, dan sequentie yy () () of (mm jjjj) () mm is ook nodig. <br> <b>dd ()</b> dag (01 tot 31). <br> <b>() mm</b> maand (01 tot 12). <br> <b>yy (), (jjjj)</b> of <b>(y)</b> jaar gedurende 2, 4 of 1 nummers. <br> <b>() cccc000</b> de client code op n tekens gevolgd door een klant ref teller zonder offset en zeroized breken de wereldwijde teller. <br><br> Alle andere tekens in het masker blijft intact. <br> Spaties zijn niet toegestaan. <br><br> <u>Voorbeeld op de 99e% s van de derde partij TheCompany gedaan 31/01/2007:</u> <br> <b>ABC yy () (MM) - (000.000)</b> geeft <b>ABC0701-000099</b> <br> <b>0000 +100 ()-ZZZ / dd () / XXX</b> zal <b>0199-ZZZ/31/XXX</b> <br>
GenericMaskCodes=
GenericNumRefModelDesc=Terugkeer een aanpasbare aantal volgens een omschreven masker.
ServerAvailableOnIPOrPort=Server is beschikbaar op het <b>adres% s</b> op <b>poort% s</b>
ServerNotAvailableOnIPOrPort=Server is niet beschikbaar op het <b>adres% s</b> op <b>poort% s</b>

View File

@ -217,7 +217,7 @@ SetupIsReadyForUse=Instalacja jest zakończona i Dolibarr jest gotowy do użycia
CurrentVersion=Dolibarr aktualnej wersji
CallUpdatePage=Wejdź na stronę aktualizacji struktury bazy danych i danych% s.
LastStableVersion=Ostatnia wersja stabilna
GenericMaskCodes=Można wprowadzić wszelkie maski numeracji. W tym maskę, następujących tagów może być wykorzystana: <br> <b>(000000)</b> odpowiada szereg które będą zwiększane w każdym% s. Wpisz tyle zer w żądanej długości licznik. Licznik zostanie uzupełniona zerami od lewej w celu uzyskania jak wiele zer jak maska. <br> <b>(000000 +000)</b> samo jak poprzednie, ale offset odpowiadającą liczbie z prawej znak + jest stosowana począwszy od pierwszego% s. <br> <b>(X) @ 000000</b> samo jak poprzednie, ale zostanie wyzerowany do zera, kiedy zostanie osiągnięte miesięcy x (x pomiędzy 1 i 12). Jeśli opcja ta jest używana i x 2 lub wyższej, a następnie sekwencję rr () () lub (mm rrrr mm) () jest wymagana. <br> <b>dd ()</b> dni (od 01 do 31). <br> <b>(mm)</b> miesiące (od 01 do 12). <br> <b>rr (), (RRRR)</b> lub <b>(y)</b> roku ponad 2, 4 lub 1 numerów. <br> <b>() cccc000</b> klient kod na n znaków, a następnie klienta ref licznik bez wyrównania i zeroized whith globalnej licznik. <br><br> Wszystkie inne znaki w masce pozostaną nienaruszone. <br> Spacje są niedozwolone. <br><br> <u>Przykład na 99-cie% s strony trzeciej TheCompany zrobić 31/01/2007:</u> <br> <b>ABC rr) ((MM) - () 000000</b> dadzą <b>ABC0701-000099</b> <br> <b>(0000 +100) ZZZ / dd () / XXX</b> będzie <b>0199-ZZZ/31/XXX</b> <br>
GenericMaskCodes=
GenericNumRefModelDesc=Zwrotu dostosowywalne numer zgodnie z definicją maska.
ServerAvailableOnIPOrPort=Serwer dostępny jest pod <b>adresem% s</b> na <b>porcie% s</b>
ServerNotAvailableOnIPOrPort=Serwer nie jest dostępna pod <b>adresem% s</b> na <b>porcie% s</b>

View File

@ -342,7 +342,7 @@ SetupIsReadyForUse=Instale Dolibarr está acabada e está pronto para uso com es
CurrentVersion=Dolibarr versão atual
CallUpdatePage=Ir para a página que atualiza estrutura de dados e dados% s.
LastStableVersion=Última versão estável
GenericMaskCodes=Você pode entrar em qualquer numeração máscara. Nesta máscara, as seguintes tags poderiam ser utilizados: <br> <b>(000000)</b> corresponde a um número que será incrementado a cada% s. Digite tantos zeros como o comprimento desejado do balcão. O contador será completado por zeros a partir da esquerda, a fim de ter tantos zeros como a máscara. <br> <b>000.000 (000)</b> mesmo que anterior mas uma compensação correspondente ao número à direita do sinal é aplicado a partir de primeiro% s. <br> <b>000000) (@ x</b> mesmo como os anteriores, mas o contador é reposto a zero, quando é atingido mês x (x entre 1 e 12). Se esta opção for utilizada e x é 2 ou superior, então seqüência (yy)) ou ((MM AAAA)) (milímetros é também necessária. <br> <b>(dd)</b> dia (01 a 31). <br> <b>(MM)</b> mês (01 a 12). <br> <b>yy (), (yyyy) (y)</b> anos ou mais de 2, 4 ou 1 números. <br> <b>() cccc000</b> código do cliente sobre n caracteres seguido por um cliente do contador ref sem compensação e zeroized Com o contador global. <br><br> Todos os outros caracteres na máscara permanecerá intacta. <br> Espaços não são permitidos. <br><br> <u>Exemplo, sobre o 99.% S do terceiro TheCompany feito 31/01/2007:</u> <br> <b>ABC (yy) (MM) - (000000)</b> dará <b>ABC0701-000099</b> <br> <b>0000 (100)-ZZZ / dd) (/ XXX</b> dará <b>0199-ZZZ/31/XXX</b> <br>
GenericMaskCodes=
GenericNumRefModelDesc=Retornar customizable um número definido de acordo com uma máscara.
ServerAvailableOnIPOrPort=Server está disponível no <b>endereço% s</b> na <b>porta% s</b>
ServerNotAvailableOnIPOrPort=Servidor não está disponível no <b>endereço% s</b> na <b>porta% s</b>

View File

@ -215,7 +215,7 @@ SetupIsReadyForUse=Instalarea este terminat şi Dolibarr este gata pentru a fi u
CurrentVersion=Dolibarr versiunea curentă
CallUpdatePage=Du-te la pagina care se actualizează datele şi structura bazei de date% s.
LastStableVersion=Ultima versiune stabilă
GenericMaskCodes=Puteţi introduce orice numerotare masca. În acest masca, următoarele tag-uri ar putea fi folosite: <br> <b>(000000)</b> corespunde un număr care va fi pe fiecare incremented% s. Introduceţi oricât de multe zerouri ca lungimea dorită din contra. În contra va fi completat de zero-uri de la stânga pentru a avea cât mai multe zero-uri ca masca. <br> <b>000000 (000)</b> fel ca precedenta, dar un offset corespunzător numărului de la dreptul de a semnul +, se aplică, începând cu prima% s. <br> <b>(000000 @ x)</b> aceeaşi ca şi precedent, dar contra este readus la zero, atunci când se ajunge la luna x (x intre 1 si 12). Dacă această opţiune este folosită şi x este de 2 sau mai mare, apoi secventa (aa) (mm) sau (AAAA) (mm) este, de asemenea, necesară. <br> <b>() zz</b> zi (01 - 31). <br> <b>(mm)</b> luni (01 la 12). <br> <b>(aa), (AAAA)</b> sau <b>(Y)</b> ani mai mult de 2, 4 sau 1 numere. <br> <b>() cccc000</b> cod de client pe n caractere urmat de un client, fără a compensa ref contra şi zeroized whith global contra. <br><br> Toate celelalte caractere în masca va rămâne intactă. <br> Spaţiile nu sunt permise. <br><br> <u>Exemplu pe 99th% s de-a treia parte TheCompany făcut 31/01/2007:</u> <br> <b>ABC (aa) (mm) - (000000)</b> va da <b>ABC0701-000099</b> <br> <b>(0000) 100-zzz / () zz / XXX</b> va da <b>0199-ZZZ/31/XXX</b> <br>
GenericMaskCodes=
GenericNumRefModelDesc=Întoarceţi-vă un număr de personalizabil definite în conformitate cu o masca.
ServerAvailableOnIPOrPort=Server este disponibil la <b>adresa% s</b> pe <b>portul% s</b>
ServerNotAvailableOnIPOrPort=Serverul nu este disponibil la <b>adresa% s</b> pe <b>portul% s</b>

View File

@ -215,7 +215,7 @@ SetupIsReadyForUse=Установка закончена, и Dolibarr готов
CurrentVersion=Dolibarr текущей версии
CallUpdatePage=Зайдите на страницу, которая обновления структуры базы данных и данных% s.
LastStableVersion=Последняя стабильная версия
GenericMaskCodes=Вы можете войти в любой нумерации маска. В этой маске, следующие теги можно использовать: <br> <b>(000000)</b> соответствует число, которое будет увеличивается на каждом% s. Введите столько нулей в качестве желаемой длины счетчика. Счетчик будет завершена к нулями слева, с тем чтобы иметь столько нулей, как маска. <br> <b>000000 (000)</b> же, как и предыдущий, но компенсировать соответствующий номер Право + знак применяется начиная с первого% s. <br> <b>(000000 @ X)</b> же, как и предыдущий, но счетчик сбрасывается до нуля, когда в месяц х достигнуто (X в период с 1 по 12). Если эта опция используется и Х 2 или выше, то последовательность (ГГ) () или мм гггг () () мм Также требуется. <br> <b>() дд</b> сутки (от 01 до 31). <br> <b>() мм</b> в месяц (от 01 до 12). <br> <b>YY (), ()</b> или <b>гггг (Y)</b> в год в течение 2, 4 или 1 числа. <br> <b>() cccc000</b> код клиента по N символов, после чего клиент исх борьбы без смещения и zeroized whith Глобальной контртеррористической стратегии. <br><br> Все другие символы в маске останутся нетронутыми. <br> Пространства, не допускается. <br><br> <u>Пример на 99-й% х сторонних TheCompany сделали 31/01/2007:</u> <br> <b>ABC YY () (мм) - () 000000</b> даст <b>ABC0701-000099</b> <br> <b>(100) 0000-ZZZ / (ДД) / XXX</b> даст <b>0199-ZZZ/31/XXX</b> <br>
GenericMaskCodes=
GenericNumRefModelDesc=Возврат количества настраиваемых в соответствии с определенной маской.
ServerAvailableOnIPOrPort=Сервер доступен по <b>адресу% S порт% S</b>
ServerNotAvailableOnIPOrPort=Сервер не доступен по <b>адресу% S порт% S</b>

View File

@ -63,13 +63,13 @@ function array2table($data,$tableMarkup=1,$tableoptions='',$troptions='',$tdopti
/**
* Return next value for a mask
*
* @param unknown_type $db
* @param $mask
* @param unknown_type $table
* @param unknown_type $field
* @param unknown_type $where To add a filter on selection (for exemple to filter for invoice types)
* @param unknown_type $valueforccc
* @param unknown_type $date
* @param unknown_type $db Database handler
* @param $mask Mask to use
* @param unknown_type $table Table containing field with counter
* @param unknown_type $field Field containing already used values of counter
* @param unknown_type $where To add a filter on selection (for exemple to filter on invoice types)
* @param unknown_type $valueforccc
* @param unknown_type $date
* @return string New value
*/
function get_next_value($db,$mask,$table,$field,$where='',$valueforccc='',$date='')
@ -268,6 +268,102 @@ function get_next_value($db,$mask,$table,$field,$where='',$valueforccc='',$date=
}
/**
* Check value
*
* @param unknown_type $db Database handler
* @param $mask Mask to use
* @param unknown_type $table Table containing field with counter
* @param unknown_type $field Field containing already used values of counter
* @param unknown_type $where To add a filter on selection (for exemple to filter on invoice types)
* @param unknown_type $valueforccc
* @param unknown_type $date
* @return int <0 if KO, 0 if OK
*/
function check_value($mask,$value)
{
$result=0;
// Extract value for mask counter, mask raz and mask offset
if (! eregi('\{(0+)([@\+][0-9]+)?([@\+][0-9]+)?\}',$mask,$reg)) return 'ErrorBadMask';
$masktri=$reg[1].$reg[2].$reg[3];
$maskcounter=$reg[1];
$maskraz=-1;
$maskoffset=0;
if (strlen($maskcounter) < 3) return 'CounterMustHaveMoreThan3Digits';
// Extract value for third party mask counter
if (eregi('\{(c+)(0*)\}',$mask,$regClientRef))
{
$maskrefclient=$regClientRef[1].$regClientRef[2];
$maskrefclient_maskclientcode=$regClientRef[1];
$maskrefclient_maskcounter=$regClientRef[2];
$maskrefclient_maskoffset=0; //default value of maskrefclient_counter offset
$maskrefclient_clientcode=substr($valueforccc,0,strlen($maskrefclient_maskclientcode));//get n first characters of client code to form maskrefclient_clientcode
$maskrefclient_clientcode=str_pad($maskrefclient_clientcode,strlen($maskrefclient_maskclientcode),"#",STR_PAD_RIGHT);//padding maskrefclient_clientcode for having exactly n characters in maskrefclient_clientcode
$maskrefclient_clientcode=dol_string_nospecial($maskrefclient_clientcode);//sanitize maskrefclient_clientcode for sql insert and sql select like
if (strlen($maskrefclient_maskcounter) > 0 && strlen($maskrefclient_maskcounter) < 3) return 'CounterMustHaveMoreThan3Digits';
}
else $maskrefclient='';
$maskwithonlyymcode=$mask;
$maskwithonlyymcode=eregi_replace('\{(0+)([@\+][0-9]+)?([@\+][0-9]+)?\}',$maskcounter,$maskwithonlyymcode);
$maskwithonlyymcode=eregi_replace('\{dd\}','dd',$maskwithonlyymcode);
$maskwithonlyymcode=eregi_replace('\{(c+)(0*)\}',$maskrefclient,$maskwithonlyymcode);
$maskwithnocode=$maskwithonlyymcode;
$maskwithnocode=eregi_replace('\{yyyy\}','yyyy',$maskwithnocode);
$maskwithnocode=eregi_replace('\{yy\}','yy',$maskwithnocode);
$maskwithnocode=eregi_replace('\{y\}','y',$maskwithnocode);
$maskwithnocode=eregi_replace('\{mm\}','mm',$maskwithnocode);
// Now maskwithnocode = 0000ddmmyyyyccc for example
// and maskcounter = 0000 for example
//print "maskwithonlyymcode=".$maskwithonlyymcode." maskwithnocode=".$maskwithnocode."\n<br>";
// If an offset is asked
if (! empty($reg[2]) && eregi('^\+',$reg[2])) $maskoffset=eregi_replace('^\+','',$reg[2]);
if (! empty($reg[3]) && eregi('^\+',$reg[3])) $maskoffset=eregi_replace('^\+','',$reg[3]);
// Define $sqlwhere
// If a restore to zero after a month is asked we check if there is already a value for this year.
if (! empty($reg[2]) && eregi('^@',$reg[2])) $maskraz=eregi_replace('^@','',$reg[2]);
if (! empty($reg[3]) && eregi('^@',$reg[3])) $maskraz=eregi_replace('^@','',$reg[3]);
if ($maskraz >= 0)
{
if ($maskraz > 12) return 'ErrorBadMaskBadRazMonth';
// Define reg
if ($maskraz > 1 && ! eregi('^(.*)\{(y+)\}\{(m+)\}',$maskwithonlyymcode,$reg)) return 'ErrorCantUseRazInStartedYearIfNoYearMonthInMask';
if ($maskraz <= 1 && ! eregi('^(.*)\{(y+)\}',$maskwithonlyymcode,$reg)) return 'ErrorCantUseRazIfNoYearInMask';
//print "x".$maskwithonlyymcode." ".$maskraz;
}
//print "masktri=".$masktri." maskcounter=".$maskcounter." maskraz=".$maskraz." maskoffset=".$maskoffset."<br>\n";
// Check we have a number in ($posnumstart+1).', '.strlen($maskcounter)
//
// Check length
$len=strlen($maskwithnocode);
if (strlen($value) != $len) $result=-1;
// Define $maskLike
$maskLike = dol_string_nospecial($mask);
$maskLike = str_replace("%","_",$maskLike);
// Replace protected special codes with matching number of _ as wild card caracter
$maskLike = str_replace(dol_string_nospecial('{yyyy}'),'____',$maskLike);
$maskLike = str_replace(dol_string_nospecial('{yy}'),'__',$maskLike);
$maskLike = str_replace(dol_string_nospecial('{y}'),'_',$maskLike);
$maskLike = str_replace(dol_string_nospecial('{mm}'),'__',$maskLike);
$maskLike = str_replace(dol_string_nospecial('{dd}'),'__',$maskLike);
$maskLike = str_replace(dol_string_nospecial('{'.$masktri.'}'),str_pad("",strlen($maskcounter),"_"),$maskLike);
if ($maskrefclient) $maskLike = str_replace(dol_string_nospecial('{'.$maskrefclient.'}'),str_pad("",strlen($maskrefclient),"_"),$maskLike);
dolibarr_syslog("functions2::check_value result=".$result,LOG_DEBUG);
return $result;
}
/**
* \brief Convert a binary data to string that represent hexadecimal value
* \param bin Value to convert

View File

@ -14,7 +14,7 @@
***********************************************/
var offsetxpoint=-60 //Customize x offset of tooltip
var offsetypoint=20 //Customize y offset of tooltip
var offsetypoint=18 //Customize y offset of tooltip
var ie=document.all
var ns6=document.getElementById && !document.all
var enabletip=false
@ -47,7 +47,8 @@ function positiontip(e)
var bottomedge=ie&&!window.opera? ietruebody().clientHeight-event.clientY-offsetypoint : window.innerHeight-e.clientY-offsetypoint-20
var leftedge=(offsetxpoint<0)? offsetxpoint*(-1) : -1000
//alert('curX='+curX+' curY='+curY+' rightedge='+rightedge+' bottomedge='+bottomedge+' leftedge='+leftedge+' tipobj.offsetHeight='+tipobj.offsetHeight);
//if the horizontal distance isn't enough to accomodate the width of the context menu
if (rightedge<tipobj.offsetWidth)
//move the horizontal position of the menu to the left by it's width

View File

@ -131,29 +131,13 @@ if ((! $_POST["getcustomercode"] && ! $_POST["getsuppliercode"])
if (! $error)
{
// On vérifie si un tiers devient client ou fournisseur pour l'obtention d'un code automatiqe
if ($soc->client && $soc->code_client == -1)
{
$soc->code_client = -1;
}
else if ($_POST['code_auto'])
{
$soc->code_client = '';
}
if ($soc->fournisseur && $soc->code_fournisseur == -1)
{
$soc->code_fournisseur = -1;
}
else if ($_POST['code_auto'])
{
$soc->code_fournisseur = '';
}
if ($_POST["action"] == 'add')
{
$db->begin();
if (empty($soc->client)) $soc->code_client='';
if (empty($soc->fournisseur)) $soc->code_fournisseur='';
$result = $soc->create($user);
if ($result >= 0)
{
@ -223,6 +207,10 @@ if ((! $_POST["getcustomercode"] && ! $_POST["getsuppliercode"])
$oldsoc=new Societe($db);
$result=$oldsoc->fetch($socid);
// To not set code if third party is not concerned. But if it had values, we keep them.
if (empty($soc->client) && empty($oldsoc->code_client)) $soc->code_client='';
if (empty($soc->fournisseur)&& empty($oldsoc->code_fournisseur)) $soc->code_fournisseur='';
$result = $soc->update($socid,$user,1,$oldsoc->codeclient_modifiable(),$oldsoc->codefournisseur_modifiable());
if ($result >= 0)
{
@ -408,15 +396,9 @@ $_GET["action"] == 'create' || $_POST["action"] == 'create')
print '<td width="25%">'.$langs->trans('CustomerCode').'</td><td width="25%">';
print '<table class="nobordernopadding"><tr><td>';
if ($modCodeClient->code_auto)
{
print '<input type="hidden" name="code_client" value="-1">';
print $langs->trans('AutomaticallyGenerated').'&nbsp;';
}
else
{
print '<input type="text" name="code_client" size="16" value="'.$soc->code_client.'" maxlength="15">';
}
$tmpcode=$soc->code_client;
if ($modCodeClient->code_auto) $tmpcode=$modCodeClient->getNextValue($soc,0);
print '<input type="text" name="code_client" size="16" value="'.$tmpcode.'" maxlength="15">';
print '</td><td>';
$s=$modCodeClient->getToolTip($langs,$soc,0);
print $form->textwithhelp('',$s,1);
@ -431,15 +413,9 @@ $_GET["action"] == 'create' || $_POST["action"] == 'create')
print '</td>';
print '<td>'.$langs->trans('SupplierCode').'</td><td>';
print '<table class="nobordernopadding"><tr><td>';
if ($modCodeFournisseur->code_auto)
{
print '<input type="hidden" name="code_fournisseur" value="-1">';
print $langs->trans('AutomaticallyGenerated').'&nbsp;';
}
else
{
print '<input type="text" name="code_fournisseur" size="16" value="'.$soc->code_fournisseur.'" maxlength="15">';
}
$tmpcode=$soc->code_fournisseur;
if ($modCodeFournisseur->code_auto) $tmpcode=$modCodeFournisseur->getNextValue($soc,1);
print '<input type="text" name="code_fournisseur" size="16" value="'.$tmpcode.'" maxlength="15">';
print '</td><td>';
$s=$modCodeFournisseur->getToolTip($langs,$soc,1);
print $form->textwithhelp('',$s,1);
@ -752,8 +728,9 @@ elseif ($_GET["action"] == 'edit' || $_POST["action"] == 'edit')
print '<table class="nobordernopadding"><tr><td>';
if ((!$soc->code_client || $soc->code_client == -1) && $modCodeClient->code_auto)
{
print '<input type="hidden" name="code_client" value="-1">';
print $langs->trans('AutomaticallyGenerated').'&nbsp;';
$tmpcode=$soc->code_client;
if (empty($tmpcode) && $modCodeClient->code_auto) $tmpcode=$modCodeClient->getNextValue($soc,0);
print '<input type="text" name="code_client" size="16" value="'.$tmpcode.'" maxlength="15">';
}
else if ($soc->codeclient_modifiable())
{
@ -781,8 +758,9 @@ elseif ($_GET["action"] == 'edit' || $_POST["action"] == 'edit')
print '<table class="nobordernopadding"><tr><td>';
if ((!$soc->code_fournisseur || $soc->code_fournisseur == -1) && $modCodeFournisseur->code_auto)
{
print '<input type="hidden" name="code_fournisseur" value="-1">';
print $langs->trans('AutomaticallyGenerated').'&nbsp;';
$tmpcode=$soc->code_fournisseur;
if (empty($tmpcode) && $modCodeFournisseur->code_auto) $tmpcode=$modCodeFournisseur->getNextValue($soc,1);
print '<input type="text" name="code_fournisseur" size="16" value="'.$tmpcode.'" maxlength="15">';
}
else if ($soc->codefournisseur_modifiable())
{

View File

@ -82,9 +82,9 @@ class Societe extends CommonObject
var $mode_reglement;
var $cond_reglement;
var $client;
var $prospect;
var $fournisseur;
var $client; // 0=no customer, 1=customer, 2=prospect
var $prospect; // 0=no prospect, 1=prospect
var $fournisseur; // =0no supplier, 1=supplier
var $prefixCustomerIsRequired;
var $prefixSupplierIsRequired;
@ -145,8 +145,8 @@ class Societe extends CommonObject
$this->db->begin();
// Pour code automatique
if ($this->code_client == -1) $this->get_codeclient($this->prefix_comm,0);
// For automatic creation during create action (not used by Dolibarr)
if ($this->code_client == -1) $this->get_codeclient($this->prefix_comm,0);
if ($this->code_fournisseur == -1) $this->get_codefournisseur($this->prefix_comm,1);
$result = $this->verify();
@ -154,7 +154,7 @@ class Societe extends CommonObject
if ($result >= 0)
{
$sql = "INSERT INTO ".MAIN_DB_PREFIX."societe (nom, datec, datea, fk_user_creat)";
$sql.= " VALUES ('".addslashes($this->nom)."', ".$this->db->idate(mktime()).", ".$this->db->idate(mktime()).",";
$sql.= " VALUES ('".addslashes($this->nom)."', ".$this->db->idate(gmmktime()).", ".$this->db->idate(gmmktime()).",";
$sql.= " ".($user->id > 0 ? "'".$user->id."'":"null");
$sql.= ")";
@ -348,7 +348,7 @@ class Societe extends CommonObject
//Gencod
$this->gencod=trim($this->gencod);
// Pour code client/fournisseur automatique
// For automatic creation (not used by Dolibarr)
if ($this->code_client == -1) $this->get_codeclient($this->prefix_comm,0);
if ($this->code_fournisseur == -1) $this->get_codefournisseur($this->prefix_comm,1);
@ -401,8 +401,7 @@ class Societe extends CommonObject
if ($allowmodcodeclient)
{
// Attention check_codeclient peut modifier le code suivant le module utilise
$this->check_codeclient();
//$this->check_codeclient();
$sql .= ", code_client = ".($this->code_client?"'".addslashes($this->code_client)."'":"null");
@ -414,8 +413,7 @@ class Societe extends CommonObject
if ($allowmodcodefournisseur)
{
// Attention check_codefournisseur peut modifier le code suivant le module utilise
$this->check_codefournisseur();
//$this->check_codefournisseur();
$sql .= ", code_fournisseur = ".($this->code_fournisseur?"'".addslashes($this->code_fournisseur)."'":"null");
@ -1516,7 +1514,7 @@ class Societe extends CommonObject
/**
* \brief Verifie code client
* \return int <0 si KO, 0 si OK, peut modifier le code client suivant le module utilis<EFBFBD>
* \return int <0 si KO, 0 si OK, peut modifier le code client suivant le module utilise
*/
function check_codeclient()
{
@ -1541,7 +1539,7 @@ class Societe extends CommonObject
/**
* \brief Verifie code fournisseur
* \return int <0 si KO, 0 si OK, peut modifier le code client suivant le module utilis<EFBFBD>
* \return int <0 si KO, 0 si OK, peut modifier le code client suivant le module utilise
*/
function check_codefournisseur()
{

View File

@ -377,7 +377,7 @@ div.blockvmenupair
border-spacing: 0px;
padding: 0px;
width: 166px;
border : 0px solid #68ACCF;
border : 0px solid #68ACCF;
}
div.blockvmenuimpair
{
@ -385,7 +385,7 @@ div.blockvmenuimpair
border-spacing: 0px;
padding: 0px;
width: 166px;
border : 0px solid #68ACCF;
border : 0px solid #68ACCF;
}
@ -442,7 +442,7 @@ div.menu_contenu {
div.menu_fin {
background: url(<?php echo $dolibarr_main_url_root.'/theme/auguria/img/bg-bas-rubrique.png' ?>);
margin: 0px;
padding: 0px;
padding: 0px;
height:6px;
width:165px;
background-repeat:no-repeat;
@ -850,7 +850,7 @@ border: 0px;
table.box {
margin: 2px;
}
tr.box_titre {
background: #68ACCF;
color: #FFFFFF;
@ -1090,7 +1090,7 @@ div.menuFleche
#dhtmltooltip
{
position: absolute;
width: 420px;
width: 450px;
border: 1px solid #444444;
padding: 2px;
background-color: #FFFFE0;
@ -1128,7 +1128,7 @@ table.dp {
text-align:center;
background-color:#617389;color:#FFFFFF; font-weight:bold;
border: 1px outset black;
cursor:pointer;
cursor:pointer;
}
.dpButtons:Active,.tpButtons:Active{border: 1px outset black;}
.dpDayNames td,.dpExplanation {background-color:#D9DBE1; font-weight:bold; text-align:center; font-size:11px;}
@ -1149,7 +1149,7 @@ table.dp {
.tpMinute {margin-top:5px;}
.tpMinute td:Hover {background-color:black; color:white; }
.tpMinute td {background-color:#D9DBE1; text-align:center; cursor:pointer;}
.dpInvisibleButtons
{
border-style:none;

View File

@ -657,7 +657,7 @@ tr.nonpayed {
#dhtmltooltip
{
position: absolute;
width: 420px;
width: 450px;
border: 1px solid #444444;
padding: 2px;
background-color: #FFFFE0;

View File

@ -843,7 +843,7 @@ tr.nonpayed {
#dhtmltooltip
{
position: absolute;
width: 420px;
width: 450px;
border: 1px solid #444444;
padding: 2px;
background-color: lightyellow;

View File

@ -220,7 +220,7 @@ a.tmenu:link
color: #234046;
padding: 0px 5px 0px 5px;
margin: 0px 1px 2px 1px;
font-size: 12px;
font-size: 12px;
font-family: helvetica, verdana, arial, sans-serif;
font-weight: normal;
}
@ -230,7 +230,7 @@ a.tmenu:visited
padding: 0px 5px 0px 5px;
margin: 0px 1px 2px 1px;
border: 0px solid #b3c5cc;
font-size: 12px;
font-size: 12px;
font-family: helvetica, verdana, arial, sans-serif;
font-weight: normal;
}
@ -303,7 +303,7 @@ div.tmenu ul {
padding: 0px 0px 0px 0px;
margin: 0px 0px 0px 0px;
list-style: none;
}
div.tmenu li {
float: left;
@ -777,7 +777,7 @@ padding-bottom: 4px;
margin: 0px 0px;
}
table.border {
border: 1px solid #9CACBB;
border-collapse: collapse;
@ -907,7 +907,7 @@ tr.box_titre {
background: #7699A9;
background-image: url(<?php echo $dolibarr_main_url_root.'/theme/eldy/img/liste_titre.png' ?>);
color: #334444;
font-size: 12px;
font-size: 12px;
font-family: arial, helvetica, verdana, sans-serif;
font-weight: bold;
border-bottom: 1px solid #FDFFFF;
@ -918,13 +918,13 @@ white-space: nowrap;
tr.box_impair {
background: #e6ebed;
font-size: 12px;
font-size: 12px;
font-family: arial, helvetica, verdana, sans-serif;
}
tr.box_pair {
background: #d0d4d7;
font-size: 12px;
font-size: 12px;
font-family: arial, helvetica, verdana, sans-serif;
}
@ -1044,7 +1044,7 @@ padding: 2px;
#dhtmltooltip
{
position: absolute;
width: 420px;
width: 450px;
border-top: solid 1px #BBBBBB;
border-left: solid 1px #BBBBBB;
border-right: solid 1px #444444;
@ -1252,7 +1252,7 @@ div.autocomplete ul li {
cursor:pointer;
}
/* ============================================================================== */
/* Ajax - In place editor */
/* ============================================================================== */
@ -1288,7 +1288,7 @@ form.inplaceeditor-form a { /* The cancel link */
}
/* ============================================================================== */
/* Admin Menu */
/* ============================================================================== */

View File

@ -1,6 +1,6 @@
<?php
/* Copyright (C) 2002 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2008 Laurent Destailleur <eldy@users.sourceforge.net>
/* Copyright (C) 2002 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2008 Laurent Destailleur <eldy@users.sourceforge.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -58,18 +58,18 @@ a:visited { font-family: helvetica, verdana, arial, sans-serif; font-weight: bol
a:active { font-family: helvetica, verdana, arial, sans-serif; font-weight: bold; color: #000000; text-decoration: none; }
a:hover { font-family: helvetica, verdana, arial, sans-serif; font-weight: bold; color: #000000; text-decoration: underline; }
input
{
{
font-size: 12px;
font-family: helvetica, verdana, arial, sans-serif;
font-family: helvetica, verdana, arial, sans-serif;
background: #FFFFFF;
border: 1px solid #8C9C9B;
padding: 0px 0px 0px 0px;
margin: 0px 0px 0px 0px;
}
input.flat
{
{
font-size: 12px;
font-family: helvetica, verdana, arial, sans-serif;
font-family: helvetica, verdana, arial, sans-serif;
background: #FFFFFF;
border: 1px solid #8C9C9B;
padding: 0px 0px 0px 0px;
@ -105,7 +105,7 @@ select.flat
font-size: 11px;
font-family: arial,verdana,heletica, sans-serif;
padding: 0px 2px 0px 2px;
margin: 0px 0px 0px 0px;
margin: 0px 0px 0px 0px;
border-left: 1px solid #cccccc;
border-right: 1px solid #aaaaaa;
border-top: 1px solid #dddddd;
@ -118,7 +118,7 @@ select.flat
font-size: 11px;
font-family: arial,verdana,heletica, sans-serif;
padding: 0px 2px 0px 2px;
margin: 0px 0px 0px 0px;
margin: 0px 0px 0px 0px;
border-left: 1px solid #cccccc;
border-right: 1px solid #aaaaaa;
border-top: 1px solid #dddddd;
@ -169,8 +169,8 @@ div.tmenu
font-weight: bold;
font-size: 12px;
height: 20px;
background: #dddddd;
color: #000000;
background: #dddddd;
color: #000000;
text-decoration: none;
}
@ -209,11 +209,11 @@ table.tmenu
margin: 0px 0px 0px 6px;
}
.menu
{
background: #ccccb3;
.menu
{
background: #ccccb3;
font-size: 12px;
color: #000000;
color: #000000;
text-decoration: none;
}
@ -247,7 +247,7 @@ a.tmenu:hover
}
a.tmenusel
{
{
color: #202020;
background: #bbbbcc;
padding: 0px 8px;
@ -265,7 +265,7 @@ div.tmenu ul {
padding: 0px 0px 0px 0px;
margin: 0px 0px 0px 0px;
list-style: none;
}
div.tmenu li {
float: left;
@ -311,7 +311,7 @@ div.tmenu li a:active
}
div.tmenu li a:link
{
font-weight: normal;
}
@ -372,12 +372,12 @@ a.help:active { font-family: helvetica, verdana, arial, sans-serif; text-align:
a.help:hover { font-family: helvetica, verdana, arial, sans-serif; text-align:left; font-weight: normal; }
div.blockvmenupair
{
{
border-right: 1px solid #555555;
border-bottom: 1px solid #555555;
background: #dddddd;
font-family: helvetica, verdana, arial, sans-serif;
color: #202020;
color: #202020;
text-align:left;
text-decoration: none;
padding: 3px;
@ -390,7 +390,7 @@ div.blockvmenuimpair
border-bottom: 1px solid #555555;
background: #dddddd;
font-family: helvetica, verdana, arial, sans-serif;
color: #202020;
color: #202020;
text-align:left;
text-decoration: none;
padding: 3px;
@ -410,24 +410,24 @@ div.help
margin: 1px 0px 0px 0px;
}
td.barre {
td.barre {
border-right: 1px solid #000000;
border-bottom: 1px solid #000000;
background: #DDDDDD;
font-size: 12px;
font-family: helvetica, verdana;
color: #000000;
font-family: helvetica, verdana;
color: #000000;
text-align:left;
text-decoration: none
}
td.barre_select {
background: #b3cccc;
color: #000000
background: #b3cccc;
color: #000000
}
td.photo {
background: #FCFCFC;
background: #FCFCFC;
color: #000000;
border: 1px solid #b3c5cc;
}
@ -521,39 +521,39 @@ a.butAction:hover { font-family: helvetica, verdana, arial, sans-serif; backgr
.butActionRefused { font-family: helvetica, verdana, arial, sans-serif; background: white; border: 1px solid #AAAAAA; color: #AAAAAA !important; padding: 0em 0.7em; margin: 0em 0.5em; text-decoration: none !important; white-space: nowrap; cursor: not-allowed; }
a.butActionDelete:link { font-family: helvetica, verdana, arial, sans-serif;
background: white;
border: 1px solid #997777;
color: #436976;
padding: 0em 0.7em;
margin: 0em 0.5em;
text-decoration: none;
background: white;
border: 1px solid #997777;
color: #436976;
padding: 0em 0.7em;
margin: 0em 0.5em;
text-decoration: none;
white-space: nowrap; }
a.butActionDelete:active { font-family: helvetica, verdana, arial, sans-serif;
background: white;
border: 1px solid #997777;
color: #436976;
padding: 0em 0.7em;
margin: 0em 0.5em;
text-decoration: none;
background: white;
border: 1px solid #997777;
color: #436976;
padding: 0em 0.7em;
margin: 0em 0.5em;
text-decoration: none;
white-space: nowrap; }
a.butActionDelete:visited { font-family: helvetica, verdana, arial, sans-serif;
background: white;
border: 1px solid #997777;
color: #436976;
padding: 0em 0.7em;
margin: 0em 0.5em;
text-decoration: none;
background: white;
border: 1px solid #997777;
color: #436976;
padding: 0em 0.7em;
margin: 0em 0.5em;
text-decoration: none;
white-space: nowrap; }
a.butActionDelete:hover { font-family: helvetica, verdana, arial, sans-serif;
background: #FFe7ec;
border: 1px solid #997777;
color: #436976;
padding: 0em 0.7em;
margin: 0em 0.5em;
text-decoration: none;
background: #FFe7ec;
border: 1px solid #997777;
color: #436976;
padding: 0em 0.7em;
margin: 0em 0.5em;
text-decoration: none;
white-space: nowrap; }
@ -623,14 +623,14 @@ width: 100%;
/*
* Tableaux
*/
*/
td.border {
td.border {
border-top: 1px solid #000000;
border-right: 1px solid #000000;
border-bottom: 1px solid #000000;
@ -654,7 +654,7 @@ div.warning {
}
div.error {
color: #550000; font-weight: bold;
color: #550000; font-weight: bold;
padding: 0.2em 0.2em 0.2em 0.2em;
margin: 0.5em 0em 0.5em 0em;
border: 1px solid #969090;
@ -692,22 +692,22 @@ a.impayee:hover { font-weight: bold; color: #550000; }
div.titre {
font-family: helvetica, verdana, arial, sans-serif;
font-weight: bold;
color: #777799;
color: #777799;
text-decoration: none
}
/*
* Widgets standard
*/
input.liste_titre {
*/
input.liste_titre {
background: #777799;
border: 0px;
}
tr.liste_titre {
tr.liste_titre {
color: #FFFFFF;
background: #777799;
background: #777799;
font-family: helvetica, verdana, arial, sans-serif;
font-weight: bold;
border-left: 1px solid #FFFFFF;
@ -717,9 +717,9 @@ tr.liste_titre {
white-space: nowrap;
}
td.liste_titre {
td.liste_titre {
color: #FFFFFF;
background: #777799;
background: #777799;
font-family: helvetica, verdana, arial, sans-serif;
font-weight: bold;
border-top: 1px solid #FFFFFF;
@ -728,9 +728,9 @@ td.liste_titre {
}
.liste_titre_sel
{
{
color: #DCCCBB;
background: #777799;
background: #777799;
font-family: helvetica, verdana, arial, sans-serif;
font-weight: bold;
border-top: 1px solid #FFFFFF;
@ -745,9 +745,9 @@ tr.liste_total td {
border-top: 1px solid #888888;
}
th {
th {
color: #FFFFFF;
background: #777799;
background: #777799;
font-family: helvetica, verdana, arial, sans-serif;
font-weight: bold;
border-left: 1px solid #FFFFFF;
@ -759,40 +759,40 @@ th {
}
.pair {
background: #dcdcd0;
font-size: 12px;
.pair {
background: #dcdcd0;
font-size: 12px;
}
.impair {
background: #eeeedd;
font-size: 12px;
.impair {
background: #eeeedd;
font-size: 12px;
}
/*
* Boxes
*/
tr.box_titre {
tr.box_titre {
color: #FFFFFF;
background: #777799;
font-family: Helvetica, Verdana;
font-size: 1.0em;
font-weight: bold; }
tr.box_pair {
background: #dcdcd0;
tr.box_pair {
background: #dcdcd0;
font-size: 0.95em; }
tr.box_impair {
background: #eeeedd;
tr.box_impair {
background: #eeeedd;
font-family: Helvetica, Verdana;
font-size: 0.95em; }
tr.fiche {
tr.fiche {
font-family: Helvetica, Verdana;
font-size: 0.6em; }
td.delete {
td.delete {
background: red;
font-weight: bold;
}
@ -850,7 +850,7 @@ padding: 2px;
#dhtmltooltip
{
position: absolute;
width: 420px;
width: 450px;
border-top: solid 1px #BBBBBB;
border-left: solid 1px #BBBBBB;
border-right: solid 1px #444444;
@ -881,7 +881,7 @@ table.dp {
}
.dp td, .tpHour td, .tpMinute td{padding:2px; font-size:10px;}
/* Barre titre */
.dpHead,.tpHead,.tpHour td:Hover .tpHead{
.dpHead,.tpHead,.tpHour td:Hover .tpHead{
font-weight:bold;
background-color:#777799;
color:white;

View File

@ -731,7 +731,7 @@ tr.nonpayed {
#dhtmltooltip
{
position: absolute;
width: 420px;
width: 450px;
border: 1px solid #444444;
padding: 2px;
background-color: lightyellow;

View File

@ -1,6 +1,6 @@
<?php
/* Copyright (C) 2002-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2008 Laurent Destailleur <eldy@users.sourceforge.net>
/* Copyright (C) 2002-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2008 Laurent Destailleur <eldy@users.sourceforge.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -41,8 +41,8 @@ if (! isset($conf->global->MAIN_FEATURES_LEVEL) || $conf->global->MAIN_FEATURES_
/* ============================================================================== */
body {
background: #ebebe0;
font-size: 12px;
background: #ebebe0;
font-size: 12px;
font-family: helvetica, verdana, arial, sans-serif;
margin-top: 0;
margin-bottom: 0;
@ -55,15 +55,15 @@ a:visited { font-family: helvetica, verdana, arial, sans-serif; font-weight: bol
a:active { font-family: helvetica, verdana, arial, sans-serif; font-weight: bold; color: #000000; text-decoration: none; }
a:hover { font-family: helvetica, verdana, arial, sans-serif; font-weight: bold; color: #000000; text-decoration: underline; }
input
{
{
font-size: 12px;
font-family: helvetica, verdana, arial, sans-serif;
font-family: helvetica, verdana, arial, sans-serif;
border: 1px solid #cccccc;
padding: 0px 0px 0px 0px;
margin: 0px 0px 0px 0px;
}
input.flat
{
{
font-size: 12px;
font-family: helvetica, verdana, arial, sans-serif;
border: 1px solid #cccccc;
@ -94,7 +94,7 @@ select.flat
padding: 0px 0px 0px 0px;
margin: 0px 0px 0px 0px;
}
.button
.button
{
font-family: arial,verdana,helvetica, sans-serif;
font-size: 100%;
@ -156,8 +156,8 @@ div.tmenu
font-weight: bold;
font-size: 12px;
height: 20px;
background: #dcdcb3;
color: #000000;
background: #dcdcb3;
color: #000000;
text-decoration: none;
}
a.tmenudisabled
@ -221,7 +221,7 @@ a.tmenu:hover
}
a.tmenusel
{
{
color: #234046;
background: #eeeecc;
padding: 0px 5px;
@ -349,7 +349,7 @@ div.blockvmenupair
border-bottom: 1px solid #555555;
background: #dcdcb3;
font-family: helvetica, verdana, arial, sans-serif;
color: #000000;
color: #000000;
text-align:left;
text-decoration: none;
padding-left: 3px;
@ -366,7 +366,7 @@ div.blockvmenuimpair
border-bottom: 1px solid #555555;
background: #dcdcb3;
font-family: helvetica, verdana, arial, sans-serif;
color: #000000;
color: #000000;
text-align:left;
text-decoration: none;
padding-left: 3px;
@ -383,7 +383,7 @@ div.help
border-bottom: 1px solid #000000;
background: #f0f0f0;
font-family: helvetica, verdana, arial, sans-serif;
color: #000000;
color: #000000;
text-align:left;
text-decoration: none;
padding-left: 3px;
@ -393,23 +393,23 @@ div.help
margin: 1px 0px 0px 0px;
}
td.barre {
td.barre {
border-right: 1px solid #000000;
border-bottom: 1px solid #000000;
background: #b3c5cc;
font-family: helvetica, verdana, arial, sans-serif;
color: #000000;
color: #000000;
text-align:left;
text-decoration: none
}
td.barre_select {
background: #b3c5cc;
color: #000000
td.barre_select {
background: #b3c5cc;
color: #000000
}
td.photo {
background: #FFFFFF;
color: #000000
td.photo {
background: #FFFFFF;
color: #000000
}
@ -506,8 +506,8 @@ a.butActionDelete:link { font-family: helvetica, verdana, arial, sans-serif;
a.butActionDelete:active { font-family: helvetica, verdana, arial, sans-serif; background: white; border: 1px solid #997777; color: #436976; padding: 0em 0.7em; margin: 0em 0.5em; text-decoration: none; white-space: nowrap; }
a.butActionDelete:visited { font-family: helvetica, verdana, arial, sans-serif; background: white; border: 1px solid #997777; color: #436976; padding: 0em 0.7em; margin: 0em 0.5em; text-decoration: none; white-space: nowrap; }
a.butActionDelete:hover { font-family: helvetica, verdana, arial, sans-serif; background: #FFe7ec; border: 1px solid #997777; color: #436976; padding: 0em 0.7em; margin: 0em 0.5em; text-decoration: none; white-space: nowrap; }
/* ============================================================================== */
/* Tables */
@ -574,15 +574,15 @@ background: #ddddcc;
}
td.border {
td.border {
border-top: 1px solid #000000;
border-right: 1px solid #000000;
border-bottom: 1px solid #000000;
border-left: 1px solid #000000;
}
div.menus {
background: #eeeecc;
div.menus {
background: #eeeecc;
color: #bbbb88;
font-size: 0.95em;
border-top: 1px dashed #ccccb3;
@ -592,15 +592,15 @@ div.menus {
}
a.leftmenu {
font-weight: bold;
a.leftmenu {
font-weight: bold;
color: #202020;
}
div.leftmenu {
background: #ccccb3;
div.leftmenu {
background: #ccccb3;
text-align: left;
border-right: 1px solid #000000;
border-bottom: 1px solid #000000;
@ -626,7 +626,7 @@ div.warning {
}
div.error {
color: #550000; font-weight: bold;
color: #550000; font-weight: bold;
padding: 0.2em 0.2em 0.2em 0.2em;
margin: 0.5em 0em 0.5em 0em;
border: 1px solid #000000;
@ -644,7 +644,7 @@ div.info {
* Liens Payes/Non payes
*/
a.normal:link { font-weight: normal }
a.normal:link { font-weight: normal }
a.normal:visited { font-weight: normal }
a.normal:active { font-weight: normal }
a.normal:hover { font-weight: normal }
@ -661,22 +661,22 @@ a.impayee:hover { font-weight: bold; color: #550000; }
/*
* ???
*/
div.titre {
div.titre {
font-family: helvetica, verdana, arial, sans-serif;
font-weight: bold;
color: #666633;
font-weight: bold;
color: #666633;
text-decoration: none }
/*
* Tableaux
*/
*/
input.liste_titre {
input.liste_titre {
background: #BBBB88;
border: 0px;
}
tr.liste_titre {
tr.liste_titre {
background: #BBBB88;
font-family: helvetica, verdana, arial, sans-serif;
font-weight: bold;
@ -684,7 +684,7 @@ tr.liste_titre {
white-space: nowrap;
}
td.liste_titre {
td.liste_titre {
background: #BBBB88;
font-family: helvetica, verdana, arial, sans-serif;
font-weight: bold;
@ -694,24 +694,24 @@ td.liste_titre {
}
.liste_titre_sel
{
{
color: #fcfffc;
background: #BBBB88;
font-family: helvetica, verdana, arial, sans-serif;
font-weight: bold;
font-weight: bold;
border-top: 1px solid #FFFFFF;
border-bottom: 1px solid #FFFFFF;
white-space: nowrap;
}
tr.liste_total td {
tr.liste_total td {
background: #F0F0F0;
font-weight: bold;
white-space: nowrap;
border-top: 1px solid #888888;
}
th {
th {
background: #BBBB88;
font-family: helvetica, verdana, arial, sans-serif;
font-weight: bold;
@ -723,52 +723,52 @@ th {
font-size: 1.0em;
}
.pair {
background: #eeeecc;
font-size: 1.0em;
.pair {
background: #eeeecc;
font-size: 1.0em;
}
.impair {
background: #dcdcb3;
font-size: 1.0em;
.impair {
background: #dcdcb3;
font-size: 1.0em;
}
/*
* Boxes
*/
tr.box_titre {
tr.box_titre {
background: #BBBB88;
font-family: Helvetica, Verdana;
font-size: 1.0em;
font-weight: bold; }
tr.box_pair {
background: #dcdcb3;
tr.box_pair {
background: #dcdcb3;
font-size: 0.95em; }
tr.box_impair {
background: #eeeecc;
tr.box_impair {
background: #eeeecc;
font-family: Helvetica, Verdana;
font-size: 0.95em; }
tr.fiche {
tr.fiche {
font-family: Helvetica, Verdana;
font-size: 0.6em; }
/*
* Widgets standard
*/
td.delete {
td.delete {
background: red;
font-weight: bold;
}
td.small {
td.small {
font-size: 10px;
}
tr.nonpayed {
tr.nonpayed {
font-weight: bold;
}
@ -803,7 +803,7 @@ table.valid {
#dhtmltooltip
{
position: absolute;
width: 420px;
width: 450px;
border: 1px solid #444444;
padding: 2px;
background-color: lightyellow;
@ -815,13 +815,13 @@ z-index: 100;
/* ============================================================================== */
/* Calendar */
/* ============================================================================== */
.bodyline {
.bodyline {
-moz-border-radius:8px;
border: 1px #ECECE4 outset;
border: 1px #ECECE4 outset;
padding:0px;
margin-bottom:5px;
}
table.dp {
table.dp {
width: 180px;
background-color: #FFFFFF;
border-top: solid 2px #DDDDDD;
@ -831,19 +831,19 @@ table.dp {
}
.dp td, .tpHour td, .tpMinute td{padding:2px; font-size:10px;}
/* Barre titre */
.dpHead,.tpHead,.tpHour td:Hover .tpHead{
.dpHead,.tpHead,.tpHour td:Hover .tpHead{
font-weight:bold;
background-color:#ccc5b3;
color:black;
color:black;
font-size:11px;
cursor:auto;
}
/* Barre navigation */
.dpButtons,.tpButtons {
text-align:center;
background-color:#dcdcb3;color:#000000; font-weight:bold;
background-color:#dcdcb3;color:#000000; font-weight:bold;
border: 1px outset black;
cursor:pointer;
cursor:pointer;
}
.dpButtons:Active,.tpButtons:Active{border: 1px outset black;}
.dpDayNames td,.dpExplanation {background-color:#D9DBE1; font-weight:bold; text-align:center; font-size:11px;}
@ -964,7 +964,7 @@ div.autocomplete ul li {
cursor:pointer;
}
/* ============================================================================== */
/* Ajax - In place editor */
/* ============================================================================== */
@ -1000,7 +1000,7 @@ form.inplaceeditor-form a { /* The cancel link */
}
/* ============================================================================== */
/* Admin Menu */
/* ============================================================================== */