merhan.py 7 KB
# """
# Module proses:
# Save
# Invoice To Vendor
# Invoice To Customer
# """
# import os
# import re
# from datetime import datetime
#
# import colander
# import requests
# from deform import FileData, widget, Form, ValidationFailure
# from pyramid.httpexceptions import HTTPFound
# from pyramid.renderers import render_to_response
# from pyramid.view import view_config
#
# from . import BaseView #, save_file_upload
# from ..models import (DBSession, flush_row, save_row, Partner)
# from ..models import (Produk, ProdukCategory)
#
# from ..tools import (btn_next, date_from_str, get_ext,
#                      btn_save, btn_cancel, get_settings, btn_reset,
#                      dmy, btn_upload, btn_inquiry, btn_advice, btn_payment, get_random_number)
#
#
# def vendor():
#     return DBSession.query(Partner.id, Partner.nama)\
#         .filter(Partner.is_vendor == 1).all()
#
# def customer():
#     return DBSession.query(Partner.id, Partner.nama)\
#         .filter(Partner.is_customer == 1).all()
#
# def produk():
#     return DBSession.query(Produk.id, Produk.nama)\
#         .join(ProdukCategory, Produk.kategori_id==ProdukCategory.id)\
#         .filter(ProdukCategory.kode.in_('e-pulsa', 'e-voucher', 'e-payment')).all()
#
#
# @colander.deferred
# def deferred_vendor(node, kw):
#     values = kw.get('vendor', [])
#     return widget.SelectWidget(values=values)
#
#
# @colander.deferred
# def deferred_customer(node, kw):
#     values = kw.get('customer', [])
#     return widget.SelectWidget(values=values)
#
#
# @colander.deferred
# def deferred_produk(node, kw):
#     values = kw.get('produk', [])
#     return widget.SelectWidget(values=values)
#
#
# class PageSchema(colander.Schema):
#     customer_id = colander.SchemaNode(
#         colander.Integer(), title='Customer',
#         oid="customer_id", widget=deferred_customer)
#
#     produk_id = colander.SchemaNode(
#         colander.Integer(), title='Produk',
#         oid="produk_id", widget=deferred_produk)
#
#     destination = colander.SchemaNode(
#         colander.Integer(), title='No.Tujuan/ID Pelanggan',
#         oid="destination", widget=widget.TextInputWidget())
#
#     vendor_id = colander.SchemaNode(
#         colander.Integer(), title='Vendor',
#         oid="vendor_id", widget=deferred_produk)
#     trx_id = colander.SchemaNode(
#         colander.Integer(), title='TRX ID',
#         missing=colander.drop,
#         oid="trx_id",
#         # widget=widget.HiddenWidget()
#     )
#
#
# class PageEditSchema(PageSchema):
#
#     id = colander.SchemaNode(
#         colander.Integer(), title='ID',
#         missing=colander.drop,
#         oid="id", widget=widget.HiddenWidget())
#
#
# def form_validator(form, value):
#     pass
#
#
# def get_form(request, class_form, buttons=None, row=None):
#     schema = class_form(validator=form_validator)
#     schema = schema.bind(customer=customer(),
#                          vendor=vendor())
#     schema.request = request
#     if row:
#         schema.deserialize(row)
#     if not buttons:
#         buttons = (btn_inquiry, btn_reset)
#     return Form(schema, buttons=buttons)
#
#
# def upload_form(request, values, form):
#     docs = PartnerDocs.query() \
#         .filter(PartnerDocs.partner_id == values['partner_id'])
#     uploads = []
#     preview_url = "{host}/simkel/api_download?partner_id={partner_id}&jdoc_id={jdoc_id}"
#     for doc in docs:
#         uploads.append(dict(jdoc_id=doc.jdoc_id,
#                             upload=dict(filename=doc.doc_name,
#                                         uid=doc.id, )))
#
#     values['uploads'] = uploads
#     form = form.render(values)
#     return render_to_response('templates/form-upload.pt', dict(form=form),
#                               request=request)
#
#
# def route_list(request):
#     return HTTPFound(location=request.route_url('simkel-permohonan'))
#
#
# def save(values, row):
#     if not row:
#         row = Penduduk()
#         kode = re.sub("\D", "", values["kode"])
#         values['kode'] = kode
#         values['is_vendor'] = 0
#         values['is_customer'] = 1
#         row.create_uid = values['uid']
#         row.created = datetime.now()
#     else:
#         row.update_uid = values['uid']
#         row.updated = datetime.now()
#
#     row.from_dict(values)
#     flush(row)
#     return row
#
#
# def save_permohonan(values, partner, row=None):
#     if not row:
#         row = Permohonan()
#         row.partner_id = partner.id
#         row.jenis_id = values['jenis_id']
#         row.tgl_permohonan = datetime.now()
#         row.create_uid = values['uid']
#         row.created = datetime.now()
#     else:
#         row.update_uid = values['uid']
#         row.updated = datetime.now()
#
#     flush(row)
#     return row
#
#
# def save_request(request, values, row=None):
#     values['tgl_lahir'] = date_from_str(values['tgl_lahir'])
#     values['uid'] = request.user.id
#     row = save(values, row)
#     row_permohonan = Permohonan.query(). \
#         filter(Permohonan.partner_id == row.id,
#                Permohonan.status == 0,
#                Permohonan.jenis_id == values['jenis_id']). \
#         first()
#     if not row_permohonan:
#         row_permohonan = save_permohonan(values, row)
#
#     request.session.flash('Data %s Berhasil disimpan' % values['nama'])
#     return row_permohonan
#
#
# form_params_edit = dict(scripts="""
# $(document).ready(function(){
#     $(".tanggal").datepicker({format:"dd-mm-yyyy"});
#     $(".tanggal").attr("readonly", true);
#
# });
# """)
#
# form_params_view = dict(scripts="""
# $(document).ready(function(){
#     $("#nip_penerima, #nopel").attr("readonly", true);
# });
# """)
#
#
# def query_id(request):
#     id = request.matchdict['id']
#     return ApInvoice.query_id(id)
#
#
# class ViewHome(BaseView):
#     @view_config(route_name='api-merchant-doc',
#                  permission="api-merchant-doc",
#                  renderer='templates/merchan_doc.pt')
#     def view_merchant_doc(self):
#         return dict()
#
#     @view_config(route_name='api-merchant-add',
#                  permission="api-merchant-add",
#                  renderer='templates/form.pt')
#     def view_home(self):
#         request = self.req
#         session = self.ses
#         form = get_form(request, PageSchema, (btn_inquiry, btn_payment, btn_advice, btn_next))
#         form_params = dict(scripts=None)
#         settings = get_settings()
#         if request.POST:
#             if 'inquiry' in request.POST:
#                 controls = request.POST.items()
#                 try:
#                     c = form.validate(controls)
#                 except ValidationFailure as e:
#                     form.set_appstruct(e.cstruct)
#                     return dict(form=form, params=form_params)
#
#                 values = dict(c.items())
#                 values['trx_id'] = get_random_number(10)
#                 form.render(values)
#                 return dict(form=form, params=form_params)
#
#
#         # values = dict(partner_id=71)
#         # return upload_form(request, values)
#         return dict(form=form, params=form_params)