pshq_engine 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +7 -0
  3. data/.travis.yml +3 -0
  4. data/Gemfile +4 -0
  5. data/README.md +39 -0
  6. data/Rakefile +1 -0
  7. data/app/models/.keep +0 -0
  8. data/app/models/ability.rb +76 -0
  9. data/app/models/alert.rb +56 -0
  10. data/app/models/asset.rb +485 -0
  11. data/app/models/asset_assignment.rb +13 -0
  12. data/app/models/asset_image.rb +9 -0
  13. data/app/models/asset_repair_request.rb +167 -0
  14. data/app/models/asset_scan.rb +87 -0
  15. data/app/models/asset_ticket.rb +3 -0
  16. data/app/models/cancellation.rb +64 -0
  17. data/app/models/candidate.rb +127 -0
  18. data/app/models/certification.rb +4 -0
  19. data/app/models/concerns/.keep +0 -0
  20. data/app/models/depreciation_setting.rb +10 -0
  21. data/app/models/dispatch.rb +3 -0
  22. data/app/models/employee.rb +22 -0
  23. data/app/models/feedback.rb +24 -0
  24. data/app/models/history_email.rb +221 -0
  25. data/app/models/importfile.rb +6 -0
  26. data/app/models/job.rb +37 -0
  27. data/app/models/jobs_users.rb +18 -0
  28. data/app/models/lateness.rb +35 -0
  29. data/app/models/location.rb +4 -0
  30. data/app/models/manufacturer.rb +4 -0
  31. data/app/models/member.rb +65 -0
  32. data/app/models/member_device.rb +4 -0
  33. data/app/models/message.rb +33 -0
  34. data/app/models/note.rb +20 -0
  35. data/app/models/notification.rb +73 -0
  36. data/app/models/notification_user.rb +4 -0
  37. data/app/models/o_auth/base.rb +27 -0
  38. data/app/models/o_auth/facebook.rb +21 -0
  39. data/app/models/o_auth/google.rb +18 -0
  40. data/app/models/organization.rb +189 -0
  41. data/app/models/plan.rb +4 -0
  42. data/app/models/project.rb +5 -0
  43. data/app/models/project_payment.rb +4 -0
  44. data/app/models/recurring_time_off.rb +4 -0
  45. data/app/models/response.rb +23 -0
  46. data/app/models/role.rb +22 -0
  47. data/app/models/schedule.rb +228 -0
  48. data/app/models/setting.rb +25 -0
  49. data/app/models/shift.rb +364 -0
  50. data/app/models/shift_off.rb +4 -0
  51. data/app/models/shift_trade.rb +43 -0
  52. data/app/models/subdomain.rb +5 -0
  53. data/app/models/swap.rb +82 -0
  54. data/app/models/task.rb +26 -0
  55. data/app/models/template.rb +59 -0
  56. data/app/models/template_asset.rb +3 -0
  57. data/app/models/timeoff.rb +101 -0
  58. data/app/models/token.rb +22 -0
  59. data/app/models/transaction.rb +2 -0
  60. data/app/models/unavailable.rb +37 -0
  61. data/app/models/user.rb +392 -0
  62. data/app/models/user_notification_setting.rb +178 -0
  63. data/app/models/user_vacation_info.rb +22 -0
  64. data/app/models/vacation.rb +24 -0
  65. data/app/models/vendor.rb +130 -0
  66. data/app/models/vendor_rating.rb +7 -0
  67. data/bin/console +14 -0
  68. data/bin/setup +7 -0
  69. data/db/migrate/20140211085026_devise_create_users.rb +58 -0
  70. data/db/migrate/20140211093822_rolify_create_roles.rb +19 -0
  71. data/db/migrate/20140211124352_create_subdomains.rb +9 -0
  72. data/db/migrate/20140211175737_devise_invitable_add_to_users.rb +24 -0
  73. data/db/migrate/20140222020040_create_schedules.rb +13 -0
  74. data/db/migrate/20140222020246_create_jobs.rb +11 -0
  75. data/db/migrate/20140222020348_create_shifts.rb +17 -0
  76. data/db/migrate/20140222020425_create_organizations.rb +19 -0
  77. data/db/migrate/20140226070901_create_plans.rb +11 -0
  78. data/db/migrate/20140302152936_create_feedbacks.rb +12 -0
  79. data/db/migrate/20140302153059_create_swaps.rb +16 -0
  80. data/db/migrate/20140302153215_create_timeoffs.rb +19 -0
  81. data/db/migrate/20140302153302_create_cancellations.rb +13 -0
  82. data/db/migrate/20140306014858_create_candidates.rb +15 -0
  83. data/db/migrate/20140314041018_create_shift_trades.rb +15 -0
  84. data/db/migrate/20140314041210_create_notes.rb +11 -0
  85. data/db/migrate/20140314041313_create_latenesses.rb +11 -0
  86. data/db/migrate/20140314041351_create_vacations.rb +11 -0
  87. data/db/migrate/20140314041440_create_user_vacation_infos.rb +11 -0
  88. data/db/migrate/20140318072438_create_jobs_users.rb +10 -0
  89. data/db/migrate/20140325151307_create_tasks.rb +16 -0
  90. data/db/migrate/20140406040247_create_mailboxer.mailboxer_engine.rb +66 -0
  91. data/db/migrate/20140406040248_add_conversation_optout.mailboxer_engine.rb +15 -0
  92. data/db/migrate/20141015085628_create_alerts.rb +14 -0
  93. data/db/migrate/20141023104634_add_disabled_to_users.rb +5 -0
  94. data/db/migrate/20141024094518_add_is_viewed_to_schedules.rb +5 -0
  95. data/db/migrate/20141027091531_add_customer_id_to_users.rb +5 -0
  96. data/db/migrate/20141029124637_create_unavailables.rb +11 -0
  97. data/db/migrate/20141029151702_create_certifications.rb +10 -0
  98. data/db/migrate/20141105091745_add_reminder_time_to_shifts.rb +5 -0
  99. data/db/migrate/20141106054916_create_certifications_users.rb +10 -0
  100. data/db/migrate/20141106100123_add_birth_date_to_users.rb +5 -0
  101. data/db/migrate/20141106134815_add_allow_rolling_v_hrs_to_organizations.rb +5 -0
  102. data/db/migrate/20141107155319_create_recurring_time_offs.rb +12 -0
  103. data/db/migrate/20141111084845_add_termination_date_to_users.rb +5 -0
  104. data/db/migrate/20141111103759_add_requested_weekly_hours_to_users.rb +5 -0
  105. data/db/migrate/20141113094547_add_api_token_to_users.rb +5 -0
  106. data/db/migrate/20150105143729_create_templates.rb +9 -0
  107. data/db/migrate/20150105164236_add_coloumn_is_template.rb +5 -0
  108. data/db/migrate/20150106121306_add_org_id.rb +5 -0
  109. data/db/migrate/20150126070904_add_job_id_to_shifts.rb +6 -0
  110. data/db/migrate/20150203112955_add_time_zone_to_org.rb +5 -0
  111. data/db/migrate/20150204160711_add_show_owner_to_org.rb +5 -0
  112. data/db/migrate/20150210165627_add_training_hours_to_shift.rb +9 -0
  113. data/db/migrate/20150217131509_add_total_hours_to_schedules.rb +5 -0
  114. data/db/migrate/20150218094709_add_show_disable_users.rb +5 -0
  115. data/db/migrate/20150225134050_add_notes_to_cancellation.rb +9 -0
  116. data/db/migrate/20150226125524_add_unexcused_absence_note_to_cancellation.rb +9 -0
  117. data/db/migrate/20150226125811_add_cancel_shift_to_shifts.rb +9 -0
  118. data/db/migrate/20150302100542_add_picture_to_user.rb +9 -0
  119. data/db/migrate/20150304082219_add_priorty_to_user.rb +9 -0
  120. data/db/migrate/20150304094605_add_time_format_to_organization.rb +8 -0
  121. data/db/migrate/20150304142621_create_shift_offs.rb +15 -0
  122. data/db/migrate/20150306120726_add_shiftoff_to_shifts.rb +9 -0
  123. data/db/migrate/20150310103643_add_email_and_number_to_user.rb +11 -0
  124. data/db/migrate/20150311110055_add_one_sided_to_candidate.rb +9 -0
  125. data/db/migrate/20150318083934_add_notes_to_shift_trade.rb +9 -0
  126. data/db/migrate/20150408180855_add_column_status_to_unavailability.rb +8 -0
  127. data/db/migrate/20150409140324_create_assets.rb +35 -0
  128. data/db/migrate/20150409142753_create_vendors.rb +14 -0
  129. data/db/migrate/20150409144023_create_employees.rb +13 -0
  130. data/db/migrate/20150409144751_create_assign_assets.rb +16 -0
  131. data/db/migrate/20150409150449_create_asset_repair_requests.rb +19 -0
  132. data/db/migrate/20150409151023_create_dispatches.rb +13 -0
  133. data/db/migrate/20150409151329_create_vendor_ratings.rb +11 -0
  134. data/db/migrate/20150409151546_create_template_assets.rb +11 -0
  135. data/db/migrate/20150413101913_create_index_organization.rb +7 -0
  136. data/db/migrate/20150414153330_change_vendors.rb +16 -0
  137. data/db/migrate/20150420112003_add_name_to_users.rb +5 -0
  138. data/db/migrate/20150421074542_add_comment_to_ratings.rb +5 -0
  139. data/db/migrate/20150421131331_add_retire_column_to_assets.rb +5 -0
  140. data/db/migrate/20150422135600_add_attachment_avatar_to_assets.rb +11 -0
  141. data/db/migrate/20150422143242_create_importfiles.rb +8 -0
  142. data/db/migrate/20150422143301_add_attachment_avatar_to_importfiles.rb +11 -0
  143. data/db/migrate/20150423080234_change_retire_column.rb +5 -0
  144. data/db/migrate/20150423170953_add_attachment_avatar_to_vendors.rb +11 -0
  145. data/db/migrate/20150423225459_add_lockable.rb +7 -0
  146. data/db/migrate/20150427171842_create_asset_scans.rb +15 -0
  147. data/db/migrate/20150429211309_add_attachment_logo_to_organizations.rb +11 -0
  148. data/db/migrate/20150430074555_change_assets_table.rb +8 -0
  149. data/db/migrate/20150430235920_add_unique_email_index_to_users.rb +5 -0
  150. data/db/migrate/20150505104834_add_columntouser.rb +8 -0
  151. data/db/migrate/20150505140926_add_maintenance_cost_to_assets.rb +6 -0
  152. data/db/migrate/20150505142413_create_asset_images.rb +8 -0
  153. data/db/migrate/20150505152604_create_pg_search_documents.rb +17 -0
  154. data/db/migrate/20150506090012_change_employee.rb +12 -0
  155. data/db/migrate/20150506110441_add_status_to_asset_repair_requests.rb +6 -0
  156. data/db/migrate/20150507080738_change_phone_in_employees.rb +6 -0
  157. data/db/migrate/20150507101306_create_manufacturers.rb +12 -0
  158. data/db/migrate/20150507101446_remove.rb +9 -0
  159. data/db/migrate/20150507102211_add_index_manufacturer.rb +5 -0
  160. data/db/migrate/20150507104605_add_website_manufacturer.rb +5 -0
  161. data/db/migrate/20150507115535_change_refrence_manucaturer.rb +6 -0
  162. data/db/migrate/20150507150848_create_notifications.rb +9 -0
  163. data/db/migrate/20150507150855_create_notification_users.rb +10 -0
  164. data/db/migrate/20150508094912_add_landline_to_organization.rb +5 -0
  165. data/db/migrate/20150508143536_add_source_to_notifications.rb +7 -0
  166. data/db/migrate/20150508145048_add_postal_to_profile.rb +5 -0
  167. data/db/migrate/20150508162219_add_summary_to_notifications.rb +5 -0
  168. data/db/migrate/20150509220624_remove_responded_from_notifications.rb +5 -0
  169. data/db/migrate/20150509220625_add_responded_to_notifications.rb +5 -0
  170. data/db/migrate/20150509225608_change_columns_asset_repair_requests.rb +11 -0
  171. data/db/migrate/20150511105420_remove_avatar_asset.rb +6 -0
  172. data/db/migrate/20150514105700_add_unique_asset_id_to_asset.rb +5 -0
  173. data/db/migrate/20150515110042_add_deleted_at_in_assets.rb +6 -0
  174. data/db/migrate/20150515111410_add_deleted_at_vendors.rb +6 -0
  175. data/db/migrate/20150515113054_add_deleted_at_in_employee.rb +6 -0
  176. data/db/migrate/20150515142228_create_locations.rb +16 -0
  177. data/db/migrate/20150515142242_add_locations_to_assets.rb +5 -0
  178. data/db/migrate/20150515142536_add_organization_to_locations.rb +5 -0
  179. data/db/migrate/20150518123010_change_assign_asset.rb +9 -0
  180. data/db/migrate/20150518140153_add_asset_id_in_asset_assign.rb +5 -0
  181. data/db/migrate/20150518144758_rename_assign_assets.rb +8 -0
  182. data/db/migrate/20150518145248_rename_asset_assignment.rb +8 -0
  183. data/db/migrate/20150519140425_change_empid_to_string.rb +6 -0
  184. data/db/migrate/20150521085132_change_uique_asset_id_to_string.rb +6 -0
  185. data/db/migrate/20150525095045_add_status_to_organizations.rb +5 -0
  186. data/db/migrate/20150525123202_create_transactions.rb +20 -0
  187. data/db/migrate/20150526124755_create_settings.rb +16 -0
  188. data/db/migrate/20150603163451_add_cost_comment_collected_by_to_asset_repair_request.rb +7 -0
  189. data/db/migrate/20150605144111_collected.rb +5 -0
  190. data/db/migrate/20150609111725_add_column_notification.rb +5 -0
  191. data/db/migrate/20150609170014_create_user_notification_settings.rb +13 -0
  192. data/db/migrate/20150609175555_add_city_to_locations.rb +4 -0
  193. data/db/migrate/20150612190052_addcity.rb +5 -0
  194. data/db/migrate/20150614215015_create_members.rb +27 -0
  195. data/db/migrate/20150616070816_add_organization_to_schedules.rb +9 -0
  196. data/db/migrate/20150616114344_change_timestape_to_date.rb +4 -0
  197. data/db/migrate/20150619085555_add_index_repair_scan_to_repair.rb +6 -0
  198. data/db/migrate/20150623120915_create_depreciation_settings.rb +9 -0
  199. data/db/migrate/20150624060402_add_depriciation_ref_to_assets.rb +5 -0
  200. data/db/migrate/20150624085501_add_organization_ref_dep.rb +5 -0
  201. data/db/migrate/20150624114339_add_user_to_vacation_info.rb +9 -0
  202. data/db/migrate/20150624131422_change_dep_seeting.rb +6 -0
  203. data/db/migrate/20150625090838_add_dep_cost_col_in_assets.rb +5 -0
  204. data/db/migrate/20150626123545_add_vendor_id_to_asset.rb +5 -0
  205. data/db/migrate/20150629095216_add_depreciated_cost_asset.rb +5 -0
  206. data/db/migrate/20150629124325_add_allow_vendor_additon_to_setings.rb +7 -0
  207. data/db/migrate/20150630080925_add_approve_to_vendor.rb +5 -0
  208. data/db/migrate/20150630112252_add_referrenc_dereciation_to_asset.rb +5 -0
  209. data/db/migrate/20150630124838_add_ref_dep_organization.rb +5 -0
  210. data/db/migrate/20150707102850_add_column_sittings_to_delete_ticket.rb +6 -0
  211. data/db/migrate/20150710150314_add_org_ref_to_subdomain.rb +5 -0
  212. data/db/migrate/20150713204553_add_hire_dateto_member.rb +9 -0
  213. data/db/migrate/20150714004440_add_organization_to_notes.rb +9 -0
  214. data/db/migrate/20150714100444_add_time_format_to_member.rb +9 -0
  215. data/db/migrate/20150714202050_create_asset_tickets.rb +11 -0
  216. data/db/migrate/20150722151752_add_invitation_counts_to_user.rb +10 -0
  217. data/db/migrate/20150723141352_add_invitation_created_at_to_member.rb +10 -0
  218. data/db/migrate/20150724105130_create_projects.rb +8 -0
  219. data/db/migrate/20150724105257_create_project_payments.rb +13 -0
  220. data/db/migrate/20150724220844_add_user_index_to_asset.rb +6 -0
  221. data/db/migrate/20150727085046_add_projects_to_organization.rb +11 -0
  222. data/db/migrate/20150727122551_add_coloumn_to_vendors.rb +5 -0
  223. data/db/migrate/20150727211029_add_column_code_to_asset.rb +5 -0
  224. data/db/migrate/20150728101649_add_disabled_to_member.rb +9 -0
  225. data/db/migrate/20150731095354_add_column_repair_date_to_asset.rb +6 -0
  226. data/db/migrate/20150731104152_add_column_repair_reminder_setting.rb +5 -0
  227. data/db/migrate/20150806085559_create_member_devices.rb +10 -0
  228. data/db/migrate/20150807133155_add_view_to_alert.rb +9 -0
  229. data/db/migrate/20150808151840_app_col_in_member_device.rb +5 -0
  230. data/db/migrate/20150808180234_add_deleted_at_toalerts.rb +7 -0
  231. data/db/migrate/20150810110136_add_address_in_4_feilds_vendor.rb +12 -0
  232. data/db/migrate/20150810172933_change_column_type_in_vendors.rb +6 -0
  233. data/db/migrate/20150811061019_change_column_in_vendors.rb +5 -0
  234. data/db/migrate/20150811133002_change_shift_off_time.rb +5 -0
  235. data/db/migrate/20150811135657_change_column_type_timestamp_to_date.rb +7 -0
  236. data/db/migrate/20150818131207_create_history_emails.rb +10 -0
  237. data/db/migrate/20150820115042_change_schedule_total_hours.rb +6 -0
  238. data/db/migrate/20150820120309_add_column_email_remove.rb +5 -0
  239. data/db/migrate/20150820121702_add_column_email_organization.rb +5 -0
  240. data/db/migrate/20150824085019_add_column_asset_purchase_vendor.rb +5 -0
  241. data/db/migrate/20150826122944_add_column_exipry_notification.rb +5 -0
  242. data/db/migrate/20150827113937_create_members_roles.rb +9 -0
  243. data/db/migrate/20150828145913_add_locable_to_member.rb +7 -0
  244. data/db/migrate/20150903155708_add_vendor_feilds_to_user.rb +8 -0
  245. data/db/migrate/20150903200953_add_shift_to_candidate.rb +9 -0
  246. data/db/migrate/20150904082434_add_one_sided_to_trade_shift.rb +9 -0
  247. data/db/migrate/20150904134529_add_column_in_setting_user_dispatch.rb +5 -0
  248. data/db/migrate/20150907082501_add_website_for_vendor.rb +6 -0
  249. data/db/migrate/20150907141100_add_dollar_limit_to_user.rb +5 -0
  250. data/db/migrate/20150907193030_add_estimate_in_repair.rb +8 -0
  251. data/db/migrate/20150908123735_add_vendor_aproval_in_repair.rb +10 -0
  252. data/db/migrate/20150909112005_add_column_amount_into_plan.rb +5 -0
  253. data/db/migrate/20150916131512_add_plan_name_to_project_payment.rb +9 -0
  254. data/db/schema.rb +909 -0
  255. data/db/seeds.rb +23 -0
  256. data/lib/assets/.keep +0 -0
  257. data/lib/pshq_engine/version.rb +3 -0
  258. data/lib/pshq_engine.rb +5 -0
  259. data/lib/tasks/.keep +0 -0
  260. data/pshq_engine.gemspec +26 -0
  261. metadata +330 -0
