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}}