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')