caboose-cms 0.7.85 → 0.8.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (193) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/caboose/{admin_edit_order.js → admin_edit_invoice.js} +332 -189
  3. data/app/assets/javascripts/caboose/cart.js +15 -15
  4. data/app/assets/javascripts/caboose/cart_old.js +2 -2
  5. data/app/assets/javascripts/caboose/checkout/authnet_payment_method_controller.js +120 -0
  6. data/app/assets/javascripts/caboose/checkout/billing_address_controller.js +85 -0
  7. data/app/assets/javascripts/caboose/checkout/cart_controller.js +257 -0
  8. data/app/assets/javascripts/caboose/checkout/checkout_controller.js +258 -0
  9. data/app/assets/javascripts/caboose/checkout/gift_cards_controller.js +57 -0
  10. data/app/assets/javascripts/caboose/checkout/shipping_address_controller.js +86 -0
  11. data/app/assets/javascripts/caboose/checkout/shipping_method_controller.js +121 -0
  12. data/app/assets/javascripts/caboose/checkout/stripe_payment_method_controller.js +155 -0
  13. data/app/assets/javascripts/caboose/checkout_login_register.js +2 -2
  14. data/app/assets/javascripts/caboose/checkout_module.js +8 -8
  15. data/app/assets/javascripts/caboose/checkout_old.js +151 -0
  16. data/app/assets/javascripts/caboose/{checkout_payment.js → checkout_payment_authnet.js} +1 -1
  17. data/app/assets/javascripts/caboose/checkout_payment_stripe.js +212 -0
  18. data/app/assets/javascripts/caboose/checkout_shipping.js +1 -1
  19. data/app/assets/javascripts/caboose/jquery.payment.js +1 -0
  20. data/app/assets/javascripts/caboose/model/attribute.js +3 -2
  21. data/app/assets/javascripts/caboose/model/bound_control.js +56 -14
  22. data/app/assets/javascripts/caboose/model/bound_select.js +9 -11
  23. data/app/assets/javascripts/caboose/model/bound_select_simple.js +215 -0
  24. data/app/assets/javascripts/caboose/model/bound_text.js +7 -8
  25. data/app/assets/javascripts/caboose/{my_account_edit_order.js → my_account_edit_invoice.js} +55 -55
  26. data/app/assets/javascripts/caboose/united_states.js +65 -0
  27. data/app/assets/stylesheets/caboose/{my_account_edit_order.css.scss → my_account_edit_invoice.css.scss} +1 -1
  28. data/app/assets/templates/caboose/cart/line_items.jst.ejs +3 -3
  29. data/app/assets/templates/caboose/checkout/line_items.jst.ejs +7 -7
  30. data/app/controllers/caboose/ab_options_controller.rb +4 -4
  31. data/app/controllers/caboose/ab_variants_controller.rb +5 -5
  32. data/app/controllers/caboose/admin_controller.rb +0 -6
  33. data/app/controllers/caboose/application_controller.rb +16 -15
  34. data/app/controllers/caboose/billing_addresses_controller.rb +22 -22
  35. data/app/controllers/caboose/block_type_sources_controller.rb +8 -8
  36. data/app/controllers/caboose/block_types_controller.rb +2 -42
  37. data/app/controllers/caboose/blocks_controller.rb +26 -26
  38. data/app/controllers/caboose/calendars_controller.rb +5 -5
  39. data/app/controllers/caboose/cart_controller.rb +55 -36
  40. data/app/controllers/caboose/categories_controller.rb +78 -76
  41. data/app/controllers/caboose/checkout_controller.rb +313 -340
  42. data/app/controllers/caboose/checkout_controller_bak.rb +620 -0
  43. data/app/controllers/caboose/domains_controller.rb +5 -5
  44. data/app/controllers/caboose/event_groups_controller.rb +26 -4
  45. data/app/controllers/caboose/events_controller.rb +7 -6
  46. data/app/controllers/caboose/fonts_controller.rb +2 -2
  47. data/app/controllers/caboose/gift_cards_controller.rb +113 -139
  48. data/app/controllers/caboose/google_spreadsheets_controller.rb +1 -1
  49. data/app/controllers/caboose/{order_packages_controller.rb → invoice_packages_controller.rb} +49 -49
  50. data/app/controllers/caboose/{order_reports_controller.rb → invoice_reports_controller.rb} +11 -13
  51. data/app/controllers/caboose/invoice_transactions_controller.rb +35 -0
  52. data/app/controllers/caboose/invoices_controller.rb +328 -0
  53. data/app/controllers/caboose/line_items_controller.rb +35 -34
  54. data/app/controllers/caboose/login_controller.rb +7 -7
  55. data/app/controllers/caboose/login_logs_controller.rb +4 -4
  56. data/app/controllers/caboose/logout_controller.rb +3 -1
  57. data/app/controllers/caboose/media_categories_controller.rb +9 -9
  58. data/app/controllers/caboose/media_controller.rb +21 -46
  59. data/app/controllers/caboose/modal_controller.rb +4 -3
  60. data/app/controllers/caboose/modification_values_controller.rb +6 -6
  61. data/app/controllers/caboose/modifications_controller.rb +7 -6
  62. data/app/controllers/caboose/my_account_controller.rb +2 -2
  63. data/app/controllers/caboose/my_account_invoices_controller.rb +166 -0
  64. data/app/controllers/caboose/my_account_line_items_controller.rb +15 -13
  65. data/app/controllers/caboose/page_custom_fields_controller.rb +9 -8
  66. data/app/controllers/caboose/page_permissions_controller.rb +3 -3
  67. data/app/controllers/caboose/pages_controller.rb +132 -135
  68. data/app/controllers/caboose/permissions_controller.rb +8 -7
  69. data/app/controllers/caboose/post_categories_controller.rb +22 -7
  70. data/app/controllers/caboose/post_custom_fields_controller.rb +9 -8
  71. data/app/controllers/caboose/posts_controller.rb +35 -43
  72. data/app/controllers/caboose/product_images_controller.rb +5 -5
  73. data/app/controllers/caboose/products_controller.rb +53 -47
  74. data/app/controllers/caboose/redirects_controller.rb +7 -7
  75. data/app/controllers/caboose/register_controller.rb +2 -2
  76. data/app/controllers/caboose/retargeting_controller.rb +2 -61
  77. data/app/controllers/caboose/reviews_controller.rb +1 -0
  78. data/app/controllers/caboose/roles_controller.rb +10 -9
  79. data/app/controllers/caboose/settings_controller.rb +9 -7
  80. data/app/controllers/caboose/shipping_addresses_controller.rb +18 -18
  81. data/app/controllers/caboose/shipping_packages_controller.rb +24 -21
  82. data/app/controllers/caboose/sites_controller.rb +35 -25
  83. data/app/controllers/caboose/smtp_controller.rb +3 -3
  84. data/app/controllers/caboose/sns_controller.rb +6 -6
  85. data/app/controllers/caboose/social_controller.rb +5 -6
  86. data/app/controllers/caboose/stackable_groups_controller.rb +10 -8
  87. data/app/controllers/caboose/station_controller.rb +3 -3
  88. data/app/controllers/caboose/store_controller.rb +93 -87
  89. data/app/controllers/caboose/subscriptions_controller.rb +153 -0
  90. data/app/controllers/caboose/users_controller.rb +25 -22
  91. data/app/controllers/caboose/variants_controller.rb +72 -93
  92. data/app/controllers/caboose/vendors_controller.rb +35 -32
  93. data/app/mailers/caboose/{orders_mailer.rb → invoices_mailer.rb} +21 -21
  94. data/app/mailers/caboose/login_mailer.rb +3 -3
  95. data/app/models/caboose/authnet.rb +295 -195
  96. data/app/models/caboose/comment_routes.rb +68 -41
  97. data/app/models/caboose/core_plugin.rb +1 -1
  98. data/app/models/caboose/discount.rb +14 -3
  99. data/app/models/caboose/domain_constraint.rb +11 -3
  100. data/app/models/caboose/gift_card.rb +8 -8
  101. data/app/models/caboose/invoice.rb +706 -0
  102. data/app/models/caboose/invoice_discount.rb +10 -0
  103. data/app/models/caboose/invoice_package.rb +76 -0
  104. data/app/models/caboose/{order_package_calculator.rb → invoice_package_calculator.rb} +20 -20
  105. data/app/models/caboose/{order_pdf.rb → invoice_pdf.rb} +30 -30
  106. data/app/models/caboose/{order_reporter.rb → invoice_reporter.rb} +5 -5
  107. data/app/models/caboose/invoice_transaction.rb +169 -0
  108. data/app/models/caboose/line_item.rb +11 -8
  109. data/app/models/caboose/payment_processors/authorizenet.rb +15 -15
  110. data/app/models/caboose/payment_processors/base.rb +3 -3
  111. data/app/models/caboose/{pending_orders_pdf.rb → pending_invoices_pdf.rb} +31 -31
  112. data/app/models/caboose/product.rb +2 -4
  113. data/app/models/caboose/schema.rb +159 -111
  114. data/app/models/caboose/shipping_calculator.rb +41 -139
  115. data/app/models/caboose/smtp_config.rb +2 -1
  116. data/app/models/caboose/store_config.rb +7 -7
  117. data/app/models/caboose/subscription.rb +32 -0
  118. data/app/models/caboose/tax_calculator.rb +36 -36
  119. data/app/models/caboose/user.rb +6 -0
  120. data/app/models/caboose/user_subscription.rb +142 -0
  121. data/app/models/caboose/wish_list.rb +14 -0
  122. data/app/models/caboose/wish_list_line_item.rb +13 -0
  123. data/app/views/caboose/blocks/_products.html.erb +10 -13
  124. data/app/views/caboose/checkout/_address_form.html.erb +14 -14
  125. data/app/views/caboose/checkout/_billing_form.html.erb +3 -3
  126. data/app/views/caboose/checkout/_cart.html.erb +7 -7
  127. data/app/views/caboose/checkout/_cart_old.html.erb +9 -9
  128. data/app/views/caboose/checkout/_confirm.html.erb +9 -9
  129. data/app/views/caboose/checkout/_order_discount.html.erb +3 -3
  130. data/app/views/caboose/checkout/_shipping_address.html.erb +1 -1
  131. data/app/views/caboose/checkout/_shipping_method.html.erb +1 -1
  132. data/app/views/caboose/checkout/addresses.html.erb +10 -10
  133. data/app/views/caboose/checkout/authnet.html.erb +34 -0
  134. data/app/views/caboose/checkout/authnet_response_handler.html.erb +3 -0
  135. data/app/views/caboose/checkout/checkout.html.erb +100 -0
  136. data/app/views/caboose/checkout/confirm_without_payment.html.erb +6 -6
  137. data/app/views/caboose/checkout/discount.html.erb +1 -1
  138. data/app/views/caboose/checkout/index.html.erb +4 -4
  139. data/app/views/caboose/checkout/payment_authnet.html.erb +140 -0
  140. data/app/views/caboose/checkout/payment_stripe.html.erb +95 -0
  141. data/app/views/caboose/checkout/shipping.html.erb +4 -4
  142. data/app/views/caboose/checkout/thanks.html.erb +3 -3
  143. data/app/views/caboose/gift_cards/admin_edit.html.erb +19 -19
  144. data/app/views/caboose/gift_cards/admin_index.html.erb +9 -9
  145. data/app/views/caboose/{orders → invoices}/_admin_footer.html.erb +0 -0
  146. data/app/views/caboose/{orders → invoices}/_admin_header.html.erb +0 -0
  147. data/app/views/caboose/{orders/_quickbooks_order.html.erb → invoices/_quickbooks_invoice.html.erb} +0 -0
  148. data/app/views/caboose/{orders → invoices}/admin_city_report.html.erb +1 -1
  149. data/app/views/caboose/invoices/admin_delete_form.html.erb +18 -0
  150. data/app/views/caboose/{orders → invoices}/admin_edit.html.erb +14 -14
  151. data/app/views/caboose/{orders → invoices}/admin_index.html.erb +24 -24
  152. data/app/views/caboose/{orders → invoices}/admin_invalid_order.html.erb +2 -2
  153. data/app/views/caboose/{orders → invoices}/admin_new.html.erb +7 -7
  154. data/app/views/caboose/{orders → invoices}/admin_print.html.erb +15 -15
  155. data/app/views/caboose/{orders → invoices}/admin_summary_report.html.erb +4 -4
  156. data/app/views/caboose/{orders_mailer/customer_new_order.html.erb → invoices_mailer/customer_new_invoice.html.erb} +21 -21
  157. data/app/views/caboose/invoices_mailer/customer_payment_authorization.html.erb +5 -0
  158. data/app/views/caboose/{orders_mailer → invoices_mailer}/customer_status_updated.html.erb +22 -22
  159. data/app/views/caboose/{orders_mailer/fulfillment_new_order.html.erb → invoices_mailer/fulfillment_new_invoice.html.erb} +23 -23
  160. data/app/views/caboose/{orders_mailer/shipping_order_ready.html.erb → invoices_mailer/shipping_invoice_ready.html.erb} +0 -0
  161. data/app/views/caboose/{orders_mailer → invoices_mailer}/test_email.html.erb +0 -0
  162. data/app/views/caboose/line_items/admin_new.html.erb +1 -1
  163. data/app/views/caboose/login_mailer/forgot_password_email.html.erb +2 -3
  164. data/app/views/caboose/my_account/index.html.erb +1 -1
  165. data/app/views/caboose/{my_account_orders → my_account_invoices}/authnet_relay.html.erb +0 -0
  166. data/app/views/caboose/{my_account_orders → my_account_invoices}/authnet_response.html.erb +0 -0
  167. data/app/views/caboose/{my_account_orders → my_account_invoices}/edit.html.erb +9 -9
  168. data/app/views/caboose/my_account_invoices/index.html.erb +36 -0
  169. data/app/views/caboose/{my_account_orders → my_account_invoices}/payment_form.html.erb +10 -10
  170. data/app/views/caboose/post_categories/admin_index.html.erb +1 -1
  171. data/app/views/caboose/sites/admin_edit.html.erb +1 -1
  172. data/app/views/caboose/store/admin_edit_general.html.erb +5 -3
  173. data/app/views/caboose/store/admin_edit_packages.html.erb +6 -6
  174. data/app/views/caboose/store/admin_edit_shipping.html.erb +3 -3
  175. data/app/views/caboose/store/admin_edit_tax.html.erb +1 -1
  176. data/app/views/caboose/subscriptions/admin_edit.html.erb +82 -0
  177. data/app/views/caboose/subscriptions/admin_index.html.erb +45 -0
  178. data/config/routes.rb +1 -759
  179. data/config/routes_old.rb +759 -0
  180. data/lib/caboose/version.rb +1 -1
  181. data/lib/tasks/caboose.rake +41 -15
  182. metadata +101 -61
  183. data/app/controllers/caboose/my_account_orders_controller.rb +0 -165
  184. data/app/controllers/caboose/orders_controller.rb +0 -310
  185. data/app/models/caboose/order.rb +0 -479
  186. data/app/models/caboose/order_discount.rb +0 -10
  187. data/app/models/caboose/order_package.rb +0 -133
  188. data/app/models/caboose/order_transaction.rb +0 -41
  189. data/app/models/caboose/payment_processors/payscape.rb +0 -94
  190. data/app/views/caboose/checkout/payment.html.erb +0 -146
  191. data/app/views/caboose/my_account_orders/index.html.erb +0 -36
  192. data/app/views/caboose/orders/admin_delete_form.html.erb +0 -21
  193. data/app/views/caboose/orders_mailer/customer_payment_authorization.html.erb +0 -5
