diff options
| author | Rafi Zadanly <zadanlyr@gmail.com> | 2023-07-18 10:51:31 +0700 |
|---|---|---|
| committer | Rafi Zadanly <zadanlyr@gmail.com> | 2023-07-18 10:51:31 +0700 |
| commit | 93146912c0f157edb4d4f08b4b17871277bb9677 (patch) | |
| tree | 6ce3976390566098b6a6b66bd330c29cdd24b586 | |
| parent | aa57ac0744ef0fee2a44f3130e1ddbb1934a5621 (diff) | |
Add cron xml airway bill and update model, api
| -rw-r--r-- | indoteknik_api/controllers/api_v1/sale_order.py | 39 | ||||
| -rw-r--r-- | indoteknik_custom/models/airway_bill.py | 2 | ||||
| -rw-r--r-- | indoteknik_custom/views/airway_bill.xml | 47 |
3 files changed, 50 insertions, 38 deletions
diff --git a/indoteknik_api/controllers/api_v1/sale_order.py b/indoteknik_api/controllers/api_v1/sale_order.py index 038508c4..c3501db4 100644 --- a/indoteknik_api/controllers/api_v1/sale_order.py +++ b/indoteknik_api/controllers/api_v1/sale_order.py @@ -314,6 +314,24 @@ class SaleOrder(controller.Controller): 'id': sale_order.id, 'name': sale_order.name }) + + @http.route(PREFIX_PARTNER + 'sale_order/<id>/awb', auth='public', methods=['GET', 'OPTIONS']) + @controller.Controller.must_authorized(private=True, private_key='partner_id') + def get_airway_bill_by_sale_order_id(self, **kw): + id = kw.get('id') + airway_bill = request.env['airway.bill'].search([('so_id', '=', id)], limit=1) + + data = airway_bill.decode_response() + result = data['rajaongkir']['result'] + + response = { + 'delivery_status': result['delivery_status'], + 'manifest': result['manifest'], + 'delivered': result['delivered'], + 'waybill_number': result['summary']['waybill_number'] + } + + return self.response(response) @http.route('/api/sale_order/invoiced', auth='public', methods=['GET']) def get_sale_order_invoiced_by_partner_id(self, **kw): @@ -418,23 +436,4 @@ class SaleOrder(controller.Controller): } return self.response(data) - - @http.route('/api/sale_order/<id>/airway', auth='public', methods=['GET']) - def get_sale_order_airway_bill_by_id(self, **kw): - if not self.authenticate(): - return self.unauthorized_response() - - id = kw.get('id') - airway_bill = request.env['airway.bill'].search([('so_id', '=', id)], limit=1) - - data = airway_bill.decode_response() - result = data['rajaongkir']['result'] - - response = { - 'delivery_status': result['delivery_status'], - 'manifest': result['manifest'], - 'delivered': result['delivered'], - 'waybill_number': result['summary']['waybill_number'] - } - - return self.response(response)
\ No newline at end of file +
\ No newline at end of file diff --git a/indoteknik_custom/models/airway_bill.py b/indoteknik_custom/models/airway_bill.py index d92b7e5e..7379049f 100644 --- a/indoteknik_custom/models/airway_bill.py +++ b/indoteknik_custom/models/airway_bill.py @@ -41,7 +41,7 @@ class AirwayBill(models.Model): self.ensure_one() return self._json_decode(self.response) - def _update_data_way_bill(self): + def _generate(self): # jne, pos, tiki, wahana, jnt, rpx, sap, sicepat, jet, dse, dan first # 51, 53, 54, 7, 57, 55, 59, 59, 27, 60, 62, 64 current_time = datetime.now() diff --git a/indoteknik_custom/views/airway_bill.xml b/indoteknik_custom/views/airway_bill.xml index 2107bdd7..4f4519db 100644 --- a/indoteknik_custom/views/airway_bill.xml +++ b/indoteknik_custom/views/airway_bill.xml @@ -41,31 +41,31 @@ <page string="Details"> <group> <group> - <field name="way_bill_date"/> - <field name="weight"/> - <field name="origin"/> - <field name="destination"/> - <field name="shipper_name"/> - <field name="shipper_address1"/> - <field name="shipper_address2"/> + <field name="way_bill_date"/> + <field name="weight"/> + <field name="origin"/> + <field name="destination"/> + <field name="shipper_name"/> + <field name="shipper_address1"/> + <field name="shipper_address2"/> </group> <group> - <field name="shipper_address3"/> - <field name="shipper_city"/> - <field name="receiver_name"/> - <field name="receiver_address1"/> - <field name="receiver_address2"/> - <field name="receiver_address3"/> - <field name="receiver_city"/> + <field name="shipper_address3"/> + <field name="shipper_city"/> + <field name="receiver_name"/> + <field name="receiver_address1"/> + <field name="receiver_address2"/> + <field name="receiver_address3"/> + <field name="receiver_city"/> </group> </group> </page> <page string="Delivery Status"> <group> <group> - <field name="status"/> - <field name="pod_receiver"/> - <field name="pod_datetime"/> + <field name="status"/> + <field name="pod_receiver"/> + <field name="pod_datetime"/> </group> </group> </page> @@ -82,6 +82,19 @@ <field name="view_mode">tree,form</field> </record> + <record id="cron_airway_bill_generate" model="ir.cron"> + <field name="name">Airway Bill: Generate</field> + <field name="interval_number">1</field> + <field name="interval_type">days</field> + <field name="numbercall">-1</field> + <field name="doall" eval="False"/> + <field name="model_id" ref="model_airway_bill"/> + <field name="code">model._generate()</field> + <field name="state">code</field> + <field name="priority">75</field> + <field name="active">True</field> + </record> + <menuitem id="menu_airway_bill" name="Airway Bill" action="airway_bill_action" |
