Adeudos Directos SEPA en euros Esquema B2B

Re: Adeudos Directos SEPA en euros Esquema B2B

Postby hmpaquito » Wed Jan 29, 2014 8:54 am

Parece que en el formato texto 19.14 o 19.44, la referencia:

Campo 7: Identificación del fichero: referencia que asigna el presentador al fichero, para su envío a
la entidad receptora.

Esta referencia se estructurará de la siguiente manera, tomando los datos generados
por el ordenador del presentador en el momento de la creación del fichero:
• Indicador del tipo de mensaje (3 caracteres)
• AAAAMMDD (año, mes y día) = (8 caracteres)
• HHMMSSmmmmm (hora minuto segundo y 5 posiciones de milisegundos = 11
caracteres)
• Referencia identificativa que asigne el presentador (13 caracteres)

El indicador de tipo de mensaje tomará el valor:

PRE Fichero de presentación de adeudos

Un ejemplo de Identificación de un fichero de presentación:
PRE20101105223542122450159300491893
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Adeudos Directos SEPA en euros Esquema B2B

Postby Verhoven » Mon Mar 17, 2014 9:01 pm

¿Está alguien usándolo ya de forma habitual para generar recibos domiciliados?. Parece que en general en los bancos se siguen aceptando los ficheros planos de texto con las normas antiguas pues los clientes de las empresas que generan estos recibos se resisten a firmar la orden de pago, por aquello de no poder devolver los recibos si no están de acuerdo, y antes que perder clientes prefieren seguir trabajando como hasta ahora.

¿Hay alguna recopilación de funciones para el asunto SEPA?.

Saludos.
Verhoven
 
Posts: 505
Joined: Sun Oct 09, 2005 7:23 pm

Re: Adeudos Directos SEPA en euros Esquema B2B

Postby informaticaeloy » Mon Mar 17, 2014 10:38 pm

Hola. Precisamente, a mis clientes, hoy les han notificado desde Ibarcaja que el 17 de marzo funcionaría la norma 19 y el día 18 no, así que aquí estoy, preparando la 19.14
Windows 10 + FWH 20.08 + BCC 7.4 + Harbour 3.2.0 + PSPad 5.0.3
User avatar
informaticaeloy
 
Posts: 118
Joined: Fri Dec 20, 2013 10:39 am
Location: Zaragoza, España

Re: Adeudos Directos SEPA en euros Esquema B2B

Postby mgsoft » Thu Oct 02, 2014 4:47 pm

Hola,

Un cliente mío de Barcelona tiene problemas con el carácter ’, que es el chr(146) pero en ascii no me sale en el MED, pero sí que lo meten al programa, y no se admite por SEPA.

¿A alguien le ha sucedido?.

Muchas gracias!.
Saludos,

Eduardo
User avatar
mgsoft
 
Posts: 422
Joined: Mon Aug 17, 2009 12:18 pm
Location: España

Re: Adeudos Directos SEPA en euros Esquema B2B

Postby FiveWiDi » Tue Oct 07, 2014 4:43 pm

mgsoft wrote:Hola,

Un cliente mío de Barcelona tiene problemas con el carácter ’, que es el chr(146) pero en ascii no me sale en el MED, pero sí que lo meten al programa, y no se admite por SEPA.

¿A alguien le ha sucedido?.

Muchas gracias!.

SEPA dice que admite todos estos:

Local cCaracteresOK := "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

cCaracteresOk := cCaracteresOk + Lower( cCaracteresOk )
cCaracteresOk := cCaracteresOk + "1234567890"
cCaracteresOk := cCaracteresOk + "/-?:().,'+ "

y consigo meterle un literal (sacado del fichero TXT que le doy al banco) así (sin las doble comillas):

"...edelroser.COM 'Consulta rebut' Codi:..."

Saludos,
Un Saludo
Carlos G.

FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
FiveWiDi
 
Posts: 1060
Joined: Mon Oct 10, 2005 2:38 pm

Re: Adeudos Directos SEPA en euros Esquema B2B

Postby elvira » Sat Nov 07, 2015 5:30 pm

Hola,

Alguno tiene funcionando el xml?. El Banco dice que desde febrero de 2016 todo tiene que ser xml y no admitirán txt!!!!.