@@ -6,11 +6,11 @@
6
6
  <% elsif @rates.count == 1 %>
7
7
  <p>Please select which shipping method you'd like to use.</p>
8
8
  <p>
9
- <% op = @rates[0][:order_package] %>
9
+ <% op = @rates[0][:invoice_package] %>
10
10
  <% @rates[0][:rates].each do |rate| %>
11
11
  <% sm = rate[:shipping_method] %>
12
12
  <a href='#' class='shipping_rate btn'
13
- data-order_package_id="<%= op.id %>"
13
+ data-invoice_package_id="<%= op.id %>"
14
14
  data-shipping_method_id="<%= sm.id %>"
15
15
  data-total="<%= rate[:total_price] %>"
16
16
  ><%= number_to_currency(rate[:total_price], :precision => 2) %><br /><%= sm.service_name %>
@@ -25,7 +25,7 @@
25
25
  <th>Shipping Options</th>
26
26
  </tr>
27
27
  <% @rates.each_with_index do |package_rates, i| %>
28
- <% op = package_rates[:order_package] %>
28
+ <% op = package_rates[:invoice_package] %>
29
29
  <% sp = op.shipping_package %>
30
30
  <tr>
31
31
  <td valign='top'>
@@ -35,7 +35,7 @@
35
35
  <% package_rates[:rates].each do |rate| %>
