<!DOCTYPE html>
<html>
<head>
    <title>Registros Editables</title>
    <style>
	
        table {
            border-collapse: collapse;
            width: 100%;
        }

        th, td {
            padding: 8px;
            text-align: left;
            border-bottom: 1px solid #ddd;
        }

        th {
            background-color: #f2f2f2;
        }

        .editable {
            position: relative;
			background-color: #99CCCC;
            border: 1px solid #ccc;
            padding: 3px;
        }

        .editable input {
            width: 100%;
            background-color: #f9f9f9;
            border: 1px solid #ccc;
            padding: 3px;
        }

        /* Estilo para sombrear el texto editable */
        .editable.editing {
            box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
        }
	      td {
            padding: 5px;
        }

        th {
            background-color: #f2f2f2;
            padding: 5px;
        }

        input {
            width: 50%;
            background-color: #99CAABB;
            border: 2px solid #ccc;
            padding: 3px;
        }
        td {
            padding: 5px;
        }

        input {
            width: 50%;
        }
		input[type="submit"] {
        background-color: #ff9900; /* Cambia el color de fondo a tu elección */
        color: white;
        border: none;
        padding: 5px 10px;
        cursor: pointer;
    }

    input[type="submit"]:hover {
        background-color: #ffcc00; /* Cambia el color de fondo al pasar el mouse */
    }
	
    </style>
	
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
	
    <script>
	
	  function openPopup(url) {
            var width = 800;
            var height = 600;
            var left = (window.innerWidth - width) / 2;
            var top = (window.innerHeight - height) / 2;

            var popupOptions = 'width=' + width + ',height=' + height + ',left=' + left + ',top=' + top;
            var newWindow = window.open(url, '_blank', popupOptions);
            newWindow.focus();
        }
	
        $(document).ready(function() {
            $("td.editable").on("click", function() {
                var originalContent = $(this).text();
                $(this).html("<input type='text' value='" + originalContent + "' />");
                $(this).children().first().focus();

                $(this).children().first().keypress(function(e) {
                    if (e.which == 13) {
                        var newContent = $(this).val();
                        var column = $(this).parent().data("column");
                        var id = $(this).parent().data("id");

                        $.post("update_facturar.php", {
                            newContent: newContent,
                            column: column,
                            id: id
                        }, function(data) {
                            $("td.editable[data-id='" + id + "'][data-column='" + column + "']").text(newContent);
                            if (column === "item_quantity" || column === "item_price") {
                                updateImporte(id);
                            }
                        });
                    }
                });

                $(this).children().first().blur(function() {
                    $(this).parent().text(originalContent);
                });
            });

            function updateImporte(id) {
                var itemQuantity = parseFloat($("td[data-id='" + id + "'][data-column='item_quantity']").text());
                var itemPrice = parseFloat($("td[data-id='" + id + "'][data-column='item_price']").text());
                var importe = itemQuantity * itemPrice;
                $("td[data-id='" + id + "'][data-column='importe']").text(importe.toFixed(2));
                
                var column = "item_total";
                var newContent = importe.toFixed(2);
                $.post("update_facturar.php", {
                    newContent: newContent,
                    column: column,
                    id: id
                }, function(data) {
                    $("td[data-id='" + id + "'][data-column='" + column + "']").text(newContent);
                    updateSubtotal();
                });
            }

            function updateSubtotal() {
                var subtotal = 0;
                $("td[data-column='importe']").each(function() {
                    subtotal += parseFloat($(this).text());
                });
                $("#subtotal").text(subtotal.toFixed(2));
            }
        });
		
		
    </script>
	
</head>
<body>
    <p>
      <?php
    require_once "conexion.php";
	$sumaCantidad = 0;
