Commit 5588f645 by Tatang

purchase

1 parent 26e8cb7c
......@@ -4,7 +4,8 @@ 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, case
from sqlalchemy import case
from sqlalchemy.orm import aliased
from . import BaseView
from ..models import (DBSession, H2hArInvoice, H2hArInvoiceDet, Partner, Produk)
......@@ -17,11 +18,11 @@ status_purchase = (
(2, 'Batal'),
)
invoice_type = (
(0, '--Semua--'),
(1, 'Payment'),
(2, 'Register'),
)
# invoice_type = (
# (0, '--Semua--'),
# (1, 'Payment'),
# (2, 'Register'),
# )
def form_validator(form, value):
......@@ -34,13 +35,13 @@ class ViewData(BaseView):
renderer='templates/purchase/list.pt')
def view_list(self):
class ToolbarSchema(colander.Schema):
inv_type = colander.SchemaNode(
colander.Integer(),
default=1,
oid="inv_type",
widget=widget.SelectWidget(values=invoice_type, css_class='form-toolbar'),
title="Jenis"
)
# inv_type = colander.SchemaNode(
# colander.Integer(),
# default=1,
# oid="inv_type",
# widget=widget.SelectWidget(values=invoice_type, css_class='form-toolbar'),
# title="Jenis"
# )
status = colander.SchemaNode(
colander.String(),
oid="status",
......@@ -54,13 +55,13 @@ class ViewData(BaseView):
params = {
'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': [
dict(title="ID"),
dict(title="No. Invoice"),
dict(title="Customer"),
dict(title="Jenis"),
dict(title="Vendor"),
dict(title="Produk"),
dict(title="Harga"),
dict(title="Status"),
......@@ -69,7 +70,7 @@ class ViewData(BaseView):
dict(data="id", width="0px"),
dict(data="nomor", width="150px"),
dict(data="customer"),
dict(data="inv_type", width="100px"),
dict(data="vendor"),
dict(data="produk"),
dict(data="harga", width="100px"),
dict(data="status", width="100px"),
......@@ -96,16 +97,19 @@ class ViewData(BaseView):
url_dict = request.matchdict
act = url_dict['act']
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'])
vendor = aliased(Partner, name='vendor')
customer = aliased(Partner, name='customer')
columns = [
ColumnDT(H2hArInvoiceDet.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(customer.nama, mData='customer'),
ColumnDT(vendor.nama, mData='vendor'),
ColumnDT(Produk.nama, mData='produk'),
ColumnDT(H2hArInvoiceDet.amt_sell, mData='harga'),
ColumnDT(case(
......@@ -117,9 +121,10 @@ class ViewData(BaseView):
]
query = DBSession.query().select_from(H2hArInvoice) \
.join(H2hArInvoiceDet, H2hArInvoiceDet.ar_invoice_id == H2hArInvoice.id) \
.join(Partner, Partner.id == H2hArInvoice.customer_id) \
.join(customer, customer.id == H2hArInvoice.customer_id) \
.join(vendor, vendor.id == H2hArInvoiceDet.vendor_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)
......@@ -147,7 +152,7 @@ class ViewData(BaseView):
('customer', customer.nama, 'text'),
('harga', data.amt_sell or 0, 'text'),
('inquiry', format_json(data.inquiry), 'textarea'),
('payment', format_json(data.payment), 'textarea'),
('purchase', format_json(data.payment), 'textarea'),
('advice', format_json(data.advice), 'textarea'),
('notify', format_json(data.notify), 'textarea'),
)
......
......@@ -59,9 +59,8 @@
var oTableUrl = oTableUri + "/grid/act";
function getDataUrl() {
var jns = $('select#inv_type').val();
var sts = $('select#status').val();
return oTableUrl + '?jenis=' + jns.toString() + '&status=' + sts.toString();
return oTableUrl + '?status=' + sts.toString();
}
function getViewUrl(vid) {
......@@ -90,12 +89,7 @@
{'data': 'id', 'width': '0px'},
{'data': 'nomor', 'width': '150px'},
{'data': 'customer'},
{'data': 'inv_type', 'width': '100px',
'render': function(data, type, full, meta) {
var st = ${params.invoice_type};
return st[data];
}
},
{'data': 'vendor'},
{'data': 'produk'},
{'data': 'harga', 'width': '100px'},
{'data': 'status', 'width': '100px',
......@@ -181,7 +175,7 @@
}
});
$('select#inv_type,select#status').on('change', function() {
$('select#status').on('change', function() {
mID = 0;
oTable.ajax.url(getDataUrl()).load();
});
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!