diff --git a/htdocs/accountancy/bookkeeping/list.php b/htdocs/accountancy/bookkeeping/list.php
index 369dd7afcec88bf1688aedec73d5a2d2d0b1e469..60e283eea2c46c984427788c78c6b6a4edb1880a 100644
--- a/htdocs/accountancy/bookkeeping/list.php
+++ b/htdocs/accountancy/bookkeeping/list.php
@@ -2,7 +2,7 @@
/* Copyright (C) 2013-2016 Olivier Geffroy <jeff@jeffinfo.com>
* Copyright (C) 2013-2016 Florian Henry <florian.henry@open-concept.pro>
* Copyright (C) 2013-2017 Alexandre Spangaro <aspangaro@zendsi.com>
- * Copyright (C) 2016 Laurent Destailleur <eldy@users.sourceforge.net>
+ * Copyright (C) 2016 Laurent Destailleur <eldy@users.sourceforge.net>
*
* 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
@@ -463,10 +463,10 @@ print '</td>';
print '<td align="right">';
print price($total_debit);
print '</td>';
-print '<td align="right">';
+print '<td align="right">';
print price($total_credit);
print '</td>';
-print '<td></td>';
+print '<td colspan="2"></td>';
print '</tr>';
print "</table>";
diff --git a/htdocs/accountancy/class/bookkeeping.class.php b/htdocs/accountancy/class/bookkeeping.class.php
index 8ba8d185ede883a792071abace42b8bcf20517bd..0fc4a936117cca9084cd19b996f3cd69694a4855 100644
--- a/htdocs/accountancy/class/bookkeeping.class.php
+++ b/htdocs/accountancy/class/bookkeeping.class.php
@@ -85,6 +85,7 @@ class BookKeeping extends CommonObject
public $fk_user_author;
public $import_key;
public $code_journal;
+ public $journal_label;
public $piece_num;
/**
@@ -156,6 +157,9 @@ class BookKeeping extends CommonObject
if (isset($this->code_journal)) {
$this->code_journal = trim($this->code_journal);
}
+ if (isset($this->journal_label)) {
+ $this->journal_label = trim($this->journal_label);
+ }
if (isset($this->piece_num)) {
$this->piece_num = trim($this->piece_num);
}
@@ -250,6 +254,7 @@ class BookKeeping extends CommonObject
$sql .= ", fk_user_author";
$sql .= ", import_key";
$sql .= ", code_journal";
+ $sql .= ", journal_label";
$sql .= ", piece_num";
$sql .= ', entity';
$sql .= ") VALUES (";
@@ -268,6 +273,7 @@ class BookKeeping extends CommonObject
$sql .= ",'" . $this->fk_user_author . "'";
$sql .= ",'" . $this->db->idate($this->date_create). "'";
$sql .= ",'" . $this->code_journal . "'";
+ $sql .= ",'" . $this->journal_label . "'";
$sql .= "," . $this->piece_num;
$sql .= ", " . (! isset($this->entity) ? '1' : $this->entity);
$sql .= ")";
@@ -384,6 +390,9 @@ class BookKeeping extends CommonObject
if (isset($this->code_journal)) {
$this->code_journal = trim($this->code_journal);
}
+ if (isset($this->journal_label)) {
+ $this->journal_label = trim($this->journal_label);
+ }
if (isset($this->piece_num)) {
$this->piece_num = trim($this->piece_num);
}
@@ -410,6 +419,7 @@ class BookKeeping extends CommonObject
$sql .= 'fk_user_author,';
$sql .= 'import_key,';
$sql .= 'code_journal,';
+ $sql .= 'journal_label,';
$sql .= 'piece_num,';
$sql .= 'entity';
$sql .= ') VALUES (';
@@ -428,6 +438,7 @@ class BookKeeping extends CommonObject
$sql .= ' ' . $user->id . ',';
$sql .= ' ' . (! isset($this->import_key) ? 'NULL' : "'" . $this->db->escape($this->import_key) . "'") . ',';
$sql .= ' ' . (empty($this->code_journal) ? 'NULL' : "'" . $this->db->escape($this->code_journal) . "'") . ',';
+ $sql .= ' ' . (empty($this->journal_label) ? 'NULL' : "'" . $this->db->escape($this->journal_label) . "'") . ',';
$sql .= ' ' . (empty($this->piece_num) ? 'NULL' : $this->piece_num).',';
$sql .= ' ' . (! isset($this->entity) ? '1' : $this->entity);
$sql .= ')';
@@ -458,11 +469,11 @@ class BookKeeping extends CommonObject
// Commit or rollback
if ($error) {
$this->db->rollback();
-
+
return - 1 * $error;
} else {
$this->db->commit();
-
+
return $this->id;
}
}
@@ -478,7 +489,7 @@ class BookKeeping extends CommonObject
public function fetch($id, $ref = null) {
global $conf;
- dol_syslog(__METHOD__, LOG_DEBUG);
+ dol_syslog(__METHOD__, LOG_DEBUG);
$sql = 'SELECT';
$sql .= ' t.rowid,';
@@ -497,6 +508,7 @@ class BookKeeping extends CommonObject
$sql .= " t.fk_user_author,";
$sql .= " t.import_key,";
$sql .= " t.code_journal,";
+ $sql .= " t.journal_label,";
$sql .= " t.piece_num";
$sql .= ' FROM ' . MAIN_DB_PREFIX . $this->table_element . ' as t';
$sql .= ' WHERE 1 = 1';
@@ -530,6 +542,7 @@ class BookKeeping extends CommonObject
$this->fk_user_author = $obj->fk_user_author;
$this->import_key = $obj->import_key;
$this->code_journal = $obj->code_journal;
+ $this->journal_label = $obj->journal_label;
$this->piece_num = $obj->piece_num;
}
$this->db->free($resql);
@@ -581,6 +594,7 @@ class BookKeeping extends CommonObject
$sql .= " t.fk_user_author,";
$sql .= " t.import_key,";
$sql .= " t.code_journal,";
+ $sql .= " t.journal_label,";
$sql .= " t.piece_num";
// Manage filter
$sqlwhere = array ();
@@ -643,6 +657,7 @@ class BookKeeping extends CommonObject
$line->fk_user_author = $obj->fk_user_author;
$line->import_key = $obj->import_key;
$line->code_journal = $obj->code_journal;
+ $line->journal_label = $obj->journal_label;
$line->piece_num = $obj->piece_num;
$this->lines[] = $line;
@@ -693,6 +708,7 @@ class BookKeeping extends CommonObject
$sql .= " t.fk_user_author,";
$sql .= " t.import_key,";
$sql .= " t.code_journal,";
+ $sql .= " t.journal_label,";
$sql .= " t.piece_num";
$sql .= ' FROM ' . MAIN_DB_PREFIX . $this->table_element . ' as t';
// Manage filter
@@ -752,6 +768,7 @@ class BookKeeping extends CommonObject
$line->fk_user_author = $obj->fk_user_author;
$line->import_key = $obj->import_key;
$line->code_journal = $obj->code_journal;
+ $line->journal_label = $obj->journal_label;
$line->piece_num = $obj->piece_num;
$this->lines[] = $line;
@@ -903,6 +920,9 @@ class BookKeeping extends CommonObject
if (isset($this->code_journal)) {
$this->code_journal = trim($this->code_journal);
}
+ if (isset($this->journal_label)) {
+ $this->journal_label = trim($this->journal_label);
+ }
if (isset($this->piece_num)) {
$this->piece_num = trim($this->piece_num);
}
@@ -927,6 +947,7 @@ class BookKeeping extends CommonObject
$sql .= ' fk_user_author = ' . (isset($this->fk_user_author) ? $this->fk_user_author : "null") . ',';
$sql .= ' import_key = ' . (isset($this->import_key) ? "'" . $this->db->escape($this->import_key) . "'" : "null") . ',';
$sql .= ' code_journal = ' . (isset($this->code_journal) ? "'" . $this->db->escape($this->code_journal) . "'" : "null") . ',';
+ $sql .= ' journal_label = ' . (isset($this->journal_label) ? "'" . $this->db->escape($this->journal_label) . "'" : "null") . ',';
$sql .= ' piece_num = ' . (isset($this->piece_num) ? $this->piece_num : "null");
$sql .= ' WHERE rowid=' . $this->id;
@@ -1185,6 +1206,7 @@ class BookKeeping extends CommonObject
$this->fk_user_author = $user->id;
$this->import_key = '';
$this->code_journal = '';
+ $this->journal_label = '';
$this->piece_num = '';
}
@@ -1197,7 +1219,7 @@ class BookKeeping extends CommonObject
public function fetchPerMvt($piecenum) {
global $conf;
- $sql = "SELECT piece_num,doc_date,code_journal,doc_ref,doc_type";
+ $sql = "SELECT piece_num,doc_date,code_journal,journal_label,doc_ref,doc_type";
$sql .= " FROM " . MAIN_DB_PREFIX . $this->table_element;
$sql .= " WHERE piece_num = " . $piecenum;
$sql .= " AND entity IN (" . getEntity('accountancy') . ")";
@@ -1209,6 +1231,7 @@ class BookKeeping extends CommonObject
$this->piece_num = $obj->piece_num;
$this->code_journal = $obj->code_journal;
+ $this->journal_label = $obj->journal_label;
$this->doc_date = $this->db->jdate($obj->doc_date);
$this->doc_ref = $obj->doc_ref;
$this->doc_type = $obj->doc_type;
@@ -1260,7 +1283,7 @@ class BookKeeping extends CommonObject
$sql = "SELECT rowid, doc_date, doc_type,";
$sql .= " doc_ref, fk_doc, fk_docdet, code_tiers,";
$sql .= " numero_compte, label_compte, debit, credit,";
- $sql .= " montant, sens, fk_user_author, import_key, code_journal, piece_num";
+ $sql .= " montant, sens, fk_user_author, import_key, code_journal, journal_label, piece_num";
$sql .= " FROM " . MAIN_DB_PREFIX . $this->table_element;
$sql .= " WHERE piece_num = " . $piecenum;
$sql .= " AND entity IN (" . getEntity('accountancy') . ")";
@@ -1288,6 +1311,7 @@ class BookKeeping extends CommonObject
$line->montant = $obj->montant;
$line->sens = $obj->sens;
$line->code_journal = $obj->code_journal;
+ $line->journal_label = $obj->journal_label;
$line->piece_num = $obj->piece_num;
$this->linesmvt[] = $line;
@@ -1533,5 +1557,6 @@ class BookKeepingLine
public $fk_user_author;
public $import_key;
public $code_journal;
+ public $journal_label;
public $piece_num;
}
diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php
index cb3afb95f5a96514c4b71dd9f9edad2a7dee001a..9eae2072243010f2d27fee49b0ffdd4666a48a89 100644
--- a/htdocs/accountancy/journal/bankjournal.php
+++ b/htdocs/accountancy/journal/bankjournal.php
@@ -28,8 +28,6 @@
* \brief Page with bank journal
*/
require '../../main.inc.php';
-
-// Class
require_once DOL_DOCUMENT_ROOT . '/core/lib/report.lib.php';
require_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php';
require_once DOL_DOCUMENT_ROOT . '/core/lib/bank.lib.php';
@@ -53,8 +51,6 @@ require_once DOL_DOCUMENT_ROOT . '/societe/class/client.class.php';
require_once DOL_DOCUMENT_ROOT . '/expensereport/class/expensereport.class.php';
require_once DOL_DOCUMENT_ROOT . '/expensereport/class/paymentexpensereport.class.php';
-
-// Langs
$langs->load("companies");
$langs->load("other");
$langs->load("compta");
@@ -77,6 +73,7 @@ $date_endyear = GETPOST('date_endyear');
$action = GETPOST('action','aZ09');
$now = dol_now();
+$action = GETPOST('action','aZ09');
// Security check
if ($user->societe_id > 0 && empty($id_journal))
@@ -120,7 +117,7 @@ $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "bank_url as bu2 ON bu2.fk_bank = b.row
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "societe as soc on bu1.url_id=soc.rowid";
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "user as u on bu2.url_id=u.rowid";
$sql .= " WHERE ba.fk_accountancy_journal=" . $id_journal;
-$sql .= ' AND ba.entity IN ('.getEntity('bank_account', 0).')'; // We don't share object for accountancy
+$sql .= ' AND ba.entity IN ('.getEntity('bank_account', 0).')'; // We don't share object for accountancy
if ($date_start && $date_end)
$sql .= " AND b.dateo >= '" . $db->idate($date_start) . "' AND b.dateo <= '" . $db->idate($date_end) . "'";
$sql .= " ORDER BY b.datev";
@@ -140,6 +137,7 @@ $paymentexpensereportstatic = new PaymentExpenseReport($db);
$accountingjournalstatic = new AccountingJournal($db);
$accountingjournalstatic->fetch($id_journal);
$journal = $accountingjournalstatic->code;
+$journal_label = $accountingjournalstatic->label;
dol_syslog("accountancy/journal/bankjournal.php", LOG_DEBUG);
$result = $db->query($sql);
@@ -210,11 +208,11 @@ if ($result) {
// Now loop on each link of record in bank.
foreach ( $links as $key => $val ) {
- if (in_array($links[$key]['type'], array('sc', 'payment_sc', 'payment', 'payment_supplier', 'payment_vat', 'payment_expensereport', 'banktransfert', 'payment_donation', 'payment_salary'))) // So we excluded 'company' here
- {
- // We save tabtype for a future use, to remember what kind of payment it is
- $tabtype[$obj->rowid] = $links[$key]['type'];
- }
+ if (in_array($links[$key]['type'], array('sc', 'payment_sc', 'payment', 'payment_supplier', 'payment_vat', 'payment_expensereport', 'banktransfert', 'payment_donation', 'payment_salary'))) // So we excluded 'company' here
+ {
+ // We save tabtype for a future use, to remember what kind of payment it is
+ $tabtype[$obj->rowid] = $links[$key]['type'];
+ }
if ($links[$key]['type'] == 'payment') {
$paymentstatic->id = $links[$key]['url_id'];
@@ -298,22 +296,22 @@ if ($result) {
// Check account number is ok
- /*if ($action == 'writebookkeeping') // Make test now in such a case
+ /*if ($action == 'writebookkeeping') // Make test now in such a case
{
- reset($tabbq[$obj->rowid]);
- $first_key_tabbq = key($tabbq[$obj->rowid]);
- if (empty($first_key_tabbq))
- {
- $error++;
- setEventMessages($langs->trans('ErrorAccountancyCodeOnBankAccountNotDefined', $obj->baref), null, 'errors');
- }
- reset($tabtp[$obj->rowid]);
- $first_key_tabtp = key($tabtp[$obj->rowid]);
- if (empty($first_key_tabtp))
- {
- $error++;
- setEventMessages($langs->trans('ErrorAccountancyCodeOnThirdPartyNotDefined'), null, 'errors');
- }
+ reset($tabbq[$obj->rowid]);
+ $first_key_tabbq = key($tabbq[$obj->rowid]);
+ if (empty($first_key_tabbq))
+ {
+ $error++;
+ setEventMessages($langs->trans('ErrorAccountancyCodeOnBankAccountNotDefined', $obj->baref), null, 'errors');
+ }
+ reset($tabtp[$obj->rowid]);
+ $first_key_tabtp = key($tabtp[$obj->rowid]);
+ if (empty($first_key_tabtp))
+ {
+ $error++;
+ setEventMessages($langs->trans('ErrorAccountancyCodeOnThirdPartyNotDefined'), null, 'errors');
+ }
}*/
// if($obj->socid)$tabtp[$obj->rowid][$compta_soc] += $obj->amount;
@@ -335,76 +333,77 @@ if (! $error && $action == 'writebookkeeping') {
$now = dol_now();
$error = 0;
- foreach ( $tabpay as $key => $val ) { // $key is rowid into llx_bank
+ foreach ( $tabpay as $key => $val ) { // $key is rowid into llx_bank
- $errorforline = 0;
+ $errorforline = 0;
- $db->begin();
+ $db->begin();
// Bank
if (! $errorforline)
{
- // Line into bank account
- foreach ( $tabbq[$key] as $k => $mt )
- {
- if ($mt) {
- $bookkeeping = new BookKeeping($db);
- $bookkeeping->doc_date = $val["date"];
- $bookkeeping->doc_ref = $val["ref"];
- $bookkeeping->doc_type = 'bank';
- $bookkeeping->fk_doc = $key;
- $bookkeeping->fk_docdet = $val["fk_bank"];
- $bookkeeping->numero_compte = $k;
- $bookkeeping->label_compte = $compte->label;
- $bookkeeping->montant = ($mt < 0 ? - $mt : $mt);
- $bookkeeping->sens = ($mt >= 0) ? 'D' : 'C';
- $bookkeeping->debit = ($mt >= 0 ? $mt : 0);
- $bookkeeping->credit = ($mt < 0 ? - $mt : 0);
- $bookkeeping->code_journal = $journal;
- $bookkeeping->fk_user_author = $user->id;
- $bookkeeping->date_create = $now;
-
- if ($tabtype[$key] == 'payment') {
- $bookkeeping->code_tiers = $tabcompany[$key]['code_compta'];
-
- $sqlmid = 'SELECT fac.facnumber';
- $sqlmid .= " FROM " . MAIN_DB_PREFIX . "facture fac";
- $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "paiement_facture as payfac ON payfac.fk_facture=fac.rowid";
- $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "paiement as pay ON payfac.fk_paiement=pay.rowid";
- $sqlmid .= " WHERE pay.fk_bank=" . $key;
- dol_syslog("accountancy/journal/bankjournal.php:: sqlmid=" . $sqlmid, LOG_DEBUG);
- $resultmid = $db->query($sqlmid);
- if ($resultmid) {
- $objmid = $db->fetch_object($resultmid);
- $bookkeeping->doc_ref = $objmid->facnumber; // Ref of invoice
- }
- } else if ($tabtype[$key] == 'payment_supplier') {
- $bookkeeping->code_tiers = $tabcompany[$key]['code_compta'];
-
- $sqlmid = 'SELECT facf.ref_supplier, facf.ref';
- $sqlmid .= " FROM " . MAIN_DB_PREFIX . "facture_fourn facf";
- $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "paiementfourn_facturefourn as payfacf ON payfacf.fk_facturefourn=facf.rowid";
- $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "paiementfourn as payf ON payfacf.fk_paiementfourn=payf.rowid";
- $sqlmid .= " WHERE payf.fk_bank=" . $key;
- dol_syslog("accountancy/journal/bankjournal.php:: sqlmid=" . $sqlmid, LOG_DEBUG);
- $resultmid = $db->query($sqlmid);
- if ($resultmid) {
- $objmid = $db->fetch_object($resultmid);
- $bookkeeping->doc_ref = $objmid->ref_supplier . ' (' . $objmid->ref . ')'; // Ref on invoice
- }
- } else if ($tabtype[$key] == 'payment_expensereport') {
- $bookkeeping->code_tiers = $tabuser[$key]['accountancy_code'];
-
- $sqlmid = 'SELECT e.ref';
- $sqlmid .= " FROM " . MAIN_DB_PREFIX . "expensereport as e";
- $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "payment_expensereport as payer ON payer.fk_expensereport=e.rowid";
- $sqlmid .= " WHERE payer.fk_expensereport=" . $val["fk_expensereport"];
- dol_syslog("accountancy/journal/bankjournal.php:: sqlmid=" . $sqlmid, LOG_DEBUG);
- $resultmid = $db->query($sqlmid);
- if ($resultmid) {
- $objmid = $db->fetch_object($resultmid);
- $bookkeeping->doc_ref = $objmid->ref; // Ref of expensereport
- }
+ // Line into bank account
+ foreach ( $tabbq[$key] as $k => $mt )
+ {
+ if ($mt) {
+ $bookkeeping = new BookKeeping($db);
+ $bookkeeping->doc_date = $val["date"];
+ $bookkeeping->doc_ref = $val["ref"];
+ $bookkeeping->doc_type = 'bank';
+ $bookkeeping->fk_doc = $key;
+ $bookkeeping->fk_docdet = $val["fk_bank"];
+ $bookkeeping->numero_compte = $k;
+ $bookkeeping->label_compte = $compte->label;
+ $bookkeeping->montant = ($mt < 0 ? - $mt : $mt);
+ $bookkeeping->sens = ($mt >= 0) ? 'D' : 'C';
+ $bookkeeping->debit = ($mt >= 0 ? $mt : 0);
+ $bookkeeping->credit = ($mt < 0 ? - $mt : 0);
+ $bookkeeping->code_journal = $journal;
+ $bookkeeping->journal_label = $journal_label;
+ $bookkeeping->fk_user_author = $user->id;
+ $bookkeeping->date_create = $now;
+
+ if ($tabtype[$key] == 'payment') {
+ $bookkeeping->code_tiers = $tabcompany[$key]['code_compta'];
+
+ $sqlmid = 'SELECT fac.facnumber';
+ $sqlmid .= " FROM " . MAIN_DB_PREFIX . "facture fac";
+ $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "paiement_facture as payfac ON payfac.fk_facture=fac.rowid";
+ $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "paiement as pay ON payfac.fk_paiement=pay.rowid";
+ $sqlmid .= " WHERE pay.fk_bank=" . $key;
+ dol_syslog("accountancy/journal/bankjournal.php:: sqlmid=" . $sqlmid, LOG_DEBUG);
+ $resultmid = $db->query($sqlmid);
+ if ($resultmid) {
+ $objmid = $db->fetch_object($resultmid);
+ $bookkeeping->doc_ref = $objmid->facnumber; // Ref of invoice
+ }
+ } else if ($tabtype[$key] == 'payment_supplier') {
+ $bookkeeping->code_tiers = $tabcompany[$key]['code_compta'];
+
+ $sqlmid = 'SELECT facf.ref_supplier, facf.ref';
+ $sqlmid .= " FROM " . MAIN_DB_PREFIX . "facture_fourn facf";
+ $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "paiementfourn_facturefourn as payfacf ON payfacf.fk_facturefourn=facf.rowid";
+ $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "paiementfourn as payf ON payfacf.fk_paiementfourn=payf.rowid";
+ $sqlmid .= " WHERE payf.fk_bank=" . $key;
+ dol_syslog("accountancy/journal/bankjournal.php:: sqlmid=" . $sqlmid, LOG_DEBUG);
+ $resultmid = $db->query($sqlmid);
+ if ($resultmid) {
+ $objmid = $db->fetch_object($resultmid);
+ $bookkeeping->doc_ref = $objmid->ref_supplier . ' (' . $objmid->ref . ')'; // Ref on invoice
+ }
+ } else if ($tabtype[$key] == 'payment_expensereport') {
+ $bookkeeping->code_tiers = $tabuser[$key]['accountancy_code'];
+
+ $sqlmid = 'SELECT e.ref';
+ $sqlmid .= " FROM " . MAIN_DB_PREFIX . "expensereport as e";
+ $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "payment_expensereport as payer ON payer.fk_expensereport=e.rowid";
+ $sqlmid .= " WHERE payer.fk_expensereport=" . $val["fk_expensereport"];
+ dol_syslog("accountancy/journal/bankjournal.php:: sqlmid=" . $sqlmid, LOG_DEBUG);
+ $resultmid = $db->query($sqlmid);
+ if ($resultmid) {
+ $objmid = $db->fetch_object($resultmid);
+ $bookkeeping->doc_ref = $objmid->ref; // Ref of expensereport
+ }
} else if ($tabtype[$key] == 'payment_vat') {
$bookkeeping->code_tiers = '';
$bookkeeping->doc_ref = $langs->trans("PaymentVat") . ' (' . $val["paymentvatid"] . ')'; // Rowid of vat payment
@@ -417,75 +416,76 @@ if (! $error && $action == 'writebookkeeping') {
$bookkeeping->doc_ref = $langs->trans("SalaryPayment") . ' (' . $val["paymentsalid"] . ')'; // Ref of salary payment
}
- $result = $bookkeeping->create($user);
- if ($result < 0) {
- if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') // Already exists
- {
- $error++;
- $errorforline++;
- //setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->doc_ref.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
- }
- else
- {
- $error++;
- $errorforline++;
- setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors');
- }
- }
- }
- }
+ $result = $bookkeeping->create($user);
+ if ($result < 0) {
+ if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') // Already exists
+ {
+ $error++;
+ $errorforline++;
+ //setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->doc_ref.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
+ }
+ else
+ {
+ $error++;
+ $errorforline++;
+ setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors');
+ }
+ }
+ }
+ }
}
// Third party
if (! $errorforline)
{
- // Line into thirdparty account
- foreach ( $tabtp[$key] as $k => $mt ) {
- if ($mt) {
- $bookkeeping = new BookKeeping($db);
- $bookkeeping->doc_date = $val["date"];
- $bookkeeping->doc_ref = $val["ref"];
- $bookkeeping->doc_type = 'bank';
- $bookkeeping->fk_doc = $key;
- $bookkeeping->fk_docdet = $val["fk_bank"];
- $bookkeeping->label_compte = $tabcompany[$key]['name'];
- $bookkeeping->montant = ($mt < 0 ? - $mt : $mt);
- $bookkeeping->sens = ($mt < 0) ? 'D' : 'C';
- $bookkeeping->debit = ($mt < 0 ? - $mt : 0);
- $bookkeeping->credit = ($mt >= 0) ? $mt : 0;
- $bookkeeping->code_journal = $journal;
- $bookkeeping->fk_user_author = $user->id;
- $bookkeeping->date_create = $now;
-
- if (in_array($tabtype[$key], array('sc', 'payment_sc'))) { // If payment is payment of social contribution
- $bookkeeping->code_tiers = '';
- $bookkeeping->numero_compte = $k;
- } else if ($tabtype[$key] == 'payment') { // If payment is payment of customer invoice, we get ref of invoice
- $sqlmid = 'SELECT fac.facnumber';
- $sqlmid .= " FROM " . MAIN_DB_PREFIX . "facture fac ";
- $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "paiement_facture as payfac ON payfac.fk_facture=fac.rowid";
- $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "paiement as pay ON payfac.fk_paiement=pay.rowid";
- $sqlmid .= " WHERE pay.fk_bank=" . $key;
- dol_syslog("accountancy/journal/bankjournal.php:: sqlmid=" . $sqlmid, LOG_DEBUG);
- $resultmid = $db->query($sqlmid);
- if ($resultmid) {
- $objmid = $db->fetch_object($resultmid);
- $bookkeeping->doc_ref = $objmid->facnumber;
- }
- $bookkeeping->code_tiers = $tabcompany[$key]['code_compta'];
- $bookkeeping->numero_compte = $k;
- } else if ($tabtype[$key] == 'payment_supplier') { // If payment is payment of supplier invoice, we get ref of invoice
- $sqlmid = 'SELECT facf.ref_supplier,facf.ref';
- $sqlmid .= " FROM " . MAIN_DB_PREFIX . "facture_fourn facf ";
- $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "paiementfourn_facturefourn as payfacf ON payfacf.fk_facturefourn=facf.rowid";
- $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "paiementfourn as payf ON payfacf.fk_paiementfourn=payf.rowid";
- $sqlmid .= " WHERE payf.fk_bank=" . $key;
- dol_syslog("accountancy/journal/bankjournal.php:: sqlmid=" . $sqlmid, LOG_DEBUG);
- $resultmid = $db->query($sqlmid);
- if ($resultmid) {
- $objmid = $db->fetch_object($resultmid);
- $bookkeeping->doc_ref = $objmid->ref_supplier . ' (' . $objmid->ref . ')';
- }
+ // Line into thirdparty account
+ foreach ( $tabtp[$key] as $k => $mt ) {
+ if ($mt) {
+ $bookkeeping = new BookKeeping($db);
+ $bookkeeping->doc_date = $val["date"];
+ $bookkeeping->doc_ref = $val["ref"];
+ $bookkeeping->doc_type = 'bank';
+ $bookkeeping->fk_doc = $key;
+ $bookkeeping->fk_docdet = $val["fk_bank"];
+ $bookkeeping->label_compte = $tabcompany[$key]['name'];
+ $bookkeeping->montant = ($mt < 0 ? - $mt : $mt);
+ $bookkeeping->sens = ($mt < 0) ? 'D' : 'C';
+ $bookkeeping->debit = ($mt < 0 ? - $mt : 0);
+ $bookkeeping->credit = ($mt >= 0) ? $mt : 0;
+ $bookkeeping->code_journal = $journal;
+ $bookkeeping->journal_label = $journal_label;
+ $bookkeeping->fk_user_author = $user->id;
+ $bookkeeping->date_create = $now;
+
+ if (in_array($tabtype[$key], array('sc', 'payment_sc'))) { // If payment is payment of social contribution
+ $bookkeeping->code_tiers = '';
+ $bookkeeping->numero_compte = $k;
+ } else if ($tabtype[$key] == 'payment') { // If payment is payment of customer invoice, we get ref of invoice
+ $sqlmid = 'SELECT fac.facnumber';
+ $sqlmid .= " FROM " . MAIN_DB_PREFIX . "facture fac ";
+ $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "paiement_facture as payfac ON payfac.fk_facture=fac.rowid";
+ $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "paiement as pay ON payfac.fk_paiement=pay.rowid";
+ $sqlmid .= " WHERE pay.fk_bank=" . $key;
+ dol_syslog("accountancy/journal/bankjournal.php:: sqlmid=" . $sqlmid, LOG_DEBUG);
+ $resultmid = $db->query($sqlmid);
+ if ($resultmid) {
+ $objmid = $db->fetch_object($resultmid);
+ $bookkeeping->doc_ref = $objmid->facnumber;
+ }
+ $bookkeeping->code_tiers = $tabcompany[$key]['code_compta'];
+ $bookkeeping->numero_compte = $k;
+ } else if ($tabtype[$key] == 'payment_supplier') { // If payment is payment of supplier invoice, we get ref of invoice
+ $sqlmid = 'SELECT facf.ref_supplier,facf.ref';
+ $sqlmid .= " FROM " . MAIN_DB_PREFIX . "facture_fourn facf ";
+ $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "paiementfourn_facturefourn as payfacf ON payfacf.fk_facturefourn=facf.rowid";
+ $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "paiementfourn as payf ON payfacf.fk_paiementfourn=payf.rowid";
+ $sqlmid .= " WHERE payf.fk_bank=" . $key;
+ dol_syslog("accountancy/journal/bankjournal.php:: sqlmid=" . $sqlmid, LOG_DEBUG);
+ $resultmid = $db->query($sqlmid);
+ if ($resultmid) {
+ $objmid = $db->fetch_object($resultmid);
+ $bookkeeping->doc_ref = $objmid->ref_supplier . ' (' . $objmid->ref . ')';
+ }
$bookkeeping->code_tiers = $tabcompany[$key]['code_compta'];
$bookkeeping->numero_compte = $k;
} else if ($tabtype[$key] == 'payment_vat') {
@@ -504,52 +504,52 @@ if (! $error && $action == 'writebookkeeping') {
} else if ($tabtype[$key] == 'banktransfert') {
$bookkeeping->code_tiers = '';
$bookkeeping->numero_compte = $k;
- } else {
- // FIXME Should be a temporary account ???
- $bookkeeping->doc_ref = $k;
- //$bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER;
- $bookkeeping->numero_compte = 'CodeNotDef';
- }
-
- $result = $bookkeeping->create($user);
- if ($result < 0) {
- if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') // Already exists
- {
- $error++;
- $errorforline++;
- //setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->doc_ref.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
- }
- else
- {
- $error++;
- $errorforline++;
- setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors');
- }
- }
- }
- }
+ } else {
+ // FIXME Should be a temporary account ???
+ $bookkeeping->doc_ref = $k;
+ //$bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER;
+ $bookkeeping->numero_compte = 'CodeNotDef';
+ }
+
+ $result = $bookkeeping->create($user);
+ if ($result < 0) {
+ if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') // Already exists
+ {
+ $error++;
+ $errorforline++;
+ //setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->doc_ref.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
+ }
+ else
+ {
+ $error++;
+ $errorforline++;
+ setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors');
+ }
+ }
+ }
+ }
}
if (! $errorforline)
{
- $db->commit();
+ $db->commit();
}
else
{
- $db->rollback();
+ $db->rollback();
}
}
if (empty($error)) {
- setEventMessages($langs->trans("GeneralLedgerIsWritten"), null, 'mesgs');
+ setEventMessages($langs->trans("GeneralLedgerIsWritten"), null, 'mesgs');
}
elseif (count($tabpay) == $error)
{
- setEventMessages($langs->trans("NoNewRecordSaved"), null, 'warnings');
+ setEventMessages($langs->trans("NoNewRecordSaved"), null, 'warnings');
}
else
{
- setEventMessages($langs->trans("GeneralLedgerSomeRecordWasNotRecorded"), null, 'warnings');
+ setEventMessages($langs->trans("GeneralLedgerSomeRecordWasNotRecorded"), null, 'warnings');
}
$action = '';
@@ -758,24 +758,24 @@ if (empty($action) || $action == 'view') {
print '<input type="button" class="butAction" style="float: right;" value="' . $langs->trans("Export") . '" onclick="launch_export();" />';
}*/
- print '<div class="tabsAction">';
+ print '<div class="tabsAction">';
print '<input type="button" class="butAction" value="' . $langs->trans("WriteBookKeeping") . '" onclick="writebookkeeping();" />';
- print '</div>';
+ print '</div>';
// TODO Avoid using js. We can use a direct link with $param
print '
<script type="text/javascript">
function launch_export() {
- console.log("Set value into form and submit");
- $("div.fiche div.tabBar form input[name=\"action\"]").val("export_csv");
+ console.log("Set value into form and submit");
+ $("div.fiche div.tabBar form input[name=\"action\"]").val("export_csv");
$("div.fiche div.tabBar form input[type=\"submit\"]").click();
- $("div.fiche div.tabBar form input[name=\"action\"]").val("");
+ $("div.fiche div.tabBar form input[name=\"action\"]").val("");
}
function writebookkeeping() {
- console.log("Set value into form and submit");
- $("div.fiche div.tabBar form input[name=\"action\"]").val("writebookkeeping");
+ console.log("Set value into form and submit");
+ $("div.fiche div.tabBar form input[name=\"action\"]").val("writebookkeeping");
$("div.fiche div.tabBar form input[type=\"submit\"]").click();
- $("div.fiche div.tabBar form input[name=\"action\"]").val("");
+ $("div.fiche div.tabBar form input[name=\"action\"]").val("");
}
</script>';
@@ -799,7 +799,7 @@ if (empty($action) || $action == 'view') {
$r = '';
- foreach ( $tabpay as $key => $val ) { // $key is rowid in llx_bank
+ foreach ( $tabpay as $key => $val ) { // $key is rowid in llx_bank
$date = dol_print_date($db->jdate($val["date"]), 'day');
$reflabel = $val["ref"];
@@ -825,45 +825,45 @@ if (empty($action) || $action == 'view') {
$ref=$reflabel;
if ($tabtype[$key] == 'payment')
{
- $sqlmid = 'SELECT payfac.fk_facture as id';
- $sqlmid .= " FROM ".MAIN_DB_PREFIX."paiement_facture as payfac";
- $sqlmid .= " WHERE payfac.fk_paiement=" . $val["paymentid"];
- dol_syslog("accountancy/journal/bankjournal.php::sqlmid=" . $sqlmid, LOG_DEBUG);
- $resultmid = $db->query($sqlmid);
- if ($resultmid) {
- $objmid = $db->fetch_object($resultmid);
- $invoicestatic->fetch($objmid->id);
- $ref=$langs->trans("Invoice").' '.$invoicestatic->getNomUrl(1);
- }
- else dol_print_error($db);
+ $sqlmid = 'SELECT payfac.fk_facture as id';
+ $sqlmid .= " FROM ".MAIN_DB_PREFIX."paiement_facture as payfac";
+ $sqlmid .= " WHERE payfac.fk_paiement=" . $val["paymentid"];
+ dol_syslog("accountancy/journal/bankjournal.php::sqlmid=" . $sqlmid, LOG_DEBUG);
+ $resultmid = $db->query($sqlmid);
+ if ($resultmid) {
+ $objmid = $db->fetch_object($resultmid);
+ $invoicestatic->fetch($objmid->id);
+ $ref=$langs->trans("Invoice").' '.$invoicestatic->getNomUrl(1);
+ }
+ else dol_print_error($db);
}
elseif ($tabtype[$key] == 'payment_supplier')
{
- $sqlmid = 'SELECT payfac.fk_facturefourn as id';
- $sqlmid .= " FROM " . MAIN_DB_PREFIX . "paiementfourn_facturefourn as payfac";
- $sqlmid .= " WHERE payfac.fk_paiementfourn=" . $val["paymentsupplierid"];
- dol_syslog("accountancy/journal/bankjournal.php::sqlmid=" . $sqlmid, LOG_DEBUG);
- $resultmid = $db->query($sqlmid);
- if ($resultmid) {
- $objmid = $db->fetch_object($resultmid);
- $invoicesupplierstatic->fetch($objmid->id);
- $ref=$langs->trans("SupplierInvoice").' '.$invoicesupplierstatic->getNomUrl(1);
- }
- else dol_print_error($db);
+ $sqlmid = 'SELECT payfac.fk_facturefourn as id';
+ $sqlmid .= " FROM " . MAIN_DB_PREFIX . "paiementfourn_facturefourn as payfac";
+ $sqlmid .= " WHERE payfac.fk_paiementfourn=" . $val["paymentsupplierid"];
+ dol_syslog("accountancy/journal/bankjournal.php::sqlmid=" . $sqlmid, LOG_DEBUG);
+ $resultmid = $db->query($sqlmid);
+ if ($resultmid) {
+ $objmid = $db->fetch_object($resultmid);
+ $invoicesupplierstatic->fetch($objmid->id);
+ $ref=$langs->trans("SupplierInvoice").' '.$invoicesupplierstatic->getNomUrl(1);
+ }
+ else dol_print_error($db);
}
elseif ($tabtype[$key] == 'payment_expensereport')
{
- $sqlmid = 'SELECT payer.fk_expensereport as id';
- $sqlmid .= " FROM " . MAIN_DB_PREFIX . "payment_expensereport as payer";
- $sqlmid .= " WHERE payer.fk_expensereport=" . $val["fk_expensereport"];
- dol_syslog("accountancy/journal/bankjournal.php::sqlmid=" . $sqlmid, LOG_DEBUG);
- $resultmid = $db->query($sqlmid);
- if ($resultmid) {
- $objmid = $db->fetch_object($resultmid);
- $expensereportstatic->fetch($objmid->id);
- $ref=$langs->trans("ExpenseReport").' '.$expensereportstatic->getNomUrl(1);
- }
- else dol_print_error($db);
+ $sqlmid = 'SELECT payer.fk_expensereport as id';
+ $sqlmid .= " FROM " . MAIN_DB_PREFIX . "payment_expensereport as payer";
+ $sqlmid .= " WHERE payer.fk_expensereport=" . $val["fk_expensereport"];
+ dol_syslog("accountancy/journal/bankjournal.php::sqlmid=" . $sqlmid, LOG_DEBUG);
+ $resultmid = $db->query($sqlmid);
+ if ($resultmid) {
+ $objmid = $db->fetch_object($resultmid);
+ $expensereportstatic->fetch($objmid->id);
+ $ref=$langs->trans("ExpenseReport").' '.$expensereportstatic->getNomUrl(1);
+ }
+ else dol_print_error($db);
}
elseif ($tabtype[$key] == 'payment_vat')
{
@@ -881,17 +881,17 @@ if (empty($action) || $action == 'view') {
}
elseif ($tabtype[$key] == 'payment_donation')
{
- $sqlmid = 'SELECT payd.fk_donation as id';
- $sqlmid .= " FROM " . MAIN_DB_PREFIX . "payment_donation as payd";
- $sqlmid .= " WHERE payd.fk_donation=" . $val["paymentdonationid"];
- dol_syslog("accountancy/journal/bankjournal.php::sqlmid=" . $sqlmid, LOG_DEBUG);
- $resultmid = $db->query($sqlmid);
- if ($resultmid) {
- $objmid = $db->fetch_object($resultmid);
- $donationstatic->fetch($objmid->id);
- $ref=$langs->trans("Donation").' '.$donationstatic->getNomUrl(1);
- }
- else dol_print_error($db);
+ $sqlmid = 'SELECT payd.fk_donation as id';
+ $sqlmid .= " FROM " . MAIN_DB_PREFIX . "payment_donation as payd";
+ $sqlmid .= " WHERE payd.fk_donation=" . $val["paymentdonationid"];
+ dol_syslog("accountancy/journal/bankjournal.php::sqlmid=" . $sqlmid, LOG_DEBUG);
+ $resultmid = $db->query($sqlmid);
+ if ($resultmid) {
+ $objmid = $db->fetch_object($resultmid);
+ $donationstatic->fetch($objmid->id);
+ $ref=$langs->trans("Donation").' '.$donationstatic->getNomUrl(1);
+ }
+ else dol_print_error($db);
}
elseif ($tabtype[$key] == 'payment_salary')
{
@@ -915,15 +915,15 @@ if (empty($action) || $action == 'view') {
// Bank
foreach ( $tabbq[$key] as $k => $mt )
{
- print '<tr class="oddeven">';
- print "<td><!-- Bank bank.rowid=".$key."--></td>";
- print "<td>" . $date . "</td>";
+ print '<tr class="oddeven">';
+ print "<td><!-- Bank bank.rowid=".$key."--></td>";
+ print "<td>" . $date . "</td>";
print "<td>" . $ref . "</td>";
print "<td>";
$accountoshow = length_accountg($k);
if (empty($accountoshow) || $accountoshow == 'NotDefined')
{
- print '<span class="error">'.$langs->trans("BankAccountNotDefined").'</span>';
+ print '<span class="error">'.$langs->trans("BankAccountNotDefined").'</span>';
}
else print $accountoshow;
print "</td>";
@@ -947,12 +947,12 @@ if (empty($action) || $action == 'view') {
print "<td>" . $date . "</td>";
print "<td>" . $ref . "</td>";
print "<td>";
- $accountoshow = length_accounta($k);
- if (empty($accountoshow) || $accountoshow == 'NotDefined')
- {
- print '<span class="error">'.$langs->trans("ThirdpartyAccountNotDefined").'</span>';
- }
- else print $accountoshow;
+ $accountoshow = length_accounta($k);
+ if (empty($accountoshow) || $accountoshow == 'NotDefined')
+ {
+ print '<span class="error">'.$langs->trans("ThirdpartyAccountNotDefined").'</span>';
+ }
+ else print $accountoshow;
print "</td>";
print "<td>" . $reflabel . ' ' . $val['soclib'] . "</td>";
print "<td>" . $val["type_payment"] . "</td>";
@@ -968,10 +968,10 @@ if (empty($action) || $action == 'view') {
print "<td>" . $date . "</td>";
print "<td>" . $ref . "</td>";
print "<td>";
- if (empty($accountoshow) || $accountoshow == 'NotDefined')
- {
- print '<span class="error">'.$langs->trans("WaitAccountNotDefined").'</span>';
- }
+ if (empty($accountoshow) || $accountoshow == 'NotDefined')
+ {
+ print '<span class="error">'.$langs->trans("WaitAccountNotDefined").'</span>';
+ }
else print length_accountg($conf->global->ACCOUNTING_ACCOUNT_SUSPENSE);
print "</td>";
print "<td>" . $reflabel . "</td>";
diff --git a/htdocs/accountancy/journal/expensereportsjournal.php b/htdocs/accountancy/journal/expensereportsjournal.php
index 0b6f0923e1352d454b49f73e91152e7157e16701..557218a0ee6489f08e035e8a66b713d244d8db6b 100644
--- a/htdocs/accountancy/journal/expensereportsjournal.php
+++ b/htdocs/accountancy/journal/expensereportsjournal.php
@@ -22,13 +22,11 @@
*/
/**
- * \file htdocs/accountancy/journal/expensereportsjournal.php
- * \ingroup Advanced accountancy
- * \brief Page with expense reports journal
+ * \file htdocs/accountancy/journal/expensereportsjournal.php
+ * \ingroup Advanced accountancy
+ * \brief Page with expense reports journal
*/
require '../../main.inc.php';
-
-// Class
require_once DOL_DOCUMENT_ROOT . '/core/lib/report.lib.php';
require_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php';
require_once DOL_DOCUMENT_ROOT . '/core/lib/accounting.lib.php';
@@ -38,7 +36,6 @@ require_once DOL_DOCUMENT_ROOT . '/expensereport/class/expensereport.class.php';
require_once DOL_DOCUMENT_ROOT . '/user/class/user.class.php';
require_once DOL_DOCUMENT_ROOT . '/accountancy/class/bookkeeping.class.php';
-// Langs
$langs->load("compta");
$langs->load("bills");
$langs->load("other");
@@ -46,8 +43,8 @@ $langs->load("main");
$langs->load("accountancy");
$langs->load("trips");
-// Multi journal
$id_journal = GETPOST('id_journal', 'int');
+$action = GETPOST('action','aZ09');
$date_startmonth = GETPOST('date_startmonth');
$date_startday = GETPOST('date_startday');
@@ -62,16 +59,15 @@ $now = dol_now();
if ($user->societe_id > 0)
accessforbidden();
-$action = GETPOST('action','aZ09');
-
-
/*
* Actions
*/
-// Get code of finance journal
+
+// Get informations of journal
$accountingjournalstatic = new AccountingJournal($db);
$accountingjournalstatic->fetch($id_journal);
$journal = $accountingjournalstatic->code;
+$journal_label = $accountingjournalstatic->label;
$year_current = strftime("%Y", dol_now());
$pastmonth = strftime("%m", dol_now()) - 1;
@@ -187,6 +183,7 @@ if ($action == 'writebookkeeping') {
$bookkeeping->debit = ($mt <= 0) ? $mt : 0;
$bookkeeping->credit = ($mt > 0) ? $mt : 0;
$bookkeeping->code_journal = $journal;
+ $bookkeeping->journal_label = $journal_label;
$bookkeeping->fk_user_author = $user->id;
$result = $bookkeeping->create($user);
@@ -233,6 +230,7 @@ if ($action == 'writebookkeeping') {
$bookkeeping->debit = ($mt > 0) ? $mt : 0;
$bookkeeping->credit = ($mt <= 0) ? $mt : 0;
$bookkeeping->code_journal = $journal;
+ $bookkeeping->journal_label = $journal_label;
$bookkeeping->fk_user_author = $user->id;
$result = $bookkeeping->create($user);
@@ -277,6 +275,7 @@ if ($action == 'writebookkeeping') {
$bookkeeping->debit = ($mt > 0) ? $mt : 0;
$bookkeeping->credit = ($mt <= 0) ? $mt : 0;
$bookkeeping->code_journal = $journal;
+ $bookkeeping->journal_label = $journal_label;
$bookkeeping->fk_user_author = $user->id;
$result = $bookkeeping->create($user);
@@ -444,7 +443,7 @@ if (empty($action) || $action == 'view') {
llxHeader('', $langs->trans("ExpenseReportsJournal"));
- $nom = $langs->trans("ExpenseReportsJournal");
+ $nom = $langs->trans("ExpenseReportsJournal") . ' - ' . $accountingjournalstatic->getNomUrl(1);
$nomlink = '';
$periodlink = '';
$exportlink = '';
diff --git a/htdocs/accountancy/journal/purchasesjournal.php b/htdocs/accountancy/journal/purchasesjournal.php
index a8dd976ba9e13991961360fa77ad8e5bf14507f2..3729860d29d34dc3e376a136a78db1f374091eff 100644
--- a/htdocs/accountancy/journal/purchasesjournal.php
+++ b/htdocs/accountancy/journal/purchasesjournal.php
@@ -1,11 +1,11 @@
<?php
-/* Copyright (C) 2007-2010 Laurent Destailleur <eldy@users.sourceforge.net>
- * Copyright (C) 2007-2010 Jean Heimburger <jean@tiaris.info>
- * Copyright (C) 2011 Juanjo Menent <jmenent@2byte.es>
- * Copyright (C) 2012 Regis Houssin <regis@dolibarr.fr>
- * Copyright (C) 2013-2015 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
+/* Copyright (C) 2007-2010 Laurent Destailleur <eldy@users.sourceforge.net>
+ * Copyright (C) 2007-2010 Jean Heimburger <jean@tiaris.info>
+ * Copyright (C) 2011 Juanjo Menent <jmenent@2byte.es>
+ * Copyright (C) 2012 Regis Houssin <regis@dolibarr.fr>
+ * Copyright (C) 2013-2015 Alexandre Spangaro <aspangaro@zendsi.com>
* Copyright (C) 2013-2016 Olivier Geffroy <jeff@jeffinfo.com>
- * Copyright (C) 2013-2016 Florian Henry <florian.henry@open-concept.pro>
+ * Copyright (C) 2013-2016 Florian Henry <florian.henry@open-concept.pro>
*
* 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
@@ -22,28 +22,29 @@
*/
/**
- * \file htdocs/accountancy/journal/purchasesjournal.php
- * \ingroup Advanced accountancy
- * \brief Page with purchases journal
+ * \file htdocs/accountancy/journal/purchasesjournal.php
+ * \ingroup Advanced accountancy
+ * \brief Page with purchases journal
*/
require '../../main.inc.php';
-
-// Class
require_once DOL_DOCUMENT_ROOT . '/core/lib/report.lib.php';
require_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php';
require_once DOL_DOCUMENT_ROOT . '/core/lib/accounting.lib.php';
+require_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountingjournal.class.php';
+require_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountingaccount.class.php';
require_once DOL_DOCUMENT_ROOT . '/fourn/class/fournisseur.facture.class.php';
require_once DOL_DOCUMENT_ROOT . '/fourn/class/fournisseur.class.php';
require_once DOL_DOCUMENT_ROOT . '/accountancy/class/bookkeeping.class.php';
-require_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountingaccount.class.php';
-// Langs
$langs->load("compta");
$langs->load("bills");
$langs->load("other");
$langs->load("main");
$langs->load("accountancy");
+$id_journal = GETPOST('id_journal', 'int');
+$action = GETPOST('action','aZ09');
+
$date_startmonth = GETPOST('date_startmonth');
$date_startday = GETPOST('date_startday');
$date_startyear = GETPOST('date_startyear');
@@ -57,13 +58,16 @@ $now = dol_now();
if ($user->societe_id > 0)
accessforbidden();
-$action = GETPOST('action','aZ09');
-
-
/*
* Actions
*/
+// Get informations of journal
+$accountingjournalstatic = new AccountingJournal($db);
+$accountingjournalstatic->fetch($id_journal);
+$journal = $accountingjournalstatic->code;
+$journal_label = $accountingjournalstatic->label;
+
$year_current = strftime("%Y", dol_now());
$pastmonth = strftime("%m", dol_now()) - 1;
$pastmonthyear = $year_current;
@@ -148,11 +152,11 @@ if ($result) {
$tabfac[$obj->rowid]["type"] = $obj->type;
$tabfac[$obj->rowid]["description"] = $obj->description;
//$tabfac[$obj->rowid]["fk_facturefourndet"] = $obj->fdid;
-
- // Avoid warnings
- if (! isset($tabttc[$obj->rowid][$compta_soc])) $tabttc[$obj->rowid][$compta_soc] = 0;
- if (! isset($tabht[$obj->rowid][$compta_prod])) $tabht[$obj->rowid][$compta_prod] = 0;
- if (! isset($tabtva[$obj->rowid][$compta_tva])) $tabtva[$obj->rowid][$compta_tva] = 0;
+
+ // Avoid warnings
+ if (! isset($tabttc[$obj->rowid][$compta_soc])) $tabttc[$obj->rowid][$compta_soc] = 0;
+ if (! isset($tabht[$obj->rowid][$compta_prod])) $tabht[$obj->rowid][$compta_prod] = 0;
+ if (! isset($tabtva[$obj->rowid][$compta_tva])) $tabtva[$obj->rowid][$compta_tva] = 0;
$tabttc[$obj->rowid][$compta_soc] += $obj->total_ttc;
$tabht[$obj->rowid][$compta_prod] += $obj->total_ht;
@@ -177,10 +181,10 @@ if ($action == 'writebookkeeping') {
foreach ($tabfac as $key => $val) // Loop on each invoice
{
- $errorforline = 0;
-
- $db->begin();
-
+ $errorforline = 0;
+
+ $db->begin();
+
$companystatic = new Societe($db);
$invoicestatic = new FactureFournisseur($db);
@@ -198,160 +202,161 @@ if ($action == 'writebookkeeping') {
$companystatic->code_fournisseur = $tabcompany[$key]['code_fournisseur'];
$companystatic->client = $tabcompany[$key]['code_client'];
- if (! $errorforline)
- {
- foreach ( $tabttc[$key] as $k => $mt ) {
- // get compte id and label
- if ($mt) {
- $bookkeeping = new BookKeeping($db);
- $bookkeeping->doc_date = $val["date"];
- $bookkeeping->doc_ref = $val["ref"];
- $bookkeeping->date_create = $now;
- $bookkeeping->doc_type = 'supplier_invoice';
- $bookkeeping->fk_doc = $key;
- $bookkeeping->fk_docdet = 0; // Useless, can be several lines that are source of this record to add
- $bookkeeping->code_tiers = $tabcompany[$key]['code_fournisseur'];
- $bookkeeping->label_compte = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->refsupplier . ' - ' . $langs->trans("Code_tiers");
- $bookkeeping->numero_compte = $tabcompany[$key]['code_compta_fournisseur'];
- $bookkeeping->montant = $mt;
- $bookkeeping->sens = ($mt >= 0) ? 'C' : 'D';
- $bookkeeping->debit = ($mt <= 0) ? $mt : 0;
- $bookkeeping->credit = ($mt > 0) ? $mt : 0;
- $bookkeeping->code_journal = $conf->global->ACCOUNTING_PURCHASE_JOURNAL;
- $bookkeeping->fk_user_author = $user->id;
-
- $result = $bookkeeping->create($user);
- if ($result < 0) {
- if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') // Already exists
- {
- $error++;
- $errorforline++;
- //setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->doc_ref.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
- }
- else
- {
- $error++;
- $errorforline++;
- setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors');
- }
- }
- }
- }
- }
-
+ if (! $errorforline)
+ {
+ foreach ( $tabttc[$key] as $k => $mt ) {
+ // get compte id and label
+ if ($mt) {
+ $bookkeeping = new BookKeeping($db);
+ $bookkeeping->doc_date = $val["date"];
+ $bookkeeping->doc_ref = $val["ref"];
+ $bookkeeping->date_create = $now;
+ $bookkeeping->doc_type = 'supplier_invoice';
+ $bookkeeping->fk_doc = $key;
+ $bookkeeping->fk_docdet = 0; // Useless, can be several lines that are source of this record to add
+ $bookkeeping->code_tiers = $tabcompany[$key]['code_fournisseur'];
+ $bookkeeping->label_compte = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->refsupplier . ' - ' . $langs->trans("Code_tiers");
+ $bookkeeping->numero_compte = $tabcompany[$key]['code_compta_fournisseur'];
+ $bookkeeping->montant = $mt;
+ $bookkeeping->sens = ($mt >= 0) ? 'C' : 'D';
+ $bookkeeping->debit = ($mt <= 0) ? $mt : 0;
+ $bookkeeping->credit = ($mt > 0) ? $mt : 0;
+ $bookkeeping->code_journal = $journal;
+ $bookkeeping->journal_label = $journal_label;
+ $bookkeeping->fk_user_author = $user->id;
+
+ $result = $bookkeeping->create($user);
+ if ($result < 0) {
+ if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') // Already exists
+ {
+ $error++;
+ $errorforline++;
+ //setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->doc_ref.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
+ }
+ else
+ {
+ $error++;
+ $errorforline++;
+ setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors');
+ }
+ }
+ }
+ }
+ }
+
// Product / Service
- if (! $errorforline)
- {
- foreach ( $tabht[$key] as $k => $mt ) {
- $accountingaccount = new AccountingAccount($db);
- $accountingaccount->fetch(null, $k, true);
- if ($mt) {
- // get compte id and label
- $accountingaccount = new AccountingAccount($db);
- if ($accountingaccount->fetch(null, $k, true)) {
- $bookkeeping = new BookKeeping($db);
- $bookkeeping->doc_date = $val["date"];
- $bookkeeping->doc_ref = $val["ref"];
- $bookkeeping->date_create = $now;
- $bookkeeping->doc_type = 'supplier_invoice';
- $bookkeeping->fk_doc = $key;
- $bookkeeping->fk_docdet = 0; // Useless, can be several lines that are source of this record to add
- $bookkeeping->code_tiers = '';
- $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';
- $bookkeeping->debit = ($mt > 0) ? $mt : 0;
- $bookkeeping->credit = ($mt <= 0) ? $mt : 0;
- $bookkeeping->code_journal = $conf->global->ACCOUNTING_PURCHASE_JOURNAL;
- $bookkeeping->fk_user_author = $user->id;
-
- $result = $bookkeeping->create($user);
- if ($result < 0) {
- if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') // Already exists
- {
- $error++;
- $errorforline++;
- //setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->doc_ref.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
- }
- else
- {
- $error++;
- $errorforline++;
- setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors');
- }
- }
- }
- }
- }
- }
-
+ if (! $errorforline)
+ {
+ foreach ( $tabht[$key] as $k => $mt ) {
+ $accountingaccount = new AccountingAccount($db);
+ $accountingaccount->fetch(null, $k, true);
+ if ($mt) {
+ // get compte id and label
+ $accountingaccount = new AccountingAccount($db);
+ if ($accountingaccount->fetch(null, $k, true)) {
+ $bookkeeping = new BookKeeping($db);
+ $bookkeeping->doc_date = $val["date"];
+ $bookkeeping->doc_ref = $val["ref"];
+ $bookkeeping->date_create = $now;
+ $bookkeeping->doc_type = 'supplier_invoice';
+ $bookkeeping->fk_doc = $key;
+ $bookkeeping->fk_docdet = 0; // Useless, can be several lines that are source of this record to add
+ $bookkeeping->code_tiers = '';
+ $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';
+ $bookkeeping->debit = ($mt > 0) ? $mt : 0;
+ $bookkeeping->credit = ($mt <= 0) ? $mt : 0;
+ $bookkeeping->code_journal = $journal;
+ $bookkeeping->journal_label = $journal_label;
+ $bookkeeping->fk_user_author = $user->id;
+
+ $result = $bookkeeping->create($user);
+ if ($result < 0) {
+ if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') // Already exists
+ {
+ $error++;
+ $errorforline++;
+ //setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->doc_ref.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
+ }
+ else
+ {
+ $error++;
+ $errorforline++;
+ setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors');
+ }
+ }
+ }
+ }
+ }
+ }
+
// VAT
// var_dump($tabtva);
- if (! $errorforline)
- {
- foreach ( $tabtva[$key] as $k => $mt ) {
- if ($mt) {
- // get compte id and label
- $bookkeeping = new BookKeeping($db);
- $bookkeeping->doc_date = $val["date"];
- $bookkeeping->doc_ref = $val["ref"];
- $bookkeeping->date_create = $now;
- $bookkeeping->doc_type = 'supplier_invoice';
- $bookkeeping->fk_doc = $key;
- $bookkeeping->fk_docdet = 0; // Useless, can be several lines that are source of this record to add
- $bookkeeping->code_tiers = '';
- $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';
- $bookkeeping->debit = ($mt > 0) ? $mt : 0;
- $bookkeeping->credit = ($mt <= 0) ? $mt : 0;
- $bookkeeping->code_journal = $conf->global->ACCOUNTING_PURCHASE_JOURNAL;
- $bookkeeping->fk_user_author = $user->id;
-
- $result = $bookkeeping->create($user);
- if ($result < 0) {
- if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') // Already exists
- {
- $error++;
- $errorforline++;
- //setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->doc_ref.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
- }
- else
- {
- $error++;
- $errorforline++;
- setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors');
- }
- }
- }
- }
- }
+ if (! $errorforline)
+ {
+ foreach ( $tabtva[$key] as $k => $mt ) {
+ if ($mt) {
+ // get compte id and label
+ $bookkeeping = new BookKeeping($db);
+ $bookkeeping->doc_date = $val["date"];
+ $bookkeeping->doc_ref = $val["ref"];
+ $bookkeeping->date_create = $now;
+ $bookkeeping->doc_type = 'supplier_invoice';
+ $bookkeeping->fk_doc = $key;
+ $bookkeeping->fk_docdet = 0; // Useless, can be several lines that are source of this record to add
+ $bookkeeping->code_tiers = '';
+ $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';
+ $bookkeeping->debit = ($mt > 0) ? $mt : 0;
+ $bookkeeping->credit = ($mt <= 0) ? $mt : 0;
+ $bookkeeping->code_journal = $journal;
+ $bookkeeping->journal_label = $journal_label;
+ $bookkeeping->fk_user_author = $user->id;
+
+ $result = $bookkeeping->create($user);
+ if ($result < 0) {
+ if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') // Already exists
+ {
+ $error++;
+ $errorforline++;
+ //setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->doc_ref.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
+ }
+ else
+ {
+ $error++;
+ $errorforline++;
+ setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors');
+ }
+ }
+ }
+ }
+ }
if (! $errorforline)
{
- $db->commit();
+ $db->commit();
}
else
{
- $db->rollback();
+ $db->rollback();
}
-
}
if (empty($error) && count($tabpay)) {
- setEventMessages($langs->trans("GeneralLedgerIsWritten"), null, 'mesgs');
+ setEventMessages($langs->trans("GeneralLedgerIsWritten"), null, 'mesgs');
}
elseif (count($tabpay) == $error)
{
- setEventMessages($langs->trans("NoNewRecordSaved"), null, 'warnings');
+ setEventMessages($langs->trans("NoNewRecordSaved"), null, 'warnings');
}
else
{
- setEventMessages($langs->trans("GeneralLedgerSomeRecordWasNotRecorded"), null, 'warnings');
+ setEventMessages($langs->trans("GeneralLedgerSomeRecordWasNotRecorded"), null, 'warnings');
}
-
$action='';
}
@@ -488,7 +493,7 @@ if (empty($action) || $action == 'view') {
llxHeader('', $langs->trans("PurchasesJournal"));
- $nom = $langs->trans("PurchasesJournal");
+ $nom = $langs->trans("PurchasesJournal") . ' - ' . $accountingjournalstatic->getNomUrl(1);
$nomlink = '';
$periodlink = '';
$exportlink = '';
@@ -502,8 +507,10 @@ if (empty($action) || $action == 'view') {
}
$period = $form->select_date($date_start, 'date_start', 0, 0, 0, '', 1, 0, 1) . ' - ' . $form->select_date($date_end, 'date_end', 0, 0, 0, '', 1, 0, 1);
-
- journalHead($nom, $nomlink, $period, $periodlink, $description, $builddate, $exportlink, array('action' => ''));
+
+ $varlink = 'id_journal=' . $id_journal;
+
+ journalHead($nom, $nomlink, $period, $periodlink, $description, $builddate, $exportlink, array('action' => ''), '', $varlink);
/*if ($conf->global->ACCOUNTING_EXPORT_MODELCSV != 1 && $conf->global->ACCOUNTING_EXPORT_MODELCSV != 2) {
print '<input type="button" class="butActionRefused" style="float: right;" value="' . $langs->trans("Export") . '" disabled="disabled" title="' . $langs->trans('ExportNotSupported') . '"/>';
@@ -511,21 +518,21 @@ if (empty($action) || $action == 'view') {
print '<input type="button" class="butAction" style="float: right;" value="' . $langs->trans("Export") . '" onclick="launch_export();" />';
}*/
- print '<div class="tabsAction">';
+ print '<div class="tabsAction">';
print '<input type="button" class="butAction" value="' . $langs->trans("WriteBookKeeping") . '" onclick="writebookkeeping();" />';
- print '</div>';
-
+ print '</div>';
+
print '
<script type="text/javascript">
function launch_export() {
- $("div.fiche div.tabBar form input[name=\"action\"]").val("export_csv");
+ $("div.fiche div.tabBar form input[name=\"action\"]").val("export_csv");
$("div.fiche div.tabBar form input[type=\"submit\"]").click();
- $("div.fiche div.tabBar form input[name=\"action\"]").val("");
+ $("div.fiche div.tabBar form input[name=\"action\"]").val("");
}
function writebookkeeping() {
- $("div.fiche div.tabBar form input[name=\"action\"]").val("writebookkeeping");
+ $("div.fiche div.tabBar form input[name=\"action\"]").val("writebookkeeping");
$("div.fiche div.tabBar form input[type=\"submit\"]").click();
- $("div.fiche div.tabBar form input[name=\"action\"]").val("");
+ $("div.fiche div.tabBar form input[name=\"action\"]").val("");
}
</script>';
@@ -537,7 +544,6 @@ if (empty($action) || $action == 'view') {
$i = 0;
print "<table class=\"noborder\" width=\"100%\">";
print "<tr class=\"liste_titre\">";
- // /print "<td>".$langs->trans("JournalNum")."</td>";
print "<td></td>";
print "<td>" . $langs->trans("Date") . "</td>";
print "<td>" . $langs->trans("Piece") . ' (' . $langs->trans("InvoiceRef") . ")</td>";
@@ -574,12 +580,12 @@ if (empty($action) || $action == 'view') {
print "<td>" . $date . "</td>";
print "<td>" . $invoicestatic->getNomUrl(1) . "</td>";
print "<td>";
- $accountoshow = length_accountg($k);
- if (empty($accountoshow) || $accountoshow == 'NotDefined')
- {
- print '<span class="error">'.$langs->trans("ProductAccountNotDefined").'</span>';
- }
- else print $accountoshow;
+ $accountoshow = length_accountg($k);
+ if (empty($accountoshow) || $accountoshow == 'NotDefined')
+ {
+ print '<span class="error">'.$langs->trans("ProductAccountNotDefined").'</span>';
+ }
+ else print $accountoshow;
print "</td>";
$companystatic->id = $tabcompany[$key]['id'];
$companystatic->name = $tabcompany[$key]['name'];
@@ -590,6 +596,7 @@ if (empty($action) || $action == 'view') {
print "</tr>";
}
}
+
// VAT
foreach ( $tabtva[$key] as $k => $mt ) {
if ($mt) {
@@ -598,12 +605,12 @@ if (empty($action) || $action == 'view') {
print "<td>" . $date . "</td>";
print "<td>" . $invoicestatic->getNomUrl(1) . "</td>";
print "<td>";
- $accountoshow = length_accountg($k);
- if (empty($accountoshow) || $accountoshow == 'NotDefined')
- {
- print '<span class="error">'.$langs->trans("VatAccountNotDefined").'</span>';
- }
- else print $accountoshow;
+ $accountoshow = length_accountg($k);
+ if (empty($accountoshow) || $accountoshow == 'NotDefined')
+ {
+ print '<span class="error">'.$langs->trans("VatAccountNotDefined").'</span>';
+ }
+ else print $accountoshow;
print "</td>";
print "<td>" . $companystatic->getNomUrl(0, 'supplier', 16) . ' - ' . $invoicestatic->refsupplier . ' - ' . $langs->trans("VAT"). ' '.$def_tva[$key]. "</td>";
print '<td align="right">' . ($mt >= 0 ? price($mt) : '') . "</td>";
@@ -614,9 +621,9 @@ if (empty($action) || $action == 'view') {
// Third party
foreach ( $tabttc[$key] as $k => $mt ) {
- print '<tr class="oddeven">';
- print "<td><!-- Thirdparty --></td>";
- print "<td>" . $date . "</td>";
+ print '<tr class="oddeven">';
+ print "<td><!-- Thirdparty --></td>";
+ print "<td>" . $date . "</td>";
print "<td>" . $invoicestatic->getNomUrl(1) . "</td>";
$companystatic->id = $tabcompany[$key]['id'];
$companystatic->name = $tabcompany[$key]['name'];
@@ -624,10 +631,10 @@ if (empty($action) || $action == 'view') {
$accountoshow = length_accounta($k);
if (empty($accountoshow) || $accountoshow == 'NotDefined')
{
- print '<span class="error">'.$langs->trans("ThirdpartyAccountNotDefined").'</span>';
+ print '<span class="error">'.$langs->trans("ThirdpartyAccountNotDefined").'</span>';
}
else print $accountoshow;
- print "</td>";
+ print "</td>";
print "<td>" . $companystatic->getNomUrl(0, 'supplier', 16) . ' - ' . $invoicestatic->refsupplier . ' - ' . $langs->trans("Code_tiers") . "</td>";
// print "</td><td>" . $langs->trans("ThirdParty");
// print ' (' . $companystatic->getNomUrl(0, 'supplier', 16) . ')';
diff --git a/htdocs/accountancy/journal/sellsjournal.php b/htdocs/accountancy/journal/sellsjournal.php
index 85ce7361394f458f9c26493c1c60b1f18801e2c3..0d2e7ac19cc8cd91907e9674d1d11065f0c2f765 100644
--- a/htdocs/accountancy/journal/sellsjournal.php
+++ b/htdocs/accountancy/journal/sellsjournal.php
@@ -1,13 +1,13 @@
<?php
-/* Copyright (C) 2007-2010 Laurent Destailleur <eldy@users.sourceforge.net>
- * Copyright (C) 2007-2010 Jean Heimburger <jean@tiaris.info>
- * Copyright (C) 2011 Juanjo Menent <jmenent@2byte.es>
- * Copyright (C) 2012 Regis Houssin <regis@dolibarr.fr>
- * Copyright (C) 2013 Christophe Battarel <christophe.battarel@altairis.fr>
- * Copyright (C) 2013-2016 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
- * Copyright (C) 2013-2016 Florian Henry <florian.henry@open-concept.pro>
- * Copyright (C) 2013-2016 Olivier Geffroy <jeff@jeffinfo.com>
- * Copyright (C) 2014 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
+/* Copyright (C) 2007-2010 Laurent Destailleur <eldy@users.sourceforge.net>
+ * Copyright (C) 2007-2010 Jean Heimburger <jean@tiaris.info>
+ * Copyright (C) 2011 Juanjo Menent <jmenent@2byte.es>
+ * Copyright (C) 2012 Regis Houssin <regis@dolibarr.fr>
+ * Copyright (C) 2013 Christophe Battarel <christophe.battarel@altairis.fr>
+ * Copyright (C) 2013-2017 Alexandre Spangaro <aspangaro@zendsi.com>
+ * Copyright (C) 2013-2016 Florian Henry <florian.henry@open-concept.pro>
+ * Copyright (C) 2013-2016 Olivier Geffroy <jeff@jeffinfo.com>
+ * Copyright (C) 2014 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
*
* 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
@@ -29,17 +29,15 @@
* \brief Page with sells journal
*/
require '../../main.inc.php';
-
-// Class
require_once DOL_DOCUMENT_ROOT . '/core/lib/report.lib.php';
require_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php';
require_once DOL_DOCUMENT_ROOT . '/core/lib/accounting.lib.php';
+require_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountingjournal.class.php';
+require_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountingaccount.class.php';
require_once DOL_DOCUMENT_ROOT . '/compta/facture/class/facture.class.php';
require_once DOL_DOCUMENT_ROOT . '/societe/class/client.class.php';
require_once DOL_DOCUMENT_ROOT . '/accountancy/class/bookkeeping.class.php';
-require_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountingaccount.class.php';
-// Langs
$langs->load("commercial");
$langs->load("compta");
$langs->load("bills");
@@ -47,6 +45,9 @@ $langs->load("other");
$langs->load("main");
$langs->load("accountancy");
+$id_journal = GETPOST('id_journal', 'int');
+$action = GETPOST('action','aZ09');
+
$date_startmonth = GETPOST('date_startmonth');
$date_startday = GETPOST('date_startday');
$date_startyear = GETPOST('date_startyear');
@@ -60,19 +61,23 @@ $now = dol_now();
if ($user->societe_id > 0)
accessforbidden();
-$action = GETPOST('action','aZ09');
-
/*
* Actions
*/
+// Get informations of journal
+$accountingjournalstatic = new AccountingJournal($db);
+$accountingjournalstatic->fetch($id_journal);
+$journal = $accountingjournalstatic->code;
+$journal_label = $accountingjournalstatic->label;
+
$year_current = strftime("%Y", dol_now());
$pastmonth = strftime("%m", dol_now()) - 1;
$pastmonthyear = $year_current;
if ($pastmonth == 0) {
- $pastmonth = 12;
- $pastmonthyear --;
+ $pastmonth = 12;
+ $pastmonthyear --;
}
$date_start = dol_mktime(0, 0, 0, $date_startmonth, $date_startday, $date_startyear);
@@ -80,8 +85,8 @@ $date_end = dol_mktime(23, 59, 59, $date_endmonth, $date_endday, $date_endyear);
if (empty($date_start) || empty($date_end)) // We define date_start and date_end
{
- $date_start = dol_get_first_day($pastmonthyear, $pastmonth, false);
- $date_end = dol_get_last_day($pastmonthyear, $pastmonth, false);
+ $date_start = dol_get_first_day($pastmonthyear, $pastmonth, false);
+ $date_end = dol_get_last_day($pastmonthyear, $pastmonth, false);
}
$p = explode(":", $conf->global->MAIN_INFO_SOCIETE_COUNTRY);
@@ -99,274 +104,277 @@ $sql .= " JOIN " . MAIN_DB_PREFIX . "facture as f ON f.rowid = fd.fk_facture";
$sql .= " JOIN " . MAIN_DB_PREFIX . "societe as s ON s.rowid = f.fk_soc";
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "c_tva as ct ON fd.tva_tx = ct.taux AND ct.fk_pays = '" . $idpays . "'";
$sql .= " WHERE fd.fk_code_ventilation > 0";
-$sql .= " AND f.entity IN (".getEntity('facture', 0).')'; // We don't share object for accountancy
+$sql .= " AND f.entity IN (".getEntity('facture', 0).')'; // We don't share object for accountancy
$sql .= " AND f.fk_statut > 0"; // TODO Facture annulée ?
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) {
- $sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_SITUATION . ")";
+ $sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_SITUATION . ")";
} else {
- $sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_STANDARD . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_DEPOSIT . "," . Facture::TYPE_SITUATION . ")";
+ $sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_STANDARD . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_DEPOSIT . "," . Facture::TYPE_SITUATION . ")";
}
$sql .= " AND fd.product_type IN (0,1)";
if ($date_start && $date_end)
- $sql .= " AND f.datef >= '" . $db->idate($date_start) . "' AND f.datef <= '" . $db->idate($date_end) . "'";
+ $sql .= " AND f.datef >= '" . $db->idate($date_start) . "' AND f.datef <= '" . $db->idate($date_end) . "'";
$sql .= " ORDER BY f.datef";
dol_syslog('accountancy/journal/sellsjournal.php', LOG_DEBUG);
$result = $db->query($sql);
if ($result) {
- $tabfac = array ();
- $tabht = array ();
- $tabtva = array ();
- $def_tva = array ();
- $tabttc = array ();
- $tabcompany = array ();
-
- $num = $db->num_rows($result);
- $i = 0;
-
- $cptcli = (! empty($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER)) ? $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER : $langs->trans("CodeNotDef");
-
- while ( $i < $num ) {
- $obj = $db->fetch_object($result);
-
- // les variables
- $compta_soc = (! empty($obj->code_compta)) ? $obj->code_compta : $cptcli;
-
- $compta_prod = $obj->compte;
- if (empty($compta_prod)) {
- if ($obj->product_type == 0)
- $compta_prod = (! empty($conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT)) ? $conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT : $langs->trans("CodeNotDef");
- else
- $compta_prod = (! empty($conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT)) ? $conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT : $langs->trans("CodeNotDef");
- }
- $cpttva = (! empty($conf->global->ACCOUNTING_VAT_SOLD_ACCOUNT)) ? $conf->global->ACCOUNTING_VAT_SOLD_ACCOUNT : $langs->trans("CodeNotDef");
- $compta_tva = (! empty($obj->account_tva) ? $obj->account_tva : $cpttva);
-
-
- //Define array for display vat tx
- $def_tva[$obj->rowid]=price($obj->tva_tx);
-
- // Situation invoices handling
- $line = new FactureLigne($db);
- $line->fetch($obj->fdid);
- $prev_progress = $line->get_prev_progress($obj->fdid);
- if ($obj->type == Facture::TYPE_SITUATION) {
- // Avoid divide by 0
- if ($obj->situation_percent == 0) {
- $situation_ratio = 0;
- } else {
- $situation_ratio = ($obj->situation_percent - $prev_progress) / $obj->situation_percent;
- }
- } else {
- $situation_ratio = 1;
- }
-
- // Invoice lines
- $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;
- //$tabfac[$obj->rowid]["fk_facturedet"] = $obj->fdid;
-
- // Avoid warnings
- if (! isset($tabttc[$obj->rowid][$compta_soc])) $tabttc[$obj->rowid][$compta_soc] = 0;
- if (! isset($tabht[$obj->rowid][$compta_prod])) $tabht[$obj->rowid][$compta_prod] = 0;
- if (! isset($tabtva[$obj->rowid][$compta_tva])) $tabtva[$obj->rowid][$compta_tva] = 0;
-
- $tabttc[$obj->rowid][$compta_soc] += $obj->total_ttc * $situation_ratio;
- $tabht[$obj->rowid][$compta_prod] += $obj->total_ht * $situation_ratio;
- $tabtva[$obj->rowid][$compta_tva] += $obj->total_tva * $situation_ratio;
- $tabcompany[$obj->rowid] = array (
- 'id' => $obj->socid,
- 'name' => $obj->name,
- 'code_client' => $obj->code_client,
- 'code_compta' => $compta_soc
- );
-
- $i ++;
- }
+ $tabfac = array ();
+ $tabht = array ();
+ $tabtva = array ();
+ $def_tva = array ();
+ $tabttc = array ();
+ $tabcompany = array ();
+
+ $num = $db->num_rows($result);
+ $i = 0;
+
+ $cptcli = (! empty($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER)) ? $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER : $langs->trans("CodeNotDef");
+
+ while ( $i < $num ) {
+ $obj = $db->fetch_object($result);
+
+ // les variables
+ $compta_soc = (! empty($obj->code_compta)) ? $obj->code_compta : $cptcli;
+
+ $compta_prod = $obj->compte;
+ if (empty($compta_prod)) {
+ if ($obj->product_type == 0)
+ $compta_prod = (! empty($conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT)) ? $conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT : $langs->trans("CodeNotDef");
+ else
+ $compta_prod = (! empty($conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT)) ? $conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT : $langs->trans("CodeNotDef");
+ }
+ $cpttva = (! empty($conf->global->ACCOUNTING_VAT_SOLD_ACCOUNT)) ? $conf->global->ACCOUNTING_VAT_SOLD_ACCOUNT : $langs->trans("CodeNotDef");
+ $compta_tva = (! empty($obj->account_tva) ? $obj->account_tva : $cpttva);
+
+
+ //Define array for display vat tx
+ $def_tva[$obj->rowid]=price($obj->tva_tx);
+
+ // Situation invoices handling
+ $line = new FactureLigne($db);
+ $line->fetch($obj->fdid);
+ $prev_progress = $line->get_prev_progress($obj->fdid);
+ if ($obj->type == Facture::TYPE_SITUATION) {
+ // Avoid divide by 0
+ if ($obj->situation_percent == 0) {
+ $situation_ratio = 0;
+ } else {
+ $situation_ratio = ($obj->situation_percent - $prev_progress) / $obj->situation_percent;
+ }
+ } else {
+ $situation_ratio = 1;
+ }
+
+ // Invoice lines
+ $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;
+ //$tabfac[$obj->rowid]["fk_facturedet"] = $obj->fdid;
+
+ // Avoid warnings
+ if (! isset($tabttc[$obj->rowid][$compta_soc])) $tabttc[$obj->rowid][$compta_soc] = 0;
+ if (! isset($tabht[$obj->rowid][$compta_prod])) $tabht[$obj->rowid][$compta_prod] = 0;
+ if (! isset($tabtva[$obj->rowid][$compta_tva])) $tabtva[$obj->rowid][$compta_tva] = 0;
+
+ $tabttc[$obj->rowid][$compta_soc] += $obj->total_ttc * $situation_ratio;
+ $tabht[$obj->rowid][$compta_prod] += $obj->total_ht * $situation_ratio;
+ $tabtva[$obj->rowid][$compta_tva] += $obj->total_tva * $situation_ratio;
+ $tabcompany[$obj->rowid] = array (
+ 'id' => $obj->socid,
+ 'name' => $obj->name,
+ 'code_client' => $obj->code_client,
+ 'code_compta' => $compta_soc
+ );
+
+ $i ++;
+ }
} else {
- dol_print_error($db);
+ dol_print_error($db);
}
// Bookkeeping Write
if ($action == 'writebookkeeping') {
- $now = dol_now();
- $error = 0;
+ $now = dol_now();
+ $error = 0;
+
+ foreach ( $tabfac as $key => $val ) { // Loop on each invoice
- foreach ( $tabfac as $key => $val ) { // Loop on each invoice
-
- $errorforline = 0;
+ $errorforline = 0;
- $db->begin();
+ $db->begin();
- $companystatic = new Societe($db);
- $invoicestatic = new Facture($db);
+ $companystatic = new Societe($db);
+ $invoicestatic = new Facture($db);
- $companystatic->id = $tabcompany[$key]['id'];
- $companystatic->name = $tabcompany[$key]['name'];
+ $companystatic->id = $tabcompany[$key]['id'];
+ $companystatic->name = $tabcompany[$key]['name'];
$companystatic->code_compta = $tabcompany[$key]['code_compta'];
$companystatic->code_compta_fournisseur = $tabcompany[$key]['code_compta_fournisseur'];
$companystatic->code_client = $tabcompany[$key]['code_client'];
$companystatic->code_fournisseur = $tabcompany[$key]['code_fournisseur'];
- $companystatic->client = $tabcompany[$key]['code_client'];
-
- $invoicestatic->id = $key;
- $invoicestatic->ref = (string) $val["ref"];
-
- // Thirdparty
- if (! $errorforline)
- {
- foreach ( $tabttc[$key] as $k => $mt ) {
- if ($mt) {
- $bookkeeping = new BookKeeping($db);
- $bookkeeping->doc_date = $val["date"];
- $bookkeeping->doc_ref = $val["ref"];
- $bookkeeping->date_create = $now;
- $bookkeeping->doc_type = 'customer_invoice';
- $bookkeeping->fk_doc = $key;
- $bookkeeping->fk_docdet = 0; // Useless, can be several lines that are source of this record to add
- $bookkeeping->code_tiers = $tabcompany[$key]['code_client'];
- $bookkeeping->numero_compte = $tabcompany[$key]['code_compta'];
- // $bookkeeping->label_compte = $tabcompany[$key]['name'];
- $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;
- $bookkeeping->credit = ($mt < 0) ? $mt : 0;
- $bookkeeping->code_journal = $conf->global->ACCOUNTING_SELL_JOURNAL;
- $bookkeeping->fk_user_author = $user->id;
-
- $result = $bookkeeping->create($user);
- if ($result < 0) {
- if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') // Already exists
- {
- $error++;
- $errorforline++;
- //setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->doc_ref.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
- }
- else
- {
- $error++;
- $errorforline++;
- setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors');
- }
- }
- }
- }
- }
-
- // Product / Service
- if (! $errorforline)
- {
- foreach ( $tabht[$key] as $k => $mt ) {
- if ($mt) {
- // get compte id and label
- $accountingaccount = new AccountingAccount($db);
- if ($accountingaccount->fetch(null, $k, true)) {
- $bookkeeping = new BookKeeping($db);
- $bookkeeping->doc_date = $val["date"];
- $bookkeeping->doc_ref = $val["ref"];
- $bookkeeping->date_create = $now;
- $bookkeeping->doc_type = 'customer_invoice';
- $bookkeeping->fk_doc = $key;
- $bookkeeping->fk_docdet = 0; // Useless, can be several lines that are source of this record to add;
- $bookkeeping->code_tiers = '';
- $bookkeeping->numero_compte = $k;
- $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;
- $bookkeeping->credit = ($mt >= 0) ? $mt : 0;
- $bookkeeping->code_journal = $conf->global->ACCOUNTING_SELL_JOURNAL;
- $bookkeeping->fk_user_author = $user->id;
-
- $result = $bookkeeping->create($user);
- if ($result < 0) {
- if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') // Already exists
- {
- $error++;
- $errorforline++;
- //setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->doc_ref.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
- }
- else
- {
- $error++;
- $errorforline++;
- setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors');
- }
- }
- }
- }
- }
- }
-
- // VAT
- // var_dump($tabtva);
- if (! $errorforline)
- {
- foreach ( $tabtva[$key] as $k => $mt ) {
- if ($mt) {
- $bookkeeping = new BookKeeping($db);
- $bookkeeping->doc_date = $val["date"];
- $bookkeeping->doc_ref = $val["ref"];
- $bookkeeping->date_create = $now;
- $bookkeeping->doc_type = 'customer_invoice';
- $bookkeeping->fk_doc = $key;
- $bookkeeping->fk_docdet = 0; // Useless, can be several lines that are source of this record to add
- $bookkeeping->code_tiers = '';
- $bookkeeping->numero_compte = $k;
- $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;
- $bookkeeping->credit = ($mt >= 0) ? $mt : 0;
- $bookkeeping->code_journal = $conf->global->ACCOUNTING_SELL_JOURNAL;
- $bookkeeping->fk_user_author = $user->id;
-
- $result = $bookkeeping->create($user);
- if ($result < 0) {
- if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') // Already exists
- {
- $error++;
- $errorforline++;
- //setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->doc_ref.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
- }
- else
- {
- $error++;
- $errorforline++;
- setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors');
- }
- }
- }
- }
- }
-
- if (! $errorforline)
- {
- $db->commit();
- }
- else
- {
- $db->rollback();
- }
-
- }
-
- if (empty($error) && count($tabpay) > 0) {
- setEventMessages($langs->trans("GeneralLedgerIsWritten"), null, 'mesgs');
- }
- elseif (count($tabpay) == $error)
- {
- setEventMessages($langs->trans("NoNewRecordSaved"), null, 'warnings');
- }
- else
- {
- setEventMessages($langs->trans("GeneralLedgerSomeRecordWasNotRecorded"), null, 'warnings');
- }
-
- $action='';
+ $companystatic->client = $tabcompany[$key]['code_client'];
+
+ $invoicestatic->id = $key;
+ $invoicestatic->ref = (string) $val["ref"];
+
+ // Thirdparty
+ if (! $errorforline)
+ {
+ foreach ( $tabttc[$key] as $k => $mt ) {
+ if ($mt) {
+ $bookkeeping = new BookKeeping($db);
+ $bookkeeping->doc_date = $val["date"];
+ $bookkeeping->doc_ref = $val["ref"];
+ $bookkeeping->date_create = $now;
+ $bookkeeping->doc_type = 'customer_invoice';
+ $bookkeeping->fk_doc = $key;
+ $bookkeeping->fk_docdet = 0; // Useless, can be several lines that are source of this record to add
+ $bookkeeping->code_tiers = $tabcompany[$key]['code_client'];
+ $bookkeeping->numero_compte = $tabcompany[$key]['code_compta'];
+ // $bookkeeping->label_compte = $tabcompany[$key]['name'];
+ $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;
+ $bookkeeping->credit = ($mt < 0) ? $mt : 0;
+ $bookkeeping->code_journal = $journal;
+ $bookkeeping->journal_label = $journal_label;
+ $bookkeeping->fk_user_author = $user->id;
+
+ $result = $bookkeeping->create($user);
+ if ($result < 0) {
+ if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') // Already exists
+ {
+ $error++;
+ $errorforline++;
+ //setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->doc_ref.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
+ }
+ else
+ {
+ $error++;
+ $errorforline++;
+ setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors');
+ }
+ }
+ }
+ }
+ }
+
+ // Product / Service
+ if (! $errorforline)
+ {
+ foreach ( $tabht[$key] as $k => $mt ) {
+ if ($mt) {
+ // get compte id and label
+ $accountingaccount = new AccountingAccount($db);
+ if ($accountingaccount->fetch(null, $k, true)) {
+ $bookkeeping = new BookKeeping($db);
+ $bookkeeping->doc_date = $val["date"];
+ $bookkeeping->doc_ref = $val["ref"];
+ $bookkeeping->date_create = $now;
+ $bookkeeping->doc_type = 'customer_invoice';
+ $bookkeeping->fk_doc = $key;
+ $bookkeeping->fk_docdet = 0; // Useless, can be several lines that are source of this record to add;
+ $bookkeeping->code_tiers = '';
+ $bookkeeping->numero_compte = $k;
+ $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;
+ $bookkeeping->credit = ($mt >= 0) ? $mt : 0;
+ $bookkeeping->code_journal = $journal;
+ $bookkeeping->journal_label = $journal_label;
+ $bookkeeping->fk_user_author = $user->id;
+
+ $result = $bookkeeping->create($user);
+ if ($result < 0) {
+ if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') // Already exists
+ {
+ $error++;
+ $errorforline++;
+ //setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->doc_ref.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
+ }
+ else
+ {
+ $error++;
+ $errorforline++;
+ setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors');
+ }
+ }
+ }
+ }
+ }
+ }
+
+ // VAT
+ // var_dump($tabtva);
+ if (! $errorforline)
+ {
+ foreach ( $tabtva[$key] as $k => $mt ) {
+ if ($mt) {
+ $bookkeeping = new BookKeeping($db);
+ $bookkeeping->doc_date = $val["date"];
+ $bookkeeping->doc_ref = $val["ref"];
+ $bookkeeping->date_create = $now;
+ $bookkeeping->doc_type = 'customer_invoice';
+ $bookkeeping->fk_doc = $key;
+ $bookkeeping->fk_docdet = 0; // Useless, can be several lines that are source of this record to add
+ $bookkeeping->code_tiers = '';
+ $bookkeeping->numero_compte = $k;
+ $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;
+ $bookkeeping->credit = ($mt >= 0) ? $mt : 0;
+ $bookkeeping->code_journal = $journal;
+ $bookkeeping->journal_label = $journal_label;
+ $bookkeeping->fk_user_author = $user->id;
+
+ $result = $bookkeeping->create($user);
+ if ($result < 0) {
+ if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') // Already exists
+ {
+ $error++;
+ $errorforline++;
+ //setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->doc_ref.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
+ }
+ else
+ {
+ $error++;
+ $errorforline++;
+ setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors');
+ }
+ }
+ }
+ }
+ }
+
+ if (! $errorforline)
+ {
+ $db->commit();
+ }
+ else
+ {
+ $db->rollback();
+ }
+
+ }
+
+ if (empty($error) && count($tabpay) > 0) {
+ setEventMessages($langs->trans("GeneralLedgerIsWritten"), null, 'mesgs');
+ }
+ elseif (count($tabpay) == $error)
+ {
+ setEventMessages($langs->trans("NoNewRecordSaved"), null, 'warnings');
+ }
+ else
+ {
+ setEventMessages($langs->trans("GeneralLedgerSomeRecordWasNotRecorded"), null, 'warnings');
+ }
+
+ $action='';
}
@@ -380,123 +388,123 @@ $form = new Form($db);
// Export
/*if ($action == 'export_csv') {
- $sep = $conf->global->ACCOUNTING_EXPORT_SEPARATORCSV;
- $sell_journal = $conf->global->ACCOUNTING_SELL_JOURNAL;
-
- include DOL_DOCUMENT_ROOT . '/accountancy/tpl/export_journal.tpl.php';
-
- $companystatic = new Client($db);
-
- // Model Cegid Expert Export
- if ($conf->global->ACCOUNTING_EXPORT_MODELCSV == 2) {
- $sep = ";";
-
- foreach ( $tabfac as $key => $val ) {
- $companystatic->id = $tabcompany[$key]['id'];
- $companystatic->name = $tabcompany[$key]['name'];
- $companystatic->client = $tabcompany[$key]['code_client'];
-
- $invoicestatic->id = $key;
- $invoicestatic->ref = $val["ref"];
-
- $date = dol_print_date($val["date"], '%d%m%Y');
-
- foreach ( $tabttc[$key] as $k => $mt ) {
- print $date . $sep;
- print $sell_journal . $sep;
- print length_accountg($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER) . $sep;
- print length_accounta(html_entity_decode($k)) . $sep;
- print ($mt < 0 ? 'C' : 'D') . $sep;
- print ($mt <= 0 ? price(- $mt) : $mt) . $sep;
- print dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("Code_tiers") . $sep;
- print $val["ref"];
- print "\n";
- }
-
- // Product / Service
- foreach ( $tabht[$key] as $k => $mt ) {
- $accountingaccount_static = new AccountingAccount($db);
- if ($accountingaccount_static->fetch(null, $k, true)) {
- print $date . $sep;
- print $sell_journal . $sep;
- print length_accountg(html_entity_decode($k)) . $sep;
- print $sep;
- print ($mt < 0 ? 'D' : 'C') . $sep;
- print ($mt <= 0 ? price(- $mt) : $mt) . $sep;
- print dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref . ' - ' . $accountingaccount_static->label . $sep;
- print $val["ref"];
- print "\n";
- }
- }
-
- // TVA
- foreach ( $tabtva[$key] as $k => $mt ) {
- if ($mt) {
- print $date . $sep;
- print $sell_journal . $sep;
- print length_accountg(html_entity_decode($k)) . $sep;
- print $sep;
- print ($mt < 0 ? 'D' : 'C') . $sep;
- print ($mt <= 0 ? price(- $mt) : $mt) . $sep;
- print dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("VAT") . $sep;
- // print $langs->trans("VAT") . $sep;
- print $val["ref"];
- print "\n";
- }
- }
- }
- } elseif ($conf->global->ACCOUNTING_EXPORT_MODELCSV == 1) {
- // Model Classic Export
- foreach ( $tabfac as $key => $val ) {
- $companystatic->id = $tabcompany[$key]['id'];
- $companystatic->name = $tabcompany[$key]['name'];
- $companystatic->client = $tabcompany[$key]['code_client'];
-
- $invoicestatic->id = $key;
- $invoicestatic->ref = $val["ref"];
-
- $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 '"' . 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";
- }
-
- // Product / Service
- foreach ( $tabht[$key] as $k => $mt ) {
- $accountingaccount = new AccountingAccount($db);
- $accountingaccount->fetch(null, $k, true);
-
- if ($mt) {
- print '"' . $date . '"' . $sep;
- print '"' . $val["ref"] . '"' . $sep;
- print '"' . length_accountg(html_entity_decode($k)) . '"' . $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";
- }
- }
-
- // VAT
- foreach ( $tabtva[$key] as $k => $mt ) {
- if ($mt) {
- print '"' . $date . '"' . $sep;
- print '"' . $val["ref"] . '"' . $sep;
- print '"' . length_accountg(html_entity_decode($k)) . '"' . $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";
- }
- }
- }
- }
+ $sep = $conf->global->ACCOUNTING_EXPORT_SEPARATORCSV;
+ $sell_journal = $conf->global->ACCOUNTING_SELL_JOURNAL;
+
+ include DOL_DOCUMENT_ROOT . '/accountancy/tpl/export_journal.tpl.php';
+
+ $companystatic = new Client($db);
+
+ // Model Cegid Expert Export
+ if ($conf->global->ACCOUNTING_EXPORT_MODELCSV == 2) {
+ $sep = ";";
+
+ foreach ( $tabfac as $key => $val ) {
+ $companystatic->id = $tabcompany[$key]['id'];
+ $companystatic->name = $tabcompany[$key]['name'];
+ $companystatic->client = $tabcompany[$key]['code_client'];
+
+ $invoicestatic->id = $key;
+ $invoicestatic->ref = $val["ref"];
+
+ $date = dol_print_date($val["date"], '%d%m%Y');
+
+ foreach ( $tabttc[$key] as $k => $mt ) {
+ print $date . $sep;
+ print $sell_journal . $sep;
+ print length_accountg($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER) . $sep;
+ print length_accounta(html_entity_decode($k)) . $sep;
+ print ($mt < 0 ? 'C' : 'D') . $sep;
+ print ($mt <= 0 ? price(- $mt) : $mt) . $sep;
+ print dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("Code_tiers") . $sep;
+ print $val["ref"];
+ print "\n";
+ }
+
+ // Product / Service
+ foreach ( $tabht[$key] as $k => $mt ) {
+ $accountingaccount_static = new AccountingAccount($db);
+ if ($accountingaccount_static->fetch(null, $k, true)) {
+ print $date . $sep;
+ print $sell_journal . $sep;
+ print length_accountg(html_entity_decode($k)) . $sep;
+ print $sep;
+ print ($mt < 0 ? 'D' : 'C') . $sep;
+ print ($mt <= 0 ? price(- $mt) : $mt) . $sep;
+ print dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref . ' - ' . $accountingaccount_static->label . $sep;
+ print $val["ref"];
+ print "\n";
+ }
+ }
+
+ // TVA
+ foreach ( $tabtva[$key] as $k => $mt ) {
+ if ($mt) {
+ print $date . $sep;
+ print $sell_journal . $sep;
+ print length_accountg(html_entity_decode($k)) . $sep;
+ print $sep;
+ print ($mt < 0 ? 'D' : 'C') . $sep;
+ print ($mt <= 0 ? price(- $mt) : $mt) . $sep;
+ print dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("VAT") . $sep;
+ // print $langs->trans("VAT") . $sep;
+ print $val["ref"];
+ print "\n";
+ }
+ }
+ }
+ } elseif ($conf->global->ACCOUNTING_EXPORT_MODELCSV == 1) {
+ // Model Classic Export
+ foreach ( $tabfac as $key => $val ) {
+ $companystatic->id = $tabcompany[$key]['id'];
+ $companystatic->name = $tabcompany[$key]['name'];
+ $companystatic->client = $tabcompany[$key]['code_client'];
+
+ $invoicestatic->id = $key;
+ $invoicestatic->ref = $val["ref"];
+
+ $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 '"' . 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";
+ }
+
+ // Product / Service
+ foreach ( $tabht[$key] as $k => $mt ) {
+ $accountingaccount = new AccountingAccount($db);
+ $accountingaccount->fetch(null, $k, true);
+
+ if ($mt) {
+ print '"' . $date . '"' . $sep;
+ print '"' . $val["ref"] . '"' . $sep;
+ print '"' . length_accountg(html_entity_decode($k)) . '"' . $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";
+ }
+ }
+
+ // VAT
+ foreach ( $tabtva[$key] as $k => $mt ) {
+ if ($mt) {
+ print '"' . $date . '"' . $sep;
+ print '"' . $val["ref"] . '"' . $sep;
+ print '"' . length_accountg(html_entity_decode($k)) . '"' . $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";
+ }
+ }
+ }
+ }
}
*/
@@ -505,7 +513,7 @@ if (empty($action) || $action == 'view') {
llxHeader('', $langs->trans("SellsJournal"));
- $nom = $langs->trans("SellsJournal");
+ $nom = $langs->trans("SellsJournal") . ' - ' . $accountingjournalstatic->getNomUrl(1);
$nomlink = '';
$periodlink = '';
$exportlink = '';
@@ -517,29 +525,31 @@ if (empty($action) || $action == 'view') {
else
$description .= $langs->trans("DepositsAreIncluded");
$period = $form->select_date($date_start, 'date_start', 0, 0, 0, '', 1, 0, 1) . ' - ' . $form->select_date($date_end, 'date_end', 0, 0, 0, '', 1, 0, 1);
-
- journalHead($nom, $nomlink, $period, $periodlink, $description, $builddate, $exportlink, array('action' => ''));
+
+ $varlink = 'id_journal=' . $id_journal;
+
+ journalHead($nom, $nomlink, $period, $periodlink, $description, $builddate, $exportlink, array('action' => ''), '', $varlink);
/*if ($conf->global->ACCOUNTING_EXPORT_MODELCSV != 1 && $conf->global->ACCOUNTING_EXPORT_MODELCSV != 2) {
print '<input type="button" class="butActionRefused" style="float: right;" value="' . $langs->trans("Export") . '" disabled="disabled" title="' . $langs->trans('ExportNotSupported') . '"/>';
} else {
print '<input type="button" class="butAction" style="float: right;" value="' . $langs->trans("Export") . '" onclick="launch_export();" />';
}*/
- print '<div class="tabsAction">';
+ print '<div class="tabsAction">';
print '<input type="button" class="butAction" value="' . $langs->trans("WriteBookKeeping") . '" onclick="writebookkeeping();" />';
- print '</div>';
-
+ print '</div>';
+
print '
<script type="text/javascript">
function launch_export() {
- $("div.fiche div.tabBar form input[name=\"action\"]").val("export_csv");
+ $("div.fiche div.tabBar form input[name=\"action\"]").val("export_csv");
$("div.fiche div.tabBar form input[type=\"submit\"]").click();
- $("div.fiche div.tabBar form input[name=\"action\"]").val("");
+ $("div.fiche div.tabBar form input[name=\"action\"]").val("");
}
function writebookkeeping() {
- $("div.fiche div.tabBar form input[name=\"action\"]").val("writebookkeeping");
+ $("div.fiche div.tabBar form input[name=\"action\"]").val("writebookkeeping");
$("div.fiche div.tabBar form input[type=\"submit\"]").click();
- $("div.fiche div.tabBar form input[name=\"action\"]").val("");
+ $("div.fiche div.tabBar form input[name=\"action\"]").val("");
}
</script>';
@@ -586,7 +596,7 @@ if (empty($action) || $action == 'view') {
$accountoshow = length_accounta($k);
if (empty($accountoshow) || $accountoshow == 'NotDefined')
{
- print '<span class="error">'.$langs->trans("ThirdpartyAccountNotDefined").'</span>';
+ print '<span class="error">'.$langs->trans("ThirdpartyAccountNotDefined").'</span>';
}
else print $accountoshow;
// print "</td><td>" . $langs->trans("ThirdParty");
@@ -595,7 +605,7 @@ if (empty($action) || $action == 'view') {
print "<td>" . $companystatic->getNomUrl(0, 'customer', 16) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("Code_tiers") . "</td>";
print "<td align='right'>" . ($mt >= 0 ? price($mt) : '') . "</td>";
print "<td align='right'>" . ($mt < 0 ? price(- $mt) : '') . "</td>";
- print "</tr>";
+ print "</tr>";
}
// Product / Service
@@ -609,12 +619,12 @@ if (empty($action) || $action == 'view') {
print "<td>" . $date . "</td>";
print "<td>" . $invoicestatic->getNomUrl(1) . "</td>";
print "<td>";
- $accountoshow = length_accountg($k);
- if (empty($accountoshow) || $accountoshow == 'NotDefined')
- {
- print '<span class="error">'.$langs->trans("ProductNotDefined").'</span>';
- }
- else print $accountoshow;
+ $accountoshow = length_accountg($k);
+ if (empty($accountoshow) || $accountoshow == 'NotDefined')
+ {
+ print '<span class="error">'.$langs->trans("ProductNotDefined").'</span>';
+ }
+ else print $accountoshow;
print "</td>";
// print "<td>" . $accountingaccount->label . "</td>";
print "<td>" . $companystatic->getNomUrl(0, 'customer', 16) . ' - ' . $invoicestatic->ref . ' - ' . $accountingaccount->label . "</td>";
@@ -632,12 +642,12 @@ if (empty($action) || $action == 'view') {
print "<td>" . $date . "</td>";
print "<td>" . $invoicestatic->getNomUrl(1) . "</td>";
print "<td>";
- $accountoshow = length_accountg($k);
- if (empty($accountoshow) || $accountoshow == 'NotDefined')
- {
- print '<span class="error">'.$langs->trans("VATAccountNotDefined").'</span>';
- }
- else print $accountoshow;
+ $accountoshow = length_accountg($k);
+ if (empty($accountoshow) || $accountoshow == 'NotDefined')
+ {
+ print '<span class="error">'.$langs->trans("VATAccountNotDefined").'</span>';
+ }
+ else print $accountoshow;
print "</td>";
print "<td>" . $companystatic->getNomUrl(0, 'customer', 16) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("VAT") . ' '.$def_tva[$key]. "</td>";
// print "<td>" . $langs->trans("VAT") . "</td>";