_assign_delete_prods.html.erb 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  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 busqueda avanzada utiliza el siguiente formato, nombre del producto :atributo a buscar<br>
  49. ejemplo. <strong>blusa :verde</strong> (Solo 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>Linea</th>
  63. <th>Sub linea</th>
  64. </tr>
  65. </thead>
  66. <tbody>
  67. </tbody>
  68. </table>
  69. </div>
  70. <div class="col-md-12" style="margin-top:15px">
  71. <button type="button" title="Asignar los productos seleccionados al punto de venta" class="btn blue btn-block btn-lg" onclick="assignProducts()">
  72. <i class="fa fa-long-arrow-right" aria-hidden="true"></i> Asignar productos
  73. </button>
  74. </div>
  75. </div>
  76. </div>
  77. </div>
  78. <div class="tab-pane" id="products_pointsale">
  79. <div class="row">
  80. <div class="col-md-12">
  81. <div class="col-md-12">
  82. <div class="note note-success">
  83. <h4>Productos asignados al punto de venta</h4>
  84. <p> En esta tabla se muestran todos los productos que se han asignado al punto de venta para vender. </p><br>
  85. <p> Para hacer una busqueda avanzada utiliza el siguiente formato, nombre del producto :atributo a buscar<br>
  86. ejemplo. <strong>blusa :verde</strong> (Solo se puede buscar un atributo, ya sea estilo, talla ó color).
  87. </div>
  88. </div>
  89. <div class="col-md-12">
  90. <table class="table table-striped table-bordered table-hover table_prod_pointsale" data-source="<%= edit_pointsale_path(format: "json") %>">
  91. <thead>
  92. <tr>
  93. <th class="text-center"><input name="select_all" value="1" id="select-all" type="checkbox" /></th>
  94. <th>SKU</th>
  95. <th>Producto</th>
  96. <th>Linea</th>
  97. <th>Sub linea</th>
  98. <th>Stock</th>
  99. </tr>
  100. </thead>
  101. <tbody>
  102. </tbody>
  103. </table>
  104. </div>
  105. <div class="col-md-12" style="margin-top:15px">
  106. <button type="button" title="Desasignar los productos seleccionados del punto de venta" class="btn red btn-block btn-lg" onclick="deleteProducts()">
  107. <i class="fa fa-long-arrow-left" aria-hidden="true"></i> Desasignar productos
  108. </button>
  109. </div>
  110. </div>
  111. </div>
  112. </div>
  113. </div>
  114. </div>
  115. </div>
  116. </div>
  117. </div>
  118. </div>
  119. </div>
  120. <% end %>
  121. <script type="text/javascript">
  122. var rows_selected_1 = [];
  123. var rows_selected_2 = [];
  124. var class_1 = '.table_availables';
  125. var class_2 = '.table_prod_pointsale';
  126. var columns_1 = [{ "data": "0"}, { "data": "1" }, { "data": "2" }, { "data": "3" }, { "data": "4" }];
  127. var columns_2 = [{ "data": "0"}, { "data": "1" }, { "data": "2" }, { "data": "3" }, { "data": "4" }, { "data": "5" }];
  128. var order_1 = 2;
  129. var order_2 = 2;
  130. var data_1 = { table: 'new_availables' };
  131. var data_2 = { table: 'in_pointsale' };
  132. // $(document).on("page:change", function() {
  133. tableWithCheckboxAjax.init(class_1, columns_1, order_1, data_1, rows_selected_1);
  134. tableWithCheckboxAjax.init(class_2, columns_2, order_2, data_2, rows_selected_2);
  135. // });
  136. function assignProducts() {
  137. if (rows_selected_1.length > 0) {
  138. $.ajax({
  139. type: "POST",
  140. url: "/pointsales/" + <%= @pointsale.id %> + "/assign_or_delete_products",
  141. dataType: "script",
  142. data: { ids: rows_selected_1, todo: 'assign' },
  143. success: function(xhr, status, error) { }
  144. });
  145. } else {
  146. toastr["error"]("Seleccione productos para asignarlos al punto de venta.");
  147. }
  148. }
  149. function deleteProducts() {
  150. if (rows_selected_2.length > 0) {
  151. $.ajax({
  152. type: "POST",
  153. url: "/pointsales/" + <%= @pointsale.id %> + "/assign_or_delete_products",
  154. dataType: "script",
  155. data: { ids: rows_selected_2, todo: 'delete' },
  156. success: function(xhr, status, error) { }
  157. });
  158. } else {
  159. toastr["error"]("Seleccione los productos que desee eliminar del punto de venta.");
  160. }
  161. }
  162. </script>