From aa28079e789df1c306aa3702029fd2761b7a1f27 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Wed, 27 Mar 2019 12:42:31 +0100 Subject: [PATCH 01/12] NEW morphy value in member type add value: mor / phy / both(aka null) --- htdocs/adherents/type.php | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/htdocs/adherents/type.php b/htdocs/adherents/type.php index 72ea99ff18d..31ce9768de1 100644 --- a/htdocs/adherents/type.php +++ b/htdocs/adherents/type.php @@ -1,10 +1,11 @@ +/* Copyright (C) 2001-2002 Rodolphe Quiedeville * Copyright (C) 2003 Jean-Louis Bergamo * Copyright (C) 2004-2011 Laurent Destailleur * Copyright (C) 2005-2017 Regis Houssin * Copyright (C) 2013 Florian Henry * Copyright (C) 2015 Alexandre Spangaro + * Copyright (C) 2019 Thibault Foucart * * 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 @@ -57,6 +58,7 @@ if (! $sortorder) { $sortorder="DESC"; } if (! $sortfield) { $sortfield="d.lastname"; } $label=GETPOST("label", "alpha"); +$morphy=GETPOST("morphy","alpha"); $statut=GETPOST("statut", "int"); $subscription=GETPOST("subscription", "int"); $vote=GETPOST("vote", "int"); @@ -103,6 +105,7 @@ if ($cancel) { if ($action == 'add' && $user->rights->adherent->configurer) { $object->label = trim($label); + $object->morphy = trim($morphy); $object->statut = (int) $statut; $object->subscription = (int) $subscription; $object->note = trim($comment); @@ -157,6 +160,7 @@ if ($action == 'update' && $user->rights->adherent->configurer) $object->oldcopy = clone $object; $object->label = trim($label); + $object->morphy = trim($morphy); $object->statut = (int) $statut; $object->subscription = (int) $subscription; $object->note = trim($comment); @@ -215,7 +219,7 @@ if (! $rowid && $action != 'create' && $action != 'edit') { //dol_fiche_head(''); - $sql = "SELECT d.rowid, d.libelle as label, d.subscription, d.vote, d.statut"; + $sql = "SELECT d.rowid, d.libelle as label, d.subscription, d.vote, d.statut, d.morphy"; $sql.= " FROM ".MAIN_DB_PREFIX."adherent_type as d"; $sql.= " WHERE d.entity IN (".getEntity('member_type').")"; @@ -256,6 +260,7 @@ if (! $rowid && $action != 'create' && $action != 'edit') print ''; print ''.$langs->trans("Ref").''; print ''.$langs->trans("Label").''; + print ''.$langs->trans("Nature").''; print ''.$langs->trans("SubscriptionRequired").''; print ''.$langs->trans("VoteAllowed").''; print ''.$langs->trans("Status").''; @@ -277,6 +282,11 @@ if (! $rowid && $action != 'create' && $action != 'edit') //'.img_object($langs->trans("ShowType"),'group').' '.$objp->rowid.' print ''; print ''.dol_escape_htmltag($objp->label).''; + print ''; + if ($objp->morphy == 'phy') { print $langs->trans("Physical"); } + elseif ($objp->morphy == 'mor') { print $langs->trans("Moral"); } + else print $langs->trans("Physical & Morale"); + print ''; print ''.yn($objp->subscription).''; print ''.yn($objp->vote).''; print ''; @@ -330,6 +340,14 @@ if ($action == 'create') print ''.$langs->trans("Status").''; print $form->selectarray('statut', array('0'=>$langs->trans('ActivityCeased'),'1'=>$langs->trans('InActivity')), 1); print ''; + + // Morphy + $morphys[""] = $langs->trans("Physical & Morale"); + $morphys["phy"] = $langs->trans("Physical"); + $morphys["mor"] = $langs->trans("Morale"); + print ''.$langs->trans("Nature").''; + print $form->selectarray("morphy", $morphys, isset($_POST["morphy"])?$_POST["morphy"]:$object->morphy); + print ""; print ''.$langs->trans("SubscriptionRequired").''; print $form->selectyesno("subscription", 1, 1); @@ -411,6 +429,10 @@ if ($rowid > 0) print img_picto($langs->trans('TypeStatusInactive'), 'statut5').' '.$langs->trans("ActivityCeased"); } print ''; + + // Morphy + print ''.$langs->trans("Nature").''.$object->getmorphylib().''; + print ''; print ''.$langs->trans("SubscriptionRequired").''; print yn($object->subscription); @@ -751,6 +773,14 @@ if ($rowid > 0) print ''.$langs->trans("Status").''; print $form->selectarray('statut', array('0'=>$langs->trans('ActivityCeased'),'1'=>$langs->trans('InActivity')), $object->statut); print ''; + + // Morphy + $morphys[""] = $langs->trans("Physical & Morale"); + $morphys["phy"] = $langs->trans("Physical"); + $morphys["mor"] = $langs->trans("Morale"); + print ''.$langs->trans("Nature").''; + print $form->selectarray("morphy", $morphys, isset($_POST["morphy"])?$_POST["morphy"]:$object->morphy); + print ""; print ''.$langs->trans("SubscriptionRequired").''; print $form->selectyesno("subscription", $object->subscription, 1); From 2e9badd21db0ac0a096c7e796d6fda2cca29a813 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Wed, 27 Mar 2019 12:45:33 +0100 Subject: [PATCH 02/12] Update api_memberstypes.class.php --- htdocs/adherents/class/api_memberstypes.class.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/htdocs/adherents/class/api_memberstypes.class.php b/htdocs/adherents/class/api_memberstypes.class.php index abfaf84993d..519a0cecfb3 100644 --- a/htdocs/adherents/class/api_memberstypes.class.php +++ b/htdocs/adherents/class/api_memberstypes.class.php @@ -79,6 +79,7 @@ class MembersTypes extends DolibarrApi * * @param string $sortfield Sort field * @param string $sortorder Sort order + * @param string $nature Nature of type phy, mor or both (for only both not mor or phy only) * @param int $limit Limit for list * @param int $page Page number * @param string $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.libelle:like:'SO-%') and (t.subscription:=:'1')" @@ -86,7 +87,7 @@ class MembersTypes extends DolibarrApi * * @throws RestException */ - public function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $sqlfilters = '') + public function index($sortfield = "t.rowid", $sortorder = 'ASC', $nature = 'all', $limit = 100, $page = 0, $sqlfilters = '') { global $db, $conf; @@ -100,6 +101,15 @@ class MembersTypes extends DolibarrApi $sql.= " FROM ".MAIN_DB_PREFIX."adherent_type as t"; $sql.= ' WHERE t.entity IN ('.getEntity('member_type').')'; + // Nature + if ($nature != 'all') { + if ($nature == 'both') { + $sql.= ' AND t.morphy IS NULL '; + } else { + $sql.= ' AND (t.morphy IS NULL OR t.morphy = "'.$nature.'")'; + } + } + // Add sql filters if ($sqlfilters) { From fa302db84fff94f565c947a109e1ab27122b4bda Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Wed, 27 Mar 2019 12:48:18 +0100 Subject: [PATCH 03/12] Update adherent_type.class.php --- htdocs/adherents/class/adherent_type.class.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/htdocs/adherents/class/adherent_type.class.php b/htdocs/adherents/class/adherent_type.class.php index 65085caf42a..9c7fcfc5baa 100644 --- a/htdocs/adherents/class/adherent_type.class.php +++ b/htdocs/adherents/class/adherent_type.class.php @@ -1,8 +1,9 @@ +/* Copyright (C) 2002 Rodolphe Quiedeville * Copyright (C) 2004-2008 Laurent Destailleur * Copyright (C) 2009-2017 Regis Houssin * Copyright (C) 2016 Charlie Benke + * Copyright (C) 2019 Thibault Foucart * * 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 @@ -64,6 +65,11 @@ class AdherentType extends CommonObject * @var string Adherent type label */ public $label; + + /** + * @var string Adherent type nature + */ + public $morphy; /** * @var int Subsription required (0 or 1) @@ -184,6 +190,7 @@ class AdherentType extends CommonObject $sql.= "SET "; $sql.= "statut = ".$this->statut.","; $sql.= "libelle = '".$this->db->escape($this->label) ."',"; + $sql.= "morphy = '".$this->db->escape($this->morphy) ."',"; $sql.= "subscription = '".$this->db->escape($this->subscription)."',"; $sql.= "note = '".$this->db->escape($this->note)."',"; $sql.= "vote = ".(integer) $this->db->escape($this->vote).","; @@ -274,7 +281,7 @@ class AdherentType extends CommonObject */ public function fetch($rowid) { - $sql = "SELECT d.rowid, d.libelle as label, d.statut, d.subscription, d.mail_valid, d.note, d.vote"; + $sql = "SELECT d.rowid, d.libelle as label, d.morphy, d.statut, d.subscription, d.mail_valid, d.note, d.vote"; $sql .= " FROM ".MAIN_DB_PREFIX."adherent_type as d"; $sql .= " WHERE d.rowid = ".(int) $rowid; @@ -290,6 +297,7 @@ class AdherentType extends CommonObject $this->id = $obj->rowid; $this->ref = $obj->rowid; $this->label = $obj->label; + $this->morphy = $obj->morphy; $this->statut = $obj->statut; $this->subscription = $obj->subscription; $this->mail_valid = $obj->mail_valid; From 63ad6b779ace4dad5ef242c8cdf72df2877ecc41 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Wed, 27 Mar 2019 12:49:26 +0100 Subject: [PATCH 04/12] Update llx_adherent_type.sql --- htdocs/install/mysql/tables/llx_adherent_type.sql | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/install/mysql/tables/llx_adherent_type.sql b/htdocs/install/mysql/tables/llx_adherent_type.sql index 88867f9d2ad..084d0457941 100644 --- a/htdocs/install/mysql/tables/llx_adherent_type.sql +++ b/htdocs/install/mysql/tables/llx_adherent_type.sql @@ -29,6 +29,7 @@ create table llx_adherent_type tms timestamp, statut smallint NOT NULL DEFAULT 0, libelle varchar(50) NOT NULL, + morphy varchar(3) NOT NULL, subscription varchar(3) NOT NULL DEFAULT 'yes', vote varchar(3) NOT NULL DEFAULT 'yes', note text, From 3723da43ca6c509bcf83d8861360eac27df33871 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Wed, 27 Mar 2019 12:50:16 +0100 Subject: [PATCH 05/12] Update 9.0.0-10.0.0.sql --- htdocs/install/mysql/migration/9.0.0-10.0.0.sql | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/install/mysql/migration/9.0.0-10.0.0.sql b/htdocs/install/mysql/migration/9.0.0-10.0.0.sql index f75c618612d..5b16aa18151 100644 --- a/htdocs/install/mysql/migration/9.0.0-10.0.0.sql +++ b/htdocs/install/mysql/migration/9.0.0-10.0.0.sql @@ -84,6 +84,7 @@ create table llx_mailing_unsubscribe ALTER TABLE llx_mailing_unsubscribe ADD UNIQUE uk_mailing_unsubscribe(email, entity, unsubscribegroup); ALTER TABLE llx_adherent ADD gender VARCHAR(10); +ALTER TABLE llx_adherent_type ADD morphy VARCHAR(3); ALTER TABLE llx_subscription ADD fk_type integer; -- Add url_id into unique index of bank_url From 7a84cb1fc8e0153d486f5661c7c1f556c3ea013a Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Wed, 27 Mar 2019 14:03:37 +0100 Subject: [PATCH 06/12] Update type.php --- htdocs/adherents/type.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/adherents/type.php b/htdocs/adherents/type.php index 31ce9768de1..9a241c027ab 100644 --- a/htdocs/adherents/type.php +++ b/htdocs/adherents/type.php @@ -58,7 +58,7 @@ if (! $sortorder) { $sortorder="DESC"; } if (! $sortfield) { $sortfield="d.lastname"; } $label=GETPOST("label", "alpha"); -$morphy=GETPOST("morphy","alpha"); +$morphy=GETPOST("morphy", "alpha"); $statut=GETPOST("statut", "int"); $subscription=GETPOST("subscription", "int"); $vote=GETPOST("vote", "int"); From 22ea6fa0ab56e5bd7ac0ff9084938fac5e06e1f7 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Wed, 27 Mar 2019 14:04:13 +0100 Subject: [PATCH 07/12] Update api_memberstypes.class.php --- htdocs/adherents/class/api_memberstypes.class.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/adherents/class/api_memberstypes.class.php b/htdocs/adherents/class/api_memberstypes.class.php index 519a0cecfb3..c80a3c3fe6c 100644 --- a/htdocs/adherents/class/api_memberstypes.class.php +++ b/htdocs/adherents/class/api_memberstypes.class.php @@ -101,13 +101,13 @@ class MembersTypes extends DolibarrApi $sql.= " FROM ".MAIN_DB_PREFIX."adherent_type as t"; $sql.= ' WHERE t.entity IN ('.getEntity('member_type').')'; - // Nature + // Nature if ($nature != 'all') { if ($nature == 'both') { $sql.= ' AND t.morphy IS NULL '; } else { - $sql.= ' AND (t.morphy IS NULL OR t.morphy = "'.$nature.'")'; - } + $sql.= ' AND (t.morphy IS NULL OR t.morphy = "'.$nature.'")'; + } } // Add sql filters From 2da9cfbbe45404482dd208c32aa8c349acd7987c Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Mon, 1 Apr 2019 20:25:37 +0200 Subject: [PATCH 08/12] Update api_memberstypes.class.php --- htdocs/adherents/class/api_memberstypes.class.php | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/htdocs/adherents/class/api_memberstypes.class.php b/htdocs/adherents/class/api_memberstypes.class.php index c80a3c3fe6c..1b477fd567c 100644 --- a/htdocs/adherents/class/api_memberstypes.class.php +++ b/htdocs/adherents/class/api_memberstypes.class.php @@ -79,7 +79,6 @@ class MembersTypes extends DolibarrApi * * @param string $sortfield Sort field * @param string $sortorder Sort order - * @param string $nature Nature of type phy, mor or both (for only both not mor or phy only) * @param int $limit Limit for list * @param int $page Page number * @param string $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.libelle:like:'SO-%') and (t.subscription:=:'1')" @@ -87,7 +86,7 @@ class MembersTypes extends DolibarrApi * * @throws RestException */ - public function index($sortfield = "t.rowid", $sortorder = 'ASC', $nature = 'all', $limit = 100, $page = 0, $sqlfilters = '') + public function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $sqlfilters = '') { global $db, $conf; @@ -100,15 +99,6 @@ class MembersTypes extends DolibarrApi $sql = "SELECT t.rowid"; $sql.= " FROM ".MAIN_DB_PREFIX."adherent_type as t"; $sql.= ' WHERE t.entity IN ('.getEntity('member_type').')'; - - // Nature - if ($nature != 'all') { - if ($nature == 'both') { - $sql.= ' AND t.morphy IS NULL '; - } else { - $sql.= ' AND (t.morphy IS NULL OR t.morphy = "'.$nature.'")'; - } - } // Add sql filters if ($sqlfilters) From abd8dca3eac7f4e56cf845a8a78e4ce42fc2e6be Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Mon, 1 Apr 2019 20:26:04 +0200 Subject: [PATCH 09/12] Update api_memberstypes.class.php --- htdocs/adherents/class/api_memberstypes.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/adherents/class/api_memberstypes.class.php b/htdocs/adherents/class/api_memberstypes.class.php index 1b477fd567c..abfaf84993d 100644 --- a/htdocs/adherents/class/api_memberstypes.class.php +++ b/htdocs/adherents/class/api_memberstypes.class.php @@ -99,7 +99,7 @@ class MembersTypes extends DolibarrApi $sql = "SELECT t.rowid"; $sql.= " FROM ".MAIN_DB_PREFIX."adherent_type as t"; $sql.= ' WHERE t.entity IN ('.getEntity('member_type').')'; - + // Add sql filters if ($sqlfilters) { From 0583cf7804ab5261e7e0dc6af5ca1af652c4ae09 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Wed, 24 Apr 2019 15:44:57 +0200 Subject: [PATCH 10/12] Update adherent_type.class.php --- htdocs/adherents/class/adherent_type.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/adherents/class/adherent_type.class.php b/htdocs/adherents/class/adherent_type.class.php index 9c7fcfc5baa..df7c5c5558c 100644 --- a/htdocs/adherents/class/adherent_type.class.php +++ b/htdocs/adherents/class/adherent_type.class.php @@ -3,7 +3,7 @@ * Copyright (C) 2004-2008 Laurent Destailleur * Copyright (C) 2009-2017 Regis Houssin * Copyright (C) 2016 Charlie Benke - * Copyright (C) 2019 Thibault Foucart + * Copyright (C) 2018-2019 Thibault Foucart * * 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 From 6190e7813e6a435fe68f074ffd68b3ac1272103d Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Thu, 25 Apr 2019 09:14:51 +0200 Subject: [PATCH 11/12] Fix get morphy adherent type --- htdocs/adherents/class/adherent_type.class.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/htdocs/adherents/class/adherent_type.class.php b/htdocs/adherents/class/adherent_type.class.php index 936c33d6c0c..9c7d34ed569 100644 --- a/htdocs/adherents/class/adherent_type.class.php +++ b/htdocs/adherents/class/adherent_type.class.php @@ -410,6 +410,21 @@ class AdherentType extends CommonObject return -1; } } + + /** + * Return translated label by the nature of a adherent (physical or moral) + * + * @param string $morphy Nature of the adherent (physical or moral) + * @return string Label + */ + function getmorphylib($morphy='') + { + global $langs; + if ($morphy == 'phy') { return $langs->trans("Physical"); } + elseif ($morphy == 'mor') { return $langs->trans("Moral"); } + else return $langs->trans("Physical & Morale"); + //return $morphy; + } /** * Return clicable name (with picto eventually) From 65bb7d90318dd19b2eaa7b409f7ac888ec7c87d3 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Thu, 25 Apr 2019 09:37:07 +0200 Subject: [PATCH 12/12] Update adherent_type.class.php --- htdocs/adherents/class/adherent_type.class.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/adherents/class/adherent_type.class.php b/htdocs/adherents/class/adherent_type.class.php index 9c7d34ed569..c310bb18627 100644 --- a/htdocs/adherents/class/adherent_type.class.php +++ b/htdocs/adherents/class/adherent_type.class.php @@ -417,14 +417,14 @@ class AdherentType extends CommonObject * @param string $morphy Nature of the adherent (physical or moral) * @return string Label */ - function getmorphylib($morphy='') + public function getmorphylib($morphy = '') { global $langs; if ($morphy == 'phy') { return $langs->trans("Physical"); } - elseif ($morphy == 'mor') { return $langs->trans("Moral"); } + elseif ($morphy == 'mor') { return $langs->trans("Moral"); } else return $langs->trans("Physical & Morale"); //return $morphy; - } + } /** * Return clicable name (with picto eventually)