37
30
class report_account_invoice_product(osv.osv):
38
_name = 'report.account.invoice.product'
41
'name': fields.date('Month', readonly=True),
42
'type': fields.selection([
43
('out_invoice','Customer Invoice'),
44
('in_invoice','Supplier Invoice'),
45
('out_refund','Customer Refund'),
46
('in_refund','Supplier Refund'),
47
],'Type', readonly=True),
48
'state': fields.selection([
50
('proforma','Pro-forma'),
54
],'State', readonly=True),
55
'product_id': fields.many2one('product.product', 'Product', readonly=True, relate=True),
56
'amount': fields.float('Amount', readonly=True),
57
'cost_price': fields.float('Cost Price', readonly=True),
58
'margin': fields.float('Margin', readonly=True),
59
'quantity': fields.float('Quantity', readonly=True),
64
create or replace view report_account_invoice_product as (
67
substring(i.date_invoice for 7) || '-' || '01' as name,
71
sum(l.quantity * l.price_unit * (1.0 - l.discount/100.0)) as amount,
72
sum(l.quantity * l.cost_price) as cost_price,
73
sum((l.quantity * l.price_unit * (1.0 - l.discount/100.0) - (l.quantity * l.cost_price))) as margin,
74
sum(l.quantity) as quantity
75
from account_invoice i
76
left join account_invoice_line l on (i.id = l.invoice_id)
77
group by l.product_id, substring(i.date_invoice for 7), i.type, i.state
31
_name = 'report.account.invoice.product'
34
'name': fields.date('Month', readonly=True),
35
'type': fields.selection([
36
('out_invoice','Customer Invoice'),
37
('in_invoice','Supplier Invoice'),
38
('out_refund','Customer Refund'),
39
('in_refund','Supplier Refund'),
40
],'Type', readonly=True),
41
'state': fields.selection([
43
('proforma','Pro-forma'),
47
],'State', readonly=True),
48
'product_id': fields.many2one('product.product', 'Product', readonly=True),
49
'amount': fields.float('Amount', readonly=True),
50
'cost_price': fields.float('Cost Price', readonly=True),
51
'margin': fields.float('Margin', readonly=True),
52
'quantity': fields.float('Quantity', readonly=True),
57
create or replace view report_account_invoice_product as (
60
to_char(i.date_invoice, 'YYYY-MM-01') as name,
64
sum(l.quantity * l.price_unit * (1.0 - l.discount/100.0)) as amount,
65
sum(l.quantity * l.cost_price) as cost_price,
66
sum((l.quantity * l.price_unit * (1.0 - l.discount/100.0) - (l.quantity * l.cost_price))) as margin,
67
sum(l.quantity) as quantity
68
from account_invoice i
69
left join account_invoice_line l on (i.id = l.invoice_id)
70
group by l.product_id, to_char(i.date_invoice, 'YYYY-MM-01'), i.type, i.state
80
73
report_account_invoice_product()
82
75
class report_account_invoice_category(osv.osv):
83
_name = 'report.account.invoice.category'
86
'name': fields.date('Month', readonly=True),
87
'type': fields.selection([
88
('out_invoice','Customer Invoice'),
89
('in_invoice','Supplier Invoice'),
90
('out_refund','Customer Refund'),
91
('in_refund','Supplier Refund'),
92
],'Type', readonly=True),
93
'state': fields.selection([
95
('proforma','Pro-forma'),
99
],'State', readonly=True),
100
'categ_id': fields.many2one('product.category', 'Categories', readonly=True, relate=True),
101
'amount': fields.float('Amount', readonly=True),
102
'cost_price': fields.float('Cost Price', readonly=True),
103
'margin': fields.float('Margin', readonly=True),
104
'quantity': fields.float('Quantity', readonly=True),
109
create or replace view report_account_invoice_category as (
112
substring(i.date_invoice for 7) || '-' || '01' as name,
116
sum(l.quantity * l.price_unit * (1.0 - l.discount/100.0)) as amount,
117
sum(l.quantity * l.cost_price) as cost_price,
118
sum((l.quantity * l.price_unit * (1.0 - l.discount/100.0) - (l.quantity * l.cost_price))) as margin,
119
sum(l.quantity) as quantity
120
from account_invoice i
121
left join account_invoice_line l on (i.id = l.invoice_id)
122
left join product_product p on (p.id = l.product_id)
123
left join product_template t on (t.id = p.product_tmpl_id)
124
group by t.categ_id, substring(i.date_invoice for 7), i.type, i.state
76
_name = 'report.account.invoice.category'
79
'name': fields.date('Month', readonly=True),
80
'type': fields.selection([
81
('out_invoice','Customer Invoice'),
82
('in_invoice','Supplier Invoice'),
83
('out_refund','Customer Refund'),
84
('in_refund','Supplier Refund'),
85
],'Type', readonly=True),
86
'state': fields.selection([
88
('proforma','Pro-forma'),
92
],'State', readonly=True),
93
'categ_id': fields.many2one('product.category', 'Categories', readonly=True),
94
'amount': fields.float('Amount', readonly=True),
95
'cost_price': fields.float('Cost Price', readonly=True),
96
'margin': fields.float('Margin', readonly=True),
97
'quantity': fields.float('Quantity', readonly=True),
102
create or replace view report_account_invoice_category as (
105
to_char(i.date_invoice, 'YYYY-MM-01') as name,
109
sum(l.quantity * l.price_unit * (1.0 - l.discount/100.0)) as amount,
110
sum(l.quantity * l.cost_price) as cost_price,
111
sum((l.quantity * l.price_unit * (1.0 - l.discount/100.0) - (l.quantity * l.cost_price))) as margin,
112
sum(l.quantity) as quantity
113
from account_invoice i
114
left join account_invoice_line l on (i.id = l.invoice_id)
115
left join product_product p on (p.id = l.product_id)
116
left join product_template t on (t.id = p.product_tmpl_id)
117
group by t.categ_id, to_char(i.date_invoice, 'YYYY-MM-01'), i.type, i.state
127
120
report_account_invoice_category()
129
122
class report_account_invoice_partner(osv.osv):
130
_name = 'report.account.invoice.partner'
133
'name': fields.date('Month', readonly=True),
134
'type': fields.selection([
135
('out_invoice','Customer Invoice'),
136
('in_invoice','Supplier Invoice'),
137
('out_refund','Customer Refund'),
138
('in_refund','Supplier Refund'),
139
],'Type', readonly=True),
140
'state': fields.selection([
142
('proforma','Pro-forma'),
145
('cancel','Canceled')
146
],'State', readonly=True),
147
'partner_id': fields.many2one('res.partner', 'Partner', readonly=True, relate=True),
148
'amount': fields.float('Amount', readonly=True),
149
'cost_price': fields.float('Cost Price', readonly=True),
150
'margin': fields.float('Margin', readonly=True),
151
'quantity': fields.float('Quantity', readonly=True),
156
create or replace view report_account_invoice_partner as (
159
substring(i.date_invoice for 7) || '-' || '01' as name,
163
sum(l.quantity * l.price_unit * (1.0 - l.discount/100.0)) as amount,
164
sum(l.quantity * l.cost_price) as cost_price,
165
sum((l.quantity * l.price_unit * (1.0 - l.discount/100.0) - (l.quantity * l.cost_price))) as margin,
166
sum(l.quantity) as quantity
167
from account_invoice i
168
left join account_invoice_line l on (i.id = l.invoice_id)
169
group by i.partner_id, substring(i.date_invoice for 7), i.type, i.state
123
_name = 'report.account.invoice.partner'
126
'name': fields.date('Month', readonly=True),
127
'type': fields.selection([
128
('out_invoice','Customer Invoice'),
129
('in_invoice','Supplier Invoice'),
130
('out_refund','Customer Refund'),
131
('in_refund','Supplier Refund'),
132
],'Type', readonly=True),
133
'state': fields.selection([
135
('proforma','Pro-forma'),
138
('cancel','Canceled')
139
],'State', readonly=True),
140
'partner_id': fields.many2one('res.partner', 'Partner', readonly=True),
141
'amount': fields.float('Amount', readonly=True),
142
'cost_price': fields.float('Cost Price', readonly=True),
143
'margin': fields.float('Margin', readonly=True),
144
'quantity': fields.float('Quantity', readonly=True),
149
create or replace view report_account_invoice_partner as (
152
to_char(i.date_invoice, 'YYYY-MM-01') as name,
156
sum(l.quantity * l.price_unit * (1.0 - l.discount/100.0)) as amount,
157
sum(l.quantity * l.cost_price) as cost_price,
158
sum((l.quantity * l.price_unit * (1.0 - l.discount/100.0) - (l.quantity * l.cost_price))) as margin,
159
sum(l.quantity) as quantity
160
from account_invoice i
161
left join account_invoice_line l on (i.id = l.invoice_id)
162
group by i.partner_id, to_char(i.date_invoice, 'YYYY-MM-01'), i.type, i.state
172
165
report_account_invoice_partner()
174
167
class report_account_invoice_partner_product(osv.osv):
175
_name = 'report.account.invoice.partner.product'
178
'name': fields.date('Month', readonly=True),
179
'type': fields.selection([
180
('out_invoice','Customer Invoice'),
181
('in_invoice','Supplier Invoice'),
182
('out_refund','Customer Refund'),
183
('in_refund','Supplier Refund'),
184
],'Type', readonly=True),
185
'state': fields.selection([
187
('proforma','Pro-forma'),
190
('cancel','Canceled')
191
],'State', readonly=True),
192
'partner_id': fields.many2one('res.partner', 'Partner', readonly=True, relate=True),
193
'product_id': fields.many2one('product.product', 'Product', readonly=True, relate=True),
194
'amount': fields.float('Amount', readonly=True),
195
'cost_price': fields.float('Cost Price', readonly=True),
196
'margin': fields.float('Margin', readonly=True),
197
'quantity': fields.float('Quantity', readonly=True),
202
create or replace view report_account_invoice_partner_product as (
205
substring(i.date_invoice for 7) || '-' || '01' as name,
210
sum(l.quantity * l.price_unit * (1.0 - l.discount/100.0)) as amount,
211
sum(l.quantity * l.cost_price) as cost_price,
212
sum((l.quantity * l.price_unit * (1.0 - l.discount/100.0) - (l.quantity * l.cost_price))) as margin,
213
sum(l.quantity) as quantity
214
from account_invoice i
215
left join account_invoice_line l on (i.id = l.invoice_id)
216
group by i.partner_id, l.product_id, substring(i.date_invoice for 7), i.type, i.state
168
_name = 'report.account.invoice.partner.product'
171
'name': fields.date('Month', readonly=True),
172
'type': fields.selection([
173
('out_invoice','Customer Invoice'),
174
('in_invoice','Supplier Invoice'),
175
('out_refund','Customer Refund'),
176
('in_refund','Supplier Refund'),
177
],'Type', readonly=True),
178
'state': fields.selection([
180
('proforma','Pro-forma'),
183
('cancel','Canceled')
184
],'State', readonly=True),
185
'partner_id': fields.many2one('res.partner', 'Partner', readonly=True),
186
'product_id': fields.many2one('product.product', 'Product', readonly=True),
187
'amount': fields.float('Amount', readonly=True),
188
'cost_price': fields.float('Cost Price', readonly=True),
189
'margin': fields.float('Margin', readonly=True),
190
'quantity': fields.float('Quantity', readonly=True),
195
create or replace view report_account_invoice_partner_product as (
198
to_char(i.date_invoice, 'YYYY-MM-01') as name,
203
sum(l.quantity * l.price_unit * (1.0 - l.discount/100.0)) as amount,
204
sum(l.quantity * l.cost_price) as cost_price,
205
sum((l.quantity * l.price_unit * (1.0 - l.discount/100.0) - (l.quantity * l.cost_price))) as margin,
206
sum(l.quantity) as quantity
207
from account_invoice i
208
left join account_invoice_line l on (i.id = l.invoice_id)
209
group by i.partner_id, l.product_id, to_char(i.date_invoice, 'YYYY-MM-01'), i.type, i.state
219
212
report_account_invoice_partner_product()
222
215
class report_account_invoice(osv.osv):
223
_name = 'report.account.invoice'
226
'name': fields.date('Month', readonly=True),
227
'type': fields.selection([
228
('out_invoice','Customer Invoice'),
229
('in_invoice','Supplier Invoice'),
230
('out_refund','Customer Refund'),
231
('in_refund','Supplier Refund'),
232
],'Type', readonly=True),
233
'state': fields.selection([
235
('proforma','Pro-forma'),
238
('cancel','Canceled')
239
],'State', readonly=True),
240
'amount': fields.float('Amount', readonly=True),
241
'cost_price': fields.float('Cost Price', readonly=True),
242
'margin': fields.float('Margin', readonly=True),
243
'quantity': fields.float('Quantity', readonly=True),
248
create or replace view report_account_invoice as (
251
substring(i.date_invoice for 7) || '-' || '01' as name,
254
sum(l.quantity * l.price_unit * (1.0 - l.discount/100.0)) as amount,
255
sum(l.quantity * l.cost_price) as cost_price,
256
sum((l.quantity * l.price_unit * (1.0 - l.discount/100.0) - (l.quantity * l.cost_price))) as margin,
257
sum(l.quantity) as quantity
258
from account_invoice i
259
left join account_invoice_line l on (i.id = l.invoice_id)
260
group by substring(i.date_invoice for 7), i.type, i.state
216
_name = 'report.account.invoice'
219
'name': fields.date('Month', readonly=True),
220
'type': fields.selection([
221
('out_invoice','Customer Invoice'),
222
('in_invoice','Supplier Invoice'),
223
('out_refund','Customer Refund'),
224
('in_refund','Supplier Refund'),
225
],'Type', readonly=True),
226
'state': fields.selection([
228
('proforma','Pro-forma'),
231
('cancel','Canceled')
232
],'State', readonly=True),
233
'amount': fields.float('Amount', readonly=True),
234
'cost_price': fields.float('Cost Price', readonly=True),
235
'margin': fields.float('Margin', readonly=True),
236
'quantity': fields.float('Quantity', readonly=True),
241
create or replace view report_account_invoice as (
244
to_char(i.date_invoice, 'YYYY-MM-01') as name,
247
sum(l.quantity * l.price_unit * (1.0 - l.discount/100.0)) as amount,
248
sum(l.quantity * l.cost_price) as cost_price,
249
sum((l.quantity * l.price_unit * (1.0 - l.discount/100.0) - (l.quantity * l.cost_price))) as margin,
250
sum(l.quantity) as quantity
251
from account_invoice i
252
left join account_invoice_line l on (i.id = l.invoice_id)
253
group by to_char(i.date_invoice, 'YYYY-MM-01'), i.type, i.state
263
256
report_account_invoice()
257
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: