From 359fab73c570b8b4b89eb640650a82cf0d903767 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 9 May 2010 13:45:27 +0000 Subject: [PATCH] Work on odt generation Add warning if postgresql has a wrong configuration --- htdocs/admin/company.php | 9 ++- htdocs/admin/system/database.php | 6 +- htdocs/admin/system/index.php | 13 +++- htdocs/includes/modules/modFacture.class.php | 6 +- htdocs/includes/modules/modSociete.class.php | 6 +- .../societe/doc/doc_generic_odt.modules.php | 13 ++-- .../{odttemplates => doctemplates}/README | 0 .../invoices/template_invoice.odt | Bin .../thirdparties/template_thirdparty.odt | Bin 0 -> 16531 bytes .../thirdparties/template_thirdparty.odt | Bin 13522 -> 0 bytes htdocs/langs/en_US/errors.lang | 1 + htdocs/langs/fr_FR/errors.lang | 1 + htdocs/lib/databases/mysql.lib.php | 41 +++++++++++ htdocs/lib/databases/mysqli.lib.php | 41 +++++++++++ htdocs/lib/databases/pgsql.lib.php | 20 ++++++ htdocs/soc.php | 65 ++++++++++-------- 16 files changed, 178 insertions(+), 44 deletions(-) rename htdocs/install/{odttemplates => doctemplates}/README (100%) rename htdocs/install/{odttemplates => doctemplates}/invoices/template_invoice.odt (100%) create mode 100644 htdocs/install/doctemplates/thirdparties/template_thirdparty.odt delete mode 100644 htdocs/install/odttemplates/thirdparties/template_thirdparty.odt diff --git a/htdocs/admin/company.php b/htdocs/admin/company.php index f00f8326020..809fd4e7f97 100644 --- a/htdocs/admin/company.php +++ b/htdocs/admin/company.php @@ -79,7 +79,8 @@ if ( (isset($_POST["action"]) && $_POST["action"] == 'update') { create_exdir($conf->mycompany->dir_output.'/logos/'); } - if (dol_move_uploaded_file($_FILES["logo"]["tmp_name"],$conf->mycompany->dir_output.'/logos/'.$original_file,1,0,$_FILES['logo']['error']) > 0) + $result=dol_move_uploaded_file($_FILES["logo"]["tmp_name"],$conf->mycompany->dir_output.'/logos/'.$original_file,1,0,$_FILES['logo']['error']); + if ($result > 0) { dolibarr_set_const($db, "MAIN_INFO_SOCIETE_LOGO",$original_file,'chaine',0,'',$conf->entity); @@ -108,6 +109,12 @@ if ( (isset($_POST["action"]) && $_POST["action"] == 'update') } else dol_syslog($langs->trans("ErrorImageFormatNotSupported"),LOG_WARNING); } + else if (preg_match('/^ErrorFileIsInfectedWithAVirus/',$result)) + { + $langs->load("errors"); + $tmparray=explode(':',$result); + $message .= '
'.$langs->trans('ErrorFileIsInfectedWithAVirus',$tmparray[1]).'
'; + } else { $message .= '
'.$langs->trans("ErrorFailedToSaveFile").'
'; diff --git a/htdocs/admin/system/database.php b/htdocs/admin/system/database.php index 844eac0ab3f..e5384ca0605 100644 --- a/htdocs/admin/system/database.php +++ b/htdocs/admin/system/database.php @@ -64,13 +64,13 @@ $base=0; $sqls = array(); if ($conf->db->type == 'mysql' || $conf->db->type == 'mysqli') { - $sqls[0] = "SHOW VARIABLES"; - $sqls[1] = "SHOW STATUS"; + $sqls[0] = "SHOW VARIABLES"; // TODO Use function getServerParametersValues + $sqls[1] = "SHOW STATUS"; // TODO Use function getServerStatusValues $base=1; } else if ($conf->db->type == 'pgsql') { - $sqls[0] = "select name,setting from pg_settings;"; + $sqls[0] = "select name,setting from pg_settings"; $base=2; } else if ($conf->db->type == 'mssql') diff --git a/htdocs/admin/system/index.php b/htdocs/admin/system/index.php index 29059e671b2..f5aad0df34b 100644 --- a/htdocs/admin/system/index.php +++ b/htdocs/admin/system/index.php @@ -89,9 +89,20 @@ $dblabel=$db->getLabel(); $dbversion=$db->getVersion(); print "".$langs->trans("Version")."" .$dblabel." ".$dbversion."\n"; print ''; +// Add checks on database options +if ($db->type == 'pgsql') +{ + // Check option standard_conforming_strings is on + $paramarray=$db->getServerParametersValues('standard_conforming_strings'); + if ($paramarray['standard_conforming_strings'] != 'on' && $paramarray['standard_conforming_strings'] != 1) + { + $langs->load("errors"); + print '
'.$langs->trans("ErrorDatabaseParameterWrong",'standard_conforming_strings','on').'
'; + } +} print '
'; -// Database +// Browser print ''; print "\n"; print "\n"; diff --git a/htdocs/includes/modules/modFacture.class.php b/htdocs/includes/modules/modFacture.class.php index 25126bc55dd..9ff2d92c797 100644 --- a/htdocs/includes/modules/modFacture.class.php +++ b/htdocs/includes/modules/modFacture.class.php @@ -92,7 +92,7 @@ class modFacture extends DolibarrModules $this->const[$r][0] = "FACTURE_ADDON_PDF_ODT_PATH"; $this->const[$r][1] = "chaine"; - $this->const[$r][2] = "DOL_DATA_ROOT/odttemplates/invoices"; + $this->const[$r][2] = "DOL_DATA_ROOT/doctemplates/invoices"; $this->const[$r][3] = ""; $this->const[$r][4] = 0; $r++; @@ -217,9 +217,9 @@ class modFacture extends DolibarrModules $this->remove(); require_once(DOL_DOCUMENT_ROOT.'/lib/files.lib.php'); - $dirodt=DOL_DATA_ROOT.'/odttemplates/invoices'; + $dirodt=DOL_DATA_ROOT.'/doctemplates/invoices'; create_exdir($dirodt); - dol_copy(DOL_DOCUMENT_ROOT.'/install/odttemplates/invoices/template_invoice.odt',$dirodt.'/template_invoice.odt',0,0); + dol_copy(DOL_DOCUMENT_ROOT.'/install/doctemplates/invoices/template_invoice.odt',$dirodt.'/template_invoice.odt',0,0); $sql = array( "DELETE FROM ".MAIN_DB_PREFIX."document_model WHERE nom = '".$this->const[0][2]."' AND entity = ".$conf->entity, diff --git a/htdocs/includes/modules/modSociete.class.php b/htdocs/includes/modules/modSociete.class.php index 242c90d5315..73fee6930d9 100644 --- a/htdocs/includes/modules/modSociete.class.php +++ b/htdocs/includes/modules/modSociete.class.php @@ -104,7 +104,7 @@ class modSociete extends DolibarrModules $this->const[$r][0] = "COMPANY_ADDON_PDF_ODT_PATH"; $this->const[$r][1] = "chaine"; - $this->const[$r][2] = "DOL_DATA_ROOT/odttemplates/thirdparties"; + $this->const[$r][2] = "DOL_DATA_ROOT/doctemplates/thirdparties"; $this->const[$r][3] = ""; $this->const[$r][4] = 0; $r++; @@ -277,9 +277,9 @@ class modSociete extends DolibarrModules //$this->remove($options); require_once(DOL_DOCUMENT_ROOT.'/lib/files.lib.php'); - $dirodt=DOL_DATA_ROOT.'/odttemplates/thirdparties'; + $dirodt=DOL_DATA_ROOT.'/doctemplates/thirdparties'; create_exdir($dirodt); - dol_copy(DOL_DOCUMENT_ROOT.'/install/odttemplates/thirdparties/template_thirdparty.odt',$dirodt.'/template_thirdparty.odt',0,0); + dol_copy(DOL_DOCUMENT_ROOT.'/install/doctemplates/thirdparties/template_thirdparty.odt',$dirodt.'/template_thirdparty.odt',0,0); $sql = array(); diff --git a/htdocs/includes/modules/societe/doc/doc_generic_odt.modules.php b/htdocs/includes/modules/societe/doc/doc_generic_odt.modules.php index 0897fc3f13a..51a41e4dbb1 100644 --- a/htdocs/includes/modules/societe/doc/doc_generic_odt.modules.php +++ b/htdocs/includes/modules/societe/doc/doc_generic_odt.modules.php @@ -82,6 +82,7 @@ class doc_generic_odt extends ModeleThirdPartyDoc function get_substitutionarray_mysoc($mysoc) { return array( + 'mycompany_logo'=>$mysoc->logo, 'mycompany_name'=>$mysoc->name, 'mycompany_email'=>$mysoc->email, 'mycompany_phone'=>$mysoc->phone, @@ -90,13 +91,15 @@ class doc_generic_odt extends ModeleThirdPartyDoc 'mycompany_zip'=>$mysoc->zip, 'mycompany_town'=>$mysoc->town, 'mycompany_country'=>$mysoc->country, - 'mycompany_url'=>$mysoc->url, + 'mycompany_web'=>$mysoc->url, + 'mycompany_juridicalstatus'=>$mysoc->forme_juridique, + 'mycompany_capital'=>$mysoc->capital, 'mycompany_barcode'=>$mysoc->gencode, - 'mycompany_vat'=>$mysoc->tva_intra, 'mycompany_idprof1'=>$mysoc->profid1, 'mycompany_idprof2'=>$mysoc->profid2, 'mycompany_idprof3'=>$mysoc->profid3, 'mycompany_idprof4'=>$mysoc->profid4, + 'mycompany_vatnumber'=>$mysoc->tva_intra, 'mycompany_note'=>$mysoc->note ); } @@ -118,13 +121,15 @@ class doc_generic_odt extends ModeleThirdPartyDoc 'company_zip'=>$object->zip, 'company_town'=>$object->town, 'company_country'=>$object->country, - 'company_url'=>$object->url, + 'company_web'=>$object->url, 'company_barcode'=>$object->gencode, - 'company_vat'=>$object->tva_intra, + 'company_vatnumber'=>$object->tva_intra, 'company_customercode'=>$object->code_client, 'company_suppliercode'=>$object->code_fournisseur, 'company_customeraccountancycode'=>$object->code_compta, 'company_supplieraccountancycode'=>$object->code_compta_fournisseur, + 'company_juridicalstatus'=>$object->forme_juridique, + 'company_capital'=>$object->capital, 'company_idprof1'=>$object->idprof1, 'company_idprof2'=>$object->idprof2, 'company_idprof3'=>$object->idprof3, diff --git a/htdocs/install/odttemplates/README b/htdocs/install/doctemplates/README similarity index 100% rename from htdocs/install/odttemplates/README rename to htdocs/install/doctemplates/README diff --git a/htdocs/install/odttemplates/invoices/template_invoice.odt b/htdocs/install/doctemplates/invoices/template_invoice.odt similarity index 100% rename from htdocs/install/odttemplates/invoices/template_invoice.odt rename to htdocs/install/doctemplates/invoices/template_invoice.odt diff --git a/htdocs/install/doctemplates/thirdparties/template_thirdparty.odt b/htdocs/install/doctemplates/thirdparties/template_thirdparty.odt new file mode 100644 index 0000000000000000000000000000000000000000..fa6bfc9ee7c4408896cad0a865fe0acfb92eb14e GIT binary patch literal 16531 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 literal 0 HcmV?d00001 diff --git a/htdocs/install/odttemplates/thirdparties/template_thirdparty.odt b/htdocs/install/odttemplates/thirdparties/template_thirdparty.odt deleted file mode 100644 index 7e8c0c5b82567dc45bcb66c685590af5263bb468..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13522 zcma)D1y~$O)5e|P8r*{|?iPZ(Ymmj=c5zK`ch?}nEf6e7a3^SRcPD}1kRNiFOYXk= z{^#p`c6X+`>aD8oo}QkXDkWKH7;Fd#1PF+4b{PWtJ!~kn5D*ZL--jv)TT5G0u)BjP z(80mR(ijM~w6_De*qJcf13{J`W_t%yI}>|jXIoP{Ff-WH4XpGxum}FX3gN@i3wt{= zOLJ$ZA21*`00;~OJA;gXPJo|$2tSl~WPImcVCU?n^{;TBg)@j-QJKy@ zJ70Fqr;-TE6RQq;FBKnh+q(W`eeugiM$6(Bk!{hqT-d3h5I+(+PAHXJ*(ZO%;KgeC z%Hdied+J-pH>|PJsj9#ZF(hbVjH{n^tTHHsuHc4FiVRpNB2Bv>3KhNE2LdJVzc z;i%}h{0_;sJD(${b#0=O%9NEKpxaq3?z1QZ|ddXs` zl|_V1s9bKxYTwKR`6#&dAuZ!jO2?{KKi;hilCMW!1b`cPxn@76HiuRK$Gtz?JCGvN zlYU6*KF^oIW{|M2k#N0IkvT4*o)p18WGYvSEl6 z3)SHi0iAqthUMEU`@m7?fc2uRb3=JJ`S0#`t6cpSQOE5E?hbtcTv`hZc?aYuM`zPg zW1{ryfzrKray;e6$GT=tLK#Ocb%7N)agk9;lj@xHk2&xsKegDQ3XSX# z)ul>6;h(a>1y8fPlDyGdIBckcO2mMY0b#X=^@ioMyCL8nwrFi9MBR!YT^OgV1q21q zyabHwU2g>|-`QL^lQ25cfCSLcvESjwvA0^AzuqAbvdA5i)Oqt%BwX^~HUhcW*VC^Q z9(t19_RDG-5<20y2Iu(^1}r-wb{(q5ka#j))^b`VCWI~Q#SZB_ zfTn-$8IY1=jNjHmsJmuM4L;iQdT&e#pKHB=W4y-)laF6WXz?PeGJD&nyr&h&r8F*tjtzY6NhxDKgX1fhjedR6xODQjt-@YPtqEJgHXQ%tb&@Zjn;z1FR-)rPHSBIBj z_ta0lfpP|GkJuOQ8_8@TsA4yrVDd%M*+RuIXF6fV#Rn_&yo>h>;Yj;yIc=F^D(EFS z)CJ|II!;^Ez7WOu)p`k$pCQFS3wDY}7o^^6gDqI3Zz6Q-HCgTuYxwaqNO8=3jXRbM zI9&qcE3K)YCu?B1c1~4K3A?e(*tKx+7s*+FC!c3v@4E2o>Bw>$GbFI0(TF>^^`EkF z+*(@TxGM~pRy7zohmUN=Q&-_9M-HKe;I}$?)TZFoF)9 zS*y(i*E6ByZIR`6-*K2!BtZ>q5>v-`ARU?%D?!Clfl@?SatCu)P)J&9RBT^jYaQg} zPys4jLlBog?==Yek}-~+j(oJ8!iZ(J%?Xx(t9+h-@>Gp=WGsxrEqZlS6&;^NyXE`Q zJHX7hHQiQ_{gKfHUb6Mo@vE2o&UAQKxkaCY$B(rf>8AQ*hz8_yW}d$1PiSr5Qlh7H z@GUsCJX^Osi?=+R2E0)$Q^blJFpKzMwCGoT-ckx!NbEzL*0{K zo05Pn%uKECvfC2;^!*Xts_4ejymRS+Q=Jfm$60em=$d8VkQyni5lS!%@o9Q!WGv77?+!_U_wKwqvz0nxN+9_a7#)0EEyjppc=%fKsYbfj;_?HKyW6^ zv-lLLowe6Ov{7}GE=GzXGu|d_L^$V&AC<_R7$Fnh*6)JV_0T# zAotA%XFVzJB2?*knUpYI5oyG$!E;O)>NR+57znP*dhToYXnmoTN1F@YoYn20SY>pA!? zg32xPT|PZa;+vR4qHqGaw??)B={alQ;TSR_dF5B#IyBZAMpm@tdS^NSQ;FJl#S@$} znM_}l6*9}JS{g0*y-iVF%nOO8RB0I)9rhGH%}n-7#s(80V`(Hv#l6Dm%@|coHw2hA zM&&kDY=2wK_@Y;th{R+|E#2xqDiQ$1AGnx@jh(H){y z^{3)HE#Wz!k?aC;i^{)~^m4MXa9D0}-34DP6&x)<_1}dkX62%hO@0@;o$Q7Jysapx z5-h<~80eqpuy7SJF5^^}XF)6(*6aD=ZQ{efb4}5_C1!N=F+ThRW>b2Qhruf!(hdWX zq6;49E$;BtTS-n~F{0#%!Ot-^9^@*J?1~sF5I;se`hlAg< zbrY0)eM?=P_B7swDA6+x26z7UiR=@^cIsDtD)6T|2g(C`=x4}`o$E9q+pdT+yBJw; zqKJhO2*Hd`#6vN8);a~(H`r66oM82Y^k7I62>N-kOUBj8&6T1@f|7{Nm9ZMpl9F|* zWakMKu?SOtrZHUbfxtTdJw_P0TUw%McYnhy)5}@!x^x-CoLBUfd)-(`>=v3-l{q73 zLt0dQ=2hTo#sZQ-j74<|_!q^H)MdGGFL-WG4Gzz%1M&d30lZUhp9YRFCyt;avE^!j z*sGQ8OnvJjxJtF!quVm}Ra+FJqA3Y=EnVK$;Iw?_+}SzUoJgRuzCvS$!&IshPV|)f zMvk*ZC;y7Uc913qrCC4b^KIxC4GoUiL}e|1{3xLrZinw)B6A{0s!*2FQxpz#OTysU zakN>?z5|s_hP465`M!47;XYN_IWj(e-3q)Mk6Eq}0oty8@v5hWGf9!aNynFDqA#ZQ z=SOw3UJb|`z{lX_2U{*@TqhcHI}NFBCOIae(og2tyja*M!lsWhXmaS&7Stk=fOEe> zTxUzL3EtEftSfHzv;(?6#~NvSj$05?*lyuoH8L2BZb*`^#FC`gQuWYN1|w zhgUoak|)l^Y5q3_c2AnVFvY6~`afT;(&C~ZCTgudzjv}>4SCAfGwHLt}22i zN7lu!q)NpDmkfN6a+^EIpiV@&-*sT(|`sQ50+FG%C=5rb*l27%q73~ql1fzoO zs?Y+k^1M4AEH(C04_rrUjTg0Z61ipN&QCnu6nI*5eM3LHj8lud_!y}%|E3UjVV z<<~cmepi%=Z22_6Tw&#{_Z>}8TOrTo>lfM#rGDymS(|eBNJ;Tv7?pUn#gx6zozWI$ zyM+5~t4fEv3dKXa~y~D zIT#Juv4ZqXwfCBYF8YhK!=k3WvtnWq!bJ}j|Dc2^9@KhT)t)!;C>h=J!OuRl(u1Py zZD1#}sIFIiumURbiz9hQOt=fyXFpiRM1A3n-QARDZAs}3=hlC#Cmn6c(7-q0%H4DJ z)iGd4gJnfK+8}f5=4sv)&|SC#L`#5f3!`a%z1oxFG!o;d))lez)~DMSoZo}*v)wf35$+z7mg)YpjL&^xu$5$$>G53dm6;@k4rR%ALn;qmJaovc+rK6 zuRx+68P?`E5^49GCeDW99I(zFs<&2d*)tzhYs1hbkgvm>k9*PO3&pI3^clMO@;bTh z9;;saH?vwEi0`c|wuOGI66tl}-b4Cu16Kfv@KVP)C=x#lnB63PV7=fF4%{ZJWC?d$ zZO@TwVfyx5>Drt+-?1JMihYD!xBMwd>)}yo)6;i6PZsPky`H>JpEJ&1I^QLY{h(@o z@=_VkW4rn@0uq%D@uAgl&N%o>V5W5qR-Qs1+N9)t z$>s-@i80{8BlGA60s&Z=Sph$3A2s}6m3pN8T_t;a`@aM|+VF>oKg6-Iuy6qWIR7ch z+{whm<}do+40xbr2bcp)fM6h#i>0Y6B?Z}^{rFplvr&-!0N?{V0qsC$_D;4xd{lqo zJ#_hlx9id8#q_Ak4<-IUc`%m^;0Ce*1ME%A*dDga%nv6NLO;jq(I_E-AEp^Qnf?G} zdQinw=s_)BCKe7RRxUMGRz7w%J{C4+E)D^}zmWdHZfar)ewYtTCV%?Rgp|}+SftoE zTGFa!oJR6T1D<>Z( zCm#nJGaHWp;Ai_I;g9aJcM_5VIzKx2$iyBVM}U?#Hm1%_KL~%e|DpC@*Tkbw(Gmo< zG$#AelVG5cjVY6{y|W!ykmBL8`ce7A$@R}ld!t7y{#onr;12s)$NDF`1JDU*?gVtO z_}Re5^Jj~zy_3n$O5TS#^~YdZJkT3II2wPpaPzQH0REg5&Y*{S6H_xwJ5!TC$RDp; zK?-R*GkY@D|BdW_L}UNo&^R8+{=B&O9u4?)_E#tWsQ&NINRLiTH4A53BfEzI0|CH4 z51Ae8%okJKIk1(Mdl_ucGZ`^NQ>11?59nn-TfmtTchA&3NnA8!B;VI!8)#*hk1KD- zrvY|I%~H=tI1i=NZ+mC?W_{1vzB_IC?$vtX`spIeb3}0aLhyn{kcHdK6w`#yc@KME z4-2}q%|_7q;dUKveqZ9S7?+@0=!ShnxHA`kYlj{AHZi@{`;}%uH!f+m;CGU5(yQB- zdo3eNq^QiWX&4crx_%mz$v7Gi3a!M38+VN#zxuet9m=7k#Cp_u-#Kk`XgAdtX6jmh z1M3V+C*dgMni}pITnJOMAx2&TFfU* zS`2H-x!vY?y2o>LMoD`wCn(KuP_1c*&S`OgTs7BVn&%}f3e)~48-^#GW%#|EVemR- zrUOR_6id93rmti$vvI5Xny)8~&n5$X>9Z1qd#;tf!ucJG)}dLS-{sv_-`3HPF3`*@ z5JHA%Cw=nl0dHX>aiQM6>Hg|7_q7Kqdw`cAd4;Qn;>ow}dV%w+epV(dM60o&CfLd? z0=I4R1Gbw2(9G7@V5&&-#Z*PZmHvUDMQTK4MW+_m_YB_G+VUzQ9i$%JzH8gOdQMg1 zP*|R)ARjis(9Wk9Po)oo(Cj@25_A)d2^_tJ>2>WCmWL=iNWupPM~)KR^a#5gJ43i^ zeO$A>oF`cgooka;^V*)VEt%t!6IW`q<8VJII=l00sjG^Nh~XM{8>9S=2!ML6Ib4|a z9hJ)3IMlX__i7fIZZEWEyS|Q=Twc(mm|~gqaGq57q8>3x)4C1)>QhBac4DrXiDTB{ zX!FHCtL4{hJ`;oT(-MFAUO(|~Ez%+i^FlD+T#SYF@d`@_XP4mk z{o%GvxsJ=@UWq5)TqXMA!cg#qnx6EWE5D4LC2SCXR+Uzih!h0Z47wGH?8MH4w-$l< z(EA*Dq6&1!uend^^Qwq_3Y)M}i;ia|0y8Q^>g7cA8!yrvhwW8lpsc;n*5Ke*JSZNj zyn$+;)7~(HZtb`v^NzV7tjNN3D;15FOR-Aw_wDW2bL@yI4%m#x|#9r+Vv=J(oL_Tg)0>MmMAOu`jJ} zQwK)6BRt->5{`9!=`i_g#(t-QFcW@VvtFz?i-Scx&}`5*VKW_bx2=y|Zuo=QseJ5g zNq^x>msV)6lUqWo>K+m@Sfk-qYt9@X&+1Xkre*hgrkNdGpW0Gd^PaPqy881e;YzzQ5DAt7Xo#+h%&gkkvz*oCXC= zx)x`9BoU5{JJfBpAT_UaMx=1_7r9ZndUwDT%dkwM30V>frQ^Sxk_HoBuzzp;h%y`B5Ix z*&T+F?9zDZ9ozKDjM_Tb;$p?^sh&wU(gSuETr(k(y+IYd##kXwf-vtdXL9X{k_Hn` zHRX(G#VP1FU$)Kr;FaWcXX3)$^|eOWzy&dP5ibtOh&}PXy6-&i8CL2-5#Lr-DKYGd z7?HAa*t3&0%%?lG6NCobclb|?sx}|iDk_;U%QJ)v6%lI^el1lEu+OLpH@s0ZPaAxYc6spSf@6|dv0v{q6?s^DQ=cdD4FQ5U zDL3mE+RnV@g3r$y>iHyMH!{*48~d^ki0`*&RPEk!%1Dwe=~MA_v!`c?X4Gq4czUE% z;hybJ)IB3L+eR&~#Aq1U#jYW8BT`y*9X48frstQMPeRVDyZn+ei*$7|m73=0_REgN zj%tspGBxl3=_Cbn&J^V;?COb}!_%HrmwZ~8Dy81ZDceK1^@wuNhm zr-sI8qWbbTb2H#=O29;snQ7jUMYC^zS{5Pc5LjY<#~wN1DU=-4)TRo@so2cBT2Yhr zQtjl?sp;|g^tj2ZFyToV|2P5t^>L)D0(0A#I435#F$qPo_anBS0Gb>vF~HL7@8jfw zPI4P0UOEIhQ$@@|%X-+?wdWI>pV*FEB#F77T-s2LKF!=?of<(wHFX)02yPJ0M-O)@ zDxk-#H?u0fX=ojLxvzWsEOttj38Xqjsdm`us$UgZ#RV_42#yRPm1Zc@ooMMxOkwAF zpU^1}I~BY9zEGBs6_NhLC^4yVIJIRd%z$&EAYS+RN@87n4{S*7`4~|`#$q1i4d@0R zt=RJ59=yAf!g2MaMqjheO+`wq<5XTWo~@{i+i_#%0HdPHK7`^0fLejICN3S3`FyZT zeCv%AXvdiJh~q#Ldp@W?WBN=Q`3utmtFH}R+h%B*o$y8S;4%KiM^l*z&5ZFg?rvxe z0Xjdrx5rFcIDn(q>(!Tmew~EYRIj%jBsRhc3Rd4`G&BW?zELx`XgLP3N0moAjG!P( z2z-vZUJaV(f1RAs8W)_Wqu1Lsw>MjPk}4m#Jzkx6=R-Qd({l78N)~-4y@K(@%5%v% zLjMC^a};Rja!S$4)H__UGpRaB_j)xy?+;FH^T#)Jh+n2Z$;i71>GH->ho28bw&-)` zt`Yd2;AKPK>leIkxXzTxXmvhjQYi!yZBGZR8@q&-F-8&|uo;g&A#c=bo%u|F?#Jph zvOaN*DOmM-D7ok2)3@a3s9|E!m+mOXWdq*fSJr$@by|!%<2c25#MeRneIjZm+QCjG zArL^nCe=FO?2pr3uDJM-NxDhSmbou4-ha!ncc+3Xlt$&Jv!0?5sOcgjzYL zy1(Ag4KIOyXP5@rhM?bDbfW+4^lmMO`kp1^#Ys@ygm%!%?IB(;b+iDAAxp7Oiw5f} z(b02jP<@6dEv~}d?qN0q{9a8mLVYd7(W|8AmezvT91-OrOJRj8`A}@qA62w3a9eJq zp?b0t^#_Q2V9->yb%fK#c}&_Od&NEL4K@gj7jpEAz*0HupIlWUGcgCqK8%&JD$s8F z1#)+4v(g?!UD}Uv&F5ZGyMyC(jIu`ScFqiDW8C4fZ9Fbro$0Qv#7{xItcSh|Ix81V z-|fg0lU%mg&#dFxMBDD$+`m?8UAfi*2qcvy`ljHwHTb2`A}wp;NP3h#OY--aJ?HIT z&JkWTFglY&E#8M}OHH%6Lu7=&f7nilM)TM#lKO76W%b$1`!a?_EHYDvNbHUu*~lN?=5fi3&)H4I)x%{^W-hy)OlZ^KR6P#xV{ zFIjYQ_x-J8%PP|+%3nQMan}=vcY%buZn>b)Av|@IF zP7-sE0WE-8-8{0*w+hYApxIchwS|5!ki)~XTS0w;?6CmF>Cp~mYr@AT%`Xk69OpSR zqmz-NPdJ;BT8VZ^q*Z(y@>;0%K+e@>&06tL$EX8E+3fY7tfPEwa%y+Ln0ZTuvhGXl zXE(WGsbB={+Ht~5T23y0jXUYlxCPPA7Wm}Xi^LOejf}i&E#b1@BLc@w8ouTwa7{C^ zoqRyP#~tghmQr@>5_(w%My*)^za!Is7Jp}%aAW66;f5{KJ(K3kPIg_m?)vRcZ8s7` zE~~RMX|Sl{m>`0Dt-#Z%UJ#nQ{=(%sjf+IhQc$xsNh%B|XUML2v^|PWqCh05wLLT2 zCh4GqGZii*T3iSz=QyXYKvX#!_44dn*>H#cD8CMj{73Zx__p0rNEZW4lyHuxFyiYR z7rCxen{hA0Fo;}`S$*_^?Y#P9Uq;kW-VMM>sEkybcL^}~pf67tOK8Y} z6wp+x?e3XuFe|eYDD8^KaIKNs(?Q^ z{5ttNBBk>6VEzmlG~D%|Xujc<>@_iHf3hmdH|N}7M+n>JB(CHnyY)jTwL>&bnwR)$ zaA{UU-E}`VS5)FVhG`jZWR#A1N=v_tlN4oXC2%7exH!xEX>zn1&S;|%d;NQSF)6$` zb;b&`TNmgu=03}zn3jq-M>Si6>oI8&P<}c7q1{Zc#a6S8nwqjwzxIvXh~xlQ?^=Z- zJwB|T^JQapjJ_a)r69~~;n>EM1KpJAt@>om4g?Ns@&cTy(CKsEdI_do0lC2nTm6h!lA-;cH2*k6pGIUL0E4EnFw<+qkVHuj-zYYsLhwc@b z07I~>r@P}oumS|HHD1cCJ6jtk23k9Pxz$BYES8y36)h7}kui(!%S1rYzm+H zOvC?dBkg7B2_I~DbvNZ<5*v3w{BsC*fZm-3UPP=@c=T1!cZH`?>qyIjBPK|=vl?lT zrnah{H%BDpo%a;$=p}7!7&5dU)z>@&yQba;Zs2;421?Og4j-sT+So9!-w^Ea>~=Zm zf6AVm&YG)xubgZWLKu?12|HgbMq1iZai1j*XL~&titKze#Y$@E%aicTHn#Rw3f_5C zk2RsfVjA58S)nM1a(t`)2|&zLMn%AWfQZ0x)T~ZXO-wDy4dugEmwnkHP_1*jBqej` z+&WJ1PWP$O9=*>9e)wo!%BzkgQXMg;p;hz~K?74dO&!J59sUxi)sSsIVmv4-OM%depm%P+`HT*1=f z9~GlVfpN|qA;-6FJTY=^lBs?Z-rcWTzYL8IG*-PA4X#|oNHD3R-bIglVl#TR$}A9= zYGqEsxj{7bdMtF|)OUA&P=@y)ND`Un+e9{F*(kJ)ya-olFthOd<^s0zAg3EF(Oh;) zdDf1;W`Vq{wxS_r)UK4R%&>Q}S1%Ol@R{#**|l%D58n$QlC5)k10>Hk*9A@v?xG3L z+dbchzzcW;+G}=bNGu2li-*9=|L#V648#DLf*-xUKY|V3>*#{k_)vU=+j8SCm|Gk? zfI2RI%pYtlfqr(|2kFuFd_Xj&oe4&N1Hb|~-_qNvRQcmt+wgp4zx^h^7PADEP+R>FE;-60y zVTbKn^fz@h2GK?sCZAzodDwp`WR+EDj4*^8tE>FFK6v*}fuNb}^QAntM7BTIckQUtVEo{2qB}=E711O!chh4@HpyUty^V{9Jt0C`+OwJURBVFtJBq$7X7 zQISctvz(7(Ad*(eB)v*a!^Aefy|w#94$l~Rvm)m2($eMP%E`|@D{4vc!|@nme?~>` zfL?P&q?b>o&PhXB7fJ!MuSR3gFx?@@eC9BJmp(9>KSE1_%?t7{>_@jr3N-Gs$7=VK zrZD>|v%$9&9_sVaoC7r}MXlZ6=yc@7U@=yY>pZsJo6Db+!1$mqNaXNE=!Xb^qfydl zB!l+(LL!V4;$VIpB12JmgbaSp{G4_ZgtbdErB?o!{RoKwOraqMT&6g~hAV{?M1Q#X_7OG0n8pD{1rTCH5HQ$>6UoyWM+1*>HI(sLEB7^x=A6=EATBGrrOsF0$lx3ymR&zj z^5|U>gj`zoJ#V(iR+O41E4C73n!>cv;kg+@3b{Z{7qxiI$cd`-4s5DJUZ5ts_X`M5 zFH)7SV6j@!HrgC2G;gYsnu6d{NeI#|H|P89LtJy;87H zEV095NR#fuPX`*gg3~ym99IoCeW%;LH1;F@9%Dun&RgAtJ^bnn*+r+^s~B=K*%6Uc zKKhQ7<Y~+#2a%Xsu#U++vhyrjp`@?7il|O+P&B`^%R3_D;=LFV2&$ zT=Lh-xApi-xGg-Dz62%KbzCB|(L)y@`B~8Z5bodaW8~_c*GSSAcfU3vV+o=s?3zIBw}0V?$jy0US1d zH?XRe0SIYcWwvse>&s$qDDm!=03k1u!+ujWEcarZZAA+t z9jEi^>yweXo?}n;{)p|tOwK7>3aewC^Py}lScNNv4{uCKOE0binefm+44Fre z#k|ZVUY}Mi=ig!Lty5dsWYqeh7WcqAWNP-m&fBu~VvoZ`o6>HWhT9{;znCI`%S_@t zgsznfGOUeD@D3~AzkJnQh@enK>C!6LZ^gxX6wm4$Q)`)OxJHkbtiIH||1D;%{pkoy zTz-Hx!C;?k!AFs$YdWYCpI+1!4;{0>)Y$+n@KtG^<15)PI)S)gHcY3+iE5q-1%Qf;pB@(VUV2=Z}U z)*QM?)gd7uy5S$k1riDy;=gAlJPginJ*fq0DM|5fB44*!`{@Ov`CPwBtH z-hWR=_=OYrFF5}tIpP0P?(u!uuQK#-_)q12r7HYX?LU(M{%#`FLs$M2<@eNu|BmyR zyzr~={Tt5TQW^d`(%%s source lines ErrorFileIsInfectedWithAVirus=The antivirus program was not able to validate the file (file might be infected by a virus) ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field "%s" WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be choosed by default until you check your module setup. +ErrorDatabaseParameterWrong=Database setup parameter '%s' has a value not compatible to use Dolibarr (must have value '%s'). diff --git a/htdocs/langs/fr_FR/errors.lang b/htdocs/langs/fr_FR/errors.lang index af2de5b0c51..53b5e6c7f30 100644 --- a/htdocs/langs/fr_FR/errors.lang +++ b/htdocs/langs/fr_FR/errors.lang @@ -70,3 +70,4 @@ WarningsOnXLines=Alertes sur %s lignes sources ErrorFileIsInfectedWithAVirus=L'antivirus n'a pas pu valider ce fichier (il est probablement infecté par un virus) ! ErrorSpecialCharNotAllowedForField=Les caractères spéciaux ne sont pas admis pour le champ "%s" WarningNoDocumentModelActivated=Aucun modèle, pour la génération de document, n'a été activé. Un modèle sera pris par défaut en attendant la correction de configuration du module. +ErrorDatabaseParameterWrong=Le paramètre de configuration de la base de donnée '%s' a une valeur non compatible pour une utilisation de Dolibarr (doit avoir la valeur '%s'). \ No newline at end of file diff --git a/htdocs/lib/databases/mysql.lib.php b/htdocs/lib/databases/mysql.lib.php index 46e18e01fab..3dba903229a 100644 --- a/htdocs/lib/databases/mysql.lib.php +++ b/htdocs/lib/databases/mysql.lib.php @@ -1155,6 +1155,47 @@ class DoliDb return $fullpathofimport; } + /** + * \brief Return value of server parameters + * \param filter Filter list on a particular value + * \return string Value for parameter + */ + function getServerParametersValues($filter='') + { + $result=array(); + + $sql='SHOW VARIABLES'; + if ($filter) $sql.=" LIKE '".addslashes($key)."'"; + $resql=$this->query($sql); + if ($resql) + { + $obj=$this->fetch_object($resql); + $result[$obj->Variable_name]=$obj->Value; + } + + return $result; + } + + /** + * \brief Return value of server status + * \param filter Filter list on a particular value + * \return string Value for parameter + */ + function getServerStatusValues($key,$filter='') + { + $result=array(); + + $sql='SHOW STATUS'; + if ($filter) $sql.=" LIKE '".addslashes($key)."'"; + $resql=$this->query($sql); + if ($resql) + { + $obj=$this->fetch_object($resql); + $result[$obj->Variable_name]=$obj->Value; + } + + return $result; + } } ?> diff --git a/htdocs/lib/databases/mysqli.lib.php b/htdocs/lib/databases/mysqli.lib.php index 3e66d347cc0..953f468d12a 100644 --- a/htdocs/lib/databases/mysqli.lib.php +++ b/htdocs/lib/databases/mysqli.lib.php @@ -1167,6 +1167,47 @@ class DoliDb return $fullpathofimport; } + /** + * \brief Return value of server parameters + * \param filter Filter list on a particular value + * \return string Value for parameter + */ + function getServerParametersValues($key,$filter='') + { + $result=array(); + + $sql='SHOW VARIABLES'; + if ($filter) $sql.=" LIKE '".addslashes($key)."'"; + $resql=$this->query($sql); + if ($resql) + { + $obj=$this->fetch_object($resql); + $result[$obj->Variable_name]=$obj->Value; + } + + return $result; + } + + /** + * \brief Return value of server status + * \param filter Filter list on a particular value + * \return string Value for parameter + */ + function getServerStatusValues($filter='') + { + $result=array(); + + $sql='SHOW STATUS'; + if ($filter) $sql.=" LIKE '".addslashes($key)."'"; + $resql=$this->query($sql); + if ($resql) + { + $obj=$this->fetch_object($resql); + $result[$obj->Variable_name]=$obj->Value; + } + + return $result; + } } ?> diff --git a/htdocs/lib/databases/pgsql.lib.php b/htdocs/lib/databases/pgsql.lib.php index 9061d172a0b..53b302a2566 100644 --- a/htdocs/lib/databases/pgsql.lib.php +++ b/htdocs/lib/databases/pgsql.lib.php @@ -1221,5 +1221,25 @@ class DoliDb return $fullpathofmysqldump; } + /** + * \brief Return value of server parameters + * \param filter Filter list on a particular value + * \return string Value for parameter + */ + function getServerParametersValues($filter='') + { + $result=array(); + + $resql='select name,setting from pg_settings'; + if ($filter) $resql.=" WHERE name = '".addslashes($filter)."'"; + $resql=$this->query($resql); + if ($resql) + { + $obj=$this->fetch_object($resql); + $result[$obj->name]=$obj->setting; + } + + return $result; + } } ?> diff --git a/htdocs/soc.php b/htdocs/soc.php index 4d3282a72c7..f0a6e967912 100644 --- a/htdocs/soc.php +++ b/htdocs/soc.php @@ -294,40 +294,47 @@ if ($_REQUEST["action"] == 'confirm_delete' && $_REQUEST["confirm"] == 'yes' && /* * Generate document */ -if ($_REQUEST['action'] == 'builddoc' && ! is_numeric($_REQUEST['model'])) // En get ou en post +if ($_REQUEST['action'] == 'builddoc') // En get ou en post { - require_once(DOL_DOCUMENT_ROOT.'/includes/modules/societe/modules_societe.class.php'); - - $soc = new Societe($db); - $soc->fetch($socid); - $soc->fetch_client(); - - /*if ($_REQUEST['model']) + if (is_numeric($_REQUEST['model'])) { - $fac->setDocModel($user, $_REQUEST['model']); - } - */ - - // 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=$fac->client->default_lang; - if (! empty($newlang)) - { - $outputlangs = new Translate("",$conf); - $outputlangs->setDefaultLang($newlang); - } - $result=thirdparty_doc_create($db, $soc->id, '', $_REQUEST['model'], $outputlangs); - if ($result <= 0) - { - dol_print_error($db,$result); - exit; + $mesg=$langs->trans("ErrorFieldRequired",$langs->transnoentities("Model")); } else { - Header ('Location: '.$_SERVER["PHP_SELF"].'?socid='.$soc->id.(empty($conf->global->MAIN_JUMP_TAG)?'':'#builddoc')); - exit; + require_once(DOL_DOCUMENT_ROOT.'/includes/modules/societe/modules_societe.class.php'); + + $soc = new Societe($db); + $soc->fetch($socid); + $soc->fetch_client(); + + /*if ($_REQUEST['model']) + { + $fac->setDocModel($user, $_REQUEST['model']); + } + */ + + // 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=$fac->client->default_lang; + if (! empty($newlang)) + { + $outputlangs = new Translate("",$conf); + $outputlangs->setDefaultLang($newlang); + } + $result=thirdparty_doc_create($db, $soc->id, '', $_REQUEST['model'], $outputlangs); + if ($result <= 0) + { + dol_print_error($db,$result); + exit; + } + else + { + Header ('Location: '.$_SERVER["PHP_SELF"].'?socid='.$soc->id.(empty($conf->global->MAIN_JUMP_TAG)?'':'#builddoc')); + exit; + } } }
".$langs->trans("Browser")."
".$langs->trans("UserAgent")."" .$_SERVER["HTTP_USER_AGENT"]."