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); $output=fopen("php://output","w"); for ($i = 0;$i < $nb ; $i++) { $row=Database::fetch_array($ret_detail, $i); if ( $i == 0 ) { fputcsv($output,$a_heading,';'); } $a_row=array(); for ($j=0;$j < count($row) / 2;$j++) { $a_row[]=$row[$j]; } fputcsv($output,$a_row,';'); unset($a_row); } } } //----------------------------------------------------------------------------- // Detailled printing // For miscellaneous legder or all ledgers //----------------------------------------------------------------------------- if ( $get_option == 0 ) { $Jrn->get_row( $get_from_periode, $get_to_periode ); if ( count($Jrn->row) == 0) exit; 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); $desc=str_replace('"',"'",$desc); $desc=str_replace(";",",",$desc); printf("\"%s\";\"%s\";\"%s\";\"%s\";\"%s\";\"%s\";%s;%s\n", $op['j_id'], $op['jr_pj_number'], $op['internal'], $op['j_date'], $op['poste'], $desc, nb($op['deb_montant']), nb($op['cred_montant']) ); } 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); printf ('" operation";'. '"Date";'. '"N° Pièce";'. '"Tiers";'. '"commentaire";'. '"internal";'. '"montant";'. "\r\n"); foreach ($Row as $line) { echo $line['num'].";"; echo $line['date'].";"; echo $line['jr_pj_number'].";"; echo $Jrn->get_tiers($line['jrn_def_type'],$line['jr_id']).";"; echo $line['comment'].";"; echo $line['jr_internal'].";"; // echo "