Muy agradecida.
elvira
 
Posts: 515
Joined: Fri Jun 29, 2012 12:49 pm

Re: Adeudos Directos SEPA en euros Esquema B2B

Postby hmpaquito » Wed Nov 25, 2015 6:39 pm

Muy estimados,

Se acerca la fatídica fecha del primero de febrero de 2016.

Ese día parece que nuestras remesas habrán de estar codificadas en formato xml. Los
usuarios ya empiezan a estar nerviosos porque los bancos ya les van dando "toquecitos"
de que tienen que pasarselas como archivos .xml.

Probando la clase de Joaquín Ferrer (gracias Joaquin) me encuentro que me da errores.
¿ Alguien la está usando en producción ?

gracias de antemano.

PD. Aquí los errores generados con el testSEPA.xml contra su schema:

    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}MsgId': [facet 'maxLength'] The value has a length of '36'; this exceeds the allowed maximum length of '35'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}MsgId': '
    PRE2015112518544068080REMESA001 ' is not a valid value of the atomic type '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}Max35Text'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}CreDtTm': '
    2015-11-25T18:54:40' is not a valid value of the atomic type '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}ISODateTime'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}NbOfTxs': [facet 'pattern'] The value '
    3' is not accepted by the pattern '[0-9]{1,15}'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}NbOfTxs': '
    3' is not a valid value of the atomic type '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}Max15NumericText'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}BICOrBEI': [facet 'pattern'] The value '
    BSABESBBXXX' is not accepted by the pattern '[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}BICOrBEI': '
    BSABESBBXXX' is not a valid value of the atomic type '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}AnyBICIdentifier'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}PmtInfId': [facet 'maxLength'] The value has a length of '37'; this exceeds the allowed maximum length of '35'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}PmtInfId': '
    PRE2015112518544068080REMESA001-0001' is not a valid value of the atomic type '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}Max35Text'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}PmtMtd': [facet 'enumeration'] The value '
    DD' is not an element of the set {'DD'}.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}PmtMtd': '
    DD' is not a valid value of the atomic type '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}PaymentMethod2Code'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}BtchBookg': '
    TRUE' is not a valid value of the atomic type '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}BatchBookingIndicator'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}NbOfTxs': [facet 'pattern'] The value '
    1' is not accepted by the pattern '[0-9]{1,15}'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}NbOfTxs': '
    1' is not a valid value of the atomic type '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}Max15NumericText'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}Cd': [facet 'maxLength'] The value has a length of '5'; this exceeds the allowed maximum length of '4'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}Cd': '
    SEPA' is not a valid value of the atomic type '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}ExternalServiceLevel1Code'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}SeqTp': [facet 'enumeration'] The value '
    RCUR' is not an element of the set {'FRST', 'RCUR', 'FNAL', 'OOFF'}.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}SeqTp': '
    RCUR' is not a valid value of the atomic type '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}SequenceType1Code'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}ReqdColltnDt': '
    2014-03-03' is not a valid value of the atomic type '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}ISODate'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}ChrgBr': This element is not expected. Expected is ( {urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}CdtrAcct ).
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}PmtInfId': [facet 'maxLength'] The value has a length of '37'; this exceeds the allowed maximum length of '35'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}PmtInfId': '
    PRE2015112518544068080REMESA001-0001' is not a valid value of the atomic type '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}Max35Text'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}PmtMtd': [facet 'enumeration'] The value '
    DD' is not an element of the set {'DD'}.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}PmtMtd': '
    DD' is not a valid value of the atomic type '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}PaymentMethod2Code'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}BtchBookg': '
    TRUE' is not a valid value of the atomic type '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}BatchBookingIndicator'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}NbOfTxs': [facet 'pattern'] The value '
    1' is not accepted by the pattern '[0-9]{1,15}'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}NbOfTxs': '
    1' is not a valid value of the atomic type '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}Max15NumericText'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}Cd': [facet 'maxLength'] The value has a length of '5'; this exceeds the allowed maximum length of '4'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}Cd': '
    SEPA' is not a valid value of the atomic type '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}ExternalServiceLevel1Code'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}SeqTp': [facet 'enumeration'] The value '
    RCUR' is not an element of the set {'FRST', 'RCUR', 'FNAL', 'OOFF'}.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}SeqTp': '
    RCUR' is not a valid value of the atomic type '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}SequenceType1Code'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}ReqdColltnDt': '
    2014-03-13' is not a valid value of the atomic type '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}ISODate'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}ChrgBr': This element is not expected. Expected is ( {urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}CdtrAcct ).
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}PmtInfId': [facet 'maxLength'] The value has a length of '37'; this exceeds the allowed maximum length of '35'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}PmtInfId': '
    PRE2015112518544068080REMESA001-0001' is not a valid value of the atomic type '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}Max35Text'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}PmtMtd': [facet 'enumeration'] The value '
    DD' is not an element of the set {'DD'}.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}PmtMtd': '
    DD' is not a valid value of the atomic type '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}PaymentMethod2Code'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}BtchBookg': '
    TRUE' is not a valid value of the atomic type '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}BatchBookingIndicator'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}NbOfTxs': [facet 'pattern'] The value '
    1' is not accepted by the pattern '[0-9]{1,15}'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}NbOfTxs': '
    1' is not a valid value of the atomic type '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}Max15NumericText'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}Cd': [facet 'maxLength'] The value has a length of '5'; this exceeds the allowed maximum length of '4'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}Cd': '
    SEPA' is not a valid value of the atomic type '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}ExternalServiceLevel1Code'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}SeqTp': [facet 'enumeration'] The value '
    RCUR' is not an element of the set {'FRST', 'RCUR', 'FNAL', 'OOFF'}.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}SeqTp': '
    RCUR' is not a valid value of the atomic type '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}SequenceType1Code'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}ReqdColltnDt': '
    2014-03-23' is not a valid value of the atomic type '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}ISODate'.
    ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}ChrgBr': This element is not expected. Expected is ( {urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}CdtrAcct ).

hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: Adeudos Directos SEPA en euros Esquema B2B

Postby andaretor » Wed Dec 02, 2015 11:19 am

Hola:
Yo lo he hecho un poco rudimentario pero me lo ha aceptado el banco. Aquí os dejo cómo he elaborado el XML.
Espero que os sirva.

Ahora estoy con el tema de las devoluciones.

Un saludo.


fichero := "PRUEBA.xml"
nHandle:= FCreate( fichero )
// RAIZ DEL MENSAJE
cadena := "<?xml version=" + CHR(34) + "1.0" + CHR(34) + " encoding=" + CHR(34) + "utf-8" + CHR(34) + "?>"
FWriteLn( nHandle , cadena )
cadena := "<Document xmlns=" + CHR(34) + "urn:iso:std:iso:20022:tech:xsd:pain.008.001.02" + CHR(34) + " xmlns:xsi=" + CHR(34) + "http://www.w3.org/2001/XMLSchema-instance" + CHR(34) + ">"
FWriteLn( nHandle , cadena )
cadena := "<CstmrDrctDbtInitn>"
FWriteLn( nHandle , cadena )
// CABECERA
cadena := "<GrpHdr>"
FWriteLn( nHandle , cadena )
cadena := "<MsgId>" + "PRE" + Str( Year( date() ), 4 ) + Padl( Month( date() ), 2, "0" ) + Padl( Day( date() ), 2, "0" ) + Padr( cTime, 11, "0" ) + Padr( oDatos[ ( dbGesBanco )->( fieldpos( "Codigo" ) ) ], 13, "0" ) + "</MsgId>"
FWriteLn( nHandle , cadena )
cadena := "<CreDtTm>" + Str( Year( date() ), 4 ) + "-" + Padl( Month( date() ), 2, "0" ) + "-" + Padl( Day( date() ), 2, "0" ) + "T" + time() + "</CreDtTm>"
FWriteLn( nHandle , cadena )
cadena := "<NbOfTxs>" + AllTrim( Str( nCont ) ) + "</NbOfTxs>"
FWriteLn( nHandle , cadena )
cadena := "<CtrlSum>" + AllTrim( Transform( nTotImp, cPictImpSEPA(.F.) ) ) + "</CtrlSum>"
FWriteLn( nHandle , cadena )
cadena := "<InitgPty>"
FWriteLn( nHandle , cadena )
cadena := "<Nm>" + AllTrim( Padr( ArreglaNombre( oDatos[ ( dbGesBanco )->( fieldpos( "NOMBRE" ) ) ] ), 70, " " ) ) + "</Nm>"
FWriteLn( nHandle , cadena )
cadena := "<Id>"
FWriteLn( nHandle , cadena )
cadena := "<OrgId>"
FWriteLn( nHandle , cadena )
cadena := "<Othr>"
FWriteLn( nHandle , cadena )
cadena := "<Id>" + AllTrim( "ES" + cGetDigitIDSEPA( AllTrim( oDatos[ ( dbGesBanco )->( fieldpos( "NIF" ) ) ] ), "ES" ) + oDatos[ ( dbGesBanco )->( fieldpos( "Sufijo" ) ) ] + Padr( oDatos[ ( dbGesBanco )->( fieldpos( "NIF" ) ) ], 28, " " ) ) + "</Id>"
FWriteLn( nHandle , cadena )
cadena := "</Othr>"
FWriteLn( nHandle , cadena )
cadena := "</OrgId>"
FWriteLn( nHandle , cadena )
cadena := "</Id>"
FWriteLn( nHandle , cadena )
cadena := "</InitgPty>"
FWriteLn( nHandle , cadena )
cadena := "</GrpHdr>"
FWriteLn( nHandle , cadena )

