Beispiel #1
0
function bookPackage($db, $packageId, $userId)
{
    $query = 'SELECT u.user_id, ';
    $query .= 'u.user_mail, ';
    $query .= 'c.contact_name, ';
    $query .= 'c.contact_street, ';
    $query .= 'c.contact_zip, ';
    $query .= 'c.contact_city, ';
    $query .= 'c.contact_phone, ';
    $query .= 'p.package_name, ';
    $query .= 'p.package_price, ';
    $query .= 'p.package_discount, ';
    $query .= 'p.package_size ';
    $query .= 'FROM users AS u ';
    $query .= 'LEFT JOIN user_has_contacts AS uhc ON uhc.user_id = :userIdFirst ';
    $query .= 'LEFT JOIN contacts AS c ON uhc.contact_id = c.contact_id ';
    $query .= 'LEFT JOIN packages AS p ON p.package_id = :packageId ';
    $query .= 'WHERE ';
    $query .= 'u.user_id = :userIdSecond ';
    $query .= 'AND ';
    $query .= 'uhc.contact_id = c.contact_id ';
    $query .= 'LIMIT 1';
    $stmt = $db->prepare($query);
    $stmt->execute(array(':userIdFirst' => $userId, ':packageId' => $packageId, ':userIdSecond' => $userId));
    $resultUser = $stmt->fetch(PDO::FETCH_ASSOC);
    if ($resultUser) {
        // RE-Nr
        $packageBillNumber = 'RE-' . date('ymdsiH') . '-' . $userId;
        // Rechnungs-Mail an Benutzer. Wenn erfolgreich verschickt, dann erst in DB speichern!
        // Rechnung erstellen und senden
        $sent = sendBill($db, $resultUser, $packageBillNumber);
    } else {
        // konnte nicht verschickt werden
        $sent = false;
    }
    if ($sent) {
        // in DB speichern
        $query = 'INSERT INTO ';
        $query .= 'user_has_packages ';
        $query .= '( user_id, package_id, package_start, package_end, package_paid, package_bill_number, package_bill_date ) ';
        $query .= 'VALUES ';
        $query .= '( :user_id, :package_id, NOW(), DATE_ADD(NOW(), INTERVAL 1 year), 0, :package_bill_number, NOW() )';
        $stmt = $db->prepare($query);
        $stmt->execute(array(':user_id' => $userId, ':package_id' => $packageId, ':package_bill_number' => $packageBillNumber));
        $addedRows = $stmt->rowCount();
        if ($addedRows > 0) {
            return true;
        } else {
            return false;
        }
    } else {
        return false;
    }
}
    if ($result) {
        $paySuccess = 'Kunde Nummer ' . $isPaid . ' hat bezahlt. Erfolgreich gespeichert.';
    } else {
        $payError = 'Vorgang konnte nicht durchgeführt werden.';
    }
}
if (isset($_GET['detail']) && $_GET['detail'] == 'send') {
    if (!isset($_SESSION['package_form'])) {
        // Send new bill
        $uhpId = filter_input(INPUT_POST, 'uhp_id', FILTER_SANITIZE_STRING);
        $packageId = filter_input(INPUT_POST, 'package_id', FILTER_SANITIZE_STRING);
        $userId = filter_input(INPUT_POST, 'user_id', FILTER_SANITIZE_STRING);
        $billDate = filter_input(INPUT_POST, 'bill_date', FILTER_SANITIZE_STRING);
        $billNo = filter_input(INPUT_POST, 'bill_no', FILTER_SANITIZE_STRING);
        $data = getBillData($db, $packageId, $userId);
        $sendBill = sendBill($db, $data, $billNo, $data['billMonth'], $data['billYear']);
        if (isset($sendBill) && $sendBill == true) {
            // Update uhp set bill no = neue Nummer und bill date = (aktuelles + 1 monat) und paid = 0
            // Dafür brauche ich entweder: 1. Die Neue Rechnungsnummer ODER 2. Die Funktion zum erstellen einer neuen RG
            $newBill = setNewBill($uhpId, $userId, $billDate, $db);
            if ($newBill) {
                $message['cls'] = 'error';
                $message['msg'] = 'Neue Rechnung wurde erstellt';
            } else {
                $message['cls'] = 'error';
                $message['msg'] = 'Neue Rechnung konnte nicht erstellt werden.';
            }
        } else {
            $message['cls'] = 'error';
            $message['msg'] = 'Rechnung konnte nicht versendet werden!';
        }