|
1 | 1 | from . import models |
2 | 2 | from . import reports |
3 | | -from odoo import api, SUPERUSER_ID |
4 | | - |
5 | | - |
6 | | -def _put_sale_info_in_invoices(cr, registry): |
7 | | - env = api.Environment(cr, SUPERUSER_ID, {}) |
8 | | - cond = [("invoice_ids", "!=", False)] |
9 | | - sales = env["sale.order"].search(cond) |
10 | | - for sale in sales: |
11 | | - modified = False |
12 | | - for invoice in sale.invoice_ids: |
13 | | - if sale.team_id and not invoice.team_id: |
14 | | - modified = True |
15 | | - env.cr.execute( |
16 | | - """ |
17 | | - UPDATE account_move |
18 | | - SET team_id = %s |
19 | | - WHERE id = %s |
20 | | - """, |
21 | | - (sale.team_id.id, invoice.id), |
22 | | - ) |
23 | | - if sale.commercial_make_id and not invoice.commercial_make_id: |
24 | | - modified = True |
25 | | - env.cr.execute( |
26 | | - """ |
27 | | - UPDATE account_move |
28 | | - SET commercial_make_id = %s |
29 | | - WHERE id = %s |
30 | | - """, |
31 | | - (sale.commercial_make_id.id, invoice.id), |
32 | | - ) |
33 | | - if ( |
34 | | - sale.num_allowed_commercial_make |
35 | | - and not invoice.num_allowed_commercial_make |
36 | | - ): |
37 | | - modified = True |
38 | | - env.cr.execute( |
39 | | - """ |
40 | | - UPDATE account_move |
41 | | - SET num_allowed_commercial_make = %s |
42 | | - WHERE id = %s |
43 | | - """, |
44 | | - (sale.num_allowed_commercial_make, invoice.id), |
45 | | - ) |
46 | | - if sale.relation_id and not invoice.relation_id: |
47 | | - modified = True |
48 | | - env.cr.execute( |
49 | | - """ |
50 | | - UPDATE account_move |
51 | | - SET relation_id = %s |
52 | | - WHERE id = %s |
53 | | - """, |
54 | | - (sale.relation_id.id, invoice.id), |
55 | | - ) |
56 | | - if sale.classification_id and not invoice.classification_id: |
57 | | - modified = True |
58 | | - env.cr.execute( |
59 | | - """ |
60 | | - UPDATE account_move |
61 | | - SET classification_id = %s |
62 | | - WHERE id = %s |
63 | | - """, |
64 | | - (sale.classification_id.id, invoice.id), |
65 | | - ) |
66 | | - if sale.allowed_commercial_make_ids: |
67 | | - for make in sale.allowed_commercial_make_ids: |
68 | | - env.cr.execute( |
69 | | - """ |
70 | | - SELECT 1 FROM account_move_product_make_rel |
71 | | - WHERE account_move_id = %s AND product_make_id = %s |
72 | | - """, |
73 | | - (invoice.id, make.id), |
74 | | - ) |
75 | | - if not env.cr.fetchone(): |
76 | | - modified = True |
77 | | - env.cr.execute( |
78 | | - """ |
79 | | - INSERT INTO account_move_product_make_rel |
80 | | - (account_move_id, product_make_id) |
81 | | - VALUES (%s, %s) |
82 | | - """, |
83 | | - (invoice.id, make.id), |
84 | | - ) |
85 | | - if sale.market_id and not invoice.market_id: |
86 | | - modified = True |
87 | | - env.cr.execute( |
88 | | - """ |
89 | | - UPDATE account_move |
90 | | - SET market_id = %s |
91 | | - WHERE id = %s |
92 | | - """, |
93 | | - (sale.market_id.id, invoice.id), |
94 | | - ) |
95 | | - if sale.market_sector_id and not invoice.market_sector_id: |
96 | | - modified = True |
97 | | - env.cr.execute( |
98 | | - """ |
99 | | - UPDATE account_move |
100 | | - SET market_sector_id = %s |
101 | | - WHERE id = %s |
102 | | - """, |
103 | | - (sale.market_sector_id.id, invoice.id), |
104 | | - ) |
105 | | - if sale.global_discount_ids_readonly: |
106 | | - for discount in sale.global_discount_ids_readonly: |
107 | | - env.cr.execute( |
108 | | - """ |
109 | | - SELECT 1 FROM account_move_global_discount_rel |
110 | | - WHERE invoice_id = %s AND global_discount_id = %s |
111 | | - """, |
112 | | - (invoice.id, discount.id), |
113 | | - ) |
114 | | - if not env.cr.fetchone(): |
115 | | - modified = True |
116 | | - env.cr.execute( |
117 | | - """ |
118 | | - INSERT INTO account_move_global_discount_rel |
119 | | - (invoice_id, global_discount_id) |
120 | | - VALUES (%s, %s) |
121 | | - """, |
122 | | - (invoice.id, discount.id), |
123 | | - ) |
124 | | - for sale_line in sale.order_line: |
125 | | - for invoice_line in sale_line.invoice_lines: |
126 | | - if sale_line.allowed_make_ids: |
127 | | - for make in sale_line.allowed_make_ids: |
128 | | - env.cr.execute( |
129 | | - """ |
130 | | - SELECT 1 FROM account_move_line_product_make_rel |
131 | | - WHERE account_move_line_id = %s AND product_make_id = %s |
132 | | - """, |
133 | | - (invoice_line.id, make.id), |
134 | | - ) |
135 | | - if not env.cr.fetchone(): |
136 | | - modified = True |
137 | | - env.cr.execute( |
138 | | - """ |
139 | | - INSERT INTO account_move_line_product_make_rel |
140 | | - (account_move_line_id, product_make_id) |
141 | | - VALUES (%s, %s) |
142 | | - """, |
143 | | - (invoice_line.id, make.id), |
144 | | - ) |
145 | | - if sale_line.team_id and not invoice_line.team_id: |
146 | | - modified = True |
147 | | - env.cr.execute( |
148 | | - """ |
149 | | - UPDATE account_move_line |
150 | | - SET team_id = %s |
151 | | - WHERE id = %s |
152 | | - """, |
153 | | - (sale_line.team_id.id, invoice_line.id), |
154 | | - ) |
155 | | - if sale_line.make_id and not invoice_line.make_id: |
156 | | - modified = True |
157 | | - env.cr.execute( |
158 | | - """ |
159 | | - UPDATE account_move_line |
160 | | - SET make_id = %s |
161 | | - WHERE id = %s |
162 | | - """, |
163 | | - (sale_line.make_id.id, invoice_line.id), |
164 | | - ) |
165 | | - if modified: |
166 | | - env.cr.commit() |
0 commit comments