index.html.erb 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  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 can? :create, OpenCashRegister %>
  48. <%= link_to new_open_cash_register_path, remote: true, class: 'btn btn bold green margin-top pull-right', title: "Abrir caja registradora" do %> Abrir caja <i class="fa fa-plus"></i><% end %> <br>
  49. <% end %>
  50. <% if can? :get_open_cash_registers, CashOut %>
  51. <%= 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", style: "margin-top:10px" do %> Realizar corte de caja <i class="fa fa-plus"></i>
  52. <% end %>
  53. <% end %>
  54. <% if can? :opened_cash_registers, CashOut %>
  55. <%= link_to opened_cash_registers_path, { class: "btn bold green pull-right" } do %> <i class="fa fa-search"></i>&nbsp Ver cajas abiertas <% end %>
  56. <% end %>
  57. </div>
  58. </div>
  59. <div class="portlet-body">
  60. <!-- filtros de fecha si es Admin -->
  61. <div class="form-horizontal" style="margin-bottom:35px">
  62. <div class="row">
  63. <div class="col-md-9">
  64. <div class="form-group">
  65. <%= label_tag :pointsale, "pointsale", {:class=>"col-md-2 control-label"} do %> Punto de venta
  66. <% end %>
  67. <div class="col-md-3">
  68. <%= 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" || current_user.usertype == "SS"), class: "form-control select2 col-md-3" %>
  69. </div>
  70. <%= label_tag :begin_date, "Fecha", {:class=>"col-md-1 control-label"} do %> Desde
  71. <% end %>
  72. <div class="col-sm-2" style="padding-left:0px;padding-right:0px;">
  73. <div class='input-group date' id='begin_date'>
  74. <input id="start" type='text' class="form-control" value="<%= l(Date.today.beginning_of_month, format: '%d/%m/%Y') %>" />
  75. <span class="input-group-addon">
  76. <span class="glyphicon glyphicon-calendar"></span>
  77. </span>
  78. </div>
  79. </div>
  80. <%= label_tag :end_date, "Fecha", {:class=>"col-md-1 control-label"} do %> Hasta
  81. <% end %>
  82. <div class="col-sm-2" style="padding-left:0px;padding-right:0px;">
  83. <div class='input-group date' id='end_date'>
  84. <input id="end" type='text' class="form-control" value="<%= l(Date.today.end_of_month, format: '%d/%m/%Y') %>" />
  85. <span class="input-group-addon">
  86. <span class="glyphicon glyphicon-calendar"></span>
  87. </span>
  88. </div>
  89. </div>
  90. <button class="btn btn-icon-only blue pull-right" onclick="cashOutByPointsaleDate()">
  91. <i class="fa fa-search"></i>
  92. </button>
  93. </div>
  94. </div>
  95. </div>
  96. </div>
  97. <input type='hidden' name='filter' id='filter' value='<%= @filter %>' >
  98. <input type='hidden' name='current_page' id='current_page' value='<%= @current_page %>' >
  99. <table class="table table-striped table-bordered table-hover tableadvancedprintable" id="cash_outs_table">
  100. <thead>
  101. <tr>
  102. <th>#</th>
  103. <% if current_user.usertype == "A" || current_user.usertype == "SS" %>
  104. <th>Punto de venta</th>
  105. <% end %>
  106. <th>Caja registradora</th>
  107. <th>Ingresos</th>
  108. <th>Egresos</th>
  109. <th>Total</th>
  110. <th>Fecha</th>
  111. <th>Usuario</th>
  112. <th>Recibió</th>
  113. <th>Acciones</th>
  114. </tr>
  115. </thead>
  116. <tbody>
  117. <% @cash_outs.each_with_index do |cash_out, key| %>
  118. <tr>
  119. <td><%= cash_out.id %></td>
  120. <% if current_user.usertype == "A" || current_user.usertype == "SS" %>
  121. <td>
  122. <%= OpenCashRegister.get_pointsale(cash_out.open_cash_register_id, "open_cash_register").name %>
  123. </td>
  124. <% end %>
  125. <td><%= cash_out.open_cash_register.cash_register.name %> </td>
  126. <td><%= number_to_currency(cash_out.amount_in, precision: 2) %> </td>
  127. <td><%= number_to_currency(cash_out.amount_out, precision: 2) %></td>
  128. <td><%= number_to_currency(cash_out.amount_in - cash_out.amount_out, precision: 2) %></td>
  129. <td><%= l(cash_out.created_at, :format => '%d/%B/%Y') %></td>
  130. <td><%= cash_out.user.first_name %></td>
  131. <td><%= (cash_out.received_by.blank? ? "" : cash_out.received_by.first_name) %></td>
  132. <td class="text-center">
  133. <%= link_to cash_out, {:class=>"btn btn-icon-only default filtros", :title=>"Ver corte de caja"} do %>
  134. <i class="fa fa-search"></i>
  135. <% end %>
  136. <%= link_to print_cash_out_receipt_path(cash_out.id, format: 'pdf'), {:class=>"btn btn-icon-only default", :target => "blank"} do %>
  137. <i class="fa fa-print"></i>
  138. <% end %>
  139. </td>
  140. </tr>
  141. <% end %>
  142. </tbody>
  143. </table>
  144. </div>
  145. </div>
  146. </div>
  147. </div>
  148. </div>
  149. <!-- END PAGE CONTENT INNER -->
  150. </div>
  151. </div>
  152. <!-- END PAGE CONTENT BODY -->
  153. <!-- END CONTENT BODY -->
  154. </div>
  155. <!-- END CONTENT -->
  156. </div>
  157. <script>
  158. $(document).on("page:change", function() {
  159. $('#start').datetimepicker({
  160. icons: {
  161. date: "fa fa-calendar"
  162. },
  163. format: "DD/MM/YYYY",
  164. defaultDate: moment().startOf('month').toDate()
  165. });
  166. $('#end').datetimepicker({
  167. icons: {
  168. date: "fa fa-calendar"
  169. },
  170. format: "DD/MM/YYYY",
  171. defaultDate: moment().endOf('month').toDate()
  172. });
  173. });
  174. function cashOutByPointsaleDate() {
  175. if ($("#start").val() && $("#end").val()) {
  176. var start = moment($("#start").data("date"), "DD-MM-YYYY").format('YYYY-MM-DD HH:mm:ss');
  177. var end = moment($("#end").data("date"), "DD-MM-YYYY").format('YYYY-MM-DD HH:mm:ss');
  178. } else {
  179. var start = null;
  180. var end = null;
  181. }
  182. var pointsale = $('#pointsale').val();
  183. if(pointsale == ""){
  184. pointsale = null;
  185. }
  186. App.blockUI({
  187. target: $("#cash_outs_table"),
  188. animate: true
  189. });
  190. $.ajax({
  191. type: "get",
  192. url: '/find_cash_outs_by_date/' + pointsale + '/' + start + '/' + end,
  193. dataType: 'script',
  194. success: function(data) {
  195. window.setTimeout(function() {
  196. App.unblockUI($("#cash_outs_table"));
  197. }, 100);
  198. }
  199. });
  200. }
  201. </script>
  202. <!-- END CONTAINER