AB_TRANSACTION_LIMITS *AB_TransactionLimits_fromDb(GWEN_DB_NODE *db) { AB_TRANSACTION_LIMITS *st; assert(db); st=AB_TransactionLimits_new(); AB_TransactionLimits_ReadDb(st, db); st->_modified=0; return st; }
/* --------------------------------------------------------------- FUNCTION */ int AH_Job_GetTransactions_GetLimits(AH_JOB *j, AB_TRANSACTION_LIMITS **pLimits) { AB_TRANSACTION_LIMITS *tl; GWEN_DB_NODE *dbParams; dbParams=AH_Job_GetParams(j); tl=AB_TransactionLimits_new(); AB_TransactionLimits_SetCommand(tl, AH_Job_GetSupportedCommand(j)); AB_TransactionLimits_SetMaxValueSetupTime(tl, GWEN_DB_GetIntValue(dbParams, "storeDays", 0, 0)); /* nothing more to set for this kind of job */ *pLimits=tl; return 0; }
int EBC_Provider_UpdateJob(AB_PROVIDER *pro, AB_JOB *j) { EBC_PROVIDER *dp; AB_ACCOUNT *a; AB_USER *u; assert(pro); dp=GWEN_INHERIT_GETDATA(AB_PROVIDER, EBC_PROVIDER, pro); assert(dp); a=AB_Job_GetAccount(j); assert(a); u=AB_Account_GetFirstUser(a); if (u==NULL) { DBG_ERROR(AQEBICS_LOGDOMAIN, "No user assigned to this account."); GWEN_Gui_ProgressLog(0, GWEN_LoggerLevel_Error, I18N("No user assigned to this account.")); GWEN_Gui_ShowError(I18N("Setup Error"), I18N("No user assigned to this account. Please assign one in the online banking setup dialog " "for this account.\n")); return GWEN_ERROR_INTERNAL; } switch(AB_Job_GetType(j)) { case AB_Job_TypeTransfer: { AB_TRANSACTION_LIMITS *lim; lim=AB_TransactionLimits_new(); AB_TransactionLimits_SetMaxLenPurpose(lim, 27); AB_TransactionLimits_SetMaxLenRemoteName(lim, 27); AB_TransactionLimits_SetMaxLinesRemoteName(lim, 1); AB_TransactionLimits_SetMaxLinesPurpose(lim, 2); AB_TransactionLimits_AddValuesTextKey(lim, "51", 0); AB_Job_SetFieldLimits(j, lim); AB_TransactionLimits_free(lim); break; } case AB_Job_TypeDebitNote: { AB_TRANSACTION_LIMITS *lim; lim=AB_TransactionLimits_new(); AB_TransactionLimits_SetMaxLenPurpose(lim, 27); AB_TransactionLimits_SetMaxLenRemoteName(lim, 27); AB_TransactionLimits_SetMaxLinesRemoteName(lim, 1); AB_TransactionLimits_SetMaxLinesPurpose(lim, 2); AB_TransactionLimits_AddValuesTextKey(lim, "05", 0); AB_Job_SetFieldLimits(j, lim); AB_TransactionLimits_free(lim); break; } case AB_Job_TypeGetTransactions: break; case AB_Job_TypeGetBalance: default: DBG_INFO(AQEBICS_LOGDOMAIN, "Job not yet supported (%d)", AB_Job_GetType(j)); return GWEN_ERROR_NOT_SUPPORTED; } /* switch */ return 0; }
AB_TRANSACTION_LIMITS *AB_TransactionLimits_dup(const AB_TRANSACTION_LIMITS *d) { AB_TRANSACTION_LIMITS *st; assert(d); st=AB_TransactionLimits_new(); st->maxLenLocalName=d->maxLenLocalName; st->minLenLocalName=d->minLenLocalName; st->maxLenRemoteName=d->maxLenRemoteName; st->minLenRemoteName=d->minLenRemoteName; st->maxLinesRemoteName=d->maxLinesRemoteName; st->minLinesRemoteName=d->minLinesRemoteName; st->maxLenLocalBankCode=d->maxLenLocalBankCode; st->minLenLocalBankCode=d->minLenLocalBankCode; st->maxLenLocalAccountNumber=d->maxLenLocalAccountNumber; st->minLenLocalAccountNumber=d->minLenLocalAccountNumber; st->maxLenLocalSuffix=d->maxLenLocalSuffix; st->minLenLocalSuffix=d->minLenLocalSuffix; st->maxLenRemoteBankCode=d->maxLenRemoteBankCode; st->minLenRemoteBankCode=d->minLenRemoteBankCode; st->maxLenRemoteAccountNumber=d->maxLenRemoteAccountNumber; st->minLenRemoteAccountNumber=d->minLenRemoteAccountNumber; st->maxLenRemoteSuffix=d->maxLenRemoteSuffix; st->minLenRemoteSuffix=d->minLenRemoteSuffix; st->maxLenRemoteIban=d->maxLenRemoteIban; st->minLenRemoteIban=d->minLenRemoteIban; st->maxLenTextKey=d->maxLenTextKey; st->minLenTextKey=d->minLenTextKey; if (d->valuesTextKey) { GWEN_StringList_free(st->valuesTextKey); st->valuesTextKey=GWEN_StringList_dup(d->valuesTextKey); } if (d->textKeys) { AB_TextKeyDescr_List_free(st->textKeys); st->textKeys=AB_TextKeyDescr_List_dup(d->textKeys); } st->maxLenCustomerReference=d->maxLenCustomerReference; st->minLenCustomerReference=d->minLenCustomerReference; st->maxLenBankReference=d->maxLenBankReference; st->minLenBankReference=d->minLenBankReference; st->maxLenPurpose=d->maxLenPurpose; st->minLenPurpose=d->minLenPurpose; st->maxLinesPurpose=d->maxLinesPurpose; st->minLinesPurpose=d->minLinesPurpose; st->needDate=d->needDate; st->minValueSetupTime=d->minValueSetupTime; st->maxValueSetupTime=d->maxValueSetupTime; st->minValueSetupTimeFirst=d->minValueSetupTimeFirst; st->maxValueSetupTimeFirst=d->maxValueSetupTimeFirst; st->minValueSetupTimeOnce=d->minValueSetupTimeOnce; st->maxValueSetupTimeOnce=d->maxValueSetupTimeOnce; st->minValueSetupTimeRecurring=d->minValueSetupTimeRecurring; st->maxValueSetupTimeRecurring=d->maxValueSetupTimeRecurring; st->minValueSetupTimeFinal=d->minValueSetupTimeFinal; st->maxValueSetupTimeFinal=d->maxValueSetupTimeFinal; if (d->valuesCycleWeek) { GWEN_StringList_free(st->valuesCycleWeek); st->valuesCycleWeek=GWEN_StringList_dup(d->valuesCycleWeek); } if (d->valuesCycleMonth) { GWEN_StringList_free(st->valuesCycleMonth); st->valuesCycleMonth=GWEN_StringList_dup(d->valuesCycleMonth); } if (d->valuesExecutionDayWeek) { GWEN_StringList_free(st->valuesExecutionDayWeek); st->valuesExecutionDayWeek=GWEN_StringList_dup(d->valuesExecutionDayWeek); } if (d->valuesExecutionDayMonth) { GWEN_StringList_free(st->valuesExecutionDayMonth); st->valuesExecutionDayMonth=GWEN_StringList_dup(d->valuesExecutionDayMonth); } st->allowMonthly=d->allowMonthly; st->allowWeekly=d->allowWeekly; st->allowChangeRecipientAccount=d->allowChangeRecipientAccount; st->allowChangeRecipientName=d->allowChangeRecipientName; st->allowChangeValue=d->allowChangeValue; st->allowChangeTextKey=d->allowChangeTextKey; st->allowChangePurpose=d->allowChangePurpose; st->allowChangeFirstExecutionDate=d->allowChangeFirstExecutionDate; st->allowChangeLastExecutionDate=d->allowChangeLastExecutionDate; st->allowChangeCycle=d->allowChangeCycle; st->allowChangePeriod=d->allowChangePeriod; st->allowChangeExecutionDay=d->allowChangeExecutionDay; return st; }