erp_app 3.1.6 → 3.1.7
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/active_ext/ext_helpers/data_helper.rb +64 -62
- data/lib/erp_app/extensions/railties/action_view/helpers/include_helper.rb +0 -1
- data/lib/erp_app/version.rb +1 -1
- data/public/javascripts/erp_app/mobile/applications/job_tracker/app.js +3 -3
- data/public/javascripts/erp_app/mobile/applications/user_management/app/view/templates.js +1 -1
- metadata +3 -89
- data/spec/dummy/db/data_migrations/20110109173616_create_capability_scope_types.erp_tech_svcs.rb +0 -15
- data/spec/dummy/db/data_migrations/20110525001935_add_usd_currency.erp_base_erp_svcs.rb +0 -12
- data/spec/dummy/db/data_migrations/20110609150135_add_iso_codes.erp_base_erp_svcs.rb +0 -19
- data/spec/dummy/db/data_migrations/20110728201729_erp_app_setup.erp_app.rb +0 -252
- data/spec/dummy/db/data_migrations/20110728201733_update_preferences.erp_app.rb +0 -53
- data/spec/dummy/db/data_migrations/20110802200222_schedule_delete_expired_sessions_job.erp_tech_svcs.rb +0 -16
- data/spec/dummy/db/data_migrations/20110816161238_create_desktop_app_audit_log_viewer.erp_app.rb +0 -21
- data/spec/dummy/db/data_migrations/20110817160743_add_file_manager_application.erp_app.rb +0 -32
- data/spec/dummy/db/data_migrations/20110913145838_setup_compass_ae_instance.erp_base_erp_svcs.rb +0 -12
- data/spec/dummy/db/data_migrations/20111108183739_add_default_capabilities.erp_app.rb +0 -23
- data/spec/dummy/db/data_migrations/20111108183740_add_new_contact_widgets.erp_app.rb +0 -42
- data/spec/dummy/db/data_migrations/20111111144706_setup_audit_log_types.erp_tech_svcs.rb +0 -22
- data/spec/dummy/db/data_migrations/20120229160222_add_userinfo_widget.erp_app.rb +0 -29
- data/spec/dummy/db/data_migrations/20120405193721_create_party_and_role_type_for_communication_events.erp_app.rb +0 -11
- data/spec/dummy/db/data_migrations/20120411180756_create_user_management_mobile_application.erp_app.rb +0 -19
- data/spec/dummy/db/data_migrations/20120418164215_create_configuration_management_desktop_application.erp_app.rb +0 -23
- data/spec/dummy/db/data_migrations/20121116155018_create_group_relationship_and_role_types.erp_tech_svcs.rb +0 -20
- data/spec/dummy/db/data_migrations/20121130201859_upgrade_remove_system_mgmt_app.erp_app.rb +0 -16
- data/spec/dummy/db/data_migrations/20121130212146_note_capabilities.erp_tech_svcs.rb +0 -24
- data/spec/dummy/db/data_migrations/20121218175028_create_security_management_desktop_application.erp_app.rb +0 -23
- data/spec/dummy/db/data_migrations/20130422153811_upgrade_compass_ae_instances_data.erp_base_erp_svcs.rb +0 -19
- data/spec/dummy/db/data_migrations/20130422153812_add_guid_to_instances.erp_base_erp_svcs.rb +0 -10
- data/spec/dummy/db/data_migrations/20130422153813_create_job_tracker_desktop_application.erp_app.rb +0 -23
- data/spec/dummy/db/data_migrations/20130422153814_created_tracked_jobs.erp_app.rb +0 -15
- data/spec/dummy/db/data_migrations/20130422153815_add_job_tracker_mobile_app.erp_app.rb +0 -17
- data/spec/dummy/db/migrate/20130105135833_base_erp_services.erp_base_erp_svcs.rb +0 -461
- data/spec/dummy/db/migrate/20130105135834_base_tech_services.erp_tech_svcs.rb +0 -271
- data/spec/dummy/db/migrate/20130105135835_create_has_attribute_tables.erp_tech_svcs.rb +0 -39
- data/spec/dummy/db/migrate/20130105135836_create_groups.erp_tech_svcs.rb +0 -19
- data/spec/dummy/db/migrate/20130105135837_upgrade_security.erp_tech_svcs.rb +0 -54
- data/spec/dummy/db/migrate/20130105135838_upgrade_security2.erp_tech_svcs.rb +0 -270
- data/spec/dummy/db/migrate/20130105135839_base_app_framework.erp_app.rb +0 -276
- data/spec/dummy/db/migrate/20130422153805_add_txn_status.erp_base_erp_svcs.rb +0 -37
- data/spec/dummy/db/migrate/20130422153806_upgrade_compass_ae_instances.erp_base_erp_svcs.rb +0 -34
- data/spec/dummy/db/migrate/20130422153807_add_uuid_compass_ae_instance.erp_base_erp_svcs.rb +0 -17
- data/spec/dummy/db/migrate/20130422153808_add_long_lat_to_address.erp_base_erp_svcs.rb +0 -16
- data/spec/dummy/db/migrate/20130422153809_add_queue_to_delayed_jobs.erp_tech_svcs.rb +0 -14
- data/spec/dummy/db/migrate/20130422153810_add_job_tracker.erp_app.rb +0 -20
- data/spec/dummy/db/migrate/20130422153811_update_mobile_application.erp_app.rb +0 -28
- data/spec/dummy/db/schema.rb +0 -883
- data/spec/dummy/db/spec.sqlite3 +0 -0
- data/spec/dummy/log/adam.log +0 -1
- data/spec/dummy/log/spec.log +0 -107402
@@ -1,16 +0,0 @@
|
|
1
|
-
# This migration comes from erp_tech_svcs (originally 20110802200222)
|
2
|
-
class ScheduleDeleteExpiredSessionsJob
|
3
|
-
|
4
|
-
def self.up
|
5
|
-
#insert data here
|
6
|
-
date = Date.tomorrow
|
7
|
-
start_time = DateTime.civil(date.year, date.month, date.day, 2, 0, 1, -(5.0/24.0))
|
8
|
-
|
9
|
-
ErpTechSvcs::Sessions::DeleteExpiredSessionsJob.schedule_job(start_time)
|
10
|
-
end
|
11
|
-
|
12
|
-
def self.down
|
13
|
-
#remove data here
|
14
|
-
end
|
15
|
-
|
16
|
-
end
|
data/spec/dummy/db/data_migrations/20110816161238_create_desktop_app_audit_log_viewer.erp_app.rb
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
# This migration comes from erp_app (originally 20110816161238)
|
2
|
-
class CreateDesktopAppAuditLogViewer
|
3
|
-
def self.up
|
4
|
-
app = DesktopApplication.create(
|
5
|
-
:description => 'Audit Log Viewer',
|
6
|
-
:icon => 'icon-history',
|
7
|
-
:javascript_class_name => 'Compass.ErpApp.Desktop.Applications.AuditLogViewer',
|
8
|
-
:internal_identifier => 'audit_log_viewer',
|
9
|
-
:shortcut_id => 'audit_log_viewer-win'
|
10
|
-
)
|
11
|
-
|
12
|
-
app.preference_types << PreferenceType.iid('desktop_shortcut')
|
13
|
-
app.preference_types << PreferenceType.iid('autoload_application')
|
14
|
-
app.save
|
15
|
-
|
16
|
-
end
|
17
|
-
|
18
|
-
def self.down
|
19
|
-
DesktopApplication.destroy_all(['internal_identifier = ?','audit_log_viewer'])
|
20
|
-
end
|
21
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
# This migration comes from erp_app (originally 20110817160743)
|
2
|
-
class AddFileManagerApplication
|
3
|
-
|
4
|
-
def self.up
|
5
|
-
if DesktopApplication.find_by_internal_identifier('file_manager').nil?
|
6
|
-
file_manager_app = DesktopApplication.create(
|
7
|
-
:description => 'File Manager',
|
8
|
-
:icon => 'icon-folders',
|
9
|
-
:javascript_class_name => 'Compass.ErpApp.Desktop.Applications.FileManager',
|
10
|
-
:internal_identifier => 'file_manager',
|
11
|
-
:shortcut_id => 'file_manager-win'
|
12
|
-
)
|
13
|
-
|
14
|
-
file_manager_app.preference_types << PreferenceType.iid('desktop_shortcut')
|
15
|
-
file_manager_app.preference_types << PreferenceType.iid('autoload_application')
|
16
|
-
file_manager_app.save
|
17
|
-
|
18
|
-
admin_user = User.find_by_username('admin')
|
19
|
-
admin_user.desktop.applications << file_manager_app
|
20
|
-
admin_user.save
|
21
|
-
|
22
|
-
truenorth_user = User.find_by_username('truenorth')
|
23
|
-
truenorth_user.desktop.applications << file_manager_app
|
24
|
-
truenorth_user.save
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
def self.down
|
29
|
-
DesktopApplication.find_by_internal_identifier('file_manager').destroy
|
30
|
-
end
|
31
|
-
|
32
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
# This migration comes from erp_app (originally 20111108183739)
|
2
|
-
class AddDefaultCapabilities
|
3
|
-
|
4
|
-
def self.up
|
5
|
-
admin = SecurityRole.find_by_internal_identifier('admin')
|
6
|
-
employee = SecurityRole.find_by_internal_identifier('employee')
|
7
|
-
|
8
|
-
admin.add_capability('create', 'User')
|
9
|
-
admin.add_capability('delete', 'User')
|
10
|
-
|
11
|
-
admin.add_capability('create', 'Note')
|
12
|
-
employee.add_capability('create', 'Note')
|
13
|
-
|
14
|
-
admin.add_capability('view', 'Note')
|
15
|
-
employee.add_capability('view', 'Note')
|
16
|
-
|
17
|
-
admin.add_capability('delete', 'Note')
|
18
|
-
end
|
19
|
-
|
20
|
-
def self.down
|
21
|
-
end
|
22
|
-
|
23
|
-
end
|
@@ -1,42 +0,0 @@
|
|
1
|
-
# This migration comes from erp_app (originally 20111108183740)
|
2
|
-
class AddNewContactWidgets
|
3
|
-
|
4
|
-
def self.up
|
5
|
-
crm_app = OrganizerApplication.find_by_internal_identifier('crm')
|
6
|
-
|
7
|
-
unless crm_app.nil?
|
8
|
-
Widget.find_by_internal_identifier('party_contact_management').destroy
|
9
|
-
|
10
|
-
phone_number_managementt_widget = ::Widget.create(
|
11
|
-
:description => 'Phone Number Management',
|
12
|
-
:icon => 'icon-grid',
|
13
|
-
:xtype => 'phonenumbergrid',
|
14
|
-
:internal_identifier => 'phone_number_management'
|
15
|
-
)
|
16
|
-
|
17
|
-
email_address_management_widget = ::Widget.create(
|
18
|
-
:description => 'Email Address Management',
|
19
|
-
:icon => 'icon-grid',
|
20
|
-
:xtype => 'emailaddressgrid',
|
21
|
-
:internal_identifier => 'email_address_management'
|
22
|
-
)
|
23
|
-
|
24
|
-
postal_address_management_widget = ::Widget.create(
|
25
|
-
:description => 'Postal Address Management',
|
26
|
-
:icon => 'icon-grid',
|
27
|
-
:xtype => 'postaladdressgrid',
|
28
|
-
:internal_identifier => 'postal_address_management'
|
29
|
-
)
|
30
|
-
|
31
|
-
crm_app.widgets << phone_number_managementt_widget
|
32
|
-
crm_app.widgets << email_address_management_widget
|
33
|
-
crm_app.widgets << postal_address_management_widget
|
34
|
-
crm_app.save
|
35
|
-
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
def self.down
|
40
|
-
end
|
41
|
-
|
42
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
# This migration comes from erp_tech_svcs (originally 20111111144706)
|
2
|
-
class SetupAuditLogTypes
|
3
|
-
|
4
|
-
def self.up
|
5
|
-
application_alt = AuditLogType.create(:description => 'Application', :internal_identifier => 'application')
|
6
|
-
|
7
|
-
[
|
8
|
-
{:description => 'Custom Message', :internal_identifier => 'custom_message'},
|
9
|
-
{:description => 'Successful Logout', :internal_identifier => 'successful_logout'},
|
10
|
-
{:description => 'Successful Login', :internal_identifier => 'successful_login'},
|
11
|
-
{:description => 'Accessed Area', :internal_identifier => 'accessed_area'},
|
12
|
-
{:description => 'Session Timeout', :internal_identifier => 'session_timeout'}
|
13
|
-
].each do |alt_hash|
|
14
|
-
AuditLogType.create(alt_hash).move_to_child_of(application_alt)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
def self.down
|
19
|
-
AuditLogType.destroy_all
|
20
|
-
end
|
21
|
-
|
22
|
-
end
|
@@ -1,29 +0,0 @@
|
|
1
|
-
# This migration comes from erp_app (originally 20120229160222)
|
2
|
-
class AddUserinfoWidget
|
3
|
-
|
4
|
-
def self.up
|
5
|
-
#insert data here
|
6
|
-
if Widget.find_by_internal_identifier('userinfo').nil?
|
7
|
-
app = Application.find_by_internal_identifier('crm')
|
8
|
-
|
9
|
-
user = Widget.create(
|
10
|
-
:description => 'User Info',
|
11
|
-
:internal_identifier => 'userinfo',
|
12
|
-
:icon => 'icon-user',
|
13
|
-
:xtype => 'userinfo'
|
14
|
-
)
|
15
|
-
|
16
|
-
unless app.nil?
|
17
|
-
app.widgets << user
|
18
|
-
app.save
|
19
|
-
end
|
20
|
-
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def self.down
|
25
|
-
#remove data here
|
26
|
-
Widget.find_by_internal_identifier('userinfo').destroy
|
27
|
-
end
|
28
|
-
|
29
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
# This migration comes from erp_app (originally 20120405193721)
|
2
|
-
class CreatePartyAndRoleTypeForCommunicationEvents < ActiveRecord::Migration
|
3
|
-
def up
|
4
|
-
role_type = RoleType.find_or_create_by_description_and_internal_identifier('Application', 'application')
|
5
|
-
party = Party.find_or_create_by_description('Compass AE')
|
6
|
-
party.role_type << role_type
|
7
|
-
end
|
8
|
-
|
9
|
-
def down
|
10
|
-
end
|
11
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
# This migration comes from erp_app (originally 20120411180756)
|
2
|
-
class CreateUserManagementMobileApplication
|
3
|
-
|
4
|
-
def self.up
|
5
|
-
app = MobileApplication.create(
|
6
|
-
:description => 'User Management',
|
7
|
-
:icon => 'icon-user',
|
8
|
-
:internal_identifier => 'user_management',
|
9
|
-
:base_url => '/erp_app/mobile/user_management/index'
|
10
|
-
)
|
11
|
-
|
12
|
-
app.save
|
13
|
-
end
|
14
|
-
|
15
|
-
def self.down
|
16
|
-
MobileApplication.destroy_all("internal_identifier = 'user_management'")
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
# This migration comes from erp_app (originally 20120418164215)
|
2
|
-
class CreateConfigurationManagementDesktopApplication
|
3
|
-
def self.up
|
4
|
-
app = DesktopApplication.create(
|
5
|
-
:description => 'Configuration Management',
|
6
|
-
:icon => 'icon-grid',
|
7
|
-
:javascript_class_name => 'Compass.ErpApp.Desktop.Applications.ConfigurationManagement',
|
8
|
-
:internal_identifier => 'configuration_management',
|
9
|
-
:shortcut_id => 'configuration_management-win'
|
10
|
-
)
|
11
|
-
pt1 = PreferenceType.iid('desktop_shortcut')
|
12
|
-
pt1.preferenced_records << app
|
13
|
-
pt1.save
|
14
|
-
|
15
|
-
pt2 = PreferenceType.iid('autoload_application')
|
16
|
-
pt2.preferenced_records << app
|
17
|
-
pt2.save
|
18
|
-
end
|
19
|
-
|
20
|
-
def self.down
|
21
|
-
DesktopApplication.destroy_all(['internal_identifier = ?','configuration_management'])
|
22
|
-
end
|
23
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
# This migration comes from erp_tech_svcs (originally 20121116155018)
|
2
|
-
class CreateGroupRelationshipAndRoleTypes
|
3
|
-
|
4
|
-
def self.up
|
5
|
-
#insert data here
|
6
|
-
to_role = RoleType.create(:description => 'Security Group', :internal_identifier => 'group')
|
7
|
-
from_role = RoleType.create(:description => 'Security Group Member', :internal_identifier => 'group_member')
|
8
|
-
RelationshipType.create(:description => 'Security Group Membership',
|
9
|
-
:name => 'Group Membership',
|
10
|
-
:internal_identifier => 'group_membership',
|
11
|
-
:valid_from_role => from_role,
|
12
|
-
:valid_to_role => to_role
|
13
|
-
)
|
14
|
-
end
|
15
|
-
|
16
|
-
def self.down
|
17
|
-
#remove data here
|
18
|
-
end
|
19
|
-
|
20
|
-
end
|
@@ -1,16 +0,0 @@
|
|
1
|
-
# This migration comes from erp_app (originally 20121130201859)
|
2
|
-
class UpgradeRemoveSystemMgmtApp
|
3
|
-
|
4
|
-
def self.up
|
5
|
-
#insert data here
|
6
|
-
widget = Widget.find_by_xtype('systemmanagement_applicationrolemanagment')
|
7
|
-
widget.destroy unless widget.nil?
|
8
|
-
app = Application.find_by_internal_identifier('system_management')
|
9
|
-
app.destroy unless app.nil?
|
10
|
-
end
|
11
|
-
|
12
|
-
def self.down
|
13
|
-
#remove data here
|
14
|
-
end
|
15
|
-
|
16
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
# This migration comes from erp_tech_svcs (originally 20121130212146)
|
2
|
-
class NoteCapabilities
|
3
|
-
|
4
|
-
def self.up
|
5
|
-
#insert data here
|
6
|
-
admin = SecurityRole.find_or_create_by_description_and_internal_identifier(:description => 'Admin', :internal_identifier => 'admin')
|
7
|
-
employee = SecurityRole.find_or_create_by_description_and_internal_identifier(:description => 'Employee', :internal_identifier => 'employee')
|
8
|
-
|
9
|
-
admin.add_capability('create', 'Note')
|
10
|
-
admin.add_capability('delete', 'Note')
|
11
|
-
admin.add_capability('edit', 'Note')
|
12
|
-
admin.add_capability('view', 'Note')
|
13
|
-
|
14
|
-
employee.add_capability('create', 'Note')
|
15
|
-
employee.add_capability('delete', 'Note')
|
16
|
-
employee.add_capability('edit', 'Note')
|
17
|
-
employee.add_capability('view', 'Note')
|
18
|
-
end
|
19
|
-
|
20
|
-
def self.down
|
21
|
-
#remove data here
|
22
|
-
end
|
23
|
-
|
24
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
# This migration comes from erp_app (originally 20121218175028)
|
2
|
-
class CreateSecurityManagementDesktopApplication
|
3
|
-
def self.up
|
4
|
-
app = DesktopApplication.create(
|
5
|
-
:description => 'Security Management',
|
6
|
-
:icon => 'icon-key',
|
7
|
-
:javascript_class_name => 'Compass.ErpApp.Desktop.Applications.SecurityManagement',
|
8
|
-
:internal_identifier => 'security_management',
|
9
|
-
:shortcut_id => 'security_management-win'
|
10
|
-
)
|
11
|
-
pt1 = PreferenceType.iid('desktop_shortcut')
|
12
|
-
pt1.preferenced_records << app
|
13
|
-
pt1.save
|
14
|
-
|
15
|
-
pt2 = PreferenceType.iid('autoload_application')
|
16
|
-
pt2.preferenced_records << app
|
17
|
-
pt2.save
|
18
|
-
end
|
19
|
-
|
20
|
-
def self.down
|
21
|
-
DesktopApplication.destroy_all(['internal_identifier = ?','security_management'])
|
22
|
-
end
|
23
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
# This migration comes from erp_base_erp_svcs (originally 20130211555555)
|
2
|
-
class UpgradeCompassAeInstancesData < ActiveRecord::Migration
|
3
|
-
def self.up
|
4
|
-
if CompassAeInstance.find_by_internal_identifier('base').nil?
|
5
|
-
c = CompassAeInstance.order('id ASC').first
|
6
|
-
c.description = 'Base CompassAE Instance'
|
7
|
-
c.internal_identifier = 'base'
|
8
|
-
c.schema = 'public'
|
9
|
-
c.save
|
10
|
-
end
|
11
|
-
|
12
|
-
if RoleType.find_by_internal_identifier('compass_ae_instance_owner').nil?
|
13
|
-
rt = RoleType.new
|
14
|
-
rt.description = 'CompassAE Instance Owner'
|
15
|
-
rt.internal_identifier = 'compass_ae_instance_owner'
|
16
|
-
rt.save
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
data/spec/dummy/db/data_migrations/20130422153813_create_job_tracker_desktop_application.erp_app.rb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
# This migration comes from erp_app (originally 20121018143910)
|
2
|
-
class CreateJobTrackerDesktopApplication
|
3
|
-
def self.up
|
4
|
-
app = DesktopApplication.create(
|
5
|
-
:description => 'Job Tracker',
|
6
|
-
:icon => 'icon-calendar',
|
7
|
-
:javascript_class_name => 'Compass.ErpApp.Desktop.Applications.JobTracker',
|
8
|
-
:internal_identifier => 'job_tracker',
|
9
|
-
:shortcut_id => 'job_tracker-win'
|
10
|
-
)
|
11
|
-
pt1 = PreferenceType.iid('desktop_shortcut')
|
12
|
-
pt1.preferenced_records << app
|
13
|
-
pt1.save
|
14
|
-
|
15
|
-
pt2 = PreferenceType.iid('autoload_application')
|
16
|
-
pt2.preferenced_records << app
|
17
|
-
pt2.save
|
18
|
-
end
|
19
|
-
|
20
|
-
def self.down
|
21
|
-
DesktopApplication.destroy_all(['internal_identifier = ?','job_tracker'])
|
22
|
-
end
|
23
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
# This migration comes from erp_app (originally 20121018172347)
|
2
|
-
class CreatedTrackedJobs
|
3
|
-
|
4
|
-
def self.up
|
5
|
-
JobTracker.create(
|
6
|
-
:job_name => 'Delete Expired Sessions',
|
7
|
-
:job_klass => 'ErpTechSvcs::Sessions::DeleteExpiredSessionsJob'
|
8
|
-
)
|
9
|
-
end
|
10
|
-
|
11
|
-
def self.down
|
12
|
-
#remove data here
|
13
|
-
end
|
14
|
-
|
15
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
# This migration comes from erp_app (originally 20130411200351)
|
2
|
-
class AddJobTrackerMobileApp
|
3
|
-
|
4
|
-
def self.up
|
5
|
-
MobileApplication.create(
|
6
|
-
:description => 'Jobs',
|
7
|
-
:icon => 'icon-tasks',
|
8
|
-
:internal_identifier => 'job_tracker',
|
9
|
-
:xtype => 'compass-erpapp-mobile-jobtracker-application'
|
10
|
-
)
|
11
|
-
end
|
12
|
-
|
13
|
-
def self.down
|
14
|
-
MobileApplication.destroy_all("internal_identifier = 'job_tracker'")
|
15
|
-
end
|
16
|
-
|
17
|
-
end
|