From ac6ab32b37c99a583c422a24bc2263d7aad36627 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A1bio=20Luna?= Date: Wed, 21 Mar 2018 09:39:45 -0300 Subject: [PATCH 1/2] =?UTF-8?q?[IMP]=20Configura=C3=A7=C3=B5es=20de=20cria?= =?UTF-8?q?=C3=A7=C3=A3o=20de=20pickings?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Permite a criação de pickings somente nos picking types que estão setados na configuração. --- stock_json_api/controllers/main.py | 128 ++++++++++++++--------------- 1 file changed, 62 insertions(+), 66 deletions(-) diff --git a/stock_json_api/controllers/main.py b/stock_json_api/controllers/main.py index 6ffe7f66..5e97a017 100644 --- a/stock_json_api/controllers/main.py +++ b/stock_json_api/controllers/main.py @@ -291,80 +291,76 @@ def _save_outgoing_order(self, venda, user): pick_order_type_id = int(params.get_param( 'json_api.pick_type_order_id', default=False)) picking_type_ref = pick_type_env.browse(pick_order_type_id) - if not picking_type_ref: - raise Exception("Configure os tipos de picking.") - - src_id, dest_id = self._get_locations(user, partner, picking_type_ref) - picking = request.env['stock.picking'].sudo( - user).with_context(planned_picking=True).create({ - 'name': picking_type_ref.sequence_id.next_by_id(), - 'scheduled_date': schedule, - 'partner_id': partner[0].id, - 'picking_type_id': picking_type_ref.id, - 'move_lines': picking_items, - 'location_id': src_id, - 'location_dest_id': dest_id, - 'origin': venda['order_id'], - 'amount_total': self._calc_amount_total(picking_items), - }) - move = request.env['stock.move'].sudo().search([ - ('picking_id', '=', picking.id)]) - move.write({'picking_type_id': picking_type_ref.id}) - - ids.append(picking.id) + if picking_type_ref: + src_id, dest_id = self._get_locations( + user, partner, picking_type_ref) + picking = request.env['stock.picking'].sudo( + user).with_context(planned_picking=True).create({ + 'name': picking_type_ref.sequence_id.next_by_id(), + 'scheduled_date': schedule, + 'partner_id': partner[0].id, + 'picking_type_id': picking_type_ref.id, + 'move_lines': picking_items, + 'location_id': src_id, + 'location_dest_id': dest_id, + 'origin': venda['order_id'], + 'amount_total': self._calc_amount_total(picking_items), + }) + move = request.env['stock.move'].sudo().search([ + ('picking_id', '=', picking.id)]) + move.write({'picking_type_id': picking_type_ref.id}) + + ids.append(picking.id) pack_type_id = int(params.get_param( 'json_api.pick_type_pack_id', default=False)) packing_type_ref = pick_type_env.browse(pack_type_id) - if not packing_type_ref: - raise Exception("Configure os tipos de picking.") - - src_id, dest_id = self._get_locations(user, partner, packing_type_ref) - - packing = request.env['stock.picking'].sudo( - user).with_context(planned_picking=True).create({ - 'name': packing_type_ref.sequence_id.next_by_id(), - 'scheduled_date': schedule, - 'partner_id': partner[0].id, - 'picking_type_id': packing_type_ref.id, - 'move_lines': picking_items, - 'location_id': src_id, - 'location_dest_id': dest_id, - 'origin': venda['order_id'], - 'amount_total': self._calc_amount_total(picking_items), - }) - move = request.env['stock.move'].sudo().search([ - ('picking_id', '=', packing.id)]) - move.write({'picking_type_id': packing_type_ref.id}) - - ids.append(packing.id) + if packing_type_ref: + src_id, dest_id = self._get_locations( + user, partner, packing_type_ref) + + packing = request.env['stock.picking'].sudo( + user).with_context(planned_picking=True).create({ + 'name': packing_type_ref.sequence_id.next_by_id(), + 'scheduled_date': schedule, + 'partner_id': partner[0].id, + 'picking_type_id': packing_type_ref.id, + 'move_lines': picking_items, + 'location_id': src_id, + 'location_dest_id': dest_id, + 'origin': venda['order_id'], + 'amount_total': self._calc_amount_total(picking_items), + }) + move = request.env['stock.move'].sudo().search([ + ('picking_id', '=', packing.id)]) + move.write({'picking_type_id': packing_type_ref.id}) + + ids.append(packing.id) outgoing_type_id = int(params.get_param( 'json_api.pick_type_outgoing_id', default=False)) requested_order_ref = pick_type_env.browse(outgoing_type_id) - if not requested_order_ref: - raise Exception("Configure os tipos de picking.") - - src_id, dest_id = self._get_locations( - user, partner, requested_order_ref) - - requested_order = request.env['stock.picking'].sudo( - user).with_context(planned_picking=True).create({ - 'name': requested_order_ref.sequence_id.next_by_id(), - 'scheduled_date': schedule, - 'partner_id': partner[0].id, - 'picking_type_id': requested_order_ref.id, - 'move_lines': picking_items, - 'location_id': src_id, - 'location_dest_id': dest_id, - 'origin': venda['order_id'], - 'amount_total': self._calc_amount_total(picking_items), - }) - move = request.env['stock.move'].sudo().search([ - ('picking_id', '=', requested_order.id)]) - move.write({'picking_type_id': requested_order_ref.id}) - - ids.append(requested_order.id) + if requested_order_ref: + src_id, dest_id = self._get_locations( + user, partner, requested_order_ref) + + requested_order = request.env['stock.picking'].sudo( + user).with_context(planned_picking=True).create({ + 'name': requested_order_ref.sequence_id.next_by_id(), + 'scheduled_date': schedule, + 'partner_id': partner[0].id, + 'picking_type_id': requested_order_ref.id, + 'move_lines': picking_items, + 'location_id': src_id, + 'location_dest_id': dest_id, + 'origin': venda['order_id'], + 'amount_total': self._calc_amount_total(picking_items), + }) + move = request.env['stock.move'].sudo().search([ + ('picking_id', '=', requested_order.id)]) + move.write({'picking_type_id': requested_order_ref.id}) + + ids.append(requested_order.id) return ids From 21651036a119b154b0306db3ffe3e7f54b2936d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A1bio=20Luna?= Date: Mon, 26 Mar 2018 15:39:11 -0300 Subject: [PATCH 2/2] =?UTF-8?q?[FIX]=20Corrige=20cria=C3=A7=C3=A3o=20de=20?= =?UTF-8?q?endere=C3=A7o.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Valida se existem informações complementares de endereço de entrega. --- stock_json_api/controllers/main.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/stock_json_api/controllers/main.py b/stock_json_api/controllers/main.py index 5e97a017..32fd0a5d 100644 --- a/stock_json_api/controllers/main.py +++ b/stock_json_api/controllers/main.py @@ -239,11 +239,21 @@ def _save_outgoing_order(self, venda, user): 'number': venda['payment_custom_field']['1'], 'street2': venda['payment_custom_field']['2'], } + + shipping_number = '' + shipping_street2 = '' + + if '1' in venda['shipping_custom_field'].keys(): + shipping_number = venda['shipping_custom_field']['1'] + + if '2' in venda['shipping_custom_field'].keys(): + shipping_street2 = venda['shipping_custom_field']['2'] + partner.write({ 'street': venda['shipping_address_1'], 'district': venda['shipping_address_2'], - 'number': venda['shipping_custom_field']['1'], - 'street2': venda['shipping_custom_field']['2'], + 'number': shipping_number, + 'street2': shipping_street2, 'child_ids': [(0, 0, payment_adress)], })