[IMP] English improvement for modules (changes in strings)
bzr revid: mra@tinyerp.com-20100209083146-df5gq5elxem9fh6w
This commit is contained in:
parent
d62d78a173
commit
12681f33f1
|
@ -798,8 +798,8 @@
|
|||
<field name="arch" type="xml">
|
||||
<search string="Search Entry Lines">
|
||||
<group col='10' colspan='4'>
|
||||
<filter icon="terp-account" string="Draft" domain="[('state','=','draft')]" help="Draft Move Lines"/>
|
||||
<filter icon="terp-account" string="Posted" domain="[('state','=','valid')]" help="Posted Move Lines"/>
|
||||
<filter icon="terp-account" string="Draft" domain="[('state','=','draft')]" help="Draft Entry Lines"/>
|
||||
<filter icon="terp-account" string="Posted" domain="[('state','=','valid')]" help="Posted Entry Lines"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="date" select='1'/>
|
||||
<field name="account_id" select='1'/>
|
||||
|
|
|
@ -193,7 +193,7 @@ class account_invoice(osv.osv):
|
|||
temp_lines = map(lambda x: x.id, m.reconcile_partial_id.line_partial_ids)
|
||||
lines += [x for x in temp_lines if x not in lines]
|
||||
src.append(m.id)
|
||||
|
||||
|
||||
lines = filter(lambda x: x not in src, lines)
|
||||
result[invoice.id] = lines
|
||||
return result
|
||||
|
@ -230,7 +230,7 @@ class account_invoice(osv.osv):
|
|||
_order = "number"
|
||||
_columns = {
|
||||
'name': fields.char('Description', size=64, select=True,readonly=True, states={'draft':[('readonly',False)]}),
|
||||
'origin': fields.char('Origin', size=64, help="Reference of the document that produced this invoice."),
|
||||
'origin': fields.char('Source Document', size=64, help="Reference of the document that produced this invoice."),
|
||||
'type': fields.selection([
|
||||
('out_invoice','Customer Invoice'),
|
||||
('in_invoice','Supplier Invoice'),
|
||||
|
@ -1000,7 +1000,7 @@ class account_invoice(osv.osv):
|
|||
if invoice.type in ('in_invoice', 'in_refund'):
|
||||
ref = invoice.reference
|
||||
else:
|
||||
ref = self._convert_ref(cr, uid, invoice.number)
|
||||
ref = self._convert_ref(cr, uid, invoice.number)
|
||||
# Pay attention to the sign for both debit/credit AND amount_currency
|
||||
l1 = {
|
||||
'debit': direction * pay_amount>0 and direction * pay_amount,
|
||||
|
@ -1240,11 +1240,11 @@ class account_invoice_line(osv.osv):
|
|||
|
||||
company = self.pool.get('res.company').browse(cr, uid, company_id)
|
||||
currency = self.pool.get('res.currency').browse(cr, uid, currency_id)
|
||||
|
||||
|
||||
if not currency.company_id.id == company.id:
|
||||
raise osv.except_osv(_('Configration Error !'),
|
||||
_('Can not select currency that is not related to any company.\nPlease select accordingly !.'))
|
||||
|
||||
|
||||
if company.currency_id.id != currency.id:
|
||||
new_price = res_final['value']['price_unit'] * currency.rate
|
||||
res_final['value']['price_unit'] = new_price
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
|
@ -15,7 +15,7 @@
|
|||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
|
@ -27,7 +27,7 @@
|
|||
'description': """
|
||||
This module creates a dashboards for Manufaturing that includes:
|
||||
* List of next production orders
|
||||
* List of deliveries (out packing)
|
||||
* List of deliveries (out picking)
|
||||
* Graph of work center load
|
||||
* List of procurement in exception
|
||||
""",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
|
@ -15,7 +15,7 @@
|
|||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
|
@ -24,7 +24,7 @@
|
|||
'name': 'Carriers and deliveries',
|
||||
'version': '1.0',
|
||||
'category': 'Generic Modules/Sales & Purchases',
|
||||
'description': """Allows you to add delivery methods in sales orders and packing. You can define your own carrier and delivery grids for prices. When creating invoices from picking, Open ERP is able to add and compute the shipping line.""",
|
||||
'description': """Allows you to add delivery methods in sales orders and picking. You can define your own carrier and delivery grids for prices. When creating invoices from picking, Open ERP is able to add and compute the shipping line.""",
|
||||
'author': 'Tiny',
|
||||
'depends': ['sale', 'purchase', 'stock'],
|
||||
'init_xml': ['delivery_data.xml'],
|
||||
|
|
|
@ -394,7 +394,7 @@ class mrp_production(osv.osv):
|
|||
|
||||
_columns = {
|
||||
'name': fields.char('Reference', size=64, required=True),
|
||||
'origin': fields.char('Origin', size=64, help="Reference of the document that generated this production order request."),
|
||||
'origin': fields.char('Source Document', size=64, help="Reference of the document that generated this production order request."),
|
||||
'priority': fields.selection([('0','Not urgent'),('1','Normal'),('2','Urgent'),('3','Very Urgent')], 'Priority'),
|
||||
|
||||
'product_id': fields.many2one('product.product', 'Product', required=True, domain=[('type','<>','service')]),
|
||||
|
@ -426,7 +426,7 @@ class mrp_production(osv.osv):
|
|||
'product_lines': fields.one2many('mrp.production.product.line', 'production_id', 'Scheduled goods'),
|
||||
'workcenter_lines': fields.one2many('mrp.production.workcenter.line', 'production_id', 'Work Centers Utilisation'),
|
||||
'state': fields.selection([('draft','Draft'),('picking_except', 'Picking Exception'),('confirmed','Waiting Goods'),('ready','Ready to Produce'),('in_production','In Production'),('cancel','Cancelled'),('done','Done')],'State', readonly=True,
|
||||
help='When the production order is created the state is set to \'Draft\'.\n If the order is confirmed the state is set to \'Waiting Goods\'.\n If any exceptions are there, the state is set to \'Packing Exception\'.\
|
||||
help='When the production order is created the state is set to \'Draft\'.\n If the order is confirmed the state is set to \'Waiting Goods\'.\n If any exceptions are there, the state is set to \'Picking Exception\'.\
|
||||
\nIf the stock is available then the state is set to \'Ready to Produce\'.\n When the production get started then the state is set to \'In Production\'.\n When the production is over, the state is set to \'Done\'.'),
|
||||
'hour_total': fields.function(_production_calc, method=True, type='float', string='Total Hours', multi='workorder'),
|
||||
'cycle_total': fields.function(_production_calc, method=True, type='float', string='Total Cycles', multi='workorder'),
|
||||
|
@ -784,7 +784,7 @@ class mrp_procurement(osv.osv):
|
|||
_order = 'priority,date_planned'
|
||||
_columns = {
|
||||
'name': fields.char('Name', size=64, required=True, help='Requisition name.'),
|
||||
'origin': fields.char('Origin', size=64,
|
||||
'origin': fields.char('Source Document', size=64,
|
||||
help="Reference of the document that created this Requisition.\n"
|
||||
"This is automatically completed by Open ERP."),
|
||||
'priority': fields.selection([('0','Not urgent'),('1','Normal'),('2','Urgent'),('3','Very Urgent')], 'Priority', required=True),
|
||||
|
@ -1087,7 +1087,7 @@ class mrp_procurement(osv.osv):
|
|||
|
||||
#Passing partner_id to context for purchase order line integrity of Line name
|
||||
context.update({'lang':partner.lang, 'partner_id':partner_id})
|
||||
|
||||
|
||||
product=self.pool.get('product.product').browse(cr,uid,procurement.product_id.id,context=context)
|
||||
|
||||
line = {
|
||||
|
|
|
@ -89,7 +89,7 @@
|
|||
<field name="model_id" ref="mrp.model_mrp_procurement"/>
|
||||
<field eval=""""subflow"""" name="kind"/>
|
||||
<field eval=""""Product type is service"""" name="note"/>
|
||||
<field eval=""""Service Product"""" name="name"/>
|
||||
<field eval=""""Service"""" name="name"/>
|
||||
<field name="subflow_id" ref="process_process_serviceproductprocess0"/>
|
||||
<field name="process_id" ref="process_process_procurementprocess0"/>
|
||||
<field eval=""""object.state in ('draft', 'confirmed', 'cancel', 'exception', 'running', 'done', 'waiting')"""" name="model_states"/>
|
||||
|
|
|
@ -77,7 +77,7 @@
|
|||
-->
|
||||
<button name="set_to_draft" string="Set to draft" states="paid" icon="gtk-execute" type="object" />
|
||||
|
||||
<button name="%(pos_return_picking)d" string="Return Packing" type="action" icon="gtk-ok" states="paid"
|
||||
<button name="%(pos_return_picking)d" string="Return Picking" type="action" icon="gtk-ok" states="paid"
|
||||
attrs="{'invisible':[('state','!=','paid'),('state','!=','invoiced')]}"/>
|
||||
|
||||
</group>
|
||||
|
|
|
@ -250,7 +250,7 @@
|
|||
<record id="ir_model_access_accountmove0" model="ir.model.access">
|
||||
<field name="model_id" ref="account.model_account_move"/>
|
||||
<field eval="1" name="perm_read"/>
|
||||
<field eval=""""Account Move"""" name="name"/>
|
||||
<field eval=""""Ledger Posting"""" name="name"/>
|
||||
<field eval="0" name="perm_unlink"/>
|
||||
<field eval="1" name="perm_write"/>
|
||||
<field eval="1" name="perm_create"/>
|
||||
|
|
|
@ -253,7 +253,7 @@
|
|||
<record id="ir_model_access_accountmove0" model="ir.model.access">
|
||||
<field name="model_id" ref="account.model_account_move"/>
|
||||
<field eval="1" name="perm_read"/>
|
||||
<field eval=""""Account Move"""" name="name"/>
|
||||
<field eval=""""Ledger Posting"""" name="name"/>
|
||||
<field eval="0" name="perm_unlink"/>
|
||||
<field eval="1" name="perm_write"/>
|
||||
<field eval="1" name="perm_create"/>
|
||||
|
|
|
@ -144,7 +144,7 @@ class purchase_order(osv.osv):
|
|||
|
||||
_columns = {
|
||||
'name': fields.char('Order Reference', size=64, required=True, select=True),
|
||||
'origin': fields.char('Origin', size=64,
|
||||
'origin': fields.char('Source Document', size=64,
|
||||
help="Reference of the document that generated this purchase order request."
|
||||
),
|
||||
'partner_ref': fields.char('Supplier Reference', size=64),
|
||||
|
@ -471,7 +471,7 @@ class purchase_order_line(osv.osv):
|
|||
return super(purchase_order_line, self).copy_data(cr, uid, id, default, context)
|
||||
|
||||
def product_id_change(self, cr, uid, ids, pricelist, product, qty, uom,
|
||||
partner_id, date_order=False, fiscal_position=False, date_planned=False,
|
||||
partner_id, date_order=False, fiscal_position=False, date_planned=False,
|
||||
name=False, price_unit=False, notes=False):
|
||||
if not pricelist:
|
||||
raise osv.except_osv(_('No Pricelist !'), _('You have to select a pricelist in the purchase form !\nPlease set one before choosing a product.'))
|
||||
|
@ -513,7 +513,7 @@ class purchase_order_line(osv.osv):
|
|||
prod_name = self.pool.get('product.product').name_get(cr, uid, [prod.id])[0][1]
|
||||
|
||||
|
||||
res = {'value': {'price_unit': price, 'name': name or prod_name,
|
||||
res = {'value': {'price_unit': price, 'name': name or prod_name,
|
||||
'taxes_id':map(lambda x: x.id, prod.supplier_taxes_id),
|
||||
'date_planned': date_planned or dt,'notes': notes or prod.description_purchase,
|
||||
'product_qty': qty,
|
||||
|
|
|
@ -178,7 +178,7 @@ class report_invoice_created(osv.osv):
|
|||
('paid','Done'),
|
||||
('cancel','Cancelled')
|
||||
],'State', readonly=True),
|
||||
'origin': fields.char('Origin', size=64, readonly=True, help="Reference of the document that generated this invoice report."),
|
||||
'origin': fields.char('Source Document', size=64, readonly=True, help="Reference of the document that generated this invoice report."),
|
||||
'create_date' : fields.datetime('Create Date', readonly=True)
|
||||
}
|
||||
_order = 'create_date'
|
||||
|
|
|
@ -65,7 +65,7 @@ class report_intrastat(osv.osv):
|
|||
'month':fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'), ('05','May'), ('06','June'),
|
||||
('07','July'), ('08','August'), ('09','September'), ('10','October'), ('11','November'), ('12','December')],'Month',readonly=True),
|
||||
'supply_units':fields.float('Supply Units', readonly=True),
|
||||
'ref':fields.char('Origin',size=64, readonly=True),
|
||||
'ref':fields.char('Source document',size=64, readonly=True),
|
||||
'code': fields.char('Country code', size="2", readonly=True),
|
||||
'intrastat_id': fields.many2one('report.intrastat.code', 'Intrastat code', readonly=True),
|
||||
'weight': fields.float('Weight', readonly=True),
|
||||
|
|
|
@ -183,7 +183,7 @@ class sale_order(osv.osv):
|
|||
_columns = {
|
||||
'name': fields.char('Order Reference', size=64, required=True, select=True),
|
||||
'shop_id': fields.many2one('sale.shop', 'Shop', required=True, readonly=True, states={'draft': [('readonly', False)]}),
|
||||
'origin': fields.char('Origin', size=64, help="Reference of the document that generated this sale order request."),
|
||||
'origin': fields.char('Source document', size=64, help="Reference of the document that generated this sale order request."),
|
||||
'client_order_ref': fields.char('Customer Reference', size=64),
|
||||
|
||||
'state': fields.selection([
|
||||
|
@ -214,10 +214,10 @@ class sale_order(osv.osv):
|
|||
('picking', 'Invoice from Picking'),
|
||||
], 'Shipping Policy', required=True, readonly=True, states={'draft': [('readonly', False)]},
|
||||
help="""The Shipping Policy is used to synchronise invoice and delivery operations.
|
||||
- The 'Pay before delivery' choice will first generate the invoice and then generate the packing order after the payment of this invoice.
|
||||
- The 'Shipping & Manual Invoice' will create the packing order directly and wait for the user to manually click on the 'Invoice' button to generate the draft invoice.
|
||||
- The 'Pay before delivery' choice will first generate the invoice and then generate the picking order after the payment of this invoice.
|
||||
- The 'Shipping & Manual Invoice' will create the picking order directly and wait for the user to manually click on the 'Invoice' button to generate the draft invoice.
|
||||
- The 'Invoice on Order After Delivery' choice will generate the draft invoice based on sale order after all picking lists have been finished.
|
||||
- The 'Invoice from the picking' choice is used to create an invoice during the packing process."""),
|
||||
- The 'Invoice from the picking' choice is used to create an invoice during the picking process."""),
|
||||
'pricelist_id': fields.many2one('product.pricelist', 'Pricelist', required=True, readonly=True, states={'draft': [('readonly', False)]}),
|
||||
'project_id': fields.many2one('account.analytic.account', 'Analytic Account', readonly=True, states={'draft': [('readonly', False)]}),
|
||||
|
||||
|
@ -452,13 +452,13 @@ class sale_order(osv.osv):
|
|||
self.pool.get('sale.order.line').write(cr, uid, [line.id], {'invoiced': invoiced})
|
||||
self.write(cr, uid, ids, {'state': 'invoice_except', 'invoice_ids': False})
|
||||
return True
|
||||
|
||||
|
||||
def action_invoice_end(self, cr, uid, ids, context={}):
|
||||
for order in self.browse(cr, uid, ids):
|
||||
val = {'invoiced': True}
|
||||
if order.state == 'invoice_except':
|
||||
val['state'] = 'progress'
|
||||
|
||||
|
||||
for line in order.order_line:
|
||||
towrite = []
|
||||
if line.state == 'exception':
|
||||
|
@ -466,9 +466,9 @@ class sale_order(osv.osv):
|
|||
if towrite:
|
||||
self.pool.get('sale.order.line').write(cr, uid, towrite, {'state': 'confirmed'}, context=context)
|
||||
self.write(cr, uid, [order.id], val)
|
||||
|
||||
|
||||
return True
|
||||
|
||||
|
||||
def action_cancel(self, cr, uid, ids, context={}):
|
||||
ok = True
|
||||
sale_order_line_obj = self.pool.get('sale.order.line')
|
||||
|
@ -477,7 +477,7 @@ class sale_order(osv.osv):
|
|||
if pick.state not in ('draft', 'cancel'):
|
||||
raise osv.except_osv(
|
||||
_('Could not cancel sale order !'),
|
||||
_('You must first cancel all packing attached to this sale order.'))
|
||||
_('You must first cancel all picking attached to this sale order.'))
|
||||
for r in self.read(cr, uid, ids, ['picking_ids']):
|
||||
for pick in r['picking_ids']:
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
|
@ -15,7 +15,7 @@
|
|||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
|
@ -26,7 +26,7 @@
|
|||
'category': 'Generic Modules/Sales & Purchases',
|
||||
'description': """
|
||||
The sale journal modules allows you to categorise your
|
||||
sales and deliveries (packing lists) between different journals.
|
||||
sales and deliveries (picking lists) between different journals.
|
||||
This module is very helpful for bigger companies that
|
||||
works by departments.
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
</group>
|
||||
</page>
|
||||
<page string="Picking">
|
||||
<button string="Cancel Packing" name="button_picking_cancel" states="draft,open" type="object" icon="gtk-cancel"/>
|
||||
<button string="Cancel Picking" name="button_picking_cancel" states="draft,open" type="object" icon="gtk-cancel"/>
|
||||
<newline/>
|
||||
<field name="picking_stats_ids" colspan="4" nolabel="1"/>
|
||||
</page><page string="Notes">
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
<field name="model">sale_journal.invoice.type.stats</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Packing by invoice method">
|
||||
<tree string="Picking by invoice method">
|
||||
<field name="name"/>
|
||||
<field name="month"/>
|
||||
<field name="invoice_state"/>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
|
@ -15,7 +15,7 @@
|
|||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
|
@ -33,7 +33,7 @@ class res_partner(osv.osv):
|
|||
method=True,
|
||||
view_load=True,
|
||||
group_name="Accounting Properties",
|
||||
help="The type of journal used for sales and packing."),
|
||||
help="The type of journal used for sales and picking."),
|
||||
}
|
||||
res_partner()
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ import tools
|
|||
|
||||
class report_sale_journal_invoice_type_stats(osv.osv):
|
||||
_name = "sale_journal.invoice.type.stats"
|
||||
_description = "Stats on packing by invoice method"
|
||||
_description = "Stats on picking by invoice method"
|
||||
_auto = False
|
||||
_columns = {
|
||||
'name': fields.char('Year',size=64,required=False, readonly=True),
|
||||
|
@ -96,7 +96,7 @@ class report_sale_journal_picking(osv.osv):
|
|||
'count': fields.integer('# of Lines', readonly=True),
|
||||
'month':fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'), ('05','May'), ('06','June'),
|
||||
('07','July'), ('08','August'), ('09','September'), ('10','October'), ('11','November'), ('12','December')],'Month',readonly=True),
|
||||
|
||||
|
||||
}
|
||||
_order = 'journal_id,name desc,price_total desc'
|
||||
def init(self, cr):
|
||||
|
|
|
@ -437,7 +437,7 @@ class stock_picking(osv.osv):
|
|||
|
||||
_columns = {
|
||||
'name': fields.char('Reference', size=64, select=True),
|
||||
'origin': fields.char('Origin', size=64, help="Reference of the document that produced this picking."),
|
||||
'origin': fields.char('Source document', size=64, help="Reference of the document that produced this picking."),
|
||||
'backorder_id': fields.many2one('stock.picking', 'Back Order', help="If the picking is splitted then the picking id in available state of move for this picking is stored in Backorder."),
|
||||
'type': fields.selection([('out', 'Sending Goods'), ('in', 'Getting Goods'), ('internal', 'Internal'), ('delivery', 'Delivery')], 'Shipping Type', required=True, select=True, help="Shipping type specify, goods coming in or going out."),
|
||||
'active': fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the picking without removing it."),
|
||||
|
@ -1065,14 +1065,14 @@ class stock_move(osv.osv):
|
|||
'note': fields.text('Notes'),
|
||||
|
||||
'state': fields.selection([('draft', 'Draft'), ('waiting', 'Waiting'), ('confirmed', 'Confirmed'), ('assigned', 'Available'), ('done', 'Done'), ('cancel', 'Cancelled')], 'State', readonly=True, select=True,
|
||||
help='When the stock move is created it is in the \'Draft\' state.\n After that it is set to \'Confirmed\' state.\n If stock is available state is set to \'Avaiable\'.\n When the packing it done the state is \'Done\'.\
|
||||
help='When the stock move is created it is in the \'Draft\' state.\n After that it is set to \'Confirmed\' state.\n If stock is available state is set to \'Avaiable\'.\n When the picking it done the state is \'Done\'.\
|
||||
\nThe state is \'Waiting\' if the move is waiting for another one.'),
|
||||
'price_unit': fields.float('Unit Price',
|
||||
digits=(16, int(config['price_accuracy']))),
|
||||
'company_id': fields.many2one('res.company', 'Company', required=True,select=1),
|
||||
'partner_id': fields.related('picking_id','address_id','partner_id',type='many2one', relation="res.partner", string="Partner"),
|
||||
'backorder_id': fields.related('picking_id','backorder_id',type='many2one', relation="stock.picking", string="Back Orders"),
|
||||
'origin': fields.related('picking_id','origin',type='char', size=64, relation="stock.picking", string="Origin"),
|
||||
'origin': fields.related('picking_id','origin',type='char', size=64, relation="stock.picking", string="Source document"),
|
||||
'move_stock_return_history': fields.many2many('stock.move', 'stock_move_return_history', 'move_id', 'return_move_id', 'Move Return History',readonly=True),
|
||||
}
|
||||
_constraints = [
|
||||
|
|
|
@ -612,7 +612,7 @@
|
|||
<button name="action_cancel" states="assigned" string="Cancel" type="object" icon="gtk-cancel"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Return Packing History">
|
||||
<page string="Return Picking History">
|
||||
<field name="move_stock_return_history" nolabel="1"/>
|
||||
</page>
|
||||
</notebook>
|
||||
|
@ -740,7 +740,7 @@
|
|||
<button name="action_cancel" states="assigned" string="Cancel" type="object" icon="gtk-cancel"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Return Packing History">
|
||||
<page string="Return Picking History">
|
||||
<field name="move_stock_return_history" nolabel="1"/>
|
||||
</page>
|
||||
</notebook>
|
||||
|
@ -899,7 +899,7 @@
|
|||
<button name="action_cancel" states="assigned" string="Cancel" type="object" icon="gtk-cancel"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Return Packing History">
|
||||
<page string="Return Picking History">
|
||||
<field name="move_stock_return_history" nolabel="1"/>
|
||||
</page>
|
||||
</notebook>
|
||||
|
@ -1067,7 +1067,7 @@
|
|||
<button name="action_cancel" states="assigned" string="Cancel" type="object" icon=""/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Return Packing History">
|
||||
<page string="Return Picking History">
|
||||
<field name="move_stock_return_history" nolabel="1"/>
|
||||
</page>
|
||||
</notebook>
|
||||
|
@ -1256,7 +1256,7 @@
|
|||
<button name="action_done" states="assigned" string="Make Parcel" type="object" icon="gtk-jump-to"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Return Packing History">
|
||||
<page string="Return Picking History">
|
||||
<field name="move_stock_return_history" nolabel="1"/>
|
||||
</page>
|
||||
</notebook>
|
||||
|
@ -1381,7 +1381,7 @@
|
|||
<button name="action_done" states="assigned" string="Done" type="object" icon="gtk-jump-to"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Return Packing History">
|
||||
<page string="Return Picking History">
|
||||
<field name="move_stock_return_history" nolabel="1"/>
|
||||
</page>
|
||||
</notebook>
|
||||
|
|
|
@ -40,11 +40,11 @@ def _get_returns(self, cr, uid, data, context):
|
|||
pool = pooler.get_pool(cr.dbname)
|
||||
pick_obj = pool.get('stock.picking')
|
||||
pick = pick_obj.browse(cr, uid, [data['id']])[0]
|
||||
|
||||
|
||||
if pick.state != 'done':
|
||||
raise wizard.except_wizard(_('Warning !'), _("The Packing is not completed yet!\nYou cannot return packing which is not in 'Done' state!"))
|
||||
raise wizard.except_wizard(_('Warning !'), _("The Picking is not completed yet!\nYou cannot return picking which is not in 'Done' state!"))
|
||||
res = {}
|
||||
|
||||
|
||||
return_history = {}
|
||||
for m_line in pick.move_lines:
|
||||
return_history[m_line.id] = 0
|
||||
|
@ -59,10 +59,10 @@ def _get_returns(self, cr, uid, data, context):
|
|||
arch_lst.append('<field name="return%s"/>\n<newline/>' % (m.id,))
|
||||
fields['return%s' % m.id]={'string':m.name, 'type':'float', 'required':True, 'default':make_default(quantity - return_history[m.id])}
|
||||
res.setdefault('returns', []).append(m.id)
|
||||
|
||||
|
||||
if not res.get('returns',False):
|
||||
raise wizard.except_wizard(_('Warning!'),_('There is no product to return!'))
|
||||
|
||||
|
||||
arch_lst.append('<field name="invoice_state"/>\n<newline/>')
|
||||
if pick.invoice_state=='invoiced':
|
||||
new_invoice_state='2binvoiced'
|
||||
|
@ -96,16 +96,16 @@ def _create_returns(self, cr, uid, data, context):
|
|||
'move_lines':[], 'state':'draft', 'type':new_type,
|
||||
'date':date_cur, 'invoice_state':data['form']['invoice_state'],})
|
||||
new_location=move.location_dest_id.id
|
||||
|
||||
|
||||
new_qty = data['form']['return%s' % move.id]
|
||||
returned_qty = move.product_qty
|
||||
|
||||
|
||||
for rec in move.move_stock_return_history:
|
||||
returned_qty -= rec.product_qty
|
||||
|
||||
|
||||
if returned_qty != new_qty:
|
||||
set_invoice_state_to_none = False
|
||||
|
||||
|
||||
new_move=move_obj.copy(cr, uid, move.id, {
|
||||
'product_qty': new_qty,
|
||||
'product_uos_qty': uom_obj._compute_qty(cr, uid, move.product_uom.id,
|
||||
|
@ -114,10 +114,10 @@ def _create_returns(self, cr, uid, data, context):
|
|||
'location_id':new_location, 'location_dest_id':move.location_id.id,
|
||||
'date':date_cur, 'date_planned':date_cur,})
|
||||
move_obj.write(cr, uid, [move.id], {'move_stock_return_history':[(4,new_move)]})
|
||||
|
||||
|
||||
if set_invoice_state_to_none:
|
||||
pick_obj.write(cr, uid, [pick.id], {'invoice_state':'none'})
|
||||
|
||||
|
||||
if new_picking:
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
if new_picking:
|
||||
|
|
Loading…
Reference in New Issue