$sumaPrecio = 0;
$sumaImporte = 0;
$sumaIva = 0;
$customer_id = 0;
    if (isset($_GET["condicion"])) {
        $condicion = $_GET["condicion"];
		$customer_id = $_GET["customer_id"];
    } else {
        $condicion = "1"; // Condición por defecto si no se ha enviado nada por GET
    }
 $sql = "SELECT si.*, pts.sell_price AS current_price FROM selling_item si
            LEFT JOIN product_to_store pts ON si.item_id = pts.product_id
			WHERE invoice_id = $condicion"; // Cambia "selling_item" y "product_to_store" según tus necesidades

    //$sql = "SELECT * FROM selling_item WHERE invoice_id = $condicion"; // Cambia "tabla" según tus necesidades
    $result = $conn->query($sql);
 
    if ($result->num_rows > 0) {
        echo "<table>";
		  echo "<thead>";
        echo "<tr>";
		echo "<th>Id Item</th>";
		echo "<th>cod Prod</th>";
        echo "<th>Nombre del articulo</th>";
		echo "<th>Cantidad</th>";
        echo "<th>Precio</th>";
        echo "<th>% IVA</th>";
		echo "<th>Imp. IVA</th>";
		echo "<th>Importe</th>";
		

		//echo "<th>Importe Act</th>";
        // Agrega más encabezados aquí si es necesario
        echo "</tr>";
        echo "</thead>";
        echo "<tbody>";
        while ($row = $result->fetch_assoc()) {
		
		$taxrate = get_the_taxrate($row['taxrate_id']);
            echo "<tr>";
			echo "<td data-column='item_name' data-id='" . $row["id"] . "'>" . $row["id"] . "</td>";
			echo "<td data-column='item_name' data-id='" . $row["id"] . "'>" . $row["item_id"] . "</td>";
			echo "<td data-column='item_name' data-id='" . $row["id"] . "'>" . $row["item_name"] . "</td>";
			
           // echo "<td class='editable' data-column='item_name' data-id='" . $row["id"] . "'>" . $row["item_name"] . "</td>";
		   echo "<td data-column='item_quantity' data-id='" . $row["id"] . "'>" . $row["item_quantity"] . "</td>";
		   
		  // echo "<td class='editable' data-column='item_quantity' data-id='" . $row["id"] . "'>" . $row["item_quantity"] . "</td>";
            echo "<td data-column='item_price' data-id='" . $row["id"] . "'>" . $row["item_price"] . "</td>";
			
			echo "<td>21%</td>";
        echo "<td data-column='iva' data-id='" . $row["id"] . "'>" . number_format((($row["item_quantity"] * $row["item_price"]) - (($row["item_quantity"] * $row["item_price"]) / 1.21)), 2, '.', ',') . "</td>";


            echo "<td data-column='importe' data-id='" . $row["id"] . "'>" . (($row["item_quantity"] * $row["item_price"]))*1.21 . "</td>";
			
            //echo "<td data-column='item_total' data-id='" . $row["id"] . "'>" . $row["item_total"] . "</td>";
			
			 // Sumar los valores de cada columna
        $sumaCantidad += $row["item_quantity"];
        $sumaPrecio += $row["item_price"];
        $sumaImporte += (($row["item_quantity"] * $row["item_price"]))*1.21;
		$sumaIva += (($row["item_quantity"] * $row["item_price"]) - (($row["item_quantity"] * $row["item_price"]))/1.21);
            // Agrega más columnas aquí si es necesario
            echo "</tr>";
        }
		echo "</tbody>";
        echo "<tfoot>";
        echo "<tr>";
        echo "<td class='result' colspan='3'></td>";
        echo "<td class='result' colspan='3'></td>";
		 echo "<tr>";
    echo "<td colspan='3'>Suma Total:</td>";
    echo "<td>$sumaCantidad</td>";
    echo "<td>" . number_format($sumaPrecio, 2, ',', '.') . "</td>";

    echo "<td></td>"; // Celda vacía para el % IVA
    echo "<td>" . number_format($sumaIva, 2, ',', '.') . "</td>";
    echo "<td>" . number_format($sumaImporte, 2, ',', '.') . "</td>";
    echo "</tr>";
		
        echo "</tr>";
        echo "</tfoot>";
        echo "</table>";
    } else {
        echo "No se encontraron registros.";
    }

    $conn->close();
    ?>
	

</body>
<!-- ... (código existente) ... -->

