Ajout du lien dans bank_url entre les 2 ecritures d'un virement
This commit is contained in:
parent
3f9e9a212d
commit
5d9b8cef9d
@ -101,7 +101,7 @@ class Account
|
||||
* \param type Type de lien (payment, company, member, ...)
|
||||
* \return int <0 si ko, id line si ok
|
||||
*/
|
||||
function add_url_line($line_id, $url_id, $url, $label, $type='')
|
||||
function add_url_line($line_id, $url_id, $url, $label, $type)
|
||||
{
|
||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."bank_url (fk_bank, url_id, url, label, type)";
|
||||
$sql .= " VALUES ('".$line_id."', '".$url_id."', '".$url."', '".addslashes($label)."', '".$type."')";
|
||||
|
||||
@ -376,6 +376,12 @@ if ($result)
|
||||
print $links[$key]['label'];
|
||||
print '</a>';
|
||||
}
|
||||
else if ($links[$key]['type']=='banktransfert') {
|
||||
print '<a href="'.DOL_URL_ROOT.'/compta/bank/ligne.php?rowid='.$links[$key]['url_id'].'">';
|
||||
print img_object($langs->trans('ShowTransaction'),'payment').' ';
|
||||
print $langs->trans("TransactionOnTheOtherAccount");
|
||||
print '</a>';
|
||||
}
|
||||
else {
|
||||
print '<a href="'.$links[$key]['url'].$links[$key]['url_id'].'">';
|
||||
print $links[$key]['label'];
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||
* Copyright (C) 2004-2006 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2004-2007 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
|
||||
@ -17,7 +17,6 @@
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* $Id$
|
||||
* $Source$
|
||||
*/
|
||||
|
||||
/**
|
||||
@ -44,7 +43,7 @@ if (!$user->rights->banque->modifier)
|
||||
if ($_POST["action"] == 'add')
|
||||
{
|
||||
$mesg='';
|
||||
$dateo = $_POST["reyear"]."-".$_POST["remonth"]."-".$_POST["reday"];
|
||||
$dateo = dolibarr_mktime(12,0,0,$_POST["remonth"],$_POST["reday"],$_POST["reyear"]);
|
||||
$label = $_POST["label"];
|
||||
$amount= $_POST["amount"];
|
||||
|
||||
@ -60,37 +59,31 @@ if ($_POST["action"] == 'add')
|
||||
}
|
||||
if (! $error)
|
||||
{
|
||||
require_once(DOL_DOCUMENT_ROOT.'/compta/bank/account.class.php');
|
||||
|
||||
$db->begin();
|
||||
|
||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."bank (datec, datev, dateo, label, amount, fk_user_author,fk_account, fk_type)";
|
||||
$sql .= " VALUES (now(), '$dateo', '$dateo', '".addslashes($label)."', '".price2num(-1*price2num($amount))."', $user->id, ".$_POST["account_from"].", 'VIR')";
|
||||
$accountfrom=new Account($db);
|
||||
$accountfrom->fetch($_POST["account_from"]);
|
||||
|
||||
dolibarr_syslog("Virement insert bank sql=".$sql);
|
||||
$result = $db->query($sql);
|
||||
if (!$result)
|
||||
$bank_line_id_from = $accountfrom->addline($dateo, 'VIR', $label, -1*price2num($amount), '', '', $user);
|
||||
|
||||
$accountto=new Account($db);
|
||||
$accountto->fetch($_POST["account_to"]);
|
||||
|
||||
$bank_line_id_to = $accountto->addline($dateo, 'VIR', $label, price2num($amount), '', '', $user);
|
||||
|
||||
$result1=$accountfrom->add_url_line($bank_line_id_from, $bank_line_id_to, DOL_URL_ROOT.'/compta/bank/ligne.php?rowid=', '(banktransfert)', 'banktransfert');
|
||||
$result2=$accountto->add_url_line($bank_line_id_to, $bank_line_id_from, DOL_URL_ROOT.'/compta/bank/ligne.php?rowid=', '(banktransfert)', 'banktransfert');
|
||||
|
||||
if ($result1 > 0 && $result2 > 0)
|
||||
{
|
||||
$db->rollback();
|
||||
dolibarr_print_error($db);
|
||||
}
|
||||
|
||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."bank (datec, datev, dateo, label, amount, fk_user_author,fk_account, fk_type)";
|
||||
$sql .= " VALUES (now(), '$dateo', '$dateo', '".addslashes($label)."', '".price2num($amount)."',$user->id, ".$_POST["account_to"].", 'VIR')";
|
||||
|
||||
dolibarr_syslog("Virement insert bank sql=".$sql);
|
||||
$result = $db->query($sql);
|
||||
if ($result)
|
||||
{
|
||||
$accountfrom=new Account($db);
|
||||
$accountfrom->fetch($_POST["account_from"]);
|
||||
$accountto=new Account($db);
|
||||
$accountto->fetch($_POST["account_to"]);
|
||||
|
||||
$mesg.="<div class=\"ok\">Le virement depuis « <a href=\"account.php?account=".$accountfrom->id."\">".$accountfrom->label."</a> » vers « <a href=\"account.php?account=".$accountto->id."\">".$accountto->label."</a> » de ".$amount." ".$langs->trans("Currency".$conf->monnaie)." a été créé.</div>";
|
||||
$db->commit();
|
||||
}
|
||||
else
|
||||
{
|
||||
$mesg.="<div class=\"error\">".$db->lasterror()."</div>";
|
||||
$mesg.="<div class=\"error\">".$accountfrom->error.' '.$accountto->error."</div>";
|
||||
$db->rollback();
|
||||
}
|
||||
}
|
||||
|
||||
@ -174,6 +174,8 @@ if (isset($_POST['action']) && $_POST['action'] == 'upgrade')
|
||||
migrate_paiements_orphelins_1($db,$langs,$conf);
|
||||
|
||||
migrate_paiements_orphelins_2($db,$langs,$conf);
|
||||
|
||||
migrate_links_transfert($db,$langs,$conf);
|
||||
|
||||
// On commit dans tous les cas.
|
||||
// La procédure etant conçue pour pouvoir passer plusieurs fois quelquesoit la situation.
|
||||
@ -595,6 +597,83 @@ function migrate_contracts_det($db,$langs,$conf)
|
||||
}
|
||||
|
||||
|
||||
function migrate_links_transfert($db,$langs,$conf)
|
||||
{
|
||||
print '<tr><td colspan="4">';
|
||||
|
||||
$nberr=0;
|
||||
|
||||
print '<br>';
|
||||
print '<b>'.$langs->trans('MigrationBankTransfertsUpdate')."</b><br>\n";
|
||||
|
||||
$sql = "SELECT ba.rowid as barowid, bb.rowid as bbrowid";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."bank as bb, ".MAIN_DB_PREFIX."bank as ba";
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."bank_url as bu ON bu.fk_bank = ba.rowid";
|
||||
$sql.= " WHERE ba.amount = -bb.amount AND ba.fk_account <> bb.fk_account";
|
||||
$sql.= " AND ba.datev = bb.datev AND ba.datec = bb.datec";
|
||||
$sql.= " AND bu.fk_bank IS NULL";
|
||||
$resql = $db->query($sql);
|
||||
|
||||
dolibarr_install_syslog("migrate_links_transfert sql=".$sql);
|
||||
if ($resql)
|
||||
{
|
||||
$i = 0;
|
||||
$row = array();
|
||||
$num = $db->num_rows($resql);
|
||||
|
||||
if ($num)
|
||||
{
|
||||
print $langs->trans('MigrationBankTransfertsToUpdate', $num)."<br>\n";
|
||||
$db->begin();
|
||||
|
||||
while ($i < $num)
|
||||
{
|
||||
$obj = $db->fetch_object($resql);
|
||||
|
||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."bank_url (";
|
||||
$sql.= "fk_bank, url_id, url, label, type";
|
||||
$sql.= ")";
|
||||
$sql.= " VALUES (";
|
||||
$sql.= $obj->barowid.",".$obj->bbrowid.", '/compta/bank/ligne.php?rowid=', '(banktransfert)', 'banktransfert'";
|
||||
$sql.= ")";
|
||||
|
||||
print $sql.'<br>';
|
||||
dolibarr_install_syslog("migrate_links_transfert sql=".$sql);
|
||||
|
||||
if (! $db->query($sql))
|
||||
{
|
||||
dolibarr_print_error($db);
|
||||
$nberr++;
|
||||
}
|
||||
|
||||
$i++;
|
||||
}
|
||||
|
||||
if (! $nberr)
|
||||
{
|
||||
// $db->rollback();
|
||||
$db->commit();
|
||||
print $langs->trans('MigrationSuccessfullUpdate')."<br>";
|
||||
}
|
||||
else
|
||||
{
|
||||
$db->rollback();
|
||||
print $langs->trans('MigrationUpdateFailed').'<br>';
|
||||
}
|
||||
}
|
||||
else {
|
||||
print $langs->trans('MigrationBankTransfertsNothingToUpdate')."<br>\n";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
dolibarr_print_error($db);
|
||||
}
|
||||
|
||||
print '</td></tr>';
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Mise a jour des date de contrats non renseignées
|
||||
*/
|
||||
|
||||
@ -110,3 +110,4 @@ ThisWillAlsoDeleteBankRecord=This will also delete generated bank transactions
|
||||
BankMovements=Movements
|
||||
CashBudget=Cash budget
|
||||
ExportDataset_banque_1=Bank transactions and account statement
|
||||
TransactionOnTheOtherAccount=Transaction on the other account
|
||||
|
||||
@ -109,4 +109,5 @@ ConfirmDeleteTransaction=Etes-vous sur de vouloir supprimer cette transaction ?
|
||||
ThisWillAlsoDeleteBankRecord=Ceci supprimera aussi les écritures banquaires générées
|
||||
BankMovements=Mouvements
|
||||
CashBudget=Budget de trésorerie
|
||||
ExportDataset_banque_1=Transaction bancaire et relevé
|
||||
ExportDataset_banque_1=Transaction bancaire et relevé
|
||||
TransactionOnTheOtherAccount=Transaction sur l'autre compte
|
||||
@ -21,10 +21,11 @@ update llx_bank_account set currency_code='EUR' where (currency_code IS NULL or
|
||||
|
||||
-- Sequence de requete pour nettoyage et correction champ type table llx_bank_url
|
||||
update llx_bank_url set type='company' where (type is null or type = '') and url like '%compta/fiche.php?socid=%';
|
||||
alter table llx_bank_url modify `type` enum("","?","company","payment","payment_supplier","member","subscription","donation","sc","payment_sc");
|
||||
alter table llx_bank_url modify `type` varchar(20);
|
||||
update llx_bank_url set type='?' where (type is null or type = '') and url like '%compta/facture.php?facid=%';
|
||||
update llx_bank_url set type='payment_supplier' where (type='' or type is null) and url like '%fourn/paiement/fiche.php?id=%';
|
||||
alter table llx_bank_url modify `type` enum("?","company","payment","payment_supplier","member","subscription","donation","sc","payment_sc") NOT NULL;
|
||||
update llx_bank_url set type='?' where (type is null or type = '');
|
||||
alter table llx_bank_url modify `type` varchar(20) NOT NULL;
|
||||
|
||||
|
||||
insert into llx_rights_def (id, libelle, module, type, bydefault, subperms, perms) values (114,'Rapprocher transactions','banque','w',0,null,'consolidate');
|
||||
|
||||
@ -28,5 +28,5 @@ create table llx_bank_url
|
||||
url_id integer,
|
||||
url varchar(255),
|
||||
label varchar(255),
|
||||
type enum("?","company","payment","payment_supplier","member","subscription","donation","sc","payment_sc") NOT NULL
|
||||
type varchar(20) NOT NULL
|
||||
)type=innodb;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user