Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RFC][WMS] Service definition policies #369

Closed
jgrandguillaume opened this issue Sep 3, 2019 · 7 comments
Closed

[RFC][WMS] Service definition policies #369

jgrandguillaume opened this issue Sep 3, 2019 · 7 comments
Assignees

Comments

@jgrandguillaume
Copy link
Member

jgrandguillaume commented Sep 3, 2019

Source : https://docs.google.com/document/d/1mct6bFFWJqW01wGFcjc-uQNEjyCxvh6Y9TuFdRhe-b0/edit#
Part of: OCA/wms#1

This RCF to propose a POC implementation for the following

  • Be able to manage the piloting of several parameters related to the fulfillment of a sale order in terms of delays, packing, delivery, invoicing, etc.
  • The configuration of the parameters must be centralized and the system must provide a set of default values with reasonable values
  • The parameters can be tuned on a per customer basis. The parameters of a customer can be tuned on a given quotation

Req. 1: Service Definition Policies

As a sales manager (1) I am able to define standard Service Definition Policies.

The policy is defined with a Service Definition Policy Type. E.g.

Standard Next Day
Standard Weekly Routine
Standard single dated...

This policy defines values for a number of Service Definition Parameters, among possible Service Definition Parameter Values (linked to a parameter).

Different addons modules can define new Service Definition
Parameters, and the related values. A module can also add a Service Definition Parameter Value for a Parameter defined in another module.

Req. 2: Service Definition of a Partner

As a sales, when I create a new customer, he is associated to the default policy for each policy type in the system.As a sales, I am able to set a default Service Definition Policy Type to a customer. This policy is automatically set on all the Delivery Addresses of the customer (and used as default when a new delivery address is created). The default Policy of a given delivery address can be changed.
The default service definition policy field is mandatory for customers which are not contacts, and for delivery address contacts of a customer
When the type of a contact is changed to something else than Delivery Address, any Service Definition Policy is removed

Req. 3: Service Definition of a sale order

As a sale, when I set the delivery address of a sale order, I need the service definition policy of the sale order to be set to the policy of the delivery address. I can change it later manually.

Once the sale order is confirmed, the service definition policy is no longer editable

Req. 4: Service Definition Policy customization

As a sales, I am able to customize the Service Definition Policies of a sale order or of a partner.

The customization is made through a wizard which displays the Parameters and Values of the current Policy, and allows changing them, checking for rules. When the wizard is saved, a new Service Definition Policy is created and linked to the Partner / Sale Order. This Policy is flagged as "custom" and is not selectable for another partner for instance.

@bealdav
Copy link
Member

bealdav commented Sep 5, 2019

Hi all,

As indicated on mailing list, I propose here to reuse for this purpose

https://github.com/OCA/contract/tree/12.0/agreement
https://github.com/OCA/contract/tree/12.0/agreement_sale

Agreement object is completely versatile

You may move these 2 modules in a new repo if you want.

@jgrandguillaume jgrandguillaume transferred this issue from OCA/stock-logistics-warehouse Sep 5, 2019
@max3903
Copy link
Member

max3903 commented Sep 5, 2019

@jgrandguillaume

I haven't taken the time to review all your documentation but just as an FYI, we use product.template to host service definition information: i.e we defined a product "Internet service (Fixed IP)" with a download and upload speed.

When this service is sold to a customer, usually through a contract/agreement (same object mentioned by David), the service generates a service profile where we store the specific IP address for that customer. You can see the service profile as the counterpart of the serial number of a serialized inventory product.

More to come in my talk at OCA Days in LLN.

@gurneyalex
Copy link
Member

@bealdav @max3903 I find it not intuitive at all how to use the various modules. Was the convergence evoked in #192 done? I guess so...

@max3903 the agreement_serviceprofile could use some documentation... How it is meant to be used is totally unclear (and in it's current status it is broken when used with agreement_legal_sale, see #370). Same for agreement_legal and agreement_legal_sale

@bealdav
Copy link
Member

bealdav commented Sep 5, 2019

@gurneyalex you can call me if you want

@bealdav
Copy link
Member

bealdav commented Sep 5, 2019

As I can see things, it seems base module agreement and agreement_sale are not confusing because they are really simple.

But I join Alex to ask why is there a m2o towards agreement.serviceprofile

serviceprofile_id = fields.Many2one('agreement.serviceprofile',

in a module named agreement_stock.

In agreement_stock, purpose is clean: stock and agreement (between parts).
Service here is not generic and seems serve use case not only about agreement and stock.
Probably there is an explanation cc @max3903

EDIT: the same in https://github.com/OCA/contract/blob/12.0/agreement_mrp/models/mrp.py
What is the link between mrp and service_profile if I don't do service ?

@max3903
Copy link
Member

max3903 commented Sep 5, 2019

Let's not hijack @jgrandguillaume issue... :)

I have a talk at OCA Days in LLN regarding agreement_legal. You are all invited to come and shoot me...

@jgrandguillaume
Copy link
Member Author

Closing this one to clean up the RFC, we're now in pilot phase

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants