Merge lp:~dorian-kemps/unifield-server/US-5563 into lp:unifield-server
- US-5563
- Merge into trunk
Proposed by
jftempo
Status: | Merged |
---|---|
Merged at revision: | 5455 |
Proposed branch: | lp:~dorian-kemps/unifield-server/US-5563 |
Merge into: | lp:unifield-server |
Diff against target: |
136 lines (+50/-13) 4 files modified
bin/addons/msf_sync_data_server/data/sync_server.message_rule.csv (+1/-1) bin/addons/msf_sync_data_server/data/sync_server.sync_rule.csv (+1/-1) bin/addons/return_claim/return_claim.py (+22/-11) bin/addons/stock/stock.py (+26/-0) |
To merge this branch: | bzr merge lp:~dorian-kemps/unifield-server/US-5563 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
UniField Reviewer Team | Pending | ||
Review via email: mp+365222@code.launchpad.net |
Commit message
Description of the change
To post a comment you must log in.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'bin/addons/msf_sync_data_server/data/sync_server.message_rule.csv' |
2 | --- bin/addons/msf_sync_data_server/data/sync_server.message_rule.csv 2019-02-16 16:57:55 +0000 |
3 | +++ bin/addons/msf_sync_data_server/data/sync_server.message_rule.csv 2019-03-28 11:12:05 +0000 |
4 | @@ -12,7 +12,7 @@ |
5 | msf_sync_data_server.dpo_service_lines_update_in_at_project,FALSE,TRUE,"['order_id/name', 'order_id/delivery_confirmed_date', 'sync_local_id', 'origin', 'confirmed_delivery_date', 'name', 'product_uom/id', 'product_uom/name', 'link_sol_id/line_number', 'notes', 'product_qty', 'product_id/name', 'product_id/id', 'product_id/default_code', 'comment']","[('dest_partner_id.partner_type', '=', 'internal'), ('order_id.order_type', '=', 'direct'), ('order_id.state', 'in', ['approved', 'done']), ('product_id.type', 'in', ['service', 'service_recep'])]",dest_partner_id,MISSION,purchase.order.line.confirmed_dpo_service_lines_update_in_po,purchase.order.line,DPO service lines update IN at Project,21,,Valid |
6 | msf_sync_data_server.closed_in_validates_delivery_out_ship,TRUE,TRUE,"['name', 'state', 'shipment_ref']","['&','&','&','&','&',('partner_type_stock_picking', '!=', 'external'), ('type', '=', 'in'),('subtype', 'in', ['standard']), ('state', '=', 'done'), ('shipment_ref', '!=', False), ('dpo_incoming', '=', False)]",partner_id,MISSION,stock.picking.closed_in_validates_delivery_out_ship,stock.picking,Closed IN validates delivery of OUT-SHIP,26,,Valid |
7 | msf_sync_data_server.closed_in_confirms_dpo_reception,TRUE,TRUE,"['name', 'state', 'dpo_line_id']","['&','&','&','&',('picking_id.partner_type_stock_picking', '!=', 'external'), ('picking_id.type', '=', 'in'), ('picking_id.subtype', 'in', ['standard']), ('state', '=', 'done'), ('dpo_line_id', '!=', 0)]",partner_id,MISSION,stock.picking.closed_in_confirms_dpo_reception,stock.move,Closed IN confirms DPO reception,27,,Valid |
8 | -msf_sync_data_server.validated_claim_create_claim,TRUE,TRUE,"['category_return_claim', 'creation_date_return_claim', 'description_return_claim', 'follow_up_return_claim', 'name', 'picking_id_return_claim/shipment_ref', 'po_id_return_claim/name', 'po_so_return_claim', 'goods_expected', 'processor_origin', 'state', 'type_return_claim', 'origin_claim', 'event_ids_return_claim/name', 'event_ids_return_claim/creation_date_claim_event', 'event_ids_return_claim/from_picking_wizard_claim_event', 'event_ids_return_claim/replacement_picking_expected_claim_event', 'event_ids_return_claim/type_claim_event', 'event_ids_return_claim/description_claim_event', 'product_line_ids_return_claim/price_unit_claim_product_line', 'product_line_ids_return_claim/qty_claim_product_line', 'product_line_ids_return_claim/product_id_claim_product_line/id', 'product_line_ids_return_claim/product_id_claim_product_line/name', 'product_line_ids_return_claim/price_currency_claim_product_line/id', 'product_line_ids_return_claim/price_currency_claim_product_line/name', 'product_line_ids_return_claim/uom_id_claim_product_line/id', 'product_line_ids_return_claim/uom_id_claim_product_line/name', 'product_line_ids_return_claim/type_check', 'product_line_ids_return_claim/expiry_date_claim_product_line']","[('state', '=', 'in_progress'), ('partner_id_return_claim.partner_type', 'in', ['internal', 'intermission', 'intersection']), ('type_return_claim', '=', 'supplier'), ('old_version', '=', False)]",partner_id_return_claim,MISSION,return.claim.validated_claim_create_claim,return.claim,Validated Claim creates Claim,28,,Valid |
9 | +msf_sync_data_server.validated_claim_create_claim,TRUE,TRUE,"['category_return_claim', 'creation_date_return_claim', 'description_return_claim', 'follow_up_return_claim', 'name', 'picking_id_return_claim/shipment_ref', 'po_id_return_claim/name', 'po_so_return_claim', 'goods_expected', 'processor_origin', 'state', 'type_return_claim', 'origin_claim', 'event_ids_return_claim/name', 'event_ids_return_claim/creation_date_claim_event', 'event_ids_return_claim/from_picking_wizard_claim_event', 'event_ids_return_claim/replacement_picking_expected_claim_event', 'event_ids_return_claim/type_claim_event', 'event_ids_return_claim/description_claim_event', 'product_line_ids_return_claim/price_unit_claim_product_line', 'product_line_ids_return_claim/qty_claim_product_line', 'product_line_ids_return_claim/product_id_claim_product_line/id', 'product_line_ids_return_claim/product_id_claim_product_line/name', 'product_line_ids_return_claim/price_currency_claim_product_line/id', 'product_line_ids_return_claim/price_currency_claim_product_line/name', 'product_line_ids_return_claim/uom_id_claim_product_line/id', 'product_line_ids_return_claim/uom_id_claim_product_line/name', 'product_line_ids_return_claim/type_check', 'product_line_ids_return_claim/expiry_date_claim_product_line', 'product_line_ids_return_claim/lot_id_claim_product_line/id', 'product_line_ids_return_claim/lot_id_claim_product_line/name']","[('state', '=', 'in_progress'), ('partner_id_return_claim.partner_type', 'in', ['internal', 'intermission', 'intersection']), ('type_return_claim', '=', 'supplier'), ('old_version', '=', False)]",partner_id_return_claim,MISSION,return.claim.validated_claim_create_claim,return.claim,Validated Claim creates Claim,28,,Valid |
10 | msf_sync_data_server.origin_claim_close_claim,TRUE,TRUE,"['name', 'state', 'partner_id_return_claim/name', 'partner_id_return_claim/partner_type']","[('state', '=', 'done'), ('partner_id_return_claim.partner_type', '=', 'internal'), ('type_return_claim', '=', 'supplier'), ('old_version', '=', False)]",partner_id_return_claim,MISSION,return.claim.origin_claim_close_claim,return.claim,Original Closed Claim close counterpart Claim,29,,Valid |
11 | msf_sync_data_server.goods_expecting_picking_from_claim_creates_fo,TRUE,TRUE,"['name', 'claim_name', 'purchase_id/name', 'purchase_id/delivery_requested_date','purchase_id/details', 'purchase_id/notes', 'purchase_id/categ', 'purchase_id/order_type', 'purchase_id/priority', 'purchase_id/loan_duration', 'purchase_id/analytic_distribution_id/id', 'purchase_id/is_a_counterpart', 'purchase_id/pricelist_id/name', 'purchase_id/stock_take_date', 'move_lines/product_id/name', 'move_lines/purchase_line_id/id', 'move_lines/purchase_line_id/sync_local_id', 'move_lines/name', 'move_lines/comment', 'move_lines/product_qty', 'move_lines/product_uom/name', 'move_lines/price_unit', 'move_lines/line_number']","['&', '&', ('state', '=', 'assigned'), ('partner_id.partner_type', '=', 'internal'), ('claim', '=', True), ('claim_name', '!=', False), '|', ('name', 'like', 'replacement'), ('name', 'like', 'missing')]",partner_id,MISSION,stock.picking.goods_expecting_picking_from_claim_creates_fo,stock.picking,IN-replacement/-missing created by Claim creates FO,30,,Valid |
12 | msf_sync_data_server.create_batch_object,FALSE,TRUE,"['name', 'xmlid_name', 'prefix', 'product_id/id', 'product_id/default_code', 'partner_id/id', 'date', 'ref','life_date','sequence_id','type']","[('name', '=', False)]",partner_id,MISSION,stock.picking.create_batch_number,stock.production.lot,Create Batch Object,1001,,Valid |
13 | |
14 | === modified file 'bin/addons/msf_sync_data_server/data/sync_server.sync_rule.csv' |
15 | --- bin/addons/msf_sync_data_server/data/sync_server.sync_rule.csv 2019-02-28 15:19:06 +0000 |
16 | +++ bin/addons/msf_sync_data_server/data/sync_server.sync_rule.csv 2019-03-28 11:12:05 +0000 |
17 | @@ -246,7 +246,7 @@ |
18 | msf_usb_sync_data_server.bi_other_monthly_review_consumption_line,TRUE,TRUE,FALSE,TRUE,bidirectional,Bidirectional,[],"['fmc', 'fmc2', 'last_reviewed', 'last_reviewed2', 'mrc_creation_date', 'mrc_id/id', 'name/id', 'ref', 'text_error', 'valid_ok', 'valid_until']",USB,monthly.review.consumption.line,,[OTHER] Monthly Review Consumption Line,Valid,,4011 |
19 | msf_usb_sync_data_server.bi_other_claim_return,TRUE,TRUE,FALSE,TRUE,bidirectional,Bidirectional,[],"['category_return_claim', 'creation_date_return_claim', 'default_src_location_id_return_claim/id', 'description_return_claim', 'follow_up_return_claim', 'name', 'order_line_number_return_claim', 'partner_id_return_claim/id', 'picking_id_return_claim/id', 'po_id_return_claim/id', 'po_so_return_claim', 'so_id_return_claim/id', 'state', 'type_return_claim']",USB,return.claim,,[OTHER] Claim Return,Valid,,4020 |
20 | msf_usb_sync_data_server.bi_other_claim_event,TRUE,TRUE,FALSE,TRUE,bidirectional,Bidirectional,[],"['creation_date_claim_event', 'description_claim_event', 'event_picking_id_claim_event/id', 'from_picking_wizard_claim_event', 'name', 'order_claim_event', 'replacement_picking_expected_claim_event', 'return_claim_id_claim_event/id', 'state', 'type_claim_event']",USB,claim.event,,[OTHER] Claim Event,Valid,,4021 |
21 | -msf_usb_sync_data_server.bi_other_claim_product_line,TRUE,TRUE,FALSE,TRUE,bidirectional,Bidirectional,[],"['asset_id_claim_product_line/id', 'claim_id_claim_product_line/id', 'composition_list_id_claim_product_line/id', 'expiry_date_claim_product_line', 'integrity_status_claim_product_line', 'lot_id_claim_product_line/id', 'name', 'product_id_claim_product_line/id', 'qty_claim_product_line', 'src_location_id_claim_product_line/id', 'stock_move_id_claim_product_line/id', 'type_check', 'uom_id_claim_product_line/id']",USB,claim.product.line,,[OTHER] Claim Product Line,Valid,,4022 |
22 | +msf_usb_sync_data_server.bi_other_claim_product_line,TRUE,TRUE,FALSE,TRUE,bidirectional,Bidirectional,[],"['asset_id_claim_product_line/id', 'claim_id_claim_product_line/id', 'composition_list_id_claim_product_line/id', 'expiry_date_claim_product_line', 'integrity_status_claim_product_line', 'lot_id_claim_product_line/id', 'lot_id_claim_product_line/name', 'name', 'product_id_claim_product_line/id', 'qty_claim_product_line', 'src_location_id_claim_product_line/id', 'stock_move_id_claim_product_line/id', 'type_check', 'uom_id_claim_product_line/id']",USB,claim.product.line,,[OTHER] Claim Product Line,Valid,,4022 |
23 | msf_usb_sync_data_server.bi_other_composition_kit,TRUE,TRUE,FALSE,TRUE,bidirectional,Bidirectional,"[('composition_type','=','real')]","['active', 'composition_batch_check', 'composition_creation_date', 'composition_description', 'composition_expiry_check', 'composition_kit_creation_id/id', 'composition_lot_id/id', 'composition_product_id/id', 'composition_ref_exp', 'composition_type', 'composition_version_txt', 'state', 'composition_reference']",USB,composition.kit,,[OTHER] Composition Kit,Valid,,4029 |
24 | msf_usb_sync_data_server.bi_other_composition_kit_tree,TRUE,TRUE,FALSE,TRUE,bidirectional,Bidirectional,"[('composition_type','=','real')]",['composition_version_id/id'],USB,composition.kit,,[OTHER] Composition Kit Tree,Valid,,4030 |
25 | msf_usb_sync_data_server.bi_other_composition_item,TRUE,TRUE,FALSE,TRUE,bidirectional,Bidirectional,"[('item_kit_id' , 'in' , ('composition.kit' , 'id' , [('composition_type','=','real')]))]","['item_asset_id/id', 'item_description', 'item_exp', 'item_kit_id/id', 'item_lot', 'item_module', 'item_product_id/id', 'item_qty', 'item_stock_move_id/id', 'item_uom_id/id', 'state', 'text_error', 'to_correct_ok']",USB,composition.item,,[OTHER] Composition Item,Valid,,4031 |
26 | |
27 | === modified file 'bin/addons/return_claim/return_claim.py' |
28 | --- bin/addons/return_claim/return_claim.py 2018-10-16 10:29:04 +0000 |
29 | +++ bin/addons/return_claim/return_claim.py 2019-03-28 11:12:05 +0000 |
30 | @@ -1010,6 +1010,7 @@ |
31 | Synchronisation method for claims customer->supplier |
32 | - create counterpart claims for validated claims |
33 | ''' |
34 | + claim_line_obj = self.pool.get('claim.product.line') |
35 | warehouse_obj = self.pool.get('stock.warehouse') |
36 | event_obj = self.pool.get('claim.event') |
37 | sale_obj = self.pool.get('sale.order') |
38 | @@ -1017,6 +1018,7 @@ |
39 | curr_obj = self.pool.get('res.currency') |
40 | product_obj = self.pool.get('product.product') |
41 | uom_obj = self.pool.get('product.uom') |
42 | + lot_obj = self.pool.get('stock.production.lot') |
43 | |
44 | if context is None: |
45 | context = {} |
46 | @@ -1066,17 +1068,6 @@ |
47 | 'processor_origin': claim_info.processor_origin, |
48 | 'creation_date_return_claim': claim_info.creation_date_return_claim, |
49 | 'picking_id_return_claim': origin_pick_id, |
50 | - 'product_line_ids_return_claim': |
51 | - [(0, 0, { |
52 | - 'qty_claim_product_line': x.qty_claim_product_line, |
53 | - 'price_unit_claim_product_line': x.price_unit_claim_product_line, |
54 | - 'price_currency_claim_product_line': curr_obj.search(cr, uid, [('name', '=', x.price_currency_claim_product_line.name)], context=context)[0], |
55 | - 'product_id_claim_product_line': product_obj.search(cr, uid, [('name', '=', x.product_id_claim_product_line.name)], context=context)[0], |
56 | - 'uom_id_claim_product_line': uom_obj.search(cr, uid, [('name', '=', x.uom_id_claim_product_line.name)], context=context)[0], |
57 | - 'type_check': x.type_check, |
58 | - 'expiry_date_claim_product_line': x.expiry_date_claim_product_line, |
59 | - 'src_location_id_claim_product_line': location_id, |
60 | - }) for x in product_line_data], |
61 | }) |
62 | |
63 | claim_id = self.check_existing_claim(cr, uid, source, claim_data) |
64 | @@ -1095,6 +1086,26 @@ |
65 | }) |
66 | event_obj.create(cr, uid, event_values, context=context) |
67 | |
68 | + # Create lines |
69 | + for x in product_line_data: |
70 | + prod_id = product_obj.search(cr, uid, [('name', '=', x.product_id_claim_product_line.name)], context=context)[0] |
71 | + line_data = { |
72 | + 'claim_id_claim_product_line': claim_id, |
73 | + 'qty_claim_product_line': x.qty_claim_product_line, |
74 | + 'price_unit_claim_product_line': x.price_unit_claim_product_line, |
75 | + 'price_currency_claim_product_line': curr_obj.search(cr, uid, [('name', '=', x.price_currency_claim_product_line.name)], |
76 | + context=context)[0], |
77 | + 'product_id_claim_product_line': prod_id, |
78 | + 'uom_id_claim_product_line': uom_obj.search(cr, uid, [('name', '=', x.uom_id_claim_product_line.name)], context=context)[0], |
79 | + 'type_check': x.type_check, |
80 | + 'lot_id_claim_product_line': x.lot_id_claim_product_line and lot_obj.get_or_create_prodlot( |
81 | + cr, uid, x.lot_id_claim_product_line.name, x.expiry_date_claim_product_line, prod_id, |
82 | + context=context), |
83 | + 'expiry_date_claim_product_line': x.expiry_date_claim_product_line, |
84 | + 'src_location_id_claim_product_line': location_id, |
85 | + } |
86 | + claim_line_obj.create(cr, uid, line_data, context=context) |
87 | + |
88 | name = self.browse(cr, uid, claim_id, context=context).name |
89 | message = _('The claim %s is created by sync and linked to the claim %s by Push Flow at %s.') % (name, claim_info.name, source) |
90 | self._logger.info(message) |
91 | |
92 | === modified file 'bin/addons/stock/stock.py' |
93 | --- bin/addons/stock/stock.py 2018-11-30 08:53:00 +0000 |
94 | +++ bin/addons/stock/stock.py 2019-03-28 11:12:05 +0000 |
95 | @@ -1897,6 +1897,7 @@ |
96 | _sql_constraints = [ |
97 | ('name_ref_uniq', 'unique (name, ref)', 'The combination of serial number and internal reference must be unique !'), |
98 | ] |
99 | + |
100 | def action_traceability(self, cr, uid, ids, context=None): |
101 | """ It traces the information of a product |
102 | @param self: The object pointer. |
103 | @@ -1908,8 +1909,33 @@ |
104 | """ |
105 | value = self.pool.get('action.traceability').action_traceability(cr,uid,ids,context) |
106 | return value |
107 | + |
108 | + def get_or_create_prodlot(self, cr, uid, name, expiry_date, product_id, context=None): |
109 | + """ |
110 | + Search corresponding Batch using name, product and expiry date, or create it |
111 | + """ |
112 | + if context is None: |
113 | + context = {} |
114 | + |
115 | + # Double check to find the corresponding batch |
116 | + lot_ids = self.search(cr, uid, [ |
117 | + ('name', '=', name), |
118 | + ('life_date', '=', expiry_date), |
119 | + ('product_id', '=', product_id), |
120 | + ], context=context) |
121 | + |
122 | + # No batch found, create a new one |
123 | + if not lot_ids: |
124 | + lot_id = self.create(cr, uid, {'name': name, 'product_id': product_id, 'life_date': expiry_date}, context) |
125 | + else: |
126 | + lot_id = lot_ids[0] |
127 | + |
128 | + return lot_id |
129 | + |
130 | + |
131 | stock_production_lot() |
132 | |
133 | + |
134 | class stock_production_lot_revision(osv.osv): |
135 | _name = 'stock.production.lot.revision' |
136 | _description = 'Production lot revisions' |