var tabla;
var nronc;
var nroncc;
var nroncne;
var nronccne;
var iddetalle_cobro2;
//declaramos variables necesarias para trabajar con las Ventas y sus detalles


//funcion que se ejecuta al inicio
function init() {
  mostrarform(false, false);
  listar();
}

function actualizar() {
  location.reload();
}


function actualizar() {
  location.reload();
}

//funcion limpiar
function limpiar() {
  $("#formulario").data("bootstrapValidator").resetForm(true);
  
  //obtenemos la fecha actual
  var now = new Date();
  var today = new Date();
  var dd = ("0" + now.getDate()).slice(-2);
  var mm = ("0" + (now.getMonth() + 1)).slice(-2);
  var yyyy = now.getFullYear();
  var today = yyyy + "-" + mm + "-" + dd;
  //$(fecha_hora).val(today);


}

//funcion mostrar formulario
function mostrarform(flag, bu) {
  limpiar();
  if (flag) {
    $("#listadoregistros").hide();
    $("#formularioregistros").show();
    $("#formularioregistros1").show();
    $("#btnagregar").hide();
   } else {
    $("#listadoregistros").show();
    $("#formularioregistros").hide();
    $("#formularioregistros1").hide();
    $("#btnagregar").hide();
  }
}


//cancelar form
function cancelarform() {
  limpiar();
  mostrarform(false, false);
}

//funcion listar
function listar() {
  //$('#tbllistado').DataTable().destroy();
  //$('#tbllistado').DataTable().fnResetAllFilters();
  tabla = $("#tbllistado")
    .dataTable({
      aProcessing: true, //activamos el procedimiento del datatable
      aServerSide: true, //paginacion y filrado realizados por el server
      dom: "Bfrtip", //definimos los elementos del control de la tabla
      buttons: ["copyHtml5", "excelHtml5", "csvHtml5", "pdf"],
      /*
      columnDefs: [
        //Oculto La columna por donde ordeno
        {
          targets: [12],
          visible: false,
          searchable: false,
        },
      ],
      */
      ajax: {
        url: "controladores/pagoclienteControlador.php?op=listarnotacreditovendedoresv",
        type: "get",
        dataType: "json",
        error: function (e) {
          console.log(e.responseText);
        },
      },
      /*
      drawCallback: function () {
        //alert("La tabla se está recargando");
        var api = this.api();
        //	var tactual	= api.column(3, {page:'current'}).data().sum();
        var total = api.column(9, { page: "current" }).data().sum();
        var total1 = api.column(10, { page: "current" }).data().sum();
        //	tactual		= number_format(tactual*1,2);
        total = number_format(total * 1, 2);
        total1 = number_format(total1 * 1, 2);

        // $(api.column(4).footer()).html('Total Actual:');
		//	$(api.column(5).footer()).html(tactual); 

        $(api.column(7).footer()).html("Total:");
        $(api.column(9).footer()).html(
          '<div align="Right">' + total + "</div>"
        );
        $(api.column(10).footer()).html(
          '<div align="Right">' + total1 + "</div>"
        );
      },
      */
      bDestroy: true,
      iDisplayLength: -1, //paginacion
      order: [[0, "desc"]], //ordenar (columna, orden)
    })
    .DataTable();
  //tabla.column(8).visible(8);
  //tabla.dataTable();
  //table.;
  //	$('#tbllistado').DataTable().ajax.reload();
}

//funcion para procesar pago
function procesarp(iddetalle_cobro) {
  
  solouno = 0;
  swal({
    title: "¿Está seguro de que desea validar esta Nota de Crédito?",
    text: "",
    icon: "https://img.icons8.com/?size=100&id=kc5OYLzDFTvJ&format=png&color=000000", // URL del icono de signo de interrogación

    buttons: {
      cancel: {
        text: "No, cancelar",
        value: null,
        visible: true,
        className: "btn-secondary",
        closeModal: true,
      },
      confirm: {
        text: "Sí, validar",
        value: true,
        visible: true,
        className: "btn-success",
        closeModal: true,
      },
    },
    dangerMode: true,
  }).then((value) => {
    if (value) {
      if (solouno == 0) {
        $.ajax({
          url: "controladores/pagoclienteControlador.php?op=procesarncv",
          type: "POST",
          data: {
            iddetalle_cobro: iddetalle_cobro,
            
          },
          success: function (response) {
            console.log("Respuesta del servidor:", response);
            swal(
              "Nota de Crédito",
              "Ha sido validada.",
              "success"
            );
            tabla.ajax.reload();
          },
          error: function (xhr, status, error) {
            console.log("Error:", error);
          },
        });
      }
    } else {
      swal("Cancelado", "La Nota de Crédito no ha sido validada.", "info");
    }
  });
}

