Całkowity przebieg: km
0 ) : ?>Całkowity koszt serwisu: zł
Status: status ) ); ?>
purchase_date ) : ?>Data zakupu: purchase_date ); ?>
initial_cost ) : ?>Koszt zakupu: initial_cost, 2, ',', ' ' ); ?> zł
notes ) : ?>Notatki:
notes ) ); ?>
prefix . 'statpress_equipment'; $message = ''; $notice_class = ''; // Handle POST requests (add/update) if ( isset( $_POST['submit'] ) && check_admin_referer( 'statpress_manage_equipment' ) ) { $item_id = isset( $_POST['equipment_id'] ) ? intval( $_POST['equipment_id'] ) : 0; $data = array( 'name' => sanitize_text_field( $_POST['equipment_name'] ), 'type' => sanitize_text_field( $_POST['equipment_type'] ), 'purchase_date' => empty( $_POST['purchase_date'] ) ? null : sanitize_text_field( $_POST['purchase_date'] ), 'initial_cost' => empty( $_POST['initial_cost'] ) ? null : floatval( str_replace( ',', '.', $_POST['initial_cost'] ) ), 'status' => sanitize_text_field( $_POST['status'] ), 'notes' => sanitize_textarea_field( $_POST['notes'] ), ); if ( ! empty( $data['name'] ) ) { if ( $item_id > 0 ) { // Update $result = $wpdb->update( $table_equipment, $data, array( 'id' => $item_id ) ); if ( false !== $result ) { $message = 'Sprzęt zaktualizowany.'; $notice_class = 'notice-success'; } else { $message = 'Błąd podczas aktualizacji sprzętu: ' . $wpdb->last_error; $notice_class = 'notice-error'; } } else { // Insert $result = $wpdb->insert( $table_equipment, $data ); if ( false !== $result ) { $message = 'Sprzęt dodany.'; $notice_class = 'notice-success'; } else { $message = 'Błąd podczas dodawania sprzętu: ' . $wpdb->last_error; $notice_class = 'notice-error'; } } } else { $message = 'Nazwa sprzętu nie może być pusta.'; $notice_class = 'notice-error'; } } // Handle GET requests (delete) if ( isset( $_GET['action'], $_GET['id'], $_GET['_wpnonce'] ) && 'delete' === $_GET['action'] ) { if ( wp_verify_nonce( $_GET['_wpnonce'], 'statpress_delete_equipment_' . $_GET['id'] ) ) { // Sprawdź, czy sprzęt nie jest używany $usage_count = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM {$wpdb->prefix}statpress_activities WHERE equipment_id = %d", intval( $_GET['id'] ) ) ); if ( 0 == $usage_count ) { $wpdb->delete( $table_equipment, array( 'id' => intval( $_GET['id'] ) ) ); // Usuń również powiązane wpisy w dzienniku $wpdb->delete( $wpdb->prefix . 'statpress_equipment_log', array( 'equipment_id' => intval( $_GET['id'] ) ) ); $message = 'Sprzęt usunięty.'; $notice_class = 'notice-success'; } else { $message = 'Nie można usunąć sprzętu, ponieważ jest przypisany do ' . $usage_count . ' aktywności. Zmień jego status na "wycofany".'; $notice_class = 'notice-error'; } } } // Prepare for form (for editing) $item_to_edit = null; $statuses = array( 'aktywny', 'sprzedany', 'wycofany' ); if ( isset( $_GET['action'], $_GET['id'] ) && 'edit' === $_GET['action'] ) { $item_to_edit = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $table_equipment WHERE id = %d", intval( $_GET['id'] ) ) ); } $table_activities = $wpdb->prefix . 'statpress_activities'; $equipment_list = $wpdb->get_results(" SELECT eq.id, eq.name, eq.type, eq.status, SUM(a.distance) as total_distance, COUNT(a.id) as activity_count FROM {$table_equipment} eq LEFT JOIN {$table_activities} a ON eq.id = a.equipment_id GROUP BY eq.id, eq.name, eq.type, eq.status ORDER BY eq.status ASC, eq.name ASC" ); ?>
| Nazwa | Przebieg | Liczba aktywności | Status | Akcje |
|---|---|---|---|---|
| name ); ?> type ); ?> |
total_distance ? number_format( $item->total_distance, 2, ',', ' ' ) . ' km' : '0 km'; ?> | activity_count; ?> | status ) ); ?> | Dziennik / Serwis Edytuj Usuń |
Nie podano ID sprzętu.
'; return; } $table_equipment = $wpdb->prefix . 'statpress_equipment'; $table_equipment_log = $wpdb->prefix . 'statpress_equipment_log'; $table_activities = $wpdb->prefix . 'statpress_activities'; $message = ''; $notice_class = ''; // --- Handle Service Log form submissions (add/update/delete) --- if ( isset( $_POST['submit_log'] ) && check_admin_referer( 'statpress_manage_equipment_log' ) ) { $log_id = isset( $_POST['log_id'] ) ? intval( $_POST['log_id'] ) : 0; $log_data = array( 'equipment_id' => $equipment_id, 'log_date' => sanitize_text_field( $_POST['log_date'] ), 'log_type' => sanitize_text_field( $_POST['log_type'] ), 'description' => sanitize_textarea_field( $_POST['description'] ), 'cost' => empty( $_POST['cost'] ) ? null : floatval( str_replace( ',', '.', $_POST['cost'] ) ), 'mileage' => empty( $_POST['mileage'] ) ? null : intval( $_POST['mileage'] ), ); if ( ! empty( $log_data['log_date'] ) && ! empty( $log_data['log_type'] ) && ! empty( $log_data['description'] ) ) { if ( $log_id > 0 ) { $wpdb->update( $table_equipment_log, $log_data, array( 'id' => $log_id ) ); $message = 'Wpis w dzienniku zaktualizowany.'; } else { $wpdb->insert( $table_equipment_log, $log_data ); $message = 'Wpis dodany do dziennika.'; } $notice_class = 'notice-success'; } else { $message = 'Wypełnij wymagane pola (Data, Typ, Opis).'; $notice_class = 'notice-error'; } } if ( isset( $_GET['action'], $_GET['log_id'], $_GET['_wpnonce'] ) && 'delete_log' === $_GET['action'] ) { if ( wp_verify_nonce( $_GET['_wpnonce'], 'statpress_delete_log_' . $_GET['log_id'] ) ) { $wpdb->delete( $table_equipment_log, array( 'id' => intval( $_GET['log_id'] ) ) ); $message = 'Wpis z dziennika usunięty.'; $notice_class = 'notice-success'; } } // --- Get Data --- $equipment = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $table_equipment WHERE id = %d", $equipment_id ) ); if ( ! $equipment ) { echo 'Nie znaleziono sprzętu o podanym ID.
Całkowity przebieg: km
0 ) : ?>Całkowity koszt serwisu: zł
Status: status ) ); ?>
purchase_date ) : ?>Data zakupu: purchase_date ); ?>
initial_cost ) : ?>Koszt zakupu: initial_cost, 2, ',', ' ' ); ?> zł
notes ) : ?>Notatki:
notes ) ); ?>