Al crear las extenciones de las líneas los if estna mal puestos, ya que cuando no hay excepción de iva, entra por el 2º if en vez de por el 3º if. Hay que preguntar primero los if que contienen && y luego los if que contienen OR.
if ($subtotal['taxamount'] == 0 && false === empty($excepcionIva)) {
$foreignServiceSubjectExemptBreakdownItems = TbaiTools::setForeignServiceSubjectExemptBreakdownItems(
$subtotal, $excepcionIva, $foreignServiceSubjectExemptBreakdownItems);
continue;
}
// si el total no es 0 o no tiene excepción de iva
if ($subtotal['taxamount'] != 0 || empty($excepcionIva)) {
$foreignServiceSubjectNotExemptBreakdownItems = TbaiTools::setForeignServiceSubjectNotExemptBreakdownItems(
$subtotal, $json['invoice']['data']['vatRegimes'], $foreignServiceSubjectNotExemptBreakdownItems);
continue;
}
// si el total es 0 y no tiene excepción de iva
if ($subtotal['taxamount'] == 0 && empty($excepcionIva)) {
$foreignServiceNotSubjectBreakdownItems = TbaiTools::setForeignServiceNotSubjectBreakdownItems(
$this->operacion, $subtotal, $foreignServiceNotSubjectBreakdownItems);
continue;
}
Fecha de inicio: 18-01-2024, Fecha de fin: 18-01-2024, pull request enviada, Puntos de soporte +5