value=array( array('value'=>1,'label'=>'Par fiche /Activité'), array('value'=>2,'label'=>'Par poste comptable/Activité'), array('value'=>3,'label'=>'Par activité/Fiche'), array('value'=>4,'label'=>'Par activité/Poste Comptable') ); $icard->selected=$this->card_poste; $r.=$icard->input(); $r.=HtmlInput::request_to_hidden(array('ac')); return $r; } /** * load the data * does not return anything but give a value to this->aheader and this->arow */ function load_anc_account() { $date=$this->set_sql_filter(); $date=($date != '')?" $date":''; $sql_from_poste=($this->from_poste!='')?" and po.po_name >= upper('".Database::escape_string($this->from_poste)."')":''; $sql_to_poste=($this->to_poste!='')?" and po.po_name <= upper('".Database::escape_string($this->to_poste)."')":''; $this->arow=$this->db->get_array(" SELECT po.po_id, po.pa_id, po.po_name, po.po_description, sum( CASE WHEN operation_analytique.oa_debit = true THEN operation_analytique.oa_amount * (-1)::numeric ELSE operation_analytique.oa_amount END) AS sum_amount, jrnx.j_poste, tmp_pcmn.pcm_lib AS name FROM operation_analytique JOIN poste_analytique po USING (po_id) JOIN jrnx USING (j_id) JOIN tmp_pcmn ON jrnx.j_poste::text = tmp_pcmn.pcm_val::text ". " where pa_id=$1 ".$date.$sql_from_poste.$sql_to_poste." GROUP BY po.po_id, po.po_name, po.pa_id, jrnx.j_poste, tmp_pcmn.pcm_lib, po.po_description HAVING sum( CASE WHEN operation_analytique.oa_debit = true THEN operation_analytique.oa_amount * (-1)::numeric ELSE operation_analytique.oa_amount END) <> 0::numeric order by po_id,j_poste",array($this->pa_id)); } /** * load the data * does not return anything but give a value to this->aheader and this->arow */ function load_anc_card() { $date=$this->set_sql_filter(); $date=($date != '')?" $date":''; $sql_from_poste=($this->from_poste!='')?" and po.po_name >= upper('".Database::escape_string($this->from_poste)."')":''; $sql_to_poste=($this->to_poste!='')?" and po.po_name <= upper('".Database::escape_string($this->to_poste)."')":''; $this->arow=$this->db->get_array(" SELECT po.po_id, po.pa_id, po.po_name, po.po_description, sum( CASE WHEN operation_analytique.oa_debit = true THEN operation_analytique.oa_amount * (-1)::numeric ELSE operation_analytique.oa_amount END) AS sum_amount, jrnx.f_id, jrnx.j_qcode, ( SELECT fiche_detail.ad_value FROM fiche_detail WHERE fiche_detail.ad_id = 1 AND fiche_detail.f_id = jrnx.f_id) AS name FROM operation_analytique JOIN poste_analytique po USING (po_id) JOIN jrnx USING (j_id) ". " where pa_id=$1 ".$date.$sql_from_poste.$sql_to_poste ." GROUP BY po.po_id, po.po_name, po.pa_id, jrnx.f_id, jrnx.j_qcode, ( SELECT fiche_detail.ad_value FROM fiche_detail WHERE fiche_detail.ad_id = 1 AND fiche_detail.f_id = jrnx.f_id), po.po_description HAVING sum( CASE WHEN operation_analytique.oa_debit = true THEN operation_analytique.oa_amount * (-1)::numeric ELSE operation_analytique.oa_amount END) <> 0::numeric order by po_name,name",array($this->pa_id)); } /** * load the data * does not return anything but give a value to this->aheader and this->arow */ function load_poste() { $date=$this->set_sql_filter(); $date=($date != '')?" $date":''; $sql_from_poste=($this->from_poste!='')?" and po.po_name >= upper('".Database::escape_string($this->from_poste)."')":''; $sql_to_poste=($this->to_poste!='')?" and po.po_name <= upper('".Database::escape_string($this->to_poste)."')":''; $this->arow=$this->db->get_array("SELECT po.po_id, po.pa_id, po.po_name, po.po_description, sum( CASE WHEN operation_analytique.oa_debit = true THEN operation_analytique.oa_amount * (-1)::numeric ELSE operation_analytique.oa_amount END) AS sum_amount, jrnx.j_poste, tmp_pcmn.pcm_lib AS name FROM operation_analytique JOIN poste_analytique po USING (po_id) JOIN jrnx USING (j_id) JOIN tmp_pcmn ON jrnx.j_poste::text = tmp_pcmn.pcm_val::text ". " where pa_id=$1 ".$date.$sql_from_poste.$sql_to_poste." GROUP BY po.po_id, po.po_name, po.pa_id, jrnx.j_poste, tmp_pcmn.pcm_lib, po.po_description HAVING sum( CASE WHEN operation_analytique.oa_debit = true THEN operation_analytique.oa_amount * (-1)::numeric ELSE operation_analytique.oa_amount END) <> 0::numeric order by j_poste,po_name",array($this->pa_id)); } /** * load the data * does not return anything but give a value to this->aheader and this->arow */ function load_card() { $date=$this->set_sql_filter(); $date=($date != '')?" $date":''; $sql_from_poste=($this->from_poste!='')?" and po.po_name >= upper('".Database::escape_string($this->from_poste)."')":''; $sql_to_poste=($this->to_poste!='')?" and po.po_name <= upper('".Database::escape_string($this->to_poste)."')":''; $this->arow=$this->db->get_array(" SELECT po.po_id, po.pa_id, po.po_name, po.po_description, sum( CASE WHEN operation_analytique.oa_debit = true THEN operation_analytique.oa_amount * (-1)::numeric ELSE operation_analytique.oa_amount END) AS sum_amount, jrnx.f_id, jrnx.j_qcode, ( SELECT fiche_detail.ad_value FROM fiche_detail WHERE fiche_detail.ad_id = 1 AND fiche_detail.f_id = jrnx.f_id) AS name FROM operation_analytique JOIN poste_analytique po USING (po_id) JOIN jrnx USING (j_id) ". " where pa_id=$1 ".$date.$sql_from_poste.$sql_to_poste ." GROUP BY po.po_id, po.po_name, po.pa_id, jrnx.f_id, jrnx.j_qcode, ( SELECT fiche_detail.ad_value FROM fiche_detail WHERE fiche_detail.ad_id = 1 AND fiche_detail.f_id = jrnx.f_id), po.po_description HAVING sum( CASE WHEN operation_analytique.oa_debit = true THEN operation_analytique.oa_amount * (-1)::numeric ELSE operation_analytique.oa_amount END) <> 0::numeric order by name,po_name",array($this->pa_id)); } /** *@brief display the button export CSV *@param $p_hidden is a string containing hidden items *@return html string */ function show_button($p_hidden="") { $r=""; $r.= '
'; $r.= HtmlInput::hidden("act","CSV:AncAccList"); $r.= HtmlInput::hidden("to",$this->to); $r.= HtmlInput::hidden("from",$this->from); $r.= HtmlInput::hidden("pa_id",$this->pa_id); $r.= HtmlInput::hidden("from_poste",$this->from_poste); $r.= HtmlInput::hidden("to_poste",$this->to_poste); $r.= HtmlInput::hidden("card_poste",$this->card_poste); $r.= $p_hidden; $r.= dossier::hidden(); $r.=HtmlInput::submit('bt_csv',"Export en CSV"); $r.= '
'; return $r; } function display_html() { bcscale(2); if ( $this->check() != 0) { alert('Désolé mais une des dates données n\'est pas valide'); return; } //--------------------------------------------------------------------------- // Card - Acc //--------------------------------------------------------------------------- if ( $this->card_poste=='1') { $this->load_card(); /* * Show all the result */ $tot_card=0;$prev=''; echo ''; $tot_glob=0; for ($i=0;$iarow);$i++) { if ( $i == 0 ) { $prev=$this->arow[$i]['f_id']; echo ''; } $style= ( $i % 2 == 0)?' class="odd" ':' class="even" '; if ( $i != 0 && $prev != $this->arow[$i]['f_id']) { echo td('Total'); echo td(nbm($tot_card),' class="num"'); echo ''; echo ''; $tot_card=0; $prev = $this->arow[$i]['f_id']; } echo ''; $amount=$this->arow[$i]['sum_amount']; if ($amount==null)$amount=0; $tot_card=bcadd($tot_card,$amount); $tot_glob=bcadd($tot_glob,$amount); echo td($this->arow[$i]['po_name']." ". $this->arow[$i]['po_description'],'style="padding-left:10"'); echo td(nbm($amount),' class="num" '); echo ''; } echo ''; echo td('Total'); echo td(nbm($tot_card),' class="num"'); echo ''; echo '
'.HtmlInput::history_card ($this->arow[$i]['f_id'],$this->arow[$i]['j_qcode'].' '.$this->arow[$i]['name'],' display:inline').'
'.HtmlInput::history_card($this->arow[$i]['f_id'],$this->arow[$i]['j_qcode'].' '.$this->arow[$i]['name'],' display:inline ').'
'; echo '