36
36
  <% sm = rate[:shipping_method] %>
37
37
  <a href='#' class='shipping_rate btn'
38
- data-order_package_id="<%= op.id %>"
38
+ data-invoice_package_id="<%= op.id %>"
39
39
  data-shipping_method_id="<%= sm.id %>"
40
40
  data-total="<%= rate[:total_price] %>"
41
41
  ><%= number_to_currency(rate[:total_price], :precision => 2) %><br /><%= sm.service_name %>
@@ -2,14 +2,14 @@
2
2
  <p>Thank you for your order! Your order has been submitted.</p>
3
3
  <p>Please allow up to 48 hours for your order to be processed. Orders are processed during normal business hours Monday through Friday.</p>
4
4
 
5
- <% if @last_order.has_downloadable_items? %>
5
+ <% if @last_invoice.has_downloadable_items? %>
6
6
  <% sc = Caboose::StoreConfig.where(:site_id => @site.id).last %>
7
7
  <% instr = (sc && !sc.download_instructions.blank?) ? sc.download_instructions : "Your order contained downloadable items. Download your items with the links below:" %>
8
8
  <div><%== instr %></div>
9
9
  <ul id='downloads'>
10
- <% @last_order.line_items.each do |li| %>
10
+ <% @last_invoice.line_items.each do |li| %>
11
11
  <% if li.variant.downloadable %>
