|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Object | +--cl.sii.dte.Timbre
Esta clase es utilizada tanto para generar como verificar timbres según ha definido SII.
Para generar, instancie la clase y enseguida complete los campos necesarios con las funciones set*, para finalmente firmar el timbre con la funcion sign. El elemento XML según el formato definido por SII representativo del timbre se obtiene con la función getDOMElement.
Para verificar, instancie la clase y cargue el timbre con la funcion setDOMElement o loadXML
. La verificación se realiza utilizando la función verify.
Se debe tener presente que la función verify, verifica que el timbre está
correcto para un determinado CAF, pero no verifica el CAF.
Para verificar el código, obténgalo con getCodigo()
e invoque su funcion verify de Codigo.
Codigo| Field Summary | |
private Codigo |
codigo
|
private RUT |
emisor
|
private Date |
fecha
|
private Date |
fechaFirma
|
private String |
firmaAlg
|
private byte[] |
firmaValue
|
private Integer |
folio
|
private String |
item
|
static org.jdom.output.XMLOutputter |
out
|
private String |
razonSocial
|
private RUT |
receptor
|
private SimpleDateFormat |
sdf
|
private SimpleDateFormat |
sdfirma
|
private Integer |
tipo
|
private Integer |
total
|
private String |
version
|
| Constructor Summary | |
Timbre()
Crea un nuevo objeto Timbre. |
|
Timbre(Codigo codigo)
Crea un nuevo timbre, utilizando un codigo de autorización. |
|
| Method Summary | |
private boolean |
filled()
Verifica si el timbre tiene todos los datos necesarios (sin incluir la firma) |
private String |
genCode()
Genera el string que debe ser firmado con los datos del timbre |
private org.jdom.Element |
genDOMCode()
Obtiene el elemento XML que debe ser firmado. |
private org.jdom.Element |
genDOMCode(org.jdom.Namespace ns)
Genera el elemento XML que representa los datos del timbre para ser incluído en el documento. |
Codigo |
getCodigo()
Obtiene el código autorizador del timbre (CAF) |
org.jdom.Element |
getDOMElement(String tagName,
org.jdom.Namespace ns)
Obtiene el elemento XML representativo del timbre a incluir en la versión XML del DTE. |
RUT |
getEmisor()
Retorna el emisor |
Date |
getFecha()
Obtiene la fecha del timbre |
String |
getFechaAsString()
Obtiene la fecha del timbre como string |
Date |
getFechaFirma()
Obtiene la fecha de firma del timbre |
String |
getFechaFirmaAsString()
Obtiene la fecha de firma del timbre como string |
Integer |
getFolio()
Obtiene el folio del documento |
String |
getItem()
|
String |
getPDF417()
Obtiene el string a colocar en el código de barras PDF417 a incluir en la versión impresa del Documento Tributario Electrónico |
private org.jdom.Element |
getPureDOMElement()
Obtiene el XML puro del timbre, es decir, sin namespace ni identación. |
String |
getRazonSocial()
|
RUT |
getReceptor()
Retorna el receptor |
Integer |
getTipo()
Obtiene el tipo de documento |
Integer |
getTotal()
Obtiene el valor total del documento |
String |
getVersion()
Obtiene la versión del timbre |
private boolean |
isCorrespondingCodigo()
Verifica si el CAF presente en el timbre es el correcto que lo autoriza |
void |
loadXML(String data)
Carga un timbre desde un string que contiene el XML de un elemento timbre |
void |
setCodigo(Codigo codigo)
Asigna el código autorizador del timbre |
void |
setDOMElement(org.jdom.Element data)
Carga un timbre desde un Elemento XML que contiene un timbre según la definición de SII |
void |
setEmisor(RUT emisor)
Asigna el emisor |
void |
setEmisor(String emisor)
Asigna el emisor |
void |
setFecha(Date fecha)
Asigna la fecha del timbre |
void |
setFecha(String fecha)
Asigna la fecha del timbre en base a un string |
void |
setFechaFirma(Date fechaFirma)
Asigna la fecha de firma del timbre |
void |
setFechaFirma(String fechaFirma)
Asigna la fecha de firma del timbre en base a un string |
void |
setFolio(Integer folio)
Asigna el folio del documento |
void |
setItem(String string)
|
void |
setRazonSocial(String string)
|
void |
setReceptor(RUT receptor)
Asigna el receptor |
void |
setReceptor(String receptor)
Asigna el receptor |
void |
setTipo(Integer tipo)
Asigna el tipo de documento |
void |
setTotal(Integer total)
Asigna el valor total del documento |
void |
setVersion(String version)
Asigna la versión del timbre |
void |
sign(PrivateKey pKey)
Firma el timbre con la llave privada del contribuyente |
private boolean |
signed()
Verifica si el timbre ha sido firmado. |
boolean |
verify()
Verifica si el timbre está correcto según la autorización en el CAF |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
private RUT emisor
private RUT receptor
private Integer tipo
private Integer folio
private Date fecha
private String razonSocial
private Integer total
private String item
private String version
private Codigo codigo
private Date fechaFirma
private SimpleDateFormat sdf
private SimpleDateFormat sdfirma
private String firmaAlg
private byte[] firmaValue
public static org.jdom.output.XMLOutputter out
| Constructor Detail |
public Timbre(Codigo codigo)
Este constructor asigna automáticamente la fecha a la fecha actual de creación, la versión, ademas del emisor y tipo de documento los cuales están contenidos en el código.
codigo - El código autorizador de este timbrepublic Timbre()
| Method Detail |
public RUT getEmisor()
public void setEmisor(RUT emisor)
emisor - el rut del emisor
public void setEmisor(String emisor)
throws RUTException
emisor - el rut del emisor
RUTException - en caso que el string del RUT esté mal formadopublic RUT getReceptor()
public void setReceptor(RUT receptor)
receptor - el rut del emisor
public void setReceptor(String receptor)
throws RUTException
receptor - el rut del emisor
RUTException - en caso que el string del RUT esté mal formadopublic Integer getTipo()
public void setTipo(Integer tipo)
tipo - el tipo de documentopublic Integer getFolio()
public void setFolio(Integer folio)
folio - el número de folio del documentopublic String getRazonSocial()
public void setRazonSocial(String string)
string - public Integer getTotal()
public void setTotal(Integer total)
public String getItem()
public void setItem(String string)
string - public String getVersion()
public void setVersion(String version)
version - la versión del timbrepublic Date getFecha()
public void setFecha(Date fecha)
fecha - la fecha del timbre
public void setFecha(String fecha)
throws ParseException
fecha - la fecha en formato AAAA-MM-DD
ParseException - en caso que el formato del string no sea correctopublic String getFechaAsString()
public Codigo getCodigo()
Codigopublic void setCodigo(Codigo codigo)
codigo - el código autorizador del timbreCodigopublic Date getFechaFirma()
public void setFechaFirma(Date fechaFirma)
fechaFirma - la fecha de firma del timbre
public void setFechaFirma(String fechaFirma)
throws ParseException
fechaFirma - la fecha en formato AAAA-MM-DDTHH:MI:SS
ParseException - en caso que el formato del string no sea correctopublic String getFechaFirmaAsString()
private boolean filled()
private boolean signed()
throws TimbreException
TimbreNotCompleteFilledException - en caso que el código no
esté completo
TimbreExceptionfilled(),
verify()
private String genCode()
throws TimbreException,
CodigoException
TimbreException - en caso que no se hayan asignado todos los
valores necesarios del timbre
CodigoException - en caso de haber problemas con el CAF
private org.jdom.Element genDOMCode()
throws TimbreException,
CodigoException
TimbreException - en caso que no se hayan asignado todos los
valores necesarios del timbre
CodigoException - en caso de haber problemas con el timbregenCode()
private org.jdom.Element genDOMCode(org.jdom.Namespace ns)
throws TimbreException,
CodigoException
ns - el namespace de la definición del timbre
TimbreException - en caso que los valores del timbre no estén
completos
CodigoException - en caso de haber problemas con el CAF
private boolean isCorrespondingCodigo()
throws TimbreException
TimbreException - si el timbre no está completofilled()
private org.jdom.Element getPureDOMElement()
throws TimbreException,
CodigoException
TimbreException - en caso que el timbre no esté completo
o no haya sido firmado
CodigoException - en caso de haber problemas con el CAFgetPDF417()
public String getPDF417()
throws TimbreException,
CodigoException
TimbreException - en caso que el timbre no esté completo
o no haya sido firmado
CodigoException - en caso de haber problemas con el CAF
public org.jdom.Element getDOMElement(String tagName,
org.jdom.Namespace ns)
throws TimbreException,
CodigoException
TimbreException - en caso de que el timbre no esté completo
o no haya sido firmado
CodigoException - en caso de haber problemas con el CAF
public void setDOMElement(org.jdom.Element data)
throws TimbreException,
CodigoException,
ParseException,
NoSuchAlgorithmException
data - El elemento XML (DOM Element) del timbre
TimbreException - en caso que el elemento de
entrada no esté bien estructurado (no corresponda a un timbre)
CodigoException - en caso que el algoritmo de la llave pública
del contribuyente no esté soportado en esta versión u otro problema
en el CAF que contiene el timbre
NoSuchAlgorithmException - en caso que la JVM no tenga
implementados los algoritmos criptográficos necesarios
ParseException
public void sign(PrivateKey pKey)
throws InvalidKeyException,
SignatureException,
NoSuchAlgorithmException,
TimbreException,
CodigoException
pKey - la llave privada del contribuyente
TimbreException - en caso que el codigo no corresponda
al timbre (por ser de otro tipo de documento o estar fuera del rango autorizado),
o en caso que la llave privada no corresponda a la pública contenida en el CAF. También en el caso que no se hayan asignado todos los valores del timbre
InvalidKeyException - en caso de haber problemas con la llave privada
SignatureException - en caso de haber problemas firmando
NoSuchAlgorithmException - en caso que el algoritmo de firma no sea
soportdo en esta versión
CodigoException - en caso de haber problemas con el CAF
public void loadXML(String data)
throws TimbreException,
CodigoException,
ParseException,
NoSuchAlgorithmException
data - el string con el elemento en formato XML
TimbreException - en caso que el elemento de
entrada no esté bien estructurado (no corresponda a un timbre)
CodigoException - en caso que el algoritmo de la llave pública
del contribuyente no esté soportado en esta versión u otro problema
en el CAF que contiene el timbre
NoSuchAlgorithmException - en caso que la JVM no tenga
implementados los algoritmos criptográficos necesarios
ParseException
public boolean verify()
throws TimbreException,
CodigoException,
NoSuchAlgorithmException,
InvalidKeyException
TimbreException - si el código no corresponde
al timbre, si el timbre no tiene todos sus valores asignados,
si el timbre no ha sido firmado o si el algoritmo de firma no está
soportado en esta versión del timbre
NoSuchAlgorithmException - si el algoritmo de firma del timbre
no está soportado en esta JVM
InvalidKeyException - si hay problemas con la llave pública
contenida en el código
CodigoException
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||