@extends('usuarios.funcionarios.master.layout2')

@section('conteudo')

    <nav class="container animate__animated animate__zoomInDown">

        <div class="row">
            <nav class="12">
                {{-- <a href="http://flkt-crnpio.github.io/pitaya/">made with<br>pitaya</a> --}}
                <br>
                <h4>
                    <i class="fa fa-building"></i>
                    ARRUMAÇÃO DE CAIXAS<br>
                    <i>no armazém</i>
                </h4>
                
                <hr>
                <nav class="d-none">
                    {{ $reservas=\App\Models\Reserva::  orderBy('created_at','Desc')->get() }}

                </nav>
                 <nav class="col-12 table-responsive">
                            <div class="row justify-content-center">
                                 

                                    <form class="invisible"  enctype="multipart/form-data"   >
                                    <h2>Insira o arquivo de pic</h2>
                                        <input type="file" id="arquivo" accept=".txt"/>
                                    </form>
                                    <br>

                                <div class="px-4 py-5   text-center">
                                  <img class="d-block mx-auto " src="{{asset('img/text-file.png')}}" alt="" width="100"  >
                                  <h1 class="display-5 fw-bold">Arquivos de texto</h1>
                                  <div class="col-lg-12 mx-auto">
                                    <p class="lead mb-4">Insira aqui um arquivo de texto que contenha os dados da leitura de caixas e fileiras. Lembra-te que: Existe uma regra para a leitura das etiquetas, caso o arquivo não estiver nos padrões de leitura, simplesmente poderá não obter uma resposta a baixo, pelo que as regras são: 1-Leia primeiro as fileiras, após isso leia a quantidade de caixas que deseja fazer parte da fileira;
                                    2-Evite ler caixas primeiro, antes das fileiras sob pena do arquivo não estar nos padrões de leitura;
                                    3-Não leia fileiras nem caixas repetidas;</p>
                                    <div class="d-grid gap-2 d-sm-flex justify-content-sm-center">
                                      <button type="button" class="btn btn-primary btn-lg buscarArquivos px-4 me-sm-3">Encontrar arquivo</button>

                                    </div>
                                  </div>
                                </div>
                                <div class="b-example-divider"></div>
                                 <div class="container col-xxl-8 px-4 py-5">
                                  <div class="row flex-lg-row-reverse align-items-center g-5 py-5">
                                    <div class="col-10 col-sm-8 col-lg-6">
                                      <img src="https://media.giphy.com/media/sm3mamH2lWQpkZG1EM/giphy.gif" class="d-block mx-lg-auto img-fluid" alt="Bootstrap Themes" width="700" height="500"  loading="lazy">
                                    </div>
                                    <div class="col-lg-6">
                                      <h1 class="display-5 fw-bold lh-1 mb-3">Número de fileiras detectadas: <span id="numeroFileirasDetectadas">0</span></h1>
                                      <p class="lead">No arquivo à cima lido, encontram-se caixas e fileiras, nesta sessão serão identificadas a quantidade de fileiras numa célula específica.</p>

                                    </div>
                                  </div>
                                </div>


                                 <div class="container col-xxl-8 px-4 py-5">
                                    <div class="row flex-lg-row-reverse align-items-center g-5 py-5">

                                      <div class="col-lg-6">
                                        <h1 class="display-5 fw-bold lh-1 mb-3">Número de caixas detectadas: <span id="numeroCaixasDetectadas">0</span></h1>
                                        <p class="lead">No arquivo à cima lido, encontram-se caixas e fileiras, nesta sessão serão identificadas a quantidade de caixas numa célula específica.</p>

                                      </div>
                                      <div class="col-10 col-sm-8 col-lg-6">
                                        <img src="https://media.giphy.com/media/b9Zq7s4XXHyeOkovrI/giphy.gif" class="d-block mx-lg-auto img-fluid" alt="Bootstrap Themes" width="700" height="500" loading="lazy">
                                      </div>
                                    </div>
                                  </div>

                            </div>
                            <hr>
                            <div class="pricing-header p-3 pb-md-4 mx-auto text-center">
                            <h1 class="display-4 fw-normal">Tratamento de dados</h1>
                            <p class="fs-5 text-muted">A baixo, encontrará de forma organizada os dados já tratados, a fim de prosseguir para a arrumação das caixas efectivamente.</p>
                          </div>
                          <nav class="">
                            <main>
                                <h2 class="display-6 text-center mb-4">Fileiras</h2>
                                <hr>
                                <div class="row arrumacaoView row-cols-1 row-cols-md-3 mb-3 text-center">



                                </div>


                                <button class="  text-center btn btn-primary btnArrumarCaixas">Arrumar caixas</button>
                                <br><br>
                              </main>
                          </nav>
                         </nav>



                </div>
                  <div class="tab-2">
                <!--    <label for="tab2-2">Arrumadas</label>-->
                <!--    <input id="tab2-2" name="tabs-two" type="radio">-->
                <!--    <div>-->
                <!--      <h4>Caixas Arrumadas</h4>-->
                <!--      {{-- <p>Basta fazer a leitura do codigo com o software da pistola com a sua conta logada .</p> --}}-->

                <!--      <nav class="container">-->
                <!--        <table id="reservasTable" class="table container  table-striped table-hover">-->
                <!--            <thead>-->
                <!--                <tr class="">-->
                <!--                    <th>#</th>-->
                <!--                     <th>Código da reserva</th>-->
                <!--                     <th>Quantidade de caixas</th>-->
                <!--                     <th>Tipo de caixa</th>-->
                <!--                     <th>Cliente</th>-->
                <!--                     <th>Funcionario</th>-->
                <!--                     <th>Data da reserva</th>-->
                <!--                     <th>Ver Mais</th>-->
                <!--                   </tr>-->
                <!--                   </thead>-->
                <!--                   <tbody>-->
                <!--                      <div class="d-none">-->
                <!--                          {{ $i=1 }}-->

                <!--                      </div>-->
                <!--                 @foreach($reservas as $reserva)-->
                <!--                 <tr>-->
                <!--                     <td>{{ $i++ }}</td>-->
                <!--                     <td>{{ $reserva->id }}</td>-->
                <!--                     <td>{{ $reserva->quantcaixas}}</td>-->
                <!--                     @if($reserva->getTipoCaixa)-->
                <!--                     <td>{{ $reserva->getTipoCaixa->tipocaixa }}</td>-->
                <!--                     @else-->
                <!--                     <td>-------</td>-->
                <!--                     @endif-->
                <!--                     <td>{{ $reserva->getCliente->getUser->getPessoa->nome }}</td>-->
                <!--                     <td>{{ $reserva->getUser->getPessoa->nome }}</td>-->
                <!--                     <td>{{ $reserva->created_at }}</td>-->
                <!--                     <td><a href="{{ route('us.armazem.gestao.caixas.ver.reserva',$reserva->id ) }}" class="btn btn-sm btn-outline-secondary"> <i class="fa fa-eye"></i> Ver mais</a>-->
                <!--                       <a  class="btn btn-sm btn-outline-primary btnSelecionarReserva"> <i class="fa fa-check "></i> Escolher-->
                <!--                           <input type="hidden" class="codigoId" value="{{ $reserva->id }}">-->
                <!--                       </a></td>-->
                <!--                 </tr>-->
                <!--                 @endforeach-->
                <!--                </tbody>-->
                <!--            <tfoot></tfoot>-->
                <!--        </table>-->
                <!--      </nav>-->
                <!--    </div>-->
                  <!--</div>-->
                </div>
            </nav>

