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