示例#1
0
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;
}
示例#2
0
/* --------------------------------------------------------------- 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;
}
示例#3
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;
}
示例#4
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;
}