Advertisement
Guest User

Untitled

a guest
Jan 18th, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
XML 10.36 KB | None | 0 0
  1. //Trace.debug("CardIssue. Функция проверки данных заявления.", Radix::Arte::EventSource:UserFunc);
  2. Tran tran = Tran.currentlyExecutedTran;
  3.  
  4. XmlHelper xmlHlp = new  XmlHelper(app.data, "http://schemas.tranzaxis.com/card-issue.xsd");
  5. Str    CardProductId = xmlHlp.getStr("CardIssue/CardProductId",false);
  6. Str   Period = xmlHlp.getStr("CardIssue/Period",false),
  7.         DeliveryBranchId = xmlHlp.getStr("CardIssue/DeliveryBranchId",false),
  8.         CourierCityId = xmlHlp.getStr("CardIssue/CourierCityId",false),
  9.         CourierAddressInput = xmlHlp.getStr("CardIssue/CourierAddressInput",false),
  10.         ContractId = xmlHlp.getStr("CardIssue/ContractId",false),
  11.         FeeContractId = xmlHlp.getStr("CardIssue/FeeContractId",false),
  12.         FeeAmt = xmlHlp.getStr("CardIssue/FeeAmt",false).split(" ")[0],
  13.         TariffPlanGuid = xmlHlp.getStr("CardIssue/CommissionTypeId",false),
  14.         //ThirdPerson = xmlHlp.getStr("CardIssue/ThirdPerson",false),
  15.         FirstNameLat = xmlHlp.getStr("CardIssue/FirstNameLat",false),
  16.         LastNameLat = xmlHlp.getStr("CardIssue/LastNameLat",false),
  17.         ThirdPersonFIO = xmlHlp.getStr("CardIssue/ThirdPersonFIO",false),
  18.         ThirdPersonBirth = xmlHlp.getStr("CardIssue/ThirdPersonBirth",false),
  19.         ThirdPersonDoc = xmlHlp.getStr("CardIssue/ThirdPersonDoc",false),
  20.         ThirdPersonReg = xmlHlp.getStr("CardIssue/ThirdPersonReg",false),
  21.         ThirdPerson = (ThirdPersonBirth != "" ? "on" : ""),
  22.         ThirdPersonPhone = xmlHlp.getStr("CardIssue/ThirdPersonPhone",false);
  23.  
  24. try{
  25.    
  26.   if (utils::personOfcRestrictionChecker(app.subject) == true){
  27.         throw new Exception("Уважаемый Клиент, в связи с не предоставлением документов по запросу, Банком установлено ограничение на оказание услуг через систему удаленного доступа \"Банк-он-Лайн\"");
  28.     }      
  29.     Str prodId = app.type.getParamStr("CardProductId" + (ThirdPerson == "on" ? "3" : "") + "_" + CardProductId);
  30.     //Str prodId = app.type.getParamStr("CardProductId" + (ThirdPersonBirth != null ? "3" : "") + "_" + CardProductId);
  31.     if(prodId == null)
  32.         throw new Exception("Указан неверный тип карты");
  33.    
  34.     //if(CardProductId != "1" && CardProductId != "2")        throw new Exception("Указан некорректный карточный продукт(" + CardProductId + ").");
  35.     if(Period == null || Period.length() == 0)
  36.         throw new Exception("Указан некорректный срок действия карты.");
  37.     if(DeliveryBranchId != "777" && (DeliveryBranchId == null || DeliveryBranchId.length() == 0 || Branch.loadByCode(app.instId, Long.valueOf(DeliveryBranchId)) == null))
  38.        throw new Exception("Неверно указано отделение выдачи карты.");
  39.    
  40.     //--П.С.С.-13.08.15 - Проверка для доставки курьером--//
  41.     if (DeliveryBranchId == "777") {
  42.         if(ThirdPerson == "on"){
  43.             throw new Exception("Нельзя доставлять карту на 3-е лицо");
  44.         }
  45.         if(CourierCityId == null){
  46.             throw new Exception("Неверно указан город доставки");
  47.         }
  48.         if(CourierAddressInput == null){
  49.             throw new Exception("Неверно указан адрес доставки");
  50.         }
  51.     }
  52.    
  53.     if(ContractId == null || ContractId.length() != 20)
  54.         throw new Exception("Не указан номер счёта(" + ContractId + ").");
  55.     if(FeeContractId == null || FeeContractId.length() != 20)
  56.         throw new Exception("Не указан номер счёта для списания комиссии(" + FeeContractId + ").");
  57.     if(FeeAmt == null || FeeAmt.length() == 0)
  58.         throw new Exception("Ошибка при определении комиссии(" + FeeAmt + ").");
  59.     if(FirstNameLat == null || FirstNameLat.length() == 0)
  60.         throw new Exception("Не указано имя для печати на карте (" + FirstNameLat + ").");
  61.     if(LastNameLat == null || LastNameLat.length() == 0)
  62.         throw new Exception("Не указана фамилия для печати на карте (" + LastNameLat + ").");
  63.     if(ThirdPerson == "on"){
  64.         if(ThirdPersonFIO == null || ThirdPersonFIO.length() < 10 ||  ThirdPersonFIO.split(" ") == null || ThirdPersonFIO.split(" ").length < 3)
  65.            throw new Exception("Не заданы ФИО держателя карты (" + ThirdPersonFIO + ").");
  66.        
  67.        if(ThirdPersonBirth == null || ThirdPersonBirth.length() < 1)
  68.            throw new Exception("Не указаны дата и место рождения держателя карты).");
  69.        if(ThirdPersonDoc == null || ThirdPersonDoc.length() < 1)
  70.            throw new Exception("Не указан документ удостоверяющий держателя карты.");
  71.        if(ThirdPersonReg == null || ThirdPersonReg.length() < 1)
  72.            throw new Exception("Не указан адрес регистрации держателя карты.");
  73.        if(ThirdPersonPhone == null || ThirdPersonPhone.length() < 1)
  74.            throw new Exception("Не указан телефон держателя карты.");
  75.        
  76.       if(ThirdPersonBirth == null || ThirdPersonBirth.length() < 10)
  77.            throw new Exception("Неверно указаны дата и место рождения держателя карты (" + ThirdPersonBirth + ").");
  78.        if(ThirdPersonDoc == null || ThirdPersonDoc.length() < 10)
  79.            throw new Exception("Неверно указан документ удостоверяющий держателя карты (" + ThirdPersonDoc + ").");
  80.        if(ThirdPersonReg == null || ThirdPersonReg.length() < 10)
  81.            throw new Exception("Неверно указан адрес регистрации держателя карты (" + ThirdPersonReg + ").");
  82.        if(ThirdPersonPhone == null || ThirdPersonPhone.length() < 10)
  83.            throw new Exception("Неверно указан телефон держателя карты (" + ThirdPersonPhone + ").");
  84.    }
  85.    Contract.Financial c1 = (Contract.Financial)Contract.loadByRid(app.instId, ContractId);
  86.    Contract.Financial c2 = (Contract.Financial)Contract.loadByRid(app.instId, FeeContractId);
  87.    if(c1 == null || c1.clientId != app.subjectId || c1.status != Tx::Contracts::Status:Active)    // если указан "левый" счёт карты
  88.        throw new Exception("Указан некорректный номер счёта(" + ContractId + ").");
  89.    if(c2 == null || c2.clientId != app.subjectId || c2.status != Tx::Contracts::Status:Active)    // если указан "левый" счёт для комиссии
  90.        throw new Exception("Указан некорректный номер счёта для списания комиссии(" + FeeContractId + ").");
  91.  
  92.    /*
  93.    // 10.09.2015     grigorjev.d.a.    Временный запрет на указание в качестве основного счета/счета списания комиссии счета с грейсом
  94.    if(c1.cachedType.getUserParamStr("isGrace") == "1" || c2.cachedType.getUserParamStr("isGrace") == "1")
  95.         throw new Exception("Выполнение операции по данному счету невозможно! Счет относится к продукту \"Кредитная карта с льготным периодом кредитования.\"");
  96.     */
  97.  
  98.    TariffPlan tplan =  TariffPlan.loadByPK(TariffPlanGuid, false);
  99.    Contract.Financial feeCon = (Contract.Financial)Contract.loadByRid(app.instId, FeeContractId);
  100.    Int contractTypeId = (ThirdPerson == "on" ? app.getTypeParamInt("CardProductId3_" + CardProductId) : app.getTypeParamInt("CardProductId_" + CardProductId));
  101.    ContractType.Issuing contractType = (ContractType.Issuing)ContractType.get(contractTypeId);
  102.    
  103.    
  104.    ////////SD-7295
  105.    if (contractType != null){
  106.        Num depositBalanceVal = contractType.getUserParamNum("depositBalanceVal");
  107.        if (depositBalanceVal != null){
  108.            if (Tariff::getSubjectDepositsBalance(app.subject).getAmount() < depositBalanceVal){
  109.                throw new AppException("Уважаемый клиент! Карта вкладчика возможна для оформления только в случае наличия вкладов в Банке на сумму от 1 500 000 рублей.");
  110.            }
  111.        }
  112.    }
  113.        
  114.    if (contractType != null){
  115.        Str e = Tariff::checkMaxCardsCount(app.subject, contractType);
  116.        if (e != null){
  117.            throw new AppException(e);
  118.        }
  119.    }
  120.    ///////
  121.    
  122.  
  123.    if (tplan != null && feeCon != null && contractType != null){
  124.  
  125.        Money fee = Tariff::calcFee(contractType, feeCon, tplan);
  126.        Money availBalance = feeCon.getAvailableBalance(tran, tran.regTime, tran.operDay);
  127.        RateGroup rg = feeCon.getRateGroup(tran);
  128.        Num avail = availBalance.getAmount();
  129.        
  130.        if (fee == null)
  131.            throw new Exception("Операция не может быть выполнена, ошибка в комиссии");
  132.        
  133.        if (!fee.getCcy().equals(availBalance.getCcy()))
  134.            avail = rg.convertClient(tran, fee.getCurrency(), availBalance.getCurrency(), availBalance.getAmount());
  135.        
  136.        if(avail.compareTo(fee.getAmount()) < 0)
  137.            throw new Exception("Недостаточно средств для оплаты комиссии (" + fee + "). Доступно " + MoneyFactory.get(avail,810).toStrWithCcyAlphaCode() + ".");
  138.            
  139.    } else throw new Exception("Операция не может быть выполнена");
  140.    
  141.    
  142. } catch (Exception e){
  143.    CommonXsd:ResultSpecific rs = tran.rs.ResultSpecific != null ? tran.rs.ResultSpecific : tran.rs.addNewResultSpecific();
  144.    rs.Description = e.getMessage();
  145.    throw new DeclineException(Tx::Tran::TranResult:InvalidRequest, e.getMessage(), "CardIssue. Функция проверки данных заявления.");
  146. }
  147.        
  148. Trace.event("check. app.data: " + app.dataAsStr, Radix::Arte::EventSource:TestCase);
  149.        
  150. return true;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement