Comptablité avancé autre format d'export

Avec quelques corrections pour que la lisibilité soit meilleur sous istea:

	/**
	 * Export format : ISTEA
	 *
	 * @param 	array 		$objectLines 			data
	 * @param 	resource	$exportFile				[=null] File resource to export or print if null
	 * @return	void
	 */
	public function exportISTEA($objectLines, $exportFile = null)
	{
		global $conf;

		$separator = ';';
		$end_line = "\n";

		// parcours du tableau pour récupération des numéro de compte des tiers pour pouvoir les fournir dans la bonen ligne pour istea
		$tiers=[];
		foreach($objectLines as $line){
			if( $line->subledger_account && substr($line->subledger_account,0,1)=='4'){
				$tiers[$line->piece_num] = $line->subledger_label;
			}
		}

		foreach ($objectLines as $line) {
			$date_document = dol_print_date($line->doc_date, '%d/%m/%Y');

			/*** préparation du champ label opération pour istea ***/
			// retrécissement du champs car ISTEA n'affiche pas bcp de caractère.
			$search = array('Paiement fournisseur ', 'Virement ', 'Paiement ');
			$replace = array('Paiemt fourn ','Virt ','Paiemt ');
			$label_operation = str_replace($search, $replace, $line->label_operation);
			// encadrement par des ' si le champs contient le séparateur 
			$label_operation = preg_match('/'.$separator.'/', $label_operation) ? "'".$label_operation."'" : $label_operation;

			$tab = array();
			// export configurable
			$tab[] = $line->piece_num;	// colonne 1 : numéro de pièce	ISTEA
			$tab[] = $date_document;	// colonne 2 : date				ISTEA
			$tab[] = $line->doc_ref;	// colonne 3 : référence pièce 	ISTEA
			$tab[] = array_key_exists($line->piece_num, $tiers)?$tiers[$line->piece_num]:'';	// colonne 4 : nom tiers	ISTEA
			$tab[] = length_accountg($line->subledger_account?$line->subledger_account:$line->numero_compte);	// colonne 5 : numéro de compte	ISTEA
			$tab[] = length_accountg($line->subledger_account?$line->subledger_account:$line->numero_compte);	// colonne 6 : numéro de compte
			$tab[] = length_accountg($line->subledger_account?$line->numero_compte:'');	// G					// colonne 7 : numéro de compte principal (divers paiement ou 40100000 ou 41100000)
			$tab[] = ($line->doc_type == 'bank')?$label_operation:($line->subledger_account?$line->subledger_label:$line->label_compte);	// colonne 8 : label de l'opération		ISTEA
			$tab[] = $label_operation;	// colonne 9 : label de l'opération (semble non pris en compte par ISTEA)
			$tab[] = price2num($line->debit);	// colonne 10 : débit		ISTEA
			$tab[] = price2num($line->credit);	// colonne 11 : crédit		ISTEA
			$tab[] = $line->code_journal;		// colonne 12 : journal		ISTEA

			$output = mb_convert_encoding('"'.implode('"'.$separator.'"', $tab).'"'.$this->end_line,'ISO-8859-1');
			if ($exportFile) {
				fwrite($exportFile, $output);
			} else {
				print $output;
			}
		}
	}
[istea.diff.zip|attachment](upload://ifRrQguZRAfyb0CB4sZ8dgHgTHH.zip) (1,7 Ko)