浏览代码

on going accountacy working

florian HENRY 9 年之前
父节点
当前提交
dfc4f3e7fe

+ 60 - 62
htdocs/accountancy/bookkeeping/card.php

@@ -18,9 +18,9 @@
  */
 
 /**
- * \file 		htdocs/accountancy/bookkeeping/card.php
- * \ingroup 	Advanced accountancy
- * \brief 		Page to show book-entry
+ * \file htdocs/accountancy/bookkeeping/card.php
+ * \ingroup Advanced accountancy
+ * \brief Page to show book-entry
  */
 require '../../main.inc.php';
 
@@ -62,17 +62,17 @@ if (! empty($update)) {
 }
 
 if ($action == "confirm_update") {
-	
+
 	$error = 0;
-	
+
 	if ((floatval($debit) != 0.0) && (floatval($credit) != 0.0)) {
 		setEventMessages($langs->trans('ErrorDebitCredit'), null, 'errors');
 		$error ++;
 	}
-	
+
 	if (empty($error)) {
 		$book = new BookKeeping($db);
-		
+
 		$result = $book->fetch($id);
 		if ($result < 0) {
 			setEventMessages($book->error, $book->errors, 'errors');
@@ -82,7 +82,7 @@ if ($action == "confirm_update") {
 			$book->label_compte = $label_compte;
 			$book->debit = $debit;
 			$book->credit = $credit;
-			
+
 			if (floatval($debit) != 0.0) {
 				$book->montant = $debit;
 				$book->sens = 'D';
@@ -91,7 +91,7 @@ if ($action == "confirm_update") {
 				$book->montant = $credit;
 				$book->sens = 'C';
 			}
-			
+
 			$result = $book->update($user);
 			if ($result < 0) {
 				setEventMessages($book->error, $book->errors, 'errors');
@@ -101,19 +101,19 @@ if ($action == "confirm_update") {
 			}
 		}
 	}
-} 
+}
 
 else if ($action == "add") {
 	$error = 0;
-	
+
 	if ((floatval($debit) != 0.0) && (floatval($credit) != 0.0)) {
 		setEventMessages($langs->trans('ErrorDebitCredit'), null, 'errors');
 		$error ++;
 	}
-	
+
 	if (empty($error)) {
 		$book = new BookKeeping($db);
-		
+
 		$book->numero_compte = $account_number;
 		$book->code_tiers = $code_tiers;
 		$book->label_compte = $label_compte;
@@ -126,17 +126,17 @@ else if ($action == "add") {
 		$book->code_journal = GETPOST('code_journal');
 		$book->fk_doc = GETPOST('fk_doc');
 		$book->fk_docdet = GETPOST('fk_docdet');
-		
+
 		if (floatval($debit) != 0.0) {
 			$book->montant = $debit;
 			$book->sens = 'D';
 		}
-		
+
 		if (floatval($credit) != 0.0) {
 			$book->montant = $credit;
 			$book->sens = 'C';
 		}
-		
+
 		$result = $book->createStd($user);
 		if ($result < 0) {
 			setEventMessages($book->error, $book->errors, 'errors');
@@ -145,15 +145,15 @@ else if ($action == "add") {
 			$action = '';
 		}
 	}
-} 
+}
 
 else if ($action == "confirm_delete") {
 	$book = new BookKeeping($db);
-	
+
 	$result = $book->fetch($id);
-	
+
 	$piece_num = $book->piece_num;
-	
+
 	if ($result < 0) {
 		setEventMessages($book->error, $book->errors, 'errors');
 	} else {
@@ -163,11 +163,11 @@ else if ($action == "confirm_delete") {
 		}
 	}
 	$action = '';
-} 
+}
 
 else if ($action == "confirm_create") {
 	$book = new BookKeeping($db);
-	
+
 	$book->label_compte = '';
 	$book->debit = 0;
 	$book->credit = 0;
@@ -178,9 +178,9 @@ else if ($action == "confirm_create") {
 	$book->code_journal = GETPOST('code_journal');
 	$book->fk_doc = 0;
 	$book->fk_docdet = 0;
-	
+
 	$book->montant = 0;
-	
+
 	$result = $book->createStd($user);
 	if ($result < 0) {
 		setEventMessages($book->error, $book->errors, 'errors');
@@ -209,15 +209,15 @@ if ($action == 'delete') {
 
 if ($action == 'create') {
 	print load_fiche_titre($langs->trans("CreateMvts"));
-	
+
 	$code_journal_array = array (
 			$conf->global->ACCOUNTING_SELL_JOURNAL => $conf->global->ACCOUNTING_SELL_JOURNAL,
 			$conf->global->ACCOUNTING_PURCHASE_JOURNAL => $conf->global->ACCOUNTING_PURCHASE_JOURNAL,
 			$conf->global->ACCOUNTING_SOCIAL_JOURNAL => $conf->global->ACCOUNTING_SOCIAL_JOURNAL,
 			$conf->global->ACCOUNTING_MISCELLANEOUS_JOURNAL => $conf->global->ACCOUNTING_MISCELLANEOUS_JOURNAL,
-			$conf->global->ACCOUNTING_EXPENSEREPORT_JOURNAL => $conf->global->ACCOUNTING_EXPENSEREPORT_JOURNAL 
+			$conf->global->ACCOUNTING_EXPENSEREPORT_JOURNAL => $conf->global->ACCOUNTING_EXPENSEREPORT_JOURNAL
 	);
-	
+
 	$sql = 'SELECT DISTINCT accountancy_journal FROM ' . MAIN_DB_PREFIX . 'bank_account WHERE clos=0';
 	$resql = $db->query($sql);
 	if (! $resql) {
@@ -229,52 +229,52 @@ if ($action == 'create') {
 			}
 		}
 	}
-	
+
 	$book = new BookKeeping($db);
 	$next_num_mvt = $book->getNextNumMvt();
-	
+
 	print '<form action="' . $_SERVER["PHP_SELF"] . '" name="create_mvt" method="POST">';
 	print '<input type="hidden" name="action" value="confirm_create">' . "\n";
 	print '<input type="hidden" name="next_num_mvt" value="' . $next_num_mvt . '">' . "\n";
-	
+
 	dol_fiche_head();
-	
+
 	print '<table class="border" width="100%">';
 	print '<tr>';
 	print '<td width="25%">' . $langs->trans("NumMvts") . '</td>';
 	print '<td>' . $next_num_mvt . '</td>';
 	print '</tr>';
-	
+
 	print '<tr>';
 	print '<td>' . $langs->trans("Docdate") . '</td>';
 	print '<td>';
 	print $html->select_date('', 'doc_date', '', '', '', "create_mvt", 1, 1);
 	print '</td>';
 	print '</tr>';
-	
+
 	print '<tr>';
 	print '<td>' . $langs->trans("Codejournal") . '</td>';
 	print '<td>' . $html->selectarray('code_journal', $code_journal_array) . '</td>';
 	print '</tr>';
-	
+
 	print '<tr>';
 	print '<td>' . $langs->trans("Docref") . '</td>';
 	print '<td><input type="text" size="20" name="doc_ref" value=""/></td>';
 	print '</tr>';
-	
+
 	print '<tr>';
 	print '<td>' . $langs->trans("Doctype") . '</td>';
 	print '<td><input type="text" size="20" name="doc_type" value=""/></td>';
 	print '</tr>';
-	
+
 	print '</table>';
-	
+
 	dol_fiche_end();
-	
+
 	print '<div align="center"><input type="submit" class="button" value="' . $langs->trans("Create") . '">';
 	print '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="button" value="' . $langs->trans("Cancel") . '" class="button" onclick="history.go(-1)" />';
 	print '</div>';
-	
+
 	print '</form>';
 } else {
 	$book = new BookKeeping($db);
@@ -283,9 +283,9 @@ if ($action == 'create') {
 		setEventMessages($book->error, $book->errors, 'errors');
 	}
 	if (! empty($book->piece_num)) {
-		
+
 		print load_fiche_titre($langs->trans("UpdateMvts"), '<a href="list.php">' . $langs->trans('BackToList') . '</a>');
-		
+
 		print '<table class="border" width="100%">';
 		print '<tr class="pair">';
 		print '<td width="25%">' . $langs->trans("NumMvts") . '</td>';
@@ -309,14 +309,14 @@ if ($action == 'create') {
 		print '</tr>';
 		print '</table>';
 		print '<br />';
-		
+
 		$result = $book->fetch_all_per_mvt($piece_num);
 		if ($result < 0) {
 			setEventMessages($book->error, $book->errors, 'errors');
 		} else {
-			
+
 			print load_fiche_titre($langs->trans("ListeMvts"));
-			
+
 			print '<form action="' . $_SERVER["PHP_SELF"] . '?piece_num=' . $book->piece_num . '" method="post">';
 			print '<input type="hidden" name="doc_date" value="' . $book->doc_date . '">' . "\n";
 			print '<input type="hidden" name="doc_type" value="' . $book->doc_type . '">' . "\n";
@@ -324,15 +324,15 @@ if ($action == 'create') {
 			print '<input type="hidden" name="code_journal" value="' . $book->code_journal . '">' . "\n";
 			print '<input type="hidden" name="fk_doc" value="' . $book->fk_doc . '">' . "\n";
 			print '<input type="hidden" name="fk_docdet" value="' . $book->fk_docdet . '">' . "\n";
-			
+
 			print "<table class=\"noborder\" width=\"100%\">";
 			if (count($book->linesmvt) > 0) {
-				
+
 				$total_debit = 0;
 				$total_credit = 0;
-				
+
 				print '<tr class="liste_titre">';
-				
+
 				print_liste_field_titre($langs->trans("AccountAccountingShort"));
 				print_liste_field_titre($langs->trans("Code_tiers"));
 				print_liste_field_titre($langs->trans("Labelcompte"));
@@ -341,18 +341,18 @@ if ($action == 'create') {
 				print_liste_field_titre($langs->trans("Amount"), "", "", "", "", 'align="center"');
 				print_liste_field_titre($langs->trans("Sens"), "", "", "", "", 'align="center"');
 				print_liste_field_titre($langs->trans("Action"), "", "", "", "", 'width="60" align="center"');
-				
+
 				print "</tr>\n";
-				
+
 				foreach ( $book->linesmvt as $line ) {
 					$var = ! $var;
-					print '<tr'. $bc[$var].'>';
-					
+					print '<tr' . $bc[$var] . '>';
+
 					$total_debit += $line->debit;
 					$total_credit += $line->credit;
-					
+
 					if ($action == 'update' && $line->id == $id) {
-						
+
 						print '<td>';
 						print $formventilation->select_account($line->numero_compte, 'account_number', 0, array (), 1, 1, '');
 						print '</td>';
@@ -376,7 +376,7 @@ if ($action == 'create') {
 						print '<td align="right">' . price($line->credit) . '</td>';
 						print '<td align="right">' . price($line->montant) . '</td>';
 						print '<td align="center">' . $line->sens . '</td>';
-						
+
 						print '<td align="center">';
 						print '<a href="./card.php?action=update&amp;id=' . $line->id . '&amp;piece_num=' . $line->piece_num . '">';
 						print img_edit();
@@ -384,23 +384,21 @@ if ($action == 'create') {
 						print '<a href="./card.php?action=delete&amp;id=' . $line->id . '&amp;piece_num=' . $line->piece_num . '">';
 						print img_delete();
 						print '</a>';
-						
+
 						print '</td>';
 					}
 					print "</tr>\n";
 				}
-				
+
 				if ($total_debit != $total_credit) {
 					setEventMessages(null, array (
-							'MvtNotCorrectlyBalanced',
-							$total_credit,
-							$total_debit 
+							$langs->trans('MvtNotCorrectlyBalanced', $total_credit, $total_debit)
 					), 'errors');
 				}
-				
+
 				if ($action == "" || $action == 'add') {
 					$var = ! $var;
-					print '<tr'. $bc[$var].'>';
+					print '<tr' . $bc[$var] . '>';
 					print '<td>';
 					print $formventilation->select_account($account_number, 'account_number', 0, array (), 1, 1, '');
 					print '</td>';

+ 21 - 4
htdocs/accountancy/bookkeeping/list.php

@@ -202,14 +202,22 @@ if ($action == 'delbookkeeping') {
 if ($action == 'delbookkeepingyearconfirm') {
 
 	$delyear = GETPOST('delyear', 'int');
+	if ($delyear==-1) {
+		$delyear=0;
+	}
+	$deljournal = GETPOST('deljournal','alpha');
+	if ($deljournal==-1) {
+		$deljournal=0;
+	}
+
 
-	if (! empty($delyear)) {
-		$result = $object->deleteByYear($delyear);
+	if (! empty($delyear) || ! empty($deljournal)) {
+		$result = $object->deleteByYearAndJournal($delyear,$deljournal);
 		if ($result < 0) {
 			setEventMessages($object->error, $object->errors, 'errors');
 		}
 		Header("Location: list.php");
-		exit();
+		exit;
 	}
 }
 if ($action == 'delmouvconfirm') {
@@ -222,7 +230,7 @@ if ($action == 'delmouvconfirm') {
 			setEventMessages($object->error, $object->errors, 'errors');
 		}
 		Header("Location: list.php");
-		exit();
+		exit;
 	}
 }
 if ($action == 'export_csv') {
@@ -276,11 +284,13 @@ if ($action == 'delbookkeepingyear') {
 
 	$form_question = array ();
 	$delyear = GETPOST('delyear');
+	$deljournal = GETPOST('deljournal');
 
 	if (empty($delyear)) {
 		$delyear = dol_print_date(dol_now(), '%Y');
 	}
 	$year_array = $formventilation->selectyear_accountancy_bookkepping($delyear, 'delyear', 0, 'array');
+	$journal_array = $formventilation->selectjournal_accountancy_bookkepping($deljournal, 'deljournal', 0, 'array');
 
 	$form_question['delyear'] = array (
 			'name' => 'delyear',
@@ -289,6 +299,13 @@ if ($action == 'delbookkeepingyear') {
 			'values' => $year_array,
 			'default' => $delyear
 	);
+	$form_question['deljournal'] = array (
+			'name' => 'deljournal',
+			'type' => 'select',
+			'label' => $langs->trans('DelJournal'),
+			'values' => $journal_array,
+			'default' => $deljournal
+	);
 
 	$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans('DeleteMvt'), $langs->trans('ConfirmDeleteMvt'), 'delbookkeepingyearconfirm', $form_question, 0, 1);
 	print $formconfirm;

文件差异内容过多而无法显示
+ 220 - 174
htdocs/accountancy/class/bookkeeping.class.php


+ 54 - 18
htdocs/accountancy/class/html.formventilation.class.php

@@ -58,7 +58,7 @@ class FormVentilation extends Form
 
 		return Form::selectarray($htmlname, $options, $selectedkey);
 	}
-	
+
 	/**
 	 * Return list of accounts with label by chart of accounts
 	 *
@@ -69,23 +69,23 @@ class FormVentilation extends Form
 	 * @param int $select_in $selectid value is a aa.rowid (0 default) or aa.account_number (1)
 	 * @param int $select_out set value returned by select 0=rowid (default), 1=account_number
 	 * @param int $aabase set accounting_account base class to display empty=all or from 1 to 8 will display only account beginning by this number
-	 *       
+	 *
 	 * @return string String with HTML select
 	 */
 	function select_account($selectid, $htmlname = 'account', $showempty = 0, $event = array(), $select_in = 0, $select_out = 0, $aabase = '') {
 		global $conf;
-		
+
 		require_once DOL_DOCUMENT_ROOT . '/core/lib/accounting.lib.php';
 
 		$trunclength = defined('ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT') ? $conf->global->ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT : 50;
-		
+
 		$sql = "SELECT DISTINCT aa.account_number, aa.label, aa.rowid, aa.fk_pcg_version";
 		$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_account as aa";
 		$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version";
 		$sql .= " AND asy.rowid = " . $conf->global->CHARTOFACCOUNTS;
 		$sql .= " AND aa.active = 1";
 		$sql .= " ORDER BY aa.account_number";
-		
+
 		dol_syslog(get_class($this) . "::select_account", LOG_DEBUG);
 		$resql = $this->db->query($sql);
 
@@ -127,7 +127,7 @@ class FormVentilation extends Form
 		$this->db->free($resql);
 		return $out;
 	}
-	
+
 	/**
 	 * Return list of accounts with label by class of accounts
 	 *
@@ -135,18 +135,18 @@ class FormVentilation extends Form
 	 * @param string $htmlname Name of field in html form
 	 * @param int $showempty Add an empty field
 	 * @param array $event Event options
-	 *       
+	 *
 	 * @return string String with HTML select
 	 */
 	function select_pcgtype($selectid, $htmlname = 'pcg_type', $showempty = 0, $event = array()) {
 		global $conf;
-		
+
 		$sql = "SELECT DISTINCT pcg_type ";
 		$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_account as aa";
 		$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version";
 		$sql .= " AND asy.rowid = " . $conf->global->CHARTOFACCOUNTS;
 		$sql .= " ORDER BY pcg_type";
-		
+
 		dol_syslog(get_class($this) . "::select_pcgtype", LOG_DEBUG);
 		$resql = $this->db->query($sql);
 
@@ -168,7 +168,7 @@ class FormVentilation extends Form
 		$this->db->free($resql);
 		return $out;
 	}
-	
+
 	/**
 	 * Return list of accounts with label by sub_class of accounts
 	 *
@@ -176,18 +176,18 @@ class FormVentilation extends Form
 	 * @param string $htmlname Name of field in html form
 	 * @param int $showempty Add an empty field
 	 * @param array $event Event options
-	 *       
+	 *
 	 * @return string String with HTML select
 	 */
 	function select_pcgsubtype($selectid, $htmlname = 'pcg_subtype', $showempty = 0, $event = array()) {
 		global $conf;
-		
+
 		$sql = "SELECT DISTINCT pcg_subtype ";
 		$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_account as aa";
 		$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version";
 		$sql .= " AND asy.rowid = " . $conf->global->CHARTOFACCOUNTS;
 		$sql .= " ORDER BY pcg_subtype";
-		
+
 		dol_syslog(get_class($this) . "::select_pcgsubtype", LOG_DEBUG);
 		$resql = $this->db->query($sql);
 
@@ -209,7 +209,7 @@ class FormVentilation extends Form
 		$this->db->free($resql);
 		return $out;
 	}
-	
+
 	/**
 	 * Return list of auxilary thirdparty accounts
 	 *
@@ -217,7 +217,7 @@ class FormVentilation extends Form
 	 * @param string $htmlname Name of field in html form
 	 * @param int $showempty Add an empty field
 	 * @param array $event Event options
-	 *       
+	 *
 	 * @return string String with HTML select
 	 */
 	function select_auxaccount($selectid, $htmlname = 'account_num_aux', $showempty = 0, $event = array()) {
@@ -246,7 +246,7 @@ class FormVentilation extends Form
 		// Auxiliary supplier account
 		$sql = "SELECT DISTINCT code_compta_fournisseur, nom ";
 		$sql .= " FROM ".MAIN_DB_PREFIX."societe";
-		$sql .= " ORDER BY code_compta";
+		$sql .= " ORDER BY code_compta_fournisseur";
 		dol_syslog(get_class($this)."::select_auxaccount", LOG_DEBUG);
 		$resql = $this->db->query($sql);
 		if ($resql) {
@@ -268,7 +268,7 @@ class FormVentilation extends Form
 
 		return $out;
 	}
-	
+
 	/**
 	 * Return HTML combo list of years existing into book keepping
 	 *
@@ -284,7 +284,7 @@ class FormVentilation extends Form
 
 		$sql = "SELECT DISTINCT date_format(doc_date,'%Y') as dtyear";
 		$sql .= " FROM ".MAIN_DB_PREFIX."accounting_bookkeeping";
-		$sql .= " ORDER BY doc_date";
+		$sql .= " ORDER BY date_format(doc_date,'%Y')";
 		dol_syslog(get_class($this)."::".__METHOD__, LOG_DEBUG);
 		$resql = $this->db->query($sql);
 
@@ -304,4 +304,40 @@ class FormVentilation extends Form
 			return $out_array;
 		}
 	}
+
+	/**
+	 * Return HTML combo list of years existing into book keepping
+	 *
+	 * @param string $selected Preselected value
+	 * @param string $htmlname Name of HTML select object
+	 * @param int $useempty Affiche valeur vide dans liste
+	 * @param string $output_format (html/opton (for option html only)/array (to return options arrays
+	 * @return string/array
+	 */
+	function selectjournal_accountancy_bookkepping($selected = '', $htmlname = 'journalid', $useempty = 0, $output_format = 'html')
+	{
+		$out_array = array();
+
+		$sql = "SELECT DISTINCT code_journal";
+		$sql .= " FROM ".MAIN_DB_PREFIX."accounting_bookkeeping";
+		$sql .= " ORDER BY code_journal";
+		dol_syslog(get_class($this)."::".__METHOD__, LOG_DEBUG);
+		$resql = $this->db->query($sql);
+
+		if (!$resql) {
+			$this->error = "Error ".$this->db->lasterror();
+			dol_syslog(get_class($this)."::".__METHOD__.$this->error, LOG_ERR);
+			return -1;
+		}
+		while ($obj = $this->db->fetch_object($resql)) {
+			$out_array[$obj->code_journal] = $obj->code_journal;
+		}
+		$this->db->free($resql);
+
+		if ($output_format == 'html') {
+			return Form::selectarray($htmlname, $out_array, $selected, $useempty, 0, 0, 'placeholder="aa"');
+		} else {
+			return $out_array;
+		}
+	}
 }

+ 11 - 12
htdocs/accountancy/journal/purchasesjournal.php

@@ -138,7 +138,7 @@ if ($result) {
 		//Define array for display vat tx
 		$def_tva[$obj->rowid]=price($obj->tva_tx);
 
-		$tabfac[$obj->rowid]["date"] = $obj->df;
+		$tabfac[$obj->rowid]["date"] = $db->jdate($obj->df);
 		$tabfac[$obj->rowid]["ref"] = $obj->ref_supplier . ' (' . $obj->ref . ')';
 		$tabfac[$obj->rowid]["refsologest"] = $obj->ref;
 		$tabfac[$obj->rowid]["refsuppliersologest"] = $obj->ref_supplier;
@@ -193,7 +193,7 @@ if ($action == 'writebookkeeping') {
 			$bookkeeping->fk_doc = $key;
 			$bookkeeping->fk_docdet = $val["fk_facturefourndet"];
 			$bookkeeping->code_tiers = $tabcompany[$key]['code_fournisseur'];
-			$bookkeeping->label_compte = utf8_decode(dol_trunc($companystatic->name, 16)) . ' - ' . $invoicestatic->refsupplier . ' - ' . $langs->trans("Code_tiers");
+			$bookkeeping->label_compte = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->refsupplier . ' - ' . $langs->trans("Code_tiers");
 			$bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER;
 			$bookkeeping->montant = $mt;
 			$bookkeeping->sens = ($mt >= 0) ? 'C' : 'D';
@@ -225,7 +225,7 @@ if ($action == 'writebookkeeping') {
 					$bookkeeping->fk_doc = $key;
 					$bookkeeping->fk_docdet = $val["fk_facturefourndet"];
 					$bookkeeping->code_tiers = '';
-					$bookkeeping->label_compte = utf8_decode(dol_trunc($companystatic->name, 16)) . ' - ' . $invoicestatic->refsupplier . ' - ' . utf8_decode($accountingaccount->label);
+					$bookkeeping->label_compte = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->refsupplier . ' - ' . $accountingaccount->label;
 					$bookkeeping->numero_compte = $k;
 					$bookkeeping->montant = $mt;
 					$bookkeeping->sens = ($mt < 0) ? 'C' : 'D';
@@ -256,7 +256,7 @@ if ($action == 'writebookkeeping') {
 				$bookkeeping->fk_doc = $key;
 				$bookkeeping->fk_docdet = $val["fk_facturefourndet"];
 				$bookkeeping->code_tiers = '';
-				$bookkeeping->label_compte = utf8_decode(dol_trunc($companystatic->name, 16)) . ' - ' . $invoicestatic->refsupplier . ' - ' . $langs->trans("VAT"). ' '.$def_tva[$key];
+				$bookkeeping->label_compte = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->refsupplier . ' - ' . $langs->trans("VAT"). ' '.$def_tva[$key];
 				$bookkeeping->numero_compte = $k;
 				$bookkeeping->montant = $mt;
 				$bookkeeping->sens = ($mt < 0) ? 'C' : 'D';
@@ -297,7 +297,7 @@ if ($action == 'export_csv') {
 			$sep = ";";
 
 			foreach ( $tabfac as $key => $val ) {
-				$date = dol_print_date($db->jdate($val["date"]), '%d%m%Y');
+				$date = dol_print_date($val["date"], '%d%m%Y');
 
 				// Product / Service
 				foreach ( $tabht[$key] as $k => $mt ) {
@@ -340,7 +340,7 @@ if ($action == 'export_csv') {
 					print length_accounta(html_entity_decode($k)) . $sep;
 					print ($mt < 0 ? 'D' : 'C') . $sep;
 					print ($mt <= 0 ? price(- $mt) : $mt) . $sep;
-					print utf8_decode($companystatic->name) . $sep;
+					print $companystatic->name . $sep;
 					print $val["ref"];
 					print "\n";
 				}
@@ -356,7 +356,7 @@ if ($action == 'export_csv') {
 				$invoicestatic->type = $val["type"];
 				$invoicestatic->description = html_entity_decode(dol_trunc($val["description"], 32));
 
-				$date = dol_print_date($db->jdate($val["date"]), 'day');
+				$date = dol_print_date($val["date"], 'day');
 
 				$companystatic->id = $tabcompany[$key]['id'];
 				$companystatic->name = $tabcompany[$key]['name'];
@@ -370,7 +370,7 @@ if ($action == 'export_csv') {
 						print '"' . $date . '"' . $sep;
 						print '"' . $val["ref"] . '"' . $sep;
 						print '"' . length_accountg(html_entity_decode($k)) . '"' . $sep;
-						print '"' . utf8_decode(dol_trunc($companystatic->name, 16)) . ' - ' . $val["refsuppliersologest"] . ' - ' . utf8_decode(dol_trunc($accountingaccount->label, 32)) . '"' . $sep;
+						print '"' . dol_trunc($companystatic->name, 16) . ' - ' . $val["refsuppliersologest"] . ' - ' . dol_trunc($accountingaccount->label, 32) . '"' . $sep;
 						// print '"' . dol_trunc($accountingaccount->label, 32) . '"' . $sep;
 						print '"' . ($mt >= 0 ? price($mt) : '') . '"' . $sep;
 						print '"' . ($mt < 0 ? price(- $mt) : '') . '"';
@@ -384,7 +384,7 @@ if ($action == 'export_csv') {
 						print '"' . $val["ref"] . '"' . $sep;
 						print '"' . length_accountg(html_entity_decode($k)) . '"' . $sep;
 						// print '"' . $langs->trans("VAT") . '"' . $sep;
-						print '"' . utf8_decode(dol_trunc($companystatic->name, 16)) . ' - ' . $val["refsuppliersologest"] . ' - ' . $langs->trans("VAT") . '"' . $sep;
+						print '"' . dol_trunc($companystatic->name, 16) . ' - ' . $val["refsuppliersologest"] . ' - ' . $langs->trans("VAT") . '"' . $sep;
 						print '"' . ($mt >= 0 ? price($mt) : '') . '"' . $sep;
 						print '"' . ($mt < 0 ? price(- $mt) : '') . '"';
 						print "\n";
@@ -396,8 +396,7 @@ if ($action == 'export_csv') {
 					print '"' . $date . '"' . $sep;
 					print '"' . $val["ref"] . '"' . $sep;
 					print '"' . length_accounta(html_entity_decode($k)) . '"' . $sep;
-					// print '"' . utf8_decode($companystatic->name) . '"' . $sep;
-					print '"' . utf8_decode(dol_trunc($companystatic->name, 16)) . ' - ' . $val["refsuppliersologest"] . ' - ' . $langs->trans("Code_tiers") . '"' . $sep;
+					print '"' . dol_trunc($companystatic->name, 16) . ' - ' . $val["refsuppliersologest"] . ' - ' . $langs->trans("Code_tiers") . '"' . $sep;
 					print '"' . ($mt < 0 ? price(- $mt) : '') . '"' . $sep;
 					print '"' . ($mt >= 0 ? price($mt) : '') . '"';
 				}
@@ -479,7 +478,7 @@ if ($action == 'export_csv') {
 		$invoicestatic->type = $val["type"];
 		$invoicestatic->description = html_entity_decode(dol_trunc($val["description"], 32));
 
-		$date = dol_print_date($db->jdate($val["date"]), 'day');
+		$date = dol_print_date($val["date"], 'day');
 
 		// Product / Service
 		foreach ( $tabht[$key] as $k => $mt ) {

+ 14 - 19
htdocs/accountancy/journal/sellsjournal.php

@@ -161,7 +161,7 @@ if ($result) {
 		}
 
 		// Invoice lines
-		$tabfac[$obj->rowid]["date"] = $obj->df;
+		$tabfac[$obj->rowid]["date"] = $db->jdate($obj->df);
 		$tabfac[$obj->rowid]["ref"] = $obj->facnumber;
 		$tabfac[$obj->rowid]["type"] = $obj->type;
 		$tabfac[$obj->rowid]["description"] = $obj->label_compte;
@@ -220,7 +220,7 @@ if ($action == 'writebookkeeping') {
 			$bookkeeping->code_tiers = $tabcompany[$key]['code_client'];
 			$bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER;
 			// $bookkeeping->label_compte = $tabcompany[$key]['name'];
-			$bookkeeping->label_compte = utf8_decode(dol_trunc($companystatic->name, 16)) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("Code_tiers");
+			$bookkeeping->label_compte = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("Code_tiers");
 			$bookkeeping->montant = $mt;
 			$bookkeeping->sens = ($mt >= 0) ? 'D' : 'C';
 			$bookkeeping->debit = ($mt >= 0) ? $mt : 0;
@@ -250,7 +250,7 @@ if ($action == 'writebookkeeping') {
 					$bookkeeping->fk_docdet = $val["fk_facturedet"];
 					$bookkeeping->code_tiers = '';
 					$bookkeeping->numero_compte = $k;
-					$bookkeeping->label_compte = utf8_decode(dol_trunc($companystatic->name, 16)) . ' - ' . $invoicestatic->ref . ' - ' . utf8_decode($accountingaccount->label);
+					$bookkeeping->label_compte = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref . ' - ' . $accountingaccount->label;
 					$bookkeeping->montant = $mt;
 					$bookkeeping->sens = ($mt < 0) ? 'D' : 'C';
 					$bookkeeping->debit = ($mt < 0) ? $mt : 0;
@@ -280,7 +280,7 @@ if ($action == 'writebookkeeping') {
 				$bookkeeping->fk_docdet = $val["fk_facturedet"];
 				$bookkeeping->code_tiers = '';
 				$bookkeeping->numero_compte = $k;
-				$bookkeeping->label_compte = utf8_decode(dol_trunc($companystatic->name, 16)) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("VAT").' '.$def_tva[$key];
+				$bookkeeping->label_compte = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("VAT").' '.$def_tva[$key];
 				$bookkeeping->montant = $mt;
 				$bookkeeping->sens = ($mt < 0) ? 'D' : 'C';
 				$bookkeeping->debit = ($mt < 0) ? $mt : 0;
@@ -324,7 +324,7 @@ if ($action == 'export_csv') {
 			$invoicestatic->id = $key;
 			$invoicestatic->ref = $val["ref"];
 
-			$date = dol_print_date($db->jdate($val["date"]), '%d%m%Y');
+			$date = dol_print_date($val["date"], '%d%m%Y');
 
 			foreach ( $tabttc[$key] as $k => $mt ) {
 				print $date . $sep;
@@ -333,8 +333,7 @@ if ($action == 'export_csv') {
 				print length_accounta(html_entity_decode($k)) . $sep;
 				print ($mt < 0 ? 'C' : 'D') . $sep;
 				print ($mt <= 0 ? price(- $mt) : $mt) . $sep;
-				print utf8_decode(dol_trunc($companystatic->name, 16)) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("Code_tiers") . $sep;
-				// print utf8_decode($companystatic->name) . $sep;
+				print dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("Code_tiers") . $sep;
 				print $val["ref"];
 				print "\n";
 			}
@@ -349,8 +348,7 @@ if ($action == 'export_csv') {
 					print $sep;
 					print ($mt < 0 ? 'D' : 'C') . $sep;
 					print ($mt <= 0 ? price(- $mt) : $mt) . $sep;
-					print utf8_decode(dol_trunc($companystatic->name, 16)) . ' - ' . $invoicestatic->ref . ' - ' . utf8_decode(utf8_decode($accountingaccount_static->label)) . $sep;
-					// print dol_trunc($accountingaccount_static->label, 32) . $sep;
+					print dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref . ' - ' . $accountingaccount_static->label . $sep;
 					print $val["ref"];
 					print "\n";
 				}
@@ -365,7 +363,7 @@ if ($action == 'export_csv') {
 					print $sep;
 					print ($mt < 0 ? 'D' : 'C') . $sep;
 					print ($mt <= 0 ? price(- $mt) : $mt) . $sep;
-					print utf8_decode(dol_trunc($companystatic->name, 16)) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("VAT") . $sep;
+					print dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("VAT") . $sep;
 					// print $langs->trans("VAT") . $sep;
 					print $val["ref"];
 					print "\n";
@@ -382,14 +380,13 @@ if ($action == 'export_csv') {
 			$invoicestatic->id = $key;
 			$invoicestatic->ref = $val["ref"];
 
-			$date = dol_print_date($db->jdate($val["date"]), 'day');
+			$date = dol_print_date($val["date"], 'day');
 
 			foreach ( $tabttc[$key] as $k => $mt ) {
 				print '"' . $date . '"' . $sep;
 				print '"' . $val["ref"] . '"' . $sep;
 				print '"' . length_accounta(html_entity_decode($k)) . '"' . $sep;
-				print '"' . utf8_decode(dol_trunc($companystatic->name, 16)) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("Code_tiers") . '"' . $sep;
-				// print '"' . utf8_decode($companystatic->name) . '"' . $sep;
+				print '"' . dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("Code_tiers") . '"' . $sep;
 				print '"' . ($mt >= 0 ? price($mt) : '') . '"' . $sep;
 				print '"' . ($mt < 0 ? price(- $mt) : '') . '"';
 				print "\n";
@@ -404,8 +401,7 @@ if ($action == 'export_csv') {
 					print '"' . $date . '"' . $sep;
 					print '"' . $val["ref"] . '"' . $sep;
 					print '"' . length_accountg(html_entity_decode($k)) . '"' . $sep;
-					print '"' . utf8_decode(dol_trunc($companystatic->name, 16)) . ' - ' . utf8_decode(dol_trunc($accountingaccount->label, 32)) . '"' . $sep;
-					// print '"' . dol_trunc($accountingaccount->label, 32) . '"' . $sep;
+					print '"' . dol_trunc($companystatic->name, 16) . ' - ' . dol_trunc($accountingaccount->label, 32) . '"' . $sep;
 					print '"' . ($mt < 0 ? price(- $mt) : '') . '"' . $sep;
 					print '"' . ($mt >= 0 ? price($mt) : '') . '"';
 					print "\n";
@@ -418,8 +414,7 @@ if ($action == 'export_csv') {
 					print '"' . $date . '"' . $sep;
 					print '"' . $val["ref"] . '"' . $sep;
 					print '"' . length_accountg(html_entity_decode($k)) . '"' . $sep;
-					print '"' . utf8_decode(dol_trunc($companystatic->name, 16)) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("VAT") . '"' . $sep;
-					// print '"' . $langs->trans("VAT") . '"' . $sep;
+					print '"' . dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("VAT") . '"' . $sep;
 					print '"' . ($mt < 0 ? price(- $mt) : '') . '"' . $sep;
 					print '"' . ($mt >= 0 ? price($mt) : '') . '"';
 					print "\n";
@@ -497,7 +492,7 @@ if ($action == 'export_csv') {
 		$invoicestatic->ref = $val["ref"];
 		$invoicestatic->type = $val["type"];
 
-		$date = dol_print_date($db->jdate($val["date"]), 'day');
+		$date = dol_print_date($val["date"], 'day');
 
 		// Third party
 		foreach ( $tabttc[$key] as $k => $mt ) {
@@ -527,7 +522,7 @@ if ($action == 'export_csv') {
 				print "<td>" . $invoicestatic->getNomUrl(1) . "</td>";
 				print "<td>" . length_accountg($k) . "</td>";
 				// print "<td>" . $accountingaccount->label . "</td>";
-				print "<td>" . $companystatic->getNomUrl(0, 'customer', 16) . ' - ' . $invoicestatic->ref . ' - ' . utf8_decode(utf8_decode($accountingaccount->label)) . "</td>";
+				print "<td>" . $companystatic->getNomUrl(0, 'customer', 16) . ' - ' . $invoicestatic->ref . ' - ' . $accountingaccount->label . "</td>";
 				print "<td align='right'>" . ($mt < 0 ? price(- $mt) : '') . "</td>";
 				print "<td align='right'>" . ($mt >= 0 ? price($mt) : '') . "</td>";
 				print "</tr>";

+ 6 - 0
htdocs/langs/en_US/accountancy.lang

@@ -84,6 +84,11 @@ AccountingCategory=Accounting category
 
 NotMatch=Not Set
 
+DeleteMvt=Delete general ledger lines
+DelYear=Year to delete
+DelJournal=Journal to delete
+ConfirmDeleteMvt=This will delete all line of of the general ledger for year and/or from a specifics journal
+
 DelBookKeeping=Delete the records of the general ledger
 
 DescSellsJournal=Sales journal
@@ -160,3 +165,4 @@ Formula=Formula
 ## Error
 ErrorNoAccountingCategoryForThisCountry=No accounting category are available for this country
 ExportNotSupported=The export format setuped is not supported into this page
+BookeppingLineAlreayExists=Lines already existing into bookeeping

部分文件因为文件数量过多而无法显示