summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMqdd <ahmadmiqdad27@gmail.com>2026-01-06 10:25:31 +0700
committerMqdd <ahmadmiqdad27@gmail.com>2026-01-06 10:25:31 +0700
commit3d953861edbdc072e612ef0663a185f0f64c60ae (patch)
tree6326cbde73385f20e4de17ccf2473d56a4bef845
parentc168c71d419b303c6b2dded7e7ac0d3a3b8aa074 (diff)
<Miqdad> done action get picking
-rw-r--r--fixco_custom/models/print_picking_list.py33
-rw-r--r--fixco_custom/views/print_picking_list.xml14
2 files changed, 42 insertions, 5 deletions
diff --git a/fixco_custom/models/print_picking_list.py b/fixco_custom/models/print_picking_list.py
index 6998526..0fa3af6 100644
--- a/fixco_custom/models/print_picking_list.py
+++ b/fixco_custom/models/print_picking_list.py
@@ -19,7 +19,29 @@ class PrintPickingList(models.Model):
vals['number'] = self.env['ir.sequence'].next_by_code('print.picking.list') or '0'
result = super(PrintPickingList, self).create(vals)
return result
-
+
+ def action_get_picking(self):
+ for record in self:
+ if not record.print_picking_list_line:
+ raise UserError("Tidak ada line.")
+
+ for line in record.print_picking_list_line:
+ if not line.invoice_marketplace:
+ raise UserError(
+ "Invoice Marketplace kosong di salah satu line."
+ )
+
+ picking = self.env['stock.picking'].search([
+ ('invoice_mp', '=', line.invoice_marketplace)
+ ], limit=1)
+
+ if not picking:
+ raise UserError(
+ f"BU/OUT tidak ditemukan untuk Invoice Marketplace: {line.invoice_marketplace}"
+ )
+
+ line.picking_id = picking.id
+
class PrintPickingListLine(models.Model):
_name = 'print.picking.list.line'
_description = 'Print Picking List Line'
@@ -27,4 +49,11 @@ class PrintPickingListLine(models.Model):
print_picking_list_id = fields.Many2one('print.picking.list', string='Ref', required=True, ondelete='cascade', index=True, copy=False)
invoice_marketplace = fields.Char(string='Invoice Marketplace')
-
+ # picking_id = fields.Many2one('stock.picking', string='BU/OUT', compute='_compute_picking_id')
+ picking_id = fields.Many2one('stock.picking', string='BU/OUT')
+
+ # @api.depends('invoice_marketplace')
+ # def _compute_picking_id(self):
+ # for line in self:
+ # picking = self.env['stock.picking'].search([('invoice_mp', '=', line.invoice_marketplace)], limit=1)
+ # line.picking_id = picking.id if picking else False
diff --git a/fixco_custom/views/print_picking_list.xml b/fixco_custom/views/print_picking_list.xml
index a6a33b5..1bbf715 100644
--- a/fixco_custom/views/print_picking_list.xml
+++ b/fixco_custom/views/print_picking_list.xml
@@ -15,7 +15,8 @@
<field name="model">print.picking.list.line</field>
<field name="arch" type="xml">
<tree editable="bottom">
- <field name="invoice_marketplace" readonly="1"/>
+ <field name="invoice_marketplace"/>
+ <field name="picking_id"/>
</tree>
</field>
</record>
@@ -25,15 +26,22 @@
<field name="model">print.picking.list</field>
<field name="arch" type="xml">
<form>
+ <header>
+ <button name="action_get_picking"
+ string="Get Picking Number"
+ type="object"
+ class="oe_highlight"
+ />
+ </header>
<sheet>
<group>
<group>
- <field name="number" readonly="1"/>
+ <field name="number" readonly="1"/>
</group>
</group>
<notebook>
<page string="Line">
- <field name="print_picking_list_line"/>
+ <field name="print_picking_list_line"/>
</page>
</notebook>
</sheet>