Automate sale order to invoice creation in odoo - odoo

Is there an easy way to automate the sale order process ?
I have customer whose salesman will create Sale orders for every sim he creates.
Once Sale order is closed both DC and Invoice should be created and validated automatically, there is no need for stock picking/packing concepts.
Could someone have any idea on doing it without affecting the default flow ?
Or should I call every function related to that process in my module ?
I tried calling the functions in stock picking and then tried validating DC. I got the odoo Warning as
'You have a difference between quantity on the operation and the quantities specified for the lots'
Could you please suggest me which particular function picks the product from stock in stock.picking ?

Hi Nirmalraj Rethinasabapathi,
Yes, I think I have done it for my project.
I can map What I have done to achieve that:
Added two boolean fields in Warehouse form.
One for "Auto Validate Invoice" and another one is for "Automation In Delivery"
Override sales confirmation button action and bypass all the function you want.
It is working perfectly for me.

Related

Automatically register payment and generate invoice when amount is zero

When pressing the "Confirm Sale" button, even if the total amount to be paid is zero (because of the 100% discount), the Register Payment popup is getting displayed - and I need to press Cancel in the popup to proceed (generate invoice & and mark it as paid).
Can I bypass displaying the popup - automatically generate the invoice and mark it as paid?
Please let me know.
Thanks.
There are two ways you can achieve this.
Write a module to overwrite the buttons named Create Invoice method and call a method to check if the total amount is zero then prepare the invoice values and automatically generate the invoice and view if needed. The rest with non-zero amount should follow the wizard path.
Create an automated action, where you can filter the SOs which are confirmed and has zero total and automatically create the invoices. You can combine this with scheduled actions to check it every X minutes or hours. This can be tricker than explained and may require some coding in the action.

Need help on implementing this Use-Case Scenario in NetSuite Oracle

I am very new to E-Commerce World.
I have a use case scenario that I want to Implement in Oracle NetSuite.
But I am not sure how to move forward with it.
Use-Case Scenario:
A Sales Order has a few Line Items & Among them, a few are out of stock.
The 3PL currently I am dealing with accepts only one Unique Sales Order ID as an Identifier.
I want to fulfill the items that are currently in stock and Later on, when the Inventory gets updated I want to fulfill the remaining Items back-ordered in the Sales Order.
But the fulfillment should happen only after the customer has paid for the Items.
Can anyone let me know? How can I achieve this?
Thank you.
You will probably need some customisation to achieve this. I don't know the full set of processes you're working with, but as a general approach, I would suggest the following:
Set up a payment term that says the customer must prepay.
Set up a script to run on your fulfilments, handle "prepay" customers.
You'll also want to check your settings in Setup > Accounting > Accounting Preferences > Order Management. Look for the option on sales orders and fulfilment. You'll probably want to default your fulfilment to available quantity only. You may want to prevent overage on your fulfilments.
When the script executes on your fulfilment, it should execute "before load". The script will need to check the sales order it's fulfilling. If the term is "prepay", the script should then check if a payment has been made against the sales order. You'll potentially need to consider deposits and paid invoices. If the script finds no payments, then it should block the fulfilment.
I'm working on the assumption that you will create a fulfilment with a "Picked" status to send to your warehouse. When they confirm the "goods-out", you will want some sort of feedback loop from your 3PL to set the fulfilment to "Shipped" and update your tracking numbers.
I hope this helps.
Mark

Openerp MRP module: assigning employees to work orders

