void MainWindow::on_label_remindCustomers_linkActivated(const QString &)
{
    unpaidJobsReminderClicked = true;
    ui->label_remindCustomers->setHidden(true);

    Setting subject = SettingController::getSetting(SettingForm::keyReminderSubject),
            body = SettingController::getSetting(SettingForm::keyReminderBody);

    if (strlen(SettingController::getSetting(SettingForm::keyEmailHost).getValue()) == 0)
    { // If no email host is specified, use a mailto link to open the user's email client
        for (unsigned i = 0; i < unpaidJobs->size(); ++i)
        {
            Customer customer = CustomerController::getCustomer(unpaidJobs->at(i).getCustomerId());

            QString mailtoLink
                    = QString("mailto:") + customer.getEmailAddress()
                    + "?subject=" + subject.getValue()
                    + "&body=" + body.getValue();

            QDesktopServices::openUrl(QUrl(mailtoLink));
        }
    }
    else
    {
        for (unsigned i = 0; i < unpaidJobs->size(); ++i)
        {
            Customer customer = CustomerController::getCustomer(unpaidJobs->at(i).getCustomerId());
            EmailerThread::enqueueEmail(EmailDetails(customer.getEmailAddress(), subject.getValue(), body.getValue()));
        }
    }
}
void JobShow::generateReceipt()
{
    Date jobDate(job.getDate());
    QString saveFolder
            = SettingForm::getPdfDirectoryWithoutSlash() + "/receipts/"
            + QDate::longMonthName(Date(job.getDate()).month) + '_' + toString(jobDate.year).c_str();

    if (!QDir(saveFolder).exists()) QDir().mkpath(saveFolder);

    Customer customer = CustomerController::getCustomer(job.getCustomerId());
    customerEmailAddress = customer.getEmailAddress();

    receiptFileName.clear();
    receiptFileName.reserve(256);
    receiptFileName += "receipt_";
    receiptFileName += customer.getForename();
    receiptFileName += customer.getSurname();
    receiptFileName += "_";
    receiptFileName += toString(job.getId());
    receiptFileName += "_";
    receiptFileName += (string)Date(job.getDate());
    receiptFileName += ".pdf";
    replaceChars(receiptFileName, ' ', '_');
    replaceChars(receiptFileName, '/', '-');
    replaceChars(receiptFileName, ':', '-');

    receiptFileName = saveFolder.toStdString() + '/' + receiptFileName;

    PdfGenerator::generateReceipt(receiptFileName.c_str(), job);
}