CONSTRUIR DTE USANDO CLASE C#
Bueno mucha gente me ha preguntado cómo puede construir sus
dtes utilizando una forma simple y didáctica para realizarlo. Con un poco de
paciencia y unos cuantos dolores de cabeza he construido una clase compuesta
que permite realizar este trabajo. Les dejo los ejemplos de como funciona. Si alguien esta interesado en ella puede llamarme y charlamos.
Principios generales
Primer paso
Primero cree una instancia de la clase y asigne las
propiedades básicas del documento a crear, en este caso asigno datos del objeto
Dte como la versión, el Id del objeto Documento y Finalmente asigno los datos
básicos de la zona de Identificación del documento.
Segundo paso
Para continuar asignaremos a nuestra clase los valores del emisor, receptor y los totales del documento actual.
Tercer paso
Ahora lo más importante, es agregar el detalle del
documento. Esta operación se realiza de la siguiente forma:
Cuarto paso
Bueno finalmente solo falta serializar el documento para
obtener su representación básica en formato XML
El resultado de toda esta operación regresara un archivo físico como el siguiente:
Calcular los montos
La clase también permite calcular automáticamente los montos
de la totalera utilizando un método interno de sumatoria de los valores afectos
o exentos según corresponda. Calcula además el monto del IVA y el monto total
del documento.
Luego solo debemos asignar el método adecuado:
Lo que dará de resultado lo siguiente:
disculpa tocayo (tal cual tb me llamo Marcelo Rojas) =) ...la cuestion es que no entiendo como creaste la clase para que al serializar te quede como en el XML...
ResponderEliminarMi problema es el mismo. Acabo de generar con xsd en base a lo que pasa el SII y me queda medio extraño todo...
ResponderEliminarEstimado alguna posibilidad de exponer la clase dte que realiza toda la pega?
ResponderEliminarEstimado Marcelo, gracias por ser tan generoso al compartir tus extraordinarios logros en lo que a Facturación Electrónica se refiere, no me habría sido posible resolverlo sin tu ayuda.
ResponderEliminarTengo la misma inquietud de Anónimo acerca de tu clase, yo lo he resuelto creando el archivo linea a linea pero no me parece óptimo.
Nuevamente gracias, saludos y suerte
Marcelo, una duda de tu implementación
ResponderEliminar¿Por que no generaste las clases desde los esquemas (XSD)?, existe algun problema de como se generan las clases usando XSD.exe?
Gracias
Saludos
Marcelo, podrías ser tan gentil y decirme como creaste ese XML serializado, tienes alguna función?
ResponderEliminarAtte., Mauro Pro
Un aporte
Eliminarhay un servicio web gratuito que genera DTE, SetDTE y pdf gratis
hsoft.cl
Marcelo, estoy creando el DTE para la boleta y estoy poniendo 39 para el tipoDTE pero me da ese error:
ResponderEliminarFailed to set value on the property "TpoDTE". Possible reason: The Given Value 39 Violates Restrictions: Enumeration = (33 34 46 52 56 61)
Tendria alguna noticia?
Estimado lo mas probable es que estes utilizando un xml DTE normal para crear tu boleta. Lo que debes hacer es revisar la documentacion de boletas para crear el documento correcto.
EliminarSi tienes dudas llamame al 224042279
Hola amigos creo que puedo hacer un pequeño aporte, en este documento nos entrega un enunciado pero no da la solucion de fondo que es la creacion de la clase por lo tanto yo he aplicado la ingeneria inversa que es del archivo xml transformarlo en una clase para c#.
ResponderEliminaresto se logra de la siguiente manera
primero escribiremos el archivo xml tal como aparece presentado aqui
por supuesto tener instalado el visual studio
ir al tool y al simbolo para desarrolladores, ejecutarlo como administrador una vez ahi cd .. y cd .. quedamos en la raiz por ejemplo el archivo que escribi lo deje en una carpeta llamada xxxxx (ustedes eligen el nombre) en el cual copiaran el archivo xml
cd xxxx
y ejecutamos lo siguiente
xsd /c /l:cs prueba.xml
esto lo va a transformar en un xsd y quedara prueba.xsd
otra vez realizan lo mismo y cambian la extencion
xsd /c /l:cs prueba.xsd
el resultado sera una clase y quedara como
prueba.cs .. que es una clase el cual tengra la definicion de esta clase Experimente y me cuentan
esto lo estoy realizado para desarrollar la factura electronica en chile ... acepto comentario gracias
Hola. Jorge
EliminarGenere la Clase c# del squema que entrega SII y lo estoy consumiendo. esto genera dos grupos uno EnvioDte y el Otro DTEDefType.
necesito ayuda me falta generar el xml para ver como va quedando a medida que voy traspasando los datos.
Tu sabes como generar el xml?
Gracias
a mi correo es jorgemezaleiva@gmail.com
ResponderEliminarHola Marcelo,
ResponderEliminarEstoy interesado en adquirir tu clase DTE ($), pero necesito saber si modelaste la clase "Documento" solamente o también modelaste la clase "Liquidacion" y la clase "Exportaciones".
Por ejemplo en Documento>Encabezado>Totales el MntTotal es un integer, pero en Exportaciones>Encabezado>Totales el MntTotal es un decimal
¿Eso está modelado OK en lo que ofreces?
Estimado,
EliminarTengo modelado para todos los documentos, sin perjuicio de esto si faltare algo o hubiese que hacer una modificación, no hay problema en hacerlo.
Cualquier duda puede llamarme al 997800285
Atte.
Marcelo Rojas Rojas
disculpa la pregunta indiscreta marleo pero como hiciste para que pa class detalle of list detalle no saliera dentro del parent detalles en la serialización, yo le pongo xmlignoreattribute a la propiedad del tipo lista detalles que esta en DTE pero me descarta todo el detalle incluyendo los elementos :( :( :(
Eliminarme respondo a mi mismo, ya lo arregle, ufff me costo
Eliminar