_assign_delete_prods.html.erb 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. <%= form_for(@pointsale, :remote => true ,:html => {:class=>"form-horizontal"}) do |f| %>
  2. <%= hidden_field_tag :todo, @todo %>
  3. <div class="portlet-body form">
  4. <% if @pointsale.errors.any? %>
  5. <div class="alert alert-danger">
  6. <strong>Tiene <%= pluralize(@pointsale.errors.count, "error") %> no se puede guardar el punto de venta</strong><br>
  7. </div>
  8. <% end %>
  9. <div class="form-body">
  10. <div class="form-group">
  11. <div class="row">
  12. <div class="col-md-offset-2 col-md-6">
  13. <div class="row static-info">
  14. <div class="col-md-3 name text-right"> Punto de venta </div>
  15. <div class="col-md-9 value"> <%= @pointsale.name %> <hr></div>
  16. </div>
  17. <div class="row static-info">
  18. <div class="col-md-3 name text-right"> Prefijo </div>
  19. <div class="col-md-9 value"> <%= @pointsale.prefix %> <hr></div>
  20. </div>
  21. <div class="row static-info">
  22. <div class="col-md-3 name text-right"> Dirección </div>
  23. <div class="col-md-9 value"> <%= @pointsale.address %> <hr></div>
  24. </div>
  25. </div>
  26. </div>
  27. </div>
  28. <div class="form-group">
  29. <div class="row">
  30. <div class="col-md-12">
  31. <div class="tabbable-custom">
  32. <ul class="nav nav-tabs">
  33. <li class="active">
  34. <a href="#availables" data-toggle="tab" aria-expanded="false">Productos disponibles</a>
  35. </li>
  36. <li>
  37. <a href="#products_pointsale" data-toggle="tab" aria-expanded="false"> Productos del punto de venta </a>
  38. </li>
  39. </ul>
  40. <div class="tab-content">
  41. <div class="tab-pane fade active in" id="availables">
  42. <div class="row">
  43. <div class="col-md-12">
  44. <div class="col-md-12">
  45. <div class="note note-success">
  46. <h4>Productos disponibles para asignar al punto de venta</h4>
  47. <p> En esta tabla se muestran todos los productos disponibles para asignarse al punto de venta para vender.</p><br>
  48. <p> Para hacer una búsqueda avanzada utiliza el siguiente formato, nombre del producto :atributo a buscar<br>
  49. ejemplo. <strong>blusa :verde</strong> (Sólo se puede buscar un atributo, ya sea estilo, talla ó color).
  50. </p>
  51. </div>
  52. </div>
  53. <div class="col-md-12">
  54. <table class="table table-striped table-bordered table-hover table_availables" data-source="<%= edit_pointsale_path(format: "json") %>">
  55. <thead>
  56. <tr>
  57. <th class="text-center">
  58. <input name="select_all" value="1" id="select-all" type="checkbox" />
  59. </th>
  60. <th>SKU</th>
  61. <th>Producto</th>
  62. <th>Línea</th>
  63. <th>Sub línea</th>
  64. <th>Precio de venta</th>
  65. </tr>
  66. </thead>
  67. <tbody>
  68. </tbody>
  69. </table>
  70. </div>
  71. <div class="col-md-12" style="margin-top:15px">
  72. <button type="button" title="Asignar los productos seleccionados al punto de venta" class="btn blue btn-block btn-lg" onclick="assignProducts()">
  73. <i class="fa fa-long-arrow-right" aria-hidden="true"></i> Asignar productos
  74. </button>
  75. </div>
  76. </div>
  77. </div>
  78. </div>
  79. <div class="tab-pane" id="products_pointsale">
  80. <div class="row">
  81. <div class="col-md-12">
  82. <div class="col-md-12">
  83. <div class="note note-success">
  84. <h4>Productos asignados al punto de venta</h4>
  85. <p> En esta tabla se muestran todos los productos que se han asignado al punto de venta para vender. </p><br>
  86. <p> Para hacer una búsqueda avanzada utiliza el siguiente formato, nombre del producto :atributo a buscar<br>
  87. ejemplo. <strong>blusa :verde</strong> (Sólo se puede buscar un atributo, ya sea estilo, talla ó color).
  88. </div>
  89. </div>
  90. <div class="col-md-12">
  91. <table class="table table-striped table-bordered table-hover table_prod_pointsale" data-source="<%= edit_pointsale_path(format: "json") %>">
  92. <thead>
  93. <tr>
  94. <th class="text-center"><input name="select_all" value="1" id="select-all" type="checkbox" /></th>
  95. <th>SKU</th>
  96. <th>Producto</th>
  97. <th>Línea</th>
  98. <th>Sub línea</th>
  99. <th>Stock</th>
  100. </tr>
  101. </thead>
  102. <tbody>
  103. </tbody>
  104. </table>
  105. </div>
  106. <div class="col-md-12" style="margin-top:15px">
  107. <button type="button" title="Desasignar los productos seleccionados del punto de venta" class="btn red btn-block btn-lg" onclick="deleteProducts()">
  108. <i class="fa fa-long-arrow-left" aria-hidden="true"></i> Desasignar productos
  109. </button>
  110. </div>
  111. </div>
  112. </div>
  113. </div>
  114. </div>
  115. </div>
  116. </div>
  117. </div>
  118. </div>
  119. </div>
  120. </div>
  121. <% end %>
  122. <script type="text/javascript">
  123. var rows_selected_1 = [];
  124. var rows_selected_2 = [];
  125. var class_1 = '.table_availables';
  126. var class_2 = '.table_prod_pointsale';
  127. var columns_1 = [{ "data": "0"}, { "data": "1" }, { "data": "2" }, { "data": "3" }, { "data": "4" }, { "data": "5" }];
  128. var columns_2 = [{ "data": "0"}, { "data": "1" }, { "data": "2" }, { "data": "3" }, { "data": "4" }, { "data": "5" }];
  129. var order_1 = 2;
  130. var order_2 = 2;
  131. var data_1 = { table: 'new_availables' };
  132. var data_2 = { table: 'in_pointsale' };
  133. // $(document).on("page:change", function() {
  134. tableWithCheckboxAjax.init(class_1, columns_1, order_1, data_1, rows_selected_1);
  135. tableWithCheckboxAjax.init(class_2, columns_2, order_2, data_2, rows_selected_2);
  136. // });
  137. function assignProducts() {
  138. if (rows_selected_1.length > 0) {
  139. $.ajax({
  140. type: "POST",
  141. url: "/pointsales/" + <%= @pointsale.id %> + "/assign_or_delete_products",
  142. dataType: "script",
  143. data: { ids: rows_selected_1, todo: 'assign' },
  144. success: function(xhr, status, error) { }
  145. });
  146. } else {
  147. toastr["error"]("Seleccione productos para asignarlos al punto de venta.");
  148. }
  149. }
  150. function deleteProducts() {
  151. if (rows_selected_2.length > 0) {
  152. $.ajax({
  153. type: "POST",
  154. url: "/pointsales/" + <%= @pointsale.id %> + "/assign_or_delete_products",
  155. dataType: "script",
  156. data: { ids: rows_selected_2, todo: 'delete' },
  157. success: function(xhr, status, error) { }
  158. });
  159. } else {
  160. toastr["error"]("Seleccione los productos que desee eliminar del punto de venta.");
  161. }
  162. }
  163. </script>