@@ -0,0 +1,130 @@
1
+ class Vendor < ActiveRecord::Base
2
+ acts_as_paranoid
3
+ self.per_page = 24
4
+ require 'will_paginate/array'
5
+ belongs_to :organization
6
+ has_many :ratings, :class_name => "VendorRating"
7
+ has_many :notifications, :as => :source
8
+
9
+ # validates :name , :email ,:cell_number , :presence => true
10
+
11
+ has_attached_file :avatar, :styles => { :medium => "300x300!", :thumb => "100x100!" },
12
+ :default_url => "assets/users/no-image.jpg"
13
+ validates_attachment_content_type :avatar, :content_type => /\Aimage\/.*\Z/
14
+
15
+ def vending_cost
16
+ repair_requests = self.repair_requests.where(:status => 2).where.not(:vending_cost => nil )
17
+ if repair_requests.length > 0
18
+ repair_requests.map{|r| r.vending_cost.to_i}.sum
19
+ end
20
+ end
21
+
22
+ def repair_request_count
23
+ self.repair_requests.where(:status => 2).count
24
+ end
25
+
26
+ def average_rating
27
+ avg_rating = VendorRating.where(vendor_id: self.id).average("rating")
28
+ return avg_rating.to_i
29
+ end
30
+
31
+ def self.filter_data(organization,page ,params)
32
+ if params == "All"
33
+ @vendors = organization.vendors
34
+ elsif params == "6"
35
+ @vendors = organization.vendors.where(:approve => true)
36
+ elsif params == "7"
37
+ @vendors = organization.vendors.where(:approve => false)
38
+ elsif params == "rated"
39
+ not_rated = []
40
+ organization.vendors.each do |vv|
41
+ if vv.ratings.count > 0
42
+ not_rated << vv
43
+ end
44
+ end
45
+ @vendors = not_rated
46
+ elsif params == "unrated"
47
+ rated = []
48
+ organization.vendors.each do |vv|
49
+ if vv.ratings.count == 0
50
+ rated << vv
51
+ end
52
+ end
53
+ @vendors = rated
54
+ else
55
+ @vendors = organization.vendors.select("vendors.*").joins("LEFT OUTER JOIN vendor_ratings ON vendors.id = vendor_ratings.vendor_id").where("vendor_ratings.rating ="+params+"").paginate(:page => page)
56
+ end
57
+ end
58
+
59
+ def self.approve_all(organization)
60
+ vendors = organization.vendors.where(:approve => false)
61
+ vendors.each do |v|
62
+ v.update_attributes(:approve => true)
63
+ end
64
+ end
65
+ def self.approve(organization, id)
66
+ vendor = Vendor.find_by_id(id)
67
+ vendor.update_attributes(:approve => true)
68
+ end
69
+
70
+ def send_noftification(organization, vendor, user)
71
+ managers = organization.managers(user)
72
+ Notification.create_and_send_notification(
73
+ :type => "UAV",
74
+ :source => vendor,
75
+ :summary => user.first_name + " Added Vendor " + vendor.name,
76
+ :notifier => user,
77
+ :managers => managers,
78
+ :organizationID => organization.id
79
+ )
80
+ end
81
+
82
+ def self.vendor_details(organization , start_date , end_date)
83
+ organization.users.each do |user|
84
+ user.member.each do|mem|
85
+ if mem.has_role? 'vendor'
86
+ @find_user = User.where("id =? and created_at >= ? and created_at <= ?", user.id, start_date , end_date)
87
+ end
88
+ end
89
+ end
90
+ return @find_user
91
+ end
92
+
93
+
94
+ # Find vendor for email
95
+ def self.get_vendor(organization_id , vendor_id)
96
+ self.find_by_id_and_organization_id(vendor_id , organization_id)
97
+ end
98
+
99
+ # Find vendor for asset
100
+ def self.find_vendor(vendor)
101
+ vend = self.find_by_id(vendor)
102
+ if vend.blank?
103
+ name = ""
104
+ else
105
+ name = vend.name
106
+ end
107
+ return name
108
+ end
109
+
110
+ # Get Asset Vendor
111
+ def get_asset_repair_vendor
112
+ Asset.where("vendor_id = ?", self.id)
113
+ end
114
+
115
+ # Get Asset Purchase Vendor
116
+ def get_asset_purchase_vendor
117
+ Asset.where("purchase_vendor_id = ?", self.id)
118
+ end
119
+
120
+ def get_vendor_status(vendor)
121
+ org = vendor.member.find_by_user_id(vendor.id)
122
+ if vendor
123
+ org_u = org.organization
124
+ @user_dis = org_u.show_disabled_users
125
+ end
126
+ return @user_dis
127
+ end
128
+
129
+
130
+ end
@@ -0,0 +1,7 @@
1
+ class VendorRating < ActiveRecord::Base
2
+ belongs_to :user
3
+ belongs_to :rated_by, :class_name => "User"
4
+
5
+ include PgSearch
6
+ multisearchable :against => [:rating, :vendor_id]
7
+ end
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "pshq_engine"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start
data/bin/setup ADDED
@@ -0,0 +1,7 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+
5
+ bundle install
6
+
7
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,58 @@
1
+ class DeviseCreateUsers < ActiveRecord::Migration
2
+ def change
3
+ create_table(:users) do |t|
4
+ ## Database authenticatable
5
+ t.string :email, :null => false, :default => ""
6
+ t.string :encrypted_password, :null => false, :default => ""
7
+
8
+ ## Recoverable
9
+ t.string :reset_password_token
10
+ t.datetime :reset_password_sent_at
11
+
12
+ ## Rememberable
13
+ t.datetime :remember_created_at
14
+
15
+ ## Trackable
16
+ t.integer :sign_in_count, :default => 0, :null => false
17
+ t.datetime :current_sign_in_at
18
+ t.datetime :last_sign_in_at
19
+ t.string :current_sign_in_ip
20
+ t.string :last_sign_in_ip
21
+
22
+ ## Confirmable
23
+ # t.string :confirmation_token
24
+ # t.datetime :confirmed_at
25
+ # t.datetime :confirmation_sent_at
26
+ # t.string :unconfirmed_email # Only if using reconfirmable
27
+
28
+ ## Lockable
29
+ # t.integer :failed_attempts, :default => 0, :null => false # Only if lock strategy is :failed_attempts
30
+ # t.string :unlock_token # Only if unlock strategy is :email or :both
31
+ # t.datetime :locked_at
32
+ t.string :provider
33
+ t.string :uid
34
+ t.integer :subdomain_id
35
+ t.boolean :profile_completed,:default=>false
36
+ t.string :avatar
37
+ t.integer :organization_id
38
+ t.string :stripe_token
39
+ t.string :coupon
40
+ t.integer :plan_id
41
+ t.string :phone_number
42
+ t.boolean :email_notify, :default => false
43
+ t.boolean :sms_notify, :default => false
44
+ t.integer :vacation_id
45
+ t.integer :time_off_limit
46
+ t.boolean :in_train, :default => false
47
+ t.string :first_name
48
+ t.string :last_name
49
+ t.date :anniversary_date
50
+ t.timestamps
51
+ end
52
+
53
+ add_index :users, [:email, :subdomain_id], :unique => true
54
+ add_index :users, :reset_password_token, :unique => true
55
+ # add_index :users, :confirmation_token, :unique => true
56
+ # add_index :users, :unlock_token, :unique => true
57
+ end
58
+ end
@@ -0,0 +1,19 @@
1
+ class RolifyCreateRoles < ActiveRecord::Migration
2
+ def change
3
+ create_table(:roles) do |t|
4
+ t.string :name
5
+ t.references :resource, :polymorphic => true
6
+
7
+ t.timestamps
8
+ end
9
+
10
+ create_table(:users_roles, :id => false) do |t|
11
+ t.references :user
12
+ t.references :role
13
+ end
14
+
15
+ add_index(:roles, :name)
16
+ add_index(:roles, [ :name, :resource_type, :resource_id ])
17
+ add_index(:users_roles, [ :user_id, :role_id ])
18
+ end
19
+ end
@@ -0,0 +1,9 @@
1
+ class CreateSubdomains < ActiveRecord::Migration
2
+ def change
3
+ create_table :subdomains do |t|
4
+ t.string :name
5
+
6
+ t.timestamps
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,24 @@
1
+ class DeviseInvitableAddToUsers < ActiveRecord::Migration
2
+ def up
3
+ change_table :users do |t|
4
+ t.string :invitation_token
5
+ t.datetime :invitation_created_at
6
+ t.datetime :invitation_sent_at
7
+ t.datetime :invitation_accepted_at
8
+ t.integer :invitation_limit
9
+ t.references :invited_by, :polymorphic => true
10
+ t.index :invitation_token, :unique => true # for invitable
11
+ t.index :invited_by_id
12
+ end
13
+
14
+ # And allow null encrypted_password and password_salt:
15
+ change_column_null :users, :encrypted_password, true
16
+ end
17
+
18
+ def down
19
+ change_table :users do |t|
20
+ t.remove_references :invited_by, :polymorphic => true
21
+ t.remove :invitation_limit, :invitation_sent_at, :invitation_accepted_at, :invitation_token, :invitation_created_at
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,13 @@
1
+ class CreateSchedules < ActiveRecord::Migration
2
+ def change
3
+ create_table :schedules do |t|
4
+ t.boolean :publish
5
+ t.integer :user_id
6
+ t.integer :job_id
7
+ t.date :start_date
8
+ t.date :end_date
9
+
10
+ t.timestamps
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,11 @@
1
+ class CreateJobs < ActiveRecord::Migration
2
+ def change
3
+ create_table :jobs do |t|
4
+ t.integer :organization_id
5
+ t.string :name
6
+ t.string :color, :default => '#ffffff'
7
+
8
+ t.timestamps
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,17 @@
1
+ class CreateShifts < ActiveRecord::Migration
2
+ def change
3
+ create_table :shifts do |t|
4
+ t.integer :day_of_week
5
+ t.time :start_time
6
+ t.time :end_time
7
+ t.time :hours
8
+ t.integer :schedule_id
9
+ t.boolean :absence_excused, :default=>false
10
+ t.boolean :absence_wo_excuse, :default=>false
11
+ t.text :comments
12
+ t.time :late
13
+ t.date :due_date
14
+ t.timestamps
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,19 @@
1
+ class CreateOrganizations < ActiveRecord::Migration
2
+ def change
3
+ create_table :organizations do |t|
4
+ t.string :name
5
+ t.text :description
6
+ t.integer :subdomain_id
7
+ t.string :country
8
+ t.string :state
9
+ t.string :address
10
+ t.string :postal_code
11
+ t.string :code
12
+ t.string :city
13
+ t.boolean :m_to_s, :default => true
14
+ t.boolean :mul_schedule, :default => false
15
+ t.timestamps
16
+ end
17
+ add_index :organizations, :code, :unique => true
18
+ end
19
+ end
@@ -0,0 +1,11 @@
1
+ class CreatePlans < ActiveRecord::Migration
2
+ def change
3
+ create_table :plans do |t|
4
+ t.string :stripe_id
5
+ t.integer :display_order
6
+ t.string :name
7
+
8
+ t.timestamps
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ class CreateFeedbacks < ActiveRecord::Migration
2
+ def change
3
+ create_table :feedbacks do |t|
4
+ t.integer :user_id
5
+ t.string :message
6
+ t.boolean :in_trash, :default => false
7
+ t.string :ancestry
8
+
9
+ t.timestamps
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,16 @@
1
+ class CreateSwaps < ActiveRecord::Migration
2
+ def change
3
+ create_table :swaps do |t|
4
+ t.integer :shift_id
5
+ t.string :reason
6
+ t.string :status, :default => 'pending'
7
+ t.boolean :in_trash, :default => false
8
+ t.boolean :viewed, :default => false
9
+ t.boolean :alert,:default => false
10
+ t.datetime :approved_date
11
+ t.integer :approved_by
12
+
13
+ t.timestamps
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,19 @@
1
+ class CreateTimeoffs < ActiveRecord::Migration
2
+ def change
3
+ create_table :timeoffs do |t|
4
+ t.integer :day_of_week
5
+ t.string :reason
6
+ t.boolean :all_day, :default => false
7
+ t.time :start_time
8
+ t.time :end_time
9
+ t.string :status, :default => 'pending'
10
+ t.integer :user_id
11
+ t.date :off_date
12
+ t.datetime :approved_date
13
+ t.integer :approved_by
14
+ t.datetime :cancelled_date
15
+ t.boolean :vacation, :default => false
16
+ t.timestamps
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,13 @@
1
+ class CreateCancellations < ActiveRecord::Migration
2
+ def change
3
+ create_table :cancellations do |t|
4
+ t.integer :shift_id
5
+ t.string :reason
6
+ t.string :status, :default => 'pending'
7
+ t.datetime :approved_date
8
+ t.integer :approved_by
9
+
10
+ t.timestamps
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,15 @@
1
+ class CreateCandidates < ActiveRecord::Migration
2
+ def change
3
+ create_table :candidates do |t|
4
+ t.integer :swap_id
5
+ t.integer :alert_type_id
6
+ t.integer :user_id
7
+ t.string :body, :default => "Swap Shift Request to Approve"
8
+ t.string :alert_type, :default => 'Swap'
9
+ t.string :status, :default => 'initial'
10
+ t.integer :organization_id
11
+
12
+ t.timestamps
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ class CreateShiftTrades < ActiveRecord::Migration
2
+ def change
3
+ create_table :shift_trades do |t|
4
+ t.string :status, :default => 'initial'
5
+ t.integer :candidate_id
6
+ t.integer :shift_id
7
+ t.integer :organization_id
8
+ t.integer :user_id
9
+ t.string :body, :default => "Swap Shift Request to Approve"
10
+ t.string :alert_type, :default => 'Swap'
11
+
12
+ t.timestamps
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,11 @@
1
+ class CreateNotes < ActiveRecord::Migration
2
+ def change
3
+ create_table :notes do |t|
4
+ t.integer :user_id
5
+ t.text :content
6
+ t.integer :created_by
7
+
8
+ t.timestamps
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ class CreateLatenesses < ActiveRecord::Migration
2
+ def change
3
+ create_table :latenesses do |t|
4
+ t.string :reason
5
+ t.integer :shift_id
6
+ t.boolean :notify, :default => false
7
+
8
+ t.timestamps
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ class CreateVacations < ActiveRecord::Migration
2
+ def change
3
+ create_table :vacations do |t|
4
+ t.string :name
5
+ t.integer :total_hours
6
+ t.integer :organization_id
7
+
8
+ t.timestamps
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ class CreateUserVacationInfos < ActiveRecord::Migration
2
+ def change
3
+ create_table :user_vacation_infos do |t|
4
+ t.integer :user_id
5
+ t.integer :vacation_id
6
+ t.float :spent_hours, :default => 0.0
7
+
8
+ t.timestamps
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,10 @@
1
+ class CreateJobsUsers < ActiveRecord::Migration
2
+ def change
3
+ create_table :jobs_users do |t|
4
+ t.integer :job_id
5
+ t.integer :user_id
6
+
7
+ t.timestamps
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,16 @@
1
+ class CreateTasks < ActiveRecord::Migration
2
+ def change
3
+ create_table :tasks do |t|
4
+ t.integer :organization_id
5
+ t.integer :user_id
6
+ t.string :task_name
7
+ t.time :duty_time
8
+ t.boolean :accept, :default => false
9
+ t.boolean :done, :default => false
10
+ t.date :duty_date
11
+ t.text :comment
12
+
13
+ t.timestamps
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,66 @@
1
+ # This migration comes from mailboxer_engine (originally 20110511145103)
2
+ class CreateMailboxer < ActiveRecord::Migration
3
+ def self.up
4
+ #Tables
5
+ #Conversations
6
+ create_table :mailboxer_conversations do |t|
7
+ t.column :subject, :string, :default => ""
8
+ t.column :created_at, :datetime, :null => false
9
+ t.column :updated_at, :datetime, :null => false
10
+ end
11
+ #Receipts
12
+ create_table :mailboxer_receipts do |t|
13
+ t.references :receiver, :polymorphic => true
14
+ t.column :notification_id, :integer, :null => false
15
+ t.column :is_read, :boolean, :default => false
16
+ t.column :trashed, :boolean, :default => false
17
+ t.column :deleted, :boolean, :default => false
18
+ t.column :mailbox_type, :string, :limit => 25
19
+ t.column :created_at, :datetime, :null => false
20
+ t.column :updated_at, :datetime, :null => false
21
+ end
22
+ #Notifications and Messages
23
+ create_table :mailboxer_notifications do |t|
24
+ t.column :type, :string
25
+ t.column :body, :text
26
+ t.column :subject, :string, :default => ""
27
+ t.references :sender, :polymorphic => true
28
+ t.column :conversation_id, :integer
29
+ t.column :draft, :boolean, :default => false
30
+ t.string :notification_code, :default => nil
31
+ t.references :notified_object, :polymorphic => true
32
+ t.column :attachment, :string
33
+ t.column :updated_at, :datetime, :null => false
34
+ t.column :created_at, :datetime, :null => false
35
+ t.boolean :global, default: false
36
+ t.datetime :expires
37
+ end
38
+
39
+
40
+ #Indexes
41
+ #Conversations
42
+ #Receipts
43
+ add_index "mailboxer_receipts","notification_id"
44
+
45
+ #Messages
46
+ add_index "mailboxer_notifications","conversation_id"
47
+
48
+ #Foreign keys
49
+ #Conversations
50
+ #Receipts
51
+ add_foreign_key "mailboxer_receipts", "mailboxer_notifications", :name => "receipts_on_notification_id", :column => "notification_id"
52
+ #Messages
53
+ add_foreign_key "mailboxer_notifications", "mailboxer_conversations", :name => "notifications_on_conversation_id", :column => "conversation_id"
54
+ end
55
+
56
+ def self.down
57
+ #Tables
58
+ remove_foreign_key "mailboxer_receipts", :name => "receipts_on_notification_id"
59
+ remove_foreign_key "mailboxer_notifications", :name => "notifications_on_conversation_id"
60
+
61
+ #Indexes
62
+ drop_table :mailboxer_receipts
63
+ drop_table :mailboxer_conversations
64
+ drop_table :mailboxer_notifications
65
+ end
66
+ end
@@ -0,0 +1,15 @@
1
+ # This migration comes from mailboxer_engine (originally 20131206080416)
2
+ class AddConversationOptout < ActiveRecord::Migration
3
+ def self.up
4
+ create_table :mailboxer_conversation_opt_outs do |t|
5
+ t.references :unsubscriber, :polymorphic => true
6
+ t.references :conversation
7
+ end
8
+ add_foreign_key "mailboxer_conversation_opt_outs", "mailboxer_conversations", :name => "mb_opt_outs_on_conversations_id", :column => "conversation_id"
9
+ end
10
+
11
+ def self.down
12
+ remove_foreign_key "mailboxer_conversation_opt_outs", :name => "mb_opt_outs_on_conversations_id"
13
+ drop_table :mailboxer_conversation_opt_outs
14
+ end
15
+ end
@@ -0,0 +1,14 @@
1
+ class CreateAlerts < ActiveRecord::Migration
2
+ def change
3
+ create_table :alerts do |t|
4
+ t.string :alert_type
5
+ t.string :body
6
+ t.string :status, :default => "Pending"
7
+ t.integer :alert_type_id
8
+ t.integer :organization_id
9
+ t.integer :user_id
10
+
11
+ t.timestamps
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,5 @@
1
+ class AddDisabledToUsers < ActiveRecord::Migration
2
+ def change
3
+ add_column :users,:disabled, :boolean, :default=>false
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddIsViewedToSchedules < ActiveRecord::Migration
2
+ def change
3
+ add_column :schedules, :is_viewed,:boolean,:default=>false
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddCustomerIdToUsers < ActiveRecord::Migration
2
+ def change
3
+ add_column :users, :customer_id, :string
4
+ end
5
+ end
@@ -0,0 +1,11 @@
1
+ class CreateUnavailables < ActiveRecord::Migration
2
+ def change
3
+ create_table :unavailables do |t|
4
+ t.string :reason
5
+ t.integer :shift_id
6
+ t.boolean :notify, :default => false
7
+
8
+ t.timestamps
9
+ end
10
+ end
11
+ end