send_header(); /* * Variable from $_GET */ $get_jrn=HtmlInput::default_value_get('jrn_id', -1); $get_option=HtmlInput::default_value_get('p_simple', -1); $get_from_periode= HtmlInput::default_value_get('from_periode', null); $get_to_periode=HtmlInput::default_value_get('to_periode', NULL); //--- Check validity if ( $get_jrn ==-1 || $get_option == -1 || $get_from_periode == null || $get_to_periode == null) { die (_('Options invalides')); } require_once NOALYSS_INCLUDE.'/class/class_user.php'; $g_user->Check(); $g_user->check_dossier($gDossier); //---------------------------------------------------------------------------- // $get_jrn == 0 when request for all ledger, in that case, we must filter // the legder with the security in Acc_Ledger::get_row //---------------------------------------------------------------------------- if ($get_jrn!=0 && $g_user->check_jrn($get_jrn) =='X') { NoAccess(); exit(); } $Jrn=new Acc_Ledger($cn,$get_jrn); $Jrn->get_name(); $jrn_type=$Jrn->get_type(); // // With Detail per item which is possible only for VEN or ACH // if ($get_option == 2) { if ($jrn_type != 'ACH' && $jrn_type != 'VEN' || $Jrn->id == 0) { $get_option = 0; } else { switch ($jrn_type) { case 'VEN': $ledger = new Acc_Ledger_Sold($cn, $get_jrn); $ret_detail = $ledger->get_detail_sale($get_from_periode, $get_to_periode); $a_heading= Acc_Ledger_Sold::heading_detail_sale(); break; case 'ACH': $ledger = new Acc_Ledger_Purchase($cn, $get_jrn); $ret_detail = $ledger->get_detail_purchase($get_from_periode, $get_to_periode); $a_heading= Acc_Ledger_Purchase::heading_detail_purchase(); break; default: die(__FILE__ . ":" . __LINE__ . 'Journal invalide'); break; } if ($ret_detail == null) return; $nb = Database::num_row($ret_detail); $title=array(); foreach ($a_heading as $key=> $value) { $title[]=$value; } for ($i = 0;$i < $nb ; $i++) { $row=Database::fetch_array($ret_detail, $i); if ( $i == 0 ) { $export->write_header($title); } $a_row=array(); $type="text"; for ($j=0;$j < count($row) / 2;$j++) { if ( $j > 18 ) $type="number"; $export->add($row[$j],$type); } $export->write(); } } } //----------------------------------------------------------------------------- // Detailled printing // For miscellaneous legder or all ledgers //----------------------------------------------------------------------------- if ( $get_option == 0 ) { $Jrn->get_row( $get_from_periode, $get_to_periode ); $title=array(); $title[]=_("operation"); $title[]=_("N° Pièce"); $title[]=_("Interne"); $title[]=_("Date"); $title[]=_("Poste"); $title[]=_("Libellé"); $title[]=_("Débit"); $title[]=_("Crédit"); $export->write_header($title); if ( count($Jrn->row) == 0) exit; $old_id=""; /** * @todo add table headers */ foreach ( $Jrn->row as $op ) { // should clean description : remove tag and '; char $desc=$op['description']; $desc=str_replace("","",$desc); $desc=str_replace("","",$desc); $desc=str_replace("","",$desc); $desc=str_replace("","",$desc); if ( $op['j_id'] != "") $old_id=$op['j_id']; $export->add($old_id,"text"); $export->add($op['jr_pj_number']); $export->add($op['internal']); $export->add($op['j_date']); $export->add($op['poste']); $export->add($desc); $export->add($op['deb_montant'],"number"); $export->add($op['cred_montant'],"number"); $export->write(); } exit; } //----------------------------------------------------------------------------- // Detail printing for ACH or VEN : 1 row resume the situation with VAT, DNA // for Misc the amount // For Financial only the tiers and the sign of the amount //----------------------------------------------------------------------------- if ($get_option == 1) { //----------------------------------------------------- if ( $jrn_type == 'ODS' || $jrn_type == 'FIN' || $jrn_type=='GL') { $Row=$Jrn->get_rowSimple($get_from_periode, $get_to_periode, 0); $title=array(); $title[]=_("operation"); $title[]=_("Date"); $title[]=_("N° Pièce"); $title[]=_("Tiers"); $title[]=_("commentaire"); $title[]=_("internal"); $title[]=_("montant"); $export->write_header($title); foreach ($Row as $line) { $export->add( $line['num']); $export->add($line['date']); $export->add($line['jr_pj_number']); $export->add($Jrn->get_tiers($line['jrn_def_type'],$line['jr_id'])); $export->add($line['comment']); $export->add($line['jr_internal']); // echo "