// INFORMACION DEL PAGO
cadena := "<PmtInf>"
FWriteLn( nHandle , cadena )
cadena := "<PmtInfId>" + Str( Year( date() ), 4 ) + Padl( Month( date() ), 2, "0" ) + Padl( Day( date() ), 2, "0" ) + Padr( cTime, 11, "0" ) + Padr( oDatos[ ( dbGesBanco )->( fieldpos( "Codigo" ) ) ], 13, "0" ) + "</PmtInfId>"
FWriteLn( nHandle , cadena )
cadena := "<PmtMtd>DD</PmtMtd>"
FWriteLn( nHandle , cadena )
cadena := "<PmtTpInf>"
FWriteLn( nHandle , cadena )
cadena := "<SvcLvl>"
FWriteLn( nHandle , cadena )
cadena := "<Cd>SEPA</Cd>"
FWriteLn( nHandle , cadena )
cadena := "</SvcLvl>"
FWriteLn( nHandle , cadena )
cadena := "<LclInstrm>"
FWriteLn( nHandle , cadena )
cadena := "<Cd>CORE</Cd>"
FWriteLn( nHandle , cadena )
cadena := "</LclInstrm>"
FWriteLn( nHandle , cadena )
cadena := "<SeqTp>RCUR</SeqTp>"
FWriteLn( nHandle , cadena )
cadena := "</PmtTpInf>"
FWriteLn( nHandle , cadena )
cadena := "<ReqdColltnDt>" + Str( Year( dFecha ), 4 ) + "-" + Padl( Month( dFecha ), 2, "0" ) + "-" + Padl( Day( dFecha ), 2, "0" ) + "</ReqdColltnDt>"
FWriteLn( nHandle , cadena )
cadena := "<Cdtr>"
FWriteLn( nHandle , cadena )
cadena := "<Nm>" + AllTrim( Padr( ArreglaNombre( oDatos[ ( dbGesBanco )->( fieldpos( "NOMBRE" ) ) ] ), 70, " " ) ) + "</Nm>"
FWriteLn( nHandle , cadena )
cadena := "</Cdtr>"
FWriteLn( nHandle , cadena )
cadena := "<CdtrAcct>"
FWriteLn( nHandle , cadena )
cadena := "<Id>"
FWriteLn( nHandle , cadena )
cadena := "<IBAN>" + AllTrim( Padr( oDatos[ ( dbGesBanco )->( fieldpos( "CCCABONO" ) ) ], 34, " " ) ) + "</IBAN>"
FWriteLn( nHandle , cadena )
cadena := "</Id>"
FWriteLn( nHandle , cadena )
cadena := "</CdtrAcct>"
FWriteLn( nHandle , cadena )
cadena := "<CdtrAgt>"
FWriteLn( nHandle , cadena )
cadena := "<FinInstnId>"
FWriteLn( nHandle , cadena )
cadena := "</FinInstnId>"
FWriteLn( nHandle , cadena )
cadena := "</CdtrAgt>"
FWriteLn( nHandle , cadena )
cadena := "<CdtrSchmeId>"
FWriteLn( nHandle , cadena )
cadena := "<Id>"
FWriteLn( nHandle , cadena )
cadena := "<PrvtId>"
FWriteLn( nHandle , cadena )
cadena := "<Othr>"
FWriteLn( nHandle , cadena )
cadena := "<Id>" + AllTrim( "ES" + cGetDigitIDSEPA( AllTrim( oDatos[ ( dbGesBanco )->( fieldpos( "NIF" ) ) ] ), "ES" ) + oDatos[ ( dbGesBanco )->( fieldpos( "Sufijo" ) ) ] + Padr( oDatos[ ( dbGesBanco )->( fieldpos( "NIF" ) ) ], 28, " " ) ) + "</Id>"
FWriteLn( nHandle , cadena )
cadena := "<SchmeNm>"
FWriteLn( nHandle , cadena )
cadena := "<Prtry>SEPA</Prtry>"
FWriteLn( nHandle , cadena )
cadena := "</SchmeNm>"
FWriteLn( nHandle , cadena )
cadena := "</Othr>"
FWriteLn( nHandle , cadena )
cadena := "</PrvtId>"
FWriteLn( nHandle , cadena )
cadena := "</Id>"
FWriteLn( nHandle , cadena )
cadena := "</CdtrSchmeId>"
FWriteLn( nHandle , cadena )

