* Copyright (C) 2004-2008 Laurent Destailleur * Copyright (C) 2005-2015 Regis Houssin * Copyright (C) 2012 Juanjo Menent * Copyright (C) 2015 Jean-François Ferry * Copyright (C) 2015 Marcos García * * 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 * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ /** * \file htdocs/compta/bank/virement.php * \ingroup banque * \brief Page de saisie d'un virement */ require('../../main.inc.php'); require_once DOL_DOCUMENT_ROOT.'/core/lib/bank.lib.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; $langs->load("banks"); $langs->load("categories"); if (! $user->rights->banque->transfer) accessforbidden(); $action = GETPOST('action','alpha'); /* * Actions */ if ($action == 'add') { $langs->load("errors"); $dateo = dol_mktime(12,0,0,GETPOST('remonth','int'),GETPOST('reday','int'),GETPOST('reyear','int')); $label = GETPOST('label','alpha'); $amount= GETPOST('amount'); if (! $label) { $error=1; setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentities("Description")), 'errors'); } if (! $amount) { $error=1; setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentities("Amount")), 'errors'); } if (! GETPOST('account_from','int')) { $error=1; setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentities("TransferFrom")), 'errors'); } if (! GETPOST('account_to','int')) { $error=1; setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentities("TransferTo")), 'errors'); } if (! $error) { require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; $accountfrom=new Account($db); $accountfrom->fetch(GETPOST('account_from','int')); $accountto=new Account($db); $accountto->fetch(GETPOST('account_to','int')); if (($accountto->id != $accountfrom->id) && ($accountto->currency_code == $accountfrom->currency_code)) { $db->begin(); $error=0; $bank_line_id_from=0; $bank_line_id_to=0; $result=0; // By default, electronic transfert from bank to bank $typefrom='PRE'; $typeto='VIR'; if ($accountto->courant == 2 || $accountfrom->courant == 2) { // This is transfert of change $typefrom='LIQ'; $typeto='LIQ'; } if (! $error) $bank_line_id_from = $accountfrom->addline($dateo, $typefrom, $label, -1*price2num($amount), '', '', $user); if (! ($bank_line_id_from > 0)) $error++; if (! $error) $bank_line_id_to = $accountto->addline($dateo, $typeto, $label, price2num($amount), '', '', $user); if (! ($bank_line_id_to > 0)) $error++; if (! $error) $result=$accountfrom->add_url_line($bank_line_id_from, $bank_line_id_to, DOL_URL_ROOT.'/compta/bank/ligne.php?rowid=', '(banktransfert)', 'banktransfert'); if (! ($result > 0)) $error++; if (! $error) $result=$accountto->add_url_line($bank_line_id_to, $bank_line_id_from, DOL_URL_ROOT.'/compta/bank/ligne.php?rowid=', '(banktransfert)', 'banktransfert'); if (! ($result > 0)) $error++; if (! $error) { $mesgs = $langs->trans("TransferFromToDone","id."\">".$accountfrom->label."","id."\">".$accountto->label."",$amount,$langs->transnoentities("Currency".$conf->currency)); setEventMessage($mesgs); $db->commit(); } else { setEventMessage($accountfrom->error.' '.$accountto->error, 'errors'); $db->rollback(); } } else { setEventMessage($langs->trans("ErrorFromToAccountsMustDiffers"), 'errors'); } } } /* * Affichage */ llxHeader(); $form=new Form($db); $account_from=''; $account_to=''; $label=''; $amount=''; if($error) { $account_from = GETPOST('account_from','int'); $account_to = GETPOST('account_to','int'); $label = GETPOST('label','alpha'); $amount = GETPOST('amount','int'); } print_fiche_titre($langs->trans("BankTransfer"), '', 'title_bank.png'); print $langs->trans("TransferDesc"); print "

"; print "
"; print ''; print ''; print ''; print ''; print ''; print ''; $var=false; print '"; print "\n"; print "\n"; print ''; print ''; print "
'.$langs->trans("TransferFrom").''.$langs->trans("TransferTo").''.$langs->trans("Date").''.$langs->trans("Description").''.$langs->trans("Amount").'
'; $form->select_comptes($account_from,'account_from',0,'',1); print "\n"; $form->select_comptes($account_to,'account_to',0,'',1); print ""; $form->select_date((! empty($dateo)?$dateo:''),'','','','','add'); print "
"; print '
'; print "
"; $db->close(); llxFooter();