Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Kunto
/
backoffice
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit e7c348a4
authored
Oct 11, 2019
by
yasir
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
update cetak CSV
1 parent
aacf6f6b
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
242 additions
and
11 deletions
src/agratek/api/merchant/views/payment_list.py
src/agratek/api/merchant/views/purchase_list.py
src/agratek/api/merchant/views/templates/payment/list.pt
src/agratek/api/merchant/views/templates/purchase/list.pt
src/agratek/api/merchant/views/payment_list.py
View file @
e7c348a
...
@@ -2,6 +2,7 @@ import colander
...
@@ -2,6 +2,7 @@ import colander
from
datatables
import
ColumnDT
from
datatables
import
ColumnDT
from
deform
import
widget
,
Form
,
ValidationFailure
from
deform
import
widget
,
Form
,
ValidationFailure
from
opensipkd.base.views
import
DataTables
from
opensipkd.base.views
import
DataTables
from
opensipkd.base.tools.report
import
csv_response
from
pyramid.httpexceptions
import
HTTPFound
from
pyramid.httpexceptions
import
HTTPFound
from
pyramid.view
import
view_config
from
pyramid.view
import
view_config
from
sqlalchemy
import
case
from
sqlalchemy
import
case
...
@@ -21,6 +22,71 @@ status_payment = (
...
@@ -21,6 +22,71 @@ status_payment = (
)
)
def
filter_tanggal
(
request
,
query
,
field
):
awal
=
request
.
session
[
'awal'
]
+
' 00:00:00'
#None
akhir
=
request
.
session
[
'akhir'
]
+
' 23:59:59'
#None
if
awal
and
akhir
:
tglawal
=
datetime
.
strptime
(
awal
,
'
%
d-
%
m-
%
Y
%
H:
%
M:
%
S'
)
tglakhir
=
datetime
.
strptime
(
akhir
,
'
%
d-
%
m-
%
Y
%
H:
%
M:
%
S'
)
query
=
query
.
filter
(
field
.
between
(
tglawal
,
tglakhir
))
return
query
def
query_csv
(
request
,
status
):
# ColumnDT(PartnerPay.id, mData='id'),
# ColumnDT(PartnerPay.cust_inv_no, mData='nomor'),
# ColumnDT(PartnerPay.created, mData = 'created'),
# ColumnDT(
# column_concat([
# PartnerPay.inv_cust_nm,
# ' - (',
# customer.nama,
# ')'
# ]),
# mData='customer'
# ),
# ColumnDT(vendor.nama, mData='vendor'),
# ColumnDT(PartnerPay.amt_sell, mData='amount'),
# ColumnDT(case(
# [
# (PartnerPay.status <= 0, 0)
# ],
# else_=PartnerPay.status
# ), mData='status'),
vendor
=
aliased
(
Partner
,
name
=
'vendor'
)
customer
=
aliased
(
Partner
,
name
=
'customer'
)
query
=
DBSession
.
query
(
PartnerPay
.
cust_inv_no
.
label
(
'Nomor_Invoice'
),
PartnerPay
.
created
.
label
(
'Tanggal'
),
column_concat
([
PartnerPay
.
inv_cust_nm
,
' - ('
,
customer
.
nama
,
')'
])
.
label
(
'Nama_Customer'
),
vendor
.
nama
.
label
(
'Nama_Vendor'
),
PartnerPay
.
amt_sell
.
label
(
'Harga'
),
case
(
[
(
PartnerPay
.
status
<=
0
,
0
)
],
else_
=
PartnerPay
.
status
)
.
label
(
'Status'
)
)
.
\
join
(
vendor
,
vendor
.
id
==
PartnerPay
.
vendor_id
)
\
.
join
(
customer
,
customer
.
id
==
PartnerPay
.
customer_id
)
if
status
!=
9999
:
if
status
<=
0
:
query
=
query
.
filter
(
H2hArInvoiceDet
.
status
<=
status
)
else
:
query
=
query
.
filter
(
H2hArInvoiceDet
.
status
==
status
)
filter_tanggal
(
request
,
query
,
PartnerPay
.
created
)
return
query
def
form_validator
(
form
,
value
):
def
form_validator
(
form
,
value
):
pass
pass
...
@@ -74,6 +140,7 @@ class ViewData(BaseView):
...
@@ -74,6 +140,7 @@ class ViewData(BaseView):
'buttons'
:
[
'buttons'
:
[
dict
(
id
=
"btn_view"
,
cls
=
"btn btn btn-primary"
,
title
=
"View"
),
dict
(
id
=
"btn_view"
,
cls
=
"btn btn btn-primary"
,
title
=
"View"
),
dict
(
id
=
"btn_close"
,
cls
=
"btn btn-danger"
,
title
=
"Tutup"
),
dict
(
id
=
"btn_close"
,
cls
=
"btn btn-danger"
,
title
=
"Tutup"
),
dict
(
id
=
"btn_csv"
,
cls
=
"btn btn-primary"
,
title
=
"CSV"
),
],
],
'route'
:
"/api/payment"
,
'route'
:
"/api/payment"
,
'scripts'
:
"""
'scripts'
:
"""
...
@@ -146,6 +213,35 @@ class ViewData(BaseView):
...
@@ -146,6 +213,35 @@ class ViewData(BaseView):
filter_tanggal
(
query
,
PartnerPay
.
created
)
filter_tanggal
(
query
,
PartnerPay
.
created
)
row_table
=
DataTables
(
request
.
GET
,
query
,
columns
)
row_table
=
DataTables
(
request
.
GET
,
query
,
columns
)
return
row_table
.
output_result
()
return
row_table
.
output_result
()
elif
act
==
"csv"
:
status
=
9999
if
'status'
in
request
.
params
:
status
=
int
(
request
.
params
[
'status'
])
query
=
query_csv
(
request
,
status
)
row
=
query
.
first
()
if
row
==
None
:
header
=
[
'Nomor_Invoice'
,
'Tanggal'
,
'Nama_Customer'
,
'Nama_Vendor'
,
'Harga'
,
'Status'
]
else
:
header
=
row
.
keys
()
rows
=
[]
for
item
in
query
.
all
():
rows
.
append
(
list
(
item
))
filename
=
'list_payment.csv'
value
=
{
'header'
:
header
,
'rows'
:
rows
,
}
return
csv_response
(
request
,
value
,
filename
)
@view_config
(
route_name
=
'api-payment-view'
,
@view_config
(
route_name
=
'api-payment-view'
,
permission
=
"api-payment-list"
,
permission
=
"api-payment-list"
,
...
...
src/agratek/api/merchant/views/purchase_list.py
View file @
e7c348a
...
@@ -2,6 +2,7 @@ import colander
...
@@ -2,6 +2,7 @@ import colander
from
datatables
import
ColumnDT
from
datatables
import
ColumnDT
from
deform
import
widget
,
Form
,
ValidationFailure
from
deform
import
widget
,
Form
,
ValidationFailure
from
opensipkd.base.views
import
DataTables
from
opensipkd.base.views
import
DataTables
from
opensipkd.base.tools.report
import
csv_response
from
pyramid.httpexceptions
import
HTTPFound
from
pyramid.httpexceptions
import
HTTPFound
from
pyramid.view
import
view_config
from
pyramid.view
import
view_config
from
sqlalchemy
import
case
from
sqlalchemy
import
case
...
@@ -24,12 +25,50 @@ status_purchase = (
...
@@ -24,12 +25,50 @@ status_purchase = (
# (1, 'Payment'),
# (1, 'Payment'),
# (2, 'Register'),
# (2, 'Register'),
# )
# )
def
filter_tanggal
(
request
,
query
,
field
):
awal
=
request
.
session
[
'awal'
]
+
' 00:00:00'
#None
akhir
=
request
.
session
[
'akhir'
]
+
' 23:59:59'
#None
if
awal
and
akhir
:
tglawal
=
datetime
.
strptime
(
awal
,
'
%
d-
%
m-
%
Y
%
H:
%
M:
%
S'
)
tglakhir
=
datetime
.
strptime
(
akhir
,
'
%
d-
%
m-
%
Y
%
H:
%
M:
%
S'
)
query
=
query
.
filter
(
field
.
between
(
tglawal
,
tglakhir
))
return
query
def
query_csv
(
request
,
status
):
vendor
=
aliased
(
Partner
,
name
=
'vendor'
)
customer
=
aliased
(
Partner
,
name
=
'customer'
)
query
=
DBSession
.
query
(
H2hArInvoice
.
cust_inv_no
.
label
(
'Nomor_Invoice'
),
H2hArInvoice
.
created
.
label
(
'Tanggal'
),
customer
.
nama
.
label
(
'Nama_Customer'
),
vendor
.
nama
.
label
(
'Nama_Vendor'
),
Produk
.
nama
.
label
(
'Nama_Produk'
),
H2hArInvoiceDet
.
amt_sell
.
label
(
'Harga'
),
case
(
[
(
H2hArInvoiceDet
.
status
<=
0
,
0
)
],
else_
=
H2hArInvoiceDet
.
status
)
.
label
(
'Status'
)
)
.
\
join
(
H2hArInvoiceDet
,
H2hArInvoiceDet
.
ar_invoice_id
==
H2hArInvoice
.
id
)
\
.
join
(
customer
,
customer
.
id
==
H2hArInvoice
.
customer_id
)
\
.
join
(
vendor
,
vendor
.
id
==
H2hArInvoiceDet
.
vendor_id
)
\
.
join
(
Produk
,
Produk
.
id
==
H2hArInvoiceDet
.
produk_id
)
if
status
!=
9999
:
if
status
<=
0
:
query
=
query
.
filter
(
H2hArInvoiceDet
.
status
<=
status
)
else
:
query
=
query
.
filter
(
H2hArInvoiceDet
.
status
==
status
)
filter_tanggal
(
request
,
query
,
H2hArInvoice
.
created
)
return
query
def
form_validator
(
form
,
value
):
def
form_validator
(
form
,
value
):
pass
pass
class
ViewData
(
BaseView
):
class
ViewData
(
BaseView
):
@view_config
(
route_name
=
'api-purchase-list'
,
@view_config
(
route_name
=
'api-purchase-list'
,
permission
=
"api-purchase-list"
,
permission
=
"api-purchase-list"
,
...
@@ -93,6 +132,7 @@ class ViewData(BaseView):
...
@@ -93,6 +132,7 @@ class ViewData(BaseView):
'buttons'
:
[
'buttons'
:
[
dict
(
id
=
"btn_view"
,
cls
=
"btn btn btn-primary"
,
title
=
"View"
),
dict
(
id
=
"btn_view"
,
cls
=
"btn btn btn-primary"
,
title
=
"View"
),
dict
(
id
=
"btn_close"
,
cls
=
"btn btn-danger"
,
title
=
"Tutup"
),
dict
(
id
=
"btn_close"
,
cls
=
"btn btn-danger"
,
title
=
"Tutup"
),
dict
(
id
=
"btn_csv"
,
cls
=
"btn btn-primary"
,
title
=
"CSV"
),
],
],
'route'
:
"/api/purchase"
,
'route'
:
"/api/purchase"
,
'scripts'
:
"""
'scripts'
:
"""
...
@@ -112,16 +152,7 @@ class ViewData(BaseView):
...
@@ -112,16 +152,7 @@ class ViewData(BaseView):
url_dict
=
request
.
matchdict
url_dict
=
request
.
matchdict
act
=
url_dict
[
'act'
]
act
=
url_dict
[
'act'
]
def
filter_tanggal
(
query
,
field
):
awal
=
request
.
session
[
'awal'
]
+
' 00:00:00'
#None
akhir
=
request
.
session
[
'akhir'
]
+
' 23:59:59'
#None
if
awal
and
akhir
:
tglawal
=
datetime
.
strptime
(
awal
,
'
%
d-
%
m-
%
Y
%
H:
%
M:
%
S'
)
tglakhir
=
datetime
.
strptime
(
akhir
,
'
%
d-
%
m-
%
Y
%
H:
%
M:
%
S'
)
query
=
query
.
filter
(
field
.
between
(
tglawal
,
tglakhir
))
return
query
if
act
==
"grid"
:
if
act
==
"grid"
:
# jenis = 'jenis' in request.params and request.params['jenis'] and int(request.params['jenis']) or None
# jenis = 'jenis' in request.params and request.params['jenis'] and int(request.params['jenis']) or None
...
@@ -159,9 +190,39 @@ class ViewData(BaseView):
...
@@ -159,9 +190,39 @@ class ViewData(BaseView):
query
=
query
.
filter
(
H2hArInvoiceDet
.
status
<=
status
)
query
=
query
.
filter
(
H2hArInvoiceDet
.
status
<=
status
)
else
:
else
:
query
=
query
.
filter
(
H2hArInvoiceDet
.
status
==
status
)
query
=
query
.
filter
(
H2hArInvoiceDet
.
status
==
status
)
filter_tanggal
(
query
,
H2hArInvoice
.
created
)
filter_tanggal
(
request
,
query
,
H2hArInvoice
.
created
)
row_table
=
DataTables
(
request
.
GET
,
query
,
columns
)
row_table
=
DataTables
(
request
.
GET
,
query
,
columns
)
return
row_table
.
output_result
()
return
row_table
.
output_result
()
elif
act
==
"csv"
:
status
=
9999
if
'status'
in
request
.
params
:
status
=
int
(
request
.
params
[
'status'
])
query
=
query_csv
(
request
,
status
)
row
=
query
.
first
()
if
row
==
None
:
header
=
[
'Nomor_Invoice'
,
'Tanggal'
,
'Nama_Customer'
,
'Nama_Produk'
,
'Harga'
,
'Status'
]
else
:
header
=
row
.
keys
()
rows
=
[]
for
item
in
query
.
all
():
rows
.
append
(
list
(
item
))
filename
=
'list_purchase.csv'
value
=
{
'header'
:
header
,
'rows'
:
rows
,
}
return
csv_response
(
request
,
value
,
filename
)
@view_config
(
route_name
=
'api-purchase-view'
,
@view_config
(
route_name
=
'api-purchase-view'
,
permission
=
"api-purchase-list"
,
permission
=
"api-purchase-list"
,
...
...
src/agratek/api/merchant/views/templates/payment/list.pt
View file @
e7c348a
...
@@ -220,6 +220,43 @@
...
@@ -220,6 +220,43 @@
var el = $('#table1_filter').parent();
var el = $('#table1_filter').parent();
el.addClass('col-md-3');
el.addClass('col-md-3');
el.removeClass('col-md-4');
el.removeClass('col-md-4');
function getCSV_url(){
var csvUrl = oTableUri + "/csv/act";
var opt = $('select#status').val();
var param = '';
var awalControl = $('#awal');
var akhirControl = $('#akhir');
var awal = awalControl.val();
var akhir = akhirControl.val();
var tgl = new Date();
var tgl_indo = tgl.getDate() + '-' + (tgl.getMonth()+1) + '-' + tgl.getFullYear();
if (awal == '' || awal == undefined){
awalControl.val(tgl_indo)
}
if (akhir == '' || akhir == undefined){
akhirControl.val(tgl_indo)
}
if (awal != '' && awal != undefined) {
param += '&awal=' + awal;
}
if (akhir != '' && akhir != undefined) {
param += '&akhir=' + akhir;
}
return csvUrl + '?status=' + opt.toString() + param;
}
$('#btn_csv').click(function() {
console.log(getCSV_url());
window.open(getCSV_url());
});
});
});
</script>
</script>
...
...
src/agratek/api/merchant/views/templates/purchase/list.pt
View file @
e7c348a
...
@@ -222,6 +222,43 @@
...
@@ -222,6 +222,43 @@
el.addClass('col-md-3');
el.addClass('col-md-3');
el.removeClass('col-md-4');
el.removeClass('col-md-4');
function getCSV_url(){
var csvUrl = oTableUri + "/csv/act";
var opt = $('select#status').val();
var param = '';
var awalControl = $('#awal');
var akhirControl = $('#akhir');
var awal = awalControl.val();
var akhir = akhirControl.val();
var tgl = new Date();
var tgl_indo = tgl.getDate() + '-' + (tgl.getMonth()+1) + '-' + tgl.getFullYear();
if (awal == '' || awal == undefined){
awalControl.val(tgl_indo)
}
if (akhir == '' || akhir == undefined){
akhirControl.val(tgl_indo)
}
if (awal != '' && awal != undefined) {
param += '&awal=' + awal;
}
if (akhir != '' && akhir != undefined) {
param += '&akhir=' + akhir;
}
return csvUrl + '?status=' + opt.toString() + param;
}
$('#btn_csv').click(function() {
console.log(getCSV_url());
window.open(getCSV_url());
});
});
});
</script>
</script>
...
...
Write
Preview
Markdown
is supported
Attach a file
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 post a comment