I would…
- Take a back-up of the cleints database with you
- Do what you can with DB-Tools imports
- Work out what else needs to be implemented
- Write specific SQL scripts to alter the DB for the other elements that cannot be done via DB-Tools
- Test it
- Test it again
- Go to the client, take another backup
- Deploy you DB-Tools and SQL scripts
- Test it, if it works, leave it. If not, roll back to the DB you just backed up
I am working out something similar to streamline the process of setting up the SambaPOS implementation I have built for my business. For example, I need to add a sales tax…
#Using DB-Tools I create…
- A tax template called “IVA”
- A transaction type called "SALES Tax - IVA
#Using SQL…
I map this tax to the apropriate product categories
BEGIN TRANSACTION
DECLARE @NewID int;
DECLARE @TransactionTypeID int;
DECLARE @SalesTicketID int;
SET @TransactionTypeID = (SELECT ID FROM AccountTransactionTypes WHERE Name = 'SALES Tax - IVA')
SET @SalesTicketID = (SELECT ID FROM TicketTypes WHERE Name = 'SALES Ticket')
INSERT INTO TaxTemplates (SortOrder,Rate,Rounding,Name,AccountTransactionType_Id) VALUES (0,16,0,'IVA',@TransactionTypeID);
SELECT @NewID = scope_identity();
INSERT INTO TaxTemplateMaps (TaxTemplateId,MenuItemGroupCode,MenuItemId,TerminalId,DepartmentId,UserRoleId,TicketTypeId) VALUES (@NewID,'BCDs',0,0,0,0,@SalesTicketID)
INSERT INTO TaxTemplateMaps (TaxTemplateId,MenuItemGroupCode,MenuItemId,TerminalId,DepartmentId,UserRoleId,TicketTypeId) VALUES (@NewID,'Courses',0,0,0,0,@SalesTicketID)
INSERT INTO TaxTemplateMaps (TaxTemplateId,MenuItemGroupCode,MenuItemId,TerminalId,DepartmentId,UserRoleId,TicketTypeId) VALUES (@NewID,'Diving',0,0,0,0,@SalesTicketID)
INSERT INTO TaxTemplateMaps (TaxTemplateId,MenuItemGroupCode,MenuItemId,TerminalId,DepartmentId,UserRoleId,TicketTypeId) VALUES (@NewID,'Masks',0,0,0,0,@SalesTicketID)
INSERT INTO TaxTemplateMaps (TaxTemplateId,MenuItemGroupCode,MenuItemId,TerminalId,DepartmentId,UserRoleId,TicketTypeId) VALUES (@NewID,'Rental',0,0,0,0,@SalesTicketID)
INSERT INTO TaxTemplateMaps (TaxTemplateId,MenuItemGroupCode,MenuItemId,TerminalId,DepartmentId,UserRoleId,TicketTypeId) VALUES (@NewID,'Wetsuits',0,0,0,0,@SalesTicketID)
COMMIT
This is risky to apply at whim, but if you already have the customer’s DB, then you know exactly what valeus you will be altering.
This is also probably terribly inefficient SQL and @QMcKay can probably give you some good tips on improving this type of thing.