__eva('Selected'), self::PENDING => __eva('Pending'), self::PENDING_PAYMENT => __eva('Pending Payment'), self::BOOKED => __eva('Confirmed'), self::CONFIRMED => __eva('User Confirmed'), self::CANCELLED => __eva('Cancelled'), self::DENIED => __eva('Denied'), self::NO_SHOW => __eva('No show'), self::WAIT_LIST => __eva('No show'), self::LATE => __eva("lLate"), self::PARTIALLY_ARRIVED => __eva("Partially Arrived"), self::ARRIVED => __eva("Arrived"), self::PARTIALLY_SEATED => __eva("Partially Seated"), self::SEATED => __eva("Seated"), self::APPETIZER => __eva("Appetizer"), self::ENTREE => __eva("Entree"), self::DESSERT => __eva("Dessert"), self::CHECK_DROPPED => __eva("Check dropped"), self::PAID => __eva('Paid'), self::BUSSING => __eva('Bussing'), self::FINISHED => __eva('Finished'), ]; } public static function label($status) { $list = self::listing(); return isset($list[$status]) ? $list[$status] : ucfirst($status); } // OLD use (for resources) public static function styles() { return [ self::SELECTED => 'status-selected', self::PENDING => 'status-pending', self::CONFIRMED => 'status-confirmed', self::CANCELLED => 'status-cancelled', self::DENIED => 'status-denied', self::SEATED => 'status-seated', self::PAID => 'status-paid', ]; } // Son los que se usan en el panel de control public static function all_allowed() { if (defined('ALEXR_PRO_VERSION')) { return [ 'pending', //'pending_payment', 'booked', // Restaurant confirmed 'confirmed', // User confirmed 'seated', 'paid', 'finished', 'denied', 'cancelled', 'no-show' ]; } return [ 'pending', 'booked', // Restaurant confirmed 'seated', 'paid', 'finished', 'denied', 'cancelled', 'no-show' ]; } // Dashboard al crear nueva reserva status aceptados public static function for_new_bookings() { return [ 'pending', //'wait-list', 'booked', 'confirmed', 'seated', //'cancelled' ]; } // Los asientos ocupados para calcular los libres // FINISHED no cuenta: mesa terminada = mesa libre (ocupacion concurrente) public static function occupied() { return [ self::SELECTED, self::PENDING, self::PENDING_PAYMENT, self::BOOKED, self::CONFIRMED, self::SEATED, self::PAID, //self::FINISHED, ]; } // Para contadores ACUMULADOS del dia/turno (topes de aforo total, // reservas nuevas recibidas por slot): aqui FINISHED si debe seguir // contando, porque una reserva terminada ya consumio aforo del servicio public static function occupied_or_finished() { return array_merge(self::occupied(), [self::FINISHED]); } // Los asientos ocupados en total incluso reservas ya terminadas // Aparece en las shifts en el popup de crear reservas public static function occupied_not_selected() { return [ self::PENDING, self::PENDING_PAYMENT, self::BOOKED, self::CONFIRMED, self::SEATED, self::PAID, self::FINISHED, ]; } public static function all_status_no_selected() { return [ self::PENDING, self::PENDING_PAYMENT, self::BOOKED, self::CONFIRMED, self::SEATED, self::PAID, self::FINISHED, self::CANCELLED, self::DENIED, self::NO_SHOW ]; } // Reservas validas hechas para las metricas public static function valid() { return [ //self::SELECTED, //self::PENDING, //self::PENDING_PAYMENT, self::BOOKED, self::CONFIRMED, //self::LATE, //self::PARTIALLY_ARRIVED, //self::PARTIALLY_SEATED, self::SEATED, self::PAID, self::FINISHED //self::APPETIZER, //self::ENTREE, //self::DESSERT, //self::CHECK_DROPPED, ]; } }