summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiqdad <ahmadmiqdad27@gmail.com>2025-08-06 08:55:23 +0700
committerMiqdad <ahmadmiqdad27@gmail.com>2025-08-06 08:55:23 +0700
commit71dd0102df8cc3831a3c13d4bc0f430b061d1094 (patch)
tree9a563ec9bee53866da98cc30de358d1210248fc3
parent9f9081714356e87500ab05bc5a294e9ca9e526fe (diff)
parentc42bdba2996d85d328897e42e7a1d86001b3a14d (diff)
Merge branch 'odoo-backup' of https://bitbucket.org/altafixco/indoteknik-addons into odoo-backup
-rw-r--r--indoteknik_api/controllers/api_v1/stock_picking.py17
-rwxr-xr-xindoteknik_custom/__manifest__.py1
-rwxr-xr-xindoteknik_custom/models/__init__.py1
-rwxr-xr-xindoteknik_custom/models/purchase_order.py6
-rw-r--r--indoteknik_custom/models/update_date_planned_po_wizard.py14
-rwxr-xr-xindoteknik_custom/security/ir.model.access.csv3
-rwxr-xr-xindoteknik_custom/views/purchase_order.xml20
-rw-r--r--indoteknik_custom/views/update_date_planned_po_wizard_view.xml25
8 files changed, 77 insertions, 10 deletions
diff --git a/indoteknik_api/controllers/api_v1/stock_picking.py b/indoteknik_api/controllers/api_v1/stock_picking.py
index 85b0fbba..762e17c5 100644
--- a/indoteknik_api/controllers/api_v1/stock_picking.py
+++ b/indoteknik_api/controllers/api_v1/stock_picking.py
@@ -125,28 +125,33 @@ class StockPicking(controller.Controller):
@http.route(prefix + 'stock-picking/<scanid>/documentation', auth='public', methods=['PUT', 'OPTIONS'], csrf=False)
@controller.Controller.must_authorized()
def write_partner_stock_picking_documentation(self, **kw):
- scanid = int(kw.get('scanid', 0))
+ scanid = kw.get('scanid', '').strip()
sj_document = kw.get('sj_document', False)
paket_document = kw.get('paket_document', False)
- params = {'sj_documentation': sj_document,
- 'paket_documentation': paket_document,
- 'driver_arrival_date': datetime.utcnow(),
- }
+ params = {
+ 'sj_documentation': sj_document,
+ 'paket_documentation': paket_document,
+ 'driver_arrival_date': datetime.utcnow(),
+ }
- picking_data = request.env['stock.picking'].search([('id', '=', scanid)], limit=1)
+ picking_data = False
+ if scanid.isdigit() and int(scanid) < 2147483647:
+ picking_data = request.env['stock.picking'].search([('id', '=', int(scanid))], limit=1)
if not picking_data:
picking_data = request.env['stock.picking'].search([('picking_code', '=', scanid)], limit=1)
if not picking_data:
return self.response(code=404, description='picking not found')
+
picking_data.write(params)
return self.response({
'name': picking_data.name
})
+
@http.route(prefix + 'webhook/biteship', type='json', auth='public', methods=['POST'], csrf=False)
def update_status_from_biteship(self, **kw):
_logger.info("Biteship Webhook: Request received at controller start (type='json').")
diff --git a/indoteknik_custom/__manifest__.py b/indoteknik_custom/__manifest__.py
index 2a4db273..d1ae681a 100755
--- a/indoteknik_custom/__manifest__.py
+++ b/indoteknik_custom/__manifest__.py
@@ -174,6 +174,7 @@
# 'views/tukar_guling_return_views.xml'
'views/tukar_guling_po.xml',
# 'views/refund_sale_order.xml',
+ 'views/update_date_planned_po_wizard_view.xml',
],
'demo': [],
'css': [],
diff --git a/indoteknik_custom/models/__init__.py b/indoteknik_custom/models/__init__.py
index 51d25c1f..3a9f9312 100755
--- a/indoteknik_custom/models/__init__.py
+++ b/indoteknik_custom/models/__init__.py
@@ -156,3 +156,4 @@ from . import refund_sale_order
# from . import patch
from . import tukar_guling
from . import tukar_guling_po
+from . import update_date_planned_po_wizard \ No newline at end of file
diff --git a/indoteknik_custom/models/purchase_order.py b/indoteknik_custom/models/purchase_order.py
index 27aca0d1..103a9131 100755
--- a/indoteknik_custom/models/purchase_order.py
+++ b/indoteknik_custom/models/purchase_order.py
@@ -1083,9 +1083,9 @@ class PurchaseOrder(models.Model):
# Tambahan: redirect ke BU hanya untuk single PO yang berhasil dikonfirmasi
_logger.info("Jumlah PO: %s | State: %s", len(self), self.state)
- if len(self) == 1:
- _logger.info("Redirecting ke BU")
- return self.action_view_related_bu()
+ # if len(self) == 1:
+ # _logger.info("Redirecting ke BU")
+ # return self.action_view_related_bu()
return res
diff --git a/indoteknik_custom/models/update_date_planned_po_wizard.py b/indoteknik_custom/models/update_date_planned_po_wizard.py
new file mode 100644
index 00000000..a0d241c8
--- /dev/null
+++ b/indoteknik_custom/models/update_date_planned_po_wizard.py
@@ -0,0 +1,14 @@
+from odoo import models, fields, api
+
+class PurchaseOrderUpdateDateWizard(models.TransientModel):
+ _name = 'purchase.order.update.date.wizard'
+ _description = 'Wizard to Update Receipt Date on Purchase Order Lines'
+
+ date_planned = fields.Datetime(string="New Receipt Date", required=True)
+
+ def action_update_date(self):
+ active_ids = self.env.context.get('active_ids', [])
+ orders = self.env['purchase.order'].browse(active_ids)
+ for order in orders:
+ order.write({'date_planned': self.date_planned})
+ return {'type': 'ir.actions.act_window_close'}
diff --git a/indoteknik_custom/security/ir.model.access.csv b/indoteknik_custom/security/ir.model.access.csv
index 9b43bf2a..d6e44f9d 100755
--- a/indoteknik_custom/security/ir.model.access.csv
+++ b/indoteknik_custom/security/ir.model.access.csv
@@ -191,4 +191,5 @@ access_tukar_guling_all_users,tukar.guling.all.users,model_tukar_guling,base.gro
access_tukar_guling_line_all_users,tukar.guling.line.all.users,model_tukar_guling_line,base.group_user,1,1,1,1
access_tukar_guling_po_all_users,tukar.guling.po.all.users,model_tukar_guling_po,base.group_user,1,1,1,1
access_tukar_guling_line_po_all_users,tukar.guling.line.po.all.users,model_tukar_guling_line_po,base.group_user,1,1,1,1
-access_tukar_guling_mapping_koli_all_users,tukar.guling.mapping.koli.all.users,model_tukar_guling_mapping_koli,base.group_user,1,1,1,1 \ No newline at end of file
+access_tukar_guling_mapping_koli_all_users,tukar.guling.mapping.koli.all.users,model_tukar_guling_mapping_koli,base.group_user,1,1,1,1
+access_purchase_order_update_date_wizard,access.purchase.order.update.date.wizard,model_purchase_order_update_date_wizard,base.group_user,1,1,1,1 \ No newline at end of file
diff --git a/indoteknik_custom/views/purchase_order.xml b/indoteknik_custom/views/purchase_order.xml
index fedcb4f9..15cdc788 100755
--- a/indoteknik_custom/views/purchase_order.xml
+++ b/indoteknik_custom/views/purchase_order.xml
@@ -428,4 +428,24 @@
<field name="code">action = records.open_form_multi_cancel()</field>
</record>
</data>
+ <data>
+ <record id="action_update_receipt_date_po" model="ir.actions.server">
+ <field name="name">Update Receipt Date</field>
+ <field name="model_id" ref="purchase.model_purchase_order"/>
+ <field name="binding_model_id" ref="purchase.model_purchase_order"/>
+ <field name="state">code</field>
+ <field name="binding_view_types">list</field>
+ <field name="code">
+ action = {
+ 'type': 'ir.actions.act_window',
+ 'res_model': 'purchase.order.update.date.wizard',
+ 'view_mode': 'form',
+ 'target': 'new',
+ 'context': {
+ 'active_ids': env.context.get('active_ids', []),
+ },
+ }
+ </field>
+ </record>
+ </data>
</odoo> \ No newline at end of file
diff --git a/indoteknik_custom/views/update_date_planned_po_wizard_view.xml b/indoteknik_custom/views/update_date_planned_po_wizard_view.xml
new file mode 100644
index 00000000..6b3ab991
--- /dev/null
+++ b/indoteknik_custom/views/update_date_planned_po_wizard_view.xml
@@ -0,0 +1,25 @@
+<odoo>
+ <record id="view_update_date_planned_po_wizard_form" model="ir.ui.view">
+ <field name="name">purchase.order.update.date.wizard.form</field>
+ <field name="model">purchase.order.update.date.wizard</field>
+ <field name="arch" type="xml">
+ <form string="Update Receipt Date">
+ <group>
+ <field name="date_planned"/>
+ </group>
+ <footer>
+ <button string="Apply" type="object" name="action_update_date" class="btn-primary"/>
+ <button string="Cancel" special="cancel"/>
+ </footer>
+ </form>
+ </field>
+ </record>
+
+ <record id="action_update_date_planned_po_wizard" model="ir.actions.act_window">
+ <field name="name">Update Receipt Date</field>
+ <field name="res_model">purchase.order.update.date.wizard</field>
+ <field name="view_mode">form</field>
+ <field name="target">new</field>
+ </record>
+ </odoo>
+ \ No newline at end of file