summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-07-28 11:31:16 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-07-28 11:31:16 +0700
commit7ada4bbe5bf00dd494b05b4a5e5b86ab3461d56f (patch)
tree455310c00d7ace4df2be3da8b994ae55533e5d2b
parent93146912c0f157edb4d4f08b4b17871277bb9677 (diff)
Refactor airway bill model and views
-rw-r--r--indoteknik_custom/models/airway_bill.py14
-rw-r--r--indoteknik_custom/models/airway_bill_manifest.py10
-rw-r--r--indoteknik_custom/views/airway_bill.xml28
3 files changed, 25 insertions, 27 deletions
diff --git a/indoteknik_custom/models/airway_bill.py b/indoteknik_custom/models/airway_bill.py
index 7379049f..463272b4 100644
--- a/indoteknik_custom/models/airway_bill.py
+++ b/indoteknik_custom/models/airway_bill.py
@@ -41,21 +41,19 @@ class AirwayBill(models.Model):
self.ensure_one()
return self._json_decode(self.response)
- def _generate(self):
+ def _fetch(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()
- delta_time = current_time - timedelta(days=30)
+ carrier_ids = [51, 53, 54, 7, 57, 55, 59, 59, 27, 60, 62, 64]
- current_time = current_time.strftime('%Y-%m-%d %H:%M:%S')
- delta_time = delta_time.strftime('%Y-%m-%d %H:%M:%S')
+ delta_time = datetime.now() - timedelta(days=30) # Last 30 days
+ delta_time = delta_time.strftime('%Y-%m-%d %H:%M:%S')
query = [
'|',
('waybill_id.delivered', '=', False),
('date_done', '>', delta_time),
('delivery_tracking_no', '!=', False),
('delivery_tracking_no', 'not ilike', '-'),
- ('carrier_id.id', 'in', [51, 53, 54, 7, 57, 55, 59, 59, 27, 60, 62, 64]),
+ ('carrier_id', 'in', carrier_ids),
]
outs = self.env['stock.picking'].search(query, order='id')
for out in outs:
@@ -77,7 +75,7 @@ class AirwayBill(models.Model):
waybill.response = json.dumps(history, indent=2, ensure_ascii=False)
waybill.manifest_ids.unlink()
- self.env['airway.bill.manifest'].generate_airway_bill_line(history, waybill.id)
+ self.env['airway.bill.manifest'].generate_airway_bill_line(waybill)
def _get_waybill_history(self, way_bill_number=0, shipper=0):
headers = {
diff --git a/indoteknik_custom/models/airway_bill_manifest.py b/indoteknik_custom/models/airway_bill_manifest.py
index cba40b3d..2e16be2c 100644
--- a/indoteknik_custom/models/airway_bill_manifest.py
+++ b/indoteknik_custom/models/airway_bill_manifest.py
@@ -15,9 +15,9 @@ class AirwayBillManifest(models.Model):
city = fields.Char('City')
- def generate_airway_bill_line(self, history, waybill_id):
+ def generate_airway_bill_line(self, waybill):
+ history = waybill.decode_response()
manifests = history['rajaongkir']['result']['manifest'] or []
- count = 0
for manifest in manifests:
code = manifest['manifest_code']
description = manifest['manifest_description']
@@ -25,11 +25,9 @@ class AirwayBillManifest(models.Model):
time = manifest['manifest_time']
city = manifest['city_name']
self.create({
- 'waybill_id': waybill_id,
+ 'waybill_id': waybill.id,
'code': code,
'description': description,
'datetime': date+' '+time,
'city': city,
- })
- count += 1
- _logger.info("Airway Bill generated %s" % count) \ No newline at end of file
+ }) \ No newline at end of file
diff --git a/indoteknik_custom/views/airway_bill.xml b/indoteknik_custom/views/airway_bill.xml
index 4f4519db..bbfd3991 100644
--- a/indoteknik_custom/views/airway_bill.xml
+++ b/indoteknik_custom/views/airway_bill.xml
@@ -40,24 +40,26 @@
</page>
<page string="Details">
<group>
- <group>
- <field name="way_bill_date"/>
- <field name="weight"/>
- <field name="origin"/>
- <field name="destination"/>
+ <group string="Shipper">
<field name="shipper_name"/>
+ <field name="shipper_city"/>
<field name="shipper_address1"/>
<field name="shipper_address2"/>
- </group>
- <group>
<field name="shipper_address3"/>
- <field name="shipper_city"/>
+ </group>
+ <group string="Receiver">
<field name="receiver_name"/>
+ <field name="receiver_city"/>
<field name="receiver_address1"/>
<field name="receiver_address2"/>
<field name="receiver_address3"/>
- <field name="receiver_city"/>
- </group>
+ </group>
+ <group string="Other Info">
+ <field name="way_bill_date"/>
+ <field name="weight"/>
+ <field name="origin"/>
+ <field name="destination"/>
+ </group>
</group>
</page>
<page string="Delivery Status">
@@ -82,14 +84,14 @@
<field name="view_mode">tree,form</field>
</record>
- <record id="cron_airway_bill_generate" model="ir.cron">
- <field name="name">Airway Bill: Generate</field>
+ <record id="cron_airway_bill_fetch" model="ir.cron">
+ <field name="name">Airway Bill: Fetch</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="code">model._fetch()</field>
<field name="state">code</field>
<field name="priority">75</field>
<field name="active">True</field>