//funcion para procesar pago
function procesarpq(iddetalle_cobro) {
  
  solouno = 0;
  swal({
    title:
      "¿Está seguro de que desea quitar el estado de validado a esta Nota de Crédito?",
    text: "",
    icon: "https://img.icons8.com/?size=100&id=kc5OYLzDFTvJ&format=png&color=000000", // URL del icono de signo de interrogación

    buttons: {
      cancel: {
        text: "No",
        value: null,
        visible: true,
        className: "btn-secondary",
        closeModal: true,
      },
      confirm: {
        text: "Sí",
        value: true,
        visible: true,
        className: "btn-success",
        closeModal: true,
      },
    },
    dangerMode: true,
  }).then((value) => {
    if (value) {
      if (solouno == 0) {
        $.ajax({
          url: "controladores/pagoclienteControlador.php?op=procesarncvno",
          type: "POST",
          data: {
            iddetalle_cobro: iddetalle_cobro,
           
          },
          success: function (response) {
            console.log("Respuesta del servidor:", response);
            swal(
              "Nota de Crédito",
              "El estado de validado ha sido retirado.",
              "success"
            );
            tabla.ajax.reload();
          },
          error: function (xhr, status, error) {
            console.log("Error:", error);
          },
        });
      }
    } else {
      swal(
        "Cancelado",
        "No se le quito el estado de validado a la Nota de Crédito.",
        "info"
      );
    }
  });
}

//funcion para procesar pago
function anularp(iddetalle_cobro) {
  
  solouno = 0;
  swal({
    title:
      "¿Está seguro que NO desea validar a esta Nota de Crédito?",
    text: "",
    icon: "https://img.icons8.com/?size=100&id=kc5OYLzDFTvJ&format=png&color=000000", // URL del icono de signo de interrogación

    buttons: {
      cancel: {
        text: "No",
        value: null,
        visible: true,
        className: "btn-secondary",
        closeModal: true,
      },
      confirm: {
        text: "Sí",
        value: true,
        visible: true,
        className: "btn-success",
        closeModal: true,
      },
    },
    dangerMode: true,
  }).then((value) => {
    if (value) {
      if (solouno == 0) {
        $.ajax({
          url: "controladores/pagoclienteControlador.php?op=anularnc",
          type: "POST",
          data: {
            iddetalle_cobro: iddetalle_cobro,
           
          },
          success: function (response) {
            console.log("Respuesta del servidor:", response);
            swal(
              "Nota de Crédito",
              "El estado de Pendite ha sido retirado por no Procede.",
              "success"
            );
            tabla.ajax.reload();
          },
          error: function (xhr, status, error) {
            console.log("Error:", error);
          },
        });
      }
    } else {
      swal(
        "Cancelado",
        "No se le quito el estado de Pendiente a la Nota de Crédito.",
        "info"
      );
    }
  });
}

//funcion para procesar pago
function procesarpv(iddetalle_cobro) {
  
  solouno = 0;
  swal({
    title: "¿Está seguro de que ya proceso esta Nota de Crédito?",
    text: "",
    icon: "https://img.icons8.com/?size=100&id=kc5OYLzDFTvJ&format=png&color=000000", // URL del icono de signo de interrogación

    buttons: {
      cancel: {
        text: "No",
        value: null,
        visible: true,
        className: "btn-secondary",
        closeModal: true,
      },
      confirm: {
        text: "Sí",
        value: true,
        visible: true,
        className: "btn-success",
        closeModal: true,
      },
    },
    dangerMode: true,
  }).then((value) => {
    if (value) {
      if (solouno == 0) {
        $.ajax({
          url: "controladores/pagoclienteControlador.php?op=procesarncvv",
          type: "POST",
          data: {
            iddetalle_cobro: iddetalle_cobro,
            
          },
          success: function (response) {
            console.log("Respuesta del servidor:", response);
            swal(
              "Nota de Crédito",
              "Ha sido cambiado el estado de 'Validada' a 'Procesada'.",
              "success"
            );
            tabla.ajax.reload();
          },
          error: function (xhr, status, error) {
            console.log("Error:", error);
          },
        });
      }
    } else {
      swal("Cancelado", "La Nota de Crédito no ha sido procesada.", "info");
    }
  });
}

