index.html.erb 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. <div class="page-container">
  2. <!-- BEGIN CONTENT -->
  3. <div class="page-content-wrapper">
  4. <!-- BEGIN CONTENT BODY -->
  5. <!-- BEGIN PAGE HEAD-->
  6. <div class="page-head">
  7. <div class="container-fluid">
  8. <!-- BEGIN PAGE TITLE -->
  9. <div class="page-title">
  10. <h1>Cortes de caja </h1>
  11. </div>
  12. <!-- END PAGE TITLE -->
  13. </div>
  14. </div>
  15. <!-- END PAGE HEAD-->
  16. <!-- BEGIN PAGE CONTENT BODY -->
  17. <div class="page-content">
  18. <div class="container-fluid">
  19. <!-- BEGIN PAGE BREADCRUMBS -->
  20. <ul class="page-breadcrumb breadcrumb">
  21. <%= render_breadcrumbs :tag => :li, :separator => ' <i class="fa fa-circle"></i> ' %>
  22. </ul>
  23. <!-- END PAGE BREADCRUMBS -->
  24. <!-- BEGIN PAGE CONTENT INNER -->
  25. <div class="page-content-inner">
  26. <div id="notice">
  27. <% if success %>
  28. <div class="alert alert-success">
  29. <p><%= success %></p>
  30. </div>
  31. <% elsif warning %>
  32. <div class="alert alert-warning">
  33. <p><%= warning %></p>
  34. </div>
  35. <% end %>
  36. </div>
  37. <div class="row">
  38. <div class="col-md-12">
  39. <%= hidden_field_tag 'title_for_print' %>
  40. <div class="portlet light ">
  41. <div class="portlet-title">
  42. <div class="caption">
  43. <i class="fa fa-list "></i>
  44. <span class="caption-subject bold uppercase">Lista de cortes de caja</span>
  45. </div>
  46. <div class="actions">
  47. <% if current_user.usertype == "G" %>
  48. <% if can? :create, CashOut %>
  49. <%= link_to get_open_cash_registers_path, remote: true, data: { toggle: "modal", target: "#get_open_cash_register" }, :class=>"btn bold green pull-right", :title=>"Realizar corte de caja" do %> Realizar corte de caja <i class="fa fa-plus"></i>
  50. <% end %>
  51. <% end %>
  52. <% end %>
  53. <% if current_user.usertype == "A" %>
  54. <%= link_to opened_cash_registers_path, {:class=>"btn bold green pull-right"} do %> <i class="fa fa-search"></i>&nbsp Ver cajas abiertas <% end %>
  55. <% end %>
  56. </div>
  57. </div>
  58. <div class="portlet-body">
  59. <!-- filtros de fecha si es Admin -->
  60. <div class="form-horizontal" style="margin-bottom:35px">
  61. <div class="row">
  62. <div class="col-md-9">
  63. <div class="form-group">
  64. <%= label_tag :pointsale, "pointsale", {:class=>"col-md-2 control-label"} do %> Punto de venta
  65. <% end %>
  66. <div class="col-md-3">
  67. <%= select_tag "pointsale", options_from_collection_for_select(Pointsale.vigentes, :id, :name, :selected => current_user.pointsale_id), :include_blank => "Todas", :disabled => (true unless current_user.usertype == 'A'), class: "form-control select2 col-md-3" %>
  68. </div>
  69. <%= label_tag :begin_date, "Fecha", {:class=>"col-md-1 control-label"} do %> Desde
  70. <% end %>
  71. <div class="col-sm-2" style="padding-left:0px;padding-right:0px;">
  72. <div class='input-group date' id='begin_date'>
  73. <input id="start" type='text' class="form-control"/>
  74. <span class="input-group-addon">
  75. <span class="glyphicon glyphicon-calendar"></span>
  76. </span>
  77. </div>
  78. </div>
  79. <%= label_tag :end_date, "Fecha", {:class=>"col-md-1 control-label"} do %> Hasta
  80. <% end %>
  81. <div class="col-sm-2" style="padding-left:0px;padding-right:0px;">
  82. <div class='input-group date' id='end_date'>
  83. <input id="end" type='text' class="form-control"/>
  84. <span class="input-group-addon">
  85. <span class="glyphicon glyphicon-calendar"></span>
  86. </span>
  87. </div>
  88. </div>
  89. <button class="btn btn-icon-only blue pull-right" onclick="cashOutByPointsaleDate()">
  90. <i class="fa fa-search"></i>
  91. </button>
  92. </div>
  93. </div>
  94. </div>
  95. </div>
  96. <input type='hidden' name='filter' id='filter' value='<%= @filter %>' >
  97. <input type='hidden' name='current_page' id='current_page' value='<%= @current_page %>' >
  98. <table class="table table-striped table-bordered table-hover tableadvancedprintable" id="cash_outs_table">
  99. <thead>
  100. <tr>
  101. <th>#</th>
  102. <% if current_user.usertype == "A" %>
  103. <th>Punto de venta</th>
  104. <% end %>
  105. <th>Caja registradora</th>
  106. <th>Ingresos</th>
  107. <th>Egresos</th>
  108. <th>Total</th>
  109. <th>Fecha</th>
  110. <th>Usuario</th>
  111. <th>Recibió</th>
  112. <th>Acciones</th>
  113. </tr>
  114. </thead>
  115. <tbody>
  116. <% @cash_outs.each_with_index do |cash_out, key| %>
  117. <tr>
  118. <td><%= cash_out.id %></td>
  119. <% if current_user.usertype == "A" %>
  120. <td>
  121. <%= OpenCashRegister.get_pointsale(cash_out.open_cash_register_id, "open_cash_register").name %>
  122. </td>
  123. <% end %>
  124. <td><%= cash_out.open_cash_register.cash_register.name %> </td>
  125. <td><%= number_to_currency(cash_out.amount_in, precision: 2) %> </td>
  126. <td><%= number_to_currency(cash_out.amount_out, precision: 2) %></td>
  127. <td><%= number_to_currency(cash_out.amount_in - cash_out.amount_out, precision: 2) %></td>
  128. <td><%= l(cash_out.created_at, :format => '%d/%B/%Y') %></td>
  129. <td><%= cash_out.user.first_name %></td>
  130. <td><%= (cash_out.received_by.blank? ? "" : cash_out.received_by.first_name) %></td>
  131. <td class="text-center">
  132. <%= link_to cash_out, {:class=>"btn btn-icon-only default filtros", :title=>"Ver corte de caja"} do %>
  133. <i class="fa fa-search"></i>
  134. <% end %>
  135. <%= link_to print_cash_out_receipt_path(cash_out.id, format: 'pdf'), {:class=>"btn btn-icon-only default", :target => "blank"} do %>
  136. <i class="fa fa-print"></i>
  137. <% end %>
  138. </td>
  139. </tr>
  140. <% end %>
  141. </tbody>
  142. </table>
  143. </div>
  144. </div>
  145. </div>
  146. </div>
  147. </div>
  148. <!-- END PAGE CONTENT INNER -->
  149. </div>
  150. </div>
  151. <!-- END PAGE CONTENT BODY -->
  152. <!-- END CONTENT BODY -->
  153. </div>
  154. <!-- END CONTENT -->
  155. </div>
  156. <script>
  157. $(document).on("page:change", function() {
  158. $('#begin_date').datetimepicker({
  159. icons: {
  160. date: "fa fa-calendar"
  161. },
  162. format: "DD/MM/YYYY",
  163. defaultDate: moment().startOf('month').toDate()
  164. });
  165. $('#end_date').datetimepicker({
  166. icons: {
  167. date: "fa fa-calendar"
  168. },
  169. format: "DD/MM/YYYY",
  170. defaultDate: moment().endOf('month').toDate()
  171. });
  172. });
  173. function cashOutByPointsaleDate() {
  174. var start = moment($("#begin_date").data("date"), "DD-MM-YYYY").format('YYYY-MM-DD HH:mm:ss');
  175. var end = moment($("#end_date").data("date"), "DD-MM-YYYY").format('YYYY-MM-DD HH:mm:ss');
  176. var pointsale = $('#pointsale').val();
  177. App.blockUI({
  178. target: $("#cash_outs_table"),
  179. animate: true
  180. });
  181. $.ajax({
  182. type: "get",
  183. url: '/find_cash_outs_by_date/' + pointsale + '/' + start + '/' + end,
  184. dataType: 'script',
  185. success: function(data) {
  186. window.setTimeout(function() {
  187. App.unblockUI($("#cash_outs_table"));
  188. }, 100);
  189. }
  190. });
  191. }
  192. </script>
  193. <!-- END CONTAINER