Résultat global '.nbm($tot_glob).'

'; } //--------------------------------------------------------------------------- // Accountancy - Analytic //--------------------------------------------------------------------------- if ( $this->card_poste=='2') { $this->load_poste(); /* * Show all the result */ $tot_card=0;$prev=''; echo ''; $tot_glob=0; for ($i=0;$iarow);$i++) { if ( $i == 0 ) { $prev=$this->arow[$i]['j_poste']; echo ''; } $style= ( $i % 2 == 0)?' class="odd" ':' class="even" '; if ( $i != 0 && $prev != $this->arow[$i]['j_poste']) { echo td('Total'); echo td(nbm($tot_card),' class="num"'); echo ''; echo ''; $tot_card=0; $prev = $this->arow[$i]['j_poste']; } echo ''; $amount=$this->arow[$i]['sum_amount']; if ($amount==null)$amount=0; $tot_card=bcadd($tot_card,$amount); $tot_glob=bcadd($tot_glob,$amount); echo td($this->arow[$i]['po_name']." ". $this->arow[$i]['po_description'],'style="padding-left:10"'); echo td(nbm($amount),' class="num" '); echo ''; } echo ''; echo td('Total'); echo td(nbm($tot_card),' class="num"'); echo ''; echo '
'.HtmlInput::history_account ($this->arow[$i]['j_poste'],$this->arow[$i]['j_poste'].' '.$this->arow[$i]['name'],' display:inline').'
'.HtmlInput::history_account($this->arow[$i]['j_poste'],$this->arow[$i]['j_poste'].' '.$this->arow[$i]['name'],' display:inline ').'
'; echo td(nbm($tot_card),' class="num"'); } //--------------------------------------------------------------------------- // Acc after card //--------------------------------------------------------------------------- if ( $this->card_poste=='3') { $this->load_anc_card(); /* * Show all the result */ $tot_card=0;$prev=''; echo ''; $tot_glob=0; for ($i=0;$iarow);$i++) { if ( $i == 0 ) { $prev=$this->arow[$i]['po_id']; echo ''; } $style= ( $i % 2 == 0)?' class="odd" ':' class="even" '; if ( $i != 0 && $prev != $this->arow[$i]['po_id']) { echo td('Total'); echo td(nbm($tot_card),' class="num"'); echo ''; echo ''; $tot_card=0; $prev = $this->arow[$i]['po_id']; } echo ''; $amount=$this->arow[$i]['sum_amount']; if ($amount==null)$amount=0; $tot_card=bcadd($tot_card,$amount); $tot_glob=bcadd($tot_glob,$amount); echo ''; echo td(nbm($amount),' class="num" '); echo ''; } echo ''; echo td('Total'); echo td(nbm($tot_card),' class="num"'); echo ''; echo '
'.$this->arow[$i]['po_name']." ".$this->arow[$i]['po_description'].'
'.$this->arow[$i]['po_name']." ".$this->arow[$i]['po_description'].'
'.HtmlInput::history_card ($this->arow[$i]['f_id'],$this->arow[$i]['j_qcode'].' '.$this->arow[$i]['name'],' display:inline').'
'; echo td(nbm($tot_card),' class="num"'); } //--------------------------------------------------------------------------- // Analytic - Accountancy //--------------------------------------------------------------------------- if ( $this->card_poste=='4') { $this->load_anc_account(); /* * Show all the result */ $tot_card=0;$prev=''; echo ''; $tot_glob=0; for ($i=0;$iarow);$i++) { if ( $i == 0 ) { $prev=$this->arow[$i]['po_id']; echo ''; } $style= ( $i % 2 == 0)?' class="odd" ':' class="even" '; if ( $i != 0 && $prev != $this->arow[$i]['po_id']) { echo td('Total'); echo td(nbm($tot_card),' class="num"'); echo ''; $tot_card=0; $prev = $this->arow[$i]['po_id']; echo ''; } echo ''; $amount=$this->arow[$i]['sum_amount']; if ($amount==null)$amount=0; $tot_card=bcadd($tot_card,$amount); $tot_glob=bcadd($tot_glob,$amount); echo ''; echo td(nbm($amount),' class="num" '); echo ''; } echo ''; echo td('Total'); echo td(nbm($tot_card),' class="num"'); echo ''; echo '
'.$this->arow[$i]['po_name']." ".$this->arow[$i]['po_description'].'
'.$this->arow[$i]['po_name']." ".$this->arow[$i]['po_description'].'
'.HtmlInput::history_account ($this->arow[$i]['j_poste'],$this->arow[$i]['j_poste'].' '.$this->arow[$i]['name'],' display:inline').'
'; echo '