//funcion para procesar pago
function procesarpqv(iddetalle_cobro) {
  
  solouno = 0;
  swal({
    title:
      "¿Está seguro de que desea quitar el estado de Procesada a esta Nota de Crédito?",
    text: "",
    icon: "https://img.icons8.com/?size=100&id=kc5OYLzDFTvJ&format=png&color=000000", // URL del icono de signo de interrogación

    buttons: {
      cancel: {
        text: "No",
        value: null,
        visible: true,
        className: "btn-secondary",
        closeModal: true,
      },
      confirm: {
        text: "Sí",
        value: true,
        visible: true,
        className: "btn-success",
        closeModal: true,
      },
    },
    dangerMode: true,
  }).then((value) => {
    if (value) {
      if (solouno == 0) {
        $.ajax({
          url: "controladores/pagoclienteControlador.php?op=procesarncvnov",
          type: "POST",
          data: {
            iddetalle_cobro: iddetalle_cobro,
           
          },
          success: function (response) {
            console.log("Respuesta del servidor:", response);
            swal(
              "Nota de Crédito",
              "El estado de Procesada ha sido retirado.",
              "success"
            );
            tabla.ajax.reload();
          },
          error: function (xhr, status, error) {
            console.log("Error:", error);
          },
        });
      }
    } else {
      swal(
        "Cancelado",
        "No se le quito el estado de Procesada a la Nota de Crédito.",
        "info"
      );
    }
  });
}

