Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
odoo
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
cooperatic-foodcoops
odoo
Commits
eb41ec18
Commit
eb41ec18
authored
Mar 20, 2021
by
François C.
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Ajout module Commande DIAPAR EDI
parent
bfd74d75
Show whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
610 additions
and
0 deletions
+610
-0
README.rst
intercoop_addons/coop_edi_purchase_diapar/README.rst
+28
-0
__init__.py
intercoop_addons/coop_edi_purchase_diapar/__init__.py
+6
-0
__openerp__.py
intercoop_addons/coop_edi_purchase_diapar/__openerp__.py
+30
-0
ir_config_parameter.xml
...ons/coop_edi_purchase_diapar/data/ir_config_parameter.xml
+34
-0
icon.png
...coop_addons/coop_edi_purchase_diapar/description/icon.png
+0
-0
__init__.py
intercoop_addons/coop_edi_purchase_diapar/models/__init__.py
+10
-0
edi_config_system.py
...dons/coop_edi_purchase_diapar/models/edi_config_system.py
+155
-0
product.py
intercoop_addons/coop_edi_purchase_diapar/models/product.py
+34
-0
purchase.py
intercoop_addons/coop_edi_purchase_diapar/models/purchase.py
+148
-0
purchase_edi_log.py
...ddons/coop_edi_purchase_diapar/models/purchase_edi_log.py
+33
-0
res_partner.py
...oop_addons/coop_edi_purchase_diapar/models/res_partner.py
+16
-0
ir.model.access.csv
...ons/coop_edi_purchase_diapar/security/ir.model.access.csv
+6
-0
ir_module_category.xml
.../coop_edi_purchase_diapar/security/ir_module_category.xml
+8
-0
res_groups.xml
...p_addons/coop_edi_purchase_diapar/security/res_groups.xml
+16
-0
icon.png
...dons/coop_edi_purchase_diapar/static/description/icon.png
+0
-0
actions.xml
intercoop_addons/coop_edi_purchase_diapar/views/actions.xml
+15
-0
menus.xml
intercoop_addons/coop_edi_purchase_diapar/views/menus.xml
+16
-0
purchase_edi_log_view.xml
.../coop_edi_purchase_diapar/views/purchase_edi_log_view.xml
+35
-0
res_partner_view.xml
...ddons/coop_edi_purchase_diapar/views/res_partner_view.xml
+20
-0
No files found.
intercoop_addons/coop_edi_purchase_diapar/README.rst
0 → 100644
View file @
eb41ec18
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
======================
EDI Purchase DIAPAR
======================
Features
--------
This module allows Diapar EDI Purchase Orders.
Credits
=======
Yassine TEIMI <yteimi01@gmail.com>
Simon Mas <simon.mas@druidoo.io>
Funders
-------
The development of this module has been financially supported by:
* La Louve (https://cooplalouve.fr/)
* Les Grains de Sel (http://lesgrainsdesel.fr)
intercoop_addons/coop_edi_purchase_diapar/__init__.py
0 → 100644
View file @
eb41ec18
# -*- coding: utf-8 -*-
# Copyright (C) 2016-Today: Druidoo (<http://www.druidoo.io/>)
# @author: Druidoo
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html
from
.
import
models
intercoop_addons/coop_edi_purchase_diapar/__openerp__.py
0 → 100644
View file @
eb41ec18
# -*- coding: utf-8 -*-
# Copyright (C) 2016-2021: Druidoo (<http://www.druidoo.io/>)
# Copyright (C) 2021-today: Cooperatic (<http://cooperatic.fr/>)
# @author: Druidoo
# @author: Cooperatic
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html
{
'name'
:
'EDI Purchase DIAPAR'
,
'version'
:
'9.0.1.2'
,
'category'
:
'Custom'
,
'author'
:
'Druidoo / Cooperatic'
,
'website'
:
'http://www.druidoo.io , https://cooperatic.fr'
,
'license'
:
'AGPL-3'
,
'depends'
:
[
'product'
,
'coop_purchase'
,
'coop_membership'
],
'data'
:
[
'data/ir_config_parameter.xml'
,
'views/actions.xml'
,
'views/menus.xml'
,
'views/purchase_edi_log_view.xml'
,
'views/res_partner_view.xml'
,
'security/ir_module_category.xml'
,
'security/res_groups.xml'
,
'security/ir.model.access.csv'
,
],
}
intercoop_addons/coop_edi_purchase_diapar/data/ir_config_parameter.xml
0 → 100644
View file @
eb41ec18
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<data
noupdate=
"1"
>
<record
id=
"edi_folder_path"
model=
"ir.config_parameter"
>
<field
name=
"key"
>
edi.local_folder_path
</field>
<field
name=
"value"
>
/tmp/
</field>
</record>
<record
id=
"edi_diapar_ftp_host"
model=
"ir.config_parameter"
>
<field
name=
"key"
>
edi.diapar.ftp_host
</field>
<field
name=
"value"
>
</field>
</record>
<record
id=
"edi_diapar_ftp_port"
model=
"ir.config_parameter"
>
<field
name=
"key"
>
edi.diapar.ftp_port
</field>
<field
name=
"value"
>
21
</field>
</record>
<record
id=
"edi_diapar_ftp_login"
model=
"ir.config_parameter"
>
<field
name=
"key"
>
edi.diapar.ftp_login
</field>
<field
name=
"value"
>
</field>
</record>
<record
id=
"edi_diapar_ftp_pwd"
model=
"ir.config_parameter"
>
<field
name=
"key"
>
edi.diapar.ftp_pwd
</field>
<field
name=
"value"
>
</field>
</record>
<record
id=
"edi_diapar_customer_code"
model=
"ir.config_parameter"
>
<field
name=
"key"
>
edi.diapar.customer_code
</field>
<field
name=
"value"
>
</field>
</record>
<record
id=
"edi_diapar_vrp_code"
model=
"ir.config_parameter"
>
<field
name=
"key"
>
edi.diapar.vrp_code
</field>
<field
name=
"value"
>
03
</field>
</record>
</data>
</odoo>
intercoop_addons/coop_edi_purchase_diapar/description/icon.png
0 → 100644
View file @
eb41ec18
4.38 KB
intercoop_addons/coop_edi_purchase_diapar/models/__init__.py
0 → 100644
View file @
eb41ec18
# -*- coding: utf-8 -*-
# Copyright (C) 2016-Today: Druidoo (<http://www.druidoo.io/>)
# @author: Druidoo
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html
from
.
import
product
from
.
import
purchase
from
.
import
edi_config_system
from
.
import
purchase_edi_log
from
.
import
res_partner
intercoop_addons/coop_edi_purchase_diapar/models/edi_config_system.py
0 → 100644
View file @
eb41ec18
# -*- coding: utf-8 -*-
# Copyright (C) 2016-2021: Druidoo (<http://www.druidoo.io/>)
# Copyright (C) 2021-today: Cooperatic (<http://cooperatic.fr/>)
# @author: Druidoo
# @author: Cooperatic
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html
import
time
import
fnmatch
import
zipfile
import
logging
import
os
from
dateutil
import
parser
import
datetime
from
openerp
import
models
,
api
,
fields
,
tools
,
_
from
openerp.exceptions
import
ValidationError
_logger
=
logging
.
getLogger
(
__name__
)
try
:
from
ftplib
import
FTP
except
ImportError
:
_logger
.
warning
(
"Cannot import 'ftplib' Python Librairy. 'edi_purchase_*'"
" module will not work properly."
)
def
get_datenow_format_for_file
():
now
=
time
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
date
=
now
.
split
(
' '
)[
0
]
.
replace
(
'-'
,
''
)
hour
=
now
.
split
(
' '
)[
1
]
.
replace
(
':'
,
''
)
return
date
,
hour
def
get_text_file_pattern
():
day
,
hour
=
get_datenow_format_for_file
()
return
'LD'
+
day
+
'H'
+
hour
+
'.C99'
class
DiaparEdiConfigSystem
(
models
.
Model
):
_name
=
'diapar.edi.config.system'
_auto
=
False
# po_text_file_pattern = get_text_file_pattern()
constant_file_start
=
'HDIAPAR '
constant_file_end
=
'*DIAPAR*DIAPAR'
csv_relative_in_path
=
'/Reception'
csv_relative_out_path
=
'/Envoi'
@api.model
def
get_text_file_pattern
():
day
,
hour
=
get_datenow_format_for_file
()
return
'LD'
+
day
+
'H'
+
hour
+
'.C99'
@api.one
@api.constrains
(
'ftp_port'
)
def
_check_ftp_port
(
self
):
if
not
self
.
ftp_port
.
isdigit
():
raise
ValidationError
(
_
(
"FTP port must be numeric!"
))
@api.model
def
ftp_connection_open
(
self
):
"""Return a new FTP connection with found parameters."""
config_obj
=
self
.
env
[
'ir.config_parameter'
]
login
=
config_obj
.
get_param
(
'edi.diapar.ftp_login'
)
host
=
config_obj
.
get_param
(
'edi.diapar.ftp_host'
)
port
=
config_obj
.
get_param
(
'edi.diapar.ftp_port'
)
_logger
.
info
(
"Trying to connect to ftp://
%
s@
%
s:
%
s"
%
(
login
,
host
,
port
))
try
:
ftp
=
FTP
()
ftp
.
connect
(
host
)
if
login
:
ftp
.
login
(
login
,
config_obj
.
get_param
(
'edi.diapar.ftp_pwd'
))
else
:
ftp
.
login
()
return
ftp
except
Exception
,
e
:
raise
ValidationError
(
_
(
"Error when opening FTP connection:
\n
%
s"
)
%
tools
.
ustr
(
e
))
@api.model
def
ftp_connection_close
(
self
,
ftp
):
try
:
ftp
.
quit
()
except
Exception
,
e
:
raise
ValidationError
(
_
(
"Error when closing FTP connection:
\n
%
s"
)
%
tools
.
ustr
(
e
))
@api.model
def
ftp_connection_push_order_file
(
self
,
ftp
,
distant_folder_path
,
local_folder_path
,
pattern
,
lines
,
encoding
=
'utf-8'
):
try
:
if
lines
:
# Generate temporary file
f_name
=
datetime
.
datetime
.
now
()
.
strftime
(
pattern
)
local_path
=
os
.
path
.
join
(
local_folder_path
,
f_name
)
distant_path
=
os
.
path
.
join
(
distant_folder_path
,
f_name
)
f
=
open
(
local_path
,
'w'
)
for
line
in
lines
:
raw_text
=
line
f
.
write
(
raw_text
.
encode
(
encoding
,
errors
=
'ignore'
))
f
.
close
()
# Send File by FTP
f
=
open
(
local_path
,
'r'
)
ftp
.
storbinary
(
'STOR '
+
distant_path
,
f
)
f
.
close
()
# Delete temporary file
# os.remove(local_path)
except
Exception
,
e
:
raise
ValidationError
(
_
(
"Error when pushing order file:
\n
%
s"
)
%
tools
.
ustr
(
e
))
@api.model
def
get_datetime_format_ddmmyyyy
(
self
,
date
):
do_date
=
datetime
.
datetime
.
strptime
(
date
,
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
return
"
%02
d
%02
d
%
s"
%
(
do_date
.
day
,
do_date
.
month
,
str
(
do_date
.
year
)[
2
:])
@api.model
def
get_date_format_yyyymmdd
(
self
,
date
):
"""
Transform a string date to datetime and format it to standard odoo date format
"""
return
datetime
.
datetime
.
strptime
(
date
,
"
%
y
%
m
%
d"
)
.
strftime
(
'
%
Y-
%
m-
%
d'
)
\
@api.model
def
get_date_format_ble_yyyymmdd
(
self
,
date
):
"""
Transform a string date (specific to delivery order interface format) to datetime object and format it to standard odoo date format
"""
return
datetime
.
datetime
.
strptime
(
date
,
"
%
Y
%
m
%
d"
)
.
strftime
(
'
%
Y-
%
m-
%
d'
)
@api.model
def
insert_separator
(
self
,
string
,
index
,
separator
):
"""
This method is to insert a separator inside string on a certain position
"""
return
string
[:
index
]
+
separator
+
string
[
index
:]
@api.model
def
_fix_lenght
(
self
,
value
,
lenght
,
mode
=
'float'
,
replace
=
''
,
position
=
'before'
):
"""
Mode = string/integer
replace ==> ' ' or '0'
position ==> before / after
"""
value
=
str
(
value
)
if
mode
==
'float'
:
value
=
value
.
split
(
'.'
)[
0
]
if
position
==
'before'
:
value
=
''
.
join
([
replace
for
i
in
range
(
lenght
-
len
(
value
))])
+
value
else
:
value
+=
''
.
join
([
replace
for
i
in
range
(
lenght
-
len
(
value
))])
return
value
[
0
:
lenght
]
intercoop_addons/coop_edi_purchase_diapar/models/product.py
0 → 100644
View file @
eb41ec18
# -*- coding: utf-8 -*-
# Copyright (C) 2016-Today: Druidoo (<http://www.druidoo.net/>)
# @author: Druidoo
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html
import
datetime
# Used when eval python codes !!
from
openerp
import
models
,
api
,
fields
,
tools
,
_
from
openerp.exceptions
import
ValidationError
import
logging
_logger
=
logging
.
getLogger
(
__name__
)
class
ProductProduct
(
models
.
Model
):
_inherit
=
'product.product'
@api.multi
def
_get_supplier_code_or_ean
(
self
,
seller_id
):
"""
"""
self
.
ensure_one
()
code
,
origin_code
=
''
,
''
seller_line
=
self
.
seller_ids
.
filtered
(
lambda
l
:
l
.
name
==
seller_id
and
l
.
product_code
)
if
seller_line
and
seller_line
[
0
]
.
product_code
:
code
=
seller_line
[
0
]
.
product_code
origin_code
=
'supplier'
elif
self
.
barcode
:
code
=
self
.
barcode
origin_code
=
'barcode'
if
not
code
:
raise
ValidationError
(
_
(
"No code for this product
%
s!"
)
%
self
.
name
)
return
code
,
origin_code
intercoop_addons/coop_edi_purchase_diapar/models/purchase.py
0 → 100644
View file @
eb41ec18
# -*- coding: utf-8 -*-
# Copyright (C) 2016-2021: Druidoo (<http://www.druidoo.net/>)
# Copyright (C) 2021-today: Cooperatic (<http://cooperatic.fr/>)
# @author: Druidoo
# @author: Cooperatic
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html
from
openerp
import
models
,
api
,
fields
,
_
from
openerp.exceptions
import
ValidationError
import
time
import
logging
_logger
=
logging
.
getLogger
(
__name__
)
class
PurchaseOrder
(
models
.
Model
):
_inherit
=
'purchase.order'
date_planned
=
fields
.
Datetime
(
string
=
'Scheduled Date'
,
compute
=
'_compute_date_planned'
,
required
=
True
,
index
=
True
,
oldname
=
'minimum_planned_date'
,
store
=
True
,
copy
=
True
)
@api.multi
def
_consolidate_products
(
self
):
"""
Consolidate order lines by product.
Raise if Tax or price different.
@return: dict {product_id(record):[code_or_ean, qty, nb_of_packages price, taxes(records)]}
"""
self
.
ensure_one
()
if
not
self
.
order_line
:
raise
ValidationError
(
_
(
"No lines in this order
%
s!"
)
%
self
.
name
)
lines
=
{}
for
line
in
self
.
order_line
:
if
line
.
product_id
in
lines
:
if
line
.
taxes_id
!=
lines
[
line
.
product_id
][
'taxes_id'
]:
raise
ValidationError
(
_
(
"Check taxes for lines with product
%
s!"
)
%
line
.
product_id
.
name
)
if
line
.
price_unit
!=
lines
[
line
.
product_id
][
'price_unit'
]:
raise
ValidationError
(
_
(
"Check price for lines with product
%
s!"
)
%
line
.
product_id
.
name
)
lines
[
line
.
product_id
][
'quantity'
]
+=
line
.
product_qty
else
:
code
,
origin_code
=
line
.
product_id
.
_get_supplier_code_or_ean
(
line
.
partner_id
)
values
=
{
'code'
:
code
,
'origin_code'
:
origin_code
,
'quantity'
:
line
.
product_qty
,
'package_to_order'
:
line
.
product_qty_package
,
'price_unit'
:
line
.
price_unit
,
'taxes_id'
:
line
.
taxes_id
}
lines
.
update
({
line
.
product_id
:
values
})
return
lines
@api.multi
def
_get_data
(
self
,
order_lines
):
"""
Order lines are parsed to generate core date (Product and Nb of packages)
"""
self
.
ensure_one
()
data
=
""""""
try
:
for
key
,
val
in
order_lines
.
items
():
field_name
=
'E'
if
val
[
'origin_code'
]
==
'supplier'
:
field_name
=
'D'
data
+=
field_name
+
val
[
'code'
]
+
str
(
int
(
val
[
'package_to_order'
]))
.
zfill
(
3
)
except
Exception
as
e
:
_logger
.
error
(
"Error _get_data (EDI PurchaseOrder) :
%
s"
,
str
(
e
))
return
data
@api.multi
def
_prepare_data_lines
(
self
,
lines
,
edi
):
"""
Data lines to send
"""
config_obj
=
self
.
env
[
'ir.config_parameter'
]
self
.
ensure_one
()
data
=
None
compact_data
=
self
.
_get_data
(
lines
)
if
len
(
compact_data
)
>
0
:
delivry_date_code
=
'C'
+
edi
.
get_datetime_format_ddmmyyyy
(
self
.
date_planned
)
data
=
"""
%
sA
%
sB
%
s
%
s
%
s"""
%
(
edi
.
constant_file_start
,
config_obj
.
get_param
(
'edi.diapar.vrp_code'
),
config_obj
.
get_param
(
'edi.diapar.customer_code'
),
delivry_date_code
+
compact_data
,
edi
.
constant_file_end
)
return
data
@api.multi
def
_process_send_ftp
(
self
):
"""
Process Send FTP
"""
self
.
ensure_one
()
ecs_obj
=
self
.
env
[
'diapar.edi.config.system'
]
config_obj
=
self
.
env
[
'ir.config_parameter'
]
# Consolidated lines
lines
=
self
.
_consolidate_products
()
now
=
time
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
day
=
now
.
split
(
' '
)[
0
]
.
replace
(
'-'
,
''
)
hour
=
now
.
split
(
' '
)[
1
]
.
replace
(
':'
,
''
)
# Prepare data file
data_lines
=
self
.
_prepare_data_lines
(
lines
,
ecs_obj
)
# Params
filename
=
'LD'
+
day
+
'H'
+
hour
+
'.C99'
distant_folder_path
=
ecs_obj
.
csv_relative_in_path
local_folder_path
=
config_obj
.
get_param
(
'edi.local_folder_path'
)
has_been_sent
=
False
try
:
# Open FTP
ftp
=
ecs_obj
.
ftp_connection_open
()
# Send
ecs_obj
.
ftp_connection_push_order_file
(
ftp
,
distant_folder_path
,
local_folder_path
,
filename
,
data_lines
,
encoding
=
'utf-8'
)
# Close FTP
ecs_obj
.
ftp_connection_close
(
ftp
)
has_been_sent
=
True
except
Exception
as
e
:
_logger
.
error
(
"Error while sending EDI
%
s :
%
s"
,
filename
,
str
(
e
))
# Log
self
.
env
[
'purchase.edi.log'
]
.
create_log_history
(
_
(
'Orders interface'
),
sent
=
has_been_sent
)
_logger
.
info
(
"EDI PurchaseOrder filename :
%
s"
,
filename
)
return
True
@api.multi
def
button_confirm
(
self
):
"""
Override: Send FTP.
"""
res
=
super
(
PurchaseOrder
,
self
)
.
button_confirm
()
for
order
in
self
.
filtered
(
lambda
l
:
l
.
partner_id
.
is_edi
):
order
.
_process_send_ftp
()
return
res
intercoop_addons/coop_edi_purchase_diapar/models/purchase_edi_log.py
0 → 100644
View file @
eb41ec18
# -*- coding: utf-8 -*-
# Copyright (C) 2016-2021: Druidoo (<http://www.druidoo.io/>)
# Copyright (C) 2021-Today: Cooperatic (<http://cooperatic.fr/>)
# @author: Druidoo
# @author: Cooperatic
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html
from
openerp
import
models
,
api
,
fields
class
PurchaseEdiLog
(
models
.
Model
):
_name
=
'purchase.edi.log'
_inherit
=
'ir.needaction_mixin'
_order
=
'log_date desc, id desc'
log_date
=
fields
.
Datetime
(
string
=
"Log Date"
,
required
=
True
)
user_id
=
fields
.
Many2one
(
comodel_name
=
"res.users"
,
string
=
"User"
)
name
=
fields
.
Char
(
string
=
"Interface"
,
required
=
True
)
sent
=
fields
.
Boolean
(
string
=
"Successfull ?"
)
# View Section
def
_needaction_count
(
self
,
cr
,
uid
,
domain
=
None
,
context
=
None
):
return
len
(
self
.
search
(
cr
,
uid
,
[(
'sent'
,
'='
,
False
)],
context
=
context
))
@api.model
def
create_log_history
(
self
,
supplier_interface
,
edi_system
=
None
,
sent
=
False
):
return
self
.
create
({
'user_id'
:
self
.
env
.
user
.
id
,
'log_date'
:
fields
.
datetime
.
now
(),
'name'
:
supplier_interface
,
# 'edi_system_id': edi_system,
'sent'
:
sent
})
intercoop_addons/coop_edi_purchase_diapar/models/res_partner.py
0 → 100644
View file @
eb41ec18
# -*- coding: utf-8 -*-
# Copyright (C) 2016-2021: Druidoo (<http://www.druidoo.io/>)
# Copyright (C) 2021-Today: Cooperatic (<http://cooperatic.fr/>)
# @author: Druidoo
# @author: Cooperatic
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html
from
openerp
import
models
,
fields
class
ResPartner
(
models
.
Model
):
_inherit
=
'res.partner'
is_edi
=
fields
.
Boolean
(
string
=
"Is an EDI supplier"
)
is_prices_interface
=
fields
.
Boolean
(
string
=
"Supports prices interface"
)
intercoop_addons/coop_edi_purchase_diapar/security/ir.model.access.csv
0 → 100644
View file @
eb41ec18
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_model_diapar_edi_config_system_all,access_model_diapar_edi_config_system_all,model_diapar_edi_config_system,,1,0,0,0
access_model_diapar_edi_config_system_manager,access_model_diapar_edi_config_system_manager,model_diapar_edi_config_system,coop_edi_purchase_diapar.group_manager,1,1,1,1
,,,,,,,
access_model_purchase_edi_log_all,access_model_purchase_edi_log_all,model_purchase_edi_log,,1,1,1,0
access_model_purchase_edi_log_manager,access_model_purchase_edi_log_manager,model_purchase_edi_log,coop_edi_purchase_diapar.group_manager,1,1,1,1
intercoop_addons/coop_edi_purchase_diapar/security/ir_module_category.xml
0 → 100644
View file @
eb41ec18
<?xml version="1.0"?>
<odoo>
<record
model=
"ir.module.category"
id=
"category_supplier_edi"
>
<field
name=
"name"
>
Electronic data interchange
</field>
</record>
</odoo>
intercoop_addons/coop_edi_purchase_diapar/security/res_groups.xml
0 → 100644
View file @
eb41ec18
<?xml version="1.0"?>
<odoo>
<record
model=
"res.groups"
id=
"group_user"
>
<field
name=
"name"
>
EDI User
</field>
<field
name=
"category_id"
ref=
"category_supplier_edi"
/>
</record>
<record
model=
"res.groups"
id=
"group_manager"
>
<field
name=
"name"
>
EDI Manager
</field>
<field
name=
"implied_ids"
eval=
"[(6, False, [ref('group_user')])]"
/>
<field
name=
"category_id"
ref=
"category_supplier_edi"
/>
</record>
</odoo>
intercoop_addons/coop_edi_purchase_diapar/static/description/icon.png
0 → 100644
View file @
eb41ec18
4.38 KB
intercoop_addons/coop_edi_purchase_diapar/views/actions.xml
0 → 100644
View file @
eb41ec18
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<data>
<record
id=
"action_purchase_edi_logs"
model=
"ir.actions.act_window"
>
<field
name=
"name"
>
Logs
</field>
<field
name=
"type"
>
ir.actions.act_window
</field>
<field
name=
"res_model"
>
purchase.edi.log
</field>
<field
name=
"view_type"
>
form
</field>
<field
name=
"view_mode"
>
tree,form
</field>
</record>
</data>
</odoo>
intercoop_addons/coop_edi_purchase_diapar/views/menus.xml
0 → 100644
View file @
eb41ec18
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<data>
<menuitem
id=
"menu_edi_config_root"
name=
"EDI Purchase"
parent=
"purchase.menu_purchase_config"
sequence=
"35"
/>
<menuitem
id=
"menu_purchase_edi_logs"
parent=
"menu_edi_config_root"
sequence=
"2"
action=
"action_purchase_edi_logs"
/>
</data>
</odoo>
intercoop_addons/coop_edi_purchase_diapar/views/purchase_edi_log_view.xml
0 → 100644
View file @
eb41ec18
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<data>
<record
id=
"view_purchase_edi_log_tree"
model=
"ir.ui.view"
>
<field
name=
"model"
>
purchase.edi.log
</field>
<field
name=
"arch"
type=
"xml"
>
<tree
string=
"EDI Log"
colors=
"gray:sent == True;"
>
<field
name=
"log_date"
/>
<field
name=
"sent"
/>
<field
name=
"name"
/>
</tree>
</field>
</record>
<record
id=
"view_purchase_edi_log_form"
model=
"ir.ui.view"
>
<field
name=
"model"
>
purchase.edi.log
</field>
<field
name=
"arch"
type=
"xml"
>
<form>
<header/>
<sheet>
<group>
<group>
<field
name=
"log_date"
/>
<field
name=
"sent"
/>
</group>
</group>
</sheet>
</form>
</field>
</record>
</data>
</odoo>
intercoop_addons/coop_edi_purchase_diapar/views/res_partner_view.xml
0 → 100644
View file @
eb41ec18
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record
id=
"view_partner_form_edi"
model=
"ir.ui.view"
>
<field
name=
"name"
>
res.partner.edi
</field>
<field
name=
"model"
>
res.partner
</field>
<field
name=
"inherit_id"
ref=
"coop_membership.view_partner_form"
/>
<field
name=
"arch"
type=
"xml"
>
<xpath
expr=
"//form/sheet/notebook/page[@name='sales_purchases']/group[@name='container_row_2']/group[@name='purchase']/field[@name='supplier']"
position=
"after"
>
<field
name=
"is_edi"
/>
</xpath>
</field>
</record>
</data>
</odoo>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment