<?php
session_start();
if( $_SESSION["user"] == "" || $_SESSION["passwd"] == "" || $_SESSION["admin"] == false ) {
//   mysqli_close($conn);
//   header("Location: index.php");
}


include_once('db_config.php');

$Title = "Mayor de Cuentas.";
$Desde  = isset($_POST['desde']) ? $_POST["desde"]  : "";
$Hasta  = isset($_POST['hasta']) ? $_POST["hasta"]  : "";
$Cuenta  = isset($_POST['cuenta']) ? $_POST["cuenta"]  : "";
$hCuenta = isset($_POST['hcuenta']) ? $_POST["hcuenta"]  : "";
$Den     = isset($_POST['denom']) ? $_POST["denom"]  : "";
$hDen     = isset($_POST['hdenom']) ? $_POST["hdenom"]  : "";
$Inicio = $_SESSION["inicio"];
$Fin = $_SESSION["fin"];
$Ejercicio = $_SESSION["ID_Ejercicio"];

if( empty($Cuenta) ) $Den = ""; 
if( empty($Desde) ) {        
   console.log( "Empty desde" );
   if( $_SESSION["Desde"] != "" ) $Desde = $_SESSION["Desde"];
   else $Desde = date("01-01-Y");   
}

if( empty($Hasta) ) {        
   console.log( "Empty hasta" );
   if( $_SESSION["Hasta"] != "" ) $Hasta = $_SESSION["Hasta"];
   else $Hasta = date("31-12-Y");   
}

if( empty($Cuenta) ) {        
   if( $_SESSION["Cuenta"] != "" ) $Cuenta = $_SESSION["Cuenta"];
   else $Cuenta =""; 
}

if( empty($Den) ) {        
   if( $_SESSION["Den"] != "" ) $Den = $_SESSION["Den"];
   else $Den =""; 
}

if( empty($hCuenta) ) {        
   if( $_SESSION["hCuenta"] != "" ) $hCuenta = $_SESSION["hCuenta"];
   else $hCuenta = $Cuenta; 
}

if( empty($hDen) ) {        
   if( $_SESSION["hDen"] != "" ) $hDen = $_SESSION["hDen"];
   else $hDen = $Den;
}

$_SESSION["Desde"] = $Desde;
$_SESSION["Hasta"] = $Hasta;
$_SESSION["Cuenta"] = $Cuenta;
$_SESSION["Den"] = $Den;
$_SESSION["hCuenta"] = $hCuenta;
$_SESSION["hDen"] = $hDen;
$D = substr( $Desde, 6, 4 ) . "/" . substr( $Desde, 3, 2 ) . "/" . substr( $Desde, 0, 2 );
$H = substr( $Hasta, 6, 4 ) . "/" . substr( $Hasta, 3, 2 ) . "/" . substr( $Hasta, 0, 2 ); 

include 'header.php'; 
?>
<style>
.dropdown-content {
  overflow-x: hidden;
}

.dropdown-content li > a, .dropdown-content li > span {
/*   padding-left: 0;
   padding-right: 0;*/
}

.dropdown-client {
   background-color: white;
   opacity: 1;
   overflow-y: auto;
   border-bottom: 1px solid #d0d0d0;
   box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
}
ul.dropdown-client li {
   line-height:3em;
   height:3em;
   vertical-align: middle;
   color: #009688;
   min-height: 3em;
   text-align: left;
   padding: 0px 16px;
}
ul.dropdown-client li:hover {
 background-color:#90a4ae;
}

#therow {
   background-color: white; 
}

#invoices:hover {
   background-color: #cfd8dc; 
}

.data {
   margin-top: 0; 
   margin-bottom: 0; 
/*   padding-left: 5%; */
}


.margin {
   margin-top: 0; 
   margin-bottom: 0; 
}

.margin-label {
   margin-top: 5px; 
}
</style>
  <link href="http://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
  <div id="content">
  <div class="container" style="width:86%" >
    <div style="height: 15px;"></div>
<!--    <div class="col l9 m12 s12"> -->
      <div class="page-content">
        <div style="height:20px;"></div>
 <?php
         echo "<div class='row'>";
         echo "<div class='input-field col s2'>";
         echo "<label for='desde'>Desde</label>";
         echo "<input id='desde' type='date' class='datepicker' data-value='" . $D . "' onChange='onChange(this);'>";
         echo "</div>";
         echo "<div class='input-field col s2'>";
         echo "<label for='hasta'>Hasta</label>";
         echo "<input id='hasta' type='date' class='datepicker' data-value='" . $H . "' onChange='onChange(this);'>";
         echo "</div>";
