55 if (
$Max == 0 )
return null;
87 $this->row=$this->
db->get_array(
"select distinct j_id,jr_id,to_char(j_date,'DD.MM.YYYY') as j_date_fmt,j_date,".
88 "case when j_debit='t' then j_montant else 0 end as deb_montant,".
89 "case when j_debit='f' then j_montant else 0 end as cred_montant,".
90 " jr_comment as description,jrn_def_name as jrn_name,".
91 "j_debit, jr_internal,jr_pj_number ".
92 ",oc_amount,oc_vat_amount".
93 " from jrnx left join jrn_def on jrn_def_id=j_jrn_def ".
94 " left join operation_currency using (j_id) ".
95 " left join jrn on jr_grpt_id=j_grpt".
96 " where j_poste=$1 and $periode ".
97 " order by j_date",array($this->
id));
98 $res_saldo = $this->
db->exec_sql(
99 "select sum(deb_montant),sum(cred_montant) from
100 (select case when j_debit='t' then j_montant else 0 end as deb_montant,
101 case when j_debit='f' then j_montant else 0 end as cred_montant
104 on jrn_def_id=j_jrn_def
105 left join jrn on jr_grpt_id=j_grpt
106 where j_poste=$1 and $periode ) as m
108 $this->tot_deb=$this->tot_cred=0;
114 return array($this->row,$this->tot_deb,$this->tot_cred);
128 with sqlletter as (select j_id,jl_id from letter_cred union all select j_id , jl_id from letter_deb )
129 select j1.j_id,jr_id,to_char(j_date,'DD.MM.YYYY') as j_date_fmt,j_date,
131 ,case when j_debit='t' then j_montant else 0 end as deb_montant,
132 case when j_debit='f' then j_montant else 0 end as cred_montant,
133 case when j_text is null or j_text = '' then jr_comment
134 else jr_comment||' '||j_text end
135 as description,jrn_def_name as jrn_name,
136 j_debit, jr_internal,jr_pj_number
137 ,(select distinct jl_id from sqlletter where sqlletter.j_id=j1.j_id ) as letter
144 ,(with cred as (select jl_id, sum(j_montant) as amount_cred from letter_cred left join jrnx using (j_id) group by jl_id )
145 , deb as (select jl_id, sum(j_montant) as amount_deb from letter_deb left join jrnx using (j_id) group by jl_id )
146 select amount_deb-amount_cred
149 full join deb using (jl_id) where jl_id=(select distinct jl_id from sqlletter where sqlletter.j_id=j1.j_id )) as delta_letter
151 ,jrn.currency_rate_ref
153 ,(select cr_code_iso from currency where id=jrn.currency_id) as cr_code_iso
157 case when exists(select 1 from operation_analytique oa where j1.j_id=oa.j_id) then 1 else 0 end as op_analytic
159 left join operation_currency as va on (j1.j_id = va.j_id )
160 join jrn_def on (jrn_def_id=j_jrn_def )
161 join jrn on (jr_grpt_id=j_grpt)
162 join tmp_pcmn on (j1.j_poste=pcm_val)
163 join parm_periode on (p_id=jr_tech_per)
164 where j1.j_poste=$1 and
165 ( to_date($2,'DD.MM.YYYY') <= j_date and
166 to_date($3,'DD.MM.YYYY') >= j_date )
167 and $filter_sql $sql_let
168 order by j_date,substring(jr_pj_number,'[0-9]+$') asc";
179 $bal_sql=
"select sum(amount_deb) as s_deb,sum(amount_cred) as s_cred, j_poste
181 (select case when j_debit='t' then j_montant else 0 end as amount_deb,
182 case when j_debit='f' then j_montant else 0 end as amount_cred,
184 from jrnx join jrn on (j_grpt = jr_grpt_id)
188 ( to_date($2,'DD.MM.YYYY') <= j_date and
189 to_date($3,'DD.MM.YYYY') >= j_date )) as signed_amount
204 $sql_saldo=
"select sum(deb_montant) as deb,sum(cred_montant) as cred
206 (select case when j_debit='t' then j_montant else 0 end as deb_montant,
207 case when j_debit='f' then j_montant else 0 end as cred_montant
209 join jrn_def on (jrn_def_id=j_jrn_def )
210 join jrn on (jr_grpt_id=j_grpt)
211 join tmp_pcmn on (j_poste=pcm_val)
212 join parm_periode on (p_id=jr_tech_per)
214 ( to_date($2,'DD.MM.YYYY') <= j_date and
215 to_date($3,'DD.MM.YYYY') >= j_date )
216 and $filter_sql $sql_let ) as m";
234 $filter_sql =
$g_user->get_ledger_sql(
'ALL', 3);
240 $sql_let =
' and j1.j_id in (select j_id from letter_cred union all select j_id from letter_deb)';
243 $sql_let =
' and j1.j_id not in (select j_id from letter_cred union all select j_id from letter_deb) ';
248 if ($this->
db->is_prepare(
"not_balanced_account") ==
false) {
251 $this->
db->prepare(
"not_balanced_account", $sql_balanced);
254 $ret_balanced = $this->
db->execute(
"not_balanced_account", array($this->
id, $p_from, $p_to));
257 if (empty(
$r))
return array();
258 if (
$r[0][
's_deb'] ==
$r[0][
's_cred'])
return array();
262 if (!$this->
db->is_prepare(
"sql_accounting_detail")) {
264 $this->
db->prepare(
"sql_accounting_detail",
$sql);
267 $ret = $this->
db->execute(
"sql_accounting_detail", array($this->
id, $p_from, $p_to));
271 if ($this->
db->is_prepare(
"saldo_account") ==
false) {
273 $this->
db->prepare(
"saldo_account", $sql_saldo);
275 $res_saldo = $this->
db->execute(
"saldo_account", array($this->
id, $p_from, $p_to));
277 $this->tot_deb = $this->tot_cred = 0;
280 $this->tot_deb =
$result[0][
'deb'];
281 $this->tot_cred =
$result[0][
'cred'];
283 return array($this->row, $this->tot_deb, $this->tot_cred);
294 "select pcm_lib from tmp_pcmn where
295 pcm_val=$1",array($this->
id));
299 $this->
name=
$r[
'pcm_lib'];
303 $this->
name=
_(
"Poste inconnu");
314 "select pcm_type from tmp_pcmn where
315 pcm_val=$1",array($this->
id));
324 $sql=
"select pcm_val from tmp_pcmn where pcm_val= $1";
325 $ret=$this->
db->exec_sql(
$sql,array($this->
id));
334 $ret=$this->
db->exec_sql(
"select pcm_lib,pcm_val_parent from
335 tmp_pcmn where pcm_val=$1",array($this->
id));
338 if ( !
$r )
return false;
340 $this->parent=
$r[0][
'pcm_val_parent'];
355 if (DEBUGNOALYSS > 1 ) { echo __CLASS__.
".".__FUNCTION__.
"p_cond {$p_cond}"; }
357 $Res=$this->
db->exec_sql(
"select sum(deb) as sum_deb, sum(cred) as sum_cred from
359 case when j_debit='t' then j_montant else 0 end as deb,
360 case when j_debit='f' then j_montant else 0 end as cred
361 from jrnx join tmp_pcmn on j_poste=pcm_val
363 j_poste::text like ('$this->id'::text) and
366 if (DEBUGNOALYSS > 1 ) { echo $this->
db->get_sql(); }
368 if (
$Max==0)
return 0;
371 return abs(
$r[
'sum_deb']-
$r[
'sum_cred']);
381 if ( $p_cond !=
"") $p_cond=
" and ".$p_cond;
383 $sql=
"select sum(deb) as sum_deb, sum(cred) as sum_cred from
385 case when j_debit='t' then j_montant else 0 end as deb,
386 case when j_debit='f' then j_montant else 0 end as cred
389 j_poste::text like ('$this->id'::text)
392 if (DEBUGNOALYSS > 1 ) { tracedebug(
"impress.debug.log",
"$sql",
'acc_account_ledger:get_solde_detail'); }
398 return array(
'debit'=>0,
405 if (
$r[
'sum_deb']==
'')
407 if (
$r[
'sum_cred']==
'')
410 return array(
'debit'=>
$r[
'sum_deb'],
411 'credit'=>
$r[
'sum_cred'],
412 'solde'=>abs(bcsub(
$r[
'sum_deb'],
$r[
'sum_cred'],2)));
424 $a_TVA=$this->
db->get_array(
'select tva_poste
426 foreach ( $a_TVA as $line_tva)
428 if ( $line_tva[
'tva_poste'] ==
'' )
430 list($tva_deb,$tva_cred)=explode(
',',$line_tva[
'tva_poste']);
431 if ( $this->
id == $tva_deb ||
432 $this->
id == $tva_cred )
457 if ( count($this->row ) == 0 )
468 $label.=
_(
"Solde créditeur au lieu de débiteur").
'<span class="icon"></span>';
473 $label.=
_(
"Solde débiteur au lieu de créditeur").
" ".
'<span class="icon"></span>';
476 echo
'<span class="notice" >'.$label.
'</span>';
479 echo
"<TABLE id=\"tbpopup\" class=\"resultfooter\" style=\"border-collapse:separate;margin:1%;width:98%;\">";
481 echo
"<TABLE id=\"tb".$from_div.
"\" class=\"resultfooter\" style=\"border-collapse:separate;margin:1%;width:98%;\">";
484 "<TH style=\"text-align:left\">"._(
'Date').
" </TH>".
485 "<TH style=\"text-align:left\">"._(
'Pièce').
" </TH>".
486 "<TH style=\"text-align:left\">"._(
'Code').
"</TH>".
487 "<TH style=\"text-align:left\">"._(
'Interne').
" </TH>".
488 "<TH class=\"visible_gt800\" style=\"text-align:left\">"._(
'Tiers').
" </TH>".
489 "<TH class=\"visible_gt800\" style=\"text-align:left\">"._(
'Description').
"</TH>".
490 "<TH class=\"visible_gt800\" style=\"text-align:left\">"._(
'Type').
"</TH>".
491 "<TH class=\"visible_gt800\" style=\"text-align:left\">"._(
'ISO').
"</TH>".
492 "<TH class=\"visible_gt800\" style=\"text-align:right\">"._(
'Dev.').
"</TH>".
493 "<TH style=\"text-align:right\">"._(
'Débit').
"</TH>".
494 "<TH style=\"text-align:right\">"._(
"Crédit").
"</TH>".
495 th(
'Prog.',
'style="text-align:right"').
496 th(
'Let.',
' class="visible_gt800" '.
'style="text-align:right"');
504 foreach ( $this->row as
$op )
510 $vw_operation = sprintf(
'<A class="detail" style="text-decoration:underline;color:red" HREF="javascript:modifyOperation(\'%s\',\'%s\')" >%s</A>',
$op[
'jr_id'], dossier::id(),
$op[
'jr_internal']);
513 if (
$op[
'letter'] != 0)
515 $let = strtoupper(base_convert(
$op[
'letter'], 10, 36));
517 if (
$op[
'delta_letter'] != 0) $html_let=
'<img src="image/warning.png" onmouseover="displayBulle(\'delta = '.$op[
'delta_letter'].
'\')
" onmouseleave="hideBulle()
" style="height:12px
"/>'.$html_let;
519 $tmp_diff=bcsub($op['deb_montant'],$op['cred_montant']);
522 * reset prog. balance to zero if we change of exercice
524 if ($old_exercice != $op['p_exercice']) {
525 if ($old_exercice != '') {
526 $progress = bcsub($sum_deb, $sum_cred);
527 $side = "
" . $this->get_amount_side($progress);
528 echo "<TR
class=\
"highlight\">" .
529 td(
$op[
'p_exercice']) .
530 td(
"",
' class="visible_gt800" ') .
531 td(
"",
' class="visible_gt800" ') .
532 td(
"",
' class="visible_gt800" ') .
533 td(
"",
' class="visible_gt800" ') .
534 td(
"",
' class="visible_gt800" ') .
536 "<TD >Totaux</TD>" .
td(
"") .
537 "<TD style=\"text-align:right\">" .
nbm($sum_deb) .
"</TD>" .
538 "<TD style=\"text-align:right\">" .
nbm($sum_cred) .
"</TD>" .
540 td(
"",
' class="visible_gt800" ') .
551 $sum_cred=bcadd($sum_cred,
$op[
'cred_montant']);
552 $sum_deb=bcadd($sum_deb,
$op[
'deb_montant']);
555 $op_analytic=(
$op[
'op_analytic']==1)?
'<span style="float:right;background:black;color:white;">∋</span>':
'';
556 echo
"<TR $class name=\"tr_" .
$let .
"_" .
$from_div .
"\">" .
558 td(
h(
$op[
'jr_pj_number'])).
559 "<TD>".\HtmlInput::card_detail(
$op[
'j_qcode']).
"</TD>".
560 "<TD>".$vw_operation.
"</TD>".
561 "<TD class=\"visible_gt800\" >".$tiers.
"</TD>".
562 "<TD class=\"visible_gt800\" >".h(
$op[
'description']).$op_analytic.
"</TD>".
563 td(
$op[
'jr_optype'],
' class="visible_gt800" ');
565 if (
$op[
'currency_id'] > 0 )
568 $currency_val=(
$op[
'oc_amount'] == 0)?round(bcmul (
$op[
'j_montant'],
$op[
'currency_rate']),2):
$op[
'oc_amount'] ;
570 echo
td(
$op[
'cr_code_iso']).
571 td(
nbm($currency_val,2),
'style="text-align:right;padding-left:10px;"');
573 echo
td(
'',
'class="visible_gt800" ').td(
'',
' class="visible_gt800"' );
577 "<TD style=\"text-align:right;padding-left:10px;\">".nbm(
$op[
'deb_montant']).
"</TD>".
578 "<TD style=\"text-align:right;padding-left:10px;\">".nbm(
$op[
'cred_montant']).
"</TD>".
581 td($html_let,
' class="visible_gt800" '.
' style="color:red;text-align:right"') .
583 $old_exercice=
$op[
'p_exercice'];
586 $solde_type=($sum_deb>$sum_cred)?
_(
"solde débiteur"):
_(
"solde créditeur");
587 $diff=bcsub($sum_deb,$sum_cred);
589 echo
"<TR class=\"highlight\">".
590 td(
$op[
'p_exercice']).
591 td(
"",
' class="visible_gt800" ').
592 td(
"",
' class="visible_gt800" ').
593 td(
"",
' class="visible_gt800" ').
594 td(
"",
' class="visible_gt800" ').
595 td(
"",
' class="visible_gt800" ').
597 "<TD >Totaux</TD>".td(
"").
598 "<TD style=\"text-align:right\">".nbm($sum_deb).
"</TD>".
599 "<TD style=\"text-align:right\">".nbm($sum_cred).
"</TD>".
600 "<TD style=\"text-align:right\">".nbm(abs(
$diff)).$side.
"</TD>".
601 td(
"",
' class="visible_gt800" ').
603 echo
"<tr style=\"font-weight:bold\"><TD>$solde_type</TD><td></td>".
604 "<TD style=\"text-align:right\">".nbm(abs(
$diff)).
"</TD>".
608 $solde_until_now=$this->
get_solde_detail(
" j_date <= to_date('{$p_array['to_periode']}','DD.MM.YYYY') ");
609 echo
'<tr style="font-weight:bold;color:orangered">';
610 echo
td(
_(
"Solde global"));
611 echo
td(
"D : ".
nbm($solde_until_now[
'debit']),
'class="num"');
612 echo
td(
"C : ".
nbm($solde_until_now[
'credit']),
'class="num"');
613 echo
td(
"Delta : ".
nbm($solde_until_now[
'solde']).
" ".$this->
get_amount_side($solde_until_now[
'debit']-$solde_until_now[
'credit']),
'class="num"');
621 if ( DEBUGNOALYSS>1) echo \Noalyss\Dbg::hidden_info(
"variable", get_defined_vars());
622 if ( DEBUGNOALYSS>1) echo \Noalyss\Dbg::hidden_info(
"this", $this);
647 $http=new \HttpInput();
648 switch($actiontarget)
651 $action_csv=
'CSV:postedetail';
652 $action_pdf=
'PDF:postedetail';
655 $action_csv=
'CSV:glcompte';
656 $action_pdf=
'PDF:glcompte';
659 throw new Exception(
" Fonction HtmlTableHeader argument actiontarget invalid");
665 $str_ople=(isset(
$_REQUEST[
'ople']))?HtmlInput::hidden(
'ople',
$http->request(
'ople')):
'';
666 if ($actiontarget==
'poste')
668 echo
'<TD><form method="GET" ACTION="export.php">'.
670 HtmlInput::submit(
'bt_other',
"Autre poste").
671 $hid->input(
"type",
"poste").$hid->input(
'ac',
$http->request(
'ac')).
"</form></TD>";
675 echo
'<TD><form method="GET" ACTION="export.php" '.
676 'id="'.$id.
'" onsubmit="return download_document_form(\''.
$id.
'\')
">'.
678 HtmlInput::submit('bt_pdf',"Export
PDF").
679 HtmlInput::hidden('act',$action_pdf).
680 $hid->input("type","poste
").$str_ople.
681 $hid->input('p_action','impress').
682 $hid->input("from_periode
",$http->request('from_periode')).
683 $hid->input("to_periode
",$http->request('to_periode'))
686 if ( isset($_REQUEST['letter'] )) echo HtmlInput::hidden('letter','2');
687 if ( isset($_REQUEST['solded'] )) echo HtmlInput::hidden('solded','1');
689 if (isset($_REQUEST['from_poste']))
690 echo HtmlInput::hidden('from_poste',$http->request('from_poste'));
692 if (isset($_REQUEST['to_poste']))
693 echo HtmlInput::hidden('to_poste',$http->request('to_poste'));
695 if (isset($_REQUEST['poste_id']))
696 echo HtmlInput::hidden("poste_id
",$http->request('poste_id'));
698 if (isset($_REQUEST['poste_fille']))
699 echo $hid->input('poste_fille','on');
700 if (isset($_REQUEST['oper_detail']))
701 echo $hid->input('oper_detail','on');
705 echo '<TD><form method="GET
" ACTION="export.php
" id="'.$id.'" onsubmit="download_document_form(\
''.
$id.
'\')
">'.
707 HtmlInput::submit('bt_csv',"Export CSV
").
708 HtmlInput::hidden('act',$action_csv).
709 $hid->input("type","poste
").$str_ople.
710 $hid->input('p_action','impress').
711 $hid->input("from_periode
",$http->request('from_periode')).
712 $hid->input("to_periode
",$http->request('to_periode'));
714 if (isset($_REQUEST['from_poste']))
715 echo HtmlInput::hidden('from_poste',$http->request('from_poste'));
717 if (isset($_REQUEST['to_poste']))
718 echo HtmlInput::hidden('to_poste',$http->request('to_poste'));
720 if (isset($_REQUEST['poste_id']))
721 echo HtmlInput::hidden("poste_id
",$http->request('poste_id'));
723 if ( isset($_REQUEST['letter'] )) echo HtmlInput::hidden('letter','2');
724 if ( isset($_REQUEST['solded'] )) echo HtmlInput::hidden('solded','1');
726 if (isset($_REQUEST['poste_fille']))
727 echo $hid->input('poste_fille','on');
728 if (isset($_REQUEST['oper_detail']))
729 echo $hid->input('oper_detail','on');
730 if (isset($_REQUEST['poste_id'])) echo $hid->input("poste_id
",$http->request('poste_id'));
733 echo '<td style="vertical-align:top
">';
734 echo HtmlInput::print_window();
746 function belong_ledger($p_jrn)
748 $filter=$this->db->get_value("select jrn_def_class_cred
from jrn_def where
jrn_def_id=$1
", array($p_jrn));
749 if ( noalyss_trim ($filter) == '')
752 $valid_cred=explode(" ",$filter);
753 $sql="select count(*) as poste
from tmp_pcmn where
";
759 foreach ( $valid_cred as $item_cred)
761 if ( strlen (trim($item_cred)))
763 if ( strstr($item_cred,"*
") == true )
765 $SqlItem=$or . 'pcm_val::text like $' . $SqlArrayN++;
766 array_push($SqlArray, strtr($item_cred,"*
","%
"));
771 $SqlItem=$or . 'pcm_val::text = $' . $SqlArrayN++;
772 array_push($SqlArray, $item_cred);
775 $SqlFilter=$SqlFilter.$SqlItem;
778 $sql.=$SqlFilter . ' and pcm_val::text=$' . $SqlArrayN++;
779 array_push($SqlArray, $this->id);
780 $max=$this->db->get_value($sql, $SqlArray);
792 function get_account_ledger($p_jrn)
794 $l=new Acc_Ledger($this->db,$p_jrn);
795 $row=$l->get_propertie();
796 if ($l->get_type() != 'ODS') { return [];}
797 if ( $row == null || noalyss_strlentrim($row['jrn_def_class_deb']) == 0 ) return array();
798 $valid_account=explode("
",$row['jrn_def_class_deb']);
799 return $valid_account;
811 function build_sql_account($p_jrn)
813 $array=$this->get_account_ledger($p_jrn);
814 if ( empty($array) ) return "
";
816 foreach ( $array as $item_cred)
818 if ( strlen (trim($item_cred))>0 )
820 if ( strstr($item_cred,"*
") == true )
822 $item_cred=strtr($item_cred,"*
","%
");
823 $sql_tmp=" pcm_val::text like '$item_cred' or
";
827 $sql_tmp=" pcm_val::text = '$item_cred' or
";
832 /* remove the last or */
833 $sql=substr($sql,0,strlen($sql)-2);
843 $sql="select f_id
from fiche_detail where ad_id=$1 and ad_value=$2
";
844 $account=$this->db->get_array($sql,array(ATTR_DEF_ACCOUNT,$this->id));
854 function button_csv($p_from,$p_to) {
855 $href="export.php?
".http_build_query(
857 "gDossier
"=>Dossier::id(),
858 "poste_id
"=>$this->id,
861 "from_periode
"=>$p_from,
863 "act
"=>"CSV:postedetail
"
866 return '<a class="smallbutton
" style="display:inline-block
" href="'.
$href.'
">'._("Export CSV
").'</a>';
876 function button_pdf($p_from,$p_to) {
877 $href="export.php?
".http_build_query(
879 "gDossier
"=>Dossier::id(),
880 "poste_id
"=>$this->id,
883 "from_periode
"=>$p_from,
885 "act
"=>"PDF:postedetail
"
888 return '<a class="smallbutton
" style="display:inline-block
" href="'.
$href.'
">'._("Export
PDF").'</a>';
896 function filter_history($p_table_id) {
897 return _('Filtre rapide').' '.HtmlInput::filter_table($p_table_id, '0,1,2,3,4,5,6,7,8,9,10', 1);
900 public static function get_used_accounting($from_date, $to_date, $from_accounting, $to_accounting)
903 if (isDate($from_date) != $from_date || isDate($to_date) != $to_date) {
907 $sql = "select pcm_val,pcm_lib
from tmp_pcmn
909 (select j_poste
from jrnx where j_date >= to_date('
$from_date','DD.MM.YYYY')
910 and j_date <= to_date('
$to_date','DD.MM.YYYY') )
";
912 if ($from_accounting != '') {
913 $cond_poste .= "and pcm_val >= upper ('
" . Database::escape_string($from_accounting) . "')
";
916 if ($to_accounting != '') {
917 $cond_poste .= " and pcm_val <= upper ('
" . Database::escape_string($to_accounting) . "')
";
920 $sql = $sql . $cond_poste . ' order by pcm_val::text';
923 $cn=Dossier::connect();
924 $a_poste = $cn->get_array($sql);
format_date($p_date, $p_from_format='YYYY-MM-DD', $p_to_format='DD.MM.YYYY')
format the date, when taken from the database the format is MM-DD-YYYY
th($p_string, $p_extra='', $raw='')
sql_filter_per($p_cn, $p_from, $p_to, $p_form='p_id', $p_field='jr_tech_per')
Create the condition to filter on the j_tech_per thanks a from and to date.
noalyss_str_replace($search, $replace, $string)
td($p_string='', $p_extra='')
surround the string with td
nbm($p_number, $p_dec=2)
format the number with a sep.
global $g_user
if no group available , then stop
catch(Exception $exc) if(! $g_user->can_write_action($ag_id)) $r
h( $row[ 'oa_description'])
_("actif, passif,charge,...")
$class
Display the Plugin and for each profile were it is installed or not.
Manage the account from the table jrn, jrnx or tmp_pcmn.
get_solde_detail($p_cond="")
give the balance of an account
load()
Get all the value for this object from the database the data member are set.
get_amount_side($p_amount)
return the letter C if amount is > 0, D if < 0 or =
static HtmlTableHeader($actiontarget="poste")
Display HTML Table Header (button)
get_solde($p_cond=" true ")
give the balance of an account
get_name()
Return the name of a account it doesn't change any data member.
get_row($p_from, $p_to)
Get data for accounting entry between 2 periode.
make_sql_accounting_detail($p_from, $p_to, $sql_let, $filter_sql)
build the SQL for get_row_data
isTVA()
isTva tell is a poste is used for VAT
HtmlTable($p_array=null, $let=0, $from_div=0)
HtmlTable, display a HTML of a poste for the asked period.
get_type()
Return the type of a account.
get_row_sql_deprecated($Res)
get the row thanks the resource
get_row_date($p_from, $p_to, $let=0, $solded=0)
Get data for accounting entry between 2 date.
__construct($p_cn, $p_id)
make_sql_not_balanced_account($filter)
make the SQL for the balanced accounting
do_exist()
check if the poste exist in the tmp_pcmn
make_sql_saldo_account($filter_sql, $sql_let)
make the SQL for the balance of an accounting
this file match the tables jrn & jrnx the purpose is to remove or save accountant writing to these ta...
static fetch_result($ret, $p_row=0, $p_col=0)
wrapper for the function pg_fetch_all
static fetch_array($ret, $p_indice=0, $p_mode=PGSQL_ASSOC)
wrapper for the function pg_fetch_array
static fetch_all($ret, $p_mode=PGSQL_ASSOC)
wrapper for the function pg_fetch_all
static num_row($ret)
wrapper for the function pg_num_rows
API for creating PDF, unicode, based on tfpdf.
foreach( $Fiche->row as $op) $solde_type