diff --git a/dev/initdata/generate-commande.php b/dev/initdata/generate-commande.php index 967143ab4a551b8bcc001928882551bd16a887dc..785c0544876ebfd24b901723b07c46da57041710 100755 --- a/dev/initdata/generate-commande.php +++ b/dev/initdata/generate-commande.php @@ -20,7 +20,7 @@ */ /** - * \file htdocs/dev/generate-commande.php + * \file dev/initdata/generate-commande.php * \brief Script de generation de donnees aleatoires pour les commandes */ diff --git a/dev/initdata/generate-facture.php b/dev/initdata/generate-facture.php index 5c630454ba7b019bb9df27b9b7b3133c1f05d3b4..97f00f7d6d65bb10b4f67a130204df5746b2e900 100755 --- a/dev/initdata/generate-facture.php +++ b/dev/initdata/generate-facture.php @@ -19,7 +19,7 @@ */ /** - * \file htdocs/dev/generate-facture.php + * \file dev/intdata/generate-facture.php * \brief Script de generation de donnees aleatoires pour les factures */ diff --git a/dev/initdata/generate-produit.php b/dev/initdata/generate-produit.php index d712c36e1e9e4f10ae59aba5daee696224eb31c8..38ea93f131bebbf0860efceb6ed8b8bcb5be4089 100755 --- a/dev/initdata/generate-produit.php +++ b/dev/initdata/generate-produit.php @@ -20,7 +20,7 @@ */ /** - * \file htdocs/dev/generate-produit.php + * \file dev/initdata/generate-produit.php * \brief Script de generation de donnees aleatoires pour les produits */ diff --git a/dev/initdata/generate-propale.php b/dev/initdata/generate-propale.php index a887b86b1a8e30de796db0b8ea3976aa58c52eee..b7b76ec2c02c0ea46a9ba34439280e4cf5a34b7e 100755 --- a/dev/initdata/generate-propale.php +++ b/dev/initdata/generate-propale.php @@ -20,7 +20,7 @@ */ /** - * \file htdocs/dev/generate-propale.php + * \file dev/initdata/generate-propale.php * \brief Script de generation de donnees aleatoires pour les propales */ diff --git a/dev/initdata/generate-societe.php b/dev/initdata/generate-societe.php index c0c512db636d12bba18e29bf13fdf4013e003073..72e4d9b1e842c73b1ac80d72419c4b8a73e223eb 100755 --- a/dev/initdata/generate-societe.php +++ b/dev/initdata/generate-societe.php @@ -20,8 +20,8 @@ */ /** - * \file htdocs/dev/generate-societe.php - * \brief Script de generation de donnees aleatoires pour les societes + * \file dev/initdata/generate-societe.php + * \brief Script de generation de donnees aleatoires pour les societes */ // Test si mode batch @@ -89,7 +89,7 @@ for ($s = 0 ; $s < GEN_NUMBER_SOCIETE ; $s++) { print "Company $s\n"; $soc = new Societe($db); - $soc->nom = "Company num ".time()."$s"; + $soc->name = "Company num ".time()."$s"; $soc->town = $listoftown[rand(0, count($listoftown)-1)]; $soc->client = rand(1,2); // Une societe sur 2 est prospect, l'autre client $soc->fournisseur = rand(0,1); // Une societe sur 2 est fournisseur @@ -101,7 +101,7 @@ for ($s = 0 ; $s < GEN_NUMBER_SOCIETE ; $s++) // Un client sur 3 a une remise de 5% $user_remise=rand(1,3); if ($user_remise==3) $soc->remise_percent=5; print "> client=".$soc->client.", fournisseur=".$soc->fournisseur.", remise=".$soc->remise_percent."\n"; - $soc->note='Company created by the script generate-societe.php'; + $soc->note_private = 'Company created by the script generate-societe.php'; $socid = $soc->create(); if ($socid >= 0) @@ -120,7 +120,7 @@ for ($s = 0 ; $s < GEN_NUMBER_SOCIETE ; $s++) } } - print "Company ".$s." created nom=".$soc->nom."\n"; + print "Company ".$s." created nom=".$soc->name."\n"; } else { diff --git a/dev/initdata/mysqldump_dolibarr_3.7.0.sql b/dev/initdata/mysqldump_dolibarr_3.7.0.sql index 9e920813519098d3cbfab3e6fed3e1221d5cf61d..3dda50178284a408b2c161f6f2001cec53bf3751 100644 --- a/dev/initdata/mysqldump_dolibarr_3.7.0.sql +++ b/dev/initdata/mysqldump_dolibarr_3.7.0.sql @@ -7427,7 +7427,7 @@ CREATE TABLE `llx_user` ( LOCK TABLES `llx_user` WRITE; /*!40000 ALTER TABLE `llx_user` DISABLE KEYS */; -INSERT INTO `llx_user` VALUES (1,'2010-07-08 13:20:11','2012-12-12 16:54:10',NULL,NULL,'admin',0,NULL,NULL,NULL,'admin','21232f297a57a5a743894a0e4a801fc3',NULL,'SuperAdminName','Firstname','',NULL,'','','','bidon@destailleur.fr','',1,'','','',1,1,NULL,NULL,NULL,'','2014-12-21 20:52:09','2014-12-21 13:51:38',NULL,'',1,'01.jpg',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL),(2,'2010-07-08 13:54:48','2010-07-08 09:54:48',NULL,NULL,'demo',1,NULL,NULL,NULL,'demo','fe01ce2a7fbac8fafaed7c982a04e229',NULL,'John','Doe',NULL,NULL,'09123123','','','johndoe@mycompany.com',NULL,0,'','','',1,1,NULL,NULL,NULL,'','2013-03-24 16:30:29','2010-07-08 14:12:02',NULL,'',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL),(3,'2010-07-11 16:18:59','2013-02-20 18:07:21',NULL,NULL,'adupont',1,NULL,NULL,NULL,'adupont','00856ab2bbb748aa29aa335a6e3a2407',NULL,'Dupont','Alain','',NULL,'','','','toto@aa.com','',0,'','','',1,1,NULL,NULL,2,'','2012-12-21 17:38:55',NULL,NULL,'',1,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,0,0,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL),(4,'2013-01-23 17:52:27','2013-02-20 18:48:01',NULL,NULL,'aaa',1,NULL,NULL,NULL,'aaa','47bce5c74f589f4867dbd57e9ca9f808',NULL,'aaa','','',NULL,'','','','','',0,'','','',1,1,17,6,NULL,'','2013-02-25 10:18:41','2013-01-23 17:53:20',NULL,'',1,NULL,NULL,NULL,5,NULL,NULL,NULL,NULL,0,0,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL),(5,'2013-01-23 17:52:37','2013-01-23 15:52:37',NULL,NULL,'bbb',0,NULL,NULL,NULL,'bbb','08f8e0260c64418510cefb2b06eee5cd',NULL,'bbb','','',NULL,'','','','','',1,'','','',1,1,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL),(6,'2013-02-16 20:22:40','2013-02-16 18:22:40',NULL,NULL,'aaab',2,NULL,NULL,NULL,'aaab','4c189b020ceb022e0ecc42482802e2b8',NULL,'aaab','','',NULL,'','','','','',0,'','','',1,1,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL),(7,'2013-02-16 20:48:15','2013-02-16 18:48:15',NULL,NULL,'zzz',2,NULL,NULL,NULL,'zzz','f3abb86bd34cf4d52698f14c0da1dc60',NULL,'zzz','','',NULL,'','','','','',0,'','','',1,1,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL),(9,'2013-02-16 20:50:07','2013-03-24 15:10:14',NULL,NULL,'zzzg',2,NULL,NULL,NULL,'jc28fg4h','93d789524fd223cf05eecea3f59cbe86',NULL,'zzzg','','',NULL,'','','','','fsdkkfsdf<br />\r\nfsdfsd<br />\r\n<strong>fsdfs</strong>',0,'','','',1,1,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,NULL,NULL,NULL,5,NULL,'','','',NULL,NULL,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL); +INSERT INTO `llx_user` VALUES (1,'2010-07-08 13:20:11','2012-12-12 16:54:10',NULL,NULL,'admin',0,NULL,NULL,NULL,'admin','21232f297a57a5a743894a0e4a801fc3',NULL,'SuperAdminName','Firstname','',NULL,'','','','bidon@destailleur.fr','',1,'','','',1,1,NULL,NULL,NULL,'','2014-12-21 20:52:09','2014-12-21 13:51:38',NULL,'',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL),(2,'2010-07-08 13:54:48','2010-07-08 09:54:48',NULL,NULL,'demo',1,NULL,NULL,NULL,'demo','fe01ce2a7fbac8fafaed7c982a04e229',NULL,'John','Doe',NULL,NULL,'09123123','','','johndoe@mycompany.com',NULL,0,'','','',1,1,NULL,NULL,NULL,'','2013-03-24 16:30:29','2010-07-08 14:12:02',NULL,'',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL),(3,'2010-07-11 16:18:59','2013-02-20 18:07:21',NULL,NULL,'adupont',1,NULL,NULL,NULL,'adupont','00856ab2bbb748aa29aa335a6e3a2407',NULL,'Dupont','Alain','',NULL,'','','','toto@aa.com','',0,'','','',1,1,NULL,NULL,2,'','2012-12-21 17:38:55',NULL,NULL,'',1,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,0,0,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL),(4,'2013-01-23 17:52:27','2013-02-20 18:48:01',NULL,NULL,'aaa',1,NULL,NULL,NULL,'aaa','47bce5c74f589f4867dbd57e9ca9f808',NULL,'aaa','','',NULL,'','','','','',0,'','','',1,1,17,6,NULL,'','2013-02-25 10:18:41','2013-01-23 17:53:20',NULL,'',1,NULL,NULL,NULL,5,NULL,NULL,NULL,NULL,0,0,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL),(5,'2013-01-23 17:52:37','2013-01-23 15:52:37',NULL,NULL,'bbb',0,NULL,NULL,NULL,'bbb','08f8e0260c64418510cefb2b06eee5cd',NULL,'bbb','','',NULL,'','','','','',1,'','','',1,1,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL),(6,'2013-02-16 20:22:40','2013-02-16 18:22:40',NULL,NULL,'aaab',2,NULL,NULL,NULL,'aaab','4c189b020ceb022e0ecc42482802e2b8',NULL,'aaab','','',NULL,'','','','','',0,'','','',1,1,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL),(7,'2013-02-16 20:48:15','2013-02-16 18:48:15',NULL,NULL,'zzz',2,NULL,NULL,NULL,'zzz','f3abb86bd34cf4d52698f14c0da1dc60',NULL,'zzz','','',NULL,'','','','','',0,'','','',1,1,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL),(9,'2013-02-16 20:50:07','2013-03-24 15:10:14',NULL,NULL,'zzzg',2,NULL,NULL,NULL,'jc28fg4h','93d789524fd223cf05eecea3f59cbe86',NULL,'zzzg','','',NULL,'','','','','fsdkkfsdf<br />\r\nfsdfsd<br />\r\n<strong>fsdfs</strong>',0,'','','',1,1,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,NULL,NULL,NULL,5,NULL,'','','',NULL,NULL,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL); /*!40000 ALTER TABLE `llx_user` ENABLE KEYS */; UNLOCK TABLES; diff --git a/htdocs/compta/bank/account.php b/htdocs/compta/bank/account.php index 20ef8bcc3cc4341ba4bfe19b4b995511ddabb62d..6ba803041883509f233783d36aae9ca93e0c30a1 100644 --- a/htdocs/compta/bank/account.php +++ b/htdocs/compta/bank/account.php @@ -78,6 +78,16 @@ if ($negpage) $object = new Account($db); +if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers +{ + $paiementtype=""; + $req_nb=""; + $thirdparty=""; + $req_desc=""; + $req_debit=""; + $req_credit=""; +} + /* * Action */ @@ -446,7 +456,10 @@ if ($id > 0 || ! empty($ref)) print '<td align="right"><input type="text" class="flat" name="req_debit" value="'.$req_debit.'" size="4"></td>'; print '<td align="right"><input type="text" class="flat" name="req_credit" value="'.$req_credit.'" size="4"></td>'; print '<td align="center"> </td>'; - print '<td align="center" width="40"><input type="image" class="liste_titre" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'"></td>'; + print '<td class="liste_titre" align="right">'; + print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; + print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">'; + print '</td>'; print "</tr>\n"; diff --git a/htdocs/compta/bank/index.php b/htdocs/compta/bank/index.php index 9c9f0574c313adef7712dcaac8328bbc775482f9..96a44ecd354395d72db9a22c575dadc4e2d3e20d 100644 --- a/htdocs/compta/bank/index.php +++ b/htdocs/compta/bank/index.php @@ -111,8 +111,12 @@ foreach ($accounts as $key=>$type) if ($acc->rappro) { $result=$acc->load_board($user,$acc->id); - print $acc->nbtodo; - if ($acc->nbtodolate) print ' ('.$acc->nbtodolate.img_warning($langs->trans("Late")).')'; + if ($result<0) { + setEventMessage($acc->error, 'errors'); + } else { + print $result->nbtodo; + if ($result->nbtodolate) print ' ('.$result->nbtodolate.img_warning($langs->trans("Late")).')'; + } } else print $langs->trans("FeatureDisabled"); print '</td>'; @@ -223,8 +227,12 @@ foreach ($accounts as $key=>$type) if ($acc->rappro) { $result=$acc->load_board($user,$acc->id); - print $acc->nbtodo; - if ($acc->nbtodolate) print ' ('.$acc->nbtodolate.img_warning($langs->trans("Late")).')'; + if ($result<0) { + setEventMessage($acc->error, 'errors'); + } else { + print $result->nbtodo; + if ($result->nbtodolate) print ' ('.$result->nbtodolate.img_warning($langs->trans("Late")).')'; + } } else print $langs->trans("FeatureDisabled"); print '</td>'; diff --git a/htdocs/conf/phpinfo.php b/htdocs/conf/phpinfo.php deleted file mode 100644 index 179bd65145872e798bd194ecf7a750d6b37d4e61..0000000000000000000000000000000000000000 --- a/htdocs/conf/phpinfo.php +++ /dev/null @@ -1,5 +0,0 @@ -<a href="index.php">Go back to index</a> -| <a href="<?php echo $_SERVER["REQUEST_URI"];?>">Refresh</a> -<br><br> - -<?php phpinfo(); ?> \ No newline at end of file diff --git a/htdocs/contact/document.php b/htdocs/contact/document.php new file mode 100644 index 0000000000000000000000000000000000000000..970f3543c45c2244494f39ad1c3907d69de23035 --- /dev/null +++ b/htdocs/contact/document.php @@ -0,0 +1,123 @@ +<?php +/* Copyright (C) 2014 Alexandre Spangaro <alexandre.spangaro@gmail.com> + * Copyright (C) 2015 Frederic France <frederic.france@free.fr> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +/** + * \file htdocs/contact/document.php + * \ingroup contact + * \brief Page with attached files on contact + */ + +require '../main.inc.php'; +require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/contact.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; + +$langs->load("other"); +$langs->load("companies"); +$langs->load("contact"); + +$id = GETPOST('id','int'); +$action = GETPOST("action"); +$confirm = GETPOST('confirm', 'alpha'); + +// Security check +if ($user->societe_id) $socid=$user->societe_id; +$result = restrictedArea($user, 'contact', $id, '',''); + +// Get parameters +$sortfield = GETPOST("sortfield",'alpha'); +$sortorder = GETPOST("sortorder",'alpha'); +$page = GETPOST("page",'int'); +if ($page == -1) { + $page = 0; +} +$offset = $conf->liste_limit * $page; +$pageprev = $page - 1; +$pagenext = $page + 1; +if (! $sortorder) $sortorder="ASC"; +if (! $sortfield) $sortfield="name"; + +$object = new Contact($db); +if ($id > 0) $object->fetch($id); + +$upload_dir = $conf->societe->dir_output.'/contact/'.dol_sanitizeFileName($object->ref); +$modulepart='contact'; + + +/* + * Actions + */ + +include DOL_DOCUMENT_ROOT . '/core/tpl/document_actions_pre_headers.tpl.php'; + + +/* + * View + */ + +$form = new Form($db); + +$help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; +llxHeader("",$langs->trans("Contact"), $helpurl); + +if ($object->id) +{ + $head = contact_prepare_head($object, $user); + + dol_fiche_head($head, 'documents', $langs->trans("Contact"), 0, 'contact'); + + + // Construit liste des fichiers + $filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1); + $totalsize=0; + foreach($filearray as $key => $file) + { + $totalsize+=$file['size']; + } + + print '<table class="border" width="100%">'; + + // Ref + print '<tr><td width="20%">'.$langs->trans("Ref").'</td><td colspan="3">'; + print $form->showrefnav($object, 'id', $linkback); + print '</td></tr>'; + + // Name + print '<tr><td width="20%">'.$langs->trans("Lastname").' / '.$langs->trans("Label").'</td><td width="30%">'.$object->lastname.'</td>'; + print '<td width="20%">'.$langs->trans("Firstname").'</td><td width="30%">'.$object->firstname.'</td></tr>'; + + print '<tr><td>'.$langs->trans("NbOfAttachedFiles").'</td><td colspan="3">'.count($filearray).'</td></tr>'; + print '<tr><td>'.$langs->trans("TotalSizeOfAttachedFiles").'</td><td colspan="3">'.$totalsize.' '.$langs->trans("bytes").'</td></tr>'; + print '</table>'; + + print '</div>'; + + $modulepart = 'contact'; + $permission = $user->rights->societe->contact->creer; + $param = '&id=' . $object->id; + include DOL_DOCUMENT_ROOT . '/core/tpl/document_actions_post_headers.tpl.php'; +} else { + print $langs->trans("ErrorUnknown"); +} + + +llxFooter(); + +$db->close(); diff --git a/htdocs/core/lib/contact.lib.php b/htdocs/core/lib/contact.lib.php index 3eeca82c9936d8cf5ff1cfb84b1bcccdbed113f8..ba2d8ad577296393532e740ee487a545877a0c7f 100644 --- a/htdocs/core/lib/contact.lib.php +++ b/htdocs/core/lib/contact.lib.php @@ -1,6 +1,7 @@ <?php /* Copyright (C) 2006-2010 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2010-2012 Regis Houssin <regis.houssin@capnetworks.com> + * Copyright (C) 2015 Frederic France <frederic.france@free.fr> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -32,62 +33,75 @@ function contact_prepare_head(Contact $object) { global $langs, $conf, $user; - $h = 0; + $tab = 0; $head = array(); - $head[$h][0] = DOL_URL_ROOT.'/contact/card.php?id='.$object->id; - $head[$h][1] = $langs->trans("Card"); - $head[$h][2] = 'card'; - $h++; + $head[$tab][0] = DOL_URL_ROOT.'/contact/card.php?id='.$object->id; + $head[$tab][1] = $langs->trans("Card"); + $head[$tab][2] = 'card'; + $tab++; if (! empty($conf->ldap->enabled) && ! empty($conf->global->LDAP_CONTACT_ACTIVE)) { $langs->load("ldap"); - $head[$h][0] = DOL_URL_ROOT.'/contact/ldap.php?id='.$object->id; - $head[$h][1] = $langs->trans("LDAPCard"); - $head[$h][2] = 'ldap'; - $h++; + $head[$tab][0] = DOL_URL_ROOT.'/contact/ldap.php?id='.$object->id; + $head[$tab][1] = $langs->trans("LDAPCard"); + $head[$tab][2] = 'ldap'; + $tab++; } - $head[$h][0] = DOL_URL_ROOT.'/contact/perso.php?id='.$object->id; - $head[$h][1] = $langs->trans("PersonalInformations"); - $head[$h][2] = 'perso'; - $h++; + $head[$tab][0] = DOL_URL_ROOT.'/contact/perso.php?id='.$object->id; + $head[$tab][1] = $langs->trans("PersonalInformations"); + $head[$tab][2] = 'perso'; + $tab++; - $head[$h][0] = DOL_URL_ROOT.'/contact/exportimport.php?id='.$object->id; - $head[$h][1] = $langs->trans("ExportImport"); - $head[$h][2] = 'exportimport'; - $h++; + $head[$tab][0] = DOL_URL_ROOT.'/contact/exportimport.php?id='.$object->id; + $head[$tab][1] = $langs->trans("ExportImport"); + $head[$tab][2] = 'exportimport'; + $tab++; // Show more tabs from modules // Entries must be declared in modules descriptor with line // $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab // $this->tabs = array('entity:-tabname); to remove a tab - complete_head_from_modules($conf,$langs,$object,$head,$h,'contact'); + complete_head_from_modules($conf,$langs,$object,$head,$tab,'contact'); // Notes - $head[$h][0] = DOL_URL_ROOT.'/contact/note.php?id='.$object->id; - $head[$h][1] = $langs->trans("Note"); - $head[$h][2] = 'note'; - $h++; - + if (empty($conf->global->MAIN_DISABLE_NOTES_TAB)) { + $nbNote = (empty($object->note_private)?0:1)+(empty($object->note_public)?0:1); + $head[$tab][0] = DOL_URL_ROOT.'/contact/note.php?id='.$object->id; + $head[$tab][1] = $langs->trans("Note"); + if($nbNote > 0) $head[$tab][1].= ' <span class="badge">'.$nbNote.'</span>'; + $head[$tab][2] = 'note'; + $tab++; + } + + require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + $upload_dir = $conf->societe->dir_output . "/contact/" . dol_sanitizeFileName($object->ref); + $nbFiles = count(dol_dir_list($upload_dir,'files',0,'','(\.meta|_preview\.png)$')); + $head[$tab][0] = DOL_URL_ROOT.'/contact/document.php?id='.$object->id; + $head[$tab][1] = $langs->trans("Documents"); + if($nbFiles > 0) $head[$tab][1].= ' <span class="badge">'.$nbFiles.'</span>'; + $head[$tab][2] = 'documents'; + $tab++; + if (! empty($conf->categorie->enabled) && ! empty($user->rights->categorie->lire)) { $type = 4; - $head[$h][0] = DOL_URL_ROOT.'/categories/categorie.php?id='.$object->id."&type=".$type; - $head[$h][1] = $langs->trans('Categories'); - $head[$h][2] = 'category'; - $h++; + $head[$tab][0] = DOL_URL_ROOT.'/categories/categorie.php?id='.$object->id."&type=".$type; + $head[$tab][1] = $langs->trans('Categories'); + $head[$tab][2] = 'category'; + $tab++; } // Info - $head[$h][0] = DOL_URL_ROOT.'/contact/info.php?id='.$object->id; - $head[$h][1] = $langs->trans("Info"); - $head[$h][2] = 'info'; - $h++; + $head[$tab][0] = DOL_URL_ROOT.'/contact/info.php?id='.$object->id; + $head[$tab][1] = $langs->trans("Info"); + $head[$tab][2] = 'info'; + $tab++; - complete_head_from_modules($conf,$langs,$object,$head,$h,'contact','remove'); + complete_head_from_modules($conf,$langs,$object,$head,$tab,'contact','remove'); return $head; } diff --git a/htdocs/core/lib/tax.lib.php b/htdocs/core/lib/tax.lib.php index 9040b59c85e81fdee1e8223672b121cf6b7640fc..bee6999d1834c51f6d5801f0b51ceb8d01bddf1e 100644 --- a/htdocs/core/lib/tax.lib.php +++ b/htdocs/core/lib/tax.lib.php @@ -57,7 +57,7 @@ function tax_prepare_head(ChargeSociales $object) $nbFiles = count(dol_dir_list($upload_dir,'files',0,'','(\.meta|_preview\.png)$')); $head[$h][0] = DOL_URL_ROOT.'/compta/sociales/document.php?id='.$object->id; $head[$h][1] = $langs->trans("Documents"); - if($nbFiles > 0) $head[$h][1].= ' ('.$nbFiles.')'; + if($nbFiles > 0) $head[$h][1].= ' <span class="badge">'.$nbFiles.'</span>'; $head[$h][2] = 'documents'; $h++; diff --git a/htdocs/core/triggers/interface_90_all_Demo.class.php-NORUN b/htdocs/core/triggers/interface_90_all_Demo.class.php-NORUN index c50a4afcc0166bad6dd2fbb36c2ed4c802203f8a..70f5e0ce3e54dc9c81f27d45772dbc1f29ceedcc 100644 --- a/htdocs/core/triggers/interface_90_all_Demo.class.php-NORUN +++ b/htdocs/core/triggers/interface_90_all_Demo.class.php-NORUN @@ -119,6 +119,7 @@ class InterfaceDemo extends DolibarrTriggers case 'ORDER_CLONE': case 'ORDER_VALIDATE': case 'ORDER_DELETE': + case 'ORDER_CANCEL': case 'ORDER_SENTBYMAIL': case 'ORDER_CLASSIFY_BILLED': case 'LINEORDER_INSERT': diff --git a/htdocs/don/card.php b/htdocs/don/card.php index d3ce60a5381cb43e5f9d5fb4b1026c957e6c3ebf..cfe28532637be454f73e9a1c02193da66cd65745 100644 --- a/htdocs/don/card.php +++ b/htdocs/don/card.php @@ -106,7 +106,7 @@ if ($action == 'update') $object->email = GETPOST("email"); $object->date = $donation_date; $object->public = GETPOST("public"); - $object->fk_project = GETPOST("fk_project"); + $object->fk_projet = GETPOST("fk_projet"); $object->note_private= GETPOST("note_private"); $object->note_public = GETPOST("note_public"); @@ -161,7 +161,7 @@ if ($action == 'add') $object->note_private= GETPOST("note_private"); $object->note_public = GETPOST("note_public"); $object->public = GETPOST("public"); - $object->fk_project = GETPOST("fk_project"); + $object->fk_projet = GETPOST("fk_projet"); // Fill array 'array_options' with data from add form $ret = $extrafields->setOptionalsFromPost($extralabels,$object); @@ -343,7 +343,7 @@ if ($action == 'create') $formproject=new FormProjets($db); print "<tr><td>".$langs->trans("Project")."</td><td>"; - $formproject->select_projects(-1, GETPOST("fk_project"),'fk_project', 0, 1, 0, 1); + $formproject->select_projects(-1, GETPOST("fk_projet"),'fk_projet', 0, 1, 0, 1); print "</td></tr>\n"; } @@ -459,7 +459,7 @@ if (! empty($id) && $action == 'edit') $langs->load('projects'); print '<tr><td>'.$langs->trans('Project').'</td><td>'; - $formproject->select_projects(-1, $object->fk_project,'fk_project', 0, 1, 0, 1); + $formproject->select_projects(-1, $object->fk_projet,'fk_projet', 0, 1, 0, 1); print '</td></tr>'; } diff --git a/htdocs/don/class/don.class.php b/htdocs/don/class/don.class.php index 5e36037738f3c287abb03b89de56f5b887dc2647..080d0adb8063c2c5aa9c5db4762760bfa1097db2 100644 --- a/htdocs/don/class/don.class.php +++ b/htdocs/don/class/don.class.php @@ -54,7 +54,7 @@ class Don extends CommonObject var $country; var $email; var $public; - var $fk_project; + var $fk_projet; var $modepaiement; var $modepaiementid; var $note_private; @@ -337,7 +337,7 @@ class Don extends CommonObject // $sql.= ", country"; -- Deprecated $sql.= ", fk_country"; $sql.= ", public"; - $sql.= ", fk_project"; + $sql.= ", fk_projet"; $sql.= ", note_private"; $sql.= ", note_public"; $sql.= ", fk_user_author"; @@ -359,7 +359,7 @@ class Don extends CommonObject $sql.= ", '".$this->db->escape($this->town)."'"; $sql.= ", ".$this->country_id; $sql.= ", ".$this->public; - $sql.= ", ".($this->fk_project > 0?$this->fk_project:"null"); + $sql.= ", ".($this->fk_projet > 0?$this->fk_projet:"null"); $sql.= ", ".(!empty($this->note_private)?("'".$this->db->escape($this->note_private)."'"):"NULL"); $sql.= ", ".(!empty($this->note_public)?("'".$this->db->escape($this->note_public)."'"):"NULL"); $sql.= ", ".$user->id; @@ -455,7 +455,7 @@ class Don extends CommonObject $sql .= ",town='".$this->db->escape($this->town)."'"; $sql .= ",fk_country = ".$this->country_id; $sql .= ",public=".$this->public; - $sql .= ",fk_project=".($this->fk_project>0?$this->fk_project:'null'); + $sql .= ",fk_projet=".($this->fk_projet>0?$this->fk_projet:'null'); $sql .= ",note_private=".(!empty($this->note_private)?("'".$this->db->escape($this->note_private)."'"):"NULL"); $sql .= ",note_public=".(!empty($this->note_public)?("'".$this->db->escape($this->note_public)."'"):"NULL"); $sql .= ",datedon='".$this->db->idate($this->date)."'"; @@ -601,11 +601,11 @@ class Don extends CommonObject $sql = "SELECT d.rowid, d.datec, d.tms as datem, d.datedon,"; $sql.= " d.firstname, d.lastname, d.societe, d.amount, d.fk_statut, d.address, d.zip, d.town, "; $sql.= " d.fk_country, d.country as country_olddata, d.public, d.amount, d.fk_payment, d.paid, d.note_private, d.note_public, cp.libelle, d.email, d.phone, "; - $sql.= " d.phone_mobile, d.fk_project,"; + $sql.= " d.phone_mobile, d.fk_projet,"; $sql.= " p.title as project_label,"; $sql.= " c.code as country_code, c.label as country"; $sql.= " FROM ".MAIN_DB_PREFIX."don as d"; - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."projet as p ON p.rowid = d.fk_project"; + $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."projet as p ON p.rowid = d.fk_projet"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_paiement as cp ON cp.id = d.fk_payment"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON d.fk_country = c.rowid"; if (! empty($id)) @@ -647,7 +647,7 @@ class Don extends CommonObject $this->phone = $obj->phone; $this->phone_mobile = $obj->phone_mobile; $this->project = $obj->project_label; - $this->fk_project = $obj->fk_project; + $this->fk_projet = $obj->fk_projet; $this->public = $obj->public; $this->modepaymentid = $obj->fk_payment; $this->modepayment = $obj->libelle; @@ -677,8 +677,8 @@ class Don extends CommonObject /** * Validate a promise of donation * - * @param int $id id of donation - * @param int $userid User who validate the promise + * @param int $id id of donation + * @param int $userid User who validate the donation/promise * @return int <0 if KO, >0 if OK */ function valid_promesse($id, $userid) @@ -706,10 +706,10 @@ class Don extends CommonObject } /** - * Classe le don comme paye, le don a ete recu + * Classify the donation as paid, the donation was received * - * @param int $id id du don a modifier - * @param int $modepaiement mode de paiement + * @param int $id id of donation + * @param int $modepayment mode de payment * @return int <0 if KO, >0 if OK */ function set_paid($id, $modepaiement='') @@ -741,7 +741,7 @@ class Don extends CommonObject } /** - * Set donation to status canceled + * Set donation to status cancelled * * @param int $id id of donation * @return int <0 if KO, >0 if OK diff --git a/htdocs/don/list.php b/htdocs/don/list.php index ee7a6f5e6f948ab580d7e46cee6ea54def5bfb65..2fb2e066b5b69a1f30a42052eb8aa48aa1609a56 100644 --- a/htdocs/don/list.php +++ b/htdocs/don/list.php @@ -73,7 +73,7 @@ $sql = "SELECT d.rowid, d.datedon, d.firstname, d.lastname, d.societe,"; $sql.= " d.amount, d.fk_statut as statut, "; $sql.= " p.rowid as pid, p.ref, p.title, p.public"; $sql.= " FROM ".MAIN_DB_PREFIX."don as d LEFT JOIN ".MAIN_DB_PREFIX."projet AS p"; -$sql.= " ON p.rowid = d.fk_project WHERE 1 = 1"; +$sql.= " ON p.rowid = d.fk_projet WHERE 1 = 1"; if ($statut >= 0) { $sql .= " AND d.fk_statut = ".$statut; @@ -125,7 +125,7 @@ if ($resql) if (! empty($conf->projet->enabled)) { $langs->load("projects"); - print_liste_field_titre($langs->trans("Project"),$_SERVER["PHP_SELF"],"fk_project","&page=$page&statut=$statut","","",$sortfield,$sortorder); + print_liste_field_titre($langs->trans("Project"),$_SERVER["PHP_SELF"],"fk_projet","&page=$page&statut=$statut","","",$sortfield,$sortorder); } print_liste_field_titre($langs->trans("Amount"),$_SERVER["PHP_SELF"],"d.amount","&page=$page&statut=$statut","",'align="right"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"d.fk_statut","&page=$page&statut=$statut","",'align="right"',$sortfield,$sortorder); diff --git a/htdocs/install/mysql/migration/3.7.0-3.8.0.sql b/htdocs/install/mysql/migration/3.7.0-3.8.0.sql index b1b4eccbf5642b9231c6d9305f0e83af80c0ea1a..57cb8745502a502decfadf1c3c2a49939c96e8ee 100644 --- a/htdocs/install/mysql/migration/3.7.0-3.8.0.sql +++ b/htdocs/install/mysql/migration/3.7.0-3.8.0.sql @@ -425,7 +425,7 @@ ALTER TABLE llx_societe_extrafields ADD UNIQUE INDEX uk_societe_extrafields (fk_ ALTER TABLE llx_don ADD COLUMN fk_country integer NOT NULL after country; ALTER TABLE llx_don CHANGE COLUMN fk_paiement fk_payment integer; ALTER TABLE llx_don ADD COLUMN paid smallint default 0 NOT NULL after fk_payment; -ALTER TABLE llx_don CHANGE COLUMN fk_don_projet fk_project integer NULL; +ALTER TABLE llx_don CHANGE COLUMN fk_don_projet fk_projet integer NULL; create table llx_don_extrafields ( diff --git a/htdocs/install/mysql/tables/llx_don.sql b/htdocs/install/mysql/tables/llx_don.sql index d33467f9a7bd4b9780cd7e9a692fbb0d9baff5ed..f2aa52f073d2baec199928f7304fdf86ffb077ba 100644 --- a/htdocs/install/mysql/tables/llx_don.sql +++ b/htdocs/install/mysql/tables/llx_don.sql @@ -27,8 +27,8 @@ create table llx_don entity integer DEFAULT 1 NOT NULL, -- multi company id tms timestamp, fk_statut smallint NOT NULL DEFAULT 0, -- Status of donation promise or validate - datec datetime, -- date de creation de l'enregistrement - datedon datetime, -- date du don/promesse + datec datetime, -- Create date + datedon datetime, -- Date of the donation/promise amount real DEFAULT 0, fk_payment integer, paid smallint default 0 NOT NULL, @@ -44,7 +44,7 @@ create table llx_don phone varchar(24), phone_mobile varchar(24), public smallint DEFAULT 1 NOT NULL, -- Donation is public ? (0,1) - fk_project integer NULL, -- Donation is given for a project ? + fk_projet integer NULL, -- Donation is given for a project ? fk_user_author integer NOT NULL, fk_user_valid integer NULL, note_private text, diff --git a/htdocs/projet/element.php b/htdocs/projet/element.php index 7e3f9d671b112ec35be5e87af285124ba0e5fe27..ea61f70221c36e98a1dca79230aea291f84ae088 100644 --- a/htdocs/projet/element.php +++ b/htdocs/projet/element.php @@ -254,9 +254,10 @@ $listofreferent=array( 'name'=>"Donation", 'title'=>"ListDonationsAssociatedProject", 'class'=>'Don', + 'margin'=>'add', 'table'=>'don', 'datefieldname'=>'date', - 'disableamount'=>1, + 'disableamount'=>0, 'test'=>$conf->don->enabled && $user->rights->don->lire), ); @@ -344,7 +345,7 @@ foreach ($listofreferent as $key => $value) print '<td width="100" align="center">'.$langs->trans("Date").'</td>'; // Thirdparty or user print '<td>'; - if ($tablename == 'expensereport_det') print $langs->trans("User"); + if ($tablename == 'expensereport_det' || 'don') print $langs->trans("User"); else print $langs->trans("ThirdParty"); print '</td>'; if (empty($value['disableamount'])) print '<td align="right" width="120">'.$langs->trans("AmountHT").'</td>'; @@ -461,15 +462,26 @@ foreach ($listofreferent as $key => $value) $tmpuser=new User($db); $tmpuser->fetch($expensereport->fk_user_author); print $tmpuser->getNomUrl(1,'',48); + } + else if ($tablename == 'don') + { + $tmpuser2=new User($db); + $tmpuser2->fetch($don->fk_user_author); + print $tmpuser2->getNomUrl(1,'',48); } print '</td>'; // Amount without tax if (empty($value['disableamount'])) { + if ($tablename == 'don') $total_ht_by_line=$element->amount; + else + { + $total_ht_by_line=$element->total_ht; + } print '<td align="right">'; if (! $qualifiedfortotal) print '<strike>'; - print (isset($element->total_ht)?price($element->total_ht):' '); + print (isset($total_ht_by_line)?price($total_ht_by_line):' '); if (! $qualifiedfortotal) print '</strike>'; print '</td>'; } @@ -478,9 +490,14 @@ foreach ($listofreferent as $key => $value) // Amount inc tax if (empty($value['disableamount'])) { + if ($tablename == 'don') $total_ttc_by_line=$element->amount; + else + { + $total_ttc_by_line=$element->total_ttc; + } print '<td align="right">'; if (! $qualifiedfortotal) print '<strike>'; - print (isset($element->total_ttc)?price($element->total_ttc):' '); + print (isset($total_ttc_by_line)?price($total_ttc_by_line):' '); if (! $qualifiedfortotal) print '</strike>'; print '</td>'; } @@ -496,11 +513,11 @@ foreach ($listofreferent as $key => $value) if ($qualifiedfortotal) { - $total_ht = $total_ht + $element->total_ht; - $total_ttc = $total_ttc + $element->total_ttc; + $total_ht = $total_ht + $total_ht_by_line; + $total_ttc = $total_ttc + $total_ttc_by_line; - $total_ht_by_third += $element->total_ht; - $total_ttc_by_third += $element->total_ttc; + $total_ht_by_third += $total_ht_by_line; + $total_ttc_by_third += $total_ttc_by_line; } if (canApplySubtotalOn($tablename)) @@ -619,9 +636,21 @@ foreach ($listofreferent as $key => $value) { $element->fetch($elementarray[$i]); if ($tablename != 'expensereport_det') $element->fetch_thirdparty(); + if ($tablename == 'don') $total_ht_by_line=$element->amount; + else + { + $total_ht_by_line=$element->total_ht; + } + + $total_ht = $total_ht + $total_ht_by_line; + + if ($tablename == 'don') $total_ttc_by_line=$element->amount; + else + { + $total_ttc_by_line=$element->total_ttc; + } - $total_ht = $total_ht + $element->total_ht; - $total_ttc = $total_ttc + $element->total_ttc; + $total_ttc = $total_ttc + $total_ttc_by_line; } // Calculate margin