diff --git a/htdocs/adherents/subscription.php b/htdocs/adherents/subscription.php
index cd30bc28080..8002b33b1f6 100644
--- a/htdocs/adherents/subscription.php
+++ b/htdocs/adherents/subscription.php
@@ -114,7 +114,6 @@ if ($action == 'confirm_create_thirdparty' && $confirm == 'yes' && $user->rights
if ($result < 0)
{
$langs->load("errors");
- $errmsg=$langs->trans($company->error);
setEventMessages($company->error, $company->errors, 'errors');
}
else
@@ -124,7 +123,7 @@ if ($action == 'confirm_create_thirdparty' && $confirm == 'yes' && $user->rights
}
else
{
- $errmsg=$object->error;
+ setEventMessages($object->error, $object->errors, 'errors');
}
}
@@ -212,7 +211,7 @@ if ($user->rights->adherent->cotisation->creer && $action == 'subscription' && !
{
$paymentdate=dol_mktime(0, 0, 0, $_POST["paymentmonth"], $_POST["paymentday"], $_POST["paymentyear"]);
}
- $subscription=$_POST["subscription"]; // Amount of subscription
+ $subscription=price2num(GETPOST("subscription",'alpha')); // Amount of subscription
$label=$_POST["label"];
// Payment informations
@@ -230,6 +229,7 @@ if ($user->rights->adherent->cotisation->creer && $action == 'subscription' && !
$error++;
$langs->load("errors");
$errmsg=$langs->trans("ErrorBadDateFormat",$langs->transnoentitiesnoconv("DateSubscription"));
+ setEventMessages($errmsg, null, 'errors');
$action='addsubscription';
}
if (GETPOST('end') && ! $datesubend)
@@ -237,6 +237,7 @@ if ($user->rights->adherent->cotisation->creer && $action == 'subscription' && !
$error++;
$langs->load("errors");
$errmsg=$langs->trans("ErrorBadDateFormat",$langs->transnoentitiesnoconv("DateEndSubscription"));
+ setEventMessages($errmsg, null, 'errors');
$action='addsubscription';
}
if (! $datesubend)
@@ -247,16 +248,20 @@ if ($user->rights->adherent->cotisation->creer && $action == 'subscription' && !
{
$error++;
$errmsg=$langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("DatePayment"));
+ setEventMessages($errmsg, null, 'errors');
$action='addsubscription';
}
+ $amount = price2num(GETPOST("subscription",'alpha'));
+
// Check if a payment is mandatory or not
if (! $error && $adht->subscription) // Member type need subscriptions
{
- if (! is_numeric($_POST["subscription"]))
+ if (! is_numeric($amount))
{
// If field is '' or not a numeric value
$errmsg=$langs->trans("ErrorFieldRequired",$langs->transnoentities("Amount"));
+ setEventMessages($errmsg, null, 'errors');
$error++;
$action='addsubscription';
}
@@ -274,7 +279,11 @@ if ($user->rights->adherent->cotisation->creer && $action == 'subscription' && !
{
if ($_POST["accountid"]) $errmsg=$langs->trans("ErrorDoNotProvideAccountsIfNullAmount");
}
- if ($errmsg) $action='addsubscription';
+ if ($errmsg)
+ {
+ setEventMessages($errmsg, null, 'errors');
+ $action='addsubscription';
+ }
}
}
}
@@ -320,6 +329,7 @@ if ($user->rights->adherent->cotisation->creer && $action == 'subscription' && !
{
$error++;
$errmsg=$db->lasterror();
+ setEventMessages($errmsg, null, 'errors');
}
}
else
@@ -327,14 +337,16 @@ if ($user->rights->adherent->cotisation->creer && $action == 'subscription' && !
$error++;
$errmsg=$acct->error;
$errmsgs=$acct->errors;
- }
+ setEventMessages($errmsg, $errmsgs, 'errors');
+ }
}
else
{
$error++;
$errmsg=$acct->error;
$errmsgs=$acct->errors;
- }
+ setEventMessages($errmsg, $errmsgs, 'errors');
+ }
}
// If option choosed, we create invoice
@@ -352,6 +364,7 @@ if ($user->rights->adherent->cotisation->creer && $action == 'subscription' && !
{
$langs->load("errors");
$errmsg=$langs->trans("ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst");
+ setEventMessages($errmsg, null, 'errors');
$error++;
}
}
@@ -362,6 +375,7 @@ if ($user->rights->adherent->cotisation->creer && $action == 'subscription' && !
{
$errmsg=$customer->error;
$errmsgs=$acct->errors;
+ setEventMessages($errmsg, $errmsgs, 'errors');
$error++;
}
}
@@ -379,6 +393,7 @@ if ($user->rights->adherent->cotisation->creer && $action == 'subscription' && !
{
$error++;
$errmsg='ErrorNoPaymentTermRECEPFound';
+ setEventMessages($errmsg, null, 'errors');
}
}
$invoice->socid=$object->fk_soc;
@@ -396,6 +411,7 @@ if ($user->rights->adherent->cotisation->creer && $action == 'subscription' && !
{
$errmsg=$invoice->error;
$errmsgs=$invoice->errors;
+ setEventMessages($errmsg, $errmsgs, 'errors');
$error++;
}
}
@@ -416,6 +432,7 @@ if ($user->rights->adherent->cotisation->creer && $action == 'subscription' && !
if ($result <= 0)
{
$errmsg=$invoice->error;
+ setEventMessages($errmsg, null, 'errors');
$error++;
}
}
@@ -428,6 +445,7 @@ if ($user->rights->adherent->cotisation->creer && $action == 'subscription' && !
{
$errmsg=$invoice->error;
$errmsgs=$invoice->errors;
+ setEventMessages($errmsg, $errmsgs, 'errors');
$error++;
}
}
@@ -455,6 +473,7 @@ if ($user->rights->adherent->cotisation->creer && $action == 'subscription' && !
{
$errmsg=$paiement->error;
$errmsgs=$paiement->errors;
+ setEventMessages($errmsg, $errmsgs, 'errors');
$error++;
}
}
@@ -536,6 +555,7 @@ if ($user->rights->adherent->cotisation->creer && $action == 'subscription' && !
if ($result < 0)
{
$errmsg=$object->error;
+ setEventMessages($errmsg, null, 'errors');
}
}
diff --git a/htdocs/contrat/services.php b/htdocs/contrat/services.php
index 51061b4b6ad..aaf0d0cd796 100644
--- a/htdocs/contrat/services.php
+++ b/htdocs/contrat/services.php
@@ -154,6 +154,7 @@ if (empty($reshook))
if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x','alpha') || GETPOST('button_removefilter','alpha')) // All test are required to be compatible with all browsers
{
+ $search_product_category=0;
$search_name="";
$search_contract="";
$search_service="";
@@ -176,6 +177,8 @@ if (empty($reshook))
$filter_opcloture="";
$mode='';
$filter='';
+ $toselect='';
+ $search_array_options=array();
}
}
diff --git a/htdocs/core/boxes/box_activity.php b/htdocs/core/boxes/box_activity.php
index ae3e270101e..02b1d1880c8 100644
--- a/htdocs/core/boxes/box_activity.php
+++ b/htdocs/core/boxes/box_activity.php
@@ -97,181 +97,95 @@ class box_activity extends ModeleBoxes
$cumuldata = array();
- // list the summary of the bills
- if (! empty($conf->facture->enabled) && $user->rights->facture->lire)
+
+ // list the summary of the propals
+ if (! empty($conf->propal->enabled) && $user->rights->propale->lire)
{
- include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
- $facturestatic=new Facture($db);
+ include_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php';
+ $propalstatic=new Propal($db);
- // part 1
- $cachedir = DOL_DATA_ROOT.'/facture/temp';
- $filename = '/boxactivity-invoice'.$fileid;
+ $cachedir = DOL_DATA_ROOT.'/propale/temp';
+ $filename = '/boxactivity-propal'.$fileid;
+ $refresh = dol_cache_refresh($cachedir, $filename, $cachetime);
+ $data = array();
+ if ($refresh)
+ {
+ $sql = "SELECT p.fk_statut, SUM(p.total) as Mnttot, COUNT(*) as nb";
+ $sql.= " FROM (".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."propal as p";
+ if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
+ $sql.= ")";
+ $sql.= " WHERE p.entity = ".$conf->entity;
+ $sql.= " AND p.fk_soc = s.rowid";
+ if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
+ if($user->societe_id) $sql.= " AND s.rowid = ".$user->societe_id;
+ $sql.= " AND p.datep >= '".$db->idate($tmpdate)."'";
+ $sql.= " AND p.date_cloture IS NULL"; // just unclosed
+ $sql.= " GROUP BY p.fk_statut";
+ $sql.= " ORDER BY p.fk_statut DESC";
- $refresh = dol_cache_refresh($cachedir, $filename, $cachetime);
- $data = array();
- if ($refresh)
- {
- $sql = "SELECT f.fk_statut, SUM(f.total_ttc) as Mnttot, COUNT(*) as nb";
- $sql.= " FROM (".MAIN_DB_PREFIX."societe as s,".MAIN_DB_PREFIX."facture as f";
- if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
- $sql.= ")";
- $sql.= " WHERE f.entity = ".$conf->entity;
- if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
- if($user->societe_id) $sql.= " AND s.rowid = ".$user->societe_id;
- $sql.= " AND f.fk_soc = s.rowid";
- $sql.= " AND f.datef >= '".$db->idate($tmpdate)."' AND paye=1";
- $sql.= " GROUP BY f.fk_statut";
- $sql.= " ORDER BY f.fk_statut DESC";
+ $result = $db->query($sql);
+ if ($result)
+ {
+ $num = $db->num_rows($result);
- $result = $db->query($sql);
- if ($result) {
- $num = $db->num_rows($result);
- $j=0;
- while ($j < $num) {
- $data[$j]=$db->fetch_object($result);
- $j++;
- }
- if (! empty($conf->global->MAIN_ACTIVATE_FILECACHE)) {
- dol_filecache($cachedir, $filename, $data);
- }
- $db->free($result);
- } else {
- dol_print_error($db);
- }
- } else {
- $data = dol_readcachefile($cachedir, $filename);
- }
+ $j=0;
+ while ($j < $num) {
+ $data[$j]=$db->fetch_object($result);
+ $j++;
+ }
+ if (! empty($conf->global->MAIN_ACTIVATE_FILECACHE)) {
+ dol_filecache($cachedir, $filename, $data);
+ }
+ $db->free($result);
+ } else {
+ dol_print_error($db);
+ }
+ }
+ else
+ {
+ $data = dol_readcachefile($cachedir, $filename);
+ }
- $cumuldata=array_merge($cumuldata, $data);
- if (! empty($data)) {
- $j=0;
- while ($line < count($cumuldata)) {
- $billurl="viewstatut=2&paye=1&year=".$data[$j]->annee;
- $this->info_box_contents[$line][0] = array(
- 'td' => 'align="left" width="16"',
- 'tooltip' => $langs->trans('Bills').' '.$facturestatic->LibStatut(1,$data[$j]->fk_statut,0),
- 'url' => DOL_URL_ROOT."/compta/facture/list.php?".$billurl."&mainmenu=accountancy&leftmenu=customers_bills",
- 'logo' => 'bill',
- );
+ $cumuldata=array_merge($cumuldata, $data);
+ if (! empty($data))
+ {
+ $j=0;
+ while ($line < count($cumuldata))
+ {
+ $this->info_box_contents[$line][0] = array(
+ 'td' => 'align="left" width="16"',
+ 'url' => DOL_URL_ROOT."/comm/propal/list.php?mainmenu=commercial&leftmenu=propals&viewstatut=".$data[$j]->fk_statut,
+ 'tooltip' => $langs->trans("Proposals")." ".$propalstatic->LibStatut($data[$j]->fk_statut,0),
+ 'logo' => 'object_propal'
+ );
- $this->info_box_contents[$line][1] = array(
- 'td' => '',
- 'text' => $langs->trans("Bills")." ".$facturestatic->LibStatut(1,$data[$j]->fk_statut,0)." ".$data[$j]->annee,
- );
+ $this->info_box_contents[$line][1] = array(
+ 'td' => '',
+ 'text' => $langs->trans("Proposals")." ".$propalstatic->LibStatut($data[$j]->fk_statut,0),
+ );
- $this->info_box_contents[$line][2] = array(
- 'td' => 'class="right"',
- 'tooltip' => $langs->trans('Bills').' '.$facturestatic->LibStatut(1,$data[$j]->fk_statut,0),
- 'text' => $data[$j]->nb,
- 'url' => DOL_URL_ROOT."/compta/facture/list.php?".$billurl."&mainmenu=accountancy&leftmenu=customers_bills",
- );
+ $this->info_box_contents[$line][2] = array(
+ 'td' => 'class="right"',
+ 'text' => $data[$j]->nb,
+ 'tooltip' => $langs->trans("Proposals")." ".$propalstatic->LibStatut($data[$j]->fk_statut,0),
+ 'url' => DOL_URL_ROOT."/comm/propal/list.php?mainmenu=commercial&leftmenu=propals&viewstatut=".$data[$j]->fk_statut,
+ );
+ $totalnb += $data[$j]->nb;
- $this->info_box_contents[$line][3] = array(
- 'td' => 'class="right"',
- 'text' => price($data[$j]->Mnttot,1,$langs,0,0,-1,$conf->currency)
- );
+ $this->info_box_contents[$line][3] = array(
+ 'td' => 'class="right"',
+ 'text' => price($data[$j]->Mnttot,1,$langs,0,0,-1,$conf->currency),
+ );
+ $totalMnt += $data[$j]->Mnttot;
+ $this->info_box_contents[$line][4] = array(
+ 'td' => 'align="right" width="18"',
+ 'text' => $propalstatic->LibStatut($data[$j]->fk_statut,3),
+ );
- // We add only for the current year
- if ($data[$j]->annee == date("Y")) {
- $totalnb += $data[$j]->nb;
- $totalMnt += $data[$j]->Mnttot;
- }
- $this->info_box_contents[$line][4] = array(
- 'td' => 'align="right" width="18"',
- 'text' => $facturestatic->LibStatut(1,$data[$j]->fk_statut,3),
- );
- $line++;
- $j++;
- }
- if (count($data)==0)
- $this->info_box_contents[$line][0] = array(
- 'td' => 'align="center"',
- 'text'=>$langs->trans("NoRecordedInvoices"),
- );
- }
-
- // part 2
- $cachedir = DOL_DATA_ROOT.'/facture/temp';
- $filename = '/boxactivity-invoice2'.$fileid;
-
- $refresh = dol_cache_refresh($cachedir, $filename, $cachetime);
-
- if ($refresh) {
- $sql = "SELECT f.fk_statut, SUM(f.total_ttc) as Mnttot, COUNT(*) as nb";
- $sql.= " FROM ".MAIN_DB_PREFIX."societe as s,".MAIN_DB_PREFIX."facture as f";
- $sql.= " WHERE f.entity = ".$conf->entity;
- $sql.= " AND f.fk_soc = s.rowid";
- $sql.= " AND paye=0";
- $sql.= " GROUP BY f.fk_statut";
- $sql.= " ORDER BY f.fk_statut DESC";
-
- $result = $db->query($sql);
- if ($result) {
- $num = $db->num_rows($result);
- $j=0;
- while ($j < $num) {
- $data[$j]=$db->fetch_object($result);
- $j++;
- }
- if (! empty($conf->global->MAIN_ACTIVATE_FILECACHE)) {
- dol_filecache($cachedir, $filename, $data);
- }
- $db->free($result);
- } else {
- dol_print_error($db);
- }
- } else {
- $data = dol_readcachefile($cachedir, $filename);
- }
-
- $cumuldata=array_merge($cumuldata, $data);
- if (! empty($data)) {
- $j=0;
-
- while ($line < count($cumuldata)) {
- $billurl="viewstatut=".$data[$j]->fk_statut."&paye=0";
- $this->info_box_contents[$line][0] = array(
- 'td' => 'align="left" width="16"',
- 'tooltip' => $langs->trans('Bills').' '.$facturestatic->LibStatut(0,$data[$j]->fk_statut,0),
- 'url' => DOL_URL_ROOT."/compta/facture/list.php?".$billurl."&mainmenu=accountancy&leftmenu=customers_bills",
- 'logo' => 'bill',
- );
-
- $this->info_box_contents[$line][1] = array(
- 'td' => '',
- 'text' => $langs->trans("Bills")." ".$facturestatic->LibStatut(0,$data[$j]->fk_statut,0),
- );
-
- $this->info_box_contents[$line][2] = array(
- 'td' => 'class="right"',
- 'text' => $data[$j]->nb,
- 'tooltip' => $langs->trans('Bills').' '.$facturestatic->LibStatut(0,$data[$j]->fk_statut,0),
- 'url' => DOL_URL_ROOT."/compta/facture/list.php?".$billurl."&mainmenu=accountancy&leftmenu=customers_bills",
- );
- $totalnb += $data[$j]->nb;
- $this->info_box_contents[$line][3] = array(
- 'td' => 'class="right"',
- 'text' => price($data[$j]->Mnttot,1,$langs,0,0,-1,$conf->currency),
- );
- $totalMnt += $objp->Mnttot;
- $this->info_box_contents[$line][4] = array(
- 'td' => 'align="right" width="18"',
- 'text' => $facturestatic->LibStatut(0,$data[$j]->fk_statut,3),
- );
- $line++;
- $j++;
- }
- if ($num==0)
- $this->info_box_contents[$line][0] = array(
- 'td' => 'align="center"',
- 'text'=>$langs->trans("NoRecordedInvoices"),
- );
- } else {
- $this->info_box_contents[0][0] = array(
- 'td' => '',
- 'maxlength'=>500, 'text' => ($db->error().' sql='.$sql),
- );
- }
+ $line++;
+ $j++;
+ }
+ }
}
// list the summary of the orders
@@ -295,12 +209,10 @@ class box_activity extends ModeleBoxes
if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
if($user->societe_id) $sql.= " AND s.rowid = ".$user->societe_id;
$sql.= " AND c.date_commande >= '".$db->idate($tmpdate)."'";
- $sql.= " AND c.facture=0";
$sql.= " GROUP BY c.fk_statut";
$sql.= " ORDER BY c.fk_statut DESC";
$result = $db->query($sql);
-
if ($result) {
$num = $db->num_rows($result);
$j=0;
@@ -359,94 +271,182 @@ class box_activity extends ModeleBoxes
}
}
- // list the summary of the propals
- if (! empty($conf->propal->enabled) && $user->rights->propale->lire)
+
+ // list the summary of the bills
+ if (! empty($conf->facture->enabled) && $user->rights->facture->lire)
{
- include_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php';
- $propalstatic=new Propal($db);
+ include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
+ $facturestatic=new Facture($db);
- $cachedir = DOL_DATA_ROOT.'/propale/temp';
- $filename = '/boxactivity-propal'.$fileid;
- $refresh = dol_cache_refresh($cachedir, $filename, $cachetime);
- $data = array();
- if ($refresh)
- {
- $sql = "SELECT p.fk_statut, SUM(p.total) as Mnttot, COUNT(*) as nb";
- $sql.= " FROM (".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."propal as p";
- if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
- $sql.= ")";
- $sql.= " WHERE p.entity = ".$conf->entity;
- $sql.= " AND p.fk_soc = s.rowid";
- if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
- if($user->societe_id) $sql.= " AND s.rowid = ".$user->societe_id;
- $sql.= " AND p.datep >= '".$db->idate($tmpdate)."'";
- $sql.= " AND p.date_cloture IS NULL"; // just unclosed
- $sql.= " GROUP BY p.fk_statut";
- $sql.= " ORDER BY p.fk_statut DESC";
+ // part 1
+ $cachedir = DOL_DATA_ROOT.'/facture/temp';
+ $filename = '/boxactivity-invoice'.$fileid;
- $result = $db->query($sql);
- if ($result)
- {
- $num = $db->num_rows($result);
+ $refresh = dol_cache_refresh($cachedir, $filename, $cachetime);
+ $data = array();
+ if ($refresh)
+ {
+ $sql = "SELECT f.fk_statut, SUM(f.total_ttc) as Mnttot, COUNT(*) as nb";
+ $sql.= " FROM (".MAIN_DB_PREFIX."societe as s,".MAIN_DB_PREFIX."facture as f";
+ if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
+ $sql.= ")";
+ $sql.= " WHERE f.entity = ".$conf->entity;
+ if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
+ if($user->societe_id) $sql.= " AND s.rowid = ".$user->societe_id;
+ $sql.= " AND f.fk_soc = s.rowid";
+ $sql.= " AND f.datef >= '".$db->idate($tmpdate)."' AND paye=1";
+ $sql.= " GROUP BY f.fk_statut";
+ $sql.= " ORDER BY f.fk_statut DESC";
- $j=0;
- while ($j < $num) {
- $data[$j]=$db->fetch_object($result);
- $j++;
- }
- if (! empty($conf->global->MAIN_ACTIVATE_FILECACHE)) {
- dol_filecache($cachedir, $filename, $data);
- }
- $db->free($result);
- } else {
- dol_print_error($db);
- }
- }
- else
- {
- $data = dol_readcachefile($cachedir, $filename);
- }
+ $result = $db->query($sql);
+ if ($result) {
+ $num = $db->num_rows($result);
+ $j=0;
+ while ($j < $num) {
+ $data[$j]=$db->fetch_object($result);
+ $j++;
+ }
+ if (! empty($conf->global->MAIN_ACTIVATE_FILECACHE)) {
+ dol_filecache($cachedir, $filename, $data);
+ }
+ $db->free($result);
+ } else {
+ dol_print_error($db);
+ }
+ } else {
+ $data = dol_readcachefile($cachedir, $filename);
+ }
- $cumuldata=array_merge($cumuldata, $data);
- if (! empty($data))
- {
- $j=0;
- while ($line < count($cumuldata))
- {
- $this->info_box_contents[$line][0] = array(
- 'td' => 'align="left" width="16"',
- 'url' => DOL_URL_ROOT."/comm/propal/list.php?mainmenu=commercial&leftmenu=propals&viewstatut=".$data[$j]->fk_statut,
- 'tooltip' => $langs->trans("Proposals")." ".$propalstatic->LibStatut($data[$j]->fk_statut,0),
- 'logo' => 'object_propal'
- );
+ $cumuldata=array_merge($cumuldata, $data);
+ if (! empty($data)) {
+ $j=0;
+ while ($line < count($cumuldata)) {
+ $billurl="search_status=2&paye=1&year=".$data[$j]->annee;
+ $this->info_box_contents[$line][0] = array(
+ 'td' => 'align="left" width="16"',
+ 'tooltip' => $langs->trans('Bills').' '.$facturestatic->LibStatut(1,$data[$j]->fk_statut,0),
+ 'url' => DOL_URL_ROOT."/compta/facture/list.php?".$billurl."&mainmenu=accountancy&leftmenu=customers_bills",
+ 'logo' => 'bill',
+ );
- $this->info_box_contents[$line][1] = array(
- 'td' => '',
- 'text' => $langs->trans("Proposals")." ".$propalstatic->LibStatut($data[$j]->fk_statut,0),
- );
+ $this->info_box_contents[$line][1] = array(
+ 'td' => '',
+ 'text' => $langs->trans("Bills")." ".$facturestatic->LibStatut(1,$data[$j]->fk_statut,0)." ".$data[$j]->annee,
+ );
- $this->info_box_contents[$line][2] = array(
- 'td' => 'class="right"',
- 'text' => $data[$j]->nb,
- 'tooltip' => $langs->trans("Proposals")." ".$propalstatic->LibStatut($data[$j]->fk_statut,0),
- 'url' => DOL_URL_ROOT."/comm/propal/list.php?mainmenu=commercial&leftmenu=propals&viewstatut=".$data[$j]->fk_statut,
- );
- $totalnb += $data[$j]->nb;
+ $this->info_box_contents[$line][2] = array(
+ 'td' => 'class="right"',
+ 'tooltip' => $langs->trans('Bills').' '.$facturestatic->LibStatut(1,$data[$j]->fk_statut,0),
+ 'text' => $data[$j]->nb,
+ 'url' => DOL_URL_ROOT."/compta/facture/list.php?".$billurl."&mainmenu=accountancy&leftmenu=customers_bills",
+ );
- $this->info_box_contents[$line][3] = array(
- 'td' => 'class="right"',
- 'text' => price($data[$j]->Mnttot,1,$langs,0,0,-1,$conf->currency),
- );
- $totalMnt += $data[$j]->Mnttot;
- $this->info_box_contents[$line][4] = array(
- 'td' => 'align="right" width="18"',
- 'text' => $propalstatic->LibStatut($data[$j]->fk_statut,3),
- );
+ $this->info_box_contents[$line][3] = array(
+ 'td' => 'class="right"',
+ 'text' => price($data[$j]->Mnttot,1,$langs,0,0,-1,$conf->currency)
+ );
- $line++;
- $j++;
- }
- }
+ // We add only for the current year
+ if ($data[$j]->annee == date("Y")) {
+ $totalnb += $data[$j]->nb;
+ $totalMnt += $data[$j]->Mnttot;
+ }
+ $this->info_box_contents[$line][4] = array(
+ 'td' => 'align="right" width="18"',
+ 'text' => $facturestatic->LibStatut(1,$data[$j]->fk_statut,3),
+ );
+ $line++;
+ $j++;
+ }
+ if (count($data)==0)
+ $this->info_box_contents[$line][0] = array(
+ 'td' => 'align="center"',
+ 'text'=>$langs->trans("NoRecordedInvoices"),
+ );
+ }
+
+ // part 2
+ $cachedir = DOL_DATA_ROOT.'/facture/temp';
+ $filename = '/boxactivity-invoice2'.$fileid;
+
+ $refresh = dol_cache_refresh($cachedir, $filename, $cachetime);
+
+ if ($refresh) {
+ $sql = "SELECT f.fk_statut, SUM(f.total_ttc) as Mnttot, COUNT(*) as nb";
+ $sql.= " FROM ".MAIN_DB_PREFIX."societe as s,".MAIN_DB_PREFIX."facture as f";
+ $sql.= " WHERE f.entity = ".$conf->entity;
+ $sql.= " AND f.fk_soc = s.rowid";
+ $sql.= " AND paye=0";
+ $sql.= " GROUP BY f.fk_statut";
+ $sql.= " ORDER BY f.fk_statut DESC";
+
+ $result = $db->query($sql);
+ if ($result) {
+ $num = $db->num_rows($result);
+ $j=0;
+ while ($j < $num) {
+ $data[$j]=$db->fetch_object($result);
+ $j++;
+ }
+ if (! empty($conf->global->MAIN_ACTIVATE_FILECACHE)) {
+ dol_filecache($cachedir, $filename, $data);
+ }
+ $db->free($result);
+ } else {
+ dol_print_error($db);
+ }
+ } else {
+ $data = dol_readcachefile($cachedir, $filename);
+ }
+
+ $cumuldata=array_merge($cumuldata, $data);
+ if (! empty($data)) {
+ $j=0;
+
+ while ($line < count($cumuldata)) {
+ $billurl="search_status=".$data[$j]->fk_statut."&paye=0";
+ $this->info_box_contents[$line][0] = array(
+ 'td' => 'align="left" width="16"',
+ 'tooltip' => $langs->trans('Bills').' '.$facturestatic->LibStatut(0,$data[$j]->fk_statut,0),
+ 'url' => DOL_URL_ROOT."/compta/facture/list.php?".$billurl."&mainmenu=accountancy&leftmenu=customers_bills",
+ 'logo' => 'bill',
+ );
+
+ $this->info_box_contents[$line][1] = array(
+ 'td' => '',
+ 'text' => $langs->trans("Bills")." ".$facturestatic->LibStatut(0,$data[$j]->fk_statut,0),
+ );
+
+ $this->info_box_contents[$line][2] = array(
+ 'td' => 'class="right"',
+ 'text' => $data[$j]->nb,
+ 'tooltip' => $langs->trans('Bills').' '.$facturestatic->LibStatut(0,$data[$j]->fk_statut,0),
+ 'url' => DOL_URL_ROOT."/compta/facture/list.php?".$billurl."&mainmenu=accountancy&leftmenu=customers_bills",
+ );
+ $totalnb += $data[$j]->nb;
+ $this->info_box_contents[$line][3] = array(
+ 'td' => 'class="right"',
+ 'text' => price($data[$j]->Mnttot,1,$langs,0,0,-1,$conf->currency),
+ );
+ $totalMnt += $objp->Mnttot;
+ $this->info_box_contents[$line][4] = array(
+ 'td' => 'align="right" width="18"',
+ 'text' => $facturestatic->LibStatut(0,$data[$j]->fk_statut,3),
+ );
+ $line++;
+ $j++;
+ }
+ if ($num==0)
+ $this->info_box_contents[$line][0] = array(
+ 'td' => 'align="center"',
+ 'text'=>$langs->trans("NoRecordedInvoices"),
+ );
+ } else {
+ $this->info_box_contents[0][0] = array(
+ 'td' => '',
+ 'maxlength'=>500, 'text' => ($db->error().' sql='.$sql),
+ );
+ }
}
// Add the sum in the bottom of the boxes
diff --git a/htdocs/core/class/html.formmail.class.php b/htdocs/core/class/html.formmail.class.php
index f2e861ea932..4ec9c91aa80 100644
--- a/htdocs/core/class/html.formmail.class.php
+++ b/htdocs/core/class/html.formmail.class.php
@@ -473,7 +473,7 @@ class FormMail extends Form
$out.= ' <'.$this->tomail.'>';
if ($this->withtofree)
{
- $out.= '
'.$langs->trans("or").' withto) :"").'" />';
+ $out.= '
'.$langs->trans("and").' withto) :"").'" />';
}
}
else
@@ -489,7 +489,7 @@ class FormMail extends Form
}
if (! empty($this->withto) && is_array($this->withto))
{
- if (! empty($this->withtofree)) $out.= " ".$langs->trans("or")." ";
+ if (! empty($this->withtofree)) $out.= " ".$langs->trans("and")."/".$langs->trans("or")." ";
// multiselect array convert html entities into options tags, even if we dont want this, so we encode them a second time
$tmparray = $this->withto;
foreach($tmparray as $key => $val)
@@ -522,7 +522,7 @@ class FormMail extends Form
$out.= 'withtocc) : (isset($_POST["sendtocc"])?$_POST["sendtocc"]:"") ).'" />';
if (! empty($this->withtocc) && is_array($this->withtocc))
{
- $out.= " ".$langs->trans("or")." ";
+ $out.= " ".$langs->trans("and")."/".$langs->trans("or")." ";
// multiselect array convert html entities into options tags, even if we dont want this, so we encode them a second time
$tmparray = $this->withtocc;
foreach($tmparray as $key => $val)
@@ -551,7 +551,7 @@ class FormMail extends Form
$out.= 'withtoccc) : (isset($_POST["sendtoccc"])?$_POST["sendtoccc"]:"") ).'" />';
if (! empty($this->withtoccc) && is_array($this->withtoccc))
{
- $out.= " ".$langs->trans("or")." ";
+ $out.= " ".$langs->trans("and")."/".$langs->trans("or")." ";
// multiselect array convert html entities into options tags, even if we dont want this, so we encode them a second time
$tmparray = $this->withtoccc;
foreach($tmparray as $key => $val)
diff --git a/htdocs/install/mysql/data/llx_c_currencies.sql b/htdocs/install/mysql/data/llx_c_currencies.sql
index d9b1390bb32..db1ba19aa6e 100644
--- a/htdocs/install/mysql/data/llx_c_currencies.sql
+++ b/htdocs/install/mysql/data/llx_c_currencies.sql
@@ -154,7 +154,7 @@ INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'VEF'
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'VND', '[8363]', 1, 'Viet Nam Dong');
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'XAF', NULL, 1, 'Communaute Financiere Africaine (BEAC) CFA Franc');
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'XOF', NULL, 1, 'Communaute Financiere Africaine (BCEAO) Franc');
-INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'XPF', NULL, 1, 'Franc pacifique (XPF)');
+INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'XPF', '[70]', 1, 'Franc CFP');
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'YER', '[65020]', 1, 'Yemen Rial');
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'ZWD', '[90,36]', 1, 'Zimbabwe Dollar');
diff --git a/htdocs/product/class/productcustomerprice.class.php b/htdocs/product/class/productcustomerprice.class.php
index 6c44b54cbe8..f8ca6366ddc 100644
--- a/htdocs/product/class/productcustomerprice.class.php
+++ b/htdocs/product/class/productcustomerprice.class.php
@@ -169,12 +169,12 @@ class Productcustomerprice extends CommonObject
$sql .= " " . (empty($this->price_min_ttc) ? '0' : "'" . $this->price_min_ttc . "'") . ",";
$sql .= " " . (! isset($this->price_base_type) ? 'NULL' : "'" . $this->db->escape($this->price_base_type) . "'") . ",";
$sql .= " ".($this->default_vat_code ? "'".$this->db->escape($this->default_vat_code)."'" : "null").",";
- $sql .= " " . (! isset($this->tva_tx) ? 'NULL' : "'" . $this->tva_tx . "'") . ",";
+ $sql .= " " . (! isset($this->tva_tx) ? 'NULL' : (empty($this->tva_tx)?0:$this->tva_tx)) . ",";
$sql .= " " . (! isset($this->recuperableonly) ? 'NULL' : "'" . $this->recuperableonly . "'") . ",";
$sql .= " " . (empty($this->localtax1_type) ? "'0'" : "'" . $this->localtax1_type . "'") . ",";
- $sql .= " " . (! isset($this->localtax1_tx) ? 'NULL' : "'" . $this->localtax1_tx . "'") . ",";
+ $sql .= " " . (! isset($this->localtax1_tx) ? 'NULL' : (empty($this->localtax1_tx)?0:$this->localtax1_tx)) . ",";
$sql .= " " . (empty($this->localtax2_type) ? "'0'" : "'" . $this->localtax2_type . "'") . ",";
- $sql .= " " . (! isset($this->localtax2_tx) ? 'NULL' : "'" . $this->localtax2_tx . "'") . ",";
+ $sql .= " " . (! isset($this->localtax2_tx) ? 'NULL' : (empty($this->localtax2_tx)?0:$this->localtax2_tx)) . ",";
$sql .= " " . $user->id . ",";
$sql .= " " . (! isset($this->import_key) ? 'NULL' : "'" . $this->db->escape($this->import_key) . "'") . "";
$sql .= ")";
@@ -656,10 +656,10 @@ class Productcustomerprice extends CommonObject
$sql .= " price_min_ttc=" . (isset($this->price_min_ttc) ? $this->price_min_ttc : "null") . ",";
$sql .= " price_base_type=" . (isset($this->price_base_type) ? "'" . $this->db->escape($this->price_base_type) . "'" : "null") . ",";
$sql .= " default_vat_code = ".($this->default_vat_code ? "'".$this->db->escape($this->default_vat_code)."'" : "null").",";
- $sql .= " tva_tx=" . (isset($this->tva_tx) ? $this->tva_tx : "null") . ",";
+ $sql .= " tva_tx=" . (isset($this->tva_tx) ? (empty($this->tva_tx)?0:$this->tva_tx) : "null") . ",";
$sql .= " recuperableonly=" . (isset($this->recuperableonly) ? $this->recuperableonly : "null") . ",";
- $sql .= " localtax1_tx=" . (isset($this->localtax1_tx) ? $this->localtax1_tx : "null") . ",";
- $sql .= " localtax2_tx=" . (isset($this->localtax2_tx) ? $this->localtax2_tx : "null") . ",";
+ $sql .= " localtax1_tx=" . (isset($this->localtax1_tx) ? (empty($this->localtax1_tx)?0:$this->localtax1_tx) : "null") . ",";
+ $sql .= " localtax2_tx=" . (isset($this->localtax2_tx) ? (empty($this->localtax2_tx)?0:$this->localtax2_tx) : "null") . ",";
$sql .= " localtax1_type=" . (! empty($this->localtax1_type) ? "'".$this->localtax1_type."'": "'0'") . ",";
$sql .= " localtax2_type=" . (! empty($this->localtax2_type) ? "'".$this->localtax2_type."'": "'0'") . ",";
$sql .= " fk_user=" . $user->id . ",";
diff --git a/htdocs/societe/card.php b/htdocs/societe/card.php
index 7f12893984e..53c5a1add14 100644
--- a/htdocs/societe/card.php
+++ b/htdocs/societe/card.php
@@ -168,12 +168,17 @@ if (empty($reshook))
}
// Merge extrafields
- foreach ($soc_origin->array_options as $key => $val)
+ if (is_array($soc_origin->array_options))
{
- if (empty($object->array_options[$key])) $object->array_options[$key] = $val;
+ foreach ($soc_origin->array_options as $key => $val)
+ {
+ if (empty($object->array_options[$key])) $object->array_options[$key] = $val;
+ }
}
// TODO Merge categories
+
+
$object->update($object->id, $user);
// Move links
diff --git a/htdocs/societe/list.php b/htdocs/societe/list.php
index da2b7612838..f77630b371a 100644
--- a/htdocs/societe/list.php
+++ b/htdocs/societe/list.php
@@ -601,28 +601,28 @@ if ($search_all)
// Filter on categories
$moreforfilter='';
-//if ($type == 'c' || $type == 'p')
-//{
+if (empty($type) || $type == 'c' || $type == 'p')
+{
if (! empty($conf->categorie->enabled))
{
require_once DOL_DOCUMENT_ROOT . '/categories/class/categorie.class.php';
$moreforfilter.='