//         echo "</div>";

//         echo "<div class='row'>";
         echo "<div class='input-field col s2'>";
             echo "<input id='cuenta' type='text' class='' placeholder=' ' value='" . $Cuenta . "'>";
             echo "<label for='cuenta'>Desde Cuenta</label>";
         echo "</div>";
         echo "<div class='input-field col s4'>";
             echo "<input id='denominacion' type='text' disabled class='' placeholder=' ' value='" . $Den . "'>";
             echo "<label for='denominacion'>Denominaci&oacute;n</label>";
         echo "</div>";
         echo "</div>";

         echo "<div class='row'>";
         echo "<div class='input-field col s2 offset-s4'>";
             echo "<input id='hcuenta' type='text' class='' placeholder=' ' value='" . $hCuenta . "'>";
             echo "<label for='hcuenta'>Hasta Cuenta</label>";
         echo "</div>";
         echo "<div class='input-field col s4'>";
             echo "<input id='hdenominacion' type='text' disabled class='' placeholder=' ' value='" . $hDen . "'>";
             echo "<label for='hdenominacion'>Denominaci&oacute;n</label>";
         echo "</div>";

         echo "<div class='input-field col s2'>";
         echo "<button id='go' onclick='Submit();' class='btn waves-effect waves-light btn col s3' style='margin-top:15px; margin-left: 30px; width:100px;' name='action'>Buscar</button>";
         echo "</div>";
         echo "</div>";
?>
      </div>  <!-- page-content --> 
<style>
th {
 font-weight: normal;
 color: black;
}

