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

include_once('db_config.php');

$Year   = isset($_POST['year']) ? $_POST["year"]  : "";
$Month  = isset($_POST['month']) ? $_POST['month'] : "";
$Ejercicio = $_SESSION["ID_Ejercicio"];

//$Year = "2017";
//$Month = "01";

$meses = array("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre");

if( !empty($Year) && !empty($Month) ) {

  $sql = "BEGIN";
  $result = $conn->query($sql);
   mysql_free_result( $result );


   /* ---- Ventas ---- */
  $sql = "select sum(retenciones) as ib, sum(Retenciones_Ganancias) as gan,sum(op_exentas+otras_retenciones) as otras, sum(iva_105) as iva105,sum(iva_21) as iva21, sum(iva_27) as iva27,sum(iva_mt) as ivamt,sum(retenciones_iva) as ret_iva,sum(iva_105+iva_21+iva_27+iva_mt) as imponible,sum((iva_105*10.5/100)+(iva_21*21/100)+(iva_27*27/100)) as total_iva, sum(iva) as iva_total, sum(iva-retenciones_iva) as debito_iva from comprobantes where (operacion=1 or operacion=116) and year(fecha)='"  . $Year . "' and month(fecha)='" . $Month . "' and comprobantes.Borrado=0 order by fecha";
  $result = $conn->query($sql);
  if ($result->num_rows > 0) {
      while($row = $result->fetch_assoc()) {
         $IVA105 = $row["iva105"];
         $IVA21 = $row["iva21"];
         $IVA27 = $row["iva27"];
         $IVAMT = $row["ivamt"];
         $RET_IVA = $row["ret_iva"];
         $IMPONIBLE = $row["imponible"];
         $TOTAL_IVA = $row["total_iva"];
         $DEBITO_IVA = $row["debito_iva"];
         $RETENCIONES = $row["ib"];
         $RET_GAN = $row["gan"];
         $OTRAS = $row["otras"];
      }
      $IMPORTE_TOTAL = $IVA105 + $IVA21 + $IVA27 + $IVAMT + $RET_IVA + $TOTAL_IVA + $RETENCIONES + $OTRAS + $RET_GAN;
   }

   /* ---- Compras ---- */
  $sql = "select sum(retenciones) as ib, sum(Retenciones_Ganancias) as gan, sum(op_exentas+otras_retenciones) as otras, sum(iva_105) as iva105,sum(iva_21) as iva21, sum(iva_27) as iva27,sum(iva_mt) as ivamt,sum(retenciones_iva) as ret_iva,sum(iva_105+iva_21+iva_27+iva_mt) as imponible,sum((iva_105*10.5/100)+(iva_21*21/100)+(iva_27*27/100)) as total_iva, sum(iva) as iva_total, sum(iva+retenciones_iva) as debito_iva from comprobantes where (operacion=2 or operacion=7 or operacion=115) and year(fecha)='"  . $Year . "' and month(fecha)='" . $Month . "' and comprobantes.Borrado=0 order by fecha";
  $result = $conn->query($sql);
  if ($result->num_rows > 0) {
      while($row = $result->fetch_assoc()) {
         $CIVA105 = $row["iva105"];
         $CIVA21 = $row["iva21"];
         $CIVA27 = $row["iva27"];
         $CIVAMT = $row["ivamt"];
         $CRET_IVA = $row["ret_iva"];
         $CIMPONIBLE = $row["imponible"];
         $CTOTAL_IVA = $row["total_iva"];
         $CDEBITO_IVA = $row["debito_iva"];
         $CRETENCIONES = $row["ib"];
         $CRET_GAN = $row["gan"];
         $COTRAS = $row["otras"];
      }
      $CIMPORTE_TOTAL = $CIVA105 + $CIVA21 + $CIVA27 + $CIVAMT + $CRET_IVA + $CTOTAL_IVA + $CRETENCIONES + $COTRAS + $CRET_GAN;
   }

   /* ---- Cobranzas ---- */
  $sql = "select sum(retenciones) as ib, sum(Retenciones_Ganancias) as gan,sum(op_exentas+otras_retenciones) as otras, sum(iva_105) as iva105,sum(iva_21) as iva21, sum(iva_27) as iva27,sum(iva_mt) as ivamt,sum(retenciones_iva) as ret_iva,sum(iva_105+iva_21+iva_27+iva_mt) as imponible,sum((iva_105*10.5/100)+(iva_21*21/100)+(iva_27*27/100)) as total_iva, sum(iva) as iva_total, sum(iva+retenciones_iva) as debito_iva from comprobantes where (operacion=8 or operacion = 116) and year(fecha)='"  . $Year . "' and month(fecha)='" . $Month . "' and comprobantes.Borrado=0 order by fecha";
  $result = $conn->query($sql);
  if ($result->num_rows > 0) {

      while($row = $result->fetch_assoc()) {
         $COIVA105 = $row["iva105"];
         $COIVA21 = $row["iva21"];
         $COIVA27 = $row["iva27"];
         $COIVAMT = $row["ivamt"];
         $CORET_IVA = $row["ret_iva"];
         $COIMPONIBLE = $row["imponible"];
         $COTOTAL_IVA = $row["total_iva"];
         $CODEBITO_IVA = $row["debito_iva"];
         $CORETENCIONES = $row["ib"];
         $CORET_GAN = $row["gan"];
         $COOTRAS = $row["otras"];
      }
      $COIMPORTE_TOTAL = $COIVA105 + $CORET_IVA + $CORETENCIONES + $COOTRAS + $CORET_GAN;
   }

   /* ---- Pagos ---- */
  $sql = "select sum(retenciones) as ib, sum(Retenciones_Ganancias) as gan,sum(op_exentas+otras_retenciones) as otras, sum(iva_105) as iva105,sum(iva_21) as iva21, sum(iva_27) as iva27,sum(iva_mt) as ivamt,sum(retenciones_iva) as ret_iva,sum(iva_105+iva_21+iva_27+iva_mt) as imponible,sum((iva_105*10.5/100)+(iva_21*21/100)+(iva_27*27/100)) as total_iva, sum(iva) as iva_total, sum(iva+retenciones_iva) as debito_iva from comprobantes where operacion=9 and year(fecha)='"  . $Year . "' and month(fecha)='" . $Month . "' and comprobantes.Borrado=0 order by fecha";
  $result = $conn->query($sql);
  if ($result->num_rows > 0) {

      while($row = $result->fetch_assoc()) {
         $PIVA105 = $row["iva105"];
         $PIVA21 = $row["iva21"];
         $PIVA27 = $row["iva27"];
         $PIVAMT = $row["ivamt"];
         $PRET_IVA = $row["ret_iva"];
         $PIMPONIBLE = $row["imponible"];
         $PTOTAL_IVA = $row["total_iva"];
         $PDEBITO_IVA = $row["debito_iva"];
         $PRETENCIONES = $row["ib"];
         $PRET_GAN = $row["gan"];
         $POTRAS = $row["otras"];

      }
      $PIMPORTE_TOTAL = $PIVA105 + $PIVA21 + $PIVA27 + $PIVAMT + $PRET_IVA + $PTOTAL_IVA + $PRETENCIONES + $POTRAS + $PRET_GAN;
   }


   /* ---- Retenciones ---- */
  $sql = "select sum(retenciones) as ib, sum(Retenciones_Ganancias) as gan,sum(op_exentas+otras_retenciones) as otras, sum(iva_105) as iva105,sum(iva_21) as iva21, sum(iva_27) as iva27,sum(iva_mt) as ivamt,sum(retenciones_iva) as ret_iva,sum(iva_105+iva_21+iva_27+iva_mt) as imponible,sum((iva_105*10.5/100)+(iva_21*21/100)+(iva_27*27/100)) as total_iva, sum(iva) as iva_total, sum(iva-retenciones_iva) as debito_iva from comprobantes where (operacion=3 or operacion=4 or operacion=5 or operacion=6) and year(fecha)='"  . $Year . "' and month(fecha)='" . $Month . "' and comprobantes.Borrado=0 order by fecha";
  $result = $conn->query($sql);
  if ($result->num_rows > 0) {
      while($row = $result->fetch_assoc()) {
         $RIVA105 = $row["iva105"];
         $RIVA21 = $row["iva21"];
         $RIVA27 = $row["iva27"];
         $RIVAMT = $row["ivamt"];
         $RRET_IVA = $row["ret_iva"];
         $RIMPONIBLE = $row["imponible"];
         $RTOTAL_IVA = $row["total_iva"];
         $RDEBITO_IVA = $row["debito_iva"];
         $RRETENCIONES = $row["ib"];
         $RRET_GAN = $row["gan"];
         $ROTRAS = $row["otras"];
      }
      $RIMPORTE_TOTAL = $RIVA105 + $RIVA21 + $RIVA27 + $RIVAMT + $RRET_IVA + $RTOTAL_IVA + $RRETENCIONES + $ROTRAS + $RRET_GAN;
   }

   if( $Month == 2 )
      $fecha = $Year . "/" . $Month . "/28";
   else $fecha = $Year . "/" . $Month . "/30";

   $sql = "select id, asiento from asientos order by asiento desc limit 1";
   $result = $conn->query($sql);
   if ($result->num_rows > 0) {
      if($row = $result->fetch_assoc()) {
         $asiento = $row["asiento"] + 1;
      }
   }
   $movimiento = "1";

   /* ---- Asiento de Ventas ----- */

   $concepto = "Ventas " . $meses[$Month-1] . "/" . $Year;
   $sql = sprintf( "insert into asientos(`Id`,`fecha`,`asiento`,`concepto`,`debe`,`haber`,`cliente`,`estado`,`empresa`,`observaciones`,`ejercicio`)" .
                   " VALUES(0,'%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')", $fecha, $asiento, $concepto, $IMPORTE_TOTAL, $IMPORTE_TOTAL, 1, 3, 1, '',$Ejercicio); 
   $result = $conn->query($sql);
//   $used_id = mysql_insert_id();
   $used_id = $conn->insert_id;
   mysql_free_result( $result );


   if( $IMPONIBLE > 0 ) {
      $sql = sprintf( "insert into movimientos(`Id`,`fecha`,`asiento`,`movimiento`,`cuenta`,`debe`,`haber`,`cliente`,`empresa`,`observaciones`,`ID_Asiento`,`ejercicio`)" .
                   " VALUES(0,'%s','%s','%s','51100000','%s','%s','%s','%s','%s','%s','%s')",  $fecha, $asiento, $movimiento, 0, $IMPONIBLE, 1, 1, '', $used_id, $Ejercicio); 
//         echo $sql . "<br/>";
      $result = $conn->query($sql);
      mysql_free_result( $result );
      ++$movimiento;
   }

   if( $TOTAL_IVA > 0 ) {
      $sql = sprintf( "insert into movimientos(`Id`,`fecha`,`asiento`,`movimiento`,`cuenta`,`debe`,`haber`,`cliente`,`empresa`,`observaciones`,`ID_Asiento`,`ejercicio`)" .
                      " VALUES(0,'%s','%s','%s','21160000','%s','%s','%s','%s','%s','%s','%s')",  $fecha, $asiento, $movimiento, 0, $TOTAL_IVA, 1, 1, '', $used_id, $Ejercicio); 
      $result = $conn->query($sql);
      mysql_free_result( $result );
      ++$movimiento;
   }

   if( $RET_IVA > 0 ) {
      $sql = sprintf( "insert into movimientos(`Id`,`fecha`,`asiento`,`movimiento`,`cuenta`,`debe`,`haber`,`cliente`,`empresa`,`observaciones`,`ID_Asiento`,`ejercicio`)" .
                      " VALUES(0,'%s','%s','%s','11360000','%s','%s','%s','%s','%s','%s','%s')",  $fecha, $asiento, $movimiento, 0, $RET_IVA, 1, 1, '', $used_id, $Ejercicio); 
      $result = $conn->query($sql);
      mysql_free_result( $result );
      ++$movimiento;
   }

   if( $RETENCIONES > 0 ) {
      $sql = sprintf( "insert into movimientos(`Id`,`fecha`,`asiento`,`movimiento`,`cuenta`,`debe`,`haber`,`cliente`,`empresa`,`observaciones`,`ID_Asiento`,`ejercicio`)" .
                      " VALUES(0,'%s','%s','%s','11341000','%s','%s','%s','%s','%s','%s','%s')",  $fecha, $asiento, $movimiento, 0, $RETENCIONES, 1, 1, '', $used_id, $Ejercicio); 
      $result = $conn->query($sql);
      mysql_free_result( $result );
      ++$movimiento;
   }

   if( $IMPORTE_TOTAL > 0 ) {
      $sql = sprintf( "insert into movimientos(`Id`,`fecha`,`asiento`,`movimiento`,`cuenta`,`debe`,`haber`,`cliente`,`empresa`,`observaciones`,`ID_Asiento`,`ejercicio`)" .
                      " VALUES(0,'%s','%s','%s','11310000','%s','%s','%s','%s','%s','%s','%s')",  $fecha, $asiento, $movimiento, $IMPORTE_TOTAL, 0, 1, 1, '', $used_id, $Ejercicio); 
      $result = $conn->query($sql);
      mysql_free_result( $result );
      ++$movimiento;
   }

   ++$asiento;
   $movimiento = "1";

   /* ----- Asiento de Compras ----- */

   $concepto = "Compras & Proveedores " . $meses[$Month-1] . "/" . $Year;
   $sql = sprintf( "insert into asientos(`Id`,`fecha`,`asiento`,`concepto`,`debe`,`haber`,`cliente`,`estado`,`empresa`,`observaciones`,`ejercicio`)" .
                   " VALUES(0,'%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')", $fecha, $asiento, $concepto, $CIMPORTE_TOTAL, $CIMPORTE_TOTAL, 1, 3, 1, '', $Ejercicio); 
   $result = $conn->query($sql);
//   $used_id = mysql_insert_id();
   $used_id = $conn->insert_id;
    mysql_free_result( $result );

   if( $CIMPONIBLE > 0 ) {
      $sql = sprintf( "insert into movimientos(`Id`,`fecha`,`asiento`,`movimiento`,`cuenta`,`debe`,`haber`,`cliente`,`empresa`,`observaciones`,`ID_Asiento`,`ejercicio`)" .
                   " VALUES(0,'%s','%s','%s','43000000','%s','%s','%s','%s','%s','%s','%s')",  $fecha, $asiento, $movimiento, $CIMPONIBLE, 0, 1, 1, '', $used_id, $Ejercicio); 
      $result = $conn->query($sql);
      mysql_free_result( $result );
      ++$movimiento;
   }

   if( $CTOTAL_IVA > 0 ) {
      $sql = sprintf( "insert into movimientos(`Id`,`fecha`,`asiento`,`movimiento`,`cuenta`,`debe`,`haber`,`cliente`,`empresa`,`observaciones`,`ID_Asiento`,`ejercicio`)" .
                      " VALUES(0,'%s','%s','%s','11361000','%s','%s','%s','%s','%s','%s','%s')",  $fecha, $asiento, $movimiento, $CTOTAL_IVA, 0, 1, 1, '', $used_id, $Ejercicio); 
      $result = $conn->query($sql);
      mysql_free_result( $result );
      ++$movimiento;
   }

   if( $CRET_IVA > 0 ) {
      $sql = sprintf( "insert into movimientos(`Id`,`fecha`,`asiento`,`movimiento`,`cuenta`,`debe`,`haber`,`cliente`,`empresa`,`observaciones`,`ID_Asiento`,`ejercicio`)" .
                      " VALUES(0,'%s','%s','%s','11360000','%s','%s','%s','%s','%s','%s','%s')",  $fecha, $asiento, $movimiento, $CRET_IVA, 0, 1, 1, '', $used_id, $Ejercicio); 
      $result = $conn->query($sql);
      mysql_free_result( $result );
      ++$movimiento;
   }

   if( $CRETENCIONES > 0 ) {
      $sql = sprintf( "insert into movimientos(`Id`,`fecha`,`asiento`,`movimiento`,`cuenta`,`debe`,`haber`,`cliente`,`empresa`,`observaciones`,`ID_Asiento`,`ejercicio`)" .
                      " VALUES(0,'%s','%s','%s','11341000','%s','%s','%s','%s','%s','%s','%s')",  $fecha, $asiento, $movimiento, $CRETENCIONES, 0, 1, 1, '', $used_id, $Ejercicio); 
      $result = $conn->query($sql);
      mysql_free_result( $result );
      ++$movimiento;
   }

   if( $CRET_GAN > 0 ) {
      $sql = sprintf( "insert into movimientos(`Id`,`fecha`,`asiento`,`movimiento`,`cuenta`,`debe`,`haber`,`cliente`,`empresa`,`observaciones`,`ID_Asiento`,`ejercicio`)" .
                      " VALUES(0,'%s','%s','%s','11340000','%s','%s','%s','%s','%s','%s','%s')",  $fecha, $asiento, $movimiento, $CRET_GAN, 0, 1, 1, '', $used_id, $Ejercicio); 
      $result = $conn->query($sql);
      mysql_free_result( $result );
      ++$movimiento;
   }

   if( $COTRAS > 0 ) {
      $sql = sprintf( "insert into movimientos(`Id`,`fecha`,`asiento`,`movimiento`,`cuenta`,`debe`,`haber`,`cliente`,`empresa`,`observaciones`,`ID_Asiento`,`ejercicio`)" .
                      " VALUES(0,'%s','%s','%s','11342000','%s','%s','%s','%s','%s','%s','%s')",  $fecha, $asiento, $movimiento, $COTRAS, 0, 1, 1, '', $used_id, $Ejercicio); 
      $result = $conn->query($sql);
      mysql_free_result( $result );
      ++$movimiento;
   }

   if( $CIMPORTE_TOTAL > 0 ) {
      $sql = sprintf( "insert into movimientos(`Id`,`fecha`,`asiento`,`movimiento`,`cuenta`,`debe`,`haber`,`cliente`,`empresa`,`observaciones`,`ID_Asiento`,`ejercicio`)" .
                      " VALUES(0,'%s','%s','%s','21110000','%s','%s','%s','%s','%s','%s','%s')",  $fecha, $asiento, $movimiento, 0, $CIMPORTE_TOTAL, 1, 1, '', $used_id, $Ejercicio); 
      $result = $conn->query($sql);
      mysql_free_result( $result );
      ++$movimiento;
   }


   ++$asiento;
   $movimiento = "1";

   /* ----- Asiento de Cobranzas ----- */
   if( $COIMPORTE_TOTAL > 0 ) {

      $concepto = "Cobranzas " . $meses[$Month-1] . "/" . $Year;
      $sql = sprintf( "insert into asientos(`Id`,`fecha`,`asiento`,`concepto`,`debe`,`haber`,`cliente`,`estado`,`empresa`,`observaciones`,`ejercicio`)" .
                      " VALUES(0,'%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')", $fecha, $asiento, $concepto, $COIMPORTE_TOTAL, $COIMPORTE_TOTAL, 1, 3, 1, '', $Ejercicio); 
      $result = $conn->query($sql);
//      $used_id = mysql_insert_id();
      $used_id = $conn->insert_id;
      mysql_free_result( $result );


      if( ( $COIMPORTE_TOTAL - $CORET_IVA - $CORETENCIONES - $COOTRAS - $CORET_GAN ) > 0 ) {
         $sql = sprintf( "insert into movimientos(`Id`,`fecha`,`asiento`,`movimiento`,`cuenta`,`debe`,`haber`,`cliente`,`empresa`,`observaciones`,`ID_Asiento`,`ejercicio`)" .
                      " VALUES(0,'%s','%s','%s','11310000','%s','%s','%s','%s','%s','%s','%s')",  $fecha, $asiento, $movimiento, 0, $COIVA105 + $CORET_IVA + $CORETENCIONES + $COOTRAS + $CORET_GAN, 1, 1, '', $used_id, $Ejercicio); 
         $result = $conn->query($sql);
         mysql_free_result( $result );
         ++$movimiento;
      }
      
      
      if( $CORET_IVA > 0 ) {
         $sql = sprintf( "insert into movimientos(`Id`,`fecha`,`asiento`,`movimiento`,`cuenta`,`debe`,`haber`,`cliente`,`empresa`,`observaciones`,`ID_Asiento`,`ejercicio`)" .
                         " VALUES(0,'%s','%s','%s','11360000','%s','%s','%s','%s','%s','%s','%s')",  $fecha, $asiento, $movimiento, $CORET_IVA, 0, 1, 1, '', $used_id, $Ejercicio); 
         $result = $conn->query($sql);
         mysql_free_result( $result );
         ++$movimiento;
      }
      
      if( $CORETENCIONES > 0 ) {
         $sql = sprintf( "insert into movimientos(`Id`,`fecha`,`asiento`,`movimiento`,`cuenta`,`debe`,`haber`,`cliente`,`empresa`,`observaciones`,`ID_Asiento`,`ejercicio`)" .
                         " VALUES(0,'%s','%s','%s','11341000','%s','%s','%s','%s','%s','%s','%s')",  $fecha, $asiento, $movimiento, $CORETENCIONES, 0, 1, 1, '', $used_id, $Ejercicio); 
//         echo $sql . "<br/>";
         $result = $conn->query($sql);

//         if( $result == false )  echo $CORETENCIONES . " - " . mysql_errno($conn) . ": " . mysql_error($conn). "<br/>";
         mysql_free_result( $result );
         ++$movimiento;
      }
      
      if( $CORET_GAN > 0 ) {
         $sql = sprintf( "insert into movimientos(`Id`,`fecha`,`asiento`,`movimiento`,`cuenta`,`debe`,`haber`,`cliente`,`empresa`,`observaciones`,`ID_Asiento`,`ejercicio`)" .
                         " VALUES(0,'%s','%s','%s','11340000','%s','%s','%s','%s','%s','%s','%s')",  $fecha, $asiento, $movimiento, $CORET_GAN, 0, 1, 1, '', $used_id, $Ejercicio); 
         $result = $conn->query($sql);
         mysql_free_result( $result );
         ++$movimiento;
      }
      
      if( $COOTRAS > 0 ) {
         $sql = sprintf( "insert into movimientos(`Id`,`fecha`,`asiento`,`movimiento`,`cuenta`,`debe`,`haber`,`cliente`,`empresa`,`observaciones`,`ID_Asiento`,`ejercicio`)" .
                         " VALUES(0,'%s','%s','%s','11342000','%s','%s','%s','%s','%s','%s','%s')",  $fecha, $asiento, $movimiento, $COOTRAS, 0, 1, 1, '', $used_id, $Ejercicio); 
         $result = $conn->query($sql);
         mysql_free_result( $result );
         ++$movimiento;
      }

      if( $COIMPORTE_TOTAL > 0 ) {
//         echo number_format ( $COIMPORTE_TOTAL - $COOTRAS - $CORET_GAN - $CORETENCIONES - $CORET_IVA, 2, ',' ,  '.' );
         $sql = sprintf( "insert into movimientos(`Id`,`fecha`,`asiento`,`movimiento`,`cuenta`,`debe`,`haber`,`cliente`,`empresa`,`observaciones`,`ID_Asiento`,`ejercicio`)" .
                         " VALUES(0,'%s','%s','%s','11120000','%s','%s','%s','%s','%s','%s','%s')",  $fecha, $asiento, $movimiento, $COIMPORTE_TOTAL - $COOTRAS - $CORET_GAN - $CORETENCIONES - $CORET_IVA, 0, 1, 1, '', $used_id, $Ejercicio); 
         $result = $conn->query($sql);
         mysql_free_result( $result );
         ++$movimiento;
      }
      
      ++$asiento;
      $movimiento = "1";
   }
   
   /* ----- Asiento de Pagos ----- */
   if( $PIMPORTE_TOTAL > 0 ) {

//      $PAGOS = $COIVA105 + $COIVA21 + $COIVA27 + $COIVAMT + $CORET_IVA + $COTOTAL_IVA + $CORETENCIONES + $COOTRAS;
      $PAGOS = $PIVA105 + $PIVA21 + $PIVA27 + $PIVAMT + $PRET_IVA + $PTOTAL_IVA + $PRETENCIONES + $POTRAS;
      $concepto = "Pagos " . $meses[$Month-1] . "/" . $Year;
      $sql = sprintf( "insert into asientos(`Id`,`fecha`,`asiento`,`concepto`,`debe`,`haber`,`cliente`,`estado`,`empresa`,`observaciones`,`ejercicio`)" .
                      " VALUES(0,'%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')", $fecha, $asiento, $concepto, $PIMPORTE_TOTAL, $PAGOS, 1, 3, 1, '', $Ejercicio); 
      $result = $conn->query($sql);
//      $used_id = mysql_insert_id();
      $used_id = $conn->insert_id;
      mysql_free_result( $result );


      if( ( $PIMPORTE_TOTAL - $PRET_IVA - $PRETENCIONES - $POTRAS ) > 0 ) {
         $sql = sprintf( "insert into movimientos(`Id`,`fecha`,`asiento`,`movimiento`,`cuenta`,`debe`,`haber`,`cliente`,`empresa`,`observaciones`,`ID_Asiento`,`ejercicio`)" .
                      " VALUES(0,'%s','%s','%s','21110000','%s','%s','%s','%s','%s','%s','%s')",  $fecha, $asiento, $movimiento, $PIMPORTE_TOTAL - $PRET_IVA - $PRETENCIONES - $POTRAS, 0, 1, 1, '', $used_id, $Ejercicio); 
         $result = $conn->query($sql);
         mysql_free_result( $result );
         ++$movimiento;
      }
      
      
      if( $PRET_IVA > 0 ) {
         $sql = sprintf( "insert into movimientos(`Id`,`fecha`,`asiento`,`movimiento`,`cuenta`,`debe`,`haber`,`cliente`,`empresa`,`observaciones`,`ID_Asiento`,`ejercicio`)" .
                         " VALUES(0,'%s','%s','%s','11360000','%s','%s','%s','%s','%s','%s','%s')",  $fecha, $asiento, $movimiento, 0, $PRET_IVA, 1, 1, '', $used_id, $Ejercicio); 
         $result = $conn->query($sql);
         mysql_free_result( $result );
         ++$movimiento;
      }
      
      if( $PRETENCIONES > 0 ) {
         $sql = sprintf( "insert into movimientos(`Id`,`fecha`,`asiento`,`movimiento`,`cuenta`,`debe`,`haber`,`cliente`,`empresa`,`observaciones`,`ID_Asiento`,`ejercicio`)" .
                         " VALUES(0,'%s','%s','%s','11341000','%s','%s','%s','%s','%s','%s','%s')",  $fecha, $asiento, $movimiento, 0, $PRETENCIONES, 1, 1, '', $used_id, $Ejercicio); 
         $result = $conn->query($sql);
         mysql_free_result( $result );
         ++$movimiento;
      }
      
      if( $PRET_GAN > 0 ) {
         $sql = sprintf( "insert into movimientos(`Id`,`fecha`,`asiento`,`movimiento`,`cuenta`,`debe`,`haber`,`cliente`,`empresa`,`observaciones`,`ID_Asiento`,`ejercicio`)" .
                         " VALUES(0,'%s','%s','%s','11340000','%s','%s','%s','%s','%s','%s','%s')",  $fecha, $asiento, $movimiento, 0, $PRET_GAN, 1, 1, '', $used_id, $Ejercicio); 
         $result = $conn->query($sql);
         mysql_free_result( $result );
         ++$movimiento;
      }
      
      if( $POTRAS > 0 ) {
         $sql = sprintf( "insert into movimientos(`Id`,`fecha`,`asiento`,`movimiento`,`cuenta`,`debe`,`haber`,`cliente`,`empresa`,`observaciones`,`ID_Asiento`,`ejercicio`)" .
                         " VALUES(0,'%s','%s','%s','11342000','%s','%s','%s','%s','%s','%s','%s')",  $fecha, $asiento, $movimiento, $POTRAS, 0, 1, 1, '', $used_id, $Ejercicio); 
         $result = $conn->query($sql);
         mysql_free_result( $result );
         ++$movimiento;
      }

      $sql = sprintf( "insert into movimientos(`Id`,`fecha`,`asiento`,`movimiento`,`cuenta`,`debe`,`haber`,`cliente`,`empresa`,`observaciones`,`ID_Asiento`,`ejercicio`)" .
                      " VALUES(0,'%s','%s','%s','11120000','%s','%s','%s','%s','%s','%s','%s')",  $fecha, $asiento, $movimiento, 0, $PIMPORTE_TOTAL, 1, 1, '', $used_id, $Ejercicio); 
      $result = $conn->query($sql);
      mysql_free_result( $result );
      ++$movimiento;

      ++$asiento;
      $movimiento = "1";
   }

   /* ----- Asiento de Impuestos ----- */
//   if( $PIMPORTE_TOTAL > 0 ) {
   /*
      if( $TOTAL_IVA > 0 ) {
         $sql = sprintf( "insert into movimientos(`Id`,`fecha`,`asiento`,`movimiento`,`cuenta`,`debe`,`haber`,`cliente`,`empresa`,`observaciones`)" .
                      " VALUES(0,'%s','%s','%s','21160000','%s','%s','%s','%s','%s')",  $fecha, $asiento, $movimiento, $TOTAL_IVA, 0, 1, 1, ''); 
         $result = $conn->query($sql);
         mysql_free_result( $result );
         ++$movimiento;
      }
      
      if( $CTOTAL_IVA > 0 ) {
         $sql = sprintf( "insert into movimientos(`Id`,`fecha`,`asiento`,`movimiento`,`cuenta`,`debe`,`haber`,`cliente`,`empresa`,`observaciones`)" .
                         " VALUES(0,'%s','%s','%s','11361000','%s','%s','%s','%s','%s')",  $fecha, $asiento, $movimiento, 0, $CTOTAL_IVA, 1, 1, ''); 
         $result = $conn->query($sql);
         mysql_free_result( $result );
         ++$movimiento;
      }

      if( $CRET_IVA > 0 || $CORET_IVA > 0 || $RRET_IVA > 0 ) {
         $IMPUESTO_DEBE = $IMPUESTO_HABER = 0;      
         if( $RRET_IVA > 0 ) {
            $IMPUESTO_DEBE = $RRET_IVA;
            if( ( $CRET_IVA - $RRET_IVA ) > 0 ) $IMPUESTO_HABER = $CRET_IVA - $RRET_IVA; 
         }
         else {
            $IMPUESTO_HABER = $CRET_IVA;
         }
         $sql = sprintf( "insert into movimientos(`Id`,`fecha`,`asiento`,`movimiento`,`cuenta`,`debe`,`haber`,`cliente`,`empresa`,`observaciones`)" .
                         " VALUES(0,'%s','%s','%s','11360000','%s','%s','%s','%s','%s')",  $fecha, $asiento, $movimiento, $IMPUESTO_DEBE, $IMPUESTO_HABER, 1, 1, ''); 
         $result = $conn->query($sql);
         mysql_free_result( $result );
         ++$movimiento;
      }

      if( $CRET_GAN > 0 || $CORET_GAN > 0 || $RRET_GAN > 0 ) {
         $IMPUESTO_DEBE = $IMPUESTO_HABER = 0;      
         if( $RRET_GAN > 0 ) {
            $IMPUESTO_DEBE = $RRET_GAN;
            if( ( $CRET_GAN - $RRET_GAN ) > 0 ) $IMPUESTO_HABER = $CRET_GAN - $CORET_IVA; 
         }
         else {
            $IMPUESTO_HABER = $CRET_GAN + $CORET_GAN + $RRET_GAN;
         }
         $sql = sprintf( "insert into movimientos(`Id`,`fecha`,`asiento`,`movimiento`,`cuenta`,`debe`,`haber`,`cliente`,`empresa`,`observaciones`)" .
                         " VALUES(0,'%s','%s','%s','11340000','%s','%s','%s','%s','%s')",  $fecha, $asiento, $movimiento, $IMPUESTO_DEBE, $IMPUESTO_HABER, 1, 1, ''); 
         $result = $conn->query($sql);
         mysql_free_result( $result );
         ++$movimiento;
      }

      if( $CRETENCIONES > 0 || $CORETENCIONES > 0 || $RRETENCIONES > 0 ) {
         $IMPUESTO_DEBE = $IMPUESTO_HABER = 0;      
         if( $RRETENCIONES > 0 ) {
            $IMPUESTO_DEBE = $RRETENCIONES;
            if( $CRETENCIONES > 0 ) $IMPUESTO_HABER = $CRETENCIONES; 
         }
         else {
            $IMPUESTO_HABER = $CRETENCIONES;
         }
         $sql = sprintf( "insert into movimientos(`Id`,`fecha`,`asiento`,`movimiento`,`cuenta`,`debe`,`haber`,`cliente`,`empresa`,`observaciones`)" .
                         " VALUES(0,'%s','%s','%s','11341000','%s','%s','%s','%s','%s')",  $fecha, $asiento, $movimiento, $IMPUESTO_DEBE, $IMPUESTO_HABER, 1, 1, ''); 
         $result = $conn->query($sql);
         mysql_free_result( $result );
         ++$movimiento;
      }

      if( $COTRAS > 0 || $ROTRAS > 0 ) {
         $IMPUESTO_DEBE = $IMPUESTO_HABER = 0;      
         if( $ROTRAS > 0 ) {
            $IMPUESTO_DEBE = $ROTRAS;
            if( $COTRAS > 0 ) $IMPUESTO_HABER = $COTRAS; 
         }
         else {
            $IMPUESTO_HABER = $COTRAS;
         }
         $sql = sprintf( "insert into movimientos(`Id`,`fecha`,`asiento`,`movimiento`,`cuenta`,`debe`,`haber`,`cliente`,`empresa`,`observaciones`)" .
                         " VALUES(0,'%s','%s','%s','11342000','%s','%s','%s','%s','%s')",  $fecha, $asiento, $movimiento, $IMPUESTO_DEBE, $IMPUESTO_HABER, 1, 1, ''); 
         $result = $conn->query($sql);
         mysql_free_result( $result );
         ++$movimiento;
      }

      $TOTAL_DIF = ( $CTOTAL_IVA + $CRET_IVA + $CRETENCIONES + $COTRAS );
      $sql = sprintf( "insert into movimientos(`Id`,`fecha`,`asiento`,`movimiento`,`cuenta`,`debe`,`haber`,`cliente`,`empresa`,`observaciones`)" .
                      " VALUES(0,'%s','%s','%s','11120000','%s','%s','%s','%s','%s')",  $fecha, $asiento, $movimiento, 0, $TOTAL_IVA + $RRETENCIONES + $RRET_IVA + $ROTRAS + $RRET_GAN - $TOTAL_DIF, 1, 1, ''); 
//      $result = $conn->query($sql);
//      mysql_free_result( $result );
//      ++$movimiento;

      $IMPUESTO_DEBE = $TOTAL_IVA + $RRETENCIONES + $RRET_IVA + $ROTRAS + $RRET_GAN;
//    $IMPUESTO_HABER = $TOTAL_DIF + ( $TOTAL_IVA + $RRETENCIONES + $RRET_IVA + $ROTRAS + $RRET_GAN- $TOTAL_DIF );
      $IMPUESTO_HABER = $TOTAL_IVA + $RRETENCIONES + $RRET_IVA + $ROTRAS + $RRET_GAN - $TOTAL_DIF;

      $TOTAL_DIF = ( $CTOTAL_IVA + $CRET_IVA + $CRETENCIONES + $COTRAS );
      $TOTAL_DIF += ( $CORET_IVA + $CORETENCIONES + $COOTRAS + $CORET_GAN );
      $TOTAL_DIF += ( $PRET_IVA + $PRETENCIONES + $POTRAS + $PRET_GAN );
      $IMPUESTO_HABER = $TOTAL_DIF;


      if( $IMPUESTO_DEBE != $IMPUESTO_HABER ) $cerrado  = 1;
      else $cerrado  = 3;
      $concepto = "Impuestos " . $meses[$Month-1] . "/" . $Year;
      $sql = sprintf( "insert into asientos(`Id`,`fecha`,`asiento`,`concepto`,`debe`,`haber`,`cliente`,`estado`,`empresa`,`observaciones`)" .
                      " VALUES(0,'%s','%s','%s','%s','%s','%s','%s','%s','%s')", $fecha, $asiento, $concepto, $IMPUESTO_DEBE, $IMPUESTO_HABER, 1, $cerrado, 1, ''); 
      $result = $conn->query($sql);
       mysql_free_result( $result );
 */
//      ++$asiento;
//      $movimiento = "1";
//   }

  $sql = "COMMIT";
  $result = $conn->query($sql);
   mysql_free_result( $result );

   mysqli_close($conn);
   echo "{\"status\":\"Ok\" }";
}
?>        

