Closed elmegarc closed 1 year ago
Hola, Gracias por tu interés. Cuéntame más detalles sobre tu problema. ¿A qué te refieres con que no puedes hacer seguimiento a las facturas?
¿Hasta qué punto de la guía llegas sin problemas?
Gracias por tu respuesta, ya logre generar el JSON desde unicenta, lo genero con el ejemplo de la guía anexa, pero solo me da el archivo ok cuando envió los productos sin impuesto, cuando cambio el tipo de entidad del cliente a persona también me da error, y todas las facturas se van como crédito.
error productos con impuestos---> "Rechazo FAU04: Base Imponible es distinto a la suma de los valores de las bases imponibles de todas líneas de detalle. Rechazo FAD05b: Número de factura es inferior al número inicial del rango de numeración autorizado. Rechazo FAD05c: Número de factura : superior al final del rango de numeración otorgado. Rechazo FAS01b: Tributo IVA (01), INC (04) informado no coincide, revisar Porcentaje, Nombre y ID. Debe existir un TaxTotal a nivel del cabecera por cada tipo de impuesto que se informa a nivel de línea con las características correspondiente al mismo impuesto".
error con tipo entidad persona---> "Rechazo FAD06: Valor del CUFE no está calculado correctamente. Notificación FAK41: EL contenido de este elemento no corresponde al Nombre y código válido".
¿Puedo en el Json ingresar mas parametros para que genere el XML?
Gracias por tu tiempo.
Bueno, esos errores están ya muy adelante en el procedimiento. Si ya genera archivos ok, es un gran avance. Puede haber algún problema en cómo se está generando el JSON desde Unicenta o un problema con compatibilidad de diferentes condiciones que no había considerado desde SimpleOps. Pero antes de revisar eso en detalle, por favor confírmame si puedes generar todas las facturas de prueba en SimpleOps, esto es con el botón 'Hacer Pruebas Internas'. Si te saca error 90, cierra SimpleOps, incrementa el valor de SimpleOps\Opciones\Empresa.json > PróximoNúmeroDocumentoElectrónicoPruebas y vuelve a intentar.
Si todos los documentos son exitosos, revisa los documentos de prueba generados en SimpleOps\Documentos Electrónicos\2023\02-20 y mira si alguno de esos documentos se adapta a tu necesidad de uso.
No recuerdo muy bien, pero creo que si un producto se le quiere poner tanto INC como IVA, la DIAN pone problema. Creo que que SimpleOps tiene problemas en el caso de productos con estos dos impuestos simultaneos. ¿Esta es tu necesidad?
Buenas tardes de nuevo gracias por tomarte tu tiempo para responderme.
En pruebas internas me genera erro código 99, las pruebas de habilitación si fueron exitosas, lo que he notado es que al generar el XML cuando ahí impuesto no coloca la etiqueta de taxtotal, por eso la suma de los tributos no da y genera el error.
He ejecutado el código paso a paso para encontrar el momento en el que genera el XML pero no logro identificar cuando toma la plantilla para colocar los datos.
EL tiempo de desarrollo hasta ahora lo he dedicado a la parte de integración desde el unicenta y este esta en java, si pudieras guiarme a que punto he de llegar para centrarme en el c# talvez pueda llegar a la solucion. espero me halla hecho entender.
De nuevo Muchas Gracias.
La idea es que no tengas que meterte con C# para la integración. La escritura del XML se genera con una clase enorme que está dentro de Dian.dll y esa clase no es algo que se pueda modificar manualmente. Los datos se ponen en el documento electrónico en Legal\DocumentoElectrónico.Crear(), pero igual es complejo y es de mi interés corregir si hay un error, entonces mejor si yo te ayudo con esta parte.
Pero volvamos donde ibamos, para poder detectar los errores que te están saliendo. Ve a Estáticas/Pruebas.cs > VentaEjemploXml() y pon un punto de interrupción en el inicio de este procedimiento. Este procedimiento es el primero que se ejecuta para las pruebas internas.
Pega este código en reemplazo de lo que tengas en venta.Líneas = .... (aunque deberías tenerlo igual) e intenta nuevamente:
venta.Líneas = new List<LíneaVenta> {
new LíneaVenta(new Producto("AOHV84-225") { DescripciónBase = "Lente de Contacto HV8400 (Indicado para personas zurdas)",
Unidad = Unidad.Par }, venta, cantidad: 5, precio: 12600.06M, costo: 12600 * fracciónCosto),
new LíneaVenta(new Producto("BOIVA16") { PorcentajeIVAPropio = 0.16, DescripciónBase = "16% IVA de Bolsa" }, venta,
cantidad: 1, precio: 187.50M, costo: 187.50M * fracciónCosto ) { MuestraGratis = true },
new LíneaVenta(new Producto("PAPA") { DescripciónBase = "Papa Campesina Calidad AAA", PorcentajeIVAPropio = 0.05 }, venta,
cantidad: 20, precio: 1500, costo: 1500 * fracciónCosto),
new LíneaVenta(new Producto("YUCA") { DescripciónBase = "Yuca Alta Calidad", PorcentajeIVAPropio = 0.05 }, venta,
cantidad: 10, precio: 2000, costo: 2000 * fracciónCosto),
//new LíneaVenta(new Producto("datos celular") { TipoImpuestoConsumoPropio = TipoImpuestoConsumo.TelefoníaCelularYDatos,
// Descripción = "D. datos" }, venta, cantidad: 2, precio: 60000, costo: 60000 * fracciónCosto), // Desactivado porque saca un error atípico que no tienen otros impuestos al consumo. Posiblemente es un error del servidor de la DIAN.
new LíneaVenta(new Producto("ALM") { TipoImpuestoConsumoPropio = TipoImpuestoConsumo.ServiciosRestaurante, ExcluídoIVA = true,
DescripciónBase = "Almuerzo Completo con Carne y Ensalada con Yuca Papa" }, venta, cantidad: 3, precio: 25000,
costo: 25000 * fracciónCosto),
new LíneaVenta(new Producto("CENA") { TipoImpuestoConsumoPropio = TipoImpuestoConsumo.ServiciosRestaurante, ExcluídoIVA = true,
DescripciónBase = "Cena Completa con Jugo y Postre" }, venta, cantidad: 3, precio: 15000, costo: 15000 * fracciónCosto),
//new LíneaVenta(new Producto("Bolsa IC Bolsas") { TipoImpuestoConsumoPropio = TipoImpuestoConsumo.BolsasPlásticas,
// Descripción = "Bolsa Empaque", ExcluídoIVA = true }, venta, cantidad: 3, precio: 150, costo: 50 * fracciónCosto )
// { MuestraGratis = true }, // Desactivado porque saca un error relacionado con el CUFE que solo aparece cuando se establece TipoImpuestoConsumo.BolsasPlásticas: Rechazo FAD06: Valor del CUFE no está calculado correctamente.
new LíneaVenta(new Producto("CMSRS", camisetaBase, new List<string> { "Roja", "Talla S" }),
venta, 2, 50990, 40000),
new LíneaVenta(new Producto("CMSVL", camisetaBase, new List<string> { "Verde", "Talla L" }) {
UnidadEspecífica = Unidad.Docena }, venta, 3, 51990, 42000),
new LíneaVenta(new Producto("CMSAXXL", camisetaBase, new List<string> { "Azul", "Talla XXL" }) {
PorcentajeIVAPropioEspecífico = 0.16 }, venta, 1, 51990, 42000),
};
Si te sigue sacando error, marca en comentario varias líneas de new LíneaVenta, hasta que detectes cuál es la línea que te está generando el error y me cuentas. En mi computador funciona con ese código que te pasé. La idea es que llegemos a una factura de prueba interna que en tu computador funcione y detectar de ahí para arriba en qué casos te saca error.
Con gusto te ayudo en lo que necesites. Este proyecto lo tengo un poco abandonado, pero me gustaría mucho poder refinarlo más.
De nuevo muchas gracias por tu tiempo,
Hice lo sugerido, llegue a dejar solo una linea para el ejemplo probé diferentes variaciones con las líneas de ventas y en ninguna paso las pruebas internas, lo que me da a entender que posiblemente el xmlejemplo se esta generando con algún error o etiqueta faltante, revise los xmls, el generado por simple y el ejemplo del anexo técnico DIAN, la diferencia que encuentro es que el iva bolsa tienen una etiqueta de taxtotal propia y en el xml de Simple esta no aparece, no se si sera por ahi el problema. pues eso esta en el mensaje de error que me envía el simple. De nuevo muchas gracias por la atención oportuna, me deja confundido que en tu computador funcione, puedo estar pasando algo por alto, algo en la configuracion depronto.
Un comentario rápido. ¿Tal vez será por que eres régimen simple? Es lo único que se me ocurre que tenemos diferente que sea relevante. Intenta cambiando temporalmente "Regimen Simple" por "Ordinario, ResponsableIVA" . Aunque es posible que la DIAN saque otro error relativo a eso, pero intentemos a ver si funciona.
Otro ensayo, intenta suspender la ejecución del SimpleOps en cuando entre a Pruebas.cs > Facturación() y mueve el punto de ejecución a for (int i = 1; i <= 10; i++), ahí se genera la factura de prueba con VentaSimple() y es la más sencilla posible.
Pues si que era el Regimen
Si se pudiera solucionar seria maravilloso, continuare con la integración y te mantendré al tanto de las cosas que vayan surgiendo para mejorar SimpleOps, aprovecho para felicitarte por esta maravillosa herramienta, te comento que en la integración la he probado solo con el .exe y funciona no ahí necesidad de ejecutarla desde el código. no he visto si SimpleOps envié el correo al cliente, si te parece aun no cierro el asunto en lo que termino la integración, de nuevo gracias por tu oportunas respuestas
Gracias por tus palabras! 🙂
Ya lo solucioné. Era un condicional que tenía en la generación del documento electrónico que no estaba agregando ese elemento para las facturas de régimen simple. Me había basado en un comentario de la documentación de la DIAN donde decían que no había que agregarselo a los de régimen simple, pero como muchas cosas en la documentación de la DIAN, resultó que no era así... Ya puedes probar la última versión y te debe funcionar.
Sobre el ejecutables, sí, claro, puedes usarlo desde el Exe sin problemas. Solo recuerda que debido a la licencia GNU Affero debes entregar también el código de SimpleOps si le vas a instalar el Exe a otra persona o empresa.
Sobre el envío del correo, no, por el momento SimpleOps no envía el correo al cliente, pero creo que sería una adición muy importante y fácil de agregar. Actualmente donde uso el SimpleOps ya la otra aplicación tiene la opción de enviar el correo entonces por esto aún no lo había implementado en SimpleOps. El asunto aquí es que si tendrías que contratar un servicio de emails transaccionales. Por un tiempo use gmail, pero eso no es muy escalable. Este es el que uso actualmente: https://www.zoho.com/zeptomail/pricing.html
Código Actualizado y funcionando con regimen simple, muchas gracias por todo el tiempo dedicado.
Con gusto!
Código Actualizado y funcionando con régimen simple, muchas gracias por todo el tiempo dedicado.
Hola, podrías comentar un poco sobre como te fue con la integración y si hiciste algo independiente a Unicenta para gestionar la facturación?
Código Actualizado y funcionando con régimen simple, muchas gracias por todo el tiempo dedicado.
Hola, podrías comentar un poco sobre como te fue con la integración y si hiciste algo independiente a Unicenta para gestionar la facturación?
Buena tarde, cree un modulo dentro de unicenta que tomara la factura de unicenta y creara el .json que necesita simpleOps para enviar a la DIAN, La integración con SimpleOps ha mejorado en gran medida la funcionalidad y la eficiencia, aprovecho agradecer a vixark nuevamente por su excelente solucion de calidad.
De antemano es una gran herramienta la que creaste. Gracias
Originally posted by @elmegarc in https://github.com/vixark/SimpleOps/issues/1#issuecomment-1435797694