diff --git a/htdocs/compta/bank/class/paymentvarious.class.php b/htdocs/compta/bank/class/paymentvarious.class.php
index 420d7eb2162..58e01ec2f28 100644
--- a/htdocs/compta/bank/class/paymentvarious.class.php
+++ b/htdocs/compta/bank/class/paymentvarious.class.php
@@ -682,4 +682,40 @@ class PaymentVarious extends CommonObject
dol_print_error($this->db);
}
}
+
+ /**
+ * Return if a various payment linked to a bank line id was dispatched into bookkeeping
+ *
+ * @return int <0 if KO, 0=no, 1=yes
+ */
+ public function getVentilExportCompta()
+ {
+ $banklineid = $this->fk_bank;
+
+ $alreadydispatched = 0;
+
+ $type = 'bank';
+
+ $sql = " SELECT COUNT(ab.rowid) as nb FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as ab WHERE ab.doc_type='".$type."' AND ab.fk_doc = ".$banklineid;
+ $resql = $this->db->query($sql);
+ if ($resql)
+ {
+ $obj = $this->db->fetch_object($resql);
+ if ($obj)
+ {
+ $alreadydispatched = $obj->nb;
+ }
+ }
+ else
+ {
+ $this->error = $this->db->lasterror();
+ return -1;
+ }
+
+ if ($alreadydispatched)
+ {
+ return 1;
+ }
+ return 0;
+ }
}
diff --git a/htdocs/compta/bank/various_payment/card.php b/htdocs/compta/bank/various_payment/card.php
index 635e95b8e12..6573207a117 100644
--- a/htdocs/compta/bank/various_payment/card.php
+++ b/htdocs/compta/bank/various_payment/card.php
@@ -427,6 +427,8 @@ if ($action == 'create')
if ($id)
{
+ $alreadyaccounted = $object->getVentilExportCompta();
+
$head=various_payment_prepare_head($object);
dol_fiche_head($head, 'card', $langs->trans("VariousPayment"), -1, $object->picto);
@@ -510,9 +512,9 @@ if ($id)
// Subledger account
print '
| ';
- print $form->editfieldkey('SubledgerAccount', 'subledger_account', $object->subledger_account, $object, $user->rights->banque->modifier, 'string', '', 0);
+ print $form->editfieldkey('SubledgerAccount', 'subledger_account', $object->subledger_account, $object, (!$alreadyaccounted && $user->rights->banque->modifier), 'string', '', 0);
print ' | ';
- print $form->editfieldval('SubledgerAccount', 'subledger_account', $object->subledger_account, $object, $user->rights->banque->modifier, 'string', '', 0);
+ print $form->editfieldval('SubledgerAccount', 'subledger_account', $object->subledger_account, $object, (!$alreadyaccounted && $user->rights->banque->modifier), 'string', '', 0);
print ' |
';
if (!empty($conf->banque->enabled))
@@ -557,7 +559,11 @@ if ($id)
{
if (!empty($user->rights->banque->modifier))
{
- print '';
+ if ($alreadyaccounted) {
+ print '';
+ } else {
+ print '';
+ }
}
else
{
diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php
index fdeeb2c69fa..8980f2a41dd 100644
--- a/htdocs/core/lib/functions.lib.php
+++ b/htdocs/core/lib/functions.lib.php
@@ -1561,7 +1561,7 @@ function dol_banner_tab($object, $paramid, $morehtml = '', $shownav = 1, $fieldi
}
// Add if object was dispatched "into accountancy"
- if (!empty($conf->accounting->enabled) && in_array($object->element, array('bank', 'facture', 'invoice', 'invoice_supplier', 'expensereport')))
+ if (!empty($conf->accounting->enabled) && in_array($object->element, array('bank', 'facture', 'invoice', 'invoice_supplier', 'expensereport', 'payment_various')))
{
if (method_exists($object, 'getVentilExportCompta'))
{