def set_invoice(request, data): resp = auth_from_rpc(request) if resp['code'] != 0: return resp unit_id = 0 unit_kd = "" rekening_id = 0 rekening_kd = "" try: for row in data: if row['unit_kd']!=unit_kd: unit_id = DBSession.query(Unit.id).filter_by( kode = row['unit_kd']).scalar() unit_kd = unit_id and row['unit_kd'] if row['rekening_kd']!=rekening_kd: rekening_id = DBSession.query(Rekening.id).filter_by( kode = row['rekening_kd']).scalar() rekening_kd = rekening_id and row['rekening_kd'] invoice = DBSession.query(ARInvoiceTransaksi).filter_by( kode = row['rekening_kd'], tahun = row['tahun'], ref_kode = row['ref_kode'] ).first() if not invoice: invoice = ARInvoiceTransaksi() invoice.created = datetime.now() invoice.create_uid = 1 invoice.kode = row['rekening_kd'] invoice.nama = row['nama'] invoice.tahun = row['tahun'] invoice.amount = row['amount'] invoice.ref_kode = row['ref_kode'] invoice.ref_nama = row['ref_nama'] invoice.tanggal = row['tanggal'] invoice.kecamatan_kd = row['kecamatan_kd'] invoice.kecamatan_nm = row['kecamatan_nm'] invoice.kelurahan_kd = row['kelurahan_kd'] invoice.kelurahan_nm = row['kelurahan_nm'] invoice.is_kota = row['is_kota'] invoice.sumber_data = row['sumber_data'] invoice.sumber_id = row['sumber_id'] invoice.unit_id = unit_id invoice.rekening_id = rekening_id #invoice.notes = row['notes'] DBSession.add(invoice) DBSession.flush() except Exception e: print str(e) DBSession.rollback() return dict(code=CODE_DATA_INVALID, message='Data Invalid') try: DBSession.commit() except Exception e: print str(e) return dict(code=CODE_OK, message='Data Submitted')
def gaji_act(self): ses = self.request.session req = self.request params = req.params url_dict = req.matchdict if url_dict['act']=='grid': columns = [] columns.append(ColumnDT('id')) columns.append(ColumnDT('nip')) columns.append(ColumnDT('nama')) columns.append(ColumnDT('gaji_kotor', filter=self._number_format)) columns.append(ColumnDT('potongan', filter=self._number_format)) columns.append(ColumnDT('gaji_bersih', filter=self._number_format)) query = DBSession.query(GajiPegawai).filter( GajiPegawai.tahun == ses['tahun'], GajiPegawai.bulan == ses['bulan'] ) rows = UserUnit.get_filtered(self.request) if rows and rows.sub_unit: query = query.filter(GajiPegawai.unitkd.like( '%s%%' % ses['unit_kd'])) else: query = query.filter(GajiPegawai.unitkd== ses['unit_kd']) rowTable = DataTables(req, GajiPegawai, query, columns) return rowTable.output_result() elif url_dict['act']=='headofnip': nip = 'term' in params and params['term'] or '' rows = DBSession.query(GajiPegawai.id, GajiPegawai.nip, GajiPegawai.nama, GajiPegawai.gaji_bersih ).filter( GajiPegawai.tahun == ses['tahun'], GajiPegawai.bulan == ses['bulan'], GajiPegawai.unitkd == ses['unit_kd'], GajiPegawai.nip.ilike('%s%%' % nip) ).all() r = [] for k in rows: d={} d['id'] = k[0] d['value'] = k[1] d['nip'] = k[1] d['nama'] = k[2] d['gaji_bersih'] = k[3] r.append(d) return r elif url_dict['act']=='import': self.d['msg'] ='Gagal Import Gagal' engine_mssql = create_engine('mssql+pyodbc:///?odbc_connect={0}'.format( urllib.quote_plus(EngineMssql[0]))) sqlselect = text("""SELECT * FROM pegawai_gaji WHERE tahun=:tahun AND bulan=:bulan AND jenis=:jenis ORDER by nip""") srcs = engine_mssql.execute(sqlselect, tahun=self.session['tahun'], bulan=self.session['bulan'], jenis=0).all() for src in srcs.fetchall(): gajiPg = GajiPegawai() gajiPg.from_dict(src) DBSession.add(gajiPg) DBSession.flush() DBSession.commit() return self.d