Buenos para todos lo que tiene este error ya logre solucionarlo, les dejo la solución por este medio, si se les presenta el error Regla: DSAD06, Rechazo: Valor del CUDS no está calculado correctamente. y estén ustedes seguros que el CUDS lo calculan correctamente, pero al momento de crear el XML el nodo cbc:IssueTime presenta la hora con los milisegundos, pueden hacer lo siguiente:
CampofechaConLaQueCalculanELCUDSCompleta = 12-08-2022 08:36:36.25369836
DateTime dateTime = CampofechaConLaQueCalculanELCUDSCompleta
dateTime = dateTime.AddTicks(-(dateTime.Ticks % TimeSpan.TicksPerSecond));
Con esto logramos quitar los milisegundos pero no quedaría ahora de esta forma la
12-08-2022 08:36:36.000000
Entonces si crean el XML así nos arroja el error de regla DSAD06, entonces lo que deben de hacer es que antes de guardar su XML deberán recorrerlo e ir a ese nodo y modificar el InnerText de dicho nodo para este caso el cbc:IssueTime
foreach (XmlNode node in xml.DocumentElement.ChildNodes)
{
String name = node.Name;
if(name == "cbc:IssueTime")
{
node.InnerText = dateTime.ToString("HH:mm:ss-05:00");
break;
}
}
Donde xml es la variable que me almacena todo el XML creado, luego en cada iteración comparo el nombre del nodo hasta que sea igual al que necesito modificar en este caso
cbc:IssueTime y por ultimo en innerText le coloco el formato que lo acepta la DIAN.
Espero les sirva de ayuda y si alguno logra mejorarlo o saber como en un DataTime quitar los milisegundo esperamos su ayuda ya que el campo en el XSD es DataTime y String como en Nomina
Cualquier asesoría con software propio en Facturación electronica, Nomina o Documento de soporte y Dcumento de soporte para no obligados a facturar estamos dispuestos a ayudar.
#SystemsServices, Santa Marta, Colombia