templates/tpv/cierre_caja/index.html.twig line 1

Open in your IDE?
  1. {% extends "base.html.twig" %}
  2. {% block headerStyles %}
  3.     {{ parent() }}
  4.         <link href="{{ asset('assets/plugins/datetimepicker/css/classic.css')}}" rel="stylesheet" />
  5.         <link href="{{ asset('assets/plugins/datetimepicker/css/classic.time.css') }}" rel="stylesheet" />
  6.     <link href="{{ asset('assets/plugins/datetimepicker/css/classic.date.css') }}" rel="stylesheet" />
  7. {% endblock %}
  8. {% block content %}
  9.     <div class="page-content">
  10.          <div class="page-breadcrumb d-none d-sm-flex align-items-center mb-3">
  11.             <div class="breadcrumb-title pe-3">Cerrar Caja</div>
  12.             <form action="{{ path("tpv_cierre_caja") }}" method="GET" class="ms-auto" id="fecha_form">
  13.                 <div class=" d-sm-flex align-items-center ms-auto">
  14.                     <div class="form-group pe-3">
  15.                      <input type="text" name="fecha" id="fecha" value="{{ fecha }}" class="form-control" />
  16.                     </div>
  17.                     
  18.                 
  19.                 </div>
  20.             </form>
  21.             
  22.             <div class="ms-auto">
  23.                  <a href="{{ path('tpv_ventas_dia') }}?dia={{ fecha }}" class="btn btn-primary"  ><i class="bx bx-file"></i> Ver ventas del día por productos</a>
  24.             </div>
  25.         </div>
  26.         <div class="row row-cols-1 row-cols-md-2 row-cols-xl-5">
  27.             <div class="col">
  28.                  <div class="card radius-10 border-start border-0 border-3 border-info">
  29.                         <div class="card-body">
  30.                                 <div class="d-flex align-items-center">
  31.                                         <div>
  32.                                                 <p class="mb-0 text-secondary">Total Venta</p>
  33.                                                 <h4 class="my-1 text-info">{{ (total_venta_real ) |number_format(2,",",".") }}</h4>
  34.                                                 <!--small>Venta real: {{ total_ventas |number_format(2,",",".") }}</small-->
  35.                                                 
  36.                                         </div>
  37.                                         <div class="widgets-icons-2 rounded-circle bg-gradient-scooter text-white ms-auto"><i class='bx bxs-cart'></i>
  38.                                         </div>
  39.                                 </div>
  40.                         </div>
  41.                  </div>
  42.            </div>
  43.            <div class="col">
  44.                 <div class="card radius-10 border-start border-0 border-3 border-danger">
  45.                    <div class="card-body">
  46.                            <div class="d-flex align-items-center">
  47.                                    <div>
  48.                                            <p class="mb-0 text-secondary">Ticket medio</p>
  49.                                            <h4 class="my-1 text-danger">{{ ticket_medio |number_format(2,",",".") }}</h4>
  50.                                            
  51.                                    </div>
  52.                                    <div class="widgets-icons-2 rounded-circle bg-gradient-bloody text-white ms-auto"><i class='bx bx-line-chart'></i>
  53.                                    </div>
  54.                            </div>
  55.                    </div>
  56.                 </div>
  57.           </div>
  58.           <div class="col">
  59.                 <div class="card radius-10 border-start border-0 border-3 border-success">
  60.                    <div class="card-body">
  61.                            <div class="d-flex align-items-center">
  62.                                    <div>
  63.                                            <p class="mb-0 text-secondary">Total en efectivo</p>
  64.                                            <h4 class="my-1 text-success">{{ efectivo |number_format(2,",",".") }}</h4>
  65.                                            
  66.                                    </div>
  67.                                    <div class="widgets-icons-2 rounded-circle bg-gradient-ohhappiness text-white ms-auto"><i class='bx bxs-coin' ></i>
  68.                                    </div>
  69.                            </div>
  70.                    </div>
  71.                 </div>
  72.           </div>
  73.           <div class="col">
  74.                 <div class="card radius-10 border-start border-0 border-3 border-warning">
  75.                    <div class="card-body">
  76.                            <div class="d-flex align-items-center">
  77.                                    <div>
  78.                                            <p class="mb-0 text-secondary">Total en tarjeta</p>
  79.                                            <h4 class="my-1 text-warning">{{ tarjeta |number_format(2,",",".") }}</h4>
  80.                                            
  81.                                    </div>
  82.                                    <div class="widgets-icons-2 rounded-circle bg-gradient-blooker text-white ms-auto"><i class='bx bxs-credit-card'></i>
  83.                                    </div>
  84.                            </div>
  85.                    </div>
  86.                 </div>
  87.           </div> 
  88.           <div class="col">
  89.                 <div class="card radius-10 border-start border-0 border-3 border-danger">
  90.                    <div class="card-body">
  91.                            <div class="d-flex align-items-center">
  92.                                    <div>
  93.                                            <p class="mb-0 text-secondary">Total Transferencia</p>
  94.                                            <h4 class="my-1 text-danger">{{ transferencia |number_format(2,",",".") }}</h4>
  95.                                            
  96.                                    </div>
  97.                                    <div class="widgets-icons-2 rounded-circle bg-gradient-bloody text-white ms-auto"><i class='bx bx-transfer-alt'></i>
  98.                                    </div>
  99.                            </div>
  100.                    </div>
  101.                 </div>
  102.           </div> 
  103.         </div>
  104.         <div class="row">
  105.             <div class="card">
  106.                     <div class="card-body">
  107.                             <table class="table mb-0">
  108.                                     <thead>
  109.                                             <tr>
  110.                                                     <th scope="col" class="cabecera_filtrada" data-filter="id" style="width:100px">ID</th>
  111.                                                     <th scope="col" class="cabecera_filtrada" data-filter="date">Fecha</th>
  112.                                                     <th scope="col">Cliente</th>
  113.                                                     <th scope="col">Vendido por</th>
  114.                                                     <th scope="col" class="cabecera_filtrada" data-filter="subtotal">Subtotal</th>
  115.                                                     <th scope="col" class="cabecera_filtrada" data-filter="ivaValue">Iva</th>
  116.                                                     <th scope="col" class="cabecera_filtrada" data-filter="total">Total</th>
  117.                                                     <th scope="col" class="cabecera_filtrada" data-filter="total">Pagado</th>
  118.                                                     <th scope="col">Estado</th>
  119.                                                     <th scope="col">Detalles</th>
  120.                                                     
  121.                                             </tr>
  122.                                     </thead>
  123.                                     <tbody>
  124.                                         {% for venta in ventas %}
  125.                                             <tr>
  126.                                                     <th scope="row">{{ venta.getId() }}</th>
  127.                                                     <td>{{ venta.getDate() | date ("d/m/Y") }}</td>
  128.                                                     <td>{{ venta.getClientId() | getClienteName() }}</td>
  129.                                                     <td>{{ venta.getUserId() | getUserName() }}</td>
  130.                                                     <td>{{ venta.getSubtotal() | number_format(2,",",".") }}</td>
  131.                                                     <td>{{ venta.getIvaValue() | number_format(2,",",".") }}</td>
  132.                                                     <td>{{ venta.getTotal() | number_format(2,",",".") }}</td>
  133.                                                     <td>{{ venta.getPayed() | number_format(2,",",".") }}</td>
  134.                                                     <td>{{ (venta.getStatus() | getStatusLabel()) | raw }}</td>
  135.                                                     
  136.                                                     <td>
  137.                                                         <button  onclick="viewTicket({{venta.getId()}})" class="btn btn-outline-primary" ><i class="bx bx-file"></i></button>
  138.                                                         <button  onclick="printTicket({{venta.getId()}})" class="btn btn-outline-primary" ><i class="bx bx-printer"></i></button>
  139.                                                     </td>
  140.                                                   
  141.                                             </tr>
  142.                                         {% endfor %}
  143.                                     </tbody>
  144.                             </table>
  145.                                      
  146.                     </div>
  147.             </div>
  148.         </div>
  149.         <div class="row">
  150.             <div class="card">
  151.                     <div class="card-body">
  152.                          <form action="" method="post">
  153.                         <div class="row">
  154.                            
  155.                                 <input type="hidden" name="fecha_cierre" value="{{ fecha }}"/>
  156.                             <div class="col-md-3">
  157.                                 <h3>Total caja: {{ (total_venta_real ) |number_format(2,",",".") }} </h3>
  158.                             </div>
  159.                             <div class="col-md-3">
  160.                                 <input type="number" step="any" placeholder="Cantidad en caja" name="retirada" id="retirada" class="form-control"/>
  161.                             </div>
  162.                             <div class="col-md-3">
  163.                                 <input type="number" step="any" placeholder="Descuadre" name="descuadre" id="descuadre" class="form-control"/>
  164.                             </div>
  165.                             <div class="col-md-3">
  166.                                 <button type="submit" class="btn btn-primary">Cerrar caja</button>
  167.                             </div>
  168.                             
  169.                         </div>
  170.                         </form>
  171.                     </div>
  172.             </div>
  173.         </div>
  174.     </div>
  175.                      
  176. {% endblock %}
  177. {% block footerScripts %}
  178.     
  179.     <script src="{{ asset('assets/plugins/datetimepicker/js/picker.js')}}"></script>
  180.     <script src="{{ asset('assets/plugins/datetimepicker/js/picker.time.js')}}"></script>
  181.     <script src="{{ asset('assets/plugins/datetimepicker/js/picker.date.js')}}"></script>
  182.     <script src="{{ asset('assets/plugins/bootstrap-material-datetimepicker/js/moment.min.js')}}"></script>
  183.     <script src="{{ asset('assets/plugins/bootstrap-material-datetimepicker/js/bootstrap-material-datetimepicker.min.js')}}"></script>
  184.     {{  parent() }}
  185.     <script>
  186.         $('#fecha').pickadate({
  187.             monthsFull: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Setiembre', 'Octubre', 'Noviembre', 'Diciembre'],
  188.             monthsShort: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Set', 'Oct', 'Nov', 'Dic'],
  189.             weekdaysFull: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'],
  190.             weekdaysShort: ['Dom', 'Lun', 'Mar', 'Mie', 'Jue', 'Vie', 'Sab'],
  191.             today: 'Hoy',
  192.             clear: 'Limpiar',
  193.             close: 'Cerrar',
  194.             format: 'dd-mm-yyyy',
  195.             firstDay:1,
  196.             selectMonths: true,
  197.             selectYears: true,
  198.         });
  199.         $("#fecha").on("change",function(){
  200.            $("#fecha_form").submit();
  201.         });
  202.         $("#retirada").on("change",function(){
  203.            var caja = $(this).val();
  204.            
  205.             $("#descuadre").val({{efectivo}} - (caja - {{caja_open.getTotalApertura()}}));
  206.            
  207.         });
  208.         function viewTicket(id){
  209.                 $.ajax({
  210.                     url:'{{path("printTicket")}}',
  211.                     type:'POST',
  212.                     async:false,
  213.                     data: {id:id },
  214.                     success:function(html){
  215.                         var mywindow = window.open('', 'PRINT', 'height=400,width=600'); 
  216.                         mywindow.document.write(html);
  217.                         mywindow.document.close();
  218.                         mywindow.focus();
  219.                         //mywindow.print();
  220.                         //mywindow.close();
  221.                     }
  222.                 });
  223.             }
  224.         function printTicket(id){
  225.                 $.ajax({
  226.                     url:'{{path("printTicket")}}',
  227.                     type:'POST',
  228.                     async:false,
  229.                     data: {id:id },
  230.                     success:function(html){
  231.                         var mywindow = window.open('', 'PRINT', 'height=400,width=600'); 
  232.                         mywindow.document.write(html);
  233.                         mywindow.document.close();
  234.                         mywindow.focus();
  235.                         mywindow.print();
  236.                         //mywindow.close();
  237.                     }
  238.                 });
  239.             }
  240.     </script>
  241. {% endblock %}