Merge branch '12.0' of git@github.com:Dolibarr/dolibarr.git into develop
Conflicts: htdocs/stripe/class/stripe.class.php htdocs/takepos/invoice.php
This commit is contained in:
commit
ce1c5c6873
@ -122,6 +122,7 @@ window.onload = function()
|
||||
</head>
|
||||
<body>
|
||||
<form id="frmUpload" action="" target="frmUploadWorker" method="post" enctype="multipart/form-data" onsubmit="return OnSubmit();">
|
||||
<input type="hidden" name="token" value="<?php echo newToken(); ?>" />
|
||||
<table class="fullHeight" cellspacing="0" cellpadding="0" width="100%" border="0">
|
||||
<tr>
|
||||
<td class="nowrap">
|
||||
|
||||
@ -79,6 +79,14 @@ $confirm = GETPOST('confirm', 'alpha');
|
||||
$socid = GETPOST('socid', 'int');
|
||||
$duration_value = GETPOST('duration_value', 'int');
|
||||
$duration_unit = GETPOST('duration_unit', 'alpha');
|
||||
|
||||
$accountancy_code_sell = GETPOST('accountancy_code_sell', 'alpha');
|
||||
$accountancy_code_sell_intra = GETPOST('accountancy_code_sell_intra', 'alpha');
|
||||
$accountancy_code_sell_export = GETPOST('accountancy_code_sell_export', 'alpha');
|
||||
$accountancy_code_buy = GETPOST('accountancy_code_buy', 'alpha');
|
||||
$accountancy_code_buy_intra = GETPOST('accountancy_code_buy_intra', 'alpha');
|
||||
$accountancy_code_buy_export = GETPOST('accountancy_code_buy_export', 'alpha');
|
||||
|
||||
if (!empty($user->socid)) $socid = $user->socid;
|
||||
|
||||
$object = new Product($db);
|
||||
@ -1316,6 +1324,13 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action))
|
||||
print '</td></tr>';
|
||||
} else // For external software
|
||||
{
|
||||
if (!empty($accountancy_code_sell)) { $object->accountancy_code_sell = $accountancy_code_sell; }
|
||||
if (!empty($accountancy_code_sell_intra)) { $object->accountancy_code_sell_intra = $accountancy_code_sell_intra; }
|
||||
if (!empty($accountancy_code_sell_export)) { $object->accountancy_code_sell_export = $accountancy_code_sell_export; }
|
||||
if (!empty($accountancy_code_buy)) { $object->accountancy_code_buy = $accountancy_code_buy; }
|
||||
if (!empty($accountancy_code_buy_intra)) { $object->accountancy_code_buy_intra = $accountancy_code_buy_intra; }
|
||||
if (!empty($accountancy_code_buy_export)) { $object->accountancy_code_buy_export = $accountancy_code_buy_export; }
|
||||
|
||||
// Accountancy_code_sell
|
||||
print '<tr><td class="titlefieldcreate">'.$langs->trans("ProductAccountancySellCode").'</td>';
|
||||
print '<td class="maxwidthonsmartphone"><input class="minwidth100" name="accountancy_code_sell" value="'.$object->accountancy_code_sell.'">';
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/* Copyright (C) 2018 Thibault FOUCART <support@ptibogxiv.net>
|
||||
* Copyright (C) 2018 Frédéric France <frederic.france@netlogic.fr>
|
||||
/* Copyright (C) 2018-2020 Thibault FOUCART <support@ptibogxiv.net>
|
||||
* Copyright (C) 2018 Frédéric France <frederic.france@netlogic.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
|
||||
@ -109,7 +109,7 @@ if (!empty($conf->multicompany->enabled) && !empty($conf->stripeconnect->enabled
|
||||
{
|
||||
$sql = "SELECT entity";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."oauth_token";
|
||||
$sql .= " WHERE service = '".$db->escape($service)."' and tokenstring = '%".$db->escape($event->account)."%'";
|
||||
$sql .= " WHERE service = '".$db->escape($service)."' and tokenstring LIKE '%".$db->escape($event->account)."%'";
|
||||
|
||||
dol_syslog(get_class($db)."::fetch", LOG_DEBUG);
|
||||
$result = $db->query($sql);
|
||||
@ -126,8 +126,6 @@ if (!empty($conf->multicompany->enabled) && !empty($conf->stripeconnect->enabled
|
||||
$key = 1;
|
||||
}
|
||||
$ret = $mc->switchEntity($key);
|
||||
if (!$res && file_exists("../../main.inc.php")) $res = @include "../../main.inc.php";
|
||||
if (!$res) die("Include of main fails");
|
||||
}
|
||||
|
||||
// list of action
|
||||
|
||||
@ -1270,7 +1270,7 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard'
|
||||
}
|
||||
|
||||
// List of Stripe payment modes
|
||||
if (!empty($conf->stripe->enabled) && !empty($conf->stripeconnect->enabled) && $object->fournisseur && !empty($stripesupplieracc))
|
||||
if (!empty($conf->stripe->enabled) && !empty($conf->stripeconnect->enabled) && !empty($stripesupplieracc))
|
||||
{
|
||||
print load_fiche_titre($langs->trans('StripeBalance').($stripesupplieracc ? ' (Stripe connection with StripeConnect account '.$stripesupplieracc.')' : ' (Stripe connection with keys from Stripe module setup)'), $morehtmlright, 'stripe-s');
|
||||
$balance = \Stripe\Balance::retrieve(array("stripe_account" => $stripesupplieracc));
|
||||
|
||||
@ -83,16 +83,19 @@ class Stripe extends CommonObject
|
||||
*
|
||||
* @param string $mode 'StripeTest' or 'StripeLive'
|
||||
* @param int $fk_soc Id of thirdparty
|
||||
* @param int $entity Id of entity (-1 = current environment)
|
||||
* @return string Stripe account 'acc_....' or '' if no OAuth token found
|
||||
*/
|
||||
public function getStripeAccount($mode = 'StripeTest', $fk_soc = 0)
|
||||
public function getStripeAccount($mode = 'StripeTest', $fk_soc = 0, $entity = -1)
|
||||
{
|
||||
global $conf;
|
||||
|
||||
if ($entity < 0) $entity = $conf->entity;
|
||||
|
||||
$sql = "SELECT tokenstring";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."oauth_token";
|
||||
$sql .= " WHERE entity = ".$conf->entity;
|
||||
$sql .= " AND service = '".$this->db->escape($mode)."'";
|
||||
$sql .= " WHERE service = '".$this->db->escape($mode)."'";
|
||||
$sql .= " AND entity = ".((int) $entity);
|
||||
if ($fk_soc > 0) {
|
||||
$sql .= " AND fk_soc = ".$fk_soc;
|
||||
} else {
|
||||
|
||||
@ -233,29 +233,30 @@ if ($action == 'valid' && $user->rights->facture->creer)
|
||||
// $conf->global->FACTURE_ADDON = $sav_FACTURE_ADDON;
|
||||
//}
|
||||
|
||||
$remaintopay = $invoice->getRemainToPay();
|
||||
|
||||
// Add the payment
|
||||
if (!$error && $res >= 0 && $remaintopay > 0) {
|
||||
$payment = new Paiement($db);
|
||||
$payment->datepaye = $now;
|
||||
$payment->fk_account = $bankaccount;
|
||||
$payment->amounts[$invoice->id] = $amountofpayment;
|
||||
if ($pay == 'cash') $payment->pos_change = price2num(GETPOST('excess', 'alpha'));
|
||||
if (!$error && $res >= 0) {
|
||||
$remaintopay = $invoice->getRemainToPay();
|
||||
if ($remaintopay > 0) {
|
||||
$payment = new Paiement($db);
|
||||
$payment->datepaye = $now;
|
||||
$payment->fk_account = $bankaccount;
|
||||
$payment->amounts[$invoice->id] = $amountofpayment;
|
||||
if ($pay == 'cash') $payment->pos_change = price2num(GETPOST('excess', 'alpha'));
|
||||
|
||||
// If user has not used change control, add total invoice payment
|
||||
// Or if user has used change control and the amount of payment is higher than remain to pay, add the remain to pay
|
||||
if ($amountofpayment == 0 || $amountofpayment > $remaintopay) $payment->amounts[$invoice->id] = $remaintopay;
|
||||
// If user has not used change control, add total invoice payment
|
||||
// Or if user has used change control and the amount of payment is higher than remain to pay, add the remain to pay
|
||||
if ($amountofpayment == 0 || $amountofpayment > $remaintopay) $payment->amounts[$invoice->id] = $remaintopay;
|
||||
|
||||
$payment->paiementid = $paiementid;
|
||||
$payment->num_payment = $invoice->ref;
|
||||
$payment->paiementid = $paiementid;
|
||||
$payment->num_payment = $invoice->ref;
|
||||
|
||||
if ($pay != "delayed") {
|
||||
$payment->create($user);
|
||||
$payment->addPaymentToBank($user, 'payment', '(CustomerInvoicePayment)', $bankaccount, '', '');
|
||||
if ($pay != "delayed") {
|
||||
$payment->create($user);
|
||||
$payment->addPaymentToBank($user, 'payment', '(CustomerInvoicePayment)', $bankaccount, '', '');
|
||||
$remaintopay = $invoice->getRemainToPay(); // Recalculate remain to pay after the payment is recorded
|
||||
}
|
||||
}
|
||||
|
||||
$remaintopay = $invoice->getRemainToPay(); // Recalculate remain to pay after the payment is recorded
|
||||
if ($remaintopay == 0) {
|
||||
dol_syslog("Invoice is paid, so we set it to status Paid");
|
||||
$result = $invoice->set_paid($user);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user