void MachineRepository::deleteMachinePersonRelationshipsByMachineId(bool &error, int id) {

    QSqlDatabase db = QSqlDatabase::database();
    QSqlQuery query;
    error = false;

    query.exec("DELETE FROM person_machine_rel WHERE MachineID=" + ITOS(id));

    if(query.lastError().isValid()) {
        error = true;
        return;
    }

    return;
}
void MachineRepository::deletePersonFromMachine(bool &error, int machineId, int personId) {
    // removes a relation between a machine and person for the given ids

    QSqlDatabase db = QSqlDatabase::database();
    QString queryString; 
    QSqlQuery query;
    error = false;

    query.exec("DELETE FROM person_machine_rel WHERE PersonID=" + ITOS(personId) + " AND MachineID=" + ITOS(machineId));

    if(query.lastError().isValid()) {
        error = true;
        return;
    }

    return;
}
예제 #3
0
파일: Database.cpp 프로젝트: wkcn/HR
void Database::Show(Exp * filter){

	//若不传入过滤器,则使用全局的viewFilter
	if (!filter)
		filter = viewFilter;

	//获取筛选结果
	vector<Staff *> vs;
	GetStaffList(vs,filter);

	//排序
	sort(vs.begin(),vs.end(),comparer);

	//更正显示页数
	max_page = ceil(vs.size() * 1.0 / page_items);
	if (cur_page > max_page)cur_page = max_page;
	if (cur_page < 1)cur_page = 1;

	//填表,为了显示得更好
	Form form;
	//Header
	form.write(0,0,"ID");
	form.write(0,1,"Name");
	form.write(0,2,"Age");
	form.write(0,3,"State");
	form.write(0,4,"Kind");
	form.write(0,5,"Manager ID");
	form.write(0,6,"Sales");
	form.write(0,7,"Events");

	size_t start = (cur_page - 1) * page_items;
	size_t end = start + page_items;
	//[start,end)
	if (end > vs.size())end = vs.size();
	size_t items = end - start;
	for (size_t i = 0;i < items;++i){
		//多态
		size_t r = start + i;
		Staff *s = vs[r];
		form.write(i+1,0,ITOS(s->GetID()));
		form.write(i+1,1,s->GetName());
		form.write(i+1,2,ITOS(s->GetAge()));
		switch(s->GetState()){
			case ACTIVE:
				form.write(i+1,3,"在职");break;
			case RESIGN:
				form.write(i+1,3,"离职");break;
			case LEAVE:
				form.write(i+1,3,"请假");break;
		}
		switch(s->GetKind()){
			case SALESMAN:
				form.write(i+1,4,"SalesMan");break;
			case MANAGER:
				form.write(i+1,4,"Manager");break;
			case SALESMANAGER:
				form.write(i+1,4,"SalesManager");break;
			case STAFF:
				break;
		}
		SalesMan *psalesman = dynamic_cast<SalesMan*>(s);
	    Manager *pmanager = dynamic_cast<Manager*>(s);
		SalesManager *psalesmanager = dynamic_cast<SalesManager*>(s);
		//因为必定只有3类
		if (psalesmanager){
			form.write(i+1,5,"--");
			Achievement ac = psalesmanager -> GetAchievement();
			form.write(i+1,6,ITOS(ac.sales));
			form.write(i+1,7,ITOS(ac.events));
		}else{
			if (psalesman){
				int manager_id = psalesman -> GetManagerID();
				if (manager_id == -1){
					form.write(i+1,5,"NULL");
				}else{
					form.write(i+1,5,ITOS(manager_id));
				}
				Achievement ac = psalesman -> GetAchievement();
				form.write(i+1,6,ITOS(ac.sales));
				form.write(i+1,7,"--");
			}else{
				form.write(i+1,5,"--");
				Achievement ac = pmanager -> GetAchievement();
				form.write(i+1,6,"--");
				form.write(i+1,7,ITOS(ac.events));
			}
		}
	}	

	cout << "筛选条件:" << filterName << endl;
	form.print();
	cout << "第" << cur_page << "/" << max_page << "页 (共"<<vs.size()<<"项)" << "\t";
	cout << "( n:下一页 N:上一页 gg 39:跳转到39页 )" << endl;

}