Exportação de Documentos de Facturação para XML
Para responder à necessidade da aplicação produzir um Xml onde contenha mais informação de forma a poder ser entregue a diversas entidades existe um Formato XML Padrão PHC que possui um formato fixo.
Desta forma quem possuir o Módulo Documentos Electrónicos, pode através da configuração dos documentos de facturação, na página Documento electrónico escolher a opção
Inclui Formato Xml Padrão PHC.
Este xml possuí informação sobre o documento de facturação, o cliente e a empresa que emite a factura.
No caso do Documento Electrónico, ao seleccionar esta opção o XML Padrão substitui o xml configurável.
Existe um parâmetro chamado
Código GLN da própria empresa, quando este parâmetro está vazio, no xml o valor do GLN da empresa é preenchido com o Código EAN da Empresa.
Na
ficha do Cliente existem alguns campos que passam para o documento de facturação quando este é criado. São eles, por exemplo o
Código GLN do cliente,
Nº de fornecedor no cliente e
Local de entrega.
Estes campos são obrigatórios no xml, assim como a morada, o código postal e o código EAN do cliente.
Quando o código GLN não está preenchido na ficha do cliente, na construção do xml este campo é preenchido com o valor do código EAN.
Dica:Gln são códigos de localização.
Um EAN13 identifica uma empresa, um GLN identifica um local (tipo um armazém, uma loja).
Uma mesma empresa (1 código EAN) pode ter vários GLN (vários locais).
No Documento de Facturação, na página Documento electrónico aparecem os novos campos da ficha do Cliente e o Código GLN da empresa que são preenchidos por defeito.
Aparece também o campo data de entrega e hora, que serve para registar a data de entrega da mercadoria.
Na produção do Xml são também validados alguns campos da ficha completa da empresa, são eles: Nome, Morada, Código Postal, Nº Contribuinte, Capital Social e Conserv. Reg. Social.
Se possuir a gama Enterprise é possível definir um evento
AposPrepararCursorXmlPadrao para o ecrã SFT, onde se pode alterar os cursores criados de forma a acrescentar outros dados ao Xml. Os nome dos cursores usados são: Documento, Linhas, LinhasDesconto, LinhasTaxa, LinhasReferencias e TaxaSubTotal.
O XML Padrão dos documentos de facturação contém os seguintes elementos:
<Documento> - Que agrupa os campos identificativos do documento, da entidade emissora do documento e do respectivo cliente.
<Linhas> - Elemento que agrega os dados relacionados com as linhas do documento de facturação, apresentando-os divididos nos seguintes elementos:
<LinhasDesconto> - Guarda o desconto em valor do documento;
<LinhasTaxa> - Guarda as taxas aplicadas á linha respectiva, no documento.
<LinhasReferencia> - Guarda a informação de documentos que estejam na sua origem, como por exemplo, Encomenda de Cliente.
<TaxaSubTotal> - Elemento que guarda os valores totais das taxas aplicadas nas linhas.
Os elementos decisivos do XML Padrão são aqueles que guardam os campos do cabeçalho, o elemento
Documento e os campos das linhas, o elemento
Linhas, respectivamente.
Os elementos têm campos considerados obrigatórios e facultativos. Na criação do documento electrónico os campos obrigatórios têm de ser todos preenchidos.
O próximo quadro apresenta todos os elementos, obrigatórios e facultativos:
Elemento |
Nome XML Padrão PHC |
Campo |
Descrição |
Documento |
versao |
|
Obrigatório. Versão do schema |
|
tipodoc |
Td.tipodoc |
Obrigatório. Tipo de documento* |
|
codmoeda |
Ft.memissao ou FT.moeda |
Obrigatório. Moeda de emissão |
|
timestamp** |
|
Obrigatório. Timestamp do documento |
|
numdoc |
Ft.fno |
Obrigatório. Número do documento |
|
datadoc |
FT.fdata |
Obrigatório. Data do documento |
|
localcarga |
Ft.carga |
Obrigatório. Local de carga |
|
datacarga |
Ft.cdata + Ft.chora |
Obrigatório. Data de carga |
|
localentrega |
Ft2.localentrega |
Obrigatório. Local de entrega |
|
moradaentrega |
Ft2.moradaentrega |
Facultativo. Morada do local de entrega |
|
loclocalentrega |
Ft2.locallocent |
Facultativo. Localidade do local de entrega |
|
codpostentrega |
Ft2.codpentrega |
Facultativo. Código Postal do local de entrega |
|
dataentrega |
Ft2.dataentrega + Ft2.horaentrega |
Obrigatório. Data de entrega |
|
matricula |
Ft.matricula |
Obrigatório. Matrícula da viatura que efectua a entrega |
|
glnfornecedor |
Ft2.glnft |
Obrigatório. Código GLN do fornecedor |
|
codfornecedor |
Ft2.codfornecedor |
Obrigatório. Código de fornecedor |
|
nomefornecedor |
E1.nomecomp |
Obrigatório. Este campo da Ficha Completa da Empresa guarda o nome do Emissor. |
|
moradafornecedor |
E1.morada |
Obrigatório. Este campo da Ficha Completa da Empresa guarda a morada do Emissor. |
|
ncontfornecedor |
E1.ncont |
Obrigatório. Este campo da Ficha Completa da Empresa guarda o nº de contribuinte do Emissor. |
|
consreg |
E1.consreg |
Obrigatório. Este campo da Ficha Completa da Empresa guarda o Registo comercial do Emissor. |
|
matriculareg |
E1.nomatri |
Facultativo. Este campo da Ficha Completa da Empresa guarda a matrícula do Registo Comercial do Emissor. |
|
livroreg |
E1.livro |
Facultativo. Este campo da Ficha Completa da Empresa guarda o Livro do Registo Comercial do Emissor. |
|
folhasreg |
E1.folhas |
Facultativo. Este campo da Ficha Completa da Empresa guarda as folhas do Livro do Registo Comercial do Emissor. |
|
capsocial |
E1.ecapsocial |
Obrigatório. Este campo da Ficha Completa da Empresa guarda o valor do Capital Social do Emissor. |
|
glncliente |
Ft2.glncl |
Obrigatório. |
|
ncontcliente |
Ft.ncont |
Obrigatório. Número de contribuinte do cliente |
|
nomecliente |
Ft.nome |
Obrigatório. Nome do Cliente |
|
moradacliente |
Ft2.morada |
Obrigatório. Morada do cliente |
|
totalbase |
|
Obrigatório. Montante tributável, somatório do elemento basetaxa |
|
totalimposto |
Ft.ettiva |
Obrigatório. Total da taxa (IVA) |
|
total |
Ft.etotal |
Obrigatório. Total com taxa |
|
totaleco |
Ft2.ftettecoval |
Campo obrigatório para os utilizadores que possuem o módulo ECOVALOR e representa o Total do Ecovalor do documento. |
|
descfinanceiro |
Ft.efinv |
Obrigatório. Desconto financeiro do documento |
|
datavencimento |
Ft.pdata |
Obrigatório. Data de vencimento do documento |
|
codpostcliente |
Cl.codpost |
Obrigatório. Este campo pertence á tabela de Cliente e guarda o Código Postal do cliente. |
|
localcliente |
Cl.local |
Obrigatório. Este campo pertence á tabela de Cliente e guarda a Localidade do cliente. |
|
codpostfornecedor |
E1.codpost |
Obrigatório. Campo da Ficha Completa da Empresa e guarda o Código Postal do Emissor. |
|
localfornecedor |
E1.local |
Obrigatório. Campo da Ficha Completa da Empresa e guarda a localidade do Emissor. |
|
numlinhas |
|
Número de Linhas |
|
eancliente |
Ft.eancl |
Obrigatório. Código EAN do cliente |
|
eanfornecedor |
Ft.eanft |
Obrigatório. Código EAN do fornecedor |
|
moradasede |
Cl.morada |
Facultativo. Este campo pertence á tabela de Clientes e guarda a morada da sede do cliente. |
|
localsede |
Cl.local |
Facultativo. Este campo pertence á tabela de Clientes e guarda a localidade da sede do cliente. |
|
codpostsede |
Cl.codpost |
Facultativo. Este campo pertence á tabela de Clientes e guarda o código postal da morada da sede do cliente. |
|
classificacao |
Ft.classe |
Facultativo. Classificação |
|
observacoes |
Ft2.obsdoc |
Facultativo. Observações |
|
motivoisencao |
Ft2.motiseimp |
Obrigatório. Descrição do Motivo de Isenção |
|
codmotivoisencao |
Ft2.codmotiseimp |
Obrigatório. Código do Motivo de Isenção |
|
invoiceno |
(Td.TipoSaft + " " + ft.ndoc + "/" + ft.fno) |
Obrigatório. Tipo para SAFT + espaço + Nº interno da série + "/" + Nº do documento |
|
invoicetype |
Td.tiposaft |
Obrigatório. Tipo para SAFT |
|
Paisncontcliente |
Ft2.pncont |
Obrigatório. Iniciais do País de origem |
|
regimeiva |
Ft2.descregiva |
Obrigatório. Descrição do Regime de IVA |
|
invoicestatus |
|
Obrigatório. É preenchido com "A" caso o documento esteja anulado e "N" caso contrário. |
Linhas |
versao |
|
Obrigatório. Versão do schema |
|
linha |
|
Obrigatório. Número de linha |
|
codean |
Fi.codigo |
Obrigatório. Código EAN do artigo. |
|
refcliente |
Fi.cliref |
Obrigatório. Referência do cliente |
|
referencia |
Fi.ref |
Obrigatório. Referência do artigo. Veja a Nota no final da página. |
|
descricao |
Fi.design |
Obrigatório. Descrição do artigo |
|
unidade |
Fi.unidade |
Obrigatório. Unidade de medida |
|
unidalternativa |
Fi.unidad2 |
Facultativo. Unidade de medida alternativa |
|
precoliquido |
Fi.etiliquido/fi.qtt sem Iva |
Obrigatório. Preço unitário líquido, ou seja sem IVA |
|
precototal |
Fi.etiliquido sem IVA |
Obrigatório. Preço total líquido, sem IVA |
|
quantidade |
Fi.qtt |
Obrigatório. Quantidade |
|
quantalternativa |
Fi.uni2qtt |
Facultativo. Quantidade alternativa |
|
lote |
Fi.lote |
Facultativo. Lote do artigo |
|
validadelote |
Se.validade |
Facultativo. Este campo da tabela de Lotes guarda a data de validade do lote. |
|
bonus |
|
Obrigatório. Linha de bónus |
|
nota |
Fi.nmobs + fi.lobs2 + fi.lobs3 |
Obrigatório. Nota |
|
motivoisencao |
Fi.motiseimp |
Obrigatório. Descrição do Motivo de Isenção |
|
codmotivoisencao |
Fi.codmotiseimp |
Obrigatório. Código do Motivo de Isenção. Nas linhas se o campo motivo de isenção não estiver preenchido, no xml será usado o campo do cabeçalho |
LinhasDesconto |
|
|
Facultativo. Este elemento guarda os valores do desconto. |
LinhasTaxa |
|
|
Facultativo. Este elemento guarda os valores das taxas aplicadas ao documento IVA, ECO, etc... |
LinhasReferencias |
linha |
|
Obrigatório. Nº de linha |
|
refdata |
Ft.data ou Bo.dataobra |
Obrigatório. Este campo guarda a data do documento de origem que pode ser um Dossier Interno ou outro Documento de Facturação. |
|
refnomedoc |
Ft.doc ou Bo.nmdos |
Obrigatório. Este campo guarda o nome do documento de origem que pode ser um Dossier Interno ou outro Documento de Facturação. |
|
refnumdoc |
Ft.fno ou Bo.obranome |
Obrigatório. Este campo guarda o número do documento de origem que pode ser um Dossier Interno ou outro Documento de Facturação. |
|
reftipodoc |
Ts.rescli ou Td.tipodoc |
Obrigatório. Este campo guarda o tipo de documento. Se o doucmento de origem for um Dossier Interno de Clientes então o seu valor deve ser 5, caso contrário deve ser 0. |
TaxaSubTotal |
|
|
Obrigatório. Este elemento guarda os valores totais das taxas aplicadas ás linhas. |
* O tipo Interno de documento é um campo numérico que guarda o número respectivo de acordo com o tipo de documento que constitui o XML;
1 - Documento de Facturação
2 - Documento de Débito
3 - Documento de Crédito
4 - Guias de Remessa / Facturas proforma
Nota: Quando a Factura tem Lotes e provém de cópia de uma Guia de Remessa o campo da referência fica vazio. Quando tal acontece a aplicação lê o campo
Oref determinando a correcta actualização dos restantes campos ligados a Lotes, como por exemplo a validade do lote.
Para além destes campos que caracterizam o XML Padrão, se o utilizador pretender pode mapear outros.
Para tal, deve na configuração do documento de facturação seleccionar o
Documento XML que
configurou com os novos campos.
Na configuração basta escolher os novos campos e ao criar o documento electrónico, o XML é criado com estes elementos adicionais.
Independentemente de se criarem os elementos com letra maíuscula e minúscula, todos os elementos do XML Padrão vão ser criados com letra minúscula.