Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
T
third-party
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
2
Merge Requests
2
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
third-party
Commits
591d32cd
Commit
591d32cd
authored
Jul 12, 2021
by
François C.
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'ticket_397' into 'dev_cooperatic'
ticket_397 See merge request
!49
parents
7c90768f
fd9030f4
Pipeline
#1204
passed with stage
in 1 minute 24 seconds
Changes
5
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
111 additions
and
5 deletions
+111
-5
models.py
reception/models.py
+21
-1
reception_index.js
reception/static/js/reception_index.js
+1
-0
reception_produits.js
reception/static/js/reception_produits.js
+50
-3
urls.py
reception/urls.py
+2
-1
views.py
reception/views.py
+37
-0
No files found.
reception/models.py
View file @
591d32cd
...
@@ -31,12 +31,13 @@ class CagetteReception(models.Model):
...
@@ -31,12 +31,13 @@ class CagetteReception(models.Model):
pids
.
append
(
int
(
r
[
'purchase_id'
][
0
]))
pids
.
append
(
int
(
r
[
'purchase_id'
][
0
]))
if
len
(
pids
):
if
len
(
pids
):
f
=
[
"id"
,
"name"
,
"date_order"
,
"partner_id"
,
"date_planned"
,
"amount_untaxed"
,
"amount_total"
,
"x_reception_status"
]
f
=
[
"id"
,
"name"
,
"date_order"
,
"partner_id"
,
"date_planned"
,
"amount_untaxed"
,
"amount_total"
,
"x_reception_status"
,
'create_uid'
]
# Only get orders that need to be treated in Reception
# Only get orders that need to be treated in Reception
c
=
[[
'id'
,
'in'
,
pids
],
[
"x_reception_status"
,
"in"
,
[
False
,
'qty_valid'
,
'valid_pending'
,
'br_valid'
]]]
c
=
[[
'id'
,
'in'
,
pids
],
[
"x_reception_status"
,
"in"
,
[
False
,
'qty_valid'
,
'valid_pending'
,
'br_valid'
]]]
orders
=
api
.
search_read
(
'purchase.order'
,
c
,
f
)
orders
=
api
.
search_read
(
'purchase.order'
,
c
,
f
)
print
(
orders
)
except
Exception
as
e
:
except
Exception
as
e
:
print
(
str
(
e
))
print
(
str
(
e
))
return
orders
return
orders
...
@@ -48,6 +49,25 @@ class CagetteReception(models.Model):
...
@@ -48,6 +49,25 @@ class CagetteReception(models.Model):
def
get_order_lines_by_po
(
id_po
,
nullQty
=
False
):
def
get_order_lines_by_po
(
id_po
,
nullQty
=
False
):
"""Return all purchases order lines linked with purchase order id in Odoo."""
"""Return all purchases order lines linked with purchase order id in Odoo."""
return
Order
(
id_po
)
.
get_lines
(
withNullQty
=
nullQty
)
return
Order
(
id_po
)
.
get_lines
(
withNullQty
=
nullQty
)
def
get_mail_create_po
(
id_po
):
"""Return name et email from id_po of order"""
try
:
api
=
OdooAPI
()
f
=
[
"create_uid"
]
c
=
[[
'id'
,
'='
,
id_po
]]
res
=
api
.
search_read
(
'purchase.order'
,
c
,
f
)
f
=
[
"email"
,
"display_name"
]
c
=
[[
'user_ids'
,
'='
,
int
(
res
[
0
][
'create_uid'
][
0
])]]
res
=
api
.
search_read
(
'res.partner'
,
c
,
f
)
except
Exception
as
e
:
print
(
str
(
e
))
return
res
def
implies_scale_file_generation
(
self
):
def
implies_scale_file_generation
(
self
):
answer
=
False
answer
=
False
...
...
reception/static/js/reception_index.js
View file @
591d32cd
...
@@ -288,6 +288,7 @@ function display_grouped_orders() {
...
@@ -288,6 +288,7 @@ function display_grouped_orders() {
if
(
table_orders
!==
null
)
{
if
(
table_orders
!==
null
)
{
var
display_something
=
true
;
var
display_something
=
true
;
$
(
'#groups_items'
).
empty
();
$
(
'#groups_items'
).
empty
();
let
groups_display_content
=
"<ul>"
;
let
groups_display_content
=
"<ul>"
;
...
...
reception/static/js/reception_produits.js
View file @
591d32cd
...
@@ -948,8 +948,9 @@ function editProductInfo (productToEdit, value = null, batch = false) {
...
@@ -948,8 +948,9 @@ function editProductInfo (productToEdit, value = null, batch = false) {
update_distant_order
(
productToEdit
.
id_po
);
update_distant_order
(
productToEdit
.
id_po
);
}
}
if
(
addition
)
{
if
(
addition
)
{
let
row
=
table_processed
.
row
(
$
(
'#'
+
productToEdit
.
product_id
[
0
]));
let
row
=
table_processed
.
row
(
$
(
'#'
+
productToEdit
.
product_id
[
0
]));
remove_from_processed
(
row
,
productToEdit
);
remove_from_processed
(
row
,
productToEdit
);
}
}
...
@@ -1215,6 +1216,39 @@ function send() {
...
@@ -1215,6 +1216,39 @@ function send() {
error_report_data
.
orders
.
push
(
orders
[
i
]);
error_report_data
.
orders
.
push
(
orders
[
i
]);
}
}
//Create list of articl with no barcode
no_barcode_list
=
[];
for
(
var
i
=
0
;
i
<
list_processed
.
length
;
i
++
)
{
if
(
list_processed
[
i
].
product_qty
!=
0
&&
(
list_processed
[
i
].
barcode
==
false
||
list_processed
[
i
].
barcode
==
null
||
list_processed
[
i
].
barcode
==
""
))
{
no_barcode_list
.
push
([
list_processed
[
i
][
"product_id"
][
0
],
list_processed
[
i
][
"product_id"
][
1
]
]);
}
}
data_send_no_barcode
=
{
"order"
:
orders
[
order_data
[
'id_po'
]],
"no_barcode_list"
:
no_barcode_list
};
// Send of articl with no barcode to mail send
if
(
no_barcode_list
.
length
>
0
)
{
$
.
ajax
({
type
:
"POST"
,
url
:
"../send_mail_no_barcode"
,
dataType
:
"json"
,
traditional
:
true
,
contentType
:
"application/json; charset=utf-8"
,
data
:
JSON
.
stringify
(
data_send_no_barcode
),
success
:
function
()
{},
error
:
function
()
{
alert
(
'Erreur dans l
\'
envoi des produite sont barre code.'
);
}
});
}
// Send request for error report
// Send request for error report
$
.
ajax
({
$
.
ajax
({
type
:
"POST"
,
type
:
"POST"
,
...
@@ -1257,7 +1291,7 @@ function send() {
...
@@ -1257,7 +1291,7 @@ function send() {
document
.
getElementById
(
"nothingToDo"
).
hidden
=
true
;
document
.
getElementById
(
"nothingToDo"
).
hidden
=
true
;
barcodes_to_print
=
true
;
barcodes_to_print
=
true
;
}
else
if
(
list_processed
[
i
].
barcode
==
false
||
list_processed
[
i
].
barcode
==
null
||
list_processed
[
i
].
barcode
==
""
)
{
}
/*
else if (list_processed[i].barcode == false || list_processed[i].barcode == null || list_processed[i].barcode == "") {
// Products with no barcode
// Products with no barcode
var node = document.createElement('li');
var node = document.createElement('li');
let textNode = document.createTextNode(list_processed[i]["product_id"][1]);
let textNode = document.createTextNode(list_processed[i]["product_id"][1]);
...
@@ -1269,7 +1303,20 @@ function send() {
...
@@ -1269,7 +1303,20 @@ function send() {
document.getElementById("barcodesEmpty").hidden = false;
document.getElementById("barcodesEmpty").hidden = false;
document.getElementById("nothingToDo").hidden = true;
document.getElementById("nothingToDo").hidden = true;
}
}
}
}*/
}
}
for
(
let
i
=
0
;
i
<
no_barcode_list
.
length
;
i
++
)
{
var
node
=
document
.
createElement
(
'li'
);
let
textNode
=
document
.
createTextNode
(
no_barcode_list
[
i
]);
node
.
appendChild
(
textNode
);
document
.
getElementById
(
'barcodesEmpty_list'
).
appendChild
(
node
);
if
(
document
.
getElementById
(
"barcodesEmpty"
).
hidden
)
{
document
.
getElementById
(
"barcodesEmpty"
).
hidden
=
false
;
document
.
getElementById
(
"nothingToDo"
).
hidden
=
true
;
}
}
}
}
...
...
reception/urls.py
View file @
591d32cd
...
@@ -16,5 +16,6 @@ urlpatterns = [
...
@@ -16,5 +16,6 @@ urlpatterns = [
url
(
r'^reception_qtiesValidated'
,
views
.
reception_qtiesValidated
),
url
(
r'^reception_qtiesValidated'
,
views
.
reception_qtiesValidated
),
url
(
r'^reception_pricesValidated'
,
views
.
reception_pricesValidated
),
url
(
r'^reception_pricesValidated'
,
views
.
reception_pricesValidated
),
# url(r'^update_order_status/([0-9]+)$', views.tmp_update_order_status),
# url(r'^update_order_status/([0-9]+)$', views.tmp_update_order_status),
url
(
r'^po_process_picking$'
,
views
.
po_process_picking
)
url
(
r'^po_process_picking$'
,
views
.
po_process_picking
),
url
(
r'^send_mail_no_barcode'
,
views
.
send_mail_no_barcode
)
]
]
reception/views.py
View file @
591d32cd
...
@@ -170,6 +170,7 @@ def update_orders(request):
...
@@ -170,6 +170,7 @@ def update_orders(request):
m
=
CagetteReception
(
order_id
)
m
=
CagetteReception
(
order_id
)
try
:
try
:
for
order_line
in
order
[
'po'
]:
for
order_line
in
order
[
'po'
]:
print
(
order_line
)
if
order_line
[
'indicative_package'
]
is
False
:
if
order_line
[
'indicative_package'
]
is
False
:
m
.
remove_package_restriction
(
order_line
)
m
.
remove_package_restriction
(
order_line
)
...
@@ -639,3 +640,39 @@ def reception_pricesValidated(request):
...
@@ -639,3 +640,39 @@ def reception_pricesValidated(request):
def
po_process_picking
(
request
):
def
po_process_picking
(
request
):
res
=
CagetteReception
.
process_enqueued_po_to_finalyze
()
res
=
CagetteReception
.
process_enqueued_po_to_finalyze
()
return
JsonResponse
(
res
,
safe
=
False
)
return
JsonResponse
(
res
,
safe
=
False
)
def
send_mail_no_barcode
(
request
):
"""
Receive json data with liste of product with no barcode
Send mail to order maker
"""
from
django.core.mail
import
send_mail
if
request
.
method
==
'POST'
:
data
=
None
try
:
myJson
=
request
.
body
data
=
json
.
loads
(
myJson
.
decode
())
data_partner
=
CagetteReception
.
get_mail_create_po
(
int
(
data
[
'order'
][
'id'
]))
msg
=
settings
.
NO_BARCODE_MAIL_MSG
for
barcode
in
data
[
"no_barcode_list"
]:
msg
=
msg
+
' -'
+
str
(
barcode
[
0
])
+
'---'
+
str
(
barcode
[
1
])
+
'
\n
'
send_mail
(
settings
.
NO_BARCODE_MAIL_SUBJECT
.
format
(
data
[
'order'
][
'name'
]),
msg
.
format
(
data_partner
[
0
][
'display_name'
],
data
[
'order'
][
'name'
],
data
[
'order'
][
'date_order'
],
data
[
'order'
][
'partner'
]),
settings
.
DEFAULT_FROM_EMAIL
,
[
data_partner
[
0
][
'email'
]],
fail_silently
=
False
,)
except
Exception
as
e1
:
coop_logger
.
error
(
"Send_mail_no_barcode : Unable to load data
%
s (
%
s)"
,
str
(
e1
),
str
(
myJson
))
print
(
str
(
e1
)
+
'
\n
'
+
str
(
myJson
))
return
JsonResponse
(
"ok"
,
safe
=
False
)
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