本文整理汇总了PHP中Account::add_url_line方法的典型用法代码示例。如果您正苦于以下问题:PHP Account::add_url_line方法的具体用法?PHP Account::add_url_line怎么用?PHP Account::add_url_line使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Account
的用法示例。
在下文中一共展示了Account::add_url_line方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: addPaymentToBank
/**
* Add a record into bank for payment with links between this bank record and invoices of payment.
* All payment properties (this->amount, this->amounts, ...) must have been set first like after a call to create().
*
* @param User $user Object of user making payment
* @param string $mode 'payment', 'payment_supplier'
* @param string $label Label to use in bank record
* @param int $accountid Id of bank account to do link with
* @param string $emetteur_nom Name of transmitter
* @param string $emetteur_banque Name of bank
* @param int $notrigger No trigger
* @return int <0 if KO, bank_line_id if OK
*/
function addPaymentToBank($user, $mode, $label, $accountid, $emetteur_nom, $emetteur_banque, $notrigger = 0)
{
global $conf, $langs, $user;
$error = 0;
$bank_line_id = 0;
if (!empty($conf->banque->enabled)) {
if ($accountid <= 0) {
$this->error = 'Bad value for parameter accountid';
dol_syslog(get_class($this) . '::addPaymentToBank ' . $this->error, LOG_ERR);
return -1;
}
$this->db->begin();
$this->fk_account = $accountid;
require_once DOL_DOCUMENT_ROOT . '/compta/bank/class/account.class.php';
dol_syslog("{$user->id},{$mode},{$label},{$this->fk_account},{$emetteur_nom},{$emetteur_banque}");
$acc = new Account($this->db);
$result = $acc->fetch($this->fk_account);
$totalamount = $this->amount;
if (empty($totalamount)) {
$totalamount = $this->total;
}
// For backward compatibility
if ($mode == 'payment_supplier') {
$totalamount = -$totalamount;
}
// Insert payment into llx_bank
$bank_line_id = $acc->addline($this->datepaye, $this->paiementid, $label, $totalamount, $this->num_paiement, '', $user, $emetteur_nom, $emetteur_banque);
// Mise a jour fk_bank dans llx_paiement
// On connait ainsi le paiement qui a genere l'ecriture bancaire
if ($bank_line_id > 0) {
$result = $this->update_fk_bank($bank_line_id);
if ($result <= 0) {
$error++;
dol_print_error($this->db);
}
// Add link 'payment', 'payment_supplier' in bank_url between payment and bank transaction
if (!$error) {
$url = '';
if ($mode == 'payment') {
$url = DOL_URL_ROOT . '/compta/paiement/card.php?id=';
}
if ($mode == 'payment_supplier') {
$url = DOL_URL_ROOT . '/fourn/paiement/card.php?id=';
}
if ($url) {
$result = $acc->add_url_line($bank_line_id, $this->id, $url, '(paiement)', $mode);
if ($result <= 0) {
$error++;
dol_print_error($this->db);
}
}
}
// Add link 'company' in bank_url between invoice and bank transaction (for each invoice concerned by payment)
if (!$error && $label != '(WithdrawalPayment)') {
$linkaddedforthirdparty = array();
foreach ($this->amounts as $key => $value) {
if ($mode == 'payment') {
$fac = new Facture($this->db);
$fac->fetch($key);
$fac->fetch_thirdparty();
if (!in_array($fac->thirdparty->id, $linkaddedforthirdparty)) {
$result = $acc->add_url_line($bank_line_id, $fac->thirdparty->id, DOL_URL_ROOT . '/comm/card.php?socid=', $fac->thirdparty->name, 'company');
if ($result <= 0) {
dol_syslog(get_class($this) . '::addPaymentToBank ' . $this->db->lasterror());
}
$linkaddedforthirdparty[$fac->thirdparty->id] = $fac->thirdparty->id;
// Mark as done for this thirdparty
}
}
if ($mode == 'payment_supplier') {
$fac = new FactureFournisseur($this->db);
$fac->fetch($key);
$fac->fetch_thirdparty();
if (!in_array($fac->thirdparty->id, $linkaddedforthirdparty)) {
$result = $acc->add_url_line($bank_line_id, $fac->thirdparty->id, DOL_URL_ROOT . '/fourn/card.php?socid=', $fac->thirdparty->name, 'company');
if ($result <= 0) {
dol_syslog(get_class($this) . '::addPaymentToBank ' . $this->db->lasterror());
}
$linkaddedforthirdparty[$fac->thirdparty->id] = $fac->thirdparty->id;
// Mark as done for this thirdparty
}
}
}
}
if (!$error && !$notrigger) {
// Appel des triggers
$result = $this->call_trigger('PAYMENT_ADD_TO_BANK', $user);
//.........这里部分代码省略.........
示例2: setEventMessage
$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) {
setEventMessage($langs->trans("TransferFromToDone", $accountfrom->label, $accountto->label, $amount, $langs->trans(currency_name($conf->currency))));
$db->commit();
} else {
setEventMessage($accountfrom->error . ' ' . $accountto->error, "errors");
$db->rollback();
}
} else {
setEventMessage($langs->trans("ErrorFromToAccountsMustDiffers"), "errors");
}
}
示例3: setEventMessages
$crowid = $object->cotisation($datecotisation, $cotisation, $accountid, $operation, $label, $num_chq, $emetteur_nom, $emetteur_banque, $datesubend);
if ($crowid <= 0) {
$error++;
$errmsg = $object->error;
setEventMessages($object->error, $object->errors, 'errors');
}
if (!$error) {
// Insert into bank account directlty (if option choosed for) + link to llx_cotisation if option is 'bankdirect'
if ($option == 'bankdirect' && $accountid) {
require_once DOL_DOCUMENT_ROOT . '/compta/bank/class/account.class.php';
$acct = new Account($db);
$result = $acct->fetch($accountid);
$dateop = $paymentdate;
$insertid = $acct->addline($dateop, $operation, $label, $cotisation, $num_chq, '', $user, $emetteur_nom, $emetteur_banque);
if ($insertid > 0) {
$inserturlid = $acct->add_url_line($insertid, $object->id, DOL_URL_ROOT . '/adherents/card.php?rowid=', $object->getFullname($langs), 'member');
if ($inserturlid > 0) {
// Met a jour la table cotisation
$sql = "UPDATE " . MAIN_DB_PREFIX . "cotisation SET fk_bank=" . $insertid;
$sql .= " WHERE rowid=" . $crowid;
dol_syslog("card_subscriptions::cotisation", LOG_DEBUG);
$resql = $db->query($sql);
if (!$resql) {
$error++;
$errmsg = $db->lasterror();
}
} else {
$error++;
$errmsg = $acct->error;
$errmsgs = $acct->errors;
}
示例4: addPaymentToBank
/**
* Add record into bank for payment with links between this bank record and invoices of payment.
* All payment properties must have been set first like after a call to create().
*
* @param User $user Object of user making payment
* @param string $mode 'payment_loan'
* @param string $label Label to use in bank record
* @param int $accountid Id of bank account to do link with
* @param string $emetteur_nom Name of transmitter
* @param string $emetteur_banque Name of bank
* @return int <0 if KO, >0 if OK
*/
function addPaymentToBank($user, $mode, $label, $accountid, $emetteur_nom, $emetteur_banque)
{
global $conf;
$error = 0;
if (!empty($conf->banque->enabled)) {
require_once DOL_DOCUMENT_ROOT . '/compta/bank/class/account.class.php';
$acc = new Account($this->db);
$acc->fetch($accountid);
$total = $this->total;
if ($mode == 'payment_loan') {
$total = -$total;
}
// Insert payment into llx_bank
$bank_line_id = $acc->addline($this->datepaid, $this->paymenttype, $label, $total, $this->num_payment, '', $user, $emetteur_nom, $emetteur_banque);
// Update fk_bank into llx_paiement.
// We know the payment who generated the account write
if ($bank_line_id > 0) {
$result = $this->update_fk_bank($bank_line_id);
if ($result <= 0) {
$error++;
dol_print_error($this->db);
}
// Add link 'payment_loan' in bank_url between payment and bank transaction
$url = '';
if ($mode == 'payment_loan') {
$url = DOL_URL_ROOT . '/loan/payment/card.php?id=';
}
if ($url) {
$result = $acc->add_url_line($bank_line_id, $this->id, $url, '(payment)', $mode);
if ($result <= 0) {
$error++;
dol_print_error($this->db);
}
}
// Add link 'company' in bank_url between invoice and bank transaction (for each invoice concerned by payment)
//$linkaddedforthirdparty=array();
if ($mode == 'payment_loan') {
$result = $acc->add_url_line($bank_line_id, $this->id, DOL_URL_ROOT . '/loan/card.php?id=', $this->label ? $this->label : '', 'loan');
if ($result <= 0) {
dol_print_error($this->db);
}
}
} else {
$this->error = $acc->error;
$error++;
}
}
if (!$error) {
return 1;
} else {
return -1;
}
}
示例5: addPayment
/**
* Add a payment of localtax
*
* @param User $user Object user that insert
* @return int <0 if KO, rowid in localtax table if OK
*/
function addPayment($user)
{
global $conf, $langs;
$this->db->begin();
// Check parameters
$this->amount = price2num($this->amount);
if (!$this->label) {
$this->error = $langs->trans("ErrorFieldRequired", $langs->transnoentities("Label"));
return -3;
}
if ($this->amount <= 0) {
$this->error = $langs->trans("ErrorFieldRequired", $langs->transnoentities("Amount"));
return -4;
}
if (!empty($conf->banque->enabled) && (empty($this->accountid) || $this->accountid <= 0)) {
$this->error = $langs->trans("ErrorFieldRequired", $langs->transnoentities("Account"));
return -5;
}
if (!empty($conf->banque->enabled) && (empty($this->paymenttype) || $this->paymenttype <= 0)) {
$this->error = $langs->trans("ErrorFieldRequired", $langs->transnoentities("PaymentMode"));
return -5;
}
// Insertion dans table des paiement localtax
$sql = "INSERT INTO " . MAIN_DB_PREFIX . "localtax (localtaxtype, datep, datev, amount";
if ($this->note) {
$sql .= ", note";
}
if ($this->label) {
$sql .= ", label";
}
$sql .= ", fk_user_creat, fk_bank";
$sql .= ") ";
$sql .= " VALUES (" . $this->ltt . ", '" . $this->db->idate($this->datep) . "',";
$sql .= "'" . $this->db->idate($this->datev) . "'," . $this->amount;
if ($this->note) {
$sql .= ", '" . $this->db->escape($this->note) . "'";
}
if ($this->label) {
$sql .= ", '" . $this->db->escape($this->label) . "'";
}
$sql .= ", '" . $user->id . "', NULL";
$sql .= ")";
dol_syslog(get_class($this) . "::addPayment", LOG_DEBUG);
$result = $this->db->query($sql);
if ($result) {
$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX . "localtax");
// TODO devrait s'appeler paiementlocaltax
if ($this->id > 0) {
$ok = 1;
if (!empty($conf->banque->enabled)) {
// Insertion dans llx_bank
require_once DOL_DOCUMENT_ROOT . '/compta/bank/class/account.class.php';
$acc = new Account($this->db);
$result = $acc->fetch($this->accountid);
if ($result <= 0) {
dol_print_error($this->db);
}
$bank_line_id = $acc->addline($this->datep, $this->paymenttype, $this->label, -abs($this->amount), '', '', $user);
// Mise a jour fk_bank dans llx_localtax. On connait ainsi la ligne de localtax qui a g�n�r� l'�criture bancaire
if ($bank_line_id > 0) {
$this->update_fk_bank($bank_line_id);
} else {
$this->error = $acc->error;
$ok = 0;
}
// Mise a jour liens
$result = $acc->add_url_line($bank_line_id, $this->id, DOL_URL_ROOT . '/compta/localtax/card.php?id=', "(VATPayment)", "payment_vat");
if ($result < 0) {
$this->error = $acc->error;
$ok = 0;
}
}
if ($ok) {
$this->db->commit();
return $this->id;
} else {
$this->db->rollback();
return -3;
}
} else {
$this->error = $this->db->lasterror();
$this->db->rollback();
return -2;
}
} else {
$this->error = $this->db->lasterror();
$this->db->rollback();
return -1;
}
}
示例6: addPaymentToBank
/**
* Add record into bank for payment with links between this bank record and invoices of payment.
* All payment properties must have been set first like after a call to create().
*
* @param User $user Object of user making payment
* @param string $mode 'payment_donation'
* @param string $label Label to use in bank record
* @param int $accountid Id of bank account to do link with
* @param string $emetteur_nom Name of transmitter
* @param string $emetteur_banque Name of bank
* @return int <0 if KO, >0 if OK
*/
function addPaymentToBank($user, $mode, $label, $accountid, $emetteur_nom, $emetteur_banque)
{
global $conf;
$error = 0;
if (!empty($conf->banque->enabled)) {
require_once DOL_DOCUMENT_ROOT . '/compta/bank/class/account.class.php';
$acc = new Account($this->db);
$acc->fetch($accountid);
$total = $this->total;
if ($mode == 'payment_donation') {
$amount = $total;
}
// Insert payment into llx_bank
$bank_line_id = $acc->addline($this->datepaid, $this->paymenttype, $label, $amount, $this->num_payment, '', $user, $emetteur_nom, $emetteur_banque);
// Update fk_bank in llx_paiement.
// On connait ainsi le paiement qui a genere l'ecriture bancaire
if ($bank_line_id > 0) {
$result = $this->update_fk_bank($bank_line_id);
if ($result <= 0) {
$error++;
dol_print_error($this->db);
}
// Add link 'payment', 'payment_supplier', 'payment_donation' in bank_url between payment and bank transaction
$url = '';
if ($mode == 'payment_donation') {
$url = DOL_URL_ROOT . '/don/payment/card.php?rowid=';
}
if ($url) {
$result = $acc->add_url_line($bank_line_id, $this->id, $url, '(paiement)', $mode);
if ($result <= 0) {
$error++;
dol_print_error($this->db);
}
}
} else {
$this->error = $acc->error;
$error++;
}
}
if (!$error) {
return 1;
} else {
return -1;
}
}
示例7: addPaymentToBank
/**
* Add record into bank for payment with links between this bank record and invoices of payment.
* All payment properties must have been set first like after a call to create().
* @param user Object of user making payment
* @param mode 'payment_sc'
* @param label Label to use in bank record
* @param accountid Id of bank account to do link with
* @param emetteur_nom Name of transmitter
* @param emetteur_banque Name of bank
* @return int <0 if KO, >0 if OK
*/
function addPaymentToBank($user,$mode,$label,$accountid,$emetteur_nom,$emetteur_banque)
{
global $conf;
$error=0;
if ($conf->banque->enabled)
{
require_once(DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php');
$acc = new Account($this->db);
$acc->fetch($accountid);
$total=$this->total;
if ($mode == 'payment_sc') $total=-$total;
// Insert payment into llx_bank
$bank_line_id = $acc->addline($this->datepaye,
$this->paiementtype, // Payment mode id or code ("CHQ or VIR for example")
$label,
$total,
$this->num_paiement,
'',
$user,
$emetteur_nom,
$emetteur_banque);
// Mise a jour fk_bank dans llx_paiement.
// On connait ainsi le paiement qui a genere l'ecriture bancaire
if ($bank_line_id > 0)
{
$result=$this->update_fk_bank($bank_line_id);
if ($result <= 0)
{
$error++;
dol_print_error($this->db);
}
// Add link 'payment', 'payment_supplier', 'payment_sc' in bank_url between payment and bank transaction
$url='';
if ($mode == 'payment_sc') $url=DOL_URL_ROOT.'/compta/payment_sc/fiche.php?id=';
if ($url)
{
$result=$acc->add_url_line($bank_line_id, $this->id, $url, '(paiement)', $mode);
if ($result <= 0)
{
$error++;
dol_print_error($this->db);
}
}
// Add link 'company' in bank_url between invoice and bank transaction (for each invoice concerned by payment)
$linkaddedforthirdparty=array();
foreach ($this->amounts as $key => $value)
{
if ($mode == 'payment_sc')
{
$socialcontrib = new ChargeSociales($this->db);
$socialcontrib->fetch($key);
$result=$acc->add_url_line($bank_line_id, $socialcontrib->id,
DOL_URL_ROOT.'/compta/charges.php?id=', $socialcontrib->type_libelle.(($socialcontrib->lib && $socialcontrib->lib!=$socialcontrib->type_libelle)?' ('.$socialcontrib->lib.')':''),'sc');
if ($result <= 0) dol_print_error($this->db);
}
}
}
else
{
$this->error=$acc->error;
$error++;
}
}
if (! $error)
{
return 1;
}
else
{
return -1;
}
}
示例8: create
//.........这里部分代码省略.........
}
$this->db->begin();
// Insert into llx_payment_salary
$sql = "INSERT INTO " . MAIN_DB_PREFIX . "payment_salary (fk_user";
$sql .= ", datep";
$sql .= ", datev";
$sql .= ", amount";
$sql .= ", fk_typepayment";
$sql .= ", num_payment";
if ($this->note) {
$sql .= ", note";
}
$sql .= ", label";
$sql .= ", datesp";
$sql .= ", dateep";
$sql .= ", fk_user_creat";
$sql .= ", fk_bank";
$sql .= ", entity";
$sql .= ") ";
$sql .= " VALUES (";
$sql .= "'" . $this->fk_user . "'";
$sql .= ", '" . $this->db->idate($this->datep) . "'";
$sql .= ", '" . $this->db->idate($this->datev) . "'";
$sql .= ", '" . $this->amount . "'";
$sql .= ", '" . $this->type_payment . "'";
$sql .= ", '" . $this->num_payment . "'";
if ($this->note) {
$sql .= ", '" . $this->db->escape($this->note) . "'";
}
$sql .= ", '" . $this->db->escape($this->label) . "'";
$sql .= ", '" . $this->db->idate($this->datesp) . "'";
$sql .= ", '" . $this->db->idate($this->dateep) . "'";
$sql .= ", '" . $user->id . "'";
$sql .= ", NULL";
$sql .= ", " . $conf->entity;
$sql .= ")";
dol_syslog(get_class($this) . "::create", LOG_DEBUG);
$result = $this->db->query($sql);
if ($result) {
$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX . "payment_salary");
if ($this->id > 0) {
if (!empty($conf->banque->enabled) && !empty($this->amount)) {
// Insert into llx_bank
require_once DOL_DOCUMENT_ROOT . '/compta/bank/class/account.class.php';
$acc = new Account($this->db);
$result = $acc->fetch($this->accountid);
if ($result <= 0) {
dol_print_error($this->db);
}
// Insert payment into llx_bank
// Add link 'payment_salary' in bank_url between payment and bank transaction
$bank_line_id = $acc->addline($this->datep, $this->type_payment, $this->label, -abs($this->amount), $this->num_payment, '', $user);
// Update fk_bank into llx_paiement.
// So we know the payment which has generate the banking ecriture
if ($bank_line_id > 0) {
$this->update_fk_bank($bank_line_id);
} else {
$this->error = $acc->error;
$error++;
}
if (!$error) {
// Add link 'payment_salary' in bank_url between payment and bank transaction
$url = DOL_URL_ROOT . '/compta/salaries/card.php?id=';
$result = $acc->add_url_line($bank_line_id, $this->id, $url, "(SalaryPayment)", "payment_salary");
if ($result <= 0) {
$this->error = $acc->error;
$error++;
}
}
$fuser = new User($this->db);
$fuser->fetch($this->fk_user);
// Add link 'user' in bank_url between operation and bank transaction
$result = $acc->add_url_line($bank_line_id, $this->fk_user, DOL_URL_ROOT . '/user/card.php?id=', $langs->trans("SalaryPayment") . ' ' . $fuser->getFullName($langs) . ' ' . dol_print_date($this->datesp, 'dayrfc') . ' ' . dol_print_date($this->dateep, 'dayrfc'), 'user');
if ($result <= 0) {
$this->error = $acc->error;
$error++;
}
}
// Call trigger
$result = $this->call_trigger('PAYMENT_SALARY_CREATE', $user);
if ($result < 0) {
$error++;
}
// End call triggers
} else {
$error++;
}
if (!$error) {
$this->db->commit();
return $this->id;
} else {
$this->db->rollback();
return -2;
}
} else {
$this->error = $this->db->error();
$this->db->rollback();
return -1;
}
}
示例9: addPaymentToBank
/**
* Add record into bank for payment with links between this bank record and invoices of payment.
* All payment properties must have been set first like after a call to create().
*
* @param User $user Object of user making payment
* @param string $mode 'payment_expensereport'
* @param string $label Label to use in bank record
* @param int $accountid Id of bank account to do link with
* @param string $emetteur_nom Name of transmitter
* @param string $emetteur_banque Name of bank
* @return int <0 if KO, >0 if OK
*/
function addPaymentToBank($user, $mode, $label, $accountid, $emetteur_nom, $emetteur_banque)
{
global $langs, $conf;
$error = 0;
if (!empty($conf->banque->enabled)) {
require_once DOL_DOCUMENT_ROOT . '/compta/bank/class/account.class.php';
$acc = new Account($this->db);
$acc->fetch($accountid);
$total = $this->total;
if ($mode == 'payment_expensereport') {
$amount = $total;
}
// Insert payment into llx_bank
$bank_line_id = $acc->addline($this->datepaid, $this->fk_typepayment, $label, -$amount, $this->num_payment, '', $user, $emetteur_nom, $emetteur_banque);
// Update fk_bank in llx_paiement.
// On connait ainsi le paiement qui a genere l'ecriture bancaire
if ($bank_line_id > 0) {
$result = $this->update_fk_bank($bank_line_id);
if ($result <= 0) {
$error++;
dol_print_error($this->db);
}
// Add link 'payment', 'payment_supplier', 'payment_expensereport' in bank_url between payment and bank transaction
$url = '';
if ($mode == 'payment_expensereport') {
$url = DOL_URL_ROOT . '/expensereport/payment/card.php?rowid=';
}
if ($url) {
$result = $acc->add_url_line($bank_line_id, $this->id, $url, '(paiement)', $mode);
if ($result <= 0) {
$error++;
dol_print_error($this->db);
}
}
// Add link 'user' in bank_url between user and bank transaction
if (!$error) {
foreach ($this->amounts as $key => $value) {
if ($mode == 'payment_expensereport') {
$euser = new User($this->db);
$euser->fetch($key);
$result = $acc->add_url_line($bank_line_id, $euser->id, DOL_URL_ROOT . '/user/card.php?id=', $euser->getFullName($langs), 'user');
if ($result <= 0) {
$this->error = $this->db->lasterror();
dol_syslog(get_class($this) . '::addPaymentToBank ' . $this->error);
$error++;
}
}
}
}
} else {
$this->error = $acc->error;
$error++;
}
}
if (!$error) {
return 1;
} else {
return -1;
}
}
示例10: addPayment
/**
* Create in database
*
* @param User $user Object user that insert
* @return int <0 if KO, rowid in tva table if OK
*/
function addPayment($user)
{
global $conf, $langs;
$this->db->begin();
// Clean parameters
$this->amount = price2num(trim($this->amount));
$this->label = trim($this->label);
$this->note = trim($this->note);
$this->fk_bank = trim($this->fk_bank);
$this->fk_user_creat = trim($this->fk_user_creat);
$this->fk_user_modif = trim($this->fk_user_modif);
// Check parameters
if (!$this->label) {
$this->error = $langs->trans("ErrorFieldRequired", $langs->transnoentities("Label"));
return -3;
}
if ($this->amount < 0 || $this->amount == '') {
$this->error = $langs->trans("ErrorFieldRequired", $langs->transnoentities("Amount"));
return -4;
}
if (!empty($conf->banque->enabled) && (empty($this->accountid) || $this->accountid <= 0)) {
$this->error = $langs->trans("ErrorFieldRequired", $langs->transnoentities("Account"));
return -5;
}
if (!empty($conf->banque->enabled) && (empty($this->type_payment) || $this->type_payment <= 0)) {
$this->error = $langs->trans("ErrorFieldRequired", $langs->transnoentities("PaymentMode"));
return -5;
}
// Insert into llx_tva
$sql = "INSERT INTO " . MAIN_DB_PREFIX . "tva (datep";
$sql .= ", datev";
$sql .= ", amount";
$sql .= ", fk_typepayment";
$sql .= ", num_payment";
if ($this->note) {
$sql .= ", note";
}
if ($this->label) {
$sql .= ", label";
}
$sql .= ", fk_user_creat";
$sql .= ", fk_bank";
$sql .= ", entity";
$sql .= ") ";
$sql .= " VALUES (";
$sql .= "'" . $this->db->idate($this->datep) . "'";
$sql .= ", '" . $this->db->idate($this->datev) . "'";
$sql .= ", " . $this->amount;
$sql .= ", '" . $this->type_payment . "'";
$sql .= ", '" . $this->num_payment . "'";
if ($this->note) {
$sql .= ", '" . $this->db->escape($this->note) . "'";
}
if ($this->label) {
$sql .= ", '" . $this->db->escape($this->label) . "'";
}
$sql .= ", '" . $user->id . "'";
$sql .= ", NULL";
$sql .= ", " . $conf->entity;
$sql .= ")";
dol_syslog(get_class($this) . "::addPayment sql=" . $sql);
$result = $this->db->query($sql);
if ($result) {
$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX . "tva");
// TODO should be called paiementtva
// Start triggers
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
$interface = new Interfaces($this->db);
$result = $interface->run_triggers('TVA_ADDPAYMENT', $this, $user, $langs, $conf);
if ($result < 0) {
$error++;
$this->errors = $interface->errors;
}
// End triggers
if ($this->id > 0) {
$ok = 1;
if (!empty($conf->banque->enabled) && !empty($this->amount)) {
// Insert into llx_bank
require_once DOL_DOCUMENT_ROOT . '/compta/bank/class/account.class.php';
$acc = new Account($this->db);
$result = $acc->fetch($this->accountid);
if ($result <= 0) {
dol_print_error($this->db);
}
$bank_line_id = $acc->addline($this->datep, $this->type_payment, $this->label, -abs($this->amount), '', '', $user);
// Update fk_bank into llx_tva. So we know vat line used to generate bank transaction
if ($bank_line_id > 0) {
$this->update_fk_bank($bank_line_id);
} else {
$this->error = $acc->error;
$ok = 0;
}
// Update links
$result = $acc->add_url_line($bank_line_id, $this->id, DOL_URL_ROOT . '/compta/tva/fiche.php?id=', "(VATPayment)", "payment_vat");
//.........这里部分代码省略.........
示例11: addPaymentToBank
/**
* A record into bank for payment with links between this bank record and invoices of payment.
* All payment properties must have been set first like after a call to create().
* @param user Object of user making payment
* @param mode 'payment', 'payment_supplier'
* @param label Label to use in bank record
* @param accountid Id of bank account to do link with
* @param emetteur_nom Name of transmitter
* @param emetteur_banque Name of bank
* @return int <0 if KO, bank_line_id if OK
*/
function addPaymentToBank($user, $mode, $label, $accountid, $socid, $emetteur_nom, $emetteur_banque, $notrigger = 0)
{
global $conf, $langs, $user;
$error = 0;
$bank_line_id = 0;
$this->fk_account = $accountid;
if ($conf->banque->enabled) {
require_once DOL_DOCUMENT_ROOT . '/compta/bank/class/account.class.php';
dol_syslog("{$user->id},{$mode},{$label},{$this->fk_account},{$emetteur_nom},{$emetteur_banque}");
$acc = new Account($this->db);
$acc->fetch($this->fk_account);
$totalamount = $this->amount;
if (empty($totalamount)) {
$totalamount = $this->total;
}
// For backward compatibility
if ($mode == 'payment') {
$totalamount = $totalamount;
}
if ($mode == 'payment_supplier') {
$totalamount = -$totalamount;
}
// Insert payment into llx_bank
$bank_line_id = $acc->addline($this->datepaye, $this->paiementid, $label, $totalamount, $this->num_paiement, '', $user, $emetteur_nom, $emetteur_banque);
// Mise a jour fk_bank dans llx_paiement
// On connait ainsi le paiement qui a genere l'ecriture bancaire
if ($bank_line_id > 0) {
$result = $this->update_fk_bank($bank_line_id);
if ($result <= 0) {
$error++;
dol_print_error($this->db);
}
// Add link 'payment', 'payment_supplier' in bank_url between payment and bank transaction
if (!$error) {
$url = '';
if ($mode == 'payment') {
$url = DOL_URL_ROOT . '/compta/paiement/fiche.php?id=';
}
if ($mode == 'payment_supplier') {
$url = DOL_URL_ROOT . '/fourn/paiement/fiche.php?id=';
}
if ($url) {
$result = $acc->add_url_line($bank_line_id, $this->id, $url, '(paiement)', $mode);
if ($result <= 0) {
$error++;
dol_print_error($this->db);
}
}
}
// Add link 'company' in bank_url between invoice and bank transaction (for each invoice concerned by payment)
if (!$error) {
$linkaddedforthirdparty = array();
foreach ($this->amounts as $key => $value) {
if ($mode == 'payment') {
$fac = new Ticket($this->db);
$fac->fetch($key);
$fac->fetch_thirdparty();
if (!in_array($socid, $linkaddedforthirdparty)) {
$thirdparty = new Societe($this->db);
$thirdparty->fetch($socid);
$result = $acc->add_url_line($bank_line_id, $socid, DOL_URL_ROOT . '/comm/fiche.php?socid=', $thirdparty->nom, 'company');
if ($result <= 0) {
dol_print_error($this->db);
}
$linkaddedforthirdparty[$fac->thirdparty->id] = $socid;
// Mark as done for this thirdparty
}
}
}
}
if (!$error && !$notrigger) {
// Appel des triggers
include_once DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php";
$interface = new Interfaces($this->db);
$result = $interface->run_triggers('PAYMENT_ADD_TO_BANK', $this, $user, $langs, $conf);
if ($result < 0) {
$error++;
$this->errors = $interface->errors;
}
// Fin appel triggers
}
} else {
$this->error = $acc->error;
$error++;
}
}
if (!$error) {
return $bank_line_id;
} else {
//.........这里部分代码省略.........