diff options
| author | Mqdd <ahmadmiqdad27@gmail.com> | 2026-01-06 10:25:31 +0700 |
|---|---|---|
| committer | Mqdd <ahmadmiqdad27@gmail.com> | 2026-01-06 10:25:31 +0700 |
| commit | 3d953861edbdc072e612ef0663a185f0f64c60ae (patch) | |
| tree | 6326cbde73385f20e4de17ccf2473d56a4bef845 | |
| parent | c168c71d419b303c6b2dded7e7ac0d3a3b8aa074 (diff) | |
<Miqdad> done action get picking
| -rw-r--r-- | fixco_custom/models/print_picking_list.py | 33 | ||||
| -rw-r--r-- | fixco_custom/views/print_picking_list.xml | 14 |
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> |
