diff options
| -rw-r--r-- | fixco_custom/models/print_picking_list.py | 44 | ||||
| -rw-r--r-- | fixco_custom/models/stock_picking_print_picking_list.py | 19 | ||||
| -rw-r--r-- | fixco_custom/views/ir_sequence.xml | 10 | ||||
| -rw-r--r-- | fixco_custom/views/print_picking_list.xml | 33 |
4 files changed, 79 insertions, 27 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', } - - diff --git a/fixco_custom/views/ir_sequence.xml b/fixco_custom/views/ir_sequence.xml index e4845f7..59572d2 100644 --- a/fixco_custom/views/ir_sequence.xml +++ b/fixco_custom/views/ir_sequence.xml @@ -11,7 +11,7 @@ <field name="number_increment">1</field> <field name="company_id">4</field> </record> - + <record id="sequence_upload_payments" model="ir.sequence"> <field name="name">Upload Payments</field> <field name="code">upload.payments</field> @@ -33,7 +33,7 @@ <field name="number_increment">1</field> <field name="company_id">4</field> </record> - + <record id="sequence_shipment_group" model="ir.sequence"> <field name="name">Shipment Group</field> <field name="code">shipment.group</field> @@ -44,7 +44,7 @@ <field name="number_increment">1</field> <field name="company_id">4</field> </record> - + <record id="sequence_print_picking_list" model="ir.sequence"> <field name="name">Print Picking List</field> <field name="code">print.picking.list</field> @@ -53,7 +53,7 @@ <field name="padding">5</field> <field name="number_next">1</field> <field name="number_increment">1</field> - <field name="company_id">4</field> + <!-- <field name="company_id">4</field> --> </record> <record id="sequence_automatic_purchase" model="ir.sequence"> @@ -78,4 +78,4 @@ <field name="company_id">4</field> </record> </data> -</odoo>
\ No newline at end of file +</odoo> diff --git a/fixco_custom/views/print_picking_list.xml b/fixco_custom/views/print_picking_list.xml index a6a33b5..12892ab 100644 --- a/fixco_custom/views/print_picking_list.xml +++ b/fixco_custom/views/print_picking_list.xml @@ -4,8 +4,9 @@ <field name="name">print.picking.list.tree</field> <field name="model">print.picking.list</field> <field name="arch" type="xml"> - <tree default_order="create_date desc"> - <field name="number"/> + <tree> + <field name="name"/> + <field name="user_id"/> </tree> </field> </record> @@ -15,7 +16,13 @@ <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="product_id"/> + <field name="picking_id"/> + <field name="qty_done"/> + <field name="qty_reserved"/> + <field name="uom_id"/> + <field name="schedule_date" optional="hide"/> </tree> </field> </record> @@ -25,15 +32,25 @@ <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"/> - </group> + <div class="oe_title"> + <h1> + <field name="name" readonly="1" class="oe_inline"/> + </h1> + </div> + <group> + <field name="user_id"/> </group> <notebook> <page string="Line"> - <field name="print_picking_list_line"/> + <field name="print_picking_list_line"/> </page> </notebook> </sheet> |
