diff options
Diffstat (limited to 'fixco_custom/models')
| -rw-r--r-- | fixco_custom/models/print_picking_list.py | 44 | ||||
| -rw-r--r-- | fixco_custom/models/stock_picking_print_picking_list.py | 19 |
2 files changed, 49 insertions, 14 deletions
diff --git a/fixco_custom/models/print_picking_list.py b/fixco_custom/models/print_picking_list.py index 6998526..41ba77f 100644 --- a/fixco_custom/models/print_picking_list.py +++ b/fixco_custom/models/print_picking_list.py @@ -7,19 +7,43 @@ _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: + 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 +51,10 @@ 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') 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', } - - |
