Browse Source

Add list to select journal in bank

Alexandre SPANGARO 8 years ago
parent
commit
68aaef2f66

+ 10 - 10
htdocs/accountancy/class/accountingjournal.class.php

@@ -136,19 +136,19 @@ class AccountingJournal extends CommonObject
 	    if ($mode == 0)
 	    {
 	        $prefix='';
-			if ($nature == 9) return $langs->trans('AccountingJournalTypeHasNew');
-			if ($nature == 3) return $langs->trans('AccountingJournalTypeBank');
-			if ($nature == 2) return $langs->trans('AccountingJournalTypePurchase');
-	        if ($nature == 1) return $langs->trans('AccountingJournalTypeSale');
-	        if ($nature == 0) return $langs->trans('AccountingJournalTypeVariousOperation');
+			if ($nature == 9) return $langs->trans('AccountingJournalType9');
+			if ($nature == 4) return $langs->trans('AccountingJournalType4');
+			if ($nature == 3) return $langs->trans('AccountingJournalType3');
+	        if ($nature == 2) return $langs->trans('AccountingJournalType2');
+	        if ($nature == 1) return $langs->trans('AccountingJournalType1');
 	    }
 	    if ($mode == 1)
 	    {
-			if ($nature == 9) return $langs->trans('AccountingJournalTypeHasNew');
-			if ($nature == 3) return $langs->trans('AccountingJournalTypeBank');
-			if ($nature == 2) return $langs->trans('AccountingJournalTypePurchase');
-	        if ($nature == 1) return $langs->trans('AccountingJournalTypeSale');
-	        if ($nature == 0) return $langs->trans('AccountingJournalTypeVariousOperation');
+			if ($nature == 9) return $langs->trans('AccountingJournalType9');
+			if ($nature == 4) return $langs->trans('AccountingJournalType4');
+			if ($nature == 3) return $langs->trans('AccountingJournalType3');
+	        if ($nature == 2) return $langs->trans('AccountingJournalType2');
+	        if ($nature == 1) return $langs->trans('AccountingJournalType1');
 	    }
 	}
 }

+ 9 - 3
htdocs/compta/bank/card.php

