Exemple #1
0
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')
Exemple #2
0
    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