From 3d953861edbdc072e612ef0663a185f0f64c60ae Mon Sep 17 00:00:00 2001 From: Mqdd Date: Tue, 6 Jan 2026 10:25:31 +0700 Subject: done action get picking --- fixco_custom/models/print_picking_list.py | 33 +++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) (limited to 'fixco_custom/models') 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 -- cgit v1.2.3 From 2c860562b22cf562dd7e51bda853ff9bb602a549 Mon Sep 17 00:00:00 2001 From: Mqdd Date: Tue, 6 Jan 2026 11:41:39 +0700 Subject: fix sequence ppl --- fixco_custom/models/print_picking_list.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'fixco_custom/models') diff --git a/fixco_custom/models/print_picking_list.py b/fixco_custom/models/print_picking_list.py index 0fa3af6..512468d 100644 --- a/fixco_custom/models/print_picking_list.py +++ b/fixco_custom/models/print_picking_list.py @@ -7,18 +7,20 @@ _logger = logging.getLogger(__name__) class PrintPickingList(models.Model): _name = "print.picking.list" + _rec_name = 'name' _description = "Print Picking List" _inherit = ['mail.thread'] - _rec_name = 'number' + _order = 'id desc' - number = fields.Char(string='Document No', index=True, copy=False, readonly=True, tracking=True) + name = fields.Char(string='Name', index=True, copy=False, readonly=True) + user_id = fields.Many2one('res.users', string='Created By', default=lambda self: self.env.user, readonly=True) print_picking_list_line = fields.One2many('print.picking.list.line', 'print_picking_list_id', string='Print Picking List Lines', auto_join=True) @api.model def create(self, vals): - vals['number'] = self.env['ir.sequence'].next_by_code('print.picking.list') or '0' - result = super(PrintPickingList, self).create(vals) - return result + if not vals.get('name') or vals['name'] == 'New': + vals['name'] = self.env['ir.sequence'].next_by_code('print.picking.list') or 'new' + return super(PrintPickingList, self).create(vals) def action_get_picking(self): for record in self: -- cgit v1.2.3 From 4c43a3f542de0d0dea89c514f0e038459415b544 Mon Sep 17 00:00:00 2001 From: Mqdd Date: Tue, 6 Jan 2026 13:48:56 +0700 Subject: fix wkwkwk --- fixco_custom/models/print_picking_list.py | 11 +++++------ .../models/stock_picking_print_picking_list.py | 19 ++++++++++++------- 2 files changed, 17 insertions(+), 13 deletions(-) (limited to 'fixco_custom/models') diff --git a/fixco_custom/models/print_picking_list.py b/fixco_custom/models/print_picking_list.py index 512468d..41ba77f 100644 --- a/fixco_custom/models/print_picking_list.py +++ b/fixco_custom/models/print_picking_list.py @@ -52,10 +52,9 @@ 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') + product_id = fields.Many2one('product.product', string='Product') 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 + qty_done = fields.Float(string='Quantity Done', readonly=True) + qty_reserved = fields.Float(string='Quantity Reserved', readonly=True) + uom_id = fields.Many2one('uom.uom', string='Uom') + schedule_date = fields.Datetime(string='Scheduled Date') diff --git a/fixco_custom/models/stock_picking_print_picking_list.py b/fixco_custom/models/stock_picking_print_picking_list.py index 7cc7995..83a034b 100644 --- a/fixco_custom/models/stock_picking_print_picking_list.py +++ b/fixco_custom/models/stock_picking_print_picking_list.py @@ -11,14 +11,21 @@ class StockPickingPrintPickingList(models.TransientModel): raise UserError("No stock picking selected.") pickings = self.env['stock.picking'].browse(picking_ids) - + print_picking_list = self.env['print.picking.list'].create({}) for picking in pickings: - self.env['print.picking.list.line'].create({ - 'print_picking_list_id': print_picking_list.id, - 'invoice_marketplace': picking.invoice_mp, - }) + for line in picking.move_line_ids: + self.env['print.picking.list.line'].create({ + 'print_picking_list_id': print_picking_list.id, + 'invoice_marketplace': picking.invoice_mp, + 'product_id': line.product_id.id, + 'qty_done': line.qty_done, + 'qty_reserved': line.product_uom_qty, + 'uom_id': line.product_uom_id.id, + 'picking_id': picking.id, + 'schedule_date': picking.scheduled_date, + }) return { 'type': 'ir.actions.act_window', @@ -27,5 +34,3 @@ class StockPickingPrintPickingList(models.TransientModel): 'res_id': print_picking_list.id, 'target': 'current', } - - -- cgit v1.2.3 From cae55aa3ec4af039d7361fbcb2327335a693d31e Mon Sep 17 00:00:00 2001 From: Mqdd Date: Thu, 8 Jan 2026 11:37:03 +0700 Subject: fix qweb print picking list --- fixco_custom/models/print_picking_list.py | 41 ++++--------------------------- 1 file changed, 5 insertions(+), 36 deletions(-) (limited to 'fixco_custom/models') diff --git a/fixco_custom/models/print_picking_list.py b/fixco_custom/models/print_picking_list.py index 41ba77f..2b1605a 100644 --- a/fixco_custom/models/print_picking_list.py +++ b/fixco_custom/models/print_picking_list.py @@ -7,42 +7,18 @@ _logger = logging.getLogger(__name__) class PrintPickingList(models.Model): _name = "print.picking.list" - _rec_name = 'name' _description = "Print Picking List" _inherit = ['mail.thread'] - _order = 'id desc' + _rec_name = 'number' - name = fields.Char(string='Name', index=True, copy=False, readonly=True) - user_id = fields.Many2one('res.users', string='Created By', default=lambda self: self.env.user, readonly=True) + number = fields.Char(string='Document No', index=True, copy=False, readonly=True, tracking=True) print_picking_list_line = fields.One2many('print.picking.list.line', 'print_picking_list_id', string='Print Picking List Lines', auto_join=True) @api.model def create(self, vals): - if not vals.get('name') or vals['name'] == 'New': - vals['name'] = self.env['ir.sequence'].next_by_code('print.picking.list') or 'new' - return super(PrintPickingList, self).create(vals) - - 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 + vals['number'] = self.env['ir.sequence'].next_by_code('print.picking.list') or '0' + result = super(PrintPickingList, self).create(vals) + return result class PrintPickingListLine(models.Model): _name = 'print.picking.list.line' @@ -51,10 +27,3 @@ 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') - product_id = fields.Many2one('product.product', string='Product') - picking_id = fields.Many2one('stock.picking', string='BU/OUT') - qty_done = fields.Float(string='Quantity Done', readonly=True) - qty_reserved = fields.Float(string='Quantity Reserved', readonly=True) - uom_id = fields.Many2one('uom.uom', string='Uom') - schedule_date = fields.Datetime(string='Scheduled Date') -- cgit v1.2.3 From c0f4b808b0bb51145f68c64c83a9f901404bdd1b Mon Sep 17 00:00:00 2001 From: Mqdd Date: Thu, 8 Jan 2026 11:38:33 +0700 Subject: add new model --- fixco_custom/models/stock_picking.py | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) (limited to 'fixco_custom/models') diff --git a/fixco_custom/models/stock_picking.py b/fixco_custom/models/stock_picking.py index 7437ca5..76c2ecf 100755 --- a/fixco_custom/models/stock_picking.py +++ b/fixco_custom/models/stock_picking.py @@ -125,10 +125,10 @@ class StockPicking(models.Model): origin = self.origin or '' if any(prefix in origin for prefix in ['PO/', 'SO/']) and not self.check_product_lines and not self.name.startswith('BU/INT'): raise UserError(_("Belum ada check product, gabisa validate")) - + 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() @@ -388,7 +388,7 @@ class StockPicking(models.Model): if 'Blibli' in self.partner_id.name or 'BLIBLI' in self.partner_id.name: self.get_shipping_parameter_blibli() return - + order_id = self.order_reference authorization = self.sign_request(1) @@ -569,7 +569,7 @@ class StockPicking(models.Model): if 'Blibli' in self.partner_id.name or 'BLIBLI' in self.partner_id.name: self.ship_order_blibli() return - + order_id = self.order_reference authorization = self.sign_request(2) # index 2 -> ship-order @@ -904,7 +904,7 @@ class StockPicking(models.Model): except Exception as e: raise UserError(_("Error: %s") % str(e)) - + def sign_request(self, array_num): signData = '$'.join(['POST', Request_URI[array_num]]) + '$' authorization = ACCESS_KEY + ':' + base64.b64encode( @@ -1178,3 +1178,21 @@ class PickingReportCustom(models.AbstractModel): 'docs': pickings, 'was_printed_map': was_printed_map, } + +class PickingReportCustomNew(models.AbstractModel): + _name = 'report.fixco_custom.report_picking_list_custom_new' + _description = 'asjdkla' + + def _get_report_values(self, docids, data=None): + pickings = self.env['stock.picking'].browse(docids) + + was_printed_map = {p.id: p.is_printed for p in pickings} + + pickings.write({'is_printed': True}) + + return { + 'doc_ids': docids, + 'doc_model': 'stock.picking', + 'docs': pickings, + 'was_printed_map': was_printed_map, + } -- cgit v1.2.3 From 6659dcfa24fb1a1923f47be4e0b697489dd0a3bf Mon Sep 17 00:00:00 2001 From: Mqdd Date: Thu, 8 Jan 2026 11:39:09 +0700 Subject: balikin --- fixco_custom/models/stock_picking_print_picking_list.py | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) (limited to 'fixco_custom/models') diff --git a/fixco_custom/models/stock_picking_print_picking_list.py b/fixco_custom/models/stock_picking_print_picking_list.py index 83a034b..13b27b1 100644 --- a/fixco_custom/models/stock_picking_print_picking_list.py +++ b/fixco_custom/models/stock_picking_print_picking_list.py @@ -15,17 +15,10 @@ class StockPickingPrintPickingList(models.TransientModel): print_picking_list = self.env['print.picking.list'].create({}) for picking in pickings: - for line in picking.move_line_ids: - self.env['print.picking.list.line'].create({ - 'print_picking_list_id': print_picking_list.id, - 'invoice_marketplace': picking.invoice_mp, - 'product_id': line.product_id.id, - 'qty_done': line.qty_done, - 'qty_reserved': line.product_uom_qty, - 'uom_id': line.product_uom_id.id, - 'picking_id': picking.id, - 'schedule_date': picking.scheduled_date, - }) + self.env['print.picking.list.line'].create({ + 'print_picking_list_id': print_picking_list.id, + 'invoice_marketplace': picking.invoice_mp, + }) return { 'type': 'ir.actions.act_window', -- cgit v1.2.3