@@ -36,6 +36,7 @@ require_once DOL_DOCUMENT_ROOT . '/compta/bank/class/account.class.php';
 require_once DOL_DOCUMENT_ROOT . '/core/class/extrafields.class.php';
 if (! empty($conf->categorie->enabled)) require_once DOL_DOCUMENT_ROOT . '/categories/class/categorie.class.php';
 if (! empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT . '/accountancy/class/html.formventilation.class.php';
+if (! empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT . '/core/class/html.formaccounting.class.php';
 if (! empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountingaccount.class.php';
 
 $langs->load("banks");
@@ -278,6 +279,7 @@ $form = new Form($db);
 $formbank = new FormBank($db);
 $formcompany = new FormCompany($db);
 if (! empty($conf->accounting->enabled)) $formaccountancy = New FormVentilation($db);
+if (! empty($conf->accounting->enabled)) $formaccountancy2 = New FormAccounting($db);
 
 $countrynotdefined=$langs->trans("ErrorSetACountryFirst").' ('.$langs->trans("SeeAbove").')';
 
@@ -534,7 +536,9 @@ if ($action == 'create')
 	if (! empty($conf->accounting->enabled))
 	{
 		print '<tr><td>'.$langs->trans("AccountancyJournal").'</td>';
-	    print '<td colspan="3"><input type="text" name="accountancy_journal" value="'.(GETPOST("accountancy_journal")?GETPOST('accountancy_journal', 'alpha'):$object->accountancy_journal).'"></td></tr>';
+	    print '<td>';
+		print $formaccountancy2->select_journal($object->accountancy_journal, 'accountancy_journal', 4, 1, '', 1, 1);
+		print '</td></tr>';
 	}
 
 	print '</table>';
@@ -980,8 +984,10 @@ else
 		// Accountancy journal
 		if (! empty($conf->accounting->enabled))
 		{
-		    print '<tr><td>'.$langs->trans("AccountancyJournal").'</td>';
-		    print '<td><input type="text" name="accountancy_journal" value="'.(isset($_POST["accountancy_journal"])?GETPOST("accountancy_journal"):$object->accountancy_journal).'"></td></tr>';
+			print '<tr><td>'.$langs->trans("AccountancyJournal").'</td>';
+			print '<td>';
+			print $formaccountancy2->select_journal($object->accountancy_journal, 'accountancy_journal', 4, 1, '', 1, 1);
+			print '</td></tr>';
 		}
 		
 		print '</table>';

+ 40 - 28
htdocs/core/class/html.formaccounting.class.php

@@ -60,37 +60,49 @@ class FormAccounting extends Form
 	{
 		global $conf;
 
-		$sql = "SELECT rowid, code, label, nature, entity, active";
-		$sql.= " FROM " . MAIN_DB_PREFIX . "accounting_journal";
-		$sql.= " WHERE entity = ".$conf->entity;
-		$sql.= " AND active = 1";
-		if (empty($nature)) $sql.= " AND nature = ".$nature;
-		$sql.= " ORDER BY code";
-
-		dol_syslog(get_class($this) . "::select_journal", LOG_DEBUG);
-		$resql = $this->db->query($sql);
-
-		if (!$resql) {
-			$this->error = "Error ".$this->db->lasterror();
-			dol_syslog(get_class($this)."::select_journal ".$this->error, LOG_ERR);
-			return -1;
-		}
-
-		$options = array();
-		$out = ajax_combobox($htmlname, $event);
+		$out = '';
 
-    	$selected = 0;
-    	while ($obj = $this->db->fetch_object($resql))
-    	{
-		    $label = $obj->code . ' - ' . $obj->label;
+    	$options = array();
+		if ($usecache && ! empty($this->options_cache[$usecache]))
+		{
+		    $options = $this->options_cache[$usecache];
+		    $selected=$selectid;
+		}
+		else
+		{
+			$sql = "SELECT rowid, code, label, nature, entity, active";
+			$sql.= " FROM " . MAIN_DB_PREFIX . "accounting_journal";
+			$sql.= " WHERE active = 1";
+			$sql.= " AND entity = ".$conf->entity;
+			//if ($nature && is_numeric($nature))   $sql .= " AND nature = ".$nature;
+			$sql.= " ORDER BY code";
+
+			dol_syslog(get_class($this) . "::select_journal", LOG_DEBUG);
+			$resql = $this->db->query($sql);
+
+			if (!$resql) {
+				$this->error = "Error ".$this->db->lasterror();
+				dol_syslog(get_class($this)."::select_journal ".$this->error, LOG_ERR);
+				return -1;
+			}
+
+			$out = ajax_combobox($htmlname, $event);
+
+			while ($obj = $this->db->fetch_object($resql))
+			{
+				$label = $obj->code . ' - ' . $obj->label;
+				$select_value_out = $obj->rowid;
+
+				$options[$select_value_out] = $label;
+			}
+			$this->db->free($resql);
+
+			if ($usecache)
+			{
+				$this->options_cache[$usecache] = $options;
+			}
 		}
-    	$this->db->free($resql);
 
-    	if ($usecache)
-    	{
-            $this->options_cache[$usecache] = $options;
-    	}
-		
 		$out .= Form::selectarray($htmlname, $options, $selectid, $showempty, 0, 0, '', 0, 0, 0, '', $morecss, 1);
 
 		return $out;

+ 7 - 0
htdocs/install/mysql/migration/5.0.0-6.0.0.sql

@@ -259,4 +259,11 @@ UPDATE llx_accounting_journal SET nature = 3 where code = 'AC' and nature = 2;
 UPDATE llx_accounting_journal SET nature = 4 where (code = 'BK' or code = 'BQ') and nature = 3;
 
 
+ALTER TABLE llx_bank_account CHANGE COLUMN accountancy_journal fk_accountancy_journal integer;
+ALTER TABLE llx_bank_account ADD CONSTRAINT bank_fk_accountancy_journal FOREIGN KEY (fk_accountancy_journal) REFERENCES llx_accounting_journal (rowid);
+
+
+
+
+
 

+ 1 - 1
htdocs/install/mysql/tables/llx_accounting_journal.sql

@@ -23,6 +23,6 @@ create table llx_accounting_journal
   entity            integer DEFAULT 1,
   code       		varchar(32) NOT NULL,
   label             varchar(128) NOT NULL,
-  nature			smallint DEFAULT 0 NOT NULL,			-- type of journals (1:various operations / 2:sale / 3:purchase / 4:bank / 9: has-new)
+  nature			smallint DEFAULT 1 NOT NULL,			-- type of journals (1:various operations / 2:sale / 3:purchase / 4:bank / 9: has-new)
   active            smallint DEFAULT 0
 )ENGINE=innodb;

+ 2 - 0
htdocs/install/mysql/tables/llx_bank_account.key.sql

@@ -19,3 +19,5 @@
 
 
 ALTER TABLE llx_bank_account ADD UNIQUE uk_bank_account_label (label,entity);
+
+ALTER TABLE llx_bank_account ADD CONSTRAINT bank_fk_accountancy_journal FOREIGN KEY (fk_accountancy_journal) REFERENCES llx_accounting_journal (rowid);

+ 35 - 35
htdocs/install/mysql/tables/llx_bank_account.sql

@@ -24,39 +24,39 @@
 
 create table llx_bank_account
 (
-  rowid					integer AUTO_INCREMENT PRIMARY KEY,
-  datec					datetime,
-  tms					timestamp,
-  ref					varchar(12) NOT NULL,
-  label					varchar(30) NOT NULL,
-  entity				integer DEFAULT 1 NOT NULL,	-- multi company id
-  fk_user_author		integer,
-  fk_user_modif			integer,
-  bank					varchar(60),
-  code_banque			varchar(128),
-  code_guichet			varchar(6),
-  number				varchar(255),
-  cle_rib				varchar(5),
-  bic					varchar(11),
-  iban_prefix			varchar(34),				-- full iban. 34 according to ISO 13616
-  country_iban			varchar(2),					-- deprecated
-  cle_iban				varchar(2),
-  domiciliation			varchar(255),
-  state_id				integer        DEFAULT NULL,
-  fk_pays				integer        NOT NULL,
-  proprio				varchar(60),
-  owner_address     	varchar(255),
-  courant				smallint DEFAULT 0 NOT NULL,
-  clos					smallint DEFAULT 0 NOT NULL,
-  rappro				smallint DEFAULT 1,
-  url					varchar(128),
-  account_number		varchar(32),				-- bank accountancy number
-  accountancy_journal	varchar(16) DEFAULT NULL,	-- bank accountancy journal
-  currency_code			varchar(3) NOT NULL,
-  min_allowed			integer DEFAULT 0,
-  min_desired			integer DEFAULT 0,
-  comment				text,						-- TODO rename in note_private
-  note_public     		text,
-  model_pdf       		varchar(255),
-  import_key      		varchar(14)
+  rowid						integer AUTO_INCREMENT PRIMARY KEY,
+  datec						datetime,
+  tms						timestamp,
+  ref						varchar(12) NOT NULL,
+  label						varchar(30) NOT NULL,
+  entity					integer DEFAULT 1 NOT NULL,	-- multi company id
+  fk_user_author			integer,
+  fk_user_modif				integer,
+  bank						varchar(60),
+  code_banque				varchar(128),
+  code_guichet				varchar(6),
+  number					varchar(255),
+  cle_rib					varchar(5),
+  bic						varchar(11),
+  iban_prefix				varchar(34),				-- full iban. 34 according to ISO 13616
+  country_iban				varchar(2),					-- deprecated
+  cle_iban					varchar(2),
+  domiciliation				varchar(255),
+  state_id					integer        DEFAULT NULL,
+  fk_pays					integer        NOT NULL,
+  proprio					varchar(60),
+  owner_address				varchar(255),
+  courant					smallint DEFAULT 0 NOT NULL,
+  clos						smallint DEFAULT 0 NOT NULL,
+  rappro					smallint DEFAULT 1,
+  url						varchar(128),
+  account_number			varchar(32),				-- bank accountancy number
+  fk_accountancy_journal	integer,					-- bank accountancy journal
+  currency_code				varchar(3) NOT NULL,
+  min_allowed				integer DEFAULT 0,
+  min_desired				integer DEFAULT 0,
+  comment					text,						-- TODO rename in note_private
+  note_public				text,
+  model_pdf					varchar(255),
+  import_key				varchar(14)
 )ENGINE=innodb;