public string esRNS(XPathNodeIterator taxGroupNode) { if (taxGroupNode.MoveNext()) { if (taxGroupNode.Current.Value=="RNS") return "Y"; else return "N"; } else return "X"; } public string obtenirTipusDesglos(String docType,int OCRD_ResidenNum,String licTradNum, String U_B1SYS_INV_TYPE, String U_B1SYS_SPEC_REGIME) { 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; } 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; } public decimal INTRXGetSumOfBaseSum(XPathNodeIterator taxGroupNode) { string taxCode = ""; decimal lbaseSum = 0; if (taxGroupNode.MoveNext()) { nfi.NumberDecimalSeparator = "."; taxCode = taxGroupNode.Current.Value; XPathNavigator navi = taxGroupNode.Current; if (gMapOfTaxGroups.ContainsKey(taxCode) && gMapOfTaxGroups[taxCode] != true) { gMapOfTaxGroups[taxCode] = true; // mark our gMap as already computed // the sum for given tax code was not yet computed XPathNodeIterator node = navi.Select(String.Format("//DataSource/TAX1/TaxCode[text()='{0}']/..", taxCode)); while (node.MoveNext()) { lbaseSum += decimal.Parse(node.Current.SelectSingleNode("BaseSum").Value, nfi); } } XPathNavigator navegador = taxGroupNode.Current; XPathNodeIterator iterador = navegador.Select("//DataSource/DOC9/Posted[text()='N']/.."); decimal lsantiSum=0; while (iterador.MoveNext()) { lsantiSum=lsantiSum+decimal.Parse(iterador.Current.SelectSingleNode("DrawnSum").Value, nfi); } lbaseSum=lbaseSum+lsantiSum; } if (gIsCancelFlow) { lbaseSum *= -1; } return lbaseSum; } public decimal INTRXGetSumOfVatSum(XPathNodeIterator taxGroupNode) { string taxCode = ""; decimal lvatSum = 0; if (taxGroupNode.MoveNext()) { taxCode = taxGroupNode.Current.Value; XPathNavigator navi = taxGroupNode.Current; XPathNodeIterator node = navi.Select(String.Format("//DataSource/TAX1/TaxCode[text()='{0}']/..", taxCode)); while (node.MoveNext()) { lvatSum += decimal.Parse(node.Current.SelectSingleNode("VatSum").Value, nfi); } XPathNavigator navegador = taxGroupNode.Current; XPathNodeIterator iterador = navegador.Select("//DataSource/DOC9/Posted[text()='N']/.."); decimal lsantivatSum=0; while (iterador.MoveNext()) { lsantivatSum=lsantivatSum+decimal.Parse(iterador.Current.SelectSingleNode("Vat").Value, nfi); } lvatSum=lvatSum+lsantivatSum; } if (gIsCancelFlow) { lvatSum *= -1; } return lvatSum; } public string numeroDocument(string objecte, string nomSerie, string docNum) { string resultat; if (nomSerie.Length>0) { if (objecte.Equals("13")) resultat=nomSerie+"/"+docNum; else resultat=nomSerie+"_"+docNum; } else resultat=docNum; return resultat; } public decimal INTRXGetSumLineTotal(XPathNodeIterator taxGroupNode) { string taxCode = ""; decimal lbaseSum = 0; if (taxGroupNode.MoveNext()) { nfi.NumberDecimalSeparator = "."; taxCode = taxGroupNode.Current.Value; XPathNavigator navegador = taxGroupNode.Current; XPathNodeIterator iterador = navegador.Select("//DataSource/DOC1"); while (iterador.MoveNext()) { lbaseSum=lbaseSum +decimal.Parse(iterador.Current.SelectSingleNode("LineTotal").Value, nfi) +decimal.Parse(iterador.Current.SelectSingleNode("LineVat").Value, nfi); lbaseSum+=decimal.Parse(iterador.Current.SelectSingleNode("EquVatSum").Value, nfi); } iterador = navegador.Select("//DataSource/DOC3"); while (iterador.MoveNext()) { lbaseSum=lbaseSum +decimal.Parse(iterador.Current.SelectSingleNode("LineTotal").Value, nfi) +decimal.Parse(iterador.Current.SelectSingleNode("LineVat").Value, nfi); lbaseSum+=decimal.Parse(iterador.Current.SelectSingleNode("EquVatSum").Value, nfi); } } if (gIsCancelFlow) { lbaseSum *= -1; } return lbaseSum; } 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; } // Obtenir la naturalessa de la transacció (E=Entrega de bens S=Prestació de serveis) public string obtenirNaturaTransaccio(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; } // 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; }