Merge remote-tracking branch 'upstream/develop' into new_branch_20_04_2018

This commit is contained in:
Philippe GRAND 2018-04-21 11:46:03 +02:00
commit 4e9c77a738
7 changed files with 133 additions and 120 deletions

View File

@ -1984,6 +1984,7 @@ class Facture extends CommonInvoice
$this->db->begin();
dol_syslog(get_class($this)."::set_paid rowid=".$this->id, LOG_DEBUG);
$sql = 'UPDATE '.MAIN_DB_PREFIX.'facture SET';
$sql.= ' fk_statut='.self::STATUS_CLOSED;
if (! $close_code) $sql.= ', paye=1';
@ -1991,7 +1992,6 @@ class Facture extends CommonInvoice
if ($close_note) $sql.= ", close_note='".$this->db->escape($close_note)."'";
$sql.= ' WHERE rowid = '.$this->id;
dol_syslog(get_class($this)."::set_paid", LOG_DEBUG);
$resql = $this->db->query($sql);
if ($resql)
{

View File

@ -77,6 +77,10 @@ class mod_codecompta_aquarium extends ModeleAccountancyCode
$texte.= '<tr><td>';
$texte.=$langs->trans("ModuleCompanyCodeCustomer".$this->name,$s2)."<br>\n";
$texte.=$langs->trans("ModuleCompanyCodeSupplier".$this->name,$s1)."<br>\n";
$texte.="<br>\n";
if (! isset($conf->global->COMPANY_AQUARIUM_REMOVE_SPECIAL) || ! empty($conf->global->$conf->global->COMPANY_AQUARIUM_REMOVE_SPECIAL)) $texte.=$langs->trans('COMPANY_AQUARIUM_REMOVE_SPECIAL').' = '.yn(1)."<br>\n";
//if (! empty($conf->global->COMPANY_AQUARIUM_REMOVE_ALPHA)) $texte.=$langs->trans('COMPANY_AQUARIUM_REMOVE_ALPHA').' = '.yn($conf->global->COMPANY_AQUARIUM_REMOVE_ALPHA)."<br>\n";
if (! empty($conf->global->COMPANY_AQUARIUM_CLEAN_REGEX)) $texte.=$langs->trans('COMPANY_AQUARIUM_CLEAN_REGEX').' = '.$conf->global->COMPANY_AQUARIUM_CLEAN_REGEX."<br>\n";
$texte.= '</td>';
$texte.= '<td align="left">&nbsp; <input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button"></td>';
$texte.= '</tr></table>';

View File

@ -1785,6 +1785,8 @@ SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a com
EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
SeveralLangugeVariatFound=Several language variants found
WebDavServer=URL of %s server : %s
COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
##### Resource ####
ResourceSetup=Configuration du module Resource
UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).

View File