// INFORMACION DEL ADEUDO DIRECTO
( cDbTmp )->( DbGoTop() )
nCont := 0
nTotImp := 0
nContReg := 0
While ( cDbTmp )->( !Eof() )
If ( cDbTmp )->LSELECT .and. ( cDBTmp )->IMPORTE > 0
nCont ++
nTotImp += ( cDbTmp )->IMPORTE

cadena := "<DrctDbtTxInf>"
FWriteLn( nHandle , cadena )
cadena := "<PmtId>"
FWriteLn( nHandle , cadena )
cadena := "<EndToEndId>" + Padr( "REMESA HERMANDAD REF. "+oDatos[ ( dbGesBanco )->( fieldpos( "Codigo" ) ) ]+( cDbTmp )->CODIGO, 35, " " ) + "</EndToEndId>"
FWriteLn( nHandle , cadena )
cadena := "</PmtId>"
FWriteLn( nHandle , cadena )
cadena := "<InstdAmt Ccy=" + CHR(34) + "EUR" + CHR(34) + ">" + AllTrim( Transform( ( cDbTmp )->IMPORTE, cPictImpSEPA(.F.) ) ) + "</InstdAmt>"
FWriteLn( nHandle , cadena )
cadena := "<DrctDbtTx>"
FWriteLn( nHandle , cadena )
cadena := "<MndtRltdInf>"
FWriteLn( nHandle , cadena )
cadena := "<MndtId>" + Padr( ( cDbTmp )->REFBANCO, 35, " " ) + "</MndtId>"
FWriteLn( nHandle , cadena )
cadena := "<DtOfSgntr>" + Str( Year( ( cDbTmp )->MANDATO ), 4 ) + "-" + Padl( Month( ( cDbTmp )->MANDATO ), 2, "0" ) + "-" + Padl( Day( ( cDbTmp )->MANDATO ), 2, "0" ) + "</DtOfSgntr>"
FWriteLn( nHandle , cadena )
cadena := "</MndtRltdInf>"
FWriteLn( nHandle , cadena )
cadena := "</DrctDbtTx>"
FWriteLn( nHandle , cadena )
cadena := "<DbtrAgt>"
FWriteLn( nHandle , cadena )
cadena := "<FinInstnId>"
FWriteLn( nHandle , cadena )
cadena := "</FinInstnId>"
FWriteLn( nHandle , cadena )
cadena := "</DbtrAgt>"
FWriteLn( nHandle , cadena )
cadena := "<Dbtr>"
FWriteLn( nHandle , cadena )
cadena := "<Nm>" + AllTrim( Padr( ArreglaNombre( AllTrim( ( cDbTmp )->NOMBRE ) + " " + AllTrim( ( cDbTmp )->APELLIDOS ) ), 70, " " ) ) + "</Nm>"
FWriteLn( nHandle , cadena )
cadena := "</Dbtr>"
FWriteLn( nHandle , cadena )
cadena := "<DbtrAcct>"
FWriteLn( nHandle , cadena )
cadena := "<Id>"
FWriteLn( nHandle , cadena )
cadena := "<IBAN>" + AllTrim( Padr( "ES" + DCIdentificador( ( cDbTmp )->CBANCO + ( cDbTmp )->COFICINA + ( cDbTmp )->CCUENTA + "ES00" ) + ( cDbTmp )->CBANCO + ( cDbTmp )->COFICINA + ( cDbTmp )->CCUENTA, 34, " " ) ) + "</IBAN>"
FWriteLn( nHandle , cadena )
cadena := "</Id>"
FWriteLn( nHandle , cadena )
cadena := "</DbtrAcct>"
FWriteLn( nHandle , cadena )
cadena := "<RmtInf>"
FWriteLn( nHandle , cadena )
cadena := "<Ustrd>" + AllTrim( Padr( ArreglaNombre( AllTrim( ( cDbTmp )->OBSERV ) ), 140, " " ) ) + "</Ustrd>"
FWriteLn( nHandle , cadena )
cadena := "</RmtInf>"
FWriteLn( nHandle , cadena )
cadena := "</DrctDbtTxInf>"
FWriteLn( nHandle , cadena )
end if
( cDbTmp )->( DbSkip() )
end while

