summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAzka Nathan <darizkyfaz@gmail.com>2026-01-02 21:12:05 +0700
committerAzka Nathan <darizkyfaz@gmail.com>2026-01-02 21:12:05 +0700
commit622dbf1f8fd2b6306b147cf27b17be8e017fd2e8 (patch)
tree751a7e48cb12f1fabe748cba8c7bcad07da70023
parent96b1fcaace545021f446071bdd495ac810c0f5e7 (diff)
parent87b38e373002bdc0ed224bf71762536c0a4d1d85 (diff)
Merge branch 'main' of bitbucket.org:altafixco/fixco-addons
# Conflicts: # fixco_custom/models/stock_picking.py # fixco_custom/views/stock_picking.xml
-rw-r--r--fixco_custom/models/shipment_group.py43
-rwxr-xr-xfixco_custom/models/stock_picking.py20
-rwxr-xr-xfixco_custom/views/stock_picking.xml12
3 files changed, 65 insertions, 10 deletions
diff --git a/fixco_custom/models/shipment_group.py b/fixco_custom/models/shipment_group.py
index 117de0b..2e2dffa 100644
--- a/fixco_custom/models/shipment_group.py
+++ b/fixco_custom/models/shipment_group.py
@@ -52,12 +52,26 @@ class ShipmentGroup(models.Model):
raise UserError(f"Pickings berikut telah dibatalkan:{cancelled_names}")
for picking_line in shipment.picking_lines:
+ if picking_line.picking_id:
+ # set shipment group ke stock.picking
+ picking_line.picking_id.write({
+ 'shipment_group_id': shipment.id
+ })
+ picking_line.picking_id.message_post(
+ body=_(
+ "📦 <b>Dispatched</b><br/>"
+ "Picking ini telah di-dispatch melalui "
+ "<b>Shipment Group %s</b>."
+ ) % shipment.number
+ )
+
shipment_lines = self.env['shipment.group.line'].search([
('shipment_id', '=', shipment.id),
('invoice_marketplace', '=', picking_line.invoice_marketplace),
('picking_id', '=', picking_line.picking_id.id)
])
+ # reset product shipment
picking_line.product_shipment_lines.unlink()
for sl in shipment_lines:
@@ -70,6 +84,35 @@ class ShipmentGroup(models.Model):
'order_reference': sl.order_reference,
})
+
+ # def sync_product_to_picking_line(self):
+ # for shipment in self:
+ # cancelled_picking = shipment.picking_lines.filtered(
+ # lambda picking: picking.status == 'CANCELLED'
+ # )
+ # if cancelled_picking:
+ # cancelled_names = "\n - " + "\n - ".join(cancelled_picking.mapped("name"))
+ # raise UserError(f"Pickings berikut telah dibatalkan:{cancelled_names}")
+
+ # for picking_line in shipment.picking_lines:
+ # shipment_lines = self.env['shipment.group.line'].search([
+ # ('shipment_id', '=', shipment.id),
+ # ('invoice_marketplace', '=', picking_line.invoice_marketplace),
+ # ('picking_id', '=', picking_line.picking_id.id)
+ # ])
+
+ # picking_line.product_shipment_lines.unlink()
+
+ # for sl in shipment_lines:
+ # self.env['product.shipment.line'].create({
+ # 'picking_line_id': picking_line.id,
+ # 'product_id': sl.product_id.id,
+ # 'carrier': sl.carrier or picking_line.carrier,
+ # 'invoice_marketplace': sl.invoice_marketplace,
+ # 'picking_id': sl.picking_id.id,
+ # 'order_reference': sl.order_reference,
+ # })
+
def _compute_related_count(self):
for record in self:
record.related_count = len(record.picking_lines)
diff --git a/fixco_custom/models/stock_picking.py b/fixco_custom/models/stock_picking.py
index 21bdbf0..79a0665 100755
--- a/fixco_custom/models/stock_picking.py
+++ b/fixco_custom/models/stock_picking.py
@@ -65,6 +65,13 @@ class StockPicking(models.Model):
soo_number = fields.Char(string='SOO Altama Number', related='purchase_id.soo_number')
type_sku = fields.Selection([('single', 'Single SKU'), ('multi', 'Multi SKU')], string='Type SKU')
list_product = fields.Char(string='List Product')
+ is_dispatched = fields.Boolean(string='Is Dispatched', default=False, compute='_compute_is_dispatched', readonly=True)
+
+ @api.depends('shipment_group_id')
+ def _compute_is_dispatched(self):
+ for picking in self:
+ picking.is_dispatched = bool(picking.shipment_group_id)
+
def action_cancel_selected_pickings(self):
for picking in self:
@@ -86,21 +93,21 @@ class StockPicking(models.Model):
self.ship_order()
def create_invoices(self):
-
+
so_id = self.sale_id.id
if not so_id:
raise UserError(_("Gaada So nya!"))
-
+
sale_orders = self.env['sale.order'].browse(so_id)
created_invoices = self.env['account.move']
-
+
for order in sale_orders:
invoice = order.with_context(default_invoice_origin=order.name)._create_invoices(final=True)
invoice.action_post()
created_invoices += invoice
-
+
order.invoice_ids += invoice
-
+
if created_invoices:
action = {
'name': _('Created Invoice'),
@@ -111,7 +118,7 @@ class StockPicking(models.Model):
}
else:
action = {'type': 'ir.actions.act_window_close'}
-
+
return action
def button_validate(self):
@@ -122,6 +129,7 @@ class StockPicking(models.Model):
if self.name.startswith('BU/INT') and self.picking_type_code == 'internal' and self.env.user.id not in [10,15,2] and self.location_dest_id.id == 86:
raise UserError(_("Hanya bang rafly hanggara yang bisa validate"))
+
res = super(StockPicking, self).button_validate()
# if self.name.startswith('BU/OUT') and self.origin.startswith('SO/'):
diff --git a/fixco_custom/views/stock_picking.xml b/fixco_custom/views/stock_picking.xml
index ec8b17d..b7fb001 100755
--- a/fixco_custom/views/stock_picking.xml
+++ b/fixco_custom/views/stock_picking.xml
@@ -13,6 +13,8 @@
<field name="type_sku" optional="hide"/>
<field name="carrier" optional="hide"/>
<field name="create_date" optional="hide"/>
+ <field name="shipment_group_id" optional="hide"/>
+ <field name="is_dispatched" optional="hide"/>
</field>
</field>
</record>
@@ -47,6 +49,8 @@
<field name="tracking_number" readonly="1"/>
<field name="invoice_number" readonly="1"/>
<field name="invoice_mp" readonly="1"/>
+ <field name="shipment_group_id" readonly="1"/>
+ <field name="is_dispatched" readonly="1"/>
<field name="channel" readonly="1"/>
<field name="ginee_task_id" readonly="1"/>
<field name="pdf_label_url" readonly="1" widget="url"/>
@@ -64,7 +68,7 @@
<field name="ginee_pickup_time_id" readonly="1"/>
</group>
</group>
-
+
<field name="location_id" position="after">
<field name="carrier"/>
<field name="shipment_group_id"/>
@@ -90,7 +94,7 @@
filter_domain="['|', '|', ('name', 'ilike', self), ('origin', 'ilike', self), ('invoice_mp', 'ilike', self)]"/>
</field>
</field>
- </record>
+ </record>
<record id="stock_picking_shipment_group_ir_actions_server" model="ir.actions.server">
<field name="name">Shipment Group</field>
@@ -99,7 +103,7 @@
<field name="state">code</field>
<field name="code">action = records.open_form_shipment_group()</field>
</record>
-
+
<record id="stock_picking_print_picking_list_ir_actions_server" model="ir.actions.server">
<field name="name">Print Picking List</field>
<field name="model_id" ref="stock.model_stock_picking"/>
@@ -153,4 +157,4 @@
</data>
-</odoo> \ No newline at end of file
+</odoo>