From 048f8e1f341fce0d68cc64cbbd10b29907b4a50b Mon Sep 17 00:00:00 2001 From: Dany De Bontridder Date: Mon, 31 May 2010 13:52:09 +0000 Subject: [PATCH] Merged revisions 3246-3260 via svnmerge from file:///home/developper/svn/phpcompta/branches/rel510 ........ r3247 | danydb | 2010-05-26 10:47:02 +0200 (Wed, 26 May 2010) | 4 lines Before the fix: FIN ledger numbers the operations even when there is no receipt nb ........ r3248 | danydb | 2010-05-26 19:28:36 +0200 (Wed, 26 May 2010) | 1 line Problem with the creation of document (need verification) ........ r3249 | danydb | 2010-05-26 21:02:27 +0200 (Wed, 26 May 2010) | 2 lines Check return value for Acc_Tva->load ........ r3250 | danydb | 2010-05-26 21:07:49 +0200 (Wed, 26 May 2010) | 1 line Problem with the creation of document, bug due to a confusion between MY_TVA and MY_TVA_USE ........ r3251 | danydb | 2010-05-28 10:31:02 +0200 (Fri, 28 May 2010) | 2 lines Account Export CSV : Add the label to accountings ........ r3252 | danydb | 2010-05-28 10:31:35 +0200 (Fri, 28 May 2010) | 2 lines typo ........ r3253 | danydb | 2010-05-28 10:33:11 +0200 (Fri, 28 May 2010) | 2 lines Account export CSV : fix number of column ........ r3254 | danydb | 2010-05-28 10:34:03 +0200 (Fri, 28 May 2010) | 1 line Account export CSV ........ r3255 | danydb | 2010-05-28 10:35:14 +0200 (Fri, 28 May 2010) | 2 lines Balance PDF : bug column D & C are inversed ........ r3256 | danydb | 2010-05-28 14:12:31 +0200 (Fri, 28 May 2010) | 1 line Fix bug : for quick_writing when a row is added, the value is duplicated ........ r3257 | danydb | 2010-05-28 14:43:42 +0200 (Fri, 28 May 2010) | 1 line Fix problem with max article ........ r3258 | danydb | 2010-05-28 14:45:57 +0200 (Fri, 28 May 2010) | 1 line Bug with predefined operation : the nb of item was incorrect in input ........ r3259 | danydb | 2010-05-30 17:11:47 +0200 (Sun, 30 May 2010) | 2 lines Fix small bug : make_list remove bad heading and trailing coma ........ r3260 | danydb | 2010-05-30 17:42:45 +0200 (Sun, 30 May 2010) | 2 lines Avoid duplicate in table fiche::HtmlTableDetail ........ --- contrib/document_test/facture-calc.ods | Bin 14420 -> 16382 bytes html/js/acc_ledger.js | 6 ++++++ html/poste_csv.php | 4 +++- html/print_balance.php | 3 +-- include/class_acc_account_ledger.php | 6 ++++-- include/class_acc_ledger_fin.php | 5 ++++- include/class_acc_ledger_purchase.php | 7 ++++--- include/class_acc_ledger_sold.php | 9 +++++---- include/class_database.php | 1 + include/class_document.php | 13 +++++++------ include/class_fiche.php | 9 ++++++--- 11 files changed, 41 insertions(+), 22 deletions(-) diff --git a/contrib/document_test/facture-calc.ods b/contrib/document_test/facture-calc.ods index 97a96b0eba83f72eb376ae741c07335c0df53459..2006f7da42dfb0e19a9c242215a83e7c74b84920 100644 GIT binary patch delta 14497 zcmZX51ymi&vNj~RLvVM8jk~*BfZ*;f8<&j*cXxMpcL?qh+%336@IU9id+xdK{j=80 zs;c>_dZuSqf73lx3l8rfBqiC;5a?iFFkoN--`n}(kmRBNEhbQb6Jt9A4S_DsMutv+ z|G~k)!2Ay`UFmOJ+%@2D@sA7he`I}d*1zSrYvP19aOD41FaJ>!AU|<{{v8+Wzc%9jgBDE*S8~xbxRFo9PYADhfpi0I z0GuW&8Nd&tS@pRHXc@8uRkb{wDj`Q$hI@2P#dzO{3MyQ53?tkaC^J}+f)PWsL6br} z+=L|PqNbk%CNBnTIdG|DuDD6MR%yHYq5Qc>s%crTF;UwN9AkFFq_2eJ&ZGkV(et8gn@Z|5iU3BMhBW-K~-a$DVgc+t4{KQq-1&!ncT8)LrwN|mRq67ePTZlok|=8y>1Wel?4dr)WgrpDu8l}+ z1ecUtIr+z{#mN$)>O~&~1_yJsjiaC4umgy02nsVY6h@Mx%@BTk3!X}C)3ncaWg8#P z@oPZTzI9*rv|_fXG8VR8T-!(>U3SQpW!ACvF&H(quwfHA?mRG1I_8*03g13oIG7xSC51}(Bd8v^|5?q6cN z7z!jJ2rr0}32ObE!~o9QX(pm&K_Y$9+MGJW5HTd#4jitexknZ&`4If2X&RJnig{2+ zimtUmH(z^~s_f+9K;l1x0&1tCEBmwz?UjCxGTtzCbQ^y1+EHe=3d0~YWlQ;n@*X-A zgvBan0>G}VP11GeN|{RBA08xsL2jo0%GeMr3u}p-YF**z5*F8@F_xFlQEym|GS1C2v%cfjF_hETaf;GIvkC!ZKjX9*X@D(G z2jNl;iOJ3)nmkVm;Jd*BUH275u6X$}f&-B`AX(DwFwBZAx+mg%<&V9yg<;+~{350~&U#;`wny5L$;o{a)wCEsb zpLBkv$jz6DJ>H0GmFjpFg4-hyBQ8)3$+L+&R5YU{G4KZIsD=_+94;b}OeI>1yN2Xo zUq`l#`ru5Ck>Ze84}M=Kxs31l)A?|KowRlg%XUXJl7b>n+Mxv-GBrFa6jtr@aUGdS zM>U|29F&FCJD*YIMS$pzanU_UuRQokJVB%;{#4+2Rn+#Y9gUx~ZRc;fq`mm8j;2i8 zvSeUW^}6c)1V`C(`_TNh0ZNB+@)LiP@(%~veS|8*bMU+uvG1+j(~Es5zb?>3oP06qw?7cD;K8=)?Qpe(wdVrgb*Y3K0ueLB zO3_*-jUu?wv|)vu3q9<-`?!7q@o$xX=2_F9U9Fl|>VHyquhE7=`%oB|5fRpa>MbSD+|99ki!m-;rh0;^SJiGi-ine9Adp+Ztm(AtlStxa5oL zn<+P(GPl#cufr5x^!a3>^WafxVC8{6cW4RJv%KLDkE-7}JHO^(Gd=js$L=j0e{gjH zNdVBrNftI>Zov%AjM&+Ca=kabGgXo1c2TJ><7RvDvyl#o52lA-_GBI>Xayk(uIs!E zSMS`5vrEQyefcp%hAk7!FPS7hH@Sa%;Qny%JTE-q-6*vxJ~GS&)7aK(6&jY82KiNp zlKUD9=j=rZ$wI$`B6nB&M3AsHO!)nIYgRqe8&AeqiS3cFHJ8-Gb;ldDoi2H|3xR4N z1DxHfg6Rw?VEp}5y2|W@Sp;egZ@?wG3FYY4)te698vv}?rrNKy(BkE1Rq4mBi+VvZ zrE#ZP-KlibtduU}>EOQhvHTie%oUoLA>hE9?{69uRb&QJo>3t_Fxqw?YlB|RxZZUD zvUUml`sK(JRIw8>UV+A{Sc3BDaFN2rvJK2NXm%VXk5nIsFia#kT@3<&4&X6_9RjxX zvY`UDA^KngzCcjHD4=8#a|t`x4@CTbwtoy4P43G7gZsz!Z^yq3U6=s4{|@%QL9I)> z;(wY2{of}4Mm=hEQvbP(bvoi!8AA8vDUFzn#@~eRIm9C^wvpFY029&U~+!zBPmSkmMOUT0ozRi zk?phm@G(gsNQ)vU+4yHyege*2?639r+&E8T#s4ALHU#h_DVl1$R;KuQox}%rSLs?J*&ONBhe^VoN9$- z70VlcZWhnRAU?Bn%v$WTbo{C-`C0PpOWVaw z4G%=j zdLF*78SX?IU8qBErcfic;P6PNXt$i^t|_ApbgHv%cV6-d7(0UUbVKX@qKY=_2TipD zZYEsCr5G&sIWq)oC$>rk6RlCQvpzn7; zfdfvV(rat5O(n-~Xj%h!t3J>yV{O&E9E`W1qdiBG(77hnv{YqloS<&U%ssoKZz}kc z^$eC$$(HlTcMaLF4A}yq*El6526tLR9fUGtA?P0g<3)O$+6N6FG)LQ>BI2U^@Uu$1 z?CphS1Abf!krhK*!G4_S95)Bk0^24Xy3Q{Ni7;@QWV9ejF$q(!Q>zHb#r)j)1z!kk zJYtj8;gBgew&_d$#(Tyh2gWa_&y%I}y4w)C7xEX7PXr(88urB25+3YKA50XNd0Yfe z((xTqd3BjJtK;RM(O6{ZAb9mfl_BRJ$~9l9h~=sZ>ra>WO+Nk1jYa?I=ZG-_AqpKR zeA~n?D3fUDZ|vV7zXiwFzs=_?k}jKBj)wH}Mm!e3O092!bKw>b1~m8$p~TVO_*Ynv z9gKUN4EWdQWAhH{i(cP=dA(k?5iXWgJjWP-;>N@b5G;G2)Qk^MmN=tZ!~+__xN|lIWHt_2NS=osG|Bf z(1t%wV+5^ZKm=6pLc_x_W-$lt3VK6%(fkplSl#Ujz+kGU#bfQUgzZW_VoRy<6N3m% zVM5Rcb@KF*%kB=nanh;+9rG-|antYQbt0P7HwI%tZeuLu*t+o=fU*9j_f(|r`(?`> z@4Zj#zFxM%#aum69+v63aZE~u#rp5y{Sw=%c9W_t5HruYqat|-<6HT+FjXUo&wGl2 z5p3iEvx(SpQ#go{#JsrWZj7z5-Vn+~`Gl$;woCY~K|^?L%_JIz1vZ_cD=L{!RAuv+ z>OHu>vb#%mZ{Yh*d@ctd4hI>;WnuiozET~1S9**J{b|}ljMFD0rx8dqf@PSTzHqSrF$>mQ3fLgAoPWC z|1)#=iQ)U+1}n*453dV3wfbM9M+0V)7TNhU(|KpTBHQp}BB7_yo7&FX8+yVhipr&8ni z?&RZydsH(aFw$3z8>+SN}ZC>2lO}!)WfFH z{r>0}e~mP9kz&Rc);JA3yZ>|lE+9qTVC5mr2^q1*mF=|$_I>Lwj+xhk>EwU{16w2h zn`8c7q+%|=hIEAh1N&?LvseXYYYH^{YlVnU@XvwR)wCh?3kNvpk8J16WA0>PV#7~r z0R%em004g|ky3?!=0Jd=&rH=wF`t4o>z~rp7=3D+`k?GYh$h zi=~YT12-ENYl1LF7%DRp0~0#~3x_H*7Y`d74-;#`8U`^qTf!>_0EUTKikVfOg(HC( z6Bpman8(=3)DURzBw%7_=RwQ|_{WlPfGL9Y=dS+hG9G)QznWt(ws)}u@{=+p*kMv8 z*kXDn&|}d-|9d?yK@W=>)a7QXk+G9(ORYrBFhlwyuT}JVH*weQyNLhxg;oFrjgn44 zM~AEfjaGOEgj8PZm&)HW59?{H)9buP?`fksfN9^Kn_gYkHE##5_gUqNC5e!sZUhIGvgkT z|7cQsyeLLZrcfO7O_zV5F(e?wVkqUA82Uyx>os|P{QAhe5n8{6Pkl$RBpT9Vp<2y@S zA|!qXQt@$BWuXnYipsro3^+CMJaDa^<k0rSdVmZM@X#k53F`jIP{brfhV0 zP_(Klp0d`J5>9BsRJyfYisO{P6@Pvnfchf;aXLit%tpkj8J_nu4I?CfrGBewV0 zOyZ{9I?;v)o&?x}c90qbi;SX02?@ExQY8>obClHq9hrf*<2cO!^NqFd8<)5nea3g# z9@U)5YPqTz(2nFJUv^|O<8(B4!*7&ezq;J^T{rT;3zD_vy6K=4jh%j$ZHtI9^ajYi zs^pt%-|LJR^5<*Q;#&iihxwT`vi5c~@nH^XENt?9-)f+WPk&x)@`+MHDZg0K@mN$oqY3$+(P=>p~6&zEK^8eG2{;Q2Ltm$Jm3{eNBLh>SRTr@e}c} z=I7W0IXo;a35)RtqZp0h-P)3_ z3QmUTu<#`^Z3NL<{M;fFA6m}3O+?vu|5<7FL@`(I29Audng-2e2G@hz3eJoImn}lC zDv}&i&^gl{qI#OZ;>EkV-KG>v&F2JBB_i}i_RK<|Im

