Manage sales quotations and orders
==================================
-This application allows you to manage your sales goals in an effective and efficient manner by keeping track of all sales orders and history.
+This application allows you to make a sale order, validate it and encode payment without having to deal with anything related to warehouse management.
-It handles the full sales workflow:
+It handles the sales workflow :
* **Quotation** -> **Sales order** -> **Invoice**
Preferences
-----------
-* Shipping: Choice of delivery at once or partial delivery
* Invoicing: choose how invoices will be paid
-* Incoterms: International Commercial terms
-
-You can choose flexible invoicing methods:
+There is one invoicing methods:
* *On Demand*: Invoices are created manually from Sales Orders when needed
-* *On Delivery Order*: Invoices are generated from picking (delivery)
-* *Before Delivery*: A Draft invoice is created and must be paid before delivery
The Dashboard for the Sales Manager will include
This installs the module analytic_user_function."""),
'module_project': fields.boolean("Project"),
'module_sale_stock': fields.boolean("Sale and Warehouse Management",
- help="""Allows you to Make Quotation, Sale Order using different Order policy and Manage Related Stock """),
+ help="""Allows you to Make Quotation, Sale Order using different Order policy and Manage Related Stock.
+ This installs the module sale_stock."""),
}
def default_get(self, cr, uid, fields, context=None):
'category': 'Hidden',
'summary': 'Quotation, Sale Orders, Delivery & Invoicing Control',
'description': """
-
-This Module manage quotations and sales orders.
-===========================================================================
+Manage sales quotations and orders
+==================================
+
+This application allows you to manage your sales goals in an effective and efficient manner by keeping track of all sales orders and history.
+
+It handles the full sales workflow:
-Workflow with validation steps:
--------------------------------
- * **Quotation** -> **Sales order** -> **Invoice**
+* **Quotation** -> **Sales order** -> **Invoice**
-Create Invoice:
----------------
- * Invoice on Demand
- * Invoice on Delivery Order
- * Invoice Before Delivery
+Preferences
+-----------
+* Shipping: Choice of delivery at once or partial delivery
+* Invoicing: choose how invoices will be paid
+* Incoterms: International Commercial terms
-Partners preferences:
----------------------
- * Incoterm
- * Shipping
- * Invoicing
+You can choose flexible invoicing methods:
-Products stocks and prices:
----------------------------
+* *On Demand*: Invoices are created manually from Sales Orders when needed
+* *On Delivery Order*: Invoices are generated from picking (delivery)
+* *Before Delivery*: A Draft invoice is created and must be paid before delivery
-Delivery method:
------------------
- * The Poste
- * Free Delivery Charges
- * Normal Delivery Charges
- * Based on the Delivery Order(if not Add to sale order)
-Dashboard for Sales Manager that includes:
-------------------------------------------
- * My Quotations
- * Monthly Turnover (Graph)
- """,
+The Dashboard for the Sales Manager will include
+------------------------------------------------
+* My Quotations
+* Monthly Turnover (Graph)
+""",
'author': 'OpenERP SA',
'website': 'http://www.openerp.com',
'images': [],
def action_wait(self, cr, uid, ids, context=None):
+ res = super(sale_order, self).action_wait(cr, uid, ids, context=context)
for o in self.browse(cr, uid, ids):
- if not o.order_line:
- raise osv.except_osv(_('Error!'),_('You cannot confirm a sale order which has no line.'))
noprod = self.test_no_product(cr, uid, o, context)
if noprod and o.order_policy=='picking':
self.write(cr, uid, [o.id], {'order_policy': 'manual'}, context=context)
- if (o.order_policy == 'manual') or noprod:
- self.write(cr, uid, [o.id], {'state': 'manual', 'date_confirm': fields.date.context_today(self, cr, uid, context=context)})
- else:
+ if not (o.order_policy == 'manual') or not noprod:
self.write(cr, uid, [o.id], {'state': 'progress', 'date_confirm': fields.date.context_today(self, cr, uid, context=context)})
- self.pool.get('sale.order.line').button_confirm(cr, uid, [x.id for x in o.order_line])
- self.confirm_send_note(cr, uid, ids, context)
- return True
-
+ return res
def action_invoice_create(self, cr, uid, ids, grouped=False, states=['confirmed', 'done', 'exception'], date_inv = False, context=None):
picking_obj = self.pool.get('stock.picking')