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