vxsxc*#$?Ax2e?8T57GB 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['jr_id']; $result=$op->get_jrnx_detail(); foreach ( $result as $r) { - printf('"%s";"%s";"%s";"%s";"%s";%12.2f;"%s %s"', + printf('"%s";"%s";"%s";"%s";"%s";"%s";"%s";%12.2f;"%s"', $r['j_poste'], + $r['pcm_lib'], $r['j_qcode'], $r['jr_internal'], $r['jr_date'], diff --git a/html/print_balance.php b/html/print_balance.php index 5592af846..625cae233 100644 --- a/html/print_balance.php +++ b/html/print_balance.php @@ -1,5 +1,4 @@ SetFont('DejaVuCond','B',8); $pdf->Cell(110,6,'Totaux'); $pdf->Cell(20,6,$tp_deb,'T',0,'R',0); $pdf->Cell(20,6,$tp_cred,'T',0,'R',0); -$pdf->Cell(20,6,$tp_solc,'T',0,'R',0); $pdf->Cell(20,6,$tp_sold,'T',0,'R',0); +$pdf->Cell(20,6,$tp_solc,'T',0,'R',0); $pdf->Ln(); diff --git a/include/class_acc_account_ledger.php b/include/class_acc_account_ledger.php index 490ba8643..f170b7ef5 100644 --- a/include/class_acc_account_ledger.php +++ b/include/class_acc_account_ledger.php @@ -105,8 +105,10 @@ class Acc_Account_Ledger { "case when j_debit='f' then j_montant else 0 end as cred_montant,". " jr_comment as description,jrn_def_name as jrn_name,". "j_debit, jr_internal,jr_pj_number,coalesce(comptaproc.get_letter_jnt(j_id),-1) as letter ". - " from jrnx left join jrn_def on jrn_def_id=j_jrn_def ". - " left join jrn on jr_grpt_id=j_grpt". + ",pcm_lib ". + " from jrnx left join jrn_def on (jrn_def_id=j_jrn_def )". + " left join jrn on (jr_grpt_id=j_grpt)". + " left join tmp_pcmn on (j_poste=pcm_val)". " where j_poste=$1 and ". " ( to_date($2,'DD.MM.YYYY') <= j_date and ". " to_date($3,'DD.MM.YYYY') >= j_date )". diff --git a/include/class_acc_ledger_fin.php b/include/class_acc_ledger_fin.php index 8fc4542bc..d5e4b2988 100644 --- a/include/class_acc_ledger_fin.php +++ b/include/class_acc_ledger_fin.php @@ -706,7 +706,10 @@ class Acc_Ledger_Fin extends Acc_Ledger { $acc_operation->mt=$mt; $idx_operation++; - $acc_operation->pj=$e_pj.str_pad($idx_operation,3,0,STR_PAD_LEFT); + if ( trim($e_pj) != '') + $acc_operation->pj=$e_pj.str_pad($idx_operation,3,0,STR_PAD_LEFT); + else + $acc_operation->pj=''; $jr_id=$acc_operation->insert_jrn(); $acc_operation->set_pj(); diff --git a/include/class_acc_ledger_purchase.php b/include/class_acc_ledger_purchase.php index caa9ed53a..a6b6455b8 100644 --- a/include/class_acc_ledger_purchase.php +++ b/include/class_acc_ledger_purchase.php @@ -152,7 +152,7 @@ class Acc_Ledger_Purchase extends Acc_Ledger { $owner=new Own($this->db); // Check if the given tva id is valid - if ( $owner->MY_TVA=='Y') { + if ( $owner->MY_TVA_USE=='Y') { if (${'e_march'.$i.'_tva_id'} == 0 ) throw new Exception(_('La fiche ').${'e_march'.$i}._('a un code tva invalide').' ['.${'e_march'.$i.'_tva_id'}.']',13); $tva_rate=new Acc_Tva($this->db); @@ -887,13 +887,14 @@ array // Record the current number of article $Hid=new IHidden(); - $p_article= ( isset ($p_article))?$p_article:MAX_ARTICLE; + $p_article= ( isset ($nb_item))?$nb_item:MAX_ARTICLE; $r.=$Hid->input("nb_item",$p_article); $e_comment=(isset($e_comment))?$e_comment:""; + $max=($p_article < MAX_ARTICLE)?MAX_ARTICLE:$p_article; // For each article //-- - for ($i=0;$i< MAX_ARTICLE;$i++) { + for ($i=0;$i< $max ;$i++) { // Code id, price & vat code //-- $march=(isset(${"e_march$i"}))?${"e_march$i"}:""; diff --git a/include/class_acc_ledger_sold.php b/include/class_acc_ledger_sold.php index 79160feef..ffe0f2389 100644 --- a/include/class_acc_ledger_sold.php +++ b/include/class_acc_ledger_sold.php @@ -154,12 +154,11 @@ class Acc_Ledger_Sold extends Acc_Ledger { // Check if the given tva id is valid $owner=new Own($this->db); - if ( $owner->MY_TVA=='Y') { + if ( $owner->MY_TVA_USE=='Y') { if ( isNumber(${'e_march'.$i.'_tva_id'}) == 0 ) throw new Exception(_('La fiche ').${'e_march'.$i}._('a un code tva invalide').' ['.${'e_march'.$i.'_tva_id'}.']',13); $tva_rate=new Acc_Tva($this->db); $tva_rate->set_parameter('id',${'e_march'.$i.'_tva_id'}); - if ( $tva_rate->load() != 0 ) throw new Exception(_('La fiche ').${'e_march'.$i}._('a un code tva invalide').' ['.${'e_march'.$i.'_tva_id'}.']',13); } @@ -997,14 +996,16 @@ class Acc_Ledger_Sold extends Acc_Ledger { // Record the current number of article $Hid=new IHidden(); - $p_article= ( isset ($p_article))?$p_article:MAX_ARTICLE; + $p_article= ( isset ($nb_item))?$nb_item:MAX_ARTICLE; $r.=$Hid->input("nb_item",$p_article); + $max=($p_article < MAX_ARTICLE)?MAX_ARTICLE:$p_article; + $f_legend_detail=_("Détail articles vendus"); // For each article //-- - for ($i=0;$i< MAX_ARTICLE;$i++) { + for ($i=0;$i< $max;$i++) { // Code id, price & vat code //-- $march=(isset(${"e_march$i"}))?${"e_march$i"}:""; diff --git a/include/class_database.php b/include/class_database.php index b007df078..b8e5365fa 100644 --- a/include/class_database.php +++ b/include/class_database.php @@ -482,6 +482,7 @@ de données"); $ret.=$f.$aArray[$i][$idx]; $f=','; } + $ret=trim($ret,','); return $ret; } /*! diff --git a/include/class_document.php b/include/class_document.php index cffc94359..a8e34313e 100644 --- a/include/class_document.php +++ b/include/class_document.php @@ -656,12 +656,12 @@ class Document extract ($_POST); $id='e_march'.$counter.'_tva_id'; if ( !isset (${$id}) ) return ""; - if ( ${$id} == -1 ) return ""; + if ( ${$id} == -1 || ${$id}=='' ) return ""; $march_id='e_march'.$counter.'_price' ; if ( ! isset (${$march_id})) return ''; $tva=new Acc_Tva($this->db); $tva->set_parameter("id",${$id}); - $tva->load(); + if ( $tva->load() == -1) return ''; return $tva->get_parameter("rate"); break; @@ -722,8 +722,8 @@ class Document || strlen(trim( $price )) ==0 || strlen(trim($qt)) ==0) return ""; - $oTva=new Acc_Tva($cn,${$tva}); - if ($oTva->load() == null) return ""; + $oTva=new Acc_Tva($this->db,${$tva}); + if ($oTva->load() == -1 ) return ""; $r=round(${$price},2)*$oTva->get_parameter('rate'); $r=round($r,2); break; @@ -739,8 +739,9 @@ class Document || strlen(trim( $price )) ==0 || strlen(trim($qt)) ==0) return ""; - $tva=new Acc_Tva($cn,${$id}); - if ($tva->load() == null) { + if ( ! isset (${$tva}) ) return ''; + $tva=new Acc_Tva($this->db,${$tva}); + if ($tva->load() == -1 ) { $r=round(${$price},2); }else { $r=round(${$price}*$tva->get_parameter('rate')+${$price},2); diff --git a/include/class_fiche.php b/include/class_fiche.php index 880c484f4..e667f3444 100644 --- a/include/class_fiche.php +++ b/include/class_fiche.php @@ -888,8 +888,7 @@ Array return; } $qcode=$this->strAttribut(ATTR_DEF_QUICKCODE); - - $Res=$this->cn->exec_sql("select j_date,to_char(j_date,'DD.MM.YYYY') as j_date_fmt,j_qcode,". + $Res=$this->cn->exec_sql("select distinct j_date,to_char(j_date,'DD.MM.YYYY') as j_date_fmt,j_qcode,". "case when j_debit='t' then j_montant else 0 end as deb_montant,". "case when j_debit='f' then j_montant else 0 end as cred_montant,". " jr_comment as description,jrn_def_name as jrn_name,". @@ -953,7 +952,7 @@ Array return; $rep=""; - + $already_seen=array(); echo '

'.$this->id." ".$name.'

'; echo ""; echo "". @@ -965,6 +964,10 @@ Array ""; foreach ( $this->row as $op ) { + if ( in_array($op['jr_internal'],$already_seen) ) + continue; + else + $already_seen[]=$op['jr_internal']; echo "". "". "".
".$op['jr_internal']."".$op['j_date']."