Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
E
ethikis_survey_export_results
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Le Filament
Ethikis
ethikis_survey_export_results
Commits
84378483
Commit
84378483
authored
4 years ago
by
Jordan
Browse files
Options
Downloads
Patches
Plain Diff
[delete] delete useless file
parent
afa3a93a
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
models/xls.py
+0
-273
0 additions, 273 deletions
models/xls.py
with
0 additions
and
273 deletions
models/xls.py
deleted
100644 → 0
+
0
−
273
View file @
afa3a93a
# Copyright 2019 Le Filament (<http://www.le-filament.com>)
# License AGPL-3 or later (http://www.gnu.org/licenses/agpl.html).
import
csv
import
re
from
datetime
import
datetime
from
io
import
BytesIO
,
StringIO
from
odoo
import
models
,
fields
,
api
,
http
from
odoo.addons.web.controllers.main
import
serialize_exception
from
odoo.addons.web.controllers.main
import
content_disposition
from
odoo.fields
import
Date
from
odoo.http
import
request
from
odoo.tools
import
pycompat
from
odoo.tools.misc
import
xlwt
HEADER_DEFAULT
=
[
'
date
'
,
'
journal
'
,
'
compte
'
,
'
debit
'
,
'
credit
'
,
'
libelle
'
,
'
piece
'
,
'
echeance
'
,
'
ref_piece
'
]
HEADER_DEFAULT_CEGID
=
[
'
journal
'
,
'
date
'
,
'
compte
'
,
'
auxiliaire
'
,
'
ref_piece
'
,
'
libelle
'
,
'
debit
'
,
'
credit
'
,
]
HEADER_DEFAULT_CEGID_FILE
=
[
'
Journal
'
,
'
Date
'
,
'
Général
'
,
'
Auxiliaire
'
,
'
Référence
'
,
'
Libellé
'
,
'
Débit
'
,
'
Crédit
'
,
]
class
AccountDatasExportWizard
(
models
.
TransientModel
):
_name
=
"
invoice.line.export
"
date_start
=
fields
.
Date
(
'
Date de début
'
,
required
=
True
)
date_end
=
fields
.
Date
(
'
Date de fin
'
,
required
=
True
,
default
=
datetime
.
today
().
strftime
(
'
%Y-%m-%d
'
))
export_format
=
fields
.
Selection
([(
'
csv
'
,
'
CSV
'
),
(
'
xls
'
,
'
Excel
'
)],
'
Format
'
,
default
=
"
csv
"
)
journal
=
fields
.
Selection
([(
'
ventes
'
,
'
Ventes
'
),
(
'
achats
'
,
'
Achats
'
)],
'
Journal
'
,
default
=
'
ventes
'
)
@api.multi
def
get_data_file
(
self
):
nom_outil_compta
=
self
.
env
[
'
ir.config_parameter
'
].
sudo
().
get_param
(
'
account.nom_outil_compta
'
)
return
{
'
type
'
:
'
ir.actions.act_url
'
,
'
url
'
:
'
/web/export_journal?format=%s&journal=%s&nom_outil_compta=%s
'
%
(
self
.
export_format
,
self
.
journal
,
nom_outil_compta
)
+
'
&date_start=%s&date_end=%s
'
%
(
self
.
date_start
,
self
.
date_end
),
'
target
'
:
'
new
'
,
}
class
AccountDatasExport
(
http
.
Controller
):
def
export_csv
(
self
,
lignes_export
,
columns
,
filename_
,
nom_outil_compta
):
fp
=
StringIO
()
export_file
=
csv
.
writer
(
fp
,
delimiter
=
'
;
'
,
quoting
=
csv
.
QUOTE_ALL
)
row
=
[]
# Add header line only if outil = cegid
if
nom_outil_compta
==
'
cegid
'
:
header_file
=
HEADER_DEFAULT_CEGID_FILE
for
head
in
header_file
:
row
.
append
(
head
)
export_file
.
writerow
(
row
)
for
line
in
lignes_export
:
row
=
[]
for
column
in
columns
:
if
isinstance
(
line
[
column
],
str
):
try
:
value
=
line
[
column
]
except
UnicodeError
:
pass
else
:
if
((
column
==
'
date
'
)
or
(
column
==
'
echeance
'
)
and
line
[
column
]):
value
=
Date
.
to_date
(
line
[
column
]).
strftime
(
'
%d/%m/%Y
'
)
elif
(
column
==
'
credit
'
)
or
(
column
==
'
debit
'
):
value
=
str
(
line
[
column
]).
replace
(
'
.
'
,
'
,
'
)
else
:
value
=
line
[
column
]
row
.
append
(
value
)
export_file
.
writerow
(
row
)
fp
.
seek
(
0
)
data
=
fp
.
read
()
fp
.
close
()
filename
=
filename_
+
'
.csv
'
csvhttpheaders
=
[
(
'
Content-Type
'
,
'
text/csv;charset=utf8
'
),
(
'
Content-Disposition
'
,
content_disposition
(
filename
)),
]
return
request
.
make_response
(
data
,
headers
=
csvhttpheaders
)
def
export_xls
(
self
,
lignes_export
,
columns
,
filename_
,
nom_outil_compta
):
workbook
=
xlwt
.
Workbook
()
worksheet
=
workbook
.
add_sheet
(
filename_
)
if
nom_outil_compta
==
'
cegid
'
:
header_file
=
HEADER_DEFAULT_CEGID_FILE
else
:
header_file
=
columns
for
i
,
fieldname
in
enumerate
(
header_file
):
worksheet
.
write
(
0
,
i
,
fieldname
)
worksheet
.
col
(
i
).
width
=
8000
# around 220 pixels
base_style
=
xlwt
.
easyxf
(
'
align: wrap yes
'
)
for
row_index
,
line
in
enumerate
(
lignes_export
):
for
cell_index
,
column
in
enumerate
(
columns
):
cell_style
=
base_style
if
((
column
==
'
date
'
)
or
(
column
==
'
echeance
'
)
and
line
[
column
]):
cell_value
=
Date
.
to_date
(
line
[
column
]).
strftime
(
'
%d/%m/%Y
'
)
elif
(
column
==
'
credit
'
)
or
(
column
==
'
debit
'
):
cell_value
=
line
[
column
]
elif
isinstance
(
line
[
column
],
pycompat
.
string_types
):
cell_value
=
re
.
sub
(
"
\r
"
,
"
"
,
line
[
column
])
else
:
cell_value
=
line
[
column
]
worksheet
.
write
(
row_index
+
1
,
cell_index
,
cell_value
,
cell_style
)
fp
=
BytesIO
()
workbook
.
save
(
fp
)
fp
.
seek
(
0
)
data
=
fp
.
read
()
fp
.
close
()
filename
=
filename_
+
'
.xls
'
xlshttpheaders
=
[
(
'
Content-Type
'
,
'
text/csv;charset=utf8
'
),
(
'
Content-Disposition
'
,
content_disposition
(
filename
)),
]
return
request
.
make_response
(
data
,
headers
=
xlshttpheaders
)
def
datas_export_ventes
(
self
,
format
,
date_start
,
date_end
,
nom_outil_compta
):
if
nom_outil_compta
==
'
ibiza
'
:
columns
=
HEADER_DEFAULT
journal_value
=
'
VT
'
elif
nom_outil_compta
==
'
cegid
'
:
columns
=
HEADER_DEFAULT_CEGID
journal_value
=
'
VEN
'
else
:
columns
=
HEADER_DEFAULT
journal_value
=
'
VT
'
# requete
request
.
cr
.
execute
(
"""
SELECT l.date,
%s AS journal,
a.code AS compte,
''
AS auxiliaire,
l.debit,
l.credit,
(CASE WHEN l.name =
'
/
'
OR l.name =
''
THEN p.name
ELSE CONCAT(
'
Facture
'
,i.number,
'
-
'
,l.name) END) AS libelle,
i.number AS piece,
l.date_maturity AS echeance,
i.number AS ref_piece
FROM account_move_line AS l
LEFT JOIN account_invoice AS i ON l.invoice_id = i.id
LEFT JOIN account_account AS a ON l.account_id = a.id
LEFT JOIN res_partner AS p ON l.partner_id = p.id
WHERE l.journal_id = 1 AND l.date >= %s AND l.date <= %s
ORDER BY l.date, l.move_id, a.code DESC;
"""
,
(
journal_value
,
date_start
,
date_end
))
lignes_export
=
request
.
cr
.
dictfetchall
()
company_name
=
request
.
env
[
'
res.company
'
].
search
([(
'
id
'
,
'
=
'
,
1
)]).
name
filename_
=
(
company_name
.
title
().
replace
(
'
'
,
''
)
+
'
JournalVentes_
'
+
date_start
.
replace
(
'
-
'
,
''
)
+
'
_
'
+
date_end
.
replace
(
'
-
'
,
''
))
if
format
==
'
csv
'
:
return
self
.
export_csv
(
lignes_export
,
columns
,
filename_
,
nom_outil_compta
)
return
self
.
export_xls
(
lignes_export
,
columns
,
filename_
,
nom_outil_compta
)
def
datas_export_achats
(
self
,
format
,
date_start
,
date_end
,
nom_outil_compta
):
if
nom_outil_compta
==
'
ibiza
'
:
columns
=
HEADER_DEFAULT
journal_value
=
'
HA
'
elif
nom_outil_compta
==
'
cegid
'
:
columns
=
HEADER_DEFAULT_CEGID
journal_value
=
'
ACH
'
else
:
columns
=
HEADER_DEFAULT
journal_value
=
'
HA
'
request
.
cr
.
execute
(
"""
SELECT l.date,
%s AS journal,
a.code AS compte,
''
AS auxiliaire,
l.debit,
l.credit,
(CASE WHEN l.name =
'
/
'
OR
''
THEN p.name
ELSE CONCAT(
'
Facture
'
,i.number,
'
-
'
,l.name) END) AS libelle,
i.number AS piece,
i.date_due AS echeance,
i.reference AS ref_piece
FROM account_move_line AS l
LEFT JOIN account_invoice AS i ON l.invoice_id = i.id
LEFT JOIN account_account AS a ON l.account_id = a.id
LEFT JOIN res_partner AS p ON l.partner_id = p.id
WHERE l.journal_id = 2 AND i.type=
'
in_invoice
'
AND l.date >= %s AND l.date <= %s
ORDER BY l.date, l.move_id, a.code DESC;
"""
,
(
journal_value
,
date_start
,
date_end
))
lignes_export
=
request
.
cr
.
dictfetchall
()
company_name
=
request
.
env
[
'
res.company
'
].
search
([(
'
id
'
,
'
=
'
,
1
)]).
name
filename_
=
(
company_name
.
title
().
replace
(
'
'
,
''
)
+
'
JournalAchats_
'
+
date_start
.
replace
(
'
-
'
,
''
)
+
'
_
'
+
date_end
.
replace
(
'
-
'
,
''
))
if
format
==
'
csv
'
:
return
self
.
export_csv
(
lignes_export
,
columns
,
filename_
,
nom_outil_compta
)
return
self
.
export_xls
(
lignes_export
,
columns
,
filename_
,
nom_outil_compta
)
@http.route
(
'
/web/export_journal/
'
,
type
=
'
http
'
,
auth
=
"
user
"
)
@serialize_exception
def
datas_export
(
self
,
format
,
journal
,
nom_outil_compta
,
date_start
,
date_end
,
**
kw
):
if
journal
==
'
ventes
'
:
return
self
.
datas_export_ventes
(
format
,
date_start
,
date_end
,
nom_outil_compta
)
elif
journal
==
'
achats
'
:
return
self
.
datas_export_achats
(
format
,
date_start
,
date_end
,
nom_outil_compta
)
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment