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!'; }