From 17f37cc9e1d9f879e667991c011aded6bdab45c4 Mon Sep 17 00:00:00 2001 From: phf Date: Thu, 11 May 2017 11:41:00 +0200 Subject: [PATCH 1/3] Fix wrong calculation --- htdocs/compta/facture/card.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php index 9483e79dba4..06b64d02da6 100644 --- a/htdocs/compta/facture/card.php +++ b/htdocs/compta/facture/card.php @@ -1084,6 +1084,7 @@ if (empty($reshook)) } if ($totalamount != 0) { + $i = $i > 0 ? $i-1 : 0; $tva_tx = $lines[$i]->tva_tx; if (! empty($lines[$i]->vat_src_code) && ! preg_match('/\(/', $tva_tx)) $tva_tx .= ' ('.$lines[$i]->vat_src_code.')'; $amountdeposit[$tva_tx] = ($totalamount * $valuedeposit) / 100; @@ -1134,7 +1135,7 @@ if (empty($reshook)) if (!empty($conf->global->MAIN_DEPOSIT_MULTI_TVA) && $diff != 0) { $object->fetch_lines(); - $subprice_diff = $object->lines[0]->subprice - $diff / (1 + $object->lines[0]->tva_tx); + $subprice_diff = $object->lines[0]->subprice - $diff / (1 + $object->lines[0]->tva_tx / 100); $object->updateline($object->lines[0]->id, $object->lines[0]->desc, $subprice_diff, $object->lines[0]->qty, $object->lines[0]->remise_percent, $object->lines[0]->date_start, $object->lines[0]->date_end, $object->lines[0]->tva_tx, 0, 0, 'HT', $object->lines[0]->info_bits, $object->lines[0]->product_type, 0, 0, 0, $object->lines[0]->pa_ht, $object->lines[0]->label, 0, array(), 100); } From d120a391f9ac4f6b617e7d95883647d1657021dd Mon Sep 17 00:00:00 2001 From: phf Date: Mon, 15 May 2017 10:26:40 +0200 Subject: [PATCH 2/3] Fix use $numlines instead $i --- htdocs/compta/facture/card.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php index 06b64d02da6..91f64dc8693 100644 --- a/htdocs/compta/facture/card.php +++ b/htdocs/compta/facture/card.php @@ -1084,9 +1084,9 @@ if (empty($reshook)) } if ($totalamount != 0) { - $i = $i > 0 ? $i-1 : 0; - $tva_tx = $lines[$i]->tva_tx; - if (! empty($lines[$i]->vat_src_code) && ! preg_match('/\(/', $tva_tx)) $tva_tx .= ' ('.$lines[$i]->vat_src_code.')'; + if ($numlines > 0) $numlines = $numlines-1; + $tva_tx = $lines[$numlines]->tva_tx; + if (! empty($lines[$numlines]->vat_src_code) && ! preg_match('/\(/', $tva_tx)) $tva_tx .= ' ('.$lines[$numlines]->vat_src_code.')'; $amountdeposit[$tva_tx] = ($totalamount * $valuedeposit) / 100; } else { $amountdeposit[0] = 0; From 4ff9607011e5cd83a9cbd0a82b47474afbbd963d Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Sat, 20 May 2017 07:56:33 +0200 Subject: [PATCH 3/3] Update table accounting_bookeeping to prepare FEC format and harmonization --- .../install/mysql/migration/5.0.0-6.0.0.sql | 12 +++++ .../tables/llx_accounting_bookkeeping.sql | 54 +++++++++++-------- 2 files changed, 43 insertions(+), 23 deletions(-) diff --git a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql index 6ba7707b249..00f616ca56f 100644 --- a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql +++ b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql @@ -141,6 +141,18 @@ ALTER TABLE llx_bank_account ADD INDEX idx_fk_accountancy_journal (fk_accountanc UPDATE llx_bank_account as ba set fk_accountancy_journal = (SELECT rowid FROM llx_accounting_journal as aj where ba.accountancy_journal = aj.code) where accountancy_journal not in ('1', '2', '3', '4', '5', '6', '5', '8', '9', '10', '11', '12', '13', '14', '15'); ALTER TABLE llx_bank_account ADD CONSTRAINT fk_bank_account_accountancy_journal FOREIGN KEY (fk_accountancy_journal) REFERENCES llx_accounting_journal (rowid); +--Update general ledger for FEC format & harmonization +ALTER TABLE llx_accounting_bookkeeping MODIFY COLUMN code_tiers varchar(32); +ALTER TABLE llx_accounting_bookkeeping MODIFY COLUMN label_compte varchar(255); +ALTER TABLE llx_accounting_bookkeeping MODIFY COLUMN code_journal varchar(32); +ALTER TABLE llx_accounting_bookkeeping ADD COLUMN thirdparty_label varchar(255) AFTER code_tiers; +ALTER TABLE llx_accounting_bookkeeping ADD COLUMN label_operation varchar(255) AFTER label_compte; +ALTER TABLE llx_accounting_bookkeeping ADD COLUMN multicurrency_amount double AFTER sens; +ALTER TABLE llx_accounting_bookkeeping ADD COLUMN multicurrency_code varchar(255) AFTER multicurrency_amount; +ALTER TABLE llx_accounting_bookkeeping ADD COLUMN lettering_code varchar(255) AFTER multicurrency_code; +ALTER TABLE llx_accounting_bookkeeping ADD COLUMN date_lettering datetime AFTER lettering_code; +ALTER TABLE llx_accounting_bookkeeping ADD COLUMN journal_label varchar(255) AFTER code_journal; +ALTER TABLE llx_accounting_bookkeeping ADD COLUMN date_validated datetime AFTER validated; ALTER TABLE llx_paiementfourn ADD COLUMN model_pdf varchar(255); diff --git a/htdocs/install/mysql/tables/llx_accounting_bookkeeping.sql b/htdocs/install/mysql/tables/llx_accounting_bookkeeping.sql index c72186c6910..651fee6c339 100644 --- a/htdocs/install/mysql/tables/llx_accounting_bookkeeping.sql +++ b/htdocs/install/mysql/tables/llx_accounting_bookkeeping.sql @@ -1,6 +1,6 @@ -- ============================================================================ -- Copyright (C) 2013-2014 Olivier Geffroy --- Copyright (C) 2013-2014 Alexandre Spangaro +-- Copyright (C) 2013-2017 Alexandre Spangaro -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -19,26 +19,34 @@ CREATE TABLE llx_accounting_bookkeeping ( - rowid integer NOT NULL AUTO_INCREMENT PRIMARY KEY, - entity integer DEFAULT 1 NOT NULL, -- multi company id - doc_date date NOT NULL, - doc_type varchar(30) NOT NULL, -- facture_client/reglement_client/facture_fournisseur/reglement_fournisseur - doc_ref varchar(300) NOT NULL, -- facture_client/reglement_client/... reference number - fk_doc integer NOT NULL, -- facture_client/reglement_client/... rowid - fk_docdet integer NOT NULL, -- facture_client/reglement_client/... line rowid - code_tiers varchar(24), -- code tiers - numero_compte varchar(32) NOT NULL, - label_compte varchar(128) NOT NULL, - debit double NOT NULL, - credit double NOT NULL, - montant double NOT NULL, - sens varchar(1) DEFAULT NULL, - fk_user_author integer NOT NULL, -- user creating - fk_user_modif integer, -- user making last change - date_creation datetime, -- date de creation - tms timestamp, -- date last modification - import_key varchar(14), - code_journal varchar(10) NOT NULL, - piece_num integer NOT NULL, - validated tinyint DEFAULT 0 NOT NULL -- 0 line not validated / 1 line validated (No deleting / No modification) + rowid integer NOT NULL AUTO_INCREMENT PRIMARY KEY, + entity integer DEFAULT 1 NOT NULL, -- | multi company id + doc_date date NOT NULL, -- FEC:PieceDate + doc_type varchar(30) NOT NULL, -- FEC:PieceRef | facture_client/reglement_client/facture_fournisseur/reglement_fournisseur + doc_ref varchar(300) NOT NULL, -- | facture_client/reglement_client/... reference number + fk_doc integer NOT NULL, -- | facture_client/reglement_client/... rowid + fk_docdet integer NOT NULL, -- | facture_client/reglement_client/... line rowid + code_tiers varchar(32), -- FEC:CompAuxNum | account number of auxiliary account + thirdparty_label varchar(255), -- FEC:CompAuxLib | label of auxiliary account + numero_compte varchar(32) NOT NULL, -- FEC:CompteNum | account number + label_compte varchar(255) NOT NULL, -- FEC:CompteLib | label of account + label_operation varchar(255), -- FEC:EcritureLib | label of the operation + debit double NOT NULL, -- FEC:Debit + credit double NOT NULL, -- FEC:Credit + montant double NOT NULL, -- FEC:Montant (Not necessary) + sens varchar(1) DEFAULT NULL, -- FEC:Sens (Not necessary) + multicurrency_amount double, -- FEC:Montantdevise + multicurrency_code varchar(255), -- FEC:Idevise + lettering_code varchar(255), -- FEC:EcritureLet + date_lettering datetime, -- FEC:DateLet + fk_user_author integer NOT NULL, -- | user creating + fk_user_modif integer, -- | user making last change + date_creation datetime, -- FEC:EcritureDate | creation date + tms timestamp, -- | date last modification + import_key varchar(14), + code_journal varchar(32) NOT NULL, -- FEC:JournalCode + journal_label varchar(255), -- FEC:JournalLib + piece_num integer NOT NULL, -- FEC:EcritureNum + validated tinyint DEFAULT 0 NOT NULL, -- | 0 line not validated / 1 line validated (No deleting / No modification) + date_validated datetime -- FEC:ValidDate ) ENGINE=innodb;