summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fixco_custom/models/print_picking_list.py44
-rw-r--r--fixco_custom/models/stock_picking_print_picking_list.py19
-rw-r--r--fixco_custom/views/ir_sequence.xml10
-rw-r--r--fixco_custom/views/print_picking_list.xml33
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>