This project contains a set of automation scripts for RMS Cloud and Newbook, designed to streamline various processes for Landstar Management.
- Clone this repository to your local machine.
- Ensure you have Python 3.7+ installed.
- Create a virtual environment:
python -m venv venv
- Activate the virtual environment:
- On Windows:
venv\Scripts\activate
- On macOS and Linux:
source venv/bin/activate
- On Windows:
- Install the required packages:
pip install -r requirements.txt
includes/
: Contains helper classes and utility functionsSeleniumHelper.py
: Helper functions for Selenium operationsPropertyManager.py
: Manages property-related operationsTaxManager.py
: Handles tax-related operationsAttributeManager.py
: Manages attribute-related operationsSiteProcessor.py
: Processes individual sitesconstants.py
: Stores project-wide constantslogging_config.py
: Configures logging for all scriptsBaseAutomation.py
: Base class for all automation scriptsBaseManager.py
: Base class for manager classesargument_parser_utility.py
: Utility functions for parsing command-line argumentsdecorators.py
: Contains custom decoratorsglobals.py
: Global functions and variables
/
: Contains the main automation scriptsREADME.md
: This filerequirements.txt
: List of Python package dependencies
Parses through all sites for a given property and adds/removes attributes to each site.
Usage:
python attributes_processor.py RMS_USERNAME RMS_PASSWORD "Property Name" [--start XXX] [--debug]
Used for bulk deletion of a given rate lookup.
Usage:
python bulk_rate_delete.py RMS_USERNAME RMS_PASSWORD [--debug]
Used for bulk rate reassignment of a given rate table between properties.
Usage:
python bulk_rate_table_reassign.py RMS_USERNAME RMS_PASSWORD PROPERTY_TO_SELECT PROPERTY_TO_REMOVE [--debug]
Orders site types by their numerical values rather than alphabetically.
Usage:
python site_order_by_numeric.py RMS_USERNAME RMS_PASSWORD [--debug]
Processes taxes for all sites of a given property.
Usage:
python tax_processor.py RMS_USERNAME RMS_PASSWORD "Property Name" [--start XXX] [--debug]
Gathers vital details and a snapshot of the Guest Bill for a list of reservation IDs.
Usage:
python res_work.py RMS_USERNAME RMS_PASSWORD path_to_input_csv.csv [--headers] [--update] [--start XXX] [--removefees] [--removejournal] [--debug]
Extracts reservation data from Newbook.
Usage:
python newbook_res.py RMS_USERNAME RMS_PASSWORD path_to_input_csv.csv [--start XXX] [--debug]
A multi-threaded version of the Newbook Reservation Dump for improved performance.
Usage:
python threaded_newbook_res.py RMS_USERNAME RMS_PASSWORD path_to_input_csv.csv [--start XXX] [--threads N] [--debug]
create_embedded_viewer.py
: Creates an embedded viewer for booking data.automation_template.py
: Template for creating new automation scripts.
To create a new automation script:
- Copy
automation_template.py
and rename it to your new script name. - Modify the new class (inheriting from
BaseAutomation
) to include your specific automation logic. - Implement the
perform_automation
method with your automation steps. - Update the argument parser if you need additional command-line arguments.
- Implement any additional methods needed for your specific automation tasks.
- If you encounter any issues with element locators, check the
constants.py
file and update the XPaths if necessary. - For logging-related issues, refer to the
logging_config.py
file and ensure it's properly configured for your environment. - If you're having trouble with a specific script, check the individual script's logging output for more detailed error messages.
- When creating new automations, ensure you're properly inheriting from the
BaseAutomation
class and implementing theperform_automation
method.
For any other issues or questions, please contact the Drew Meyer