.totals {
  color:#0277bd;
  font-weight: bold;
  font-size: 1.1em;
  font-size: 1em;
}
.row {
  line-height: 2em; 
}
</style>
<?php

   /* ---- Mayor ---- */
   $ActualCuenta = "";
   $sql = "select cuenta, denominacion from cuentas where cuenta='" . $Cuenta . "'";
   $result = $conn->query($sql);
   if ($result->num_rows > 0) {
      while($row = $result->fetch_assoc()) {
         $Cuenta = $row["cuenta"];
         $Denominacion = $row["denominacion"];
      }
   }

   $sql = "select cuenta, denominacion from cuentas where cuenta='" . $hCuenta . "'";
   $result = $conn->query($sql);
   if ($result->num_rows > 0) {
      while($row = $result->fetch_assoc()) {
         $hCuenta = $row["cuenta"];
         $hDenominacion = $row["denominacion"];
      }
   }

   mysql_free_result( $result );

  $sql = "select asientos.fecha as _fecha, asientos.asiento as _asiento, movimientos.movimiento,  movimientos.cuenta as c, concepto, detalle, movimientos.debe as suma_debe, movimientos.haber as suma_haber from movimientos left join asientos on asientos.asiento=movimientos.asiento where movimientos.Empresa=1 and asientos.fecha is not null and cuenta = '" .$Cuenta . "' and asientos.fecha >='" . $D . "' and asientos.Fecha <='" . $H . "' and movimientos.ejercicio='" . $Ejercicio . "' order by cuenta, asientos.fecha, asientos.asiento, movimiento";
  $sql = "select asientos.fecha as _fecha, asientos.asiento as _asiento, movimientos.movimiento,  movimientos.cuenta as c, concepto, detalle, movimientos.debe as suma_debe, movimientos.haber as suma_haber from movimientos left join asientos on asientos.asiento=movimientos.asiento where movimientos.Empresa=1 and asientos.fecha is not null and cuenta >= '" .$Cuenta . "' and cuenta <= '" .$hCuenta . "' and asientos.fecha >='" . $D . "' and asientos.Fecha <='" . $H . "' and movimientos.ejercicio='" . $Ejercicio . "' order by cuenta, asientos.fecha, asientos.asiento, movimiento";
  $result = $conn->query($sql);
  if ($result->num_rows > 0) {


    $xor = 0;
    $Total_Debe = $Total_Haber = 0;

    while($row = $result->fetch_assoc()) {

      $cuenta = $row["c"];
      if( $cuenta != $ActualCuenta ) {

         if( $ActualCuenta != "" ) {

            /* --- Totales --- */
            echo "<div class='row data blue-grey white-text'>";
            echo "<div class='input-field col s1' style='width:7em;'></div>"; 
            echo "<div class='input-field col s2 offset-s5 right-align'><b>";
            echo number_format ( $Total_Debe, 2, ',' ,  '.' ); 
            echo "</div>";
            echo "<div class='input-field col s2 right-align'>";
            echo number_format ( $Total_Haber, 2, ',' ,  '.' );
            echo "</div>";
            echo "<div class='input-field col s2 right-align' style='width:11em;'>";
            echo number_format ( $Total_Debe - $Total_Haber, 2, ',' ,  '.' );
            echo "</b></div>";
            echo "</div>";
            echo "<div style='height:20px;'></div>";
            $Total_Debe = $Total_Haber = 0;
         }

         $sql = "select cuenta, denominacion from cuentas where cuenta='" . $cuenta . "'";
         $result1 = $conn->query($sql);
         if ($result1->num_rows > 0) {
            while($row1 = $result1->fetch_assoc()) {
               $xCuenta = $row1["cuenta"];
               $xDenominacion = $row1["denominacion"];
            }
         }

         echo "<table id='detail' class='highlight' style='color:grey; font-weight:normal;'>";
         echo "<thead>";
         echo "<tr>";
         echo "<div class='row data grey lighten-2' style='padding-top:10px; font-size:1.1em;'>";
         echo "<b>&nbsp;&nbsp;&nbsp;" . $xCuenta . ": " . $xDenominacion . "</b>";
         echo "</div>";
         echo "</tr>"; 
         echo "<tr>";
           echo "<div class='row data grey lighten-2'><b>";
           echo "<div class='col s1' style='border-radius:0; width:7em; text-decoration:underline;'>Fecha</div>";
           echo "<div class='col s1 right-align' style='border-radius:0; text-decoration:underline;'>Asiento</div>"; 
           echo "<div class='col s4' style='border-radius:0; text-decoration:underline;'>Detalle</div>"; 
           echo "<div class='col s2 right-align' style='border-radius:0; text-decoration:underline;'>Debe</div>"; 
           echo "<div class='col s2 right-align' style='border-radius:0; text-decoration:underline;'>Haber</div>"; 
           echo "<div class='col s2 right-align' style='border-radius:0; text-decoration:underline; width:11em;'>Saldo</div></b>"; 
         echo "</div>";
         echo "</tr>"; 
         echo "</thead>"; 
         echo "<tbody />"; 
         echo "</table>"; 
         $ActualCuenta = $cuenta;
      }

      $Fecha = $row["fecha"];
      $Fecha = substr( $Fecha, 8, 2 ) . "-" . substr( $Fecha, 5, 2 ) . "-" . substr( $Fecha, 0, 4 ); 
      $Debe = $row["suma_debe"];
      $Haber = $row["suma_haber"];
      $Total_Debe += $Debe;
      $Total_Haber += $Haber;

      /* ---- MAYOR ---------------------- */

      if( $xor ^= 1 ) 
         echo "<div class='row data blue-grey lighten-5'>";
      else echo "<div class='row data'>";
      echo "<div class='input-field col s1' style='width:7em;'>" . $row["_fecha"] . "</div>"; 
      echo "<div class='input-field col s1 right-align'>" . $row["_asiento"] . "</div>";
      echo "<div class='input-field col s4'>" . $row["concepto"] . "</div>";
      echo "<div class='input-field col s2 right-align'>";
      if( $Debe > 0 ) echo number_format ( $Debe, 2, ',' ,  '.' ); 
      echo "</div>";
      echo "<div class='input-field col s2 right-align'>";
      if( $Haber > 0 ) echo number_format ( $Haber, 2, ',' ,  '.' );
      echo "</div>";
      echo "</div>";
    }

   /* --- Totales --- */
   echo "<div class='row data blue-grey white-text'>";
   echo "<div class='input-field col s1' style='width:7em;'></div>"; 
   echo "<div class='input-field col s2 offset-s5 right-align'><b>";
   echo number_format ( $Total_Debe, 2, ',' ,  '.' ); 
   echo "</div>";
   echo "<div class='input-field col s2 right-align'>";
   echo number_format ( $Total_Haber, 2, ',' ,  '.' );
   echo "</div>";
   echo "<div class='input-field col s2 right-align' style='width:11em;'>";
   echo number_format ( $Total_Debe - $Total_Haber, 2, ',' ,  '.' );
   echo "</b></div>";
   echo "</div>";

   echo "<div style='height:100px;'></div>";
   echo "</div>";            //--  container --> 
   }

   mysqli_close($conn);
   echo "<ul id='dropdownData' class='dropdown-client' style='z-index:10; display:none;'>";
   echo "</ul>";
   echo "</div>";          // -- content -->

