[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Noalyss-commit] [noalyss] 25/33: Improve ACC_LEDGER compute internal le
From: |
Dany De Bontridder |
Subject: |
[Noalyss-commit] [noalyss] 25/33: Improve ACC_LEDGER compute internal ledger code in base 36 |
Date: |
Thu, 11 Nov 2021 06:02:50 -0500 (EST) |
sparkyx pushed a commit to branch master
in repository noalyss.
commit ba479d38427f5a1ba1e53d30018ad7321a131ec2
Author: sparkyx <danydb@noalyss.eu>
AuthorDate: Mon Oct 25 12:42:56 2021 +0200
Improve ACC_LEDGER compute internal ledger code in base 36
---
include/class/acc_ledger.class.php | 32 ++++++++++++++++-------------
unit-test/include/class/acc_ledger.Test.php | 32 ++++++++++++++++++++++++++++-
2 files changed, 49 insertions(+), 15 deletions(-)
diff --git a/include/class/acc_ledger.class.php
b/include/class/acc_ledger.class.php
index a9cfcab..5595479 100644
--- a/include/class/acc_ledger.class.php
+++ b/include/class/acc_ledger.class.php
@@ -26,7 +26,9 @@ require_once
NOALYSS_INCLUDE.'/database/operation_currency_sql.class.php';
* @brief Class for jrn, class acc_ledger for manipulating the ledger
*/
-/** @brief Class for jrn, class acc_ledger for manipulating the ledger
+/**
+ * @class
+ * @brief Class for jrn, class acc_ledger for manipulating the ledger AND
some acc. operations
*
*/
class Acc_Ledger extends jrn_def_sql
@@ -73,7 +75,7 @@ class Acc_Ledger extends jrn_def_sql
}
/**
- * retrieve currency_id from database
+ * @brief retrieve currency_id from database
*/
function set_currency_id()
{
@@ -108,7 +110,7 @@ class Acc_Ledger extends jrn_def_sql
return 0;
}
/**
- * Set the jrn_def.jrn_def_id
+ * @brief Set the jrn_def.jrn_def_id
* @param integer $p_id
*/
function set_ledger_id($p_id)
@@ -117,7 +119,7 @@ class Acc_Ledger extends jrn_def_sql
$this->jrn_def_id=&$this->id;
}
/**
- * Set the jrn_def.jrn_def_id
+ * @brief Set the jrn_def.jrn_def_id
* @return integer
*/
function get_ledger_id()
@@ -149,7 +151,7 @@ class Acc_Ledger extends jrn_def_sql
}
/**
- * let you delete a operation
+ * @brief let you delete a operation
* @note by cascade it will delete also in
* - jrnx
* - stock
@@ -181,7 +183,7 @@ class Acc_Ledger extends jrn_def_sql
}
/**
- * Display warning contained in an array
+ * @brief Display warning contained in an array
* @return string with error message
*/
function display_warning($pa_msg, $p_warning)
@@ -198,7 +200,7 @@ class Acc_Ledger extends jrn_def_sql
}
/**
- * reverse the operation by creating the opposite one,
+ * @brief reverse the operation by creating the opposite one,
* the result is to avoid it
* it must be done in
* - jrn
@@ -1587,8 +1589,8 @@ class Acc_Ledger extends jrn_def_sql
{
if (!isset($this->grpt_id))
throw new Exception(('ERREUR '.__FILE__.":".__LINE__));
- $Res=$this->db->exec_sql("update jrn set jr_internal='".$p_internal."'
where ".
- " jr_grpt_id = ".$this->grpt_id);
+ $Res=$this->db->exec_sql("update jrn set jr_internal=$1 where
+ jr_grpt_id = $2 ",array($p_internal,$this->grpt_id));
}
/**
@@ -2841,8 +2843,8 @@ class Acc_Ledger extends jrn_def_sql
}
/**
- * Insert a new ledger
- * @param type $array normally $_POST
+ * @brief Insert a new ledger , member variable like jrn_def_id will
changed
+ * @param array $array normally $_POST
* @see verify_ledger
*/
function save_new($array)
@@ -2856,9 +2858,11 @@ class Acc_Ledger extends jrn_def_sql
$this->jrn_def_type=$p_jrn_type;
$this->jrn_def_pj_pref=$jrn_def_pj_pref;
$this->jrn_deb_max_line=$min_row;
- $this->jrn_def_code=sprintf("%s%02d",
- trim(substr($this->jrn_def_type, 0, 1)),
- Acc_Ledger::next_number($this->db, $this->jrn_def_type));
+ $this->jrn_def_code=trim(substr($this->jrn_def_type, 0, 1));
+ $this->jrn_def_code.=str_pad(
+ base_convert(
+ Acc_Ledger::next_number($this->db,
$this->jrn_def_type),10,36),2,"0",STR_PAD_LEFT);
+ $this->jrn_def_code=strtoupper($this->jrn_def_code);
$this->jrn_def_description=$p_description;
$this->currency_id=0;
$this->jrn_def_negative_amount=$negative_amount;
diff --git a/unit-test/include/class/acc_ledger.Test.php
b/unit-test/include/class/acc_ledger.Test.php
index 7959dd1..cda058e 100644
--- a/unit-test/include/class/acc_ledger.Test.php
+++ b/unit-test/include/class/acc_ledger.Test.php
@@ -851,13 +851,43 @@ class Acc_LedgerTest extends TestCase
$jrn_def_id=$g_connection->get_value("select jrn_def_id from jrn_def
where jrn_def_name=$1",
[$array['p_jrn_name']]);
$this->assertLessThan($jrn_def_id,0);
+ $this->assertEquals($jrn_def_id,$ledger->jrn_def_id);
$ledger=new Acc_Ledger($g_connection,$jrn_def_id);
$ledger->delete_ledger();
$jrn_def_id=$g_connection->get_value("select jrn_def_id from jrn_def
where jrn_def_name=$1",
[$array['p_jrn_name']]);
$this->assertEquals($jrn_def_id,"");
}
-
+ /**
+ * @testdox ComputerLedgerCode up to 2000
+ * @covers Acc_Ledger::save_new ,
+ * @global type $g_connection
+ */
+ public function testComputeLedgerCode()
+ {
+ global $g_connection;
+ $array=["p_jrn_name"=>"UNITTEST",
+ "p_ech_lib"=>"",
+ "p_jrn_deb_max_line"=>7,
+ 'p_jrn_class_deb'=>'4*',
+ 'p_jrn_type'=>'ODS',
+ 'jrn_def_pj_pref'=>'TT/',
+ 'min_row'=>5,
+ 'p_description'=>'LEDGER UNIT TEST',
+ 'negative_amount'=>0,
+ 'negative_warning'=>'Warning'];
+
+ $g_connection->exec_sql("delete from jrn_def where
jrn_def_description=$1",['LEDGER UNIT TEST']);
+ for ($i=0;$i<2000;$i++) {
+ $array['p_jrn_name']='UNITEST'.str_pad($i,5,"0",STR_PAD_LEFT);
+ $ledger=new Acc_Ledger($g_connection,-1);
+ $ledger->save_new($array);
+
$this->assertEquals($ledger->jrn_def_code,strtoupper("O".str_pad(base_convert($i+2,
10, 36),2,0,STR_PAD_LEFT)));
+ }
+
+ // DELETE LEDGER with description = 'LEDGER UNIT TEST'
+ $g_connection->exec_sql("delete from jrn_def where
jrn_def_description=$1",['LEDGER UNIT TEST']);
+ }
/**
* @covers Acc_Ledger::delete_ledger
*/
- [Noalyss-commit] [noalyss] 07/33: Bug for reversed operation when currency are used, (continued)
- [Noalyss-commit] [noalyss] 07/33: Bug for reversed operation when currency are used, Dany De Bontridder, 2021/11/11
- [Noalyss-commit] [noalyss] 14/33: Typo, Dany De Bontridder, 2021/11/11
- [Noalyss-commit] [noalyss] 13/33: Compute.php it happens that the argument are not numeric, Dany De Bontridder, 2021/11/11
- [Noalyss-commit] [noalyss] 16/33: Documentation, Dany De Bontridder, 2021/11/11
- [Noalyss-commit] [noalyss] 15/33: Bug #2079 : 0002079: Recherche de carte : guillement ne passe pas, Dany De Bontridder, 2021/11/11
- [Noalyss-commit] [noalyss] 21/33: Cosmetic #2082 : OD parfois ajout différence de change, Dany De Bontridder, 2021/11/11
- [Noalyss-commit] [noalyss] 18/33: Bug : currency_id was nullable script compatible PSQL 10, Dany De Bontridder, 2021/11/11
- [Noalyss-commit] [noalyss] 20/33: Cosmetic #0002080 : NOT-FOUND, Dany De Bontridder, 2021/11/11
- [Noalyss-commit] [noalyss] 22/33: Cosmetic #0002081: PRINTTVA : l'export PDF de la TVA, Dany De Bontridder, 2021/11/11
- [Noalyss-commit] [noalyss] 23/33: Fix : date before 2000 throws an exception, Dany De Bontridder, 2021/11/11
- [Noalyss-commit] [noalyss] 25/33: Improve ACC_LEDGER compute internal ledger code in base 36,
Dany De Bontridder <=
- [Noalyss-commit] [noalyss] 27/33: Operation ANC : Bug with decimal, Dany De Bontridder, 2021/11/11
- [Noalyss-commit] [noalyss] 28/33: Bug #2085: Comptabilité analytique : erreur dans les balances croisées, Dany De Bontridder, 2021/11/11
- [Noalyss-commit] [noalyss] 29/33: Task #0002087: Improve COMPTA/MENUFIN/FREC, Dany De Bontridder, 2021/11/11
- [Noalyss-commit] [noalyss] 30/33: Task #0002088: Export PDF de ANCBCC, Dany De Bontridder, 2021/11/11
- [Noalyss-commit] [noalyss] 17/33: Cosmetic bug : if no rows found , throw a warning, Dany De Bontridder, 2021/11/11
- [Noalyss-commit] [noalyss] 19/33: Task #0002068: Pas de champ recherche dans la liste de fiches, Dany De Bontridder, 2021/11/11
- [Noalyss-commit] [noalyss] 24/33: Gestion->suivi, global administrators can access all the documents. Improve search, Dany De Bontridder, 2021/11/11
- [Noalyss-commit] [noalyss] 26/33: Cosmetic Add close button, Dany De Bontridder, 2021/11/11
- [Noalyss-commit] [noalyss] 33/33: CANAL : add symbol for operation : history card & accounting, Dany De Bontridder, 2021/11/11
- [Noalyss-commit] [noalyss] 31/33: Cosmetic : button close, Dany De Bontridder, 2021/11/11