<!-- <th  >Eliminar</th> -->
 <!-- <td> <button class=\"btn eliminarLinha btn-sm btn-outline-danger\">&times; </button></td> -->
        </div>
    </nav>
    <script>

        $(".buscarArquivos").click(function(){
          $("#arquivo").click();
        });

        $("#arquivo").change(function(){

            var fileInput = $(this);
            var input = fileInput.get(0);
            // 
            var reader = new FileReader();
            if (input.files.length) {
                var textFile = input.files[0];
                // Read the file
                reader.readAsText(textFile);
                // When it's loaded, process it
                $(reader).on('load', processFile);
            } else {

                const Toast = Swal.mixin({
                      toast: true,
                      position: 'top-end',
                      showConfirmButton: true,
                      timer: 3000,
                      timerProgressBar: true,
                      didOpen: (toast) => {
                        toast.addEventListener('mouseenter', Swal.stopTimer)
                        toast.addEventListener('mouseleave', Swal.resumeTimer)
                      }
                    })

                    Toast.fire({
                      icon: 'warning',
                      title: 'Escolha o arquivo antes de continuar!'
                    })
            }




        });


          var linhas=[];
          var fileirasVec=[];
          var caixasVec=[];
          var fileiras=0;
          var caixas=0;
           console.clear();
        function processFile(e) {

            $(".arrumacaoView").empty();
            fileiras=0;
            caixas=0;
            
            $(".btnCaixa").removeClass("btn-outline-danger")
            $(".fileiraBarCode").removeClass("btn-outline-danger")
             
            $(".numeroCaixasFileiras"+fileiras).empty()
            fileirasVec=[];
            caixasVec=[];
            var qtdCaixasNaFileira=[];
            var file = e.target.result,
             results;
            
            if (file && file.length) {
                results = file.split(";");
                retorno = 0;
                // 
                // 
                var lines=results;
                var courrentFileira="";
                for(var i in lines){
                    var row =  lines[i];
                    let newRow="";
                    let ret="";
                    // console.log(row);
                    // console.log(row.length);
                    let tamanho=row.length;
                    
                    if (tamanho<=19){
                        // console.log("Caixa ou Prateleira")
                        retorno = row.substr(0,2);
                        newRow=row.substr(0,13);
                      
                         console.log(row);
                    }else if(tamanho<=21){
                        // console.log("Data")
                        // retorno = "";
                        // console.log("Linha: "+row);
                    }else if(tamanho>=22){
                        // console.log("Data + Caixa ou prateleira")
                        retorno =""+ row.split(/\n/);
                        newRow =""+ row.split(/\n/);
                        //   console.log(row);
                        retorno = retorno.substr(21,2);
                        newRow=newRow.substr(21,14);
                       
                    }
                    console.clear()
                    // console.log(tamanho)
                    // console.log("Linha:"+newRow);
                    // console.log("Retorno:"+retorno);
                   
                    if(retorno=="PP" ){

                        fileiras++;
                        fileirasVec.push([newRow]);
                        courrentFileira=newRow;
                        $(".arrumacaoView").append("<div class=\"col\"><div class=\"card mb-4 rounded-3 shadow\"> <div class=\"card-header py-3\"><h4 class=\"my-0 fw-normal\"> Fileira "+fileiras+"</h4></div> <div class=\"card-body\"><small>Código de barra: </small><hr><h2 class=\"card-title pricing-card-title fileiraBarCode fileiraBarCode"+fileiras+"\">"+newRow+";</h2><ul class=\"list-unstyled mt-3 mb-4 "+fileiras+"\"><li class=\"numeroCaixasFileiras"+fileiras+" \"></li> <li><div class=\"table-responsive\"><table class=\"table text-center\"><thead><tr><th class=\"text-start\" >#</th><th class=\"text-start\" >Código de barra</th></tr></thead><tbody class=\" caixasFileiras"+fileiras+"\"></tbody></table></div></li>                                           </ul></div></div></div>");
                        

                    }else if (retorno=="CX"){
                        if (fileiras>0) {

                          caixas++;
                          caixasVec.push([courrentFileira,newRow]);
                         
                        }
                    }
                    console.log(fileirasVec)
                    console.log(caixasVec)
                    // console.log("Fileiras:"+fileiras)
                    // console.log("Caixas"+caixas)
                }
                
                
                if (fileiras>0) {
                  if (caixas>0) {
                    const Toast = Swal.mixin({
                      toast: true,
                      position: 'top-end',
                      showConfirmButton: true,
                      timer: 3000,
                      timerProgressBar: true,
                      didOpen: (toast) => {
                        toast.addEventListener('mouseenter', Swal.stopTimer)
                        toast.addEventListener('mouseleave', Swal.resumeTimer)
                      }
                    })

                    Toast.fire({
                      icon: 'success',
                      title: 'Arquivos lidos com sucesso!'
                    })
                    $("#numeroFileirasDetectadas").text(fileiras)
                    $("#numeroCaixasDetectadas").text(caixas)
                    for (var i = 1; i <= fileiras; i++) {

                        var qtdCaixas=0;
                        for (var j =0; j< caixasVec.length ; j++) {


                            if(fileirasVec[i-1]==caixasVec[j][0]){
                              qtdCaixas++;

                              $(".caixasFileiras"+i).append("<tr><th scope=\"row\" class=\"text-start\">"+j+"</th> <td class=\"text-start btnCaixa btnCaixa"+j+"\"> "+caixasVec[j][1]+" ;</td> </tr>")
                            }
                        }
                        $(".numeroCaixasFileiras"+i).append("<p>"+qtdCaixas+" Caixas encontradas</p>")
                        // for (var i = caixasVec.length - 1; i >= 0; i--) {
                        // }
                    }

                  }else{
                    const Toast = Swal.mixin({
                      toast: true,
                      position: 'top-end',
                      showConfirmButton: true,
                      timer: 3000,
                      timerProgressBar: true,
                      didOpen: (toast) => {
                        toast.addEventListener('mouseenter', Swal.stopTimer)
                        toast.addEventListener('mouseleave', Swal.resumeTimer)
                      }
                    })

                    Toast.fire({
                      icon: 'warning',
                      title: 'Erro na leitura de caixas!'
                    })
                  }
                }else{
                  const Toast = Swal.mixin({
                    toast: true,
                    position: 'top-end',
                    showConfirmButton: true,
                    timer: 3000,
                    timerProgressBar: true,
                    didOpen: (toast) => {
                      toast.addEventListener('mouseenter', Swal.stopTimer)
                      toast.addEventListener('mouseleave', Swal.resumeTimer)
                    }
                  })

                  Toast.fire({
                    icon: 'warning',
                    title: 'Erro na leitura do arquivo de texto com as etiquetas!'
                  })
                }
                // console.clear();
                // console.log("Fileiras:"+fileiras);
                // console.log("Caixas:"+caixasVec)

                $("#numeroFileirasDetectadas").text(fileiras)
                $("#numeroCaixasDetectadas").text(caixas)
                

            }
          }

          $(".btnArrumarCaixas").click(function(){
                if (fileiras>0) {
                  if (caixas>0) {
                    // Verificando a redundância
                    var redundancia=true;
                    var compaptibilidade=false;


                    $.confirm({
                        title: 'Processando a arrumação de caixas',

                        content: 'Verificação de redundância',
                        buttons: {

                            cancel: function () {
                                $.alert('Processo cancelado!');
                            },
                            somethingElse: {
                                text: 'Prosseguir',
                                btnClass: 'btn-blue',
                                keys: ['enter', 'shift'],
                                action: function(){
                                   if (redundancia==false) {
                                      
                                      const Toast = Swal.mixin({
                                         toast: true,
                                         position: 'top-end',
                                         showConfirmButton: true,
                                         timer: 3000,
                                         timerProgressBar: true,
                                         didOpen: (toast) => {
                                           toast.addEventListener('mouseenter', Swal.stopTimer)
                                           toast.addEventListener('mouseleave', Swal.resumeTimer)
                                         }
                                       })

                                       Toast.fire({
                                         icon: 'success',
                                         title: 'Passo 2 (Verificação da existência de etiquetas nas base de dados)'
                                       })
                                        $.confirm({
                                            
                                            title: 'Verificação de coerência de dados',
                                            buttons: {

                                              cancel: function () {
                                                  $.alert('Processo cancelado!');
                                              },
                                              somethingElse: {
                                                text: 'Prosseguir',
                                                btnClass: 'btn-blue',
                                                keys: ['enter', 'shift'],
                                                action: function(){
                                                   if (compaptibilidade==false) {
                                                      $.alert("Os dados não foram compatíveis, alguma etiqueta lida não faz parte da base de dados.")
                                                    }else{
                                                       const Toast = Swal.mixin({
                                                      toast: true,
                                                      position: 'top-end',
                                                      showConfirmButton: true,
                                                      timer: 3000,
                                                      timerProgressBar: true,
                                                      didOpen: (toast) => {
                                                        toast.addEventListener('mouseenter', Swal.stopTimer)
                                                        toast.addEventListener('mouseleave', Swal.resumeTimer)
                                                    
                                                        }
                                                      })

                                                      Toast.fire({
                                                        icon: 'success',
                                                        title: 'Prosseguindo com a arrumação'
                                                      })

                                                      $.confirm({
                                                          title: 'Arrumar dados!',
                                                          content: 'Passo 3 (Arrumar as caixas)',
                                                          buttons: {
                                                             
                                                              cancel: function () {
                                                                  $.alert('Processo cancelado!');
                                                              },
                                                              somethingElse: {
                                                                  text: 'Prosseguir',
                                                                  btnClass: 'btn-blue',
                                                                  keys: ['enter', 'shift'],
                                                                  action: function(){
                                                                        var fileirasObj=JSON.parse(JSON.stringify(fileirasVec));
                                                                        var caixasObj=JSON.parse(JSON.stringify(caixasVec));
                                                                      return $.post("{{ route('us.armazem.gestao.caixas.arrumar.caixas') }}",{
                                                                      '_token':'{{ csrf_token() }}',
                                                                      'etiquetaFileira':fileirasObj,
                                                                      'etiquetasCaixas': caixasObj
                                                                      },
                                                                      function(data){
                                                                        var retorno=$.parseJSON(data);
                                                                         
                                                                          if(retorno[0].mensagem==100){
                                                                            const Toast = Swal.mixin({
                                                                              toast: true,
                                                                              position: 'top-end',
                                                                              showConfirmButton: true,
                                                                              timer: 3000,
                                                                              timerProgressBar: true,
                                                                              didOpen: (toast) => {
                                                                                toast.addEventListener('mouseenter', Swal.stopTimer)
                                                                                toast.addEventListener('mouseleave', Swal.resumeTimer)

                                                                                }
                                                                              })

                                                                              Toast.fire({
                                                                                icon: 'success',
                                                                                title: 'Caixas arrumadas com sucesso'
                                                                              })
                                                                                $.confirm({
                                                                                    title: 'Arrumação bem sucedida!',
                                                                                    content: 'Prossiga para pesquisar a caixa!',
                                                                                    buttons: {
                                                                                       
                                                                                        cancel: function () {
                                                                                            $.alert('Pesquisa cancelada');
                                                                                        },
                                                                                        somethingElse: {
                                                                                            text: 'Pesquisar caixas',
                                                                                            btnClass: 'btn-blue',
                                                                                            keys: ['enter', 'shift'],
                                                                                            action: function(){ 
                                                                                              window.location.replace("{{ route('us.armazem.gestao.caixas.pesquisa') }}");
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                });

                                                                          //   
                                                                          // 
                                                                          }
                                                                          else if(retorno[0].mensagem==9){
                                                                              
                                                                            const Toast = Swal.mixin({
                                                                              toast: true,
                                                                              position: 'top-end',
                                                                              showConfirmButton: true,
                                                                              timer: 3000,
                                                                              timerProgressBar: true,
                                                                              didOpen: (toast) => {
                                                                                toast.addEventListener('mouseenter', Swal.stopTimer)
                                                                                toast.addEventListener('mouseleave', Swal.resumeTimer)
                                                                               
                                                                              }
                                                                            })

                                                                            Toast.fire({
                                                                              icon: 'warning',
                                                                              title: 'Célula lotada'
                                                                            })
                                                                          }
                                                                          else if(retorno[0].mensagem==10){
                                                                            const Toast = Swal.mixin({
                                                                              toast: true,
                                                                              position: 'top-end',
                                                                              showConfirmButton: true,
                                                                              timer: 3000,
                                                                              timerProgressBar: true,
                                                                              didOpen: (toast) => {
                                                                                toast.addEventListener('mouseenter', Swal.stopTimer)
                                                                                toast.addEventListener('mouseleave', Swal.resumeTimer)
                                                                                
                                                                              }
                                                                            })

                                                                            Toast.fire({
                                                                              icon: 'warning',
                                                                              title: 'O Número de caixas excede ao tamanho da célula'
                                                                            })
                                                                          }
                                                                          else if(retorno[0].mensagem==3){
                                                                             const Toast = Swal.mixin({
                                                                              toast: true,
                                                                              position: 'top-end',
                                                                              showConfirmButton: true,
                                                                              timer: 3000,
                                                                              timerProgressBar: true,
                                                                              didOpen: (toast) => {
                                                                                toast.addEventListener('mouseenter', Swal.stopTimer)
                                                                                toast.addEventListener('mouseleave', Swal.resumeTimer)
                                                                                
                                                                              }
                                                                            })

                                                                            Toast.fire({
                                                                              icon: 'warning',
                                                                              title: 'Caixa '+retorno[0].barcode+' já arrumada no armazém'
                                                                            })
                                                                            $(".btnCaixa"+retorno[0].code).addClass("btn-outline-danger")


                                                                          }
                                                                          else{

                                                                          }
                                                                          
                                                                        
                                                                        });
                                                                  }
                                                              }
                                                          }
                                                      });

                                                    }
                                                  }
                                                }
                                            },
                                            content: function(){
                                                var self = this;
                                                 
                                                var fileirasObj=JSON.parse(JSON.stringify(fileirasVec));
                                                var caixasObj=JSON.parse(JSON.stringify(caixasVec));
                                              return $.post("{{ route('us.armazem.gestao.caixas.arrumar.analise.etiquetas') }}",{
                                              '_token':'{{ csrf_token() }}',
                                              'etiquetaFileira':fileirasObj,
                                              'etiquetasCaixas': caixasObj
                                              },
                                              function(data){
                                                  var retorno=$.parseJSON(data);
                                                  
                                                  if(retorno[0].ocorrencias==0){
                                                      compaptibilidade=true;
                                                  }else{
                                                    if(retorno[0].tipoOcorrencia==1){
                                                      //Retorno para caixas
                                                      var ret=retorno[0].codigoOcorrencia;
                                                      // Variável criada por conta do numero do retorno vir em falta
                                                      ret++;                                                      
                                                      $(".fileiraBarCode"+ret).addClass("btn-outline-danger")
                                                      const Toast = Swal.mixin({
                                                         toast: true,
                                                         position: 'top-end',
                                                         showConfirmButton: true,
                                                         timer: 3000,
                                                         timerProgressBar: true,
                                                         didOpen: (toast) => {
                                                           toast.addEventListener('mouseenter', Swal.stopTimer)
                                                           toast.addEventListener('mouseleave', Swal.resumeTimer)
                                                         }
                                                       })

                                                       Toast.fire({
                                                         icon: 'warning',
                                                         title: 'Erro! A fileira '+retorno[0].barcode+' não faz parte da base de dados'
                                                       })
                                                    }else{
                                                      $(".btnCaixa"+retorno[0].codigoOcorrencia).addClass("btn-outline-danger")
                                                      const Toast = Swal.mixin({
                                                         toast: true,
                                                         position: 'top-end',
                                                         showConfirmButton: true,
                                                         timer: 3000,
                                                         timerProgressBar: true,
                                                         didOpen: (toast) => {
                                                           toast.addEventListener('mouseenter', Swal.stopTimer)
                                                           toast.addEventListener('mouseleave', Swal.resumeTimer)
                                                         }
                                                       })

                                                       Toast.fire({
                                                         icon: 'warning',
                                                         title: 'Erro! A caixa '+retorno[0].barcode+' não faz parte da base de dados'
                                                       })
                                                    }
                                                }
                                         

                                            });

                                            } 
                                        });


                                   }else{
                                      const Toast = Swal.mixin({
                                           toast: true,
                                           position: 'top-end',
                                           showConfirmButton: true,
                                           timer: 3000,
                                           timerProgressBar: true,
                                           didOpen: (toast) => {
                                             toast.addEventListener('mouseenter', Swal.stopTimer)
                                             toast.addEventListener('mouseleave', Swal.resumeTimer)
                                           }
                                         })

                                         Toast.fire({
                                           icon: 'warning',
                                           title: 'Impossível prosseguir, verifique se há alguma redundância'
                                         })
                                        return false;
                                   }
                                }
                            }
                        },
                        onContentReady: function () {
                              var self = this;
                              const Toast = Swal.mixin({
                                 toast: true,
                                 position: 'top-end',
                                 showConfirmButton: true,
                                 timer: 3000,
                                 timerProgressBar: true,
                                 didOpen: (toast) => {
                                   toast.addEventListener('mouseenter', Swal.stopTimer)
                                   toast.addEventListener('mouseleave', Swal.resumeTimer)
                                 }
                              })
                              Toast.fire({
                               icon: 'success',
                               title: 'Passo 1 (Verificação de redundância)'
                              })
                              this.setContentPrepend('<div>Aguarde um momento</div>');
                              setTimeout(function () {
                                var resultadoencontrado="Redundância não encontrada"
                                var redundaicias=0;
                                for (var i = 0; i < caixasVec.length; i++) {

                                  for (var j = 0; j < caixasVec.length; j++) {


                                      if (i==j) {

                                        }
                                        else{

                                            if (caixasVec[i][1]==caixasVec[j][1]) {

                                                $(".btnCaixa"+i).addClass("btn-outline-danger")
                                                $(".btnCaixa"+j).addClass("btn-outline-danger")
                                                redundaicias++;
                                            }
                                        }

                                  }
                                }
                                if (redundaicias>0) {
                                    resultadoencontrado="Redundância encontrada";

                                }else{
                                  redundancia=false;
                                }
                                self.setContentAppend('<div> '+resultadoencontrado+'</div>');
                            }, 2000);
                        }
                    });



                  }else{
                     const Toast = Swal.mixin({
                      toast: true,
                      position: 'top-end',
                      showConfirmButton: true,
                      timer: 3000,
                      timerProgressBar: true,
                      didOpen: (toast) => {
                        toast.addEventListener('mouseenter', Swal.stopTimer)
                        toast.addEventListener('mouseleave', Swal.resumeTimer)
                      }
                    })

                    Toast.fire({
                      icon: 'warning',
                      title: 'Adicione caixas para serem arrumadas!'
                    })
                  }
                }else{
                   const Toast = Swal.mixin({
                    toast: true,
                    position: 'top-end',
                    showConfirmButton: true,
                    timer: 3000,
                    timerProgressBar: true,
                    didOpen: (toast) => {
                      toast.addEventListener('mouseenter', Swal.stopTimer)
                      toast.addEventListener('mouseleave', Swal.resumeTimer)
                    }
                  })

                  Toast.fire({
                    icon: 'warning',
                    title: 'Não foi possível reconhecer alguma fileira!'
                  })
                }
          });
            // var fileira="";
            // var numCaixas=0;
            // var caixas=[]
            // Echo.channel('pics')
            // .listen('PicEtiquetas', (e) => {
            //     var barcode1=e.pic;
            //     var spl=barcode1.split(';')
            //     var barcode=spl[spl.length-2];
            //     resultado = barcode.substring(2, 0);
            //     if(resultado=='CX' || resultado=='cx')
            //     {
            //         let caixasIguais=1;
            //         for (let index = 0; index < caixas.length; index++) {
            //             var element = caixas[index];

            //             if(element==barcode){
            //                 caixasIguais=0;
            //             }
            //         }
            //         if(caixasIguais==1){

            //             if(fileira==""){

            //                 const Toast = Swal.mixin({
            //                     toast: true,
            //                     position: 'top-end',
            //                     showConfirmButton: true,
            //                     timer: 3000,
            //                     timerProgressBar: true,
            //                     didOpen: (toast) => {
            //                         toast.addEventListener('mouseenter', Swal.stopTimer)
            //                         toast.addEventListener('mouseleave', Swal.resumeTimer)
            //                     }
            //                 })

            //                 Toast.fire({
            //                     icon: 'warning',
            //                     title: 'Adicione primeiro uma fileira'
            //                 })
            //             }else{
            //                 caixas[numCaixas]=barcode;
            //                 
            //                 numCaixas++;
            //                 const Toast = Swal.mixin({
            //                     toast: true,
            //                     position: 'top-end',
            //                     showConfirmButton: true,
            //                     timer: 3000,
            //                     timerProgressBar: true,
            //                     didOpen: (toast) => {
            //                         toast.addEventListener('mouseenter', Swal.stopTimer)
            //                         toast.addEventListener('mouseleave', Swal.resumeTimer)
            //                     }
            //                 })

            //                 Toast.fire({
            //                     icon: 'success',
            //                     title: 'Caixa adicionada com sucesso'
            //                 })
            //                 $("#listaCaixas").prepend("<label class=\"list-group-item\"><input class=\"form-check-input me-1\" type=\"checkbox\" value=\"\">"+barcode+"</label>");
            //                 $(".numeroCaixas").text(numCaixas);
            //             }
            //         }else{
            //             Swal.fire({
            //                 icon: 'error',
            //                 title: 'Erro',
            //                 text: 'Esta caixa já está na lista',
            //                 footer: '<a href>Porquê isso acontece?</a>',
            //                 confirmButtonText:
            //                 '<i class="fa fa-thumbs-up"></i> Entendi!',
            //             })
            //         }

            //     }
            //     else if(resultado=='CF' || resultado=='cf' || resultado=='pp' || resultado=='PP' )
            //     {
            //         if(fileira==""){
            //             fileira=barcode;
            //             $("#FileiraId").text(barcode);
            //                 const Toast = Swal.mixin({
            //                 toast: true,
            //                 position: 'top-end',
            //                 showConfirmButton: true,
            //                 timer: 3000,
            //                 timerProgressBar: true,
            //                 didOpen: (toast) => {
            //                     toast.addEventListener('mouseenter', Swal.stopTimer)
            //                     toast.addEventListener('mouseleave', Swal.resumeTimer)
            //                 }
            //             })

            //             Toast.fire({
            //                 icon: 'success',
            //                 title: 'Fileira adicionada com sucesso'
            //             })
            //         }else{

            //             Swal.fire({
            //                 title: 'Deseja substituir a fileira em destaque?',
            //                 showDenyButton: true,
            //                 // showCancelButton: true,
            //                 confirmButtonText: `Sim desejo`,
            //                 denyButtonText: `Não, me enganei`,
            //                 }).then((result) => {
            //                 /* Read more about isConfirmed, isDenied below */
            //                 if (result.isConfirmed) {
            //                     Swal.fire('Fileira substituida com sucesso!', '', 'success')
            //                     $("#FileiraId").text(barcode);
            //                     const Toast = Swal.mixin({
            //                         toast: true,
            //                         position: 'top-end',
            //                         showConfirmButton: true,
            //                         timer: 3000,
            //                         timerProgressBar: true,
            //                         didOpen: (toast) => {
            //                             toast.addEventListener('mouseenter', Swal.stopTimer)
            //                             toast.addEventListener('mouseleave', Swal.resumeTimer)
            //                         }
            //                     })
            //                 } else if (result.isDenied) {
            //                     Swal.fire('Fileira não substituida', '', 'warning')
            //                 }
            //             })


            //             Toast.fire({
            //             icon: 'success',
            //             title: 'Fileira Substituida com sucesso'
            //             })
            //         }
            //     }else{
            //         Swal.fire({
            //             icon: 'error',
            //             title: 'Erro',
            //             text: 'Etiqueta não reconhecida',
            //             footer: '<a href>Porquê isso acontece?</a>',
            //             confirmButtonText:
            //             '<i class="fa fa-thumbs-up"></i> Entendi!',
            //         })
            //     }
            //     // var decode=return barcode[0]+''+barcode[1];
            //     // $("#listaEtiquetas").prepend('<li class="list-group-item disabled"> '+resultado+'</li>');

            // })

            // alert("Ola")
                $("#btnArrumar").click(function(){
                    if(fileira==""){


                        Swal.fire({
                            icon: 'error',
                            title: 'Erro',
                            text: 'Ausência de etiqueta na leitura',
                            footer: '<a href>Porquê isso acontece?</a>',
                            confirmButtonText:
                            '<i class="fa fa-thumbs-up"></i> Entendi!',
                        })
                    }else{
                        if(caixas.length<=0){


                            Swal.fire({
                                icon: 'error',
                                title: 'Erro',
                                text: 'Ausência de caixas na lista',
                                footer: '<a href>Porquê isso acontece?</a>',
                                confirmButtonText:
                                '<i class="fa fa-thumbs-up"></i> Entendi!',
                            })
                        }else{

                            Swal.fire({
                                title: 'Deseja arrumar agora?',
                                showDenyButton: true,
                                // showCancelButton: true,
                                showLoaderOnConfirm: true,

                                confirmButtonText: `Sim desejo`,
                                denyButtonText: `Não, me enganei`,
                                }).then((result) => {
                                /* Read more about isConfirmed, isDenied below */
                                if (result.isConfirmed) {
                                    Swal.fire({
                                        title: 'Estamos fazendo isso por você!',
                                        html: 'Arrumando as caixas na fileira <b></b> milliseconds.',
                                        timer: 2000,
                                        timerProgressBar: true,
                                        didOpen: () => {
                                            Swal.showLoading()
                                            timerInterval = setInterval(() => {
                                            const content = Swal.getContent()
                                            if (content) {
                                                const b = content.querySelector('b')
                                                if (b) {
                                                b.textContent = Swal.getTimerLeft()
                                                }
                                            }
                                            }, 100)
                                        },
                                        willClose: () => {
                                            clearInterval(timerInterval)
                                        }
                                        }).then((result) => {
                                        /* Read more about handling dismissals below */
                                        if (result.dismiss === Swal.DismissReason.timer) {
                                            var caixasObj=JSON.parse(JSON.stringify(caixas));

                                             $.post("{{ route('us.armazem.gestao.caixas.arrumar.caixa') }}",{
                                            '_token':'{{ csrf_token() }}',
                                            'etiquetaFileira':fileira,
                                            'etiquetasCaixas': caixasObj
                                            },
                                            function(data){
                                                alert(data)
                                            //     i++;
                                            //     $("#caixaCheck").text(caixasObj[index]+" | Nº("+numerosCaixasObj[index]+")");
                                            //     $("#CaixasCheckinResult").append(' <li class="list-group-item blue-gradient m-3 animate__animated animate__zoomIn text-white">Caixa '+data+' nº('+numerosCaixasObj[index]+')</li>');
                                            //     $("#caixasLista").append('<li class="list-group-item"><div class="md-v-line"></div><i class="fas fa-box mr-5"></i>  Caixa: <span class="badge badge-primary badge-pill">'+i+'</span> , Código: <span class="badge badge-primary badge-pill"  >'+caixasObj[index]+'</span>  , Número: <span  class="badge badge-primary badge-pill" >'+numerosCaixasObj[index]+'</span></li>');
                                            //     $("#caixasProcessadas").text(i);
                                            //     $("#caixasProcessadas").text(i);


                                            //    if(i>=qtdCaixasEscolhidas){
                                            //         // $.alert("Checkin terminado com sucesso!")
                                            //         $(".checkinFinalizado").show();
                                            //         $(".fazendoCheckin").hide();
                                            //         $(".btnPronto").show();
                                            //    }

                                            });
                                        }
                                    })
                                    const Toast = Swal.mixin({
                                        toast: true,
                                        position: 'top-end',
                                        showConfirmButton: true,
                                        timer: 3000,
                                        timerProgressBar: true,
                                        didOpen: (toast) => {
                                            toast.addEventListener('mouseenter', Swal.stopTimer)
                                            toast.addEventListener('mouseleave', Swal.resumeTimer)
                                        }
                                    })
                                } else if (result.isDenied) {
                                    Swal.fire('Arrumação cancelada', '', 'warning')
                                }
                            })
                        }
                    }
                });
      $(".arrumacaoView button").click(function(){
        alert("Olá")
      });
        $(function(){
            $('#reservasTable').DataTable({
                "paging": true,
                "lengthChange": true,
                "searching": true,
                "ordering": true,
                "info": true,
                "autoWidth": true,
            });
            // var stepper1 = new Stepper(document.querySelector('#stepper1'))

        });
    </script>
@endsection