?>        


   <script type="text/javascript" src="js/jquery.min.js"></script>
   <script type="text/javascript" src="js/jquery.form.js"></script> 
   <script type="text/javascript" src="js/materialize.js"></script>  
   <script src="js/numeral.min.js"></script>
   <script src="js/jquery.maskedinput.min.js" type="text/javascript"></script>

<script>
   var keyTimeout;

   $(document).ready(function() {
      $('select').material_select();

      $('.datepicker').pickadate({
         selectMonths: true, // Creates a dropdown to control month
         selectYears: 15, // Creates a dropdown of 15 years to control year
         monthsFull: [ 'Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre' ],
         monthsShort: [ 'Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic' ],
         weekdaysFull: [ 'Domingo', 'Lunes', 'Martes', 'Miercoles', 'Jueves', 'Viernes', 'Sabado' ],
         weekdaysShort: [ 'Dom', 'Lun', 'Mar', 'Mie', 'Jue', 'Vie', 'Sab' ],
         weekdaysLetter: [ 'D', 'L', 'M', 'M', 'J', 'V', 'S' ],
         today: 'Hoy',
         clear: 'Borrar',
         close: 'Ok',
         format: 'dd/mm/yyyy',
         formatSubmit: 'yyyy/mm/dd'
         /*
         format: dateFormat,
         /*
         min: new Date(1935,1,1),
         onOpen: Register.OnDateOut(),
         onClose: Register.OnDateOut(),
         max: new Date(new Date().setYear(new Date().getFullYear() + 2))
         */
    });

       $("#cuenta").on('keyup', function() {

            var id = this.id;
            var cuenta  = this.value;
            if( keyTimeout != undefined ) clearInterval(keyTimeout); 
            keyTimeout = setTimeout(function() {
               clearInterval(keyTimeout); 
               if( cuenta.length >= 0 ) {
                  populateCuentas(cuenta,id);
               }
            },1500);
       });   

       $("#hcuenta").on('keyup', function() {

            var cuenta  = this.value;
            var id = this.id;
            if( keyTimeout != undefined ) clearInterval(keyTimeout); 
            keyTimeout = setTimeout(function() {
               clearInterval(keyTimeout); 
               if( cuenta.length >= 0 ) {
                  populateCuentas(cuenta,id);
               }
            },1500);
       });   

      jQuery(function($){
         $("#cuenta").mask("99999999",{placeholder:" ", autoclear: false});
         $("#hcuenta").mask("99999999",{placeholder:" ", autoclear: false});
      });
   });   

   // Post to the provided URL with the specified parameters.
   function post(path, parameters) {
      var form = $('<form></form>');

       form.attr("method", "post");
       form.attr("action", path);

       $.each(parameters, function(key, value) {
           var field = $('<input></input>');
           field.attr("type", "hidden");
           field.attr("name", key);
           field.attr("value", value);
           form.append(field);
       });

       // The form needs to be a part of the document in
       // order for us to be able to submit it.
       $(document.body).append(form);
      form.submit();
   };

   function Submit() {
      var d = $("#desde").val();
      var h = $("#hasta").val();
      var c = $("#cuenta").val();
      var hc = $("#hcuenta").val();
      var den = $("#denominacion").val();
      var hden = $("#hdenominacion").val();
      post("mayor.php", {desde:d,hasta:h,cuenta:c,denom:den,hcuenta:hc,hdenom:hden});
   }

   function normalizeDate( fecha ) {
      var normal = fecha.substr(6,4) + fecha.substr(3,2) + fecha.substr(0,2);
      return normal;
   }

   function onChange(element) {
      var inicio = <?php echo(json_encode($Inicio)); ?>;
      var fin = <?php echo(json_encode($Fin)); ?>;
   
      console.log( element.value);
      switch( element.id ) {
         case "desde":
         case "hasta":
            if( normalizeDate( element.value ) < normalizeDate( inicio ) || normalizeDate( element.value ) > normalizeDate( fin ) ) {
               Materialize.toast('Las fechas deben estar comprendidas dentro del ejercicio activo', 3000, 'rounded') 
            }
            break;

            break;

         default:
            break;
      }
   }

   function populateCuentas(key,id) {

      key = $.trim(key);
      $('#dropdownData').empty();
      $.ajax({
          type: "POST",
          url: "recvCuentas.php",
          data: { 'key': key  },
              success: function(data){
                  var msg = JSON.parse(data);
                  for( i = 0; i < msg.length; i++ ) {
                      $("#dropdownData").append($("<li></li>").val(msg[i].option).html(msg[i].option + " " + msg[i].denominacion));
                  }



                     if( msg.length == 1 ) {
                        var cuenta = msg[0].option;
                        $.ajax({
                            type: "POST",
                            url: "getCuenta.php",
                            data: { 'key': cuenta  },
                                success: function(data){
                                   var msg = JSON.parse(data);
                          
                                 if( id == "cuenta" ) {
                                    $('#cuenta').val(msg.cuenta); 
                                    $('#denominacion').val(msg.denominacion); 
                                    $( "#hcuenta" ).focus();
                                 }
                                 if( id == "hcuenta" ) {
                                    $('#hcuenta').val(msg.cuenta); 
                                    $('#hdenominacion').val(msg.denominacion); 
                                    $( "#go" ).focus();
                                 }
                              }
                       });
                     }
                     else {
                        if( msg.length > 0 ) {
                           showCuentas(id);
                           $( "#dropdownData" ).focus();
                           searchflag = 2;
                        }
                        else {
                           Materialize.toast('No hay cuentas que comiencen con ese numero', 3000, 'rounded') 
                           hideCuentas();
                           if( id == "cuenta" )
                              $( "#cuenta" ).focus();
                           else $( "#hcuenta" ).focus();
                        }
                     }
              }
      });
   }

   function showCuentas(id) {

      $( "#dropdownData" ).addClass( "active" );
      $( "#dropdownData" ).css( "opacity", 1 );
      $( "#dropdownData" ).css( 'display', 'block' );
      $( "#dropdownData" ).css( "width", "55%" );
      $( "#dropdownData" ).css( "height", "45%" );
      $( "#dropdownData" ).css( "color", "#009688" );
      $( "#dropdownData" ).css( "position", "absolute" );
      $( "#dropdownData" ).css( "left", "35%" );
      $( "#dropdownData" ).css( 'margin', '0 0 15px 0' );
      $( "#dropdownData" ).css( 'line-height', '3em' );
      $( "#dropdownData" ).css( "top", "320px" );
      $( "#cuenta" ).removeClass( "invalid" );

      $('#dropdownData li').on('click', function() {

            found = false;
            var key = $(this).val();
            if( id == "cuenta" ) $('#cuenta').val(key); 
            if( id == "hcuenta" ) $('#hcuenta').val(key); 
            console.log($(this).val());

            $.ajax({
                type: "POST",
                url: "getCuenta.php",
                data: { 'key': key  },
                    success: function(data){
                       var msg = JSON.parse(data);

                        if( id == "cuenta" ) {
                           $('#cuenta').val(msg.cuenta); 
                           $('#denominacion').val(msg.denominacion); 
                        }
                        if( id == "hcuenta" ) {
                           $('#hcuenta').val(msg.cuenta); 
                           $('#hdenominacion').val(msg.denominacion); 
                        }

                       if( searchflag == 1 ) {
                           if( id == "cuenta" ) 
                               $( "#cuenta" ).focus();
                           if( id == "hcuenta" ) 
                               $( "#hcuenta" ).focus();
                       }
                       found = true;
                   }
           });
           hideCuentas();
      });   
   }

   function hideCuentas() {
      $( "#dropdownData" ).removeClass( "active" );
      $( "#dropdownData" ).css( "opacity", 0 );
      $( "#dropdownData" ).css( 'display', 'none' );
   }


</script>
</body>
</html>