cadena := "</PmtInf>"
FWriteLn( nHandle , cadena )

cadena := "</CstmrDrctDbtInitn>"
FWriteLn( nHandle , cadena )

cadena := "</Document>"
FWriteLn( nHandle , cadena )

FClose(nHandle)
andaretor
 
Posts: 2
Joined: Thu Nov 27, 2014 11:58 am

Re: Adeudos Directos SEPA en euros Esquema B2B

Postby hmpaquito » Wed Dec 02, 2015 11:30 am

Hola Andaretor,

Muchas gracias por tu aporte. Voy a probarlo.

Saludos
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: Adeudos Directos SEPA en euros Esquema B2B

Postby Verhoven » Thu Dec 03, 2015 8:09 pm

Hay funciones que no aparecen:

ArreglaNombre

DCIdentificador

cGetDigitIDSEPA

¿Podías ponernos el código?
Gracias de antemano.
Verhoven
 
Posts: 505
Joined: Sun Oct 09, 2005 7:23 pm

Re: Adeudos Directos SEPA en euros Esquema B2B

Postby elvira » Mon Dec 14, 2015 3:40 pm

Hola!,

¿Algún progreso?.

Yo probé también el código de Quimm y no funciona correctamente.

Muy agradecida ;).
elvira
 
Posts: 515
Joined: Fri Jun 29, 2012 12:49 pm

Re: Adeudos Directos SEPA en euros Esquema B2B

Postby thefull » Tue Dec 15, 2015 6:50 pm

Buenas

Por lo que veo, los errores son de validación , no de estructura del XML, por poner un ejemplo ;
ERROR: Element '{urn:iso:std:iso:20022:tech:xsd:pain.008.001.02}PmtInfId': [facet 'maxLength'] The value has a length of '37'; this exceeds the allowed maximum length of '35'

Dicen bien claro que estas pasando un valor de longitud de 37, cuando el máx. es de 35.
Por lo tanto, la clase o funcion que crea el XML , debería tener en cuenta el XSD para que cumple el XML.

Saludos Cordiales
Saludos
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
User avatar
thefull
 
Posts: 729
Joined: Fri Oct 07, 2005 7:42 am
Location: Barcelona

Re: Adeudos Directos SEPA en euros Esquema B2B

Postby elvira » Wed Dec 30, 2015 7:58 pm

Amig@s,

¿Se sabe algo?.

Que dios os bendiga y feliz 2016.
elvira
 
Posts: 515
Joined: Fri Jun 29, 2012 12:49 pm

Previous

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 19 guests