Per saber si una factura conté una línia de serveis amb una compta que comenci per 701:

Torna true si hi ha alguna compta 701, o false en cas contrari

Exemple: user:PortaCompta701(%AcctCode)

public string PortaCompta701(XPathNodeIterator DOC1AcctCode)
{
  string resultat = "false";
  if (DOC1AcctCode.MoveNext()) 
  {
    XPathNavigator navegador = DOC1AcctCode.Current;
    XPathNodeIterator iterador = navegador.Select("//DataSource/DOC1/AcctCode[starts-with(text(),'701')]/..");
    if (iterador.MoveNext())
      resultat="true";  
  }
  return resultat;
}

Per saber si una factura porta desglòs per factura o per operació:

Torna O (Operació) o F (Factura)

Exemple: user:obtenirTipusDesglos(%DocType,%OCRD_ResidenNum,%LicTradNum,%U_B1SYS_INV_TYPE)

// Obtenir el tipus de desglos (O=Operacio F=Factura)
// Obligatoriament seran amb desglos les factures a clients extrangers o que tinguin un NIF que comenci amb N
// i que no suguin factures simplificades o assentaments resum (F2 o F4)
public string obtenirTipusDesglos(String docType,int OCRD_ResidenNum,String licTradNum, String U_B1SYS_INV_TYPE)
{
  String resultat="F";
  if ((OCRD_ResidenNum>2 | licTradNum.Substring(0,3)=="ESN") & U_B1SYS_INV_TYPE!="F2" & U_B1SYS_INV_TYPE!="F4")
    resultat="O";
  return resultat;
}

Per saber si un desglòs per operació es de tipus entrega o prestació de serveis a les factures de vendes (a les de compres es igual pero tenint en compte el grup 6):

Torna E (Entrega) o S (Prestació de serveis)

Exemple: user:obtenirEntregaOServei(%AcctCode)

public string obtenirEntregaOServei(XPathNodeIterator DOC1AcctCode)
{
  string resultat="E";
  int g70=0;
  string valor="";
  if (DOC1AcctCode.MoveNext()) 
  {
    XPathNavigator navegador = DOC1AcctCode.Current;
    XPathNodeIterator iterador = navegador.Select("//DataSource/DOC1/AcctCode");
    while (iterador.MoveNext())
	{
	  valor=iterador.Current.Value;
	  if (valor.StartsWith("70"))
	    g70=g70+1;
	}
	if (g70==0)
	  resultat="S";
  }
  return resultat;
}

Per confeccionar el concepte de les factures de vendes a partir de les comptes comptables (les de compres seríen igual però considerant el grup 6):

Torna el concepte que s’informarà al SII

Exemple: user:revisarConcepte(%AcctCode)

public string obtenirConcepte(XPathNodeIterator DOC1AcctCode)
{
  string resultat="";
  int g70=0;
  string valor="";
  if (DOC1AcctCode.MoveNext()) 
  {
    XPathNavigator navegador = DOC1AcctCode.Current;
    XPathNodeIterator iterador = navegador.Select("//DataSource/DOC1/AcctCode");
    while (iterador.MoveNext())
    {
      valor=iterador.Current.Value;
      if (valor.StartsWith("70"))
        g70=g70+1;
    }
    if (g70>0)
      resultat="Venta de mercancias";
    else
      resultat="Prestación de servicios";	
  }
  return resultat;
}

Per saber si una factura porta el grup d’impostos RNS:
Exemple: user:esRNS(%TAX1_TaxCode)

public string esRNS(XPathNodeIterator taxGroupNode)
{
  if (taxGroupNode.MoveNext())
  {
    if (taxGroupNode.Current.Value=="RNS")
      return "Y";
    else
      return "N";
  }
  else
    return "X";
}