inventree / InvenTree

Open Source Inventory Management System
https://docs.inventree.org
MIT License
4.39k stars 792 forks source link

[FR] Purchase Order Approvals #3501

Open cpattersonic2 opened 2 years ago

cpattersonic2 commented 2 years ago

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

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?

matmair commented 2 years ago

@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 commented 2 years ago

@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):

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 commented 2 years ago

Thank you so much for your replies, and I understand that it could be a good bit of development effort. I can run it up the ladder to ask if development funding is available. Can you direct me towards the procedure for funding this development so that I can present it for funds. Thanks!

On Mon, Aug 8, 2022, 9:06 PM Oliver @.***> wrote:

@cpattersonic2 https://github.com/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).

— Reply to this email directly, view it on GitHub https://github.com/inventree/InvenTree/issues/3501#issuecomment-1208775467, or unsubscribe https://github.com/notifications/unsubscribe-auth/AL3UOR6BF6X5TSBLNETZVJDVYGVJJANCNFSM556SRRGA . You are receiving this because you were mentioned.Message ID: @.***>

SchrodingersGat commented 2 years ago

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

matmair commented 2 years ago

@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[bot] commented 1 year ago

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

SchrodingersGat commented 1 year ago

Not stale

cpattersonic2 commented 1 year ago

@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 commented 1 year ago

@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 commented 1 year ago

@cpattersonic2 we are already discussing and working on KiCad 7.0 integration - see https://github.com/inventree/InvenTree/discussions/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:

github-actions[bot] commented 1 year ago

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

SchrodingersGat commented 1 year ago

Not stale

github-actions[bot] commented 1 year ago

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

ghost commented 1 year ago

Being able to approve purchase orders is also an important feature to us. Is there any sort of timeline for this feature?

A simple feature that would work great for us, would be if a user could be limited to being able to create a PO but not issue it.

cpattersonic2 commented 1 year ago

@SchrodingersGat we have now fully ported our inventory system over to inventree, and am quite enjoying using the system. Finally, we have something that tracks from PO to sales order, and doesn't leave something unlocated or untracked throughout the whole process.

With regard to PO approvals and the code base you suggested in Jan13:

matmair commented 1 year ago

This is on the lower end of my priorities TBH so if you want to develop it, feel free. There is no timeline as there is no dev working on it actively. We do not promise release times as a principle as we are a small team deving in spare time.

SchrodingersGat commented 1 year ago

@cpattersonic2 would your company still be interested in sponsoring this feature?

walkermc20 commented 1 year ago

We (@andrewwetzel23) are current monthly sponsors and are actively interested in this feature. I'll send an RFQ over to support to get an idea of what this might cost to implement (or bump higher on the list).

SchrodingersGat commented 1 year ago

I'll send an RFQ over to support to get an idea of what this might cost to implement (or bump higher on the list).

@walkermc20 please reach out to support@inventree.org

matmair commented 1 year ago

@walkermc20 @andrewwetzel23 @cpattersonic2 This is getting to the finishing line in #5095, I would appreciate a test run and feedback (in that PR)

matmair commented 1 year ago

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

jacobfelknor commented 1 year ago

@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 commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

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 (support@inventree.org) with what exactly you need and he might be able to help you. You can CC me if you want (code@mjmair.com).

JackFGS commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

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!

github-actions[bot] commented 10 months ago

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

LavissaWoW commented 10 months ago

Not stale

matmair commented 10 months ago

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.

matmair commented 8 months ago

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.

github-actions[bot] commented 6 months ago

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

LavissaWoW commented 6 months ago

Not stale

github-actions[bot] commented 4 months ago

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

SchrodingersGat commented 4 months ago

Not stale