templates/reservation_listing/index.html.twig line 1

  1. {% extends 'base.html.twig' %}
  2. {% block title %} Reservations {% endblock %}
  3. {% block body %}
  4.     <!-- Content Header (Page header) -->
  5.     <div class="content-header">
  6.         <div class="container-fluid">
  7.             <div class="row mb-2">
  8.                 <div class="col-sm-6">
  9.                     <h1 class="m-0" style="text-transform: capitalize;">{{ type }} Reservations</h1>
  10.                 </div><!-- /.col -->
  11.                 <div class="col-sm-6">
  12.                     <ol class="breadcrumb float-sm-right">
  13.                         <li class="breadcrumb-item"><a href="#">Home</a></li>
  14.                         <li class="breadcrumb-item active">Reservations</li>
  15.                     </ol>
  16.                 </div><!-- /.col -->
  17.             </div><!-- /.row -->
  18.         </div><!-- /.container-fluid -->
  19.     </div>
  20.     <!-- /.content-header -->
  21.     <!-- Main content -->
  22.     <div class="content">
  23.         <div class="container-fluid">
  24.             <div class="row">
  25.                 <div class="col-md-6">
  26.                     <div class="card">
  27.                         <div class="card-header">
  28.                             <h3 class="card-title">Filtreaza rezultate  </h3>
  29.                         </div>
  30.                         <!-- /.card-header -->
  31.                         <div class="card-body">
  32.                             <!-- we are adding the accordion ID so Bootstrap's collapse plugin detects it -->
  33.                             <div id="accordion">
  34.                                 <div class="card-primary">
  35.                                     <div class="card-header">
  36.                                         <h4 class="card-title w-100">
  37.                                             <a class="d-block w-100" data-toggle="collapse" href="#collapseOne">
  38.                                                 Checkout date
  39.                                             </a>
  40.                                         </h4>
  41.                                     </div>
  42.                                     <div id="collapseOne" class="collapse" data-parent="#accordion">
  43.                                         <div class="card card-primary">
  44.                                             <div class="card-body">
  45.                                                 <!-- Date -->
  46.                                                 <form action="/reservation/listing">
  47.                                                     <input type="hidden" name="type" value="filter">
  48.                                                     <div class="form-group">
  49.                                                         <label>Checkout from:</label>
  50.                                                         <div class="input-group date date-filter" id="checkoutfrom"
  51.                                                              data-target-input="nearest">
  52.                                                             <input type="text" name="checkoutfrom"
  53.                                                                    class="form-control datetimepicker-input"
  54.                                                                    data-target="#checkoutfrom"
  55.                                                                    value="{{ app.request.get('checkoutfrom')}}"
  56.                                                             />
  57.                                                             <div class="input-group-append" data-target="#checkoutfrom"
  58.                                                                  data-toggle="datetimepicker">
  59.                                                                 <div class="input-group-text"><i
  60.                                                                             class="fa fa-calendar"></i></div>
  61.                                                             </div>
  62.                                                         </div>
  63.                                                     </div>
  64.                                                     <div class="form-group">
  65.                                                         <label>Checkout until:</label>
  66.                                                         <div class="input-group date date-filter" id="checkoutuntil"
  67.                                                              data-target-input="nearest">
  68.                                                             <input type="text" name="checkoutuntil"
  69.                                                                    class="form-control datetimepicker-input"
  70.                                                                    data-target="#checkoutuntil"
  71.                                                                    value="{{ app.request.get('checkoutuntil')}}"
  72.                                                             />
  73.                                                             <div class="input-group-append" data-target="#checkoutuntil"
  74.                                                                  data-toggle="datetimepicker">
  75.                                                                 <div class="input-group-text"><i
  76.                                                                             class="fa fa-calendar"></i></div>
  77.                                                             </div>
  78.                                                         </div>
  79.                                                     </div>
  80.                                                     <div class="form-group">
  81.                                                         <div class="custom-control custom-switch">
  82.                                                             <input class="custom-control-input" type="checkbox"
  83.                                                                    id="invoiceableonly" name="invoiceableonly"
  84.                                                                    checked="checked" value="1">
  85.                                                             <label for="invoiceableonly" class="custom-control-label">Exclude Allow Invoice False</label>
  86.                                                         </div>
  87.                                                     </div>
  88.                                                     <div class="form-group">
  89.                                                         <div class="custom-control custom-switch">
  90.                                                             <input class="custom-control-input" type="checkbox"
  91.                                                                    id="notinvoicedonly" name="notinvoicedonly"
  92.                                                                    checked="checked" value="1">
  93.                                                             <label for="notinvoicedonly" class="custom-control-label">Exclude facturate</label>
  94.                                                         </div>
  95.                                                     </div>
  96.                                                    <button type="submit" class="btn btn-primary">Filtreaza</button>
  97.                                                 </form>
  98.                                             </div>
  99.                                             <!-- /.card-body -->
  100.                                         </div>
  101.                                     </div>
  102.                                 </div>
  103.                             </div>
  104.                         </div>
  105.                         <!-- /.card-body -->
  106.                     </div>
  107.                     <div class="callout callout-warning">
  108.                         <h5><i class="icon fas fa-exclamation-triangle"></i> Important!</h5>
  109.                         <p> Se afiseaza maxim 250 de inregistrari. Pentru mai multe inregisrari restrange intervalul pe baza filtrelor</p>
  110.                     </div>
  111.                 </div>
  112.                 <div class="col-md-6">
  113.                     <div class="card">
  114.                         <div class="card-header">
  115.                             <h3 class="card-title">Factureaza toata lista</h3>
  116.                         </div>
  117.                         <!-- /.card-header -->
  118.                         <div class="card-body">
  119.                              <div class="callout callout-warning">
  120.                                 <h5><i class="icon fas fa-exclamation-triangle"></i> Atentie!</h5>
  121.                                 <p>  E nevoie de refresh pentru actualizare in cazul in care s-au facut schimbari in pagina</p>
  122.                             </div>
  123.                             <button type="button" id="invoiceAll" class="btn btn-block bg-gradient-danger btn-lg">
  124.                                 Factureaza toate {{ data|length }}
  125.                             </button>
  126.                         </div>
  127.                     </div>
  128.                 </div>
  129.             </div>
  130.             <div class="row">
  131.                 <div class="col-md-12">
  132.                     <div class="card">
  133.                         <div class="card-header">
  134.                             <h3 class="card-title">Reservations</h3>
  135.                         </div>
  136.                         <!-- /.card-header -->
  137.                         <div class="card-body p-0">
  138.                             <table id="reservations" class="table table-bordered table-hover">
  139.                                 <thead>
  140.                                 <tr>
  141.                                     <th style="width: 10px">ID unic</th>
  142.                                     <th>Listing</th>
  143.                                     <th>platform</th>
  144.                                     <th>guest</th>
  145.                                     <th>checkin</th>
  146.                                     <th>checkout</th>
  147.                                     <th>amount</th>
  148.                                     <th>guest address</th>
  149.                                     <th>smartbill invoice</th>
  150.                                 </tr>
  151.                                 </thead>
  152.                                 <tbody>
  153.                                 {% for reservation in data %}
  154.                                     {% set style='' %}
  155.                                     {% set style2='' %}
  156.                                     {% set age=0 %}
  157.                                     {% if reservation.allowInvoice %}
  158.                                         {% set difference = date(reservation.checkout).diff(date('now')) %}
  159.                                         {% if reservation.checkout < date('now') %}
  160.                                             {% set age = difference|date("%d") %}
  161.                                         {% endif %}
  162.                                     {% endif %}
  163.                                     {% if age > 3 %}
  164.                                         {% set style="background: lightpink;" %}
  165.                                     {% endif %}
  166.                                     {% if (reservation.guestCity is null) or  (reservation.guestCity is empty) or (reservation.guestContry is empty) or (reservation.guestContry is empty)%}
  167.                                         {% set style2="background: lightpink;" %}
  168.                                     {% endif %}
  169.                                     <tr >
  170.                                         <td>
  171.                                             {{ reservation.getId|e }}
  172.                                         </td>
  173.                                         <td>
  174.                                             <a target="_blank"
  175.                                                href="https://app.guesty.com/reservations/{{ reservation.guestyId }}/summary">{{ reservation.listing|e }} ({{ reservation.listingNick|e }})</a>
  176.                                             <br> <b>{{ reservation.confirmationCode|e }}</b>
  177.                                             {% if reservation.getStatus %}
  178.                                                 <br/>
  179.                                                 ({{ reservation.getStatus|e }})
  180.                                             {% endif %}
  181.                                             <br>({{ reservation.guestyId|e }})
  182.                                         </td>
  183.                                         <td>
  184.                                             {{ reservation.platform|e }}
  185.                                         </td>
  186.                                         <td>
  187.                                             <a target="_blank"
  188.                                                href="https://app.guesty.com/people/contact/{{ reservation.guestId }}">{{ reservation.guest|e }}</a>
  189.                                         </td>
  190.                                         <td >
  191.                                             {{ reservation.checkin|date("d/m/Y") }}
  192.                                         </td>
  193.                                         <td style="{{ style }}" >
  194.                                             {{ reservation.checkout|date("d/m/Y") }}
  195.                                         </td>
  196.                                         <td>
  197.                                             {% if reservation.isPaid %}
  198.                                                 {{ reservation.paidAmount|e }} {{ reservation.currency|e }}
  199.                                             {% endif %}
  200.                                         </td>
  201.                                         <td style="{{ style2 }}" >
  202.                                             <form id="form_{{ reservation.guestyId }}" class="addressform"
  203.                                                   data-guestyId={{ reservation.guestyId }}>
  204.                                                 <input type="submit" hidden/>
  205.                                                 <input name="updateaddress" type="hidden" value="1"/>
  206.                                                 <input name="guestyId" type="hidden"
  207.                                                        value="{{ reservation.guestyId }}"/>
  208.                                                 <h5 class="mt-4 mb-2">Name</h5>
  209.                                                 <div class="input-group input-group-sm">
  210.                                                         <input type="text" name="name" class="form-control"
  211.                                                                id="name_{{ reservation.guestyId }}"
  212.                                                                placeholder="Set name" value="{{ reservation.guest|e }}"
  213.                                                         >
  214.                                                         <span class="input-group-append">
  215.                                                         <button
  216.                                                                 type="button"
  217.                                                                 class="btn btn-info btn-flat saveAddress"
  218.                                                                 data-guestyId={{ reservation.guestyId }}
  219.                                                         >
  220.                                                                     <i class="fas fa-check"></i>
  221.                                                         </button>
  222.                                                       </span>
  223.                                                 </div>
  224.                                                 <h5 class="mt-4 mb-2 pf_field">Guest Address</h5>
  225.                                                 <div class="input-group input-group-sm">
  226.                                                     <input type="text" name="guestAddress[address]" class="form-control"
  227.                                                            id="address_{{ reservation.guestyId }}"
  228.                                                            placeholder="Set address"
  229.                                                            value="{{ reservation.guestAddress.address|default('') }}">
  230.                                                     <span class="input-group-append">
  231.                                                     <button
  232.                                                             type="button"
  233.                                                             class="btn btn-info btn-flat saveAddress"
  234.                                                             data-guestyId={{ reservation.guestyId }}
  235.                                                     >
  236.                                                                 <i class="fas fa-check"></i>
  237.                                                     </button>
  238.                                                   </span>
  239.                                                 </div>
  240.                                                 <div class="input-group input-group-sm">
  241.                                                     <input type="text" name="guestAddress[city]" class="form-control"
  242.                                                            id="address_{{ reservation.guestyId }}"
  243.                                                            placeholder="Set City" value="{{ reservation.guestAddress.city|default('') }}">
  244.                                                     <span class="input-group-append">
  245.                                                     <button
  246.                                                             type="button"
  247.                                                             class="btn btn-info btn-flat saveAddress"
  248.                                                             data-guestyId={{ reservation.guestyId }}
  249.                                                     >
  250.                                                                 <i class="fas fa-check"></i>
  251.                                                     </button>
  252.                                                   </span>
  253.                                                 </div>
  254.                                                 <div class="input-group input-group-sm">
  255.                                                     {# <label for="address_{{reservation.guestyId }}">Email address</label> #}
  256.                                                     <input type="text" name="guestAddress[country]" class="form-control"
  257.                                                            id="contry_{{ reservation.guestyId }}"
  258.                                                            placeholder="Set country"
  259.                                                            value="{{ reservation.guestAddress.country|default('') }}">
  260.                                                     <span class="input-group-append">
  261.                                                     <button
  262.                                                             type="button"
  263.                                                             class="btn btn-info btn-flat saveAddress"
  264.                                                             data-guestyId={{ reservation.guestyId }}
  265.                                                     >
  266.                                                                 <i class="fas fa-check"></i>
  267.                                                     </button>
  268.                                                   </span>
  269.                                                 </div>
  270.                                                 {% set hidePF =  (reservation.invoiceData.type|default('PF')=="PF" ) ? "": "d-none" %}
  271.                                                 {% set hidePJ =  (reservation.invoiceData.type|default('PF')=="PJ" ) ? "": "d-none" %}
  272.                                                 {% if reservation.guestAddress.country|default('')=="RO" %}
  273.                                                     <div class="input-group input-group-sm">
  274.                                                         <select name="guestAddress[county]" class="form-control"
  275.                                                                 id="county_{{ reservation.guestyId }}">
  276.                                                             {%  for cod, judet in  judete%}
  277.                                                                 <option value="{{ cod }}" {%  if cod == reservation.guestAddress.county|default('')|e %} selected="selected" {% endif %}>{{ judet }}</option>
  278.                                                             {% endfor %}
  279.                                                         </select>
  280.                                                         <span class="input-group-append">
  281.                                                         <button
  282.                                                                 type="button"
  283.                                                                 class="btn btn-info btn-flat saveAddress"
  284.                                                                 data-guestyId={{ reservation.guestyId }}
  285.                                                         >
  286.                                                                     <i class="fas fa-check"></i>
  287.                                                         </button>
  288.                                                       </span>
  289.                                                     </div>
  290.                                                     <h5 class="mt-4 mb-2 {{ hidePF }} ">Invoice info</h5>
  291.                                                 {% endif %}
  292.                                                     <div class="input-group input-group-sm {{ hidePF }} pf_field">
  293.                                                         <input type="text" name="invoiceData[cnp]" class="form-control"
  294.                                                                id="cnp_{{ reservation.guestyId }}"
  295.                                                                placeholder="Set CNP ( Or passport Number)" value="{{ reservation.invoiceData.cnp|default('') }}">
  296.                                                         <span class="input-group-append">
  297.                                                             <button
  298.                                                                     type="button"
  299.                                                                     class="btn btn-info btn-flat saveAddress"
  300.                                                                     data-guestyId={{ reservation.guestyId }}
  301.                                                             >
  302.                                                                         <i class="fas fa-check"></i>
  303.                                                             </button>
  304.                                                           </span>
  305.                                                     </div>
  306.                                                 {# Nume firma, CUI / VAT, Reg. com, adresa, oras, tara, adresa de mail, delegat si contact *#}
  307.                                                 <h5 class="mt-4 mb-2 {{ hidePJ }} pj_field">Company Invoice data</h5>
  308.                                                     <div class="input-group input-group-sm {{ hidePJ }} pj_field">
  309.                                                         <input type="text" name="invoiceData[company]" class="form-control"
  310.                                                                id="company_{{ reservation.guestyId }}"
  311.                                                                placeholder="Company name" value="{{ reservation.invoiceData.company|default('')|e }}">
  312.                                                         <span class="input-group-append">
  313.                                                                 <button
  314.                                                                         type="button"
  315.                                                                         class="btn btn-info btn-flat saveAddress"
  316.                                                                         data-guestyId={{ reservation.guestyId }}
  317.                                                                 >
  318.                                                                             <i class="fas fa-check"></i>
  319.                                                                 </button>
  320.                                                              </span>
  321.                                                     </div>
  322.                                                     <div class="input-group input-group-sm {{ hidePJ }} pj_field">
  323.                                                         <input type="text" name="invoiceData[vat]" class="form-control"
  324.                                                                id="vat_{{ reservation.guestyId }}"
  325.                                                                placeholder="VAT / CUI" value="{{ reservation.invoiceData.vat|default('')|e }}">
  326.                                                         <span class="input-group-append">
  327.                                                             <button
  328.                                                                     type="button"
  329.                                                                     class="btn btn-info btn-flat saveAddress"
  330.                                                                     data-guestyId={{ reservation.guestyId }}
  331.                                                             >
  332.                                                                         <i class="fas fa-check"></i>
  333.                                                             </button>
  334.                                                          </span>
  335.                                                     </div>
  336.                                                     <div class="input-group input-group-sm {{ hidePJ }} pj_field">
  337.                                                         <input type="text" name="invoiceData[regcom]" class="form-control"
  338.                                                                id="regcom_{{ reservation.guestyId }}"
  339.                                                                placeholder="RegCom (for RO)" value="{{ reservation.invoiceData.regcom|default('')|e }}">
  340.                                                         <span class="input-group-append">
  341.                                                             <button
  342.                                                                     type="button"
  343.                                                                     class="btn btn-info btn-flat saveAddress"
  344.                                                                     data-guestyId={{ reservation.guestyId }}
  345.                                                             >
  346.                                                                         <i class="fas fa-check"></i>
  347.                                                             </button>
  348.                                                          </span>
  349.                                                     </div>
  350.                                                     <div class="input-group input-group-sm {{ hidePJ }} pj_field">
  351.                                                         <input type="text" name="invoiceData[address]" class="form-control"
  352.                                                                id="compaddress_{{ reservation.guestyId }}"
  353.                                                                placeholder="Address" value="{{ reservation.invoiceData.address|default('')|e }}">
  354.                                                         <span class="input-group-append">
  355.                                                                 <button
  356.                                                                         type="button"
  357.                                                                         class="btn btn-info btn-flat saveAddress"
  358.                                                                         data-guestyId={{ reservation.guestyId }}
  359.                                                                 >
  360.                                                                             <i class="fas fa-check"></i>
  361.                                                                 </button>
  362.                                                              </span>
  363.                                                     </div>
  364.                                                     <div class="input-group input-group-sm {{ hidePJ }} pj_field">
  365.                                                         <input type="text" name="invoiceData[city]" class="form-control"
  366.                                                                id="city_{{ reservation.guestyId }}"
  367.                                                                placeholder="City" value="{{ reservation.invoiceData.city|default('')|e }}">
  368.                                                         <span class="input-group-append">
  369.                                                                 <button
  370.                                                                         type="button"
  371.                                                                         class="btn btn-info btn-flat saveAddress"
  372.                                                                         data-guestyId={{ reservation.guestyId }}
  373.                                                                 >
  374.                                                                             <i class="fas fa-check"></i>
  375.                                                                 </button>
  376.                                                              </span>
  377.                                                     </div>
  378.                                                     {% if reservation.invoiceData.country|default('')=="RO" %}
  379.                                                         <div class="input-group input-group-sm">
  380.                                                             <select name="invoiceData[judet]" class="form-control"
  381.                                                                     id="judet_{{ reservation.guestyId }}">
  382.                                                                 {%  for cod, judet in  judete%}
  383.                                                                     <option value="{{ cod }}" {%  if cod == reservation.invoiceData.county|default('')|e %} selected="selected" {% endif %}>{{ judet }}</option>
  384.                                                                 {% endfor %}
  385.                                                             </select>
  386.                                                             <span class="input-group-append">
  387.                                                             <button
  388.                                                                     type="button"
  389.                                                                     class="btn btn-info btn-flat saveAddress"
  390.                                                                     data-guestyId={{ reservation.guestyId }}
  391.                                                             >
  392.                                                                         <i class="fas fa-check"></i>
  393.                                                             </button>
  394.                                                           </span>
  395.                                                         </div>
  396.                                                     {% endif %}
  397.                                                     <div class="input-group input-group-sm {{ hidePJ }} pj_field">
  398.                                                         <select name="invoiceData[country]" class="form-control"
  399.                                                                 id="country_{{ reservation.guestyId }}">
  400.                                                                 {%  for code, countryname in  country_names()%}
  401.                                                                     <option value="{{ code }}" {%  if code == reservation.invoiceData.country|default('') %} selected="selected" {% endif %}>{{ countryname }}</option>
  402.                                                                 {% endfor %}
  403.                                                         </select>
  404.                                   {#                      <input type="text" name="invoiceData[country]" class="form-control"
  405.                                                                id="country_{{ reservation.guestyId }}"
  406.                                                                placeholder="Country" value="{{ reservation.invoiceData.country|default('')|country_name }}">#}
  407.                                                         <span class="input-group-append">
  408.                                                                 <button
  409.                                                                         type="button"
  410.                                                                         class="btn btn-info btn-flat saveAddress"
  411.                                                                         data-guestyId={{ reservation.guestyId }}
  412.                                                                 >
  413.                                                                             <i class="fas fa-check"></i>
  414.                                                                 </button>
  415.                                                              </span>
  416.                                                     </div>
  417.                                                     <div class="input-group input-group-sm {{ hidePJ }} pj_field">
  418.                                                         <input type="text" name="invoiceData[representative]" class="form-control"
  419.                                                                id="representative_{{ reservation.guestyId }}"
  420.                                                                placeholder="Representative" value="{{ reservation.invoiceData.representative|default('')|e }}">
  421.                                                         <span class="input-group-append">
  422.                                                                 <button
  423.                                                                         type="button"
  424.                                                                         class="btn btn-info btn-flat saveAddress"
  425.                                                                         data-guestyId={{ reservation.guestyId }}
  426.                                                                 >
  427.                                                                             <i class="fas fa-check"></i>
  428.                                                                 </button>
  429.                                                              </span>
  430.                                                     </div>
  431.                                                     <div class="input-group input-group-sm {{ hidePJ }} pj_field">
  432.                                                         <input type="text" name="invoiceData[email]" class="form-control"
  433.                                                                id="email_{{ reservation.guestyId }}"
  434.                                                                placeholder="Contact email" value="{{ reservation.invoiceData.email|default('')|e }}">
  435.                                                         <span class="input-group-append">
  436.                                                                 <button
  437.                                                                         type="button"
  438.                                                                         class="btn btn-info btn-flat saveAddress"
  439.                                                                         data-guestyId={{ reservation.guestyId }}
  440.                                                                 >
  441.                                                                             <i class="fas fa-check"></i>
  442.                                                                 </button>
  443.                                                              </span>
  444.                                                     </div>
  445.                                                     <div class="input-group input-group-sm {{ hidePJ }} pj_field">
  446.                                                         <input type="text" name="invoiceData[contact]" class="form-control"
  447.                                                                id="contact_{{ reservation.guestyId }}"
  448.                                                                placeholder="Contact phone No" value="{{ reservation.invoiceData.contact|default('')|e }}">
  449.                                                         <span class="input-group-append">
  450.                                                                 <button
  451.                                                                         type="button"
  452.                                                                         class="btn btn-info btn-flat saveAddress"
  453.                                                                         data-guestyId={{ reservation.guestyId }}
  454.                                                                 >
  455.                                                                             <i class="fas fa-check"></i>
  456.                                                                 </button>
  457.                                                              </span>
  458.                                                     </div>
  459.                                             </form>
  460.                                         </td>
  461.                                         <td>
  462.                                             {% if reservation.getStatusInvoice() %}
  463.                                                 <p>
  464.                                                     {% if reservation.invoiceData.type|default('PF') == "PJ" %}
  465.                                                         <span class="badge bg-success"><i class="fa fa-building"></i> Persoana juridica</span>
  466.                                                     {% endif %} <br/>
  467.                                                     {% if reservation.autoInvoiced|default(false) %}
  468.                                                         <span class="badge bg-success"><i class="fa fa-check-double"></i> Auto Invoiced</span> <br/>
  469.                                                     {% else %}
  470.                                                         <span class="badge bg-success"><i class="fa fa-check"></i> Manually Invoiced</span><br/>
  471.                                                     {% endif %}
  472.                                                     <span class="badge bg-success"><i class="fa fa-file-pdf"></i> {{ reservation.generatedinvoice|e }} </span>
  473.                                                 </p>
  474.                                                 <p>
  475.                                                     {% if reservation.flow =="archived" %}
  476.                                                     <span class="badge bg-danger">Rezervare arhivata, descarcati PDF din SmartBill</span>
  477.                                                     {% else %}
  478.                                                     <a target="_blank" download href="/pdf/{{ reservation.generatedinvoice|e }}" class="btn btn-primary ">
  479.                                                         <i class="fas fa-download"></i> Download PDF</a>
  480.                                                         {{ reservation.sbInvoice|e }}
  481.                                                     {% endif %}
  482.                                                 </p>
  483.                                              {#   <p><a href="#"
  484.                                                       class="delete-now btn btn-danger"
  485.                                                       data-guestyId={{ reservation.guestyId }}
  486.                                                     >
  487.                                                         <i class="fas fa-trash"></i>
  488.                                                   Delete invoice
  489.                                                       </a></p>#}
  490.                                             {% else %}
  491.                                             <form id="form_invoice_{{ reservation.guestyId }}" class="invoiceForm"
  492.                                                   data-guestyId={{ reservation.guestyId }}>
  493.                                                 <input name="guestyId" type="hidden"
  494.                                                        value="{{ reservation.guestyId }}"/>
  495.                                                 <div class="form-group">
  496.                                                     <div class="custom-control custom-switch custom-switch-off-danger custom-switch-on-success">
  497.                                                         <input name='allowInvoice' type="checkbox"
  498.                                                                class="custom-control-input allow-invoice"
  499.                                                                value="1"
  500.                                                                data-guestyId={{ reservation.guestyId }}
  501.                                                                id="allowInvoice_{{ reservation.guestyId }}"
  502.                                                                 {% if reservation.allowInvoice %}
  503.                                                                     checked="checked"
  504.                                                                 {% endif %}
  505.                                                         />
  506.                                                         <label class="custom-control-label"
  507.                                                                for="allowInvoice_{{ reservation.guestyId }}">Allow Invoice?</label>
  508.                                                      </div>
  509.                                                 </div>
  510.                                                 <div class="form-group">
  511.                                                     <div class="custom-control custom-switch custom-switch-off-danger custom-switch-on-success">
  512.                                                         <input name='invoiceData[type]' type="checkbox"
  513.                                                                class="custom-control-input invoice_type"
  514.                                                                value="PJ"
  515.                                                                data-guestyId={{ reservation.guestyId }}
  516.                                                                id="invoiceType_{{ reservation.guestyId }}"
  517.                                                                 {% if reservation.invoiceData.type|default('PF') == "PJ" %}
  518.                                                                     checked="checked"
  519.                                                                 {% endif %}
  520.                                                         />
  521.                                                         <label class="custom-control-label"
  522.                                                                for="invoiceType_{{ reservation.guestyId }}">{{ reservation.invoiceData.type|default('PF') }} Persoana juridica</label>
  523.                                                     </div>
  524.                                                 </div>
  525.                                             </form>
  526.                                             {% endif %}
  527.                                             {% if not reservation.statusInvoice %}
  528.                                             <p><a href="#"
  529.                                                   class="invoice-now btn btn-success {% if reservation.allowInvoice %} checked {% endif %}"
  530.                                                   data-guestyId={{ reservation.guestyId }}>
  531.                                                     <i class="fas fa-save"></i>
  532.                                                  Invoice now
  533.                                                 </a>
  534.                                             </p>
  535.                                             {% endif %}
  536.                                             <div class="alert alert-danger" id="message_{{ reservation.guestyId }}"
  537.                                                  style="display: none;">
  538.                                                 <i class="icon fas fa-ban"></i>
  539.                                                 <span class="message" data-guestyId={{ reservation.guestyId }}></span>
  540.                                             </div>
  541.                                         </td>
  542.                                     </tr>
  543.                                 {% endfor %}
  544.                                 </tbody>
  545.                             </table>
  546.                         </div>
  547.                         <!-- /.card-body -->
  548.                     </div>
  549.                 </div>
  550.             </div>
  551.         </div><!-- /.container-fluid -->
  552.     </div>
  553.     <!-- /.content -->
  554.     <script>
  555.         jQuery(document).ready(function () {
  556.             var invoiceableNo = jQuery('.invoice-now.checked').length;
  557.             jQuery('#invoiceAll').html("Factureaza toate "+invoiceableNo );
  558.             jQuery('#invoiceAll').click(function (e) {
  559.                 e.preventDefault();
  560.                 jQuery(this).html('<i class="fa-spin fa-spinner fas"></i>');
  561.                 jQuery('.invoice-now.checked').click();
  562.                 jQuery(this).html('Done').addClass('bg-gradient-green').removeClass('bg-gradient-danger');
  563.             });
  564.             jQuery('.saveAddress').click(function () {
  565.                 var reservationId = $(this).data('guestyid');
  566.                 $.post("/reservation/save/ajax", $("#form_" + reservationId).serialize())
  567.                     .done(function (data) {
  568.                         toastr.success('Saved! ')
  569.                     });
  570.             });
  571.             jQuery('.addressform').submit(function (e) {
  572.                 e.preventDefault();
  573.                 var reservationId = $(this).data('guestyid');
  574.                 $.post("/reservation/save/ajax", $("#form_" + reservationId).serialize())
  575.                     .done(function (data) {
  576.                         toastr.success('Saved! ')
  577.                     });
  578.             });
  579.             jQuery('input.allow-invoice').change(function () {
  580.                 var toInvoice = 0;
  581.                 var reservationId = $(this).data('guestyid');
  582.                 $.post("/reservation/save/ajax", $("#form_invoice_" + reservationId).serialize())
  583.                     .done(function (data) {
  584.                         toastr.success('Saved! ')
  585.                     });
  586.             });
  587.             jQuery('input.invoice_type').change(function () {
  588.                 var reservationId = $(this).data('guestyid');
  589.                 $.post("/reservation/save/ajax", $("#form_invoice_" + reservationId).serialize())
  590.                     .done(function (data) {
  591.                         toastr.success('Saved! ')
  592.                     });
  593.                 let PJ = $(this).is(":checked");
  594.                 if (PJ) {
  595.                    jQuery('#form_'+reservationId+' .pj_field').removeClass('d-none');
  596.                    jQuery('#form_'+reservationId+' .pf_field').addClass('d-none')
  597.                 } else {
  598.                     jQuery('#form_'+reservationId+' .pf_field').removeClass('d-none');
  599.                     jQuery('#form_'+reservationId+' .pj_field').addClass('d-none')
  600.                 }
  601.             });
  602.             jQuery('.invoice-now').click(function (e) {
  603.                 e.preventDefault();
  604.                 var reservationId = $(this).data('guestyid');
  605.                 $.post("/reservation/save/invoice", {guestyId: reservationId})
  606.                     .done(function (data) {
  607.                         if (data.error != 0) {
  608.                             jQuery('#message_' + reservationId).show();
  609.                             jQuery('#message_' + reservationId).children('span').html(data.error);
  610.                             jQuery('#message_' + reservationId).children('i').removeClass('fa-check').addClass('fa-ban');
  611.                         } else{
  612.                             jQuery('#message_' + reservationId).removeClass('alert-danger').addClass('alert-success').show().children('span').html("OK");
  613.                             jQuery('#message_' + reservationId).children('i').addClass('fa-check').removeClass('fa-ban');
  614.                         }
  615.                     });
  616.             });
  617.             jQuery('.delete-now').click(function (e) {
  618.                 e.preventDefault();
  619.                 var reservationId = $(this).data('guestyid');
  620.                 $.post("/reservation/save/invoice", {guestyId: reservationId,"delete":1})
  621.                     .done(function (data) {
  622.                         if (data.error != 0) {
  623.                             jQuery('#message_' + reservationId).show().children('p').html(data.error);
  624.                         } else {
  625.                             toastr.success('Saved! ')
  626.                         }
  627.                     });
  628.             });
  629.             jQuery(function () {
  630.                 jQuery('.date-filter').datetimepicker({
  631.                     format: 'L',
  632.                     locale: 'ro'
  633.                 });
  634.             });
  635.         });
  636.     </script>
  637.     <script>
  638.         $(function () {
  639.             $.fn.dataTable.moment( 'D/M/YYYY' );
  640.         /*    $('#reservations thead tr')
  641.                 .clone(true)
  642.                 .addClass('filters')
  643.                 .appendTo('#reservations thead');*/
  644.             $("#reservations").DataTable({
  645.                 "responsive": true, "lengthChange": true, "autoWidth": true, "ordering": true,
  646.             /*    initComplete: function () {
  647.                     var api = this.api();
  648.                     // For each column
  649.                     api
  650.                         .columns()
  651.                         .eq(0)
  652.                         .each(function (colIdx) {
  653.                             // Set the header cell to contain the input element
  654.                             var cell = $('.filters th').eq(
  655.                                 $(api.column(colIdx).header()).index()
  656.                             );
  657.                             var title = $(cell).text();
  658.                             $(cell).html('<input type="text" placeholder="' + title + '" />');
  659.                             // On every keypress in this input
  660.                             $(
  661.                                 'input',
  662.                                 $('.filters th').eq($(api.column(colIdx).header()).index())
  663.                             )
  664.                                 .off('keyup change')
  665.                                 .on('change', function (e) {
  666.                                     // Get the search value
  667.                                     $(this).attr('title', $(this).val());
  668.                                     var regexr = '({search})'; //$(this).parents('th').find('select').val();
  669.                                     var cursorPosition = this.selectionStart;
  670.                                     // Search the column for that value
  671.                                     api
  672.                                         .column(colIdx)
  673.                                         .search(
  674.                                             this.value != ''
  675.                                                 ? regexr.replace('{search}', '(((' + this.value + ')))')
  676.                                                 : '',
  677.                                             this.value != '',
  678.                                             this.value == ''
  679.                                         )
  680.                                         .draw();
  681.                                 })
  682.                                 .on('keyup', function (e) {
  683.                                     e.stopPropagation();
  684.                                     var cursorPosition = this.selectionStart;
  685.                                     $(this).trigger('change');
  686.                                     $(this)
  687.                                         .focus()[0]
  688.                                         .setSelectionRange(cursorPosition, cursorPosition);
  689.                                 });
  690.                         });
  691.                 },*/
  692.                 "order": [[ {% if type =='invoiced' %} 8 {% else %} 5    {% endif %}, 'asc' ]]
  693.             });
  694.         });
  695.     </script>
  696. {% endblock %}