local oDoc := mxmlNewElement( oXml, "xfdf" )
local oFields , xDato
mxmlElementSetAttr( oXml, "encoding", 'ISO-8859-1' ) // añadido mientras se encuentra mejor solución por compatibilidad .
.......
FiveWiDi wrote:
Tengo una maldita duda sobre como debe ser la identificación del acreedor en los adeudos directos SEPA.
mastintin wrote:
if(CC_iban<10){
CC_iban = "0" + CC_iban;
}
FUNCTION fIban( cPais, cBanco, cSucursal, cDC, cCuenta)
local nIban, cIban, nMod, nContador, cPais2:=''
// comprueba ccc es correcto
IF !CCC (cBanco, cSucursal, cDC, cCuenta)
MsgInfo ("CCC incorrecto.")
// devuelve cadena vacia por error CCC
RETURN ' '
ENDIF
FOR ncontador = 1 TO 2
IF ASC(SUBSTR(cPais, ncontador, 1)) >= 65
cPais2 += STR( (ASC(UPPER(SUBSTR(cPais, ncontador, 1)))-55), 2, 0)
ELSE
cPais2 += SUBSTR(cPais, ncontador, 1)
ENDIF
NEXT
cIban := cBanco + cSucursal
nMod := INT ( VAL(cIban) % 97)
cIban := LTRIM(STR(nMod,3,0))+cDC+SUBS(cCuenta,1,2)
nMod := INT ( VAL(cIban) % 97)
cIban := LTRIM(STR(nMod,3,0))+SUBS(cCuenta,3) + cPais2 + "00"
nMod := INT ( VAL(cIban) % 97 )
nIban := INT ( 98 - ( VAL(cIban) % 97) )
return cPais + STRZERO( nIban, 2)+cBanco+cSucursal+cDC+cCuenta
Manuel Valdenebro wrote:FiveWiDi wrote:
Tengo una maldita duda sobre como debe ser la identificación del acreedor en los adeudos directos SEPA.
La identificación del acreedor (AT-02) con un máximo de 35 caracteres, debe tener la siguiente estructura:
AA codigo del pais ("ES" para España)
DD dígito de control (a calcular segun mod-97-10)
SSS sufijo acreedor (normalmente 000)
NNNNNNNNN (nif del acreedor)
y hasta 35 caracteres si quieres añadirle algo mas.
FUNCTION FusionaDatos()
LOCAL ScanOK
LOCAL oApp
LOCAL oAVDoc, okAVD
LOCAL oPDDoc
LOCAL oForm,oFields,ofield,cfield
LOCAL cPath := "c:\SEPA\ordenes\sepa2.pdf"
LOCAL i, nLen
oApp := CreateObject( "AcroExch.App" )
oAVDoc := CreateObject("AcroExch.AVDoc")
oKAVD = oAVDoc:Open(cPath, "sepa2.pdf")
pausa( oKAVD )
oForm:= CreateObject("AFormAut.App")
oFields = oForm:fields()
nLen := oFields:Count()
pausa(nLen)
For Each oField In oFields
cField:= oField:Name()
If cField == "c2"
oField:Value:= "NIF de la empresa"
ELSEIF cField == "c32"
oField:Value:= "Nombre de la empresa"
ELSEIF cField == "c33"
oField:Value:= "Direccion de la empresa"
...... // resto de los campos arrellenar
endif
Next Field
oPDDoc := createobject("AcroExch.PDDoc")
oPDDoc := oAvDoc:GetPDDoc()
oPDDoc:Save(1, "c:\SEPA\ordenes\ordenfinal.pdf")
oPDDoc:Close()
oPDDoc := nil
oAVDoc:BringToFront()
oAVDoc:Maximize(1)
//
RETURN nil
elvira wrote:Querido Manuel,
¿Has conseguido hacer funcionar SEPA norma 19?.
FiveWiDi wrote:1)He tenido que incorporar validación de los caracteres ya sea del nombre del acreedor, deudor, u otros posibles textos, ya que por ejemplo el arterisco no está permitido según la definición del cuaderno; seguimos yendo 'pa tras'.
2)En BS la fecha de cargo de los adeudos no puede ser anterior a la fecha de creación del fichero. Bien, no se porque lo han definido así, para mi creo que es complicarle la vida al que gestiona recibos de asociaciones o clubes o por el estilo, en donde la fecha de 'vencimiento' tiene un valor relativo.
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: No registered users and 40 guests