diff options
| author | Rafi Zadanly <zadanlyr@gmail.com> | 2023-07-28 11:31:16 +0700 |
|---|---|---|
| committer | Rafi Zadanly <zadanlyr@gmail.com> | 2023-07-28 11:31:16 +0700 |
| commit | 7ada4bbe5bf00dd494b05b4a5e5b86ab3461d56f (patch) | |
| tree | 455310c00d7ace4df2be3da8b994ae55533e5d2b | |
| parent | 93146912c0f157edb4d4f08b4b17871277bb9677 (diff) | |
Refactor airway bill model and views
| -rw-r--r-- | indoteknik_custom/models/airway_bill.py | 14 | ||||
| -rw-r--r-- | indoteknik_custom/models/airway_bill_manifest.py | 10 | ||||
| -rw-r--r-- | indoteknik_custom/views/airway_bill.xml | 28 |
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> |
