[Merge]: Merge with trunk addons
bzr revid: rpa@openerp.co.in-20100223062048-93063oqte755hkvr
This commit is contained in:
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-12-20 12:49+0000\n"
|
||||
"Last-Translator: Hend Awad <Unknown>\n"
|
||||
"PO-Revision-Date: 2010-02-22 08:34+0000\n"
|
||||
"Last-Translator: some one <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2009-12-21 04:43+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-02-23 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account
|
||||
|
||||
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-02-21 23:52+0000\n"
|
||||
"Last-Translator: Holverat Bortolossi <holverat@gmail.com>\n"
|
||||
"PO-Revision-Date: 2010-02-22 21:38+0000\n"
|
||||
"Last-Translator: sbrianti <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-02-22 04:41+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-02-23 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account
|
||||
@@ -1340,7 +1340,7 @@ msgstr "Modelo"
|
||||
#: model:ir.actions.wizard,name:account.wizard_fiscalyear_close_state
|
||||
#: model:ir.ui.menu,name:account.menu_wizard_fy_close_state
|
||||
msgid "Close a Fiscal Year"
|
||||
msgstr "Fechar ano fiscal"
|
||||
msgstr "Fechar um ano fiscal"
|
||||
|
||||
#. module: account
|
||||
#: field:account.journal,centralisation:0
|
||||
@@ -1355,7 +1355,7 @@ msgstr "Mensagem:"
|
||||
#. module: account
|
||||
#: model:process.node,note:account.process_node_supplierpaymentorder0
|
||||
msgid "Select invoices you want to pay and manages advances"
|
||||
msgstr "Selecionar faturaa s pagar e administrar vantagens"
|
||||
msgstr "Selecionar as faturas que você quer pagar e adiantamentos a fazer"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.account,type:0
|
||||
@@ -1389,7 +1389,7 @@ msgstr "O método de calculo para o valor do imposto."
|
||||
#: model:process.node,note:account.process_node_accountingentries0
|
||||
#: model:process.node,note:account.process_node_supplieraccountingentries0
|
||||
msgid "Validated accounting entries."
|
||||
msgstr "Lançamentos de conta validado"
|
||||
msgstr "Lançamentos contábeis validados"
|
||||
|
||||
#. module: account
|
||||
#: wizard_view:account.move.line.unreconcile,init:0
|
||||
@@ -1398,8 +1398,9 @@ msgid ""
|
||||
"If you unreconciliate transactions, you must also verify all the actions "
|
||||
"that are linked to those transactions because they will not be disable"
|
||||
msgstr ""
|
||||
"Se você não concilia transações, você também deve verificar todas as ações "
|
||||
"que estão ligadas a essas operações, porque não será desativaadas"
|
||||
"Se você desfazer a reconciliação de transações, você deve também verificar "
|
||||
"todas as ações que estão ligadas a essas operações, porque elas não serão "
|
||||
"desfeitas pelo sistema"
|
||||
|
||||
#. module: account
|
||||
#: model:process.node,name:account.process_node_electronicfile0
|
||||
|
||||
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.4\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-02-16 14:07+0000\n"
|
||||
"PO-Revision-Date: 2010-02-22 12:42+0000\n"
|
||||
"Last-Translator: adnan <adnankraljic@yahoo.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-02-17 04:56+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-02-23 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_balance
|
||||
@@ -73,27 +73,27 @@ msgstr "Odaberite razdoblja"
|
||||
#. module: account_balance
|
||||
#: selection:account.balance.account.balance.report,init,compare_pattern:0
|
||||
msgid "Percentage"
|
||||
msgstr ""
|
||||
msgstr "Procenat"
|
||||
|
||||
#. module: account_balance
|
||||
#: wizard_field:account.balance.account.balance.report,init,compare_pattern:0
|
||||
msgid "Compare Selected Years In Terms Of"
|
||||
msgstr ""
|
||||
msgstr "Usporedi odabrane godine pod uvjetima"
|
||||
|
||||
#. module: account_balance
|
||||
#: wizard_view:account.balance.account.balance.report,init:0
|
||||
msgid "Select Fiscal Year(s)(Maximum Three Years)"
|
||||
msgstr ""
|
||||
msgstr "Odaberite fiskalne godine (Maksimalno 3 godine)"
|
||||
|
||||
#. module: account_balance
|
||||
#: wizard_field:account.balance.account.balance.report,init,select_account:0
|
||||
msgid "Select Reference Account(for % comparision)"
|
||||
msgstr ""
|
||||
msgstr "Izaberi odgovarajuća konta (za poređenje u %)"
|
||||
|
||||
#. module: account_balance
|
||||
#: model:ir.actions.wizard,name:account_balance.wizard_account_balance_report
|
||||
msgid "Account balance-Compare Years"
|
||||
msgstr ""
|
||||
msgstr "Saldo konta - poredi godine"
|
||||
|
||||
#. module: account_balance
|
||||
#: model:ir.module.module,description:account_balance.module_meta_information
|
||||
@@ -120,108 +120,108 @@ msgstr ""
|
||||
#. module: account_balance
|
||||
#: wizard_view:account.balance.account.balance.report,backtoinit:0
|
||||
msgid "You have to select 'Landscape' option. Please Check it."
|
||||
msgstr ""
|
||||
msgstr "Morate odabrati opciju 'Položeno'. Molimo označite je."
|
||||
|
||||
#. module: account_balance
|
||||
#: wizard_field:account.balance.account.balance.report,init,landscape:0
|
||||
msgid "Show Report in Landscape Form"
|
||||
msgstr ""
|
||||
msgstr "Prikaži izvješće u položenoj formi"
|
||||
|
||||
#. module: account_balance
|
||||
#: help:account.balance.account.balance.report,init,periods:0
|
||||
msgid "All periods if empty"
|
||||
msgstr ""
|
||||
msgstr "Ako je prazno, sva razdoblja"
|
||||
|
||||
#. module: account_balance
|
||||
#: selection:account.balance.account.balance.report,init,account_choice:0
|
||||
msgid "With balance is not equal to 0"
|
||||
msgstr ""
|
||||
msgstr "Sa saldom različit od 0"
|
||||
|
||||
#. module: account_balance
|
||||
#: rml:account.account.balance.landscape:0
|
||||
#: rml:account.balance.account.balance:0
|
||||
msgid "Total :"
|
||||
msgstr ""
|
||||
msgstr "Ukupno :"
|
||||
|
||||
#. module: account_balance
|
||||
#: rml:account.account.balance.landscape:0
|
||||
#: rml:account.balance.account.balance:0
|
||||
msgid "Account Balance -"
|
||||
msgstr ""
|
||||
msgstr "Saldo računa -"
|
||||
|
||||
#. module: account_balance
|
||||
#: wizard_field:account.balance.account.balance.report,init,format_perc:0
|
||||
msgid "Show Comparision in %"
|
||||
msgstr ""
|
||||
msgstr "Prikaži usporedbu u %"
|
||||
|
||||
#. module: account_balance
|
||||
#: wizard_view:account.balance.account.balance.report,init:0
|
||||
msgid "Select Period"
|
||||
msgstr ""
|
||||
msgstr "Odaberite razdoblje"
|
||||
|
||||
#. module: account_balance
|
||||
#: wizard_view:account.balance.account.balance.report,init:0
|
||||
msgid "Report Options"
|
||||
msgstr ""
|
||||
msgstr "Postavke izvješća"
|
||||
|
||||
#. module: account_balance
|
||||
#: selection:account.balance.account.balance.report,init,account_choice:0
|
||||
msgid "With movements"
|
||||
msgstr ""
|
||||
msgstr "Sa kretanjima"
|
||||
|
||||
#. module: account_balance
|
||||
#: wizard_button:account.balance.account.balance.report,backtoinit,end:0
|
||||
#: wizard_button:account.balance.account.balance.report,zero_years,end:0
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
msgstr "Uredu"
|
||||
|
||||
#. module: account_balance
|
||||
#: selection:account.balance.account.balance.report,init,compare_pattern:0
|
||||
msgid "Cash"
|
||||
msgstr ""
|
||||
msgstr "Gotovina"
|
||||
|
||||
#. module: account_balance
|
||||
#: selection:account.balance.account.balance.report,init,compare_pattern:0
|
||||
msgid "Don't Compare"
|
||||
msgstr ""
|
||||
msgstr "Ne uspoređuj"
|
||||
|
||||
#. module: account_balance
|
||||
#: wizard_field:account.balance.account.balance.report,init,account_choice:0
|
||||
msgid "Show Accounts"
|
||||
msgstr ""
|
||||
msgstr "Prikaži račune"
|
||||
|
||||
#. module: account_balance
|
||||
#: rml:account.account.balance.landscape:0
|
||||
#: rml:account.balance.account.balance:0
|
||||
msgid "Credit"
|
||||
msgstr ""
|
||||
msgstr "Potražuje"
|
||||
|
||||
#. module: account_balance
|
||||
#: wizard_view:account.balance.account.balance.report,backtoinit:0
|
||||
msgid "1. You have selected more than 3 years in any case."
|
||||
msgstr ""
|
||||
msgstr "1. Odabrali ste više od 3 godine u svakom slučaju."
|
||||
|
||||
#. module: account_balance
|
||||
#: model:ir.module.module,shortdesc:account_balance.module_meta_information
|
||||
msgid "Accounting and financial management-Compare Accounts"
|
||||
msgstr ""
|
||||
msgstr "Upravljanje računovodstvom i finansijama - Usporedi konta"
|
||||
|
||||
#. module: account_balance
|
||||
#: rml:account.account.balance.landscape:0
|
||||
#: rml:account.balance.account.balance:0
|
||||
msgid "Year :"
|
||||
msgstr ""
|
||||
msgstr "Godina:"
|
||||
|
||||
#. module: account_balance
|
||||
#: wizard_view:account.balance.account.balance.report,backtoinit:0
|
||||
msgid "You can select maximum 3 years. Please check again."
|
||||
msgstr ""
|
||||
msgstr "Možete odabrati maksimalno 3 godine. Molimo pokušajte ponovno."
|
||||
|
||||
#. module: account_balance
|
||||
#: rml:account.account.balance.landscape:0
|
||||
#: rml:account.balance.account.balance:0
|
||||
msgid "Balance"
|
||||
msgstr ""
|
||||
msgstr "Saldo"
|
||||
|
||||
#. module: account_balance
|
||||
#: wizard_view:account.balance.account.balance.report,backtoinit:0
|
||||
@@ -229,27 +229,30 @@ msgid ""
|
||||
"3. You have selected 'Percentage' option with more than 2 years, but you "
|
||||
"have not selected landscape format."
|
||||
msgstr ""
|
||||
"Izabrali ste \"Postotak\" opciju sa više od dvije godine, ali niste odabrali "
|
||||
"\"Položeni\" format."
|
||||
|
||||
#. module: account_balance
|
||||
#: wizard_view:account.balance.account.balance.report,backtoinit:0
|
||||
msgid ""
|
||||
"You might have done following mistakes. Please correct them and try again."
|
||||
msgstr ""
|
||||
"Možda ste napravili sljedeće pogreške. Ispravite ih i pokušajte ponovno."
|
||||
|
||||
#. module: account_balance
|
||||
#: help:account.balance.account.balance.report,init,select_account:0
|
||||
msgid "Keep empty for comparision to its parent"
|
||||
msgstr ""
|
||||
msgstr "Ostavite prazno za usporedbu sa roditeljem"
|
||||
|
||||
#. module: account_balance
|
||||
#: selection:account.balance.account.balance.report,init,period_manner:0
|
||||
msgid "Creation Date"
|
||||
msgstr ""
|
||||
msgstr "Datum kreiranja"
|
||||
|
||||
#. module: account_balance
|
||||
#: wizard_field:account.balance.account.balance.report,init,fiscalyear:0
|
||||
msgid "Fiscal year"
|
||||
msgstr ""
|
||||
msgstr "Fiskalna godina"
|
||||
|
||||
#. module: account_balance
|
||||
#: wizard_view:account.balance.account.balance.report,backtoinit:0
|
||||
@@ -257,11 +260,12 @@ msgid ""
|
||||
"2. You have not selected 'Percentage' option, but you have selected more "
|
||||
"than 2 years."
|
||||
msgstr ""
|
||||
"2. Niste odabrali opciju 'Postotak', ali ste odabrali više od 2 godine."
|
||||
|
||||
#. module: account_balance
|
||||
#: wizard_field:account.balance.account.balance.report,init,periods:0
|
||||
msgid "Periods"
|
||||
msgstr ""
|
||||
msgstr "Razdoblja"
|
||||
|
||||
#. module: account_balance
|
||||
#: wizard_view:account.balance.account.balance.report,zero_years:0
|
||||
@@ -270,18 +274,21 @@ msgid ""
|
||||
"credit/debit columns and % option.This can lead contents to be printed out "
|
||||
"of the paper.Please try again."
|
||||
msgstr ""
|
||||
"Postoji mogućnost da ste odabrali postavke usporedbe sa više od 1 godine sa "
|
||||
"stupcima duguje/potražuje i % opcijom. Ovo može biti uzrok ispisa van "
|
||||
"papira. Molimo pokušajte ponovno."
|
||||
|
||||
#. module: account_balance
|
||||
#: wizard_button:account.balance.account.balance.report,init,end:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
msgstr "Odustani"
|
||||
|
||||
#. module: account_balance
|
||||
#: wizard_view:account.balance.account.balance.report,zero_years:0
|
||||
msgid "You have to select at least 1 Fiscal Year. Try again."
|
||||
msgstr ""
|
||||
msgstr "Morate odabrati bar 1 fiskalnu godinu. Pokušajte ponovno."
|
||||
|
||||
#. module: account_balance
|
||||
#: wizard_view:account.balance.account.balance.report,init:0
|
||||
msgid "Customize Report"
|
||||
msgstr ""
|
||||
msgstr "Prilagodite izvješće"
|
||||
|
||||
+46
-26
@@ -587,7 +587,7 @@ class mrp_production(osv.osv):
|
||||
|
||||
#TODO Review materials in function in_prod and prod_end.
|
||||
def action_production_end(self, cr, uid, ids):
|
||||
# move_ids = []
|
||||
move_ids = []
|
||||
for production in self.browse(cr, uid, ids):
|
||||
for res in production.move_lines:
|
||||
for move in production.move_created_ids:
|
||||
@@ -595,7 +595,7 @@ class mrp_production(osv.osv):
|
||||
cr.execute('INSERT INTO stock_move_history_ids \
|
||||
(parent_id, child_id) VALUES (%s,%s)',
|
||||
(res.id, move.id))
|
||||
# move_ids.append(res.id)
|
||||
move_ids.append(res.id)
|
||||
vals= {'state':'confirmed'}
|
||||
new_moves = [x.id for x in production.move_created_ids]
|
||||
self.pool.get('stock.move').write(cr, uid, new_moves, vals)
|
||||
@@ -657,14 +657,7 @@ class mrp_production(osv.osv):
|
||||
# self.write(cr, uid, ids, {'state': 'in_production'})
|
||||
return True
|
||||
def action_in_production(self, cr, uid, ids):
|
||||
move_ids = []
|
||||
for production in self.browse(cr, uid, ids):
|
||||
for res in production.move_lines:
|
||||
move_ids.append(res.id)
|
||||
if not production.date_start:
|
||||
self.write(cr, uid, [production.id],
|
||||
{'date_start': time.strftime('%Y-%m-%d %H:%M:%S')})
|
||||
# self.pool.get('stock.move').action_done(cr, uid, move_ids)
|
||||
move_ids = []
|
||||
self.write(cr, uid, ids, {'state': 'in_production'})
|
||||
return True
|
||||
|
||||
@@ -1372,24 +1365,36 @@ class StockMove(osv.osv):
|
||||
return {}
|
||||
|
||||
def consume_moves(self, cr, uid, ids, product_qty, location_id, context=None):
|
||||
new_move = super(StockMove, self).consume_moves(cr, uid, ids, product_qty, location_id, context=context)
|
||||
if new_move:
|
||||
production_obj = self.pool.get('mrp.production')
|
||||
move_obj = self.pool.get('stock.move')
|
||||
move = move_obj.browse(cr, uid, ids)
|
||||
res = []
|
||||
production_obj = self.pool.get('mrp.production')
|
||||
for move in self.browse(cr, uid, ids):
|
||||
new_moves = super(StockMove, self).consume_moves(cr, uid, ids, product_qty, location_id, context=context)
|
||||
production_ids = production_obj.search(cr, uid, [('move_lines', 'in', [move.id])])
|
||||
production_obj.write(cr, uid, production_ids, {'move_lines': [(4, new_move)]})
|
||||
return {}
|
||||
|
||||
def scrap_moves(self, cr, uid, ids, product_qty, location_id, context=None):
|
||||
new_move = super(StockMove, self).scrap_moves(cr, uid, ids, product_qty, location_id, context=context)
|
||||
if new_move:
|
||||
production_obj = self.pool.get('mrp.production')
|
||||
move_obj = self.pool.get('stock.move')
|
||||
move = move_obj.browse(cr, uid, ids)
|
||||
for new_move in new_moves:
|
||||
production_obj.write(cr, uid, production_ids, {'move_lines': [(4, new_move)]})
|
||||
res.append(new_move)
|
||||
return res
|
||||
|
||||
def split_lines(self, cr, uid, ids, quantity, split_by_qty=1, prefix=False, context=None):
|
||||
res = []
|
||||
production_obj = self.pool.get('mrp.production')
|
||||
for move in self.browse(cr, uid, ids):
|
||||
new_moves = super(StockMove, self).split_lines(cr, uid, [move.id], quantity, split_by_qty, prefix, context=context)
|
||||
production_ids = production_obj.search(cr, uid, [('move_lines', 'in', [move.id])])
|
||||
production_obj.write(cr, uid, production_ids, {'move_lines': [(4, new_move)]})
|
||||
return {}
|
||||
for new_move in new_moves:
|
||||
production_obj.write(cr, uid, production_ids, {'move_lines': [(4, new_move)]})
|
||||
res.append(new_move)
|
||||
return res
|
||||
def scrap_moves(self, cr, uid, ids, quantity, location_dest_id, context=None):
|
||||
res = []
|
||||
production_obj = self.pool.get('mrp.production')
|
||||
for move in self.browse(cr, uid, ids):
|
||||
new_moves = super(StockMove, self).scrap_moves(cr, uid, [move.id], quantity, location_dest_id, context=context)
|
||||
production_ids = production_obj.search(cr, uid, [('move_lines', 'in', [move.id])])
|
||||
for new_move in new_moves:
|
||||
production_obj.write(cr, uid, production_ids, {'move_lines': [(4, new_move)]})
|
||||
res.append(new_move)
|
||||
return res
|
||||
|
||||
StockMove()
|
||||
|
||||
@@ -1418,5 +1423,20 @@ class StockPicking(osv.osv):
|
||||
|
||||
StockPicking()
|
||||
|
||||
|
||||
class spilt_in_production_lot(osv.osv_memory):
|
||||
_inherit = "stock.move.spilt"
|
||||
def split(self, cr, uid, ids, move_ids, context=None):
|
||||
production_obj = self.pool.get('mrp.production')
|
||||
move_obj = self.pool.get('stock.move')
|
||||
res = []
|
||||
for move in move_obj.browse(cr, uid, move_ids, context=context):
|
||||
new_moves = super(spilt_in_production_lot, self).split(cr, uid, ids, move_ids, context=context)
|
||||
production_ids = production_obj.search(cr, uid, [('move_lines', 'in', [move.id])])
|
||||
for new_move in new_moves:
|
||||
production_obj.write(cr, uid, production_ids, {'move_lines': [(4, new_move)]})
|
||||
return res
|
||||
spilt_in_production_lot()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
|
||||
@@ -531,10 +531,8 @@
|
||||
<field name="state" select="2"/>
|
||||
<button name="action_compute" states="draft" string="Compute Data" type="object" icon="gtk-execute"/>
|
||||
<button name="button_confirm" states="draft" string="Confirm Production" icon="gtk-apply"/>
|
||||
<!-- <button name="action_start" states="ready" string="Mark as Start" icon="gtk-media-play" type="object"/>-->
|
||||
<button name="button_produce" states="ready" string="Produce" icon="gtk-execute"/>
|
||||
<!-- <button name="%(move_produce)d" states="ready" string="Produce" icon="gtk-execute" type="action"/>-->
|
||||
<button name="button_produce_done" states="in_production" string="Production done" icon="gtk-ok"/>
|
||||
<button name="button_produce" states="ready" string="Mark as Start" icon="gtk-execute"/>
|
||||
<button name="button_produce_done" states="in_production" string="Production" icon="gtk-ok"/>
|
||||
<button name="force_production" states="confirmed,picking_except" string="Force Reservation" type="object" icon="gtk-jump-to"/>
|
||||
<button name="button_cancel" states="draft,ready,confirmed,in_production,picking_except" string="Cancel" icon="gtk-cancel"/>
|
||||
<button name="button_recreate" states="picking_except" string="Recreate Picking" icon="gtk-convert"/>
|
||||
@@ -546,7 +544,7 @@
|
||||
<page string="Finished Products">
|
||||
<field colspan="2" name="move_created_ids" nolabel="1" widget="one2many_list"
|
||||
mode="tree,form" height="275" domain="[('state','<>', ('done', 'cancel'))]">
|
||||
<tree string="Products to Consume">
|
||||
<tree string="Products to Finish">
|
||||
<field name="product_id" />
|
||||
<field name="product_qty" />
|
||||
<field name="product_uom" />
|
||||
@@ -561,7 +559,7 @@
|
||||
icon="gtk-justify-fill" context="{'scrap': True}"
|
||||
states="draft,waiting,confirmed,assigned" />
|
||||
</tree>
|
||||
<form string="Products to Consume">
|
||||
<form string="Products to Finish">
|
||||
<field name="product_id" />
|
||||
<field name="product_qty" />
|
||||
<field name="product_uom" />
|
||||
@@ -570,7 +568,7 @@
|
||||
|
||||
<field colspan="2" name="move_created_ids2" nolabel="1" domain="[('state','in', ('done', 'cancel'))]"
|
||||
widget="one2many_list" mode="tree,form" height="275">
|
||||
<tree string="Consumed Products" editable="bottom">
|
||||
<tree string="Finished Products" editable="bottom">
|
||||
<field name="product_id" readonly="1"/>
|
||||
<field name="product_qty" readonly="1"/>
|
||||
<field name="product_uom" readonly="1" />
|
||||
@@ -583,7 +581,7 @@
|
||||
string="D" type="action" icon="gtk-go-forward"
|
||||
states="done,cancel" />
|
||||
</tree>
|
||||
<form string="Consumed Products">
|
||||
<form string="Finished Products">
|
||||
<field name="product_id" />
|
||||
<field name="product_qty" />
|
||||
<field name="product_uom" />
|
||||
|
||||
@@ -8,19 +8,19 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-09-08 12:10+0000\n"
|
||||
"Last-Translator: ekodaq <ceo@ekosdaq.com>\n"
|
||||
"PO-Revision-Date: 2010-02-22 13:22+0000\n"
|
||||
"Last-Translator: barge <Unknown>\n"
|
||||
"Language-Team: Korean <ko@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2009-12-16 05:21+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-02-23 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: mrp_operations
|
||||
#: model:process.node,name:mrp_operations.process_node_startoperation0
|
||||
msgid "Start Operation"
|
||||
msgstr "오퍼레이션 시작"
|
||||
msgstr "작업 시작"
|
||||
|
||||
#. module: mrp_operations
|
||||
#: selection:mrp.production.workcenter.line,state:0
|
||||
@@ -32,7 +32,7 @@ msgstr "진행 중"
|
||||
#: selection:mrp.production.workcenter.line,state:0
|
||||
#: selection:mrp_operations.operation.code,start_stop:0
|
||||
msgid "Pause"
|
||||
msgstr "중지"
|
||||
msgstr "일시정지"
|
||||
|
||||
#. module: mrp_operations
|
||||
#: constraint:ir.model:0
|
||||
|
||||
@@ -7,20 +7,20 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-11-17 06:55+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
|
||||
"PO-Revision-Date: 2010-02-22 18:07+0000\n"
|
||||
"Last-Translator: Luiz Fernando M.França <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2009-12-16 05:09+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-02-23 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: process
|
||||
#: view:process.node:0
|
||||
#: view:process.process:0
|
||||
msgid "Process Node"
|
||||
msgstr ""
|
||||
msgstr "Nó do processo"
|
||||
|
||||
#. module: process
|
||||
#: constraint:ir.model:0
|
||||
@@ -33,7 +33,7 @@ msgstr ""
|
||||
#. module: process
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr ""
|
||||
msgstr "Nome de modelo inválido na definição da ação."
|
||||
|
||||
#. module: process
|
||||
#: view:process.node:0
|
||||
@@ -78,7 +78,7 @@ msgstr "URL de ajuda"
|
||||
#: view:process.node:0
|
||||
#: view:process.process:0
|
||||
msgid "Process Nodes"
|
||||
msgstr ""
|
||||
msgstr "Nós do processo"
|
||||
|
||||
#. module: process
|
||||
#: view:process.process:0
|
||||
@@ -111,7 +111,7 @@ msgstr "Descrição"
|
||||
#. module: process
|
||||
#: model:ir.model,name:process.model_process_transition_action
|
||||
msgid "Process Transitions Actions"
|
||||
msgstr ""
|
||||
msgstr "Processar ações de transições"
|
||||
|
||||
#. module: process
|
||||
#: field:process.condition,model_id:0
|
||||
@@ -128,7 +128,7 @@ msgstr "Nó de origem"
|
||||
#. module: process
|
||||
#: field:process.transition,transition_ids:0
|
||||
msgid "Workflow Transitions"
|
||||
msgstr ""
|
||||
msgstr "Transições de Workflow"
|
||||
|
||||
#. module: process
|
||||
#: field:process.transition.action,action:0
|
||||
@@ -138,7 +138,7 @@ msgstr "Ação ID"
|
||||
#. module: process
|
||||
#: view:process.transition:0
|
||||
msgid "Process Transition"
|
||||
msgstr ""
|
||||
msgstr "Transição de processo"
|
||||
|
||||
#. module: process
|
||||
#: model:ir.model,name:process.model_process_condition
|
||||
@@ -251,7 +251,7 @@ msgstr "Processo"
|
||||
#. module: process
|
||||
#: model:ir.module.module,shortdesc:process.module_meta_information
|
||||
msgid "Enterprise Process"
|
||||
msgstr ""
|
||||
msgstr "Processos de negócios"
|
||||
|
||||
#. module: process
|
||||
#: view:process.node:0
|
||||
@@ -263,14 +263,14 @@ msgstr "Ações"
|
||||
#. module: process
|
||||
#: field:process.node,model_states:0
|
||||
msgid "States Expression"
|
||||
msgstr ""
|
||||
msgstr "Expressão de estado"
|
||||
|
||||
#. module: process
|
||||
#: model:ir.actions.act_window,name:process.action_process_transition_form
|
||||
#: model:ir.model,name:process.model_process_transition
|
||||
#: model:ir.ui.menu,name:process.menu_process_transition_form
|
||||
msgid "Process Transitions"
|
||||
msgstr ""
|
||||
msgstr "Transições de Processos"
|
||||
|
||||
#. module: process
|
||||
#: field:process.transition,target_node_id:0
|
||||
@@ -286,7 +286,7 @@ msgstr "Tipo de nó"
|
||||
#: view:process.node:0
|
||||
#: view:process.process:0
|
||||
msgid "Outgoing Transitions"
|
||||
msgstr ""
|
||||
msgstr "Transições de saida"
|
||||
|
||||
#. module: process
|
||||
#: model:ir.ui.menu,name:process.menu_process
|
||||
|
||||
+177
-140
File diff suppressed because it is too large
Load Diff
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.4\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-02-21 19:41+0000\n"
|
||||
"PO-Revision-Date: 2010-02-22 17:33+0000\n"
|
||||
"Last-Translator: Anders Eriksson <ae@mobilasystem.se>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-02-22 04:41+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-02-23 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: project
|
||||
@@ -146,7 +146,7 @@ msgstr "Aktivtetstyoer"
|
||||
#. module: project
|
||||
#: view:project.project:0
|
||||
msgid "New Project Based on Template"
|
||||
msgstr ""
|
||||
msgstr "Nytt projekt baserat på en mall"
|
||||
|
||||
#. module: project
|
||||
#: model:ir.actions.act_window,name:project.dblc_proj
|
||||
@@ -235,7 +235,7 @@ msgstr "Starta aktivitet"
|
||||
#: model:ir.actions.act_window,name:project.action_view_task5_prog_draft
|
||||
#: model:ir.ui.menu,name:project.menu_tasks_yours_prog_draft
|
||||
msgid "My Draft Tasks"
|
||||
msgstr ""
|
||||
msgstr "Mina preliminära aktiviteter"
|
||||
|
||||
#. module: project
|
||||
#: view:project.project:0
|
||||
|
||||
+29
-27
@@ -7,19 +7,19 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-09-08 16:29+0000\n"
|
||||
"PO-Revision-Date: 2010-02-22 21:23+0000\n"
|
||||
"Last-Translator: lem0na <nickyk@gmx.net>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2009-12-16 05:05+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-02-23 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: purchase
|
||||
#: field:purchase.order,invoiced:0
|
||||
msgid "Invoiced & Paid"
|
||||
msgstr ""
|
||||
msgstr "Фактуриран и платен"
|
||||
|
||||
#. module: purchase
|
||||
#: model:process.node,note:purchase.process_node_invoiceafterpacking0
|
||||
@@ -29,7 +29,7 @@ msgstr ""
|
||||
#. module: purchase
|
||||
#: field:purchase.order,location_id:0
|
||||
msgid "Destination"
|
||||
msgstr ""
|
||||
msgstr "Назначение"
|
||||
|
||||
#. module: purchase
|
||||
#: selection:purchase.order,invoice_method:0
|
||||
@@ -39,52 +39,52 @@ msgstr ""
|
||||
#. module: purchase
|
||||
#: rml:purchase.order:0
|
||||
msgid "Validated By"
|
||||
msgstr ""
|
||||
msgstr "Проверрено от"
|
||||
|
||||
#. module: purchase
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr ""
|
||||
msgstr "Невалидно име на модел при задаване на действие"
|
||||
|
||||
#. module: purchase
|
||||
#: field:purchase.order,partner_id:0
|
||||
msgid "Supplier"
|
||||
msgstr ""
|
||||
msgstr "Доставчик"
|
||||
|
||||
#. module: purchase
|
||||
#: view:purchase.order:0
|
||||
msgid "Delivery"
|
||||
msgstr ""
|
||||
msgstr "Доставка"
|
||||
|
||||
#. module: purchase
|
||||
#: field:purchase.order.line,product_qty:0
|
||||
msgid "Quantity"
|
||||
msgstr ""
|
||||
msgstr "Количество"
|
||||
|
||||
#. module: purchase
|
||||
#: selection:purchase.order,invoice_method:0
|
||||
msgid "From Order"
|
||||
msgstr ""
|
||||
msgstr "От поръчка"
|
||||
|
||||
#. module: purchase
|
||||
#: model:process.node,name:purchase.process_node_confirmpurchaseorder0
|
||||
msgid "Confirmed Purchase"
|
||||
msgstr ""
|
||||
msgstr "Потвърдена поръчка"
|
||||
|
||||
#. module: purchase
|
||||
#: selection:purchase.order,state:0
|
||||
msgid "Invoice Exception"
|
||||
msgstr ""
|
||||
msgstr "Грешка при фактуриране"
|
||||
|
||||
#. module: purchase
|
||||
#: model:product.pricelist,name:purchase.list0
|
||||
msgid "Default Purchase Pricelist"
|
||||
msgstr ""
|
||||
msgstr "Ценова листа при покупка (по подрабиране)"
|
||||
|
||||
#. module: purchase
|
||||
#: model:process.transition.action,name:purchase.process_transition_action_invoicefrompurchaseorder0
|
||||
msgid "Create invoice"
|
||||
msgstr ""
|
||||
msgstr "Създаване на фактура"
|
||||
|
||||
#. module: purchase
|
||||
#: help:res.partner,property_product_pricelist_purchase:0
|
||||
@@ -92,11 +92,13 @@ msgid ""
|
||||
"This pricelist will be used, instead of the default one, for purchases from "
|
||||
"the current partner"
|
||||
msgstr ""
|
||||
"За поръчки от текущия партньор ще се използва тази ценова листа вместо тази "
|
||||
"по подразбиране"
|
||||
|
||||
#. module: purchase
|
||||
#: rml:purchase.order:0
|
||||
msgid "Fax :"
|
||||
msgstr ""
|
||||
msgstr "Факс :"
|
||||
|
||||
#. module: purchase
|
||||
#: model:process.transition,note:purchase.process_transition_productrecept0
|
||||
@@ -113,33 +115,33 @@ msgstr ""
|
||||
#. module: purchase
|
||||
#: model:process.process,name:purchase.process_process_purchaseprocess0
|
||||
msgid "Purchase Process"
|
||||
msgstr ""
|
||||
msgstr "Обработка на покупка"
|
||||
|
||||
#. module: purchase
|
||||
#: model:process.transition,name:purchase.process_transition_invoicefrompackinglist0
|
||||
msgid "Invoice from Packing list"
|
||||
msgstr ""
|
||||
msgstr "Фактура от списък за пакетиране"
|
||||
|
||||
#. module: purchase
|
||||
#: view:purchase.order:0
|
||||
msgid "Approve Purchase"
|
||||
msgstr ""
|
||||
msgstr "Одобряване на покупказ"
|
||||
|
||||
#. module: purchase
|
||||
#: selection:purchase.order,state:0
|
||||
msgid "Approved"
|
||||
msgstr ""
|
||||
msgstr "Одобрен"
|
||||
|
||||
#. module: purchase
|
||||
#: model:ir.actions.act_window,name:purchase.purchase_form_action4
|
||||
#: model:ir.ui.menu,name:purchase.menu_purchase_form_action4
|
||||
msgid "Purchase Orders in Progress"
|
||||
msgstr ""
|
||||
msgstr "Активни заявки за покупка"
|
||||
|
||||
#. module: purchase
|
||||
#: field:purchase.order,amount_untaxed:0
|
||||
msgid "Untaxed Amount"
|
||||
msgstr ""
|
||||
msgstr "Необложена сума"
|
||||
|
||||
#. module: purchase
|
||||
#: view:purchase.order:0
|
||||
@@ -147,14 +149,14 @@ msgstr ""
|
||||
#: view:purchase.order.line:0
|
||||
#: field:purchase.order.line,notes:0
|
||||
msgid "Notes"
|
||||
msgstr ""
|
||||
msgstr "Бележки"
|
||||
|
||||
#. module: purchase
|
||||
#: rml:purchase.order:0
|
||||
#: field:purchase.order,amount_tax:0
|
||||
#: field:purchase.order.line,taxes_id:0
|
||||
msgid "Taxes"
|
||||
msgstr ""
|
||||
msgstr "Данъци"
|
||||
|
||||
#. module: purchase
|
||||
#: model:ir.actions.report.xml,name:purchase.report_purchase_order
|
||||
@@ -163,22 +165,22 @@ msgstr ""
|
||||
#: model:res.request.link,name:purchase.req_link_purchase_order
|
||||
#: field:stock.picking,purchase_id:0
|
||||
msgid "Purchase Order"
|
||||
msgstr ""
|
||||
msgstr "Поръчка за покупка"
|
||||
|
||||
#. module: purchase
|
||||
#: rml:purchase.quotation:0
|
||||
msgid "Regards,"
|
||||
msgstr ""
|
||||
msgstr "Благодарности,"
|
||||
|
||||
#. module: purchase
|
||||
#: rml:purchase.order:0
|
||||
msgid "Net Total :"
|
||||
msgstr ""
|
||||
msgstr "Общо нето :"
|
||||
|
||||
#. module: purchase
|
||||
#: selection:purchase.order,state:0
|
||||
msgid "Cancelled"
|
||||
msgstr ""
|
||||
msgstr "Отказан"
|
||||
|
||||
#. module: purchase
|
||||
#: help:purchase.order,state:0
|
||||
|
||||
+171
-146
File diff suppressed because it is too large
Load Diff
@@ -45,7 +45,7 @@ Thanks to the double entry management, the inventory controlling is powerful and
|
||||
"stock_data.xml",
|
||||
"stock_incoterms.xml",
|
||||
"stock_wizard.xml",
|
||||
"stock_osv_wizards.xml",
|
||||
"stock_wizard_view.xml",
|
||||
"stock_view.xml",
|
||||
"stock_report.xml",
|
||||
"stock_sequence.xml",
|
||||
|
||||
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-01-04 12:56+0000\n"
|
||||
"Last-Translator: Hilario J. Montoliu (hjmf) <Unknown>\n"
|
||||
"PO-Revision-Date: 2010-02-22 23:58+0000\n"
|
||||
"Last-Translator: Rodrigo Testa <rod-95@live.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-01-05 04:40+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-02-23 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: stock
|
||||
@@ -658,6 +658,11 @@ msgstr "Fecha realizado"
|
||||
msgid "Expected Shipping Date"
|
||||
msgstr "Fecha de envío prevista"
|
||||
|
||||
#. module: stock
|
||||
#: rml:stock.picking.list:0
|
||||
msgid "Shipping Address :"
|
||||
msgstr "Dirección de envío:"
|
||||
|
||||
#. module: stock
|
||||
#: view:stock.tracking:0
|
||||
msgid "Tracking/Serial"
|
||||
|
||||
+113
-167
@@ -857,12 +857,15 @@ class stock_production_lot(osv.osv):
|
||||
def name_get(self, cr, uid, ids, context={}):
|
||||
if not ids:
|
||||
return []
|
||||
reads = self.read(cr, uid, ids, ['name', 'ref'], context)
|
||||
reads = self.read(cr, uid, ids, ['name', 'prefix', 'ref'], context)
|
||||
res = []
|
||||
for record in reads:
|
||||
name = record['name']
|
||||
prefix = record['prefix']
|
||||
if prefix:
|
||||
name = prefix + '/' + name
|
||||
if record['ref']:
|
||||
name = name + '/' + record['ref']
|
||||
name = '%s [%s]' % (name, record['ref'])
|
||||
res.append((record['id'], name))
|
||||
return res
|
||||
|
||||
@@ -906,7 +909,8 @@ class stock_production_lot(osv.osv):
|
||||
|
||||
_columns = {
|
||||
'name': fields.char('Serial', size=64, required=True),
|
||||
'ref': fields.char('Internal Reference', size=64),
|
||||
'ref': fields.char('Internal Reference', size=256),
|
||||
'prefix': fields.char('Prefix', size=64),
|
||||
'product_id': fields.many2one('product.product', 'Product', required=True),
|
||||
'date': fields.datetime('Created Date', required=True),
|
||||
'stock_available': fields.function(_get_stock, fnct_search=_stock_search, method=True, type="float", string="Available", select="2"),
|
||||
@@ -924,72 +928,6 @@ class stock_production_lot(osv.osv):
|
||||
|
||||
stock_production_lot()
|
||||
|
||||
class stock_split_production_lots(osv.osv_memory):
|
||||
_name = "stock.split.production.lots"
|
||||
_description = "Split Production Lots"
|
||||
|
||||
def _quantity_default_get(self, cr, uid, object=False, field=False, context=None):
|
||||
cr.execute("select %s from %s where id=%s" %(field,object,context.get('active_id')))
|
||||
res = cr.fetchone()[0]
|
||||
return res
|
||||
|
||||
_columns = {
|
||||
'name': fields.char('Lot Number/Prefix', size=64, required=True),
|
||||
'qty': fields.float('Total Quantity'),
|
||||
'action': fields.selection([('split','Split'),('keepinone','Keep in one lot')],'Action'),
|
||||
}
|
||||
_defaults = {
|
||||
'qty': lambda self,cr,uid,c: self.pool.get('stock.split.production.lots')._quantity_default_get(cr, uid, 'stock_move', 'product_qty',context=c) or 1,
|
||||
}
|
||||
|
||||
def split_lines(self, cr, uid, ids, context={}):
|
||||
data = self.read(cr, uid, ids[0])
|
||||
prodlot_obj = self.pool.get('stock.production.lot')
|
||||
move_obj = self.pool.get('stock.move')
|
||||
move_browse = move_obj.browse(cr, uid, context['active_id'])
|
||||
|
||||
quantity = data['qty']
|
||||
if quantity <= 0 or move_browse.product_qty == 0:
|
||||
return {}
|
||||
uos_qty = quantity/move_browse.product_qty*move_browse.product_uos_qty
|
||||
|
||||
quantity_rest = move_browse.product_qty%quantity
|
||||
uos_qty_rest = quantity_rest/move_browse.product_qty*move_browse.product_uos_qty
|
||||
|
||||
update_val = {
|
||||
'product_qty': quantity,
|
||||
'product_uos_qty': uos_qty,
|
||||
}
|
||||
|
||||
new_move = []
|
||||
for idx in range(int(move_browse.product_qty//quantity)):
|
||||
if idx:
|
||||
current_move = move_obj.copy(cr, uid, move_browse.id, {'state': move_browse.state})
|
||||
new_move.append(current_move)
|
||||
else:
|
||||
current_move = move_browse.id
|
||||
new_prodlot = prodlot_obj.create(cr, uid, {'name': data['name'], 'ref': '%d'%idx}, {'product_id': move_browse.product_id.id})
|
||||
update_val['prodlot_id'] = new_prodlot
|
||||
move_obj.write(cr, uid, [current_move], update_val)
|
||||
|
||||
if quantity_rest > 0:
|
||||
idx = int(move_browse.product_qty//quantity)
|
||||
update_val['product_qty'] = quantity_rest
|
||||
update_val['product_uos_qty'] = uos_qty_rest
|
||||
if idx:
|
||||
current_move = move_obj.copy(cr, uid, move_browse.id, {'state': move_browse.state})
|
||||
new_move.append(current_move)
|
||||
else:
|
||||
current_move = move_browse.id
|
||||
new_prodlot = prodlot_obj.create(cr, uid, {'name': data['name'], 'ref': '%d'%idx}, {'product_id': move_browse.product_id.id})
|
||||
update_val['prodlot_id'] = new_prodlot
|
||||
move_obj.write(cr, uid, [current_move], update_val)
|
||||
|
||||
return {}
|
||||
|
||||
stock_split_production_lots()
|
||||
|
||||
|
||||
class stock_production_lot_revision(osv.osv):
|
||||
_name = 'stock.production.lot.revision'
|
||||
_description = 'Production lot revisions'
|
||||
@@ -1492,124 +1430,132 @@ class stock_move(osv.osv):
|
||||
raise osv.except_osv(_('UserError'),
|
||||
_('You can only delete draft moves.'))
|
||||
return super(stock_move, self).unlink(
|
||||
cr, uid, ids, context=context)
|
||||
cr, uid, ids, context=context)
|
||||
|
||||
def _track_lines(self, cr, uid, ids, lines, context=None):
|
||||
def split_lines(self, cr, uid, ids, quantity, split_by_qty=1, prefix=False, context=None):
|
||||
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')
|
||||
if not sequence:
|
||||
raise osv.except_osv(_('Error!'), _('No production sequence defined'))
|
||||
raise wizard.except_wizard(_('Error!'), _('No production sequence defined'))
|
||||
new_move = []
|
||||
|
||||
move = self.browse(cr, uid, [ids])[0]
|
||||
move_qty = move.product_qty
|
||||
quantity_rest = move.product_qty
|
||||
uos_qty_rest = move.product_uos_qty
|
||||
def _create_lot(move_id, product_id):
|
||||
prodlot_id = prodlot_obj.create(cr, uid, {'name': sequence, 'prefix': prefix}, {'product_id': product_id})
|
||||
prodlot = prodlot_obj.browse(cr, uid, prodlot_id)
|
||||
ref = '%d' % (move_id)
|
||||
if prodlot.ref:
|
||||
ref = '%s, %s' % (prodlot.ref, ref)
|
||||
prodlot_obj.write(cr, uid, [prodlot_id], {'ref': ref})
|
||||
return prodlot_id
|
||||
|
||||
for move in self.browse(cr, uid, ids):
|
||||
if split_by_qty <= 0 or quantity == 0:
|
||||
return res
|
||||
|
||||
uos_qty = split_by_qty / move.product_qty * move.product_uos_qty
|
||||
|
||||
quantity_rest = quantity % split_by_qty
|
||||
uos_qty_rest = split_by_qty / move.product_qty * move.product_uos_qty
|
||||
|
||||
update_val = {
|
||||
'product_qty': split_by_qty,
|
||||
'product_uos_qty': uos_qty,
|
||||
}
|
||||
for idx in range(int(quantity//split_by_qty)):
|
||||
if idx:
|
||||
current_move = self.copy(cr, uid, move.id, {'state': move.state})
|
||||
new_move.append(current_move)
|
||||
else:
|
||||
current_move = move.id
|
||||
|
||||
|
||||
update_val['prodlot_id'] = _create_lot(current_move, move.product_id.id)
|
||||
self.write(cr, uid, [current_move], update_val)
|
||||
|
||||
|
||||
if quantity_rest > 0:
|
||||
idx = int(quantity//split_by_qty)
|
||||
update_val['product_qty'] = quantity_rest
|
||||
update_val['product_uos_qty'] = uos_qty_rest
|
||||
if idx:
|
||||
current_move = self.copy(cr, uid, move.id, {'state': move.state})
|
||||
new_move.append(current_move)
|
||||
else:
|
||||
current_move = move.id
|
||||
update_val['prodlot_id'] = _create_lot(current_move, move.product_id.id)
|
||||
self.write(cr, uid, [current_move], update_val)
|
||||
return new_move
|
||||
|
||||
def consume_moves(self, cr, uid, ids, quantity, location_id, context=None):
|
||||
new_move = []
|
||||
cnt = 0
|
||||
if not context:
|
||||
context = {}
|
||||
if quantity <= 0:
|
||||
raise osv.except_osv(_('Warning!'), _('Please provide Proper Quantity !'))
|
||||
|
||||
for move in self.browse(cr, uid, ids, context=context):
|
||||
move_qty = move.product_qty
|
||||
quantity_rest = move.product_qty
|
||||
|
||||
for line in lines:
|
||||
quantity = line['quantity']
|
||||
sequence = (line['tracking_num'] and line['tracking_num'] + '/' \
|
||||
+ sequence) or sequence
|
||||
|
||||
if quantity <= 0 or move_qty == 0:
|
||||
continue
|
||||
quantity_rest -= quantity
|
||||
uos_qty = quantity / move_qty * move.product_uos_qty
|
||||
uos_qty_rest = quantity_rest / move_qty * move.product_uos_qty
|
||||
if quantity_rest <= 0:
|
||||
quantity_rest = quantity
|
||||
break
|
||||
|
||||
default_val = {
|
||||
'product_qty': quantity,
|
||||
'product_uos_qty': uos_qty,
|
||||
'product_uos_qty': uos_qty,
|
||||
'location_id' : location_id,
|
||||
}
|
||||
if move.product_id.track_production:
|
||||
new_move = self.split_lines(cr, uid, [move.id], quantity, split_by_qty=1, context=context)
|
||||
else:
|
||||
current_move = self.copy(cr, uid, move.id, default_val)
|
||||
new_move.append(current_move)
|
||||
|
||||
update_val = {}
|
||||
if quantity_rest > 0:
|
||||
update_val['product_qty'] = quantity_rest
|
||||
update_val['product_uos_qty'] = uos_qty_rest
|
||||
self.write(cr, uid, [move.id], update_val)
|
||||
|
||||
self.action_done(cr, uid, new_move)
|
||||
return new_move
|
||||
|
||||
def scrap_moves(self, cr, uid, ids, quantity, location_dest_id, context=None):
|
||||
new_move = []
|
||||
if quantity <= 0:
|
||||
raise osv.except_osv(_('Warning!'), _('Please provide Proper Quantity !'))
|
||||
|
||||
for move in self.browse(cr, uid, ids, context=context):
|
||||
location = move.location_dest_id.id
|
||||
move_qty = move.product_qty
|
||||
quantity_rest = move.product_qty
|
||||
|
||||
quantity_rest -= quantity
|
||||
uos_qty = quantity / move_qty * move.product_uos_qty
|
||||
uos_qty_rest = quantity_rest / move_qty * move.product_uos_qty
|
||||
if quantity_rest <= 0:
|
||||
quantity_rest = quantity
|
||||
break
|
||||
|
||||
default_val = {
|
||||
'product_qty': quantity,
|
||||
'product_uos_qty': uos_qty,
|
||||
'location_dest_id' : location_dest_id,
|
||||
'state': move.state
|
||||
}
|
||||
current_move = self.copy(cr, uid, move.id, default_val)
|
||||
new_move.append(current_move)
|
||||
new_prodlot = prodlot_obj.create(cr, uid, {'name': sequence,
|
||||
'ref': '%d' % (cnt)},
|
||||
{'product_id': move.product_id.id})
|
||||
self.write(cr, uid, [current_move], {'prodlot_id': new_prodlot})
|
||||
cnt += 1
|
||||
|
||||
if quantity_rest > 0:
|
||||
new_prodlot = prodlot_obj.create(cr, uid, {'name': sequence,
|
||||
'ref': '%d' % (cnt)},
|
||||
{'product_id': move.product_id.id})
|
||||
update_val= {'prodlot_id': new_prodlot,
|
||||
'product_qty': quantity_rest,
|
||||
'product_uos_qty': uos_qty_rest
|
||||
}
|
||||
self.write(cr, uid, [move.id], update_val)
|
||||
return new_move
|
||||
|
||||
def consume_moves(self, cr, uid, ids, product_qty, location_id, context=None):
|
||||
new_move = None
|
||||
if not context:
|
||||
context = {}
|
||||
qty = product_qty
|
||||
if qty <= 0:
|
||||
raise osv.except_osv(_('Warning!'), _('Please provide Proper Quantity !'))
|
||||
|
||||
move = self.browse(cr, uid, ids, context=context)
|
||||
move_qty = move.product_qty
|
||||
|
||||
if qty > move_qty:
|
||||
qty = move_qty
|
||||
rest = 0
|
||||
|
||||
if qty <= move_qty:
|
||||
rest= move_qty - qty
|
||||
vals = {
|
||||
'product_qty' : qty,
|
||||
'product_uos_qty': qty,
|
||||
'location_id': location_id
|
||||
}
|
||||
track = move.product_id.track_production
|
||||
self.write(cr, uid, move.id, vals)
|
||||
if track:
|
||||
data = [{'tracking_num': '', 'quantity': 1}]
|
||||
newmoves = self._track_lines(cr, uid, ids, data*int(math.floor(qty)), context=None)
|
||||
self.action_done(cr, uid, [move.id])
|
||||
|
||||
if rest:
|
||||
defaults = {'product_qty': rest,
|
||||
'product_uos_qty': rest,
|
||||
'state': move.state}
|
||||
new_move = self.copy(cr, uid, move.id, default=defaults)
|
||||
return new_move
|
||||
|
||||
def scrap_moves(self, cr, uid, ids, product_qty, location_id, context=None):
|
||||
new_move = None
|
||||
qty = product_qty
|
||||
if qty <= 0:
|
||||
raise osv.except_osv(_('Warning!'), _('Please provide Proper Quantity !'))
|
||||
|
||||
move = self.browse(cr, uid, ids, context=context)
|
||||
location = move.location_dest_id.id
|
||||
move_qty = move.product_qty
|
||||
|
||||
if qty > move_qty:
|
||||
qty = move_qty
|
||||
rest = 0
|
||||
|
||||
if qty <= move_qty:
|
||||
rest= move_qty - qty
|
||||
vals = {
|
||||
'product_qty': qty,
|
||||
'state': move.state,
|
||||
'location_dest_id': location_id
|
||||
}
|
||||
self.write(cr, uid, ids, vals)
|
||||
|
||||
if rest:
|
||||
defaults = {'product_qty': rest,
|
||||
'product_uos_qty': rest,
|
||||
'location_dest_id': location,
|
||||
'state': move.state}
|
||||
new_move = self.copy(cr, uid, move.id, default=defaults)
|
||||
update_val = {}
|
||||
if quantity_rest > 0:
|
||||
update_val['product_qty'] = quantity_rest
|
||||
update_val['product_uos_qty'] = uos_qty_rest
|
||||
self.write(cr, uid, [move.id], update_val)
|
||||
return new_move
|
||||
|
||||
stock_move()
|
||||
|
||||
+82
-31
@@ -217,6 +217,7 @@
|
||||
<page string="Production Lot">
|
||||
<field name="name" select="1"/>
|
||||
<field name="ref" select="2"/>
|
||||
<field name="prefix" select="1"/>
|
||||
<field name="product_id" select="1"/>
|
||||
<field name="stock_available"/>
|
||||
<field name="date" select="2"/>
|
||||
@@ -496,34 +497,7 @@
|
||||
<field name="auto_refresh" eval="1"/>
|
||||
<field name="target">new</field>
|
||||
<field name="context">{'action_id': active_id}</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="view_stock_split_production_lots" model="ir.ui.view">
|
||||
<field name="name">Split Production Lots</field>
|
||||
<field name="model">stock.split.production.lots</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Split Production Lots">
|
||||
<group col="4" colspan="4">
|
||||
<field name="name"/>
|
||||
<field name="qty" attrs="{'readonly':[('action','!=','split')]}"/>
|
||||
<field name="action" colspan="4"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<button name="split_lines" string="Ok" type="object" icon="gtk-go-forward"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_view_stock_split_production_lots" model="ir.actions.act_window">
|
||||
<field name="name">Split Production Lots</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">stock.split.production.lots</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="stock_picking_calendar">
|
||||
<field name="name">stock.picking.calendar</field>
|
||||
@@ -574,6 +548,28 @@
|
||||
<notebook colspan="4">
|
||||
<page string="General Information">
|
||||
<field colspan="4" name="move_lines" nolabel="1" widget="one2many_list" default_get="{'move_line':move_lines, 'address_out_id': address_id}">
|
||||
<tree colors="grey:state in ('cancel');black:state not in ('cancel')" string="Stock Moves">
|
||||
<field name="name" string="Move Name"/>
|
||||
<field name="product_id"/>
|
||||
<field name="product_qty" on_change="onchange_quantity(product_id, product_qty, product_uom, product_uos)"/>
|
||||
<field name="product_uom" string="UOM"/>
|
||||
<field name="picking_id" select="1"/>
|
||||
<field name="prodlot_id"/>
|
||||
<field name="location_id"/>
|
||||
<field name="location_dest_id"/>
|
||||
<field name="date_planned"/>
|
||||
<field name="state"/>
|
||||
<button
|
||||
name="%(stock.track_line)d"
|
||||
string="Split in production lots"
|
||||
type="action" icon="gtk-justify-fill"
|
||||
states="done,cancel" />
|
||||
<button
|
||||
name="%(stock.move_scrap)d"
|
||||
string="D" type="action"
|
||||
icon="gtk-convert"
|
||||
states="done,cancel" />
|
||||
</tree>
|
||||
<form string="Stock Moves">
|
||||
<notebook colspan="4">
|
||||
<page string="General Information">
|
||||
@@ -598,6 +594,7 @@
|
||||
<newline/>
|
||||
<label/>
|
||||
<button name="%(track_line)d" string="Split in production lots" type="action" icon="gtk-justify-fill"/>
|
||||
<button name="%(move_scrap)d" string="Scrap Move Line" type="action" icon="gtk-justify-fill"/>
|
||||
<separator colspan="4" string="Move State"/>
|
||||
<field name="state" select="1"/>
|
||||
<group>
|
||||
@@ -707,6 +704,28 @@
|
||||
<notebook colspan="4">
|
||||
<page string="General Information">
|
||||
<field colspan="4" name="move_lines" nolabel="1" widget="one2many_list" default_get="{'move_line':move_lines, 'address_out_id': address_id}">
|
||||
<tree colors="grey:state in ('cancel');black:state not in ('cancel')" string="Stock Moves">
|
||||
<field name="name" string="Move Name"/>
|
||||
<field name="product_id"/>
|
||||
<field name="product_qty" on_change="onchange_quantity(product_id, product_qty, product_uom, product_uos)"/>
|
||||
<field name="product_uom" string="UOM"/>
|
||||
<field name="picking_id" select="1"/>
|
||||
<field name="prodlot_id"/>
|
||||
<field name="location_id"/>
|
||||
<field name="location_dest_id"/>
|
||||
<field name="date_planned"/>
|
||||
<field name="state"/>
|
||||
<button
|
||||
name="%(stock.track_line)d"
|
||||
string="Split in production lots"
|
||||
type="action" icon="gtk-justify-fill"
|
||||
states="done,cancel" />
|
||||
<button
|
||||
name="%(stock.move_scrap)d"
|
||||
string="D" type="action"
|
||||
icon="gtk-convert"
|
||||
states="done,cancel" />
|
||||
</tree>
|
||||
<form string="Stock Moves">
|
||||
<notebook colspan="4">
|
||||
<page string="General Information">
|
||||
@@ -865,6 +884,28 @@
|
||||
<notebook colspan="4">
|
||||
<page string="General Information">
|
||||
<field colspan="4" name="move_lines" nolabel="1" widget="one2many_list" default_get="{'move_line':move_lines, 'address_out_id': address_id}">
|
||||
<tree colors="grey:state in ('cancel');black:state not in ('cancel')" string="Stock Moves">
|
||||
<field name="name" string="Move Name"/>
|
||||
<field name="product_id"/>
|
||||
<field name="product_qty" on_change="onchange_quantity(product_id, product_qty, product_uom, product_uos)"/>
|
||||
<field name="product_uom" string="UOM"/>
|
||||
<field name="picking_id" select="1"/>
|
||||
<field name="prodlot_id"/>
|
||||
<field name="location_id"/>
|
||||
<field name="location_dest_id"/>
|
||||
<field name="date_planned"/>
|
||||
<field name="state"/>
|
||||
<button
|
||||
name="%(stock.track_line)d"
|
||||
string="Split in production lots"
|
||||
type="action" icon="gtk-justify-fill"
|
||||
states="done,cancel" />
|
||||
<button
|
||||
name="%(stock.move_scrap)d"
|
||||
string="D" type="action"
|
||||
icon="gtk-convert"
|
||||
states="done,cancel" />
|
||||
</tree>
|
||||
<form string="Stock Moves">
|
||||
<notebook colspan="4">
|
||||
<page string="General Information">
|
||||
@@ -1025,14 +1066,24 @@
|
||||
<notebook colspan="4">
|
||||
<page string="General Information">
|
||||
<field colspan="4" name="move_lines" nolabel="1" widget="one2many_list" default_get="{'move_line':move_lines, 'address_in_id': address_id}">
|
||||
<tree string="Stock Moves">
|
||||
<tree colors="grey:state in ('cancel');black:state not in ('cancel')" string="Stock Moves">
|
||||
<field name="product_id"/>
|
||||
<field name="product_qty"/>
|
||||
<field name="product_uom"/>
|
||||
<field name="location_dest_id"/>
|
||||
<field name="prodlot_id"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
<button
|
||||
name="%(stock.track_line)d"
|
||||
string="Split in production lots"
|
||||
type="action" icon="gtk-justify-fill"
|
||||
states="done,cancel" />
|
||||
<button
|
||||
name="%(stock.move_scrap)d"
|
||||
string="D" type="action"
|
||||
icon="gtk-convert"
|
||||
states="done,cancel" />
|
||||
</tree>
|
||||
<form string="Stock Moves">
|
||||
<notebook colspan="4">
|
||||
<page string="General Information">
|
||||
@@ -1199,7 +1250,7 @@
|
||||
<field name="location_id"/>
|
||||
<field name="location_dest_id"/>
|
||||
<field name="date_planned"/>
|
||||
<field name="state"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -51,7 +51,7 @@ class stock_move_consume(osv.osv_memory):
|
||||
'product_id': fields.many2one('product.product', 'Product', required=True, select=True),
|
||||
'product_qty': fields.float('Quantity', required=True),
|
||||
'product_uom': fields.many2one('product.uom', 'Product UOM', required=True),
|
||||
'location_id': fields.many2one('stock.location', 'Source Location', required=True)
|
||||
'location_id': fields.many2one('stock.location', 'Location', required=True)
|
||||
}
|
||||
|
||||
def _get_product_id(self, cr, uid, context):
|
||||
@@ -78,11 +78,12 @@ class stock_move_consume(osv.osv_memory):
|
||||
}
|
||||
|
||||
def do_move_consume(self, cr, uid, ids, context={}):
|
||||
datas = self.read(cr, uid, ids)[0]
|
||||
move_obj = self.pool.get('stock.move')
|
||||
move_obj.consume_moves(cr, uid, context['active_id'],
|
||||
datas['product_qty'], datas['location_id'],
|
||||
context=context)
|
||||
move_ids = context['active_ids']
|
||||
for data in self.read(cr, uid, ids):
|
||||
move_obj.consume_moves(cr, uid, move_ids,
|
||||
data['product_qty'], data['location_id'],
|
||||
context=context)
|
||||
return {}
|
||||
|
||||
stock_move_consume()
|
||||
@@ -95,27 +96,28 @@ class stock_move_scrap(osv.osv_memory):
|
||||
|
||||
_defaults = {
|
||||
'location_id': lambda *x: False
|
||||
}
|
||||
}
|
||||
|
||||
def move_scrap(self, cr, uid, ids, context={}):
|
||||
datas = self.read(cr, uid, ids)[0]
|
||||
move_obj = self.pool.get('stock.move')
|
||||
move_obj.scrap_moves(cr, uid, context['active_id'],
|
||||
datas['product_qty'], datas['location_id'],
|
||||
context=context)
|
||||
move_obj = self.pool.get('stock.move')
|
||||
move_ids = context['active_ids']
|
||||
for data in self.read(cr, uid, ids):
|
||||
move_obj.scrap_moves(cr, uid, move_ids,
|
||||
data['product_qty'], data['location_id'],
|
||||
context=context)
|
||||
return {}
|
||||
|
||||
stock_move_scrap()
|
||||
|
||||
|
||||
class spilt_in_lot(osv.osv_memory):
|
||||
_name = "spilt.in.lot"
|
||||
_description = "Split in lots"
|
||||
class spilt_in_production_lot(osv.osv_memory):
|
||||
_name = "stock.move.spilt"
|
||||
_description = "Split in Production lots"
|
||||
|
||||
_columns = {
|
||||
'product_id': fields.many2one('product.product', 'Product', required=True, select=True),
|
||||
'line_ids': fields.one2many('track.lines', 'lot_id', 'Lots Number')
|
||||
}
|
||||
'line_ids': fields.one2many('stock.move.spilt.lines', 'lot_id', 'Lots Number')
|
||||
}
|
||||
|
||||
def _get_product_id(self, cr, uid, context):
|
||||
move = self.pool.get('stock.move').browse(cr, uid, context['active_id'], context=context)
|
||||
@@ -124,26 +126,81 @@ class spilt_in_lot(osv.osv_memory):
|
||||
_defaults = {
|
||||
'product_id': _get_product_id,
|
||||
}
|
||||
|
||||
|
||||
def split_lot(self, cr, uid, ids, context=None):
|
||||
datas = self.read(cr, uid, ids)[0]
|
||||
lines = []
|
||||
for line in self.pool.get('track.lines').browse(cr, uid, datas.get('line_ids', [])):
|
||||
lines.append({'tracking_num': line.name, 'quantity': line.quantity})
|
||||
move_obj = self.pool.get('stock.move')
|
||||
move_obj._track_lines(cr, uid, context['active_id'], lines, context=context)
|
||||
self.split(cr, uid, ids, context.get('active_ids'), context=context)
|
||||
return {}
|
||||
|
||||
spilt_in_lot()
|
||||
def split(self, cr, uid, ids, move_ids, context=None):
|
||||
prodlot_obj = self.pool.get('stock.production.lot')
|
||||
ir_sequence_obj = self.pool.get('ir.sequence')
|
||||
move_obj = self.pool.get('stock.move')
|
||||
new_move = []
|
||||
for data in self.browse(cr, uid, ids):
|
||||
for move in move_obj.browse(cr, uid, move_ids):
|
||||
move_qty = move.product_qty
|
||||
quantity_rest = move.product_qty
|
||||
uos_qty_rest = move.product_uos_qty
|
||||
new_move = []
|
||||
for line in data.line_ids:
|
||||
quantity = line.quantity
|
||||
|
||||
|
||||
class track_lines(osv.osv_memory):
|
||||
_name = "track.lines"
|
||||
_description = "Track lines"
|
||||
if quantity <= 0 or move_qty == 0:
|
||||
continue
|
||||
quantity_rest -= quantity
|
||||
uos_qty = quantity / move_qty * move.product_uos_qty
|
||||
uos_qty_rest = quantity_rest / move_qty * move.product_uos_qty
|
||||
if quantity_rest <= 0:
|
||||
quantity_rest = quantity
|
||||
break
|
||||
default_val = {
|
||||
'product_qty': quantity,
|
||||
'product_uos_qty': uos_qty,
|
||||
'state': move.state
|
||||
}
|
||||
current_move = move_obj.copy(cr, uid, move.id, default_val)
|
||||
new_move.append(current_move)
|
||||
prodlot_id = False
|
||||
if line.use_exist and line.name:
|
||||
prodlot_id = prodlot_obj.search(cr, uid, [('prefix','=',line.name),('product_id','=',data.product_id.id)])
|
||||
if prodlot_id:
|
||||
prodlot_id = prodlot_id[0]
|
||||
if not prodlot_id:
|
||||
sequence = ir_sequence_obj.get(cr, uid, 'stock.lot.serial')
|
||||
prodlot_id = prodlot_obj.create(cr, uid, {'name': sequence, 'prefix' : line.name},
|
||||
{'product_id': move.product_id.id})
|
||||
move_obj.write(cr, uid, [current_move], {'prodlot_id': prodlot_id})
|
||||
prodlot = prodlot_obj.browse(cr, uid, prodlot_id)
|
||||
ref = '%d' % (current_move)
|
||||
if prodlot.ref:
|
||||
ref = '%s, %s' % (prodlot.ref, ref)
|
||||
prodlot_obj.write(cr, uid, [prodlot_id], {'ref': ref})
|
||||
|
||||
update_val = {}
|
||||
if quantity_rest > 0:
|
||||
update_val['product_qty'] = quantity_rest
|
||||
update_val['product_uos_qty'] = uos_qty_rest
|
||||
move_obj.write(cr, uid, [move.id], update_val)
|
||||
|
||||
|
||||
return new_move
|
||||
spilt_in_production_lot()
|
||||
|
||||
class stock_move_spilt_lines(osv.osv_memory):
|
||||
_name = "stock.move.spilt.lines"
|
||||
_description = "Split lines"
|
||||
|
||||
_columns = {
|
||||
'name': fields.char('Tracking serial', size=64),
|
||||
'quantity': fields.integer('Quantity'),
|
||||
'lot_id': fields.many2one('spilt.in.lot', 'Lot')
|
||||
}
|
||||
'use_exist' : fields.boolean('Use Exist'),
|
||||
'lot_id': fields.many2one('stock.move.spilt', 'Lot'),
|
||||
'action': fields.selection([('split','Split'),('keepinone','Keep in one lot')],'Action'),
|
||||
}
|
||||
_defaults = {
|
||||
'quantity': lambda *x: 1,
|
||||
'action' : lambda *x: 'split',
|
||||
}
|
||||
|
||||
track_lines()
|
||||
stock_move_spilt_lines()
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
<form string="Scrap Move">
|
||||
<separator string="Scrap Products" colspan="4"/>
|
||||
<field name="product_id" colspan="4" readonly="1"/>
|
||||
<field name="location_id" colspan="4"/>
|
||||
<field name="location_id" colspan="4" string="Dest. Location" domain="[('usage','<>','view')]"/>
|
||||
<field name="product_qty" colspan="2"/>
|
||||
<field name="product_uom" nolabel="1" readonly="1"/>
|
||||
<newline/>
|
||||
@@ -100,20 +100,22 @@
|
||||
|
||||
<record id="view_split_in_lots" model="ir.ui.view">
|
||||
<field name="name">Split in lots</field>
|
||||
<field name="model">spilt.in.lot</field>
|
||||
<field name="model">stock.move.spilt</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Split in lots">
|
||||
<field name="product_id" colspan="4"/>
|
||||
<field name="product_id" colspan="4" readonly="1"/>
|
||||
<newline/>
|
||||
<field name="line_ids" colspan="4" nolabel="1">
|
||||
<tree string="Lots Number" editable="top">
|
||||
<field name="name" string="Lots"/>
|
||||
<field name="quantity" />
|
||||
<field name="use_exist" />
|
||||
</tree>
|
||||
<form string="Lots Number">
|
||||
<field name="name" string="Lots"/>
|
||||
<field name="quantity" />
|
||||
<field name="use_exist" />
|
||||
</form>
|
||||
</field>
|
||||
<separator string="" colspan="4" />
|
||||
@@ -129,11 +131,11 @@
|
||||
<record id="track_line" model="ir.actions.act_window">
|
||||
<field name="name">Split in lots</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">spilt.in.lot</field>
|
||||
<field name="res_model">stock.move.spilt</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
</openerp>
|
||||
@@ -8,13 +8,13 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-09-08 15:52+0000\n"
|
||||
"Last-Translator: ekodaq <ceo@ekosdaq.com>\n"
|
||||
"PO-Revision-Date: 2010-02-23 04:46+0000\n"
|
||||
"Last-Translator: CSro <choongsan@gmail.com>\n"
|
||||
"Language-Team: Korean <ko@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2009-12-16 05:24+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-02-23 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: wiki
|
||||
@@ -89,7 +89,7 @@ msgstr "위키 구성"
|
||||
#. module: wiki
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr ""
|
||||
msgstr "액션 정의에서 유효하지 않은 모델 이름"
|
||||
|
||||
#. module: wiki
|
||||
#: field:wiki.groups,name:0
|
||||
|
||||
Reference in New Issue
Block a user