diff --git a/build/makepack-dolibarrmodule.pl b/build/makepack-dolibarrmodule.pl index 28220e9df95..e708340266d 100755 --- a/build/makepack-dolibarrmodule.pl +++ b/build/makepack-dolibarrmodule.pl @@ -88,18 +88,6 @@ print "Source directory: $SOURCE\n"; print "Target directory: $NEWDESTI\n"; -# Ask and set version $MAJOR, $MINOR and $BUILD -print "Enter value for version: "; -$PROJVERSION=; -chomp($PROJVERSION); -($MAJOR,$MINOR,$BUILD)=split(/\./,$PROJVERSION,3); -if ($MINOR eq '') -{ - print "Enter value for minor version: "; - $MINOR=; - chomp($MINOR); -} - # Ask module print "Enter name for your module (mymodule, mywonderfulmondule, ... or 'all') : "; $PROJECTINPUT=; @@ -130,6 +118,8 @@ else # Loop on each projects foreach my $PROJECT (@PROJECTLIST) { + $PROJECTLC=lc($PROJECT); + if (! -f "makepack-".$PROJECT.".conf") { print "Error: can't open conf file makepack-".$PROJECT.".conf\n"; @@ -141,9 +131,28 @@ foreach my $PROJECT (@PROJECTLIST) { exit 2; } - $FILENAME="$PROJECT"; - $FILENAMETGZ="module_$PROJECT-$MAJOR.$MINOR".($BUILD ne ''?".$BUILD":""); - $FILENAMEZIP="module_$PROJECT-$MAJOR.$MINOR".($BUILD ne ''?".$BUILD":""); + # Get version $MAJOR, $MINOR and $BUILD + print "Version detected for module ".$PROJECT.": "; + $result=open(IN,"<".$SOURCE."/htdocs/".$PROJECTLC."/core/modules/mod".$PROJECT.".class.php"); + if (! $result) { die "Error: Can't open descriptor file ".$SOURCE."/htdocs/".$PROJECTLC."/core/modules/mod".$PROJECT.".class.php for reading.\n"; } + while() + { + if ($_ =~ /this->version\s*=\s*'([\d\.]+)'/) { $PROJVERSION=$1; break; } + } + close IN; + print $PROJVERSION."\n"; + + ($MAJOR,$MINOR,$BUILD)=split(/\./,$PROJVERSION,3); + if ($MINOR eq '') + { + print "Enter value for minor version for module ".$PROJECT.": "; + $MINOR=; + chomp($MINOR); + } + + $FILENAME="$PROJECTLC"; + $FILENAMETGZ="module_$PROJECTLC-$MAJOR.$MINOR".($BUILD ne ''?".$BUILD":""); + $FILENAMEZIP="module_$PROJECTLC-$MAJOR.$MINOR".($BUILD ne ''?".$BUILD":""); if (-d "/usr/src/redhat") { # redhat $RPMDIR="/usr/src/redhat"; @@ -230,7 +239,7 @@ foreach my $PROJECT (@PROJECTLIST) { $ret=`rm -fr "$BUILDROOT"`; mkdir "$BUILDROOT"; - mkdir "$BUILDROOT/$PROJECT"; + mkdir "$BUILDROOT/$PROJECTLC"; $result=open(IN,"$BUILDROOT/$PROJECT/build/version-".$PROJECT.".txt"); + open(VF,">$BUILDROOT/$PROJECTLC/build/version-".$PROJECTLC.".txt"); - print "Create version file $BUILDROOT/$PROJECT/build/version-".$PROJECT.".txt with date ".$fulldate."\n"; - $ret=`mkdir -p "$BUILDROOT/$PROJECT/build"`; + print "Create version file $BUILDROOT/$PROJECTLC/build/version-".$PROJECTLC.".txt with date ".$fulldate."\n"; + $ret=`mkdir -p "$BUILDROOT/$PROJECTLC/build"`; print VF "Version: ".$MAJOR.".".$MINOR.($BUILD ne ''?".$BUILD":"")."\n"; print VF "Build : ".$fulldate."\n"; close VF; } print "Clean $BUILDROOT\n"; - $ret=`rm -fr $BUILDROOT/$PROJECT/.cache`; - $ret=`rm -fr $BUILDROOT/$PROJECT/.project`; - $ret=`rm -fr $BUILDROOT/$PROJECT/.settings`; - $ret=`rm -fr $BUILDROOT/$PROJECT/index.php`; - $ret=`rm -fr $BUILDROOT/$PROJECT/build/html`; - $ret=`rm -fr $BUILDROOT/$PROJECT/documents`; - $ret=`rm -fr $BUILDROOT/$PROJECT/document`; - $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/conf/conf.php.mysql`; - $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/conf/conf.php.old`; - $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/conf/conf.php.postgres`; - $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/conf/conf*sav*`; - $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/custom`; - $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/custom2`; - $ret=`rm -fr $BUILDROOT/$PROJECT/test`; - $ret=`rm -fr $BUILDROOT/$PROJECT/Thumbs.db $BUILDROOT/$PROJECT/*/Thumbs.db $BUILDROOT/$PROJECT/*/*/Thumbs.db $BUILDROOT/$PROJECT/*/*/*/Thumbs.db $BUILDROOT/$PROJECT/*/*/*/*/Thumbs.db`; - $ret=`rm -fr $BUILDROOT/$PROJECT/CVS* $BUILDROOT/$PROJECT/*/CVS* $BUILDROOT/$PROJECT/*/*/CVS* $BUILDROOT/$PROJECT/*/*/*/CVS* $BUILDROOT/$PROJECT/*/*/*/*/CVS* $BUILDROOT/$PROJECT/*/*/*/*/*/CVS*`; + $ret=`rm -fr $BUILDROOT/$PROJECTLC/.cache`; + $ret=`rm -fr $BUILDROOT/$PROJECTLC/.project`; + $ret=`rm -fr $BUILDROOT/$PROJECTLC/.settings`; + $ret=`rm -fr $BUILDROOT/$PROJECTLC/index.php`; + $ret=`rm -fr $BUILDROOT/$PROJECTLC/build/html`; + $ret=`rm -fr $BUILDROOT/$PROJECTLC/documents`; + $ret=`rm -fr $BUILDROOT/$PROJECTLC/document`; + $ret=`rm -fr $BUILDROOT/$PROJECTLC/htdocs/conf/conf.php.mysql`; + $ret=`rm -fr $BUILDROOT/$PROJECTLC/htdocs/conf/conf.php.old`; + $ret=`rm -fr $BUILDROOT/$PROJECTLC/htdocs/conf/conf.php.postgres`; + $ret=`rm -fr $BUILDROOT/$PROJECTLC/htdocs/conf/conf*sav*`; + $ret=`rm -fr $BUILDROOT/$PROJECTLC/htdocs/custom`; + $ret=`rm -fr $BUILDROOT/$PROJECTLC/htdocs/custom2`; + $ret=`rm -fr $BUILDROOT/$PROJECTLC/test`; + $ret=`rm -fr $BUILDROOT/$PROJECTLC/Thumbs.db $BUILDROOT/$PROJECTLC/*/Thumbs.db $BUILDROOT/$PROJECTLC/*/*/Thumbs.db $BUILDROOT/$PROJECTLC/*/*/*/Thumbs.db $BUILDROOT/$PROJECTLC/*/*/*/*/Thumbs.db`; + $ret=`rm -fr $BUILDROOT/$PROJECTLC/CVS* $BUILDROOT/$PROJECTLC/*/CVS* $BUILDROOT/$PROJECTLC/*/*/CVS* $BUILDROOT/$PROJECTLC/*/*/*/CVS* $BUILDROOT/$PROJECTLC/*/*/*/*/CVS* $BUILDROOT/$PROJECTLC/*/*/*/*/*/CVS*`; } # Build package for each target @@ -314,9 +324,9 @@ foreach my $PROJECT (@PROJECTLIST) { unlink "$NEWDESTI/$FILENAMEZIP.zip"; print "Compress $FILENAMEZIP into $FILENAMEZIP.zip...\n"; - print "Go to directory $BUILDROOT/$PROJECT\n"; + print "Go to directory $BUILDROOT/$PROJECTLC\n"; $olddir=getcwd(); - chdir("$BUILDROOT/$PROJECT"); + chdir("$BUILDROOT/$PROJECTLC"); $cmd= "7z a -r -tzip -mx $BUILDROOT/$FILENAMEZIP.zip *"; print $cmd."\n"; $ret= `$cmd`; diff --git a/htdocs/adherents/fiche.php b/htdocs/adherents/fiche.php index 0847af47624..99a89ff0d1e 100644 --- a/htdocs/adherents/fiche.php +++ b/htdocs/adherents/fiche.php @@ -1272,10 +1272,10 @@ else // Cree un tableau formulaire $formquestion=array(); if ($object->email) $formquestion[]=array('type' => 'checkbox', 'name' => 'send_mail', 'label' => $label, 'value' => ($conf->global->ADHERENT_DEFAULT_SENDINFOBYMAIL?true:false)); - if (! empty($conf->global->ADHERENT_USE_MAILMAN)) { + if (! empty($conf->mailman->enabled) && ! empty($conf->global->ADHERENT_USE_MAILMAN)) { $formquestion[]=array('type'=>'other','label'=>$langs->transnoentitiesnoconv("SynchroMailManEnabled"),'value'=>''); } - if (! empty($conf->global->ADHERENT_USE_SPIP)) { + if (! empty($conf->mailman->enabled) && ! empty($conf->global->ADHERENT_USE_SPIP)) { $formquestion[]=array('type'=>'other','label'=>$langs->transnoentitiesnoconv("SynchroSpipEnabled"),'value'=>''); } print $form->formconfirm("fiche.php?rowid=".$rowid,$langs->trans("ValidateMember"),$langs->trans("ConfirmValidateMember"),"confirm_valid",$formquestion,1); diff --git a/htdocs/admin/workflow.php b/htdocs/admin/workflow.php index e948bc1be79..cea1690b818 100644 --- a/htdocs/admin/workflow.php +++ b/htdocs/admin/workflow.php @@ -80,6 +80,7 @@ $workflowcodes=array( 'WORKFLOW_PROPAL_AUTOCREATE_ORDER'=>array('enabled'=>'! empty($conf->propal->enabled) && ! empty($conf->commande->enabled)', 'picto'=>'order'), 'WORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL'=>array('enabled'=>'! empty($conf->propal->enabled) && ! empty($conf->commande->enabled)', 'picto'=>'order','warning'=>'WarningCloseAlways'), 'WORKFLOW_ORDER_AUTOCREATE_INVOICE'=>array('enabled'=>'! empty($conf->commande->enabled) && ! empty($conf->facture->enabled)', 'picto'=>'bill'), + // For the following 2 options, if module invoice is disabled, they does not exists, so "Classify billed" for order must be done manually from order card. 'WORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER'=>array('enabled'=>'! empty($conf->facture->enabled) && ! empty($conf->commande->enabled)', 'picto'=>'bill','warning'=>'WarningCloseAlways'), 'WORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER'=>array('enabled'=>'! empty($conf->facture->enabled) && ! empty($conf->commande->enabled)', 'picto'=>'bill','warning'=>'WarningCloseAlways'), diff --git a/htdocs/comm/action/fiche.php b/htdocs/comm/action/fiche.php index 4f455d26dd2..18bf3ecc7ed 100644 --- a/htdocs/comm/action/fiche.php +++ b/htdocs/comm/action/fiche.php @@ -586,11 +586,10 @@ if ($action == 'create') // Project if (! empty($conf->projet->enabled)) { - $formproject=new FormProjets($db); // Projet associe - $langs->load("project"); + $langs->load("projects"); print ''.$langs->trans("Project").''; @@ -626,7 +625,7 @@ if ($action == 'create') // Other attributes - $parameters=array(); + $parameters=array('id'=>$actioncomm->id); $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$actioncomm,$action); // Note that $action and $object may have been modified by hook @@ -861,7 +860,7 @@ if ($id > 0) print ''; // Other attributes - $parameters=array('colspan' => ' colspan="3"', 'colspanvalue' => '3'); + $parameters=array('colspan'=>' colspan="3"', 'colspanvalue'=>'3', 'id'=>$act->id); $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$act,$action); // Note that $action and $object may have been modified by hook if (empty($reshook) && ! empty($extrafields->attribute_label)) { @@ -1043,7 +1042,7 @@ if ($id > 0) print ''; // Other attributes - $parameters=array('colspan' => ' colspan="3"', 'colspanvalue' => '3'); + $parameters=array('colspan'=>' colspan="3"', 'colspanvalue'=>'3', 'id'=>$act->id); $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$act,$action); // Note that $action and $object may have been modified by hook print ''; diff --git a/htdocs/commande/fiche.php b/htdocs/commande/fiche.php index d40d8bf5a7c..4c400f37a7f 100644 --- a/htdocs/commande/fiche.php +++ b/htdocs/commande/fiche.php @@ -1,34 +1,34 @@ * Copyright (C) 2004-2013 Laurent Destailleur -* Copyright (C) 2005 Marc Barilley / Ocebo -* Copyright (C) 2005-2013 Regis Houssin -* Copyright (C) 2006 Andre Cianfarani -* Copyright (C) 2010-2013 Juanjo Menent -* Copyright (C) 2011 Philippe Grand -* Copyright (C) 2012-2013 Christophe Battarel -* Copyright (C) 2012 Marcos García -* Copyright (C) 2013 Florian Henry -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 3 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program. If not, see . -*/ + * Copyright (C) 2005 Marc Barilley / Ocebo + * Copyright (C) 2005-2013 Regis Houssin + * Copyright (C) 2006 Andre Cianfarani + * Copyright (C) 2010-2013 Juanjo Menent + * Copyright (C) 2011 Philippe Grand + * Copyright (C) 2012-2013 Christophe Battarel + * Copyright (C) 2012 Marcos García + * Copyright (C) 2013 Florian Henry + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ /** * \file htdocs/commande/fiche.php -* \ingroup commande -* \brief Page to show customer order -*/ + * \ingroup commande + * \brief Page to show customer order + */ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; @@ -2483,15 +2483,15 @@ else print ''; } - // Create bill and Classify billed - if (! empty($conf->facture->enabled) && $object->statut > 0 && ! $object->billed) + // Note: Even if module invoice is not enabled, we should be able to use button "Classified billed" + if ($object->statut > 0 && ! $object->billed) { - if ($user->rights->facture->creer && empty($conf->global->WORKFLOW_DISABLE_CREATE_INVOICE_FROM_ORDER)) + if (! empty($conf->facture->enabled) && $user->rights->facture->creer && empty($conf->global->WORKFLOW_DISABLE_CREATE_INVOICE_FROM_ORDER)) { print ''; } - if ($user->rights->commande->creer && $object->statut > 2 && empty($conf->global->WORKFLOW_DISABLE_CLASSIFY_BILLED_FROM_ORDER) && empty($conf->global->WORsKFLOW_BILL_ON_SHIPMENT)) + if ($user->rights->commande->creer && $object->statut > 2 && empty($conf->global->WORKFLOW_DISABLE_CLASSIFY_BILLED_FROM_ORDER) && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT)) { print ''; } diff --git a/htdocs/contact/fiche.php b/htdocs/contact/fiche.php index 88585a230af..0becec81abb 100644 --- a/htdocs/contact/fiche.php +++ b/htdocs/contact/fiche.php @@ -744,11 +744,17 @@ else print $form->selectarray('priv',$selectarray,$object->priv,0); print ''; - // Note - print ''.$langs->trans("Note").''; - print ''; + // Note Public + print ''.$langs->trans("NotePublic").''; + $doleditor = new DolEditor('note_public', $object->note_public, '', 80, 'dolibarr_notes', 'In', 0, false, true, ROWS_3, 70); + print $doleditor->Create(1); + print ''; + + // Note Private + print ''.$langs->trans("NotePrivate").''; + $doleditor = new DolEditor('note_private', $object->note_private, '', 80, 'dolibarr_notes', 'In', 0, false, true, ROWS_3, 70); + print $doleditor->Create(1); + print ''; // Statut print ''.$langs->trans("Status").''; @@ -961,10 +967,14 @@ else print $object->LibPubPriv($object->priv); print ''; - // Note - print ''.$langs->trans("Note").''; - print nl2br($object->note); + // Note Public + print ''.$langs->trans("NotePublic").''; + print nl2br($object->note_public); print ''; + + // Note Private + print ''.$langs->trans("NotePrivate").''; + print nl2br($object->note_private); // Statut print ''.$langs->trans("Status").''; diff --git a/htdocs/contrat/fiche.php b/htdocs/contrat/fiche.php index 06b408d4fa2..613b235826e 100644 --- a/htdocs/contrat/fiche.php +++ b/htdocs/contrat/fiche.php @@ -241,8 +241,8 @@ if ($action == 'add' && $user->rights->contrat->creer) for ($i=0;$i<$num;$i++) { $product_type=($lines[$i]->product_type?$lines[$i]->product_type:0); - - if ($product_type == 1) { //only services + + if ($product_type == 1) { //only services // TODO Exclude also deee // service prédéfini if ($lines[$i]->fk_product > 0) { @@ -286,8 +286,8 @@ if ($action == 'add' && $user->rights->contrat->creer) $lines[$i]->localtax2_tx, $lines[$i]->fk_product, $lines[$i]->remise_percent, - $date_start =0, - $date_end =0, + $lines[$i]->date_start, + $lines[$i]->date_end, 'HT', 0, $lines[$i]->info_bits, @@ -303,7 +303,6 @@ if ($action == 'add' && $user->rights->contrat->creer) } } - } else { diff --git a/htdocs/core/boxes/box_comptes.php b/htdocs/core/boxes/box_comptes.php index 9b80ffefb74..c6ea786aaab 100644 --- a/htdocs/core/boxes/box_comptes.php +++ b/htdocs/core/boxes/box_comptes.php @@ -2,6 +2,7 @@ /* Copyright (C) 2005 Christophe * Copyright (C) 2005-2013 Laurent Destailleur * Copyright (C) 2005-2009 Regis Houssin + * Copyright (C) 2013 Juanjo Menent * * 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 @@ -122,7 +123,7 @@ class box_comptes extends ModeleBoxes ); $this->info_box_contents[$i][3] = array('td' => 'align="right"', - 'text' => price($solde, 1, $langs, 0, -1, 0, $objp->currency_code) + 'text' => price($solde, 0, $langs, 0, 0, -1, $objp->currency_code) ); $listofcurrencies[$objp->currency_code]=1; diff --git a/htdocs/core/boxes/box_graph_product_distribution.php b/htdocs/core/boxes/box_graph_product_distribution.php index a39b0acf1cb..521dd33f0e2 100644 --- a/htdocs/core/boxes/box_graph_product_distribution.php +++ b/htdocs/core/boxes/box_graph_product_distribution.php @@ -103,9 +103,9 @@ class box_graph_product_distribution extends ModeleBoxes $showordernb=$tmparray['showordernb']; } if (empty($showinvoicenb) && empty($showpropalnb) && empty($showordernb)) { $showpropalnb=1; $showinvoicenb=1; $showordernb=1; } - if (empty($conf->facture->enabled) || empty($user->rights->facture->lire)) $showinvoicenb=0; - if (empty($conf->propal->enabled) || empty($user->rights->propal->lire)) $showpropalnb=0; - if (empty($conf->commande->enabled) || empty($user->rights->commande->lire)) $showordernb=0; + if (empty($conf->facture->enabled) || empty($user->rights->facture->lire)) $showinvoicenb=0; + if (empty($conf->propal->enabled) || empty($user->rights->propal->lire)) $showpropalnb=0; + if (empty($conf->commande->enabled) || empty($user->rights->commande->lire)) $showordernb=0; $nowarray=dol_getdate(dol_now(),true); if (empty($year)) $year=$nowarray['year']; @@ -114,30 +114,30 @@ class box_graph_product_distribution extends ModeleBoxes if ($showinvoicenb) $nbofgraph++; if ($showpropalnb) $nbofgraph++; if ($showordernb) $nbofgraph++; - + $paramtitle=$langs->trans("Products").'/'.$langs->trans("Services"); if (empty($conf->produit->enabled)) $paramtitle=$langs->trans("Services"); if (empty($conf->service->enabled)) $paramtitle=$langs->trans("Products"); $socid=empty($user->societe_id)?0:$user->societe_id; $userid=0; // No filter on user creation - + + $WIDTH=($nbofgraph >= 2 || ! empty($conf->dol_optimize_smallscreen))?'160':'320'; + $HEIGHT='192'; + if (! empty($conf->facture->enabled) && ! empty($user->rights->facture->lire)) { - - $WIDTH=($nbofgraph >= 2 || ! empty($conf->dol_optimize_smallscreen))?'160':'320'; - $HEIGHT='192'; - + // Build graphic number of object. $data = array(array('Lib',val1,val2,val3),...) if ($showinvoicenb) { include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facturestats.class.php'; - + $showpointvalue = 1; $nocolor = 0; $mode='customer'; $stats_invoice = new FactureStats($this->db, $socid, $mode, ($userid>0?$userid:0)); $data1 = $stats_invoice->getAllByProductEntry($year,(GETPOST('action')==$refreshaction?-1:(3600*24))); - if (empty($data1)) + if (empty($data1)) { $showpointvalue=0; $nocolor=1; @@ -157,10 +157,10 @@ class box_graph_product_distribution extends ModeleBoxes $legend[]=$data1[$i][0]; $i++; } - + $px1->SetData($data1); unset($data1); - + if ($nocolor) $px1->SetDataColor(array(array(220,220,220))); $px1->SetPrecisionY(0); $px1->SetLegend($legend); @@ -178,29 +178,29 @@ class box_graph_product_distribution extends ModeleBoxes //$px1->mode='depth'; $px1->SetType(array('pie')); $px1->SetTitle($langs->trans("BoxProductDistributionFor",$paramtitle,$langs->transnoentitiesnoconv("Invoices"))); - + $px1->draw($filenamenb,$fileurlnb); } } } - + if (! empty($conf->propal->enabled) && ! empty($user->rights->propal->lire)) { // Build graphic number of object. $data = array(array('Lib',val1,val2,val3),...) if ($showpropalnb) { include_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propalestats.class.php'; - + $showpointvalue = 1; $nocolor = 0; $stats_proposal = new PropaleStats($this->db, $socid, ($userid>0?$userid:0)); $data2 = $stats_proposal->getAllByProductEntry($year,(GETPOST('action')==$refreshaction?-1:(3600*24))); - if (empty($data2)) + if (empty($data2)) { $showpointvalue = 0; $nocolor = 1; $data2=array(array(0=>$langs->trans("None"),1=>1)); } - + $filenamenb = $dir."/prodserforpropal-".$year.".png"; $fileurlnb = DOL_URL_ROOT.'/viewimage.php?modulepart=proposalstats&file=prodserforpropal-'.$year.'.png'; @@ -215,10 +215,10 @@ class box_graph_product_distribution extends ModeleBoxes $legend[]=$data2[$i][0]; $i++; } - + $px2->SetData($data2); unset($data2); - + if ($nocolor) $px2->SetDataColor(array(array(220,220,220))); $px2->SetPrecisionY(0); $px2->SetLegend($legend); @@ -248,18 +248,18 @@ class box_graph_product_distribution extends ModeleBoxes if ($showordernb) { include_once DOL_DOCUMENT_ROOT.'/commande/class/commandestats.class.php'; - + $showpointvalue = 1; $nocolor = 0; $mode='customer'; $stats_order = new CommandeStats($this->db, $socid, $mode, ($userid>0?$userid:0)); $data3 = $stats_order->getAllByProductEntry($year,(GETPOST('action')==$refreshaction?-1:(3600*24))); - if (empty($data3)) + if (empty($data3)) { $showpointvalue = 0; $nocolor = 1; $data3=array(array(0=>$langs->trans("None"),1=>1)); } - + $filenamenb = $dir."/prodserfororder-".$year.".png"; $fileurlnb = DOL_URL_ROOT.'/viewimage.php?modulepart=orderstats&file=prodserfororder-'.$year.'.png'; @@ -274,10 +274,10 @@ class box_graph_product_distribution extends ModeleBoxes $legend[]=$data3[$i][0]; $i++; } - + $px3->SetData($data3); unset($data3); - + if ($nocolor) $px3->SetDataColor(array(array(220,220,220))); $px3->SetPrecisionY(0); $px3->SetLegend($legend); @@ -299,7 +299,7 @@ class box_graph_product_distribution extends ModeleBoxes } } } - + if (! $mesg) { $stringtoshow=''; @@ -314,17 +314,17 @@ class box_graph_product_distribution extends ModeleBoxes $stringtoshow.='
'; $stringtoshow.=''; $stringtoshow.=''; - if (! empty($conf->facture->enabled) || ! empty($user->rights->facture->lire)) + if (! empty($conf->facture->enabled) || ! empty($user->rights->facture->lire)) { $stringtoshow.=' '.$langs->trans("ForCustomersInvoices"); $stringtoshow.='   '; } - if (! empty($conf->propal->enabled) || ! empty($user->rights->propal->lire)) + if (! empty($conf->propal->enabled) || ! empty($user->rights->propal->lire)) { $stringtoshow.=' '.$langs->trans("ForProposals"); $stringtoshow.=' '; } - if (! empty($conf->commande->enabled) || ! empty($user->rights->commande->lire)) + if (! empty($conf->commande->enabled) || ! empty($user->rights->commande->lire)) { $stringtoshow.=' '.$langs->trans("ForCustomersOrders"); } diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index f2a3ea58754..8b572bc5635 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -3735,15 +3735,16 @@ class Form * @param int $maxlen Length maximum for labels * @param int $disabled Html select box is disabled * @param int $sort 'ASC' or 'DESC' =Sort on label, '' or 'NONE'=Do not sort + * @param string $morecss Add more class to css styles * @return string HTML select string */ - function selectarray($htmlname, $array, $id='', $show_empty=0, $key_in_label=0, $value_as_key=0, $option='', $translate=0, $maxlen=0, $disabled=0, $sort='') + function selectarray($htmlname, $array, $id='', $show_empty=0, $key_in_label=0, $value_as_key=0, $option='', $translate=0, $maxlen=0, $disabled=0, $sort='', $morecss='') { global $langs; if ($value_as_key) $array=array_combine($array, $array); - $out=''; if ($show_empty) { diff --git a/htdocs/core/lib/agenda.lib.php b/htdocs/core/lib/agenda.lib.php index 8fd4eda6010..082e03e60b1 100644 --- a/htdocs/core/lib/agenda.lib.php +++ b/htdocs/core/lib/agenda.lib.php @@ -46,7 +46,7 @@ function print_actions_filter($form, $canedit, $status, $year, $month, $day, $showbirthday, $filtera, $filtert, $filterd, $pid, $socid, $showextcals=array(), $actioncode='') { global $conf, $user, $langs, $db; - + // Filters print ''; print ''; @@ -56,63 +56,63 @@ function print_actions_filter($form, $canedit, $status, $year, $month, $day, $sh print ''; print ''; print ''; - + print ''; - + // Buttons print ''; - + // Legend if ($conf->use_javascript_ajax && is_array($showextcals)) { @@ -144,22 +144,24 @@ function print_actions_filter($form, $canedit, $status, $year, $month, $day, $sh foreach ($showextcals as $val) { $htmlname = dol_string_nospecial($val['name']); + print ''; + print ' ' . $val ['name']; + print ''; } } } - print ''; + print ''; print '
'; - + print ''; - + if ($canedit) { print ''; print ''; print ''; - + print ''; print ''; - + print ''; print ''; - + include_once DOL_DOCUMENT_ROOT . '/core/class/html.formactions.class.php'; $formactions=new FormActions($db); print ''; print ''; } - + if (! empty($conf->projet->enabled) && $user->rights->projet->lire) { require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; $formproject=new FormProjets($db); - + print ''; print ''; } - + print '
'; print $langs->trans("ActionsAskedBy"); - print '  '; + print '  '; print $form->select_dolusers($filtera, 'userasked', 1, '', ! $canedit); print '
'; print $langs->trans("or") . ' ' . $langs->trans("ActionsToDoBy"); - print '  '; + print '  '; print $form->select_dolusers($filtert, 'usertodo', 1, '', ! $canedit); print '
'; print $langs->trans("or") . ' ' . $langs->trans("ActionsDoneBy"); - print '  '; + print '  '; print $form->select_dolusers($filterd, 'userdone', 1, '', ! $canedit); print '
'; print $langs->trans("Type"); - print '  '; - + print '  '; + print $formactions->select_type_actions($actioncode, "actioncode", '', (empty($conf->global->AGENDA_USE_EVENT_TYPE) ? 1 : 0)); - + print '
'; print $langs->trans("Project").'   '; - print ''; + print ''; $formproject->select_projects($socid?$socid:-1, $pid, 'projectid', 64); print '
'; print '
'; print img_picto($langs->trans("ViewCal"), 'object_calendar', 'class="hideonsmartphone"') . ' '; @@ -123,7 +123,7 @@ function print_actions_filter($form, $canedit, $status, $year, $month, $day, $sh print '
'; print img_picto($langs->trans("ViewList"), 'object_list', 'class="hideonsmartphone"') . ' '; print '
'; print '' . "\n"; - print '
' . $val ['name'] . '
' . $langs->trans("AgendaShowBirthdayEvents") . '
'.$langs->trans("AgendaShowBirthdayEvents").'
'; print ''; } - + print ''; - + print ''; print '
'; } diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php index a81eff0e5c3..4de405e3567 100644 --- a/htdocs/core/lib/company.lib.php +++ b/htdocs/core/lib/company.lib.php @@ -127,7 +127,7 @@ function societe_prepare_head($object) // Attached files require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; $upload_dir = $conf->societe->dir_output . "/" . $object->id; - $nbFiles = count(dol_dir_list($upload_dir)); + $nbFiles = count(dol_dir_list($upload_dir,'files')); $head[$h][0] = DOL_URL_ROOT.'/societe/document.php?socid='.$object->id; $head[$h][1] = $langs->trans("Documents"); if($nbFiles > 0) $head[$h][1].= ' ('.$nbFiles.')'; @@ -620,7 +620,7 @@ function show_contacts($conf,$langs,$db,$object,$backtopage='') // Copy to clipboard print " "; - + // Add to agenda if (! empty($conf->agenda->enabled) && $user->rights->agenda->myactions->create) { @@ -725,7 +725,7 @@ function show_contacts($conf,$langs,$db,$object,$backtopage='') if (!empty($object->country)) $coords .= "
".addslashes($object->country); } - + print ''; print img_picto($langs->trans("Address"), 'object_address.png'); print ''; @@ -744,7 +744,7 @@ function show_contacts($conf,$langs,$db,$object,$backtopage='') print img_object($langs->trans("Event"),"action"); print ''; } - + // Edit if ($user->rights->societe->contact->creer) { diff --git a/htdocs/core/lib/functions2.lib.php b/htdocs/core/lib/functions2.lib.php index 2e8ac94d0a3..83252dddde9 100644 --- a/htdocs/core/lib/functions2.lib.php +++ b/htdocs/core/lib/functions2.lib.php @@ -551,9 +551,9 @@ function get_next_value($db,$mask,$table,$field,$where='',$objsoc='',$date='',$m // For debugging //include_once(DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'); - //$mask='{yyyy}-{0000}'; + //$mask='FA{yy}{mm}-{0000@99}'; //$date=dol_mktime(12, 0, 0, 1, 1, 1900); - //$date=dol_stringtotime('20121001'); + //$date=dol_stringtotime('20130101'); // Extract value for mask counter, mask raz and mask offset if (! preg_match('/\{(0+)([@\+][0-9\-\+\=]+)?([@\+][0-9\-\+\=]+)?\}/i',$mask,$reg)) return 'ErrorBadMask'; diff --git a/htdocs/core/lib/product.lib.php b/htdocs/core/lib/product.lib.php index ccebd10cea5..3eb364e7eb6 100644 --- a/htdocs/core/lib/product.lib.php +++ b/htdocs/core/lib/product.lib.php @@ -120,7 +120,7 @@ function product_prepare_head($object, $user) require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; if (! empty($conf->product->enabled)) $upload_dir = $conf->product->multidir_output[$object->entity].'/'.dol_sanitizeFileName($object->ref); elseif (! empty($conf->service->enabled)) $upload_dir = $conf->service->multidir_output[$object->entity].'/'.dol_sanitizeFileName($object->ref); - $nbFiles = count(dol_dir_list($upload_dir)); + $nbFiles = count(dol_dir_list($upload_dir,'files')); $head[$h][0] = DOL_URL_ROOT.'/product/document.php?id='.$object->id; $head[$h][1] = $langs->trans('Documents'); if($nbFiles > 0) $head[$h][1].= ' ('.$nbFiles.')'; diff --git a/htdocs/core/modules/import/import_csv.modules.php b/htdocs/core/modules/import/import_csv.modules.php index e0741c26cef..f0766e271e5 100644 --- a/htdocs/core/modules/import/import_csv.modules.php +++ b/htdocs/core/modules/import/import_csv.modules.php @@ -443,7 +443,7 @@ class ImportCsv extends ModeleImports } elseif ($objimport->array_import_convertvalue[0][$val]['rule']=='getcustomercodeifnull') { - if (empty($newval) || $newval='auto') + if (empty($newval) || $newval=='auto') { $this->thirpartyobject->get_codeclient(0,0); $newval=$this->thirpartyobject->code_client; @@ -452,7 +452,7 @@ class ImportCsv extends ModeleImports } elseif ($objimport->array_import_convertvalue[0][$val]['rule']=='getsuppliercodeifnull') { - if (empty($newval) || $newval='auto') + if (empty($newval) || $newval=='auto') { $newval=$this->thirpartyobject->get_codefournisseur(0,1); $newval=$this->thirpartyobject->code_fournisseur; @@ -461,7 +461,7 @@ class ImportCsv extends ModeleImports } elseif ($objimport->array_import_convertvalue[0][$val]['rule']=='getcustomeraccountancycodeifnull') { - if (empty($newval) || $newval='auto') + if (empty($newval) || $newval=='auto') { $this->thirpartyobject->get_codecompta('customer'); $newval=$this->thirpartyobject->code_compta; @@ -470,7 +470,7 @@ class ImportCsv extends ModeleImports } elseif ($objimport->array_import_convertvalue[0][$val]['rule']=='getsupplieraccountancycodeifnull') { - if (empty($newval) || $newval='auto') + if (empty($newval) || $newval=='auto') { $this->thirpartyobject->get_codecompta('supplier'); $newval=$this->thirpartyobject->code_compta_fournisseur; diff --git a/htdocs/core/modules/modBarcode.class.php b/htdocs/core/modules/modBarcode.class.php index 856f4251e9c..0564adb762b 100644 --- a/htdocs/core/modules/modBarcode.class.php +++ b/htdocs/core/modules/modBarcode.class.php @@ -111,12 +111,12 @@ class modBarcode extends DolibarrModules $this->remove($options); $sql = array( - array('sql'=>"INSERT INTO llx_c_barcode_type (code, libelle, coder, example, entity) VALUES ('EAN8', 'EAN8', 0, '1234567', __ENTITY__)",'ignoreerror'=>1), - array('sql'=>"INSERT INTO llx_c_barcode_type (code, libelle, coder, example, entity) VALUES ('EAN13', 'EAN13', 0, '123456789012', __ENTITY__)",'ignoreerror'=>1), - array('sql'=>"INSERT INTO llx_c_barcode_type (code, libelle, coder, example, entity) VALUES ('UPC', 'UPC', 0, '123456789012', __ENTITY__)",'ignoreerror'=>1), - array('sql'=>"INSERT INTO llx_c_barcode_type (code, libelle, coder, example, entity) VALUES ('ISBN', 'ISBN', 0, '123456789', __ENTITY__)",'ignoreerror'=>1), - array('sql'=>"INSERT INTO llx_c_barcode_type (code, libelle, coder, example, entity) VALUES ('C39', 'Code 39', 0, '1234567890', __ENTITY__)",'ignoreerror'=>1), - array('sql'=>"INSERT INTO llx_c_barcode_type (code, libelle, coder, example, entity) VALUES ('C128', 'Code 128', 0, 'ABCD1234567890', __ENTITY__)",'ignoreerror'=>1) + array('sql'=>"INSERT INTO ".MAIN_DB_PREFIX."c_barcode_type (code, libelle, coder, example, entity) VALUES ('EAN8', 'EAN8', 0, '1234567', __ENTITY__)",'ignoreerror'=>1), + array('sql'=>"INSERT INTO ".MAIN_DB_PREFIX."c_barcode_type (code, libelle, coder, example, entity) VALUES ('EAN13', 'EAN13', 0, '123456789012', __ENTITY__)",'ignoreerror'=>1), + array('sql'=>"INSERT INTO ".MAIN_DB_PREFIX."c_barcode_type (code, libelle, coder, example, entity) VALUES ('UPC', 'UPC', 0, '123456789012', __ENTITY__)",'ignoreerror'=>1), + array('sql'=>"INSERT INTO ".MAIN_DB_PREFIX."c_barcode_type (code, libelle, coder, example, entity) VALUES ('ISBN', 'ISBN', 0, '123456789', __ENTITY__)",'ignoreerror'=>1), + array('sql'=>"INSERT INTO ".MAIN_DB_PREFIX."c_barcode_type (code, libelle, coder, example, entity) VALUES ('C39', 'Code 39', 0, '1234567890', __ENTITY__)",'ignoreerror'=>1), + array('sql'=>"INSERT INTO ".MAIN_DB_PREFIX."c_barcode_type (code, libelle, coder, example, entity) VALUES ('C128', 'Code 128', 0, 'ABCD1234567890', __ENTITY__)",'ignoreerror'=>1) ); return $this->_init($sql, $options); diff --git a/htdocs/core/modules/modProjet.class.php b/htdocs/core/modules/modProjet.class.php index a384a1a9739..fb7fa20533b 100644 --- a/htdocs/core/modules/modProjet.class.php +++ b/htdocs/core/modules/modProjet.class.php @@ -144,6 +144,13 @@ class modProjet extends DolibarrModules $this->rights[$r][3] = 0; // La permission est-elle une permission par defaut $this->rights[$r][4] = 'supprimer'; + $r++; + $this->rights[$r][0] = 45; // id de la permission + $this->rights[$r][1] = "Exporter les projets"; // libelle de la permission + $this->rights[$r][2] = 'd'; // type de la permission (deprecie a ce jour) + $this->rights[$r][3] = 0; // La permission est-elle une permission par defaut + $this->rights[$r][4] = 'export'; + $r++; $this->rights[$r][0] = 141; // id de la permission $this->rights[$r][1] = "Lire tous les projets et tâches (y compris prives qui ne me sont pas affectes)"; // libelle de la permission diff --git a/htdocs/core/tpl/document_actions_post_headers.tpl.php b/htdocs/core/tpl/document_actions_post_headers.tpl.php index 20005b08528..eeb598d20f8 100644 --- a/htdocs/core/tpl/document_actions_post_headers.tpl.php +++ b/htdocs/core/tpl/document_actions_post_headers.tpl.php @@ -25,6 +25,7 @@ $langs->load("link"); if ($action == 'delete') { + $langs->load("companies"); // Need for string DeleteFile+ConfirmDeleteFiles $ret = $form->form_confirm( $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&urlfile=' . urlencode(GETPOST("urlfile")) . '&linkid=' . GETPOST('linkid', 'int'), $langs->trans('DeleteFile'), diff --git a/htdocs/ecm/index.php b/htdocs/ecm/index.php index e7e4498f99d..8cdcc3c2000 100644 --- a/htdocs/ecm/index.php +++ b/htdocs/ecm/index.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2008-2014 Laurent Destailleur * Copyright (C) 2008-2010 Regis Houssin * * This program is free software; you can redistribute it and/or modify @@ -401,8 +401,9 @@ llxHeader($moreheadcss.$moreheadjs,$langs->trans("ECMArea"),'','','','',$morejs, // Add sections to manage $rowspan=0; $sectionauto=array(); -if (!empty($conf->global->ECM_AUTO_TREE_ENABLED)) { - if (! empty($conf->product->enabled) || ! empty($conf->service->enabled)) { $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'product', 'test'=>(! empty($conf->product->enabled) || ! empty($conf->service->enabled)), 'label'=>$langs->trans("ProductsAndServices"), 'desc'=>$langs->trans("ECMDocsByProducts")); } +if (! empty($conf->global->ECM_AUTO_TREE_ENABLED)) +{ + if (! empty($conf->product->enabled) || ! empty($conf->service->enabled)) { $langs->load("products"); $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'product', 'test'=>(! empty($conf->product->enabled) || ! empty($conf->service->enabled)), 'label'=>$langs->trans("ProductsAndServices"), 'desc'=>$langs->trans("ECMDocsByProducts")); } if (! empty($conf->societe->enabled)) { $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'company', 'test'=>$conf->societe->enabled, 'label'=>$langs->trans("ThirdParties"), 'desc'=>$langs->trans("ECMDocsByThirdParties")); } if (! empty($conf->propal->enabled)) { $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'propal', 'test'=>$conf->propal->enabled, 'label'=>$langs->trans("Prop"), 'desc'=>$langs->trans("ECMDocsByProposals")); } if (! empty($conf->contrat->enabled)) { $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'contract','test'=>$conf->contrat->enabled, 'label'=>$langs->trans("Contracts"), 'desc'=>$langs->trans("ECMDocsByContracts")); } @@ -410,7 +411,7 @@ if (!empty($conf->global->ECM_AUTO_TREE_ENABLED)) { if (! empty($conf->facture->enabled)) { $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'invoice', 'test'=>$conf->facture->enabled, 'label'=>$langs->trans("CustomersInvoices"), 'desc'=>$langs->trans("ECMDocsByInvoices")); } if (! empty($conf->fournisseur->enabled)) { $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'order_supplier', 'test'=>$conf->fournisseur->enabled, 'label'=>$langs->trans("SuppliersOrders"), 'desc'=>$langs->trans("ECMDocsByOrders")); } if (! empty($conf->fournisseur->enabled)) { $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'invoice_supplier', 'test'=>$conf->fournisseur->enabled, 'label'=>$langs->trans("SuppliersInvoices"), 'desc'=>$langs->trans("ECMDocsByInvoices")); } - if (! empty($conf->tax->enabled)) { $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'tax', 'test'=>$conf->tax->enabled, 'label'=>$langs->trans("SocialContributions"), 'desc'=>$langs->trans("ECMDocsBySocialContributions")); } + if (! empty($conf->tax->enabled)) { $langs->load("compta"); $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'tax', 'test'=>$conf->tax->enabled, 'label'=>$langs->trans("SocialContributions"), 'desc'=>$langs->trans("ECMDocsBySocialContributions")); } if (! empty($conf->projet->enabled)) { $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'project', 'test'=>$conf->projet->enabled, 'label'=>$langs->trans("Projects"), 'desc'=>$langs->trans("ECMDocsByProjects")); } } @@ -803,7 +804,7 @@ if ((! empty($conf->use_javascript_ajax) && empty($conf->global->MAIN_ECM_DISABL form_attach_new_file(DOL_URL_ROOT.'/ecm/index.php', 'none', 0, ($section?$section:-1), $user->rights->ecm->upload, 48, null, '', 0, '', 0, 'formuserfile'); } diff --git a/htdocs/fourn/class/paiementfourn.class.php b/htdocs/fourn/class/paiementfourn.class.php index a2a1d3a79f9..380a16bd129 100644 --- a/htdocs/fourn/class/paiementfourn.class.php +++ b/htdocs/fourn/class/paiementfourn.class.php @@ -305,8 +305,11 @@ class PaiementFourn extends Paiement if ($bank_line_id) { $accline = new AccountLine($this->db); - $accline->fetch($bank_line_id); - $result=$accline->delete(); + $result=$accline->fetch($bank_line_id); + if ($result > 0) // If result = 0, record not found, we don't try to delete + { + $result=$accline->delete(); + } if ($result < 0) { $this->error=$accline->error; diff --git a/htdocs/fourn/facture/fiche.php b/htdocs/fourn/facture/fiche.php index 21883b8ede6..06c8d9d590d 100644 --- a/htdocs/fourn/facture/fiche.php +++ b/htdocs/fourn/facture/fiche.php @@ -253,14 +253,14 @@ elseif ($action == 'setnote_private' && $user->rights->fournisseur->facture->cre } // Delete payment -elseif ($action == 'deletepaiement') +elseif ($action == 'deletepaiement' && $user->rights->fournisseur->facture->creer) { $object->fetch($id); - if ($object->statut == 1 && $object->paye == 0 && $user->societe_id == 0) + if ($object->statut == 1 && $object->paye == 0) { - $paiementfourn = new PaiementFourn($db); - $paiementfourn->fetch(GETPOST('paiement_id')); - $result=$paiementfourn->delete(); + $paiementfourn = new PaiementFourn($db); + $result=$paiementfourn->fetch(GETPOST('paiement_id')); + if ($result > 0) $result=$paiementfourn->delete(); // If fetch ok and found if ($result < 0) $mesg='
'.$paiementfourn->error.'
'; } } @@ -1631,7 +1631,7 @@ else $bankaccountstatic->ref=$objp->ref; $bankaccountstatic->label=$objp->ref; print ''; - print $bankaccountstatic->getNomUrl(1,'transactions'); + if ($objp->baid > 0) print $bankaccountstatic->getNomUrl(1,'transactions'); print ''; } print ''.price($objp->amount).''; diff --git a/htdocs/index.php b/htdocs/index.php index a93e0f10a54..1c30610ba73 100644 --- a/htdocs/index.php +++ b/htdocs/index.php @@ -52,7 +52,11 @@ if (!isset($conf->global->MAIN_INFO_SOCIETE_NOM) || empty($conf->global->MAIN_IN * View */ -llxHeader('',$langs->trans("HomeArea")); +// Title +$title=$langs->trans("HomeArea").' - Dolibarr '.DOL_VERSION; +if (! empty($conf->global->MAIN_APPLICATION_TITLE)) $title=$langs->trans("HomeArea").' - '.$conf->global->MAIN_APPLICATION_TITLE; + +llxHeader('',$title); print_fiche_titre($langs->trans("HomeArea")); @@ -238,20 +242,15 @@ if (empty($user->societe_id)) $var=!$var; if ($langfile[$key]) $langs->load($langfile[$key]); - $title=$langs->trans($titres[$key]); - /*print ''.img_object($title,$icons[$key]).''; - print ''.$title.''; - print ''.$board->nb[$val].''; - print ''; - */ + $text=$langs->trans($titres[$key]); print ''; print ''; + print ''; } } } diff --git a/htdocs/langs/ca_ES/link.lang b/htdocs/langs/ca_ES/link.lang new file mode 100644 index 00000000000..688d7f4eda6 --- /dev/null +++ b/htdocs/langs/ca_ES/link.lang @@ -0,0 +1,9 @@ +CHARSET=UTF-8 +LinkANewFile=Enllaçar un nou arxiu/document +LinkedFiles=Arxius i documents enllaçats +NoLinkFound=No hi ha enllaços associats +LinkComplete=L'arxiu s'ha enllaçat correctament +ErrorFileNotLinked=L'arxiu no ha pogut ser enllaçat +LinkRemoved=Ha estat eliminat l'enllaç %s +ErrorFailedToDeleteLink=Impossible eliminar l'enllaç '%s' +ErrorFailedToUpdateLink=Impossible modificar l'enllaç '%s' diff --git a/htdocs/langs/ca_ES/main.lang b/htdocs/langs/ca_ES/main.lang index 5da87a963a3..0be3ab1e84b 100644 --- a/htdocs/langs/ca_ES/main.lang +++ b/htdocs/langs/ca_ES/main.lang @@ -7,7 +7,7 @@ DIRECTION=ltr FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, -SeparatorThousand=None +SeparatorThousand= FormatDateShort=%d/%m/%Y FormatDateShortInput=%d/%m/%Y FormatDateShortJava=dd/MM/yyyy diff --git a/htdocs/langs/es_ES/link.lang b/htdocs/langs/es_ES/link.lang new file mode 100644 index 00000000000..305963a8ad8 --- /dev/null +++ b/htdocs/langs/es_ES/link.lang @@ -0,0 +1,9 @@ +CHARSET=UTF-8 +LinkANewFile=Enlazar un nuevo archivo/documento +LinkedFiles=Archivos y documentos enlazados +NoLinkFound=No hay enlaces asociados +LinkComplete=El archivo se ha enlazado correctamente +ErrorFileNotLinked=El archivo no ha podido ser enlazado +LinkRemoved=Ha sido eliminado el enlace %s +ErrorFailedToDeleteLink=Imposible eliminar el enlace '%s' +ErrorFailedToUpdateLink=Imposible actualizar el enlace '%s' diff --git a/htdocs/langs/es_ES/main.lang b/htdocs/langs/es_ES/main.lang index 3b495f6f67c..f8f5fd0e101 100644 --- a/htdocs/langs/es_ES/main.lang +++ b/htdocs/langs/es_ES/main.lang @@ -7,7 +7,7 @@ DIRECTION=ltr FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, -SeparatorThousand=None +SeparatorThousand= FormatDateShort=%d/%m/%Y FormatDateShortInput=%d/%m/%Y FormatDateShortJava=dd/MM/yyyy diff --git a/htdocs/langs/fr_FR/main.lang b/htdocs/langs/fr_FR/main.lang index dfd5f45f1f0..61922bb9021 100644 --- a/htdocs/langs/fr_FR/main.lang +++ b/htdocs/langs/fr_FR/main.lang @@ -7,7 +7,7 @@ DIRECTION=ltr FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, -SeparatorThousand=None +SeparatorThousand= FormatDateShort=%d/%m/%Y FormatDateShortInput=%d/%m/%Y FormatDateShortJava=dd/MM/yyyy diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index 3c48228613e..877ddc5aa9c 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -5,7 +5,7 @@ * Copyright (C) 2004 Sebastien Di Cintio * Copyright (C) 2004 Benoit Mortier * Copyright (C) 2005-2012 Regis Houssin - * Copyright (C) 2011 Philippe Grand + * Copyright (C) 2011-2014 Philippe Grand * Copyright (C) 2008 Matteli * Copyright (C) 2011-2013 Juanjo Menent * Copyright (C) 2012 Christophe Battarel @@ -138,7 +138,7 @@ function analyse_sql_and_script(&$var, $type) } -// Check consitency of NOREQUIREXXX DEFINES +// Check consistency of NOREQUIREXXX DEFINES if ((defined('NOREQUIREDB') || defined('NOREQUIRETRAN')) && ! defined('NOREQUIREMENU')) dol_print_error('','If define NOREQUIREDB or NOREQUIRETRAN are set, you must also set NOREQUIREMENU or not use them'); // Sanity check on URL @@ -162,7 +162,7 @@ if (! empty($_SERVER['DOCUMENT_ROOT'])) set_include_path($_SERVER['DOCUMENT_ROOT // Include the conf.php and functions.lib.php require_once 'filefunc.inc.php'; -// If there is a POST parameter to tell to save automatically some POST params into a cookies, we do it +// If there is a POST parameter to tell to save automatically some POST parameters into a cookies, we do it if (! empty($_POST["DOL_AUTOSET_COOKIE"])) { require_once DOL_DOCUMENT_ROOT.'/core/lib/json.lib.php'; @@ -261,7 +261,7 @@ if (! empty($conf->file->main_force_https)) } -// Chargement des includes complementaires de presentation +// Loading of additional presentation includes if (! defined('NOREQUIREHTML')) require_once DOL_DOCUMENT_ROOT .'/core/class/html.form.class.php'; // Need 660ko memory (800ko in 2.2) if (! defined('NOREQUIREAJAX') && $conf->use_javascript_ajax) require_once DOL_DOCUMENT_ROOT.'/core/lib/ajax.lib.php'; // Need 22ko memory @@ -292,7 +292,7 @@ if ((! empty($conf->global->MAIN_VERSION_LAST_UPGRADE) && ($conf->global->MAIN_V // Creation of a token against CSRF vulnerabilities if (! defined('NOTOKENRENEWAL')) { - $token = dol_hash(uniqid(mt_rand(),TRUE)); // Genere un hash d'un nombre aleatoire + $token = dol_hash(uniqid(mt_rand(),TRUE)); // Generates a hash of a random number // roulement des jetons car cree a chaque appel if (isset($_SESSION['newtoken'])) $_SESSION['token'] = $_SESSION['newtoken']; $_SESSION['newtoken'] = $token; @@ -396,7 +396,7 @@ if (! defined('NOLOGIN')) $sessionkey = 'dol_antispam_value'; $ok=(array_key_exists($sessionkey, $_SESSION) === TRUE && (strtolower($_SESSION[$sessionkey]) == strtolower($_POST['code']))); - // Verifie code + // Check code if (! $ok) { dol_syslog('Bad value for code, connexion refused'); @@ -407,14 +407,14 @@ if (! defined('NOLOGIN')) $_SESSION["dol_loginmesg"]=$langs->trans("ErrorBadValueForCode"); $test=false; - // Appel des triggers + // Call of triggers include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; $interface=new Interfaces($db); $result=$interface->run_triggers('USER_LOGIN_FAILED',$user,$user,$langs,$conf,GETPOST('entity','int')); if ($result < 0) { $error++; } - // Fin appel triggers + // End Call of triggers } } @@ -468,14 +468,14 @@ if (! defined('NOLOGIN')) $user->trigger_mesg=$langs->trans("ErrorBadLoginPassword").' - login='.GETPOST("username","alpha",2); $_SESSION["dol_loginmesg"]=$langs->trans("ErrorBadLoginPassword"); - // Appel des triggers + // Call of triggers include_once DOL_DOCUMENT_ROOT.'/core/class/interfaces.class.php'; $interface=new Interfaces($db); $result=$interface->run_triggers('USER_LOGIN_FAILED',$user,$user,$langs,$conf,GETPOST("username","alpha",2)); if ($result < 0) { $error++; } - // Fin appel triggers + // End Call of triggers } } diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index ecb90bb66ce..d627cd85b4b 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -38,7 +38,7 @@ class Product extends CommonObject public $element='product'; public $table_element='product'; public $fk_element='fk_product'; - protected $childtables=array('propaldet','commandedet','facturedet','contratdet'); // To test if we can delete object + protected $childtables=array('propaldet','commandedet','facturedet','contratdet','facture_fourn_det','commande_fournisseurdet'); // To test if we can delete object protected $isnolinkedbythird = 1; // No field fk_soc protected $ismultientitymanaged = 1; // 0=No test on entity, 1=Test with field entity, 2=Test with link by societe diff --git a/htdocs/product/stock/product.php b/htdocs/product/stock/product.php index 153356d969f..7896476775a 100644 --- a/htdocs/product/stock/product.php +++ b/htdocs/product/stock/product.php @@ -5,6 +5,7 @@ * Copyright (C) 2005 Simon TOSSER * Copyright (C) 2005-2009 Regis Houssin * Copyright (C) 2013 Cédric Salvador + * Copyright (C) 2013 Juanjo Menent * * 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 +42,8 @@ $action=GETPOST("action"); $cancel=GETPOST('cancel'); // Security check -$id = GETPOST('id')?GETPOST('id'):GETPOST('ref'); -$ref = GETPOST('ref'); +$id=GETPOST('id', 'int'); +$ref=GETPOST('ref', 'alpha'); $stocklimit = GETPOST('stocklimit'); $desiredstock = GETPOST('desiredstock'); $cancel = GETPOST('cancel'); diff --git a/htdocs/public/demo/index.php b/htdocs/public/demo/index.php index c962227f18c..0948be50631 100644 --- a/htdocs/public/demo/index.php +++ b/htdocs/public/demo/index.php @@ -308,7 +308,7 @@ llxHeaderVierge($langs->trans("DolibarrDemo"), $head); print "\n"; -print ''; +print '
'; print '
'; print '
Dolibarr logo