<body>
  
    

    <!-- Agrega un input para actualizar el subtotal instantáneamente -->
    <form method="post" action="">
        <input type="hidden" name="neto" value="<?php echo $sumaPrecio; ?>">
		<input type="hidden" name="iva" value="<?php echo $sumaIva; ?>">
		<input type="hidden" name="total" value="<?php echo $sumaImporte; ?>">
		<input type="hidden" name="condicion" value="<?php echo $condicion; ?>">
	
		
  
 	
	</p>
    <table width="100%" border="1" cellspacing="8" cellpadding="30">
      <tr>
        <th scope="col"> <label for="nuevo_subtotal">Nuevo Importe Total del comprobante:</label></th>
        <th scope="col"></th>
        <th scope="col"><div id="subtotal">0.00</div></th>
      </tr>
      <tr>
	  <td></td>
        <td></td>
        
        <td><input type="text" name="nuevo_subtotal" id="nuevo_subtotal" value= "" placeholder="Importe total"></td>
      </tr>
      <tr>
        <td><div class="form-group">
		<label for="customer_id" class="col-sm-3 control-label">
			<?php echo trans('label_customer'); ?>
			<i class="required">*</i>
		</label>
		<div class="col-sm-6">
			<div class="col-sm-14" class="input-group">
				<select id="customer_id" class="form-control" name="customer_id">
    <option value="<?php echo trans('text_select'); ?>"><?php echo trans('text_select'); ?></option>
    <?php foreach (get_customers(array('exclude' => 1)) as $the_customer) : ?>
        <option value="<?php echo $the_customer['customer_id']; ?>" <?php if ($the_customer['customer_id'] == $customer_id) echo "selected"; ?>>
            <?php echo $the_customer['customer_name']; ?>
        </option>
    <?php endforeach; ?>