async function procesarnc( 
  idcliente,
  idusuario,
  idvendedor,
  idservicio,
  idventa,
  tipo_comprobante,
  fecha_hora,
  total_venta,
  total_ventad,
  tasa_dollar,
  idclientedespacho,
  observacion,
  idarticulo,
  idalmacen,
  cantidad,
  precio_venta,
  precio_ventad,
  nrolote,
  porcentaje,
  subtotald,
  iddetalle_cobro,
  tiponotacredito,
  totalncd
) {
  console.log(
    'idcliente: ', idcliente,
    'idusuario: ', idusuario,
    'idvendedor: ', idvendedor,
    'idservicio: ', idservicio,
    'idventa: ', idventa,
    'tipo_comprobante: ', tipo_comprobante,
    'fecha_hora: ', fecha_hora,
    'total_venta: ', total_venta,
    'total_ventad: ', total_ventad,
    'tasa_dollar: ', tasa_dollar,
    'idclientedespacho: ', idclientedespacho,
    'observacion: ', observacion,
    'idarticulo: ', idarticulo,
    'idalmacen: ', idalmacen,
    'cantidad: ', cantidad,
    'precio_venta: ', precio_venta,
    'precio_ventad: ', precio_ventad,
    'nrolote: ', nrolote,
    'porcentaje: ', porcentaje,
    'subtotald: ', subtotald,
    'iddetalle_cobro: ',iddetalle_cobro, 
    'tiponotacredito: ',tiponotacredito,
    'totalncd: ',totalncd
  );

  // Llamada AJAX con await para esperar la respuesta
  // Para obtener los numero de la nota de credito
  let idempresa_venta = 1;
  let iddetalle_cobro1 = iddetalle_cobro;
  let data1 = await obtenerNumerosNC(idempresa_venta);
  let palabra = 'DEVOLUCI'
  let procedernc = tiponotacredito.includes(palabra) ? false : true;
  console.log('procedernc: ',procedernc);


  // iddetalle_cobro2 variable global
  iddetalle_cobro2 = iddetalle_cobro;
  if(procedernc){
    if (data1) {
      let nronc = data1.nronotacredito;
      let nroncc = data1.nrocontrolnotacredito;
      let nroncne = data1.nronotacreditone;
      let nronccne = data1.nrocontrolnotacreditone;
  
      console.log(
        'nronc: ', nronc,
        'nroncc: ', nroncc,
        'nroncne: ', nroncne,
        'nronccne: ', nronccne
      );
      // Continúa con el resto del código 
      // Definimos la variables que vamos a pasar como parametros
      
      // Contenedor donde agregarás los nuevos elementos input (puede ser un div, form, etc.)
      var container = document.getElementById("controlparametronotadecredito-container");
  
      // Limpia el contenedor por si tiene elementos anteriores
      container.innerHTML = "";
  
      // Crea los elementos input dinámicamente y asígnales los valores
      
      // Crea un nuevo elemento input
      //$_POST["idarticulo"],$_POST["idalmacen"],$_POST["cantidad"],$_POST["precio_venta"],$_POST["precio_ventad"],$_POST["nrolote"],$_POST["porcentaje"],$_POST["subtotald"]
      let input1 = document.createElement("input");
      let input2 = document.createElement("input");
      let input3 = document.createElement("input");
      let input4 = document.createElement("input");
      let input5 = document.createElement("input");
      let input6 = document.createElement("input");
      let input7 = document.createElement("input");
      let input8 = document.createElement("input");
  
      // Configura el input
      input1.type = "hidden"; // Cambia el tipo si es necesario
      input1.name = "idarticulo[]";
      input1.value = idarticulo;
  
      input2.type = "hidden"; // Cambia el tipo si es necesario
      input2.name = "idalmacen[]";
      input2.value = 0;
  
      input3.type = "hidden"; // Cambia el tipo si es necesario
      input3.name = "cantidad[]";
      input3.value = cantidad;
  
      input4.type = "hidden"; // Cambia el tipo si es necesario
      input4.name = "precio_venta[]";
      input4.value = precio_venta;
  
      input5.type = "hidden"; // Cambia el tipo si es necesario
      input5.name = "precio_ventad[]";
      input5.value = precio_ventad;
  
      input6.type = "hidden"; // Cambia el tipo si es necesario
      input6.name = "nrolote[]";
      input6.value = nrolote;
  
      input7.type = "hidden"; // Cambia el tipo si es necesario
      input7.name = "porcentaje[]";
      input7.value = 0;
  
      input8.type = "hidden"; // Cambia el tipo si es necesario
      input8.name = "subtotald[]";
      input8.value = subtotald;
  
      // Agrega el input al contenedor
      container.appendChild(input1);
      container.appendChild(input2);
      container.appendChild(input3);
      container.appendChild(input4);
      container.appendChild(input5);
      container.appendChild(input6);
      container.appendChild(input7);
      container.appendChild(input8);
     
  
      var idarticulo1 = Array.from(
        document.getElementsByName("idarticulo[]")
      ).map((input) => input1.value);
  
      var idalmacen1 = Array.from(
        document.getElementsByName("idalmacen[]")
      ).map((input) => input2.value);
  
      var cantidad1 = Array.from(
        document.getElementsByName("cantidad[]")
      ).map((input) => input3.value);
  
      var precio_venta1 = Array.from(
        document.getElementsByName("precio_venta[]")
      ).map((input) => input4.value);
  
      var precio_ventad1 = Array.from(
        document.getElementsByName("precio_ventad[]")
      ).map((input) => input5.value);
  
      var nrolote1= Array.from(
        document.getElementsByName("nrolote[]")
      ).map((input) => input6.value);
  
      var porcentaje1 = Array.from(
        document.getElementsByName("porcentaje[]")
      ).map((input) => input7.value);
  
      var subtotald1 = Array.from(
        document.getElementsByName("subtotald[]")
      ).map((input) => input8.value);
  
      //Ahora vamos a proceder a procesar la nota de credito
      //Dependiendo del tipo de documento vamos a llamar al proceso del modulo de nota de credito
      // $idcliente,
      // $idusuario,
      // $idvendedor,
      // $idservicio,
      // $idventa,
      // $tipo_comprobante,
      // $num_notacredito,
      // $numcontrol_notacredito,
      // $fecha_hora,
      // $total_venta,
      // $total_ventad,
      // $tasa_dollar,
      // $idclientedespacho,
      // $observacion,
      // $_POST["idarticulo"],
      // $_POST["idalmacen"],
      // $_POST["cantidad"],
      // $_POST["precio_venta"],
      // $_POST["precio_ventad"],
      // $_POST["nrolote"],
      // $_POST["porcentaje"],
      // $_POST["subtotald"]
      /**/
      swal({
        title:
          "¿Está seguro de procesar esta Nota de Crédito?",
        text: "",
        icon: "https://img.icons8.com/?size=100&id=kc5OYLzDFTvJ&format=png&color=000000", // URL del icono de signo de interrogación
    
        buttons: {
          cancel: {
            text: "No",
            value: null,
            visible: true,
            className: "btn-secondary",
            closeModal: true,
          },
          confirm: {
            text: "Sí",
            value: true,
            visible: true,
            className: "btn-success",
            closeModal: true,
          },
        },
        dangerMode: true,
      }).then((value) => {
        if (value) {
          // Definir la URL según el tipo de comprobante
          let urlNotaCredito =
          tipo_comprobante === "Factura"
            ? "controladores/notacreditoControlador.php?op=guardaryeditar"
            : "controladores/notacreditoControlador.php?op=guardaryeditarne";
  
          // Definir numero de nota de credito y control según el tipo de comprobante
          let num_notacredito = tipo_comprobante === "Factura" ? nronc : nroncne;
          let numcontrol_notacredito = tipo_comprobante === "Factura" ? nroncc : nronccne;
          
          let tipo_comprobantef = "NotaCredito";
          
          //Se procesa la nota de credito
          //INSERT INTO 
          //notacredito (
          // idcliente,
          // idusuario,
          // idvendedor,
          // idservicio,
          // idventa,
          // tipo_comprobante,
          // num_notacredito,
          // numcontrol_notacredito,
          // fecha_hora,
          // total_credito,
          // total_creditod,
          // tasa_dollar,
          // estado,
          // idclientedespacho,
          // observacion) 
          //VALUES ('128','1','9','25','202','NotaCredito','39','39','2025-03-31','694.4','10','69.44','Pendiente','128','prueba')

          //INSERT INTO 
          // detalle_notacredito (
          // idnotacredito,
          // idventa,
          // idarticulo,
          // idalmacen,
          // cantidad,
          // precio,
          // preciod,
          // descuento,
          // impuestoart18,
          // porcentaje,
          // numerolote) 
          //VALUES ('48','202','202','0','1','35414.4','510','10','0','0','N/A')

          $.ajax({
            url: urlNotaCredito,
            type: "POST",
            data: {
              idcliente: idcliente,
              idusuario: idusuario,
              idvendedor: idvendedor,
              idservicio: idservicio,
              idventa: idventa,
              tipo_comprobante: tipo_comprobantef,
              num_notacredito:num_notacredito,
              numcontrol_notacredito:numcontrol_notacredito,
              fecha_hora: fecha_hora,
              total_venta: total_venta,
              total_ventad: total_ventad,
              tasa_dollar: tasa_dollar,
              idclientedespacho: idclientedespacho,
              observacion: observacion,
              idarticulo: idarticulo1,
              idalmacen: idalmacen1,
              cantidad: cantidad1,
              precio_venta:precio_venta1,
              precio_ventad: precio_ventad1,
              nrolote: nrolote1,
              porcentaje: porcentaje1,
              subtotald: subtotald1
            },
            success: function (response) {
              console.log("Respuesta del servidor:", response);
              console.log("iddetalle_cobro2: ",iddetalle_cobro);
              /*
              swal(
                "Nota de Crédito",
                "Se proceso y el estado ha sido cambiado a procesado.",
                "success"
              );
              tabla.ajax.reload();
              */
             //Se cambia el estado de la Nota de crédito a procesada
             $.ajax({
              url: "controladores/pagoclienteControlador.php?op=procesarncvv",
              type: "POST",
              data: {
                iddetalle_cobro: iddetalle_cobro,
                
              },
              success: function (response) {
                console.log("Respuesta del servidor:", response);
                swal(
                  "Nota de Crédito",
                  "Ha sido Procesada y el estado de 'Validada' cambiado a 'Procesada'.",
                  "success"
                );
                tabla.ajax.reload();
              },
              error: function (xhr, status, error) {
                console.log("Error:", error);
              },
            });
            },
            error: function (xhr, status, error) {
              console.log("Error:", error);
            },
          });
  
          /*
          if(tipo_comprobante=='Factura'){
            $.ajax({
              url: "controladores/notacreditoControlador.php?op=guardaryeditar",
              type: "POST",
              data: {
                idcliente: idcliente,
                idusuario: idusuario,
                idvendedor: idvendedor,
                idservicio: idservicio,
                idventa: idventa,
                tipo_comprobante: tipo_comprobante,
                num_notacredito:nronc,
                numcontrol_notacredito:nroncc,
                fecha_hora: fecha_hora,
                total_venta: total_venta,
                total_ventad: total_ventad,
                tasa_dollar: tasa_dollar,
                idclientedespacho: idclientedespacho,
                observacion: observacion,
                idarticulo: idarticulo1,
                idalmacen: idalmacen1,
                cantidad: cantidad1,
                precio_venta:precio_venta1,
                precio_ventad: precio_ventad1,
                nrolote: nrolote1,
                porcentaje: porcentaje1,
                subtotald: subtotald1
               
              },
              success: function (response) {
                console.log("Respuesta del servidor:", response);
                swal(
                  "Nota de Crédito",
                  "Se proceso y el estado ha sido cambiado a procesado.",
                  "success"
                );
                //tabla.ajax.reload();
              },
              error: function (xhr, status, error) {
                console.log("Error:", error);
              },
            });
            $.ajax({
              url: "controladores/pagoclienteControlador.php?op=procesarncvnov",
              type: "POST",
              data: {
                iddetalle_cobro: iddetalle_cobro,
               
              },
              success: function (response) {
                console.log("Respuesta del servidor:", response);
                swal(
                  "Nota de Crédito",
                  "El estado de Procesada ha sido retirado.",
                  "success"
                );
                tabla.ajax.reload();
              },
              error: function (xhr, status, error) {
                console.log("Error:", error);
              },
            });
          */
          /*  
          }else{
          */
            /*
            $.ajax({
              url: "controladores/notacreditoControlador.php?op=guardaryeditarne",
              type: "POST",
              data: {
                idcliente: idcliente,
                idusuario: idusuario,
                idvendedor: idvendedor,
                idservicio: idservicio,
                idventa: idventa,
                tipo_comprobante: tipo_comprobante,
                num_notacredito:nroncne,
                numcontrol_notacredito:nronccne,
                fecha_hora: fecha_hora,
                total_venta: total_venta,
                total_ventad: total_ventad,
                tasa_dollar: tasa_dollar,
                idclientedespacho: idclientedespacho,
                observacion: observacion,
                idarticulo: idarticulo1,
                idalmacen: idalmacen1,
                cantidad: cantidad1,
                precio_venta:precio_venta1,
                precio_ventad: precio_ventad1,
                nrolote: nrolote1,
                porcentaje: porcentaje1,
                subtotald: subtotald1
              },
              success: function (response) {
                console.log("Respuesta del servidor:", response);
                swal(
                  "Nota de Crédito",
                  "Se proceso y el estado ha sido cambiado a procesado.",
                  "success"
                );
                tabla.ajax.reload();
              },
              error: function (xhr, status, error) {
                console.log("Error:", error);
              },
            });
            $.ajax({
              url: "controladores/pagoclienteControlador.php?op=procesarncvnov",
              type: "POST",
              data: {
                iddetalle_cobro: iddetalle_cobro,
               
              },
              success: function (response) {
                console.log("Respuesta del servidor:", response);
                swal(
                  "Nota de Crédito",
                  "El estado de Procesada ha sido retirado.",
                  "success"
                );
                tabla.ajax.reload();
              },
              error: function (xhr, status, error) {
                console.log("Error:", error);
              },
            });
            */
           /*
            $.ajax({
              url: "controladores/notacreditoControlador.php?op=guardaryeditarne",
              type: "POST",
              data: {
                idcliente: idcliente,
                idusuario: idusuario,
                idvendedor: idvendedor,
                idservicio: idservicio,
                idventa: idventa,
                tipo_comprobante: tipo_comprobante,
                num_notacredito: nronc,
                numcontrol_notacredito: nroncc,
                fecha_hora: fecha_hora,
                total_venta: total_venta,
                total_ventad: total_ventad,
                tasa_dollar: tasa_dollar,
                idclientedespacho: idclientedespacho,
                observacion: observacion,
                idarticulo: idarticulo1,
                idalmacen: idalmacen1,
                cantidad: cantidad1,
                precio_venta: precio_venta1,
                precio_ventad: precio_ventad1,
                nrolote: nrolote1,
                porcentaje: porcentaje1,
                subtotald: subtotald1
              }
            })
            .done(function (response) {
              console.log("Respuesta del primer AJAX:", response);
              swal("Nota de Crédito", "Se procesó y el estado ha sido cambiado a procesado.", "success");
            
              if (!iddetalle_cobro1) {
                console.error("Error: iddetalle_cobro no tiene un valor válido.");
                return;
              }
            
              return $.ajax({
                url: "controladores/pagoclienteControlador.php?op=procesarncvnov",
                type: "POST",
                data: { iddetalle_cobro: iddetalle_cobro1 }
              });
            })
            .done(function (response) {
              console.log("Respuesta del segundo AJAX:", response);
              swal("Nota de Crédito", "El estado de Procesada ha sido retirado.", "success");
              tabla.ajax.reload();
            })
            .fail(function (xhr, status, error) {
              console.log("Error en alguna de las peticiones AJAX:", error);
            });
            
          }
         
          procesarNotaCredito(tipo_comprobante,nronc,nroncc,nroncne,nronccne); 
          */
        } else {
          swal(
            "Cancelado",
            "No se proceso la Nota de Crédito.",
            "info"
          );
        }
      });
  
     
      
  
    } else {
      console.error("Error al obtener los números de nota de crédito.");
    }
  }else{
    swal(
      "Nota de Crédito",
      "Las Notas de Crédito por devolución de mercancía no pueden procesarse directamente. Deben gestionarse a través del módulo de Notas de Crédito.",
      "warning"
    );
  }
  
}                         