In the MRP module, I would like to assign different employees to the work orders of a manufacturing order, so I can tarck the amount of hours and the cost for every employee (beause they will have different service products with different costs) and create analytic journal items based on this.
My question is: Is there any option or extra module for this or should I customize the MRP module?
Thanks in advance.
Regards
I see this question is from some time ago but I would like to know if you found and answer?
This is a long winded reply, but I am also needing this capability and searching any such existing module or planning develop this capability
Currently and soon to be completed is a new module with many enhancements to manufacturing order>>work order lines these include.
The ability to link a BOM component/consumed products to a routing work line on the BoM Component lines.
A constraint where by MFG Work Orders can only start when the component/consumed products assigned to them are available. This gives ability to start individual work orders as there individual consumed component products become available and to stage multiple works orders from many manufacturing orders base on which products have been picked and transfer to production.
The ability to define a constraint that previous work orders in sequence must complete before a work order can start.
New statuses on work order that waiting for product, waiting for previous work and ready.
The ability to assign warehouse locations to routing work center lines and to generate Internal Pickings not just to a specific Manufacturing orders but also to Work center work orders so that pickings can be schedule to all the current jobs needing consumable products.
What I am also planning in phase 2 of this development are feature similar to your question
allowing to define group of employees link to Routing work center lines. many2many from routing work center to employees
adding to search view on the Work Orders List View for search and group by for assigned employee or employee group.
Add ability to assign an employee to a work order
If logged in as other than the assigned employee Attempts to set work order to In Progress system will warn that they are not the assign employee for this work order. constraint can be overridden if user has manger permission he has choice to reassign work to himself or start work for the assigned employee.
Adding linkage to hr_timesheet so that time when work order is in progress is entered on employees time sheet.
Have logic that confirms employee is signed in on attendance or will automatically sign them in when a work order assigned to them is set to In Progress.
To have work order status set to paused automatically when assigned employees signs out in time sheet attendance.
to log time work was in progress on their Time sheet when work is set to pause or Finished
Regards
SL

Calculate available inventory in OpenERP

I am developing a custom module for OpenERP 7 that will track hardware installed in various venues. I have the total stock levels recorded in the Warehouse module, but I want to be able to calculate and display amount of each product that is available and the amount that is currently deployed. I'm having trouble figuring out how to do this. I have been looking at this rent module and they seem to do something with stock picking and workflows, but I'm new to OpenERP and not really sure how that works.
The other way I was thinking of was to loop through the deployments and simply calculate the amount of each item, and use functional fields to display it, but I'm not sure if that would even work, or how to do it without hard-coding all the various items.
Have a look at product.py in the stock module, specifically the get_product_available method. This allows you to pack various filter parameters into the context and then it calculates and returns stock as the net of inbound and outbound stock moves.
This method also gets used in the functional fields qty_available, virtual_available, incoming_qty and outgoing_qty. There is reasonably good explanations in the help comments in the module.
In OpenERP, something is in your stock when there's a stock move (object stock.move) with that product to your physical location as destination location, defined on Warehouse object for "Inventory Location" field. Let's say you have recorded 2 moves:
Move 1
Source Location: Supplier
Destination Location: Stock
Qty: 2
Move 2
Source Location: Stock
Destination Location: Deployed Products
Qty: 1
If you open your products list you'll see that you have 1qty of your product available. OpenERP sums all the moves for that product to and from your Stock location. So if you have no other specific needs, recording moves to some sort "Deployed Products" location should be enough.

ebay getOrders API

I am building a .net service to getOrders from ebay. my service runs fine, however I dont know how should I handle data.
For example I am using CreateTimeTo and CreateTimeFrom Filter to return orders from past 24 hours. I save them into my database, now some orders return no Address info.
My question is, Whats the best way to hadnle/update already imported orders into my database. Say for example order imported into my system wa without shiping info, and customer completed shipping info after a week, how would I update that order in my system?
Thanks
I would definitely use modtimefrom modtimeto filter. Ih this way you can get all order that have been modiefied in last "x interval". This way you will get either new orders and modified (checkout complete - paid - shipped) and so on. My favourite filter anyway is NumberOfDays. This one acts as ModTimeFrom/ModTimeTo but is way more simple and you don't have to deal with dates.
An order without address means buyer has not completed checkout (no payment selected so no shipping address as well yet).
Once buyer completes checkout or order is mark as paid the entire address will be avaible.
You can get buyer default address shipping by using call GetSellerTransaction
I hope i understood your question and to be helpful.