index.html.erb 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  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 && !session[:open_cash_register_id].present? %>
  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. <% horas_transcurridas = ((DateTime.now.to_time - cash_out.created_at.to_time).to_i/60)/60 %>
  119. <tr>
  120. <td><%= cash_out.id %></td>
  121. <% if current_user.usertype == "A" || current_user.usertype == "SS" %>
  122. <td>
  123. <%= OpenCashRegister.get_pointsale(cash_out.open_cash_register_id, "open_cash_register").name %>
  124. </td>
  125. <% end %>
  126. <td><%= cash_out.open_cash_register.cash_register.name %> </td>
  127. <td><%= number_to_currency(cash_out.amount_in, precision: 2) %> </td>
  128. <td><%= number_to_currency(cash_out.amount_out, precision: 2) %></td>
  129. <td><%= number_to_currency(cash_out.amount_in - cash_out.amount_out, precision: 2) %></td>
  130. <td><%= l(cash_out.created_at, :format => '%d/%B/%Y') %></td>
  131. <td><%= cash_out.user.first_name %></td>
  132. <td><%= (cash_out.received_by.blank? ? "" : cash_out.received_by.first_name) %></td>
  133. <td class="text-center">
  134. <%= link_to cash_out, {:class=>"btn btn-icon-only default filtros", :title=>"Ver corte de caja"} do %>
  135. <i class="fa fa-search"></i>
  136. <% end %>
  137. <%= link_to print_cash_out_receipt_path(cash_out.id, format: 'pdf'), {:class=>"btn btn-icon-only default", :target => "blank"} do %>
  138. <i class="fa fa-print"></i>
  139. <% end %>
  140. <% if can? :general_public_invoice, CashOut %>
  141. <% if cash_out.invoice_num.blank? && (cash_out.amount_in - cash_out.amount_out) > 0.0 && horas_transcurridas < 72 %>
  142. <%= link_to general_public_invoice_path(cash_out.id), remote: true, class: "btn btn-icon-only green", title: "Generar factura a público general" do %>
  143. <i class="fa fa-envelope"></i>
  144. <% end %>
  145. <% elsif cash_out.invoice_num.present? %>
  146. <%= link_to print_gpi_path(cash_out.id), remote: true, class: "btn btn-icon-only default blue-madison", target: "blank", title: "Reimprimir factura" do %>
  147. <i class="fa fa-file-text-o"></i>
  148. <% end %>
  149. <% end %>
  150. <% end %>
  151. </td>
  152. </tr>
  153. <% end %>
  154. </tbody>
  155. </table>
  156. </div>
  157. </div>
  158. </div>
  159. </div>
  160. </div>
  161. <!-- END PAGE CONTENT INNER -->
  162. </div>
  163. </div>
  164. <!-- END PAGE CONTENT BODY -->
  165. <!-- END CONTENT BODY -->
  166. </div>
  167. <!-- END CONTENT -->
  168. </div>
  169. <script>
  170. $(document).on("page:change", function() {
  171. $('#start').datetimepicker({
  172. icons: {
  173. date: "fa fa-calendar"
  174. },
  175. format: "DD/MM/YYYY",
  176. defaultDate: moment().startOf('month').toDate()
  177. });
  178. $('#end').datetimepicker({
  179. icons: {
  180. date: "fa fa-calendar"
  181. },
  182. format: "DD/MM/YYYY",
  183. defaultDate: moment().endOf('month').toDate()
  184. });
  185. });
  186. function cashOutByPointsaleDate() {
  187. if ($("#start").val() && $("#end").val()) {
  188. var start = moment($("#start").data("date"), "DD-MM-YYYY").format('YYYY-MM-DD HH:mm:ss');
  189. var end = moment($("#end").data("date"), "DD-MM-YYYY").format('YYYY-MM-DD HH:mm:ss');
  190. } else {
  191. var start = null;
  192. var end = null;
  193. }
  194. var pointsale = $('#pointsale').val();
  195. if(pointsale == ""){
  196. pointsale = null;
  197. }
  198. App.blockUI({
  199. target: $("#cash_outs_table"),
  200. animate: true
  201. });
  202. $.ajax({
  203. type: "get",
  204. url: '/find_cash_outs_by_date/' + pointsale + '/' + start + '/' + end,
  205. dataType: 'script',
  206. success: function(data) {
  207. window.setTimeout(function() {
  208. App.unblockUI($("#cash_outs_table"));
  209. }, 100);
  210. }
  211. });
  212. }
  213. </script>
  214. <!-- END CONTAINER