Commit 52e2c519 by lek

first udin

0 parents
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
env/
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*,cover
.hypothesis/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
target/
# Jupyter Notebook
.ipynb_checkpoints
# pyenv
.python-version
# celery beat schedule file
celerybeat-schedule
# SageMath parsed files
*.sage.py
# dotenv
.env
# virtualenv
.venv
venv/
ENV/
# Spyder project settings
.spyderproject
# Rope project settings
.ropeproject
*.ini
logo.png
aset/
aset_map/
bku/
bphtb/
core/
eis/
eis_sipkd/
esppt/
im/
integrasi/
ipad/
map/
opensipkd/static/img/logo.png
pbb/
pbbm/
pdl/
peta/
piutang/
sample/
simda/
sipkd/
sp2d/
webr/
pbb_pengurangan/
pengaduan/
pbbv1/
pdlv1/
imgw/
pbb_pelayanan/
\ No newline at end of file
SP2D ONLINE
\ No newline at end of file
from sqlalchemy import engine_from_config
from .models import SipkdDBSession, SipkdBase
def main(global_config, **settings):
url = 'sipkd.url' in settings and settings['sipkd.url'] and 'sipkd.' or 'sqlalchemy.'
engine = engine_from_config(settings, url)
SipkdDBSession.configure(bind=engine)
SipkdBase.metadata.bind = engine
from datetime import datetime
from sqlalchemy import (
Column,
Integer,
Text,
DateTime,
ForeignKey,
UniqueConstraint,
String,
SmallInteger
)
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm.exc import NoResultFound
from sqlalchemy.orm import (
scoped_session,
sessionmaker,
relationship,
backref
)
from zope.sqlalchemy import ZopeTransactionExtension
TABLE_ARGS = {'extend_existing':True,}
SipkdDBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension()))
SipkdBase = declarative_base()
from ...models import CommonModel, DefaultModel as BaseDefaultModel
from .referensi import (DaftUnit, Bendahara, Vendor, Bank, Pegawai, JenisPajak,)
from .rekening import (RekBiaya, RekPdpt, RekBelanja, )
from .sp2d import (Sp2d, Sp2dDetBiaya, Sp2dDetPdpt, Sp2dDetBelanja,
Sp2dDetBtl, Sp2dPajak)
from .skp import Skp, SkpDet
from .bku_tbp import BkuTbp
from .tbp import Tbp, TbpDet
from .skp_tbp import SkpTbp
from .jurnal import Jurnal
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm.exc import NoResultFound
from sqlalchemy.orm import (
scoped_session,
sessionmaker,
relationship,
backref
)
from zope.sqlalchemy import ZopeTransactionExtension
import transaction
from sqlalchemy import (Column, Integer, String, SmallInteger, UniqueConstraint,
Date, BigInteger, ForeignKey, func, extract, case, DateTime, Float)
SipkdDBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension()))
SipkdBase = declarative_base()
class SipkdRek4(SipkdBase):
__tablename__ = 'MATANGD'
__table_args__ = {'extend_existing':True}
mtgkey = Column(String(10), primary_key=True)
kdper = Column(String(30))
nmper = Column(String(200))
mtglevel = Column(String(2))
kdkhusus = Column(String(1))
type = Column(String(2))
@classmethod
def get_by_kode(cls, kode):
if kode[-1:]!='.':
kode = "%s." % kode
return SipkdDBSession.query(cls).filter_by(kdper = kode).first()
@classmethod
def get_key_by_kode(cls, kode):
row = cls.get_by_kode(kode)
return row and row.mtgkey
class SipkdUnit(SipkdBase):
__tablename__ = 'DAFTUNIT'
__table_args__ = {'extend_existing':True}
unitkey = Column(String(10), primary_key=True)
kdlevel = Column(String(2))
kdunit = Column(String(30))
nmunit = Column(String(200))
akrounit = Column(String(30))
alamat = Column(String(200))
telepon = Column(String(20))
type = Column(String(2))
@classmethod
def get_by_kode(cls, kode):
if kode[-1:]!='.':
kode = "%s." % kode
return SipkdDBSession.query(cls).filter_by(kdunit = kode).first()
@classmethod
def get_key_by_kode(cls, kode):
row = cls.get_by_kode(kode)
return row and row.unitkey or None
################
# TRANSAKSI SKP#
################
class SipkdSkp(SipkdBase):
__tablename__ = 'SKP'
__table_args__ = {'extend_existing':True}
#units = relationship("SipkdUnit", backref="skp",
# primaryjoin="SipkdUnit.UNITKEY==SipkdSkp.UNITKEY",
# foreign_keys='SipkdSkp.UNITKEY')
unitkey = Column(String(10), primary_key=True)
noskp = Column(String(50), primary_key=True)
kdstatus = Column(String(3))
keybend = Column(String(10))
npwpd = Column(String(10))
idxkode = Column(Integer)
tglskp = Column(DateTime)
penyetor = Column(String(100))
alamat = Column(String(200))
uraiskp = Column(String(254))
tgltempo = Column(DateTime)
bunga = Column(Float)
kenaikan = Column(Float)
tglvalid = Column(DateTime)
@classmethod
def query_kode(cls):
pass
class SipkdSkpDet(SipkdBase):
__tablename__ = 'SKPDET'
__table_args__ = {'extend_existing':True}
#skp = relationship("SipkdSkp", backref="SkpDet",
# primaryjoin="and_(SipkdSkp.UNITKEY==SipkdSkpDet.UNITKEY, "
# "SipkdSkp.NOSKP==SipkdSkpDet.NOSKP)",
# foreign_keys='SipkdSkpDet.UNITKEY, SipkdSkpDet.NOSKP')
mtgkey = Column(String(10), primary_key=True)
nojetra = Column(String(2), primary_key=True)
unitkey = Column(String(10), primary_key=True)
noskp = Column(String(50), primary_key=True)
nilai = Column(Float)
@classmethod
def query_kode(cls):
pass
################
# TRANSAKSI TBP#
################
class SipkdTbp(SipkdBase):
__tablename__ = 'TBP'
__table_args__ = {'extend_existing':True}
unitkey = Column(String(10), primary_key=True)
notbp = Column(String(50), primary_key=True)
keybend1 = Column(String(10))
kdstatus = Column(String(3) )
keybend2 = Column(String(10))
idxkode = Column(Integer)
tgltbp = Column(DateTime)
penyetor = Column(String(100))
alamat = Column(String(200))
uraitbp = Column(String(254))
tglvalid = Column(DateTime)
@classmethod
def query_kode(cls):
pass
class SipkdTbpDet(SipkdBase):
__tablename__ = 'TBPDETD'
__table_args__ = {'extend_existing':True}
mtgkey = Column(String(10), primary_key=True)
nojetra = Column(String(2), primary_key=True)
unitkey = Column(String(10), primary_key=True)
notbp = Column(String(50), primary_key=True)
nilai = Column(Float)
@classmethod
def query_kode(cls):
pass
class SipkdSkpTbp(SipkdBase):
__tablename__ = 'SKPTBP'
__table_args__ = {'extend_existing':True}
notbp = Column(String(50), primary_key=True)
unitkey = Column(String(10), primary_key=True)
noskp = Column(String(50), primary_key=True)
@classmethod
def query_kode(cls):
pass
class SipkdBkuTbp(SipkdBase):
__tablename__ = 'BKUTBP'
__table_args__ = {'extend_existing':True}
unitkey = Column(String(10), primary_key=True)
nobkuskpd = Column(String(30), primary_key=True)
notbp = Column(String(50))
idxttd = Column(String(10))
tglbkuskpd = Column(DateTime)
uraian = Column(String(254))
tglvalid = Column(DateTime)
keybend = Column(String(10))
@classmethod
def query_kode(cls):
pass
class SipkdJurnal(SipkdBase):
__tablename__ = 'JURNAL'
__table_args__ = {'extend_existing':True}
jbku = Column(String(2), primary_key=True)
kdstatus = Column(String(3), primary_key=True)
unitkey = Column(String(10), primary_key=True)
nobkuskpd = Column(String(100), primary_key=True)
nobukti = Column(String(100), primary_key=True)
tglbukti = Column(DateTime)
uraian = Column(String(4096))
kdprgrm = Column(String(10))
kdkeg = Column(String(10))
keybend = Column(String(10))
jns_jurnal = Column(String(2))
jmatangd = Column(String(1))
mtgkeyd = Column(String(10))
kdperd = Column(String(30))
nmperd = Column(String(1024))
nilaid = Column(Float)
jmatangk = Column(String(1))
mtgkeyk = Column(String(10))
kdperk = Column(String(30))
nmperk = Column(String(1024))
nilaik = Column(Float)
jurnal = Column(Integer)
tgl_valid = Column(DateTime)
@classmethod
def query_kode(cls):
pass
\ No newline at end of file
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm.exc import NoResultFound
from sqlalchemy.orm import (
relationship,
backref
)
from sqlalchemy import (Column, Integer, String, SmallInteger, UniqueConstraint,
Date, BigInteger, ForeignKey, func, extract, case, DateTime, Float)
from ..models import SipkdBase, SipkdDBSession
class BkuTbp(SipkdBase):
__tablename__ = 'bkutbp'
__table_args__ = {'extend_existing':True}
unitkey = Column(String(10), primary_key=True)
nobkuskpd = Column(String(30), primary_key=True)
notbp = Column(String(50))
idxttd = Column(String(10))
tglbkuskpd = Column(DateTime)
uraian = Column(String(254))
tglvalid = Column(DateTime)
keybend = Column(String(10))
\ No newline at end of file
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm.exc import NoResultFound
from sqlalchemy.orm import (
relationship,
backref
)
from sqlalchemy import (Column, Integer, String, SmallInteger, UniqueConstraint,
Date, BigInteger, ForeignKey, func, extract, case, DateTime, Float)
from ..models import SipkdBase, SipkdDBSession
class Jurnal(SipkdBase):
__tablename__ = 'jurnal'
__table_args__ = {'extend_existing':True}
jbku = Column(String(2), primary_key=True)
kdstatus = Column(String(3), primary_key=True)
unitkey = Column(String(10), primary_key=True)
nobkuskpd = Column(String(100), primary_key=True)
nobukti = Column(String(100), primary_key=True)
tglbukti = Column(DateTime)
uraian = Column(String(4096))
kdprgrm = Column(String(10))
kdkeg = Column(String(10))
keybend = Column(String(10))
jns_jurnal = Column(String(2))
jmatangd = Column(String(1))
mtgkeyd = Column(String(10))
kdperd = Column(String(30))
nmperd = Column(String(1024))
nilaid = Column(Float)
jmatangk = Column(String(1))
mtgkeyk = Column(String(10))
kdperk = Column(String(30))
nmperk = Column(String(1024))
nilaik = Column(Float)
jurnal = Column(Integer)
tgl_valid = Column(DateTime)
from datetime import datetime
from sqlalchemy import (
Column,
Integer,
Text,
DateTime,
ForeignKey,
UniqueConstraint,
ForeignKeyConstraint,
String,
SmallInteger,
Float,
)
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm.exc import NoResultFound
from sqlalchemy.orm import (
relationship,
backref
)
from ..models import SipkdBase, SipkdDBSession, TABLE_ARGS
class DaftUnit(SipkdBase):
__tablename__ = 'daftunit'
unitkey = Column(String(10), primary_key=True)
kdlevel = Column(String(2))
kdunit = Column(String(30))
nmunit = Column(String(200))
akrounit = Column(String(30))
alamat = Column(String(200))
telepon = Column(String(20))
type = Column(String(2))
__table_args__ = TABLE_ARGS
@classmethod
def get_key(cls, kdunit):
row = SipkdDBSession.query(cls.unitkey).filter_by(kdunit = kdunit).first()
return row and row[0] or None
class JenisPajak(SipkdBase):
__tablename__ = 'jpajak'
pjkkey = Column(String(10), primary_key=True)
kdpajak = Column(String(10))
nmpajak = Column(String(50))
rumuspjk = Column(String(100))
__table_args__ = TABLE_ARGS
class Bank(SipkdBase):
__tablename__ = 'daftbank'
kdbank = Column(String(2), primary_key=True)
nmbank = Column(String(50))
akbank = Column(String(20))
alamat = Column(String(200))
telepon = Column(String(20))
cabang = Column(String(50))
__table_args__ = TABLE_ARGS
class Pegawai(SipkdBase):
__tablename__ = 'pegawai'
nip = Column(String(30), primary_key=True)
kdgol = Column(String(10))
unitkey = Column(String(10))
nama = Column(String(100))
alamat = Column(String(200))
jabatan = Column(String(200))
pddk = Column(String(30))
__table_args__ = TABLE_ARGS
class Bendahara(SipkdBase):
__tablename__ = 'bend'
keybend = Column(String(10), primary_key=True)
jns_bend = Column(String(2))
nip = Column(String(30), ForeignKey(Pegawai.nip))
kdbank = Column(String(2), ForeignKey(Bank.kdbank))
unitkey = Column(String(10))
jab_bend = Column(String(100))
rekbend = Column(String(100))
saldobend = Column(Float)
NPWPbend = Column(String(30))
tglstopbend = Column(DateTime(timezone=False))
saldobendt = Column(Float)
pegawai = relationship("Pegawai", backref=backref("bendahara"))
bank = relationship("Bank", backref=backref("bendahara"))
__table_args__ = TABLE_ARGS
@classmethod
def get_key(cls, unitkey, nip):
row = SipkdDBSession.query(cls.keybend).filter_by(unitkey = unitkey,
nip = nip).first()
return row and row[0] or None
class Vendor(SipkdBase):
__tablename__ = 'daftphk3'
kdp3 = Column(String(10), primary_key=True)
nmp3 = Column(String(100))
nminst = Column(String(100))
norcp3 = Column(String(50))
nmbank = Column(String(50))
jnsusaha = Column(String(50))
alamat = Column(String(200))
telepon = Column(String(20))
NPWP = Column(String(30))
unitkey = Column(String(10))
__table_args__ = TABLE_ARGS
# /****** Script for SelectTopNRows command from SSMS ******/
# SELECT TOP 1000 [KEYBEND]
# FROM [V@LID49V6_2015].[dbo].[BEND]
# SELECT TOP 1000 [KDP3]
# ,[NMP3]
# ,[NMINST]
# ,[NORCP3]
# ,[NMBANK]
# ,[JNSUSAHA]
# ,[ALAMAT]
# ,[TELEPON]
# ,[NPWP]
# ,[UNITKEY]
# FROM [V@LID49V6_2015].[dbo].[DAFTPHK3]
from datetime import datetime
from sqlalchemy import (
Column,
Integer,
Text,
DateTime,
ForeignKey,
UniqueConstraint,
ForeignKeyConstraint,
String,
SmallInteger,
Float,
)
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm.exc import NoResultFound
from sqlalchemy.orm import (
relationship,
backref
)
from ..models import SipkdBase, SipkdDBSession, TABLE_ARGS
class RekBiaya(SipkdBase):
__tablename__ = 'matangb'
mtgkey = Column(String(10), primary_key=True)
kdper = Column(String(30))
nmper = Column(String(200))
mtglevel = Column(String(2))
kdkhusus = Column(String(1))
type = Column(String(2))
__table_args__ = TABLE_ARGS
@classmethod
def get_key(cls, kdper):
row = SipkdDBSession.query(cls.mtgkey).filter_by(kdper = kdper).first()
return row and row[0] or None
class RekPdpt(SipkdBase):
__tablename__ = 'matangd'
mtgkey = Column(String(10), primary_key=True)
kdper = Column(String(30))
nmper = Column(String(200))
mtglevel = Column(String(2))
kdkhusus = Column(String(1))
type = Column(String(2))
__table_args__ = TABLE_ARGS
@classmethod
def get_key(cls, kdper):
row = SipkdDBSession.query(cls.mtgkey).filter_by(kdper = kdper).first()
return row and row[0] or None
class RekBelanja(SipkdBase):
__tablename__ = 'matangr'
mtgkey = Column(String(10), primary_key=True)
kdper = Column(String(30))
nmper = Column(String(200))
mtglevel = Column(String(2))
kdkhusus = Column(String(1))
type = Column(String(2))
__table_args__ = TABLE_ARGS
@classmethod
def get_key(cls, kdper):
row = SipkdDBSession.query(cls.mtgkey).filter_by(kdper = kdper).first()
return row and row[0] or None
\ No newline at end of file
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm.exc import NoResultFound
from sqlalchemy.orm import (
relationship,
backref
)
from sqlalchemy import (Column, Integer, String, SmallInteger, UniqueConstraint,
Date, BigInteger, ForeignKey, func, extract, case, DateTime, Float)
from ..models import SipkdBase, SipkdDBSession, CommonModel
from ..models import DaftUnit, Bendahara, RekPdpt
################
# TRANSAKSI SKP#
################
class Skp(SipkdBase, CommonModel):
__tablename__ = 'skp'
__table_args__ = {'extend_existing':True}
unitkey = Column(String(10), primary_key=True)
noskp = Column(String(50), primary_key=True)
kdstatus = Column(String(3))
keybend = Column(String(10))
npwpd = Column(String(10))
idxkode = Column(Integer)
tglskp = Column(DateTime)
penyetor = Column(String(100))
alamat = Column(String(200))
uraiskp = Column(String(254))
tgltempo = Column(DateTime)
bunga = Column(Float)
kenaikan = Column(Float)
tglvalid = Column(DateTime)
@classmethod
def query_kode(cls, unitkey, kode):
return SipkdDBSession.query(cls).filter_by(unitkey =unitkey,
noskp = kode)
@classmethod
def tambah(cls, values):
# keybend = '2084_'
# seharusnya parameter nip dimana keybend diquery dari tabel bendahara
# seperti unitkey
unit_kode = values['unit_kode']
# unit_kode = '3.01.01.02.'
# UNIT kode harusnya parameter didalam values
nip = values['nip']
unitkey = DaftUnit.get_key(unit_kode)
keybend = Bendahara.get_key(unitkey,nip)
mtgkey = RekPdpt.get_key(values['rekening_kd'])
row_skp = Skp()
values['unitkey'] = unitkey
values['kdstatus'] = '70'
values['keybend'] = keybend
values['idxkode'] = '1'
values['kenaikan'] = 0
values['mtgkey'] = mtgkey
values['nojetra'] = '11'
#row_skp.npwpd = row.kode[:18][:-10]
#row_skp.tglvalid = datetime.now()
row_skp.from_dict(values)
SipkdDBSession.add(row_skp)
SipkdDBSession.flush()
if values['nilai']<>0:
row_skpdet = SkpDet()
row_skpdet.from_dict(values)
SipkdDBSession.add(row_skpdet)
SipkdDBSession.flush()
#jurnal SKP dengan stored procedure
row_skp.tglvalid = row_skp.tglskp
SipkdDBSession.add(row_skp)
SipkdDBSession.flush()
return True
@classmethod
def hapus(cls, values):
keybend = '2084_'
unit_kode = '3.01.01.02.'
unitkey = DaftUnit.get_key(unit_kode)
noskp = values['noskp']
#hapus detail
row_skpdet = SipkdDBSession.query(SkpDet).\
filter_by(unitkey = unitkey,
noskp = noskp).delete()
SipkdDBSession.flush()
#Hapus Master
row_skp = SipkdDBSession.query(Skp).\
filter_by(unitkey = unitkey,
noskp = noskp).delete()
SipkdDBSession.flush()
return True
class SkpDet(SipkdBase, CommonModel):
__tablename__ = 'skpdet'
__table_args__ = {'extend_existing':True}
unitkey = Column(String(10), primary_key=True)
noskp = Column(String(50), primary_key=True)
mtgkey = Column(String(10), primary_key=True)
nojetra = Column(String(2), primary_key=True)
nilai = Column(Float)
@classmethod
def query_kode(cls, unitkey, kode, mtgkey, nojetra):
return SipkdDBSession.query(cls).filter_by(unitkey =unitkey,
noskp = kode, mtgkey=mtgkey, nojetra=nojetra)
def save_skp(data, post=0):
unitkey = '_' in data['unit_kd'] and data['unit_kd'] or DaftUnit.get_key(data['unit_kd'])
keybend = '_' in data['bendahara_kd'] and data['bendahara_kd'] or Bendahara.get_key(unitkey, data['bendahara_kd'])
if post:
row = Skp.query_kode(unitkey, data['noskp']).first()
if not row:
row = Skp()
row.unitkey = unitkey
row.from_dict(data)
#row_skp.kdstatus = '70'
row.idxkode = '1' #pendapatan
row.kenaikan = 0
row.keybend = keybend
#row_skp.npwpd = row.npwpd[-10:]
#row_skp.tglskp = row.tgl_tetap
#row_skp.penyetor = row.nama
#row_skp.alamat = row.alamat
#row_skp.uraiskp = row.rekening_nm
#row_skp.tgltempo = row.jth_tempo
#row_skp.tglvalid = datetime.now()
#row_skp.bunga = row.denda+row.bunga
SipkdDBSession.add(row)
SipkdDBSession.flush()
for item in data['items']:
mtgkey = '_' in item['rekening_kd'] and item['rekening_kd'] or \
RekPdpt.get_key(item['rekening_kd'])
nojetra = item['nojetra']
rowdet = SkpDet.query_kode(row.unitkey, row.noskp, mtgkey, nojetra).first()
if not rowdet:
rowdet = SkpDet()
rowdet.unitkey = row.unitkey
rowdet.noskp = row.noskp
rowdet.mtgkey = mtgkey
rowdet.nojetra = nojetra
rowdet.nilai = item['nilai']
SipkdDBSession.add(rowdet)
SipkdDBSession.flush()
#row_skp.tglvalid = row_skp.tglskp
#SipkdDBSession.add(row_skp)
#SipkdDBSession.flush()
#row.posted = 1
#DBSession.add(row)
#DBSession.flush()
# else:
# unitkey = SipkdUnit.get_key_by_kode(row.unit_kd)
# noskp = "%s/%s" % (row.kode, row.ref_kode)
# row_skpdet = SipkdDBSession.query(SipkdSkpDet).\
# filter_by(unitkey = unitkey,
# noskp = noskp).delete()
# SipkdDBSession.flush()
# row_skp = SipkdDBSession.query(SipkdSkp).\
# filter_by(unitkey = unitkey,
# noskp = noskp).delete()
# SipkdDBSession.flush()
# row.posted = 0
# DBSession.add(row)
# DBSession.flush()
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm.exc import NoResultFound
from sqlalchemy.orm import (
relationship,
backref
)
from sqlalchemy import (Column, Integer, String, SmallInteger, UniqueConstraint,
Date, BigInteger, ForeignKey, func, extract, case, DateTime, Float)
from ..models import SipkdBase, SipkdDBSession
class SkpTbp(SipkdBase):
__tablename__ = 'skptbp'
__table_args__ = {'extend_existing':True}
notbp = Column(String(50), primary_key=True)
unitkey = Column(String(10), primary_key=True)
noskp = Column(String(50), primary_key=True)
\ No newline at end of file
from datetime import datetime
from sqlalchemy import (
Column,
Integer,
Text,
DateTime,
ForeignKey,
UniqueConstraint,
ForeignKeyConstraint,
String,
SmallInteger,
Float,
BigInteger
)
from sqlalchemy.dialects.mssql import MONEY, DECIMAL
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm.exc import NoResultFound
from sqlalchemy.orm import (
relationship,
backref
)
from ..models import SipkdBase, SipkdDBSession, TABLE_ARGS, CommonModel
from ..models import (DaftUnit, RekBiaya, RekPdpt, RekBelanja, JenisPajak,
Bendahara, Vendor, Bank)
class BkbKas(SipkdBase, CommonModel):
__tablename__ = 'bkbkas'
nobbantu = Column(String(10), primary_key=True)
unitkey = Column(String(10))
kdbank = Column(String(2), ForeignKey(Bank.kdbank))
mtgkey = Column(String(10))
nmbkas = Column(String(50))
norekb = Column(String(30))
sladorekb = Column(Integer)
bank = relationship("Bank", backref=backref("bkbkas"))
__table_args__ = TABLE_ARGS
class Sp2d(SipkdBase, CommonModel):
__tablename__ = 'sp2d'
nosp2d = Column(String(50), primary_key=True)
unitkey = Column(String(10), ForeignKey(DaftUnit.unitkey))
kdstatus = Column(String(3))
nospm = Column(String(50))
keybend = Column(String(10), ForeignKey(Bendahara.keybend))
idxsko = Column(String(10))
idxttd = Column(String(10))
kdp3 = Column(String(10), ForeignKey(Vendor.kdp3))
idxkode = Column(Integer)
noreg = Column(String(5))
ketotor = Column(String(254))
nokontrak = Column(String(2048))
keperluan = Column(String(4096))
penolakan = Column(String(1))
tglvalid = Column(DateTime(timezone=False))
tglsp2d = Column(DateTime(timezone=False))
tglspm = Column(DateTime(timezone=False))
nobbantu = Column(String(10), ForeignKey(BkbKas.nobbantu))
daftunit = relationship("DaftUnit", backref=backref("sp2d"))
bendahara = relationship("Bendahara", backref=backref("sp2d"))
vendor = relationship("Vendor", backref=backref("sp2d"))
bkbkas = relationship("BkbKas", backref=backref("sp2d"))
__table_args__ = TABLE_ARGS
class Sp2dDetBiaya(SipkdBase, CommonModel):
__tablename__ = 'sp2ddetb'
mtgkey = Column(String(10), primary_key=True)
nosp2d = Column(String(50), primary_key=True)
unitkey = Column(String(10))
nojetra = Column(String(2))
kddana = Column(String(3))
Nilai = Column(DECIMAL(decimal_return_scale=2))
__table_args__ = (ForeignKeyConstraint(['mtgkey'], [RekBiaya.mtgkey]),
TABLE_ARGS)
rekening = relationship("RekBiaya", backref=backref("sp2ddetbiaya"))
class Sp2dDetPdpt(SipkdBase, CommonModel):
__tablename__ = 'sp2ddetd'
nosp2d = Column(String(50), primary_key=True)
mtgkey = Column(String(10), primary_key=True)
unitkey = Column(String(10))
nojetra = Column(String(2))
Nilai = Column(DECIMAL(decimal_return_scale=2))
__table_args__ = TABLE_ARGS
class Sp2dDetBelanja(SipkdBase, CommonModel):
__tablename__ = 'sp2ddetr'
nosp2d = Column(String(50), primary_key=True)
mtgkey = Column(String(10), primary_key=True)
kdkegunit = Column(String(10), primary_key=True)
unitkey = Column(String(10))
nojetra = Column(String(2))
kddana = Column(String(3))
Nilai = Column(DECIMAL(decimal_return_scale=2))
__table_args__ = TABLE_ARGS
class Sp2dDetBtl(SipkdBase, CommonModel):
__tablename__ = 'sp2ddetrtl'
nosp2d = Column(String(50), primary_key=True)
mtgkey = Column(String(10), primary_key=True)
unitkey = Column(String(10))
nojetra = Column(String(2))
kddana = Column(String(3))
Nilai = Column(DECIMAL(decimal_return_scale=2))
__table_args__ = TABLE_ARGS
class Sp2dPajak(SipkdBase, CommonModel):
__tablename__ = 'sp2dpjk'
nosp2d = Column(String(50), primary_key=True)
pjkkey = Column(String(10), primary_key=True)
unitkey = Column(String(10))
Nilai = Column(DECIMAL(decimal_return_scale=2))
Keterangan = Column(String(512))
pajak = relationship("JenisPajak", backref=backref("sp2dpajak"))
__table_args__ = (ForeignKeyConstraint(['pjkkey'], [JenisPajak.pjkkey]),
TABLE_ARGS)
File mode changed
from sqlalchemy import (
engine_from_config,
select,
)
from pyramid.paster import (
get_appsettings,
setup_logging,
)
from ...scripts.initializedb import create_schema
from ..models import SipkdDBSession, SipkdBase
from ..models import (DaftUnit, RekBiaya, RekPdpt, RekBelanja, JenisPajak,
Sp2d, Sp2dDetBiaya, Sp2dDetPdpt, Sp2dDetBelanja,
Sp2dDetBtl, Sp2dPajak,
)
from ..models import (Skp, SkpDet, Tbp, TbpDet, SkpTbp, BkuTbp, Jurnal)
from .initial_data import insert
def main(settings):
url = 'sipkd.url' in settings and settings['sipkd.url'] and 'sipkd.' or 'sqlalchemy.'
engine_sipkd = engine_from_config(settings, url)
SipkdDBSession.configure(bind=engine_sipkd)
for schema in ['sipkd']:
create_schema(engine_sipkd, schema)
SipkdBase.metadata.create_all(engine_sipkd)
initial_data.insert()
print('****SIPKD CREATED****')
\ No newline at end of file
Sp2dData = {
'options': ['insert if not exists'],
'csv': ['sp2d.csv',]
}
Sp2dPotonganData = {
'options': ['insert if not exists'],
'csv': ['sp2d_potongan.csv',]
}
kode,path,nama,status,type
"sipkd","/sipkd","SIPKD",1,0
"sipkd-skp","/sipkd/skp","Daftar SKP",1,0
"sipkd-skp-act","/sipkd/skp/{act}/act","Daftar SKP ACT",1,0
"sipkd-tbp","/sipkd/tbp","Daftar TBP",1,0
"sipkd-tbp-act","/sipkd/tbp/{act}/act","Daftar TBP ACT",1,0
"sipkd-bku","/sipkd/bku","Daftar BKU",1,0
"sipkd-bku-act","/sipkd/bku/{act}/act","Daftar BKU ACT",1,0
"sipkd-bendahara","/sipkd/bendahara","Daftar BKU",1,0
"sipkd-bendahara-act","/sipkd/bendahara/{act}/act","Daftar BKU ACT",1,0
"sipkd-sp2d","/sipkd/sp2d","Daftar SIPKD SP2D",1,0
"sipkd-sp2d-add","/sipkd/sp2d/add","Tambah SIPKD S2D",1,0
"sipkd-sp2d-edt","/sipkd/sp2d/{id}/edit","Edit SIPKD SP2D",1,0
"sipkd-sp2d-del","/sipkd/sp2d/{id}/delete","Hapus SIPKD SP2D",1,0
"sipkd-sp2d-vie","/sipkd/sp2d/{id}/view","Lihat SIPKD SP2D",1,0
"sipkd-sp2d-act","/sipkd/sp2d/{act}/act","Action SIPKD SP2D",1,0
"sipkd-sp2d-rpt","/sipkd/sp2d/{rpt}/rpt","Report SIPKD SP2D",1,0
"sipkd-sp2d-bend","/sipkd/sp2d/bend","Daftar SIPKD SP2D Bendahara",1,0
"sipkd-sp2d-bend-add","/sipkd/sp2d/bend/add","Tambah SIPKD S2D Bendahara",1,0
"sipkd-sp2d-bend-edt","/sipkd/sp2d/bend/{id}/edit","Edit SIPKD SP2D Bendahara",1,0
"sipkd-sp2d-bend-del","/sipkd/sp2d/bend/{id}/delete","Hapus SIPKD SP2D Bendahara",1,0
"sipkd-sp2d-bend-vie","/sipkd/sp2d/bend/{id}/view","Lihat SIPKD SP2D Bendahara",1,0
"sipkd-sp2d-bend-act","/sipkd/sp2d/bend/{act}/act","Action SIPKD SP2D Bendahara",1,0
"sipkd-sp2d-bend-rpt","/sipkd/sp2d/bend/{rpt}/rpt","Report SIPKD SP2D Bendahara",1,0
"sipkd-sp2d-vendor","/sipkd/sp2d/vendor","Daftar SIPKD SP2D Vendor",1,0
"sipkd-sp2d-vendor-add","/sipkd/sp2d/vendor/add","Tambah SIPKD S2D Vendor",1,0
"sipkd-sp2d-vendor-edt","/sipkd/sp2d/vendor/{id}/edit","Edit SIPKD SP2D Vendor",1,0
"sipkd-sp2d-vendor-del","/sipkd/sp2d/vendor/{id}/delete","Hapus SIPKD SP2D Vendor",1,0
"sipkd-sp2d-vendor-vie","/sipkd/sp2d/vendor/{id}/view","Lihat SIPKD SP2D Vendor",1,0
"sipkd-sp2d-vendor-act","/sipkd/sp2d/vendor/{act}/act","Action SIPKD SP2D Vendor",1,0
"sipkd-sp2d-vendor-rpt","/sipkd/sp2d/vendor/{rpt}/rpt","Report SIPKD SP2D Vendor",1,0
"sipkd-sp2d-btl","/sipkd/sp2d/btl","Daftar SIPKD SP2D BTL",1,0
"sipkd-sp2d-btl-add","/sipkd/sp2d/btl/add","Tambah SIPKD S2D BTL",1,0
"sipkd-sp2d-btl-edt","/sipkd/sp2d/btl/{id}/edit","Edit SIPKD SP2D BTL",1,0
"sipkd-sp2d-btl-del","/sipkd/sp2d/btl/{id}/delete","Hapus SIPKD SP2D BTL",1,0
"sipkd-sp2d-btl-vie","/sipkd/sp2d/btl/{id}/view","Lihat SIPKD SP2D BTL",1,0
"sipkd-sp2d-btl-act","/sipkd/sp2d/btl/{act}/act","Action SIPKD SP2D BTL",1,0
"sipkd-sp2d-btl-rpt","/sipkd/sp2d/btl/{rpt}/rpt","Report SIPKD SP2D BTL",1,0
"sipkd-sp2d-valid","/sipkd/sp2d/valid","SIPKD SP2D Valid",1,0
"sipkd-sp2d-valid-act","/sipkd/sp2d/valid/{act}/act","Act SIPKD SP2D Valid",1,0
"sipkd-sp2d-valid-vie","/sipkd/sp2d/valid/{id}/view","Lihat SIPKD SP2D Valid",1,0
"sipkd-sp2d-valid-rpt","/sipkd/sp2d/valid/{rpt}/rpt","Report SIPKD SP2D Valid",1,0
"sipkd-api","/sipkd/api","API SIPKD",1,1
"ws-sipkd","/ws/sipkd","WS SIPKD",1,1
RouteData = {
'options': ['insert if not exists'],
'csv': ['routes.csv'],
'keys':['kode'],
}
import os
from ...scripts.initial_data import InitialData
from ..models import (
SipkdBase as ModuleBase,
SipkdDBSession as ModuleDBSession,
CommonModel,
)
from .data.routes import RouteData
#from .data.sp2d import Sp2dData
#from .data.sp2d_potongan import Sp2dPotonganData
fixtures = [
('routes', RouteData),
]
def insert():
initialData = InitialData(ModuleBase, ModuleDBSession)
base_dir = os.path.split(__file__)[0]
initialData.insert(base_dir, fixtures)
import sys
import transaction
import subprocess
from sqlalchemy import (
engine_from_config,
select,
)
from pyramid.paster import (
get_appsettings,
setup_logging,
)
from ...scripts.initializedb import create_schema, read_file
from ...tools import get_settings
from ..models import (
SipkdDBSession as ModuleDBSession,
SipkdBase as ModuleBase,
)
#from ..models import *
#from ..models.transaksi import *
from . import initial_data
def main(settings):
url = 'sipkd.url' in settings and settings['sipkd.url'] and 'sipkd.' or 'sqlalchemy.'
transaction.commit()
engine = engine_from_config(settings, url)
#create_schema(engine,'simda')
ModuleBase.metadata.create_all(engine)
ModuleDBSession.configure(bind=engine)
initial_data.insert()
transaction.commit()
print('****SIPKD CREATED****')
from ..tools import *
from ..report_tools import *
from ..ws_tools import *
JNS_SP2D = {'21': 'UP', '22': 'GU', '23': 'TU', '24': 'LS'}
JPAJAK = {'PPN':'7.3.1.01.01',
'PPh 21':'7.3.1.02.01',
'PPh 22':'7.3.1.02.02',
'PPh 23':'7.3.1.02.03',
'PPh 26':'7.3.1.02.06',
'PPh Final':'7.3.1.02.07',}
\ No newline at end of file
from pyramid.view import (view_config,)
from ...views.base_views import BaseView
from ...views.common import DataTables, ColumnDT
class HomeView(BaseView):
########
# List #
########
@view_config(route_name='sipkd', renderer='templates/home.pt',
permission='sipkd')
def view_list(self):
return dict(project='SIPKD')
keybend = '2084_'
if request.session['posted']==0:
row_skp = SipkdSkp()
row_skp.unitkey = SipkdUnit.get_key_by_kode(row.unit_kd)
row_skp.noskp = "%s" % (row.kode)
row_skp.kdstatus = '70'
row_skp.keybend = keybend
row_skp.idxkode = '1' #pendapatan
row_skp.kenaikan = 0
#row_skp.npwpd = row.npwpd[-10:]
row_skp.tglskp = row.tgl_tetap
row_skp.penyetor = row.nama
row_skp.alamat = row.alamat
row_skp.uraiskp = row.rekening_nm
row_skp.tgltempo = row.jth_tempo
#row_skp.tglvalid = datetime.now()
row_skp.bunga = row.denda+row.bunga
SipkdDBSession.add(row_skp)
SipkdDBSession.flush()
if row.pokok>0:
row_skpdet = SipkdSkpDet()
row_skpdet.unitkey = row_skp.unitkey
row_skpdet.noskp = row_skp.noskp
row_skpdet.nilai = row.pokok
row_skpdet.mtgkey = SipkdRek4.get_key_by_kode(row.rekening_kd)
row_skpdet.nojetra = '11' #Penerimaan STS/TBP
SipkdDBSession.add(row_skpdet)
SipkdDBSession.flush()
row_skp.tglvalid = row_skp.tglskp
SipkdDBSession.add(row_skp)
SipkdDBSession.flush()
row.posted = 1
DBSession.add(row)
DBSession.flush()
else:
unitkey = SipkdUnit.get_key_by_kode(row.unit_kd)
noskp = "%s/%s" % (row.kode, row.ref_kode)
row_skpdet = SipkdDBSession.query(SipkdSkpDet).\
filter_by(unitkey = unitkey,
noskp = noskp).delete()
SipkdDBSession.flush()
row_skp = SipkdDBSession.query(SipkdSkp).\
filter_by(unitkey = unitkey,
noskp = noskp).delete()
SipkdDBSession.flush()
row.posted = 0
DBSession.add(row)
DBSession.flush()
\ No newline at end of file
unitkey = SipkdUnit.get_key_by_kode('3.01.01.02.') #row.unit_kd)
kodekey = '-'.join([row.tgl_trans.strftime('%Y%m%d'),row.kode])
row_tbp.notbp = kodekey
row_tbp.tgltbp = row.tgl_trans
row_tbp.penyetor = row.nama
row_tbp.alamat = row.alamat
row_tbp.uraitbp = row.rekening_nm
row_tbp.tglvalid = row.tgl_trans
if not row.ref_kode or row.ref_kode=='0' or row.ref_kode=='00':
statuskd = '63' #Penerimaan (Rek.Bend)-Tanpa Penetapan
else:
statuskd = '64' #Penerimaan (Rek.Bend)-Penetapan
row_tbp.kdstatus = statuskd
row_tbp = SipkdDBSession.query(SipkdTbp).\
filter_by(notbp=kodekey, unitkey=unitkey).first()
if not row_tbp:
row_tbp = SipkdTbp()
keybend = '2084_'
# row_tbp.unitkey = unitkey
# row_tbp.keybend1 = keybend
# row_tbp.keybend2 = keybend
# row_tbp.idxkode = '1' #pendapatan
SipkdDBSession.add(row_tbp)
SipkdDBSession.flush()
if row.pokok+row.denda+row.bunga>0:
mtgkey = SipkdRek4.get_key_by_kode(row.rekening_kd)
row_tbpdet = SipkdDBSession.query(SipkdTbpDet).\
filter_by(notbp=kodekey, unitkey=unitkey, mtgkey=mtgkey).\
first()
if not row_tbpdet:
row_tbpdet = SipkdTbpDet()
row_tbpdet.unitkey = unitkey
row_tbpdet.notbp = kodekey
row_tbpdet.nilai = row.pokok+row.denda+row.bunga
row_tbpdet.mtgkey = SipkdRek4.get_key_by_kode(row.rekening_kd)
row_tbpdet.nojetra = '11' #Penerimaan STS/TBP
SipkdDBSession.add(row_tbpdet)
SipkdDBSession.flush()
keybend = '2084_'
row_bku = SipkdDBSession.query(SipkdBkuTbp).\
filter_by(notbp=kodekey, unitkey=unitkey, nobkuskpd=kodekey).\
first()
if not row_bku:
row_bku = SipkdBkuTbp()
row_bku.unitkey = unitkey
row_bku.nobkuskpd = kodekey
row_bku.notbp = kodekey
row_bku.idxttd = keybend
row_bku.tglbkuskpd = row.tgl_trans
row_bku.uraian = row.nama
#row_bku.tglvalid = row.tgl_trans
row_bku.keybend = keybend
SipkdDBSession.add(row_bku)
SipkdDBSession.flush()
row_bku.tglvalid = row.tgl_trans
SipkdDBSession.add(row_bku)
SipkdDBSession.flush()
""""if (row.denda+row.bunga)>0:
row_tbpdet = SipkdTbpDet()
row_tbpdet.UNITKEY = unitkey
row_tbpdet.NOTBP = kodekey
row_tbpdet.NILAI = row.denda+row.bunga
row_tbpdet.MTGKEY = SipkdRek4.get_key_by_kode(row.rekening_kd)
row_tbpdet.NOJETRA = '11' #Penerimaan STS/TBP
SipkdDBSession.add(row_tbpdet)
SipkdDBSession.flush()
if row_skp:
row_skptbp = SipkdSkpTbp()
row_skptbp.UNITKEY = unitkey
row_skptbp.NOTBP = row_tbp.NOTBP
row_skptbp.NOSKP = row.ref_kode
SipkdDBSession.add(row_skptbp)
SipkdDBSession.flush()
"""
row.posted = 1
DBSession.add(row)
DBSession.flush()
else:
unitkey = SipkdUnit.get_key_by_kode('3.01.01.02.') #row.unit_kd)
notbp = '-'.join([row.tgl_trans.strftime('%Y%m%d'),row.kode])
row_bku = SipkdDBSession.query(SipkdBkuTbp).\
filter_by(unitkey = unitkey,
notbp = notbp,
).delete()
row_tbpdet = SipkdDBSession.query(SipkdTbpDet).\
filter_by(unitkey = unitkey,
notbp = notbp).delete()
# row_skptbp = SipkdDBSession.query(SipkdSkpTbp).\
# filter_by(unitkey = unitkey,
# notbp = notbp).delete()
row_tbp = SipkdDBSession.query(SipkdTbp).\
filter_by(unitkey = unitkey,
notbp = notbp).delete()
SipkdDBSession.flush()
row.posted = 0
DBSession.add(row)
DBSession.flush()
keybend = '2084_'
unitkey = unitkey = SipkdUnit.get_key_by_kode('3.01.01.02.') #row.unit_kd)
if request.session['posted']==0:
row_skp = SipkdSkp()
row_skp.unitkey = unitkey #SipkdUnit.get_key_by_kode(row.unit_kd)
row_skp.noskp = "%s" % (row.kode)
row_skp.kdstatus = '70'
row_skp.keybend = keybend
row_skp.idxkode = '1' #pendapatan
row_skp.kenaikan = 0
row_skp.npwpd = row.kode[:18][:-10]
row_skp.tglskp = row.tgl_tetap
row_skp.penyetor = row.nama
row_skp.alamat = row.alamat
row_skp.uraiskp = row.rekening_nm
row_skp.tgltempo = row.jth_tempo
#row_skp.tglvalid = datetime.now()
row_skp.bunga = row.denda+row.bunga
SipkdDBSession.add(row_skp)
SipkdDBSession.flush()
if row.pokok<>0:
row_skpdet = SipkdSkpDet()
row_skpdet.unitkey = row_skp.unitkey
row_skpdet.noskp = row_skp.noskp
row_skpdet.nilai = row.pokok
row_skpdet.mtgkey = SipkdRek4.get_key_by_kode(row.rekening_kd)
row_skpdet.nojetra = '11' #Penerimaan STS/TBP
SipkdDBSession.add(row_skpdet)
SipkdDBSession.flush()
row_skp.tglvalid = row_skp.tglskp
SipkdDBSession.add(row_skp)
SipkdDBSession.flush()
row.posted = 1
DBSession.add(row)
DBSession.flush()
else:
unitkey = SipkdUnit.get_key_by_kode(row.unit_kd)
noskp = "%s" % (row.kode)
row_skpdet = SipkdDBSession.query(SipkdSkpDet).\
filter_by(unitkey = unitkey,
noskp = noskp).delete()
SipkdDBSession.flush()
row_skp = SipkdDBSession.query(SipkdSkp).\
filter_by(unitkey = unitkey,
noskp = noskp).delete()
SipkdDBSession.flush()
row.posted = 0
DBSession.add(row)
DBSession.flush()
unitkey = SipkdUnit.get_key_by_kode(row.unit_kd)
kodekey = row.kode
#CEK DULU DATA SKP
#row_skp = SipkdDBSession.query(SipkdSkp).\
# filter_by(UNITKEY = unitkey,
# NOSKP = row.ref_kode) #cek by no bayar
#if row_skp:
# statuskd = '64' #Penerimaan (Rek.Bend)-Penetapan
#else:
# statuskd = '63' #Penerimaan (Rek.Bend)-Tanpa Penetapan
if not row.ref_kode or row.ref_kode=='0' or row.ref_kode=='00':
statuskd = '63' #Penerimaan (Rek.Bend)-Tanpa Penetapan
else:
statuskd = '64' #Penerimaan (Rek.Bend)-Penetapan
row_tbp = SipkdDBSession.query(SipkdTbp).\
filter(SipkdTbp.notbp == kodekey,
SipkdTbp.unitkey == unitkey).first()
if not row_tbp:
row_tbp = SipkdTbp()
keybend = '2084_'
row_tbp.unitkey = unitkey
row_tbp.notbp = kodekey
row_tbp.keybend1 = keybend
row_tbp.kdstatus = statuskd
row_tbp.keybend2 = keybend
row_tbp.idxkode = '1' #pendapatan
row_tbp.tgltbp = row.tgl_trans
row_tbp.penyetor = row.nama
row_tbp.alamat = row.alamat
row_tbp.uraitbp = row.rekening_nm
row_tbp.tglvalid = row.tgl_trans
SipkdDBSession.add(row_tbp)
SipkdDBSession.flush()
if row.pokok+row.denda+row.bunga>0:
rekening_key = SipkdRek4.get_key_by_kode(row.rekening_kd)
row_tbpdet = SipkdDBSession.query(SipkdTbpDet).\
filter(SipkdTbpDet.notbp == SipkdTbp.notbp,
SipkdTbpDet.mtgkey == rekening_key,
SipkdTbpDet.unitkey == unitkey
).first()
if not row_tbpdet:
row_tbpdet = SipkdTbpDet()
row_tbpdet.unitkey = unitkey
row_tbpdet.notbp = kodekey
row_tbpdet.nilai = row.pokok
row_tbpdet.mtgkey = rekening_key
row_tbpdet.nojetra = '11' #Penerimaan STS/TBP
SipkdDBSession.add(row_tbpdet)
SipkdDBSession.flush()
if row.denda+row.bunga>0:
rekening_key = SipkdRek4.get_key_by_kode('4.1.4.07.12.')
row_tbpdet = SipkdDBSession.query(SipkdTbpDet).\
filter(SipkdTbpDet.notbp == SipkdTbp.notbp,
SipkdTbpDet.mtgkey == rekening_key
).first()
if not row_tbpdet:
row_tbpdet = SipkdTbpDet()
row_tbpdet.unitkey = unitkey
row_tbpdet.notbp = kodekey
row_tbpdet.nilai = row.denda+row.bunga
row_tbpdet.mtgkey = rekening_key
row_tbpdet.nojetra = '11' #Penerimaan STS/TBP
SipkdDBSession.add(row_tbpdet)
SipkdDBSession.flush()
#Insert into BKU
row_bku = SipkdDBSession.query(SipkdBkuTbp).\
filter(SipkdBkuTbp.unitkey == unitkey,
SipkdBkuTbp.nobkuskpd == kodekey,
SipkdBkuTbp.notbp == kodekey).first()
if not row_bku:
row_bku = SipkdBkuTbp()
keybend = '2084_'
row_bku = SipkdBkuTbp()
row_bku.unitkey = unitkey
row_bku.nobkuskpd = kodekey
row_bku.notbp = kodekey
row_bku.idxttd = keybend
row_bku.tglbkuskpd = row.tgl_trans
row_bku.uraian = row.nama
row_bku.tglvalid = row.tgl_trans
row_bku.keybend = keybend
SipkdDBSession.add(row_bku)
SipkdDBSession.flush()
row_bku.tglvalid = row.tgl_trans
SipkdDBSession.add(row_bku)
SipkdDBSession.flush()
""""if (row.denda+row.bunga)>0:
row_tbpdet = SipkdTbpDet()
row_tbpdet.UNITKEY = unitkey
row_tbpdet.NOTBP = kodekey
row_tbpdet.NILAI = row.denda+row.bunga
row_tbpdet.MTGKEY = SipkdRek4.get_key_by_kode(row.rekening_kd)
row_tbpdet.NOJETRA = '11' #Penerimaan STS/TBP
SipkdDBSession.add(row_tbpdet)
SipkdDBSession.flush()
if row_skp:
row_skptbp = SipkdSkpTbp()
row_skptbp.UNITKEY = unitkey
row_skptbp.NOTBP = row_tbp.NOTBP
row_skptbp.NOSKP = row.ref_kode
SipkdDBSession.add(row_skptbp)
SipkdDBSession.flush()
"""
row.posted = 1
DBSession.add(row)
DBSession.flush()
else:
unitkey = SipkdUnit.get_key_by_kode(row.unit_kd)
notbp = row.kode
row_bku = SipkdDBSession.query(SipkdBkuTbp).\
filter_by(unitkey = unitkey,
notbp = notbp,
).delete()
row_tbpdet = SipkdDBSession.query(SipkdTbpDet).\
filter_by(unitkey = unitkey,
notbp = notbp).delete()
# row_skptbp = SipkdDBSession.query(SipkdSkpTbp).\
# filter_by(unitkey = unitkey,
# notbp = notbp).delete()
row_tbp = SipkdDBSession.query(SipkdTbp).\
filter_by(unitkey = unitkey,
notbp = notbp).delete()
SipkdDBSession.flush()
row.posted = 0
DBSession.add(row)
DBSession.flush()
\ No newline at end of file
unitkey = SipkdUnit.get_key_by_kode('3.01.01.02.') #row.unit_kd)
kodekey = row.kode
statuskd = '64' #Penerimaan (Rek.Bend)-Penetapan
row_tbp = SipkdDBSession.query(SipkdTbp).\
filter(SipkdTbp.notbp == kodekey,
SipkdTbp.unitkey == unitkey).first()
if not row_tbp:
row_tbp = SipkdTbp()
row_tbp.unitkey = unitkey
row_tbp.notbp = kodekey
row_tbp.keybend1 = keybend
row_tbp.kdstatus = statuskd
row_tbp.keybend2 = keybend
row_tbp.idxkode = '1' #pendapatan
row_tbp.tgltbp = row.tgl_trans
row_tbp.penyetor = 'Bank'#row.uraian
#row_tbp.alamat = row.alamat
row_tbp.uraitbp = row.uraian #row.rekening_nm
row_tbp.tglvalid = row.tgl_trans
SipkdDBSession.add(row_tbp)
SipkdDBSession.flush()
if row.pokok+row.denda+row.bunga>0:
rekening_key = SipkdRek4.get_key_by_kode(row.rekening_kd)
row_tbpdet = SipkdDBSession.query(SipkdTbpDet).\
filter(SipkdTbpDet.notbp == kodekey,
SipkdTbpDet.mtgkey == rekening_key,
SipkdTbpDet.unitkey == unitkey
).first()
if not row_tbpdet:
row_tbpdet = SipkdTbpDet()
row_tbpdet.unitkey = unitkey
row_tbpdet.notbp = kodekey
row_tbpdet.nilai = row.pokok
row_tbpdet.mtgkey = rekening_key
row_tbpdet.nojetra = '11' #Penerimaan STS/TBP
SipkdDBSession.add(row_tbpdet)
SipkdDBSession.flush()
if row.denda+row.bunga>0:
rekening_key = SipkdRek4.get_key_by_kode('4.1.4.07.12.')
row_tbpdet = SipkdDBSession.query(SipkdTbpDet).\
filter(SipkdTbpDet.notbp == kodekey,
SipkdTbpDet.mtgkey == rekening_key,
SipkdTbpDet.unitkey == unitkey
).first()
if not row_tbpdet:
row_tbpdet = SipkdTbpDet()
row_tbpdet.unitkey = unitkey
row_tbpdet.notbp = kodekey
row_tbpdet.nilai = row.denda+row.bunga
row_tbpdet.mtgkey = rekening_key
row_tbpdet.nojetra = '11' #Penerimaan STS/TBP
SipkdDBSession.add(row_tbpdet)
SipkdDBSession.flush()
keybend = '2084_'
#Insert into BKU
row_bku = SipkdDBSession.query(SipkdBkuTbp).\
filter(SipkdBkuTbp.unitkey == unitkey,
SipkdBkuTbp.nobkuskpd == kodekey,
SipkdBkuTbp.notbp == kodekey).first()
if not row_bku:
row_bku = SipkdBkuTbp()
row_bku.unitkey = unitkey
row_bku.nobkuskpd = kodekey
row_bku.notbp = kodekey
row_bku.idxttd = keybend
row_bku.tglbkuskpd = row.tgl_trans
row_bku.uraian = row.uraian
row_bku.tglvalid = row.tgl_trans
row_bku.keybend = keybend
SipkdDBSession.add(row_bku)
SipkdDBSession.flush()
row_bku.tglvalid = row.tgl_trans
SipkdDBSession.add(row_bku)
SipkdDBSession.flush()
""""if (row.denda+row.bunga)>0:
row_tbpdet = SipkdTbpDet()
row_tbpdet.UNITKEY = unitkey
row_tbpdet.NOTBP = kodekey
row_tbpdet.NILAI = row.denda+row.bunga
row_tbpdet.MTGKEY = SipkdRek4.get_key_by_kode(row.rekening_kd)
row_tbpdet.NOJETRA = '11' #Penerimaan STS/TBP
SipkdDBSession.add(row_tbpdet)
SipkdDBSession.flush()
if row_skp:
row_skptbp = SipkdSkpTbp()
row_skptbp.UNITKEY = unitkey
row_skptbp.NOTBP = row_tbp.NOTBP
row_skptbp.NOSKP = row.ref_kode
SipkdDBSession.add(row_skptbp)
SipkdDBSession.flush()
"""
\ No newline at end of file
keybend = '2084_'
if request.session['posted']==0:
row_skp = SipkdSkp()
row_skp.unitkey = SipkdUnit.get_key_by_kode(row.unit_kd)
row_skp.noskp = "%s/%s" % (row.kode, row.ref_kode)
row_skp.kdstatus = '70'
row_skp.keybend = keybend
row_skp.idxkode = '1' #pendapatan
row_skp.kenaikan = 0
row_skp.npwpd = row.npwpd[-10:]
row_skp.tglskp = row.tgl_tetap
row_skp.penyetor = row.nama
row_skp.alamat = row.alamat
row_skp.uraiskp = row.rekening_nm
row_skp.tgltempo = row.jth_tempo
#row_skp.tglvalid = datetime.now()
row_skp.bunga = row.denda+row.bunga
SipkdDBSession.add(row_skp)
SipkdDBSession.flush()
if row.pokok>0:
row_skpdet = SipkdSkpDet()
row_skpdet.unitkey = row_skp.unitkey
row_skpdet.noskp = row_skp.noskp
row_skpdet.nilai = row.pokok
row_skpdet.mtgkey = SipkdRek4.get_key_by_kode(row.rekening_kd)
row_skpdet.nojetra = '11' #Penerimaan STS/TBP
SipkdDBSession.add(row_skpdet)
SipkdDBSession.flush()
row_skp.tglvalid = row_skp.tglskp
SipkdDBSession.add(row_skp)
SipkdDBSession.flush()
row.posted = 1
DBSession.add(row)
DBSession.flush()
else:
unitkey = SipkdUnit.get_key_by_kode(row.unit_kd)
noskp = "%s/%s" % (row.kode, row.ref_kode)
row_skpdet = SipkdDBSession.query(SipkdSkpDet).\
filter_by(unitkey = unitkey,
noskp = noskp).delete()
SipkdDBSession.flush()
row_skp = SipkdDBSession.query(SipkdSkp).\
filter_by(unitkey = unitkey,
noskp = noskp).delete()
SipkdDBSession.flush()
row.posted = 0
DBSession.add(row)
DBSession.flush()
row_tbp = SipkdTbp()
row_tbp.unitkey = unitkey
row_tbp.notbp = kodekey
row_tbp.keybend1 = keybend
row_tbp.kdstatus = statuskd
row_tbp.keybend2 = keybend
row_tbp.idxkode = '1' #pendapatan
row_tbp.tgltbp = row.tgl_trans
row_tbp.penyetor = row.nama
row_tbp.alamat = row.alamat
row_tbp.uraitbp = row.rekening_nm
row_tbp.tglvalid = row.tgl_trans
SipkdDBSession.add(row_tbp)
SipkdDBSession.flush()
if row.pokok+row.denda+row.bunga>0:
row_tbpdet = SipkdTbpDet()
row_tbpdet.unitkey = unitkey
row_tbpdet.notbp = kodekey
row_tbpdet.nilai = row.pokok+row.denda+row.bunga
row_tbpdet.mtgkey = SipkdRek4.get_key_by_kode(row.rekening_kd)
row_tbpdet.nojetra = '11' #Penerimaan STS/TBP
SipkdDBSession.add(row_tbpdet)
SipkdDBSession.flush()
row_bku = SipkdBkuTbp()
row_bku.unitkey = unitkey
row_bku.nobkuskpd = kodekey
row_bku.notbp = kodekey
row_bku.idxttd = keybend
row_bku.tglbkuskpd = row.tgl_trans
row_bku.uraian = row.nama
row_bku.tglvalid = row.tgl_trans
row_bku.keybend = keybend
SipkdDBSession.add(row_bku)
SipkdDBSession.flush()
row_bku.tglvalid = row.tgl_trans
SipkdDBSession.add(row_bku)
SipkdDBSession.flush()
""""
if (row.denda+row.bunga)>0:
row_tbpdet = SipkdTbpDet()
row_tbpdet.UNITKEY = unitkey
row_tbpdet.NOTBP = kodekey
row_tbpdet.NILAI = row.denda+row.bunga
row_tbpdet.MTGKEY = SipkdRek4.get_key_by_kode(row.rekening_kd)
row_tbpdet.NOJETRA = '11' #Penerimaan STS/TBP
SipkdDBSession.add(row_tbpdet)
SipkdDBSession.flush()
if row_skp:
row_skptbp = SipkdSkpTbp()
row_skptbp.UNITKEY = unitkey
row_skptbp.NOTBP = row_tbp.NOTBP
row_skptbp.NOSKP = row.ref_kode
SipkdDBSession.add(row_skptbp)
SipkdDBSession.flush()
"""
\ No newline at end of file
import os
import uuid
from datetime import datetime
from sqlalchemy import not_, func, between
from pyramid.view import (view_config,)
from pyramid.httpexceptions import ( HTTPFound, )
import colander
from deform import (Form, widget, ValidationFailure, )
from ..views import BaseView, ColumnDT, DataTables
from ..models import SipkdDBSession as DBSession
from ..models import Bendahara, DaftUnit
from ..tools import date_from_str
class view_invoice(BaseView):
@view_config(route_name="sipkd-bendahara", renderer="templates/bendahara/list.pt",
permission="sipkd-bendahara")
def view_list(self):
return dict(project='SIPKD')
##########
# Action #
##########
@view_config(route_name='sipkd-bendahara-act', renderer='json',
permission='sipkd-bendahara-act')
def view_act(request):
ses = request.session
req = request
params = req.params
url_dict = req.matchdict
if url_dict['act']=='grid':
pk_id = 'id' in params and params['id'] and int(params['id']) or 0
if url_dict['act']=='grid':
# defining columns
columns = [
ColumnDT(Bendahara.keybend, mData="id"),
ColumnDT(Bendahara.jns_bend, mData="jenis"),
ColumnDT(Bendahara.nip, mData="nip"),
ColumnDT(Bendahara.jab_bend, mData="jabatan"),
ColumnDT(DaftUnit.nmunit, mData="opd"),
#ColumnDT(Bendahara.bunga, mData="nilai"),
#ColumnDT(Bendahara.bunga, mData="bunga"),
]
query = DBSession.query().select_from(Bendahara).\
join(DaftUnit, (Bendahara.unitkey==DaftUnit.unitkey))
rowTable = DataTables(req.GET, query, columns)
return rowTable.output_result()
import os
import uuid
from datetime import datetime
from sqlalchemy import not_, func, between
from pyramid.view import (view_config,)
from pyramid.httpexceptions import ( HTTPFound, )
import colander
from deform import (Form, widget, ValidationFailure, )
from ..views import BaseView, ColumnDT, DataTables
from ..models import SipkdDBSession as DBSession
from ..models import Skp
from ..tools import date_from_str
class view_invoice(BaseView):
@view_config(route_name="sipkd-skp", renderer="templates/skp/list.pt",
permission="sipkd-skp")
def view_list(self):
return dict(project='SIPKD')
##########
# Action #
##########
@view_config(route_name='sipkd-skp-act', renderer='json',
permission='sipkd-skp-act')
def view_act(request):
ses = request.session
req = request
params = req.params
url_dict = req.matchdict
if url_dict['act']=='grid':
pk_id = 'id' in params and params['id'] and int(params['id']) or 0
if url_dict['act']=='grid':
# defining columns
columns = [
ColumnDT(Skp.noskp, mData="nomor"),
ColumnDT(Skp.penyetor, mData="penyetor"),
ColumnDT(Skp.uraiskp, mData="uraian"),
ColumnDT(Skp.tglskp, mData="tanggal"),
ColumnDT(Skp.tglvalid, mData="valid"),
ColumnDT(Skp.bunga, mData="nilai"),
ColumnDT(Skp.bunga, mData="bunga"),
]
query = DBSession.query().select_from(Skp).\
filter(
between(Skp.tglskp, ses['dt_awal'], ses['dt_akhir'])
)
rowTable = DataTables(req.GET, query, columns)
return rowTable.output_result()
import os
import uuid
from datetime import datetime
from sqlalchemy import not_, func, between
from pyramid.view import (view_config,)
from pyramid.httpexceptions import ( HTTPFound, )
import colander
from deform import (Form, widget, ValidationFailure, )
from ..views import BaseView, ColumnDT, DataTables
from ..models import SipkdDBSession as DBSession
from ..models import Tbp
from ..tools import date_from_str
class view_invoice(BaseView):
@view_config(route_name="sipkd-tbp", renderer="templates/tbp/list.pt",
permission="sipkd-tbp")
def view_list(self):
return dict(project='SIPKD')
##########
# Action #
##########
@view_config(route_name='sipkd-tbp-act', renderer='json',
permission='sipkd-tbp-act')
def view_act(request):
ses = request.session
req = request
params = req.params
url_dict = req.matchdict
if url_dict['act']=='grid':
pk_id = 'id' in params and params['id'] and int(params['id']) or 0
if url_dict['act']=='grid':
# defining columns
columns = [
ColumnDT(Tbp.notbp, mData="nomor"),
ColumnDT(Tbp.penyetor, mData="penyetor"),
ColumnDT(Tbp.uraitbp, mData="uraian"),
ColumnDT(Tbp.tgltbp, mData="tanggal"),
ColumnDT(Tbp.tglvalid, mData="valid"),
#ColumnDT(Tbp.bunga, mData="nilai"),
#ColumnDT(Tbp.bunga, mData="bunga"),
]
query = DBSession.query().select_from(Tbp).\
filter(
between(Tbp.tgltbp, ses['dt_awal'], ses['dt_akhir'])
)
rowTable = DataTables(req.GET, query, columns)
return rowTable.output_result()
<html metal:use-macro="load: ../../../views/templates/base3.pt">
<ul metal:fill-slot="navs">
<li tal:attributes="class request.path == '/sipkd' and 'active'"><a href="/sipkd">Home</a></li>
<li>
<a href="#"><i class="fa fa-lg fa-fw fa-shield"></i> <span class="menu-item-parent">Pendapatan</span></a>
<ul>
<li><a href="/sipkd/skp">SKP</a></li>
<li><a href="/sipkd/tbp">TBP</a></li>
<!-- <li><a href="/sipkd/bku">BKU</a></li> -->
</ul>
</li>
<li>
<a href="#"><i class="fa fa-lg fa-fw fa-shield"></i> <span class="menu-item-parent">Referensi</span></a>
<ul>
<li><a href="/sipkd/rek4">Rekening Pendapatan</a></li>
<li><a href="/sipkd/bendahara">Bendahara</a></li>
</ul>
</li>
</ul>
</html>
<html metal:use-macro="load: ../base.pt">
<div metal:fill-slot="content">
<div class="panel panel-danger">
<div class="panel-heading">
<h3 class="panel-title">Peringatan</h3>
</div>
<div class="panel-body">
${request.title} #${row.kode} ${row.nama} ?
</div>
</div>
<div tal:content="structure form"/>
</div>
</html>
<html metal:use-macro="load: ../base.pt">
<div metal:fill-slot="content">
<h4>${request.title}</h4>
<table id="table1" class="table table-bordered table-hover table-condensed dt-responsive">
<thead>
<tr>
<th>id</th>
<th>Jenis</th>
<th>NIP</th>
<th>Jabatan.</th>
<th>OPD</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
<div metal:fill-slot="scripts">
<script>
$( document ).ready(function() {
var sUrl = "/sipkd/bendahara";
var mID;
var mThn;
var oTable;
var iPos;
var oTableUrl = sUrl+"/grid/act";
var rows_selected = [];
var oTable = $('#table1').DataTable({
dom : '<"col-md-8"<"toolbar">l><"col-md-4"f>rtip',
processing : true,
serverSide : true,
ajax : oTableUrl,
//stateSave : true,
scrollCollapse: true,
sort : true,
info : false,
filter : true,
autoWidth : false,
paginate : true,
paginationType: "full_numbers",
displayLength : 25,
order : [[ 1, "asc" ],[ 2, "asc" ]],
lengthMenu: [
[10, 25, 50, 100],
[10, 25, 50, 100]
],
columns: [
{"data": "id", "width": "50px"},
{"data": "jenis","width": "50px"},
{"data": "nip", "width": "80px","className":"dt-center"},
{"data": "jabatan", },
//{"data": "nilai", "width": "80px", "className":"dt-right",
// "render": $.fn.dataTable.render.number( '.', ',', 0, '' )},
//{"data": "bunga", "width": "70px", "className":"dt-right",
// "render": $.fn.dataTable.render.number( '.', ',', 0, '' )},
{"data": "opd"}
],
"language": {
"search" : "Cari: ",
"paginate":{
"first" : "Pertama ",
"last" : "Akhir ",
"previous": "",
"next" : "",
},
"lengthMenu": "Tampil _MENU_ baris "
},
"fnRowCallback": function (nRow, aData, iDisplayIndex) {
var rowId = aData[0];
if($.inArray(rowId, rows_selected) !== -1){
$(nRow).find('input[type="checkbox"]').prop('checked', true);
$(nRow).addClass('selected');
}
},
}); //end of oTable
var style_posted = "";
var style_unposted = "";
var tb_array = [
'<div class="btn-group pull-left">',
//' <button id="btn_add" class="btn btn btn-primary" type="button">Tambah</button>',
//' <button id="btn_edit" class="btn btn btn-primary" type="button">Edit</button>',
//' <button id="btn_delete" class="btn btn btn-danger" type="button">Hapus</button>',
//' <button id="btn_posting" class="btn btn btn-success" type="button">Proses</button>',
//' <!--<button id="btn_unposting" class="btn btn btn-info" type="button">Un-Posting</button>-->',
//' <button id="btn_close" class="btn btn-warning" type="button">Tutup</button>',
//' <button id="btn_csv" class="btn btn-primary" type="button">CSV</button>',
//' <button id="btn_pdf" class="btn btn-primary" type="button">PDF</button>',
' &nbsp;',
'</div>',
];
var tb = tb_array.join(' ');
$("div.toolbar").html(tb);
$("div.toolbar").attr('style', 'display:block; float: left; margin-bottom:6px; line-height:16px;');
/***********************************************************************
BUTTON
***********************************************************************/
$('#btn_add').click(function () {
window.location = sUrl+'/add';
});
$('#btn_edit').click(function () {
if (mID) window.location = sUrl+'/'+mID+'/edit';
else alert('Pilih Baris yang akan di edit');
});
$('#btn_delete').click(function () {
if (mID) window.location = sUrl+'/'+mID+'/delete';
else alert('Pilih Baris yang akan di hapus');
});
$("#btn_close").click(function () {
window.location = '/skpd';
return false;
});
$('#btn_posting').click(function () {
if (rows_selected.length>0) {
$.ajax({
type: "POST",
url: sUrl+"/post",
data : { id : rows_selected.join(",") },
success: function (html) {
if (html.success == true) {
$("#success").css('display', 'inline', 'important');
$("#success").html("<span class='glyphicon glyphicon-ok'></span> " + html.msg);
rows_selected = [];
oTable.ajax.reload();}
else {
$("#errors").css('display', 'inline', 'important');
$("#errors").html("<span class='glyphicon glyphicon-remove'></span> " + html.msg);
}
} //end if
}); //end ajax*/
} //end if
else {
alert('Silahkan pilih data yang akan diposting');
}
});
$('#btn_csv').click(function () {
window.location = sUrl+ "/csv";
});
$('.date-control').datepicker({
format:'dd-mm-yyyy'
});
//Handle click on row data
$('#table1 tbody').on('click', 'tr', function () {
if ($(this).hasClass('selected')) {
$(this).removeClass('selected');
} else {
var aData = oTable.row( this ).data();
oTable.$('tr.selected').removeClass('selected');
$(this).addClass('selected');
mID = aData.id;
oTable.$('tr.row_selected').removeClass('row_selected');
$(this).addClass('row_selected');
}
});
}); //end of document
</script>
</div>
</html>
<html metal:use-macro="load: base.pt">
<div metal:fill-slot="content">
<link href="/static/css/theme.css" rel="stylesheet">
<!-- Main component for a primary marketing message or call to action -->
<div class="well">
<h1>Integrasi SIPKD - Pajak Daerah</h1>
<p><img src="/static/img/logo.png" class="img-float img-thumbnail"/>
Selamat datang di aplikasi <code>Integrasi SIPKD - Pajak Daerah</code> apliki ini di desikan untuk
memproses data yang berasal dari aplikasi pajak daerah (PBB, BPHTB dan PADL) sehingga data dari setiap
aplikasi tersebut dapat terintegrasi dengan aplikasi keuangan daerah (SIPKD)
<p>Aplikasi ini dibangun dengan menggunakan platform open source yang terdiri dari:</p>
<ul>
<li>Web Framework<a href="http://pylonsproject.org/">Pyramid</a> </li>
<li>Template <a href="https://pypi.python.org/pypi/ziggurat-foundations">Ziggurat Foundations</a></li>
<li>Template <a href="http://docs.pylonsproject.org/projects/pyramid-chameleon/en/latest/">Chameleon</a></li>
<li>Form Generator <a href="http://docs.pylonsproject.org/projects/deform/">Deform</a></li>
<li>CSS Framework <a href="http://getbootstrap.com">Bootstrap</a></li>
<li>Database <a href="http://postgresql.org">Postgres SQL</a></li>
</ul>
</div><!--well-->
</div>
</html>
\ No newline at end of file
<html metal:use-macro="load: ../base.pt">
<div metal:fill-slot="content">
<div class="panel panel-danger">
<div class="panel-heading">
<h3 class="panel-title">Peringatan</h3>
</div>
<div class="panel-body">
${request.title} #${row.kode} ${row.nama} ?
</div>
</div>
<div tal:content="structure form"/>
</div>
</html>
<html metal:use-macro="load: ../base.pt">
<div metal:fill-slot="content">
<h4>${request.title}</h4>
<form id="form" method="POST" enctype="multipart/form-data" accept-charset="utf-8"
class="form-horizontal">
<fieldset class="deformFormFieldset">
<!--Tanggal-->
<div id="item-tanggal_fltr">
<div class="col-md-5">
<div class="input-group">
<span class="input-group-addon">Tanggal</span>
<input id="awal" class="form-control date-control" type="text"
value="${request.session['awal']}" name="awal">
<span class="input-group-addon">s.d</span>
<input id="akhir" class="form-control date-control" type="text"
value="${request.session['akhir']}" name="akhir">
</div>
</div>
<div class="col-md-2">
<div class="input-group">
<span class="input-group-addon">
<input type="checkbox" id="posted"
value = "1"
checked = "${request.session['posted'] and 'checked' or None}" name="posted">
</span>
<label class="form-control">Posted</label>
<span class="input-group-btn">
<button id="btn-filter" name="btn-filter" class="btn btn btn-primary" type="submit">Filter</button>
</span>
</div>
</div>
</div>
</fieldset>
</form>
<table id="table1" class="table table-bordered table-hover table-condensed dt-responsive">
<thead>
<tr>
<th>Nomor</th>
<th>Penyetor</th>
<th>Uraian</th>
<th>Tanggal.</th>
<th>Nilai</th>
<th>Bunga</th>
<th>Valid.</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
<div metal:fill-slot="scripts">
<script>
$( document ).ready(function() {
var sUrl = "/sipkd/skp";
var mID;
var mThn;
var oTable;
var iPos;
var oTableUrl = sUrl+"/grid/act";
var rows_selected = [];
var oTable = $('#table1').DataTable({
dom : '<"col-md-8"<"toolbar">l><"col-md-4"f>rtip',
processing : true,
serverSide : true,
ajax : oTableUrl,
//stateSave : true,
scrollCollapse: true,
sort : true,
info : false,
filter : true,
autoWidth : false,
paginate : true,
paginationType: "full_numbers",
displayLength : 25,
order : [[ 1, "asc" ],[ 2, "asc" ]],
lengthMenu: [
[10, 25, 50, 100],
[10, 25, 50, 100]
],
columns: [
{"data": "nomor", "width": "50px"},
{"data": "penyetor","width": "80px"},
{"data": "uraian"},
{"data": "tanggal", "width": "80px","className":"dt-center"},
{"data": "nilai", "width": "80px", "className":"dt-right",
"render": $.fn.dataTable.render.number( '.', ',', 0, '' )},
{"data": "bunga", "width": "70px", "className":"dt-right",
"render": $.fn.dataTable.render.number( '.', ',', 0, '' )},
{"data": "valid", "width": "80px", "className":"dt-center",}
],
"language": {
"search" : "Cari: ",
"paginate":{
"first" : "Pertama ",
"last" : "Akhir ",
"previous": "",
"next" : "",
},
"lengthMenu": "Tampil _MENU_ baris "
},
"fnRowCallback": function (nRow, aData, iDisplayIndex) {
var rowId = aData[0];
if($.inArray(rowId, rows_selected) !== -1){
$(nRow).find('input[type="checkbox"]').prop('checked', true);
$(nRow).addClass('selected');
}
},
}); //end of oTable
var style_posted = "";
var style_unposted = "";
var tb_array = [
'<div class="btn-group pull-left">',
//' <button id="btn_add" class="btn btn btn-primary" type="button">Tambah</button>',
//' <button id="btn_edit" class="btn btn btn-primary" type="button">Edit</button>',
//' <button id="btn_delete" class="btn btn btn-danger" type="button">Hapus</button>',
//' <button id="btn_posting" class="btn btn btn-success" type="button">Proses</button>',
//' <!--<button id="btn_unposting" class="btn btn btn-info" type="button">Un-Posting</button>-->',
//' <button id="btn_close" class="btn btn-warning" type="button">Tutup</button>',
//' <button id="btn_csv" class="btn btn-primary" type="button">CSV</button>',
//' <button id="btn_pdf" class="btn btn-primary" type="button">PDF</button>',
' &nbsp;',
'</div>',
];
var tb = tb_array.join(' ');
$("div.toolbar").html(tb);
$("div.toolbar").attr('style', 'display:block; float: left; margin-bottom:6px; line-height:16px;');
/***********************************************************************
BUTTON
***********************************************************************/
$('#btn_add').click(function () {
window.location = sUrl+'/add';
});
$('#btn_edit').click(function () {
if (mID) window.location = sUrl+'/'+mID+'/edit';
else alert('Pilih Baris yang akan di edit');
});
$('#btn_delete').click(function () {
if (mID) window.location = sUrl+'/'+mID+'/delete';
else alert('Pilih Baris yang akan di hapus');
});
$("#btn_close").click(function () {
window.location = '/skpd';
return false;
});
$('#btn_posting').click(function () {
if (rows_selected.length>0) {
$.ajax({
type: "POST",
url: sUrl+"/post",
data : { id : rows_selected.join(",") },
success: function (html) {
if (html.success == true) {
$("#success").css('display', 'inline', 'important');
$("#success").html("<span class='glyphicon glyphicon-ok'></span> " + html.msg);
rows_selected = [];
oTable.ajax.reload();}
else {
$("#errors").css('display', 'inline', 'important');
$("#errors").html("<span class='glyphicon glyphicon-remove'></span> " + html.msg);
}
} //end if
}); //end ajax*/
} //end if
else {
alert('Silahkan pilih data yang akan diposting');
}
});
$('#btn_csv').click(function () {
window.location = sUrl+ "/csv";
});
$('.date-control').datepicker({
format:'dd-mm-yyyy'
});
//Handle click on row data
$('#table1 tbody').on('click', 'tr', function () {
if ($(this).hasClass('selected')) {
$(this).removeClass('selected');
} else {
var aData = oTable.row( this ).data();
oTable.$('tr.selected').removeClass('selected');
$(this).addClass('selected');
mID = aData.id;
oTable.$('tr.row_selected').removeClass('row_selected');
$(this).addClass('row_selected');
}
});
}); //end of document
</script>
</div>
</html>
<html metal:use-macro="load: ../base.pt">
<div metal:fill-slot="content">
<div class="panel panel-danger">
<div class="panel-heading">
<h3 class="panel-title">Peringatan</h3>
</div>
<div class="panel-body">
${request.title} #${row.kode} ${row.nama} ?
</div>
</div>
<div tal:content="structure form"/>
</div>
</html>
<html metal:use-macro="load: ../base.pt">
<div metal:fill-slot="content">
<h4>${request.title}</h4>
<form id="form" method="POST" enctype="multipart/form-data" accept-charset="utf-8"
class="form-horizontal">
<fieldset class="deformFormFieldset">
<!--Tanggal-->
<div id="item-tanggal_fltr">
<div class="col-md-5">
<div class="input-group">
<span class="input-group-addon">Tanggal</span>
<input id="awal" class="form-control date-control" type="text"
value="${request.session['awal']}" name="awal">
<span class="input-group-addon">s.d</span>
<input id="akhir" class="form-control date-control" type="text"
value="${request.session['akhir']}" name="akhir">
</div>
</div>
<div class="col-md-2">
<div class="input-group">
<span class="input-group-addon">
<input type="checkbox" id="posted"
value = "1"
checked = "${request.session['posted'] and 'checked' or None}" name="posted">
</span>
<label class="form-control">Posted</label>
<span class="input-group-btn">
<button id="btn-filter" name="btn-filter" class="btn btn btn-primary" type="submit">Filter</button>
</span>
</div>
</div>
</div>
</fieldset>
</form>
<table id="table1" class="table table-bordered table-hover table-condensed dt-responsive">
<thead>
<tr>
<th>Nomor</th>
<th>Penyetor</th>
<th>Uraian</th>
<th>Tanggal.</th>
<th>Nilai</th>
<!-- <th>Bunga</th> -->
<!-- <th>Valid.</th> -->
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
<div metal:fill-slot="scripts">
<script>
$( document ).ready(function() {
var sUrl = "/sipkd/tbp";
var mID;
var mThn;
var oTable;
var iPos;
var oTableUrl = sUrl+"/grid/act";
var rows_selected = [];
var oTable = $('#table1').DataTable({
dom : '<"col-md-8"<"toolbar">l><"col-md-4"f>rtip',
processing : true,
serverSide : true,
ajax : oTableUrl,
//stateSave : true,
scrollCollapse: true,
sort : true,
info : false,
filter : true,
autoWidth : false,
paginate : true,
paginationType: "full_numbers",
displayLength : 25,
order : [[ 1, "asc" ],[ 2, "asc" ]],
lengthMenu: [
[10, 25, 50, 100],
[10, 25, 50, 100]
],
columns: [
{"data": "nomor", "width": "50px"},
{"data": "penyetor","width": "80px"},
{"data": "uraian"},
{"data": "tanggal", "width": "80px","className":"dt-center"},
//{"data": "nilai", "width": "80px", "className":"dt-right",
// "render": $.fn.dataTable.render.number( '.', ',', 0, '' )},
//{"data": "bunga", "width": "70px", "className":"dt-right",
// "render": $.fn.dataTable.render.number( '.', ',', 0, '' )},
{"data": "valid", "width": "80px", "className":"dt-center",}
],
"language": {
"search" : "Cari: ",
"paginate":{
"first" : "Pertama ",
"last" : "Akhir ",
"previous": "",
"next" : "",
},
"lengthMenu": "Tampil _MENU_ baris "
},
"fnRowCallback": function (nRow, aData, iDisplayIndex) {
var rowId = aData[0];
if($.inArray(rowId, rows_selected) !== -1){
$(nRow).find('input[type="checkbox"]').prop('checked', true);
$(nRow).addClass('selected');
}
},
}); //end of oTable
var style_posted = "";
var style_unposted = "";
var tb_array = [
'<div class="btn-group pull-left">',
//' <button id="btn_add" class="btn btn btn-primary" type="button">Tambah</button>',
//' <button id="btn_edit" class="btn btn btn-primary" type="button">Edit</button>',
//' <button id="btn_delete" class="btn btn btn-danger" type="button">Hapus</button>',
//' <button id="btn_posting" class="btn btn btn-success" type="button">Proses</button>',
//' <!--<button id="btn_unposting" class="btn btn btn-info" type="button">Un-Posting</button>-->',
//' <button id="btn_close" class="btn btn-warning" type="button">Tutup</button>',
//' <button id="btn_csv" class="btn btn-primary" type="button">CSV</button>',
//' <button id="btn_pdf" class="btn btn-primary" type="button">PDF</button>',
' &nbsp;',
'</div>',
];
var tb = tb_array.join(' ');
$("div.toolbar").html(tb);
$("div.toolbar").attr('style', 'display:block; float: left; margin-bottom:6px; line-height:16px;');
/***********************************************************************
BUTTON
***********************************************************************/
$('#btn_add').click(function () {
window.location = sUrl+'/add';
});
$('#btn_edit').click(function () {
if (mID) window.location = sUrl+'/'+mID+'/edit';
else alert('Pilih Baris yang akan di edit');
});
$('#btn_delete').click(function () {
if (mID) window.location = sUrl+'/'+mID+'/delete';
else alert('Pilih Baris yang akan di hapus');
});
$("#btn_close").click(function () {
window.location = '/skpd';
return false;
});
$('#btn_posting').click(function () {
if (rows_selected.length>0) {
$.ajax({
type: "POST",
url: sUrl+"/post",
data : { id : rows_selected.join(",") },
success: function (html) {
if (html.success == true) {
$("#success").css('display', 'inline', 'important');
$("#success").html("<span class='glyphicon glyphicon-ok'></span> " + html.msg);
rows_selected = [];
oTable.ajax.reload();}
else {
$("#errors").css('display', 'inline', 'important');
$("#errors").html("<span class='glyphicon glyphicon-remove'></span> " + html.msg);
}
} //end if
}); //end ajax*/
} //end if
else {
alert('Silahkan pilih data yang akan diposting');
}
});
$('#btn_csv').click(function () {
window.location = sUrl+ "/csv";
});
$('.date-control').datepicker({
format:'dd-mm-yyyy'
});
//Handle click on row data
$('#table1 tbody').on('click', 'tr', function () {
if ($(this).hasClass('selected')) {
$(this).removeClass('selected');
} else {
var aData = oTable.row( this ).data();
oTable.$('tr.selected').removeClass('selected');
$(this).addClass('selected');
mID = aData.id;
oTable.$('tr.row_selected').removeClass('row_selected');
$(this).addClass('row_selected');
}
});
}); //end of document
</script>
</div>
</html>
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!