From 2b332453919cc00eff7ab6452e68369fbf4c8047 Mon Sep 17 00:00:00 2001 From: "uco (OpenERP)" Date: Wed, 26 May 2010 18:29:30 +0530 Subject: [PATCH] [IMP] stock: Task ID-813: Added Doc strings to stock and related modules with wizards. bzr revid: uco@tinyerp.com-20100526125930-i6dgh9vj9t82tqap --- addons/stock/product.py | 39 +- addons/stock/stock.py | 341 ++++++++++++++---- .../wizard/stock_change_standard_price.py | 36 +- addons/stock/wizard/stock_fill_inventory.py | 22 +- .../wizard/stock_inventory_line_split.py | 38 +- addons/stock/wizard/stock_inventory_merge.py | 21 +- .../wizard/stock_inventory_set_stock_zero.py | 21 +- .../stock/wizard/stock_invoice_onshipping.py | 40 +- addons/stock/wizard/stock_location_product.py | 9 +- addons/stock/wizard/stock_move.py | 152 ++++---- addons/stock/wizard/stock_partial_move.py | 37 +- addons/stock/wizard/stock_partial_picking.py | 35 +- addons/stock/wizard/stock_replacement.py | 21 +- addons/stock/wizard/stock_split_move.py | 12 +- addons/stock/wizard/stock_traceability.py | 19 +- addons/stock/wizard/stock_ups.py | 38 +- 16 files changed, 519 insertions(+), 362 deletions(-) diff --git a/addons/stock/product.py b/addons/stock/product.py index dc300994232..a52e8ae5b22 100644 --- a/addons/stock/product.py +++ b/addons/stock/product.py @@ -27,13 +27,10 @@ class product_product(osv.osv): _inherit = "product.product" def do_change_standard_price(self, cr, uid, ids, datas, context={}): - """ - Changes the Standard Price of Product and creates an account move accordingly. - - @param datas : dict. contain default datas like new_price, stock_output_account, stock_input_account, stock_journal - @param context: A standard dictionary - - @return: + """ Changes the Standard Price of Product and creates an account move accordingly. + @param datas : dict. contain default datas like new_price, stock_output_account, stock_input_account, stock_journal + @param context: A standard dictionary + @return: """ location_obj = self.pool.get('stock.location') @@ -147,7 +144,10 @@ class product_product(osv.osv): return _('Products: ')+self.pool.get('stock.location').browse(cr, user, context['location'], context).name return res - def get_product_available(self,cr,uid,ids,context=None): + def get_product_available(self, cr, uid, ids, context=None): + """ Finds whether product is available or not in particular warehouse. + @return: Dictionary of values + """ if context is None: context = {} states = context.get('states',[]) @@ -252,22 +252,25 @@ class product_product(osv.osv): return res def _product_available(self, cr, uid, ids, field_names=None, arg=False, context={}): + """ Finds the incoming and outgoing quantity of product. + @return: Dictionary of values + """ if not field_names: - field_names=[] + field_names = [] res = {} for id in ids: res[id] = {}.fromkeys(field_names, 0.0) for f in field_names: c = context.copy() - if f=='qty_available': - c.update({ 'states':('done',), 'what':('in', 'out') }) - if f=='virtual_available': - c.update({ 'states':('confirmed','waiting','assigned','done'), 'what':('in', 'out') }) - if f=='incoming_qty': - c.update({ 'states':('confirmed','waiting','assigned'), 'what':('in',) }) - if f=='outgoing_qty': - c.update({ 'states':('confirmed','waiting','assigned'), 'what':('out',) }) - stock=self.get_product_available(cr,uid,ids,context=c) + if f == 'qty_available': + c.update({ 'states': ('done',), 'what': ('in', 'out') }) + if f == 'virtual_available': + c.update({ 'states': ('confirmed','waiting','assigned','done'), 'what': ('in', 'out') }) + if f == 'incoming_qty': + c.update({ 'states': ('confirmed','waiting','assigned'), 'what': ('in',) }) + if f == 'outgoing_qty': + c.update({ 'states': ('confirmed','waiting','assigned'), 'what': ('out',) }) + stock = self.get_product_available(cr, uid, ids, context=c) for id in ids: res[id][f] = stock.get(id, 0.0) return res diff --git a/addons/stock/stock.py b/addons/stock/stock.py index 6770bca3020..765f6c47e6c 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -78,6 +78,9 @@ class stock_location(osv.osv): return res def _complete_name(self, cr, uid, ids, name, args, context): + """ Forms complete name of location from parent location to child location. + @return: Dictionary of values + """ def _get_one_full_name(location, level=4): if location.location_id: parent_path = _get_one_full_name(location.location_id, level-1) + "/" @@ -90,6 +93,9 @@ class stock_location(osv.osv): return res def _product_qty_available(self, cr, uid, ids, field_names, arg, context={}): + """ Finds real and virtual quantity for product available at particular location. + @return: Dictionary of values + """ res = {} for id in ids: res[id] = {}.fromkeys(field_names, 0.0) @@ -106,6 +112,10 @@ class stock_location(osv.osv): return res def product_detail(self, cr, uid, id, field, context={}): + """ Finds detail of product like price type, currency and then calculates its price. + @param field: Field name + @return: Calculated price + """ res = {} res[id] = {} final_value = 0.0 @@ -117,21 +127,25 @@ class stock_location(osv.osv): if result: # Choose the right filed standard_price to read # Take the user company - price_type_id=self.pool.get('res.users').browse(cr,uid,uid).company_id.property_valuation_price_type.id - pricetype=self.pool.get('product.price.type').browse(cr,uid,price_type_id) + price_type_id = self.pool.get('res.users').browse(cr,uid,uid).company_id.property_valuation_price_type.id + pricetype = self.pool.get('product.price.type').browse(cr, uid, price_type_id) for r in result: c = (context or {}).copy() c['location'] = id product = self.pool.get('product.product').read(cr, uid, r['product_id'], [field_to_read], context=c) # Compute the amount_unit in right currency - context['currency_id']=self.pool.get('res.users').browse(cr,uid,uid).company_id.currency_id.id - amount_unit=self.pool.get('product.product').browse(cr,uid,r['product_id']).price_get(pricetype.field, context)[r['product_id']] + context['currency_id'] = self.pool.get('res.users').browse(cr,uid,uid).company_id.currency_id.id + amount_unit = self.pool.get('product.product').browse(cr,uid,r['product_id']).price_get(pricetype.field, context)[r['product_id']] final_value += (product[field_to_read] * amount_unit) return final_value def _product_value(self, cr, uid, ids, field_names, arg, context={}): + """ Calculates real and virtual stock value of a product. + @param field_names: Name of field + @return: Dictionary of values + """ result = {} for id in ids: result[id] = {}.fromkeys(field_names, 0.0) @@ -199,6 +213,12 @@ class stock_location(osv.osv): } def chained_location_get(self, cr, uid, location, partner=None, product=None, context={}): + """ Finds chained location + @param location: Location id + @param partner: Partner id + @param product: Product id + @return: List of values + """ result = None if location.chained_location_type == 'customer': if partner: @@ -210,6 +230,11 @@ class stock_location(osv.osv): return result def picking_type_get(self, cr, uid, from_location, to_location, context={}): + """ Gets type of picking. + @param from_location: Source location + @param to_location: Destination location + @return: Location type + """ result = 'internal' if (from_location.usage=='internal') and (to_location and to_location.usage in ('customer', 'supplier')): result = 'delivery' @@ -224,13 +249,18 @@ class stock_location(osv.osv): def _product_get_report(self, cr, uid, ids, product_ids=False, context=None, recursive=False): + """ Finds the product quantity and price for particular location. + @param product_ids: Ids of product + @param recursive: True or False + @return: Dictionary of values + """ if context is None: context = {} product_obj = self.pool.get('product.product') # Take the user company and pricetype - price_type_id=self.pool.get('res.users').browse(cr,uid,uid).company_id.property_valuation_price_type.id - pricetype=self.pool.get('product.price.type').browse(cr,uid,price_type_id) - context['currency_id']=self.pool.get('res.users').browse(cr,uid,uid).company_id.currency_id.id + price_type_id = self.pool.get('res.users').browse(cr, uid, uid).company_id.property_valuation_price_type.id + pricetype = self.pool.get('product.price.type').browse(cr, uid, price_type_id) + context['currency_id'] = self.pool.get('res.users').browse(cr, uid, uid).company_id.currency_id.id if not product_ids: product_ids = product_obj.search(cr, uid, []) @@ -265,7 +295,7 @@ class stock_location(osv.osv): # Compute based on pricetype # Choose the right filed standard_price to read - amount_unit=product.price_get(pricetype.field, context)[product.id] + amount_unit = product.price_get(pricetype.field, context)[product.id] price = qty[product_id] * amount_unit # price = qty[product_id] * product.standard_price @@ -283,7 +313,14 @@ class stock_location(osv.osv): result['total_price'] = total_price return result - def _product_get_multi_location(self, cr, uid, ids, product_ids=False, context={}, states=['done'], what=('in', 'out')): + def _product_get_multi_location(self, cr, uid, ids, product_ids=False, context={}, + states=['done'], what=('in', 'out')): + """ + @param product_ids: Ids of product + @param states: List of states + @param what: Tuple of + @return: + """ product_obj = self.pool.get('product.product') context.update({ 'states': states, @@ -293,6 +330,11 @@ class stock_location(osv.osv): return product_obj.get_product_available(cr, uid, product_ids, context=context) def _product_get(self, cr, uid, id, product_ids=False, context={}, states=['done']): + """ + @param product_ids: + @param states: + @return: + """ ids = id and [id] or [] return self._product_get_multi_location(cr, uid, ids, product_ids, context, states) @@ -313,6 +355,11 @@ class stock_location(osv.osv): # [ (tracking_id, product_qty, location_id) ] # def _product_reserve(self, cr, uid, ids, product_id, product_qty, context={}): + """ + @param product_id: Id of product + @param product_qty: Quantity of product + @return: List of Values or False + """ result = [] amount = 0.0 for id in self.search(cr, uid, [('location_id', 'child_of', ids)]): @@ -352,6 +399,10 @@ class stock_tracking(osv.osv): _description = "Stock Tracking Lots" def get_create_tracking_lot(self, cr, uid, ids, tracking_lot): + """ + @param tracking_lot: Name of tracking lot + @return: + """ tracking_lot_list = self.search(cr, uid, [('name', '=', tracking_lot)], limit=1) if tracking_lot_list: @@ -382,6 +433,7 @@ class stock_tracking(osv.osv): 'move_ids': fields.one2many('stock.move', 'tracking_id', 'Moves Tracked'), 'date': fields.datetime('Created Date', required=True), } + _defaults = { 'active': lambda *a: 1, 'name': make_sscc, @@ -417,6 +469,12 @@ class stock_picking(osv.osv): _description = "Picking List" def _set_maximum_date(self, cr, uid, ids, name, value, arg, context): + """ Calculates planned date if it is greater than 'value'. + @param name: Name of field + @param value: Value of field + @param arg: User defined argument + @return: True or False + """ if not value: return False if isinstance(ids, (int, long)): @@ -433,6 +491,12 @@ class stock_picking(osv.osv): return True def _set_minimum_date(self, cr, uid, ids, name, value, arg, context): + """ Calculates planned date if it is less than 'value'. + @param name: Name of field + @param value: Value of field + @param arg: User defined argument + @return: True or False + """ if not value: return False if isinstance(ids, (int, long)): @@ -448,6 +512,9 @@ class stock_picking(osv.osv): return True def get_min_max_date(self, cr, uid, ids, field_name, arg, context={}): + """ Finds minimum and maximum dates for picking. + @return: Dictionary of values + """ res = {} for id in ids: res[id] = {'min_date': False, 'max_date': False} @@ -551,6 +618,9 @@ class stock_picking(osv.osv): return moves def action_confirm(self, cr, uid, ids, context={}): + """ Confirms picking. + @return: True + """ self.write(cr, uid, ids, {'state': 'confirmed'}) todo = [] for picking in self.browse(cr, uid, ids, context=context): @@ -574,6 +644,9 @@ class stock_picking(osv.osv): # return True def action_assign(self, cr, uid, ids, *args): + """ Changes state of picking to available if all moves are confirmed. + @return: True + """ for pick in self.browse(cr, uid, ids): move_ids = [x.id for x in pick.move_lines if x.state == 'confirmed'] if not move_ids: @@ -582,6 +655,9 @@ class stock_picking(osv.osv): return True def force_assign(self, cr, uid, ids, *args): + """ Changes state of picking to available if moves are confirmed or waiting. + @return: True + """ wf_service = netsvc.LocalService("workflow") for pick in self.browse(cr, uid, ids): move_ids = [x.id for x in pick.move_lines if x.state in ['confirmed','waiting']] @@ -591,6 +667,9 @@ class stock_picking(osv.osv): return True def draft_force_assign(self, cr, uid, ids, *args): + """ Confirms picking directly from draft state. + @return: True + """ wf_service = netsvc.LocalService("workflow") for pick in self.browse(cr, uid, ids): wf_service.trg_validate(uid, 'stock.picking', pick.id, @@ -601,6 +680,9 @@ class stock_picking(osv.osv): return True def draft_validate(self, cr, uid, ids, *args): + """ Validates picking directly from draft state. + @return: True + """ wf_service = netsvc.LocalService("workflow") self.draft_force_assign(cr, uid, ids) for pick in self.browse(cr, uid, ids): @@ -613,6 +695,9 @@ class stock_picking(osv.osv): return True def cancel_assign(self, cr, uid, ids, *args): + """ Cancels picking and moves. + @return: True + """ wf_service = netsvc.LocalService("workflow") for pick in self.browse(cr, uid, ids): move_ids = [x.id for x in pick.move_lines] @@ -621,6 +706,9 @@ class stock_picking(osv.osv): return True def action_assign_wkf(self, cr, uid, ids, context=None): + """ Changes picking state to assigned. + @return: True + """ for pick in self.browse(cr, uid, ids, context=context): type_list = { 'out':'Packing List', @@ -634,6 +722,9 @@ class stock_picking(osv.osv): return True def test_finnished(self, cr, uid, ids): + """ Tests whether the move is in done or cancel state or not. + @return: True or False + """ move_ids = self.pool.get('stock.move').search(cr, uid, [('picking_id', 'in', ids)]) for move in self.pool.get('stock.move').browse(cr, uid, move_ids): if move.state not in ('done', 'cancel'): @@ -644,18 +735,24 @@ class stock_picking(osv.osv): return True def test_assigned(self, cr, uid, ids): + """ Tests whether the move is in assigned state or not. + @return: True or False + """ ok = True for pick in self.browse(cr, uid, ids): mt = pick.move_type for move in pick.move_lines: - if (move.state in ('confirmed', 'draft')) and (mt=='one'): + if (move.state in ('confirmed', 'draft')) and (mt == 'one'): return False - if (mt=='direct') and (move.state=='assigned') and (move.product_qty): + if (mt == 'direct') and (move.state == 'assigned') and (move.product_qty): return True ok = ok and (move.state in ('cancel', 'done', 'assigned')) return ok def action_cancel(self, cr, uid, ids, context={}): + """ Changes picking state to cancel. + @return: True + """ for pick in self.browse(cr, uid, ids): ids2 = [move.id for move in pick.move_lines] self.pool.get('stock.move').action_cancel(cr, uid, ids2, context) @@ -666,10 +763,16 @@ class stock_picking(osv.osv): # TODO: change and create a move if not parents # def action_done(self, cr, uid, ids, context=None): + """ Changes picking state to done. + @return: True + """ self.write(cr, uid, ids, {'state': 'done', 'date_done': time.strftime('%Y-%m-%d %H:%M:%S')}) return True def action_move(self, cr, uid, ids, context={}): + """ Changes move state to assigned. + @return: True + """ for pick in self.browse(cr, uid, ids): todo = [] for move in pick.move_lines: @@ -685,13 +788,17 @@ class stock_picking(osv.osv): return False def _get_payment_term(self, cr, uid, picking): - '''Return {'contact': address, 'invoice': address} for invoice''' + """ Gets payment term from partner. + @return: Payment term + """ partner_obj = self.pool.get('res.partner') partner = picking.address_id.partner_id return partner.property_payment_term and partner.property_payment_term.id or False def _get_address_invoice(self, cr, uid, picking): - '''Return {'contact': address, 'invoice': address} for invoice''' + """ Gets invoice address of a partner + @return {'contact': address, 'invoice': address} for invoice + """ partner_obj = self.pool.get('res.partner') partner = picking.address_id.partner_id @@ -699,11 +806,17 @@ class stock_picking(osv.osv): ['contact', 'invoice']) def _get_comment_invoice(self, cr, uid, picking): - '''Return comment string for invoice''' + """ + @return: comment string for invoice + """ return picking.note or '' def _get_price_unit_invoice(self, cr, uid, move_line, type, context=None): - '''Return the price unit for the move line''' + """ Gets price unit for invoice + @param move_line: Stock move lines + @param type: Type of invoice + @return: The price unit for the move line + """ if context is None: context = {} @@ -723,7 +836,11 @@ class stock_picking(osv.osv): return 0.0 def _get_taxes_invoice(self, cr, uid, move_line, type): - '''Return taxes ids for the move line''' + """ Gets taxes on invoice + @param move_line: Stock move lines + @param type: Type of invoice + @return: Taxes Ids for the move line + """ if type in ('in_invoice', 'in_refund'): taxes = move_line.product_id.supplier_taxes_id else: @@ -752,7 +869,12 @@ class stock_picking(osv.osv): def action_invoice_create(self, cr, uid, ids, journal_id=False, group=False, type='out_invoice', context=None): - '''Return ids of created invoices for the pickings''' + """ Creates invoice based on the invoice state selected for picking. + @param journal_id: Id of journal + @param group: Whether to create a group invoice or not + @param type: Type invoice to be created + @return: Ids of created invoices for the pickings + """ if context is None: context = {} @@ -882,6 +1004,9 @@ class stock_picking(osv.osv): return res def test_cancel(self, cr, uid, ids, context={}): + """ Test whether the move lines are canceled or not. + @return: True or False + """ for pick in self.browse(cr, uid, ids, context=context): if not pick.move_lines: return False @@ -911,9 +1036,11 @@ class stock_picking(osv.osv): return super(stock_picking, self).unlink(cr, uid, ids, context=context) def do_partial(self, cr, uid, ids, partial_datas, context={}): - """ - @ partial_datas : dict. contain details of partial picking - like partner_id, address_id, delivery_date, delivery moves with product_id, product_qty, uom + """ Makes partial picking and moves done. + @param partial_datas : Dictionary containing details of partial picking + like partner_id, address_id, delivery_date, + delivery moves with product_id, product_qty, uom + @return: Dictionary of values """ res = {} move_obj = self.pool.get('stock.move') @@ -1077,6 +1204,9 @@ class stock_production_lot(osv.osv): _description = 'Production lot' def _get_stock(self, cr, uid, ids, field_name, arg, context={}): + """ Gets stock of products for locations + @return: Dictionary of values + """ if 'location_id' not in context: locations = self.pool.get('stock.location').search(cr, uid, [('usage', '=', 'internal')], context=context) else: @@ -1098,6 +1228,9 @@ class stock_production_lot(osv.osv): return res def _stock_search(self, cr, uid, obj, name, args, context): + """ Searches Ids of products + @return: Ids of locations + """ locations = self.pool.get('stock.location').search(cr, uid, [('usage', '=', 'internal')]) cr.execute('''select prodlot_id, @@ -1121,6 +1254,7 @@ class stock_production_lot(osv.osv): 'revisions': fields.one2many('stock.production.lot.revision', 'lot_id', 'Revisions'), 'company_id': fields.many2one('res.company','Company',select=1), } + _defaults = { 'date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'), 'name': lambda x, y, z, c: x.pool.get('ir.sequence').get(y, z, 'stock.lot.serial'), @@ -1135,6 +1269,7 @@ stock_production_lot() class stock_production_lot_revision(osv.osv): _name = 'stock.production.lot.revision' _description = 'Production lot revisions' + _columns = { 'name': fields.char('Revision Name', size=64, required=True), 'description': fields.text('Description'), @@ -1154,10 +1289,11 @@ stock_production_lot_revision() class stock_delivery(osv.osv): - """ Tracability of partialdeliveries """ + """ Traceability of partial deliveries """ _name = "stock.delivery" _description = "Delivery" + _columns = { 'name': fields.char('Name', size=60, required=True), 'date': fields.datetime('Date', required=True), @@ -1192,6 +1328,9 @@ class stock_move(osv.osv): return res def _check_tracking(self, cr, uid, ids): + """ Checks if production lot is assigned to stock move or not. + @return: True or False + """ for move in self.browse(cr, uid, ids): if not move.prodlot_id and \ (move.state == 'done' and \ @@ -1205,6 +1344,9 @@ class stock_move(osv.osv): return True def _check_product_lot(self, cr, uid, ids): + """ Checks whether move is done or not and production lot is assigned to that move. + @return: True or False + """ for move in self.browse(cr, uid, ids): if move.prodlot_id and move.state == 'done' and (move.prodlot_id.product_id.id != move.product_id.id): return False @@ -1264,6 +1406,9 @@ class stock_move(osv.osv): ['prodlot_id'])] def _default_location_destination(self, cr, uid, context={}): + """ Gets default address of partner for destination location + @return: Address id or False + """ if context.get('move_line', []): if context['move_line'][0]: if isinstance(context['move_line'][0], (tuple, list)): @@ -1276,6 +1421,9 @@ class stock_move(osv.osv): return False def _default_location_source(self, cr, uid, context={}): + """ Gets default address of partner for source location + @return: Address id or False + """ if context.get('move_line', []): try: return context['move_line'][0][2]['location_id'] @@ -1326,7 +1474,15 @@ class stock_move(osv.osv): cursor.commit() return res - def onchange_lot_id(self, cr, uid, ids, prodlot_id=False, product_qty=False, loc_id=False, product_id=False, context=None): + def onchange_lot_id(self, cr, uid, ids, prodlot_id=False, product_qty=False, + loc_id=False, product_id=False, context=None): + """ On change of production lot gives a warning message. + @param prodlot_id: Changed production lot id + @param product_qty: Quantity of product + @param loc_id: Location id + @param product_id: Product id + @return: Warning message + """ if not prodlot_id or not loc_id: return {} ctx = context and context.copy() or {} @@ -1341,7 +1497,15 @@ class stock_move(osv.osv): } return {'warning': warning} - def onchange_quantity(self, cr, uid, ids, product_id, product_qty, product_uom, product_uos): + def onchange_quantity(self, cr, uid, ids, product_id, product_qty, + product_uom, product_uos): + """ On change of product quantity finds UoM and UoS quantities + @param product_id: Product id + @param product_qty: Changed Quantity of product + @param product_uom: Unit of measure of product + @param product_uos: Unit of sale of product + @return: Dictionary of values + """ result = { 'product_uos_qty': 0.00 } @@ -1359,7 +1523,15 @@ class stock_move(osv.osv): return {'value': result} - def onchange_product_id(self, cr, uid, ids, prod_id=False, loc_id=False, loc_dest_id=False, address_id=False): + def onchange_product_id(self, cr, uid, ids, prod_id=False, loc_id=False, + loc_dest_id=False, address_id=False): + """ On change of product id, if finds UoM, UoS, quantity and UoS quantity. + @param prod_id: Changed Product id + @param loc_id: Source location id + @param loc_id: Destination location id + @param address_id: Address id of partner + @return: Dictionary of values + """ if not prod_id: return {} lang = False @@ -1386,6 +1558,10 @@ class stock_move(osv.osv): return {'value': result} def _chain_compute(self, cr, uid, moves, context={}): + """ Finds whether the location has chained location type or not. + @param moves: Stock moves + @return: Dictionary containing destination location with chained location type. + """ result = {} for m in moves: dest = self.pool.get('stock.location').chained_location_get( @@ -1408,6 +1584,9 @@ class stock_move(osv.osv): return result def action_confirm(self, cr, uid, ids, context={}): + """ Confirms stock move. + @return: List of ids. + """ # ids = map(lambda m: m.id, moves) moves = self.browse(cr, uid, ids) self.write(cr, uid, ids, {'state': 'confirmed'}) @@ -1455,6 +1634,9 @@ class stock_move(osv.osv): return [] def action_assign(self, cr, uid, ids, *args): + """ Changes state to confirmed or waiting. + @return: List of values + """ todo = [] for move in self.browse(cr, uid, ids): if move.state in ('confirmed', 'waiting'): @@ -1463,10 +1645,16 @@ class stock_move(osv.osv): return res def force_assign(self, cr, uid, ids, context={}): + """ Changes the state to assigned. + @return: True + """ self.write(cr, uid, ids, {'state': 'assigned'}) return True def cancel_assign(self, cr, uid, ids, context={}): + """ Changes the state to confirmed. + @return: True + """ self.write(cr, uid, ids, {'state': 'confirmed'}) return True @@ -1474,6 +1662,9 @@ class stock_move(osv.osv): # Duplicate stock.move # def check_assign(self, cr, uid, ids, context={}): + """ Checks the product type and accordingly writes the state. + @return: No. of moves done + """ done = [] count = 0 pickings = {} @@ -1515,6 +1706,9 @@ class stock_move(osv.osv): # Cancel move => cancel others move and pickings # def action_cancel(self, cr, uid, ids, context={}): + """ Cancels the moves and if all moves are cancelled it cancels the picking. + @return: True + """ if not len(ids): return True pickings = {} @@ -1540,6 +1734,9 @@ class stock_move(osv.osv): return True def action_done(self, cr, uid, ids, context={}): + """ Makes the move done and if all moves are done, it will finish the picking. + @return: + """ track_flag = False picking_ids = [] product_uom_obj = self.pool.get('product.uom') @@ -1679,6 +1876,9 @@ class stock_move(osv.osv): cr, uid, ids, context=context) def _create_lot(self, cr, uid, ids, product_id, prefix=False): + """ Creates production lot + @return: Production lot id + """ prodlot_obj = self.pool.get('stock.production.lot') ir_sequence_obj = self.pool.get('ir.sequence') sequence = ir_sequence_obj.get(cr, uid, 'stock.lot.serial') @@ -1694,18 +1894,15 @@ class stock_move(osv.osv): def action_scrap(self, cr, uid, ids, quantity, location_id, context=None): - ''' - Move the scrap/damaged product into scrap location - - @ param cr: the database cursor - @ param uid: the user id - @ param ids: ids of stock move object to be scraped - @ param quantity : specify scrap qty - @ param location_id : specify scrap location - @ param context: context arguments - - @ return: Scraped lines - ''' + """ Move the scrap/damaged product into scrap location + @param cr: the database cursor + @param uid: the user id + @param ids: ids of stock move object to be scraped + @param quantity : specify scrap qty + @param location_id : specify scrap location + @param context: context arguments + @return: Scraped lines + """ if quantity <= 0: raise osv.except_osv(_('Warning!'), _('Please provide Proper Quantity !')) res = [] @@ -1726,19 +1923,16 @@ class stock_move(osv.osv): return res def action_split(self, cr, uid, ids, quantity, split_by_qty=1, prefix=False, with_lot=True, context=None): - ''' - Split Stock Move lines into production lot which specified split by quantity. - - @ param cr: the database cursor - @ param uid: the user id - @ param ids: ids of stock move object to be splited - @ param split_by_qty : specify split by qty - @ param prefix : specify prefix of production lot - @ param with_lot : if true, prodcution lot will assign for split line otherwise not. - @ param context: context arguments - - @ return: splited move lines - ''' + """ Split Stock Move lines into production lot which specified split by quantity. + @param cr: the database cursor + @param uid: the user id + @param ids: ids of stock move object to be splited + @param split_by_qty : specify split by qty + @param prefix : specify prefix of production lot + @param with_lot : if true, prodcution lot will assign for split line otherwise not. + @param context: context arguments + @return: Splited move lines + """ if quantity <= 0: raise osv.except_osv(_('Warning!'), _('Please provide Proper Quantity !')) @@ -1789,18 +1983,15 @@ class stock_move(osv.osv): return res def action_consume(self, cr, uid, ids, quantity, location_id=False, context=None): - ''' - Consumed product with specific quatity from specific source location - - @ param cr: the database cursor - @ param uid: the user id - @ param ids: ids of stock move object to be consumed - @ param quantity : specify consume quantity - @ param location_id : specify source location - @ param context: context arguments - - @ return: Consumed lines - ''' + """ Consumed product with specific quatity from specific source location + @param cr: the database cursor + @param uid: the user id + @param ids: ids of stock move object to be consumed + @param quantity : specify consume quantity + @param location_id : specify source location + @param context: context arguments + @return: Consumed lines + """ if context is None: context = {} @@ -1860,9 +2051,10 @@ class stock_move(osv.osv): return res def do_partial(self, cr, uid, ids, partial_datas, context={}): - """ - @ partial_datas : dict. contain details of partial picking - like partner_id, address_id, delivery_date, delivery moves with product_id, product_qty, uom + """ Makes partial pickings and moves done. + @param partial_datas: Dictionary containing details of partial picking + like partner_id, address_id, delivery_date, delivery + moves with product_id, product_qty, uom """ res = {} picking_obj = self.pool.get('stock.picking') @@ -2016,10 +2208,17 @@ class stock_inventory(osv.osv): def _inventory_line_hook(self, cr, uid, inventory_line, move_vals): - '''Creates a stock move from an inventory line''' + """ Creates a stock move from an inventory line + @param inventory_line: + @param move_vals: + @return: + """ return self.pool.get('stock.move').create(cr, uid, move_vals) def action_done(self, cr, uid, ids, context=None): + """ Finishes the inventory and writes its finished date + @return: True + """ for inv in self.browse(cr, uid, ids): move_ids = [] move_line = [] @@ -2066,12 +2265,18 @@ class stock_inventory(osv.osv): return True def action_cancel(self, cr, uid, ids, context={}): + """ Cancels the stock move and change inventory state to draft. + @return: True + """ for inv in self.browse(cr, uid, ids): self.pool.get('stock.move').action_cancel(cr, uid, [x.id for x in inv.move_ids], context) self.write(cr, uid, [inv.id], {'state': 'draft'}) return True def action_cancel_inventary(self, cr, uid, ids, context={}): + """ Cancels both stock move and inventory + @return: True + """ for inv in self.browse(cr,uid,ids): self.pool.get('stock.move').action_cancel(cr, uid, [x.id for x in inv.move_ids], context) self.write(cr, uid, [inv.id], {'state':'cancel'}) @@ -2095,6 +2300,12 @@ class stock_inventory_line(osv.osv): } def on_change_product_id(self, cr, uid, ids, location_id, product, uom=False): + """ Changes UoM and name if product_id changes. + @param location_id: Location id + @param product: Changed product_id + @param uom: UoM product + @return: Dictionary of changed values + """ if not product: return {} if not uom: diff --git a/addons/stock/wizard/stock_change_standard_price.py b/addons/stock/wizard/stock_change_standard_price.py index d83b2c1d140..149b0b04e84 100644 --- a/addons/stock/wizard/stock_change_standard_price.py +++ b/addons/stock/wizard/stock_change_standard_price.py @@ -34,17 +34,13 @@ class change_standard_price(osv.osv_memory): } def default_get(self, cr, uid, fields, context): - """ - To get default values for the object. - + """ To get default values for the object. @param self: The object pointer. @param cr: A database cursor @param uid: ID of the user currently logged in @param fields: List of fields for which we want default values @param context: A standard dictionary - @return: A dictionary which of fields with values. - """ product_pool = self.pool.get('product.product') product_obj = product_pool.browse(cr, uid, context.get('active_id', False)) @@ -68,6 +64,16 @@ class change_standard_price(osv.osv_memory): return res def onchange_price(self, cr, uid, ids, new_price, context = {}): + """ Sets stock input and output account according to the difference + of old price and new price. + @param self: The object pointer. + @param cr: A database cursor + @param uid: ID of the user currently logged in + @param ids: List of IDs selected + @param new_price: Changed price + @param context: A standard dictionary + @return: Dictionary of values + """ product_obj = self.pool.get('product.product').browse(cr, uid, context.get('active_id', False)) price = product_obj.standard_price diff = price - new_price @@ -77,18 +83,14 @@ class change_standard_price(osv.osv_memory): return {'value' : {'enable_stock_in_out_acc':False}} def change_price(self, cr, uid, ids, context): - """ - Changes the Standard Price of Product. - And creates an account move accordingly. - - @param self: The object pointer. - @param cr: A database cursor - @param uid: ID of the user currently logged in - @param ids: List of IDs selected - @param context: A standard dictionary - - @return: - + """ Changes the Standard Price of Product. + And creates an account move accordingly. + @param self: The object pointer. + @param cr: A database cursor + @param uid: ID of the user currently logged in + @param ids: List of IDs selected + @param context: A standard dictionary + @return: """ rec_id = context and context.get('active_id', False) assert rec_id, _('Active ID is not set in Context') diff --git a/addons/stock/wizard/stock_fill_inventory.py b/addons/stock/wizard/stock_fill_inventory.py index 3247628657a..3742349425c 100644 --- a/addons/stock/wizard/stock_fill_inventory.py +++ b/addons/stock/wizard/stock_fill_inventory.py @@ -34,21 +34,17 @@ class stock_fill_inventory(osv.osv_memory): _description = "Fill Inventory" _columns = { 'location_id': fields.many2one('stock.location', 'Location', required=True), - 'recursive': fields.boolean("Include all childs for the location"), - } + 'recursive': fields.boolean("Include all children for the location"), + } def fill_inventory(self, cr, uid, ids, context): - """ - To fill stock inventory according to products available in the selected locations.. - - @param self: The object pointer. - @param cr: A database cursor - @param uid: ID of the user currently logged in - @param ids: the ID or list of IDs if we want more than one - @param context: A standard dictionary - - @return: - + """ To fill stock inventory according to products available in the selected locations. + @param self: The object pointer. + @param cr: A database cursor + @param uid: ID of the user currently logged in + @param ids: the ID or list of IDs if we want more than one + @param context: A standard dictionary + @return: """ inventory_line_obj = self.pool.get('stock.inventory.line') location_obj = self.pool.get('stock.location') diff --git a/addons/stock/wizard/stock_inventory_line_split.py b/addons/stock/wizard/stock_inventory_line_split.py index 9fe71582c7f..9f91a47c9a5 100644 --- a/addons/stock/wizard/stock_inventory_line_split.py +++ b/addons/stock/wizard/stock_inventory_line_split.py @@ -35,17 +35,13 @@ class stock_inventory_line_split(osv.osv_memory): def default_get(self, cr, uid, fields, context): - """ - To check the availability of production lot. - - @param self: The object pointer. - @param cr: A database cursor - @param uid: ID of the user currently logged in - @param fields: List of fields for which we want default values - @param context: A standard dictionary - - @return: A dictionary which of fields with values. - + """ To check the availability of production lot. + @param self: The object pointer. + @param cr: A database cursor + @param uid: ID of the user currently logged in + @param fields: List of fields for which we want default values + @param context: A standard dictionary + @return: A dictionary which of fields with values. """ record_id = context and context.get('active_id',False) res = super(stock_inventory_line_split, self).default_get(cr, uid, fields, context=context) @@ -55,18 +51,14 @@ class stock_inventory_line_split(osv.osv_memory): return res def split(self, cr, uid, ids, line_ids, context=None): - """ - To split stock inventory lines according to production lot - - @param self: The object pointer. - @param cr: A database cursor - @param uid: ID of the user currently logged in - @param ids: the ID or list of IDs if we want more than one - @param line_ids: the ID or list of IDs of inventory lines we want to split - @param context: A standard dictionary - - @return: - + """ To split stock inventory lines according to production lot. + @param self: The object pointer. + @param cr: A database cursor + @param uid: ID of the user currently logged in + @param ids: the ID or list of IDs if we want more than one + @param line_ids: the ID or list of IDs of inventory lines we want to split + @param context: A standard dictionary + @return: """ prodlot_obj = self.pool.get('stock.production.lot') ir_sequence_obj = self.pool.get('ir.sequence') diff --git a/addons/stock/wizard/stock_inventory_merge.py b/addons/stock/wizard/stock_inventory_merge.py index 1c11ad8e2ad..30450e4d253 100644 --- a/addons/stock/wizard/stock_inventory_merge.py +++ b/addons/stock/wizard/stock_inventory_merge.py @@ -31,22 +31,15 @@ import wizard class stock_inventory_merge(osv.osv_memory): _name = "stock.inventory.merge" _description = "Merge Inventory" - _columns = { - - } def do_merge(self, cr, uid, ids, context): - """ - To merge selected Inventories. - - @param self: The object pointer. - @param cr: A database cursor - @param uid: ID of the user currently logged in - @param ids: List of IDs selected - @param context: A standard dictionary - - @return: - + """ To merge selected Inventories. + @param self: The object pointer. + @param cr: A database cursor + @param uid: ID of the user currently logged in + @param ids: List of IDs selected + @param context: A standard dictionary + @return: """ invent_obj = self.pool.get('stock.inventory') invent_line_obj = self.pool.get('stock.inventory.line') diff --git a/addons/stock/wizard/stock_inventory_set_stock_zero.py b/addons/stock/wizard/stock_inventory_set_stock_zero.py index 63296b69875..f72e4f088b0 100644 --- a/addons/stock/wizard/stock_inventory_set_stock_zero.py +++ b/addons/stock/wizard/stock_inventory_set_stock_zero.py @@ -32,22 +32,19 @@ import wizard class inventory_set_stock_zero(osv.osv_memory): _name = "stock.inventory.set.stock.zero" _description = "Set Stock to 0" + _columns = { 'location_id': fields.many2one('stock.location', 'Location', required=True), - } + } def do_merge(self, cr, uid, ids, context): - """ - To set stock to Zero - - @param self: The object pointer. - @param cr: A database cursor - @param uid: ID of the user currently logged in - @param ids: the ID or list of IDs if we want more than one - @param context: A standard dictionary - - @return: - + """ To set stock to Zero + @param self: The object pointer. + @param cr: A database cursor + @param uid: ID of the user currently logged in + @param ids: the ID or list of IDs if we want more than one + @param context: A standard dictionary + @return: """ invent_obj = pooler.get_pool(cr.dbname).get('stock.inventory') invent_line_obj = pooler.get_pool(cr.dbname).get('stock.inventory.line') diff --git a/addons/stock/wizard/stock_invoice_onshipping.py b/addons/stock/wizard/stock_invoice_onshipping.py index d2b671e9571..377a40f3cb9 100644 --- a/addons/stock/wizard/stock_invoice_onshipping.py +++ b/addons/stock/wizard/stock_invoice_onshipping.py @@ -39,20 +39,16 @@ class stock_invoice_onshipping(osv.osv_memory): ('out_refund', 'Customer Refund'), ('in_refund', 'Supplier Refund')] , 'Type', required=True), 'invoice_date': fields.date('Invoiced date'), - } + } def _get_type(self, cr, uid, context=None): - """ - To get invoice type - - @param self: The object pointer. - @param cr: A database cursor - @param uid: ID of the user currently logged in - @param ids: the ID or list of IDs if we want more than one - @param context: A standard dictionary - - @return: invoice type - + """ To get invoice type. + @param self: The object pointer. + @param cr: A database cursor + @param uid: ID of the user currently logged in + @param ids: The ID or list of IDs if we want more than one + @param context: A standard dictionary + @return: Invoice type """ if context is None: context = {} @@ -80,20 +76,16 @@ class stock_invoice_onshipping(osv.osv_memory): _defaults = { 'type': _get_type, - } + } def create_invoice(self, cr, uid, ids, context): - """ - To create invoice - - @param self: The object pointer. - @param cr: A database cursor - @param uid: ID of the user currently logged in - @param ids: the ID or list of IDs if we want more than one - @param context: A standard dictionary - - @return: invoice ids - + """ To create invoice + @param self: The object pointer. + @param cr: A database cursor + @param uid: ID of the user currently logged in + @param ids: the ID or list of IDs if we want more than one + @param context: A standard dictionary + @return: Invoice ids """ result = [] picking_obj = self.pool.get('stock.picking') diff --git a/addons/stock/wizard/stock_location_product.py b/addons/stock/wizard/stock_location_product.py index b41809b67bd..9fe800bb0fe 100644 --- a/addons/stock/wizard/stock_location_product.py +++ b/addons/stock/wizard/stock_location_product.py @@ -30,16 +30,13 @@ class stock_location_product(osv.osv_memory): } def action_open_window(self, cr, uid, ids, context): - """ - To open location wise product information specific to given duration - + """ To open location wise product information specific to given duration @param self: The object pointer. @param cr: A database cursor @param uid: ID of the user currently logged in - @param ids: the ID or list of IDs if we want more than one + @param ids: An ID or list of IDs if we want more than one @param context: A standard dictionary - - @return: invoice type + @return: Invoice type """ mod_obj = self.pool.get('ir.model.data') for location_obj in self.read(cr, uid, ids, ['from_date', 'to_date']): diff --git a/addons/stock/wizard/stock_move.py b/addons/stock/wizard/stock_move.py index 00b7b616aa5..f4429ad408a 100644 --- a/addons/stock/wizard/stock_move.py +++ b/addons/stock/wizard/stock_move.py @@ -29,24 +29,20 @@ class stock_move_track(osv.osv_memory): _columns = { 'tracking_prefix': fields.char('Tracking prefix', size=64), 'quantity': fields.float("Quantity per lot") - } + } _defaults = { 'quantity': lambda *x: 1 - } + } def track_lines(self, cr, uid, ids, context={}): - """ - To track stock moves lines - - @param self: The object pointer. - @param cr: A database cursor - @param uid: ID of the user currently logged in - @param ids: the ID or list of IDs if we want more than one - @param context: A standard dictionary - - @return: - + """ To track stock moves lines + @param self: The object pointer. + @param cr: A database cursor + @param uid: ID of the user currently logged in + @param ids: An ID or list of IDs if we want more than one + @param context: A standard dictionary + @return: """ datas = self.read(cr, uid, ids)[0] move_obj = self.pool.get('stock.move') @@ -67,17 +63,13 @@ class stock_move_consume(osv.osv_memory): } def default_get(self, cr, uid, fields, context=None): - """ - Get default values - - @param self: The object pointer. - @param cr: A database cursor - @param uid: ID of the user currently logged in - @param fields: List of fields for default value - @param context: A standard dictionary - - @return: default values of fields - + """ Get default values + @param self: The object pointer. + @param cr: A database cursor + @param uid: ID of the user currently logged in + @param fields: List of fields for default value + @param context: A standard dictionary + @return: default values of fields """ res = super(stock_move_consume, self).default_get(cr, uid, fields, context=context) move = self.pool.get('stock.move').browse(cr, uid, context['active_id'], context=context) @@ -93,17 +85,13 @@ class stock_move_consume(osv.osv_memory): return res def do_move_consume(self, cr, uid, ids, context={}): - """ - To move consumed products - - @param self: The object pointer. - @param cr: A database cursor - @param uid: ID of the user currently logged in - @param ids: the ID or list of IDs if we want more than one - @param context: A standard dictionary - - @return: - + """ To move consumed products + @param self: The object pointer. + @param cr: A database cursor + @param uid: ID of the user currently logged in + @param ids: the ID or list of IDs if we want more than one + @param context: A standard dictionary + @return: """ move_obj = self.pool.get('stock.move') move_ids = context['active_ids'] @@ -126,17 +114,13 @@ class stock_move_scrap(osv.osv_memory): } def default_get(self, cr, uid, fields, context=None): - """ - Get default values - - @param self: The object pointer. - @param cr: A database cursor - @param uid: ID of the user currently logged in - @param fields: List of fields for default value - @param context: A standard dictionary - - @return: default values of fields - + """ Get default values + @param self: The object pointer. + @param cr: A database cursor + @param uid: ID of the user currently logged in + @param fields: List of fields for default value + @param context: A standard dictionary + @return: default values of fields """ res = super(stock_move_consume, self).default_get(cr, uid, fields, context=context) move = self.pool.get('stock.move').browse(cr, uid, context['active_id'], context=context) @@ -158,17 +142,13 @@ class stock_move_scrap(osv.osv_memory): return res def move_scrap(self, cr, uid, ids, context={}): - """ - To move scraped products - - @param self: The object pointer. - @param cr: A database cursor - @param uid: ID of the user currently logged in - @param ids: the ID or list of IDs if we want more than one - @param context: A standard dictionary - - @return: - + """ To move scraped products + @param self: The object pointer. + @param cr: A database cursor + @param uid: ID of the user currently logged in + @param ids: the ID or list of IDs if we want more than one + @param context: A standard dictionary + @return: """ move_obj = self.pool.get('stock.move') move_ids = context['active_ids'] @@ -186,17 +166,13 @@ class split_in_production_lot(osv.osv_memory): _description = "Split in Production lots" def default_get(self, cr, uid, fields, context=None): - """ - Get default values - - @param self: The object pointer. - @param cr: A database cursor - @param uid: ID of the user currently logged in - @param fields: List of fields for default value - @param context: A standard dictionary - - @return: default values of fields - + """ Get default values + @param self: The object pointer. + @param cr: A database cursor + @param uid: ID of the user currently logged in + @param fields: List of fields for default value + @param context: A standard dictionary + @return: Default values of fields """ res = super(split_in_production_lot, self).default_get(cr, uid, fields, context=context) @@ -209,35 +185,28 @@ class split_in_production_lot(osv.osv_memory): 'product_id': fields.many2one('product.product', 'Product', required=True, select=True), 'line_ids': fields.one2many('stock.move.split.lines', 'lot_id', 'Lots Number') } + def split_lot(self, cr, uid, ids, context=None): - """ - To split a lot - - @param self: The object pointer. - @param cr: A database cursor - @param uid: ID of the user currently logged in - @param ids: the ID or list of IDs if we want more than one - @param context: A standard dictionary - - @return: - + """ To split a lot + @param self: The object pointer. + @param cr: A database cursor + @param uid: ID of the user currently logged in + @param ids: An ID or list of IDs if we want more than one + @param context: A standard dictionary + @return: """ self.split(cr, uid, ids, context.get('active_ids'), context=context) return {} def split(self, cr, uid, ids, move_ids, context=None): - """ - To split stock moves into production lot - - @param self: The object pointer. - @param cr: A database cursor - @param uid: ID of the user currently logged in - @param ids: the ID or list of IDs if we want more than one - @param move_ids: the ID or list of IDs of stock move we want to split - @param context: A standard dictionary - - @return: - + """ To split stock moves into production lot + @param self: The object pointer. + @param cr: A database cursor + @param uid: ID of the user currently logged in + @param ids: the ID or list of IDs if we want more than one + @param move_ids: the ID or list of IDs of stock move we want to split + @param context: A standard dictionary + @return: """ prodlot_obj = self.pool.get('stock.production.lot') ir_sequence_obj = self.pool.get('ir.sequence') @@ -303,6 +272,7 @@ class stock_move_split_lines(osv.osv_memory): 'lot_id': fields.many2one('stock.move.split', 'Lot'), 'action': fields.selection([('split','Split'),('keepinone','Keep in one lot')],'Action'), } + _defaults = { 'quantity': lambda *x: 1, 'action' : lambda *x: 'split', diff --git a/addons/stock/wizard/stock_partial_move.py b/addons/stock/wizard/stock_partial_move.py index 4a5206d1ef0..e8849b3d1a9 100644 --- a/addons/stock/wizard/stock_partial_move.py +++ b/addons/stock/wizard/stock_partial_move.py @@ -30,10 +30,9 @@ class stock_partial_move(osv.osv_memory): _name = "stock.partial.move" _description = "Partial Move" _columns = { - 'date': fields.datetime('Date', required=True), - 'partner_id': fields.many2one('res.partner',string="Partner", required=True), - 'address_id': fields.many2one('res.partner.address', 'Delivery Address', help="Address where goods are to be delivered", required=True), - + 'date': fields.datetime('Date', required=True), + 'partner_id': fields.many2one('res.partner',string="Partner", required=True), + 'address_id': fields.many2one('res.partner.address', 'Delivery Address', help="Address where goods are to be delivered", required=True), } def view_init(self, cr, uid, fields_list, context=None): @@ -140,17 +139,13 @@ class stock_partial_move(osv.osv_memory): return result def default_get(self, cr, uid, fields, context=None): - """ - To get default values for the object. - - @param self: The object pointer. - @param cr: A database cursor - @param uid: ID of the user currently logged in - @param fields: List of fields for which we want default values - @param context: A standard dictionary - - @return: A dictionary which of fields with values. - + """ To get default values for the object. + @param self: The object pointer. + @param cr: A database cursor + @param uid: ID of the user currently logged in + @param fields: List of fields for which we want default values + @param context: A standard dictionary + @return: A dictionary which of fields with values. """ res = super(stock_partial_move, self).default_get(cr, uid, fields, context=context) @@ -185,7 +180,16 @@ class stock_partial_move(osv.osv_memory): res['move%s_product_currency'%(m.id)] = currency return res - def do_partial(self, cr, uid, ids, context): + def do_partial(self, cr, uid, ids, context): + """ Makes partial moves and pickings done. + @param self: The object pointer. + @param cr: A database cursor + @param uid: ID of the user currently logged in + @param fields: List of fields for which we want default values + @param context: A standard dictionary + @return: A dictionary which of fields with values. + """ + rec_id = context and context.get('active_id', False) tracking_lot = context.get('tracking_lot', False) if tracking_lot: @@ -218,5 +222,6 @@ class stock_partial_move(osv.osv_memory): return {} stock_partial_move() + # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/stock/wizard/stock_partial_picking.py b/addons/stock/wizard/stock_partial_picking.py index eba095718cd..3b216b793b3 100644 --- a/addons/stock/wizard/stock_partial_picking.py +++ b/addons/stock/wizard/stock_partial_picking.py @@ -29,10 +29,9 @@ class stock_partial_picking(osv.osv_memory): _name = "stock.partial.picking" _description = "Partial Picking" _columns = { - 'date': fields.datetime('Date', required=True), - 'partner_id': fields.many2one('res.partner',string="Partner", required=True), - 'address_id': fields.many2one('res.partner.address', 'Delivery Address', help="Address where goods are to be delivered", required=True), - + 'date': fields.datetime('Date', required=True), + 'partner_id': fields.many2one('res.partner',string="Partner", required=True), + 'address_id': fields.many2one('res.partner.address', 'Delivery Address', help="Address where goods are to be delivered", required=True), } def view_init(self, cr, uid, fields_list, context=None): @@ -141,17 +140,13 @@ class stock_partial_picking(osv.osv_memory): return result def default_get(self, cr, uid, fields, context=None): - """ - To get default values for the object. - - @param self: The object pointer. - @param cr: A database cursor - @param uid: ID of the user currently logged in - @param fields: List of fields for which we want default values - @param context: A standard dictionary - - @return: A dictionary which of fields with values. - + """ To get default values for the object. + @param self: The object pointer. + @param cr: A database cursor + @param uid: ID of the user currently logged in + @param fields: List of fields for which we want default values + @param context: A standard dictionary + @return: A dictionary which of fields with values. """ res = super(stock_partial_picking, self).default_get(cr, uid, fields, context=context) @@ -191,7 +186,15 @@ class stock_partial_picking(osv.osv_memory): res['move%s_product_currency'%(m.id)] = currency return res - def do_partial(self, cr, uid, ids, context): + def do_partial(self, cr, uid, ids, context): + """ Makes partial moves and pickings done. + @param self: The object pointer. + @param cr: A database cursor + @param uid: ID of the user currently logged in + @param fields: List of fields for which we want default values + @param context: A standard dictionary + @return: A dictionary which of fields with values. + """ pick_obj = self.pool.get('stock.picking') picking_ids = context.get('active_ids', False) partial = self.browse(cr, uid, ids[0], context) diff --git a/addons/stock/wizard/stock_replacement.py b/addons/stock/wizard/stock_replacement.py index a6f39212ef8..8b6c36f0f21 100644 --- a/addons/stock/wizard/stock_replacement.py +++ b/addons/stock/wizard/stock_replacement.py @@ -38,20 +38,17 @@ class stock_replacement(osv.osv_memory): return {} def replace_composant(self, cr, uid, ids, context = {}): - """ - to open a new wizard that acknowledge, a replacement task - - @return: it returns the replacement acknowledgement form - + """ To open a new wizard that acknowledge, a replacement task + @return: It returns the replacement acknowledgement form """ return { - 'name': False, - 'view_type': 'form', - 'view_mode': 'form', - 'res_model': 'stock.replacement.result', - 'type': 'ir.actions.act_window', - 'target':'new', - } + 'name': False, + 'view_type': 'form', + 'view_mode': 'form', + 'res_model': 'stock.replacement.result', + 'type': 'ir.actions.act_window', + 'target':'new', + } stock_replacement() diff --git a/addons/stock/wizard/stock_split_move.py b/addons/stock/wizard/stock_split_move.py index c1354e21578..f3e72bfdc11 100644 --- a/addons/stock/wizard/stock_split_move.py +++ b/addons/stock/wizard/stock_split_move.py @@ -26,8 +26,7 @@ class stock_split_move_line(osv.osv_memory): _description = "Split Moves" def default_get(self, cr, uid, fields, context): - """ - To get default values for the object. + """ To get default values for the object. @param self: The object pointer. @param cr: A database cursor @param uid: ID of the user currently logged in @@ -44,8 +43,7 @@ class stock_split_move_line(osv.osv_memory): return res def view_init(self, cr, uid, fields_list, context=None): - """ - Creates view dynamically and adding fields at runtime. + """ Creates view dynamically and adding fields at runtime. @param self: The object pointer. @param cr: A database cursor @param uid: ID of the user currently logged in @@ -67,8 +65,7 @@ class stock_split_move_line(osv.osv_memory): def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False): - """ - Changes the view dynamically + """ Changes the view dynamically @param self: The object pointer. @param cr: A database cursor @param uid: ID of the user currently logged in @@ -94,8 +91,7 @@ class stock_split_move_line(osv.osv_memory): return res def split_lines(self, cr, uid, ids, context): - """ - Splits moves in quantity given in the wizard. + """ Splits moves in quantity given in the wizard. @param self: The object pointer. @param cr: A database cursor @param uid: ID of the user currently logged in diff --git a/addons/stock/wizard/stock_traceability.py b/addons/stock/wizard/stock_traceability.py index 120fa658b1c..d2fadb1d89c 100644 --- a/addons/stock/wizard/stock_traceability.py +++ b/addons/stock/wizard/stock_traceability.py @@ -34,18 +34,15 @@ class action_traceability(osv.osv_memory): _description = "Action traceability " def action_traceability(self, cr, uid, ids, context={}): - """ - It traces the information of a product - - @param self: The object pointer. - @param cr: A database cursor - @param uid: ID of the user currently logged in - @param ids: List of IDs selected - @param context: A standard dictionary - - @return: A dictionary of values - + """ It traces the information of a product + @param self: The object pointer. + @param cr: A database cursor + @param uid: ID of the user currently logged in + @param ids: List of IDs selected + @param context: A standard dictionary + @return: A dictionary of values """ + type1 = context['type'] or 'move_history_ids' field = context['field'] or 'tracking_id' obj = self.pool.get('stock.move') diff --git a/addons/stock/wizard/stock_ups.py b/addons/stock/wizard/stock_ups.py index 5bde686402f..aeefcd0d106 100644 --- a/addons/stock/wizard/stock_ups.py +++ b/addons/stock/wizard/stock_ups.py @@ -31,25 +31,25 @@ class stock_ups(osv.osv_memory): _description = "Stock ups" def ups_save(self, cr, uid, ids, context = {}): - return { - 'name': False, - 'view_type': 'form', - 'view_mode': 'form', - 'res_model': 'stock.ups.final', - 'type': 'ir.actions.act_window', - 'target':'new', - } + 'name': False, + 'view_type': 'form', + 'view_mode': 'form', + 'res_model': 'stock.ups.final', + 'type': 'ir.actions.act_window', + 'target':'new', + } + def ups_upload(self, cr, uid, ids, context = {}): - return { - 'name': False, - 'view_type': 'form', - 'view_mode': 'form', - 'res_model': 'stock.ups.upload', - 'type': 'ir.actions.act_window', - 'target':'new', - } + 'name': False, + 'view_type': 'form', + 'view_mode': 'form', + 'res_model': 'stock.ups.upload', + 'type': 'ir.actions.act_window', + 'target':'new', + } + _columns = { 'weight': fields.float('Lot weight', required=True), } @@ -64,6 +64,9 @@ class stock_ups_final(osv.osv_memory): _description = "Stock ups final" def create_xmlfile(self, cr, uid, ids, context = {}): + """ Creates xml report file. + @return: xml file + """ report = netsvc._group['report']['report.stock.move.lot.ups_xml'] data['report_type'] = 'raw' return {'xmlfile' : report.create(uid, context['active_id'], ids, {})} @@ -79,6 +82,9 @@ class stock_ups_upload(osv.osv_memory): _description = "Stock ups upload" def upload_xmlfile(self, cr, uid, ids, context = {}): + """ Uploads xml report file. + @return: + """ report = netsvc._group['report']['report.stock.move.lot.ups_xml'] data['report_type'] = 'raw' #FIXME: this seems unfinished