Changes

m
Line 3: Line 3:     
This module can be used to receive request by a company to be a preferred partner. Validate, follow and cancel partnership.
 
This module can be used to receive request by a company to be a preferred partner. Validate, follow and cancel partnership.
 +
The module is generic and it will be possible to use it for a lot of use case.
 +
This module will be used for example by the foundation for its Preferred Partner management program.
      −
= Module Partnership management =
+
=Module Partnership management=
 
The module name and path will be "partnership".
 
The module name and path will be "partnership".
    
The module add a new table llx_partnership
 
The module add a new table llx_partnership
   −
A public page must exist into directory htdocs/public/partnership to present a form to ask the information of company. From setup page of module partnership, we can enable/disable this public page.
+
The module also add a new tab "Partnership" on the record of a thirdparty or a member (depending on setup). So a logged user can make a request and see its partnership status from its own thirdparty or member record.
On the public page to request partnership, we ask information about thirdparty.
  −
When submitting form, we create a third party table and a linked record into table llx_societe_partnership.
     −
The module also add a table "Partnership" on the record of a member. So a logged user can make a request and see its partnership status from this tab.
+
A batch can disable the status of a partnership if partnership is based on members and if subscription has expired since x days.
   −
= Setup of module =
+
=Setup of module=
 
We choose if the partnership is for a 'thirdparty' or for a 'member' (option named PARTNERSHIP_IS_MANAGED_FOR).
 
We choose if the partnership is for a 'thirdparty' or for a 'member' (option named PARTNERSHIP_IS_MANAGED_FOR).
   −
= New object Partnership table =
+
=New object Partnership table=
    
Properties:
 
Properties:
   −
* rowid autoincrement
+
*rowid autoincrement
* fk_soc            ID of thirdparty
+
*fk_soc            ID of thirdparty
* fk_member        ID of member
+
*fk_member        ID of member
* date_partnership_start
+
*date_partnership_start
* date_partnership_end
+
*date_partnership_end
* status            Partnershio partnership  (0=draft, 1=accepted, 2=refused, 9=canceled)
+
*status            Partnership status (0=draft, 1=accepted, 2=refused, 9=canceled)
* date_creat
+
*date_creat
* fk_user_create
+
*fk_user_create
* tms
+
*tms
* fk_user_update
+
*fk_user_update
* note_private
+
*note_private
* note_publice
+
*note_publice
* reason_decline
+
*count_last_url_check_error (see later)
 +
*reason_decline_or_cancel
   −
Allow extrafields. (For example, for the Dolibarr foundation: "Github user", "Website")
+
Allow extrafields. (For example, for the Dolibarr foundation: "Github user")
    +
=Menus=
 +
 +
*Enabling the module will also add menu entries into thirdparty menu (if PARTNERSHIP_IS_MANAGED_FOR = 'thirdparty') or into member menu (if PARTNERSHIP_IS_MANAGED_FOR = 'member'):
   −
= Menus =
  −
* Enabling the module will also add menu entries into thirdparty menu (if PARTNERSHIP_IS_MANAGED_FOR = 'thirdparty') or into member menu (if PARTNERSHIP_IS_MANAGED_FOR = 'member'):
   
  - Partnership
 
  - Partnership
 
     - List
 
     - List
 
     - New
 
     - New
   −
= On the member Tab partnership on a member and thirdparty =
+
=On the member Tab partnership on a member and thirdparty=
    
Show a form (on record thirdparty if PARTNERSHIP_IS_MANAGED_FOR = 'thirdparty') or on record of member (if PARTNERSHIP_IS_MANAGED_FOR = 'member')
 
Show a form (on record thirdparty if PARTNERSHIP_IS_MANAGED_FOR = 'thirdparty') or on record of member (if PARTNERSHIP_IS_MANAGED_FOR = 'member')
 
to request to be a partner if there is no record into table llx_partnership yet.
 
to request to be a partner if there is no record into table llx_partnership yet.
   −
If there is already a record, show the status and information of membership.
+
If there is already record, show the status and information of memberships.
On this tab, e should also have a button "Cancel"
+
On this tab, we should also have a button "Manage Partnership"
 +
 
 +
=Card partnership=
 +
 
 +
On the page to show a partnership we have a button
 +
 
 +
*Send email using templates. The module must add 2 templates of email for type 'partnership': On to say partnership is refused, one to say partnership is accepted.
 +
*Validate
 +
*Accept -> Set to status ACCEPTED.
 +
*Refuse -> Ask a reason and set to status REFUSED and fill the "reason_decline" field.
 +
*Cancel
 +
*Delete
 +
 
 +
=On the list of partnership=
    +
If PARTNERSHIP_IS_MANAGED_FOR = 'member', we add a column on list of partnership to show the date of membership expiration. We must be able to sort on this date.
   −
= Card partnership
+
We must have the mass action "Send email"
   −
On the page to show a partnership we have a button
+
We must have the mass action "Cancel"
* Send email using templates. The module must add 2 templates of email for type 'partnership': On to say partnership is refused, one to say partnership is accepted.
+
 
* Accept -> Set to status ACCEPTED.
+
We must have the mass action "Delete"
* Refuse -> Ask a reason and set to status REFUSED and fill the "reason_decline" field.
+
 
* Cancel
+
=Enhance module Member=
* Delete
+
 
 +
== Add property "url" on the member card==
 +
Add this property on table llx_adherent, on screen and can edit it.
   −
= On the list of partnership
+
== Add option in member module setup to "Create an external user login for each new member subscription validated" ==
 +
On a new member subscription (module member), we currently send an email with invoice automatically after receiving the online payment.
   −
If PARTNERSHIP_IS_MANAGED_FOR = 'member'n add a column on list of partnership to show the date of membership expiration.
+
We must also create an external account for each new member and have the login and pass of the external account included into email (A substitution key __MEMBER_USER_LOGIN_INFORMATION__ can be used into email template).
   −
Add a mass action "Send email"
+
Add a mass action "Create external user" on the member list.
   −
Add a mass action "Cancel"
+
=Permissions=
 +
Permission supplied by module "Partnership"
    +
*read (Read partnerships)
 +
*create/modify (Create/modify partnerships)
 +
*delete (Delete partnerships)
   −
= Permissions =
+
=Batch=
* read (Read partnership table)
+
==Cancel Partnership For Expired Members==
* create/modify (Create/modify partnership)
+
We must have a cron job that cancel status of partnership when subscription is expired + x days  (x is a parameter of the cron job). This cron task must be supplied by module.
* delete (Delete a partnership)
+
If option 'PARTNERSHIP_IS_MANAGED_FOR' = 'thirdparty', this cron job does nothing.
    +
==Warning of partnership if Dolibarr backlink not found on partner website==
 +
Batch not enabled by default. Every week, check that website contains a link to dolibarr.(org/fr/es) Web site. The url to check is a regex set as a parameter of module. If regex not found into the website of partner, batch increase a counter check fail (field count_last_url_check_error into table llx_partnership), if found, reset value to 0. If counter > 2, send email to partner (template email mut be defined in setup). If counter > 4, set status of partnership to canceled (set also reason of partnership cancelation).
   −
= Note =
+
=Note=
Module and new managed objects must be generated with modulebuilder.
+
{{TemplateProcessOfDevelopmentBySubContract}}