summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-07-18 10:51:31 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-07-18 10:51:31 +0700
commit93146912c0f157edb4d4f08b4b17871277bb9677 (patch)
tree6ce3976390566098b6a6b66bd330c29cdd24b586
parentaa57ac0744ef0fee2a44f3130e1ddbb1934a5621 (diff)
Add cron xml airway bill and update model, api
-rw-r--r--indoteknik_api/controllers/api_v1/sale_order.py39
-rw-r--r--indoteknik_custom/models/airway_bill.py2
-rw-r--r--indoteknik_custom/views/airway_bill.xml47
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"