diff --git a/COPYRIGHT b/COPYRIGHT index e06586aa7c2..d97b00721da 100644 --- a/COPYRIGHT +++ b/COPYRIGHT @@ -19,6 +19,7 @@ GeoIP 2004 LGPL-2.1+ Yes Sample code to m NuSoap 0.9.5 LGPL 2.1+ Yes Library to develop SOAP Web services (not into rpm and deb package) OdtPHP 1.0.1 GPL-2+ Yes Library to build/edit ODT files PHPExcel 1.7.6 LGPL-2.1+ Yes Read/Write XLS files, read ODS files +PHPPrintIPP 1.3 GPL-2+ Yes Library to send print IPP requests TCPDF 5.9.180 LGPL-3+ Yes PDF generation JS libraries: @@ -26,7 +27,7 @@ jQuery 1.8.2 MIT Licence Yes JS library jQuery UI 1.9.1 GPL and MIT Licence Yes JS library plugin UI jQuery Timepicker 1.1.0 GPL and MIT Licence Yes JS library Timepicker addon for Datepicker jQuery Colorpicker 1.1 MIT Licence Yes JS library for color picker for a defined list of colors -jQuery DataTables 1.9.1 BSD Yes JS library for tables output +jQuery DataTables 1.9.4 BSD Yes JS library for tables output jQuery Flot 0.7 MIT Licence Yes JS library to build graph jQuery FileUpload 5.0.3 GPL and MIT Licence Yes JS library to upload files jQuery JCrop 0.9.8 GPL and MIT Licence Yes JS library plugin Crop (to crop images) @@ -50,10 +51,12 @@ Copyright Copyright (C) 2013 - Christophe Battarel - Laurent Destailleur +- Jean-François Ferry - Marcos García - Philippe Grand - Florian Henry - Regis Houssin +- Maxime Kohlhaas - Juanjo Menent Copyright (C) 2012 diff --git a/ChangeLog b/ChangeLog index 89978452254..db9fc3b9f8e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,6 +4,8 @@ English Dolibarr ChangeLog ***** ChangeLog for 3.4 compared to 3.3 ***** For users: +- New: Support revenue stamp onto invoices. +- New: Add a tab "consumption" on thirdparties to list products bought/sells. - New: Some performance enhancements. - New: Can attach files onto trip and expenses modules. - New: Add option MAIN_PDF_TITLE_BACKGROUND_COLOR. @@ -25,6 +27,7 @@ For users: - New: [ task #748 ] Add a link "Dolibarr" into left menu - New: Script email_unpaid_invoices_to_representative accepts now a parameter test and a delay. +- First change to prepare feature click to print for PDF. For translators: - Update language files. @@ -43,12 +46,15 @@ For developers: into conf->liste_limit). - New: Add option dol_hide_topmenu and dol_hide_leftmenu onto login page. - New: dol_syslog method accept a suffix to use different log files for log. -- New: Type of fields are received by export format handlers +- New: Type of fields are received by export format handlers. - New: when adding an action, we can define a free code to tag it for a specific need. +- New: Enhance Dolibarr migration process to include migration script of external + modules. WARNING: If you used external modules, some of them may need to be upgraded due to: - fields of classes were renamed to be normalized (nom, prenom, cp, ville, adresse were renamed into lastname, firstname, zip, town, address). + This may also be true for some fields into web services. - if module use hook pdf_writelinedesc, module may have to add return 1 at end of function to keep same behaviour. @@ -60,17 +66,7 @@ WARNING: If you used external modules, some of them may need to be upgraded due - Fix: Package for launchpad - Fix: [ bug #736 ] Missing column in llx_c_chargesociales - Fix: Localtax2 for Spain must be based into buyer - - - - -***** ChangeLog for 3.3.1 compared to 3.3 ***** - -- Fix: [ bug #733 ] Mass emailing tools do not support \r\nYou can adit it with the WYSIWYG editor.
\r\nIt is\r\n
    \r\n
  • \r\n Fast
  • \r\n
  • \r\n Easy to use
  • \r\n
  • \r\n Pretty
  • \r\n
','','',NULL,NULL,'dolibarr@domain.com','','',NULL,'2011-07-18 20:44:33',NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +/*!40000 ALTER TABLE `llx_mailing` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_mailing_cibles` +-- + +DROP TABLE IF EXISTS `llx_mailing_cibles`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_mailing_cibles` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_mailing` int(11) NOT NULL, + `fk_contact` int(11) NOT NULL, + `lastname` varchar(50) DEFAULT NULL, + `firstname` varchar(50) DEFAULT NULL, + `email` varchar(160) NOT NULL, + `other` varchar(255) DEFAULT NULL, + `tag` varchar(128) DEFAULT NULL, + `statut` smallint(6) NOT NULL DEFAULT '0', + `source_url` varchar(160) DEFAULT NULL, + `source_id` int(11) DEFAULT NULL, + `source_type` varchar(16) DEFAULT NULL, + `date_envoi` datetime DEFAULT NULL, + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_mailing_cibles` (`fk_mailing`,`email`), + KEY `idx_mailing_cibles_email` (`email`) +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_mailing_cibles` +-- + +LOCK TABLES `llx_mailing_cibles` WRITE; +/*!40000 ALTER TABLE `llx_mailing_cibles` DISABLE KEYS */; +INSERT INTO `llx_mailing_cibles` VALUES (1,1,0,'Dupont','Alain','toto@aa.com','Date fin=10/07/2011',NULL,0,'0',NULL,NULL,NULL),(2,2,0,'Swiss customer supplier','','abademail@aa.com','',NULL,0,'0',NULL,NULL,NULL),(3,2,0,'Smith Vick','','vsmith@email.com','',NULL,0,'0',NULL,NULL,NULL),(4,3,0,'Swiss customer supplier','','abademail@aa.com','',NULL,0,'0',NULL,NULL,NULL),(5,3,0,'Smith Vick','','vsmith@email.com','',NULL,0,'0',NULL,NULL,NULL); +/*!40000 ALTER TABLE `llx_mailing_cibles` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_menu` +-- + +DROP TABLE IF EXISTS `llx_menu`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_menu` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `menu_handler` varchar(16) NOT NULL, + `entity` int(11) NOT NULL DEFAULT '1', + `module` varchar(64) DEFAULT NULL, + `type` varchar(4) NOT NULL, + `mainmenu` varchar(100) NOT NULL, + `fk_menu` int(11) NOT NULL, + `fk_leftmenu` varchar(24) DEFAULT NULL, + `fk_mainmenu` varchar(24) DEFAULT NULL, + `position` int(11) NOT NULL, + `url` varchar(255) NOT NULL, + `target` varchar(100) DEFAULT NULL, + `titre` varchar(255) NOT NULL, + `langs` varchar(100) DEFAULT NULL, + `level` smallint(6) DEFAULT NULL, + `leftmenu` varchar(100) DEFAULT NULL, + `perms` varchar(255) DEFAULT NULL, + `enabled` varchar(255) DEFAULT '1', + `usertype` int(11) NOT NULL DEFAULT '0', + `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`rowid`), + UNIQUE KEY `idx_menu_uk_menu` (`menu_handler`,`fk_menu`,`position`,`url`,`entity`), + KEY `idx_menu_menuhandler_type` (`menu_handler`,`type`) +) ENGINE=InnoDB AUTO_INCREMENT=108367 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_menu` +-- + +LOCK TABLES `llx_menu` WRITE; +/*!40000 ALTER TABLE `llx_menu` DISABLE KEYS */; +INSERT INTO `llx_menu` VALUES (19289,'all',1,'cashdesk','top','cashdesk',0,NULL,NULL,100,'/cashdesk/index.php?user=__LOGIN__','pointofsale','CashDeskMenu','cashdesk',NULL,NULL,'1','$conf->cashdesk->enabled',0,'2012-12-08 13:11:09'),(87303,'all',1,'filemanager','top','filemanager',0,NULL,NULL,100,'/filemanager/index.php','','FileManager','filemanager@filemanager',NULL,NULL,'$user->rights->filemanager->read','$conf->filemanager->enabled',2,'2013-01-02 20:33:20'),(87304,'all',1,'holiday','top','holiday',0,NULL,NULL,100,'/holiday/index.php','','CPTitreMenu','holiday',NULL,'holiday','$user->rights->holiday->write','1',2,'2013-01-02 20:33:24'),(87305,'all',1,'holiday','left','holiday',-1,NULL,'holiday',100,'/holiday/index.php?mainmenu=holiday&leftmenu=holiday','','CPTitreMenu','holiday',NULL,'holiday','$user->rights->holiday->write','1',2,'2013-01-02 20:33:24'),(87306,'all',1,'holiday','left','holiday',-1,'holiday','holiday',101,'/holiday/fiche.php?mainmenu=holiday&action=request','','MenuAddCP','holiday',NULL,'holiday_add','$user->rights->holiday->write','$conf->holiday->enabled',2,'2013-01-02 20:33:24'),(87307,'all',1,'holiday','left','holiday',-1,'holiday','holiday',102,'/holiday/define_holiday.php?mainmenu=holiday&action=request','','MenuConfCP','holiday',NULL,'holiday_conf','$user->rights->holiday->define_holiday','$conf->holiday->enabled',2,'2013-01-02 20:33:24'),(87308,'all',1,'holiday','left','holiday_def',-1,'holiday','holiday',103,'/holiday/view_log.php?mainmenu=holiday&action=request','','MenuLogCP','holiday',NULL,'holiday','$user->rights->holiday->view_log','$conf->holiday->enabled',2,'2013-01-02 20:33:24'),(87309,'all',1,'holiday','left','holiday',-1,'holiday','holiday',104,'/holiday/month_report.php?mainmenu=holiday&action=request','','MenuReportMonth','holiday',NULL,'holiday_report','$user->rights->holiday->view_log','$conf->holiday->enabled',2,'2013-01-02 20:33:24'),(87329,'all',1,'ovh','left','home',-1,'modulesadmintools','home',100,'/ovh/importovhinvoice.php','','OvhInvoiceImportShort','ovh@ovh',NULL,NULL,'1','$leftmenu==\'modulesadmintools\'',2,'2013-01-12 13:36:29'),(87354,'all',1,'pos','top','pos',0,NULL,NULL,100,'/pos/backend/listefac.php','','POS','pos@pos',NULL,'1','1','1',2,'2013-01-19 17:16:10'),(87355,'all',1,'pos','left','pos',87354,NULL,NULL,100,'/pos/backend/liste.php','','Tickets','pos@pos',NULL,NULL,'$user->rights->pos->backend','$conf->global->POS_USE_TICKETS',0,'2013-01-19 17:16:10'),(87356,'all',1,'pos','left','pos',87355,NULL,NULL,100,'/pos/backend/liste.php','','List','main',NULL,NULL,'$user->rights->pos->backend','$conf->global->POS_USE_TICKETS',0,'2013-01-19 17:16:10'),(87357,'all',1,'pos','left','pos',87356,NULL,NULL,100,'/pos/backend/liste.php?viewstatut=0','','StatusTicketDraft','pos@pos',NULL,NULL,'$user->rights->pos->backend','$conf->global->POS_USE_TICKETS',0,'2013-01-19 17:16:10'),(87358,'all',1,'pos','left','@pos',87356,NULL,NULL,100,'/pos/backend/liste.php?viewstatut=1','','StatusTicketClosed','main',NULL,NULL,'$user->rights->pos->backend','$conf->global->POS_USE_TICKETS',0,'2013-01-19 17:16:10'),(87359,'all',1,'pos','left','@pos',87356,NULL,NULL,100,'/pos/backend/liste.php?viewstatut=2','','StatusTicketProcessed','main',NULL,NULL,'$user->rights->pos->backend','$conf->global->POS_USE_TICKETS',0,'2013-01-19 17:16:10'),(87360,'all',1,'pos','left','@pos',87356,NULL,NULL,100,'/pos/backend/liste.php?viewtype=1','','StatusTicketReturned','main',NULL,NULL,'$user->rights->pos->backend','$conf->global->POS_USE_TICKETS',0,'2013-01-19 17:16:10'),(87361,'all',1,'pos','left','pos',87354,NULL,NULL,100,'/pos/backend/listefac.php','','Factures','pos@pos',NULL,NULL,'$user->rights->pos->backend','1',0,'2013-01-19 17:16:10'),(87362,'all',1,'pos','left','pos',87361,NULL,NULL,100,'/pos/backend/listefac.php','','List','main',NULL,NULL,'$user->rights->pos->backend','1',0,'2013-01-19 17:16:10'),(87363,'all',1,'pos','left','pos',87362,NULL,NULL,100,'/pos/backend/listefac.php?viewstatut=0','','BillStatusDraft','bills',NULL,NULL,'$user->rights->pos->backend','1',0,'2013-01-19 17:16:10'),(87364,'all',1,'pos','left','@pos',87362,NULL,NULL,100,'/pos/backend/listefac.php?viewstatut=1','','BillStatusValidated','bills',NULL,NULL,'$user->rights->pos->backend','1',0,'2013-01-19 17:16:10'),(87365,'all',1,'pos','left','@pos',87362,NULL,NULL,100,'/pos/backend/listefac.php?viewstatut=2&viewtype=0','','BillStatusPaid','bills',NULL,NULL,'$user->rights->pos->backend','1',0,'2013-01-19 17:16:10'),(87366,'all',1,'pos','left','@pos',87362,NULL,NULL,100,'/pos/backend/listefac.php?viewtype=2','','BillStatusReturned','main',NULL,NULL,'$user->rights->pos->backend','1',0,'2013-01-19 17:16:10'),(87367,'all',1,'pos','left','@pos',87354,NULL,NULL,100,'/pos/frontend/index.php','','POS','main',NULL,NULL,'$user->rights->pos->frontend','1',0,'2013-01-19 17:16:10'),(87368,'all',1,'pos','left','@pos',87367,NULL,NULL,100,'/pos/frontend/index.php','','NewTicket','main',NULL,NULL,'$user->rights->pos->frontend','1',0,'2013-01-19 17:16:10'),(87369,'all',1,'pos','left','@pos',87367,NULL,NULL,101,'/pos/backend/closes.php','','CloseandArching','main',NULL,NULL,'$user->rights->pos->backend','1',0,'2013-01-19 17:16:10'),(87370,'all',1,'pos','left','@pos',87354,NULL,NULL,100,'/pos/backend/terminal/cash.php','','Terminal','main',NULL,NULL,'$user->rights->pos->backend','1',0,'2013-01-19 17:16:10'),(87371,'all',1,'pos','left','@pos',87370,NULL,NULL,100,'/pos/backend/terminal/fiche.php?action=create','','NewCash','main',NULL,NULL,'$user->rights->pos->backend','1',0,'2013-01-19 17:16:10'),(87372,'all',1,'pos','left','@pos',87370,NULL,NULL,101,'/pos/backend/terminal/cash.php','','List','main',NULL,NULL,'$user->rights->pos->backend','1',0,'2013-01-19 17:16:10'),(87373,'all',1,'pos','left','@pos',87369,NULL,NULL,101,'/pos/backend/closes.php?viewstatut=0','','Arqueo','main',NULL,NULL,'$user->rights->pos->backend','1',0,'2013-01-19 17:16:10'),(87374,'all',1,'pos','left','@pos',87369,NULL,NULL,102,'/pos/backend/closes.php?viewstatut=1','','Closes','main',NULL,NULL,'$user->rights->pos->backend','1',0,'2013-01-19 17:16:10'),(87375,'all',1,'pos','left','@pos',87354,NULL,NULL,102,'/pos/backend/transfers.php','','Transfer','main',NULL,NULL,'$user->rights->pos->transfer','1',0,'2013-01-19 17:16:10'),(87376,'all',1,'pos','left','@pos',87354,NULL,NULL,102,'/pos/backend/resultat/index.php','','Rapport','main',NULL,NULL,'$user->rights->pos->stats','1',0,'2013-01-19 17:16:10'),(87377,'all',1,'pos','left','@pos',87376,NULL,NULL,102,'/pos/backend/resultat/casoc.php','','ReportsCustomer','main',NULL,NULL,'$user->rights->pos->stats','1',0,'2013-01-19 17:16:10'),(87378,'all',1,'pos','left','@pos',87376,NULL,NULL,102,'/pos/backend/resultat/causer.php','','ReportsUser','main',NULL,NULL,'$user->rights->pos->stats','1',0,'2013-01-19 17:16:10'),(87379,'all',1,'pos','left','@pos',87376,NULL,NULL,102,'/pos/backend/resultat/sellsjournal.php','','ReportsSells','main',NULL,NULL,'$user->rights->pos->stats','1',0,'2013-01-19 17:16:10'),(87380,'all',1,'agenda','top','agenda',0,NULL,NULL,100,'/comm/action/index.php','','Agenda','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2013-01-23 13:42:41'),(87381,'all',1,'agenda','left','agenda',87380,NULL,NULL,100,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda','','Actions','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2013-01-23 13:42:41'),(87382,'all',1,'agenda','left','agenda',87381,NULL,NULL,101,'/comm/action/fiche.php?mainmenu=agenda&leftmenu=agenda&action=create','','NewAction','commercial',NULL,NULL,'($user->rights->agenda->myactions->create||$user->rights->agenda->allactions->create)','$conf->agenda->enabled',2,'2013-01-23 13:42:41'),(87383,'all',1,'agenda','left','agenda',87381,NULL,NULL,102,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda','','Calendar','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2013-01-23 13:42:41'),(87384,'all',1,'agenda','left','agenda',87383,NULL,NULL,103,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda&status=todo&filter=mine','','MenuToDoMyActions','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2013-01-23 13:42:41'),(87385,'all',1,'agenda','left','agenda',87383,NULL,NULL,104,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda&status=done&filter=mine','','MenuDoneMyActions','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2013-01-23 13:42:41'),(87386,'all',1,'agenda','left','agenda',87383,NULL,NULL,105,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda&status=todo','','MenuToDoActions','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2013-01-23 13:42:41'),(87387,'all',1,'agenda','left','agenda',87383,NULL,NULL,106,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda&status=done','','MenuDoneActions','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2013-01-23 13:42:41'),(87388,'all',1,'agenda','left','agenda',87381,NULL,NULL,112,'/comm/action/listactions.php?mainmenu=agenda&leftmenu=agenda','','List','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2013-01-23 13:42:41'),(87389,'all',1,'agenda','left','agenda',87388,NULL,NULL,113,'/comm/action/listactions.php?mainmenu=agenda&leftmenu=agenda&status=todo&filter=mine','','MenuToDoMyActions','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2013-01-23 13:42:41'),(87390,'all',1,'agenda','left','agenda',87388,NULL,NULL,114,'/comm/action/listactions.php?mainmenu=agenda&leftmenu=agenda&status=done&filter=mine','','MenuDoneMyActions','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2013-01-23 13:42:41'),(87391,'all',1,'agenda','left','agenda',87388,NULL,NULL,115,'/comm/action/listactions.php?mainmenu=agenda&leftmenu=agenda&status=todo','','MenuToDoActions','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2013-01-23 13:42:41'),(87392,'all',1,'agenda','left','agenda',87388,NULL,NULL,116,'/comm/action/listactions.php?mainmenu=agenda&leftmenu=agenda&status=done','','MenuDoneActions','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2013-01-23 13:42:41'),(87393,'all',1,'agenda','left','agenda',87381,NULL,NULL,120,'/comm/action/rapport/index.php?mainmenu=agenda&leftmenu=agenda','','Reportings','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$conf->agenda->enabled',2,'2013-01-23 13:42:41'),(87394,'all',1,'ecm','top','ecm',0,NULL,NULL,100,'/ecm/index.php','','MenuECM','ecm',NULL,NULL,'$user->rights->ecm->read || $user->rights->ecm->upload || $user->rights->ecm->setup','$conf->ecm->enabled',2,'2013-01-23 13:42:42'),(87395,'all',1,'ecm','left','ecm',87394,NULL,NULL,101,'/ecm/index.php','','ECMArea','ecm',NULL,NULL,'$user->rights->ecm->read || $user->rights->ecm->upload','$user->rights->ecm->read || $user->rights->ecm->upload',2,'2013-01-23 13:42:42'),(87396,'all',1,'ecm','left','ecm',87395,NULL,NULL,100,'/ecm/docdir.php?action=create','','ECMNewSection','ecm',NULL,NULL,'$user->rights->ecm->setup','$user->rights->ecm->setup',2,'2013-01-23 13:42:42'),(87397,'all',1,'ecm','left','ecm',87395,NULL,NULL,102,'/ecm/index.php?action=file_manager','','ECMFileManager','ecm',NULL,NULL,'$user->rights->ecm->read || $user->rights->ecm->upload','$user->rights->ecm->read || $user->rights->ecm->upload',2,'2013-01-23 13:42:42'),(87398,'all',2,'holiday','top','holiday',0,NULL,NULL,100,'/holiday/index.php','','CPTitreMenu','holiday',NULL,'holiday','$user->rights->holiday->write','1',2,'2013-02-01 08:52:34'),(87399,'all',2,'holiday','left','holiday',-1,NULL,'holiday',100,'/holiday/index.php?mainmenu=holiday&leftmenu=holiday','','CPTitreMenu','holiday',NULL,'holiday','$user->rights->holiday->write','1',2,'2013-02-01 08:52:34'),(87400,'all',2,'holiday','left','holiday',-1,'holiday','holiday',101,'/holiday/fiche.php?mainmenu=holiday&action=request','','MenuAddCP','holiday',NULL,'holiday_add','$user->rights->holiday->write','$conf->holiday->enabled',2,'2013-02-01 08:52:34'),(87401,'all',2,'holiday','left','holiday',-1,'holiday','holiday',102,'/holiday/define_holiday.php?mainmenu=holiday&action=request','','MenuConfCP','holiday',NULL,'holiday_conf','$user->rights->holiday->define_holiday','$conf->holiday->enabled',2,'2013-02-01 08:52:34'),(87402,'all',2,'holiday','left','holiday_def',-1,'holiday','holiday',103,'/holiday/view_log.php?mainmenu=holiday&action=request','','MenuLogCP','holiday',NULL,'holiday','$user->rights->holiday->view_log','$conf->holiday->enabled',2,'2013-02-01 08:52:34'),(87403,'all',2,'holiday','left','holiday',-1,'holiday','holiday',104,'/holiday/month_report.php?mainmenu=holiday&action=request','','MenuReportMonth','holiday',NULL,'holiday_report','$user->rights->holiday->view_log','$conf->holiday->enabled',2,'2013-02-01 08:52:34'),(87422,'smartphone',1,NULL,'top','home',0,NULL,NULL,1,'/index.php?mainmenu=home&leftmenu=','','Home','',-1,'','','1',2,'2013-02-24 18:29:15'),(87423,'smartphone',1,NULL,'top','companies',0,NULL,NULL,2,'/societe/index.php?mainmenu=companies&leftmenu=','','ThirdParties','companies',-1,'','$user->rights->societe->lire || $user->rights->societe->contact->lire','$conf->societe->enabled || $conf->fournisseur->enabled',2,'2013-02-24 18:29:15'),(87424,'smartphone',1,NULL,'top','products',0,NULL,NULL,3,'/product/index.php?mainmenu=products&leftmenu=','','Products/Services','products',-1,'','$user->rights->produit->lire||$user->rights->service->lire','$conf->product->enabled || $conf->service->enabled',0,'2013-02-24 18:29:15'),(87426,'smartphone',1,NULL,'top','commercial',0,NULL,NULL,5,'/comm/index.php?mainmenu=commercial&leftmenu=','','Commercial','commercial',-1,'','$user->rights->societe->lire || $user->rights->societe->contact->lire','$conf->societe->enabled',2,'2013-02-24 18:29:15'),(87427,'smartphone',1,NULL,'top','accountancy',0,NULL,NULL,6,'/compta/index.php?mainmenu=accountancy&leftmenu=','','MenuFinancial','compta',-1,'','$user->rights->compta->resultat->lire || $user->rights->accounting->plancompte->lire || $user->rights->commande->lire || $user->rights->facture->lire','$conf->comptabilite->enabled || $conf->accounting->enabled || $conf->facture->enabled || $conf->deplacement->enabled || $conf->don->enabled',2,'2013-02-24 18:29:15'),(87428,'smartphone',1,NULL,'top','project',0,NULL,NULL,7,'/projet/index.php?mainmenu=project&leftmenu=','','Projects','projects',-1,'','$user->rights->projet->lire','$conf->projet->enabled',0,'2013-02-24 18:29:15'),(87429,'smartphone',1,NULL,'top','tools',0,NULL,NULL,8,'/core/tools.php?mainmenu=tools&leftmenu=','','Tools','other',-1,'','$user->rights->mailing->lire || $user->rights->export->lire || $user->rights->import->run','$conf->mailing->enabled || $conf->export->enabled || $conf->import->enabled',2,'2013-02-24 18:29:15'),(87432,'smartphone',1,NULL,'top','shop',0,NULL,NULL,11,'/boutique/index.php?mainmenu=shop&leftmenu=','','OSCommerce','shop',-1,'','','! empty($conf->boutique->enabled)',0,'2013-02-24 18:29:15'),(87434,'smartphone',1,NULL,'top','members',0,NULL,NULL,15,'/adherents/index.php?mainmenu=members&leftmenu=','','Members','members',-1,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2013-02-24 18:29:15'),(87435,'smartphone',1,NULL,'top','bank',0,NULL,NULL,6,'/compta/bank/index.php?mainmenu=bank&leftmenu=bank','','MenuBankCash','banks',-1,'','$user->rights->banque->lire || $user->rights->prelevement->bons->lire','$conf->banque->enabled || $conf->prelevement->enabled',2,'2013-02-24 18:29:15'),(87521,'smartphone',1,NULL,'left','home',87422,NULL,NULL,0,'/admin/index.php?leftmenu=setup','','Setup','admin',0,'','','$user->admin',2,'2013-02-24 18:29:15'),(87522,'smartphone',1,NULL,'left','home',87521,NULL,NULL,1,'/admin/company.php?leftmenu=setup','','MenuCompanySetup','admin',1,'','','1',2,'2013-02-24 18:29:15'),(87523,'smartphone',1,NULL,'left','home',87521,NULL,NULL,4,'/admin/ihm.php?leftmenu=setup','','GUISetup','admin',1,'','','1',2,'2013-02-24 18:29:15'),(87524,'smartphone',1,NULL,'left','home',87521,NULL,NULL,2,'/admin/modules.php?leftmenu=setup','','Modules','admin',1,'','','1',2,'2013-02-24 18:29:15'),(87525,'smartphone',1,NULL,'left','home',87521,NULL,NULL,5,'/admin/boxes.php?leftmenu=setup','','Boxes','admin',1,'','','1',2,'2013-02-24 18:29:15'),(87526,'smartphone',1,NULL,'left','home',87521,NULL,NULL,3,'/admin/menus.php?leftmenu=setup','','Menus','admin',1,'','','1',2,'2013-02-24 18:29:15'),(87527,'smartphone',1,NULL,'left','home',87521,NULL,NULL,6,'/admin/delais.php?leftmenu=setup','','Alerts','admin',1,'','','1',2,'2013-02-24 18:29:15'),(87529,'smartphone',1,NULL,'left','home',87521,NULL,NULL,7,'/admin/perms.php?leftmenu=setup','','Security','admin',1,'','','1',2,'2013-02-24 18:29:15'),(87530,'smartphone',1,NULL,'left','home',87521,NULL,NULL,9,'/admin/mails.php?leftmenu=setup','','Emails','admin',1,'','','1',2,'2013-02-24 18:29:15'),(87531,'smartphone',1,NULL,'left','home',87521,NULL,NULL,8,'/admin/limits.php?leftmenu=setup','','MenuLimits','admin',1,'','','1',2,'2013-02-24 18:29:15'),(87532,'smartphone',1,NULL,'left','home',87521,NULL,NULL,10,'/admin/dict.php?leftmenu=setup','','DictionnarySetup','admin',1,'','','1',2,'2013-02-24 18:29:15'),(87533,'smartphone',1,NULL,'left','home',87521,NULL,NULL,11,'/admin/const.php?leftmenu=setup','','OtherSetup','admin',1,'','','1',2,'2013-02-24 18:29:15'),(87621,'smartphone',1,NULL,'left','home',87422,NULL,NULL,1,'/admin/system/index.php?leftmenu=system','','SystemInfo','admin',0,'','','$user->admin',2,'2013-02-24 18:29:15'),(87622,'smartphone',1,NULL,'left','home',87621,NULL,NULL,0,'/admin/system/dolibarr.php?leftmenu=system','','Dolibarr','admin',1,'','','1',2,'2013-02-24 18:29:15'),(87623,'smartphone',1,NULL,'left','home',87622,NULL,NULL,1,'/admin/system/constall.php?leftmenu=system','','AllParameters','admin',2,'','','1',2,'2013-02-24 18:29:15'),(87624,'smartphone',1,NULL,'left','home',87622,NULL,NULL,4,'/admin/system/about.php?leftmenu=system','','About','admin',2,'','','1',2,'2013-02-24 18:29:15'),(87625,'smartphone',1,NULL,'left','home',87621,NULL,NULL,1,'/admin/system/os.php?leftmenu=system','','OS','admin',1,'','','1',2,'2013-02-24 18:29:15'),(87626,'smartphone',1,NULL,'left','home',87621,NULL,NULL,2,'/admin/system/web.php?leftmenu=system','','WebServer','admin',1,'','','1',2,'2013-02-24 18:29:15'),(87627,'smartphone',1,NULL,'left','home',87621,NULL,NULL,3,'/admin/system/phpinfo.php?leftmenu=system','','Php','admin',1,'','','1',2,'2013-02-24 18:29:15'),(87628,'smartphone',1,NULL,'left','home',87622,NULL,NULL,3,'/admin/triggers.php?leftmenu=system','','Triggers','admin',2,'','','1',2,'2013-02-24 18:29:15'),(87629,'smartphone',1,NULL,'left','home',87622,NULL,NULL,2,'/admin/system/modules.php?leftmenu=system','','Modules','admin',2,'','','1',2,'2013-02-24 18:29:15'),(87631,'smartphone',1,NULL,'left','home',87621,NULL,NULL,4,'/admin/system/database.php?leftmenu=system','','Database','admin',1,'','','1',2,'2013-02-24 18:29:15'),(87632,'smartphone',1,NULL,'left','home',87631,NULL,NULL,0,'/admin/system/database-tables.php?leftmenu=system','','Tables','admin',2,'','','1',2,'2013-02-24 18:29:15'),(87721,'smartphone',1,NULL,'left','home',87422,NULL,NULL,2,'/admin/tools/index.php?leftmenu=admintools','','SystemTools','admin',0,'','','$user->admin',2,'2013-02-24 18:29:15'),(87722,'smartphone',1,NULL,'left','home',87721,NULL,NULL,0,'/admin/tools/dolibarr_export.php?leftmenu=admintools','','Backup','admin',1,'','','1',2,'2013-02-24 18:29:15'),(87723,'smartphone',1,NULL,'left','home',87721,NULL,NULL,1,'/admin/tools/dolibarr_import.php?leftmenu=admintools','','Restore','admin',1,'','','1',2,'2013-02-24 18:29:15'),(87724,'smartphone',1,NULL,'left','home',87721,NULL,NULL,6,'/admin/tools/purge.php?leftmenu=admintools','','Purge','admin',1,'','','1',2,'2013-02-24 18:29:15'),(87725,'smartphone',1,NULL,'left','home',87721,NULL,NULL,3,'/admin/tools/eaccelerator.php?leftmenu=admintools','','EAccelerator','admin',1,'','','1 && function_exists(\'eaccelerator_info\')',2,'2013-02-24 18:29:15'),(87726,'smartphone',1,NULL,'left','home',87721,NULL,NULL,2,'/admin/tools/update.php?leftmenu=admintools','','MenuUpgrade','admin',1,'','','1',2,'2013-02-24 18:29:15'),(87727,'smartphone',1,NULL,'left','home',87721,NULL,NULL,4,'/admin/tools/listevents.php?leftmenu=admintools','','Audit','admin',1,'','','1',2,'2013-02-24 18:29:15'),(87728,'smartphone',1,NULL,'left','home',87721,NULL,NULL,7,'/support/index.php?leftmenu=admintools','_blank','HelpCenter','help',1,'','','1',2,'2013-02-24 18:29:15'),(87729,'smartphone',1,NULL,'left','home',87721,NULL,NULL,5,'/admin/tools/listsessions.php?leftmenu=admintools','','Sessions','admin',1,'','','1',2,'2013-02-24 18:29:15'),(87821,'smartphone',1,NULL,'left','home',87422,NULL,NULL,3,'/user/home.php?leftmenu=users','','MenuUsersAndGroups','users',0,'','','1',2,'2013-02-24 18:29:15'),(87822,'smartphone',1,NULL,'left','home',87821,NULL,NULL,0,'/user/index.php?leftmenu=users','','Users','users',1,'','$user->rights->user->user->lire || $user->admin','1',2,'2013-02-24 18:29:15'),(87823,'smartphone',1,NULL,'left','home',87822,NULL,NULL,0,'/user/fiche.php?leftmenu=users&action=create','','NewUser','users',2,'','$user->rights->user->user->creer || $user->admin','1',2,'2013-02-24 18:29:15'),(87824,'smartphone',1,NULL,'left','home',87821,NULL,NULL,1,'/user/group/index.php?leftmenu=users','','Groups','users',1,'','($conf->global->MAIN_USE_ADVANCED_PERMS?$user->rights->user->group_advance->read:$user->rights->user->user->lire) || $user->admin','1',2,'2013-02-24 18:29:15'),(87825,'smartphone',1,NULL,'left','home',87824,NULL,NULL,0,'/user/group/fiche.php?leftmenu=users&action=create','','NewGroup','users',2,'','($conf->global->MAIN_USE_ADVANCED_PERMS?$user->rights->user->group_advance->write:$user->rights->user->user->creer) || $user->admin','1',2,'2013-02-24 18:29:15'),(87921,'smartphone',1,NULL,'left','companies',87423,NULL,NULL,0,'/societe/societe.php','','ThirdParty','companies',0,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2013-02-24 18:29:15'),(87922,'smartphone',1,NULL,'left','companies',87921,NULL,NULL,0,'/societe/soc.php?action=create','','MenuNewThirdParty','companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2013-02-24 18:29:15'),(87924,'smartphone',1,NULL,'left','companies',87921,NULL,NULL,5,'/fourn/liste.php?leftmenu=suppliers','','ListSuppliersShort','suppliers',1,'','$user->rights->societe->lire && $user->rights->fournisseur->lire','$conf->societe->enabled && $conf->fournisseur->enabled',2,'2013-02-24 18:29:15'),(87925,'smartphone',1,NULL,'left','companies',87924,NULL,NULL,0,'/societe/soc.php?leftmenu=supplier&action=create&type=f','','NewSupplier','suppliers',2,'','$user->rights->societe->creer','$conf->societe->enabled && $conf->fournisseur->enabled',2,'2013-02-24 18:29:15'),(87927,'smartphone',1,NULL,'left','companies',87921,NULL,NULL,3,'/comm/prospect/list.php?leftmenu=prospects','','ListProspectsShort','companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2013-02-24 18:29:15'),(87928,'smartphone',1,NULL,'left','companies',87927,NULL,NULL,0,'/societe/soc.php?leftmenu=prospects&action=create&type=p','','MenuNewProspect','companies',2,'','$user->rights->societe->creer','$conf->societe->enabled',2,'2013-02-24 18:29:15'),(87930,'smartphone',1,NULL,'left','companies',87921,NULL,NULL,4,'/comm/list.php?leftmenu=customers','','ListCustomersShort','companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2013-02-24 18:29:15'),(87931,'smartphone',1,NULL,'left','companies',87930,NULL,NULL,0,'/societe/soc.php?leftmenu=customers&action=create&type=c','','MenuNewCustomer','companies',2,'','$user->rights->societe->creer','$conf->societe->enabled',2,'2013-02-24 18:29:15'),(88021,'smartphone',1,NULL,'left','companies',87423,NULL,NULL,1,'/contact/list.php?leftmenu=contacts','','ContactsAddresses||Contacts@$conf->global->SOCIETE_ADDRESSES_MANAGEMENT','companies',0,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2013-02-24 18:29:15'),(88022,'smartphone',1,NULL,'left','companies',88021,NULL,NULL,0,'/contact/fiche.php?leftmenu=contacts&action=create','','NewContactAddress||NewContact@$conf->global->SOCIETE_ADDRESSES_MANAGEMENT','companies',1,'','$user->rights->societe->creer','$conf->societe->enabled',2,'2013-02-24 18:29:15'),(88023,'smartphone',1,NULL,'left','companies',88021,NULL,NULL,1,'/contact/list.php?leftmenu=contacts','','List','companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2013-02-24 18:29:15'),(88025,'smartphone',1,NULL,'left','companies',88023,NULL,NULL,1,'/contact/list.php?leftmenu=contacts&type=p','','Prospects','companies',2,'','$user->rights->societe->contact->lire','$conf->societe->enabled',2,'2013-02-24 18:29:15'),(88026,'smartphone',1,NULL,'left','companies',88023,NULL,NULL,2,'/contact/list.php?leftmenu=contacts&type=c','','Customers','companies',2,'','$user->rights->societe->contact->lire','$conf->societe->enabled',2,'2013-02-24 18:29:15'),(88027,'smartphone',1,NULL,'left','companies',88023,NULL,NULL,3,'/contact/list.php?leftmenu=contacts&type=f','','Suppliers','companies',2,'','$user->rights->societe->contact->lire','$conf->societe->enabled && $conf->fournisseur->enabled',2,'2013-02-24 18:29:15'),(88028,'smartphone',1,NULL,'left','companies',88023,NULL,NULL,4,'/contact/list.php?leftmenu=contacts&type=o','','Others','companies',2,'','$user->rights->societe->contact->lire','$conf->societe->enabled',2,'2013-02-24 18:29:15'),(88071,'smartphone',1,NULL,'left','companies',87423,NULL,NULL,3,'/categories/index.php?leftmenu=cat&type=1','','SuppliersCategoriesShort','categories',0,'','$user->rights->categorie->lire','$conf->societe->enabled && $conf->categorie->enabled',2,'2013-02-24 18:29:15'),(88072,'smartphone',1,NULL,'left','companies',88071,NULL,NULL,0,'/categories/fiche.php?action=create&type=1','','NewCategory','categories',1,'','$user->rights->categorie->creer','$conf->societe->enabled && $conf->categorie->enabled',2,'2013-02-24 18:29:15'),(88081,'smartphone',1,NULL,'left','companies',87423,NULL,NULL,4,'/categories/index.php?leftmenu=cat&type=2','','CustomersProspectsCategoriesShort','categories',0,'','$user->rights->categorie->lire','$conf->fournisseur->enabled && $conf->categorie->enabled',2,'2013-02-24 18:29:15'),(88082,'smartphone',1,NULL,'left','companies',88081,NULL,NULL,0,'/categories/fiche.php?action=create&type=2','','NewCategory','categories',1,'','$user->rights->categorie->creer','$conf->fournisseur->enabled && $conf->categorie->enabled',2,'2013-02-24 18:29:15'),(88121,'smartphone',1,NULL,'left','commercial',87426,NULL,NULL,1,'/comm/prospect/index.php?leftmenu=prospects','','Prospects','companies',0,'','$user->rights->societe->lire','$conf->societe->enabled',0,'2013-02-24 18:29:15'),(88122,'smartphone',1,NULL,'left','commercial',88121,NULL,NULL,0,'/societe/soc.php?leftmenu=prospects&action=create&type=p','','MenuNewProspect','companies',1,'','$user->rights->societe->creer','$conf->societe->enabled',0,'2013-02-24 18:29:15'),(88123,'smartphone',1,NULL,'left','commercial',88121,NULL,NULL,1,'/comm/prospect/list.php?leftmenu=prospects','','List','companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',0,'2013-02-24 18:29:15'),(88124,'smartphone',1,NULL,'left','commercial',88123,NULL,NULL,0,'/comm/prospect/list.php?sortfield=s.datec&sortorder=desc&begin=&stcomm=-1','','LastProspectDoNotContact','companies',2,'','$user->rights->societe->lire','$conf->societe->enabled && $leftmenu==\"prospects\"',0,'2013-02-24 18:29:15'),(88125,'smartphone',1,NULL,'left','commercial',88123,NULL,NULL,1,'/comm/prospect/list.php?sortfield=s.datec&sortorder=desc&begin=&stcomm=0','','LastProspectNeverContacted','companies',2,'','$user->rights->societe->lire','$conf->societe->enabled && $leftmenu==\"prospects\"',0,'2013-02-24 18:29:15'),(88126,'smartphone',1,NULL,'left','commercial',88123,NULL,NULL,2,'/comm/prospect/list.php?sortfield=s.datec&sortorder=desc&begin=&stcomm=1','','LastProspectToContact','companies',2,'','$user->rights->societe->lire','$conf->societe->enabled && $leftmenu==\"prospects\"',0,'2013-02-24 18:29:15'),(88127,'smartphone',1,NULL,'left','commercial',88123,NULL,NULL,3,'/comm/prospect/list.php?sortfield=s.datec&sortorder=desc&begin=&stcomm=2','','LastProspectContactInProcess','companies',2,'','$user->rights->societe->lire','$conf->societe->enabled && $leftmenu==\"prospects\"',0,'2013-02-24 18:29:15'),(88128,'smartphone',1,NULL,'left','commercial',88123,NULL,NULL,4,'/comm/prospect/list.php?sortfield=s.datec&sortorder=desc&begin=&stcomm=3','','LastProspectContactDone','companies',2,'','$user->rights->societe->lire','$conf->societe->enabled && $leftmenu==\"prospects\"',0,'2013-02-24 18:29:15'),(88129,'smartphone',1,NULL,'left','commercial',88121,NULL,NULL,2,'/contact/list.php?leftmenu=prospects&type=p','','Contacts','companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',0,'2013-02-24 18:29:15'),(88221,'smartphone',1,NULL,'left','commercial',87426,NULL,NULL,2,'/comm/index.php?leftmenu=customers','','Customers','companies',0,'','$user->rights->societe->lire','$conf->societe->enabled',0,'2013-02-24 18:29:15'),(88222,'smartphone',1,NULL,'left','commercial',88221,NULL,NULL,0,'/societe/soc.php?leftmenu=customers&action=create&type=c','','MenuNewCustomer','companies',1,'','$user->rights->societe->creer','$conf->societe->enabled',0,'2013-02-24 18:29:15'),(88223,'smartphone',1,NULL,'left','commercial',88221,NULL,NULL,1,'/comm/list.php?leftmenu=customers','','List','companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',0,'2013-02-24 18:29:15'),(88224,'smartphone',1,NULL,'left','commercial',88221,NULL,NULL,2,'/contact/list.php?leftmenu=customers&type=c','','Contacts','companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',0,'2013-02-24 18:29:15'),(88321,'smartphone',1,NULL,'left','commercial',87426,NULL,NULL,3,'/contact/list.php?leftmenu=contacts','','Contacts','companies',0,'','$user->rights->societe->lire','$conf->societe->enabled',0,'2013-02-24 18:29:15'),(88322,'smartphone',1,NULL,'left','commercial',88321,NULL,NULL,0,'/contact/fiche.php?leftmenu=contacts&action=create','','NewContactAddress||NewContact@$conf->global->SOCIETE_ADDRESSES_MANAGEMENT','companies',1,'','$user->rights->societe->creer','$conf->societe->enabled',0,'2013-02-24 18:29:15'),(88323,'smartphone',1,NULL,'left','commercial',88321,NULL,NULL,1,'/contact/list.php?leftmenu=contacts&action=create','','List','companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',0,'2013-02-24 18:29:15'),(88331,'smartphone',1,NULL,'left','commercial',88323,NULL,NULL,1,'/contact/list.php?leftmenu=contacts&type=p','','Prospects','companies',1,'','$user->rights->societe->lire','$conf->societe->enabled && $leftmenu==\"prospects\"',0,'2013-02-24 18:29:15'),(88332,'smartphone',1,NULL,'left','commercial',88323,NULL,NULL,1,'/contact/list.php?leftmenu=contacts&type=c','','Customers','companies',1,'','$user->rights->societe->lire','$conf->societe->enabled && $leftmenu==\"prospects\"',0,'2013-02-24 18:29:15'),(88333,'smartphone',1,NULL,'left','commercial',88323,NULL,NULL,1,'/contact/list.php?leftmenu=contacts&type=f','','Suppliers','companies',1,'','$user->rights->societe->lire && $user->rights->fournisseur->lire','$conf->societe->enabled && $conf->fournisseur->enabled && $leftmenu==\"prospects\"',0,'2013-02-24 18:29:15'),(88334,'smartphone',1,NULL,'left','commercial',88323,NULL,NULL,1,'/contact/list.php?leftmenu=contacts&type=o','','Other','companies',1,'','$user->rights->societe->lire','$conf->societe->enabled && $leftmenu==\"prospects\"',0,'2013-02-24 18:29:15'),(88521,'smartphone',1,NULL,'left','commercial',87426,NULL,NULL,4,'/comm/propal.php?leftmenu=propals','','Prop','propal',0,'','$user->rights->propale->lire','$conf->propal->enabled',2,'2013-02-24 18:29:15'),(88522,'smartphone',1,NULL,'left','commercial',88521,NULL,NULL,0,'/societe/societe.php?leftmenu=propals','','NewPropal','propal',1,'','$user->rights->propale->creer','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2013-02-24 18:29:15'),(88523,'smartphone',1,NULL,'left','commercial',88521,NULL,NULL,1,'/comm/propal.php?viewstatut=0','','PropalsDraft','propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2013-02-24 18:29:15'),(88524,'smartphone',1,NULL,'left','commercial',88521,NULL,NULL,2,'/comm/propal.php?viewstatut=1','','PropalsOpened','propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2013-02-24 18:29:15'),(88525,'smartphone',1,NULL,'left','commercial',88521,NULL,NULL,3,'/comm/propal.php?viewstatut=2,3,4','','PropalStatusClosedShort','propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2013-02-24 18:29:15'),(88526,'smartphone',1,NULL,'left','commercial',88521,NULL,NULL,4,'/comm/propal/stats/index.php?leftmenu=propals','','Statistics','propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2013-02-24 18:29:15'),(88621,'smartphone',1,NULL,'left','commercial',87426,NULL,NULL,5,'/commande/index.php?leftmenu=orders','','CustomersOrders','orders',0,'','$user->rights->commande->lire','$conf->commande->enabled',2,'2013-02-24 18:29:15'),(88622,'smartphone',1,NULL,'left','commercial',88621,NULL,NULL,0,'/societe/societe.php?leftmenu=orders','','NewOrder','orders',1,'','$user->rights->commande->creer','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2013-02-24 18:29:15'),(88623,'smartphone',1,NULL,'left','commercial',88621,NULL,NULL,1,'/commande/liste.php?leftmenu=orders','','List','orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2013-02-24 18:29:15'),(88624,'smartphone',1,NULL,'left','commercial',88623,NULL,NULL,2,'/commande/liste.php?leftmenu=orders&viewstatut=0','','StatusOrderDraftShort','orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2013-02-24 18:29:15'),(88625,'smartphone',1,NULL,'left','commercial',88623,NULL,NULL,3,'/commande/liste.php?leftmenu=orders&viewstatut=1','','StatusOrderValidated','orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2013-02-24 18:29:15'),(88626,'smartphone',1,NULL,'left','commercial',88623,NULL,NULL,4,'/commande/liste.php?leftmenu=orders&viewstatut=2','','StatusOrderOnProcessShort','orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2013-02-24 18:29:15'),(88627,'smartphone',1,NULL,'left','commercial',88623,NULL,NULL,5,'/commande/liste.php?leftmenu=orders&viewstatut=3','','StatusOrderToBill','orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2013-02-24 18:29:15'),(88628,'smartphone',1,NULL,'left','commercial',88623,NULL,NULL,6,'/commande/liste.php?leftmenu=orders&viewstatut=4','','StatusOrderProcessed','orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2013-02-24 18:29:15'),(88629,'smartphone',1,NULL,'left','commercial',88623,NULL,NULL,7,'/commande/liste.php?leftmenu=orders&viewstatut=-1','','StatusOrderCanceledShort','orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2013-02-24 18:29:15'),(88630,'smartphone',1,NULL,'left','commercial',88621,NULL,NULL,4,'/commande/stats/index.php?leftmenu=orders','','Statistics','orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2013-02-24 18:29:15'),(88721,'smartphone',1,NULL,'left','commercial',87424,NULL,NULL,6,'/expedition/index.php?leftmenu=sendings','','Shipments','orders',0,'','$user->rights->expedition->lire','$conf->expedition->enabled',2,'2013-02-24 18:29:15'),(88722,'smartphone',1,NULL,'left','commercial',88721,NULL,NULL,0,'/expedition/liste.php?leftmenu=sendings','','List','orders',1,'','$user->rights->expedition->lire','$conf->expedition->enabled && $leftmenu==\"sendings\"',2,'2013-02-24 18:29:15'),(88723,'smartphone',1,NULL,'left','commercial',88721,NULL,NULL,1,'/expedition/stats/index.php?leftmenu=sendings','','Statistics','orders',1,'','$user->rights->expedition->lire','$conf->expedition->enabled && $leftmenu==\"sendings\"',2,'2013-02-24 18:29:15'),(88821,'smartphone',1,NULL,'left','commercial',87426,NULL,NULL,7,'/contrat/index.php?leftmenu=contracts','','Contracts','contracts',0,'','$user->rights->contrat->lire','$conf->contrat->enabled',2,'2013-02-24 18:29:15'),(88822,'smartphone',1,NULL,'left','commercial',88821,NULL,NULL,0,'/societe/societe.php?leftmenu=contracts','','NewContract','contracts',1,'','$user->rights->contrat->creer','$conf->contrat->enabled',2,'2013-02-24 18:29:15'),(88823,'smartphone',1,NULL,'left','commercial',88821,NULL,NULL,1,'/contrat/liste.php?leftmenu=contracts','','List','contracts',1,'','$user->rights->contrat->lire','$conf->contrat->enabled',2,'2013-02-24 18:29:15'),(88824,'smartphone',1,NULL,'left','commercial',88821,NULL,NULL,2,'/contrat/services.php?leftmenu=contracts','','MenuServices','contracts',1,'','$user->rights->contrat->lire','$conf->contrat->enabled',2,'2013-02-24 18:29:15'),(88825,'smartphone',1,NULL,'left','commercial',88824,NULL,NULL,0,'/contrat/services.php?leftmenu=contracts&mode=0','','MenuInactiveServices','contracts',2,'','$user->rights->contrat->lire','$conf->contrat->enabled&&$leftmenu==\"contracts\"',2,'2013-02-24 18:29:15'),(88826,'smartphone',1,NULL,'left','commercial',88824,NULL,NULL,1,'/contrat/services.php?leftmenu=contracts&mode=4','','MenuRunningServices','contracts',2,'','$user->rights->contrat->lire','$conf->contrat->enabled&&$leftmenu==\"contracts\"',2,'2013-02-24 18:29:15'),(88827,'smartphone',1,NULL,'left','commercial',88824,NULL,NULL,2,'/contrat/services.php?leftmenu=contracts&mode=4&filter=expired','','MenuExpiredServices','contracts',2,'','$user->rights->contrat->lire','$conf->contrat->enabled&&$leftmenu==\"contracts\"',2,'2013-02-24 18:29:15'),(88828,'smartphone',1,NULL,'left','commercial',88824,NULL,NULL,3,'/contrat/services.php?leftmenu=contracts&mode=5','','MenuClosedServices','contracts',2,'','$user->rights->contrat->lire','$conf->contrat->enabled&&$leftmenu==\"contracts\"',2,'2013-02-24 18:29:15'),(88921,'smartphone',1,NULL,'left','commercial',87426,NULL,NULL,8,'/fichinter/list.php?leftmenu=ficheinter','','Interventions','interventions',0,'','$user->rights->ficheinter->lire','$conf->ficheinter->enabled',2,'2013-02-24 18:29:15'),(88922,'smartphone',1,NULL,'left','commercial',88921,NULL,NULL,0,'/fichinter/fiche.php?action=create&leftmenu=ficheinter','','NewIntervention','interventions',1,'','$user->rights->ficheinter->creer','$conf->ficheinter->enabled && $leftmenu==\"ficheinter\"',2,'2013-02-24 18:29:15'),(88923,'smartphone',1,NULL,'left','commercial',88921,NULL,NULL,1,'/fichinter/list.php?leftmenu=ficheinter','','List','interventions',1,'','$user->rights->ficheinter->lire','$conf->ficheinter->enabled && $leftmenu==\"ficheinter\"',2,'2013-02-24 18:29:15'),(89021,'smartphone',1,NULL,'left','accountancy',87427,NULL,NULL,3,'/fourn/facture/index.php?leftmenu=suppliers_bills','','BillsSuppliers','bills',0,'','$user->rights->fournisseur->facture->lire','$conf->fournisseur->enabled',2,'2013-02-24 18:29:15'),(89022,'smartphone',1,NULL,'left','accountancy',89021,NULL,NULL,0,'/fourn/facture/fiche.php?action=create&leftmenu=suppliers_bills','','NewBill','bills',1,'','$user->rights->fournisseur->facture->creer','$conf->fournisseur->enabled',2,'2013-02-24 18:29:15'),(89023,'smartphone',1,NULL,'left','accountancy',89021,NULL,NULL,1,'/fourn/facture/impayees.php?leftmenu=suppliers_bills','','Unpaid','bills',1,'','$user->rights->fournisseur->facture->lire','$conf->fournisseur->enabled',2,'2013-02-24 18:29:15'),(89024,'smartphone',1,NULL,'left','accountancy',89021,NULL,NULL,2,'/fourn/facture/paiement.php?leftmenu=suppliers_bills','','Payments','bills',1,'','$user->rights->fournisseur->facture->lire','$conf->fournisseur->enabled',2,'2013-02-24 18:29:15'),(89121,'smartphone',1,NULL,'left','accountancy',87427,NULL,NULL,3,'/compta/facture/list.php?leftmenu=customers_bills','','BillsCustomers','bills',0,'','$user->rights->facture->lire','$conf->societe->enabled',2,'2013-02-24 18:29:15'),(89122,'smartphone',1,NULL,'left','accountancy',89121,NULL,NULL,3,'/compta/clients.php?action=facturer&leftmenu=customers_bills','','NewBill','bills',1,'','$user->rights->facture->creer','$conf->societe->enabled',2,'2013-02-24 18:29:15'),(89123,'smartphone',1,NULL,'left','accountancy',89121,NULL,NULL,4,'/compta/facture/fiche-rec.php?leftmenu=customers_bills','','Repeatable','bills',1,'','$user->rights->facture->lire','$conf->societe->enabled',2,'2013-02-24 18:29:15'),(89124,'smartphone',1,NULL,'left','accountancy',89121,NULL,NULL,5,'/compta/facture/impayees.php?action=facturer&leftmenu=customers_bills','','Unpaid','bills',1,'','$user->rights->facture->lire','$conf->societe->enabled',2,'2013-02-24 18:29:15'),(89125,'smartphone',1,NULL,'left','accountancy',89121,NULL,NULL,6,'/compta/paiement/liste.php?leftmenu=customers_bills','','Payments','bills',1,'','$user->rights->facture->lire','$conf->societe->enabled',2,'2013-02-24 18:29:15'),(89131,'smartphone',1,NULL,'left','accountancy',89125,NULL,NULL,1,'/compta/paiement/rapport.php?leftmenu=customers_bills','','Reportings','bills',2,'','$user->rights->facture->lire','$conf->societe->enabled',2,'2013-02-24 18:29:15'),(89132,'smartphone',1,NULL,'left','accountancy',87435,NULL,NULL,9,'/compta/paiement/cheque/index.php?leftmenu=checks&mainmenu=bank','','MenuChequeDeposits','bills',0,'','$user->rights->facture->lire','$conf->facture->enabled && $conf->banque->enabled',2,'2013-02-24 18:29:15'),(89133,'smartphone',1,NULL,'left','accountancy',89132,NULL,NULL,0,'/compta/paiement/cheque/fiche.php?leftmenu=checks&action=new','','NewCheckDeposit','bills',1,'','$user->rights->facture->lire','$conf->facture->enabled && $conf->banque->enabled',2,'2013-02-24 18:29:15'),(89134,'smartphone',1,NULL,'left','accountancy',89132,NULL,NULL,1,'/compta/paiement/cheque/liste.php?leftmenu=checks','','List','bills',1,'','$user->rights->facture->lire','$conf->facture->enabled && $conf->banque->enabled',2,'2013-02-24 18:29:15'),(89135,'smartphone',1,NULL,'left','accountancy',89121,NULL,NULL,8,'/compta/facture/stats/index.php?leftmenu=customers_bills','','Statistics','bills',1,'','$user->rights->facture->lire','$conf->facture->enabled && $conf->banque->enabled',2,'2013-02-24 18:29:15'),(89321,'smartphone',1,NULL,'left','accountancy',87427,NULL,NULL,3,'/commande/liste.php?leftmenu=orders&viewstatut=3','','MenuOrdersToBill','orders',0,'','$user->rights->commande->lire','$conf->commande->enabled',0,'2013-02-24 18:29:15'),(89421,'smartphone',1,NULL,'left','accountancy',87427,NULL,NULL,4,'/compta/dons/index.php?leftmenu=donations&mainmenu=accountancy','','Donations','donations',0,'','$user->rights->don->lire','$conf->don->enabled',2,'2013-02-24 18:29:15'),(89422,'smartphone',1,NULL,'left','accountancy',89421,NULL,NULL,0,'/compta/dons/fiche.php?leftmenu=donations&mainmenu=accountancy&action=create','','NewDonation','donations',1,'','$user->rights->don->creer','$conf->don->enabled && $leftmenu==\"donations\"',2,'2013-02-24 18:29:15'),(89423,'smartphone',1,NULL,'left','accountancy',89421,NULL,NULL,1,'/compta/dons/liste.php?leftmenu=donations&mainmenu=accountancy','','List','donations',1,'','$user->rights->don->lire','$conf->don->enabled && $leftmenu==\"donations\"',2,'2013-02-24 18:29:15'),(89521,'smartphone',1,NULL,'left','accountancy',87427,NULL,NULL,5,'/compta/deplacement/index.php?leftmenu=tripsandexpenses','','TripsAndExpenses','trips',0,'','$user->rights->deplacement->lire','$conf->deplacement->enabled',0,'2013-02-24 18:29:15'),(89522,'smartphone',1,NULL,'left','accountancy',89521,NULL,NULL,1,'/compta/deplacement/fiche.php?action=create&leftmenu=tripsandexpenses','','New','trips',1,'','$user->rights->deplacement->creer','$conf->deplacement->enabled && $leftmenu==\"tripsandexpenses\"',0,'2013-02-24 18:29:15'),(89523,'smartphone',1,NULL,'left','accountancy',89521,NULL,NULL,2,'/compta/deplacement/index.php?leftmenu=tripsandexpenses','','List','trips',1,'','$user->rights->deplacement->lire','$conf->deplacement->enabled && $leftmenu==\"tripsandexpenses\"',0,'2013-02-24 18:29:15'),(89524,'smartphone',1,NULL,'left','accountancy',89521,NULL,NULL,2,'/compta/deplacement/stats/index.php?leftmenu=tripsandexpenses','','Statistics','trips',1,'','$user->rights->deplacement->lire','$conf->deplacement->enabled && $leftmenu==\"tripsandexpenses\"',0,'2013-02-24 18:29:15'),(89621,'smartphone',1,NULL,'left','accountancy',87427,NULL,NULL,6,'/compta/charges/index.php?leftmenu=tax&mainmenu=accountancy','','MenuTaxAndDividends','compta',0,'','$user->rights->tax->charges->lire','$conf->tax->enabled',0,'2013-02-24 18:29:15'),(89622,'smartphone',1,NULL,'left','accountancy',89621,NULL,NULL,1,'/compta/sociales/index.php?leftmenu=tax_social','','SocialContributions','',1,'','$user->rights->tax->charges->lire','$conf->tax->enabled',0,'2013-02-24 18:29:15'),(89623,'smartphone',1,NULL,'left','accountancy',89622,NULL,NULL,2,'/compta/sociales/charges.php?leftmenu=tax_social&action=create','','MenuNewSocialContribution','',2,'','$user->rights->tax->charges->creer','$conf->tax->enabled && $leftmenu==\"tax_social\"',0,'2013-02-24 18:29:15'),(89624,'smartphone',1,NULL,'left','accountancy',89622,NULL,NULL,3,'/compta/charges/index.php?leftmenu=tax_social&mainmenu=accountancy&mode=sconly','','Payments','',2,'','$user->rights->tax->charges->lire','$conf->tax->enabled && $leftmenu==\"tax_social\"',0,'2013-02-24 18:29:15'),(89721,'smartphone',1,NULL,'left','accountancy',89621,NULL,NULL,7,'/compta/tva/index.php?leftmenu=tax_vat&mainmenu=accountancy','','VAT','companies',1,'','$user->rights->tax->charges->lire','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS)',0,'2013-02-24 18:29:15'),(89722,'smartphone',1,NULL,'left','accountancy',89721,NULL,NULL,0,'/compta/tva/fiche.php?leftmenu=tax_vat&action=create','','NewPayment','companies',2,'','$user->rights->tax->charges->creer','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu==\"tax_vat\"',0,'2013-02-24 18:29:15'),(89723,'smartphone',1,NULL,'left','accountancy',89721,NULL,NULL,1,'/compta/tva/reglement.php?leftmenu=tax_vat','','Payments','companies',2,'','$user->rights->tax->charges->lire','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu==\"tax_vat\"',0,'2013-02-24 18:29:15'),(89724,'smartphone',1,NULL,'left','accountancy',89721,NULL,NULL,2,'/compta/tva/clients.php?leftmenu=tax_vat','','ReportByCustomers','companies',2,'','$user->rights->tax->charges->lire','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu==\"tax_vat\"',0,'2013-02-24 18:29:15'),(89725,'smartphone',1,NULL,'left','accountancy',89721,NULL,NULL,3,'/compta/tva/quadri_detail.php?leftmenu=tax_vat','','ReportByQuarter','companies',2,'','$user->rights->tax->charges->lire','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu==\"tax_vat\"',0,'2013-02-24 18:29:15'),(89821,'smartphone',1,NULL,'left','accountancy',87427,NULL,NULL,8,'/compta/ventilation/index.php?leftmenu=ventil','','Ventilation','companies',0,'','$user->rights->compta->ventilation->lire','$conf->comptabilite->enabled && $conf->global->FACTURE_VENTILATION',0,'2013-02-24 18:29:15'),(89822,'smartphone',1,NULL,'left','accountancy',89821,NULL,NULL,0,'/compta/ventilation/liste.php','','ToDispatch','companies',1,'','$user->rights->compta->ventilation->lire','$conf->comptabilite->enabled && $conf->global->FACTURE_VENTILATION',0,'2013-02-24 18:29:15'),(89823,'smartphone',1,NULL,'left','accountancy',89821,NULL,NULL,1,'/compta/ventilation/lignes.php','','Dispatched','companies',1,'','$user->rights->compta->ventilation->lire','$conf->comptabilite->enabled && $conf->global->FACTURE_VENTILATION',0,'2013-02-24 18:29:15'),(89824,'smartphone',1,NULL,'left','accountancy',89821,NULL,NULL,2,'/compta/param/','','Setup','companies',1,'','$user->rights->compta->ventilation->parametrer','$conf->comptabilite->enabled && $conf->global->FACTURE_VENTILATION',0,'2013-02-24 18:29:15'),(89825,'smartphone',1,NULL,'left','accountancy',89824,NULL,NULL,0,'/compta/param/comptes/liste.php','','List','companies',2,'','$user->rights->compta->ventilation->parametrer','$conf->comptabilite->enabled && $conf->global->FACTURE_VENTILATION',0,'2013-02-24 18:29:15'),(89826,'smartphone',1,NULL,'left','accountancy',89824,NULL,NULL,1,'/compta/param/comptes/fiche.php?action=create','','New','companies',2,'','$user->rights->compta->ventilation->parametrer','$conf->comptabilite->enabled && $conf->global->FACTURE_VENTILATION',0,'2013-02-24 18:29:15'),(89827,'smartphone',1,NULL,'left','accountancy',89821,NULL,NULL,3,'/compta/export/','','Export','companies',1,'','$user->rights->compta->ventilation->lire','$conf->comptabilite->enabled && $conf->global->FACTURE_VENTILATION',0,'2013-02-24 18:29:15'),(89828,'smartphone',1,NULL,'left','accountancy',89827,NULL,NULL,0,'/compta/export/index.php','','New','companies',2,'','$user->rights->compta->ventilation->lire','$conf->comptabilite->enabled && $conf->global->FACTURE_VENTILATION',0,'2013-02-24 18:29:15'),(89829,'smartphone',1,NULL,'left','accountancy',89827,NULL,NULL,1,'/compta/export/liste.php','','List','companies',2,'','$user->rights->compta->ventilation->lire','$conf->comptabilite->enabled && $conf->global->FACTURE_VENTILATION',0,'2013-02-24 18:29:15'),(89921,'smartphone',1,NULL,'left','accountancy',87435,NULL,NULL,9,'/compta/prelevement/index.php?leftmenu=withdraw&mainmenu=bank','','StandingOrders','withdrawals',0,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled',2,'2013-02-24 18:29:15'),(89922,'smartphone',1,NULL,'left','accountancy',89921,NULL,NULL,1,'/compta/prelevement/demandes.php?status=0&leftmenu=withdraw','','StandingOrderToProcess','withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2013-02-24 18:29:15'),(89923,'smartphone',1,NULL,'left','accountancy',89921,NULL,NULL,0,'/compta/prelevement/create.php?leftmenu=withdraw','','NewStandingOrder','withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2013-02-24 18:29:15'),(89924,'smartphone',1,NULL,'left','accountancy',89921,NULL,NULL,2,'/compta/prelevement/bons.php?leftmenu=withdraw','','WithdrawalsReceipts','withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2013-02-24 18:29:15'),(89925,'smartphone',1,NULL,'left','accountancy',89921,NULL,NULL,3,'/compta/prelevement/liste.php?leftmenu=withdraw','','WithdrawalsLines','withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2013-02-24 18:29:15'),(89927,'smartphone',1,NULL,'left','accountancy',89921,NULL,NULL,5,'/compta/prelevement/rejets.php?leftmenu=withdraw','','Rejects','withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2013-02-24 18:29:15'),(89928,'smartphone',1,NULL,'left','accountancy',89921,NULL,NULL,6,'/compta/prelevement/stats.php?leftmenu=withdraw','','Statistics','withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2013-02-24 18:29:15'),(90021,'smartphone',1,NULL,'left','accountancy',87435,NULL,NULL,1,'/compta/bank/index.php?leftmenu=bank&mainmenu=bank','','MenuBankCash','banks',0,'','$user->rights->banque->lire','$conf->banque->enabled',0,'2013-02-24 18:29:15'),(90022,'smartphone',1,NULL,'left','accountancy',90021,NULL,NULL,0,'/compta/bank/fiche.php?action=create&leftmenu=bank','','MenuNewFinancialAccount','banks',1,'','$user->rights->banque->configurer','$conf->banque->enabled && $leftmenu==bank',0,'2013-02-24 18:29:15'),(90023,'smartphone',1,NULL,'left','accountancy',90021,NULL,NULL,1,'/compta/bank/categ.php?leftmenu=bank','','Rubriques','categories',1,'','$user->rights->banque->configurer','$conf->banque->enabled && $leftmenu==bank',0,'2013-02-24 18:29:15'),(90024,'smartphone',1,NULL,'left','accountancy',90021,NULL,NULL,2,'/compta/bank/search.php?leftmenu=bank','','ListTransactions','banks',1,'','$user->rights->banque->lire','$conf->banque->enabled && $leftmenu==bank',0,'2013-02-24 18:29:15'),(90025,'smartphone',1,NULL,'left','accountancy',90021,NULL,NULL,3,'/compta/bank/budget.php?leftmenu=bank','','ListTransactionsByCategory','banks',1,'','$user->rights->banque->lire','$conf->banque->enabled && $leftmenu==bank',0,'2013-02-24 18:29:15'),(90027,'smartphone',1,NULL,'left','accountancy',90021,NULL,NULL,5,'/compta/bank/virement.php?leftmenu=bank','','BankTransfers','banks',1,'','$user->rights->banque->transfer','$conf->banque->enabled && $leftmenu==bank',0,'2013-02-24 18:29:15'),(90121,'smartphone',1,NULL,'left','accountancy',87427,NULL,NULL,11,'/compta/resultat/index.php?leftmenu=ca&mainmenu=accountancy','','Reportings','main',0,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled || $conf->accounting->enabled',0,'2013-02-24 18:29:15'),(90122,'smartphone',1,NULL,'left','accountancy',90121,NULL,NULL,0,'/compta/resultat/index.php?leftmenu=ca','','ReportInOut','main',1,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled || $conf->accounting->enabled',0,'2013-02-24 18:29:15'),(90123,'smartphone',1,NULL,'left','accountancy',90122,NULL,NULL,0,'/compta/resultat/clientfourn.php?leftmenu=ca','','ByCompanies','main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled || $conf->accounting->enabled',0,'2013-02-24 18:29:15'),(90124,'smartphone',1,NULL,'left','accountancy',90121,NULL,NULL,1,'/compta/stats/index.php?leftmenu=ca','','ReportTurnover','main',1,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled || $conf->accounting->enabled',0,'2013-02-24 18:29:15'),(90125,'smartphone',1,NULL,'left','accountancy',90124,NULL,NULL,0,'/compta/stats/casoc.php?leftmenu=ca','','ByCompanies','main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled || $conf->accounting->enabled',0,'2013-02-24 18:29:15'),(90126,'smartphone',1,NULL,'left','accountancy',90124,NULL,NULL,1,'/compta/stats/cabyuser.php?leftmenu=ca','','ByUsers','main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled || $conf->accounting->enabled',0,'2013-02-24 18:29:15'),(90221,'smartphone',1,NULL,'left','products',87424,NULL,NULL,0,'/product/index.php?leftmenu=product&type=0','','Products','products',0,'','$user->rights->produit->lire','$conf->product->enabled',2,'2013-02-24 18:29:15'),(90222,'smartphone',1,NULL,'left','products',90221,NULL,NULL,0,'/product/fiche.php?leftmenu=product&action=create&type=0','','NewProduct','products',1,'','$user->rights->produit->creer','$conf->product->enabled',2,'2013-02-24 18:29:15'),(90223,'smartphone',1,NULL,'left','products',90221,NULL,NULL,1,'/product/liste.php?leftmenu=product&type=0','','List','products',1,'','$user->rights->produit->lire','$conf->product->enabled',2,'2013-02-24 18:29:15'),(90224,'smartphone',1,NULL,'left','products',90221,NULL,NULL,4,'/product/reassort.php?type=0','','Stocks','products',1,'','$user->rights->produit->lire && $user->rights->stock->lire','$conf->product->enabled',2,'2013-02-24 18:29:15'),(90321,'smartphone',1,NULL,'left','products',87424,NULL,NULL,1,'/product/index.php?leftmenu=service&type=1','','Services','products',0,'','$user->rights->service->lire','$conf->service->enabled',2,'2013-02-24 18:29:15'),(90322,'smartphone',1,NULL,'left','products',90321,NULL,NULL,0,'/product/fiche.php?leftmenu=service&action=create&type=1','','NewService','products',1,'','$user->rights->service->creer','$conf->service->enabled',2,'2013-02-24 18:29:15'),(90323,'smartphone',1,NULL,'left','products',90321,NULL,NULL,1,'/product/liste.php?leftmenu=service&type=1','','List','products',1,'','$user->rights->service->lire','$conf->service->enabled',2,'2013-02-24 18:29:15'),(90421,'smartphone',1,NULL,'left','products',87424,NULL,NULL,2,'/product/stats/index.php?leftmenu=stats','','Statistics','main',0,'','$user->rights->service->lire','$conf->product->enabled || $conf->service->enabled',2,'2013-02-24 18:29:15'),(90422,'smartphone',1,NULL,'left','products',90421,NULL,NULL,0,'/product/popuprop.php?leftmenu=stats','','Popularity','main',1,'','$user->rights->produit->lire && $user->rights->produit>lire','$conf->propal->enabled',2,'2013-02-24 18:29:15'),(90521,'smartphone',1,NULL,'left','products',87424,NULL,NULL,3,'/product/stock/index.php?leftmenu=stock','','Stock','stocks',0,'','$user->rights->stock->lire','$conf->stock->enabled',2,'2013-02-24 18:29:15'),(90522,'smartphone',1,NULL,'left','products',90521,NULL,NULL,0,'/product/stock/fiche.php?action=create','','MenuNewWarehouse','stocks',1,'','$user->rights->stock->creer','$conf->stock->enabled',2,'2013-02-24 18:29:15'),(90523,'smartphone',1,NULL,'left','products',90521,NULL,NULL,1,'/product/stock/liste.php','','List','stocks',1,'','$user->rights->stock->lire','$conf->stock->enabled',2,'2013-02-24 18:29:15'),(90524,'smartphone',1,NULL,'left','products',90521,NULL,NULL,2,'/product/stock/valo.php','','EnhancedValue','stocks',1,'','$user->rights->stock->lire','$conf->stock->enabled',2,'2013-02-24 18:29:15'),(90525,'smartphone',1,NULL,'left','products',90521,NULL,NULL,3,'/product/stock/mouvement.php','','Movements','stocks',1,'','$user->rights->stock->mouvement->lire','$conf->stock->enabled',2,'2013-02-24 18:29:15'),(90621,'smartphone',1,NULL,'left','products',87424,NULL,NULL,4,'/categories/index.php?leftmenu=cat&type=0','','Categories','categories',0,'','$user->rights->categorie->lire','$conf->categorie->enabled',2,'2013-02-24 18:29:15'),(90622,'smartphone',1,NULL,'left','products',90621,NULL,NULL,0,'/categories/fiche.php?action=create&type=0','','NewCategory','categories',1,'','$user->rights->categorie->creer','$conf->categorie->enabled',2,'2013-02-24 18:29:15'),(91021,'smartphone',1,NULL,'left','project',87428,NULL,NULL,0,'/projet/index.php?leftmenu=projects','','Projects','projects',0,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2013-02-24 18:29:15'),(91022,'smartphone',1,NULL,'left','project',91021,NULL,NULL,1,'/projet/fiche.php?leftmenu=projects&action=create','','NewProject','projects',1,'','$user->rights->projet->creer','$conf->projet->enabled',2,'2013-02-24 18:29:15'),(91023,'smartphone',1,NULL,'left','project',91021,NULL,NULL,2,'/projet/liste.php?leftmenu=projects','','List','projects',1,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2013-02-24 18:29:15'),(91031,'smartphone',1,NULL,'left','project',87428,NULL,NULL,0,'/projet/index.php?leftmenu=projects&mode=mine','','MyProjects','projects',0,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2013-02-24 18:29:15'),(91032,'smartphone',1,NULL,'left','project',91031,NULL,NULL,1,'/projet/fiche.php?leftmenu=projects&action=create&mode=mine','','NewProject','projects',1,'','$user->rights->projet->creer','$conf->projet->enabled',2,'2013-02-24 18:29:15'),(91033,'smartphone',1,NULL,'left','project',91031,NULL,NULL,2,'/projet/liste.php?leftmenu=projects&mode=mine','','List','projects',1,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2013-02-24 18:29:15'),(91121,'smartphone',1,NULL,'left','project',87428,NULL,NULL,0,'/projet/activity/index.php?leftmenu=projects','','Activities','projects',0,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2013-02-24 18:29:15'),(91122,'smartphone',1,NULL,'left','project',91121,NULL,NULL,1,'/projet/tasks.php?leftmenu=projects&action=create','','NewTask','projects',1,'','$user->rights->projet->creer','$conf->projet->enabled',2,'2013-02-24 18:29:15'),(91123,'smartphone',1,NULL,'left','project',91121,NULL,NULL,2,'/projet/tasks/index.php?leftmenu=projects','','List','projects',1,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2013-02-24 18:29:15'),(91124,'smartphone',1,NULL,'left','project',91121,NULL,NULL,3,'/projet/activity/list.php?leftmenu=projects','','NewTimeSpent','projects',1,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2013-02-24 18:29:15'),(91221,'smartphone',1,NULL,'left','project',87428,NULL,NULL,0,'/projet/activity/index.php?leftmenu=projects&mode=mine','','MyActivities','projects',0,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2013-02-24 18:29:15'),(91222,'smartphone',1,NULL,'left','project',91221,NULL,NULL,1,'/projet/tasks.php?leftmenu=projects&action=create&mode=mine','','NewTask','projects',1,'','$user->rights->projet->creer','$conf->projet->enabled',2,'2013-02-24 18:29:15'),(91223,'smartphone',1,NULL,'left','project',91221,NULL,NULL,2,'/projet/tasks/index.php?leftmenu=projects&mode=mine','','List','projects',1,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2013-02-24 18:29:15'),(91224,'smartphone',1,NULL,'left','project',91221,NULL,NULL,3,'/projet/activity/list.php?leftmenu=projects&mode=mine','','NewTimeSpent','projects',1,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2013-02-24 18:29:15'),(91321,'smartphone',1,NULL,'left','tools',87429,NULL,NULL,0,'/comm/mailing/index.php?leftmenu=mailing','','EMailings','mails',0,'','$user->rights->mailing->lire','$conf->mailing->enabled',0,'2013-02-24 18:29:15'),(91322,'smartphone',1,NULL,'left','tools',91321,NULL,NULL,0,'/comm/mailing/fiche.php?leftmenu=mailing&action=create','','NewMailing','mails',1,'','$user->rights->mailing->creer','$conf->mailing->enabled',0,'2013-02-24 18:29:15'),(91323,'smartphone',1,NULL,'left','tools',91321,NULL,NULL,1,'/comm/mailing/liste.php?leftmenu=mailing','','List','mails',1,'','$user->rights->mailing->lire','$conf->mailing->enabled',0,'2013-02-24 18:29:15'),(91521,'smartphone',1,NULL,'left','tools',87429,NULL,NULL,2,'/exports/index.php?leftmenu=export','','FormatedExport','exports',0,'','$user->rights->export->lire','$conf->export->enabled',2,'2013-02-24 18:29:15'),(91522,'smartphone',1,NULL,'left','tools',91521,NULL,NULL,0,'/exports/export.php?leftmenu=export','','NewExport','exports',1,'','$user->rights->export->creer','$conf->export->enabled',2,'2013-02-24 18:29:15'),(91551,'smartphone',1,NULL,'left','tools',87429,NULL,NULL,2,'/imports/index.php?leftmenu=import','','FormatedImport','exports',0,'','$user->rights->import->run','$conf->import->enabled',2,'2013-02-24 18:29:15'),(91552,'smartphone',1,NULL,'left','tools',91551,NULL,NULL,0,'/imports/import.php?leftmenu=import','','NewImport','exports',1,'','$user->rights->import->run','$conf->import->enabled',2,'2013-02-24 18:29:15'),(91621,'smartphone',1,NULL,'left','members',87434,NULL,NULL,0,'/adherents/index.php?leftmenu=members&mainmenu=members','','Members','members',0,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2013-02-24 18:29:15'),(91622,'smartphone',1,NULL,'left','members',91621,NULL,NULL,0,'/adherents/fiche.php?action=create','','NewMember','members',1,'','$user->rights->adherent->creer','$conf->adherent->enabled',2,'2013-02-24 18:29:15'),(91623,'smartphone',1,NULL,'left','members',91621,NULL,NULL,1,'/adherents/liste.php','','List','members',1,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2013-02-24 18:29:15'),(91624,'smartphone',1,NULL,'left','members',91623,NULL,NULL,2,'/adherents/liste.php?statut=-1','','MenuMembersToValidate','members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2013-02-24 18:29:15'),(91625,'smartphone',1,NULL,'left','members',91623,NULL,NULL,3,'/adherents/liste.php?statut=1','','MenuMembersValidated','members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2013-02-24 18:29:15'),(91626,'smartphone',1,NULL,'left','members',91623,NULL,NULL,4,'/adherents/liste.php?statut=1&filter=outofdate','','MenuMembersNotUpToDate','members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2013-02-24 18:29:15'),(91627,'smartphone',1,NULL,'left','members',91623,NULL,NULL,5,'/adherents/liste.php?statut=1&filter=uptodate','','MenuMembersUpToDate','members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2013-02-24 18:29:15'),(91628,'smartphone',1,NULL,'left','members',91623,NULL,NULL,6,'/adherents/liste.php?statut=0','','MenuMembersResiliated','members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2013-02-24 18:29:15'),(91721,'smartphone',1,NULL,'left','members',87434,NULL,NULL,1,'/adherents/index.php?leftmenu=accountancy&mainmenu=members','','Subscriptions','compta',0,'','$user->rights->adherent->cotisation->lire','$conf->adherent->enabled',2,'2013-02-24 18:29:15'),(91722,'smartphone',1,NULL,'left','members',91721,NULL,NULL,0,'/adherents/liste.php?statut=-1&leftmenu=accountancy&mainmenu=members','','NewSubscription','compta',1,'','$user->rights->adherent->cotisation->creer','$conf->adherent->enabled',2,'2013-02-24 18:29:15'),(91723,'smartphone',1,NULL,'left','members',91721,NULL,NULL,1,'/adherents/cotisations.php?leftmenu=accountancy','','List','compta',1,'','$user->rights->adherent->cotisation->lire','$conf->adherent->enabled',2,'2013-02-24 18:29:15'),(91921,'smartphone',1,NULL,'left','members',87434,NULL,NULL,3,'/adherents/index.php?leftmenu=export&mainmenu=members','','Exports','members',0,'','$user->rights->adherent->export','$conf->adherent->enabled',2,'2013-02-24 18:29:15'),(91922,'smartphone',1,NULL,'left','members',91921,NULL,NULL,0,'/exports/index.php?leftmenu=export','','Datas','members',1,'','$user->rights->adherent->export','$conf->adherent->enabled && $conf->export->enabled',2,'2013-02-24 18:29:15'),(91923,'smartphone',1,NULL,'left','members',91921,NULL,NULL,1,'/adherents/htpasswd.php?leftmenu=export','','Filehtpasswd','members',1,'','$user->rights->adherent->export','$conf->adherent->enabled',2,'2013-02-24 18:29:15'),(91924,'smartphone',1,NULL,'left','members',91921,NULL,NULL,2,'/adherents/cartes/carte.php?leftmenu=export','','MembersCards','members',1,'','$user->rights->adherent->export','$conf->adherent->enabled',2,'2013-02-24 18:29:15'),(92121,'smartphone',1,NULL,'left','members',87434,NULL,NULL,5,'/adherents/index.php?leftmenu=setup&mainmenu=members','','Setup','members',0,'','$user->rights->adherent->configurer','$conf->adherent->enabled',2,'2013-02-24 18:29:15'),(92122,'smartphone',1,NULL,'left','members',92121,NULL,NULL,0,'/adherents/type.php?leftmenu=setup','','MembersTypes','members',1,'','$user->rights->adherent->configurer','$conf->adherent->enabled',2,'2013-02-24 18:29:15'),(92123,'smartphone',1,NULL,'left','members',92121,NULL,NULL,1,'/adherents/options.php?leftmenu=setup','','MembersAttributes','members',1,'','$user->rights->adherent->configurer','$conf->adherent->enabled',2,'2013-02-24 18:29:15'),(92421,'smartphone',1,NULL,'left','commercial',87426,NULL,NULL,0,'/compta/index.php?leftmenu=suppliers','','Suppliers','companies',0,'','$user->rights->societe->lire && $user->rights->fournisseur->lire','$conf->fournisseur->enabled',2,'2013-02-24 18:29:15'),(92422,'smartphone',1,NULL,'left','commercial',92421,NULL,NULL,0,'/societe/soc.php?leftmenu=suppliers&action=create&type=f','','NewSupplier','companies',1,'','$user->rights->societe->creer && $user->rights->fournisseur->lire','$conf->fournisseur->enabled',2,'2013-02-24 18:29:15'),(92423,'smartphone',1,NULL,'left','commercial',92421,NULL,NULL,1,'/fourn/liste.php?leftmenu=suppliers','','List','companies',1,'','$user->rights->societe->lire && $user->rights->fournisseur->lire','$conf->fournisseur->enabled',2,'2013-02-24 18:29:15'),(92424,'smartphone',1,NULL,'left','commercial',92421,NULL,NULL,2,'/contact/list.php?leftmenu=suppliers&type=f','','Contacts','companies',1,'','$user->rights->societe->lire && $user->rights->fournisseur->lire','$conf->fournisseur->enabled',2,'2013-02-24 18:29:15'),(92521,'smartphone',1,NULL,'left','commercial',87426,NULL,NULL,6,'/fourn/commande/index.php?leftmenu=orders_suppliers','','SuppliersOrders','orders',0,'','$user->rights->fournisseur->commande->lire','$conf->commande->enabled',2,'2013-02-24 18:29:15'),(92522,'smartphone',1,NULL,'left','commercial',92521,NULL,NULL,0,'/societe/societe.php?leftmenu=orders_suppliers','','NewOrder','orders',1,'','$user->rights->fournisseur->commande->creer','$conf->commande->enabled && $leftmenu==\"orders_suppliers\"',2,'2013-02-24 18:29:15'),(92523,'smartphone',1,NULL,'left','commercial',92521,NULL,NULL,1,'/fourn/commande/liste.php?leftmenu=orders_suppliers&viewstatut=0','','List','orders',1,'','$user->rights->fournisseur->commande->lire','$conf->commande->enabled && $leftmenu==\"orders_suppliers\"',2,'2013-02-24 18:29:15'),(92529,'smartphone',1,NULL,'left','commercial',92521,NULL,NULL,7,'/commande/stats/index.php?leftmenu=orders_suppliers&mode=supplier','','Statistics','orders',1,'','$user->rights->fournisseur->commande->lire','$conf->commande->enabled && $leftmenu==\"orders_suppliers\"',2,'2013-02-24 18:29:15'),(92621,'smartphone',1,NULL,'left','members',87434,NULL,NULL,3,'/categories/index.php?leftmenu=cat&type=3','','MembersCategoriesShort','categories',0,'','$user->rights->categorie->lire','$conf->adherent->enabled && $conf->categorie->enabled',2,'2013-02-24 18:29:15'),(92622,'smartphone',1,NULL,'left','members',92621,NULL,NULL,0,'/categories/fiche.php?action=create&type=3','','NewCategory','categories',1,'','$user->rights->categorie->creer','$conf->adherent->enabled && $conf->categorie->enabled',2,'2013-02-24 18:29:15'),(103058,'all',1,'submiteverywhere','left','tools',-1,NULL,'tools',100,'/submiteverywhere/index.php','','Submit Everywhere home','submiteverywhere@submiteverywhere',NULL,'submiteverywhere','1','$conf->submiteverywhere->enabled',0,'2013-03-04 22:55:41'),(103059,'all',1,'submiteverywhere','left','tools',-1,'submiteverywhere','tools',110,'/submiteverywhere/card.php?action=create','','NewMessage','submiteverywhere@submiteverywhere',NULL,NULL,'1','$conf->submiteverywhere->enabled',0,'2013-03-04 22:55:41'),(103060,'all',1,'submiteverywhere','left','tools',-1,'submiteverywhere','tools',120,'/submiteverywhere/list.php','','List','submiteverywhere@submiteverywhere',NULL,NULL,'1','$conf->submiteverywhere->enabled',0,'2013-03-04 22:55:41'),(103061,'all',1,'scanner','top','scanner',0,NULL,NULL,100,'/scanner/index.php','','Scanner','scanner@scanner',NULL,NULL,'1','$conf->scanner->enabled',2,'2013-03-06 21:53:12'),(103086,'all',1,'nltechno','top','nltechno',0,NULL,NULL,200,'/nltechno/index.php','','Admin NLTechno','',NULL,NULL,'$user->rights->nltechno->liens->voir||$user->rights->nltechno->annonces->voir||$user->rights->nltechno->emailings->voir','$conf->nltechno->enabled',0,'2013-03-13 10:04:46'),(103087,'all',1,'nltechno','left','nltechno',103086,NULL,NULL,200,'/nltechno/index.php','','Liens externes','',NULL,NULL,'$user->rights->nltechno->liens->voir','$conf->nltechno->enabled',0,'2013-03-13 10:04:46'),(103088,'all',1,'nltechno','left','nltechno',103086,NULL,NULL,201,'/nltechno/statsannonces.php','','Outils Petites annonces','',NULL,NULL,'$user->rights->nltechno->annonces->voir','$conf->nltechno->enabled',0,'2013-03-13 10:04:46'),(103089,'all',1,'nltechno','left','nltechno',103086,NULL,NULL,202,'/nltechno/statsemailings.php','','Outils EMailings','',NULL,NULL,'$user->rights->nltechno->emailings->voir','$conf->nltechno->enabled',0,'2013-03-13 10:04:46'),(103090,'all',1,'nltechno','left','nltechno',103086,NULL,NULL,300,'/nltechno/dolicloud/dolicloud_customers.php','','DoliCloud','nltechno@nltechno',NULL,'dolicloud','$user->rights->nltechno->dolicloud->read','$conf->nltechno->enabled',0,'2013-03-13 10:04:46'),(103091,'all',1,'nltechno','left','nltechno',-1,'dolicloud','nltechno',200,'/nltechno/dolicloud/dolicloud_list.php','','List','',NULL,'dolicloud_list','$user->rights->nltechno->dolicloud->read','$conf->nltechno->enabled',0,'2013-03-13 10:04:46'),(103092,'all',1,'nltechno','left','nltechno',-1,'dolicloud','nltechno',210,'/nltechno/dolicloud/dolicloud_card.php?action=create','','New','',NULL,'dolicloud_create','$user->rights->nltechno->dolicloud->write','$conf->nltechno->enabled',0,'2013-03-13 10:04:46'),(103093,'all',1,'nltechno','left','nltechno',-1,'dolicloud','nltechno',220,'/nltechno/dolicloud/dolicloudemailstemplates_page.php?action=list','','EMailsTemplates','nltechno@nltechno',NULL,'dolicloud_emailstemplates','$user->rights->nltechno->dolicloud->write','$conf->nltechno->enabled',0,'2013-03-13 10:04:46'),(103094,'all',2,'agenda','top','agenda',0,NULL,NULL,100,'/comm/action/index.php','','Agenda','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2013-03-13 15:29:19'),(103095,'all',2,'agenda','left','agenda',103094,NULL,NULL,100,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda','','Actions','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2013-03-13 15:29:19'),(103096,'all',2,'agenda','left','agenda',103095,NULL,NULL,101,'/comm/action/fiche.php?mainmenu=agenda&leftmenu=agenda&action=create','','NewAction','commercial',NULL,NULL,'($user->rights->agenda->myactions->create||$user->rights->agenda->allactions->create)','$conf->agenda->enabled',2,'2013-03-13 15:29:19'),(103097,'all',2,'agenda','left','agenda',103095,NULL,NULL,102,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda','','Calendar','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2013-03-13 15:29:19'),(103098,'all',2,'agenda','left','agenda',103097,NULL,NULL,103,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda&status=todo&filter=mine','','MenuToDoMyActions','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2013-03-13 15:29:19'),(103099,'all',2,'agenda','left','agenda',103097,NULL,NULL,104,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda&status=done&filter=mine','','MenuDoneMyActions','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2013-03-13 15:29:19'),(103100,'all',2,'agenda','left','agenda',103097,NULL,NULL,105,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda&status=todo','','MenuToDoActions','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2013-03-13 15:29:19'),(103101,'all',2,'agenda','left','agenda',103097,NULL,NULL,106,'/comm/action/index.php?mainmenu=agenda&leftmenu=agenda&status=done','','MenuDoneActions','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2013-03-13 15:29:19'),(103102,'all',2,'agenda','left','agenda',103095,NULL,NULL,112,'/comm/action/listactions.php?mainmenu=agenda&leftmenu=agenda','','List','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2013-03-13 15:29:19'),(103103,'all',2,'agenda','left','agenda',103102,NULL,NULL,113,'/comm/action/listactions.php?mainmenu=agenda&leftmenu=agenda&status=todo&filter=mine','','MenuToDoMyActions','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2013-03-13 15:29:19'),(103104,'all',2,'agenda','left','agenda',103102,NULL,NULL,114,'/comm/action/listactions.php?mainmenu=agenda&leftmenu=agenda&status=done&filter=mine','','MenuDoneMyActions','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2013-03-13 15:29:19'),(103105,'all',2,'agenda','left','agenda',103102,NULL,NULL,115,'/comm/action/listactions.php?mainmenu=agenda&leftmenu=agenda&status=todo','','MenuToDoActions','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2013-03-13 15:29:19'),(103106,'all',2,'agenda','left','agenda',103102,NULL,NULL,116,'/comm/action/listactions.php?mainmenu=agenda&leftmenu=agenda&status=done','','MenuDoneActions','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2013-03-13 15:29:19'),(103107,'all',2,'agenda','left','agenda',103095,NULL,NULL,120,'/comm/action/rapport/index.php?mainmenu=agenda&leftmenu=agenda','','Reportings','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$conf->agenda->enabled',2,'2013-03-13 15:29:19'),(103108,'all',2,'pos','top','pos',0,NULL,NULL,100,'/pos/backend/listefac.php','','POS','pos@pos',NULL,'1','1','1',2,'2013-03-13 20:33:09'),(103109,'all',2,'pos','left','pos',103108,NULL,NULL,100,'/pos/backend/liste.php','','Tickets','pos@pos',NULL,NULL,'$user->rights->pos->backend','$conf->global->POS_USE_TICKETS',0,'2013-03-13 20:33:09'),(103110,'all',2,'pos','left','pos',103109,NULL,NULL,100,'/pos/backend/liste.php','','List','main',NULL,NULL,'$user->rights->pos->backend','$conf->global->POS_USE_TICKETS',0,'2013-03-13 20:33:09'),(103111,'all',2,'pos','left','pos',103110,NULL,NULL,100,'/pos/backend/liste.php?viewstatut=0','','StatusTicketDraft','pos@pos',NULL,NULL,'$user->rights->pos->backend','$conf->global->POS_USE_TICKETS',0,'2013-03-13 20:33:09'),(103112,'all',2,'pos','left','@pos',103110,NULL,NULL,100,'/pos/backend/liste.php?viewstatut=1','','StatusTicketClosed','main',NULL,NULL,'$user->rights->pos->backend','$conf->global->POS_USE_TICKETS',0,'2013-03-13 20:33:09'),(103113,'all',2,'pos','left','@pos',103110,NULL,NULL,100,'/pos/backend/liste.php?viewstatut=2','','StatusTicketProcessed','main',NULL,NULL,'$user->rights->pos->backend','$conf->global->POS_USE_TICKETS',0,'2013-03-13 20:33:09'),(103114,'all',2,'pos','left','@pos',103110,NULL,NULL,100,'/pos/backend/liste.php?viewtype=1','','StatusTicketReturned','main',NULL,NULL,'$user->rights->pos->backend','$conf->global->POS_USE_TICKETS',0,'2013-03-13 20:33:09'),(103115,'all',2,'pos','left','pos',103108,NULL,NULL,100,'/pos/backend/listefac.php','','Factures','pos@pos',NULL,NULL,'$user->rights->pos->backend','1',0,'2013-03-13 20:33:09'),(103116,'all',2,'pos','left','pos',103115,NULL,NULL,100,'/pos/backend/listefac.php','','List','main',NULL,NULL,'$user->rights->pos->backend','1',0,'2013-03-13 20:33:09'),(103117,'all',2,'pos','left','pos',103116,NULL,NULL,100,'/pos/backend/listefac.php?viewstatut=0','','BillStatusDraft','bills',NULL,NULL,'$user->rights->pos->backend','1',0,'2013-03-13 20:33:09'),(103118,'all',2,'pos','left','@pos',103116,NULL,NULL,100,'/pos/backend/listefac.php?viewstatut=1','','BillStatusValidated','bills',NULL,NULL,'$user->rights->pos->backend','1',0,'2013-03-13 20:33:09'),(103119,'all',2,'pos','left','@pos',103116,NULL,NULL,100,'/pos/backend/listefac.php?viewstatut=2&viewtype=0','','BillStatusPaid','bills',NULL,NULL,'$user->rights->pos->backend','1',0,'2013-03-13 20:33:09'),(103120,'all',2,'pos','left','@pos',103116,NULL,NULL,100,'/pos/backend/listefac.php?viewtype=2','','BillStatusReturned','main',NULL,NULL,'$user->rights->pos->backend','1',0,'2013-03-13 20:33:09'),(103121,'all',2,'pos','left','@pos',103108,NULL,NULL,100,'/pos/frontend/index.php','','POS','main',NULL,NULL,'$user->rights->pos->frontend','1',0,'2013-03-13 20:33:09'),(103122,'all',2,'pos','left','@pos',103121,NULL,NULL,100,'/pos/frontend/index.php','','NewTicket','main',NULL,NULL,'$user->rights->pos->frontend','1',0,'2013-03-13 20:33:09'),(103123,'all',2,'pos','left','@pos',103121,NULL,NULL,101,'/pos/backend/closes.php','','CloseandArching','main',NULL,NULL,'$user->rights->pos->backend','1',0,'2013-03-13 20:33:09'),(103124,'all',2,'pos','left','@pos',103108,NULL,NULL,100,'/pos/backend/terminal/cash.php','','Terminal','main',NULL,NULL,'$user->rights->pos->backend','1',0,'2013-03-13 20:33:09'),(103125,'all',2,'pos','left','@pos',103124,NULL,NULL,100,'/pos/backend/terminal/fiche.php?action=create','','NewCash','main',NULL,NULL,'$user->rights->pos->backend','1',0,'2013-03-13 20:33:09'),(103126,'all',2,'pos','left','@pos',103124,NULL,NULL,101,'/pos/backend/terminal/cash.php','','List','main',NULL,NULL,'$user->rights->pos->backend','1',0,'2013-03-13 20:33:09'),(103127,'all',2,'pos','left','@pos',103123,NULL,NULL,101,'/pos/backend/closes.php?viewstatut=0','','Arqueo','main',NULL,NULL,'$user->rights->pos->backend','1',0,'2013-03-13 20:33:09'),(103128,'all',2,'pos','left','@pos',103123,NULL,NULL,102,'/pos/backend/closes.php?viewstatut=1','','Closes','main',NULL,NULL,'$user->rights->pos->backend','1',0,'2013-03-13 20:33:09'),(103129,'all',2,'pos','left','@pos',103108,NULL,NULL,102,'/pos/backend/transfers.php','','Transfer','main',NULL,NULL,'$user->rights->pos->transfer','1',0,'2013-03-13 20:33:09'),(103130,'all',2,'pos','left','@pos',103108,NULL,NULL,102,'/pos/backend/resultat/index.php','','Rapport','main',NULL,NULL,'$user->rights->pos->stats','1',0,'2013-03-13 20:33:09'),(103131,'all',2,'pos','left','@pos',103130,NULL,NULL,102,'/pos/backend/resultat/casoc.php','','ReportsCustomer','main',NULL,NULL,'$user->rights->pos->stats','1',0,'2013-03-13 20:33:09'),(103132,'all',2,'pos','left','@pos',103130,NULL,NULL,102,'/pos/backend/resultat/causer.php','','ReportsUser','main',NULL,NULL,'$user->rights->pos->stats','1',0,'2013-03-13 20:33:09'),(103133,'all',2,'pos','left','@pos',103130,NULL,NULL,102,'/pos/backend/resultat/sellsjournal.php','','ReportsSells','main',NULL,NULL,'$user->rights->pos->stats','1',0,'2013-03-13 20:33:09'),(103134,'all',2,'opensurvey','top','opensurvey',0,NULL,NULL,200,'/opensurvey/index.php','','Surveys','opensurvey@opensurvey',NULL,NULL,'$user->rights->opensurvey->survey->read','$conf->opensurvey->enabled',0,'2013-03-13 20:33:42'),(103135,'all',2,'opensurvey','left','opensurvey',-1,NULL,'opensurvey',200,'/opensurvey/index.php?mainmenu=opensurvey&leftmenu=opensurvey','','Survey','opensurvey@opensurvey',NULL,'opensurvey','','$conf->opensurvey->enabled',0,'2013-03-13 20:33:42'),(103136,'all',2,'opensurvey','left','opensurvey',-1,'opensurvey','opensurvey',210,'/opensurvey/public/index.php','_blank','NewSurvey','opensurvey@opensurvey',NULL,'opensurvey_new','','$conf->opensurvey->enabled',0,'2013-03-13 20:33:42'),(103137,'all',2,'opensurvey','left','opensurvey',-1,'opensurvey','opensurvey',220,'/opensurvey/list.php','','List','opensurvey@opensurvey',NULL,'opensurvey_list','','$conf->opensurvey->enabled',0,'2013-03-13 20:33:42'),(103160,'all',1,'cron','left','home',-1,'modulesadmintools','home',200,'/cron/list.php?status=1','','CronListActive','cron',NULL,NULL,'$user->rights->cron->read','$leftmenu==\'modulesadmintools\'',2,'2013-03-23 17:24:25'),(103161,'all',1,'cron','left','home',-1,'modulesadmintools','home',201,'/cron/list.php?status=0','','CronListInactive','cron',NULL,NULL,'$user->rights->cron->read','$leftmenu==\'modulesadmintools\'',2,'2013-03-23 17:24:25'),(103162,'auguria',1,'','top','home',0,NULL,NULL,1,'/index.php?mainmenu=home&leftmenu=','','Home','',-1,'','','1',2,'2013-03-24 02:31:47'),(103163,'auguria',1,'societe|fournisseur','top','companies',0,NULL,NULL,2,'/societe/index.php?mainmenu=companies&leftmenu=','','ThirdParties','companies',-1,'','$user->rights->societe->lire || $user->rights->societe->contact->lire','$conf->societe->enabled || $conf->fournisseur->enabled',2,'2013-03-24 02:31:47'),(103164,'auguria',1,'product|service','top','products',0,NULL,NULL,3,'/product/index.php?mainmenu=products&leftmenu=','','Products/Services','products',-1,'','$user->rights->produit->lire||$user->rights->service->lire','$conf->product->enabled || $conf->service->enabled',0,'2013-03-24 02:31:47'),(103166,'auguria',1,'propal|commande|fournisseur|contrat|ficheinter','top','commercial',0,NULL,NULL,5,'/comm/index.php?mainmenu=commercial&leftmenu=','','Commercial','commercial',-1,'','$user->rights->societe->lire || $user->rights->societe->contact->lire','$conf->comptabilite->enabled || $conf->accounting->enabled || $conf->facture->enabled || $conf->deplacement->enabled || $conf->don->enabled || $conf->tax->enabled',2,'2013-03-24 02:31:47'),(103167,'auguria',1,'comptabilite|accounting|facture|deplacement|don|tax','top','accountancy',0,NULL,NULL,6,'/compta/index.php?mainmenu=accountancy&leftmenu=','','MenuFinancial','compta',-1,'','$user->rights->compta->resultat->lire || $user->rights->accounting->plancompte->lire || $user->rights->facture->lire|| $user->rights->deplacement->lire || $user->rights->don->lire || $user->rights->tax->charges->lire','$conf->comptabilite->enabled || $conf->accounting->enabled || $conf->facture->enabled || $conf->deplacement->enabled || $conf->don->enabled || $conf->tax->enabled',2,'2013-03-24 02:31:47'),(103168,'auguria',1,'projet','top','project',0,NULL,NULL,7,'/projet/index.php?mainmenu=project&leftmenu=','','Projects','projects',-1,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2013-03-24 02:31:47'),(103169,'auguria',1,'mailing|export|import','top','tools',0,NULL,NULL,8,'/core/tools.php?mainmenu=tools&leftmenu=','','Tools','other',-1,'','$user->rights->mailing->lire || $user->rights->export->lire || $user->rights->import->run','$conf->mailing->enabled || $conf->export->enabled || $conf->import->enabled',2,'2013-03-24 02:31:47'),(103172,'auguria',1,'boutique','top','shop',0,NULL,NULL,11,'/boutique/index.php?mainmenu=shop&leftmenu=','','OSCommerce','shop',-1,'','','! empty($conf->boutique->enabled)',0,'2013-03-24 02:31:47'),(103174,'auguria',1,'adherent','top','members',0,NULL,NULL,15,'/adherents/index.php?mainmenu=members&leftmenu=','','Members','members',-1,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2013-03-24 02:31:47'),(103175,'auguria',1,'banque|prelevement','top','bank',0,NULL,NULL,6,'/compta/bank/index.php?mainmenu=bank&leftmenu=bank','','MenuBankCash','banks',-1,'','$user->rights->banque->lire || $user->rights->prelevement->bons->lire','$conf->banque->enabled || $conf->prelevement->enabled',0,'2013-03-24 02:31:47'),(103261,'auguria',1,'','left','home',103162,NULL,NULL,0,'/admin/index.php?leftmenu=setup','','Setup','admin',0,'setup','','$user->admin',2,'2013-03-24 02:31:47'),(103262,'auguria',1,'','left','home',103261,NULL,NULL,1,'/admin/company.php?leftmenu=setup','','MenuCompanySetup','admin',1,'','','$leftmenu==\'setup\'',2,'2013-03-24 02:31:47'),(103263,'auguria',1,'','left','home',103261,NULL,NULL,4,'/admin/ihm.php?leftmenu=setup','','GUISetup','admin',1,'','','$leftmenu==\'setup\'',2,'2013-03-24 02:31:47'),(103264,'auguria',1,'','left','home',103261,NULL,NULL,2,'/admin/modules.php?leftmenu=setup','','Modules','admin',1,'','','$leftmenu==\'setup\'',2,'2013-03-24 02:31:47'),(103265,'auguria',1,'','left','home',103261,NULL,NULL,5,'/admin/boxes.php?leftmenu=setup','','Boxes','admin',1,'','','$leftmenu==\'setup\'',2,'2013-03-24 02:31:47'),(103266,'auguria',1,'','left','home',103261,NULL,NULL,3,'/admin/menus.php?leftmenu=setup','','Menus','admin',1,'','','$leftmenu==\'setup\'',2,'2013-03-24 02:31:47'),(103267,'auguria',1,'','left','home',103261,NULL,NULL,6,'/admin/delais.php?leftmenu=setup','','Alerts','admin',1,'','','$leftmenu==\'setup\'',2,'2013-03-24 02:31:47'),(103268,'auguria',1,'','left','home',103261,NULL,NULL,9,'/admin/pdf.php?leftmenu=setup','','PDF','admin',1,'','','$leftmenu==\'setup\'',2,'2013-03-24 02:31:47'),(103269,'auguria',1,'','left','home',103261,NULL,NULL,7,'/admin/proxy.php?leftmenu=setup','','Security','admin',1,'','','$leftmenu==\'setup\'',2,'2013-03-24 02:31:47'),(103270,'auguria',1,'','left','home',103261,NULL,NULL,10,'/admin/mails.php?leftmenu=setup','','Emails','admin',1,'','','$leftmenu==\'setup\'',2,'2013-03-24 02:31:47'),(103271,'auguria',1,'','left','home',103261,NULL,NULL,8,'/admin/limits.php?leftmenu=setup','','MenuLimits','admin',1,'','','$leftmenu==\'setup\'',2,'2013-03-24 02:31:47'),(103272,'auguria',1,'','left','home',103261,NULL,NULL,12,'/admin/dict.php?leftmenu=setup','','DictionnarySetup','admin',1,'','','$leftmenu==\'setup\'',2,'2013-03-24 02:31:47'),(103273,'auguria',1,'','left','home',103261,NULL,NULL,13,'/admin/const.php?leftmenu=setup','','OtherSetup','admin',1,'','','$leftmenu==\'setup\'',2,'2013-03-24 02:31:47'),(103274,'auguria',1,'','left','home',103261,NULL,NULL,11,'/admin/sms.php?leftmenu=setup','','Sms','admin',1,'','','$leftmenu==\'setup\'',2,'2013-03-24 02:31:47'),(103362,'auguria',1,'','left','home',103461,NULL,NULL,0,'/admin/system/dolibarr.php?leftmenu=admintools','','InfoDolibarr','admin',1,'','','$leftmenu==\'admintools\'',2,'2013-03-24 02:31:47'),(103364,'auguria',1,'','left','home',103461,NULL,NULL,13,'/admin/system/about.php?leftmenu=admintools','','About','admin',1,'','','$leftmenu==\'admintools\'',2,'2013-03-24 02:31:47'),(103365,'auguria',1,'','left','home',103461,NULL,NULL,1,'/admin/system/os.php?leftmenu=admintools','','InfoOS','admin',1,'','','$leftmenu==\'admintools\'',2,'2013-03-24 02:31:47'),(103366,'auguria',1,'','left','home',103461,NULL,NULL,2,'/admin/system/web.php?leftmenu=admintools','','InfoWebServer','admin',1,'','','$leftmenu==\'admintools\'',2,'2013-03-24 02:31:47'),(103367,'auguria',1,'','left','home',103461,NULL,NULL,3,'/admin/system/phpinfo.php?leftmenu=admintools','','InfoPHP','admin',1,'','','$leftmenu==\'admintools\'',2,'2013-03-24 02:31:47'),(103368,'auguria',1,'','left','home',103362,NULL,NULL,3,'/admin/triggers.php?leftmenu=admintools','','Triggers','admin',2,'','','$leftmenu==\'admintools\'',2,'2013-03-24 02:31:47'),(103369,'auguria',1,'','left','home',103362,NULL,NULL,2,'/admin/system/modules.php?leftmenu=admintools','','Modules','admin',2,'','','$leftmenu==\'admintools\'',2,'2013-03-24 02:31:47'),(103371,'auguria',1,'','left','home',103461,NULL,NULL,4,'/admin/system/database.php?leftmenu=admintools','','InfoDatabase','admin',1,'','','$leftmenu==\'admintools\'',2,'2013-03-24 02:31:47'),(103461,'auguria',1,'','left','home',103162,NULL,NULL,2,'/admin/tools/index.php?leftmenu=admintools','','SystemTools','admin',0,'admintools','','$user->admin',2,'2013-03-24 02:31:47'),(103462,'auguria',1,'','left','home',103461,NULL,NULL,5,'/admin/tools/dolibarr_export.php?leftmenu=admintools','','Backup','admin',1,'','','$leftmenu==\'admintools\'',2,'2013-03-24 02:31:47'),(103463,'auguria',1,'','left','home',103461,NULL,NULL,6,'/admin/tools/dolibarr_import.php?leftmenu=admintools','','Restore','admin',1,'','','$leftmenu==\'admintools\'',2,'2013-03-24 02:31:47'),(103464,'auguria',1,'','left','home',103461,NULL,NULL,11,'/admin/tools/purge.php?leftmenu=admintools','','Purge','admin',1,'','','$leftmenu==\'admintools\'',2,'2013-03-24 02:31:47'),(103465,'auguria',1,'','left','home',103461,NULL,NULL,8,'/admin/tools/eaccelerator.php?leftmenu=admintools','','EAccelerator','admin',1,'','','$leftmenu==\'admintools\' && function_exists(\'eaccelerator_info\')',2,'2013-03-24 02:31:47'),(103466,'auguria',1,'','left','home',103461,NULL,NULL,7,'/admin/tools/update.php?leftmenu=admintools','','MenuUpgrade','admin',1,'','','$leftmenu==\'admintools\'',2,'2013-03-24 02:31:47'),(103467,'auguria',1,'','left','home',103461,NULL,NULL,9,'/admin/tools/listevents.php?leftmenu=admintools','','Audit','admin',1,'','','$leftmenu==\'admintools\'',2,'2013-03-24 02:31:47'),(103468,'auguria',1,'','left','home',103461,NULL,NULL,12,'/support/index.php?leftmenu=admintools','_blank','HelpCenter','help',1,'','','$leftmenu==\'admintools\'',2,'2013-03-24 02:31:47'),(103469,'auguria',1,'','left','home',103461,NULL,NULL,10,'/admin/tools/listsessions.php?leftmenu=admintools','','Sessions','admin',1,'','','$leftmenu==\'admintools\'',2,'2013-03-24 02:31:47'),(103561,'auguria',1,'','left','home',103162,NULL,NULL,3,'/user/home.php?leftmenu=users','','MenuUsersAndGroups','users',0,'users','','1',2,'2013-03-24 02:31:47'),(103562,'auguria',1,'','left','home',103561,NULL,NULL,0,'/user/index.php?leftmenu=users','','Users','users',1,'','$user->rights->user->user->lire || $user->admin','$leftmenu==\'users\'',2,'2013-03-24 02:31:47'),(103563,'auguria',1,'','left','home',103562,NULL,NULL,0,'/user/fiche.php?leftmenu=users&action=create','','NewUser','users',2,'','$user->rights->user->user->creer || $user->admin','$leftmenu==\'users\'',2,'2013-03-24 02:31:47'),(103564,'auguria',1,'','left','home',103561,NULL,NULL,1,'/user/group/index.php?leftmenu=users','','Groups','users',1,'','($conf->global->MAIN_USE_ADVANCED_PERMS?$user->rights->user->group_advance->read:$user->rights->user->user->lire) || $user->admin','$leftmenu==\'users\'',2,'2013-03-24 02:31:47'),(103565,'auguria',1,'','left','home',103564,NULL,NULL,0,'/user/group/fiche.php?leftmenu=users&action=create','','NewGroup','users',2,'','($conf->global->MAIN_USE_ADVANCED_PERMS?$user->rights->user->group_advance->write:$user->rights->user->user->creer) || $user->admin','$leftmenu==\'users\'',2,'2013-03-24 02:31:47'),(103661,'auguria',1,'','left','companies',103163,NULL,NULL,0,'/societe/index.php?leftmenu=thirdparties','','ThirdParty','companies',0,'thirdparties','$user->rights->societe->lire','$conf->societe->enabled',2,'2013-03-24 02:31:47'),(103662,'auguria',1,'','left','companies',103661,NULL,NULL,0,'/societe/soc.php?action=create','','MenuNewThirdParty','companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2013-03-24 02:31:47'),(103664,'auguria',1,'','left','companies',103661,NULL,NULL,5,'/fourn/liste.php?leftmenu=suppliers','','ListSuppliersShort','suppliers',1,'','$user->rights->societe->lire && $user->rights->fournisseur->lire','$conf->societe->enabled && $conf->fournisseur->enabled',2,'2013-03-24 02:31:47'),(103665,'auguria',1,'','left','companies',103664,NULL,NULL,0,'/societe/soc.php?leftmenu=supplier&action=create&type=f','','NewSupplier','suppliers',2,'','$user->rights->societe->creer','$conf->societe->enabled && $conf->fournisseur->enabled',2,'2013-03-24 02:31:47'),(103667,'auguria',1,'','left','companies',103661,NULL,NULL,3,'/comm/prospect/list.php?leftmenu=prospects','','ListProspectsShort','companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2013-03-24 02:31:47'),(103668,'auguria',1,'','left','companies',103667,NULL,NULL,0,'/societe/soc.php?leftmenu=prospects&action=create&type=p','','MenuNewProspect','companies',2,'','$user->rights->societe->creer','$conf->societe->enabled',2,'2013-03-24 02:31:47'),(103670,'auguria',1,'','left','companies',103661,NULL,NULL,4,'/comm/list.php?leftmenu=customers','','ListCustomersShort','companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2013-03-24 02:31:47'),(103671,'auguria',1,'','left','companies',103670,NULL,NULL,0,'/societe/soc.php?leftmenu=customers&action=create&type=c','','MenuNewCustomer','companies',2,'','$user->rights->societe->creer','$conf->societe->enabled',2,'2013-03-24 02:31:47'),(103761,'auguria',1,'','left','companies',103163,NULL,NULL,1,'/contact/list.php?leftmenu=contacts','','ContactsAddresses','companies',0,'contacts','$user->rights->societe->lire','$conf->societe->enabled',2,'2013-03-24 02:31:47'),(103762,'auguria',1,'','left','companies',103761,NULL,NULL,0,'/contact/fiche.php?leftmenu=contacts&action=create','','NewContactAddress','companies',1,'','$user->rights->societe->creer','$conf->societe->enabled',2,'2013-03-24 02:31:47'),(103763,'auguria',1,'','left','companies',103761,NULL,NULL,1,'/contact/list.php?leftmenu=contacts','','List','companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2013-03-24 02:31:47'),(103765,'auguria',1,'','left','companies',103763,NULL,NULL,1,'/contact/list.php?leftmenu=contacts&type=p','','Prospects','companies',2,'','$user->rights->societe->contact->lire','$conf->societe->enabled',2,'2013-03-24 02:31:47'),(103766,'auguria',1,'','left','companies',103763,NULL,NULL,2,'/contact/list.php?leftmenu=contacts&type=c','','Customers','companies',2,'','$user->rights->societe->contact->lire','$conf->societe->enabled',2,'2013-03-24 02:31:47'),(103767,'auguria',1,'','left','companies',103763,NULL,NULL,3,'/contact/list.php?leftmenu=contacts&type=f','','Suppliers','companies',2,'','$user->rights->societe->contact->lire','$conf->societe->enabled && $conf->fournisseur->enabled',2,'2013-03-24 02:31:47'),(103768,'auguria',1,'','left','companies',103763,NULL,NULL,4,'/contact/list.php?leftmenu=contacts&type=o','','Others','companies',2,'','$user->rights->societe->contact->lire','$conf->societe->enabled',2,'2013-03-24 02:31:47'),(103811,'auguria',1,'','left','companies',103163,NULL,NULL,3,'/categories/index.php?leftmenu=cat&type=1','','SuppliersCategoriesShort','categories',0,'cat','$user->rights->categorie->lire','$conf->societe->enabled && $conf->categorie->enabled',2,'2013-03-24 02:31:47'),(103812,'auguria',1,'','left','companies',103811,NULL,NULL,0,'/categories/fiche.php?action=create&type=1','','NewCategory','categories',1,'','$user->rights->categorie->creer','$conf->societe->enabled && $conf->categorie->enabled',2,'2013-03-24 02:31:47'),(103821,'auguria',1,'','left','companies',103163,NULL,NULL,4,'/categories/index.php?leftmenu=cat&type=2','','CustomersProspectsCategoriesShort','categories',0,'cat','$user->rights->categorie->lire','$conf->fournisseur->enabled && $conf->categorie->enabled',2,'2013-03-24 02:31:47'),(103822,'auguria',1,'','left','companies',103821,NULL,NULL,0,'/categories/fiche.php?action=create&type=2','','NewCategory','categories',1,'','$user->rights->categorie->creer','$conf->fournisseur->enabled && $conf->categorie->enabled',2,'2013-03-24 02:31:47'),(104261,'auguria',1,'','left','commercial',103166,NULL,NULL,4,'/comm/propal/index.php?leftmenu=propals','','Prop','propal',0,'propals','$user->rights->propale->lire','$conf->propal->enabled',2,'2013-03-24 02:31:47'),(104262,'auguria',1,'','left','commercial',104261,NULL,NULL,0,'/societe/societe.php?leftmenu=propals','','NewPropal','propal',1,'','$user->rights->propale->creer','$conf->propal->enabled',2,'2013-03-24 02:31:47'),(104263,'auguria',1,'','left','commercial',104261,NULL,NULL,1,'/comm/propal/list.php?leftmenu=propals','','List','propal',1,'','$user->rights->propale->lire','$conf->propal->enabled',2,'2013-03-24 02:31:47'),(104264,'auguria',1,'','left','commercial',104263,NULL,NULL,2,'/comm/propal/list.php?leftmenu=propals&viewstatut=0','','PropalsDraft','propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2013-03-24 02:31:47'),(104265,'auguria',1,'','left','commercial',104263,NULL,NULL,3,'/comm/propal/list.php?leftmenu=propals&viewstatut=1','','PropalsOpened','propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2013-03-24 02:31:47'),(104266,'auguria',1,'','left','commercial',104263,NULL,NULL,4,'/comm/propal/list.php?leftmenu=propals&viewstatut=2','','PropalStatusSigned','propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2013-03-24 02:31:47'),(104267,'auguria',1,'','left','commercial',104263,NULL,NULL,5,'/comm/propal/list.php?leftmenu=propals&viewstatut=3','','PropalStatusNotSigned','propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2013-03-24 02:31:47'),(104268,'auguria',1,'','left','commercial',104263,NULL,NULL,6,'/comm/propal/list.php?leftmenu=propals&viewstatut=4','','PropalStatusBilled','propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2013-03-24 02:31:47'),(104271,'auguria',1,'','left','commercial',104261,NULL,NULL,4,'/comm/propal/stats/index.php?leftmenu=propals','','Statistics','propal',1,'','$user->rights->propale->lire','$conf->propal->enabled',2,'2013-03-24 02:31:47'),(104361,'auguria',1,'','left','commercial',103166,NULL,NULL,5,'/commande/index.php?leftmenu=orders','','CustomersOrders','orders',0,'orders','$user->rights->commande->lire','$conf->commande->enabled',2,'2013-03-24 02:31:47'),(104362,'auguria',1,'','left','commercial',104361,NULL,NULL,0,'/societe/societe.php?leftmenu=orders','','NewOrder','orders',1,'','$user->rights->commande->creer','$conf->commande->enabled',2,'2013-03-24 02:31:47'),(104363,'auguria',1,'','left','commercial',104361,NULL,NULL,1,'/commande/liste.php?leftmenu=orders','','List','orders',1,'','$user->rights->commande->lire','$conf->commande->enabled',2,'2013-03-24 02:31:47'),(104364,'auguria',1,'','left','commercial',104363,NULL,NULL,2,'/commande/liste.php?leftmenu=orders&viewstatut=0','','StatusOrderDraftShort','orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2013-03-24 02:31:47'),(104365,'auguria',1,'','left','commercial',104363,NULL,NULL,3,'/commande/liste.php?leftmenu=orders&viewstatut=1','','StatusOrderValidated','orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2013-03-24 02:31:47'),(104366,'auguria',1,'','left','commercial',104363,NULL,NULL,4,'/commande/liste.php?leftmenu=orders&viewstatut=2','','StatusOrderOnProcessShort','orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2013-03-24 02:31:47'),(104367,'auguria',1,'','left','commercial',104363,NULL,NULL,5,'/commande/liste.php?leftmenu=orders&viewstatut=3','','StatusOrderToBill','orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2013-03-24 02:31:47'),(104368,'auguria',1,'','left','commercial',104363,NULL,NULL,6,'/commande/liste.php?leftmenu=orders&viewstatut=4','','StatusOrderProcessed','orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2013-03-24 02:31:47'),(104369,'auguria',1,'','left','commercial',104363,NULL,NULL,7,'/commande/liste.php?leftmenu=orders&viewstatut=-1','','StatusOrderCanceledShort','orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2013-03-24 02:31:47'),(104370,'auguria',1,'','left','commercial',104361,NULL,NULL,4,'/commande/stats/index.php?leftmenu=orders','','Statistics','orders',1,'','$user->rights->commande->lire','$conf->commande->enabled',2,'2013-03-24 02:31:47'),(104461,'auguria',1,'','left','commercial',103164,NULL,NULL,6,'/expedition/index.php?leftmenu=sendings','','Shipments','sendings',0,'sendings','$user->rights->expedition->lire','$conf->expedition->enabled',2,'2013-03-24 02:31:47'),(104462,'auguria',1,'','left','commercial',104461,NULL,NULL,0,'/expedition/fiche.php?action=create2&leftmenu=sendings','','NewSending','sendings',1,'','$user->rights->expedition->creer','$conf->expedition->enabled && $leftmenu==\"sendings\"',2,'2013-03-24 02:31:47'),(104463,'auguria',1,'','left','commercial',104461,NULL,NULL,1,'/expedition/liste.php?leftmenu=sendings','','List','sendings',1,'','$user->rights->expedition->lire','$conf->expedition->enabled && $leftmenu==\"sendings\"',2,'2013-03-24 02:31:47'),(104464,'auguria',1,'','left','commercial',104461,NULL,NULL,2,'/expedition/stats/index.php?leftmenu=sendings','','Statistics','sendings',1,'','$user->rights->expedition->lire','$conf->expedition->enabled && $leftmenu==\"sendings\"',2,'2013-03-24 02:31:47'),(104561,'auguria',1,'','left','commercial',103166,NULL,NULL,7,'/contrat/index.php?leftmenu=contracts','','Contracts','contracts',0,'contracts','$user->rights->contrat->lire','$conf->contrat->enabled',2,'2013-03-24 02:31:47'),(104562,'auguria',1,'','left','commercial',104561,NULL,NULL,0,'/societe/societe.php?leftmenu=contracts','','NewContract','contracts',1,'','$user->rights->contrat->creer','$conf->contrat->enabled',2,'2013-03-24 02:31:47'),(104563,'auguria',1,'','left','commercial',104561,NULL,NULL,1,'/contrat/liste.php?leftmenu=contracts','','List','contracts',1,'','$user->rights->contrat->lire','$conf->contrat->enabled',2,'2013-03-24 02:31:47'),(104564,'auguria',1,'','left','commercial',104561,NULL,NULL,2,'/contrat/services.php?leftmenu=contracts','','MenuServices','contracts',1,'','$user->rights->contrat->lire','$conf->contrat->enabled',2,'2013-03-24 02:31:47'),(104565,'auguria',1,'','left','commercial',104564,NULL,NULL,0,'/contrat/services.php?leftmenu=contracts&mode=0','','MenuInactiveServices','contracts',2,'','$user->rights->contrat->lire','$conf->contrat->enabled&&$leftmenu==\"contracts\"',2,'2013-03-24 02:31:47'),(104566,'auguria',1,'','left','commercial',104564,NULL,NULL,1,'/contrat/services.php?leftmenu=contracts&mode=4','','MenuRunningServices','contracts',2,'','$user->rights->contrat->lire','$conf->contrat->enabled&&$leftmenu==\"contracts\"',2,'2013-03-24 02:31:47'),(104567,'auguria',1,'','left','commercial',104564,NULL,NULL,2,'/contrat/services.php?leftmenu=contracts&mode=4&filter=expired','','MenuExpiredServices','contracts',2,'','$user->rights->contrat->lire','$conf->contrat->enabled&&$leftmenu==\"contracts\"',2,'2013-03-24 02:31:47'),(104568,'auguria',1,'','left','commercial',104564,NULL,NULL,3,'/contrat/services.php?leftmenu=contracts&mode=5','','MenuClosedServices','contracts',2,'','$user->rights->contrat->lire','$conf->contrat->enabled&&$leftmenu==\"contracts\"',2,'2013-03-24 02:31:47'),(104661,'auguria',1,'','left','commercial',103166,NULL,NULL,8,'/fichinter/list.php?leftmenu=ficheinter','','Interventions','interventions',0,'ficheinter','$user->rights->ficheinter->lire','$conf->ficheinter->enabled',2,'2013-03-24 02:31:47'),(104662,'auguria',1,'','left','commercial',104661,NULL,NULL,0,'/fichinter/fiche.php?action=create&leftmenu=ficheinter','','NewIntervention','interventions',1,'','$user->rights->ficheinter->creer','$conf->ficheinter->enabled',2,'2013-03-24 02:31:47'),(104663,'auguria',1,'','left','commercial',104661,NULL,NULL,1,'/fichinter/list.php?leftmenu=ficheinter','','List','interventions',1,'','$user->rights->ficheinter->lire','$conf->ficheinter->enabled',2,'2013-03-24 02:31:47'),(104761,'auguria',1,'','left','accountancy',103167,NULL,NULL,3,'/fourn/facture/index.php?leftmenu=suppliers_bills','','BillsSuppliers','bills',0,'supplier_bills','$user->rights->fournisseur->facture->lire','$conf->fournisseur->enabled',2,'2013-03-24 02:31:47'),(104762,'auguria',1,'','left','accountancy',104761,NULL,NULL,0,'/fourn/facture/fiche.php?action=create&leftmenu=suppliers_bills','','NewBill','bills',1,'','$user->rights->fournisseur->facture->creer','$conf->fournisseur->enabled',2,'2013-03-24 02:31:47'),(104763,'auguria',1,'','left','accountancy',104761,NULL,NULL,1,'/fourn/facture/impayees.php?leftmenu=suppliers_bills','','Unpaid','bills',1,'','$user->rights->fournisseur->facture->lire','$conf->fournisseur->enabled',2,'2013-03-24 02:31:47'),(104764,'auguria',1,'','left','accountancy',104761,NULL,NULL,2,'/fourn/facture/paiement.php?leftmenu=suppliers_bills','','Payments','bills',1,'','$user->rights->fournisseur->facture->lire','$conf->fournisseur->enabled',2,'2013-03-24 02:31:47'),(104765,'auguria',1,'','left','accountancy',104761,NULL,NULL,8,'/compta/facture/stats/index.php?leftmenu=customers_bills&mode=supplier','','Statistics','bills',1,'','$user->rights->fournisseur->facture->lire','$conf->fournisseur->enabled',2,'2013-03-24 02:31:47'),(104861,'auguria',1,'','left','accountancy',103167,NULL,NULL,3,'/compta/facture/list.php?leftmenu=customers_bills','','BillsCustomers','bills',0,'customer_bills','$user->rights->facture->lire','$conf->facture->enabled',2,'2013-03-24 02:31:47'),(104862,'auguria',1,'','left','accountancy',104861,NULL,NULL,3,'/compta/clients.php?action=facturer&leftmenu=customers_bills','','NewBill','bills',1,'','$user->rights->facture->creer','$conf->facture->enabled',2,'2013-03-24 02:31:47'),(104863,'auguria',1,'','left','accountancy',104861,NULL,NULL,4,'/compta/facture/fiche-rec.php?leftmenu=customers_bills','','Repeatable','bills',1,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2013-03-24 02:31:47'),(104864,'auguria',1,'','left','accountancy',104861,NULL,NULL,5,'/compta/facture/impayees.php?action=facturer&leftmenu=customers_bills','','Unpaid','bills',1,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2013-03-24 02:31:47'),(104865,'auguria',1,'','left','accountancy',104861,NULL,NULL,6,'/compta/paiement/liste.php?leftmenu=customers_bills','','Payments','bills',1,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2013-03-24 02:31:47'),(104871,'auguria',1,'','left','accountancy',104865,NULL,NULL,1,'/compta/paiement/rapport.php?leftmenu=customers_bills','','Reportings','bills',2,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2013-03-24 02:31:47'),(104872,'auguria',1,'','left','accountancy',103175,NULL,NULL,9,'/compta/paiement/cheque/index.php?leftmenu=checks&mainmenu=bank','','MenuChequeDeposits','bills',0,'checks','$user->rights->facture->lire','$conf->facture->enabled && $conf->banque->enabled',2,'2013-03-24 02:31:47'),(104873,'auguria',1,'','left','accountancy',104872,NULL,NULL,0,'/compta/paiement/cheque/fiche.php?leftmenu=checks&action=new','','NewCheckDeposit','compta',1,'','$user->rights->facture->lire','$conf->facture->enabled && $conf->banque->enabled',2,'2013-03-24 02:31:47'),(104874,'auguria',1,'','left','accountancy',104872,NULL,NULL,1,'/compta/paiement/cheque/liste.php?leftmenu=checks','','List','bills',1,'','$user->rights->facture->lire','$conf->facture->enabled && $conf->banque->enabled',2,'2013-03-24 02:31:47'),(104875,'auguria',1,'','left','accountancy',104861,NULL,NULL,8,'/compta/facture/stats/index.php?leftmenu=customers_bills','','Statistics','bills',1,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2013-03-24 02:31:47'),(105061,'auguria',1,'','left','accountancy',103167,NULL,NULL,3,'/commande/liste.php?leftmenu=orders&viewstatut=3','','MenuOrdersToBill','orders',0,'orders','$user->rights->commande->lire','$conf->commande->enabled',0,'2013-03-24 02:31:47'),(105161,'auguria',1,'','left','accountancy',103167,NULL,NULL,4,'/compta/dons/index.php?leftmenu=donations&mainmenu=accountancy','','Donations','donations',0,'donations','$user->rights->don->lire','$conf->don->enabled',2,'2013-03-24 02:31:47'),(105162,'auguria',1,'','left','accountancy',105161,NULL,NULL,0,'/compta/dons/fiche.php?leftmenu=donations&mainmenu=accountancy&action=create','','NewDonation','donations',1,'','$user->rights->don->creer','$conf->don->enabled && $leftmenu==\"donations\"',2,'2013-03-24 02:31:47'),(105163,'auguria',1,'','left','accountancy',105161,NULL,NULL,1,'/compta/dons/liste.php?leftmenu=donations&mainmenu=accountancy','','List','donations',1,'','$user->rights->don->lire','$conf->don->enabled && $leftmenu==\"donations\"',2,'2013-03-24 02:31:47'),(105261,'auguria',1,'','left','accountancy',103167,NULL,NULL,5,'/compta/deplacement/index.php?leftmenu=tripsandexpenses','','TripsAndExpenses','trips',0,'tripsandexpenses','$user->rights->deplacement->lire','$conf->deplacement->enabled',0,'2013-03-24 02:31:47'),(105262,'auguria',1,'','left','accountancy',105261,NULL,NULL,1,'/compta/deplacement/fiche.php?action=create&leftmenu=tripsandexpenses','','New','trips',1,'','$user->rights->deplacement->creer','$conf->deplacement->enabled && $leftmenu==\"tripsandexpenses\"',0,'2013-03-24 02:31:47'),(105263,'auguria',1,'','left','accountancy',105261,NULL,NULL,2,'/compta/deplacement/list.php?leftmenu=tripsandexpenses','','List','trips',1,'','$user->rights->deplacement->lire','$conf->deplacement->enabled && $leftmenu==\"tripsandexpenses\"',0,'2013-03-24 02:31:47'),(105264,'auguria',1,'','left','accountancy',105261,NULL,NULL,2,'/compta/deplacement/stats/index.php?leftmenu=tripsandexpenses','','Statistics','trips',1,'','$user->rights->deplacement->lire','$conf->deplacement->enabled && $leftmenu==\"tripsandexpenses\"',0,'2013-03-24 02:31:47'),(105361,'auguria',1,'','left','accountancy',103167,NULL,NULL,6,'/compta/charges/index.php?leftmenu=tax&mainmenu=accountancy','','MenuTaxAndDividends','compta',0,'tax','$user->rights->tax->charges->lire','$conf->tax->enabled',0,'2013-03-24 02:31:47'),(105362,'auguria',1,'','left','accountancy',105361,NULL,NULL,1,'/compta/sociales/index.php?leftmenu=tax_social','','SocialContributions','',1,'tax_social','$user->rights->tax->charges->lire','$conf->tax->enabled',0,'2013-03-24 02:31:47'),(105363,'auguria',1,'','left','accountancy',105362,NULL,NULL,2,'/compta/sociales/charges.php?leftmenu=tax_social&action=create','','MenuNewSocialContribution','',2,'','$user->rights->tax->charges->creer','$conf->tax->enabled && $leftmenu==\"tax_social\"',0,'2013-03-24 02:31:47'),(105364,'auguria',1,'','left','accountancy',105362,NULL,NULL,3,'/compta/charges/index.php?leftmenu=tax_social&mainmenu=accountancy&mode=sconly','','Payments','',2,'','$user->rights->tax->charges->lire','$conf->tax->enabled && $leftmenu==\"tax_social\"',0,'2013-03-24 02:31:47'),(105461,'auguria',1,'','left','accountancy',105361,NULL,NULL,7,'/compta/tva/index.php?leftmenu=tax_vat&mainmenu=accountancy','','VAT','companies',1,'tax_vat','$user->rights->tax->charges->lire','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS)',0,'2013-03-24 02:31:47'),(105462,'auguria',1,'','left','accountancy',105461,NULL,NULL,0,'/compta/tva/fiche.php?leftmenu=tax_vat&action=create','','NewPayment','companies',2,'','$user->rights->tax->charges->creer','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu==\"tax_vat\"',0,'2013-03-24 02:31:47'),(105463,'auguria',1,'','left','accountancy',105461,NULL,NULL,1,'/compta/tva/reglement.php?leftmenu=tax_vat','','Payments','companies',2,'','$user->rights->tax->charges->lire','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu==\"tax_vat\"',0,'2013-03-24 02:31:47'),(105464,'auguria',1,'','left','accountancy',105461,NULL,NULL,2,'/compta/tva/clients.php?leftmenu=tax_vat','','ReportByCustomers','companies',2,'','$user->rights->tax->charges->lire','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu==\"tax_vat\"',0,'2013-03-24 02:31:47'),(105465,'auguria',1,'','left','accountancy',105461,NULL,NULL,3,'/compta/tva/quadri_detail.php?leftmenu=tax_vat','','ReportByQuarter','companies',2,'','$user->rights->tax->charges->lire','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu==\"tax_vat\"',0,'2013-03-24 02:31:47'),(105561,'auguria',1,'','left','accountancy',103167,NULL,NULL,8,'/compta/ventilation/index.php?leftmenu=ventil','','Ventilation','companies',0,'ventil','$user->rights->compta->ventilation->lire','$conf->comptabilite->enabled && $conf->global->FACTURE_VENTILATION',0,'2013-03-24 02:31:47'),(105562,'auguria',1,'','left','accountancy',105561,NULL,NULL,0,'/compta/ventilation/liste.php','','ToDispatch','companies',1,'','$user->rights->compta->ventilation->lire','$conf->comptabilite->enabled && $conf->global->FACTURE_VENTILATION',0,'2013-03-24 02:31:47'),(105563,'auguria',1,'','left','accountancy',105561,NULL,NULL,1,'/compta/ventilation/lignes.php','','Dispatched','companies',1,'','$user->rights->compta->ventilation->lire','$conf->comptabilite->enabled && $conf->global->FACTURE_VENTILATION',0,'2013-03-24 02:31:47'),(105564,'auguria',1,'','left','accountancy',105561,NULL,NULL,2,'/compta/param/','','Setup','companies',1,'','$user->rights->compta->ventilation->parametrer','$conf->comptabilite->enabled && $conf->global->FACTURE_VENTILATION',0,'2013-03-24 02:31:47'),(105565,'auguria',1,'','left','accountancy',105564,NULL,NULL,0,'/compta/param/comptes/liste.php','','List','companies',2,'','$user->rights->compta->ventilation->parametrer','$conf->comptabilite->enabled && $conf->global->FACTURE_VENTILATION',0,'2013-03-24 02:31:47'),(105566,'auguria',1,'','left','accountancy',105564,NULL,NULL,1,'/compta/param/comptes/fiche.php?action=create','','New','companies',2,'','$user->rights->compta->ventilation->parametrer','$conf->comptabilite->enabled && $conf->global->FACTURE_VENTILATION',0,'2013-03-24 02:31:47'),(105567,'auguria',1,'','left','accountancy',105561,NULL,NULL,3,'/compta/export/','','Export','companies',1,'','$user->rights->compta->ventilation->lire','$conf->comptabilite->enabled && $conf->global->FACTURE_VENTILATION',0,'2013-03-24 02:31:47'),(105568,'auguria',1,'','left','accountancy',105567,NULL,NULL,0,'/compta/export/index.php','','New','companies',2,'','$user->rights->compta->ventilation->lire','$conf->comptabilite->enabled && $conf->global->FACTURE_VENTILATION',0,'2013-03-24 02:31:47'),(105569,'auguria',1,'','left','accountancy',105567,NULL,NULL,1,'/compta/export/liste.php','','List','companies',2,'','$user->rights->compta->ventilation->lire','$conf->comptabilite->enabled && $conf->global->FACTURE_VENTILATION',0,'2013-03-24 02:31:47'),(105661,'auguria',1,'','left','accountancy',103175,NULL,NULL,9,'/compta/prelevement/index.php?leftmenu=withdraw&mainmenu=bank','','StandingOrders','withdrawals',0,'withdraw','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled',2,'2013-03-24 02:31:47'),(105663,'auguria',1,'','left','accountancy',105661,NULL,NULL,0,'/compta/prelevement/create.php?leftmenu=withdraw','','NewStandingOrder','withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2013-03-24 02:31:47'),(105664,'auguria',1,'','left','accountancy',105661,NULL,NULL,2,'/compta/prelevement/bons.php?leftmenu=withdraw','','WithdrawalsReceipts','withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2013-03-24 02:31:47'),(105665,'auguria',1,'','left','accountancy',105661,NULL,NULL,3,'/compta/prelevement/liste.php?leftmenu=withdraw','','WithdrawalsLines','withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2013-03-24 02:31:47'),(105667,'auguria',1,'','left','accountancy',105661,NULL,NULL,5,'/compta/prelevement/rejets.php?leftmenu=withdraw','','Rejects','withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2013-03-24 02:31:47'),(105668,'auguria',1,'','left','accountancy',105661,NULL,NULL,6,'/compta/prelevement/stats.php?leftmenu=withdraw','','Statistics','withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2013-03-24 02:31:47'),(105761,'auguria',1,'','left','accountancy',103175,NULL,NULL,1,'/compta/bank/index.php?leftmenu=bank&mainmenu=bank','','MenuBankCash','banks',0,'bank','$user->rights->banque->lire','$conf->banque->enabled',0,'2013-03-24 02:31:47'),(105762,'auguria',1,'','left','accountancy',105761,NULL,NULL,0,'/compta/bank/fiche.php?action=create&leftmenu=bank','','MenuNewFinancialAccount','banks',1,'','$user->rights->banque->configurer','$conf->banque->enabled && ($leftmenu==\"bank\" || $leftmenu==\"checks\" || $leftmenu==\"withdraw\")',0,'2013-03-24 02:31:47'),(105763,'auguria',1,'','left','accountancy',105761,NULL,NULL,1,'/compta/bank/categ.php?leftmenu=bank','','Rubriques','categories',1,'','$user->rights->banque->configurer','$conf->banque->enabled && ($leftmenu==\"bank\" || $leftmenu==\"checks\" || $leftmenu==\"withdraw\")',0,'2013-03-24 02:31:47'),(105764,'auguria',1,'','left','accountancy',105761,NULL,NULL,2,'/compta/bank/search.php?leftmenu=bank','','ListTransactions','banks',1,'','$user->rights->banque->lire','$conf->banque->enabled && ($leftmenu==\"bank\" || $leftmenu==\"checks\" || $leftmenu==\"withdraw\")',0,'2013-03-24 02:31:47'),(105765,'auguria',1,'','left','accountancy',105761,NULL,NULL,3,'/compta/bank/budget.php?leftmenu=bank','','ListTransactionsByCategory','banks',1,'','$user->rights->banque->lire','$conf->banque->enabled && ($leftmenu==\"bank\" || $leftmenu==\"checks\" || $leftmenu==\"withdraw\")',0,'2013-03-24 02:31:47'),(105767,'auguria',1,'','left','accountancy',105761,NULL,NULL,5,'/compta/bank/virement.php?leftmenu=bank','','BankTransfers','banks',1,'','$user->rights->banque->transfer','$conf->banque->enabled && ($leftmenu==\"bank\" || $leftmenu==\"checks\" || $leftmenu==\"withdraw\")',0,'2013-03-24 02:31:47'),(105861,'auguria',1,'','left','accountancy',103167,NULL,NULL,11,'/compta/resultat/index.php?leftmenu=ca&mainmenu=accountancy','','Reportings','main',0,'ca','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled || $conf->accounting->enabled',0,'2013-03-24 02:31:47'),(105862,'auguria',1,'','left','accountancy',105861,NULL,NULL,0,'/compta/resultat/index.php?leftmenu=ca','','ReportInOut','main',1,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled || $conf->accounting->enabled',0,'2013-03-24 02:31:47'),(105863,'auguria',1,'','left','accountancy',105862,NULL,NULL,0,'/compta/resultat/clientfourn.php?leftmenu=ca','','ByCompanies','main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled || $conf->accounting->enabled',0,'2013-03-24 02:31:47'),(105864,'auguria',1,'','left','accountancy',105861,NULL,NULL,1,'/compta/stats/index.php?leftmenu=ca','','ReportTurnover','main',1,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled || $conf->accounting->enabled',0,'2013-03-24 02:31:47'),(105865,'auguria',1,'','left','accountancy',105864,NULL,NULL,0,'/compta/stats/casoc.php?leftmenu=ca','','ByCompanies','main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled || $conf->accounting->enabled',0,'2013-03-24 02:31:47'),(105866,'auguria',1,'','left','accountancy',105864,NULL,NULL,1,'/compta/stats/cabyuser.php?leftmenu=ca','','ByUsers','main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled || $conf->accounting->enabled',0,'2013-03-24 02:31:47'),(105867,'auguria',1,'','left','accountancy',105861,NULL,NULL,1,'/compta/journal/sellsjournal.php?leftmenu=ca','','SellsJournal','main',1,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled || $conf->accounting->enabled',0,'2013-03-24 02:31:47'),(105868,'auguria',1,'','left','accountancy',105861,NULL,NULL,1,'/compta/journal/purchasesjournal.php?leftmenu=ca','','PurchasesJournal','main',1,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled || $conf->accounting->enabled',0,'2013-03-24 02:31:47'),(105961,'auguria',1,'','left','products',103164,NULL,NULL,0,'/product/index.php?leftmenu=product&type=0','','Products','products',0,'product','$user->rights->produit->lire','$conf->product->enabled',2,'2013-03-24 02:31:47'),(105962,'auguria',1,'','left','products',105961,NULL,NULL,0,'/product/fiche.php?leftmenu=product&action=create&type=0','','NewProduct','products',1,'','$user->rights->produit->creer','$conf->product->enabled',2,'2013-03-24 02:31:47'),(105963,'auguria',1,'','left','products',105961,NULL,NULL,1,'/product/liste.php?leftmenu=product&type=0','','List','products',1,'','$user->rights->produit->lire','$conf->product->enabled',2,'2013-03-24 02:31:47'),(105964,'auguria',1,'','left','products',105961,NULL,NULL,4,'/product/reassort.php?type=0','','Stocks','products',1,'','$user->rights->produit->lire && $user->rights->stock->lire','$conf->product->enabled',2,'2013-03-24 02:31:47'),(105965,'auguria',1,'','left','products',105961,NULL,NULL,5,'/product/popuprop.php?leftmenu=stats&type=0','','Statistics','main',1,'','$user->rights->produit->lire','$conf->propal->enabled',2,'2013-03-24 02:31:47'),(106061,'auguria',1,'','left','products',103164,NULL,NULL,1,'/product/index.php?leftmenu=service&type=1','','Services','products',0,'service','$user->rights->service->lire','$conf->service->enabled',2,'2013-03-24 02:31:47'),(106062,'auguria',1,'','left','products',106061,NULL,NULL,0,'/product/fiche.php?leftmenu=service&action=create&type=1','','NewService','products',1,'','$user->rights->service->creer','$conf->service->enabled',2,'2013-03-24 02:31:47'),(106063,'auguria',1,'','left','products',106061,NULL,NULL,1,'/product/liste.php?leftmenu=service&type=1','','List','products',1,'','$user->rights->service->lire','$conf->service->enabled',2,'2013-03-24 02:31:47'),(106064,'auguria',1,'','left','products',106061,NULL,NULL,5,'/product/popuprop.php?leftmenu=stats&type=1','','Statistics','main',1,'','$user->rights->service->lire','$conf->propal->enabled',2,'2013-03-24 02:31:47'),(106261,'auguria',1,'','left','products',103164,NULL,NULL,3,'/product/stock/index.php?leftmenu=stock','','Stock','stocks',0,'stock','$user->rights->stock->lire','$conf->stock->enabled',2,'2013-03-24 02:31:47'),(106262,'auguria',1,'','left','products',106261,NULL,NULL,0,'/product/stock/fiche.php?action=create','','MenuNewWarehouse','stocks',1,'','$user->rights->stock->creer','$conf->stock->enabled',2,'2013-03-24 02:31:47'),(106263,'auguria',1,'','left','products',106261,NULL,NULL,1,'/product/stock/liste.php','','List','stocks',1,'','$user->rights->stock->lire','$conf->stock->enabled',2,'2013-03-24 02:31:47'),(106264,'auguria',1,'','left','products',106261,NULL,NULL,2,'/product/stock/valo.php','','EnhancedValue','stocks',1,'','$user->rights->stock->lire','$conf->stock->enabled',2,'2013-03-24 02:31:47'),(106265,'auguria',1,'','left','products',106261,NULL,NULL,3,'/product/stock/mouvement.php','','Movements','stocks',1,'','$user->rights->stock->mouvement->lire','$conf->stock->enabled',2,'2013-03-24 02:31:47'),(106361,'auguria',1,'','left','products',103164,NULL,NULL,4,'/categories/index.php?leftmenu=cat&type=0','','Categories','categories',0,'cat','$user->rights->categorie->lire','$conf->categorie->enabled',2,'2013-03-24 02:31:47'),(106362,'auguria',1,'','left','products',106361,NULL,NULL,0,'/categories/fiche.php?action=create&type=0','','NewCategory','categories',1,'','$user->rights->categorie->creer','$conf->categorie->enabled',2,'2013-03-24 02:31:47'),(106761,'auguria',1,'','left','project',103168,NULL,NULL,0,'/projet/index.php?leftmenu=projects','','Projects','projects',0,'projects','$user->rights->projet->lire','$conf->projet->enabled',2,'2013-03-24 02:31:47'),(106762,'auguria',1,'','left','project',106761,NULL,NULL,1,'/projet/fiche.php?leftmenu=projects&action=create','','NewProject','projects',1,'','$user->rights->projet->creer','$conf->projet->enabled',2,'2013-03-24 02:31:47'),(106763,'auguria',1,'','left','project',106761,NULL,NULL,2,'/projet/liste.php?leftmenu=projects','','List','projects',1,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2013-03-24 02:31:47'),(106771,'auguria',1,'','left','project',103168,NULL,NULL,0,'/projet/index.php?leftmenu=projects&mode=mine','','MyProjects','projects',0,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2013-03-24 02:31:47'),(106772,'auguria',1,'','left','project',106771,NULL,NULL,1,'/projet/fiche.php?leftmenu=projects&action=create&mode=mine','','NewProject','projects',1,'','$user->rights->projet->creer','$conf->projet->enabled',2,'2013-03-24 02:31:47'),(106773,'auguria',1,'','left','project',106771,NULL,NULL,2,'/projet/liste.php?leftmenu=projects&mode=mine','','List','projects',1,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2013-03-24 02:31:47'),(106861,'auguria',1,'','left','project',103168,NULL,NULL,0,'/projet/activity/index.php?leftmenu=projects','','Activities','projects',0,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2013-03-24 02:31:47'),(106862,'auguria',1,'','left','project',106861,NULL,NULL,1,'/projet/tasks.php?leftmenu=projects&action=create','','NewTask','projects',1,'','$user->rights->projet->creer','$conf->projet->enabled',2,'2013-03-24 02:31:47'),(106863,'auguria',1,'','left','project',106861,NULL,NULL,2,'/projet/tasks/index.php?leftmenu=projects','','List','projects',1,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2013-03-24 02:31:47'),(106864,'auguria',1,'','left','project',106861,NULL,NULL,3,'/projet/activity/list.php?leftmenu=projects','','NewTimeSpent','projects',1,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2013-03-24 02:31:47'),(106961,'auguria',1,'','left','project',103168,NULL,NULL,0,'/projet/activity/index.php?leftmenu=projects&mode=mine','','MyActivities','projects',0,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2013-03-24 02:31:47'),(106962,'auguria',1,'','left','project',106961,NULL,NULL,1,'/projet/tasks.php?leftmenu=projects&action=create&mode=mine','','NewTask','projects',1,'','$user->rights->projet->creer','$conf->projet->enabled',2,'2013-03-24 02:31:47'),(106963,'auguria',1,'','left','project',106961,NULL,NULL,2,'/projet/tasks/index.php?leftmenu=projects&mode=mine','','List','projects',1,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2013-03-24 02:31:47'),(106964,'auguria',1,'','left','project',106961,NULL,NULL,3,'/projet/activity/list.php?leftmenu=projects&mode=mine','','NewTimeSpent','projects',1,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2013-03-24 02:31:47'),(107061,'auguria',1,'','left','tools',103169,NULL,NULL,0,'/comm/mailing/index.php?leftmenu=mailing','','EMailings','mails',0,'mailing','$user->rights->mailing->lire','$conf->mailing->enabled',0,'2013-03-24 02:31:47'),(107062,'auguria',1,'','left','tools',107061,NULL,NULL,0,'/comm/mailing/fiche.php?leftmenu=mailing&action=create','','NewMailing','mails',1,'','$user->rights->mailing->creer','$conf->mailing->enabled',0,'2013-03-24 02:31:47'),(107063,'auguria',1,'','left','tools',107061,NULL,NULL,1,'/comm/mailing/liste.php?leftmenu=mailing','','List','mails',1,'','$user->rights->mailing->lire','$conf->mailing->enabled',0,'2013-03-24 02:31:47'),(107261,'auguria',1,'','left','tools',103169,NULL,NULL,2,'/exports/index.php?leftmenu=export','','FormatedExport','exports',0,'export','$user->rights->export->lire','$conf->export->enabled',2,'2013-03-24 02:31:47'),(107262,'auguria',1,'','left','tools',107261,NULL,NULL,0,'/exports/export.php?leftmenu=export','','NewExport','exports',1,'','$user->rights->export->creer','$conf->export->enabled',2,'2013-03-24 02:31:47'),(107291,'auguria',1,'','left','tools',103169,NULL,NULL,2,'/imports/index.php?leftmenu=import','','FormatedImport','exports',0,'import','$user->rights->import->run','$conf->import->enabled',2,'2013-03-24 02:31:47'),(107292,'auguria',1,'','left','tools',107291,NULL,NULL,0,'/imports/import.php?leftmenu=import','','NewImport','exports',1,'','$user->rights->import->run','$conf->import->enabled',2,'2013-03-24 02:31:47'),(107361,'auguria',1,'','left','members',103174,NULL,NULL,0,'/adherents/index.php?leftmenu=members&mainmenu=members','','Members','members',0,'members','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2013-03-24 02:31:48'),(107362,'auguria',1,'','left','members',107361,NULL,NULL,0,'/adherents/fiche.php?leftmenu=members&action=create','','NewMember','members',1,'','$user->rights->adherent->creer','$conf->adherent->enabled',2,'2013-03-24 02:31:48'),(107363,'auguria',1,'','left','members',107361,NULL,NULL,1,'/adherents/liste.php','','List','members',1,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2013-03-24 02:31:48'),(107364,'auguria',1,'','left','members',107363,NULL,NULL,2,'/adherents/liste.php?leftmenu=members&statut=-1','','MenuMembersToValidate','members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2013-03-24 02:31:48'),(107365,'auguria',1,'','left','members',107363,NULL,NULL,3,'/adherents/liste.php?leftmenu=members&statut=1','','MenuMembersValidated','members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2013-03-24 02:31:48'),(107366,'auguria',1,'','left','members',107363,NULL,NULL,4,'/adherents/liste.php?leftmenu=members&statut=1&filter=outofdate','','MenuMembersNotUpToDate','members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2013-03-24 02:31:48'),(107367,'auguria',1,'','left','members',107363,NULL,NULL,5,'/adherents/liste.php?leftmenu=members&statut=1&filter=uptodate','','MenuMembersUpToDate','members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2013-03-24 02:31:48'),(107368,'auguria',1,'','left','members',107363,NULL,NULL,6,'/adherents/liste.php?leftmenu=members&statut=0','','MenuMembersResiliated','members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2013-03-24 02:31:48'),(107369,'auguria',1,'','left','members',107361,NULL,NULL,7,'/adherents/stats/geo.php?leftmenu=members&mode=memberbycountry','','MenuMembersStats','members',1,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2013-03-24 02:31:48'),(107461,'auguria',1,'','left','members',103174,NULL,NULL,1,'/adherents/index.php?leftmenu=members&mainmenu=members','','Subscriptions','compta',0,'','$user->rights->adherent->cotisation->lire','$conf->adherent->enabled',2,'2013-03-24 02:31:48'),(107462,'auguria',1,'','left','members',107461,NULL,NULL,0,'/adherents/liste.php?statut=-1&leftmenu=accountancy&mainmenu=members','','NewSubscription','compta',1,'','$user->rights->adherent->cotisation->creer','$conf->adherent->enabled',2,'2013-03-24 02:31:48'),(107463,'auguria',1,'','left','members',107461,NULL,NULL,1,'/adherents/cotisations.php?leftmenu=members','','List','compta',1,'','$user->rights->adherent->cotisation->lire','$conf->adherent->enabled',2,'2013-03-24 02:31:48'),(107464,'auguria',1,'','left','members',107461,NULL,NULL,7,'/adherents/stats/index.php?leftmenu=members','','MenuMembersStats','members',1,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2013-03-24 02:31:48'),(107661,'auguria',1,'','left','members',103174,NULL,NULL,3,'/adherents/index.php?leftmenu=export&mainmenu=members','','Exports','members',0,'export','$user->rights->adherent->export','$conf->adherent->enabled',2,'2013-03-24 02:31:48'),(107662,'auguria',1,'','left','members',107661,NULL,NULL,0,'/exports/index.php?leftmenu=export','','Datas','members',1,'','$user->rights->adherent->export','$conf->adherent->enabled && $conf->export->enabled',2,'2013-03-24 02:31:48'),(107663,'auguria',1,'','left','members',107661,NULL,NULL,1,'/adherents/htpasswd.php?leftmenu=export','','Filehtpasswd','members',1,'','$user->rights->adherent->export','$conf->adherent->enabled',2,'2013-03-24 02:31:48'),(107664,'auguria',1,'','left','members',107661,NULL,NULL,2,'/adherents/cartes/carte.php?leftmenu=export','','MembersCards','members',1,'','$user->rights->adherent->export','$conf->adherent->enabled',2,'2013-03-24 02:31:48'),(107861,'auguria',1,'','left','members',103174,NULL,NULL,5,'/adherents/type.php?leftmenu=setup&mainmenu=members','','MembersTypes','members',0,'setup','$user->rights->adherent->configurer','$conf->adherent->enabled',2,'2013-03-24 02:31:48'),(107862,'auguria',1,'','left','members',107861,NULL,NULL,0,'/adherents/type.php?leftmenu=setup&mainmenu=members&action=create','','New','members',1,'','$user->rights->adherent->configurer','$conf->adherent->enabled',2,'2013-03-24 02:31:48'),(107863,'auguria',1,'','left','members',107861,NULL,NULL,1,'/adherents/type.php?leftmenu=setup&mainmenu=members','','List','members',1,'','$user->rights->adherent->configurer','$conf->adherent->enabled',2,'2013-03-24 02:31:48'),(108261,'auguria',1,'','left','commercial',103166,NULL,NULL,6,'/fourn/commande/index.php?leftmenu=orders_suppliers','','SuppliersOrders','orders',0,'orders_suppliers','$user->rights->fournisseur->commande->lire','$conf->fournisseur->enabled',2,'2013-03-24 02:31:47'),(108262,'auguria',1,'','left','commercial',108261,NULL,NULL,0,'/societe/societe.php?leftmenu=orders_suppliers','','NewOrder','orders',1,'','$user->rights->fournisseur->commande->creer','$conf->fournisseur->enabled',2,'2013-03-24 02:31:47'),(108263,'auguria',1,'','left','commercial',108261,NULL,NULL,1,'/fourn/commande/liste.php?leftmenu=orders_suppliers&viewstatut=0','','List','orders',1,'','$user->rights->fournisseur->commande->lire','$conf->fournisseur->enabled',2,'2013-03-24 02:31:47'),(108269,'auguria',1,'','left','commercial',108261,NULL,NULL,7,'/commande/stats/index.php?leftmenu=orders_suppliers&mode=supplier','','Statistics','orders',1,'','$user->rights->fournisseur->commande->lire','$conf->fournisseur->enabled',2,'2013-03-24 02:31:47'),(108361,'auguria',1,'','left','members',103174,NULL,NULL,3,'/categories/index.php?leftmenu=cat&type=3','','MembersCategoriesShort','categories',0,'cat','$user->rights->categorie->lire','$conf->adherent->enabled && $conf->categorie->enabled',2,'2013-03-24 02:31:48'),(108362,'auguria',1,'','left','members',108361,NULL,NULL,0,'/categories/fiche.php?action=create&type=3','','NewCategory','categories',1,'','$user->rights->categorie->creer','$conf->adherent->enabled && $conf->categorie->enabled',2,'2013-03-24 02:31:48'),(108363,'all',1,'opensurvey','top','opensurvey',0,NULL,NULL,200,'/opensurvey/index.php','','Surveys','opensurvey@opensurvey',NULL,NULL,'$user->rights->opensurvey->survey->read','$conf->opensurvey->enabled',0,'2013-03-24 02:57:18'),(108364,'all',1,'opensurvey','left','opensurvey',-1,NULL,'opensurvey',200,'/opensurvey/index.php?mainmenu=opensurvey&leftmenu=opensurvey','','Survey','opensurvey@opensurvey',NULL,'opensurvey','','$conf->opensurvey->enabled',0,'2013-03-24 02:57:18'),(108365,'all',1,'opensurvey','left','opensurvey',-1,'opensurvey','opensurvey',210,'/opensurvey/public/index.php?origin=dolibarr','_blank','NewSurvey','opensurvey@opensurvey',NULL,'opensurvey_new','','$conf->opensurvey->enabled',0,'2013-03-24 02:57:18'),(108366,'all',1,'opensurvey','left','opensurvey',-1,'opensurvey','opensurvey',220,'/opensurvey/list.php','','List','opensurvey@opensurvey',NULL,'opensurvey_list','','$conf->opensurvey->enabled',0,'2013-03-24 02:57:18'); +/*!40000 ALTER TABLE `llx_menu` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_milestone` +-- + +DROP TABLE IF EXISTS `llx_milestone`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_milestone` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_element` int(11) NOT NULL, + `elementtype` varchar(16) NOT NULL, + `label` varchar(255) NOT NULL, + `options` varchar(255) DEFAULT NULL, + `priority` int(11) DEFAULT '0', + `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `fk_user_modif` int(11) DEFAULT NULL, + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_milestone_fk_element` (`fk_element`,`elementtype`), + KEY `idx_milestone_fk_user_modif` (`fk_user_modif`), + CONSTRAINT `fk_milestone_fk_user_modif` FOREIGN KEY (`fk_user_modif`) REFERENCES `llx_user` (`rowid`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_milestone` +-- + +LOCK TABLES `llx_milestone` WRITE; +/*!40000 ALTER TABLE `llx_milestone` DISABLE KEYS */; +INSERT INTO `llx_milestone` VALUES (2,779,'facture','azerty',NULL,0,'2013-03-09 12:19:30',NULL),(3,780,'facture','fsdf',NULL,0,'2013-03-09 13:01:08',NULL),(4,781,'facture','hhh',NULL,0,'2013-03-09 14:06:37',NULL); +/*!40000 ALTER TABLE `llx_milestone` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_monitoring_probes` +-- + +DROP TABLE IF EXISTS `llx_monitoring_probes`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_monitoring_probes` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `title` varchar(64) NOT NULL, + `groupname` varchar(64) DEFAULT NULL, + `url` varchar(250) NOT NULL, + `useproxy` int(11) DEFAULT '0', + `checkkey` varchar(250) DEFAULT NULL, + `maxval` int(11) DEFAULT NULL, + `frequency` int(11) DEFAULT '60', + `active` int(11) DEFAULT '1', + `status` int(11) DEFAULT '0', + `lastreset` datetime DEFAULT NULL, + `oldesterrortext` text, + `oldesterrordate` datetime DEFAULT NULL, + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_monitoring_probes` (`title`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_monitoring_probes` +-- + +LOCK TABLES `llx_monitoring_probes` WRITE; +/*!40000 ALTER TABLE `llx_monitoring_probes` DISABLE KEYS */; +INSERT INTO `llx_monitoring_probes` VALUES (1,'aaa',NULL,'http://www.chiensderace.com',0,'chiens',1000,10,1,1,'2011-04-20 23:46:41',NULL,NULL),(2,'ChatsDeRace',NULL,'http://www.chatsderace.com',0,'chats',1000,5,1,1,'2011-04-20 23:46:41',NULL,NULL); +/*!40000 ALTER TABLE `llx_monitoring_probes` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_notify` +-- + +DROP TABLE IF EXISTS `llx_notify`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_notify` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `daten` datetime DEFAULT NULL, + `fk_action` int(11) NOT NULL, + `fk_contact` int(11) DEFAULT NULL, + `fk_user` int(11) DEFAULT NULL, + `objet_type` varchar(24) NOT NULL, + `objet_id` int(11) NOT NULL, + `email` varchar(255) DEFAULT NULL, + `type` varchar(16) DEFAULT 'email', + PRIMARY KEY (`rowid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_notify` +-- + +LOCK TABLES `llx_notify` WRITE; +/*!40000 ALTER TABLE `llx_notify` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_notify` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_notify_def` +-- + +DROP TABLE IF EXISTS `llx_notify_def`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_notify_def` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `datec` date DEFAULT NULL, + `fk_action` int(11) NOT NULL, + `fk_soc` int(11) NOT NULL, + `fk_contact` int(11) DEFAULT NULL, + `fk_user` int(11) DEFAULT NULL, + `type` varchar(16) DEFAULT 'email', + PRIMARY KEY (`rowid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_notify_def` +-- + +LOCK TABLES `llx_notify_def` WRITE; +/*!40000 ALTER TABLE `llx_notify_def` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_notify_def` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_opensurvey_comments` +-- + +DROP TABLE IF EXISTS `llx_opensurvey_comments`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_opensurvey_comments` ( + `id_comment` int(10) unsigned NOT NULL AUTO_INCREMENT, + `id_sondage` char(16) NOT NULL, + `comment` text NOT NULL, + `usercomment` text, + PRIMARY KEY (`id_comment`) +) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_opensurvey_comments` +-- + +LOCK TABLES `llx_opensurvey_comments` WRITE; +/*!40000 ALTER TABLE `llx_opensurvey_comments` DISABLE KEYS */; +INSERT INTO `llx_opensurvey_comments` VALUES (2,'434dio8rxfljs3p1','aaa','aaa'),(5,'434dio8rxfljs3p1','aaa','aaa'),(6,'434dio8rxfljs3p1','gfh','jj'),(11,'434dio8rxfljs3p1','fsdf','fdsf'),(12,'3imby4hf7joiilsu','fsdf','aa'),(16,'3imby4hf7joiilsu','gdfg','gfdg'),(17,'3imby4hf7joiilsu','gfdgd','gdfgd'),(18,'om4e7azfiurnjtqe','fds','fdsf'),(26,'qgsfrgb922rqzocy','gfdg','gfdg'),(27,'qgsfrgb922rqzocy','gfdg','gfd'),(28,'m4467s2mtk6khmxc','hgf','hgfh'),(29,'m4467s2mtk6khmxc','fgh','hgf'),(30,'ckanvbe7kt3rdb3h','hfgh','fdfds'),(31,'m4467s2mtk6khmxc','hgfh','hgf'); +/*!40000 ALTER TABLE `llx_opensurvey_comments` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_opensurvey_sondage` +-- + +DROP TABLE IF EXISTS `llx_opensurvey_sondage`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_opensurvey_sondage` ( + `id_sondage` varchar(16) NOT NULL, + `id_sondage_admin` char(24) DEFAULT NULL, + `commentaires` text, + `mail_admin` varchar(128) DEFAULT NULL, + `nom_admin` varchar(64) DEFAULT NULL, + `titre` text, + `date_fin` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `format` varchar(2) DEFAULT NULL, + `mailsonde` varchar(2) DEFAULT '0', + `survey_link_visible` int(11) DEFAULT '1', + `origin` varchar(64) DEFAULT NULL, + `tms` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + PRIMARY KEY (`id_sondage`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_opensurvey_sondage` +-- + +LOCK TABLES `llx_opensurvey_sondage` WRITE; +/*!40000 ALTER TABLE `llx_opensurvey_sondage` DISABLE KEYS */; +INSERT INTO `llx_opensurvey_sondage` VALUES ('m4467s2mtk6khmxc','m4467s2mtk6khmxci2ysw682','fdffdshfghfj jhgjgh','aaa@aaa.com','fdfds','fdffds','2013-03-06 23:00:00','D+','1',1,'dolibarr','0000-00-00 00:00:00'); +/*!40000 ALTER TABLE `llx_opensurvey_sondage` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_opensurvey_sujet_studs` +-- + +DROP TABLE IF EXISTS `llx_opensurvey_sujet_studs`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_opensurvey_sujet_studs` ( + `id_sondage` char(16) NOT NULL, + `sujet` text +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_opensurvey_sujet_studs` +-- + +LOCK TABLES `llx_opensurvey_sujet_studs` WRITE; +/*!40000 ALTER TABLE `llx_opensurvey_sujet_studs` DISABLE KEYS */; +INSERT INTO `llx_opensurvey_sujet_studs` VALUES ('434dio8rxfljs3p1','1362697200,1363734000'),('3eyn2drokozf3j4s','1362438000@10h,1363129200@10h'),('z2qcqjh5pm1q4p99','résolution 1,résolution 2,aaa,fdsfsdfsd@checkbox'),('xfwtrseu3ok1c4m6','gdfgfd@yesno,gfdgd@pourcontre,llll@pourcontre'),('om4e7azfiurnjtqe','g dfgdfdfg dfg dg dfg g fdg dfgd fg fg d@pourcontre,mmlml@checkbox'),('fubmr7n293akha5j','check@checkbox,yesno@yesno,pc@pourcontre'),('icaanayi59qto4fl','check@checkbox,yesno@yesno,pc@pourcontre'),('ipbkufzz4lr2vbpx','pc@pourcontre,fdsffd@checkbox'),('3imby4hf7joiilsu','fsdf@yesno,fsdfsd@checkbox,fsdf@pourcontre'),('q41jpgfd4ii3g9vx','fdfsd@pourcontre,fdsfs@pourcontre,fdsfsdf@checkbox'),('xm6hysvkspo7gbx6','fdfsd@pourcontre,fdsfs@pourcontre,fdsfsdf@checkbox'),('99sbps3ba3s8pq7b','fdfsd@pourcontre,fdsfs@pourcontre,fdsfsdf@checkbox'),('6wstlvu2z9kxqweh','fdfsd@pourcontre,fdsfs@pourcontre,fdsfsdf@checkbox'),('783p7f377offci4v','fdfsd@pourcontre,fdsfs@pourcontre,fdsfsdf@checkbox'),('u4umbl5yb6lpydci','fdfsd@pourcontre,fdsfs@pourcontre,fdsfsdf@checkbox'),('dn2euwlf2d4wyy6m','fdfsd@pourcontre,fdsfs@pourcontre,fdsfsdf@checkbox'),('t896ed7af3ujdprx','fdfsd@pourcontre,fdsfs@pourcontre,fdsfsdf@checkbox'),('q5c4kucbbkuxjz8g','fdsfsd@pourcontre,fdsfs@pourcontre,fdsfsd@pourcontre'),('8mcdnf2hgcntfibe','fdsfsd@pourcontre,fdsfs@pourcontre,fdsfsd@pourcontre'),('7shynoad2x4zl8sw','fdsfsd@pourcontre,fdsfs@pourcontre,fdsfsd@pourcontre'),('x82rfs19p8fa21et','fdsfsd@pourcontre,fdsfs@pourcontre,fdsfsd@pourcontre'),('qgsfrgb922rqzocy','1364338800@20H-21H,1364338800@21H-22H,1364425200@20H-21H,1364425200@21H-22H,1364511600@20H-21H,1364511600@21H-22H'),('ah9xvaqu1ajjrqse','1391295600@2h-5h,1391295600@2h-5h,1364338800@20H-21H,1364338800@21H-22H,1364425200@20H-21H,1391295600@2h-5h'),('ckanvbe7kt3rdb3h','1363734000,1363820400'),('6v9xq6f9lemjiuba','1363734000,1363820400,1363906800,1363993200'),('m4467s2mtk6khmxc','1398981600,1357081200,1363734000,1363820400,1363993200,1398981600'); +/*!40000 ALTER TABLE `llx_opensurvey_sujet_studs` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_opensurvey_user_studs` +-- + +DROP TABLE IF EXISTS `llx_opensurvey_user_studs`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_opensurvey_user_studs` ( + `id_users` int(11) NOT NULL AUTO_INCREMENT, + `nom` varchar(64) NOT NULL, + `id_sondage` varchar(16) NOT NULL, + `reponses` varchar(100) NOT NULL, + PRIMARY KEY (`id_users`), + KEY `idx_id_users` (`id_users`), + KEY `idx_nom` (`nom`), + KEY `idx_id_sondage` (`id_sondage`) +) ENGINE=InnoDB AUTO_INCREMENT=25 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_opensurvey_user_studs` +-- + +LOCK TABLES `llx_opensurvey_user_studs` WRITE; +/*!40000 ALTER TABLE `llx_opensurvey_user_studs` DISABLE KEYS */; +INSERT INTO `llx_opensurvey_user_studs` VALUES (1,'gfdgdf','om4e7azfiurnjtqe','01'),(2,'aa','3imby4hf7joiilsu','210'),(3,'fsdf','z2qcqjh5pm1q4p99','0110'),(5,'hfghf','z2qcqjh5pm1q4p99','1110'),(6,'qqqq','ah9xvaqu1ajjrqse','000111'),(7,'hjgh','ah9xvaqu1ajjrqse','000010'),(8,'bcvb','qgsfrgb922rqzocy','011000'),(9,'gdfg','ah9xvaqu1ajjrqse','001000'),(10,'ggg','ah9xvaqu1ajjrqse','000100'),(11,'gfdgd','ah9xvaqu1ajjrqse','001000'),(12,'hhhh','ah9xvaqu1ajjrqse','010000'),(13,'iii','ah9xvaqu1ajjrqse','000100'),(14,'kkk','ah9xvaqu1ajjrqse','001000'),(15,'lllll','ah9xvaqu1ajjrqse','000001'),(16,'kk','ah9xvaqu1ajjrqse','000001'),(17,'gggg','ah9xvaqu1ajjrqse','001000'),(18,'mmmm','ah9xvaqu1ajjrqse','000000'),(19,'jkjkj','ah9xvaqu1ajjrqse','000001'),(20,'azerty','8mcdnf2hgcntfibe','012'),(21,'hfghfg','8mcdnf2hgcntfibe','012'),(22,'fd','ckanvbe7kt3rdb3h','10'),(23,'gfdgdf','m4467s2mtk6khmxc','00011'),(24,'hgfh','m4467s2mtk6khmxc','000111'); +/*!40000 ALTER TABLE `llx_opensurvey_user_studs` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_paiement` +-- + +DROP TABLE IF EXISTS `llx_paiement`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_paiement` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `entity` int(11) NOT NULL DEFAULT '1', + `datec` datetime DEFAULT NULL, + `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `datep` datetime DEFAULT NULL, + `amount` double(24,8) DEFAULT NULL, + `fk_paiement` int(11) NOT NULL, + `num_paiement` varchar(50) DEFAULT NULL, + `note` text, + `fk_bank` int(11) NOT NULL DEFAULT '0', + `fk_user_creat` int(11) DEFAULT NULL, + `fk_user_modif` int(11) DEFAULT NULL, + `statut` smallint(6) NOT NULL DEFAULT '0', + `fk_export_compta` int(11) NOT NULL DEFAULT '0', + PRIMARY KEY (`rowid`) +) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_paiement` +-- + +LOCK TABLES `llx_paiement` WRITE; +/*!40000 ALTER TABLE `llx_paiement` DISABLE KEYS */; +INSERT INTO `llx_paiement` VALUES (1,1,'2010-07-10 14:59:41','2010-07-10 12:59:41','2010-07-10 12:00:00',0.02000000,4,'','',4,1,NULL,0,0),(2,1,'2011-07-18 20:50:24','2011-07-18 18:50:24','2011-07-08 12:00:00',20.00000000,6,'','',5,1,NULL,0,0),(3,1,'2011-07-18 20:50:47','2011-07-18 18:50:47','2011-07-08 12:00:00',10.00000000,4,'','',6,1,NULL,0,0),(5,1,'2011-08-01 03:34:11','2011-08-01 01:34:11','2011-08-01 03:34:11',5.63000000,6,'','Payment Invoice FA1108-0003',8,1,NULL,0,0),(6,1,'2011-08-06 20:33:54','2011-08-06 18:33:54','2011-08-06 20:33:53',5.98000000,4,'','Payment Invoice FA1108-0004',13,1,NULL,0,0),(8,1,'2011-08-08 02:53:40','2011-08-08 00:53:40','2011-08-08 12:00:00',26.10000000,4,'','',14,1,NULL,0,0),(9,1,'2011-08-08 02:55:58','2011-08-08 00:55:58','2011-08-08 12:00:00',26.96000000,1,'','',15,1,NULL,0,0),(17,1,'2012-12-09 15:28:44','2012-12-09 14:28:44','2012-12-09 12:00:00',2.00000000,4,'','',16,1,NULL,0,0),(18,1,'2012-12-09 15:28:53','2012-12-09 14:28:53','2012-12-09 12:00:00',-2.00000000,4,'','',17,1,NULL,0,0),(19,1,'2012-12-09 17:35:55','2012-12-09 16:35:55','2012-12-09 12:00:00',-2.00000000,4,'','',18,1,NULL,0,0),(20,1,'2012-12-09 17:37:02','2012-12-09 16:37:02','2012-12-09 12:00:00',2.00000000,4,'','',19,1,NULL,0,0),(21,1,'2012-12-09 18:35:07','2012-12-09 17:35:07','2012-12-09 12:00:00',-2.00000000,4,'','',20,1,NULL,0,0),(23,1,'2012-12-12 18:54:33','2012-12-12 17:54:33','2012-12-12 12:00:00',1.00000000,1,'','',21,1,NULL,0,0),(24,1,'2013-03-06 16:48:16','2013-03-06 15:48:16','2013-03-06 00:00:00',20.00000000,4,'','Adhésion/cotisation 2016',22,1,NULL,0,0),(25,1,'2013-03-20 14:30:11','2013-03-20 13:30:11','2013-03-20 00:00:00',10.00000000,2,'','Adhésion/cotisation 2011',23,1,NULL,0,0); +/*!40000 ALTER TABLE `llx_paiement` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_paiement_facture` +-- + +DROP TABLE IF EXISTS `llx_paiement_facture`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_paiement_facture` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_paiement` int(11) DEFAULT NULL, + `fk_facture` int(11) DEFAULT NULL, + `amount` double(24,8) DEFAULT NULL, + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_paiement_facture` (`fk_paiement`,`fk_facture`), + KEY `idx_paiement_facture_fk_facture` (`fk_facture`), + KEY `idx_paiement_facture_fk_paiement` (`fk_paiement`), + CONSTRAINT `fk_paiement_facture_fk_facture` FOREIGN KEY (`fk_facture`) REFERENCES `llx_facture` (`rowid`), + CONSTRAINT `fk_paiement_facture_fk_paiement` FOREIGN KEY (`fk_paiement`) REFERENCES `llx_paiement` (`rowid`) +) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_paiement_facture` +-- + +LOCK TABLES `llx_paiement_facture` WRITE; +/*!40000 ALTER TABLE `llx_paiement_facture` DISABLE KEYS */; +INSERT INTO `llx_paiement_facture` VALUES (1,1,1,0.02000000),(2,2,2,20.00000000),(3,3,2,10.00000000),(5,5,5,5.63000000),(6,6,6,5.98000000),(9,8,2,16.10000000),(10,8,8,10.00000000),(11,9,3,15.00000000),(12,9,9,11.96000000),(20,17,11,2.00000000),(21,18,12,-2.00000000),(22,19,10,-1.00000000),(23,19,12,-1.00000000),(24,20,9,1.00000000),(25,20,11,1.00000000),(26,21,12,-2.00000000),(28,23,55,1.00000000),(29,24,161,20.00000000),(30,25,210,10.00000000); +/*!40000 ALTER TABLE `llx_paiement_facture` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_paiementcharge` +-- + +DROP TABLE IF EXISTS `llx_paiementcharge`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_paiementcharge` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_charge` int(11) DEFAULT NULL, + `datec` datetime DEFAULT NULL, + `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `datep` datetime DEFAULT NULL, + `amount` double DEFAULT '0', + `fk_typepaiement` int(11) NOT NULL, + `num_paiement` varchar(50) DEFAULT NULL, + `note` text, + `fk_bank` int(11) NOT NULL, + `fk_user_creat` int(11) DEFAULT NULL, + `fk_user_modif` int(11) DEFAULT NULL, + PRIMARY KEY (`rowid`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_paiementcharge` +-- + +LOCK TABLES `llx_paiementcharge` WRITE; +/*!40000 ALTER TABLE `llx_paiementcharge` DISABLE KEYS */; +INSERT INTO `llx_paiementcharge` VALUES (4,4,'2011-08-05 23:11:37','2011-08-05 21:11:37','2011-08-05 12:00:00',10,2,'','',12,1,NULL); +/*!40000 ALTER TABLE `llx_paiementcharge` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_paiementfourn` +-- + +DROP TABLE IF EXISTS `llx_paiementfourn`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_paiementfourn` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `datec` datetime DEFAULT NULL, + `datep` datetime DEFAULT NULL, + `amount` double DEFAULT '0', + `fk_user_author` int(11) DEFAULT NULL, + `fk_paiement` int(11) NOT NULL, + `num_paiement` varchar(50) DEFAULT NULL, + `note` text, + `fk_bank` int(11) NOT NULL, + `statut` smallint(6) NOT NULL DEFAULT '0', + PRIMARY KEY (`rowid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_paiementfourn` +-- + +LOCK TABLES `llx_paiementfourn` WRITE; +/*!40000 ALTER TABLE `llx_paiementfourn` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_paiementfourn` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_paiementfourn_facturefourn` +-- + +DROP TABLE IF EXISTS `llx_paiementfourn_facturefourn`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_paiementfourn_facturefourn` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_paiementfourn` int(11) DEFAULT NULL, + `fk_facturefourn` int(11) DEFAULT NULL, + `amount` double DEFAULT '0', + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_paiementfourn_facturefourn` (`fk_paiementfourn`,`fk_facturefourn`), + KEY `idx_paiementfourn_facturefourn_fk_facture` (`fk_facturefourn`), + KEY `idx_paiementfourn_facturefourn_fk_paiement` (`fk_paiementfourn`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_paiementfourn_facturefourn` +-- + +LOCK TABLES `llx_paiementfourn_facturefourn` WRITE; +/*!40000 ALTER TABLE `llx_paiementfourn_facturefourn` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_paiementfourn_facturefourn` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_pos_cash` +-- + +DROP TABLE IF EXISTS `llx_pos_cash`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_pos_cash` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `entity` int(11) NOT NULL DEFAULT '1', + `code` varchar(3) DEFAULT NULL, + `name` varchar(30) DEFAULT NULL, + `tactil` tinyint(4) NOT NULL DEFAULT '0', + `fk_paycash` int(11) DEFAULT NULL, + `fk_modepaycash` int(11) DEFAULT NULL, + `fk_paybank` int(11) DEFAULT NULL, + `fk_modepaybank` int(11) DEFAULT NULL, + `fk_warehouse` int(11) DEFAULT NULL, + `fk_device` int(11) DEFAULT NULL, + `fk_soc` int(11) DEFAULT NULL, + `is_used` tinyint(4) DEFAULT '0', + `fk_user_u` int(11) DEFAULT NULL, + `fk_user_c` int(11) DEFAULT NULL, + `fk_user_m` int(11) DEFAULT NULL, + `datec` datetime DEFAULT NULL, + `datea` datetime DEFAULT NULL, + `is_closed` tinyint(4) DEFAULT '0', + PRIMARY KEY (`rowid`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_pos_cash` +-- + +LOCK TABLES `llx_pos_cash` WRITE; +/*!40000 ALTER TABLE `llx_pos_cash` DISABLE KEYS */; +INSERT INTO `llx_pos_cash` VALUES (1,1,'aaa','aaa',0,3,1,1,1,1,NULL,1,0,0,1,NULL,'2013-01-19 18:18:39','2013-01-19 18:18:39',0); +/*!40000 ALTER TABLE `llx_pos_cash` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_pos_control_cash` +-- + +DROP TABLE IF EXISTS `llx_pos_control_cash`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_pos_control_cash` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `entity` int(11) NOT NULL DEFAULT '1', + `fk_cash` int(11) DEFAULT NULL, + `fk_user` int(11) DEFAULT NULL, + `date_c` datetime DEFAULT NULL, + `type_control` tinyint(4) DEFAULT '0', + `amount_teor` double(24,8) DEFAULT NULL, + `amount_real` double(24,8) DEFAULT NULL, + `amount_diff` double(24,8) DEFAULT NULL, + `amount_mov_out` double(24,8) DEFAULT NULL, + `amount_mov_int` double(24,8) DEFAULT NULL, + `amount_next_day` double(24,8) DEFAULT NULL, + `comment` text, + PRIMARY KEY (`rowid`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_pos_control_cash` +-- + +LOCK TABLES `llx_pos_control_cash` WRITE; +/*!40000 ALTER TABLE `llx_pos_control_cash` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_pos_control_cash` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_pos_facture` +-- + +DROP TABLE IF EXISTS `llx_pos_facture`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_pos_facture` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_cash` int(11) NOT NULL, + `fk_facture` int(11) NOT NULL, + `fk_control_cash` int(11) DEFAULT NULL, + PRIMARY KEY (`rowid`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_pos_facture` +-- + +LOCK TABLES `llx_pos_facture` WRITE; +/*!40000 ALTER TABLE `llx_pos_facture` DISABLE KEYS */; +INSERT INTO `llx_pos_facture` VALUES (1,1,148,NULL),(2,1,149,NULL),(3,1,150,NULL),(4,1,151,NULL); +/*!40000 ALTER TABLE `llx_pos_facture` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_pos_moviments` +-- + +DROP TABLE IF EXISTS `llx_pos_moviments`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_pos_moviments` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `entity` int(11) NOT NULL DEFAULT '1', + `fk_cash` int(11) DEFAULT NULL, + `fk_user` int(11) DEFAULT NULL, + `date_m` datetime DEFAULT NULL, + `amount` double(24,8) DEFAULT NULL, + `type` tinyint(4) DEFAULT NULL, + `comment` text, + PRIMARY KEY (`rowid`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_pos_moviments` +-- + +LOCK TABLES `llx_pos_moviments` WRITE; +/*!40000 ALTER TABLE `llx_pos_moviments` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_pos_moviments` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_pos_paiement_ticket` +-- + +DROP TABLE IF EXISTS `llx_pos_paiement_ticket`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_pos_paiement_ticket` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_paiement` int(11) DEFAULT NULL, + `fk_ticket` int(11) DEFAULT NULL, + `amount` double(24,8) DEFAULT '0.00000000', + PRIMARY KEY (`rowid`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_pos_paiement_ticket` +-- + +LOCK TABLES `llx_pos_paiement_ticket` WRITE; +/*!40000 ALTER TABLE `llx_pos_paiement_ticket` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_pos_paiement_ticket` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_pos_ticket` +-- + +DROP TABLE IF EXISTS `llx_pos_ticket`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_pos_ticket` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `ticketnumber` varchar(30) NOT NULL, + `type` int(11) DEFAULT NULL, + `entity` int(11) NOT NULL DEFAULT '1', + `fk_cash` int(11) DEFAULT NULL, + `fk_soc` int(11) NOT NULL, + `date_creation` datetime DEFAULT NULL, + `date_ticket` date DEFAULT NULL, + `date_closed` datetime DEFAULT NULL, + `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `paye` smallint(6) NOT NULL DEFAULT '0', + `remise_percent` double DEFAULT '0', + `remise_absolute` double DEFAULT '0', + `remise` double DEFAULT '0', + `customer_pay` double(24,8) DEFAULT '0.00000000', + `difpayment` double(24,8) DEFAULT '0.00000000', + `tva` double(24,8) DEFAULT '0.00000000', + `localtax1` double(24,8) DEFAULT '0.00000000', + `localtax2` double(24,8) DEFAULT '0.00000000', + `total_ht` double(24,8) DEFAULT '0.00000000', + `total_ttc` double(24,8) DEFAULT '0.00000000', + `fk_statut` smallint(6) NOT NULL DEFAULT '0', + `fk_user_author` int(11) DEFAULT NULL, + `fk_user_close` int(11) DEFAULT NULL, + `fk_facture` int(11) DEFAULT NULL, + `fk_ticket_source` int(11) DEFAULT NULL, + `fk_mode_reglement` int(11) DEFAULT NULL, + `fk_control` int(11) DEFAULT NULL, + `note` text, + `note_public` text, + `model_pdf` varchar(255) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + PRIMARY KEY (`rowid`), + KEY `idx_ticket_fk_soc` (`fk_soc`), + KEY `idx_ticket_fk_user_author` (`fk_user_author`), + KEY `idx_ticket_fk_ticket_source` (`fk_ticket_source`), + CONSTRAINT `fk_ticket_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`), + CONSTRAINT `fk_ticket_fk_user_author` FOREIGN KEY (`fk_user_author`) REFERENCES `llx_user` (`rowid`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_pos_ticket` +-- + +LOCK TABLES `llx_pos_ticket` WRITE; +/*!40000 ALTER TABLE `llx_pos_ticket` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_pos_ticket` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_pos_ticketdet` +-- + +DROP TABLE IF EXISTS `llx_pos_ticketdet`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_pos_ticketdet` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_ticket` int(11) NOT NULL, + `fk_parent_line` int(11) DEFAULT NULL, + `fk_product` int(11) DEFAULT NULL, + `description` text, + `tva_tx` double(6,3) DEFAULT NULL, + `localtax1_tx` double(6,3) DEFAULT '0.000', + `localtax2_tx` double(6,3) DEFAULT '0.000', + `qty` double DEFAULT NULL, + `remise_percent` double DEFAULT '0', + `remise` double DEFAULT '0', + `fk_remise_except` int(11) DEFAULT NULL, + `subprice` double(24,8) DEFAULT NULL, + `price` double(24,8) DEFAULT NULL, + `total_ht` double(24,8) DEFAULT NULL, + `total_tva` double(24,8) DEFAULT NULL, + `total_localtax1` double(24,8) DEFAULT '0.00000000', + `total_localtax2` double(24,8) DEFAULT '0.00000000', + `total_ttc` double(24,8) DEFAULT NULL, + `product_type` int(11) DEFAULT '0', + `date_start` datetime DEFAULT NULL, + `date_end` datetime DEFAULT NULL, + `info_bits` int(11) DEFAULT '0', + `fk_code_ventilation` int(11) NOT NULL DEFAULT '0', + `fk_export_compta` int(11) NOT NULL DEFAULT '0', + `rang` int(11) DEFAULT '0', + `import_key` varchar(14) DEFAULT NULL, + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_fk_remise_except` (`fk_remise_except`,`fk_ticket`), + KEY `idx_ticketdet_fk_ticket` (`fk_ticket`), + KEY `idx_ticketdet_fk_product` (`fk_product`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_pos_ticketdet` +-- + +LOCK TABLES `llx_pos_ticketdet` WRITE; +/*!40000 ALTER TABLE `llx_pos_ticketdet` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_pos_ticketdet` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_prelevement_bons` +-- + +DROP TABLE IF EXISTS `llx_prelevement_bons`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_prelevement_bons` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `ref` varchar(12) DEFAULT NULL, + `entity` int(11) NOT NULL DEFAULT '1', + `datec` datetime DEFAULT NULL, + `amount` double DEFAULT '0', + `statut` smallint(6) DEFAULT '0', + `credite` smallint(6) DEFAULT '0', + `note` text, + `date_trans` datetime DEFAULT NULL, + `method_trans` smallint(6) DEFAULT NULL, + `fk_user_trans` int(11) DEFAULT NULL, + `date_credit` datetime DEFAULT NULL, + `fk_user_credit` int(11) DEFAULT NULL, + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_prelevement_bons_ref` (`ref`,`entity`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_prelevement_bons` +-- + +LOCK TABLES `llx_prelevement_bons` WRITE; +/*!40000 ALTER TABLE `llx_prelevement_bons` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_prelevement_bons` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_prelevement_facture` +-- + +DROP TABLE IF EXISTS `llx_prelevement_facture`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_prelevement_facture` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_facture` int(11) NOT NULL, + `fk_prelevement_lignes` int(11) NOT NULL, + PRIMARY KEY (`rowid`), + KEY `idx_prelevement_facture_fk_prelevement_lignes` (`fk_prelevement_lignes`), + CONSTRAINT `fk_prelevement_facture_fk_prelevement_lignes` FOREIGN KEY (`fk_prelevement_lignes`) REFERENCES `llx_prelevement_lignes` (`rowid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_prelevement_facture` +-- + +LOCK TABLES `llx_prelevement_facture` WRITE; +/*!40000 ALTER TABLE `llx_prelevement_facture` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_prelevement_facture` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_prelevement_facture_demande` +-- + +DROP TABLE IF EXISTS `llx_prelevement_facture_demande`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_prelevement_facture_demande` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_facture` int(11) NOT NULL, + `amount` double NOT NULL, + `date_demande` datetime NOT NULL, + `traite` smallint(6) DEFAULT '0', + `date_traite` datetime DEFAULT NULL, + `fk_prelevement_bons` int(11) DEFAULT NULL, + `fk_user_demande` int(11) NOT NULL, + `code_banque` varchar(7) DEFAULT NULL, + `code_guichet` varchar(6) DEFAULT NULL, + `number` varchar(255) DEFAULT NULL, + `cle_rib` varchar(5) DEFAULT NULL, + PRIMARY KEY (`rowid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_prelevement_facture_demande` +-- + +LOCK TABLES `llx_prelevement_facture_demande` WRITE; +/*!40000 ALTER TABLE `llx_prelevement_facture_demande` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_prelevement_facture_demande` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_prelevement_lignes` +-- + +DROP TABLE IF EXISTS `llx_prelevement_lignes`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_prelevement_lignes` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_prelevement_bons` int(11) DEFAULT NULL, + `fk_soc` int(11) NOT NULL, + `statut` smallint(6) DEFAULT '0', + `client_nom` varchar(255) DEFAULT NULL, + `amount` double DEFAULT '0', + `code_banque` varchar(7) DEFAULT NULL, + `code_guichet` varchar(6) DEFAULT NULL, + `number` varchar(255) DEFAULT NULL, + `cle_rib` varchar(5) DEFAULT NULL, + `note` text, + PRIMARY KEY (`rowid`), + KEY `idx_prelevement_lignes_fk_prelevement_bons` (`fk_prelevement_bons`), + CONSTRAINT `fk_prelevement_lignes_fk_prelevement_bons` FOREIGN KEY (`fk_prelevement_bons`) REFERENCES `llx_prelevement_bons` (`rowid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_prelevement_lignes` +-- + +LOCK TABLES `llx_prelevement_lignes` WRITE; +/*!40000 ALTER TABLE `llx_prelevement_lignes` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_prelevement_lignes` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_prelevement_rejet` +-- + +DROP TABLE IF EXISTS `llx_prelevement_rejet`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_prelevement_rejet` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_prelevement_lignes` int(11) DEFAULT NULL, + `date_rejet` datetime DEFAULT NULL, + `motif` int(11) DEFAULT NULL, + `date_creation` datetime DEFAULT NULL, + `fk_user_creation` int(11) DEFAULT NULL, + `note` text, + `afacturer` tinyint(4) DEFAULT '0', + `fk_facture` int(11) DEFAULT NULL, + PRIMARY KEY (`rowid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_prelevement_rejet` +-- + +LOCK TABLES `llx_prelevement_rejet` WRITE; +/*!40000 ALTER TABLE `llx_prelevement_rejet` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_prelevement_rejet` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_product` +-- + +DROP TABLE IF EXISTS `llx_product`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_product` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `datec` datetime DEFAULT NULL, + `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `virtual` tinyint(4) NOT NULL DEFAULT '0', + `fk_parent` int(11) DEFAULT '0', + `ref` varchar(128) NOT NULL, + `entity` int(11) NOT NULL DEFAULT '1', + `ref_ext` varchar(128) DEFAULT NULL, + `label` varchar(255) NOT NULL, + `description` text, + `note` text, + `customcode` varchar(32) DEFAULT NULL, + `fk_country` int(11) DEFAULT NULL, + `price` double(24,8) DEFAULT '0.00000000', + `price_ttc` double(24,8) DEFAULT '0.00000000', + `price_min` double(24,8) DEFAULT '0.00000000', + `price_min_ttc` double(24,8) DEFAULT '0.00000000', + `price_base_type` varchar(3) DEFAULT 'HT', + `tva_tx` double(6,3) DEFAULT NULL, + `recuperableonly` int(11) NOT NULL DEFAULT '0', + `localtax1_tx` double(6,3) DEFAULT '0.000', + `localtax2_tx` double(6,3) DEFAULT '0.000', + `fk_user_author` int(11) DEFAULT NULL, + `tosell` tinyint(4) DEFAULT '1', + `tobuy` tinyint(4) DEFAULT '1', + `fk_product_type` int(11) DEFAULT '0', + `duration` varchar(6) DEFAULT NULL, + `seuil_stock_alerte` int(11) DEFAULT '0', + `barcode` varchar(255) DEFAULT NULL, + `fk_barcode_type` int(11) DEFAULT '0', + `accountancy_code_sell` varchar(15) DEFAULT NULL, + `accountancy_code_buy` varchar(15) DEFAULT NULL, + `partnumber` varchar(32) DEFAULT NULL, + `weight` float DEFAULT NULL, + `weight_units` tinyint(4) DEFAULT NULL, + `length` float DEFAULT NULL, + `length_units` tinyint(4) DEFAULT NULL, + `surface` float DEFAULT NULL, + `surface_units` tinyint(4) DEFAULT NULL, + `volume` float DEFAULT NULL, + `volume_units` tinyint(4) DEFAULT NULL, + `stock` int(11) DEFAULT NULL, + `pmp` double(24,8) NOT NULL DEFAULT '0.00000000', + `canvas` varchar(32) DEFAULT 'default@product', + `finished` tinyint(4) DEFAULT NULL, + `hidden` tinyint(4) DEFAULT '0', + `import_key` varchar(14) DEFAULT NULL, + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_product_ref` (`ref`,`entity`), + KEY `idx_product_label` (`label`), + KEY `idx_product_barcode` (`barcode`), + KEY `idx_product_import_key` (`import_key`) +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_product` +-- + +LOCK TABLES `llx_product` WRITE; +/*!40000 ALTER TABLE `llx_product` DISABLE KEYS */; +INSERT INTO `llx_product` VALUES (1,'2010-07-08 14:33:17','2013-03-12 09:30:24',0,0,'PIDRESS',1,NULL,'Pink dress','A beatifull pink dress','',NULL,NULL,100.00000000,112.50000000,90.00000000,101.25000000,'HT',12.500,0,0.000,0.000,1,1,1,0,'',20,NULL,0,'','',NULL,100,0,NULL,0,NULL,0,NULL,0,2,0.00000000,NULL,1,0,NULL),(2,'2010-07-09 00:30:01','2013-01-19 17:31:58',0,0,'Product_P1',1,NULL,'Product P1','','','',32,0.00000000,0.00000000,0.00000000,0.00000000,'HT',12.500,0,0.000,0.000,1,1,1,0,'',NULL,NULL,0,'','',NULL,NULL,0,NULL,0,NULL,0,NULL,0,998,0.00000000,NULL,0,0,NULL),(3,'2010-07-09 00:30:25','2012-12-08 13:11:14',0,0,'Service_S1',1,NULL,'Service S1','','',NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,'HT',12.500,0,0.000,0.000,1,1,1,1,'1m',NULL,NULL,0,'','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,NULL,0,0,NULL),(4,'2010-07-10 14:44:06','2013-01-19 17:22:48',0,0,'DECAP',1,NULL,'Decapsuleur','','',NULL,NULL,5.00000000,5.62500000,0.00000000,0.00000000,'HT',12.500,0,0.000,0.000,1,1,1,0,'',NULL,NULL,0,'','',NULL,2,-3,NULL,0,NULL,0,NULL,0,1001,10.00000000,NULL,1,0,NULL),(5,'2011-07-20 23:11:38','2011-07-27 17:02:59',0,0,'aaaa',1,NULL,'aaaa','cccc','bbbb','',NULL,10.00000000,11.96000000,0.00000000,0.00000000,'HT',19.600,0,0.000,0.000,1,1,1,0,'',NULL,NULL,0,'','',NULL,NULL,0,NULL,0,NULL,0,NULL,0,NULL,0.00000000,'',1,0,NULL),(6,'2011-07-29 22:16:44','2011-07-29 20:16:44',0,0,'Copy_of_aaaa',1,NULL,'aaaa','cccc','bbbb','',NULL,10.00000000,11.96000000,0.00000000,0.00000000,'HT',19.600,0,0.000,0.000,1,0,1,0,'',NULL,NULL,0,'','',NULL,NULL,0,NULL,0,NULL,0,NULL,0,NULL,0.00000000,'',1,0,NULL),(7,'2011-07-29 22:31:21','2011-07-29 20:31:21',0,0,'Copy_of_Copy_of_aaaa',1,NULL,'aaaa','cccc','bbbb','',NULL,10.00000000,11.96000000,0.00000000,0.00000000,'HT',19.600,0,0.000,0.000,1,0,0,0,'',NULL,NULL,0,'','',NULL,NULL,0,NULL,0,NULL,0,NULL,0,NULL,0.00000000,'',1,0,NULL),(8,'2011-07-29 22:46:54','2011-07-29 20:46:54',0,0,'Copy_of_Copy_of_Copy_of_aaaa',1,NULL,'aaaa','cccc','bbbb','',NULL,10.00000000,11.96000000,0.00000000,0.00000000,'HT',19.600,0,0.000,0.000,1,0,0,0,'',NULL,NULL,0,'','',NULL,NULL,0,NULL,0,NULL,0,NULL,0,NULL,0.00000000,'',1,0,NULL),(10,'2008-12-31 00:00:00','2012-12-08 13:11:14',0,0,'PR123456',1,NULL,'My product','This is a description example for record','Some note',NULL,NULL,100.00000000,110.00000000,0.00000000,0.00000000,'HT',10.000,0,0.000,0.000,NULL,0,0,0,'1y',0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,NULL,NULL,0,'20110729232310'),(11,'2013-01-13 20:24:42','2013-01-19 17:22:48',0,0,'gh',1,NULL,'hfghf','','','',NULL,0.00000000,0.00000000,0.00000000,0.00000000,'HT',0.000,0,0.000,0.000,1,1,1,0,'',NULL,NULL,0,'','',NULL,NULL,0,NULL,0,NULL,0,NULL,0,-1,0.00000000,'',1,0,NULL); +/*!40000 ALTER TABLE `llx_product` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_product_association` +-- + +DROP TABLE IF EXISTS `llx_product_association`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_product_association` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_product_pere` int(11) NOT NULL DEFAULT '0', + `fk_product_fils` int(11) NOT NULL DEFAULT '0', + `qty` double DEFAULT NULL, + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_product_association` (`fk_product_pere`,`fk_product_fils`), + KEY `idx_product_association` (`fk_product_fils`), + KEY `idx_product_association_fils` (`fk_product_fils`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_product_association` +-- + +LOCK TABLES `llx_product_association` WRITE; +/*!40000 ALTER TABLE `llx_product_association` DISABLE KEYS */; +INSERT INTO `llx_product_association` VALUES (1,4,1,2),(2,5,1,1); +/*!40000 ALTER TABLE `llx_product_association` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_product_extrafields` +-- + +DROP TABLE IF EXISTS `llx_product_extrafields`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_product_extrafields` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `fk_object` int(11) NOT NULL, + `import_key` varchar(14) DEFAULT NULL, + PRIMARY KEY (`rowid`), + KEY `idx_product_extrafields` (`fk_object`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_product_extrafields` +-- + +LOCK TABLES `llx_product_extrafields` WRITE; +/*!40000 ALTER TABLE `llx_product_extrafields` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_product_extrafields` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_product_fournisseur_price` +-- + +DROP TABLE IF EXISTS `llx_product_fournisseur_price`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_product_fournisseur_price` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `datec` datetime DEFAULT NULL, + `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `fk_product` int(11) DEFAULT NULL, + `fk_soc` int(11) DEFAULT NULL, + `ref_fourn` varchar(30) DEFAULT NULL, + `fk_availability` int(11) DEFAULT NULL, + `price` double(24,8) DEFAULT '0.00000000', + `quantity` double DEFAULT NULL, + `remise_percent` double NOT NULL DEFAULT '0', + `remise` double NOT NULL DEFAULT '0', + `unitprice` double(24,8) DEFAULT '0.00000000', + `charges` double(24,8) DEFAULT '0.00000000', + `unitcharges` double(24,8) DEFAULT '0.00000000', + `tva_tx` double(6,3) NOT NULL DEFAULT '0.000', + `fk_user` int(11) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `entity` int(11) NOT NULL DEFAULT '1', + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_product_fournisseur_price_ref` (`ref_fourn`,`fk_soc`,`quantity`,`entity`), + KEY `idx_product_fournisseur_price_fk_user` (`fk_user`), + KEY `idx_product_fourn_price_fk_product` (`fk_product`,`entity`), + KEY `idx_product_fourn_price_fk_soc` (`fk_soc`,`entity`), + CONSTRAINT `fk_product_fournisseur_price_fk_product` FOREIGN KEY (`fk_product`) REFERENCES `llx_product` (`rowid`), + CONSTRAINT `fk_product_fournisseur_price_fk_user` FOREIGN KEY (`fk_user`) REFERENCES `llx_user` (`rowid`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_product_fournisseur_price` +-- + +LOCK TABLES `llx_product_fournisseur_price` WRITE; +/*!40000 ALTER TABLE `llx_product_fournisseur_price` DISABLE KEYS */; +INSERT INTO `llx_product_fournisseur_price` VALUES (1,'2010-07-11 18:45:42','2012-12-08 13:11:08',4,1,'ABCD',NULL,10.00000000,1,0,0,10.00000000,0.00000000,0.00000000,0.000,1,NULL,1); +/*!40000 ALTER TABLE `llx_product_fournisseur_price` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_product_fournisseur_price_log` +-- + +DROP TABLE IF EXISTS `llx_product_fournisseur_price_log`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_product_fournisseur_price_log` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `datec` datetime DEFAULT NULL, + `fk_product_fournisseur` int(11) NOT NULL, + `price` double(24,8) DEFAULT '0.00000000', + `quantity` double DEFAULT NULL, + `fk_user` int(11) DEFAULT NULL, + PRIMARY KEY (`rowid`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_product_fournisseur_price_log` +-- + +LOCK TABLES `llx_product_fournisseur_price_log` WRITE; +/*!40000 ALTER TABLE `llx_product_fournisseur_price_log` DISABLE KEYS */; +INSERT INTO `llx_product_fournisseur_price_log` VALUES (1,'2010-07-11 18:45:42',1,10.00000000,1,1); +/*!40000 ALTER TABLE `llx_product_fournisseur_price_log` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_product_lang` +-- + +DROP TABLE IF EXISTS `llx_product_lang`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_product_lang` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_product` int(11) NOT NULL DEFAULT '0', + `lang` varchar(5) NOT NULL DEFAULT '0', + `label` varchar(255) NOT NULL, + `description` text, + `note` text, + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_product_lang` (`fk_product`,`lang`), + CONSTRAINT `fk_product_lang_fk_product` FOREIGN KEY (`fk_product`) REFERENCES `llx_product` (`rowid`) +) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_product_lang` +-- + +LOCK TABLES `llx_product_lang` WRITE; +/*!40000 ALTER TABLE `llx_product_lang` DISABLE KEYS */; +INSERT INTO `llx_product_lang` VALUES (1,1,'en_US','Pink dress','A beatifull pink dress',''),(2,2,'en_US','Product P1','',''),(3,3,'en_US','Service S1','',''),(4,4,'fr_FR','Decapsuleur','',''),(5,5,'en_US','aaaa','cccc','bbbb'),(6,6,'en_US','aaaa','cccc','bbbb'),(7,7,'en_US','aaaa','cccc','bbbb'),(8,8,'en_US','aaaa','cccc','bbbb'),(9,11,'fr_FR','hfghf','',''),(10,2,'fr_FR','Product P1','',''); +/*!40000 ALTER TABLE `llx_product_lang` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_product_price` +-- + +DROP TABLE IF EXISTS `llx_product_price`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_product_price` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `entity` int(11) NOT NULL DEFAULT '1', + `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `fk_product` int(11) NOT NULL, + `date_price` datetime NOT NULL, + `price_level` smallint(6) DEFAULT '1', + `price` double(24,8) DEFAULT NULL, + `price_ttc` double(24,8) DEFAULT NULL, + `price_min` double(24,8) DEFAULT NULL, + `price_min_ttc` double(24,8) DEFAULT NULL, + `price_base_type` varchar(3) DEFAULT 'HT', + `tva_tx` double(6,3) NOT NULL, + `recuperableonly` int(11) NOT NULL DEFAULT '0', + `localtax1_tx` double(6,3) DEFAULT '0.000', + `localtax2_tx` double(6,3) DEFAULT '0.000', + `fk_user_author` int(11) DEFAULT NULL, + `tosell` tinyint(4) DEFAULT '1', + `price_by_qty` int(11) NOT NULL DEFAULT '0', + PRIMARY KEY (`rowid`) +) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_product_price` +-- + +LOCK TABLES `llx_product_price` WRITE; +/*!40000 ALTER TABLE `llx_product_price` DISABLE KEYS */; +INSERT INTO `llx_product_price` VALUES (1,1,'2010-07-08 12:33:17',1,'2010-07-08 14:33:17',1,0.00000000,0.00000000,0.00000000,0.00000000,'HT',12.500,0,0.000,0.000,1,1,0),(2,1,'2010-07-08 22:30:01',2,'2010-07-09 00:30:01',1,0.00000000,0.00000000,0.00000000,0.00000000,'HT',12.500,0,0.000,0.000,1,1,0),(3,1,'2010-07-08 22:30:25',3,'2010-07-09 00:30:25',1,0.00000000,0.00000000,0.00000000,0.00000000,'HT',12.500,0,0.000,0.000,1,1,0),(4,1,'2010-07-10 12:44:06',4,'2010-07-10 14:44:06',1,0.00000000,0.00000000,0.00000000,0.00000000,'HT',12.500,0,0.000,0.000,1,1,0),(5,1,'2011-07-20 21:11:38',5,'2011-07-20 23:11:38',1,0.00000000,0.00000000,0.00000000,0.00000000,'HT',19.600,0,0.000,0.000,1,1,0),(6,1,'2011-07-27 17:02:59',5,'2011-07-27 19:02:59',1,10.00000000,11.96000000,0.00000000,0.00000000,'HT',19.600,0,0.000,0.000,1,1,0),(7,1,'2011-07-29 20:16:44',6,'2011-07-29 22:16:44',1,10.00000000,11.96000000,0.00000000,0.00000000,'HT',19.600,0,0.000,0.000,1,0,0),(8,1,'2011-07-29 20:31:21',7,'2011-07-29 22:31:21',1,10.00000000,11.96000000,0.00000000,0.00000000,'HT',19.600,0,0.000,0.000,1,0,0),(9,1,'2011-07-29 20:46:54',8,'2011-07-29 22:46:54',1,10.00000000,11.96000000,0.00000000,0.00000000,'HT',19.600,0,0.000,0.000,1,0,0),(10,1,'2011-07-31 22:34:27',4,'2011-08-01 00:34:27',1,5.00000000,5.62500000,0.00000000,0.00000000,'HT',12.500,0,0.000,0.000,1,1,0),(12,1,'2013-01-13 19:24:59',11,'2013-01-13 20:24:59',1,0.00000000,0.00000000,0.00000000,0.00000000,'HT',0.000,0,0.000,0.000,1,1,0),(13,1,'2013-03-12 09:30:24',1,'2013-03-12 10:30:24',1,100.00000000,112.50000000,90.00000000,101.25000000,'HT',12.500,0,0.000,0.000,1,1,0); +/*!40000 ALTER TABLE `llx_product_price` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_product_price_by_qty` +-- + +DROP TABLE IF EXISTS `llx_product_price_by_qty`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_product_price_by_qty` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_product_price` int(11) NOT NULL, + `date_price` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `price` double(24,8) DEFAULT '0.00000000', + `price_ttc` double(24,8) DEFAULT '0.00000000', + `remise_percent` double NOT NULL DEFAULT '0', + `remise` double NOT NULL DEFAULT '0', + `qty_min` double DEFAULT '0', + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_product_price_by_qty_level` (`fk_product_price`,`qty_min`), + KEY `idx_product_price_by_qty_fk_product_price` (`fk_product_price`), + CONSTRAINT `fk_product_price_by_qty_fk_product_price` FOREIGN KEY (`fk_product_price`) REFERENCES `llx_product_price` (`rowid`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_product_price_by_qty` +-- + +LOCK TABLES `llx_product_price_by_qty` WRITE; +/*!40000 ALTER TABLE `llx_product_price_by_qty` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_product_price_by_qty` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_product_stock` +-- + +DROP TABLE IF EXISTS `llx_product_stock`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_product_stock` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `fk_product` int(11) NOT NULL, + `fk_entrepot` int(11) NOT NULL, + `reel` double DEFAULT NULL, + `pmp` double(24,8) NOT NULL DEFAULT '0.00000000', + `import_key` varchar(14) DEFAULT NULL, + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_product_stock` (`fk_product`,`fk_entrepot`), + KEY `idx_product_stock_fk_product` (`fk_product`), + KEY `idx_product_stock_fk_entrepot` (`fk_entrepot`) +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_product_stock` +-- + +LOCK TABLES `llx_product_stock` WRITE; +/*!40000 ALTER TABLE `llx_product_stock` DISABLE KEYS */; +INSERT INTO `llx_product_stock` VALUES (1,'2010-07-08 22:43:51',2,2,1000,0.00000000,NULL),(3,'2010-07-10 23:02:20',4,2,1000,0.00000000,NULL),(4,'2013-01-19 17:22:48',4,1,1,10.00000000,NULL),(5,'2013-01-19 17:22:48',1,1,2,0.00000000,NULL),(6,'2013-01-19 17:22:48',11,1,-1,0.00000000,NULL),(7,'2013-01-19 17:31:58',2,1,-2,0.00000000,NULL); +/*!40000 ALTER TABLE `llx_product_stock` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_product_subproduct` +-- + +DROP TABLE IF EXISTS `llx_product_subproduct`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_product_subproduct` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_product` int(11) NOT NULL, + `fk_product_subproduct` int(11) NOT NULL, + PRIMARY KEY (`rowid`), + UNIQUE KEY `fk_product` (`fk_product`,`fk_product_subproduct`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_product_subproduct` +-- + +LOCK TABLES `llx_product_subproduct` WRITE; +/*!40000 ALTER TABLE `llx_product_subproduct` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_product_subproduct` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_projet` +-- + +DROP TABLE IF EXISTS `llx_projet`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_projet` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_soc` int(11) DEFAULT NULL, + `datec` date DEFAULT NULL, + `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `dateo` date DEFAULT NULL, + `datee` date DEFAULT NULL, + `ref` varchar(50) DEFAULT NULL, + `entity` int(11) NOT NULL DEFAULT '1', + `title` varchar(255) NOT NULL, + `description` text, + `fk_user_creat` int(11) NOT NULL, + `public` int(11) DEFAULT NULL, + `fk_statut` smallint(6) NOT NULL DEFAULT '0', + `note_private` text, + `note_public` text, + `model_pdf` varchar(255) DEFAULT NULL, + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_projet_ref` (`ref`,`entity`), + KEY `idx_projet_fk_soc` (`fk_soc`), + CONSTRAINT `fk_projet_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`) +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_projet` +-- + +LOCK TABLES `llx_projet` WRITE; +/*!40000 ALTER TABLE `llx_projet` DISABLE KEYS */; +INSERT INTO `llx_projet` VALUES (1,NULL,'2010-07-09','2010-07-11 13:28:28','2010-07-09',NULL,'PROJ1',1,'Project One','',1,0,1,NULL,NULL,'baleine'),(2,NULL,'2010-07-09','2010-07-08 22:49:56','2010-07-09',NULL,'PROJ2',1,'Project Two','',1,0,0,NULL,NULL,NULL),(3,1,'2010-07-09','2010-07-08 22:50:19','2010-07-09',NULL,'PROJABC',1,'Project to create ABC company','',1,0,0,NULL,NULL,NULL),(4,NULL,'2010-07-09','2010-07-08 22:50:49','2010-07-09',NULL,'PROJSHARED',1,'The Global project','',1,1,1,NULL,NULL,NULL),(5,NULL,'2010-07-11','2010-07-11 14:22:49','2010-07-11','2011-07-14','RMLL',1,'Projet gestion RMLL 2011','',1,1,1,NULL,NULL,NULL); +/*!40000 ALTER TABLE `llx_projet` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_projet_task` +-- + +DROP TABLE IF EXISTS `llx_projet_task`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_projet_task` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_projet` int(11) NOT NULL, + `fk_task_parent` int(11) NOT NULL DEFAULT '0', + `datec` datetime DEFAULT NULL, + `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `dateo` datetime DEFAULT NULL, + `datee` datetime DEFAULT NULL, + `datev` datetime DEFAULT NULL, + `label` varchar(255) NOT NULL, + `description` text, + `duration_effective` double NOT NULL DEFAULT '0', + `progress` int(11) DEFAULT '0', + `priority` int(11) DEFAULT '0', + `fk_user_creat` int(11) DEFAULT NULL, + `fk_user_valid` int(11) DEFAULT NULL, + `fk_statut` smallint(6) NOT NULL DEFAULT '0', + `note_private` text, + `note_public` text, + `rang` int(11) DEFAULT '0', + PRIMARY KEY (`rowid`), + KEY `idx_projet_task_fk_projet` (`fk_projet`), + KEY `idx_projet_task_fk_user_creat` (`fk_user_creat`), + KEY `idx_projet_task_fk_user_valid` (`fk_user_valid`), + CONSTRAINT `fk_projet_task_fk_projet` FOREIGN KEY (`fk_projet`) REFERENCES `llx_projet` (`rowid`), + CONSTRAINT `fk_projet_task_fk_user_creat` FOREIGN KEY (`fk_user_creat`) REFERENCES `llx_user` (`rowid`), + CONSTRAINT `fk_projet_task_fk_user_valid` FOREIGN KEY (`fk_user_valid`) REFERENCES `llx_user` (`rowid`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_projet_task` +-- + +LOCK TABLES `llx_projet_task` WRITE; +/*!40000 ALTER TABLE `llx_projet_task` DISABLE KEYS */; +INSERT INTO `llx_projet_task` VALUES (1,1,0,'2010-07-11 15:15:55','2011-02-06 11:20:20','2010-07-11 12:00:00',NULL,NULL,'Work on module','',25920000,0,0,1,NULL,0,NULL,NULL,0),(2,5,0,'2010-07-11 16:23:53','2010-07-11 14:25:39','2010-07-11 12:00:00','2011-07-14 12:00:00',NULL,'Heberger site RMLL','',0,0,0,1,NULL,0,NULL,NULL,0); +/*!40000 ALTER TABLE `llx_projet_task` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_projet_task_time` +-- + +DROP TABLE IF EXISTS `llx_projet_task_time`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_projet_task_time` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_task` int(11) NOT NULL, + `task_date` date DEFAULT NULL, + `task_duration` double DEFAULT NULL, + `fk_user` int(11) DEFAULT NULL, + `note` text, + PRIMARY KEY (`rowid`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_projet_task_time` +-- + +LOCK TABLES `llx_projet_task_time` WRITE; +/*!40000 ALTER TABLE `llx_projet_task_time` DISABLE KEYS */; +INSERT INTO `llx_projet_task_time` VALUES (1,1,'2010-07-11',25920000,1,''); +/*!40000 ALTER TABLE `llx_projet_task_time` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_propal` +-- + +DROP TABLE IF EXISTS `llx_propal`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_propal` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_soc` int(11) DEFAULT NULL, + `fk_projet` int(11) DEFAULT NULL, + `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `ref` varchar(30) NOT NULL, + `entity` int(11) NOT NULL DEFAULT '1', + `ref_ext` varchar(255) DEFAULT NULL, + `ref_int` varchar(255) DEFAULT NULL, + `ref_client` varchar(255) DEFAULT NULL, + `datec` datetime DEFAULT NULL, + `datep` date DEFAULT NULL, + `fin_validite` datetime DEFAULT NULL, + `date_valid` datetime DEFAULT NULL, + `date_cloture` datetime DEFAULT NULL, + `fk_user_author` int(11) DEFAULT NULL, + `fk_user_valid` int(11) DEFAULT NULL, + `fk_user_cloture` int(11) DEFAULT NULL, + `fk_statut` smallint(6) NOT NULL DEFAULT '0', + `price` double DEFAULT '0', + `remise_percent` double DEFAULT '0', + `remise_absolue` double DEFAULT '0', + `remise` double DEFAULT '0', + `total_ht` double(24,8) DEFAULT '0.00000000', + `tva` double(24,8) DEFAULT '0.00000000', + `localtax1` double(24,8) DEFAULT '0.00000000', + `localtax2` double(24,8) DEFAULT '0.00000000', + `total` double(24,8) DEFAULT '0.00000000', + `fk_account` int(11) DEFAULT NULL, + `fk_currency` varchar(2) DEFAULT NULL, + `fk_cond_reglement` int(11) DEFAULT NULL, + `fk_mode_reglement` int(11) DEFAULT NULL, + `note` text, + `note_public` text, + `model_pdf` varchar(255) DEFAULT NULL, + `date_livraison` date DEFAULT NULL, + `fk_availability` int(11) DEFAULT NULL, + `fk_delivery_address` int(11) DEFAULT NULL, + `fk_input_reason` int(11) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `extraparams` varchar(255) DEFAULT NULL, + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_propal_ref` (`ref`,`entity`), + KEY `idx_propal_fk_soc` (`fk_soc`), + KEY `idx_propal_fk_user_author` (`fk_user_author`), + KEY `idx_propal_fk_user_valid` (`fk_user_valid`), + KEY `idx_propal_fk_user_cloture` (`fk_user_cloture`), + KEY `idx_propal_fk_projet` (`fk_projet`), + KEY `idx_propal_fk_account` (`fk_account`), + KEY `idx_propal_fk_currency` (`fk_currency`), + CONSTRAINT `fk_propal_fk_projet` FOREIGN KEY (`fk_projet`) REFERENCES `llx_projet` (`rowid`), + CONSTRAINT `fk_propal_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`), + CONSTRAINT `fk_propal_fk_user_author` FOREIGN KEY (`fk_user_author`) REFERENCES `llx_user` (`rowid`), + CONSTRAINT `fk_propal_fk_user_cloture` FOREIGN KEY (`fk_user_cloture`) REFERENCES `llx_user` (`rowid`), + CONSTRAINT `fk_propal_fk_user_valid` FOREIGN KEY (`fk_user_valid`) REFERENCES `llx_user` (`rowid`) +) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_propal` +-- + +LOCK TABLES `llx_propal` WRITE; +/*!40000 ALTER TABLE `llx_propal` DISABLE KEYS */; +INSERT INTO `llx_propal` VALUES (1,2,NULL,'2012-12-08 13:11:07','PR1007-0001',1,NULL,NULL,'','2010-07-09 01:33:49','2010-07-09','2010-07-24 12:00:00','2011-08-08 14:24:18',NULL,1,1,NULL,1,0,NULL,NULL,0,30.00000000,3.84000000,0.00000000,0.00000000,33.84000000,NULL,NULL,1,0,'','','azur',NULL,NULL,NULL,0,NULL,NULL),(2,1,NULL,'2012-12-08 13:11:07','PR1007-0002',1,NULL,NULL,'','2010-07-10 02:11:44','2010-07-10','2010-07-25 12:00:00','2010-07-10 02:12:55','2011-07-20 15:23:12',1,1,1,2,0,NULL,NULL,0,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,NULL,NULL,1,1,'','','azur',NULL,NULL,NULL,0,NULL,NULL),(3,4,NULL,'2012-12-08 13:11:07','PR1007-0003',1,NULL,NULL,'','2010-07-18 11:35:11','2010-07-18','2010-08-02 12:00:00','2010-07-18 11:36:18','2011-07-20 15:21:15',1,1,1,2,0,NULL,NULL,0,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,NULL,NULL,1,0,'','','azur',NULL,NULL,NULL,0,NULL,NULL),(4,17,NULL,'2012-12-08 13:11:07','PR1108-0004',1,NULL,NULL,'','2011-08-04 23:36:23','2011-08-05','2011-08-20 12:00:00','2011-08-08 14:24:24',NULL,1,1,NULL,1,0,NULL,NULL,0,30.00000000,5.88000000,0.00000000,0.00000000,35.88000000,NULL,NULL,1,0,'','','azur',NULL,0,NULL,0,NULL,NULL),(5,19,NULL,'2013-02-17 14:39:56','PR1302-0005',1,NULL,NULL,'','2013-02-17 15:39:56','2013-02-17','2013-03-04 12:00:00',NULL,NULL,1,NULL,NULL,0,0,NULL,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,1,0,'','','azur',NULL,0,NULL,0,NULL,NULL),(6,19,NULL,'2013-02-17 14:40:12','PR1302-0006',1,NULL,NULL,'','2013-02-17 15:40:12','2013-02-17','2013-03-04 12:00:00',NULL,NULL,1,NULL,NULL,0,0,NULL,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,1,0,'','','azur',NULL,0,NULL,0,NULL,NULL),(7,19,NULL,'2013-02-17 14:41:15','PR1302-0007',1,NULL,NULL,'','2013-02-17 15:41:15','2013-02-17','2013-03-04 12:00:00',NULL,NULL,1,NULL,NULL,0,0,NULL,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,1,0,'','','azur',NULL,0,NULL,0,NULL,NULL),(8,19,NULL,'2013-02-17 14:43:39','PR1302-0008',1,NULL,NULL,'','2013-02-17 15:43:39','2013-02-17','2013-03-04 12:00:00',NULL,NULL,1,NULL,NULL,0,0,NULL,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,1,0,'','','azur',NULL,0,NULL,0,NULL,NULL),(9,19,NULL,'2013-02-17 15:22:14','PR1302-0009',1,NULL,NULL,'','2013-02-17 15:53:01','2013-02-17','2013-03-04 12:00:00','2013-02-17 16:22:10','2013-02-17 16:22:14',1,1,1,2,0,NULL,NULL,0,60.00000000,11.76000000,0.00000000,0.00000000,71.76000000,NULL,NULL,1,0,'','','azur',NULL,0,NULL,0,NULL,NULL),(11,18,NULL,'2013-02-17 15:28:22','PR1302-0010',1,NULL,NULL,'gfdf','2013-02-17 16:27:18','2013-02-17','2013-03-04 12:00:00','2013-02-17 16:27:29','2013-02-17 16:28:22',1,1,1,2,0,NULL,NULL,0,10.00000000,1.96000000,0.00000000,0.00000000,11.96000000,NULL,NULL,1,0,'','','azur',NULL,0,NULL,0,NULL,NULL),(12,23,NULL,'2013-03-08 09:02:31','PR1303-0011',1,NULL,NULL,'fdfs','2013-03-08 10:00:23','2013-03-08','2013-03-23 12:00:00','2013-03-08 10:02:21','2013-03-08 10:02:31',1,1,1,2,0,NULL,NULL,0,5.00000000,0.00000000,0.00000000,0.00000000,5.00000000,NULL,NULL,1,0,'','','azur',NULL,0,NULL,0,NULL,NULL); +/*!40000 ALTER TABLE `llx_propal` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_propal_extrafields` +-- + +DROP TABLE IF EXISTS `llx_propal_extrafields`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_propal_extrafields` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `fk_object` int(11) NOT NULL, + `import_key` varchar(14) DEFAULT NULL, + PRIMARY KEY (`rowid`), + KEY `idx_propal_extrafields` (`fk_object`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_propal_extrafields` +-- + +LOCK TABLES `llx_propal_extrafields` WRITE; +/*!40000 ALTER TABLE `llx_propal_extrafields` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_propal_extrafields` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_propaldet` +-- + +DROP TABLE IF EXISTS `llx_propaldet`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_propaldet` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_propal` int(11) DEFAULT NULL, + `fk_parent_line` int(11) DEFAULT NULL, + `fk_product` int(11) DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, + `description` text, + `fk_remise_except` int(11) DEFAULT NULL, + `tva_tx` double(6,3) DEFAULT '0.000', + `localtax1_tx` double(6,3) DEFAULT '0.000', + `localtax1_type` varchar(10) NOT NULL DEFAULT '0', + `localtax2_tx` double(6,3) DEFAULT '0.000', + `localtax2_type` varchar(10) NOT NULL DEFAULT '0', + `qty` double DEFAULT NULL, + `remise_percent` double DEFAULT '0', + `remise` double DEFAULT '0', + `price` double DEFAULT NULL, + `subprice` double(24,8) DEFAULT '0.00000000', + `total_ht` double(24,8) DEFAULT '0.00000000', + `total_tva` double(24,8) DEFAULT '0.00000000', + `total_localtax1` double(24,8) DEFAULT '0.00000000', + `total_localtax2` double(24,8) DEFAULT '0.00000000', + `total_ttc` double(24,8) DEFAULT '0.00000000', + `product_type` int(11) DEFAULT '0', + `date_start` datetime DEFAULT NULL, + `date_end` datetime DEFAULT NULL, + `info_bits` int(11) DEFAULT '0', + `fk_product_fournisseur_price` int(11) DEFAULT NULL, + `buy_price_ht` double(24,8) DEFAULT '0.00000000', + `special_code` int(10) unsigned DEFAULT '0', + `rang` int(11) DEFAULT '0', + PRIMARY KEY (`rowid`), + KEY `idx_propaldet_fk_propal` (`fk_propal`), + KEY `idx_propaldet_fk_product` (`fk_product`), + CONSTRAINT `fk_propaldet_fk_propal` FOREIGN KEY (`fk_propal`) REFERENCES `llx_propal` (`rowid`) +) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_propaldet` +-- + +LOCK TABLES `llx_propaldet` WRITE; +/*!40000 ALTER TABLE `llx_propaldet` DISABLE KEYS */; +INSERT INTO `llx_propaldet` VALUES (1,1,NULL,NULL,NULL,'Une machine à café',NULL,12.500,0.000,'',0.000,'',1,0,0,NULL,10.00000000,10.00000000,1.25000000,0.00000000,0.00000000,11.25000000,0,NULL,NULL,0,NULL,0.00000000,0,1),(2,2,NULL,NULL,NULL,'Product 1',NULL,0.000,0.000,'',0.000,'',1,0,0,NULL,10.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1),(3,2,NULL,2,NULL,'',NULL,0.000,0.000,'',0.000,'',1,0,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2),(4,3,NULL,NULL,NULL,'A new marvelous product',NULL,0.000,0.000,'',0.000,'',1,0,0,NULL,10.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1),(5,1,NULL,5,NULL,'cccc',NULL,19.600,0.000,'',0.000,'',1,0,0,NULL,10.00000000,10.00000000,1.96000000,0.00000000,0.00000000,11.96000000,0,NULL,NULL,0,NULL,0.00000000,0,2),(11,1,NULL,4,NULL,'',NULL,0.000,0.000,'',0.000,'',1,0,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3),(12,1,NULL,4,NULL,'',NULL,0.000,0.000,'',0.000,'',1,0,0,NULL,5.00000000,5.00000000,0.00000000,0.00000000,0.00000000,5.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4),(13,1,NULL,4,NULL,'',NULL,12.500,0.000,'',0.000,'',1,0,0,NULL,5.00000000,5.00000000,0.63000000,0.00000000,0.00000000,5.63000000,0,NULL,NULL,0,NULL,0.00000000,0,5),(19,4,NULL,NULL,NULL,'bvbcvbcvbcbcbcb',NULL,19.600,0.000,'',0.000,'',1,0,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1),(20,4,NULL,NULL,NULL,'ghjhgjghjgh',NULL,19.600,0.000,'',0.000,'',1,0,0,NULL,10.00000000,10.00000000,1.96000000,0.00000000,0.00000000,11.96000000,0,NULL,NULL,0,NULL,0.00000000,0,2),(21,4,NULL,NULL,NULL,'ghjghjhgjg',NULL,19.600,0.000,'',0.000,'',2,0,0,10,10.00000000,20.00000000,3.92000000,0.00000000,0.00000000,23.92000000,1,NULL,NULL,0,NULL,0.00000000,0,3),(22,9,NULL,NULL,NULL,'gdfg',NULL,19.600,0.000,'',0.000,'',1,0,0,NULL,10.00000000,10.00000000,1.96000000,0.00000000,0.00000000,11.96000000,0,NULL,NULL,0,0,0.00000000,0,1),(23,9,NULL,NULL,NULL,'gfdgd',NULL,19.600,0.000,'',0.000,'',1,0,0,NULL,50.00000000,50.00000000,9.80000000,0.00000000,0.00000000,59.80000000,1,NULL,NULL,0,0,0.00000000,0,2),(24,11,NULL,NULL,NULL,'gfdg',NULL,19.600,0.000,'',0.000,'',1,0,0,NULL,10.00000000,10.00000000,1.96000000,0.00000000,0.00000000,11.96000000,0,NULL,NULL,0,0,0.00000000,0,1),(25,12,NULL,NULL,NULL,'fdsfs',NULL,0.000,0.000,'',0.000,'',1,0,0,NULL,10.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,0,0.00000000,0,1),(26,12,NULL,NULL,NULL,'fsdfsf',NULL,0.000,0.000,'',0.000,'',1,0,0,NULL,-5.00000000,-5.00000000,0.00000000,0.00000000,0.00000000,-5.00000000,0,NULL,NULL,0,0,0.00000000,0,2); +/*!40000 ALTER TABLE `llx_propaldet` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_rights_def` +-- + +DROP TABLE IF EXISTS `llx_rights_def`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_rights_def` ( + `id` int(11) NOT NULL DEFAULT '0', + `libelle` varchar(255) DEFAULT NULL, + `module` varchar(64) DEFAULT NULL, + `entity` int(11) NOT NULL DEFAULT '1', + `perms` varchar(50) DEFAULT NULL, + `subperms` varchar(50) DEFAULT NULL, + `type` varchar(1) DEFAULT NULL, + `bydefault` tinyint(4) DEFAULT '0', + PRIMARY KEY (`id`,`entity`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_rights_def` +-- + +LOCK TABLES `llx_rights_def` WRITE; +/*!40000 ALTER TABLE `llx_rights_def` DISABLE KEYS */; +INSERT INTO `llx_rights_def` VALUES (11,'Lire les factures','facture',1,'lire',NULL,'a',1),(11,'Lire les factures','facture',2,'lire',NULL,'a',1),(12,'Creer/modifier les factures','facture',1,'creer',NULL,'a',0),(12,'Creer/modifier les factures','facture',2,'creer',NULL,'a',0),(13,'Dévalider les factures','facture',1,'invoice_advance','unvalidate','a',0),(13,'Dévalider les factures','facture',2,'invoice_advance','unvalidate','a',0),(14,'Valider les factures','facture',1,'valider',NULL,'a',0),(14,'Valider les factures','facture',2,'valider',NULL,'a',0),(15,'Envoyer les factures par mail','facture',1,'invoice_advance','send','a',0),(15,'Envoyer les factures par mail','facture',2,'invoice_advance','send','a',0),(16,'Emettre des paiements sur les factures','facture',1,'paiement',NULL,'a',0),(16,'Emettre des paiements sur les factures','facture',2,'paiement',NULL,'a',0),(19,'Supprimer les factures','facture',1,'supprimer',NULL,'a',0),(19,'Supprimer les factures','facture',2,'supprimer',NULL,'a',0),(21,'Lire les propositions commerciales','propale',1,'lire',NULL,'r',1),(21,'Lire les propositions commerciales','propale',2,'lire',NULL,'r',1),(22,'Creer/modifier les propositions commerciales','propale',1,'creer',NULL,'w',0),(22,'Creer/modifier les propositions commerciales','propale',2,'creer',NULL,'w',0),(24,'Valider les propositions commerciales','propale',1,'valider',NULL,'d',0),(24,'Valider les propositions commerciales','propale',2,'valider',NULL,'d',0),(25,'Envoyer les propositions commerciales aux clients','propale',1,'propal_advance','send','d',0),(25,'Envoyer les propositions commerciales aux clients','propale',2,'propal_advance','send','d',0),(26,'Cloturer les propositions commerciales','propale',1,'cloturer',NULL,'d',0),(26,'Cloturer les propositions commerciales','propale',2,'cloturer',NULL,'d',0),(27,'Supprimer les propositions commerciales','propale',1,'supprimer',NULL,'d',0),(27,'Supprimer les propositions commerciales','propale',2,'supprimer',NULL,'d',0),(28,'Exporter les propositions commerciales et attributs','propale',1,'export',NULL,'r',0),(28,'Exporter les propositions commerciales et attributs','propale',2,'export',NULL,'r',0),(31,'Lire les produits','produit',1,'lire',NULL,'r',1),(31,'Lire les produits','produit',2,'lire',NULL,'r',1),(32,'Creer/modifier les produits','produit',1,'creer',NULL,'w',0),(32,'Creer/modifier les produits','produit',2,'creer',NULL,'w',0),(34,'Supprimer les produits','produit',1,'supprimer',NULL,'d',0),(34,'Supprimer les produits','produit',2,'supprimer',NULL,'d',0),(38,'Exporter les produits','produit',1,'export',NULL,'r',0),(38,'Exporter les produits','produit',2,'export',NULL,'r',0),(41,'Lire les projets et taches (partagés ou dont je suis contact)','projet',1,'lire',NULL,'r',1),(42,'Creer/modifier les projets et taches (partagés ou dont je suis contact)','projet',1,'creer',NULL,'w',0),(44,'Supprimer les projets et taches (partagés ou dont je suis contact)','projet',1,'supprimer',NULL,'d',0),(61,'Lire les fiches d\'intervention','ficheinter',1,'lire',NULL,'r',1),(62,'Creer/modifier les fiches d\'intervention','ficheinter',1,'creer',NULL,'w',0),(64,'Supprimer les fiches d\'intervention','ficheinter',1,'supprimer',NULL,'d',0),(67,'Exporter les fiches interventions','ficheinter',1,'export',NULL,'r',0),(68,'Envoyer les fiches d\'intervention par courriel','ficheinter',1,'ficheinter_advance','send','r',0),(71,'Read members\' card','adherent',1,'lire',NULL,'r',1),(72,'Create/modify members (need also user module permissions if member linked to a user)','adherent',1,'creer',NULL,'w',1),(74,'Remove members','adherent',1,'supprimer',NULL,'d',1),(75,'Setup types and attributes of members','adherent',1,'configurer',NULL,'w',1),(76,'Export members','adherent',1,'export',NULL,'r',0),(78,'Read subscriptions','adherent',1,'cotisation','lire','r',1),(79,'Create/modify/remove subscriptions','adherent',1,'cotisation','creer','w',1),(81,'Lire les commandes clients','commande',1,'lire',NULL,'r',1),(82,'Creer/modifier les commandes clients','commande',1,'creer',NULL,'w',0),(84,'Valider les commandes clients','commande',1,'valider',NULL,'d',0),(86,'Envoyer les commandes clients','commande',1,'order_advance','send','d',0),(87,'Cloturer les commandes clients','commande',1,'cloturer',NULL,'d',0),(88,'Annuler les commandes clients','commande',1,'annuler',NULL,'d',0),(89,'Supprimer les commandes clients','commande',1,'supprimer',NULL,'d',0),(91,'Lire les charges','tax',1,'charges','lire','r',1),(91,'Lire les charges','tax',2,'charges','lire','r',1),(92,'Creer/modifier les charges','tax',1,'charges','creer','w',0),(92,'Creer/modifier les charges','tax',2,'charges','creer','w',0),(93,'Supprimer les charges','tax',1,'charges','supprimer','d',0),(93,'Supprimer les charges','tax',2,'charges','supprimer','d',0),(94,'Exporter les charges','tax',1,'charges','export','r',0),(94,'Exporter les charges','tax',2,'charges','export','r',0),(95,'Lire CA, bilans, resultats','compta',1,'resultat','lire','r',1),(96,'Parametrer la ventilation','compta',1,'ventilation','parametrer','r',0),(97,'Lire les ventilations de factures','compta',1,'ventilation','lire','r',1),(98,'Ventiler les lignes de factures','compta',1,'ventilation','creer','r',0),(101,'Lire les expeditions','expedition',1,'lire',NULL,'r',1),(102,'Creer modifier les expeditions','expedition',1,'creer',NULL,'w',0),(104,'Valider les expeditions','expedition',1,'valider',NULL,'d',0),(105,'Envoyer les expeditions aux clients','expedition',1,'shipping_advance','send','d',0),(106,'Exporter les expeditions','expedition',1,'shipment','export','r',0),(109,'Supprimer les expeditions','expedition',1,'supprimer',NULL,'d',0),(111,'Lire les comptes bancaires','banque',1,'lire',NULL,'r',1),(111,'Lire les comptes bancaires','banque',2,'lire',NULL,'r',1),(112,'Creer/modifier montant/supprimer ecriture bancaire','banque',1,'modifier',NULL,'w',0),(112,'Creer/modifier montant/supprimer ecriture bancaire','banque',2,'modifier',NULL,'w',0),(113,'Configurer les comptes bancaires (creer, gerer categories)','banque',1,'configurer',NULL,'a',0),(113,'Configurer les comptes bancaires (creer, gerer categories)','banque',2,'configurer',NULL,'a',0),(114,'Rapprocher les ecritures bancaires','banque',1,'consolidate',NULL,'w',0),(114,'Rapprocher les ecritures bancaires','banque',2,'consolidate',NULL,'w',0),(115,'Exporter transactions et releves','banque',1,'export',NULL,'r',0),(115,'Exporter transactions et releves','banque',2,'export',NULL,'r',0),(116,'Virements entre comptes','banque',1,'transfer',NULL,'w',0),(116,'Virements entre comptes','banque',2,'transfer',NULL,'w',0),(117,'Gerer les envois de cheques','banque',1,'cheque',NULL,'w',0),(117,'Gerer les envois de cheques','banque',2,'cheque',NULL,'w',0),(121,'Lire les societes','societe',1,'lire',NULL,'r',1),(121,'Lire les societes','societe',2,'lire',NULL,'r',1),(122,'Creer modifier les societes','societe',1,'creer',NULL,'w',0),(122,'Creer modifier les societes','societe',2,'creer',NULL,'w',0),(125,'Supprimer les societes','societe',1,'supprimer',NULL,'d',0),(125,'Supprimer les societes','societe',2,'supprimer',NULL,'d',0),(126,'Exporter les societes','societe',1,'export',NULL,'r',0),(126,'Exporter les societes','societe',2,'export',NULL,'r',0),(141,'Lire tous les projets et taches (y compris prives qui ne me sont pas affectes)','projet',1,'all','lire','r',0),(142,'Creer/modifier tous les projets et taches (y compris prives qui ne me sont pas affectes)','projet',1,'all','creer','w',0),(144,'Supprimer tous les projets et taches (y compris prives qui ne me sont pas affectes)','projet',1,'all','supprimer','d',0),(151,'Read withdrawals','prelevement',1,'bons','lire','r',1),(152,'Create/modify a withdrawals','prelevement',1,'bons','creer','w',0),(153,'Send withdrawals to bank','prelevement',1,'bons','send','a',0),(154,'credit/refuse withdrawals','prelevement',1,'bons','credit','a',0),(161,'Lire les contrats','contrat',1,'lire',NULL,'r',1),(162,'Creer / modifier les contrats','contrat',1,'creer',NULL,'w',0),(163,'Activer un service d\'un contrat','contrat',1,'activer',NULL,'w',0),(164,'Desactiver un service d\'un contrat','contrat',1,'desactiver',NULL,'w',0),(165,'Supprimer un contrat','contrat',1,'supprimer',NULL,'d',0),(171,'Lire les deplacements','deplacement',1,'lire',NULL,'r',1),(172,'Creer/modifier les deplacements','deplacement',1,'creer',NULL,'w',0),(173,'Supprimer les deplacements','deplacement',1,'supprimer',NULL,'d',0),(178,'Exporter les deplacements','deplacement',1,'export',NULL,'d',0),(221,'Consulter les mailings','mailing',1,'lire',NULL,'r',1),(221,'Consulter les mailings','mailing',2,'lire',NULL,'r',1),(222,'Creer/modifier les mailings (sujet, destinataires...)','mailing',1,'creer',NULL,'w',1),(222,'Creer/modifier les mailings (sujet, destinataires...)','mailing',2,'creer',NULL,'w',0),(223,'Valider les mailings (permet leur envoi)','mailing',1,'valider',NULL,'w',0),(223,'Valider les mailings (permet leur envoi)','mailing',2,'valider',NULL,'w',0),(229,'Supprimer les mailings)','mailing',1,'supprimer',NULL,'d',1),(229,'Supprimer les mailings','mailing',2,'supprimer',NULL,'d',0),(237,'View recipients and info','mailing',1,'mailing_advance','recipient','r',0),(237,'View recipients and info','mailing',2,'mailing_advance','recipient','r',0),(238,'Manually send mailings','mailing',1,'mailing_advance','send','w',0),(238,'Manually send mailings','mailing',2,'mailing_advance','send','w',0),(239,'Delete mailings after validation and/or sent','mailing',1,'mailing_advance','delete','d',0),(239,'Delete mailings after validation and/or sent','mailing',2,'mailing_advance','delete','d',0),(241,'Lire les categories','categorie',1,'lire',NULL,'r',1),(242,'Creer/modifier les categories','categorie',1,'creer',NULL,'w',1),(243,'Supprimer les categories','categorie',1,'supprimer',NULL,'d',1),(251,'Consulter les autres utilisateurs','user',1,'user','lire','r',0),(252,'Consulter les permissions des autres utilisateurs','user',1,'user_advance','readperms','r',0),(253,'Creer/modifier utilisateurs internes et externes','user',1,'user','creer','w',0),(254,'Creer/modifier utilisateurs externes seulement','user',1,'user_advance','write','w',0),(255,'Modifier le mot de passe des autres utilisateurs','user',1,'user','password','w',0),(256,'Supprimer ou desactiver les autres utilisateurs','user',1,'user','supprimer','d',0),(262,'Consulter tous les tiers par utilisateurs internes (sinon uniquement si contact commercial). Non effectif pour utilisateurs externes (tjs limités à eux-meme).','societe',1,'client','voir','r',1),(262,'Consulter tous les tiers par utilisateurs internes (sinon uniquement si contact commercial). Non effectif pour utilisateurs externes (tjs limités à eux-meme).','societe',2,'client','voir','r',1),(281,'Lire les contacts','societe',1,'contact','lire','r',1),(281,'Lire les contacts','societe',2,'contact','lire','r',1),(282,'Creer modifier les contacts','societe',1,'contact','creer','w',0),(282,'Creer modifier les contacts','societe',2,'contact','creer','w',0),(283,'Supprimer les contacts','societe',1,'contact','supprimer','d',0),(283,'Supprimer les contacts','societe',2,'contact','supprimer','d',0),(286,'Exporter les contacts','societe',1,'contact','export','d',0),(286,'Exporter les contacts','societe',2,'contact','export','d',0),(331,'Lire les bookmarks','bookmark',1,'lire',NULL,'r',1),(332,'Creer/modifier les bookmarks','bookmark',1,'creer',NULL,'r',0),(333,'Supprimer les bookmarks','bookmark',1,'supprimer',NULL,'r',0),(341,'Consulter ses propres permissions','user',1,'self_advance','readperms','r',1),(342,'Creer/modifier ses propres infos utilisateur','user',1,'self','creer','w',1),(343,'Modifier son propre mot de passe','user',1,'self','password','w',1),(344,'Modifier ses propres permissions','user',1,'self_advance','writeperms','w',1),(351,'Consulter les groupes','user',1,'group_advance','read','r',0),(352,'Consulter les permissions des groupes','user',1,'group_advance','readperms','r',0),(353,'Creer/modifier les groupes et leurs permissions','user',1,'group_advance','write','w',0),(354,'Supprimer ou desactiver les groupes','user',1,'group_advance','delete','d',0),(358,'Exporter les utilisateurs','user',1,'user','export','r',0),(531,'Lire les services','service',1,'lire',NULL,'r',1),(532,'Creer/modifier les services','service',1,'creer',NULL,'w',0),(534,'Supprimer les services','service',1,'supprimer',NULL,'d',0),(538,'Exporter les services','service',1,'export',NULL,'r',0),(700,'Lire les dons','don',1,'lire',NULL,'r',1),(701,'Creer/modifier les dons','don',1,'creer',NULL,'w',0),(701,'Lire les dons','don',2,'lire',NULL,'r',1),(702,'Supprimer les dons','don',1,'supprimer',NULL,'d',0),(702,'Creer/modifier les dons','don',2,'creer',NULL,'w',0),(703,'Supprimer les dons','don',1,'supprimer',NULL,'d',0),(703,'Supprimer les dons','don',2,'supprimer',NULL,'d',0),(1001,'Lire les stocks','stock',1,'lire',NULL,'r',1),(1002,'Creer/Modifier les stocks','stock',1,'creer',NULL,'w',1),(1003,'Supprimer les stocks','stock',1,'supprimer',NULL,'d',1),(1004,'Lire mouvements de stocks','stock',1,'mouvement','lire','r',1),(1005,'Creer/modifier mouvements de stocks','stock',1,'mouvement','creer','w',1),(1101,'Lire les bons de livraison','expedition',1,'livraison','lire','r',1),(1102,'Creer modifier les bons de livraison','expedition',1,'livraison','creer','w',0),(1104,'Valider les bons de livraison','expedition',1,'livraison','valider','d',0),(1109,'Supprimer les bons de livraison','expedition',1,'livraison','supprimer','d',0),(1181,'Consulter les fournisseurs','fournisseur',1,'lire',NULL,'r',1),(1182,'Consulter les commandes fournisseur','fournisseur',1,'commande','lire','r',1),(1183,'Creer une commande fournisseur','fournisseur',1,'commande','creer','w',0),(1184,'Valider une commande fournisseur','fournisseur',1,'commande','valider','w',0),(1185,'Approuver une commande fournisseur','fournisseur',1,'commande','approuver','w',0),(1186,'Commander une commande fournisseur','fournisseur',1,'commande','commander','w',0),(1187,'Receptionner une commande fournisseur','fournisseur',1,'commande','receptionner','d',0),(1188,'Supprimer une commande fournisseur','fournisseur',1,'commande','supprimer','d',0),(1201,'Lire les exports','export',1,'lire',NULL,'r',1),(1202,'Creer/modifier un export','export',1,'creer',NULL,'w',1),(1231,'Consulter les factures fournisseur','fournisseur',1,'facture','lire','r',1),(1232,'Creer une facture fournisseur','fournisseur',1,'facture','creer','w',0),(1233,'Valider une facture fournisseur','fournisseur',1,'facture','valider','w',0),(1234,'Supprimer une facture fournisseur','fournisseur',1,'facture','supprimer','d',0),(1235,'Envoyer les factures par mail','fournisseur',1,'supplier_invoice_advance','send','a',0),(1236,'Exporter les factures fournisseurs, attributs et reglements','fournisseur',1,'facture','export','r',0),(1237,'Exporter les commande fournisseurs, attributs','fournisseur',1,'commande','export','r',0),(1251,'Run mass imports of external data (data load)','import',1,'run',NULL,'r',0),(1321,'Exporter les factures clients, attributs et reglements','facture',1,'facture','export','r',0),(1321,'Exporter les factures clients, attributs et reglements','facture',2,'facture','export','r',0),(1421,'Exporter les commandes clients et attributs','commande',1,'commande','export','r',0),(1791,'Read milestones','milestone',1,'lire',NULL,'r',1),(1792,'Create/update milestones','milestone',1,'creer',NULL,'w',0),(1793,'Delete milestones','milestone',1,'supprimer',NULL,'d',0),(2401,'Read actions/tasks linked to his account','agenda',1,'myactions','read','r',1),(2401,'Read actions/tasks linked to his account','agenda',2,'myactions','read','r',1),(2402,'Create/modify actions/tasks linked to his account','agenda',1,'myactions','create','w',0),(2402,'Create/modify actions/tasks linked to his account','agenda',2,'myactions','create','w',0),(2403,'Delete actions/tasks linked to his account','agenda',1,'myactions','delete','w',0),(2403,'Delete actions/tasks linked to his account','agenda',2,'myactions','delete','w',0),(2411,'Read actions/tasks of others','agenda',1,'allactions','read','r',0),(2411,'Read actions/tasks of others','agenda',2,'allactions','read','r',0),(2412,'Create/modify actions/tasks of others','agenda',1,'allactions','create','w',0),(2412,'Create/modify actions/tasks of others','agenda',2,'allactions','create','w',0),(2413,'Delete actions/tasks of others','agenda',1,'allactions','delete','w',0),(2413,'Delete actions/tasks of others','agenda',2,'allactions','delete','w',0),(2501,'Consulter/Télécharger les documents','ecm',1,'read',NULL,'r',1),(2503,'Soumettre ou supprimer des documents','ecm',1,'upload',NULL,'w',1),(2515,'Administrer les rubriques de documents','ecm',1,'setup',NULL,'w',1),(5001,'Consulter les infos société','multicompany',1,'read',NULL,'r',1),(5002,'Modifier la fiche société','multicompany',1,'write',NULL,'w',0),(20001,'Créer / Modifier / Lire ses demandes de congés payés','holiday',1,'write',NULL,'w',1),(20001,'Créer / Modifier / Lire ses demandes de congés payés','holiday',2,'write',NULL,'w',1),(20002,'Lire / Modifier toutes les demandes de congés payés','holiday',1,'lire_tous',NULL,'w',0),(20002,'Lire / Modifier toutes les demandes de congés payés','holiday',2,'lire_tous',NULL,'w',0),(20003,'Supprimer des demandes de congés payés','holiday',1,'delete',NULL,'w',0),(20003,'Supprimer des demandes de congés payés','holiday',2,'delete',NULL,'w',0),(20004,'Définir les congés payés des utilisateurs','holiday',1,'define_holiday',NULL,'w',0),(20004,'Définir les congés payés des utilisateurs','holiday',2,'define_holiday',NULL,'w',0),(20005,'Voir les logs de modification des congés payés','holiday',1,'view_log',NULL,'w',0),(20005,'Voir les logs de modification des congés payés','holiday',2,'view_log',NULL,'w',0),(20006,'Accéder au rapport mensuel des congés payés','holiday',1,'month_report',NULL,'w',0),(20006,'Accéder au rapport mensuel des congés payés','holiday',2,'month_report',NULL,'w',0),(23001,'Read cron jobs','cron',1,'read',NULL,'w',1),(23002,'Create cron Jobs','cron',1,'create',NULL,'w',0),(23003,'Delete cron Jobs','cron',1,'delete',NULL,'w',0),(23004,'Execute cron Jobs','cron',1,'execute',NULL,'w',0),(50101,'Use point of sale','cashdesk',1,'use',NULL,'a',1),(101051,'Voir page liens','nltechno',1,'liens','voir','r',0),(101052,'Voir page annonces','nltechno',1,'annonces','voir','r',0),(101053,'Voir page emailings','nltechno',1,'emailings','voir','r',0),(101060,'Read DoliCloud informations','nltechno',1,'dolicloud','read','w',0),(101061,'Create/edit DoliCloud data','nltechno',1,'dolicloud','write','w',0),(101201,'Read/Browse directories and files from the file manager','filemanager',1,'read',NULL,'r',1),(101202,'Can manage directories or files (upload/edit/delete) from the file manager','filemanager',1,'create',NULL,'w',0),(101250,'Read surveys','opensurvey',1,'survey','read','r',0),(101250,'Read surveys','opensurvey',2,'survey','read','r',0),(101251,'Create/modify surveys','opensurvey',1,'survey','write','w',0),(101251,'Create/modify surveys','opensurvey',2,'survey','write','w',0),(101261,'Read submited news','submiteverywhere',1,'read',NULL,'w',1),(101262,'Create/Edit/Submit news','submiteverywhere',1,'create',NULL,'w',0),(101331,'Send a SMS','ovh',1,'send',NULL,'w',0),(400051,'Use POS','pos',1,'frontend',NULL,'a',1),(400051,'Use POS','pos',2,'frontend',NULL,'a',1),(400052,'Use Backend','pos',1,'backend',NULL,'a',1),(400052,'Use Backend','pos',2,'backend',NULL,'a',1),(400053,'Make Transfers','pos',1,'transfer',NULL,'a',1),(400053,'Make Transfers','pos',2,'transfer',NULL,'a',1),(400055,'Stats','pos',1,'stats',NULL,'a',1),(400055,'Stats','pos',2,'stats',NULL,'a',1); +/*!40000 ALTER TABLE `llx_rights_def` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_societe` +-- + +DROP TABLE IF EXISTS `llx_societe`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_societe` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `statut` tinyint(4) DEFAULT '0', + `parent` int(11) DEFAULT NULL, + `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `datec` datetime DEFAULT NULL, + `datea` datetime DEFAULT NULL, + `nom` varchar(60) DEFAULT NULL, + `entity` int(11) NOT NULL DEFAULT '1', + `ref_ext` varchar(128) DEFAULT NULL, + `ref_int` varchar(60) DEFAULT NULL, + `code_client` varchar(24) DEFAULT NULL, + `code_fournisseur` varchar(24) DEFAULT NULL, + `code_compta` varchar(24) DEFAULT NULL, + `code_compta_fournisseur` varchar(24) DEFAULT NULL, + `address` varchar(255) DEFAULT NULL, + `zip` varchar(25) DEFAULT NULL, + `town` text, + `fk_departement` int(11) DEFAULT '0', + `fk_pays` int(11) DEFAULT '0', + `phone` varchar(20) DEFAULT NULL, + `fax` varchar(20) DEFAULT NULL, + `url` varchar(255) DEFAULT NULL, + `email` varchar(128) DEFAULT NULL, + `fk_effectif` int(11) DEFAULT '0', + `fk_typent` int(11) DEFAULT '0', + `fk_forme_juridique` int(11) DEFAULT '0', + `fk_currency` int(11) DEFAULT '0', + `siren` varchar(128) DEFAULT NULL, + `siret` varchar(128) DEFAULT NULL, + `ape` varchar(128) DEFAULT NULL, + `idprof4` varchar(128) DEFAULT NULL, + `tva_intra` varchar(20) DEFAULT NULL, + `capital` double DEFAULT NULL, + `fk_stcomm` int(11) NOT NULL, + `note` text, + `prefix_comm` varchar(5) DEFAULT NULL, + `client` tinyint(4) DEFAULT '0', + `fournisseur` tinyint(4) DEFAULT '0', + `supplier_account` varchar(32) DEFAULT NULL, + `fk_prospectlevel` varchar(12) DEFAULT NULL, + `customer_bad` tinyint(4) DEFAULT '0', + `customer_rate` double DEFAULT '0', + `supplier_rate` double DEFAULT '0', + `fk_user_creat` int(11) DEFAULT NULL, + `fk_user_modif` int(11) DEFAULT NULL, + `remise_client` double DEFAULT '0', + `mode_reglement` tinyint(4) DEFAULT NULL, + `cond_reglement` tinyint(4) DEFAULT NULL, + `tva_assuj` tinyint(4) DEFAULT '1', + `localtax1_assuj` tinyint(4) DEFAULT '0', + `localtax2_assuj` tinyint(4) DEFAULT '0', + `barcode` varchar(255) DEFAULT NULL, + `price_level` int(11) DEFAULT NULL, + `default_lang` varchar(6) DEFAULT NULL, + `canvas` varchar(32) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + `status` tinyint(4) DEFAULT '1', + `logo` varchar(255) DEFAULT NULL, + `idprof5` varchar(128) DEFAULT NULL, + `idprof6` varchar(128) DEFAULT NULL, + `fk_barcode_type` int(11) DEFAULT '0', + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_societe_prefix_comm` (`prefix_comm`,`entity`), + UNIQUE KEY `uk_societe_code_client` (`code_client`,`entity`), + KEY `idx_societe_user_creat` (`fk_user_creat`), + KEY `idx_societe_user_modif` (`fk_user_modif`) +) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_societe` +-- + +LOCK TABLES `llx_societe` WRITE; +/*!40000 ALTER TABLE `llx_societe` DISABLE KEYS */; +INSERT INTO `llx_societe` VALUES (1,0,NULL,'2012-12-19 14:47:50','2010-07-08 14:21:44','2012-12-19 15:47:49','ABC and Co',1,NULL,NULL,'CU1212-0007','SU1212-0005','7050','6050','1 alalah road',NULL,'Delhi',0,4,NULL,NULL,NULL,NULL,NULL,4,NULL,0,'','','','','',5000,1,NULL,NULL,1,1,NULL,NULL,0,0,0,1,1,0,NULL,NULL,1,1,0,NULL,NULL,'en_IN',NULL,NULL,1,NULL,'','',0),(2,0,NULL,'2011-07-31 22:35:08','2010-07-08 14:23:48','2011-08-01 00:35:08','Belin SARL',1,NULL,NULL,'CU1108-0001','SU1108-0001',NULL,NULL,'11 rue de la paix.','75000','Paris',0,117,NULL,NULL,'dolibarr.fr',NULL,NULL,3,NULL,0,'123456789','','ACE14','','',10000,0,NULL,NULL,3,1,NULL,NULL,0,0,0,1,1,0,NULL,NULL,1,NULL,NULL,NULL,NULL,'fr_FR',NULL,NULL,1,NULL,NULL,NULL,0),(3,0,NULL,'2010-07-08 20:42:12','2010-07-08 22:42:12','2010-07-08 22:42:12','Spanish Comp',1,NULL,NULL,'SPANISHCOMP',NULL,NULL,NULL,'1 via mallere',NULL,'Madrid',123,4,NULL,NULL,NULL,NULL,3,4,408,0,'','','','','',10000,0,NULL,NULL,3,1,NULL,NULL,0,0,0,1,1,0,NULL,NULL,1,NULL,NULL,NULL,NULL,'es_AR',NULL,NULL,1,NULL,NULL,NULL,0),(4,0,NULL,'2013-03-03 23:09:48','2010-07-08 22:48:18','2013-03-04 00:08:04','Prospector Vaalen',1,NULL,NULL,'CU1303-0014',NULL,NULL,NULL,'',NULL,'Bruxelles',103,2,NULL,NULL,NULL,NULL,3,4,201,0,'12345678','','','','',0,0,NULL,NULL,3,0,NULL,'PL_LOW',0,0,0,1,1,0,NULL,NULL,1,0,0,NULL,NULL,NULL,NULL,NULL,1,NULL,'','',0),(5,0,NULL,'2010-07-08 21:37:56','2010-07-08 23:22:57','2010-07-08 23:37:56','NoCountry Co',1,NULL,NULL,NULL,NULL,NULL,NULL,'',NULL,NULL,0,193,NULL,NULL,NULL,NULL,NULL,0,NULL,0,'','','','','',0,0,NULL,NULL,0,0,NULL,NULL,0,0,0,1,1,0,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,0),(6,0,NULL,'2010-07-08 22:25:06','2010-07-09 00:15:09','2010-07-09 00:25:06','Swiss customer supplier',1,NULL,NULL,NULL,NULL,NULL,NULL,'',NULL,'Genevia',0,6,NULL,NULL,NULL,'abademail@aa.com',2,2,601,0,'','','','','',56000,0,NULL,NULL,3,1,NULL,NULL,0,0,0,1,1,0,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,0),(7,0,NULL,'2013-02-12 16:06:20','2010-07-09 01:24:26','2013-02-12 17:06:20','Generic customer',1,NULL,NULL,'CU1302-0011',NULL,NULL,NULL,'',NULL,NULL,0,7,NULL,NULL,NULL,'ttt@ttt.com',NULL,8,NULL,0,'','','','','',0,0,'Generic customer to use for Point Of Sale module.
',NULL,1,0,NULL,NULL,0,0,0,1,1,0,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'','',0),(8,0,NULL,'2010-07-10 12:54:27','2010-07-10 14:54:27','2010-07-10 14:54:27','Client salon',1,NULL,NULL,NULL,NULL,NULL,NULL,'',NULL,NULL,0,1,NULL,NULL,NULL,NULL,NULL,0,NULL,0,'','','','','',0,0,NULL,NULL,0,0,NULL,NULL,0,0,0,1,1,0,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,0),(9,0,NULL,'2010-07-10 12:55:11','2010-07-10 14:54:44','2010-07-10 14:55:11','Client salon invidivdu',1,NULL,NULL,NULL,NULL,NULL,NULL,'',NULL,NULL,0,1,NULL,NULL,NULL,NULL,NULL,8,NULL,0,'','','','','',0,0,NULL,NULL,3,1,NULL,NULL,0,0,0,1,1,0,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,0),(10,0,NULL,'2012-12-08 16:38:30','2010-07-10 15:13:08','2012-12-08 17:38:30','Smith Vick',1,NULL,NULL,'CU1212-0005',NULL,NULL,NULL,'',NULL,NULL,0,102,NULL,NULL,NULL,'vsmith@email.com',NULL,0,NULL,0,'','','','','',0,0,NULL,NULL,1,0,NULL,NULL,0,0,0,1,1,0,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'','',0),(11,0,NULL,'2010-07-11 12:35:22','2010-07-10 18:35:57','2010-07-10 18:36:24','Mon client',1,NULL,NULL,NULL,NULL,'7051',NULL,'',NULL,NULL,0,1,NULL,NULL,NULL,NULL,NULL,0,NULL,0,'','','','','',0,0,NULL,NULL,3,0,NULL,'PL_LOW',0,0,0,1,1,0,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,0),(12,0,NULL,'2013-02-20 19:07:21','2010-07-11 16:18:08','2013-02-20 20:07:21','Dupont Alain',1,NULL,NULL,NULL,NULL,NULL,NULL,'',NULL,NULL,0,1,NULL,NULL,NULL,'toto@aa.com',NULL,0,NULL,0,'','','','','',0,0,NULL,NULL,1,0,NULL,NULL,0,0,0,1,1,0,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'','',0),(13,0,NULL,'2010-07-11 15:13:20','2010-07-11 17:13:20','2010-07-11 17:13:20','Vendeur de chips',1,NULL,NULL,NULL,NULL,NULL,NULL,'',NULL,NULL,0,1,NULL,NULL,NULL,NULL,NULL,0,NULL,0,'','','','','',0,0,NULL,NULL,0,1,NULL,NULL,0,0,0,1,1,0,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,0),(15,0,NULL,'2011-08-01 00:31:24','2011-08-01 02:31:24','2011-08-01 02:31:24','mmm',1,NULL,NULL,'CU1108-0002','SU1108-0002',NULL,NULL,'','78180','mmm',0,31,NULL,NULL,NULL,NULL,NULL,0,NULL,0,'','','','','',0,0,NULL,NULL,3,1,NULL,NULL,0,0,0,1,1,0,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,0),(16,0,NULL,'2011-08-01 00:42:21','2011-08-01 02:31:43','2011-08-01 02:42:21','ppp',1,NULL,NULL,'CU1108-0003','SU1108-0003',NULL,NULL,'','78180','mmm',103,2,NULL,NULL,NULL,NULL,NULL,0,NULL,0,'','','','','',0,0,NULL,NULL,3,1,NULL,NULL,0,0,0,1,1,0,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,0),(17,0,NULL,'2011-08-04 21:24:24','2011-08-01 02:41:26','2011-08-04 23:24:24','FFF SARL',1,NULL,NULL,'CU1108-0004','SU1108-0004',NULL,NULL,'The French Company',NULL,NULL,0,1,NULL,NULL,NULL,NULL,1,3,NULL,0,'','','','','',0,0,NULL,NULL,3,1,NULL,NULL,0,0,0,1,1,0,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,0),(18,0,NULL,'2013-01-12 13:38:32','2012-12-09 20:14:42','2013-01-12 14:38:32','doe john',1,NULL,NULL,'CU1212-0006',NULL,NULL,NULL,'',NULL,NULL,0,1,'111','2222',NULL,'johndoe@email.com',NULL,101,NULL,0,'','','','','',0,0,NULL,NULL,1,0,NULL,NULL,0,0,0,1,1,0,NULL,NULL,1,0,0,NULL,NULL,NULL,NULL,NULL,1,NULL,'','',0),(19,0,NULL,'2013-03-16 12:52:02','2013-01-12 12:23:05','2013-03-16 13:52:02','aaa',1,NULL,NULL,'CU1301-0008',NULL,NULL,NULL,'fdgfd','gggfd','fgfgfd',0,4,'gggh','0101',NULL,NULL,NULL,101,NULL,0,'','','10/10/2010','','',0,0,NULL,NULL,1,0,NULL,NULL,0,0,0,1,1,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'en_US','patient@cabinetmed',NULL,1,NULL,'','',0),(20,0,NULL,'2013-01-12 11:52:20','2013-01-12 12:52:20','2013-01-12 12:52:20','pppoo',1,NULL,NULL,'CU1301-0009',NULL,NULL,NULL,'pppoo',NULL,NULL,0,4,NULL,NULL,NULL,NULL,NULL,101,NULL,0,'','','','','',0,0,NULL,NULL,1,0,NULL,NULL,0,0,0,1,1,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'en_US','patient@cabinetmed',NULL,1,NULL,'','',0),(21,0,NULL,'2013-01-23 15:56:58','2013-01-23 16:56:58','2013-01-23 16:56:58','pa',1,NULL,NULL,'CU1301-0010',NULL,NULL,NULL,'',NULL,NULL,0,81,NULL,NULL,NULL,NULL,NULL,101,NULL,0,'','','','','',0,0,NULL,NULL,1,0,NULL,NULL,0,0,0,1,1,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'en_US','patient@cabinetmed',NULL,1,NULL,'','',0),(22,0,NULL,'2013-02-26 21:57:58','2013-02-26 22:57:50','2013-02-26 22:57:58','pppp',1,NULL,NULL,'CU1302-0012',NULL,NULL,NULL,'',NULL,NULL,0,1,NULL,NULL,NULL,NULL,NULL,101,NULL,0,'','','','','',0,0,NULL,NULL,1,0,NULL,NULL,0,0,0,1,1,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'fr_FR','patient@cabinetmed',NULL,1,NULL,'','',0),(23,0,NULL,'2013-02-26 21:58:13','2013-02-26 22:58:13','2013-02-26 22:58:13','ttttt',1,NULL,NULL,'CU1302-0013','SU1302-0006',NULL,NULL,'',NULL,NULL,0,1,NULL,NULL,NULL,NULL,NULL,101,NULL,0,'','','','','',0,0,NULL,NULL,1,1,NULL,NULL,0,0,0,1,1,0,NULL,NULL,1,NULL,NULL,NULL,NULL,'fr_FR',NULL,NULL,1,NULL,'','',0),(24,0,NULL,'2013-03-09 15:33:39','2013-03-06 17:13:59','2013-03-09 16:33:39','smith smith',1,NULL,NULL,'CU1303-0015',NULL,'411E123',NULL,'',NULL,NULL,0,11,NULL,NULL,NULL,'smith@email.com',NULL,0,NULL,0,'','','','','',0,0,NULL,NULL,1,0,NULL,NULL,0,0,0,1,1,0,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'','',0),(25,0,NULL,'2013-03-10 14:47:37','2013-03-10 15:47:37','2013-03-10 15:47:37','jlmkjlkj',1,NULL,NULL,'CU1303-0016','SU1303-0007',NULL,NULL,'',NULL,NULL,0,117,NULL,NULL,NULL,NULL,NULL,101,NULL,0,'','','','','',0,0,NULL,NULL,1,1,NULL,NULL,0,0,0,1,1,0,NULL,NULL,1,NULL,NULL,NULL,NULL,'en_US',NULL,NULL,1,NULL,'','',0),(26,0,NULL,'2013-03-10 14:57:32','2013-03-10 15:57:32','2013-03-10 15:57:32','iiii',1,NULL,NULL,'CU1303-0017','SU1303-0008',NULL,NULL,'',NULL,NULL,290,117,NULL,NULL,NULL,NULL,NULL,0,NULL,0,'','','','','',0,0,NULL,NULL,1,1,NULL,NULL,0,0,0,1,1,0,NULL,NULL,1,NULL,NULL,NULL,NULL,'en_US',NULL,NULL,1,NULL,'','',0); +/*!40000 ALTER TABLE `llx_societe` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_societe_address` +-- + +DROP TABLE IF EXISTS `llx_societe_address`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_societe_address` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `datec` datetime DEFAULT NULL, + `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `label` varchar(30) DEFAULT NULL, + `fk_soc` int(11) DEFAULT '0', + `name` varchar(60) DEFAULT NULL, + `address` varchar(255) DEFAULT NULL, + `zip` varchar(10) DEFAULT NULL, + `town` text, + `fk_pays` int(11) DEFAULT '0', + `tel` varchar(20) DEFAULT NULL, + `fax` varchar(20) DEFAULT NULL, + `note` text, + `fk_user_creat` int(11) DEFAULT NULL, + `fk_user_modif` int(11) DEFAULT NULL, + PRIMARY KEY (`rowid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_societe_address` +-- + +LOCK TABLES `llx_societe_address` WRITE; +/*!40000 ALTER TABLE `llx_societe_address` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_societe_address` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_societe_commerciaux` +-- + +DROP TABLE IF EXISTS `llx_societe_commerciaux`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_societe_commerciaux` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_soc` int(11) DEFAULT NULL, + `fk_user` int(11) DEFAULT NULL, + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_societe_commerciaux` (`fk_soc`,`fk_user`) +) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_societe_commerciaux` +-- + +LOCK TABLES `llx_societe_commerciaux` WRITE; +/*!40000 ALTER TABLE `llx_societe_commerciaux` DISABLE KEYS */; +INSERT INTO `llx_societe_commerciaux` VALUES (1,2,2),(2,3,2),(3,15,1),(4,16,1),(5,17,1),(6,19,1),(8,19,3),(7,20,1),(9,21,1),(10,23,1),(11,25,1),(12,26,1); +/*!40000 ALTER TABLE `llx_societe_commerciaux` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_societe_extrafields` +-- + +DROP TABLE IF EXISTS `llx_societe_extrafields`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_societe_extrafields` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `fk_object` int(11) NOT NULL, + `jjjj` varchar(255) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + PRIMARY KEY (`rowid`), + KEY `idx_societe_extrafields` (`fk_object`) +) ENGINE=InnoDB AUTO_INCREMENT=49 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_societe_extrafields` +-- + +LOCK TABLES `llx_societe_extrafields` WRITE; +/*!40000 ALTER TABLE `llx_societe_extrafields` DISABLE KEYS */; +INSERT INTO `llx_societe_extrafields` VALUES (1,'2011-06-22 16:23:01',40,'kkkk',NULL),(2,'2011-06-22 16:23:16',41,'jjj',NULL),(4,'2011-06-23 07:40:40',39,'lll',NULL),(12,'2011-06-29 13:03:12',42,NULL,NULL),(14,'2011-07-02 01:24:03',57,NULL,NULL),(16,'2011-07-02 14:11:29',60,NULL,NULL),(17,'2011-07-18 10:26:55',35,NULL,NULL),(18,'2011-07-31 22:35:08',2,NULL,NULL),(19,'2011-08-01 00:31:24',15,NULL,NULL),(22,'2011-08-01 00:42:21',16,NULL,NULL),(27,'2011-08-04 21:24:24',17,NULL,NULL),(28,'2012-12-08 16:38:30',10,NULL,NULL),(30,'2012-12-19 14:47:50',1,NULL,NULL),(31,'2013-01-12 13:38:32',18,NULL,NULL),(33,'2013-02-12 16:06:20',7,NULL,NULL),(34,'2013-02-20 19:07:21',12,'jjj',NULL),(36,'2013-02-26 21:57:58',22,'jjj',NULL),(37,'2013-02-26 21:58:13',23,NULL,NULL),(44,'2013-03-03 23:08:04',4,'jjj',NULL),(45,'2013-03-09 15:33:39',24,'jjj',NULL),(46,'2013-03-10 14:47:37',25,NULL,NULL),(47,'2013-03-10 14:57:32',26,NULL,NULL),(48,'2013-03-16 12:52:02',19,'jjj',NULL); +/*!40000 ALTER TABLE `llx_societe_extrafields` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_societe_log` +-- + +DROP TABLE IF EXISTS `llx_societe_log`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_societe_log` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `datel` datetime DEFAULT NULL, + `fk_soc` int(11) DEFAULT NULL, + `fk_statut` int(11) DEFAULT NULL, + `fk_user` int(11) DEFAULT NULL, + `author` varchar(30) DEFAULT NULL, + `label` varchar(128) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_societe_log` +-- + +LOCK TABLES `llx_societe_log` WRITE; +/*!40000 ALTER TABLE `llx_societe_log` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_societe_log` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_societe_prices` +-- + +DROP TABLE IF EXISTS `llx_societe_prices`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_societe_prices` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_soc` int(11) DEFAULT '0', + `tms` timestamp NULL DEFAULT NULL, + `datec` datetime DEFAULT NULL, + `fk_user_author` int(11) DEFAULT NULL, + `price_level` tinyint(4) DEFAULT '1', + PRIMARY KEY (`rowid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_societe_prices` +-- + +LOCK TABLES `llx_societe_prices` WRITE; +/*!40000 ALTER TABLE `llx_societe_prices` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_societe_prices` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_societe_remise` +-- + +DROP TABLE IF EXISTS `llx_societe_remise`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_societe_remise` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_soc` int(11) NOT NULL, + `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `datec` datetime DEFAULT NULL, + `fk_user_author` int(11) DEFAULT NULL, + `remise_client` double(6,3) NOT NULL DEFAULT '0.000', + `note` text, + PRIMARY KEY (`rowid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_societe_remise` +-- + +LOCK TABLES `llx_societe_remise` WRITE; +/*!40000 ALTER TABLE `llx_societe_remise` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_societe_remise` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_societe_remise_except` +-- + +DROP TABLE IF EXISTS `llx_societe_remise_except`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_societe_remise_except` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_soc` int(11) NOT NULL, + `datec` datetime DEFAULT NULL, + `amount_ht` double(24,8) NOT NULL, + `amount_tva` double(24,8) NOT NULL DEFAULT '0.00000000', + `amount_ttc` double(24,8) NOT NULL DEFAULT '0.00000000', + `tva_tx` double(6,3) NOT NULL DEFAULT '0.000', + `fk_user` int(11) NOT NULL, + `fk_facture_line` int(11) DEFAULT NULL, + `fk_facture` int(11) DEFAULT NULL, + `fk_facture_source` int(11) DEFAULT NULL, + `description` varchar(255) NOT NULL, + PRIMARY KEY (`rowid`), + KEY `idx_societe_remise_except_fk_user` (`fk_user`), + KEY `idx_societe_remise_except_fk_soc` (`fk_soc`), + KEY `idx_societe_remise_except_fk_facture_line` (`fk_facture_line`), + KEY `idx_societe_remise_except_fk_facture` (`fk_facture`), + KEY `idx_societe_remise_except_fk_facture_source` (`fk_facture_source`), + CONSTRAINT `fk_societe_remise_fk_facture` FOREIGN KEY (`fk_facture`) REFERENCES `llx_facture` (`rowid`), + CONSTRAINT `fk_societe_remise_fk_facture_line` FOREIGN KEY (`fk_facture_line`) REFERENCES `llx_facturedet` (`rowid`), + CONSTRAINT `fk_societe_remise_fk_facture_source` FOREIGN KEY (`fk_facture_source`) REFERENCES `llx_facture` (`rowid`), + CONSTRAINT `fk_societe_remise_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`), + CONSTRAINT `fk_societe_remise_fk_user` FOREIGN KEY (`fk_user`) REFERENCES `llx_user` (`rowid`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_societe_remise_except` +-- + +LOCK TABLES `llx_societe_remise_except` WRITE; +/*!40000 ALTER TABLE `llx_societe_remise_except` DISABLE KEYS */; +INSERT INTO `llx_societe_remise_except` VALUES (1,23,'2013-03-08 10:02:54',5.00000000,0.00000000,5.00000000,0.000,1,775,NULL,NULL,'fsdfsf'),(2,19,'2013-03-19 09:36:15',10.00000000,1.25000000,11.25000000,12.500,1,1019,NULL,NULL,'hfghgf'); +/*!40000 ALTER TABLE `llx_societe_remise_except` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_societe_rib` +-- + +DROP TABLE IF EXISTS `llx_societe_rib`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_societe_rib` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_soc` int(11) NOT NULL, + `datec` datetime DEFAULT NULL, + `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `label` varchar(30) DEFAULT NULL, + `bank` varchar(255) DEFAULT NULL, + `code_banque` varchar(7) DEFAULT NULL, + `code_guichet` varchar(6) DEFAULT NULL, + `number` varchar(255) DEFAULT NULL, + `cle_rib` varchar(5) DEFAULT NULL, + `bic` varchar(20) DEFAULT NULL, + `iban_prefix` varchar(34) DEFAULT NULL, + `domiciliation` varchar(255) DEFAULT NULL, + `proprio` varchar(60) DEFAULT NULL, + `owner_address` text, + `import_key` varchar(14) DEFAULT NULL, + PRIMARY KEY (`rowid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_societe_rib` +-- + +LOCK TABLES `llx_societe_rib` WRITE; +/*!40000 ALTER TABLE `llx_societe_rib` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_societe_rib` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_socpeople` +-- + +DROP TABLE IF EXISTS `llx_socpeople`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_socpeople` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `datec` datetime DEFAULT NULL, + `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `fk_soc` int(11) DEFAULT NULL, + `entity` int(11) NOT NULL DEFAULT '1', + `civilite` varchar(6) DEFAULT NULL, + `lastname` varchar(50) DEFAULT NULL, + `firstname` varchar(50) DEFAULT NULL, + `address` varchar(255) DEFAULT NULL, + `zip` varchar(10) DEFAULT NULL, + `town` text, + `fk_departement` int(11) DEFAULT NULL, + `fk_pays` int(11) DEFAULT '0', + `birthday` date DEFAULT NULL, + `poste` varchar(80) DEFAULT NULL, + `phone` varchar(30) DEFAULT NULL, + `phone_perso` varchar(30) DEFAULT NULL, + `phone_mobile` varchar(30) DEFAULT NULL, + `fax` varchar(30) DEFAULT NULL, + `email` varchar(255) DEFAULT NULL, + `jabberid` varchar(255) DEFAULT NULL, + `priv` smallint(6) NOT NULL DEFAULT '0', + `no_email` smallint(6) NOT NULL DEFAULT '0', + `fk_user_creat` int(11) DEFAULT '0', + `fk_user_modif` int(11) DEFAULT NULL, + `note` text, + `default_lang` varchar(6) DEFAULT NULL, + `canvas` varchar(32) DEFAULT NULL, + `import_key` varchar(14) DEFAULT NULL, + PRIMARY KEY (`rowid`), + KEY `idx_socpeople_fk_soc` (`fk_soc`), + KEY `idx_socpeople_fk_user_creat` (`fk_user_creat`), + CONSTRAINT `fk_socpeople_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`), + CONSTRAINT `fk_socpeople_user_creat_user_rowid` FOREIGN KEY (`fk_user_creat`) REFERENCES `llx_user` (`rowid`) +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_socpeople` +-- + +LOCK TABLES `llx_socpeople` WRITE; +/*!40000 ALTER TABLE `llx_socpeople` DISABLE KEYS */; +INSERT INTO `llx_socpeople` VALUES (1,'2010-07-08 14:26:14','2010-07-08 20:45:28',1,1,'MR','Samira','Aljoun','','','',297,117,'2010-07-08','Project leader','','','','','','',0,0,1,1,'Met during a congress at Dubai',NULL,NULL,NULL),(2,'2010-07-08 22:44:50','2010-07-08 20:59:57',NULL,1,'MR','Freeman','Public','','','',200,11,NULL,'','','','','','','',0,0,1,1,'A friend that is a free contact not linked to any company',NULL,NULL,NULL),(3,'2010-07-08 22:59:02','2010-07-08 20:59:35',NULL,1,'MR','Freeman','Private','','','',NULL,11,NULL,'','','','','','','',1,0,1,1,'This is a private contact',NULL,NULL,NULL),(4,'2010-07-09 00:16:58','2010-07-08 22:16:58',6,1,'MR','Rotchield','Evan','','','',NULL,6,NULL,'Bank director','','','','','','',0,0,1,1,'The bank director',NULL,NULL,NULL),(5,'2010-07-10 14:54:44','2010-07-10 12:54:44',9,1,'','Client salon invidivdu','','','','',NULL,NULL,NULL,'','','','','','','',0,0,1,1,'',NULL,NULL,NULL),(6,'2011-08-01 02:41:26','2011-08-01 00:41:26',17,1,'','aaa','','aaa','','',289,117,NULL,'','','','','','','',0,0,1,1,'',NULL,NULL,NULL),(7,'2013-02-12 17:05:57','2013-03-08 01:45:08',7,1,'','aaa','','','','',289,117,NULL,'','','','','','aaa@aaa.com','',0,0,1,1,'',NULL,NULL,NULL),(8,'2013-03-08 02:45:31','2013-03-08 01:45:31',7,1,'','kkkk','','','','',290,117,NULL,'','','','','','ttt@ttt.com','',0,0,1,1,'',NULL,NULL,NULL),(10,'2013-03-08 02:48:23','2013-03-08 01:48:23',7,1,'','fff','','','','',290,117,NULL,'','','','','','ttt@ttt.com','',0,0,1,1,'',NULL,NULL,NULL),(11,'2013-03-08 02:48:54','2013-03-08 01:48:54',7,1,'','iii','','','','',294,117,NULL,'','','','','','ttt@ttt.com','',0,0,1,1,'',NULL,NULL,NULL); +/*!40000 ALTER TABLE `llx_socpeople` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_socpeople_extrafields` +-- + +DROP TABLE IF EXISTS `llx_socpeople_extrafields`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_socpeople_extrafields` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `fk_object` int(11) NOT NULL, + `import_key` varchar(14) DEFAULT NULL, + PRIMARY KEY (`rowid`), + KEY `idx_socpeople_extrafields` (`fk_object`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_socpeople_extrafields` +-- + +LOCK TABLES `llx_socpeople_extrafields` WRITE; +/*!40000 ALTER TABLE `llx_socpeople_extrafields` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_socpeople_extrafields` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_stock_mouvement` +-- + +DROP TABLE IF EXISTS `llx_stock_mouvement`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_stock_mouvement` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `datem` datetime DEFAULT NULL, + `fk_product` int(11) NOT NULL, + `fk_entrepot` int(11) NOT NULL, + `value` double DEFAULT NULL, + `price` float(13,4) DEFAULT '0.0000', + `type_mouvement` smallint(6) DEFAULT NULL, + `fk_user_author` int(11) DEFAULT NULL, + `label` varchar(128) DEFAULT NULL, + PRIMARY KEY (`rowid`), + KEY `idx_stock_mouvement_fk_product` (`fk_product`), + KEY `idx_stock_mouvement_fk_entrepot` (`fk_entrepot`) +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_stock_mouvement` +-- + +LOCK TABLES `llx_stock_mouvement` WRITE; +/*!40000 ALTER TABLE `llx_stock_mouvement` DISABLE KEYS */; +INSERT INTO `llx_stock_mouvement` VALUES (1,'2010-07-08 22:43:51','2010-07-09 00:43:51',2,2,1000,0.0000,0,1,'Correct stock'),(3,'2010-07-10 22:56:18','2010-07-11 00:56:18',4,2,500,0.0000,0,1,'Init'),(4,'2010-07-10 23:02:20','2010-07-11 01:02:20',4,2,500,0.0000,0,1,''),(5,'2010-07-11 16:49:44','2010-07-11 18:49:44',4,1,2,10.0000,3,1,''),(6,'2010-07-11 16:49:44','2010-07-11 18:49:44',1,1,4,0.0000,3,1,''),(7,'2013-01-19 17:22:48','2013-01-19 18:22:48',11,1,-1,0.0000,2,1,'Facture créée dans DoliPOS'),(8,'2013-01-19 17:22:48','2013-01-19 18:22:48',4,1,-1,5.0000,2,1,'Facture créée dans DoliPOS'),(9,'2013-01-19 17:22:48','2013-01-19 18:22:48',1,1,-2,0.0000,2,1,'Facture créée dans DoliPOS'),(10,'2013-01-19 17:31:10','2013-01-19 18:31:10',2,1,-1,0.0000,2,1,'Facture créée dans DoliPOS'),(11,'2013-01-19 17:31:58','2013-01-19 18:31:58',2,1,-1,0.0000,2,1,'Facture créée dans DoliPOS'); +/*!40000 ALTER TABLE `llx_stock_mouvement` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_submitew_message` +-- + +DROP TABLE IF EXISTS `llx_submitew_message`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_submitew_message` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `statut` smallint(6) DEFAULT '0', + `label` varchar(60) DEFAULT NULL, + `entity` int(11) NOT NULL DEFAULT '1', + `title` varchar(60) DEFAULT NULL, + `body_short` text, + `body_long` text, + `url` varchar(255) DEFAULT NULL, + `cible` varchar(60) DEFAULT NULL, + `nbemail` int(11) DEFAULT NULL, + `email_from` varchar(160) DEFAULT NULL, + `email_replyto` varchar(160) DEFAULT NULL, + `email_errorsto` varchar(160) DEFAULT NULL, + `tag` varchar(128) DEFAULT NULL, + `date_creat` datetime DEFAULT NULL, + `date_valid` datetime DEFAULT NULL, + `date_appro` datetime DEFAULT NULL, + `date_envoi` datetime DEFAULT NULL, + `fk_user_creat` int(11) DEFAULT NULL, + `fk_user_valid` int(11) DEFAULT NULL, + `fk_user_appro` int(11) DEFAULT NULL, + `joined_file1` varchar(255) DEFAULT NULL, + `joined_file2` varchar(255) DEFAULT NULL, + `joined_file3` varchar(255) DEFAULT NULL, + `joined_file4` varchar(255) DEFAULT NULL, + PRIMARY KEY (`rowid`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_submitew_message` +-- + +LOCK TABLES `llx_submitew_message` WRITE; +/*!40000 ALTER TABLE `llx_submitew_message` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_submitew_message` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_submitew_targets` +-- + +DROP TABLE IF EXISTS `llx_submitew_targets`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_submitew_targets` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `label` varchar(64) NOT NULL, + `targetcode` varchar(16) NOT NULL, + `langcode` varchar(5) DEFAULT 'en_US', + `url` varchar(250) DEFAULT NULL, + `login` varchar(128) DEFAULT NULL, + `pass` varchar(128) DEFAULT NULL, + `comment` varchar(250) DEFAULT NULL, + `position` int(11) DEFAULT '0', + `titlelength` int(11) DEFAULT '32', + `descshortlength` int(11) DEFAULT '256', + `desclonglength` int(11) DEFAULT '2000', + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_submitewtargets` (`label`,`langcode`) +) ENGINE=InnoDB AUTO_INCREMENT=72 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_submitew_targets` +-- + +LOCK TABLES `llx_submitew_targets` WRITE; +/*!40000 ALTER TABLE `llx_submitew_targets` DISABLE KEYS */; +INSERT INTO `llx_submitew_targets` VALUES (17,'hhho','email','fr_FR','',NULL,NULL,NULL,0,0,-1,0),(34,'pppp','facebook','fr_FR',NULL,'eldy','ld101010-fk',NULL,0,-1,-1,-1),(35,'hfghfgh','web','de_DE','http://wwww','ffffmmm','null',NULL,0,-1,-1,-1),(37,'llll','linkedin','fr_FR','',NULL,NULL,NULL,0,32,256,2000),(55,'fff','dig','fr_FR',NULL,'hfgh','hfghgf',NULL,0,-1,-1,-1),(56,'aaaaaaa','linkedin','da_DK',NULL,'aa','aaa',NULL,0,32,256,2000),(57,'ddd','dig','en_US',NULL,'dd',NULL,NULL,0,32,256,2000),(59,'dddff','dig','en_US',NULL,NULL,NULL,NULL,0,32,256,2000),(68,'dddffe','dig','en_US',NULL,NULL,NULL,NULL,0,32,256,2000),(70,'dddffef','dig','en_US','http://www.dig.com',NULL,NULL,NULL,0,32,256,2000),(71,'ffff','dig','en_US','http://www.dig.com',NULL,NULL,NULL,0,32,256,2000); +/*!40000 ALTER TABLE `llx_submitew_targets` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_submitew_targets_params` +-- + +DROP TABLE IF EXISTS `llx_submitew_targets_params`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_submitew_targets_params` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_target` int(11) NOT NULL, + `paramkey` varchar(16) NOT NULL, + `paramvalue` varchar(128) DEFAULT '', + PRIMARY KEY (`rowid`), + UNIQUE KEY `idx_submitewtargets_fk_target` (`fk_target`), + UNIQUE KEY `uk_submitewtargets_params` (`fk_target`,`paramkey`,`paramvalue`), + CONSTRAINT `fk_submitewtargets_fk_target` FOREIGN KEY (`fk_target`) REFERENCES `llx_submitew_targets` (`rowid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_submitew_targets_params` +-- + +LOCK TABLES `llx_submitew_targets_params` WRITE; +/*!40000 ALTER TABLE `llx_submitew_targets_params` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_submitew_targets_params` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_texts` +-- + +DROP TABLE IF EXISTS `llx_texts`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_texts` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `module` varchar(32) DEFAULT NULL, + `typemodele` varchar(32) DEFAULT NULL, + `sortorder` smallint(6) DEFAULT NULL, + `private` smallint(6) NOT NULL DEFAULT '0', + `fk_user` int(11) DEFAULT NULL, + `title` varchar(128) DEFAULT NULL, + `filename` varchar(128) DEFAULT NULL, + `content` text, + `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`rowid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_texts` +-- + +LOCK TABLES `llx_texts` WRITE; +/*!40000 ALTER TABLE `llx_texts` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_texts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_tva` +-- + +DROP TABLE IF EXISTS `llx_tva`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_tva` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `datep` date DEFAULT NULL, + `datev` date DEFAULT NULL, + `amount` double NOT NULL DEFAULT '0', + `label` varchar(255) DEFAULT NULL, + `entity` int(11) NOT NULL DEFAULT '1', + `note` text, + `fk_bank` int(11) DEFAULT NULL, + `fk_user_creat` int(11) DEFAULT NULL, + `fk_user_modif` int(11) DEFAULT NULL, + PRIMARY KEY (`rowid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_tva` +-- + +LOCK TABLES `llx_tva` WRITE; +/*!40000 ALTER TABLE `llx_tva` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_tva` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_user` +-- + +DROP TABLE IF EXISTS `llx_user`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_user` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `datec` datetime DEFAULT NULL, + `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `login` varchar(24) NOT NULL, + `entity` int(11) NOT NULL DEFAULT '1', + `civilite` varchar(6) DEFAULT NULL, + `ref_ext` varchar(50) DEFAULT NULL, + `ref_int` varchar(50) DEFAULT NULL, + `pass` varchar(32) DEFAULT NULL, + `pass_crypted` varchar(128) DEFAULT NULL, + `pass_temp` varchar(32) DEFAULT NULL, + `lastname` varchar(50) DEFAULT NULL, + `firstname` varchar(50) DEFAULT NULL, + `job` varchar(128) DEFAULT NULL, + `office_phone` varchar(20) DEFAULT NULL, + `office_fax` varchar(20) DEFAULT NULL, + `user_mobile` varchar(20) DEFAULT NULL, + `email` varchar(255) DEFAULT NULL, + `signature` text, + `admin` smallint(6) DEFAULT '0', + `webcal_login` varchar(25) DEFAULT NULL, + `phenix_login` varchar(25) DEFAULT NULL, + `phenix_pass` varchar(128) DEFAULT NULL, + `module_comm` smallint(6) DEFAULT '1', + `module_compta` smallint(6) DEFAULT '1', + `fk_societe` int(11) DEFAULT NULL, + `fk_socpeople` int(11) DEFAULT NULL, + `fk_member` int(11) DEFAULT NULL, + `note` text, + `datelastlogin` datetime DEFAULT NULL, + `datepreviouslogin` datetime DEFAULT NULL, + `egroupware_id` int(11) DEFAULT NULL, + `ldap_sid` varchar(255) DEFAULT NULL, + `statut` tinyint(4) DEFAULT '1', + `photo` varchar(255) DEFAULT NULL, + `lang` varchar(6) DEFAULT NULL, + `openid` varchar(255) DEFAULT NULL, + `fk_user` int(11) DEFAULT NULL, + `address` varchar(255) DEFAULT NULL, + `zip` varchar(25) DEFAULT NULL, + `town` varchar(50) DEFAULT NULL, + `fk_state` int(11) DEFAULT '0', + `fk_country` int(11) DEFAULT '0', + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_user_login` (`login`,`entity`), + UNIQUE KEY `uk_user_fk_socpeople` (`fk_socpeople`), + UNIQUE KEY `uk_user_fk_member` (`fk_member`), + KEY `uk_user_fk_societe` (`fk_societe`) +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for 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 17:54:10','admin',0,NULL,NULL,NULL,'admin','21232f297a57a5a743894a0e4a801fc3',NULL,'SuperAdminName','Firstname','','','','','eldy@destailleur.fr','',1,'','','',1,1,NULL,NULL,NULL,'','2013-03-24 18:44:29','2013-03-24 17:55:13',NULL,'',1,'01.jpg',NULL,NULL,NULL,NULL,NULL,NULL,0,0),(2,'2010-07-08 13:54:48','2010-07-08 11:54:48','demo',1,NULL,NULL,NULL,'demo','fe01ce2a7fbac8fafaed7c982a04e229',NULL,'John','Doe',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,0,0),(3,'2010-07-11 16:18:59','2013-02-20 19:07:21','adupont',1,NULL,NULL,NULL,'adupont','00856ab2bbb748aa29aa335a6e3a2407',NULL,'Dupont','Alain','','','','','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,0,0),(4,'2013-01-23 17:52:27','2013-02-20 19:48:01','aaa',1,NULL,NULL,NULL,'aaa','47bce5c74f589f4867dbd57e9ca9f808',NULL,'aaa','','','','','','','',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,0,0),(5,'2013-01-23 17:52:37','2013-01-23 16:52:37','bbb',0,NULL,NULL,NULL,'bbb','08f8e0260c64418510cefb2b06eee5cd',NULL,'bbb','','','','','','','',1,'','','',1,1,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0),(6,'2013-02-16 20:22:40','2013-02-16 19:22:40','aaab',2,NULL,NULL,NULL,'aaab','4c189b020ceb022e0ecc42482802e2b8',NULL,'aaab','','','','','','','',0,'','','',1,1,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0),(7,'2013-02-16 20:48:15','2013-02-16 19:48:15','zzz',2,NULL,NULL,NULL,'zzz','f3abb86bd34cf4d52698f14c0da1dc60',NULL,'zzz','','','','','','','',0,'','','',1,1,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0),(9,'2013-02-16 20:50:07','2013-03-24 16:10:14','zzzg',2,NULL,NULL,NULL,'jc28fg4h','93d789524fd223cf05eecea3f59cbe86',NULL,'zzzg','','','','','','','fsdkkfsdf
\r\nfsdfsd
\r\nfsdfs',0,'','','',1,1,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,NULL,NULL,NULL,5,'','','',NULL,NULL); +/*!40000 ALTER TABLE `llx_user` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_user_alert` +-- + +DROP TABLE IF EXISTS `llx_user_alert`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_user_alert` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `type` int(11) DEFAULT NULL, + `fk_contact` int(11) DEFAULT NULL, + `fk_user` int(11) DEFAULT NULL, + PRIMARY KEY (`rowid`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_user_alert` +-- + +LOCK TABLES `llx_user_alert` WRITE; +/*!40000 ALTER TABLE `llx_user_alert` DISABLE KEYS */; +INSERT INTO `llx_user_alert` VALUES (1,1,1,1); +/*!40000 ALTER TABLE `llx_user_alert` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_user_clicktodial` +-- + +DROP TABLE IF EXISTS `llx_user_clicktodial`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_user_clicktodial` ( + `fk_user` int(11) NOT NULL, + `login` varchar(32) DEFAULT NULL, + `pass` varchar(64) DEFAULT NULL, + `poste` varchar(20) DEFAULT NULL, + PRIMARY KEY (`fk_user`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_user_clicktodial` +-- + +LOCK TABLES `llx_user_clicktodial` WRITE; +/*!40000 ALTER TABLE `llx_user_clicktodial` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_user_clicktodial` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_user_extrafields` +-- + +DROP TABLE IF EXISTS `llx_user_extrafields`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_user_extrafields` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `fk_object` int(11) NOT NULL, + `import_key` varchar(14) DEFAULT NULL, + PRIMARY KEY (`rowid`), + KEY `idx_user_extrafields` (`fk_object`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_user_extrafields` +-- + +LOCK TABLES `llx_user_extrafields` WRITE; +/*!40000 ALTER TABLE `llx_user_extrafields` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_user_extrafields` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_user_param` +-- + +DROP TABLE IF EXISTS `llx_user_param`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_user_param` ( + `fk_user` int(11) NOT NULL, + `entity` int(11) NOT NULL DEFAULT '1', + `param` varchar(64) NOT NULL, + `value` varchar(255) NOT NULL, + UNIQUE KEY `uk_user_param` (`fk_user`,`param`,`entity`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_user_param` +-- + +LOCK TABLES `llx_user_param` WRITE; +/*!40000 ALTER TABLE `llx_user_param` DISABLE KEYS */; +INSERT INTO `llx_user_param` VALUES (1,1,'MAIN_BOXES_0','1'),(1,1,'MAIN_THEME','eldy'),(1,3,'THEME_ELDY_ENABLE_PERSONALIZED','1'),(1,1,'THEME_ELDY_RGB','ded0ed'),(1,3,'THEME_ELDY_RGB','d0ddc3'); +/*!40000 ALTER TABLE `llx_user_param` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_user_rights` +-- + +DROP TABLE IF EXISTS `llx_user_rights`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_user_rights` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_user` int(11) NOT NULL, + `fk_id` int(11) NOT NULL, + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_user_rights` (`fk_user`,`fk_id`), + CONSTRAINT `fk_user_rights_fk_user_user` FOREIGN KEY (`fk_user`) REFERENCES `llx_user` (`rowid`) +) ENGINE=InnoDB AUTO_INCREMENT=10373 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_user_rights` +-- + +LOCK TABLES `llx_user_rights` WRITE; +/*!40000 ALTER TABLE `llx_user_rights` DISABLE KEYS */; +INSERT INTO `llx_user_rights` VALUES (10137,1,11),(10113,1,12),(10118,1,13),(10123,1,14),(10128,1,15),(10133,1,16),(10139,1,19),(9726,1,21),(9700,1,22),(9706,1,24),(9711,1,25),(9716,1,26),(9722,1,27),(9728,1,28),(9978,1,31),(9968,1,32),(9974,1,34),(1910,1,36),(9980,1,38),(7184,1,61),(7181,1,62),(7183,1,64),(7185,1,67),(7186,1,68),(1678,1,71),(1673,1,72),(1675,1,74),(1679,1,75),(1677,1,76),(1681,1,78),(1682,1,79),(7945,1,81),(7937,1,82),(7939,1,84),(7940,1,86),(7942,1,87),(7944,1,88),(7946,1,89),(9796,1,91),(10097,1,95),(10099,1,96),(10103,1,97),(10104,1,98),(7139,1,101),(7134,1,102),(7136,1,104),(7137,1,105),(7138,1,106),(7140,1,109),(10229,1,111),(10201,1,112),(10207,1,113),(10213,1,114),(10219,1,115),(10225,1,116),(10231,1,117),(10303,1,121),(10293,1,122),(10299,1,125),(10305,1,126),(2307,1,151),(2304,1,152),(2306,1,153),(2308,1,154),(10092,1,161),(10093,1,162),(10094,1,163),(10095,1,164),(10096,1,165),(1585,1,170),(8013,1,171),(8010,1,172),(8012,1,173),(8014,1,178),(10000,1,221),(9990,1,222),(9996,1,223),(10002,1,229),(10007,1,237),(10011,1,238),(10015,1,239),(1686,1,241),(1685,1,242),(1687,1,243),(8006,1,251),(7987,1,252),(7989,1,253),(7990,1,254),(7992,1,255),(7994,1,256),(1617,1,258),(10310,1,262),(10329,1,281),(10319,1,282),(10325,1,283),(10331,1,286),(1763,1,331),(1762,1,332),(1764,1,333),(7995,1,341),(7996,1,342),(7997,1,343),(7998,1,344),(8004,1,351),(8001,1,352),(8003,1,353),(8005,1,354),(8007,1,358),(7933,1,531),(7930,1,532),(7932,1,534),(1625,1,536),(7934,1,538),(8019,1,700),(9812,1,701),(9808,1,702),(9814,1,703),(1755,1,1001),(1754,1,1002),(1756,1,1003),(1758,1,1004),(1759,1,1005),(7146,1,1101),(7143,1,1102),(7145,1,1104),(7147,1,1109),(10235,1,1181),(10283,1,1182),(10240,1,1183),(10244,1,1184),(10248,1,1185),(10252,1,1186),(10256,1,1187),(10260,1,1188),(1578,1,1201),(1579,1,1202),(10279,1,1231),(10266,1,1232),(10270,1,1233),(10274,1,1234),(10277,1,1235),(10280,1,1236),(10284,1,1237),(1736,1,1251),(10144,1,1321),(7947,1,1421),(8190,1,1791),(8187,1,1792),(8191,1,1793),(9624,1,2401),(9620,1,2402),(9626,1,2403),(9640,1,2411),(9636,1,2412),(9642,1,2413),(1618,1,2500),(8024,1,2501),(8023,1,2503),(8025,1,2515),(9610,1,5001),(9611,1,5002),(8155,1,20001),(8159,1,20002),(8163,1,20003),(8167,1,20004),(8171,1,20005),(8175,1,20006),(10345,1,23001),(10338,1,23002),(10342,1,23003),(10346,1,23004),(7701,1,50101),(4984,1,50401),(4983,1,50402),(4985,1,50403),(4987,1,50411),(4988,1,50412),(4989,1,50415),(3564,1,100700),(3565,1,100701),(9596,1,101051),(9598,1,101052),(9600,1,101053),(9604,1,101060),(9605,1,101061),(7177,1,101201),(7178,1,101202),(10353,1,101250),(10355,1,101251),(8980,1,101261),(8981,1,101262),(7616,1,101331),(10030,1,101701),(10031,1,101702),(3582,1,102000),(3583,1,102001),(9819,1,400051),(9823,1,400052),(9827,1,400053),(9831,1,400055),(132,2,11),(133,2,12),(134,2,13),(135,2,14),(136,2,16),(137,2,19),(138,2,21),(139,2,22),(140,2,24),(141,2,25),(142,2,26),(143,2,27),(10359,2,31),(145,2,32),(10361,2,34),(146,2,36),(147,2,41),(148,2,42),(149,2,44),(150,2,61),(151,2,62),(152,2,64),(153,2,71),(154,2,72),(155,2,74),(156,2,75),(157,2,78),(158,2,79),(159,2,81),(160,2,82),(161,2,84),(162,2,86),(163,2,87),(164,2,88),(165,2,89),(166,2,91),(167,2,92),(168,2,93),(2475,2,95),(2476,2,96),(2477,2,97),(2478,2,98),(169,2,101),(170,2,102),(171,2,104),(172,2,109),(173,2,111),(174,2,112),(175,2,113),(176,2,114),(177,2,116),(178,2,117),(179,2,121),(180,2,122),(181,2,125),(182,2,141),(183,2,142),(184,2,144),(2479,2,151),(2480,2,152),(2481,2,153),(2482,2,154),(185,2,161),(186,2,162),(187,2,163),(188,2,164),(189,2,165),(190,2,170),(2471,2,171),(192,2,172),(2472,2,173),(193,2,221),(194,2,222),(195,2,229),(196,2,241),(197,2,242),(198,2,243),(199,2,251),(201,2,262),(202,2,281),(203,2,282),(204,2,283),(205,2,331),(2483,2,531),(207,2,532),(2484,2,534),(208,2,536),(2473,2,700),(210,2,701),(211,2,702),(2474,2,703),(212,2,1001),(213,2,1002),(214,2,1003),(215,2,1004),(216,2,1005),(217,2,1101),(218,2,1102),(219,2,1104),(220,2,1109),(221,2,1181),(222,2,1182),(223,2,1183),(224,2,1184),(225,2,1185),(226,2,1186),(227,2,1187),(228,2,1188),(229,2,1201),(230,2,1202),(231,2,1231),(232,2,1232),(233,2,1233),(234,2,1234),(235,2,1421),(236,2,2401),(237,2,2402),(238,2,2403),(239,2,2411),(240,2,2412),(241,2,2413),(242,2,2500),(2470,2,2501),(243,2,2515),(10363,2,20001),(10364,2,20002),(10365,2,20003),(10366,2,20004),(10367,2,20005),(10368,2,20006),(10362,2,50101),(10372,2,101250),(1807,3,11),(1808,3,31),(1809,3,36),(1810,3,41),(1811,3,61),(1812,3,71),(1813,3,72),(1814,3,74),(1815,3,75),(1816,3,78),(1817,3,79),(1818,3,91),(1819,3,95),(1820,3,97),(1821,3,111),(1822,3,121),(1823,3,122),(1824,3,125),(1825,3,161),(1826,3,170),(1827,3,171),(1828,3,172),(1829,3,221),(1830,3,222),(1831,3,229),(1832,3,241),(1833,3,242),(1834,3,243),(1835,3,251),(1836,3,255),(1837,3,256),(1838,3,262),(1839,3,281),(1840,3,282),(1841,3,283),(1842,3,331),(1843,3,531),(1844,3,536),(1845,3,700),(1846,3,1001),(1847,3,1002),(1848,3,1003),(1849,3,1004),(1850,3,1005),(1851,3,1181),(1852,3,1182),(1853,3,1201),(1854,3,1202),(1855,3,1231),(1856,3,2401),(1857,3,2402),(1858,3,2403),(1859,3,2411),(1860,3,2412),(1861,3,2413),(1862,3,2500),(1863,3,2515),(8026,4,11),(8027,4,21),(8028,4,31),(8029,4,41),(8030,4,61),(8031,4,71),(8032,4,72),(8033,4,74),(8034,4,75),(8035,4,78),(8036,4,79),(8037,4,81),(8038,4,91),(8039,4,95),(8040,4,97),(8041,4,101),(8042,4,111),(8043,4,121),(8044,4,151),(8045,4,161),(8046,4,171),(8047,4,221),(8048,4,222),(8049,4,229),(8050,4,241),(8051,4,242),(8052,4,243),(8146,4,251),(8147,4,253),(8053,4,262),(8054,4,281),(8055,4,331),(8056,4,341),(8057,4,342),(8058,4,343),(8059,4,344),(8060,4,531),(8061,4,700),(8062,4,1001),(8063,4,1002),(8064,4,1003),(8065,4,1004),(8066,4,1005),(8067,4,1101),(8068,4,1181),(8069,4,1182),(8070,4,1201),(8071,4,1202),(8072,4,1231),(8073,4,2401),(8074,4,2501),(8075,4,2503),(8076,4,2515),(8077,4,20001),(8078,4,50101),(8079,4,101201),(8080,4,101261),(8081,4,102000),(8082,4,400051),(8083,4,400052),(8084,4,400053),(8085,4,400055),(10140,5,11),(10116,5,12),(10120,5,13),(10126,5,14),(10130,5,15),(10136,5,16),(10142,5,19),(9729,5,21),(9703,5,22),(9709,5,24),(9713,5,25),(9719,5,26),(9725,5,27),(9731,5,28),(9981,5,31),(9971,5,32),(9977,5,34),(9983,5,38),(8089,5,41),(8090,5,61),(8091,5,71),(8092,5,72),(8093,5,74),(8094,5,75),(8095,5,78),(8096,5,79),(8097,5,81),(9799,5,91),(9789,5,92),(9795,5,93),(9801,5,94),(10098,5,95),(10100,5,96),(10105,5,97),(10106,5,98),(8101,5,101),(10232,5,111),(10204,5,112),(10210,5,113),(10216,5,114),(10222,5,115),(10228,5,116),(10234,5,117),(10306,5,121),(10296,5,122),(10302,5,125),(10308,5,126),(8104,5,151),(8105,5,161),(8106,5,171),(10003,5,221),(9993,5,222),(9999,5,223),(10005,5,229),(10009,5,237),(10013,5,238),(10017,5,239),(8110,5,241),(8111,5,242),(8112,5,243),(10312,5,262),(10332,5,281),(10322,5,282),(10328,5,283),(10334,5,286),(8115,5,331),(8116,5,341),(8117,5,342),(8118,5,343),(8119,5,344),(8120,5,531),(8121,5,700),(9815,5,701),(9811,5,702),(9817,5,703),(8122,5,1001),(8123,5,1002),(8124,5,1003),(8125,5,1004),(8126,5,1005),(8127,5,1101),(10236,5,1181),(10285,5,1182),(10242,5,1183),(10246,5,1184),(10250,5,1185),(10254,5,1186),(10258,5,1187),(10262,5,1188),(8130,5,1201),(8131,5,1202),(10281,5,1231),(10268,5,1232),(10272,5,1233),(10276,5,1234),(10278,5,1235),(10282,5,1236),(10286,5,1237),(10146,5,1321),(8192,5,1791),(8189,5,1792),(8193,5,1793),(9627,5,2401),(9623,5,2402),(9629,5,2403),(9643,5,2411),(9639,5,2412),(9645,5,2413),(8134,5,2501),(8135,5,2503),(8136,5,2515),(9612,5,5001),(9613,5,5002),(8157,5,20001),(8161,5,20002),(8165,5,20003),(8169,5,20004),(8173,5,20005),(8177,5,20006),(10347,5,23001),(10340,5,23002),(10344,5,23003),(10348,5,23004),(8138,5,50101),(9597,5,101051),(9599,5,101052),(9601,5,101053),(9606,5,101060),(9607,5,101061),(8139,5,101201),(10356,5,101250),(10358,5,101251),(8982,5,101261),(8983,5,101262),(10032,5,101701),(10033,5,101702),(8141,5,102000),(9821,5,400051),(9825,5,400052),(9829,5,400053),(9833,5,400055),(8194,6,11),(8195,6,21),(8196,6,31),(8197,6,41),(8198,6,61),(8199,6,71),(8200,6,72),(8201,6,74),(8202,6,75),(8203,6,78),(8204,6,79),(8205,6,81),(8206,6,91),(8207,6,95),(8208,6,97),(8209,6,101),(8210,6,111),(8211,6,121),(8212,6,151),(8213,6,161),(8214,6,171),(8215,6,221),(8216,6,222),(8217,6,229),(8218,6,241),(8219,6,242),(8220,6,243),(8221,6,262),(8222,6,281),(8223,6,331),(8224,6,341),(8225,6,342),(8226,6,343),(8227,6,344),(8228,6,531),(8229,6,700),(8230,6,1001),(8231,6,1002),(8232,6,1003),(8233,6,1004),(8234,6,1005),(8235,6,1101),(8236,6,1181),(8237,6,1182),(8238,6,1201),(8239,6,1202),(8240,6,1231),(8241,6,1791),(8242,6,2401),(8243,6,2501),(8244,6,2503),(8245,6,2515),(8246,6,5001),(8247,6,20001),(8248,6,50101),(8249,6,101201),(8250,6,101261),(8251,6,102000),(8252,6,400051),(8253,6,400052),(8254,6,400053),(8255,6,400055),(8256,7,11),(8257,7,21),(8258,7,31),(8259,7,41),(8260,7,61),(8261,7,71),(8262,7,72),(8263,7,74),(8264,7,75),(8265,7,78),(8266,7,79),(8267,7,81),(8268,7,91),(8269,7,95),(8270,7,97),(8271,7,101),(8272,7,111),(8273,7,121),(8274,7,151),(8275,7,161),(8276,7,171),(8277,7,221),(8278,7,222),(8279,7,229),(8280,7,241),(8281,7,242),(8282,7,243),(8283,7,262),(8284,7,281),(8285,7,331),(8286,7,341),(8287,7,342),(8288,7,343),(8289,7,344),(8290,7,531),(8291,7,700),(8292,7,1001),(8293,7,1002),(8294,7,1003),(8295,7,1004),(8296,7,1005),(8297,7,1101),(8298,7,1181),(8299,7,1182),(8300,7,1201),(8301,7,1202),(8302,7,1231),(8303,7,1791),(8304,7,2401),(8305,7,2501),(8306,7,2503),(8307,7,2515),(8308,7,5001),(8309,7,20001),(8310,7,50101),(8311,7,101201),(8312,7,101261),(8313,7,102000),(8314,7,400051),(8315,7,400052),(8316,7,400053),(8317,7,400055),(8318,9,11),(8319,9,21),(8320,9,31),(8321,9,41),(8322,9,61),(8323,9,71),(8324,9,72),(8325,9,74),(8326,9,75),(8327,9,78),(8328,9,79),(8329,9,81),(8330,9,91),(8331,9,95),(8332,9,97),(8333,9,101),(8334,9,111),(8335,9,121),(8336,9,151),(8337,9,161),(8338,9,171),(8339,9,221),(8340,9,222),(8341,9,229),(8342,9,241),(8343,9,242),(8344,9,243),(8345,9,262),(8346,9,281),(8347,9,331),(8348,9,341),(8349,9,342),(8350,9,343),(8351,9,344),(8352,9,531),(8353,9,700),(8354,9,1001),(8355,9,1002),(8356,9,1003),(8357,9,1004),(8358,9,1005),(8359,9,1101),(8360,9,1181),(8361,9,1182),(8362,9,1201),(8363,9,1202),(8364,9,1231),(8365,9,1791),(8366,9,2401),(8367,9,2501),(8368,9,2503),(8369,9,2515),(8370,9,5001),(8371,9,20001),(8372,9,50101),(8373,9,101201),(8374,9,101261),(8375,9,102000),(8376,9,400051),(8377,9,400052),(8378,9,400053),(8379,9,400055); +/*!40000 ALTER TABLE `llx_user_rights` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_usergroup` +-- + +DROP TABLE IF EXISTS `llx_usergroup`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_usergroup` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `nom` varchar(255) NOT NULL, + `entity` int(11) NOT NULL DEFAULT '1', + `datec` datetime DEFAULT NULL, + `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `note` text, + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_usergroup_name` (`nom`,`entity`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_usergroup` +-- + +LOCK TABLES `llx_usergroup` WRITE; +/*!40000 ALTER TABLE `llx_usergroup` DISABLE KEYS */; +INSERT INTO `llx_usergroup` VALUES (1,'ggg',1,'2013-01-16 20:48:08','2013-01-16 19:48:08','ggg'); +/*!40000 ALTER TABLE `llx_usergroup` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_usergroup_rights` +-- + +DROP TABLE IF EXISTS `llx_usergroup_rights`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_usergroup_rights` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_usergroup` int(11) NOT NULL, + `fk_id` int(11) NOT NULL, + PRIMARY KEY (`rowid`), + UNIQUE KEY `fk_usergroup` (`fk_usergroup`,`fk_id`), + CONSTRAINT `fk_usergroup_rights_fk_usergroup` FOREIGN KEY (`fk_usergroup`) REFERENCES `llx_usergroup` (`rowid`) +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_usergroup_rights` +-- + +LOCK TABLES `llx_usergroup_rights` WRITE; +/*!40000 ALTER TABLE `llx_usergroup_rights` DISABLE KEYS */; +INSERT INTO `llx_usergroup_rights` VALUES (1,1,2401),(2,1,2402),(3,1,2403),(4,1,2411),(5,1,2412),(6,1,2413); +/*!40000 ALTER TABLE `llx_usergroup_rights` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_usergroup_user` +-- + +DROP TABLE IF EXISTS `llx_usergroup_user`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_usergroup_user` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `entity` int(11) NOT NULL DEFAULT '1', + `fk_user` int(11) NOT NULL, + `fk_usergroup` int(11) NOT NULL, + PRIMARY KEY (`rowid`), + UNIQUE KEY `uk_usergroup_user` (`entity`,`fk_user`,`fk_usergroup`), + KEY `fk_usergroup_user_fk_user` (`fk_user`), + KEY `fk_usergroup_user_fk_usergroup` (`fk_usergroup`), + CONSTRAINT `fk_usergroup_user_fk_user` FOREIGN KEY (`fk_user`) REFERENCES `llx_user` (`rowid`), + CONSTRAINT `fk_usergroup_user_fk_usergroup` FOREIGN KEY (`fk_usergroup`) REFERENCES `llx_usergroup` (`rowid`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_usergroup_user` +-- + +LOCK TABLES `llx_usergroup_user` WRITE; +/*!40000 ALTER TABLE `llx_usergroup_user` DISABLE KEYS */; +INSERT INTO `llx_usergroup_user` VALUES (1,1,1,1); +/*!40000 ALTER TABLE `llx_usergroup_user` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `llx_ventilation_achat` +-- + +DROP TABLE IF EXISTS `llx_ventilation_achat`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `llx_ventilation_achat` ( + `rowid` int(11) NOT NULL AUTO_INCREMENT, + `fk_code_ventilation` int(11) DEFAULT NULL, + `fk_facture` int(11) DEFAULT NULL, + `fk_facture_fourn_det` int(11) DEFAULT NULL, + `ventilation` varchar(255) DEFAULT NULL, + `qty` double DEFAULT NULL, + PRIMARY KEY (`rowid`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `llx_ventilation_achat` +-- + +LOCK TABLES `llx_ventilation_achat` WRITE; +/*!40000 ALTER TABLE `llx_ventilation_achat` DISABLE KEYS */; +/*!40000 ALTER TABLE `llx_ventilation_achat` ENABLE KEYS */; +UNLOCK TABLES; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2013-03-24 19:37:19 diff --git a/dev/ldap/setup_example_activedirectory.jpg b/dev/ldap/setup_example_activedirectory.jpg new file mode 100644 index 00000000000..64586da8b88 Binary files /dev/null and b/dev/ldap/setup_example_activedirectory.jpg differ diff --git a/dev/skeletons/skeleton_page.php b/dev/skeletons/skeleton_page.php index 7c6208289eb..9a0bbbd23c7 100644 --- a/dev/skeletons/skeleton_page.php +++ b/dev/skeletons/skeleton_page.php @@ -27,12 +27,13 @@ //if (! defined('NOREQUIREDB')) define('NOREQUIREDB','1'); //if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC','1'); //if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1'); -//if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK','1'); -//if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL','1'); -//if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU','1'); // If there is no menu to show -//if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1'); // If we don't need to load the html.form.class.php +//if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK','1'); // Do not check anti CSRF attack test +//if (! defined('NOSTYLECHECK')) define('NOSTYLECHECK','1'); // Do not check style html tag into posted data +//if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL','1'); // Do not check anti POST attack test +//if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU','1'); // If there is no need to load and show top and left menu +//if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1'); // If we don't need to load the html.form.class.php //if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1'); -//if (! defined("NOLOGIN")) define("NOLOGIN",'1'); // If this page is public (can be called outside logged session) +//if (! defined("NOLOGIN")) define("NOLOGIN",'1'); // If this page is public (can be called outside logged session) // Change this following line to use the correct relative path (../, ../../, etc) $res=0; diff --git a/dev/skeletons/skeleton_script.php b/dev/skeletons/skeleton_script.php index 2a49a45b833..38a68a73ed3 100644 --- a/dev/skeletons/skeleton_script.php +++ b/dev/skeletons/skeleton_script.php @@ -1,6 +1,6 @@ #!/usr/bin/php +/* Copyright (C) 2007-2013 Laurent Destailleur * Copyright (C) ---Put here your own copyright and developer email--- * * This program is free software; you can redistribute it and/or modify @@ -19,7 +19,7 @@ /** * \file dev/skeletons/skeleton_script.php - * \ingroup mymodule othermodule1 othermodule2 + * \ingroup mymodule * \brief This file is an example for a command line script * Put here some comments */ @@ -34,19 +34,22 @@ if (substr($sapi_type, 0, 3) == 'cgi') { exit; } -// Global variables -$version='1.29'; +// Init global variables +$version='1.0'; $error=0; // -------------------- START OF YOUR CODE HERE -------------------- -// Include Dolibarr environment +@set_time_limit(0); // No timeout for this script +define('EVEN_IF_ONLY_LOGIN_ALLOWED',1); // Set this define to 0 if you want to lock your script when dolibarr setup is "locked to admin user only". + +// Include and load Dolibarr environment variables require_once($path."../../htdocs/master.inc.php"); -// After this $db, $mysoc, $langs and $conf->entity are defined. Opened handler to database will be closed at end of file. +// After this $db, $mysoc, $langs, $conf and $hookmanager are defined (Opened $db handler to database will be closed at end of file). +// $user is created but empty. //$langs->setDefaultLang('en_US'); // To change default language of $langs $langs->load("main"); // To load language file for default language -@set_time_limit(0); // No timeout for this script // Load user and its permissions $result=$user->fetch('','admin'); // Load user for login 'admin'. Comment line to run as anonymous user. @@ -158,7 +161,7 @@ else $db->rollback(); } -$db->close(); // Close database opened handler +$db->close(); // Close $db database opened handler return $error; ?> diff --git a/htdocs/adherents/admin/adherent.php b/htdocs/adherents/admin/adherent.php index 91bbbb33049..62f89f992dd 100644 --- a/htdocs/adherents/admin/adherent.php +++ b/htdocs/adherents/admin/adherent.php @@ -239,7 +239,7 @@ form_constantes($constantes); print '*'.$langs->trans("FollowingConstantsWillBeSubstituted").'
'; print '%DOL_MAIN_URL_ROOT%, %ID%, %FIRSTNAME%, %LASTNAME%, %FULLNAME%, %LOGIN%, %PASSWORD%, '; -print '%COMPANY%, %ADDRESS%, %ZIP%, %TOWN%, %COUNTRY%, %EMAIL%, %NAISS%, %PHOTO%, %TYPE%, '; +print '%COMPANY%, %ADDRESS%, %ZIP%, %TOWN%, %COUNTRY%, %EMAIL%, %BIRTH%, %PHOTO%, %TYPE%, '; print '%YEAR%, %MONTH%, %DAY%'; print '
'; @@ -257,7 +257,7 @@ form_constantes($constantes); print '*'.$langs->trans("FollowingConstantsWillBeSubstituted").'
'; print '%DOL_MAIN_URL_ROOT%, %ID%, %FIRSTNAME%, %LASTNAME%, %FULLNAME%, %LOGIN%, %PASSWORD%, '; -print '%COMPANY%, %ADDRESS%, %ZIP%, %TOWN%, %COUNTRY%, %EMAIL%, %NAISS%, %PHOTO%, %TYPE%, '; +print '%COMPANY%, %ADDRESS%, %ZIP%, %TOWN%, %COUNTRY%, %EMAIL%, %BIRTH%, %PHOTO%, %TYPE%, '; print '%YEAR%, %MONTH%, %DAY%'; print '
'; @@ -287,7 +287,7 @@ form_constantes($constantes); print '*'.$langs->trans("FollowingConstantsWillBeSubstituted").'
'; print '%DOL_MAIN_URL_ROOT%, %ID%, %FIRSTNAME%, %LASTNAME%, %FULLNAME%, %LOGIN%, %PASSWORD%, '; -print '%COMPANY%, %ADDRESS%, %ZIP%, %TOWN%, %COUNTRY%, %EMAIL%, %NAISS%, %PHOTO%, %TYPE%, '; +print '%COMPANY%, %ADDRESS%, %ZIP%, %TOWN%, %COUNTRY%, %EMAIL%, %BIRTH%, %PHOTO%, %TYPE%, '; //print '%YEAR%, %MONTH%, %DAY%'; // Not supported print '
'; diff --git a/htdocs/adherents/card_subscriptions.php b/htdocs/adherents/card_subscriptions.php index 25767e8f5b2..279669497ec 100644 --- a/htdocs/adherents/card_subscriptions.php +++ b/htdocs/adherents/card_subscriptions.php @@ -660,6 +660,7 @@ if ($rowid) { $sql = "SELECT d.rowid, d.firstname, d.lastname, d.societe,"; $sql.= " c.rowid as crowid, c.cotisation,"; + $sql.= " c.datec,"; $sql.= " c.dateadh,"; $sql.= " c.datef,"; $sql.= " c.fk_bank,"; @@ -683,7 +684,8 @@ if ($rowid) print ''; print ''.$langs->trans("Ref").''; - print ''.$langs->trans("DateSubscription").''; + print ''.$langs->trans("DateCreation").''; + print ''.$langs->trans("DateStart").''; print ''.$langs->trans("DateEnd").''; print ''.$langs->trans("Amount").''; if (! empty($conf->banque->enabled)) @@ -701,6 +703,7 @@ if ($rowid) $cotisationstatic->ref=$objp->crowid; $cotisationstatic->id=$objp->crowid; print ''.$cotisationstatic->getNomUrl(1).''; + print ''.dol_print_date($db->jdate($objp->datec),'dayhour')."\n"; print ''.dol_print_date($db->jdate($objp->dateadh),'day')."\n"; print ''.dol_print_date($db->jdate($objp->datef),'day')."\n"; print ''.price($objp->cotisation).''; @@ -899,16 +902,18 @@ if ($rowid) // Title payments //print ''.$langs->trans("Payment").''; - // Define a way to write payment + // No more action print ''.$langs->trans('MoreActions'); print ''; print ''; print ' '.$langs->trans("None").'
'; + // Add entry into bank accoun if (! empty($conf->banque->enabled)) { print ' '.$langs->trans("MoreActionBankDirect").'
'; } + // Add invoice with no payments if (! empty($conf->societe->enabled) && ! empty($conf->facture->enabled)) { print ' '.$langs->trans("MoreActionInvoiceOnly"); if ($object->fk_soc) print ' ('.$langs->trans("ThirdParty").': '.$company->getNomUrl(1).')'; else - { + { print ' ('.$langs->trans("NoThirdPartyAssociatedToMember"); print ' - '; print $langs->trans("CreateDolibarrThirdParty"); print ')'; } + if (empty($conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS) || $conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS != 'defaultforfoundationcountry') print '. '.$langs->trans("NoVatOnSubscription",0).'.'; print '
'; } + // Add invoice with payments if (! empty($conf->banque->enabled) && ! empty($conf->societe->enabled) && ! empty($conf->facture->enabled)) { print ' '.$langs->trans("MoreActionBankViaInvoice"); if ($object->fk_soc) print ' ('.$langs->trans("ThirdParty").': '.$company->getNomUrl(1).')'; else - { + { print ' ('.$langs->trans("NoThirdPartyAssociatedToMember"); print ' - '; print $langs->trans("CreateDolibarrThirdParty"); print ')'; } + if (empty($conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS) || $conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS != 'defaultforfoundationcountry') print '. '.$langs->trans("NoVatOnSubscription",0).'.'; print '
'; } print ''; @@ -1029,4 +1037,4 @@ else llxFooter(); $db->close(); -?> +?> \ No newline at end of file diff --git a/htdocs/adherents/cartes/carte.php b/htdocs/adherents/cartes/carte.php index 7c1d95502ca..e60a76bd936 100755 --- a/htdocs/adherents/cartes/carte.php +++ b/htdocs/adherents/cartes/carte.php @@ -62,7 +62,7 @@ if ((! empty($foruserid) || ! empty($foruserlogin) || ! empty($mode)) && ! $mesg // requete en prenant que les adherents a jour de cotisation $sql = "SELECT d.rowid, d.firstname, d.lastname, d.login, d.societe as company, d.datefin,"; - $sql.= " d.address, d.zip, d.town, d.country, d.naiss, d.email, d.photo,"; + $sql.= " d.address, d.zip, d.town, d.country, d.birth, d.email, d.photo,"; $sql.= " t.libelle as type,"; $sql.= " p.code as country_code, p.libelle as country"; $sql.= " FROM ".MAIN_DB_PREFIX."adherent_type as t, ".MAIN_DB_PREFIX."adherent as d"; @@ -101,7 +101,7 @@ if ((! empty($foruserid) || ! empty($foruserlogin) || ! empty($mode)) && ! $mesg '%COUNTRY%'=>$objp->country, '%COUNTRY_CODE%'=>$objp->country_code, '%EMAIL%'=>$objp->email, - '%NAISS%'=>dol_print_date($objp->naiss,'day'), + '%BIRTH%'=>dol_print_date($objp->birth,'day'), '%TYPE%'=>$objp->type, '%YEAR%'=>$year, '%MONTH%'=>$month, diff --git a/htdocs/adherents/class/adherent.class.php b/htdocs/adherents/class/adherent.class.php index 7dd0f5fbbd1..3527535809b 100644 --- a/htdocs/adherents/class/adherent.class.php +++ b/htdocs/adherents/class/adherent.class.php @@ -77,7 +77,7 @@ class Adherent extends CommonObject var $datem; var $datefin; var $datevalid; - var $naiss; + var $birth; var $typeid; // Id type adherent var $type; // Libelle type adherent @@ -175,7 +175,7 @@ class Adherent extends CommonObject { global $conf,$langs; - $birthday = dol_print_date($this->naiss,'day'); + $birthday = dol_print_date($this->birth,'day'); $msgishtml = 0; if (dol_textishtml($text,1)) $msgishtml = 1; @@ -214,7 +214,7 @@ class Adherent extends CommonObject '%TOWN%'=>$msgishtml?dol_htmlentitiesbr($this->town):$this->town, '%COUNTRY%'=>$msgishtml?dol_htmlentitiesbr($this->country):$this->country, '%EMAIL%'=>$msgishtml?dol_htmlentitiesbr($this->email):$this->email, - '%NAISS%'=>$msgishtml?dol_htmlentitiesbr($birthday):$birthday, + '%BIRTH%'=>$msgishtml?dol_htmlentitiesbr($birthday):$birthday, '%PHOTO%'=>$msgishtml?dol_htmlentitiesbr($this->photo):$this->photo, '%LOGIN%'=>$msgishtml?dol_htmlentitiesbr($this->login):$this->login, '%PASSWORD%'=>$msgishtml?dol_htmlentitiesbr($this->pass):$this->pass, @@ -433,7 +433,7 @@ class Adherent extends CommonObject $sql.= ", statut=" .$this->statut; $sql.= ", fk_adherent_type=".$this->typeid; $sql.= ", morphy='".$this->morphy."'"; - $sql.= ", naiss=" .($this->naiss?"'".$this->db->idate($this->naiss)."'":"null"); + $sql.= ", birth=" .($this->birth?"'".$this->db->idate($this->birth)."'":"null"); if ($this->datefin) $sql.= ", datefin='".$this->db->idate($this->datefin)."'"; // Ne doit etre modifie que par effacement cotisation if ($this->datevalid) $sql.= ", datevalid='".$this->db->idate($this->datevalid)."'"; // Ne doit etre modifie que par validation adherent $sql.= ", fk_user_mod=".($user->id>0?$user->id:'null'); // Can be null because member can be create by a guest @@ -1012,7 +1012,7 @@ class Adherent extends CommonObject $sql.= " d.datec as datec,"; $sql.= " d.tms as datem,"; $sql.= " d.datefin as datefin,"; - $sql.= " d.naiss as datenaiss,"; + $sql.= " d.birth as birthday,"; $sql.= " d.datevalid as datev,"; $sql.= " d.country,"; $sql.= " d.state_id,"; @@ -1079,7 +1079,7 @@ class Adherent extends CommonObject $this->datem = $this->db->jdate($obj->datem); $this->datefin = $this->db->jdate($obj->datefin); $this->datevalid = $this->db->jdate($obj->datev); - $this->naiss = $this->db->jdate($obj->datenaiss); + $this->birth = $this->db->jdate($obj->birthday); $this->note = $obj->note; $this->morphy = $obj->morphy; @@ -1739,7 +1739,7 @@ class Adherent extends CommonObject $this->phone_perso = '0999999998'; $this->phone_mobile = '0999999997'; $this->note='No comment'; - $this->naiss=time(); + $this->birth=time(); $this->photo=''; $this->public=1; $this->statut=0; @@ -1811,7 +1811,7 @@ class Adherent extends CommonObject if ($this->phone_mobile && ! empty($conf->global->LDAP_MEMBER_FIELD_MOBILE)) $info[$conf->global->LDAP_MEMBER_FIELD_MOBILE] = $this->phone_mobile; if ($this->fax && ! empty($conf->global->LDAP_MEMBER_FIELD_FAX)) $info[$conf->global->LDAP_MEMBER_FIELD_FAX] = $this->fax; if ($this->note && ! empty($conf->global->LDAP_MEMBER_FIELD_DESCRIPTION)) $info[$conf->global->LDAP_MEMBER_FIELD_DESCRIPTION] = $this->note; - if ($this->naiss && ! empty($conf->global->LDAP_MEMBER_FIELD_BIRTHDATE)) $info[$conf->global->LDAP_MEMBER_FIELD_BIRTHDATE] = dol_print_date($this->naiss,'dayhourldap'); + if ($this->birth && ! empty($conf->global->LDAP_MEMBER_FIELD_BIRTHDATE)) $info[$conf->global->LDAP_MEMBER_FIELD_BIRTHDATE] = dol_print_date($this->birth,'dayhourldap'); if (isset($this->statut) && ! empty($conf->global->LDAP_FIELD_MEMBER_STATUS)) $info[$conf->global->LDAP_FIELD_MEMBER_STATUS] = $this->statut; if ($this->datefin && ! empty($conf->global->LDAP_FIELD_MEMBER_END_LASTSUBSCRIPTION)) $info[$conf->global->LDAP_FIELD_MEMBER_END_LASTSUBSCRIPTION] = dol_print_date($this->datefin,'dayhourldap'); diff --git a/htdocs/adherents/fiche.php b/htdocs/adherents/fiche.php index 0159f5d93d5..787cad2664f 100644 --- a/htdocs/adherents/fiche.php +++ b/htdocs/adherents/fiche.php @@ -236,12 +236,12 @@ if ($action == 'update' && ! $_POST["cancel"] && $user->rights->adherent->creer) { require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; - $datenaiss=''; - if (isset($_POST["naissday"]) && $_POST["naissday"] - && isset($_POST["naissmonth"]) && $_POST["naissmonth"] - && isset($_POST["naissyear"]) && $_POST["naissyear"]) + $birthdate=''; + if (isset($_POST["birthday"]) && $_POST["birthday"] + && isset($_POST["birthmonth"]) && $_POST["birthmonth"] + && isset($_POST["birthyear"]) && $_POST["birthyear"]) { - $datenaiss=dol_mktime(12, 0, 0, $_POST["naissmonth"], $_POST["naissday"], $_POST["naissyear"]); + $birthdate=dol_mktime(12, 0, 0, $_POST["birthmonth"], $_POST["birthday"], $_POST["birthyear"]); } // Create new object @@ -267,7 +267,7 @@ if ($action == 'update' && ! $_POST["cancel"] && $user->rights->adherent->creer) $object->phone_perso = trim($_POST["phone_perso"]); $object->phone_mobile= trim($_POST["phone_mobile"]); $object->email = trim($_POST["email"]); - $object->naiss = $datenaiss; + $object->birth = $birthdate; $object->typeid = $_POST["typeid"]; //$object->note = trim($_POST["comment"]); @@ -388,12 +388,12 @@ if ($action == 'update' && ! $_POST["cancel"] && $user->rights->adherent->creer) if ($action == 'add' && $user->rights->adherent->creer) { if ($canvas) $object->canvas=$canvas; - $datenaiss=''; - if (isset($_POST["naissday"]) && $_POST["naissday"] - && isset($_POST["naissmonth"]) && $_POST["naissmonth"] - && isset($_POST["naissyear"]) && $_POST["naissyear"]) + $birthdate=''; + if (isset($_POST["birthday"]) && $_POST["birthday"] + && isset($_POST["birthmonth"]) && $_POST["birthmonth"] + && isset($_POST["birthyear"]) && $_POST["birthyear"]) { - $datenaiss=dol_mktime(12, 0, 0, $_POST["naissmonth"], $_POST["naissday"], $_POST["naissyear"]); + $birthdate=dol_mktime(12, 0, 0, $_POST["birthmonth"], $_POST["birthday"], $_POST["birthyear"]); } $datecotisation=''; if (isset($_POST["reday"]) && isset($_POST["remonth"]) && isset($_POST["reyear"])) @@ -442,7 +442,7 @@ if ($action == 'add' && $user->rights->adherent->creer) $object->email = $email; $object->login = $login; $object->pass = $pass; - $object->naiss = $datenaiss; + $object->naiss = $birthdate; $object->photo = $photo; $object->typeid = $typeid; //$object->note = $comment; @@ -1113,9 +1113,9 @@ else // EMail print ''.($conf->global->ADHERENT_MAIL_REQUIRED?'':'').$langs->trans("EMail").($conf->global->ADHERENT_MAIL_REQUIRED?'':'').'email).'">'; - // Date naissance + // Birthday print "".$langs->trans("Birthday")."\n"; - $form->select_date(($object->naiss ? $object->naiss : -1),'naiss','','',1,'formsoc'); + $form->select_date(($object->birth ? $object->birth : -1),'birth','','',1,'formsoc'); print "\n"; // Profil public @@ -1444,8 +1444,8 @@ else // EMail print ''.$langs->trans("EMail").''.dol_print_email($object->email,0,$object->fk_soc,1).''; - // Date naissance - print ''.$langs->trans("Birthday").''.dol_print_date($object->naiss,'day').''; + // Birthday + print ''.$langs->trans("Birthday").''.dol_print_date($object->birth,'day').''; // Public print ''.$langs->trans("Public").''.yn($object->public).''; diff --git a/htdocs/adherents/index.php b/htdocs/adherents/index.php index 9e86de34c58..e3787b18c89 100644 --- a/htdocs/adherents/index.php +++ b/htdocs/adherents/index.php @@ -47,7 +47,6 @@ $subscriptionstatic=new Cotisation($db); print_fiche_titre($langs->trans("MembersArea")); -print ''; $var=True; @@ -122,7 +121,8 @@ if ($result) } -print '
'; +//print '
'; +print '
'; // Formulaire recherche adherent @@ -195,7 +195,9 @@ if ($conf->use_javascript_ajax) print '
'; } -print ''; + +//print ''; +print '
'; $var=true; @@ -416,8 +418,8 @@ print "".price(price2num($numb>0?($tot/$numb):0,'MT'))."\n"; print "
\n"; -print ''; -print ''; +//print ''; +print '
'; llxFooter(); diff --git a/htdocs/adherents/liste.php b/htdocs/adherents/liste.php index 8bab0cab35b..27ddd052225 100644 --- a/htdocs/adherents/liste.php +++ b/htdocs/adherents/liste.php @@ -2,6 +2,7 @@ /* Copyright (C) 2001-2003 Rodolphe Quiedeville * Copyright (C) 2002-2003 Jean-Louis Bergamo * Copyright (C) 2004-2012 Laurent Destailleur + * Copyright (C) 2013 Raphaël Doursenaud * * 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 @@ -101,11 +102,15 @@ if ($search_categ == -2) $sql.= " AND cm.fk_categorie IS NULL"; $sql.= " AND d.entity = ".$conf->entity; if ($sall) { - $sql.=" AND ("; - if (is_numeric($sall)) $sql.= "d.rowid = ".$sall." OR "; - $sql.=" d.firstname LIKE '%".$sall."%' OR d.lastname LIKE '%".$sall."%' OR d.societe LIKE '%".$sall."%'"; - $sql.=" OR d.email LIKE '%".$sall."%' OR d.login LIKE '%".$sall."%' OR d.address LIKE '%".$sall."%'"; - $sql.=" OR d.town LIKE '%".$sall."%' OR d.note LIKE '%".$sall."%')"; + // For natural search + $scrit = explode(' ', $sall); + foreach ($scrit as $crit) { + $sql.=" AND ("; + if (is_numeric($sall)) $sql.= "d.rowid = ".$sall." OR "; + $sql.=" d.firstname LIKE '%".$sall."%' OR d.lastname LIKE '%".$sall."%' OR d.societe LIKE '%".$sall."%'"; + $sql.=" OR d.email LIKE '%".$sall."%' OR d.login LIKE '%".$sall."%' OR d.address LIKE '%".$sall."%'"; + $sql.=" OR d.town LIKE '%".$sall."%' OR d.note LIKE '%".$sall."%')"; + } } if ($type > 0) { diff --git a/htdocs/admin/agenda.php b/htdocs/admin/agenda.php index 7ec46475c6e..29af716ceb0 100644 --- a/htdocs/admin/agenda.php +++ b/htdocs/admin/agenda.php @@ -134,13 +134,14 @@ $linkback=''.$langs->trans("BackToM print_fiche_titre($langs->trans("AgendaSetup"),$linkback,'setup'); print "
\n"; -print $langs->trans("AgendaAutoActionDesc")."
\n"; -print "
\n"; $head=agenda_prepare_head(); dol_fiche_head($head, 'autoactions', $langs->trans("Agenda")); +print $langs->trans("AgendaAutoActionDesc")."
\n"; +print $langs->trans("OnlyActiveElementsAreShown").'
'; +print "
\n"; print '
'; print ''; @@ -179,8 +180,6 @@ print ''; print '
'; print ''; -print '     '; -print ''; print "
"; print "
\n"; @@ -226,12 +225,13 @@ else } print ''."\n"; +print ''; print "
"; dol_htmloutput_mesg($mesg); -$db->close(); - llxFooter(); + +$db->close(); ?> diff --git a/htdocs/admin/agenda_extrafields.php b/htdocs/admin/agenda_extrafields.php index 1bd0c84ef77..26bd6c8f5ee 100644 --- a/htdocs/admin/agenda_extrafields.php +++ b/htdocs/admin/agenda_extrafields.php @@ -1,7 +1,7 @@ * Copyright (C) 2003 Jean-Louis Bergamo - * Copyright (C) 2004-2011 Laurent Destailleur + * Copyright (C) 2004-2013 Laurent Destailleur * Copyright (C) 2012 Regis Houssin * Copyright (C) 2012 Florian Henry * @@ -70,8 +70,6 @@ $linkback='
'.$langs->trans("BackToM print_fiche_titre($langs->trans("AgendaSetup"),$linkback,'setup'); print "
\n"; -print "
\n"; - $head=agenda_prepare_head(); dol_fiche_head($head, 'attributes', $langs->trans("Agenda")); diff --git a/htdocs/admin/agenda_extsites.php b/htdocs/admin/agenda_extsites.php index 52a77de8eae..5d4c787bf37 100644 --- a/htdocs/admin/agenda_extsites.php +++ b/htdocs/admin/agenda_extsites.php @@ -54,8 +54,7 @@ if ($actionsave) $db->begin(); $disableext=GETPOST('AGENDA_DISABLE_EXT','alpha'); - if ($disableext) $disableext=0; else $disableext=1; - $res=dolibarr_set_const($db,'AGENDA_DISABLE_EXT',$disableext,'chaine',0); + $res=dolibarr_set_const($db,'AGENDA_DISABLE_EXT',$disableext,'chaine',0,'',$conf->entity); $i=1; $errorsaved=0; $error=0; @@ -67,7 +66,7 @@ if ($actionsave) $src=trim(GETPOST('agenda_ext_src'.$i,'alpha')); $color=trim(GETPOST('agenda_ext_color'.$i,'alpha')); if ($color=='-1') $color=''; - + if (! empty($src) && ! preg_match('/^(http\s*|ftp\s*):/', $src)) { setEventMessage($langs->trans("ErrorParamMustBeAnUrl"),'errors'); @@ -75,26 +74,26 @@ if ($actionsave) $errorsaved++; break; } - + //print 'color='.$color; - $res=dolibarr_set_const($db,'AGENDA_EXT_NAME'.$i,$name,'chaine',0); + $res=dolibarr_set_const($db,'AGENDA_EXT_NAME'.$i,$name,'chaine',0,'',$conf->entity); if (! $res > 0) $error++; - $res=dolibarr_set_const($db,'AGENDA_EXT_SRC'.$i,$src,'chaine',0); + $res=dolibarr_set_const($db,'AGENDA_EXT_SRC'.$i,$src,'chaine',0,'',$conf->entity); if (! $res > 0) $error++; - $res=dolibarr_set_const($db,'AGENDA_EXT_COLOR'.$i,$color,'chaine',0); + $res=dolibarr_set_const($db,'AGENDA_EXT_COLOR'.$i,$color,'chaine',0,'',$conf->entity); if (! $res > 0) $error++; $i++; } - + // Save nb of agenda if (! $error) { - $res=dolibarr_set_const($db,'AGENDA_EXT_NB',trim(GETPOST('AGENDA_EXT_NB','alpha')),'chaine',0); + $res=dolibarr_set_const($db,'AGENDA_EXT_NB',trim(GETPOST('AGENDA_EXT_NB','alpha')),'chaine',0,'',$conf->entity); if (! $res > 0) $error++; if (empty($conf->global->AGENDA_EXT_NB)) $conf->global->AGENDA_EXT_NB=5; $MAXAGENDA=empty($conf->global->AGENDA_EXT_NB)?5:$conf->global->AGENDA_EXT_NB; } - + if (! $error) { $db->commit(); @@ -124,34 +123,57 @@ $linkback='
'.$langs->trans("BackToM print_fiche_titre($langs->trans("AgendaSetup"),$linkback,'setup'); print '
'; -print $langs->trans("AgendaExtSitesDesc")."
\n"; -print "
\n"; - $head=agenda_prepare_head(); dol_fiche_head($head, 'extsites', $langs->trans("Agenda")); +print $langs->trans("AgendaExtSitesDesc")."
\n"; +print "
\n"; + print '
'; -$selectedvalue=(GETPOST('AGENDA_DISABLE_AGENDA','alpha'))?GETPOST('AGENDA_DISABLE_EXT','alpha'):$conf->global->AGENDA_DISABLE_EXT; +$selectedvalue=$conf->global->AGENDA_DISABLE_EXT; if ($selectedvalue==1) $selectedvalue=0; else $selectedvalue=1; -print $langs->trans("ExtSitesEnableThisTool").' '.$form->selectyesno("AGENDA_DISABLE_EXT",$selectedvalue,1).'

'; -$var=false; +$var=true; print ""; print ""; -print '"; -print ""; +print '"; +print '"; +print ""; + +// Show external agenda +$var=!$var; +print ""; +print ""; +print '"; print ""; // Nb of agenda -print ""; -print ""; -print ""; -print ""; +$var=!$var; +print ""; +print ""; +print '"; +print ""; print "
'.$langs->trans("Parameter")."".$langs->trans("Value")."'.$langs->trans("Parameter")."'.$langs->trans("Value")."
".$langs->trans("ExtSitesEnableThisTool")."'; +if ($conf->use_javascript_ajax) +{ + print ajax_constantonoff('AGENDA_DISABLE_EXT',array('enabled'=>array(0=>'.hideifnotset')),null,1); +} +else +{ + if($conf->global->AGENDA_DISABLE_EXT == 0) + { + print ''.img_picto($langs->trans("Enabled"),'on').''; + } + else + { + print ''.img_picto($langs->trans("Disabled"),'off').''; + } +} +print "
".$langs->trans("ExtSitesNbOfAgenda").""; -print ''; -print "
".$langs->trans("ExtSitesNbOfAgenda")."'; +print ''; +print "
"; print "
"; @@ -162,7 +184,7 @@ print ""; print "".$langs->trans("Parameter").""; print "".$langs->trans("Name").""; print "".$langs->trans("ExtSiteUrlAgenda")." (".$langs->trans("Example").': http://yoursite/agenda/agenda.ics)'; -print ''.$langs->trans("Color").''; +print ''.$langs->trans("Color").''; print ""; $i=1; @@ -173,19 +195,19 @@ while ($i <= $MAXAGENDA) $name='AGENDA_EXT_NAME'.$key; $src='AGENDA_EXT_SRC'.$key; $color='AGENDA_EXT_COLOR'.$key; - + $var=!$var; print ""; // Nb print ''.$langs->trans("AgendaExtNb",$key).""; // Name - print ''; + print ''; // URL - print ''; + print ''; // Color (Possible colors are limited by Google) - print ''; - //print $formadmin->select_colors($conf->global->$color, "google_agenda_color".$key, $colorlist); - print $formother->select_color((GETPOST("agenda_ext_color".$key)?GETPOST("agenda_ext_color".$key):$conf->global->$color), "agenda_ext_color".$key, 'extsitesconfig', 1, ''); + print ''; + //print $formadmin->selectColor($conf->global->$color, "google_agenda_color".$key, $colorlist); + print $formother->selectColor((GETPOST("agenda_ext_color".$key)?GETPOST("agenda_ext_color".$key):$conf->global->$color), "agenda_ext_color".$key, 'extsitesconfig', 1, '', 'hideifnotset'); print ''; print ""; $i++; diff --git a/htdocs/admin/agenda_xcal.php b/htdocs/admin/agenda_xcal.php index 3dfc317509a..64e03fe7f9c 100644 --- a/htdocs/admin/agenda_xcal.php +++ b/htdocs/admin/agenda_xcal.php @@ -75,13 +75,13 @@ $linkback='
'.$langs->trans("BackToM print_fiche_titre($langs->trans("AgendaSetup"),$linkback,'setup'); print '
'; -print $langs->trans("AgendaSetupOtherDesc")."
\n"; -print "
\n"; $head=agenda_prepare_head(); dol_fiche_head($head, 'xcal', $langs->trans("Agenda")); +print $langs->trans("AgendaSetupOtherDesc")."
\n"; +print "
\n"; print ''; print ''; diff --git a/htdocs/compta/bank/admin/bank.php b/htdocs/admin/bank.php similarity index 93% rename from htdocs/compta/bank/admin/bank.php rename to htdocs/admin/bank.php index a45fa29c912..6ba81a5cbee 100644 --- a/htdocs/compta/bank/admin/bank.php +++ b/htdocs/admin/bank.php @@ -1,6 +1,7 @@ * Copyright (C) 2010-2012 Juanjo Menent + * Copyright (C) 2013 Philippe Grand * * 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 @@ -18,12 +19,12 @@ /** - * \file htdocs/compta/bank/admin/bank.php + * \file htdocs/admin/bank.php * \ingroup bank * \brief Page to setup the bank module */ -require '../../../main.inc.php'; +require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; @@ -87,6 +88,16 @@ $linkback='
'.$langs->trans("BackToM print_fiche_titre($langs->trans("BankSetupModule"),$linkback,'setup'); print '
'; +$h = 0; + +$head[$h][0] = DOL_URL_ROOT."/admin/bank.php"; +$head[$h][1] = $langs->trans("Miscellaneous"); +$head[$h][2] = 'general'; +$hselected=$h; +$h++; + +dol_fiche_head($head, $hselected, $langs->trans("ModuleSetup")); + print ''; print ''; print ''; diff --git a/htdocs/admin/carrier.php b/htdocs/admin/carrier.php index 305b3f30529..612c14d2248 100644 --- a/htdocs/admin/carrier.php +++ b/htdocs/admin/carrier.php @@ -1,5 +1,7 @@ + * * 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 @@ -17,7 +19,7 @@ /** * \file htdocs/admin/carrier.php * \ingroup expedition - * \brief Page d'administration des Transporteurs + * \brief Page to setup carriers. TODO Delete this page. We mut use dictionnary instead. */ require '../main.inc.php'; diff --git a/htdocs/admin/commande.php b/htdocs/admin/commande.php index 7dda6ded0e4..2a225234af6 100644 --- a/htdocs/admin/commande.php +++ b/htdocs/admin/commande.php @@ -7,7 +7,7 @@ * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2008 Raphael Bertrand (Resultic) * Copyright (C) 2011-2012 Juanjo Menent - * Copyright (C) 2011 Philippe Grand + * Copyright (C) 2011-2013 Philippe Grand * * 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 @@ -66,7 +66,7 @@ if ($action == 'updateMask') } } -if ($action == 'specimen') +else if ($action == 'specimen') { $modele=GETPOST('module','alpha'); @@ -111,74 +111,36 @@ if ($action == 'specimen') } } -if ($action == 'set') +// Activate a model +else if ($action == 'set') { - $label = GETPOST('label','alpha'); - $scandir = GETPOST('scandir','alpha'); - - $type='order'; - $sql = "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity, libelle, description)"; - $sql.= " VALUES ('".$db->escape($value)."','".$type."',".$conf->entity.", "; - $sql.= ($label?"'".$db->escape($label)."'":'null').", "; - $sql.= (! empty($scandir)?"'".$db->escape($scandir)."'":"null"); - $sql.= ")"; - if ($db->query($sql)) - { - - } + $ret = addDocumentModel($value, $type, $label, $scandir); } -if ($action == 'del') +else if ($action == 'del') { - $type='order'; - $sql = "DELETE FROM ".MAIN_DB_PREFIX."document_model"; - $sql.= " WHERE nom = '".$db->escape($value)."'"; - $sql.= " AND type = '".$type."'"; - $sql.= " AND entity = ".$conf->entity; - - if ($db->query($sql)) + $ret = delDocumentModel($value, $type); + if ($ret > 0) { if ($conf->global->COMMANDE_ADDON_PDF == "$value") dolibarr_del_const($db, 'COMMANDE_ADDON_PDF',$conf->entity); } } -if ($action == 'setdoc') +// Set default model +else if ($action == 'setdoc') { - $label = GETPOST('label','alpha'); - $scandir = GETPOST('scandir','alpha'); - - $db->begin(); - if (dolibarr_set_const($db, "COMMANDE_ADDON_PDF",$value,'chaine',0,'',$conf->entity)) { + // La constante qui a ete lue en avant du nouveau set + // on passe donc par une variable pour avoir un affichage coherent $conf->global->COMMANDE_ADDON_PDF = $value; } // On active le modele - $type='order'; - - $sql_del = "DELETE FROM ".MAIN_DB_PREFIX."document_model"; - $sql_del.= " WHERE nom = '".$db->escape($value)."'"; - $sql_del.= " AND type = '".$type."'"; - $sql_del.= " AND entity = ".$conf->entity; - dol_syslog("Delete from model table ".$sql_del); - $result1=$db->query($sql_del); - - $sql = "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity, libelle, description)"; - $sql.= " VALUES ('".$value."', '".$type."', ".$conf->entity.", "; - $sql.= ($label?"'".$db->escape($label)."'":'null').", "; - $sql.= (! empty($scandir)?"'".$scandir."'":"null"); - $sql.= ")"; - dol_syslog("Insert into model table ".$sql); - $result2=$db->query($sql); - if ($result1 && $result2) + $ret = delDocumentModel($value, $type); + if ($ret > 0) { - $db->commit(); - } - else - { - dol_syslog("Error ".$db->lasterror(), LOG_ERR); - $db->rollback(); + $ret = addDocumentModel($value, $type, $label, $scandir); } } @@ -240,10 +202,18 @@ $linkback=''.$langs->trans("BackToM print_fiche_titre($langs->trans("OrdersSetup"),$linkback,'setup'); print '
'; +$h = 0; +$head[$h][0] = DOL_URL_ROOT."/admin/commande.php"; +$head[$h][1] = $langs->trans("Orders"); +$head[$h][2] = 'Order'; +$hselected=$h; +$h++; + +dol_fiche_head($head, $hselected, $langs->trans("ModuleSetup")); /* - * Numbering module + * Orders Numbering model */ print_titre($langs->trans("OrdersNumberingModules")); @@ -276,22 +246,22 @@ foreach ($dirmodels as $reldir) { $file = substr($file, 0, dol_strlen($file)-4); - require_once DOL_DOCUMENT_ROOT ."/core/modules/commande/".$file.'.php'; + require_once $dir.$file.'.php'; $module = new $file; - // Show modules according to features level - if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) continue; - if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) continue; - if ($module->isEnabled()) { + // Show modules according to features level + if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) continue; + if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) continue; + $var=!$var; print '
'; - // Show example of numbering module + // Show example of numbering model print '
'.$langs->trans("Parameters").'
'.$module->nom."\n"; print $module->info(); print ''; $tmp=$module->getExample(); if (preg_match('/^Error/',$tmp)) print '
'.$langs->trans($tmp).'
'; @@ -508,11 +478,14 @@ foreach ($dirmodels as $reldir) } print '
'; - -//Autres Options print "
"; -print_titre($langs->trans("OtherOptions")); +/* + * Other options + * + */ + +print_titre($langs->trans("OtherOptions")); print ''; print ''; print ''; diff --git a/htdocs/admin/company.php b/htdocs/admin/company.php index 55ad5902e13..55a8a8b8b60 100644 --- a/htdocs/admin/company.php +++ b/htdocs/admin/company.php @@ -547,7 +547,7 @@ if ($action == 'edit' || $action == 'updateedit') /* * Local Taxes */ - if ($mysoc->hasLocalTax(1)) + if ($mysoc->useLocalTax(1)) { // Local Tax 1 print '
'; @@ -579,7 +579,7 @@ if ($action == 'edit' || $action == 'updateedit') print "\n"; print "
'.$langs->trans("Parameter").'
"; } - if ($mysoc->hasLocalTax(2)) + if ($mysoc->useLocalTax(2)) { // Local Tax 2 print '
'; @@ -927,7 +927,7 @@ else /* * Local Taxes */ - if ($mysoc->hasLocalTax(1)) + if ($mysoc->useLocalTax(1)) { // Local Tax 1 print '
'; @@ -960,7 +960,7 @@ else print ""; } - if ($mysoc->hasLocalTax(2)) + if ($mysoc->useLocalTax(2)) { // Local Tax 2 print '
'; diff --git a/htdocs/admin/compta.php b/htdocs/admin/compta.php index e45a316858f..a5213413d54 100644 --- a/htdocs/admin/compta.php +++ b/htdocs/admin/compta.php @@ -2,7 +2,8 @@ /* Copyright (C) 2004 Rodolphe Quiedeville * Copyright (C) 2004-2008 Laurent Destailleur * Copyright (C) 2005-2009 Regis Houssin - * Copyright (C) 2011-2012 Juanjo Menent + * Copyright (C) 2011-2012 Juanjo Menent + * Copyright (C) 2013 Philippe Grand * * 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 @@ -35,6 +36,10 @@ accessforbidden(); $action = GETPOST('action','alpha'); +/* + * Actions + */ + $compta_mode = defined('COMPTA_MODE')?COMPTA_MODE:'RECETTES-DEPENSES'; if ($action == 'setcomptamode') @@ -87,7 +92,7 @@ if ($action == 'update' || $action == 'add') }*/ /* - * Affichage page + * View */ llxHeader(); @@ -97,9 +102,18 @@ $form=new Form($db); $linkback='
'.$langs->trans("BackToModuleList").''; print_fiche_titre($langs->trans('ComptaSetup'),$linkback,'setup'); - print '
'; +$h = 0; + +$head[$h][0] = DOL_URL_ROOT."/admin/compta.php"; +$head[$h][1] = $langs->trans("Compta"); +$head[$h][2] = 'Compta'; +$hselected=$h; +$h++; + +dol_fiche_head($head, $hselected, $langs->trans("ModuleSetup")); + print ''; // Cas du parametre COMPTA_MODE diff --git a/htdocs/admin/contract.php b/htdocs/admin/contract.php index 80e1547b33f..5e32dd097d0 100644 --- a/htdocs/admin/contract.php +++ b/htdocs/admin/contract.php @@ -1,5 +1,6 @@ + * Copyright (C) 2011-2013 Philippe Grand * * 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 @@ -27,6 +28,7 @@ require_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php'; $langs->load("admin"); $langs->load("errors"); +$langs->load("contracts"); if (!$user->admin) accessforbidden(); @@ -88,6 +90,20 @@ print_fiche_titre($langs->trans("ContractsSetup"),$linkback,'setup'); print "
"; +$h = 0; + +$head[$h][0] = DOL_URL_ROOT."/admin/contract.php"; +$head[$h][1] = $langs->trans("Contracts"); +$head[$h][2] = 'Contract'; +$hselected=$h; +$h++; + +dol_fiche_head($head, $hselected, $langs->trans("ModuleSetup")); + +/* + * Contracts Numbering model + */ + print_titre($langs->trans("ContractsNumberingModules")); print '
'; @@ -129,7 +145,7 @@ if (is_resource($handle)) print $module->info(); print ''; - // Show example of numbering module + // Show example of numbering model print ''; - // Show example of numbering module + // Show example of numbering model print '
'; $tmp=$module->getExample(); if (preg_match('/^Error/',$tmp)) { $langs->load("errors"); print '
'.$langs->trans($tmp).'
'; } diff --git a/htdocs/admin/dict.php b/htdocs/admin/dict.php index 8b80091d0a9..21f6195525d 100644 --- a/htdocs/admin/dict.php +++ b/htdocs/admin/dict.php @@ -70,8 +70,7 @@ $hookmanager->initHooks(array('admin')); // Put here declaration of dictionnaries properties // Sort order to show dictionnary (0 is space). All other dictionnaries (added by modules) will be at end of this. -$taborder=array(9,0,4,3,2,0,1,8,19,16,0,5,11,0,6,0,10,12,13,0,14,0,7,17,0,22,20,18,21,0,15,0,24,23); -if (! empty($conf->global->MAIN_USE_REVENUESTAMP)) $taborder=array(9,0,4,3,2,0,1,8,19,16,0,5,11,0,6,0,10,25,12,13,0,14,0,7,17,0,22,20,18,21,0,15,0,24,23); +$taborder=array(9,0,4,3,2,0,1,8,19,16,0,5,11,0,6,0,10,25,12,13,0,14,0,7,17,0,22,20,18,21,0,15,0,24,23); // Name of SQL tables of dictionnaries $tabname=array(); @@ -325,7 +324,7 @@ $tabcond[21]= ! empty($conf->propal->enabled); $tabcond[22]= (! empty($conf->commande->enabled) || ! empty($conf->propal->enabled)); $tabcond[23]= (! empty($conf->global->ACCOUNTING_USEDICTTOEDIT) && ! empty($conf->accounting->enabled)); // The accountancy plan should be edited with specific pages. You can set ACCOUNTING_USEDICTTOEDIT to 1 if you want to use dictionnary editor. $tabcond[24]= (! empty($conf->global->ACCOUNTING_USEDICTTOEDIT) && ! empty($conf->accounting->enabled)); // The accountancy system should be edited with specific pages. You can set ACCOUNTING_USEDICTTOEDIT to 1 if you want to use dictionnary editor. -$tabcond[25]= (! empty($conf->global->MAIN_USE_REVENUESTAMP)); // The accountancy system should be edited with specific pages. You can set ACCOUNTING_USEDICTTOEDIT to 1 if you want to use dictionnary editor. +$tabcond[25]= true; // List of help for fields $tabhelp=array(); diff --git a/htdocs/admin/dons.php b/htdocs/admin/dons.php index 21c2b3a1a59..0176436c928 100644 --- a/htdocs/admin/dons.php +++ b/htdocs/admin/dons.php @@ -1,6 +1,7 @@ * Copyright (C) 2012 Juanjo Menent + * Copyright (C) 2013 Philippe Grand * * 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 @@ -47,7 +48,7 @@ if ($action == 'specimen') $don = new Don($db); $don->initAsSpecimen(); - // Charge le modele + // Search template files $dir = DOL_DOCUMENT_ROOT . "/core/modules/dons/"; $file = $modele.".modules.php"; if (file_exists($dir.$file)) @@ -75,67 +76,39 @@ if ($action == 'specimen') } } -if ($action == 'setdoc') +// Set default model +else if ($action == 'setdoc') { - $value = GETPOST('value','alpha'); - $label = GETPOST('label','alpha'); - $scandir = GETPOST('scandir','alpha'); - - $db->begin(); + if (dolibarr_set_const($db, "DON_ADDON_MODEL",$value,'chaine',0,'',$conf->entity)) + { + // La constante qui a ete lue en avant du nouveau set + // on passe donc par une variable pour avoir un affichage coherent + $conf->global->DON_ADDON_MODEL = $value; + } - if (dolibarr_set_const($db, "DON_ADDON_MODEL",$value,'chaine',0,'',$conf->entity)) - { - $conf->global->DON_ADDON_MODEL = $value; - } - - // On active le modele - $type='donation'; - $sql_del = "DELETE FROM ".MAIN_DB_PREFIX."document_model"; - $sql_del.= " WHERE nom = '".$db->escape($value)."' AND type = '".$type."'"; - $result1=$db->query($sql_del); - - $sql = "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity, libelle, description)"; - $sql.= " VALUES ('".$db->escape($value)."', '".$type."', ".$conf->entity.", "; - $sql.= ($label?"'".$db->escape($label)."'":'null').", "; - $sql.= (! empty($scandir)?"'".$db->escape($scandir)."'":"null"); - $sql.= ")"; - $result2=$db->query($sql); - if ($result1 && $result2) - { - $db->commit(); - } - else - { - $db->rollback(); - } + // On active le modele + $ret = delDocumentModel($value, $type); + if ($ret > 0) + { + $ret = addDocumentModel($value, $type, $label, $scandir); + } } -if ($action == 'set') +// Activate a model +else if ($action == 'set') { - $value = GETPOST('value','alpha'); - $label = GETPOST('label','alpha'); - $scandir = GETPOST('scandir','alpha'); - - $type='donation'; - $sql = "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity, libelle, description)"; - $sql.= " VALUES ('".$db->escape($value)."','".$type."',".$conf->entity.", "; - $sql.= ($label?"'".$db->escape($label)."'":'null').", "; - $sql.= (! empty($scandir)?"'".$db->escape($scandir)."'":"null"); - $sql.= ")"; - $resql=$db->query($sql); + $ret = addDocumentModel($value, $type, $label, $scandir); } -if ($action == 'del') +else if ($action == 'del') { - $value = GETPOST('value','alpha'); - - $type='donation'; - $sql = "DELETE FROM ".MAIN_DB_PREFIX."document_model"; - $sql .= " WHERE nom = '".$value."' AND type = '".$type."'"; - $resql=$db->query($sql); + $ret = delDocumentModel($value, $type); + if ($ret > 0) + { + if ($conf->global->DON_ADDON_MODEL == "$value") dolibarr_del_const($db, 'DON_ADDON_MODEL',$conf->entity); + } } - /* * View */ @@ -147,6 +120,17 @@ llxHeader('',$langs->trans("DonationsSetup"),'DonConfiguration'); $linkback=''.$langs->trans("BackToModuleList").''; print_fiche_titre($langs->trans("DonationsSetup"),$linkback,'setup'); +print '
'; + +$h = 0; + +$head[$h][0] = DOL_URL_ROOT."/admin/dons.php"; +$head[$h][1] = $langs->trans("Donations"); +$head[$h][2] = 'Donation'; +$hselected=$h; +$h++; + +dol_fiche_head($head, $hselected, $langs->trans("ModuleSetup")); // Document templates diff --git a/htdocs/admin/ecm.php b/htdocs/admin/ecm.php index 908b36dbabb..68782a2620d 100644 --- a/htdocs/admin/ecm.php +++ b/htdocs/admin/ecm.php @@ -70,6 +70,17 @@ llxHeader('',$langs->trans("ECMSetup"),$help_url); $linkback=''.$langs->trans("BackToModuleList").''; print_fiche_titre($langs->trans("ECMSetup"),$linkback,'setup'); +print '
'; + +$h = 0; + +$head[$h][0] = DOL_URL_ROOT."/admin/ecm.php"; +$head[$h][1] = $langs->trans("Miscellaneous"); +$head[$h][2] = 'general'; +$hselected=$h; +$h++; + +dol_fiche_head($head, $hselected, $langs->trans("ModuleSetup")); print ''; print ''; diff --git a/htdocs/admin/expedition.php b/htdocs/admin/expedition.php index c012d52efb1..34535b1d321 100644 --- a/htdocs/admin/expedition.php +++ b/htdocs/admin/expedition.php @@ -6,7 +6,7 @@ * Copyright (C) 2004 Eric Seigne * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2011-2012 Juanjo Menent - * Copyright (C) 2011-2012 Philippe Grand + * Copyright (C) 2011-2013 Philippe Grand * * 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 @@ -220,9 +220,8 @@ if (! empty($conf->global->MAIN_SUBMODULE_LIVRAISON)) dol_fiche_head($head, $hselected, $langs->trans("ModuleSetup")); /* - * Numbering module - */ -//print "
"; + * Expedition numbering model + */ print_titre($langs->trans("SendingsNumberingModules")); @@ -254,16 +253,16 @@ foreach ($dirmodels as $reldir) { $file = substr($file, 0, dol_strlen($file)-4); - require_once DOL_DOCUMENT_ROOT ."/core/modules/expedition/".$file.'.php'; + require_once $dir.$file.'.php'; $module = new $file; - - // Show modules according to features level - if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) continue; - if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) continue; - + if ($module->isEnabled()) { + // Show modules according to features level + if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) continue; + if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) continue; + $var=!$var; print '
\n"; print ''."\n"; @@ -328,7 +329,7 @@ print '
'.$module->nom."'; @@ -273,7 +272,9 @@ foreach ($dirmodels as $reldir) // Show example of numbering module print ''; $tmp=$module->getExample(); - if (preg_match('/^Error/',$tmp)) { $langs->load("errors"); print '
'.$langs->trans($tmp).'
'; } + if (preg_match('/^Error/',$tmp)) { + $langs->load("errors"); print '
'.$langs->trans($tmp).'
'; + } elseif ($tmp=='NotConfigured') print $langs->trans($tmp); else print $tmp; print '

'; /* - * Modeles de documents + * Documents models for Sendings Receipt */ print_titre($langs->trans("SendingsReceiptModel")); diff --git a/htdocs/admin/fckeditor.php b/htdocs/admin/fckeditor.php index 125c3cb12d0..57bc089c6a5 100644 --- a/htdocs/admin/fckeditor.php +++ b/htdocs/admin/fckeditor.php @@ -41,6 +41,8 @@ $modules = array( 'PRODUCTDESC' => 'FCKeditorForProduct', 'MAILING' => 'FCKeditorForMailing', 'DETAILS' => 'FCKeditorForProductDetails', +'USERSIGN' => 'FCKeditorForUserSignature', +'MAIL' => 'FCKeditorForMail' ); // Conditions pour que l'option soit proposee $conditions = array( @@ -48,6 +50,8 @@ $conditions = array( 'PRODUCTDESC' => (! empty($conf->product->enabled) || ! empty($conf->service->enabled)), 'MAILING' => ! empty($conf->mailing->enabled), 'DETAILS' => (! empty($conf->facture->enabled) || ! empty($conf->propal->enabled) || ! empty($conf->commande->enabled)), +'USERSIGN' => 1, +'MAIL' => (! empty($conf->facture->enabled) || ! empty($conf->propal->enabled) || ! empty($conf->commande->enabled)) ); // Picto $picto = array( @@ -55,6 +59,8 @@ $picto = array( 'PRODUCTDESC' => 'product', 'MAILING' => 'email', 'DETAILS' => 'generic', +'USERSIGN' => 'user', +'MAIL' => 'email' ); diff --git a/htdocs/admin/fichinter.php b/htdocs/admin/fichinter.php index 708acf6bc86..023593ea2a7 100644 --- a/htdocs/admin/fichinter.php +++ b/htdocs/admin/fichinter.php @@ -6,7 +6,7 @@ * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2008 Raphael Bertrand (Resultic) * Copyright (C) 2011-2012 Juanjo Menent - * Copyright (C) 2011-2012 Philippe Grand + * Copyright (C) 2011-2013 Philippe Grand * * 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 @@ -67,42 +67,7 @@ if ($action == 'updateMask') } } -if ($action == 'set_FICHINTER_FREE_TEXT') -{ - $freetext= GETPOST('FICHINTER_FREE_TEXT','alpha'); - $res = dolibarr_set_const($db, "FICHINTER_FREE_TEXT",$freetext,'chaine',0,'',$conf->entity); - - if (! $res > 0) $error++; - - if (! $error) - { - $mesg = "".$langs->trans("SetupSaved").""; - } - else - { - $mesg = "".$langs->trans("Error").""; - } -} - -if ($action == 'set_FICHINTER_DRAFT_WATERMARK') -{ - $draft= GETPOST('FICHINTER_DRAFT_WATERMARK','alpha'); - - $res = dolibarr_set_const($db, "FICHINTER_DRAFT_WATERMARK",trim($draft),'chaine',0,'',$conf->entity); - - if (! $res > 0) $error++; - - if (! $error) - { - $mesg = "".$langs->trans("SetupSaved").""; - } - else - { - $mesg = "".$langs->trans("Error").""; - } -} - -if ($action == 'specimen') +else if ($action == 'specimen') // For fiche inter { $modele= GETPOST('module','alpha'); @@ -147,12 +112,13 @@ if ($action == 'specimen') } } -if ($action == 'set') +// Activate a model +else if ($action == 'set') { $ret = addDocumentModel($value, $type, $label, $scandir); } -if ($action == 'del') +else if ($action == 'del') { $ret = delDocumentModel($value, $type); if ($ret > 0) @@ -161,7 +127,8 @@ if ($action == 'del') } } -if ($action == 'setdoc') +// Set default model +else if ($action == 'setdoc') { if (dolibarr_set_const($db, "FICHEINTER_ADDON_PDF",$value,'chaine',0,'',$conf->entity)) { @@ -178,7 +145,7 @@ if ($action == 'setdoc') } } -if ($action == 'setmod') +else if ($action == 'setmod') { // TODO Verifier si module numerotation choisi peut etre active // par appel methode canBeActivated @@ -186,6 +153,41 @@ if ($action == 'setmod') dolibarr_set_const($db, "FICHEINTER_ADDON",$value,'chaine',0,'',$conf->entity); } +else if ($action == 'set_FICHINTER_FREE_TEXT') +{ + $freetext= GETPOST('FICHINTER_FREE_TEXT','alpha'); + $res = dolibarr_set_const($db, "FICHINTER_FREE_TEXT",$freetext,'chaine',0,'',$conf->entity); + + if (! $res > 0) $error++; + + if (! $error) + { + $mesg = "".$langs->trans("SetupSaved").""; + } + else + { + $mesg = "".$langs->trans("Error").""; + } +} + +else if ($action == 'set_FICHINTER_DRAFT_WATERMARK') +{ + $draft= GETPOST('FICHINTER_DRAFT_WATERMARK','alpha'); + + $res = dolibarr_set_const($db, "FICHINTER_DRAFT_WATERMARK",trim($draft),'chaine',0,'',$conf->entity); + + if (! $res > 0) $error++; + + if (! $error) + { + $mesg = "".$langs->trans("SetupSaved").""; + } + else + { + $mesg = "".$langs->trans("Error").""; + } +} + /* * View @@ -202,6 +204,17 @@ print_fiche_titre($langs->trans("InterventionsSetup"),$linkback,'setup'); print "
"; +$h = 0; + +$head[$h][0] = DOL_URL_ROOT."/admin/fichinter.php"; +$head[$h][1] = $langs->trans("Interventions"); +$head[$h][2] = 'Ficheinter'; +$hselected=$h; +$h++; + +dol_fiche_head($head, $hselected, $langs->trans("ModuleSetup")); + +// Interventions numbering model print_titre($langs->trans("FicheinterNumberingModules")); @@ -234,22 +247,22 @@ foreach ($dirmodels as $reldir) $file = $reg[1]; $classname = substr($file,4); - require_once DOL_DOCUMENT_ROOT ."/core/modules/fichinter/".$file.'.php'; + require_once $dir.$file.'.php'; $module = new $file; - - // Show modules according to features level - if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) continue; - if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) continue; - + if ($module->isEnabled()) { + // Show modules according to features level + if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) continue; + if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) continue; + $var=!$var; print '
'.$module->nom."\n"; print $module->info(); print ''; $tmp=$module->getExample(); if (preg_match('/^Error/',$tmp)) print '
'.$langs->trans($tmp).'
'; @@ -295,6 +308,9 @@ foreach ($dirmodels as $reldir) print '

'; +/* + * Documents models for Interventions + */ print_titre($langs->trans("TemplatePDFInterventions")); @@ -377,7 +393,7 @@ foreach ($dirmodels as $reldir) print ""; } - // Defaut + // Default print ""; if ($conf->global->FICHEINTER_ADDON_PDF == "$name") { @@ -413,11 +429,14 @@ foreach ($dirmodels as $reldir) } print ''; - -//Autres Options print "
"; -print_titre($langs->trans("OtherOptions")); +/* + * Other options + * + */ + +print_titre($langs->trans("OtherOptions")); print ''; print ''; print ''; diff --git a/htdocs/admin/ldap_members.php b/htdocs/admin/ldap_members.php index b8245f2aa34..2b3194b9cad 100644 --- a/htdocs/admin/ldap_members.php +++ b/htdocs/admin/ldap_members.php @@ -303,7 +303,7 @@ print ''; print ''; print ''; -// Date naissance +// Birthday $var=!$var; print '"; } - // Defaut + // Default print "'; - if ($conf->global->MAIN_FEATURES_LEVEL > 1) - { +// if ($conf->global->MAIN_FEATURES_LEVEL > 1) +// { //Desc $var=!$var; print ''; - } +// } print '
'.$langs->trans("Parameter").''.$langs->trans("LDAPFieldDescriptionExample").' 
'.$langs->trans("LDAPFieldBirthdate").''; print ''; diff --git a/htdocs/admin/livraison.php b/htdocs/admin/livraison.php index fa4b7b3c1d4..49cbeee9026 100644 --- a/htdocs/admin/livraison.php +++ b/htdocs/admin/livraison.php @@ -6,7 +6,7 @@ * Copyright (C) 2004 Eric Seigne * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2011-2012 Juanjo Menent - * Copyright (C) 2011-2012 Philippe Grand + * Copyright (C) 2011-2013 Philippe Grand * * 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 @@ -164,7 +164,7 @@ if ($action == 'setmod') // TODO Verifier si module numerotation choisi peut etre active // par appel methode canBeActivated - dolibarr_set_const($db, "LIVRAISON_ADDON",$value,'chaine',0,'',$conf->entity); + dolibarr_set_const($db, "LIVRAISON_ADDON_NUMBER",$value,'chaine',0,'',$conf->entity); } @@ -209,8 +209,9 @@ $h++; dol_fiche_head($head, $hselected, $langs->trans("ModuleSetup")); /* - * Module numerotation + * Livraison numbering model */ + print_titre($langs->trans("DeliveryOrderNumberingModules")); print ''; @@ -240,16 +241,16 @@ foreach ($dirmodels as $reldir) { $file = substr($file, 0, dol_strlen($file)-4); - require_once DOL_DOCUMENT_ROOT ."/core/modules/livraison/".$file.'.php'; + require_once $dir.$file.'.php'; $module = new $file; - - // Show modules according to features level - if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) continue; - if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) continue; - - if ($module->isEnabled()) + + if ($module->isEnabled()) { + // Show modules according to features level + if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) continue; + if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) continue; + $var=!$var; print ''."\n"; print '
'.$module->nom."\n"; print $module->info(); @@ -258,13 +259,15 @@ foreach ($dirmodels as $reldir) // Show example of numbering module print ''; $tmp=$module->getExample(); - if (preg_match('/^Error/',$tmp)) { $langs->load("errors"); print '
'.$langs->trans($tmp).'
'; } + if (preg_match('/^Error/',$tmp)) { + $langs->load("errors"); print '
'.$langs->trans($tmp).'
'; + } elseif ($tmp=='NotConfigured') print $langs->trans($tmp); else print $tmp; print '
'; - if ($conf->global->LIVRAISON_ADDON == "$file") + if ($conf->global->LIVRAISON_ADDON_NUMBER == "$file") { print img_picto($langs->trans("Activated"),'switch_on'); } @@ -311,12 +314,12 @@ print '
'; /* - * Modeles de documents + * Documents Models for delivery */ print '
'; print_titre($langs->trans("DeliveryOrderModel")); -// Defini tableau def de modele invoice +// Defini tableau def de modele $type="delivery"; $def = array(); @@ -397,7 +400,7 @@ foreach ($dirmodels as $reldir) print "
"; if ($conf->global->LIVRAISON_ADDON_PDF == "$name") { diff --git a/htdocs/admin/mailing.php b/htdocs/admin/mailing.php index ea5c9b7bbb4..6074272ddc8 100644 --- a/htdocs/admin/mailing.php +++ b/htdocs/admin/mailing.php @@ -103,6 +103,16 @@ llxHeader('',$langs->trans("MailingSetup")); $linkback=''.$langs->trans("BackToModuleList").''; print_fiche_titre($langs->trans("MailingSetup"),$linkback,'setup'); +$h = 0; + +$head[$h][0] = DOL_URL_ROOT."/admin/mailing.php"; +$head[$h][1] = $langs->trans("Miscellaneous"); +$head[$h][2] = 'general'; +$hselected=$h; +$h++; + +dol_fiche_head($head, $hselected, $langs->trans("ModuleSetup")); + dol_htmloutput_mesg($mesg); diff --git a/htdocs/admin/mails.php b/htdocs/admin/mails.php index fa4aa52bfc8..f96528648af 100644 --- a/htdocs/admin/mails.php +++ b/htdocs/admin/mails.php @@ -434,7 +434,7 @@ if ($action == 'edit') // SuperAdministrator access only if (empty($conf->multicompany->enabled) || ($user->admin && !$user->entity)) { - print ''; + print ''; } else { diff --git a/htdocs/admin/menus.php b/htdocs/admin/menus.php index 64f063121fe..bd5074f01b1 100644 --- a/htdocs/admin/menus.php +++ b/htdocs/admin/menus.php @@ -149,7 +149,7 @@ $head[$h][2] = 'editor'; $h++; $head[$h][0] = DOL_URL_ROOT."/admin/menus/other.php"; -$head[$h][1] = $langs->trans("Miscellanous"); +$head[$h][1] = $langs->trans("Miscellaneous"); $head[$h][2] = 'misc'; $h++; diff --git a/htdocs/admin/menus/index.php b/htdocs/admin/menus/index.php index cfe8fae2ddd..092e910c5cc 100644 --- a/htdocs/admin/menus/index.php +++ b/htdocs/admin/menus/index.php @@ -232,7 +232,7 @@ $head[$h][2] = 'editor'; $h++; $head[$h][0] = DOL_URL_ROOT."/admin/menus/other.php"; -$head[$h][1] = $langs->trans("Miscellanous"); +$head[$h][1] = $langs->trans("Miscellaneous"); $head[$h][2] = 'misc'; $h++; diff --git a/htdocs/admin/menus/other.php b/htdocs/admin/menus/other.php index 6f9269919d5..0ec3119c097 100644 --- a/htdocs/admin/menus/other.php +++ b/htdocs/admin/menus/other.php @@ -87,7 +87,7 @@ $head[$h][2] = 'editor'; $h++; $head[$h][0] = DOL_URL_ROOT."/admin/menus/other.php"; -$head[$h][1] = $langs->trans("Miscellanous"); +$head[$h][1] = $langs->trans("Miscellaneous"); $head[$h][2] = 'misc'; $h++; diff --git a/htdocs/admin/modules.php b/htdocs/admin/modules.php index 889324807a0..cbe59807a26 100644 --- a/htdocs/admin/modules.php +++ b/htdocs/admin/modules.php @@ -71,8 +71,6 @@ $_SESSION["mode"]=$mode; $help_url='EN:First_setup|FR:Premiers_paramétrages|ES:Primeras_configuraciones'; llxHeader('',$langs->trans("Setup"),$help_url); -print_fiche_titre($langs->trans("ModulesSetup"),'','setup'); - // Search modules dirs $modulesdir = array(); @@ -194,19 +192,22 @@ asort($orders); //var_dump($categ); //var_dump($modules); -// Start to show page -if (empty($mode)) $mode='common'; -if ($mode==='common') print $langs->trans("ModulesDesc")."
\n"; -if ($mode==='other') print $langs->trans("ModulesSpecialDesc")."
\n"; -if ($mode==='interfaces') print $langs->trans("ModulesInterfaceDesc")."
\n"; -if ($mode==='functional') print $langs->trans("ModulesJobDesc")."
\n"; -if ($mode==='marketplace') print $langs->trans("ModulesMarketPlaceDesc")."
\n"; -if ($mode==='expdev') print $langs->trans("ModuleFamilyExperimental")."
\n"; - $nbofactivatedmodules=count($conf->modules); -print $langs->trans("TotalNumberOfActivatedModules",($nbofactivatedmodules-1)); +$moreinfo=$langs->trans("TotalNumberOfActivatedModules",($nbofactivatedmodules-1)); + +print load_fiche_titre($langs->trans("ModulesSetup"),$moreinfo,'setup'); + +// Start to show page +if (empty($mode)) $mode='common'; +if ($mode==='common') print $langs->trans("ModulesDesc")."
\n"; +if ($mode==='other') print $langs->trans("ModulesSpecialDesc")."
\n"; +if ($mode==='interfaces') print $langs->trans("ModulesInterfaceDesc")."
\n"; +if ($mode==='functional') print $langs->trans("ModulesJobDesc")."
\n"; +if ($mode==='marketplace') print $langs->trans("ModulesMarketPlaceDesc")."
\n"; +if ($mode==='expdev') print $langs->trans("ModuleFamilyExperimental")."
\n"; + if ($nbofactivatedmodules <= 1) print ' '.img_warning($langs->trans("YouMustEnableOneModule")); -print '
'."\n"; +//print '
'."\n"; $h = 0; @@ -499,7 +500,7 @@ dol_fiche_end(); // Show warning about external users -print showModulesExludedForExternal($modules).'
'."\n"; +if ($mode != 'marketplace') print showModulesExludedForExternal($modules).'
'."\n"; llxFooter(); diff --git a/htdocs/admin/pdf.php b/htdocs/admin/pdf.php index fc384046256..5617ecc1dfb 100755 --- a/htdocs/admin/pdf.php +++ b/htdocs/admin/pdf.php @@ -2,7 +2,7 @@ /* Copyright (C) 2001-2005 Rodolphe Quiedeville * Copyright (C) 2004-2012 Laurent Destailleur * Copyright (C) 2005-2011 Regis Houssin - * Copyright (C) 2012 Juanjo Menent + * Copyright (C) 2012-2103 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 @@ -57,17 +57,31 @@ if ($action == 'update') dolibarr_set_const($db, "MAIN_PROFID4_IN_ADDRESS", $_POST["MAIN_PROFID4_IN_ADDRESS"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT", $_POST["MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT"],'chaine',0,'',$conf->entity); - if ($conf->global->MAIN_FEATURES_LEVEL > 1) - { +// if ($conf->global->MAIN_FEATURES_LEVEL > 1) +// { dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS", $_POST["MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_HIDE_DESC", $_POST["MAIN_GENERATE_DOCUMENTS_HIDE_DESC"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_HIDE_REF", $_POST["MAIN_GENERATE_DOCUMENTS_HIDE_REF"],'chaine',0,'',$conf->entity); - } +// } header("Location: ".$_SERVER["PHP_SELF"]."?mainmenu=home&leftmenu=setup"); exit; } +if ($action == 'activate_pdfsecurity') +{ + dolibarr_set_const($db, "PDF_SECURITY_ENCRYPTION", "1",'chaine',0,'',$conf->entity); + header("Location: ".$_SERVER["PHP_SELF"]."?mainmenu=home&leftmenu=setup"); + exit; +} +else if ($action == 'disable_pdfsecurity') +{ + dolibarr_del_const($db, "PDF_SECURITY_ENCRYPTION",$conf->entity); + header("Location: ".$_SERVER["PHP_SELF"]."?mainmenu=home&leftmenu=setup"); + exit; +} + + /* * View @@ -210,8 +224,8 @@ if ($action == 'edit') // Edit print $form->selectyesno('MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT',(! empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT))?$conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT:0,1); print '
'.$langs->trans("HideDescOnPDF").''; @@ -229,7 +243,7 @@ if ($action == 'edit') // Edit print '
'.$langs->trans("HideDetailsOnPDF").''; print $form->selectyesno('MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS',(! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS))?$conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS:0,1); print '
'; @@ -366,34 +380,64 @@ else // Show print_fiche_titre($langs->trans("Other"),'','').'
'; $var=true; print ''; - print ''; + print ''; + // Hide any PDF informations $var=!$var; - print ''; - if ($conf->global->MAIN_FEATURES_LEVEL > 1) - { + + // Encrypt and protect PDF + $var=!$var; + print ""; + print ''; + print ''; + print '"; + + print ""; + print ''; + +// if ($conf->global->MAIN_FEATURES_LEVEL > 1) +// { //Desc $var=!$var; - print ''; //Ref $var=!$var; - print ''; //Details $var=!$var; - print ''; - } +// } print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'.$langs->trans("HideAnyVATInformationOnPDF").''; + print '
'.$langs->trans("HideAnyVATInformationOnPDF").''; print yn($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT,1); print '
'; + $text = $langs->trans("ProtectAndEncryptPdfFiles"); + $desc = $form->textwithpicto($text,$langs->transnoentities("ProtectAndEncryptPdfFilesDesc"),1); + print $desc; + print ''; + if($conf->global->PDF_SECURITY_ENCRYPTION == 1) + { + print img_picto($langs->trans("Active"),'tick'); + } + print ''; + if ($conf->global->PDF_SECURITY_ENCRYPTION == 0) + { + print ''.$langs->trans("Activate").''; + } + if($conf->global->PDF_SECURITY_ENCRYPTION == 1) + { + print ''.$langs->trans("Disable").''; + } + print "
'.$langs->trans("HideDescOnPDF").''; + print '
'.$langs->trans("HideDescOnPDF").''; print yn($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DESC,1); print '
'.$langs->trans("HideRefOnPDF").''; + print '
'.$langs->trans("HideRefOnPDF").''; print yn($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_REF,1); print '
'.$langs->trans("HideDetailsOnPDF").''; + print '
'.$langs->trans("HideDetailsOnPDF").''; print yn($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS,1); print '
'; diff --git a/htdocs/admin/prelevement.php b/htdocs/admin/prelevement.php index f5dfb2bc8fb..2e21c3cfb4c 100644 --- a/htdocs/admin/prelevement.php +++ b/htdocs/admin/prelevement.php @@ -117,6 +117,17 @@ llxHeader('',$langs->trans("WithdrawalsSetup")); $linkback=''.$langs->trans("BackToModuleList").''; print_fiche_titre($langs->trans("WithdrawalsSetup"),$linkback,'setup'); +print '
'; + +$h = 0; + +$head[$h][0] = DOL_URL_ROOT."/admin/prelevement.php"; +$head[$h][1] = $langs->trans("Withdrawals"); +$head[$h][2] = 'Withdrawal'; +$hselected=$h; +$h++; + +dol_fiche_head($head, $hselected, $langs->trans("ModuleSetup")); print ''; print ''; diff --git a/htdocs/admin/project.php b/htdocs/admin/project.php index 8ea4910541c..8bb1baae575 100644 --- a/htdocs/admin/project.php +++ b/htdocs/admin/project.php @@ -2,7 +2,8 @@ /* Copyright (C) 2010 Regis Houssin * Copyright (C) 2011 Laurent Destailleur * Copyright (C) 2011-2012 Juanjo Menent - * Copyright (C) 2011-2012 Philippe Grand + * Copyright (C) 2011-2013 Philippe Grand + * 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 @@ -16,13 +17,13 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see . - */ +*/ /** * \file htdocs/admin/project.php * \ingroup project * \brief Page to setup project module - */ +*/ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; @@ -45,7 +46,7 @@ $type='project'; /* * Actions - */ +*/ if ($action == 'updateMask') { @@ -56,17 +57,17 @@ if ($action == 'updateMask') if (! $res > 0) $error++; - if (! $error) - { - $mesg = "".$langs->trans("SetupSaved").""; - } - else - { - $mesg = "".$langs->trans("Error").""; - } + if (! $error) + { + $mesg = "".$langs->trans("SetupSaved").""; + } + else + { + $mesg = "".$langs->trans("Error").""; + } } -if ($action == 'specimen') +else if ($action == 'specimen') { $modele=GETPOST('module','alpha'); @@ -78,7 +79,7 @@ if ($action == 'specimen') $dirmodels=array_merge(array('/'),(array) $conf->modules_parts['models']); foreach($dirmodels as $reldir) { - $file=dol_buildpath($reldir."core/modules/project/pdf/pdf_".$modele.".modules.php",0); + $file=dol_buildpath($reldir."core/modules/project/pdf/pdf_".$modele.".modules.php",0); if (file_exists($file)) { $filefound=1; @@ -95,8 +96,8 @@ if ($action == 'specimen') if ($module->write_file($project,$langs) > 0) { - header("Location: ".DOL_URL_ROOT."/document.php?modulepart=project&file=SPECIMEN.pdf"); - return; + header("Location: ".DOL_URL_ROOT."/document.php?modulepart=project&file=SPECIMEN.pdf"); + return; } else { @@ -111,21 +112,23 @@ if ($action == 'specimen') } } -if ($action == 'set') +// Activate a model +else if ($action == 'set') { $ret = addDocumentModel($value, $type, $label, $scandir); } -if ($action == 'del') +else if ($action == 'del') { $ret = delDocumentModel($value, $type); if ($ret > 0) { - if ($conf->global->PROJECT_ADDON_PDF == "$value") dolibarr_del_const($db, 'PROJECT_ADDON_PDF',$conf->entity); + if ($conf->global->PROJECT_ADDON_PDF == "$value") dolibarr_del_const($db, 'PROJECT_ADDON_PDF',$conf->entity); } } -if ($action == 'setdoc') +// Set default model +else if ($action == 'setdoc') { if (dolibarr_set_const($db, "PROJECT_ADDON_PDF",$value,'chaine',0,'',$conf->entity)) { @@ -142,7 +145,7 @@ if ($action == 'setdoc') } } -if ($action == 'setmod') +else if ($action == 'setmod') { // TODO Verifier si module numerotation choisi peut etre active // par appel methode canBeActivated @@ -152,11 +155,11 @@ if ($action == 'setmod') /* * View - */ +*/ $dirmodels=array_merge(array('/'),(array) $conf->modules_parts['models']); -llxHeader(); +llxHeader("",$langs->trans("ProjectsSetup")); $form=new Form($db); @@ -165,8 +168,20 @@ print_fiche_titre($langs->trans("ProjectsSetup"),$linkback,'setup'); print "
"; +$h = 0; + +$head[$h][0] = DOL_URL_ROOT."/admin/project.php"; +$head[$h][1] = $langs->trans("Projects"); +$head[$h][2] = 'Project'; +$hselected=$h; +$h++; + +dol_fiche_head($head, $hselected, $langs->trans("ModuleSetup")); + +/* + * Projects Numbering model +*/ -// Project numbering module print_titre($langs->trans("ProjectsNumberingModules")); print ''; @@ -198,7 +213,7 @@ foreach ($dirmodels as $reldir) $file = $reg[1]; $classname = substr($file,4); - require_once DOL_DOCUMENT_ROOT ."/core/modules/project/".$file.'.php'; + require_once $dir.$file.'.php'; $module = new $file; @@ -213,7 +228,7 @@ foreach ($dirmodels as $reldir) print $module->info(); print ''; - // Show example of numbering module + // Show example of numbering model print '
'; $tmp=$module->getExample(); if (preg_match('/^Error/',$tmp)) print '
'.$langs->trans($tmp).'
'; @@ -269,8 +284,8 @@ print '

'; /* - * Modeles documents for projects - */ + * Document templates generators +*/ print_titre($langs->trans("ProjectsModelModule")); @@ -323,59 +338,80 @@ foreach ($dirmodels as $reldir) { while (($file = readdir($handle))!==false) { - if (substr($file, dol_strlen($file) -12) == '.modules.php' && substr($file,0,4) == 'pdf_') + if (preg_match('/\.modules\.php$/i',$file) && preg_match('/^(pdf_|doc_)/',$file)) { - $name = substr($file, 4, dol_strlen($file) -16); - $classname = substr($file, 0, dol_strlen($file) -12); - - $var=!$var; - print "\n $name"; - print "\n \n"; - require_once $dir.$file; - $module = new $classname($db); - print $module->description; - print "\n"; - - // Active - if (in_array($name, $def)) + if (file_exists($dir.'/'.$file)) { - print "\n"; - print 'scandir.'&label='.urlencode($module->name).'">'; - print img_picto($langs->trans("Enabled"),'switch_on'); - print ''; - print ""; - } - else - { - print "\n"; - print 'scandir.'&label='.urlencode($module->name).'">'.img_picto($langs->trans("Disabled"),'switch_off').''; - print ""; - } + $name = substr($file, 4, dol_strlen($file) -16); + $classname = substr($file, 0, dol_strlen($file) -12); - // Defaut - print ""; - if ($conf->global->PROJECT_ADDON_PDF == "$name") - { - print img_picto($langs->trans("Default"),'on'); - } - else - { - print 'scandir.'&label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"),'off').''; - } - print ''; + require_once $dir.'/'.$file; + $module = new $classname($db); - // Info - $htmltooltip = ''.$langs->trans("Name").': '.$module->name; - $htmltooltip.='
'.$langs->trans("Type").': '.($module->type?$module->type:$langs->trans("Unknown")); - $htmltooltip.='
'.$langs->trans("Width").'/'.$langs->trans("Height").': '.$module->page_largeur.'/'.$module->page_hauteur; - $htmltooltip.='

'.$langs->trans("FeaturesSupported").':'; - $htmltooltip.='
'.$langs->trans("Logo").': '.yn($module->option_logo,1,1); - print ''; - $link=''.img_object($langs->trans("Preview"),'project').''; - print $form->textwithpicto('     '.$link,$htmltooltip,-1,0); - print ''; + $modulequalified=1; + if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) $modulequalified=0; + if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) $modulequalified=0; - print "\n"; + if ($modulequalified) + { + $var=!$var; + print ''; + print (empty($module->name)?$name:$module->name); + print "\n"; + if (method_exists($module,'info')) print $module->info($langs); + else print $module->description; + print "\n"; + + // Active + if (in_array($name, $def)) + { + print "\n"; + print 'scandir.'&label='.urlencode($module->name).'">'; + print img_picto($langs->trans("Enabled"),'switch_on'); + print ''; + print ""; + } + else + { + print "\n"; + print 'scandir.'&label='.urlencode($module->name).'">'.img_picto($langs->trans("Disabled"),'switch_off').''; + print ""; + } + + // Default + print ""; + if ($conf->global->PROJECT_ADDON_PDF == "$name") + { + print img_picto($langs->trans("Default"),'on'); + } + else + { + print 'scandir.'&label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"),'off').''; + } + print ''; + + // Info + $htmltooltip = ''.$langs->trans("Name").': '.$module->name; + $htmltooltip.='
'.$langs->trans("Type").': '.($module->type?$module->type:$langs->trans("Unknown")); + $htmltooltip.='
'.$langs->trans("Width").'/'.$langs->trans("Height").': '.$module->page_largeur.'/'.$module->page_hauteur; + $htmltooltip.='

'.$langs->trans("FeaturesSupported").':'; + $htmltooltip.='
'.$langs->trans("Logo").': '.yn($module->option_logo,1,1); + + // Preview + print ''; + if ($module->type == 'pdf') + { + print ''.img_object($langs->trans("Preview"),'bill').''; + } + else + { + print img_object($langs->trans("PreviewNotAvailable"),'generic'); + } + print ''; + + print "\n"; + } + } } } closedir($handle); diff --git a/htdocs/admin/security.php b/htdocs/admin/security.php index a78d2354141..9c4bfc67af4 100644 --- a/htdocs/admin/security.php +++ b/htdocs/admin/security.php @@ -154,19 +154,6 @@ else if ($action == 'disable_encryptdbpassconf') } } -if ($action == 'activate_pdfsecurity') -{ - dolibarr_set_const($db, "PDF_SECURITY_ENCRYPTION", "1",'chaine',0,'',$conf->entity); - header("Location: security.php"); - exit; -} -else if ($action == 'disable_pdfsecurity') -{ - dolibarr_del_const($db, "PDF_SECURITY_ENCRYPTION",$conf->entity); - header("Location: security.php"); - exit; -} - if ($action == 'activate_MAIN_SECURITY_DISABLEFORGETPASSLINK') { dolibarr_set_const($db, "MAIN_SECURITY_DISABLEFORGETPASSLINK", '1','chaine',0,'',$conf->entity); @@ -364,37 +351,6 @@ print ""; print ""; print ''; -// Encryption et protection des PDF -$var=!$var; -print ""; -print ''; -$text = $langs->trans("ProtectAndEncryptPdfFiles"); -$desc = $form->textwithpicto($text,$langs->transnoentities("ProtectAndEncryptPdfFilesDesc"),1); -print $desc; -print ''; -print ''; -if($conf->global->PDF_SECURITY_ENCRYPTION == 1) -{ - print img_picto($langs->trans("Active"),'tick'); -} - -print ''; - -print ''; -if ($conf->global->PDF_SECURITY_ENCRYPTION == 0) -{ - print ''.$langs->trans("Activate").''; -} -if($conf->global->PDF_SECURITY_ENCRYPTION == 1) -{ - print ''.$langs->trans("Disable").''; -} -print ""; - -print ""; -print ''; - - // Disable link "Forget password" on logon $var=!$var; diff --git a/htdocs/admin/security_other.php b/htdocs/admin/security_other.php index 13c87d88bf7..f24a63ba76e 100644 --- a/htdocs/admin/security_other.php +++ b/htdocs/admin/security_other.php @@ -123,11 +123,11 @@ else if ($action == 'delete') $form = new Form($db); -llxHeader('',$langs->trans("Miscellanous")); +llxHeader('',$langs->trans("Miscellaneous")); print_fiche_titre($langs->trans("SecuritySetup"),'','setup'); -print $langs->trans("MiscellanousDesc")."
\n"; +print $langs->trans("MiscellaneousDesc")."
\n"; print "
\n"; $head=security_prepare_head(); diff --git a/htdocs/admin/stock.php b/htdocs/admin/stock.php index 1f40461ca0f..bbdbf3276db 100644 --- a/htdocs/admin/stock.php +++ b/htdocs/admin/stock.php @@ -3,6 +3,7 @@ * Copyright (C) 2008-2010 Laurent Destailleur * Copyright (C) 2005-2009 Regis Houssin * Copyright (C) 2012 Juanjo Menent + * Copyright (C) 2013 Philippe Grand * * 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 @@ -97,6 +98,16 @@ $linkback=''.$langs->trans("BackToM print_fiche_titre($langs->trans("StockSetup"),$linkback,'setup'); print '
'; +$h = 0; + +$head[$h][0] = DOL_URL_ROOT."/admin/stock.php"; +$head[$h][1] = $langs->trans("Miscellaneous"); +$head[$h][2] = 'general'; +$hselected=$h; +$h++; + +dol_fiche_head($head, $hselected, $langs->trans("ModuleSetup")); + $form=new Form($db); $var=true; print ''; @@ -124,9 +135,12 @@ print '' print ''; print "\n"; print "\n"; - +print '
'; +print '
'; +print '
'; // Title rule for stock decrease +print ''; print ''; print " \n"; print " \n"; @@ -174,9 +188,11 @@ if (! empty($conf->expedition->enabled)) print ''; print "\n\n\n"; } - +print '
".$langs->trans("RuleForStockManagementDecrease")." 
'; +print '
'; // Title rule for stock increase +print ''; print ''; print " \n"; print " \n"; diff --git a/htdocs/admin/supplier_invoice.php b/htdocs/admin/supplier_invoice.php new file mode 100644 index 00000000000..079d0c5c915 --- /dev/null +++ b/htdocs/admin/supplier_invoice.php @@ -0,0 +1,483 @@ + + * Copyright (C) 2004-2013 Laurent Destailleur + * Copyright (C) 2005-2011 Regis Houssin + * Copyright (C) 2004 Sebastien Di Cintio + * Copyright (C) 2004 Benoit Mortier + * Copyright (C) 2010-2012 Juanjo Menent + * Copyright (C) 2011-2013 Philippe Grand + * + * 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/admin/supplier_invoice.php + * \ingroup fournisseur + * \brief Setup to admin supplier invoices + */ + +require '../main.inc.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.class.php'; +require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; + +$langs->load("admin"); +$langs->load("other"); +$langs->load("orders"); + +if (!$user->admin) +accessforbidden(); + +$type=GETPOST('type', 'alpha'); +$value=GETPOST('value', 'alpha'); +$action=GETPOST('action', 'alpha'); + +$specimenthirdparty=new Societe($db); +$specimenthirdparty->initAsSpecimen(); + + +/* + * Actions + */ + +if ($action == 'updateMask') +{ + $maskconstinvoice=GETPOST('maskconstinvoice','alpha'); + $maskvalue=GETPOST('maskvalue','alpha'); + + if ($maskconstinvoice) $res = dolibarr_set_const($db,$maskconstinvoice,$maskvalue,'chaine',0,'',$conf->entity); + + if (! $res > 0) $error++; + + if (! $error) + { + $mesg = "".$langs->trans("SetupSaved").""; + } + else + { + $mesg = "".$langs->trans("Error").""; + } +} + +if ($action == 'specimen') // For invoices +{ + $modele=GETPOST('module','alpha'); + + $facture = new FactureFournisseur($db); + $facture->initAsSpecimen(); + $facture->thirdparty=$specimenthirdparty; // Define who should has build the invoice (so the supplier) + + // Search template files + $file=''; $classname=''; $filefound=0; + $dirmodels=array_merge(array('/'),(array) $conf->modules_parts['models']); + foreach($dirmodels as $reldir) + { + $file=dol_buildpath($reldir."core/modules/supplier_invoice/pdf/pdf_".$modele.".modules.php",0); + if (file_exists($file)) + { + $filefound=1; + $classname = "pdf_".$modele; + break; + } + } + + if ($filefound) + { + require_once $file; + + $module = new $classname($db,$facture); + + if ($module->write_file($facture,$langs) > 0) + { + header("Location: ".DOL_URL_ROOT."/document.php?modulepart=facture_fournisseur&file=SPECIMEN.pdf"); + return; + } + else + { + $mesg=''.$module->error.''; + dol_syslog($module->error, LOG_ERR); + } + } + else + { + $mesg=''.$langs->trans("ErrorModuleNotFound").''; + dol_syslog($langs->trans("ErrorModuleNotFound"), LOG_ERR); + } +} + +// Activate a model +else if ($action == 'set') +{ + $ret = addDocumentModel($value, $type, $label, $scandir); +} + +else if ($action == 'del') +{ + $ret = delDocumentModel($value, $type); + if ($ret > 0) + { + if ($conf->global->INVOICE_SUPPLIER_ADDON_PDF == "$value") dolibarr_del_const($db, 'INVOICE_SUPPLIER_ADDON_PDF',$conf->entity); + } +} + +// Set default model +else if ($action == 'setdoc') +{ + if (dolibarr_set_const($db, "INVOICE_SUPPLIER_ADDON_PDF",$value,'chaine',0,'',$conf->entity)) + { + // La constante qui a ete lue en avant du nouveau set + // on passe donc par une variable pour avoir un affichage coherent + $conf->global->INVOICE_SUPPLIER_ADDON_PDF = $value; + } + + // On active le modele + $ret = delDocumentModel($value, $type); + if ($ret > 0) + { + $ret = addDocumentModel($value, $type, $label, $scandir); + } +} + +if ($action == 'setmod') +{ + // TODO Verifier si module numerotation choisi peut etre active + // par appel methode canBeActivated + + dolibarr_set_const($db, "INVOICE_SUPPLIER_ADDON_NUMBER",$value,'chaine',0,'',$conf->entity); +} + +if ($action == 'addcat') +{ + $fourn = new Fournisseur($db); + $fourn->CreateCategory($user,$_POST["cat"]); +} + +if ($action == 'set_SUPPLIER_INVOICE_FREE_TEXT') +{ + $freetext = GETPOST('SUPPLIER_INVOICE_FREE_TEXT'); // No alpha here, we want exact string + + $res = dolibarr_set_const($db, "SUPPLIER_INVOICE_FREE_TEXT",$freetext,'chaine',0,'',$conf->entity); + + if (! $res > 0) $error++; + + if (! $error) + { + $mesg = "".$langs->trans("SetupSaved").""; + } + else + { + $mesg = "".$langs->trans("Error").""; + } +} + + +/* + * View + */ + +$dirmodels=array_merge(array('/'),(array) $conf->modules_parts['models']); + +llxHeader("",""); + +$form=new Form($db); + +$linkback=''.$langs->trans("BackToModuleList").''; +print_fiche_titre($langs->trans("SuppliersSetup"),$linkback,'setup'); + +print "
"; + +$h = 0; + +$head[$h][0] = DOL_URL_ROOT."/admin/supplier_order.php"; +$head[$h][1] = $langs->trans("SupplierOrder"); +$head[$h][2] = 'Order'; +$h++; + +$head[$h][0] = DOL_URL_ROOT."/admin/supplier_invoice.php"; +$head[$h][1] = $langs->trans("SuppliersInvoice"); +$head[$h][2] = 'Invoice'; +$hselected=$h; +$h++; + +dol_fiche_head($head, $hselected, $langs->trans("ModuleSetup")); + + +// Supplier invoice numbering module + +print_titre($langs->trans("SuppliersInvoiceNumberingModel")); + +print '
".$langs->trans("RuleForStockManagementIncrease")." 
'; +print ''; +print ''; +print ''; +print ''; +print ''; +print ''; +print "\n"; + +clearstatcache(); + +foreach ($dirmodels as $reldir) +{ + $dir = dol_buildpath($reldir."core/modules/supplier_invoice/"); + + if (is_dir($dir)) + { + $handle = opendir($dir); + if (is_resource($handle)) + { + $var=true; + + while (($file = readdir($handle))!==false) + { + if (substr($file, 0, 24) == 'mod_facture_fournisseur_' && substr($file, dol_strlen($file)-3, 3) == 'php') + { + $file = substr($file, 0, dol_strlen($file)-4); + + require_once $dir.$file.'.php'; + + $module = new $file; + + if ($module->isEnabled()) + { + // Show modules according to features level + if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) continue; + if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) continue; + + $var=!$var; + print ''; + + // Show example of numbering model + print ''."\n"; + + print ''; + + $invoice=new FactureFournisseur($db); + $invoice->initAsSpecimen(); + + // Info + $htmltooltip=''; + $htmltooltip.=''.$langs->trans("Version").': '.$module->getVersion().'
'; + $nextval=$module->getNextValue($mysoc,$invoice); + if ("$nextval" != $langs->trans("NotAvailable")) // Keep " on nextval + { + $htmltooltip.=''.$langs->trans("NextValue").': '; + if ($nextval) + { + $htmltooltip.=$nextval.'
'; + } + else + { + $htmltooltip.=$langs->trans($module->error).'
'; + } + } + + print ''; + + print ''; + } + } + } + closedir($handle); + } + } +} + +print '
'.$langs->trans("Name").''.$langs->trans("Description").''.$langs->trans("Example").''.$langs->trans("Status").''.$langs->trans("Info").'
'.$module->nom."\n"; + print $module->info(); + print ''; + $tmp=$module->getExample(); + if (preg_match('/^Error/',$tmp)) { + $langs->load("errors"); print '
'.$langs->trans($tmp).'
'; + } + elseif ($tmp=='NotConfigured') print $langs->trans($tmp); + else print $tmp; + print '
'; + if ($conf->global->INVOICE_SUPPLIER_ADDON_NUMBER == "$file") + { + print img_picto($langs->trans("Activated"),'switch_on'); + } + else + { + print ''.img_picto($langs->trans("Disabled"),'switch_off').''; + } + print ''; + print $form->textwithpicto('',$htmltooltip,1,0); + print '

'; + + + + +/* + * Modeles documents for supplier invoices + */ + +print_titre($langs->trans("BillsPDFModules")); + +// Defini tableau def de modele +$def = array(); + +$sql = "SELECT nom"; +$sql.= " FROM ".MAIN_DB_PREFIX."document_model"; +$sql.= " WHERE type = 'order_supplier'"; +$sql.= " AND entity = ".$conf->entity; + +$resql=$db->query($sql); +if ($resql) +{ + $i = 0; + $num_rows=$db->num_rows($resql); + while ($i < $num_rows) + { + $array = $db->fetch_array($resql); + array_push($def, $array[0]); + $i++; + } +} +else +{ + dol_print_error($db); +} + +print ''."\n"; +print ''."\n"; +print ''."\n"; +print ''."\n"; +print ''."\n"; +print ''."\n"; +print ''; +print ''."\n"; + +clearstatcache(); + +foreach ($dirmodels as $reldir) +{ + $dir = dol_buildpath($reldir."core/modules/supplier_invoice/pdf/"); + + if (is_dir($dir)) + { + $var=true; + + $handle=opendir($dir); + + + if (is_resource($handle)) + { + while (($file = readdir($handle))!==false) + { + if (preg_match('/\.modules\.php$/i',$file) && substr($file,0,4) == 'pdf_') + { + $name = substr($file, 4, dol_strlen($file) -16); + $classname = substr($file, 0, dol_strlen($file) -12); + + $var=!$var; + print "\n"; + print "\n"; + print "\n"; + + // Active + if (in_array($name, $def)) + { + print '"; + } + else + { + print '"; + } + + // Default + print ''; + + // Info + $htmltooltip = ''.$langs->trans("Name").': '.$module->name; + $htmltooltip.='
'.$langs->trans("Type").': '.($module->type?$module->type:$langs->trans("Unknown")); + $htmltooltip.='
'.$langs->trans("Width").'/'.$langs->trans("Height").': '.$module->page_largeur.'/'.$module->page_hauteur; + $htmltooltip.='

'.$langs->trans("FeaturesSupported").':'; + $htmltooltip.='
'.$langs->trans("Logo").': '.yn($module->option_logo,1,1); + $htmltooltip.='
'.$langs->trans("PaymentMode").': '.yn($module->option_modereg,1,1); + $htmltooltip.='
'.$langs->trans("PaymentConditions").': '.yn($module->option_condreg,1,1); + print ''; + print ''; + + print "\n"; + } + } + + closedir($handle); + } + } +} + +print '
'.$langs->trans("Name").''.$langs->trans("Description").''.$langs->trans("Status").''.$langs->trans("Default").''.$langs->trans("Info").'
".$name."\n"; + require_once $dir.$file; + $module = new $classname($db,$specimenthirdparty); + print $module->description; + print "'."\n"; + if ($conf->global->INVOICE_SUPPLIER_ADDON_PDF != "$name") + { + print 'scandir.'&label='.urlencode($module->name).'&type=invoice_supplier">'; + print img_picto($langs->trans("Enabled"),'switch_on'); + print ''; + } + else + { + print img_picto($langs->trans("Enabled"),'switch_on'); + } + print "'."\n"; + print 'scandir.'&label='.urlencode($module->name).'&type=order_supplier">'.img_picto($langs->trans("Disabled"),'switch_off').''; + print "'; + if ($conf->global->INVOICE_SUPPLIER_ADDON_PDF == "$name") + { + print img_picto($langs->trans("Default"),'on'); + } + else + { + print 'scandir.'&label='.urlencode($module->name).'&type=invoice_supplier"" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"),'off').''; + } + print ''; + print $form->textwithpicto('',$htmltooltip,1,0); + print ''; + print ''.img_object($langs->trans("Preview"),'order').''; + print '

'; +print '
'; + +/* + * Other options + * + */ + +print_titre($langs->trans("OtherOptions")); +print ''; +print ''; +print ''; +print ''; +print ''; +print "\n"; + +print ''; +print ''; +print ''; +print '\n"; +print ''; + +dol_htmloutput_mesg($mesg); + +$db->close(); +llxFooter(); +?> diff --git a/htdocs/admin/fournisseur.php b/htdocs/admin/supplier_order.php similarity index 59% rename from htdocs/admin/fournisseur.php rename to htdocs/admin/supplier_order.php index e92ef38ee97..ab8569b15b0 100644 --- a/htdocs/admin/fournisseur.php +++ b/htdocs/admin/supplier_order.php @@ -5,7 +5,7 @@ * Copyright (C) 2004 Sebastien Di Cintio * Copyright (C) 2004 Benoit Mortier * Copyright (C) 2010-2012 Juanjo Menent - * Copyright (C) 2011 Philippe Grand + * Copyright (C) 2011-2013 Philippe Grand * * 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 @@ -22,7 +22,7 @@ */ /** - * \file htdocs/admin/fournisseur.php + * \file htdocs/admin/supplier_order.php * \ingroup fournisseur * \brief Page d'administration-configuration du module Fournisseur */ @@ -31,10 +31,10 @@ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.class.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; -require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; $langs->load("admin"); -$langs->load('other'); +$langs->load("other"); +$langs->load("orders"); if (!$user->admin) accessforbidden(); @@ -54,9 +54,9 @@ $specimenthirdparty->initAsSpecimen(); if ($action == 'updateMask') { $maskconstorder=GETPOST('maskconstorder','alpha'); - $maskorder=GETPOST('maskorder','alpha'); + $maskvalue=GETPOST('maskvalue','alpha'); - if ($maskconstorder) $res = dolibarr_set_const($db,$maskconstorder,$maskorder,'chaine',0,'',$conf->entity); + if ($maskconstorder) $res = dolibarr_set_const($db,$maskconstorder,$maskvalue,'chaine',0,'',$conf->entity); if (! $res > 0) $error++; @@ -70,7 +70,7 @@ if ($action == 'updateMask') } } -if ($action == 'specimen') // For orders +else if ($action == 'specimen') // For orders { $modele=GETPOST('module','alpha'); @@ -116,143 +116,58 @@ if ($action == 'specimen') // For orders } } -if ($action == 'specimenfacture') // For invoices +// Activate a model +else if ($action == 'set') { - $modele=GETPOST('module','alpha'); - - $facture = new FactureFournisseur($db); - $facture->initAsSpecimen(); - $facture->thirdparty=$specimenthirdparty; // Define who should has build the invoice (so the supplier) - - // Search template files - $file=''; $classname=''; $filefound=0; - $dirmodels=array_merge(array('/'),(array) $conf->modules_parts['models']); - foreach($dirmodels as $reldir) - { - $file=dol_buildpath($reldir."core/modules/supplier_invoice/pdf/pdf_".$modele.".modules.php",0); - if (file_exists($file)) - { - $filefound=1; - $classname = "pdf_".$modele; - break; - } - } - - if ($filefound) - { - require_once $file; - - $module = new $classname($db,$facture); - - if ($module->write_file($facture,$langs) > 0) - { - header("Location: ".DOL_URL_ROOT."/document.php?modulepart=facture_fournisseur&file=SPECIMEN.pdf"); - return; - } - else - { - $mesg=''.$module->error.''; - dol_syslog($module->error, LOG_ERR); - } - } - else - { - $mesg=''.$langs->trans("ErrorModuleNotFound").''; - dol_syslog($langs->trans("ErrorModuleNotFound"), LOG_ERR); - } + $ret = addDocumentModel($value, $type, $label, $scandir); } -if ($action == 'set') +else if ($action == 'del') { - $label = GETPOST('label','alpha'); - $scandir = GETPOST('scandir','alpha'); - - $sql = "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity, libelle, description)"; - $sql.= " VALUES ('".$db->escape($value)."','".$type."',".$conf->entity.", "; - $sql.= ($label?"'".$db->escape($label)."'":'null').", "; - $sql.= (! empty($scandir)?"'".$db->escape($scandir)."'":"null"); - $sql.= ")"; - $res=$db->query($sql); - if ($res) - { - - } - // else dol_print_error($db); + $ret = delDocumentModel($value, $type); + if ($ret > 0) + { + if ($conf->global->COMMANDE_SUPPLIER_ADDON_PDF == "$value") dolibarr_del_const($db, 'COMMANDE_SUPPLIER_ADDON_PDF',$conf->entity); + } } -if ($action == 'del') +// Set default model +else if ($action == 'setdoc') { - $sql = "DELETE FROM ".MAIN_DB_PREFIX."document_model"; - $sql.= " WHERE nom = '".$value."'"; - $sql.= " AND type = '".$type."'"; - $sql.= " AND entity = ".$conf->entity; - $db->query($sql); - if ($res) - { + if (dolibarr_set_const($db, "COMMANDE_SUPPLIER_ADDON_PDF",$value,'chaine',0,'',$conf->entity)) + { + // La constante qui a ete lue en avant du nouveau set + // on passe donc par une variable pour avoir un affichage coherent + $conf->global->COMMANDE_SUPPLIER_ADDON_PDF = $value; + } - } - // else dol_print_error($db); + // On active le modele + $ret = delDocumentModel($value, $type); + if ($ret > 0) + { + $ret = addDocumentModel($value, $type, $label, $scandir); + } } -if ($action == 'setdoc') -{ - $label = GETPOST('label','alpha'); - $scandir = GETPOST('scandir','alpha'); - - $db->begin(); - - if ($type == 'order_supplier' && dolibarr_set_const($db, "COMMANDE_SUPPLIER_ADDON_PDF",$value,'chaine',0,'',$conf->entity)) - { - $conf->global->COMMANDE_SUPPLIER_ADDON_PDF = $value; - } - - if ($type == 'invoice_supplier' && dolibarr_set_const($db, "INVOICE_SUPPLIER_ADDON_PDF",$value,'chaine',0,'',$conf->entity)) - { - $conf->global->INVOICE_SUPPLIER_ADDON_PDF = $value; - } - - // On active le modele - $sql_del = "DELETE FROM ".MAIN_DB_PREFIX."document_model"; - $sql_del.= " WHERE nom = '".$db->escape($value)."'"; - $sql_del.= " AND type = '".$type."'"; - $sql_del.= " AND entity = ".$conf->entity; - $result1=$db->query($sql_del); - - $sql = "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity, libelle, description)"; - $sql.= " VALUES ('".$db->escape($value)."', '".$type."', ".$conf->entity.", "; - $sql.= ($label?"'".$db->escape($label)."'":'null').", "; - $sql.= (! empty($scandir)?"'".$db->escape($scandir)."'":"null"); - $sql.= ")"; - $result2=$db->query($sql); - if ($result1 && $result2) - { - $db->commit(); - } - else - { - $db->rollback(); - } -} - -if ($action == 'setmod') +else if ($action == 'setmod') { // TODO Verifier si module numerotation choisi peut etre active // par appel methode canBeActivated - dolibarr_set_const($db, "COMMANDE_SUPPLIER_ADDON",$value,'chaine',0,'',$conf->entity); + dolibarr_set_const($db, "COMMANDE_SUPPLIER_ADDON_NUMBER",$value,'chaine',0,'',$conf->entity); } -if ($action == 'addcat') +else if ($action == 'addcat') { $fourn = new Fournisseur($db); $fourn->CreateCategory($user,$_POST["cat"]); } -if ($action == 'set_SUPPLIER_INVOICE_FREE_TEXT') +else if ($action == 'set_SUPPLIER_ORDER_FREE_TEXT') { - $freetext = GETPOST('SUPPLIER_INVOICE_FREE_TEXT'); // No alpha here, we want exact string + $freetext = GETPOST('SUPPLIER_ORDER_FREE_TEXT'); // No alpha here, we want exact string - $res = dolibarr_set_const($db, "SUPPLIER_INVOICE_FREE_TEXT",$freetext,'chaine',0,'',$conf->entity); + $res = dolibarr_set_const($db, "SUPPLIER_ORDER_FREE_TEXT",$freetext,'chaine',0,'',$conf->entity); if (! $res > 0) $error++; @@ -273,7 +188,7 @@ if ($action == 'set_SUPPLIER_INVOICE_FREE_TEXT') $dirmodels=array_merge(array('/'),(array) $conf->modules_parts['models']); -llxHeader(); +llxHeader("",""); $form=new Form($db); @@ -282,6 +197,22 @@ print_fiche_titre($langs->trans("SuppliersSetup"),$linkback,'setup'); print "
"; +$h = 0; + +$head[$h][0] = DOL_URL_ROOT."/admin/supplier_order.php"; +$head[$h][1] = $langs->trans("SupplierOrder"); +$head[$h][2] = 'Order'; +$hselected=$h; +$h++; + +$head[$h][0] = DOL_URL_ROOT."/admin/supplier_invoice.php"; +$head[$h][1] = $langs->trans("SuppliersInvoice"); +$head[$h][2] = 'Invoice'; + +$h++; + +dol_fiche_head($head, $hselected, $langs->trans("ModuleSetup")); + // Supplier order numbering module @@ -341,7 +272,7 @@ foreach ($dirmodels as $reldir) print ''."\n"; print '
'.$langs->trans("Parameter").''.$langs->trans("Value").' 
'; +print $langs->trans("FreeLegalTextOnInvoices").' ('.$langs->trans("AddCRIfTooLong").')
'; +print ''; +print '
'; +print ''; +print "
'; - if ($conf->global->COMMANDE_SUPPLIER_ADDON == "$file") + if ($conf->global->COMMANDE_SUPPLIER_ADDON_NUMBER == "$file") { print img_picto($langs->trans("Activated"),'switch_on'); } @@ -387,10 +318,8 @@ foreach ($dirmodels as $reldir) print '

'; - - /* - * Modeles documents for supplier orders + * Documents models for supplier orders */ print_titre($langs->trans("OrdersModelModule")); @@ -431,17 +360,14 @@ print ''."\n"; clearstatcache(); +$var=true; foreach ($dirmodels as $reldir) { $dir = dol_buildpath($reldir."core/modules/supplier_order/pdf/"); if (is_dir($dir)) { - $var=true; - $handle=opendir($dir); - - if (is_resource($handle)) { while (($file = readdir($handle))!==false) @@ -483,7 +409,7 @@ foreach ($dirmodels as $reldir) print ""; } - // Defaut + // Default print ''; if ($conf->global->COMMANDE_SUPPLIER_ADDON_PDF == "$name") { @@ -520,138 +446,13 @@ foreach ($dirmodels as $reldir) } print '
'; +print '
'; /* - * Modeles documents for supplier invoices + * Other options + * */ -print_titre($langs->trans("BillsPDFModules")); - -// Defini tableau def de modele -$def = array(); - -$sql = "SELECT nom"; -$sql.= " FROM ".MAIN_DB_PREFIX."document_model"; -$sql.= " WHERE type = 'invoice_supplier'"; -$sql.= " AND entity = ".$conf->entity; - -$resql=$db->query($sql); -if ($resql) -{ - $i = 0; - $num_rows=$db->num_rows($resql); - while ($i < $num_rows) - { - $array = $db->fetch_array($resql); - array_push($def, $array[0]); - $i++; - } -} -else -{ - dol_print_error($db); -} - - -print ''."\n"; -print ''."\n"; -print ''."\n"; -print ''."\n"; -print ''."\n"; -print ''."\n"; -print ''; -print ''."\n"; - -clearstatcache(); - -foreach ($dirmodels as $reldir) -{ - $dir = dol_buildpath($reldir."core/modules/supplier_invoice/pdf/"); - - if (is_dir($dir)) - { - $var=true; - - $handle=opendir($dir); - - if (is_resource($handle)) - { - while (($file = readdir($handle)) !== false) - { - if (preg_match('/\.modules\.php$/i',$file) && substr($file,0,4) == 'pdf_') - { - $name = substr($file, 4, dol_strlen($file) -16); - $classname = substr($file, 0, dol_strlen($file) -12); - - $var=!$var; - print "\n"; - print "\n"; - print "\n"; - - // Active - if (in_array($name, $def)) - { - print ""; - } - else - { - print ""; - } - - // Defaut - print "'; - - // Info - $htmltooltip = ''.$langs->trans("Name").': '.$module->name; - $htmltooltip.='
'.$langs->trans("Type").': '.($module->type?$module->type:$langs->trans("Unknown")); - $htmltooltip.='
'.$langs->trans("Width").'/'.$langs->trans("Height").': '.$module->page_largeur.'/'.$module->page_hauteur; - $htmltooltip.='

'.$langs->trans("FeaturesSupported").':'; - $htmltooltip.='
'.$langs->trans("Logo").': '.yn($module->option_logo,1,1); - $htmltooltip.='
'.$langs->trans("PaymentMode").': '.yn($module->option_modereg,1,1); - $htmltooltip.='
'.$langs->trans("PaymentConditions").': '.yn($module->option_condreg,1,1); - print ''; - print ''; - - print "\n"; - } - } - closedir($handle); - } - } -} - -print '
'.$langs->trans("Name").''.$langs->trans("Description").''.$langs->trans("Status").''.$langs->trans("Default").''.$langs->trans("Info").'
".$name.""; - require_once $dir.$file; - $module = new $classname($db,$specimenthirdparty); - print $module->description; - print "\n"; - if ($conf->global->INVOICE_SUPPLIER_ADDON_PDF != "$name") - { - print 'scandir.'&label='.urlencode($module->name).'&type=invoice_supplier">'; - print img_picto($langs->trans("Enabled"),'switch_on'); - print ''; - } - else - { - print img_picto($langs->trans("Enabled"),'switch_on'); - } - print "\n"; - print 'scandir.'&label='.urlencode($module->name).'&type=invoice_supplier">'.img_picto($langs->trans("Disabled"),'switch_off').''; - print ""; - if ($conf->global->INVOICE_SUPPLIER_ADDON_PDF == "$name") - { - print img_picto($langs->trans("Default"),'on'); - } - else - { - print 'scandir.'&label='.urlencode($module->name).'&type=invoice_supplier" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"),'off').''; - } - print ''; - print $form->textwithpicto('',$htmltooltip,1,0); - print ''; - print ''.img_object($langs->trans("Preview"),'bill').''; - print '

'; - print_titre($langs->trans("OtherOptions")); print ''; print ''; @@ -662,10 +463,10 @@ print "\n"; print ''; print ''; -print ''; +print ''; print '\n"; diff --git a/htdocs/admin/system/about.php b/htdocs/admin/system/about.php index 7411e164c97..1f1d80eb043 100644 --- a/htdocs/admin/system/about.php +++ b/htdocs/admin/system/about.php @@ -1,7 +1,7 @@ * Copyright (C) 2003 Jean-Louis Bergamo - * Copyright (C) 2004-2012 Laurent Destailleur + * Copyright (C) 2004-2013 Laurent Destailleur * Copyright (C) 2007 Franky Van Liedekerke * Copyright (C) 2005-2007 Regis Houssin * @@ -44,7 +44,7 @@ print '
'.img_picto_common('', 'dolibarr_box.png print $langs->trans("Version").' / '.$langs->trans("DolibarrLicense").':'; print ''; //print "
\n"; diff --git a/htdocs/admin/system/dolibarr.php b/htdocs/admin/system/dolibarr.php index 2613ba59469..75b17a6776e 100644 --- a/htdocs/admin/system/dolibarr.php +++ b/htdocs/admin/system/dolibarr.php @@ -132,27 +132,27 @@ $var=!$var; print '
'."\n"; // Thousands $var=!$var; -$thousand=$langs->trans("SeparatorThousand"); +$thousand=$langs->transnoentitiesnoconv("SeparatorThousand"); if ($thousand == 'SeparatorThousand') $thousand=' '; // ' ' does not work on trans method if ($thousand == 'None') $thousand=''; -print ''."\n"; +print ''."\n"; // Decimals $var=!$var; -$dec=$langs->trans("SeparatorDecimal"); +$dec=$langs->transnoentitiesnoconv("SeparatorDecimal"); print ''."\n"; // Show results of functions to see if everything works $var=!$var; -print ''; +print ''."\n"; $var=!$var; -print ""; +print "\n"; if (($thousand != ',' && $thousand != '.') || ($thousand != ' ')) { $var=!$var; - print ""; + print ""; print "\n"; } $var=!$var; -print ''; +print ''."\n"; // Timezone $txt =$langs->trans("OSTZ").' (variable system TZ): '.(! empty($_ENV["TZ"])?$_ENV["TZ"]:$langs->trans("NotDefined")).'
'."\n"; $txt.=$langs->trans("PHPTZ").' (php.ini date.timezone): '.(ini_get("date.timezone")?ini_get("date.timezone"):$langs->trans("NotDefined")).''."\n"; // date.timezone must be in valued defined in http://fr3.php.net/manual/en/timezones.europe.php diff --git a/htdocs/admin/taxes.php b/htdocs/admin/taxes.php index bf5e0db26a6..c5d19eb9109 100644 --- a/htdocs/admin/taxes.php +++ b/htdocs/admin/taxes.php @@ -121,6 +121,17 @@ $form=new Form($db); $linkback=''.$langs->trans("BackToModuleList").''; print_fiche_titre($langs->trans('TaxSetup'),$linkback,'setup'); +print '
'; + +$h = 0; + +$head[$h][0] = DOL_URL_ROOT."/admin/taxes.php"; +$head[$h][1] = $langs->trans("Miscellaneous"); +$head[$h][2] = 'general'; +$hselected=$h; +$h++; + +dol_fiche_head($head, $hselected, $langs->trans("ModuleSetup")); print '
'; diff --git a/htdocs/admin/tools/dolibarr_export.php b/htdocs/admin/tools/dolibarr_export.php index 36cc5ae1d3b..a0cb8af9726 100644 --- a/htdocs/admin/tools/dolibarr_export.php +++ b/htdocs/admin/tools/dolibarr_export.php @@ -195,7 +195,7 @@ print $langs->trans("BackupDescY").'

';
+ for="checkbox_disable_fk"> trans("CommandsToDisableForeignKeysForImport"); ?> trans('CommandsToDisableForeignKeysForImportWarning')); ?>
diff --git a/htdocs/admin/tools/listevents.php b/htdocs/admin/tools/listevents.php index 7f5abf388eb..8056080be23 100644 --- a/htdocs/admin/tools/listevents.php +++ b/htdocs/admin/tools/listevents.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2004-2013 Laurent Destailleur * Copyright (C) 2005-2012 Regis Houssin * * This program is free software; you can redistribute it and/or modify @@ -111,7 +111,7 @@ if ($action == 'confirm_purge' && $confirm == 'yes' && $user->admin) * View */ -llxHeader(); +llxHeader('',$langs->trans("Audit")); $form=new Form($db); @@ -124,11 +124,11 @@ $sql.= " u.login"; $sql.= " FROM ".MAIN_DB_PREFIX."events as e"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user as u ON u.rowid = e.fk_user"; $sql.= " WHERE e.entity = ".$conf->entity; -if ($search_code) { $usefilter++; $sql.=" AND e.type LIKE '%".$search_code."%'"; } -if ($search_ip) { $usefilter++; $sql.=" AND e.ip LIKE '%".$search_ip."%'"; } -if ($search_user) { $usefilter++; $sql.=" AND u.login LIKE '%".$search_user."%'"; } -if ($search_desc) { $usefilter++; $sql.=" AND e.description LIKE '%".$search_desc."%'"; } -if ($search_ua) { $usefilter++; $sql.=" AND e.user_agent LIKE '%".$search_ua."%'"; } +if ($search_code) { $usefilter++; $sql.=" AND e.type LIKE '%".$db->escape($search_code)."%'"; } +if ($search_ip) { $usefilter++; $sql.=" AND e.ip LIKE '%".$db->escape($search_ip)."%'"; } +if ($search_user) { $usefilter++; $sql.=" AND u.login LIKE '%".$db->escape($search_user)."%'"; } +if ($search_desc) { $usefilter++; $sql.=" AND e.description LIKE '%".$db->escape($search_desc)."%'"; } +if ($search_ua) { $usefilter++; $sql.=" AND e.user_agent LIKE '%".$db->escape($search_ua)."%'"; } $sql.= $db->order($sortfield,$sortorder); $sql.= $db->plimit($conf->liste_limit+1, $offset); //print $sql; @@ -138,7 +138,14 @@ if ($result) $num = $db->num_rows($result); $i = 0; - print_barre_liste($langs->trans("ListOfSecurityEvents"), $page, $_SERVER["PHP_SELF"],"",$sortfield,$sortorder,'',$num,0,'setup'); + $param=''; + if ($search_code) $param.='&search_code='.$search_code; + if ($search_ip) $param.='&search_ip='.$search_ip; + if ($search_user) $param.='&search_user='.$search_user; + if ($search_desc) $param.='&search_desc='.$search_desc; + if ($search_ua) $param.='&search_ua='.$search_ua; + + print_barre_liste($langs->trans("ListOfSecurityEvents"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, 0, 'setup'); if ($action == 'purge') { @@ -178,7 +185,7 @@ if ($result) print ''; print ''; print ''; } diff --git a/htdocs/comm/index.php b/htdocs/comm/index.php index cfcd8ee121c..c30d75192d8 100644 --- a/htdocs/comm/index.php +++ b/htdocs/comm/index.php @@ -87,8 +87,9 @@ llxHeader(); print_fiche_titre($langs->trans("CustomerArea")); +print '
'; +/* print '
'; print $langs->trans("FreeLegalTextOnInvoices").' ('.$langs->trans("AddCRIfTooLong").')
'; -print ''; +print ''; print '
'; print ''; print "
'.$langs->trans("CurrentUserLanguage").''.$langs->getDefaultLang().'
'.$langs->trans("CurrentValueSeparatorThousand").''.($thousand==' '?$langs->trans("Space"):$thousand).'
'.$langs->trans("CurrentValueSeparatorThousand").''.($thousand==' '?$langs->transnoentitiesnoconv("Space"):$thousand).'
'.$langs->trans("CurrentValueSeparatorDecimal").''.$dec.'
  => price2num(1233.56+1)'.price2num(1233.56+1,'2').'
  => price2num(1233.56+1)'.price2num(1233.56+1,'2').'
  => price2num('."'1".$thousand."234".$dec."56')".price2num("1".$thousand."234".$dec."56",'2')."
  => price2num('."'1".$thousand."234".$dec."56')".price2num("1".$thousand."234".$dec."56",'2')."
  => price2num('."'1 234.56')".price2num("1 234.56",'2')."
  => price2num('."'1 234.56')".price2num("1 234.56",'2')."
  => price(1234.56)'.price(1234.56).'
  => price(1234.56)'.price(1234.56).'
'; - print ''; + //print ''; print ''; diff --git a/htdocs/cashdesk/index_verif.php b/htdocs/cashdesk/index_verif.php index b6dc3cb2046..7ceabf13308 100644 --- a/htdocs/cashdesk/index_verif.php +++ b/htdocs/cashdesk/index_verif.php @@ -77,7 +77,7 @@ if ( $retour >= 0 ) { $return=array(); - $sql = "SELECT rowid, name, firstname"; + $sql = "SELECT rowid, lastname, firstname"; $sql.= " FROM ".MAIN_DB_PREFIX."user"; $sql.= " WHERE login = '".$username."'"; $sql.= " AND entity IN (0,".$conf->entity.")"; diff --git a/htdocs/categories/index.php b/htdocs/categories/index.php index cf0138a0022..532a95f7317 100644 --- a/htdocs/categories/index.php +++ b/htdocs/categories/index.php @@ -60,9 +60,9 @@ llxHeader('',$title,'','',0,0,$arrayofjs,$arrayofcss); print_fiche_titre($title); -print ''; - -print '
'; +//print ''; +//print '
'; +print '
'; /* @@ -89,7 +89,9 @@ print '
'; -print ''; + +//print ''; +print '
'; /* @@ -121,7 +123,8 @@ if ($catname || $id > 0) } -print '
'; +//print '
'; +print '
'; print '
'; diff --git a/htdocs/comm/action/fiche.php b/htdocs/comm/action/fiche.php index c7ac95111b1..07a6647f4bb 100644 --- a/htdocs/comm/action/fiche.php +++ b/htdocs/comm/action/fiche.php @@ -575,7 +575,7 @@ if ($action == 'create') $numproject=select_projects((! empty($societe->id)?$societe->id:0),GETPOST("projectid")?GETPOST("projectid"):'','projectid'); if ($numproject==0) { - print '   '.$langs->trans("AddProject").''; + print '   '.$langs->trans("AddProject").''; } print '
'; - print ''; if ((! empty($conf->propal->enabled) && $user->rights->propale->lire) || (! empty($conf->contrat->enabled) && $user->rights->contrat->lire) || @@ -96,6 +97,7 @@ if ((! empty($conf->propal->enabled) && $user->rights->propale->lire) || { print ''; -print '
'; } +*/ // Recherche Propal if (! empty($conf->propal->enabled) && $user->rights->propal->lire) @@ -256,7 +258,8 @@ if (! empty($conf->commande->enabled) && $user->rights->commande->lire) } } -if ((! empty($conf->propal->enabled) && $user->rights->propale->lire) || + +/*if ((! empty($conf->propal->enabled) && $user->rights->propale->lire) || (! empty($conf->contrat->enabled) && $user->rights->contrat->lire) || (! empty($conf->commande->enabled) && $user->rights->commande->lire)) { @@ -266,8 +269,8 @@ if ((! empty($conf->propal->enabled) && $user->rights->propale->lire) || else { print ''; -} - +}*/ +print '
'; $NBMAX=3; @@ -542,11 +545,10 @@ if (! empty($conf->propal->enabled) && $user->rights->propal->lire) } -print '
'; +//print ''; +print '
'; llxFooter(); $db->close(); - ?> \ No newline at end of file diff --git a/htdocs/comm/mailing/fiche.php b/htdocs/comm/mailing/fiche.php index 4b886f2d24f..d04b9c7aefe 100644 --- a/htdocs/comm/mailing/fiche.php +++ b/htdocs/comm/mailing/fiche.php @@ -23,6 +23,8 @@ * \brief Fiche mailing, onglet general */ +if (! defined('NOSTYLECHECK')) define('NOSTYLECHECK','1'); + require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/emailing.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; @@ -61,8 +63,8 @@ $object->substitutionarray=array( '__OTHER3__' => 'Other3', '__OTHER4__' => 'Other4', '__OTHER5__' => 'Other5', - '__SIGNATURE__' => 'TagSignature', - //'__PERSONALIZED__' => 'Personalized' // Hidden because not used yet + '__SIGNATURE__' => 'TagSignature' + //,'__PERSONALIZED__' => 'Personalized' // Hidden because not used yet ); if (! empty($conf->global->MAILING_EMAIL_UNSUBSCRIBE)) { @@ -86,8 +88,8 @@ $object->substitutionarrayfortest=array( '__OTHER3__' => 'TESTOther3', '__OTHER4__' => 'TESTOther4', '__OTHER5__' => 'TESTOther5', - '__SIGNATURE__' => (($user->signature && empty($conf->global->MAIN_MAIL_DO_NOT_USE_SIGN))?$user->signature:''), - //'__PERSONALIZED__' => 'TESTPersonalized' // Not used yet + '__SIGNATURE__' => (($user->signature && empty($conf->global->MAIN_MAIL_DO_NOT_USE_SIGN))?$user->signature:'') + //,'__PERSONALIZED__' => 'TESTPersonalized' // Not used yet ); if (!empty($conf->global->MAILING_EMAIL_UNSUBSCRIBE)) { @@ -676,7 +678,7 @@ if ($action == 'create') print ''; print ''; print ''; print ''; + print ''; print ''; @@ -789,10 +791,10 @@ else print ''; // Status - print ''; + print ''; // Nb of distinct emails - print ''; - - print '
'.$langs->trans("MailTopic").'
'.$langs->trans("BackgroundColorByDefault").''; - $htmlother->select_color($_POST['bgcolor'],'bgcolor','new_mailing',0); + print $htmlother->selectColor($_POST['bgcolor'],'bgcolor','new_mailing',0); print '
'.$langs->trans("MailMessage").'
'; print '
'.$langs->trans("CommonSubstitutions").':
'; @@ -768,7 +770,7 @@ else $linkback = ''.$langs->trans("BackToList").''; - print '
'.$langs->trans("Ref").'
'.$langs->trans("Ref").''; print $form->showrefnav($object,'id', $linkback); print '
'.$langs->trans("Status").''.$object->getLibStatut(4).'
'.$langs->trans("Status").''.$object->getLibStatut(4).'
'; + print '
'; print $langs->trans("TotalNbOfDistinctRecipients"); print ''; $nbemail = ($object->nbemail?$object->nbemail:img_warning('').' '.$langs->trans("NoTargetYet").''); @@ -979,7 +981,7 @@ else print ''; // Subject - print ''; + print ''; // Joined files print '';*/ // Message - print ''; + print ''; print ''; print ''; @@ -1040,7 +1055,7 @@ else print ''; // Message @@ -1142,13 +1157,13 @@ else $doleditor->Create(); print ''; - print '
'.$langs->trans("MailTopic").''.$object->sujet.'
'.$langs->trans("MailTopic").''.$object->sujet.'
'.$langs->trans("MailFile").''; @@ -1001,13 +1003,26 @@ else // Background color /*print '
'.$langs->trans("BackgroundColorByDefault").''; - $htmlother->select_color($object->bgcolor,'bgcolor','edit_mailing',0); + print $htmlother->selectColor($object->bgcolor,'bgcolor','edit_mailing',0); print '
'.$langs->trans("MailMessage").'
'.$langs->trans("MailMessage").'
'; + print '
'.$langs->trans("CommonSubstitutions").':
'; + foreach($object->substitutionarray as $key => $val) + { + print $key.' = '.$langs->trans($val).'
'; + } + print '
'; - print dol_htmlentitiesbr($object->body); + if (empty($object->bgcolor) || strtolower($object->bgcolor) == 'ffffff') + { + // Editeur wysiwyg + require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; + $doleditor=new DolEditor('body',$object->body,'',320,'dolibarr_readonly','',false,true,empty($conf->global->FCKEDITOR_ENABLE_MAILING)?0:1,20,70); + $doleditor->Create(); + } + else print dol_htmlentitiesbr($object->body); print '
'; print $langs->trans("TotalNbOfDistinctRecipients"); print ''; - $nbemail = ($object->nbemail?$object->nbemail:''.$langs->trans("NoTargetYet").''); + $nbemail = ($object->nbemail?$object->nbemail:img_warning('').' '.$langs->trans("NoTargetYet").''); if (!empty($conf->global->MAILING_LIMIT_SENDBYWEB) && is_numeric($nbemail) && $conf->global->MAILING_LIMIT_SENDBYWEB < $nbemail) { $text=$langs->trans('LimitSendingEmailing',$conf->global->MAILING_LIMIT_SENDBYWEB); @@ -1124,7 +1139,7 @@ else // Background color print '
'.$langs->trans("BackgroundColorByDefault").''; - $htmlother->select_color($object->bgcolor,'bgcolor','edit_mailing',0); + print $htmlother->selectColor($object->bgcolor,'bgcolor','edit_mailing',0); print '
'; + print '
'; + + print '
'; print ''; print '   '; print ''; - print '
'; + print ''; print ''; print '
'; diff --git a/htdocs/comm/mailing/index.php b/htdocs/comm/mailing/index.php index e2cbe9fb5a9..b2ff4d92f76 100644 --- a/htdocs/comm/mailing/index.php +++ b/htdocs/comm/mailing/index.php @@ -44,9 +44,9 @@ llxHeader('','EMailing',$help_url); print_fiche_titre($langs->trans("MailingArea")); -print ''; - -print ''; -print '
'; +//print ''; +//print '
'; +print '
'; // Recherche emails @@ -141,7 +141,9 @@ if (is_resource($handle)) print "

"; -print '
'; + +//print ''; +print '
'; /* @@ -198,11 +200,8 @@ else } - -print '
'; - -$db->close(); +//print ''; +print '
'; if ($langs->file_exists("html/spam.html",0)) { @@ -217,4 +216,5 @@ if ($langs->file_exists("html/spam.html",0)) { llxFooter(); +$db->close(); ?> diff --git a/htdocs/comm/propal.php b/htdocs/comm/propal.php index e17940379bf..de1a87ffe7e 100644 --- a/htdocs/comm/propal.php +++ b/htdocs/comm/propal.php @@ -1,747 +1,747 @@ - - * Copyright (C) 2004-2013 Laurent Destailleur - * Copyright (C) 2004 Eric Seigne - * Copyright (C) 2005 Marc Barilley / Ocebo - * Copyright (C) 2005-2012 Regis Houssin - * Copyright (C) 2006 Andre Cianfarani - * Copyright (C) 2010-2013 Juanjo Menent - * Copyright (C) 2010-2011 Philippe Grand - * Copyright (C) 2012 Christophe Battarel -* - * 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/comm/propal.php - * \ingroup propale - * \brief Page of commercial proposals card and list - */ - -require '../main.inc.php'; -require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/class/html.formpropal.class.php'; -require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; -require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/modules/propale/modules_propale.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/propal.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; -if (! empty($conf->projet->enabled)) -{ - require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; - require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php'; -} - -$langs->load('companies'); -$langs->load('propal'); -$langs->load('compta'); -$langs->load('bills'); -$langs->load('orders'); -$langs->load('products'); -$langs->load("deliveries"); -if (! empty($conf->margin->enabled)) - $langs->load('margins'); - -$error=0; - -$id=GETPOST('id','int'); -$ref=GETPOST('ref','alpha'); -$socid=GETPOST('socid','int'); -$action=GETPOST('action','alpha'); -$origin=GETPOST('origin','alpha'); -$originid=GETPOST('originid','int'); -$confirm=GETPOST('confirm','alpha'); -$lineid=GETPOST('lineid','int'); - -//PDF -$hidedetails = (GETPOST('hidedetails','int') ? GETPOST('hidedetails','int') : (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS) ? 1 : 0)); -$hidedesc = (GETPOST('hidedesc','int') ? GETPOST('hidedesc','int') : (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DESC) ? 1 : 0)); -$hideref = (GETPOST('hideref','int') ? GETPOST('hideref','int') : (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_REF) ? 1 : 0)); - -// Nombre de ligne pour choix de produit/service predefinis -$NBLINES=4; - -// Security check -if (! empty($user->societe_id)) $socid=$user->societe_id; -$result = restrictedArea($user, 'propal', $id); - -$object = new Propal($db); -$extrafields = new ExtraFields($db); - -// Load object -if ($id > 0 || ! empty($ref)) -{ - $ret=$object->fetch($id, $ref); - if ($ret > 0) $ret=$object->fetch_thirdparty(); - if ($ret < 0) dol_print_error('',$object->error); -} - -// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array -$hookmanager->initHooks(array('propalcard')); - - - -/* - * Actions - */ - -$parameters=array('socid'=>$socid); -$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks - -// Action clone object -if ($action == 'confirm_clone' && $confirm == 'yes') -{ - if (1==0 && ! GETPOST('clone_content') && ! GETPOST('clone_receivers')) - { - setEventMessage($langs->trans("NoCloneOptionsSpecified"), 'errors'); - } - else - { - if ($object->id > 0) - { - $result=$object->createFromClone($socid); - if ($result > 0) - { - header("Location: ".$_SERVER['PHP_SELF'].'?id='.$result); - exit; - } - else - { - setEventMessage($object->error, 'errors'); - $action=''; - } - } - } -} - -// Suppression de la propale -else if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->propal->supprimer) -{ - $result=$object->delete($user); - if ($result > 0) - { - header('Location: '.DOL_URL_ROOT.'/comm/propal/list.php'); - exit; - } - else - { - $langs->load("errors"); - setEventMessage($langs->trans($object->error), 'errors'); - } -} - -// Remove line -else if ($action == 'confirm_deleteline' && $confirm == 'yes' && $user->rights->propal->creer) -{ - $result = $object->deleteline($lineid); - // reorder lines - if ($result) $object->line_order(true); - - if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) - { - // Define output language - $outputlangs = $langs; - if (! empty($conf->global->MAIN_MULTILANGS)) - { - $outputlangs = new Translate("",$conf); - $newlang=(GETPOST('lang_id') ? GETPOST('lang_id') : $object->client->default_lang); - $outputlangs->setDefaultLang($newlang); - } - $ret=$object->fetch($id); // Reload to get new records - propale_pdf_create($db, $object, $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref); - } - - header('Location: '.$_SERVER["PHP_SELF"].'?id='.$object->id); - exit; -} - -// Validation -else if ($action == 'confirm_validate' && $confirm == 'yes' && $user->rights->propal->valider) -{ - $result=$object->valid($user); - if ($result >= 0) - { - if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) - { - // Define output language - $outputlangs = $langs; - if (! empty($conf->global->MAIN_MULTILANGS)) - { - $outputlangs = new Translate("",$conf); - $newlang=(GETPOST('lang_id') ? GETPOST('lang_id') : $object->client->default_lang); - $outputlangs->setDefaultLang($newlang); - } - $ret=$object->fetch($id); // Reload to get new records - propale_pdf_create($db, $object, $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref); - } - } - else - { - $langs->load("errors"); - setEventMessage($langs->trans($object->error), 'errors'); - } -} - -else if ($action == 'setdate' && $user->rights->propal->creer) -{ - $datep=dol_mktime(12, 0, 0, $_POST['remonth'], $_POST['reday'], $_POST['reyear']); - - if (empty($datep)) - { - $error++; - setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Date")), 'errors'); - } - - if (! $error) - { - $result=$object->set_date($user,$datep); - if ($result < 0) dol_print_error($db,$object->error); - } -} -else if ($action == 'setecheance' && $user->rights->propal->creer) -{ - $result=$object->set_echeance($user,dol_mktime(12, 0, 0, $_POST['echmonth'], $_POST['echday'], $_POST['echyear'])); - if ($result < 0) dol_print_error($db,$object->error); -} -else if ($action == 'setdate_livraison' && $user->rights->propal->creer) -{ - $result=$object->set_date_livraison($user,dol_mktime(12, 0, 0, $_POST['liv_month'], $_POST['liv_day'], $_POST['liv_year'])); - if ($result < 0) dol_print_error($db,$object->error); -} - -// Positionne ref client -else if ($action == 'set_ref_client' && $user->rights->propal->creer) -{ - $object->set_ref_client($user, $_POST['ref_client']); -} - -else if ($action == 'setnote_public' && $user->rights->propal->creer) -{ - $result=$object->update_note_public(dol_html_entity_decode(GETPOST('note_public'), ENT_QUOTES)); - if ($result < 0) dol_print_error($db,$object->error); -} - -else if ($action == 'setnote' && $user->rights->propal->creer) -{ - $result=$object->update_note(dol_html_entity_decode(GETPOST('note'), ENT_QUOTES)); - if ($result < 0) dol_print_error($db,$object->error); -} - -// Create proposal -else if ($action == 'add' && $user->rights->propal->creer) -{ - $object->socid=$socid; - $object->fetch_thirdparty(); - - $datep=dol_mktime(12, 0, 0, GETPOST('remonth'), GETPOST('reday'), GETPOST('reyear')); - $date_delivery=dol_mktime(12, 0, 0, GETPOST('liv_month'), GETPOST('liv_day'), GETPOST('liv_year')); - $duration=GETPOST('duree_validite'); - - if (empty($datep)) - { - setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Date")), 'errors'); - $action='create'; - $error++; - } - if (empty($duration)) - { - setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("ValidityDuration")), 'errors'); - $action='create'; - $error++; - } - - if ($socid<1) - { - setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Customer")),'errors'); - $action='create'; - $error++; - } - - if (! $error) - { - $db->begin(); - - // Si on a selectionne une propal a copier, on realise la copie - if (GETPOST('createmode')=='copy' && GETPOST('copie_propal')) - { - if ($object->fetch(GETPOST('copie_propal')) > 0) - { - $object->ref = GETPOST('ref'); - $object->datep = $datep; - $object->date_livraison = $date_delivery; - $object->availability_id = GETPOST('availability_id'); - $object->demand_reason_id = GETPOST('demand_reason_id'); - $object->fk_delivery_address = GETPOST('fk_address'); - $object->duree_validite = $duration; - $object->cond_reglement_id = GETPOST('cond_reglement_id'); - $object->mode_reglement_id = GETPOST('mode_reglement_id'); - $object->remise_percent = GETPOST('remise_percent'); - $object->remise_absolue = GETPOST('remise_absolue'); - $object->socid = GETPOST('socid'); - $object->contactid = GETPOST('contactidp'); - $object->fk_project = GETPOST('projectid'); - $object->modelpdf = GETPOST('model'); - $object->author = $user->id; // deprecated - $object->note = GETPOST('note'); - $object->statut = 0; - - $id = $object->create_from($user); - } - else - { - setEventMessage($langs->trans("ErrorFailedToCopyProposal",GETPOST('copie_propal')), 'errors'); - } - } - else - { - $object->ref = GETPOST('ref'); - $object->ref_client = GETPOST('ref_client'); - $object->datep = $datep; - $object->date_livraison = $date_delivery; - $object->availability_id = GETPOST('availability_id'); - $object->demand_reason_id = GETPOST('demand_reason_id'); - $object->fk_delivery_address = GETPOST('fk_address'); - $object->duree_validite = GETPOST('duree_validite'); - $object->cond_reglement_id = GETPOST('cond_reglement_id'); - $object->mode_reglement_id = GETPOST('mode_reglement_id'); - - $object->contactid = GETPOST('contactidp'); - $object->fk_project = GETPOST('projectid'); - $object->modelpdf = GETPOST('model'); - $object->author = $user->id; // deprecated - $object->note = GETPOST('note'); - - $object->origin = GETPOST('origin'); - $object->origin_id = GETPOST('originid'); - - for ($i = 1 ; $i <= $conf->global->PRODUCT_SHOW_WHEN_CREATE; $i++) - { - if ($_POST['idprod'.$i]) - { - $xid = 'idprod'.$i; - $xqty = 'qty'.$i; - $xremise = 'remise'.$i; - $object->add_product($_POST[$xid],$_POST[$xqty],$_POST[$xremise]); - } - } - - // Get extra fields - foreach($_POST as $key => $value) - { - if (preg_match("/^options_/",$key)) - { - $object->array_options[$key]=GETPOST($key); - } - } - - $id = $object->create($user); - } - - if ($id > 0) - { - // Insertion contact par defaut si defini - if (GETPOST('contactidp')) - { - $result=$object->add_contact(GETPOST('contactidp'),'CUSTOMER','external'); - if ($result < 0) - { - $error++; - setEventMessage($langs->trans("ErrorFailedToAddContact"), 'errors'); - } - } - - if (! $error) - { - $db->commit(); - - if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) - { - // Define output language - $outputlangs = $langs; - if (! empty($conf->global->MAIN_MULTILANGS)) - { - $outputlangs = new Translate("",$conf); - $newlang=(GETPOST('lang_id') ? GETPOST('lang_id') : $object->client->default_lang); - $outputlangs->setDefaultLang($newlang); - } - $ret=$object->fetch($id); // Reload to get new records - propale_pdf_create($db, $object, $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref); - } - - header('Location: '.$_SERVER["PHP_SELF"].'?id='.$id); - exit; - } - else - { - $db->rollback(); - } - } - else - { - dol_print_error($db,$object->error); - $db->rollback(); - exit; - } - } -} - -// Classify billed -else if ($action == 'classifybilled' && $user->rights->propal->cloturer) -{ - $object->cloture($user, 4, ''); -} - -// Reopen proposal -else if ($action == 'confirm_reopen' && $user->rights->propal->cloturer && ! GETPOST('cancel')) -{ - // prevent browser refresh from reopening proposal several times - if ($object->statut==2 || $object->statut==3) - { - $object->setStatut(1); - } -} - -// Close proposal -else if ($action == 'setstatut' && $user->rights->propal->cloturer && ! GETPOST('cancel')) -{ - if (! GETPOST('statut')) - { - setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentities("CloseAs")), 'errors'); - $action='statut'; - } - else - { - // prevent browser refresh from closing proposal several times - if ($object->statut==1) - { - $object->cloture($user, GETPOST('statut'), GETPOST('note')); - } - } -} - -/* - * Add file in email form - */ -if (GETPOST('addfile')) -{ - require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; - - // Set tmp user directory TODO Use a dedicated directory for temp mails files - $vardir=$conf->user->dir_output."/".$user->id; - $upload_dir_tmp = $vardir.'/temp'; - - dol_add_file_process($upload_dir_tmp,0,0); - $action='presend'; -} - -/* - * Remove file in email form - */ -if (GETPOST('removedfile')) -{ - require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; - - // Set tmp user directory - $vardir=$conf->user->dir_output."/".$user->id; - $upload_dir_tmp = $vardir.'/temp'; - - // TODO Delete only files that was uploaded from email form - dol_remove_file_process($_POST['removedfile'],0); - $action='presend'; -} - -/* - * Send mail - */ -if ($action == 'send' && ! GETPOST('addfile') && ! GETPOST('removedfile') && ! GETPOST('cancel')) -{ - $langs->load('mails'); - - if ($object->id > 0) - { - if ($_POST['sendto']) - { - // Le destinataire a ete fourni via le champ libre - $sendto = $_POST['sendto']; - $sendtoid = 0; - } - elseif ($_POST['receiver'] != '-1') - { - // Recipient was provided from combo list - if ($_POST['receiver'] == 'thirdparty') // Id of third party - { - $sendto = $object->client->email; - $sendtoid = 0; - } - else // Id du contact - { - $sendto = $object->client->contact_get_property($_POST['receiver'],'email'); - $sendtoid = $_POST['receiver']; - } - } - - if (dol_strlen($sendto)) - { - $langs->load("commercial"); - - $from = $_POST['fromname'] . ' <' . $_POST['frommail'] .'>'; - $replyto = $_POST['replytoname']. ' <' . $_POST['replytomail'].'>'; - $message = $_POST['message']; - $sendtocc = $_POST['sendtocc']; - $deliveryreceipt = $_POST['deliveryreceipt']; - - if (dol_strlen($_POST['subject'])) $subject = $_POST['subject']; - else $subject = $langs->transnoentities('Propal').' '.$object->ref; - $actiontypecode='AC_PROP'; - $actionmsg = $langs->transnoentities('MailSentBy').' '.$from.' '.$langs->transnoentities('To').' '.$sendto.".\n"; - if ($message) - { - $actionmsg.=$langs->transnoentities('MailTopic').": ".$subject."\n"; - $actionmsg.=$langs->transnoentities('TextUsedInTheMessageBody').":\n"; - $actionmsg.=$message; - } - $actionmsg2=$langs->transnoentities('Action'.$actiontypecode); - - // Create form object - include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php'; - $formmail = new FormMail($db); - - $attachedfiles=$formmail->get_attached_files(); - $filepath = $attachedfiles['paths']; - $filename = $attachedfiles['names']; - $mimetype = $attachedfiles['mimes']; - - // Envoi de la propal - require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; - $mailfile = new CMailFile($subject,$sendto,$from,$message,$filepath,$mimetype,$filename,$sendtocc,'',$deliveryreceipt); - if ($mailfile->error) - { - setEventMessage($mailfile->error, 'errors'); - } - else - { - $result=$mailfile->sendfile(); - if ($result) - { - // Initialisation donnees - $object->sendtoid = $sendtoid; - $object->actiontypecode = $actiontypecode; - $object->actionmsg = $actionmsg; - $object->actionmsg2 = $actionmsg2; - $object->fk_element = $object->id; - $object->elementtype = $object->element; - - // Appel des triggers - include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; - $interface=new Interfaces($db); - $result=$interface->run_triggers('PROPAL_SENTBYMAIL',$object,$user,$langs,$conf); - if ($result < 0) { - $error++; $this->errors=$interface->errors; - } - // Fin appel triggers - - if (! $error) - { - // Redirect here - // This avoid sending mail twice if going out and then back to page - $mesg=$langs->trans('MailSuccessfulySent',$mailfile->getValidAddress($from,2),$mailfile->getValidAddress($sendto,2)); - setEventMessage($mesg); - header('Location: '.$_SERVER["PHP_SELF"].'?id='.$object->id); - exit; - } - else - { - dol_print_error($db); - } - } - else - { - $langs->load("other"); - if ($mailfile->error) - { - $mesg.=$langs->trans('ErrorFailedToSendMail',$from,$sendto); - $mesg.='
'.$mailfile->error; - } - else - { - $mesg.='No mail sent. Feature is disabled by option MAIN_DISABLE_ALL_MAILS'; - } - setEventMessage($mesg, 'errors'); - } - } - } - else - { - $langs->load("other"); - setEventMessage($langs->trans('ErrorMailRecipientIsEmpty').'!', 'errors'); - dol_syslog($langs->trans('ErrorMailRecipientIsEmpty')); - } - } - else - { - $langs->load("other"); - setEventMessage($langs->trans('ErrorFailedToReadEntity',$langs->trans("Proposal")), 'errors'); - dol_syslog($langs->trans('ErrorFailedToReadEntity',$langs->trans("Proposal"))); - } -} - -// Go back to draft -if ($action == 'modif' && $user->rights->propal->creer) -{ - $object->set_draft($user); - - if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) - { - // Define output language - $outputlangs = $langs; - if (! empty($conf->global->MAIN_MULTILANGS)) - { - $outputlangs = new Translate("",$conf); - $newlang=(GETPOST('lang_id') ? GETPOST('lang_id') : $object->client->default_lang); - $outputlangs->setDefaultLang($newlang); - } - $ret=$object->fetch($id); // Reload to get new records - propale_pdf_create($db, $object, $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref); - } -} - -else if ($action == "setabsolutediscount" && $user->rights->propal->creer) -{ - if ($_POST["remise_id"]) - { - if ($object->id > 0) - { - $result=$object->insert_discount($_POST["remise_id"]); - if ($result < 0) - { - setEventMessage($object->error, 'errors'); - } - } - } -} - -//Ajout d'une ligne produit dans la propale -else if ($action == "addline" && $user->rights->propal->creer) -{ - $idprod=GETPOST('idprod', 'int'); - $product_desc = (GETPOST('product_desc')?GETPOST('product_desc'):(GETPOST('np_desc')?GETPOST('np_desc'):(GETPOST('dp_desc')?GETPOST('dp_desc'):''))); - $price_ht = GETPOST('price_ht'); - $tva_tx = (GETPOST('tva_tx')?GETPOST('tva_tx'):0); - - if (empty($idprod) && GETPOST('type') < 0) - { - setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Type")), 'errors'); - $error++; - } - if ((empty($idprod) || GETPOST('usenewaddlineform')) && (!($price_ht != 0) || $price_ht == '')) // Unit price can be 0 but not ''. Also price can be negative for proposal. - { - setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("UnitPriceHT")), 'errors'); - $error++; - } - if (empty($idprod) && empty($product_desc)) - { - setEventMessage($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Description")), 'errors'); - $error++; - } - - if (! $error && (GETPOST('qty') >= 0) && (! empty($product_desc) || ! empty($idprod))) - { - $pu_ht=0; - $pu_ttc=0; - $price_min=0; - $price_base_type = (GETPOST('price_base_type', 'alpha')?GETPOST('price_base_type', 'alpha'):'HT'); - - // Ecrase $pu par celui du produit - // Ecrase $desc par celui du produit - // Ecrase $txtva par celui du produit - if (! empty($idprod)) - { - $prod = new Product($db); - $prod->fetch($idprod); - - $label = ((GETPOST('product_label') && GETPOST('product_label')!=$prod->label)?GETPOST('product_label'):''); - - // If prices fields are update - if (GETPOST('usenewaddlineform')) - { - $pu_ht=price2num($price_ht, 'MU'); - $pu_ttc=price2num(GETPOST('price_ttc'), 'MU'); - $tva_npr=(preg_match('/\*/', $tva_tx)?1:0); - $tva_tx=str_replace('*','', $tva_tx); - $desc = $product_desc; - } - else - { - $tva_tx = get_default_tva($mysoc,$object->client,$prod->id); - $tva_npr = get_default_npr($mysoc,$object->client,$prod->id); - - // On defini prix unitaire - if (! empty($conf->global->PRODUIT_MULTIPRICES) && $object->client->price_level) - { - $pu_ht = $prod->multiprices[$object->client->price_level]; - $pu_ttc = $prod->multiprices_ttc[$object->client->price_level]; - $price_min = $prod->multiprices_min[$object->client->price_level]; - $price_base_type = $prod->multiprices_base_type[$object->client->price_level]; - } - else - { - $pu_ht = $prod->price; - $pu_ttc = $prod->price_ttc; - $price_min = $prod->price_min; - $price_base_type = $prod->price_base_type; - } - - // On reevalue prix selon taux tva car taux tva transaction peut etre different - // de ceux du produit par defaut (par exemple si pays different entre vendeur et acheteur). - if ($tva_tx != $prod->tva_tx) - { - if ($price_base_type != 'HT') - { - $pu_ht = price2num($pu_ttc / (1 + ($tva_tx/100)), 'MU'); - } - else - { - $pu_ttc = price2num($pu_ht * (1 + ($tva_tx/100)), 'MU'); - } - } - - $desc=''; - - // Define output language - if (! empty($conf->global->MAIN_MULTILANGS) && ! empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) - { - $outputlangs = $langs; - $newlang=''; - if (empty($newlang) && GETPOST('lang_id')) $newlang=GETPOST('lang_id'); - if (empty($newlang)) $newlang=$object->client->default_lang; - if (! empty($newlang)) - { - $outputlangs = new Translate("",$conf); - $outputlangs->setDefaultLang($newlang); - } - - $desc = (! empty($prod->multilangs[$outputlangs->defaultlang]["description"])) ? $prod->multilangs[$outputlangs->defaultlang]["description"] : $prod->description; - } - else - { - $desc = $prod->description; - } - - $desc=dol_concatdesc($desc,$product_desc); - + + * Copyright (C) 2004-2013 Laurent Destailleur + * Copyright (C) 2004 Eric Seigne + * Copyright (C) 2005 Marc Barilley / Ocebo + * Copyright (C) 2005-2012 Regis Houssin + * Copyright (C) 2006 Andre Cianfarani + * Copyright (C) 2010-2013 Juanjo Menent + * Copyright (C) 2010-2011 Philippe Grand + * Copyright (C) 2012 Christophe Battarel +* + * 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/comm/propal.php + * \ingroup propale + * \brief Page of commercial proposals card and list + */ + +require '../main.inc.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formpropal.class.php'; +require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; +require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/modules/propale/modules_propale.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/propal.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; +if (! empty($conf->projet->enabled)) +{ + require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; + require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php'; +} + +$langs->load('companies'); +$langs->load('propal'); +$langs->load('compta'); +$langs->load('bills'); +$langs->load('orders'); +$langs->load('products'); +$langs->load("deliveries"); +if (! empty($conf->margin->enabled)) + $langs->load('margins'); + +$error=0; + +$id=GETPOST('id','int'); +$ref=GETPOST('ref','alpha'); +$socid=GETPOST('socid','int'); +$action=GETPOST('action','alpha'); +$origin=GETPOST('origin','alpha'); +$originid=GETPOST('originid','int'); +$confirm=GETPOST('confirm','alpha'); +$lineid=GETPOST('lineid','int'); + +//PDF +$hidedetails = (GETPOST('hidedetails','int') ? GETPOST('hidedetails','int') : (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS) ? 1 : 0)); +$hidedesc = (GETPOST('hidedesc','int') ? GETPOST('hidedesc','int') : (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DESC) ? 1 : 0)); +$hideref = (GETPOST('hideref','int') ? GETPOST('hideref','int') : (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_REF) ? 1 : 0)); + +// Nombre de ligne pour choix de produit/service predefinis +$NBLINES=4; + +// Security check +if (! empty($user->societe_id)) $socid=$user->societe_id; +$result = restrictedArea($user, 'propal', $id); + +$object = new Propal($db); +$extrafields = new ExtraFields($db); + +// Load object +if ($id > 0 || ! empty($ref)) +{ + $ret=$object->fetch($id, $ref); + if ($ret > 0) $ret=$object->fetch_thirdparty(); + if ($ret < 0) dol_print_error('',$object->error); +} + +// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array +$hookmanager->initHooks(array('propalcard')); + + + +/* + * Actions + */ + +$parameters=array('socid'=>$socid); +$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks + +// Action clone object +if ($action == 'confirm_clone' && $confirm == 'yes') +{ + if (1==0 && ! GETPOST('clone_content') && ! GETPOST('clone_receivers')) + { + setEventMessage($langs->trans("NoCloneOptionsSpecified"), 'errors'); + } + else + { + if ($object->id > 0) + { + $result=$object->createFromClone($socid); + if ($result > 0) + { + header("Location: ".$_SERVER['PHP_SELF'].'?id='.$result); + exit; + } + else + { + setEventMessage($object->error, 'errors'); + $action=''; + } + } + } +} + +// Suppression de la propale +else if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->propal->supprimer) +{ + $result=$object->delete($user); + if ($result > 0) + { + header('Location: '.DOL_URL_ROOT.'/comm/propal/list.php'); + exit; + } + else + { + $langs->load("errors"); + setEventMessage($langs->trans($object->error), 'errors'); + } +} + +// Remove line +else if ($action == 'confirm_deleteline' && $confirm == 'yes' && $user->rights->propal->creer) +{ + $result = $object->deleteline($lineid); + // reorder lines + if ($result) $object->line_order(true); + + if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) + { + // Define output language + $outputlangs = $langs; + if (! empty($conf->global->MAIN_MULTILANGS)) + { + $outputlangs = new Translate("",$conf); + $newlang=(GETPOST('lang_id') ? GETPOST('lang_id') : $object->client->default_lang); + $outputlangs->setDefaultLang($newlang); + } + $ret=$object->fetch($id); // Reload to get new records + propale_pdf_create($db, $object, $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref); + } + + header('Location: '.$_SERVER["PHP_SELF"].'?id='.$object->id); + exit; +} + +// Validation +else if ($action == 'confirm_validate' && $confirm == 'yes' && $user->rights->propal->valider) +{ + $result=$object->valid($user); + if ($result >= 0) + { + if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) + { + // Define output language + $outputlangs = $langs; + if (! empty($conf->global->MAIN_MULTILANGS)) + { + $outputlangs = new Translate("",$conf); + $newlang=(GETPOST('lang_id') ? GETPOST('lang_id') : $object->client->default_lang); + $outputlangs->setDefaultLang($newlang); + } + $ret=$object->fetch($id); // Reload to get new records + propale_pdf_create($db, $object, $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref); + } + } + else + { + $langs->load("errors"); + setEventMessage($langs->trans($object->error), 'errors'); + } +} + +else if ($action == 'setdate' && $user->rights->propal->creer) +{ + $datep=dol_mktime(12, 0, 0, $_POST['remonth'], $_POST['reday'], $_POST['reyear']); + + if (empty($datep)) + { + $error++; + setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Date")), 'errors'); + } + + if (! $error) + { + $result=$object->set_date($user,$datep); + if ($result < 0) dol_print_error($db,$object->error); + } +} +else if ($action == 'setecheance' && $user->rights->propal->creer) +{ + $result=$object->set_echeance($user,dol_mktime(12, 0, 0, $_POST['echmonth'], $_POST['echday'], $_POST['echyear'])); + if ($result < 0) dol_print_error($db,$object->error); +} +else if ($action == 'setdate_livraison' && $user->rights->propal->creer) +{ + $result=$object->set_date_livraison($user,dol_mktime(12, 0, 0, $_POST['liv_month'], $_POST['liv_day'], $_POST['liv_year'])); + if ($result < 0) dol_print_error($db,$object->error); +} + +// Positionne ref client +else if ($action == 'set_ref_client' && $user->rights->propal->creer) +{ + $object->set_ref_client($user, $_POST['ref_client']); +} + +else if ($action == 'setnote_public' && $user->rights->propal->creer) +{ + $result=$object->update_note_public(dol_html_entity_decode(GETPOST('note_public'), ENT_QUOTES)); + if ($result < 0) dol_print_error($db,$object->error); +} + +else if ($action == 'setnote' && $user->rights->propal->creer) +{ + $result=$object->update_note(dol_html_entity_decode(GETPOST('note'), ENT_QUOTES)); + if ($result < 0) dol_print_error($db,$object->error); +} + +// Create proposal +else if ($action == 'add' && $user->rights->propal->creer) +{ + $object->socid=$socid; + $object->fetch_thirdparty(); + + $datep=dol_mktime(12, 0, 0, GETPOST('remonth'), GETPOST('reday'), GETPOST('reyear')); + $date_delivery=dol_mktime(12, 0, 0, GETPOST('liv_month'), GETPOST('liv_day'), GETPOST('liv_year')); + $duration=GETPOST('duree_validite'); + + if (empty($datep)) + { + setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Date")), 'errors'); + $action='create'; + $error++; + } + if (empty($duration)) + { + setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("ValidityDuration")), 'errors'); + $action='create'; + $error++; + } + + if ($socid<1) + { + setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Customer")),'errors'); + $action='create'; + $error++; + } + + if (! $error) + { + $db->begin(); + + // Si on a selectionne une propal a copier, on realise la copie + if (GETPOST('createmode')=='copy' && GETPOST('copie_propal')) + { + if ($object->fetch(GETPOST('copie_propal')) > 0) + { + $object->ref = GETPOST('ref'); + $object->datep = $datep; + $object->date_livraison = $date_delivery; + $object->availability_id = GETPOST('availability_id'); + $object->demand_reason_id = GETPOST('demand_reason_id'); + $object->fk_delivery_address = GETPOST('fk_address'); + $object->duree_validite = $duration; + $object->cond_reglement_id = GETPOST('cond_reglement_id'); + $object->mode_reglement_id = GETPOST('mode_reglement_id'); + $object->remise_percent = GETPOST('remise_percent'); + $object->remise_absolue = GETPOST('remise_absolue'); + $object->socid = GETPOST('socid'); + $object->contactid = GETPOST('contactidp'); + $object->fk_project = GETPOST('projectid'); + $object->modelpdf = GETPOST('model'); + $object->author = $user->id; // deprecated + $object->note = GETPOST('note'); + $object->statut = 0; + + $id = $object->create_from($user); + } + else + { + setEventMessage($langs->trans("ErrorFailedToCopyProposal",GETPOST('copie_propal')), 'errors'); + } + } + else + { + $object->ref = GETPOST('ref'); + $object->ref_client = GETPOST('ref_client'); + $object->datep = $datep; + $object->date_livraison = $date_delivery; + $object->availability_id = GETPOST('availability_id'); + $object->demand_reason_id = GETPOST('demand_reason_id'); + $object->fk_delivery_address = GETPOST('fk_address'); + $object->duree_validite = GETPOST('duree_validite'); + $object->cond_reglement_id = GETPOST('cond_reglement_id'); + $object->mode_reglement_id = GETPOST('mode_reglement_id'); + + $object->contactid = GETPOST('contactidp'); + $object->fk_project = GETPOST('projectid'); + $object->modelpdf = GETPOST('model'); + $object->author = $user->id; // deprecated + $object->note = GETPOST('note'); + + $object->origin = GETPOST('origin'); + $object->origin_id = GETPOST('originid'); + + for ($i = 1 ; $i <= $conf->global->PRODUCT_SHOW_WHEN_CREATE; $i++) + { + if ($_POST['idprod'.$i]) + { + $xid = 'idprod'.$i; + $xqty = 'qty'.$i; + $xremise = 'remise'.$i; + $object->add_product($_POST[$xid],$_POST[$xqty],$_POST[$xremise]); + } + } + + // Get extra fields + foreach($_POST as $key => $value) + { + if (preg_match("/^options_/",$key)) + { + $object->array_options[$key]=GETPOST($key); + } + } + + $id = $object->create($user); + } + + if ($id > 0) + { + // Insertion contact par defaut si defini + if (GETPOST('contactidp')) + { + $result=$object->add_contact(GETPOST('contactidp'),'CUSTOMER','external'); + if ($result < 0) + { + $error++; + setEventMessage($langs->trans("ErrorFailedToAddContact"), 'errors'); + } + } + + if (! $error) + { + $db->commit(); + + if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) + { + // Define output language + $outputlangs = $langs; + if (! empty($conf->global->MAIN_MULTILANGS)) + { + $outputlangs = new Translate("",$conf); + $newlang=(GETPOST('lang_id') ? GETPOST('lang_id') : $object->client->default_lang); + $outputlangs->setDefaultLang($newlang); + } + $ret=$object->fetch($id); // Reload to get new records + propale_pdf_create($db, $object, $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref); + } + + header('Location: '.$_SERVER["PHP_SELF"].'?id='.$id); + exit; + } + else + { + $db->rollback(); + } + } + else + { + dol_print_error($db,$object->error); + $db->rollback(); + exit; + } + } +} + +// Classify billed +else if ($action == 'classifybilled' && $user->rights->propal->cloturer) +{ + $object->cloture($user, 4, ''); +} + +// Reopen proposal +else if ($action == 'confirm_reopen' && $user->rights->propal->cloturer && ! GETPOST('cancel')) +{ + // prevent browser refresh from reopening proposal several times + if ($object->statut==2 || $object->statut==3) + { + $object->setStatut(1); + } +} + +// Close proposal +else if ($action == 'setstatut' && $user->rights->propal->cloturer && ! GETPOST('cancel')) +{ + if (! GETPOST('statut')) + { + setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentities("CloseAs")), 'errors'); + $action='statut'; + } + else + { + // prevent browser refresh from closing proposal several times + if ($object->statut==1) + { + $object->cloture($user, GETPOST('statut'), GETPOST('note')); + } + } +} + +/* + * Add file in email form + */ +if (GETPOST('addfile')) +{ + require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + + // Set tmp user directory TODO Use a dedicated directory for temp mails files + $vardir=$conf->user->dir_output."/".$user->id; + $upload_dir_tmp = $vardir.'/temp'; + + dol_add_file_process($upload_dir_tmp,0,0); + $action='presend'; +} + +/* + * Remove file in email form + */ +if (GETPOST('removedfile')) +{ + require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + + // Set tmp user directory + $vardir=$conf->user->dir_output."/".$user->id; + $upload_dir_tmp = $vardir.'/temp'; + + // TODO Delete only files that was uploaded from email form + dol_remove_file_process($_POST['removedfile'],0); + $action='presend'; +} + +/* + * Send mail + */ +if ($action == 'send' && ! GETPOST('addfile') && ! GETPOST('removedfile') && ! GETPOST('cancel')) +{ + $langs->load('mails'); + + if ($object->id > 0) + { + if ($_POST['sendto']) + { + // Le destinataire a ete fourni via le champ libre + $sendto = $_POST['sendto']; + $sendtoid = 0; + } + elseif ($_POST['receiver'] != '-1') + { + // Recipient was provided from combo list + if ($_POST['receiver'] == 'thirdparty') // Id of third party + { + $sendto = $object->client->email; + $sendtoid = 0; + } + else // Id du contact + { + $sendto = $object->client->contact_get_property($_POST['receiver'],'email'); + $sendtoid = $_POST['receiver']; + } + } + + if (dol_strlen($sendto)) + { + $langs->load("commercial"); + + $from = $_POST['fromname'] . ' <' . $_POST['frommail'] .'>'; + $replyto = $_POST['replytoname']. ' <' . $_POST['replytomail'].'>'; + $message = $_POST['message']; + $sendtocc = $_POST['sendtocc']; + $deliveryreceipt = $_POST['deliveryreceipt']; + + if (dol_strlen($_POST['subject'])) $subject = $_POST['subject']; + else $subject = $langs->transnoentities('Propal').' '.$object->ref; + $actiontypecode='AC_PROP'; + $actionmsg = $langs->transnoentities('MailSentBy').' '.$from.' '.$langs->transnoentities('To').' '.$sendto.".\n"; + if ($message) + { + $actionmsg.=$langs->transnoentities('MailTopic').": ".$subject."\n"; + $actionmsg.=$langs->transnoentities('TextUsedInTheMessageBody').":\n"; + $actionmsg.=$message; + } + $actionmsg2=$langs->transnoentities('Action'.$actiontypecode); + + // Create form object + include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php'; + $formmail = new FormMail($db); + + $attachedfiles=$formmail->get_attached_files(); + $filepath = $attachedfiles['paths']; + $filename = $attachedfiles['names']; + $mimetype = $attachedfiles['mimes']; + + // Envoi de la propal + require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; + $mailfile = new CMailFile($subject,$sendto,$from,$message,$filepath,$mimetype,$filename,$sendtocc,'',$deliveryreceipt,-1); + if ($mailfile->error) + { + setEventMessage($mailfile->error, 'errors'); + } + else + { + $result=$mailfile->sendfile(); + if ($result) + { + // Initialisation donnees + $object->sendtoid = $sendtoid; + $object->actiontypecode = $actiontypecode; + $object->actionmsg = $actionmsg; + $object->actionmsg2 = $actionmsg2; + $object->fk_element = $object->id; + $object->elementtype = $object->element; + + // Appel des triggers + include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; + $interface=new Interfaces($db); + $result=$interface->run_triggers('PROPAL_SENTBYMAIL',$object,$user,$langs,$conf); + if ($result < 0) { + $error++; $this->errors=$interface->errors; + } + // Fin appel triggers + + if (! $error) + { + // Redirect here + // This avoid sending mail twice if going out and then back to page + $mesg=$langs->trans('MailSuccessfulySent',$mailfile->getValidAddress($from,2),$mailfile->getValidAddress($sendto,2)); + setEventMessage($mesg); + header('Location: '.$_SERVER["PHP_SELF"].'?id='.$object->id); + exit; + } + else + { + dol_print_error($db); + } + } + else + { + $langs->load("other"); + if ($mailfile->error) + { + $mesg.=$langs->trans('ErrorFailedToSendMail',$from,$sendto); + $mesg.='
'.$mailfile->error; + } + else + { + $mesg.='No mail sent. Feature is disabled by option MAIN_DISABLE_ALL_MAILS'; + } + setEventMessage($mesg, 'errors'); + } + } + } + else + { + $langs->load("other"); + setEventMessage($langs->trans('ErrorMailRecipientIsEmpty').'!', 'errors'); + dol_syslog($langs->trans('ErrorMailRecipientIsEmpty')); + } + } + else + { + $langs->load("other"); + setEventMessage($langs->trans('ErrorFailedToReadEntity',$langs->trans("Proposal")), 'errors'); + dol_syslog($langs->trans('ErrorFailedToReadEntity',$langs->trans("Proposal"))); + } +} + +// Go back to draft +if ($action == 'modif' && $user->rights->propal->creer) +{ + $object->set_draft($user); + + if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) + { + // Define output language + $outputlangs = $langs; + if (! empty($conf->global->MAIN_MULTILANGS)) + { + $outputlangs = new Translate("",$conf); + $newlang=(GETPOST('lang_id') ? GETPOST('lang_id') : $object->client->default_lang); + $outputlangs->setDefaultLang($newlang); + } + $ret=$object->fetch($id); // Reload to get new records + propale_pdf_create($db, $object, $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref); + } +} + +else if ($action == "setabsolutediscount" && $user->rights->propal->creer) +{ + if ($_POST["remise_id"]) + { + if ($object->id > 0) + { + $result=$object->insert_discount($_POST["remise_id"]); + if ($result < 0) + { + setEventMessage($object->error, 'errors'); + } + } + } +} + +//Ajout d'une ligne produit dans la propale +else if ($action == "addline" && $user->rights->propal->creer) +{ + $idprod=GETPOST('idprod', 'int'); + $product_desc = (GETPOST('product_desc')?GETPOST('product_desc'):(GETPOST('np_desc')?GETPOST('np_desc'):(GETPOST('dp_desc')?GETPOST('dp_desc'):''))); + $price_ht = GETPOST('price_ht'); + $tva_tx = (GETPOST('tva_tx')?GETPOST('tva_tx'):0); + + if (empty($idprod) && GETPOST('type') < 0) + { + setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Type")), 'errors'); + $error++; + } + if ((empty($idprod) || GETPOST('usenewaddlineform')) && (!($price_ht != 0) || $price_ht == '')) // Unit price can be 0 but not ''. Also price can be negative for proposal. + { + setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("UnitPriceHT")), 'errors'); + $error++; + } + if (empty($idprod) && empty($product_desc)) + { + setEventMessage($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Description")), 'errors'); + $error++; + } + + if (! $error && (GETPOST('qty') >= 0) && (! empty($product_desc) || ! empty($idprod))) + { + $pu_ht=0; + $pu_ttc=0; + $price_min=0; + $price_base_type = (GETPOST('price_base_type', 'alpha')?GETPOST('price_base_type', 'alpha'):'HT'); + + // Ecrase $pu par celui du produit + // Ecrase $desc par celui du produit + // Ecrase $txtva par celui du produit + if (! empty($idprod)) + { + $prod = new Product($db); + $prod->fetch($idprod); + + $label = ((GETPOST('product_label') && GETPOST('product_label')!=$prod->label)?GETPOST('product_label'):''); + + // If prices fields are update + if (GETPOST('usenewaddlineform')) + { + $pu_ht=price2num($price_ht, 'MU'); + $pu_ttc=price2num(GETPOST('price_ttc'), 'MU'); + $tva_npr=(preg_match('/\*/', $tva_tx)?1:0); + $tva_tx=str_replace('*','', $tva_tx); + $desc = $product_desc; + } + else + { + $tva_tx = get_default_tva($mysoc,$object->client,$prod->id); + $tva_npr = get_default_npr($mysoc,$object->client,$prod->id); + + // On defini prix unitaire + if (! empty($conf->global->PRODUIT_MULTIPRICES) && $object->client->price_level) + { + $pu_ht = $prod->multiprices[$object->client->price_level]; + $pu_ttc = $prod->multiprices_ttc[$object->client->price_level]; + $price_min = $prod->multiprices_min[$object->client->price_level]; + $price_base_type = $prod->multiprices_base_type[$object->client->price_level]; + } + else + { + $pu_ht = $prod->price; + $pu_ttc = $prod->price_ttc; + $price_min = $prod->price_min; + $price_base_type = $prod->price_base_type; + } + + // On reevalue prix selon taux tva car taux tva transaction peut etre different + // de ceux du produit par defaut (par exemple si pays different entre vendeur et acheteur). + if ($tva_tx != $prod->tva_tx) + { + if ($price_base_type != 'HT') + { + $pu_ht = price2num($pu_ttc / (1 + ($tva_tx/100)), 'MU'); + } + else + { + $pu_ttc = price2num($pu_ht * (1 + ($tva_tx/100)), 'MU'); + } + } + + $desc=''; + + // Define output language + if (! empty($conf->global->MAIN_MULTILANGS) && ! empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) + { + $outputlangs = $langs; + $newlang=''; + if (empty($newlang) && GETPOST('lang_id')) $newlang=GETPOST('lang_id'); + if (empty($newlang)) $newlang=$object->client->default_lang; + if (! empty($newlang)) + { + $outputlangs = new Translate("",$conf); + $outputlangs->setDefaultLang($newlang); + } + + $desc = (! empty($prod->multilangs[$outputlangs->defaultlang]["description"])) ? $prod->multilangs[$outputlangs->defaultlang]["description"] : $prod->description; + } + else + { + $desc = $prod->description; + } + + $desc=dol_concatdesc($desc,$product_desc); + // Add custom code and origin country into description if (empty($conf->global->MAIN_PRODUCT_DISABLE_CUSTOMCOUNTRYCODE) && (! empty($prod->customcode) || ! empty($prod->country_code))) { @@ -752,1486 +752,1534 @@ else if ($action == "addline" && $user->rights->propal->creer) $tmptxt.=')'; $desc= dol_concatdesc($desc, $tmptxt); } - } - - $type = $prod->type; - } - else - { - $pu_ht = price2num($price_ht, 'MU'); - $pu_ttc = price2num(GETPOST('price_ttc'), 'MU'); - $tva_npr = (preg_match('/\*/', $tva_tx)?1:0); - $tva_tx = str_replace('*', '', $tva_tx); - $label = (GETPOST('product_label')?GETPOST('product_label'):''); - $desc = $product_desc; - $type = GETPOST('type'); - } - - // Margin - $fournprice=(GETPOST('fournprice')?GETPOST('fournprice'):''); - $buyingprice=(GETPOST('buying_price')?GETPOST('buying_price'):''); - - // Local Taxes - $localtax1_tx= get_localtax($tva_tx, 1, $object->client); - $localtax2_tx= get_localtax($tva_tx, 2, $object->client); - - $info_bits=0; - if ($tva_npr) $info_bits |= 0x01; - - if (! empty($price_min) && (price2num($pu_ht)*(1-price2num(GETPOST('remise_percent'))/100) < price2num($price_min))) - { - $mesg = $langs->trans("CantBeLessThanMinPrice",price2num($price_min,'MU').$langs->getCurrencySymbol($conf->currency)); - setEventMessage($mesg, 'errors'); - } - else - { - // Insert line - $result=$object->addline( - $id, - $desc, - $pu_ht, - GETPOST('qty'), - $tva_tx, - $localtax1_tx, - $localtax2_tx, - $idprod, - GETPOST('remise_percent'), - $price_base_type, - $pu_ttc, - $info_bits, - $type, - -1, - 0, - GETPOST('fk_parent_line'), - $fournprice, - $buyingprice, - $label - ); - - if ($result > 0) - { - if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) - { - // Define output language - $outputlangs = $langs; - if (! empty($conf->global->MAIN_MULTILANGS)) - { - $outputlangs = new Translate("",$conf); - $newlang=(GETPOST('lang_id') ? GETPOST('lang_id') : $object->client->default_lang); - $outputlangs->setDefaultLang($newlang); - } - $ret=$object->fetch($id); // Reload to get new records - propale_pdf_create($db, $object, $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref); - } - - unset($_POST['qty']); - unset($_POST['type']); - unset($_POST['idprod']); - unset($_POST['remise_percent']); - unset($_POST['price_ht']); - unset($_POST['price_ttc']); - unset($_POST['tva_tx']); - unset($_POST['product_ref']); - unset($_POST['product_label']); - unset($_POST['product_desc']); - unset($_POST['fournprice']); - unset($_POST['buying_price']); - - // old method - unset($_POST['np_desc']); - unset($_POST['dp_desc']); - } - else - { - setEventMessage($object->error, 'errors'); - } - } - } -} - -// Mise a jour d'une ligne dans la propale -else if ($action == 'updateligne' && $user->rights->propal->creer && GETPOST('save') == $langs->trans("Save")) -{ - // Define info_bits - $info_bits=0; - if (preg_match('/\*/', GETPOST('tva_tx'))) $info_bits |= 0x01; - - // Clean parameters - $description=dol_htmlcleanlastbr(GETPOST('product_desc')); - - // Define vat_rate - $vat_rate=(GETPOST('tva_tx')?GETPOST('tva_tx'):0); - $vat_rate=str_replace('*','',$vat_rate); - $localtax1_rate=get_localtax($vat_rate,1,$object->client); - $localtax2_rate=get_localtax($vat_rate,2,$object->client); - $pu_ht=GETPOST('price_ht'); - - // Add buying price - $fournprice=(GETPOST('fournprice')?GETPOST('fournprice'):''); - $buyingprice=(GETPOST('buying_price')?GETPOST('buying_price'):''); - - // Define special_code for special lines - $special_code=0; - if (! GETPOST('qty')) $special_code=3; - - // Check minimum price - $productid = GETPOST('productid', 'int'); - if (! empty($productid)) - { - $product = new Product($db); - $res=$product->fetch($productid); - - $type=$product->type; - - $price_min = $product->price_min; - if (! empty($conf->global->PRODUIT_MULTIPRICES) && ! empty($object->client->price_level)) - $price_min = $product->multiprices_min[$object->client->price_level]; - - $label = ((GETPOST('update_label') && GETPOST('product_label')) ? GETPOST('product_label'):''); - - if ($price_min && (price2num($pu_ht)*(1-price2num(GETPOST('remise_percent'))/100) < price2num($price_min))) - { - setEventMessage($langs->trans("CantBeLessThanMinPrice", price2num($price_min,'MU')).$langs->getCurrencySymbol($conf->currency), 'errors'); - $error++; - } - } - else - { - $type = GETPOST('type'); - $label = (GETPOST('product_label') ? GETPOST('product_label'):''); - - // Check parameters - if (GETPOST('type') < 0) { - setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Type")), 'errors'); - $error++; - } - } - - if (! $error) - { - $result = $object->updateline( - GETPOST('lineid'), - $pu_ht, - GETPOST('qty'), - GETPOST('remise_percent'), - $vat_rate, - $localtax1_rate, - $localtax2_rate, - $description, - 'HT', - $info_bits, - $special_code, - GETPOST('fk_parent_line'), - 0, - $fournprice, - $buyingprice, - $label, - $type - ); - - if ($result >= 0) - { - if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) - { - // Define output language - $outputlangs = $langs; - if (! empty($conf->global->MAIN_MULTILANGS)) - { - $outputlangs = new Translate("",$conf); - $newlang=(GETPOST('lang_id') ? GETPOST('lang_id') : $object->client->default_lang); - $outputlangs->setDefaultLang($newlang); - } - $ret=$object->fetch($id); // Reload to get new records - propale_pdf_create($db, $object, $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref); - } - - unset($_POST['qty']); - unset($_POST['type']); - unset($_POST['productid']); - unset($_POST['remise_percent']); - unset($_POST['price_ht']); - unset($_POST['price_ttc']); - unset($_POST['tva_tx']); - unset($_POST['product_ref']); - unset($_POST['product_label']); - unset($_POST['product_desc']); - unset($_POST['fournprice']); - unset($_POST['buying_price']); - } - else - { - setEventMessage($object->error, 'errors'); - } - } -} - -else if ($action == 'updateligne' && $user->rights->propal->creer && GETPOST('cancel') == $langs->trans('Cancel')) -{ - header('Location: '.$_SERVER['PHP_SELF'].'?id='.$object->id); // Pour reaffichage de la fiche en cours d'edition - exit; -} - -// Generation doc (depuis lien ou depuis cartouche doc) -else if ($action == 'builddoc' && $user->rights->propal->creer) -{ - if (GETPOST('model')) - { - $object->setDocModel($user, GETPOST('model')); - } - - // Define output language - $outputlangs = $langs; - if (! empty($conf->global->MAIN_MULTILANGS)) - { - $outputlangs = new Translate("",$conf); - $newlang=(GETPOST('lang_id') ? GETPOST('lang_id') : $object->client->default_lang); - $outputlangs->setDefaultLang($newlang); - } - $ret=$object->fetch($id); // Reload to get new records - $result=propale_pdf_create($db, $object, $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref); - - if ($result <= 0) - { - dol_print_error($db,$result); - exit; - } - else - { - header('Location: '.$_SERVER["PHP_SELF"].'?id='.$object->id.(empty($conf->global->MAIN_JUMP_TAG)?'':'#builddoc')); - exit; - } -} - -// Remove file in doc form -else if ($action == 'remove_file' && $user->rights->propal->creer) -{ - if ($object->id > 0) - { - require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; - - $langs->load("other"); - $upload_dir = $conf->propal->dir_output; - $file = $upload_dir . '/' . GETPOST('file'); - $ret=dol_delete_file($file,0,0,0,$object); - if ($ret) setEventMessage($langs->trans("FileWasRemoved", GETPOST('file'))); - else setEventMessage($langs->trans("ErrorFailToDeleteFile", GETPOST('file')), 'errors'); - } -} - -// Set project -else if ($action == 'classin' && $user->rights->propal->creer) -{ - $object->setProject($_POST['projectid']); -} - -// Delai de livraison -else if ($action == 'setavailability' && $user->rights->propal->creer) -{ - $result = $object->availability($_POST['availability_id']); -} - -// Origine de la propale -else if ($action == 'setdemandreason' && $user->rights->propal->creer) -{ - $result = $object->demand_reason($_POST['demand_reason_id']); -} - -// Conditions de reglement -else if ($action == 'setconditions' && $user->rights->propal->creer) -{ - $result = $object->setPaymentTerms(GETPOST('cond_reglement_id','int')); -} - -else if ($action == 'setremisepercent' && $user->rights->propal->creer) -{ - $result = $object->set_remise_percent($user, $_POST['remise_percent']); -} - -else if ($action == 'setremiseabsolue' && $user->rights->propal->creer) -{ - $result = $object->set_remise_absolue($user, $_POST['remise_absolue']); -} - -// Mode de reglement -else if ($action == 'setmode' && $user->rights->propal->creer) -{ - $result = $object->setPaymentMethods(GETPOST('mode_reglement_id','int')); -} - -/* - * Ordonnancement des lignes - */ - -else if ($action == 'up' && $user->rights->propal->creer) -{ - $object->line_up(GETPOST('rowid')); - - if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) - { - // Define output language - $outputlangs = $langs; - if (! empty($conf->global->MAIN_MULTILANGS)) - { - $outputlangs = new Translate("",$conf); - $newlang=(GETPOST('lang_id') ? GETPOST('lang_id') : $object->client->default_lang); - $outputlangs->setDefaultLang($newlang); - } - $ret=$object->fetch($id); // Reload to get new records - propale_pdf_create($db, $object, $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref); - } - - header('Location: '.$_SERVER["PHP_SELF"].'?id='.$id.'#'.GETPOST('rowid')); - exit; -} - -else if ($action == 'down' && $user->rights->propal->creer) -{ - $object->line_down(GETPOST('rowid')); - - if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) - { - // Define output language - $outputlangs = $langs; - if (! empty($conf->global->MAIN_MULTILANGS)) - { - $outputlangs = new Translate("",$conf); - $newlang=(GETPOST('lang_id') ? GETPOST('lang_id') : $object->client->default_lang); - $outputlangs->setDefaultLang($newlang); - } - $ret=$object->fetch($id); // Reload to get new records - propale_pdf_create($db, $object, $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref); - } - - header('Location: '.$_SERVER["PHP_SELF"].'?id='.$id.'#'.GETPOST('rowid')); - exit; -} -else if ($action == 'update_extras') -{ - // Get extra fields - foreach($_POST as $key => $value) - { - if (preg_match("/^options_/",$key)) - { - $object->array_options[$key]=$_POST[$key]; - } - } - // Actions on extra fields (by external module or standard code) - // FIXME le hook fait double emploi avec le trigger !! - $hookmanager->initHooks(array('propaldao')); - $parameters=array('id'=>$object->id); - $reshook=$hookmanager->executeHooks('insertExtraFields',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks - if (empty($reshook)) - { - if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) // For avoid conflicts if trigger used - { - $result=$object->insertExtraFields(); - if ($result < 0) - { - $error++; - } - } - } - else if ($reshook < 0) $error++; - -} - -if (! empty($conf->global->MAIN_DISABLE_CONTACTS_TAB) && $user->rights->propal->creer) -{ - if ($action == 'addcontact') - { - if ($object->id > 0) - { - $contactid = (GETPOST('userid') ? GETPOST('userid') : GETPOST('contactid')); - $result = $object->add_contact($contactid, $_POST["type"], $_POST["source"]); - } - - if ($result >= 0) - { - header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); - exit; - } - else - { - if ($object->error == 'DB_ERROR_RECORD_ALREADY_EXISTS') - { - $langs->load("errors"); - setEventMessage($langs->trans("ErrorThisContactIsAlreadyDefinedAsThisType"), 'errors'); - } - else - { - setEventMessage($object->error, 'errors'); - } - } - } - - // Bascule du statut d'un contact - else if ($action == 'swapstatut') - { - if ($object->fetch($id) > 0) - { - $result=$object->swapContactStatus(GETPOST('ligne')); - } - else - { - dol_print_error($db); - } - } - - // Efface un contact - else if ($action == 'deletecontact') - { - $object->fetch($id); - $result = $object->delete_contact($lineid); - - if ($result >= 0) - { - header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); - exit; - } - else - { - dol_print_error($db); - } - } -} - - -/* - * View - */ - -llxHeader('',$langs->trans('Proposal'),'EN:Commercial_Proposals|FR:Proposition_commerciale|ES:Presupuestos'); - -$form = new Form($db); -$formother = new FormOther($db); -$formfile = new FormFile($db); -$formpropal = new FormPropal($db); -$companystatic=new Societe($db); - -// fetch optionals attributes and labels -$extralabels=$extrafields->fetch_name_optionals_label('propal'); - -$now=dol_now(); - -// Add new proposal -if ($action == 'create') -{ - print_fiche_titre($langs->trans("NewProp")); - - $soc = new Societe($db); - if ($socid>0) $res=$soc->fetch($socid); - - $object = new Propal($db); - - print '
'; - print ''; - print ''; - - if ($origin != 'project' && $originid) - { - print ''; - print ''; - } - - print ''; - - // Reference - print ''; - - // Ref customer - print ''; - print ''; - - // Third party - print ''; - print ''; - if($socid>0) - { - print ''; - } - else - { - print ''; - } - print ''."\n"; - - // Contacts - if($socid>0) - { - print "'; - - // Ligne info remises tiers - print ''; - } - - // Date - print ''; - - // Validaty duration - print ''; - - // Terms of payment - print ''; - - // Mode of payment - print ''; - - // What trigger creation - print ''; - - // Delivery delay - print ''; - - // Delivery date (or manufacturing) - print ''; - print ''; - - // Model - print ''; - print ''; - print '"; - - // Project - if (! empty($conf->projet->enabled) && $socid>0) - { - $projectid = 0; - if ($origin == 'project') $projectid = ($originid?$originid:0); - - print ''; - print ''; - print ''; - } - - // Other attributes - $parameters=array('colspan' => ' colspan="3"'); - $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook - if (empty($reshook) && ! empty($extrafields->attribute_label)) - { - foreach($extrafields->attribute_label as $key=>$label) - { - $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$object->array_options["options_".$key]); - print 'attribute_required[$key])) print ' class="fieldrequired"'; - print '>'.$label.''."\n"; - } - } - - print "
'.$langs->trans('Ref').''.$langs->trans("Draft").'
'.$langs->trans('RefCustomer').''; - print '
'.$langs->trans('Customer').''; - print $soc->getNomUrl(1); - print ''; - print ''; - print $form->select_company('','socid','s.client = 1 OR s.client = 2 OR s.client = 3',1); - print '
".$langs->trans("DefaultContact").''; - $form->select_contacts($soc->id,$setcontact,'contactidp',1,$srccontactslist); - print '
'.$langs->trans('Discounts').''; - if ($soc->remise_client) print $langs->trans("CompanyHasRelativeDiscount",$soc->remise_client); - else print $langs->trans("CompanyHasNoRelativeDiscount"); - $absolute_discount=$soc->getAvailableDiscounts(); - print '. '; - if ($absolute_discount) print $langs->trans("CompanyHasAbsoluteDiscount",price($absolute_discount),$langs->trans("Currency".$conf->currency)); - else print $langs->trans("CompanyHasNoAbsoluteDiscount"); - print '.'; - print '
'.$langs->trans('Date').''; - $form->select_date('','','','','',"addprop"); - print '
'.$langs->trans("ValidityDuration").' '.$langs->trans("days").'
'.$langs->trans('PaymentConditionsShort').''; - $form->select_conditions_paiements($soc->cond_reglement,'cond_reglement_id'); - print '
'.$langs->trans('PaymentMode').''; - $form->select_types_paiements($soc->mode_reglement,'mode_reglement_id'); - print '
'.$langs->trans('Source').''; - $form->select_demand_reason('','demand_reason_id',"SRC_PROP",1); - print '
'.$langs->trans('AvailabilityPeriod').''; - $form->select_availability('','availability_id','',1); - print '
'.$langs->trans("DeliveryDate").''; - if ($conf->global->DATE_LIVRAISON_WEEK_DELAY != "") - { - $tmpdte = time() + ((7 * $conf->global->DATE_LIVRAISON_WEEK_DELAY) * 24 * 60 * 60); - $syear = date("Y", $tmpdte); - $smonth = date("m", $tmpdte); - $sday = date("d", $tmpdte); - $form->select_date($syear."-".$smonth."-".$sday,'liv_','','','',"addprop"); - } - else - { - $datepropal=empty($conf->global->MAIN_AUTOFILL_DATE)?-1:0; - $form->select_date($datepropal,'liv_','','','',"addprop"); - } - print '
'.$langs->trans("DefaultModel").''; - $liste=ModelePDFPropales::liste_modeles($db); - print $form->selectarray('model',$liste,$conf->global->PROPALE_ADDON_PDF); - print "
'.$langs->trans("Project").''; - - $numprojet=select_projects($soc->id,$projectid); - if ($numprojet==0) - { - print '   '.$langs->trans("AddProject").''; - } - print '
'; - print $extrafields->showInputField($key,$value); - print '
"; - print '
'; - - /* - * Combobox pour la fonction de copie - */ - - if (empty($conf->global->PROPAL_CLONE_ON_CREATE_PAGE)) - { - print ''; - } - - print ''; - if (! empty($conf->global->PROPAL_CLONE_ON_CREATE_PAGE)) - { - // For backward compatibility - print ''; - print ''; - print ''; - print ''; - - if (! empty($conf->global->PRODUCT_SHOW_WHEN_CREATE)) print ''; - - print ''; - print ''; - } - - if (! empty($conf->global->PRODUCT_SHOW_WHEN_CREATE)) - { - print ''; - } - print '
'.$langs->trans("CopyPropalFrom").' '; - $liste_propal = array(); - $liste_propal[0] = ''; - - $sql ="SELECT p.rowid as id, p.ref, s.nom"; - $sql.=" FROM ".MAIN_DB_PREFIX."propal p"; - $sql.= ", ".MAIN_DB_PREFIX."societe s"; - $sql.= " WHERE s.rowid = p.fk_soc"; - $sql.= " AND p.entity = ".$conf->entity; - $sql.= " AND p.fk_statut <> 0"; - $sql.= " ORDER BY Id"; - - $resql = $db->query($sql); - if ($resql) - { - $num = $db->num_rows($resql); - $i = 0; - while ($i < $num) - { - $row = $db->fetch_row($resql); - $propalRefAndSocName = $row[1]." - ".$row[2]; - $liste_propal[$row[0]]=$propalRefAndSocName; - $i++; - } - print $form->selectarray("copie_propal",$liste_propal, 0); - } - else - { - dol_print_error($db); - } - print '
 
'.$langs->trans("CreateEmptyPropal").'
'; - if (! empty($conf->product->enabled) || ! empty($conf->service->enabled)) - { - $lib=$langs->trans("ProductsAndServices"); - - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - for ($i = 1 ; $i <= $conf->global->PRODUCT_SHOW_WHEN_CREATE; $i++) - { - print ''; - print ''; - print ''; - print ''; - } - - print "
'.$lib.''.$langs->trans("Qty").''.$langs->trans("ReductionShort").'
'; - // multiprix - if($conf->global->PRODUIT_MULTIPRICES && $soc->price_level) - $form->select_produits('',"idprod".$i,'',$conf->product->limit_size,$soc->price_level); - else - $form->select_produits('',"idprod".$i,'',$conf->product->limit_size); - print '%
"; - - } - print '
'; - print '
'; - - $langs->load("bills"); - print '
'; - print ''; - print ' '; - print '
'; - - print "
"; -} -else -{ - /* - * Show object in view mode - */ - - $soc = new Societe($db); - $soc->fetch($object->socid); - - $head = propal_prepare_head($object); - dol_fiche_head($head, 'comm', $langs->trans('Proposal'), 0, 'propal'); - - $formconfirm=''; - - // Clone confirmation - if ($action == 'clone') - { - // Create an array for form - $formquestion=array( - //'text' => $langs->trans("ConfirmClone"), - //array('type' => 'checkbox', 'name' => 'clone_content', 'label' => $langs->trans("CloneMainAttributes"), 'value' => 1), - //array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), 'value' => 1), - array('type' => 'other', 'name' => 'socid', 'label' => $langs->trans("SelectThirdParty"), 'value' => $form->select_company(GETPOST('socid','int'),'socid','(s.client=1 OR s.client=2 OR s.client=3)')) - ); - // Paiement incomplet. On demande si motif = escompte ou autre - $formconfirm=$form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id,$langs->trans('ClonePropal'),$langs->trans('ConfirmClonePropal',$object->ref),'confirm_clone',$formquestion,'yes',1); - } - - // Confirm delete - else if ($action == 'delete') - { - $formconfirm=$form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('DeleteProp'), $langs->trans('ConfirmDeleteProp',$object->ref), 'confirm_delete','',0,1); - } - - // Confirm reopen - else if ($action == 'reopen') - { - $formconfirm=$form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ReOpen'), $langs->trans('ConfirmReOpenProp',$object->ref), 'confirm_reopen','',0,1); - } - - // Confirmation delete product/service line - else if ($action == 'ask_deleteline') - { - $formconfirm=$form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id.'&lineid='.$lineid, $langs->trans('DeleteProductLine'), $langs->trans('ConfirmDeleteProductLine'), 'confirm_deleteline','',0,1); - } - - // Confirm validate proposal - else if ($action == 'validate') - { - $error=0; - - // on verifie si l'objet est en numerotation provisoire - $ref = substr($object->ref, 1, 4); - if ($ref == 'PROV') - { - $numref = $object->getNextNumRef($soc); - if (empty($numref)) - { - $error++; - dol_htmloutput_errors($object->error); - } - } - else - { - $numref = $object->ref; - } - - $text=$langs->trans('ConfirmValidateProp',$numref); - if (! empty($conf->notification->enabled)) - { - require_once DOL_DOCUMENT_ROOT .'/core/class/notify.class.php'; - $notify=new Notify($db); - $text.='
'; - $text.=$notify->confirmMessage('NOTIFY_VAL_PROPAL',$object->socid); - } - - if (! $error) $formconfirm=$form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ValidateProp'), $text, 'confirm_validate','',0,1); - } - - if (! $formconfirm) - { - $parameters=array('lineid'=>$lineid); - $formconfirm=$hookmanager->executeHooks('formConfirm',$parameters,$object,$action); // Note that $action and $object may have been modified by hook - } - - // Print form confirm - print $formconfirm; - - - print ''; - - $linkback = ''.$langs->trans("BackToList").''; - - // Ref - print ''; - - // Ref client - print ''; - print ''; - - // Company - print ''; - print ''; - - // Ligne info remises tiers - print ''; - - // Date of proposal - print ''; - print ''; - - // Date end proposal - print ''; - print ''; - print ''; - - // Payment term - print ''; - print ''; - - // Delivery date - $langs->load('deliveries'); - print ''; - print ''; - - // Delivery delay - print ''; - print ''; - - // Origin of demand - print ''; - print ''; - - // Payment mode - print ''; - print ''; - - // Project - if (! empty($conf->projet->enabled)) - { - $langs->load("projects"); - print ''; - } - else - { - print '
'.$langs->trans('Ref').''; - print $form->showrefnav($object, 'ref', $linkback, 1, 'ref', 'ref', ''); - print '
'; - print ''; - if ($action != 'refclient' && ! empty($object->brouillon)) print ''; - print '
'; - print $langs->trans('RefCustomer').''; - print ''.img_edit($langs->trans('Modify')).'
'; - print '
'; - if ($user->rights->propal->creer && $action == 'refclient') - { - print '
'; - print ''; - print ''; - print ''; - print ' '; - print '
'; - } - else - { - print $object->ref_client; - } - print '
'.$langs->trans('Company').''.$soc->getNomUrl(1).'
'.$langs->trans('Discounts').''; - if ($soc->remise_client) print $langs->trans("CompanyHasRelativeDiscount",$soc->remise_client); - else print $langs->trans("CompanyHasNoRelativeDiscount"); - print '. '; - $absolute_discount=$soc->getAvailableDiscounts('','fk_facture_source IS NULL'); - $absolute_creditnote=$soc->getAvailableDiscounts('','fk_facture_source IS NOT NULL'); - $absolute_discount=price2num($absolute_discount,'MT'); - $absolute_creditnote=price2num($absolute_creditnote,'MT'); - if ($absolute_discount) - { - if ($object->statut > 0) - { - print $langs->trans("CompanyHasAbsoluteDiscount",price($absolute_discount),$langs->transnoentities("Currency".$conf->currency)); - } - else - { - // Remise dispo de type non avoir - $filter='fk_facture_source IS NULL'; - print '
'; - $form->form_remise_dispo($_SERVER["PHP_SELF"].'?id='.$object->id,0,'remise_id',$soc->id,$absolute_discount,$filter); - } - } - if ($absolute_creditnote) - { - print $langs->trans("CompanyHasCreditNote",price($absolute_creditnote),$langs->transnoentities("Currency".$conf->currency)).'. '; - } - if (! $absolute_discount && ! $absolute_creditnote) print $langs->trans("CompanyHasNoAbsoluteDiscount").'.'; - print '
'; - print ''; - if ($action != 'editdate' && ! empty($object->brouillon)) print ''; - print '
'; - print $langs->trans('Date'); - print 'id.'">'.img_edit($langs->trans('SetDate'),1).'
'; - print '
'; - if (! empty($object->brouillon) && $action == 'editdate') - { - print '
'; - print ''; - print ''; - $form->select_date($object->date,'re','','',0,"editdate"); - print ''; - print '
'; - } - else - { - if ($object->date) - { - print dol_print_date($object->date,'daytext'); - } - else - { - print ' '; - } - } - print '
'; - print ''; - if ($action != 'editecheance' && ! empty($object->brouillon)) print ''; - print '
'; - print $langs->trans('DateEndPropal'); - print 'id.'">'.img_edit($langs->trans('SetConditions'),1).'
'; - print '
'; - if (! empty($object->brouillon) && $action == 'editecheance') - { - print '
'; - print ''; - print ''; - $form->select_date($object->fin_validite,'ech','','','',"editecheance"); - print ''; - print '
'; - } - else - { - if (! empty($object->fin_validite)) - { - print dol_print_date($object->fin_validite,'daytext'); - if ($object->statut == 1 && $object->fin_validite < ($now - $conf->propal->cloture->warning_delay)) print img_warning($langs->trans("Late")); - } - else - { - print ' '; - } - } - print '
'; - print ''; - if ($action != 'editconditions' && ! empty($object->brouillon)) print ''; - print '
'; - print $langs->trans('PaymentConditionsShort'); - print 'id.'">'.img_edit($langs->transnoentitiesnoconv('SetConditions'),1).'
'; - print '
'; - if ($action == 'editconditions') - { - $form->form_conditions_reglement($_SERVER['PHP_SELF'].'?id='.$object->id,$object->cond_reglement_id,'cond_reglement_id'); - } - else - { - $form->form_conditions_reglement($_SERVER['PHP_SELF'].'?id='.$object->id,$object->cond_reglement_id,'none'); - } - print '
'; - print ''; - if ($action != 'editdate_livraison' && ! empty($object->brouillon)) print ''; - print '
'; - print $langs->trans('DeliveryDate'); - print 'id.'">'.img_edit($langs->transnoentitiesnoconv('SetDeliveryDate'),1).'
'; - print '
'; - if ($action == 'editdate_livraison') - { - print '
'; - print ''; - print ''; - $form->select_date($object->date_livraison,'liv_','','','',"editdate_livraison"); - print ''; - print '
'; - } - else - { - print dol_print_date($object->date_livraison,'daytext'); - } - print '
'; - print ''; - if ($action != 'editavailability' && ! empty($object->brouillon)) print ''; - print '
'; - print $langs->trans('AvailabilityPeriod'); - if (! empty($conf->commande->enabled)) print ' ('.$langs->trans('AfterOrder').')'; - print 'id.'">'.img_edit($langs->transnoentitiesnoconv('SetAvailability'),1).'
'; - print '
'; - if ($action == 'editavailability') - { - $form->form_availability($_SERVER['PHP_SELF'].'?id='.$object->id,$object->availability_id,'availability_id',1); - } - else - { - $form->form_availability($_SERVER['PHP_SELF'].'?id='.$object->id,$object->availability_id,'none',1); - } - - print '
'; - print ''; - if ($action != 'editdemandreason' && ! empty($object->brouillon)) print ''; - print '
'; - print $langs->trans('Source'); - print 'id.'">'.img_edit($langs->transnoentitiesnoconv('SetDemandReason'),1).'
'; - print '
'; - //print $object->demand_reason_id; - if ($action == 'editdemandreason') - { - $form->form_demand_reason($_SERVER['PHP_SELF'].'?id='.$object->id,$object->demand_reason_id,'demand_reason_id',1); - } - else - { - $form->form_demand_reason($_SERVER['PHP_SELF'].'?id='.$object->id,$object->demand_reason_id,'none'); - } - - print '
'; - print ''; - if ($action != 'editmode' && ! empty($object->brouillon)) print ''; - print '
'; - print $langs->trans('PaymentMode'); - print 'id.'">'.img_edit($langs->transnoentitiesnoconv('SetMode'),1).'
'; - print '
'; - if ($action == 'editmode') - { - $form->form_modes_reglement($_SERVER['PHP_SELF'].'?id='.$object->id,$object->mode_reglement_id,'mode_reglement_id'); - } - else - { - $form->form_modes_reglement($_SERVER['PHP_SELF'].'?id='.$object->id,$object->mode_reglement_id,'none'); - } - print '
'; - print ''; - if ($user->rights->propal->creer) - { - if ($action != 'classify') print ''; - print '
'; - print $langs->trans('Project').''.img_edit($langs->transnoentitiesnoconv('SetProject')).'
'; - print '
'; - if ($action == 'classify') - { - $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'projectid'); - } - else - { - $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none'); - } - print '
'; - if (! empty($object->fk_project)) - { - print ''; - $proj = new Project($db); - $proj->fetch($object->fk_project); - print ''; - print $proj->ref; - print ''; - print ''; - } - else { - print ' '; - } - } - print ''; - } - - // Other attributes - $res=$object->fetch_optionals($object->id,$extralabels); - $parameters=array('colspan' => ' colspan="3"'); - $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook - if (empty($reshook) && ! empty($extrafields->attribute_label)) - { - - if ($action == 'edit_extras') - { - print '
'; - print ''; - print ''; - print ''; - } - - - foreach($extrafields->attribute_label as $key=>$label) - { - $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$object->array_options["options_".$key]); - print 'attribute_required[$key])) print ' class="fieldrequired"'; - print '>'.$label.''; - if ($action == 'edit_extras' && $user->rights->propal->creer) - { - print $extrafields->showInputField($key,$value); - } - else - { - print $extrafields->showOutputField($key,$value); - } - - print ''."\n"; - } - - if(count($extrafields->attribute_label) > 0) { - - if ($action == 'edit_extras' && $user->rights->propal->creer) - { - print ''; - print ''; - print ''; - print ''; - - } - else { - if ($object->statut == 0 && $user->rights->propal->creer) - { - print ''.img_picto('','edit').' '.$langs->trans('Modify').''; - } - } - } - } - - // Amount HT - print ''.$langs->trans('AmountHT').''; - print ''.price($object->total_ht).''; - print ''.$langs->trans("Currency".$conf->currency).''; - - // Margin Infos - if (! empty($conf->margin->enabled)) { - print ''; - $object->displayMarginInfos(); - print ''; - } - print ''; - - // Amount VAT - print ''.$langs->trans('AmountVAT').''; - print ''.price($object->total_tva).''; - print ''.$langs->trans("Currency".$conf->currency).''; - - // Amount Local Taxes - if ($mysoc->localtax1_assuj=="1") //Localtax1 - { - print ''.$langs->transcountry("AmountLT1",$mysoc->country_code).''; - print ''.price($object->total_localtax1).''; - print ''.$langs->trans("Currency".$conf->currency).''; - } - if ($mysoc->localtax2_assuj=="1") //Localtax2 - { - print ''.$langs->transcountry("AmountLT2",$mysoc->country_code).''; - print ''.price($object->total_localtax2).''; - print ''.$langs->trans("Currency".$conf->currency).''; - } - - - // Amount TTC - print ''.$langs->trans('AmountTTC').''; - print ''.price($object->total_ttc).''; - print ''.$langs->trans("Currency".$conf->currency).''; - - // Statut - print ''.$langs->trans('Status').''.$object->getLibStatut(4).''; - - print '
'; - - if (! empty($conf->global->MAIN_DISABLE_CONTACTS_TAB)) - { - $blocname = 'contacts'; - $title = $langs->trans('ContactsAddresses'); - include DOL_DOCUMENT_ROOT.'/core/tpl/bloc_showhide.tpl.php'; - } - - if (! empty($conf->global->MAIN_DISABLE_NOTES_TAB)) - { - $blocname = 'notes'; - $title = $langs->trans('Notes'); - include DOL_DOCUMENT_ROOT.'/core/tpl/bloc_showhide.tpl.php'; - } - - /* - * Lines - */ - - if (! empty($conf->use_javascript_ajax) && $object->statut == 0) - { - include DOL_DOCUMENT_ROOT.'/core/tpl/ajaxrow.tpl.php'; - } - - print ''; - - // Show object lines - $result = $object->getLinesArray(); - if (! empty($object->lines)) - $ret=$object->printObjectLines($action,$mysoc,$soc,$lineid); - - // Form to add new line - if ($object->statut == 0 && $user->rights->propal->creer) - { - if ($action != 'editline') - { - $var=true; - - if ($conf->global->MAIN_FEATURES_LEVEL > 1) - { - // Add free or predefined products/services - $object->formAddObjectLine(0,$mysoc,$soc); - } - else - { - // Add free products/services - $object->formAddFreeProduct(0,$mysoc,$soc); - - // Add predefined products/services - if (! empty($conf->product->enabled) || ! empty($conf->service->enabled)) - { - $var=!$var; - $object->formAddPredefinedProduct(0,$mysoc,$soc); - } - } - - $parameters=array(); - $reshook=$hookmanager->executeHooks('formAddObjectLine',$parameters,$object,$action); // Note that $action and $object may have been modified by hook - } - } - - print '
'; - - print ''; - print "\n"; - - if ($action == 'statut') - { - /* - * Formulaire cloture (signe ou non) - */ - $form_close = '
'; - $form_close.= ''; - $form_close.= ''; - $form_close.= ''; - $form_close.= ''; - $form_close.= ''; - $form_close.= '
'.$langs->trans("CloseAs").''; - $form_close.= ''; - $form_close.= ''; - $form_close.= '
'.$langs->trans('Note').'
'; - $form_close.= ''; - $form_close.= '   '; - $form_close.= ' '; - $form_close.= '
'; - - print $form_close; - } - - - /* - * Boutons Actions - */ - if ($action != 'presend') - { - print '
'; - - if ($action != 'statut' && $action <> 'editline') - { - // Validate - if ($object->statut == 0 && $object->total_ttc >= 0 && count($object->lines) > 0 && $user->rights->propal->valider) - { - if (count($object->lines) > 0) print ''.$langs->trans('Validate').''; - //else print ''.$langs->trans('Validate').''; - } - - // Edit - if ($object->statut == 1 && $user->rights->propal->creer) - { - print ''.$langs->trans('Modify').''; - } - - // ReOpen - if (($object->statut == 2 || $object->statut == 3) && $user->rights->propal->cloturer) - { - print 'global->MAIN_JUMP_TAG)?'':'#reopen').'"'; - print '>'.$langs->trans('ReOpen').''; - } - - // Send - if ($object->statut == 1 || $object->statut == 2) - { - if (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->rights->propal->propal_advance->send) - { - print ''.$langs->trans('SendByMail').''; - } - else print ''.$langs->trans('SendByMail').''; - } - - // Create an order - if (! empty($conf->commande->enabled) && $object->statut == 2 && $user->societe_id == 0) - { - if ($user->rights->commande->creer) - { - print ''.$langs->trans("AddOrder").''; - } - } - - // Create an invoice and classify billed - if ($object->statut == 2 && $user->societe_id == 0) - { - if (! empty($conf->facture->enabled) && $user->rights->facture->creer) - { - print ''.$langs->trans("AddBill").''; - } - - $arraypropal=$object->getInvoiceArrayList(); - if (is_array($arraypropal) && count($arraypropal) > 0) - { - print 'socid.'">'.$langs->trans("ClassifyBilled").''; - } - } - - // Close - if ($object->statut == 1 && $user->rights->propal->cloturer) - { - print 'global->MAIN_JUMP_TAG)?'':'#close').'"'; - print '>'.$langs->trans('Close').''; - } - - // Clone - if ($user->rights->propal->creer) - { - print ''.$langs->trans("ToClone").''; - } - - // Delete - if ($user->rights->propal->supprimer) - { - print ''.$langs->trans('Delete').''; - } - - } - - print '
'; - print "
\n"; - } - - if ($action != 'presend') - { - print '
'; - print ''; // ancre - - - /* - * Documents generes - */ - $filename=dol_sanitizeFileName($object->ref); - $filedir=$conf->propal->dir_output . "/" . dol_sanitizeFileName($object->ref); - $urlsource=$_SERVER["PHP_SELF"]."?id=".$object->id; - $genallowed=$user->rights->propal->creer; - $delallowed=$user->rights->propal->supprimer; - - $var=true; - - $somethingshown=$formfile->show_documents('propal',$filename,$filedir,$urlsource,$genallowed,$delallowed,$object->modelpdf,1,0,0,28,0,'',0,'',$soc->default_lang); - - - /* - * Linked object block - */ - $somethingshown=$object->showLinkedObjectBlock(); - - print ''; - - // List of actions on element - include_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php'; - $formactions=new FormActions($db); - $somethingshown=$formactions->showactions($object,'propal',$socid); - - print '
'; - } - - - /* - * Action presend - * - */ - if ($action == 'presend') - { - $ref = dol_sanitizeFileName($object->ref); - include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; - $fileparams = dol_most_recent_file($conf->propal->dir_output . '/' . $ref, preg_quote($object->ref,'/')); - $file=$fileparams['fullname']; - - // Build document if it not exists - if (! $file || ! is_readable($file)) - { - // Define output language - $outputlangs = $langs; - $newlang=''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST['lang_id'])) $newlang=$_REQUEST['lang_id']; - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang=$object->client->default_lang; - if (! empty($newlang)) - { - $outputlangs = new Translate("",$conf); - $outputlangs->setDefaultLang($newlang); - } - - $result=propale_pdf_create($db, $object, GETPOST('model')?GETPOST('model'):$object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref); - if ($result <= 0) - { - dol_print_error($db,$result); - exit; - } - $fileparams = dol_most_recent_file($conf->propal->dir_output . '/' . $ref, preg_quote($object->ref,'/')); - $file=$fileparams['fullname']; - } - - print '
'; - print_titre($langs->trans('SendPropalByMail')); - - // Create form object - include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php'; - $formmail = new FormMail($db); - $formmail->fromtype = 'user'; - $formmail->fromid = $user->id; - $formmail->fromname = $user->getFullName($langs); - $formmail->frommail = $user->email; - $formmail->withfrom=1; + } + + $type = $prod->type; + } + else + { + $pu_ht = price2num($price_ht, 'MU'); + $pu_ttc = price2num(GETPOST('price_ttc'), 'MU'); + $tva_npr = (preg_match('/\*/', $tva_tx)?1:0); + $tva_tx = str_replace('*', '', $tva_tx); + $label = (GETPOST('product_label')?GETPOST('product_label'):''); + $desc = $product_desc; + $type = GETPOST('type'); + } + + // Margin + $fournprice=(GETPOST('fournprice')?GETPOST('fournprice'):''); + $buyingprice=(GETPOST('buying_price')?GETPOST('buying_price'):''); + + // Local Taxes + $localtax1_tx= get_localtax($tva_tx, 1, $object->client); + $localtax2_tx= get_localtax($tva_tx, 2, $object->client); + + $info_bits=0; + if ($tva_npr) $info_bits |= 0x01; + + if (! empty($price_min) && (price2num($pu_ht)*(1-price2num(GETPOST('remise_percent'))/100) < price2num($price_min))) + { + $mesg = $langs->trans("CantBeLessThanMinPrice",price2num($price_min,'MU').$langs->getCurrencySymbol($conf->currency)); + setEventMessage($mesg, 'errors'); + } + else + { + // Insert line + $result=$object->addline( + $id, + $desc, + $pu_ht, + GETPOST('qty'), + $tva_tx, + $localtax1_tx, + $localtax2_tx, + $idprod, + GETPOST('remise_percent'), + $price_base_type, + $pu_ttc, + $info_bits, + $type, + -1, + 0, + GETPOST('fk_parent_line'), + $fournprice, + $buyingprice, + $label + ); + + if ($result > 0) + { + if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) + { + // Define output language + $outputlangs = $langs; + if (! empty($conf->global->MAIN_MULTILANGS)) + { + $outputlangs = new Translate("",$conf); + $newlang=(GETPOST('lang_id') ? GETPOST('lang_id') : $object->client->default_lang); + $outputlangs->setDefaultLang($newlang); + } + $ret=$object->fetch($id); // Reload to get new records + propale_pdf_create($db, $object, $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref); + } + + unset($_POST['qty']); + unset($_POST['type']); + unset($_POST['idprod']); + unset($_POST['remise_percent']); + unset($_POST['price_ht']); + unset($_POST['price_ttc']); + unset($_POST['tva_tx']); + unset($_POST['product_ref']); + unset($_POST['product_label']); + unset($_POST['product_desc']); + unset($_POST['fournprice']); + unset($_POST['buying_price']); + + // old method + unset($_POST['np_desc']); + unset($_POST['dp_desc']); + } + else + { + setEventMessage($object->error, 'errors'); + } + } + } +} + +// Mise a jour d'une ligne dans la propale +else if ($action == 'updateligne' && $user->rights->propal->creer && GETPOST('save') == $langs->trans("Save")) +{ + // Define info_bits + $info_bits=0; + if (preg_match('/\*/', GETPOST('tva_tx'))) $info_bits |= 0x01; + + // Clean parameters + $description=dol_htmlcleanlastbr(GETPOST('product_desc')); + + // Define vat_rate + $vat_rate=(GETPOST('tva_tx')?GETPOST('tva_tx'):0); + $vat_rate=str_replace('*','',$vat_rate); + $localtax1_rate=get_localtax($vat_rate,1,$object->client); + $localtax2_rate=get_localtax($vat_rate,2,$object->client); + $pu_ht=GETPOST('price_ht'); + + // Add buying price + $fournprice=(GETPOST('fournprice')?GETPOST('fournprice'):''); + $buyingprice=(GETPOST('buying_price')?GETPOST('buying_price'):''); + + // Define special_code for special lines + $special_code=0; + if (! GETPOST('qty')) $special_code=3; + + // Check minimum price + $productid = GETPOST('productid', 'int'); + if (! empty($productid)) + { + $product = new Product($db); + $res=$product->fetch($productid); + + $type=$product->type; + + $price_min = $product->price_min; + if (! empty($conf->global->PRODUIT_MULTIPRICES) && ! empty($object->client->price_level)) + $price_min = $product->multiprices_min[$object->client->price_level]; + + $label = ((GETPOST('update_label') && GETPOST('product_label')) ? GETPOST('product_label'):''); + + if ($price_min && (price2num($pu_ht)*(1-price2num(GETPOST('remise_percent'))/100) < price2num($price_min))) + { + setEventMessage($langs->trans("CantBeLessThanMinPrice", price2num($price_min,'MU')).$langs->getCurrencySymbol($conf->currency), 'errors'); + $error++; + } + } + else + { + $type = GETPOST('type'); + $label = (GETPOST('product_label') ? GETPOST('product_label'):''); + + // Check parameters + if (GETPOST('type') < 0) { + setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Type")), 'errors'); + $error++; + } + } + + if (! $error) + { + $result = $object->updateline( + GETPOST('lineid'), + $pu_ht, + GETPOST('qty'), + GETPOST('remise_percent'), + $vat_rate, + $localtax1_rate, + $localtax2_rate, + $description, + 'HT', + $info_bits, + $special_code, + GETPOST('fk_parent_line'), + 0, + $fournprice, + $buyingprice, + $label, + $type + ); + + if ($result >= 0) + { + if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) + { + // Define output language + $outputlangs = $langs; + if (! empty($conf->global->MAIN_MULTILANGS)) + { + $outputlangs = new Translate("",$conf); + $newlang=(GETPOST('lang_id') ? GETPOST('lang_id') : $object->client->default_lang); + $outputlangs->setDefaultLang($newlang); + } + $ret=$object->fetch($id); // Reload to get new records + propale_pdf_create($db, $object, $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref); + } + + unset($_POST['qty']); + unset($_POST['type']); + unset($_POST['productid']); + unset($_POST['remise_percent']); + unset($_POST['price_ht']); + unset($_POST['price_ttc']); + unset($_POST['tva_tx']); + unset($_POST['product_ref']); + unset($_POST['product_label']); + unset($_POST['product_desc']); + unset($_POST['fournprice']); + unset($_POST['buying_price']); + } + else + { + setEventMessage($object->error, 'errors'); + } + } +} + +else if ($action == 'updateligne' && $user->rights->propal->creer && GETPOST('cancel') == $langs->trans('Cancel')) +{ + header('Location: '.$_SERVER['PHP_SELF'].'?id='.$object->id); // Pour reaffichage de la fiche en cours d'edition + exit; +} + +// Generation doc (depuis lien ou depuis cartouche doc) +else if ($action == 'builddoc' && $user->rights->propal->creer) +{ + if (GETPOST('model')) + { + $object->setDocModel($user, GETPOST('model')); + } + + // Define output language + $outputlangs = $langs; + if (! empty($conf->global->MAIN_MULTILANGS)) + { + $outputlangs = new Translate("",$conf); + $newlang=(GETPOST('lang_id') ? GETPOST('lang_id') : $object->client->default_lang); + $outputlangs->setDefaultLang($newlang); + } + $ret=$object->fetch($id); // Reload to get new records + $result=propale_pdf_create($db, $object, $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref); + + if ($result <= 0) + { + dol_print_error($db,$result); + exit; + } + else + { + header('Location: '.$_SERVER["PHP_SELF"].'?id='.$object->id.(empty($conf->global->MAIN_JUMP_TAG)?'':'#builddoc')); + exit; + } +} + +// Remove file in doc form +else if ($action == 'remove_file' && $user->rights->propal->creer) +{ + if ($object->id > 0) + { + require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + + $langs->load("other"); + $upload_dir = $conf->propal->dir_output; + $file = $upload_dir . '/' . GETPOST('file'); + $ret=dol_delete_file($file,0,0,0,$object); + if ($ret) setEventMessage($langs->trans("FileWasRemoved", GETPOST('file'))); + else setEventMessage($langs->trans("ErrorFailToDeleteFile", GETPOST('file')), 'errors'); + } +} + +// Set project +else if ($action == 'classin' && $user->rights->propal->creer) +{ + $object->setProject($_POST['projectid']); +} + +// Delai de livraison +else if ($action == 'setavailability' && $user->rights->propal->creer) +{ + $result = $object->availability($_POST['availability_id']); +} + +// Origine de la propale +else if ($action == 'setdemandreason' && $user->rights->propal->creer) +{ + $result = $object->demand_reason($_POST['demand_reason_id']); +} + +// Conditions de reglement +else if ($action == 'setconditions' && $user->rights->propal->creer) +{ + $result = $object->setPaymentTerms(GETPOST('cond_reglement_id','int')); +} + +else if ($action == 'setremisepercent' && $user->rights->propal->creer) +{ + $result = $object->set_remise_percent($user, $_POST['remise_percent']); +} + +else if ($action == 'setremiseabsolue' && $user->rights->propal->creer) +{ + $result = $object->set_remise_absolue($user, $_POST['remise_absolue']); +} + +// Mode de reglement +else if ($action == 'setmode' && $user->rights->propal->creer) +{ + $result = $object->setPaymentMethods(GETPOST('mode_reglement_id','int')); +} + +/* + * Ordonnancement des lignes + */ + +else if ($action == 'up' && $user->rights->propal->creer) +{ + $object->line_up(GETPOST('rowid')); + + if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) + { + // Define output language + $outputlangs = $langs; + if (! empty($conf->global->MAIN_MULTILANGS)) + { + $outputlangs = new Translate("",$conf); + $newlang=(GETPOST('lang_id') ? GETPOST('lang_id') : $object->client->default_lang); + $outputlangs->setDefaultLang($newlang); + } + $ret=$object->fetch($id); // Reload to get new records + propale_pdf_create($db, $object, $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref); + } + + header('Location: '.$_SERVER["PHP_SELF"].'?id='.$id.'#'.GETPOST('rowid')); + exit; +} + +else if ($action == 'down' && $user->rights->propal->creer) +{ + $object->line_down(GETPOST('rowid')); + + if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) + { + // Define output language + $outputlangs = $langs; + if (! empty($conf->global->MAIN_MULTILANGS)) + { + $outputlangs = new Translate("",$conf); + $newlang=(GETPOST('lang_id') ? GETPOST('lang_id') : $object->client->default_lang); + $outputlangs->setDefaultLang($newlang); + } + $ret=$object->fetch($id); // Reload to get new records + propale_pdf_create($db, $object, $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref); + } + + header('Location: '.$_SERVER["PHP_SELF"].'?id='.$id.'#'.GETPOST('rowid')); + exit; +} +else if ($action == 'update_extras') +{ + // Get extra fields + foreach($_POST as $key => $value) + { + if (preg_match("/^options_/",$key)) + { + $object->array_options[$key]=$_POST[$key]; + } + } + // Actions on extra fields (by external module or standard code) + // FIXME le hook fait double emploi avec le trigger !! + $hookmanager->initHooks(array('propaldao')); + $parameters=array('id'=>$object->id); + $reshook=$hookmanager->executeHooks('insertExtraFields',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks + if (empty($reshook)) + { + if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) // For avoid conflicts if trigger used + { + $result=$object->insertExtraFields(); + if ($result < 0) + { + $error++; + } + } + } + else if ($reshook < 0) $error++; + +} + +if (! empty($conf->global->MAIN_DISABLE_CONTACTS_TAB) && $user->rights->propal->creer) +{ + if ($action == 'addcontact') + { + if ($object->id > 0) + { + $contactid = (GETPOST('userid') ? GETPOST('userid') : GETPOST('contactid')); + $result = $object->add_contact($contactid, $_POST["type"], $_POST["source"]); + } + + if ($result >= 0) + { + header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); + exit; + } + else + { + if ($object->error == 'DB_ERROR_RECORD_ALREADY_EXISTS') + { + $langs->load("errors"); + setEventMessage($langs->trans("ErrorThisContactIsAlreadyDefinedAsThisType"), 'errors'); + } + else + { + setEventMessage($object->error, 'errors'); + } + } + } + + // Bascule du statut d'un contact + else if ($action == 'swapstatut') + { + if ($object->fetch($id) > 0) + { + $result=$object->swapContactStatus(GETPOST('ligne')); + } + else + { + dol_print_error($db); + } + } + + // Efface un contact + else if ($action == 'deletecontact') + { + $object->fetch($id); + $result = $object->delete_contact($lineid); + + if ($result >= 0) + { + header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); + exit; + } + else + { + dol_print_error($db); + } + } +} + + +/* + * View + */ + +llxHeader('',$langs->trans('Proposal'),'EN:Commercial_Proposals|FR:Proposition_commerciale|ES:Presupuestos'); + +$form = new Form($db); +$formother = new FormOther($db); +$formfile = new FormFile($db); +$formpropal = new FormPropal($db); +$companystatic=new Societe($db); + +// fetch optionals attributes and labels +$extralabels=$extrafields->fetch_name_optionals_label('propal'); + +$now=dol_now(); + +// Add new proposal +if ($action == 'create') +{ + print_fiche_titre($langs->trans("NewProp")); + + $soc = new Societe($db); + if ($socid>0) $res=$soc->fetch($socid); + + $object = new Propal($db); + + print '
'; + print ''; + print ''; + + if ($origin != 'project' && $originid) + { + print ''; + print ''; + } + + print ''; + + // Reference + print ''; + + // Ref customer + print ''; + print ''; + + // Third party + print ''; + print ''; + if($socid>0) + { + print ''; + } + else + { + print ''; + } + print ''."\n"; + + // Contacts + if($socid>0) + { + print "'; + + // Ligne info remises tiers + print ''; + } + + // Date + print ''; + + // Validaty duration + print ''; + + // Terms of payment + print ''; + + // Mode of payment + print ''; + + // What trigger creation + print ''; + + // Delivery delay + print ''; + + // Delivery date (or manufacturing) + print ''; + print ''; + + // Model + print ''; + print ''; + print '"; + + // Project + if (! empty($conf->projet->enabled) && $socid>0) + { + $projectid = 0; + if ($origin == 'project') $projectid = ($originid?$originid:0); + + print ''; + print ''; + print ''; + } + + // Other attributes + $parameters=array('colspan' => ' colspan="3"'); + $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook + if (empty($reshook) && ! empty($extrafields->attribute_label)) + { + foreach($extrafields->attribute_label as $key=>$label) + { + $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$object->array_options["options_".$key]); + + // Show separator only + if ($extrafields->attribute_type[$key] == 'separate') + { + print $extrafields->showSeparator($key); + } + else + { + print 'attribute_required[$key])) print ' class="fieldrequired"'; + print '>'.$label.''."\n"; + } + } + } + + print "
'.$langs->trans('Ref').''.$langs->trans("Draft").'
'.$langs->trans('RefCustomer').''; + print '
'.$langs->trans('Customer').''; + print $soc->getNomUrl(1); + print ''; + print ''; + print $form->select_company('','socid','s.client = 1 OR s.client = 2 OR s.client = 3',1); + print '
".$langs->trans("DefaultContact").''; + $form->select_contacts($soc->id,$setcontact,'contactidp',1,$srccontactslist); + print '
'.$langs->trans('Discounts').''; + if ($soc->remise_client) print $langs->trans("CompanyHasRelativeDiscount",$soc->remise_client); + else print $langs->trans("CompanyHasNoRelativeDiscount"); + $absolute_discount=$soc->getAvailableDiscounts(); + print '. '; + if ($absolute_discount) print $langs->trans("CompanyHasAbsoluteDiscount",price($absolute_discount),$langs->trans("Currency".$conf->currency)); + else print $langs->trans("CompanyHasNoAbsoluteDiscount"); + print '.'; + print '
'.$langs->trans('Date').''; + $form->select_date('','','','','',"addprop"); + print '
'.$langs->trans("ValidityDuration").' '.$langs->trans("days").'
'.$langs->trans('PaymentConditionsShort').''; + $form->select_conditions_paiements($soc->cond_reglement,'cond_reglement_id'); + print '
'.$langs->trans('PaymentMode').''; + $form->select_types_paiements($soc->mode_reglement,'mode_reglement_id'); + print '
'.$langs->trans('Source').''; + $form->select_demand_reason('','demand_reason_id',"SRC_PROP",1); + print '
'.$langs->trans('AvailabilityPeriod').''; + $form->select_availability('','availability_id','',1); + print '
'.$langs->trans("DeliveryDate").''; + if ($conf->global->DATE_LIVRAISON_WEEK_DELAY != "") + { + $tmpdte = time() + ((7 * $conf->global->DATE_LIVRAISON_WEEK_DELAY) * 24 * 60 * 60); + $syear = date("Y", $tmpdte); + $smonth = date("m", $tmpdte); + $sday = date("d", $tmpdte); + $form->select_date($syear."-".$smonth."-".$sday,'liv_','','','',"addprop"); + } + else + { + $datepropal=empty($conf->global->MAIN_AUTOFILL_DATE)?-1:0; + $form->select_date($datepropal,'liv_','','','',"addprop"); + } + print '
'.$langs->trans("DefaultModel").''; + $liste=ModelePDFPropales::liste_modeles($db); + print $form->selectarray('model',$liste,$conf->global->PROPALE_ADDON_PDF); + print "
'.$langs->trans("Project").''; + + $numprojet=select_projects($soc->id,$projectid); + if ($numprojet==0) + { + print '   '.$langs->trans("AddProject").''; + } + print '
'; + print $extrafields->showInputField($key,$value); + print '
"; + print '
'; + + /* + * Combobox pour la fonction de copie + */ + + if (empty($conf->global->PROPAL_CLONE_ON_CREATE_PAGE)) + { + print ''; + } + + print ''; + if (! empty($conf->global->PROPAL_CLONE_ON_CREATE_PAGE)) + { + // For backward compatibility + print ''; + print ''; + print ''; + print ''; + + if (! empty($conf->global->PRODUCT_SHOW_WHEN_CREATE)) print ''; + + print ''; + print ''; + } + + if (! empty($conf->global->PRODUCT_SHOW_WHEN_CREATE)) + { + print ''; + } + print '
'.$langs->trans("CopyPropalFrom").' '; + $liste_propal = array(); + $liste_propal[0] = ''; + + $sql ="SELECT p.rowid as id, p.ref, s.nom"; + $sql.=" FROM ".MAIN_DB_PREFIX."propal p"; + $sql.= ", ".MAIN_DB_PREFIX."societe s"; + $sql.= " WHERE s.rowid = p.fk_soc"; + $sql.= " AND p.entity = ".$conf->entity; + $sql.= " AND p.fk_statut <> 0"; + $sql.= " ORDER BY Id"; + + $resql = $db->query($sql); + if ($resql) + { + $num = $db->num_rows($resql); + $i = 0; + while ($i < $num) + { + $row = $db->fetch_row($resql); + $propalRefAndSocName = $row[1]." - ".$row[2]; + $liste_propal[$row[0]]=$propalRefAndSocName; + $i++; + } + print $form->selectarray("copie_propal",$liste_propal, 0); + } + else + { + dol_print_error($db); + } + print '
 
'.$langs->trans("CreateEmptyPropal").'
'; + if (! empty($conf->product->enabled) || ! empty($conf->service->enabled)) + { + $lib=$langs->trans("ProductsAndServices"); + + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + for ($i = 1 ; $i <= $conf->global->PRODUCT_SHOW_WHEN_CREATE; $i++) + { + print ''; + print ''; + print ''; + print ''; + } + + print "
'.$lib.''.$langs->trans("Qty").''.$langs->trans("ReductionShort").'
'; + // multiprix + if($conf->global->PRODUIT_MULTIPRICES && $soc->price_level) + $form->select_produits('',"idprod".$i,'',$conf->product->limit_size,$soc->price_level); + else + $form->select_produits('',"idprod".$i,'',$conf->product->limit_size); + print '%
"; + + } + print '
'; + print '
'; + + $langs->load("bills"); + print '
'; + print ''; + print ' '; + print '
'; + + print "
"; +} +else +{ + /* + * Show object in view mode + */ + + $soc = new Societe($db); + $soc->fetch($object->socid); + + $head = propal_prepare_head($object); + dol_fiche_head($head, 'comm', $langs->trans('Proposal'), 0, 'propal'); + + $formconfirm=''; + + // Clone confirmation + if ($action == 'clone') + { + // Create an array for form + $formquestion=array( + //'text' => $langs->trans("ConfirmClone"), + //array('type' => 'checkbox', 'name' => 'clone_content', 'label' => $langs->trans("CloneMainAttributes"), 'value' => 1), + //array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), 'value' => 1), + array('type' => 'other', 'name' => 'socid', 'label' => $langs->trans("SelectThirdParty"), 'value' => $form->select_company(GETPOST('socid','int'),'socid','(s.client=1 OR s.client=2 OR s.client=3)')) + ); + // Paiement incomplet. On demande si motif = escompte ou autre + $formconfirm=$form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id,$langs->trans('ClonePropal'),$langs->trans('ConfirmClonePropal',$object->ref),'confirm_clone',$formquestion,'yes',1); + } + + // Confirm delete + else if ($action == 'delete') + { + $formconfirm=$form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('DeleteProp'), $langs->trans('ConfirmDeleteProp',$object->ref), 'confirm_delete','',0,1); + } + + // Confirm reopen + else if ($action == 'reopen') + { + $formconfirm=$form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ReOpen'), $langs->trans('ConfirmReOpenProp',$object->ref), 'confirm_reopen','',0,1); + } + + // Confirmation delete product/service line + else if ($action == 'ask_deleteline') + { + $formconfirm=$form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id.'&lineid='.$lineid, $langs->trans('DeleteProductLine'), $langs->trans('ConfirmDeleteProductLine'), 'confirm_deleteline','',0,1); + } + + // Confirm validate proposal + else if ($action == 'validate') + { + $error=0; + + // on verifie si l'objet est en numerotation provisoire + $ref = substr($object->ref, 1, 4); + if ($ref == 'PROV') + { + $numref = $object->getNextNumRef($soc); + if (empty($numref)) + { + $error++; + dol_htmloutput_errors($object->error); + } + } + else + { + $numref = $object->ref; + } + + $text=$langs->trans('ConfirmValidateProp',$numref); + if (! empty($conf->notification->enabled)) + { + require_once DOL_DOCUMENT_ROOT .'/core/class/notify.class.php'; + $notify=new Notify($db); + $text.='
'; + $text.=$notify->confirmMessage('NOTIFY_VAL_PROPAL',$object->socid); + } + + if (! $error) $formconfirm=$form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ValidateProp'), $text, 'confirm_validate','',0,1); + } + + if (! $formconfirm) + { + $parameters=array('lineid'=>$lineid); + $formconfirm=$hookmanager->executeHooks('formConfirm',$parameters,$object,$action); // Note that $action and $object may have been modified by hook + } + + // Print form confirm + print $formconfirm; + + + print ''; + + $linkback = ''.$langs->trans("BackToList").''; + + // Ref + print ''; + + // Ref client + print ''; + print ''; + + // Company + print ''; + print ''; + + // Ligne info remises tiers + print ''; + + // Date of proposal + print ''; + print ''; + + // Date end proposal + print ''; + print ''; + print ''; + + // Payment term + print ''; + print ''; + + // Delivery date + $langs->load('deliveries'); + print ''; + print ''; + + // Delivery delay + print ''; + print ''; + + // Origin of demand + print ''; + print ''; + + // Payment mode + print ''; + print ''; + + // Project + if (! empty($conf->projet->enabled)) + { + $langs->load("projects"); + print ''; + } + else + { + print '
'.$langs->trans('Ref').''; + print $form->showrefnav($object, 'ref', $linkback, 1, 'ref', 'ref', ''); + print '
'; + print ''; + if ($action != 'refclient' && ! empty($object->brouillon)) print ''; + print '
'; + print $langs->trans('RefCustomer').''; + print ''.img_edit($langs->trans('Modify')).'
'; + print '
'; + if ($user->rights->propal->creer && $action == 'refclient') + { + print '
'; + print ''; + print ''; + print ''; + print ' '; + print '
'; + } + else + { + print $object->ref_client; + } + print '
'.$langs->trans('Company').''.$soc->getNomUrl(1).'
'.$langs->trans('Discounts').''; + if ($soc->remise_client) print $langs->trans("CompanyHasRelativeDiscount",$soc->remise_client); + else print $langs->trans("CompanyHasNoRelativeDiscount"); + print '. '; + $absolute_discount=$soc->getAvailableDiscounts('','fk_facture_source IS NULL'); + $absolute_creditnote=$soc->getAvailableDiscounts('','fk_facture_source IS NOT NULL'); + $absolute_discount=price2num($absolute_discount,'MT'); + $absolute_creditnote=price2num($absolute_creditnote,'MT'); + if ($absolute_discount) + { + if ($object->statut > 0) + { + print $langs->trans("CompanyHasAbsoluteDiscount",price($absolute_discount),$langs->transnoentities("Currency".$conf->currency)); + } + else + { + // Remise dispo de type non avoir + $filter='fk_facture_source IS NULL'; + print '
'; + $form->form_remise_dispo($_SERVER["PHP_SELF"].'?id='.$object->id,0,'remise_id',$soc->id,$absolute_discount,$filter); + } + } + if ($absolute_creditnote) + { + print $langs->trans("CompanyHasCreditNote",price($absolute_creditnote),$langs->transnoentities("Currency".$conf->currency)).'. '; + } + if (! $absolute_discount && ! $absolute_creditnote) print $langs->trans("CompanyHasNoAbsoluteDiscount").'.'; + print '
'; + print ''; + if ($action != 'editdate' && ! empty($object->brouillon)) print ''; + print '
'; + print $langs->trans('Date'); + print 'id.'">'.img_edit($langs->trans('SetDate'),1).'
'; + print '
'; + if (! empty($object->brouillon) && $action == 'editdate') + { + print '
'; + print ''; + print ''; + $form->select_date($object->date,'re','','',0,"editdate"); + print ''; + print '
'; + } + else + { + if ($object->date) + { + print dol_print_date($object->date,'daytext'); + } + else + { + print ' '; + } + } + print '
'; + print ''; + if ($action != 'editecheance' && ! empty($object->brouillon)) print ''; + print '
'; + print $langs->trans('DateEndPropal'); + print 'id.'">'.img_edit($langs->trans('SetConditions'),1).'
'; + print '
'; + if (! empty($object->brouillon) && $action == 'editecheance') + { + print '
'; + print ''; + print ''; + $form->select_date($object->fin_validite,'ech','','','',"editecheance"); + print ''; + print '
'; + } + else + { + if (! empty($object->fin_validite)) + { + print dol_print_date($object->fin_validite,'daytext'); + if ($object->statut == 1 && $object->fin_validite < ($now - $conf->propal->cloture->warning_delay)) print img_warning($langs->trans("Late")); + } + else + { + print ' '; + } + } + print '
'; + print ''; + if ($action != 'editconditions' && ! empty($object->brouillon)) print ''; + print '
'; + print $langs->trans('PaymentConditionsShort'); + print 'id.'">'.img_edit($langs->transnoentitiesnoconv('SetConditions'),1).'
'; + print '
'; + if ($action == 'editconditions') + { + $form->form_conditions_reglement($_SERVER['PHP_SELF'].'?id='.$object->id,$object->cond_reglement_id,'cond_reglement_id'); + } + else + { + $form->form_conditions_reglement($_SERVER['PHP_SELF'].'?id='.$object->id,$object->cond_reglement_id,'none'); + } + print '
'; + print ''; + if ($action != 'editdate_livraison' && ! empty($object->brouillon)) print ''; + print '
'; + print $langs->trans('DeliveryDate'); + print 'id.'">'.img_edit($langs->transnoentitiesnoconv('SetDeliveryDate'),1).'
'; + print '
'; + if ($action == 'editdate_livraison') + { + print '
'; + print ''; + print ''; + $form->select_date($object->date_livraison,'liv_','','','',"editdate_livraison"); + print ''; + print '
'; + } + else + { + print dol_print_date($object->date_livraison,'daytext'); + } + print '
'; + print ''; + if ($action != 'editavailability' && ! empty($object->brouillon)) print ''; + print '
'; + print $langs->trans('AvailabilityPeriod'); + if (! empty($conf->commande->enabled)) print ' ('.$langs->trans('AfterOrder').')'; + print 'id.'">'.img_edit($langs->transnoentitiesnoconv('SetAvailability'),1).'
'; + print '
'; + if ($action == 'editavailability') + { + $form->form_availability($_SERVER['PHP_SELF'].'?id='.$object->id,$object->availability_id,'availability_id',1); + } + else + { + $form->form_availability($_SERVER['PHP_SELF'].'?id='.$object->id,$object->availability_id,'none',1); + } + + print '
'; + print ''; + if ($action != 'editdemandreason' && ! empty($object->brouillon)) print ''; + print '
'; + print $langs->trans('Source'); + print 'id.'">'.img_edit($langs->transnoentitiesnoconv('SetDemandReason'),1).'
'; + print '
'; + //print $object->demand_reason_id; + if ($action == 'editdemandreason') + { + $form->form_demand_reason($_SERVER['PHP_SELF'].'?id='.$object->id,$object->demand_reason_id,'demand_reason_id',1); + } + else + { + $form->form_demand_reason($_SERVER['PHP_SELF'].'?id='.$object->id,$object->demand_reason_id,'none'); + } + + print '
'; + print ''; + if ($action != 'editmode' && ! empty($object->brouillon)) print ''; + print '
'; + print $langs->trans('PaymentMode'); + print 'id.'">'.img_edit($langs->transnoentitiesnoconv('SetMode'),1).'
'; + print '
'; + if ($action == 'editmode') + { + $form->form_modes_reglement($_SERVER['PHP_SELF'].'?id='.$object->id,$object->mode_reglement_id,'mode_reglement_id'); + } + else + { + $form->form_modes_reglement($_SERVER['PHP_SELF'].'?id='.$object->id,$object->mode_reglement_id,'none'); + } + print '
'; + print ''; + if ($user->rights->propal->creer) + { + if ($action != 'classify') print ''; + print '
'; + print $langs->trans('Project').''.img_edit($langs->transnoentitiesnoconv('SetProject')).'
'; + print '
'; + if ($action == 'classify') + { + $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'projectid'); + } + else + { + $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none'); + } + print '
'; + if (! empty($object->fk_project)) + { + print ''; + $proj = new Project($db); + $proj->fetch($object->fk_project); + print ''; + print $proj->ref; + print ''; + print ''; + } + else { + print ' '; + } + } + print ''; + } + + // Other attributes + $res=$object->fetch_optionals($object->id,$extralabels); + $parameters=array('colspan' => ' colspan="3"'); + $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook + if (empty($reshook) && ! empty($extrafields->attribute_label)) + { + + if ($action == 'edit_extras') + { + print '
'; + print ''; + print ''; + print ''; + } + + + foreach($extrafields->attribute_label as $key=>$label) + { + $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$object->array_options["options_".$key]); + if ($extrafields->attribute_type[$key] == 'separate') + { + print $extrafields->showSeparator($key); + } + else + { + print 'attribute_required[$key])) print ' class="fieldrequired"'; + print '>'.$label.''; + if ($action == 'edit_extras' && $user->rights->propal->creer) + { + print $extrafields->showInputField($key,$value); + } + else + { + print $extrafields->showOutputField($key,$value); + } + print ''."\n"; + } + } + + if(count($extrafields->attribute_label) > 0) { + + if ($action == 'edit_extras' && $user->rights->propal->creer) + { + print ''; + print ''; + print ''; + print ''; + + } + else { + if ($object->statut == 0 && $user->rights->propal->creer) + { + print ''.img_picto('','edit').' '.$langs->trans('Modify').''; + } + } + } + } + + // Amount HT + print ''.$langs->trans('AmountHT').''; + print ''.price($object->total_ht).''; + print ''.$langs->trans("Currency".$conf->currency).''; + + // Margin Infos + if (! empty($conf->margin->enabled)) { + print ''; + $object->displayMarginInfos(); + print ''; + } + print ''; + + // Amount VAT + print ''.$langs->trans('AmountVAT').''; + print ''.price($object->total_tva).''; + print ''.$langs->trans("Currency".$conf->currency).''; + + // Amount Local Taxes + if ($mysoc->localtax1_assuj=="1") //Localtax1 + { + print ''.$langs->transcountry("AmountLT1",$mysoc->country_code).''; + print ''.price($object->total_localtax1).''; + print ''.$langs->trans("Currency".$conf->currency).''; + } + if ($mysoc->localtax2_assuj=="1") //Localtax2 + { + print ''.$langs->transcountry("AmountLT2",$mysoc->country_code).''; + print ''.price($object->total_localtax2).''; + print ''.$langs->trans("Currency".$conf->currency).''; + } + + + // Amount TTC + print ''.$langs->trans('AmountTTC').''; + print ''.price($object->total_ttc).''; + print ''.$langs->trans("Currency".$conf->currency).''; + + // Statut + print ''.$langs->trans('Status').''.$object->getLibStatut(4).''; + + print '
'; + + if (! empty($conf->global->MAIN_DISABLE_CONTACTS_TAB)) + { + $blocname = 'contacts'; + $title = $langs->trans('ContactsAddresses'); + include DOL_DOCUMENT_ROOT.'/core/tpl/bloc_showhide.tpl.php'; + } + + if (! empty($conf->global->MAIN_DISABLE_NOTES_TAB)) + { + $blocname = 'notes'; + $title = $langs->trans('Notes'); + include DOL_DOCUMENT_ROOT.'/core/tpl/bloc_showhide.tpl.php'; + } + + /* + * Lines + */ + + if (! empty($conf->use_javascript_ajax) && $object->statut == 0) + { + include DOL_DOCUMENT_ROOT.'/core/tpl/ajaxrow.tpl.php'; + } + + print ''; + + // Show object lines + $result = $object->getLinesArray(); + if (! empty($object->lines)) + $ret=$object->printObjectLines($action,$mysoc,$soc,$lineid); + + // Form to add new line + if ($object->statut == 0 && $user->rights->propal->creer) + { + if ($action != 'editline') + { + $var=true; + + if ($conf->global->MAIN_FEATURES_LEVEL > 1) + { + // Add free or predefined products/services + $object->formAddObjectLine(0,$mysoc,$soc); + } + else + { + // Add free products/services + $object->formAddFreeProduct(0,$mysoc,$soc); + + // Add predefined products/services + if (! empty($conf->product->enabled) || ! empty($conf->service->enabled)) + { + $var=!$var; + $object->formAddPredefinedProduct(0,$mysoc,$soc); + } + } + + $parameters=array(); + $reshook=$hookmanager->executeHooks('formAddObjectLine',$parameters,$object,$action); // Note that $action and $object may have been modified by hook + } + } + + print '
'; + + print ''; + print "\n"; + + if ($action == 'statut') + { + /* + * Formulaire cloture (signe ou non) + */ + $form_close = '
'; + $form_close.= ''; + $form_close.= ''; + $form_close.= ''; + $form_close.= ''; + $form_close.= ''; + $form_close.= '
'.$langs->trans("CloseAs").''; + $form_close.= ''; + $form_close.= ''; + $form_close.= '
'.$langs->trans('Note').'
'; + $form_close.= ''; + $form_close.= '   '; + $form_close.= ' '; + $form_close.= '
'; + + print $form_close; + } + + + /* + * Boutons Actions + */ + if ($action != 'presend') + { + print '
'; + + if ($action != 'statut' && $action <> 'editline') + { + // Validate + if ($object->statut == 0 && $object->total_ttc >= 0 && count($object->lines) > 0 && $user->rights->propal->valider) + { + if (count($object->lines) > 0) print ''.$langs->trans('Validate').''; + //else print ''.$langs->trans('Validate').''; + } + + // Edit + if ($object->statut == 1 && $user->rights->propal->creer) + { + print ''.$langs->trans('Modify').''; + } + + // ReOpen + if (($object->statut == 2 || $object->statut == 3) && $user->rights->propal->cloturer) + { + print 'global->MAIN_JUMP_TAG)?'':'#reopen').'"'; + print '>'.$langs->trans('ReOpen').''; + } + + // Send + if ($object->statut == 1 || $object->statut == 2) + { + if (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->rights->propal->propal_advance->send) + { + print ''.$langs->trans('SendByMail').''; + } + else print ''.$langs->trans('SendByMail').''; + } + + // Create an order + if (! empty($conf->commande->enabled) && $object->statut == 2 && $user->societe_id == 0) + { + if ($user->rights->commande->creer) + { + print ''.$langs->trans("AddOrder").''; + } + } + + // Create contract + if ($conf->contrat->enabled && $object->statut == 2 && $user->societe_id == 0) + { + $langs->load("contracts"); + + if ($user->rights->contrat->creer) + { + print ''.$langs->trans('AddContract').''; + } + } + + // Create an invoice and classify billed + if ($object->statut == 2 && $user->societe_id == 0) + { + if (! empty($conf->facture->enabled) && $user->rights->facture->creer) + { + print ''.$langs->trans("AddBill").''; + } + + $arraypropal=$object->getInvoiceArrayList(); + if (is_array($arraypropal) && count($arraypropal) > 0) + { + print 'socid.'">'.$langs->trans("ClassifyBilled").''; + } + } + + // Close + if ($object->statut == 1 && $user->rights->propal->cloturer) + { + print 'global->MAIN_JUMP_TAG)?'':'#close').'"'; + print '>'.$langs->trans('Close').''; + } + + // Clone + if ($user->rights->propal->creer) + { + print ''.$langs->trans("ToClone").''; + } + + // Delete + if ($user->rights->propal->supprimer) + { + print ''.$langs->trans('Delete').''; + } + + } + + print '
'; + print "
\n"; + } + + if ($action != 'presend') + { + print '
'; + print ''; // ancre + + + /* + * Documents generes + */ + $filename=dol_sanitizeFileName($object->ref); + $filedir=$conf->propal->dir_output . "/" . dol_sanitizeFileName($object->ref); + $urlsource=$_SERVER["PHP_SELF"]."?id=".$object->id; + $genallowed=$user->rights->propal->creer; + $delallowed=$user->rights->propal->supprimer; + + $var=true; + + $somethingshown=$formfile->show_documents('propal',$filename,$filedir,$urlsource,$genallowed,$delallowed,$object->modelpdf,1,0,0,28,0,'',0,'',$soc->default_lang); + + + /* + * Linked object block + */ + $somethingshown=$object->showLinkedObjectBlock(); + + print ''; + + // List of actions on element + include_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php'; + $formactions=new FormActions($db); + $somethingshown=$formactions->showactions($object,'propal',$socid); + + print '
'; + } + + + /* + * Action presend + * + */ + if ($action == 'presend') + { + $ref = dol_sanitizeFileName($object->ref); + include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + $fileparams = dol_most_recent_file($conf->propal->dir_output . '/' . $ref, preg_quote($object->ref,'/')); + $file=$fileparams['fullname']; + + // Build document if it not exists + if (! $file || ! is_readable($file)) + { + // Define output language + $outputlangs = $langs; + $newlang=''; + if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST['lang_id'])) $newlang=$_REQUEST['lang_id']; + if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang=$object->client->default_lang; + if (! empty($newlang)) + { + $outputlangs = new Translate("",$conf); + $outputlangs->setDefaultLang($newlang); + } + + $result=propale_pdf_create($db, $object, GETPOST('model')?GETPOST('model'):$object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref); + if ($result <= 0) + { + dol_print_error($db,$result); + exit; + } + $fileparams = dol_most_recent_file($conf->propal->dir_output . '/' . $ref, preg_quote($object->ref,'/')); + $file=$fileparams['fullname']; + } + + print '
'; + print_titre($langs->trans('SendPropalByMail')); + + // Create form object + include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php'; + $formmail = new FormMail($db); + $formmail->fromtype = 'user'; + $formmail->fromid = $user->id; + $formmail->fromname = $user->getFullName($langs); + $formmail->frommail = $user->email; + $formmail->withfrom=1; $liste=array(); foreach ($object->thirdparty->thirdparty_and_contact_email_array(1) as $key=>$value) $liste[$key]=$value; - $formmail->withto=GETPOST("sendto")?GETPOST("sendto"):$liste; - $formmail->withtocc=$liste; - $formmail->withtoccc=(! empty($conf->global->MAIN_EMAIL_USECCC)?$conf->global->MAIN_EMAIL_USECCC:false); - $formmail->withtopic=$langs->trans('SendPropalRef','__PROPREF__'); - $formmail->withfile=2; - $formmail->withbody=1; - $formmail->withdeliveryreceipt=1; - $formmail->withcancel=1; - - // Tableau des substitutions - $formmail->substit['__PROPREF__']=$object->ref; - $formmail->substit['__SIGNATURE__']=$user->signature; - $formmail->substit['__PERSONALIZED__']=''; - // Tableau des parametres complementaires - $formmail->param['action']='send'; - $formmail->param['models']='propal_send'; - $formmail->param['id']=$object->id; - $formmail->param['returnurl']=$_SERVER["PHP_SELF"].'?id='.$object->id; - - // Init list of files - if (GETPOST("mode")=='init') - { - $formmail->clear_attached_files(); - $formmail->add_attached_files($file,basename($file),dol_mimetype($file)); - } - - $formmail->show_form(); - - print '
'; - } -} - -// End of page -llxFooter(); -$db->close(); -?> + $formmail->withto=GETPOST("sendto")?GETPOST("sendto"):$liste; + $formmail->withtocc=$liste; + $formmail->withtoccc=(! empty($conf->global->MAIN_EMAIL_USECCC)?$conf->global->MAIN_EMAIL_USECCC:false); + $formmail->withtopic=$langs->trans('SendPropalRef','__PROPREF__'); + $formmail->withfile=2; + $formmail->withbody=1; + $formmail->withdeliveryreceipt=1; + $formmail->withcancel=1; + + // Tableau des substitutions + $formmail->substit['__PROPREF__']=$object->ref; + $formmail->substit['__SIGNATURE__']=$user->signature; + $formmail->substit['__PERSONALIZED__']=''; + $formmail->substit['__CONTACTCIVNAME__']=''; + + //Find the good contact adress + $custcontact=''; + $contactarr=array(); + $contactarr=$object->liste_contact(-1,'external'); + + if (is_array($contactarr) && count($contactarr)>0) { + foreach($contactarr as $contact) { + if ($contact['libelle']==$langs->trans('TypeContact_propal_external_CUSTOMER')) { + $contactstatic=new Contact($db); + $contactstatic->fetch($contact['id']); + $custcontact=$contactstatic->getFullName($langs,1); + } + } + + if (!empty($custcontact)) { + $formmail->substit['__CONTACTCIVNAME__']=$custcontact; + } + } + + // Tableau des parametres complementaires + $formmail->param['action']='send'; + $formmail->param['models']='propal_send'; + $formmail->param['id']=$object->id; + $formmail->param['returnurl']=$_SERVER["PHP_SELF"].'?id='.$object->id; + + + // Init list of files + if (GETPOST("mode")=='init') + { + $formmail->clear_attached_files(); + $formmail->add_attached_files($file,basename($file),dol_mimetype($file)); + } + + $formmail->show_form(); + + print '
'; + } +} + +// End of page +llxFooter(); +$db->close(); +?> diff --git a/htdocs/comm/propal/class/propal.class.php b/htdocs/comm/propal/class/propal.class.php index 66f6bb3874d..4545d4cd0ac 100644 --- a/htdocs/comm/propal/class/propal.class.php +++ b/htdocs/comm/propal/class/propal.class.php @@ -456,7 +456,7 @@ class Propal extends CommonObject * @param double $txlocaltax2 Local tax 2 rate * @param string $desc Description * @param double $price_base_type HT ou TTC - * @param int $info_bits Miscellanous informations + * @param int $info_bits Miscellaneous informations * @param int $special_code Special code (also used by externals modules!) * @param int $fk_parent_line Id of parent line (0 in most cases, used by modules adding sublevels into lines). * @param int $skip_update_total Keep fields total_xxx to 0 (used for special lines by some modules) diff --git a/htdocs/comm/propal/index.php b/htdocs/comm/propal/index.php index 41bc6bf5f0b..4ac166b54a2 100644 --- a/htdocs/comm/propal/index.php +++ b/htdocs/comm/propal/index.php @@ -54,9 +54,10 @@ llxHeader("",$langs->trans("ProspectionArea"),$help_url); print_fiche_titre($langs->trans("ProspectionArea")); -print ''; +//print '
'; +//print '
'; +print '
'; -print '
'; /* * Search form @@ -199,7 +200,9 @@ if (! empty($conf->propal->enabled)) } } -print ''; + +//print ''; +print '
'; $max=5; @@ -509,10 +512,11 @@ if (! empty($conf->propal->enabled)) } */ -print '
'; +//print ''; +print '
'; -$db->close(); llxFooter(); +$db->close(); ?> diff --git a/htdocs/comm/prospect/index.php b/htdocs/comm/prospect/index.php index 6d9ad5c3f62..bf53b674bc5 100644 --- a/htdocs/comm/prospect/index.php +++ b/htdocs/comm/prospect/index.php @@ -46,9 +46,10 @@ llxHeader(); print_fiche_titre($langs->trans("ProspectionArea")); -print ''; +//print '
'; +//print ''; -print '
'; +print '
'; -print '
'; if (! empty($conf->propal->enabled)) { @@ -158,17 +159,18 @@ if (! empty($conf->propal->enabled) && $user->rights->propale->lire) } } + +//print ''; +print '
'; + + /* * Actions commerciales a faire - * */ -print '
'; - if (! empty($conf->agenda->enabled)) show_array_actions_to_do(10); /* * Dernieres propales ouvertes - * */ if (! empty($conf->propal->enabled) && $user->rights->propale->lire) { @@ -276,11 +278,10 @@ if ($resql) } -print '
'; +//print ''; +print '
'; llxFooter(); $db->close(); - ?> \ No newline at end of file diff --git a/htdocs/commande/class/commande.class.php b/htdocs/commande/class/commande.class.php index 15a42841002..493f34c3962 100644 --- a/htdocs/commande/class/commande.class.php +++ b/htdocs/commande/class/commande.class.php @@ -912,6 +912,12 @@ class Commande extends CommonOrder $line->special_code = $object->lines[$i]->special_code; $line->fk_parent_line = $object->lines[$i]->fk_parent_line; + $line->fk_fournprice = $object->lines[$i]->fk_fournprice; + $marginInfos = getMarginInfos($object->lines[$i]->subprice, $object->lines[$i]->remise_percent, $object->lines[$i]->tva_tx, $object->lines[$i]->localtax1_tx, $object->lines[$i]->localtax2_tx, $object->lines[$i]->fk_fournprice, $object->lines[$i]->pa_ht); + $line->pa_ht = $marginInfos[0]; + $line->marge_tx = $marginInfos[1]; + $line->marque_tx = $marginInfos[2]; + $this->lines[$i] = $line; } diff --git a/htdocs/commande/fiche.php b/htdocs/commande/fiche.php index 38ea4c57355..c79f1f2f507 100644 --- a/htdocs/commande/fiche.php +++ b/htdocs/commande/fiche.php @@ -1214,7 +1214,7 @@ if ($action == 'send' && ! GETPOST('addfile') && ! GETPOST('removedfile') && ! G // Send mail require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; - $mailfile = new CMailFile($subject,$sendto,$from,$message,$filepath,$mimetype,$filename,$sendtocc,'',$deliveryreceipt); + $mailfile = new CMailFile($subject,$sendto,$from,$message,$filepath,$mimetype,$filename,$sendtocc,'',$deliveryreceipt,-1); if ($mailfile->error) { $mesg='
'.$mailfile->error.'
'; @@ -1489,7 +1489,7 @@ if ($action == 'send' && ! GETPOST('addfile') && ! GETPOST('removedfile') && ! G else { print ''; - print $form->select_company('','socid','s.client = 1',1); + print $form->select_company('','socid','s.client = 1 OR s.client = 3',1); print ''; } print ''."\n"; @@ -2444,6 +2444,26 @@ if ($action == 'send' && ! GETPOST('addfile') && ! GETPOST('removedfile') && ! G $formmail->substit['__ORDERREF__']=$object->ref; $formmail->substit['__SIGNATURE__']=$user->signature; $formmail->substit['__PERSONALIZED__']=''; + $formmail->substit['__CONTACTCIVNAME__']=''; + + $custcontact=''; + $contactarr=array(); + $contactarr=$object->liste_contact(-1,'external'); + + if (is_array($contactarr) && count($contactarr)>0) { + foreach($contactarr as $contact) { + if ($contact['libelle']==$langs->trans('TypeContact_commande_external_CUSTOMER')) { + $contactstatic=new Contact($db); + $contactstatic->fetch($contact['id']); + $custcontact=$contactstatic->getFullName($langs,1); + } + } + + if (!empty($custcontact)) { + $formmail->substit['__CONTACTCIVNAME__']=$custcontact; + } + } + // Tableau des parametres complementaires $formmail->param['action']='send'; $formmail->param['models']='order_send'; diff --git a/htdocs/commande/index.php b/htdocs/commande/index.php index c382599bb4c..3301721df7a 100644 --- a/htdocs/commande/index.php +++ b/htdocs/commande/index.php @@ -55,9 +55,10 @@ llxHeader("",$langs->trans("Orders"),$help_url); print_fiche_titre($langs->trans("OrdersArea")); -print ''; +//print '
'; +//print '
'; +print '
'; -print '
'; /* * Search form @@ -204,7 +205,9 @@ if (! empty($conf->commande->enabled)) } } -print ''; + +//print ''; +print '
'; $max=5; @@ -421,10 +424,11 @@ if (! empty($conf->commande->enabled)) } -print '
'; +//print ''; +print '
'; -$db->close(); llxFooter(); +$db->close(); ?> diff --git a/htdocs/commande/liste.php b/htdocs/commande/liste.php index c61f660b732..b628dc2d5db 100644 --- a/htdocs/commande/liste.php +++ b/htdocs/commande/liste.php @@ -130,7 +130,8 @@ if ($viewstatut <> '') { if ($viewstatut < 4 && $viewstatut > -3) { - $sql.= ' AND c.fk_statut ='.$viewstatut; // brouillon, validee, en cours, annulee + if ($viewstatut == 1 && empty($conf->expedition->enabled)) $sql.= ' AND c.fk_statut IN (1,2)'; // If module expedition disabled, we include order with status 'sending in process' into 'validated' + else $sql.= ' AND c.fk_statut = '.$viewstatut; // brouillon, validee, en cours, annulee if ($viewstatut == 3) { $sql.= ' AND c.facture = 0'; // need to create invoice @@ -223,7 +224,7 @@ if ($resql) if ($viewstatut == -2) $title.=' - '.$langs->trans('StatusOrderToProcessShort'); if ($viewstatut == -3) - $title.=' - '.$langs->trans('StatusOrderValidated').', '.$langs->trans("StatusOrderSent").', '.$langs->trans('StatusOrderToBill'); + $title.=' - '.$langs->trans('StatusOrderValidated').', '.(empty($conf->expedition->enabled)?'':$langs->trans("StatusOrderSent").', ').$langs->trans('StatusOrderToBill'); $param='&socid='.$socid.'&viewstatut='.$viewstatut; if ($ordermonth) $param.='&ordermonth='.$ordermonth; diff --git a/htdocs/commissions/admin/commissions.php b/htdocs/commissions/admin/commissions.php deleted file mode 100644 index 015cab308ff..00000000000 --- a/htdocs/commissions/admin/commissions.php +++ /dev/null @@ -1,192 +0,0 @@ - - * - * 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/admin/commissions.php - * \ingroup commissions - * \brief Page to setup advanced commissions module - */ - -include '../../main.inc.php'; -require_once DOL_DOCUMENT_ROOT.'/commissions/lib/commissions.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; -require_once(DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'); -require_once(DOL_DOCUMENT_ROOT."/compta/facture/class/facture.class.php"); - -$langs->load("admin"); -$langs->load("bills"); -$langs->load("commissions"); - -if (! $user->admin) accessforbidden(); - - -/* - * Action - */ -if (GETPOST('commissionBase')) -{ - if (dolibarr_set_const($db, 'COMMISSION_BASE', GETPOST('commissionBase'), 'string', 0, '', $conf->entity) > 0) - { - $conf->global->COMMISSION_BASE = GETPOST('commissionBase'); - setEventMessage($langs->trans("RecordModifiedSuccessfully")); - } - else - { - dol_print_error($db); - } -} - -if (GETPOST('productCommissionRate')) -{ - if (dolibarr_set_const($db, 'PRODUCT_COMMISSION_RATE', GETPOST('productCommissionRate'), 'rate', 0, '', $conf->entity) > 0) - { - } - else - { - dol_print_error($db); - } -} - -if (GETPOST('serviceCommissionRate')) -{ - if (dolibarr_set_const($db, 'SERVICE_COMMISSION_RATE', GETPOST('serviceCommissionRate'), 'rate', 0, '', $conf->entity) > 0) - { - } - else - { - dol_print_error($db); - } -} - -if (GETPOST('AGENT_CONTACT_TYPE')) -{ - if (dolibarr_set_const($db, 'AGENT_CONTACT_TYPE', GETPOST('AGENT_CONTACT_TYPE'), 'chaine', 0, '', $conf->entity) > 0) - { - $conf->global->AGENT_CONTACT_TYPE = GETPOST('AGENT_CONTACT_TYPE'); - } - else - { - dol_print_error($db); - } -} - -/* - * View - */ - -llxHeader('',$langs->trans("CommissionsSetup")); - - -$linkback=''.$langs->trans("BackToModuleList").''; -print_fiche_titre($langs->trans("commissionsSetup"),$linkback,'setup'); - - -$head = commissions_admin_prepare_head(); - -dol_fiche_head($head, 'parameters', $langs->trans("Commissions"), 0, 'commissions'); - -print "
"; - - -print_fiche_titre($langs->trans("MemberMainOptions"),'',''); -print ''; -print ''; -print ''; -print ''."\n"; -print ''."\n"; -print ''; - -$var=true; -$form = new Form($db); - -print ''; - -// COMMISSION BASE (TURNOVER / MARGIN) -$var=!$var; -print ''; -print ''; -print ''; -print ''; -print ''; - -// PRODUCT COMMISSION RATE -$var=!$var; -print ''; -print ''; -print ''; -print ''; -print ''; - -// SERVICE COMMISSION RATE -$var=!$var; -print ''; -print ''; -print ''; -print ''; -print ''; - -// INTERNAL CONTACT TYPE USED AS COMMERCIAL AGENT -$var=!$var; -print ''; -print ''; -print ''; -print ''; -print ''; - -$var=!$var; -print ''; -print ''; -print ''; - -print '
'.$langs->trans("Description").''.$langs->trans("Value").''.$langs->trans("Details").'
'.$langs->trans("CommissionBase").''; -print 'global->COMMISSION_BASE) && $conf->global->COMMISSION_BASE == "TURNOVER") - print 'checked'; -print ' />'; -print $langs->trans("CommissionBasedOnTurnover"); -print '
'; -print 'margin->enabled)) - print 'disabled'; -elseif (isset($conf->global->COMMISSION_BASE) && $conf->global->COMMISSION_BASE == "MARGIN") - print 'checked'; -print ' />'; -print $langs->trans("CommissionBasedOnMargins"); -print '
'.$langs->trans('CommissionBaseDetails'); -print '
'; -print $langs->trans('CommissionBasedOnMarginsDetails'); -print '
'.$langs->trans("ProductCommissionRate").''; -print '  %'; -print ''.$langs->trans('ProductCommissionRateDetails').'
'.$langs->trans("ServiceCommissionRate").''; -print '  %'; -print ''.$langs->trans('ServiceCommissionRateDetails').'
'.$langs->trans("AgentContactType").''; -$formcompany = new FormCompany($db); -$facture = new Facture($db); -print $formcompany->selectTypeContact($facture, $conf->global->AGENT_CONTACT_TYPE, "AGENT_CONTACT_TYPE","internal","code",1); -print ''.$langs->trans('AgentContactTypeDetails').'
'; -print ''; -print '
'; - -print ''; - -dol_fiche_end(); - -print '
'; - -llxFooter(); -$db->close(); -?> diff --git a/htdocs/commissions/index.php b/htdocs/commissions/index.php deleted file mode 100644 index cdc6329d858..00000000000 --- a/htdocs/commissions/index.php +++ /dev/null @@ -1,329 +0,0 @@ - - * - * 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/commissions/index.php - * \ingroup commissions - * \brief Page des commissions par agent commercial - */ - -require '../main.inc.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; -require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; -if (! empty($conf->margin->enabled)) - require_once DOL_DOCUMENT_ROOT.'/margin/lib/margins.lib.php'; - -$langs->load("companies"); -$langs->load("bills"); -$langs->load("products"); -$langs->load("commissions"); -if (! empty($conf->margin->enabled)) - $langs->load("margins"); - -// Security check -$agentid = GETPOST('agentid','int'); - -$mesg = ''; - -$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; - -$startdate=$enddate=''; - -if (!empty($_POST['startdatemonth'])) - $startdate = date('Y-m-d', dol_mktime(12, 0, 0, $_POST['startdatemonth'], $_POST['startdateday'], $_POST['startdateyear'])); -if (!empty($_POST['enddatemonth'])) - $enddate = date('Y-m-d', dol_mktime(12, 0, 0, $_POST['enddatemonth'], $_POST['enddateday'], $_POST['enddateyear'])); - -/* - * View - */ - -$userstatic = new User($db); -$companystatic = new Societe($db); -$invoicestatic=new Facture($db); - -$form = new Form($db); - -llxHeader('',$langs->trans("Commissions")); - -$text=$langs->trans("Commissions"); -print_fiche_titre($text); - -print '
'; -print ''; - -if ($agentid > 0) { - - print ''; - print ''; - - if (! $sortorder) $sortorder="ASC"; - if (! $sortfield) $sortfield="s.nom"; -} -else { - print ''; - print ''; - if (! $sortorder) $sortorder="ASC"; - if (! $sortfield) $sortfield="u.login"; -} - -// Start date -print ''; -print ''; -print ''; -print ''; -print ''; - -// Include unpayed invoices -print ''; - - -// Total Margin -if ($conf->global->COMMISSION_BASE == "MARGIN") { - print ''; -} -elseif ($conf->global->COMMISSION_BASE == "TURNOVER") { - print ''; -} - -// Total Commission -print ''; - -print "
'.$langs->trans('CommercialAgent').''; - print $form->select_dolusers($agentid,'agentid',1,'',0,'',''); - print '
'.$langs->trans('CommercialAgent').''; - print $form->select_dolusers('','agentid',1,'',0,'',''); - print '
'.$langs->trans('StartDate').''; -$form->select_date($startdate,'startdate','','',1,"sel",1,1); -print ''.$langs->trans('EndDate').''; -$form->select_date($enddate,'enddate','','',1,"sel",1,1); -print ''; -print ''; -print '
'.$langs->trans("IncludeUnpayedInvoices").''; -print ''; -print '
'.$langs->trans("TotalMargin").''; - print ''; // set by jquery (see below) - print '
'.$langs->trans("TurnoverTotal").''; - print ''; // set by jquery (see below) - print '
'.$langs->trans("TotalCommission").''; -print ''; // set by jquery (see below) -print '
"; -print '
'; - -$sql = "SELECT s.nom, s.rowid as socid, s.code_client, s.client, sc.fk_user as agent,"; -$sql.= " u.login,"; -if ($conf->global->COMMISSION_BASE == "MARGIN") { - $sql.= " sum(case d.product_type when 1 then 0 else (((d.subprice * (1 - d.remise_percent / 100)) - d.buy_price_ht) * d.qty) end) as productBase," ; - $sql.= " sum(case d.product_type when 1 then (((d.subprice * (1 - d.remise_percent / 100)) - d.buy_price_ht) * d.qty) else 0 end) as serviceBase" ; -} -elseif ($conf->global->COMMISSION_BASE == "TURNOVER") { - $sql.= " sum(case d.product_type when 1 then 0 else (((d.subprice * (1 - d.remise_percent / 100))) * d.qty) end) as productBase," ; - $sql.= " sum(case d.product_type when 1 then (((d.subprice * (1 - d.remise_percent / 100))) * d.qty) else 0 end) as serviceBase" ; -} -$sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; -$sql.= ", ".MAIN_DB_PREFIX."facture as f"; -$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."element_contact e ON e.element_id = f.rowid and e.statut = 4 and e.fk_c_type_contact = ".(empty($conf->global->AGENT_CONTACT_TYPE)?-1:$conf->global->AGENT_CONTACT_TYPE); -$sql.= ", ".MAIN_DB_PREFIX."facturedet as d"; -$sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; -$sql.= ", ".MAIN_DB_PREFIX."user as u"; -$sql.= " WHERE f.fk_soc = s.rowid"; -$sql.= " AND sc.fk_soc = f.fk_soc"; -if (! empty($conf->global->AGENT_CONTACT_TYPE)) - $sql.= " AND ((e.fk_socpeople IS NULL AND sc.fk_user = u.rowid) OR (e.fk_socpeople IS NOT NULL AND e.fk_socpeople = u.rowid))"; -else - $sql .= " AND sc.fk_user = u.rowid"; -if (GETPOST('unpayed') == 'on') - $sql.= " AND f.fk_statut > 0"; -else - $sql.= " AND f.fk_statut > 1"; -$sql.= " AND s.entity = ".$conf->entity; -$sql.= " AND d.fk_facture = f.rowid"; -if ($agentid > 0) { - if (! empty($conf->global->AGENT_CONTACT_TYPE)) - $sql.= " AND ((e.fk_socpeople IS NULL AND sc.fk_user = ".$agentid.") OR (e.fk_socpeople IS NOT NULL AND e.fk_socpeople = ".$agentid."))"; - else - $sql .= " AND sc.fk_user = ".$agentid; -} -if (!empty($startdate)) - $sql.= " AND f.datef >= '".$startdate."'"; -if (!empty($enddate)) - $sql.= " AND f.datef <= '".$enddate."'"; -if ($conf->global->COMMISSION_BASE == "MARGIN") - $sql .= " AND d.buy_price_ht IS NOT NULL"; -if (($conf->global->COMMISSION_BASE == "MARGIN") && isset($conf->global->ForceBuyingPriceIfNull) && $conf->global->ForceBuyingPriceIfNull == 1) - $sql .= " AND d.buy_price_ht <> 0"; -if ($agentid > 0) - $sql.= " GROUP BY s.rowid"; -else - $sql.= " GROUP BY u.rowid"; -$sql.= " ORDER BY $sortfield $sortorder "; -//$sql.= $db->plimit($conf->liste_limit +1, $offset); - -$result = $db->query($sql); -if ($result) -{ - $num = $db->num_rows($result); - - print '
'; - print_barre_liste($langs->trans("CommissionDetails"),$page,$_SERVER["PHP_SELF"],"",$sortfield,$sortorder,'',$num,0,''); - - $i = 0; - print ""; - - print ''; - if ($agentid > 0) - print_liste_field_titre($langs->trans("Customer"),$_SERVER["PHP_SELF"],"s.nom","","&agentid=".$agentid,'align="center"',$sortfield,$sortorder); - else - print_liste_field_titre($langs->trans("CommercialAgent"),$_SERVER["PHP_SELF"],"u.login","","&agentid=".$agentid,'align="center"',$sortfield,$sortorder); - - // product commission - if ($conf->global->COMMISSION_BASE == "MARGIN") - print_liste_field_titre($langs->trans("ProductMargin"),$_SERVER["PHP_SELF"],"productBase","","&agentid=".$agentid,'align="right"',$sortfield,$sortorder); - elseif ($conf->global->COMMISSION_BASE == "TURNOVER") - print_liste_field_titre($langs->trans("ProductTurnover"),$_SERVER["PHP_SELF"],"productBase","","&agentid=".$agentid,'align="right"',$sortfield,$sortorder); - - print_liste_field_titre($langs->trans("CommissionRate"),$_SERVER["PHP_SELF"],"","","&agentid=".$agentid,'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("ProductCommission"),$_SERVER["PHP_SELF"],"","","&agentid=".$agentid,'align="right"',$sortfield,$sortorder); - - // service commission - if ($conf->global->COMMISSION_BASE == "MARGIN") - print_liste_field_titre($langs->trans("ServiceMargin"),$_SERVER["PHP_SELF"],"serviceBase","","&agentid=".$agentid,'align="right"',$sortfield,$sortorder); - elseif ($conf->global->COMMISSION_BASE == "TURNOVER") - print_liste_field_titre($langs->trans("ServiceTurnover"),$_SERVER["PHP_SELF"],"serviceBase","","&agentid=".$agentid,'align="right"',$sortfield,$sortorder); - - print_liste_field_titre($langs->trans("CommissionRate"),$_SERVER["PHP_SELF"],"","","&agentid=".$agentid,'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("ServiceCommission"),$_SERVER["PHP_SELF"],"","","&agentid=".$agentid,'align="right"',$sortfield,$sortorder); - - // total commission - print_liste_field_titre($langs->trans("TotalCommission"),$_SERVER["PHP_SELF"],"","","&agentid=".$agentid,'align="right"',$sortfield,$sortorder); - - print "\n"; - - $cumul_base_produit = 0; - $cumul_base_service = 0; - $cumul_commission_produit = 0; - $cumul_commission_service = 0; - $rounding = min($conf->global->MAIN_MAX_DECIMALS_UNIT,$conf->global->MAIN_MAX_DECIMALS_TOT); - if ($num > 0) - { - $var=True; - while ($i < $num && $i < $conf->liste_limit) - { - $objp = $db->fetch_object($result); - - $var=!$var; - - print ""; - if ($agentid > 0) { - $companystatic->id=$objp->socid; - $companystatic->nom=$objp->nom; - $companystatic->client=$objp->client; - print "\n"; - } - else { - $userstatic->id=$objp->agent; - $userstatic->login=$objp->login; - print "\n"; - } - - // product commission - $productCommissionRate=(! empty($conf->global->PRODUCT_COMMISSION_RATE)?$conf->global->PRODUCT_COMMISSION_RATE:0); - $productBase=(! empty($objp->productBase)?$objp->productBase:0); - $productCommission = (! empty($productBase)?($productCommissionRate * $productBase / 100):0); - print "\n"; - print "\n"; - print "\n"; - - // service commission - $serviceCommissionRate=(! empty($conf->global->SERVICE_COMMISSION_RATE)?$conf->global->SERVICE_COMMISSION_RATE:0); - $serviceBase=(! empty($objp->serviceBase)?$objp->serviceBase:0); - $serviceCommission = (! empty($serviceBase)?($serviceCommissionRate * $serviceBase / 100):0); - print "\n"; - print "\n"; - print "\n"; - - // total commission - print "\n"; - print "\n"; - - $i++; - - $cumul_base_produit += round($productBase, $rounding); - $cumul_base_service += round($serviceBase, $rounding); - $cumul_commission_produit += round($productCommission, $rounding); - $cumul_commission_service += round($serviceCommission, $rounding); - } - } - - // affichage totaux commission - $var=!$var; - print ''; - print '"; - // product commission - print "\n"; - print "\n"; - print "\n"; - // service commission - print "\n"; - print "\n"; - print "\n"; - // total commission - print "\n"; - - print "\n"; - - print ""; - print "
".$companystatic->getNomUrl(1,'customer')."".$userstatic->getLoginUrl(1)."".price($productBase)."".price($productCommissionRate)."".price($productCommission)."".price($serviceBase)."".price($serviceCommissionRate)."".price($serviceCommission)."".price($productCommission + $serviceCommission)."
'; - print $langs->trans('Total'); - print "".price($cumul_base_produit)."".price((! empty($conf->global->PRODUCT_COMMISSION_RATE)?$conf->global->PRODUCT_COMMISSION_RATE:0))."".price($cumul_commission_produit)."".price($cumul_base_service)."".price((! empty($conf->global->SERVICE_COMMISSION_RATE)?$conf->global->SERVICE_COMMISSION_RATE:0))."".price($cumul_commission_service)."".price($cumul_commission_produit + $cumul_commission_service)."
"; -} -else -{ - dol_print_error($db); -} -$db->free($result); - - -llxFooter(); -$db->close(); -?> - \ No newline at end of file diff --git a/htdocs/commissions/lib/commissions.lib.php b/htdocs/commissions/lib/commissions.lib.php deleted file mode 100644 index aa87720968c..00000000000 --- a/htdocs/commissions/lib/commissions.lib.php +++ /dev/null @@ -1,52 +0,0 @@ - - * - * 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/commissions/lib/commissions.lib.php - * \ingroup commissions - * \brief Library for common commissions functions - */ - -/** - * Define head array for tabs of marges tools setup pages - * - * @return Array of head - */ -function commissions_admin_prepare_head() -{ - global $langs, $conf; - - $h = 0; - $head = array(); - - $head[$h][0] = DOL_URL_ROOT.'/commissions/admin/commissions.php'; - $head[$h][1] = $langs->trans("Parameters"); - $head[$h][2] = 'parameters'; - $h++; - - // 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,'',$head,$h,'commissionsadmin'); - - complete_head_from_modules($conf,$langs,'',$head,$h,'commissionsadmin','remove'); - - return $head; -} - -?> diff --git a/htdocs/compta/bank/rappro.php b/htdocs/compta/bank/rappro.php index 2463c768098..d631e8e1843 100644 --- a/htdocs/compta/bank/rappro.php +++ b/htdocs/compta/bank/rappro.php @@ -84,7 +84,7 @@ if ($action == 'rappro' && $user->rights->banque->consolidate) if (! $error) { - header('Location: '.DOL_URL_ROOT.'/compta/bank/rappro?account='.$id); // To avoid to submit twice and allow back + header('Location: '.DOL_URL_ROOT.'/compta/bank/rappro.php?account='.$id); // To avoid to submit twice and allow back exit; } } diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php index 108d3441c16..e8125da86aa 100644 --- a/htdocs/compta/facture.php +++ b/htdocs/compta/facture.php @@ -30,31 +30,25 @@ */ require '../main.inc.php'; -require DOL_DOCUMENT_ROOT . '/compta/facture/class/facture.class.php'; -require DOL_DOCUMENT_ROOT . '/compta/paiement/class/paiement.class.php'; -require DOL_DOCUMENT_ROOT . '/core/modules/facture/modules_facture.php'; -require DOL_DOCUMENT_ROOT . '/core/class/discount.class.php'; -require DOL_DOCUMENT_ROOT . '/core/class/html.formfile.class.php'; -require DOL_DOCUMENT_ROOT . '/core/class/html.formother.class.php'; -require DOL_DOCUMENT_ROOT . '/core/lib/invoice.lib.php'; +require_once DOL_DOCUMENT_ROOT . '/compta/facture/class/facture.class.php'; +require_once DOL_DOCUMENT_ROOT . '/compta/paiement/class/paiement.class.php'; +require_once DOL_DOCUMENT_ROOT . '/core/modules/facture/modules_facture.php'; +require_once DOL_DOCUMENT_ROOT . '/core/class/discount.class.php'; +require_once DOL_DOCUMENT_ROOT . '/core/class/html.formfile.class.php'; +require_once DOL_DOCUMENT_ROOT . '/core/class/html.formother.class.php'; +require_once DOL_DOCUMENT_ROOT . '/core/lib/invoice.lib.php'; require_once DOL_DOCUMENT_ROOT . '/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php'; -require DOL_DOCUMENT_ROOT . '/core/class/extrafields.class.php'; - -if (! empty($conf->commande->enabled)) { - require DOL_DOCUMENT_ROOT . '/commande/class/commande.class.php'; -} -if (! empty($conf->projet->enabled)) { - require DOL_DOCUMENT_ROOT . '/projet/class/project.class.php'; - require DOL_DOCUMENT_ROOT . '/core/lib/project.lib.php'; -} +require_once DOL_DOCUMENT_ROOT . '/core/class/extrafields.class.php'; +if (! empty($conf->commande->enabled)) require_once DOL_DOCUMENT_ROOT . '/commande/class/commande.class.php'; +if (! empty($conf->projet->enabled)) require_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php'; +if (! empty($conf->projet->enabled)) require_once DOL_DOCUMENT_ROOT . '/core/lib/project.lib.php'; $langs->load('bills'); $langs->load('companies'); $langs->load('products'); $langs->load('main'); -if (! empty($conf->margin->enabled)) - $langs->load('margins'); +if (! empty($conf->margin->enabled)) $langs->load('margins'); $sall=trim(GETPOST('sall')); $projectid=(GETPOST('projectid')?GETPOST('projectid','int'):0); @@ -302,6 +296,14 @@ else if ($action == 'setpaymentterm' && $user->rights->facture->creer) $result=$object->update($user); if ($result < 0) dol_print_error($db,$object->error); } +else if ($action == 'setrevenuestamp' && $user->rights->facture->creer) +{ + $object->fetch($id); + $object->revenuestamp=GETPOST('revenuestamp'); + $result=$object->update($user); + $object->update_price(1); + if ($result < 0) dol_print_error($db,$object->error); +} else if ($action == 'setremisepercent' && $user->rights->facture->creer) { $object->fetch($id); @@ -369,22 +371,22 @@ else if ($action == 'confirm_valid' && $confirm == 'yes' && $user->rights->factu $object->fetch_thirdparty(); // Check parameters - + // Check for mandatory prof id for ($i = 1; $i < 5; $i++) { - + $idprof_mandatory ='SOCIETE_IDPROF'.($i).'_INVOICE_MANDATORY'; $idprof='idprof'.$i; if (! $object->thirdparty->$idprof && ! empty($conf->global->$idprof_mandatory)) { if (! $error) $langs->load("errors"); $error++; - + setEventMessage($langs->trans('ErrorProdIdIsMandatory',$langs->transcountry('ProfId'.$i, $object->thirdparty->country_code)),'errors'); } - } - + } + //Check for warehouse if ($object->type != 3 && ! empty($conf->global->STOCK_CALCULATE_ON_BILL) && $object->hasProductsOrServices(1)) { @@ -395,7 +397,7 @@ else if ($action == 'confirm_valid' && $confirm == 'yes' && $user->rights->factu $action=''; } } - + if (! $error) { $result = $object->validate($user,'',$idwarehouse); @@ -617,7 +619,7 @@ else if ($action == 'add' && $user->rights->facture->creer) $db->begin(); $error=0; - + // Get extra fields foreach($_POST as $key => $value) { @@ -1630,7 +1632,7 @@ else if ($action == 'builddoc') // En get ou en post if (GETPOST('model')) $object->setDocModel($user, GETPOST('model')); if (GETPOST('fk_bank')) $object->fk_bank=GETPOST('fk_bank'); - + // Define output language $outputlangs = $langs; $newlang=''; @@ -1777,14 +1779,15 @@ if ($action == 'update_extras') * View */ -llxHeader('',$langs->trans('Bill'),'EN:Customers_Invoices|FR:Factures_Clients|ES:Facturas_a_clientes'); - $form = new Form($db); -$htmlother = new FormOther($db); +$formother=new FormOther($db); $formfile = new FormFile($db); $bankaccountstatic=new Account($db); $now=dol_now(); +llxHeader('',$langs->trans('Bill'),'EN:Customers_Invoices|FR:Factures_Clients|ES:Facturas_a_clientes'); + + /********************************************************************* * @@ -1924,7 +1927,7 @@ if ($action == 'create') else { print ''; - print $form->select_company('','socid','s.client = 1',1); + print $form->select_company('','socid','s.client = 1 OR s.client = 3',1); print ''; } print ''."\n"; @@ -2109,11 +2112,19 @@ if ($action == 'create') foreach($extrafields->attribute_label as $key=>$label) { $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$object->array_options["options_".$key]); - print 'attribute_required[$key])) print ' class="fieldrequired"'; - print '>'.$label.''; - print $extrafields->showInputField($key,$value); - print ''."\n"; + // Show separator only + if ($extrafields->attribute_type[$key] == 'separate') + { + print $extrafields->showSeparator($key); + } + else + { + print 'attribute_required[$key])) print ' class="fieldrequired"'; + print '>'.$label.''; + print $extrafields->showInputField($key,$value); + print ''."\n"; + } } } @@ -2272,10 +2283,10 @@ else if ($id > 0 || ! empty($ref)) */ $result=$object->fetch($id,$ref); - + // fetch optionals attributes and labels $extralabels=$extrafields->fetch_name_optionals_label('facture'); - + if ($result > 0) { if ($user->societe_id>0 && $user->societe_id!=$object->socid) accessforbidden('',0); @@ -2284,11 +2295,12 @@ else if ($id > 0 || ! empty($ref)) $soc = new Societe($db); $soc->fetch($object->socid); + $selleruserevenustamp=$mysoc->useRevenueStamp(); $totalpaye = $object->getSommePaiement(); $totalcreditnotes = $object->getSumCreditNotesUsed(); $totaldeposits = $object->getSumDepositsUsed(); - //print "totalpaye=".$totalpaye." totalcreditnotes=".$totalcreditnotes." totaldeposts=".$totaldeposits; + //print "totalpaye=".$totalpaye." totalcreditnotes=".$totalcreditnotes." totaldeposts=".$totaldeposits." selleruserrevenuestamp=".$selleruserevenustamp; // We can also use bcadd to avoid pb with floating points // For example print 239.2 - 229.3 - 9.9; does not return 0. @@ -2752,10 +2764,9 @@ else if ($id > 0 || ! empty($ref)) $nbrows=8; $nbcols=2; if (! empty($conf->projet->enabled)) $nbrows++; if (! empty($conf->banque->enabled)) $nbcols++; - - //Local taxes if($mysoc->localtax1_assuj=="1") $nbrows++; if($mysoc->localtax2_assuj=="1") $nbrows++; + if ($selleruserevenustamp) $nbrows++; print ''; @@ -3026,29 +3037,51 @@ else if ($id > 0 || ! empty($ref)) // Amount print ''.$langs->trans('AmountHT').''; - print ''.price($object->total_ht).''; - print ''.$langs->trans('Currency'.$conf->currency).''; - print ''.$langs->trans('AmountVAT').''.price($object->total_tva).''; - print ''.$langs->trans('Currency'.$conf->currency).''; - + print ''.price($object->total_ht,1,'',1,-1,-1,$conf->currency).''; + print ''.$langs->trans('AmountVAT').''.price($object->total_tva,1,'',1,-1,-1,$conf->currency).''; print ''; // Amount Local Taxes - if ($mysoc->localtax1_assuj=="1") //Localtax1 RE + if ($mysoc->localtax1_assuj=="1" && $mysoc->useLocalTax(1)) //Localtax1 (example RE) { print ''.$langs->transcountry("AmountLT1",$mysoc->country_code).''; - print ''.price($object->total_localtax1).''; - print ''.$langs->trans("Currency".$conf->currency).''; + print ''.price($object->total_localtax1,1,'',1,-1,-1,$conf->currency).''; } - if ($mysoc->localtax2_assuj=="1") //Localtax2 IRPF + if ($mysoc->localtax2_assuj=="1" && $mysoc->useLocalTax(2)) //Localtax2 (example IRPF) { print ''.$langs->transcountry("AmountLT2",$mysoc->country_code).''; - print ''.price($object->total_localtax2).''; - print ''.$langs->trans("Currency".$conf->currency).''; + print ''.price($object->total_localtax2,1,'',1,-1,-1,$conf->currency).''; } - print ''.$langs->trans('AmountTTC').''.price($object->total_ttc).''; - print ''.$langs->trans('Currency'.$conf->currency).''; + // Revenue stamp + if ($selleruserevenustamp) // Test company use revenue stamp + { + print ''; + print ''; + if ($action != 'editrevenuestamp' && ! empty($object->brouillon) && $user->rights->facture->creer) print ''; + print '
'; + print $langs->trans('RevenueStamp'); + print 'id.'">'.img_edit($langs->trans('SetRevenuStamp'),1).'
'; + print ''; + if ($action == 'editrevenuestamp') + { + print '
'; + print ''; + print ''; + print $formother->select_revenue_stamp(GETPOST('revenuestamp'), 'revenuestamp', $mysoc->country_code); + //print ''; + print ' '; + print '
'; + } + else + { + print price($object->revenuestamp,1,'',1,-1,-1,$conf->currency); + } + print ''; + } + + // Total with tax + print ''.$langs->trans('AmountTTC').''.price($object->total_ttc,1,'',1,-1,-1,$conf->currency).''; // Statut print ''.$langs->trans('Status').''; @@ -3084,14 +3117,14 @@ else if ($id > 0 || ! empty($ref)) print ''; print ''; } - + // Other attributes $res=$object->fetch_optionals($object->id,$extralabels); $parameters=array('colspan' => ' colspan="2"'); $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook if (empty($reshook) && ! empty($extrafields->attribute_label)) { - + if ($action == 'edit_extras') { print '
'; @@ -3099,38 +3132,44 @@ else if ($id > 0 || ! empty($ref)) print ''; print ''; } - - + + foreach($extrafields->attribute_label as $key=>$label) { $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$object->array_options["options_".$key]); - print 'attribute_required[$key])) print ' class="fieldrequired"'; - print '>'.$label.''; - if ($action == 'edit_extras' && $user->rights->propal->creer) + if ($extrafields->attribute_type[$key] == 'separate') { - print $extrafields->showInputField($key,$value); + print $extrafields->showSeparator($key); } else { - print $extrafields->showOutputField($key,$value); + print 'attribute_required[$key])) print ' class="fieldrequired"'; + print '>'.$label.''; + if ($action == 'edit_extras' && $user->rights->facture->creer) + { + print $extrafields->showInputField($key,$value); + } + else + { + print $extrafields->showOutputField($key,$value); + } + print ''."\n"; } - - print ''."\n"; } - + if(count($extrafields->attribute_label) > 0) { - - if ($action == 'edit_extras' && $user->rights->propal->creer) + + if ($action == 'edit_extras' && $user->rights->facture->creer) { print ''; print ''; print ''; print ''; - + } else { - if ($object->statut == 0 && $user->rights->propal->creer) + if ($object->statut == 0 && $user->rights->facture->creer) { print ''.img_picto('','edit').' '.$langs->trans('Modify').''; } @@ -3533,6 +3572,31 @@ else if ($id > 0 || ! empty($ref)) $formmail->substit['__FACREF__']=$object->ref; $formmail->substit['__SIGNATURE__']=$user->signature; $formmail->substit['__PERSONALIZED__']=''; + $formmail->substit['__CONTACTCIVNAME__']=''; + + //Find the good contact adress + $custcontact=''; + $contactarr=array(); + $contactarr=$object->liste_contact(-1,'external'); + + if (is_array($contactarr) && count($contactarr)>0) { + foreach($contactarr as $contact) { + if ($contact['libelle']==$langs->trans('TypeContact_facture_external_BILLING')) { + + require_once DOL_DOCUMENT_ROOT . '/contact/class/contact.class.php'; + + $contactstatic=new Contact($db); + $contactstatic->fetch($contact['id']); + $custcontact=$contactstatic->getFullName($langs,1); + } + } + + if (!empty($custcontact)) { + $formmail->substit['__CONTACTCIVNAME__']=$custcontact; + } + } + + // Tableau des parametres complementaires du post $formmail->param['action']=$action; $formmail->param['models']=$modelmail; diff --git a/htdocs/compta/facture/class/facture-rec.class.php b/htdocs/compta/facture/class/facture-rec.class.php index b41fa735e7c..4e168d0645f 100644 --- a/htdocs/compta/facture/class/facture-rec.class.php +++ b/htdocs/compta/facture/class/facture-rec.class.php @@ -336,7 +336,6 @@ class FactureRec extends Facture $line->total_ht = $objp->total_ht; $line->total_tva = $objp->total_tva; $line->total_ttc = $objp->total_ttc; - $line->export_compta = $objp->fk_export_compta; $line->code_ventilation = $objp->fk_code_ventilation; $line->rang = $objp->rang; $line->special_code = $objp->special_code; diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php index ace5e15312c..3b38ccb3fd0 100644 --- a/htdocs/compta/facture/class/facture.class.php +++ b/htdocs/compta/facture/class/facture.class.php @@ -75,6 +75,7 @@ class Facture extends CommonInvoice var $total_ht=0; var $total_tva=0; var $total_ttc=0; + var $revenuestamp; var $note; // deprecated var $note_private; var $note_public; @@ -455,7 +456,7 @@ class Facture extends CommonInvoice } } else if ($reshook < 0) $error++; - + // Appel des triggers include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; $interface=new Interfaces($this->db); @@ -795,7 +796,8 @@ class Facture extends CommonInvoice if (empty($rowid) && empty($ref) && empty($ref_ext) && empty($ref_int)) return -1; - $sql = 'SELECT f.rowid,f.facnumber,f.ref_client,f.ref_ext,f.ref_int,f.type,f.fk_soc,f.amount,f.tva, f.localtax1, f.localtax2, f.total,f.total_ttc,f.remise_percent,f.remise_absolue,f.remise'; + $sql = 'SELECT f.rowid,f.facnumber,f.ref_client,f.ref_ext,f.ref_int,f.type,f.fk_soc,f.amount,f.tva, f.localtax1, f.localtax2, f.total, f.total_ttc, f.revenuestamp'; + $sql.= ', f.remise_percent, f.remise_absolue, f.remise'; $sql.= ', f.datef as df'; $sql.= ', f.date_lim_reglement as dlr'; $sql.= ', f.datec as datec'; @@ -841,6 +843,7 @@ class Facture extends CommonInvoice $this->total_localtax1 = $obj->localtax1; $this->total_localtax2 = $obj->localtax2; $this->total_ttc = $obj->total_ttc; + $this->revenuestamp = $obj->revenuestamp; $this->paye = $obj->paye; $this->close_code = $obj->close_code; $this->close_note = $obj->close_note; @@ -866,7 +869,7 @@ class Facture extends CommonInvoice $this->extraparams = (array) json_decode($obj->extraparams, true); if ($this->statut == 0) $this->brouillon = 1; - + // Retreive all extrafield for invoice // fetch optionals attributes and labels if(!class_exists('Extrafields')) @@ -925,7 +928,7 @@ class Facture extends CommonInvoice $sql.= ' l.localtax1_tx, l.localtax2_tx, l.remise, l.remise_percent, l.fk_remise_except, l.subprice,'; $sql.= ' l.rang, l.special_code,'; $sql.= ' l.date_start as date_start, l.date_end as date_end,'; - $sql.= ' l.info_bits, l.total_ht, l.total_tva, l.total_localtax1, l.total_localtax2, l.total_ttc, l.fk_code_ventilation, l.fk_export_compta, l.fk_product_fournisseur_price as fk_fournprice, l.buy_price_ht as pa_ht,'; + $sql.= ' l.info_bits, l.total_ht, l.total_tva, l.total_localtax1, l.total_localtax2, l.total_ttc, l.fk_code_ventilation, l.fk_product_fournisseur_price as fk_fournprice, l.buy_price_ht as pa_ht,'; $sql.= ' p.ref as product_ref, p.fk_product_type as fk_product_type, p.label as product_label, p.description as product_desc'; $sql.= ' FROM '.MAIN_DB_PREFIX.'facturedet as l'; $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON l.fk_product = p.rowid'; @@ -970,7 +973,6 @@ class Facture extends CommonInvoice $line->total_localtax1 = $objp->total_localtax1; $line->total_localtax2 = $objp->total_localtax2; $line->total_ttc = $objp->total_ttc; - $line->export_compta = $objp->fk_export_compta; $line->code_ventilation = $objp->fk_code_ventilation; $line->fk_fournprice = $objp->fk_fournprice; $marginInfos = getMarginInfos($objp->subprice, $objp->remise_percent, $objp->tva_tx, $objp->localtax1_tx, $objp->localtax2_tx, $line->fk_fournprice, $objp->pa_ht); @@ -1051,6 +1053,7 @@ class Facture extends CommonInvoice $sql.= " localtax2=".(isset($this->total_localtax2)?$this->total_localtax2:"null").","; $sql.= " total=".(isset($this->total_ht)?$this->total_ht:"null").","; $sql.= " total_ttc=".(isset($this->total_ttc)?$this->total_ttc:"null").","; + $sql.= " revenuestamp=".((isset($this->revenuestamp) && $this->revenuestamp != '')?$this->revenuestamp:"null").","; $sql.= " fk_statut=".(isset($this->statut)?$this->statut:"null").","; $sql.= " fk_user_author=".(isset($this->user_author)?$this->user_author:"null").","; $sql.= " fk_user_valid=".(isset($this->fk_user_valid)?$this->fk_user_valid:"null").","; @@ -1860,7 +1863,7 @@ class Facture extends CommonInvoice } } } - + if ($error == 0) { $old_statut=$this->statut; @@ -1870,8 +1873,8 @@ class Facture extends CommonInvoice include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; $interface=new Interfaces($this->db); $result=$interface->run_triggers('BILL_UNVALIDATE',$this,$user,$langs,$conf); - if ($result < 0) { - $error++; + if ($result < 0) { + $error++; $this->errors=$interface->errors; $this->statut=$old_statut; $this->brouillon=0; @@ -1881,7 +1884,7 @@ class Facture extends CommonInvoice $this->db->rollback(); return -1; } - + if ($error == 0) { $this->db->commit(); @@ -2083,7 +2086,7 @@ class Facture extends CommonInvoice * @param double $txlocaltax1 Local tax 1 rate * @param double $txlocaltax2 Local tax 2 rate * @param string $price_base_type HT or TTC - * @param int $info_bits Miscellanous informations + * @param int $info_bits Miscellaneous informations * @param int $type Type of line (0=product, 1=service) * @param int $fk_parent_line Id of parent line (0 in most cases, used by modules adding sublevels into lines). * @param int $skip_update_total Keep fields total_xxx to 0 (used for special lines by some modules) @@ -3196,7 +3199,6 @@ class FactureLigne var $total_ttc; var $fk_code_ventilation = 0; - var $fk_export_compta = 0; var $date_start; var $date_end; @@ -3237,7 +3239,7 @@ class FactureLigne $sql.= ' fd.localtax1_tx, fd. localtax2_tx, fd.remise, fd.remise_percent, fd.fk_remise_except, fd.subprice,'; $sql.= ' fd.date_start as date_start, fd.date_end as date_end, fd.fk_product_fournisseur_price as fk_fournprice, fd.buy_price_ht as pa_ht,'; $sql.= ' fd.info_bits, fd.total_ht, fd.total_tva, fd.total_ttc, fd.total_localtax1, fd.total_localtax2, fd.rang,'; - $sql.= ' fd.fk_code_ventilation, fd.fk_export_compta,'; + $sql.= ' fd.fk_code_ventilation,'; $sql.= ' p.ref as product_ref, p.label as product_libelle, p.description as product_desc'; $sql.= ' FROM '.MAIN_DB_PREFIX.'facturedet as fd'; $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON fd.fk_product = p.rowid'; @@ -3271,7 +3273,6 @@ class FactureLigne $this->total_localtax2 = $objp->total_localtax2; $this->total_ttc = $objp->total_ttc; $this->fk_code_ventilation = $objp->fk_code_ventilation; - $this->fk_export_compta = $objp->fk_export_compta; $this->rang = $objp->rang; $this->fk_fournprice = $objp->fk_fournprice; $marginInfos = getMarginInfos($objp->subprice, $objp->remise_percent, $objp->tva_tx, $objp->localtax1_tx, $objp->localtax2_tx, $this->fk_fournprice, $objp->pa_ht); @@ -3338,7 +3339,7 @@ class FactureLigne $sql = 'INSERT INTO '.MAIN_DB_PREFIX.'facturedet'; $sql.= ' (fk_facture, fk_parent_line, label, description, qty, tva_tx, localtax1_tx, localtax2_tx,'; $sql.= ' fk_product, product_type, remise_percent, subprice, fk_remise_except,'; - $sql.= ' date_start, date_end, fk_code_ventilation, fk_export_compta, '; + $sql.= ' date_start, date_end, fk_code_ventilation, '; $sql.= ' rang, special_code, fk_product_fournisseur_price, buy_price_ht,'; $sql.= ' info_bits, total_ht, total_tva, total_ttc, total_localtax1, total_localtax2)'; $sql.= " VALUES (".$this->fk_facture.","; @@ -3357,7 +3358,6 @@ class FactureLigne $sql.= " ".(! empty($this->date_start)?"'".$this->db->idate($this->date_start)."'":"null").","; $sql.= " ".(! empty($this->date_end)?"'".$this->db->idate($this->date_end)."'":"null").","; $sql.= ' '.$this->fk_code_ventilation.','; - $sql.= ' '.$this->fk_export_compta.','; $sql.= ' '.$this->rang.','; $sql.= ' '.$this->special_code.','; $sql.= ' '.(! empty($this->fk_fournprice)?$this->fk_fournprice:"null").','; diff --git a/htdocs/compta/facture/impayees.php b/htdocs/compta/facture/impayees.php index 5918a036807..086b9a35fc4 100644 --- a/htdocs/compta/facture/impayees.php +++ b/htdocs/compta/facture/impayees.php @@ -197,9 +197,9 @@ if (! $sortorder) $sortorder="ASC"; $limit = $conf->liste_limit; $sql = "SELECT s.nom, s.rowid as socid"; -$sql.= ", f.facnumber, f.increment, f.total as total_ht, f.tva as total_tva, f.total_ttc"; +$sql.= ", f.rowid as facid, f.facnumber, f.increment, f.total as total_ht, f.tva as total_tva, f.total_ttc, f.localtax1, f.localtax2, f.revenuestamp"; $sql.= ", f.datef as df, f.date_lim_reglement as datelimite"; -$sql.= ", f.paye as paye, f.rowid as facid, f.fk_statut, f.type"; +$sql.= ", f.paye as paye, f.fk_statut, f.type"; $sql.= ", sum(pf.amount) as am"; if (! $user->rights->societe->client->voir && ! $socid) $sql .= ", sc.fk_soc, sc.fk_user "; $sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; @@ -226,7 +226,7 @@ if ($search_ref) $sql .= " AND f.facnumber LIKE '%".$search_ref."%'"; if ($search_societe) $sql .= " AND s.nom LIKE '%".$search_societe."%'"; if ($search_montant_ht) $sql .= " AND f.total = '".$search_montant_ht."'"; if ($search_montant_ttc) $sql .= " AND f.total_ttc = '".$search_montant_ttc."'"; -if (GETPOST('sf_ref')) $sql .= " AND f.facnumber LIKE '%".GETPOST('sf_ref') . "%'"; +if (GETPOST('sf_ref')) $sql .= " AND f.facnumber LIKE '%".$db->escape(GETPOST('sf_ref'))."%'"; $sql.= " GROUP BY f.facnumber,f.increment,f.total,f.total_ttc,f.datef, f.date_lim_reglement,f.paye, f.rowid, f.fk_statut, f.type,s.nom, s.rowid"; if (! $user->rights->societe->client->voir && ! $socid) $sql .= ", sc.fk_soc, sc.fk_user "; $sql.= " ORDER BY "; @@ -280,10 +280,10 @@ if ($resql) print_liste_field_titre($langs->trans("DateDue"),$_SERVER["PHP_SELF"],"f.date_lim_reglement","",$param,'align="center"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","",$param,"",$sortfield,$sortorder); print_liste_field_titre($langs->trans("AmountHT"),$_SERVER["PHP_SELF"],"f.total","",$param,'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("AmountVAT"),$_SERVER["PHP_SELF"],"f.tva","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("Taxes"),$_SERVER["PHP_SELF"],"f.tva","",$param,'align="right"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("AmountTTC"),$_SERVER["PHP_SELF"],"f.total_ttc","",$param,'align="right"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Received"),$_SERVER["PHP_SELF"],"am","",$param,'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Rest"),$_SERVER["PHP_SELF"],"am","",$param,'align="right"',$sortfield,$sortorder); + //print_liste_field_titre($langs->trans("Remain"),$_SERVER["PHP_SELF"],"am","",$param,'align="right"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"fk_statut,paye,am","",$param,'align="right"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Merge"),$_SERVER["PHP_SELF"],"","",$param,'align="center"',$sortfield,$sortorder); print "\n"; @@ -296,11 +296,11 @@ if ($resql) print ''; print ' '; print ' '; - print ''; - print ''; + print ''; + print ''; print ' '; - print ''; - print ''; + print ''; + print ''; print ''; print ''; print ''; @@ -341,7 +341,7 @@ if ($resql) print ''; // Ref - print ''; @@ -366,13 +366,25 @@ if ($resql) print ''; - print ''; - print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; + print ''; + + // Remain to receive + //print ''; - // Affiche statut de la facture + // Status of invoice print ''; @@ -387,19 +399,19 @@ if ($resql) print "\n"; $total_ht+=$objp->total_ht; - $total_tva+=$objp->total_tva; + $total_tva+=($objp->total_tva + $tx1 + $tx2 + $revenuestamp); $total_ttc+=$objp->total_ttc; - $total_paid+=$objp->am; + $total_paid+=$objp->am + $cn; $i++; } print ''; print ''; - print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; + print ''; print ''; print ''; print ''; diff --git a/htdocs/compta/index.php b/htdocs/compta/index.php index 978109ff67e..d4aad86977e 100644 --- a/htdocs/compta/index.php +++ b/htdocs/compta/index.php @@ -104,10 +104,9 @@ llxHeader("",$langs->trans("AccountancyTreasuryArea")); print_fiche_titre($langs->trans("AccountancyTreasuryArea")); -print '
'; + print ''; print $facturestatic->getNomUrl(1); print ''.img_object($langs->trans("ShowCompany"),"company").' '.dol_trunc($objp->nom,28).''.price($objp->total_ht).' '.$langs->getCurrencySymbol($conf->currency).''.price($objp->total_tva).' '.$langs->getCurrencySymbol($conf->currency).''.price($objp->total_ttc).' '.$langs->getCurrencySymbol($conf->currency).''.(! empty($objp->am)?price($objp->am).' '.$langs->getCurrencySymbol($conf->currency):' ').''.(! empty($objp->am)?price($objp->total_ttc-$objp->am).' '.$langs->getCurrencySymbol($conf->currency):' ').''.price($objp->total_ht).''.price($objp->total_tva); + $tx1=price2num($objp->localtax1); + $tx2=price2num($objp->localtax2); + $revenuestamp=price2num($objp->revenuestamp); + if (! empty($tx1) || ! empty($tx2) || ! empty($revenuestamp)) print '+'.price($tx1 + $tx2 + $revenuestamp); + print ''.price($objp->total_ttc).''; + $cn=$facturestatic->getSumCreditNotesUsed(); + if (! empty($objp->am)) print price($objp->am); + if (! empty($objp->am) && ! empty($cn)) print '+'; + if (! empty($cn)) print price($cn); + print ''.((! empty($objp->am) || ! empty($cn))?price($objp->total_ttc-$objp->am-$cn):' ').''; print $facturestatic->LibStatut($objp->paye,$objp->fk_statut,5,$objp->am); print '
'.$langs->trans("Total").''.price($total_ht).' '.$langs->getCurrencySymbol($conf->currency).''.price($total_tva).' '.$langs->getCurrencySymbol($conf->currency).''.price($total_ttc).' '.$langs->getCurrencySymbol($conf->currency).''.price($total_paid).' '.$langs->getCurrencySymbol($conf->currency).''.price($total_ht).''.price($total_tva).''.price($total_ttc).''.price($total_paid).'   
'; - -print ''; -print ''; - -print '
'; +//print ''; +//print ''; -print '
'; +print '
'; $max=3; @@ -323,8 +322,10 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture- } } -print '
'; + +//print ''; +print '
'; + // Last modified customer invoices if (! empty($conf->facture->enabled) && $user->rights->facture->lire) @@ -1031,12 +1032,10 @@ if ($resql) print "

"; } -print '
'; +//print ''; +print '
'; llxFooter(); $db->close(); - ?> diff --git a/htdocs/compta/paiement/cheque/index.php b/htdocs/compta/paiement/cheque/index.php index aec05b00da4..45a1f665a37 100644 --- a/htdocs/compta/paiement/cheque/index.php +++ b/htdocs/compta/paiement/cheque/index.php @@ -46,9 +46,9 @@ llxHeader('',$langs->trans("ChequesArea")); print_fiche_titre($langs->trans("ChequesArea")); -print ''; - -print '
'; +//print ''; +//print '\n"; -print "
'; +print '
'; $sql = "SELECT count(b.rowid)"; $sql.= " FROM ".MAIN_DB_PREFIX."bank as b"; @@ -86,7 +86,8 @@ else } -print '
'; +//print ''; +print '
'; $sql = "SELECT bc.rowid, bc.date_bordereau as db, bc.amount, bc.number as ref"; @@ -143,10 +144,11 @@ else dol_print_error($db); } -print "
\n"; -$db->close(); +//print "
\n"; +print '
'; llxFooter(); + +$db->close(); ?> diff --git a/htdocs/compta/prelevement/index.php b/htdocs/compta/prelevement/index.php index 907aad6679c..5fdd334db55 100644 --- a/htdocs/compta/prelevement/index.php +++ b/htdocs/compta/prelevement/index.php @@ -61,9 +61,10 @@ if (prelevement_check_config() < 0) print_fiche_titre($langs->trans("CustomersStandingOrdersArea")); -print ''; +//print '
'; +//print '
'; +print '
'; -print '
'; $thirdpartystatic=new Societe($db); $invoicestatic=new Facture($db); @@ -85,8 +86,9 @@ print ''; print price($bprev->SommeAPrelever()); print '

'; -print ''; +//print ''; +print '
'; /* @@ -218,7 +220,10 @@ else } -print ''; +//print ''; +print '
'; llxFooter(); + +$db->close(); ?> diff --git a/htdocs/compta/recap-compta.php b/htdocs/compta/recap-compta.php index 553262a3b4b..bc89cf7de7e 100644 --- a/htdocs/compta/recap-compta.php +++ b/htdocs/compta/recap-compta.php @@ -43,6 +43,8 @@ if ($user->societe_id > 0) * View */ +$userstatic=new User($db); + llxHeader(); if ($socid > 0) @@ -135,7 +137,7 @@ if ($socid > 0) $var=!$var; print ""; - print "".dol_print_date($fac->date)."\n"; + print "".dol_print_date($fac->date,'day')."\n"; print ''.img_object($langs->trans("ShowBill"),"bill")." ".$fac->ref."\n"; print ''.$fac->getLibStatut(2,$totalpaye).''; @@ -146,8 +148,12 @@ if ($socid > 0) print ' '; print ''.price($solde)."\n"; - // Auteur - print ''.img_object($langs->trans("ShowUser"),'user').' '.$objf->login.''; + // Author + $userstatic->id=$objf->userid; + $userstatic->login=$objf->login; + print ''; + print $userstatic->getLoginUrl(1); + print ''; print "\n"; @@ -172,7 +178,7 @@ if ($socid > 0) $objp = $db->fetch_object($resqlp); //$var=!$var; print ""; - print ''.dol_print_date($db->jdate($objp->dp))."\n"; + print ''.dol_print_date($db->jdate($objp->dp),'day')."\n"; print ''; print '      '; // Decalage print ''.img_object($langs->trans("ShowPayment"),"payment").' '.$langs->trans("Payment").' '.$objp->rowid.''; @@ -182,8 +188,12 @@ if ($socid > 0) $solde = $solde - $objp->amount; print ''.price($solde)."\n"; - // Auteur - print ''.img_object($langs->trans("ShowUser"),'user').' '.$objp->login.''; + // Author + $userstatic->id=$objp->userid; + $userstatic->login=$objp->login; + print ''; + print $userstatic->getLoginUrl(1); + print ''; print ''; @@ -214,5 +224,4 @@ else llxFooter(); $db->close(); - ?> diff --git a/htdocs/compta/resultat/index.php b/htdocs/compta/resultat/index.php index ac6065bd78a..4279490d801 100644 --- a/htdocs/compta/resultat/index.php +++ b/htdocs/compta/resultat/index.php @@ -555,7 +555,7 @@ for ($annee = $year_start ; $annee <= $year_end ; $annee++) if (isset($totentrees[$annee]) || isset($totsorties[$annee])) { $in=(isset($totentrees[$annee])?price2num($totentrees[$annee], 'MT'):0); - $out=(isset($totsorties[$annee])?price2num($totsorties[$annee],' MT'):0); + $out=(isset($totsorties[$annee])?price2num($totsorties[$annee],'MT'):0); print price($in-$out).''; // print ' '; } diff --git a/htdocs/compta/ventilation/fournisseur/index.php b/htdocs/compta/ventilation/fournisseur/index.php index c10bb23a056..636891e7c18 100644 --- a/htdocs/compta/ventilation/fournisseur/index.php +++ b/htdocs/compta/ventilation/fournisseur/index.php @@ -39,7 +39,7 @@ print ''; $sql = "SELECT count(*) FROM ".MAIN_DB_PREFIX."facturedet"; -$sql .= " WHERE fk_export_compta = 0"; +$sql .= " WHERE fk_code_ventilation = 0"; $result = $db->query($sql); if ($result) { @@ -50,7 +50,7 @@ if ($result) } $sql = "SELECT count(*) FROM ".MAIN_DB_PREFIX."paiement"; -$sql .= " WHERE fk_export_compta = 0"; +$sql .= " WHERE fk_code_ventilation = 0"; $result = $db->query($sql); if ($result) @@ -62,7 +62,7 @@ if ($result) } $sql = "SELECT count(*) FROM ".MAIN_DB_PREFIX."facture_fourn_det"; -$sql .= " WHERE fk_export_compta = 0"; +$sql .= " WHERE fk_code_ventilation = 0"; $result = $db->query($sql); if ($result) { @@ -73,7 +73,7 @@ if ($result) } /*$sql = "SELECT count(*) FROM ".MAIN_DB_PREFIX."paiementfourn"; -$sql .= " WHERE fk_export_compta = 0"; +$sql .= " WHERE fk_code_ventilation = 0"; $result = $db->query($sql); if ($result) diff --git a/htdocs/compta/ventilation/index.php b/htdocs/compta/ventilation/index.php index 9cd939868c8..d01d1735734 100644 --- a/htdocs/compta/ventilation/index.php +++ b/htdocs/compta/ventilation/index.php @@ -32,14 +32,14 @@ llxHeader('','Compta - Ventilation'); print_fiche_titre("Ventilation Comptable"); -print ''; - -print '
'; +//print ''; +//print '
'; +print '
'; $sql = "SELECT count(*) FROM ".MAIN_DB_PREFIX."facturedet as fd"; $sql.= " , ".MAIN_DB_PREFIX."facture as f"; $sql.= " WHERE fd.fk_code_ventilation = 0"; -$sql.= " AND f.rowid = fd.fk_facture AND f.fk_statut = 1;"; +$sql.= " AND f.rowid = fd.fk_facture AND f.fk_statut = 1"; $result = $db->query($sql); if ($result) @@ -56,14 +56,17 @@ print ''; print ''; print ''; $var=!$var; -print "".''; +print "".''; $var=!$var; print "
'.$langs->trans("Lines").'
'.$langs->trans("Type").''.$langs->trans("Nb").'
'.$langs->trans("Invoices").''.$nbfac.'
'.$langs->trans("Invoices").''.$nbfac.'
\n"; -print '
'; + +//print ''; +print '
'; + print ''; -print ''; +print ''; $sql = "SELECT count(*), ccg.intitule, ccg.rowid,ccg.numero FROM ".MAIN_DB_PREFIX."facturedet as fd"; $sql.= " ,".MAIN_DB_PREFIX."compta_compte_generaux as ccg"; @@ -90,8 +93,11 @@ if ($resql) } print "
Type'.$langs->trans("NbOfLines").''.$langs->trans("AccountNumber").''.$langs->trans("TransID").'
'.$langs->trans("Type").''.$langs->trans("NbOfLines").''.$langs->trans("AccountNumber").''.$langs->trans("TransID").'
\n"; -print '
'; +//print '
'; +print '
'; + llxFooter(); +$db->close(); ?> diff --git a/htdocs/compta/ventilation/lignes.php b/htdocs/compta/ventilation/lignes.php index e5cf6bc8edd..c938e9774c4 100644 --- a/htdocs/compta/ventilation/lignes.php +++ b/htdocs/compta/ventilation/lignes.php @@ -48,7 +48,7 @@ if ($page < 0) $page = 0; $limit = $conf->liste_limit; $offset = $limit * $page ; -$sql = "SELECT f.facnumber, f.rowid as facid, l.fk_product, l.description, l.price, l.qty, l.rowid, l.tva_tx, l.fk_code_ventilation, c.intitule, c.numero,"; +$sql = "SELECT f.facnumber, f.rowid as facid, l.fk_product, l.description, f.total_ttc as price, l.qty, l.rowid, l.tva_tx, l.fk_code_ventilation, c.intitule, c.numero,"; $sql.= " p.rowid as product_id, p.ref as product_ref, p.label as product_label, p.fk_product_type as type"; $sql.= " FROM ".MAIN_DB_PREFIX."facture as f"; $sql.= " , ".MAIN_DB_PREFIX."compta_compte_generaux as c"; @@ -72,7 +72,7 @@ if ($result) $num_lignes = $db->num_rows($result); $i = 0; - print_barre_liste("Lignes de facture ventil�es",$page,"lignes.php","",$sortfield,$sortorder,'',$num_lignes); + print_barre_liste($langs->trans("InvoiceDispatched"),$page,"lignes.php","",$sortfield,$sortorder,'',$num_lignes); print '
'; print ''; @@ -136,7 +136,7 @@ else print "
"; -$db->close(); llxFooter(); +$db->close(); ?> diff --git a/htdocs/compta/ventilation/liste.php b/htdocs/compta/ventilation/liste.php index 70679d3a381..81613640541 100644 --- a/htdocs/compta/ventilation/liste.php +++ b/htdocs/compta/ventilation/liste.php @@ -54,7 +54,7 @@ $pageprev = $page - 1; $pagenext = $page + 1; $limit = $conf->liste_limit; -$sql = "SELECT f.facnumber, f.rowid as facid, l.fk_product, l.description, l.price, l.rowid, l.fk_code_ventilation,"; +$sql = "SELECT f.facnumber, f.rowid as facid, l.fk_product, l.description, f.total as price, l.rowid, l.fk_code_ventilation,"; $sql.= " p.rowid as product_id, p.ref as product_ref, p.label as product_label, p.fk_product_type as type"; $sql.= " FROM ".MAIN_DB_PREFIX."facture as f"; $sql.= " , ".MAIN_DB_PREFIX."facturedet as l"; diff --git a/htdocs/contact/fiche.php b/htdocs/contact/fiche.php index 2f1f0613740..885711bb526 100644 --- a/htdocs/contact/fiche.php +++ b/htdocs/contact/fiche.php @@ -521,11 +521,18 @@ else foreach($extrafields->attribute_label as $key=>$label) { $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:(isset($object->array_options["options_".$key])?$object->array_options["options_".$key]:'')); - print 'attribute_required[$key])) print ' class="fieldrequired"'; - print '>'.$label.''; - print $extrafields->showInputField($key,$value); - print ''."\n"; + if ($extrafields->attribute_type[$key] == 'separate') + { + print $extrafields->showSeparator($key); + } + else + { + print 'attribute_required[$key])) print ' class="fieldrequired"'; + print '>'.$label.''; + print $extrafields->showInputField($key,$value); + print ''."\n"; + } } } @@ -736,11 +743,18 @@ else foreach($extrafields->attribute_label as $key=>$label) { $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$object->array_options["options_".$key]); - print 'attribute_required[$key])) print ' class="fieldrequired"'; - print '>'.$label.''; - print $extrafields->showInputField($key,$value); - print "\n"; + if ($extrafields->attribute_type[$key] == 'separate') + { + print $extrafields->showSeparator($key); + } + else + { + print 'attribute_required[$key])) print ' class="fieldrequired"'; + print '>'.$label.''; + print $extrafields->showInputField($key,$value); + print "\n"; + } } } @@ -948,9 +962,16 @@ else foreach($extrafields->attribute_label as $key=>$label) { $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:(isset($object->array_options['options_'.$key])?$object->array_options['options_'.$key]:'')); - print ''.$label.''; - print $extrafields->showOutputField($key,$value); - print "\n"; + if ($extrafields->attribute_type[$key] == 'separate') + { + print $extrafields->showSeparator($key); + } + else + { + print ''.$label.''; + print $extrafields->showOutputField($key,$value); + print "\n"; + } } } diff --git a/htdocs/contact/list.php b/htdocs/contact/list.php index e2832299ad4..a6108ab9e8e 100755 --- a/htdocs/contact/list.php +++ b/htdocs/contact/list.php @@ -3,6 +3,7 @@ * Copyright (C) 2003 Eric Seigne * Copyright (C) 2004-2012 Laurent Destailleur * Copyright (C) 2005-2012 Regis Houssin + * Copyright (C) 2013 Raphaël Doursenaud * * 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 @@ -80,10 +81,6 @@ else if ($type == "o") $titre.=' ('.$langs->trans("OthersNotLinkedToThirdParty").')'; $urlfiche=""; } -if ($view == 'phone') { $text=" (Vue Telephones)"; } -if ($view == 'mail') { $text=" (Vue EMail)"; } -if ($view == 'recent') { $text=" (Recents)"; } -if (! empty($text)) $titre.= " $text"; if (GETPOST('button_removefilter')) { @@ -200,7 +197,11 @@ else if ($type == "p") // filtre sur type } if ($sall) { - $sql .= " AND (p.lastname LIKE '%".$db->escape($sall)."%' OR p.firstname LIKE '%".$db->escape($sall)."%' OR p.email LIKE '%".$db->escape($sall)."%')"; + // For natural search + $scrit = explode(' ', $sall); + foreach ($scrit as $crit) { + $sql .= " AND (p.lastname LIKE '%".$db->escape($crit)."%' OR p.firstname LIKE '%".$db->escape($crit)."%' OR p.email LIKE '%".$db->escape($crit)."%')"; + } } if (! empty($socid)) { @@ -260,17 +261,10 @@ if ($result) print_liste_field_titre($langs->trans("Firstname"),$_SERVER["PHP_SELF"],"p.firstname", $begin, $param, '', $sortfield,$sortorder); print_liste_field_titre($langs->trans("PostOrFunction"),$_SERVER["PHP_SELF"],"p.poste", $begin, $param, '', $sortfield,$sortorder); if (empty($conf->global->SOCIETE_DISABLE_CONTACTS)) print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom", $begin, $param, '', $sortfield,$sortorder); - if ($view == 'phone') - { - print_liste_field_titre($langs->trans("Phone"),$_SERVER["PHP_SELF"],"p.phone", $begin, $param, '', $sortfield,$sortorder); - print_liste_field_titre($langs->trans("Mobile"),$_SERVER["PHP_SELF"],"p.phone_mob", $begin, $param, '', $sortfield,$sortorder); - print_liste_field_titre($langs->trans("Fax"),$_SERVER["PHP_SELF"],"p.fax", $begin, $param, '', $sortfield,$sortorder); - } - else - { - print_liste_field_titre($langs->trans("Phone"),$_SERVER["PHP_SELF"],"p.phone", $begin, $param, '', $sortfield,$sortorder); - print_liste_field_titre($langs->trans("EMail"),$_SERVER["PHP_SELF"],"p.email", $begin, $param, '', $sortfield,$sortorder); - } + print_liste_field_titre($langs->trans("Phone"),$_SERVER["PHP_SELF"],"p.phone", $begin, $param, '', $sortfield,$sortorder); + print_liste_field_titre($langs->trans("Mobile"),$_SERVER["PHP_SELF"],"p.phone_mob", $begin, $param, '', $sortfield,$sortorder); + print_liste_field_titre($langs->trans("Fax"),$_SERVER["PHP_SELF"],"p.fax", $begin, $param, '', $sortfield,$sortorder); + print_liste_field_titre($langs->trans("EMail"),$_SERVER["PHP_SELF"],"p.email", $begin, $param, '', $sortfield,$sortorder); print_liste_field_titre($langs->trans("DateModificationShort"),$_SERVER["PHP_SELF"],"p.tms", $begin, $param, 'align="center"', $sortfield,$sortorder); print_liste_field_titre($langs->trans("ContactVisibility"),$_SERVER["PHP_SELF"],"p.priv", $begin, $param, 'align="center"', $sortfield,$sortorder); print ' '; @@ -293,27 +287,18 @@ if ($result) print ''; print ''; } - if ($view == 'phone') - { - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - } - else - { - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - } + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; print ' '; print ''; $selectarray=array('0'=>$langs->trans("ContactPublic"),'1'=>$langs->trans("ContactPrivate")); @@ -365,22 +350,14 @@ if ($result) print ''; } - if ($view == 'phone') - { - // Phone - print ''.dol_print_phone($obj->phone,$obj->country_code,$obj->cidp,$obj->socid,'AC_TEL').''; - // Phone mobile - print ''.dol_print_phone($obj->phone_mobile,$obj->country_code,$obj->cidp,$obj->socid,'AC_TEL').''; - // Fax - print ''.dol_print_phone($obj->fax,$obj->country_code,$obj->cidp,$obj->socid,'AC_TEL').''; - } - else - { - // Phone - print ''.dol_print_phone($obj->phone,$obj->country_code,$obj->cidp,$obj->socid,'AC_TEL').''; - // EMail - print ''.dol_print_email($obj->email,$obj->cidp,$obj->socid,'AC_EMAIL',18).''; - } + // Phone + print ''.dol_print_phone($obj->phone,$obj->country_code,$obj->cidp,$obj->socid,'AC_TEL').''; + // Phone mobile + print ''.dol_print_phone($obj->phone_mobile,$obj->country_code,$obj->cidp,$obj->socid,'AC_TEL').''; + // Fax + print ''.dol_print_phone($obj->fax,$obj->country_code,$obj->cidp,$obj->socid,'AC_TEL').''; + // EMail + print ''.dol_print_email($obj->email,$obj->cidp,$obj->socid,'AC_EMAIL',18).''; // Date print ''.dol_print_date($db->jdate($obj->tms),"day").''; diff --git a/htdocs/contrat/class/contrat.class.php b/htdocs/contrat/class/contrat.class.php index d005396d829..398f30dd100 100644 --- a/htdocs/contrat/class/contrat.class.php +++ b/htdocs/contrat/class/contrat.class.php @@ -649,14 +649,16 @@ class Contrat extends CommonObject // Insert contract $sql = "INSERT INTO ".MAIN_DB_PREFIX."contrat (datec, fk_soc, fk_user_author, date_contrat,"; $sql.= " fk_commercial_signature, fk_commercial_suivi, fk_projet,"; - $sql.= " ref, entity)"; + $sql.= " ref, entity, note, note_public)"; $sql.= " VALUES (".$this->db->idate($now).",".$this->socid.",".$user->id; $sql.= ",".$this->db->idate($this->date_contrat); $sql.= ",".($this->commercial_signature_id>0?$this->commercial_signature_id:"NULL"); $sql.= ",".($this->commercial_suivi_id>0?$this->commercial_suivi_id:"NULL"); - $sql.= ",".($this->fk_projet>0?$this->fk_projet:"NULL"); + $sql.= ",".($this->fk_project>0?$this->fk_project:"NULL"); $sql.= ", ".(dol_strlen($this->ref)<=0 ? "null" : "'".$this->ref."'"); $sql.= ", ".$conf->entity; + $sql.= ", ".(!empty($this->note)?("'".$this->db->escape($this->note)."'"):"NULL"); + $sql.= ", ".(!empty($this->note_public)?("'".$this->db->escape($this->note_public)."'"):"NULL"); $sql.= ")"; $resql=$this->db->query($sql); if ($resql) @@ -694,6 +696,12 @@ class Contrat extends CommonObject if (! $error) { + // Add linked object + if (! $error && $this->origin && $this->origin_id) + { + $ret = $this->add_object_linked(); + if (! $ret) dol_print_error($this->db); + } $this->db->commit(); return $this->id; } diff --git a/htdocs/contrat/fiche.php b/htdocs/contrat/fiche.php index ac56afab3ca..de9ce68e6b3 100644 --- a/htdocs/contrat/fiche.php +++ b/htdocs/contrat/fiche.php @@ -176,27 +176,158 @@ if ($action == 'add' && $user->rights->contrat->creer) if (! $error) { - $object->socid = $socid; + $object->socid = $socid; $object->date_contrat = $datecontrat; $object->commercial_suivi_id = GETPOST('commercial_suivi_id','int'); $object->commercial_signature_id = GETPOST('commercial_signature_id','int'); $object->note = GETPOST('note','alpha'); + $object->note_public = GETPOST('note_public','alpha'); $object->fk_project = GETPOST('projectid','int'); $object->remise_percent = GETPOST('remise_percent','alpha'); $object->ref = GETPOST('ref','alpha'); - $result = $object->create($user,$langs,$conf); - if ($result > 0) - { - header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); - exit; - } - else { - $mesg='
'.$object->error.'
'; - } - $action='create'; + // If creation from another object of another module (Example: origin=propal, originid=1) + if ($_POST['origin'] && $_POST['originid']) + { + // Parse element/subelement (ex: project_task) + $element = $subelement = $_POST['origin']; + if (preg_match('/^([^_]+)_([^_]+)/i',$_POST['origin'],$regs)) + { + $element = $regs[1]; + $subelement = $regs[2]; + } + + // For compatibility + if ($element == 'order') { $element = $subelement = 'commande'; } + if ($element == 'propal') { $element = 'comm/propal'; $subelement = 'propal'; } + + $object->origin = $_POST['origin']; + $object->origin_id = $_POST['originid']; + + // Possibility to add external linked objects with hooks + $object->linked_objects[$object->origin] = $object->origin_id; + if (is_array($_POST['other_linked_objects']) && ! empty($_POST['other_linked_objects'])) + { + $object->linked_objects = array_merge($object->linked_objects, $_POST['other_linked_objects']); + } + + $id = $object->create($user); + if ($id < 0) { + $mesg='
'.$object->error.'
'; + } + + if ($id > 0) + { + dol_include_once('/'.$element.'/class/'.$subelement.'.class.php'); + + $classname = ucfirst($subelement); + $srcobject = new $classname($db); + + dol_syslog("Try to find source object origin=".$object->origin." originid=".$object->origin_id." to add lines"); + $result=$srcobject->fetch($object->origin_id); + if ($result > 0) + { + $srcobject->fetch_thirdparty(); + $lines = $srcobject->lines; + if (empty($lines) && method_exists($srcobject,'fetch_lines')) $lines = $srcobject->fetch_lines(); + + $fk_parent_line=0; + $num=count($lines); + + for ($i=0;$i<$num;$i++) + { + $product_type=($lines[$i]->product_type?$lines[$i]->product_type:0); + + if ($product_type == 1) { //only services + // service prédéfini + if ($lines[$i]->fk_product > 0) + { + $product_static = new Product($db); + + // Define output language + if (! empty($conf->global->MAIN_MULTILANGS) && ! empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) + { + $prod = new Product($db, $lines[$i]->fk_product); + + $outputlangs = $langs; + $newlang=''; + if (empty($newlang) && GETPOST('lang_id')) $newlang=GETPOST('lang_id'); + if (empty($newlang)) $newlang=$srcobject->client->default_lang; + if (! empty($newlang)) + { + $outputlangs = new Translate("",$conf); + $outputlangs->setDefaultLang($newlang); + } + + $label = (! empty($prod->multilangs[$outputlangs->defaultlang]["libelle"])) ? $prod->multilangs[$outputlangs->defaultlang]["libelle"] : $lines[$i]->product_label; + } + else + { + $label = $lines[$i]->product_label; + } + + if ($conf->global->PRODUIT_DESC_IN_FORM) + $desc .= ($lines[$i]->desc && $lines[$i]->desc!=$lines[$i]->libelle)?dol_htmlentitiesbr($lines[$i]->desc):''; + } + else { + $desc = dol_htmlentitiesbr($lines[$i]->desc); + } + + $result = $object->addline( + $desc, + $lines[$i]->subprice, + $lines[$i]->qty, + $lines[$i]->tva_tx, + $lines[$i]->localtax1_tx, + $lines[$i]->localtax2_tx, + $lines[$i]->fk_product, + $lines[$i]->remise_percent, + $date_start =0, + $date_end =0, + 'HT', + 0, + $lines[$i]->info_bits, + $lines[$i]->fk_fournprice, + $lines[$i]->pa_ht + ); + + if ($result < 0) + { + $error++; + break; + } + + } + } + + } + else + { + $mesg=$srcobject->error; + $error++; + } + } + else + { + $mesg=$object->error; + $error++; + } + } + else + { + $result = $object->create($user,$langs,$conf); + if ($result > 0) + { + header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); + exit; + } + else { + $mesg='
'.$object->error.'
'; + } + $action='create'; + } } } @@ -622,6 +753,51 @@ if ($action == 'create') $soc = new Societe($db); if ($socid>0) $soc->fetch($socid); + if (GETPOST('origin') && GETPOST('originid')) + { + // Parse element/subelement (ex: project_task) + $element = $subelement = GETPOST('origin'); + if (preg_match('/^([^_]+)_([^_]+)/i',GETPOST('origin'),$regs)) + { + $element = $regs[1]; + $subelement = $regs[2]; + } + + if ($element == 'project') + { + $projectid=GETPOST('originid'); + } + else + { + // For compatibility + if ($element == 'order' || $element == 'commande') { $element = $subelement = 'commande'; } + if ($element == 'propal') { $element = 'comm/propal'; $subelement = 'propal'; } + + dol_include_once('/'.$element.'/class/'.$subelement.'.class.php'); + + $classname = ucfirst($subelement); + $objectsrc = new $classname($db); + $objectsrc->fetch(GETPOST('originid')); + if (empty($objectsrc->lines) && method_exists($objectsrc,'fetch_lines')) $objectsrc->fetch_lines(); + $objectsrc->fetch_thirdparty(); + + $projectid = (!empty($objectsrc->fk_project)?$objectsrc->fk_project:''); + + $soc = $objectsrc->client; + + $note_private = (! empty($objectsrc->note) ? $objectsrc->note : (! empty($objectsrc->note_private) ? $objectsrc->note_private : '')); + $note_public = (! empty($objectsrc->note_public) ? $objectsrc->note_public : ''); + + // Object source contacts list + $srccontactslist = $objectsrc->liste_contact(-1,'external',1); + } + } + else { + $projectid = GETPOST('projectid','int'); + $note_private = GETPOST("note"); + $note_public = GETPOST("note_public"); + } + $object->date_contrat = dol_now(); $numct = $object->getNextNumRef($soc); @@ -651,7 +827,7 @@ if ($action == 'create') else { print ''; - print $form->select_company('','socid','s.client = 1',1); + print $form->select_company('','socid','s.client = 1 OR s.client = 3',1); print ''; } print ''."\n"; @@ -687,18 +863,18 @@ if ($action == 'create') if (! empty($conf->projet->enabled)) { print ''.$langs->trans("Project").''; - select_projects($soc->id,GETPOST("projectid"),"projectid"); + select_projects($soc->id,$projectid,"projectid"); print ""; } print ''.$langs->trans("NotePublic").''; require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $doleditor=new DolEditor('note_public', GETPOST('note_public'), '', '100', 'dolibarr_notes', 'In', 1, true, true, ROWS_3, 70); + $doleditor=new DolEditor('note_public', $note_public, '', '100', 'dolibarr_notes', 'In', 1, true, true, ROWS_3, 70); print $doleditor->Create(1); /* print ''; */ @@ -706,11 +882,11 @@ if ($action == 'create') { print ''.$langs->trans("NotePrivate").''; require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $doleditor=new DolEditor('note', GETPOST('note'), '', '100', 'dolibarr_notes', 'In', 1, true, true, ROWS_3, 70); + $doleditor=new DolEditor('note', $note_private, '', '100', 'dolibarr_notes', 'In', 1, true, true, ROWS_3, 70); print $doleditor->Create(1); /* print '';*/ print ''; } @@ -721,6 +897,12 @@ if ($action == 'create') print "\n"; + if (is_object($objectsrc)) + { + print ''; + print ''; + } + print '
'; print "\n"; diff --git a/htdocs/contrat/index.php b/htdocs/contrat/index.php index cdc0de87bf5..88220fa7e29 100644 --- a/htdocs/contrat/index.php +++ b/htdocs/contrat/index.php @@ -66,9 +66,10 @@ llxHeader(); print_fiche_titre($langs->trans("ContractsArea")); -print ''; +//print '
'; +//print '
'; +print '
'; -print '
'; // Search contract if (! empty($conf->contrat->enabled)) @@ -284,7 +285,9 @@ if (! empty($conf->contrat->enabled) && $user->rights->contrat->lire) } } -print ''; + +//print ''; +print '
'; // Last modified contracts @@ -599,9 +602,9 @@ else dol_print_error($db); } -print '
'; -print '
'; +//print ''; +print '
'; llxFooter(); diff --git a/htdocs/core/ajax/ajaxdirpreview.php b/htdocs/core/ajax/ajaxdirpreview.php index 1af2615a89a..ef4d976d4d7 100644 --- a/htdocs/core/ajax/ajaxdirpreview.php +++ b/htdocs/core/ajax/ajaxdirpreview.php @@ -241,6 +241,16 @@ if ($type == 'directory') $formfile->list_of_autoecmfiles($upload_dir,$filearray,$module,$param,1,'',$user->rights->ecm->upload,1,$textifempty,$maxlengthname,$url); } + else if ($module == 'project') // Auto area for projects + { + $upload_dir = $conf->projet->dir_output; + $filearray=dol_dir_list($upload_dir,"files",1,'',array('^SPECIMEN\.pdf$','^\.','\.meta$','^temp$','^CVS$','^thumbs$'),$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1); + + $param.='&module='.$module; + $textifempty=($section?$langs->trans("NoFileFound"):($showonrightsize=='featurenotyetavailable'?$langs->trans("FeatureNotYetAvailable"):$langs->trans("NoFileFound"))); + + $formfile->list_of_autoecmfiles($upload_dir,$filearray,$module,$param,1,'',$user->rights->ecm->upload,1,$textifempty,$maxlengthname,$url); + } else // Manual area { $relativepath=$ecmdir->getRelativePath(); diff --git a/htdocs/core/class/CMailFile.class.php b/htdocs/core/class/CMailFile.class.php index fd8e38ae3c4..0f80563e293 100644 --- a/htdocs/core/class/CMailFile.class.php +++ b/htdocs/core/class/CMailFile.class.php @@ -62,7 +62,7 @@ class CMailFile var $css; //! Defined css style for body background var $styleCSS; - //! Defined bacckground directly in body tag + //! Defined background directly in body tag var $bodyCSS; // Image @@ -106,9 +106,9 @@ class CMailFile // We define end of line (RFC 821). $this->eol="\r\n"; - // We define end of line for header fields (RFC 822bis section 2.3 says header must contains \r\n). + // We define end of line for header fields (RFC 822bis section 2.3 says header must contains \r\n). $this->eol2="\r\n"; - if (! empty($conf->global->MAIN_FIX_FOR_BUGGED_MTA)) + if (! empty($conf->global->MAIN_FIX_FOR_BUGGED_MTA)) { $this->eol="\n"; $this->eol2="\n"; @@ -256,7 +256,7 @@ class CMailFile if (!empty($css)) { $this->css = $css; - $this->styleCSS = $this->buildCSS(); + $this->buildCSS(); } $msg = $this->html; $msg = $this->checkIfHTML($msg); @@ -308,7 +308,7 @@ class CMailFile if (!empty($css)) { $this->css = $css; - $this->styleCSS = $this->buildCSS(); + $this->buildCSS(); } $msg = $this->html; $msg = $this->checkIfHTML($msg); @@ -551,7 +551,7 @@ class CMailFile /** * Write content of a SMTP request into a dump file (mode = all) * Used for debugging. - * Note that to see full SMTP protocol, you can use tcpdump -w /tmp/smtp -s 2000 port 25" + * Note that to see full SMTP protocol, you can use tcpdump -w /tmp/smtp -s 2000 port 25" * * @return void */ @@ -572,7 +572,7 @@ class CMailFile } elseif ($conf->global->MAIN_MAIL_SENDMODE == 'smtps') { - fputs($fp, $this->smtps->log); + fputs($fp, $this->smtps->log); // this->smtps->log is filled only if MAIN_MAIL_DEBUG was set to on } fclose($fp); @@ -624,7 +624,7 @@ class CMailFile if ($this->css['bgcolor']) { $this->styleCSS.= ' background-color: '.$this->css['bgcolor'].';'; - $this->bodyCSS.= ' BGCOLOR="'.$this->css['bgcolor'].'"'; + $this->bodyCSS.= ' bgcolor="'.$this->css['bgcolor'].'"'; } if ($this->css['bgimage']) { @@ -751,7 +751,7 @@ class CMailFile { $strContent = preg_replace("/\r\n/si", "\n", $strContent); } - + //$strContent = rtrim(chunk_split($strContent)); // Function chunck_split seems bugged $strContent = rtrim(wordwrap($strContent)); diff --git a/htdocs/core/class/commondocgenerator.class.php b/htdocs/core/class/commondocgenerator.class.php index faccaa31545..9561aa288fb 100755 --- a/htdocs/core/class/commondocgenerator.class.php +++ b/htdocs/core/class/commondocgenerator.class.php @@ -185,11 +185,11 @@ abstract class CommonDocGenerator } $array_thirdparty=array_merge($array_thirdparty,array('company_options_'.$key => $object->array_options['options_'.$key])); } - } + } return $array_thirdparty; } - + /** * Define array with couple substitution key => substitution value * @@ -201,7 +201,7 @@ abstract class CommonDocGenerator function get_substitutionarray_propal($object,$outputlangs,$array_key='object') { global $conf; - + $array_propal=array( $array_key.'_id'=>$object->id, $array_key.'_ref'=>$object->ref, @@ -224,14 +224,14 @@ abstract class CommonDocGenerator $array_key.'_note_private'=>$object->note, $array_key.'_note'=>$object->note_public, ); - + // Add vat by rates foreach ($object->lines as $line) { if (empty($array_propal[$array_key.'_total_vat_'.$line->tva_tx])) $array_propal[$array_key.'_total_vat_'.$line->tva_tx]=0; $array_propal[$array_key.'_total_vat_'.$line->tva_tx]+=$line->total_tva; } - + // Retrieve extrafields if(is_array($object->array_options) && count($object->array_options)) { @@ -240,12 +240,12 @@ abstract class CommonDocGenerator $extrafields = new ExtraFields($this->db); $extralabels = $extrafields->fetch_name_optionals_label('propal',true); $object->fetch_optionals($object->id,$extralabels); - + $array_propal = $this->fill_substitutionarray_with_extrafields($object,$array_propal,$extrafields,$array_key,$outputlangs); } return $array_propal; } - + /** * Define array with couple substitution key => substitution value @@ -257,7 +257,7 @@ abstract class CommonDocGenerator function get_substitutionarray_propal_lines($line,$outputlangs) { global $conf; - + return array( 'line_fulldesc'=>doc_getlinedesc($line,$outputlangs), 'line_product_ref'=>$line->product_ref, @@ -274,7 +274,7 @@ abstract class CommonDocGenerator 'line_date_end'=>$line->date_end ); } - + /** * Fill array with couple extrafield key => extrafield value * @@ -309,14 +309,14 @@ abstract class CommonDocGenerator { $object->array_options['options_'.$key] = ($object->array_options['options_'.$key]!="0000-00-00 00:00:00"?dol_print_date($object->array_options['options_'.$key],'dayhour'):''); } - $array_to_fill=array_merge($array_to_fill,array($array_key.'_options_'.$key => $object->array_options['options_'.$key])); + $array_to_fill=array_merge($array_to_fill,array($array_key.'_options_'.$key => $object->array_options['options_'.$key])); } - + return $array_to_fill; - + } - - + + /** * Rect pdf * diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index 50bd564e8d9..79a471a0251 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -1012,13 +1012,13 @@ abstract class CommonObject /** * Save a new position (field rang) for details lines. * You can choose to set position for lines with already a position or lines without any position defined. - * Call this function only for table that contains a field fk_parent_line. * - * @param boolean $renum true to renum all already ordered lines, false to renum only not already ordered lines. - * @param string $rowidorder ASC or DESC + * @param boolean $renum true to renum all already ordered lines, false to renum only not already ordered lines. + * @param string $rowidorder ASC or DESC + * @param boolean $fk_parent_line Table with fk_parent_line field or not * @return void */ - function line_order($renum=false, $rowidorder='ASC') + function line_order($renum=false, $rowidorder='ASC', $fk_parent_line=true) { if (! $this->table_element_line) { @@ -1055,7 +1055,8 @@ abstract class CommonObject // We first search all lines that are parent lines (for multilevel details lines) $sql = 'SELECT rowid FROM '.MAIN_DB_PREFIX.$this->table_element_line; $sql.= ' WHERE '.$this->fk_element.' = '.$this->id; - $sql.= ' AND fk_parent_line IS NULL'; + if ($fk_parent_line) + $sql.= ' AND fk_parent_line IS NULL'; $sql.= ' ORDER BY rang ASC, rowid '.$rowidorder; dol_syslog(get_class($this)."::line_order search all parent lines sql=".$sql, LOG_DEBUG); @@ -1130,12 +1131,13 @@ abstract class CommonObject /** * Update a line to have a lower rank * - * @param int $rowid Id of line + * @param int $rowid Id of line + * @param boolean $fk_parent_line Table with fk_parent_line field or not * @return void */ - function line_up($rowid) + function line_up($rowid, $fk_parent_line=true) { - $this->line_order(); + $this->line_order(false, 'ASC', $fk_parent_line); // Get rang of line $rang = $this->getRangOfLine($rowid); @@ -1147,12 +1149,13 @@ abstract class CommonObject /** * Update a line to have a higher rank * - * @param int $rowid Id of line + * @param int $rowid Id of line + * @param boolean $fk_parent_line Table with fk_parent_line field or not * @return void */ - function line_down($rowid) + function line_down($rowid, $fk_parent_line=true) { - $this->line_order(); + $this->line_order(false, 'ASC', $fk_parent_line); // Get rang of line $rang = $this->getRangOfLine($rowid); @@ -1553,6 +1556,9 @@ abstract class CommonObject $i++; } + // Add revenue stamp to total + $this->total_ttc += isset($this->revenuestamp)?$this->revenuestamp:0; + $this->db->free($resql); // Now update global field total_ht, total_ttc and tva @@ -2138,21 +2144,27 @@ abstract class CommonObject $sql = "INSERT INTO ".MAIN_DB_PREFIX.$this->table_element."_extrafields (fk_object"; foreach($this->array_options as $key => $value) { + $attributeKey = substr($key,8); // Remove 'options_' prefix // Add field of attribut - $sql.=",".substr($key,8); // Remove 'options_' prefix + if ($extrafields->attribute_type[$attributeKey] != 'separate') // Only for other type of separate + $sql.=",".$attributeKey; } $sql .= ") VALUES (".$this->id; foreach($this->array_options as $key => $value) { + $attributeKey = substr($key,8); // Remove 'options_' prefix // Add field o fattribut - if ($this->array_options[$key] != '') - { - $sql.=",'".$this->array_options[$key]."'"; - } - else - { - $sql.=",null"; - } + if($extrafields->attribute_type[$attributeKey] != 'separate') // Only for other type of separate) + { + if ($this->array_options[$key] != '') + { + $sql.=",'".$this->array_options[$key]."'"; + } + else + { + $sql.=",null"; + } + } } $sql.=")"; @@ -2689,7 +2701,8 @@ abstract class CommonObject global $form,$bc,$bcdd; $element=$this->element; - $text=''; + + $text=''; $description=''; $type=0; // Show product and description $type=(! empty($line->product_type)?$line->product_type:$line->fk_product_type); @@ -2697,27 +2710,25 @@ abstract class CommonObject if (! empty($line->date_start)) $type=1; // deprecated if (! empty($line->date_end)) $type=1; // deprecated - if ($line->fk_product > 0) - { - $product_static = new Product($this->db); - - $product_static->type=$line->fk_product_type; - $product_static->id=$line->fk_product; - $product_static->ref=$line->ref; - $text=$product_static->getNomUrl(1); - } - // Ligne en mode visu if ($action != 'editline' || $selected != $line->id) { - // Produit + // Product if ($line->fk_product > 0) { - // Define output language + $product_static = new Product($this->db); + + $product_static->type=$line->fk_product_type; + $product_static->id=$line->fk_product; + $product_static->ref=$line->ref; + $text=$product_static->getNomUrl(1); + + // Define output language (TODO Does this works ?) if (! empty($conf->global->MAIN_MULTILANGS) && ! empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { $this->fetch_thirdparty(); $prod = new Product($this->db); + $prod->fetch($line->fk_product); $outputlangs = $langs; $newlang=''; diff --git a/htdocs/core/class/doleditor.class.php b/htdocs/core/class/doleditor.class.php index 9256e08318c..55cc984c12f 100644 --- a/htdocs/core/class/doleditor.class.php +++ b/htdocs/core/class/doleditor.class.php @@ -51,7 +51,7 @@ class DolEditor * @param string $content Content of WYSIWIG field * @param int $width Width in pixel of edit area (auto by default) * @param int $height Height in pixel of edit area (200px by default) - * @param string $toolbarname Name of bar set to use ('Full', 'dolibarr_notes', 'dolibarr_details', 'dolibarr_mailings') + * @param string $toolbarname Name of bar set to use ('Full', 'dolibarr_notes[_encoded]', 'dolibarr_details[_encoded]', 'dolibarr_mailings[_encoded]', ') * @param string $toolbarlocation Where bar is stored : * 'In' each window has its own toolbar * 'Out:name' share toolbar into the div called 'name' @@ -69,6 +69,7 @@ class DolEditor if (! $rows) $rows=round($height/20); if (! $cols) $cols=($width?round($width/6):80); + $shorttoolbarname=preg_replace('/_encoded$/','',$toolbarname); // Name of extended editor to use (FCKEDITOR_EDITORNAME can be 'ckeditor' or 'fckeditor') $defaulteditor='ckeditor'; @@ -97,7 +98,7 @@ class DolEditor $this->editor->Value = $content; $this->editor->Height = $height; if (! empty($width)) $this->editor->Width = $width; - $this->editor->ToolbarSet = $toolbarname; + $this->editor->ToolbarSet = $shorttoolbarname; $this->editor->Config['AutoDetectLanguage'] = 'true'; $this->editor->Config['ToolbarLocation'] = $toolbarlocation ? $toolbarlocation : 'In'; $this->editor->Config['ToolbarStartExpanded'] = $toolbarstartexpanded; @@ -124,7 +125,7 @@ class DolEditor { $this->content = $content; $this->htmlname = $htmlname; - $this->toolbarname = $toolbarname; + $this->toolbarname = $shorttoolbarname; $this->toolbarstartexpanded = $toolbarstartexpanded; $this->rows = max(ROWS_3,$rows); $this->cols = max(40,$cols); @@ -169,9 +170,8 @@ class DolEditor //$skin='office2003'; //$skin='v2'; $skin='kama'; - - if ($this->toolbarname=='dolibarr_mailings') {$htmlencode_force='true';} - else {$htmlencode_force='false';} + + $htmlencode_force=preg_match('/_encoded$/',$this->toolbarname)?'true':'false'; $out.= ''; - $out.= ''; + $out.= ''; } else // In most cases, this is not used. We used instead function with no specific list of colors { @@ -545,7 +605,7 @@ class FormOther }); '; - $out.= ''; //print ''; foreach ($arrayofcolors as $val) { diff --git a/htdocs/core/js/lib_head.js b/htdocs/core/js/lib_head.js index ba2df7195f8..071034b5fcc 100644 --- a/htdocs/core/js/lib_head.js +++ b/htdocs/core/js/lib_head.js @@ -643,16 +643,27 @@ function setConstant(url, code, input, entity) { // Enable another element if (type == "disabled") { $.each(data, function(key, value) { - $("#" + value).removeAttr("disabled"); - if ($("#" + value).hasClass("butActionRefused") == true) { - $("#" + value).removeClass("butActionRefused"); - $("#" + value).addClass("butAction"); + var newvalue=((value.search("^#") < 0 && value.search("^\.") < 0) ? "#" : "") + value; + $(newvalue).removeAttr("disabled"); + if ($(newvalue).hasClass("butActionRefused") == true) { + $(newvalue).removeClass("butActionRefused"); + $(newvalue).addClass("butAction"); } }); + } else if (type == "enabled") { + $.each(data, function(key, value) { + var newvalue=((value.search("^#") < 0 && value.search("^\.") < 0) ? "#" : "") + value; + $(newvalue).attr("disabled", true); + if ($(newvalue).hasClass("butAction") == true) { + $(newvalue).removeClass("butAction"); + $(newvalue).addClass("butActionRefused"); + } + }); // Show another element } else if (type == "showhide" || type == "show") { $.each(data, function(key, value) { - $("#" + value).show(); + var newvalue=((value.search("^#") < 0 && value.search("^\.") < 0) ? "#" : "") + value; + $(newvalue).show(); }); // Set another constant } else if (type == "set") { @@ -687,16 +698,27 @@ function delConstant(url, code, input, entity) { // Disable another element if (type == "disabled") { $.each(data, function(key, value) { - $("#" + value).attr("disabled", true); - if ($("#" + value).hasClass("butAction") == true) { - $("#" + value).removeClass("butAction"); - $("#" + value).addClass("butActionRefused"); + var newvalue=((value.search("^#") < 0 && value.search("^\.") < 0) ? "#" : "") + value; + $(newvalue).attr("disabled", true); + if ($(newvalue).hasClass("butAction") == true) { + $(newvalue).removeClass("butAction"); + $(newvalue).addClass("butActionRefused"); } }); + } else if (type == "enabled") { + $.each(data, function(key, value) { + var newvalue=((value.search("^#") < 0 && value.search("^\.") < 0) ? "#" : "") + value; + $(newvalue).removeAttr("disabled"); + if ($(newvalue).hasClass("butActionRefused") == true) { + $(newvalue).removeClass("butActionRefused"); + $(newvalue).addClass("butAction"); + } + }); // Hide another element } else if (type == "showhide" || type == "hide") { $.each(data, function(key, value) { - $("#" + value).hide(); + var newvalue=((value.search("^#") < 0 && value.search("^\.") < 0) ? "#" : "") + value; + $(newvalue).hide(); }); // Delete another constant } else if (type == "del") { diff --git a/htdocs/core/lib/admin.lib.php b/htdocs/core/lib/admin.lib.php index cf817ae494d..978f0896f65 100644 --- a/htdocs/core/lib/admin.lib.php +++ b/htdocs/core/lib/admin.lib.php @@ -250,7 +250,7 @@ function run_sql($sqlfile,$silent=1,$entity='',$usesavepoint=1,$handler='',$oker $newsql=preg_replace('/__ENTITY__/i',(!empty($entity)?$entity:$conf->entity),$sql); // Ajout trace sur requete (eventuellement a commenter si beaucoup de requetes) - if (! $silent) print ''.$langs->trans("Request").' '.($i+1)." sql='".$newsql."'\n"; + if (! $silent) print ''.$langs->trans("Request").' '.($i+1)." sql='".dol_htmlentities($newsql,ENT_NOQUOTES)."'\n"; dol_syslog('Admin.lib::run_sql Request '.($i+1).' sql='.$newsql, LOG_DEBUG); // Replace for encrypt data @@ -519,7 +519,7 @@ function security_prepare_head() $h++; $head[$h][0] = DOL_URL_ROOT."/admin/security_other.php"; - $head[$h][1] = $langs->trans("Miscellanous"); + $head[$h][1] = $langs->trans("Miscellaneous"); $head[$h][2] = 'misc'; $h++; @@ -1153,10 +1153,10 @@ function showModulesExludedForExternal($modules) $moduleconst=$module->const_name; $modulename=strtolower($module->name); //print 'modulename='.$modulename; - + //if (empty($conf->global->$moduleconst)) continue; if (! in_array($modulename,$listofmodules)) continue; - + if ($i > 0) $text.=', '; else $text.=' '; $i++; diff --git a/htdocs/core/lib/ajax.lib.php b/htdocs/core/lib/ajax.lib.php index 64b1339a944..f22ae595a77 100644 --- a/htdocs/core/lib/ajax.lib.php +++ b/htdocs/core/lib/ajax.lib.php @@ -353,12 +353,13 @@ function ajax_combobox($htmlname, $event=array(), $minLengthToAutocomplete=0) /** * On/off button for constant * - * @param string $code Name of constant - * @param array $input Input element (enable/disable or show/hide another element, set/del another constant) - * @param int $entity Entity to set + * @param string $code Name of constant + * @param array $input Array of type->list of CSS element to switch. Example: array('disabled'=>array(0=>'cssid')) + * @param int $entity Entity to set + * @param int $revertonoff Revert on/off * @return void */ -function ajax_constantonoff($code, $input=array(), $entity=false) +function ajax_constantonoff($code, $input=array(), $entity=null, $revertonoff=0) { global $conf, $langs; @@ -399,8 +400,8 @@ function ajax_constantonoff($code, $input=array(), $entity=false) '."\n"; $out.= ''; - $out.= ''.img_picto($langs->trans("Disabled"),'switch_off').''; - $out.= ''.img_picto($langs->trans("Enabled"),'switch_on').''; + $out.= ''.($revertonoff?img_picto($langs->trans("Enabled"),'switch_on'):img_picto($langs->trans("Disabled"),'switch_off')).''; + $out.= ''.($revertonoff?img_picto($langs->trans("Disabled"),'switch_off'):img_picto($langs->trans("Enabled"),'switch_on')).''; $out.="\n"; return $out; diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php index 8ba3a161712..b7d012cc51a 100644 --- a/htdocs/core/lib/company.lib.php +++ b/htdocs/core/lib/company.lib.php @@ -90,6 +90,11 @@ function societe_prepare_head($object) $head[$h][2] = 'note'; $h++; + $head[$h][0] = DOL_URL_ROOT.'/societe/consumption.php?socid='.$object->id; + $head[$h][1] = $langs->trans("Referers"); + $head[$h][2] = 'consumption'; + $h++; + // Attached files $head[$h][0] = DOL_URL_ROOT.'/societe/document.php?socid='.$object->id; $head[$h][1] = $langs->trans("Documents"); @@ -175,7 +180,7 @@ function societe_admin_prepare_head($object) $head = array(); $head[$h][0] = DOL_URL_ROOT.'/societe/admin/societe.php'; - $head[$h][1] = $langs->trans("Miscellanous"); + $head[$h][1] = $langs->trans("Miscellaneous"); $head[$h][2] = 'general'; $h++; diff --git a/htdocs/core/lib/cron.lib.php b/htdocs/core/lib/cron.lib.php new file mode 100644 index 00000000000..0ba077e1a3b --- /dev/null +++ b/htdocs/core/lib/cron.lib.php @@ -0,0 +1,76 @@ + + * + * 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 cron/lib/cron.lib.php + * \brief Function for module cron + * \ingroup cron + */ + +/** + * Return array of tabs to used on pages to setup cron module. + * + * @return array Array of tabs + */ +function cronadmin_prepare_head() +{ + global $langs, $conf, $user; + $h = 0; + $head = array(); + + $head[$h][0] = dol_buildpath('/cron/admin/cron.php', 1); + $head[$h][1] = $langs->trans("Miscellaneous"); + $head[$h][2] = 'setup'; + $h++; + + complete_head_from_modules($conf, $langs, $object, $head, $h, 'cronadmin'); + + complete_head_from_modules($conf, $langs, $object, $head, $h, 'cronadmin', 'remove'); + + + return $head; +} + +/** + * Return array of tabs to used on a cron job + * + * @param Object $object Object cron + * @return array Array of tabs + */ +function cron_prepare_head($object) +{ + global $langs, $conf, $user; + $h = 0; + $head = array(); + + $head[$h][0] = dol_buildpath('/cron/card.php', 1).'?id='.$object->id; + $head[$h][1] = $langs->trans("CronTask"); + $head[$h][2] = 'card'; + $h++; + + $head[$h][0] = dol_buildpath('/cron/info.php', 1).'?id='.$object->id; + $head[$h][1] = $langs->trans("Info"); + $head[$h][2] = 'info'; + $h++; + + complete_head_from_modules($conf, $langs, $object, $head, $h, 'cron'); + + complete_head_from_modules($conf, $langs, $object, $head, $h, 'cron', 'remove'); + + return $head; +} diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 3acf7983fe3..835e5a36ee1 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -2380,7 +2380,7 @@ function load_fiche_titre($titre, $mesg='', $picto='title.png', $pictoisfullpath $return.= ''; if (dol_strlen($mesg)) { - $return.= ''.$mesg.''; + $return.= ''.$mesg.''; } $return.= ''."\n"; @@ -2529,7 +2529,7 @@ function print_fleche_navigation($page,$file,$options='',$nextpage=0,$betweenarr * * @param float $rate Rate value to format (19.6 19,6 19.6% 19,6%,...) * @param boolean $addpercent Add a percent % sign in output - * @param int $info_bits Miscellanous information on vat (0=Default, 1=French NPR vat) + * @param int $info_bits Miscellaneous information on vat (0=Default, 1=French NPR vat) * @param int $usestarfornpr 1=Use '*' for NPR vat rate intead of MAIN_LABEL_MENTION_NPR * @return string String with formated amounts (19,6 or 19,6% or 8.5% NPR or 8.5% *) */ @@ -2554,20 +2554,21 @@ function vatrate($rate,$addpercent=false,$info_bits=0,$usestarfornpr=0) /** - * Fonction qui formate un montant pour visualisation - * Fonction utilisee dans les pdf et les pages html + * Function to format a value into an amount for visual output + * Function used into PDF and HTML pages * - * @param float $amount Montant a formater - * @param string $form Type de formatage, html ou pas (par defaut) - * @param Translate $outlangs Objet langs pour formatage text - * @param int $trunc 1=Tronque affichage si trop de decimales,0=Force le non troncage - * @param int $rounding Minimum number of decimal. If not defined we use min($conf->global->MAIN_MAX_DECIMALS_UNIT,$conf->global->MAIN_MAX_DECIMALS_TOTAL) + * @param float $amount Amount to format + * @param string $form Type of format, HTML or not (not by default) + * @param Translate $outlangs Object langs for output + * @param int $trunc 1=Truncate if there is too much decimals (default), 0=Does not truncate + * @param int $rounding Minimum number of decimal to show. If not defined we use min($conf->global->MAIN_MAX_DECIMALS_UNIT,$conf->global->MAIN_MAX_DECIMALS_TOTAL) * @param int $forcerounding Force the number of decimal + * @param string $currency_code To add currency symbol (''=add nothing, 'XXX'=add currency symbols for XXX currency) * @return string Chaine avec montant formate * * @see price2num Revert function of price */ -function price($amount, $form=0, $outlangs='', $trunc=1, $rounding=-1, $forcerounding=-1) +function price($amount, $form=0, $outlangs='', $trunc=1, $rounding=-1, $forcerounding=-1, $currency_code='') { global $langs,$conf; @@ -2584,8 +2585,8 @@ function price($amount, $form=0, $outlangs='', $trunc=1, $rounding=-1, $forcerou // If $outlangs not forced, we use use language if (! is_object($outlangs)) $outlangs=$langs; - if ($outlangs->trans("SeparatorDecimal") != "SeparatorDecimal") $dec=$outlangs->trans("SeparatorDecimal"); - if ($outlangs->trans("SeparatorThousand")!= "SeparatorThousand") $thousand=$outlangs->trans("SeparatorThousand"); + if ($outlangs->transnoentitiesnoconv("SeparatorDecimal") != "SeparatorDecimal") $dec=$outlangs->transnoentitiesnoconv("SeparatorDecimal"); + if ($outlangs->transnoentitiesnoconv("SeparatorThousand")!= "SeparatorThousand") $thousand=$outlangs->transnoentitiesnoconv("SeparatorThousand"); if ($thousand == 'None') $thousand=''; //print "amount=".$amount." html=".$form." trunc=".$trunc." nbdecimal=".$nbdecimal." dec='".$dec."' thousand='".$thousand."'
"; @@ -2615,15 +2616,21 @@ function price($amount, $form=0, $outlangs='', $trunc=1, $rounding=-1, $forcerou if ($forcerounding >= 0) $nbdecimal = $forcerounding; // Format number + $output=number_format($amount, $nbdecimal, $dec, $thousand); if ($form) { - $output=preg_replace('/\s/',' ',number_format($amount, $nbdecimal, $dec, $thousand)); + $output=preg_replace('/\s/',' ',$output); + $output=preg_replace('/\'/',''',$output); } - else + // Add symbol of currency if requested + $cursymbolbefore=$cursymbolafter=''; + if ($currency_code) { - $output=number_format($amount, $nbdecimal, $dec, $thousand); + $listofcurrenciesbefore=array('USD'); + if (in_array($currency_code,$listofcurrenciesbefore)) $cursymbolbefore.=$outlangs->getCurrencySymbol($currency_code); + else $cursymbolafter.=$outlangs->getCurrencySymbol($currency_code); } - $output.=$end; + $output.=$cursymbolbefore.$end.$cursymbolafter; return $output; } @@ -2651,15 +2658,15 @@ function price2num($amount,$rounding='',$alreadysqlnb=0) // Numbers must be '1234.56' // Decimal delimiter for PHP and database SQL requests must be '.' $dec=','; $thousand=' '; - if ($langs->trans("SeparatorDecimal") != "SeparatorDecimal") $dec=$langs->trans("SeparatorDecimal"); - if ($langs->trans("SeparatorThousand")!= "SeparatorThousand") $thousand=$langs->trans("SeparatorThousand"); + if ($langs->transnoentitiesnoconv("SeparatorDecimal") != "SeparatorDecimal") $dec=$langs->transnoentitiesnoconv("SeparatorDecimal"); + if ($langs->transnoentitiesnoconv("SeparatorThousand")!= "SeparatorThousand") $thousand=$langs->transnoentitiesnoconv("SeparatorThousand"); if ($thousand == 'None') $thousand=''; //print "amount=".$amount." html=".$form." trunc=".$trunc." nbdecimal=".$nbdecimal." dec='".$dec."' thousand='".$thousand."'
"; // Convert value to universal number format (no thousand separator, '.' as decimal separator) if ($alreadysqlnb != 1) // If not a PHP number or unknown, we change format { - //print 'PP'.$amount.' - '.$dec.' - '.$thousand.'
'; + //print 'PP'.$amount.' - '.$dec.' - '.$thousand.' - '.intval($amount).'
'; // Convert amount to format with dolibarr dec and thousand (this is because PHP convert a number // to format defined by LC_NUMERIC after a calculation and we want source format to be like defined by Dolibarr setup. @@ -2776,7 +2783,7 @@ function get_localtax($tva, $local, $thirdparty_buyer="", $thirdparty_seller="") * Get type and rate of localtaxes for a particular vat rate/country fo thirdparty * * @param real $vatrate VAT Rate - * @param int $local Number of localtax (1 / 2) + * @param int $local Number of localtax (1 or 2, or 0 to return 1+2) * @param int $thirdparty company object * @return array array(Type of local tax (1 to 7 / 0 if not found), rate or amount of localtax) * @deprecated TODO We should remove this function by storing rate and type into detail lines. @@ -2799,6 +2806,7 @@ function getLocalTaxesFromRate($vatrate, $local, $thirdparty) $obj = $db->fetch_object($resql); if ($local == 1) return array($obj->localtax1_type, $obj->localtax1); elseif ($local == 2) return array($obj->localtax2_type, $obj->localtax2); + else return array($obj->localtax1_type, $obj->localtax1, $obj->localtax2_type, $obj->localtax2); } return 0; diff --git a/htdocs/core/lib/invoice.lib.php b/htdocs/core/lib/invoice.lib.php index 03b8fa7240d..b0d564c88d5 100644 --- a/htdocs/core/lib/invoice.lib.php +++ b/htdocs/core/lib/invoice.lib.php @@ -112,7 +112,7 @@ function invoice_admin_prepare_head($object) $head = array(); $head[$h][0] = DOL_URL_ROOT.'/admin/facture.php'; - $head[$h][1] = $langs->trans("Miscellanous"); + $head[$h][1] = $langs->trans("Miscellaneous"); $head[$h][2] = 'general'; $h++; diff --git a/htdocs/core/lib/member.lib.php b/htdocs/core/lib/member.lib.php index e4ff07210e8..8ec1fdd4070 100644 --- a/htdocs/core/lib/member.lib.php +++ b/htdocs/core/lib/member.lib.php @@ -116,7 +116,7 @@ function member_admin_prepare_head() $head = array(); $head[$h][0] = DOL_URL_ROOT.'/adherents/admin/adherent.php'; - $head[$h][1] = $langs->trans("Miscellanous"); + $head[$h][1] = $langs->trans("Miscellaneous"); $head[$h][2] = 'general'; $h++; diff --git a/htdocs/core/lib/pdf.lib.php b/htdocs/core/lib/pdf.lib.php index ddd38a8484d..65816d52309 100644 --- a/htdocs/core/lib/pdf.lib.php +++ b/htdocs/core/lib/pdf.lib.php @@ -291,9 +291,20 @@ function pdf_build_address($outputlangs,$sourcecompany,$targetcompany='',$target if ($usecontact) { $stringaddress .= ($stringaddress ? "\n" : '' ).$outputlangs->convToOutputCharset($targetcontact->getFullName($outputlangs,1)); - $stringaddress .= ($stringaddress ? "\n" : '' ).$outputlangs->convToOutputCharset(dol_format_address($targetcontact))."\n"; + + if (!empty($targetcontact->address)) { + $stringaddress .= ($stringaddress ? "\n" : '' ).$outputlangs->convToOutputCharset(dol_format_address($targetcontact))."\n"; + }else { + $stringaddress .= ($stringaddress ? "\n" : '' ).$outputlangs->convToOutputCharset(dol_format_address($targetcompany))."\n"; + } // Country - if ($targetcontact->country_code && $targetcontact->country_code != $sourcecompany->country_code) $stringaddress.=$outputlangs->convToOutputCharset($outputlangs->transnoentitiesnoconv("Country".$targetcontact->country_code))."\n"; + if (!empty($targetcontact->country_code) && $targetcontact->country_code != $sourcecompany->country_code) { + $stringaddress.=$outputlangs->convToOutputCharset($outputlangs->transnoentitiesnoconv("Country".$targetcontact->country_code))."\n"; + } + else if (empty($targetcontact->country_code) && !empty($targetcompany->country_code) && ($targetcompany->country_code != $sourcecompany->country_code)) { + $stringaddress.=$outputlangs->convToOutputCharset($outputlangs->transnoentitiesnoconv("Country".$targetcompany->country_code))."\n"; + } + if (! empty($conf->global->MAIN_PDF_ADDALSOTARGETDETAILS)) { @@ -311,7 +322,7 @@ function pdf_build_address($outputlangs,$sourcecompany,$targetcompany='',$target { $stringaddress .= ($stringaddress ? "\n" : '' ).$outputlangs->convToOutputCharset(dol_format_address($targetcompany))."\n"; // Country - if ($targetcompany->country_code && $targetcompany->country_code != $sourcecompany->country_code) $stringaddress.=$outputlangs->convToOutputCharset($outputlangs->transnoentitiesnoconv("Country".$targetcompany->country_code))."\n"; + if (!empty($targetcompany->country_code) && $targetcompany->country_code != $sourcecompany->country_code) $stringaddress.=$outputlangs->convToOutputCharset($outputlangs->transnoentitiesnoconv("Country".$targetcompany->country_code))."\n"; if (! empty($conf->global->MAIN_PDF_ADDALSOTARGETDETAILS)) { @@ -440,11 +451,14 @@ function pdf_bank(&$pdf,$outputlangs,$curx,$cury,$account,$onlynumber=0,$default { global $mysoc, $conf; + $diffsizetitle=(empty($conf->global->PDF_DIFFSIZE_TITLE)?3:$conf->global->PDF_DIFFSIZE_TITLE); + $diffsizecontent=(empty($conf->global->PDF_DIFFSIZE_CONTENT)?4:$conf->global->PDF_DIFFSIZE_CONTENT); + $pdf->SetXY($curx, $cury); if (empty($onlynumber)) { - $pdf->SetFont('','B',$default_font_size - 3); + $pdf->SetFont('','B',$default_font_size - $diffsizetitle); $pdf->MultiCell(100, 3, $outputlangs->transnoentities('PaymentByTransferOnThisBankAccount').':', 0, 'L', 0); $cury+=4; } @@ -461,7 +475,7 @@ function pdf_bank(&$pdf,$outputlangs,$curx,$cury,$account,$onlynumber=0,$default if (empty($onlynumber)) { - $pdf->SetFont('','',$default_font_size - 4); + $pdf->SetFont('','',$default_font_size - $diffsizecontent); $pdf->SetXY($curx, $cury); $pdf->MultiCell(100, 3, $outputlangs->transnoentities("Bank").': ' . $outputlangs->convToOutputCharset($account->bank), 0, 'L', 0); $cury+=3; @@ -533,15 +547,17 @@ function pdf_bank(&$pdf,$outputlangs,$curx,$cury,$account,$onlynumber=0,$default } else { - $pdf->SetFont('','B',6); + $pdf->SetFont('','B',$default_font_size - $diffsizecontent); $pdf->SetXY($curx, $cury); $pdf->MultiCell(100, 3, $outputlangs->transnoentities("Bank").': ' . $outputlangs->convToOutputCharset($account->bank), 0, 'L', 0); $cury+=3; - $pdf->SetFont('','B',6); + $pdf->SetFont('','B',$default_font_size - $diffsizecontent); $pdf->SetXY($curx, $cury); $pdf->MultiCell(100, 3, $outputlangs->transnoentities("BankAccountNumber").': ' . $outputlangs->convToOutputCharset($account->number), 0, 'L', 0); $cury+=3; + + if ($diffsizecontent <= 2) $cury+=1; } // Use correct name of bank id according to country @@ -550,23 +566,32 @@ function pdf_bank(&$pdf,$outputlangs,$curx,$cury,$account,$onlynumber=0,$default if ($account->getCountryCode() == 'IN') $ibankey="IFSC"; if ($account->getCountryCode() == 'IN') $bickey="SWIFT"; - $pdf->SetFont('','',6); + $pdf->SetFont('','',$default_font_size - $diffsizecontent); if (empty($onlynumber) && ! empty($account->domiciliation)) { $pdf->SetXY($curx, $cury); $val=$outputlangs->transnoentities("Residence").': ' . $outputlangs->convToOutputCharset($account->domiciliation); $pdf->MultiCell(100, 3, $val, 0, 'L', 0); - $nboflines=dol_nboflines_bis($val,120); - //print $nboflines;exit; - $cury+=($nboflines*2)+2; + //$nboflines=dol_nboflines_bis($val,120); + //$cury+=($nboflines*3)+2; + $tmpy=$pdf->getStringHeight (100, $val); + $cury+=$tmpy; } else if (! $usedetailedbban) $cury+=1; - $pdf->SetXY($curx, $cury); - $pdf->MultiCell(100, 3, $outputlangs->transnoentities($ibankey).': ' . $outputlangs->convToOutputCharset($account->iban), 0, 'L', 0); - $pdf->SetXY($curx, $cury+3); - $pdf->MultiCell(100, 3, $outputlangs->transnoentities($bickey).': ' . $outputlangs->convToOutputCharset($account->bic), 0, 'L', 0); + if (! empty($account->iban)) + { + $pdf->SetXY($curx, $cury); + $pdf->MultiCell(100, 3, $outputlangs->transnoentities($ibankey).': ' . $outputlangs->convToOutputCharset($account->iban), 0, 'L', 0); + $cury+=3; + } + + if (! empty($account->bic)) + { + $pdf->SetXY($curx, $cury); + $pdf->MultiCell(100, 3, $outputlangs->transnoentities($bickey).': ' . $outputlangs->convToOutputCharset($account->bic), 0, 'L', 0); + } return $pdf->getY(); } diff --git a/htdocs/core/lib/price.lib.php b/htdocs/core/lib/price.lib.php index 06b71377c1c..c3af3e2e973 100644 --- a/htdocs/core/lib/price.lib.php +++ b/htdocs/core/lib/price.lib.php @@ -43,7 +43,7 @@ * @param float $uselocaltax2_rate 0=do not use this localtax, >0=apply, -1=autodetect according to seller * @param float $remise_percent_global 0 * @param string $price_base_type HT=on calcule sur le HT, TTC=on calcule sur le TTC - * @param int $info_bits Miscellanous informations on line + * @param int $info_bits Miscellaneous informations on line * @param int $type 0/1=Product/service * @param string $seller Thirdparty seller (we need $seller->country_code property). Provided only if seller is the supplier. * @return result[ 0=total_ht, diff --git a/htdocs/core/lib/propal.lib.php b/htdocs/core/lib/propal.lib.php index d6348bdcb0e..5d65032e421 100644 --- a/htdocs/core/lib/propal.lib.php +++ b/htdocs/core/lib/propal.lib.php @@ -117,7 +117,7 @@ function propal_admin_prepare_head($object) $head = array(); $head[$h][0] = DOL_URL_ROOT.'/admin/propal.php'; - $head[$h][1] = $langs->trans("Miscellanous"); + $head[$h][1] = $langs->trans("Miscellaneous"); $head[$h][2] = 'general'; $h++; diff --git a/htdocs/core/lib/security.lib.php b/htdocs/core/lib/security.lib.php index 896291fddef..ea2f58299ef 100644 --- a/htdocs/core/lib/security.lib.php +++ b/htdocs/core/lib/security.lib.php @@ -150,10 +150,6 @@ function restrictedArea($user, $features, $objectid=0, $dbtablename='', $feature { if (! $user->rights->prelevement->bons->lire) $readok=0; } - else if ($feature == 'commande_fournisseur') - { - if (! $user->rights->fournisseur->commande->lire) $readok=0; - } else if ($feature == 'cheque') { if (! $user->rights->banque->cheque) $readok=0; diff --git a/htdocs/core/lib/sendings.lib.php b/htdocs/core/lib/sendings.lib.php index 5a0ce136ca3..78fd0b9f0e0 100644 --- a/htdocs/core/lib/sendings.lib.php +++ b/htdocs/core/lib/sendings.lib.php @@ -108,11 +108,14 @@ function delivery_prepare_head($object) // 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 + // $this->tabs = array('entity:-tabname); to remove a tab + // complete_head_from_modules use $object->id for this link so we temporary change it + $tmpObjectId = $object->id; + $object->id = $object->origin_id; complete_head_from_modules($conf,$langs,$object,$head,$h,'delivery'); complete_head_from_modules($conf,$langs,$object,$head,$h,'delivery','remove'); - + $object->id = $tmpObjectId; return $head; } @@ -322,4 +325,4 @@ function show_list_sending_receive($origin,$origin_id,$filter='') return 1; } -?> \ No newline at end of file +?> diff --git a/htdocs/core/menus/standard/auguria.lib.php b/htdocs/core/menus/standard/auguria.lib.php index 36bedd2398b..18ffe81ecdd 100644 --- a/htdocs/core/menus/standard/auguria.lib.php +++ b/htdocs/core/menus/standard/auguria.lib.php @@ -84,9 +84,9 @@ function print_auguria_menu($db,$atarget,$type_user,&$tabMenu,&$menu) } else if ($showmode == 2) $classname='class="tmenu"'; - print_start_menu_entry_auguria($idsel,$classname); - print_text_menu_entry_auguria($newTabMenu[$i]['titre'], $showmode, $url, $id, $idsel, $classname, $atarget, $newTabMenu[$i]['target']); - print_end_menu_entry_auguria(); + print_start_menu_entry_auguria($idsel,$classname,$showmode); + print_text_menu_entry_auguria($newTabMenu[$i]['titre'], $showmode, $url, $id, $idsel, $classname, ($newTabMenu[$i]['target']?$newTabMenu[$i]['target']:$atarget)); + print_end_menu_entry_auguria($showmode); } print_end_menu_array_auguria(); @@ -111,12 +111,16 @@ function print_start_menu_array_auguria() * * @param string $idsel Text * @param string $classname String to add a css class + * @param int $showmode 0 = hide, 1 = allowed or 2 = not allowed * @return void */ -function print_start_menu_entry_auguria($idsel,$classname) +function print_start_menu_entry_auguria($idsel,$classname,$showmode) { - print ''; - print "\n"; + if ($showmode) + { + print ''; + print "\n"; + } } /** diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index a4dd6bbab9c..f7e5143344a 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -33,9 +33,10 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/menubase.class.php'; * @param int $type_user 0=Menu for backoffice, 1=Menu for front office * @param array &$tabMenu If array with menu entries already loaded, we put this array here (in most cases, it's empty) * @param array &$menu Object Menu to return back list of menu entries + * @param int $noout Disable output (Initialise &$menu only). * @return void */ -function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu) +function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu,$noout=0) { global $user,$conf,$langs,$dolibarr_main_db_name; @@ -45,17 +46,19 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu) $id='mainmenu'; $listofmodulesforexternal=explode(',',$conf->global->MAIN_MODULES_FOR_EXTERNAL); - print_start_menu_array(); + if (empty($noout)) print_start_menu_array(); // Home + $showmode=1; $classname=""; if ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "home") { $classname='class="tmenusel"'; $_SESSION['idmenu']=''; } else $classname = 'class="tmenu"'; $idsel='home'; - print_start_menu_entry($idsel,$classname); - print_text_menu_entry($langs->trans("Home"), 1, DOL_URL_ROOT.'/index.php?mainmenu=home&leftmenu=', $id, $idsel, $classname, $atarget); - print_end_menu_entry(); + if (empty($noout)) print_start_menu_entry($idsel,$classname,$showmode); + if (empty($noout)) print_text_menu_entry($langs->trans("Home"), 1, DOL_URL_ROOT.'/index.php?mainmenu=home&leftmenu=', $id, $idsel, $classname, $atarget); + if (empty($noout)) print_end_menu_entry($showmode); + $menu->add('/index.php?mainmenu=home&leftmenu=', $langs->trans("Home"), 0, $showmode, $atarget, "home", ''); // Third parties $tmpentry=array('enabled'=>(! empty($conf->societe->enabled) || ! empty($conf->fournisseur->enabled)), 'perms'=>(! empty($user->rights->societe->lire) || ! empty($user->rights->fournisseur->lire)), 'module'=>'societe|fournisseur'); @@ -70,10 +73,10 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu) else $classname = 'class="tmenu"'; $idsel='companies'; - print_start_menu_entry($idsel,$classname); - print_text_menu_entry($langs->trans("ThirdParties"), $showmode, DOL_URL_ROOT.'/societe/index.php?mainmenu=companies&leftmenu=', $id, $idsel, $classname, $atarget); - print_end_menu_entry(); - $menu->add(DOL_URL_ROOT.'/societe/index.php?mainmenu=companies&leftmenu=', $langs->trans("ThirdParties"), 0, $showmode, $atarget, $mainmenu, $leftmenu); + if (empty($noout)) print_start_menu_entry($idsel,$classname,$showmode); + if (empty($noout)) print_text_menu_entry($langs->trans("ThirdParties"), $showmode, DOL_URL_ROOT.'/societe/index.php?mainmenu=companies&leftmenu=', $id, $idsel, $classname, $atarget); + if (empty($noout)) print_end_menu_entry($showmode); + $menu->add('/societe/index.php?mainmenu=companies&leftmenu=', $langs->trans("ThirdParties"), 0, $showmode, $atarget, "companies", ''); } // Products-Services @@ -99,9 +102,10 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu) $chaine.=$langs->trans("Services"); } - print_start_menu_entry($idsel,$classname); - print_text_menu_entry($chaine, $showmode, DOL_URL_ROOT.'/product/index.php?mainmenu=products&leftmenu=', $id, $idsel, $classname, $atarget); - print_end_menu_entry(); + if (empty($noout)) print_start_menu_entry($idsel,$classname,$showmode); + if (empty($noout)) print_text_menu_entry($chaine, $showmode, DOL_URL_ROOT.'/product/index.php?mainmenu=products&leftmenu=', $id, $idsel, $classname, $atarget); + if (empty($noout)) print_end_menu_entry($showmode); + $menu->add('/product/index.php?mainmenu=products&leftmenu=', $chaine, 0, $showmode, $atarget, "products", ''); } // Commercial @@ -122,9 +126,10 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu) else $classname = 'class="tmenu"'; $idsel='commercial'; - print_start_menu_entry($idsel,$classname); - print_text_menu_entry($langs->trans("Commercial"), $showmode, DOL_URL_ROOT.'/comm/index.php?mainmenu=commercial&leftmenu=', $id, $idsel, $classname, $atarget); - print_end_menu_entry(); + if (empty($noout)) print_start_menu_entry($idsel,$classname,$showmode); + if (empty($noout)) print_text_menu_entry($langs->trans("Commercial"), $showmode, DOL_URL_ROOT.'/comm/index.php?mainmenu=commercial&leftmenu=', $id, $idsel, $classname, $atarget); + if (empty($noout)) print_end_menu_entry($showmode); + $menu->add('/comm/index.php?mainmenu=commercial&leftmenu=', $langs->trans("Commercial"), 0, $showmode, $atarget, "commercial", ""); } // Financial @@ -141,9 +146,10 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu) else $classname = 'class="tmenu"'; $idsel='accountancy'; - print_start_menu_entry($idsel,$classname); - print_text_menu_entry($langs->trans("MenuFinancial"), $showmode, DOL_URL_ROOT.'/compta/index.php?mainmenu=accountancy&leftmenu=', $id, $idsel, $classname, $atarget); - print_end_menu_entry(); + if (empty($noout)) print_start_menu_entry($idsel,$classname,$showmode); + if (empty($noout)) print_text_menu_entry($langs->trans("MenuFinancial"), $showmode, DOL_URL_ROOT.'/compta/index.php?mainmenu=accountancy&leftmenu=', $id, $idsel, $classname, $atarget); + if (empty($noout)) print_end_menu_entry($showmode); + $menu->add('/compta/index.php?mainmenu=accountancy&leftmenu=', $langs->trans("MenuFinancial"), 0, $showmode, $atarget, "accountancy", ''); } // Bank @@ -161,9 +167,10 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu) else $classname = 'class="tmenu"'; $idsel='bank'; - print_start_menu_entry($idsel,$classname); - print_text_menu_entry($langs->trans("MenuBankCash"), $showmode, DOL_URL_ROOT.'/compta/bank/index.php?mainmenu=bank&leftmenu=', $id, $idsel, $classname, $atarget); - print_end_menu_entry(); + if (empty($noout)) print_start_menu_entry($idsel,$classname,$showmode); + if (empty($noout)) print_text_menu_entry($langs->trans("MenuBankCash"), $showmode, DOL_URL_ROOT.'/compta/bank/index.php?mainmenu=bank&leftmenu=', $id, $idsel, $classname, $atarget); + if (empty($noout)) print_end_menu_entry($showmode); + $menu->add('/compta/bank/index.php?mainmenu=bank&leftmenu=', $langs->trans("MenuBankCash"), 0, $showmode, $atarget, "bank", ''); } // Projects @@ -180,9 +187,10 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu) else $classname = 'class="tmenu"'; $idsel='project'; - print_start_menu_entry($idsel,$classname); - print_text_menu_entry($langs->trans("Projects"), $showmode, DOL_URL_ROOT.'/projet/index.php?mainmenu=project&leftmenu=', $id, $idsel, $classname, $atarget); - print_end_menu_entry(); + if (empty($noout)) print_start_menu_entry($idsel,$classname,$showmode); + if (empty($noout)) print_text_menu_entry($langs->trans("Projects"), $showmode, DOL_URL_ROOT.'/projet/index.php?mainmenu=project&leftmenu=', $id, $idsel, $classname, $atarget); + if (empty($noout)) print_end_menu_entry($showmode); + $menu->add('/projet/index.php?mainmenu=project&leftmenu=', $langs->trans("Projects"), 0, $showmode, $atarget, "project", ''); } // Tools @@ -199,9 +207,10 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu) else $classname = 'class="tmenu"'; $idsel='tools'; - print_start_menu_entry($idsel,$classname); - print_text_menu_entry($langs->trans("Tools"), $showmode, DOL_URL_ROOT.'/core/tools.php?mainmenu=tools&leftmenu=', $id, $idsel, $classname, $atarget); - print_end_menu_entry(); + if (empty($noout)) print_start_menu_entry($idsel,$classname,$showmode); + if (empty($noout)) print_text_menu_entry($langs->trans("Tools"), $showmode, DOL_URL_ROOT.'/core/tools.php?mainmenu=tools&leftmenu=', $id, $idsel, $classname, $atarget); + if (empty($noout)) print_end_menu_entry($showmode); + $menu->add('/core/tools.php?mainmenu=tools&leftmenu=', $langs->trans("Tools"), 0, $showmode, $atarget, "tools", ''); } // OSCommerce 1 @@ -218,9 +227,10 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu) else $classname = 'class="tmenu"'; $idsel='shop'; - print_start_menu_entry($idsel,$classname); - print_text_menu_entry($langs->trans("OSCommerce"), $showmode, DOL_URL_ROOT.'/boutique/index.php?mainmenu=shop&leftmenu=', $id, $idsel, $classname, $atarget); - print_end_menu_entry(); + if (empty($noout)) print_start_menu_entry($idsel,$classname,$showmode); + if (empty($noout)) print_text_menu_entry($langs->trans("OSCommerce"), $showmode, DOL_URL_ROOT.'/boutique/index.php?mainmenu=shop&leftmenu=', $id, $idsel, $classname, $atarget); + if (empty($noout)) print_end_menu_entry($showmode); + $menu->add('/boutique/index.php?mainmenu=shop&leftmenu=', $langs->trans("OSCommerce"), 0, $showmode, $atarget, "shop", ''); } // Members @@ -235,9 +245,10 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu) else $classname = 'class="tmenu"'; $idsel='members'; - print_start_menu_entry($idsel,$classname); - print_text_menu_entry($langs->trans("MenuMembers"), $showmode, DOL_URL_ROOT.'/adherents/index.php?mainmenu=members&leftmenu=', $id, $idsel, $classname, $atarget); - print_end_menu_entry(); + if (empty($noout)) print_start_menu_entry($idsel,$classname,$showmode); + if (empty($noout)) print_text_menu_entry($langs->trans("MenuMembers"), $showmode, DOL_URL_ROOT.'/adherents/index.php?mainmenu=members&leftmenu=', $id, $idsel, $classname, $atarget); + if (empty($noout)) print_end_menu_entry($showmode); + $menu->add('/adherents/index.php?mainmenu=members&leftmenu=', $langs->trans("MenuMembers"), 0, $showmode, $atarget, "members", ''); } @@ -253,22 +264,23 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu) $showmode=dol_eldy_showmenu($type_user,$newTabMenu[$i],$listofmodulesforexternal); if ($showmode == 1) { - if (preg_match("/^(http:\/\/|https:\/\/)/i",$newTabMenu[$i]['url'])) + $url = $newTabMenu[$i]['url']; + if (! preg_match("/^(http:\/\/|https:\/\/)/i",$newTabMenu[$i]['url'])) { $url = $newTabMenu[$i]['url']; - } - else - { - $url=dol_buildpath($newTabMenu[$i]['url'],1); + $param=''; if (! preg_match('/mainmenu/i',$url) || ! preg_match('/leftmenu/i',$url)) { - if (! preg_match('/\?/',$url)) $url.='?'; - else $url.='&'; - $url.='mainmenu='.$newTabMenu[$i]['mainmenu'].'&leftmenu='; + if (! preg_match('/\?/',$url)) $param.='?'; + else $param.='&'; + $param.='mainmenu='.$newTabMenu[$i]['mainmenu'].'&leftmenu='; } //$url.="idmenu=".$newTabMenu[$i]['rowid']; // Already done by menuLoad + $url = dol_buildpath($url,1).$param; + $shorturl = $newTabMenu[$i]['url'].$param; } $url=preg_replace('/__LOGIN__/',$user->login,$url); + $shorturl=preg_replace('/__LOGIN__/',$user->login,$shorturl); // Define the class (top menu selected or not) if (! empty($_SESSION['idmenu']) && $newTabMenu[$i]['rowid'] == $_SESSION['idmenu']) $classname='class="tmenusel"'; @@ -277,12 +289,13 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu) } else if ($showmode == 2) $classname='class="tmenu"'; - print_start_menu_entry($idsel,$classname); - print_text_menu_entry($newTabMenu[$i]['titre'], $showmode, $url, $id, $idsel, $classname, $atarget, $newTabMenu[$i]['target']); - print_end_menu_entry(); + if (empty($noout)) print_start_menu_entry($idsel,$classname,$showmode); + if (empty($noout)) print_text_menu_entry($newTabMenu[$i]['titre'], $showmode, $url, $id, $idsel, $classname, ($newTabMenu[$i]['target']?$newTabMenu[$i]['target']:$atarget)); + if (empty($noout)) print_end_menu_entry($showmode); + $menu->add($shorturl, $newTabMenu[$i]['titre'], 0, $showmode, ($newTabMenu[$i]['target']?$newTabMenu[$i]['target']:$atarget), ($newTabMenu[$i]['mainmenu']?$newTabMenu[$i]['mainmenu']:$newTabMenu[$i]['rowid']), ''); } - print_end_menu_array(); + if (empty($noout)) print_end_menu_array(); } @@ -302,37 +315,40 @@ function print_start_menu_array() * * @param string $idsel Text * @param string $classname String to add a css class + * @param int $showmode 0 = hide, 1 = allowed or 2 = not allowed * @return void */ -function print_start_menu_entry($idsel,$classname) +function print_start_menu_entry($idsel,$classname,$showmode) { - print ''; + if ($showmode) + { + print ''; + } print "\n"; } @@ -382,19 +402,22 @@ function print_end_menu_array() * @param array $menu_array_after Table of menu entries to show after entries of menu handler * @param array &$tabMenu If array with menu entries already loaded, we put this array here (in most cases, it's empty) * @param array &$menu Object Menu to return back list of menu entries + * @param int $noout Disable output (Initialise &$menu only). + * @param string $forcemainmenu 'x'=Force mainmenu to mainmenu='x' + * @param string $forceleftmenu 'all'=Force leftmenu to '' (= all) * @return void */ -function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu,&$menu) +function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu,&$menu,$noout=0,$forcemainmenu='',$forceleftmenu='') { global $user,$conf,$langs,$dolibarr_main_db_name,$mysoc; $newmenu = $menu; - $mainmenu=$_SESSION["mainmenu"]; - $leftmenu=$_SESSION["leftmenu"]; + $mainmenu=($forcemainmenu?$forcemainmenu:$_SESSION["mainmenu"]); + $leftmenu=($forceleftmenu?'':$_SESSION["leftmenu"]); // Show logo company - if (! empty($conf->global->MAIN_SHOW_LOGO)) + if (empty($noout) && ! empty($conf->global->MAIN_SHOW_LOGO)) { $mysoc->logo_mini=$conf->global->MAIN_INFO_SOCIETE_LOGO_MINI; if (! empty($mysoc->logo_mini) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_mini)) @@ -629,28 +652,28 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu $newmenu->add("/comm/propal/stats/index.php?leftmenu=propals", $langs->trans("Statistics"), 1, $user->rights->propale->lire); } - // Customers orders - if (! empty($conf->commande->enabled)) - { - $langs->load("orders"); - $newmenu->add("/commande/index.php?leftmenu=orders", $langs->trans("CustomersOrders"), 0, $user->rights->commande->lire, '', $mainmenu, 'orders'); - $newmenu->add("/commande/fiche.php?action=create&leftmenu=orders", $langs->trans("NewOrder"), 1, $user->rights->commande->creer); - $newmenu->add("/commande/liste.php?leftmenu=orders", $langs->trans("List"), 1, $user->rights->commande->lire); - if ($leftmenu=="orders") $newmenu->add("/commande/liste.php?leftmenu=orders&viewstatut=0", $langs->trans("StatusOrderDraftShort"), 2, $user->rights->commande->lire); - if ($leftmenu=="orders") $newmenu->add("/commande/liste.php?leftmenu=orders&viewstatut=1", $langs->trans("StatusOrderValidated"), 2, $user->rights->commande->lire); - if ($leftmenu=="orders" && ! empty($conf->expedition->enabled)) $newmenu->add("/commande/liste.php?leftmenu=orders&viewstatut=2", $langs->trans("StatusOrderOnProcessShort"), 2, $user->rights->commande->lire); - if ($leftmenu=="orders") $newmenu->add("/commande/liste.php?leftmenu=orders&viewstatut=".($conf->expedition->enabled?"3":"-2"), $langs->trans("StatusOrderToBill"), 2, $user->rights->commande->lire); - if ($leftmenu=="orders") $newmenu->add("/commande/liste.php?leftmenu=orders&viewstatut=4", $langs->trans("StatusOrderProcessed"), 2, $user->rights->commande->lire); - if ($leftmenu=="orders") $newmenu->add("/commande/liste.php?leftmenu=orders&viewstatut=-1", $langs->trans("StatusOrderCanceledShort"), 2, $user->rights->commande->lire); - $newmenu->add("/commande/stats/index.php?leftmenu=orders", $langs->trans("Statistics"), 1, $user->rights->commande->lire); - } + // Customers orders + if (! empty($conf->commande->enabled)) + { + $langs->load("orders"); + $newmenu->add("/commande/index.php?leftmenu=orders", $langs->trans("CustomersOrders"), 0, $user->rights->commande->lire, '', $mainmenu, 'orders'); + $newmenu->add("/societe/societe.php?leftmenu=orders", $langs->trans("NewOrder"), 1, $user->rights->commande->creer); + $newmenu->add("/commande/liste.php?leftmenu=orders", $langs->trans("List"), 1, $user->rights->commande->lire); + if ($leftmenu=="orders") $newmenu->add("/commande/liste.php?leftmenu=orders&viewstatut=0", $langs->trans("StatusOrderDraftShort"), 2, $user->rights->commande->lire); + if ($leftmenu=="orders") $newmenu->add("/commande/liste.php?leftmenu=orders&viewstatut=1", $langs->trans("StatusOrderValidated"), 2, $user->rights->commande->lire); + if ($leftmenu=="orders" && ! empty($conf->expedition->enabled)) $newmenu->add("/commande/liste.php?leftmenu=orders&viewstatut=2", $langs->trans("StatusOrderOnProcessShort"), 2, $user->rights->commande->lire); + if ($leftmenu=="orders") $newmenu->add("/commande/liste.php?leftmenu=orders&viewstatut=3", $langs->trans("StatusOrderToBill"), 2, $user->rights->commande->lire); // The translation key is StatusOrderToBill but it means StatusDelivered. TODO We should renamed this later + if ($leftmenu=="orders") $newmenu->add("/commande/liste.php?leftmenu=orders&viewstatut=4", $langs->trans("StatusOrderProcessed"), 2, $user->rights->commande->lire); + if ($leftmenu=="orders") $newmenu->add("/commande/liste.php?leftmenu=orders&viewstatut=-1", $langs->trans("StatusOrderCanceledShort"), 2, $user->rights->commande->lire); + $newmenu->add("/commande/stats/index.php?leftmenu=orders", $langs->trans("Statistics"), 1, $user->rights->commande->lire); + } // Suppliers orders if (! empty($conf->fournisseur->enabled)) { $langs->load("orders"); $newmenu->add("/fourn/commande/index.php?leftmenu=orders_suppliers",$langs->trans("SuppliersOrders"), 0, $user->rights->fournisseur->commande->lire, '', $mainmenu, 'orders_suppliers'); - $newmenu->add("/societe/societe.php?leftmenu=orders_suppliers", $langs->trans("NewOrder"), 1, $user->rights->fournisseur->commande->creer); + $newmenu->add("/fourn/commande/fiche.php?action=create", $langs->trans("NewOrder"), 1, $user->rights->fournisseur->commande->creer); $newmenu->add("/fourn/commande/liste.php?leftmenu=orders_suppliers", $langs->trans("List"), 1, $user->rights->fournisseur->commande->lire); $newmenu->add("/commande/stats/index.php?leftmenu=orders_suppliers&mode=supplier", $langs->trans("Statistics"), 1, $user->rights->fournisseur->commande->lire); } @@ -790,17 +813,11 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu } // Compta simple - if (! empty($conf->comptabilite->enabled) && ! empty($conf->global->FACTURE_VENTILATION)) + if (! empty($conf->comptabilite->enabled) && ($conf->global->MAIN_FEATURES_LEVEL >= 2)) { $newmenu->add("/compta/ventilation/index.php?leftmenu=ventil",$langs->trans("Dispatch"),0,$user->rights->compta->ventilation->lire, '', $mainmenu, 'ventil'); if ($leftmenu=="ventil") $newmenu->add("/compta/ventilation/liste.php",$langs->trans("ToDispatch"),1,$user->rights->compta->ventilation->lire); if ($leftmenu=="ventil") $newmenu->add("/compta/ventilation/lignes.php",$langs->trans("Dispatched"),1,$user->rights->compta->ventilation->lire); - if ($leftmenu=="ventil") $newmenu->add("/compta/param/",$langs->trans("Setup"),1,$user->rights->compta->ventilation->parametrer); - if ($leftmenu=="ventil") $newmenu->add("/compta/param/comptes/fiche.php?action=create",$langs->trans("New"),2,$user->rights->compta->ventilation->parametrer); - if ($leftmenu=="ventil") $newmenu->add("/compta/param/comptes/liste.php",$langs->trans("List"),2,$user->rights->compta->ventilation->parametrer); - if ($leftmenu=="ventil") $newmenu->add("/compta/export/",$langs->trans("Export"),1,$user->rights->compta->ventilation->lire); - if ($leftmenu=="ventil") $newmenu->add("/compta/export/index.php?action=export",$langs->trans("New"),2,$user->rights->compta->ventilation->lire); - if ($leftmenu=="ventil") $newmenu->add("/compta/export/liste.php",$langs->trans("List"),2,$user->rights->compta->ventilation->lire); } // Compta expert @@ -1155,81 +1172,84 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu if (! is_array($menu_array)) return 0; // Show menu - $alt=0; - $num=count($menu_array); - for ($i = 0; $i < $num; $i++) + if (empty($noout)) { - $showmenu=true; - if (! empty($conf->global->MAIN_MENU_HIDE_UNAUTHORIZED) && empty($menu_array[$i]['enabled'])) $showmenu=false; - - $alt++; - if (empty($menu_array[$i]['level']) && $showmenu) + $alt=0; + $num=count($menu_array); + for ($i = 0; $i < $num; $i++) { - if (($alt%2==0)) - { - print '
'."\n"; - } - else - { - print '
'."\n"; - } - } + $showmenu=true; + if (! empty($conf->global->MAIN_MENU_HIDE_UNAUTHORIZED) && empty($menu_array[$i]['enabled'])) $showmenu=false; - // Place tabulation - $tabstring=''; - $tabul=($menu_array[$i]['level'] - 1); - if ($tabul > 0) - { - for ($j=0; $j < $tabul; $j++) + $alt++; + if (empty($menu_array[$i]['level']) && $showmenu) { - $tabstring.='   '; + if (($alt%2==0)) + { + print '
'."\n"; + } + else + { + print '
'."\n"; + } } - } - // For external modules - $url = dol_buildpath($menu_array[$i]['url'], 1); + // Place tabulation + $tabstring=''; + $tabul=($menu_array[$i]['level'] - 1); + if ($tabul > 0) + { + for ($j=0; $j < $tabul; $j++) + { + $tabstring.='   '; + } + } - print ''."\n"; + // For external modules + $url = dol_buildpath($menu_array[$i]['url'], 1); - // Menu niveau 0 - if ($menu_array[$i]['level'] == 0) - { - if ($menu_array[$i]['enabled']) - { - print ''."\n"; - } - else if ($showmenu) - { - print ''."\n"; - } - if ($showmenu) - print ''."\n"; - } - // Menu niveau > 0 - if ($menu_array[$i]['level'] > 0) - { - if ($menu_array[$i]['enabled']) - { - print ''."\n"; - } - else if ($showmenu) - { - print ''."\n"; - } - } + print ''."\n"; - // If next is a new block or end - if (empty($menu_array[$i+1]['level'])) - { - if ($showmenu) - print ''."\n"; - print "
\n"; + // Menu niveau 0 + if ($menu_array[$i]['level'] == 0) + { + if ($menu_array[$i]['enabled']) + { + print ''."\n"; + } + else if ($showmenu) + { + print ''."\n"; + } + if ($showmenu) + print ''."\n"; + } + // Menu niveau > 0 + if ($menu_array[$i]['level'] > 0) + { + if ($menu_array[$i]['enabled']) + { + print ''."\n"; + } + else if ($showmenu) + { + print ''."\n"; + } + } + + // If next is a new block or end + if (empty($menu_array[$i+1]['level'])) + { + if ($showmenu) + print ''."\n"; + print "
\n"; + } } } @@ -1237,25 +1257,6 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu } -/** - * Core function to output top menu eldy - * - * @param DoliDB $db Database handler - * @param string $atarget Target - * @param int $type_user 0=Menu for backoffice, 1=Menu for front office - * @param array &$tabMenu If array with menu entries already loaded, we put this array here (in most cases, it's empty) - * @return void - */ -function print_jmobile_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu) -{ - print '
    '; - foreach ($tabMenu as $key => $val) - { - print '
  • '.$key.'
  • '; - } - print '
'; -} - /** * Function to test if an entry is enabled or not * diff --git a/htdocs/core/menus/standard/eldy_menu.php b/htdocs/core/menus/standard/eldy_menu.php index 2b4ad8c97a7..f920a905983 100644 --- a/htdocs/core/menus/standard/eldy_menu.php +++ b/htdocs/core/menus/standard/eldy_menu.php @@ -112,7 +112,7 @@ class MenuManager */ function showmenu($mode) { - global $conf; + global $conf, $langs; require_once DOL_DOCUMENT_ROOT.'/core/menus/standard/eldy.lib.php'; @@ -129,12 +129,53 @@ class MenuManager if ($mode == 'top') $res=print_eldy_menu($this->db,$this->atarget,$this->type_user,$this->tabMenu,$this->menu); if ($mode == 'left') $res=print_left_eldy_menu($this->db,$this->menu_array,$this->menu_array_after,$this->tabMenu,$this->menu); - if ($mode == 'jmobile') $res=print_jmobile_eldy_menu($this->db,$this->menu_array,$this->menu_array_after,$this->tabMenu,$this->menu); + if ($mode == 'jmobile') + { + $res=print_eldy_menu($this->db,$this->atarget,$this->type_user,$this->tabMenu,$this->menu,1); + + foreach($this->menu->liste as $key => $val) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu' + { + print '
    '; + print '
  • '; + if ($val['enabled'] == 1) + { + $relurl=dol_buildpath($val['url'],1); + + print ''.$val['titre'].''."\n"; + + $submenu=new Menu(); + $res=print_left_eldy_menu($this->db,$this->menu_array,$this->menu_array_after,$this->tabMenu,$submenu,1,$val['mainmenu'],$val['leftmenu']); + $nexturl=dol_buildpath($submenu->liste[0]['url'],1); + $canonrelurl=preg_replace('/\?.*$/','',$relurl); + $canonnexturl=preg_replace('/\?.*$/','',$nexturl); + //var_dump($canonrelurl); + //var_dump($canonnexturl); + if ($canonrelurl != $canonnexturl && $val['mainmenu'] != 'home') + { + // We add sub entry + print '
  • '.$langs->trans("MainArea").'-'.$val['titre'].'
  • '."\n"; + } + var_dump($val['titre']); + foreach($submenu->liste as $key2 => $val2) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu' + { + $relurl2=dol_buildpath($val2['url'],1); + print '
  • '.$val2['titre'].'
  • '."\n"; + } + //var_dump($submenu); + } + if ($val['enabled'] == 2) + { + print ''.$val['titre'].''; + } + print ''; + print '
'."\n"; + print 'wwwwwww'; + } + } unset($this->menu); //print 'xx'.$mode; - //var_dump($this->menu); return $res; } diff --git a/htdocs/core/menus/standard/empty.php b/htdocs/core/menus/standard/empty.php index c0198ead137..2e401e3cf10 100644 --- a/htdocs/core/menus/standard/empty.php +++ b/htdocs/core/menus/standard/empty.php @@ -53,9 +53,9 @@ class MenuManager */ function loadMenu() { - - } - + + } + /** * Show menu @@ -71,17 +71,19 @@ class MenuManager require_once DOL_DOCUMENT_ROOT.'/core/class/menu.class.php'; $this->menu=new Menu(); - + if ($mode == 'top') { print_start_menu_array_empty(); + // Home + $showmode=1; $idsel='home'; $classname='class="tmenusel"'; - print_start_menu_entry_empty($idsel, $classname); + print_start_menu_entry_empty($idsel, $classname, $showmode); print_text_menu_entry_empty($langs->trans("Home"), 1, dol_buildpath('/index.php',1).'?mainmenu=home&leftmenu=', $id, $idsel, $classname, $this->atarget); - print_end_menu_entry_empty(); + print_end_menu_entry_empty($showmode); print_end_menu_array_empty(); } @@ -190,12 +192,16 @@ function print_start_menu_array_empty() * * @param string $idsel Text * @param string $classname String to add a css class + * @param int $showmode 0 = hide, 1 = allowed or 2 = not allowed * @return void */ -function print_start_menu_entry_empty($idsel,$classname) +function print_start_menu_entry_empty($idsel,$classname,$showmode) { - print ''; - print "\n"; + if ($showmode) + { + print '
'; + print "\n"; + } } /** diff --git a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php index ceccee1602c..bb1fd411b1f 100644 --- a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php +++ b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php @@ -375,23 +375,18 @@ class pdf_einstein extends ModelePDFCommandes $vatrate=(string) $object->lines[$i]->tva_tx; // TODO : store local taxes types into object lines and remove this - $localtax1_array=getLocalTaxesFromRate($vatrate,1,$mysoc); - $localtax2_array=getLocalTaxesFromRate($vatrate,2,$mysoc); - if (empty($localtax1_type)) - $localtax1_type = $localtax1_array[0]; - if (empty($localtax2_type)) - $localtax2_type = $localtax2_array[0]; + $localtaxtmp_array=getLocalTaxesFromRate($vatrate,0,$mysoc); + if ((! isset($localtax1_type)) || $localtax1_type=='') $localtax1_type = $localtaxtmp_array[0]; + if ((! isset($localtax2_type)) || $localtax2_type=='') $localtax2_type = $localtaxtmp_array[2]; //end TODO // retrieve global local tax - if ($localtax1_type == '7') - $localtax1_rate = $localtax1_array[1]; - if ($localtax2_type == '7') - $localtax2_rate = $localtax2_array[1]; + if ($localtax1_type == '7') $localtax1_rate = $localtaxtmp_array[1]; + if ($localtax2_type == '7') $localtax2_rate = $localtaxtmp_array[3]; - if ($localtax1ligne != 0 || $localtax1_type == '7') + if ($localtax1_type && ($localtax1ligne != 0 || $localtax1_type == '7')) $this->localtax1[$localtax1_type][$localtax1_rate]+=$localtax1ligne; - if ($localtax2ligne != 0 || $localtax2_type == '7') + if ($localtax2_type && ($localtax2ligne != 0 || $localtax2_type == '7')) $this->localtax2[$localtax2_type][$localtax2_rate]+=$localtax2ligne; if (($object->lines[$i]->info_bits & 0x01) == 0x01) $vatrate.='*'; diff --git a/htdocs/core/modules/expedition/doc/pdf_expedition_merou.modules.php b/htdocs/core/modules/expedition/doc/pdf_expedition_merou.modules.php index 56e0d90fdb3..39c70faab79 100644 --- a/htdocs/core/modules/expedition/doc/pdf_expedition_merou.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_expedition_merou.modules.php @@ -546,10 +546,10 @@ class pdf_expedition_merou extends ModelePdfExpedition $object->GetUrlTrackingStatus($object->tracking_number); if (! empty($object->tracking_url)) { - if ($object->expedition_method_id > 0) + if ($object->shipping_method_id > 0) { // Get code using getLabelFromKey - $code=$outputlangs->getLabelFromKey($this->db,$object->expedition_method_id,'c_shipment_mode','rowid','code'); + $code=$outputlangs->getLabelFromKey($this->db,$object->shipping_method_id,'c_shipment_mode','rowid','code'); $label=$outputlangs->trans("SendingMethod".strtoupper($code))." :"; } else diff --git a/htdocs/core/modules/expedition/doc/pdf_expedition_rouget.modules.php b/htdocs/core/modules/expedition/doc/pdf_expedition_rouget.modules.php index 172966b89cf..368527612f1 100644 --- a/htdocs/core/modules/expedition/doc/pdf_expedition_rouget.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_expedition_rouget.modules.php @@ -189,10 +189,10 @@ class pdf_expedition_rouget extends ModelePdfExpedition $object->GetUrlTrackingStatus($object->tracking_number); if (! empty($object->tracking_url)) { - if ($object->expedition_method_id > 0) + if ($object->shipping_method_id > 0) { // Get code using getLabelFromKey - $code=$outputlangs->getLabelFromKey($this->db,$object->expedition_method_id,'c_shipment_mode','rowid','code'); + $code=$outputlangs->getLabelFromKey($this->db,$object->shipping_method_id,'c_shipment_mode','rowid','code'); $label=$outputlangs->trans("LinkToTrackYourPackage")."
"; $label.=$outputlangs->trans("SendingMethod".strtoupper($code))." :"; $pdf->SetFont('','B', $default_font_size - 2); diff --git a/htdocs/core/modules/expedition/modules_expedition.php b/htdocs/core/modules/expedition/modules_expedition.php index 0b7d2ffdc54..bf74e1adcd1 100644 --- a/htdocs/core/modules/expedition/modules_expedition.php +++ b/htdocs/core/modules/expedition/modules_expedition.php @@ -5,7 +5,7 @@ * Copyright (C) 2005-2011 Regis Houssin * Copyright (C) 2006 Andre Cianfarani * Copyright (C) 2011 Juanjo Menent - * Copyright (C) 2011-2012 Philippe Grand + * Copyright (C) 2011-2013 Philippe Grand * * 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 @@ -25,7 +25,8 @@ /** * \file htdocs/core/modules/expedition/modules_expedition.php * \ingroup expedition - * \brief File of class to manage expedition numbering + * \brief File that contains parent class for sending receipts models + * and parent class for sending receipts numbering models */ require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php'; @@ -60,15 +61,15 @@ abstract class ModelePdfExpedition extends CommonDocGenerator /** - * Classe mere des modeles de numerotation des references d expedition + * Parent Class of numbering models of sending receipts references */ abstract class ModelNumRefExpedition { var $error=''; - /** Return if a module can be used or not + /** Return if a model can be used or not * - * @return boolean true if module can be used + * @return boolean true if model can be used */ function isEnabled() { @@ -88,7 +89,7 @@ abstract class ModelNumRefExpedition } /** - * Return numbering example + * Returns numbering example * * @return string Example */ @@ -110,7 +111,7 @@ abstract class ModelNumRefExpedition } /** - * Return next value + * Returns next value assigned * * @param Societe $objsoc Third party object * @param Object $shipment Shipment object @@ -123,7 +124,7 @@ abstract class ModelNumRefExpedition } /** - * Return numbering version module + * Returns version of the numbering model * * @return string Value */ @@ -158,7 +159,7 @@ function expedition_pdf_create($db, $object, $modele, $outputlangs) $srctemplatepath=''; - // Positionne le modele sur le nom du modele a utiliser + // Sets the model on the model name to use if (! dol_strlen($modele)) { if (! empty($conf->global->EXPEDITION_ADDON_PDF)) @@ -171,7 +172,7 @@ function expedition_pdf_create($db, $object, $modele, $outputlangs) } } - // If selected modele is a filename template (then $modele="modelname:filename") + // If selected model is a filename template (then $modele="modelname:filename") $tmp=explode(':',$modele,2); if (! empty($tmp[1])) { @@ -189,7 +190,7 @@ function expedition_pdf_create($db, $object, $modele, $outputlangs) { $file = $prefix."_expedition_".$modele.".modules.php"; - // On verifie l'emplacement du modele + // We check the model location $file=dol_buildpath($reldir."core/modules/expedition/doc/".$file,0); if (file_exists($file)) { @@ -201,7 +202,7 @@ function expedition_pdf_create($db, $object, $modele, $outputlangs) if ($filefound) break; } - // Charge le modele + // Load the model if ($filefound) { require_once $file; @@ -221,14 +222,14 @@ function expedition_pdf_create($db, $object, $modele, $outputlangs) //require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; //dol_delete_preview($object); - // Appel des triggers + // Calls triggers include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; $interface=new Interfaces($db); $result=$interface->run_triggers('SHIPPING_BUILDDOC',$object,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } - // Fin appel triggers + // End calls triggers return 1; } @@ -242,8 +243,15 @@ function expedition_pdf_create($db, $object, $modele, $outputlangs) } else { - dol_print_error('',$langs->trans("Error")." ".$langs->trans("ErrorFileDoesNotExists",$file)); - return -1; + if (! $conf->global->EXPEDITION_ADDON_PDF) + { + print $langs->trans("Error")." ".$langs->trans("Error_EXPEDITION_ADDON_PDF_NotDefined"); + } + else + { + print $langs->trans("Error")." ".$langs->trans("ErrorFileDoesNotExists",$file); + } + return 0; } } ?> \ No newline at end of file diff --git a/htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php b/htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php index 957b5d85428..ee80dbbb141 100644 --- a/htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php +++ b/htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php @@ -121,16 +121,16 @@ class doc_generic_invoice_odt extends ModelePDFFactures 'object_payment_mode'=>($outputlangs->transnoentitiesnoconv('PaymentType'.$object->mode_reglement_code)!='PaymentType'.$object->mode_reglement_code?$outputlangs->transnoentitiesnoconv('PaymentType'.$object->mode_reglement_code):$object->mode_reglement), 'object_payment_term_code'=>$object->cond_reglement_code, 'object_payment_term'=>($outputlangs->transnoentitiesnoconv('PaymentCondition'.$object->cond_reglement_code)!='PaymentCondition'.$object->cond_reglement_code?$outputlangs->transnoentitiesnoconv('PaymentCondition'.$object->cond_reglement_code):$object->cond_reglement), - 'object_total_ht'=>price2num($object->total_ht,2), - 'object_total_vat'=>price2num($object->total_tva,2), - 'object_total_ttc'=>price2num($object->total_ttc,2), + 'object_total_ht'=>price2num($object->total_ht), + 'object_total_vat'=>price2num($object->total_tva), + 'object_total_ttc'=>price2num($object->total_ttc), 'object_total_discount_ht' => price2num($object->getTotalDiscount(), 0, $outputlangs), 'object_vatrate'=>(isset($object->tva)?vatrate($object->tva):''), 'object_note_private'=>$object->note, 'object_note'=>$object->note_public, // Payments 'object_already_payed'=>$alreadypayed, - 'object_remain_to_pay'=>price2num($object->total_ttc - $sumpayed,2) + 'object_remain_to_pay'=>price2num($object->total_ttc - $sumpayed) ); // Add vat by rates @@ -139,7 +139,7 @@ class doc_generic_invoice_odt extends ModelePDFFactures if (empty($resarray['object_total_vat_'.$line->tva_tx])) $resarray['object_total_vat_'.$line->tva_tx]=0; $resarray['object_total_vat_'.$line->tva_tx]+=$line->total_tva; } - + // Retrieve extrafields if(is_array($object->array_options) && count($object->array_options)) { @@ -148,7 +148,7 @@ class doc_generic_invoice_odt extends ModelePDFFactures $extrafields = new ExtraFields($this->db); $extralabels = $extrafields->fetch_name_optionals_label('facture',true); $object->fetch_optionals($object->id,$extralabels); - + $resarray = $this->fill_substitutionarray_with_extrafields($object,$resarray,$extrafields,$array_key='object',$outputlangs); } return $resarray; @@ -174,9 +174,9 @@ class doc_generic_invoice_odt extends ModelePDFFactures 'line_up'=>price($line->subprice, 0, $outputlangs), 'line_qty'=>$line->qty, 'line_discount_percent'=>($line->remise_percent?$line->remise_percent.'%':''), - 'line_price_ht'=>price2num($line->total_ht, 2), - 'line_price_ttc'=>price2num($line->total_ttc, 2), - 'line_price_vat'=>price2num($line->total_tva, 2), + 'line_price_ht'=>price2num($line->total_ht), + 'line_price_ttc'=>price2num($line->total_ttc), + 'line_price_vat'=>price2num($line->total_tva), 'line_date_start'=>dol_print_date($line->date_start, 'day', false, $outputlangs), 'line_date_end'=>dol_print_date($line->date_end, 'day', false, $outputlangs), ); @@ -358,14 +358,13 @@ class doc_generic_invoice_odt extends ModelePDFFactures { $socobject=$object->client; } - + // Fetch info for linked propal $linked_propal = $object->fetchObjectLinked('','','',''); - print '
';
                 //print_r($object->linkedObjects['propal']); exit;
 
                 $propal_object = $object->linkedObjects['propal'][0];
-                
+
                 // Make substitution
                 $substitutionarray=array(
                     '__FROM_NAME__' => $this->emetteur->nom,
@@ -415,7 +414,7 @@ class doc_generic_invoice_odt extends ModelePDFFactures
 				$array_soc=$this->get_substitutionarray_mysoc($mysoc,$outputlangs);
 				$array_thirdparty=$this->get_substitutionarray_thirdparty($socobject,$outputlangs);
 				$array_objet=$this->get_substitutionarray_object($object,$outputlangs);
-				$array_propal=$this->get_substitutionarray_propal($propal_object,$outputlangs,'propal');
+				$array_propal=is_object($propal_object)?$this->get_substitutionarray_propal($propal_object,$outputlangs,'propal'):array();
 
 				$tmparray = array_merge($array_user,$array_soc,$array_thirdparty,$array_objet,$array_propal);
 				complete_substitutions_array($tmparray, $outputlangs, $object);
diff --git a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php
index fa8a13353fd..fb164f04876 100755
--- a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php
+++ b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php
@@ -377,23 +377,18 @@ class pdf_crabe extends ModelePDFFactures
 					$vatrate=(string) $object->lines[$i]->tva_tx;
 
 					// TODO : store local taxes types into object lines and remove this
-					$localtax1_array=getLocalTaxesFromRate($vatrate,1,$mysoc);
-					$localtax2_array=getLocalTaxesFromRate($vatrate,2,$mysoc);
-					if (empty($localtax1_type))
-						$localtax1_type = $localtax1_array[0];
-					if (empty($localtax2_type))
-						$localtax2_type = $localtax2_array[0];
+					$localtaxtmp_array=getLocalTaxesFromRate($vatrate,0,$mysoc);
+					if ((! isset($localtax1_type)) || $localtax1_type=='') $localtax1_type = $localtaxtmp_array[0];
+					if ((! isset($localtax2_type)) || $localtax2_type=='') $localtax2_type = $localtaxtmp_array[2];
 					//end TODO
 
 				    // retrieve global local tax
-					if ($localtax1_type == '7')
-						$localtax1_rate = $localtax1_array[1];
-					if ($localtax2_type == '7')
-						$localtax2_rate = $localtax2_array[1];
+					if ($localtax1_type == '7') $localtax1_rate = $localtaxtmp_array[1];
+					if ($localtax2_type == '7') $localtax2_rate = $localtaxtmp_array[3];
 
-					if ($localtax1ligne != 0 || $localtax1_type == '7')
+					if ($localtax1_type && ($localtax1ligne != 0 || $localtax1_type == '7'))
 						$this->localtax1[$localtax1_type][$localtax1_rate]+=$localtax1ligne;
-					if ($localtax2ligne != 0 || $localtax2_type == '7')
+					if ($localtax2_type && ($localtax2ligne != 0 || $localtax2_type == '7'))
 						$this->localtax2[$localtax2_type][$localtax2_rate]+=$localtax2ligne;
 
 					if (($object->lines[$i]->info_bits & 0x01) == 0x01) $vatrate.='*';
@@ -736,20 +731,22 @@ class pdf_crabe extends ModelePDFFactures
 				// Si mode reglement non force ou si force a CHQ
 				if (! empty($conf->global->FACTURE_CHQ_NUMBER))
 				{
+					$diffsizetitle=(empty($conf->global->PDF_DIFFSIZE_TITLE)?3:$conf->global->PDF_DIFFSIZE_TITLE);
+						
 					if ($conf->global->FACTURE_CHQ_NUMBER > 0)
 					{
 						$account = new Account($this->db);
 						$account->fetch($conf->global->FACTURE_CHQ_NUMBER);
 
 						$pdf->SetXY($this->marge_gauche, $posy);
-						$pdf->SetFont('','B', $default_font_size - 3);
+						$pdf->SetFont('','B', $default_font_size - $diffsizetitle);
 						$pdf->MultiCell(100, 3, $outputlangs->transnoentities('PaymentByChequeOrderedTo',$account->proprio),0,'L',0);
 						$posy=$pdf->GetY()+1;
 
 			            if (empty($conf->global->MAIN_PDF_HIDE_CHQ_ADDRESS))
 			            {
 							$pdf->SetXY($this->marge_gauche, $posy);
-							$pdf->SetFont('','', $default_font_size - 3);
+							$pdf->SetFont('','', $default_font_size - $diffsizetitle);
 							$pdf->MultiCell(100, 3, $outputlangs->convToOutputCharset($account->owner_address), 0, 'L', 0);
 							$posy=$pdf->GetY()+2;
 			            }
@@ -757,14 +754,14 @@ class pdf_crabe extends ModelePDFFactures
 					if ($conf->global->FACTURE_CHQ_NUMBER == -1)
 					{
 						$pdf->SetXY($this->marge_gauche, $posy);
-						$pdf->SetFont('','B', $default_font_size - 3);
+						$pdf->SetFont('','B', $default_font_size - $diffsizetitle);
 						$pdf->MultiCell(100, 3, $outputlangs->transnoentities('PaymentByChequeOrderedTo',$this->emetteur->name),0,'L',0);
 						$posy=$pdf->GetY()+1;
 
 			            if (empty($conf->global->MAIN_PDF_HIDE_CHQ_ADDRESS))
 			            {
 							$pdf->SetXY($this->marge_gauche, $posy);
-							$pdf->SetFont('','', $default_font_size - 3);
+							$pdf->SetFont('','', $default_font_size - $diffsizetitle);
 							$pdf->MultiCell(100, 3, $outputlangs->convToOutputCharset($this->emetteur->getFullAddress()), 0, 'L', 0);
 							$posy=$pdf->GetY()+2;
 			            }
@@ -1025,6 +1022,17 @@ class pdf_crabe extends ModelePDFFactures
 					//}
 				}
 
+				// Revenue stamp
+				if (price2num($object->revenuestamp) != 0)
+				{
+					$index++;
+					$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
+					$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("RevenueStamp"), $useborder, 'L', 1);
+
+					$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
+					$pdf->MultiCell($largcol2, $tab2_hl, price($sign * $object->revenuestamp), $useborder, 'R', 1);
+				}
+
 				// Total TTC
 				$index++;
 				$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
diff --git a/htdocs/core/modules/modAdherent.class.php b/htdocs/core/modules/modAdherent.class.php
index 3757e424ada..44304f870f9 100644
--- a/htdocs/core/modules/modAdherent.class.php
+++ b/htdocs/core/modules/modAdherent.class.php
@@ -172,9 +172,9 @@ class modAdherent extends DolibarrModules
         $this->export_code[$r]=$this->rights_class.'_'.$r;
         $this->export_label[$r]='MembersAndSubscriptions';
         $this->export_permission[$r]=array(array("adherent","export"));
-        $this->export_fields_array[$r]=array('a.rowid'=>'Id','a.civilite'=>"UserTitle",'a.lastname'=>"Lastname",'a.firstname'=>"Firstname",'a.login'=>"Login",'a.morphy'=>'Nature','a.societe'=>'Company','a.address'=>"Address",'a.zip'=>"Zip",'a.town'=>"Town",'a.country'=>"Country",'a.phone'=>"PhonePro",'a.phone_perso'=>"PhonePerso",'a.phone_mobile'=>"PhoneMobile",'a.email'=>"Email",'a.naiss'=>"Birthday",'a.statut'=>"Status",'a.photo'=>"Photo",'a.note'=>"Note",'a.datec'=>'DateCreation','a.datevalid'=>'DateValidation','a.tms'=>'DateLastModification','a.datefin'=>'DateEndSubscription','ta.rowid'=>'MemberTypeId','ta.libelle'=>'MemberTypeLabel','c.rowid'=>'SubscriptionId','c.dateadh'=>'DateSubscription','c.cotisation'=>'Amount');
-        $this->export_TypeFields_array[$r]=array('a.civilite'=>"Text",'a.lastname'=>"Text",'a.firstname'=>"Text",'a.login'=>"Text",'a.morphy'=>'Text','a.societe'=>'Text','a.address'=>"Text",'a.zip'=>"Text",'a.town'=>"Text",'a.country'=>"Text",'a.phone'=>"Text",'a.phone_perso'=>"Text",'a.phone_mobile'=>"Text",'a.email'=>"Text",'a.naiss'=>"Date",'a.statut'=>"Status",'a.note'=>"Text",'a.datec'=>'Date','a.datevalid'=>'Date','a.tms'=>'Date','a.datefin'=>'Date','ta.rowid'=>'List:fk_adherent_type:libelle','ta.libelle'=>'Text','c.dateadh'=>'Date','c.cotisation'=>'Number');
-        $this->export_entities_array[$r]=array('a.rowid'=>'member','a.civilite'=>"member",'a.lastname'=>"member",'a.firstname'=>"member",'a.login'=>"member",'a.morphy'=>'member','a.societe'=>'member','a.address'=>"member",'a.zip'=>"member",'a.town'=>"member",'a.country'=>"member",'a.phone'=>"member",'a.phone_perso'=>"member",'a.phone_mobile'=>"member",'a.email'=>"member",'a.naiss'=>"member",'a.statut'=>"member",'a.photo'=>"member",'a.note'=>"member",'a.datec'=>'member','a.datevalid'=>'member','a.tms'=>'member','a.datefin'=>'member','ta.rowid'=>'member_type','ta.libelle'=>'member_type','c.rowid'=>'subscription','c.dateadh'=>'subscription','c.cotisation'=>'subscription');
+        $this->export_fields_array[$r]=array('a.rowid'=>'Id','a.civilite'=>"UserTitle",'a.lastname'=>"Lastname",'a.firstname'=>"Firstname",'a.login'=>"Login",'a.morphy'=>'Nature','a.societe'=>'Company','a.address'=>"Address",'a.zip'=>"Zip",'a.town'=>"Town",'a.country'=>"Country",'a.phone'=>"PhonePro",'a.phone_perso'=>"PhonePerso",'a.phone_mobile'=>"PhoneMobile",'a.email'=>"Email",'a.birth'=>"Birthday",'a.statut'=>"Status",'a.photo'=>"Photo",'a.note'=>"Note",'a.datec'=>'DateCreation','a.datevalid'=>'DateValidation','a.tms'=>'DateLastModification','a.datefin'=>'DateEndSubscription','ta.rowid'=>'MemberTypeId','ta.libelle'=>'MemberTypeLabel','c.rowid'=>'SubscriptionId','c.dateadh'=>'DateSubscription','c.cotisation'=>'Amount');
+        $this->export_TypeFields_array[$r]=array('a.civilite'=>"Text",'a.lastname'=>"Text",'a.firstname'=>"Text",'a.login'=>"Text",'a.morphy'=>'Text','a.societe'=>'Text','a.address'=>"Text",'a.zip'=>"Text",'a.town'=>"Text",'a.country'=>"Text",'a.phone'=>"Text",'a.phone_perso'=>"Text",'a.phone_mobile'=>"Text",'a.email'=>"Text",'a.birth'=>"Date",'a.statut'=>"Status",'a.note'=>"Text",'a.datec'=>'Date','a.datevalid'=>'Date','a.tms'=>'Date','a.datefin'=>'Date','ta.rowid'=>'List:fk_adherent_type:libelle','ta.libelle'=>'Text','c.dateadh'=>'Date','c.cotisation'=>'Number');
+        $this->export_entities_array[$r]=array('a.rowid'=>'member','a.civilite'=>"member",'a.lastname'=>"member",'a.firstname'=>"member",'a.login'=>"member",'a.morphy'=>'member','a.societe'=>'member','a.address'=>"member",'a.zip'=>"member",'a.town'=>"member",'a.country'=>"member",'a.phone'=>"member",'a.phone_perso'=>"member",'a.phone_mobile'=>"member",'a.email'=>"member",'a.birth'=>"member",'a.statut'=>"member",'a.photo'=>"member",'a.note'=>"member",'a.datec'=>'member','a.datevalid'=>'member','a.tms'=>'member','a.datefin'=>'member','ta.rowid'=>'member_type','ta.libelle'=>'member_type','c.rowid'=>'subscription','c.dateadh'=>'subscription','c.cotisation'=>'subscription');
 		// Add extra fields
 		$sql="SELECT name, label FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'member'";
 		$resql=$this->db->query($sql);
@@ -207,7 +207,7 @@ class modAdherent extends DolibarrModules
         $this->import_entities_array[$r]=array();		// We define here only fields that use another icon that the one defined into import_icon
         $this->import_tables_array[$r]=array('a'=>MAIN_DB_PREFIX.'adherent','extra'=>MAIN_DB_PREFIX.'adherent_extrafields');
         $this->import_tables_creator_array[$r]=array('a'=>'fk_user_author');    // Fields to store import user id
-        $this->import_fields_array[$r]=array('a.civilite'=>"UserTitle",'a.nom'=>"Lastname*",'a.firstname'=>"Firstname",'a.login'=>"Login*","a.pass"=>"Password","a.fk_adherent_type"=>"MemberType*",'a.morphy'=>'Nature*','a.societe'=>'Company','a.address'=>"Address",'a.zip'=>"Zip",'a.town'=>"Town",'a.country'=>"Country",'a.phone'=>"PhonePro",'a.phone_perso'=>"PhonePerso",'a.phone_mobile'=>"PhoneMobile",'a.email'=>"Email",'a.naiss'=>"Birthday",'a.statut'=>"Status*",'a.photo'=>"Photo",'a.note'=>"Note",'a.datec'=>'DateCreation','a.datefin'=>'DateEndSubscription');
+        $this->import_fields_array[$r]=array('a.civilite'=>"UserTitle",'a.nom'=>"Lastname*",'a.firstname'=>"Firstname",'a.login'=>"Login*","a.pass"=>"Password","a.fk_adherent_type"=>"MemberType*",'a.morphy'=>'Nature*','a.societe'=>'Company','a.address'=>"Address",'a.zip'=>"Zip",'a.town'=>"Town",'a.country'=>"Country",'a.phone'=>"PhonePro",'a.phone_perso'=>"PhonePerso",'a.phone_mobile'=>"PhoneMobile",'a.email'=>"Email",'a.birth'=>"Birthday",'a.statut'=>"Status*",'a.photo'=>"Photo",'a.note'=>"Note",'a.datec'=>'DateCreation','a.datefin'=>'DateEndSubscription');
 		// Add extra fields
 		$sql="SELECT name, label, fieldrequired FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'member'";
 		$resql=$this->db->query($sql);
@@ -223,7 +223,7 @@ class modAdherent extends DolibarrModules
 		// End add extra fields
 		$this->import_fieldshidden_array[$r]=array('extra.fk_object'=>'lastrowid-'.MAIN_DB_PREFIX.'adherent');    // aliastable.field => ('user->id' or 'lastrowid-'.tableparent)
 		$this->import_regex_array[$r]=array('a.civilite'=>'code@'.MAIN_DB_PREFIX.'c_civilite','a.fk_adherent_type'=>'rowid@'.MAIN_DB_PREFIX.'adherent_type','a.morphy'=>'(phy|mor)','a.statut'=>'^[0|1]','a.datec'=>'^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]$','a.datefin'=>'^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]$');
-        $this->import_examplevalues_array[$r]=array('a.civilite'=>"MR",'a.nom'=>'Smith','a.firstname'=>'John','a.login'=>'jsmith','a.pass'=>'passofjsmith','a.fk_adherent_type'=>'1','a.morphy'=>'"mor" or "phy"','a.societe'=>'JS company','a.address'=>'21 jump street','a.zip'=>'55000','a.town'=>'New York','a.country'=>'1','a.email'=>'jsmith@example.com','a.naiss'=>'1972-10-10','a.statut'=>"0 or 1",'a.note'=>"This is a comment on member",'a.datec'=>dol_print_date($now,'%Y-%m-%d'),'a.datefin'=>dol_print_date(dol_time_plus_duree($now, 1, 'y'),'%Y-%m-%d'));
+        $this->import_examplevalues_array[$r]=array('a.civilite'=>"MR",'a.nom'=>'Smith','a.firstname'=>'John','a.login'=>'jsmith','a.pass'=>'passofjsmith','a.fk_adherent_type'=>'1','a.morphy'=>'"mor" or "phy"','a.societe'=>'JS company','a.address'=>'21 jump street','a.zip'=>'55000','a.town'=>'New York','a.country'=>'1','a.email'=>'jsmith@example.com','a.birth'=>'1972-10-10','a.statut'=>"0 or 1",'a.note'=>"This is a comment on member",'a.datec'=>dol_print_date($now,'%Y-%m-%d'),'a.datefin'=>dol_print_date(dol_time_plus_duree($now, 1, 'y'),'%Y-%m-%d'));
     }
 
 
diff --git a/htdocs/core/modules/modAgenda.class.php b/htdocs/core/modules/modAgenda.class.php
index d02be9ebf06..89c92a14c69 100644
--- a/htdocs/core/modules/modAgenda.class.php
+++ b/htdocs/core/modules/modAgenda.class.php
@@ -159,6 +159,12 @@ class modAgenda extends DolibarrModules
 		$this->rights[$r][5] = 'delete';
 		$r++;
 
+		$this->rights[$r][0] = 2414;
+		$this->rights[$r][1] = 'Export actions/tasks of others';
+		$this->rights[$r][2] = 'w';
+		$this->rights[$r][3] = 0;
+		$this->rights[$r][4] = 'export';
+		
 		// Main menu entries
 		$this->menu = array();			// List of menus to add
 		$r=0;
@@ -355,12 +361,30 @@ class modAgenda extends DolibarrModules
 		//--------
 		$r=0;
 
-		// $this->export_code[$r]          Code unique identifiant l'export (tous modules confondus)
-		// $this->export_label[$r]         Libelle par defaut si traduction de cle "ExportXXX" non trouvee (XXX = Code)
-		// $this->export_permission[$r]    Liste des codes permissions requis pour faire l'export
-		// $this->export_fields_sql[$r]    Liste des champs exportables en codif sql
-		// $this->export_fields_name[$r]   Liste des champs exportables en codif traduction
-		// $this->export_sql[$r]           Requete sql qui offre les donnees a l'export
+		$r++;
+		$this->export_code[$r]=$this->rights_class.'_'.$r;
+		$this->export_label[$r]="Liste des action commerciales de l'agenda";
+		$this->export_permission[$r]=array(array("agenda","export"));
+		$this->export_fields_array[$r]=array('a.id'=>'IdAgenda','a.label'=>'Actions','a.datep'=>'DateActionStart',
+		'a.datea'=>'DateActionEnd','a.percent'=>'PercentDone','a.fk_user_author'=>'ActionAskedBy','a.fk_user_action'=>'ActionAffectedTo',
+		'a.fk_user_done'=>"ActionDoneBy","a.priority"=>"Priority","a.fulldayevent"=>"EventOnFullDay","a.location"=>"Location",
+		"a.fk_soc"=>"Company","a.fk_contact"=>"contact","a.fk_action"=>"Action");
+
+		$this->export_TypeFields_array[$r]=array('a.id'=>'Numeric','a.label'=>'Text','a.datep'=>'Date','a.datep2'=>'Date',
+		'a.datea'=>'Date','a.datea2'=>'Date','a.percent'=>'Numeric','a.fk_user_author'=>'List:user:name','a.fk_user_action'=>'List:user:name',
+		'a.fk_user_done'=>"List:user:name","a.priority"=>"Numeric","a.fulldayevent"=>"Boolean","a.location"=>"Text",
+		"a.fk_soc"=>"List:Societe:nom","a.fk_contact"=>"List:socpeople:name","a.fk_action"=>"List:c_actioncomm:libelle:code");
+		
+		$this->export_entities_array[$r]=array('a.id'=>'action','a.label'=>'action','a.datep'=>'action','a.datep2'=>'action',
+		'a.datea'=>'action','a.datea2'=>'action','a.percent'=>'action','a.fk_user_author'=>'action','a.fk_user_action'=>'action',
+		'a.fk_user_done'=>"action","a.priority"=>"action","a.fulldayevent"=>"action","a.location"=>"action",
+		"a.fk_soc"=>"action","a.fk_contact"=>"action","a.fk_action"=>"action");
+
+		$this->export_sql_start[$r]='SELECT DISTINCT ';
+		$this->export_sql_end[$r]  =' FROM  '.MAIN_DB_PREFIX.'actioncomm as a';
+		$this->export_sql_end[$r] .=' Where a.entity = '.$conf->entity;
+		$this->export_sql_end[$r] .=' ORDER BY datep';
+
 	}
 
 
diff --git a/htdocs/core/modules/modBanque.class.php b/htdocs/core/modules/modBanque.class.php
index 1bae9f61129..832d96a194b 100644
--- a/htdocs/core/modules/modBanque.class.php
+++ b/htdocs/core/modules/modBanque.class.php
@@ -65,7 +65,7 @@ class modBanque extends DolibarrModules
 
         // Config pages
         //-------------
-        $this->config_page_url = array("bank.php@compta/bank");
+        $this->config_page_url = array("bank.php");
 
 		// Dependancies
 		$this->depends = array();
diff --git a/htdocs/core/modules/modCommissions.class.php b/htdocs/core/modules/modCommissions.class.php
deleted file mode 100644
index 64908f5248c..00000000000
--- a/htdocs/core/modules/modCommissions.class.php
+++ /dev/null
@@ -1,169 +0,0 @@
-
- * Copyright (C) 2012	Laurent Destailleur		
- *
- * 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 .
- */
-
-/**
- * 	\defgroup   commissions     Module commissions
- * 	\brief      Module commissions
- * 	\file       htdocs/core/modules/modCommissions.class.php
- * 	\ingroup    commissions
- * 	\brief      Description and activation file for module Commissions
- */
-include_once DOL_DOCUMENT_ROOT .'/core/modules/DolibarrModules.class.php';
-
-
-/**
- * 	Class to describe modude Commisions
- */
-class modCommissions extends DolibarrModules
-{
-    /**
-     * 	Constructor
-     *
-     * 	@param	DoliDB	$db		Database handler
-     */
-	function __construct($db)
-	{
-		$this->db = $db;
-
-		// Id for module (must be unique).
-		// Use here a free id (See in Home -> System information -> Dolibarr for list of used modules id).
-		$this->numero = 60000;
-		// Key text used to identify module (for permissions, menus, etc...)
-		$this->rights_class = 'Commissions';
-
-		// Family can be 'crm','financial','hr','projects','products','ecm','technic','other'
-		// It is used to group modules in module setup page
-		$this->family = "financial";
-		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
-		$this->name = preg_replace('/^mod/i','',get_class($this));
-		// Module description, used if translation string 'ModuleXXXDesc' not found (where XXX is value of numeric property 'numero' of module)
-		$this->description = "Commissions management";
-		// Possible values for version are: 'development', 'experimental', 'dolibarr' or version
-		$this->version = 'experimental';
-		// Key used in llx_const table to save module status enabled/disabled (where MYMODULE is value of property name of module in uppercase)
-		$this->const_name = 'MAIN_MODULE_'.strtoupper($this->name);
-		// Where to store the module in setup page (0=common,1=interface,2=other)
-		$this->special = 2;
-		// Name of png file (without png) used for this module.
-		// Png file must be in theme/yourtheme/img directory under name object_pictovalue.png.
-		$this->picto='commissions';
-
-		// Data directories to create when module is enabled.
-		$this->dirs = array();
-
-		// Config pages. Put here list of php page names stored in admmin directory used to setup module.
-		$this->config_page_url = array("commissions.php@commissions");
-
-		// Dependencies
-		$this->depends = array("modFacture", "modMargin");		// List of modules id that must be enabled if this module is enabled
-		$this->requiredby = array();	// List of modules id to disable if this one is disabled
-		$this->phpmin = array(5,1);					// Minimum version of PHP required by module
-		$this->need_dolibarr_version = array(3,2);	// Minimum version of Dolibarr required by module
-		$this->langfiles = array("commissions");
-
-		// Constants
-		$this->const = array(0=>array('COMMISSION_BASE',"chaine","TURNOVER",'Default commission base',0));			// List of particular constants to add when module is enabled
-
-		// New pages on tabs
-		$this->tabs = array();
-
-		// Boxes
-		$this->boxes = array();			// List of boxes
-		$r=0;
-
-		// Permissions
-		$this->rights = array();		// Permission array used by this module
-		$r=0;
-
-		// Add here list of permission defined by an id, a label, a boolean and two constant strings.
-		// Example:
-		// $this->rights[$r][0] = 2000; 				// Permission id (must not be already used)
-		// $this->rights[$r][1] = 'Permision label';	// Permission label
-		// $this->rights[$r][3] = 1; 					// Permission by default for new user (0/1)
-		// $this->rights[$r][4] = 'level1';				// In php code, permission will be checked by test if ($user->rights->permkey->level1->level2)
-		// $this->rights[$r][5] = 'level2';				// In php code, permission will be checked by test if ($user->rights->permkey->level1->level2)
-		// $r++;
-
-
-		// Main menu entries
-		$this->menu = array();			// List of menus to add
-		$r = 0;
-
-		// left menu entry
-		$this->menu[$r]=array(
-				'fk_menu'=>'fk_mainmenu=accountancy',			// Put 0 if this is a top menu
-    			'type'=>'left',			// This is a Top menu entry
-    			'titre'=>'Commissions',
-    			'mainmenu'=>'accountancy',
-    			'leftmenu'=>'commissions',		// Use 1 if you also want to add left menu entries using this descriptor. Use 0 if left menu entries are defined in a file pre.inc.php (old school).
-    			'url'=>'/commissions/index.php',
-    			'langs'=>'commissions',	// Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
-    			'position'=>200,
-    			'enabled'=>'$conf->commissions->enabled',			// Define condition to show or hide menu entry. Use '$conf->monmodule->enabled' if entry must be visible if module is enabled.
-    			'perms'=>'1',			// Use 'perms'=>'$user->rights->monmodule->level1->level2' if you want your menu with a permission rules
-    			'target'=>'',
-    			'user'=>2);				// 0=Menu for internal users, 1=external users, 2=both
-		$r++;
- 	}
-
-	/**
-     *	Function called when module is enabled.
-     *	The init function add constants, boxes, permissions and menus (defined in constructor) into Dolibarr database.
-     *	It also creates data directories.
-     *
-	 *  @return     int             1 if OK, 0 if KO
-     */
-	function init()
-  	{
-    	$sql = array();
-
-		$result=$this->load_tables();
-
-    	return $this->_init($sql);
-  	}
-
-	/**
-	 *	Function called when module is disabled.
- 	 *  Remove from database constants, boxes and permissions from Dolibarr database.
- 	 *	Data directories are not deleted.
- 	 *
-	 *  @return     int             1 if OK, 0 if KO
- 	 */
-	function remove()
-	{
-    	$sql = array();
-
-    	return $this->_remove($sql);
-  	}
-
-
-	/**
-	 *	Create tables and keys required by module
-	 * 	Files mymodule.sql and mymodule.key.sql with create table and create keys
-	 * 	commands must be stored in directory /mymodule/sql/
-	 *	This function is called by this->init.
-	 *
-	 * 	@return		int		<=0 if KO, >0 if OK
-	 */
-	function load_tables()
-	{
-		return;
-	}
-}
-
-?>
diff --git a/htdocs/core/modules/modCron.class.php b/htdocs/core/modules/modCron.class.php
new file mode 100644
index 00000000000..828e3c2664a
--- /dev/null
+++ b/htdocs/core/modules/modCron.class.php
@@ -0,0 +1,181 @@
+
+ *
+ * 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 .
+ */
+
+/**
+ * 	\defgroup   cron     Module cron
+ *  \brief      cron module descriptor.
+ *  \file       cron/core/modules/modCron.class.php
+ *  \ingroup    cron
+ *  \brief      Description and activation file for module Jobs
+ */
+include_once DOL_DOCUMENT_ROOT .'/core/modules/DolibarrModules.class.php';
+
+/**
+ *	Class to describe a Cron module
+ */
+class modCron extends DolibarrModules
+{
+
+    /**
+	 *   Constructor. Define names, constants, directories, boxes, permissions
+	 *
+	 *   @param      DoliDB		$db      Database handler
+     */
+    function __construct($db)
+    {
+        $this->db = $db;
+        $this->numero = 2300;
+
+		// Family can be 'crm','financial','hr','projects','products','ecm','technic','other'
+		// It is used to group modules in module setup page
+        $this->family = "base";
+        // Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
+        $this->name = preg_replace('/^mod/i','',get_class($this));
+        $this->description = "Enable the Dolibarr cron service";
+        $this->version = 'experimental';                        // 'experimental' or 'dolibarr' or version
+        // Key used in llx_const table to save module status enabled/disabled (where MYMODULE is value of property name of module in uppercase)
+        $this->const_name = 'MAIN_MODULE_'.strtoupper($this->name);
+        // Where to store the module in setup page (0=common,1=interface,2=others,3=very specific)
+        $this->special = 2;
+        // Name of image file used for this module.
+        $this->picto='technic';
+
+        // Data directories to create when module is enabled
+        $this->dirs = array();
+
+        // Config pages
+        //-------------
+        $this->config_page_url = array("cron.php@cron");
+
+        // Dependancies
+        //-------------
+        $this->depends = array();
+        $this->requiredby = array();
+        $this->langfiles = array("cron@cron");
+
+        // Constantes
+        //-----------
+        	$this->const = array(
+				0=>array(
+					'CRON_KEY',
+					'chaine',
+					'',
+					'CRON KEY',
+					0,
+					'main',
+					0
+				),);
+
+        // New pages on tabs
+        // -----------------
+        $this->tabs = array();
+
+        // Boxes
+        //------
+        $this->boxes = array();
+
+		// Permissions
+		$this->rights = array();		// Permission array used by this module
+		$this->rights_class = 'cron';
+		$r=0;
+
+		$this->rights[$r][0] = 23001;
+		$this->rights[$r][1] = 'Read cron jobs';
+		$this->rights[$r][3] = 1;
+		$this->rights[$r][4] = 'read';
+		$r++;
+
+		$this->rights[$r][0] = 23002;
+		$this->rights[$r][1] = 'Create cron Jobs';
+		$this->rights[$r][3] = 0;
+		$this->rights[$r][4] = 'create';
+		$r++;
+
+		$this->rights[$r][0] = 23003;
+		$this->rights[$r][1] = 'Delete cron Jobs';
+		$this->rights[$r][3] = 0;
+		$this->rights[$r][4] = 'delete';
+		$r++;
+
+		$this->rights[$r][0] = 23004;
+		$this->rights[$r][1] = 'Execute cron Jobs';
+		$this->rights[$r][3] = 0;
+		$this->rights[$r][4] = 'execute';
+		$r++;
+
+        // Main menu entries
+        $r=0;
+        $this->menu[$r]=array(	'fk_menu'=>'fk_mainmenu=home,fk_leftmenu=modulesadmintools',		    // Use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode
+						        'type'=>'left',			                // This is a Left menu entry
+						        'titre'=>'CronListActive',
+						        'url'=>'/cron/list.php?status=1',
+						        'langs'=>'cron',	        // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
+						        'position'=>200,
+						        'enabled'=>'$leftmenu==\'modulesadmintools\'',  // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected.
+						        'perms'=>'$user->rights->cron->read',			    // Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules
+						        'target'=>'',
+						        'user'=>2);				                // 0=Menu for internal users, 1=external users, 2=both
+        $r++;
+
+        $this->menu[$r]=array(	'fk_menu'=>'fk_mainmenu=home,fk_leftmenu=modulesadmintools',		    // Use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode
+						        'type'=>'left',			                // This is a Left menu entry
+						        'titre'=>'CronListInactive',
+						        'url'=>'/cron/list.php?status=0',
+						        'langs'=>'cron',	        // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
+						        'position'=>201,
+						        'enabled'=>'$leftmenu==\'modulesadmintools\'',  // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected.
+						        'perms'=>'$user->rights->cron->read',			    // Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules
+						        'target'=>'',
+						        'user'=>2);				                // 0=Menu for internal users, 1=external users, 2=both
+        $r++;
+    }
+
+
+    /**
+	 *		Function called when module is enabled.
+	 *		The init function add constants, boxes, permissions and menus (defined in constructor) into Dolibarr database.
+	 *		It also creates data directories
+	 *
+     *      @param      string	$options    Options when enabling module ('', 'noboxes')
+	 *      @return     int             	1 if OK, 0 if KO
+     */
+    function init($options='')
+    {
+        // Prevent pb of modules not correctly disabled
+        //$this->remove($options);
+
+        return $this->_init($sql,$options);
+    }
+
+    /**
+	 *		Function called when module is disabled.
+	 *      Remove from database constants, boxes and permissions from Dolibarr database.
+	 *		Data directories are not deleted
+	 *
+     *      @param      string	$options    Options when enabling module ('', 'noboxes')
+	 *      @return     int             	1 if OK, 0 if KO
+     */
+    function remove($options='')
+    {
+		$sql = array();
+
+		return $this->_remove($sql,$options);
+    }
+
+}
+?>
diff --git a/htdocs/core/modules/modExpedition.class.php b/htdocs/core/modules/modExpedition.class.php
index 112173656c5..5704f96d0cc 100644
--- a/htdocs/core/modules/modExpedition.class.php
+++ b/htdocs/core/modules/modExpedition.class.php
@@ -3,6 +3,7 @@
  * Copyright (C) 2004-2010 Laurent Destailleur  
  * Copyright (C) 2005-2011 Regis Houssin        
  * Copyright (C) 2011      Juanjo Menent	    
+ * Copyright (C) 2013	   Philippe Grand	    
  *
  * 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
@@ -101,7 +102,7 @@ class modExpedition extends DolibarrModules
 		$this->const[$r][4] = 0;
 		$r++;
 
-		$this->const[$r][0] = "LIVRAISON_ADDON";
+		$this->const[$r][0] = "LIVRAISON_ADDON_NUMBER";
 		$this->const[$r][1] = "chaine";
 		$this->const[$r][2] = "mod_livraison_jade";
 		$this->const[$r][3] = 'Nom du gestionnaire de numerotation des bons de reception';
diff --git a/htdocs/core/modules/modFckeditor.class.php b/htdocs/core/modules/modFckeditor.class.php
index 10bd7414722..5c3f3f266bb 100644
--- a/htdocs/core/modules/modFckeditor.class.php
+++ b/htdocs/core/modules/modFckeditor.class.php
@@ -67,9 +67,12 @@ class modFckeditor extends DolibarrModules
 
 		// Constantes
 		$this->const = array();
-        $this->const[0]  = array("FCKEDITOR_ENABLE_SOCIETE","yesno","1","Activation fckeditor sur notes autres");
-        $this->const[1]  = array("FCKEDITOR_ENABLE_PRODUCTDESC","yesno","1","Activation fckeditor sur notes produits");
-        $this->const[2]  = array("FCKEDITOR_ENABLE_MAILING","yesno","1","Activation fckeditor sur emailing");
+        $this->const[0]  = array("FCKEDITOR_ENABLE_SOCIETE","yesno","1","WYSIWIG for description and note (except products/services)");
+        $this->const[1]  = array("FCKEDITOR_ENABLE_PRODUCTDESC","yesno","1","WYSIWIG for products/services description and note");
+        $this->const[2]  = array("FCKEDITOR_ENABLE_MAILING","yesno","1","WYSIWIG for mass emailings");
+        $this->const[3]  = array("FCKEDITOR_ENABLE_DETAILS","yesno","1","WYSIWIG for products details lines for all entities");
+        $this->const[4]  = array("FCKEDITOR_ENABLE_USERSIGN","yesno","1","WYSIWIG for products details lines for all entities");
+        $this->const[5]  = array("FCKEDITOR_ENABLE_MAIL","yesno","1","WYSIWIG for products details lines for all entities");
 
 		// Boites
 		$this->boxes = array();
diff --git a/htdocs/core/modules/modFournisseur.class.php b/htdocs/core/modules/modFournisseur.class.php
index 4cb3b9163ef..5ebff71df0c 100644
--- a/htdocs/core/modules/modFournisseur.class.php
+++ b/htdocs/core/modules/modFournisseur.class.php
@@ -3,6 +3,7 @@
  * Copyright (C) 2004-2012 Laurent Destailleur  
  * Copyright (C) 2005-2012 Regis Houssin        
  * Copyright (C) 2012      Juanjo Menent		
+ * Copyright (C) 2013	   Philippe Grand	    
  *
  * 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
@@ -72,7 +73,7 @@ class modFournisseur extends DolibarrModules
             $this->langfiles = array('bills', 'companies', 'suppliers', 'orders');
 
             // Config pages
-            $this->config_page_url = array("fournisseur.php");
+            $this->config_page_url = array("supplier_order.php");
 
             // Constantes
             $this->const = array();
@@ -81,16 +82,29 @@ class modFournisseur extends DolibarrModules
             $this->const[$r][0] = "COMMANDE_SUPPLIER_ADDON_PDF";
             $this->const[$r][1] = "chaine";
             $this->const[$r][2] = "muscadet";
+			$this->const[$r][3] = 'Nom du gestionnaire de generation des bons de commande en PDF';
+			$this->const[$r][4] = 0;
 			$r++;
 
-            $this->const[$r][0] = "COMMANDE_SUPPLIER_ADDON";
+            $this->const[$r][0] = "COMMANDE_SUPPLIER_ADDON_NUMBER";
             $this->const[$r][1] = "chaine";
             $this->const[$r][2] = "mod_commande_fournisseur_muguet";
+			$this->const[$r][3] = 'Nom du gestionnaire de numerotation des commandes fournisseur';
+			$this->const[$r][4] = 0;
 			$r++;
 
 			$this->const[$r][0] = "INVOICE_SUPPLIER_ADDON_PDF";
             $this->const[$r][1] = "chaine";
             $this->const[$r][2] = "canelle";
+			$this->const[$r][3] = 'Nom du gestionnaire de generation des factures fournisseur en PDF';
+			$this->const[$r][4] = 0;
+			$r++;
+			
+			$this->const[$r][0] = "INVOICE_SUPPLIER_ADDON_NUMBER";
+            $this->const[$r][1] = "chaine";
+            $this->const[$r][2] = "mod_facture_fournisseur_cactus";
+			$this->const[$r][3] = 'Nom du gestionnaire de numerotation des factures fournisseur';
+			$this->const[$r][4] = 0;
 			$r++;
 
             // Boxes
diff --git a/htdocs/core/modules/modProjet.class.php b/htdocs/core/modules/modProjet.class.php
index 877bea83b22..a17835ddcc6 100644
--- a/htdocs/core/modules/modProjet.class.php
+++ b/htdocs/core/modules/modProjet.class.php
@@ -86,6 +86,13 @@ class modProjet extends DolibarrModules
 		$this->const[$r][4] = 0;
 		$r++;
 
+		$r++;
+		$this->const[$r][0] = "PROJECT_ADDON_PDF_ODT_PATH";
+		$this->const[$r][1] = "chaine";
+		$this->const[$r][2] = "DOL_DATA_ROOT/doctemplates/project";
+		$this->const[$r][3] = "";
+		$this->const[$r][4] = 0;
+
 		// Boxes
 		$this->boxes = array();
 
diff --git a/htdocs/core/modules/project/pdf/doc_generic_project_odt.modules.php b/htdocs/core/modules/project/pdf/doc_generic_project_odt.modules.php
new file mode 100644
index 00000000000..7ba6defaa3b
--- /dev/null
+++ b/htdocs/core/modules/project/pdf/doc_generic_project_odt.modules.php
@@ -0,0 +1,481 @@
+
+ * Copyright (C) 2012		Juanjo Menent		
+ * 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 .
+ * or see http://www.gnu.org/
+ */
+
+/**
+ *	\file       htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php
+ *	\ingroup    commande
+ *	\brief      File of class to build ODT documents for third parties
+ */
+
+require_once DOL_DOCUMENT_ROOT.'/core/modules/project/modules_project.php';
+require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
+require_once DOL_DOCUMENT_ROOT.'/projet/class/task.class.php';
+require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
+require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
+require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
+require_once DOL_DOCUMENT_ROOT.'/core/lib/doc.lib.php';
+
+
+/**
+ *	Class to build documents using ODF templates generator
+ */
+class doc_generic_project_odt extends ModelePDFProjects
+{
+	var $emetteur;	// Objet societe qui emet
+
+	var $phpmin = array(5,2,0);	// Minimum version of PHP required by module
+	var $version = 'dolibarr';
+
+
+	/**
+	 *	Constructor
+	 *
+	 *  @param		DoliDB		$db      Database handler
+	 */
+	function __construct($db)
+	{
+		global $conf,$langs,$mysoc;
+
+		$langs->load("main");
+		$langs->load("companies");
+
+		$this->db = $db;
+		$this->name = "ODT templates";
+		$this->description = $langs->trans("DocumentModelOdt");
+		$this->scandir = 'PROJECT_ADDON_PDF_ODT_PATH';	// Name of constant that is used to save list of directories to scan
+
+		// Dimension page pour format A4
+		$this->type = 'odt';
+		$this->page_largeur = 0;
+		$this->page_hauteur = 0;
+		$this->format = array($this->page_largeur,$this->page_hauteur);
+		$this->marge_gauche=0;
+		$this->marge_droite=0;
+		$this->marge_haute=0;
+		$this->marge_basse=0;
+
+		$this->option_logo = 1;                    // Affiche logo
+		$this->option_tva = 0;                     // Gere option tva COMMANDE_TVAOPTION
+		$this->option_modereg = 0;                 // Affiche mode reglement
+		$this->option_condreg = 0;                 // Affiche conditions reglement
+		$this->option_codeproduitservice = 0;      // Affiche code produit-service
+		$this->option_multilang = 0;               // Dispo en plusieurs langues
+		$this->option_escompte = 0;                // Affiche si il y a eu escompte
+		$this->option_credit_note = 0;             // Support credit notes
+		$this->option_freetext = 1;				   // Support add of a personalised text
+		$this->option_draft_watermark = 0;		   // Support add of a watermark on drafts
+
+		// Recupere emetteur
+		$this->emetteur=$mysoc;
+		if (! $this->emetteur->pays_code) $this->emetteur->pays_code=substr($langs->defaultlang,-2);    // Par defaut, si n'etait pas defini
+	}
+
+
+    /**
+     * Define array with couple substitution key => substitution value
+     *
+     * @param   Object			$object             Main object to use as data source
+     * @param   Translate		$outputlangs        Lang object to use for output
+     * @return	array								Array of substitution
+     */
+    function get_substitutionarray_object($object,$outputlangs)
+    {
+        global $conf;
+		 dol_syslog(get_class($this)."::get_substitutionarray_object object=".var_export($object,true), LOG_DEBUG);
+        return array(
+            'object_id'=>$object->id,
+            'object_ref'=>$object->ref,
+            'object_title'=>$object->title,
+        	'object_description'=>$object->description,
+        	'object_date_creation'=>dol_print_date($object->date_c,'day'),
+        	'object_date_modification'=>dol_print_date($object->date_m,'day'),
+        	'object_date_start'=>dol_print_date($object->date_start,'day'),
+        	'object_date_end'=>dol_print_date($object->date_end,'day'),
+      		'object_note_private'=>$object->note_private,
+        	'object_note_public'=>$object->note_public,
+        	'object_public'=>$object->public,
+        	'object_statut'=>$object->getLibStatut()
+        );
+    }
+
+    /**
+     *	Define array with couple substitution key => substitution value
+     *
+     *	@param  array			$line				Array of lines
+     *	@param  Translate		$outputlangs        Lang object to use for output
+     *  @return	array								Return a substitution array
+     */
+    function get_substitutionarray_lines($line,$outputlangs)
+    {
+        global $conf;
+
+        return array(
+        'line_ref'=>$line->ref,
+        'line_fk_project'=>$line->fk_project,
+        'line_projectref'=>$line->projectref,
+        'line_projectlabel'=>$line->projectlabel,
+        'line_label'=>$line->label,
+        'line_description'=>$line->description,
+        'line_fk_parent'=>$line->fk_parent,
+        'line_duration'=>$line->duration,
+        'line_progress'=>$line->progress,
+        'line_public'=>$line->public,
+        'line_date_start'=>dol_print_date($line->date_start,'day'),
+        'line_date_end'=>dol_print_date($line->date_end,'day')
+        );
+    }
+
+	/**
+	 *	Return description of a module
+	 *
+     *	@param	Translate	$langs      Lang object to use for output
+	 *	@return string       			Description
+	 */
+	function info($langs)
+	{
+		global $conf,$langs;
+
+		$langs->load("companies");
+		$langs->load("errors");
+
+		$form = new Form($this->db);
+
+		$texte = $this->description.".
\n"; + $texte.= '
'; + $texte.= ''; + $texte.= ''; + $texte.= ''; + $texte.= ''; + + // List of directories area + $texte.= ''; + + + $texte.= ''; + $texte.= ''; + + /*$texte.= ''; + $texte.= ''; + $texte.= '';*/ + + $texte.= '
'; + $texttitle=$langs->trans("ListOfDirectories"); + $listofdir=explode(',',preg_replace('/[\r\n]+/',',',trim($conf->global->PROJECT_ADDON_PDF_ODT_PATH))); + $listoffiles=array(); + foreach($listofdir as $key=>$tmpdir) + { + $tmpdir=trim($tmpdir); + $tmpdir=preg_replace('/DOL_DATA_ROOT/',DOL_DATA_ROOT,$tmpdir); + if (! $tmpdir) { unset($listofdir[$key]); continue; } + if (! is_dir($tmpdir)) $texttitle.=img_warning($langs->trans("ErrorDirNotFound",$tmpdir),0); + else + { + $tmpfiles=dol_dir_list($tmpdir,'files',0,'\.odt'); + if (count($tmpfiles)) $listoffiles=array_merge($listoffiles,$tmpfiles); + } + } + $texthelp=$langs->trans("ListOfDirectoriesForModelGenODT"); + // Add list of substitution keys + $texthelp.='
'.$langs->trans("FollowingSubstitutionKeysCanBeUsed").'
'; + $texthelp.=$langs->transnoentitiesnoconv("FullListOnOnlineDocumentation"); // This contains an url, we don't modify it + + $texte.= $form->textwithpicto($texttitle,$texthelp,1,'help','',1); + $texte.= ''; + $texte.= ''; + $texte.= ''; + $texte.= '
'; + $texte.= ''; + $texte.= '  '; + $texte.= ''; + $texte.= '
'; + + // Scan directories + if (count($listofdir)) $texte.=$langs->trans("NumberOfModelFilesFound").': '.count($listoffiles).''; + + $texte.= '
'; + $texte.= $langs->trans("ExampleOfDirectoriesForModelGen"); + $texte.= '
'; + $texte.= ''; + $texte.= '
'; + $texte.= '
'; + + return $texte; + } + + /** + * Function to build a document on disk using the generic odt module. + * + * @param Commande $object Object source to build document + * @param Translate $outputlangs Lang output object + * @param string $srctemplatepath Full path of source filename for generator using a template file + * @return int 1 if OK, <=0 if KO + */ + function write_file($object,$outputlangs,$srctemplatepath) + { + global $user,$langs,$conf,$mysoc; + + if (empty($srctemplatepath)) + { + dol_syslog("doc_generic_odt::write_file parameter srctemplatepath empty", LOG_WARNING); + return -1; + } + + if (! is_object($outputlangs)) $outputlangs=$langs; + $sav_charset_output=$outputlangs->charset_output; + $outputlangs->charset_output='UTF-8'; + + $outputlangs->load("main"); + $outputlangs->load("dict"); + $outputlangs->load("companies"); + $outputlangs->load("projects"); + + if ($conf->projet->dir_output) + { + // If $object is id instead of object + if (! is_object($object)) + { + $id = $object; + $object = new Project($this->db); + $result=$object->fetch($id); + if ($result < 0) + { + dol_print_error($this->db,$object->error); + return -1; + } + } + + $dir = $conf->projet->dir_output; + $objectref = dol_sanitizeFileName($object->ref); + if (! preg_match('/specimen/i',$objectref)) $dir.= "/" . $objectref; + $file = $dir . "/" . $objectref . ".odt"; + + if (! file_exists($dir)) + { + if (dol_mkdir($dir) < 0) + { + $this->error=$langs->transnoentities("ErrorCanNotCreateDir",$dir); + return -1; + } + } + + if (file_exists($dir)) + { + //print "srctemplatepath=".$srctemplatepath; // Src filename + $newfile=basename($srctemplatepath); + $newfiletmp=preg_replace('/\.odt/i','',$newfile); + $newfiletmp=preg_replace('/template_/i','',$newfiletmp); + $newfiletmp=preg_replace('/modele_/i','',$newfiletmp); + $newfiletmp=$objectref.'_'.$newfiletmp; + //$file=$dir.'/'.$newfiletmp.'.'.dol_print_date(dol_now(),'%Y%m%d%H%M%S').'.odt'; + $file=$dir.'/'.$newfiletmp.'.odt'; + //print "newdir=".$dir; + //print "newfile=".$newfile; + //print "file=".$file; + //print "conf->societe->dir_temp=".$conf->societe->dir_temp; + + dol_mkdir($conf->projet->dir_temp); + + + // List of all contact + $usecontact=false; + $arrayidcontact=$object->liste_contact(-1,'internal'); + if (count($arrayidcontact) > 0) + { + $usecontact=true; + $result=$object->fetch_contact($arrayidcontact[0]['id']); + } + + $socobject=$object->thirdparty; + + // Make substitution + $substitutionarray=array( + '__FROM_NAME__' => $this->emetteur->nom, + '__FROM_EMAIL__' => $this->emetteur->email, + ); + complete_substitutions_array($substitutionarray, $langs, $object); + + // Open and load template + require_once ODTPHP_PATH.'odf.php'; + $odfHandler = new odf( + $srctemplatepath, + array( + 'PATH_TO_TMP' => $conf->projet->dir_temp, + 'ZIP_PROXY' => 'PclZipProxy', // PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy. + 'DELIMITER_LEFT' => '{', + 'DELIMITER_RIGHT' => '}' + ) + ); + // After construction $odfHandler->contentXml contains content and + // [!-- BEGIN row.lines --]*[!-- END row.lines --] has been replaced by + // [!-- BEGIN lines --]*[!-- END lines --] + //print html_entity_decode($odfHandler->__toString()); + //print exit; + + // Make substitutions into odt of user info + $tmparray=$this->get_substitutionarray_user($user,$outputlangs); + //var_dump($tmparray); exit; + foreach($tmparray as $key=>$value) + { + try { + if (preg_match('/logo$/',$key)) // Image + { + //var_dump($value);exit; + if (file_exists($value)) $odfHandler->setImage($key, $value); + else $odfHandler->setVars($key, 'ErrorFileNotFound', true, 'UTF-8'); + } + else // Text + { + $odfHandler->setVars($key, $value, true, 'UTF-8'); + } + } + catch(OdfException $e) + { + } + } + // Make substitutions into odt of mysoc + $tmparray=$this->get_substitutionarray_mysoc($mysoc,$outputlangs); + //var_dump($tmparray); exit; + foreach($tmparray as $key=>$value) + { + try { + if (preg_match('/logo$/',$key)) // Image + { + //var_dump($value);exit; + if (file_exists($value)) $odfHandler->setImage($key, $value); + else $odfHandler->setVars($key, 'ErrorFileNotFound', true, 'UTF-8'); + } + else // Text + { + $odfHandler->setVars($key, $value, true, 'UTF-8'); + } + } + catch(OdfException $e) + { + } + } + + // Make substitutions into odt of thirdparty + $tmparray=$this->get_substitutionarray_thirdparty($socobject,$outputlangs); + foreach($tmparray as $key=>$value) + { + try { + if (preg_match('/logo$/',$key)) // Image + { + if (file_exists($value)) $odfHandler->setImage($key, $value); + else $odfHandler->setVars($key, 'ErrorFileNotFound', true, 'UTF-8'); + } + else // Text + { + $odfHandler->setVars($key, $value, true, 'UTF-8'); + } + } + catch(OdfException $e) + { + } + } + + // Replace tags of object + external modules + $tmparray=$this->get_substitutionarray_object($object,$outputlangs); + complete_substitutions_array($tmparray, $outputlangs, $object); + foreach($tmparray as $key=>$value) + { + try { + if (preg_match('/logo$/',$key)) // Image + { + if (file_exists($value)) $odfHandler->setImage($key, $value); + else $odfHandler->setVars($key, 'ErrorFileNotFound', true, 'UTF-8'); + } + else // Text + { + $odfHandler->setVars($key, $value, true, 'UTF-8'); + } + } + catch(OdfException $e) + { + } + } + + // Replace tags of lines + try + { + $listlines = $odfHandler->setSegment('lines'); + + $taskstatic = new Task($this->db); + + // Security check + $socid=0; + if (!empty($object->fk_soc)) $socid = $object->fk_soc; + + $tasksarray=$taskstatic->getTasksArray(0, 0, $object->id, $socid, 0); + + foreach ($tasksarray as $task) + { + $tmparray=$this->get_substitutionarray_lines($task,$outputlangs); + complete_substitutions_array($tmparray, $outputlangs, $object, $task, "completesubstitutionarray_lines"); + foreach($tmparray as $key => $val) + { + try + { + $listlines->setVars($key, $val, true, 'UTF-8'); + } + catch(OdfException $e) + { + } + catch(SegmentException $e) + { + } + } + $listlines->merge(); + } + $odfHandler->mergeSegment($listlines); + } + catch(OdfException $e) + { + $this->error=$e->getMessage(); + dol_syslog($this->error, LOG_WARNING); + return -1; + } + + // Write new file + //$result=$odfHandler->exportAsAttachedFile('toto'); + $odfHandler->saveToDisk($file); + + if (! empty($conf->global->MAIN_UMASK)) + @chmod($file, octdec($conf->global->MAIN_UMASK)); + + $odfHandler=null; // Destroy object + + return 1; // Success + } + else + { + $this->error=$langs->transnoentities("ErrorCanNotCreateDir",$dir); + return -1; + } + } + + return -1; + } + +} + +?> diff --git a/htdocs/core/modules/propale/doc/pdf_azur.modules.php b/htdocs/core/modules/propale/doc/pdf_azur.modules.php index 134c95e9a1e..6018456fce7 100644 --- a/htdocs/core/modules/propale/doc/pdf_azur.modules.php +++ b/htdocs/core/modules/propale/doc/pdf_azur.modules.php @@ -371,24 +371,20 @@ class pdf_azur extends ModelePDFPropales if ($object->remise_percent) $localtax2ligne-=($localtax2ligne*$object->remise_percent)/100; $vatrate=(string) $object->lines[$i]->tva_tx; + // TODO : store local taxes types into object lines and remove this - $localtax1_array=getLocalTaxesFromRate($vatrate,1,$mysoc); - $localtax2_array=getLocalTaxesFromRate($vatrate,2,$mysoc); - if (empty($localtax1_type)) - $localtax1_type = $localtax1_array[0]; - if (empty($localtax2_type)) - $localtax2_type = $localtax2_array[0]; + $localtaxtmp_array=getLocalTaxesFromRate($vatrate,0,$mysoc); + if ((! isset($localtax1_type)) || $localtax1_type=='') $localtax1_type = $localtaxtmp_array[0]; + if ((! isset($localtax2_type)) || $localtax2_type=='') $localtax2_type = $localtaxtmp_array[2]; //end TODO // retrieve global local tax - if ($localtax1_type == '7') - $localtax1_rate = $localtax1_array[1]; - if ($localtax2_type == '7') - $localtax2_rate = $localtax2_array[1]; + if ($localtax1_type == '7') $localtax1_rate = $localtaxtmp_array[1]; + if ($localtax2_type == '7') $localtax2_rate = $localtaxtmp_array[3]; - if ($localtax1ligne != 0 || $localtax1_type == '7') + if ($localtax1_type && ($localtax1ligne != 0 || $localtax1_type == '7')) $this->localtax1[$localtax1_type][$localtax1_rate]+=$localtax1ligne; - if ($localtax2ligne != 0 || $localtax2_type == '7') + if ($localtax2_type && ($localtax2ligne != 0 || $localtax2_type == '7')) $this->localtax2[$localtax2_type][$localtax2_rate]+=$localtax2ligne; if (($object->lines[$i]->info_bits & 0x01) == 0x01) $vatrate.='*'; diff --git a/htdocs/core/modules/supplier_invoice/mod_facture_fournisseur_cactus.php b/htdocs/core/modules/supplier_invoice/mod_facture_fournisseur_cactus.php new file mode 100644 index 00000000000..7e1febf3189 --- /dev/null +++ b/htdocs/core/modules/supplier_invoice/mod_facture_fournisseur_cactus.php @@ -0,0 +1,147 @@ + + * Copyright (C) 2005-2009 Regis Houssin + * Copyright (C) 2013 Philippe Grand + * + * 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 . + * or see http://www.gnu.org/ + */ + +/** + * \file htdocs/core/modules/supplier_order/mod_facture_fournisseur_cactus.php + * \ingroup supplier invoice + * \brief File containing the Cactus Class of numbering models of suppliers invoices references + */ + +require_once DOL_DOCUMENT_ROOT .'/core/modules/supplier_invoice/modules_facturefournisseur.php'; + + +/** + * Cactus Class of numbering models of suppliers invoices references + */ +class mod_facture_fournisseur_cactus extends ModeleNumRefSuppliersInvoices +{ + var $version='dolibarr'; // 'development', 'experimental', 'dolibarr' + var $error = ''; + var $nom = 'Cactus'; + var $prefix='SI'; + + + /** + * Return description of numbering model + * + * @return string Text with description + */ + function info() + { + global $langs; + return $langs->trans("SimpleNumRefModelDesc",$this->prefix); + } + + + /** + * Returns a numbering example + * + * @return string Example + */ + function getExample() + { + return $this->prefix."1301-0001"; + } + + + /** + * Tests if the numbers already in force in the database do not cause conflicts that would prevent this numbering. + * + * @return boolean false if conflict, true if ok + */ + function canBeActivated() + { + global $conf,$langs; + + $siyymm=''; $max=''; + + $posindice=8; + $sql = "SELECT MAX(SUBSTRING(ref FROM ".$posindice.")) as max"; + $sql.= " FROM ".MAIN_DB_PREFIX."facture_fourn"; + $sql.= " WHERE ref LIKE '".$this->prefix."____-%'"; + $sql.= " AND entity = ".$conf->entity; + $resql=$db->query($sql); + if ($resql) + { + $row = $db->fetch_row($resql); + if ($row) { $siyymm = substr($row[0],0,6); $max=$row[0]; } + } + if (! $siyymm || preg_match('/'.$this->prefix.'[0-9][0-9][0-9][0-9]/i',$siyymm)) + { + return true; + } + else + { + $langs->load("errors"); + $this->error=$langs->trans('ErrorNumRefModel',$max); + return false; + } + } + + /** + * Return next value + * + * @param Societe $objsoc Object third party + * @param Object $object Object + * @return string Value if OK, 0 if KO + */ + function getNextValue($objsoc=0,$object='') + { + global $db,$conf; + + // D'abord on recupere la valeur max + $posindice=8; + $sql = "SELECT MAX(SUBSTRING(ref FROM ".$posindice.")) as max"; + $sql.= " FROM ".MAIN_DB_PREFIX."facture_fourn"; + $sql.= " WHERE ref like '".$this->prefix."____-%'"; + $sql.= " AND entity = ".$conf->entity; + + $resql=$db->query($sql); + if ($resql) + { + $obj = $db->fetch_object($resql); + if ($obj) $max = intval($obj->max); + else $max=0; + } + + //$date=time(); + $date=$object->datec; // Not always defined + if (empty($date)) $date=$object->date; // Creation date is invoice date for suppliers invoices + $yymm = strftime("%y%m",$date); + $num = sprintf("%04s",$max+1); + + return $this->prefix.$yymm."-".$num; + } + + + /** + * Renvoie la reference de facture suivante non utilisee + * + * @param Societe $objsoc Object third party + * @param Object $object Object + * @return string Texte descripif + */ + function invoice_get_num($objsoc=0,$object='') + { + return $this->getNextValue($objsoc,$object); + } +} + +?> diff --git a/htdocs/core/modules/supplier_invoice/mod_facture_fournisseur_tulip.php b/htdocs/core/modules/supplier_invoice/mod_facture_fournisseur_tulip.php new file mode 100644 index 00000000000..d0ee9e23738 --- /dev/null +++ b/htdocs/core/modules/supplier_invoice/mod_facture_fournisseur_tulip.php @@ -0,0 +1,145 @@ + + * Copyright (C) 2004-2008 Laurent Destailleur + * Copyright (C) 2005-2009 Regis Houssin + * Copyright (C) 2013 Philippe Grand + * + * 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 . + * or see http://www.gnu.org/ + */ + +/** + * \file htdocs/core/modules/supplier_invoice/mod_facture_fournisseur_tulip.php + * \ingroup commande + * \brief File containing the Tulip Class of numbering models of suppliers invoices references + */ + +require_once DOL_DOCUMENT_ROOT .'/core/modules/supplier_invoice/modules_facturefournisseur.php'; + + +/** + \class mod_facture_fournisseur_tulip + \brief Tulip Class of numbering models of suppliers invoices references +*/ +class mod_facture_fournisseur_tulip extends ModeleNumRefSuppliersInvoices +{ + var $version='dolibarr'; // 'development', 'experimental', 'dolibarr' + var $error = ''; + var $nom = 'Tulip'; + + + /** + * Returns the description of the model numbering + * + * @return string Description Text + */ + function info() + { + global $conf,$langs; + + $langs->load("bills"); + $langs->load("admin"); + + $form = new Form($this->db); + + $texte = $langs->trans('GenericNumRefModelDesc')."
\n"; + $texte.= '
'; + $texte.= ''; + $texte.= ''; + $texte.= ''; + $texte.= ''; + + $tooltip=$langs->trans("GenericMaskCodes",$langs->transnoentities("Invoice"),$langs->transnoentities("Invoice")); + $tooltip.=$langs->trans("GenericMaskCodes2"); + $tooltip.=$langs->trans("GenericMaskCodes3"); + $tooltip.=$langs->trans("GenericMaskCodes4a",$langs->transnoentities("Invoice"),$langs->transnoentities("Invoice")); + $tooltip.=$langs->trans("GenericMaskCodes5"); + + // Parametrage du prefix + $texte.= ''; + $texte.= ''; + + $texte.= ''; + + $texte.= ''; + + $texte.= '
'.$langs->trans("Mask").':'.$form->textwithpicto('',$tooltip,1,1).' 
'; + $texte.= '
'; + + return $texte; + } + + /** + * Returns a numbering example + * + * @return string Example + */ + function getExample() + { + global $conf,$langs,$mysoc; + + $old_code_client=$mysoc->code_client; + $mysoc->code_client='CCCCCCCCCC'; + $numExample = $this->getNextValue($mysoc,''); + $mysoc->code_client=$old_code_client; + + if (! $numExample) + { + $numExample = $langs->trans('NotConfigured'); + } + return $numExample; + } + + /** + * Return next value + * + * @param Societe $objsoc Object third party + * @param Object $object Object + * @return string Value if OK, 0 if KO + */ + function getNextValue($objsoc=0,$object='') + { + global $db,$conf; + + require_once DOL_DOCUMENT_ROOT .'/core/lib/functions2.lib.php'; + + // On defini critere recherche compteur + $mask=$conf->global->SUPPLIER_INVOICE_TULIP_MASK; + + if (! $mask) + { + $this->error='NotConfigured'; + return 0; + } + + $numFinal=get_next_value($db,$mask,'facture_fournisseur','ref','',$objsoc->code_fournisseur,$object->datec); + + return $numFinal; + } + + + /** + * Renvoie la reference de facture suivante non utilisee + * + * @param Societe $objsoc Object third party + * @param Object $object Object + * @return string Texte descripif + */ + function invoice_get_num($objsoc=0,$object='') + { + return $this->getNextValue($objsoc,$object); + } +} + +?> \ No newline at end of file diff --git a/htdocs/core/modules/supplier_invoice/modules_facturefournisseur.php b/htdocs/core/modules/supplier_invoice/modules_facturefournisseur.php index 5d409dd6c67..6be7100c14e 100755 --- a/htdocs/core/modules/supplier_invoice/modules_facturefournisseur.php +++ b/htdocs/core/modules/supplier_invoice/modules_facturefournisseur.php @@ -1,6 +1,7 @@ * Copyright (C) 2012 Regis Houssin + * Copyright (C) 2013 Philippe Grand * * 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 @@ -20,9 +21,11 @@ /** * \file htdocs/core/modules/supplier_invoice/modules_facturefournisseur.php * \ingroup facture fournisseur - * \brief File that contain parent class for supplier invoices models + * \brief File that contains parent class for supplier invoices models + * and parent class for supplier invoices numbering models */ require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php'; +require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; // requis car utilise par les classes qui heritent /** @@ -34,7 +37,7 @@ abstract class ModelePDFSuppliersInvoices extends CommonDocGenerator /** - * Return list of active generation modules + * Return list of active generation models * * @param DoliDB $db Database handler * @param string $maxfilenamelength Max length of value to show @@ -56,7 +59,80 @@ abstract class ModelePDFSuppliersInvoices extends CommonDocGenerator } /** - * Create a document onto disk according to template module. + * Parent Class of numbering models of suppliers invoices references + */ +abstract class ModeleNumRefSuppliersInvoices +{ + var $error=''; + + /** Return if a model can be used or not + * + * @return boolean true if model can be used + */ + function isEnabled() + { + return true; + } + + /** Returns the default description of the model numbering + * + * @return string Description Text + */ + function info() + { + global $langs; + $langs->load("invoices"); + return $langs->trans("NoDescription"); + } + + /** Returns a numbering example + * + * @return string Example + */ + function getExample() + { + global $langs; + $langs->load("invoices"); + return $langs->trans("NoExample"); + } + + /** Tests if the numbers already in force in the database do not cause conflicts that would prevent this numbering. + * + * @return boolean false if conflict, true if ok + */ + function canBeActivated() + { + return true; + } + + /** Returns next value assigned + * + * @return string Valeur + */ + function getNextValue() + { + global $langs; + return $langs->trans("NotAvailable"); + } + + /** Returns version of the model numbering + * + * @return string Value + */ + function getVersion() + { + global $langs; + $langs->load("admin"); + + if ($this->version == 'development') return $langs->trans("VersionDevelopment"); + if ($this->version == 'experimental') return $langs->trans("VersionExperimental"); + if ($this->version == 'dolibarr') return DOL_VERSION; + return $langs->trans("NotAvailable"); + } +} + +/** + * Create a document onto disk according to template model. * * @param DoliDB $db Database handler * @param Object $object Object supplier invoice @@ -83,7 +159,7 @@ function supplier_invoice_pdf_create($db, $object, $modele, $outputlangs, $hided $srctemplatepath=''; - // Positionne le modele sur le nom du modele a utiliser + // Set the model on the model name to use if (! dol_strlen($modele)) { if (! empty($conf->global->INVOICE_SUPPLIER_ADDON_PDF)) @@ -114,7 +190,7 @@ function supplier_invoice_pdf_create($db, $object, $modele, $outputlangs, $hided { $file = $prefix."_".$modele.".modules.php"; - // On verifie l'emplacement du modele + // We checked the location of the model $file=dol_buildpath($reldir."core/modules/supplier_invoice/pdf/".$file,0); if (file_exists($file)) { @@ -126,7 +202,7 @@ function supplier_invoice_pdf_create($db, $object, $modele, $outputlangs, $hided if ($filefound) break; } - // Charge le modele + // Load the model if ($filefound) { require_once $file; @@ -144,12 +220,12 @@ function supplier_invoice_pdf_create($db, $object, $modele, $outputlangs, $hided require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; dol_delete_preview($object); - // Appel des triggers + // Calls triggers include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; $interface=new Interfaces($db); $result=$interface->run_triggers('BILL_INVOICE_BUILDDOC',$object,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } - // Fin appel triggers + // End calls triggers return 1; } @@ -163,7 +239,14 @@ function supplier_invoice_pdf_create($db, $object, $modele, $outputlangs, $hided } else { - print $langs->trans("Error")." ".$langs->trans("ErrorFileDoesNotExists",$file); + if (! $conf->global->INVOICE_SUPPLIER_ADDON_PDF) + { + print $langs->trans("Error")." ".$langs->trans("Error_INVOICE_SUPPLIER_ADDON_PDF_NotDefined"); + } + else + { + print $langs->trans("Error")." ".$langs->trans("ErrorFileDoesNotExists",$file); + } return 0; } } diff --git a/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php b/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php index 2ed53db1e46..b0c49293a78 100755 --- a/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php +++ b/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php @@ -93,6 +93,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices // Get source company if (! is_object($object->thirdparty)) $object->fetch_thirdparty(); + if (! is_object($object->thirdparty)) $object->thirdparty=$mysoc; // If fetch_thirdparty fails, object has no socid (specimen) $this->emetteur=$object->thirdparty; if (! $this->emetteur->country_code) $this->emetteur->country_code=substr($langs->defaultlang,-2); // By default, if was not defined diff --git a/htdocs/core/modules/supplier_order/modules_commandefournisseur.php b/htdocs/core/modules/supplier_order/modules_commandefournisseur.php index 6b9fd315f18..d14d4ae5f43 100644 --- a/htdocs/core/modules/supplier_order/modules_commandefournisseur.php +++ b/htdocs/core/modules/supplier_order/modules_commandefournisseur.php @@ -4,7 +4,7 @@ * Copyright (C) 2004 Eric Seigne * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2006 Andre Cianfarani - * Copyright (C) 2011 Philippe Grand + * Copyright (C) 2011-2013 Philippe Grand * * 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 @@ -24,7 +24,7 @@ /** * \file htdocs/core/modules/supplier_order/modules_commandefournisseur.php * \ingroup commande fournisseur - * \brief File that contain parent class for supplier orders models + * \brief File that contains parent class for supplier orders models * and parent class for supplier orders numbering models */ require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php'; @@ -40,17 +40,17 @@ abstract class ModelePDFSuppliersOrders extends CommonDocGenerator /** - * Return list of active generation modules + * Return list of active generation models * * @param DoliDB $db Database handler * @param string $maxfilenamelength Max length of value to show - * @return array List of numbers + * @return array List of templates */ static function liste_modeles($db,$maxfilenamelength=0) { global $conf; - $type='order_supplier'; + $type='supplier_order'; $liste=array(); include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; @@ -64,24 +64,24 @@ abstract class ModelePDFSuppliersOrders extends CommonDocGenerator /** - * Classe mere des modeles de numerotation des references de commandes fournisseurs + * Parent Class of numbering models of suppliers orders references */ abstract class ModeleNumRefSuppliersOrders { var $error=''; - /** Return if a module can be used or not + /** Return if a model can be used or not * - * @return boolean true if module can be used + * @return boolean true if model can be used */ function isEnabled() { return true; } - /** Renvoie la description par defaut du modele de numerotation + /** Returns default description of numbering model * - * @return string Texte descripif + * @return string Description Text */ function info() { @@ -90,7 +90,7 @@ abstract class ModeleNumRefSuppliersOrders return $langs->trans("NoDescription"); } - /** Renvoie un exemple de numerotation + /** Returns a numbering example * * @return string Example */ @@ -101,16 +101,16 @@ abstract class ModeleNumRefSuppliersOrders return $langs->trans("NoExample"); } - /** Test si les numeros deja en vigueur dans la base ne provoquent pas de conflits qui empecheraient cette numerotation de fonctionner. + /** Tests if existing numbers make problems with numbering * - * @return boolean false si conflit, true si ok + * @return boolean false if conflict, true if ok */ function canBeActivated() { return true; } - /** Renvoie prochaine valeur attribuee + /** Returns next value assigned * * @return string Valeur */ @@ -120,9 +120,9 @@ abstract class ModeleNumRefSuppliersOrders return $langs->trans("NotAvailable"); } - /** Renvoie version du module numerotation + /** Returns version of the numbering model * - * @return string Valeur + * @return string Value */ function getVersion() { @@ -138,12 +138,12 @@ abstract class ModeleNumRefSuppliersOrders /** - * Create a document onto disk according to template module. + * Create a document onto disk according to template model. * * @param DoliDB $db Database handler * @param Object $object Object supplier order * @param string $modele Force template to use ('' to not force) - * @param Translate $outputlangs Object lang a utiliser pour traduction + * @param Translate $outputlangs Object lang to use for traduction * @param int $hidedetails Hide details of lines * @param int $hidedesc Hide description * @param int $hideref Hide ref @@ -164,7 +164,7 @@ function supplier_order_pdf_create($db, $object, $modele, $outputlangs, $hidedet $srctemplatepath=''; - // Positionne le modele sur le nom du modele a utiliser + // Sets the model on the model name to use if (! dol_strlen($modele)) { if (! empty($conf->global->COMMANDE_SUPPLIER_ADDON_PDF)) @@ -177,7 +177,7 @@ function supplier_order_pdf_create($db, $object, $modele, $outputlangs, $hidedet } } - // If selected modele is a filename template (then $modele="modelname:filename") + // If selected model is a filename template (then $modele="modelname:filename") $tmp=explode(':',$modele,2); if (! empty($tmp[1])) { @@ -195,7 +195,7 @@ function supplier_order_pdf_create($db, $object, $modele, $outputlangs, $hidedet { $file = $prefix."_".$modele.".modules.php"; - // On verifie l'emplacement du modele + // We check the model location $file=dol_buildpath($reldir."core/modules/supplier_order/pdf/".$file,0); if (file_exists($file)) { @@ -207,7 +207,7 @@ function supplier_order_pdf_create($db, $object, $modele, $outputlangs, $hidedet if ($filefound) break; } - // Charge le modele + // Load the model if ($filefound) { require_once $file; @@ -225,12 +225,14 @@ function supplier_order_pdf_create($db, $object, $modele, $outputlangs, $hidedet require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; dol_delete_preview($object); - // Appel des triggers + // Calls triggers include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; $interface=new Interfaces($db); $result=$interface->run_triggers('ORDER_SUPPLIER_BUILDDOC',$object,$user,$langs,$conf); - if ($result < 0) { $error++; $this->errors=$interface->errors; } - // Fin appel triggers + if ($result < 0) { + $error++; $this->errors=$interface->errors; + } + // End calls triggers return 1; } diff --git a/htdocs/core/tpl/admin_extrafields_add.tpl.php b/htdocs/core/tpl/admin_extrafields_add.tpl.php index d4f5cf9ae40..5be1b8baaae 100644 --- a/htdocs/core/tpl/admin_extrafields_add.tpl.php +++ b/htdocs/core/tpl/admin_extrafields_add.tpl.php @@ -25,11 +25,18 @@ var size = jQuery("#size"); var unique = jQuery("#unique"); var required = jQuery("#required"); + var default_value = jQuery("#default_value"); if (type == 'date') { size.val('').attr('disabled','disabled'); unique.removeAttr('disabled','disabled'); jQuery("#value_choice").hide(); } @@ -41,6 +48,7 @@ else if (type == 'boolean') { size.val('').attr('disabled','disabled'); unique.attr('disabled','disabled'); jQuery("#value_choice").hide();} else if (type == 'price') { size.val('').attr('disabled','disabled'); unique.attr('disabled','disabled'); jQuery("#value_choice").hide();} else if (type == 'select') { size.val('').attr('disabled','disabled'); unique.attr('disabled','disabled'); jQuery("#value_choice").show();} + else if (type == 'separate') { size.val('').attr('disabled','disabled'); unique.attr('disabled','disabled'); required.val('').attr('disabled','disabled'); default_value.val('').attr('disabled','disabled'); jQuery("#value_choice").hide();} else size.val('').attr('disabled','disabled'); } init_typeoffields(''); @@ -55,16 +63,16 @@ + + - - - + - + diff --git a/htdocs/core/tpl/objectline_view.tpl.php b/htdocs/core/tpl/objectline_view.tpl.php index abaef7a1910..051f4f98071 100644 --- a/htdocs/core/tpl/objectline_view.tpl.php +++ b/htdocs/core/tpl/objectline_view.tpl.php @@ -16,6 +16,8 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . * + * To use this template, the following var must be defined + * $type, $text, $description, $line */ ?> @@ -38,59 +40,59 @@ description) { - if ($line->description == '(CREDIT_NOTE)') - { - $discount=new DiscountAbsolute($this->db); - $discount->fetch($line->fk_remise_except); - echo ($txt?' - ':'').$langs->transnoentities("DiscountFromCreditNote",$discount->getNomUrl(0)); - } - elseif ($line->description == '(DEPOSIT)') - { - $discount=new DiscountAbsolute($this->db); - $discount->fetch($line->fk_remise_except); - echo ($txt?' - ':'').$langs->transnoentities("DiscountFromDeposit",$discount->getNomUrl(0)); - // Add date of deposit - if (! empty($conf->global->INVOICE_ADD_DEPOSIT_DATE)) echo ' ('.dol_print_date($discount->datec).')'; - } - else - { - echo ($txt?' - ':'').dol_htmlentitiesbr($line->description); - } + if ($line->description == '(CREDIT_NOTE)' && $objp->fk_remise_except > 0) + { + $discount=new DiscountAbsolute($this->db); + $discount->fetch($line->fk_remise_except); + echo ($txt?' - ':'').$langs->transnoentities("DiscountFromCreditNote",$discount->getNomUrl(0)); + } + elseif ($line->description == '(DEPOSIT)' && $objp->fk_remise_except > 0) + { + $discount=new DiscountAbsolute($this->db); + $discount->fetch($line->fk_remise_except); + echo ($txt?' - ':'').$langs->transnoentities("DiscountFromDeposit",$discount->getNomUrl(0)); + // Add date of deposit + if (! empty($conf->global->INVOICE_ADD_DEPOSIT_DATE)) echo ' ('.dol_print_date($discount->datec).')'; + } + else + { + echo ($txt?' - ':'').dol_htmlentitiesbr($line->description); } } - else - { - if ($line->fk_product > 0) { + } + else + { + if ($line->fk_product > 0) { - echo $form->textwithtooltip($text,$description,3,'','',$i,0,($line->fk_parent_line?img_picto('', 'rightarrow'):'')); + echo $form->textwithtooltip($text,$description,3,'','',$i,0,($line->fk_parent_line?img_picto('', 'rightarrow'):'')); - // Show range - print_date_range($line->date_start, $line->date_end); + // Show range + echo get_date_range($line->date_start, $line->date_end); - // Add description in form - if (! empty($conf->global->PRODUIT_DESC_IN_FORM)) - { - print (! empty($line->description) && $line->description!=$line->product_label)?'
'.dol_htmlentitiesbr($line->description):''; - } + // Add description in form + if (! empty($conf->global->PRODUIT_DESC_IN_FORM)) + { + print (! empty($line->description) && $line->description!=$line->product_label)?'
'.dol_htmlentitiesbr($line->description):''; + } + } else { + + if (! empty($line->fk_parent_line)) echo img_picto('', 'rightarrow'); + if ($type==1) $text = img_object($langs->trans('Service'),'service'); + else $text = img_object($langs->trans('Product'),'product'); + + if (! empty($line->label)) { + $text.= ' '.$line->label.''; + echo $form->textwithtooltip($text,dol_htmlentitiesbr($line->description),3,'','',$i,0,($line->fk_parent_line?img_picto('', 'rightarrow'):'')); } else { - - if (! empty($line->fk_parent_line)) echo img_picto('', 'rightarrow'); - if ($type==1) $text = img_object($langs->trans('Service'),'service'); - else $text = img_object($langs->trans('Product'),'product'); - - if (! empty($line->label)) { - $text.= ' '.$line->label.''; - echo $form->textwithtooltip($text,dol_htmlentitiesbr($line->description),3,'','',$i,0,($line->fk_parent_line?img_picto('', 'rightarrow'):'')); - } else { - echo $text.' '.dol_htmlentitiesbr($line->description); - } - - // Show range - print_date_range($line->date_start,$line->date_end); + echo $text.' '.dol_htmlentitiesbr($line->description); } + + // Show range + echo get_date_range($line->date_start,$line->date_end); } - ?> + } + ?>
diff --git a/htdocs/cron/admin/cron.php b/htdocs/cron/admin/cron.php new file mode 100644 index 00000000000..7846a25e636 --- /dev/null +++ b/htdocs/cron/admin/cron.php @@ -0,0 +1,165 @@ + + * Copyright (C) 2005-2013 Laurent Destailleur + * Copyright (C) 2011 Juanjo Menent + * Copyright (C) 2012 Regis Houssin + * 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 cron/admin/cron.php + * \ingroup cron + */ + +// Dolibarr environment +$res = @include("../../main.inc.php"); // From htdocs directory +require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/cron.lib.php'; + +$langs->load("admin"); +$langs->load("cron"); + +if (! $user->admin) + accessforbidden(); + +$actionsave=GETPOST("save"); + +// Sauvegardes parametres +if (!empty($actionsave)) +{ + $i=0; + + $db->begin(); + + $i+=dolibarr_set_const($db,'CRON_KEY',trim(GETPOST("CRON_KEY")),'chaine',0,'',0); + + if ($i >= 1) + { + $db->commit(); + setEventMessage($langs->trans("SetupSaved")); + } + else + { + $db->rollback(); + setEventMessage($langs->trans("Error"), 'errors'); + } +} + + +/* + * View + */ + +llxHeader(); + +$linkback=''.$langs->trans("BackToModuleList").''; +print_fiche_titre($langs->trans("CronSetup"),$linkback,'setup'); + +// Configuration header +$head = cronadmin_prepare_head(); + +dol_fiche_head($head,'setup',$langs->trans("Module2300Name"),0,'cron'); + +print "
\n"; + +print '
'; +print ''; +print '
trans("Type"); ?> +selectarray('type',$type2label,GETPOST('type')); ?> +
trans("Position"); ?>
trans("Label"); ?>
trans("AttributeCode"); ?> (trans("AlphaNumOnlyCharsAndNoSpace"); ?>)
trans("Type"); ?> -selectarray('type',$type2label,GETPOST('type')); ?> -
trans("AttributeCode"); ?> (trans("AlphaNumOnlyCharsAndNoSpace"); ?>)
@@ -75,7 +83,7 @@
trans("DefaultValue"); ?>">
trans("DefaultValue"); ?>">
trans("Size"); ?>
tva_tx,'%',$line->info_bits); ?>
'; + +print ''; +print ""; +print ""; +print ""; +print ""; + +print ''; +print ''; +print ''; +print ''; +print ''; + +print '
".$langs->trans("Parameter")."".$langs->trans("Value")." 
'.$langs->trans("KeyForCronAccess").''; +if (! empty($conf->use_javascript_ajax)) + print ' '.img_picto($langs->trans('Generate'), 'refresh', 'id="generate_token" class="linkobject"'); +print ' 
'; + +print '
'; +print ''; +print '
'; + +print ''; + +dol_fiche_end(); + +print '

'; + + +// Define $urlwithroot +$urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',trim($dolibarr_main_url_root)); +$urlwithroot=$urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file +//$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current + +// Cron launch +print ''.$langs->trans("URLToLaunchCronJobs").':
'; +$url=$urlwithroot.'/public/cron/cron_run_jobs.php'.(empty($conf->global->CRON_KEY)?'':'?securitykey='.$conf->global->CRON_KEY.'&').'userlogin='.$user->login; +print img_picto('','object_globe.png').' '.$url."
\n"; +print ' '.$langs->trans("OrToLaunchASpecificJob").'
'; +$url=$urlwithroot.'/public/cron/cron_run_jobs.php'.(empty($conf->global->CRON_KEY)?'':'?securitykey='.$conf->global->CRON_KEY.'&').'userlogin='.$user->login.'&id=cronjobid'; +print img_picto('','object_globe.png').' '.$url."
\n"; +print '
'; + + +$linuxlike=1; +if (preg_match('/^win/i',PHP_OS)) $linuxlike=0; +if (preg_match('/^mac/i',PHP_OS)) $linuxlike=0; + +print '
'; +print ''.$langs->trans("FileToLaunchCronJobs").':
'; + +$file='/scripts/cron/cron_run_jobs.php'.' '.(empty($conf->global->CRON_KEY)?'securitykey':''.$conf->global->CRON_KEY.'').' '.$user->login.' [cronjobid]'; +print '
\n"; +print '
'; +print $langs->trans("Note").': '; +if ($linuxlike) { + print $langs->trans("CronExplainHowToRunUnix"); +} else { + print $langs->trans("CronExplainHowToRunWin"); +} + + + + +print '
'; + +if (! empty($conf->use_javascript_ajax)) +{ + print "\n".''; +} + +llxFooter(); +$db->close(); \ No newline at end of file diff --git a/htdocs/cron/card.php b/htdocs/cron/card.php new file mode 100644 index 00000000000..fb936b58f3f --- /dev/null +++ b/htdocs/cron/card.php @@ -0,0 +1,597 @@ + + * +* 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 cron/card.php + * \ingroup cron + * \brief Cron Jobs Card + */ + +require '../main.inc.php'; + +require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; + +// librairie jobs +require_once DOL_DOCUMENT_ROOT."/cron/class/cronjob.class.php"; +require_once DOL_DOCUMENT_ROOT."/core/class/html.formcron.class.php"; +require_once DOL_DOCUMENT_ROOT.'/core/lib/cron.lib.php'; + + +$langs->load("admin"); +$langs->load("cron"); + +if (!$user->rights->cron->create) accessforbidden(); + +$id=GETPOST('id','int'); +$action=GETPOST('action','alpha'); +$confirm=GETPOST('confirm','alpha'); +$cancel=GETPOST('cancel'); + +$object = new Cronjob($db); +if (!empty($id)) { + $result=$object->fetch($id); + if ($result < 0) { + setEventMessage($object->error,'errors'); + } +} + +if(!empty($cancel)) { + if (!empty($id)) { + $action=''; + }else { + Header ( "Location: ".dol_buildpath('/cron/cron/list.php',1).'?status=1'); + } + +} + +// Delete jobs +if ($action == 'confirm_delete' && $confirm == "yes" && $user->rights->cron->delete){ + + + $result = $object->delete($user); + + if ($result < 0) { + setEventMessage($object->error,'errors'); + $action='edit'; + }else { + Header ( "Location: ".dol_buildpath('/cron/cron/list.php',1).'?status=1'); + } +} + +// Execute jobs +if ($action == 'confirm_execute' && $confirm == "yes" && $user->rights->cron->execute){ + + $result=$object->run_jobs($user->login); + + if ($result < 0) { + setEventMessage($object->error,'errors'); + $action=''; + }else { + $action=''; + } + +} + + +if ($action=='add') { + + $object->jobtype=GETPOST('jobtype','alpha'); + $object->label=GETPOST('label','alpha'); + $object->command=GETPOST('command','alpha'); + $object->priority=GETPOST('priority','int'); + $object->classesname=GETPOST('classesname','alpha'); + $object->objectname=GETPOST('objectname','alpha'); + $object->methodename=GETPOST('methodename','alpha'); + $object->params=GETPOST('params'); + $object->md5params=GETPOST('md5params'); + $object->module_name=GETPOST('module_name','alpha'); + $object->note=GETPOST('note'); + $object->datestart=dol_mktime(GETPOST('datestarthour','int'), GETPOST('datestartmin','int'), 0, GETPOST('datestartmonth','int'), GETPOST('datestartday','int'), GETPOST('datestartyear','int')); + $object->dateend=dol_mktime(GETPOST('dateendhour','int'), GETPOST('dateendmin','int'), 0, GETPOST('dateendmonth','int'), GETPOST('dateendday','int'), GETPOST('dateendyear','int')); + $object->unitfrequency=GETPOST('unitfrequency','int'); + $object->frequency=$object->unitfrequency * GETPOST('nbfrequency','int'); + + //Ajout de la tache cron + $result = $object->create($user); + + // test du Resultat de la requete + if ($result < 0) { + setEventMessage($object->error,'errors'); + $action='create'; + } + else { + setEventMessage($langs->trans('CronSaveSucess'),'mesgs'); + $action=''; + } +} + +// Save parameters +if ($action=='update') { + $object->id=$id; + $object->jobtype=GETPOST('jobtype','alpha'); + $object->label=GETPOST('label','alpha'); + $object->command=GETPOST('command','alpha'); + $object->classesname=GETPOST('classesname','alpha'); + $object->priority=GETPOST('priority','int'); + $object->objectname=GETPOST('objectname','alpha'); + $object->methodename=GETPOST('methodename','alpha'); + $object->params=GETPOST('params'); + $object->md5params=GETPOST('md5params'); + $object->module_name=GETPOST('module_name','alpha'); + $object->note=GETPOST('note'); + $object->datestart=dol_mktime(GETPOST('datestarthour','int'), GETPOST('datestartmin','int'), 0, GETPOST('datestartmonth','int'), GETPOST('datestartday','int'), GETPOST('datestartyear','int')); + $object->dateend=dol_mktime(GETPOST('dateendhour','int'), GETPOST('dateendmin','int'), 0, GETPOST('dateendmonth','int'), GETPOST('dateendday','int'), GETPOST('dateendyear','int')); + $object->unitfrequency=GETPOST('unitfrequency','int'); + $object->frequency=$object->unitfrequency * GETPOST('nbfrequency','int'); + + //Ajout de la tache cron + $result = $object->update($user); + + // test du Resultat de la requete + if ($result < 0) { + setEventMessage($object->error,'errors'); + $action='edit'; + } + else { + setEventMessage($langs->trans('CronSaveSucess'),'mesgs'); + $action=''; + } +} + +if ($action=='activate') { + $object->status=1; + + //Ajout de la tache cron + $result = $object->update($user); + + // test du Resultat de la requete + if ($result < 0) { + setEventMessage($object->error,'errors'); + $action='edit'; + } + else { + setEventMessage($langs->trans('CronSaveSucess'),'mesgs'); + $action=''; + } +} + +if ($action=='inactive') { + $object->status=0; + //Ajout de la tache cron + $result = $object->update($user); + + // test du Resultat de la requete + if ($result < 0) { + setEventMessage($object->error,'errors'); + $action='edit'; + } + else { + setEventMessage($langs->trans('CronSaveSucess'),'mesgs'); + $action=''; + } +} + + + +/* + * View + */ + +llxHeader('',$langs->trans("CronAdd")); + +if ($action=='edit' || empty($action) || $action=='delete' || $action=='execute') { + $head=cron_prepare_head($object); + dol_fiche_head($head, 'card', $langs->trans("CronTask"), 0, 'bill'); +} elseif ($action=='create') { + print_fiche_titre($langs->trans("CronTask"),'','setup'); +} + +if ($conf->use_javascript_ajax) +{ + print "\n".''."\n"; +} + +$form = new Form($db); +$formCron = new FormCron($db); + +if ($action == 'delete') +{ + $ret=$form->form_confirm($_SERVER['PHP_SELF']."?id=".$object->id,$langs->trans("CronDelete"),$langs->trans("CronConfirmDelete"),"confirm_delete",'','',1); + if ($ret == 'html') print '
'; + $action=''; +} + +if ($action == 'execute'){ + $ret=$form->form_confirm($_SERVER['PHP_SELF']."?id=".$object->id,$langs->trans("CronExecute"),$langs->trans("CronConfirmExecute"),"confirm_execute",'','',1); + if ($ret == 'html') print '
'; + $action=''; +} + + + +/* + * Create Template + */ + +if (empty($object->status) && $action != 'create') +{ + dol_htmloutput_mesg($langs->trans("CronTaskInactive"),'','warning',1); +} + +if (($action=="create") || ($action=="edit")) { + + print '
'; + print ''."\n"; + if (!empty($object->id)) { + print ''."\n"; + print ''."\n"; + } else { + print ''."\n"; + } + + print ''; + + print '"; + print ""; + print ""; + print "\n"; + + print ""; + print ""; + print "\n"; + + print ""; + print ""; + print "\n"; + + print ""; + print ""; + print "\n"; + + print ""; + $priority=0; + if (!empty($object->priority)) { + $priority=$object->priority; + } + print ""; + print ""; + print "\n"; + + print ""; + print ""; + print ""; + print "\n"; + + print '"; + print ""; + print "\n"; + + print '"; + print ""; + print "\n"; + + print '"; + print ""; + print "\n"; + + print '"; + print ""; + print "\n"; + + print '"; + print ""; + print "\n"; + + print '"; + print ""; + print "\n"; + + print '"; + print ""; + print "\n"; + + + print '"; + print ""; + print "\n"; + + print '
'; + print $langs->trans('CronLabel')."label."\" /> "; + print ""; + print "
"; + print $langs->trans('CronType').""; + print $formCron->select_typejob('jobtype',$object->jobtype); + print ""; + print "
"; + print $langs->trans('CronHourStart').""; + if(!empty($object->datestart)){ + $form->select_date($object->datestart,'datestart',1,1,'',"cronform"); + } + else{ + $form->select_date(dol_now(),'datestart',1,1,'',"cronform"); + } + print ""; + print "
"; + print $langs->trans('CronDtEnd').""; + if(!empty($object->dateend)){ + $form->select_date($object->dateend,'dateend',1,1,'',"cronform"); + } + else{ + $form->select_date('','dateend',1,1,1,"cronform"); + } + print ""; + print "
"; + print $langs->trans('CronPriority')." "; + print ""; + print "
"; + print $langs->trans('CronEvery')."unitfrequency=="60"){ + $input .= ' checked="checked" />'; + } + else{ + $input .= ' />'; + } + $input .= ""; + print $input; + + $input = "unitfrequency=="3600"){ + $input .= ' checked="checked" />'; + } + else{ + $input .= ' />'; + } + $input .= ""; + print $input; + + $input = "unitfrequency=="86400"){ + $input .= ' checked="checked" />'; + } + else{ + $input .= ' />'; + } + $input .= ""; + print $input; + + $input = "unitfrequency=="604800"){ + $input .= ' checked="checked" />'; + } + else{ + $input .= ' />'; + } + $input .= ""; + print $input; + print ""; + print "
'; + print $langs->trans('CronModule').""; + print "module_name."\" /> "; + print ""; + print $form->textwithpicto('',$langs->trans("CronModuleHelp"),1,'help'); + print "
'; + print $langs->trans('CronClassFile').""; + print "classesname."\" /> "; + print ""; + print $form->textwithpicto('',$langs->trans("CronClassFileHelp"),1,'help'); + print "
'; + print $langs->trans('CronObject').""; + print "objectname."\" /> "; + print ""; + print $form->textwithpicto('',$langs->trans("CronObjectHelp"),1,'help'); + print "
'; + print $langs->trans('CronMethod').""; + print "methodename."\" /> "; + print ""; + print $form->textwithpicto('',$langs->trans("CronMethodHelp"),1,'help'); + print "
'; + print $langs->trans('CronArgs').""; + print "params."\" /> "; + print ""; + print $form->textwithpicto('',$langs->trans("CronArgsHelp"),1,'help'); + print "
'; + print $langs->trans('CronCommand').""; + print "command."\" /> "; + print ""; + print $form->textwithpicto('',$langs->trans("CronCommandHelp"),1,'help'); + print "
'; + print $langs->trans('CronNote').""; + $doleditor = new DolEditor('note', $object->note, '', 160, 'dolibarr_notes', 'In', true, false, 0, 4, 90); + $doleditor->Create(); + print ""; + print "
'; + print "trans("Save")."\">"; + print "trans("Cancel")."\">"; + print ""; + print "
'; + + print "
\n"; + +}else { + + /* + * view Template + */ + + // box add_jobs_box + print ''; + + print '"; + print "\n"; + + print '"; + print ""; + + print ""; + + print ""; + + print ""; + + print ""; + print ""; + + print ""; + print ""; + + print ""; + print ""; + + + print '"; + + print '"; + + print '"; + + print '"; + + print '"; + + print '"; + + print '"; + + print '"; + + print '"; + + print '"; + + print '"; + + print '"; + + print '
'; + print $langs->trans('CronId')."".$form->showrefnav($object, 'id', $linkback, 1, 'rowid', 'id'); + print "
'; + print $langs->trans('CronLabel')."".$object->label; + print "
"; + print $langs->trans('CronType').""; + print $formCron->select_typejob('jobtype',$object->jobtype,1); + print "
"; + print $langs->trans('CronHourStart').""; + if(!empty($object->datestart)) {print dol_print_date($object->datestart,'dayhourtext');} else {print $langs->trans('CronNone');} + print "
"; + print $langs->trans('CronDtEnd').""; + if(!empty($object->dateend)) {print dol_print_date($object->dateend,'dayhourtext');} else {print $langs->trans('CronNone');} + print "
"; + print $langs->trans('CronPriority')."".$object->priority; + print "
"; + print $langs->trans('CronNbRun')."".$object->nbrun; + print "
"; + print $langs->trans('CronEvery').""; + if($object->unitfrequency == "60") print $langs->trans('CronEach')." ".($object->frequency/$object->unitfrequency)." ".$langs->trans('Minutes'); + if($object->unitfrequency == "3600") print $langs->trans('CronEach')." ".($object->frequency/$object->unitfrequency)." ".$langs->trans('Hours'); + if($object->unitfrequency == "86400") print $langs->trans('CronEach')." ".($object->frequency/$object->unitfrequency)." ".$langs->trans('Days'); + if($object->unitfrequency == "604800") print $langs->trans('CronEach')." ".($object->frequency/$object->unitfrequency)." ".$langs->trans('Weeks'); + print "
'; + print $langs->trans('CronModule').""; + print $object->module_name; + print "
'; + print $langs->trans('CronClassFile').""; + print $object->classesname; + print "
'; + print $langs->trans('CronObject').""; + print $object->objectname; + print "
'; + print $langs->trans('CronMethod').""; + print $object->methodename; + print "
'; + print $langs->trans('CronArgs').""; + print $object->params; + print "
'; + print $langs->trans('CronCommand').""; + print $object->command; + print "
'; + print $langs->trans('CronNote').""; + print $object->note; + print "
'; + print $langs->trans('CronDtLastLaunch').""; + if(!empty($object->datelastrun)) {print dol_print_date($object->datelastrun,'dayhourtext');} else {print $langs->trans('CronNone');} + print "
'; + print $langs->trans('CronDtNextLaunch').""; + if(!empty($object->datenextrun)) {print dol_print_date($object->datenextrun,'dayhourtext');} else {print $langs->trans('CronNone');} + print "
'; + print $langs->trans('CronDtLastResult').""; + if(!empty($object->datelastresult)) {print dol_print_date($object->datelastresult,'dayhourtext');} else {print $langs->trans('CronNone');} + print "
'; + print $langs->trans('CronLastResult').""; + print $object->lastresult; + print "
'; + print $langs->trans('CronLastOutput').""; + print nl2br($object->lastoutput); + print "
'; + + print "\n\n
\n"; + if (! $user->rights->cron->create) { + print ''.$langs->trans("Edit").''; + } else { + print ''.$langs->trans("Edit").''; + } + if (! $user->rights->cron->delete) { + print ''.$langs->trans("Delete").''; + } else { + print ''.$langs->trans("Delete").''; + } + if (! $user->rights->cron->create) { + print ''.$langs->trans("CronStatusActiveBtn").'/'.$langs->trans("CronStatusInactiveBtn").''; + } else { + if (empty($object->status)) { + print ''.$langs->trans("CronStatusActiveBtn").''; + } else { + print ''.$langs->trans("CronStatusInactiveBtn").''; + } + } + if ((! $user->rights->cron->execute) || (empty($object->status))) { + print ''.$langs->trans("CronExecute").''; + } else { + print ''.$langs->trans("CronExecute").''; + } + print '

'; +} + +$db->close(); +llxFooter(); \ No newline at end of file diff --git a/htdocs/cron/class/cronjob.class.php b/htdocs/cron/class/cronjob.class.php new file mode 100644 index 00000000000..078ee98ad8e --- /dev/null +++ b/htdocs/cron/class/cronjob.class.php @@ -0,0 +1,1044 @@ + + * 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 cron/class/cronjob.class.php + * \ingroup cron + */ + +// Put here all includes required by your class file +require_once(DOL_DOCUMENT_ROOT."/core/class/commonobject.class.php"); + + +/** + * Crob Job class + */ +class Cronjob extends CommonObject +{ + var $db; //!< To store db handler + var $error; //!< To return error code (or message) + var $errors=array(); //!< To return several error codes (or messages) + var $element='cronjob'; //!< Id that identify managed objects + var $table_element='cronjob'; //!< Name of table without prefix where object is stored + + var $id; + + var $ref; //Use for prevnext_ref + var $jobtype; + var $tms=''; + var $datec=''; + var $label; + var $command; + var $classesname; + var $objectname; + var $methodename; + var $params; + var $md5params; + var $module_name; + var $priority; + var $datelastrun=''; + var $datenextrun=''; + var $dateend=''; + var $datestart=''; + var $datelastresult=''; + var $lastresult; + var $lastoutput; + var $unitfrequency; + var $frequency; + var $status; + var $fk_user_author; + var $fk_user_mod; + var $note; + var $nbrun; + + var $lines; + + + + + /** + * Constructor + * + * @param DoliDb $db Database handler + */ + function __construct($db) + { + $this->db = $db; + return 1; + } + + + /** + * Create object into database + * + * @param User $user User that creates + * @param int $notrigger 0=launch triggers after, 1=disable triggers + * @return int <0 if KO, Id of created object if OK + */ + function create($user, $notrigger=0) + { + global $conf, $langs; + $error=0; + + // Clean parameters + + if (isset($this->label)) $this->label=trim($this->label); + if (isset($this->jobtype)) $this->jobtype=trim($this->jobtype); + if (isset($this->command)) $this->command=trim($this->command); + if (isset($this->classesname)) $this->classesname=trim($this->classesname); + if (isset($this->objectname)) $this->objectname=trim($this->objectname); + if (isset($this->methodename)) $this->methodename=trim($this->methodename); + if (isset($this->params)) $this->params=trim($this->params); + if (isset($this->md5params)) $this->md5params=trim($this->md5params); + if (isset($this->module_name)) $this->module_name=trim($this->module_name); + if (isset($this->priority)) $this->priority=trim($this->priority); + if (isset($this->lastoutput)) $this->lastoutput=trim($this->lastoutput); + if (isset($this->lastresult)) $this->lastresult=trim($this->lastresult); + if (isset($this->unitfrequency)) $this->unitfrequency=trim($this->unitfrequency); + if (isset($this->frequency)) $this->frequency=trim($this->frequency); + if (isset($this->status)) $this->status=trim($this->status); + if (isset($this->note)) $this->note=trim($this->note); + if (isset($this->nbrun)) $this->nbrun=trim($this->nbrun); + + // Check parameters + // Put here code to add a control on parameters values + if (dol_strlen($this->datestart)==0) { + $this->errors[]=$langs->trans('CronFieldMandatory',$langs->trans('CronDtStart')); + $error++; + } + if (empty($this->label)) { + $this->errors[]=$langs->trans('CronFieldMandatory',$langs->trans('CronLabel')); + $error++; + } + if ((dol_strlen($this->datestart)!=0) && (dol_strlen($this->dateend)!=0) && ($this->dateend<$this->datestart)) { + $this->errors[]=$langs->trans('CronErrEndDateStartDt'); + $error++; + } + if (empty($this->unitfrequency)) { + $this->errors[]=$langs->trans('CronFieldMandatory',$langs->trans('CronFrequency')); + $error++; + } + if (($this->jobtype=='command') && (empty($this->command))) { + $this->errors[]=$langs->trans('CronFieldMandatory',$langs->trans('CronCommand')); + $error++; + } + if (($this->jobtype=='method') && (empty($this->classesname))) { + $this->errors[]=$langs->trans('CronFieldMandatory',$langs->trans('CronClass')); + $error++; + } + if (($this->jobtype=='method') && (empty($this->methodename))) { + $this->errors[]=$langs->trans('CronFieldMandatory',$langs->trans('CronMethod')); + $error++; + } + if (($this->jobtype=='method') && (empty($this->objectname))) { + $this->errors[]=$langs->trans('CronFieldMandatory',$langs->trans('CronObject')); + $error++; + } + + // Insert request + $sql = "INSERT INTO ".MAIN_DB_PREFIX."cronjob("; + + $sql.= "datec,"; + $sql.= "jobtype,"; + $sql.= "label,"; + $sql.= "command,"; + $sql.= "classesname,"; + $sql.= "objectname,"; + $sql.= "methodename,"; + $sql.= "params,"; + $sql.= "md5params,"; + $sql.= "module_name,"; + $sql.= "priority,"; + $sql.= "datelastrun,"; + $sql.= "datenextrun,"; + $sql.= "dateend,"; + $sql.= "datestart,"; + $sql.= "lastresult,"; + $sql.= "datelastresult,"; + $sql.= "lastoutput,"; + $sql.= "unitfrequency,"; + $sql.= "frequency,"; + $sql.= "status,"; + $sql.= "fk_user_author,"; + $sql.= "fk_user_mod,"; + $sql.= "note,"; + $sql.= "nbrun"; + + + $sql.= ") VALUES ("; + + $sql.= " ".$this->db->idate(dol_now()).","; + $sql.= " ".(! isset($this->jobtype)?'NULL':"'".$this->db->escape($this->jobtype)."'").","; + $sql.= " ".(! isset($this->label)?'NULL':"'".$this->db->escape($this->label)."'").","; + $sql.= " ".(! isset($this->command)?'NULL':"'".$this->db->escape($this->command)."'").","; + $sql.= " ".(! isset($this->classesname)?'NULL':"'".$this->db->escape($this->classesname)."'").","; + $sql.= " ".(! isset($this->objectname)?'NULL':"'".$this->db->escape($this->objectname)."'").","; + $sql.= " ".(! isset($this->methodename)?'NULL':"'".$this->db->escape($this->methodename)."'").","; + $sql.= " ".(! isset($this->params)?'NULL':"'".$this->db->escape($this->params)."'").","; + $sql.= " ".(! isset($this->md5params)?'NULL':"'".$this->db->escape($this->md5params)."'").","; + $sql.= " ".(! isset($this->module_name)?'NULL':"'".$this->db->escape($this->module_name)."'").","; + $sql.= " ".(! isset($this->priority)?'NULL':"'".$this->priority."'").","; + $sql.= " ".(! isset($this->datelastrun) || dol_strlen($this->datelastrun)==0?'NULL':$this->db->idate($this->datelastrun)).","; + $sql.= " ".(! isset($this->datenextrun) || dol_strlen($this->datenextrun)==0?'NULL':$this->db->idate($this->datenextrun)).","; + $sql.= " ".(! isset($this->dateend) || dol_strlen($this->dateend)==0?'NULL':$this->db->idate($this->dateend)).","; + $sql.= " ".(! isset($this->datestart) || dol_strlen($this->datestart)==0?'NULL':$this->db->idate($this->datestart)).","; + $sql.= " ".(! isset($this->lastresult)?'NULL':"'".$this->db->escape($this->lastresult)."'").","; + $sql.= " ".(! isset($this->datelastresult) || dol_strlen($this->datelastresult)==0?'NULL':$this->db->idate($this->datelastresult)).","; + $sql.= " ".(! isset($this->lastoutput)?'NULL':"'".$this->db->escape($this->lastoutput)."'").","; + $sql.= " ".(! isset($this->unitfrequency)?'NULL':"'".$this->unitfrequency."'").","; + $sql.= " ".(! isset($this->frequency)?'NULL':"'".$this->frequency."'").","; + $sql.= " ".(! isset($this->status)?'0':"'".$this->status."'").","; + $sql.= " ".$user->id.","; + $sql.= " ".$user->id.","; + $sql.= " ".(! isset($this->note)?'NULL':"'".$this->db->escape($this->note)."'").","; + $sql.= " ".(! isset($this->nbrun)?'0':"'".$this->db->escape($this->nbrun)."'").""; + + + $sql.= ")"; + + + $this->db->begin(); + + dol_syslog(get_class($this)."::create sql=".$sql, LOG_DEBUG); + $resql=$this->db->query($sql); + if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); } + + if (! $error) + { + $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."cronjob"); + + if (! $notrigger) + { + // Uncomment this and change MYOBJECT to your own tag if you + // want this action calls a trigger. + + //// Call triggers + //include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; + //$interface=new Interfaces($this->db); + //$result=$interface->run_triggers('MYOBJECT_CREATE',$this,$user,$langs,$conf); + //if ($result < 0) { $error++; $this->errors=$interface->errors; } + //// End call triggers + } + } + + // Commit or rollback + if ($error) + { + foreach($this->errors as $errmsg) + { + dol_syslog(get_class($this)."::create ".$errmsg, LOG_ERR); + $this->error.=($this->error?', '.$errmsg:$errmsg); + } + $this->db->rollback(); + return -1*$error; + } + else + { + $this->db->commit(); + return $this->id; + } + } + + + /** + * Load object in memory from the database + * + * @param int $id Id object + * @return int <0 if KO, >0 if OK + */ + function fetch($id) + { + global $langs; + $sql = "SELECT"; + $sql.= " t.rowid,"; + + $sql.= " t.tms,"; + $sql.= " t.datec,"; + $sql.= " t.jobtype,"; + $sql.= " t.label,"; + $sql.= " t.command,"; + $sql.= " t.classesname,"; + $sql.= " t.objectname,"; + $sql.= " t.methodename,"; + $sql.= " t.params,"; + $sql.= " t.md5params,"; + $sql.= " t.module_name,"; + $sql.= " t.priority,"; + $sql.= " t.datelastrun,"; + $sql.= " t.datenextrun,"; + $sql.= " t.dateend,"; + $sql.= " t.datestart,"; + $sql.= " t.lastresult,"; + $sql.= " t.datelastresult,"; + $sql.= " t.lastoutput,"; + $sql.= " t.unitfrequency,"; + $sql.= " t.frequency,"; + $sql.= " t.status,"; + $sql.= " t.fk_user_author,"; + $sql.= " t.fk_user_mod,"; + $sql.= " t.note,"; + $sql.= " t.nbrun"; + + + $sql.= " FROM ".MAIN_DB_PREFIX."cronjob as t"; + $sql.= " WHERE t.rowid = ".$id; + + dol_syslog(get_class($this)."::fetch sql=".$sql, LOG_DEBUG); + $resql=$this->db->query($sql); + if ($resql) + { + if ($this->db->num_rows($resql)) + { + $obj = $this->db->fetch_object($resql); + + $this->id = $obj->rowid; + $this->ref = $obj->rowid; + + $this->tms = $this->db->jdate($obj->tms); + $this->datec = $this->db->jdate($obj->datec); + $this->label = $obj->label; + $this->jobtype = $obj->jobtype; + $this->command = $obj->command; + $this->classesname = $obj->classesname; + $this->objectname = $obj->objectname; + $this->methodename = $obj->methodename; + $this->params = $obj->params; + $this->md5params = $obj->md5params; + $this->module_name = $obj->module_name; + $this->priority = $obj->priority; + $this->datelastrun = $this->db->jdate($obj->datelastrun); + $this->datenextrun = $this->db->jdate($obj->datenextrun); + $this->dateend = $this->db->jdate($obj->dateend); + $this->datestart = $this->db->jdate($obj->datestart); + $this->lastresult = $obj->lastresult; + $this->lastoutput = $obj->lastoutput; + $this->datelastresult = $this->db->jdate($obj->datelastresult); + $this->unitfrequency = $obj->unitfrequency; + $this->frequency = $obj->frequency; + $this->status = $obj->status; + $this->fk_user_author = $obj->fk_user_author; + $this->fk_user_mod = $obj->fk_user_mod; + $this->note = $obj->note; + $this->nbrun = $obj->nbrun; + + + } + $this->db->free($resql); + + return 1; + } + else + { + $this->error="Error ".$this->db->lasterror(); + dol_syslog(get_class($this)."::fetch ".$this->error, LOG_ERR); + return -1; + } + } + + /** + * Load object in memory from the database + * + * @param string $sortorder sort order + * @param string $sortfield sort field + * @param int $limit limit page + * @param int $offset page + * @param int $status display active or not + * @param array $filter filter output + * @return int <0 if KO, >0 if OK + */ + function fetch_all($sortorder='DESC', $sortfield='t.rowid', $limit=0, $offset=0, $status=1, $filter='') + { + global $langs; + $sql = "SELECT"; + $sql.= " t.rowid,"; + $sql.= " t.tms,"; + $sql.= " t.datec,"; + $sql.= " t.jobtype,"; + $sql.= " t.label,"; + $sql.= " t.command,"; + $sql.= " t.classesname,"; + $sql.= " t.objectname,"; + $sql.= " t.methodename,"; + $sql.= " t.params,"; + $sql.= " t.md5params,"; + $sql.= " t.module_name,"; + $sql.= " t.priority,"; + $sql.= " t.datelastrun,"; + $sql.= " t.datenextrun,"; + $sql.= " t.dateend,"; + $sql.= " t.datestart,"; + $sql.= " t.lastresult,"; + $sql.= " t.datelastresult,"; + $sql.= " t.lastoutput,"; + $sql.= " t.unitfrequency,"; + $sql.= " t.frequency,"; + $sql.= " t.status,"; + $sql.= " t.fk_user_author,"; + $sql.= " t.fk_user_mod,"; + $sql.= " t.note,"; + $sql.= " t.nbrun"; + + + $sql.= " FROM ".MAIN_DB_PREFIX."cronjob as t"; + $status = (empty($status))?'0':'1'; + $sql.= " WHERE t.status=".$status; + //Manage filter + if (is_array($filter) && count($filter)>0) { + foreach($filter as $key => $value) { + $sql.= ' AND '.$key.' LIKE \'%'.$value.'%\''; + } + } + + + $sql.= " ORDER BY $sortfield $sortorder "; + if (!empty($limit) && !empty($offset)) { + $sql.= $this->db->plimit( $limit + 1 ,$offset); + } + + $sqlwhere = array(); + + if (!empty($module_name)) { + $sqlwhere[]='(t.module_name='.$module_name.')'; + } + if (count($sqlwhere)>0) { + $sql.= " WHERE ".implode(' AND ',$sqlwhere); + } + + dol_syslog(get_class($this)."::fetch_all sql=".$sql, LOG_DEBUG); + $resql=$this->db->query($sql); + if ($resql) + { + $num=$this->db->num_rows($resql); + $i=0; + + if ($num) + { + $this->lines=array(); + + while ($i < $num) + { + + $line = new Cronjobline(); + + $obj = $this->db->fetch_object($resql); + + $line->id = $obj->rowid; + $line->ref = $obj->rowid; + + $line->tms = $this->db->jdate($obj->tms); + $line->datec = $this->db->jdate($obj->datec); + $line->label = $obj->label; + $line->jobtype = $obj->jobtype; + $line->command = $obj->command; + $line->classesname = $obj->classesname; + $line->objectname = $obj->objectname; + $line->methodename = $obj->methodename; + $line->params = $obj->params; + $line->md5params = $obj->md5params; + $line->module_name = $obj->module_name; + $line->priority = $obj->priority; + $line->datelastrun = $this->db->jdate($obj->datelastrun); + $line->datenextrun = $this->db->jdate($obj->datenextrun); + $line->dateend = $this->db->jdate($obj->dateend); + $line->datestart = $this->db->jdate($obj->datestart); + $line->lastresult = $obj->lastresult; + $line->datelastresult = $this->db->jdate($obj->datelastresult); + $line->lastoutput = $obj->lastoutput; + $line->unitfrequency = $obj->unitfrequency; + $line->frequency = $obj->frequency; + $line->status = $obj->status; + $line->fk_user_author = $obj->fk_user_author; + $line->fk_user_mod = $obj->fk_user_mod; + $line->note = $obj->note; + $line->nbrun = $obj->nbrun; + + $this->lines[]=$line; + + $i++; + + } + } + $this->db->free($resql); + + return 1; + } + else + { + $this->error="Error ".$this->db->lasterror(); + dol_syslog(get_class($this)."::fetch ".$this->error, LOG_ERR); + return -1; + } + } + + + /** + * Update object into database + * + * @param User $user User that modifies + * @param int $notrigger 0=launch triggers after, 1=disable triggers + * @return int <0 if KO, >0 if OK + */ + function update($user=0, $notrigger=0) + { + global $conf, $langs; + + $langs->load('cron'); + + $error=0; + + // Clean parameters + + if (isset($this->label)) $this->label=trim($this->label); + if (isset($this->jobtype)) $this->jobtype=trim($this->jobtype); + if (isset($this->command)) $this->command=trim($this->command); + if (isset($this->classesname)) $this->classesname=trim($this->classesname); + if (isset($this->objectname)) $this->objectname=trim($this->objectname); + if (isset($this->methodename)) $this->methodename=trim($this->methodename); + if (isset($this->params)) $this->params=trim($this->params); + if (isset($this->md5params)) $this->md5params=trim($this->md5params); + if (isset($this->module_name)) $this->module_name=trim($this->module_name); + if (isset($this->priority)) $this->priority=trim($this->priority); + if (isset($this->lastoutput)) $this->lastoutput=trim($this->lastoutput); + if (isset($this->lastresult)) $this->lastresult=trim($this->lastresult); + if (isset($this->unitfrequency)) $this->unitfrequency=trim($this->unitfrequency); + if (isset($this->frequency)) $this->frequency=trim($this->frequency); + if (isset($this->status)) $this->status=trim($this->status); + if (isset($this->note)) $this->note=trim($this->note); + if (isset($this->nbrun)) $this->nbrun=trim($this->nbrun); + + // Check parameters + // Put here code to add a control on parameters values + if (empty($this->status)) { + $this->dateend=dol_now(); + } + if (dol_strlen($this->datestart)==0) { + $this->errors[]=$langs->trans('CronFieldMandatory',$langs->trans('CronDtStart')); + $error++; + } + if ((dol_strlen($this->datestart)!=0) && (dol_strlen($this->dateend)!=0) && ($this->dateend<$this->datestart)) { + $this->errors[]=$langs->trans('CronErrEndDateStartDt'); + $error++; + } + if (empty($this->label)) { + $this->errors[]=$langs->trans('CronFieldMandatory',$langs->trans('CronLabel')); + $error++; + } + if (empty($this->unitfrequency)) { + $this->errors[]=$langs->trans('CronFieldMandatory',$langs->trans('CronFrequency')); + $error++; + } + if (($this->jobtype=='command') && (empty($this->command))) { + $this->errors[]=$langs->trans('CronFieldMandatory',$langs->trans('CronCommand')); + $error++; + } + if (($this->jobtype=='method') && (empty($this->classesname))) { + $this->errors[]=$langs->trans('CronFieldMandatory',$langs->trans('CronClass')); + $error++; + } + if (($this->jobtype=='method') && (empty($this->methodename))) { + $this->errors[]=$langs->trans('CronFieldMandatory',$langs->trans('CronMethod')); + $error++; + } + if (($this->jobtype=='method') && (empty($this->objectname))) { + $this->errors[]=$langs->trans('CronFieldMandatory',$langs->trans('CronObject')); + $error++; + } + + + // Update request + $sql = "UPDATE ".MAIN_DB_PREFIX."cronjob SET"; + + $sql.= " label=".(isset($this->label)?"'".$this->db->escape($this->label)."'":"null").","; + $sql.= " jobtype=".(isset($this->jobtype)?"'".$this->db->escape($this->jobtype)."'":"null").","; + $sql.= " command=".(isset($this->command)?"'".$this->db->escape($this->command)."'":"null").","; + $sql.= " classesname=".(isset($this->classesname)?"'".$this->db->escape($this->classesname)."'":"null").","; + $sql.= " objectname=".(isset($this->objectname)?"'".$this->db->escape($this->objectname)."'":"null").","; + $sql.= " methodename=".(isset($this->methodename)?"'".$this->db->escape($this->methodename)."'":"null").","; + $sql.= " params=".(isset($this->params)?"'".$this->db->escape($this->params)."'":"null").","; + $sql.= " md5params=".(isset($this->md5params)?"'".$this->db->escape($this->md5params)."'":"null").","; + $sql.= " module_name=".(isset($this->module_name)?"'".$this->db->escape($this->module_name)."'":"null").","; + $sql.= " priority=".(isset($this->priority)?$this->priority:"null").","; + $sql.= " datelastrun=".(dol_strlen($this->datelastrun)!=0 ? "'".$this->db->idate($this->datelastrun)."'" : 'null').","; + $sql.= " datenextrun=".(dol_strlen($this->datenextrun)!=0 ? "'".$this->db->idate($this->datenextrun)."'" : 'null').","; + $sql.= " dateend=".(dol_strlen($this->dateend)!=0 ? "'".$this->db->idate($this->dateend)."'" : 'null').","; + $sql.= " datestart=".(dol_strlen($this->datestart)!=0 ? "'".$this->db->idate($this->datestart)."'" : 'null').","; + $sql.= " datelastresult=".(dol_strlen($this->datelastresult)!=0 ? "'".$this->db->idate($this->datelastresult)."'" : 'null').","; + $sql.= " lastresult=".(isset($this->lastresult)?"'".$this->db->escape($this->lastresult)."'":"null").","; + $sql.= " lastoutput=".(isset($this->lastoutput)?"'".$this->db->escape($this->lastoutput)."'":"null").","; + $sql.= " unitfrequency=".(isset($this->unitfrequency)?$this->unitfrequency:"null").","; + $sql.= " frequency=".(isset($this->frequency)?$this->frequency:"null").","; + $sql.= " status=".(isset($this->status)?$this->status:"null").","; + $sql.= " fk_user_mod=".$user->id.","; + $sql.= " note=".(isset($this->note)?"'".$this->db->escape($this->note)."'":"null").","; + $sql.= " nbrun=".(isset($this->nbrun)?$this->nbrun:"null"); + + + $sql.= " WHERE rowid=".$this->id; + + $this->db->begin(); + + dol_syslog(get_class($this)."::update sql=".$sql, LOG_DEBUG); + $resql = $this->db->query($sql); + if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); } + + if (! $error) + { + if (! $notrigger) + { + // Uncomment this and change MYOBJECT to your own tag if you + // want this action calls a trigger. + + //// Call triggers + //include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; + //$interface=new Interfaces($this->db); + //$result=$interface->run_triggers('MYOBJECT_MODIFY',$this,$user,$langs,$conf); + //if ($result < 0) { $error++; $this->errors=$interface->errors; } + //// End call triggers + } + } + + // Commit or rollback + if ($error) + { + foreach($this->errors as $errmsg) + { + dol_syslog(get_class($this)."::update ".$errmsg, LOG_ERR); + $this->error.=($this->error?', '.$errmsg:$errmsg); + } + $this->db->rollback(); + return -1*$error; + } + else + { + $this->db->commit(); + return 1; + } + } + + + /** + * Delete object in database + * + * @param User $user User that deletes + * @param int $notrigger 0=launch triggers after, 1=disable triggers + * @return int <0 if KO, >0 if OK + */ + function delete($user, $notrigger=0) + { + global $conf, $langs; + $error=0; + + $this->db->begin(); + + if (! $error) + { + if (! $notrigger) + { + // Uncomment this and change MYOBJECT to your own tag if you + // want this action calls a trigger. + + //// Call triggers + //include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; + //$interface=new Interfaces($this->db); + //$result=$interface->run_triggers('MYOBJECT_DELETE',$this,$user,$langs,$conf); + //if ($result < 0) { $error++; $this->errors=$interface->errors; } + //// End call triggers + } + } + + if (! $error) + { + $sql = "DELETE FROM ".MAIN_DB_PREFIX."cronjob"; + $sql.= " WHERE rowid=".$this->id; + + dol_syslog(get_class($this)."::delete sql=".$sql); + $resql = $this->db->query($sql); + if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); } + } + + // Commit or rollback + if ($error) + { + foreach($this->errors as $errmsg) + { + dol_syslog(get_class($this)."::delete ".$errmsg, LOG_ERR); + $this->error.=($this->error?', '.$errmsg:$errmsg); + } + $this->db->rollback(); + return -1*$error; + } + else + { + $this->db->commit(); + return 1; + } + } + + + + /** + * Load an object from its id and create a new one in database + * + * @param int $fromid Id of object to clone + * @return int New id of clone + */ + function createFromClone($fromid) + { + global $user,$langs; + + $error=0; + + $object=new Cronjob($this->db); + + $this->db->begin(); + + // Load source object + $object->fetch($fromid); + $object->id=0; + $object->statut=0; + + // Clear fields + // ... + + // Create clone + $result=$object->create($user); + + // Other options + if ($result < 0) + { + $this->error=$object->error; + $error++; + } + + if (! $error) + { + + + } + + // End + if (! $error) + { + $this->db->commit(); + return $object->id; + } + else + { + $this->db->rollback(); + return -1; + } + } + + + /** + * Initialise object with example values + * Id must be 0 if object instance is a specimen + * + * @return void + */ + function initAsSpecimen() + { + $this->id=0; + $this->ref=0; + + $this->tms=''; + $this->datec=''; + $this->label=''; + $this->jobtype=''; + $this->command=''; + $this->classesname=''; + $this->objectname=''; + $this->methodename=''; + $this->params=''; + $this->md5params=''; + $this->module_name=''; + $this->priority=''; + $this->datelastrun=''; + $this->datenextrun=''; + $this->dateend=''; + $this->datestart=''; + $this->datelastresult=''; + $this->lastoutput=''; + $this->lastresult=''; + $this->unitfrequency=''; + $this->frequency=''; + $this->status=''; + $this->fk_user_author=''; + $this->fk_user_mod=''; + $this->note=''; + $this->nbrun=''; + } + + /** + * Load object information + * + * @return void + */ + function info() + { + global $langs; + + $sql = "SELECT"; + $sql.= " f.rowid, f.datec, f.tms, f.fk_user_mod, f.fk_user_author"; + $sql.= " FROM ".MAIN_DB_PREFIX."cronjob as f"; + $sql.= " WHERE f.rowid = ".$this->id; + + dol_syslog(get_class($this)."::fetch sql=".$sql, LOG_DEBUG); + $resql=$this->db->query($sql); + if ($resql) + { + if ($this->db->num_rows($resql)) + { + $obj = $this->db->fetch_object($resql); + $this->id = $obj->rowid; + $this->date_creation = $this->db->jdate($obj->datec); + $this->date_modification = $this->db->jdate($obj->tms); + $this->user_modification = $obj->fk_user_mod; + $this->user_creation = $obj->fk_user_author; + } + $this->db->free($resql); + + return 1; + } + else + { + $this->error="Error ".$this->db->lasterror(); + dol_syslog(get_class($this)."::fetch ".$this->error, LOG_ERR); + return -1; + } + } + + + /** + * Run a job + * + * @param string $userlogin User login + * @return int <0 if KO, >0 if OK + */ + function run_jobs($userlogin) + { + global $langs, $conf; + + $langs->load('cron'); + + if (empty($userlogin)) { + $this->error="User login is mandatory"; + dol_syslog(get_class($this)."::run_jobs ".$this->error, LOG_ERR); + return -1; + } + + require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php'; + $user=new User($this->db); + $result=$user->fetch('',$userlogin); + if ($result<0) { + $this->error="User Error:".$user->error; + dol_syslog(get_class($this)."::run_jobs ".$this->error, LOG_ERR); + return -1; + }else { + if (empty($user->id)) { + $this->error=" User user login:".$userlogin." do not exists"; + dol_syslog(get_class($this)."::run_jobs ".$this->error, LOG_ERR); + return -1; + } + } + + dol_syslog(get_class($this)."::run_jobs userlogin:$userlogin", LOG_DEBUG); + + $error=0; + $now=dol_now(); + + if ($this->jobtype=='method') { + // load classes + $ret=dol_include_once("/".$this->module_name."/class/".$this->classesname,$this->objectname); + if ($ret===false) { + $this->error=$langs->trans('CronCannotLoadClass',$file,$this->objectname); + dol_syslog(get_class($this)."::run_jobs ".$this->error, LOG_ERR); + return -1; + } + + // Load langs + $result=$langs->load($this->module_name.'@'.$this->module_name); + if ($result<0) { + dol_syslog(get_class($this)."::run_jobs Cannot load module langs".$langs->error, LOG_ERR); + return -1; + } + + dol_syslog(get_class($this)."::run_jobs ".$this->objectname."->".$this->methodename."(".$this->params.");", LOG_DEBUG); + + // Create Object for the call module + $object = new $this->objectname($this->db); + + + //Update launch start date + $this->datelastrun=$now; + $this->nbrun=$this->nbrun+1; + $result = $this->update($user); + if ($result<0) { + dol_syslog(get_class($this)."::run_jobs ".$this->error, LOG_ERR); + return -1; + } + + + $params_arr = array(); + $params_arr=explode(", ",$this->params); + if (!is_array($params_arr)) { + $result = call_user_func(array($object, $this->methodename), $this->params); + }else { + $result = call_user_func_array(array($object, $this->methodename), $params_arr); + } + + if ($result===false) { + dol_syslog(get_class($this)."::run_jobs ".$object->error, LOG_ERR); + return -1; + }else { + $this->lastoutput=var_export($result,true); + $this->lastresult=var_export($result,true); + } + + } elseif ($this->jobtype=='command') { + dol_syslog(get_class($this)."::run_jobs system:".$this->command, LOG_DEBUG); + $output_arr=array(); + + //Update launch start date + $this->datelastrun=$now; + $this->nbrun=$this->nbrun+1; + $result = $this->update($user); + if ($result<0) { + dol_syslog(get_class($this)."::run_jobs ".$this->error, LOG_ERR); + return -1; + } + + exec($this->command, $output_arr,$retval); + + dol_syslog(get_class($this)."::run_jobs output_arr:".var_export($output_arr,true), LOG_DEBUG); + + $this->lastoutput=''; + if (is_array($output_arr) && count($output_arr)>0) { + foreach($output_arr as $val) { + $this->lastoutput.=$val."\n"; + } + } + $this->lastresult=$retval; + } + + //Update result date + $this->datelastresult=$now; + $result = $this->update($user); + if ($result<0) { + dol_syslog(get_class($this)."::run_jobs ".$this->error, LOG_ERR); + return -1; + }else { + return 1; + } + + } + + /** + * Reprogram a job + * + * @param string $userlogin User login + * @return int <0 if KO, >0 if OK + * + */ + function reprogram_jobs($userlogin) + { + global $langs, $conf; + + dol_syslog(get_class($this)."::reprogram_jobs userlogin:$userlogin", LOG_DEBUG); + + require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php'; + $user=new User($this->db); + $result=$user->fetch('',$userlogin); + if ($result<0) { + $this->error="User Error:".$user->error; + dol_syslog(get_class($this)."::reprogram_jobs ".$this->error, LOG_ERR); + return -1; + }else { + if (empty($user->id)) { + $this->error=" User user login:".$userlogin." do not exists"; + dol_syslog(get_class($this)."::reprogram_jobs ".$this->error, LOG_ERR); + return -1; + } + } + + dol_syslog(get_class($this)."::reprogram_jobs ", LOG_DEBUG); + + if (empty($this->datenextrun)) { + $this->datenextrun=dol_now()+$this->frequency; + } else { + if ($this->datenextrundatenextrun=dol_now()+$this->frequency; + } else { + $this->datenextrun=$this->datenextrun+$this->frequency; + } + } + $result = $this->update($user); + if ($result<0) { + dol_syslog(get_class($this)."::reprogram_jobs ".$this->error, LOG_ERR); + return -1; + } + + return 1; + + } +} + + +/** + * Crob Job line class + */ +class Cronjobline{ + + var $id; + var $ref; + + var $tms=''; + var $datec=''; + var $label; + var $jobtype; + var $command; + var $classesname; + var $objectname; + var $methodename; + var $params; + var $md5params; + var $module_name; + var $priority; + var $datelastrun=''; + var $datenextrun=''; + var $dateend=''; + var $datestart=''; + var $lastresult=''; + var $lastoutput; + var $unitfrequency; + var $frequency; + var $status; + var $fk_user_author; + var $fk_user_mod; + var $note; + var $nbrun; + + /** + * Constructor + * + */ + function __construct() + { + return 1; + } +} diff --git a/htdocs/cron/functions_cron.lib.php b/htdocs/cron/functions_cron.lib.php deleted file mode 100644 index 31cc8ebefad..00000000000 --- a/htdocs/cron/functions_cron.lib.php +++ /dev/null @@ -1,27 +0,0 @@ - - * Copyright (C) 2007-2009 Laurent Destailleur - * - * 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 cron/functions_cron.lib.php - * \ingroup core - * \brief Functions for miscellaneous cron tasks - */ - - - -?> diff --git a/htdocs/cron/index.php b/htdocs/cron/index.php deleted file mode 100644 index 7db0dd9ebf9..00000000000 --- a/htdocs/cron/index.php +++ /dev/null @@ -1 +0,0 @@ -Url not available \ No newline at end of file diff --git a/htdocs/cron/info.php b/htdocs/cron/info.php new file mode 100644 index 00000000000..55c294d54ed --- /dev/null +++ b/htdocs/cron/info.php @@ -0,0 +1,59 @@ + +* +* 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, write to the Free Software +* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ + +/** + * \file /cron/cron/info.php + * \brief Page fiche d'une operation + */ + +require '../main.inc.php'; + +require_once DOL_DOCUMENT_ROOT."/cron/class/cronjob.class.php"; +require_once DOL_DOCUMENT_ROOT.'/core/lib/cron.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; + + +// Security check +if (!$user->rights->cron->read) accessforbidden(); + +$id=GETPOST('id','int'); + +$mesg = ''; + +/* + * View +*/ + +llxHeader('',$langs->trans("CronInfo")); + +$object = new Cronjob($db); +$object->fetch($id); +$object->info($id); + +$head = cron_prepare_head($object); + +dol_fiche_head($head, 'info', $langs->trans("CronTask"), 0, 'bill'); + +print '
'; +dol_print_object_info($object); +print '
'; +print '
'; + + +$db->close(); +llxFooter(); \ No newline at end of file diff --git a/htdocs/cron/list.php b/htdocs/cron/list.php new file mode 100644 index 00000000000..5e972f0e55b --- /dev/null +++ b/htdocs/cron/list.php @@ -0,0 +1,295 @@ + + * + * 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 cron/cron/list.php + * \ingroup cron + * \brief Lists Jobs + */ + + +require '../main.inc.php'; +require_once(DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php"); + +// librairie jobs +require_once DOL_DOCUMENT_ROOT."/cron/class/cronjob.class.php"; +require_once DOL_DOCUMENT_ROOT.'/core/lib/cron.lib.php'; + +$langs->load("admin"); +$langs->load("cron"); + +if (!$user->rights->cron->read) accessforbidden(); + +/* + * Actions + */ +$action=GETPOST('action','alpha'); +$confirm=GETPOST('confirm','alpha'); +$id=GETPOST('id','int'); + +$sortorder=GETPOST('sortorder','alpha'); +$sortfield=GETPOST('sortfield','alpha'); +$page=GETPOST('page','int'); +$status=GETPOST('status','int'); + +//Search criteria +$search_label=GETPOST("search_label",'alpha'); + +if (empty($sortorder)) $sortorder="DESC"; +if (empty($sortfield)) $sortfield="t.datenextrun"; +if (empty($arch)) $arch = 0; + +if ($page == -1) { + $page = 0 ; +} + +$limit = $conf->global->MAIN_SIZE_LISTE_LIMIT; +$offset = $limit * $page ; +$pageprev = $page - 1; +$pagenext = $page + 1; + +// Do we click on purge search criteria ? +if (GETPOST("button_removefilter_x")) +{ + $search_label=''; +} + +$filter=array(); +if (!empty($search_label)) { + $filter['t.label']=$search_label; +} + +// Delete jobs +if ($action == 'confirm_delete' && $confirm == "yes" && $user->rights->cron->delete){ + + //Delete de la tache cron + $object = new Cronjob($db); + $object->id=$id; + $result = $object->delete($user); + + if ($result < 0) { + setEventMessage($object->error,'errors'); + } +} + +// Execute jobs +if ($action == 'confirm_execute' && $confirm == "yes" && $user->rights->cron->execute){ + + //Execute jobs + $object = new Cronjob($db); + $job = $object->fetch($id); + + $result = $object->run_jobs($user->login); + if ($result < 0) { + setEventMessage($object->error,'errors'); + } + +} + + +/* + * View + */ +if (!empty($status)) { + $pagetitle=$langs->trans("CronListActive"); +}else { + $pagetitle=$langs->trans("CronListInactive"); +} + +llxHeader('',$pagetitle); + + +// Form object for popup +$form = new Form($db); + +if ($action == 'delete') +{ + $ret=$form->form_confirm($_SERVER['PHP_SELF']."?id=".$id.'&status='.$status,$langs->trans("CronDelete"),$langs->trans("CronConfirmDelete"),"confirm_delete",'','',1); + if ($ret == 'html') print '
'; +} + +if ($action == 'execute'){ + $ret=$form->form_confirm($_SERVER['PHP_SELF']."?id=".$id.'&status='.$status,$langs->trans("CronExecute"),$langs->trans("CronConfirmExecute"),"confirm_execute",'','',1); + if ($ret == 'html') print '
'; +} + + +print_fiche_titre($pagetitle,'','setup'); + +print $langs->trans('CronInfo'); + +// liste des jobs creer +$object = new Cronjob($db); +$result=$object->fetch_all($sortorder, $sortfield, $limit, $offset, $status, $filter); +if ($result < 0) { + setEventMessage($object->error,'errors'); +} + + +print "

"; +print $langs->trans('CronWaitingJobs'); +print "

"; + +if (count($object->lines)>0) { + + print ''; + print ''; + $arg_url='&page='.$page.'&status='.$status.'&search_label='.$search_label; + print_liste_field_titre($langs->trans("CronLabel"),$_SERVEUR['PHP_SELF'],"t.label","",$arg_url,'',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("CronTask"),'','',"",$arg_url,'',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("CronDtStart"),$_SERVEUR['PHP_SELF'],"t.datestart","",$arg_url,'',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("CronDtEnd"),$_SERVEUR['PHP_SELF'],"t.dateend","",$arg_url,'',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("CronDtLastLaunch"),$_SERVEUR['PHP_SELF'],"t.datelastrun","",$arg_url,'',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("CronDtNextLaunch"),$_SERVEUR['PHP_SELF'],"t.datenextrun","",$arg_url,'',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("CronFrequency"),'',"","",$arg_url,'',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("CronNbRun"),$_SERVEUR['PHP_SELF'],"t.nbrun","",$arg_url,'',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("CronLastResult"),$_SERVEUR['PHP_SELF'],"t.lastresult","",$arg_url,'',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("CronLastOutput"),$_SERVEUR['PHP_SELF'],"t.lastoutput","",$arg_url,'',$sortfield,$sortorder); + print ''; + + print ''; + + print ''."\n"; + print ''; + print ''; + + + + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + + print ''; + print ''; + + + + // Boucler sur chaque job + $style='impair'; + foreach($object->lines as $line){ + // title profil + if ($style=='pair') {$style='impair';} + else {$style='pair';} + + print ''; + + print ''; + + print ''; + + print ''; + + print ''; + + print ''; + + print ''; + + print ''; + + print ''; + + print ''; + + print ''; + + print ''; + + print ''; + } + print '
'; + print ''; + print '         '; + print '  '; + print ''; + print '
'; + if(!empty($line->label)) { + print ''.$line->label.''; + } + else { + print $langs->trans('CronNone'); + } + print ''; + if ($line->jobtype=='method') { + print $langs->trans('CronModule').':'.$line->module_name.'
'; + print $langs->trans('CronClass').':'. $line->classesname.'
'; + print $langs->trans('CronObject').':'. $line->objectname.'
'; + print $langs->trans('CronMethod').':'. $line->methodename; + if(!empty($line->params)) { + print '
'.$langs->trans('CronArgs').':'. $line->params; + } + + }elseif ($line->jobtype=='command') { + print $langs->trans('CronCommand').':'. dol_trunc($line->command); + if(!empty($line->params)) { + print '
'.$langs->trans('CronArgs').':'. $line->params; + } + } + print '
'; + if(!empty($line->datestart)) {print dol_print_date($line->datestart,'dayhourtext');} else {print $langs->trans('CronNone');} + print ''; + if(!empty($line->dateend)) {print dol_print_date($line->dateend,'dayhourtext');} else {print $langs->trans('CronNone');} + print ''; + if(!empty($line->datelastrun)) {print dol_print_date($line->datelastrun,'dayhourtext');} else {print $langs->trans('CronNone');} + print ''; + if(!empty($line->datenextrun)) {print dol_print_date($line->datenextrun,'dayhourtext');} else {print $langs->trans('CronNone');} + print ''; + if($line->unitfrequency == "60") print $langs->trans('CronEach')." ".($line->frequency/$line->unitfrequency)." ".$langs->trans('Minutes'); + if($line->unitfrequency == "3600") print $langs->trans('CronEach')." ".($line->frequency/$line->unitfrequency)." ".$langs->trans('Hours'); + if($line->unitfrequency == "86400") print $langs->trans('CronEach')." ".($line->frequency/$line->unitfrequency)." ".$langs->trans('Days'); + if($line->unitfrequency == "604800") print $langs->trans('CronEach')." ".($line->frequency/$line->unitfrequency)." ".$langs->trans('Weeks'); + print ''; + if(!empty($line->nbrun)) {print $line->nbrun;} else {print '0';} + print ''; + if(!empty($line->lastresult)) {print dol_trunc($line->lastresult);} else {print $langs->trans('CronNone');} + print ''; + if(!empty($line->lastoutput)) {print dol_trunc(nl2br($line->lastoutput),100);} else {print $langs->trans('CronNone');} + print ''; + if ($user->rights->cron->delete) { + print "id."&status=".$status."&action=delete\" title=\"".$langs->trans('CronDelete')."\">\"".$langs-trans('CronDelete')."\" />"; + } else { + print "trans('NotEnoughPermissions')."\">\"".$langs-trans('NotEnoughPermissions')."\" />"; + } + if ($user->rights->cron->execute) { + print "id."&status=".$status."&action=execute\" title=\"".$langs->trans('CronExecute')."\">\"".$langs-trans('CronExecute')."\" />"; + } else { + print "trans('NotEnoughPermissions')."\">\"".$langs-trans('NotEnoughPermissions')."\" />"; + } + print '
'; +} else { + print $langs->trans('CronNoJobs'); +} + +print "\n\n
\n"; +if (! $user->rights->cron->create) { + print ''.$langs->trans("New").''; +} else { + print ''.$langs->trans("New").''; +} +print '

'; + +llxFooter(); +$db->close(); \ No newline at end of file diff --git a/htdocs/ecm/index.php b/htdocs/ecm/index.php index 2f42787dda6..c671fa2e29b 100644 --- a/htdocs/ecm/index.php +++ b/htdocs/ecm/index.php @@ -390,12 +390,16 @@ if (!empty($conf->global->ECM_AUTO_TREE_ENABLED)) { 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->projet->enabled)) { $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'project', 'test'=>$conf->projet->enabled, 'label'=>$langs->trans("Projects"), 'desc'=>$langs->trans("ECMDocsByProjects")); } } + print_fiche_titre($langs->trans("ECMArea").' - '.$langs->trans("ECMFileManager")); +print '
'; print $langs->trans("ECMAreaDesc")."
"; print $langs->trans("ECMAreaDesc2")."
"; print "
\n"; +print '
'; // Confirm remove file (for non javascript users) if ($action == 'delete' && empty($conf->use_javascript_ajax)) diff --git a/htdocs/expedition/class/expedition.class.php b/htdocs/expedition/class/expedition.class.php index 919bac93394..393a316df15 100644 --- a/htdocs/expedition/class/expedition.class.php +++ b/htdocs/expedition/class/expedition.class.php @@ -51,7 +51,6 @@ class Expedition extends CommonObject var $origin; var $origin_id; var $lines=array(); - var $expedition_method_id; // deprecated var $shipping_method_id; var $tracking_number; var $tracking_url; @@ -81,7 +80,9 @@ class Expedition extends CommonObject var $total_localtax1; // Total Local tax 1 var $total_localtax2; // Total Local tax 2 - + var $listmeths; // List of carriers + + /** * Constructor * @@ -201,7 +202,7 @@ class Expedition extends CommonObject $sql.= ", ".($this->date_delivery>0?"'".$this->db->idate($this->date_delivery)."'":"null"); $sql.= ", ".$this->socid; $sql.= ", ".($this->fk_delivery_address>0?$this->fk_delivery_address:"null"); - $sql.= ", ".($this->expedition_method_id>0?$this->expedition_method_id:"null"); + $sql.= ", ".($this->shipping_method_id>0?$this->shipping_method_id:"null"); $sql.= ", '".$this->db->escape($this->tracking_number)."'"; $sql.= ", ".$this->weight; $sql.= ", ".$this->sizeS; // TODO Should use this->trueDepth @@ -371,7 +372,6 @@ class Expedition extends CommonObject $this->date_delivery = $this->db->jdate($obj->date_delivery); // Date planed $this->fk_delivery_address = $obj->fk_address; $this->modelpdf = $obj->model_pdf; - $this->expedition_method_id = $obj->fk_expedition_methode; // TODO deprecated $this->shipping_method_id = $obj->fk_expedition_methode; $this->tracking_number = $obj->tracking_number; $this->origin = ($obj->origin?$obj->origin:'commande'); // For compatibility @@ -681,7 +681,7 @@ class Expedition extends CommonObject if (isset($this->fk_user_author)) $this->fk_user_author=trim($this->fk_user_author); if (isset($this->fk_user_valid)) $this->fk_user_valid=trim($this->fk_user_valid); if (isset($this->fk_delivery_address)) $this->fk_delivery_address=trim($this->fk_delivery_address); - if (isset($this->expedition_method_id)) $this->expedition_method_id=trim($this->expedition_method_id); + if (isset($this->shipping_method_id)) $this->shipping_method_id=trim($this->shipping_method_id); if (isset($this->tracking_number)) $this->tracking_number=trim($this->tracking_number); if (isset($this->statut)) $this->statut=trim($this->statut); if (isset($this->trueDepth)) $this->trueDepth=trim($this->trueDepth); @@ -712,7 +712,7 @@ class Expedition extends CommonObject $sql.= " date_expedition=".(dol_strlen($this->date_expedition)!=0 ? "'".$this->db->idate($this->date_expedition)."'" : 'null').","; $sql.= " date_delivery=".(dol_strlen($this->date_delivery)!=0 ? "'".$this->db->idate($this->date_delivery)."'" : 'null').","; $sql.= " fk_address=".(isset($this->fk_delivery_address)?$this->fk_delivery_address:"null").","; - $sql.= " fk_expedition_methode=".((isset($this->expedition_method_id) && $this->expedition_method_id > 0)?$this->expedition_method_id:"null").","; + $sql.= " fk_shipping_method=".((isset($this->shipping_method_id) && $this->shipping_method_id > 0)?$this->shipping_method_id:"null").","; $sql.= " tracking_number=".(isset($this->tracking_number)?"'".$this->db->escape($this->tracking_number)."'":"null").","; $sql.= " fk_statut=".(isset($this->statut)?$this->statut:"null").","; $sql.= " height=".(($this->trueHeight != '')?$this->trueHeight:"null").","; @@ -1175,12 +1175,14 @@ class Expedition extends CommonObject /** * Fetch all deliveries method and return an array. Load array this->listmeths. + * * @param id $id only this carrier, all if none * @return void */ function list_delivery_methods($id='') { global $langs; + $listmeths = array(); $i=0; @@ -1220,6 +1222,7 @@ class Expedition extends CommonObject $i++; } } + else dol_print_error($this->db,''); } /** @@ -1231,8 +1234,8 @@ class Expedition extends CommonObject { if ($id=='') { - $sql = "INSERT INTO ".MAIN_DB_PREFIX."c_shipment_mode (rowid, code, libelle, description, tracking)"; - $sql.=" VALUES ('','".$this->update[code]."','".$this->update[libelle]."','".$this->update[description]."','".$this->update[tracking]."')"; + $sql = "INSERT INTO ".MAIN_DB_PREFIX."c_shipment_mode (code, libelle, description, tracking)"; + $sql.=" VALUES ('".$this->update[code]."','".$this->update[libelle]."','".$this->update[description]."','".$this->update[tracking]."')"; $resql = $this->db->query($sql); } else @@ -1245,7 +1248,7 @@ class Expedition extends CommonObject $sql.= " WHERE rowid=".$id; $resql = $this->db->query($sql); } - + if ($resql < 0) dol_print_error($this->db,''); } /** @@ -1286,11 +1289,11 @@ class Expedition extends CommonObject { $code=''; - if (! empty($this->expedition_method_id)) + if (! empty($this->shipping_method_id)) { $sql = "SELECT em.code, em.tracking"; $sql.= " FROM ".MAIN_DB_PREFIX."c_shipment_mode as em"; - $sql.= " WHERE em.rowid = ".$this->expedition_method_id; + $sql.= " WHERE em.rowid = ".$this->shipping_method_id; $resql = $this->db->query($sql); if ($resql) diff --git a/htdocs/expedition/fiche.php b/htdocs/expedition/fiche.php index 21289f60864..d58b6d60f4f 100644 --- a/htdocs/expedition/fiche.php +++ b/htdocs/expedition/fiche.php @@ -104,7 +104,7 @@ if ($action == 'add') $object->ref_customer = $objectsrc->ref_client; $object->date_delivery = $date_delivery; // Date delivery planed $object->fk_delivery_address = $objectsrc->fk_delivery_address; - $object->expedition_method_id = GETPOST('expedition_method_id','int'); + $object->shipping_method_id = GETPOST('shipping_method_id','int'); $object->tracking_number = GETPOST('tracking_number','alpha'); $object->ref_int = GETPOST('ref_int','alpha'); @@ -260,7 +260,7 @@ else if ($action == 'settrackingnumber' || $action == 'settrackingurl' || $action == 'settrueWidth' || $action == 'settrueHeight' || $action == 'settrueDepth' -|| $action == 'setexpedition_method_id') +|| $action == 'setshipping_method_id') { $error=0; @@ -274,7 +274,7 @@ else if ($action == 'settrackingnumber' || $action == 'settrackingurl' if ($action == 'settrueWidth') $shipping->trueWidth = trim(GETPOST('trueWidth','int')); if ($action == 'settrueHeight') $shipping->trueHeight = trim(GETPOST('trueHeight','int')); if ($action == 'settrueDepth') $shipping->trueDepth = trim(GETPOST('trueDepth','int')); - if ($action == 'setexpedition_method_id') $shipping->expedition_method_id = trim(GETPOST('expedition_method_id','int')); + if ($action == 'setshipping_method_id') $shipping->shipping_method_id = trim(GETPOST('shipping_method_id','int')); if (! $error) { @@ -412,7 +412,7 @@ if ($action == 'send' && ! GETPOST('addfile','alpha') && ! GETPOST('removedfile' $from = GETPOST('fromname','alpha') . ' <' . GETPOST('frommail','alpha') .'>'; $replyto = GETPOST('replytoname','alpha'). ' <' . GETPOST('replytomail','alpha').'>'; - $message = GETPOST('message','alpha'); + $message = GETPOST('message'); $sendtocc = GETPOST('sendtocc','alpha'); $deliveryreceipt = GETPOST('deliveryreceipt','alpha'); @@ -442,7 +442,7 @@ if ($action == 'send' && ! GETPOST('addfile','alpha') && ! GETPOST('removedfile' // Send mail require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; - $mailfile = new CMailFile($subject,$sendto,$from,$message,$filepath,$mimetype,$filename,$sendtocc,'',$deliveryreceipt); + $mailfile = new CMailFile($subject,$sendto,$from,$message,$filepath,$mimetype,$filename,$sendtocc,'',$deliveryreceipt,-1); if ($mailfile->error) { $mesg='
'.$mailfile->error.'
'; @@ -658,7 +658,7 @@ if ($action == 'create') print "".$langs->trans("DeliveryMethod").""; print ''; $expe->fetch_delivery_methods(); - print $form->selectarray("expedition_method_id",$expe->meths,GETPOST('expedition_method_id','int'),1,0,0,"",1); + print $form->selectarray("shipping_method_id",$expe->meths,GETPOST('shipping_method_id','int'),1,0,0,"",1); if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionnarySetup"),1); print "\n"; @@ -1105,26 +1105,26 @@ else print $langs->trans('SendingMethod'); print ''; - if ($action != 'editexpedition_method_id') print 'id.'">'.img_edit($langs->trans('SetSendingMethod'),1).''; + if ($action != 'editshipping_method_id') print 'id.'">'.img_edit($langs->trans('SetSendingMethod'),1).''; print ''; print ''; - if ($action == 'editexpedition_method_id') + if ($action == 'editshipping_method_id') { - print ''; + print ''; print ''; - print ''; + print ''; $object->fetch_delivery_methods(); - print $form->selectarray("expedition_method_id",$object->meths,$object->expedition_method_id,1,0,0,"",1); + print $form->selectarray("shipping_method_id",$object->meths,$object->shipping_method_id,1,0,0,"",1); if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionnarySetup"),1); print ''; print ''; } else { - if ($object->expedition_method_id > 0) + if ($object->shipping_method_id > 0) { // Get code using getLabelFromKey - $code=$langs->getLabelFromKey($db,$object->expedition_method_id,'c_shipment_mode','rowid','code'); + $code=$langs->getLabelFromKey($db,$object->shipping_method_id,'c_shipment_mode','rowid','code'); print $langs->trans("SendingMethod".strtoupper($code)); } } @@ -1293,7 +1293,7 @@ else * Boutons actions */ - if ($user->societe_id == 0) + if (($user->societe_id == 0) && ($action!='presend')) { print '
'; @@ -1457,6 +1457,40 @@ else $formmail->substit['__SHIPPINGREF__']=$object->ref; $formmail->substit['__SIGNATURE__']=$user->signature; $formmail->substit['__PERSONALIZED__']=''; + $formmail->substit['__CONTACTCIVNAME__']=''; + + //Find the good contact adress + //Find the good contact adress + if ($typeobject == 'commande' && $object->$typeobject->id && ! empty($conf->commande->enabled)) { + $objectsrc=new Commande($db); + $objectsrc->fetch($object->$typeobject->id); + } + if ($typeobject == 'propal' && $object->$typeobject->id && ! empty($conf->propal->enabled)) { + $objectsrc=new Propal($db); + $objectsrc->fetch($object->$typeobject->id); + } + $custcontact=''; + $contactarr=array(); + $contactarr=$objectsrc->liste_contact(-1,'external'); + + if (is_array($contactarr) && count($contactarr)>0) { + foreach($contactarr as $contact) { + + if ($contact['libelle']==$langs->trans('TypeContact_commande_external_CUSTOMER')) { + + require_once DOL_DOCUMENT_ROOT . '/contact/class/contact.class.php'; + + $contactstatic=new Contact($db); + $contactstatic->fetch($contact['id']); + $custcontact=$contactstatic->getFullName($langs,1); + } + } + + if (!empty($custcontact)) { + $formmail->substit['__CONTACTCIVNAME__']=$custcontact; + } + } + // Tableau des parametres complementaires $formmail->param['action']='send'; $formmail->param['models']='shipping_send'; diff --git a/htdocs/expedition/index.php b/htdocs/expedition/index.php index 084fb65aca7..1b28f1f7b7f 100644 --- a/htdocs/expedition/index.php +++ b/htdocs/expedition/index.php @@ -43,8 +43,11 @@ llxHeader('',$langs->trans("Sendings"),$helpurl); print_fiche_titre($langs->trans("SendingsArea")); -print ''; -print ''."\n"; - - $name = substr($file, 0, dol_strlen($file) - 4); + print ''; + print ''."\n"; // Run sql script $ok=run_sql($dir.$file, 0, '', 1); + + // Scan if there is migration scripts for modules htdocs/module/sql or htdocs/custom/module/sql + $modulesfile = array(); + foreach ($conf->file->dol_document_root as $type => $dirroot) + { + $handlemodule=@opendir($dirroot); + if (is_resource($handlemodule)) + { + while (($filemodule = readdir($handlemodule))!==false) + { + if (is_dir($dirroot.'/'.$filemodule.'/sql')) + { + //print "Scan for ".$dirroot . '/' . $filemodule . '/sql/'.$file; + if (is_file($dirroot . '/' . $filemodule . '/sql/'.$file)) + { + $modulesfile[$dirroot . '/' . $filemodule . '/sql/'.$file] = '/' . $filemodule . '/sql/'.$file; + } + } + } + closedir($handlemodule); + } + } + + foreach ($modulesfile as $modulefilelong => $modulefileshort) + { + print ''; + print ''."\n"; + + // Run sql script + $okmodule=run_sql($modulefilelong, 0, '', 1); // Note: Result of migration of external module should not decide if we continue migration of Dolibarr or not. + } + } } diff --git a/htdocs/langs/ar_SA/admin.lang b/htdocs/langs/ar_SA/admin.lang index b83575bc21d..148055a3139 100644 --- a/htdocs/langs/ar_SA/admin.lang +++ b/htdocs/langs/ar_SA/admin.lang @@ -213,7 +213,7 @@ ModuleFamilyProducts=إدارة المنتجات ModuleFamilyHr=إدارة الموارد البشرية ModuleFamilyProjects=مشاريع / العمل التعاوني ModuleFamilyOther=أخرى -ModuleFamilyTechnic=Mutli بين وحدات وأدوات +ModuleFamilyTechnic=Multi بين وحدات وأدوات ModuleFamilyExperimental=نماذج تجريبية ModuleFamilyFinancial=الوحدات المالية (المحاسبة / الخزانة) ModuleFamilyECM=إدارة المحتوى في المؤسسة @@ -333,10 +333,6 @@ Module1400Name=المحاسبة Module1400Desc=المحاسبة الإدارية (ضعف الأحزاب) Module1780Name=الفئات Module1780Desc=الفئات إدارة المنتجات والموردين والزبائن) -Module2200Name=الإقراض الإنسان -Module2200Desc=الإقراض لإدارة الحقوق -Module2300Name=القوائم -Module2300Desc=القوائم إدارة Module2400Name=جدول الأعمال Module2400Desc=الأعمال / الإدارة المهام وجدول الأعمال Module2500Name=إدارة المحتوى الإلكتروني @@ -673,7 +669,7 @@ GeneratedPasswordDesc=هنا تعريف القاعدة التي تريد است DictionnaryDesc=تعرف هنا إشارة datas. يمكنك استكمال مسبقا مع قيمة لك. ConstDesc=تسمح لك هذه الصفحة لتحرير جميع البارامترات الأخرى غير المتوفرة في الصفحات السابقة. فهي محفوظة لمعايير متقدمة للمطورين أو troubleshouting. OnceSetupFinishedCreateUsers=تحذير فأنت Dolibarr مدير المستخدم. مدير المستخدمين تستخدم لإعداد Dolibarr. لالمعتاد استخدام Dolibarr ، يوصى باستخدام غير مستخدم مدير خلق مجموعات من المستخدمين & القائمة. -MiscellanousDesc=هنا تعريف جميع البارامترات الأخرى ذات الصلة بالأمن. +MiscellaneousDesc=هنا تعريف جميع البارامترات الأخرى ذات الصلة بالأمن. LimitsSetup=حدود / الدقيقة الإعداد LimitsDesc=يمكنك تحديد الحدود ، وoptimisations الايضاحات التي تستخدمها Dolibarr هنا MAIN_MAX_DECIMALS_UNIT=ماكس عشرية لأسعار الوحدات @@ -1272,7 +1268,7 @@ SendmailOptionMayHurtBuggedMTA=وميزة لإرسال رسائل باستخدا ModuleCompanyCodeAquarium=عودة رمز المحاسبة التي بناها:
يتبع %s بواسطة طرف ثالث رمز المورد عن مورد قانون المحاسبة،
يتبع %s بواسطة طرف ثالث رمز العملاء لعميل قانون المحاسبة. CompanyIdProfChecker=المهنية معرف فريد MustBeUnique=يجب أن تكون فريدة من نوعها؟ -Miscellanous=متفرقات +Miscellaneous=متفرقات ContractsSetup=عقود وحدة الإعداد ContractsNumberingModules=عقود ترقيم الوحدات AdherentLoginRequired=إدارة تسجيل الدخول لكل عضو diff --git a/htdocs/langs/ar_SA/bills.lang b/htdocs/langs/ar_SA/bills.lang index 6fad3e67919..3987e77682f 100644 --- a/htdocs/langs/ar_SA/bills.lang +++ b/htdocs/langs/ar_SA/bills.lang @@ -433,6 +433,6 @@ EditGlobalDiscounts=تعديل الخصومات مطلق AddCreditNote=علما خلق الائتمان InvoiceNotChecked=لا فاتورة مختارة ShowUnpaidAll=وتظهر جميع الفواتير غير المسددة -ClosePaidInvoicesAutomatically=تصنيف "سيولي" كل معيار أو الفواتير استبدال سيولي entierely. +ClosePaidInvoicesAutomatically=تصنيف "سيولي" كل معيار أو الفواتير استبدال سيولي entirely. AllCompletelyPayedInvoiceWillBeClosed=كل فاتورة مع عدم وجود لا تزال لدفع ستغلق تلقائيا إلى "فياض" الوضع. // STOP - Lines generated via autotranslator.php tool (2012-02-29 15:56:17). diff --git a/htdocs/langs/ar_SA/install.lang b/htdocs/langs/ar_SA/install.lang index 57d561e631d..69a9dfc2c4d 100644 --- a/htdocs/langs/ar_SA/install.lang +++ b/htdocs/langs/ar_SA/install.lang @@ -10,7 +10,7 @@ // Reference language: en_US CHARSET=UTF-8 InstallEasy=فقط اتبع التعليمات خطوة بخطوة. -MiscellanousChecks=التحقق من الشروط الأساسية +MiscellaneousChecks=التحقق من الشروط الأساسية DolibarrWelcome=مرحبا بكم في Dolibarr ConfFileExists=ملفات موجودة ٪ ق. ConfFileDoesNotExists=ملفات ل ٪ لا وجود له! diff --git a/htdocs/langs/ar_SA/main.lang b/htdocs/langs/ar_SA/main.lang index 5befea18b77..f273f913d04 100644 --- a/htdocs/langs/ar_SA/main.lang +++ b/htdocs/langs/ar_SA/main.lang @@ -428,8 +428,6 @@ NbOfThirdParties=عدد من الأطراف الثالثة NbOfCustomers=عدد من العملاء NbOfLines=عدد الخطوط NbOfObjects=عدد الأجسام -NbOfReferers=عدد referers -Referers=Referers TotalQuantity=الكمية الإجمالية DateFromTo=ل٪ من ق ق ٪ DateFrom=من ق ٪ diff --git a/htdocs/langs/ar_SA/members.lang b/htdocs/langs/ar_SA/members.lang index 570dfab4069..6b16226f9e5 100644 --- a/htdocs/langs/ar_SA/members.lang +++ b/htdocs/langs/ar_SA/members.lang @@ -152,7 +152,7 @@ ShowTypeCard=وتبين من نوع '٪ ق' HTPasswordExport=الملف htpassword جيل NoThirdPartyAssociatedToMember=لم يرتبط بها من طرف ثالث لهذا العضو ThirdPartyDolibarr=Dolibarr طرف ثالث -MembersAndSubscriptions=وأعضاء Suscriptions +MembersAndSubscriptions=وأعضاء Subscriptions // Date 2009-08-11 13:27:01 // STOP - Lines generated via parser diff --git a/htdocs/langs/ar_SA/other.lang b/htdocs/langs/ar_SA/other.lang index 4c419afc905..d32680de008 100644 --- a/htdocs/langs/ar_SA/other.lang +++ b/htdocs/langs/ar_SA/other.lang @@ -44,7 +44,7 @@ TotalSizeOfAttachedFiles=اجمالى حجم الملفات المرفقة / و MaxSize=الحجم الأقصى AttachANewFile=إرفاق ملف جديد / وثيقة LinkedObject=ربط وجوه -Miscellanous=متفرقات +Miscellaneous=متفرقات NbOfActiveNotifications=عدد الإخطارات WarningInstallDirExists=تحذير تركيب دليل (٪) لا تزال موجودة. هذه هي ثغرة أمنية خطيرة. يجب عليك إزالة عليه في أقرب وقت ممكن. WarningUntilDirRemoved=هذا التحذير وسوف تظل نشطة ما دام هذا الدليل هو هذا (يظهر فقط لمستخدمي المشرف). diff --git a/htdocs/langs/bg_BG/admin.lang b/htdocs/langs/bg_BG/admin.lang index 34dfd27832a..5a181549062 100644 --- a/htdocs/langs/bg_BG/admin.lang +++ b/htdocs/langs/bg_BG/admin.lang @@ -438,10 +438,6 @@ Module1780Name=Категории Module1780Desc=Категория управление (продукти, доставчици и клиенти) Module2000Name=WYSIWYG редактор Module2000Desc=Оставя се да редактирате някакъв текст, чрез използване на усъвършенствана редактор -Module2200Name=Кредити права -Module2200Desc=Заеми за управление на права -Module2300Name=Менюта -Module2300Desc=Меню управление Module2400Name=Дневен ред Module2400Desc=Събития / задачи и управление на дневен ред Module2500Name=Управление на електронно съдържание @@ -846,7 +842,7 @@ GeneratedPasswordDesc=Определете тук правилото, което DictionnaryDesc=Определете тук всички референтни презареждане на данните. Можете да попълните предварително зададена стойност с вашите. ConstDesc=Тази страница ви позволява да редактирате всички останали параметри не са налични в предишните страници. Те са запазени параметрите за напреднали разработчиците или за troubleshouting. OnceSetupFinishedCreateUsers=Внимание, вие сте на потребителя администратор Dolibarr. Администратор потребители не се използват да настроите Dolibarr. За обичайна употреба на Dolibarr, се препоръчва да използвате не потребителски администратора, създаден от Потребители и групи менюто. -MiscellanousDesc=Определете тук всички други параметри, свързани със сигурността. +MiscellaneousDesc=Определете тук всички други параметри, свързани със сигурността. LimitsSetup=Граници / Прецизно настройване LimitsDesc=Можете да дефинирате ограничения, уточнения и оптимизации, използвани от Dolibarr тук MAIN_MAX_DECIMALS_UNIT=Макс знака след десетичната запетая за единичните цени @@ -927,7 +923,7 @@ DocumentModelOdt=Генериране на документи от OpenDocuments WatermarkOnDraft=Воден знак върху проект на документ CompanyIdProfChecker=Професионална Id уникален MustBeUnique=Трябва да е уникален? -Miscellanous=Разни +Miscellaneous=Разни WebCalSetup=Настройка webcalendar връзка WebCalSyncro=Да Добавяне на Dolibarr събития да WebCalendar WebCalAllways=Винаги, не иска diff --git a/htdocs/langs/bg_BG/bills.lang b/htdocs/langs/bg_BG/bills.lang index 86920ad6d7d..9d295d4edc5 100644 --- a/htdocs/langs/bg_BG/bills.lang +++ b/htdocs/langs/bg_BG/bills.lang @@ -384,7 +384,7 @@ DisabledBecausePayments=Не е възможно, тъй като има няк CantRemovePaymentWithOneInvoicePaid=Не може да се премахне плащането, тъй като има най-малко една фактура, класифицирани плаща ExpectedToPay=Очаквано плащане PayedByThisPayment=Плаща от това плащане -ClosePaidInvoicesAutomatically=Класифицира "ЗАПЛАЩАТ" стандартно или заместващи фактури entierely ЗАПЛАЩАТ. +ClosePaidInvoicesAutomatically=Класифицира "ЗАПЛАЩАТ" стандартно или заместващи фактури entirely ЗАПЛАЩАТ. AllCompletelyPayedInvoiceWillBeClosed=Всички фактура не остават да плати, ще бъде затворено автоматично статус "Платени". TypeContact_facture_internal_SALESREPFOLL=Представител проследяване клиент фактура TypeContact_facture_external_BILLING=Контакта с клиентите фактура diff --git a/htdocs/langs/bg_BG/install.lang b/htdocs/langs/bg_BG/install.lang index aa18691f409..3e720835f7f 100644 --- a/htdocs/langs/bg_BG/install.lang +++ b/htdocs/langs/bg_BG/install.lang @@ -9,7 +9,7 @@ // Reference language: en_US -> bg_BG CHARSET=UTF-8 InstallEasy=Просто следвайте инструкциите стъпка по стъпка. -MiscellanousChecks=Предпоставки проверка +MiscellaneousChecks=Предпоставки проверка DolibarrWelcome=Добре дошли в Dolibarr ConfFileExists=%s конфигурационен файл съществува. ConfFileDoesNotExists=%s конфигурационен файл не съществува! diff --git a/htdocs/langs/bg_BG/members.lang b/htdocs/langs/bg_BG/members.lang index c2fabf1da50..88d614bb1ad 100644 --- a/htdocs/langs/bg_BG/members.lang +++ b/htdocs/langs/bg_BG/members.lang @@ -163,7 +163,7 @@ ShowTypeCard=Покажи тип "%s" HTPasswordExport=htpassword файл поколение NoThirdPartyAssociatedToMember=Никоя трета страна, свързана с този потребител ThirdPartyDolibarr=Dolibarr трета страна -MembersAndSubscriptions=Членове и Suscriptions +MembersAndSubscriptions=Членове и Subscriptions MoreActions=Допълнително действие на запис MoreActionBankDirect=Създаване на директен запис на сделката по сметка MoreActionBankViaInvoice=Създаване на фактура и плащане по сметка diff --git a/htdocs/langs/bg_BG/other.lang b/htdocs/langs/bg_BG/other.lang index a534bbc1218..08664887076 100644 --- a/htdocs/langs/bg_BG/other.lang +++ b/htdocs/langs/bg_BG/other.lang @@ -52,18 +52,18 @@ TotalSizeOfAttachedFiles=Общ размер на прикачените фай MaxSize=Максимален размер AttachANewFile=Прикрепете нов файл / документ LinkedObject=Свързан обект -Miscellanous=Разни +Miscellaneous=Разни NbOfActiveNotifications=Броят на нотификациите PredefinedMailTest=Това е тест поща. \ NПромените две линии са разделени с нов ред. \n\n __ SIGNATURE__ PredefinedMailTestHtml=Това е тест поща (тест дума трябва да бъде с удебелен шрифт).
Двете линии са разделени от връщане на каретката.

__SIGNATURE__ -PredefinedMailContentSendInvoice=Тук ще намерите фактура __ FACREF__ \n\n от __ PERSONALIZED__Sincerely \n\n __ SIGNATURE__ -PredefinedMailContentSendInvoiceReminder=Бихме искали да ви предупредя, че фактурата FACREF__ __ изглежда не се заплащат. Така че това е фактурата в прикачения файл отново, за напомняне. \n\n __ PERSONALIZED__Sincerely \n\n __ SIGNATURE__ -PredefinedMailContentSendProposal=Тук ще намерите търговския propoal __ PROPREF__ \n\n __ PERSONALIZED__Sincerely \n\n __ SIGNATURE__ -PredefinedMailContentSendOrder=Тук ще намерите за __ ORDERREF__ \n\n __ PERSONALIZED__Sincerely \n\n __ SIGNATURE__ -PredefinedMailContentSendSupplierOrder=Тук ще намерите нашата цел __ ORDERREF__ \n\n __ PERSONALIZED__Sincerely \n\n __ SIGNATURE__ -PredefinedMailContentSendSupplierInvoice=Тук ще намерите фактура __ FACREF__ \n\n от __ PERSONALIZED__Sincerely \n\n __ SIGNATURE__ -PredefinedMailContentSendShipping=Тук ще намерите корабоплаването __ SHIPPINGREF__ \n\n __ PERSONALIZED__Sincerely \n\n __ SIGNATURE__ -PredefinedMailContentSendFichInter=Тук ще намерите намесата __ FICHINTERREF__ \n\n __ PERSONALIZED__Sincerely \n\n __ SIGNATURE__ +PredefinedMailContentSendInvoice=__CONTACTCIVNAME__ \n\n Тук ще намерите фактура __ FACREF__ \n\n от __ PERSONALIZED__Sincerely \n\n __ SIGNATURE__ +PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__ \n\n Бихме искали да ви предупредя, че фактурата FACREF__ __ изглежда не се заплащат. Така че това е фактурата в прикачения файл отново, за напомняне. \n\n __ PERSONALIZED__Sincerely \n\n __ SIGNATURE__ +PredefinedMailContentSendProposal=__CONTACTCIVNAME__ \n\n Тук ще намерите търговския propoal __ PROPREF__ \n\n __ PERSONALIZED__Sincerely \n\n __ SIGNATURE__ +PredefinedMailContentSendOrder=__CONTACTCIVNAME__ \n\n Тук ще намерите за __ ORDERREF__ \n\n __ PERSONALIZED__Sincerely \n\n __ SIGNATURE__ +PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__ \n\n Тук ще намерите нашата цел __ ORDERREF__ \n\n __ PERSONALIZED__Sincerely \n\n __ SIGNATURE__ +PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__ \n\n Тук ще намерите фактура __ FACREF__ \n\n от __ PERSONALIZED__Sincerely \n\n __ SIGNATURE__ +PredefinedMailContentSendShipping=__CONTACTCIVNAME__ \n\n Тук ще намерите корабоплаването __ SHIPPINGREF__ \n\n __ PERSONALIZED__Sincerely \n\n __ SIGNATURE__ +PredefinedMailContentSendFichInter=__CONTACTCIVNAME__ \n\n Тук ще намерите намесата __ FICHINTERREF__ \n\n __ PERSONALIZED__Sincerely \n\n __ SIGNATURE__ DemoDesc=Dolibarr е компактен ERP / CRM състои от няколко функционални модули. Демо, което включва всички модули не означава нищо, тъй като това никога не се случва. Така че, няколко демо профили са на разположение. ChooseYourDemoProfil=Изберете профила демо, които съответстват на вашата дейност ... DemoFundation=Управление на членовете на фондация diff --git a/htdocs/langs/ca_ES/admin.lang b/htdocs/langs/ca_ES/admin.lang index adbce991781..f0e24d649bd 100644 --- a/htdocs/langs/ca_ES/admin.lang +++ b/htdocs/langs/ca_ES/admin.lang @@ -348,16 +348,18 @@ TextLong=Text llarg Int=numèric enter Float=Decimal DateAndTime=Data i hora +Unique=Unic Boolean=Boleano (Checkbox) ExtrafieldPhone=Telèfon ExtrafieldPrice=Preu ExtrafieldMail=Correu ExtrafieldSelect=Llista de selecció +ExtrafieldSeparator= LibraryToBuildPDF=Llibreria usada per a la creació d'arxius PDF WarningUsingFPDF=Atenció: El seu arxiu conf.php conté la directiva dolibarr_pdf_force_fpdf=1. Això fa que s'usi la llibreria FPDF per generar els seus arxius PDF. Aquesta llibreria és antiga i no cobreix algunes funcionalitats (Unicode, transparència d'imatges, idiomes ciríl · lics, àrabs o asiàtics, etc.), Pel que pot tenir problemes en la generació dels PDF.
Per resoldre-ho, i disposar d'un suport complet de PDF, pot descarregar la llibreria TCPDF , i a continuació comentar o eliminar la línia $dolibarr_pdf_force_fpdf=1, i afegir al seu lloc $dolibarr_lib_TCPDF_PATH='ruta_a_TCPDF' LocalTaxDesc=Alguns països apliquen 2 o 3 taxes a cada línia de factura. Si és el cas, escolliu el tipus de la segona i tercera taxa i el seu valor. Els possibles tipus són:
1: taxa local aplicable a productes i serveis sense IVA (IVA no s'aplica a la taxa local)
2: taxa local s'aplica a productes i serveis abans de l'IVA (IVA es calcula sobre import + taxa local)
3: taxa local s'aplica a productes sense IVA (IVA no s'aplica a la taxa local)
4: taxa local s'aplica a productes abans de l'IVA (IVA es calcula sobre l'import + taxa local)
5: taxa local s'aplica a serveis sense IVA (IVA no s'aplica a la taxa local)
6: taxa local s'aplica a serveis abans de l'IVA (IVA es calcula sobre import + taxa local) SuhosinSessionEncrypt=Emmagatzematge de sessions xifrades per Suhosin -# Modules= = +# Modules Module0Name=Usuaris y grups Module0Desc=Gestió d'usuaris i grups Module1Name=Tercers @@ -365,7 +367,7 @@ Module1Desc=Gestió de tercers (empreses, particulars) i contactes Module2Name=Comercial Module2Desc=Gestió comercial Module10Name=Comptabilitat -Module10Desc=Gestió simple de la comptabilitat (desglossament de factures i pagaments) +Module10Desc=Activació d'informes simples de comptabilitat (diaris, vendes) basats en el contingut de la base de dades. Sense desglossaments. Module20Name=Pressupostos Module20Desc=Gestió de pressupostos/propostes comercials Module22Name=E-Mailings @@ -450,10 +452,8 @@ Module1780Name=Categories Module1780Desc=Gestió de categories (productes, proveïdors i clients) Module2000Name=Editor WYSIWYG Module2000Desc=Permet l'edició de certes zones de text mitjançant un editor avançat -Module2200Name=Dret de préstecs -Module2200Desc=Gestió dels drets de préstecs -Module2300Name=Menús -Module2300Desc=Administració dels menús per base de dades +Module2300Name=Cron +Module2300Desc=Gestor de tasques programades Module2400Name=Agenda Module2400Desc=Gestió de l'agenda i de les accions Module2500Name=Gestió Electrònica de Documents @@ -677,6 +677,10 @@ Permission1411=Llegir els moviments comptables Permission1412=Crear/modificar/anular moviments comptables Permission1415=Llegir Balanços, informes, diaris, llibres mestres Permission1421=Exporta comandes de clients i atributs +Permission23001=Veure les tasques programades +Permission23002=Crear/Modificar les tasques programades +Permission23003=Eliminar les tasques programades +Permission23004=Executar les tasques programades Permission2401=Llegir accions (esdeveniments o tasques) vinculades al seu compte Permission2402=Crear/modificar accions (esdeveniments o tasques) vinculades al seu compte Permission2403=Modificar accions (esdeveniments o tasques) vinculades al seu compte @@ -886,7 +890,7 @@ GeneratedPasswordDesc=Indiqui aquí que norma vol utilitzar per generar les cont DictionnaryDesc=Indiqui aquí les dades de referència. Pot completar/modificar les dades predefinides amb les seves ConstDesc=Qualsevol altre paràmetre no editable en les pàgines anteriors OnceSetupFinishedCreateUsers=Atenció, està sota un compte d'administrador de Dolibarr. Els administradors s'utilitzen per configurar Dolibarr. Per a un ús corrent de Dolibarr, es recomana utilitzar un compte no administrador creada des del menú "Usuaris i grups" -MiscellanousDesc=Definiu aquí els altres paràmetres relacionats amb la seguretat. +MiscellaneousDesc=Definiu aquí els altres paràmetres relacionats amb la seguretat. LimitsSetup=Configuració de límits i precisions LimitsDesc=Podeu definir aquí els límits i precisions utilitzats per Dolibarr MAIN_MAX_DECIMALS_UNIT=Decimals màxims per als preus unitaris @@ -937,6 +941,7 @@ ExtraFieldsThirdParties=Atributs adicionals (tercers) ExtraFieldsContacts=Atributs adicionals (contactes/adreçes) ExtraFieldsMember=Atributs complementaris (membres) ExtraFieldsMemberType=Atributs complementaris (tipus de membres) +ExtraFieldsCustomerInvoices=Atributs complementaris (factures a clients) ExtraFieldHasWrongValue=L'atribut %s te un valor incorrecte. AlphaNumOnlyCharsAndNoSpace=només carateres alfanumèrics sense espais SendingMailSetup=Configuració de l'enviament per mail @@ -949,7 +954,7 @@ TranslationDesc=L'elecció de l'idioma mostrat en pantalla es modifica:
* A n ClassNotFoundIntoPathWarning=No s'ha trobat la classe %s en el seu path PHP YesInSummer=Sí a l'estiu OnlyFollowingModulesAreOpenedToExternalUsers=Recordeu que només els mòduls següents estan oberts a usuaris externs (siguin quins siguin els permisos dels usuaris): -##### Module password generation= = +##### Module password generation PasswordGenerationStandard=Retorna una contrasenya generada per l'algoritme intern Dolibarr: 8 caràcters, números i caràcters en minúscules barrejades. PasswordGenerationNone=No ofereix contrasenyes. La contrasenya s'introdueix manualment. ##### Users setup ##### @@ -977,7 +982,7 @@ CompanyIdProfChecker=Règles sobre els ID professionals MustBeUnique=Ha de ser únic? MustBeMandatory=Ha de ser obligatori per a crear tercers? MustBeInvoiceMandatory=Ha de ser obligatori per a validar factures? -Miscellanous=Miscel·lània +Miscellaneous=Miscel·lània ##### Webcal setup ##### WebCalSetup=Configuració d'enllaç amb el calendari webcalendar WebCalSyncro=Integrar els esdeveniments Dolibarr a webcalendar @@ -1273,6 +1278,8 @@ FCKeditorForCompany=Creació/edició WYSIWIG de la descripció i notes dels terc FCKeditorForProduct=Creació/edició WYSIWIG de la descripció i notes dels productes/serveis FCKeditorForProductDetails=Creació/edició WYSIWIG de les línies de detall dels productes (en comandes, pressupostos, factures, etc.) FCKeditorForMailing=Creació/edició WYSIWIG dels E-Mails +FCKeditorForUserSignature=Creació/edició WYSIWIG dela firma dels usuaris +FCKeditorForMail=Creació/edició WYSIWIG de tots els E-mails (excepte Utilitats->E-Mailings) ##### OSCommerce 1 ##### OSCommerceErrorConnectOkButWrongDatabase=La connexió s'ha establert, però la base de dades no sembla de OSCommerce. OSCommerceTestOk=La connexió al servidor '%s' sobre la base '%s' per l'usuari '%s' és correcta. @@ -1381,6 +1388,7 @@ MultiCompanySetup=Configuració del mòdul Multi-empresa SuppliersSetup=Configuració del mòdul Proveïdors SuppliersCommandModel=Model de comandes a proveïdors complet (logo...) SuppliersInvoiceModel=Model de factures de proveïdors complet (logo...) +SuppliersInvoiceNumberingModel=Models de numeració de factures de proveïdor ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=Configuració del mòdul GeoIP Maxmind PathToGeoIPMaxmindCountryDataFile=Ruta de l'arxiu Maxmind que conté les conversions IP-> País.
Exemple: /usr/local/share/GeoIP/GeoIP.dat diff --git a/htdocs/langs/ca_ES/bills.lang b/htdocs/langs/ca_ES/bills.lang index 8456f4518e4..3f923cb917d 100644 --- a/htdocs/langs/ca_ES/bills.lang +++ b/htdocs/langs/ca_ES/bills.lang @@ -385,6 +385,7 @@ ClosePaidCreditNotesAutomatically=Classificar automàticament com "Pagats" els a AllCompletelyPayedInvoiceWillBeClosed=Totes les factures amb una resta a pagar 0 seran automàticament tancades a l'estat "Pagada". ToMakePayment=Pagar ToMakePaymentBack=Reemborsar +ListOfYourUnpaidInvoices=Llistat de factures impagades ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Responsable seguiment factura a client TypeContact_facture_external_BILLING=Contacte client facturació diff --git a/htdocs/langs/ca_ES/commissions.lang b/htdocs/langs/ca_ES/commissions.lang deleted file mode 100644 index da97a4066f2..00000000000 --- a/htdocs/langs/ca_ES/commissions.lang +++ /dev/null @@ -1,41 +0,0 @@ -# Dolibarr language file - ca_ES - commissions -CHARSET=UTF-8 - -Module60000Desc=Gestió de comissions -commissionsSetup=Configuració de la gestió de comissions - -ProductCommissionRate=Taxa de comissió sobre els productes -ServiceCommissionRate=Taxa de comissió sobre els serveis - -ProductCommissionRateDetails=Taxa usada per calcular les comissions sobre les vendes de productes -ServiceCommissionRateDetails=Taxa usada per calcular les comissions sobre les vendes de serveis - -Commissions=Comissions -CommissionDetails=Detall de comissions - -IncludeUnpayedInvoices=Incloure les factures no cobrades -TotalCommission=Total comissions - -ProductMargin=Marge / productes -ServiceMargin=Marge / serveis - -CommissionRate=Taxes comissions - -ProductCommission=Comissió / productes -ServiceCommission=Comissió / serveis - -CommissionBase=Base de càlcul de comissions -CommissionBasedOnTurnover=Comissions calculades sobre el volum de venda -CommissionBasedOnMargins=Comissions calculades sobre els marges -CommissionBaseDetails=Estableix el mètode de càlcul de les comissions -CommissionBasedOnMarginsDetails=El càlcul basat en els marges requereix l'activació del mòdul marges - -TurnoverTotal = Volum de vendes sense IVA -ProductTurnover=Vendes sense IVA / productes -ServiceTurnover=Vendes sense IVA / serveis - -CommercialAgent=Agent comercial - -StartDate=Data d'inici -EndDate=Data de fi -Launch=Començar \ No newline at end of file diff --git a/htdocs/langs/ca_ES/companies.lang b/htdocs/langs/ca_ES/companies.lang index 1559fd7cf72..c474ac42f68 100644 --- a/htdocs/langs/ca_ES/companies.lang +++ b/htdocs/langs/ca_ES/companies.lang @@ -393,6 +393,8 @@ UniqueThirdParties=Total de tercers únics InActivity=Actiu ActivityCeased=Tancat ActivityStateFilter=Estat d'activitat +ProductsIntoElements=Llistat de productes en %s + # Monkey MonkeyNumRefModelDesc=Retorna un número sota el format %syymm-nnnn per als codis de clients i %syymm-nnnn per als codis dels proveïdors, on yy és l'any, mm el mes i nnnn un comptador seqüencial sense ruptura i sense tornar a 0. # Leopard diff --git a/htdocs/langs/ca_ES/compta.lang b/htdocs/langs/ca_ES/compta.lang index fb9d58e541d..eff4e5cd8ad 100644 --- a/htdocs/langs/ca_ES/compta.lang +++ b/htdocs/langs/ca_ES/compta.lang @@ -157,3 +157,9 @@ COMPTA_ACCOUNT_SUPPLIER=Codi comptable per defecte de proveïdors (si no està d AddRemind=Desglossar import disponible RemainToDivide=Resta a repartir : WarningDepositsNotIncluded=Les factures de bestreta encara no estan incloses en aquesta versió en el mòdul de comptabilitat. +DatePaymentTermCantBeLowerThanObjectDate=La data límit de pagament no pot ser inferior a la data de l'objecte +Pcg_version=Versió del pla +Pcg_type=Tipus de compte +Pcg_subtype=Subtipus de compte +InvoiceLinesToDispatch=Línies de factures a desglossar +InvoiceDispatched=Factures desglossades \ No newline at end of file diff --git a/htdocs/langs/ca_ES/cron.lang b/htdocs/langs/ca_ES/cron.lang new file mode 100644 index 00000000000..67833a6b65b --- /dev/null +++ b/htdocs/langs/ca_ES/cron.lang @@ -0,0 +1,92 @@ +# Dolibarr language file - ca_ES - cron +CHARSET=UTF-8 + +# +# Admin +# +CronSetup=Pàgina de configuració del mòdul - Gestió de tasques planificades +URLToLaunchCronJobs=URL per llançar les tasques automàtiques +OrToLaunchASpecificJob=O per llançar una tasca específica +KeyForCronAccess=Codi de seguretat per a la URL de llançament de tasques automàtiques +FileToLaunchCronJobs=Ordre per llançar les tasques automàtiques +CronExplainHowToRunUnix=En un entorn Unix pot parametritzar crontab per executar aquesta comanda cada minut +CronExplainHowToRunWin=En un entorn Microsoft (tm) Windows pot utilitzar el planificador de tasques per llançar aquesta comanda cada minut +# +# Menu +# +CronListActive=Llistat de tasques planificades actives +CronListInactive=Llistat de tasques planificades inactives + + +# +# Page list +# +CronDateLastRun=Últim llançament +CronLastOutput=Última sortida +CronLastResult=Últim codi tornat +CronCommand=Comando +CronList=Llistat de tasques planificades +CronDelete=Eliminar la tasca planificada +CronConfirmDelete=Està segur que voleu eliminar aquesta tasca planificada? +CronExecute=Executar aquesta tasca +CronConfirmExecute=Està segur que voleu executar ara aquesta tasca? +CronInfo=Els treballs permeten executar les tasques a intervals regulars +CronWaitingJobs=Els seus treballs en espera: +CronTask=Tasca +CronNone=Ningún +CronDtStart=Data inici +CronDtEnd=Data fi +CronDtNextLaunch=Propera execució +CronDtLastLaunch=Darrera execució +CronFrequency=Freqüència +CronClass=Clase +CronMethod=Mètod +CronModule=Mòdul +CronAction=Acció +CronStatus=Estat +CronStatusActive=Activa +CronStatusInactive=Inactiva +CronEach=Cada +CronNoJobs=Sense treballs actualment +CronPriority=Prioritat +CronLabel=Descripció +CronNbRun=Nº ejec. +CronDtLastResult=Data de l'últim resultat de l'última execució + +# +#Page card +# +CronAdd=Afegir una tasca +CronHourStart=Dia i hora d'inici de la tasca +CronEvery=Executar cada +CronObject=Instància/Objecte a crear +CronArgs=Argument +CronSaveSucess=Registre guardat +CronNote=Nota +CronFieldMandatory=El camp %s és obligatori +CronErrEndDateStartDt=La data de fi no pot ser anterior a la d'inici +CronStatusActiveBtn=Activar +CronStatusInactiveBtn=Desactivar +CronTaskInactive=Aquesta tasca es troba desactivada +CronId=Id +CronClassFile=Classe (arxiu) +CronModuleHelp=Nombre del directorio del módulo Dolibarr (funciona automáticamente con los módulos externos Dolibarr).
Por ejemplo para llamar al método fetch del objeto Product de Dolibarr /htdocs/product/class/product.class.php, el valor del módulo es product +CronClassFileHelp=El archivo archivo que contiene el objeto.
Por ejemplo para llamar el método fetch del objeto Product de Dolibarr /htdocs/product/class/product.class.php, el valor de la clase es product.class.php +CronObjectHelp=El nombre del objeto a crear.
Por ejemplo para llamar el método fetch del objeto Product de Dolibarr /htdocs/product/class/product.class.php, el valor del objeto es Product +CronMethodHelp=El método a lanzar.
Por ejemplo para llamar el método fetch del objeto Product de Dolibarr /htdocs/product/class/product.class.php, el valor del método es fecth +CronArgsHelp=Los argumentos del método.
Por ejemplo para usar el método fetch del objeto Product deDolibarr /htdocs/product/class/product.class.php, el valor del parámetro podría ser 0, RefProduit +CronCommandHelp=El comando del sistema a executar + +# +# Info +# +CronInfoPage=Informació + +# +# Common +# +CronType=Tipus d'acció a executar +CronType_method=Mètode d'una classe d'un mòdul Dolibarr +CronType_command=Comando Shell +CronMenu=Cron +CronCannotLoadClass=impossible carregar la classe %s de l'objecte %s \ No newline at end of file diff --git a/htdocs/langs/ca_ES/install.lang b/htdocs/langs/ca_ES/install.lang index b37e2c114c5..6cc42fd7674 100644 --- a/htdocs/langs/ca_ES/install.lang +++ b/htdocs/langs/ca_ES/install.lang @@ -1,7 +1,7 @@ # Dolibarr language file - ca_ES - install CHARSET=UTF-8 InstallEasy=Hem procurat que la instal·lació sigui el més simple possible, vostè només ha de seguir els passos un a un. -MiscellanousChecks=Comprovació dels Prerequisits +MiscellaneousChecks=Comprovació dels Prerequisits DolibarrWelcome=Benvingut a Dolibarr ConfFileExists=L'arxiu de configuració %s existeix. ConfFileDoesNotExists=El fitxer de configuració %s no existeix! diff --git a/htdocs/langs/ca_ES/main.lang b/htdocs/langs/ca_ES/main.lang index a3d51433d1a..35b4d437e4e 100644 --- a/htdocs/langs/ca_ES/main.lang +++ b/htdocs/langs/ca_ES/main.lang @@ -489,7 +489,7 @@ NbOfThirdParties=Número de tercers NbOfCustomers=Nombre de clients NbOfLines=Números de línies NbOfObjects=Nombre d'objectes -NbOfReferers=Nombre de referències +NbOfReferers=Consumició Referers=Referències TotalQuantity=Quantitat total DateFromTo=De %s a %s diff --git a/htdocs/langs/ca_ES/orders.lang b/htdocs/langs/ca_ES/orders.lang index 15fd9b6c9a1..a0a49bb243c 100644 --- a/htdocs/langs/ca_ES/orders.lang +++ b/htdocs/langs/ca_ES/orders.lang @@ -28,11 +28,12 @@ SuppliersOrdersToProcess=Comandes a proveïdors a processar StatusOrderCanceledShort=Anul·lada StatusOrderDraftShort=Esborrany StatusOrderValidatedShort=Validada -StatusOrderOnProcessShort=Per rebre +StatusOrderOnProcessShort=En procés StatusOrderSentShort=Expedició en curs StatusOrderSent=Enviament en curs StatusOrderProcessedShort=Processada -StatusOrderToBillShort=A facturar +StatusOrderToBillShort=Emès +StatusOrderToBillShort2=A facturar StatusOrderApprovedShort=Aprovada StatusOrderRefusedShort=Rebutjada StatusOrderToProcessShort=A processar @@ -43,7 +44,8 @@ StatusOrderDraft=Esborrany (a validar) StatusOrderValidated=Validada StatusOrderOnProcess=Pendent de rebre StatusOrderProcessed=Processada -StatusOrderToBill=A facturar +StatusOrderToBill=Emès +StatusOrderToBill2=A facturar StatusOrderApproved=Aprovada StatusOrderRefused=Rebutjada StatusOrderReceivedPartially=Rebuda parcialment @@ -82,8 +84,8 @@ NumberOfOrdersByMonth=Nombre de comandes per mes AmountOfOrdersByMonthHT=Import total de comandes per mes (Sense IVA) ListOfOrders=Llistat de comandes CloseOrder=Tancar comanda -ConfirmCloseOrder=Esteu segur de voler tancar aquesta comanda? Un cop tancat, haurà de facturar-se -ConfirmCloseOrderIfSending=Esteu segur de voler tancar aquesta comanda? No ha de tancar una comanda que encara no té els seus productes enviats +ConfirmCloseOrder=Esteu segur que voleu classificar aquesta comanda com a enviat? Un cop enviat una comanda, només podrà facturar-se +ConfirmCloseOrderIfSending=Esteu segur que voleu tancar aquesta comanda? Només hauria de tancar una comanda quan aquesta hagi estat enviada completament. ConfirmDeleteOrder=Esteu segur de voler eliminar aquest comanda? ConfirmValidateOrder=Esteu segur de voler validar aquesta comanda sota la referència %s ? ConfirmUnvalidateOrder=Esteu segur de voler restaurar la comanda %s a l'estat esborrany? diff --git a/htdocs/langs/ca_ES/other.lang b/htdocs/langs/ca_ES/other.lang index 2be64f5bf8d..ae3011ed7f5 100644 --- a/htdocs/langs/ca_ES/other.lang +++ b/htdocs/langs/ca_ES/other.lang @@ -44,18 +44,18 @@ TotalSizeOfAttachedFiles=Mida total dels arxius/documents adjunts MaxSize=Tamany màxim AttachANewFile=Adjuntar nou arxiu/document LinkedObject=Objecte adjuntat -Miscellanous=Diversos +Miscellaneous=Diversos NbOfActiveNotifications=Número notificacions PredefinedMailTest=Això és un correu de prova.\nLes 2 línies estan separades per un retorn de carro a la línia. PredefinedMailTestHtml=Això és un e-mail de prova (la paraula prova ha d'estar en negreta).
Les 2 línies estan separades per un retorn de carro en la línia -PredefinedMailContentSendInvoice=Us adjuntem la factura __FACREF__\n\n__PERSONALIZED__Cordialment\n\n__SIGNATURE__ -PredefinedMailContentSendInvoiceReminder=Posem en el seu coneixement que la factura __FACREF__ sembla no estar pagada. Se l'adjuntem doncs, perquè pugui revisar-la.\n\n__PERSONALIZED__Cordialment\n\n__SIGNATURE__ -PredefinedMailContentSendProposal=Us adjuntem el pressupost __PROPREF__ \n\n__PERSONALIZED__Cordialment\n\n__SIGNATURE__ -PredefinedMailContentSendOrder=Us adjuntem la comanda __ORDERREF__ \n\n__PERSONALIZED__Cordialment\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierOrder=Us adjuntem la nostra comanda __ORDERREF__ \n\n__PERSONALIZED__Cordialment\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierInvoice=Us adjuntem la factura __FACREF__\n\n__PERSONALIZED__Cordialment\n\n__SIGNATURE__ -PredefinedMailContentSendShipping=Us adjuntem l'expedició __SHIPPINGREF__\n\n__PERSONALIZED__Cordialment\n\n__SIGNATURE__ -PredefinedMailContentSendFichInter=Us adjuntem l'intervenció __FICHINTERREF__\n\n__PERSONALIZED__Cordialment\n\n__SIGNATURE__ +PredefinedMailContentSendInvoice=__CONTACTCIVNAME__ \n\n Us adjuntem la factura __FACREF__\n\n__PERSONALIZED__Cordialment\n\n__SIGNATURE__ +PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__ \n\n Posem en el seu coneixement que la factura __FACREF__ sembla no estar pagada. Se l'adjuntem doncs, perquè pugui revisar-la.\n\n__PERSONALIZED__Cordialment\n\n__SIGNATURE__ +PredefinedMailContentSendProposal=__CONTACTCIVNAME__ \n\n Us adjuntem el pressupost __PROPREF__ \n\n__PERSONALIZED__Cordialment\n\n__SIGNATURE__ +PredefinedMailContentSendOrder=__CONTACTCIVNAME__ \n\n Us adjuntem la comanda __ORDERREF__ \n\n__PERSONALIZED__Cordialment\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__ \n\n Us adjuntem la nostra comanda __ORDERREF__ \n\n__PERSONALIZED__Cordialment\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__ \n\n Us adjuntem la factura __FACREF__\n\n__PERSONALIZED__Cordialment\n\n__SIGNATURE__ +PredefinedMailContentSendShipping=__CONTACTCIVNAME__ \n\n Us adjuntem l'expedició __SHIPPINGREF__\n\n__PERSONALIZED__Cordialment\n\n__SIGNATURE__ +PredefinedMailContentSendFichInter=__CONTACTCIVNAME__ \n\n Us adjuntem l'intervenció __FICHINTERREF__\n\n__PERSONALIZED__Cordialment\n\n__SIGNATURE__ DemoDesc=Dolibarr és un programari per a la gestió de negocis (professionals o associacions), compost de mòduls funcionals independents i opcionals. Una demostració que inclogui tots aquests mòduls no té sentit perquè no utilitzarà tots els mòduls. A més, té disponibles diversos tipus de perfils de demostració. ChooseYourDemoProfil=Seleccioneu el perfil de demostració que millor correspongui a la seva activitat ... DemoFundation=Gestió de membres d'una associació diff --git a/htdocs/langs/ca_ES/sendings.lang b/htdocs/langs/ca_ES/sendings.lang index 38462265059..fc53bde5f28 100644 --- a/htdocs/langs/ca_ES/sendings.lang +++ b/htdocs/langs/ca_ES/sendings.lang @@ -59,6 +59,7 @@ LinkToTrackYourPackage=Enllaç per al seguiment del seu paquet ShipmentCreationIsDoneFromOrder=De moment, la creació d'una nova expedició es realitza des de la fitxa de comanda. RelatedShippings=Expedició(ns) associades ShipmentLine=Línia d'expedició +CarrierList=Llistat de transportistes # Sending methods SendingMethodCATCH=Recollit pel client diff --git a/htdocs/langs/da_DK/admin.lang b/htdocs/langs/da_DK/admin.lang index abfb3251cd5..c48977e64aa 100644 --- a/htdocs/langs/da_DK/admin.lang +++ b/htdocs/langs/da_DK/admin.lang @@ -199,7 +199,7 @@ ModuleFamilyProducts=Produkter Management ModuleFamilyHr=Human Resource Management ModuleFamilyProjects=Projekter / samarbejde ModuleFamilyOther=Anden -ModuleFamilyTechnic=Mutli-moduler værktøjer +ModuleFamilyTechnic=Multi-moduler værktøjer ModuleFamilyExperimental=Eksperimentel moduler ModuleFamilyFinancial=Finansielle Modules (Regnskabsmæssig / Treasury) ModuleFamilyECM=ECM @@ -305,10 +305,6 @@ Module1400Name=Regnskabsmæssig ekspert Module1400Desc=Regnskabsmæssig forvaltning for eksperter (dobbelt parterne) Module1780Name=Kategorier Module1780Desc=Kategorier 'forvaltning (produkter, leverandører og kunder) -Module2200Name=Udlånsrettighederne -Module2200Desc=Udlånsrettighederne forvaltning -Module2300Name=Menuer -Module2300Desc=Menuer 'ledelse Module2400Name=Agenda Module2400Desc=Handlinger / opgaver og dagsorden forvaltning Module2500Name=Elektronisk Content Management @@ -603,7 +599,7 @@ GeneratedPasswordDesc=Definer her som regel, du vil bruge til at generere nye ad DictionnaryDesc=Definer her alle reference oplysningerne. Du kan færdiggøre foruddefineret værdi med dine. ConstDesc=Denne side giver dig mulighed for at redigere alle andre parametre, som ikke findes i de foregående sider. De er forbeholdt parametre for avancerede udviklere eller for troubleshouting. OnceSetupFinishedCreateUsers=Advarsel, du er en Dolibarr administrator bruger. Administrator brugere er vant til opsætningen Dolibarr. For en almindelig brug af Dolibarr, anbefales det at bruge en ikke administrator bruger oprettet fra Brugere & Grupper menuen. -MiscellanousDesc=Definer her alle andre parametre med relation til sikkerhed. +MiscellaneousDesc=Definer her alle andre parametre med relation til sikkerhed. LimitsSetup=Grænseværdier / Precision setup LimitsDesc=Du kan definere grænser, præciseringer og optimeringer bruges af Dolibarr her MAIN_MAX_DECIMALS_UNIT=Max decimaler for enhedspriser @@ -1275,7 +1271,7 @@ SendmailOptionNotComplete=Advarsel, på nogle Linux-systemer, for at sende e-mai SendmailOptionMayHurtBuggedMTA=Feature til at sende mails ved hjælp af metoden "PHP mail direkte" vil generere en mail, der måske ikke korrekt fortolket af nogle modtager mail-servere. Resultatet er, at nogle mails ikke kan læses af personer, der hostes af thoose aflyttet platforme. Det er tilfældet for nogle Internet-udbydere (Ex: Orange i Frankrig). Dette er ikke et problem i Dolibarr eller ind i PHP, men på at modtage e-mail-server. Du kan dog tilføje muligheden MAIN_FIX_FOR_BUGGED_MTA til 1 i setup - andet at ændre Dolibarr at undgå dette. Dog kan du opleve problemer med andre servere, nøje at overholde SMTP standard. Den anden løsning (monteringstid) er at bruge metoden "SMTP socket bibliotek", der ikke har nogen ulemper. CompanyIdProfChecker=Professionel Id unikke MustBeUnique=Skal være unik? -Miscellanous=Diverse +Miscellaneous=Diverse ContractsSetup=Kontrakter modul opsætning ContractsNumberingModules=Kontrakter nummerering moduler AdherentLoginRequired=Administrere et login for hvert medlem diff --git a/htdocs/langs/da_DK/bills.lang b/htdocs/langs/da_DK/bills.lang index f915134e890..f357cb6bec2 100644 --- a/htdocs/langs/da_DK/bills.lang +++ b/htdocs/langs/da_DK/bills.lang @@ -433,6 +433,6 @@ EditGlobalDiscounts=Rediger absolutte rabatter AddCreditNote=Opret kreditnota InvoiceNotChecked=Ingen valgt faktura ShowUnpaidAll=Vis alle ubetalte fakturaer -ClosePaidInvoicesAutomatically=Klassificere "betales" hele standarden eller udskiftning af fakturaer entierely betales. +ClosePaidInvoicesAutomatically=Klassificere "betales" hele standarden eller udskiftning af fakturaer entirely betales. AllCompletelyPayedInvoiceWillBeClosed=Alle faktura uden mangler at betale, vil automatisk blive lukket for status "betales". // STOP - Lines generated via autotranslator.php tool (2012-02-29 16:00:06). diff --git a/htdocs/langs/da_DK/install.lang b/htdocs/langs/da_DK/install.lang index 8bd455e6cee..2c2c2e566bb 100644 --- a/htdocs/langs/da_DK/install.lang +++ b/htdocs/langs/da_DK/install.lang @@ -12,7 +12,7 @@ // Reference language: en_US CHARSET=UTF-8 InstallEasy=Vi forsøgte at gøre Dolibarr setup så let som muligt. Følg anvisningerne trin for trin. -MiscellanousChecks=Forudsætninger check +MiscellaneousChecks=Forudsætninger check DolibarrWelcome=Velkommen til Dolibarr ConfFileExists=Konfigurationsfil %s eksisterer. ConfFileDoesNotExists=Konfigurationsfil %s eksisterer ikke! diff --git a/htdocs/langs/da_DK/members.lang b/htdocs/langs/da_DK/members.lang index c2975ad715c..9492f48514a 100644 --- a/htdocs/langs/da_DK/members.lang +++ b/htdocs/langs/da_DK/members.lang @@ -161,7 +161,7 @@ MemberId=Medlem id PaymentSubscription=Nye bidrag betaling NoThirdPartyAssociatedToMember=Nr. tredjepart forbundet til dette medlem ThirdPartyDolibarr=Dolibarr tredjepart -MembersAndSubscriptions=Medlemmer og Suscriptions +MembersAndSubscriptions=Medlemmer og Subscriptions // STOP - Lines generated via autotranslator.php tool (2009-08-13 20:39:59). diff --git a/htdocs/langs/da_DK/other.lang b/htdocs/langs/da_DK/other.lang index 63924c7af90..32826b83cea 100644 --- a/htdocs/langs/da_DK/other.lang +++ b/htdocs/langs/da_DK/other.lang @@ -25,7 +25,7 @@ TotalSizeOfAttachedFiles=Samlede størrelse på vedhæftede filer / dokumenter MaxSize=Maksimumstørrelse AttachANewFile=Vedhæfte en ny fil / dokument LinkedObject=Forbundet objekt -Miscellanous=Miscellaneous +Miscellaneous=Miscellaneous NbOfActiveNotifications=Antal anmeldelser ChooseYourDemoProfil=Vælg den demo profil, der passer til din virksomhed ... DemoCompanyShopWithCashDesk=Administrer en butik med et kontant desk @@ -175,7 +175,7 @@ ExternalSites=Eksterne sites // START - Lines generated via autotranslator.php tool (2010-09-04 01:33:40). // Reference language: en_US -> da_DA -PredefinedMailContentSendSupplierOrder=Du vil her finde vores ordre __ORDERREF__ \n\n__PERSONALIZED__Sincerely \n\n +PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__ \n\n Du vil her finde vores ordre __ORDERREF__ \n\n__PERSONALIZED__Sincerely \n\n WeightUnitpound=pund VolumeUnitounce=unse VolumeUnitlitre=liter @@ -212,9 +212,9 @@ Notify_MEMBER_VALIDATE=Medlem valideret Notify_MEMBER_SUBSCRIPTION=Medlem abonnerer Notify_MEMBER_RESILIATE=Medlem resiliated Notify_MEMBER_DELETE=Medlem slettet -PredefinedMailContentSendSupplierInvoice=Du vil her finde fakturaen __FACREF__ \n\n__PERSONALIZED__Sincerely \n\n -PredefinedMailContentSendShipping=Du vil her finde shipping __SHIPPINGREF__ \n\n__PERSONALIZED__Sincerely \n\n -PredefinedMailContentSendFichInter=Du vil her finde interventionen __FICHINTERREF__ \n\n__PERSONALIZED__Sincerely \n\n +PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__ \n\n Du vil her finde fakturaen __FACREF__ \n\n__PERSONALIZED__Sincerely \n\n +PredefinedMailContentSendShipping=__CONTACTCIVNAME__ \n\n Du vil her finde shipping __SHIPPINGREF__ \n\n__PERSONALIZED__Sincerely \n\n +PredefinedMailContentSendFichInter=__CONTACTCIVNAME__ \n\n Du vil her finde interventionen __FICHINTERREF__ \n\n__PERSONALIZED__Sincerely \n\n Top=Top Bottom=Bund Left=Venstre @@ -234,9 +234,9 @@ Export=Eksport // START - Lines generated via autotranslator.php tool (2012-02-29 15:59:19). // Reference language: en_US -> da_DK -PredefinedMailContentSendInvoice=Du vil her finde fakturaen __FACREF__ \n\n__PERSONALIZED__ venlig hilsen \n\n__SIGNATURE__ -PredefinedMailContentSendInvoiceReminder=Vi vil gerne advare dig om, at fakturaen __FACREF__ synes ikke betales. Så dette er den faktura i vedhæftningen igen, som en påmindelse. \n\n__PERSONALIZED__ venlig hilsen \n\n__SIGNATURE__ -PredefinedMailContentSendProposal=Du vil her finde den kommercielle propoal __PROPREF__ \n\n__PERSONALIZED__ venlig hilsen \n\n__SIGNATURE__ -PredefinedMailContentSendOrder=Du vil her finde den rækkefølge __ORDERREF__ \n\n__PERSONALIZED__ venlig hilsen \n\n__SIGNATURE__ -ShipmentValidatedInDolibarr=Forsendelse %s valideret i Dolibarr +PredefinedMailContentSendInvoice=__CONTACTCIVNAME__ \n\n Du vil her finde fakturaen __FACREF__ \n\n__PERSONALIZED__ venlig hilsen \n\n__SIGNATURE__ +PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__ \n\n Vi vil gerne advare dig om, at fakturaen __FACREF__ synes ikke betales. Så dette er den faktura i vedhæftningen igen, som en påmindelse. \n\n__PERSONALIZED__ venlig hilsen \n\n__SIGNATURE__ +PredefinedMailContentSendProposal=__CONTACTCIVNAME__ \n\n Du vil her finde den kommercielle propoal __PROPREF__ \n\n__PERSONALIZED__ venlig hilsen \n\n__SIGNATURE__ +PredefinedMailContentSendOrder=__CONTACTCIVNAME__ \n\n Du vil her finde den rækkefølge __ORDERREF__ \n\n__PERSONALIZED__ venlig hilsen \n\n__SIGNATURE__ +ShipmentValidatedInDolibarr=__CONTACTCIVNAME__ \n\n Forsendelse %s valideret i Dolibarr // STOP - Lines generated via autotranslator.php tool (2012-02-29 15:59:21). diff --git a/htdocs/langs/de_AT/admin.lang b/htdocs/langs/de_AT/admin.lang index fb5b1ee498f..fa932d55014 100644 --- a/htdocs/langs/de_AT/admin.lang +++ b/htdocs/langs/de_AT/admin.lang @@ -300,10 +300,6 @@ Module1400Name=Buchhaltung Module1400Desc=Buchhaltung für Experten (doppelte Buchhaltung) Module1780Name=Kategorien Module1780Desc=Kategorienverwaltung (Produkte, Lieferanten und Kunden) -Module2200Name=Verleihrechte -Module2200Desc=Verleihrechteverwaltung -Module2300Name=Menüs -Module2300Desc=Menüverwaltung Module2400Name=Agenda Module2400Desc=Maßnahmen/Aufgaben und Agendaverwaltung Module2500Name=Inhaltsverwaltung(ECM) @@ -598,7 +594,7 @@ GeneratedPasswordDesc=Definieren Sie hier das Schema nach dem automatisch generi DictionnaryDesc=Definieren Sie hier alle Referenzwerte. Sie können vordefinierte Werte mit ihren eigenen ergänzen. ConstDesc=Auf dieser Seite können Sie alle, auf bisherigen Seiten nicht aufgeführte, Parameter einstellen. Dieser Bereich ist primär für fortgeschrittene Entwickler und zur Fehlersuche gedacht. OnceSetupFinishedCreateUsers=Achtung: Sie sind derzeit als Systemadministrator angemeldet. Administratorenkonten dienen primär zur Einrichtung des Systems, für die reguläre Verwendung sollten Sie ein herkömmliches Benutzerkonto unter 'Benutzer&Gruppen' anlegen und verwenden. -MiscellanousDesc=Definieren Sie hier alle sonstigen Sicherheitseinstellungen +MiscellaneousDesc=Definieren Sie hier alle sonstigen Sicherheitseinstellungen LimitsSetup=Grenzwerte-/Genauigkeitseinstellungen LimitsDesc=Hier können Sie Grenzwerte, Genauigkeitseinstellungen und das Rundungsverhalten einstellen. MAIN_MAX_DECIMALS_UNIT=Dezimalstellen max. für Stückpreise diff --git a/htdocs/langs/de_AT/install.lang b/htdocs/langs/de_AT/install.lang index 765d366a219..d018b25e09d 100644 --- a/htdocs/langs/de_AT/install.lang +++ b/htdocs/langs/de_AT/install.lang @@ -7,7 +7,7 @@ CHARSET=UTF-8 InstallEasy=Wir haben uns bemüht, die Installation von dolibarr so einfach wie möglich zu gestalten. Folgen Sie einfach Schritt für Schritt den Anweisungen auf dem Bildschirm. -MiscellanousChecks=Systemvoraussetzungen prüfen +MiscellaneousChecks=Systemvoraussetzungen prüfen DolibarrWelcome=Willkommen bei dolibarr ConfFileExists=Die Konfigurationsdatei %s ist vorhanden. ConfFileDoesNotExists=Die Konfigurationsdatei %s existiert nicht! diff --git a/htdocs/langs/de_AT/other.lang b/htdocs/langs/de_AT/other.lang index 3629e008956..b2771c7aede 100644 --- a/htdocs/langs/de_AT/other.lang +++ b/htdocs/langs/de_AT/other.lang @@ -20,12 +20,12 @@ TotalSizeOfAttachedFiles=Gesamtgröße der angehängten Dateien/Dokumente MaxSize=Maximalgröße AttachANewFile=Neue Datei/Dokument anhängen LinkedObject=Verknüpftes Objekt -Miscellanous=Verschiedenes +Miscellaneous=Verschiedenes NbOfActiveNotifications=Anzahl aktiver Benachrichtigungen -PredefinedMailContentSendInvoice=Bitte entnehmen Sie dem Anhang die Rechnung __FACREF__\n\n__PERSONALIZED__Mit freundlichen Grüßen\n\n__SIGNATURE__ -PredefinedMailContentSendInvoiceReminder=Bedauerlicherweise scheint die Rechnung __FACREF__ bislang unbeglichen. Als Erinnerung übersenden wir Ihnen diese nochmals im Anhang\n\n__PERSONALIZED__Mit freundlichen Grüßen\n\n__SIGNATURE__ -PredefinedMailContentSendProposal=Bitte entnehmen Sie dem Anhang unser Angebot __PROPREF__ \n\n__PERSONALIZED__Mit freundlichen Grüßen\n\n__SIGNATURE__ -PredefinedMailContentSendOrder=Bitte entnehmen Sie dem Anhang die Bestellung __ORDERREF__ \n\n__PERSONALIZED__Mit freundlichen Grüßen\n\n__SIGNATURE__ +PredefinedMailContentSendInvoice=__CONTACTCIVNAME__ \n\n Bitte entnehmen Sie dem Anhang die Rechnung __FACREF__\n\n__PERSONALIZED__Mit freundlichen Grüßen\n\n__SIGNATURE__ +PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__ \n\n Bedauerlicherweise scheint die Rechnung __FACREF__ bislang unbeglichen. Als Erinnerung übersenden wir Ihnen diese nochmals im Anhang\n\n__PERSONALIZED__Mit freundlichen Grüßen\n\n__SIGNATURE__ +PredefinedMailContentSendProposal=__CONTACTCIVNAME__ \n\n Bitte entnehmen Sie dem Anhang unser Angebot __PROPREF__ \n\n__PERSONALIZED__Mit freundlichen Grüßen\n\n__SIGNATURE__ +PredefinedMailContentSendOrder=__CONTACTCIVNAME__ \n\n Bitte entnehmen Sie dem Anhang die Bestellung __ORDERREF__ \n\n__PERSONALIZED__Mit freundlichen Grüßen\n\n__SIGNATURE__ ChooseYourDemoProfil=Bitte wählen Sie das Demo-Profil das Ihrem Berufsfeld am ehesten entspricht DemoFundation=Verwalten Sie die Mitglieder einer Stiftung DemoFundation2=Verwalten Sie die Mitglieder und Bankkonten einer Stiftung @@ -156,7 +156,7 @@ YouReceiveMailBecauseOfNotification=Sie erhalten diese Nachricht, weil Ihre E-Ma YouReceiveMailBecauseOfNotification2=Sie erhalten dieses Mail aufgrund folgender Benachrichtigung: ExternalSites=Externe Seiten -PredefinedMailContentSendSupplierOrder=Hier finden Sie unser Bestellformular __ORDERREF__ \n\nMit freundlichen Grüßen\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__ \n\n Hier finden Sie unser Bestellformular __ORDERREF__ \n\nMit freundlichen Grüßen\n\n__SIGNATURE__ WeightUnitpound=Pfund VolumeUnitounce=Unze VolumeUnitlitre=Liter @@ -191,9 +191,9 @@ Notify_MEMBER_VALIDATE=Mitglied validiert Notify_MEMBER_SUBSCRIPTION=Mitglied gezeichneten Notify_MEMBER_RESILIATE=Mitglied resiliated Notify_MEMBER_DELETE=Mitglied gelöscht -PredefinedMailContentSendSupplierInvoice=Hier finden Sie die Rechnung __FACREF__ \n\nSincerely \n\n__SIGNATURE__ -PredefinedMailContentSendShipping=Hier finden Sie die Versandkosten __SHIPPINGREF__ \n\nSincerely \n\n__SIGNATURE__ -PredefinedMailContentSendFichInter=Hier finden Sie die Intervention __FICHINTERREF__ \n\nSincerely \n\n__SIGNATURE__ +PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__ \n\n Hier finden Sie die Rechnung __FACREF__ \n\nSincerely \n\n__SIGNATURE__ +PredefinedMailContentSendShipping=__CONTACTCIVNAME__ \n\n Hier finden Sie die Versandkosten __SHIPPINGREF__ \n\nSincerely \n\n__SIGNATURE__ +PredefinedMailContentSendFichInter=__CONTACTCIVNAME__ \n\n Hier finden Sie die Intervention __FICHINTERREF__ \n\nSincerely \n\n__SIGNATURE__ Top=Top Bottom=Boden Left=Links diff --git a/htdocs/langs/de_DE/admin.lang b/htdocs/langs/de_DE/admin.lang index 6f27f1b4c5f..72f7f060e06 100644 --- a/htdocs/langs/de_DE/admin.lang +++ b/htdocs/langs/de_DE/admin.lang @@ -421,10 +421,6 @@ Module1780Name=Kategorien Module1780Desc=Kategorienverwaltung (Produkte, Lieferanten und Kunden) Module2000Name=FCKeditor Module2000Desc=WYSIWYG-Editor -Module2200Name=Verleihrechte -Module2200Desc=Verleihrechteverwaltung -Module2300Name=Menüs -Module2300Desc=Menüverwaltung Module2400Name=Agenda Module2400Desc=Maßnahmen/Aufgaben und Agendaverwaltung Module2500Name=Inhaltsverwaltung(ECM) @@ -819,7 +815,7 @@ GeneratedPasswordDesc=Definieren Sie hier das Schema nach dem automatisch generi DictionnaryDesc=Definieren Sie hier alle Referenzwerte. Sie können vordefinierte Werte mit ihren eigenen ergänzen. ConstDesc=Auf dieser Seite können Sie alle, auf bisherigen Seiten nicht aufgeführte, Parameter einstellen. Dieser Bereich ist primär für fortgeschrittene Entwickler und zur Fehlersuche gedacht. OnceSetupFinishedCreateUsers=Achtung: Sie sind derzeit als Systemadministrator angemeldet. Administratorenkonten dienen primär zur Einrichtung des Systems, für die reguläre Verwendung sollten Sie ein herkömmliches Benutzerkonto unter 'Benutzer&Gruppen' anlegen und verwenden. -MiscellanousDesc=Definieren Sie hier alle sonstigen Sicherheitseinstellungen +MiscellaneousDesc=Definieren Sie hier alle sonstigen Sicherheitseinstellungen LimitsSetup=Grenzwerte-/Genauigkeitseinstellungen LimitsDesc=Hier können Sie Grenzwerte, Genauigkeitseinstellungen und das Rundungsverhalten einstellen. MAIN_MAX_DECIMALS_UNIT=Dezimalstellen max. für Stückpreise @@ -899,7 +895,7 @@ DocumentModelOdt=Erstellen von Dokumentvorlagen im OpenDocuments-Format (.odt-Da WatermarkOnDraft=Wasserzeichen auf Entwurf CompanyIdProfChecker=Berufs-Identifikation einzigartige MustBeUnique=Eindeutig sein müssen? -Miscellanous=Verschiedenes +Miscellaneous=Verschiedenes ##### Webcal setup ##### WebCalSetup=Webkalender-Verbindungseinstellungen WebCalSyncro=Termine an Webkalender übertragen diff --git a/htdocs/langs/de_DE/install.lang b/htdocs/langs/de_DE/install.lang index f7e0ae7654d..c185d289129 100644 --- a/htdocs/langs/de_DE/install.lang +++ b/htdocs/langs/de_DE/install.lang @@ -8,7 +8,7 @@ CHARSET=UTF-8 InstallEasy=Wir haben uns bemüht, die Installation von dolibarr so einfach wie möglich zu gestalten. Folgen Sie einfach Schritt für Schritt den Anweisungen auf dem Bildschirm. -MiscellanousChecks=Systemvoraussetzungen prüfen +MiscellaneousChecks=Systemvoraussetzungen prüfen DolibarrWelcome=Willkommen bei dolibarr ConfFileExists=Die Konfigurationsdatei %s ist vorhanden. ConfFileDoesNotExists=Die Konfigurationsdatei %s existiert nicht! diff --git a/htdocs/langs/de_DE/other.lang b/htdocs/langs/de_DE/other.lang index 01ddd534a0c..92dba590db1 100644 --- a/htdocs/langs/de_DE/other.lang +++ b/htdocs/langs/de_DE/other.lang @@ -51,18 +51,18 @@ TotalSizeOfAttachedFiles=Gesamtgröße der angehängten Dateien/Dokumente MaxSize=Maximalgröße AttachANewFile=Neue Datei/Dokument anhängen LinkedObject=Verknüpftes Objekt -Miscellanous=Verschiedenes +Miscellaneous=Verschiedenes NbOfActiveNotifications=Anzahl aktiver Benachrichtigungen PredefinedMailTest=Dies ist ein Test-Mail.\n Die beiden Zeilen sind durch eine Zeilenschaltung getrennt. PredefinedMailTestHtml=Dies ist ein (HTML)-Test Mail (das Wort Test muss in Fettschrift erscheinen).
Die beiden Zeilen sollteb durch eine Zeilenschaltung getrennt sein. -PredefinedMailContentSendInvoice=Bitte entnehmen Sie dem Anhang die Rechnung __FACREF__\n\n__PERSONALIZED__Mit freundlichen Grüßen\n\n__SIGNATURE__ -PredefinedMailContentSendInvoiceReminder=Bedauerlicherweise scheint die Rechnung __FACREF__ bislang unbeglichen. Als Erinnerung übersenden wir Ihnen diese nochmals im Anhang\n\n__PERSONALIZED__Mit freundlichen Grüßen\n\n__SIGNATURE__ -PredefinedMailContentSendProposal=Bitte entnehmen Sie dem Anhang unser Angebot __PROPREF__ \n\n__PERSONALIZED__Mit freundlichen Grüßen\n\n__SIGNATURE__ -PredefinedMailContentSendOrder=Bitte entnehmen Sie dem Anhang die Bestellung __ORDERREF__ \n\n__PERSONALIZED__Mit freundlichen Grüßen\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierOrder=Hier finden Sie unser Bestellformular __ORDERREF__ \n\n__PERSONALIZED__Mit freundlichen Grüßen\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierInvoice=Anbei erhalten Sie die Rechnung __ FACREF__ \n\n__PERSONALIZED__Mit freundlichen Grüßen\n\n__SIGNATURE__ -PredefinedMailContentSendShipping=Als Anlage erhalten Sie unsere Versandkosten __ SHIPPINGREF__ \n\n__PERSONALIZED__Mit freundlichen Grüßen\n\n__SIGNATURE__ -PredefinedMailContentSendFichInter=Anbei finden Sie die Intervention __ FICHINTERREF__ \n\n__PERSONALIZED__Mit freundlichen Grüßen\n_n__SIGNATURE__ +PredefinedMailContentSendInvoice=__CONTACTCIVNAME__ \n\n Bitte entnehmen Sie dem Anhang die Rechnung __FACREF__\n\n__PERSONALIZED__Mit freundlichen Grüßen\n\n__SIGNATURE__ +PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__ \n\n Bedauerlicherweise scheint die Rechnung __FACREF__ bislang unbeglichen. Als Erinnerung übersenden wir Ihnen diese nochmals im Anhang\n\n__PERSONALIZED__Mit freundlichen Grüßen\n\n__SIGNATURE__ +PredefinedMailContentSendProposal=__CONTACTCIVNAME__ \n\n Bitte entnehmen Sie dem Anhang unser Angebot __PROPREF__ \n\n__PERSONALIZED__Mit freundlichen Grüßen\n\n__SIGNATURE__ +PredefinedMailContentSendOrder=__CONTACTCIVNAME__ \n\n Bitte entnehmen Sie dem Anhang die Bestellung __ORDERREF__ \n\n__PERSONALIZED__Mit freundlichen Grüßen\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__ \n\n Hier finden Sie unser Bestellformular __ORDERREF__ \n\n__PERSONALIZED__Mit freundlichen Grüßen\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__ \n\n Anbei erhalten Sie die Rechnung __ FACREF__ \n\n__PERSONALIZED__Mit freundlichen Grüßen\n\n__SIGNATURE__ +PredefinedMailContentSendShipping=__CONTACTCIVNAME__ \n\n Als Anlage erhalten Sie unsere Versandkosten __ SHIPPINGREF__ \n\n__PERSONALIZED__Mit freundlichen Grüßen\n\n__SIGNATURE__ +PredefinedMailContentSendFichInter=__CONTACTCIVNAME__ \n\n Anbei finden Sie die Intervention __ FICHINTERREF__ \n\n__PERSONALIZED__Mit freundlichen Grüßen\n_n__SIGNATURE__ DemoDesc=Bei Dolibarr handelt es sich um ein kompaktes ERP/CRM-System, bestehend aus einzelnen Modulen. Da eine Demo aller Module kaum eine praxisnahe Anwendung darstellt, stehen Ihnen unterschiedliche Demo-Profile zur Verfügung. ChooseYourDemoProfil=Bitte wählen Sie das Demo-Profil das Ihrem Berufsfeld am ehesten entspricht DemoFundation=Verwalten Sie die Mitglieder einer Stiftung diff --git a/htdocs/langs/el_GR/admin.lang b/htdocs/langs/el_GR/admin.lang index 1250cfadf24..444eb49855c 100644 --- a/htdocs/langs/el_GR/admin.lang +++ b/htdocs/langs/el_GR/admin.lang @@ -181,7 +181,6 @@ Module330Name=Σελιδοδείκτες Module400Name=Έργα Module700Name=Δωρεές Module1780Name=Κατηγορίες -Module2300Name=Μενού Module2400Name=Ατζέντα Module50100Name=Σημείο Πωλήσεων Permission19=Διαγραφή τιμολογίων @@ -379,7 +378,7 @@ SendmailOptionNotComplete=Προσοχή, σε μερικά συστήματα L SendmailOptionMayHurtBuggedMTA=Χαρακτηριστικό για να στείλετε μηνύματα χρησιμοποιώντας τη μέθοδο "PHP mail απευθείας" θα δημιουργήσει ένα μήνυμα ηλεκτρονικού ταχυδρομείου που μπορεί να μην αναλυθούν σωστά με ορισμένους εξυπηρετητές λήψης της αλληλογραφίας. Αποτέλεσμα είναι ότι ορισμένα μηνύματα δεν μπορούν να διαβαστούν από ανθρώπους που φιλοξενούνται από τις πλατφόρμες thoose bugged. Είναι υπόθεση για ορισμένους παρόχους Internet (Ex: Orange στη Γαλλία). Αυτό δεν είναι ένα πρόβλημα σε Dolibarr ούτε σε PHP, αλλά πάνω διακομιστής παραλαβής αλληλογραφίας. Μπορείτε να προσθέσετε ωστόσο MAIN_FIX_FOR_BUGGED_MTA δυνατότητα εγκατάστασης σε 1 - να τροποποιήσει άλλες Dolibarr να το αποφύγουμε αυτό. Ωστόσο, ενδέχεται να αντιμετωπίσετε πρόβλημα με άλλους διακομιστές που σέβονται αυστηρά το πρότυπο SMTP. Η άλλη λύση (κατά προτίμηση) είναι να χρησιμοποιήσουμε τη μέθοδο "SMTP υποδοχή βιβλιοθήκη» που δεν έχει μειονεκτήματα. CompanyIdProfChecker=Επαγγελματική ταυτότητα μοναδική MustBeUnique=Πρέπει να είναι μοναδικό; -Miscellanous=Διάφορα +Miscellaneous=Διάφορα ServiceSetup=Υπηρεσίες εγκατάστασης μονάδας ProductServiceSetup=Προϊόντα και Υπηρεσίες εγκατάστασης μονάδων ViewProductDescInThirdpartyLanguageAbility=Οπτικοποίηση των προϊόντων περιγραφών στη γλώσσα άλλους κατασκευαστές diff --git a/htdocs/langs/el_GR/bills.lang b/htdocs/langs/el_GR/bills.lang index e38fd849716..30bd5669898 100644 --- a/htdocs/langs/el_GR/bills.lang +++ b/htdocs/langs/el_GR/bills.lang @@ -419,7 +419,7 @@ AddGlobalDiscount=Προσθήκη έκπτωσης AddCreditNote=Δημιουργία πιστωτικό σημείωμα InvoiceNotChecked=Δεν έχει επιλεγεί τιμολόγιο ShowUnpaidAll=Εμφάνιση όλων των απλήρωτων τιμολογίων -ClosePaidInvoicesAutomatically=Ταξινομήστε "Πληρωμένες» όλα τα τιμολόγια entierely payed. +ClosePaidInvoicesAutomatically=Ταξινομήστε "Πληρωμένες» όλα τα τιμολόγια entirely payed. AllCompletelyPayedInvoiceWillBeClosed=Όλα τιμολόγιο χωρίς παραμένουν να πληρώσουν θα κλείσει αυτόματα σε κατάσταση "Πληρωμένες». // STOP - Lines generated via autotranslator.php tool (2011-06-26 15:36:46). diff --git a/htdocs/langs/el_GR/install.lang b/htdocs/langs/el_GR/install.lang index 77b706254bc..c5c835a22a5 100644 --- a/htdocs/langs/el_GR/install.lang +++ b/htdocs/langs/el_GR/install.lang @@ -1,7 +1,7 @@ # Dolibarr language file - el_GR - install CHARSET=UTF-8 InstallEasy=Just follow the instructions step by step. -MiscellanousChecks=Prerequisites check +MiscellaneousChecks=Prerequisites check DolibarrWelcome=Welcome to Dolibarr ConfFileExists=Configuration file %s exists. ConfFileDoesNotExists=Configuration file %s does not exist ! diff --git a/htdocs/langs/el_GR/members.lang b/htdocs/langs/el_GR/members.lang index 8343aff155c..270e3cd1f1e 100644 --- a/htdocs/langs/el_GR/members.lang +++ b/htdocs/langs/el_GR/members.lang @@ -152,7 +152,7 @@ ShowTypeCard=Show type '%s' HTPasswordExport=htpassword file generation NoThirdPartyAssociatedToMember=No third party associated to this member ThirdPartyDolibarr=Dolibarr third party -MembersAndSubscriptions= Members and Suscriptions +MembersAndSubscriptions= Members and Subscriptions MoreActions=Complementary action on recording MoreActionBankDirect=Create a direct transaction record on account MoreActionBankViaInvoice=Create an invoice and payment on account diff --git a/htdocs/langs/el_GR/other.lang b/htdocs/langs/el_GR/other.lang index 8981b6bccb7..b3c717c3550 100644 --- a/htdocs/langs/el_GR/other.lang +++ b/htdocs/langs/el_GR/other.lang @@ -21,7 +21,7 @@ TotalSizeOfAttachedFiles=Συνολικό μέγεθος επισυναπτώμ MaxSize=Μέγιστο μέγεθος AttachANewFile=Επισύναψη νέου αρχείου/εγγράφου LinkedObject=Συνδεδεμένα αντικείμενα -Miscellanous=Διάφορα +Miscellaneous=Διάφορα NbOfActiveNotifications=Πλήθος ειδοποιήσεων PredefinedMailTest=Δοκιμαστικο mail.\nΟι δύο γραμμές είναι χωρισμένες με carriage return. CreatedBy=Δημιουργήθηκε από %s @@ -115,7 +115,7 @@ FONTFORPDF=Freemono // START - Lines generated via autotranslator.php tool (2011-06-26 15:35:22). // Reference language: en_US -> el_GR ToolsDesc=Αυτή η περιοχή είναι αφιερωμένη στην ομάδα διάφορα εργαλεία που είναι διαθέσιμα δεν σε άλλες καταχωρήσεις μενού.

Αυτά τα εργαλεία είναι προσβάσιμα από το μενού στο πλάι. -PredefinedMailContentSendShipping=Θα βρείτε εδώ τη ναυτιλία __SHIPPINGREF__ \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ +PredefinedMailContentSendShipping=__CONTACTCIVNAME__ \n\n Θα βρείτε εδώ τη ναυτιλία __SHIPPINGREF__ \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ Top=Κορυφή Bottom=Κάτω μέρος Left=Αριστερά @@ -187,13 +187,13 @@ Notify_MEMBER_VALIDATE=Επικυρωθεί μέλη Notify_MEMBER_SUBSCRIPTION=Εγγραφεί μέλος Notify_MEMBER_RESILIATE=Resiliated μέλη Notify_MEMBER_DELETE=Διαγράφεται μέλη -PredefinedMailContentSendInvoice=Εδώ θα βρείτε το τιμολόγιο __ FACREF__ \n\n __PERSONALIZED__Ειλικρινά \n\n__SIGNATURE__ -PredefinedMailContentSendInvoiceReminder=Θα θέλαμε να σας προειδοποιήσω ότι το τιμολόγιο FACREF__ __ φαίνεται να μη πληρώνονται. Έτσι, αυτό είναι το τιμολόγιο στο συνημμένο και πάλι, ως υπενθύμιση. Ειλικρινά \n\n__PERSONALIZED__ \n\n__SIGNATURE__ -PredefinedMailContentSendProposal=Εδώ θα βρείτε την εμπορική propoal __ PROPREF__ \n\n__PERSONALIZED__ Ειλικρινά \n\n__SIGNATURE__ -PredefinedMailContentSendOrder=Εδώ θα βρείτε τη σειρά __ ORDERREF__ \n\n__PERSONALIZED__ Ειλικρινά \n\n__SIGNATURE__ -PredefinedMailContentSendSupplierOrder=Εδώ θα βρείτε για μας __ ORDERREF__ \n\n__PERSONALIZED__ Ειλικρινά \n\n__SIGNATURE__ -PredefinedMailContentSendSupplierInvoice=Εδώ θα βρείτε το τιμολόγιο __ FACREF__ \n\n__PERSONALIZED__ Ειλικρινά \n\n__SIGNATURE__ -PredefinedMailContentSendFichInter=Θα βρείτε εδώ την παρέμβαση __ FICHINTERREF__ \n\n__PERSONALIZED__ Ειλικρινά \n\n__SIGNATURE__ +PredefinedMailContentSendInvoice=__CONTACTCIVNAME__ \n\n Εδώ θα βρείτε το τιμολόγιο __ FACREF__ \n\n __PERSONALIZED__Ειλικρινά \n\n__SIGNATURE__ +PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__ \n\n Θα θέλαμε να σας προειδοποιήσω ότι το τιμολόγιο FACREF__ __ φαίνεται να μη πληρώνονται. Έτσι, αυτό είναι το τιμολόγιο στο συνημμένο και πάλι, ως υπενθύμιση. Ειλικρινά \n\n__PERSONALIZED__ \n\n__SIGNATURE__ +PredefinedMailContentSendProposal=__CONTACTCIVNAME__ \n\n Εδώ θα βρείτε την εμπορική propoal __ PROPREF__ \n\n__PERSONALIZED__ Ειλικρινά \n\n__SIGNATURE__ +PredefinedMailContentSendOrder=__CONTACTCIVNAME__ \n\n Εδώ θα βρείτε τη σειρά __ ORDERREF__ \n\n__PERSONALIZED__ Ειλικρινά \n\n__SIGNATURE__ +PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__ \n\n Εδώ θα βρείτε για μας __ ORDERREF__ \n\n__PERSONALIZED__ Ειλικρινά \n\n__SIGNATURE__ +PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__ \n\n Εδώ θα βρείτε το τιμολόγιο __ FACREF__ \n\n__PERSONALIZED__ Ειλικρινά \n\n__SIGNATURE__ +PredefinedMailContentSendFichInter=__CONTACTCIVNAME__ \n\n Θα βρείτε εδώ την παρέμβαση __ FICHINTERREF__ \n\n__PERSONALIZED__ Ειλικρινά \n\n__SIGNATURE__ DemoDesc=Dolibarr είναι ένα συμπαγές ERP / CRM αποτελείται από διάφορες λειτουργικές ενότητες. Ένα demo που περιλαμβάνει όλες τις ενότητες δεν σημαίνει τίποτα, όπως ποτέ δεν συμβαίνει αυτό. Έτσι, πολλά προφίλ επίδειξη είναι διαθέσιμα. ChooseYourDemoProfil=Επιλέξτε το προφίλ που ταιριάζει με επίδειξη δραστηριότητά σας ... DemoFundation=Διαχειριστείτε τα μέλη του ιδρύματος diff --git a/htdocs/langs/en_IN/other.lang b/htdocs/langs/en_IN/other.lang index 3b944fa7e92..2b3fffed18d 100644 --- a/htdocs/langs/en_IN/other.lang +++ b/htdocs/langs/en_IN/other.lang @@ -1,3 +1,3 @@ # Dolibarr language file - en_US - other CHARSET=UTF-8 -PredefinedMailContentSendProposal=You will find here the quotation __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendProposal=__CONTACTCIVNAME__ \n\n You will find here the quotation __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 382db000796..2a010d4733b 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -262,7 +262,7 @@ ModuleFamilyProducts=Products Management ModuleFamilyHr=Human Resource Management ModuleFamilyProjects=Projects/Collaborative work ModuleFamilyOther=Other -ModuleFamilyTechnic=Mutli-modules tools +ModuleFamilyTechnic=Multi-modules tools ModuleFamilyExperimental=Experimental modules ModuleFamilyFinancial=Financial Modules (Accounting/Treasury) ModuleFamilyECM=Electronic Content Management (ECM) @@ -289,7 +289,7 @@ GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done GenericMaskCodes4b=Example on third party created on 2007-03-01:
GenericMaskCodes4c=Example on product created on 2007-03-01:
GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX -GenericNumRefModelDesc=Return a customizable number according to a defined mask. +GenericNumRefModelDesc=Returns a customizable number according to a defined mask. ServerAvailableOnIPOrPort=Server is available at address %s on port %s ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s DoTestServerAvailability=Test server connectivity @@ -369,7 +369,7 @@ Module1Desc=Companies and contact management (customers, prospects...) Module2Name=Commercial Module2Desc=Commercial management Module10Name=Accounting -Module10Desc=Simple accounting management (invoice and payment dispatching) +Module10Desc=Simple accounting reports (journals, turnover) based onto database content. No dispatching. Module20Name=Proposals Module20Desc=Commercial proposal management Module22Name=Mass E-mailings @@ -454,10 +454,8 @@ Module1780Name=Categories Module1780Desc=Category management (products, suppliers and customers) Module2000Name=WYSIWYG editor Module2000Desc=Allow to edit some text area using an advanced editor -Module2200Name=Lending rights -Module2200Desc=Lending rights management -Module2300Name=Menus -Module2300Desc=Menu management +Module2300Name=Cron +Module2300Desc=Scheduled task management Module2400Name=Agenda Module2400Desc=Events/tasks and agenda management Module2500Name=Electronic Content Management @@ -674,6 +672,10 @@ Permission1237=Export supplier orders and their details Permission1251=Run mass imports of external data into database (data load) Permission1321=Export customer invoices, attributes and payments Permission1421=Export customer orders and attributes +Permission23001 = Read Scheduled task +Permission23002 = Create/update Scheduled task +Permission23003 = Delete Scheduled task +Permission23004 = Execute Scheduled task Permission2401=Read actions (events or tasks) linked to his account Permission2402=Create/modify actions (events or tasks) linked to his account Permission2403=Delete actions (events or tasks) linked to his account @@ -886,7 +888,7 @@ GeneratedPasswordDesc=Define here which rule you want to use to generate new pas DictionnaryDesc=Define here all reference datas. You can complete predefined value with yours. ConstDesc=This page allows you to edit all other parameters not available in previous pages. They are reserved parameters for advanced developers or for troubleshouting. OnceSetupFinishedCreateUsers=Warning, you are a Dolibarr administrator user. Administrator users are used to setup Dolibarr. For a usual usage of Dolibarr, it is recommended to use a non administrator user created from Users & Groups menu. -MiscellanousDesc=Define here all other parameters related to security. +MiscellaneousDesc=Define here all other parameters related to security. LimitsSetup=Limits/Precision setup LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices @@ -917,7 +919,7 @@ RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be requir YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP DownloadMoreSkins=More skins to download -SimpleNumRefModelDesc=Return the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset +SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset ShowProfIdInAddress=Show professionnal id with addresses on documents TranslationUncomplete=Partial translation SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix .lang text files into directory htdocs/langs and submit them on the forum at http://www.dolibarr.org. @@ -981,7 +983,7 @@ CompanyIdProfChecker=Rules on Professional Ids MustBeUnique=Must be unique ? MustBeMandatory=Must be mandatory to create thirds? MustBeInvoiceMandatory=Must be mandatory to validate invoices? -Miscellanous=Miscellaneous +Miscellaneous=Miscellaneous ##### Webcal setup ##### WebCalSetup=Webcalendar link setup WebCalSyncro=Add Dolibarr events to WebCalendar @@ -1009,7 +1011,7 @@ WebCalCheckWebcalSetup=Maybe the Webcal module setup is not correct. ##### Invoices ##### BillsSetup=Invoices module setup BillsDate=Invoices date -BillsNumberingModule=Invoices and credit notes numbering module +BillsNumberingModule=Invoices and credit notes numbering model BillsPDFModules=Invoice documents models CreditNoteSetup=Credit note module setup CreditNotePDFModules=Credit note document models @@ -1027,7 +1029,7 @@ WatermarkOnDraftInvoices=Watermark on draft invoices (any if empty) PropalSetup=Commercial proposals module setup CreateForm=Create forms NumberOfProductLines=Number of product lines -ProposalsNumberingModules=Commercial proposal numbering modules +ProposalsNumberingModules=Commercial proposal numbering models ProposalsPDFModules=Commercial proposal documents models ClassifiedInvoiced=Classified invoiced HideTreadedPropal=Hide the treated commercial proposals in the list @@ -1038,7 +1040,7 @@ FreeLegalTextOnProposal=Free text on commercial proposals WatermarkOnDraftProposal=Watermark on draft commercial proposals (any if empty) ##### Orders ##### OrdersSetup=Order management setup -OrdersNumberingModules=Orders numbering modules +OrdersNumberingModules=Orders numbering models OrdersModelModule=Order documents models HideTreadedOrders=Hide the treated or canceled orders in the list ValidOrderAfterPropalClosed=To validate the order after proposal closer, makes it possible not to step by the provisional order @@ -1052,7 +1054,7 @@ Bookmark4uSetup=Bookmark4u module setup ##### Interventions ##### InterventionsSetup=Interventions module setup FreeLegalTextOnInterventions=Free text on intervention documents -FicheinterNumberingModules=Intervention numbering modules +FicheinterNumberingModules=Intervention numbering models TemplatePDFInterventions=Intervention card documents models WatermarkOnDraftInterventionCards=Watermark on intervention card documents (any if empty) ##### Contracts ##### @@ -1276,7 +1278,9 @@ ActivateFCKeditor=Activate advanced editor for: FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services) FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). Warning: Using this option for this case is seriously not recommanded as it can create problems with special characters and page formating when building PDF files. -FCKeditorForMailing=WYSIWIG creation/edition of mailings +FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing) +FCKeditorForUserSignature=WYSIWIG creation/edition of user signature +FCKeditorForMail=WYSIWIG creation/edition for all mail (except Outils->eMailing) ##### OSCommerce 1 ##### OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s). OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull. @@ -1398,4 +1402,4 @@ ProjectsSetup=Project module setup ProjectsModelModule=Project reports document model ##### ECM (GED) ##### ECMSetup = GED Setup -ECMAutoTree = Automatic tree folder and document \ No newline at end of file +ECMAutoTree = Automatic tree folder and document diff --git a/htdocs/langs/en_US/bills.lang b/htdocs/langs/en_US/bills.lang index 6928bc1a603..1ce21c7a8f6 100644 --- a/htdocs/langs/en_US/bills.lang +++ b/htdocs/langs/en_US/bills.lang @@ -384,11 +384,13 @@ DisabledBecausePayments=Not possible since there is some payments CantRemovePaymentWithOneInvoicePaid=Can't remove payment since there is at least one invoice classified payed ExpectedToPay=Expected payment PayedByThisPayment=Payed by this payment -ClosePaidInvoicesAutomatically=Classify "Payed" all standard or replacement invoices entierely payed. -ClosePaidCreditNotesAutomatically=Classify "Payed" all credit notes entierely paid back. +ClosePaidInvoicesAutomatically=Classify "Payed" all standard or replacement invoices entirely payed. +ClosePaidCreditNotesAutomatically=Classify "Payed" all credit notes entirely paid back. AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Payed". ToMakePayment=Pay ToMakePaymentBack=Pay back +ListOfYourUnpaidInvoices=List of unpaid invoices +RevenueStamp=Revenue stamp ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Representative following-up customer invoice TypeContact_facture_external_BILLING=Customer invoice contact diff --git a/htdocs/langs/en_US/commissions.lang b/htdocs/langs/en_US/commissions.lang deleted file mode 100644 index 776f4d0c1a1..00000000000 --- a/htdocs/langs/en_US/commissions.lang +++ /dev/null @@ -1,44 +0,0 @@ -# Dolibarr language file - fr_FR - commissions -CHARSET=UTF-8 - -Module60000Desc=Commissions management -commissionsSetup=Commissions management setup - -ProductCommissionRate=Commission rate on products -ServiceCommissionRate=Commission rate on services - -ProductCommissionRateDetails=Commission rate on product sales -ServiceCommissionRateDetails=Commission rate on service sales - -Commissions=Commissions -CommissionDetails=Commissions details - -IncludeUnpayedInvoices=Include overdue invoices -TotalCommission=Commissions subtotal - -ProductMargin=Margin / products -ServiceMargin=Margin / services - -CommissionRate=Commission rate - -ProductCommission=Commission / produics -ServiceCommission=Commission / services - -CommissionBase=Commissions base -CommissionBasedOnTurnover=Commissions based on turnover -CommissionBasedOnMargins=Commissions based on margins -CommissionBaseDetails=Define calculation method for commissions -CommissionBasedOnMarginsDetails=Commissions based on margins needs margin module activation. - -TurnoverTotal = Total turrnover -ProductTurnover=Product turnover -ServiceTurnover=Service turnover - -CommercialAgent=Commercial agent - -StartDate=Start date -EndDate=End date -Launch=Start - -AgentContactType=Contact type used for commissioning -AgentContactTypeDetails=Défine what contact type (linked on invoices) will be associated with commercial agents \ No newline at end of file diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang index 1ce5db6ccd4..0ae15edba41 100644 --- a/htdocs/langs/en_US/companies.lang +++ b/htdocs/langs/en_US/companies.lang @@ -392,6 +392,7 @@ UniqueThirdParties=Total of unique third parties InActivity=Open ActivityCeased=Closed ActivityStateFilter=Activity status +ProductsIntoElements=List of products into # Monkey MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for supplier code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0. diff --git a/htdocs/langs/en_US/compta.lang b/htdocs/langs/en_US/compta.lang index c38ccd07d68..538b4f1784a 100644 --- a/htdocs/langs/en_US/compta.lang +++ b/htdocs/langs/en_US/compta.lang @@ -149,4 +149,6 @@ WarningDepositsNotIncluded=Deposits invoices are not included in this version wi DatePaymentTermCantBeLowerThanObjectDate=Payment term date can't be lower than object date. Pcg_version=Pcg version Pcg_type=Pcg type -Pcg_subtype=Pcg subtype \ No newline at end of file +Pcg_subtype=Pcg subtype +InvoiceLinesToDispatch=Invoice lines to dispatch +InvoiceDispatched=Dispatched invoices \ No newline at end of file diff --git a/htdocs/langs/en_US/cron.lang b/htdocs/langs/en_US/cron.lang new file mode 100644 index 00000000000..c64c74f1f58 --- /dev/null +++ b/htdocs/langs/en_US/cron.lang @@ -0,0 +1,87 @@ +# Dolibarr language file - en_US - cron +CHARSET=UTF-8 + +# +# Admin +# +CronSetup= Configuration Scheduled task management +URLToLaunchCronJobs=URL to launch cron jobs +OrToLaunchASpecificJob=Or to launch a specific job +KeyForCronAccess=Security key for URL to launch cron jobs +FileToLaunchCronJobs=Command to launch cron jobs +CronExplainHowToRunUnix=On Unix environement you should use crontab to run Command line each minutes +CronExplainHowToRunWin=On Microsoft(tm) Windows environement you can use Scheduled task tools to run Command line each minutes + +# +# Page list +# +CronDateLastRun=Last run +CronLastOutput=Last run output +CronLastResult=Last result code +CronListOfCronJobs=List of scheduled jobs +CronCommand=Command +CronList= Job list +CronDelete= Delete cron jobs +CronConfirmDelete= Are you sure to delete this cron jobs ? +CronExecute=Launch task +CronConfirmExecute= Are you sure to execute this job now +CronInfo= Jobs allow to execute task that have been planned +CronWaitingJobs=Wainting jobs +CronTask=Task +CronNone= None +CronDtStart=Start date +CronDtEnd=End fin +CronDtNextLaunch=Next execution +CronDtLastLaunch=Last execution +CronFrequency=Frequancy +CronClass=Classe +CronMethod=Method +CronModule=Module +CronAction=Action +CronStatus=Status +CronStatusActive=Active +CronStatusInactive=Inactive +CronNoJobs=No jobs registered +CronPriority=Priority +CronLabel=Description +CronNbRun=Nb. launch + +# +#Page card +# +CronAdd= Add jobs +CronHourStart= Start Hour and date of task +CronEvery= And execute task each +CronObject= Instance/Object to create +CronArgs=Parameters +CronSaveSucess=Save succefully +CronNote=Comment +CronFieldMandatory=Fields %s is mandatory +CronErrEndDateStartDt=End date cannot be before start date +CronStatusActiveBtn=Active +CronStatusInactiveBtn=Inactive +CronTaskInactive=This task is inactive +CronDtLastResult=Last result date +CronId=Id +CronClassFile=Classes (file name) +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of module is product +CronClassFileHelp=The file name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is product.class.php +CronObjectHelp=The object name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is Product +CronMethodHelp=The object method to launch.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of method is is fecth +CronArgsHelp=The method arguments.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be 0, ProductRef +CronCommandHelp=The system command line to execute. + +# +# Info +# +CronInfoPage=Information + + +# +# Common +# +CronType=Task type +CronType_method=Call method of a Dolibarr Class +CronType_command=Shell command +CronMenu=Cron +CronCannotLoadClass=Cannot load class %s or object %s \ No newline at end of file diff --git a/htdocs/langs/en_US/ecm.lang b/htdocs/langs/en_US/ecm.lang index c5417c33958..12b5ac31e8d 100644 --- a/htdocs/langs/en_US/ecm.lang +++ b/htdocs/langs/en_US/ecm.lang @@ -43,6 +43,7 @@ ECMDocsByOrders=Documents linked to customers orders ECMDocsByContracts=Documents linked to contracts ECMDocsByInvoices=Documents linked to customers invoices ECMDocsByProducts=Documents linked to products +ECMDocsByProjects=Documents linked to projects ECMNoDirectoryYet=No directory created ShowECMSection=Show directory DeleteSection=Remove directory diff --git a/htdocs/langs/en_US/install.lang b/htdocs/langs/en_US/install.lang index a5d3d5e7ce8..4954ffdf54c 100644 --- a/htdocs/langs/en_US/install.lang +++ b/htdocs/langs/en_US/install.lang @@ -1,7 +1,7 @@ # Dolibarr language file - en_US - install CHARSET=UTF-8 InstallEasy=Just follow the instructions step by step. -MiscellanousChecks=Prerequisites check +MiscellaneousChecks=Prerequisites check DolibarrWelcome=Welcome to Dolibarr ConfFileExists=Configuration file %s exists. ConfFileDoesNotExists=Configuration file %s does not exist ! diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang index 0b82960dab2..99a60857e3d 100644 --- a/htdocs/langs/en_US/main.lang +++ b/htdocs/langs/en_US/main.lang @@ -487,7 +487,7 @@ NbOfCustomers=Number of customers NbOfLines=Number of lines NbOfObjects=Number of objects NbOfReferers=Number of referrers -Referers=Referrers +Referers=Consumption TotalQuantity=Total quantity DateFromTo=From %s to %s DateFrom=From %s diff --git a/htdocs/langs/en_US/members.lang b/htdocs/langs/en_US/members.lang index 77657563851..e1eda16c790 100644 --- a/htdocs/langs/en_US/members.lang +++ b/htdocs/langs/en_US/members.lang @@ -155,7 +155,7 @@ ShowTypeCard=Show type '%s' HTPasswordExport=htpassword file generation NoThirdPartyAssociatedToMember=No third party associated to this member ThirdPartyDolibarr=Dolibarr third party -MembersAndSubscriptions= Members and Suscriptions +MembersAndSubscriptions= Members and Subscriptions MoreActions=Complementary action on recording MoreActionsOnSubscription=Complementary action, suggested by default when recording a subscription MoreActionBankDirect=Create a direct transaction record on account diff --git a/htdocs/langs/en_US/orders.lang b/htdocs/langs/en_US/orders.lang index 2796759a8f0..172f6fb13c6 100644 --- a/htdocs/langs/en_US/orders.lang +++ b/htdocs/langs/en_US/orders.lang @@ -85,7 +85,7 @@ NumberOfOrdersByMonth=Number of orders by month AmountOfOrdersByMonthHT=amount of orders by month (net of tax) ListOfOrders=List of orders CloseOrder=Close order -ConfirmCloseOrder=Are you sure you want to close this order ? Once an order is closed, it can only be billed. +ConfirmCloseOrder=Are you sure you want to set this order to deliverd ? Once an order is delivered, it can be set to billed. ConfirmCloseOrderIfSending=Are you sure you want to close this order ? You must close an order only when all shipping are done. ConfirmDeleteOrder=Are you sure you want to delete this order ? ConfirmValidateOrder=Are you sure you want to validate this order under name %s ? diff --git a/htdocs/langs/en_US/other.lang b/htdocs/langs/en_US/other.lang index 6a46d319b15..b7885a8ca09 100644 --- a/htdocs/langs/en_US/other.lang +++ b/htdocs/langs/en_US/other.lang @@ -45,18 +45,18 @@ TotalSizeOfAttachedFiles=Total size of attached files/documents MaxSize=Maximum size AttachANewFile=Attach a new file/document LinkedObject=Linked object -Miscellanous=Miscellaneous +Miscellaneous=Miscellaneous NbOfActiveNotifications=Number of notifications PredefinedMailTest=This is a test mail.\nThe two lines are separated by a carriage return.\n\n__SIGNATURE__ PredefinedMailTestHtml=This is a test mail (the word test must be in bold).
The two lines are separated by a carriage return.

__SIGNATURE__ -PredefinedMailContentSendInvoice=You will find here the invoice __FACREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendInvoiceReminder=We would like to warn you that the invoice __FACREF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendProposal=You will find here the commercial proposal __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendOrder=You will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierOrder=You will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierInvoice=You will find here the invoice __FACREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendShipping=You will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendFichInter=You will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendInvoice=__CONTACTCIVNAME__ \n\n You will find here the invoice __FACREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__ \n\n We would like to warn you that the invoice __FACREF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendProposal=__CONTACTCIVNAME__ \n\n You will find here the commercial proposal __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendOrder=__CONTACTCIVNAME__ \n\n You will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__ \n\n You will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__ \n\n You will find here the invoice __FACREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendShipping=__CONTACTCIVNAME__ \n\n You will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendFichInter=__CONTACTCIVNAME__ \n\n You will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM composed by several functional modules. A demo that includes all modules does not mean anything as this never occurs. So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that match your activity... DemoFundation=Manage members of a foundation diff --git a/htdocs/langs/en_US/sendings.lang b/htdocs/langs/en_US/sendings.lang index a4299fb94ab..58f4a3d96b7 100644 --- a/htdocs/langs/en_US/sendings.lang +++ b/htdocs/langs/en_US/sendings.lang @@ -59,6 +59,7 @@ LinkToTrackYourPackage=Link to track your package ShipmentCreationIsDoneFromOrder=For the moment, creation of a new shipment is done from the order card. RelatedShippings=Related shippings ShipmentLine=Shipment line +CarrierList=List of transporters # Sending methods SendingMethodCATCH=Catch by customer diff --git a/htdocs/langs/es_ES/admin.lang b/htdocs/langs/es_ES/admin.lang index 587ba2d3679..ce9e2d6d6e2 100644 --- a/htdocs/langs/es_ES/admin.lang +++ b/htdocs/langs/es_ES/admin.lang @@ -354,11 +354,12 @@ ExtrafieldPhone=Teléfono ExtrafieldPrice=Precio ExtrafieldMail=Correo ExtrafieldSelect=Lista de selección +ExtrafieldSeparator= LibraryToBuildPDF=Librería usada para la creación de archivos PDF WarningUsingFPDF=Atención: Su archivo conf.php contiene la directiva dolibarr_pdf_force_fpdf=1. Esto hace que se use la librería FPDF para generar sus archivos PDF. Esta librería es antigua y no cubre algunas funcionalidades (Unicode, transparencia de imágenes, idiomas cirílicos, árabes o asiáticos, etc.), por lo que puede tener problemas en la generación de los PDF.
Para resolverlo, y disponer de un soporte completo de PDF, puede descargar la librería TCPDF , y a continuación comentar o eliminar la línea $dolibarr_pdf_force_fpdf=1, y añadir en su lugar $dolibarr_lib_TCPDF_PATH='ruta_a_TCPDF' LocalTaxDesc=Algunos países aplican 2 o 3 tasas a cada línea de factura. Si es el caso, escoja el tipo de la segunda y tercera tasa y su valor. Los posibles tipos son:
1 : tasa local aplicable a productos y servicios sin IVA (IVA no se aplica en la tasa local)
2 : tasa local se aplica a productos y servicios antes del IVA (IVA se calcula sobre importe+tasa local)
3 : tasa local se aplica a productos sin IVA (IVA no se aplica en la tasa local)
4 : tasa local se aplica a productos antes del IVA (IVA se calcula sobre el importe+tasa local)
5 : tasa local se aplica a servicios sin IVA (IVA no se aplica a la tasa local)
6 : tasa local se aplica a servicios antes del IVA (IVA se calcula sobre importe + tasa local) SuhosinSessionEncrypt=Almacenamiento de sesiones cifradas por Suhosin -# Modules= = +# Modules Module0Name=Usuarios y grupos Module0Desc=Gestión de usuarios y grupos Module1Name=Terceros @@ -366,7 +367,7 @@ Module1Desc=Gestión de terceros (empresas, particulares) y contactos Module2Name=Comercial Module2Desc=Gestión comercial Module10Name=Contabilidad -Module10Desc=Gestión simple de la contabilidad (desglose de facturas y pagos) +Module10Desc=Activación de informes simples de contabilidad (diarios, ventas) basados en el contenido de la base de datos. Sin desgloses. Module20Name=Presupuestos Module20Desc=Gestión de presupuestos/propuestas comerciales Module22Name=E-Mailings @@ -451,10 +452,8 @@ Module1780Name=Categorías Module1780Desc=Gestión de categorías (productos, proveedores y clientes) Module2000Name=Editor WYSIWYG Module2000Desc=Permite la edición de ciertas zonas de texto mediante un editor avanzado -Module2200Name=Derecho de préstamos -Module2200Desc=Gestión de los derechos de préstamos -Module2300Name=Menús -Module2300Desc=Administración de los menús por base de datos +Module2300Name=Programador +Module2300Desc=Tareas programadas Module2400Name=Agenda Module2400Desc=Gestión de la agenda y de las acciones Module2500Name=Gestión Electrónica de Documentos @@ -678,6 +677,10 @@ Permission1411=Leer los movimientos contables Permission1412=Crear/modificar/anular movimientos contables Permission1415=Leer Balances, informes, diarios, libros maestros Permission1421=Exportar pedidos de clientes y atributos +Permission23001 = Ver tareas programadas +Permission23002 = Crear/actualizar tareas programadas +Permission23003 = Borrar tareas programadas +Permission23004 = Ejecutar tareas programadas Permission2401=Leer acciones (eventos o tareas) vinculadas a su cuenta Permission2402=Crear/eliminar acciones (eventos o tareas) vinculadas a su cuenta Permission2403=Modificar acciones (eventos o tareas) vinculadas a su cuenta @@ -887,7 +890,7 @@ GeneratedPasswordDesc=Indique aquí que norma quiere utilizar para generar las c DictionnaryDesc=Indique aquí los datos de referencia. Puede completar/modificar los datos predefinidos con los suyos. ConstDesc=Cualquier otro parámetro no editable en las páginas anteriores OnceSetupFinishedCreateUsers=Atención, está bajo una cuenta de administrador de Dolibarr. Los administradores se utilizan para configurar a Dolibarr. Para un uso corriente de Dolibarr, se recomienda utilizar una cuenta no administrador creada desde el menú "Usuarios y grupos" -MiscellanousDesc=Defina aquí los otros parámetros relacionados con la seguridad. +MiscellaneousDesc=Defina aquí los otros parámetros relacionados con la seguridad. LimitsSetup=Configuración de límites y precisiones LimitsDesc=Puede definir aquí los límites y precisiones utilizados por Dolibarr MAIN_MAX_DECIMALS_UNIT=Decimales máximos para los precios unitarios @@ -938,6 +941,7 @@ ExtraFieldsThirdParties=Atributos adicionales (terceros) ExtraFieldsContacts=Atributos adicionales (contactos/direcciones) ExtraFieldsMember=Atributos complementarios (miembros) ExtraFieldsMemberType=Atributos complementarios (tipos de miembros) +ExtraFieldsCustomerInvoices=Atributos complementarios (facturas a clientes) ExtraFieldHasWrongValue=El atributo %s tiene un valor incorrecto. AlphaNumOnlyCharsAndNoSpace=solamente caracteres alfanuméricos sin espacios SendingMailSetup=Configuración del envío por mail @@ -950,7 +954,7 @@ TranslationDesc=La elección del idioma mostrado en pantalla se modifica:
* A ClassNotFoundIntoPathWarning=No se ha encontrado la clase %s en su path PHP YesInSummer=Sí en verano OnlyFollowingModulesAreOpenedToExternalUsers=Tenga en cuenta que sólo los módulos siguientes están abiertos a usuarios externos (sean cuales sean los permisos de los usuarios): -##### Module password generation= = +##### Module password generation PasswordGenerationStandard=Devuelve una contraseña generada por el algoritmo interno Dolibarr: 8 caracteres, números y caracteres en minúsculas mezcladas. PasswordGenerationNone=No ofrece contraseñas. La contraseña se introduce manualmente. ##### Users setup ##### @@ -978,7 +982,7 @@ CompanyIdProfChecker=Reglas sobre los ID profesionales MustBeUnique=¿Debe ser único? MustBeMandatory=¿Debe ser obligatorio para crear terceros? MustBeInvoiceMandatory=¿Debe ser obligatorio para validar facturas? -Miscellanous=Miscelánea +Miscellaneous=Miscelánea ##### Webcal setup ##### WebCalSetup=Configuración de enlace con el calendario Webcalendar WebCalSyncro=Integrar los eventos Dolibarr en WebCalendar @@ -1273,7 +1277,9 @@ ActivateFCKeditor=Activar editor avanzado para : FCKeditorForCompany=Creación/edición WYSIWIG de la descripción y notas de los terceros FCKeditorForProduct=Creación/edición WYSIWIG de la descripción y notas de los productos/servicios FCKeditorForProductDetails=Creación/edición WYSIWIG de las líneas de detalle de los productos (en pedidos, presupuestos, facturas, etc.) -FCKeditorForMailing=Creación/edición WYSIWIG de los E-Mails +FCKeditorForMailing=Creación/edición WYSIWIG de los E-Mails (Utilidades->E-Mailings) +FCKeditorForUserSignature=Creación/edición WYSIWIG de la firma de usuarios +FCKeditorForMail=Creación/edición WYSIWIG de todos los E-Mails (excepto Utilidades->E-Mailings) ##### OSCommerce 1 ##### OSCommerceErrorConnectOkButWrongDatabase=La conexión se ha establecido, pero la base de datos no parece de OSCommerce. OSCommerceTestOk=La conexión al servidor '%s' sobre la base '%s' por el usuario '%s' es correcta. @@ -1382,6 +1388,7 @@ MultiCompanySetup=Configuración del módulo Multi-empresa SuppliersSetup=Configuración del módulo Proveedores SuppliersCommandModel=Modelo de pedidos a proveedores completo (logo...) SuppliersInvoiceModel=Modelo de facturas de proveedores completo (logo...) +SuppliersInvoiceNumberingModel=Modelos de numeración de facturas de proveedor ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=Configuración del módulo GeoIP Maxmind PathToGeoIPMaxmindCountryDataFile=Ruta del archivo Maxmind que contiene las conversiones IP->País.
Ejemplo: /usr/local/share/GeoIP/GeoIP.dat diff --git a/htdocs/langs/es_ES/bills.lang b/htdocs/langs/es_ES/bills.lang index e72c4637fd4..4429143bacf 100644 --- a/htdocs/langs/es_ES/bills.lang +++ b/htdocs/langs/es_ES/bills.lang @@ -385,6 +385,7 @@ ClosePaidCreditNotesAutomatically=Clasificar automáticamente como "Pagados" los AllCompletelyPayedInvoiceWillBeClosed=Todas las facturas con un resto a pagar 0 serán automáticamente cerradas al estado "Pagada". ToMakePayment=Pagar ToMakePaymentBack=Reembolsar +ListOfYourUnpaidInvoices=Listado de facturas impagadas ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Responsable seguimiento factura a cliente TypeContact_facture_external_BILLING=Contacto cliente facturación diff --git a/htdocs/langs/es_ES/commissions.lang b/htdocs/langs/es_ES/commissions.lang deleted file mode 100644 index 2077ca5990c..00000000000 --- a/htdocs/langs/es_ES/commissions.lang +++ /dev/null @@ -1,41 +0,0 @@ -# Dolibarr language file - es_ES - commissions -CHARSET=UTF-8 - -Module60000Desc=Gestión de comisiones -commissionsSetup=Configuración de la gestión de comisiones - -ProductCommissionRate=Tasa de comisión sobre los productos -ServiceCommissionRate=Tasa de comisión sobre los servicios - -ProductCommissionRateDetails=Tasa usada para calcular las comisiones sobre las ventas de productos -ServiceCommissionRateDetails=Tasa usada para calcular las comisiones sobre las ventas de servicios - -Commissions=Comisiones -CommissionDetails=Detalle de comisiones - -IncludeUnpayedInvoices=Incluir las facturas no cobradas -TotalCommission=Total comisiones - -ProductMargin=Margen / productos -ServiceMargin=Margen / servicios - -CommissionRate=Tasas comisiones - -ProductCommission=Comisión / productos -ServiceCommission=Comisión / servicios - -CommissionBase=Base de cálculo de comisiones -CommissionBasedOnTurnover=Comisiones calculadas sobre el volumen de venta -CommissionBasedOnMargins=Comisiones calculadas sobre los márgenes -CommissionBaseDetails=Establece el método de cálculo de las comisiones -CommissionBasedOnMarginsDetails=El cálculo basado en los márgenes requiere la activación del módulo márgenes - -TurnoverTotal = Volumen de ventas sin IVA -ProductTurnover=Ventas sin IVA / productos -ServiceTurnover=Ventas sin IVA / servicios - -CommercialAgent=Agente comercial - -StartDate=Fecha de inicio -EndDate=Fecha de fin -Launch=Comenzar \ No newline at end of file diff --git a/htdocs/langs/es_ES/companies.lang b/htdocs/langs/es_ES/companies.lang index fedfabfbc2c..b86b0d5fffa 100644 --- a/htdocs/langs/es_ES/companies.lang +++ b/htdocs/langs/es_ES/companies.lang @@ -394,6 +394,8 @@ UniqueThirdParties=Total de terceros únicos InActivity=Activo ActivityCeased=Cerrado ActivityStateFilter=Estado de actividad +ProductsIntoElements=Listado de productos en %s + # Monkey MonkeyNumRefModelDesc=Devuelve un número bajo el formato %syymm-nnnn para los códigos de clientes y %syymm-nnnn para los códigos de los proveedores, donde yy es el año, mm el mes y nnnn un contador secuencial sin ruptura y sin volver a 0. # Leopard diff --git a/htdocs/langs/es_ES/compta.lang b/htdocs/langs/es_ES/compta.lang index 2f72861a920..f2e86e42739 100644 --- a/htdocs/langs/es_ES/compta.lang +++ b/htdocs/langs/es_ES/compta.lang @@ -158,4 +158,10 @@ COMPTA_ACCOUNT_CUSTOMER=Código contable por defecto de clientes (si no está de COMPTA_ACCOUNT_SUPPLIER=Código contable por defecto de proveedores (si no está definido en la pestaña terceros) AddRemind=Desglosar importe disponible RemainToDivide=Resto a repartir : -WarningDepositsNotIncluded=Las facturas de anticipo aún no están incluidas en esta versión en el módulo de contabilidad. \ No newline at end of file +WarningDepositsNotIncluded=Las facturas de anticipo aún no están incluidas en esta versión en el módulo de contabilidad. +DatePaymentTermCantBeLowerThanObjectDate=La fecha límite de pago no puede ser inferior a la fecha del objeto +Pcg_version=Versión del plan +Pcg_type=Tipo de cuenta +Pcg_subtype=Subtipo de cuenta +InvoiceLinesToDispatch=Líneas de facturas a desglosar +InvoiceDispatched=Facturas desglosadas \ No newline at end of file diff --git a/htdocs/langs/es_ES/cron.lang b/htdocs/langs/es_ES/cron.lang new file mode 100644 index 00000000000..4020f586e49 --- /dev/null +++ b/htdocs/langs/es_ES/cron.lang @@ -0,0 +1,90 @@ +# Dolibarr language file - es_ES - cron +CHARSET=UTF-8 + +# +# Admin +# +CronSetup= Configuracion +URLToLaunchCronJobs=URL para ejecutar tareas Cron +OrToLaunchASpecificJob=O para ejecutar una tarea en concreto +KeyForCronAccess=clave para la URL para ejecutar tareas Cron +FileToLaunchCronJobs=Comando para ejecutar tareas Cron +CronExplainHowToRunUnix=En entorno Unix debes usar crontab para ejecutar el comando cada varios minutos +CronExplainHowToRunWin=En un entorno de Microsoft(tm) Windows puedes usar el programador de tareas para ejecutar el comando cada varios minutos + +# +# Page list +# +CronDateLastRun=Ultima ejecucion +CronLastOutput=Resultado de la ultima ejecucion +CronLastResult=Ultimo codigo de resultado +CronListOfCronJobs=Lista de tareas programadas +CronCommand=Comando +CronList=Lista de tareas Cron +CronDelete=Borrar tareas Cron +CronConfirmDelete=Estas seguro de querer eliminar estas tareas ? +CronExecute=Ejecutar Tarea +CronConfirmExecute=Estas seguro de querer ejecutar esta tarea ahora ? +CronInfo= Cron te permite ejecutar tareas que han sido programadas +CronWaitingJobs=Trabajos en espera +CronTask=Tarea +CronNone=Ninguna +CronDtStart=Fecha inicio +CronDtEnd=Fecha fin +CronDtNextLaunch=Siguiente ejecucion +CronDtLastLaunch=ultima ejecucion +CronFrequency=Frecuencia +CronClass=Class +CronMethod=Metodo +CronModule=Modulo +CronAction=Accion +CronStatus=Status +CronStatusActive=Activo +CronStatusInactive=Inactivo +CronNoJobs=Sin trabajos registrados +CronPriority=Prioridad +CronLabel=Descripcion +CronNbRun=Nb. ejecutar + +# +#Page card +# + +CronListActive=Tareas Activas +CronListInactive=Tareas Inactivas +CronAdd=Tarea Nueva +CronHourStart=Fecha y hora de inicio de la tarea +CronEvery=Y ejecutar la tarea cada +CronObject=Instancia/Objeto a crear +CronArgs=Parametros +CronSaveSucess=Guardado con exito +CronNote=Comentario +CronFieldMandatory=campos %s son obligatorios +CronErrEndDateStartDt=La fecha de finalizacion no puede ser anterior a la fecha de inicio +CronStatusActiveBtn=Activo +CronStatusInactiveBtn=Inactivo +CronTaskInactive=Esta tarea esta inactiva +CronDtLastResult=Fecha del ultimo resultado +CronId=Id +CronClassFile=Classes (file name) +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of module is product +CronClassFileHelp=The file name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is product.class.php +CronObjectHelp=The object name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is Product +CronMethodHelp=The object method to launch.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of method is is fecth +CronArgsHelp=The method arguments.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be 0, ProductRef +CronCommandHelp=The system command line to execute. + +# +# Info +# +CronInfoPage=Informacion + + +# +# Common +# +CronType=Tipo de tarea +CronType_method=Llamar a un metodo de clase Dolibarr +CronType_command=Comando Shell +CronMenu=Programador +CronCannotLoadClass=No se puede cargar la clase %s u objeto %s diff --git a/htdocs/langs/es_ES/ecm.lang b/htdocs/langs/es_ES/ecm.lang index 5d63340af91..a6a19994ec4 100644 --- a/htdocs/langs/es_ES/ecm.lang +++ b/htdocs/langs/es_ES/ecm.lang @@ -43,6 +43,7 @@ ECMDocsByOrders=Documentos asociados a pedidos ECMDocsByContracts=Documentos asociados a contratos ECMDocsByInvoices=Documentos asociados a facturas ECMDocsByProducts=Documentos enlazados a productos +ECMDocsByProjects=Documentos enlazados a proyectos ECMNoDirectoryYet=No se ha creado el directorio ShowECMSection=Mostrar directorio DeleteSection=Eliminación directorio diff --git a/htdocs/langs/es_ES/install.lang b/htdocs/langs/es_ES/install.lang index d53dcc28407..9d42c609104 100644 --- a/htdocs/langs/es_ES/install.lang +++ b/htdocs/langs/es_ES/install.lang @@ -1,7 +1,7 @@ # Dolibarr language file - es_ES - install CHARSET=UTF-8 InstallEasy=Hemos procurado que la instalación sea lo más simple posible, usted sólo tiene que seguir los pasos uno a uno. -MiscellanousChecks=Comprobación de los prerrequisitos +MiscellaneousChecks=Comprobación de los prerrequisitos DolibarrWelcome=Bienvenido a Dolibarr ConfFileExists=El archivo de configuración %s existe. ConfFileDoesNotExists=¡El archivo de configuración %s no existe! diff --git a/htdocs/langs/es_ES/main.lang b/htdocs/langs/es_ES/main.lang index ec308d590d5..b7ba4d9c578 100644 --- a/htdocs/langs/es_ES/main.lang +++ b/htdocs/langs/es_ES/main.lang @@ -489,7 +489,7 @@ NbOfThirdParties=Número de terceros NbOfCustomers=Numero de clientes NbOfLines=Números de líneas NbOfObjects=Número de objetos -NbOfReferers=Número de referencias +NbOfReferers=Consumición Referers=Referencias TotalQuantity=Cantidad total DateFromTo=De %s a %s diff --git a/htdocs/langs/es_ES/orders.lang b/htdocs/langs/es_ES/orders.lang index 13710c240b7..3b1069cf7a6 100644 --- a/htdocs/langs/es_ES/orders.lang +++ b/htdocs/langs/es_ES/orders.lang @@ -28,11 +28,12 @@ SuppliersOrdersToProcess=Pedidos a proveedores a procesar StatusOrderCanceledShort=Anulado StatusOrderDraftShort=Borrador StatusOrderValidatedShort=Validado -StatusOrderOnProcessShort=Pdte. Recibir +StatusOrderOnProcessShort=En proceso StatusOrderSentShort=Expedición en curso StatusOrderSent=Envío en curso StatusOrderProcessedShort=Procesado -StatusOrderToBillShort=A facturar +StatusOrderToBillShort=Emitido +StatusOrderToBillShort2=A facturar StatusOrderApprovedShort=Aprobado StatusOrderRefusedShort=Rechazado StatusOrderToProcessShort=A procesar @@ -43,7 +44,8 @@ StatusOrderDraft=Borrador (a validar) StatusOrderValidated=Validado StatusOrderOnProcess=Pendiente de recibir StatusOrderProcessed=Procesado -StatusOrderToBill=A facturar +StatusOrderToBill=Emitido +StatusOrderToBill2=A facturar StatusOrderApproved=Aprobado StatusOrderRefused=Rechazado StatusOrderReceivedPartially=Recibido parcialmente @@ -82,8 +84,8 @@ NumberOfOrdersByMonth=Número de pedidos por mes AmountOfOrdersByMonthHT=Importe total de pedidos por mes (sin IVA) ListOfOrders=Listado de pedidos CloseOrder=Cerrar pedido -ConfirmCloseOrder=¿Está seguro de querer cerrar este pedido? Una vez cerrado, deberá facturarse -ConfirmCloseOrderIfSending=¿Está seguro de querer cerrar este pedido? No debe cerrar un pedido que aún no tiene sus productos enviados +ConfirmCloseOrder=¿Está seguro de querer clasificar este pedido como enviado? Una vez enviado un pedido, solo podrá facturarse +ConfirmCloseOrderIfSending=¿Está seguro de querer cerrar este pedido? Solamente debería cerrar un pedido cuando este haya sido enviado completamente. ConfirmDeleteOrder=¿Está seguro de querer eliminar este pedido? ConfirmValidateOrder=¿Está seguro de querer validar este pedido bajo la referencia %s ? ConfirmUnvalidateOrder=¿Está seguro de querer restaurar el pedido %s al estado borrador? diff --git a/htdocs/langs/es_ES/other.lang b/htdocs/langs/es_ES/other.lang index 7ef141abbd0..6c590d73f68 100644 --- a/htdocs/langs/es_ES/other.lang +++ b/htdocs/langs/es_ES/other.lang @@ -44,18 +44,18 @@ TotalSizeOfAttachedFiles=Tamaño total de los archivos/documentos adjuntos MaxSize=Tamaño máximo AttachANewFile=Adjuntar nuevo archivo/documento LinkedObject=Objeto adjuntado -Miscellanous=Miscelánea +Miscellaneous=Miscelánea NbOfActiveNotifications=Número notificaciones PredefinedMailTest=Esto es un correo de prueba.\nLas 2 líneas están separadas por un retorno de carro a la línea. PredefinedMailTestHtml=Esto es un e-mail de prueba(la palabra prueba debe de estar en negrita).
Las 2 líneas están separadas por un retorno de carro en la línea -PredefinedMailContentSendInvoice=Le adjuntamos la factura __FACREF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ -PredefinedMailContentSendInvoiceReminder=Ponemos en su conocimiento que la factura __FACREF__ parece no estar pagada. Se la adjuntamos pues, para que pueda revisarla.\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ -PredefinedMailContentSendProposal=Le adjuntamos el presupuesto __PROPREF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ -PredefinedMailContentSendOrder=Le adjuntamos el pedido __ORDERREF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierOrder=Le adjuntamos nuestro pedido __ORDERREF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierInvoice=Le adjuntamos la factura __FACREF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ -PredefinedMailContentSendShipping=Le adjuntamos la expedición __SHIPPINGREF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ -PredefinedMailContentSendFichInter=Le adjuntamos la intervención __FICHINTERREF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ +PredefinedMailContentSendInvoice=__CONTACTCIVNAME__ \n\n Le adjuntamos la factura __FACREF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ +PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__ \n\n Ponemos en su conocimiento que la factura __FACREF__ parece no estar pagada. Se la adjuntamos pues, para que pueda revisarla.\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ +PredefinedMailContentSendProposal=__CONTACTCIVNAME__ \n\n Le adjuntamos el presupuesto __PROPREF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ +PredefinedMailContentSendOrder=__CONTACTCIVNAME__ \n\n Le adjuntamos el pedido __ORDERREF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__ \n\n Le adjuntamos nuestro pedido __ORDERREF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__ \n\n Le adjuntamos la factura __FACREF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ +PredefinedMailContentSendShipping=__CONTACTCIVNAME__ \n\n Le adjuntamos la expedición __SHIPPINGREF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ +PredefinedMailContentSendFichInter=__CONTACTCIVNAME__ \n\n Le adjuntamos la intervención __FICHINTERREF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ DemoDesc=Dolibarr es un software para la gestión de negocios (profesionales o asociaciones), compuesto de módulos funcionales independientes y opcionales. Una demostración que incluya todos estos módulos no tiene sentido porque no utilizará todos los módulos. Además, tiene disponibles varios tipos de perfiles de demostración. ChooseYourDemoProfil=Seleccione el perfil de demostración que mejor corresponda a su actividad... DemoFundation=Gestión de miembros de una asociación diff --git a/htdocs/langs/es_ES/sendings.lang b/htdocs/langs/es_ES/sendings.lang index 7efaabc81cd..99dda507fa8 100644 --- a/htdocs/langs/es_ES/sendings.lang +++ b/htdocs/langs/es_ES/sendings.lang @@ -59,6 +59,7 @@ LinkToTrackYourPackage=Enlace para el seguimento de su paquete ShipmentCreationIsDoneFromOrder=De momento, la creación de una nueva expedición se realiza desde la ficha de pedido. RelatedShippings=Expedición(es) asociada(s) ShipmentLine=Línea de expedición +CarrierList=Listado de transportistas # Sending methods SendingMethodCATCH=Recogido por el cliente diff --git a/htdocs/langs/et_EE/admin.lang b/htdocs/langs/et_EE/admin.lang index 24054238d4f..5bf1e057406 100644 --- a/htdocs/langs/et_EE/admin.lang +++ b/htdocs/langs/et_EE/admin.lang @@ -259,7 +259,7 @@ ModuleFamilyProducts=Tooted juhtimine ModuleFamilyHr=Human Resource Management ModuleFamilyProjects=Projektid / koostööprojektid töö ModuleFamilyOther=Teine -ModuleFamilyTechnic=Mutli-moodulid tööriistad +ModuleFamilyTechnic=Multi-moodulid tööriistad ModuleFamilyExperimental=Eksperimentaalse moodulid ModuleFamilyFinancial=Financial Modules (Raamatupidamine / Treasury) ModuleFamilyECM=Electronic sisuhaldus (ECM) @@ -418,10 +418,6 @@ Module1780Name=Kategooriad Module1780Desc=Kategoorias juhtkond (toodete, tarnijate ja tarbijate) Module2000Name=WYSIWYG editor Module2000Desc=Võimaldavad muuta natuke teksti ala, kasutades täiustatud toimetaja -Module2200Name=Laenutusõigust -Module2200Desc=Laenutusõigust juhtimine -Module2300Name=Menüüd -Module2300Desc=Menüü juhtkond Module2400Name=Päevakord Module2400Desc=Events / ülesanded ja kava haldamise Module2500Name=Electronic Content Management @@ -815,7 +811,7 @@ GeneratedPasswordDesc=Määratlege siin, mis reegel, mida soovite kasutada, et l DictionnaryDesc=Määratlege siin kõik viide andmete suhtes. Te võite täita eelnevalt kindlaksmääratud väärtus sinu. ConstDesc=Sellel leheküljel saab muuta kõik muud parameetrid ei ole kättesaadavad varasematel lehekülgedel. Need on ette nähtud parameetrid arenenud arendajad või troubleshouting. OnceSetupFinishedCreateUsers=Warning, olete Dolibarr administraatori. Administrator kasutajad on harjunud setup Dolibarr. Sest tavaline kasutamine Dolibarr, on soovitatav kasutada mitte administraatori loodud Kasutajad ja grupid menüü. -MiscellanousDesc=Määratlege siin kõik muud parameetrid, mis on seotud turvalisuse. +MiscellaneousDesc=Määratlege siin kõik muud parameetrid, mis on seotud turvalisuse. LimitsSetup=Piirid / Täppisseadmed setup LimitsDesc=Saate määrata piirid, täpsust ja optimeerimist, mida Dolibarr siin MAIN_MAX_DECIMALS_UNIT=Max kümnendkohtade jaoks ühikuhinnad @@ -889,7 +885,7 @@ DocumentModelOdt=Loo dokumente OpenDocuments mallid (. ODT faile OpenOffice, KOf WatermarkOnDraft=Vesimärgi dokumendi eelnõu CompanyIdProfChecker=Professional Id ainulaadne MustBeUnique=Peab olema unikaalne? -Miscellanous=Muu +Miscellaneous=Muu WebCalSetup=WebCalendar link setup WebCalSyncro=Lisa Dolibarr üritused WebCalendar WebCalAllways=Alati ei paludes diff --git a/htdocs/langs/et_EE/bills.lang b/htdocs/langs/et_EE/bills.lang index 6b7f9cfc53e..b2b9a21de61 100644 --- a/htdocs/langs/et_EE/bills.lang +++ b/htdocs/langs/et_EE/bills.lang @@ -374,7 +374,7 @@ DisabledBecausePayments=Ole võimalik, sest seal on mõned maksed CantRemovePaymentWithOneInvoicePaid=Ei saa eemaldada makse sest seal on vähemalt üks arve klassifitseeritud payed ExpectedToPay=Oodatud makse PayedByThisPayment=Payed selle makse -ClosePaidInvoicesAutomatically=Liigitada "payed" kõik standard või asendamine arved entierely payed. +ClosePaidInvoicesAutomatically=Liigitada "payed" kõik standard või asendamine arved entirely payed. AllCompletelyPayedInvoiceWillBeClosed=Kõik arve, millel ei ole veel maksma automaatselt suletud olek "payed". TypeContact_facture_internal_SALESREPFOLL=Esindaja järelmeetmeid kliendi arve TypeContact_facture_external_BILLING=Kliendi arve kontaktandmed diff --git a/htdocs/langs/et_EE/install.lang b/htdocs/langs/et_EE/install.lang index 6ec8e605c2a..02a3d958590 100644 --- a/htdocs/langs/et_EE/install.lang +++ b/htdocs/langs/et_EE/install.lang @@ -9,7 +9,7 @@ // Reference language: en_US -> et_EE CHARSET=UTF-8 InstallEasy=Lihtsalt järgige samm-sammult. -MiscellanousChecks=Eeldused kontrollida +MiscellaneousChecks=Eeldused kontrollida DolibarrWelcome=Tere tulemast Dolibarr ConfFileExists=Konfiguratsioonifaili %s olemas. ConfFileDoesNotExists=Konfiguratsioonifaili %s ei eksisteeri! diff --git a/htdocs/langs/et_EE/members.lang b/htdocs/langs/et_EE/members.lang index b2d7eb1bc7a..ef7bcef6304 100644 --- a/htdocs/langs/et_EE/members.lang +++ b/htdocs/langs/et_EE/members.lang @@ -162,7 +162,7 @@ ShowTypeCard=Näita tüüp "%s" HTPasswordExport=htpassword fail põlvkonna NoThirdPartyAssociatedToMember=Ükski kolmas isik on seotud selle liige ThirdPartyDolibarr=Dolibarr kolmanda osapoole -MembersAndSubscriptions=Liikmete ja Suscriptions +MembersAndSubscriptions=Liikmete ja Subscriptions MoreActions=Täiendav tegevus salvestus MoreActionBankDirect=Loo otseseid tehingukulusid rekord konto MoreActionBankViaInvoice=Loo arve ja ettemaks diff --git a/htdocs/langs/et_EE/other.lang b/htdocs/langs/et_EE/other.lang index 6a9fd740187..8d83875f9c2 100644 --- a/htdocs/langs/et_EE/other.lang +++ b/htdocs/langs/et_EE/other.lang @@ -52,18 +52,18 @@ TotalSizeOfAttachedFiles=Kogusuurus lisatud faile / dokumente MaxSize=Maksimaalne suurus AttachANewFile=Lisada uue faili / dokumendi LinkedObject=Lingitud objekti -Miscellanous=Muu +Miscellaneous=Muu NbOfActiveNotifications=Teadete arv PredefinedMailTest=See on test mail. \ NThe kaks rida on eraldatud kelgutagastusmärgid. PredefinedMailTestHtml=See on test post (sõna test peab olema paksus kirjas).
2 rida on eraldatud kelgutagastusmärgid. -PredefinedMailContentSendInvoice=Leiad siin arve __FACREF__ \n\n Lugupidamisega \n\n__SIGNATURE__ -PredefinedMailContentSendInvoiceReminder=Soovime teid hoiatama, et arve __FACREF__ tundub ei payed. Nii et see on arve arestimine jälle, nagu meeldetuletus. \n\n Lugupidamisega \n\n__SIGNATURE__ -PredefinedMailContentSendProposal=Leiad siin kaubandusliku propoal __PROPREF__ \n\n Lugupidamisega \n\n__SIGNATURE__ -PredefinedMailContentSendOrder=Leiad siin, et __ORDERREF__ \n\n Lugupidamisega \n\n__SIGNATURE__ -PredefinedMailContentSendSupplierOrder=Leiad siin meie, et __ORDERREF__ \n\n Lugupidamisega \n\n__SIGNATURE__ -PredefinedMailContentSendSupplierInvoice=Leiad siin arve __FACREF__ \n\n Lugupidamisega \n\n__SIGNATURE__ -PredefinedMailContentSendShipping=Leiad siin shipping __SHIPPINGREF__ \n\n Lugupidamisega \n\n__SIGNATURE__ -PredefinedMailContentSendFichInter=Leiad siin sekkumine __FICHINTERREF__ \n\n Lugupidamisega \n\n__SIGNATURE__ +PredefinedMailContentSendInvoice=__CONTACTCIVNAME__ \n\n Leiad siin arve __FACREF__ \n\n Lugupidamisega \n\n__SIGNATURE__ +PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__ \n\n Soovime teid hoiatama, et arve __FACREF__ tundub ei payed. Nii et see on arve arestimine jälle, nagu meeldetuletus. \n\n Lugupidamisega \n\n__SIGNATURE__ +PredefinedMailContentSendProposal=__CONTACTCIVNAME__ \n\n Leiad siin kaubandusliku propoal __PROPREF__ \n\n Lugupidamisega \n\n__SIGNATURE__ +PredefinedMailContentSendOrder=__CONTACTCIVNAME__ \n\n Leiad siin, et __ORDERREF__ \n\n Lugupidamisega \n\n__SIGNATURE__ +PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__ \n\n Leiad siin meie, et __ORDERREF__ \n\n Lugupidamisega \n\n__SIGNATURE__ +PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__ \n\n Leiad siin arve __FACREF__ \n\n Lugupidamisega \n\n__SIGNATURE__ +PredefinedMailContentSendShipping=__CONTACTCIVNAME__ \n\n Leiad siin shipping __SHIPPINGREF__ \n\n Lugupidamisega \n\n__SIGNATURE__ +PredefinedMailContentSendFichInter=__CONTACTCIVNAME__ \n\n Leiad siin sekkumine __FICHINTERREF__ \n\n Lugupidamisega \n\n__SIGNATURE__ DemoDesc=Dolibarr on kompaktne ERP / CRM koosseisus mitmed funktsionaalseid mooduleid. Demo, mis hõlmab kõiki mooduleid ei tähenda midagi, kui see kunagi juhtub. Niisiis, mitu demo profiilid on saadaval. ChooseYourDemoProfil=Vali demo profiili, mis vastavad teie tegevus ... DemoFundation=Halda liikmeid sihtasutus diff --git a/htdocs/langs/fa_IR/admin.lang b/htdocs/langs/fa_IR/admin.lang index 515b6d2dc04..e68113502ae 100644 --- a/htdocs/langs/fa_IR/admin.lang +++ b/htdocs/langs/fa_IR/admin.lang @@ -221,7 +221,7 @@ ModuleFamilyProducts= سیسیتم کالاها ModuleFamilyHr= سیستم استخدامی ModuleFamilyProjects= سیستم پروژه ها ModuleFamilyOther= دیگر سیستم ها -ModuleFamilyTechnic=Mutli بين وحدات وأدوات +ModuleFamilyTechnic=Multi بين وحدات وأدوات ModuleFamilyExperimental=نماذج تجريبية ModuleFamilyFinancial=الوحدات المالية (المحاسبة / الخزانة) ModuleFamilyECM=تولید محتوی الکترونیکی @@ -341,10 +341,6 @@ Module1400Name=المحاسبة Module1400Desc=المحاسبة الإدارية (ضعف الأحزاب) Module1780Name=الفئات Module1780Desc=الفئات إدارة المنتجات والموردين والزبائن) -Module2200Name=الإقراض الإنسان -Module2200Desc=الإقراض لإدارة الحقوق -Module2300Name=القوائم -Module2300Desc=القوائم إدارة Module2400Name=جدول الأعمال Module2400Desc=الأعمال / الإدارة المهام وجدول الأعمال Module2500Name=إدارة المحتوى الإلكتروني @@ -681,7 +677,7 @@ GeneratedPasswordDesc=هنا تعريف القاعدة التي تريد است DictionnaryDesc=تعرف هنا إشارة datas. يمكنك استكمال مسبقا مع قيمة لك. ConstDesc=تسمح لك هذه الصفحة لتحرير جميع البارامترات الأخرى غير المتوفرة في الصفحات السابقة. فهي محفوظة لمعايير متقدمة للمطورين أو troubleshouting. OnceSetupFinishedCreateUsers=تحذير فأنت Dolibarr مدير المستخدم. مدير المستخدمين تستخدم لإعداد Dolibarr. لالمعتاد استخدام Dolibarr ، يوصى باستخدام غير مستخدم مدير خلق مجموعات من المستخدمين & القائمة. -MiscellanousDesc=هنا تعريف جميع البارامترات الأخرى ذات الصلة بالأمن. +MiscellaneousDesc=هنا تعريف جميع البارامترات الأخرى ذات الصلة بالأمن. LimitsSetup=حدود / الدقيقة الإعداد LimitsDesc=يمكنك تحديد الحدود ، وoptimisations الايضاحات التي تستخدمها Dolibarr هنا MAIN_MAX_DECIMALS_UNIT=ماكس عشرية لأسعار الوحدات diff --git a/htdocs/langs/fa_IR/install.lang b/htdocs/langs/fa_IR/install.lang index 545d17c8f76..5e3f6f3d6c1 100644 --- a/htdocs/langs/fa_IR/install.lang +++ b/htdocs/langs/fa_IR/install.lang @@ -10,7 +10,7 @@ // Reference language: en_US CHARSET=UTF-8 InstallEasy=فقط اتبع التعليمات خطوة بخطوة. -MiscellanousChecks=التحقق من الشروط الأساسية +MiscellaneousChecks=التحقق من الشروط الأساسية DolibarrWelcome=مرحبا بكم في Dolibarr ConfFileExists=ملفات موجودة ٪ ق. ConfFileDoesNotExists=ملفات ل ٪ لا وجود له! diff --git a/htdocs/langs/fa_IR/members.lang b/htdocs/langs/fa_IR/members.lang index e7ecd54bf5c..b0a46554eb6 100644 --- a/htdocs/langs/fa_IR/members.lang +++ b/htdocs/langs/fa_IR/members.lang @@ -152,7 +152,7 @@ ShowTypeCard=وتبين من نوع '٪ ق' HTPasswordExport=الملف htpassword جيل NoThirdPartyAssociatedToMember=لم يرتبط بها من طرف ثالث لهذا العضو ThirdPartyDolibarr=Dolibarr طرف ثالث -MembersAndSubscriptions=وأعضاء Suscriptions +MembersAndSubscriptions=وأعضاء Subscriptions // Date 2009-08-11 13:27:01 // STOP - Lines generated via parser diff --git a/htdocs/langs/fa_IR/other.lang b/htdocs/langs/fa_IR/other.lang index c894874b674..482b40f4888 100644 --- a/htdocs/langs/fa_IR/other.lang +++ b/htdocs/langs/fa_IR/other.lang @@ -27,7 +27,7 @@ TotalSizeOfAttachedFiles=اجمالى حجم الملفات المرفقة / و MaxSize=الحجم الأقصى AttachANewFile=إرفاق ملف جديد / وثيقة LinkedObject=ربط وجوه -Miscellanous=متفرقات +Miscellaneous=متفرقات NbOfActiveNotifications=عدد الإخطارات ChooseYourDemoProfil=اختيار عرض ملف المباراة التي أنشطتك... DemoFundation=أعضاء في إدارة مؤسسة diff --git a/htdocs/langs/fi_FI/admin.lang b/htdocs/langs/fi_FI/admin.lang index b06d90b9675..d8c9d5f70ed 100644 --- a/htdocs/langs/fi_FI/admin.lang +++ b/htdocs/langs/fi_FI/admin.lang @@ -197,7 +197,7 @@ ModuleFamilyProducts=Tuotteet Management ModuleFamilyHr=Human Resource Management ModuleFamilyProjects=Projektit / Yhteistyöhankkeet työn ModuleFamilyOther=Muu -ModuleFamilyTechnic=Mutli-modules työkalut +ModuleFamilyTechnic=Multi-modules työkalut ModuleFamilyExperimental=Kokeellinen modules ModuleFamilyFinancial=Financial Modules (kirjanpidon / Treasury) ModuleFamilyECM=ECM @@ -303,10 +303,6 @@ Module1400Name=Kirjanpidon asiantuntija Module1400Desc=Kirjanpidon hallinta asiantuntijoille (double osapuolet) Module1780Name=Kategoriat Module1780Desc=Kategoriat hallintaa (tuotteet, tavarantoimittajat ja asiakkaat) -Module2200Name=Lainausoikeuksia -Module2200Desc=Luotonanto oikeuksien hallinta -Module2300Name=Menut -Module2300Desc=Valikot hallinto Module2400Name=Agenda Module2400Desc=Toimet / tehtävät ja esityslistan hallinta Module2500Name=Sähköinen Content Management @@ -599,7 +595,7 @@ GeneratedPasswordDesc=Määritä tässä joka sääntö, jota haluat käyttää DictionnaryDesc=Määritä tässä kaikki viittaukset datas. Voit täysin ennalta-arvon sinun. ConstDesc=Tällä sivulla voit muokata kaikkia muita muuttujia ei ole saatavilla edellinen sivua. Ne on varattu parametrit edistyneelle kehittäjät tai troubleshouting. OnceSetupFinishedCreateUsers=Varoitus, olet Dolibarr järjestelmänvalvojan käyttäjätili. Administrator käyttäjät ovat tottuneet setup Dolibarr. Jos kyseessä on tavanomainen käyttö Dolibarr, on suositeltavaa käyttää kuin järjestelmänvalvojan käyttäjätili luotu Käyttäjät & ryhmät valikosta. -MiscellanousDesc=Määritä tässä kaikki muut parametrit, jotka liittyvät turvallisuuteen. +MiscellaneousDesc=Määritä tässä kaikki muut parametrit, jotka liittyvät turvallisuuteen. LimitsSetup=Rajat / Precision setup LimitsDesc=Voit määrittää rajat, täsmennyksiä ja optimisations käyttää Dolibarr tästä MAIN_MAX_DECIMALS_UNIT=Max desimaalitarkkuuksia yksikkökohtaiseen hinnat @@ -1273,7 +1269,7 @@ SendmailOptionNotComplete=Varoitus, joissakin Linux-järjestelmissä, lähettä SendmailOptionMayHurtBuggedMTA=Ominaisuus lähettää sähköpostiviestejä käyttäen menetelmää "PHP mail suoraan" luo sähköpostiviestin, joka saattaa olla oikein jäsentää jotkut saavat sähköpostipalvelimia. Tulos on, että jotkut sähköpostit eivät voi lukea ihmisten isännöi thoose salakuunnella alustoilla. On kyse jostain Internet-palveluntarjoajien (Ex: Orange Ranskassa). Tämä ei ole ongelma tulee Dolibarr eikä osaksi PHP vaan päälle saa sähköpostipalvelimelle. Voit kuitenkin lisätä vaihtoehto MAIN_FIX_FOR_BUGGED_MTA 1 tulee setup - muuta muuttaa Dolibarr välttää. Kuitenkin saattaa ilmetä ongelmia muiden palvelimien mielessä tiukasti SMTP-standardin. Muut liuosta (Suositeltu) on käyttää menetelmää "SMTP liittimeen kirjasto", joka ei ole haittaa. CompanyIdProfChecker=Ammatillinen tunnus ainutlaatuinen MustBeUnique=Täytyy olla ainutlaatuinen? -Miscellanous=Muut +Miscellaneous=Muut ContractsSetup=Sopimukset moduuli setup ContractsNumberingModules=Sopimukset numerointi moduulit AdherentLoginRequired=Hallitse Sisään jokaiselle jäsenelle diff --git a/htdocs/langs/fi_FI/bills.lang b/htdocs/langs/fi_FI/bills.lang index 9c383ea1fde..c56954a7b96 100644 --- a/htdocs/langs/fi_FI/bills.lang +++ b/htdocs/langs/fi_FI/bills.lang @@ -431,6 +431,6 @@ EditGlobalDiscounts=Muokkaa absoluuttinen alennukset AddCreditNote=Luo hyvityslasku InvoiceNotChecked=Ei laskun valittu ShowUnpaidAll=Näytä kaikki maksamattomat laskut -ClosePaidInvoicesAutomatically=Luokittele "maksanut" kaikki vakio-tai korvaavan laskuja entierely maksanut. +ClosePaidInvoicesAutomatically=Luokittele "maksanut" kaikki vakio-tai korvaavan laskuja entirely maksanut. AllCompletelyPayedInvoiceWillBeClosed=Kaikki lasku ilman jää maksaa automaattisesti suljettu tila "maksanut". // STOP - Lines generated via autotranslator.php tool (2012-02-29 16:11:08). diff --git a/htdocs/langs/fi_FI/install.lang b/htdocs/langs/fi_FI/install.lang index 81448a6ab86..a8710768ef1 100644 --- a/htdocs/langs/fi_FI/install.lang +++ b/htdocs/langs/fi_FI/install.lang @@ -10,7 +10,7 @@ // Reference language: en_US CHARSET=UTF-8 InstallEasy=Me yritimme tehdä Dolibarr setup mahdollisimman helppoa. Seuraa ohjeita vaihe vaiheelta. -MiscellanousChecks=Esitiedot tarkistaa +MiscellaneousChecks=Esitiedot tarkistaa DolibarrWelcome=Tervetuloa Dolibarr ConfFileExists=Configuration file %s on olemassa. ConfFileDoesNotExists=Configuration file %s ei ole olemassa! diff --git a/htdocs/langs/fi_FI/members.lang b/htdocs/langs/fi_FI/members.lang index b4c5c52f2d4..cad773224bc 100644 --- a/htdocs/langs/fi_FI/members.lang +++ b/htdocs/langs/fi_FI/members.lang @@ -159,7 +159,7 @@ MemberId=Jäsen id PaymentSubscription=Uusi osuus maksu NoThirdPartyAssociatedToMember=Kolmansista osapuolista ei näihin jäsen ThirdPartyDolibarr=Dolibarr kolmannen osapuolen -MembersAndSubscriptions=Jäsenet ja Suscriptions +MembersAndSubscriptions=Jäsenet ja Subscriptions // STOP - Lines generated via autotranslator.php tool (2009-08-13 20:45:19). diff --git a/htdocs/langs/fi_FI/other.lang b/htdocs/langs/fi_FI/other.lang index dd4dec72aac..f81601b4032 100644 --- a/htdocs/langs/fi_FI/other.lang +++ b/htdocs/langs/fi_FI/other.lang @@ -23,7 +23,7 @@ TotalSizeOfAttachedFiles=Kokonaiskoosta liitettyjen tiedostojen / asiakirjat MaxSize=Enimmäiskoko AttachANewFile=Liitä uusi tiedosto / asiakirjan LinkedObject=Linkitettyä objektia -Miscellanous=Miscellaneous +Miscellaneous=Miscellaneous NbOfActiveNotifications=Ilmoitusten lukumäärä ChooseYourDemoProfil=Valitse demo profil jotka vastaavat aktiviisuutesi ... DemoCompanyShopWithCashDesk=Hallinnoi liikkeen kanssa kassa @@ -173,7 +173,7 @@ ExternalSites=Ulkoiset sivustot // START - Lines generated via autotranslator.php tool (2010-09-04 01:33:40). // Reference language: en_US -> fi_FI -PredefinedMailContentSendSupplierOrder=Löydät tästä meidän järjestys __ORDERREF__ \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ +PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__ \n\n Löydät tästä meidän järjestys __ORDERREF__ \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ WeightUnitpound=punta VolumeUnitounce=unssi VolumeUnitlitre=litra @@ -224,13 +224,13 @@ Notify_BILL_SENTBYMAIL=Asiakkaan lasku lähetetään postitse Notify_MEMBER_SUBSCRIPTION=Jäsen merkitty Notify_MEMBER_RESILIATE=Jäsen resiliated Notify_MEMBER_DELETE=Jäsen poistettu -PredefinedMailContentSendInvoice=Löydät täältä laskun __ FACREF__ \n\n__PERSONALIZED__ Sincerely \n\n__SIGNATURE__ -PredefinedMailContentSendInvoiceReminder=Haluamme varoittaa, että lasku __ FACREF__ näyttää ei maksanut. Joten tämä on laskun liitetiedostona uudelleen, kuten muistutuksen. \n\n__PERSONALIZED__ Vilpittömästi \n\n__SIGNATURE__ -PredefinedMailContentSendProposal=Löydät täältä kaupallinen propoal __ PROPREF__ \n\n__PERSONALIZED__ Sincerely \n\n__SIGNATURE__ -PredefinedMailContentSendOrder=Löydät täältä järjestyksessä __ ORDERREF__ \n\n__PERSONALIZED__ Sincerely \n\n__SIGNATURE__ -PredefinedMailContentSendSupplierInvoice=Löydät täältä laskun __ FACREF__ \n\n__PERSONALIZED__ Sincerely \n\n__SIGNATURE__ -PredefinedMailContentSendShipping=Löydät täältä merenkulku __ SHIPPINGREF__ \n\n__PERSONALIZED__ Sincerely \n\n__SIGNATURE__ -PredefinedMailContentSendFichInter=Löydät täältä intervention __ FICHINTERREF__ \n\n__PERSONALIZED__ Sincerely \n\n__SIGNATURE__ +PredefinedMailContentSendInvoice=__CONTACTCIVNAME__ \n\n Löydät täältä laskun __ FACREF__ \n\n__PERSONALIZED__ Sincerely \n\n__SIGNATURE__ +PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__ \n\n Haluamme varoittaa, että lasku __ FACREF__ näyttää ei maksanut. Joten tämä on laskun liitetiedostona uudelleen, kuten muistutuksen. \n\n__PERSONALIZED__ Vilpittömästi \n\n__SIGNATURE__ +PredefinedMailContentSendProposal=__CONTACTCIVNAME__ \n\n Löydät täältä kaupallinen propoal __ PROPREF__ \n\n__PERSONALIZED__ Sincerely \n\n__SIGNATURE__ +PredefinedMailContentSendOrder=__CONTACTCIVNAME__ \n\n Löydät täältä järjestyksessä __ ORDERREF__ \n\n__PERSONALIZED__ Sincerely \n\n__SIGNATURE__ +PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__ \n\n Löydät täältä laskun __ FACREF__ \n\n__PERSONALIZED__ Sincerely \n\n__SIGNATURE__ +PredefinedMailContentSendShipping=__CONTACTCIVNAME__ \n\n Löydät täältä merenkulku __ SHIPPINGREF__ \n\n__PERSONALIZED__ Sincerely \n\n__SIGNATURE__ +PredefinedMailContentSendFichInter=__CONTACTCIVNAME__ \n\n Löydät täältä intervention __ FICHINTERREF__ \n\n__PERSONALIZED__ Sincerely \n\n__SIGNATURE__ StartUpload=Aloita lataaminen CancelUpload=Peruuta Lähetä FileIsTooBig=Files on liian suuri diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang index d71f04ac698..e688d9eab8c 100644 --- a/htdocs/langs/fr_FR/admin.lang +++ b/htdocs/langs/fr_FR/admin.lang @@ -25,7 +25,7 @@ HTMLCharset= Charset des pages HTML générées DBStoringCharset= Charset base pour stockage données DBSortingCharset= Charset base pour tri données WarningModuleNotActive= Module %s non actif -WarningOnlyPermissionOfActivatedModules= Attention, seules les permissions en rapport avec les modules activés sont affichées ici. Vous pouvez activer les autres modules sur la page Accueil->Configuration->Modules +WarningOnlyPermissionOfActivatedModules= Attention, seules les permissions en rapport avec les modules activés sont affichées ici. Vous pouvez activer d'autres modules sur la page Accueil->Configuration->Modules DolibarrSetup= Installation ou mise à jour de Dolibarr DolibarrUser= Utilisateur Dolibarr InternalUser= Utilisateur interne @@ -354,6 +354,7 @@ ExtrafieldPhone = Téléphone ExtrafieldPrice = Prix ExtrafieldMail = Email ExtrafieldSelect = Liste de sélection +ExtrafieldSeparator = Séparateur de champ LibraryToBuildPDF=Bibliothèque utilisée pour la génération des PDF WarningUsingFPDF=Attention: Votre fichier conf.php contient la directive dolibarr_pdf_force_fpdf=1. Cela signifie que vous utilisez la librairie FPDF pour générer vos fichiers PDF. Cette librairie est ancienne et ne couvre pas de nombreuses fonctionnalitée (Unicode, transparence des images, langues cyrillic, arabes ou asiatiques...), aussi vous pouvez rencontrez des problèmes durant la génération des PDF.
Pour résoudre cela et avoir un support complet de PDF, vous pouvez télécharger la librairie TCPDF puis commenter ou supprimer la ligne $dolibarr_pdf_force_fpdf=1, et ajouter à la place $dolibarr_lib_TCPDF_PATH='chemin_vers_TCPDF' LocalTaxDesc=Certains pays appliquent 2 voir 3 taux sur chaque ligne de facture. Si c'est le cas, choisissez le type du deuxième et troisième taux et sa valeur. Les types possibles sont:
1 : taxe locale sur les produits et services hors tva (la tva n'est pas appliquée sur la taxe locale)
2 : taxe locale sur les produits et services avant tva (la tva est appliquée sur le montant + la taxe locale)
3 : taxe locale uniquement sur les produits hors tva (la tva n'est pas appliquée sur la taxe locale)
4 : taxe locale uniquement sur les produits avant tva (la tva est appliquée sur le montant + la taxe locale)
5 : taxe locale uniquement sur les services hors tva (la tva n'est pas appliquée sur la taxe locale)
6 : taxe locale uniquement sur les service avant tva (la tva est appliquée sur le montant + la taxe locale) @@ -367,7 +368,7 @@ Module1Desc= Gestion des tiers (sociétés, particuliers) et contacts Module2Name= Commercial Module2Desc= Gestion commerciale Module10Name= Comptabilité -Module10Desc= Gestion simpliste de comptabilité (ventilation de factures et paiements uniquement) +Module10Desc= Activation de rapports simplistes de comptabilité (ca, journaux) basé sur la base. Pas de ventilation. Module20Name= Propositions commerciales Module20Desc= Gestion des devis/propositions commerciales Module22Name= EMailings @@ -452,10 +453,8 @@ Module1780Name= Catégories Module1780Desc= Gestion des catégories (produits, fournisseurs, clients et adhérents) Module2000Name= Editeur WYSIWYG Module2000Desc= Permet la saisie de certaines zones de textes grace à un éditeur avancé -Module2200Name= Droit de prêts -Module2200Desc= Gestion du droit de prêts -Module2300Name= Menus -Module2300Desc= Administration des menus par base de données +Module2300Name= Cron +Module2300Desc= Gestionnaire de taches programmées Module2400Name= Agenda Module2400Desc= Gestion des actions (événements et tâches) et de l'agenda Module2500Name= Gestion Electronique de Documents @@ -679,6 +678,10 @@ Permission1411= Lire les mouvements comptables Permission1412= Créer/modifier/annuler les mouvements comptables Permission1415= Lire CA, bilans, résultats, journaux, grands livres Permission1421= Exporter les commandes clients et attributs +Permission23001 = Voir les taches planifiée +Permission23002 = Créer/Modifier les taches planifiée +Permission23003 = Supprimer les taches planifiée +Permission23004 = Executer les taches planifiée Permission2401= Lire les actions (événements ou tâches) liées à son compte Permission2402= Créer/modifier les actions (événements ou tâches) liées à son compte Permission2403= Supprimer les actions (événements ou tâches) liées à son compte @@ -888,7 +891,7 @@ GeneratedPasswordDesc= Definissez ici quelle règle vous voulez utiliser pour g DictionnaryDesc= Définissez ici les données de référence. Vous pouvez compléter/modifier les données prédéfinies avec les vôtres. ConstDesc= Cet écran permet d'éditer tout autre paramètre non éditable dans les pages précédentes. Ce sont en général des paramètres réservés aux développeurs avancés ou utilisés pour du dépannage. OnceSetupFinishedCreateUsers= Attention, vous êtes sous un compte administrateur de Dolibarr. Les administrateurs sont utilisés pour configurer Dolibarr. Pour une utilisation courante de Dolibarr, il est recommandé d'utiliser un compte non administrateur créé depuis le menu "Utilisateurs & Groupes". -MiscellanousDesc= Définissez ici les autres paramètres en rapport avec la sécurité. +MiscellaneousDesc= Définissez ici les autres paramètres en rapport avec la sécurité. LimitsSetup= Configuration des limites et précisions LimitsDesc= Vous pouvez définir ici les limites, précisions et optimisations utilisées par Dolibarr MAIN_MAX_DECIMALS_UNIT= Nombre de décimales maximum pour les prix unitaires @@ -981,7 +984,7 @@ CompanyIdProfChecker=Règles sur les Ids professionnels MustBeUnique=Doit être unique ? MustBeMandatory=Doit être obligatoire pour creer tiers ? MustBeInvoiceMandatory=Doit être obligatoire pour valider factures ? -Miscellanous=Divers +Miscellaneous=Divers ##### Webcal setup ##### WebCalSetup= Configuration du lien vers le calendrier Webcalendar WebCalSyncro= Intégrer les événements Dolibarr dans WebCalendar @@ -1276,7 +1279,9 @@ ActivateFCKeditor= Activer éditeur avancé pour : FCKeditorForCompany= Création/édition WYSIWIG de la description et note des éléments (autre que produits/services) FCKeditorForProduct= Création/édition WYSIWIG de la description et note des produits/services FCKeditorForProductDetails= Création/édition WYSIWIG des lignes détails produits (sur commandes, propales, factures, etc...). Attention: L'utilisation pour ce cas est fortement déconseillée car peut poser des problèmes dans la gestion de caractères et mise en page des fichiers PDF générés. -FCKeditorForMailing= Création/édition WYSIWIG des mailings +FCKeditorForMailing= Création/édition WYSIWIG des mailings (Outils->EMailings) +FCKeditorForUserSignature=Création/édition WYSIWIG de la signature des utilisateurs +FCKeditorForMail=Création/édition WYSIWIG tous les mails (sauf Outils->EMailings) ##### OSCommerce 1 ##### OSCommerceErrorConnectOkButWrongDatabase= La connexion a réussi mais la base ne semble pas être une base OSCommerce (clé %s non trouvée dans la table %s). OSCommerceTestOk= La connexion au serveur '%s' sur la base '%s' par l'utilisateur '%s' a réussi. @@ -1351,7 +1356,7 @@ AccountancyCodeBuy=Code compta achat AgendaSetup= Configuration du module actions et agenda PasswordTogetVCalExport= Clé pour autoriser lien export PastDelayVCalExport=Ne pas exporter les événements de plus de -AGENDA_USE_EVENT_TYPE=Utilisez les type des évenements (administrable dans Configuration->Dictionnary->llx_c_actioncomm) +AGENDA_USE_EVENT_TYPE=Utilisez les types des évenements (administrable dans Configuration -> Dictionnaires -> Liste des types d'évenements de l'agenda) ##### ClickToDial ##### ClickToDialDesc= Ce module permet d'ajouter un petit picto à côté des numéros de téléphones. Un clic sur ce picto provoque l'appel de l'URL définie dans ce paramétrage. Ceci permet de provoquer des appels à un serveur de téléphonie depuis Dolibarr qui peut alors composer le numéro sur un système SIP par exemple. ##### Point Of Sales (CashDesk) ##### @@ -1385,6 +1390,7 @@ MultiCompanySetup=Configuration du module Multi-société SuppliersSetup=Configuration du module Fournisseurs SuppliersCommandModel=Modèle de commandes fournisseur complet (logo...) SuppliersInvoiceModel=Modèle de factures fournisseur complet (logo...) +SuppliersInvoiceNumberingModel=Modèles de numérotation des factures fournisseur ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=Configuration du module GeoIP Maxmind PathToGeoIPMaxmindCountryDataFile=Chemin du fichier Maxmind contenant les conversions IP->Pays.
Exemple: /usr/local/share/GeoIP/GeoIP.dat diff --git a/htdocs/langs/fr_FR/bills.lang b/htdocs/langs/fr_FR/bills.lang index 237dcedda8b..e5955167dd8 100644 --- a/htdocs/langs/fr_FR/bills.lang +++ b/htdocs/langs/fr_FR/bills.lang @@ -386,6 +386,8 @@ ClosePaidCreditNotesAutomatically=Classer automatiquement à "Payé" les facture AllCompletelyPayedInvoiceWillBeClosed=Toutes les factures avec un reste à payer nul seront automatiquement fermées au statut "Payé". ToMakePayment=Payer ToMakePaymentBack=Rembourser +ListOfYourUnpaidInvoices=Liste des factures impayées +RevenueStamp=Timbre fiscal ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Responsable suivi facture client TypeContact_facture_external_BILLING=Contact client facturation diff --git a/htdocs/langs/fr_FR/commissions.lang b/htdocs/langs/fr_FR/commissions.lang deleted file mode 100644 index 5fb83f32320..00000000000 --- a/htdocs/langs/fr_FR/commissions.lang +++ /dev/null @@ -1,44 +0,0 @@ -# Dolibarr language file - fr_FR - commissions -CHARSET=UTF-8 - -Module60000Desc=Gestion des commissions -commissionsSetup=Paramétrage de la gestion des commissions - -ProductCommissionRate=Taux de commissionnement sur les produits -ServiceCommissionRate=Taux de commissionnement sur les services - -ProductCommissionRateDetails=Taux utilisé pour calculer les commissions sur les ventes de produits -ServiceCommissionRateDetails=Taux utilisé pour calculer les commissions sur les ventes de services - -Commissions=Commissions -CommissionDetails=Détail des commissions - -IncludeUnpayedInvoices=Inclure les factures non réglées -TotalCommission=Total des commissions - -ProductMargin=Marge / produits -ServiceMargin=Marge / services - -CommissionRate=Taux de commissionnement - -ProductCommission=Commission / produits -ServiceCommission=Commission / services - -CommissionBase=Base de calcul des commissions -CommissionBasedOnTurnover=Commissions calculées sur le CA -CommissionBasedOnMargins=Commissions calculées sur les marges -CommissionBaseDetails=Définit le mode de calcul des commissions -CommissionBasedOnMarginsDetails=Le calcul basé sur les marges nécessite l'activation du module marges. - -TurnoverTotal = Chiffre d'affaire réalisé HT -ProductTurnover=CA HT / produits -ServiceTurnover=CA HT / services - -CommercialAgent=Agent commercial - -StartDate=Date de début -EndDate=Date de fin -Launch=Démarrer - -AgentContactType=Type de contact commissionné -AgentContactTypeDetails=Permet de définir le type de contact associé aux factures qui sera associé aux agents commerciaux \ No newline at end of file diff --git a/htdocs/langs/fr_FR/companies.lang b/htdocs/langs/fr_FR/companies.lang index 254d1e8af16..99612d8ec2d 100644 --- a/htdocs/langs/fr_FR/companies.lang +++ b/htdocs/langs/fr_FR/companies.lang @@ -394,6 +394,7 @@ UniqueThirdParties=Total de tiers uniques InActivity=En activité ActivityCeased=Clos ActivityStateFilter=Statut d'activité +ProductsIntoElements=Liste des produits dans les %s # Monkey MonkeyNumRefModelDesc=Renvoie le numéro sous la forme %syymm-nnnn pour les codes clients et %syymm-nnnn pour les codes fournisseurs où yy est l'année, mm le mois et nnnn un compteur séquentiel sans rupture et sans remise à 0. diff --git a/htdocs/langs/fr_FR/compta.lang b/htdocs/langs/fr_FR/compta.lang index 01ba085620b..12ea0024f63 100644 --- a/htdocs/langs/fr_FR/compta.lang +++ b/htdocs/langs/fr_FR/compta.lang @@ -161,3 +161,5 @@ DatePaymentTermCantBeLowerThanObjectDate=La date limite de règlement ne peut ê Pcg_version=Version du plan Pcg_type=Classe de compte Pcg_subtype=Sous classe de compte +InvoiceLinesToDispatch=Lignes de factures à ventiler +InvoiceDispatched=Factures ventilées \ No newline at end of file diff --git a/htdocs/langs/fr_FR/cron.lang b/htdocs/langs/fr_FR/cron.lang new file mode 100644 index 00000000000..b5fa47b336a --- /dev/null +++ b/htdocs/langs/fr_FR/cron.lang @@ -0,0 +1,93 @@ +# Dolibarr language file - fr_FR - cron +CHARSET=UTF-8 + +# +# Admin +# +CronSetup = Page de configuration du module - Gestion de tâches planifiées +URLToLaunchCronJobs=URL pour lancer les taches automatiques +OrToLaunchASpecificJob=Ou pour lancer une tache spécifique +KeyForCronAccess=Clé de sécurité pour l'URL de lancement des taches automatiques +FileToLaunchCronJobs=Commande pour lancer les taches automatiques +CronExplainHowToRunUnix=Sur un environement Unix vous pouvez paramétrer CronTab pour executer cette commande toute les minutes. +CronExplainHowToRunWin=Sur un environement Microsoft(tm) Windows vous pouvez utiliser le planificateur de tache pour lancer cette commande toute les minutes. + +# +# Menu +# +CronListActive= Liste des tâches planifiées active +CronListInactive= Liste des tâches planifiées inactive + + +# +# Page list +# +CronDateLastRun=Dernier lancement +CronLastOutput=Dernière sortie +CronLastResult=Dernier code retour +CronCommand=Commande +CronList= Liste des tâches planifiées +CronDelete= Supprimer la tâche planifiée +CronConfirmDelete= Êtes-vous sûr de vouloir supprimer cette tâche planifiée ? +CronExecute=Exécuter cette tâche +CronConfirmExecute= Êtes-vous sûr de vouloir exécuter cette tâche maintenant? +CronInfo= Les jobs permettent d'exécuter des tâches à intervales réguliers +CronWaitingJobs= Vos jobs en attente: +CronTask= Tâche +CronNone=Aucun(e) +CronDtStart=Date début +CronDtEnd=Date fin +CronDtNextLaunch=Prochaine éxécution +CronDtLastLaunch=Dernière éxécution +CronFrequency=Fréquence +CronClass=Classes +CronMethod=Méthode +CronModule=Module +CronAction=Action +CronStatus=Status +CronStatusActive=Active +CronStatusInactive=Inactive +CronEach=Tou(te)s +CronNoJobs= Aucun jobs actuellement +CronPriority=Priorité +CronLabel=Description +CronNbRun=Nb. exec. +CronDtLastResult=Date du derniétre resulat de la dernière éxécution + +# +#Page card +# +CronAdd= Ajoutez une tâche +CronHourStart= Jour et Heure de début de la tâche +CronEvery= Puis execution toutes les +CronObject= Instance/Objet à créer +CronArgs= Argument +CronSaveSucess=Enregistrement effectué +CronNote=Note +CronFieldMandatory=Le champ %s est obligatoire +CronErrEndDateStartDt=La date de fin ne peux être avant la date de début +CronStatusActiveBtn=Activer +CronStatusInactiveBtn=Désactiver +CronTaskInactive=Cette tâche est désactivée +CronId=Id +CronClassFile=Classes (fichier) +CronModuleHelp=Nom du repertoire du module dolibarr (fonctionne automatiquement avec les modules externe Dolibarr).
Par exemple pour appeler la mèthode fetch de l'object Product de Dolibarr /htdocs/product/class/product.class.php, la valeur de module est product +CronClassFileHelp=Le fichier qui contient l'objet .
Par exemple pour appeler la mèthode fetch de l'object Product de Dolibarr /htdocs/product/class/product.class.php, la valeur de classe est product.class.php +CronObjectHelp=Le nom de l'object a crée.
Par exemple pour appeler la mèthode fetch de l'object Product de Dolibarr /htdocs/product/class/product.class.php, la valeur de objet est Product +CronMethodHelp=La mèthode a lancer.
Par exemple pour appeler la mèthode fetch de l'object Product de Dolibarr /htdocs/product/class/product.class.php, la valeur de mèthode est fecth +CronArgsHelp=Les arguments de la mèthode.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, la valeur de paramétre pourrait être 0, RefProduit +CronCommandHelp=La commande système a éxecuter + +# +# Info +# +CronInfoPage=Suivie + +# +# Common +# +CronType=Type d'action a executer +CronType_method=Méthode d'une classe d'un module Dolibarr +CronType_command=Commande Shell +CronMenu=Cron +CronCannotLoadClass=impossible de charger la classe %s ou l'object %s \ No newline at end of file diff --git a/htdocs/langs/fr_FR/ecm.lang b/htdocs/langs/fr_FR/ecm.lang index 39adce0e0ed..4ec71f27911 100644 --- a/htdocs/langs/fr_FR/ecm.lang +++ b/htdocs/langs/fr_FR/ecm.lang @@ -43,6 +43,7 @@ ECMDocsByOrders=Documents associés aux commandes ECMDocsByContracts=Documents associés aux contrats ECMDocsByInvoices=Documents associés aux factures ECMDocsByProducts=Documents associés aux produits +ECMDocsByProjects=Documents associés aux projets ECMNoDirectoryYet=Aucun répertoire créé ShowECMSection=Afficher répertoire DeleteSection=Suppression répertoire diff --git a/htdocs/langs/fr_FR/install.lang b/htdocs/langs/fr_FR/install.lang index 5a34feaf94e..bca39cf1bae 100644 --- a/htdocs/langs/fr_FR/install.lang +++ b/htdocs/langs/fr_FR/install.lang @@ -1,7 +1,7 @@ # Dolibarr language file - fr_FR - install CHARSET=UTF-8 InstallEasy=Veuillez suivre les étapes une à une. -MiscellanousChecks=Vérification de prérequis +MiscellaneousChecks=Vérification de prérequis DolibarrWelcome=Bienvenue sur Dolibarr ConfFileExists=Le fichier de configuration %s existe. ConfFileDoesNotExists=Le fichier de configuration %s n'existe pas ! diff --git a/htdocs/langs/fr_FR/main.lang b/htdocs/langs/fr_FR/main.lang index a7093fd8b75..b31b711f3a3 100644 --- a/htdocs/langs/fr_FR/main.lang +++ b/htdocs/langs/fr_FR/main.lang @@ -490,7 +490,7 @@ NbOfCustomers=Nombre de clients NbOfLines=Nombre de lignes NbOfObjects=Nombre d'objets NbOfReferers=Nombre de références -Referers=Référents +Referers=Consommation TotalQuantity=Quantité totale DateFromTo=Du %s au %s DateFrom=A partir du %s diff --git a/htdocs/langs/fr_FR/orders.lang b/htdocs/langs/fr_FR/orders.lang index 1866ecbdcfb..045b6223038 100644 --- a/htdocs/langs/fr_FR/orders.lang +++ b/htdocs/langs/fr_FR/orders.lang @@ -85,7 +85,7 @@ NumberOfOrdersByMonth=Nombre de commandes par mois AmountOfOrdersByMonthHT=Montant total de commandes par mois (HT) ListOfOrders=Liste des commandes CloseOrder=Clôturer commande -ConfirmCloseOrder=Êtes-vous sûr de vouloir clôturer cette commande ? Une fois une commande clôturée, elle peut être facturée. +ConfirmCloseOrder=Êtes-vous sûr de vouloir classer cette commande à Délivrée ? Une fois une commande délivrée, elle peut aussi être passée à facturée. ConfirmCloseOrderIfSending=Êtes-vous sûr de vouloir clôturer cette commande ? Vous ne devez clôturer une commande qu'une fois les produits expédiés. ConfirmDeleteOrder=Êtes-vous sûr de vouloir effacer cette commande ? ConfirmValidateOrder=Êtes-vous sûr de vouloir valider cette commande sous la référence %s ? diff --git a/htdocs/langs/fr_FR/other.lang b/htdocs/langs/fr_FR/other.lang index ed49d874b11..e448feaa3b4 100644 --- a/htdocs/langs/fr_FR/other.lang +++ b/htdocs/langs/fr_FR/other.lang @@ -44,18 +44,18 @@ TotalSizeOfAttachedFiles=Taille total fichiers/documents liés MaxSize=Taille maximum AttachANewFile=Ajouter un nouveau fichier/document LinkedObject=Objet lié -Miscellanous=Divers +Miscellaneous=Divers NbOfActiveNotifications=Nombre de notifications PredefinedMailTest=Ceci est un mail de test.\nLes 2 lignes sont séparées par un retour à la ligne.\n\n__SIGNATURE__ PredefinedMailTestHtml=Ceci est un mail de test (le mot test doit être en gras).
Les 2 lignes sont séparées par un retour à la ligne.

__SIGNATURE__ -PredefinedMailContentSendInvoice=Veuillez trouver ci-joint la facture __FACREF__\n\n__PERSONALIZED__Cordialement\n\n__SIGNATURE__ -PredefinedMailContentSendInvoiceReminder=Nous apportons à votre connaissance que la facture __FACREF__ ne semble pas avoir été réglée. La voici donc, pour rappel, en pièce jointe.\n\n__PERSONALIZED__Cordialement\n\n__SIGNATURE__ -PredefinedMailContentSendProposal=Veuillez trouver ci-joint la proposition commerciale __PROPREF__\n\n__PERSONALIZED__Cordialement\n\n__SIGNATURE__ -PredefinedMailContentSendOrder=Veuillez trouver ci-joint la commande __ORDERREF__\n\n__PERSONALIZED__Cordialement\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierOrder=Veuillez trouver ci-joint notre commande __ORDERREF__\n\n__PERSONALIZED__Cordialement\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierInvoice=Veuillez trouver ci-joint la facture __FACREF__\n\n__PERSONALIZED__Cordialement\n\n__SIGNATURE__ -PredefinedMailContentSendShipping=Veuillez trouver ci-joint le bon d'expédition __SHIPPINGREF__\n\n__PERSONALIZED__Cordialement\n\n__SIGNATURE__ -PredefinedMailContentSendFichInter=Veuillez trouver ci-joint la fiche d'intervention __FICHINTERREF__\n\n__PERSONALIZED__Cordialement\n\n__SIGNATURE__ +PredefinedMailContentSendInvoice=__CONTACTCIVNAME__ \n\n Veuillez trouver ci-joint la facture __FACREF__\n\n__PERSONALIZED__Cordialement\n\n__SIGNATURE__ +PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__ \n\n Nous apportons à votre connaissance que la facture __FACREF__ ne semble pas avoir été réglée. La voici donc, pour rappel, en pièce jointe.\n\n__PERSONALIZED__Cordialement\n\n__SIGNATURE__ +PredefinedMailContentSendProposal=__CONTACTCIVNAME__ \n\n Veuillez trouver ci-joint la proposition commerciale __PROPREF__\n\n__PERSONALIZED__Cordialement\n\n__SIGNATURE__ +PredefinedMailContentSendOrder=__CONTACTCIVNAME__ \n\n Veuillez trouver ci-joint la commande __ORDERREF__\n\n__PERSONALIZED__Cordialement\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__ \n\n Veuillez trouver ci-joint notre commande __ORDERREF__\n\n__PERSONALIZED__Cordialement\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__ \n\n Veuillez trouver ci-joint la facture __FACREF__\n\n__PERSONALIZED__Cordialement\n\n__SIGNATURE__ +PredefinedMailContentSendShipping=__CONTACTCIVNAME__ \n\n Veuillez trouver ci-joint le bon d'expédition __SHIPPINGREF__\n\n__PERSONALIZED__Cordialement\n\n__SIGNATURE__ +PredefinedMailContentSendFichInter=__CONTACTCIVNAME__ \n\n Veuillez trouver ci-joint la fiche d'intervention __FICHINTERREF__\n\n__PERSONALIZED__Cordialement\n\n__SIGNATURE__ DemoDesc=Dolibarr est un logiciel de gestion d'activité (professionnelle ou associative) composé de modules fonctionnels indépendants et optionnels. Une démonstration qui inclut tous ces modules n'a pas de sens car les modules ne sont jamais tous utilisés en même temps. Aussi, plusieurs profils type de démo sont disponibles. ChooseYourDemoProfil=Veuillez choisir le profil de démo qui correspond le mieux à votre activité... DemoFundation=Gestion des adhérents d'une association diff --git a/htdocs/langs/fr_FR/sendings.lang b/htdocs/langs/fr_FR/sendings.lang index a80b61649da..1df80a252e1 100644 --- a/htdocs/langs/fr_FR/sendings.lang +++ b/htdocs/langs/fr_FR/sendings.lang @@ -59,6 +59,7 @@ LinkToTrackYourPackage=Lien pour suivi de votre colis ShipmentCreationIsDoneFromOrder=Pour le moment, la création d'une nouvelle expédition se fait depuis la fiche commande. RelatedShippings=Expédition(s) associée(s) ShipmentLine=Ligne d'expédition +CarrierList=Liste des transporteurs # Sending methods SendingMethodCATCH=Enlèvement par le client diff --git a/htdocs/langs/he_IL/admin.lang b/htdocs/langs/he_IL/admin.lang index 2d262771b7e..aa1b8cd5a70 100644 --- a/htdocs/langs/he_IL/admin.lang +++ b/htdocs/langs/he_IL/admin.lang @@ -259,7 +259,7 @@ ModuleFamilyProducts=מוצרי ניהול ModuleFamilyHr=ניהול משאבי אנוש ModuleFamilyProjects=פרויקטים / עבודה שיתופית ModuleFamilyOther=אחר -ModuleFamilyTechnic=Mutli מודולים כלים +ModuleFamilyTechnic=Multi מודולים כלים ModuleFamilyExperimental=הניסוי מודולים ModuleFamilyFinancial=מודולים פיננסיים (חשבונאות / משרד האוצר) ModuleFamilyECM=ניהול תוכן אלקטרוני (ECM) @@ -418,10 +418,6 @@ Module1780Name=קטגוריות Module1780Desc=Categorie ההנהלה (מוצרים, ספקים ולקוחות) Module2000Name=עורך WYSIWYG Module2000Desc=אפשר לערוך כמה אזור הטקסט באמצעות עורך מתקדם -Module2200Name=ההלוואות זכויות -Module2200Desc=זכויות ההלוואות וניהול -Module2300Name=תפריטים -Module2300Desc=תפריט של ההנהלה Module2400Name=סדר היום Module2400Desc=אירועים / משימות וניהול סדר היום Module2500Name=תוכן אלקטרוני ניהול @@ -815,7 +811,7 @@ GeneratedPasswordDesc=להגדיר כאן כלל שבו ברצונך להשתמ DictionnaryDesc=להגדיר כאן את כל datas הפניה. אתה יכול להשלים ערך מוגדר מראש עם שלך. ConstDesc=דף זה מאפשר לך לערוך את כל הפרמטרים האחרים לא זמין בעמודים הקודמים. הם שמורים הפרמטרים למפתחים מתקדמים או troubleshouting. OnceSetupFinishedCreateUsers=אזהרה, אתה משתמש שמנהל Dolibarr. מנהל משתמשים רגילים להגדיר Dolibarr. לשימוש הרגיל של Dolibarr, מומלץ להשתמש משתמש של מנהל מערכת לא נוצר משתמשים & תפריט קבוצות. -MiscellanousDesc=להגדיר כאן את כל הפרמטרים האחרים הקשורים לביטחון. +MiscellaneousDesc=להגדיר כאן את כל הפרמטרים האחרים הקשורים לביטחון. LimitsSetup=גבולות / הגדרת Precision LimitsDesc=ניתן להגדיר גבולות, precisions ו optimisations המשמשים Dolibarr כאן MAIN_MAX_DECIMALS_UNIT=מקס שברים עשרוניים עבור מחירי יחידה @@ -891,7 +887,7 @@ DocumentModelOdt=צור מסמכים מתבניות OpenDocuments (. ODT קבצ WatermarkOnDraft=סימן מים על מסמך טיוטה CompanyIdProfChecker=Professional מזהה ייחודי MustBeUnique=חייב להיות ייחודי? -Miscellanous=שונות +Miscellaneous=שונות WebCalSetup=קישור לוח השנה ההתקנה WebCalSyncro=הוסף אירוע Dolibarr אל לוח השנה WebCalAllways=תמיד, לא לשאול diff --git a/htdocs/langs/he_IL/bills.lang b/htdocs/langs/he_IL/bills.lang index d0c5cb1044c..a16a4c45547 100644 --- a/htdocs/langs/he_IL/bills.lang +++ b/htdocs/langs/he_IL/bills.lang @@ -374,7 +374,7 @@ DisabledBecausePayments=לא ניתן שכן אין תשלומים מסוימי CantRemovePaymentWithOneInvoicePaid=לא ניתן להסיר תשלום מאז יש לפחות חשבונית אחת מסווגים שילם ExpectedToPay=צפוי התשלום PayedByThisPayment=שילם על ידי תשלום זה -ClosePaidInvoicesAutomatically=לסווג "שילם" את כל תקן או חשבוניות החלפת שילם entierely. +ClosePaidInvoicesAutomatically=לסווג "שילם" את כל תקן או חשבוניות החלפת שילם entirely. AllCompletelyPayedInvoiceWillBeClosed=כל חשבונית ללא להישאר לשלם ייסגר באופן אוטומטי למצב "שילם". TypeContact_facture_internal_SALESREPFOLL=לקוחות נציג הבאה למעלה החשבונית TypeContact_facture_external_BILLING=חשבונית הלקוח קשר diff --git a/htdocs/langs/he_IL/install.lang b/htdocs/langs/he_IL/install.lang index 8fa0761a30c..0e9af490a47 100644 --- a/htdocs/langs/he_IL/install.lang +++ b/htdocs/langs/he_IL/install.lang @@ -9,7 +9,7 @@ // Reference language: en_US -> he_IL CHARSET=UTF-8 InstallEasy=עקוב אחר ההוראות צעד אחר צעד. -MiscellanousChecks=תנאים מוקדמים לבדוק +MiscellaneousChecks=תנאים מוקדמים לבדוק DolibarrWelcome=ברוכים הבאים Dolibarr ConfFileExists=קובץ %s תצורת קיים. ConfFileDoesNotExists=קובץ %s תצורת לא קיים! diff --git a/htdocs/langs/he_IL/members.lang b/htdocs/langs/he_IL/members.lang index b8f1a2389d0..647559b284a 100644 --- a/htdocs/langs/he_IL/members.lang +++ b/htdocs/langs/he_IL/members.lang @@ -162,7 +162,7 @@ ShowTypeCard=הצג מסוג "%s" HTPasswordExport=htpassword הדור הקובץ NoThirdPartyAssociatedToMember=אין צד שלישי הקשור משתמש זה ThirdPartyDolibarr=Dolibarr צד שלישי -MembersAndSubscriptions=משתמשים ו Suscriptions +MembersAndSubscriptions=משתמשים ו Subscriptions MoreActions=פעולה משלימה על ההקלטה MoreActionBankDirect=יצירת הרשומה העסקה ישירה על חשבון MoreActionBankViaInvoice=יצירת חשבונית התשלום על חשבון diff --git a/htdocs/langs/he_IL/other.lang b/htdocs/langs/he_IL/other.lang index 1b3cf7c3de1..a39390e15b5 100644 --- a/htdocs/langs/he_IL/other.lang +++ b/htdocs/langs/he_IL/other.lang @@ -52,7 +52,7 @@ TotalSizeOfAttachedFiles=הגודל הכולל של הקבצים / מסמכים MaxSize=גודל מרבי של AttachANewFile=צירוף קובץ מסמך חדש / LinkedObject=אובייקט מקושר -Miscellanous=שונות +Miscellaneous=שונות NbOfActiveNotifications=מספר הודעות PredefinedMailTest=זהו אלקטרוני הבדיקה. \ NThe שני קווים מפרידים בהחזרת גררה. PredefinedMailTestHtml=זהו אלקטרוני המבחן (מבחן מילה חייב להיות מודגש).
שני קווים מפרידים בהחזרת גררה. diff --git a/htdocs/langs/hu_HU/admin.lang b/htdocs/langs/hu_HU/admin.lang index ba14cfc58a2..ea8420286e6 100644 --- a/htdocs/langs/hu_HU/admin.lang +++ b/htdocs/langs/hu_HU/admin.lang @@ -259,7 +259,7 @@ ModuleFamilyProducts=Termékek kezelése ModuleFamilyHr=Az emberi erőforrás menedzsment ModuleFamilyProjects=Projektek / kollaboratív munkát ModuleFamilyOther=Más -ModuleFamilyTechnic=Mutli-modulok eszközök +ModuleFamilyTechnic=Multi-modulok eszközök ModuleFamilyExperimental=Kísérleti modulok ModuleFamilyFinancial=Pénzügyi modulok (Számviteli / Kincstár) ModuleFamilyECM=Elektronikus Content Management (ECM) @@ -418,10 +418,6 @@ Module1780Name=Kategóriák Module1780Desc=Kategóriában vezetősége (termékek, szállítók és vevők) Module2000Name=WYSIWYG szerkesztő Module2000Desc=Hagyjuk szerkeszteni egy szöveget terület egy fejlett szerkesztő -Module2200Name=Haszonkölcsönzési jogait -Module2200Desc=Hitelezési jogkezelés -Module2300Name=Menük -Module2300Desc=Menü vezetése Module2400Name=Napirend Module2400Desc=Események / feladatok és napirend menedzsment Module2500Name=Elektronikus Content Management @@ -815,7 +811,7 @@ GeneratedPasswordDesc=Határozza meg itt, hogy melyik szabályt kívánja haszn DictionnaryDesc=Adjuk meg itt az összes referencia adatok. Készítse el előre meghatározott értéket a tiéd. ConstDesc=Ez az oldal lehetővé teszi, hogy módosítsuk az összes többi paraméter nem áll rendelkezésre az előző oldalakon. Ők tartják fenn paraméterek haladó fejlesztőknek vagy troubleshouting. OnceSetupFinishedCreateUsers=Figyelem, egy Dolibarr rendszergazdaként. Rendszergazda felhasználók használják Dolibarr beállítani. A szokásos használat Dolibarr, akkor ajánlatos használni egy nem adminisztrátori felhasználói létre Felhasználók és csoportok menüben. -MiscellanousDesc=Adjuk meg itt az összes többi paraméter a biztonsággal kapcsolatos. +MiscellaneousDesc=Adjuk meg itt az összes többi paraméter a biztonsággal kapcsolatos. LimitsSetup=Korlátok / Precision beállítás LimitsDesc=Megadhatjuk, korlátok, pontosítást és optimalizálás által használt Dolibarr itt MAIN_MAX_DECIMALS_UNIT=Max a tizedes egységár @@ -889,7 +885,7 @@ DocumentModelOdt=Generálása dokumentumok OpenDocuments sablonok (. ODT fájlok WatermarkOnDraft=Vízjel dokumentum tervezetét CompanyIdProfChecker=Professzionális egyedi azonosító MustBeUnique=Egyedinek kell lennie? -Miscellanous=Vegyes +Miscellaneous=Vegyes WebCalSetup=WebCalendar kapcsolat beállítása WebCalSyncro=Add Dolibarr események WebCalendar WebCalAllways=Mindig, nem kérdezi diff --git a/htdocs/langs/hu_HU/bills.lang b/htdocs/langs/hu_HU/bills.lang index 8546d155e7b..4439698118d 100644 --- a/htdocs/langs/hu_HU/bills.lang +++ b/htdocs/langs/hu_HU/bills.lang @@ -374,7 +374,7 @@ DisabledBecausePayments=Nem lehetséges, mert van némi kifizetések CantRemovePaymentWithOneInvoicePaid=Nem lehet eltávolítani a fizetési hiszen legalább egy számlát fizetni osztályozott ExpectedToPay=Várható fizetés PayedByThisPayment=Megfizetni ezt a fizetési -ClosePaidInvoicesAutomatically=Classify "fizetni" minden szabványos vagy csere számlák entierely fizetni. +ClosePaidInvoicesAutomatically=Classify "fizetni" minden szabványos vagy csere számlák entirely fizetni. AllCompletelyPayedInvoiceWillBeClosed=Minden számla nélkül is fizetni fogják automatikusan bezárja az állapota "fizetni". TypeContact_facture_internal_SALESREPFOLL=Reprezentatív nyomon követése vevőszámla TypeContact_facture_external_BILLING=Ügyfél számla Kapcsolat diff --git a/htdocs/langs/hu_HU/install.lang b/htdocs/langs/hu_HU/install.lang index b912875ca51..643ed52907d 100644 --- a/htdocs/langs/hu_HU/install.lang +++ b/htdocs/langs/hu_HU/install.lang @@ -1,7 +1,7 @@ # Dolibarr language file - hu_HU - install CHARSET=UTF-8 InstallEasy=Csak kövesse az utasitásokat lépésrõl lépésre. -MiscellanousChecks=Feltételek ellenörézse +MiscellaneousChecks=Feltételek ellenörézse DolibarrWelcome=Üdvözöljük a Dolibarr rendszerében ConfFileExists=%s konfigurációs fájl már létezik. ConfFileDoesNotExists=%s konfigurációs fájl NEM létezik! diff --git a/htdocs/langs/hu_HU/members.lang b/htdocs/langs/hu_HU/members.lang index a1baf95f0c6..ff2cbf8d7ec 100644 --- a/htdocs/langs/hu_HU/members.lang +++ b/htdocs/langs/hu_HU/members.lang @@ -162,7 +162,7 @@ ShowTypeCard=Mutasd típusú "%s" HTPasswordExport=htpassword fájl létrehozása NoThirdPartyAssociatedToMember=Harmadik félnek nem társult a tag ThirdPartyDolibarr=Dolibarr harmadik fél -MembersAndSubscriptions=A tagok és Suscriptions +MembersAndSubscriptions=A tagok és Subscriptions MoreActions=Kiegészítő fellépés a felvételi MoreActionBankDirect=Hozzon létre egy közvetlen tranzakciós rekord miatt MoreActionBankViaInvoice=Hozzon létre egy számlát és előleg diff --git a/htdocs/langs/hu_HU/other.lang b/htdocs/langs/hu_HU/other.lang index 4272e4a1d69..a1f3fff1d0b 100644 --- a/htdocs/langs/hu_HU/other.lang +++ b/htdocs/langs/hu_HU/other.lang @@ -142,17 +142,17 @@ Notify_BILL_SUPPLIER_SENTBYMAIL=Szállító számlát postai úton Notify_CONTRACT_VALIDATE=A szerződés a validált Notify_FICHEINTER_VALIDATE=Beavatkozás érvényesített LinkedObject=Csatolt objektum -Miscellanous=Vegyes +Miscellaneous=Vegyes NbOfActiveNotifications=Bejelentések száma PredefinedMailTest=Ez egy teszt mailt. \ NA két vonal választja el egymástól kocsivissza. -PredefinedMailContentSendInvoice=Meg fogja találni itt a számla __FACREF__ \n\n__PERSONALIZED__ Tisztelettel \n\n__SIGNATURE__ -PredefinedMailContentSendInvoiceReminder=Szeretnénk figyelmeztetni, hogy a számla __FACREF__ úgy tűnik, hogy nem fizetni. Szóval ez a számla mellékleteként ismét emlékeztetőül. \n\n__PERSONALIZED__ Tisztelettel \n\n__SIGNATURE__ -PredefinedMailContentSendProposal=Meg fogja találni itt a kereskedelmi propoal __PROPREF__ \n\n__PERSONALIZED__ Tisztelettel \n\n__SIGNATURE__ -PredefinedMailContentSendOrder=Meg fogja találni itt a sorrendben __ORDERREF__ \n\n__PERSONALIZED__ Tisztelettel \n\n__SIGNATURE__ -PredefinedMailContentSendSupplierOrder=Meg fogja találni itt a rendezés __ORDERREF__ \n\n__PERSONALIZED__ Tisztelettel \n\n__SIGNATURE__ -PredefinedMailContentSendSupplierInvoice=Meg fogja találni itt a számla __FACREF__ \n\n__PERSONALIZED__ Tisztelettel \n\n__SIGNATURE__ -PredefinedMailContentSendShipping=Meg fogja találni itt a hajózási __SHIPPINGREF__ \n\n__PERSONALIZED__ Tisztelettel \n\n__SIGNATURE__ -PredefinedMailContentSendFichInter=Meg fogja találni itt a beavatkozás __FICHINTERREF__ \n\n__PERSONALIZED__ Tisztelettel \n\n__SIGNATURE__ +PredefinedMailContentSendInvoice=__CONTACTCIVNAME__ \n\n Meg fogja találni itt a számla __FACREF__ \n\n__PERSONALIZED__ Tisztelettel \n\n__SIGNATURE__ +PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__ \n\n Szeretnénk figyelmeztetni, hogy a számla __FACREF__ úgy tűnik, hogy nem fizetni. Szóval ez a számla mellékleteként ismét emlékeztetőül. \n\n__PERSONALIZED__ Tisztelettel \n\n__SIGNATURE__ +PredefinedMailContentSendProposal=__CONTACTCIVNAME__ \n\n Meg fogja találni itt a kereskedelmi propoal __PROPREF__ \n\n__PERSONALIZED__ Tisztelettel \n\n__SIGNATURE__ +PredefinedMailContentSendOrder=__CONTACTCIVNAME__ \n\n Meg fogja találni itt a sorrendben __ORDERREF__ \n\n__PERSONALIZED__ Tisztelettel \n\n__SIGNATURE__ +PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__ \n\n Meg fogja találni itt a rendezés __ORDERREF__ \n\n__PERSONALIZED__ Tisztelettel \n\n__SIGNATURE__ +PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__ \n\n Meg fogja találni itt a számla __FACREF__ \n\n__PERSONALIZED__ Tisztelettel \n\n__SIGNATURE__ +PredefinedMailContentSendShipping=__CONTACTCIVNAME__ \n\n Meg fogja találni itt a hajózási __SHIPPINGREF__ \n\n__PERSONALIZED__ Tisztelettel \n\n__SIGNATURE__ +PredefinedMailContentSendFichInter=__CONTACTCIVNAME__ \n\n Meg fogja találni itt a beavatkozás __FICHINTERREF__ \n\n__PERSONALIZED__ Tisztelettel \n\n__SIGNATURE__ ChooseYourDemoProfil=Válassza ki a demo, amely egyezik a profilt tevékenység ... DemoFundation=Tagok kezelése egy alapítvány DemoFundation2=Tagok kezelése és bankszámla egy alapítvány diff --git a/htdocs/langs/is_IS/admin.lang b/htdocs/langs/is_IS/admin.lang index b6124f64739..2c4364cae88 100644 --- a/htdocs/langs/is_IS/admin.lang +++ b/htdocs/langs/is_IS/admin.lang @@ -234,7 +234,7 @@ ModuleFamilyProducts=Vörur Stjórn ModuleFamilyHr=Mannauðsstjórnun ModuleFamilyProjects=Verkefni / samvinna vinna ModuleFamilyOther=Önnur -ModuleFamilyTechnic=Mutli-einingar verkfæri +ModuleFamilyTechnic=Multi-einingar verkfæri ModuleFamilyExperimental=Experimental mát ModuleFamilyFinancial=Financial einingar (Bókhald / ríkissjóðs) ModuleFamilyECM=ECM @@ -369,10 +369,6 @@ Module1780Name=Flokkar Module1780Desc=Stjórn Flokkur's (vörur, birgja og viðskiptavina) Module2000Name=Fckeditor Module2000Desc=WYSIWYG Editor -Module2200Name=Útlán réttindi -Module2200Desc=Útlán réttindi -Module2300Name=Matseðlar -Module2300Desc=Valmynd's stjórnun Module2400Name=Dagskrá Module2400Desc=Aðgerðir / verkefni og dagskrá stjórnun Module2500Name=Rafræn Innihald Stjórnun @@ -738,7 +734,7 @@ GeneratedPasswordDesc=Veldu hér sem regla sem þú vilt nota til að búa til n DictionnaryDesc=Define hér öll tilvísun gögn. Þú getur lokið fyrirfram gildi við þitt. ConstDesc=Þessi síða leyfir þér að breyta öllum öðrum breytum ekki í boði í fyrri síður. Þau eru frátekin breytur fyrir háþróaður verktaki eða troubleshouting. OnceSetupFinishedCreateUsers=Aðvörun, ertu Dolibarr stjórnandi notandann. Stjórnandi notendur eru notuð til að skipulag Dolibarr. Fyrir venjulega notkun Dolibarr, það er mælt með að nota ekki stjórnandi notandi stofnaðar Notendur & Groups valmyndinni. -MiscellanousDesc=Veldu hér öllum öðrum þáttum sem tengjast öryggi. +MiscellaneousDesc=Veldu hér öllum öðrum þáttum sem tengjast öryggi. LimitsSetup=Mörk / Precision skipulag LimitsDesc=Þú getur skilgreint takmörk, precisions og optimisations notaður við Dolibarr hér MAIN_MAX_DECIMALS_UNIT=Max brotum um verð eining @@ -1264,7 +1260,7 @@ SendmailOptionNotComplete=Aðvörun, á sumum Linux kerfi, að senda tölvupóst SendmailOptionMayHurtBuggedMTA=Lögun að senda póst með aðferð "PHP póst-skrá" mun búa til tölvupóst sem gæti ekki rétt flokka af sumum sem fá póstur framreiðslumaður. Niðurstaðan er sú að sumir póstur er ekki hægt að lesa með því að fólk hýst hjá thoose bugged umhverfi. Það er raunin fyrir nokkrum Internet þjónustur (td: Orange í Frakklandi). Þetta er ekki vandamál í Dolibarr né í PHP en á móti póstur framreiðslumaður. Þú getur hins vegar bætt möguleika MAIN_FIX_FOR_BUGGED_MTA 1. í uppsetningu - annað að breyta Dolibarr að forðast þetta. Hins vegar getur þú lendir í vandræðum með öðrum netþjónum sem virðing stranglega SMTP staðall. Önnur lausn (recommanded) er að nota aðferðina "SMTP fals bókasafn" sem hefur enga ókosti. CompanyIdProfChecker=Professional Id einstakt MustBeUnique=Verður að vera einstakt? -Miscellanous=Ýmislegt +Miscellaneous=Ýmislegt ContractsSetup=Samningar mát skipulag ContractsNumberingModules=Samningar númera einingar AdherentLoginRequired=Stjórna Innskráning fyrir hvern meðlim diff --git a/htdocs/langs/is_IS/bills.lang b/htdocs/langs/is_IS/bills.lang index 21209b0158f..a342ad46e78 100644 --- a/htdocs/langs/is_IS/bills.lang +++ b/htdocs/langs/is_IS/bills.lang @@ -410,6 +410,6 @@ EditGlobalDiscounts=Breyta hreinum afslætti AddCreditNote=Búa inneignarnótuna InvoiceNotChecked=Engin reikningur valinn ShowUnpaidAll=Sýna alla ógreiddra reikninga -ClosePaidInvoicesAutomatically=Flokka "borgað" allt staðall eða skipti reikningar entierely borgað. +ClosePaidInvoicesAutomatically=Flokka "borgað" allt staðall eða skipti reikningar entirely borgað. AllCompletelyPayedInvoiceWillBeClosed=Allt Reikningar með ekki áfram að borga verður sjálfkrafa lokað til stöðu "borgað". // STOP - Lines generated via autotranslator.php tool (2012-02-29 16:27:05). diff --git a/htdocs/langs/is_IS/install.lang b/htdocs/langs/is_IS/install.lang index 6435b12fc13..7969cfea80c 100644 --- a/htdocs/langs/is_IS/install.lang +++ b/htdocs/langs/is_IS/install.lang @@ -113,7 +113,7 @@ ServerVersion=Gagnasafn framreiðslumaður útgáfa // START - Lines generated via autotranslator.php tool (2010-07-10 01:17:11). // Reference language: en_US InstallEasy=Fylgdu leiðbeiningunum skref fyrir skref. -MiscellanousChecks=Undanfarar stöðva +MiscellaneousChecks=Undanfarar stöðva DolibarrWelcome=Velkomin á Dolibarr ConfFileExists=Stillingar skrá %s til. ConfFileDoesNotExists=Stillingar %s er ekki til! diff --git a/htdocs/langs/is_IS/members.lang b/htdocs/langs/is_IS/members.lang index d64fc0dbd55..20f211f24ef 100644 --- a/htdocs/langs/is_IS/members.lang +++ b/htdocs/langs/is_IS/members.lang @@ -157,7 +157,7 @@ ShowTypeCard=Sýna tegund ' %s ' HTPasswordExport=htpassword skrá kynslóð NoThirdPartyAssociatedToMember=Engar þriðja aðila í tengslum við þennan ThirdPartyDolibarr=Dolibarr þriðja aðila -MembersAndSubscriptions=Aðilar og Suscriptions +MembersAndSubscriptions=Aðilar og Subscriptions // STOP - Lines generated via autotranslator.php tool (2010-06-30 00:15:29). diff --git a/htdocs/langs/is_IS/other.lang b/htdocs/langs/is_IS/other.lang index 55488adcff9..1d8f5eb8816 100644 --- a/htdocs/langs/is_IS/other.lang +++ b/htdocs/langs/is_IS/other.lang @@ -28,7 +28,7 @@ TotalSizeOfAttachedFiles=Heildarstærð meðfylgjandi skrá / gögn MaxSize=Hámarks stærð AttachANewFile=Hengja nýja skrá / skjal LinkedObject=Tengd mótmæla -Miscellanous=Ýmislegt +Miscellaneous=Ýmislegt NbOfActiveNotifications=Fjöldi tilkynninga PredefinedMailTest=Þetta er prófun póst. \ NThe tvær línur eru aðskilin með vagn til baka. PredefinedMailTestHtml=Þetta er prófun póstur (orðið próf verður feitletruð).
Þessar tvær línur eru aðskilin með vagn til baka. @@ -166,7 +166,7 @@ CalculatedVolume=Reiknað magn // START - Lines generated via autotranslator.php tool (2010-09-04 01:33:40). // Reference language: en_US -> is_IS -PredefinedMailContentSendSupplierOrder=Þú vilja finna hér til __ORDERREF__ okkar \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ +PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__ \n\n Þú vilja finna hér til __ORDERREF__ okkar \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ WeightUnitpound=pund VolumeUnitounce=eyri VolumeUnitlitre=l @@ -194,7 +194,7 @@ Notify_FICHEINTER_VALIDATE=Afskipti fullgilt Notify_SHIPPING_VALIDATE=Shipping fullgilt Notify_SHIPPING_SENTBYMAIL=Shipping send með pósti Notify_MEMBER_VALIDATE=Member fullgilt -PredefinedMailContentSendFichInter=Þú vilja finna hér á afskiptum __FICHINTERREF__ \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ +PredefinedMailContentSendFichInter=__CONTACTCIVNAME__ \n\n Þú vilja finna hér á afskiptum __FICHINTERREF__ \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ Top=Top Bottom=Bottom Left=Vinstri @@ -217,12 +217,12 @@ Notify_BILL_SENTBYMAIL=Viðskiptavinur Reikningar send með pósti Notify_MEMBER_SUBSCRIPTION=Member áskrift Notify_MEMBER_RESILIATE=Member resiliated Notify_MEMBER_DELETE=Member eytt -PredefinedMailContentSendInvoice=Þú vilja finna hér á reikningsnúmerið __ FACREF__ \n\n__PERSONALIZED__ kveðju \n\n__SIGNATURE__ -PredefinedMailContentSendInvoiceReminder=Við viljum vara þig á að reikningur __ FACREF__ virðist ekki vera greiddur. Svo er þetta reikningur í viðhengi aftur, sem áminningu. \n\n__PERSONALIZED__ kveðju \n\n__SIGNATURE__ -PredefinedMailContentSendProposal=Þú vilja finna hér auglýsing propoal __ PROPREF__ \n\n__PERSONALIZED__ kveðju \n\n__SIGNATURE__ -PredefinedMailContentSendOrder=Þú vilja finna hér til __ ORDERREF__ \n\n__PERSONALIZED__ kveðju \n\n__SIGNATURE__ -PredefinedMailContentSendSupplierInvoice=Þú vilja finna hér á reikningsnúmerið __ FACREF__ \n\n__PERSONALIZED__ kveðju \n\n__SIGNATURE__ -PredefinedMailContentSendShipping=Þú vilja finna hér siglinga __ SHIPPINGREF__ \n\n__PERSONALIZED__ kveðju \n\n__SIGNATURE__ +PredefinedMailContentSendInvoice=__CONTACTCIVNAME__ \n\n Þú vilja finna hér á reikningsnúmerið __ FACREF__ \n\n__PERSONALIZED__ kveðju \n\n__SIGNATURE__ +PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__ \n\n Við viljum vara þig á að reikningur __ FACREF__ virðist ekki vera greiddur. Svo er þetta reikningur í viðhengi aftur, sem áminningu. \n\n__PERSONALIZED__ kveðju \n\n__SIGNATURE__ +PredefinedMailContentSendProposal=__CONTACTCIVNAME__ \n\n Þú vilja finna hér auglýsing propoal __ PROPREF__ \n\n__PERSONALIZED__ kveðju \n\n__SIGNATURE__ +PredefinedMailContentSendOrder=__CONTACTCIVNAME__ \n\n Þú vilja finna hér til __ ORDERREF__ \n\n__PERSONALIZED__ kveðju \n\n__SIGNATURE__ +PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__ \n\n Þú vilja finna hér á reikningsnúmerið __ FACREF__ \n\n__PERSONALIZED__ kveðju \n\n__SIGNATURE__ +PredefinedMailContentSendShipping=__CONTACTCIVNAME__ \n\n Þú vilja finna hér siglinga __ SHIPPINGREF__ \n\n__PERSONALIZED__ kveðju \n\n__SIGNATURE__ AddFiles=Bæta við skrár StartUpload=Byrja senda CancelUpload=Hætta við diff --git a/htdocs/langs/it_IT/admin.lang b/htdocs/langs/it_IT/admin.lang index a8a55093f8d..678da2c6fcb 100644 --- a/htdocs/langs/it_IT/admin.lang +++ b/htdocs/langs/it_IT/admin.lang @@ -606,8 +606,8 @@ MenuUseLayout =Permetti di nascondere il menu verticale (javascript no MessageLogin =Messaggio per la pagina di login MessageOfDay =Messaggio del giorno MinLength =Durata minima -MiscellanousDesc =Definire qui tutti gli altri parametri relativi alla sicurezza. -Miscellanous =Varie +MiscellaneousDesc =Definire qui tutti gli altri parametri relativi alla sicurezza. +Miscellaneous =Varie ModelModules =Modelli per i documenti ModifMenu =Modifica Menu ModifyProductDescAbility =Personalizzazione delle descrizioni dei prodotti nei form @@ -641,8 +641,6 @@ Module2200Desc =Gestione dei diritti di prestito Module2200Name =Diritti di prestito Module22Desc =Gestione posta massiva Module22Name =Posta massiva -Module2300Desc =Gestione dei Menu -Module2300Name =Menu Module23Desc =Monitoraggio del consumo energetico Module23Name =Energia Module2400Desc =Gestione eventi/compiti e ordine del giorno diff --git a/htdocs/langs/it_IT/install.lang b/htdocs/langs/it_IT/install.lang index 510d5a7abbe..d8ded8bdf16 100644 --- a/htdocs/langs/it_IT/install.lang +++ b/htdocs/langs/it_IT/install.lang @@ -154,7 +154,7 @@ MigrationStockDetail =Aggiornamento delle scorte dei prodotti MigrationSuccessfullUpdate =Aggiornamento completato con successo MigrationSupplierOrder =Migrazione dei dati degli ordini fornitori MigrationUpdateFailed =Aggiornamento fallito -MiscellanousChecks =Verificare prerequisiti +MiscellaneousChecks =Verificare prerequisiti NextStepMightLastALongTime =Il passaggio in corso può richiedere diverso tempo. Attendi il caricamento completo della schermata successiva prima di continuare. NotAvailable =Non disponibile OpenBaseDir =Parametro openbasedir diff --git a/htdocs/langs/it_IT/members.lang b/htdocs/langs/it_IT/members.lang index 4000e50c514..e1645587088 100644 --- a/htdocs/langs/it_IT/members.lang +++ b/htdocs/langs/it_IT/members.lang @@ -88,7 +88,7 @@ MemberModifiedInDolibarr =Membri modificati su Dolibarr MEMBER_NEWFORM_PAYONLINE =Saltate sulla integrato pagina di pagamento online MemberNotOrNoMoreExpectedToSubscribe =Membri non iscritti o non più attesi per iscrizione MemberPublicLinks =Link/pagine pubbliche -MembersAndSubscriptions =Deputati e Suscriptions +MembersAndSubscriptions =Deputati e Subscriptions MembersArea =Sezione riservata membri MembersAttributes =Attributi dei membri MembersByCountryDesc =Questa schermata mostra le statistiche dei membri per paese. Il grafico dipende da servizi online di Google ed è disponibile solo se il server può connettersi ad internet. diff --git a/htdocs/langs/it_IT/other.lang b/htdocs/langs/it_IT/other.lang index 9e9cdee6426..9dee683f29f 100644 --- a/htdocs/langs/it_IT/other.lang +++ b/htdocs/langs/it_IT/other.lang @@ -90,7 +90,7 @@ MemberDeletedInDolibarr =Membro eliminato da Dolibarr MemberResiliatedInDolibarr =Membro %s revocato su Dolibarr MemberSubscriptionAddedInDolibarr =Adesione membro %s aggiunta a Dolibarr MemberValidatedInDolibarr =Membro %s convalidato su Dolibarr -Miscellanous =Varie +Miscellaneous =Varie ModifiedBy =Modificato da %s NbOfActiveNotifications =Numero di notifiche attive NbOfAttachedFiles =Numero di file/documenti allegati @@ -138,14 +138,14 @@ NumberOfUnitsProposals =Numero di unità sulle proposte degli ultimi 12 NumberOfUnitsSupplierInvoices =Numero di unità sulle fatture fornitore degli ultimi 12 mesi OpenANewWindow =Apri una nuova finestra PaymentDoneInDolibarr =Pagamenti %s fatto su Dolibarr -PredefinedMailContentSendFichInter =Alleghiamo l'intervento __FICHINTERREF__ \n\n__PERSONALIZED__Cordiali saluti \n\n__SIGNATURE__ -PredefinedMailContentSendInvoiceReminder =Vorremmo portare alla Vostra attenzione che la fattura __FACREF__ sembra non essere stata saldata. La fattura è allegata alla presente, come promemoria. \n\n__PERSONALIZED__ Cordiali saluti \n\n__SIGNATURE__ -PredefinedMailContentSendInvoice =Alleghiamo la fattura __FACREF__ \n\n__PERSONALIZED__ Cordiali Saluti \n\n__SIGNATURE__ -PredefinedMailContentSendOrder =Alleghiamo l'ordine __ORDERREF__ \n\n__PERSONALIZED__ Cordiali Saluti \n\n__SIGNATURE__ -PredefinedMailContentSendProposal =Alleghiamo la proposta commerciale __PROPREF__ \n\n__PERSONALIZED__ Cordiali Saluti \n\n__SIGNATURE__ -PredefinedMailContentSendShipping =Alleghiamo la spedizione __SHIPPINGREF__ \n\n__PERSONALIZED__Cordiali Saluti \n\n__SIGNATURE__ -PredefinedMailContentSendSupplierInvoice =Alleghiamo la fattura __FACREF__ \n\n__PERSONALIZED__Cordiali Saluti \n\n__SIGNATURE__ -PredefinedMailContentSendSupplierOrder =Alleghiamo il nostro ordine n __ORDERREF__ \n\n__PERSONALIZED__Cordiali Saluti \n\n__SIGNATURE__ +PredefinedMailContentSendFichInter =__CONTACTCIVNAME__ \n\n Alleghiamo l'intervento __FICHINTERREF__ \n\n__PERSONALIZED__Cordiali saluti \n\n__SIGNATURE__ +PredefinedMailContentSendInvoiceReminder =__CONTACTCIVNAME__ \n\n Vorremmo portare alla Vostra attenzione che la fattura __FACREF__ sembra non essere stata saldata. La fattura è allegata alla presente, come promemoria. \n\n__PERSONALIZED__ Cordiali saluti \n\n__SIGNATURE__ +PredefinedMailContentSendInvoice =__CONTACTCIVNAME__ \n\n Alleghiamo la fattura __FACREF__ \n\n__PERSONALIZED__ Cordiali Saluti \n\n__SIGNATURE__ +PredefinedMailContentSendOrder =__CONTACTCIVNAME__ \n\n Alleghiamo l'ordine __ORDERREF__ \n\n__PERSONALIZED__ Cordiali Saluti \n\n__SIGNATURE__ +PredefinedMailContentSendProposal =__CONTACTCIVNAME__ \n\n Alleghiamo la proposta commerciale __PROPREF__ \n\n__PERSONALIZED__ Cordiali Saluti \n\n__SIGNATURE__ +PredefinedMailContentSendShipping =__CONTACTCIVNAME__ \n\n Alleghiamo la spedizione __SHIPPINGREF__ \n\n__PERSONALIZED__Cordiali Saluti \n\n__SIGNATURE__ +PredefinedMailContentSendSupplierInvoice =__CONTACTCIVNAME__ \n\n Alleghiamo la fattura __FACREF__ \n\n__PERSONALIZED__Cordiali Saluti \n\n__SIGNATURE__ +PredefinedMailContentSendSupplierOrder =__CONTACTCIVNAME__ \n\n Alleghiamo il nostro ordine n __ORDERREF__ \n\n__PERSONALIZED__Cordiali Saluti \n\n__SIGNATURE__ PredefinedMailTestHtml =Questa è una mail di test (la parola test deve risultare in grassetto).
Le due linee sono separate da un a capo. PredefinedMailTest =Questa è una mail di prova. \NLe due linee sono separate da un a capo. ProfIdShortDesc =Prof ID %s è un dato dipendente dal paese terzo.
Ad esempio, per il paese %s, è il codice %s. diff --git a/htdocs/langs/ja_JP/admin.lang b/htdocs/langs/ja_JP/admin.lang index 9044b1657d5..ae5819e0007 100644 --- a/htdocs/langs/ja_JP/admin.lang +++ b/htdocs/langs/ja_JP/admin.lang @@ -259,7 +259,7 @@ ModuleFamilyProducts=製品の管理 ModuleFamilyHr=人的資源管理 ModuleFamilyProjects=プロジェクト/共同作業 ModuleFamilyOther=その他 -ModuleFamilyTechnic=Mutli-モジュールツール +ModuleFamilyTechnic=Multi-モジュールツール ModuleFamilyExperimental=実験的なモジュール ModuleFamilyFinancial=金融モジュール(会計/財務) ModuleFamilyECM=電子コンテンツ管理(ECM) @@ -418,10 +418,6 @@ Module1780Name=カテゴリー Module1780Desc=Categorieの管理(製品、サプライヤー、顧客) Module2000Name=WYSIWYGエディタ Module2000Desc=高度なエディタを使用して、いくつかのテキストエリアを編集することができます -Module2200Name=融資の権限 -Module2200Desc=貸出権限の管理 -Module2300Name=メニュー -Module2300Desc=メニューの管理 Module2400Name=議題 Module2400Desc=イベント/タスクと議題の管理 Module2500Name=電子コンテンツ管理 @@ -815,7 +811,7 @@ GeneratedPasswordDesc=あなたが自動生成されたパスワードを持つ DictionnaryDesc=ここですべての参照件のデータを定義します。あなたはあなたで定義済みの値を完了することができます。 ConstDesc=このページでは、前のページで使用できない他のすべてのパラメータを編集することができます。彼らは高度な開発者のためにまたはtroubleshoutingのパラメータを予約されています。 OnceSetupFinishedCreateUsers=警告は、あなたはDolibarr管理者のユーザーです。管理者ユーザーがDolibarrをセットアップするために使用されます。 Dolibarrの通常の使用方法については、それはユーザーとグループ]メニューから作成された非管理者ユーザーを使用することをお勧めします。 -MiscellanousDesc=ここでセキュリティに関連する他のすべてのパラメータを定義します。 +MiscellaneousDesc=ここでセキュリティに関連する他のすべてのパラメータを定義します。 LimitsSetup=制限/精密セットアップ LimitsDesc=ここDolibarrで使用される限界、精度と最適化を定義することができます。 MAIN_MAX_DECIMALS_UNIT=ユニット価格の最大小数点以下 @@ -889,7 +885,7 @@ DocumentModelOdt=OpenDocumentsテンプレートからドキュメントを生 WatermarkOnDraft=ドラフト文書に透かし CompanyIdProfChecker=ユニークなイドプロ MustBeUnique=一意である必要がありますか? -Miscellanous=雑多 +Miscellaneous=雑多 WebCalSetup=のwebcalendarリンクのセットアップ WebCalSyncro=のwebcalendar Dolibarrイベントを追加 WebCalAllways=常に、何を求めません diff --git a/htdocs/langs/ja_JP/bills.lang b/htdocs/langs/ja_JP/bills.lang index f2172127b5f..e8088302025 100644 --- a/htdocs/langs/ja_JP/bills.lang +++ b/htdocs/langs/ja_JP/bills.lang @@ -374,7 +374,7 @@ DisabledBecausePayments=いくつかの支払いがあるのでできませ​ CantRemovePaymentWithOneInvoicePaid=支払った分類少なくとも一つの請求書があるので支払いを削除することはできません ExpectedToPay=予想される支払い PayedByThisPayment=この支払によって支払った -ClosePaidInvoicesAutomatically="支払った"すべての標準またはentierely支払った交換用の請求書を分類します。 +ClosePaidInvoicesAutomatically="支払った"すべての標準またはentirely支払った交換用の請求書を分類します。 AllCompletelyPayedInvoiceWillBeClosed=を持たないすべての請求書は自動的にステータスが "支払った"に閉鎖され支払うことに残っています。 TypeContact_facture_internal_SALESREPFOLL=代表的なフォローアップ顧客の請求書 TypeContact_facture_external_BILLING=顧客の請求書の連絡先 diff --git a/htdocs/langs/ja_JP/install.lang b/htdocs/langs/ja_JP/install.lang index 0d74ebfdd7a..c39d1038bc7 100644 --- a/htdocs/langs/ja_JP/install.lang +++ b/htdocs/langs/ja_JP/install.lang @@ -137,7 +137,7 @@ MigrationActioncommElement=アクション上でデータを更新する // START - Lines generated via autotranslator.php tool (2012-02-29 16:41:06). // Reference language: en_US -> ja_JP -MiscellanousChecks=前提条件チェック +MiscellaneousChecks=前提条件チェック DolibarrWelcome=Dolibarrへようこそ ConfFileExists=コンフィギュレーションファイル%sが存在しています 。 ConfFileDoesNotExists=コンフィギュレーションファイル%sは存在しません! diff --git a/htdocs/langs/ja_JP/members.lang b/htdocs/langs/ja_JP/members.lang index 4fee5b42355..afc8a3f759b 100644 --- a/htdocs/langs/ja_JP/members.lang +++ b/htdocs/langs/ja_JP/members.lang @@ -162,7 +162,7 @@ ShowTypeCard=タイプ "%s"を表示 HTPasswordExport=htpasswordファイルの生成 NoThirdPartyAssociatedToMember=このメンバに関連付けられているサードパーティません ThirdPartyDolibarr=Dolibarrサードパーティ -MembersAndSubscriptions=メンバーとSuscriptions +MembersAndSubscriptions=メンバーとSubscriptions MoreActions=記録上の相補的なアクション MoreActionBankDirect=アカウントに直接トランザクション·レコードを作成します。 MoreActionBankViaInvoice=アカウントの請求書と支払いを作成します。 diff --git a/htdocs/langs/ja_JP/other.lang b/htdocs/langs/ja_JP/other.lang index af28cd1738d..d78c343cb5b 100644 --- a/htdocs/langs/ja_JP/other.lang +++ b/htdocs/langs/ja_JP/other.lang @@ -34,7 +34,7 @@ TotalSizeOfAttachedFiles=添付ファイル/文書の合計サイズ MaxSize=最大サイズ AttachANewFile=新しいファイル/文書を添付する LinkedObject=リンクされたオブジェクト -Miscellanous=その他 +Miscellaneous=その他 NbOfActiveNotifications=通知の数 DemoDesc=Dolibarrは、いくつかの機能モジュールで構成されるコンパクトなERP / CRMです。これが発生しないようにすべてのモジュールが含まれているデモは、何の意味もない。ので、いくつかのデモのプロファイルが用意されています。 ChooseYourDemoProfil=あなたの活動を一致させるデモのプロファイルを選択... diff --git a/htdocs/langs/nb_NO/admin.lang b/htdocs/langs/nb_NO/admin.lang index 7a9ec630980..d1800bfcd07 100644 --- a/htdocs/langs/nb_NO/admin.lang +++ b/htdocs/langs/nb_NO/admin.lang @@ -299,10 +299,6 @@ Module1400Name=Regnskapsekspert Module1400Desc=Behandling av regnskapssopplysninger for eksperter (double parties) Module1780Name=Kategorier Module1780Desc=Behandling av kategorier (varer, leverandører og kunder) -Module2200Name=Utlånsrettigheter -Module2200Desc=Behandling av utlånsrettigheter -Module2300Name=Menyer -Module2300Desc=Menybehandling Module2400Name=Agenda Module2400Desc=Handlinger/oppgaver og agendabehandling Module2500Name=Electronic Content Management @@ -596,7 +592,7 @@ GeneratedPasswordDesc=Her angir du hvilken regel som skal generere nye passord d DictionnaryDesc=Her angir du alle referansedata/begreper. Du kan komplettere de forhåndsdefinerte dataene med dine egne. ConstDesc=Her kan du endre innstillinger som ikke er tilgjengelige på de foregående sidene. Dette er reserverte parametere, for avanserte utviklere eller for feilsøking. OnceSetupFinishedCreateUsers=OBS! Du er Dolibarr-administrator. Administratorer er brukere som kan sette opp programmet. For vanlig bruk av Dolibarr bør du lage en bruker uten administratorrettigheter ( i Brukere og grupper ). -MiscellanousDesc=Her angir du sikkerhetsinnstillinger for Dolibarr. +MiscellaneousDesc=Her angir du sikkerhetsinnstillinger for Dolibarr. LimitsSetup=Grenser/presisjon LimitsDesc=Her angir du grenser og presisjon som skal brukes i programmet MAIN_MAX_DECIMALS_UNIT=Desimaler i enhetspriser @@ -1286,7 +1282,7 @@ SendmailOptionNotComplete=Advarsel, på enkelte Linux-systemer, for å sende e-p SendmailOptionMayHurtBuggedMTA=Funksjon for å sende post ved hjelp av metoden "PHP mail direkte" vil generere en melding som kanskje ikke riktig analyseres av noen som fikk postservere. Resultatet er at enkelte poster ikke kan leses av folk vert thoose avlyttet plattformer. Det er tilfelle for enkelte Internett-leverandører (Ex: Orange i Frankrike). Dette er ikke et problem i Dolibarr heller inn PHP, men på motta e-post server. Du kan imidlertid legge til alternativ MAIN_FIX_FOR_BUGGED_MTA til 1 i oppsettet - andre til å endre Dolibarr å unngå dette. Imidlertid kan du oppleve problemer med andre servere som respekt strengt SMTP standard. Den andre løsningen (Anbefalte) er å bruke metoden "SMTP socket bibliotek" som ikke har noen ulemper. CompanyIdProfChecker=Profesjonell Id unik MustBeUnique=Må være unik? -Miscellanous=Diverse +Miscellaneous=Diverse ContractsSetup=Kontrakter modul oppsett ContractsNumberingModules=Kontrakter nummerering moduler AdherentLoginRequired=Behandle en Login for hvert medlem diff --git a/htdocs/langs/nb_NO/bills.lang b/htdocs/langs/nb_NO/bills.lang index faf0e2b69b4..1a3618b132c 100644 --- a/htdocs/langs/nb_NO/bills.lang +++ b/htdocs/langs/nb_NO/bills.lang @@ -438,6 +438,6 @@ EditGlobalDiscounts=Rediger absolutte rabatter AddCreditNote=Lag kreditt notat InvoiceNotChecked=Ingen faktura er valgt ShowUnpaidAll=Vis alle ubetalte fakturaer -ClosePaidInvoicesAutomatically=Klassifisere "betalt" alle standard eller utskifting fakturaer entierely utbetales. +ClosePaidInvoicesAutomatically=Klassifisere "betalt" alle standard eller utskifting fakturaer entirely utbetales. AllCompletelyPayedInvoiceWillBeClosed=Alle faktura uten gjenstår å betale vil bli automatisk stengt for status "betales". // STOP - Lines generated via autotranslator.php tool (2012-02-29 17:07:28). diff --git a/htdocs/langs/nb_NO/install.lang b/htdocs/langs/nb_NO/install.lang index 7597062d7ea..596b6160c3f 100644 --- a/htdocs/langs/nb_NO/install.lang +++ b/htdocs/langs/nb_NO/install.lang @@ -9,7 +9,7 @@ // Reference language: en_US CHARSET=UTF-8 InstallEasy=Bare følg instruksjonene trinn for trinn. -MiscellanousChecks=Forutsetninger sjekk +MiscellaneousChecks=Forutsetninger sjekk DolibarrWelcome=Velkommen til Dolibarr ConfFileExists=Konfigurasjonsfil %s eksisterer. ConfFileDoesNotExists=Konfigurasjonsfil %s finnes ikke! diff --git a/htdocs/langs/nb_NO/members.lang b/htdocs/langs/nb_NO/members.lang index 471b4e735a9..62c8faf8822 100644 --- a/htdocs/langs/nb_NO/members.lang +++ b/htdocs/langs/nb_NO/members.lang @@ -29,7 +29,7 @@ DescADHERENT_CARD_TEXT_RIGHT=Tekst trykt på kort medlem (justere på høyre) DescADHERENT_MAILMAN_LISTS=Liste (er) for automatisk insription av nye medlemmer (separert med komma) NoThirdPartyAssociatedToMember=Ingen tredjepart knyttet til dette medlemmet ThirdPartyDolibarr=Dolibarr tredjepart -MembersAndSubscriptions=Medlemmer og Suscriptions +MembersAndSubscriptions=Medlemmer og Subscriptions // STOP - Lines generated via autotranslator.php tool (2010-07-17 11:48:27). diff --git a/htdocs/langs/nb_NO/other.lang b/htdocs/langs/nb_NO/other.lang index aa9883fe23d..8e9428dc97d 100644 --- a/htdocs/langs/nb_NO/other.lang +++ b/htdocs/langs/nb_NO/other.lang @@ -22,12 +22,12 @@ TotalSizeOfAttachedFiles=Total størrelse på vedlagte filer/dokumenter MaxSize=Maksimal størrelse AttachANewFile=Legg ved ny fil/dokument LinkedObject=Lenkede objekter -Miscellanous=Diverse +Miscellaneous=Diverse NbOfActiveNotifications=Antall påminnelser -PredefinedMailContentSendInvoice=Vedlagt oversendes faktura __FACREF__\n\n__PERSONALIZED__Med vennlig hilsen\n\n__SIGNATURE__ -PredefinedMailContentSendInvoiceReminder=I følge våre noteringer ser det ut til at vår faktura __FACREF__ fortsatt står ubetalt hos oss. Dersom Deres betaling har krysset denne påminnelsen ber vi Dem vennligst se bort fra denne henvendelsen. \n\n__PERSONALIZED__Med vennlig hilsen\n\n__SIGNATURE__ -PredefinedMailContentSendProposal=Vedlagt oversendes tilbud __PROPREF__\n\n__PERSONALIZED__Med vennlig hilsen\n\n__SIGNATURE__ -PredefinedMailContentSendOrder=Vedlagt oversendese __ORDERREF__\n\n__PERSONALIZED__Med vennlig hilsen\n\n__SIGNATURE__ +PredefinedMailContentSendInvoice=__CONTACTCIVNAME__ \n\n Vedlagt oversendes faktura __FACREF__\n\n__PERSONALIZED__Med vennlig hilsen\n\n__SIGNATURE__ +PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__ \n\n I følge våre noteringer ser det ut til at vår faktura __FACREF__ fortsatt står ubetalt hos oss. Dersom Deres betaling har krysset denne påminnelsen ber vi Dem vennligst se bort fra denne henvendelsen. \n\n__PERSONALIZED__Med vennlig hilsen\n\n__SIGNATURE__ +PredefinedMailContentSendProposal=__CONTACTCIVNAME__ \n\n Vedlagt oversendes tilbud __PROPREF__\n\n__PERSONALIZED__Med vennlig hilsen\n\n__SIGNATURE__ +PredefinedMailContentSendOrder=__CONTACTCIVNAME__ \n\n Vedlagt oversendese __ORDERREF__\n\n__PERSONALIZED__Med vennlig hilsen\n\n__SIGNATURE__ DemoDesc=Dolibarr er ikke en komplett ERP, men er bygget opp av flere forskjellige moduler. Vi har derfor laget flere forskjellige demoprofiler ChooseYourDemoProfil=Velg demoprofilen som passer til ditt område... DemoFundation=Håndtere medlemmer i en organisasjon @@ -170,7 +170,7 @@ ExternalSites=Eksterne nettsteder // START - Lines generated via autotranslator.php tool (2010-09-04 01:33:40). // Reference language: en_US -> nb_NO -PredefinedMailContentSendSupplierOrder=Du finner her vårt bestillingsskjema __ORDERREF__ \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ +PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__ \n\n Du finner her vårt bestillingsskjema __ORDERREF__ \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ WeightUnitpound=pund VolumeUnitounce=unse VolumeUnitlitre=liter @@ -222,9 +222,9 @@ Notify_BILL_SENTBYMAIL=Kunden faktura sendt i posten Notify_ORDER_SUPPLIER_VALIDATE=Leverandør orden validert Notify_ORDER_SUPPLIER_SENTBYMAIL=Leverandør ordre sendes med post Notify_BILL_SUPPLIER_VALIDATE=Leverandør faktura validert -PredefinedMailContentSendSupplierInvoice=Du finner her fakturaen __FACREF__ \n\n__PERSONALIZED__ Vennlig hilsen \n\n__SIGNATURE__ -PredefinedMailContentSendShipping=Du finner her shipping __SHIPPINGREF__ \n\n__PERSONALIZED__ Vennlig hilsen \n\n__SIGNATURE__ -PredefinedMailContentSendFichInter=Du finner her intervensjonen __FICHINTERREF__ \n\n__PERSONALIZED__ Vennlig hilsen \n\n__SIGNATURE__ +PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__ \n\n Du finner her fakturaen __FACREF__ \n\n__PERSONALIZED__ Vennlig hilsen \n\n__SIGNATURE__ +PredefinedMailContentSendShipping=__CONTACTCIVNAME__ \n\n Du finner her shipping __SHIPPINGREF__ \n\n__PERSONALIZED__ Vennlig hilsen \n\n__SIGNATURE__ +PredefinedMailContentSendFichInter=__CONTACTCIVNAME__ \n\n Du finner her intervensjonen __FICHINTERREF__ \n\n__PERSONALIZED__ Vennlig hilsen \n\n__SIGNATURE__ Top=Topp Bottom=Bottom FileIsTooBig=Filer er for stor diff --git a/htdocs/langs/nl_BE/admin.lang b/htdocs/langs/nl_BE/admin.lang index 9da2674c14c..752ef761798 100644 --- a/htdocs/langs/nl_BE/admin.lang +++ b/htdocs/langs/nl_BE/admin.lang @@ -413,10 +413,6 @@ Module1780Name = Categorieën Module1780Desc = Categorie' beheer (producten, leveranciers en klanten) Module2000Name = Module2000Desc = -Module2200Name = Uitleenrechten -Module2200Desc = Uitleenrechten beheer -Module2300Name = Menu's -Module2300Desc = Menu's beheer Module2400Name = Agenda Module2400Desc = Acties / taken en agenda beheer Module2500Name = Electronic Content Management @@ -814,7 +810,7 @@ GeneratedPasswordDesc = Definieer hier de regel die u wilt gebruiken voor het ge DictionnaryDesc = Definieer hier alle referentie data. U kunt vooraf gedefinieerde waarde met de jouwe. ConstDesc = Deze pagina kunt u alle andere parameters die niet beschikbaar zijn in de voorgaande pagina's. Ze zijn voorbehouden parameters voor geavanceerde ontwikkelaars of voor troubleshouting. OnceSetupFinishedCreateUsers = Waarschuwing, u bent een Dolibarr administrator gebruiker. Administrators worden gebruikt voor het configureren van Dolibarr. Voor een normaal gebruik van Dolibarr wordt aangeraden om gebruik te maken van een niet-administrator gebruiker. Deze kan aangemaakt worden in het menu "Gebruikers en Groepen". -MiscellanousDesc = Definieer hier alle andere parameters die betrekking hebben op veiligheid. +MiscellaneousDesc = Definieer hier alle andere parameters die betrekking hebben op veiligheid. LimitsSetup = Grenzen / Precision setup LimitsDesc = U kunt definiëren grenzen, preciseringen en optimalisatie gebruikt door Dolibarr hier MAIN_MAX_DECIMALS_UNIT = Max decimalen voor eenheidsprijzen @@ -894,7 +890,7 @@ DocumentModelOdt = WatermarkOnDraft = CompanyIdProfChecker = MustBeUnique = Moet uniek zijn? -Miscellanous = Diverse +Miscellaneous = Diverse ##### Webcal setup ##### = WebCalSetup = Webcalendar link setup WebCalSyncro = Toevoegen Dolibarr evenementen WebCalendar diff --git a/htdocs/langs/nl_BE/install.lang b/htdocs/langs/nl_BE/install.lang index 6c013aa58c8..6bf989f5dc8 100644 --- a/htdocs/langs/nl_BE/install.lang +++ b/htdocs/langs/nl_BE/install.lang @@ -1,7 +1,7 @@ # Dolibarr language file - nl_BE - install CHARSET=UTF-8 InstallEasy=We hebben geprobeerd om de Dolibarr installatie zo eenvoudig mogelijk te maken. Volg de instructies stap voor stap. -MiscellanousChecks=Vereisten controleren +MiscellaneousChecks=Vereisten controleren DolibarrWelcome=Welkom bij Dolibarr ConfFileExists=Configuratiebestand %s bestaat. ConfFileDoesNotExists=Configuratiebestand %s bestaat niet! diff --git a/htdocs/langs/nl_BE/other.lang b/htdocs/langs/nl_BE/other.lang index 11bb7c4eb67..10913878f40 100644 --- a/htdocs/langs/nl_BE/other.lang +++ b/htdocs/langs/nl_BE/other.lang @@ -13,7 +13,7 @@ TotalSizeOfAttachedFiles=Totale omvang van de bijgevoegde bestanden / documenten MaxSize=Maximale grootte AttachANewFile=Voeg een nieuw bestand / document toe LinkedObject=Gekoppeld object -Miscellanous=Diversen +Miscellaneous=Diversen NbOfActiveNotifications=Aantal aanmeldingen DemoDesc=Dolibarr is geen compacte ERP maar is opgebouwd uit verschillende functionele modules. Een demo waarin alle modules zijn geactiveerd heeft geen zin, omdat niet alle modules in praktijk worden gebruikt. Het kan echter zijn dat alle modules wel worden gebruikt, dus zijn er verschillende demo-profielen beschikbaar. ChooseYourDemoProfil=Kies een demo profiel die overeenkomt met uw activiteit ... diff --git a/htdocs/langs/nl_NL/admin.lang b/htdocs/langs/nl_NL/admin.lang index b6645c0783c..59259ffdb91 100644 --- a/htdocs/langs/nl_NL/admin.lang +++ b/htdocs/langs/nl_NL/admin.lang @@ -383,10 +383,6 @@ Module1780Name = Categorieën Module1780Desc = Categoriebeheer (producten, leveranciers en afnemers) Module2000Name = Fckeditor Module2000Desc = Een WYSIWYG editor -Module2200Name = Uitleenrechten -Module2200Desc = Uitleenrechtenbeheer -Module2300Name = Menu's -Module2300Desc = Menubeheer Module2400Name = Agenda Module2400Desc = Acties-, taken- en agendabeheer Module2500Name = Electronic Content Management @@ -780,7 +776,7 @@ GeneratedPasswordDesc = Stel hier de regel in die u wilt gebruiken voor het gene DictionnaryDesc = Stel hier alle constanten in. U kunt vooraf ingestelde waarden aanpassen naar de uwe. ConstDesc = Op deze pagina vint u alle andere instellingen die niet beschikbaar zijn in de voorgaande pagina's. Ze zijn voorbehouden instellingen voor geavanceerde ontwikkelaars of voor 'troubleshouting'. OnceSetupFinishedCreateUsers = Waarschuwing, u bent een Dolibarr beheerder. Beheerdersaccounts worden gebruikt voor de installatie van Dolibarr. Voor een normaal gebruik van Dolibarr, wordt aangeraden gebruik te maken van een niet-beheerders account, aangemaakt onder: Gebruikers & Groepen menu. -MiscellanousDesc = Stel hier alle andere instellingen in die betrekking hebben op veiligheid. +MiscellaneousDesc = Stel hier alle andere instellingen in die betrekking hebben op veiligheid. LimitsSetup = Limieten- en precisieinstellingen LimitsDesc = U kunt hier limieten en preciseringen die Dolibarr gebruikt instellen MAIN_MAX_DECIMALS_UNIT = Maximaal aantal decimalen voor eenheidsprijzen @@ -1286,7 +1282,7 @@ SendingMailSetup=Instellen van verzendingen via e-mail SendmailOptionNotComplete=Waarschuwing, op sommige Linux-systemen, e-mail verzenden vanaf uw e-mail, sendmail uitvoering setup moet conatins optie-ba (parameter mail.force_extra_parameters in uw php.ini-bestand). Als sommige ontvangers nooit e-mails ontvangen, probeer dit PHP parameter bewerken met mail.force_extra_parameters =-ba). CompanyIdProfChecker=Professionele Id unieke MustBeUnique=Moet uniek zijn? -Miscellanous=Diversen +Miscellaneous=Diversen // STOP - Lines generated via autotranslator.php tool (2011-10-10 02:13:00). diff --git a/htdocs/langs/nl_NL/bills.lang b/htdocs/langs/nl_NL/bills.lang index d8d7bae1abe..bc238882ecc 100644 --- a/htdocs/langs/nl_NL/bills.lang +++ b/htdocs/langs/nl_NL/bills.lang @@ -400,7 +400,7 @@ EditGlobalDiscounts=Edit absolute kortingen AddCreditNote=Maak een credit nota AllCompletelyPayedInvoiceWillBeClosed=Alle factuur zonder te blijven om te betalen zal automatisch worden gesloten om status "Betaald". TerreNumRefModelError=Een wetsvoorstel te beginnen met $ syymm bestaat al en is niet compatibel met dit model van de reeks. Verwijderen of hernoemen naar deze module te activeren. -ClosePaidInvoicesAutomatically=Classificeren "Betaalde" alle standaard of vervanging facturen entierely betaald. +ClosePaidInvoicesAutomatically=Classificeren "Betaalde" alle standaard of vervanging facturen entirely betaald. // STOP - Lines generated via autotranslator.php tool (2011-10-10 02:25:52). diff --git a/htdocs/langs/nl_NL/install.lang b/htdocs/langs/nl_NL/install.lang index b6bccb5d049..165e4e610be 100644 --- a/htdocs/langs/nl_NL/install.lang +++ b/htdocs/langs/nl_NL/install.lang @@ -1,7 +1,7 @@ # Dolibarr language file - nl_NL - install CHARSET = UTF-8 InstallEasy = Volg simpelweg stap voor stap de instructies -MiscellanousChecks = Vereisten controle +MiscellaneousChecks = Vereisten controle DolibarrWelcome = Welkom bij Dolibarr ConfFileExists = Configuratiebestand %s bestaat. ConfFileDoesNotExists = Configuratiebestand %s bestaat niet! diff --git a/htdocs/langs/nl_NL/other.lang b/htdocs/langs/nl_NL/other.lang index 361ac295a61..a7289d9e59a 100644 --- a/htdocs/langs/nl_NL/other.lang +++ b/htdocs/langs/nl_NL/other.lang @@ -23,16 +23,16 @@ TotalSizeOfAttachedFiles = Totale omvang van de bijgevoegde bestanden / document MaxSize = Maximale grootte AttachANewFile = Voeg een nieuw bestand / document bij LinkedObject = Gekoppeld object -Miscellanous = Diversen +Miscellaneous = Diversen NbOfActiveNotifications = Aantal kennisgevingen PredefinedMailTest = Dit is een test e-mail.\nDe twee lijnen worden gescheiden door een harde return. PredefinedMailTestHtml = Dit is een test e-mail (het woord test moet vetgedrukt worden weergegeven).
De twee lijnen worden gescheiden door een harde return. -PredefinedMailContentSendInvoice = Bijgevoegd vindt u de factuur __FACREF__ \n\n__PERSONALIZED__Met vriendelijke groeten,\n\n__SIGNATURE__ -PredefinedMailContentSendInvoiceReminder = Wij willen u erop wijzen dat de factuur __FACREF__ niet lijkt te zijn voldaan. Daarom sturen wij u nogmaals de factuur als bijlage. \n\n__PERSONALIZED__Met vriendelijke groeten,\n\n__SIGNATURE__ -PredefinedMailContentSendProposal = Hierbij sturen wij u de offerte __PROPREF__ \n\n__PERSONALIZED__Met vriendelijke groeten,\n\n__SIGNATURE__ -PredefinedMailContentSendOrder = Hierbij sturen wij u de opdracht __ORDERREF__ \n\n__PERSONALIZED__Met vriendelijke groeten,\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierOrder = Hierbij onze opdracht __ORDERREF__ \n\n__PERSONALIZED__Met vriendelijke groeten,\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierInvoice = Hierbij sturen wij u de factuur __FACREF__\n\n__PERSONALIZED__Met vriendelijke groeten,\n\n__SIGNATURE__ +PredefinedMailContentSendInvoice = __CONTACTCIVNAME__ \n\n Bijgevoegd vindt u de factuur __FACREF__ \n\n__PERSONALIZED__Met vriendelijke groeten,\n\n__SIGNATURE__ +PredefinedMailContentSendInvoiceReminder = __CONTACTCIVNAME__ \n\n Wij willen u erop wijzen dat de factuur __FACREF__ niet lijkt te zijn voldaan. Daarom sturen wij u nogmaals de factuur als bijlage. \n\n__PERSONALIZED__Met vriendelijke groeten,\n\n__SIGNATURE__ +PredefinedMailContentSendProposal =__CONTACTCIVNAME__ \n\n Hierbij sturen wij u de offerte __PROPREF__ \n\n__PERSONALIZED__Met vriendelijke groeten,\n\n__SIGNATURE__ +PredefinedMailContentSendOrder = __CONTACTCIVNAME__ \n\n Hierbij sturen wij u de opdracht __ORDERREF__ \n\n__PERSONALIZED__Met vriendelijke groeten,\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierOrder = __CONTACTCIVNAME__ \n\n Hierbij onze opdracht __ORDERREF__ \n\n__PERSONALIZED__Met vriendelijke groeten,\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierInvoice = __CONTACTCIVNAME__ \n\n Hierbij sturen wij u de factuur __FACREF__\n\n__PERSONALIZED__Met vriendelijke groeten,\n\n__SIGNATURE__ DemoDesc = Dolibarr is een compacte ERP / CRM oplossing opgebouwd met verschillende functionele modules. Een demo met alle modules beschikbaar betekent niets als nooit iets gebeurt. Dus, zijn enkele demo-profielen beschikbaar. ChooseYourDemoProfil = Kies het demoprofiel dat overeenkomt met uw activiteiten... DemoFundation = Ledenbeheer van een stichting @@ -206,8 +206,8 @@ Notify_MEMBER_VALIDATE=Lid gevalideerd Notify_MEMBER_SUBSCRIPTION=Lid ingeschreven Notify_MEMBER_RESILIATE=Lid resiliated Notify_MEMBER_DELETE=Lid verwijderd -PredefinedMailContentSendShipping=Hier vindt u de verzendkosten __SHIPPINGREF__ \n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendFichInter=Hier vindt u de tussenkomst __FICHINTERREF__ \n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendShipping=__CONTACTCIVNAME__ \n\nHier vindt u de verzendkosten __SHIPPINGREF__ \n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendFichInter=__CONTACTCIVNAME__ \n\nHier vindt u de tussenkomst __FICHINTERREF__ \n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ SelectAColor=Kies een kleur AddFiles=Bestanden toevoegen StartUpload=Start uploaden diff --git a/htdocs/langs/pl_PL/admin.lang b/htdocs/langs/pl_PL/admin.lang index 61697021fea..f64a3185ca4 100644 --- a/htdocs/langs/pl_PL/admin.lang +++ b/htdocs/langs/pl_PL/admin.lang @@ -200,7 +200,7 @@ ModuleFamilyProducts=Produkty Management ModuleFamilyHr=Zarządzanie zasobami ludzkimi ModuleFamilyProjects=Projekty / współpracy ModuleFamilyOther=Inny -ModuleFamilyTechnic=Mutli-modules narzędzia +ModuleFamilyTechnic=Multi-modules narzędzia ModuleFamilyExperimental=Eksperymentalne modules ModuleFamilyFinancial=Moduły finansowe (Księgowość / Skarbu) ModuleFamilyECM=ECM @@ -306,10 +306,6 @@ Module1400Name=Księgowość ekspertów Module1400Desc=Księgowość zarządzania dla ekspertów (double stron) Module1780Name=Kategorie Module1780Desc=Kategorie zarządzania (produktów, dostawców i klientów) -Module2200Name=Użyczanie -Module2200Desc=Kredyty zarządzania prawami -Module2300Name=Menu -Module2300Desc=Menu zarządzania Module2400Name=Porządek obrad Module2400Desc=Działania / zadania i porządku zarządzania Module2500Name=Electronic Content Management @@ -604,7 +600,7 @@ GeneratedPasswordDesc=Określ tutaj reguły, które chcesz użyć do wygenerowan DictionnaryDesc=Określ tutaj wszystkie odniesienia danych. Możesz zakończyć predefiniowane wartości Ciebie. ConstDesc=Ta strona pozwala edytować wszystkie inne parametry nie są dostępne w poprzedniej strony. Są one zastrzeżone dla zaawansowanych parametrów deweloperzy lub troubleshouting. OnceSetupFinishedCreateUsers=Ostrzeżenie, jesteś Dolibarr administratora użytkownika. Administrator użytkowników wykorzystywane są do konfiguracji Dolibarr. Dla Zazwyczaj korzystanie z Dolibarr, zaleca się używać nieujemnych administratora użytkownika tworzone Użytkownicy i grupy menu. -MiscellanousDesc=Określ tutaj wszystkie inne parametry związane z bezpieczeństwem. +MiscellaneousDesc=Określ tutaj wszystkie inne parametry związane z bezpieczeństwem. LimitsSetup=Ograniczenia / Precision konfiguracji LimitsDesc=Można określić limity, doprecyzowanie i optymalizacje stosowane przez Dolibarr tutaj MAIN_MAX_DECIMALS_UNIT=Max dziesiętnych na ceny jednostkowe @@ -1272,7 +1268,7 @@ SendmailOptionNotComplete=Uwaga, w niektórych systemach Linux, aby wysłać e-m SendmailOptionMayHurtBuggedMTA=Funkcja wysyłania wiadomości za pomocą metody "PHP mail bezpośrednie" wygeneruje wiadomość e-mail, które mogą nie być prawidłowo przetwarzany przez niektórych serwerach odbieraniem poczty. Powoduje to, że niektóre maile nie mogą być odczytywane przez ludzi hostowanych przez thoose podsłuchu platform. Jest tak w przypadku niektórych dostawców internetowych (np.: Orange w Francji). To nie jest problem w Dolibarr ani w PHP, ale na otrzymaniu serwera poczty jest. Można jednak dodać MAIN_FIX_FOR_BUGGED_MTA opcji do 1 w konfiguracji - inne zmiany Dolibarr aby tego uniknąć. Jednak może wystąpić problem z innych serwerów, które ścisłego przestrzegania standardowych SMTP. Innym rozwiązaniem (zaleciły) jest użycie metody "SMTP gniazdo biblioteki", który ma wady. CompanyIdProfChecker=Profesjonalny Identyfikator unikalny MustBeUnique=Musi być wyjątkowa? -Miscellanous=Różne +Miscellaneous=Różne ContractsSetup=Konfiguracja modułu umowy ContractsNumberingModules=Kontrakty numerowania modułów AdherentLoginRequired=Zarządzanie logowania dla każdego członka diff --git a/htdocs/langs/pl_PL/bills.lang b/htdocs/langs/pl_PL/bills.lang index 422892976c9..549154c32e2 100644 --- a/htdocs/langs/pl_PL/bills.lang +++ b/htdocs/langs/pl_PL/bills.lang @@ -432,6 +432,6 @@ EditGlobalDiscounts=Edytuj bezwzględne zniżki AddCreditNote=Tworzenie noty kredytowej InvoiceNotChecked=Nie wybrano faktura ShowUnpaidAll=Pokaż wszystkie niezapłacone faktury -ClosePaidInvoicesAutomatically=Klasyfikowanie "Opłacone" wszystkie standardy lub fakturach zastępczych entierely zapłaci. +ClosePaidInvoicesAutomatically=Klasyfikowanie "Opłacone" wszystkie standardy lub fakturach zastępczych entirely zapłaci. AllCompletelyPayedInvoiceWillBeClosed=Wszystko faktura bez pozostawać do zapłaty zostanie automatycznie zamknięta do statusu "płatny". // STOP - Lines generated via autotranslator.php tool (2012-02-29 17:19:17). diff --git a/htdocs/langs/pl_PL/install.lang b/htdocs/langs/pl_PL/install.lang index aac038cf676..69765ee10b5 100644 --- a/htdocs/langs/pl_PL/install.lang +++ b/htdocs/langs/pl_PL/install.lang @@ -1,7 +1,7 @@ # Dolibarr language file - pl_PL - install CHARSET=UTF-8 InstallEasy=Staraliśmy się by instalacja Dolibarra była tak prosta jak to możliwe. Postępuj wg instrukcji krok po kroku. -MiscellanousChecks=Sprawdzenie wymagań +MiscellaneousChecks=Sprawdzenie wymagań DolibarrWelcome=Witaj w Dolibarrze ConfFileExists=Plik konfiguracyjny %s istnieje. ConfFileDoesNotExists=Plik konfiguracyjny %s nie istnieje! @@ -213,7 +213,7 @@ MigrationDeliveryAddress=Aktualizacja adresu dostarczenia przesyłki // Reference language: en_US CHARSET=UTF-8 InstallEasy=Bare følg instruksjonene trinn for trinn. -MiscellanousChecks=Forutsetninger sjekk +MiscellaneousChecks=Forutsetninger sjekk DolibarrWelcome=Velkommen til Dolibarr ConfFileExists=Konfigurasjonsfil %s eksisterer. ConfFileDoesNotExists=Konfigurasjonsfil %s finnes ikke! diff --git a/htdocs/langs/pl_PL/members.lang b/htdocs/langs/pl_PL/members.lang index 4782007adfd..0810e643b43 100644 --- a/htdocs/langs/pl_PL/members.lang +++ b/htdocs/langs/pl_PL/members.lang @@ -162,7 +162,7 @@ MemberId=Państwa id PaymentSubscription=Nowy wkład płatności NoThirdPartyAssociatedToMember=Nr trzeciej związane do tego członka ThirdPartyDolibarr=Dolibarr trzeciej -MembersAndSubscriptions=Członkowie i Suscriptions +MembersAndSubscriptions=Członkowie i Subscriptions // STOP - Lines generated via autotranslator.php tool (2009-08-13 21:07:31). diff --git a/htdocs/langs/pl_PL/other.lang b/htdocs/langs/pl_PL/other.lang index 8c1c462be49..f27b2e78fa8 100644 --- a/htdocs/langs/pl_PL/other.lang +++ b/htdocs/langs/pl_PL/other.lang @@ -25,7 +25,7 @@ TotalSizeOfAttachedFiles=Całkowita wielkość załączonych plików / dokument MaxSize=Maksymalny rozmiar AttachANewFile=Załącz nowy plik / dokument LinkedObject=Związany obiektu -Miscellanous=Miscellaneous +Miscellaneous=Miscellaneous NbOfActiveNotifications=Liczba zgłoszeń ChooseYourDemoProfil=Wybierz demo, które pasują do profilu działalności ... DemoFundation=Zarządzanie użytkowników o fundacji @@ -251,7 +251,7 @@ ExternalSites=tereny zewnętrzne // START - Lines generated via autotranslator.php tool (2010-09-04 01:33:40). // Reference language: en_US -> pl_PL -PredefinedMailContentSendSupplierOrder=Znajdziecie tu nasze zamówienie __ORDERREF__ \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ +PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__ \n\n Znajdziecie tu nasze zamówienie __ORDERREF__ \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ WeightUnitpound=funt VolumeUnitounce=uncja VolumeUnitlitre=litr @@ -279,9 +279,9 @@ Notify_MEMBER_VALIDATE=Członek zatwierdzone Notify_MEMBER_SUBSCRIPTION=Członek subskrybowanych Notify_MEMBER_RESILIATE=Członek resiliated Notify_MEMBER_DELETE=Członek usunięte -PredefinedMailContentSendSupplierInvoice=Znajdziecie tu Państwo fakturę __FACREF__ \n\nSincerely \n\n -PredefinedMailContentSendShipping=Znajdziesz tu wysyłki __SHIPPINGREF__ \n\n__PERSONALIZED__Sincerely \n\n -PredefinedMailContentSendFichInter=Znajdziesz tu interwencji __FICHINTERREF__ \n\n__PERSONALIZED__Sincerely \n\n +PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__ \n\n Znajdziecie tu Państwo fakturę __FACREF__ \n\nSincerely \n\n +PredefinedMailContentSendShipping=__CONTACTCIVNAME__ \n\n Znajdziesz tu wysyłki __SHIPPINGREF__ \n\n__PERSONALIZED__Sincerely \n\n +PredefinedMailContentSendFichInter=__CONTACTCIVNAME__ \n\n Znajdziesz tu interwencji __FICHINTERREF__ \n\n__PERSONALIZED__Sincerely \n\n Top=Top Bottom=Dno FileFormat=Format pliku @@ -305,10 +305,10 @@ Notify_BILL_SUPPLIER_SENTBYMAIL=Faktura dostawca wysłane pocztą Notify_CONTRACT_VALIDATE=Umowa zatwierdzona Notify_FICHEINTER_VALIDATE=Interwencja zatwierdzone Notify_SHIPPING_VALIDATE=Wysyłka zatwierdzone -PredefinedMailContentSendInvoice=Znajdziecie tu Państwo faktury __FACREF__ \n\n__PERSONALIZED__ poważaniem \n\n__SIGNATURE__ -PredefinedMailContentSendInvoiceReminder=Pragniemy ostrzec, że faktura __FACREF__ wydaje się nie być wypłacana. Więc to jest faktura w załączniku ponownie, jako przypomnienie. \n\n__PERSONALIZED__ poważaniem \n\n__SIGNATURE__ -PredefinedMailContentSendProposal=Znajdziecie tu komercyjnego propoal __PROPREF__ \n\n__PERSONALIZED__ poważaniem \n\n__SIGNATURE__ -PredefinedMailContentSendOrder=Znajdziecie tutaj aby __ORDERREF__ \n\n__PERSONALIZED__ poważaniem \n\n__SIGNATURE__ +PredefinedMailContentSendInvoice=__CONTACTCIVNAME__ \n\n Znajdziecie tu Państwo faktury __FACREF__ \n\n__PERSONALIZED__ poważaniem \n\n__SIGNATURE__ +PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__ \n\n Pragniemy ostrzec, że faktura __FACREF__ wydaje się nie być wypłacana. Więc to jest faktura w załączniku ponownie, jako przypomnienie. \n\n__PERSONALIZED__ poważaniem \n\n__SIGNATURE__ +PredefinedMailContentSendProposal=__CONTACTCIVNAME__ \n\n Znajdziecie tu komercyjnego propoal __PROPREF__ \n\n__PERSONALIZED__ poważaniem \n\n__SIGNATURE__ +PredefinedMailContentSendOrder=__CONTACTCIVNAME__ \n\n Znajdziecie tutaj aby __ORDERREF__ \n\n__PERSONALIZED__ poważaniem \n\n__SIGNATURE__ Left=W lewo Right=Prawo ThisIsListOfModules=To jest lista modułów selekcjonowane przez tego profilu demo (tylko najczęściej moduły są widoczne w tym demo). Zmodyfikować, aby mieć bardziej spersonalizowany demo i kliknij "Start". diff --git a/htdocs/langs/pt_BR/admin.lang b/htdocs/langs/pt_BR/admin.lang index 78a92d28d73..2dc05d0d1e5 100644 --- a/htdocs/langs/pt_BR/admin.lang +++ b/htdocs/langs/pt_BR/admin.lang @@ -320,10 +320,6 @@ Module1200Name=Mantis Module1200Desc=Interface com o sistema de seguimento de incidências Mantis Module1780Name=Categorias Module1780Desc=Administração de categorias (produtos, Fornecedores e clientes) -Module2200Name=Direito de emprétimos -Module2200Desc=Administração dos direitos de emprétimos -Module2300Name=Menus -Module2300Desc=Administração dos menus por base de dados Module2400Name=Agenda Module2400Desc=Administração da agenda e das ações Module2500Name=Administração Eletrônica de Documentos @@ -666,7 +662,7 @@ GeneratedPasswordDesc=Indique aqui que norma quer utilizar para Gerar as Senhas DictionnaryDesc=Indique aqui os dados de referencia. pode completar/modificar os dados predefinidos com os seus ConstDesc=qualquer outro parâmetro não editável em páginas anteriores OnceSetupFinishedCreateUsers=Atenção, está baixo de uma conta de administrador de Dolibarr. os administradores se utilizam para configurar a Dolibarr. Para um uso corrente de Dolibarr, recomenda-se utilizar uma conta não administrador criada a partir do menu "Usuários e grupos" -MiscellanousDesc=Defina aqui os Outros parâmetros relacionados com a segurança. +MiscellaneousDesc=Defina aqui os Outros parâmetros relacionados com a segurança. LimitsSetup=configuração de limites e precisões LimitsDesc=pode definir aqui os limites e precisões utilizados por Dolibarr MAIN_MAX_DECIMALS_UNIT=Casas decimais máximas para os preços unitários diff --git a/htdocs/langs/pt_BR/install.lang b/htdocs/langs/pt_BR/install.lang index c398d91fcbd..0a0f83e1d50 100644 --- a/htdocs/langs/pt_BR/install.lang +++ b/htdocs/langs/pt_BR/install.lang @@ -1,7 +1,7 @@ # Dolibarr language file - fr_PT - install CHARSET=UTF-8 InstallEasy=Tentámos tornar a instalação do Dolibarr o mais fácil possível. É favor seguir as instruções passo-a-passo. -MiscellanousChecks=Pré-requisitos check +MiscellaneousChecks=Pré-requisitos check DolibarrWelcome=Bem-vindo ao Dolibarr ConfFileExists=O arquivo de configuração conf.php existe. ConfFileDoesNotExists=Arquivo de configuração %s não existe! diff --git a/htdocs/langs/pt_BR/other.lang b/htdocs/langs/pt_BR/other.lang index 43c27cbfbf6..cb9fae3cdf9 100755 --- a/htdocs/langs/pt_BR/other.lang +++ b/htdocs/langs/pt_BR/other.lang @@ -17,12 +17,12 @@ TotalSizeOfAttachedFiles=Tamanho Total dos Arquivos/Documentos Anexos MaxSize=Tamanho Máximo AttachANewFile=Adicionar Novo Arquivo/Documento LinkedObject=Arquivo Anexo -Miscellanous=Diversos +Miscellaneous=Diversos NbOfActiveNotifications=Número Notificações -PredefinedMailContentSendInvoice=Estimados senhores,\n\nem anexo enviamos a nossa fatura __FACREF__ .\n\nAtenciosamente\n\n -PredefinedMailContentSendInvoiceReminder=Estimados senhores,\n\ninformamos que a fatura __FACREF__ nos consta como não paga. Por favor revisar a fatura anexada e nos dar uma posicao.\n\nAtenciosamente\n\n -PredefinedMailContentSendProposal=Estimados senhores,\n\nem anexo enviamos a proposta solicitada __PROPREF__ .\n\nAtenciosamente\n\n -PredefinedMailContentSendOrder=Estimados senhores,\n\nem anexo segue o pedido solicitado __ORDERREF__ .\n\nAtenciosamente\n\n +PredefinedMailContentSendInvoice=__CONTACTCIVNAME__ \n\n Estimados senhores,\n\nem anexo enviamos a nossa fatura __FACREF__ .\n\nAtenciosamente\n\n +PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__ \n\n Estimados senhores,\n\ninformamos que a fatura __FACREF__ nos consta como não paga. Por favor revisar a fatura anexada e nos dar uma posicao.\n\nAtenciosamente\n\n +PredefinedMailContentSendProposal=__CONTACTCIVNAME__ \n\n Estimados senhores,\n\nem anexo enviamos a proposta solicitada __PROPREF__ .\n\nAtenciosamente\n\n +PredefinedMailContentSendOrder=__CONTACTCIVNAME__ \n\n Estimados senhores,\n\nem anexo segue o pedido solicitado __ORDERREF__ .\n\nAtenciosamente\n\n DemoDesc=Dolibarr não é um ERP monolítico, mas está composto de módulos funcionais simples e opcionais. Uma demonstração que inclua todos estes módulos não tem sentido, já que nunca mais todos os módulos são utilizados. De todas maneras existe disponíveis muitos perfis de demonstração ChooseYourDemoProfil=quer ver o perfil de demonstração que melhor corresponda e a sua Atividade... DemoFundation=Administração de Membros de uma associação diff --git a/htdocs/langs/pt_PT/admin.lang b/htdocs/langs/pt_PT/admin.lang index c9a0c81d20e..a3de0cb68dd 100644 --- a/htdocs/langs/pt_PT/admin.lang +++ b/htdocs/langs/pt_PT/admin.lang @@ -528,7 +528,7 @@ MenuUpgrade = Upgrade / Ampliar MessageLogin = Mensagem do login MessageOfDay = Mensagem do día MinLength = Prazo mínimo -MiscellanousDesc = Defina aquí os Outros parâmetros relacionados com a segurança. +MiscellaneousDesc = Defina aquí os Outros parâmetros relacionados com a segurança. ModelModules = Documentos modelos ModifMenu = Modificação do menu ModifyProductDescAbility = Personalização das descrições dos produtos nos formularios @@ -562,8 +562,6 @@ Module2200Desc = Gestão dos direitos de empréstimos Module2200Name = Direito de empréstimos Module22Desc = Administração e envío de E-Mails massivos Module22Name = E-Mailings -Module2300Desc = Administração dos menus por base de dados -Module2300Name = Menus Module23Desc = Acompanhamento do consumo de energia Module23Name = Energia Module2400Desc = Gestão da agenda e das acções @@ -1209,7 +1207,7 @@ MAIN_PROXY_USER = Entrar para usar o servidor proxy MAIN_SMS_SENDMODE = Método a ser usado para enviar SMS MenuSmartphoneManager = Gestor de menu Smartphone MenuUseLayout = Faça menu vertical (javascript opção não deve ser desativado) -Miscellanous = Diversos +Miscellaneous = Diversos Module105Desc = Mailman ou Spip interface para o módulo membro Module105Name = Mailman e Sip Module50000Desc = Módulo para oferecer uma página de pagamento online por cartão de crédito com paybox diff --git a/htdocs/langs/pt_PT/install.lang b/htdocs/langs/pt_PT/install.lang index 4110c879efe..6d9829ca49f 100644 --- a/htdocs/langs/pt_PT/install.lang +++ b/htdocs/langs/pt_PT/install.lang @@ -149,7 +149,7 @@ MigrationStockDetail=Atualizar stock valor dos produtos MigrationSuccessfullUpdate=Actualização bem sucedida MigrationSupplierOrder=Migração de dados de Fornecedores' ordens MigrationUpdateFailed=Falha na atualização processo -MiscellanousChecks=Pré-requisitos check +MiscellaneousChecks=Pré-requisitos check NextStepMightLastALongTime=etapa atual pode durar vários minutos. Por favor, aguarde até a próxima tela é mostrada completamente antes de continuar. NotAvailable=Não disponível OpenBaseDir=parametr openbasedir PHP diff --git a/htdocs/langs/pt_PT/members.lang b/htdocs/langs/pt_PT/members.lang index 0c42a9c3295..d82002190b5 100644 --- a/htdocs/langs/pt_PT/members.lang +++ b/htdocs/langs/pt_PT/members.lang @@ -149,7 +149,7 @@ SetLinkToThirdParty=Link para uma Dolibarr terceiro SubscriptionId=Assinaturas id MemberId=Estados-id PaymentSubscription=Nova contribuição pagamento -MembersAndSubscriptions=Deputados e Suscriptions +MembersAndSubscriptions=Deputados e Subscriptions // STOP - Lines generated via autotranslator.php tool (2009-08-13 21:10:10). diff --git a/htdocs/langs/pt_PT/other.lang b/htdocs/langs/pt_PT/other.lang index 6123038bc5a..78666607153 100644 --- a/htdocs/langs/pt_PT/other.lang +++ b/htdocs/langs/pt_PT/other.lang @@ -14,12 +14,12 @@ TotalSizeOfAttachedFiles=Tamanho Total dos Ficheiros/Documentos anexos MaxSize=Tamanho Máximo AttachANewFile=Adicionar Novo Ficheiro/documento LinkedObject=Objecto adjudicado -Miscellanous=Diversos +Miscellaneous=Diversos NbOfActiveNotifications=Número Notificações -PredefinedMailContentSendInvoice=Juntamos a factura __FACREF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ -PredefinedMailContentSendInvoiceReminder=Damos conhecimento que a factura __FACREF__ parece não estar paga. Segue em anexo, para que possa rever.\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ -PredefinedMailContentSendProposal=Juntamos o orçamento __PROPREF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ -PredefinedMailContentSendOrder=Juntamos o pedido __ORDERREF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ +PredefinedMailContentSendInvoice=__CONTACTCIVNAME__ \n\n Juntamos a factura __FACREF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ +PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__ \n\n Damos conhecimento que a factura __FACREF__ parece não estar paga. Segue em anexo, para que possa rever.\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ +PredefinedMailContentSendProposal=__CONTACTCIVNAME__ \n\n Juntamos o orçamento __PROPREF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ +PredefinedMailContentSendOrder=__CONTACTCIVNAME__ \n\n Juntamos o pedido __ORDERREF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ DemoDesc=Dolibarr não é um ERP monolítico, mas está composto de módulos funcionais simples e opcionais. uma demonstração que inclua todos estes módulos não tem sentido, já que nunca mais todos Os módulos são utilizados. De todas maneiras existem disponiveis muitos perfis de demonstração ChooseYourDemoProfil=Quer ver o perfil de demonstração que melhor corresponda e a sua Actividade... DemoFundation=Gestão de Membros de uma associação @@ -151,7 +151,7 @@ DolibarrNotification=Notificação automática // START - Lines generated via autotranslator.php tool (2010-09-04 01:33:40). // Reference language: en_US -> pt_PT -PredefinedMailContentSendSupplierOrder=Você vai encontrar aqui o nosso fim __ORDERREF__ \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ +PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__ \n\nVocê vai encontrar aqui o nosso fim __ORDERREF__ \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ WeightUnitpound=libra VolumeUnitounce=onça VolumeUnitlitre=litro @@ -177,8 +177,8 @@ Notify_BILL_SUPPLIER_SENTBYMAIL=Fatura do fornecedor enviada por correio Notify_CONTRACT_VALIDATE=Contrato validado Notify_FICHEINTER_VALIDATE=Intervenção validado Notify_SHIPPING_VALIDATE=Transporte validado -PredefinedMailContentSendShipping=Você vai encontrar aqui o transporte __SHIPPINGREF__ \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ -PredefinedMailContentSendFichInter=Você vai encontrar aqui a intervenção __FICHINTERREF__ \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ +PredefinedMailContentSendShipping=__CONTACTCIVNAME__ \n\nVocê vai encontrar aqui o transporte __SHIPPINGREF__ \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ +PredefinedMailContentSendFichInter=__CONTACTCIVNAME__ \n\nVocê vai encontrar aqui a intervenção __FICHINTERREF__ \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ Top=Topo Bottom=Fundo Left=À esquerda @@ -204,7 +204,7 @@ Notify_MEMBER_VALIDATE=Membro validado Notify_MEMBER_SUBSCRIPTION=Membro subscrito Notify_MEMBER_RESILIATE=Membro anulado Notify_MEMBER_DELETE=Membro excluído -PredefinedMailContentSendSupplierInvoice=Você vai encontrar aqui a factura __FACREF__ \n\n__PERSONALIZED__ Sinceramente \n\n__SIGNATURE__ +PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__ \n\nVocê vai encontrar aqui a factura __FACREF__ \n\n__PERSONALIZED__ Sinceramente \n\n__SIGNATURE__ SelectAColor=Escolha uma cor AddFiles=Adicionar arquivos StartUpload=Iniciar upload diff --git a/htdocs/langs/ro_RO/admin.lang b/htdocs/langs/ro_RO/admin.lang index ac210903a1a..04bd74a5784 100644 --- a/htdocs/langs/ro_RO/admin.lang +++ b/htdocs/langs/ro_RO/admin.lang @@ -198,7 +198,7 @@ ModuleFamilyProducts=Produse de Management ModuleFamilyHr=Managementul resurselor umane ModuleFamilyProjects=Proiecte / Colaborativă munca ModuleFamilyOther=Alt -ModuleFamilyTechnic=Mutli-module de unelte +ModuleFamilyTechnic=Multi-module de unelte ModuleFamilyExperimental=Experimentale module ModuleFamilyFinancial=Module financiar (Contabilitate / Trezoreriei) ModuleFamilyECM=ECM @@ -304,10 +304,6 @@ Module1400Name=Expert contabil Module1400Desc=Contabilitate de gestiune pentru experţi (dublu părţi) Module1780Name=Categorii Module1780Desc=Categorii de "management (produse, furnizori şi clienţi) -Module2200Name=Credite drepturile -Module2200Desc=Credite de gestionare a drepturilor -Module2300Name=Meniuri -Module2300Desc=Meniuri de gestionare Module2400Name=Ordinea de zi Module2400Desc=Acţiuni / activităţi de ordine de zi şi de gestionare a Module2500Name=Electronic Content Management @@ -602,7 +598,7 @@ GeneratedPasswordDesc=Definiţi aici regulă care doriţi să-l utilizaţi pentr DictionnaryDesc=Definiţi aici toate datele de referinţă. Puteţi completa predefinite valoarea cu a ta. ConstDesc=Această pagină vă permite să editaţi toate alţi parametri care nu sunt disponibile în ultimele pagini. Acestea sunt rezervate pentru parametrii avansat dezvoltatorii sau pentru troubleshouting. OnceSetupFinishedCreateUsers=Atenţie, esti un utilizator Dolibarr administrator. Administrator utilizatori sunt utilizate pentru a instala Dolibarr. Pentru o utilizare obişnuită a Dolibarr, este recomandat să folosiţi un administrator de utilizator creat de utilizatori şi grupuri de meniu. -MiscellanousDesc=Definiţi parametrii de aici toate celelalte legate de securitate. +MiscellaneousDesc=Definiţi parametrii de aici toate celelalte legate de securitate. LimitsSetup=Limitele / precizie setup LimitsDesc=Puteţi defini limitele, precisions şi optimisations utilizate de către Dolibarr aici MAIN_MAX_DECIMALS_UNIT=Max zecimale pentru unitate de preţuri @@ -1273,7 +1269,7 @@ SendmailOptionNotComplete=Atenţie, pe unele sisteme Linux, pentru a trimite e-m SendmailOptionMayHurtBuggedMTA=Caracteristică pentru a trimite mesaje utilizând metoda "mail PHP directă" va genera un mesaj e-mail care nu s-ar putea să fie corect interpretat de către unele servere de e-mail primit. Rezultatul este că unele mail-uri nu pot fi citite de persoane găzduite de platforme thoose bugged. Este cazul unor furnizori de Internet (Ex: Orange în Franţa). Aceasta nu este o problemă în Dolibarr nici în PHP, dar primesc pe serverul de poştă electronică. Puteţi adăuga toate acestea, opţiunea MAIN_FIX_FOR_BUGGED_MTA la 1 în configurare - pentru a modifica alte Dolibarr pentru a evita acest lucru. Cu toate acestea, este posibil să aveţi probleme cu alte servere care sens strict standard SMTP. Altă soluţie (recommanded) este de a utiliza metoda "SMTP socket bibliotecă", care nu are dezavantaje. CompanyIdProfChecker=Professional ID unic MustBeUnique=Trebuie să fie unice? -Miscellanous=Diverse +Miscellaneous=Diverse ContractsSetup=Contracte de modul de configurare ContractsNumberingModules=Contracte de numerotare module AdherentLoginRequired=Gestiona un Autentificare pentru fiecare membru diff --git a/htdocs/langs/ro_RO/bills.lang b/htdocs/langs/ro_RO/bills.lang index e0042ad162b..aa7e69936e3 100644 --- a/htdocs/langs/ro_RO/bills.lang +++ b/htdocs/langs/ro_RO/bills.lang @@ -432,6 +432,6 @@ EditGlobalDiscounts=Editare reduceri absolute AddCreditNote=Creaţi note de credit InvoiceNotChecked=Nu factură selectat ShowUnpaidAll=Arata toate facturile neachitate -ClosePaidInvoicesAutomatically=Clasifica "platiti", toate facturile standard sau de înlocuire entierely platite. +ClosePaidInvoicesAutomatically=Clasifica "platiti", toate facturile standard sau de înlocuire entirely platite. AllCompletelyPayedInvoiceWillBeClosed=Toate cu factura nu rămân la plata vor fi închise automat la statutul de "platite". // STOP - Lines generated via autotranslator.php tool (2012-02-29 17:24:55). diff --git a/htdocs/langs/ro_RO/install.lang b/htdocs/langs/ro_RO/install.lang index bbf504158fc..84310cb029b 100644 --- a/htdocs/langs/ro_RO/install.lang +++ b/htdocs/langs/ro_RO/install.lang @@ -754,7 +754,7 @@ GeneratedPasswordDesc=Określ tutaj reguły, które chcesz użyć do wygenerowan DictionnaryDesc=Określ tutaj wszystkie odniesienia danych. Możesz zakończyć predefiniowane wartości Ciebie. ConstDesc=Ta strona pozwala edytować wszystkie inne parametry nie są dostępne w poprzedniej strony. Są one zastrzeżone dla zaawansowanych parametrów deweloperzy lub troubleshouting. OnceSetupFinishedCreateUsers=Ostrzeżenie, jesteś Dolibarr administratora użytkownika. Administrator użytkowników wykorzystywane są do konfiguracji Dolibarr. Dla Zazwyczaj korzystanie z Dolibarr, zaleca się używać nieujemnych administratora użytkownika tworzone Użytkownicy i grupy menu. -MiscellanousDesc=Określ tutaj wszystkie inne parametry związane z bezpieczeństwem. +MiscellaneousDesc=Określ tutaj wszystkie inne parametry związane z bezpieczeństwem. LimitsSetup=Ograniczenia / Precision konfiguracji LimitsDesc=Można określić limity, doprecyzowanie i optymalizacje stosowane przez Dolibarr tutaj MAIN_MAX_DECIMALS_UNIT=Max dziesiętnych na ceny jednostkowe @@ -804,7 +804,7 @@ WebCalAddE // START - Lines generated via autotranslator.php tool (2012-02-29 17:23:15). // Reference language: en_US -> ro_RO InstallEasy=Doar urmaţi instrucţiunile pas cu pas. -MiscellanousChecks=Cerinţe preliminare a verifica +MiscellaneousChecks=Cerinţe preliminare a verifica DolibarrWelcome=Bine ati venit la Dolibarr ConfFileExists=%s fişierul de configurare există. ConfFileDoesNotExists=%s fişier de configurare nu exista! diff --git a/htdocs/langs/ro_RO/members.lang b/htdocs/langs/ro_RO/members.lang index 067614c8b30..d14d60ab82b 100644 --- a/htdocs/langs/ro_RO/members.lang +++ b/htdocs/langs/ro_RO/members.lang @@ -160,7 +160,7 @@ MemberId=Statele id PaymentSubscription=New plata contribuţiei NoThirdPartyAssociatedToMember=Nu părţi terţe asociate la prezenta membru ThirdPartyDolibarr=Dolibarr terţă parte -MembersAndSubscriptions=Membrii şi Suscriptions +MembersAndSubscriptions=Membrii şi Subscriptions // STOP - Lines generated via autotranslator.php tool (2009-08-13 21:12:07). diff --git a/htdocs/langs/ro_RO/other.lang b/htdocs/langs/ro_RO/other.lang index a98adb2718a..0527aab3ee8 100644 --- a/htdocs/langs/ro_RO/other.lang +++ b/htdocs/langs/ro_RO/other.lang @@ -23,7 +23,7 @@ TotalSizeOfAttachedFiles=Total marimea ataşat fişiere / documente MaxSize=Mărimea maximă a AttachANewFile=Ataşaţi un fişier nou / document LinkedObject=Legate de obiectul -Miscellanous=Diverse +Miscellaneous=Diverse NbOfActiveNotifications=Număr de notificări ChooseYourDemoProfil=Alegeţi demo care se potrivesc cu profilul de activitate ... DemoFundation=Gestionare membrii unui Fundaţia @@ -309,7 +309,7 @@ ExternalSites=Sites externos // START - Lines generated via autotranslator.php tool (2010-09-04 01:33:40). // Reference language: en_US -> ro_RO -PredefinedMailContentSendSupplierOrder=Veţi găsi aici noastre pentru __ORDERREF__ \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ +PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__ \n\n Veţi găsi aici noastre pentru __ORDERREF__ \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ WeightUnitpound=livră VolumeUnitounce=uncie VolumeUnitlitre=litru @@ -340,7 +340,7 @@ Notify_MEMBER_VALIDATE=Membru validate Notify_MEMBER_SUBSCRIPTION=Membru subscris Notify_MEMBER_RESILIATE=Membru reziliat Notify_MEMBER_DELETE=Membre elimină -PredefinedMailContentSendSupplierInvoice=Veţi găsi aici factura __FACREF__ \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ +PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__ \n\n Veţi găsi aici factura __FACREF__ \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ ThisIsListOfModules=Aceasta este o listă de module preselectate de acest profil de demo-ul (numai modulele cele mai comune sunt vizibile în această demonstraţie). Editeaza aceasta să aibă un demo mai personalizate şi apăsaţi pe "Start". ClickHere=Click aici UseAdvancedPerms=Utilizaţi permisiunile avansate ale unor module @@ -362,12 +362,12 @@ Notify_ORDER_SUPPLIER_VALIDATE=Pentru furnizorul validate Notify_ORDER_SUPPLIER_SENTBYMAIL=Pentru furnizorul trimis prin e-mail Notify_BILL_SUPPLIER_VALIDATE=Factura furnizorului validate Notify_BILL_SUPPLIER_PAYED=Factura platita cu furnizorul -PredefinedMailContentSendInvoice=Veţi găsi aici factura __FACREF__ \n\n__PERSONALIZED__ respect \n\n__SIGNATURE__ -PredefinedMailContentSendInvoiceReminder=Ne-ar dori să vă avertizeze că __FACREF__ factura pare a nu fi platit. Deci, aceasta este factură în ataşamentul din nou, ca un memento. \n\n__PERSONALIZED__ respect \n\n__SIGNATURE__ -PredefinedMailContentSendProposal=Veţi găsi aici comercial propoal __PROPREF__ \n\n__PERSONALIZED__ respect \n\n__SIGNATURE__ -PredefinedMailContentSendOrder=Veţi găsi aici, pentru __ORDERREF__ \n\n__PERSONALIZED__ respect \n\n__SIGNATURE__ -PredefinedMailContentSendShipping=Veţi găsi aici de transport maritim __SHIPPINGREF__ \n\n__PERSONALIZED__ respect \n\n__SIGNATURE__ -PredefinedMailContentSendFichInter=Veţi găsi aici de intervenţie __FICHINTERREF__ \n\n__PERSONALIZED__ respect \n\n__SIGNATURE__ +PredefinedMailContentSendInvoice=__CONTACTCIVNAME__ \n\n Veţi găsi aici factura __FACREF__ \n\n__PERSONALIZED__ respect \n\n__SIGNATURE__ +PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__ \n\n Ne-ar dori să vă avertizeze că __FACREF__ factura pare a nu fi platit. Deci, aceasta este factură în ataşamentul din nou, ca un memento. \n\n__PERSONALIZED__ respect \n\n__SIGNATURE__ +PredefinedMailContentSendProposal=__CONTACTCIVNAME__ \n\n Veţi găsi aici comercial propoal __PROPREF__ \n\n__PERSONALIZED__ respect \n\n__SIGNATURE__ +PredefinedMailContentSendOrder=__CONTACTCIVNAME__ \n\n Veţi găsi aici, pentru __ORDERREF__ \n\n__PERSONALIZED__ respect \n\n__SIGNATURE__ +PredefinedMailContentSendShipping=__CONTACTCIVNAME__ \n\n Veţi găsi aici de transport maritim __SHIPPINGREF__ \n\n__PERSONALIZED__ respect \n\n__SIGNATURE__ +PredefinedMailContentSendFichInter=__CONTACTCIVNAME__ \n\n Veţi găsi aici de intervenţie __FICHINTERREF__ \n\n__PERSONALIZED__ respect \n\n__SIGNATURE__ Top=Top Bottom=De jos Left=Stânga diff --git a/htdocs/langs/ru_RU/admin.lang b/htdocs/langs/ru_RU/admin.lang index 14a0aa39d26..db77c166cf3 100644 --- a/htdocs/langs/ru_RU/admin.lang +++ b/htdocs/langs/ru_RU/admin.lang @@ -197,7 +197,7 @@ ModuleFamilyProducts=Продукты управления ModuleFamilyHr=Кадровый менеджмент ModuleFamilyProjects=Проекты / Совместная работа ModuleFamilyOther=Другой -ModuleFamilyTechnic=Mutli-модулей инструменты +ModuleFamilyTechnic=Multi-модулей инструменты ModuleFamilyExperimental=Экспериментальный модуль ModuleFamilyFinancial=Финансовые модули (Бухгалтерия / Казначейство) ModuleFamilyECM=ECM @@ -303,10 +303,6 @@ Module1400Name=Бухгалтерия эксперт Module1400Desc=Бухгалтерия управления для экспертов (двойная сторон) Module1780Name=Категории Module1780Desc=Категории управления (продукции, поставщиков и заказчиков) -Module2200Name=Кредитование человека -Module2200Desc=Кредитование права управления -Module2300Name=Меню -Module2300Desc=Меню управления Module2400Name=Повестка дня Module2400Desc=Деятельность / задачи и программы управления Module2500Name=Электронное управление @@ -601,7 +597,7 @@ GeneratedPasswordDesc=Определить здесь правила, котор DictionnaryDesc=Определить здесь все ссылки данные. Вы можете заполнить заранее стоимость с вами. ConstDesc=На этой странице можно отредактировать все остальные параметры не доступны в предыдущих страницах. Они защищены параметров для продвинутых разработчиков или troubleshouting. OnceSetupFinishedCreateUsers=Внимание, вы Dolibarr администратора пользователю. Администратор пользователей используются для установки Dolibarr. Для обычного использования Dolibarr, рекомендуется для использования, не администратор пользователя создается из пользователей И группах меню. -MiscellanousDesc=Определить здесь все другие параметры, связанные с безопасностью. +MiscellaneousDesc=Определить здесь все другие параметры, связанные с безопасностью. LimitsSetup=Пределы / Точная настройка LimitsDesc=Вы можете определить лимиты, уточнения и optimisations используемой Dolibarr здесь MAIN_MAX_DECIMALS_UNIT=Макс десятичных цен за единицу @@ -1255,7 +1251,7 @@ SendingMailSetup=Настройка отправки по электронной SendmailOptionNotComplete=Предупреждение, на некоторых системах Linux, для отправки электронной почты из электронной почты, Sendmail выполнения установки должны conatins опцию-ба (параметр mail.force_extra_parameters в файле php.ini). Если некоторые получатели не получают электронные письма, попытке изменить этот параметр с PHP mail.force_extra_parameters =-ба). CompanyIdProfChecker=Профессиональные Id уникальным MustBeUnique=Должно быть уникальным? -Miscellanous=Разнообразный +Miscellaneous=Разнообразный ContractsSetup=Контракты модуль установки ContractsNumberingModules=Контракты нумерации модулей AdherentLoginRequired=Управление Логин для каждого члена diff --git a/htdocs/langs/ru_RU/install.lang b/htdocs/langs/ru_RU/install.lang index c1697be23ba..82b04b7c62a 100644 --- a/htdocs/langs/ru_RU/install.lang +++ b/htdocs/langs/ru_RU/install.lang @@ -10,7 +10,7 @@ // Reference language: en_US CHARSET=UTF-8 InstallEasy=Мы постарались сделать Dolibarr настройки настолько прост, насколько это возможно. Просто следуйте инструкциям, шаг за шагом. -MiscellanousChecks=Условия проверки +MiscellaneousChecks=Условия проверки DolibarrWelcome=Добро пожаловать на Dolibarr ConfFileExists=Файл конфигурации %s существует. ConfFileDoesNotExists=Файл конфигурации %s не существует! @@ -197,7 +197,7 @@ MigrationUpdateFailed=Сбой процесса обновления // Reference language: en_US CHARSET=UTF-8 InstallEasy=Bare følg instruksjonene trinn for trinn. -MiscellanousChecks=Forutsetninger sjekk +MiscellaneousChecks=Forutsetninger sjekk DolibarrWelcome=Velkommen til Dolibarr ConfFileExists=Konfigurasjonsfil %s eksisterer. ConfFileDoesNotExists=Konfigurasjonsfil %s finnes ikke! diff --git a/htdocs/langs/ru_RU/other.lang b/htdocs/langs/ru_RU/other.lang index a27146c596f..e72505488e3 100644 --- a/htdocs/langs/ru_RU/other.lang +++ b/htdocs/langs/ru_RU/other.lang @@ -23,7 +23,7 @@ TotalSizeOfAttachedFiles=Общий размер присоединенных ф MaxSize=Максимальный размер AttachANewFile=Присоединить новый файл / документ LinkedObject=Связанные объект -Miscellanous=Разное +Miscellaneous=Разное NbOfActiveNotifications=Количество уведомлений ChooseYourDemoProfil=Выберите демо-профиль, которые соответствуют Вашей деятельности ... DemoFundation=Управление членов Фонда @@ -304,7 +304,7 @@ ExternalSites=На внешних сайтах // START - Lines generated via autotranslator.php tool (2010-09-04 01:33:40). // Reference language: en_US -> ru_RU -PredefinedMailContentSendSupplierOrder=Вы найдете здесь наш заказ __ORDERREF__ \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ +PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__ \n\n Вы найдете здесь наш заказ __ORDERREF__ \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ WeightUnitpound=фунт VolumeUnitounce=унция VolumeUnitlitre=литр @@ -321,9 +321,9 @@ ToolsDesc=Эта область посвящена группе разные и Notify_WITHDRAW_TRANSMIT=Передача вывода Notify_WITHDRAW_CREDIT=Кредитный выход Notify_WITHDRAW_EMIT=Isue вывода -PredefinedMailContentSendSupplierInvoice=Только здесь вы найдете счета __FACREF__ \n\n__PERSONALIZED__Sincerely \n\n -PredefinedMailContentSendShipping=Здесь вы найдете доставку __SHIPPINGREF__ \n\n__PERSONALIZED__Sincerely \n\n -PredefinedMailContentSendFichInter=Вы найдете здесь вмешательство __FICHINTERREF__ \n\n__PERSONALIZED__Sincerely \n\n +PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__ \n\n Только здесь вы найдете счета __FACREF__ \n\n__PERSONALIZED__Sincerely \n\n +PredefinedMailContentSendShipping=__CONTACTCIVNAME__ \n\n Здесь вы найдете доставку __SHIPPINGREF__ \n\n__PERSONALIZED__Sincerely \n\n +PredefinedMailContentSendFichInter=__CONTACTCIVNAME__ \n\n Вы найдете здесь вмешательство __FICHINTERREF__ \n\n__PERSONALIZED__Sincerely \n\n Top=Топ Bottom=Дно Left=Левый @@ -368,9 +368,9 @@ Notify_MEMBER_VALIDATE=Член проверки Notify_MEMBER_SUBSCRIPTION=Член подписки Notify_MEMBER_RESILIATE=Член resiliated Notify_MEMBER_DELETE=Член удален -PredefinedMailContentSendInvoice=Здесь вы найдете счет __FACREF__ \n\n__PERSONALIZED__ уважением \n\n__SIGNATURE__ -PredefinedMailContentSendInvoiceReminder=Мы бы хотели предупредить Вас, что счет-фактура __FACREF__, кажется, не оплачиваются. Так что это счета-фактуры в приложении опять же, как напоминание. \n\n__PERSONALIZED__ уважением \n\n__SIGNATURE__ -PredefinedMailContentSendProposal=Здесь вы найдете коммерческие propoal __PROPREF__ \n\n__PERSONALIZED__ уважением \n\n__SIGNATURE__ -PredefinedMailContentSendOrder=Вы найдете здесь порядок __ORDERREF__ \n\n__PERSONALIZED__ уважением \n\n__SIGNATURE__ +PredefinedMailContentSendInvoice=__CONTACTCIVNAME__ \n\n Здесь вы найдете счет __FACREF__ \n\n__PERSONALIZED__ уважением \n\n__SIGNATURE__ +PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__ \n\n Мы бы хотели предупредить Вас, что счет-фактура __FACREF__, кажется, не оплачиваются. Так что это счета-фактуры в приложении опять же, как напоминание. \n\n__PERSONALIZED__ уважением \n\n__SIGNATURE__ +PredefinedMailContentSendProposal=__CONTACTCIVNAME__ \n\n Здесь вы найдете коммерческие propoal __PROPREF__ \n\n__PERSONALIZED__ уважением \n\n__SIGNATURE__ +PredefinedMailContentSendOrder=__CONTACTCIVNAME__ \n\n Вы найдете здесь порядок __ORDERREF__ \n\n__PERSONALIZED__ уважением \n\n__SIGNATURE__ ShipmentValidatedInDolibarr=Отгрузка %s подтверждены в Dolibarr // STOP - Lines generated via autotranslator.php tool (2012-02-29 17:28:06). diff --git a/htdocs/langs/ru_UA/install.lang b/htdocs/langs/ru_UA/install.lang index 45d05d6eb5a..fd4081e26fe 100644 --- a/htdocs/langs/ru_UA/install.lang +++ b/htdocs/langs/ru_UA/install.lang @@ -9,7 +9,7 @@ // Reference language: en_US -> ru_UA CHARSET=UTF-8 InstallEasy=Просто следуйте инструкциям шаг за шагом. -MiscellanousChecks=Проверка предварительных условий +MiscellaneousChecks=Проверка предварительных условий DolibarrWelcome=Добро пожаловать в Dolibarr ConfFileExists=%s конфигурационный файл существует. ConfFileDoesNotExists=%s конфигурационного файла не существует! diff --git a/htdocs/langs/ru_UA/other.lang b/htdocs/langs/ru_UA/other.lang index a526dbce1c5..d67455ca004 100644 --- a/htdocs/langs/ru_UA/other.lang +++ b/htdocs/langs/ru_UA/other.lang @@ -40,14 +40,14 @@ TotalSizeOfAttachedFiles=Общий размер присоединенных ф MaxSize=Максимальный размер PredefinedMailTest=Это тест почте. \ NВ две строки, разделенные возвратом каретки. PredefinedMailTestHtml=Это тест почте (слово тест должен быть жирным шрифтом).
Две строки, разделенные возвратом каретки. -PredefinedMailContentSendInvoice=Только здесь вы найдете счета __FACREF__ \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ -PredefinedMailContentSendInvoiceReminder=Мы бы хотели предупредить Вас, что счет-фактура __FACREF__, кажется, не оплачиваются. Так что это счета-фактуры в привязанности снова, как напоминание. \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ -PredefinedMailContentSendProposal=Только здесь вы найдете коммерческие propoal __PROPREF__ \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ -PredefinedMailContentSendOrder=Вы найдете здесь порядок __ORDERREF__ \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ -PredefinedMailContentSendSupplierOrder=Здесь Вы найдете наш заказ __ORDERREF__ \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ -PredefinedMailContentSendSupplierInvoice=Только здесь вы найдете счета __FACREF__ \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ -PredefinedMailContentSendShipping=Здесь вы найдете доставку __SHIPPINGREF__ \n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendFichInter=Вы найдете здесь вмешательство __FICHINTERREF__ \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ +PredefinedMailContentSendInvoice=__CONTACTCIVNAME__ \n\n Только здесь вы найдете счета __FACREF__ \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ +PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__ \n\n Мы бы хотели предупредить Вас, что счет-фактура __FACREF__, кажется, не оплачиваются. Так что это счета-фактуры в привязанности снова, как напоминание. \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ +PredefinedMailContentSendProposal=__CONTACTCIVNAME__ \n\n Только здесь вы найдете коммерческие propoal __PROPREF__ \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ +PredefinedMailContentSendOrder=__CONTACTCIVNAME__ \n\n Вы найдете здесь порядок __ORDERREF__ \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ +PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__ \n\n Здесь Вы найдете наш заказ __ORDERREF__ \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ +PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__ \n\n Только здесь вы найдете счета __FACREF__ \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ +PredefinedMailContentSendShipping=__CONTACTCIVNAME__ \n\n Здесь вы найдете доставку __SHIPPINGREF__ \n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendFichInter=__CONTACTCIVNAME__ \n\n Вы найдете здесь вмешательство __FICHINTERREF__ \n\n__PERSONALIZED__Sincerely \n\n__SIGNATURE__ DemoCompanyProductAndStocks=Управление малого и среднего продуктов компании, продающей DemoCompanyAll=Управление малых и средних компаний с несколькими деятельности (все основные модули) GoToDemo=Перейти в демо- diff --git a/htdocs/langs/sl_SI/admin.lang b/htdocs/langs/sl_SI/admin.lang index 47b8ab80347..c59beab6ab0 100644 --- a/htdocs/langs/sl_SI/admin.lang +++ b/htdocs/langs/sl_SI/admin.lang @@ -399,10 +399,6 @@ Module1780Name = Kategorije Module1780Desc = Upravljanje kategorij (proizvodi, dobavitelji in kupci) Module2000Name = Fck urejevalnik Module2000Desc = WYSIWYG urejevalnik -Module2200Name = Kreditne pravice -Module2200Desc = Upravljanje kreditnih pravic -Module2300Name = Meniji -Module2300Desc = Upravljanje menijev Module2400Name = Dnevni red Module2400Desc = Upravljanje aktivnosti/nalog in dnevnih redov Module2500Name = Upravljanje elektronskih vsebin @@ -797,7 +793,7 @@ GeneratedPasswordDesc = Tukaj določite, katero pravilo želite uporabiti za gen DictionnaryDesc = Tukaj definirate vse referenčne podatke. Vnaprej določene vrednosti lahko dopolnite z vašimi. ConstDesc = Ta stran omogoča urejanje vseh ostalih parametrov, ki niso na voljo na prejšnjih straneh. To so rezervirani parametri za napredne razvijalce ali za odpravljanje težav. OnceSetupFinishedCreateUsers = Pozor, vi ste Dolibarr administrator. Administrator lahko nastavlja Dolibarr. Za navadno uporabo aplikacije Dolibarr, se priporočajo nastavitve navadnega uporabnika, ki nima administratorskih pravic in ga kreirate preko menija 'Uporabniki & Skupine'. -MiscellanousDesc = Tukaj definirate vse ostale parametre, povezane z varnostjo. +MiscellaneousDesc = Tukaj definirate vse ostale parametre, povezane z varnostjo. LimitsSetup = Nastavitve omejitev/natančnosti LimitsDesc = Tukaj lahko definirate omejitve, natančnost in optimizacije, ki jih uporablja Dolibarr MAIN_MAX_DECIMALS_UNIT = Največje število decimalk za ceno enote @@ -1292,7 +1288,7 @@ ExtraFieldHasWrongValue=Pripišejo %s ima napačno vrednost. SendmailOptionMayHurtBuggedMTA=Funkcija za pošiljanje pošte z uporabo metode "PHP mail DIRECT" bo ustvarila poštno sporočilo, ki ga ni mogoče pravilno razčleniti z nekaterimi, ki so prejemali poštnih strežnikov. Posledica tega je, da so nekatere pošte ne berejo ljudje, ki jih gosti thoose bugged platforme. To je veljalo za nekaj internetnih ponudnikov (npr.: Orange v Franciji). To ni problem v Dolibarr niti v PHP, ampak na prejemanje poštni strežnik. Lahko pa dodate možnost MAIN_FIX_FOR_BUGGED_MTA 1. v setup - drugo spremeniti Dolibarr, da bi se temu izognili. Vendar pa lahko pride do težav z drugimi strežniki, ki spoštujejo strogo standardni SMTP. Druga rešitev (priporočile) je uporaba metode "SMTP socket knjižnice", ki nima slabosti. CompanyIdProfChecker=Strokovno Id edinstven MustBeUnique=Mora biti edinstven? -Miscellanous=Razno +Miscellaneous=Razno ServiceSetup=Storitve modul nastavitev ProductServiceSetup=Izdelki in storitve moduli za nastavitev ViewProductDescInThirdpartyLanguageAbility=Vizualizacija Poimenovanja izdelkov v thirdparty jeziku diff --git a/htdocs/langs/sl_SI/install.lang b/htdocs/langs/sl_SI/install.lang index ecc44497626..02a9f807fbb 100644 --- a/htdocs/langs/sl_SI/install.lang +++ b/htdocs/langs/sl_SI/install.lang @@ -1,7 +1,7 @@ # Dolibarr language file - en_US - install = CHARSET = UTF-8 InstallEasy = Sledite navodilom korak za korakom. -MiscellanousChecks = Kontrola pogojev +MiscellaneousChecks = Kontrola pogojev DolibarrWelcome = Dobrodošli v Dolibarr ConfFileExists = Konfiguracijska datoteka %s že obstaja. ConfFileDoesNotExists = Konfiguracijska datoteka %s ne obstaja ! diff --git a/htdocs/langs/sl_SI/other.lang b/htdocs/langs/sl_SI/other.lang index 664ef8ea4a1..eeaaa04bbc3 100644 --- a/htdocs/langs/sl_SI/other.lang +++ b/htdocs/langs/sl_SI/other.lang @@ -59,20 +59,20 @@ TotalSizeOfAttachedFiles = Skupna velikost pripetih datotek/dokumentov MaxSize = Največja velikost AttachANewFile = Pripni novo datoteko/dokument LinkedObject = Povezani objekti -Miscellanous = Razno +Miscellaneous = Razno NbOfActiveNotifications = Število sporočil WarningInstallDirExists = Pozor, instalacijska mapa (htdocs/install) še vedno obstaja. To je velika varnostna luknja. Odstranite jo, takoj ko je mogoče. WarningUntilDirRemoved = Vsa varnostna opozorila (ki jih vidi samo uporabnik admin) bodo ostala aktivna, dokler je prisotna ranljivost(oz. je konstanta MAIN_REMOVE_INSTALL_WARNING dodana v Nastavitev->Ostale nastavitve). PredefinedMailTest = To je testni mail.\nDve vrstici sta ločeni z carriage return. PredefinedMailTestHtml = To je test mail (beseda test mora biti v krepkem tisku).
Dve vrstici sta ločeni z carriage return. -PredefinedMailContentSendInvoice = V prilogi je račun __FACREF__\n\n__PERSONALIZED__S spoštovanjem\n\n__SIGNATURE__ -PredefinedMailContentSendInvoiceReminder = Želimo vas opozoriti, da račun __FACREF__ ni bil poravnan. Zato vam račun še enkrat pošiljamo v prilogi.\n\n__PERSONALIZED__S spoštovanjem\n\n__SIGNATURE__ -PredefinedMailContentSendProposal = V prilogi je ponudba __PROPREF__\n\n__PERSONALIZED__S spoštovanjem\n\n__SIGNATURE__ -PredefinedMailContentSendOrder = V prilogi je potrditev naročila __ORDERREF__\n\n__PERSONALIZED__S spoštovanjem\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierOrder = V prilogi je naročilo __ORDERREF__\n\n__PERSONALIZED__S spoštovanjem\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierInvoice = V prilogi je potrjen račun __FACREF__\n\n__PERSONALIZED__S spoštovanjem\n\n__SIGNATURE__ -PredefinedMailContentSendShipping = V prilogi je pošiljka __SHIPPINGREF__\n\n__PERSONALIZED__S spoštovanjem\n\n__SIGNATURE__ -PredefinedMailContentSendFichInter = V prilogi je intervencija __FICHINTERREF__\n\n__PERSONALIZED__S spoštovanjem\n\n__SIGNATURE__ +PredefinedMailContentSendInvoice =__CONTACTCIVNAME__ \n\n V prilogi je račun __FACREF__\n\n__PERSONALIZED__S spoštovanjem\n\n__SIGNATURE__ +PredefinedMailContentSendInvoiceReminder = __CONTACTCIVNAME__ \n\n Želimo vas opozoriti, da račun __FACREF__ ni bil poravnan. Zato vam račun še enkrat pošiljamo v prilogi.\n\n__PERSONALIZED__S spoštovanjem\n\n__SIGNATURE__ +PredefinedMailContentSendProposal = __CONTACTCIVNAME__ \n\n V prilogi je ponudba __PROPREF__\n\n__PERSONALIZED__S spoštovanjem\n\n__SIGNATURE__ +PredefinedMailContentSendOrder =__CONTACTCIVNAME__ \n\n V prilogi je potrditev naročila __ORDERREF__\n\n__PERSONALIZED__S spoštovanjem\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierOrder = __CONTACTCIVNAME__ \n\n V prilogi je naročilo __ORDERREF__\n\n__PERSONALIZED__S spoštovanjem\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierInvoice = __CONTACTCIVNAME__ \n\n V prilogi je potrjen račun __FACREF__\n\n__PERSONALIZED__S spoštovanjem\n\n__SIGNATURE__ +PredefinedMailContentSendShipping = __CONTACTCIVNAME__ \n\n V prilogi je pošiljka __SHIPPINGREF__\n\n__PERSONALIZED__S spoštovanjem\n\n__SIGNATURE__ +PredefinedMailContentSendFichInter = __CONTACTCIVNAME__ \n\n V prilogi je intervencija __FICHINTERREF__\n\n__PERSONALIZED__S spoštovanjem\n\n__SIGNATURE__ DemoDesc = Dolibarr je kompakten ERP/CRM sestavljen iz več funkcionalnih modulov. Demo z vsemi moduli nima pomena, ker se kot tak nikoli ne pojavi. Zato je na voljo več demo profilov. ChooseYourDemoProfil = Izberite demo profil, ki ustreza vaši aktivnosti... DemoFundation = Urejanje članov ustanove diff --git a/htdocs/langs/sv_SE/admin.lang b/htdocs/langs/sv_SE/admin.lang index 82e94b5acd9..325debe46c5 100644 --- a/htdocs/langs/sv_SE/admin.lang +++ b/htdocs/langs/sv_SE/admin.lang @@ -372,10 +372,6 @@ Module1780Name=Kategorier Module1780Desc=Categorie ledning (produkter, leverantörer och kunder) Module2000Name=FCKeditor Module2000Desc=WYSIWYG Editor -Module2200Name=Utlåning rättigheter -Module2200Desc=Utlåning förvaltning av rättigheter -Module2300Name=Menyer -Module2300Desc=Meny ledning Module2400Name=Agenda Module2400Desc=Åtgärder / uppgifter och dagordning förvaltning Module2500Name=Electronic Content Management @@ -744,7 +740,7 @@ GeneratedPasswordDesc=Ange här vilken regel du vill använda för att generera DictionnaryDesc=Ange här alla hänvisningar data seten. Du kan fylla i fördefinierade värde med din. ConstDesc=Denna sida kan du redigera alla andra parametrar som inte fanns i tidigare sidor. De är reserverade parametrar för avancerade utvecklare eller troubleshouting. OnceSetupFinishedCreateUsers=Varning, du är en Dolibarr administratör. Administratör användare används för att ställa in Dolibarr. För en vanlig användning av Dolibarr, rekommenderas att använda en icke administratör skapas från Användare & Grupper menyn. -MiscellanousDesc=Ange här alla andra parametrar som rör säkerhet. +MiscellaneousDesc=Ange här alla andra parametrar som rör säkerhet. LimitsSetup=Gränser / Precision setup LimitsDesc=Du kan definiera gränser, preciseringar och optimeringar som används av Dolibarr här MAIN_MAX_DECIMALS_UNIT=Max decimaler för priserna per enhet @@ -1258,7 +1254,7 @@ SendmailOptionNotComplete=Varning, på vissa Linux-system, för att skicka e-pos SendmailOptionMayHurtBuggedMTA=Funktion för att skicka e-post med hjälp av metoden "PHP mail direkt" kommer att generera ett e-postmeddelande som kanske inte korrekt tolkas av vissa som får e-postservrar. Resultatet är att vissa post inte kan läsas av människor som tillhandahålls av thoose avlyssnat plattformar. Det är fallet för vissa Internetleverantörer (Ex: Orange i Frankrike). Detta är inte ett problem till Dolibarr heller i PHP, men på inkommande e-post server. Du kan dock lägga möjlighet MAIN_FIX_FOR_BUGGED_MTA till 1 i Setup - andra att ändra Dolibarr att undvika detta. Du kan dock uppleva problem med andra servrar som strikt respektera SMTP standard. Den andra lösningen (Rekomenderad) är att använda metoden "SMTP socket bibliotek" som inte har några nackdelar. CompanyIdProfChecker=Professionell Id unik MustBeUnique=Måste vara unikt? -Miscellanous=Övrigt +Miscellaneous=Övrigt ClickToDialUrlDesc=Url anropas när ett klick på telefon picto görs. I URL kan du använda taggar
__PHONETO__ Som kommer att ersättas med telefonnumret för personen att ringa
__PHONEFROM__ Som ska ersättas med telefonnummer att ringa person (er)
__LOGIN__ Som ska ersättas med clicktodial inloggning (definierad på ditt användarnamn kort)
__PASS__ Som ska ersättas med ditt clicktodial lösenord (definierad på ditt användarnamn kort). ContractsSetup=Kontrakt modul konfiguration ContractsNumberingModules=Kontrakt numrering moduler diff --git a/htdocs/langs/sv_SE/bills.lang b/htdocs/langs/sv_SE/bills.lang index 2b477bb3084..7d60a306554 100644 --- a/htdocs/langs/sv_SE/bills.lang +++ b/htdocs/langs/sv_SE/bills.lang @@ -409,6 +409,6 @@ EditGlobalDiscounts=Redigera absoluta rabatter AddCreditNote=Skapa kreditnota InvoiceNotChecked=Faktura vald ShowUnpaidAll=Visa alla obetalda fakturor -ClosePaidInvoicesAutomatically=Klassificera "betalade" alla standard eller fakturor ersättning entierely betalt. +ClosePaidInvoicesAutomatically=Klassificera "betalade" alla standard eller fakturor ersättning entirely betalt. AllCompletelyPayedInvoiceWillBeClosed=Alla fakturor utan återstår att betala kommer automatiskt stängd för status "betald". // STOP - Lines generated via autotranslator.php tool (2012-02-29 17:32:49). diff --git a/htdocs/langs/sv_SE/install.lang b/htdocs/langs/sv_SE/install.lang index 27b3611032b..66ae3f7e504 100644 --- a/htdocs/langs/sv_SE/install.lang +++ b/htdocs/langs/sv_SE/install.lang @@ -9,7 +9,7 @@ // Reference language: en_US CHARSET=UTF-8 InstallEasy=Följ bara instruktionerna steg för steg. -MiscellanousChecks=Förutsättningarna läs +MiscellaneousChecks=Förutsättningarna läs DolibarrWelcome=Välkommen till Dolibarr ConfFileExists=Konfigurationsfilen %s finns. ConfFileDoesNotExists=Konfigurationsfilen %s finns inte! diff --git a/htdocs/langs/sv_SE/members.lang b/htdocs/langs/sv_SE/members.lang index bf398731fe3..ded4d0542d6 100644 --- a/htdocs/langs/sv_SE/members.lang +++ b/htdocs/langs/sv_SE/members.lang @@ -157,7 +157,7 @@ ShowTypeCard=Visa typ "%s" HTPasswordExport=htpassword fil generation NoThirdPartyAssociatedToMember=Ingen tredje part som är associerade till denna medlem ThirdPartyDolibarr=Dolibarr tredje part -MembersAndSubscriptions=Medlemmar och Suscriptions +MembersAndSubscriptions=Medlemmar och Subscriptions // STOP - Lines generated via autotranslator.php tool (2010-08-27 08:51:26). diff --git a/htdocs/langs/sv_SE/other.lang b/htdocs/langs/sv_SE/other.lang index ce3ec551a3f..6871665e7b0 100644 --- a/htdocs/langs/sv_SE/other.lang +++ b/htdocs/langs/sv_SE/other.lang @@ -28,7 +28,7 @@ TotalSizeOfAttachedFiles=Total storlek på bifogade filer / dokument MaxSize=Maximal storlek AttachANewFile=Bifoga en ny fil / dokument LinkedObject=Länkat objekt -Miscellanous=Diverse +Miscellaneous=Diverse NbOfActiveNotifications=Antal anmälningar PredefinedMailTest=Detta är en test post. \ NDet två linjerna är åtskilda av en vagnretur. PredefinedMailTestHtml=Detta är en test post (ordet Provningen skall i fetstil).
De två linjerna är åtskilda av en vagnretur. @@ -201,14 +201,14 @@ Notify_BILL_SENTBYMAIL=Kundfaktura skickas per post Notify_MEMBER_SUBSCRIPTION=Medlem tecknat Notify_MEMBER_RESILIATE=Medlem resiliated Notify_MEMBER_DELETE=Elementet bort -PredefinedMailContentSendInvoice=Här hittar du fakturan __FACREF__ \n\n__PERSONALIZED__ Sincerely \n\n__SIGNATURE__ -PredefinedMailContentSendInvoiceReminder=Vi vill varna dig för att fakturan __FACREF__ verkar inte betalt. Så detta är fakturan i bilagan igen, som en påminnelse. \n\n__PERSONALIZED__ Sincerely \n\n__SIGNATURE__ -PredefinedMailContentSendProposal=Här hittar du den kommersiella propoal __PROPREF__ \n\n__PERSONALIZED__ Sincerely \n\n__SIGNATURE__ -PredefinedMailContentSendOrder=Här hittar du den ordning __ORDERREF__ \n\n__PERSONALIZED__ Sincerely \n\n__SIGNATURE__ -PredefinedMailContentSendSupplierOrder=Här hittar du vårt beställningsformulär __ORDERREF__ \n\n__PERSONALIZED__ Sincerely \n\n__SIGNATURE__ -PredefinedMailContentSendSupplierInvoice=Här hittar du fakturan __FACREF__ \n\n__PERSONALIZED__ Sincerely \n\n__SIGNATURE__ -PredefinedMailContentSendShipping=Här hittar du sjöfarten __SHIPPINGREF__ \n\n__PERSONALIZED__ Sincerely \n\n__SIGNATURE__ -PredefinedMailContentSendFichInter=Här hittar du insatsen __FICHINTERREF__ \n\n__PERSONALIZED__ Sincerely \n\n__SIGNATURE__ +PredefinedMailContentSendInvoice=__CONTACTCIVNAME__ \n\n Här hittar du fakturan __FACREF__ \n\n__PERSONALIZED__ Sincerely \n\n__SIGNATURE__ +PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__ \n\n Vi vill varna dig för att fakturan __FACREF__ verkar inte betalt. Så detta är fakturan i bilagan igen, som en påminnelse. \n\n__PERSONALIZED__ Sincerely \n\n__SIGNATURE__ +PredefinedMailContentSendProposal=__CONTACTCIVNAME__ \n\n Här hittar du den kommersiella propoal __PROPREF__ \n\n__PERSONALIZED__ Sincerely \n\n__SIGNATURE__ +PredefinedMailContentSendOrder=__CONTACTCIVNAME__ \n\n Här hittar du den ordning __ORDERREF__ \n\n__PERSONALIZED__ Sincerely \n\n__SIGNATURE__ +PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__ \n\n Här hittar du vårt beställningsformulär __ORDERREF__ \n\n__PERSONALIZED__ Sincerely \n\n__SIGNATURE__ +PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__ \n\n Här hittar du fakturan __FACREF__ \n\n__PERSONALIZED__ Sincerely \n\n__SIGNATURE__ +PredefinedMailContentSendShipping=__CONTACTCIVNAME__ \n\n Här hittar du sjöfarten __SHIPPINGREF__ \n\n__PERSONALIZED__ Sincerely \n\n__SIGNATURE__ +PredefinedMailContentSendFichInter=__CONTACTCIVNAME__ \n\n Här hittar du insatsen __FICHINTERREF__ \n\n__PERSONALIZED__ Sincerely \n\n__SIGNATURE__ StartUpload=Starta upp CancelUpload=Avbryt upp FileIsTooBig=Filer är för stor diff --git a/htdocs/langs/tr_TR/admin.lang b/htdocs/langs/tr_TR/admin.lang index 05643a913fb..75bc24ba808 100755 --- a/htdocs/langs/tr_TR/admin.lang +++ b/htdocs/langs/tr_TR/admin.lang @@ -456,10 +456,6 @@ Module1780Name=Kategoriler Module1780Desc=Kategorilerin yönetimi (ürünler, tedarikçiler ve müşteriler) Module2000Name=WYSIWYG düzenleyici Module2000Desc=Gelişmiş editör kullanarak bazı metin alanlarının düzenlenmesini sağlar -Module2200Name=Kiralama hakları -Module2200Desc=Kiralama hakları yönetimi -Module2300Name=Menüler -Module2300Desc=Menü yönetimi Module2400Name=Gündem Module2400Desc=Etkinlikler/görevler ve gündem yönetimi Module2500Name=Elektronik İçerik Yönetimi @@ -887,7 +883,7 @@ GeneratedPasswordDesc=Eğer otomatik olarak yeni bir parola oluşturmak istersen DictionnaryDesc= Burada bütün referans verilerini tanımlayın. Önceden tanımlanmış bilgilere sizinkileri de ekleyebilirsiniz. ConstDesc=Bu sayfa, önceki sayfalarda mevcut olmayan diğer tüm parametreleri düzenleme olanağı sağlar. İleri geliştiriciler veya sorunbulma için ayrılmış parametrelerdir. OnceSetupFinishedCreateUsers=Uyarı, siz bir Dolibarr yönetici kullanıcısınız. Yönetici kullanıcılar Dolibarr kurulumu yapabilir. Dolibarr’ın olağan kullanımı için, Kullanıcılar ve Gruplar menüsünden oluşturulan yönetici kullanıcı olmayan bir kullanıcının kullanılması önerilir. -MiscellanousDesc=Burada güvenlik ile ilgili diğer tüm parametreleri tanımlayın. +MiscellaneousDesc=Burada güvenlik ile ilgili diğer tüm parametreleri tanımlayın. LimitsSetup=Sınırlar/Hassasiyet ayarı LimitsDesc=Burada Dolibarr’ın kullanımı için sınırlar, hassasiyet ve optimizasyon tanımlayabilirsiniz MAIN_MAX_DECIMALS_UNIT=Birim fiyatlar ençok ondalık @@ -978,7 +974,7 @@ WatermarkOnDraft=Taslak belge üzerinde filigran CompanyIdProfChecker=Benzersiz uzman Kimliği MustBeUnique=Eşsiz olmalıdır? MustBeMandatory=Zorunlu olmalı mı ? -Miscellanous=Çeşitli +Miscellaneous=Çeşitli ##### Webcal setup ##### WebCalSetup=WebTakvim bağlantısı kurulumu WebCalSyncro=WebTakvimi için Dolibarr etkinlikleri diff --git a/htdocs/langs/tr_TR/install.lang b/htdocs/langs/tr_TR/install.lang index c4ea75fcb4b..18510fddb30 100755 --- a/htdocs/langs/tr_TR/install.lang +++ b/htdocs/langs/tr_TR/install.lang @@ -9,7 +9,7 @@ CHARSET=UTF-8 InstallEasy=Sadece adım adım talimatları izleyin. -MiscellanousChecks=Önkoşulların onayı +MiscellaneousChecks=Önkoşulların onayı DolibarrWelcome=Dolibarr'a hoşgeldiniz ConfFileExists=Yapılandırma dosyası %s var. ConfFileDoesNotExists=Yapılandırma dosyası %s yok diff --git a/htdocs/langs/tr_TR/other.lang b/htdocs/langs/tr_TR/other.lang index 881fb05ec28..6f30088f662 100755 --- a/htdocs/langs/tr_TR/other.lang +++ b/htdocs/langs/tr_TR/other.lang @@ -52,18 +52,18 @@ TotalSizeOfAttachedFiles=Eklenen dosyaların/belgelerin toplam boyutu MaxSize=Ençok boyut AttachANewFile=Yeni bir dosya/belge ekle LinkedObject=Bağlantılı nesne -Miscellanous=Çeşitli +Miscellaneous=Çeşitli NbOfActiveNotifications=Number of notifications PredefinedMailTest=Bu bir deneme postasıdır.\nİki satır enter tuşu ile ayrılmıştır. PredefinedMailTestHtml=Bu bir deneme postası (deneme sözcüğü koyu olmalı).
İki satır enter tuşu ile ayrılmıştır. -PredefinedMailContentSendInvoice=Burada faturayı bulacaksınız __FACREF__\n\n__PERSONALIZED__Saygılarımızla\n\n__SIGNATURE__ -PredefinedMailContentSendInvoiceReminder=Fatura __FACREF__ nın ödenmemiş göründüğünün size uyarısını yapmak isteriz. Dolayısı ile fatura yeniden anımsatmak üzere eklenmiştir.\n\n__PERSONALIZED__Saygılarımızla\n\n__SIGNATURE__ -PredefinedMailContentSendProposal=Burada ticari teklifi bulacaksınız __PROPREF__\n\n__PERSONALIZED__Saygılarımızla\n\n__SIGNATURE__ -PredefinedMailContentSendOrder=Burada siparişi bulacaksınız __ORDERREF__\n\n__PERSONALIZED__Saygılarımızla\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierOrder=Burada siparişimizi bulacaksınız __ORDERREF__\n\n__PERSONALIZED__Saygılarımızla\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierInvoice=Burada faturayı bulacaksınız __FACREF__\n\n__PERSONALIZED__Saygılarımızla\n\n__SIGNATURE__ -PredefinedMailContentSendShipping=Burada sevkiyatı bulacaksınız __SHIPPINGREF__\n\n__PERSONALIZED__ Saygılarımızla\n\n__SIGNATURE__ -PredefinedMailContentSendFichInter=Burada müdahaleyi bulacaksınız __FICHINTERREF__\n\n__PERSONALIZED__ Saygılarımızla\n\n__SIGNATURE__ +PredefinedMailContentSendInvoice=__CONTACTCIVNAME__ \n\n Burada faturayı bulacaksınız __FACREF__\n\n__PERSONALIZED__Saygılarımızla\n\n__SIGNATURE__ +PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__ \n\n Fatura __FACREF__ nın ödenmemiş göründüğünün size uyarısını yapmak isteriz. Dolayısı ile fatura yeniden anımsatmak üzere eklenmiştir.\n\n__PERSONALIZED__Saygılarımızla\n\n__SIGNATURE__ +PredefinedMailContentSendProposal=__CONTACTCIVNAME__ \n\n Burada ticari teklifi bulacaksınız __PROPREF__\n\n__PERSONALIZED__Saygılarımızla\n\n__SIGNATURE__ +PredefinedMailContentSendOrder=__CONTACTCIVNAME__ \n\n Burada siparişi bulacaksınız __ORDERREF__\n\n__PERSONALIZED__Saygılarımızla\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__ \n\n Burada siparişimizi bulacaksınız __ORDERREF__\n\n__PERSONALIZED__Saygılarımızla\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__ \n\n Burada faturayı bulacaksınız __FACREF__\n\n__PERSONALIZED__Saygılarımızla\n\n__SIGNATURE__ +PredefinedMailContentSendShipping=__CONTACTCIVNAME__ \n\n Burada sevkiyatı bulacaksınız __SHIPPINGREF__\n\n__PERSONALIZED__ Saygılarımızla\n\n__SIGNATURE__ +PredefinedMailContentSendFichInter=__CONTACTCIVNAME__ \n\n Burada müdahaleyi bulacaksınız __FICHINTERREF__\n\n__PERSONALIZED__ Saygılarımızla\n\n__SIGNATURE__ DemoDesc=Dolibarr birçok fonksiyonel modülden oluşan derlitoplu bir ERP/CRM programıdır. Bu durumda tüm modülleri içeren bir demo asla hiçbir şey demek değildir. Yani, birçok demo profili vardır. ChooseYourDemoProfil=İşlemlerinize uyan demo profilini seçin... DemoFundation= Bir vakıfın üyelerini yönet diff --git a/htdocs/langs/zh_CN/admin.lang b/htdocs/langs/zh_CN/admin.lang index 39121d9ce0b..8c43783bd7b 100644 --- a/htdocs/langs/zh_CN/admin.lang +++ b/htdocs/langs/zh_CN/admin.lang @@ -366,10 +366,6 @@ Module1780Name=分类 Module1780Desc=的类别:管理层(产品,供应商和客户) Module2000Name=fckeditor的 Module2000Desc=所见即所得的编辑器 -Module2200Name=贷款的权利 -Module2200Desc=贷款权限管理 -Module2300Name=菜单 -Module2300Desc=菜单的管理 Module2400Name=议程 Module2400Desc=行动/任务和议程管理 Module2500Name=电子内容管理 @@ -735,7 +731,7 @@ GeneratedPasswordDesc=这里定义的规定,你要用来生成新的密码, DictionnaryDesc=这里所有的参考定义景致。您可以完成预定义与你的价值。 ConstDesc=此页面允许你编辑所有没有先前网页提供的其他参数。他们是保留给高级开发人员或troubleshouting参数。 OnceSetupFinishedCreateUsers=警告,你是一个Dolibarr管理员用户。管理员用户用于安装Dolibarr。对于通常使用的Dolibarr,建议使用非管理员用户从菜单中创建用户和组。 -MiscellanousDesc=定义在这里与安全有关的所有其他参数。 +MiscellaneousDesc=定义在这里与安全有关的所有其他参数。 LimitsSetup=极限/精密安装 LimitsDesc=您可以定义范围,精度和Dolibarr这里使用的最佳化 MAIN_MAX_DECIMALS_UNIT=单位价格最高为小数 @@ -1254,7 +1250,7 @@ SendmailOptionNotComplete=警告,在某些Linux系统,从您的电子邮件 SendmailOptionMayHurtBuggedMTA=功能使用方法“PHP的mail直接”发送电子邮件,将生成一个邮件,可能会不正确地解析一些接收邮件服务器。结果是不能由thoose窃听平台的托管人阅读一些邮件。这是一些互联网服务提供商(例如:在法国Orange)的情况下。这不是一个将Dolibarr也不到PHP中,但到接收邮件服务器的问题。但是,您可以选项MAIN_FIX_FOR_BUGGED_MTA添加1,进入设置 - 其他,修改Dolibarr避免这种情况。然而,你可能会遇到与其他服务器的问题,严格遵守SMTP标准。其他的解决办法(建议报告)是使用的方法“SMTP套接字库”,有没有坏处。 CompanyIdProfChecker=专业ID的唯一 MustBeUnique=必须是唯一的吗? -Miscellanous=杂项 +Miscellaneous=杂项 ContractsSetup=合同模块的设置 ContractsNumberingModules=合同编号模块 AdherentLoginRequired=管理每个成员登录 diff --git a/htdocs/langs/zh_CN/bills.lang b/htdocs/langs/zh_CN/bills.lang index d3330a6a431..ad61aa5068e 100644 --- a/htdocs/langs/zh_CN/bills.lang +++ b/htdocs/langs/zh_CN/bills.lang @@ -414,6 +414,6 @@ EditGlobalDiscounts=编辑绝对折扣 AddCreditNote=创建信用票据 InvoiceNotChecked=选择无发票 ShowUnpaidAll=显示所有未付发票 -ClosePaidInvoicesAutomatically=分类“支付最高”的所有entierely支付最高标准或更换发票。 +ClosePaidInvoicesAutomatically=分类“支付最高”的所有entirely支付最高标准或更换发票。 AllCompletelyPayedInvoiceWillBeClosed=所有发票仍然没有支付将被自动关闭状态“支付最高”。 // STOP - Lines generated via autotranslator.php tool (2012-02-29 17:38:07). diff --git a/htdocs/langs/zh_CN/install.lang b/htdocs/langs/zh_CN/install.lang index 9685a7b9f4b..2455b15eab3 100644 --- a/htdocs/langs/zh_CN/install.lang +++ b/htdocs/langs/zh_CN/install.lang @@ -9,7 +9,7 @@ // Reference language: en_US CHARSET=UTF-8 InstallEasy=只需按照分步说明。 -MiscellanousChecks=先决条件检查 +MiscellaneousChecks=先决条件检查 DolibarrWelcome=欢迎Dolibarr ConfFileExists=配置文件%s存在。 ConfFileDoesNotExists=配置文件%s不存在! diff --git a/htdocs/langs/zh_CN/members.lang b/htdocs/langs/zh_CN/members.lang index e8ad2efad6f..a664e7290a2 100644 --- a/htdocs/langs/zh_CN/members.lang +++ b/htdocs/langs/zh_CN/members.lang @@ -157,7 +157,7 @@ ShowTypeCard=显示类型'%s' HTPasswordExport=htpassword文件生成 NoThirdPartyAssociatedToMember=无关联的第三方该会员 ThirdPartyDolibarr=Dolibarr第三者 -MembersAndSubscriptions=议员和Suscriptions +MembersAndSubscriptions=议员和Subscriptions // STOP - Lines generated via autotranslator.php tool (2010-06-08 21:22:55). diff --git a/htdocs/langs/zh_CN/other.lang b/htdocs/langs/zh_CN/other.lang index afac5cf36a8..f26ca065c39 100644 --- a/htdocs/langs/zh_CN/other.lang +++ b/htdocs/langs/zh_CN/other.lang @@ -44,7 +44,7 @@ TotalSizeOfAttachedFiles=所附文件的总大小/文件 MaxSize=最大尺寸 AttachANewFile=附加一个新的文件/文件 LinkedObject=链接对象 -Miscellanous=杂项 +Miscellaneous=杂项 NbOfActiveNotifications=号码的通知 WarningInstallDirExists=警告,安装目录(htdocs中/安装 )依然存在。这是一个严重的安全漏洞。您应该删除它尽快。 WarningUntilDirRemoved=所有安全警告(可见由管理员用户只)将保持活跃,只要是存在的脆弱性(或常数MAIN_REMOVE_INSTALL_WARNING是在安装程序->其他设置添加)。 diff --git a/htdocs/langs/zh_TW/admin.lang b/htdocs/langs/zh_TW/admin.lang index c1f69179187..82aabb992d5 100644 --- a/htdocs/langs/zh_TW/admin.lang +++ b/htdocs/langs/zh_TW/admin.lang @@ -371,10 +371,6 @@ Module1780Name=分類 Module1780Desc=分類的管理(產品,供應商和客戶) Module2000Name=fckeditor的 Module2000Desc=所見即所得的編輯器 -Module2200Name=貸款的權利 -Module2200Desc=貸款權限管理 -Module2300Name=選單 -Module2300Desc=選單的管理 Module2400Name=議程 Module2400Desc=行動/任務和議程管理 Module2500Name=電子內容管理 @@ -743,7 +739,7 @@ GeneratedPasswordDesc=這裡定義的規定,你要用來生成新的密碼, DictionnaryDesc=您可以在這裡新定義或修改表單中會用到選項清單,如營業稅率、語系等等。 ConstDesc=此頁面允許你編輯所有沒有先前網頁提供的其他參數。他們是保留給高級開發人員或troubleshouting參數。 OnceSetupFinishedCreateUsers=警告,你是一個Dolibarr管理員用戶。管理員用戶用於安裝Dolibarr。對於通常使用的Dolibarr,建議使用非管理員用戶從菜單中創建用戶和組。 -MiscellanousDesc=定義在這裡與安全有關的所有其他參數。 +MiscellaneousDesc=定義在這裡與安全有關的所有其他參數。 LimitsSetup=限制及精準度 LimitsDesc=您可以定義範圍,精度和Dolibarr這裡使用的最佳化 MAIN_MAX_DECIMALS_UNIT=單位價格最高為小數 @@ -1266,7 +1262,7 @@ SendmailOptionNotComplete=警告,在某些Linux系統,從您的電子郵件 SendmailOptionMayHurtBuggedMTA=功能使用方法“PHP的mail直接”發送電子郵件,將生成一個郵件,可能會不正確地解析一些接收郵件服務器。結果是不能由thoose竊聽平台的託管人閲讀一些郵件。這是一些互聯網服務提供商(例如:在法國Orange)的情況下。這不是一個將Dolibarr也不到PHP中,但到接收郵件服務器的問題。但是,您可以選項MAIN_FIX_FOR_BUGGED_MTA添加1,進入設置 - 其他,修改Dolibarr避免這種情況。然而,你可能會遇到與其他服務器的問題,嚴格遵守SMTP標準。其他的解決辦法(建議報告)是使用的方法“SMTP套接字庫”,有沒有壞處。 CompanyIdProfChecker=專業術語欄位ID是否獨一無二 MustBeUnique=必須是獨一無二的ID嗎? -Miscellanous=雜項設定 +Miscellaneous=雜項設定 ContractsSetup=合同模組的設置 ContractsNumberingModules=合同編號模組 AdherentLoginRequired=管理每個成員登錄 diff --git a/htdocs/langs/zh_TW/bills.lang b/htdocs/langs/zh_TW/bills.lang index 399aa502b29..ae3bfa163ad 100644 --- a/htdocs/langs/zh_TW/bills.lang +++ b/htdocs/langs/zh_TW/bills.lang @@ -414,6 +414,6 @@ EditGlobalDiscounts=編輯絕對折扣 AddCreditNote=創建信用票據 InvoiceNotChecked=選擇無發票 ShowUnpaidAll=顯示所有未付款的發票 -ClosePaidInvoicesAutomatically=分類“支付最高”的所有entierely支付最高標準或更換發票。 +ClosePaidInvoicesAutomatically=分類“支付最高”的所有entirely支付最高標準或更換發票。 AllCompletelyPayedInvoiceWillBeClosed=所有發票仍然沒有支付將被自動關閉狀態“支付最高”。 // STOP - Lines generated via autotranslator.php tool (2012-02-29 17:38:07). diff --git a/htdocs/langs/zh_TW/install.lang b/htdocs/langs/zh_TW/install.lang index 192528ec126..9753c6f171c 100644 --- a/htdocs/langs/zh_TW/install.lang +++ b/htdocs/langs/zh_TW/install.lang @@ -9,7 +9,7 @@ // Reference language: en_US CHARSET=UTF-8 InstallEasy=只需按照分步說明。 -MiscellanousChecks=先決條件檢查 +MiscellaneousChecks=先決條件檢查 DolibarrWelcome=歡迎Dolibarr ConfFileExists=配置文件%s存在。 ConfFileDoesNotExists=配置文件%s不存在! diff --git a/htdocs/langs/zh_TW/members.lang b/htdocs/langs/zh_TW/members.lang index c08035af7a1..1b344cfd452 100644 --- a/htdocs/langs/zh_TW/members.lang +++ b/htdocs/langs/zh_TW/members.lang @@ -157,7 +157,7 @@ ShowTypeCard=顯示類型'%s' HTPasswordExport=htpassword文件生成 NoThirdPartyAssociatedToMember=無關聯的第三方該會員 ThirdPartyDolibarr=Dolibarr第三者 -MembersAndSubscriptions=議員和Suscriptions +MembersAndSubscriptions=議員和Subscriptions // STOP - Lines generated via autotranslator.php tool (2010-06-08 21:22:55). diff --git a/htdocs/langs/zh_TW/other.lang b/htdocs/langs/zh_TW/other.lang index e395882fec6..2c62efd1c04 100644 --- a/htdocs/langs/zh_TW/other.lang +++ b/htdocs/langs/zh_TW/other.lang @@ -44,7 +44,7 @@ TotalSizeOfAttachedFiles=附件大小總計 MaxSize=檔案最大 AttachANewFile=附加一個新的檔案/文件 LinkedObject=鏈接對象 -Miscellanous=雜項 +Miscellaneous=雜項 NbOfActiveNotifications=號碼的通知 WarningInstallDirExists=警告,安裝目錄(htdocs中/安裝 )依然存在。這是一個嚴重的安全漏洞。您應該刪除它盡快。 WarningUntilDirRemoved=所有安全警告(可見由管理員用戶只)將保持活躍,只要是存在的脆弱性(或常數MAIN_REMOVE_INSTALL_WARNING是在安裝程序->其他設置添加)。 diff --git a/htdocs/livraison/class/livraison.class.php b/htdocs/livraison/class/livraison.class.php index d2ecc0119ce..d5dce8c6830 100644 --- a/htdocs/livraison/class/livraison.class.php +++ b/htdocs/livraison/class/livraison.class.php @@ -334,10 +334,10 @@ class Livraison extends CommonObject if ($user->rights->expedition->livraison->valider) { - if (! empty($conf->global->LIVRAISON_ADDON)) + if (! empty($conf->global->LIVRAISON_ADDON_NUMBER)) { // Definition du nom de module de numerotation de commande - $modName = $conf->global->LIVRAISON_ADDON; + $modName = $conf->global->LIVRAISON_ADDON_NUMBER; if (is_readable(DOL_DOCUMENT_ROOT .'/core/modules/livraison/'.$modName.'.php')) { diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index ca97aebb849..dd6ac430fee 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -93,7 +93,7 @@ function test_sql_and_script_inject($val, $type) // When it found 'global->MAIN_APPLICATION_TITLE)) { $appli=$conf->global->MAIN_APPLICATION_TITLE; $doliurl=''; } $appli.=" ".DOL_VERSION; - + print '
'; if ($doliurl) print ''; print $appli; if ($doliurlx) print ''; print '
'; - + print "\n"; print "\n"; diff --git a/htdocs/margin/agentMargins.php b/htdocs/margin/agentMargins.php index a195ef6de04..6ca0879a88a 100644 --- a/htdocs/margin/agentMargins.php +++ b/htdocs/margin/agentMargins.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2012-2013 Christophe Battarel * * 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 @@ -40,7 +40,13 @@ $mesg = ''; $sortfield = GETPOST("sortfield",'alpha'); $sortorder = GETPOST("sortorder",'alpha'); if (! $sortorder) $sortorder="ASC"; -if (! $sortfield) $sortfield="s.nom"; +if (! $sortfield) +{ + if ($agentid > 0) + $sortfield="s.nom"; + else + $sortfield="u.name"; +} $page = GETPOST("page",'int'); if ($page == -1) { $page = 0; } $offset = $conf->liste_limit * $page; @@ -75,7 +81,7 @@ $titre=$langs->trans("Margins"); $picto='margin'; dol_fiche_head($head, 'agentMargins', $titre, 0, $picto); -print '
'; +print ''; print '
'; + +//print ''; +//print '
'; +print '
'; + $var=false; print ''; @@ -159,10 +162,8 @@ if ($resql) } -/* - * - */ -print '
'; +//print ''; +print '
'; /* @@ -272,7 +273,9 @@ if ($resql) } else dol_print_error($db); -print '
'; + +//print '
'; +print '
'; llxFooter(); diff --git a/htdocs/exports/class/export.class.php b/htdocs/exports/class/export.class.php index f850c20d07f..9def962c8ec 100644 --- a/htdocs/exports/class/export.class.php +++ b/htdocs/exports/class/export.class.php @@ -227,18 +227,18 @@ class Export $sql.=$this->array_export_sql_end[$indice]; //construction du filtrage si le parametrage existe - if (is_array($array_filterValue)) + if (is_array($array_filterValue) && !empty($array_filterValue)) { $sqlWhere=''; // pour ne pas a gerer le nombre de condition foreach ($array_filterValue as $key => $value) { - $sqlWhere.=" and ".$this->build_filterQuery($this->array_export_TypeFields[$indice][$key], $key, $array_filterValue[$key]); + if ($value != '') $sqlWhere.=" and ".$this->build_filterQuery($this->array_export_TypeFields[$indice][$key], $key, $array_filterValue[$key]); } $sql.=$sqlWhere; } $sql.=$this->array_export_sql_order[$indice]; - + return $sql; } @@ -247,7 +247,7 @@ class Export * * @param string $TypeField Type of Field to filter * @param string $NameField Name of the field to filter - * @param string $ValueField Initial value of the field to filter + * @param string $ValueField Value of the field for filter. Must not be '' * @return string sql string of then field ex : "field='xxx'>" */ function build_filterQuery($TypeField, $NameField, $ValueField) diff --git a/htdocs/exports/export.php b/htdocs/exports/export.php index 687bec342c0..fcd968eeeb0 100644 --- a/htdocs/exports/export.php +++ b/htdocs/exports/export.php @@ -32,6 +32,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/modules/export/modules_export.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; $langs->load("exports"); +$langs->load("users"); // Everybody should be able to go on this page //if (! $user->admin) diff --git a/htdocs/externalsite/admin/externalsite.php b/htdocs/externalsite/admin/externalsite.php index 2c241fbf3c7..ba63a5389e4 100644 --- a/htdocs/externalsite/admin/externalsite.php +++ b/htdocs/externalsite/admin/externalsite.php @@ -77,6 +77,17 @@ llxHeader(); $linkback=''.$langs->trans("BackToModuleList").''; print_fiche_titre($langs->trans("ExternalSiteSetup"),$linkback,'setup'); +print '
'; + +$h = 0; + +$head[$h][0] = DOL_URL_ROOT."/admin/externalsite.php"; +$head[$h][1] = $langs->trans("Miscellaneous"); +$head[$h][2] = 'externalsite'; +$hselected=$h; +$h++; + +dol_fiche_head($head, $hselected, $langs->trans("Module100Name")); print $langs->trans("Module100Desc")."
\n"; print '
'; diff --git a/htdocs/fichinter/fiche.php b/htdocs/fichinter/fiche.php index b67c2a0df16..f7371f42066 100644 --- a/htdocs/fichinter/fiche.php +++ b/htdocs/fichinter/fiche.php @@ -662,7 +662,7 @@ if ($action == 'send' && ! GETPOST('cancel','alpha') && (empty($conf->global->MA $from = GETPOST('fromname','alpha') . ' <' . GETPOST('frommail','alpha') .'>'; $replyto = GETPOST('replytoname','alpha'). ' <' . GETPOST('replytomail','alpha').'>'; - $message = GETPOST('message','alpha'); + $message = GETPOST('message'); $sendtocc = GETPOST('sendtocc','alpha'); $deliveryreceipt = GETPOST('deliveryreceipt','alpha'); @@ -692,7 +692,7 @@ if ($action == 'send' && ! GETPOST('cancel','alpha') && (empty($conf->global->MA // Envoi de la propal require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; - $mailfile = new CMailFile($subject,$sendto,$from,$message,$filepath,$mimetype,$filename,$sendtocc,'',$deliveryreceipt); + $mailfile = new CMailFile($subject,$sendto,$from,$message,$filepath,$mimetype,$filename,$sendtocc,'',$deliveryreceipt,-1); if ($mailfile->error) { $mesg='
'.$mailfile->error.'
'; @@ -702,8 +702,8 @@ if ($action == 'send' && ! GETPOST('cancel','alpha') && (empty($conf->global->MA $result=$mailfile->sendfile(); if ($result) { - $mesg='
'.$langs->trans('MailSuccessfulySent',$mailfile->getValidAddress($from,2),$mailfile->getValidAddress($sendto,2)).'.
'; - + $mesg=$langs->trans('MailSuccessfulySent',$mailfile->getValidAddress($from,2),$mailfile->getValidAddress($sendto,2)); + setEventMessage($mesg); $error=0; // Initialisation donnees @@ -729,7 +729,7 @@ if ($action == 'send' && ! GETPOST('cancel','alpha') && (empty($conf->global->MA { // Redirect here // This avoid sending mail twice if going out and then back to page - header('Location: '.$_SERVER["PHP_SELF"].'?id='.$object->id.'&msg='.urlencode($mesg)); + header('Location: '.$_SERVER["PHP_SELF"].'?id='.$object->id); exit; } } @@ -1365,7 +1365,7 @@ else if ($id > 0 || ! empty($ref)) if ($user->societe_id == 0) { - if ($action != 'editdescription') + if ($action != 'editdescription' && ($action != 'presend')) { // Validate if ($object->statut == 0 && $user->rights->ficheinter->creer && count($object->lines) > 0) @@ -1518,6 +1518,28 @@ else if ($id > 0 || ! empty($ref)) $formmail->substit['__FICHINTERREF__']=$object->ref; $formmail->substit['__SIGNATURE__']=$user->signature; $formmail->substit['__PERSONALIZED__']=''; + $formmail->substit['__CONTACTCIVNAME__']=''; + + //Find the good contact adress + $custcontact=''; + $contactarr=array(); + $contactarr=$object->liste_contact(-1,'external'); + + if (is_array($contactarr) && count($contactarr)>0) { + foreach($contactarr as $contact) { + if ($contact['libelle']==$langs->trans('TypeContact_fichinter_external_CUSTOMER')) { + require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; + $contactstatic=new Contact($db); + $contactstatic->fetch($contact['id']); + $custcontact=$contactstatic->getFullName($langs,1); + } + } + + if (!empty($custcontact)) { + $formmail->substit['__CONTACTCIVNAME__']=$custcontact; + } + } + // Tableau des parametres complementaires $formmail->param['action']='send'; $formmail->param['models']='fichinter_send'; diff --git a/htdocs/fourn/class/fournisseur.commande.class.php b/htdocs/fourn/class/fournisseur.commande.class.php index 97d20d54d48..d8487fc82b0 100644 --- a/htdocs/fourn/class/fournisseur.commande.class.php +++ b/htdocs/fourn/class/fournisseur.commande.class.php @@ -3,7 +3,7 @@ * Copyright (C) 2004-2012 Laurent Destailleur * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2007 Franky Van Liedekerke - * Copyright (C) 2010-2011 Juanjo Menent + * Copyright (C) 2010-2013 Juanjo Menent * Copyright (C) 2010-2012 Philippe Grand * Copyright (C) 2012 Marcos García * @@ -926,6 +926,9 @@ class CommandeFournisseur extends CommonOrder $sql = "INSERT INTO ".MAIN_DB_PREFIX."commande_fournisseur ("; $sql.= "ref"; + $sql.= ", ref_supplier"; + $sql.= ", note"; + $sql.= ", note_public"; $sql.= ", entity"; $sql.= ", fk_soc"; $sql.= ", date_creation"; @@ -938,6 +941,9 @@ class CommandeFournisseur extends CommonOrder $sql.= ") "; $sql.= " VALUES ("; $sql.= "''"; + $sql.= ", '".$this->ref_supplier."'"; + $sql.= ", '".$this->note."'"; + $sql.= ", '".$this->note_public."'"; $sql.= ", ".$conf->entity; $sql.= ", ".$this->socid; $sql.= ", ".$this->db->idate($now); @@ -1696,7 +1702,7 @@ class CommandeFournisseur extends CommonOrder * @param double $txlocaltax1 Localtax1 tax * @param double $txlocaltax2 Localtax2 tax * @param double $price_base_type Type of price base - * @param int $info_bits Miscellanous informations + * @param int $info_bits Miscellaneous informations * @param int $type Type of line (0=product, 1=service) * @param int $notrigger Disable triggers * @return int < 0 if error, > 0 if ok diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php index ffc123fe2de..60bdf26a8ab 100644 --- a/htdocs/fourn/class/fournisseur.facture.class.php +++ b/htdocs/fourn/class/fournisseur.facture.class.php @@ -1065,7 +1065,7 @@ class FactureFournisseur extends CommonInvoice * @param double $qty Quantity * @param int $idproduct Id produit * @param double $price_base_type HT or TTC - * @param int $info_bits Miscellanous informations of line + * @param int $info_bits Miscellaneous informations of line * @param int $type Type of line (0=product, 1=service) * @param double $remise_percent Pourcentage de remise de la ligne * @param int $notrigger Disable triggers @@ -1305,6 +1305,59 @@ class FactureFournisseur extends CommonInvoice $result.=$lien.($max?dol_trunc($this->ref,$max):$this->ref).$lienfin; return $result; } + + /** + * Renvoie la reference de facture suivante non utilisee en fonction du modele + * de numerotation actif defini dans INVOICE_SUPPLIER_ADDON_NUMBER + * + * @param Societe $soc objet societe + * @return string reference libre pour la facture + */ + function getNextNumRef($soc) + { + global $db, $langs, $conf; + $langs->load("orders"); + + $dir = DOL_DOCUMENT_ROOT .'/core/modules/supplier_invoice/'; + + if (! empty($conf->global->INVOICE_SUPPLIER_ADDON_NUMBER)) + { + $file = $conf->global->INVOICE_SUPPLIER_ADDON_NUMBER.'.php'; + + if (is_readable($dir.'/'.$file)) + { + // Definition du nom de modele de numerotation de commande fournisseur + $modName=$conf->global->INVOICE_SUPPLIER_ADDON_NUMBER; + require_once $dir.'/'.$file; + + // Recuperation de la nouvelle reference + $objMod = new $modName($this->db); + + $numref = ""; + $numref = $objMod->invoice_get_num($soc,$this); + + if ( $numref != "") + { + return $numref; + } + else + { + dol_print_error($db, get_class($this)."::getNextNumRef ".$obj->error); + return -1; + } + } + else + { + print $langs->trans("Error")." ".$langs->trans("Error_FailedToLoad_INVOICE_SUPPLIER_ADDON_NUMBER_File",$conf->global->INVOICE_SUPPLIER_ADDON_NUMBER); + return -2; + } + } + else + { + print $langs->trans("Error")." ".$langs->trans("Error_INVOICE_SUPPLIER_ADDON_NUMBER_NotDefined"); + return -3; + } + } /** diff --git a/htdocs/fourn/commande/contact.php b/htdocs/fourn/commande/contact.php index 3d183a2392d..7840ae22042 100644 --- a/htdocs/fourn/commande/contact.php +++ b/htdocs/fourn/commande/contact.php @@ -40,7 +40,7 @@ $action = GETPOST('action', 'alpha'); // Security check if ($user->societe_id) $socid=$user->societe_id; -$result = restrictedArea($user, 'commande_fournisseur', $id,''); +$result = restrictedArea($user, 'fournisseur', $id, '', 'commande'); $object = new CommandeFournisseur($db); @@ -166,10 +166,10 @@ if ($id > 0 || ! empty($ref)) print ''; print '
'; - + // Contacts lines include DOL_DOCUMENT_ROOT.'/core/tpl/contacts.tpl.php'; - + } else { diff --git a/htdocs/fourn/commande/dispatch.php b/htdocs/fourn/commande/dispatch.php index 911e6b7fd90..4c5dc82bcec 100644 --- a/htdocs/fourn/commande/dispatch.php +++ b/htdocs/fourn/commande/dispatch.php @@ -44,7 +44,7 @@ $langs->load('stocks'); // Security check $id = isset($_GET["id"])?$_GET["id"]:''; if ($user->societe_id) $socid=$user->societe_id; -$result = restrictedArea($user, 'commande_fournisseur', $id,''); +$result = restrictedArea($user, 'fournisseur', $id, '', 'commande'); if (empty($conf->stock->enabled)) { @@ -84,18 +84,18 @@ if ($_POST["action"] == 'dispatch' && $user->rights->fournisseur->commande->rece } } } - + if (! $notrigger) { global $conf, $langs, $user; // Appel des triggers include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; - $interface=new Interfaces($this->db); - $result_trigger=$interface->run_triggers('ORDER_SUPPLIER_DISPATCH',$this,$user,$langs,$conf); - if ($result_trigger < 0) { $error++; $this->errors=$interface->errors; } + $interface=new Interfaces($db); + $result_trigger=$interface->run_triggers('ORDER_SUPPLIER_DISPATCH',$commande,$user,$langs,$conf); + if ($result_trigger < 0) { $error++; $commande->errors=$interface->errors; } // Fin appel triggers - - $this->db->commit(); + + $db->commit(); } if ($result > 0) @@ -282,7 +282,7 @@ if ($id > 0 || ! empty($ref)) print ''.img_object($langs->trans("ShowProduct"),'product').' '.$objp->ref.''; print ' - '.$objp->label; // To show detail cref and description value, we must make calculation by cref - //print ($objp->cref?' ('.$objp->cref.')':''); + //print ($objp->cref?' ('.$objp->cref.')':''); //if ($objp->description) print '
'.nl2br($objp->description); print ''; print ''; diff --git a/htdocs/fourn/commande/document.php b/htdocs/fourn/commande/document.php index 394d234e47b..d1fdaeb113e 100644 --- a/htdocs/fourn/commande/document.php +++ b/htdocs/fourn/commande/document.php @@ -49,7 +49,7 @@ $confirm = GETPOST('confirm','alpha'); // Security check if ($user->societe_id) $socid=$user->societe_id; -$result = restrictedArea($user, 'commande_fournisseur', $id,''); +$result = restrictedArea($user, 'fournisseur', $id, '', 'commande'); // Get parameters $sortfield = GETPOST("sortfield",'alpha'); diff --git a/htdocs/fourn/commande/fiche.php b/htdocs/fourn/commande/fiche.php index 1afb3fddb00..856c92c88bf 100644 --- a/htdocs/fourn/commande/fiche.php +++ b/htdocs/fourn/commande/fiche.php @@ -3,7 +3,7 @@ * Copyright (C) 2004-2012 Laurent Destailleur * Copyright (C) 2005 Eric Seigne * Copyright (C) 2005-2012 Regis Houssin - * Copyright (C) 2010-2012 Juanjo Menent + * Copyright (C) 2010-2013 Juanjo Menent * Copyright (C) 2011 Philippe Grand * Copyright (C) 2012 Marcos García * @@ -67,7 +67,7 @@ $hideref = (GETPOST('hideref','int') ? GETPOST('hideref','int') : (! empty($co // Security check if ($user->societe_id) $socid=$user->societe_id; -$result = restrictedArea($user, 'commande_fournisseur', $id,''); +$result = restrictedArea($user, 'fournisseur', $id, '', 'commande'); // Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array $hookmanager->initHooks(array('ordersuppliercard')); @@ -82,7 +82,7 @@ if ($id > 0 || ! empty($ref)) $ret = $object->fetch_thirdparty(); if ($ret < 0) dol_print_error($db,$object->error); } -else if (! empty($socid)) +else if (! empty($socid) && $socid > 0) { $fourn = new Fournisseur($db); $ret=$fourn->fetch($socid); @@ -657,33 +657,47 @@ else if ($action == 'remove_file' && $object->id > 0 && $user->rights->fournisse /* * Create an order */ -else if ($action == 'create' && ! empty($object->socid) && $user->rights->fournisseur->commande->creer) +else if ($action == 'add' && $user->rights->fournisseur->commande->creer) { - $error=0; + $error=0; - $db->begin(); - - $id=$object->create($user); - if (! $id > 0) + if ($socid <1) { - $error++; - setEventMessage($object->error, 'errors'); + $mesg='
'.$langs->trans('ErrorFieldRequired',$langs->transnoentities('Supplier')).'
'; + $action='create'; + $error++; } if (! $error) { - if ($comclientid != '') + $db->begin(); + + // Creation commande + $object->ref_supplier = GETPOST('refsupplier'); + $object->socid = $socid; + $object->note = GETPOST('note'); + $object->note_public = GETPOST('note_public'); + + $id = $object->create($user); + if ($id < 0) + { + $error++; + } + + if ($error) { - $object->updateFromCommandeClient($user, $id, $comclientid); + $langs->load("errors"); + $db->rollback(); + $mesg='
'.$langs->trans($object->error).'
'; + $action='create'; + $_GET['socid']=$_POST['socid']; + } + else + { + $db->commit(); + header("Location: ".$_SERVER['PHP_SELF']."?id=".$id); + exit; } - - $ret=$object->fetch($id); // Reload to get new records - - $db->commit(); - } - else - { - $db->rollback(); } } @@ -732,24 +746,24 @@ if ($action == 'send' && ! GETPOST('addfile') && ! GETPOST('removedfile') && ! G // if (is_readable($file)) // { - if ($_POST['sendto']) + if (GETPOST('sendto','alpha')) { // Le destinataire a ete fourni via le champ libre - $sendto = $_POST['sendto']; + $sendto = GETPOST('sendto','alpha'); $sendtoid = 0; } - elseif ($_POST['receiver'] != '-1') + elseif (GETPOST('receiver','alpha') != '-1') { // Recipient was provided from combo list - if ($_POST['receiver'] == 'thirdparty') // Id of third party + if (GETPOST('receiver','alpha') == 'thirdparty') // Id of third party { $sendto = $object->client->email; $sendtoid = 0; } else // Id du contact { - $sendto = $object->client->contact_get_property($_POST['receiver'],'email'); - $sendtoid = $_POST['receiver']; + $sendto = $object->client->contact_get_property(GETPOST('receiver','alpha'),'email'); + $sendtoid = GETPOST('receiver','alpha'); } } @@ -757,15 +771,15 @@ if ($action == 'send' && ! GETPOST('addfile') && ! GETPOST('removedfile') && ! G { $langs->load("commercial"); - $from = $_POST['fromname'] . ' <' . $_POST['frommail'] .'>'; - $replyto = $_POST['replytoname']. ' <' . $_POST['replytomail'].'>'; - $message = $_POST['message']; - $sendtocc = $_POST['sendtocc']; - $deliveryreceipt = $_POST['deliveryreceipt']; + $from = GETPOST('fromname','alpha') . ' <' . GETPOST('frommail','alpha') .'>'; + $replyto = GETPOST('replytoname','alpha'). ' <' . GETPOST('replytomail','alpha').'>'; + $message = GETPOST('message'); + $sendtocc = GETPOST('sendtocc','alpha'); + $deliveryreceipt = GETPOST('deliveryreceipt','alpha'); if ($action == 'send') { - if (dol_strlen($_POST['subject'])) $subject=$_POST['subject']; + if (dol_strlen(GETPOST('subject'))) $subject=GETPOST('subject'); else $subject = $langs->transnoentities('CustomerOrder').' '.$object->ref; $actiontypecode='AC_SUP_ORD'; $actionmsg = $langs->transnoentities('MailSentBy').' '.$from.' '.$langs->transnoentities('To').' '.$sendto.".\n"; @@ -789,7 +803,7 @@ if ($action == 'send' && ! GETPOST('addfile') && ! GETPOST('removedfile') && ! G // Send mail require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; - $mailfile = new CMailFile($subject,$sendto,$from,$message,$filepath,$mimetype,$filename,$sendtocc,'',$deliveryreceipt); + $mailfile = new CMailFile($subject,$sendto,$from,$message,$filepath,$mimetype,$filename,$sendtocc,'',$deliveryreceipt,-1); if ($mailfile->error) { setEventMessage($mailfile->error, 'errors'); @@ -827,7 +841,7 @@ if ($action == 'send' && ! GETPOST('addfile') && ! GETPOST('removedfile') && ! G { // Redirect here // This avoid sending mail twice if going out and then back to page - header('Location: '.$_SERVER["PHP_SELF"].'?id='.$object->id.'&mesg='.urlencode($mesg)); + header('Location: '.$_SERVER["PHP_SELF"].'?id='.$object->id); exit; } } @@ -942,8 +956,68 @@ $productstatic = new Product($db); /* *************************************************************************** */ $now=dol_now(); +if ($action=="create") +{ + print_fiche_titre($langs->trans('NewOrder')); -if (! empty($object->id)) + dol_htmloutput_mesg($mesg); + + $societe=''; + if ($socid>0) + { + $societe=new Societe($db); + $societe->fetch($socid); + } + + print '
'; + print ''; + print ''; + print ''; + + // Ref + print ''; + + // Third party + print ''; + print ''; + + // Ref supplier + print ''; + print ''; + + print ''; + + print ''; + print ''; + print ''; + + print ''; + print ''; + print ''; + + // Other options + $parameters=array(); + $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook + + // Bouton "Create Draft" + print "
'.$langs->trans('Ref').''.$langs->trans('Draft').'
'.$langs->trans('Supplier').''; + + if ($socid > 0) + { + print $societe->getNomUrl(1); + print ''; + } + else + { + print $form->select_company((empty($socid)?'':$socid),'socid','s.fournisseur = 1',1); + } + print '
'.$langs->trans('RefSupplier').'
'.$langs->trans('Note').'
'.$langs->trans('NotePublic').'
\n"; + + print '
'; + + print "
\n"; +} +elseif (! empty($object->id)) { $author = new User($db); $author->fetch($object->user_author_id); @@ -1834,6 +1908,28 @@ if (! empty($object->id)) $formmail->substit['__ORDERREF__']=$object->ref; $formmail->substit['__SIGNATURE__']=$user->signature; $formmail->substit['__PERSONALIZED__']=''; + $formmail->substit['__CONTACTCIVNAME__']=''; + + //Find the good contact adress + $custcontact=''; + $contactarr=array(); + $contactarr=$object->liste_contact(-1,'external'); + + if (is_array($contactarr) && count($contactarr)>0) { + foreach($contactarr as $contact) { + if ($contact['libelle']==$langs->trans('TypeContact_order_supplier_external_BILLING')) { + require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; + $contactstatic=new Contact($db); + $contactstatic->fetch($contact['id']); + $custcontact=$contactstatic->getFullName($langs,1); + } + } + + if (!empty($custcontact)) { + $formmail->substit['__CONTACTCIVNAME__']=$custcontact; + } + } + // Tableau des parametres complementaires $formmail->param['action']='send'; $formmail->param['models']='order_supplier_send'; diff --git a/htdocs/fourn/commande/history.php b/htdocs/fourn/commande/history.php index 80a68650d48..77e5ddccf49 100644 --- a/htdocs/fourn/commande/history.php +++ b/htdocs/fourn/commande/history.php @@ -38,7 +38,7 @@ $ref=GETPOST('ref','alpha'); // Security check $socid=''; if (! empty($user->societe_id)) $socid=$user->societe_id; -$result = restrictedArea($user, 'commande_fournisseur', $id,''); +$result = restrictedArea($user, 'fournisseur', $id, '', 'commande'); /* diff --git a/htdocs/fourn/commande/index.php b/htdocs/fourn/commande/index.php index c55765fd238..f8101a185fe 100755 --- a/htdocs/fourn/commande/index.php +++ b/htdocs/fourn/commande/index.php @@ -32,7 +32,7 @@ require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; // Security check $orderid = GETPOST('orderid'); if ($user->societe_id) $socid=$user->societe_id; -$result = restrictedArea($user, 'commande_fournisseur', $orderid,''); +$result = restrictedArea($user, 'fournisseur', $orderid, '', 'commande'); $langs->load("suppliers"); $langs->load("orders"); diff --git a/htdocs/fourn/commande/liste.php b/htdocs/fourn/commande/liste.php index 3dd246b75df..da493a8cd17 100644 --- a/htdocs/fourn/commande/liste.php +++ b/htdocs/fourn/commande/liste.php @@ -43,7 +43,7 @@ $sortfield = GETPOST('sortfield','alpha'); // Security check $orderid = GETPOST('orderid'); if ($user->societe_id) $socid=$user->societe_id; -$result = restrictedArea($user, 'commande_fournisseur', $orderid,''); +$result = restrictedArea($user, 'fournisseur', $orderid, '', 'commande'); /* diff --git a/htdocs/fourn/commande/note.php b/htdocs/fourn/commande/note.php index 17a23ef990d..63cd69a89a0 100644 --- a/htdocs/fourn/commande/note.php +++ b/htdocs/fourn/commande/note.php @@ -39,7 +39,7 @@ $action = GETPOST('action'); // Security check if ($user->societe_id) $socid=$user->societe_id; -$result = restrictedArea($user, 'commande_fournisseur', $id,''); +$result = restrictedArea($user, 'fournisseur', $id, '', 'commande'); $object = new CommandeFournisseur($db); $object->fetch($id, $ref); diff --git a/htdocs/fourn/facture/fiche.php b/htdocs/fourn/facture/fiche.php index 571742a977d..b726d39231a 100644 --- a/htdocs/fourn/facture/fiche.php +++ b/htdocs/fourn/facture/fiche.php @@ -737,10 +737,10 @@ if ($action == 'send' && ! $_POST['addfile'] && ! $_POST['removedfile'] && ! $_P // Send mail require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; - $mailfile = new CMailFile($subject,$sendto,$from,$message,$filepath,$mimetype,$filename,$sendtocc,'',$deliveryreceipt); + $mailfile = new CMailFile($subject,$sendto,$from,$message,$filepath,$mimetype,$filename,$sendtocc,'',$deliveryreceipt,-1); if ($mailfile->error) { - $mesg='
'.$mailfile->error.'
'; + setEventMessage($mailfile->error,'errors'); } else { @@ -748,7 +748,8 @@ if ($action == 'send' && ! $_POST['addfile'] && ! $_POST['removedfile'] && ! $_P if ($result) { $mesg=$langs->trans('MailSuccessfulySent',$mailfile->getValidAddress($from,2),$mailfile->getValidAddress($sendto,2)); // Must not contain " - + setEventMessage($mesg); + $error=0; // Initialisation donnees @@ -776,7 +777,7 @@ if ($action == 'send' && ! $_POST['addfile'] && ! $_POST['removedfile'] && ! $_P { // Redirect here // This avoid sending mail twice if going out and then back to page - header('Location: '.$_SERVER["PHP_SELF"].'?id='.$object->id.'&mesg='.urlencode($mesg)); + header('Location: '.$_SERVER["PHP_SELF"].'?id='.$object->id); exit; } } @@ -1241,6 +1242,7 @@ else $productstatic = new Product($db); $object->fetch($id); + $object->fetch_thirdparty(); $societe = new Fournisseur($db); $societe->fetch($object->socid); @@ -2034,7 +2036,7 @@ else * Show mail form */ if ($action == 'presend') - { + { $ref = dol_sanitizeFileName($object->ref); include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; $fileparams = dol_most_recent_file($conf->fournisseur->facture->dir_output.'/'.get_exdir($object->id,2).$ref, preg_quote($object->ref,'/')); @@ -2089,6 +2091,28 @@ else $formmail->substit['__FACREF__']=$object->ref; $formmail->substit['__SIGNATURE__']=$user->signature; $formmail->substit['__PERSONALIZED__']=''; + $formmail->substit['__CONTACTCIVNAME__']=''; + + //Find the good contact adress + $custcontact=''; + $contactarr=array(); + $contactarr=$object->liste_contact(-1,'external'); + + if (is_array($contactarr) && count($contactarr)>0) { + foreach($contactarr as $contact) { + if ($contact['libelle']==$langs->trans('TypeContact_invoice_supplier_external_BILLING')) { + require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; + $contactstatic=new Contact($db); + $contactstatic->fetch($contact['id']); + $custcontact=$contactstatic->getFullName($langs,1); + } + } + + if (!empty($custcontact)) { + $formmail->substit['__CONTACTCIVNAME__']=$custcontact; + } + } + // Tableau des parametres complementaires $formmail->param['action']='send'; $formmail->param['models']='invoice_supplier_send'; diff --git a/htdocs/fourn/index.php b/htdocs/fourn/index.php index c03004cf7b5..ec832a670d2 100644 --- a/htdocs/fourn/index.php +++ b/htdocs/fourn/index.php @@ -50,8 +50,11 @@ llxHeader("",$langs->trans("SuppliersArea")); print_fiche_titre($langs->trans("SuppliersArea")); -print ''; -print '
'; + +//print ''; +//print '\n"; -print '\n"; -print "
'; +print '
'; + // Orders $commande = new CommandeFournisseur($db); @@ -221,8 +224,10 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture- } } -print "
'; + +//print ''; +print '
'; + /* * List last modified supliers @@ -314,10 +319,11 @@ if (count($companystatic->SupplierCategories)) print "
\n"; } -print "
\n"; -$db->close(); +//print "
\n"; +print '
'; llxFooter(); + +$db->close(); ?> diff --git a/htdocs/includes/jquery/plugins/datatables/css/jquery.dataTables.css b/htdocs/includes/jquery/plugins/datatables/css/jquery.dataTables.css index 83df98ea711..7da7faec899 100644 --- a/htdocs/includes/jquery/plugins/datatables/css/jquery.dataTables.css +++ b/htdocs/includes/jquery/plugins/datatables/css/jquery.dataTables.css @@ -201,7 +201,8 @@ table.dataTable tr.even td.sorting_3 { background-color: #F9F9FF; } .sorting_asc_disabled { background: url('../images/sort_asc_disabled.png') no-repeat center right; } .sorting_desc_disabled { background: url('../images/sort_desc_disabled.png') no-repeat center right; } -table.dataTable th:active { +table.dataTable thead th:active, +table.dataTable thead td:active { outline: none; } diff --git a/htdocs/includes/jquery/plugins/datatables/css/jquery.dataTables_jui.css b/htdocs/includes/jquery/plugins/datatables/css/jquery.dataTables_jui.css index de7c8426105..a210af51ae9 100644 --- a/htdocs/includes/jquery/plugins/datatables/css/jquery.dataTables_jui.css +++ b/htdocs/includes/jquery/plugins/datatables/css/jquery.dataTables_jui.css @@ -82,7 +82,6 @@ div.dataTables_wrapper .ui-widget-header { table.display thead th div.DataTables_sort_wrapper { position: relative; padding-right: 20px; - padding-right: 20px; } table.display thead th div.DataTables_sort_wrapper span { @@ -147,30 +146,6 @@ table.display thead th div.DataTables_sort_wrapper span { text-align: right; } -/* Pagination nested */ -.paginate_disabled_previous, .paginate_enabled_previous, .paginate_disabled_next, .paginate_enabled_next { - height: 19px; - width: 19px; - margin-left: 3px; - float: left; -} - -.paginate_disabled_previous { - background-image: url('../images/back_disabled.jpg'); -} - -.paginate_enabled_previous { - background-image: url('../images/back_enabled.jpg'); -} - -.paginate_disabled_next { - background-image: url('../images/forward_disabled.jpg'); -} - -.paginate_enabled_next { - background-image: url('../images/forward_enabled.jpg'); -} - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * diff --git a/htdocs/includes/jquery/plugins/datatables/extras/ColReorder/js/ColReorder.js b/htdocs/includes/jquery/plugins/datatables/extras/ColReorder/js/ColReorder.js index 7c7b728a274..35b96594fb8 100644 --- a/htdocs/includes/jquery/plugins/datatables/extras/ColReorder/js/ColReorder.js +++ b/htdocs/includes/jquery/plugins/datatables/extras/ColReorder/js/ColReorder.js @@ -1,8 +1,8 @@ /* * File: ColReorder.js - * Version: 1.0.5 + * Version: 1.0.8 * CVS: $Id$ - * Description: Controls for column visiblity in DataTables + * Description: Allow columns to be reordered in a DataTable * Author: Allan Jardine (www.sprymedia.co.uk) * Created: Wed Sep 15 18:23:29 BST 2010 * Modified: $Date$ by $Author$ @@ -174,10 +174,10 @@ $.fn.dataTableExt.oApi.fnColReorder = function ( oSettings, iFrom, iTo ) for ( i=0, iLen=iCols ; ic||c>=k)this.oApi._fnLog(a,1,"ColReorder 'from' index is out of bounds: "+c);else if(0>d|| -d>=k)this.oApi._fnLog(a,1,"ColReorder 'to' index is out of bounds: "+d);else{g=[];for(b=0,e=k;bthis.s.fixed-1&&this._fnMouseListener(c, -this.s.dt.aoColumns[c].nTh),this.s.dt.aoColumns[c]._ColReorder_iOrigCol=c;this.s.dt.oApi._fnCallbackReg(this.s.dt,"aoStateSaveParams",function(b,c){a._fnStateSave.call(a,c)},"ColReorder_State");var b=null;"undefined"!=typeof this.s.init.aiOrder&&(b=this.s.init.aiOrder.slice());if(this.s.dt.oLoadedState&&"undefined"!=typeof this.s.dt.oLoadedState.ColReorder&&this.s.dt.oLoadedState.ColReorder.length==this.s.dt.aoColumns.length)b=this.s.dt.oLoadedState.ColReorder;if(b)if(a.s.dt._bInitComplete)c=m(b), -a._fnOrderColumns.call(a,c);else{var e=!1;this.s.dt.aoDrawCallback.push({fn:function(){if(!a.s.dt._bInitComplete&&!e){e=!0;var c=m(b);a._fnOrderColumns.call(a,c)}},sName:"ColReorder_Pre"})}},_fnOrderColumns:function(a){if(a.length!=this.s.dt.aoColumns.length)this.s.dt.oInstance.oApi._fnLog(oDTSettings,1,"ColReorder - array reorder does not match known number of columns. Skipping.");else{for(var c=0,d=a.length;cMath.pow(Math.pow(a.pageX-this.s.mouse.startX,2)+Math.pow(a.pageY-this.s.mouse.startY,2),0.5))return;this._fnCreateDragNode()}this.dom.drag.style.left=a.pageX-this.s.mouse.offsetX+"px";this.dom.drag.style.top=a.pageY-this.s.mouse.offsetY+"px";for(var c=!1,d=1,b=this.s.aoTargets.length;db||b>=k)this.oApi._fnLog(a,1,"ColReorder 'from' index is out of bounds: "+b);else if(0>d|| +d>=k)this.oApi._fnLog(a,1,"ColReorder 'to' index is out of bounds: "+d);else{var g=[];c=0;for(e=k;cthis.s.fixed-1&&this._fnMouseListener(b,this.s.dt.aoColumns[b].nTh),this.s.dt.aoColumns[b]._ColReorder_iOrigCol=b;this.s.dt.oApi._fnCallbackReg(this.s.dt,"aoStateSaveParams",function(c,b){a._fnStateSave.call(a,b)},"ColReorder_State");var c=null;"undefined"!=typeof this.s.init.aiOrder&&(c=this.s.init.aiOrder.slice());this.s.dt.oLoadedState&&("undefined"!=typeof this.s.dt.oLoadedState.ColReorder&&this.s.dt.oLoadedState.ColReorder.length==this.s.dt.aoColumns.length)&& +(c=this.s.dt.oLoadedState.ColReorder);if(c)if(a.s.dt._bInitComplete)b=m(c),a._fnOrderColumns.call(a,b);else{var e=!1;this.s.dt.aoDrawCallback.push({fn:function(){if(!a.s.dt._bInitComplete&&!e){e=true;var b=m(c);a._fnOrderColumns.call(a,b)}},sName:"ColReorder_Pre"})}},_fnOrderColumns:function(a){if(a.length!=this.s.dt.aoColumns.length)this.s.dt.oInstance.oApi._fnLog(this.s.dt,1,"ColReorder - array reorder does not match known number of columns. Skipping.");else{for(var b=0,d=a.length;bMath.pow(Math.pow(a.pageX-this.s.mouse.startX,2)+Math.pow(a.pageY-this.s.mouse.startY,2),0.5))return;this._fnCreateDragNode()}this.dom.drag.style.left=a.pageX-this.s.mouse.offsetX+"px";this.dom.drag.style.top=a.pageY-this.s.mouse.offsetY+"px";for(var b=!1,d=1,c=this.s.aoTargets.length;d'+this.s.sRestore+"");d(b).click(function(){for(var b=0,c=a.s.abOriginal.length;b< -c;b++)a.s.dt.oInstance.fnSetColumnVis(b,a.s.abOriginal[b],!1);a._fnAdjustOpenRows();a.s.dt.oInstance.fnDraw(!1)});return b},_fnDomShowAllButton:function(){var a=this,b=document.createElement("button"),c=document.createElement("span");b.className=!this.s.dt.bJUI?"ColVis_Button TableTools_Button":"ColVis_Button TableTools_Button ui-button ui-state-default";b.appendChild(c);d(c).html(''+this.s.sShowAll+"");d(b).click(function(){for(var b=0,c=a.s.abOriginal.length;b< -c;b++)-1===a.s.aiExclude.indexOf(b)&&a.s.dt.oInstance.fnSetColumnVis(b,!0,!1);a._fnAdjustOpenRows();a.s.dt.oInstance.fnDraw(!1)});return b},_fnDomColumnButton:function(a){var b=this,c=this.s.dt.aoColumns[a],e=document.createElement("button"),g=document.createElement("span"),f=this.s.dt;e.className=!f.bJUI?"ColVis_Button TableTools_Button":"ColVis_Button TableTools_Button ui-button ui-state-default";e.appendChild(g);c=null===this.s.fnLabel?c.sTitle:this.s.fnLabel(a,c.sTitle,c.nTh);d(g).html(''+ -c+"");d(e).click(function(c){var e=!d("input",this).is(":checked");"input"==c.target.nodeName.toLowerCase()&&(e=d("input",this).is(":checked"));c=d.fn.dataTableExt.iApiIndex;d.fn.dataTableExt.iApiIndex=b._fnDataTablesApiIndex.call(b);f.oFeatures.bServerSide&&(""!==f.oScroll.sX||""!==f.oScroll.sY)?(b.s.dt.oInstance.fnSetColumnVis(a,e,!1),b.s.dt.oInstance.oApi._fnScrollDraw(b.s.dt),b._fnDrawCallback()):b.s.dt.oInstance.fnSetColumnVis(a,e);d.fn.dataTableExt.iApiIndex=c;null!==b.s.fnStateChange&& -b.s.fnStateChange.call(b,a,e)});return e},_fnDataTablesApiIndex:function(){for(var a=0,b=this.s.dt.oInstance.length;ai?c:i)+"px";g.style.width=(jh))e.style.left=h-b+"px";setTimeout(function(){d(e).animate({opacity:1},a.s.iOverlayFade);d(g).animate({opacity:0.1},a.s.iOverlayFade,"linear",function(){jQuery.browser.msie&&"6.0"==jQuery.browser.version&&a._fnDrawCallback()})},10);this.s.hidden=!1},_fnCollectionHide:function(){var a=this;if(!this.s.hidden&&null!==this.dom.collection)this.s.hidden= -!0,d(this.dom.collection).animate({opacity:0},a.s.iOverlayFade,function(){this.style.display="none"}),d(this.dom.background).animate({opacity:0},a.s.iOverlayFade,function(){document.body.removeChild(a.dom.background);document.body.removeChild(a.dom.catcher)})},_fnAdjustOpenRows:function(){for(var a=this.s.dt.aoOpenRows,b=this.s.dt.oApi._fnVisbleColumns(this.s.dt),c=0,d=a.length;c'+this.s.sRestore+"");d(b).click(function(){for(var b=0,c=a.s.abOriginal.length;b'+this.s.sShowAll+"");d(b).click(function(){for(var b=0,c=a.s.abOriginal.length;b'+c+"");d(e).click(function(c){var e=!d("input",this).is(":checked");"input"==c.target.nodeName.toLowerCase()&& +(e=d("input",this).is(":checked"));c=d.fn.dataTableExt.iApiIndex;d.fn.dataTableExt.iApiIndex=b._fnDataTablesApiIndex.call(b);f.oFeatures.bServerSide&&(""!==f.oScroll.sX||""!==f.oScroll.sY)?(b.s.dt.oInstance.fnSetColumnVis(a,e,!1),b.s.dt.oInstance.fnAdjustColumnSizing(!1),b.s.dt.oInstance.oApi._fnScrollDraw(b.s.dt),b._fnDrawCallback()):b.s.dt.oInstance.fnSetColumnVis(a,e);d.fn.dataTableExt.iApiIndex=c;null!==b.s.fnStateChange&&b.s.fnStateChange.call(b,a,e)});return e},_fnDataTablesApiIndex:function(){for(var a= +0,b=this.s.dt.oInstance.length;ai?c:i)+"px";g.style.width=(jh&&(e.style.left=h-b+"px"));setTimeout(function(){d(e).animate({opacity:1},a.s.iOverlayFade);d(g).animate({opacity:0.1},a.s.iOverlayFade,"linear",function(){jQuery.browser.msie&&jQuery.browser.version=="6.0"&&a._fnDrawCallback()})},10);this.s.hidden=!1},_fnCollectionHide:function(){var a=this;!this.s.hidden&&null!==this.dom.collection&&(this.s.hidden=!0,d(this.dom.collection).animate({opacity:0}, +a.s.iOverlayFade,function(){this.style.display="none"}),d(this.dom.background).animate({opacity:0},a.s.iOverlayFade,function(){document.body.removeChild(a.dom.background);document.body.removeChild(a.dom.catcher)}))},_fnAdjustOpenRows:function(){for(var a=this.s.dt.aoOpenRows,b=this.s.dt.oApi._fnVisbleColumns(this.s.dt),c=0,d=a.length;cFrom the oDT init option */ - "dt": null, + "dt": oDT.fnSettings(), /** * @namespace Print specific information @@ -204,7 +204,13 @@ TableTools = function( oDT, oOpts ) * @type boolean * @default false */ - "master": false + "master": false, + + /** + * Tag names that are used for creating collections and buttons + * @namesapce + */ + "tags": {} }; @@ -241,7 +247,7 @@ TableTools = function( oDT, oOpts ) "hidden": [], /** - * The information display saying tellng the user about the print display + * The information display saying telling the user about the print display * @property message * @type node * @default null @@ -270,7 +276,16 @@ TableTools = function( oDT, oOpts ) "background": null } }; - + + /** + * @namespace Name space for the classes that this TableTools instance will use + * @extends TableTools.classes + */ + this.classes = $.extend( true, {}, TableTools.classes ); + if ( this.s.dt.bJUI ) + { + $.extend( true, this.classes, TableTools.classes_themeroller ); + } /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * @@ -293,7 +308,6 @@ TableTools = function( oDT, oOpts ) oOpts = {}; } - this.s.dt = oDT.fnSettings(); this._fnConstruct( oOpts ); return this; @@ -308,31 +322,64 @@ TableTools.prototype = { /** * Retreieve the settings object from an instance - * @method fnGetSelected * @returns {array} List of TR nodes which are currently selected + * @param {boolean} [filtered=false] Get only selected rows which are + * available given the filtering applied to the table. By default + * this is false - i.e. all rows, regardless of filtering are + selected. */ - "fnGetSelected": function () + "fnGetSelected": function ( filtered ) { - var masterS = this._fnGetMasterSettings(); - return masterS.select.selected; + var + out = [], + data = this.s.dt.aoData, + displayed = this.s.dt.aiDisplay, + i, iLen; + + if ( filtered ) + { + // Only consider filtered rows + for ( i=0, iLen=displayed.length ; i
'; - print $langs->trans("ChoosedMigrateScript").''.$file.'

'.$langs->trans("ChoosedMigrateScript").''.$file.'

'.$langs->trans("ChoosedMigrateScript").' (external modules)'.$modulefileshort.'
'; print ''; @@ -118,10 +124,11 @@ if (! empty($conf->global->DISPLAY_MARK_RATES)) { print "
'.$langs->trans('CommercialAgent').'
"; print ''; -$sql = "SELECT s.nom, s.rowid as socid, s.code_client, s.client, sc.fk_user as agent,"; -$sql.= " u.login,"; -$sql.= " sum(d.subprice * d.qty * (1 - d.remise_percent / 100)) as selling_price,"; -$sql.= " sum(d.buy_price_ht * d.qty) as buying_price, sum(((d.subprice * (1 - d.remise_percent / 100)) - d.buy_price_ht) * d.qty) as marge" ; +$sql = "SELECT s.nom, s.rowid as socid, s.code_client, s.client, u.rowid as agent,"; +$sql.= " u.login, u.name, u.firstname,"; +$sql.= " sum(d.total_ht) as selling_price,"; +$sql.= $db->ifsql('f.type =2','sum(d.buy_price_ht * d.qty *-1)','sum(d.buy_price_ht * d.qty)')." as buying_price, "; +$sql.= $db->ifsql('f.type =2','sum((d.price + d.buy_price_ht) * d.qty)','sum((d.price - d.buy_price_ht) * d.qty)')." as marge" ; $sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; $sql.= ", ".MAIN_DB_PREFIX."facture as f"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."element_contact e ON e.element_id = f.rowid and e.statut = 4 and e.fk_c_type_contact = ".(empty($conf->global->AGENT_CONTACT_TYPE)?-1:$conf->global->AGENT_CONTACT_TYPE); @@ -155,7 +162,8 @@ if ($agentid > 0) else $sql.= " GROUP BY u.rowid"; $sql.= " ORDER BY $sortfield $sortorder "; -$sql.= $db->plimit($conf->liste_limit +1, $offset); +// TODO: calculate total to display then restore pagination +//$sql.= $db->plimit($conf->liste_limit +1, $offset); $result = $db->query($sql); if ($result) @@ -163,7 +171,7 @@ if ($result) $num = $db->num_rows($result); print '
'; - print_barre_liste($langs->trans("MarginDetails"),$page,$_SERVER["PHP_SELF"],"",$sortfield,$sortorder,'',$num,0,''); + print_barre_liste($langs->trans("MarginDetails"),$page,$_SERVER["PHP_SELF"],"",$sortfield,$sortorder,'',0,0,''); $i = 0; print ""; @@ -172,7 +180,7 @@ if ($result) if ($agentid > 0) print_liste_field_titre($langs->trans("Customer"),$_SERVER["PHP_SELF"],"s.nom","","&agentid=".$agentid,'align="center"',$sortfield,$sortorder); else - print_liste_field_titre($langs->trans("CommercialAgent"),$_SERVER["PHP_SELF"],"u.login","","&agentid=".$agentid,'align="center"',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("CommercialAgent"),$_SERVER["PHP_SELF"],"u.name","","&agentid=".$agentid,'align="center"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("SellingPrice"),$_SERVER["PHP_SELF"],"selling_price","","&agentid=".$agentid,'align="right"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("BuyingPrice"),$_SERVER["PHP_SELF"],"buying_price","","&agentid=".$agentid,'align="right"',$sortfield,$sortorder); @@ -191,7 +199,7 @@ if ($result) if ($num > 0) { $var=true; - while ($i < $num && $i < $conf->liste_limit) + while ($i < $num /*&& $i < $conf->liste_limit*/) { $objp = $db->fetch_object($result); @@ -208,9 +216,8 @@ if ($result) print "\n"; } else { - $userstatic->id=$objp->agent; - $userstatic->login=$objp->login; - print "\n"; + $userstatic->fetch($objp->agent); + print "\n"; } print "\n"; print "\n"; diff --git a/htdocs/margin/customerMargins.php b/htdocs/margin/customerMargins.php index 23fb49dab87..a07d3192e9b 100644 --- a/htdocs/margin/customerMargins.php +++ b/htdocs/margin/customerMargins.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2012-2013 Christophe Battarel * * 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 @@ -40,10 +40,6 @@ $result = restrictedArea($user, 'societe','',''); $mesg = ''; -$sortfield = GETPOST("sortfield",'alpha'); -$sortorder = GETPOST("sortorder",'alpha'); -if (! $sortorder) $sortorder="ASC"; -if (! $sortfield) $sortfield="s.nom"; $page = GETPOST("page",'int'); if ($page == -1) { $page = 0; } $offset = $conf->liste_limit * $page; @@ -77,7 +73,7 @@ $titre=$langs->trans("Margins"); $picto='margin'; dol_fiche_head($head, 'customerMargins', $titre, 0, $picto); -print '
'; +print ''; print '
".$companystatic->getNomUrl(1,'customer')."".$userstatic->getLoginUrl(1)."".$userstatic->getFullName($langs,0,0,0)."".price($objp->selling_price)."".price($objp->buying_price)."
'; $client = false; @@ -105,6 +101,23 @@ else { print ''; } +$sortfield = GETPOST("sortfield",'alpha'); +$sortorder = GETPOST("sortorder",'alpha'); +if (! $sortorder) $sortorder="ASC"; +if (! $sortfield) +{ + if ($client) + { + $sortfield="f.datef"; + $sortorder="DESC"; + } + else + { + $sortfield="s.nom"; + $sortorder="ASC"; + } +} + // Start date print ''; print '
'.$langs->trans('StartDate').''; @@ -142,8 +155,9 @@ print ''; $sql = "SELECT distinct s.nom, s.rowid as socid, s.code_client, s.client,"; $sql.= " f.facnumber, f.total as total_ht,"; -$sql.= " sum(d.subprice * d.qty * (1 - d.remise_percent / 100)) as selling_price,"; -$sql.= " sum(d.buy_price_ht * d.qty) as buying_price, sum(((d.subprice * (1 - d.remise_percent / 100)) - d.buy_price_ht) * d.qty) as marge," ; +$sql.= " sum(d.total_ht) as selling_price,"; +$sql.= $db->ifsql('f.type =2','sum(d.buy_price_ht * d.qty *-1)','sum(d.buy_price_ht * d.qty)')." as buying_price, "; +$sql.= $db->ifsql('f.type =2','sum((d.price + d.buy_price_ht) * d.qty)','sum((d.price - d.buy_price_ht) * d.qty)')." as marge," ; $sql.= " f.datef, f.paye, f.fk_statut as statut, f.rowid as facid"; $sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; $sql.= ", ".MAIN_DB_PREFIX."facture as f"; @@ -166,7 +180,8 @@ if ($client) else $sql.= " GROUP BY s.rowid"; $sql.= " ORDER BY $sortfield $sortorder "; -$sql.= $db->plimit($conf->liste_limit +1, $offset); +// TODO: calculate total to display then restore pagination +//$sql.= $db->plimit($conf->liste_limit +1, $offset); $result = $db->query($sql); if ($result) @@ -174,7 +189,7 @@ if ($result) $num = $db->num_rows($result); print '
'; - print_barre_liste($langs->trans("MarginDetails"),$page,$_SERVER["PHP_SELF"],"",$sortfield,$sortorder,'',$num,0,''); + print_barre_liste($langs->trans("MarginDetails"),$page,$_SERVER["PHP_SELF"],"",$sortfield,$sortorder,'',0,0,''); $i = 0; print ""; @@ -203,7 +218,7 @@ if ($result) if ($num > 0) { $var=True; - while ($i < $num && $i < $conf->liste_limit) + while ($i < $num /*&& $i < $conf->liste_limit*/) { $objp = $db->fetch_object($result); diff --git a/htdocs/margin/productMargins.php b/htdocs/margin/productMargins.php index 4f22ba5599e..3b709559f28 100644 --- a/htdocs/margin/productMargins.php +++ b/htdocs/margin/productMargins.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2012-2013 Christophe Battarel * * 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 @@ -48,7 +48,20 @@ $mesg = ''; $sortfield = GETPOST("sortfield",'alpha'); $sortorder = GETPOST("sortorder",'alpha'); if (! $sortorder) $sortorder="ASC"; -if (! $sortfield) $sortfield="p.ref"; +if (! $sortfield) +{ + if ($id > 0) + { + $sortfield="f.datef"; + $sortorder="DESC"; + } + else + { + $sortfield="p.ref"; + $sortorder="ASC"; + } +} + $page = GETPOST("page",'int'); if ($page == -1) { $page = 0; } $offset = $conf->liste_limit * $page; @@ -83,7 +96,7 @@ $titre=$langs->trans("Margins"); $picto='margin'; dol_fiche_head($head, 'productMargins', $titre, 0, $picto); -print '
'; +print ''; print '
'; if ($id > 0) { @@ -144,8 +157,9 @@ print ''; $sql = "SELECT DISTINCT d.fk_product, p.label, p.rowid, p.fk_product_type, p.ref,"; $sql.= " f.facnumber, f.total as total_ht,"; -$sql.= " sum(d.subprice * d.qty * (1 - d.remise_percent / 100)) as selling_price,"; -$sql.= " sum(d.buy_price_ht * d.qty) as buying_price, sum(((d.subprice * (1 - d.remise_percent / 100)) - d.buy_price_ht) * d.qty) as marge," ; +$sql.= " sum(d.total_ht) as selling_price,"; +$sql.= $db->ifsql('f.type =2','sum(d.buy_price_ht * d.qty *-1)','sum(d.buy_price_ht * d.qty)')." as buying_price, "; +$sql.= $db->ifsql('f.type =2','sum((d.price + d.buy_price_ht) * d.qty)','sum((d.price - d.buy_price_ht) * d.qty)')." as marge," ; $sql.= " f.datef, f.paye, f.fk_statut as statut, f.rowid as facid"; $sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; $sql.= ", ".MAIN_DB_PREFIX."product as p"; @@ -170,7 +184,8 @@ if ($id > 0) else $sql.= " GROUP BY d.fk_product"; $sql.= " ORDER BY $sortfield $sortorder "; -$sql.= $db->plimit($conf->liste_limit +1, $offset); +// TODO: calculate total to display then restore pagination +//$sql.= $db->plimit($conf->liste_limit +1, $offset); $result = $db->query($sql); if ($result) @@ -178,7 +193,7 @@ if ($result) $num = $db->num_rows($result); print '
'; - print_barre_liste($langs->trans("MarginDetails"),$page,$_SERVER["PHP_SELF"],"&id=".$id,$sortfield,$sortorder,'',$num,0,''); + print_barre_liste($langs->trans("MarginDetails"),$page,$_SERVER["PHP_SELF"],"&id=".$id,$sortfield,$sortorder,'',0,0,''); $i = 0; print "
"; @@ -207,7 +222,7 @@ if ($result) if ($num > 0) { $var=True; - while ($i < $num && $i < $conf->liste_limit) + while ($i < $num /*&& $i < $conf->liste_limit*/) { $objp = $db->fetch_object($result); diff --git a/htdocs/margin/tabs/productMargins.php b/htdocs/margin/tabs/productMargins.php index 407f3603d49..326efc526d2 100644 --- a/htdocs/margin/tabs/productMargins.php +++ b/htdocs/margin/tabs/productMargins.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2012-2013 Christophe Battarel * * 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 @@ -130,7 +130,10 @@ if ($id > 0 || ! empty($ref)) $sql = "SELECT DISTINCT s.nom, s.rowid as socid, s.code_client,"; $sql.= " f.facnumber, f.total as total_ht,"; - $sql.= " (d.subprice * d.qty * (1 - d.remise_percent / 100)) as selling_price, (d.buy_price_ht * d.qty) as buying_price, d.qty, ((d.subprice - d.buy_price_ht) * d.qty) as marge," ; + $sql.= " d.total_ht as selling_price,"; + $sql.= $db->ifsql('f.type =2','(d.buy_price_ht * d.qty *-1)','(d.buy_price_ht * d.qty)')." as buying_price, "; + $sql.= $db->ifsql('f.type =2','d.qty *-1','d.qty')." as qty,"; + $sql.= $db->ifsql('f.type =2','((d.price + d.buy_price_ht) * d.qty)','((d.price - d.buy_price_ht) * d.qty)')." as marge," ; $sql.= " f.datef, f.paye, f.fk_statut as statut, f.rowid as facid"; if (!$user->rights->societe->client->voir && !$socid) $sql.= ", sc.fk_soc, sc.fk_user "; $sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; @@ -148,14 +151,15 @@ if ($id > 0 || ! empty($ref)) if (isset($conf->global->ForceBuyingPriceIfNull) && $conf->global->ForceBuyingPriceIfNull == 1) $sql .= " AND d.buy_price_ht <> 0"; $sql.= " ORDER BY $sortfield $sortorder "; - $sql.= $db->plimit($conf->liste_limit +1, $offset); + // TODO: calculate total to display then restore pagination + //$sql.= $db->plimit($conf->liste_limit +1, $offset); $result = $db->query($sql); if ($result) { $num = $db->num_rows($result); - print_barre_liste($langs->trans("MarginDetails"),$page,$_SERVER["PHP_SELF"],"&id=$object->id",$sortfield,$sortorder,'',$num,0,''); + print_barre_liste($langs->trans("MarginDetails"),$page,$_SERVER["PHP_SELF"],"&id=$object->id",$sortfield,$sortorder,'',0,0,''); $i = 0; print "
"; @@ -184,7 +188,7 @@ if ($id > 0 || ! empty($ref)) if ($num > 0) { $var=True; - while ($i < $num && $i < $conf->liste_limit) + while ($i < $num /*&& $i < $conf->liste_limit*/) { $objp = $db->fetch_object($result); $var=!$var; diff --git a/htdocs/margin/tabs/thirdpartyMargins.php b/htdocs/margin/tabs/thirdpartyMargins.php index cbb42401b5a..643d190d04d 100644 --- a/htdocs/margin/tabs/thirdpartyMargins.php +++ b/htdocs/margin/tabs/thirdpartyMargins.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2012-2013 Christophe Battarel * * 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 @@ -128,7 +128,10 @@ if ($socid > 0) $sql = "SELECT distinct s.nom, s.rowid as socid, s.code_client,"; $sql.= " f.facnumber, f.total as total_ht,"; - $sql.= " sum(d.subprice * d.qty * (1 - d.remise_percent / 100)) as selling_price, sum(d.buy_price_ht * d.qty) as buying_price, sum(((d.subprice * (1 - d.remise_percent / 100)) - d.buy_price_ht) * d.qty) as marge," ; + $sql.= " sum(d.total_ht) as selling_price,"; + + $sql.= $db->ifsql('f.type =2','sum(d.buy_price_ht * d.qty *-1)','sum(d.buy_price_ht * d.qty)')." as buying_price, "; + $sql.= $db->ifsql('f.type =2','sum((d.price + d.buy_price_ht) * d.qty)','sum((d.price - d.buy_price_ht) * d.qty)')." as marge," ; $sql.= " f.datef, f.paye, f.fk_statut as statut, f.rowid as facid"; $sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; $sql.= ", ".MAIN_DB_PREFIX."facture as f"; @@ -143,14 +146,15 @@ if ($socid > 0) $sql .= " AND d.buy_price_ht <> 0"; $sql.= " GROUP BY f.rowid"; $sql.= " ORDER BY $sortfield $sortorder "; - $sql.= $db->plimit($conf->liste_limit +1, $offset); + // TODO: calculate total to display then restore pagination + //$sql.= $db->plimit($conf->liste_limit +1, $offset); $result = $db->query($sql); if ($result) { $num = $db->num_rows($result); - print_barre_liste($langs->trans("MarginDetails"),$page,$_SERVER["PHP_SELF"],"&socid=$societe->id",$sortfield,$sortorder,'',$num,0,''); + print_barre_liste($langs->trans("MarginDetails"),$page,$_SERVER["PHP_SELF"],"&socid=$societe->id",$sortfield,$sortorder,'',0,0,''); $i = 0; print "
"; @@ -176,7 +180,7 @@ if ($socid > 0) if ($num > 0) { $var=True; - while ($i < $num && $i < $conf->liste_limit) + while ($i < $num /*&& $i < $conf->liste_limit*/) { $objp = $db->fetch_object($result); diff --git a/htdocs/product/index.php b/htdocs/product/index.php index bb5baaaf698..f0ab56ae6f0 100644 --- a/htdocs/product/index.php +++ b/htdocs/product/index.php @@ -66,9 +66,11 @@ llxHeader("",$langs->trans("ProductsAndServices"),$helpurl); print_fiche_titre($transAreaType); -print '
'; -print '
'; +//print ''; +//print ''; print '
'; +print '
'; + /* * Zone recherche produit/service @@ -156,7 +158,10 @@ print $total; print '
'; -print '
'; + +//print ''; +print '
'; + /* * Last modified products @@ -253,7 +258,8 @@ else dol_print_error($db); } -print '
'; +//print '
'; +print '
'; llxFooter(); diff --git a/htdocs/product/liste.php b/htdocs/product/liste.php index bef33a022b1..9fb9aa8de51 100644 --- a/htdocs/product/liste.php +++ b/htdocs/product/liste.php @@ -4,6 +4,7 @@ * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2012 Marcos García * Copyright (C) 2013 Juanjo Menent + * Copyright (C) 2013 Raphaël Doursenaud * * 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 @@ -133,12 +134,16 @@ else $sql.= ' WHERE p.entity IN ('.getEntity('product', 1).')'; if ($sall) { - $sql.= " AND (p.ref LIKE '%".$db->escape($sall)."%' OR p.label LIKE '%".$db->escape($sall)."%' OR p.description LIKE '%".$db->escape($sall)."%' OR p.note LIKE '%".$db->escape($sall)."%'"; - if (! empty($conf->barcode->enabled)) - { - $sql.= " OR p.barcode LIKE '%".$db->escape($sall)."%'"; + // For natural search + $scrit = explode(' ', $sall); + foreach ($scrit as $crit) { + $sql.= " AND (p.ref LIKE '%".$db->escape($crit)."%' OR p.label LIKE '%".$db->escape($crit)."%' OR p.description LIKE '%".$db->escape($crit)."%' OR p.note LIKE '%".$db->escape($crit)."%'"; + if (! empty($conf->barcode->enabled)) + { + $sql.= " OR p.barcode LIKE '%".$db->escape($crit)."%'"; + } + $sql.= ')'; } - $sql.= ')'; } // if the type is not 1, we show all products (type = 0,2,3) if (dol_strlen($type)) diff --git a/htdocs/product/stock/index.php b/htdocs/product/stock/index.php index 1dc2d16957b..d544175b2fd 100644 --- a/htdocs/product/stock/index.php +++ b/htdocs/product/stock/index.php @@ -42,8 +42,11 @@ llxHeader("",$langs->trans("Stocks"),$help_url); print_fiche_titre($langs->trans("StocksArea")); -print ''; -print '
'; + +//print ''; +//print '
'; +print '
'; + /* * Zone recherche entrepot @@ -101,7 +104,10 @@ else dol_print_error($db); } -print '
'; + +//print ''; +print '
'; + // Last movements $max=10; @@ -157,10 +163,10 @@ if ($resql) print "
"; } -print '
'; +//print ''; +print '
'; llxFooter(); $db->close(); - ?> diff --git a/htdocs/product/stock/product.php b/htdocs/product/stock/product.php index 81786c2e482..6ac507b2070 100644 --- a/htdocs/product/stock/product.php +++ b/htdocs/product/stock/product.php @@ -539,11 +539,11 @@ if ($resql) print ''.(price2num($obj->pmp)?price(price2num($obj->pmp*$obj->reel,'MT')):'').''; // Ditto : Show PMP from movement or from product // Sell price print ''; - if (empty($conf->global->PRODUIT_MUTLI_PRICES)) print price(price2num($product->price,'MU')); + if (empty($conf->global->PRODUIT_MULTI_PRICES)) print price(price2num($product->price,'MU')); else print $langs->trans("Variable"); print ''; // Ditto : Show PMP from movement or from product print ''; - if (empty($conf->global->PRODUIT_MUTLI_PRICES)) print price(price2num($product->price*$obj->reel,'MT')).''; // Ditto : Show PMP from movement or from product + if (empty($conf->global->PRODUIT_MULTI_PRICES)) print price(price2num($product->price*$obj->reel,'MT')).''; // Ditto : Show PMP from movement or from product else print $langs->trans("Variable"); print ''; ; $total += $obj->reel; @@ -564,11 +564,11 @@ print ''; print price(price2num($totalvalue,'MT')); print ''; print ''; -if (empty($conf->global->PRODUIT_MUTLI_PRICES)) print ($total?price($totalvaluesell/$total):' '); +if (empty($conf->global->PRODUIT_MULTI_PRICES)) print ($total?price($totalvaluesell/$total):' '); else print $langs->trans("Variable"); print ''; print ''; -if (empty($conf->global->PRODUIT_MUTLI_PRICES)) print price(price2num($totalvaluesell,'MT')); +if (empty($conf->global->PRODUIT_MULTI_PRICES)) print price(price2num($totalvaluesell,'MT')); else print $langs->trans("Variable"); print ''; print ""; diff --git a/htdocs/projet/class/project.class.php b/htdocs/projet/class/project.class.php index 97eb27745a8..d2864b08c11 100644 --- a/htdocs/projet/class/project.class.php +++ b/htdocs/projet/class/project.class.php @@ -3,6 +3,7 @@ /* Copyright (C) 2002-2005 Rodolphe Quiedeville * Copyright (C) 2005-2012 Laurent Destailleur * Copyright (C) 2005-2010 Regis Houssin + * 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 @@ -260,7 +261,7 @@ class Project extends CommonObject if (empty($id) && empty($ref)) return -1; $sql = "SELECT rowid, ref, title, description, public, datec"; - $sql.= ", tms, dateo, datee, fk_soc, fk_user_creat, fk_statut, note_private, note_public"; + $sql.= ", tms, dateo, datee, fk_soc, fk_user_creat, fk_statut, note_private, note_public,model_pdf"; $sql.= " FROM " . MAIN_DB_PREFIX . "projet"; if (! empty($id)) { @@ -298,6 +299,7 @@ class Project extends CommonObject $this->user_author_id = $obj->fk_user_creat; $this->public = $obj->public; $this->statut = $obj->fk_statut; + $this->modelpdf = $obj->model_pdf; $this->db->free($resql); diff --git a/htdocs/public/cron/cron_run_jobs.php b/htdocs/public/cron/cron_run_jobs.php new file mode 100644 index 00000000000..7f25cfaf63c --- /dev/null +++ b/htdocs/public/cron/cron_run_jobs.php @@ -0,0 +1,142 @@ +. + */ + +/** + * \file cron/public/cron/cron_run_jobs.php + * \ingroup cron + * \brief Execute pendings jobs + */ +if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL','1'); // Disables token renewal +if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU','1'); +if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1'); +if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1'); +if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC','1'); +if (! defined('NOLOGIN')) define('NOLOGIN','1'); +//if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1'); + +// librarie core +// Dolibarr environment +$res = @include("../../main.inc.php"); // From htdocs directory +if (! $res) { + $res = @include("../../../main.inc.php"); // From "custom" directory +} +if (! $res) die("Include of master.inc.php fails"); + +// librarie jobs +dol_include_once("/cron/class/cronjob.class.php"); + + +global $langs, $conf; + +// Check the key, avoid that a stranger starts cron +$key = $_GET['securitykey']; +if (empty($key)) { + echo 'securitykey is require'; + exit; +} +if($key != $conf->global->CRON_KEY) +{ + echo 'securitykey is wrong'; + exit; +} +// Check the key, avoid that a stranger starts cron +$userlogin = $_GET['userlogin']; +if (empty($userlogin)) { + echo 'userlogin is require'; + exit; +} +require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php'; +$user=new User($db); +$result=$user->fetch('',$userlogin); +if ($result<0) { + echo "User Error:".$user->error; + dol_syslog("cron_run_jobs.php:: User Error:".$user->error, LOG_ERR); + exit; +}else { + if (empty($user->id)) { + echo " User user login:".$userlogin." do not exists"; + dol_syslog(" User user login:".$userlogin." do not exists", LOG_ERR); + exit; + } +} +$id = $_GET['id']; + +// Language Management +$langs->load("admin"); +$langs->load("cron@cron"); + +// create a jobs object +$object = new Cronjob($db); + +$filter=array(); +if (empty($id)) { + $filter=array(); + $filter['t.rowid']=$id; +} + +$result = $object->fetch_all('DESC','t.rowid', 0, 0, 1, $filter); +if ($result<0) { + echo "Error:".$cronjob->error; + dol_syslog("cron_run_jobs.php:: fetch Error".$cronjob->error, LOG_ERR); + exit; +} + +// current date +$now=dol_now(); + +if(is_array($object->lines) && (count($object->lines)>0)){ + // Loop over job + foreach($object->lines as $line){ + + dol_syslog("cron_run_jobs.php:: fetch cronjobid:".$line->id, LOG_ERR); + + //If date_next_jobs is less of current dat, execute the program, and store the execution time of the next execution in database + if ((($line->datenextrun <= $now) && $line->dateend < $now) + || ((empty($line->datenextrun)) && (empty($line->dateend)))){ + + dol_syslog("cron_run_jobs.php:: torun line->datenextrun:".dol_print_date($line->datenextrun,'dayhourtext')." line->dateend:".dol_print_date($line->dateend,'dayhourtext')." now:".dol_print_date($now,'dayhourtext'), LOG_ERR); + + $cronjob=new Cronjob($db); + $result=$cronjob->fetch($line->id); + if ($result<0) { + echo "Error:".$cronjob->error; + dol_syslog("cron_run_jobs.php:: fetch Error".$cronjob->error, LOG_ERR); + exit; + } + // execute methode + $result=$cronjob->run_jobs($userlogin); + if ($result<0) { + echo "Error:".$cronjob->error; + dol_syslog("cron_run_jobs.php:: run_jobs Error".$cronjob->error, LOG_ERR); + exit; + } + + // we re-program the next execution and stores the last execution time for this job + $result=$cronjob->reprogram_jobs($userlogin); + if ($result<0) { + echo "Error:".$cronjob->error; + dol_syslog("cron_run_jobs.php:: reprogram_jobs Error".$cronjob->error, LOG_ERR); + exit; + } + + } + } + echo "OK"; +} else { + echo "No Jobs to run"; +} diff --git a/htdocs/public/members/new.php b/htdocs/public/members/new.php index d6de1fecf92..d6368514821 100644 --- a/htdocs/public/members/new.php +++ b/htdocs/public/members/new.php @@ -243,7 +243,7 @@ if ($action == 'add') $adh->typeid = $_POST["type"]; $adh->note = $_POST["comment"]; $adh->morphy = $_POST["morphy"]; - $adh->naiss = $birthday; + $adh->birth = $birthday; foreach($_POST as $key => $value){ if (preg_match("/^options_/",$key)){ diff --git a/htdocs/public/members/public_card.php b/htdocs/public/members/public_card.php index a5423468a2e..d250b838386 100644 --- a/htdocs/public/members/public_card.php +++ b/htdocs/public/members/public_card.php @@ -95,7 +95,7 @@ if ($id > 0) print ''.$langs->trans("Zip").' '.$langs->trans("Town").''.$object->zip.' '.$object->town.' '; print ''.$langs->trans("Country").''.$object->country.' '; print ''.$langs->trans("EMail").''.$object->email.' '; - print ''.$langs->trans("Birthday").''.$object->naiss.' '; + print ''.$langs->trans("Birthday").''.$object->birth.' '; if (isset($object->photo) && $object->photo !='') { diff --git a/htdocs/public/members/public_list.php b/htdocs/public/members/public_list.php index de4044e3574..971ad3dc449 100644 --- a/htdocs/public/members/public_list.php +++ b/htdocs/public/members/public_list.php @@ -101,7 +101,7 @@ if (! $sortfield) { $sortfield="nom"; } llxHeaderVierge($langs->trans("ListOfValidatedPublicMembers")); -$sql = "SELECT rowid, firstname, lastname, societe, zip, town, email, naiss, photo"; +$sql = "SELECT rowid, firstname, lastname, societe, zip, town, email, birth, photo"; $sql.= " FROM ".MAIN_DB_PREFIX."adherent"; $sql.= " WHERE entity = ".$entity; $sql.= " AND statut = 1"; @@ -127,7 +127,7 @@ if ($result) print ''.$langs->trans("Firstname").''; print ' '.$langs->trans("Lastname").''; print ' / '.$langs->trans("Company").''."\n"; - //print_liste_field_titre($langs->trans("DateToBirth"),"public_list.php","naiss",'',$param,$sortfield,$sortorder); // est-ce nécessaire ?? + //print_liste_field_titre($langs->trans("DateToBirth"),"public_list.php","birth",'',$param,$sortfield,$sortorder); // est-ce nécessaire ?? print_liste_field_titre($langs->trans("EMail"),"public_list.php","email",'',$param,$sortfield,$sortorder); print_liste_field_titre($langs->trans("Zip"),"public_list.php","zip","",$param,$sortfield,$sortorder); print_liste_field_titre($langs->trans("Town"),"public_list.php","town","",$param,$sortfield,$sortorder); @@ -141,7 +141,7 @@ if ($result) $var=!$var; print ""; print ''.dolGetFirstLastname($obj->firstname, $obj->lastname).($objp->societe?' / '.$objp->societe:'').''."\n"; - //print "$objp->naiss\n"; // est-ce nécessaire ?? + //print "$objp->birth\n"; // est-ce nécessaire ?? print ''.$objp->email.''."\n"; print ''.$objp->zip.''."\n"; print ''.$objp->town.''."\n"; diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php index c87a6ef11f4..ecf387e13c2 100644 --- a/htdocs/societe/class/societe.class.php +++ b/htdocs/societe/class/societe.class.php @@ -82,7 +82,9 @@ class Societe extends CommonObject var $idprof1; // IdProf1 (Ex: Siren in France) var $idprof2; // IdProf2 (Ex: Siret in France) var $idprof3; // IdProf3 (Ex: Ape in France) - var $idprof4; // IdProf4 (Ex: RCS in France) + var $idprof4; // IdProf4 (Ex: RCS in France) + var $idprof5; // IdProf5 + var $idprof6; // IdProf6 var $prefix_comm; @@ -2599,40 +2601,53 @@ class Societe extends CommonObject } /** - * Check if localtax define for company - * Used to build previews or test instances. - * id must be 0 if object instance is a specimen. + * Check if thirdparty may using localtax or not * - * @param localTaxNum $localTaxNum 1 or 2 - * @return boolean true / false + * @param int $localTaxNum To get info for only localtax1 or localtax2 + * @return array array(0=>boolean, 1=>boolean) */ - function hasLocalTax($localTaxNum) { - global $user,$langs,$conf; + function useLocalTax($localTaxNum=0) + { + $sql = "SELECT t.localtax1, t.localtax2"; + $sql .= " FROM ".MAIN_DB_PREFIX."c_tva as t, ".MAIN_DB_PREFIX."c_pays as p"; + $sql .= " WHERE t.fk_pays = p.rowid AND p.code = '".$this->country_code."'"; + $sql .= " AND t.active = 1"; + if (empty($localTaxNum)) $sql .= " AND (t.localtax1_type <> '0' OR t.localtax2_type <> '0')"; + elseif ($localTaxNum == 1) $sql .= " AND t.localtax1_type <> '0'"; + elseif ($localTaxNum == 2) $sql .= " AND t.localtax2_type <> '0'"; - // check parameter - if ($localTaxNum != 1 && $localTaxNum != 2) - return false; + dol_syslog("useLocalTax sql=".$sql); + $resql=$this->db->query($sql); + if ($resql) + { + return ($this->db->num_rows($resql) > 0); + } + else return false; + } - // Search local taxes - $sql = "SELECT t.localtax1, t.localtax2"; - $sql .= " FROM ".MAIN_DB_PREFIX."c_tva as t, ".MAIN_DB_PREFIX."c_pays as p"; - $sql .= " WHERE t.fk_pays = p.rowid AND p.code = '".$this->country_code."'"; - $sql .= " AND t.active = 1"; - if ($localTaxNum == 1) - $sql .= " AND t.localtax1 <> 0"; - elseif ($localTaxNum == 2) - $sql .= " AND t.localtax2 <> 0"; + /** + * Check if thirdparty is from a country using revenue stamps + * + * @return boolean Yes or no + */ + function useRevenueStamp() + { + $sql = "SELECT COUNT(*) as nb FROM ".MAIN_DB_PREFIX."c_revenuestamp as r, ".MAIN_DB_PREFIX."c_pays as p"; + $sql .= " WHERE r.fk_pays = p.rowid AND p.code = '".$this->country_code."'"; + $sql .= " AND r.active = 1"; - dol_syslog("get_localtax sql=".$sql); + dol_syslog("useRevenueStamp sql=".$sql); $resql=$this->db->query($sql); if ($resql) { - return ($this->db->num_rows($resql) > 0); - + $obj=$this->db->fetch_object($resql); + return (($obj->nb > 0)?true:false); } else - return false; - + { + $this->error=$this->db->lasterror(); + return false; + } } /** @@ -2752,7 +2767,7 @@ class Societe extends CommonObject /** * Set commnunication level * - * @param User $user Utilisateur qui definie la remise + * @param User $user User making change * @return int <0 if KO, >0 if OK */ function set_commnucation_level($user) diff --git a/htdocs/societe/consumption.php b/htdocs/societe/consumption.php new file mode 100644 index 00000000000..4f61d24a4aa --- /dev/null +++ b/htdocs/societe/consumption.php @@ -0,0 +1,439 @@ + + * Copyright (C) 2004-2012 Laurent Destailleur + * + * Version V1.1 Initial version of Philippe Berthet + * Version V2 Change to be compatible with 3.4 and enhanced to be more generic + * + * 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/societe/consumption.php + * \ingroup societe + * \brief Add a tab on thirpdarty view to list all products/services bought or sells by thirdparty + */ + +require("../main.inc.php"); +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; +require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.class.php'; +require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; + +// Security check +$socid = GETPOST('socid','int'); +if ($user->societe_id) $socid=$user->societe_id; +$result = restrictedArea($user, 'societe', $socid, '&societe'); +$object = new Societe($db); +if ($socid > 0) $object->fetch($socid); + +// Sort & Order fields +$sortfield = GETPOST("sortfield",'alpha'); +$sortorder = GETPOST("sortorder",'alpha'); +$page = GETPOST("page",'int'); +if ($page == -1) { + $page = 0; +} +$offset = $conf->liste_limit * $page; +if (! $sortorder) $sortorder='DESC'; +if (! $sortfield) $sortfield='datePrint'; +$limit = $conf->liste_limit; + +// Search fields +$sref=GETPOST("sref"); +$sprod_fulldescr=GETPOST("sprod_fulldescr"); +$month = GETPOST('month','int'); +$year = GETPOST('year','int'); + +// Clean up on purge search criteria ? +if (GETPOST("button_removefilter")) +{ + $sref=''; + $sprod_fulldescr=''; + $year=''; + $month=''; +} +// Customer or supplier selected in drop box +$thirdTypeSelect = GETPOST("third_select_id"); +$type_element = GETPOST('type_element')?GETPOST('type_element'):'invoice'; + +$langs->load("bills"); +$langs->load("orders"); +$langs->load("suppliers"); + + +/* + * Actions + */ + + + +/* + * View + */ + +$form = new Form($db); +$formother = new FormOther($db); +$productstatic=new Product($db); + +$titre = $langs->trans("Referer",$object->name); +llxHeader('',$titre,''); + +if (empty($socid)) +{ + dol_print_error($db); + exit; +} + +$head = societe_prepare_head($object); +dol_fiche_head($head, 'consumption', $langs->trans("ThirdParty"),0,'company'); + +print '
'; +print ''; +print ''; + +print ''; +print ''; +print ''; + +if (! empty($conf->global->SOCIETE_USEPREFIX)) // Old not used prefix field +{ + print ''; +} + +if ($object->client) +{ + print ''; + $sql = "SELECT count(*) as nb from ".MAIN_DB_PREFIX."facture where fk_soc = ".$socid; + $resql=$db->query($sql); + if (!$resql) dol_print_error($db); + + $obj = $db->fetch_object($resql); + $nbFactsClient = $obj->nb; + $thirdTypeArray['customer']=$langs->trans("customer"); + if ($conf->facture->enabled) $elementTypeArray['invoice']=$langs->trans('Invoices'); + if ($conf->commande->enabled) $elementTypeArray['order']=$langs->trans('Orders'); +} + +if ($object->fournisseur) +{ + print ''; + $sql = "SELECT count(*) as nb from ".MAIN_DB_PREFIX."commande_fournisseur where fk_soc = ".$socid; + $resql=$db->query($sql); + if (!$resql) dol_print_error($db); + + $obj = $db->fetch_object($resql); + $nbCmdsFourn = $obj->nb; + $thirdTypeArray['supplier']=$langs->trans("supplier"); + if ($conf->fournisseur->enabled) $elementTypeArray['supplier_invoice']=$langs->trans('SuppliersInvoices'); + if ($conf->fournisseur->enabled) $elementTypeArray['supplier_order']=$langs->trans('SuppliersOrders'); +} +print '
'.$langs->trans('ThirdPartyName').''; +print $form->showrefnav($object,'socid','',($user->societe_id?0:1),'rowid','nom'); +print '
'.$langs->trans('Prefix').''.$object->prefix_comm.'
'; + print $langs->trans('CustomerCode').''; + print $object->code_client; + if ($object->check_codeclient() <> 0) print ' ('.$langs->trans("WrongCustomerCode").')'; + print '
'; + print $langs->trans('SupplierCode').''; + print $object->code_fournisseur; + if ($object->check_codefournisseur() <> 0) print ' ('.$langs->trans("WrongSupplierCode").')'; + print '
'; + +dol_fiche_end(); +print '
'; + + +$sql_select=''; +if ($type_element == 'invoice') +{ // Customer : show products from invoices +$documentstatic=new Facture($db); +$sql_select = 'SELECT f.rowid as doc_id, f.facnumber as doc_number, f.type as doc_type, f.datef as datePrint, '; +$tables_from = MAIN_DB_PREFIX."facture as f,".MAIN_DB_PREFIX."facturedet as d"; +$where = " WHERE f.fk_soc = s.rowid AND s.rowid = ".$socid; +$where.= " AND d.fk_facture = f.rowid"; +$where.= " AND f.entity = ".$conf->entity; +$datePrint = 'f.datef'; +$doc_number='f.facnumber'; +$thirdTypeSelect='customer'; +} +if ($type_element == 'order') +{ + // TODO + +} +if ($type_element == 'supplier_order') +{ // Supplier : Show products from orders. +$documentstatic=new CommandeFournisseur($db); +$sql_select = 'SELECT c.rowid as doc_id, c.ref as doc_number, "1" as doc_type, c.date_valid as datePrint, '; +$tables_from = MAIN_DB_PREFIX."commande_fournisseur as c,".MAIN_DB_PREFIX."commande_fournisseurdet as d"; +$where = " WHERE c.fk_soc = s.rowid AND s.rowid = ".$socid; +$where.= " AND d.fk_commande = c.rowid"; +$datePrint = 'c.date_creation'; +$doc_number='c.ref'; +$thirdTypeSelect='supplier'; +} +if ($type_element == 'supplier_invoice') +{ + // TODO + +} + +$sql = $sql_select; +$sql.= ' d.fk_product as product_id, d.fk_product as fk_product, d.label, d.description as description, d.info_bits, d.date_start, d.date_end, d.qty, d.qty as prod_qty,'; +$sql.= ' p.ref as ref, p.rowid as prod_id, p.rowid as fk_product, p.fk_product_type as prod_type, p.fk_product_type as fk_product_type,'; +$sql.= " s.rowid as socid, p.ref as prod_ref, p.label as product_label"; +$sql.= " FROM ".MAIN_DB_PREFIX."societe as s, ".$tables_from; +$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON d.fk_product = p.rowid '; +$sql.= $where; +if ($month > 0) { + if ($year > 0) { + $start = dol_mktime(0, 0, 0, $month, 1, $year); + $end = dol_time_plus_duree($start, 1 , 'm') - 1; + $sql.= " AND ".$datePrint." BETWEEN '".$db->idate($start)."' AND '".$db->idate($end)."'"; + } else { + $sql.= " AND date_format(".$datePrint.", '%m') = '".sprintf('%02d',$month)."'"; + } +} else if ($year > 0) { + $start = dol_mktime(0, 0, 0, 1, 1, $year); + $end = dol_time_plus_duree($start, 1 , 'y') - 1; + $sql.= " AND ".$datePrint." BETWEEN '".$db->idate($start)."' AND '".$db->idate($end)."'"; +} +if ($sref) $sql.= " AND ".$doc_number." LIKE '%".$sref."%'"; +$sql.= $db->order($sortfield,$sortorder); +$sql.= $db->plimit($limit + 1, $offset); + + +// Define type of elements +$typeElementString = $form->selectarray("type_element",$elementTypeArray,GETPOST('type_element')); +$button = ''; +$param="&sref=".$sref."&month=".$month."&year=".$year."&sprod_fulldescr=".$sprod_fulldescr."&socid=".$socid; + +print_barre_liste($langs->trans('ProductsIntoElements', $typeElementString.' '.$button), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder,'',$num, '', ''); + +if ($sql_select) +{ + dol_syslog("sql=".$sql); + $resql=$db->query($sql); + if (!$resql) dol_print_error($db); +} + +print ''."\n"; +// Titles with sort buttons +print ''; +print_liste_field_titre($langs->trans('Ref'),$_SERVER['PHP_SELF'],'doc_number','',$param,'align="left"',$sortfield,$sortorder); +print_liste_field_titre($langs->trans('Date'),$_SERVER['PHP_SELF'],'datePrint','',$param,'align="center" width="150"',$sortfield,$sortorder); +print_liste_field_titre($langs->trans('Product'),$_SERVER['PHP_SELF'],'','',$param,'align="left"',$sortfield,$sortorder); +print_liste_field_titre($langs->trans('Quantity'),$_SERVER['PHP_SELF'],'prod_qty','',$param,'align="right"',$sortfield,$sortorder); +// Filters +print ''; +print ''; +print ''; +print ''; +print ''; +print ''; + +if ($sql_select) +{ + $var=true; + $num = $db->num_rows($resql); + $i = 0; + while (($objp = $db->fetch_object($resql)) && $i < $conf->liste_limit ) + { + $var=!$var; + print ""; + print ''; + print ''; + + print ''; + + //print ''; + + print ''; + + print "\n"; + $i++; + } + if ($num > $conf->liste_limit) { + print_barre_liste('', $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder,'',$num); + } + $db->free($resql); +} +else { + print ''; +} + +print "
'; +print ''; +print ''; // date +print $formother->select_month($month?$month:-1,'month',1); +$formother->select_year($year?$year:-1,'year',1, 20, 1); +print ''; +print ''; +print ''; +print ''; +print ''; +print '
'; + $documentstatic->id=$objp->doc_id; + $documentstatic->ref=$objp->doc_number; + $documentstatic->type=$objp->type; + print $documentstatic->getNomUrl(1); + print ''.dol_print_date($db->jdate($objp->datePrint),'day').''; + + // Define text, description and type + $text=''; $description=''; $type=0; + + // Code to show product duplicated from commonobject->printObjectLine + if ($objp->fk_product > 0) + { + $product_static = new Product($db); + + $product_static->type=$objp->fk_product_type; + $product_static->id=$objp->fk_product; + $product_static->ref=$objp->ref; + $text=$product_static->getNomUrl(1); + } + + // Product + if ($objp->fk_product > 0) + { + // Define output language + if (! empty($conf->global->MAIN_MULTILANGS) && ! empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) + { + $this->fetch_thirdparty(); + $prod = new Product($db); + $prod->fetch($objp->fk_product); + + $outputlangs = $langs; + $newlang=''; + if (empty($newlang) && GETPOST('lang_id')) $newlang=GETPOST('lang_id'); + if (empty($newlang)) $newlang=$this->client->default_lang; + if (! empty($newlang)) + { + $outputlangs = new Translate("",$conf); + $outputlangs->setDefaultLang($newlang); + } + + $label = (! empty($prod->multilangs[$outputlangs->defaultlang]["label"])) ? $prod->multilangs[$outputlangs->defaultlang]["label"] : $objp->product_label; + } + else + { + $label = $objp->product_label; + } + + $text.= ' - '.(! empty($objp->label)?$objp->label:$label); + $description=(! empty($conf->global->PRODUIT_DESC_IN_FORM)?'':dol_htmlentitiesbr($objp->description)); + } + + if (($objp->info_bits & 2) == 2) { ?> + + trans("ShowReduc"),'reduc').' '; + if ($objp->description == '(DEPOSIT)') $txt=$langs->trans("Deposit"); + //else $txt=$langs->trans("Discount"); + print $txt; + ?> + + description) + { + if ($objp->description == '(CREDIT_NOTE)' && $objp->fk_remise_except > 0) + { + $discount=new DiscountAbsolute($db); + $discount->fetch($objp->fk_remise_except); + echo ($txt?' - ':'').$langs->transnoentities("DiscountFromCreditNote",$discount->getNomUrl(0)); + } + elseif ($objp->description == '(DEPOSIT)' && $objp->fk_remise_except > 0) + { + $discount=new DiscountAbsolute($db); + $discount->fetch($objp->fk_remise_except); + echo ($txt?' - ':'').$langs->transnoentities("DiscountFromDeposit",$discount->getNomUrl(0)); + // Add date of deposit + if (! empty($conf->global->INVOICE_ADD_DEPOSIT_DATE)) echo ' ('.dol_print_date($discount->datec).')'; + } + else + { + echo ($txt?' - ':'').dol_htmlentitiesbr($objp->description); + } + } + } + else + { + if ($objp->fk_product > 0) { + + echo $form->textwithtooltip($text,$description,3,'','',$i,0,''); + + // Show range + echo get_date_range($objp->date_start, $objp->date_end); + + // Add description in form + if (! empty($conf->global->PRODUIT_DESC_IN_FORM)) + { + print (! empty($objp->description) && $objp->description!=$objp->product_label)?'
'.dol_htmlentitiesbr($objp->description):''; + } + + } else { + + //if (! empty($objp->fk_parent_line)) echo img_picto('', 'rightarrow'); + if ($type==1) $text = img_object($langs->trans('Service'),'service'); + else $text = img_object($langs->trans('Product'),'product'); + + if (! empty($objp->label)) { + $text.= ' '.$objp->label.''; + echo $form->textwithtooltip($text,dol_htmlentitiesbr($objp->description),3,'','',$i,0,''); + } else { + echo $text.' '.dol_htmlentitiesbr($objp->description); + } + + // Show range + echo get_date_range($objp->date_start,$objp->date_end); + } + } + + /* + $prodreftxt=''; + if ($objp->prod_id > 0) + { + $productstatic->id = $objp->prod_id; + $productstatic->ref = $objp->prod_ref; + $productstatic->status = $objp->prod_type; + $prodreftxt = $productstatic->getNomUrl(0); + if(!empty($objp->product_label)) $prodreftxt .= ' - '.$objp->product_label; + } + // Show range + $prodreftxt .= get_date_range($objp->date_start, $objp->date_end); + // Add description in form + if (! empty($conf->global->PRODUIT_DESC_IN_FORM)) + { + $prodreftxt .= (! empty($objp->description) && $objp->description!=$objp->product_label)?'
'.dol_htmlentitiesbr($objp->description):''; + } + */ + print '
'.$prodreftxt.''.$objp->prod_qty.'
'.$langs->trans("FeatureNotYetAvailable").'
"; +print "
"; + + +/* + * Errors + */ + +dol_htmloutput_errors($warning); +dol_htmloutput_errors($error,$errors); + +llxFooter(); + +$db->close(); +?> diff --git a/htdocs/societe/index.php b/htdocs/societe/index.php index f273549efb9..e113ad7e0e1 100644 --- a/htdocs/societe/index.php +++ b/htdocs/societe/index.php @@ -48,9 +48,11 @@ llxHeader("",$langs->trans("ThirdParties"),$helpurl); print_fiche_titre($transAreaType); -print ''; -print '
'; +//print ''; +//print ''; print '
'; +print '
'; + /* * Search area @@ -148,7 +150,10 @@ print $total; print '
'; -print '
'; + +//print ''; +print '
'; + /* * Last third parties modified @@ -243,10 +248,10 @@ else dol_print_error($db); } -print '
'; +//print ''; +print '
'; llxFooter(); $db->close(); - ?> diff --git a/htdocs/societe/soc.php b/htdocs/societe/soc.php index b45bf5a8e59..80de6ec7146 100644 --- a/htdocs/societe/soc.php +++ b/htdocs/societe/soc.php @@ -985,20 +985,27 @@ else { $colspan='3'; $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:(isset($object->array_options["options_".$key])?$object->array_options["options_".$key]:'')); - if (($e % 2) == 0) + if ($extrafields->attribute_type[$key] == 'separate') { - print ''; - $colspan='0'; - } - print 'attribute_required[$key])) print ' class="fieldrequired"'; - print '>'.$label.''; - print ''; - print $extrafields->showInputField($key,$value); - print ''; - - if (($e % 2) == 1) print ''."\n"; - $e++; + print $extrafields->showSeparator($key); + } + else + { + if (($e % 2) == 0) + { + print ''; + $colspan='0'; + } + print 'attribute_required[$key])) print ' class="fieldrequired"'; + print '>'.$label.''; + print ''; + print $extrafields->showInputField($key,$value); + print ''; + + if (($e % 2) == 1) print ''."\n"; + $e++; + } } } @@ -1414,25 +1421,30 @@ else { $colspan = '3'; $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$object->array_options["options_".$key]); - - if (($e % 2) == 0) + if ($extrafields->attribute_type[$key] == 'separate') { - print ''."\n"; - $colspan = '0'; + print $extrafields->showSeparator($key); } - print 'attribute_required[$key])) print ' class="fieldrequired"'; - print '>'.$label.''."\n"; - print ''; - print $extrafields->showInputField($key,$value); - print ""."\n"; - - if (($e % 2) == 1 ) + else { - print "\n"; + if (($e % 2) == 0) + { + print ''."\n"; + $colspan = '0'; + } + print 'attribute_required[$key])) print ' class="fieldrequired"'; + print '>'.$label.''."\n"; + print ''; + print $extrafields->showInputField($key,$value); + print ""."\n"; + + if (($e % 2) == 1 ) + { + print "\n"; + } + $e++; } - $old_pos = $extrafields->attribute_pos[$key]; - $e++; } } // Logo @@ -1753,18 +1765,25 @@ else { $colspan='3'; $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:(isset($object->array_options['options_'.$key])?$object->array_options['options_'.$key]:'')); - if (($e % 2) == 0) + if ($extrafields->attribute_type[$key] == 'separate') { - print ''; - $colspan='0'; + print $extrafields->showSeparator($key); + } + else + { + if (($e % 2) == 0) + { + print ''; + $colspan='0'; + } + print ''.$label.''; + print ''; + print $extrafields->showOutputField($key,$value); + print ""; + + if (($e % 2) == 1) print ''; + $e++; } - print ''.$label.''; - print ''; - print $extrafields->showOutputField($key,$value); - print ""; - - if (($e % 2) == 1) print ''; - $e++; } } diff --git a/htdocs/societe/societe.php b/htdocs/societe/societe.php index 5792661dd5e..26583442b2c 100644 --- a/htdocs/societe/societe.php +++ b/htdocs/societe/societe.php @@ -3,6 +3,7 @@ * Copyright (C) 2004-2011 Laurent Destailleur * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2012 Marcos García + * Copyright (C) 2013 Raphaël Doursenaud * * 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 @@ -80,26 +81,32 @@ if ($mode == 'search') // We'll need this table joined to the select in order to filter by categ if ($search_categ) $sql.= ", ".MAIN_DB_PREFIX."categorie_societe as cs"; $sql.= " WHERE s.entity IN (".getEntity('societe', 1).")"; - $sql.= " AND ("; - $sql.= " s.nom LIKE '%".$db->escape($socname)."%'"; - $sql.= " OR s.code_client LIKE '%".$db->escape($socname)."%'"; - $sql.= " OR s.email LIKE '%".$db->escape($socname)."%'"; - $sql.= " OR s.url LIKE '%".$db->escape($socname)."%'"; - $sql.= " OR s.siren LIKE '%".$db->escape($socname)."%'"; - if (!empty($conf->barcode->enabled)) - { - $sql.= "OR s.barcode LIKE '".$db->escape($socname)."'"; - } + // For natural search + $scrit = explode(' ', $socname); + foreach ($scrit as $crit) { + $sql.= " AND ("; + $sql.= " s.nom LIKE '%".$db->escape($crit)."%'"; + $sql.= " OR s.code_client LIKE '%".$db->escape($crit)."%'"; + $sql.= " OR s.email LIKE '%".$db->escape($crit)."%'"; + $sql.= " OR s.url LIKE '%".$db->escape($crit)."%'"; + $sql.= " OR s.siren LIKE '%".$db->escape($crit)."%'"; + + if (!empty($conf->barcode->enabled)) + { + $sql.= "OR s.barcode LIKE '".$db->escape($crit)."'"; + } + + $sql.= ")"; + } - $sql.= ")"; if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; if ($socid) $sql.= " AND s.rowid = ".$socid; if ($search_sale) $sql.= " AND s.rowid = sc.fk_soc"; // Join for the needed table to filter by sale if ($search_categ) $sql.= " AND s.rowid = cs.fk_societe"; // Join for the needed table to filter by categ if (! $user->rights->societe->lire || ! $user->rights->fournisseur->lire) { - if (! $user->rights->fournisseur->lire) $sql.=" AND s.fourn != 1"; + if (! $user->rights->fournisseur->lire) $sql.=" AND s.fournisseur != 1"; } // Insert sale filter if ($search_sale) diff --git a/htdocs/theme/amarok/img/cron.png b/htdocs/theme/amarok/img/cron.png new file mode 100644 index 00000000000..ddfe62e7b24 Binary files /dev/null and b/htdocs/theme/amarok/img/cron.png differ diff --git a/htdocs/theme/amarok/img/object_cron.png b/htdocs/theme/amarok/img/object_cron.png new file mode 100644 index 00000000000..b929050598d Binary files /dev/null and b/htdocs/theme/amarok/img/object_cron.png differ diff --git a/htdocs/theme/amarok/img/object_invoice.png b/htdocs/theme/amarok/img/object_invoice.png new file mode 100755 index 00000000000..a9095ae91da Binary files /dev/null and b/htdocs/theme/amarok/img/object_invoice.png differ diff --git a/htdocs/theme/amarok/style.css.php b/htdocs/theme/amarok/style.css.php index 44c08732d13..48fa2c8f5a3 100755 --- a/htdocs/theme/amarok/style.css.php +++ b/htdocs/theme/amarok/style.css.php @@ -120,6 +120,9 @@ a:hover, a:active { color:rgba(0,0,0,.6); } +input, input.flat, textarea, textarea.flat, form.flat select, select.flat { + padding: 1px; +} input, textarea { font-size:px; font-family:; @@ -388,7 +391,7 @@ div.tmenu ul li a.tmenusel {/* texte du menu principal sélectionné */ font-weight:bold; } -.tmenudisabled {color:#d0d0d0 !important;} +.tmenudisabled { color:#808080 !important; cursor: not-allowed; } /* --- end nav --- */ @@ -494,6 +497,8 @@ div.vmenu { text-align:center; } +a.help:link, a.help:visited, a.help:hover, a.help:active { font-size:px; font-family: ; text-align: ; font-weight: normal; color: #666666; } + /* ============================================================================== */ /* Panes for Main */ @@ -810,7 +815,7 @@ td.vmenu { } div.fiche { - padding:8px 12px 10px; + padding:8px 6px 10px; margin-: browser->phone) || empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT))?'16':'24'; ?>px; margin-: browser->phone)?'12':'6'; ?>px; } @@ -1137,49 +1142,48 @@ tr.fiche { .ok { color:#159e26; - background:url() left center no-repeat; - padding-left:20px; + background:url() left center no-repeat !important; + padding-left:20px !important; font-weight:bold; } .warning { color:#bca936; - background:url() left center no-repeat; - padding-left:20px; + background:url() left center no-repeat !important; + padding-left:20px !important; font-weight:bold; } .error { color:#a61111; - background:url() left center no-repeat; - padding-left:20px; + background:#f58080 url() left center no-repeat !important; + padding-left:20px !important; font-weight:bold; } td.highlights {background:#f9c5c6;} div.ok { - background:#61e372 url() 3px center no-repeat; - color:#ffffff; - padding:2px 4px 2px 24px; + background:#61e372; /* url() 3px center no-repeat; */ + /*color:#ffffff;*/ + padding:2px 4px 2px 6px; margin:0.5em 0em; - border:1px solid #159e26; font-weight:normal; } div.warning, div.info { - background:#fcf5b8 url() 3px center no-repeat; - color:#232323; - padding:2px 4px 2px 24px; + background:#fcf5b8; /* url() 3px center no-repeat; */ + /*color:#232323; */ + padding:2px 4px 2px 6px; margin:0.5em 0em; border:1px solid #bca936; font-weight:normal; } div.error { - background:#f58080 url() 3px center no-repeat; - color:#ffffff; - padding:2px 4px 2px 24px; + background:#f58080; /* url() 3px center no-repeat; */ + /* color:#ffffff; */ + padding:2px 4px 2px 6px; margin:0.5em 0em; border:1px solid #a61111; font-weight:normal; diff --git a/htdocs/theme/auguria/img/cron.png b/htdocs/theme/auguria/img/cron.png new file mode 100644 index 00000000000..ddfe62e7b24 Binary files /dev/null and b/htdocs/theme/auguria/img/cron.png differ diff --git a/htdocs/theme/auguria/img/object_commissions.png b/htdocs/theme/auguria/img/object_commissions.png deleted file mode 100644 index 39f09967046..00000000000 Binary files a/htdocs/theme/auguria/img/object_commissions.png and /dev/null differ diff --git a/htdocs/theme/auguria/img/object_cron.png b/htdocs/theme/auguria/img/object_cron.png new file mode 100644 index 00000000000..b929050598d Binary files /dev/null and b/htdocs/theme/auguria/img/object_cron.png differ diff --git a/htdocs/theme/bureau2crea/img/cron.png b/htdocs/theme/bureau2crea/img/cron.png new file mode 100644 index 00000000000..ddfe62e7b24 Binary files /dev/null and b/htdocs/theme/bureau2crea/img/cron.png differ diff --git a/htdocs/theme/bureau2crea/img/object_commissions.png b/htdocs/theme/bureau2crea/img/object_commissions.png deleted file mode 100644 index 39f09967046..00000000000 Binary files a/htdocs/theme/bureau2crea/img/object_commissions.png and /dev/null differ diff --git a/htdocs/theme/bureau2crea/img/object_cron.png b/htdocs/theme/bureau2crea/img/object_cron.png new file mode 100644 index 00000000000..b929050598d Binary files /dev/null and b/htdocs/theme/bureau2crea/img/object_cron.png differ diff --git a/htdocs/theme/cameleo/img/cron.png b/htdocs/theme/cameleo/img/cron.png new file mode 100644 index 00000000000..ddfe62e7b24 Binary files /dev/null and b/htdocs/theme/cameleo/img/cron.png differ diff --git a/htdocs/theme/cameleo/img/object_commissions.png b/htdocs/theme/cameleo/img/object_commissions.png deleted file mode 100644 index 39f09967046..00000000000 Binary files a/htdocs/theme/cameleo/img/object_commissions.png and /dev/null differ diff --git a/htdocs/theme/cameleo/img/object_cron.png b/htdocs/theme/cameleo/img/object_cron.png new file mode 100644 index 00000000000..b929050598d Binary files /dev/null and b/htdocs/theme/cameleo/img/object_cron.png differ diff --git a/htdocs/theme/eldy/ckeditor/config.js b/htdocs/theme/eldy/ckeditor/config.js index 341060ee58e..c1e456e4d32 100644 --- a/htdocs/theme/eldy/ckeditor/config.js +++ b/htdocs/theme/eldy/ckeditor/config.js @@ -82,4 +82,11 @@ CKEDITOR.editorConfig = function( config ) ['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'], ['Link','Unlink','SpecialChar'] ]; + + // Used for mailing fields + config.toolbar_dolibarr_readonly = + [ + ['Source','Maximize'], + ['Find'] + ]; }; diff --git a/htdocs/theme/eldy/img/menus/cron.png b/htdocs/theme/eldy/img/menus/cron.png new file mode 100644 index 00000000000..ddfe62e7b24 Binary files /dev/null and b/htdocs/theme/eldy/img/menus/cron.png differ diff --git a/htdocs/theme/eldy/img/object_commissions.png b/htdocs/theme/eldy/img/object_commissions.png deleted file mode 100644 index 39f09967046..00000000000 Binary files a/htdocs/theme/eldy/img/object_commissions.png and /dev/null differ diff --git a/htdocs/theme/eldy/img/object_cron.png b/htdocs/theme/eldy/img/object_cron.png new file mode 100644 index 00000000000..b929050598d Binary files /dev/null and b/htdocs/theme/eldy/img/object_cron.png differ diff --git a/htdocs/user/class/user.class.php b/htdocs/user/class/user.class.php index feb1b6164e0..bd7095f4d03 100644 --- a/htdocs/user/class/user.class.php +++ b/htdocs/user/class/user.class.php @@ -912,6 +912,11 @@ class User extends CommonObject $this->office_phone = $contact->phone_pro; $this->office_fax = $contact->fax; $this->user_mobile = $contact->phone_mobile; + $this->address = $contact->address; + $this->zip = $contact->zip; + $this->town = $contact->town; + $this->state_id = $contact->state_id; + $this->country_id = $contact->country_id; if (empty($login)) $login=strtolower(substr($contact->firstname, 0, 4)) . strtolower(substr($contact->lastname, 0, 4)); $this->login = $login; @@ -974,11 +979,16 @@ class User extends CommonObject // Positionne parametres $this->admin = 0; - $this->lastname = $member->lastname; - $this->firstname = $member->firstname; - $this->email = $member->email; - $this->fk_member = $member->id; - $this->pass = $member->pass; + $this->lastname = $member->lastname; + $this->firstname = $member->firstname; + $this->email = $member->email; + $this->fk_member = $member->id; + $this->pass = $member->pass; + $this->address = $member->address; + $this->zip = $member->zip; + $this->town = $member->town; + $this->state_id = $member->state_id; + $this->country_id = $member->country_id; if (empty($login)) $login=strtolower(substr($member->firstname, 0, 4)) . strtolower(substr($member->lastname, 0, 4)); $this->login = $login; @@ -1120,6 +1130,11 @@ class User extends CommonObject $sql.= ", firstname = '".$this->db->escape($this->firstname)."'"; $sql.= ", login = '".$this->db->escape($this->login)."'"; $sql.= ", admin = ".$this->admin; + $sql.= ", address = '".$this->db->escape($this->address)."'"; + $sql.= ", zip = '".$this->db->escape($this->zip)."'"; + $sql.= ", town = '".$this->db->escape($this->town)."'"; + $sql.= ", fk_state = ".($this->state_id > 0?"'".$this->db->escape($this->state_id)."'":"null"); + $sql.= ", fk_country = ".($this->country_id > 0?"'".$this->db->escape($this->country_id)."'":"null"); $sql.= ", office_phone = '".$this->db->escape($this->office_phone)."'"; $sql.= ", office_fax = '".$this->db->escape($this->office_fax)."'"; $sql.= ", user_mobile = '".$this->db->escape($this->user_mobile)."'"; diff --git a/htdocs/user/fiche.php b/htdocs/user/fiche.php index 5c4ddac9718..1ef52efc85b 100644 --- a/htdocs/user/fiche.php +++ b/htdocs/user/fiche.php @@ -60,7 +60,7 @@ if (! empty($conf->global->MAIN_USE_ADVANCED_PERMS)) // Define value to know what current user can do on properties of edited user if ($id) { - // $user est le user qui edite, $_GET["id"] est l'id de l'utilisateur edite + // $user est le user qui edite, $id est l'id de l'utilisateur edite $caneditfield=((($user->id == $id) && $user->rights->user->self->creer) || (($user->id != $id) && $user->rights->user->user->creer)); $caneditpassword=((($user->id == $id) && $user->rights->user->self->password) @@ -174,18 +174,18 @@ if ($action == 'add' && $canadduser) if (! $message) { - $object->lastname = $_POST["lastname"]; - $object->firstname = $_POST["firstname"]; - $object->login = $_POST["login"]; - $object->admin = $_POST["admin"]; - $object->office_phone = $_POST["office_phone"]; - $object->office_fax = $_POST["office_fax"]; - $object->user_mobile = $_POST["user_mobile"]; - $object->email = $_POST["email"]; - $object->job = $_POST["job"]; - $object->signature = $_POST["signature"]; - $object->note = $_POST["note"]; - $object->ldap_sid = $_POST["ldap_sid"]; + $object->lastname = GETPOST("lastname"); + $object->firstname = GETPOST("firstname"); + $object->login = GETPOST("login"); + $object->admin = GETPOST("admin"); + $object->office_phone = GETPOST("office_phone"); + $object->office_fax = GETPOST("office_fax"); + $object->user_mobile = GETPOST("user_mobile"); + $object->email = GETPOST("email"); + $object->job = GETPOST("job"); + $object->signature = GETPOST("signature"); + $object->note = GETPOST("note"); + $object->ldap_sid = GETPOST("ldap_sid"); // Get extra fields foreach($_POST as $key => $value) @@ -683,7 +683,7 @@ if (($action == 'create') || ($action == 'adduserldap')) } print dol_set_focus('#lastname'); - + print '
'; print ''; print ''; @@ -886,7 +886,9 @@ if (($action == 'create') || ($action == 'adduserldap')) // Signature print ''.$langs->trans("Signature").''; print ''; - print ''; + require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; + $doleditor=new DolEditor('signature',GETPOST('signature'),'',280,'dolibarr_mailings','In',true,true,empty($conf->global->FCKEDITOR_ENABLE_USERSIGN)?0:1,8,72); + print $doleditor->Create(1); print ''; // Multicompany @@ -1195,7 +1197,7 @@ else // Signature print ''.$langs->trans('Signature').''; - print dol_textishtml($object->signature)?$object->signature:dol_nl2br($object->signature,1,false); + print dol_htmlentitiesbr($object->signature); print "\n"; // Hierarchy @@ -1532,8 +1534,7 @@ else /* * Fiche en mode edition */ - - if ($action == 'edit' && ($canedituser || ($user->id == $object->id))) + if ($action == 'edit' && ($canedituser || $caneditfield || $caneditpassword || ($user->id == $object->id))) { $rowspan=14; @@ -1599,7 +1600,15 @@ else // Position/Job print ''.$langs->trans("PostOrFunction").''; print ''; - print ''; + if ($caneditfield) + { + print ''; + } + else + { + print ''; + print $object->job; + } print ''; // Login @@ -1794,7 +1803,16 @@ else // Signature print "".''.$langs->trans("Signature").''; print ''; - print ''; + if ($caneditfield) + { + require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; + $doleditor=new DolEditor('signature',$object->signature,'',280,'dolibarr_mailings','In',true,true,empty($conf->global->FCKEDITOR_ENABLE_USERSIGN)?0:1,8,72); + print $doleditor->Create(1); + } + else + { + print dol_htmlentitiesbr($object->signature); + } print ''; // openid @@ -1817,7 +1835,17 @@ else // Hierarchy print ''.$langs->trans("HierarchicalResponsible").''; print ''; - print $form->select_dolusers($object->fk_user,'fk_user',1,array($object->id),0,'',0,$object->entity); + if ($caneditfield) + { + print $form->select_dolusers($object->fk_user,'fk_user',1,array($object->id),0,'',0,$object->entity); + } + else + { + print ''; + $huser=new User($db); + $huser->fetch($object->fk_user); + print $huser->getNomUrl(1); + } print ''; print "\n"; @@ -1827,21 +1855,6 @@ else print $object->getLibStatut(4); print ''; - // Multicompany - if (! empty($conf->multicompany->enabled)) - { - if (empty($conf->multicompany->transverse_mode) && $conf->entity == 1 && $user->admin && ! $user->entity) - { - print "".''.$langs->trans("Entity").''; - print "".$mc->select_entities($object->entity); - print "\n"; - } - else - { - print ''; - } - } - // Company / Contact if (! empty($conf->societe->enabled)) { @@ -1888,6 +1901,21 @@ else print "\n"; } + // Multicompany + if (! empty($conf->multicompany->enabled)) + { + if (empty($conf->multicompany->transverse_mode) && $conf->entity == 1 && $user->admin && ! $user->entity) + { + print "".''.$langs->trans("Entity").''; + print "".$mc->select_entities($object->entity); + print "\n"; + } + else + { + print ''; + } + } + // Other attributes $parameters=array('colspan' => ' colspan="2"'); $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook diff --git a/htdocs/user/home.php b/htdocs/user/home.php index ac18fe56c20..66c74e5d290 100644 --- a/htdocs/user/home.php +++ b/htdocs/user/home.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2005-2013 Laurent Destailleur * Copyright (C) 2005-2012 Regis Houssin * * This program is free software; you can redistribute it and/or modify @@ -56,9 +56,10 @@ llxHeader(); print_fiche_titre($langs->trans("MenuUsersAndGroups")); -print ''; +//print '
'; +//print '"; - print ''; -print '
'; +print '
'; -print '
'; // Search User $var=false; @@ -87,7 +88,9 @@ if ($canreadperms) print ''; } -print ''; + +//print ''; +print '
'; /* @@ -96,7 +99,7 @@ print '
'; $max=10; $sql = "SELECT u.rowid, u.lastname, u.firstname, u.admin, u.login, u.fk_societe, u.datec, u.statut, u.entity, u.ldap_sid,"; -$sql.= " s.nom, s.canvas"; +$sql.= " s.nom as name, s.canvas"; $sql.= " FROM ".MAIN_DB_PREFIX."user as u"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON u.fk_societe = s.rowid"; if (! empty($conf->multicompany->enabled) && $conf->entity == 1 && ($conf->multicompany->transverse_mode || ($user->admin && ! $user->entity))) @@ -126,7 +129,7 @@ if ($resql) $var=!$var; print "
'.img_object($langs->trans("ShowUser"),"user").' '.$obj->firstname.' '.$obj->name.''; + print ''.img_object($langs->trans("ShowUser"),"user").' '.dolGetFirstLastname($obj->firstname,$obj->lastname).''; if (! empty($conf->multicompany->enabled) && $obj->admin && ! $obj->entity) { print img_picto($langs->trans("SuperAdministrator"),'redstar'); @@ -141,7 +144,7 @@ if ($resql) if ($obj->fk_societe) { $companystatic->id=$obj->fk_societe; - $companystatic->nom=$obj->nom; + $companystatic->name=$obj->name; $companystatic->canvas=$obj->canvas; print $companystatic->getNomUrl(1); } @@ -250,11 +253,10 @@ if ($canreadperms) } } -print '
'; - -$db->close(); - +//print ''; +print '
'; llxFooter(); + +$db->close(); ?> diff --git a/htdocs/webservices/server_invoice.php b/htdocs/webservices/server_invoice.php index 656411c7f8e..ef7384a11c7 100755 --- a/htdocs/webservices/server_invoice.php +++ b/htdocs/webservices/server_invoice.php @@ -67,7 +67,7 @@ $server->wsdl->addComplexType( 'sourceapplication' => array('name'=>'sourceapplication','type'=>'xsd:string'), 'login' => array('name'=>'login','type'=>'xsd:string'), 'password' => array('name'=>'password','type'=>'xsd:string'), - 'entity' => array('name'=>'entity','type'=>'xsd:string'), + 'entity' => array('name'=>'entity','type'=>'xsd:string') ) ); // Define WSDL Return object @@ -110,7 +110,7 @@ $server->wsdl->addComplexType( ) ); -$server->wsdl->addComplexType( +/*$server->wsdl->addComplexType( 'LinesArray', 'complexType', 'array', @@ -121,7 +121,7 @@ $server->wsdl->addComplexType( array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:line[]') ), 'tns:line' -); +);*/ $server->wsdl->addComplexType( 'LinesArray2', 'complexType', @@ -170,7 +170,7 @@ $server->wsdl->addComplexType( 'lines' => array('name'=>'lines','type'=>'tns:LinesArray2') ) ); - +/* $server->wsdl->addComplexType( 'InvoicesArray', 'complexType', @@ -182,7 +182,7 @@ $server->wsdl->addComplexType( array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:invoice[]') ), 'tns:invoice' -); +);*/ $server->wsdl->addComplexType( 'InvoicesArray2', 'complexType', @@ -377,7 +377,10 @@ function getInvoicesForThirdParty($authentication,$idthirdparty) $errorcode='';$errorlabel=''; $error=0; $fuser=check_authentication($authentication,$error,$errorcode,$errorlabel); - // Check parameters + + if ($fuser->societe_id) $socid=$fuser->societe_id; + + // Check parameters if (! $error && empty($idthirdparty)) { $error++; @@ -394,9 +397,9 @@ function getInvoicesForThirdParty($authentication,$idthirdparty) //$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON pt.fk_product = p.rowid'; //$sql.=" WHERE f.fk_soc = s.rowid AND nom = '".$db->escape($idthirdparty)."'"; //$sql.=" WHERE f.fk_soc = s.rowid AND nom = '".$db->escape($idthirdparty)."'"; - $sql.=" WHERE f.fk_soc = ".$db->escape($idthirdparty); - $sql.=" AND f.entity = ".$conf->entity; - + $sql.=" WHERE f.entity = ".$conf->entity; + if ($idthirdparty != 'all' ) $sql.=" AND f.fk_soc = ".$db->escape($idthirdparty); + $resql=$db->query($sql); if ($resql) { @@ -410,6 +413,13 @@ function getInvoicesForThirdParty($authentication,$idthirdparty) $invoice=new Facture($db); $invoice->fetch($obj->facid); + // Sécurité pour utilisateur externe + if( $socid && ( $socid != $order->socid) ) + { + $error++; + $errorcode='PERMISSION_DENIED'; $errorlabel=$order->socid.' User does not have permission for this request'; + } + // Define lines of invoice $linesresp=array(); foreach($invoice->lines as $line) diff --git a/htdocs/webservices/server_order.php b/htdocs/webservices/server_order.php index 33993771102..6ba0fa2cd5e 100644 --- a/htdocs/webservices/server_order.php +++ b/htdocs/webservices/server_order.php @@ -35,6 +35,8 @@ require_once(DOL_DOCUMENT_ROOT."/commande/class/commande.class.php"); dol_syslog("Call Dolibarr webservices interfaces"); +$langs->load("main"); + // Enable and test if module web services is enabled if (empty($conf->global->MAIN_MODULE_WEBSERVICES)) { @@ -54,7 +56,7 @@ $server->configureWSDL('WebServicesDolibarrOrder',$ns); $server->wsdl->schemaTargetNamespace=$ns; -// Define WSDL content +// Define WSDL Authentication object $server->wsdl->addComplexType( 'authentication', 'complexType', @@ -69,7 +71,20 @@ $server->wsdl->addComplexType( 'entity' => array('name'=>'entity','type'=>'xsd:string') ) ); +// Define WSDL Return object +$server->wsdl->addComplexType( + 'result', + 'complexType', + 'struct', + 'all', + '', + array( + 'result_code' => array('name'=>'result_code','type'=>'xsd:string'), + 'result_label' => array('name'=>'result_label','type'=>'xsd:string'), + ) +); +// Define other specific objects $server->wsdl->addComplexType( 'line', 'complexType', @@ -78,34 +93,34 @@ $server->wsdl->addComplexType( '', array( 'id' => array('name'=>'id','type'=>'xsd:string'), + 'type' => array('name'=>'type','type'=>'xsd:int'), 'fk_commande' => array('name'=>'fk_commande','type'=>'xsd:int'), 'fk_parent_line' => array('name'=>'fk_parent_line','type'=>'xsd:int'), 'desc' => array('name'=>'desc','type'=>'xsd:string'), - 'qty' => array('name'=>'qty','type'=>'xsd:int'), + 'qty' => array('name'=>'qty','type'=>'xsd:double'), 'price' => array('name'=>'price','type'=>'xsd:double'), - 'subprice' => array('name'=>'subprice','type'=>'xsd:double'), - 'tva_tx' => array('name'=>'tva_tx','type'=>'xsd:double'), + 'unitprice' => array('name'=>'unitprice','type'=>'xsd:double'), + 'vat_rate' => array('name'=>'vat_rate','type'=>'xsd:double'), 'remise' => array('name'=>'remise','type'=>'xsd:double'), 'remise_percent' => array('name'=>'remise_percent','type'=>'xsd:double'), - 'fk_product' => array('name'=>'fk_product','type'=>'xsd:int'), - 'product_type' => array('name'=>'product_type','type'=>'xsd:int'), - 'total_ht' => array('name'=>'total_ht','type'=>'xsd:double'), - 'total_tva' => array('name'=>'totaltva','type'=>'xsd:double'), - 'total_ttc' => array('name'=>'total_ttc','type'=>'xsd:double'), + 'total_net' => array('name'=>'total_net','type'=>'xsd:double'), + 'total_vat' => array('name'=>'total_vat','type'=>'xsd:double'), + 'total' => array('name'=>'total','type'=>'xsd:double'), - 'date_start' => array('name'=>'date_start','type'=>'xsd:string'), - 'date_end' => array('name'=>'date_end','type'=>'xsd:string'), + 'date_start' => array('name'=>'date_start','type'=>'xsd:date'), + 'date_end' => array('name'=>'date_end','type'=>'xsd:date'), // From product + 'product_id' => array('name'=>'product_id','type'=>'xsd:int'), 'product_ref' => array('name'=>'product_ref','type'=>'xsd:string'), 'product_label' => array('name'=>'product_label','type'=>'xsd:string'), 'product_desc' => array('name'=>'product_desc','type'=>'xsd:string') ) ); -$server->wsdl->addComplexType( +/*$server->wsdl->addComplexType( 'LinesArray', 'complexType', 'array', @@ -119,8 +134,7 @@ $server->wsdl->addComplexType( ) ), 'tns:line' -); - +);*/ $server->wsdl->addComplexType( 'LinesArray2', 'complexType', @@ -149,23 +163,25 @@ $server->wsdl->addComplexType( 'ref_client' => array('name'=>'ref_client','type'=>'xsd:string'), 'ref_ext' => array('name'=>'ref_ext','type'=>'xsd:string'), 'ref_int' => array('name'=>'ref_int','type'=>'xsd:string'), - 'socid' => array('name'=>'socid','type'=>'xsd:int'), - 'statut' => array('name'=>'statut','type'=>'xsd:int'), + 'thirdparty_id' => array('name'=>'thirdparty_id','type'=>'xsd:int'), + 'status' => array('name'=>'status','type'=>'xsd:int'), 'facturee' => array('name'=>'facturee','type'=>'xsd:string'), - 'total_ht' => array('name'=>'total_ht','type'=>'xsd:double'), - 'total_tva' => array('name'=>'total_tva','type'=>'xsd:double'), + 'total_net' => array('name'=>'total_net','type'=>'xsd:double'), + 'total_vat' => array('name'=>'total_vat','type'=>'xsd:double'), 'total_localtax1' => array('name'=>'total_localtax1','type'=>'xsd:double'), 'total_localtax2' => array('name'=>'total_localtax2','type'=>'xsd:double'), - 'total_ttc' => array('name'=>'total_ttc','type'=>'xsd:double'), + 'total' => array('name'=>'total','type'=>'xsd:double'), 'date' => array('name'=>'date','type'=>'xsd:date'), - 'date_commande' => array('name'=>'date_commande','type'=>'xsd:date'), + 'date_creation' => array('name'=>'date_creation','type'=>'xsd:dateTime'), + 'date_validation' => array('name'=>'date_validation','type'=>'xsd:dateTime'), + 'date_modification' => array('name'=>'date_modification','type'=>'xsd:dateTime'), 'remise' => array('name'=>'remise','type'=>'xsd:string'), 'remise_percent' => array('name'=>'remise_percent','type'=>'xsd:string'), 'remise_absolue' => array('name'=>'remise_absolue','type'=>'xsd:string'), 'source' => array('name'=>'source','type'=>'xsd:string'), 'note' => array('name'=>'note','type'=>'xsd:string'), 'note_public' => array('name'=>'note_public','type'=>'xsd:string'), - 'fk_project' => array('name'=>'fk_project','type'=>'xsd:string'), + 'project_id' => array('name'=>'project_id','type'=>'xsd:string'), 'mode_reglement_id' => array('name'=>'mode_reglement_id','type'=>'xsd:string'), 'mode_reglement_code' => array('name'=>'mode_reglement_code','type'=>'xsd:string'), @@ -179,10 +195,10 @@ $server->wsdl->addComplexType( 'fk_delivery_address' => array('name'=>'fk_delivery_address','type'=>'xsd:int'), 'demand_reason_id' => array('name'=>'demand_reason_id','type'=>'xsd:string'), - 'lines' => array('name'=>'lines','type'=>'tns:LinesArray') + 'lines' => array('name'=>'lines','type'=>'tns:LinesArray2') ) ); - +/* $server->wsdl->addComplexType( 'OrdersArray', 'complexType', @@ -197,8 +213,7 @@ $server->wsdl->addComplexType( ) ), 'tns:order' -); - +);*/ $server->wsdl->addComplexType( 'OrdersArray2', 'complexType', @@ -207,32 +222,14 @@ $server->wsdl->addComplexType( '', array( 'order' => array( - 'name' => 'invoice', - 'type' => 'tns:invoice', + 'name' => 'order', + 'type' => 'tns:order', 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ) ); -$server->wsdl->addComplexType( - 'result', - 'complexType', - 'struct', - 'all', - '', - array( - 'result_code' => array( - 'name'=>'result_code', - 'type'=>'xsd:string' - ), - 'result_label' => array( - 'name'=>'result_label', - 'type'=>'xsd:string' - ), - ) -); - // 5 styles: RPC/encoded, RPC/literal, Document/encoded (not WS-I compliant), Document/literal, Document/literal wrapped @@ -268,7 +265,7 @@ $server->register( $server->register( 'createOrder', array('authentication'=>'tns:authentication','order'=>'tns:order'), // Entry values - array('result'=>'tns:result','id'=>'xsd:string'), // Exit values + array('result'=>'tns:result','id'=>'xsd:string','ref'=>'xsd:string'), // Exit values $ns, $ns.'#createOrder', $styledoc, @@ -355,14 +352,14 @@ function getOrder($authentication,$id='',$ref='',$ref_ext='') 'qty'=>$line->qty, 'price'=>$line->price, 'subprice'=>$line->subprice, - 'tva_tx'=>$line->tva_tx, + 'vat_rate'=>$line->tva_tx, 'remise'=>$line->remise, 'remise_percent'=>$line->remise_percent, 'fk_product'=>$line->fk_product, 'product_type'=>$line->product_type, - 'total_ht'=>$line->total_ht, - 'total_tva'=>$line->total_tva, - 'total_ttc'=>$line->total_ttc, + 'total_net'=>$line->total_ht, + 'total_vat'=>$line->total_tva, + 'total'=>$line->total_ttc, 'date_start'=>$line->date_start, 'date_end'=>$line->date_end, 'product_ref'=>$line->product_ref, @@ -381,19 +378,21 @@ function getOrder($authentication,$id='',$ref='',$ref_ext='') 'ref_client' => $order->ref_client, 'ref_ext' => $order->ref_ext, 'ref_int' => $order->ref_int, - 'socid' => $order->socid, - 'statut' => $order->statut, + 'thirdparty_id' => $order->socid, + 'status' => $order->statut, - 'total_ht' => $order->total_ht, - 'total_tva' => $order->total_tva, + 'total_net' => $order->total_ht, + 'total_vat' => $order->total_tva, 'total_localtax1' => $order->total_localtax1, 'total_localtax2' => $order->total_localtax2, - 'total_ttc' => $order->total_ttc, - 'fk_project' => $order->fk_project, - - 'date' => $order->date?dol_print_date($order->date,'dayrfc'):'', - 'date_commande' => $order->date_commande?dol_print_date($order->date_commande,'dayrfc'):'', + 'total' => $order->total_ttc, + 'project_id' => $order->fk_project, + 'date' => $order->date_commande?dol_print_date($order->date_commande,'dayrfc'):'', + 'date_creation' => $invoice->date_creation?dol_print_date($invoice->date_creation,'dayhourrfc'):'', + 'date_validation' => $invoice->date_validation?dol_print_date($invoice->date_creation,'dayhourrfc'):'', + 'date_modification' => $invoice->datem?dol_print_date($invoice->datem,'dayhourrfc'):'', + 'remise' => $order->remise, 'remise_percent' => $order->remise_percent, 'remise_absolue' => $order->remise_absolue, @@ -403,13 +402,12 @@ function getOrder($authentication,$id='',$ref='',$ref_ext='') 'note' => $order->note, 'note_public' => $order->note_public, 'cond_reglement_id' => $order->cond_reglement_id, - 'cond_reglement' => $order->cond_reglement, - 'cond_reglement_doc' => $order->cond_reglement_doc, 'cond_reglement_code' => $order->cond_reglement_code, + 'cond_reglement' => $order->cond_reglement, 'mode_reglement_id' => $order->mode_reglement_id, - 'mode_reglement' => $order->mode_reglement, 'mode_reglement_code' => $order->mode_reglement_code, - + 'mode_reglement' => $order->mode_reglement, + 'date_livraison' => $order->date_livraison, 'fk_delivery_address' => $order->fk_delivery_address, @@ -466,7 +464,7 @@ function getOrdersForThirdParty($authentication,$idthirdparty) if ($fuser->societe_id) $socid=$fuser->societe_id; // Check parameters - if (! $error && !$idthirdparty) + if (! $error && empty($idthirdparty)) { $error++; $errorcode='BAD_PARAMETERS'; $errorlabel='Parameter id is not provided'; @@ -499,7 +497,7 @@ function getOrdersForThirdParty($authentication,$idthirdparty) if( $socid && ( $socid != $order->socid) ) { $error++; - $errorcode='PERMISSION_DENIED'; $errorlabel=$order->socid.'User does not have permission for this request'; + $errorcode='PERMISSION_DENIED'; $errorlabel=$order->socid.' User does not have permission for this request'; } if(!$error) @@ -511,6 +509,7 @@ function getOrdersForThirdParty($authentication,$idthirdparty) { $linesresp[]=array( 'id'=>$line->rowid, + 'type'=>$line->product_type, 'fk_commande'=>$line->fk_commande, 'fk_parent_line'=>$line->fk_parent_line, 'desc'=>$line->desc, @@ -520,13 +519,12 @@ function getOrdersForThirdParty($authentication,$idthirdparty) 'tva_tx'=>$line->tva_tx, 'remise'=>$line->remise, 'remise_percent'=>$line->remise_percent, - 'fk_product'=>$line->fk_product, - 'product_type'=>$line->product_type, - 'total_ht'=>$line->total_ht, - 'total_tva'=>$line->total_tva, - 'total_ttc'=>$line->total_ttc, + 'total_net'=>$line->total_ht, + 'total_vat'=>$line->total_tva, + 'total'=>$line->total_ttc, 'date_start'=>$line->date_start, 'date_end'=>$line->date_end, + 'product_id'=>$line->fk_product, 'product_ref'=>$line->product_ref, 'product_label'=>$line->product_label, 'product_desc'=>$line->product_desc @@ -541,17 +539,16 @@ function getOrdersForThirdParty($authentication,$idthirdparty) 'ref_ext' => $order->ref_ext, 'ref_int' => $order->ref_int, 'socid' => $order->socid, - 'statut' => $order->statut, + 'status' => $order->statut, - 'total_ht' => $order->total_ht, - 'total_tva' => $order->total_tva, + 'total_net' => $order->total_ht, + 'total_vat' => $order->total_tva, 'total_localtax1' => $order->total_localtax1, 'total_localtax2' => $order->total_localtax2, - 'total_ttc' => $order->total_ttc, - 'fk_project' => $order->fk_project, + 'total' => $order->total_ttc, + 'project_id' => $order->fk_project, - 'date' => $order->date?dol_print_date($order->date,'dayrfc'):'', - 'date_commande' => $order->date_commande?dol_print_date($order->date_commande,'dayrfc'):'', + 'date' => $order->date_commande?dol_print_date($order->date_commande,'dayrfc'):'', 'remise' => $order->remise, 'remise_percent' => $order->remise_percent, @@ -570,7 +567,6 @@ function getOrdersForThirdParty($authentication,$idthirdparty) 'mode_reglement_code' => $order->mode_reglement_code, 'date_livraison' => $order->date_livraison, - 'fk_delivery_address' => $order->fk_delivery_address, 'demand_reason_id' => $order->demand_reason_id, 'demand_reason_code' => $order->demand_reason_code, @@ -618,11 +614,12 @@ function createOrder($authentication,$order) dol_syslog("Function: createOrder login=".$authentication['login']." socid :".$order['socid']); + if ($authentication['entity']) $conf->entity=$authentication['entity']; + // Init and check authentication $objectresp=array(); $errorcode='';$errorlabel=''; $error=0; - if ($authentication['entity']) $conf->entity=$authentication['entity']; $fuser=check_authentication($authentication,$error,$errorcode,$errorlabel); // Check parameters @@ -631,19 +628,19 @@ function createOrder($authentication,$order) if (! $error) { $newobject=new Commande($db); - $newobject->socid=$order['socid']; + $newobject->socid=$order['thirdparty_id']; $newobject->type=$order['type']; $newobject->ref_ext=$order['ref_ext']; - $newobject->date=$order['date']; - $newobject->date_lim_reglement=$order['date_due']; + $newobject->date=dol_stringtotime($order['date'],'dayrfc'); + $newobject->date_lim_reglement=dol_stringtotime($order['date_due'],'dayrfc'); $newobject->note=$order['note']; $newobject->note_public=$order['note_public']; - $newobject->statut=$order['statut']; + $newobject->statut=$order['status']; $newobject->facturee=$order['facturee']; $newobject->fk_project=$order['project_id']; $newobject->cond_reglement_id=$order['cond_reglement_id']; $newobject->demand_reason_id=$order['demand_reason_id']; - $newobject->date_commande=$now; + $newobject->date_creation=$now; // Trick because nusoap does not store data with same structure if there is one or several lines $arrayoflines=array(); @@ -670,17 +667,26 @@ function createOrder($authentication,$order) $db->begin(); - $object_id=$newobject->create($fuser,0,0); - if ($object_id < 0) + $result=$newobject->create($fuser,0,0); + if ($result < 0) { $error++; } + if ($newobject->statut == 1) // We want order validated + { + $result=$newobject->validate($fuser); + if ($result < 0) + { + $error++; + } + } + if (! $error) { $db->commit(); - $objectresp=array('result'=>array('result_code'=>'OK', 'result_label'=>''),'id'=>$object_id); + $objectresp=array('result'=>array('result_code'=>'OK', 'result_label'=>''),'id'=>$newobject->id,'ref'=>$newobject->ref); } else { @@ -689,6 +695,7 @@ function createOrder($authentication,$order) $errorcode='KO'; $errorlabel=$newobject->error; } + } if ($error) @@ -784,6 +791,6 @@ function validOrder($authentication,$id='') // Return the results. -$server->service($HTTP_RAW_POST_DATA); +$server->service((isset($HTTP_RAW_POST_DATA)?$HTTP_RAW_POST_DATA:'')); ?> diff --git a/htdocs/webservices/server_productorservice.php b/htdocs/webservices/server_productorservice.php index d440256bcf2..04708072d0e 100755 --- a/htdocs/webservices/server_productorservice.php +++ b/htdocs/webservices/server_productorservice.php @@ -113,15 +113,13 @@ $server->wsdl->addComplexType( 'price_net' => array('name'=>'price_net','type'=>'xsd:string'), 'price' => array('name'=>'price','type'=>'xsd:string'), - 'price_ttc' => array('name'=>'price_ttc','type'=>'xsd:string'), + 'price_min_net' => array('name'=>'price_min_net','type'=>'xsd:string'), 'price_min' => array('name'=>'price_min','type'=>'xsd:string'), - 'price_min_ttc' => array('name'=>'price_min_ttc','type'=>'xsd:string'), 'price_base_type' => array('name'=>'price_base_type','type'=>'xsd:string'), 'vat_rate' => array('name'=>'vat_rate','type'=>'xsd:string'), - 'tva_tx' => array('name'=>'tva_tx','type'=>'xsd:string'), - 'tva_npr' => array('name'=>'tva_npr','type'=>'xsd:string'), + 'vat_npr' => array('name'=>'vat_npr','type'=>'xsd:string'), 'localtax1_tx' => array('name'=>'localtax1_tx','type'=>'xsd:string'), 'localtax2_tx' => array('name'=>'localtax2_tx','type'=>'xsd:string'), @@ -132,41 +130,44 @@ $server->wsdl->addComplexType( 'import_key' => array('name'=>'import_key','type'=>'xsd:string'), 'dir' => array('name'=>'dir','type'=>'xsd:string'), - 'photos' => array('name'=>'photos','type'=>'tns:PhotosArray') + 'images' => array('name'=>'images','type'=>'tns:ImagesArray') ) ); /* * Image of product -*/ + */ $server->wsdl->addComplexType( - 'PhotosArray', + 'ImagesArray', 'complexType', 'array', + 'sequence', '', - 'SOAP-ENC:Array', - array(), array( - array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:image[]') + 'image' => array( + 'name' => 'image', + 'type' => 'tns:image', + 'minOccurs' => '0', + 'maxOccurs' => 'unbounded' + ) ) ); /* * An image -*/ + */ $server->wsdl->addComplexType( 'image', 'complexType', - 'array', + 'struct', + 'all', '', - 'SOAP-ENC:Array', - array(), array( - 'photo' => array('name'=>'photo','type'=>'xsd:string'), - 'photo_vignette' => array('name'=>'photo_vignette','type'=>'xsd:string'), - 'imgWidth' => array('name'=>'imgWidth','type'=>'xsd:string'), - 'imgHeight' => array('name'=>'imgHeight','type'=>'xsd:string') + 'photo' => array('name'=>'photo','type'=>'xsd:string'), + 'photo_vignette' => array('name'=>'photo_vignette','type'=>'xsd:string'), + 'imgWidth' => array('name'=>'imgWidth','type'=>'xsd:string'), + 'imgHeight' => array('name'=>'imgHeight','type'=>'xsd:string') ) ); @@ -186,7 +187,7 @@ $server->wsdl->addComplexType( ) ); -$server->wsdl->addComplexType( +/*$server->wsdl->addComplexType( 'ProductsArray', 'complexType', 'array', @@ -197,7 +198,7 @@ $server->wsdl->addComplexType( array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:product[]') ), 'tns:product' -); +);*/ $server->wsdl->addComplexType( 'ProductsArray2', 'complexType', @@ -272,7 +273,7 @@ $server->register( // Entry values array('authentication'=>'tns:authentication','id'=>'xsd:string'), // Exit values - array('result'=>'tns:result','products'=>'ProductsArray'), + array('result'=>'tns:result','products'=>'tns:ProductsArray2'), $ns, $ns.'#getProductsForCategory', $styledoc, @@ -345,22 +346,18 @@ function getProductOrService($authentication,$id='',$ref='',$ref_ext='') 'country_code' => $product->country_code, 'custom_code' => $product->customcode, - 'price_net' => $product->price, // todo : DEPRECATED ? - //'price' => ($product->price_ttc-$product->price), - 'price' => $product->price, - 'price_ttc' => $product->price_ttc, - 'price_min' => $product->price_min, - 'price_min_ttc' => $product->price_min_ttc, + 'price_net' => $product->price, + 'price' => $product->price_ttc, + 'price_min_net' => $product->price_min, + 'price_min' => $product->price_min_ttc, 'price_base_type' => $product->price_base_type, - 'vat_rate' => $product->tva_tx, // todo : DEPRECATED ? - 'tva_tx' => $product->tva_tx, + 'vat_rate' => $product->tva_tx, //! French VAT NPR - 'tva_npr' => $product->tva_npr, + 'vat_npr' => $product->tva_npr, //! Spanish local taxes 'localtax1_tx' => $product->localtax1_tx, 'localtax2_tx' => $product->localtax2_tx, - 'price_ttc' => $product->price_ttc, 'price_base_type' => $product->price_base_type, 'stock_real' => $product->stock_reel, @@ -368,7 +365,7 @@ function getProductOrService($authentication,$id='',$ref='',$ref_ext='') 'pmp' => $product->pmp, 'import_key' => $product->import_key, 'dir' => $pdir, - 'photos' => $product->liste_photos($dir,$nbmax=10) + 'images' => $product->liste_photos($dir,$nbmax=10) )); } else @@ -651,17 +648,17 @@ function getProductsForCategory($authentication,$id) 'custom_code' => $obj->customcode, 'price_net' => $obj->price, - 'price' => ($obj->price_ttc-$obj->price), + 'price' => $obj->price_ttc, 'vat_rate' => $obj->tva_tx, - 'price_ttc' => $obj->price_ttc, - 'price_base_type' => $obj->price_base_type, + + 'price_base_type' => $obj->price_base_type, 'stock_real' => $obj->stock_reel, 'stock_alert' => $obj->seuil_stock_alerte, 'pmp' => $obj->pmp, 'import_key' => $obj->import_key, 'dir' => $pdir, - 'photos' => $obj->liste_photos($dir,$nbmax=10) + 'images' => $obj->liste_photos($dir,$nbmax=10) ); } diff --git a/htdocs/webservices/server_user.php b/htdocs/webservices/server_user.php index c74ea28af51..7ff24220b84 100644 --- a/htdocs/webservices/server_user.php +++ b/htdocs/webservices/server_user.php @@ -111,7 +111,7 @@ $server->wsdl->addComplexType( 'datec' => array('name'=>'datec','type'=>'xsd:dateTime'), 'datem' => array('name'=>'datem','type'=>'xsd:dateTime'), 'fk_thirdparty' => array('name'=>'fk_thirdparty','type'=>'xsd:string'), - 'fk_socpeople' => array('name'=>'fk_socpeople','type'=>'xsd:string'), + 'fk_contact' => array('name'=>'fk_contact','type'=>'xsd:string'), 'fk_member' => array('name'=>'fk_member','type'=>'xsd:string'), 'datelastlogin' => array('name'=>'datelastlogin','type'=>'xsd:dateTime'), 'datepreviouslogin' => array('name'=>'datepreviouslogin','type'=>'xsd:dateTime'), @@ -132,7 +132,7 @@ $server->wsdl->addComplexType( 'all', '', array( - 'nom' => array('name'=>'nom','type'=>'xsd:string'), + 'name' => array('name'=>'name','type'=>'xsd:string'), 'id' => array('name'=>'id','type'=>'xsd:string'), 'datec' => array('name'=>'datec','type'=>'xsd:string'), 'nb' => array('name'=>'nb','type'=>'xsd:string') @@ -264,26 +264,26 @@ $server->register( ); $server->register( - 'CreateUserFromThirdparty', + 'createUserFromThirdparty', // Entry values array('authentication'=>'tns:authentication','thirdpartywithuser'=>'tns:thirdpartywithuser'), // Exit values array('result'=>'tns:result','id'=>'xsd:string'), $ns, - $ns.'#CreateUserFromThirdparty', + $ns.'#createUserFromThirdparty', $styledoc, $styleuse, 'WS to create an external user with thirdparty and contact' ); $server->register( - 'SetUserPassword', + 'setUserPassword', // Entry values array('authentication'=>'tns:authentication','shortuser'=>'tns:shortuser'), // Exit values array('result'=>'tns:result','id'=>'xsd:string'), $ns, - $ns.'#SetUserPassword', + $ns.'#setUserPassword', $styledoc, $styleuse, 'WS to change password of an user' @@ -338,36 +338,36 @@ function getUser($authentication,$id,$ref='',$ref_ext='') $objectresp = array( 'result'=>array('result_code'=>'OK', 'result_label'=>''), 'user'=>array( -'id' => $user->id, -'lastname' => $user->lastname, -'firstname' => $user->firstname, -'note' => $user->note, -'email' => $user->email, -'signature' => $user->signature, -'office_phone' => $user->office_phone, -'office_fax' => $user->office_fax, -'user_mobile' => $user->user_mobile, -'admin' => $user->admin, -'login' => $user->login, -'entity' => $user->entity, -'pass_indatabase' => $user->pass_indatabase, -'pass_indatabase_crypted' => $user->pass_indatabase_crypted, -'datec' => dol_print_date($user->datec,'dayhourrfc'), -'datem' => dol_print_date($user->datem,'dayhourrfc'), -'fk_thirdparty' => $user->societe_id, -'fk_socpeople' => $user->contact_id, -'fk_member' => $user->fk_member, -'webcal_login' => $user->webcal_login, -'phenix_login' => $user->phenix_login, -'phenix_pass' => $user->phenix_pass, -'phenix_pass_crypted' => $user->phenix_pass_crypted, -'datelastlogin' => dol_print_date($user->datelastlogin,'dayhourrfc'), -'datepreviouslogin' => dol_print_date($user->datepreviouslogin,'dayhourrfc'), -'statut' => $user->statut, -'photo' => $user->photo, -'lang' => $user->lang, -//'rights' => $user->rights, -'canvas' => $user->canvas + 'id' => $user->id, + 'lastname' => $user->lastname, + 'firstname' => $user->firstname, + 'note' => $user->note, + 'email' => $user->email, + 'signature' => $user->signature, + 'office_phone' => $user->office_phone, + 'office_fax' => $user->office_fax, + 'user_mobile' => $user->user_mobile, + 'admin' => $user->admin, + 'login' => $user->login, + 'entity' => $user->entity, + 'pass_indatabase' => $user->pass_indatabase, + 'pass_indatabase_crypted' => $user->pass_indatabase_crypted, + 'datec' => dol_print_date($user->datec,'dayhourrfc'), + 'datem' => dol_print_date($user->datem,'dayhourrfc'), + 'fk_thirdparty' => $user->societe_id, + 'fk_contact' => $user->contact_id, + 'fk_member' => $user->fk_member, + 'webcal_login' => $user->webcal_login, + 'phenix_login' => $user->phenix_login, + 'phenix_pass' => $user->phenix_pass, + 'phenix_pass_crypted' => $user->phenix_pass_crypted, + 'datelastlogin' => dol_print_date($user->datelastlogin,'dayhourrfc'), + 'datepreviouslogin' => dol_print_date($user->datepreviouslogin,'dayhourrfc'), + 'statut' => $user->statut, + 'photo' => $user->photo, + 'lang' => $user->lang, + //'rights' => $user->rights, + 'canvas' => $user->canvas ) ); } @@ -418,7 +418,7 @@ function getListOfGroups($authentication) if (! $error) { - $sql = "SELECT g.rowid, g.nom, g.entity, g.datec, COUNT(DISTINCT ugu.fk_user) as nb"; + $sql = "SELECT g.rowid, g.nom as name, g.entity, g.datec, COUNT(DISTINCT ugu.fk_user) as nb"; $sql.= " FROM ".MAIN_DB_PREFIX."usergroup as g"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."usergroup_user as ugu ON ugu.fk_usergroup = g.rowid"; if (! empty($conf->multicompany->enabled) && $conf->entity == 1 && ($conf->multicompany->transverse_mode || ($user->admin && ! $user->entity))) @@ -439,7 +439,7 @@ function getListOfGroups($authentication) while ($i < $num) { $obj=$db->fetch_object($resql); - $arraygroups[]=array('id'=>$obj->rowid,'nom'=>$obj->nom,'datec'=>$obj->datec,'nb'=>$obj->nb); + $arraygroups[]=array('id'=>$obj->rowid,'name'=>$obj->name,'datec'=>$obj->datec,'nb'=>$obj->nb); $i++; } } @@ -477,11 +477,11 @@ function getListOfGroups($authentication) * @param array $thirdpartywithuser Datas * @return mixed */ -function CreateUserFromThirdparty($authentication,$thirdpartywithuser) +function createUserFromThirdparty($authentication,$thirdpartywithuser) { global $db,$conf,$langs; - dol_syslog("Function: CreateUserFromThirdparty login=".$authentication['login']." id=".$id." ref=".$ref." ref_ext=".$ref_ext); + dol_syslog("Function: createUserFromThirdparty login=".$authentication['login']." id=".$id." ref=".$ref." ref_ext=".$ref_ext); if ($authentication['entity']) $conf->entity=$authentication['entity']; @@ -518,7 +518,7 @@ function CreateUserFromThirdparty($authentication,$thirdpartywithuser) $resql = $db->query($sql); if ($resql) { - // If a company or socpeopel is found with the same email we return an error + // If a company or contact is found with the same email we return an error $row = $db->fetch_object($resql); if ($row) { @@ -574,7 +574,7 @@ function CreateUserFromThirdparty($authentication,$thirdpartywithuser) $contact->phone_pro = $thirdparty->phone; $contact->phone_mobile = $thirdpartywithuser['phone_mobile']; $contact->fax = $thirdparty->fax; - + //Retreive all extrafield for thirdsparty // fetch optionals attributes and labels $extrafields=new ExtraFields($db); @@ -665,32 +665,32 @@ function CreateUserFromThirdparty($authentication,$thirdpartywithuser) * @param array $shortuser Array of login/password info * @return mixed */ -function SetUserPassword($authentication,$shortuser) { - +function setUserPassword($authentication,$shortuser) { + global $db,$conf,$langs; - - dol_syslog("Function: SetUserPassword login=".$authentication['login']." id=".$id." ref=".$ref." ref_ext=".$ref_ext); - + + dol_syslog("Function: setUserPassword login=".$authentication['login']." id=".$id." ref=".$ref." ref_ext=".$ref_ext); + if ($authentication['entity']) $conf->entity=$authentication['entity']; - + $objectresp=array(); $errorcode='';$errorlabel=''; $error=0; - + $fuser=check_authentication($authentication,$error,$errorcode,$errorlabel); - + if ($fuser->societe_id) $socid=$fuser->societe_id; - + if (! $error && ! $shortuser) { $error++; $errorcode='BAD_PARAMETERS'; $errorlabel="Parameter shortuser must be provided."; } - + if (! $error) { $fuser->getrights(); - + if ($fuser->rights->user->user->password || $fuser->rights->user->self->password) { $userstat=new User($db); @@ -698,7 +698,7 @@ function SetUserPassword($authentication,$shortuser) { if($res) { $res = $userstat->setPassword($userstat,$shortuser['password']); - if($res) + if($res) { $objectresp = array( 'result'=>array('result_code' => 'OK', 'result_label' => ''), @@ -716,7 +716,7 @@ function SetUserPassword($authentication,$shortuser) { $error++; $errorcode='NOT_FOUND'; $errorlabel='User not found'; } - + } else { @@ -724,15 +724,15 @@ function SetUserPassword($authentication,$shortuser) { $errorcode='PERMISSION_DENIED'; $errorlabel='User does not have permission for this request'; } } - - + + if ($error) { $objectresp = array( 'result'=>array('result_code' => $errorcode, 'result_label' => $errorlabel) ); } - + return $objectresp; } diff --git a/scripts/cron/cron_run_jobs.php b/scripts/cron/cron_run_jobs.php new file mode 100755 index 00000000000..159fadd3a61 --- /dev/null +++ b/scripts/cron/cron_run_jobs.php @@ -0,0 +1,154 @@ +#!/usr/bin/php +. + */ + +/** + * \file cron/script/cron/cron_run_jobs.php + * \ingroup cron + * \brief Execute pendings jobs + */ +if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL','1'); // Disables token renewal +if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU','1'); +if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1'); +if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1'); +if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC','1'); +if (! defined('NOLOGIN')) define('NOLOGIN','1'); +//if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1'); + + +$sapi_type = php_sapi_name(); +$script_file = basename(__FILE__); +$path=dirname(__FILE__).'/'; + +// Test if batch mode +if (substr($sapi_type, 0, 3) == 'cgi') { + echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n"; + exit; +} + +if (! isset($argv[1]) || ! $argv[1]) { + print "Usage: ".$script_file." securitykey userlogin cronjobid(optional)\n"; + exit; +} +$key=$argv[1]; + +if (! isset($argv[2]) || ! $argv[2]) { + print "Usage: ".$script_file." securitykey userlogin cronjobid(optional)\n"; + exit; +} else { + $userlogin=$argv[2]; +} + +require_once ($path."../../htdocs/master.inc.php"); +require_once (DOL_DOCUMENT_ROOT."/cron/class/cronjob.class.php"); +require_once (DOL_DOCUMENT_ROOT.'/user/class/user.class.php'); +require_once (DOL_DOCUMENT_ROOT."/cron/class/cronjob.class.php"); + + +/* + * Main + */ + +// Check security key +if ($key != $conf->global->CRON_KEY) +{ + print "Error: securitykey is wrong\n"; + exit; +} + +// Check user login +$user=new User($db); +$result=$user->fetch('',$userlogin); +if ($result < 0) +{ + echo "User Error: ".$user->error; + dol_syslog("cron_run_jobs.php:: User Error:".$user->error, LOG_ERR); + exit; +} +else +{ + if (empty($user->id)) + { + echo " User user login: ".$userlogin." do not exists"; + dol_syslog(" User user login:".$userlogin." do not exists", LOG_ERR); + exit; + } +} + +if (isset($argv[3]) || $argv[3]) +{ + $id = $argv[3]; +} + +// create a jobs object +$object = new Cronjob($db); + +$filter=array(); +if (empty($id)) { + $filter=array(); + $filter['t.rowid']=$id; +} + +$result = $object->fetch_all('DESC','t.rowid', 0, 0, 1, $filter); +if ($result<0) +{ + echo "Error: ".$object->error; + dol_syslog("cron_run_jobs.php:: fetch Error ".$object->error, LOG_ERR); + exit; +} + +// current date +$now=dol_now(); + +if(is_array($object->lines) && (count($object->lines)>0)) +{ + // Loop over job + foreach($object->lines as $line) + { + + //If date_next_jobs is less of current dat, execute the program, and store the execution time of the next execution in database + if (($line->datenextrun < $now) && $line->dateend < $now){ + $cronjob=new Cronjob($db); + $result=$cronjob->fetch($line->id); + if ($result<0) { + echo "Error:".$cronjob->error; + dol_syslog("cron_run_jobs.php:: fetch Error".$cronjob->error, LOG_ERR); + exit; + } + // execute methode + $result=$cronjob->run_jobs($userlogin); + if ($result<0) { + echo "Error:".$cronjob->error; + dol_syslog("cron_run_jobs.php:: run_jobs Error".$cronjob->error, LOG_ERR); + exit; + } + + // we re-program the next execution and stores the last execution time for this job + $result=$cronjob->reprogram_jobs($userlogin); + if ($result<0) { + echo "Error:".$cronjob->error; + dol_syslog("cron_run_jobs.php:: reprogram_jobs Error".$cronjob->error, LOG_ERR); + exit; + } + + } + } +} + +$db->close(); +?> \ No newline at end of file diff --git a/scripts/emailings/mailing-send.php b/scripts/emailings/mailing-send.php index 6db9eb00c2a..2a0e8e7b580 100644 --- a/scripts/emailings/mailing-send.php +++ b/scripts/emailings/mailing-send.php @@ -127,7 +127,7 @@ if ($resql) $obj = $db->fetch_object($resql); // sendto en RFC2822 - $sendto = str_replace(',',' ',dolGetFirstLastname($obj->firstname, $obj->lastname) ." <".$obj->email.">"; + $sendto = str_replace(',',' ',dolGetFirstLastname($obj->firstname, $obj->lastname) ." <".$obj->email.">"); // Make subtsitutions on topic and body $other=explode(';',$obj->other); diff --git a/scripts/invoices/email_unpaid_invoices_to_representatives.php b/scripts/invoices/email_unpaid_invoices_to_representatives.php index 6abb260acf1..83c27b23aab 100755 --- a/scripts/invoices/email_unpaid_invoices_to_representatives.php +++ b/scripts/invoices/email_unpaid_invoices_to_representatives.php @@ -35,7 +35,7 @@ if (substr($sapi_type, 0, 3) == 'cgi') { exit; } -if (! isset($argv[1]) || ! $argv[1] || ! in_array($argv[1],array('test','confirm'))) +if (! isset($argv[1]) || ! $argv[1] || ! in_array($argv[1],array('test','confirm'))) { print "Usage: $script_file [test|confirm] [delay]\n"; print "\n"; @@ -51,6 +51,7 @@ require($path."../../htdocs/master.inc.php"); require_once (DOL_DOCUMENT_ROOT."/core/class/CMailFile.class.php"); + /* * Main */ @@ -84,7 +85,7 @@ if ($resql) print "We found ".$num." couples (unpayed validated invoice/sale representative) qualified\n"; dol_syslog("We found ".$num." couples (unpayed validated invoice/sale representative) qualified"); $message=''; - + if ($num) { while ($i < $num) @@ -141,20 +142,23 @@ else /** * Send email * - * @param string $oldemail Old email + * @param string $mode Mode (test | confirm) + * @param string $oldemail Old email * @param string $message Message to send * @param string $total Total amount of unpayed invoices + * @param string $userlang Code lang to use for email output. * @return int <0 if KO, >0 if OK */ function envoi_mail($mode,$oldemail,$message,$total,$userlang) { global $conf,$langs; - global $db; - $newlangs=new Translate($db,$conf); + $newlangs=new Translate('',$conf); $newlangs->setDefaultLang($userlang); - - $subject = "[".($conf->global->MAIN_APPLICATION_TITLE)."] ".$newlangs->trans("ListOfYourUnpaidInvoices"); + $newlangs->load("main"); + $newlangs->load("bills"); + + $subject = "[".(empty($conf->global->MAIN_APPLICATION_TITLE)?'Dolibarr':$conf->global->MAIN_APPLICATION_TITLE)."] ".$newlangs->trans("ListOfYourUnpaidInvoices"); $sendto = $oldemail; $from = $conf->global->MAIN_EMAIL_FROM; $errorsto = $conf->global->MAIN_MAIL_ERRORS_TO; @@ -163,12 +167,28 @@ function envoi_mail($mode,$oldemail,$message,$total,$userlang) print "Send email for ".$oldemail.", total: ".$total."\n"; dol_syslog("email_unpaid_invoices_to_representatives.php: send mail to ".$oldemail); - $allmessage = "List of unpaid invoices\n"; - $allmessage.= "This list contains only invoices for third parties you are linked to as a sales representative.\n"; - $allmessage.= "\n"; - $allmessage.= $message; - $allmessage.= "\n"; - $allmessage.= $langs->trans("Total")." = ".price($total)."\n"; + $usehtml=0; + if (dol_textishtml($conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_FOOTER)) $usehtml+=1; + if (dol_textishtml($conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_HEADER)) $usehtml+=1; + + $allmessage=''; + if (! empty($conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_HEADER)) + { + $allmessage.=$conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_HEADER; + } + else + { + $allmessage.= "List of unpaid invoices\n\n"; + $allmessage.= "This list contains only invoices for third parties you are linked to as a sales representative.\n"; + $allmessage.= "\n"; + } + $allmessage.= $message.($usehtml?"
\n":"\n"); + $allmessage.= $langs->trans("Total")." = ".price($total).($usehtml?"
\n":"\n"); + if (! empty($conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_FOOTER)) + { + $allmessage.=$conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_FOOTER; + if (dol_textishtml($conf->global->SCRIPT_EMAIL_UNPAID_INVOICES_FOOTER)) $usehtml+=1; + } $mail = new CMailFile( $subject, @@ -186,12 +206,17 @@ function envoi_mail($mode,$oldemail,$message,$total,$userlang) $mail->errors_to = $errorsto; + // Send or not email if ($mode == 'confirm') { $result=$mail->sendfile(); } - else $result=1; - + else + { + $mail->dump_mail(); + $result=1; + } + if ($result) { return 1; diff --git a/scripts/members/sync_members_ldap2dolibarr.php b/scripts/members/sync_members_ldap2dolibarr.php index e89f8186552..d29992a21db 100755 --- a/scripts/members/sync_members_ldap2dolibarr.php +++ b/scripts/members/sync_members_ldap2dolibarr.php @@ -207,7 +207,7 @@ if ($result >= 0) $member->morphy='phy'; $member->photo=''; $member->public=1; - $member->naiss=dol_stringtotime($ldapuser[$conf->global->LDAP_FIELD_BIRTHDATE]); + $member->birth=dol_stringtotime($ldapuser[$conf->global->LDAP_FIELD_BIRTHDATE]); $member->statut=-1; if (isset($ldapuser[$conf->global->LDAP_FIELD_MEMBER_STATUS])) diff --git a/test/phpunit/AdherentTest.php b/test/phpunit/AdherentTest.php index a0ee0efac83..f7a932250b2 100644 --- a/test/phpunit/AdherentTest.php +++ b/test/phpunit/AdherentTest.php @@ -222,7 +222,7 @@ class AdherentTest extends PHPUnit_Framework_TestCase $localobject->phone_perso='New tel perso'; $localobject->phone_mobile='New tel mobile'; $localobject->email='newemail@newemail.com'; - $localobject->naiss=$timestamp; + $localobject->birth=$timestamp; $result=$localobject->update($user); print __METHOD__." id=".$localobject->id." result=".$result."\n"; $this->assertLessThan($result, 0); @@ -256,7 +256,7 @@ class AdherentTest extends PHPUnit_Framework_TestCase $this->assertEquals($localobject->phone_perso, $newobject->phone_perso); $this->assertEquals($localobject->phone_mobile, $newobject->phone_mobile); $this->assertEquals($localobject->email, $newobject->email); - $this->assertEquals($localobject->naiss, $timestamp); + $this->assertEquals($localobject->birth, $timestamp); $this->assertEquals($localobject->morphy, $newobject->morphy); //We return newobject because of new values @@ -281,11 +281,11 @@ class AdherentTest extends PHPUnit_Framework_TestCase $db=$this->savdb; $template = '%DOL_MAIN_URL_ROOT%,%ID%,%CIVILITE%,%FIRSTNAME%,%LASTNAME%,%FULLNAME%,%COMPANY%,'. - '%ADDRESS%,%ZIP%,%TOWN%,%COUNTRY%,%EMAIL%,%NAISS%,%PHOTO%,%LOGIN%,%PASSWORD%,%PRENOM%,'. + '%ADDRESS%,%ZIP%,%TOWN%,%COUNTRY%,%EMAIL%,%BIRTH%,%PHOTO%,%LOGIN%,%PASSWORD%,%PRENOM%,'. '%NOM%,%SOCIETE%,%ADDRESS%,%ZIP%,%TOWN%,%COUNTRY%'; $expected = DOL_MAIN_URL_ROOT.','.$localobject->id.',0,New firstname,New name,New firstname New name,'. - 'New company,New address,New zip,New town,Belgium,newemail@newemail.com,'.dol_print_date($localobject->naiss,'day').',,'. + 'New company,New address,New zip,New town,Belgium,newemail@newemail.com,'.dol_print_date($localobject->birth,'day').',,'. 'newlogin,dolibspec,New firstname,New name,New company,New address,New zip,New town,Belgium'; $result = $localobject->makeSubstitution($template); diff --git a/test/soapui/Dolibarr-soapui-project.xml b/test/soapui/Dolibarr-soapui-project.xml index e74f5181696..97e6062b57d 100755 --- a/test/soapui/Dolibarr-soapui-project.xml +++ b/test/soapui/Dolibarr-soapui-project.xml @@ -1,5 +1,5 @@ - -http://localhostdolibarr/dolibarrnew/webservices/server_other.php?wsdl + +http://localhostdolibarr/dolibarrnew/webservices/server_other.php?wsdl @@ -69,7 +69,7 @@ -]]>http://localhostdolibarr/dolibarrnew/webservices/server_invoice.php?wsdl +]]>http://localhost/dolibarrnew/webservices/server_invoice.php?wsdl @@ -108,13 +108,6 @@ - - - - - - - @@ -146,13 +139,6 @@ - - - - - - - @@ -236,10 +222,10 @@ - + -]]>http://schemas.xmlsoap.org/wsdl/http://localhostdolibarr/dolibarrnew/webservices/server_invoice.php<xml-fragment/>UTF-8http://localhostdolibarr/dolibarrnew/webservices/server_invoice.php +]]>http://schemas.xmlsoap.org/wsdl/http://localhostdolibarr/dolibarrnew/webservices/server_invoice.phphttp://localhost/dolibarrnew/webservices/server_invoice.php<xml-fragment/>UTF-8http://localhost/dolibarrnew/webservices/server_invoice.php @@ -298,7 +284,7 @@ -]]>UTF-8http://localhostdolibarr/dolibarrnew/webservices/server_invoice.php +]]>UTF-8http://localhost/dolibarrnew/webservices/server_invoice.php @@ -338,7 +324,184 @@ -]]><xml-fragment/>UTF-8http://localhostdolibarr/dolibarrnew/webservices/server_invoice.php +]]>UTF-8http://localhostdolibarr/dolibarrnew/webservices/server_invoice.php + + + + + + ? + ? + ? + ? + ? + + + + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + + + + + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + + + + + +]]>UTF-8http://localhostdolibarr/dolibarrnew/webservices/server_invoice.php + + + + + + ? + ? + ? + ? + ? + + + + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + + + + + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + + + + + +]]>UTF-8http://localhostdolibarr/dolibarrnew/webservices/server_invoice.php + + + + + + ? + ? + ? + ? + ? + + + + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + + + + + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + + + + + +]]><xml-fragment/>UTF-8http://localhost/dolibarrnew/webservices/server_invoice.php @@ -355,7 +518,24 @@ -]]><xml-fragment/>UTF-8http://localhostdolibarr/dolibarrnew/webservices/server_invoice.php +]]>UTF-8http://localhostdolibarr/dolibarrnew/webservices/server_invoice.php + + + + + + ? + ? + ? + ? + ? + + ? + ? + ? + + +]]><xml-fragment/>UTF-8http://localhost/dolibarrnew/webservices/server_invoice.php @@ -370,7 +550,22 @@ 4 -]]>http://localhostdolibarr/dolibarrnew/webservices/server_supplier_invoice.php?wsdl +]]>UTF-8http://localhostdolibarr/dolibarrnew/webservices/server_invoice.php + + + + + + ? + ? + ? + ? + ? + + ? + + +]]>http://localhost/dolibarrnew/webservices/server_supplier_invoice.php?wsdl @@ -510,10 +705,10 @@ - + -]]>http://schemas.xmlsoap.org/wsdl/http://localhostdolibarr/dolibarrnew/webservices/server_supplier_invoice.php<xml-fragment/>UTF-8http://localhostdolibarr/dolibarrnew/webservices/server_supplier_invoice.php +]]>http://schemas.xmlsoap.org/wsdl/http://localhostdolibarr/dolibarrnew/webservices/server_supplier_invoice.phphttp://localhost/dolibarrnew/webservices/server_supplier_invoice.php<xml-fragment/>UTF-8http://localhost/dolibarrnew/webservices/server_supplier_invoice.php @@ -530,7 +725,24 @@ -]]><xml-fragment/>UTF-8http://localhostdolibarr/dolibarrnew/webservices/server_supplier_invoice.php +]]>UTF-8http://localhostdolibarr/dolibarrnew/webservices/server_supplier_invoice.php + + + + + + ? + ? + ? + ? + ? + + ? + ? + ? + + +]]><xml-fragment/>UTF-8http://localhost/dolibarrnew/webservices/server_supplier_invoice.php @@ -545,7 +757,22 @@ all -]]>http://localhostdolibarr/dolibarrnew/webservices/server_productorservice.php?wsdl +]]>UTF-8http://localhostdolibarr/dolibarrnew/webservices/server_supplier_invoice.php + + + + + + ? + ? + ? + ? + ? + + ? + + +]]>http://localhostdolibarr/dolibarrnew/webservices/server_productorservice.php?wsdl @@ -585,12 +812,33 @@ + + + + + + + + + + + + + + + + + + + + + @@ -600,13 +848,6 @@ - - - - - - - @@ -640,6 +881,14 @@ + + + + + + + + WS to get product or service @@ -656,6 +905,11 @@ + + WS to get list of all products or services for a category + + + @@ -686,13 +940,22 @@ + + + + + + + + + -]]>http://schemas.xmlsoap.org/wsdl/http://localhost/dolibarr/htdocs/webservices/server_productorservice.php<xml-fragment/>UTF-8http://localhost/dolibarr/htdocs/webservices/server_productorservice.php +]]>http://schemas.xmlsoap.org/wsdl/http://localhost/dolibarrnew/webservices/server_productorservice.phphttp://localhostdolibarr/dolibarrnew/webservices/server_productorservice.php<xml-fragment/>UTF-8http://localhostdolibarr/dolibarrnew/webservices/server_productorservice.php @@ -733,7 +996,7 @@ -]]><xml-fragment/>UTF-8http://localhost/dolibarr/htdocs/webservices/server_productorservice.php +]]><xml-fragment/>UTF-8http://localhostdolibarr/dolibarrnew/webservices/server_productorservice.php @@ -750,7 +1013,24 @@ -]]>UTF-8http://localhost/dolibarr/htdocs/webservices/server_productorservice.php +]]><xml-fragment/>UTF-8http://localhostdolibarr/dolibarrnew/webservices/server_productorservice.php + + + + + + ? + ? + ? + ? + ? + + ? + ? + ? + + +]]>UTF-8http://localhostdolibarr/dolibarrnew/webservices/server_productorservice.php @@ -770,7 +1050,22 @@ -]]>http://localhostdolibarr/webservices/server_user.php?wsdl +]]><xml-fragment/>UTF-8http://localhost/dolibarrnew/webservices/server_productorservice.php + + + + + + dolibarrkey + ? + admin + admin + + + 5 + + +]]>http://localhostdolibarr/webservices/server_user.php?wsdl @@ -809,7 +1104,8 @@ - + + @@ -820,6 +1116,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -832,12 +1181,50 @@ + + + + + + + + + + + + + + + + + + + + + + + WS to get user + + WS to get list of groups + + + + + WS to create an external user with thirdparty and contact + + + + + WS to change password of an user + + + @@ -850,6 +1237,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -873,7 +1287,85 @@ -]]>http://localhostdolibarr/webservices/server_thirdparty.php?wsdl +]]>UTF-8http://localhostdolibarr/webservices/server_user.php + + + + + + ? + ? + ? + ? + ? + + + +]]>UTF-8http://localhostdolibarr/webservices/server_user.php + + + + + + ? + ? + ? + ? + ? + + + + ? + ? + ? + ? + ? + ? +
?
+ ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? +
+
+
+]]>
UTF-8http://localhostdolibarr/webservices/server_user.php + + + + + + ? + ? + ? + ? + ? + + + + ? + ? + ? + + + +]]>
http://localhostdolibarr/webservices/server_thirdparty.php?wsdl @@ -899,6 +1391,7 @@ + @@ -928,6 +1421,7 @@ + @@ -967,6 +1461,15 @@ + + + + + + + + + @@ -987,6 +1490,11 @@ + + WS to update a thirdparty + + + WS to get list of thirdparties id and ref @@ -1013,6 +1521,15 @@ + + + + + + + + + @@ -1114,7 +1631,59 @@ -]]>https://www.ovh.com/soapi/soapi-re-1.32.wsdl]]>UTF-8http://localhostdolibarr/webservices/server_thirdparty.php + + + + + + ? + ? + ? + ? + ? + + + + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? +
?
+ ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? +
+
+
+]]>
https://www.ovh.com/soapi/soapi-re-1.32.wsdl? -]]>
\ No newline at end of file +]]>http://localhost/dolibarrnew/webservices/server_actioncomm.php?wsdl + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + WS to get actioncommType + + + + + WS to get actioncomm + + + + + WS to create a actioncomm + + + + + WS to update a actioncomm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]]>http://schemas.xmlsoap.org/wsdl/http://localhost/dolibarrnew/webservices/server_actioncomm.phpUTF-8http://localhost/dolibarrnew/webservices/server_actioncomm.php + + + + + + ? + ? + ? + ? + ? + + + + ? + ? + ? + ? + ? + ? + + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + + + +]]>UTF-8http://localhost/dolibarrnew/webservices/server_actioncomm.php + + + + + + ? + ? + ? + ? + ? + + ? + + +]]>UTF-8http://localhost/dolibarrnew/webservices/server_actioncomm.php + + + + + + ? + ? + ? + ? + ? + + + +]]>UTF-8http://localhost/dolibarrnew/webservices/server_actioncomm.php + + + + + + ? + ? + ? + ? + ? + + + + ? + ? + ? + ? + ? + ? + + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + + + +]]> \ No newline at end of file