summaryrefslogtreecommitdiff
path: root/fixco_custom
diff options
context:
space:
mode:
Diffstat (limited to 'fixco_custom')
-rwxr-xr-xfixco_custom/__manifest__.py2
-rwxr-xr-xfixco_custom/models/__init__.py2
-rw-r--r--fixco_custom/models/account_move.py7
-rwxr-xr-xfixco_custom/models/detail_order.py2
-rw-r--r--fixco_custom/models/print_picking_list.py30
-rwxr-xr-xfixco_custom/models/sale.py1
-rwxr-xr-xfixco_custom/models/stock_picking.py12
-rw-r--r--fixco_custom/models/stock_picking_print_picking_list.py31
-rwxr-xr-xfixco_custom/security/ir.model.access.csv5
-rw-r--r--fixco_custom/views/account_move.xml1
-rwxr-xr-xfixco_custom/views/detail_order.xml12
-rw-r--r--fixco_custom/views/ir_sequence.xml10
-rw-r--r--fixco_custom/views/print_picking_list.xml62
-rwxr-xr-xfixco_custom/views/stock_picking.xml8
-rw-r--r--fixco_custom/views/stock_picking_print_picking_list.xml32
15 files changed, 214 insertions, 3 deletions
diff --git a/fixco_custom/__manifest__.py b/fixco_custom/__manifest__.py
index f464112..83d085a 100755
--- a/fixco_custom/__manifest__.py
+++ b/fixco_custom/__manifest__.py
@@ -25,6 +25,8 @@
'views/purchase_pricelist.xml',
'views/shipment_group.xml',
'views/stock_picking_shipment_group.xml',
+ 'views/stock_picking_print_picking_list.xml',
+ 'views/print_picking_list.xml',
],
'demo': [],
'css': [],
diff --git a/fixco_custom/models/__init__.py b/fixco_custom/models/__init__.py
index ae6b655..9eba2c6 100755
--- a/fixco_custom/models/__init__.py
+++ b/fixco_custom/models/__init__.py
@@ -11,3 +11,5 @@ from . import upload_payments
from . import purchase_pricelist
from . import shipment_group
from . import stock_picking_shipment_group
+from . import print_picking_list
+from . import stock_picking_print_picking_list
diff --git a/fixco_custom/models/account_move.py b/fixco_custom/models/account_move.py
index 3f52319..82223b6 100644
--- a/fixco_custom/models/account_move.py
+++ b/fixco_custom/models/account_move.py
@@ -17,4 +17,9 @@ class AccountMove(models.Model):
invoice_marketplace = fields.Char('Invoice Marketplace')
address = fields.Char('Address')
sale_id = fields.Many2one('sale.order', string='Sale Order')
- picking_id = fields.Many2one('stock.picking', string='Picking') \ No newline at end of file
+ picking_id = fields.Many2one('stock.picking', string='Picking')
+ transaction_type = fields.Selection(
+ [('digunggung', 'Digunggung'),
+ ('difaktur', 'Faktur Pajak')],
+ string='Transaction Type'
+ ) \ No newline at end of file
diff --git a/fixco_custom/models/detail_order.py b/fixco_custom/models/detail_order.py
index e3370b0..2c82db6 100755
--- a/fixco_custom/models/detail_order.py
+++ b/fixco_custom/models/detail_order.py
@@ -182,7 +182,7 @@ class DetailOrder(models.Model):
'product_id': bline.variant_id.id if bline.variant_id else product.id,
'product_uom_qty': bline.product_uom_qty * item.get('quantity') if bline.product_uom_qty else item.get('quantity'),
'price_unit': bline.price * bline.product_uom_qty if bline.price else item.get('actualPrice'),
- 'name': f"{bline.master_sku} (Bundle Component)" if bline.master_sku else product.name,
+ 'name': f"{bline.variant_id.display_name} (Bundle Component)" if bline.variant_id.display_name else product.name,
}))
continue
diff --git a/fixco_custom/models/print_picking_list.py b/fixco_custom/models/print_picking_list.py
new file mode 100644
index 0000000..6998526
--- /dev/null
+++ b/fixco_custom/models/print_picking_list.py
@@ -0,0 +1,30 @@
+from odoo import models, api, fields
+from odoo.exceptions import AccessError, UserError, ValidationError
+from datetime import timedelta, date
+import logging
+
+_logger = logging.getLogger(__name__)
+
+class PrintPickingList(models.Model):
+ _name = "print.picking.list"
+ _description = "Print Picking List"
+ _inherit = ['mail.thread']
+ _rec_name = 'number'
+
+ 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):
+ 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'
+ _description = 'Print Picking List Line'
+ _order = 'print_picking_list_id, id'
+
+ 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')
+
diff --git a/fixco_custom/models/sale.py b/fixco_custom/models/sale.py
index b36f4b5..bc7a734 100755
--- a/fixco_custom/models/sale.py
+++ b/fixco_custom/models/sale.py
@@ -34,6 +34,7 @@ class SaleOrder(models.Model):
'ref': self.client_order_ref or '',
'move_type': 'out_invoice',
'narration': self.note,
+ 'transaction_type': self.partner_invoice_id.transaction_type,
'invoice_marketplace': self.invoice_mp,
'address': self.address,
'sale_id': self.id,
diff --git a/fixco_custom/models/stock_picking.py b/fixco_custom/models/stock_picking.py
index 15dcd27..78d4c16 100755
--- a/fixco_custom/models/stock_picking.py
+++ b/fixco_custom/models/stock_picking.py
@@ -51,6 +51,18 @@ class StockPicking(models.Model):
}
}
+ def open_form_print_picking_list(self):
+ return {
+ 'name': _('Create Print Picking List'),
+ 'type': 'ir.actions.act_window',
+ 'res_model': 'stock.picking.print_picking_list',
+ 'view_mode': 'form',
+ 'target': 'new',
+ 'context': {
+ 'picking_ids': self.ids,
+ }
+ }
+
def label_ginee(self):
try:
order_id = self.order_reference
diff --git a/fixco_custom/models/stock_picking_print_picking_list.py b/fixco_custom/models/stock_picking_print_picking_list.py
new file mode 100644
index 0000000..7cc7995
--- /dev/null
+++ b/fixco_custom/models/stock_picking_print_picking_list.py
@@ -0,0 +1,31 @@
+from odoo import models, fields, api, _
+from odoo.exceptions import UserError
+
+class StockPickingPrintPickingList(models.TransientModel):
+ _name = 'stock.picking.print_picking_list'
+ _description = 'Stock Picking Shipment Group'
+
+ def create_print_picking_list(self):
+ picking_ids = self.env.context.get('picking_ids')
+ if not picking_ids:
+ 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,
+ })
+
+ return {
+ 'type': 'ir.actions.act_window',
+ 'res_model': 'print.picking.list',
+ 'view_mode': 'form',
+ 'res_id': print_picking_list.id,
+ 'target': 'current',
+ }
+
+
diff --git a/fixco_custom/security/ir.model.access.csv b/fixco_custom/security/ir.model.access.csv
index e40c7d1..ef91758 100755
--- a/fixco_custom/security/ir.model.access.csv
+++ b/fixco_custom/security/ir.model.access.csv
@@ -13,4 +13,7 @@ access_purchase_pricelist,access.purchase.pricelist,model_purchase_pricelist,,1,
access_shipment_group,access.shipment.group,model_shipment_group,,1,1,1,1
access_shipment_group_line,access.shipment.group.line,model_shipment_group_line,,1,1,1,1
access_stock_picking_shipment_group,access.stock.picking.shipment_group,model_stock_picking_shipment_group,,1,1,1,1
-access_bundling_line,access.bundling.line,model_bundling_line,,1,1,1,1 \ No newline at end of file
+access_bundling_line,access.bundling.line,model_bundling_line,,1,1,1,1
+access_print_picking_list,access.shipment.group,model_print_picking_list,,1,1,1,1
+access_print_picking_list_line,access.shipment.group.line,model_print_picking_list_line,,1,1,1,1
+access_stock_picking_print_picking_list,access.stock.picking.print_picking_list,model_stock_picking_print_picking_list,,1,1,1,1 \ No newline at end of file
diff --git a/fixco_custom/views/account_move.xml b/fixco_custom/views/account_move.xml
index 7e24873..97414e6 100644
--- a/fixco_custom/views/account_move.xml
+++ b/fixco_custom/views/account_move.xml
@@ -8,6 +8,7 @@
<field name="arch" type="xml">
<field name="payment_reference" position="after">
<field name="invoice_marketplace" readonly="1"/>
+ <field name="transaction_type" readonly="1"/>
</field>
<field name="partner_id" position="after">
<field name="address" readonly="1"/>
diff --git a/fixco_custom/views/detail_order.xml b/fixco_custom/views/detail_order.xml
index 711f908..60a335c 100755
--- a/fixco_custom/views/detail_order.xml
+++ b/fixco_custom/views/detail_order.xml
@@ -20,6 +20,18 @@
<field name="model">detail.order</field>
<field name="arch" type="xml">
<form>
+ <header>
+ <button name="execute_queue"
+ string="Create Detail Order"
+ type="object"
+ attrs="{'readonly': [('detail_order', '!=', False)]}"
+ />
+ <button name="execute_queue_detail"
+ string="Create SO"
+ type="object"
+ attrs="{'invisible': [('sale_id', '!=', False)]}"
+ />
+ </header>
<sheet>
<group>
<group>
diff --git a/fixco_custom/views/ir_sequence.xml b/fixco_custom/views/ir_sequence.xml
index 9de8525..10cc807 100644
--- a/fixco_custom/views/ir_sequence.xml
+++ b/fixco_custom/views/ir_sequence.xml
@@ -20,5 +20,15 @@
<field name="number_next">1</field>
<field name="number_increment">1</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>
+ <field name="active">TRUE</field>
+ <field name="prefix">PPL/%(year)s/</field>
+ <field name="padding">5</field>
+ <field name="number_next">1</field>
+ <field name="number_increment">1</field>
+ </record>
</data>
</odoo> \ No newline at end of file
diff --git a/fixco_custom/views/print_picking_list.xml b/fixco_custom/views/print_picking_list.xml
new file mode 100644
index 0000000..a6a33b5
--- /dev/null
+++ b/fixco_custom/views/print_picking_list.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<odoo>
+ <record id="print_picking_list_tree" model="ir.ui.view">
+ <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>
+ </record>
+
+ <record id="print_picking_list_line_tree" model="ir.ui.view">
+ <field name="name">print.picking.list.line.tree</field>
+ <field name="model">print.picking.list.line</field>
+ <field name="arch" type="xml">
+ <tree editable="bottom">
+ <field name="invoice_marketplace" readonly="1"/>
+ </tree>
+ </field>
+ </record>
+
+ <record id="print_picking_list_form" model="ir.ui.view">
+ <field name="name">print.picking.list.form</field>
+ <field name="model">print.picking.list</field>
+ <field name="arch" type="xml">
+ <form>
+ <sheet>
+ <group>
+ <group>
+ <field name="number" readonly="1"/>
+ </group>
+ </group>
+ <notebook>
+ <page string="Line">
+ <field name="print_picking_list_line"/>
+ </page>
+ </notebook>
+ </sheet>
+ <div class="oe_chatter">
+ <field name="message_follower_ids" widget="mail_followers"/>
+ <field name="message_ids" widget="mail_thread"/>
+ </div>
+ </form>
+ </field>
+ </record>
+
+ <record id="print_picking_list_action" model="ir.actions.act_window">
+ <field name="name">Print Picking List</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">print.picking.list</field>
+ <field name="view_mode">tree,form</field>
+ </record>
+
+ <menuitem
+ action="print_picking_list_action"
+ id="print_picking_list"
+ parent="stock.menu_stock_warehouse_mgmt"
+ name="Print Picking List"
+ sequence="1"
+ />
+</odoo>
diff --git a/fixco_custom/views/stock_picking.xml b/fixco_custom/views/stock_picking.xml
index 446e735..21d0aae 100755
--- a/fixco_custom/views/stock_picking.xml
+++ b/fixco_custom/views/stock_picking.xml
@@ -55,6 +55,14 @@
<field name="state">code</field>
<field name="code">action = records.open_form_shipment_group()</field>
</record>
+
+ <record id="stock_picking_print_picking_list_ir_actions_server" model="ir.actions.server">
+ <field name="name">Print Picking List</field>
+ <field name="model_id" ref="stock.model_stock_picking"/>
+ <field name="binding_model_id" ref="stock.model_stock_picking"/>
+ <field name="state">code</field>
+ <field name="code">action = records.open_form_print_picking_list()</field>
+ </record>
<record id="check_product_tree" model="ir.ui.view">
<field name="name">check.product.tree</field>
diff --git a/fixco_custom/views/stock_picking_print_picking_list.xml b/fixco_custom/views/stock_picking_print_picking_list.xml
new file mode 100644
index 0000000..1903c8f
--- /dev/null
+++ b/fixco_custom/views/stock_picking_print_picking_list.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<odoo>
+ <data>
+ <record id="view_stock_picking_print_picking_list_form" model="ir.ui.view">
+ <field name="name">Stock Picking Print Picking List</field>
+ <field name="model">stock.picking.print_picking_list</field>
+ <field name="arch" type="xml">
+ <form string="Create Print Picking List">
+ <sheet>
+ <div class="oe_title">
+ <h2>Create Print Picking List for Selected Stock Picking</h2>
+ </div>
+ </sheet>
+ <footer>
+ <button name="create_print_picking_list" string="Create Print Picking List" type="object"
+ class="btn-primary" default_focus="1"/>
+ <button string="Cancel" class="btn-secondary" special="cancel"/>
+ </footer>
+ </form>
+ </field>
+ </record>
+
+ <record id="action_stock_picking_print_picking_list" model="ir.actions.act_window">
+ <field name="name">Create Print Picking List</field>
+ <field name="res_model">stock.picking.print_picking_list</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="view_mode">form</field>
+ <field name="view_id" ref="view_stock_picking_print_picking_list_form"/>
+ <field name="target">new</field>
+ </record>
+ </data>
+</odoo> \ No newline at end of file