12
- <li><a href='/my-account/orders/<%= @last_order.id %>/line-items/<%= li.id %>/download' target="_blank"><%= li.variant.product.title %></a></li>
12
+ <li><a href='/my-account/invoices/<%= @last_invoice.id %>/line-items/<%= li.id %>/download' target="_blank"><%= li.variant.product.title %></a></li>
13
13
  <% end %>
14
14
  <% end %>
15
15
  </ul>
@@ -4,15 +4,15 @@ gc = @gift_card
4
4
 
5
5
  <h1>Edit Gift Card</h1>
6
6
 
7
- <p><div id='giftcard_<%= gc.id %>_name' ></div></p>
8
- <p><div id='giftcard_<%= gc.id %>_code' ></div></p>
9
- <p><div id='giftcard_<%= gc.id %>_card_type' ></div></p>
10
- <p><div id='giftcard_<%= gc.id %>_total' ></div></p>
11
- <p><div id='giftcard_<%= gc.id %>_balance' ></div></p>
12
- <p><div id='giftcard_<%= gc.id %>_min_order_total' ></div></p>
13
- <p><div id='giftcard_<%= gc.id %>_date_available' ></div></p>
14
- <p><div id='giftcard_<%= gc.id %>_date_expires' ></div></p>
15
- <p><div id='giftcard_<%= gc.id %>_status' ></div></p>
7
+ <p><div id='giftcard_<%= gc.id %>_name' ></div></p>
8
+ <p><div id='giftcard_<%= gc.id %>_code' ></div></p>
9
+ <p><div id='giftcard_<%= gc.id %>_card_type' ></div></p>
10
+ <p><div id='giftcard_<%= gc.id %>_total' ></div></p>
11
+ <p><div id='giftcard_<%= gc.id %>_balance' ></div></p>
12
+ <p><div id='giftcard_<%= gc.id %>_min_invoice_total' ></div></p>
13
+ <p><div id='giftcard_<%= gc.id %>_date_available' ></div></p>
14
+ <p><div id='giftcard_<%= gc.id %>_date_expires' ></div></p>
15
+ <p><div id='giftcard_<%= gc.id %>_status' ></div></p>
16
16
  <div id='message'></div>
17
17
 
18
18
  <h2>Usage</h2>
@@ -24,7 +24,7 @@ gc = @gift_card
24
24
  </tr>
25
25
  <% gc.discounts.each do |d| %>
26
26
  <tr>
27
- <td><a href='/admin/orders/<%= d.order_id %>'><%= d.order_id %></a></td>
27
+ <td><a href='/admin/invoices/<%= d.invoice_id %>'><%= d.invoice_id %></a></td>
28
28
  <td><%= number_to_currency(d.amount) %></td>
29
29
  </tr>
30
30
  <% end %>
@@ -49,15 +49,15 @@ $(document).ready(function() {
49
49
  update_url: '/admin/gift-cards/<%= gc.id %>',
50
50
  authenticity_token: '<%= form_authenticity_token %>',
51
51
  attributes: [
52
- { name: 'name' , nice_name: 'Name' , type: 'text' , value: <%= raw Caboose.json(gc.name ) %>, width: 400, align: 'left' },
53
- { name: 'code' , nice_name: 'Code' , type: 'text' , value: <%= raw Caboose.json(gc.code ) %>, width: 400, align: 'left' },
54
- { name: 'card_type' , nice_name: 'Type' , type: 'select' , value: <%= raw Caboose.json(gc.card_type ) %>, width: 400, align: 'left' , options_url: '/admin/gift-cards/card-type-options' },
55
- { name: 'total' , nice_name: 'Total' , type: 'text' , value: <%= raw Caboose.json(sprintf('%.2f', gc.total )) %>, width: 400, align: 'right' },
56
- { name: 'balance' , nice_name: 'Balance' , type: 'text' , value: <%= raw Caboose.json(sprintf('%.2f', gc.balance )) %>, width: 400, align: 'right' },
57
- { name: 'min_order_total' , nice_name: 'Minimum Order Total' , type: 'text' , value: <%= raw Caboose.json(sprintf('%.2f', gc.min_order_total )) %>, width: 400, align: 'right' },
58
- { name: 'date_available' , nice_name: 'Date Available' , type: 'date' , value: <%= raw Caboose.json(gc.date_available ? gc.date_available.strftime('%m/%d/%Y') : '') %>, width: 400, align: 'left' },
59
- { name: 'date_expires' , nice_name: 'Date Expires' , type: 'date' , value: <%= raw Caboose.json(gc.date_expires ? gc.date_expires.strftime('%m/%d/%Y') : '') %>, width: 400, align: 'left' },
60
- { name: 'status' , nice_name: 'Status' , type: 'select' , value: <%= raw Caboose.json(gc.status ) %>, width: 400, align: 'left' , options_url: '/admin/gift-cards/status-options' }
52
+ { name: 'name' , nice_name: 'Name' , type: 'text' , value: <%= raw Caboose.json(gc.name ) %>, width: 400, align: 'left' },
53
+ { name: 'code' , nice_name: 'Code' , type: 'text' , value: <%= raw Caboose.json(gc.code ) %>, width: 400, align: 'left' },
54
+ { name: 'card_type' , nice_name: 'Type' , type: 'select' , value: <%= raw Caboose.json(gc.card_type ) %>, width: 400, align: 'left' , options_url: '/admin/gift-cards/card-type-options' },
55
+ { name: 'total' , nice_name: 'Total' , type: 'text' , value: <%= raw Caboose.json(sprintf('%.2f', gc.total )) %>, width: 400, align: 'right' },
56
+ { name: 'balance' , nice_name: 'Balance' , type: 'text' , value: <%= raw Caboose.json(sprintf('%.2f', gc.balance )) %>, width: 400, align: 'right' },
57
+ { name: 'min_invoice_total' , nice_name: 'Minimum Invoice Total' , type: 'text' , value: <%= raw Caboose.json(sprintf('%.2f', gc.min_invoice_total )) %>, width: 400, align: 'right' },
58
+ { name: 'date_available' , nice_name: 'Date Available' , type: 'date' , value: <%= raw Caboose.json(gc.date_available ? gc.date_available.strftime('%m/%d/%Y') : '') %>, width: 400, align: 'left' },
59
+ { name: 'date_expires' , nice_name: 'Date Expires' , type: 'date' , value: <%= raw Caboose.json(gc.date_expires ? gc.date_expires.strftime('%m/%d/%Y') : '') %>, width: 400, align: 'left' },
60
+ { name: 'status' , nice_name: 'Status' , type: 'select' , value: <%= raw Caboose.json(gc.status ) %>, width: 400, align: 'left' , options_url: '/admin/gift-cards/status-options' }
61
61
  ]
62
62
  });