// Función que devuelve una promesa con la respuesta AJAX
function obtenerNumerosNC(idempresa_venta) {
  return new Promise((resolve, reject) => {
    $.post(
      "controladores/empresaControlador.php?op=buscarNroFacturaControl",
      { idempresa_venta: idempresa_venta },
      function (data, status) {
        try {
          let data1 = JSON.parse(data);
          resolve(data1);
        } catch (error) {
          reject(error);
        }
      }
    ).fail((jqXHR, textStatus, errorThrown) => {
      reject(errorThrown);
    });
  });
}

async function procesarNotaCredito(tipo_comprobante,nronc,nroncc,nroncne,nronccne) {
  // Definir la URL según el tipo de comprobante
  let urlNotaCredito =
    tipo_comprobante === "Factura"
      ? "controladores/notacreditoControlador.php?op=guardaryeditar"
      : "controladores/notacreditoControlador.php?op=guardaryeditarne";

  // Datos comunes para ambas solicitudes
  let datosNotaCredito = {
    idcliente: idcliente,
    idusuario: idusuario,
    idvendedor: idvendedor,
    idservicio: idservicio,
    idventa: idventa,
    tipo_comprobante: tipo_comprobante,
    num_notacredito: tipo_comprobante === "Factura" ? nronc : nroncne,
    numcontrol_notacredito: tipo_comprobante === "Factura" ? nroncc : nronccne,
    fecha_hora: fecha_hora,
    total_venta: total_venta,
    total_ventad: total_ventad,
    tasa_dollar: tasa_dollar,
    idclientedespacho: idclientedespacho,
    observacion: observacion,
    idarticulo: idarticulo1,
    idalmacen: idalmacen1,
    cantidad: cantidad1,
    precio_venta: precio_venta1,
    precio_ventad: precio_ventad1,
    nrolote: nrolote1,
    porcentaje: porcentaje1,
    subtotald: subtotald1,
  };

  try {
    // 🔹 Ejecutar la primera petición AJAX
    let responseNotaCredito = await fetch(urlNotaCredito, {
      method: "POST",
      headers: { "Content-Type": "application/json" },
      body: JSON.stringify(datosNotaCredito),
    });

    let resultNotaCredito = await responseNotaCredito.json();
    console.log("Respuesta del servidor (Nota Crédito):", resultNotaCredito);

    // Mostrar alerta de éxito
    swal(
      "Nota de Crédito",
      "Se procesó y el estado ha sido cambiado a procesado.",
      "success"
    );

    // 🔹 Verificar si iddetalle_cobro está disponible antes de hacer la segunda petición
    if (!iddetalle_cobro) {
      console.error("Error: iddetalle_cobro no está definido.");
      return;
    }

    // 🔹 Ejecutar la segunda petición AJAX después de que la primera termine
    let responsePagoCliente = await fetch(
      "controladores/pagoclienteControlador.php?op=procesarncvnov",
      {
        method: "POST",
        headers: { "Content-Type": "application/json" },
        body: JSON.stringify({ iddetalle_cobro: iddetalle_cobro }),
      }
    );

    let resultPagoCliente = await responsePagoCliente.json();
    console.log("Respuesta del servidor (Pago Cliente):", resultPagoCliente);

    // Mostrar alerta de éxito
    swal("Nota de Crédito", "El estado de Procesada ha sido retirado.", "success");

    // Recargar tabla
    tabla.ajax.reload();
  } catch (error) {
    console.error("Error en la solicitud:", error);
  }
}











init();
