Ejemplo n.º 1
0
void TCustomer::testId () {
    Customer c;

    c.setId (tId);

    QVERIFY (c.getId () == tId);
}
bool StoreManager::checkOut(int customerId, int movieId)
{
	Customer *customer = findCustomer(customerId);
	Movie *movie = findMovie(movieId);

	if (customer == NULL)
		std::cout << "Customer not found.\n\n";

	if (movie == NULL)
		std::cout << "Movie not found.\n\n";

	if (customer == NULL || movie == NULL)
		return false;
	else
	{
		if (movie->getOutCount() == movie->getStockCount())
		{
			std::cout << movie->getTitle() << " is out of stock.\n"
				<< "Cannot add to customer # " << customer->getId() << "\n\n";
			return false;
		}
		else
		{
			customer->addMovie(movie);
			movie->setInCount(movie->getInCount() - 1);
			movie->setOutCount(movie->getOutCount() + 1);
			return true;
		}
	}
}
Ejemplo n.º 3
0
Customers* Persist::loadCustomers()
{
    Customers* customers = new Customers();
    Customer customer;
    const char* fileName = Customer::FILE_NAME.c_str();

    // Test to see if the file exists...
    std::ifstream test(fileName, std::ios::in);
    if (!test)
    {
        createDummyCustomerFile();
    }
    test.close();
    
    std::ifstream file(fileName, std::ios::in);
    file.read(reinterpret_cast<char*>(&customer), sizeof(Customer));
    while (!file.eof())
    {
        (*customers)[customer.getId()] = customer;
        file.read(reinterpret_cast<char*>(&customer), sizeof(Customer));
    }
    file.close();
    
    return customers;
}
Ejemplo n.º 4
0
void TCustomer::testConstructor () {
    Customer c (tId, tName, tSurname, tGroup);

    QVERIFY (c.getId ()      == tId      &&
             c.getName ()    == tName    &&
             c.getSurname () == tSurname &&
             c.getGroupId () == tGroup);
}
Ejemplo n.º 5
0
void Store::addCustomer(const Customer & c)
{
	customers.push_back(c);
	customersIdPointer[c.getId()] = customersNamePointer[c.getName()] = &(*customers.rbegin());
	if (!c.getActiveStatus())
	{
		inactiveCustomers++;
	}
	writeCustomers();
}
Ejemplo n.º 6
0
void PreemptiveResumeNode::accept( Customer *c ) {
	if ( resources->resourceIsAvailable() ) {
		Debug::trace( "Resource claimed" ) ;
		resources->claim() ;
	} else {
		Sim::deschedule( lastEndServiceEvent ) ;
		Customer *preemptedCustomer = lastEndServiceEvent->getCustomer() ;
		stringstream str;
		str << "Preempting customer in service (Id " << preemptedCustomer->getId() << ")";
		Debug::trace( str.str() ) ;
		double nextServiceDemand = remainingServiceTime( preemptedCustomer ) ;
		preemptedCustomer->setServiceDemand( nextServiceDemand ) ;
		queue->enqueueAtHead( preemptedCustomer ) ;
	}
	invokeService( c ) ;
}
Ejemplo n.º 7
0
void Store::readCustomers()
{
	ifstream customersFile(fileNames[0]);
	Customer customer;
	unsigned int n;

	customersFile >> n;
	customersFile.ignore(INT64_MAX, '\n');

	for (size_t i = 0; i < n; i++)
	{
		customersFile >> customer;
		customersFile.ignore(INT64_MAX, '\n');
		customers.push_back(customer);
		customersIdPointer[customer.getId()] = customersNamePointer[customer.getName()] = &(*customers.rbegin());
	}
}
Ejemplo n.º 8
0
MenuResult RemoveCustomer::handle()
{
	cout << endl;
	Customer* customer = readCustomerId(store);
	cin.clear();
	cin.ignore(INT64_MAX, '\n');
	cout << "\nID: " << customer->getId() << "\nName: " << customer->getName() << "\nJoin date: " << customer->getJoinDate() << "\nAmount: " << fixed << setprecision(2) << customer->getTotalCost() << endl;
	char c;
	cout << "\nAre you sure you want to remove this customer?\nInsert Y for YES or anything else to cancel: ";
	cin >> c;
	cin.clear();
	cin.ignore(INT64_MAX, '\n');
	c = tolower(c);
	if (c == 'y')
	{
		store.deleteCustomer(customer);
		cout << "The customer has been removed.\n";
	}
	pause();
	return CONTINUE;
}