@ -217,7 +217,7 @@ class Stripe extends CommonObject
//$sql.= " AND sa.entity IN (".getEntity('societe').")";
$sql.= " AND sa.type = 'card'";
dol_syslog(get_class($this) . "::fetch search stripe card id for paymentmode id=".$object->id, LOG_DEBUG);
dol_syslog(get_class($this) . "::fetch search stripe card id for paymentmode id=".$object->id.", stripeacc=".$stripeacc, LOG_DEBUG);
$resql = $this->db->query($sql);
if ($resql) {
$num = $this->db->num_rows($resql);
@ -225,13 +225,15 @@ class Stripe extends CommonObject
{
$obj = $this->db->fetch_object($resql);
$cardref = $obj->stripe_card_ref;
dol_syslog("*************".$cardref);
if ($cardref)
{
try {
if (empty($stripeacc)) { // If the Stripe connect account not set, we use common API usage
$card = $cu->sources->retrieve($cardref);
} else {
$card = $cu->sources->retrieve($cardref, array("stripe_account" => $stripeacc));
//$card = $cu->sources->retrieve($cardref, array("stripe_account" => $stripeacc)); // this API fails when array stripe_account is provided
$card = $cu->sources->retrieve($cardref);
}
}
catch(Exception $e)

View File

@ -240,42 +240,43 @@ if (empty($reshook))
if ($action == 'confirm_paiement' && $confirm == 'yes')
{
$error=0;
$error=0;
$datepaye = dol_now();
$datepaye = dol_now();
$db->begin();
$db->begin();
// Clean parameters amount if payment is for a credit note
if (GETPOST('type') == 2)
{
foreach ($amounts as $key => $value) // How payment is dispatch
{
$newvalue = price2num($value,'MT');
$amounts[$key] = -$newvalue;
}
// Clean parameters amount if payment is for a credit note
if (GETPOST('type') == 2)
{
foreach ($amounts as $key => $value) // How payment is dispatch
{
$newvalue = price2num($value,'MT');
$amounts[$key] = -$newvalue;
}
foreach ($multicurrency_amounts as $key => $value) // How payment is dispatch
{
$newvalue = price2num($value,'MT');
$multicurrency_amounts[$key] = -$newvalue;
}
}
{
$newvalue = price2num($value,'MT');
$multicurrency_amounts[$key] = -$newvalue;
}
}
if (! empty($conf->banque->enabled))
{
// Si module bank actif, un compte est obligatoire lors de la saisie d'un paiement
if (GETPOST('accountid') <= 0)
{
setEventMessages($langs->trans('ErrorFieldRequired',$langs->transnoentities('AccountToCredit')), null, 'errors');
$error++;
}
}
$facture = new Facture($db);
$facture->fetch($facid);
$facture->fetch_thirdparty();
if (! empty($conf->banque->enabled))
{
// Si module bank actif, un compte est obligatoire lors de la saisie d'un paiement
if (GETPOST('accountid') <= 0)
{
setEventMessages($langs->trans('ErrorFieldRequired',$langs->transnoentities('AccountToCredit')), null, 'errors');
$error++;
}
}
$error = 0;
$facture = new Facture($db);
$facture->fetch($facid);
$facture->fetch_thirdparty();
$error = 0;
if (is_object($stripe) && $stripeacc)
{
@ -286,56 +287,60 @@ $facture->fetch_thirdparty();
}
}
$stripeamount=0;
foreach ($amounts as $key => $value) // How payment is dispatch
{
$stripeamount+=price2num($value,'MT');
}
$stripeamount=0;
foreach ($amounts as $key => $value) // How payment is dispatch
{
$stripeamount+=price2num($value,'MT');
}
if (preg_match('/acct_/i',$source))
{
$paiementcode ="VIR";
}
elseif (preg_match('/card_/i',$source))
{
$paiementcode ="CB";
}
elseif (preg_match('/src_/i',$source))
{
$customer2 = \Stripe\Customer::retrieve($customer->id,array("stripe_account" => $stripe->getStripeAccount($entity)));
$src = $customer2->sources->retrieve("$source");
if ($src->type=='card'){
$paiementcode ="CB";
}
}
$societe = new Societe($db);
$societe->fetch($facture->socid);
dol_syslog("Create charge", LOG_DEBUG, 0, '_stripe');
if (preg_match('/acct_/i',$source))
{
$paiementcode ="VIR";
}
elseif (preg_match('/card_/i',$source))
{
$paiementcode ="CB";
}
elseif (preg_match('/src_/i',$source))
{
$stripeacc = $stripe->getStripeAccount($entity);
$customer2 = \Stripe\Customer::retrieve($customer->id, array("stripe_account" => $stripeacc));
//$src = $customer2->sources->retrieve("$source", array("stripe_account" => $stripeacc)); // this API fails when array stripe_account is provided
$src = $customer2->sources->retrieve("$source");
if ($src->type=='card')
{
$paiementcode ="CB";
}
}
$charge=$stripe->CreatePaymentStripe($stripeamount,"EUR","invoice",$facid,$source,$customer->id,$stripe->getStripeAccount($conf->entity));
$societe = new Societe($db);
$societe->fetch($facture->socid);
dol_syslog("Create charge", LOG_DEBUG, 0, '_stripe');
if (!$error)
{
// Creation of payment line
$paiement = new Paiement($db);
$paiement->datepaye = $datepaye;
$paiement->amounts = $amounts; // Array with all payments dispatching
$paiement->multicurrency_amounts = $multicurrency_amounts; // Array with all payments dispatching
$paiement->paiementid = dol_getIdFromCode($db,$paiementcode,'c_paiement');
$paiement->num_paiement = $charge->message;
$paiement->note = GETPOST('comment');
}
$charge=$stripe->CreatePaymentStripe($stripeamount,"EUR","invoice",$facid,$source,$customer->id,$stripe->getStripeAccount($conf->entity));
if (! $error)
{
if (!$error)
{
// Creation of payment line
$paiement = new Paiement($db);
$paiement->datepaye = $datepaye;
$paiement->amounts = $amounts; // Array with all payments dispatching
$paiement->multicurrency_amounts = $multicurrency_amounts; // Array with all payments dispatching
$paiement->paiementid = dol_getIdFromCode($db,$paiementcode,'c_paiement');
$paiement->num_paiement = $charge->message;
$paiement->note = GETPOST('comment');
}
$paiement_id = $paiement->create($user, 0);
if ($paiement_id < 0)
{
setEventMessages($paiement->error, $paiement->errors, 'errors');
$error++;
}
if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE) && count($facture->lines))
if (! $error)
{
$paiement_id = $paiement->create($user, 0);
if ($paiement_id < 0)
{
setEventMessages($paiement->error, $paiement->errors, 'errors');
$error++;
}
if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE) && count($facture->lines))
{
$outputlangs = $langs;
$newlang = '';
@ -349,53 +354,53 @@ $charge=$stripe->CreatePaymentStripe($stripeamount,"EUR","invoice",$facid,$sourc
$ret = $facture->fetch($facid); // Reload to get new records
$facture->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref);
}
}
}
if (! $error)
{
$label='(CustomerInvoicePayment)';
if (GETPOST('type') == 2) $label='(CustomerInvoicePaymentBack)';
$result=$paiement->addPaymentToBank($user,'payment',$label,GETPOST('accountid'),'','');
if ($result < 0)
{
setEventMessages($paiement->error, $paiement->errors, 'errors');
$error++;
}
elseif (GETPOST('closepaidinvoices')=='on') {
$facture->set_paid($user);
}
}
if (! $error)
{
$label='(CustomerInvoicePayment)';
if (GETPOST('type') == 2) $label='(CustomerInvoicePaymentBack)';
$result=$paiement->addPaymentToBank($user,'payment',$label,GETPOST('accountid'),'','');
if ($result < 0)
{
setEventMessages($paiement->error, $paiement->errors, 'errors');
$error++;
}
elseif (GETPOST('closepaidinvoices')=='on') {
$facture->set_paid($user);
}
}
if (! $error)
{
$db->commit();
if (! $error)
{
$db->commit();
// If payment dispatching on more than one invoice, we keep on summary page, otherwise go on invoice card
$invoiceid=0;
foreach ($paiement->amounts as $key => $amount)
{
$facid = $key;
if (is_numeric($amount) && $amount <> 0)
{
if ($invoiceid != 0) $invoiceid=-1; // There is more than one invoice payed by this payment
else $invoiceid=$facid;
}
}
if ($invoiceid > 0) $loc = DOL_URL_ROOT.'/compta/facture/card.php?facid='.$invoiceid;
else $loc = DOL_URL_ROOT.'/compta/paiement/card.php?id='.$paiement_id;
header('Location: '.$loc);
exit;
}
else
{
$loc = dol_buildpath('/stripeconnect/payment.php?facid='.$facid.'&action=create&error='.$e->getMessage().'', 1);
$db->rollback();
header('Location: '.$loc);
}
// If payment dispatching on more than one invoice, we keep on summary page, otherwise go on invoice card
$invoiceid=0;
foreach ($paiement->amounts as $key => $amount)
{
$facid = $key;
if (is_numeric($amount) && $amount <> 0)
{
if ($invoiceid != 0) $invoiceid=-1; // There is more than one invoice payed by this payment
else $invoiceid=$facid;
}
}
if ($invoiceid > 0) $loc = DOL_URL_ROOT.'/compta/facture/card.php?facid='.$invoiceid;
else $loc = DOL_URL_ROOT.'/compta/paiement/card.php?id='.$paiement_id;
header('Location: '.$loc);
exit;
}
else
{
$loc = dol_buildpath('/stripeconnect/payment.php?facid='.$facid.'&action=create&error='.$e->getMessage().'', 1);
$db->rollback();
header('Location: '.$loc);
exit;
}
}
}

View File

@ -3720,7 +3720,7 @@ table.dp {
border-style:none;
background-color:transparent;
padding:0px;
font-size:9px;
font-size: 0.85em;
border-width:0px;
color:#0B63A2;
vertical-align:middle;

View File

@ -3659,7 +3659,7 @@ table.dp {
border-style:none;
background-color:transparent;
padding:0px;
font-size:9px;
font-size: 0.85em;
border-width:0px;
color: #eee;
vertical-align:middle;