63
63
  });
@@ -20,15 +20,15 @@ $(document).ready(function() {
20
20
  allow_duplicate: false,
21
21
  allow_advanced_edit: true,
22
22
  fields: [
23
- { show: true , bulk_edit: true , name: 'name' , nice_name: 'Name' , sort: 'name' , type: 'text' , value: function(gc) { return gc.name; }, width: 75, align: 'left' },
24
- { show: true , bulk_edit: true , name: 'code' , nice_name: 'Code' , sort: 'code' , type: 'text' , value: function(gc) { return gc.code; }, width: 75, align: 'left' },
25
- { show: true , bulk_edit: true , name: 'card_type' , nice_name: 'Type' , sort: 'card_type' , type: 'select' , value: function(gc) { return gc.card_type; }, width: 75, align: 'left' , options_url: '/admin/gift-cards/card-type-options' },
26
- { show: true , bulk_edit: true , name: 'total' , nice_name: 'Total' , sort: 'total' , type: 'text' , value: function(gc) { return curr(gc.total); }, width: 75, align: 'right' },
27
- { show: true , bulk_edit: true , name: 'balance' , nice_name: 'Balance' , sort: 'balance' , type: 'text' , value: function(gc) { return curr(gc.balance); }, width: 75, align: 'right' },
28
- { show: true , bulk_edit: true , name: 'min_order_total' , nice_name: 'Minimum Order' , sort: 'min_order_total' , type: 'text' , value: function(gc) { return curr(gc.min_order_total); }, width: 75, align: 'right' },
29
- { show: true , bulk_edit: true , name: 'date_available' , nice_name: 'Date Available' , sort: 'date_available' , type: 'date' , value: function(gc) { return format_date(gc.date_available); }, width: 75, align: 'left' },
30
- { show: true , bulk_edit: true , name: 'date_expires' , nice_name: 'Date Expires' , sort: 'date_expires' , type: 'date' , value: function(gc) { return format_date(gc.date_expires); }, width: 75, align: 'left' },
31
- { show: true , bulk_edit: true , name: 'status' , nice_name: 'Status' , sort: 'status' , type: 'select' , value: function(gc) { return gc.status; }, width: 75, align: 'left' , options_url: '/admin/gift-cards/status-options' }
23
+ { show: true , bulk_edit: true , name: 'name' , nice_name: 'Name' , sort: 'name' , type: 'text' , value: function(gc) { return gc.name; }, width: 75, align: 'left' },
24
+ { show: true , bulk_edit: true , name: 'code' , nice_name: 'Code' , sort: 'code' , type: 'text' , value: function(gc) { return gc.code; }, width: 75, align: 'left' },
25
+ { show: true , bulk_edit: true , name: 'card_type' , nice_name: 'Type' , sort: 'card_type' , type: 'select' , value: function(gc) { return gc.card_type; }, width: 75, align: 'left' , options_url: '/admin/gift-cards/card-type-options' },
26
+ { show: true , bulk_edit: true , name: 'total' , nice_name: 'Total' , sort: 'total' , type: 'text' , value: function(gc) { return curr(gc.total); }, width: 75, align: 'right' },
27
+ { show: true , bulk_edit: true , name: 'balance' , nice_name: 'Balance' , sort: 'balance' , type: 'text' , value: function(gc) { return curr(gc.balance); }, width: 75, align: 'right' },
28
+ { show: true , bulk_edit: true , name: 'min_invoice_total' , nice_name: 'Minimum Invoice' , sort: 'min_invoice_total' , type: 'text' , value: function(gc) { return curr(gc.min_invoice_total); }, width: 75, align: 'right' },
29
+ { show: true , bulk_edit: true , name: 'date_available' , nice_name: 'Date Available' , sort: 'date_available' , type: 'date' , value: function(gc) { return format_date(gc.date_available); }, width: 75, align: 'left' },
30
+ { show: true , bulk_edit: true , name: 'date_expires' , nice_name: 'Date Expires' , sort: 'date_expires' , type: 'date' , value: function(gc) { return format_date(gc.date_expires); }, width: 75, align: 'left' },
31
+ { show: true , bulk_edit: true , name: 'status' , nice_name: 'Status' , sort: 'status' , type: 'select' , value: function(gc) { return gc.status; }, width: 75, align: 'left' , options_url: '/admin/gift-cards/status-options' }
32
32
  ],
33
33
  new_model_text: 'New Gift Card',
34
34
  no_models_text: 'There are no gift cards right now.',
@@ -1,7 +1,7 @@
1
1
 
2
2
  <h1>City Report</h1>
3
3
 
4
- <form action='/admin/orders/city-report' method='get' id='search_form'>
4
+ <form action='/admin/invoices/city-report' method='get' id='search_form'>
5
5
  <p>
6
6
  <input type='text' id='d1' name='d1' value='<%= @d1.strftime('%Y-%m-%d') %>' /> -
7
7
  <input type='text' id='d2' name='d2' value='<%= @d2.strftime('%Y-%m-%d') %>' />
@@ -0,0 +1,18 @@
1
+ <%= render :partial => 'invoices/admin_header' %>
2
+
3
+ <div id='message'>
4
+ <p><input type='button' value='Delete this invoice' onclick='delete_invoice(<%= @invoice.id %>);' /></p>
5
+ </div>
6
+
7
+ <%= render :partial => 'invoices/admin_footer' %>
8
+
9
+ <% content_for :caboose_js do %>
10
+ <script type='text/javascript'>
11
+
12
+ var modal = false;
13
+ $(window).load(function() {
14
+ modal = new CabooseModal(800);
15
+ });
16
+
17
+ </script>
18
+ <% end %>
@@ -1,41 +1,41 @@
1
1
 
2
- <input type='hidden' name='order_id' id='order_id' value='<%= @order.id %>' />
2
+ <input type='hidden' name='invoice_id' id='invoice_id' value='<%= @invoice.id %>' />
3
3
 
4
- <h1>Edit Order #<%= @order.id %></h1>
4
+ <h1>Edit Invoice #<%= @invoice.id %></h1>
5
5
 
6
6
  <div id='overview_table'></div>
7
- <div id='order_table'></div>
7
+ <div id='invoice_table'></div>
8
8
  <div id='message'></div>
9
9
  <div id='controls'></div>
10
10
 
11
11
  <!--
12
12
  <p>
13
- <input type='button' value='< Back' onclick="window.location='/admin/orders';" />
14
- <% if @order.financial_status == Caboose::Order::FINANCIAL_STATUS_AUTHORIZED && @order.total > 0.00 %>
13
+ <input type='button' value='< Back' onclick="window.location='/admin/invoices';" />
14
+ <% if @invoice.financial_status == Caboose::Invoice::FINANCIAL_STATUS_AUTHORIZED && @invoice.total > 0.00 %>
15
15
  <input type='button' value='Capture Funds' onclick="controller.capture_funds();" />
16
- <input type='button' value='Void' onclick="controller.void_order();" />
16
+ <input type='button' value='Void' onclick="controller.void_invoice();" />
17
17
  <% end %>
18
- <% if @order.financial_status == Caboose::Order::FINANCIAL_STATUS_CAPTURED && @order.total > 0.00 %>
19
- <input type='button' value='Refund' onclick="refund_order(<%= @order.id %>);" />
18
+ <% if @invoice.financial_status == Caboose::Invoice::FINANCIAL_STATUS_CAPTURED && @invoice.total > 0.00 %>
19
+ <input type='button' value='Refund' onclick="refund_invoice(<%= @invoice.id %>);" />
20
20
  <% end %>
21
- <input type='button' value='Resend Confirmation' onclick="resend_confirmation(<%= @order.id %>)" />
21
+ <input type='button' value='Resend Confirmation' onclick="resend_confirmation(<%= @invoice.id %>)" />
22
22
  <input type='button' value='Add Item' onclick="controller.add_variant();" />
23
- <input type='button' value='Print Order' onclick="controller.print_order(<%= @order.id %>);" />
23
+ <input type='button' value='Print Invoice' onclick="controller.print_invoice(<%= @invoice.id %>);" />
24
24
 
25
- <% str = Caboose.plugin_hook('admin_edit_order_buttons', "", @order) %>
25
+ <% str = Caboose.plugin_hook('admin_edit_invoice_buttons', "", @invoice) %>
26
26
  <% if str %><%= raw str %><% end %>
27
27
  </p>
28
28
  -->
29
29
 
30
30
  <% content_for :caboose_js do %>
31
31
  <%= javascript_include_tag 'caboose/model/all' %>
32
- <%= javascript_include_tag 'caboose/admin_edit_order' %>
32
+ <%= javascript_include_tag 'caboose/admin_edit_invoice' %>
33
33
  <script type='text/javascript'>
34
34
 
35
35
  var controller = false;
36
36
  $(document).ready(function() {
37
- controller = new OrderController({
38
- order_id: <%= raw Caboose.json(@order.id) %>,
37
+ controller = new InvoiceController({
38
+ invoice_id: <%= raw Caboose.json(@invoice.id) %>,
39
39
  authenticity_token: <%= raw Caboose.json(form_authenticity_token) %>
40
40
  });
41
41
  });
@@ -1,4 +1,4 @@
1
- <h1>Orders</h1>
1
+ <h1>Invoices</h1>
2
2
 
3
3
  <style type='text/css'>
4
4
  #search_form_wrapper { margin-bottom: 10px; position: absolute; top:0; right: 0; }
@@ -6,14 +6,14 @@
6
6
 
7
7
  <p>
8
8
  <a class="caboose-btn" href='#' onclick="$('#search_form').toggle(400, function() { modal.autosize(); });">Show/hide search form</a>
9
- <a class="caboose-btn" href='/admin/orders/new'>New Manual Order</a>
10
- <a class="caboose-btn" href='/admin/orders/print-pending' target='_blank'>Print Pending Orders</a>
11
- <a class="caboose-btn" href='/admin/orders/summary-report' target='_blank'>Summary Report</a>
12
- <a class="caboose-btn" href='/admin/orders/city-report' target='_blank'>City Report</a>
9
+ <a class="caboose-btn" href='/admin/invoices/new'>New Manual Invoice</a>
10
+ <a class="caboose-btn" href='/admin/invoices/print-pending' target='_blank'>Print Pending Invoices</a>
11
+ <a class="caboose-btn" href='/admin/invoices/summary-report' target='_blank'>Summary Report</a>
12
+ <a class="caboose-btn" href='/admin/invoices/city-report' target='_blank'>City Report</a>
13
13
  </p>
14
- <form action='/admin/orders' method='get' id='search_form' style='display: none;'>
15
- <p><input type='text' name='id' placeholder='Order ID' value="<%= @pager.params['id'] %>" style='width: 100px;' /></p>
16
- <p><input type='text' name='order_number' placeholder='Order Number' value="<%= @pager.params['order_number'] %>" style='width: 100px;' /></p>
14
+ <form action='/admin/invoices' method='get' id='search_form' style='display: none;'>
15
+ <p><input type='text' name='id' placeholder='Invoice ID' value="<%= @pager.params['id'] %>" style='width: 100px;' /></p>
16
+ <p><input type='text' name='invoice_number' placeholder='Invoice Number' value="<%= @pager.params['invoice_number'] %>" style='width: 100px;' /></p>
17
17
  <p><select name='customer_id'>
18
18
  <optgroup label='Status' style='width: 100px'>
19
19
  <option value=''>-- All customers --</option>
@@ -35,16 +35,16 @@
35
35
  </select></p>
36
36
  <p>
37
37
  <input type='submit' value='Search' />
38
- <input type='button' value='Clear' onclick="window.location='/admin/orders';" />
38
+ <input type='button' value='Clear' onclick="window.location='/admin/invoices';" />
39
39
  </p>
40
40
  </form>
41
41
 
42
- <% if @orders.count > 0 %>
43
- <table class='data' id='orders_table'>
42
+ <% if @invoices.count > 0 %>
43
+ <table class='data' id='invoices_table'>
44
44
  <tr>
45
45
  <%= raw @pager.sortable_table_headings({
46
46
  'id' => 'ID',
47
- 'order_number' => 'Order Number',
47
+ 'invoice_number' => 'Invoice Number',
48
48
  'customer_id' => 'Customer',
49
49
  'date_created' => 'Date Created',
50
50
  'total' => 'Total',
@@ -52,30 +52,30 @@
52
52
  })
53
53
  %>
54
54
  </tr>
55
- <% @orders.each do |order| %>
56
- <tr onclick="window.location='/admin/orders/<%= order.id %>';">
57
- <td><%= raw order.id %></td>
58
- <td><%= raw order.order_number %></td>
55
+ <% @invoices.each do |invoice| %>
56
+ <tr onclick="window.location='/admin/invoices/<%= invoice.id %>';">
57
+ <td><%= raw invoice.id %></td>
58
+ <td><%= raw invoice.invoice_number %></td>
59
59
  <td>
60
- <% if order.customer.nil? %>
60
+ <% if invoice.customer.nil? %>
61
61
  Unknown
62
62
  <% else %>
63
- <% if order.customer.first_name && order.customer.first_name.strip.length > 0 %>
64
- <%= order.customer.first_name %> <%= order.customer.last_name %>
63
+ <% if invoice.customer.first_name && invoice.customer.first_name.strip.length > 0 %>
64
+ <%= invoice.customer.first_name %> <%= invoice.customer.last_name %>
65
65
  <% else %>
66
- <%= order.customer.email %>
66
+ <%= invoice.customer.email %>
67
67
  <% end %>
68
68
  <% end %>
69
69
  </td>
70
- <td><%= raw order.date_created %></td>
71
- <td align='right'><%= number_to_currency(order.total) %></td>
72
- <td><%= raw order.status %></td>
70
+ <td><%= raw invoice.date_created %></td>
71
+ <td align='right'><%= number_to_currency(invoice.total) %></td>
72
+ <td><%= raw invoice.status %></td>
73
73
  </tr>
74
74
  <% end %>
75
75
  </table>
76
76
  <p><%= raw @pager.generate %></p>
77
77
  <% else %>
78
- <p>There are no orders right now.</p>
78
+ <p>There are no invoices right now.</p>
79
79
  <% end %>
80
80
 
81
81
  <% content_for :caboose_js do %>
@@ -1,3 +1,3 @@
1
1
 
2
- <h1>Invalid Order Number</h1>
3
- <p><input type='button' value='< Back' onclick="window.location='/admin/orders';" /></p>
2
+ <h1>Invalid Invoice Number</h1>
3
+ <p><input type='button' value='< Back' onclick="window.location='/admin/invoices';" /></p>
@@ -1,20 +1,20 @@
1
- <h1>New Manual Order</h1>
1
+ <h1>New Manual Invoice</h1>
2
2
 
3
- <p>This will create a new order that you can populate and then send to the customer for payment.</p>
3
+ <p>This will create a new invoice that you can populate and then send to the customer for payment.</p>
4
4
 
5
5
  <p>
6
- <input type='button' value='< Back' onclick="window.location='/admin/orders';" />
7
- <input type='button' value='Create Order' onclick='create_order();' />
6
+ <input type='button' value='< Back' onclick="window.location='/admin/invoices';" />
7
+ <input type='button' value='Create Order' onclick='create_invoice();' />
8
8
  </p>
9
9
 
10
10
  <% content_for :caboose_js do %>
11
11
  <script type='text/javascript'>
12
12
 
13
- function create_order()
13
+ function create_invoice()
14
14
  {
15
- $('#message').empty().append("<p class='loading'>Creating order...</p>");
15
+ $('#message').empty().append("<p class='loading'>Creating invoice...</p>");
16
16
  $.ajax({
17
- url: '/admin/orders',
17
+ url: '/admin/invoices',
18
18
  type: 'post',
19
19
  success: function(resp) {
20
20
  if (resp.error) $('#message').html("<p class='note error'>" + resp.error + "</p>");
@@ -1,13 +1,13 @@
1
1
  <%
2
- sa = @order.shipping_address
2
+ sa = @invoice.shipping_address
3
3
  shipping_address = sa.address1
4
4
  shipping_address << "<br />#{sa.address2}" if sa.address2 && sa.address2.length > 0
5
5
  shipping_address << "<br />#{sa.city}, #{sa.state} #{sa.zip}"
6
6
  %>
7
7
  <p align='center'><img src='https://dmwwflw4i3miv.cloudfront.net/logo.png' /></p>
8
8
 
9
- <h1>Order #<%= @order.order_number %></h1>
10
- <p>Order ID: <%= @order.id %></p>
9
+ <h1>Invoice #<%= @invoice.invoice_number %></h1>
10
+ <p>Invoice ID: <%= @invoice.id %></p>
11
11
 
12
12
  <table class='data'>
13
13
  <tr>
@@ -17,16 +17,16 @@ shipping_address << "<br />#{sa.city}, #{sa.state} #{sa.zip}"
17
17
  </tr>
18
18
  <tr>
19
19
  <td valign='top'>
20
- <%= "#{@order.customer.first_name} #{@order.customer.last_name}" %><br />
21
- <a href='mailto:<%= "#{@order.customer.email}" %>'><%= "#{@order.customer.email}" %></a><br />
22
- <%= @order.customer.phone %>
20
+ <%= "#{@invoice.customer.first_name} #{@invoice.customer.last_name}" %><br />
21
+ <a href='mailto:<%= "#{@invoice.customer.email}" %>'><%= "#{@invoice.customer.email}" %></a><br />
22
+ <%= @invoice.customer.phone %>
23
23
  </td>
24
24
  <td valign='top'>
25
- <%= "#{@order.shipping_address.name}" %><br />
25
+ <%= "#{@invoice.shipping_address.name}" %><br />
26
26
  <%= raw shipping_address %>
27
27
  </td>
28
28
  <td valign='top'>
29
- <%= @order.financial_status %>
29
+ <%= @invoice.financial_status %>
30
30
  </td>
31
31
  </tr>
32
32
  </table><br />
@@ -39,7 +39,7 @@ shipping_address << "<br />#{sa.city}, #{sa.state} #{sa.zip}"
39
39
  <th>Quantity</th>
40
40
  <th>Subtotal</th>
41
41
  </tr>
42
- <% @order.line_items.each do |li| %>
42
+ <% @invoice.line_items.each do |li| %>
43
43
  <tr>
44
44
  <td>
45
45
  <%= li.variant.product.title %><br />
@@ -52,12 +52,12 @@ shipping_address << "<br />#{sa.city}, #{sa.state} #{sa.zip}"
52
52
  <td align='right'><%= number_to_currency(li.subtotal) %></td>
53
53
  </tr>
54
54
  <% end %>
55
- <tr><td colspan='4' align='right'>Subtotal </td><td align='right'><%= number_to_currency(@order.subtotal ) %></td></tr>
56
- <tr><td colspan='4' align='right'>Tax </td><td align='right'><%= number_to_currency(@order.tax ) %></td></tr>
57
- <tr><td colspan='4' align='right'><%= @order.shipping_method %> Shipping </td><td align='right'><%= number_to_currency(@order.shipping ) %></td></tr>
58
- <tr><td colspan='4' align='right'>Handling </td><td align='right'><%= number_to_currency(@order.handling ) %></td></tr>
59
- <tr><td colspan='4' align='right'>Discount </td><td align='right'><%= number_to_currency(@order.discount ) %></td></tr>
60
- <tr><td colspan='4' align='right'>Total </td><td align='right'><%= number_to_currency(@order.total ) %></td></tr>
55
+ <tr><td colspan='4' align='right'>Subtotal </td><td align='right'><%= number_to_currency(@invoice.subtotal ) %></td></tr>
56
+ <tr><td colspan='4' align='right'>Tax </td><td align='right'><%= number_to_currency(@invoice.tax ) %></td></tr>
57
+ <tr><td colspan='4' align='right'><%= @invoice.shipping_method %> Shipping </td><td align='right'><%= number_to_currency(@invoice.shipping ) %></td></tr>
58
+ <tr><td colspan='4' align='right'>Handling </td><td align='right'><%= number_to_currency(@invoice.handling ) %></td></tr>
59
+ <tr><td colspan='4' align='right'>Discount </td><td align='right'><%= number_to_currency(@invoice.discount ) %></td></tr>
60
+ <tr><td colspan='4' align='right'>Total </td><td align='right'><%= number_to_currency(@invoice.total ) %></td></tr>
61
61
  </table>
62
62
 
63
63
  <% content_for :caboose_js do %>
@@ -22,9 +22,9 @@ end
22
22
  day_count = @rows.count
23
23
  %>
24
24
 
25
- <h1>Order Summary Report</h1>
25
+ <h1>Invoice Summary Report</h1>
26
26
 
27
- <form action='/admin/orders/summary-report' method='get' id='search_form'>
27
+ <form action='/admin/invoices/summary-report' method='get' id='search_form'>
28
28
  <p>
29
29
  <input type='text' id='d1' name='d1' value='<%= @d1.strftime('%Y-%m-%d') %>' /> -
30
30
  <input type='text' id='d2' name='d2' value='<%= @d2.strftime('%Y-%m-%d') %>' />
@@ -68,7 +68,7 @@ function drawChart()
68
68
 
69
69
  var counts_chart = new google.visualization.ColumnChart(document.getElementById('counts_chart'));
70
70
  counts_chart.draw(counts, {
71
- title: 'Daily Order Counts',
71
+ title: 'Daily Invoice Counts',
72
72
  width: 1200,
73
73
  height: 800,
74
74
  hAxis: { label: 'Date' },
@@ -85,7 +85,7 @@ function drawChart()
85
85
 
86
86
  var totals_chart = new google.visualization.ColumnChart(document.getElementById('totals_chart'));
87
87
  totals_chart.draw(totals, {
88
- title: 'Daily Order Totals',
88
+ title: 'Daily Invoice Totals',
89
89
  width: 1200,
90
90
  height: 800,
91
91
  hAxis: { label: 'Date' },