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
d4477c71
Commit
d4477c71
authored
May 04, 2022
by
Damien Moulard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[REC] for grouped orders display order in list for ordering
parent
6cf814b0
Pipeline
#2170
passed with stage
in 1 minute 28 seconds
Changes
3
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
159 additions
and
132 deletions
+159
-132
reception_style.css
reception/static/css/reception_style.css
+5
-0
reception_index.js
reception/static/js/reception_index.js
+1
-3
reception_produits.js
reception/static/js/reception_produits.js
+153
-129
No files found.
reception/static/css/reception_style.css
View file @
d4477c71
...
...
@@ -188,6 +188,11 @@ div#container_edition {
padding-bottom
:
15px
;
}
.title_partner_key
{
font-weight
:
bolder
;
font-size
:
2rem
;
}
/* Accordion style */
/* Style the buttons that are used to open and close the accordion panel */
...
...
reception/static/js/reception_index.js
View file @
d4477c71
...
...
@@ -365,9 +365,7 @@ function display_orders_table() {
table_orders
.
clear
().
destroy
();
$
(
'#orders'
).
empty
();
}
for
(
let
j
in
orders
)
{
console
.
log
(
orders
[
j
].
id
);
}
table_orders
=
$
(
'#orders'
).
DataTable
({
data
:
orders
,
columns
:[
...
...
reception/static/js/reception_produits.js
View file @
d4477c71
...
...
@@ -282,6 +282,11 @@ function fetch_data() {
}
}
else
{
// Add order key in products
let
order_full_data
=
orders
[
order_data
.
id_po
];
order_data
.
po
[
i
].
order_key
=
order_full_data
.
key
;
// Add product to list_to_process
list_to_process
.
push
(
order_data
.
po
[
i
]);
...
...
@@ -310,7 +315,7 @@ function fetch_data() {
// Init Data & listeners
function
initLists
()
{
try
{
//
Un-dis
able validation buttons now the data's here
//
En
able validation buttons now the data's here
if
(
reception_status
==
"False"
)
{
document
.
getElementById
(
"valid_qty"
).
disabled
=
false
;
document
.
getElementById
(
"valid_all_qties"
).
disabled
=
false
;
...
...
@@ -344,62 +349,150 @@ function initLists() {
}
}
// Init table for to_process content
table_to_process
=
$
(
'#table_to_process'
).
DataTable
({
data
:
list_to_process
,
columns
:[
{
data
:
"product_id.0"
,
title
:
"id"
,
visible
:
false
},
{
data
:
"shelf_sortorder"
,
title
:
"Rayon"
,
className
:
"dt-body-center"
},
{
data
:
"product_id.1"
,
title
:
"Produit"
,
width
:
"45%"
,
render
:
function
(
data
,
type
,
full
)
{
// Add tooltip with barcode over product name
let
display_barcode
=
"Aucun"
;
if
(
'barcode'
in
full
)
{
display_barcode
=
full
.
barcode
;
}
let
columns_to_process
=
[];
let
columns_processed
=
[];
// In case of group orders, add "Order" as first column for ordering
if
(
Object
.
keys
(
orders
).
length
>
1
)
{
columns_to_process
.
push
({
data
:
"order_key"
,
title
:
"Comm- ande"
,
className
:
"dt-body-center"
});
}
return
'<div class="tooltip">'
+
data
+
' <span class="tooltiptext tt_twolines">Code barre : '
+
display_barcode
+
'</span> </div>'
;
columns_to_process
=
columns_to_process
.
concat
([
{
data
:
"product_id.0"
,
title
:
"id"
,
visible
:
false
},
{
data
:
"shelf_sortorder"
,
title
:
"Rayon"
,
className
:
"dt-body-center"
},
{
data
:
"product_id.1"
,
title
:
"Produit"
,
width
:
"45%"
,
render
:
function
(
data
,
type
,
full
)
{
// Add tooltip with barcode over product name
let
display_barcode
=
"Aucun"
;
if
(
'barcode'
in
full
)
{
display_barcode
=
full
.
barcode
;
}
return
'<div class="tooltip">'
+
data
+
' <span class="tooltiptext tt_twolines">Code barre : '
+
display_barcode
+
'</span> </div>'
;
}
},
{
data
:
"product_uom.1"
,
title
:
"Unité vente"
,
className
:
"dt-body-center"
,
orderable
:
false
},
{
data
:
"product_qty"
,
title
:
"Qté"
,
className
:
"dt-body-center"
,
visible
:
(
reception_status
==
"False"
)
},
{
data
:
"price_unit"
,
title
:
"Prix unit."
,
className
:
"dt-body-center"
,
visible
:
(
reception_status
==
"qty_valid"
)
},
{
title
:
"Editer"
,
defaultContent
:
"<a class='btn' id='toProcess_line_edit' href='#'><i class='far fa-edit'></i></a>"
,
className
:
"dt-body-center"
,
orderable
:
false
},
{
title
:
"Valider"
,
defaultContent
:
"<a class='btn' id='toProcess_line_valid' href='#'><i class='far fa-check-square'></i></a>"
,
className
:
"dt-body-center"
,
orderable
:
false
},
{
title
:
"Autres"
,
defaultContent
:
"<select class='select_product_action'><option value=''></option><option value='supplier_shortage'>Rupture fournisseur</option></select>"
,
className
:
"dt-body-center"
,
orderable
:
false
,
visible
:
display_autres
===
"True"
}
]);
columns_processed
=
[
{
data
:
"row_counter"
,
title
:
"row_counter"
,
visible
:
false
},
// Hidden counter to display last row first
{
data
:
"shelf_sortorder"
,
title
:
"Rayon"
,
className
:
"dt-body-center"
},
{
data
:
"product_id.1"
,
title
:
"Produit"
,
width
:
"55%"
,
render
:
function
(
data
,
type
,
full
)
{
// Add tooltip with barcode over product name
let
display_barcode
=
"Aucun"
;
if
(
'barcode'
in
full
)
{
display_barcode
=
full
.
barcode
;
}
let
display
=
'<div class="tooltip">'
+
data
+
' <span class="tooltiptext tt_twolines">Code barre : '
+
display_barcode
+
'</span> </div>'
;
if
(
full
.
supplier_shortage
)
{
display
+=
' <div class="tooltip"><i class="fas fa-info-circle"></i>'
+
' <span class="tooltiptext tt_twolines">Rupture fournisseur'
+
'</span> </div>'
;
}
return
display
;
}
},
{
data
:
"product_uom.1"
,
title
:
"Unité vente"
,
className
:
"dt-body-center"
,
orderable
:
false
},
{
data
:
"product_qty"
,
title
:
"Qté"
,
className
:
"dt-head-center dt-body-center"
,
visible
:
(
reception_status
==
"False"
),
render
:
function
(
data
,
type
,
full
)
{
let
disp
=
[
full
.
product_qty
,
(
full
.
old_qty
!==
undefined
)?
full
.
old_qty
:
full
.
product_qty
].
join
(
"/"
);
return
disp
;
},
{
data
:
"product_uom.1"
,
title
:
"Unité vente"
,
className
:
"dt-body-center"
,
orderable
:
false
},
{
data
:
"product_qty"
,
title
:
"Qté"
,
className
:
"dt-body-center"
,
visible
:
(
reception_status
==
"False"
)
},
{
data
:
"price_unit"
,
title
:
"Prix unit."
,
className
:
"dt-body-center"
,
visible
:
(
reception_status
==
"qty_valid"
)
},
{
title
:
"Editer"
,
defaultContent
:
"<a class='btn' id='toProcess_line_edit' href='#'><i class='far fa-edit'></i></a>"
,
className
:
"dt-body-center"
,
orderable
:
false
},
{
title
:
"Valider"
,
defaultContent
:
"<a class='btn' id='toProcess_line_valid' href='#'><i class='far fa-check-square'></i></a>"
,
className
:
"dt-body-center"
,
orderable
:
false
},
{
title
:
"Autres"
,
defaultContent
:
"<select class='select_product_action'><option value=''></option><option value='supplier_shortage'>Rupture fournisseur</option></select>"
,
className
:
"dt-body-center"
,
orderable
:
false
,
visible
:
display_autres
===
"True"
orderable
:
false
},
{
data
:
"price_unit"
,
title
:
"Prix unit"
,
className
:
"dt-body-center"
,
visible
:
(
reception_status
==
"qty_valid"
)
},
{
title
:
"Editer"
,
defaultContent
:
"<a class='btn' id='processed_line_edit' href='#'><i class='far fa-edit'></i></a>"
,
className
:
"dt-body-center"
,
orderable
:
false
},
{
title
:
"Autres"
,
className
:
"dt-body-center"
,
orderable
:
false
,
visible
:
display_autres
===
"True"
,
render
:
function
(
data
,
type
,
full
)
{
let
disabled
=
(
full
.
supplier_shortage
)
?
"disabled"
:
''
;
return
"<select class='select_product_action'>"
+
"<option value=''></option>"
+
"<option value='supplier_shortage' "
+
disabled
+
">Rupture fournisseur</option>"
+
"</select>"
;
}
],
}
];
console
.
log
(
columns_to_process
);
// Init table for to_process content
table_to_process
=
$
(
'#table_to_process'
).
DataTable
({
data
:
list_to_process
,
columns
:
columns_to_process
,
rowId
:
"product_id.0"
,
order
:
[
[
...
...
@@ -413,81 +506,11 @@ function initLists() {
dom
:
'lrtip'
,
// Remove the search input from that table
language
:
{
url
:
'/static/js/datatables/french.json'
}
});
// Init table for processed content
table_processed
=
$
(
'#table_processed'
).
DataTable
({
data
:
list_processed
,
columns
:[
{
data
:
"row_counter"
,
title
:
"row_counter"
,
visible
:
false
},
// Hidden counter to display last row first
{
data
:
"shelf_sortorder"
,
title
:
"Rayon"
,
className
:
"dt-body-center"
},
{
data
:
"product_id.1"
,
title
:
"Produit"
,
width
:
"55%"
,
render
:
function
(
data
,
type
,
full
)
{
// Add tooltip with barcode over product name
let
display_barcode
=
"Aucun"
;
if
(
'barcode'
in
full
)
{
display_barcode
=
full
.
barcode
;
}
let
display
=
'<div class="tooltip">'
+
data
+
' <span class="tooltiptext tt_twolines">Code barre : '
+
display_barcode
+
'</span> </div>'
;
if
(
full
.
supplier_shortage
)
{
display
+=
' <div class="tooltip"><i class="fas fa-info-circle"></i>'
+
' <span class="tooltiptext tt_twolines">Rupture fournisseur'
+
'</span> </div>'
;
}
return
display
;
}
},
{
data
:
"product_uom.1"
,
title
:
"Unité vente"
,
className
:
"dt-body-center"
,
orderable
:
false
},
{
data
:
"product_qty"
,
title
:
"Qté"
,
className
:
"dt-head-center dt-body-center"
,
visible
:
(
reception_status
==
"False"
),
render
:
function
(
data
,
type
,
full
)
{
let
disp
=
[
full
.
product_qty
,
(
full
.
old_qty
!==
undefined
)?
full
.
old_qty
:
full
.
product_qty
].
join
(
"/"
);
return
disp
;
},
orderable
:
false
},
{
data
:
"price_unit"
,
title
:
"Prix unit"
,
className
:
"dt-body-center"
,
visible
:
(
reception_status
==
"qty_valid"
)
},
{
title
:
"Editer"
,
defaultContent
:
"<a class='btn' id='processed_line_edit' href='#'><i class='far fa-edit'></i></a>"
,
className
:
"dt-body-center"
,
orderable
:
false
},
{
title
:
"Autres"
,
className
:
"dt-body-center"
,
orderable
:
false
,
visible
:
display_autres
===
"True"
,
render
:
function
(
data
,
type
,
full
)
{
let
disabled
=
(
full
.
supplier_shortage
)
?
"disabled"
:
''
;
return
"<select class='select_product_action'>"
+
"<option value=''></option>"
+
"<option value='supplier_shortage' "
+
disabled
+
">Rupture fournisseur</option>"
+
"</select>"
;
}
}
],
columns
:
columns_processed
,
rowId
:
"product_id.0"
,
order
:
[
[
...
...
@@ -1657,7 +1680,7 @@ function init_dom(partners_display_data) {
};
}
dbc
.
bulkDocs
(
Object
.
values
(
orders
)).
then
((
response
)
=>
{
dbc
.
bulkDocs
(
Object
.
values
(
orders
)).
then
(()
=>
{
back
();
})
.
catch
((
err
)
=>
{
...
...
@@ -1964,12 +1987,13 @@ $(document).ready(function() {
include_docs
:
true
}).
then
(
function
(
result
)
{
// for each order in the group
for
(
let
order_id
of
group_ids
)
{
for
(
let
i
in
group_ids
)
{
// find order
let
order_id
=
group_ids
[
i
];
let
order
=
result
.
rows
.
find
(
el
=>
el
.
id
==
'order_'
+
order_id
);
order
=
order
.
doc
;
order
.
key
=
parseInt
(
i
)
+
1
;
orders
[
order_id
]
=
order
;
// Add each order's already updated and validated products to common list
...
...
@@ -1982,7 +2006,7 @@ $(document).ready(function() {
}
// Prepare data to display in 'partner name' area
partners_display_data
.
push
(
order
[
'partner'
]
+
' du '
+
order
[
'date_order'
]
);
partners_display_data
.
push
(
`<span class="title_partner_key">
${
order
.
key
}
.</span>
${
order
.
partner
}
du
${
order
.
date_order
}
`
);
}
// Set current reception status: take first order's
...
...
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