Résultat global '.nbm($tot_glob).'

'; } } function export_csv() { bcscale(2); if ( $this->check () != 0 ) {throw new Exception (_("date invalide"));} //--------------------------------------------------------------------------- // Card - Acc //--------------------------------------------------------------------------- if ( $this->card_poste=='1') { $this->load_card(); /* * Show all the result */ $prev=''; for ($i=0;$iarow);$i++) { printf('"%s";" %s"', $this->arow[$i]['j_qcode'],$this->arow[$i]['name']); $amount=$this->arow[$i]['sum_amount']; if ($amount==null)$amount=0; printf(';"%s";" %s";', $this->arow[$i]['po_name'], $this->arow[$i]['po_description']); printf("%s",nb($amount)); printf("\r\n"); } } //--------------------------------------------------------------------------- // Accountancy - Analytic //--------------------------------------------------------------------------- if ( $this->card_poste=='2') { $this->load_poste(); /* * Show all the result */ for ($i=0;$iarow);$i++) { printf('"%s";" %s"', $this->arow[$i]['j_poste'],$this->arow[$i]['name']); $amount=$this->arow[$i]['sum_amount']; if ($amount==null)$amount=0; printf(';"%s";" %s";', $this->arow[$i]['po_name'], $this->arow[$i]['po_description']); printf("%s",nb($amount)); printf("\r\n"); } } //--------------------------------------------------------------------------- // Acc after card //--------------------------------------------------------------------------- if ( $this->card_poste=='3') { $this->load_anc_card(); /* * Show all the result */ for ($i=0;$iarow);$i++) { printf('"%s";" %s";', $this->arow[$i]['po_name'],$this->arow[$i]['po_description']); $amount=$this->arow[$i]['sum_amount']; if ($amount==null)$amount=0; printf('"%s";"%s";', $this->arow[$i]['j_qcode'], $this->arow[$i]['name']); printf("%s",nb($amount)); printf("\r\n"); } } //--------------------------------------------------------------------------- // Analytic - Accountancy //--------------------------------------------------------------------------- if ( $this->card_poste=='4') { $this->load_anc_account(); /* * Show all the result */ for ($i=0;$iarow);$i++) { printf('"%s";"%s";', $this->arow[$i]['po_name'],$this->arow[$i]['po_description']); $amount=$this->arow[$i]['sum_amount']; if ($amount==null)$amount=0; printf('"%s";"%s";', $this->arow[$i]['j_poste'], $this->arow[$i]['name']); printf("%s",nb($amount)); printf("\r\n"); } } } }