</select>
			
			</div>
		</div>
	</div>
	</td>
	  <?php 
	   // Fetch invoice info
        $statement = db()->prepare("SELECT selling_info.*, selling_price.*, customers.customer_cuit, customer_iva FROM `selling_info` 
            LEFT JOIN `selling_price` ON (`selling_info`.`invoice_id` = `selling_price`.`invoice_id`) 
            LEFT JOIN `customers` ON (`selling_info`.`customer_id` = `customers`.`customer_id`) 
            WHERE `selling_info`.`invoice_id` = ?");
        $statement->execute(array($condicion));
        $invoice = $statement->fetch(PDO::FETCH_ASSOC); ?>
		
        <td><div class="form-group">
      <label for="customer_sex" class="col-sm-3 control-label">
        <?php echo sprintf(trans('Categoria IVA'), null); ?>
      </label>
      <div class="col-sm-7">
         <select  name="customer_iva" class="form-control" required>
          <option <?php echo $invoice['customer_iva']== 1 ? 'selected' : null; ?> value="1">
            <?php echo trans('Consumidor final'); ?>
          </option>
          <option <?php echo $invoice['customer_iva']== 2 ? 'selected' : null; ?> value="2">
            <?php echo trans('Responsable Inscripto'); ?>
          </option>
          <option <?php echo $invoice['customer_iva']== 3 ? 'selected' : null; ?> value="3">
            <?php echo trans('Responsable Monotributo'); ?>
          </option>
        </select>
      </div>
    </div></td>
        <td><input type="submit" value="Actualizar"></td>
      </tr>
	  </td>
        <td><div class="form-group">
      <label for="customer_cuit" class="col-sm-3 control-label">
	
		
        <?php echo sprintf(trans('CUIT o DNI'), null); ?>
      </label>
      <div class="col-sm-7">
       <input type="text" class="form-control" id="customer_cuit" value="<?php echo $invoice['customer_cuit'] ; ?>" name="customer_cuit">
      </div>
    </div></td>
        <td>
		 <div class="form-group">
      <label for="customer_sex" class="col-sm-3 control-label">
        <?php echo sprintf(trans('TIPO DE COMPROBANTE'), null); ?>
      </label>
      <div class="col-sm-7">
        <select id="tipo_comprobante" name="tipo_comprobante" class="form-control" required>
          <option value="1">
            <?php echo trans('FACTURA A'); ?>
          </option>
          <option value="6">
            <?php echo trans('FACTURA B'); ?>
          </option>
         
        </select>
      </div>
    </div>
	</td>
      </tr>
	  <td>
	  <div class="form-group">
      <label for="customer_sex" class="col-sm-3 control-label">
        <?php echo sprintf(trans('TIPO DE DOCUMENTO'), null); ?>
      </label>
      <div class="col-sm-7">
        <select id="tipo_documento" name="tipo_documento" class="form-control" required>
          <option value="96">
            <?php echo trans('DNI'); ?>
          </option>
          <option value="80">
            <?php echo trans('CUIT'); ?>
          </option>
		  <option value="99">
            <?php echo trans('Cons. Final'); ?>
          </option>
         
        </select>
      </div>
    </div></td>
      <td>  <div class="form-group">
      <label for="customer_concepto" class="col-sm-3 control-label">
        <?php echo sprintf(trans('Concepto'), null); ?>
      </label>
      <div class="col-sm-7">
        <select id="concepto" name="concepto" class="form-control" required>
          <option value="1">
            <?php echo trans('Productos'); ?>
          </option>
          <option value="2">
            <?php echo trans('Servicios'); ?>
          </option>
		  <option value="3">
            <?php echo trans('Productos y Servicios'); ?>
          </option>
         
        </select>
      </div>
    </div></td>
		</tr>
		 </tr>
	  </td>
        <td></td>
        <td></td>
      </tr>
	  <td></td>
      <td></td>
		</tr>
		<tr>
		  <td></td>
		  
      </tr>
	  <tr>
	  <td></td>
      <td></td>
		</tr>
		 </tr>
	  </td>
        <td></td>
        <td></td>
      </tr>
	  <td></td>
      <td></td>
		</tr>
    </table>
    <p>&nbsp;    </p>
</form>
	 <?php
include "conexion_a.php";


if (!empty($_POST)) {

   // $alert = "ATENCION! Debes completar el campo Importe Total";
    if (empty($_POST['condicion']) || empty($_POST['customer_cuit'])) {
	
	echo '<div class="alert alert-danger" role="alert">ATENCION! Debes completar el campo Importe Total</div>';
      
    } else {
        $condicion = $_POST['condicion'];
        $customer_cuit = $_POST['customer_cuit'];
		$concepto = $_POST['concepto'];
		$tipo_comprobante = $_POST['tipo_comprobante'];
		$tipo_documento = $_POST['tipo_documento'];
		
		//sell_price
		$neto = $_POST['neto'];
		$iva = $_POST['iva'];
		$total = $_POST['total'];
		 
		 echo number_format($iva, 2)  ;
            $sql_update = mysqli_query($conexion, "UPDATE selling_info SET customer_cuit = $customer_cuit, concepto = $concepto WHERE invoice_id = $condicion ");
			

            if ($sql_update) {
			date_default_timezone_set('America/Buenos_Aires');

include('afip/exceptionhandler.php');
include('afip/wsaa.class.php');
include('afip/wsfev1.class.php');


$wsaa = new WSAA();

// Compruebo fecha de exp y si la excede genero nuevo TA

$fecha_ahora = date("Y-m-d H-i-s");
$fecha_exp_TA = $wsaa->get_expiration();

if ($fecha_exp_TA < $fecha_ahora) {
if ($wsaa->generar_TA()) {
    echo 'Nuevo TA, válido hasta: '. $wsaa->get_expiration() .'<br>';
  } else {
  	echo 'Error al obtener TA';
  }
} else {
	 echo 'TA reutilizado, válido hasta: '. $wsaa->get_expiration() .'<br>';
}

//Conecto Wsfev1

$wsfev1 = new WSFEV1();

// Carga el archivo TA.xml
$wsfev1->openTA();

$ptovta = 1; //Punto de Venta SIN CEROS ADELANTE!!
$tipocbte = $tipo_comprobante; // Factura A: 1 --- Factura B: 6 ---- Factura C: 11

$regfe['CbteTipo']= $tipocbte;
$regfe['Concepto']= $concepto; //Productos: 1 ---- Servicios: 2 ---- Prod y Serv: 3
$regfe['DocTipo']= $tipo_documento; //80=CUIT -- 96 DNI --- 99 general cons final
$regfe['DocNro']= 30500010912;  //0 para consumidor final
$regfe['CbteFch']=date('Ymd'); 	// fecha emision de factura
$regfe['ImpNeto']= $neto;			// Imp Neto
$regfe['ImpTotConc']=0;			// no gravado
$regfe['ImpIVA']= number_format($iva, 2);				// IVA liquidado
$regfe['ImpTrib']=0;			// otros tributos
$regfe['ImpOpEx']=0;			// operacion exentas
$regfe['ImpTotal']= ($neto + iva);			// total de la factura. ImpNeto + ImpTotConc + ImpIVA + ImpTrib + ImpOpEx

if ($regfe['Concepto'] == "3" || $regfe['Concepto'] == "2" ) { // SI ES SERVICIO AGREGAMOS FECHAS

		$regfe['FchServDesde']=date("Ymd");	// solo concepto 2 o 3
		$regfe['FchServHasta']=date("Ymd");	// solo concepto 2 o 3
		$regfe['FchVtoPago']=date("Ymd");		// solo concepto 2 o 3
}

$regfe['MonId']='PES'; 			// Id de moneda 'PES'
$regfe['MonCotiz']=1;			// Cotizacion moneda.

// Comprobantes asociados (solo notas de crédito y débito):
$regfeasoc['Tipo'] = null; //tipo de comprobante asociado
$regfeasoc['PtoVta'] = 1;
$regfeasoc['Nro'] = 2;
//$regfeasoc['Cuit'] = 20306094905; // CUIT EMISOR DEL COMPROBANTE ASOCIADO
//$regfeasoc['CbteFch'] = "20190924";

// Detalle de otros tributos
$regfetrib['Id'] = 0; 		 // DEJAR EN 0 CUANDO NO SE ENVIAN OTRO TRIBUTOS
$regfetrib['Desc'] = '';
$regfetrib['BaseImp'] = 0;
$regfetrib['Alic'] = 0;
$regfetrib['Importe'] = 0;

// Detalle de iva --- REPETIR POR CADA ALICUOTA DE LA FACTURA
$regfeiva[0]['Id'] = 5;
$regfeiva[0]['BaseImp'] =  number_format($neto, 2);
$regfeiva[0]['Importe'] = number_format($iva, 2);

//adicionales factura de crédito electronica
$regfeadic['Id']   = 2101; // PARA NOTAS INFORMAR 22
$regfeadic['Valor'] = "123456789123";

//Pido ultimo numero autorizado
$nro = $wsfev1->FECompUltimoAutorizado($ptovta, $tipocbte);
if(!is_numeric($nro)) {
	echo "<br>Error al obtener el ultimo numero autorizado<br>";
	$nro=0;
	$nro1 = 0;
	echo "Code: ", $wsfev1->Code, "<br>";
	echo "Msg: ", $wsfev1->Msg, "<br>";
	echo "Obs: ", $wsfev1->ObsCode, "<br>";
	echo "Msg: ", $wsfev1->ObsMsg, "<br>";

} else {
	echo "<br>FECompUltimoAutorizado: $nro <br>"; // no es necesario
	$nro1 = $nro + 1;
	$cae = $wsfev1->FECAESolicitar($nro1, // ultimo numero de comprobante autorizado mas uno
                $ptovta,  // el punto de venta
                $regfe, // los datos a facturar
				$regfeasoc, // datos de comprobante asociado
				$regfetrib, // datos tributos
				$regfeiva, // array ivas
                $regfeadic // adicionales
             );
$caenum = $cae['cae'];
$caefvt = $cae['fecha_vencimiento'];
$numero = $nro+1;

}

	if ($caenum != "") {

$comprob = str_pad($tipocbte, 3, "0", STR_PAD_LEFT);
$punto =  str_pad($ptovta, 5, "0", STR_PAD_LEFT);

echo "Factura ".$punto." ".str_pad($numero, 8, "0", STR_PAD_LEFT);
echo "<br>";
echo "Cae: ", $caenum."  ";
echo "Fecha Vto: ", date( "d/m/Y", strtotime( $caefvt ) );

//aqui debo agregar el codigo para actualizar el comprobante como autorizado en AFIP





} else {

	echo "<br>Error al obtener CAE<br>";
	echo "Code: ", $wsfev1->Code, "<br>";
	echo "Msg: ", $wsfev1->Msg, "<br>";
	echo "Obs: ", $wsfev1->ObsCode, "<br>";
	echo "Msg: ", $wsfev1->ObsMsg, "<br>";
	echo "Obs2: ", $wsfev1->ObsCode2, "<br>";
	echo "Msg2: ", $wsfev1->ObsMsg2, "<br>";
}
			echo '<div class="alert alert-success" role="alert">Los precios y el Importe Total fue actualizado Correctamente '.$tipo_documento.'</div>' ;
            } else {
                echo '<div class="alert alert-danger" role="alert">Error al Actualizar los precios</div>';
            }
    }
}

?>

	
</body>
</html>

</html>
