| '.$langs->trans("Description").' | ';
@@ -493,9 +514,6 @@ if ($rowid > 0)
print '';
}
- // Add
- print '';
-
// Delete
if ($user->rights->asset->write)
{
@@ -504,233 +522,6 @@ if ($rowid > 0)
print "";
-
- // Show list of assets (nearly same code than in page list.php)
- $assettypestatic=new AssetType($db);
-
- $now=dol_now();
-
- $sql = "SELECT a.rowid, d.login, d.firstname, d.lastname, d.societe, ";
- $sql.= " d.datefin,";
- $sql.= " a.fk_asset_type as type_id,";
- $sql.= " t.label as type";
- $sql.= " FROM ".MAIN_DB_PREFIX."asset as a, ".MAIN_DB_PREFIX."asset_type as t";
- $sql.= " WHERE a.fk_asset_type = t.rowid";
- $sql.= " AND a.entity IN (".getEntity('asset').")";
- $sql.= " AND t.rowid = ".$object->id;
- if ($sall)
- {
- $sql.=natural_search(array("f.firstname","d.lastname","d.societe","d.email","d.login","d.address","d.town","d.note_public","d.note_private"), $sall);
- }
- if ($status != '')
- {
- $sql.= natural_search('d.statut', $status, 2);
- }
- if ($action == 'search')
- {
- if (GETPOST('search','alpha'))
- {
- $sql.= natural_search(array("d.firstname","d.lastname"), GETPOST('search','alpha'));
- }
- }
- if (! empty($search_lastname))
- {
- $sql.= natural_search(array("d.firstname","d.lastname"), $search_lastname);
- }
- if (! empty($search_login))
- {
- $sql.= natural_search("d.login", $search_login);
- }
- if (! empty($search_email))
- {
- $sql.= natural_search("d.email", $search_email);
- }
- if ($filter == 'uptodate')
- {
- $sql.=" AND datefin >= '".$db->idate($now)."'";
- }
- if ($filter == 'outofdate')
- {
- $sql.=" AND datefin < '".$db->idate($now)."'";
- }
-
- $sql.= " ".$db->order($sortfield,$sortorder);
-
- // Count total nb of records
- $nbtotalofrecords = '';
- if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
- {
- $resql = $db->query($sql);
- if ($resql) $nbtotalofrecords = $db->num_rows($result);
- else dol_print_error($db);
- if (($page * $limit) > $nbtotalofrecords) // if total resultset is smaller then paging size (filtering), goto and load page 0
- {
- $page = 0;
- $offset = 0;
- }
- }
-
- $sql.= " ".$db->plimit($conf->liste_limit+1, $offset);
-
- $resql = $db->query($sql);
- if ($resql)
- {
- $num = $db->num_rows($resql);
- $i = 0;
-
- $titre=$langs->trans("AssetsList");
- if ($status != '')
- {
- if ($status == '-1,1') { $titre=$langs->trans("MembersListQualified"); }
- else if ($status == '-1') { $titre=$langs->trans("MembersListToValid"); }
- else if ($status == '1' && ! $filter) { $titre=$langs->trans("MembersListValid"); }
- else if ($status == '1' && $filter=='uptodate') { $titre=$langs->trans("MembersListUpToDate"); }
- else if ($status == '1' && $filter=='outofdate') { $titre=$langs->trans("MembersListNotUpToDate"); }
- else if ($status == '0') { $titre=$langs->trans("MembersListResiliated"); }
- }
- elseif ($action == 'search')
- {
- $titre=$langs->trans("MembersListQualified");
- }
-
- if ($type > 0)
- {
- $assettype=new AssetType($db);
- $result=$assettype->fetch($type);
- $titre.=" (".$assettype->label.")";
- }
-
- $param="&rowid=".$object->id;
- if (! empty($status)) $param.="&status=".$status;
- if (! empty($search_lastname)) $param.="&search_lastname=".$search_lastname;
- if (! empty($search_firstname)) $param.="&search_firstname=".$search_firstname;
- if (! empty($search_login)) $param.="&search_login=".$search_login;
- if (! empty($search_email)) $param.="&search_email=".$search_email;
- if (! empty($filter)) $param.="&filter=".$filter;
-
- if ($sall)
- {
- print $langs->trans("Filter")." (".$langs->trans("Lastname").", ".$langs->trans("Firstname").", ".$langs->trans("EMail").", ".$langs->trans("Address")." ".$langs->trans("or")." ".$langs->trans("Town")."): ".$sall;
- }
-
- print ' | ';
-
- print '
';
- print_barre_liste('',$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$nbtotalofrecords);
-
- $moreforfilter = '';
-
- print '';
- print '
'."\n";
-
- // Lignes des champs de filtre
- print '';
-
- print '| ';
- print ' | ';
-
- print '';
- print ' | ';
-
- print ' | ';
-
- print '';
- print ' | ';
-
- print ' | ';
-
- print '';
- print '';
- print ' ';
- print '';
- print ' | ';
-
- print "
\n";
-
- print '';
- print_liste_field_titre( $langs->trans("Name")." / ".$langs->trans("Company"),$_SERVER["PHP_SELF"],"d.lastname",$param,"","",$sortfield,$sortorder);
- print_liste_field_titre("Login",$_SERVER["PHP_SELF"],"d.login",$param,"","",$sortfield,$sortorder);
- print_liste_field_titre("Nature",$_SERVER["PHP_SELF"],"d.morphy",$param,"","",$sortfield,$sortorder);
- print_liste_field_titre("EMail",$_SERVER["PHP_SELF"],"d.email",$param,"","",$sortfield,$sortorder);
- print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"d.statut,d.datefin",$param,"","",$sortfield,$sortorder);
- print_liste_field_titre("EndSubscription",$_SERVER["PHP_SELF"],"d.datefin",$param,"",'align="center"',$sortfield,$sortorder);
- print_liste_field_titre("Action",$_SERVER["PHP_SELF"],"",$param,"",'width="60" align="center"',$sortfield,$sortorder);
- print "
\n";
-
- while ($i < $num && $i < $conf->liste_limit)
- {
- $objp = $db->fetch_object($resql);
-
- $datefin=$db->jdate($objp->datefin);
-
- $adh=new Asset($db);
- $adh->lastname=$objp->lastname;
- $adh->firstname=$objp->firstname;
-
- // Lastname
- print '';
- if ($objp->societe != '')
- {
- print '| '.img_object($langs->trans("ShowMember"),"user").' '.$adh->getFullName($langs,0,-1,20).' / '.dol_trunc($objp->societe,12).' | '."\n";
- }
- else
- {
- print ''.img_object($langs->trans("ShowMember"),"user").' '.$adh->getFullName($langs,0,-1,32).' | '."\n";
- }
-
- // Login
- print "".$objp->login." | \n";
-
- // Type
- /*print '';
- $assettypestatic->id=$objp->type_id;
- $assettypestatic->label=$objp->type;
- print $assettypestatic->getNomUrl(1,12);
- print ' | ';
- */
-
- // Moral/Physique
- print "".$adh->getmorphylib($objp->morphy)." | \n";
-
- // EMail
- print "".dol_print_email($objp->email,0,0,1)." | \n";
-
- // Statut
- print '';
- print $adh->LibStatut($objp->statut,$objp->subscription,$datefin,2);
- print " | ";
-
- // Actions
- print '';
- if ($user->rights->asset->creer)
- {
- print 'id).'">'.img_edit().'';
- }
- print ' ';
- if ($user->rights->asset->supprimer)
- {
- print ''.img_picto($langs->trans("Resiliate"),'disable.png').'';
- }
- print " | ";
-
- print "
\n";
- $i++;
- }
-
- print "
\n";
- print '
';
- print '';
-
- if ($num > $conf->liste_limit)
- {
- print_barre_liste('',$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$nbtotalofrecords,'');
- }
- }
- else
- {
- dol_print_error($db);
- }
}
/* ************************************************************************** */
diff --git a/htdocs/core/tpl/commonfields_add.tpl.php b/htdocs/core/tpl/commonfields_add.tpl.php
index 4c81e50c65c..0ea4e6fa03b 100644
--- a/htdocs/core/tpl/commonfields_add.tpl.php
+++ b/htdocs/core/tpl/commonfields_add.tpl.php
@@ -19,6 +19,7 @@
* $action
* $conf
* $langs
+ * $form
*/
// Protection to avoid direct call of template
@@ -49,6 +50,9 @@ foreach($object->fields as $key => $val)
print '"';
print '>';
print $langs->trans($val['label']);
+ if(!empty($val['help'])){
+ print $form->textwithpicto('',$langs->trans($val['help']));
+ }
print '';
print '';
if (in_array($val['type'], array('int', 'integer'))) $value = GETPOST($key, 'int');
@@ -60,4 +64,4 @@ foreach($object->fields as $key => $val)
}
?>
-
\ No newline at end of file
+
diff --git a/htdocs/emailcollector/class/emailcollector.class.php b/htdocs/emailcollector/class/emailcollector.class.php
index 4a7986e5d8a..471058e6b8d 100644
--- a/htdocs/emailcollector/class/emailcollector.class.php
+++ b/htdocs/emailcollector/class/emailcollector.class.php
@@ -302,8 +302,13 @@ class EmailCollector extends CommonObject
/**
* Fetch all account and load objects into an array
*
- * @return array Array with key => EmailCollector object
- * @author
+ * @param User $user User
+ * @param int $activeOnly filter if active
+ * @param string $sortfield field for sorting
+ * @param string $sortorder sorting order
+ * @param int $limit sort limit
+ * @param int $page page to start on
+ * @return array Array with key => EmailCollector object
*/
public function fetchAll(User $user, $activeOnly = 0, $sortfield = 's.rowid', $sortorder = 'ASC', $limit = 100, $page = 0)
{
@@ -490,7 +495,7 @@ class EmailCollector extends CommonObject
return $this->LibStatut($this->status, $mode);
}
- // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
+ // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
/**
* Return the status
*
diff --git a/htdocs/langs/en_US/assets.lang b/htdocs/langs/en_US/assets.lang
index 0f955fe19ce..b780fb6fcba 100644
--- a/htdocs/langs/en_US/assets.lang
+++ b/htdocs/langs/en_US/assets.lang
@@ -22,7 +22,14 @@ AccountancyCodeAsset = Accounting code (asset)
AccountancyCodeDepreciationAsset = Accounting code (depreciation asset account)
AccountancyCodeDepreciationExpense = Accounting code (depreciation expense account)
NewAssetType=New asset type
+AssetsTypeSetup=Assets type setup
+AssetTypeModified=Asset type modified
+AssetType=Asset type
AssetsLines=Assets
+DeleteType=Delete
+DeleteAnAssetType=Delete an asset type
+ConfirmDeleteAssetType=Are you sure you want to delete this asset type?
+ShowTypeCard=Show type '%s'
# Module label 'ModuleAssetsName'
ModuleAssetsName = Assets
diff --git a/htdocs/modulebuilder/template/class/myobject.class.php b/htdocs/modulebuilder/template/class/myobject.class.php
index 71446c53211..58dfe5924cf 100644
--- a/htdocs/modulebuilder/template/class/myobject.class.php
+++ b/htdocs/modulebuilder/template/class/myobject.class.php
@@ -424,7 +424,7 @@ class MyObject extends CommonObject
return $this->LibStatut($this->status, $mode);
}
- // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
+ // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
/**
* Return the status
*
diff --git a/htdocs/public/payment/paymentok.php b/htdocs/public/payment/paymentok.php
index 36723658946..e1cd70e4a91 100644
--- a/htdocs/public/payment/paymentok.php
+++ b/htdocs/public/payment/paymentok.php
@@ -631,7 +631,7 @@ if ($ispaymentok)
$paiement->num_paiement = '';
$paiement->note_public = 'Online payment '.dol_print_date($now, 'standard').' from '.$ipaddress;
$paiement->ext_payment_id = $TRANSACTIONID;
- $paiement->ext_payment_site = $paymentmethod;
+ $paiement->ext_payment_site = $service;
if (! $error)
{
diff --git a/htdocs/public/stripe/ipn.php b/htdocs/public/stripe/ipn.php
index 45fd6489f92..28d809532d5 100644
--- a/htdocs/public/stripe/ipn.php
+++ b/htdocs/public/stripe/ipn.php
@@ -22,7 +22,9 @@ define("NOCSRFCHECK",1); // We accept to go on this page from external web site.
$entity=(! empty($_GET['entity']) ? (int) $_GET['entity'] : (! empty($_POST['entity']) ? (int) $_POST['entity'] : 1));
if (is_numeric($entity)) define("DOLENTITY", $entity);
-require '../../main.inc.php';
+$res=0;
+if (! $res && file_exists("../../main.inc.php")) $res=@include("../../main.inc.php"); // to work if your module directory is into a subdir of root htdocs directory
+if (! $res) die("Include of main fails");
if (empty($conf->stripe->enabled)) accessforbidden('',0,0,1);
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
@@ -43,13 +45,13 @@ if (isset($_GET['connect'])){
{
$endpoint_secret = $conf->global->STRIPE_TEST_WEBHOOK_CONNECT_KEY;
$service = 'StripeTest';
- $servicestatus = 0;
+ $servicestatus = 0;
}
else
{
$endpoint_secret = $conf->global->STRIPE_LIVE_WEBHOOK_CONNECT_KEY;
$service = 'StripeLive';
- $servicestatus = 1;
+ $servicestatus = 1;
}
}
else {
@@ -57,15 +59,16 @@ else {
{
$endpoint_secret = $conf->global->STRIPE_TEST_WEBHOOK_KEY;
$service = 'StripeTest';
- $servicestatus = 0;
+ $servicestatus = 0;
}
else
{
$endpoint_secret = $conf->global->STRIPE_LIVE_WEBHOOK_KEY;
$service = 'StripeLive';
- $servicestatus = 1;
+ $servicestatus = 1;
}
}
+
$payload = @file_get_contents("php://input");
$sig_header = $_SERVER["HTTP_STRIPE_SIGNATURE"];
$event = null;
@@ -127,7 +130,7 @@ $stripe=new Stripe($db);
if ($event->type == 'payout.created') {
$error=0;
- $result=dolibarr_set_const($db, $servicestatus."_NEXTPAYOUT", date('Y-m-d H:i:s',$event->data->object->arrival_date), 'chaine', 0, '', $conf->entity);
+ $result=dolibarr_set_const($db, $service."_NEXTPAYOUT", date('Y-m-d H:i:s',$event->data->object->arrival_date), 'chaine', 0, '', $conf->entity);
if ($result > 0)
{
@@ -172,7 +175,7 @@ if ($event->type == 'payout.created') {
elseif ($event->type == 'payout.paid') {
global $conf;
$error=0;
- $result=dolibarr_set_const($db, $servicestatus."_NEXTPAYOUT",null,'chaine',0,'',$conf->entity);
+ $result=dolibarr_set_const($db, $service."_NEXTPAYOUT",null,'chaine',0,'',$conf->entity);
if ($result)
{
$langs->load("errors");
@@ -187,14 +190,9 @@ elseif ($event->type == 'payout.paid') {
$accountfrom->fetch($conf->global->STRIPE_BANK_ACCOUNT_FOR_PAYMENTS);
$accountto=new Account($db);
- $accountto->fetch($conf->global->STRIPE_BANK_ACCOUNT_FOR_BANKTRANFERS);
+ $accountto->fetch($conf->global->STRIPE_BANK_ACCOUNT_FOR_BANKTRANSFERS);
- if ($accountto->currency_code != $accountfrom->currency_code) {
- $error++;
- setEventMessages($langs->trans("ErrorTransferBetweenDifferentCurrencyNotPossible"), null, 'errors');
- }
-
- if ($accountto->id != $accountfrom->id)
+ if (($accountto->id != $accountfrom->id) && empty($error))
{
$bank_line_id_from=0;
@@ -207,21 +205,44 @@ elseif ($event->type == 'payout.paid') {
if (! $error) $bank_line_id_from = $accountfrom->addline($dateo, $typefrom, $label, -1*price2num($amount), '', '', $user);
if (! ($bank_line_id_from > 0)) $error++;
- if ((! $error) && ($accountto->currency_code == $accountfrom->currency_code)) $bank_line_id_to = $accountto->addline($dateo, $typeto, $label, price2num($amount), '', '', $user);
- if ((! $error) && ($accountto->currency_code != $accountfrom->currency_code)) $bank_line_id_to = $accountto->addline($dateo, $typeto, $label, price2num($amount_to), '', '', $user);
+ 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 (! $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) $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++;
- }
- // TODO Use CMail and translation
- $body = "Un virement de ".price2num($event->data->object->amount/100)." ".$event->data->object->currency." a ete effectue sur votre compte le ".date('d-m-Y H:i:s',$event->data->object->arrival_date);
- $subject = '[NOTIFICATION] Virement effectué';
- $headers = 'From: "'.$conf->global->MAIN_INFO_SOCIETE_MAIL.'" <'.$conf->global->MAIN_INFO_SOCIETE_MAIL.'>';
- mail(''.$conf->global->MAIN_INFO_SOCIETE_MAIL.'', $subject, $body, $headers);
+ }
+ $subject = '[NOTIFICATION] Stripe payout done';
+ if (!empty($user->email)) {
+ $sendto = dolGetFirstLastname($user->firstname, $user->lastname) . " <".$user->email.">";
+ } else {
+ $sendto = $conf->global->MAIN_INFO_SOCIETE_MAIL.'" <'.$conf->global->MAIN_INFO_SOCIETE_MAIL.'>';
+ }
+ $replyto = $sendto;
+ $sendtocc = '';
+ if (!empty($conf->global->ONLINE_PAYMENT_SENDEMAIL)) {
+ $sendtocc = $conf->global->ONLINE_PAYMENT_SENDEMAIL.'" <'.$conf->global->ONLINE_PAYMENT_SENDEMAIL.'>';
+ }
+
+ $message = "A bank transfer of ".price2num($event->data->object->amount/100)." ".$event->data->object->currency." has been transfert in your account the ".dol_print_date($event->data->object->arrival_date, 'dayhour');
+
+ $mailfile = new CMailFile(
+ $subject,
+ $sendto,
+ $replyto,
+ $message,
+ array(),
+ array(),
+ array(),
+ $sendtocc,
+ '',
+ 0,
+ -1
+ );
+
+ $ret = $mailfile->sendfile();
return 1;
}
diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php
index dd1aada283b..96e1ebb415f 100644
--- a/htdocs/societe/class/societe.class.php
+++ b/htdocs/societe/class/societe.class.php
@@ -13,6 +13,7 @@
* Copyright (C) 2014-2015 Marcos García
* Copyright (C) 2015 Raphaël Doursenaud
* Copyright (C) 2017 Rui Strecht
+ * Copyright (C) 2018 Philippe Grand
*
* 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
@@ -3827,6 +3828,7 @@ class Societe extends CommonObject
*
* @return int Amount in debt for thirdparty
* @deprecated
+ * @see getOutstandingBills()
*/
function get_OutstandingBill()
{
diff --git a/htdocs/takepos/pay.php b/htdocs/takepos/pay.php
index c0bfc35294a..898b9069ba0 100644
--- a/htdocs/takepos/pay.php
+++ b/htdocs/takepos/pay.php
@@ -41,7 +41,7 @@ $sql="SELECT rowid FROM ".MAIN_DB_PREFIX."facture where facnumber='(PROV-POS-".$
$resql = $db->query($sql);
$row = $db->fetch_array ($resql);
$placeid=$row[0];
-if (! $placeid) $placeid=0; // Developing error message with no lines
+if (! $placeid) $placeid=0; // Invoice not exist
else{
$invoice = new Facture($db);
$invoice->fetch($placeid);
@@ -101,15 +101,15 @@ $langs->loadLangs(array("main", "bills", "cashdesk"));
-
+
-
+
-
+
|