Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Trace.error("CardIssue. Функция обработки.newStatus="+newStatus.Value , Radix::Arte::EventSource:UserFunc);
- Tran tran = Tran.currentlyExecutedTran;
- Subject subject = null;
- Trace.event("process. app.data: " + app.dataAsStr, Radix::Arte::EventSource:TestCase);
- XmlHelper xmlHlp = new XmlHelper(app.data, "http://schemas.tranzaxis.com/card-issue.xsd");
- final Str CardProductId = xmlHlp.getStr("CardIssue/CardProductId",false),
- //Period = xmlHlp.getStr("CardIssue/Period",false),
- DeliveryBranchId = xmlHlp.getStr("CardIssue/DeliveryBranchId",false),
- CourierCityId = xmlHlp.getStr("CardIssue/CourierCityId",false),
- CourierAddressInput = xmlHlp.getStr("CardIssue/CourierAddressInput",false),
- ContractId = xmlHlp.getStr("CardIssue/ContractId",false),
- FeeContractId = xmlHlp.getStr("CardIssue/FeeContractId",false),
- //FeeAmt = xmlHlp.getStr("CardIssue/FeeAmt",false).split(" ")[0],
- TariffPlanGuid = xmlHlp.getStr("CardIssue/CommissionTypeId",false),
- //ThirdPerson = xmlHlp.getStr("CardIssue/ThirdPerson",false),
- ThirdPersonId = xmlHlp.getStr("CardIssue/ThirdPersonId",false),
- FirstNameLat = xmlHlp.getStr("CardIssue/FirstNameLat",false),
- LastNameLat = xmlHlp.getStr("CardIssue/LastNameLat",false),
- BalanceRestriction = xmlHlp.getStr("CardIssue/BalanceRestriction",false),
- //ThirdPersonFIO = xmlHlp.getStr("CardIssue/ThirdPersonFIO",false),
- ThirdPersonBirth = xmlHlp.getStr("CardIssue/ThirdPersonBirth",false),
- ThirdPerson = (ThirdPersonBirth != "" ? "on" : "");
- //ThirdPersonDoc = xmlHlp.getStr("CardIssue/ThirdPersonDoc",false),
- //ThirdPersonReg = xmlHlp.getStr("CardIssue/ThirdPersonReg",false);
- Bool balanceRstr = (BalanceRestriction == "on" ? true : false);
- Str DesignIdStr = xmlHlp.getStr("CardIssue/DesignId",false);
- Int DesignId = DesignIdStr != null && DesignIdStr.length() > 0 ? Int.valueOf(DesignIdStr) : null;
- class XXX {
- /* 20.11.17-П.С.С. Метод перестал работать, прикрепление фото перенес в создание карты (SD-7880)
- void attachPhoto(Card card, TypesXsd:Attachment att, Tran tran, TypesXsd:Attachments atts){
- TypesXsd:Attachments attachments = null;
- if(att != null && tran.rqSpecApplication.Attachments != null)
- attachments = tran.rqSpecApplication.Attachments;
- if(att != null && tran.rqSpecApplication.Attachments == null && atts != null){
- //TypesXsd:AttachmentsDocument attDoc = TypesXsd:AttachmentsDocument.Factory.newInstance();
- attachments = TypesXsd:Attachments.Factory.newInstance();
- for(TypesXsd:Attachment at : atts.AttachmentList){
- at.Id = null;
- attachments.addNewAttachment().set(at);
- }
- }
- //Trace.warning("CardIssue. rattachments:\n" + attachments.toString(),Radix::Arte::EventSource:App);
- if(attachments != null && attachments.sizeOfAttachmentArray() > 0){
- TypesXsd:Attachments.Attachment attachment = attachments.getAttachmentArray(0);
- attachment.TypeId = card.institution.photoAttachTypeId; // 08.07.2015 Белоус В.И.
- Attachment.adminModify(card, attachments, null, null);
- }
- }
- */
- void notificator1(Card card, Application app, boolean on3rdCardHoldr){
- //Прикладываем заявление на выпуск карты к карте
- Str RepGuid = app.getTypeParamStr("ReportApplication");
- if(on3rdCardHoldr == true)
- RepGuid = app.getTypeParamStr("ReportApplication3rd");
- Report report = ReportsServerUtils.instantiateReportByClassId(Id.Factory.loadFrom(RepGuid));
- java.util.HashMap<Id , Object> pv = new java.util.HashMap<Id , Object>();
- pv.put(report.ContextParameterId, card);
- java.io.ByteArrayOutputStream bos = new java.io.ByteArrayOutputStream();
- try {
- report.execute(bos, Radix::Reports::ReportExportFormat:PDF , pv);
- bos.flush();
- } catch (Exception e) {
- Trace.warning("CardIssue. report exec error:\n" + e.getMessage().toString(),Radix::Arte::EventSource:App);
- //throw new DeclineException(Tx::Tran::TranResult:Rejected,"Отчёт не сформирован.","CardIssue.", e);
- }
- TypesXsd:Attachments attachments = TypesXsd:Attachments.Factory.newInstance();
- TypesXsd:Attachments.Attachment att = attachments.addNewAttachment();
- att.Title = "Заявление на выпуск карты";
- att.TypeId = 8;
- TypesXsd:Attachment.Pages pages = att.addNewPages();
- TypesXsd:AttachmentPage page = pages.addNewPage();
- page.Format = Radix::Common::MimeType:Pdf;
- page.CreateTime = Arte.getCurrentTime();
- page.Number = 1;
- page.Content = bos.toByteArray();
- Attachment.adminModify(card, attachments, null, null);
- }
- void notificator2(Application app, Branch branch, Tran tran){
- Str email = "";
- if (app.getTypeParamStr("email") != null)
- email = app.getTypeParamStr("email") + ";";
- // 22.09.2015 grigorjev.d.a Исправление механизма отправки заявления на выпуск карты на 3-е лицо (отправляется копия на офис получения карты)
- if (branch != null && branch.department != null && branch.department.address != null && branch.department.address.email != null)
- email += branch.department.address.email;
- //--26.08.15-П.С.С. - Выбираем кому отправлять в зависимости от города--//
- if (DeliveryBranchId == "777") {
- if (CourierCityId == "208") {
- email = app.getTypeParamStr("email_GDP_Ekb");
- } else if (CourierCityId == "228") {
- email = app.getTypeParamStr("email_GDP_Chlb");
- }
- }
- //Str emailAddress = (branch != null ? branch.department.address.email : email);
- //Trace.warning("CardIssue. emailAddressr:\n" + emailAddress,Radix::Arte::EventSource:App);
- //emailAddress = "alivankina.n.m@neyvabank.ru";
- if (email != null && email != "") {
- OutMessage om = new OutMessage();
- om.init();
- om.channelKind = Radix::PersoComm::ChannelKind:Email;
- om.dueTime = Arte.getCurrentTime();
- om.importance = Radix::PersoComm::Importance:Normal;
- om.histMode = Radix::PersoComm::HistMode:Audit;
- om.sourceMsgId = tran.id.toString();
- om.sourcePid = tran.getPid().toString();
- om.sourceEntityGuid = "aecRWNQYFPOVBEQTB35ZVSZRHIH7Q";
- om.tranId = tran.id;
- //om.address = emailAddress;
- om.address = email;
- om.subject = "Заявление на выпуск карты №" + app.id + " (через БоЛ)";
- om.body = "Заявление на выпуск карты (через БоЛ).\n\nКлиент: " + app.subject.calcSubjectTitle() + "(" + app.subject.rid + ").";
- if (DeliveryBranchId == "777") {
- om.body += "\n\nДоставка курьером. \nАдрес доставки: " + CourierAddressInput;
- }
- if(app.status != Tx::Applications::AppStatus:Accepted)
- om.body += "\n\nНеобходимо обработать заявление(детали во вложении).";
- //Формирование отчета по транзакции
- Str RepGuid = app.getTypeParamStr("ReportNotice");
- Report report = ReportsServerUtils.instantiateReportByClassId(Id.Factory.loadFrom(RepGuid));
- java.util.HashMap<Id , Object> pv = new java.util.HashMap<Id , Object>();
- pv.put(report.ContextParameterId, app);
- Attachment attachment = new Attachment();
- attachment.init();
- attachment.messId = om.id;
- attachment.seq = 1;
- attachment.mimeType = Radix::Common::MimeType:Pdf;
- attachment.title = "Application.pdf";
- attachment.data = Arte.createTemporaryBlob();
- java.io.OutputStream attachmentStream = null;
- try{
- attachmentStream = attachment.data.setBinaryStream(0);
- report.execute(attachmentStream , Radix::Reports::ReportExportFormat:PDF , pv);
- attachmentStream.flush();
- }catch(Exception e){
- Trace.warning("CardIssue. report exec error:\n" + Trace.exceptionStackToString(e),Radix::Arte::EventSource:App);
- //throw new DeclineException(Tx::Tran::TranResult:Rejected,"report exec error","CardIssue.", e);
- }finally{
- try{
- if (attachmentStream != null) attachmentStream.close();
- } catch(Exception e){
- Trace.warning("CardIssue. Unable to close file out resource!:\n" + e.getStackTrace().toString(),Radix::Arte::EventSource:App);
- }
- }
- attachment.create();
- }
- }
- }
- XXX xxx = new XXX();
- //--П.С.С.-26.08.15 - Если доставка курьером, то ИД отделения берём из города доставки,--//
- //--иначе берем Числовой код из DeliveryBranchId--//
- Branch cardDeliveryBranch = Branch.loadByCode(app.instId, 25); // по-умолчанию отделение на Чапаева
- if (DeliveryBranchId == "777") {
- cardDeliveryBranch = Branch.loadByPK(Long.valueOf(CourierCityId),true);
- } else {
- cardDeliveryBranch = Branch.loadByCode(app.instId,Long.valueOf(DeliveryBranchId));
- }
- TypesXsd:Attachments atts = Attachment.adminRead(app,null);
- TypesXsd:Attachment att = null;
- if(atts != null && atts.AttachmentList != null && atts.AttachmentList.size() > 0){
- att = atts.AttachmentList.get(0);
- att.TypeId = app.institution.photoAttachTypeId;
- }
- if(newStatus == Tx::Applications::AppStatus:Submitted){
- if(ThirdPerson == "on" && ThirdPersonId == null){
- newStatus = Tx::Applications::AppStatus:InProc; // на ручную обработку (на 3-е лицо)
- xxx.notificator2(app, cardDeliveryBranch, tran);
- } else {
- newStatus = Tx::Applications::AppStatus:Accepted; // автоматическая обработка
- subject = app.subject;
- xmlHlp.addElement("CardIssue/ThirdPersonId",null);
- xmlHlp.setStr("CardIssue/ThirdPersonId",subject.id.toString());
- }
- }
- // ручная обработка
- if(newStatus == Tx::Applications::AppStatus:InProc){
- app.status = newStatus;
- }
- if(newStatus == Tx::Applications::AppStatus:Rejected){
- app.status = newStatus;
- }
- // уточнение клиента - держателя карты
- if(subject == null && app.status == Tx::Applications::AppStatus:InProc && newStatus == Tx::Applications::AppStatus:Accepted){
- Str personRid = tran.rqUserAttrs.getStr("personRid");
- if(personRid == null)
- throw new DeclineException(Tx::Tran::TranResult:SystemError, "Ошибка при обработке заявления, не указан клиент", "CardIssue. Функция обработки.");
- subject = Subject.loadByRid(personRid, 1);
- if(subject == null)
- subject = Subject.loadByRid(personRid,null);
- if(subject == null)
- throw new DeclineException(Tx::Tran::TranResult:SystemError, "Ошибка при обработке заявления, указанный клиент не найден!", "CardIssue. Функция обработки.");
- if(ThirdPerson == "on"){
- xmlHlp.addElement("CardIssue/ThirdPersonId",null);
- xmlHlp.setStr("CardIssue/ThirdPersonId",subject.id.toString());
- }
- }
- if(newStatus == Tx::Applications::AppStatus:Accepted && subject != null){
- /*
- if(ThirdPerson != "on"){
- Person pers = (Person)app.subject;
- pers.firstNameLat = FirstNameLat;
- pers.lastNameLat = LastNameLat;
- }
- */
- ContractType.Issuing contractType = null;
- Int contractTypeId = null;
- Int contractLinkProfileId = null;
- CardProduct cardProduct = null;
- Int cardProductId = null;
- Int cardProfileId = null;
- //Num fee = null;
- contractTypeId = (ThirdPerson == "on" ? app.getTypeParamInt("CardProductId3_" + CardProductId) : app.getTypeParamInt("CardProductId_" + CardProductId));
- //contractTypeId = (ThirdPersonBirth != null ? app.getTypeParamInt("CardProductId3_" + CardProductId) : app.getTypeParamInt("CardProductId_" + CardProductId));
- xmlHlp.addElement("CardIssue/ContractTypeId",null);
- xmlHlp.setStr("CardIssue/ContractTypeId",contractTypeId.toString());
- contractType = (ContractType.Issuing)ContractType.get(contractTypeId);
- if(contractType == null)
- throw new DeclineException(Tx::Tran::TranResult:SystemError, "Ошибка при обработке заявления, не найден карточный продукт", "CardIssue. Функция обработки.");
- for(TokenProduct tp : contractType.getTokenProductList()){
- if(tp instanceof CardProduct){
- CardProduct cp = (CardProduct)tp;
- if(cp.hasPhoto == true && att != null)
- cardProduct = cp;
- if(cp.hasPhoto == false && att == null)
- cardProduct = cp;
- }
- }
- if(cardProduct == null)
- throw new DeclineException(Tx::Tran::TranResult:SystemError, "Ошибка при обработке заявления, не найден карточный продукт.", "CardIssue. Функция обработки.");
- cardProductId = cardProduct.id;
- cardProfileId = contractType.tokenProfiles.get(0) != null ? contractType.tokenProfiles.get(0).id : contractType.getUserParamInt("tokenProfile_" + cardProductId.toString()); // 07.11.17-П.С.С. - Отказываемся от параметров в пользу св-в
- //cardProfileId = contractType.getUserParamInt("tokenProfile_" + cardProductId.toString());
- //fee = contractType.getUserParamNum("feeProductId_" + cardProductId.toString());
- contractLinkProfileId = contractType.getUserParamInt("linkProfile_" + cardProductId.toString());
- if(contractLinkProfileId == null)
- contractLinkProfileId = contractType.getUserParamInt("defaultLinkProfile");
- //if(!fee.toString().equals(FeeAmt))
- // throw new DeclineException(Tx::Tran::TranResult:Rejected, "Сумма комиссии в заявлении клиента на выпуск карты не совпадает с суммой комиссии в настройках ТХ.(app:"+FeeAmt+",tx:"+fee.toString()+",contractid:"+contractTypeId.toString()+",cardProductId:"+cardProductId.toString()+")","Функция обработки заявления на выпуск карты через БоЛ.");
- // ГРУППОВАЯ ТРАНЗАКЦИЯ
- TranXsd:Request rqG = TranXsd:Request.Factory.newInstance();
- rqG.OriginatorInstId = app.instId;
- rqG.ProcessorInstId = app.instId;
- rqG.Kind = Tx::Tran::TranKind:Group;
- rqG.LifePhase = Tx::Tran::LifePhase:Single;
- rqG.CategoryText = "Обработка заявления клиента на карту, поданное через БоЛ.";
- rqG.addNewSpecific().addNewGroup();
- // КОМИССИЯ, временно не используем, переходим на тарифные планы ТХ.
- /*if(FeeAmt != null && (new Num(FeeAmt)).compareTo(Num.ZERO) != 0){
- TranXsd:Request rq = rqG.Specific.Group.addNewTran().addNewRequest();
- rq.OriginatorInstId = rqG.OriginatorInstId;
- rq.ProcessorInstId = rqG.ProcessorInstId;
- rq.Kind = Tx::Tran::TranKind:Payment;
- rq.LifePhase = Tx::Tran::LifePhase:Single;
- rq.CategoryCode = app.getTypeParamStr("CategoryCode");
- rq.CategoryText = app.getTypeParamStr("CategoryText").replace("product",cardProduct.title).replace("rid",(subject.rid!=null?subject.rid:"-")).replace("fio",subject.calcSubjectTitle());
- rq.addNewParties();
- rq.Parties.addNewCust();
- rq.Parties.Cust.ContractRid = FeeContractId;
- rq.Parties.addNewPayee();
- rq.Parties.Payee.InstAcctMapGuid = app.getTypeParamStr("InstAcctMapGuid");
- rq.Parties.Payee.Type = Tx::Tran::PayeeType:Institution;
- rq.Parties.Payee.addNewOwner();
- rq.Parties.Payee.Owner.Rid = cardDeliveryBranch.code.toString();// cardDeliveryBranch.name;
- rq.Parties.Payee.Owner.Title = cardDeliveryBranch.notes;
- rq.addNewMoneys();
- rq.Moneys.addNewCust();
- rq.Moneys.Cust.Amt = new Num(FeeAmt); // ПЕРЕДЕЛАТЬ
- rq.Moneys.Cust.Ccy = 810;
- rq.Moneys.addNewClear();
- rq.Moneys.Clear.Amt = fee;
- rq.Moneys.Clear.Ccy = 810;
- }*/
- // МОДИФИКАЦИЯ КАРТОЧКИ КЛИЕНТА
- if(ThirdPerson != "on"){
- TranXsd:Request rq = rqG.Specific.Group.addNewTran().addNewRequest();
- rq.OriginatorInstId = rqG.OriginatorInstId;
- rq.ProcessorInstId = rqG.ProcessorInstId;
- rq.Kind = Tx::Tran::TranKind:ModifySubject;
- rq.LifePhase = Tx::Tran::LifePhase:Single;
- rq.IsAdvice = true;
- rq.TextMess = "noBankier";
- rq.CategoryText = "Обновление информации в карточке клиента по заявлению клиента на карту через БоЛ.";
- AdminXsd:Person pers = rq.addNewSpecific().addNewAdmin().addNewSubject().addNewPerson();
- pers.Id = subject.id;
- pers.FirstNameLat = FirstNameLat.toUpperCase();
- pers.LastNameLat = LastNameLat.toUpperCase();
- }
- // КАРТОЧНЫЙ КОНТРАКТ
- {
- TranXsd:Request rq = rqG.Specific.Group.addNewTran().addNewRequest();
- rq.OriginatorInstId = rqG.OriginatorInstId;
- rq.ProcessorInstId = rqG.ProcessorInstId;
- rq.Kind = Tx::Tran::TranKind:ModifyContract;
- rq.LifePhase = Tx::Tran::LifePhase:Single;
- rq.CategoryText = "Создание карточного контракта по заявлению клиента через БоЛ.";
- AdminXsd:Contract con = rq.addNewSpecific().addNewAdmin().addNewContract();
- rq.Specific.Admin.ObjectMustExist = false;
- con.ClientId = subject.id;
- con.TypeId = contractTypeId;
- con.Status = Tx::Contracts::Status:Active;
- AdminXsd:Contract.TariffPlans.TariffPlan tp = con.addNewTariffPlans().addNewTariffPlan();
- tp.TariffPlanGuid = TariffPlanGuid;
- tp.StartOperDay = Arte.getCurrentLocalDate();
- tp.StartTime = Arte.getCurrentTime();
- if(cardDeliveryBranch != null)
- con.BranchId = cardDeliveryBranch.id;
- AdminXsd:Contract.OutLinks links = con.addNewOutLinks();
- AdminXsd:Contract.OutLinks.Link link = null;
- link = links.addNewLink(); // связь на доступ
- link.Kind = Tx::Contracts.Links::LinkKind:Access;
- link.Contract2Rid = ContractId;
- link.Status = Tx::Contracts.Links::LinkStatus:Active;
- link.ProfileId = contractLinkProfileId;
- /*if(contractLinkProfileId != null && BalanceRestriction != null){
- Profile.Contract2Contract profile = (Profile.Contract2Contract)Profile.loadByPK(contractLinkProfileId,false);
- if(profile != null){
- for(Restriction restr : profile.getAllRestrictions(null)){
- if(restr.guid == "EXTAIWXGYFBNRE6FAGGIIEM5WE" || restr.guid == "IWL2FHYSFFFYVHRE23GERNBENQ"){
- AdminXsd:Link.Restrictions rrs = link.Restrictions != null ? link.Restrictions : link.addNewRestrictions();
- AdminXsd:Restriction rr = rrs.addNewRestriction();
- rr.Guid = restr.guid;
- rr.InUse = balanceRstr;
- rr.ClassGuid = restr.classGuid;
- }
- }
- }
- }*/
- link = links.addNewLink(); // связь на управление
- link.Kind = Tx::Contracts.Links::LinkKind:Charge;
- //link.Contract2Rid = ContractId; изменил на feeContractId
- link.Contract2Rid = FeeContractId;
- link.Status = Tx::Contracts.Links::LinkStatus:Active;
- }
- // КАРТА
- {
- TranXsd:Request.Specific.Group.Tran tr = rqG.Specific.Group.addNewTran();
- TranXsd:Request rq = tr.addNewRequest();
- rq.OriginatorInstId = rqG.OriginatorInstId;
- rq.ProcessorInstId = rqG.ProcessorInstId;
- rq.Kind = Tx::Tran::TranKind:ModifyToken;
- rq.LifePhase = Tx::Tran::LifePhase:Single;
- rq.CategoryText = "Создание карты по заявлению клиента через БоЛ.";
- TokenAdminXsd:Token token = rq.addNewSpecific().addNewAdmin().addNewToken();
- rq.Specific.Admin.ObjectMustExist = false;
- TokenAdminXsd:Card card = null;
- switch (cardProduct.technology){
- case Tx::Tokens.Card::CardTechnology:Emv : card = token.addNewCardVsdc(); break;
- case Tx::Tokens.Card::CardTechnology:Magnetic : card = token.addNewCardMagnetic(); break;
- case Tx::Tokens.Card::CardTechnology:Virtual : card = token.addNewCardVirtual(); break;
- }
- card.ProductId = cardProductId;
- card.ProfileId = cardProfileId;
- card.DeliveryBranchId = cardDeliveryBranch.id;
- card.Status = Tx::Tokens::TokenStatus:New;
- card.LifePhaseId = 10;
- card.ContractRid = "0";
- // 20.11.17-П.С.С. Метод attachPhoto перестал работать, прикрепление фото перенес в создание карты (SD-7880)
- if (atts != null) {
- TypesXsd:Attachments attachments = TypesXsd:Attachments.Factory.newInstance();
- for (TypesXsd:Attachment at : atts.AttachmentList) {
- at.Id = null;
- for (TypesXsd:Attachment.Pages.Page p : at.Pages.PageList) {
- p.Id = p.Id.intValue() * 2;
- }
- attachments.addNewAttachment().set(at);
- }
- card.addNewAttachments().set(attachments);
- }
- if (DesignId != null && cardProduct != null){
- CardDesign cardDesign = CardDesign.loadByPK(DesignId, false);
- if (cardDesign != null){
- if (cardProduct.designs != null){
- if (cardProduct.designs.contains(cardDesign) == true){
- card.DesignId = DesignId;
- } else {
- Trace.error("У продукта " + cardProductId + "в настройках ТХ не задан дизайн, но в ТБ задан DesignId = " + DesignId, Radix::Arte::EventSource:App);
- }
- } else {
- Trace.error("У продукта " + cardProductId + "в настройках ТХ не задан дизайн, но в ТБ задан DesignId = " + DesignId, Radix::Arte::EventSource:App);
- }
- } else Trace.error("В ТБ указан дизайн, которого нет в ТХ", Radix::Arte::EventSource:App);
- }
- card.EmbossName = (FirstNameLat + " " + LastNameLat).toUpperCase();
- card.TrackName = (LastNameLat + "/" + FirstNameLat).toUpperCase();
- if (balanceRstr == false){
- AdminXsd:Restriction rqRestriction = card.addNewRestrictions().addNewRestriction();
- Restriction restr = HelpUs.getRestriction(card.ProfileId, null);
- if(restr != null){
- rqRestriction.Guid = HelpUs.getRestriction(card.ProfileId, null).guid;
- rqRestriction.ClassGuid = HelpUs.getRestriction(card.ProfileId, null).classGuid;
- rqRestriction.InUse = false;
- }
- }
- TypesXsd:ParamValue pv = card.addNewUserAttrs().addNewParamValue();
- pv.Rid = "CreateAppId";
- pv.Val = app.id.toString();
- //25.09.2015 grigorjev.d.a Cрок дополнительной карты к грейсу должен быть равен сроку грейса (TX-1675)
- Contract.Current contract = (Contract.Current)Contract.loadByRid(app.instId, ContractId);
- if(contract != null && contract.cachedType.getUserParamStr("isGrace") == "1"){
- Contract.Overdraft over = (Contract.Overdraft)contract.overdraftContract;
- card.ExpTime = Timing.endTimeOfMonth(over.tillDay);
- }
- TranXsd:Request.Specific.Group.Tran.Refine refine = tr.addNewRefine();
- refine.SrcTranOffset = 1;
- refine.GetRsTag = "Specific/Admin/Contract/@Rid";
- switch (cardProduct.technology){
- case Tx::Tokens.Card::CardTechnology:Emv : refine.SetTag = "declare namespace tok='http://schemas.tranzaxis.com/tokens-admin.xsd'; Specific/Admin/Token/tok:CardVsdc/tok:ContractRid"; break;
- case Tx::Tokens.Card::CardTechnology:Magnetic : refine.SetTag = "declare namespace tok='http://schemas.tranzaxis.com/tokens-admin.xsd'; Specific/Admin/Token/tok:CardMagnetic/tok:ContractRid"; break;
- case Tx::Tokens.Card::CardTechnology:Virtual : refine.SetTag = "declare namespace tok='http://schemas.tranzaxis.com/tokens-admin.xsd'; Specific/Admin/Token/tok:CardVirtual/tok:ContractRid"; break;
- }
- }
- //Балансировка
- {
- TariffPlan tplan = TariffPlan.loadByPK(TariffPlanGuid, false);
- if (tplan != null && tplan.userAttrs.getBool("NeedFeeOnCreate") == true){
- Contract chargeC = Contract.loadByRid(app.instId , FeeContractId);
- TranXsd:Request.Specific.Group.Tran tr = rqG.Specific.Group.addNewTran();
- TranXsd:Request rq = tr.addNewRequest();
- rq.set((Re-)IssueCards::CardIssuingFee(null, null, cardDeliveryBranch.id, chargeC));
- TranXsd:Request.Specific.Group.Tran.Refine refine = tr.addNewRefine();
- refine.SrcTranOffset = 2;
- refine.GetRsTag = "Specific/Admin/Contract/@Id";
- refine.SetTag = "declare namespace t='http://schemas.tranzaxis.com/tran.xsd'; t:Specific/t:Admin/t:Contract/@Id";
- /*rq.Kind = Tx::Tran::TranKind:BalanceContract;
- rq.ProcessorInstId = rqG.ProcessorInstId;
- rq.LifePhase = Tx::Tran::LifePhase:Single;
- rq.addNewParties().addNewParty().Id = 0;
- rq.CategoryText = "Балансировка контракта для списания комиссии по тарифному плану";
- rq.ClerkName = "998";
- java.util.List<Str> phases = new java.util.ArrayList<Str>();
- phases.add("Charges");
- rq.addNewSpecific().addNewBalance().Phases = phases;
- TranXsd:Request.Specific.Group.Tran.Refine refine = tr.addNewRefine();
- refine.SrcTranOffset = 2;
- refine.GetRsTag = "Specific/Admin/Contract/@Id";
- refine.SetTag = "declare namespace t='http://schemas.tranzaxis.com/tran.xsd'; t:Parties/t:Party/@Id"; */
- }
- }
- Tran tranG = Tran.execute(rqG); //tran.executeEmbedded(rqG);
- if(tranG.result == Tx::Tran::TranResult:Approved){
- app.status = newStatus;
- java.util.List<Tran> listTrans = tranG.getNextTrans(Tx::Tran::LinkKind:Group2Grouped); //список связанных транз. с групповой
- for(Tran tr : listTrans){
- if(tr.kind == Tx::Tran::TranKind:ModifyToken){
- Card token = (Card)((Doer.Token)tr.rootDoer).token;
- //Trace.error("CardIssue. Функция обработки. token=" + token.calcTitle() , Radix::Arte::EventSource:UserFunc);
- // Прикладываем заявление на выпуск карты к карте
- xxx.notificator1(token, app, (ThirdPerson == "on" ? true : false));
- // Прикладываем фотку клиента к карте
- //xxx.attachPhoto(token, att, tran, atts); // 20.11.17-П.С.С. Метод перестал работать, прикрепление фото перенес в создание карты (SD-7880)
- // Отправка уведомления об открытии карты в РБ
- xxx.notificator2(app, null, tran);
- // отправка информации о созданной карте в TXIB
- {
- TranXsd:Response.Specific spec = tran.rs.Specific != null ? tran.rs.Specific : tran.rs.addNewSpecific();
- /*
- TranXsd:AdminSpecific adm = spec.Admin != null ? spec.Admin : spec.addNewAdmin();
- TokenAdminXsd:Token tok = adm.Token != null ? adm.Token : adm.addNewToken();
- TokenAdminXsd:Card base = TokenAdminXsd:Card.Factory.newInstance();
- if(token.cardProduct.technology == Tx::Tokens.Card::CardTechnology:Emv) base = tok.addNewCardVsdc();
- if(token.cardProduct.technology == Tx::Tokens.Card::CardTechnology:Magnetic) base = tok.addNewCardMagnetic();
- base.Id = token.id;
- base.Pan = token.maskedPan;
- base.ExpTime = token.expTime;
- base.Status = token.status;
- base.Notes = token.notes;
- */
- TranXsd:Response.Specific.CreateVirtualCard crd = spec.addNewCreateVirtualCard();
- crd.Id = token.id;
- crd.Pan = token.maskedPan;
- crd.Expiration = Timing.dateTimeToString(token.expTime, "dd.MM.yyyy");
- }
- app.contextTokenId = token.id;
- app.userAttrs.setStr("method", "TXIB");
- }
- else if (tr.kind == Tx::Tran::TranKind:Udt ){
- app.userAttrs.setInt("FeeTranId", tr.id);
- app.userAttrs.setNum("FeeAmount", tr.clearAmt);
- app.userAttrs.setInt("FeeCcy", tr.clearCcy);
- }
- } // for
- app.userAttrs.setStr("user", (doer.tran.clerkName != null ? doer.tran.clerkName : "TXIB"));
- if (doer.tran.clerk != null)
- app.userAttrs.setInt("branch", doer.tran.clerk.branchId);
- } // Approved
- else {
- throw new DeclineException(Tx::Tran::TranResult:SystemError, "Ошибка при обработке заявления, обратитесь к администраторам.", "CardIssue. Функция обработки.");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement