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 26e8cb7c
authored
Sep 20, 2019
by
Tatang
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
purchase payment
1 parent
6aa5f382
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
104 additions
and
40 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 @
26e8cb7
...
...
@@ -4,6 +4,7 @@ from deform import widget, Form, ValidationFailure
from
opensipkd.base.views
import
DataTables
from
pyramid.httpexceptions
import
HTTPFound
from
pyramid.view
import
view_config
from
sqlalchemy
import
case
from
sqlalchemy.orm
import
aliased
from
.
import
BaseView
...
...
@@ -12,7 +13,7 @@ from opensipkd.base.tools import format_json
from
opensipkd.base.tools.db
import
column_concat
status_payment
=
(
(
-
1
,
'--Semua--'
),
(
9999
,
'--Semua--'
),
(
0
,
'Pending'
),
(
1
,
'Sukses'
),
(
2
,
'Batal'
),
...
...
@@ -40,7 +41,7 @@ class ViewData(BaseView):
params
=
{
'form'
:
form
,
'status_payment'
:
[
s
for
k
,
s
in
status_payment
if
k
>
-
1
],
'status_payment'
:
[
s
for
k
,
s
in
status_payment
if
k
!=
9999
],
'columns'
:
[
dict
(
title
=
"ID"
),
dict
(
title
=
"No. Invoice"
),
...
...
@@ -79,7 +80,7 @@ class ViewData(BaseView):
url_dict
=
request
.
matchdict
act
=
url_dict
[
'act'
]
if
act
==
"grid"
:
status
=
-
1
status
=
9999
if
'status'
in
request
.
params
:
status
=
int
(
request
.
params
[
'status'
])
...
...
@@ -100,12 +101,20 @@ class ViewData(BaseView):
),
ColumnDT
(
vendor
.
nama
,
mData
=
'vendor'
),
ColumnDT
(
PartnerPay
.
amt_sell
,
mData
=
'amount'
),
ColumnDT
(
PartnerPay
.
status
,
mData
=
'status'
),
ColumnDT
(
case
(
[
(
PartnerPay
.
status
<=
0
,
0
)
],
else_
=
PartnerPay
.
status
),
mData
=
'status'
),
]
query
=
DBSession
.
query
()
.
select_from
(
PartnerPay
)
\
.
join
(
vendor
,
vendor
.
id
==
PartnerPay
.
vendor_id
)
\
.
join
(
customer
,
customer
.
id
==
PartnerPay
.
customer_id
)
if
status
>
-
1
:
if
status
!=
9999
:
if
status
<=
0
:
query
=
query
.
filter
(
PartnerPay
.
status
<=
status
)
else
:
query
=
query
.
filter
(
PartnerPay
.
status
==
status
)
row_table
=
DataTables
(
request
.
GET
,
query
,
columns
)
return
row_table
.
output_result
()
...
...
src/agratek/api/merchant/views/purchase_list.py
View file @
26e8cb7
...
...
@@ -4,14 +4,21 @@ from deform import widget, Form, ValidationFailure
from
opensipkd.base.views
import
DataTables
from
pyramid.httpexceptions
import
HTTPFound
from
pyramid.view
import
view_config
from
sqlalchemy
import
func
from
sqlalchemy
import
func
,
case
from
.
import
BaseView
from
..models
import
(
DBSession
,
H2hArInvoice
,
H2hArInvoiceDet
,
Partner
)
from
..models
import
(
DBSession
,
H2hArInvoice
,
H2hArInvoiceDet
,
Partner
,
Produk
)
from
opensipkd.base.tools
import
format_json
status_purchase
=
(
(
9999
,
'--Semua--'
),
(
0
,
'Pending'
),
(
1
,
'Sukses'
),
(
2
,
'Batal'
),
)
invoice_type
=
(
(
0
,
'--
None
--'
),
(
0
,
'--
Semua
--'
),
(
1
,
'Payment'
),
(
2
,
'Register'
),
)
...
...
@@ -30,7 +37,15 @@ class ViewData(BaseView):
inv_type
=
colander
.
SchemaNode
(
colander
.
Integer
(),
default
=
1
,
oid
=
"inv_type"
,
widget
=
widget
.
SelectWidget
(
values
=
invoice_type
,
css_class
=
'form-toolbar'
)
oid
=
"inv_type"
,
widget
=
widget
.
SelectWidget
(
values
=
invoice_type
,
css_class
=
'form-toolbar'
),
title
=
"Jenis"
)
status
=
colander
.
SchemaNode
(
colander
.
String
(),
oid
=
"status"
,
widget
=
widget
.
SelectWidget
(
values
=
status_purchase
,
css_class
=
'form-toolbar'
),
title
=
"Status"
)
toolbar
=
ToolbarSchema
(
Validator
=
form_validator
)
...
...
@@ -40,17 +55,24 @@ class ViewData(BaseView):
params
=
{
'form'
:
form
,
'invoice_type'
:
[
k
and
s
or
'-'
for
k
,
s
in
invoice_type
],
'status_purchase'
:
[
s
for
k
,
s
in
status_purchase
if
k
!=
9999
],
'columns'
:
[
dict
(
title
=
"ID"
),
dict
(
title
=
"No. Invoice"
),
dict
(
title
=
"Customer"
),
dict
(
title
=
"Jenis"
),
dict
(
title
=
"Produk"
),
dict
(
title
=
"Harga"
),
dict
(
title
=
"Status"
),
],
'column_data'
:
[
dict
(
data
=
"id"
,
width
=
"0px"
),
dict
(
data
=
"nomor"
,
width
=
"150px"
),
dict
(
data
=
"customer"
),
dict
(
data
=
"inv_type"
,
width
=
"100px"
),
dict
(
data
=
"produk"
),
dict
(
data
=
"harga"
,
width
=
"100px"
),
dict
(
data
=
"status"
,
width
=
"100px"
),
],
'buttons'
:
[
dict
(
id
=
"btn_view"
,
cls
=
"btn btn btn-primary"
,
title
=
"View"
),
...
...
@@ -75,16 +97,34 @@ class ViewData(BaseView):
act
=
url_dict
[
'act'
]
if
act
==
"grid"
:
jenis
=
'jenis'
in
request
.
params
and
request
.
params
[
'jenis'
]
and
int
(
request
.
params
[
'jenis'
])
or
None
status
=
9999
if
'status'
in
request
.
params
:
status
=
int
(
request
.
params
[
'status'
])
columns
=
[
ColumnDT
(
H2hArInvoice
.
id
,
mData
=
'id'
),
ColumnDT
(
H2hArInvoice
Det
.
id
,
mData
=
'id'
),
ColumnDT
(
H2hArInvoice
.
cust_inv_no
,
mData
=
'nomor'
),
ColumnDT
(
Partner
.
nama
,
mData
=
'customer'
),
ColumnDT
(
func
.
coalesce
(
H2hArInvoice
.
cust_inv_type
,
0
),
mData
=
'inv_type'
),
ColumnDT
(
Produk
.
nama
,
mData
=
'produk'
),
ColumnDT
(
H2hArInvoiceDet
.
amt_sell
,
mData
=
'harga'
),
ColumnDT
(
case
(
[
(
H2hArInvoiceDet
.
status
<=
0
,
0
)
],
else_
=
H2hArInvoiceDet
.
status
),
mData
=
'status'
),
]
query
=
DBSession
.
query
()
.
select_from
(
H2hArInvoice
)
\
.
join
(
Partner
,
Partner
.
id
==
H2hArInvoice
.
customer_id
)
query
=
DBSession
.
query
()
.
select_from
(
H2hArInvoice
)
\
.
join
(
H2hArInvoiceDet
,
H2hArInvoiceDet
.
ar_invoice_id
==
H2hArInvoice
.
id
)
\
.
join
(
Partner
,
Partner
.
id
==
H2hArInvoice
.
customer_id
)
\
.
join
(
Produk
,
Produk
.
id
==
H2hArInvoiceDet
.
produk_id
)
query
=
query
.
filter
(
H2hArInvoice
.
cust_inv_type
==
jenis
)
if
status
!=
9999
:
if
status
<=
0
:
query
=
query
.
filter
(
H2hArInvoiceDet
.
status
<=
status
)
else
:
query
=
query
.
filter
(
H2hArInvoiceDet
.
status
==
status
)
row_table
=
DataTables
(
request
.
GET
,
query
,
columns
)
return
row_table
.
output_result
()
...
...
@@ -95,19 +135,21 @@ class ViewData(BaseView):
request
=
self
.
req
url_dict
=
request
.
matchdict
view_id
=
url_dict
[
'id'
]
data
=
H2hArInvoice
.
query_id
(
id
=
view_id
)
.
first
()
data
=
H2hArInvoice
Det
.
query_id
(
id
=
view_id
)
.
first
()
params
=
dict
(
form
=
None
)
if
data
:
invoice
=
data
.
h2h_ar_invoice
customer
=
invoice
.
customer
form_list
=
(
(
'inv_no'
,
data
.
cust_inv_no
or
''
,
'text'
),
(
'customer'
,
data
.
customer
.
nama
,
'text'
),
(
'amount'
,
data
.
amount
or
0
,
'text'
),
(
'inv_no'
,
invoice
.
cust_inv_no
or
''
,
'text'
),
(
'customer'
,
customer
.
nama
,
'text'
),
(
'harga'
,
data
.
amt_sell
or
0
,
'text'
),
(
'inquiry'
,
format_json
(
data
.
inquiry
),
'textarea'
),
(
'payment'
,
format_json
(
data
.
payment
),
'textarea'
),
(
'advice'
,
format_json
(
data
.
advice
),
'textarea'
),
(
'notify'
,
format_json
(
data
.
notify
),
'textarea'
),
)
sm
=
colander
.
Schema
()
...
...
src/agratek/api/merchant/views/templates/payment/list.pt
View file @
26e8cb7
...
...
@@ -7,8 +7,11 @@
overflow-y: auto;
}
</style>
<div id="tmp-toolbar">
<div id="tmp-toolbar"
style="display: inline-block;"
>
<span tal:repeat="f params.form" tal:omit-tag="">
<label for="${f.oid}" class="control-label">
${f.title}
</label>
${structure:f.serialize()}
</span>
</div>
...
...
@@ -82,20 +85,20 @@
[10, 25, 50, 100],
[10, 25, 50, 100]
],
//
columns: [
//
{'data': 'id', 'width': '0px'},
//
{'data': 'nomor', 'width': '150px'},
//
{'data': 'customer'},
//
{'data': 'vendor'},
//
{'data': 'amount', 'width': '100px'},
//
{'data': 'status', 'width': '100px',
//
'render': function(data, type, full, meta) {
//
var st = ${params.status_payment};
//
return st[data];
//
}
//
}
//
],
columns: ${params.column_data},
columns: [
{'data': 'id', 'width': '0px'},
{'data': 'nomor', 'width': '150px'},
{'data': 'customer'},
{'data': 'vendor'},
{'data': 'amount', 'width': '100px'},
{'data': 'status', 'width': '100px',
'render': function(data, type, full, meta) {
var st = ${params.status_payment};
return st[data];
}
}
],
//
columns: ${params.column_data},
columnDefs: [{
searchable: false,
visible: false,
...
...
@@ -128,8 +131,7 @@
var tb = tb_array.join(' ');
$("div.toolbar").html(tb)
.attr('style', 'display:block; float: left; margin-bottom:6px; line-height:16px;');
$('select.form-toolbar').appendTo($("div.toolbar"));
$('tmp-toolbar').hide();
$('#tmp-toolbar').appendTo($("div.toolbar"));
//events
$('#table1 tbody').on('click', 'tr', function() {
...
...
src/agratek/api/merchant/views/templates/purchase/list.pt
View file @
26e8cb7
...
...
@@ -7,8 +7,11 @@
overflow-y: auto;
}
</style>
<div id="tmp-toolbar">
<div id="tmp-toolbar"
style="display: inline-block;"
>
<span tal:repeat="f params.form" tal:omit-tag="">
<label for="${f.oid}" class="control-label">
${f.title}
</label>
${structure:f.serialize()}
</span>
</div>
...
...
@@ -56,8 +59,9 @@
var oTableUrl = oTableUri + "/grid/act";
function getDataUrl() {
var opt = $('select#inv_type').val();
return oTableUrl + '?jenis=' + opt.toString();
var jns = $('select#inv_type').val();
var sts = $('select#status').val();
return oTableUrl + '?jenis=' + jns.toString() + '&status=' + sts.toString();
}
function getViewUrl(vid) {
...
...
@@ -91,6 +95,14 @@
var st = ${params.invoice_type};
return st[data];
}
},
{'data': 'produk'},
{'data': 'harga', 'width': '100px'},
{'data': 'status', 'width': '100px',
'render': function(data, type, full, meta) {
var st = ${params.status_purchase};
return st[data];
}
}
],
//columns: ${params.column_data},
...
...
@@ -126,8 +138,7 @@
var tb = tb_array.join(' ');
$("div.toolbar").html(tb)
.attr('style', 'display:block; float: left; margin-bottom:6px; line-height:16px;');
$('select.form-toolbar').appendTo($("div.toolbar"));
$('tmp-toolbar').hide();
$('#tmp-toolbar').appendTo($("div.toolbar"));
//events
$('#table1 tbody').on('click', 'tr', function() {
...
...
@@ -170,7 +181,7 @@
}
});
$('select#inv_type').on('change', function() {
$('select#inv_type
,select#status
').on('change', function() {
mID = 0;
oTable.ajax.url(getDataUrl()).load();
});
...
...
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