createPlan method

void createPlan(
  1. String id,
  2. String commandSetId,
  3. NmTelecomL10n l10n, {
  4. String? cloneFromId,
})

Create plan.

Implementation

void createPlan(String id, String commandSetId, NmTelecomL10n l10n, {String? cloneFromId}) {
  final source = cloneFromId == null ? null : repository.byId(cloneFromId);
  final record = source != null
      ? NmDialPlan(
          id: id,
          commandSetId: commandSetId,
          priority: source.priority,
          proTag: source.proTag,
          onlineMax: source.onlineMax,
          addMax: source.addMax,
          canIn: source.canIn,
          canOut: source.canOut,
          canSout: source.canSout,
          notVip: source.notVip,
          qualityFlags: source.qualityFlags,
          capOk: source.capOk,
          capNew: source.capNew,
          capFail: source.capFail,
          diffSlow: source.diffSlow,
          diffMin: source.diffMin,
          diffMinOut: source.diffMinOut,
          timeWake: source.timeWake,
          timeSleep: source.timeSleep,
          timeWorkWake: source.timeWorkWake,
          timeWorkSleep: source.timeWorkSleep,
          timeHolidayWake: source.timeHolidayWake,
          timeHolidaySleep: source.timeHolidaySleep,
          directions: source.directions,
          iattMin: source.iattMin,
          iattMax: source.iattMax,
          iattSoft: source.iattSoft,
          inAcdMin: source.inAcdMin,
          inAcdMax: source.inAcdMax,
          outAcdMin: source.outAcdMin,
          outAcdMax: source.outAcdMax,
          forwarding: source.forwarding,
          outInAns: source.outInAns,
          conn: source.conn,
          rand: source.rand,
          inWait: source.inWait,
          inSound: source.inSound,
          mayLimit: source.mayLimit,
          monLimit: source.monLimit,
          msmLimit: source.msmLimit,
          smsoutSoft: source.smsoutSoft,
          smsoutHard: source.smsoutHard,
          sattSoft: source.sattSoft,
          sattHard: source.sattHard,
          sattSoftDay: source.sattSoftDay,
          sattHardDay: source.sattHardDay,
          sattSoftTotal: source.sattSoftTotal,
          sattHardTotal: source.sattHardTotal,
          nospam: source.nospam,
        )
      : NmDialPlan(
          id: id,
          commandSetId: commandSetId,
          directions: [
            for (var n = 0; n < 6; n++) NmPlanDirectionSlot(slot: n, editable: n >= 1 && n <= 4, alg: 0, nodiff: false, limitSoft: 0, limitHard: 0),
          ],
        );
  repository.create(record, l10n);
  _selectImmediately(id);
}