Accept Merge Request #179: (feature/表面工艺外协优化项 -> develop)
Merge Request: 出入库单新增验证及单个外协表面工艺Bug修复 Created By: @杨金灵 Accepted By: @杨金灵 URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/179?initial=true
This commit is contained in:
@@ -4,7 +4,7 @@ csv_internal_sep = ,
|
||||
data_dir = /var/lib/odoo
|
||||
db_host = 172.17.0.2
|
||||
db_maxconn = 64
|
||||
db_name = sf_dev_odoo
|
||||
db_name = sf_cs_dev
|
||||
db_password = sf
|
||||
db_port = 5432
|
||||
db_sslmode = prefer
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data noupdate="1">
|
||||
<record id="sequence_stock_picking_out" model="ir.sequence">
|
||||
<field name="name">YourCompany Sequence ocout</field>
|
||||
<field name="prefix">WH/OCOUT/</field>
|
||||
<field name="padding">5</field>
|
||||
</record>
|
||||
|
||||
<record id="sequence_stock_picking_in" model="ir.sequence">
|
||||
<field name="name">YourCompany Sequence ocin</field>
|
||||
@@ -8,12 +13,6 @@
|
||||
<field name="padding">5</field>
|
||||
</record>
|
||||
|
||||
<record id="sequence_stock_picking_out" model="ir.sequence">
|
||||
<field name="name">YourCompany Sequence ocout</field>
|
||||
<field name="prefix">WH/OCOUT/</field>
|
||||
<field name="padding">5</field>
|
||||
</record>
|
||||
|
||||
<record id="stock_location_locations_virtual_outcontract" model="stock.location">
|
||||
<field name="name">外协</field>
|
||||
<field name="location_id" ref="stock.stock_location_locations_virtual"/>
|
||||
|
||||
@@ -214,7 +214,10 @@ class MrpProduction(models.Model):
|
||||
if m == len(consecutive_workorders) - 1 and m != 0:
|
||||
self.env['stock.picking'].create_outcontract_picking(consecutive_workorders, production)
|
||||
if is_pick is False and m == 0:
|
||||
self.env['stock.picking'].create_outcontract_picking(sorted_workorders[i], production)
|
||||
if len(sorted_workorders) == 1:
|
||||
self.env['stock.picking'].create_outcontract_picking(sorted_workorders, production)
|
||||
else:
|
||||
self.env['stock.picking'].create_outcontract_picking(sorted_workorders[i], production)
|
||||
for workorder in production.workorder_ids:
|
||||
workorder.duration_expected = workorder._get_duration_expected()
|
||||
|
||||
|
||||
@@ -437,9 +437,8 @@ class ResMrpWorkOrder(models.Model):
|
||||
# 外协出库单,从“正在等待”变为“就绪”状态
|
||||
if self.is_subcontract is True:
|
||||
picking_out = self.env['stock.picking'].search([('id', '=', self.picking_out_id.id)])
|
||||
if picking_out:
|
||||
if picking_out.state == 'confirmed':
|
||||
picking_out.write({'state': 'assigned'})
|
||||
if picking_out.state == 'confirmed':
|
||||
picking_out.write({'state': 'assigned'})
|
||||
if self.state == 'waiting' or self.state == 'ready' or self.state == 'progress':
|
||||
self.move_raw_ids = self.production_id.move_raw_ids
|
||||
self.ensure_one()
|
||||
|
||||
@@ -239,27 +239,38 @@ class StockPicking(models.Model):
|
||||
|
||||
# 设置外协出入单的名称
|
||||
def _get_name_Res(self, rescode):
|
||||
count = self.env['stock.picking'].search_count([('name', 'like', rescode)])
|
||||
logging.info('count:' + str(count))
|
||||
if not count:
|
||||
last_picking = self.sudo().search([('name', 'like', rescode)], order='create_date DESC', limit=1)
|
||||
logging.info('编号:' + last_picking.name)
|
||||
if not last_picking:
|
||||
num = "%04d" % 1
|
||||
else:
|
||||
m = int(count) + 1
|
||||
m = int(last_picking.name[-3:]) + 1
|
||||
num = "%04d" % m
|
||||
return '%s%s' % (rescode, num)
|
||||
|
||||
def button_validate(self):
|
||||
# 出库单验证
|
||||
if self.workorder_out_id:
|
||||
workorder_in = self.workorder_out_id.filtered(lambda p: p.state == 'progress' and p.is_subcontract is True)
|
||||
if workorder_in:
|
||||
picking_in = self.env['stock.picking'].search([('id', '=', workorder_in.picking_in_id.id)])
|
||||
picking_in = self.sudo().search([('id', '=', workorder_in.picking_in_id.id)])
|
||||
if picking_in:
|
||||
picking_in.write({'state': 'assigned'})
|
||||
else:
|
||||
workorder_subcontract = self.workorder_out_id.filtered(
|
||||
lambda p: p.state == 'pending' and p.is_subcontract is True)
|
||||
if workorder_subcontract:
|
||||
raise UserError(_('该出库单对应的工单还未开始,不能进行验证操作!'))
|
||||
raise UserError(
|
||||
_('该出库单里源单据内的单号为%s的工单还未开始,不能进行验证操作!' % workorder_subcontract[0].name))
|
||||
# 入库单验证
|
||||
if self.workorder_in_id:
|
||||
workorder_out = self.workorder_in_id.filtered(lambda p: p.state == 'progress' and p.is_subcontract is True)
|
||||
if workorder_out:
|
||||
picking_out = self.sudo().search([('id', '=', workorder_out.picking_out_id.id)])
|
||||
if picking_out.state != 'done':
|
||||
raise UserError(
|
||||
_('该入库单对应的单号为%s的出库单还未完成,不能进行验证操作!' % picking_out.name))
|
||||
|
||||
res = super().button_validate()
|
||||
return res
|
||||
|
||||
@@ -286,9 +297,9 @@ class StockPicking(models.Model):
|
||||
item._get_stock_move_values_Res(item, location_dest_id, location_id,
|
||||
outcontract_picking_type_out))
|
||||
new_picking = True
|
||||
picking_in = self.env['stock.picking'].create(
|
||||
picking_in = self.create(
|
||||
moves_in._get_new_picking_values_Res(item, sorted_workorders, 'WH/OCIN/'))
|
||||
picking_out = self.env['stock.picking'].create(
|
||||
picking_out = self.create(
|
||||
moves_out._get_new_picking_values_Res(item, sorted_workorders, 'WH/OCOUT/'))
|
||||
moves_in.write({'picking_id': picking_in.id, 'state': 'confirmed'})
|
||||
moves_out.write({'picking_id': picking_out.id, 'state': 'confirmed'})
|
||||
|
||||
Reference in New Issue
Block a user