Autopayment

stage 2: Work With Cycles

CycleController
-> List<Cycle> getActiveCycles()

Cycle
-> Stage getCurrentStage()

Stage
-> Calendar getDate()

Cycle
-> int getAutopaymentId()

AutopaymentController
-> Autopayment getAutopayment(int autopaymentId)

OperationController
-> bool doOperation(Operation o, Autopayment a)

bool isPossibleOperation(Operation o, Autopayment a)

Operation
-> OperationType getType()

Operation
-> int getId()

Operation: sms

ConfigurationParser
-> String getSmsText(int smsId)

Autopayment
-> int getContractId()

PlaceholderController
-> String processString(String s, Contract c)

-> String replace_contract(Contract c)

-> String replace_recommendedSum(Contract c)

-> String replace_prevAutopaymentDate(Contract c)

-> String replace_nextAutopaymentDate(Contract c)

Operation: autopayment

CachingBillingCalculator
-> BigDecimal getRecommendedSum(Contract c, bool fromCache, long freshTime)

AutopaymentController
-> void doAutopayment(Contract c, int mode, BigDecimal sum)

Cycle
-> boolean nextStage()

Cycle
-> void setStop(Calendar)

CycleController
-> updateCycle(Cycle)

ru.bitel.bgbilling.common.bean
AutopaymentMode

Table: sberbank_autopaument_cycles_{mid}

Table: recommended_sum_cashe

ru.ufanet.bgbilling.dyn.module.sberbank
Cycle

ru.ufanet.bgbilling.dyn.module.sberbank
AutopaymentController

ru.ufanet.bgbilling.dyn.module.sberbank
CycleController

ru.ufanet.bgbilling.dyn.module.sberbank
OperationController

ru.ufanet.bgbilling.dyn.kernel
PlaceholderController

ru.ufanet.bgbilling.dyn.kernel
CachingBillingCalculator

stage 1: Fill Cycles

AutopaymentController

CycleController

ServiceController

ConfigurationParser

CycleCalculator

stage 2: Work With Cycles

CycleController

ServiceController

ConfigurationParser

CycleCalculator

OperationController

ConfigurationParser

PlaceholderController

AutopaymentController

BillingCalculator

?
ServiceController

ru.ufanet.bgbilling.dyn.module.sberbank
ConfigurationParser

ru.ufanet.bgbilling.dyn.module.sberbank
CycleCalculator

Cycle.Stage

?
Service

ru.bitel.bgbilling.common.bean
Autopayment

ru.ufanet.bgbilling.dyn.module.sberbank
Operation

ru.ufanet.bgbilling.dyn.module.sberbank
OperationType

stage 1: Fill Cycles

AutopaymentController
-> List<Autopayment> getActiveAutopayments(AutopaymentMode mode)

CycleController
-> boolean existActiveCycle(Autopayment a)

CycleController
-> Cycle generateCycle(Autopayment a)

Autopayment
-> int getContractId()

ServiceController
-> Service getService(Contract c)

ConfigurationParser
-> IDictionary<String service, int cycleTypeId> getBindings()

ConfigurationParser
-> String getCycleStartDay(int cycleConfigId)

CycleCalculator
-> Calendar calculateCycleStartDay(Service, Contract)

ConfigurationParser
-> IDictionary<int stageKey, StageData data> getStagesData(int cycleConfigId)

Cycle
-> Calendar getStart()

CycleController
-> void insertCycle(Cycle)