From 30b493e2f972dc61af5df9739925f9d0a2cddd49 Mon Sep 17 00:00:00 2001 From: Rick Barrette Date: Sun, 8 Mar 2026 15:14:36 -0400 Subject: [PATCH] Added support for making items inactive --- app/controllers/items_controller.rb | 2 +- app/services/item_sync_service.rb | 6 +----- db/migrate/002_create_items.rb | 1 + 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/app/controllers/items_controller.rb b/app/controllers/items_controller.rb index d2f73ba..5679250 100644 --- a/app/controllers/items_controller.rb +++ b/app/controllers/items_controller.rb @@ -13,7 +13,7 @@ class ItemsController < ApplicationController def autocomplete term = params[:q].to_s - items = Item.where("description LIKE ?", "%#{term}%").order(:description).limit(20) + items = Item.where("description LIKE ?", "%#{ActiveRecord::Base.sanitize_sql_like(term)}%").where(active: true).order(:description).limit(20) render json: items.map { |i| { id: i.id, text: i.description, price: i.unit_price } diff --git a/app/services/item_sync_service.rb b/app/services/item_sync_service.rb index 9947530..6f7a9b7 100644 --- a/app/services/item_sync_service.rb +++ b/app/services/item_sync_service.rb @@ -17,16 +17,12 @@ class ItemSyncService < SyncServiceBase Item end - # Determine if the remote entity should be deleted locally (e.g. if it's marked inactive in QBO) - def destroy_remote?(remote) - !remote.active? - end - # Map relevant attributes from the QBO Employee to the local Employee model def process_attributes(local, remote) local.id = remote.id local.description = remote.description local.unit_price = remote.unit_price + local.active = remote.active? end end \ No newline at end of file diff --git a/db/migrate/002_create_items.rb b/db/migrate/002_create_items.rb index e90138c..3c5db50 100644 --- a/db/migrate/002_create_items.rb +++ b/db/migrate/002_create_items.rb @@ -17,6 +17,7 @@ class CreateItems < ActiveRecord::Migration[7.0] scale: 4, null: false, default: 0 + t.boolean :active, default: true, null: false t.timestamps end