_form.html.erb 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. <%= form_for(@pos_config, :html => { class: "form-horizontal" }) do |f| %>
  2. <div class="portlet-body form">
  3. <% if @pos_config.errors.any? %>
  4. <div class="alert alert-danger">
  5. <strong>Tiene <%= pluralize(@pos_config.errors.count, "error") %> no se puede guardar la configuración</strong><br>
  6. </div>
  7. <% end %>
  8. <div class="form-body">
  9. <div class="row">
  10. <div class="col-md-11 col-sm-12">
  11. <div class="form-group">
  12. <%= f.label :cancel_partial_payment, { class: "col-md-3 col-sm-3 control-label" } do %>Días para cancelar abono
  13. <span class="required">*</span>
  14. <% end %>
  15. <div class="col-md-1 col-sm-2">
  16. <%= f.number_field :cancel_partial_payment, { class: "form-control input-xsmall" } %>
  17. </div>
  18. <%= f.label :refund_sale, { class: "col-md-3 col-sm-3 control-label" } do %>Días para aceptar devolución
  19. <span class="required">*</span>
  20. <% end %>
  21. <div class="col-md-1 col-sm-2">
  22. <%= f.number_field :refund_sale, { class: "form-control input-xsmall" } %>
  23. </div>
  24. </div>
  25. <div class="form-group">
  26. <%= f.label :days_cancel_sale, { class: "col-md-3 col-sm-3 control-label" } do %>Días para cancelar venta
  27. <span class="required">*</span>
  28. <% end %>
  29. <div class="col-md-1 col-sm-2">
  30. <%= f.number_field :days_cancel_sale, { class: "form-control input-xsmall" } %>
  31. </div>
  32. <%= f.label :days_cancel_purchase, { class: "col-md-3 col-sm-3 control-label"} do %>Días para cancelar compra
  33. <span class="required">*</span>
  34. <% end %>
  35. <div class="col-md-1 col-sm-2">
  36. <%= f.number_field :days_cancel_purchase, { class: "form-control input-xsmall" } %>
  37. </div>
  38. </div>
  39. <div class="form-group">
  40. <%= f.label :reserve_sale_percent, { class: "col-md-3 col-sm-3 control-label" } do %>Porcentaje para realizar apartado
  41. <span class="required">*</span>
  42. <% end %>
  43. <div class="col-md-1 col-sm-2">
  44. <%= f.number_field :reserve_sale_percent, { class: "form-control input-xsmall" } %>
  45. </div>
  46. <%= f.label :days_cancel_reserved, { class: "col-md-3 col-sm-3 control-label" } do %>Días para cancelar apartado
  47. <span class="required">*</span>
  48. <% end %>
  49. <div class="col-md-1 col-sm-2">
  50. <%= f.number_field :days_cancel_reserved, { class: "form-control input-xsmall" } %>
  51. </div>
  52. </div>
  53. <div class="form-group">
  54. <%= f.label :tax_percent, { class: "col-md-3 col-sm-3 control-label" } do %>IVA a aplicar
  55. <span class="required">*</span>
  56. <% end %>
  57. <div class="col-md-1 col-sm-2">
  58. <%= f.number_field :tax_percent, { class: "form-control input-xsmall" } %>
  59. </div>
  60. <%= f.label :commission_percent, { class: "col-md-3 col-sm-3 control-label" } do %>Porcentaje por comisión de venta
  61. <span class="required">*</span>
  62. <% end %>
  63. <div class="col-md-1 col-sm-2">
  64. <%= f.number_field :commission_percent, { class: "form-control input-xsmall" } %>
  65. </div>
  66. </div>
  67. <div class="form-group">
  68. <%= f.label :gain_margin, { class: "col-md-3 col-sm-3 control-label" } do %>Porcentaje de margen de ganancia
  69. <span class="required">*</span>
  70. <% end %>
  71. <div class="col-md-1 col-sm-2">
  72. <%= f.number_field :gain_margin, { class: "form-control input-xsmall" } %>
  73. </div>
  74. <%= f.label :enable_haggle, { class: "col-md-3 col-sm-3 control-label" } do %> ¿Permitir regateo en ventas? <span class="required">*</span><% end %>
  75. <div class="col-md-1 col-sm-2">
  76. <%= f.check_box(:enable_haggle,
  77. {
  78. class: "make-switch",
  79. data: {
  80. on_color: "success",
  81. off_color: "danger",
  82. on_text: "Si",
  83. off_text: "No"
  84. }
  85. }, "true","false"
  86. ) %>
  87. <%= f.hidden_field :enable_haggle %>
  88. </div>
  89. </div>
  90. <div class="form-group">
  91. <%= f.label :add_iva_to_pre_sales, { class: "col-md-3 col-sm-3 control-label" } do %> ¿Sumar o desglosar IVA en venta? <span class="required">*</span><% end %>
  92. <div class="col-md-1 col-sm-2">
  93. <%= f.check_box(:add_iva_to_pre_sales,
  94. {
  95. class: "make-switch",
  96. data: {
  97. on_color: "success",
  98. off_color: "danger",
  99. on_text: "Sumar",
  100. off_text: "Desglosar"
  101. }
  102. }, "true","false"
  103. ) %>
  104. <%= f.hidden_field :add_iva_to_pre_sales %>
  105. </div>
  106. <div id="haggle_div" class="<%= 'hidden' unless @pos_config.enable_haggle %>">
  107. <%= f.label :haggle_in_sale_percent, { class: "col-md-2 col-sm-2 col-md-offset-1 control-label" } do %>% máximo de regateo en ventas
  108. <span class="required">*</span>
  109. <% end %>
  110. <div class="col-md-3 col-sm-2">
  111. <%= f.number_field :haggle_in_sale_percent, { class: "form-control input-xsmall" } %>
  112. </div>
  113. </div>
  114. </div>
  115. <div class="form-group">
  116. <%= f.label :time_zone, { class: "col-md-3 col-sm-3 control-label" } do %>Zona horaria
  117. <span class="required">*</span>
  118. <% end %>
  119. <div class="col-md-1 col-sm-2">
  120. <%= f.time_zone_select :time_zone, ActiveSupport::TimeZone.us_zones, {}, {:class => 'form-control select2 input-large' } %>
  121. </div>
  122. </div>
  123. <div class="form-group">
  124. <%= f.label :ticket_description, { class: "col-md-3 col-sm-3 control-label" } do %>Encabezado para tickets
  125. <span class="required">*</span>
  126. <% end %>
  127. <div class="col-md-7 col-sm-6">
  128. <%= f.text_area :ticket_description, { class: "form-control", rows: 5 } %>
  129. <span class="help-block">Si no se especifica un encabezado para cada uno de los puntos de venta, se usará este de manera general.</span>
  130. </div>
  131. </div>
  132. <div class="form-group">
  133. <%= f.label :ticket_footer, { class: "col-md-3 col-sm-3 control-label" } do %>Pie de página para tickets
  134. <span class="required">*</span>
  135. <% end %>
  136. <div class="col-md-7 col-sm-6">
  137. <%= f.text_area :ticket_footer, { class: "form-control", rows: 5 } %>
  138. </div>
  139. </div>
  140. <div class="form-group">
  141. <%= f.label :ticket_img, "Imagen para el ticket", { class: "col-md-3 col-sm-3 control-label"} %>
  142. <div class="col-md-9 col-sm-3">
  143. <div class="fileinput fileinput-new" data-provides="fileinput">
  144. <div class="fileinput-new thumbnail" style="width: 200px; height: 150px;">
  145. <% if @pos_config.ticket_img? %>
  146. <%= image_tag @pos_config.ticket_img %>
  147. <% else %>
  148. <%= image_tag "no-image.png" %>
  149. <% end %>
  150. </div>
  151. <div class="fileinput-preview fileinput-exists thumbnail" style="max-width: 200px; max-height: 150px;"> </div>
  152. <div>
  153. <span class="btn default btn-file">
  154. <span class="fileinput-new"> Seleccione imagen </span>
  155. <span class="fileinput-exists"> Cambiar </span>
  156. <%= f.file_field :ticket_img, { class: "default"} %>
  157. <%= f.hidden_field :ticket_img_cache %>
  158. </span>
  159. <a href="javascript:;" class="btn red fileinput-exists" data-dismiss="fileinput"> Borrar </a>
  160. </div>
  161. </div>
  162. </div>
  163. </div>
  164. </div>
  165. </div>
  166. </div>
  167. <div class="form-actions">
  168. <div class="row">
  169. <div class="col-md-offset-1 col-md-9">
  170. <%= f.submit 'Guardar', { class: "btn green" } %>
  171. <%= link_to 'Cancelar', root_path, { class: "btn default" } %>
  172. </div>
  173. </div>
  174. </div>
  175. </div>
  176. <% end %>
  177. <script type="text/javascript">
  178. $(document).on("page:change", function() {
  179. App.init();
  180. });
  181. $('input[name="pos_config[enable_haggle]"]').on('switchChange.bootstrapSwitch', function(event, state) {
  182. if (state) {
  183. $("#haggle_div").removeClass("hidden");
  184. } else {
  185. $("#haggle_div").addClass("hidden");
  186. }
  187. $('input[name="pos_config[enable_haggle]"]').val(state);
  188. });
  189. $('input[name="pos_config[add_iva_to_pre_sales]"]').on('switchChange.bootstrapSwitch', function(event, state) {
  190. $('input[name="pos_config[add_iva_to_pre_sales]"]').val(state);
  191. });
  192. </script>