*
@@ -82,6 +82,7 @@ print load_fiche_titre($langs->trans("MembersArea"), $resultboxes['selectboxlist
$MembersValidated = array();
$MembersToValidate = array();
$MembersUpToDate = array();
+$MembersExcluded = array();
$MembersResiliated = array();
$AdherentType = array();
@@ -116,6 +117,9 @@ if ($result) {
if ($objp->statut == 1) {
$MembersValidated[$objp->rowid] = $objp->somme;
}
+ if ($objp->statut == -2) {
+ $MembersExcluded[$objp->rowid] = $objp->somme;
+ }
if ($objp->statut == 0) {
$MembersResiliated[$objp->rowid] = $objp->somme;
}
@@ -195,9 +199,10 @@ if ($conf->use_javascript_ajax) {
$SumToValidate = 0;
$SumValidated = 0;
-
$SumUpToDate = 0;
$SumResiliated = 0;
+ $SumExcluded = 0;
+
$total = 0;
$dataval = array();
$i = 0;
@@ -205,17 +210,21 @@ if ($conf->use_javascript_ajax) {
$dataval['draft'][] = array($i, isset($MembersToValidate[$key]) ? $MembersToValidate[$key] : 0);
$dataval['notuptodate'][] = array($i, isset($MembersValidated[$key]) ? $MembersValidated[$key] - (isset($MembersUpToDate[$key]) ? $MembersUpToDate[$key] : 0) : 0);
$dataval['uptodate'][] = array($i, isset($MembersUpToDate[$key]) ? $MembersUpToDate[$key] : 0);
+ $dataval['excluded'][] = array($i, isset($MembersExcluded[$key]) ? $MembersExcluded[$key] : 0);
$dataval['resiliated'][] = array($i, isset($MembersResiliated[$key]) ? $MembersResiliated[$key] : 0);
+
$SumToValidate += isset($MembersToValidate[$key]) ? $MembersToValidate[$key] : 0;
$SumValidated += isset($MembersValidated[$key]) ? $MembersValidated[$key] - (isset($MembersUpToDate[$key]) ? $MembersUpToDate[$key] : 0) : 0;
$SumUpToDate += isset($MembersUpToDate[$key]) ? $MembersUpToDate[$key] : 0;
+ $SumExcluded += isset($MembersExcluded[$key]) ? $MembersExcluded [$key] : 0;
$SumResiliated += isset($MembersResiliated[$key]) ? $MembersResiliated[$key] : 0;
$i++;
}
- $total = $SumToValidate + $SumValidated + $SumUpToDate + $SumResiliated;
+ $total = $SumToValidate + $SumValidated + $SumUpToDate + $SumExcluded + $SumResiliated;
$dataseries = array();
$dataseries[] = array($langs->transnoentitiesnoconv("OutOfDate"), round($SumValidated));
$dataseries[] = array($langs->transnoentitiesnoconv("UpToDate"), round($SumUpToDate));
+ $dataseries[] = array($langs->transnoentitiesnoconv("MembersStatusExcluded"), round($SumExcluded));
$dataseries[] = array($langs->transnoentitiesnoconv("MembersStatusResiliated"), round($SumResiliated));
$dataseries[] = array($langs->transnoentitiesnoconv("MembersStatusToValid"), round($SumToValidate));
@@ -224,7 +233,7 @@ if ($conf->use_javascript_ajax) {
include_once DOL_DOCUMENT_ROOT.'/core/class/dolgraph.class.php';
$dolgraph = new DolGraph();
$dolgraph->SetData($dataseries);
- $dolgraph->SetDataColor(array($badgeStatus1, $badgeStatus4, $badgeStatus6, '-'.$badgeStatus0));
+ $dolgraph->SetDataColor(array($badgeStatus1, $badgeStatus4, $badgeStatus8, $badgeStatus6, '-'.$badgeStatus0));
$dolgraph->setShowLegend(2);
$dolgraph->setShowPercent(1);
$dolgraph->SetType(array('pie'));
@@ -234,7 +243,7 @@ if ($conf->use_javascript_ajax) {
$boxgraph .= '';
$boxgraph .= '| '.$langs->trans("Total").' | ';
- $boxgraph .= $SumToValidate + $SumValidated + $SumUpToDate + $SumResiliated;
+ $boxgraph .= $SumToValidate + $SumValidated + $SumUpToDate + $SumExcluded + $SumResiliated;
$boxgraph .= ' |
';
$boxgraph .= '';
$boxgraph .= '';
@@ -251,250 +260,12 @@ print '';
print $searchbox;
print $boxgraph;
-// List of subscription by year
-$Total = array();
-$Number = array();
-$tot = 0;
-$numb = 0;
-
-$sql = "SELECT c.subscription, c.dateadh as dateh";
-$sql .= " FROM ".MAIN_DB_PREFIX."adherent as d, ".MAIN_DB_PREFIX."subscription as c";
-$sql .= " WHERE d.entity IN (".getEntity('adherent').")";
-$sql .= " AND d.rowid = c.fk_adherent";
-
-
-$result = $db->query($sql);
-if ($result) {
- $num = $db->num_rows($result);
- $i = 0;
- while ($i < $num) {
- $objp = $db->fetch_object($result);
- $year = dol_print_date($db->jdate($objp->dateh), "%Y");
- $Total[$year] = (isset($Total[$year]) ? $Total[$year] : 0) + $objp->subscription;
- $Number[$year] = (isset($Number[$year]) ? $Number[$year] : 0) + 1;
- $tot += $objp->subscription;
- $numb += 1;
- $i++;
- }
-}
-
-print '
';
-print '
';
-print '';
-print '| '.$langs->trans("Year").' | ';
-print ''.$langs->trans("Subscriptions").' | ';
-print ''.$langs->trans("AmountTotal").' | ';
-print ''.$langs->trans("AmountAverage").' | ';
-print "
\n";
-
-krsort($Total);
-$i = 0;
-foreach ($Total as $key=>$value) {
- if ($i >= 8) {
- print '';
- print "| ... | ";
- print " | ";
- print " | ";
- print " | ";
- print "
\n";
- break;
- }
- print '';
- print "| $key | ";
- print "".$Number[$key]." | ";
- print "".price($value)." | ";
- print "".price(price2num($value / $Number[$key], 'MT'))." | ";
- print "
\n";
- $i++;
-}
-
-// Total
-print '';
-print '| '.$langs->trans("Total").' | ';
-print "".$numb." | ";
-print ''.price($tot)." | ";
-print "".price(price2num($numb > 0 ? ($tot / $numb) : 0, 'MT'))." | ";
-print "
\n";
-print "
";
-
-print "
\n";
-
print $resultboxes['boxlista'];
print '
'."\n";
print '';
-/*
- * Latest modified members
- */
-$max = $conf->global->MAIN_SIZE_SHORTLIST_LIMIT;
-
-$sql = "SELECT a.rowid, a.statut as status, a.lastname, a.firstname, a.societe as company, a.fk_soc,";
-$sql .= " a.gender, a.email, a.photo, a.morphy,";
-$sql .= " a.tms as datem, a.datefin as date_end_subscription,";
-$sql .= " ta.rowid as typeid, ta.libelle as label, ta.subscription as need_subscription";
-$sql .= " FROM ".MAIN_DB_PREFIX."adherent as a, ".MAIN_DB_PREFIX."adherent_type as ta";
-$sql .= " WHERE a.entity IN (".getEntity('adherent').")";
-$sql .= " AND a.fk_adherent_type = ta.rowid";
-$sql .= $db->order("a.tms", "DESC");
-$sql .= $db->plimit($max, 0);
-
-$resql = $db->query($sql);
-if ($resql) {
- print '
';
- print '
';
- print '';
- print '| '.$langs->trans("LastMembersModified", $max).' |
';
-
- $num = $db->num_rows($resql);
- if ($num) {
- $i = 0;
- while ($i < $num) {
- $obj = $db->fetch_object($resql);
-
- $staticmember->id = $obj->rowid;
- $staticmember->ref = $obj->rowid;
- $staticmember->lastname = $obj->lastname;
- $staticmember->firstname = $obj->firstname;
- $staticmember->gender = $obj->gender;
- $staticmember->email = $obj->email;
- $staticmember->photo = $obj->photo;
- $staticmember->morphy = $obj->morphy;
- $staticmember->statut = $obj->status;
- $staticmember->need_subscription = $obj->need_subscription;
- $staticmember->datefin = $db->jdate($obj->date_end_subscription);
- if (!empty($obj->fk_soc)) {
- $staticmember->fk_soc = $obj->fk_soc;
- $staticmember->fetch_thirdparty();
- $staticmember->name = $staticmember->thirdparty->name;
- } else {
- $staticmember->name = $obj->company;
- }
-
- $statictype->id = $obj->typeid;
- $statictype->label = $obj->label;
- $statictype->subscription = $obj->need_subscription;
-
- print '';
- print '| '.$staticmember->getNomUrl(-1, 32).' | ';
- print ''.$statictype->getNomUrl(1, 32).' | ';
- print ''.dol_print_date($db->jdate($obj->datem), 'dayhour').' | ';
- print ''.$staticmember->getLibStatut(3).' | ';
- print '
';
- $i++;
- }
- }
- print "
";
- print "
";
-} else {
- dol_print_error($db);
-}
-
-
-/*
- * Last modified subscriptions
- */
-$max = $conf->global->MAIN_SIZE_SHORTLIST_LIMIT;
-
-$sql = "SELECT a.rowid, a.statut as status, a.lastname, a.firstname, a.societe as company, a.fk_soc,";
-$sql .= " a.gender, a.email, a.photo, a.morphy,";
-$sql .= " a.datefin as date_end_subscription,";
-$sql .= " ta.rowid as typeid, ta.libelle as label, ta.subscription as need_subscription,";
-$sql .= " c.rowid as cid, c.tms as datem, c.datec as datec, c.dateadh as date_start, c.datef as date_end, c.subscription";
-$sql .= " FROM ".MAIN_DB_PREFIX."adherent as a, ".MAIN_DB_PREFIX."adherent_type as ta, ".MAIN_DB_PREFIX."subscription as c";
-$sql .= " WHERE a.entity IN (".getEntity('adherent').")";
-$sql .= " AND a.fk_adherent_type = ta.rowid";
-$sql .= " AND c.fk_adherent = a.rowid";
-$sql .= $db->order("c.tms", "DESC");
-$sql .= $db->plimit($max, 0);
-
-$resql = $db->query($sql);
-if ($resql) {
- print '
';
- print '
';
- print '';
- print '| '.$langs->trans("LastSubscriptionsModified", $max).' |
';
-
- $num = $db->num_rows($resql);
- if ($num) {
- $i = 0;
- while ($i < $num) {
- $obj = $db->fetch_object($resql);
-
- $staticmember->id = $obj->rowid;
- $staticmember->ref = $obj->rowid;
- $staticmember->lastname = $obj->lastname;
- $staticmember->firstname = $obj->firstname;
- $staticmember->gender = $obj->gender;
- $staticmember->email = $obj->email;
- $staticmember->photo = $obj->photo;
- $staticmember->morphy = $obj->morphy;
- $staticmember->statut = $obj->status;
- $staticmember->need_subscription = $obj->need_subscription;
- $staticmember->datefin = $db->jdate($obj->date_end_subscription);
- if (!empty($obj->fk_soc)) {
- $staticmember->fk_soc = $obj->fk_soc;
- $staticmember->fetch_thirdparty();
- $staticmember->name = $staticmember->thirdparty->name;
- } else {
- $staticmember->name = $obj->company;
- }
-
- $subscriptionstatic->id = $obj->cid;
- $subscriptionstatic->ref = $obj->cid;
-
- print '';
- print '| '.$subscriptionstatic->getNomUrl(1).' | ';
- print ''.$staticmember->getNomUrl(-1, 32, 'subscription').' | ';
- print ''.get_date_range($db->jdate($obj->date_start), $db->jdate($obj->date_end)).' | ';
- print ''.price($obj->subscription).' | ';
- //print ''.$staticmember->LibStatut($obj->statut,($obj->subscription=='yes'?1:0),$db->jdate($obj->date_end_subscription),5).' | ';
- print ''.dol_print_date($db->jdate($obj->datem ? $obj->datem : $obj->datec), 'dayhour').' | ';
- print '
';
- $i++;
- }
- }
- print "
";
- print "
";
-} else {
- dol_print_error($db);
-}
-
-
-// Summary of members by type
-print '
';
-print '
';
-print '';
-print '| '.$langs->trans("MembersTypes").' | ';
-print ''.$langs->trans("MembersStatusToValid").' | ';
-print ''.$langs->trans("OutOfDate").' | ';
-print ''.$langs->trans("UpToDate").' | ';
-print ''.$langs->trans("MembersStatusResiliated").' | ';
-print "
\n";
-
-foreach ($AdherentType as $key => $adhtype) {
- print '';
- print '| '.$adhtype->getNomUrl(1, dol_size(32)).' | ';
- print ''.(isset($MembersToValidate[$key]) && $MembersToValidate[$key] > 0 ? $MembersToValidate[$key] : '').' '.$staticmember->LibStatut(-1, $adhtype->subscription, 0, 3).' | ';
- print ''.(isset($MembersValidated[$key]) && ($MembersValidated[$key] - (isset($MembersUpToDate[$key]) ? $MembersUpToDate[$key] : 0) > 0) ? $MembersValidated[$key] - (isset($MembersUpToDate[$key]) ? $MembersUpToDate[$key] : 0) : '').' '.$staticmember->LibStatut(1, $adhtype->subscription, 0, 3).' | ';
- print ''.(isset($MembersUpToDate[$key]) && $MembersUpToDate[$key] > 0 ? $MembersUpToDate[$key] : '').' '.$staticmember->LibStatut(1, $adhtype->subscription, $now, 3).' | ';
- print ''.(isset($MembersResiliated[$key]) && $MembersResiliated[$key] > 0 ? $MembersResiliated[$key] : '').' '.$staticmember->LibStatut(0, $adhtype->subscription, 0, 3).' | ';
- print "
\n";
-}
-print '';
-print '| '.$langs->trans("Total").' | ';
-print ''.$SumToValidate.' '.$staticmember->LibStatut(-1, $adhtype->subscription, 0, 3).' | ';
-print ''.$SumValidated.' '.$staticmember->LibStatut(1, $adhtype->subscription, 0, 3).' | ';
-print ''.$SumUpToDate.' '.$staticmember->LibStatut(1, $adhtype->subscription, $now, 3).' | ';
-print ''.$SumResiliated.' '.$staticmember->LibStatut(0, $adhtype->subscription, 0, 3).' | ';
-print '
';
-
-print "
\n";
-print "
";
-
-print '
';
-
print $resultboxes['boxlistb'];
print '
'."\n";
diff --git a/htdocs/adherents/list.php b/htdocs/adherents/list.php
index cebd634fa56..a52d551d83e 100644
--- a/htdocs/adherents/list.php
+++ b/htdocs/adherents/list.php
@@ -76,7 +76,7 @@ if ($statut != '') {
$sall = trim((GETPOST('search_all', 'alphanohtml') != '') ?GETPOST('search_all', 'alphanohtml') : GETPOST('sall', 'alphanohtml'));
-if ($search_status < -1) {
+if ($search_status < -2) {
$search_status = '';
}
@@ -452,6 +452,9 @@ if (GETPOSTISSET("search_status")) {
if ($search_status == '0') {
$titre = $langs->trans("MembersListResiliated");
}
+ if ($search_status == '-2') {
+ $titre = $langs->trans("MembersListExcluded");
+ }
} elseif ($action == 'search') {
$titre = $langs->trans("MembersListQualified");
}
@@ -750,9 +753,10 @@ if (!empty($arrayfields['d.statut']['checked'])) {
$liststatus = array(
'-1'=>$langs->trans("Draft"),
'1'=>$langs->trans("Validated"),
- '0'=>$langs->trans("Resiliated")
+ '0'=>$langs->trans("Resiliated"),
+ '-2'=>$langs->trans("Excluded")
);
- print $form->selectarray('search_status', $liststatus, $search_status, -2);
+ print $form->selectarray('search_status', $liststatus, $search_status, -3);
print '';
}
// Action column
diff --git a/htdocs/adherents/subscription.php b/htdocs/adherents/subscription.php
index f9dd77debac..8e1b9093e77 100644
--- a/htdocs/adherents/subscription.php
+++ b/htdocs/adherents/subscription.php
@@ -645,7 +645,7 @@ if ($rowid > 0) {
* Action bar
*/
- // Button to create a new subscription if member no draft neither resiliated
+ // Button to create a new subscription if member no draft (-1) neither resiliated (0) neither excluded (-2)
if ($user->rights->adherent->cotisation->creer) {
if ($action != 'addsubscription' && $action != 'create_thirdparty') {
print '';
diff --git a/htdocs/adherents/type.php b/htdocs/adherents/type.php
index 25ee4a8e39f..25c44baa7db 100644
--- a/htdocs/adherents/type.php
+++ b/htdocs/adherents/type.php
@@ -566,6 +566,8 @@ if ($rowid > 0) {
$titre = $langs->trans("MembersListNotUpToDate");
} elseif ($status == '0') {
$titre = $langs->trans("MembersListResiliated");
+ } elseif ($status == '-2') {
+ $titre = $langs->trans("MembersListExcluded");
}
} elseif ($action == 'search') {
$titre = $langs->trans("MembersListQualified");
diff --git a/htdocs/install/mysql/data/llx_20_c_departements.sql b/htdocs/install/mysql/data/llx_20_c_departements.sql
index d85a0b0b52e..a7a38316360 100644
--- a/htdocs/install/mysql/data/llx_20_c_departements.sql
+++ b/htdocs/install/mysql/data/llx_20_c_departements.sql
@@ -97,6 +97,17 @@ INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc
INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES (34000, 'AD-008', 'AD700', NULL, NULL, 'Escaldes-Engordany');
+-- Australia States & Territories (id country=28)
+insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (2801,'NSW','',1,'','New South Wales');
+insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (2801,'VIC','',1,'','Victoria');
+insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (2801,'QLD','',1,'','Queensland');
+insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (2801,'SA' ,'',1,'','South Australia');
+insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (2801,'ACT','',1,'','Australia Capital Territory');
+insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (2801,'TAS','',1,'','Tasmania');
+insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (2801,'WA' ,'',1,'','Western Australia');
+insert into llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) values (2801,'NT' ,'',1,'','Northern Territory');
+
+
-- Austria States / Österreich Bundesländer (id country=41)
INSERT INTO llx_c_departements (fk_region, code_departement, ncc, nom, active) VALUES (4101,'B','BURGENLAND','Burgenland',1);
INSERT INTO llx_c_departements (fk_region, code_departement, ncc, nom, active) VALUES (4101,'K','KAERNTEN','Kärnten',1);
@@ -564,15 +575,6 @@ INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, nc
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('111', 5209, '', 0, '', 'Nicolás Suárez', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('112', 5209, '', 0, '', 'General Federico Román', 1);
--- Provinces Australia (id country=28)
-insert into llx_c_departements (fk_region, code_departement,cheflieu,tncc,ncc,nom) values (2801,'NSW','',1,'','New South Wales');
-insert into llx_c_departements (fk_region, code_departement,cheflieu,tncc,ncc,nom) values (2801,'VIC','',1,'','Victoria');
-insert into llx_c_departements (fk_region, code_departement,cheflieu,tncc,ncc,nom) values (2801,'QLD','',1,'','Queensland');
-insert into llx_c_departements (fk_region, code_departement,cheflieu,tncc,ncc,nom) values (2801,'SA' ,'',1,'','South Australia');
-insert into llx_c_departements (fk_region, code_departement,cheflieu,tncc,ncc,nom) values (2801,'ACT','',1,'','Australia Capital Territory');
-insert into llx_c_departements (fk_region, code_departement,cheflieu,tncc,ncc,nom) values (2801,'TAS','',1,'','Tasmania');
-insert into llx_c_departements (fk_region, code_departement,cheflieu,tncc,ncc,nom) values (2801,'WA' ,'',1,'','Western Australia');
-insert into llx_c_departements (fk_region, code_departement,cheflieu,tncc,ncc,nom) values (2801,'NT' ,'',1,'','Northern Territory');
-- Provinces Canada (id country=14)
insert into llx_c_departements (fk_region, code_departement,cheflieu,tncc,ncc,nom) values (1401,'ON','',1,'','Ontario');
@@ -1666,3 +1668,4 @@ INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, nom
INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, nom) VALUES (21301, 'TW-KMN', 'KMN', NULL, '金門縣');
INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, nom) VALUES (21301, 'TW-LNN', 'LNN', NULL, '連江縣');
+
diff --git a/htdocs/langs/en_US/members.lang b/htdocs/langs/en_US/members.lang
index 5812248b129..31d0790b331 100644
--- a/htdocs/langs/en_US/members.lang
+++ b/htdocs/langs/en_US/members.lang
@@ -21,10 +21,12 @@ MembersListToValid=List of draft members (to be validated)
MembersListValid=List of valid members
MembersListUpToDate=List of valid members with up-to-date subscription
MembersListNotUpToDate=List of valid members with out-of-date subscription
+MembersListExcluded=List of excluded members
MembersListResiliated=List of terminated members
MembersListQualified=List of qualified members
MenuMembersToValidate=Draft members
MenuMembersValidated=Validated members
+MenuMembersExcluded=Excluded members
MenuMembersResiliated=Terminated members
MembersWithSubscriptionToReceive=Members with subscription to receive
MembersWithSubscriptionToReceiveShort=Subscription to receive
@@ -47,9 +49,12 @@ MemberStatusActiveLate=Subscription expired
MemberStatusActiveLateShort=Expired
MemberStatusPaid=Subscription up to date
MemberStatusPaidShort=Up to date
+MemberStatusExcluded=Excluded member
+MemberStatusExcludedShort=Excluded
MemberStatusResiliated=Terminated member
MemberStatusResiliatedShort=Terminated
MembersStatusToValid=Draft members
+MembersStatusExcluded=Excluded members
MembersStatusResiliated=Terminated members
MemberStatusNoSubscription=Validated (no subscription needed)
MemberStatusNoSubscriptionShort=Validated
@@ -82,6 +87,8 @@ Physical=Physical
Moral=Moral
MorAndPhy=Moral and Physical
Reenable=Reenable
+ExcludeMember=Exclude a member
+ConfirmExcludeMember=Are you sure you want to exclude this member ?
ResiliateMember=Terminate a member
ConfirmResiliateMember=Are you sure you want to terminate this member?
DeleteMember=Delete a member