Work on rpm package

This commit is contained in:
Laurent Destailleur 2011-09-03 01:27:00 +00:00
parent 08a71d1d02
commit 55c5c5f9f5
36 changed files with 854 additions and 725 deletions

View File

@ -464,24 +464,24 @@ if ($nboftargetok) {
$cmd="cp -pr '$BUILDROOT/$PROJECT' '$BUILDROOT/$FILENAMETGZ2'"; $cmd="cp -pr '$BUILDROOT/$PROJECT' '$BUILDROOT/$FILENAMETGZ2'";
$ret=`$cmd`; $ret=`$cmd`;
print "Fix filefunc.inc.php, install/inc.php, support/inc.php\n"; # print "Fix filefunc.inc.php, install/inc.php, support/inc.php\n";
$cmd="cat \"$BUILDROOT/$PROJECT/htdocs/filefunc.inc.php\" | # $cmd="cat \"$BUILDROOT/$PROJECT/htdocs/filefunc.inc.php\" |
sed -e 's/conffile = \"\\\.\\\.\\\/conf\\\/conf.php\"/conffile = \"\\\/etc\\\/dolibarr\\\/conf.php\"/g' | # sed -e 's/conffile = \"\\\.\\\.\\\/conf\\\/conf.php\"/conffile = \"\\\/etc\\\/dolibarr\\\/conf.php\"/g' |
sed -e 's/conffile = \"conf\\\/conf.php\"/conffile = \"\\\/etc\\\/dolibarr\\\/conf.php\"/g' | # sed -e 's/conffile = \"conf\\\/conf.php\"/conffile = \"\\\/etc\\\/dolibarr\\\/conf.php\"/g' |
sed -e 's/conffiletoshow = \"htdocs\\\/conf\\\/conf.php\"/conffiletoshow = \"\\\/etc\\\/dolibarr\\\/conf.php\"/g' > \"$BUILDROOT/$FILENAMETGZ2/htdocs/filefunc.inc.php\""; # sed -e 's/conffiletoshow = \"htdocs\\\/conf\\\/conf.php\"/conffiletoshow = \"\\\/etc\\\/dolibarr\\\/conf.php\"/g' > \"$BUILDROOT/$FILENAMETGZ2/htdocs/filefunc.inc.php\"";
$ret=`$cmd`; # $ret=`$cmd`;
$cmd="cat \"$BUILDROOT/$PROJECT/htdocs/install/inc.php\" | # $cmd="cat \"$BUILDROOT/$PROJECT/htdocs/install/inc.php\" |
sed -e 's/conffile = \"\\\.\\\.\\\/conf\\\/conf.php\"/conffile = \"\\\/etc\\\/dolibarr\\\/conf.php\"/g' | # sed -e 's/conffile = \"\\\.\\\.\\\/conf\\\/conf.php\"/conffile = \"\\\/etc\\\/dolibarr\\\/conf.php\"/g' |
sed -e 's/conffile = \"conf\\\/conf.php\"/conffile = \"\\\/etc\\\/dolibarr\\\/conf.php\"/g' | # sed -e 's/conffile = \"conf\\\/conf.php\"/conffile = \"\\\/etc\\\/dolibarr\\\/conf.php\"/g' |
sed -e 's/conffiletoshow = \"htdocs\\\/conf\\\/conf.php\"/conffiletoshow = \"\\\/etc\\\/dolibarr\\\/conf.php\"/g' > \"$BUILDROOT/$FILENAMETGZ2/htdocs/install/inc.php\""; # sed -e 's/conffiletoshow = \"htdocs\\\/conf\\\/conf.php\"/conffiletoshow = \"\\\/etc\\\/dolibarr\\\/conf.php\"/g' > \"$BUILDROOT/$FILENAMETGZ2/htdocs/install/inc.php\"";
$ret=`$cmd`; # $ret=`$cmd`;
$cmd="cat \"$BUILDROOT/$PROJECT/htdocs/support/inc.php\" | # $cmd="cat \"$BUILDROOT/$PROJECT/htdocs/support/inc.php\" |
sed -e 's/conffile = \"\\\.\\\.\\\/conf\\\/conf.php\"/conffile = \"\\\/etc\\\/dolibarr\\\/conf.php\"/g' | # sed -e 's/conffile = \"\\\.\\\.\\\/conf\\\/conf.php\"/conffile = \"\\\/etc\\\/dolibarr\\\/conf.php\"/g' |
sed -e 's/conffile = \"conf\\\/conf.php\"/conffile = \"\\\/etc\\\/dolibarr\\\/conf.php\"/g' | # sed -e 's/conffile = \"conf\\\/conf.php\"/conffile = \"\\\/etc\\\/dolibarr\\\/conf.php\"/g' |
sed -e 's/conffiletoshow = \"htdocs\\\/conf\\\/conf.php\"/conffiletoshow = \"\\\/etc\\\/dolibarr\\\/conf.php\"/g' > \"$BUILDROOT/$FILENAMETGZ2/htdocs/support/inc.php\""; # sed -e 's/conffiletoshow = \"htdocs\\\/conf\\\/conf.php\"/conffiletoshow = \"\\\/etc\\\/dolibarr\\\/conf.php\"/g' > \"$BUILDROOT/$FILENAMETGZ2/htdocs/support/inc.php\"";
$ret=`$cmd`; # $ret=`$cmd`;
print "Remove other files\n"; #print "Remove other files\n";
#$ret=`rm -f $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/ChangeLog`; #$ret=`rm -f $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/ChangeLog`;
#$ret=`rm -f $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/COPYING`; #$ret=`rm -f $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/COPYING`;
#$ret=`rm -f $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/INSTALL`; #$ret=`rm -f $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/INSTALL`;
@ -503,13 +503,13 @@ if ($nboftargetok) {
#$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/build/zip`; #$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/build/zip`;
#$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/build/perl`; #$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/build/perl`;
# We remove embedded libraries or fonts # We remove embedded libraries or fonts
if ($target !~ /GENE/i) #if ($target !~ /GENE/i)
{ #{
$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/htdocs/includes/artichow/font`, # $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/htdocs/includes/artichow/font`,
$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/htdocs/includes/barcode/php-barcode/fonts`, # $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/htdocs/includes/barcode/php-barcode/fonts`,
} #}
#$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/htdocs/includes/odtphp/zip/pclzip`; #$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/htdocs/includes/odtphp/zip/pclzip`;
$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/htdocs/includes/odtphp/zip/pclzip/gnu-lgpl.txt`; #$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/htdocs/includes/odtphp/zip/pclzip/gnu-lgpl.txt`;
# Conf files # Conf files
#print "Copy config files into $BUILDROOT/$FILENAMETGZ2/etc/$PROJECT\n"; #print "Copy config files into $BUILDROOT/$FILENAMETGZ2/etc/$PROJECT\n";
@ -570,6 +570,9 @@ if ($nboftargetok) {
close SPECFROM; close SPECFROM;
close SPECTO; close SPECTO;
print "Copy patch file to $RPMDIR/SOURCES\n";
$ret=`cp "$SOURCE/build/rpm/dolibarr-forrpm.patch" "$RPMDIR/SOURCES"`;
print "Launch RPM build (rpmbuild --clean -ba $BUILDROOT/${BUILDFIC})\n"; print "Launch RPM build (rpmbuild --clean -ba $BUILDROOT/${BUILDFIC})\n";
#$ret=`rpmbuild -vvvv --clean -ba $BUILDROOT/${BUILDFIC}`; #$ret=`rpmbuild -vvvv --clean -ba $BUILDROOT/${BUILDFIC}`;
$ret=`rpmbuild --clean -ba $BUILDROOT/${BUILDFIC}`; $ret=`rpmbuild --clean -ba $BUILDROOT/${BUILDFIC}`;

42
build/rpm/dolibarr-forrpm.patch Executable file
View File

@ -0,0 +1,42 @@
diff -up htdocs/filefunc.inc.php.patch htdocs/filefunc.inc.php
--- htdocs/filefunc.inc.php.patch 2011-09-03 02:32:48.666952000 +0200
+++ htdocs/filefunc.inc.php 2011-09-03 02:33:00.510952001 +0200
@@ -65,8 +65,8 @@ $conffiletoshowshort = "conf.php";
$conffile = "conf/conf.php";
$conffiletoshow = "htdocs/conf/conf.php";
# For debian/redhat like systems
-#$conffile = "/etc/dolibarr/conf.php";
-#$conffiletoshow = "/etc/dolibarr/conf.php";
+$conffile = "/etc/dolibarr/conf.php";
+$conffiletoshow = "/etc/dolibarr/conf.php";
// Include configuration
diff -up htdocs/install/inc.php.patch htdocs/install/inc.php
--- htdocs/install/inc.php.patch 2011-09-03 02:33:26.450952000 +0200
+++ htdocs/install/inc.php 2011-09-03 02:33:36.286952001 +0200
@@ -75,8 +75,8 @@ $conffiletoshowshort = "conf.php";
$conffile = "../conf/conf.php";
$conffiletoshow = "htdocs/conf/conf.php";
# For debian/redhat like systems
-#$conffile = "/etc/dolibarr/conf.php";
-#$conffiletoshow = "/etc/dolibarr/conf.php";
+$conffile = "/etc/dolibarr/conf.php";
+$conffiletoshow = "/etc/dolibarr/conf.php";
if (! defined('DONOTLOADCONF') && file_exists($conffile))
diff -up htdocs/support/inc.php.patch htdocs/support/inc.php
--- htdocs/support/inc.php.patch 2011-09-03 02:34:39.606952000 +0200
+++ htdocs/support/inc.php 2011-09-03 02:33:59.814952000 +0200
@@ -69,8 +69,8 @@ $conffiletoshowshort = "conf.php";
$conffile = "../conf/conf.php";
$conffiletoshow = "htdocs/conf/conf.php";
# For debian/redhat like systems
-#$conffile = "/etc/dolibarr/conf.php";
-#$conffiletoshow = "/etc/dolibarr/conf.php";
+$conffile = "/etc/dolibarr/conf.php";
+$conffiletoshow = "/etc/dolibarr/conf.php";
$charset="UTF-8"; // If not output format found in any conf file
if (! defined('DONOTLOADCONF') && file_exists($conffile))

View File

@ -20,6 +20,7 @@ Vendor: Dolibarr dev team
URL: http://www.dolibarr.org URL: http://www.dolibarr.org
Source0: http://www.dolibarr.org/files/fedora/%{name}-%{version}.tgz Source0: http://www.dolibarr.org/files/fedora/%{name}-%{version}.tgz
Patch0: %{name}-forrpm.patch
BuildArch: noarch BuildArch: noarch
#BuildArchitectures: noarch #BuildArchitectures: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -67,6 +68,7 @@ cui hai bisogno ed essere facile da usare.
#---- prep #---- prep
%prep %prep
%setup -q %setup -q
%patch0 -p0 -b .patch

View File

@ -20,6 +20,7 @@ Vendor: Dolibarr dev team
URL: http://www.dolibarr.org URL: http://www.dolibarr.org
Source0: http://www.dolibarr.org/files/fedora/%{name}-%{version}.tgz Source0: http://www.dolibarr.org/files/fedora/%{name}-%{version}.tgz
Patch0: %{name}-forrpm.patch
BuildArch: noarch BuildArch: noarch
#BuildArchitectures: noarch #BuildArchitectures: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -68,7 +69,7 @@ cui hai bisogno ed essere facile da usare.
#---- prep #---- prep
%prep %prep
%setup -q %setup -q
%patch0 -p0 -b .patch
#---- build #---- build

View File

@ -20,6 +20,7 @@ Vendor: Dolibarr dev team
URL: http://www.dolibarr.org URL: http://www.dolibarr.org
Source0: http://www.dolibarr.org/files/mandriva/%{name}-%{version}.tgz Source0: http://www.dolibarr.org/files/mandriva/%{name}-%{version}.tgz
Patch0: %{name}-forrpm.patch
BuildArch: noarch BuildArch: noarch
#BuildArchitectures: noarch #BuildArchitectures: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -67,6 +68,7 @@ cui hai bisogno ed essere facile da usare.
#---- prep #---- prep
%prep %prep
%setup -q %setup -q
%patch0 -p0 -b .patch

View File

@ -20,6 +20,7 @@ Vendor: Dolibarr dev team
URL: http://www.dolibarr.org URL: http://www.dolibarr.org
Source0: http://www.dolibarr.org/files/opensuse/%{name}-%{version}.tgz Source0: http://www.dolibarr.org/files/opensuse/%{name}-%{version}.tgz
Patch0: %{name}-forrpm.patch
BuildArch: noarch BuildArch: noarch
#BuildArchitectures: noarch #BuildArchitectures: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -67,6 +68,7 @@ cui hai bisogno ed essere facile da usare.
#---- prep #---- prep
%prep %prep
%setup -q %setup -q
%patch0 -p0 -b .patch
#---- build #---- build

View File

@ -116,8 +116,9 @@ class Adherent extends CommonObject
/** /**
* Adherent * Constructor
* @param DB base de donnees *
* @param DoliDB $DB Database handler
*/ */
function Adherent($DB) function Adherent($DB)
{ {

View File

@ -49,8 +49,9 @@ class AdherentType extends CommonObject
/** /**
* \brief AdherentType * Constructor
* \param DB handler acces base de donnees *
* @param DoliDB $DB Database handler
*/ */
function AdherentType($DB) function AdherentType($DB)
{ {
@ -194,6 +195,7 @@ class AdherentType extends CommonObject
/** /**
* Return list of members' type * Return list of members' type
*
* @return array List of types of members * @return array List of types of members
*/ */
function liste_array() function liste_array()
@ -233,11 +235,12 @@ class AdherentType extends CommonObject
/** /**
* \brief Renvoie nom clicable (avec eventuellement le picto) * Renvoie nom clicable (avec eventuellement le picto)
* \param withpicto 0=Pas de picto, 1=Inclut le picto dans le lien, 2=Picto seul *
* \param maxlen length max libelle * @param withpicto 0=Pas de picto, 1=Inclut le picto dans le lien, 2=Picto seul
* \param option Page lien * @param maxlen length max libelle
* \return string Chaine avec URL * @param option Page lien
* @return string Chaine avec URL
*/ */
function getNomUrl($withpicto=0,$maxlen=0) function getNomUrl($withpicto=0,$maxlen=0)
{ {
@ -260,6 +263,7 @@ class AdherentType extends CommonObject
/** /**
* getMailOnValid * getMailOnValid
*
* @return Return mail model * @return Return mail model
*/ */
function getMailOnValid() function getMailOnValid()
@ -278,6 +282,7 @@ class AdherentType extends CommonObject
/** /**
* getMailOnSubscription * getMailOnSubscription
*
* @return Return mail model * @return Return mail model
*/ */
function getMailOnSubscription() function getMailOnSubscription()
@ -296,6 +301,7 @@ class AdherentType extends CommonObject
/** /**
* getMailOnResiliate * getMailOnResiliate
*
* @return Return mail model * @return Return mail model
*/ */
function getMailOnResiliate() function getMailOnResiliate()

View File

@ -45,12 +45,12 @@ class AdherentStats extends Stats
/** /**
* Constructor * Constructor
* *
* @param $DB Database handler * @param DoliDB $DB Database handler
* @param $socid Id third party * @param int $socid Id third party
* @param $userid Id user for filter * @param int $userid Id user for filter
* @return AdherentStats * @return AdherentStats
*/ */
function AdherentStats($DB, $socid=0, $userid=0) function AdherentStats($DB, $socid=0, $userid=0)
{ {

View File

@ -49,8 +49,9 @@ class Cotisation extends CommonObject
/** /**
* \brief Constructor * Constructor
* \param DB Handler base de donnees *
* @param DoliDB $DB Database handler
*/ */
function Cotisation($DB) function Cotisation($DB)
{ {
@ -59,9 +60,10 @@ class Cotisation extends CommonObject
/** /**
* \brief Fonction qui permet de creer la cotisation * Fonction qui permet de creer la cotisation
* \param userid userid de celui qui insere *
* \return int <0 si KO, Id cotisation cree si OK * @param userid userid de celui qui insere
* @return int <0 si KO, Id cotisation cree si OK
*/ */
function create($userid) function create($userid)
{ {
@ -95,9 +97,10 @@ class Cotisation extends CommonObject
/** /**
* \brief Fonction qui permet de recuperer une cotisation * Fonction qui permet de recuperer une cotisation
* \param rowid Id cotisation *
* \return int <0 si KO, =0 si OK mais non trouve, >0 si OK * @param rowid Id cotisation
* @return int <0 si KO, =0 si OK mais non trouve, >0 si OK
*/ */
function fetch($rowid) function fetch($rowid)
{ {
@ -144,10 +147,11 @@ class Cotisation extends CommonObject
/** /**
* \brief Met a jour en base la cotisation * Met a jour en base la cotisation
* \param user Objet user qui met a jour *
* \param notrigger 0=Desactive les triggers * @param user Objet user qui met a jour
* \param int <0 if KO, >0 if OK * @param notrigger 0=Desactive les triggers
* @param int <0 if KO, >0 if OK
*/ */
function update($user,$notrigger=0) function update($user,$notrigger=0)
{ {
@ -184,9 +188,10 @@ class Cotisation extends CommonObject
} }
/** /**
* \brief Delete a subscription * Delete a subscription
* \param rowid Id cotisation *
* \return int <0 si KO, 0 si OK mais non trouve, >0 si OK * @param rowid Id cotisation
* @return int <0 si KO, 0 si OK mais non trouve, >0 si OK
*/ */
function delete($user) function delete($user)
{ {
@ -250,9 +255,10 @@ class Cotisation extends CommonObject
/** /**
* \brief Renvoie nom clicable (avec eventuellement le picto) * Renvoie nom clicable (avec eventuellement le picto)
* \param withpicto 0=Pas de picto, 1=Inclut le picto dans le lien, 2=Picto seul *
* \return string Chaine avec URL * @param withpicto 0=Pas de picto, 1=Inclut le picto dans le lien, 2=Picto seul
* @return string Chaine avec URL
*/ */
function getNomUrl($withpicto=0) function getNomUrl($withpicto=0)
{ {
@ -274,8 +280,9 @@ class Cotisation extends CommonObject
/** /**
* \brief Charge les informations d'ordre info dans l'objet cotisation * Charge les informations d'ordre info dans l'objet cotisation
* \param id Id adhesion a charger *
* @param id Id adhesion a charger
*/ */
function info($id) function info($id)
{ {

View File

@ -168,7 +168,7 @@ dol_fiche_head($head, $tab, $langs->trans("Statistics"), 0, 'user');
// Print title // Print title
if ($mode && ! sizeof($data)) if ($mode && ! count($data))
{ {
print $langs->trans("NoValidatedMemberYet").'<br>'; print $langs->trans("NoValidatedMemberYet").'<br>';
print '<br>'; print '<br>';
@ -202,7 +202,7 @@ if ($mode == 'memberbycountry')
print "function drawMap() {\n\tvar data = new google.visualization.DataTable();\n"; print "function drawMap() {\n\tvar data = new google.visualization.DataTable();\n";
// Get the total number of rows // Get the total number of rows
print "\tdata.addRows(".sizeof($data).");\n"; print "\tdata.addRows(".count($data).");\n";
print "\tdata.addColumn('string', 'Country');\n"; print "\tdata.addColumn('string', 'Country');\n";
print "\tdata.addColumn('number', 'Number');\n"; print "\tdata.addColumn('number', 'Number');\n";

View File

@ -1,6 +1,6 @@
<?php <?php
/* Copyright (C) 2003-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2003-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2009 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2009 Regis Houssin <regis@dolibarr.fr> * Copyright (C) 2005-2009 Regis Houssin <regis@dolibarr.fr>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
@ -18,9 +18,9 @@
*/ */
/** /**
* \file htdocs/includes/modules/barcode/admin/barcode.php * \file htdocs/admin/barcode.php
* \ingroup barcode * \ingroup barcode
* \brief Page d'administration/configuration du module Code barre * \brief Page to setup barcode module
*/ */
require("../main.inc.php"); require("../main.inc.php");

View File

@ -27,6 +27,7 @@ require_once(DOL_DOCUMENT_ROOT."/lib/admin.lib.php");
require_once(DOL_DOCUMENT_ROOT."/includes/triggers/interface_modNotification_Notification.class.php"); require_once(DOL_DOCUMENT_ROOT."/includes/triggers/interface_modNotification_Notification.class.php");
$langs->load("admin"); $langs->load("admin");
$langs->load("mails");
// Security check // Security check
if (!$user->admin) if (!$user->admin)
@ -63,7 +64,7 @@ print_fiche_titre($langs->trans("NotificationSetup"),$linkback,'setup');
print $langs->trans("NotificationsDesc").'<br><br>'; print $langs->trans("NotificationsDesc").'<br><br>';
if ($mesg) print $mesg.'<br>'; dol_htmloutput_mesg($mesg);
print '<form method="post" action="'.$_SERVER["PHP_SELF"].'">'; print '<form method="post" action="'.$_SERVER["PHP_SELF"].'">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'; print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
@ -80,6 +81,7 @@ $var=!$var;
print '<tr '.$bc[$var].'><td>'; print '<tr '.$bc[$var].'><td>';
print $langs->trans("NotificationEMailFrom").'</td><td>'; print $langs->trans("NotificationEMailFrom").'</td><td>';
print '<input size="32" type="text" name="email_from" value="'.$conf->global->NOTIFICATION_EMAIL_FROM.'">'; print '<input size="32" type="text" name="email_from" value="'.$conf->global->NOTIFICATION_EMAIL_FROM.'">';
if (! empty($conf->global->NOTIFICATION_EMAIL_FROM) && ! isValidEmail($conf->global->NOTIFICATION_EMAIL_FROM)) print ' '.img_warning($langs->trans("BadEMail"));
print '</td></tr>'; print '</td></tr>';
print '</table>'; print '</table>';
@ -121,5 +123,4 @@ $db->close();
llxFooter(); llxFooter();
?> ?>

View File

@ -1,6 +1,7 @@
<?php <?php
/* Copyright (C) 2010 Regis Houssin <regis@dolibarr.fr> /* Copyright (C) 2010 Regis Houssin <regis@dolibarr.fr>
* Copyright (C) 2011 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2011 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2011 Juanjo Menent <jmenent@2byte.es>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -42,16 +43,27 @@ $action=GETPOST('action');
* Actions * Actions
*/ */
if ($_POST["action"] == 'updateMask') if ($action == 'updateMask')
{ {
$maskconstproject=$_POST['maskconstproject']; $maskconstproject=GETPOST("maskconstproject");
$maskproject=$_POST['maskproject']; $maskproject=GETPOST("maskproject");
if ($maskconstproject) dolibarr_set_const($db,$maskconstproject,$maskproject,'chaine',0,'',$conf->entity); if ($maskconstproject) $res = dolibarr_set_const($db,$maskconstproject,$maskproject,'chaine',0,'',$conf->entity);
if (! $res > 0) $error++;
if (! $error)
{
$mesg = "<font class=\"ok\">".$langs->trans("SetupSaved")."</font>";
}
else
{
$mesg = "<font class=\"error\">".$langs->trans("Error")."</font>";
}
} }
if ($_GET["action"] == 'specimen') if ($action == 'specimen')
{ {
$modele=$_GET["module"]; $modele=GETPOST("module");
$project = new Project($db); $project = new Project($db);
$project->initAsSpecimen(); $project->initAsSpecimen();
@ -84,13 +96,16 @@ if ($_GET["action"] == 'specimen')
} }
} }
if ($_GET["action"] == 'set') if ($action == 'set')
{ {
$label = GETPOST("label");
$scandir = GETPOST("scandir");
$type='project'; $type='project';
$sql = "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity, libelle, description)"; $sql = "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity, libelle, description)";
$sql.= " VALUES ('".$db->escape($_GET["value"])."','".$type."',".$conf->entity.", "; $sql.= " VALUES ('".$db->escape($value)."','".$type."',".$conf->entity.", ";
$sql.= ($_GET["label"]?"'".$db->escape($_GET["label"])."'":'null').", "; $sql.= ($label?"'".$db->escape($label)."'":'null').", ";
$sql.= (! empty($_GET["scandir"])?"'".$db->escape($_GET["scandir"])."'":"null"); $sql.= (! empty($scandir)?"'".$db->escape($scandir)."'":"null");
$sql.= ")"; $sql.= ")";
if ($db->query($sql)) if ($db->query($sql))
{ {
@ -98,7 +113,7 @@ if ($_GET["action"] == 'set')
} }
} }
if ($_GET["action"] == 'del') if ($action == 'del')
{ {
$type='project'; $type='project';
$sql = "DELETE FROM ".MAIN_DB_PREFIX."document_model"; $sql = "DELETE FROM ".MAIN_DB_PREFIX."document_model";
@ -111,27 +126,30 @@ if ($_GET["action"] == 'del')
} }
} }
if ($_GET["action"] == 'setdoc') if ($action == 'setdoc')
{ {
$label = GETPOST("label");
$scandir = GETPOST("scandir");
$db->begin(); $db->begin();
if (dolibarr_set_const($db, "PROJECT_ADDON_PDF",$_GET["value"],'chaine',0,'',$conf->entity)) if (dolibarr_set_const($db, "PROJECT_ADDON_PDF",$value,'chaine',0,'',$conf->entity))
{ {
$conf->global->PROJECT_ADDON_PDF = $_GET["value"]; $conf->global->PROJECT_ADDON_PDF = $value;
} }
// On active le modele // On active le modele
$type='project'; $type='project';
$sql_del = "DELETE FROM ".MAIN_DB_PREFIX."document_model"; $sql_del = "DELETE FROM ".MAIN_DB_PREFIX."document_model";
$sql_del.= " WHERE nom = '".$db->escape($_GET["value"])."'"; $sql_del.= " WHERE nom = '".$db->escape($value)."'";
$sql_del.= " AND type = '".$type."'"; $sql_del.= " AND type = '".$type."'";
$sql_del.= " AND entity = ".$conf->entity; $sql_del.= " AND entity = ".$conf->entity;
$result1=$db->query($sql_del); $result1=$db->query($sql_del);
$sql = "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity, libelle, description)"; $sql = "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity, libelle, description)";
$sql.= " VALUES ('".$db->escape($_GET["value"])."', '".$type."', ".$conf->entity.", "; $sql.= " VALUES ('".$db->escape($value)."', '".$type."', ".$conf->entity.", ";
$sql.= ($_GET["label"]?"'".$db->escape($_GET["label"])."'":'null').", "; $sql.= ($label?"'".$db->escape($label)."'":'null').", ";
$sql.= (! empty($_GET["scandir"])?"'".$db->escape($_GET["scandir"])."'":"null"); $sql.= (! empty($scandir)?"'".$db->escape($scandir)."'":"null");
$sql.= ")"; $sql.= ")";
$result2=$db->query($sql); $result2=$db->query($sql);
if ($result1 && $result2) if ($result1 && $result2)
@ -144,7 +162,7 @@ if ($_GET["action"] == 'setdoc')
} }
} }
if ($_GET["action"] == 'setmod') if ($action == 'setmod')
{ {
// TODO Verifier si module numerotation choisi peut etre active // TODO Verifier si module numerotation choisi peut etre active
// par appel methode canBeActivated // par appel methode canBeActivated
@ -380,5 +398,9 @@ if (is_resource($handle))
print '</table><br/>'; print '</table><br/>';
dol_htmloutput_mesg($mesg);
$db->close();
llxFooter(); llxFooter();
?> ?>

View File

@ -518,7 +518,8 @@ $profid[3][1]=$langs->transcountry('ProfId4' ,$mysoc->pays_code);
$var = true; $var = true;
$i=0; $i=0;
while ($i < sizeof($profid)) $nbofloop=count($profid);
while ($i < $nbofloop)
{ {
$var = !$var; $var = !$var;

View File

@ -2094,7 +2094,7 @@ class Propal extends CommonObject
$this->nbtodolate++; $this->nbtodolate++;
} }
} }
// \todo Definir regle des propales a facturer en retard // TODO Definir regle des propales a facturer en retard
// if ($mode == 'signed' && ! sizeof($this->FactureListeArray($obj->rowid))) $this->nbtodolate++; // if ($mode == 'signed' && ! sizeof($this->FactureListeArray($obj->rowid))) $this->nbtodolate++;
} }
return 1; return 1;

View File

@ -78,7 +78,7 @@ if ($action == 'setbankorder')
* view * view
*/ */
llxHeader("",""); llxHeader("",$langs->trans("BankSetupModule"));
$html=new Form($db); $html=new Form($db);
@ -144,7 +144,8 @@ $bankorder[1][2]='BankCode DeskCode BankAccountNumberKey AccountNumber';
$var = true; $var = true;
$i=0; $i=0;
while ($i < sizeof($bankorder)) $nbofbank=count($bankorder);
while ($i < $nbofbank)
{ {
$var = !$var; $var = !$var;
@ -174,11 +175,11 @@ while ($i < sizeof($bankorder))
print '</a></td>'; print '</a></td>';
} }
print '<td>&nbsp;</td>'; print '<td>&nbsp;</td>';
print "</tr>\n"; print '</tr>'."\n";
$i++; $i++;
} }
print "</table>\n"; print '</table>'."\n";
dol_htmloutput_mesg($mesg); dol_htmloutput_mesg($mesg);

View File

@ -1,6 +1,6 @@
<?php <?php
/* Copyright (C) 2006 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2007-2008 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2007-2011 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2009 Regis Houssin <regis@dolibarr.fr> * Copyright (C) 2005-2009 Regis Houssin <regis@dolibarr.fr>
* Copyright (C) 2011 Juanjo Menent <jmenent@2byte.es> * Copyright (C) 2011 Juanjo Menent <jmenent@2byte.es>
* *
@ -44,9 +44,9 @@ class RemiseCheque extends CommonObject
var $errno; var $errno;
/** /**
* \brief Constructeur de la classe * Constructor
* \param DB handler acces base de donnees *
* \param id id compte (0 par defaut) * @param DoliDB $DB Database handler
*/ */
function RemiseCheque($DB) function RemiseCheque($DB)
{ {
@ -56,10 +56,11 @@ class RemiseCheque extends CommonObject
} }
/** /**
* \brief Load record * Load record
* \param id Id record *
* \param ref Ref record * @param id Id record
* \return int <0 if KO, > 0 if OK * @param ref Ref record
* @return int <0 if KO, > 0 if OK
*/ */
function fetch($id,$ref='') function fetch($id,$ref='')
{ {
@ -113,6 +114,7 @@ class RemiseCheque extends CommonObject
/** /**
* Create a receipt to send cheques * Create a receipt to send cheques
*
* @param user User making creation * @param user User making creation
* @param account_id Bank account for cheque receipt * @param account_id Bank account for cheque receipt
* @param limit Limit number of cheque to this * @param limit Limit number of cheque to this
@ -270,6 +272,7 @@ class RemiseCheque extends CommonObject
/** /**
* Supprime la remise en base * Supprime la remise en base
*
* @param user utilisateur qui effectue l'operation * @param user utilisateur qui effectue l'operation
*/ */
function delete($user='') function delete($user='')
@ -324,6 +327,7 @@ class RemiseCheque extends CommonObject
/** /**
* Validate a receipt * Validate a receipt
*
* @param user User * @param user User
* @return int <0 if KO, >0 if OK * @return int <0 if KO, >0 if OK
*/ */
@ -387,7 +391,7 @@ class RemiseCheque extends CommonObject
/** /**
* Old module for cheque receipt numbering * Old module for cheque receipt numbering
* *
* @return string * @return int Next number of cheque
*/ */
function getNextNumber() function getNextNumber()
{ {
@ -421,6 +425,7 @@ class RemiseCheque extends CommonObject
/** /**
* Load indicators for dashboard (this->nbtodo and this->nbtodolate) * Load indicators for dashboard (this->nbtodo and this->nbtodolate)
*
* @param user Objet user * @param user Objet user
* @param filteraccountid To get info for a particular account id * @param filteraccountid To get info for a particular account id
* @return int <0 if KO, >0 if OK * @return int <0 if KO, >0 if OK

View File

@ -19,7 +19,7 @@
*/ */
/** /**
* \file htdocs/compta/prelevement/ligne-prelevement.class.php * \file htdocs/compta/prelevement/class/ligne-prelevement.class.php
* \ingroup prelevement * \ingroup prelevement
* \brief Fichier de la classe des lignes de prelevements * \brief Fichier de la classe des lignes de prelevements
*/ */

View File

@ -401,7 +401,7 @@ print "</table>";
print '<br><table width="100%" class="noborder">'; print '<br><table width="100%" class="noborder">';
// Factures non reglees // Factures non reglees
// \todo Y a bug ici. Il faut prendre le reste a payer et non le total des factures non reglees ! // Y a bug ici. Il faut prendre le reste a payer et non le total des factures non reglees !
$sql = "SELECT f.facnumber, f.rowid, s.nom, s.rowid as socid, f.total_ttc, sum(pf.amount) as am"; $sql = "SELECT f.facnumber, f.rowid, s.nom, s.rowid as socid, f.total_ttc, sum(pf.amount) as am";
$sql .= " FROM ".MAIN_DB_PREFIX."societe as s,".MAIN_DB_PREFIX."facture as f left join ".MAIN_DB_PREFIX."paiement_facture as pf on f.rowid=pf.fk_facture"; $sql .= " FROM ".MAIN_DB_PREFIX."societe as s,".MAIN_DB_PREFIX."facture as f left join ".MAIN_DB_PREFIX."paiement_facture as pf on f.rowid=pf.fk_facture";

View File

@ -511,7 +511,7 @@ class Tva extends CommonObject
$result = $this->db->query($sql); $result = $this->db->query($sql);
if ($result) if ($result)
{ {
$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."tva"); // \todo devrait s'appeler paiementtva $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."tva"); // TODO devrait s'appeler paiementtva
if ($this->id > 0) if ($this->id > 0)
{ {
$ok=1; $ok=1;

View File

@ -114,10 +114,11 @@ function tva_coll($db,$y,$q)
/** /**
* Gets VAT to pay for the given month of the given year * Gets VAT to pay for the given month of the given year
* The function gets the VAT in split results, as the VAT declaration asks * The function gets the VAT in split results, as the VAT declaration asks
* to report the amounts for different VAT rates as different lines. * to report the amounts for different VAT rates as different lines
* @param object Database handler object *
* @param y Year * @param DoliDB $db Database handler object
* @param q Year quarter (1-4) * @param int $y Year
* @param int $q Year quarter (1-4)
*/ */
function tva_paye($db, $y,$q) function tva_paye($db, $y,$q)
{ {

View File

@ -380,7 +380,7 @@ class FormMail
$liste=array(); $liste=array();
$soc=new Societe($this->db); $soc=new Societe($this->db);
$soc->fetch($this->withtosocid); $soc->fetch($this->withtosocid);
foreach ($soc->thirdparty_and_contact_email_array() as $key=>$value) foreach ($soc->thirdparty_and_contact_email_array(1) as $key=>$value)
{ {
$liste[$key]=$value; $liste[$key]=$value;
} }
@ -414,7 +414,7 @@ class FormMail
$liste=array(); $liste=array();
$soc=new Societe($this->db); $soc=new Societe($this->db);
$soc->fetch($this->withtoccsocid); $soc->fetch($this->withtoccsocid);
foreach ($soc->thirdparty_and_contact_email_array() as $key=>$value) foreach ($soc->thirdparty_and_contact_email_array(1) as $key=>$value)
{ {
$liste[$key]=$value; $liste[$key]=$value;
} }
@ -448,7 +448,7 @@ class FormMail
$liste=array(); $liste=array();
$soc=new Societe($this->db); $soc=new Societe($this->db);
$soc->fetch($this->withtosocid); $soc->fetch($this->withtosocid);
foreach ($soc->thirdparty_and_contact_email_array() as $key=>$value) foreach ($soc->thirdparty_and_contact_email_array(1) as $key=>$value)
{ {
$liste[$key]=$value; $liste[$key]=$value;
} }
@ -630,58 +630,6 @@ class FormMail
return $out; return $out;
} }
/**
* \brief Affiche la partie de formulaire pour saisie d'un mail
* \param withtopic 1 pour proposer a la saisie le sujet
* \param withbody 1 pour proposer a la saisie le corps du message
* \param withfile 1 pour proposer a la saisie l'ajout d'un fichier joint
* \todo Fonction a virer quand fichier /comm/mailing.php vire (= quand ecran dans /comm/mailing prets)
*/
function mail_topicmessagefile($withtopic=1,$withbody=1,$withfile=1,$defaultbody)
{
global $langs;
$langs->load("other");
print "<table class=\"border\" width=\"100%\">";
// Topic
if ($withtopic)
{
print "<tr>";
print "<td width=\"180\">".$langs->trans("MailTopic")."</td>";
print "<td>";
print "<input type=\"text\" size=\"60\" name=\"subject\" value=\"\">";
print "</td></tr>";
}
// Message
if ($withbody)
{
print "<tr>";
print "<td width=\"180\" valign=\"top\">".$langs->trans("MailText")."</td>";
print "<td>";
print "<textarea rows=\"8\" cols=\"72\" name=\"message\">";
print $defaultbody;
print "</textarea>";
print "</td></tr>";
}
// Si fichier joint
if ($withfile)
{
print "<tr>";
print "<td width=\"180\">".$langs->trans("MailFile")."</td>";
print "<td>";
print "<input type=\"file\" name=\"addedfile\" value=\"".$langs->trans("Upload")."\"/>";
print "</td></tr>";
}
print "</table>";
}
} }
?> ?>

View File

@ -1,6 +1,6 @@
<?php <?php
/* Copyright (C) 2003-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2003-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2008 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -42,13 +42,11 @@ class Notify
var $fk_project; var $fk_project;
// Les codes actions sont definis dans la table llx_notify_def // Les codes actions sont definis dans la table llx_notify_def
// \todo utiliser des codes texte plutot que numerique
// 1 = Validation fiche inter
// 2 = Validation facture
/** /**
* \brief Constructeur * Constructor
* \param DB Handler acces base *
* @param DoliDB $DB Database handler
*/ */
function Notify($DB) function Notify($DB)
{ {

View File

@ -448,10 +448,10 @@ class RssParser
* Triggered when CDATA is found * Triggered when CDATA is found
* *
* @param $p * @param $p
* @param $element Tag * @param $text Tag
* @param $attrs Attributes of tags
*/ */
function feed_cdata ($p, $text) { function feed_cdata($p, $text)
{
if ($this->_format == 'atom' and $this->incontent) if ($this->_format == 'atom' and $this->incontent)
{ {
$this->append_content( $text ); $this->append_content( $text );
@ -466,9 +466,10 @@ class RssParser
* Triggered when closed tag is found * Triggered when closed tag is found
* *
* @param $p * @param $p
* @param $element Tag * @param $el Tag
*/ */
function feed_end_element ($p, $el) { function feed_end_element($p, $el)
{
$el = strtolower($el); $el = strtolower($el);
if ( $el == 'item' or $el == 'entry' ) if ( $el == 'item' or $el == 'entry' )
@ -520,7 +521,8 @@ class RssParser
* @param $str1 * @param $str1
* @param $str2 * @param $str2
*/ */
function concat (&$str1, $str2="") { function concat(&$str1, $str2="")
{
if (!isset($str1) ) { if (!isset($str1) ) {
$str1=""; $str1="";
} }
@ -529,7 +531,8 @@ class RssParser
/** /**
*/ */
function append_content($text) { function append_content($text)
{
if ( $this->initem ) { if ( $this->initem ) {
$this->concat( $this->current_item[ $this->incontent ], $text ); $this->concat( $this->current_item[ $this->incontent ], $text );
} }
@ -541,7 +544,8 @@ class RssParser
/** /**
* smart append - field and namespace aware * smart append - field and namespace aware
*/ */
function append($el, $text) { function append($el, $text)
{
if (!$el) { if (!$el) {
return; return;
} }

View File

@ -2103,7 +2103,7 @@ class SMTPs
* @return void * @return void
* *
*/ */
function setAttachment ( $strContent, $strFileName = 'unknown', $strMimeType = 'unknown' ) function setAttachment($strContent, $strFileName = 'unknown', $strMimeType = 'unknown')
{ {
if ( $strContent ) if ( $strContent )
{ {
@ -2120,21 +2120,23 @@ class SMTPs
// DOL_CHANGE LDR // DOL_CHANGE LDR
/** /**
* Method public void setImageInline( string ) * Method public void setImageInline( string )
* *
* Image attachments are added to the content array as sub-arrays, * Image attachments are added to the content array as sub-arrays,
* allowing for multiple images for each outbound email * allowing for multiple images for each outbound email
* *
* @param string $strContent Image data to attach to message * @param string $strContent Image data to attach to message
* @param string $strImageName Image Name to give to attachment * @param string $strImageName Image Name to give to attachment
* @param string $strMimeType Image Mime Type of attachment * @param string $strMimeType Image Mime Type of attachment
* @return void * @param string $strImageCid CID
* * @return void
*/ *
function setImageInline ( $strContent, $strImageName = 'unknown', $strMimeType = 'unknown', $strImageCid = 'unknown' ) */
function setImageInline($strContent, $strImageName = 'unknown', $strMimeType = 'unknown', $strImageCid = 'unknown')
{ {
if ( $strContent ) if ($strContent)
{ {
$this->_msgContent['image'][$strImageName]['mimeType'] = $strMimeType; $this->_msgContent['image'][$strImageName]['mimeType'] = $strMimeType;
$this->_msgContent['image'][$strImageName]['imageName'] = $strImageName; $this->_msgContent['image'][$strImageName]['imageName'] = $strImageName;
@ -2170,7 +2172,7 @@ class SMTPs
* @return void * @return void
* *
*/ */
function setSensitivity ( $_value = 0 ) function setSensitivity($_value = 0)
{ {
if ( ( is_numeric ($_value) ) && if ( ( is_numeric ($_value) ) &&
( ( $_value >= 0 ) && ( $_value <= 3 ) ) ) ( ( $_value >= 0 ) && ( $_value <= 3 ) ) )
@ -2516,7 +2518,10 @@ class SMTPs
// ** CSV Version Control Info // ** CSV Version Control Info
/** /**
* $Log: smtps.php,v $ * $Log: smtps.class.php,v $
* Revision 1.1 2011/09/03 00:14:27 eldy
* Doxygen
*
* Revision 1.4 2011/08/28 14:24:23 eldy * Revision 1.4 2011/08/28 14:24:23 eldy
* Doxygen * Doxygen
* *

View File

@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program. If not, see <http://www.gnu.org/licenses/>.
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* or see http://www.gnu.org/ * or see http://www.gnu.org/
*/ */
@ -31,183 +30,189 @@ require_once(DOL_DOCUMENT_ROOT ."/includes/modules/barcode/modules_barcode.php")
*/ */
class modBarcodeCoder extends ModeleBarCode class modBarcodeCoder extends ModeleBarCode
{ {
var $version='dolibarr'; // 'development', 'experimental', 'dolibarr' var $version='dolibarr'; // 'development', 'experimental', 'dolibarr'
var $error=''; var $error='';
/**
* Return if a module can be used or not
* @return boolean true if module can be used
*/
function isEnabled()
{
return true;
}
/**
* Return description
* @return string Texte descripif
*/
function info()
{
global $langs;
return 'Barcode Coder';
}
/**
* Test si les numeros deja en vigueur dans la base ne provoquent pas de
* de conflits qui empechera cette numerotation de fonctionner.
* @return boolean false si conflit, true si ok
*/
function canBeActivated()
{
global $langs;
return true;
}
/**
* Return true if encodinf is supported
* @return int >0 if supported, 0 if not
*/
function encodingIsSupported($encoding)
{
global $genbarcode_loc;
$supported=0;
if ($encoding == 'EAN13') $supported=1;
if ($encoding == 'ISBN') $supported=1;
if ($encoding == 'EAN8') $supported=1;
if ($encoding == 'UPC') $supported=1;
if ($encoding == 'C39') $supported=1;
if ($encoding == 'C128') $supported=1;
return $supported;
}
/** /**
* Return an image file on the fly (no need to write on disk) * Return if a module can be used or not
* @param $code Value to encode *
* @param $encoding Mode of encoding * @return boolean true if module can be used
* @param $readable Code can be read
*/ */
function buildBarCode($code,$encoding,$readable='Y') function isEnabled()
{ {
global $_GET,$_SERVER; return true;
global $conf; }
global $genbarcode_loc, $bar_color, $bg_color, $text_color, $font_loc;
if (! $this->encodingIsSupported($encoding)) return -1;
if ($encoding == 'EAN8' || $encoding == 'EAN13') $encoding = 'EAN';
if ($encoding == 'C39' || $encoding == 'C128') $encoding = substr($encoding,1);
$scale=1; $mode='png';
$_GET["code"]=$code;
$_GET["encoding"]=$encoding;
$_GET["scale"]=$scale;
$_GET["mode"]=$mode;
$font = DOL_DOCUMENT_ROOT.'/includes/barcode/barcode-coder/NOTTB___.TTF';
$fontSize = 10; // GD1 in px ; GD2 in point
$marge = 10; // between barcode and hri in pixel
$x = 125; // barcode center
$y = 125; // barcode center
$height = 50; // barcode height in 1D ; module size in 2D
$width = 2; // barcode height in 1D ; not use in 2D
$angle = 90; // rotation in degrees : nb : non horizontable barcode might not be usable because of pixelisation
$type = 'ean13';
$im = imagecreatetruecolor(300, 300);
$black = ImageColorAllocate($im,0x00,0x00,0x00);
$white = ImageColorAllocate($im,0xff,0xff,0xff);
$red = ImageColorAllocate($im,0xff,0x00,0x00);
$blue = ImageColorAllocate($im,0x00,0x00,0xff);
imagefilledrectangle($im, 0, 0, 300, 300, $white);
require_once(DOL_DOCUMENT_ROOT.'/includes/barcode/barcode-coder/php-barcode-latest.php');
dol_syslog("modBarcodeCoder::buildBarCode $code,$encoding,$scale,$mode");
if ($code) $data = Barcode::gd($im, $black, $x, $y, $angle, $type, array('code'=>$code), $width, $height); /**
if ( isset($font) ){ * Return description
$box = imagettfbbox($fontSize, 0, $font, $data['hri']); *
$len = $box[2] - $box[0]; * @return string Texte descripif
Barcode::rotate(-$len / 2, ($data['height'] / 2) + $fontSize + $marge, $angle, $xt, $yt); */
imagettftext($im, $fontSize, $angle, $x + $xt, $y + $yt, $blue, $font, $data['hri']); function info()
} {
global $langs;
return 'Barcode Coder';
}
/**
* Test si les numeros deja en vigueur dans la base ne provoquent pas de
* de conflits qui empechera cette numerotation de fonctionner
*
* @return boolean false si conflit, true si ok
*/
function canBeActivated()
{
global $langs;
return true;
}
$rot = imagerotate($im, 45, $white); /**
//imagedestroy($im); * Return true if encodinf is supported
$im = imagecreatetruecolor(900, 300); *
$black = ImageColorAllocate($im,0x00,0x00,0x00); * @return int >0 if supported, 0 if not
$white = ImageColorAllocate($im,0xff,0xff,0xff); */
$red = ImageColorAllocate($im,0xff,0x00,0x00); function encodingIsSupported($encoding)
$blue = ImageColorAllocate($im,0x00,0x00,0xff); {
imagefilledrectangle($im, 0, 0, 900, 300, $white); global $genbarcode_loc;
// Barcode rotation : 90° $supported=0;
$angle = 90; if ($encoding == 'EAN13') $supported=1;
$data = Barcode::gd($im, $black, $x, $y, $angle, $type, array('code'=>$code), $width, $height); if ($encoding == 'ISBN') $supported=1;
Barcode::rotate(-$len / 2, ($data['height'] / 2) + $fontSize + $marge, $angle, $xt, $yt); if ($encoding == 'EAN8') $supported=1;
imagettftext($im, $fontSize, $angle, $x + $xt, $y + $yt, $blue, $font, $data['hri']); if ($encoding == 'UPC') $supported=1;
imagettftext($im, 10, 0, 60, 290, $black, $font, 'BARCODE ROTATION : 90°'); if ($encoding == 'C39') $supported=1;
if ($encoding == 'C128') $supported=1;
// barcode rotation : 135 return $supported;
$angle = 135; }
Barcode::gd($im, $black, $x+300, $y, $angle, $type, array('code'=>$code), $width, $height);
Barcode::rotate(-$len / 2, ($data['height'] / 2) + $fontSize + $marge, $angle, $xt, $yt);
imagettftext($im, $fontSize, $angle, $x + 300 + $xt, $y + $yt, $blue, $font, $data['hri']);
imagettftext($im, 10, 0, 360, 290, $black, $font, 'BARCODE ROTATION : 135°');
// last one : image rotation /**
imagecopy($im, $rot, 580, -50, 0, 0, 300, 300); * Return an image file on the fly (no need to write on disk)
imagerectangle($im, 0, 0, 299, 299, $black); *
imagerectangle($im, 299, 0, 599, 299, $black); * @param $code Value to encode
imagerectangle($im, 599, 0, 899, 299, $black); * @param $encoding Mode of encoding
imagettftext($im, 10, 0, 690, 290, $black, $font, 'IMAGE ROTATION'); * @param $readable Code can be read
*/
function buildBarCode($code,$encoding,$readable='Y')
{
global $_GET,$_SERVER;
global $conf;
global $genbarcode_loc, $bar_color, $bg_color, $text_color, $font_loc;
/* if (! $this->encodingIsSupported($encoding)) return -1;
if (! is_array($result))
{
$this->error=$result;
print $this->error;exit;
return -1;
}
*/
imagepng($im); if ($encoding == 'EAN8' || $encoding == 'EAN13') $encoding = 'EAN';
imagedestroy($im); if ($encoding == 'C39' || $encoding == 'C128') $encoding = substr($encoding,1);
return 1; $scale=1; $mode='png';
}
/** $_GET["code"]=$code;
* Save an image file on disk (with no output) $_GET["encoding"]=$encoding;
* @param $code Value to encode $_GET["scale"]=$scale;
* @param $encoding Mode of encoding $_GET["mode"]=$mode;
* @param $readable Code can be read
*/
function writeBarCode($code,$encoding,$readable='Y')
{
global $conf,$filebarcode;
create_exdir($conf->barcode->dir_temp); $font = DOL_DOCUMENT_ROOT.'/includes/barcode/barcode-coder/NOTTB___.TTF';
$file=$conf->barcode->dir_temp.'/barcode_'.$code.'_'.$encoding.'.png'; $fontSize = 10; // GD1 in px ; GD2 in point
$marge = 10; // between barcode and hri in pixel
$x = 125; // barcode center
$y = 125; // barcode center
$height = 50; // barcode height in 1D ; module size in 2D
$width = 2; // barcode height in 1D ; not use in 2D
$angle = 90; // rotation in degrees : nb : non horizontable barcode might not be usable because of pixelisation
$type = 'ean13';
$filebarcode=$file; // global var to be used in barcode_outimage called by barcode_print in buildBarCode $im = imagecreatetruecolor(300, 300);
$black = ImageColorAllocate($im,0x00,0x00,0x00);
$white = ImageColorAllocate($im,0xff,0xff,0xff);
$red = ImageColorAllocate($im,0xff,0x00,0x00);
$blue = ImageColorAllocate($im,0x00,0x00,0xff);
imagefilledrectangle($im, 0, 0, 300, 300, $white);
$result=$this->buildBarCode($code,$encoding,$readable); require_once(DOL_DOCUMENT_ROOT.'/includes/barcode/barcode-coder/php-barcode-latest.php');
dol_syslog("modBarcodeCoder::buildBarCode $code,$encoding,$scale,$mode");
return $result;
} if ($code) $data = Barcode::gd($im, $black, $x, $y, $angle, $type, array('code'=>$code), $width, $height);
if ( isset($font) ){
$box = imagettfbbox($fontSize, 0, $font, $data['hri']);
$len = $box[2] - $box[0];
Barcode::rotate(-$len / 2, ($data['height'] / 2) + $fontSize + $marge, $angle, $xt, $yt);
imagettftext($im, $fontSize, $angle, $x + $xt, $y + $yt, $blue, $font, $data['hri']);
}
$rot = imagerotate($im, 45, $white);
//imagedestroy($im);
$im = imagecreatetruecolor(900, 300);
$black = ImageColorAllocate($im,0x00,0x00,0x00);
$white = ImageColorAllocate($im,0xff,0xff,0xff);
$red = ImageColorAllocate($im,0xff,0x00,0x00);
$blue = ImageColorAllocate($im,0x00,0x00,0xff);
imagefilledrectangle($im, 0, 0, 900, 300, $white);
// Barcode rotation : 90°
$angle = 90;
$data = Barcode::gd($im, $black, $x, $y, $angle, $type, array('code'=>$code), $width, $height);
Barcode::rotate(-$len / 2, ($data['height'] / 2) + $fontSize + $marge, $angle, $xt, $yt);
imagettftext($im, $fontSize, $angle, $x + $xt, $y + $yt, $blue, $font, $data['hri']);
imagettftext($im, 10, 0, 60, 290, $black, $font, 'BARCODE ROTATION : 90°');
// barcode rotation : 135
$angle = 135;
Barcode::gd($im, $black, $x+300, $y, $angle, $type, array('code'=>$code), $width, $height);
Barcode::rotate(-$len / 2, ($data['height'] / 2) + $fontSize + $marge, $angle, $xt, $yt);
imagettftext($im, $fontSize, $angle, $x + 300 + $xt, $y + $yt, $blue, $font, $data['hri']);
imagettftext($im, 10, 0, 360, 290, $black, $font, 'BARCODE ROTATION : 135°');
// last one : image rotation
imagecopy($im, $rot, 580, -50, 0, 0, 300, 300);
imagerectangle($im, 0, 0, 299, 299, $black);
imagerectangle($im, 299, 0, 599, 299, $black);
imagerectangle($im, 599, 0, 899, 299, $black);
imagettftext($im, 10, 0, 690, 290, $black, $font, 'IMAGE ROTATION');
/*
if (! is_array($result))
{
$this->error=$result;
print $this->error;exit;
return -1;
}
*/
imagepng($im);
imagedestroy($im);
return 1;
}
/**
* Save an image file on disk (with no output)
*
* @param $code Value to encode
* @param $encoding Mode of encoding
* @param $readable Code can be read
*/
function writeBarCode($code,$encoding,$readable='Y')
{
global $conf,$filebarcode;
create_exdir($conf->barcode->dir_temp);
$file=$conf->barcode->dir_temp.'/barcode_'.$code.'_'.$encoding.'.png';
$filebarcode=$file; // global var to be used in barcode_outimage called by barcode_print in buildBarCode
$result=$this->buildBarCode($code,$encoding,$readable);
return $result;
}
} }

View File

@ -193,7 +193,7 @@ else
else else
{ {
# If failed, we try to create an empty file # If failed, we try to create an empty file
dolibarr_install_syslog("failed to copy file ".$conffile.".example into ".$conffile.". We try to create it."); dolibarr_install_syslog("failed to copy file ".$conffile.".example into ".$conffile.". We try to create it.", LOG_WARNING);
$fp = @fopen($conffile, "w"); $fp = @fopen($conffile, "w");
if ($fp) if ($fp)
@ -203,6 +203,7 @@ else
@fputs($fp,"?>"); @fputs($fp,"?>");
fclose($fp); fclose($fp);
} }
else dolibarr_install_syslog("failed to create a new file ".$conffile." into current dir ".getcwd().". Check permission.", LOG_ERR);
} }
// First install, on ne peut pas upgrader // First install, on ne peut pas upgrader

View File

@ -234,7 +234,7 @@ class CMailFile
// Use SMTPS library // Use SMTPS library
// ------------------------------------------ // ------------------------------------------
require_once(DOL_DOCUMENT_ROOT."/core/class/smtps.php"); require_once(DOL_DOCUMENT_ROOT."/core/class/smtps.class.php");
$smtps = new SMTPs(); $smtps = new SMTPs();
$smtps->setCharSet($conf->file->character_set_client); $smtps->setCharSet($conf->file->character_set_client);

View File

@ -64,7 +64,7 @@ function vat_by_thirdparty($db, $y, $date_start, $date_end, $modetax, $direction
// If vat paid on due invoices (non draft) // If vat paid on due invoices (non draft)
if ($conf->global->MAIN_MODULE_ACCOUNTING) if ($conf->global->MAIN_MODULE_ACCOUNTING)
{ {
// \todo a ce jour on se sait pas la compter car le montant tva d'un payment // TODO a ce jour on se sait pas la compter car le montant tva d'un payment
// n'est pas stocke dans la table des payments. // n'est pas stocke dans la table des payments.
// Seul le module compta expert peut resoudre ce probleme. // Seul le module compta expert peut resoudre ce probleme.
// (Il faut quand un payment a lieu, stocker en plus du montant du paiement le // (Il faut quand un payment a lieu, stocker en plus du montant du paiement le
@ -102,7 +102,7 @@ function vat_by_thirdparty($db, $y, $date_start, $date_end, $modetax, $direction
if ($conf->global->MAIN_MODULE_ACCOUNTING) if ($conf->global->MAIN_MODULE_ACCOUNTING)
{ {
// If vat paid on payments // If vat paid on payments
// \todo a ce jour on se sait pas la compter car le montant tva d'un payment // TODO a ce jour on se sait pas la compter car le montant tva d'un payment
// n'est pas stocke dans la table des payments. // n'est pas stocke dans la table des payments.
// Seul le module compta expert peut resoudre ce probleme. // Seul le module compta expert peut resoudre ce probleme.
// (Il faut quand un payment a lieu, stocker en plus du montant du paiement le // (Il faut quand un payment a lieu, stocker en plus du montant du paiement le
@ -215,7 +215,7 @@ function vat_by_date($db, $y, $q, $date_start, $date_end, $modetax, $direction,
{ {
if ($conf->global->MAIN_MODULE_ACCOUNTING) if ($conf->global->MAIN_MODULE_ACCOUNTING)
{ {
// \todo a ce jour on se sait pas la compter car le montant tva d'un payment // TODO a ce jour on se sait pas la compter car le montant tva d'un payment
// n'est pas stocke dans la table des payments. // n'est pas stocke dans la table des payments.
// Seul le module compta expert peut resoudre ce probleme. // Seul le module compta expert peut resoudre ce probleme.
// (Il faut quand un payment a lieu, stocker en plus du montant du paiement le // (Il faut quand un payment a lieu, stocker en plus du montant du paiement le
@ -261,7 +261,7 @@ function vat_by_date($db, $y, $q, $date_start, $date_end, $modetax, $direction,
{ {
if ($conf->global->MAIN_MODULE_ACCOUNTING) if ($conf->global->MAIN_MODULE_ACCOUNTING)
{ {
// \todo a ce jour on se sait pas la compter car le montant tva d'un payment // TODO a ce jour on se sait pas la compter car le montant tva d'un payment
// n'est pas stocke dans la table des payments. // n'est pas stocke dans la table des payments.
// Seul le module compta expert peut resoudre ce probleme. // Seul le module compta expert peut resoudre ce probleme.
// (Il faut quand un payment a lieu, stocker en plus du montant du paiement le // (Il faut quand un payment a lieu, stocker en plus du montant du paiement le
@ -376,7 +376,7 @@ function vat_by_date($db, $y, $q, $date_start, $date_end, $modetax, $direction,
if ($conf->global->MAIN_MODULE_ACCOUNTING) if ($conf->global->MAIN_MODULE_ACCOUNTING)
{ {
// Count on invoice date // Count on invoice date
// \todo a ce jour on se sait pas la compter car le montant tva d'un payment // TODO a ce jour on se sait pas la compter car le montant tva d'un payment
// n'est pas stocke dans la table des payments. // n'est pas stocke dans la table des payments.
// Seul le module compta expert peut resoudre ce probleme. // Seul le module compta expert peut resoudre ce probleme.
// (Il faut quand un payment a lieu, stocker en plus du montant du paiement le // (Il faut quand un payment a lieu, stocker en plus du montant du paiement le
@ -423,7 +423,7 @@ function vat_by_date($db, $y, $q, $date_start, $date_end, $modetax, $direction,
if ($conf->global->MAIN_MODULE_ACCOUNTING) if ($conf->global->MAIN_MODULE_ACCOUNTING)
{ {
// Count on payments date // Count on payments date
// \todo a ce jour on se sait pas la compter car le montant tva d'un payment // TODO a ce jour on se sait pas la compter car le montant tva d'un payment
// n'est pas stocke dans la table des payments. // n'est pas stocke dans la table des payments.
// Seul le module compta expert peut resoudre ce probleme. // Seul le module compta expert peut resoudre ce probleme.
// (Il faut quand un paiement a lieu, stocker en plus du montant du paiement le // (Il faut quand un paiement a lieu, stocker en plus du montant du paiement le

View File

@ -16,7 +16,7 @@
*/ */
/** /**
* \file htdocs/product/canvas/service/product.service.class.php * \file htdocs/product/canvas/service/actions_card_service.class.php
* \ingroup service * \ingroup service
* \brief Fichier de la classe des services par defaut * \brief Fichier de la classe des services par defaut
*/ */

View File

@ -2485,7 +2485,7 @@ class Product extends CommonObject
if (file_exists($dir_osencoded)) if (file_exists($dir_osencoded))
{ {
// Cree fichier en taille vignette // Cree fichier en taille vignette
// \todo A faire // TODO A faire
// Cree fichier en taille origine // Cree fichier en taille origine
$content = @file_get_contents($file); $content = @file_get_contents($file);

View File

@ -17,7 +17,7 @@
*/ */
/** /**
* \files htdocs/societe/class/companybankaccount.class.php * \file htdocs/societe/class/companybankaccount.class.php
* \ingroup societe * \ingroup societe
* \brief File of class to manage bank accounts description of third parties * \brief File of class to manage bank accounts description of third parties
*/ */
@ -26,159 +26,159 @@ require_once(DOL_DOCUMENT_ROOT ."/compta/bank/class/account.class.php");
/** /**
* \brief Class to manage bank accounts description of third parties * \brief Class to manage bank accounts description of third parties
*/ */
class CompanyBankAccount extends Account class CompanyBankAccount extends Account
{ {
var $rowid; var $rowid;
var $socid; var $socid;
var $bank; var $bank;
var $courant; var $courant;
var $clos; var $clos;
var $code_banque; var $code_banque;
var $code_guichet; var $code_guichet;
var $number; var $number;
var $cle_rib; var $cle_rib;
var $bic; var $bic;
var $iban; var $iban;
var $iban_prefix; // deprecated var $iban_prefix; // deprecated
var $proprio; var $proprio;
var $adresse_proprio; var $adresse_proprio;
/** /**
* Constructor * Constructor
*/ */
function CompanyBankAccount($DB) function CompanyBankAccount($DB)
{ {
$this->db = $DB; $this->db = $DB;
$this->socid = 0; $this->socid = 0;
$this->clos = 0; $this->clos = 0;
$this->solde = 0; $this->solde = 0;
$this->error_number = 0; $this->error_number = 0;
return 1; return 1;
} }
/** /**
* Create bank information record * Create bank information record
* *
*/ */
function create() function create()
{ {
$sql = "INSERT INTO ".MAIN_DB_PREFIX."societe_rib (fk_soc, datec) values ($this->socid, ".$this->db->idate(mktime()).")"; $sql = "INSERT INTO ".MAIN_DB_PREFIX."societe_rib (fk_soc, datec) values ($this->socid, ".$this->db->idate(mktime()).")";
$resql=$this->db->query($sql); $resql=$this->db->query($sql);
if ($resql) if ($resql)
{ {
if ($this->db->affected_rows($resql)) if ($this->db->affected_rows($resql))
{ {
return 1; return 1;
} }
} }
else else
{ {
print $this->db->error(); print $this->db->error();
return 0; return 0;
} }
} }
/** /**
* *
* *
*/ */
function update($user='') function update($user='')
{ {
$sql = "SELECT fk_soc FROM ".MAIN_DB_PREFIX."societe_rib"; $sql = "SELECT fk_soc FROM ".MAIN_DB_PREFIX."societe_rib";
$sql .= " WHERE fk_soc = ".$this->socid; $sql .= " WHERE fk_soc = ".$this->socid;
$result = $this->db->query($sql); $result = $this->db->query($sql);
if ($result) if ($result)
{ {
if ($this->db->num_rows($result) == 0) if ($this->db->num_rows($result) == 0)
{ {
$this->create(); $this->create();
} }
} }
else else
{ {
dol_print_error($this->db); dol_print_error($this->db);
return 0; return 0;
} }
$sql = "UPDATE ".MAIN_DB_PREFIX."societe_rib SET "; $sql = "UPDATE ".MAIN_DB_PREFIX."societe_rib SET ";
$sql .= " bank = '" .$this->db->escape($this->bank)."'"; $sql .= " bank = '" .$this->db->escape($this->bank)."'";
$sql .= ",code_banque='".$this->code_banque."'"; $sql .= ",code_banque='".$this->code_banque."'";
$sql .= ",code_guichet='".$this->code_guichet."'"; $sql .= ",code_guichet='".$this->code_guichet."'";
$sql .= ",number='".$this->number."'"; $sql .= ",number='".$this->number."'";
$sql .= ",cle_rib='".$this->cle_rib."'"; $sql .= ",cle_rib='".$this->cle_rib."'";
$sql .= ",bic='".$this->bic."'"; $sql .= ",bic='".$this->bic."'";
$sql .= ",iban_prefix = '".$this->iban_prefix."'"; $sql .= ",iban_prefix = '".$this->iban_prefix."'";
$sql .= ",domiciliation='".$this->db->escape($this->domiciliation)."'"; $sql .= ",domiciliation='".$this->db->escape($this->domiciliation)."'";
$sql .= ",proprio = '".$this->db->escape($this->proprio)."'"; $sql .= ",proprio = '".$this->db->escape($this->proprio)."'";
$sql .= ",adresse_proprio = '".$this->db->escape($this->adresse_proprio)."'"; $sql .= ",adresse_proprio = '".$this->db->escape($this->adresse_proprio)."'";
$sql .= " WHERE fk_soc = ".$this->socid; $sql .= " WHERE fk_soc = ".$this->socid;
$result = $this->db->query($sql); $result = $this->db->query($sql);
if ($result) if ($result)
{ {
return 1; return 1;
} }
else else
{ {
dol_print_error($this->db); dol_print_error($this->db);
return 0; return 0;
} }
} }
/** /**
* Load record from database * Load record from database
* @param id Id of record * @param id Id of record
* @param socid Id of company * @param socid Id of company
*/ */
function fetch($id,$socid=0) function fetch($id,$socid=0)
{ {
if (empty($id) && empty($socid)) return -1; if (empty($id) && empty($socid)) return -1;
$sql = "SELECT rowid, fk_soc, bank, number, code_banque, code_guichet, cle_rib, bic, iban_prefix as iban, domiciliation, proprio, adresse_proprio"; $sql = "SELECT rowid, fk_soc, bank, number, code_banque, code_guichet, cle_rib, bic, iban_prefix as iban, domiciliation, proprio, adresse_proprio";
$sql.= " FROM ".MAIN_DB_PREFIX."societe_rib"; $sql.= " FROM ".MAIN_DB_PREFIX."societe_rib";
if ($id) $sql.= " WHERE rowid = ".$id; if ($id) $sql.= " WHERE rowid = ".$id;
if ($socid) $sql.= " WHERE fk_soc = ".$socid; if ($socid) $sql.= " WHERE fk_soc = ".$socid;
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
if ($resql) if ($resql)
{ {
if ($this->db->num_rows($resql)) if ($this->db->num_rows($resql))
{ {
$obj = $this->db->fetch_object($resql); $obj = $this->db->fetch_object($resql);
$this->id = $obj->rowid; $this->id = $obj->rowid;
$this->socid = $obj->fk_soc; $this->socid = $obj->fk_soc;
$this->bank = $obj->bank; $this->bank = $obj->bank;
$this->courant = $obj->courant; $this->courant = $obj->courant;
$this->clos = $obj->clos; $this->clos = $obj->clos;
$this->code_banque = $obj->code_banque; $this->code_banque = $obj->code_banque;
$this->code_guichet = $obj->code_guichet; $this->code_guichet = $obj->code_guichet;
$this->number = $obj->number; $this->number = $obj->number;
$this->cle_rib = $obj->cle_rib; $this->cle_rib = $obj->cle_rib;
$this->bic = $obj->bic; $this->bic = $obj->bic;
$this->iban = $obj->iban; $this->iban = $obj->iban;
$this->iban_prefix = $obj->iban; // deprecated $this->iban_prefix = $obj->iban; // deprecated
$this->domiciliation = $obj->domiciliation; $this->domiciliation = $obj->domiciliation;
$this->proprio = $obj->proprio; $this->proprio = $obj->proprio;
$this->adresse_proprio = $obj->adresse_proprio; $this->adresse_proprio = $obj->adresse_proprio;
} }
$this->db->free($resql); $this->db->free($resql);
return 1; return 1;
} }
else else
{ {
dol_print_error($this->db); dol_print_error($this->db);
return -1; return -1;
} }
} }
} }

View File

@ -1545,14 +1545,16 @@ class Societe extends CommonObject
/** /**
* Return list of contacts emails existing for third party * Return list of contacts emails existing for third party
* @return array Array of contacts emails *
* @param int $addthirdparty 1=Add also a record for thirdparty email
* @return array Array of contacts emails
*/ */
function thirdparty_and_contact_email_array() function thirdparty_and_contact_email_array($addthirdparty=0)
{ {
global $langs; global $langs;
$contact_emails = $this->contact_property_array('email'); $contact_emails = $this->contact_property_array('email');
if ($this->email) if ($this->email && $addthirdparty)
{ {
if (empty($this->name)) $this->name=$this->nom; if (empty($this->name)) $this->name=$this->nom;
// TODO: Tester si email non deja present dans tableau contact // TODO: Tester si email non deja present dans tableau contact
@ -1563,6 +1565,7 @@ class Societe extends CommonObject
/** /**
* Return list of contacts mobile phone existing for third party * Return list of contacts mobile phone existing for third party
*
* @return array Array of contacts emails * @return array Array of contacts emails
*/ */
function thirdparty_and_contact_phone_array() function thirdparty_and_contact_phone_array()
@ -1581,6 +1584,7 @@ class Societe extends CommonObject
/** /**
* Return list of contacts emails or mobile existing for third party * Return list of contacts emails or mobile existing for third party
*
* @param mode 'email' or 'mobile' * @param mode 'email' or 'mobile'
* @return array Array of contacts emails or mobile * @return array Array of contacts emails or mobile
*/ */
@ -1591,6 +1595,7 @@ class Societe extends CommonObject
$sql = "SELECT rowid, email, phone_mobile, name, firstname"; $sql = "SELECT rowid, email, phone_mobile, name, firstname";
$sql.= " FROM ".MAIN_DB_PREFIX."socpeople"; $sql.= " FROM ".MAIN_DB_PREFIX."socpeople";
$sql.= " WHERE fk_soc = '".$this->id."'"; $sql.= " WHERE fk_soc = '".$this->id."'";
$resql=$this->db->query($sql); $resql=$this->db->query($sql);
if ($resql) if ($resql)
{ {
@ -1617,8 +1622,9 @@ class Societe extends CommonObject
/** /**
* \brief Renvoie la liste des contacts de cette societe * Renvoie la liste des contacts de cette societe
* \return array tableau des contacts *
* @return array tableau des contacts
*/ */
function contact_array() function contact_array()
{ {
@ -1649,6 +1655,7 @@ class Societe extends CommonObject
/** /**
* Return property of contact from its id * Return property of contact from its id
*
* @param rowid id of contact * @param rowid id of contact
* @param mode 'email' or 'mobile' * @param mode 'email' or 'mobile'
* @return string email of contact * @return string email of contact
@ -1684,7 +1691,9 @@ class Societe extends CommonObject
/** /**
* \brief Affiche le rib * Return bank number property of thirdparty
*
* @return string Bank number
*/ */
function display_rib() function display_rib()
{ {

View File

@ -33,8 +33,12 @@ $langs->load("mails");
$langs->load("admin"); $langs->load("admin");
$langs->load("other"); $langs->load("other");
$socid = GETPOST("socid",'int');
$action = GETPOST('action');
$contactid=GETPOST('contactid'); // May be an int or 'thirdparty'
$actionid=GETPOST('actionid');
// Security check // Security check
$socid = isset($_GET["socid"])?$_GET["socid"]:'';
if ($user->societe_id) $socid=$user->societe_id; if ($user->societe_id) $socid=$user->societe_id;
$result = restrictedArea($user, 'societe','',''); $result = restrictedArea($user, 'societe','','');
@ -48,41 +52,71 @@ $pagenext = $page + 1;
if (! $sortorder) $sortorder="ASC"; if (! $sortorder) $sortorder="ASC";
if (! $sortfield) $sortfield="c.name"; if (! $sortfield) $sortfield="c.name";
$now=dol_now();
/* /*
* Action * Actions
*/ */
// Add a notification // Add a notification
if ($_POST["action"] == 'add') if ($action == 'add')
{ {
$sql = "DELETE FROM ".MAIN_DB_PREFIX."notify_def"; $error=0;
$sql .= " WHERE fk_soc=".$socid." AND fk_contact=".$_POST["contactid"]." AND fk_action=".$_POST["actionid"];
if ($db->query($sql))
{
$sql = "INSERT INTO ".MAIN_DB_PREFIX."notify_def (datec,fk_soc, fk_contact, fk_action)";
$sql .= " VALUES (".$db->idate(mktime()).",".$socid.",".$_POST["contactid"].",".$_POST["actionid"].")";
if ($db->query($sql)) if (empty($contactid))
{ {
$mesg='<div class="error">'.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Contact")).'</div>';
$error++;
}
if ($actionid <= 0)
{
$mesg='<div class="error">'.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Action")).'</div>';
$error++;
}
} if (! $error)
else {
{ $db->begin();
dol_print_error($db);
} $sql = "DELETE FROM ".MAIN_DB_PREFIX."notify_def";
} $sql .= " WHERE fk_soc=".$socid." AND fk_contact=".$contactid." AND fk_action=".$actionid;
else if ($db->query($sql))
{ {
dol_print_error($db); $sql = "INSERT INTO ".MAIN_DB_PREFIX."notify_def (datec,fk_soc, fk_contact, fk_action)";
} $sql .= " VALUES ('".$db->idate($now)."',".$socid.",".$contactid.",".$actionid.")";
if ($db->query($sql))
{
}
else
{
$error++;
dol_print_error($db);
}
}
else
{
dol_print_error($db);
}
if (! $error)
{
$db->commit();
}
else
{
$db->rollback();
}
}
} }
// Remove a notification // Remove a notification
if ($_GET["action"] == 'delete') if ($action == 'delete')
{ {
$sql = "DELETE FROM ".MAIN_DB_PREFIX."notify_def where rowid=".$_GET["actid"].";"; $sql = "DELETE FROM ".MAIN_DB_PREFIX."notify_def where rowid=".$_GET["actid"].";";
$db->query($sql); $db->query($sql);
} }
@ -95,79 +129,106 @@ $form = new Form($db);
llxHeader(); llxHeader();
$soc = new Societe($db); $object = new Societe($db);
$soc->id = $socid; $result=$object->fetch($socid);
if ( $soc->fetch($soc->id) ) if ($result > 0)
{ {
$html = new Form($db); $html = new Form($db);
$langs->load("other"); $langs->load("other");
$head = societe_prepare_head($soc); $head = societe_prepare_head($object);
dol_fiche_head($head, 'notify', $langs->trans("ThirdParty"),0,'company'); dol_fiche_head($head, 'notify', $langs->trans("ThirdParty"),0,'company');
print '<table class="border"width="100%">'; print '<table class="border"width="100%">';
print '<tr><td width="20%">'.$langs->trans("ThirdPartyName").'</td><td colspan="3">'; print '<tr><td width="20%">'.$langs->trans("ThirdPartyName").'</td><td colspan="3">';
print $form->showrefnav($soc,'socid','',($user->societe_id?0:1),'rowid','nom'); print $form->showrefnav($object,'socid','',($user->societe_id?0:1),'rowid','nom');
print '</td></tr>'; print '</td></tr>';
print '<tr><td width="30%">'.$langs->trans("NbOfActiveNotifications").'</td>'; // Prefix
print '<td colspan="3">'; if (! empty($conf->global->SOCIETE_USEPREFIX)) // Old not used prefix field
$sql = "SELECT COUNT(n.rowid) as nb"; {
$sql.= " FROM ".MAIN_DB_PREFIX."notify_def as n"; print '<tr><td>'.$langs->trans('Prefix').'</td><td colspan="3">'.$object->prefix_comm.'</td></tr>';
$sql.= " WHERE fk_soc = ".$soc->id; }
$resql=$db->query($sql);
if ($resql)
{
$num = $db->num_rows($resql);
$i = 0;
while ($i < $num)
{
$obj = $db->fetch_object($resql);
$nb=$obj->nb;
$i++;
}
}
else {
dol_print_error($db);
}
print $nb;
print '</td></tr>';
print '</table>';
print '</div>'; if ($object->client)
{
print '<tr><td>';
print $langs->trans('CustomerCode').'</td><td colspan="3">';
print $object->code_client;
if ($object->check_codeclient() <> 0) print ' <font class="error">('.$langs->trans("WrongCustomerCode").')</font>';
print '</td></tr>';
}
if ($object->fournisseur)
{
print '<tr><td>';
print $langs->trans('SupplierCode').'</td><td colspan="3">';
print $object->code_fournisseur;
if ($object->check_codefournisseur() <> 0) print ' <font class="error">('.$langs->trans("WrongSupplierCode").')</font>';
print '</td></tr>';
}
print '<tr><td width="30%">'.$langs->trans("NbOfActiveNotifications").'</td>';
print '<td colspan="3">';
$sql = "SELECT COUNT(n.rowid) as nb";
$sql.= " FROM ".MAIN_DB_PREFIX."notify_def as n";
$sql.= " WHERE fk_soc = ".$object->id;
$resql=$db->query($sql);
if ($resql)
{
$num = $db->num_rows($resql);
$i = 0;
while ($i < $num)
{
$obj = $db->fetch_object($resql);
$nb=$obj->nb;
$i++;
}
}
else {
dol_print_error($db);
}
print $nb;
print '</td></tr>';
print '</table>';
// Help
print '<br>'.$langs->trans("NotificationsDesc").'<br>';
// Help dol_fiche_end();
print $langs->trans("NotificationsDesc").'<br><br>';
print "\n"; print "\n";
// Add notification form // Add notification form
print_fiche_titre($langs->trans("AddNewNotification"),'',''); print_fiche_titre($langs->trans("AddNewNotification"),'','');
print '<form action="fiche.php?socid='.$socid.'" method="post">'; print '<form action="fiche.php?socid='.$socid.'" method="post">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'; print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<input type="hidden" name="action" value="add">';
// Line with titles $param="&socid=".$socid;
print '<table width="100%" class="noborder">';
print '<tr class="liste_titre">'; // Line with titles
$param="&socid=".$socid; print '<table width="100%" class="noborder">';
print_liste_field_titre($langs->trans("Contact"),"fiche.php","c.name",'',$param,'"width="45%"',$sortfield,$sortorder); print '<tr class="liste_titre">';
print_liste_field_titre($langs->trans("Action"),"fiche.php","a.titre",'',$param,'"width="35%"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Contact"),"fiche.php","c.name",'',$param,'"width="45%"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Action"),"fiche.php","a.titre",'',$param,'"width="35%"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Type"),"fiche.php","",'',$param,'"width="10%"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Type"),"fiche.php","",'',$param,'"width="10%"',$sortfield,$sortorder);
print '<td>&nbsp;</td>'; print_liste_field_titre('');
print '</tr>'; print '</tr>';
$var=false; $var=false;
if (count($soc->thirdparty_and_contact_email_array()) > 0) $listofemails=$object->thirdparty_and_contact_email_array();
{ if (count($listofemails) > 0)
$actions=array(); {
$actions=array();
// Load array of available notifications // Load array of available notifications
$notificationtrigger=new InterfaceNotification($db); $notificationtrigger=new InterfaceNotification($db);
@ -178,173 +239,174 @@ if ( $soc->fetch($soc->id) )
$label=$langs->trans("Notify_".$notifiedevent['code'])!=$langs->trans("Notify_".$notifiedevent['code'])?$langs->trans("Notify_".$notifiedevent['code']):$notifiedevent['label']; $label=$langs->trans("Notify_".$notifiedevent['code'])!=$langs->trans("Notify_".$notifiedevent['code'])?$langs->trans("Notify_".$notifiedevent['code']):$notifiedevent['label'];
$actions[$notifiedevent['rowid']]=$label; $actions[$notifiedevent['rowid']]=$label;
} }
print '<input type="hidden" name="action" value="add">'; print '<tr '.$bc[$var].'><td>';
print '<tr '.$bc[$var].'><td>'; print $html->selectarray("contactid",$listofemails);
print $html->selectarray("contactid",$soc->thirdparty_and_contact_email_array()); print '</td>';
print '</td>'; print '<td>';
print '<td>'; print $html->selectarray("actionid",$actions,'',1);
print $html->selectarray("actionid",$actions,'',1); print '</td>';
print '</td>';
print '<td>'; print '<td>';
$type=array('email'=>$langs->trans("EMail")); $type=array('email'=>$langs->trans("EMail"));
print $html->selectarray("typeid",$type); print $html->selectarray("typeid",$type);
print '</td>'; print '</td>';
print '<td align="right"><input type="submit" class="button" value="'.$langs->trans("Add").'"></td>'; print '<td align="right"><input type="submit" class="button" value="'.$langs->trans("Add").'"></td>';
print '</tr>'; print '</tr>';
} }
else else
{ {
print '<tr '.$bc[$var].'><td colspan="4">'; print '<tr '.$bc[$var].'><td colspan="4">';
print $langs->trans("YouMustCreateContactFirst"); print $langs->trans("YouMustCreateContactFirst");
print '</td></tr>'; print '</td></tr>';
} }
print '</table>'; print '</table>';
print '</form>'; print '</form>';
print '<br>'; print '<br>';
dol_htmloutput_mesg($mesg);
// List of active notifications // List of active notifications
print_fiche_titre($langs->trans("ListOfActiveNotifications"),'',''); print_fiche_titre($langs->trans("ListOfActiveNotifications"),'','');
$var=true; $var=true;
// Line with titles // Line with titles
print '<table width="100%" class="noborder">'; print '<table width="100%" class="noborder">';
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
print_liste_field_titre($langs->trans("Contact"),"fiche.php","c.name",'',$param,'"width="45%"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Contact"),"fiche.php","c.name",'',$param,'"width="45%"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Action"),"fiche.php","a.titre",'',$param,'"width="35%"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Action"),"fiche.php","a.titre",'',$param,'"width="35%"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Type"),"fiche.php","",'',$param,'"width="10%"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Type"),"fiche.php","",'',$param,'"width="10%"',$sortfield,$sortorder);
print_liste_field_titre('','',''); print_liste_field_titre('','','');
print '</tr>'; print '</tr>';
// List of notifications for contacts // List of notifications for contacts
$sql = "SELECT n.rowid, n.type,"; $sql = "SELECT n.rowid, n.type,";
$sql.= " a.code, a.label,"; $sql.= " a.code, a.label,";
$sql.= " c.rowid as contactid, c.name, c.firstname, c.email"; $sql.= " c.rowid as contactid, c.name, c.firstname, c.email";
$sql.= " FROM ".MAIN_DB_PREFIX."c_action_trigger as a,"; $sql.= " FROM ".MAIN_DB_PREFIX."c_action_trigger as a,";
$sql.= " ".MAIN_DB_PREFIX."notify_def as n,"; $sql.= " ".MAIN_DB_PREFIX."notify_def as n,";
$sql.= " ".MAIN_DB_PREFIX."socpeople c"; $sql.= " ".MAIN_DB_PREFIX."socpeople c";
$sql.= " WHERE a.rowid = n.fk_action"; $sql.= " WHERE a.rowid = n.fk_action";
$sql.= " AND c.rowid = n.fk_contact"; $sql.= " AND c.rowid = n.fk_contact";
$sql.= " AND c.fk_soc = ".$soc->id; $sql.= " AND c.fk_soc = ".$object->id;
$resql=$db->query($sql); $resql=$db->query($sql);
if ($resql) if ($resql)
{ {
$num = $db->num_rows($resql); $num = $db->num_rows($resql);
$i = 0; $i = 0;
$contactstatic=new Contact($db); $contactstatic=new Contact($db);
while ($i < $num) while ($i < $num)
{ {
$var = !$var; $var = !$var;
$obj = $db->fetch_object($resql); $obj = $db->fetch_object($resql);
$contactstatic->id=$obj->contactid; $contactstatic->id=$obj->contactid;
$contactstatic->name=$obj->name; $contactstatic->name=$obj->name;
$contactstatic->firstname=$obj->firstname; $contactstatic->firstname=$obj->firstname;
print '<tr '.$bc[$var].'><td>'.$contactstatic->getNomUrl(1); print '<tr '.$bc[$var].'><td>'.$contactstatic->getNomUrl(1);
if ($obj->type == 'email') if ($obj->type == 'email')
{ {
if (isValidEmail($obj->email)) if (isValidEmail($obj->email))
{ {
print ' &lt;'.$obj->email.'&gt;'; print ' &lt;'.$obj->email.'&gt;';
} }
else else
{ {
$langs->load("errors"); $langs->load("errors");
print ' &nbsp; '.img_warning().' '.$langs->trans("ErrorBadEMail",$obj->email); print ' &nbsp; '.img_warning().' '.$langs->trans("ErrorBadEMail",$obj->email);
} }
} }
print '</td>'; print '</td>';
print '<td>'; print '<td>';
$label=($langs->trans("Notify_".$obj->code)!="Notify_".$obj->code?$langs->trans("Notify_".$obj->code):$obj->label); $label=($langs->trans("Notify_".$obj->code)!="Notify_".$obj->code?$langs->trans("Notify_".$obj->code):$obj->label);
print $label; print $label;
print '</td>'; print '</td>';
print '<td>'; print '<td>';
if ($obj->type == 'email') print $langs->trans("Email"); if ($obj->type == 'email') print $langs->trans("Email");
if ($obj->type == 'sms') print $langs->trans("SMS"); if ($obj->type == 'sms') print $langs->trans("SMS");
print '</td>'; print '</td>';
print '<td align="right"><a href="fiche.php?socid='.$socid.'&action=delete&actid='.$obj->rowid.'">'.img_delete().'</a></td>'; print '<td align="right"><a href="fiche.php?socid='.$socid.'&action=delete&actid='.$obj->rowid.'">'.img_delete().'</a></td>';
print '</tr>'; print '</tr>';
$i++; $i++;
} }
$db->free($resql); $db->free($resql);
} }
else else
{ {
dol_print_error($db); dol_print_error($db);
} }
print '</table>'; print '</table>';
print '<br>'; print '<br>';
// List of notifications done // List of notifications done
print_fiche_titre($langs->trans("ListOfNotificationsDone"),'',''); print_fiche_titre($langs->trans("ListOfNotificationsDone"),'','');
$var=true; $var=true;
// Line with titles // Line with titles
print '<table width="100%" class="noborder">'; print '<table width="100%" class="noborder">';
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
print_liste_field_titre($langs->trans("Contact"),"fiche.php","c.name",'',"&socid=$socid",'',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Contact"),"fiche.php","c.name",'',$param,'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Action"),"fiche.php","a.titre",'',"&socid=$socid",'',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Action"),"fiche.php","a.titre",'',$param,'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Date"),"fiche.php","a.titre",'',"&socid=$socid",'align="right"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Date"),"fiche.php","a.daten",'',$param,'align="right"',$sortfield,$sortorder);
print '</tr>'; print '</tr>';
// List // List
$sql = "SELECT n.rowid, n.daten, n.email, n.objet_type, n.objet_id,"; $sql = "SELECT n.rowid, n.daten, n.email, n.objet_type, n.objet_id,";
$sql.= " c.rowid as id, c.name, c.firstname, c.email,"; $sql.= " c.rowid as id, c.name, c.firstname, c.email,";
$sql.= " a.code, a.label"; $sql.= " a.code, a.label";
$sql.= " FROM ".MAIN_DB_PREFIX."c_action_trigger as a,"; $sql.= " FROM ".MAIN_DB_PREFIX."c_action_trigger as a,";
$sql.= " ".MAIN_DB_PREFIX."notify as n, "; $sql.= " ".MAIN_DB_PREFIX."notify as n, ";
$sql.= " ".MAIN_DB_PREFIX."socpeople as c"; $sql.= " ".MAIN_DB_PREFIX."socpeople as c";
$sql.= " WHERE a.rowid = n.fk_action"; $sql.= " WHERE a.rowid = n.fk_action";
$sql.= " AND c.rowid = n.fk_contact"; $sql.= " AND c.rowid = n.fk_contact";
$sql.= " AND c.fk_soc = ".$soc->id; $sql.= " AND c.fk_soc = ".$object->id;
$resql=$db->query($sql); $resql=$db->query($sql);
if ($resql) if ($resql)
{ {
$num = $db->num_rows($resql); $num = $db->num_rows($resql);
$i = 0; $i = 0;
$contactstatic=new Contact($db); $contactstatic=new Contact($db);
while ($i < $num) while ($i < $num)
{ {
$var = !$var; $var = !$var;
$obj = $db->fetch_object($resql); $obj = $db->fetch_object($resql);
$contactstatic->id=$obj->id; $contactstatic->id=$obj->id;
$contactstatic->name=$obj->name; $contactstatic->name=$obj->name;
$contactstatic->firstname=$obj->firstname; $contactstatic->firstname=$obj->firstname;
print '<tr '.$bc[$var].'><td>'.$contactstatic->getNomUrl(1); print '<tr '.$bc[$var].'><td>'.$contactstatic->getNomUrl(1);
print $obj->email?' &lt;'.$obj->email.'&gt;':$langs->trans("NoMail"); print $obj->email?' &lt;'.$obj->email.'&gt;':$langs->trans("NoMail");
print '</td>'; print '</td>';
print '<td>'; print '<td>';
$label=($langs->trans("Notify_".$obj->code)!="Notify_".$obj->code?$langs->trans("Notify_".$obj->code):$obj->label); $label=($langs->trans("Notify_".$obj->code)!="Notify_".$obj->code?$langs->trans("Notify_".$obj->code):$obj->label);
print $label; print $label;
print '</td>'; print '</td>';
// TODO Add link to object here // TODO Add link to object here
// print // print
print'<td align="right">'.dol_print_date($db->jdate($obj->daten), 'dayhour').'</td>'; print'<td align="right">'.dol_print_date($db->jdate($obj->daten), 'dayhour').'</td>';
print '</tr>'; print '</tr>';
$i++; $i++;
} }
$db->free($resql); $db->free($resql);
} }
else else
{ {
dol_print_error($db); dol_print_error($db);
} }
print '</table>'; print '</table>';
} }
else dol_print_error('','RecordNotFound');
$db->close(); $db->close();

View File

@ -127,8 +127,8 @@ input.ui-input-text, textarea.ui-input-text {
/* ============================================================================== */ /* ============================================================================== */
div.fiche { div.fiche {
margin-<?php print $left; ?>: <?php print empty($conf->browser->phone)?'10':'2'; ?>px; margin-<?php print $left; ?>: <?php print (empty($conf->browser->phone)?'10':'2'); ?>px;
margin-<?php print $right; ?>: <?php print empty($conf->browser->phone)?'6':''; ?>px; margin-<?php print $right; ?>: <?php print (empty($conf->browser->phone)?'6':''); ?>px;
} }
div.fichecenter { div.fichecenter {