...
Nota de Crédito(Nacional y Exportación)
Si el tipo de documento es 0 Entrada, deberá obtener los registros del Encabezado de Factura de Entrada SF1 en dónde: F1_DOC = Número de Documento, F1_SERIE=Serie, F1_CLIENTE= Código del Cliente, F1_LOJA= Códio de Tienda, F1_ESPECIE=Especie (NCC= Nota de Crédito). Se incluirá el punto de entrada M485SQL() para agregar campos adicionales a la consulta.
Por cada documento se obtendrá el detalle de la tabla SD1 y generará el archivo xml como a continuación
<?xml version="1.0" encoding="iso-8859-1"?>
<DTE version="1.1.0" xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance si:noNamespaceSchemaLocation="DTE_v1.0.xsd">
<Documento ID="comprobante">
<Encabezado>
<IdDoc>
<Ambiente> AMBIENTE </Ambiente>
<TipoEmision>N</TipoEmision>
<ContenidoTC>Vacío</ContenidoTC>
<Tipo>Para Nota de crédito Nacionar colocar 61, si es de Exportación colocar 112</Tipo>
<Serie>F1_SERIE</Serie>
<Numero>F1_DOC</Numero>
<Estado>Valor Fijo: ORIGINAL</Estado>
<NumeroInterno>F1_DOC</NumeroInterno>
<FechaEmis>F1_EMISSAO en formato dd-MM-yyyy HH:mm:ss</FechaEmis>
<FechaPago> SE1->E1_VENCTO en formato yyyy-MM-dd </FechaPago>
<-- Fecha pago programado
Se deberá buscar en SE1 según lo siguiente:
Seleccionar la fecha de Vencimiento mayor SE1->E1_VENCTO
En dónde
E1_FILIAL = XFILIAL("SE1")
E1_PREFIXO= F1_SERIE
E1_NUMERO = F1_DUPL
E1_TIPO = F1_ESPECIE
D_E_L_E_T_= ' '
</IdDoc>
<Emisor>
<RegimenContable>VACIO</RegimenContable>
<IDEmisor>SM0->M0_CGC</IDEmisor>
<NmbEmisor>SM0->M0_NOME</NmbEmisor>
<NombreEmisor>
<PrimerNombre>SM0->M0_NOMECOM</PrimerNombre>
</NombreEmisor>
<CodigoEmisor>Vacío</CodigoEmisor>
<FechaInicioActividades>2016-01-01</FechaInicioActividades>
<DomFiscal>
<Calle>SM0->M0_ENDENT</Calle>
<Departamento>SM0->M0_CIDENT</Departamento>
<Ciudad>SM0->M0_CIDENT</Ciudad>
<Municipio>SM0->M0_CIDENT</Municipio>
<Pais>152</Pais>
<CodigoPostal>SM0->M0_CEPENT</CodigoPostal>
</DomFiscal>
<LugarExped>
<Calle>SM0->M0_ENDENT</Calle>
</LugarExped>
</Emisor>
<Receptor>
<DocRecep>
<TipoDocRecep>SA1->A1_TIPDOC</TipoDocRecep>
<NroDocRecep>Si A1_EST <> 'EX' Colocar SA1->A1_CGC sino colocar rut universal 5555555-5</NroDocRecep>
</DocRecep>
<NmbRecep>SA1->A1_NOME<GIRO</NmbRecep>
<NombreRecep>
<PrimerNombre>(cAliasXML)->A1_NOME</PrimerNombre>
<NombreRecep>
<DomFiscalRcp>
<Calle>SA1->A1_END</Calle>
<Ciudad>SA1->A1_BAIRRO</Ciudad>
<Municipio>SA1->A1_MUN</Municipio>
<Pais>Obtener SYA->YA_DESCR con SA1->A1_PAIS</Pais>
<CodigoPostal>SA1->A1_CEP</CodigoPostal>
</DomFiscalRcp>
<LugarRecep>
<Calle>SA1->A1_END</Calle>
<Ciudad>SA1->A1_BAIRRO</Ciudad>
<Municipio>SA1->A1_MUN</Municipio>
<Pais>Obtener SYA->YA_DESCR con SA1->A1_PAIS</Pais>
</LugarRecep >
</Receptor>
<Transporte> Generar en blanco, no eso bligatorio por la SII pero se requiere para pasar el esquema Válido.
<MedioTransporte>
<MetodoTransp>MetodoTransp</MetodoTransp>
</MedioTransporte>
</Transporte>
<Totales>
<Moneda>Obtener con F1_MOEDA,</Moneda> Solo para documentos de Exportación, deberá indicarse con los siguientes códigos: USD PARA DÓLARES, EUR Para Euros.
<SubTotal>SF1->F1_VALMERC - SF1->F1_DESCONT </SubTotal>
<MntDcto>SF1->F1_DESCONT</MntDcto>
<MntBase>SF1->F1_VALMERC </MntBase>
<VlrPagar>SF1->F1_VALBRUT</VlrPagar>
<VlrPalabras> EXTENSO(SF1 ->F1_VALBRUT) </VlrPalabras>
<MontoPropina>0.00</MontoPropina>
</Totales>
Nodo de Impuestos
Obtener los impuestos de la tabla SFB dónde SFB->FB_POLVRO <> 0 y obtener los valores contenidos en los campos F1_VALIMPN, F1_BASEIMPN y F1_ALQIMPN . Dónde N= SFB->FB_POLVRO.
Por cada impuesto generar el siguiente nodo:
<Impuestos>
<TipoImp>SFB->FB_ALIQ</TipoImp>
<CodTasamp>SFB->FB_CODIMP</CodTasamp>
<TasaImp>SFB->FB_CODTAR<TasaImp>
<MontoBAseImp>SF1->F1_BASEIMPN</MontoBAseImp>
<MontoImp>SF1->F1_VALIMPN</MontoImp>
</Impuestos>
Nodo de Descuentos y recargos Globales
Verificar si el campo F2_DESCONT tiene valor > 0, de ser así generará el siguiente nodo:
<DscRcgGlobal>
<NroLinDR>Consecutivo secuencias a 2 digitos</NroLinDR>
<TpoMov>D</TpoMov>
<GlosaDR>Descuentos</GlosaDR>
<TpoValor>$</TpoValor>
<ValorDR>SF1->F1_DESCONT</ValorDR>
</DscRcgGlobal>
Si el campo F1_FRETE tiene valor > 0, generará el siguiente nodo
<DscRcgGlobal>
<NroLinDR>Consecutivo secuencias a 2 digitos</NroLinDR>
<TpoMov>R</TpoMov>
<GlosaDR>Flete</GlosaDR>
<TpoValor>$</TpoValor>
<ValorDR>SF1->F1_FRETE</ValorDR>
</DscRcgGlobal>
Si el campo F1_DESPESA tiene valor > 0, generará el siguiente nodo
<DscRcgGlobal>
<NroLinDR>Consecutivo secuencias a 2 digitos</NroLinDR>
<TpoMov>R</TpoMov>
<GlosaDR>Otros gastos</GlosaDR>
<TpoValor>$</TpoValor>
<ValorDR>SF1->F1_DESPESA</ValorDR>
</DscRcgGlobal>
Si el campo F1_SEGURO tiene valor > 0, generará el siguiente nodo
<DscRcgGlobal>
<NroLinDR>Consecutivo secuencias a 2 digitos</NroLinDR>
<TpoMov>R</TpoMov>
<GlosaDR>Seguro</GlosaDR>
<TpoValor>$</TpoValor>
<ValorDR>SF1->F1_SEGURO</ValorDR>
</DscRcgGlobal>
Terminar el nodo del Encabezado una vez obtenidos todos los impuestos y descuentos.
</Encabezado>
Detalle del documento
Por cada Item encontrado del documento, generará el nodo Detalle:
<Detalle>
<NroLinDet>SD1->D1_ITEM</NroLinDet>
<CdgItem>
<TpoCodigo> SB1->B1_UM </TpoCodigo>
<VlrCodigo> SB1->B1_COD </VlrCodigo>
</CdgItem>
<DscLang>Valor fijo ES</DscLang>
<DscItem>SB1->B1_DESC</DscItem>
<QtyItem>SD1->D1_QUANT</QtyItem>
<PrcNetoItem>SD1->D1_VUNIT</PrcNetoItem>
<DescuentoMonto>SD1->D1_VALDESC</DescuentoMonto>
Desgloce De Impuestos por Item x impuesto
Obtener los impuestos de la tabla SFB dónde SFB->FB_POLVRO <> 0 y obtener los valores contenidos en los campos D1_VALIMPN, D1_BASEIMPN y D1_ALQIMPN . Dónde N= SFB->FB_POLVRO.
<ImpuestosDet>
<TipoImp>SFB->FB_CODIMP</TipoImp>
<CodTasaImp>SFB->FB_CODTAR</CodTasaImp>
<TasaImp>SFB->FB_ALIQ</TasaImp>
<MontoBaseImp>SD1->D1_BASIMPN</MontoBaseImp>
<MontoImp>SD1->D1_VALIMPN</MontoImp>
</ImpuestosDet>
Finalizar nodo Detalle
<MontoNetoItem> SD1->D1_TOTAL - SD1->D1_VALDESC </MontoNetoItem>
</Detalle>
Nodo de Referencia
Buscar en la tabla SE5 las facturas relacionadas a la nota de Crédito en cuestión, en donde E5_DOCUMEN = F1_SERIE + F1_DUPL+" " + F1_ESPECIE + F1_LOJA
Una vez obtenidos los registros correspondientes en SE5, buscar dicho documento en la tabla SF2 y generar el nodo de Referencia, como sigue:
<Referencia>
<NroLinRef>1</NroLinRef>
<TpoDocRef> Por ley, la referencia debe ser uma factura, si es nacional la NCC debe colocarse 33, si es de exportación debe colocarse 110</TpoDocRef>
<NumeroRef> substr(F2_DOC,len(F2_DOC)-8,9)+ </NumeroRef>
<FechaRef> + F1_EMISSAO + F1_hora en formato yyyy+MM+ddThh:mm:ssZ+ '</FechaRef>
<CodRef> + F1_ + '</CodRef>
<RazonRef> + F1_MOTIVO + '</RazonRef>
</Referencia>
Nodo CAE
<CAE>
<Tipo>Fijo String</Tipo>
<NumeroInicial>F1_DOC</NumeroInicial>
<NumeroFinal>F1_DOC</NumeroFinal>
<NroResolucion>F1_DOC</NroResolucion>
<FechaResolucion>F1_EMISSAO en formato yyyy-MM-dd</FechaResolucion>
</CAE>
NodoTimeStamP
Fecha y hora en que se generó el documento con formato yyyy-MM-ddTHH:MI:SS.
<TimeStamp>SF1->F1_EMISSAO</TimeStamp>
En esta parte se generará el punto de Entrada M485XMLNCC, para adicionar mas campos personalizados .
Al finalizar este elemento, deberá cerrar el nodo document
</Document>
Finalizar document DTE
</DTE>
Nota de Débito Nacional y Exportación
Si el tipo es 1 Salida, deberá obtener los registros del Encabezado de Factura de Venta SF2 en dónde: F2_DOC=Número de Documento, F2_SERIE=Serie, F2_CLIENTE= Codigo de Cliente , F2_LOJA= Código de Tienda y F2_ESPECIE= Especie (NF= Factura Venta, NDC= Nota Débito). Se incluirá el punto de entrada M485SQL() para agregar campos adicionales a la consulta.
Obtener el detalle del documento de la tabla SD2, para el documento en proceso.
Y generar el xml como a continuación:
Independientemente del tipo de documento deberá llevar
<?xml version="1.0" encoding="iso-8859-1"?>
<DTE version="1.1.0" xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance si:noNamespaceSchemaLocation="DTE_v1.0.xsd">
<Documento ID="comprobante">
<Encabezado>
<IdDoc>
<Ambiente>Valor del parámetro AMBIENTE</Ambiente>
<TipoEmision> Valor fijo 'N'</TipoEmision>
<ContenidoTC>Vacío</ContenidoTC>
<Tipo>56 para Nota de Débito Nacional y 111 para Nota de Débito de Exportación </Tipo>
<Serie>F2_SERIE</Serie>
<Numero>F2_DOC</Numero>
<Estado>Valor Fijo: ORIGINAL</Estado>
<NumeroInterno>SF2->F2_DOC</NumeroInterno>
<FechaEmis>F2_EMISSAO en formato dd-MM-yyyy HH:mm:ss</FechaEmis>
<FormaPago>Verificar con F2_COND, si es Contado colocar 1, si es crédito colocar 2, si es gratuido colocar 3</FormaPago>
<FechaVenc> SE1->E1_VENCTO en formato yyyy-MM-dd </FechaVenc>
<FechaPago> SE1->E1_VENCTO en formato yyyy-MM-dd</FechaPago>
<-- Fecha pago programado
Se deberá buscar en SE1 según lo siguiente:
Seleccionar la fecha de Vencimiento mayor SE1->E1_VENCTO
En dónde
E1_FILIAL = XFILIAL("SE1")
E1_PREFIXO= F2_SERIE
E1_NUMERO = F2_DUPL
E1_TIPO = F2_ESPECIE
D_E_L_E_T_= ''
</IdDoc>
<Emisor>
<RegimenContable>VACIO</RegimenContable>
<IDEmisor>SM0->M0_CGC</IDEmisor>
<NmbEmisor>SM0->M0_NOME</NmbEmisor>
<NombreEmisor>
<PrimerNombre>SM0->M0_NOMECOM</PrimerNombre>
</NombreEmisor>
<CodigoEmisor>Vacío</CodigoEmisor>
<FechaInicioActividades>2016-01-01</FechaInicioActividades>
<DomFiscal>
<Calle>SM0->M0_ENDENT</Calle>
<Departamento>SM0->M0_CIDENT</Departamento>
<Ciudad>SM0->M0_CIDENT</Ciudad>
<Municipio>SM0->M0_CIDENT</Municipio>
<Pais>152</Pais>
<CodigoPostal>SM0->M0_CEPENT</CodigoPostal>
</DomFiscal>
<LugarExped>
<Calle>SM0->M0_ENDENT</Calle>
</LugarExped>
</Emisor>
<Receptor>
<DocRecep>
<TipoDocRecep>SA1->A1_TIPDOC</TipoDocRecep>
<NroDocRecep>Si A1_EST <> 'EX' Colocar SA1->A1_CGC sino colocar rut universal 5555555-5</NroDocRecep>
</DocRecep>
<NmbRecep>SA1->A1_NOME</NmbRecep>
<NombreRecep>
<PrimerNombre>(cAliasXML)->A1_NOME</PrimerNombre>
<NombreRecep>
<DomFiscalRcp>
<Calle>SA1->A1_END</Calle>
<Ciudad>SA1->A1_BAIRRO</Ciudad>
<Municipio>SA1->A1_MUN</Municipio>
<Pais>Obtener SYA->YA_DESCR con SA1->A1_PAIS</Pais>
<CodigoPostal>SA1->A1_CEP</CodigoPostal>
</DomFiscalRcp>
<LugarRecep>
<Calle>SA1->A1_END</Calle>
<Ciudad>SA1->A1_BAIRRO</Ciudad>
<Municipio>SA1->A1_MUN</Municipio>
<Pais>Obtener SYA->YA_DESCR con SA1->A1_PAIS</Pais>
</LugarRecep >
</Receptor>
<Transporte>
<MedioTransporte>
<MetodoTransp>MetodoTransp</MetodoTransp>
</MedioTransporte>
</Transporte>
<Totales>
<Moneda>Obtener con F2_MOEDA</Moneda>
<SubTotal>SF2->F2_VALMERC</SubTotal>
<MntDcto>SF2->F2_DESCONT</MntDcto>
<VlrPagar>SF2->F2_VALBRUT</VlrPagar>
<MontoPropina>0.00</MontoPropina>
</Totales>
Nodo de Impuestos
Obtener los impuestos de la tabla SFB dónde SFB->FB_POLVRO <> 0 y obtener los valores contenidos en los campos F2_VALIMPN, F2_BASEIMPN y F2_ALQIMPN y FB_CODRET=' '. Dónde N= SFB->FB_POLVRO.
Por cada impuesto generar el siguiente nodo:
<Impuestos>
<TipoImp>SFB->FB_ALIQ</TipoImp>
<CodTasamp>FB_CODIMP</CodTasamp>
<TasaImp>FB_CODTAR<TasaImp>
<MontoBAseImp>SF2->F2_BASEIMPN</MontoBAseImp>
<MontoImp>SF2->F2_VALIMPN</MontoImp>
</Impuestos>
Nodo de Descuentos y recargos Globales
Verificar si el campos F2_DESCONT tiene valor > 0, de ser así generará el siguiente nodo:
<DscRcgGlobal>
<NroLinDR>Consecutivo secuencias a 2 digitos</NroLinDR>
<TpoMov>D</TpoMov>
<GlosaDR>Descuentos</GlosaDR>
<TpoValor>$</TpoValor>
<ValorDR>SF2->F2_DESCONT</ValorDR>
</DscRcgGlobal>
Si el campo F2_FRETE tiene valor > 0 generará el siguiente nodo
<DscRcgGlobal>
<NroLinDR>Consecutivo secuencias a 2 digitos</NroLinDR>
<TpoMov>R</TpoMov>
<GlosaDR>Flete</GlosaDR>
<TpoValor>$</TpoValor>
<ValorDR>SF2->F2_FRETE</ValorDR>
</DscRcgGlobal>
Si el campo F2_DESPESA tiene valor > 0 generará el siguiente nodo
<DscRcgGlobal>
<NroLinDR>Consecutivo secuencias a 2 digitos</NroLinDR>
<TpoMov>R</TpoMov>
<GlosaDR>Otros gastos</GlosaDR>
<TpoValor>$</TpoValor>
<ValorDR>SF2->F2_DESPESA</ValorDR>
</DscRcgGlobal>
Si el campo F2_SEGURO tiene valor > 0 generará el siguiente nodo
<DscRcgGlobal>
<NroLinDR>Consecutivo secuencias a 2 digitos</NroLinDR>
<TpoMov>R</TpoMov>
<GlosaDR>Seguro</GlosaDR>
<TpoValor>$</TpoValor>
<ValorDR>SF2->F2_SEGURO</ValorDR>
</DscRcgGlobal>
Terminar nodo Encabezado una vez obtenidos todos los impuestos y descuentos globales
</Encabezado>
Detalle del documento
Por cada Item encontrado del documento, generará el nodo Detalle:
<Detalle>
<NroLinDet>SD2->D2_ITEM</NroLinDet>
<CdgItem>
<TpoCodigo> SB1->B1_UM </TpoCodigo>
<VlrCodigo> SB1->B1_COD </VlrCodigo>
</CdgItem>
<DscLang>Valor fijo ES</DscLang>
<DscItem>SB1->B1_DESC</DscItem>
<QtyItem>SD2->D2_QUANT</QtyItem>
<PrcNetoItem> ((cAliasXML)>D2_TOTAL + (cAliasXML)>D2_DESCON)/(cAliasXML)->D2_QUANT</PrcNetoItem>
<DescuentoMonto>SD2->D2_DESCON/SD2->D2_QUANT</DescuentoMonto>
<MontoNetoItem> SD2->D2_TOTAL </MontoNetoItem>
Desgloce De Impuestos por Item x impuesto
Obtener los impuestos de la tabla SFB dónde SFB->FB_POLVRO <> 0 y obtener los valores contenidos en los campos F2_VALIMPN, F2_BASEIMPN y F2_ALQIMPN y FB_CODRET=' '. Dónde N= SFB->FB_POLVRO.
<ImpuestosDet>
<TipoImp>SFB->FB_CODIMP</TipoImp>
<CodTasaImp>SFB->FB_CODTAR</CodTasaImp>
<TasaImp>SFB->FB_ALIQ</TasaImp>
<MontoBaseImp>SD2->D2_BASIMPN</MontoBaseImp>
<MontoImp>SD2->D1_VALIMPN</MontoImp>
</ImpuestosDet>
Finalizar nodo Detalle
</Detalle>
Nodo de Referencia
Obtener el documento(NF,NCC) del cliente ligada a la nota de débito mediante los campos F2_NFREF Y F2_SERREF y obtener:
<Referencia>
<NroLinRef>1</NroLinRef>
<TpoDocRef>Si el documento de referencia es factura nacional colocar 33, si es de Exportación colocar 110. Si el documento de referencia es una nota de crédito nacional colocar 61, si es de exportación colocar 112</TpoDocRef>
<NumeroRef>F2_DOC+ </NumeroRef>
<FechaRef> F2_EMISSAO '</FechaRef>
<CodRef> F2_TIPREF '</CodRef>
<RazonRef> F2_MOTIVO '</RazonRef>
</Referencia>
Nodo CAE
<CAE>
<Tipo>Fijo String</Tipo>
<NumeroInicial>F2_DOC</NumeroInicial>
<NumeroFinal>F2_DOC</NumeroFinal>
<NroResolucion>F2_DOC</NroResolucion>
<FechaResolucion>F2_EMISSAO</FechaResolucion>
</CAE>
NodoTimeStamP
Fecha y hora en que se generó el documento con formato dd-MM-yyyyTHH:MI:SS.
<TimeStamp>SF2->F2_EMISSAO</TimeStamp>
En esta parte deberá generarán los puntos de Entrada M485XMLNDC para nota de débito y M485XMLNF para Factura, para adicionar campos personalizados.
Al finalizar este element, deberá cerrar el nodo document.
</Document>
Finalizar document DTE
</DTE>
Factura de Venta Nacional, de Exportación y Guías de Despacho
Si el tipo es 1 Salida, deberá obtener los registros del Encabezado de Factura de Venta SF2 en dónde: F2_DOC=Número de Documento, F2_SERIE=Serie, F2_CLIENTE= Codigo de Cliente , F2_LOJA= Código de Tienday F2_ESPECIE= Especie (NF= Factura Venta, RNF=Guía de Despacho) ).
Obtener detalle del documento de la tabla SD2 para el documento en proceso. Si la TES de los ITEMs del documento, se encuentra contenida en el parámetro MV_TESEXC, el documento será tratado como Factura Excenta de IVA.
Y generará el xml como a continuación:
Independientemente del tipo de documento deberá llevar
<?xml version="1.0" encoding="iso-8859-1"?>
<DTE version="1.1.0" xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance si:noNamespaceSchemaLocation="DTE_v1.0.xsd">
<Documento ID="comprobante">
<Encabezado>
<IdDoc>
<Ambiente>Valor del parámetro AMBIENTE</Ambiente>
<TipoEmision>1</TipoEmision>
<ContenidoTC>Vacío</ContenidoTC>
<Tipo> Si es factura Nacional colocar 33, si es factura Excenta colocar 34, si es factura de Esportación Exportación colocar 110, Si es guía de Despacho colocar 52</Tipo>
<Serie>F2_SERIE</Serie>
<Numero>F2_DOC<Numero>
<NumeroInterno>F1_DOC</NumeroInterno>
<Estado>Valor Fijo: ORIGINAL</Estado>
<FechaEmis>F2_EMISSAO en formato dd-MM-yyyy HH:mm:ss</FechaEmis>
<FechaPago> SE1->E1_VENCTO en formato yyyy-MM-dd</FechaPago>
<-- Fecha pago programado
Se deberá buscar en SE1 según lo siguiente:
Seleccionar la fecha de Vencimiento mayor SE1->E1_VENCTO
En dónde
E1_FILIAL = XFILIAL("SE1")
E1_PREFIXO= F2_SERIE
E1_NUMERO = F2_DUPL
E1_TIPO = F2_ESPECIE
D_E_L_E_T_= ''
</IdDoc>
<Emisor>
<RegimenContable>VACIO</RegimenContable>
<IDEmisor>SM0->M0_CGC</IDEmisor>
<NmbEmisor>SM0->M0_NOME</NmbEmisor>
<NombreEmisor>
<PrimerNombre>SM0->M0_NOMECOM</PrimerNombre>
</NombreEmisor>
<CodigoEmisor>Vacío</CodigoEmisor>
<FechaInicioActividades>2016-01-01</FechaInicioActividades>
<DomFiscal>
<Calle>SM0->M0_ENDENT</Calle>
<Departamento>SM0->M0_CIDENT</Departamento>
<Ciudad>SM0->M0_CIDENT</Ciudad>
<Municipio>SM0->M0_CIDENT</Municipio>
<Pais>152</Pais>
<CodigoPostal>SM0->M0_CEPENT</CodigoPostal>
</DomFiscal>
<LugarExped>
<Calle>SM0->M0_ENDENT</Calle>
</LugarExped>
</Emisor>
<Receptor>
<DocRecep>
<TipoDocRecep>SA1->A1_TIPDOC</TipoDocRecep>
<NroDocRecep>Si A1_EST <> 'EX' Colocar SA1->A1_CGC sino colocar rut universal 5555555-5</NroDocRecep>
</DocRecep>
<NmbRecep>SA1->A1_NOME</NmbRecep>
<NombreRecep>
<PrimerNombre>(cAliasXML)->A1_NOME</PrimerNombre>
<NombreRecep>
<DomFiscalRcp>
<Calle>SA1->A1_END</Calle>
<Ciudad>SA1->A1_BAIRRO</Ciudad>
<Municipio>SA1->A1_MUN</Municipio>
<Pais>Obtener SYA->YA_DESCR con SA1->A1_PAIS</Pais>
<CodigoPostal>SA1->A1_CEP</CodigoPostal>
</DomFiscalRcp>
<LugarRecep>
<Calle>SA1->A1_END</Calle>
<Ciudad>SA1->A1_BAIRRO</Ciudad>
<Municipio>SA1->A1_MUN</Municipio>
<Pais>Obtener SYA->YA_DESCR con SA1->A1_PAIS</Pais>
</LugarRecep >
</Receptor>
<Transporte>
<MedioTransporte>
<MetodoTransp>MetodoTransp</MetodoTransp>
</MedioTransporte>
</Transporte>
<Totales>
<Moneda>Obtener con F2_MOEDA</Moneda> Aplica solamente para Factura de Exportación
<SubTotal>SF2->F2_VALMERC – SF2->F2_DESCONT</SubTotal>
<MntDcto>SF2->F2_DESCONT</MntDcto>
<MntoBase>SF2->F2_VALMERC</MntoBase>
<VlrPagar>SF2->F2_VALBRUT</VlrPagar>
<VlrPalabras> EXTENSO( SF2->F2_VALBRUT)</VlrPalabras>
<MontoPropina>0</MontoPropina>
</Totales>
Nodo de Impuestos
Obtener los impuestos de la tabla SFB dónde SFB->FB_POLVRO <> 0 y obtener los valores contenidos en los campos F2_VALIMPN, F2_BASEIMPN y F2_ALQIMPN y FB_CODRET=' '. Dónde N= SFB->FB_POLVRO.
Por cada impuesto generará el siguiente nodo:
<Impuestos>
<TipoImp>SFB->FB_ALIQ</TipoImp>
<CodTasamp>FB_CODIMP</CodTasamp>
<TasaImp>FB_CODTAR<TasaImp>
<MontoBAseImp>SF2->F2_BASEIMPN</MontoBAseImp>
<MontoImp>SF2->F2_VALIMPN</MontoImp>
</Impuestos>
Nodo de Descuentos y recargos Globales
Verificar si el campos F2_DESCONT tiene valor > 0, de ser así generará el siguiente nodo:
<DscRcgGlobal>
<NroLinDR>Consecutivo secuencias a 2 digitos</NroLinDR>
<TpoMov>D</TpoMov>
<GlosaDR>Descuentos</GlosaDR>
<TpoValor>$</TpoValor>
<ValorDR>SF2->F2_DESCONT</ValorDR>
</DscRcgGlobal>
Si el campo F2_FRETE tiene valor > 0 generará el siguiente nodo
<DscRcgGlobal>
<NroLinDR>Consecutivo secuencias a 2 digitos</NroLinDR>
<TpoMov>R</TpoMov>
<GlosaDR>Flete</GlosaDR>
<TpoValor>$</TpoValor>
<ValorDR>SF2->F2_FRETE</ValorDR>
</DscRcgGlobal>
Si el campo F2_DESPESA tiene valor > 0 generará el siguiente nodo
<DscRcgGlobal>
<NroLinDR>Consecutivo secuencias a 2 digitos</NroLinDR>
<TpoMov>R</TpoMov>
<GlosaDR>Otros gastos</GlosaDR>
<TpoValor>$</TpoValor>
<ValorDR>SF2->F2_DESPESA</ValorDR>
</DscRcgGlobal>
Si el campo F2_SEGURO tiene valor > 0 generará el siguiente nodo
<DscRcgGlobal>
<NroLinDR>Consecutivo secuencias a 2 digitos</NroLinDR>
<TpoMov>R</TpoMov>
<GlosaDR>Seguro</GlosaDR>
<TpoValor>$</TpoValor>
<ValorDR>SF2->F2_SEGURO</ValorDR>
</DscRcgGlobal>
Terminar nodo Encabezado una vez obtenidos todos los impuestos y descuentos globales
</Encabezado>
Detalle del documento
Por cada Item encontrado del documento, generar:
<Detalle>
<NroLinDet>SD1->D1_ITEM</NroLinDet>
<CdgItem>
<TpoCodigo> SB1->B1_UM </TpoCodigo>
<VlrCodigo> SB1->B1_COD </VlrCodigo>
</CdgItem>
Âncora | ||||
---|---|---|---|---|
|
...