15. Jun 2017
Added MS AD user Attribute "employeeNumber" to the "MSAD Keys To Get" and assigned to the fw user Number.
Implemented to be able to archive "Purchase Orders" and "Incoming Invoices" (IIs), see details!
"Purchase Orders" (POs) and "Incoming Invoices" (IIs) can now be archived, same as Closed Projects and Done Media Orders.
Archiving old POs and IIs is recommended to keep the farmerswife system as fast as possible.
Requirements to Archive POs:
- PO must be on Status "Approved".
- Linked Project(s) must be archived. When archiving Projects, it now also offers to archive linked POs and IIs to be archived, if the archiving-requirements are met.
- Linked Incoming Invoices must be archived.
Requirements to Archive IIs:
- Cancelled II's can be archived, regardless of other rules.
- Added to fw Client > Toolbox > Settings > Server Setup > "Archiving Rules" section > "Incoming Invoices:"
- "Must Be Set As Paid"
- "Must Be Set As Transferred"
- All lines must be "Approved" or "Rejected".
New Microsoft Azure Active Directory integration to sync users and authenticate through the Windows Azure API depending on user's settings, see details!
This integration is free of charge and does not require to be licensed.
# Added these 3 new main settings:
- fw Server > Setup > Users > Microsoft Azure Active Directory Connector; more info below.
- fw Server/Client > Modify User > Microsoft Azure Active Directory Connector.
- fw Client > Toolbox > Settings > Server Setup > Microsoft Azure Active Directory Connector.
# Requirements/prerequisites to be able to connect farmerswife (fw) and Azure AD:
1. An Office 365 account.
2. "Applications" are used in the Azure integration for authentication and authorization.
3. Register a new app (e.g. called "farmerswife") in Azure Active Directory (Using the 'Web app/Api' type).
VERY IMPORTANT: first create and set the "permissions" as per the below info. And only as the last step, create the "Secret Key" for the app on Azure.
For the integration configuration in fw Server > Setup > Users > Microsoft Azure Active Directory Connector, you'll need:
- "App Client Id" (from Windows Azure AD > App Settings).
- "App Secret Key" (from Windows Azure AD > App Settings).
- "OAuth 2.0 Token Endpoint" (from Windows Azure AD > App Registration).
- "MS Azure AD GRAPH API Endpoint" (from Windows Azure AD > App Registration).
4. Create in Azure Active Directory "Groups member Users" to be synced to farmerswife.
IMPORTANT: you need to create "Groups" per each saved fw "Permission Profile" and fw "Web Permission Profile".
# The actual integration setup:
1. Go to fw Server > Setup > Users > "Microsoft Azure Active Directory Connector" to configure the connection parameters as per the above information and the mapping from Azure AD Groups/Users into fw "Users Groups".
2. Click "Test" button and you should see: "Windows Azure Connector Successfully Tested" ... if everything was configured correctly.
3. Click "OK" to close the open fw Server > Setup to save the configuration.
4. Go to fw Client > Toolbox > Settings > Server Setup > Microsoft Azure Active Directory Connector:
- Click on "Sync Now", to do a first sync.
- Select a "Sync Time" interval.
5. Optionally go to fw Server/Client > Modify User > Microsoft Azure Active Directory Connector to change Microsoft Azure AD Connector settings on an specific user.
# Additional info and more settings:
- The user's fields synced from Azure to farmerswife are the following: Username, First Name, Last Name, Number*, Email, Title, Phone Direct, Phone Mobile, Address and Fax.
- The "App Secret Key" must be updated in farmerswife every 1 or 2 years depending on your Azure Active Directory app configuration.
- *The farmerswife User's "Number" can be synced by using MS Azure AD Extension Attributes and the field in fw Server > Setup > Users > MS Azure Extension Attribute ID To Import User Number.
- Implemented in fw Server > Setup > Users > Microsoft Azure Active Directory Connector > "Strip Domain Name From Username When Creating".
- Implemented Sync Time at an exact time to sync every 24h in fw Client > Toolbox > Server Setup > Microsoft Azure Active Directory Connector > Sync Time.
- Implemented in fw Client > Toolbox > Settings> Server Setup > Microsoft Azure Active Directory Connector > "Setup" to manage the "User Groups" and added a "Test" button to verify the settings.
- This integration supports "nested groups" (groups within groups) when syncing users.
- The "User Groups" respect the order in which they are listed within the "User Groups".This is useful when the "same user" exists in multiple Groups and should get the "most or highest permissions assigned". Since there is no such thing as "most or highest" permissions in farmerswife, this can still be achieved by creating the User Group with the "most or highest permissions" first. This same user will then get this Groups' Permission Profile assigned, and if present on following Groups, these will not be applied.
Added support for Project Global Custom Fields on Booking/Object Class level when using Booking Templates.
Fixed a bug causing wrong Actual Totals per Account caused by wrong cached key values.
Fixed a bug in definition of the Budget structure, causing that Budgets with special characters in the Account Number could not be deleted.
Fixed an issue in the calculation of Discount per line item in a Budget in certain scenarios, see details.
Fixed an issue in the calculation of the Discount per line item in a Budget. when a multiple day Booking with "View Class Bookings As Separate Days" was active. The system would assume 1 unit, when it should be a unit per booking day.
Fixed an issue related to selection of Actuals when a filter was applied, see details.
Now, filtered Actuals will not be included in the selection when using the "SHIFT" key.
Refactored code to correctly attach multiple Objects/Classes when dragging, dropping & creating a Booking from a Budget Account Detail in Scheduling Mode.
Now, the internal Object ID is also passed along, so the Budget Account Detail can be correctly matched to the Booking Object.
Implemented integration to Cirkus - "quick-start" from farmerswife to connect to Cirkus, invite users and sync Projects, see details!
Since v6.3 this integration between farmerswife (fw, //farmerswife.com) and Cirkus (https://cirkus.com) is available for all farmerswife customers.
Using this integration is free of charge.
What it can do:
- Quick Start from farmerswife to connect to cirkus.com and be able to:
- Create a "fw admin user" and create a first "Organization".
- Update new Organizations from Cirkus to farmerswife.
- Invite existing users from your farmerswife to the selected/created Cirkus Organization.
- Create Projects from your farmerswife to the selected/created Cirkus Organization.
- Update Task status information from Cirkus to the sync Projects in farmerswife.
- Internet access for the farmerswife Server application.
- Ideally a dedicated email account for the farmerswife system; username and password to access it.
To start setting up this integration, go to fw Client > Toolbox > Settings > Server Setup > "Cirkus Connection" > "Setup Cirkus" button.
Note: Only fw users with "Server Setup" permission can use this new "Cirkus Setup" button to initially configure the access to Cirkus. And once connected, this is used to maintain and manage the integration between these two systems.
Using the "Cirkus Setup" button the 1st time triggers the "quick-start".
The "Cirkus Setup" window informs you:
"Connect farmerswife To Cirkus Using A Cirkus Admin Account":
farmerswife Will Use This Account To Create Projects, Organizations And Users In Cirkus.
We Recommend To NOT Use Your Personal Cirkus Account.
Create A New Cirkus Admin Account Specifically For farmerswife."
"Cirkus Account Email:"
Enter here the email address of the Cirkus Account to be used as per the above info.
See below the info on the "Create A New Cirkus Account" button.
Enter here the password for the "Cirkus Account".
Use this button to stop/cancel the "Cirkus Setup".
=> "Connect" button:
This button connects farmerswife to Cirkus using an existing Cirkus "admin" account. We recommend that you create a Cirkus account specifically for your farmerswife system to use while you're setting this up the first time; see the following info.
=> "Create A New Cirkus Account" button:
This button opens the "create account" page on https://cirkus.com in a web browser for you to create a Cirkus account for your farmerswife system.
AFTER farmerswife is connected to Cirkus, the following settings within the "Cirkus Setup" window are needed, before you can start:
=> Cirkus Account:
Shows the used "Cirkus Account Email".
=> Cirkus Organization:
Shows the currently connected "Cirkus Organization Name".
NOTE: currently Users and Projects can only by created in 1 Organisation.
The "Change Cirkus Organization" button:
Use this option to add new Organizations from your connected Cirkus account to farmerswife; this will update the list of Cirkus Organizations within the "Change Cirkus Organization" button.
=> "Users To Invite":
Select which users will be invited from your farmerswife to your selected Cirkus Organization.
There are two options:
- "Invite All Users" (i.e. "Active" users in farmerswife).
- "Select Users To Invite".
We recommend you start by using "Select Users To Invite"; additional users to be invited have to be manually added via this option.
The "Invite All Users" option will continue to invite new users created in your farmerswife system.
=> "Projects To Create":
Select which Projects will be created from your farmerswife into the selected Cirkus Organization.
There are two options:
- "Create All Projects"
- "Select Projects To Create".
We recommend you start by using "Select Projects To Create"; additional Projects to be created have to be manually added via this option.
The "Create All Projects" option will continue to automatically create new Projects created in farmerswife.
The farmerswife => Cirkus projects sync includes the following features:
- Activate/Deactivate Cirkus projects when Activating/Deactivating/Cancelling Projects in your farmerswife.
- Sync of the Project Name and Number from farmerswife to Cirkus.
- Added new setting in fw Client > Toolbox > Settings > Server Setup > Cirkus Setup > "Warn For Not Done Tasks Before Deactivating Cirkus Projects". If activated this will trigger a new Warning dialog to inform the user that the Project being closed or cancelled in farmerswife still has "Not Done" tasks in Cirkus.
- Added the "Cirkus" logo with the tooltip "Open Project In Cirkus" to open the linked Cirkus project in a web browser.
- Added a new check-box: "Don't Sync To Circus" to exclude a specific Project from the Cirkus sync process.
- In case of connection problem, the farmerswife Edit Project window is immediately opened, but will display a yellow warning-triangle icon; this icon can be clicked to retry the connection.
- The "Cirkus" logo on the Edit Project window will show the Total number of not done Tasks in Cirkus for this Project.
- Added a third button on the confirmation dialog when deactivating the Project: "Close Only In farmerswife?". The result will be, that this Project is closed (Active=No") in farmerswife, but on the Cirkus-side the Project will not be closed and the status of the Tasks will no longer be updated on the farmerswife-side.
More info on synced Projects:
- If a Project that is being synced is moved to the "Cirkus Trash" (Projects > Showing Removed), that project will stay in the Cirkus Trash.
- If a Project that is being synced is moved to another Cirkus Organization, that project will continue being synced.
- But if a Project that was being synced is permanently removed from Cirkus (in Cirkus > Projects > Removed > Delete Permanently), farmerswife will create the project again, because "permanently deleting" has the same effect as never having existed before. To avoid this effect, ensure that Projects in farmerswife are no longer synced, before using "Delete Permanently".
=> "Update Time":
Allows you to set up when farmerswife will update new Users and Projects in Cirkus. During the "setup phase" it makes sense to set this to "Every 5 Minutes". During "live operations" setting the "Update Time" to "Every 60 Minutes" or even just once every 24h makes sense.
And the following actions are available:
=> "Update Now" button: To update Cirkus at the moment the user clicks on this button.
=> "Disconnect Cirkus Account": Use this to unlink the current Cirkus account used from farmerswife.
Behind the scenes:
2 new optional "server.cfg" (this file is not mandatory, but if used it's located within the fw Server's "system" folder) settings were added for this integration.
These are useful when working with separate TEST fw Server's or when needing to connect to "private-cloud Cirkus installations".
See the Release Notes top section's chapter "Running a separate TEST WIFE Server" on how to use the "server.cfg".
Since v6.3 this setting is by default enabled and thus set to "1".
And this setting controls, if in fw Client > Toolbox > Settings > Server Setup > "Cirkus Connection" > the button "Cirkus Setup" is active or not.
To disable this integration prior to a fw Server start, this setting needs to be set to "0"; so you need to have this set within the server.cfg file:
The "CIRKUS_HOST" is NOT populated by default within the "server.cfg" file; it needs to be manually added.
If this setting doesn't exists, "https://cirkus.com" is used as the default host.
To connect to a "locally installed private Cirkus cloud" set here the IP address to be used.
To test which Cirkus host is used by farmerswife, use the button "Create A New Cirkus Account" in fw Client > Toolbox > Settings > Server Setup > Cirkus Connection > Cirkus Setup, and then, if your server.cfg setting is correct, the web browser should open the url: https://YOUR_CIRKUS_HOST_HERE/#/signup.
Added two more "To Invoice Fixed Amount" options for 4 and 5 Days, see details.
Added more "To Invoice Fixed Amount" options for 4 and 5 Days to:
- Edit Project window > Booking > To Invoice menu > Invoice Fixed Amount.
- Edit Booking window Object Rate > Object Edit Rates > To Invoice > Fixed Amount.
Implemented performance improvements for the Object Accessories allocation process, see details.
The loop that gathers the Objects Accessories needed a lot of server-calls, which became very slow with complex structures.
Moved parts of the process to the fw Server to do the loops on the Objects to add Accessories that belong to those Objects.
Before this change, an example process to replace and available Class Member took 42 seconds.
Now this same process takes 7 seconds.
Implemented general performance improvements to avoid long waits and spinning balls when doing normal actions like clicks, drag & drop or typing if "Allow Chat == YES".
Fixed a bug by which the Custom Fields type File were not correctly handling some errors, see details.
This bug caused that a user could wrongly "see" a uploaded file that was actually NOT successfully uploaded or correctly internally renamed.
This was also causing that the next time the user opened the window of that Custom Field type File, that the "seemingly" correctly uploaded file was actually not there.
Implemented to be able to create "Alarms" linked to Custom Fields type Date, see details.
You can now set an Alarm on Date Custom Fields. This allows you to get Alarms for example when music rights or equipment warranties expire.
Note: Alarms only get triggered once.
# To start using this new functionality follow these steps:
- Objects Custom Fields are created and managed in fw Client > Toolbox > Settings > Server Setup > "Setup Custom Fields" button. In the "Custom Fields Setup" window select the specific Custom Field Template you want to add an "Alarm" from the "Objects" selector (the example here uses the Demo DB and the Template called "Equipment / Machine Details"). Once the Template is selected, click on the sub-menu drop-down icon on the left side and select "Edit".
Either select an existing Custom Field type "Date Widget", or create a new one by clicking on the "create new Custom Field" star-icon.
To enable the new "Alarm" functionality you need to select a value in the new "Alarm Offset Days" selector. The "Offset Days" will automatically set how many days before the Custom Field's set date the Alarm will be triggered. If you for example set the "Warranty Expiration" date on the 5th of May, and you select "Alarm Offset Days" to "-1 Days", the Alarm will be triggered on the 4th of May.
Note: If you want to have the Alarm go off on the same date as the date selected in the Custom Field you need to select "0".
# Add Alarm To Your Object
Go to fw Client > Object Manager and select an Object and click on the "Custom Field" star-icon in the bottom of the window.
Add a date in the Date field. An "Alarm Bell" icon will indicate that an Alarm is added. The Header of the Alarm will use the Name of the Date Custom Field and the Expiration Date.
Added a new Setting to the Toolbox to "Allow Sending Email Reminder To Pickup Contact When The Dispatch Has 24 hrs left", see details.
To enable this new setting, go to fw Client > Toolbox > Settings > Server Setup > Dispatch Module > "Allow Sending Email Reminder To Pickup Contact When The Dispatch Has 24 hrs left".
By enabling this option, the Dispatch's Pickup Contact will receive an email 24 hours before the Dispatch's return date and time, with the Subject "Your Dispatch has 24 hours left".
For this new setting to work:
- "Allow Mail" must be properly setup and working in fw Server > Setup > General > Allow Mail.
- "PDF Print Export Settings" must be properly setup and working in fw Server > Setup > PDF Print Export Settings.
- In fw Client > Toolbox > Settings > Server Setup > Dispatch Module > "PDF Notification Email Template" has to be set.
And, once correctly configured a new fw Server Log window line was implemented to show: "The Checker For Dispatches To Be Returned In 24 Is Enabled".
This new checker will exclude all Dispatches which were created with a duration of less than 24 hours, and will exclude Dispatches which do not have "Pickup Contact" set.
Added support for the Dispatch Report to be attached as PDF to the Email Notification which is sent when a Dispatch is returned to include the checked-in items info.
Added the Check-IN's Dispatch Number in the Email Notification's Subject, which is sent when a Check-OUT is returned.
Implemented functionality in the "Check In" or "Check Out" window for scanned items to be auto-selected, see details.
Now, when scanning Objects in the "Check In" or "Check Out" window, either the scanned Objects get added and selected, thus high-lighted in yellow. Or, the "Status" changes from "Unverified" (= grey "O") to "Verified (= green "I").
Auto scrolling to the scanned item is now also supported, which is helpful when working with Dispatch with many, many items.
Fixed a bug in the Dispatch Status Update Checker by adding a new "Overdue Status Checker", see details.
Overdue Dispatches didn't turn into Overdue Status until the next day of their Return Date.
Now the new "Overdue Status Checker" will check every 60 minutes for Overdue Dispatches. A Dispatch will be set to "Overdue" at the latest 60 minutes after the set Return Time.
Fixed a bug by which the "Divisional Managers" email notifications for missing/broken items were wrongly sent to the Dispatch Division, see details.
Before, the "Divisional Managers" email notifications for missing/broken items were sent to the "Dispatch Division", if the user checking items IN or OUT via MacKiosk did not have a Division set (=Any).
Now the "Divisional Managers" email notifications for missing/broken items are sent to the "Object's Division" (the Division set on the actual Object), i.e. to this Division's "Divisional Manager".
Implemented improvements to the Dispatch numbering system to avoid duplicates and improved the transaction handling to avoid Client crashes.
Added support for "Virtual Objects" when creating a Booking by dragging a Object Class and selecting Quantity higher than 1.
Implemented to display the involved "NO OBJECT" under its parent when using Class Accessories and Allocate Object = Yes.
Fixed a bug by which the feature Allocate Objects For Class? == YES was not working properly when using a Class with many levels of accessories.
Added a fix for a bug on Microsoft Exchange 365/EWS side (!!!); on the second sync wrongly 1 additional day is added, see details.
We have added a fix for a bug on Microsoft Exchange 365/EWS Calendar side (!!!), by which on the second sync process on an "All Day Event" wrongly 1 additional day was wrongly added to the event.
You can experience this bug in Microsoft's Calendar view by which sometimes the event is displayed in 2 days, but if you refresh the browser or open the event you can clearly see that the event starts and ends only on 1 single day.
Fixed a bug in Financial Reports related to Archived Projects, see details.
When retrieving data from Bookings, if the Project/Booking was removed/archived, the process would try to still get some of the data from that Booking.
Now, when the Booking is not returned, the data from the Invoice line item is now treated by the Financial Reports Designer as coming from an Unreferenced Invoice.
Fixed a bug by implementing a Conflict check for frame-worked Objects when swapping them.
Added conflict for booking objects that are in "User Approval Status":
- Accepted by User
Implemented Booking History support when swapping Objects in a Framework.
History shows (if applies):
Swapped: Object Class / Framework Name / Username / Full Name <> Object Class / Framework Name / Username / Full Name
Implemented user and system passwords to be "hashed & salted", see details.
We increased security due to user and system passwords being "hashed & salted"!
IMPORTANT: Password fields are now always masked to disply 10 stars, regardless of actual password length. It looks like this in any Password field in farmerswife: **********
"Hashing" is an encryption method, which changes a certain "input character string" (i.e. the plain text password) into a "encrypted / hashed fixed length output character string". This is a one way process (important!). You enter a password in plain text and the hash creates an image of it, an unreadable text. The image is what fw stores, not the password itself. The very important bit about the image is, that you can't convert it back into the password.
Before this change, user and system "owned" passwords were stored in plain text.
Example: user "Peter" has password "1".
Now, after "hashing" the same stored password image might look like this (fake info):
The "salting" ensures that the same "input character string" will never result in the exact same "fixed length output character string" by randomly changing and adding data. The "salt" process ensures that 2 users with the same password won't every have the same "hash".
Using the above example, after the "salting" the same stored hashed password could look like this (fake info):
The upgrade process is NOT reversible. Once passwords are hashed&salted, it's not possible to roll this change back to "plain text" again within the DB files at rest on the disk. The hashing&salting process takes place once during the initial upgrade to v6.3. This could take some time, and depends heavily on how much entropy the host machine has and how many "users" exist within the DB.
It looks like this during the upgrade to v6.3 on the fw Server Log window (upgrade example from the DemoDB):
11919: 20170601:1358: [ DB_UPGRADE # PW_SEC_CONFIG ] Start Processing Users
11919: 20170601:1358: [ DB_UPGRADE # PW_SEC_CONFIG ] Done Anne In 248 ms
11919: 20170601:1358: [ DB_UPGRADE # PW_SEC_CONFIG ] Done Martin In 241 ms
11919: 20170601:1358: [ DB_UPGRADE # PW_SEC_CONFIG ] Done Lisa In 262 ms
11919: 20170601:1358: [ DB_UPGRADE # PW_SEC_CONFIG ] Done Steven In 254 ms
11919: 20170601:1358: [ DB_UPGRADE # PW_SEC_CONFIG ] Done Emma In 251 ms
11919: 20170601:1358: [ DB_UPGRADE # PW_SEC_CONFIG ] Done Fred In 252 ms
11919: 20170601:1358: [ DB_UPGRADE # PW_SEC_CONFIG ] Done Maria In 247 ms
11919: 20170601:1358: [ DB_UPGRADE # PW_SEC_CONFIG ] Done Dennis In 248 ms
11919: 20170601:1358: [ DB_UPGRADE # PW_SEC_CONFIG ] Done Peter In 254 ms
11919: 20170601:1358: [ DB_UPGRADE # PW_SEC_CONFIG ] Done Jo In 252 ms
11919: 20170601:1358: [ DB_UPGRADE # PW_SEC_CONFIG ] Done Jane In 249 ms
11919: 20170601:1358: [ DB_UPGRADE # PW_SEC_CONFIG ] Done Eric In 257 ms
11919: 20170601:1358: [ DB_UPGRADE # PW_SEC_CONFIG ] Done John In 254 ms
11919: 20170601:1358: [ DB_UPGRADE # PW_SEC_CONFIG ] End In 3 sec
11919: 20170601:1358: [ DB_UPGRADE # PW_SEC_CONFIG ] Start Processing Contacts
Deprecation Warning! The previously used "DIGEST" authentication method for the WebCal Event subscriptions is no longer supported! This is because "digest" requires the password to be in plain text to replicate the sum. Instead "BASIC" authentication method is now used.
MySQL data interface Warning. The definition of the "password" field in the "user" tables has changed its length from 32 to 128. And it no longer stores the plain password.
Implemented "Hotkey" support to run a Financial Report with a predefined Template on selected Projects from the Long Form, see details!
- To assign a Hotkey to a Financial Report go to: fw Client > Toolbox > Settings > Miscellaneous > Hotkeys.
- Load the Projects to be included in the Financial Report in Long Form > Projects tree (required).
- If multiple Projects are loaded in the Long Form > Projects tree, but none is selected, all loaded Projects will be selected when opening the assigned Financial Report.
- If no Projects are loaded in the Long Form > Projects tree, the process is stopped.
- Additionally, you can select specific items in the Long Form > Projects tree and Long Form > Objects tree. When using the defined Hotkey, the assigned Financial Report will be opened for the selected Projects and Items (if booked on the selected Projects).
- If no items are selected, all items booked on the selected Projects will be respected when opening the assigned Financial Report.
- If no time range is selected in Long Form > View Port, all events booked on the selected Projects will be respected.
- If a time range is selected in Long Form > View Port, only events booked within the selected time range will be respected when using the defined Hotkey.
Fixed a bug wrongly preventing the Hotkeys to work when using the Toolbox, see details.
If a Toolbox pane was selected, but the "cursor focus" was not in the search field, the Hotkeys would not work.
Now, if the current selected pane is in the Toolbox, the Hotkeys will still work, but not when editing a text field, i.e. all "search fields are text fields".
Changed the Discount rounding on Invoice creation.
Now, when the internal 3rd decimal is a 5 or higher, it will now round up instead of down.
Fixed 3 issues when Part Invoicing all related to the search filter functionality, see details.
- Changed to sort Class Bookings (CBS) by booking date, not creation date.
- Apply filter when moving all visible Bookings from Not Selected to Selected.
- Reset of filter text upon new calls.
Fixed a bug in "Invoice Remove" when offering source Media Orders to change from Invoiced to Done, see details.
The system would not check the source of the invoice lines to find secondary Media Orders result of the merge.
Now all line sources are checked to present all involved Projects and Media Orders.
Removed the old legacy "External Access" validation on Web Shared Reports.
Implemented the ability to view and replace an Object (with an available Class Member) on a multiple-day Class Booking for a "Marked Time Range", see details.
Added two options to the Booking Menu > Booking Object:
- "Replace With Available Class Member (Time Range)"
- "Show Available Class Members (Time Range)"
This works via the Long Form > View Port and via drag and drop (Toolbox > Objects, Long Form > Object tree, ...).
- "Replace With Available Class Member" (Time Range) is deactivated for frameworked bookings.
In the Hourline or Long Form, mark the days of the multiple-day Booking you want to replace (e.g. Anne), and then drag the new Object (e.g. Dennis) over Anne's Booking. A new dialogue box will ask whether or not you want to use the Time Range. All you have to do is press YES and Anne will only be replaced for the marked days on the Booking.
You can also mark a time range and then from a Booking Menu (Booking Object > Show Available Class Members (Time Range)) you can ask farmerswife to show the Available Class Members for that period. This is convenient if you are juggling a lot of Resources. You can also ask farmerswife to "Replace With Available Class Member" so a new window opens, which lets you choose a Staff member or Object of the same type or function.
Fixed a bug on MacKiosk wrongly causing that the login-process would hang in a very specific scenario.
Implemented popup menu in Media Order window to have the ability to create new orders from defined ORDERS, custom or how it already worked with sources.
As you clicked on the Media Order icon at the top of the New Media Order window, the "Select Source(s) For Media Order" window opened to first select source(s) from the Media Library, and then select the Media Order service.
Now, as you click on this icon, there is a pop-up menu with this existing option at the top, plus now you can select a Media Order service directly without needing to connect to a source from the Media Library.
Fixed a bug in Navision "Financial Report Export" causing the fw Client to crash when using the "Preview" button and exporting to a .CSV.
0 hours can now be timereported from 0:00 to 0:00
Fixed a bug in the Public Holiday Calendar for Australia, that would crash the Web Client on login.
Implemented for the "Global Notifications email" to display the Booking Custom Fields and Owner name, see details.
Implemented for the "Global Notifications email" in fw Client > Toolbox > Settings > Notifications ... these two new check-box settings:
- Include Booking Custom Fields
- Include Booking Owner (Created By)
Implemented functionality to also support e.g. "With Bookings" filters when using "Selecting Objects In Tree" in the "Select Objects" window.
Fixed a fw Client crash in Long Form > Objects tree > User icon > Reports > Object Report - caused by the Day History data.
Added missing support for unlimited Class Accessories levels when using "Use First Pick Object If Booking Status Is Set To Other Than Confirmed".
The mentioned setting is located in fw Client > Toolbox > Settings > Class / Object > "Use First Pick Object If Booking Status Is Set To Other Than Confirmed".
Fixed a bug causing that the Accessories of the Object Classes were not being populated correctly.
Added functionality to fix "random size Zero Bytes Invoice PDF" from being sent.
This will avoid any empty file from being process, when it should not be processed.
Added "Created By" and "Modified By" info in Personnel Management events window, see details.
When you create a Personnel roster event ("Personnel Management" event), previously there was no additional information on who created it or who later modified the Event. Now you can see WHO created and last modified the event.
IMPORTANT: This new "Created By" and "Modified By" only applies to newly created Personnel Management events (Personnel Bookings) created after the upgrade to v6.3.
Implemented fw Server-side support to setup multiple PDF printers for "Web Shared Reports" to adapt them to the desired screen format, see details.
You need to always create and add new printers in/on the actual "printer tool" ...
... on macOS: PDFwriter
... on Windows: PDFcreator.
AND on the fw Server:
To configure multiple printers go to: fw Server > Setup > General > PDF Print Export Settings > green "+" icon.
Once you've created, configured and tested them, they will be added below the "Default Printer" as "Additional Printers".
Now go to: fw Client > Toolbox > Settings > Server Setup > "Web Shared Reports" button > "PDF Printer" selector widget and select here the previously fw Server-side pre-configured printers.
When using e.g. "PDFCreator" for fw Server-side-PDF-printing on Windows, use this new feature by also adding more printers per layout in PDFCreator > Application Settings > Printers > "Add Printer" button.
Fixed a bug in Project Sell Price Operators causing Decimal values to not be correctly calculated.
Cleaned up the Public Holiday calendars for all available countries.
fw Client > Toolbox > Settings > Server Setup > Public Holiday > sub-menu.
Available countries are:
- United Kingdom
- United States
Fixed a bug that resulted in the Long Form not being updated when "All Public Holiday" calendars were removed from system.
fw Client > Toolbox > Settings > Server Setup > Public Holiday > sub-menu "Clear All Public Holidays From The System".
Fixed multiple issues in Public Holiday calendar functionality, see details.
- Import of Public Holiday calendars via fw Client > Toolbox > Settings > Server Setup > Public Holiday would pair dates and their information incorrectly.
- Using "View Full List" would randomly switch all dates and information around, making it impossible to see which dates corresponded to which information.
Implemented new licensed fw REST API v1.0 with RAML based documentation, see details.
This is v1.0 of a new farmerswife REST API.
The access modalities are still work in progress, and will become clear after the Release of v6.3.
Access to the REST API is free of charge, but requires to be licensed.
Actual "Integration Support" is not covered by any Support Agreement. This needs to be purchase separately. This can involve work flow consultancy, 2nd or even 3rd level support assistance, end user training, etc..
Expanding to not yet supported areas or expanding functionality is subject to purchased prioritised feature implementation.
# First available areas and available requests in v1.0:
- Authentication (/auth/token => POST)
- Events (/event => GET, POST, PUT)
- Projects (/project => GET)
- User Settings (/user/settings => GET)
- Objects (/object => GET)
- Timereporting (/timereport => GET, POST, PUT)
# Base requirements for v1.0 are:
- Active Gold Support to get access and for any fw REST API related support assistance additionally purchased consultancy.
- Access to the API needs to be licensed.
- New license files will include access to the mentioned external Developer Documentation.
- Essential for any integration with the farmerswife REST API is for an external developer to work with THE senior in-house farmerswife Advanced "farmer" user.
# How other developers can use the fw REST API documentation based on RAML 0.8:
- An external developer can open, read and use the API reference documentation file in HTML format.
- Install Postman App from https://www.getpostman.com/.
- Disable SSL Validations in Postman > Settings.
- The provided API reference documentation file in HTML format should be imported to the resulting folder into "Postman"; the developer can then quickly have a new "Postman Collection" to use for testing.
Fixed a bug in rounding of financial values when applying discounts in certain scenarios, see details.
- Edit Project window
- Joborder window
- Budget window
- Work Order window.
- Booking Rates calculation
- Financial Reports Line sell for invoice lines.
Example of the rounding issue: Sell Rate: 37.50 and apply Discount: 55% == 16.875
Previously wrongly rounded result: 16.87
Now rounding result: 16.88
Implemented for the MySQL data interface to populate two new tables for Project > Price Agreements, see details.
To start using this new Tables, go to fw Server > Setup > General > MySQL section > "Select Tables button" > projects > "project_views" <= make sure that this table "project_views" is now also selected.
IMPORTANT: Activating the population of these tables will cause the "Full MySQL Dump" to take a lot longer than before.
An example for a very big live customer DB:
Full Dump before: 43 min.
Full Dump after 2h 44min.
NOTE: We have optimised this as much as possible. Populating the data requires a lot of complex calculations!
The only way to improve this, is to Archive old Projects and Media Orders, thus reducing the amount of data.
Once the above mentioned table is selected fw Server-side, this will create and populate these two new tables:
Table 1) "projects_views_agreements":
Description: Price Agreements from Projects Views.
Primary Key: project_id, from_view and id
Foreign Keys: project_id > Projects.id; from_view > projects_views.name
project_id, from_view, id, name, total (~ "Fixed Price" in fw), colour, text note, is_default, draw order, no_discount (~ "Total Without Discount" in fw), discount_money (~ "Discount" in fw), discount_perc (~ "Discount Percentage" in fw)
Table 2) "projects_views_agreements_lines":
Description: Reference to Project lines > Price agreements from Projects Views.
Primary Key: project_id, from_view, agreement_id and object_id
Foreign Keys: project_id > Projects.id; from_view > projects_views.name; agreement_id > projects_views_agreements.id; object_id > projects_* or cbs_*
project_id, from_view, agreement_id, object_id, discountable, no_discount (~ "Total Without Discount for the line" in fw), , discount_money (~ "Discount for the line" in fw), discount_perc (~ "Discount Percentage for the line" in fw)
Since 6.3 rev. 16754 changed data type from FLOAT to DECIMAL for monetary values in projects_views_agreements and projects_views_agreements_lines.
Fixed the inconsistent/non-uniform way to display the Total Hours in Personnel > User Report (Multiple Users) now using decimals for all fields, see details.
This fix applies to fw Client > Long Form > Personnel > Reports > User Report (Multiple Users).
Fixed the inconsistent/non-uniform way to display the Total Hours by now using decimals for all the fields related to Personnel Total Hours.
When now using the "Open As Spreadsheet" feature, the Personnel Total Hours should now match what you see within the User Report Print Designer.
Added support to be able to book pure Object Classes, see details!
Added a new Web Profile setting for Events called "View And Book Object Classes As Objects".
Go to: fw Client > Object Manager > Modify User window > Web Profile Manager > Events > "View And Book Object Classes As Objects" to enable it.
After this setting is activated, there will then be a new option within the "Object Selector" browsing into the Object Class called "Pure object class". Using this option will then book the Object Class in the same way as booking an Object.
NOTE: To "book pure Object Classes" will be supported on the iOS fw app after v5.0.8; the following version is in progress of being submitted to Apples App Store.