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

[FR] Purchase Order Approvals #3501

Open
1 of 2 tasks
cpattersonic2 opened this issue Aug 8, 2022 · 36 comments · May be fixed by #6989
Open
1 of 2 tasks

[FR] Purchase Order Approvals #3501

cpattersonic2 opened this issue Aug 8, 2022 · 36 comments · May be fixed by #6989
Labels
enhancement This is an suggested enhancement or new feature inactive Indicates lack of activity order Related to purchase orders / sales orders plugin Plugin ecosystem
Milestone

Comments

@cpattersonic2
Copy link

Please verify that this feature request has NOT been suggested before.

  • I checked and didn't find similar feature request

Problem statement

We are excited to move from partkeepr to inventree at our small company, and really appreciate the work you have put into this piece of software. However, in our line of work a purchase must always have been approved by the Project Lead.

Suggested solution

Would it be possible to add an approver field to the purchase order, and then show a time stamp when the approver/user has approved the PO for purchase. (e-mailing users when there is an outstanding approval would be cool, and when approved). Would this need to be done in the inventree core, or could this be added by us as a plugin?

Thanks for any feedback or help!

Describe alternatives you've considered

We plan on moving over to inventree anyway, but we currently dislike our current purchasing software and would love to just use inventree for the whole 9 yards. Having inventory and purchasing integrated sounds like the bees knees.

Examples of other systems

No response

Do you want to develop this?

  • I want to develop this.
@cpattersonic2 cpattersonic2 added enhancement This is an suggested enhancement or new feature triage:not-checked Item was not checked by the core team labels Aug 8, 2022
@matmair matmair added order Related to purchase orders / sales orders plugin Plugin ecosystem and removed triage:not-checked Item was not checked by the core team labels Aug 8, 2022
@matmair
Copy link
Member

matmair commented Aug 8, 2022

@cpattersonic2 invenTree is not a purchasing software. We do not handle any form of accounting so you will still need a solution for that even if this FR is implemented.
I would not hold my breath for this to be implemented in core as there are multiple things that would need to be adjusted and the core team is small.
This should work well as a plugin though.

@SchrodingersGat SchrodingersGat added help wanted Assistance required roadmap This is a roadmap feature with no immediate plans for implementation labels Aug 9, 2022
@SchrodingersGat
Copy link
Member

@cpattersonic2 I can see the value here, although it would not be for everyone. if it was to be implemented as a first class feature rather than a plugin it would need (at minimum):

  • Settings which control whether PO's require approval (default OFF)
  • Add model fields to purchase order to indicate who approved (and when)
  • User interface additions (i.e. display approval, buttons to approve, etc)
  • Update API to allow approval / revoke approval of order
  • Generation of notifications based on approval
  • Unit testing

So this is a fair amount of work. If it is something you are keen to pursue, and don't want to develop yourself, you can reach out to us to sponsor development of this feature. Otherwise it will probably sit on the pile for some time (there's a lot of outstanding stuff).

@cpattersonic2
Copy link
Author

cpattersonic2 commented Aug 9, 2022 via email

@SchrodingersGat
Copy link
Member

@cpattersonic2 for such requests please send an email to support (at) inventree (dot) org

@matmair
Copy link
Member

matmair commented Aug 9, 2022

@SchrodingersGat If this is implemented I would suggest to directly build it as a new app so that aprovals are first-class citizens (at first probably just with API endpoints). That gives us the option to:

  1. extend them with plugin mixin
  2. use metadata from the start (app plugins)
  3. build multi-stage approvals
  4. build ACLs based on approver
  5. use approvals for all orders

@github-actions
Copy link
Contributor

github-actions bot commented Jan 9, 2023

This issue seems stale. Please react to show this is still important.

@github-actions github-actions bot added the inactive Indicates lack of activity label Jan 9, 2023
@SchrodingersGat
Copy link
Member

Not stale

@github-actions github-actions bot removed the inactive Indicates lack of activity label Jan 10, 2023
@cpattersonic2
Copy link
Author

@SchrodingersGat thank you for bumping this. End of the year contracts had us busy, and this had fallen off the task list. I'll try to get the PO out this week for the feature add. Awesome 0.9 stable release!

@cpattersonic2
Copy link
Author

@SchrodingersGat I think the accountants went through to pay the sponsorship. Please let me know if you need any other information from us. Thanks for the awesome work on Invetree. Kicad 7.0 with database integration will be an interesting choice on whether to hitch Inventree's wagon to Kicad so to speak.

@matmair
Copy link
Member

matmair commented Jan 13, 2023

@cpattersonic2 we are already discussing and working on KiCad 7.0 integration - see #4133. From what I have now it seems like the user will have to do a bit of setup to get it running (mapping parameters in InvenTree to KiCad footprint fields).

Regarding this FR: Do you have any other requirements/wishes you would like to add? We already need to add a fair bit of models and business logic so it might be easier to add it from the beginning / consider it from the start.

@SchrodingersGat I own a code base that has a lot of the logic and models required for this already. It might be too complex though as it includes:

  • dynamic approval requirements (min number of approvers, max number of deniers, quorum, user attribute-based rules)
  • nearly unlimited number of approvers per case
  • revoke removal
  • time limits on cases
    Would that be overkill or should I drop the code in a PR? I will need to clean the code of some references and update it to Django 3 so asking before I invest time.

