[IMP]: sale_journal: taskid [585]: correct report.py and report.xml file.
bzr revid: atp@tinyerp.co.in-20100429132425-hokkxrw80a2oe11i
This commit is contained in:
@@ -20,8 +20,7 @@
|
||||
##############################################################################
|
||||
|
||||
import sale_journal
|
||||
import sale_journal_inherit
|
||||
import sale_journal_report
|
||||
import sale_journal_picking_report
|
||||
import report
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
|
||||
@@ -54,8 +54,7 @@
|
||||
'update_xml': [
|
||||
'security/ir.model.access.csv',
|
||||
'sale_journal_view.xml',
|
||||
'picking_journal_view.xml',
|
||||
'picking_journal_view_report.xml'
|
||||
'report/sale_journal_report_view.xml',
|
||||
],
|
||||
'demo_xml': ['sale_journal_demo.xml'],
|
||||
'installable': True,
|
||||
|
||||
@@ -1,110 +0,0 @@
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<record model="ir.ui.view" id="view_picking_journal_form">
|
||||
<field name="name">sale_journal.picking.journal.form</field>
|
||||
<field name="model">sale_journal.picking.journal</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Picking Journal">
|
||||
<notebook>
|
||||
<page string="Journal">
|
||||
<separator string="Journal Information" colspan="4"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="code" select="1"/>
|
||||
<field name="user_id" select="1"/>
|
||||
<field name="date" select="1"/>
|
||||
<field name="date_created" select="1"/>
|
||||
<field name="date_validation" select="1"/>
|
||||
<separator string="States" colspan="4"/>
|
||||
<field name="state"/>
|
||||
<group col="3" colspan="2">
|
||||
<button name="button_open" string="Open Journal" states="draft" type="object" icon="gtk-open"/>
|
||||
<button name="button_close" string="Close Journal" states="open" type="object" icon="gtk-close"/>
|
||||
<button name="button_draft" string="Set to Draft" states="close,open" type="object" icon="gtk-convert"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Picking">
|
||||
<button string="Cancel Picking" name="button_picking_cancel" states="draft,open" type="object" icon="gtk-cancel"/>
|
||||
<newline/>
|
||||
<field name="picking_stats_ids" colspan="4" nolabel="1"/>
|
||||
</page><page string="Notes">
|
||||
<field name="note" colspan="4" nolabel="1"/>
|
||||
</page>
|
||||
</notebook>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="view_picking_journal_tree">
|
||||
<field name="name">sale_journal.picking.journal.tree</field>
|
||||
<field name="model">sale_journal.picking.journal</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Picking Journal">
|
||||
<field name="name" select="1"/>
|
||||
<field name="code" select="1"/>
|
||||
<field name="user_id" select="1"/>
|
||||
<field name="date" select="1"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_picking_journal_search">
|
||||
<field name="name">sale_journal.picking.journal.search</field>
|
||||
<field name="model">sale_journal.picking.journal</field>
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Picking Journal">
|
||||
<group col="8" colspan="4">
|
||||
<filter icon="terp-hr" string="My Picking Journals" domain="[('user_id','=',uid)]" help="My Picking Journals"/>
|
||||
<filter icon="terp-hr" string="Open" domain="[('state','=','open')]" help="Open Picking Journals"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="code" select="1"/>
|
||||
<field name="user_id" select="1" widget="selection"/>
|
||||
<field name="date" select="1"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.actions.act_window" id="action_definition_picking_journal">
|
||||
<field name="name">Picking journals</field>
|
||||
<field name="res_model">sale_journal.picking.journal</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="search_view_id" ref="view_picking_journal_search"/>
|
||||
</record>
|
||||
|
||||
<menuitem name="Picking Journals" id="menu_definition_journal_picking" parent="stock.menu_stock_configuration" action="action_definition_picking_journal"/>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_invoice_type_tree">
|
||||
<field name="name">Picking by invoice_method</field>
|
||||
<field name="name">sale_journal.invoice.type.tree</field>
|
||||
<field name="res_model">sale_journal.invoice.type</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">tree</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!--<menuitem name="Picking to Invoice" id="menu_definition_journal_picking_invoice" parent="stock.menu_action_picking_tree"/>-->
|
||||
<!--<menuitem name="Picking by Invoice Method" id="menu_definition_journal_picking_invoice_method" parent="menu_definition_journal_picking_invoice" action="action_invoice_type_tree"/>-->
|
||||
|
||||
<record model="ir.actions.act_window" id="action_invoice_type_picking_open">
|
||||
<field name="name">Picking to invoice</field>
|
||||
<field name="res_model">stock.picking</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[('state','=','done'),('invoice_state','=','2binvoiced'),('invoice_type_id','=',active_id)]</field>
|
||||
</record>
|
||||
<record model="ir.values" id="ir_open_invoice_type">
|
||||
<field name="key2">tree_but_open</field>
|
||||
<field name="model">sale_journal.invoice.type</field>
|
||||
<field name="name">Picking to invoice</field>
|
||||
<field name="value" eval="'ir.actions.act_window,%d'%action_invoice_type_picking_open"/>
|
||||
<field name="object" eval="True"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -1,151 +0,0 @@
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
#
|
||||
# Pickings by invoice type
|
||||
#
|
||||
|
||||
<record model="ir.ui.view" id="view_picking_invoice_type_stats_form">
|
||||
<field name="name">sale_journal.invoice.type.stats.form</field>
|
||||
<field name="model">sale_journal.invoice.type.stats</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Picking by invoice method">
|
||||
<field name="name" select="1"/>
|
||||
<field name="month" select="1"/>
|
||||
<field name="invoice_state" select="1"/>
|
||||
<field name="state" select="1"/>
|
||||
<field name="invoice_type_id" select="1"/>
|
||||
<field name="quantity"/>
|
||||
<field name="count"/>
|
||||
<field name="price_total"/>
|
||||
<field name="price_average"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="view_picking_invoice_type_stats_tree">
|
||||
<field name="name">sale_journal.invoice.type.stats.tree</field>
|
||||
<field name="model">sale_journal.invoice.type.stats</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Picking by invoice method">
|
||||
<field name="name"/>
|
||||
<field name="month"/>
|
||||
<field name="invoice_state"/>
|
||||
<field name="state"/>
|
||||
<field name="invoice_type_id"/>
|
||||
<field name="quantity"/>
|
||||
<field name="count"/>
|
||||
<field name="price_total"/>
|
||||
<field name="price_average"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="view_picking_invoice_type_stats_search">
|
||||
<field name="name">sale_journal.invoice.type.stats.search</field>
|
||||
<field name="model">sale_journal.invoice.type.stats</field>
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Picking by invoice method">
|
||||
<group col="8" colspan="4">
|
||||
<filter icon="terp-sale" string="This Year" domain="[('name','=',time.strftime('%%Y'))]" help="Picking by invoice method in this year"/>
|
||||
<filter icon="terp-sale" string="This Month" domain="[('month','=',time.strftime('%%m'))]" help="Picking by invoice method in this month"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="month" select="1"/>
|
||||
<field name="invoice_state" select="1"/>
|
||||
<field name="state" select="1"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.actions.act_window" id="action_invoice_type_picking_stats_open">
|
||||
<field name="name">Statistics on picking to invoice</field>
|
||||
<field name="res_model">sale_journal.invoice.type.stats</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[('invoice_state','=','2binvoiced'),('invoice_type_id','=',active_id)]</field>
|
||||
</record>
|
||||
|
||||
<menuitem name="Picking Journal" id="menu_definition_journal_reporting" parent="stock.next_id_61"/>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_invoice_type_picking_stats_open_menu_all">
|
||||
<field name="name">Picking by invoice method</field>
|
||||
<field name="res_model">sale_journal.invoice.type.stats</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="search_view_id" ref="view_picking_invoice_type_stats_search"/>
|
||||
</record>
|
||||
|
||||
<menuitem name="Picking by Invoice Method" id="menu_invoice_type_picking_stats_open_all" parent="menu_definition_journal_reporting" action="action_invoice_type_picking_stats_open_menu_all"/>
|
||||
|
||||
#
|
||||
# Packing by journal
|
||||
#
|
||||
|
||||
<record model="ir.ui.view" id="view_picking_journal_stats_form">
|
||||
<field name="name">sale_journal.picking.stats.form</field>
|
||||
<field name="model">sale_journal.picking.stats</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Picking by journals">
|
||||
<field name="name" select="1"/>
|
||||
<field name="month" select="1"/>
|
||||
<field name="state" select="1"/>
|
||||
<field name="journal_id" select="1"/>
|
||||
<field name="quantity"/>
|
||||
<field name="count"/>
|
||||
<field name="price_total"/>
|
||||
<field name="price_average"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="view_picking_journal_stats_tree">
|
||||
<field name="name">sale_journal.picking.stats.tree</field>
|
||||
<field name="model">sale_journal.picking.stats</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Picking by journals">
|
||||
<field name="name"/>
|
||||
<field name="state"/>
|
||||
<field name="journal_id"/>
|
||||
<field name="quantity"/>
|
||||
<field name="count"/>
|
||||
<field name="price_total"/>
|
||||
<field name="price_average"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="view_picking_journal_stats_search">
|
||||
<field name="name">sale_journal.picking.stats.search</field>
|
||||
<field name="model">sale_journal.picking.stats</field>
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Picking by journals">
|
||||
<group col="8" colspan="4">
|
||||
<filter icon="terp-sale" string="This Year" domain="[('name','=',time.strftime('%%Y'))]" help="Picking by journals in this year"/>
|
||||
<filter icon="terp-sale" string="This Month" domain="[('month','=',time.strftime('%%m'))]" help="Picking by journals in this month"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="month" select="1"/>
|
||||
<field name="state" select="1"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_picking_picking_stats_open_menu_all">
|
||||
<field name="name">Picking by journal</field>
|
||||
<field name="res_model">sale_journal.picking.stats</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="search_view_id" ref="view_picking_journal_stats_search"/>
|
||||
</record>
|
||||
|
||||
<menuitem name="Picking by Journal" id="menu_picking_picking_stats_open_all" parent="menu_definition_journal_reporting" action="action_picking_picking_stats_open_menu_all"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -0,0 +1,24 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import sale_journal_report
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
@@ -0,0 +1,141 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from osv import fields, osv
|
||||
import tools
|
||||
|
||||
class sale_journal_report(osv.osv):
|
||||
_name = "sale.journal.report"
|
||||
_description = "Sales Orders by Journal"
|
||||
_auto = False
|
||||
_columns = {
|
||||
'name': fields.char('Year', size=64, required=False, readonly=True),
|
||||
'month':fields.selection([('01', 'January'), ('02', 'February'), ('03', 'March'), ('04', 'April'),
|
||||
('05', 'May'), ('06', 'June'), ('07', 'July'), ('08', 'August'), ('09', 'September'),
|
||||
('10', 'October'), ('11', 'November'), ('12', 'December')], 'Month', readonly=True),
|
||||
'state': fields.selection([
|
||||
('draft', 'Quotation'),
|
||||
('waiting_date', 'Waiting Schedule'),
|
||||
('manual', 'Manual in progress'),
|
||||
('progress', 'In progress'),
|
||||
('shipping_except', 'Shipping Exception'),
|
||||
('invoice_except', 'Invoice Exception'),
|
||||
('done', 'Done'),
|
||||
('cancel', 'Cancel')
|
||||
], 'Order State', readonly=True),
|
||||
'journal_id':fields.many2one('sale_journal.sale.journal', 'Journal', readonly=True),
|
||||
'quantity': fields.float('Quantities', readonly=True),
|
||||
'price_total': fields.float('Total Price', readonly=True),
|
||||
'price_average': fields.float('Average Price', readonly=True),
|
||||
'count': fields.integer('# of Lines', readonly=True),
|
||||
}
|
||||
|
||||
_order = 'journal_id, name desc,price_total desc'
|
||||
|
||||
def init(self, cr):
|
||||
tools.drop_view_if_exists(cr, 'sale_journal_report')
|
||||
cr.execute("""
|
||||
create or replace view sale_journal_report as (
|
||||
select
|
||||
min(l.id) as id,
|
||||
to_char(s.date_order, 'YYYY') as name,
|
||||
to_char(s.date_order,'MM') as month,
|
||||
s.state,
|
||||
s.journal_id,
|
||||
sum(l.product_uom_qty) as quantity,
|
||||
count(*),
|
||||
sum(l.product_uom_qty*l.price_unit) as price_total,
|
||||
(sum(l.product_uom_qty*l.price_unit)/sum(l.product_uom_qty))::decimal(16,2) as price_average
|
||||
from sale_order s
|
||||
right join sale_order_line l on (s.id=l.order_id)
|
||||
group by s.journal_id , to_char(s.date_order, 'YYYY'),to_char(s.date_order, 'MM'), s.state
|
||||
)
|
||||
""")
|
||||
|
||||
sale_journal_report()
|
||||
|
||||
#==========================================
|
||||
#picking report
|
||||
#==========================================
|
||||
|
||||
|
||||
class sale_journal_picking_report(osv.osv):
|
||||
"""
|
||||
Picking list by journal and by invoice
|
||||
"""
|
||||
_name = "sale.journal.picking.report"
|
||||
_description = "Picking lists"
|
||||
_auto = False
|
||||
_columns = {
|
||||
'name': fields.char('Year', size=64, required=False, readonly=True),
|
||||
'month':fields.selection([('01', 'January'), ('02', 'February'), ('03', 'March'), ('04', 'April'), ('05', 'May'), ('06', 'June'),
|
||||
('07', 'July'), ('08', 'August'), ('09', 'September'), ('10', 'October'), ('11', 'November'), ('12', 'December')], 'Month', readonly=True),
|
||||
|
||||
'invoice_state':fields.selection([
|
||||
("invoiced", "invoiced"),
|
||||
("2binvoiced", "to be invoiced"),
|
||||
("none", "None")
|
||||
], "Invoice state", readonly=True),
|
||||
'state': fields.selection([
|
||||
('draft', 'draft'),
|
||||
('auto', 'waiting'),
|
||||
('confirmed', 'confirmed'),
|
||||
('assigned', 'assigned'),
|
||||
('done', 'done'),
|
||||
('cancel', 'cancel'),
|
||||
], 'State', readonly=True),
|
||||
'invoice_type_id': fields.many2one('sale_journal.invoice.type', 'Invoicing method', readonly=True),
|
||||
'journal_id':fields.many2one('sale_journal.picking.journal', 'Journal', readonly=True),
|
||||
'quantity': fields.float('Quantities', readonly=True),
|
||||
'price_total': fields.float('Total Price', readonly=True),
|
||||
'price_average': fields.float('Average Price', readonly=True),
|
||||
'count': fields.integer('# of Lines', readonly=True),
|
||||
}
|
||||
_order = 'journal_id, name desc, price_total desc'
|
||||
|
||||
def init(self, cr):
|
||||
tools.drop_view_if_exists(cr, 'sale_journal_picking_report')
|
||||
|
||||
cr.execute("""
|
||||
create or replace view sale_journal_picking_report as (
|
||||
select
|
||||
min(l.id) as id,
|
||||
to_char(s.date, 'YYYY') as name,
|
||||
to_char(s.date, 'MM') as month,
|
||||
s.state,
|
||||
s.invoice_state,
|
||||
s.invoice_type_id,
|
||||
s.journal_id,
|
||||
sum(l.product_qty) as quantity,
|
||||
count(*) as count,
|
||||
sum(l.product_qty*ol.price_unit*(1.0-ol.discount/100.0)) as price_total,
|
||||
(sum(l.product_qty*ol.price_unit*(1.0-ol.discount/100.0))/sum(l.product_qty))::decimal(16,2) as price_average
|
||||
from stock_picking s
|
||||
right join stock_move l on (s.id=l.picking_id)
|
||||
left join sale_order_line ol on (l.sale_line_id=ol.id)
|
||||
group by s.journal_id, s.invoice_type_id, to_char(s.date, 'YYYY'),to_char(s.date, 'MM'),s.state, s.invoice_state
|
||||
order by s.invoice_type_id, s.invoice_state, s.state
|
||||
)
|
||||
""")
|
||||
|
||||
sale_journal_picking_report()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
@@ -0,0 +1,146 @@
|
||||
<openerp>
|
||||
<data>
|
||||
<record model="ir.ui.view" id="view_sale_journal_report_tree">
|
||||
<field name="name">sale.journal.report.tree</field>
|
||||
<field name="model">sale.journal.report</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Sales by Journal">
|
||||
<field name="name"/>
|
||||
<field name="state"/>
|
||||
<field name="journal_id"/>
|
||||
<field name="quantity"/>
|
||||
<field name="count"/>
|
||||
<field name="price_total"/>
|
||||
<field name="price_average"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_sale_journal_graph" model="ir.ui.view">
|
||||
<field name="name">sale.journal.report.graph</field>
|
||||
<field name="model">sale.journal.report</field>
|
||||
<field name="type">graph</field>
|
||||
<field name="arch" type="xml">
|
||||
<graph string="Sales journal Statistics" type="bar">
|
||||
<field name="journal_id"/>
|
||||
<field name="price_total"/>
|
||||
</graph>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_sale_journal_report_search">
|
||||
<field name="name">sale.journal.report.search</field>
|
||||
<field name="model">sale.journal.report</field>
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Sales by Journal">
|
||||
<group col="8" colspan="4">
|
||||
<filter icon="terp-sale" string="This Year" domain="[('name','!=','')]" help="Sale journal in this year"/>
|
||||
<filter icon="terp-sale" string="This Month" domain="[('name','=',time.strftime('%%Y-%%m-01'))]" help="Sale journal in this month"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="state" select="1"/>
|
||||
<field name="journal_id" select="1"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Action of sales by journal view-->
|
||||
|
||||
<record model="ir.actions.act_window" id="action_sale_journal_report_open_menu_all">
|
||||
<field name="name">Sales by Journal</field>
|
||||
<field name="res_model">sale.journal.report</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,graph</field>
|
||||
<field name="search_view_id" ref="view_sale_journal_report_search"/>
|
||||
</record>
|
||||
|
||||
<menuitem name="Sales by Journal" id="menu_sale_journal_report_open_all" parent="base.next_id_64" action="action_sale_journal_report_open_menu_all"/>
|
||||
|
||||
<!-- picking by journal and invoice method -->
|
||||
|
||||
|
||||
<record model="ir.ui.view" id="view_sale_journal_picking_report_tree">
|
||||
<field name="name">sale.journal.picking.report.tree</field>
|
||||
<field name="model">sale.journal.picking.report</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Picking journal">
|
||||
<field name="name" />
|
||||
<field name="month" />
|
||||
<field name="invoice_state" />
|
||||
<field name="state" />
|
||||
<field name="invoice_type_id" />
|
||||
<field name="journal_id" />
|
||||
<field name="quantity" />
|
||||
<field name="count" />
|
||||
<field name="price_total"/>
|
||||
<field name="price_average"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_sale_journal_picking_graph" model="ir.ui.view">
|
||||
<field name="name">sale.journal.picking.report.graph</field>
|
||||
<field name="model">sale.journal.picking.report</field>
|
||||
<field name="type">graph</field>
|
||||
<field name="arch" type="xml">
|
||||
<graph string="Picking journal Statistics" type="bar">
|
||||
<field name="journal_id"/>
|
||||
<field name="invoice_type_id"/>
|
||||
<field name="price_total"/>
|
||||
</graph>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record model="ir.ui.view" id="view_sale_journal_picking_report_search">
|
||||
<field name="name">sale.journal.picking.report.search</field>
|
||||
<field name="model">sale.journal.picking.report</field>
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Picking journal">
|
||||
<group col="8" colspan="4">
|
||||
<filter icon="terp-sale" string="This Year" domain="[('name','=',time.strftime('%%Y'))]" help="Picking by invoice method in this year"/>
|
||||
<filter icon="terp-sale" string="This Month" domain="[('month','=',time.strftime('%%m'))]" help="Picking by invoice method in this month"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="month" select="1"/>
|
||||
<field name="invoice_state" select="1"/>
|
||||
<field name="journal_id"/>
|
||||
<field name="state" select="1"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By..." colspan="10" col="12">
|
||||
<filter string="Journal" icon="terp-sale" context="{'group_by':'journal_id'}"/>
|
||||
<filter string="Invoice" icon="terp-sale" context="{'group_by':'invoice_type_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_sale_journal_picking_report_open">
|
||||
<field name="name">Statistics on picking to invoice</field>
|
||||
<field name="res_model">sale.journal.picking.report</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[('invoice_state','=','2binvoiced'),('invoice_type_id','=',active_id)]</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_sale_journal_picking_report_open_menu_all">
|
||||
<field name="name">Picking journal</field>
|
||||
<field name="res_model">sale.journal.picking.report</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,graph</field>
|
||||
<field name="search_view_id" ref="view_sale_journal_picking_report_search"/>
|
||||
</record>
|
||||
|
||||
<menuitem name="Picking journal" id="menu_invoice_type_picking_stats_open_all" parent="stock.next_id_61" action="action_sale_journal_picking_report_open_menu_all"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -48,7 +48,7 @@ class sale_journal(osv.osv):
|
||||
'date': fields.date('Journal date', required=True),
|
||||
'date_created': fields.date('Creation date', readonly=True, required=True),
|
||||
'date_validation': fields.date('Validation date', readonly=True),
|
||||
'sale_stats_ids': fields.one2many("sale_journal.sale.stats", "journal_id", 'Sale Stats', readonly=True),
|
||||
'sale_stats_ids': fields.one2many("sale.journal.report", "journal_id", 'Sale Stats', readonly=True),
|
||||
'state': fields.selection([
|
||||
('draft','Draft'),
|
||||
('open','Open'),
|
||||
@@ -98,7 +98,7 @@ class picking_journal(osv.osv):
|
||||
'date': fields.date('Journal date', required=True),
|
||||
'date_created': fields.date('Creation date', readonly=True, required=True),
|
||||
'date_validation': fields.date('Validation date', readonly=True),
|
||||
'picking_stats_ids': fields.one2many("sale_journal.picking.stats", "journal_id", 'Journal Stats', readonly=True),
|
||||
'picking_stats_ids': fields.one2many("sale.journal.picking.report", "journal_id", 'Journal Stats', readonly=True),
|
||||
'state': fields.selection([
|
||||
('draft','Draft'),
|
||||
('open','Open'),
|
||||
@@ -130,5 +130,55 @@ class picking_journal(osv.osv):
|
||||
return True
|
||||
picking_journal()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
#==============================================
|
||||
# sale journal inherit
|
||||
#==============================================
|
||||
|
||||
class res_partner(osv.osv):
|
||||
_inherit = 'res.partner'
|
||||
_columns = {
|
||||
'property_invoice_type': fields.property(
|
||||
'sale_journal.invoice.type',
|
||||
type='many2one',
|
||||
relation='sale_journal.invoice.type',
|
||||
string="Invoicing Method",
|
||||
method=True,
|
||||
view_load=True,
|
||||
group_name="Accounting Properties",
|
||||
help="The type of journal used for sales and picking."),
|
||||
}
|
||||
res_partner()
|
||||
|
||||
class picking(osv.osv):
|
||||
_inherit="stock.picking"
|
||||
_columns = {
|
||||
'journal_id': fields.many2one('sale_journal.picking.journal', 'Journal'),
|
||||
'sale_journal_id': fields.many2one('sale_journal.sale.journal', 'Sale Journal'),
|
||||
'invoice_type_id': fields.many2one('sale_journal.invoice.type', 'Invoice Type', readonly=True)
|
||||
}
|
||||
picking()
|
||||
|
||||
class sale(osv.osv):
|
||||
_inherit="sale.order"
|
||||
_columns = {
|
||||
'journal_id': fields.many2one('sale_journal.sale.journal', 'Journal'),
|
||||
'invoice_type_id': fields.many2one('sale_journal.invoice.type', 'Invoice Type')
|
||||
}
|
||||
def action_ship_create(self, cr, uid, ids, *args):
|
||||
result = super(sale, self).action_ship_create(cr, uid, ids, *args)
|
||||
for order in self.browse(cr, uid, ids, context={}):
|
||||
pids = [ x.id for x in order.picking_ids]
|
||||
self.pool.get('stock.picking').write(cr, uid, pids, {
|
||||
'invoice_type_id': order.invoice_type_id.id,
|
||||
'sale_journal_id': order.journal_id.id
|
||||
})
|
||||
return result
|
||||
|
||||
def onchange_partner_id(self, cr, uid, ids, part):
|
||||
result = super(sale, self).onchange_partner_id(cr, uid, ids, part)
|
||||
if part:
|
||||
itype = self.pool.get('res.partner').browse(cr, uid, part).property_invoice_type.id
|
||||
result['value']['invoice_type_id'] = itype
|
||||
return result
|
||||
sale()
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -1,73 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from osv import osv, fields
|
||||
|
||||
|
||||
class res_partner(osv.osv):
|
||||
_inherit = 'res.partner'
|
||||
_columns = {
|
||||
'property_invoice_type': fields.property(
|
||||
'sale_journal.invoice.type',
|
||||
type='many2one',
|
||||
relation='sale_journal.invoice.type',
|
||||
string="Invoicing Method",
|
||||
method=True,
|
||||
view_load=True,
|
||||
group_name="Accounting Properties",
|
||||
help="The type of journal used for sales and picking."),
|
||||
}
|
||||
res_partner()
|
||||
|
||||
class picking(osv.osv):
|
||||
_inherit="stock.picking"
|
||||
_columns = {
|
||||
'journal_id': fields.many2one('sale_journal.picking.journal', 'Journal'),
|
||||
'sale_journal_id': fields.many2one('sale_journal.sale.journal', 'Sale Journal'),
|
||||
'invoice_type_id': fields.many2one('sale_journal.invoice.type', 'Invoice Type', readonly=True)
|
||||
}
|
||||
picking()
|
||||
|
||||
class sale(osv.osv):
|
||||
_inherit="sale.order"
|
||||
_columns = {
|
||||
'journal_id': fields.many2one('sale_journal.sale.journal', 'Journal'),
|
||||
'invoice_type_id': fields.many2one('sale_journal.invoice.type', 'Invoice Type')
|
||||
}
|
||||
def action_ship_create(self, cr, uid, ids, *args):
|
||||
result = super(sale, self).action_ship_create(cr, uid, ids, *args)
|
||||
for order in self.browse(cr, uid, ids, context={}):
|
||||
pids = [ x.id for x in order.picking_ids]
|
||||
self.pool.get('stock.picking').write(cr, uid, pids, {
|
||||
'invoice_type_id': order.invoice_type_id.id,
|
||||
'sale_journal_id': order.journal_id.id
|
||||
})
|
||||
return result
|
||||
|
||||
def onchange_partner_id(self, cr, uid, ids, part):
|
||||
result = super(sale, self).onchange_partner_id(cr, uid, ids, part)
|
||||
if part:
|
||||
itype = self.pool.get('res.partner').browse(cr, uid, part).property_invoice_type.id
|
||||
result['value']['invoice_type_id'] = itype
|
||||
return result
|
||||
sale()
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -1,124 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from osv import fields,osv
|
||||
import tools
|
||||
|
||||
class report_sale_journal_invoice_type_stats(osv.osv):
|
||||
_name = "sale_journal.invoice.type.stats"
|
||||
_description = "Stats on picking by invoice method"
|
||||
_auto = False
|
||||
_columns = {
|
||||
'name': fields.char('Year',size=64,required=False, readonly=True),
|
||||
'invoice_state':fields.selection([
|
||||
("invoiced","invoiced"),
|
||||
("2binvoiced","to be invoiced"),
|
||||
("none","None")
|
||||
], "Invoice state", readonly=True),
|
||||
'state': fields.selection([
|
||||
('draft','draft'),
|
||||
('auto','waiting'),
|
||||
('confirmed','confirmed'),
|
||||
('assigned','assigned'),
|
||||
('done','done'),
|
||||
('cancel','cancel'),
|
||||
], 'State', readonly=True),
|
||||
'invoice_type_id':fields.many2one('sale_journal.invoice.type', 'Invoicing method', readonly=True),
|
||||
'quantity': fields.float('Quantities', readonly=True),
|
||||
'price_total': fields.float('Total Price', readonly=True),
|
||||
'price_average': fields.float('Average Price', readonly=True),
|
||||
'count': fields.integer('# of Lines', readonly=True),
|
||||
'month':fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'), ('05','May'), ('06','June'),
|
||||
('07','July'), ('08','August'), ('09','September'), ('10','October'), ('11','November'), ('12','December')],'Month',readonly=True),
|
||||
|
||||
}
|
||||
_order = 'state,invoice_state,name desc'
|
||||
def init(self, cr):
|
||||
tools.drop_view_if_exists(cr, 'sale_journal_invoice_type_stats')
|
||||
cr.execute("""
|
||||
create or replace view sale_journal_invoice_type_stats as (
|
||||
select
|
||||
min(l.id) as id,
|
||||
to_char(s.date, 'YYYY') as name,
|
||||
to_char(s.date, 'MM') as month,
|
||||
s.state,
|
||||
s.invoice_state,
|
||||
s.invoice_type_id,
|
||||
sum(l.product_qty) as quantity,
|
||||
count(*) as count,
|
||||
sum(l.product_qty*ol.price_unit*(1.0-ol.discount/100.0)) as price_total,
|
||||
(sum(l.product_qty*ol.price_unit*(1.0-ol.discount/100.0))/sum(l.product_qty))::decimal(16,2) as price_average
|
||||
from stock_picking s
|
||||
left join stock_move l on (s.id=l.picking_id)
|
||||
left join sale_order_line ol on (l.sale_line_id=ol.id)
|
||||
group by s.invoice_type_id, to_char(s.date, 'YYYY'),to_char(s.date, 'MM'),s.state, s.invoice_state
|
||||
order by s.invoice_type_id, s.invoice_state, s.state
|
||||
)
|
||||
""")
|
||||
report_sale_journal_invoice_type_stats()
|
||||
|
||||
class report_sale_journal_picking(osv.osv):
|
||||
_name = "sale_journal.picking.stats"
|
||||
_description = "Picking lists by Journal"
|
||||
_auto = False
|
||||
_columns = {
|
||||
'name': fields.char('Year',size=64,required=False, readonly=True),
|
||||
'state': fields.selection([
|
||||
('draft','draft'),
|
||||
('auto','waiting'),
|
||||
('confirmed','confirmed'),
|
||||
('assigned','assigned'),
|
||||
('done','done'),
|
||||
('cancel','cancel'),
|
||||
], 'State', readonly=True),
|
||||
'journal_id':fields.many2one('sale_journal.picking.journal', 'Journal', readonly=True),
|
||||
'quantity': fields.float('Quantities', readonly=True),
|
||||
'price_total': fields.float('Total Price', readonly=True),
|
||||
'price_average': fields.float('Average Price', readonly=True),
|
||||
'count': fields.integer('# of Lines', readonly=True),
|
||||
'month':fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'), ('05','May'), ('06','June'),
|
||||
('07','July'), ('08','August'), ('09','September'), ('10','October'), ('11','November'), ('12','December')],'Month',readonly=True),
|
||||
|
||||
}
|
||||
_order = 'journal_id,name desc,price_total desc'
|
||||
def init(self, cr):
|
||||
tools.drop_view_if_exists(cr, 'sale_journal_picking_stats')
|
||||
cr.execute("""
|
||||
create or replace view sale_journal_picking_stats as (
|
||||
select
|
||||
min(l.id) as id,
|
||||
to_char(s.date, 'YYYY') as name,
|
||||
to_char(s.date, 'MM') as month,
|
||||
s.state,
|
||||
s.journal_id,
|
||||
sum(l.product_qty) as quantity,
|
||||
count(*) as count,
|
||||
sum(l.product_qty*ol.price_unit*(1.0-ol.discount/100.0)) as price_total,
|
||||
(sum(l.product_qty*ol.price_unit*(1.0-ol.discount/100.0))/sum(l.product_qty))::decimal(16,2) as price_average
|
||||
from stock_picking s
|
||||
right join stock_move l on (s.id=l.picking_id)
|
||||
right join sale_order_line ol on (l.sale_line_id=ol.id)
|
||||
group by s.journal_id, to_char(s.date, 'YYYY'),to_char(s.date, 'MM'),s.state
|
||||
)
|
||||
""")
|
||||
report_sale_journal_picking()
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -1,73 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from osv import fields,osv
|
||||
import tools
|
||||
|
||||
class report_sale_journal_sale(osv.osv):
|
||||
_name = "sale_journal.sale.stats"
|
||||
_description = "Sales Orders by Journal"
|
||||
_auto = False
|
||||
_columns = {
|
||||
'name': fields.char('Year',size=64,required=False, readonly=True),
|
||||
'state': fields.selection([
|
||||
('draft','Quotation'),
|
||||
('waiting_date','Waiting Schedule'),
|
||||
('manual','Manual in progress'),
|
||||
('progress','In progress'),
|
||||
('shipping_except','Shipping Exception'),
|
||||
('invoice_except','Invoice Exception'),
|
||||
('done','Done'),
|
||||
('cancel','Cancel')
|
||||
], 'Order State', readonly=True),
|
||||
'journal_id':fields.many2one('sale_journal.sale.journal', 'Journal', readonly=True),
|
||||
'quantity': fields.float('Quantities', readonly=True),
|
||||
'price_total': fields.float('Total Price', readonly=True),
|
||||
'price_average': fields.float('Average Price', readonly=True),
|
||||
'count': fields.integer('# of Lines', readonly=True),
|
||||
'month':fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'), ('05','May'), ('06','June'),
|
||||
('07','July'), ('08','August'), ('09','September'), ('10','October'), ('11','November'), ('12','December')],'Month',readonly=True),
|
||||
}
|
||||
_order = 'journal_id,name desc,price_total desc'
|
||||
def init(self, cr):
|
||||
tools.drop_view_if_exists(cr, 'sale_journal_sale_stats')
|
||||
cr.execute("""
|
||||
create or replace view sale_journal_sale_stats as (
|
||||
select
|
||||
min(l.id) as id,
|
||||
to_char(s.date_order, 'YYYY') as name,
|
||||
to_char(s.date_order,'MM') as month,
|
||||
s.state,
|
||||
s.journal_id,
|
||||
sum(l.product_uom_qty) as quantity,
|
||||
count(*),
|
||||
sum(l.product_uom_qty*l.price_unit) as price_total,
|
||||
(sum(l.product_uom_qty*l.price_unit)/sum(l.product_uom_qty))::decimal(16,2) as price_average
|
||||
from sale_order s
|
||||
right join sale_order_line l on (s.id=l.order_id)
|
||||
group by s.journal_id, to_char(s.date_order, 'YYYY'),to_char(s.date_order, 'MM'),s.state
|
||||
)
|
||||
""")
|
||||
report_sale_journal_sale()
|
||||
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -1,385 +1,449 @@
|
||||
<openerp>
|
||||
<data>
|
||||
<record model="ir.ui.view" id="view_sale_journal_invoice_type_form">
|
||||
<field name="name">sale_journal.invoice.type.form</field>
|
||||
<field name="model">sale_journal.invoice.type</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Invoice Type">
|
||||
<field name="name" select="1"/>
|
||||
<field name="active" select="1"/>
|
||||
<field name="invoicing_method" select="1"/>
|
||||
<newline/>
|
||||
<field name="note" colspan="4"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="view_sale_journal_invoice_type_tree">
|
||||
<field name="name">sale_journal.invoice.type.tree</field>
|
||||
<field name="model">sale_journal.invoice.type</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Invoice Type">
|
||||
<field name="name"/>
|
||||
<field name="invoicing_method"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.actions.act_window" id="action_definition_journal_invoice_type">
|
||||
<field name="res_model">sale_journal.invoice.type</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
<!-- <menuitem name="Invoicing Methods" id="menu_definition_journal_invoice_type" parent="sale.menu_shop_configuration" action="action_definition_journal_invoice_type"/>-->
|
||||
|
||||
<record model="ir.ui.view" id="view_sale_journal_form">
|
||||
<field name="name">sale_journal.sale.journal.form</field>
|
||||
<field name="model">sale_journal.sale.journal</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Sale Journal">
|
||||
<notebook>
|
||||
<page string="Journal">
|
||||
<separator string="Journal Information" colspan="4"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="code" select="1"/>
|
||||
<field name="user_id" select="1"/>
|
||||
<field name="date" select="1"/>
|
||||
<field name="date_created" select="1"/>
|
||||
<field name="date_validation" select="1"/>
|
||||
<separator string="States" colspan="4"/>
|
||||
<field name="state"/>
|
||||
<group col="3" colspan="2">
|
||||
<button name="button_open" string="Open Journal" states="draft" type="object" icon="gtk-open"/>
|
||||
<button name="button_close" string="Close Journal" states="open" type="object" icon="gtk-close"/>
|
||||
<button name="button_draft" string="Set to Draft" states="close,open" type="object" icon="gtk-convert"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Sales">
|
||||
<button string="Confirm Sales" name="button_sale_confirm" states="draft,open" type="object" icon="gtk-execute"/>
|
||||
<button string="Cancel Sales" name="button_sale_cancel" states="draft,open" type="object" icon="gtk-cancel"/>
|
||||
<newline/>
|
||||
<field name="sale_stats_ids" colspan="4" nolabel="1">
|
||||
<tree string="Sales">
|
||||
<field name="name"/>
|
||||
<field name="quantity"/>
|
||||
<field name="price_total"/>
|
||||
<field name="price_average"/>
|
||||
<field name="count"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
</page><page string="Notes">
|
||||
<field name="note" colspan="4" nolabel="1"/>
|
||||
</page>
|
||||
</notebook>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="view_sale_journal_tree">
|
||||
<field name="name">sale_journal.sale.journal.tree</field>
|
||||
<field name="model">sale_journal.sale.journal</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Sale Journal">
|
||||
<field name="name" select="1"/>
|
||||
<field name="code" select="1"/>
|
||||
<field name="user_id" select="1"/>
|
||||
<field name="date" select="1"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_sale_journal_search">
|
||||
<field name="name">sale_journal.sale.journal.search</field>
|
||||
<field name="model">sale_journal.sale.journal</field>
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Sales by Journal">
|
||||
<group col="8" colspan="4">
|
||||
<filter icon="terp-sale" string="My Sale Journals" domain="[('user_id','=',uid)]" help="My Sale Journals"/>
|
||||
<filter icon="terp-sale" string="Open" domain="[('state','=','open')]" help="Open Sale Journals"/>
|
||||
<separator orientation="vertical"/>
|
||||
<data>
|
||||
|
||||
<!-- sale journal invoice Type's Form view -->
|
||||
|
||||
<record model="ir.ui.view" id="view_sale_journal_invoice_type_form">
|
||||
<field name="name">sale_journal.invoice.type.form</field>
|
||||
<field name="model">sale_journal.invoice.type</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Invoice Type">
|
||||
<field name="name" select="1"/>
|
||||
<field name="active" select="1"/>
|
||||
<field name="invoicing_method" select="1"/>
|
||||
<newline/>
|
||||
<field name="note" colspan="4"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- sale journal invoice Type's tree view -->
|
||||
|
||||
<record model="ir.ui.view" id="view_sale_journal_invoice_type_tree">
|
||||
<field name="name">sale_journal.invoice.type.tree</field>
|
||||
<field name="model">sale_journal.invoice.type</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Invoice Type">
|
||||
<field name="name"/>
|
||||
<field name="invoicing_method"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Action for sale journal invoice Type -->
|
||||
|
||||
<record model="ir.actions.act_window" id="action_definition_journal_invoice_type">
|
||||
<field name="res_model">sale_journal.invoice.type</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
<!-- <menuitem name="Invoicing Methods" id="menu_definition_journal_invoice_type" parent="sale.menu_shop_configuration" action="action_definition_journal_invoice_type"/> -->
|
||||
|
||||
<!-- sale journal Form view -->
|
||||
|
||||
<record model="ir.ui.view" id="view_sale_journal_form">
|
||||
<field name="name">sale_journal.sale.journal.form</field>
|
||||
<field name="model">sale_journal.sale.journal</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Sale Journal">
|
||||
<notebook>
|
||||
<page string="Journal">
|
||||
<separator string="Journal Information" colspan="4"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="code" select="1"/>
|
||||
<field name="user_id" select="1"/>
|
||||
<field name="date" select="1"/>
|
||||
<field name="date_created" select="1"/>
|
||||
<field name="date_validation" select="1"/>
|
||||
<separator string="States" colspan="4"/>
|
||||
<field name="state"/>
|
||||
<group col="3" colspan="2">
|
||||
<button name="button_open" string="Open Journal" states="draft" type="object" icon="gtk-open"/>
|
||||
<button name="button_close" string="Close Journal" states="open" type="object" icon="gtk-close"/>
|
||||
<button name="button_draft" string="Set to Draft" states="close,open" type="object" icon="gtk-convert"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Sales">
|
||||
<button string="Confirm Sales" name="button_sale_confirm" states="draft,open" type="object" icon="gtk-execute"/>
|
||||
<button string="Cancel Sales" name="button_sale_cancel" states="draft,open" type="object" icon="gtk-cancel"/>
|
||||
<newline/>
|
||||
<field name="sale_stats_ids" colspan="4" nolabel="1">
|
||||
<tree string="Sales">
|
||||
<field name="name"/>
|
||||
<field name="quantity"/>
|
||||
<field name="price_total"/>
|
||||
<field name="price_average"/>
|
||||
<field name="count"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
</page><page string="Notes">
|
||||
<field name="note" colspan="4" nolabel="1"/>
|
||||
</page>
|
||||
</notebook>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Sale journal tree view -->
|
||||
|
||||
<record model="ir.ui.view" id="view_sale_journal_tree">
|
||||
<field name="name">sale_journal.sale.journal.tree</field>
|
||||
<field name="model">sale_journal.sale.journal</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Sale Journal">
|
||||
<field name="name" select="1"/>
|
||||
<field name="code" select="1"/>
|
||||
<field name="user_id" select="1"/>
|
||||
<field name="date" select="1"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_definition_journal">
|
||||
<field name="res_model">sale_journal.sale.journal</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="search_view_id" ref="view_sale_journal_search"/>
|
||||
</record>
|
||||
|
||||
<!-- <menuitem name="Sales Journals" id="menu_definition_journal" parent="sale.menu_shop_configuration" action="action_definition_journal"/>-->
|
||||
<menuitem id="menu_sale_journal" name="Journal" parent="base.menu_base_config" sequence="60" />
|
||||
<menuitem name="Sales Journals" id="menu_definition_journal" parent="menu_sale_journal" action="action_definition_journal"/>
|
||||
|
||||
<record model="ir.ui.view" id="sale_journal_sale_order">
|
||||
<field name="name">sale.order.journal.view.form</field>
|
||||
<field name="type">form</field>
|
||||
<field name="model">sale.order</field>
|
||||
<field name="inherit_id" ref="sale.view_order_form" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="invoiced" position="after">
|
||||
<field name="journal_id" select="1"/>
|
||||
<field name="invoice_type_id" select="1"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="sale_journal_sale_order_tree">
|
||||
<field name="name">sale.order.journal.view.tree</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="model">sale.order</field>
|
||||
<field name="inherit_id" ref="sale.view_order_tree" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="state" position="after">
|
||||
<field name="invoice_type_id"/>
|
||||
<field name="journal_id"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="sale_journal_picking_order">
|
||||
<field name="name">stock.picking.journal.view.form</field>
|
||||
<field name="type">form</field>
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_form" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="origin" position="after">
|
||||
<field name="journal_id" select="1"/>
|
||||
<field name="sale_journal_id" select="1"/>
|
||||
<field name="invoice_type_id" select="1"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="sale_journal_picking_order_tree">
|
||||
<field name="name">stock.picking.journal.view.tree</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.vpicktree" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="invoice_state" position="after">
|
||||
<field name="journal_id" select="1"/>
|
||||
<field name="invoice_type_id" select="1"/>
|
||||
<field name="sale_journal_id" select="1"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="sale_journal_picking_order_del">
|
||||
<field name="name">stock.picking.journal.view.form</field>
|
||||
<field name="type">form</field>
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_delivery_form" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="origin" position="after">
|
||||
<field name="journal_id" select="1"/>
|
||||
<field name="sale_journal_id" select="1"/>
|
||||
<field name="invoice_type_id" select="1"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="sale_journal_picking_order_tree_del">
|
||||
<field name="name">stock.picking.journal.view.tree</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_delivery_tree" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="origin" position="after">
|
||||
<field name="journal_id" select="1"/>
|
||||
<field name="invoice_type_id" select="1"/>
|
||||
<field name="sale_journal_id" select="1"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record model="ir.ui.view" id="sale_journal_picking_order_in">
|
||||
<field name="name">stock.picking.journal.view.form</field>
|
||||
<field name="type">form</field>
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_in_form" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="origin" position="after">
|
||||
<field name="journal_id" select="1"/>
|
||||
<field name="sale_journal_id" select="1"/>
|
||||
<field name="invoice_type_id" select="1"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="sale_journal_picking_order_tree_in">
|
||||
<field name="name">stock.picking.journal.view.tree</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_in_tree" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="invoice_state" position="after">
|
||||
<field name="journal_id" select="1"/>
|
||||
<field name="invoice_type_id" select="1"/>
|
||||
<field name="sale_journal_id" select="1"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record model="ir.ui.view" id="sale_journal_picking_order_out">
|
||||
<field name="name">stock.picking.journal.view.form</field>
|
||||
<field name="type">form</field>
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_out_form" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="origin" position="after">
|
||||
<field name="journal_id" select="1"/>
|
||||
<field name="sale_journal_id" select="1"/>
|
||||
<field name="invoice_type_id" select="1"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="sale_journal_picking_order_tree_out">
|
||||
<field name="name">stock.picking.journal.view.tree</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_out_tree" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="invoice_state" position="after">
|
||||
<field name="journal_id" select="1"/>
|
||||
<field name="invoice_type_id" select="1"/>
|
||||
<field name="sale_journal_id" select="1"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
|
||||
<record model="ir.ui.view" id="view_sale_journal_sale_stats_tree">
|
||||
<field name="name">sale_journal.sale.stats.tree</field>
|
||||
<field name="model">sale_journal.sale.stats</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Sales by Journal">
|
||||
<field name="name"/>
|
||||
<field name="state"/>
|
||||
<field name="journal_id"/>
|
||||
<field name="quantity"/>
|
||||
<field name="count"/>
|
||||
<field name="price_total"/>
|
||||
<field name="price_average"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="view_sale_journal_sale_stats_form">
|
||||
<field name="name">sale_journal.sale.stats.form</field>
|
||||
<field name="model">sale_journal.sale.stats</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Sales by Journal">
|
||||
<field name="name" select="1"/>
|
||||
<field name="state" select="1"/>
|
||||
<field name="journal_id" select="1"/>
|
||||
<field name="quantity"/>
|
||||
<field name="count"/>
|
||||
<field name="price_total"/>
|
||||
<field name="price_average"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_sale_journal_sale_stats_search">
|
||||
<field name="name">sale_journal.sale.stats.search</field>
|
||||
<field name="model">sale_journal.sale.stats</field>
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Sales by Journal">
|
||||
<group col="8" colspan="4">
|
||||
<filter icon="terp-sale" string="This Year" domain="[('name','!=','')]" help="Sale journal in this year"/>
|
||||
<filter icon="terp-sale" string="This Month" domain="[('name','=',time.strftime('%%Y-%%m-01'))]" help="Sale journal in this month"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="state" select="1"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Sale journal search view -->
|
||||
|
||||
<record model="ir.ui.view" id="view_sale_journal_search">
|
||||
<field name="name">sale_journal.sale.journal.search</field>
|
||||
<field name="model">sale_journal.sale.journal</field>
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Sales by Journal">
|
||||
<group col="8" colspan="4">
|
||||
<filter icon="terp-sale" string="My Sale Journals" domain="[('user_id','=',uid)]" help="My Sale Journals"/>
|
||||
<filter icon="terp-sale" string="Open" domain="[('state','=','open')]" help="Open Sale Journals"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="code" select="1"/>
|
||||
<field name="user_id" select="1"/>
|
||||
<field name="date" select="1"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Action for sale journal view -->
|
||||
|
||||
<record model="ir.actions.act_window" id="action_definition_journal">
|
||||
<field name="res_model">sale_journal.sale.journal</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="search_view_id" ref="view_sale_journal_search"/>
|
||||
</record>
|
||||
|
||||
<menuitem id="menu_definition_journal" name="Sales Journals" parent="base.menu_base_config" action="action_definition_journal" sequence="60" />
|
||||
|
||||
<!-- Inherit sales order form view -->
|
||||
|
||||
<record model="ir.ui.view" id="sale_journal_sale_order">
|
||||
<field name="name">sale.order.journal.view.form</field>
|
||||
<field name="type">form</field>
|
||||
<field name="model">sale.order</field>
|
||||
<field name="inherit_id" ref="sale.view_order_form" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="invoiced" position="after">
|
||||
<field name="journal_id" select="1"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
<field name="invoice_type_id" select="1"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Inherit sales order tree view-->
|
||||
|
||||
<record model="ir.ui.view" id="sale_journal_sale_order_tree">
|
||||
<field name="name">sale.order.journal.view.tree</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="model">sale.order</field>
|
||||
<field name="inherit_id" ref="sale.view_order_tree" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="state" position="after">
|
||||
<field name="invoice_type_id"/>
|
||||
<field name="journal_id"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_sale_sale_stats_open_menu_all">
|
||||
<field name="name">Sales by Journal</field>
|
||||
<field name="res_model">sale_journal.sale.stats</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="search_view_id" ref="view_sale_journal_sale_stats_search"/>
|
||||
</record>
|
||||
<!-- Inherit stock picking's form view -->
|
||||
|
||||
<record model="ir.ui.view" id="sale_journal_picking_order">
|
||||
<field name="name">stock.picking.journal.view.form</field>
|
||||
<field name="type">form</field>
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_form" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="origin" position="after">
|
||||
<field name="journal_id" select="1"/>
|
||||
<field name="sale_journal_id" select="1"/>
|
||||
<field name="invoice_type_id" select="1"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<menuitem name="Reporting" id="menu_definition_report_sales" parent="base.menu_base_partner" sequence="8"/>
|
||||
<menuitem name="Sales by Journal" id="menu_sale_sale_stats_open_all" parent="menu_definition_report_sales" action="action_sale_sale_stats_open_menu_all"/>
|
||||
<!-- Inherit stock picking's tree view -->
|
||||
|
||||
<record model="ir.ui.view" id="sale_journal_picking_order_tree">
|
||||
<field name="name">stock.picking.journal.view.tree</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.vpicktree" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="invoice_state" position="after">
|
||||
<field name="journal_id" select="1"/>
|
||||
<field name="invoice_type_id" select="1"/>
|
||||
<field name="sale_journal_id" select="1"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record model="ir.ui.view" id="sale_journal_picking_order_del">
|
||||
<field name="name">stock.picking.journal.view.form</field>
|
||||
<field name="type">form</field>
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_delivery_form" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="origin" position="after">
|
||||
<field name="journal_id" select="1"/>
|
||||
<field name="sale_journal_id" select="1"/>
|
||||
<field name="invoice_type_id" select="1"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Inherit stock picking delivery's tree view.-->
|
||||
|
||||
<record model="ir.ui.view" id="sale_journal_picking_order_tree_del">
|
||||
<field name="name">stock.picking.journal.view.tree</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_delivery_tree" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="origin" position="after">
|
||||
<field name="journal_id" select="1"/>
|
||||
<field name="invoice_type_id" select="1"/>
|
||||
<field name="sale_journal_id" select="1"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="sale_journal_picking_order_in">
|
||||
<field name="name">stock.picking.journal.view.form</field>
|
||||
<field name="type">form</field>
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_in_form" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="origin" position="after">
|
||||
<field name="journal_id" select="1"/>
|
||||
<field name="sale_journal_id" select="1"/>
|
||||
<field name="invoice_type_id" select="1"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="sale_journal_picking_order_tree_in">
|
||||
<field name="name">stock.picking.journal.view.tree</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_in_tree" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="invoice_state" position="after">
|
||||
<field name="journal_id" select="1"/>
|
||||
<field name="invoice_type_id" select="1"/>
|
||||
<field name="sale_journal_id" select="1"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="sale_journal_picking_order_out">
|
||||
<field name="name">stock.picking.journal.view.form</field>
|
||||
<field name="type">form</field>
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_out_form" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="origin" position="after">
|
||||
<field name="journal_id" select="1"/>
|
||||
<field name="sale_journal_id" select="1"/>
|
||||
<field name="invoice_type_id" select="1"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="sale_journal_picking_order_tree_out">
|
||||
<field name="name">stock.picking.journal.view.tree</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_out_tree" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="invoice_state" position="after">
|
||||
<field name="journal_id" select="1"/>
|
||||
<field name="invoice_type_id" select="1"/>
|
||||
<field name="sale_journal_id" select="1"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<act_window name="Monthly sales"
|
||||
domain="[('journal_id', '=', active_id)]"
|
||||
res_model="sale.journal.report"
|
||||
src_model="sale_journal.sale.journal"
|
||||
id="act_sale_journal_sale_journal_2_sale_journal_sale_stats"/>
|
||||
|
||||
<act_window name="Assigned picking"
|
||||
domain="[('journal_id', '=', active_id),('state', '=', 'assigned')]"
|
||||
res_model="stock.picking"
|
||||
src_model="sale_journal.picking.journal"
|
||||
id="act_sale_journal_picking_journal_2_stock_picking_assigned"/>
|
||||
|
||||
<act_window name="Confirmed picking"
|
||||
domain="[('journal_id', '=', active_id),('state', '=', 'confirmed')]"
|
||||
res_model="stock.picking"
|
||||
src_model="sale_journal.picking.journal"
|
||||
id="act_sale_journal_picking_journal_2_stock_picking_confirmed"/>
|
||||
|
||||
<act_window name="Monthly sales"
|
||||
domain="[('journal_id', '=', active_id)]"
|
||||
res_model="sale_journal.sale.stats"
|
||||
src_model="sale_journal.sale.journal"
|
||||
id="act_sale_journal_sale_journal_2_sale_journal_sale_stats"/>
|
||||
<act_window name="Confirmed picking"
|
||||
domain="[('sale_journal_id', '=', active_id),('state', '=', 'confirmed')]"
|
||||
res_model="stock.picking"
|
||||
src_model="sale_journal.sale.journal"
|
||||
id="act_sale_journal_sale_journal_2_stock_picking_confirmed"/>
|
||||
|
||||
<act_window name="Draft sales"
|
||||
domain="[('journal_id', '=', active_id),('state', '=', 'draft')]"
|
||||
res_model="sale.order"
|
||||
src_model="sale_journal.sale.journal"
|
||||
id="act_sale_journal_sale_journal_2_sale_order_draft"/>
|
||||
|
||||
<act_window name="Approved sales"
|
||||
domain="[('journal_id', '=', active_id),('state', '=', 'approved')]"
|
||||
res_model="sale.order"
|
||||
src_model="sale_journal.sale.journal"
|
||||
id="act_sale_journal_sale_journal_2_sale_order_approved"/>
|
||||
|
||||
<record id="view_partner_property_form" model="ir.ui.view">
|
||||
<field name="name">res.partner.journal.property.form.inherit</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="base.view_partner_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<page string="Sales & Purchases" position="inside">
|
||||
<field name="property_invoice_type"/>
|
||||
</page>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!--=====================================================-->
|
||||
<!-- picking journal view-->
|
||||
<!--===================================================== -->
|
||||
|
||||
<record model="ir.ui.view" id="view_picking_journal_form">
|
||||
<field name="name">sale_journal.picking.journal.form</field>
|
||||
<field name="model">sale_journal.picking.journal</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Picking Journal">
|
||||
<notebook>
|
||||
<page string="Journal">
|
||||
<separator string="Journal Information" colspan="4"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="code" select="1"/>
|
||||
<field name="user_id" select="1"/>
|
||||
<field name="date" select="1"/>
|
||||
<field name="date_created" select="1"/>
|
||||
<field name="date_validation" select="1"/>
|
||||
<separator string="States" colspan="4"/>
|
||||
<field name="state"/>
|
||||
<group col="3" colspan="2">
|
||||
<button name="button_open" string="Open Journal" states="draft" type="object" icon="gtk-open"/>
|
||||
<button name="button_close" string="Close Journal" states="open" type="object" icon="gtk-close"/>
|
||||
<button name="button_draft" string="Set to Draft" states="close,open" type="object" icon="gtk-convert"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Picking">
|
||||
<button string="Cancel Picking" name="button_picking_cancel" states="draft,open" type="object" icon="gtk-cancel"/>
|
||||
<newline/>
|
||||
<field name="picking_stats_ids" colspan="4" nolabel="1"/>
|
||||
</page><page string="Notes">
|
||||
<field name="note" colspan="4" nolabel="1"/>
|
||||
</page>
|
||||
</notebook>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_picking_journal_tree">
|
||||
<field name="name">sale_journal.picking.journal.tree</field>
|
||||
<field name="model">sale_journal.picking.journal</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Picking Journal">
|
||||
<field name="name" select="1"/>
|
||||
<field name="code" select="1"/>
|
||||
<field name="user_id" select="1"/>
|
||||
<field name="date" select="1"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_picking_journal_search">
|
||||
<field name="name">sale_journal.picking.journal.search</field>
|
||||
<field name="model">sale_journal.picking.journal</field>
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Picking Journal">
|
||||
<group col="8" colspan="4">
|
||||
<filter icon="terp-hr" string="My Picking Journals" domain="[('user_id','=',uid)]" help="My Picking Journals"/>
|
||||
<filter icon="terp-hr" string="Open" domain="[('state','=','open')]" help="Open Picking Journals"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="code" select="1"/>
|
||||
<field name="user_id" select="1" widget="selection"/>
|
||||
<field name="date" select="1"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Action of Picking journals -->
|
||||
|
||||
<record model="ir.actions.act_window" id="action_definition_picking_journal">
|
||||
<field name="name">Picking journals</field>
|
||||
<field name="res_model">sale_journal.picking.journal</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="search_view_id" ref="view_picking_journal_search"/>
|
||||
</record>
|
||||
|
||||
<menuitem name="Picking Journals" id="menu_definition_journal_picking" parent="stock.menu_stock_configuration" action="action_definition_picking_journal"/>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_invoice_type_tree">
|
||||
<field name="name">Picking by invoice_method</field>
|
||||
<field name="name">sale_journal.invoice.type.tree</field>
|
||||
<field name="res_model">sale_journal.invoice.type</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">tree</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_invoice_type_picking_open">
|
||||
<field name="name">Picking to invoice</field>
|
||||
<field name="res_model">stock.picking</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[('state','=','done'),('invoice_state','=','2binvoiced'),('invoice_type_id','=',active_id)]</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.values" id="ir_open_invoice_type">
|
||||
<field name="key2">tree_but_open</field>
|
||||
<field name="model">sale_journal.invoice.type</field>
|
||||
<field name="name">Picking to invoice</field>
|
||||
<field name="value" eval="'ir.actions.act_window,%d'%action_invoice_type_picking_open"/>
|
||||
<field name="object" eval="True"/>
|
||||
</record>
|
||||
|
||||
<act_window name="Assigned picking"
|
||||
domain="[('journal_id', '=', active_id),('state', '=', 'assigned')]"
|
||||
res_model="stock.picking"
|
||||
src_model="sale_journal.picking.journal"
|
||||
id="act_sale_journal_picking_journal_2_stock_picking_assigned"/>
|
||||
|
||||
<act_window name="Confirmed picking"
|
||||
domain="[('journal_id', '=', active_id),('state', '=', 'confirmed')]"
|
||||
res_model="stock.picking"
|
||||
src_model="sale_journal.picking.journal"
|
||||
id="act_sale_journal_picking_journal_2_stock_picking_confirmed"/>
|
||||
|
||||
<act_window name="Assigned picking"
|
||||
domain="[('sale_journal_id', '=', active_id),('state', '=', 'assigned')]"
|
||||
res_model="stock.picking"
|
||||
src_model="sale_journal.sale.journal"
|
||||
id="act_sale_journal_sale_journal_2_stock_picking_assigned"/>
|
||||
|
||||
<act_window name="Confirmed picking"
|
||||
domain="[('sale_journal_id', '=', active_id),('state', '=', 'confirmed')]"
|
||||
res_model="stock.picking"
|
||||
src_model="sale_journal.sale.journal"
|
||||
id="act_sale_journal_sale_journal_2_stock_picking_confirmed"/>
|
||||
|
||||
<act_window name="Draft sales"
|
||||
domain="[('journal_id', '=', active_id),('state', '=', 'draft')]"
|
||||
res_model="sale.order"
|
||||
src_model="sale_journal.sale.journal"
|
||||
id="act_sale_journal_sale_journal_2_sale_order_draft"/>
|
||||
|
||||
<act_window name="Approved sales"
|
||||
domain="[('journal_id', '=', active_id),('state', '=', 'approved')]"
|
||||
res_model="sale.order"
|
||||
src_model="sale_journal.sale.journal"
|
||||
id="act_sale_journal_sale_journal_2_sale_order_approved"/>
|
||||
|
||||
<record id="view_partner_property_form" model="ir.ui.view">
|
||||
<field name="name">res.partner.journal.property.form.inherit</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="base.view_partner_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<page string="Sales & Purchases" position="inside">
|
||||
<field name="property_invoice_type"/>
|
||||
</page>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
</data>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -1,12 +1,7 @@
|
||||
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
|
||||
"access_sale_journal_invoice_type_stats","sale_journal.invoice.type.stats","model_sale_journal_invoice_type_stats","sale.group_sale_user",1,0,0,0
|
||||
"access_sale_journal_picking_stats","sale_journal.picking.stats","model_sale_journal_picking_stats","sale.group_sale_user",1,0,0,0
|
||||
"access_sale_journal_invoice_type","sale_journal.invoice.type","model_sale_journal_invoice_type","sale.group_sale_user",1,0,0,0
|
||||
"access_sale_journal_invoice_type_finance_invoice","sale_journal.invoice.type invoice","model_sale_journal_invoice_type","account.group_account_invoice",1,0,0,0
|
||||
"access_sale_journal_invoice_type_partner_manager","sale_journal.invoice.type partner manager","model_sale_journal_invoice_type","base.group_partner_manager",1,0,0,0
|
||||
"access_sale_journal_sale_journal","sale_journal.sale.journal","model_sale_journal_sale_journal","sale.group_sale_user",1,0,0,0
|
||||
"access_sale_journal_picking_journal","sale_journal.picking.journal","model_sale_journal_picking_journal","sale.group_sale_user",1,0,0,0
|
||||
"access_sale_journal_sale_stats","sale_journal.sale.stats","model_sale_journal_sale_stats","sale.group_sale_user",1,0,0,0
|
||||
"access_sale_journal_invoice_type_manager","sale_journal.invoice.type.manager","model_sale_journal_invoice_type","sale.group_sale_manager",1,1,1,1
|
||||
"access_sale_journal_sale_journal_manager","sale_journal.sale.journal.manager","model_sale_journal_sale_journal","sale.group_sale_manager",1,1,1,1
|
||||
"access_sale_journal_picking_journal_manager","sale_journal.picking.journal.manager","model_sale_journal_picking_journal","sale.group_sale_manager",1,1,1,1
|
||||
|
||||
|
Reference in New Issue
Block a user