'; diff --git a/htdocs/public/test/test_arrays.php b/htdocs/public/test/test_arrays.php index 4a4e7bc6f74..fb8274e5524 100644 --- a/htdocs/public/test/test_arrays.php +++ b/htdocs/public/test/test_arrays.php @@ -4,7 +4,7 @@ define("NOCSRFCHECK",1); // We accept to go on this page from external web site. require '../../main.inc.php'; -if (!empty($conf->global->MAIN_FEATURES_LEVEL)) +if (empty($conf->global->MAIN_FEATURES_LEVEL)) { print "Page available onto dev environment only"; exit; diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php index 941a5445ff1..4f00cef5f9f 100644 --- a/htdocs/societe/class/societe.class.php +++ b/htdocs/societe/class/societe.class.php @@ -303,6 +303,7 @@ class Societe extends CommonObject $contact->name = $this->name_bis; $contact->firstname = $this->firstname; + $contact->civilite_id = $this->civility_id; $contact->socid = $this->id; // fk_soc $contact->statut = 1; $contact->priv = 0; diff --git a/htdocs/societe/soc.php b/htdocs/societe/soc.php index 5e1a6ed40d7..5b1cca98c77 100644 --- a/htdocs/societe/soc.php +++ b/htdocs/societe/soc.php @@ -118,7 +118,7 @@ if (empty($reshook)) $object->particulier = GETPOST("private"); $object->name = dolGetFirstLastname(GETPOST('firstname'),GETPOST('nom')?GETPOST('nom'):GETPOST('name')); - $object->civilite_id = GETPOST('civilite_id'); + $object->civility_id = GETPOST('civilite_id'); // Add non official properties $object->name_bis = GETPOST('name')?GETPOST('name'):GETPOST('nom'); $object->firstname = GETPOST('firstname'); diff --git a/htdocs/theme/amarok/style.css.php b/htdocs/theme/amarok/style.css.php index a7011f06a68..1a6149b76fb 100644 --- a/htdocs/theme/amarok/style.css.php +++ b/htdocs/theme/amarok/style.css.php @@ -70,7 +70,6 @@ if (! empty($conf->global->MAIN_OVERWRITE_THEME_RES)) { $path='/'.$conf->global- $fontlist='helvetica,arial,tahoma,verdana'; //$fontlist='Verdana,Helvetica,Arial,sans-serif'; //'/theme/auguria/img/menus/trtitle.png'; $img_liste_titre=dol_buildpath($path.'/theme/'.$theme.'/img/menus/trtitle.png',1); -$img_head=dol_buildpath($path.'/theme/'.$theme.'/img/headbg2.jpg',1); $img_button=dol_buildpath($path.'/theme/'.$theme.'/img/button_bg.png',1); $dol_hide_topmenu=$conf->dol_hide_topmenu; $dol_hide_leftmenu=$conf->dol_hide_leftmenu; diff --git a/htdocs/user/class/user.class.php b/htdocs/user/class/user.class.php index b89c3904f74..479f211eaef 100644 --- a/htdocs/user/class/user.class.php +++ b/htdocs/user/class/user.class.php @@ -1007,12 +1007,15 @@ class User extends CommonObject $this->db->begin(); - // Cree et positionne $this->id + // Create and set $this->id $result=$this->create($user); if ($result > 0) { - $result=$this->setPassword($user,$this->pass); - if ($member->fk_soc) { + $newpass=$this->setPassword($user,$this->pass); + if (is_numeric($newpass) && $newpass < 0) $result=-2; + + if ($result > 0 && $member->fk_soc) // If member is linked to a thirdparty + { $sql = "UPDATE ".MAIN_DB_PREFIX."user"; $sql.= " SET fk_societe=".$member->fk_soc; $sql.= " WHERE rowid=".$this->id; @@ -1026,7 +1029,7 @@ class User extends CommonObject } else { - $this->error=$this->db->error(); + $this->error=$this->db->lasterror(); dol_syslog(get_class($this)."::create_from_member - 1 - ".$this->error, LOG_ERR); $this->db->rollback(); @@ -1034,13 +1037,19 @@ class User extends CommonObject } } } + + if ($result > 0) + { + $this->db->commit(); + return $this->id; + } else { // $this->error deja positionne dol_syslog(get_class($this)."::create_from_member - 2 - ".$this->error, LOG_ERR); $this->db->rollback(); - return $result; + return -2; } }