@github-actions
Copy link
Contributor

This issue seems stale. Please react to show this is still important.

@github-actions github-actions bot added the inactive Indicates lack of activity label Apr 15, 2023
@SchrodingersGat
Copy link
Member

Not stale

@github-actions github-actions bot removed the inactive Indicates lack of activity label Apr 16, 2023
@matmair matmair moved this from In Progress to Todo in User Interface Redesign Oct 10, 2023
@matmair
Copy link
Member

matmair commented Oct 10, 2023

There seems to be no interest in this feature, I will shift it to a private plugin

@SchrodingersGat SchrodingersGat modified the milestones: 0.13.0, horizon Oct 17, 2023
@jacobfelknor
Copy link
Contributor

@matmair

I am at a small company who is also interested in this approval feature. Is there somewhere I can find the "private plugin" you mentioned? Should I try it out straight from #5095 ?

Let me know your recommended approach here

@matmair matmair removed this from the horizon milestone Nov 13, 2023
@matmair matmair removed the roadmap This is a roadmap feature with no immediate plans for implementation label Nov 13, 2023
@matmair
Copy link
Member

matmair commented Nov 13, 2023

The PR in its public state is 2 months old and not functioning I dought it will be helpful without deep knolwedge of the code base.
I have shifted development of this into a private plugin registry that is only available to select communit members for beta testing, I am not searching for testers right now.

@jacobfelknor
Copy link
Contributor

Fair enough... I've been tasked to solve this problem for our needs regardless. In an earlier message, you said approvals may have the following features

  • dynamic approval requirements (min number of approvers, max number of deniers, quorum, user attribute-based rules)
  • nearly unlimited number of approvers per case
  • revoke removal

This sounds exactly like what we would need. Is this something that I should be holding my breath for, or should I start exploring other custom options?

I will note, after talking with some higher-ups we could potentially sponsor this work. I've had funding allocated to me to solve this, but an officially supported way of doing it would be our preference if possible.

@matmair
Copy link
Member

matmair commented Nov 13, 2023

I have no plans to upstream my code and my current developments in this regard only run on a custom fork that is optimized for my deployment scenarios.
Maybe mail the maintainer ([email protected]) with what exactly you need and he might be able to help you. You can CC me if you want ([email protected]).

@JackFGS
Copy link

JackFGS commented Nov 14, 2023

I also work at a small company and have been keeping an eye on this feature for a while. Will this be re-added to the roadmap at all?

@LavissaWoW
Copy link
Contributor

In order to migrate our ancient order system to using InvenTree PO's, I was banking a bit on this.
I'm happy to take over implementing this, at least as an initial MVP.

What would be people's minimum requirements for such an approval stage for orders?

A simple MVP could include the following:

  1. User permission that allows a user blanket rights to approve anything
  2. Tie situational approvers to project codes, so approval will be requested by the person connected to the order's project code

For an MVP, I'd rather avoid approval councils, majority votes etc. That could be added down the line.

@JackFGS
Copy link

JackFGS commented Nov 28, 2023

In order to migrate our ancient order system to using InvenTree PO's, I was banking a bit on this. I'm happy to take over implementing this, at least as an initial MVP.

What would be people's minimum requirements for such an approval stage for orders?

A simple MVP could include the following:

  1. User permission that allows a user blanket rights to approve anything
  2. Tie situational approvers to project codes, so approval will be requested by the person connected to the order's project code

For an MVP, I'd rather avoid approval councils, majority votes etc. That could be added down the line.

Those functions would be ideal for us!

Copy link
Contributor

This issue seems stale. Please react to show this is still important.

@github-actions github-actions bot added the inactive Indicates lack of activity label Jan 28, 2024
@LavissaWoW
Copy link
Contributor

Not stale

@matmair
Copy link
Member

matmair commented Feb 2, 2024

My (closed source, plugin available) plugin for this is currently in beta and should receive a major update in the next few days now that #5753 is adressed;
install instructions, beta docs.

@github-actions github-actions bot removed the inactive Indicates lack of activity label Feb 2, 2024
@matmair
Copy link
Member

matmair commented Mar 14, 2024

My roadmap to 1.0 was published a few days ago https://polar.sh/invenhost/posts/plans-for-2024-02 and rough docs are available here, feel free to raise questions or request features in the main plugin repo.

Copy link
Contributor

This issue seems stale. Please react to show this is still important.

@github-actions github-actions bot added the inactive Indicates lack of activity label May 13, 2024
@LavissaWoW
Copy link
Contributor

Not stale

@github-actions github-actions bot removed the inactive Indicates lack of activity label May 15, 2024
@LavissaWoW LavissaWoW linked a pull request Jun 4, 2024 that will close this issue
4 tasks
Copy link
Contributor

This issue seems stale. Please react to show this is still important.

@github-actions github-actions bot added the inactive Indicates lack of activity label Jul 14, 2024
@SchrodingersGat
Copy link
Member

Not stale

@SchrodingersGat SchrodingersGat added this to the horizon milestone Jul 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement This is an suggested enhancement or new feature inactive Indicates lack of activity order Related to purchase orders / sales orders plugin Plugin ecosystem
Projects
None yet
7 participants