ConfigurationReport Pnet Prod
ConfigurationReport Pnet Prod
Customization Summary
Total number of Customized Standard Objects
Total number of Custom Objects
Total number of Global Functions
Total number of Custom Relationships
Total number of modified Standard Fields
Total number of Custom Fields
Total number of Validations
Total number of Object Functions
Total number of Triggers
Total number of Object Workflows
Total number of Dynamic Layouts
Total number of REST Web Services
Total number of SOAP Web Services
Total number of Mashup Content Web Applications
Object Summary
Object Name Parent Object Custom Fields Modified Standard Fields
ActividadEconomica_c 12
Activity 11
Address 8
Adicional_c AssetEO 19
AnchoDeBanda_c 17
AsignacionMensualLeads_c 28
AssetEO 53
Bitacora_c 26
Bucket_c 16
Canal_c 15
Cantidad_c 15
CatalogoCIIU_c 25
ClienteNetplus_c 18
CodigoPostal_c 16
ColorDeHilo_c 16
Descuento_c 23
Detalle_c 25
Diferir_c 22
DireccionInstalacion_c 10
FormaDePago_c 15
GrupoComercial_c 12
GrupoDeHilo_c 16
HistoricoConsultaScore_c 26
HistoricoDeContrato_c 15
HistoricoDeEtapaDeVenta_c 19
HistoricoDeTemporalidad_c 21
IntervaloCada_c 14
IntervaloHasta_c 14
IPRadioWifi_c 16
Lead 79
MapeoFormaTipoPago_c 12
MklLeadResources Lead 0
NodoWifi_c 14
OLT_c 14
Opportunity 175
OpportunityContact Opportunity 1
OpportunityResource Opportunity 0
Organization 61
Origen_c 18
PartidaAsignacionLeads_c 11
PartnerProfile 0
Person 61
Plan_c 15
Product 1
ProductGroupDetail 4
PromocionDescuento_c 40
PromocionesYServicios_c 69
RecursoAsignacionLead_c 14
Renovacion_c 14
Resource 5
Revenue Opportunity 59
ServicioNetplus_c 14
ServiciosAdquiridos_c 25
Splitter_c 16
Subestado_c 14
Temporalidad_c 31
UltimaMillaNetplus_c 16
VariablesDeSistema_c 13
VarReglasAsignacionLeads_c 19
15
44
26
199
66
1358
182
179
83
155
111
13
1
4
usuarioGenericoMasivo Long
usuarioAdministrador Boolean
getCurrentUserResourceRow Object
validarFormatoDoc nroDoc-String,tipoDoc-String void
usuarioSoluciones Boolean
loadResourceProfileIdMap void
usuarioPreventa Boolean
Privileged Description
No Función que regresa MASIVO o
CORPORATIVO, dependiendo de los roels del
usuario
No numeroVendedores, bolsaLeads
No
No
No
No reasignarCliente(tipoCliente,customerId,ownerI
d,currentRowId)
No
No
No tipos: CUSTOMER, LEAD, OPPORTUNITY
customerId: Id del cliente en que se trabajó
customerType: PERSON, ORGANIZATION
No
No
No
No nombre de vista, id de oportunidad
No
No
No
No adf.util.montoTemporalidad('MASIVO',1200,
esProyecto)
No
No
No
Example Expression
def secCtx = adf.context.getSecurityContext()
def moc=''
def
corp=secCtx.isUserInRole('USUARIO_CORPORATIVO')
def mas=secCtx.isUserInRole('USUARIO_MASIVO')
if(corp&&!mas){
moc='CORPORATIVO'
}
else if(!corp&&mas){
moc='MASIVO'
}
return moc
return
2*bolsaLeads/(numeroVendedores*(numeroVendedore
def payload=[
tipoDocumento:tipoDocumento,
numeroDocumento:numeroDocumento
]
println('payload:'+payload)
def
validaCte=adf.webServices.validaClienteEnNetPlus.POS
println('validaCteResponse:'+validaCte)
if((validaCte?.estatusValidacion == '0' ||
validaCte?.estatusValidacion
throw new == '2') && !
oracle.jbo.ValidationException(''+'(Puntonet)
} '
return validaCte?.estatusValidacion
300000035243676
def secCtx = adf.context.getSecurityContext()
return secCtx.isUserInRole('ADMIN_GENERAL_PNT')
if(nvl(resourceProfileId,0 as Long)==0)
return 0
def ress=newView('Resource')
def resc=newViewCriteria(ress)
def resr=resc.createRow()
def resi=resr.ensureCriteriaItem('ResourceProfileId')
resi.setOperator('=')
resi.setValue(resourceProfileId)
resc.insertRow(resr)
ress.appendViewCriteria(resc)
ress.executeQuery()
while(ress.hasNext()){
def res=ress.next()
return res.PartyId
}
return 0
def secCtx = adf.context.getSecurityContext()
return
secCtx.isUserInRole('GESTION_TEMPORALIDAD')||
adf.util.reasignarCliente('ORGANIZATION',300000 if(tipoCliente=='PERSON'){
20401,3000000066644,300000006520656) def clientes=newView('PersonProfile')
def clientec=newViewCriteria(clientes)
def clienter=clientec.createRow()
def clientei=clienter.ensureCriteriaItem('PartyId')
clientei.setOperator('=')
clientei.setValue(customerId)
clientec.insertRow(clienter)
clientes.appendViewCriteria(clientec)
clientes.executeQuery()
while(clientes.hasNext()){
def cliente=clientes.next()
if(cliente.OwnerPartyId!=ownerId &&
cliente.OwnerPartyId!=currentRowId){
cliente.setAttribute('OwnerPartyId',ownerId)
cliente.setAttribute('OverrideReassignment_c','Y')
}
}
def leads=newView('Lead')
def leadc=newViewCriteria(leads)
def leadr=leadc.createRow()
def leadi=leadr.ensureCriteriaItem('PrimaryContactId')
leadi.setOperator('=')
leadi.setValue(customerId)
leadc.insertRow(leadr)
leads.appendViewCriteria(leadc)
leads.executeQuery()
while(leads.hasNext()){
def lead=leads.next()
if(lead.OwnerId!=ownerId && lead.LeadId!
=currentRowId){
lead.setAttribute('OwnerId',ownerId)
lead.setAttribute('OverrideReassignment_c','Y')
}
}
}
else if(tipoCliente=='ORGANIZATION'){
def clientes=newView('OrganizationProfile')
def clientec=newViewCriteria(clientes)
def clienter=clientec.createRow()
def clientei=clienter.ensureCriteriaItem('PartyId')
clientei.setOperator('=')
clientei.setValue(customerId)
clientec.insertRow(clienter)
clientes.appendViewCriteria(clientec)
clientes.executeQuery()
while(clientes.hasNext()){
def cliente=clientes.next()
if(cliente.OwnerPartyId!=ownerId &&
cliente.OwnerPartyId!=currentRowId){
cliente.setAttribute('OwnerPartyId',ownerId)
cliente.setAttribute('OverrideReassignment_c','Y')
}
}
def leads=newView('Lead')
def leadc=newViewCriteria(leads)
def leadr=leadc.createRow()
def leadi=leadr.ensureCriteriaItem('Cuenta_Id_c')
leadi.setOperator('=')
leadi.setValue(customerId)
leadc.insertRow(leadr)
leads.appendViewCriteria(leadc)
leads.executeQuery()
while(leads.hasNext()){
def lead=leads.next()
if(lead.OwnerId!=ownerId && lead.LeadId!
=currentRowId){
lead.setAttribute('OwnerId',ownerId)
lead.setAttribute('OverrideReassignment_c','Y')
}
}
}
def optys=newView('OpportunityVO')
def optyc=newViewCriteria(optys)
def optyr=optyc.createRow()
def optyi=optyr.ensureCriteriaItem('TargetPartyId')
optyi.setOperator('=')
optyi.setValue(customerId)
optyc.insertRow(optyr)
optys.appendViewCriteria(optyc)
optys.executeQuery()
while(optys.hasNext()){
def opty=optys.next()
if(opty.OwnerResourcePartyId!=ownerId &&
opty.OptyId!=currentRowId){
opty.setAttribute('OwnerResourcePartyId',ownerId)
opty.setAttribute('OverrideReassignment_c','Y')
}
}
def customers
if(nvl(partyId,0 as Long)==0)
return 0
def ress=newView('Resource')
def resc=newViewCriteria(ress)
def resr=resc.createRow()
def resi=resr.ensureCriteriaItem('PartyId')
resi.setOperator('=')
resi.setValue(partyId)
resc.insertRow(resr)
ress.appendViewCriteria(resc)
ress.executeQuery()
while(ress.hasNext()){
def res=ress.next()
return res.ResourceProfileId
}
return 0
println('mapa recibido:'+mapClientes)
def startTime=now().time
def printMap=[:]
def leads=newView('Lead')
def leadc=newViewCriteria(leads)
def optys=newView('OpportunityVO')
def optyc=newViewCriteria(optys)
def countClientes=0
mapClientes.each{key,val ->
println('val:'+val)
def leadField='Cuenta_Id_c'
def customerId=key
if(customerId!=0){
def leadr=leadc.createRow()
def leadi=leadr.ensureCriteriaItem(leadField)
leadi.setOperator('=')
leadi.setValue(customerId)
leadi.setConjunction(0)
leadc.insertRow(leadr)
def optyr=optyc.createRow()
def optyi=optyr.ensureCriteriaItem('TargetPartyId')
optyi.setOperator('=')
optyi.setValue(customerId)
optyc.insertRow(optyr)
countClientes+=1
}
}
println('Terminé creación de vistas')
def optyList=[]
def leadList=[]
if(countClientes>0){
//reasignar Leads
leads.appendViewCriteria(leadc)
println('previo a búsqueda leads')
leads.executeQuery()
println('posterior a búsqueda leads')
while(leads.hasNext()){
def lead=leads.next()
def clienteId=0
def statusCode=lead.StatusCode
def statusActivo=statusCode=='QUALIFIED' ||
statusCode=='UNQUALIFIED'
if(statusActivo &&
lead.TipoCM_c=='CORPORATIVO'){
clienteId=lead.Cuenta_Id_c as Long
def currentCustomerMap = mapClientes[clienteId]
}currentCustomerMap.put('leadsAbiertos',currentCusto
}
println('previo a búsqueda optys')
optys.appendViewCriteria(optyc)
optys.executeQuery()
println('Posterior a búsqueda optys')
while(optys.hasNext()){
def opty=optys.next()
def clienteId=0
if(nvl(opty.AreaComercial_c,'CORPORATIVO')=='CORP
clienteId=opty.TargetPartyId as Long
def currentCustomerMap = mapClientes[clienteId]
if(opty.StatusCode=='OPEN'){
currentCustomerMap.put('optysAbiertas',currentCusto
println('after put')
}
if(nvl(opty.CodigoNetPlus_c,'')!=''){
currentCustomerMap.put('ConsiderarComoCliente_c','Y
}
}
}
}
mapClientes.each{key,val ->
def currentCustomerMap=val
def clienteRow=currentCustomerMap.row
println('before set attributes:' + currentCustomerMap)
clienteRow.setAttribute('OportunidadesAbiertas_c',curr
clienteRow.setAttribute('LeadsAbiertos_c',currentCusto
clienteRow.setAttribute('ConsiderarComoCliente_c',curr
println('after set attributes')
println('Entré a contabilizarContratosTotales')
def cuentaId = key
def activos = newView('AssetVO')
def activosC = newViewCriteria(activos)
def activosCR = activosC.createRow()
def activosCI =
activosCR.ensureCriteriaItem('CustomerId')
activosCI.setOperator('=')
activosCI.setValue(cuentaId)
def activosCJ =
activosCR.ensureCriteriaItem('AreaComercial_c')
activosCJ.setOperator('=')
activosCJ.setValue('CORPORATIVO')
activosC.insertRow(activosCR)
activos.appendViewCriteria(activosC)
activos.setMaxFetchSize(2000)
println('antes de activos.executeQuery()')
activos.executeQuery()
def totalIngresado = 0
def totalActivo = 0
def totalDesactivado = 0
def totalDesactivadoTemp = 0
def totalNoConcretado = 0
def totalNoConcretadoTemp = 0
def totalDeActivos = 0
println('iterando activos')
while(activos.hasNext()){
def activo = activos.next()
def estado = activo.EstatusServicio_c
if(estado == 'INGRESADO'){
totalIngresado = totalIngresado+1
}else if(estado == 'ACTIVO'){
totalActivo = totalActivo+1
}else if(estado == 'DESACTIVADO'){
totalDesactivado = totalDesactivado+1
clienteRow.setAttribute('TimestampTotalContratos_c',n
clienteRow.setAttribute('TotalDeContratosIngresados_c
clienteRow.setAttribute('TotalDeContratosActivos_c',tot
clienteRow.setAttribute('TotalDeContratosDesactivados
clienteRow.setAttribute('TotalDeContratosDesactivados
clienteRow.setAttribute('TotalDeContratosNoConcreta
clienteRow.setAttribute('TotalDeContratosNoConcreta
println('posterior a setAttributes contar activos')
}
}
def userTimeZone =
oracle.apps.fnd.applcore.common.ApplSessionUtil.getT
TimeZone tz = TimeZone.getTimeZone(userTimeZone);
def curDate = now();
def curTime = curDate.time;
def newTime = curTime + tz.getRawOffset();
def newDate = new Date(newTime)
return newDate
def secCtx = adf.context.getSecurityContext()
return
secCtx.isUserInRole('PTN_ZBS_SALES_MANAGER_JOB_
def startTime=now().time
def userMap=adf.userSession.userData
if(nvl(userMap['loadedProfileIds'],'')!=''){
}
else{
def ress=newView('Resource')
def resc=newViewCriteria(ress)
def resr=resc.createRow()
resc.insertRow(resr)
ress.appendViewCriteria(resc)
ress.setMaxFetchSize(2000)
ress.executeQuery()
while(ress.hasNext()){
def res=ress.next()
def
listaRoles=['USUARIO_MASIVO','USUARIO_CORPORATI
adf.userSession.userData.put('ResID'+res.PartyId,res.Re
}
adf.userSession.userData.put('loadedProfileIds','OK')
// println('userData:'+adf.userSession.userData)
}
def elapsedTime=now().time - startTime
adf.util.montoTemporalidad('MASIVO',1200, false) def paramMap=[:]
if(moc=='')
return ''
def dias=0
def ts=newView('Temporalidad_c')
def tc=newViewCriteria(ts)
def tr=tc.createRow()
def ti=tr.ensureCriteriaItem('AreaComercial_c')
ti.setOperator('=')
ti.setValue(moc)
tc.insertRow(tr)
ts.appendViewCriteria(tc)
ts.executeQuery()
def tipoMonto=''
while(ts.hasNext()){
def t=ts.next()
def montoPremium=(nvl(t.MontoPremium_c,0 as
BigDecimal)).toInteger()
if(monto<=0){
tipoMonto='MONTO_CERO'
}
else if(monto<montoPremium){
tipoMonto='OPORTUNIDAD'
}
else{
tipoMonto='GRAN_OPORTUNIDAD'
}
}
if(proyecto){
tipoMonto+='_PROYECTO'
}
return tipoMonto
300000004627567
def userTimeZone =
oracle.apps.fnd.applcore.common.ApplSessionUtil.getT
TimeZone tz = TimeZone.getTimeZone(userTimeZone);
def curDate = now();
def curTime = curDate.time;
def newTime = curTime + tz.getRawOffset();
def newDate = new java.sql.Date(newTime)
return newDate
if(customerId==0){
throw new oracle.jbo.ValidationException('(BDS)
Campo
} Tipo de Cliente sin datos, por favor seleccionar
def optys=newView('OpportunityVO')
def optyc=newViewCriteria(optys)
def optyr=optyc.createRow()
def optyi=optyr.ensureCriteriaItem('TargetPartyId')
optyi.setOperator('=')
optyi.setValue(customerId)
def optyj=optyr.ensureCriteriaItem('StatusCode')
optyj.setOperator('=')
optyj.setValue('OPEN')
optyc.insertRow(optyr)
def optyk=optyr.ensureCriteriaItem('AreaComercial_c')
optyk.setOperator('=')
optyk.setValue('MASIVO')
optys.appendViewCriteria(optyc)
optys.setSortBy('OwnerResourcePartyId asc')
optys.executeQuery()
def errorList=[]
def errorCount=0
def usuarioGenericoList=[]
usuarioGenericoList.add(adf.util.usuarioGenericoMasiv
o() as Long)
usuarioGenericoList.add(adf.util.usuarioGenericoCorpo
rativo()
def as Long)
canalList=[]
def countCanal=0
while(optys.hasNext()){
def opty=optys.next()
def canalActual=nvl(opty.CanalObjC_Id_c, 0 as
BigDecimal) as Long
if(canalActual!=canalId && !
usuarioGenericoList.contains(opty.OwnerResourceParty
errorCount+=1
def errorMap=[:]
errorMap.put('Name',opty.Name)
errorMap.put('Owner',opty.PartyName1)
def canal=opty.CanalObjC_c
if(!canalList.contains(canal)){
countCanal+=1
canalList.add(canal)
}
errorList.add(errorMap)
}
}
if(errorCount>0){
def index=0
def errorMsg='Error al crear nueva oportunidad: '
def plural=errorCount>1
if(plural){
errorMsg='Las siguientes oportunidades se
encuentran
} abiertas en '
else{
errorMsg='La siguiente oportunidad se encuentra
abierta
} en '
if(countCanal>1){
errorMsg+='los canales '
}
else{
errorMsg+='el canal '
}
countCanal=0
for(canal in canalList){
if(countCanal>0){
errorMsg+=', '
}
errorMsg+=canal
}
errorMsg+=': '
def prevOwner=errorList[0]['Owner']
while(index<errorCount){
def errorMap=errorList[index]
def owner=errorMap['Owner'] as String
def name=errorMap['Name'] as String
if(prevOwner!=owner){
errorMsg+=' del ejecutivo '+prevOwner+'; '
}
errorMsg+= name+', '
if(index+1==errorCount){
errorMsg+=' del ejecutivo '+owner
}
index+=1
}
errorMsg+='. No es posible crear la oportunidad'
throw new oracle.jbo.ValidationException(errorMsg)
return errorMsg
}
else{
return ''
}
adf.util.('cliente','1716277874','MASIVO')
def url
try{
def tipoNum = ''
def tipoCM = ''
if (tipo=='MASIVO'){
tipoNum='305'
tipoCM = 'masivo'
} else {
tipoNum='306'
tipoCM = 'corporativo'
}
url ='https://webservice.punto.net.ec/puntonet-
embedded/pages/data/'+tipoCM+'/'+data+'.html?
def token=''
def campo = '';
if(data == 'cliente' ||data == 'planes'||data ==
'contratos'
campo =||data == 'facturas' ||data =='pagos'){
'cedulaRuc';
}
if(data == 'plan'){
campo = 'contratoPlan';
}
if(data == 'contrato'){
campo = 'contrato';
}
def tokenKey=campo+'-'+llave
def tokenKeyTimestamp=tokenKey+'-Timestamp'
def curTimestamp=now().time
def tokenDuration=590000
token=nvl(adf.userSession.userData[tokenKey],'') as
String
def
prevTimestamp=nvl(adf.userSession.userData[tokenKe
if(token=='' || curTimestamp-prevTimestamp>
tokenDuration){
def payload=[:]
payload.put(campo,llave)
//println('payload:'+payload)
token =
adf.webServices.ConsumoToken.POST(payload)
println(token)
adf.userSession.userData.put(tokenKey, token)
adf.userSession.userData.put(tokenKeyTimestamp,
}curTimestamp)
url=url+token
//println(url)
return url
}
catch(Exception e){
url=url+''
//println(url)
return url
def startTime=now().time
def printMap=[:]
def leads=newView('Lead')
def leadc=newViewCriteria(leads)
def optys=newView('OpportunityVO')
def optyc=newViewCriteria(optys)
def mapClientes=[:]
def countClientes=0
for(map in listaClientes){
def customerId=nvl(map['customerId'] as Long,0 as
Long)
def ownerId=nvl(map['ownerId'] as Long,0 as Long)
def tipoCliente=nvl(map['tipoCliente'] as String,'')
mapClientes.put(customerId,ownerId)
def leadField=''
if(tipoCliente=='PERSON'){
leadField='PrimaryContactId'
}
if(tipoCliente=='ORGANIZATION'){
leadField='Cuenta_Id_c'
}
if(customerId!=0){
def leadr=leadc.createRow()
def leadi=leadr.ensureCriteriaItem(leadField)
leadi.setOperator('=')
leadi.setValue(customerId)
leadi.setConjunction(0)
leadc.insertRow(leadr)
def optyr=optyc.createRow()
def optyi=optyr.ensureCriteriaItem('TargetPartyId')
optyi.setOperator('=')
optyi.setValue(customerId)
optyc.insertRow(optyr)
countClientes+=1
}
}
def optyList=[]
def leadList=[]
if(countClientes>0){
//reasignar Leads
leads.appendViewCriteria(leadc)
leads.executeQuery()
while(leads.hasNext()){
def map=[:]
def lead=leads.next()
def clienteId=0
def tipoCliente=lead.TipoCliente_c
def statusCode=lead.StatusCode
def statusActivo=statusCode=='QUALIFIED' ||
statusCode=='UNQUALIFIED'
if(statusActivo){
if(tipoCliente=='PERSON'){
clienteId=lead.PrimaryContactId
}
else if(tipoCliente=='ORGANIZATION'){
clienteId=lead.Cuenta_Id_c as Long
}
def ownerId=mapClientes[clienteId]
map.put('prevOwnerId',lead.OwnerId)
map.put('curOwnerId',ownerId)
map.put('Name',lead.Name)
map.put('clienteId',clienteId)
map.put('recordNumber',lead.LeadNumber)
if(lead.OwnerId!=ownerId){
lead.setAttribute('OwnerId',ownerId)
lead.setAttribute('OverrideReassignment_c','Y')
}
}
leadList.add(map)
}
optys.appendViewCriteria(optyc)
optys.executeQuery()
while(optys.hasNext()){
def opty=optys.next()
def ownerId=mapClientes[opty.TargetPartyId]
if(opty.StatusCode=='OPEN'){
def map=[:]
map.put('prevOwnerId',opty.OwnerResourcePartyId)
map.put('curOwnerId',ownerId)
map.put('Name',opty.Name)
map.put('clienteId',opty.TargetPartyId)
map.put('recordNumber',opty.OptyNumber)
if(opty.OwnerResourcePartyId!=ownerId){
opty.setAttribute('OwnerResourcePartyId',ownerId)
opty.setAttribute('OverrideReassignment_c','Y')
}
optyList.add(map)
}
}
}
printMap.put('leads',leadList)
printMap.put('optys',optyList)
printMap.put('mapClientesOwners',mapClientes)
def elapsedTime=now().time - startTime
printMap.put('elapsedTime',elapsedTime)
println(''+printMap)
def vars=newView('VariablesDeSistema_c')
def varc=newViewCriteria(vars)
def varr=varc.createRow()
def vari=varr.ensureCriteriaItem('RecordName')
vari.setOperator('=')
vari.setValue(codigo)
varc.insertRow(varr)
vars.appendViewCriteria(varc)
vars.executeQuery()
def valor=''
while(vars.hasNext()){
def var = vars.next()
valor= var.Valor_c
}
return valor
def secCtx = adf.context.getSecurityContext()
return
secCtx.isUserInRole('PTN_ZBS_SALES_MANAGER_JOB_
Relationships
Source Object Target Object
Evento o Campaña Acción inteligente
Leads Cliente
Canal Oportunidad
Descuento Detalle
Oportunidad Plan
Canal Origen
Canal Leads
Oportunidad Activo
Activo Adicional
Oportunidad Diferir
Recurso Contacto
Oportunidad OLT
Canal Activo
Cliente Leads
Recurso Cantidad
Recurso Actividad
Recurso Origen
Oportunidad Descuento
Recurso Splitter
Recurso Diferir
Origen Activo
Oportunidad Detalle
Oportunidad Splitter
Recurso Oportunidad
Recurso Oportunidad
Bucket Oportunidad
Recurso Leads
Recurso Plan
Recurso Canal
Diferir Descuento
Recurso Bucket
Origen Oportunidad
Recurso Leads
Recurso Cliente
Recurso OLT
Recurso IP radio wifi
Recurso Renovación
Canal Oportunidad
Canal Contacto
Oportunidad Bucket
Plan Oportunidad
Detalle Diferir
Origen Contacto
Recurso Detalle
Descuento Diferir
Contacto Leads
OLT Oportunidad
Splitter Oportunidad
Recurso Descuento
Diferir Detalle
Origen Leads
Leads Contacto
OLT Splitter
Dirección Oportunidad
Name Cascade Delete Intersection Object
Subestado_cTosmartActions Yes
LeadToOrganizationForLeadProgenitor No
ClienteNetplus_cTosmartActions Yes
PromocionesYServiciosToDescuentoForPromocion No
Oservicio
Canal_cTosmartActions Yes
AnchoDeBanda_cTosmartActions Yes
OpportunityToCodigoPostalForOportunidad No
ChannelToOpportunityForCanal No
ColorDeHilo_cTosmartActions Yes
Temporalidad_cTosmartActions Yes
DescuentoToDetalleForDescuentoDefault No
ResourceToVariablesDeSistemaForOraZcxOwner No
OpportunityToHistoricoConsultaScoreForOportuni No
dad
OpportunityToPlanForOportunidad No
CanalToOrigenForCanal No
Descuento_cTosmartActions Yes
GrupoDeHiloToOpportunityForGrupoDeHilo No
OpportunityToIPRadioWifiForOportunidad No
CanalToLeadForCanal No
OpportunityToHistoricoDeEtapaDeVentaForOportu No
nidad
IntervaloCadaToPromocionesYServiciosForInterval No
oCada
IntervaloCadaToPromocionesYServiciosForInterval No
oCada
OpportunityToPromocionDescuentoForOportunida No
d
OpportunityToAssetEOForIdentificadorDeOportuni No
dad
AssetEOToAdicional_c Yes
OpportunityToDiferirForOportunidad No
ResourceToPersonForUsuarioDesasignado No
FormaDePago_cTosmartActions Yes
OpportunityToColorDeHiloForOportunidad No
PlanToUltimaMillaNetplusForPlan No
OpportunityToOLTForOportunidad No
DescuentoToPromocionesYServiciosForDescuento No
CanalToAssetEOForCanal No
Vendedor No RecursoAsignacionLead_
c
PromocionesYServiciosToCantidadForPromocionO No
Servicio
Plan_cTosmartActions Yes
PromocionesYServiciosToIntervaloCadaForPromoci No
onOServicio
ResourceToIntervaloHastaForOraZcxOwner No
Splitter_cTosmartActions Yes
VarReglasAsignacionLeadsToAsignacionMensualLe No
adsForVariablesOrigen
OrganizationToLeadForCuenta No
ResourceToPromocionDescuentoForOraZcxOwner No
ResourceToCantidadForOraZcxOwner No
GrupoDeHilo_cTosmartActions Yes
NodoWifi_cTosmartActions Yes
ResourceToActivityForEjecutivoOpp No
PersonToBitacoraForContacto No
UltimaMillaNetplus_cTosmartActions Yes
ResourceToOrigenForOraZcxOwner No
PlanToAnchoDeBandaForPlan No
OpportunityToDescuentoForOportunidad No
DetalleToPromocionesYServiciosForDetalleDefault No
ResourceToSplitterForOraZcxOwner No
ResourceToDiferirForOraZcxOwner No
ResourceToHistoricoDeTemporalidadForRecursoAs No
ignado
ColorDeHiloToOpportunityForColorDeHilo No
AsignacionMensualLeads_cTosmartActions Yes
ResourceToTemporalidadForOraZcxOwner No
OrigenToAssetEOForOrigen No
OpportunityToDetalleForOportunidad No
HistoricoDeTemporalidad_cTosmartActions Yes
PromocionDescuento_cTosmartActions Yes
OpportunityToSplitterForOportunidad No
ResourceToNodoWifiForOraZcxOwner No
ActividadEconomicaToCatalogoCIIUForActividadEc No
onomicaDin
ResourceToSubestadoForOraZcxOwner No
ResourceToAnchoDeBandaForOraZcxOwner No
ResourceToAnchoDeBandaForOraZcxOwner No
MapeoFormaTipoPago_cTosmartActions Yes
ResourceToOpportunityForUsuarioDesasignado No
PromocionesYServiciosToIntervaloHastaForPromoc No
ionOServicio
OpportunityToHistoricoDeContratoForOportunida No
d
ResourceToOpportunityForEjecutivoPreventa No
HistoricoConsultaScore_cTosmartActions Yes
BucketToOpportunityForBucket No
ResourceToPromocionesYServiciosForOraZcxOwne No
r
DiferirToPromocionesYServiciosForDiferirDefault No
PersonToHistoricoDeTemporalidadForIdContacto No
HistoricoDeContrato_cTosmartActions Yes
ResourceToAsignacionMensualLeadsForOraZcxOw No
ner
OLT_cTosmartActions Yes
ResourceToIntervaloCadaForOraZcxOwner No
OpportunityToClienteNetplusForOportunidad No
DetalleToPromocionDescuentoForDetalle No
ResourceToGrupoDeHiloForOraZcxOwner No
ResourceToLeadForUsuarioDesasignado No
DetalleToPromocionesYServiciosForDetalle No
UltimaMillaNetplusToOpportunityForUltimaMilla No
ResourceToHistoricoConsultaScoreForOraZcxOwne No
r
ResourceToHistoricoDeTemporalidadForOraZcxOw No
ner
OpportunityToFormaDePagoForOportunidad No
ResourceToPlanForOraZcxOwner No
PartidaAsignacionLeads_cTosmartActions Yes
VarReglasAsignacionLeads_cTosmartActions Yes
RenovacionToPromocionesYServiciosForRenovacio No
n
Renovacion_cTosmartActions Yes
PersonToHistoricoConsultaScoreForContacto No
ResourceToCanalForOraZcxOwner No
CantidadToPromocionesYServiciosForCantidad No
HistoricoDeEtapaDeVenta_cTosmartActions Yes
ResourceToServicioNetplusForOraZcxOwner No
DiferirToDescuentoForDiferir No
ResourceToHistoricoDeContratoForOraZcxOwner No
ResourceToBucketForOraZcxOwner No
PromocionesYServiciosToDetalleForPromocionOSe No
rvicio
ResourceToVarReglasAsignacionLeadsForOraZcxO No
wner
Bucket_cTosmartActions Yes
IntervaloHasta_cTosmartActions Yes
Detalle_cTosmartActions Yes
OpportunityToServicioNetplusForOportunidad No
SplitterToGrupoDeHiloForSplitter No
Diferir_cTosmartActions Yes
OpportunityToAnchoDeBandaForOportunidad No
OpportunityToAnchoDeBandaForOportunidad No
IPRadioWifi_cTosmartActions Yes
DescuentoToPromocionDescuentoForDescuento No
CodigoPostal_cTosmartActions Yes
PromocionesYServicios_cTosmartActions Yes
PromocionesYServiciosToRenovacionForPromocion No
OServicio
SubestadoToLeadForEvento No
OrganizationToHistoricoDeTemporalidadForIdCue No
nta
OrigenToOpportunityForOrigen No
AsignacionMensualLeadsToLeadForAsignacionMen No
sual
PromocionesYServiciosToDiferirForPromocionOSer No
vicio
DiferirToPromocionDescuentoForDiferir No
PromocionDescuentoToDiferirForPromocionDescu No
ento
HistoricoConsultaScoreToBitacoraForConsultaScor No
e
Bitacora_cTosmartActions Yes
ResourceToLeadForOwnerAsignadoRegla No
ActividadEconomicaToOrganizationForActividadEc No
onomica
ResourceToOrganizationForUsuarioDesasignado No
OpportunityToNodoWifiForOportunidad No
ActividadEconomica_cTosmartActions Yes
ResourceToGrupoComercialForOraZcxOwner No
DescuentoToPromocionesYServiciosForDescuento No
Default
ResourceToOLTForOraZcxOwner No
ResourceToIPRadioWifiForOraZcxOwner No
IntervaloCada_cTosmartActions Yes
ResourceToRenovacionForOraZcxOwner No
ResourceToUltimaMillaNetplusForOraZcxOwner No
CatalogoCIIUToOpportunityForNombreCatalogoCII No
UDin
AnchoDeBandaToOpportunityForAnchoDeBanda No
FormaDePagoToOpportunityForFormaDePagoDin No
CanalToOpportunityForCanalObjC No
BucketToCodigoPostalForBucket No
GrupoComercial_cTosmartActions Yes
VariablesDeSistema_cTosmartActions Yes
OrganizationToClienteNetplusForCuenta No
OpportunityToHistoricoDeTemporalidadForIdOpor No
tunidad
CanalToPersonForCanalDeVenta No
ResourceToColorDeHiloForOraZcxOwner No
PersonToClienteNetplusForContacto No
CodigoPostalToBucketForCodigoPostal No
OpportunityToBucketForOportunidad No
PlanToOpportunityForPlan No
DetalleToDiferirForDetalle No
OrigenToPersonForOrigenDeVenta No
ServiciosAdquiridos_cTosmartActions Yes
CodigoPostalToOpportunityForCodigoPostal No
CodigoPostalToOpportunityForCodigoPostal No
ResourceToDetalleForOraZcxOwner No
ResourceToServiciosAdquiridosForOraZcxOwner No
CatalogoCIIUToOrganizationForNombreCatalogoCI No
IUDin
PromocionDescuentoToDetalleForPromocionDescu No
ento
DescuentoToDiferirForDescuentoDefault No
ResourceToPartidaAsignacionLeadsForOraZcxOwn No
er
ResourceToMapeoFormaTipoPagoForOraZcxOwne No
r
OrganizationToBitacoraForCuenta No
ResourceToCodigoPostalForOraZcxOwner No
Origen_cTosmartActions Yes
PersonToLeadForContacto No
IntervaloHastaToPromocionesYServiciosForInterval No
oHasta
DiferirToPromocionesYServiciosForDiferir No
OLTToOpportunityForOLT No
OpportunityToBitacoraForOportunidad No
SplitterToOpportunityForSplitter No
ResourceToDescuentoForOraZcxOwner No
OpportunityToUltimaMillaNetplusForOportunidad No
OpportunityToGrupoDeHiloForOportunidad No
ResourceToActividadEconomicaForOraZcxOwner No
NodoWifiToOpportunityForNodoWifi No
Cantidad_cTosmartActions Yes
ResourceToFormaDePagoForOraZcxOwner No
NodoWifiToIPRadioWifiForNodoWifi No
AssetEOToServiciosAdquiridosForIdDetalleAsset No
GrupoDeHiloToColorDeHiloForGrupoDeHilo No
PromocionDescuentoToDescuentoForPromocionD No
escuento
ResourceToClienteNetplusForOraZcxOwner No
ResourceToBitacoraForOraZcxOwner No
DiferirToDetalleForDiferirDefault No
ActividadEconomicaToOpportunityForActividadEco No
nomica
ResourceToCatalogoCIIUForOraZcxOwner No
IPRadioWifiToOpportunityForIPRadioWifi No
OpportunityToPromocionesYServiciosForOportuni No
dad
ResourceToHistoricoDeTemporalidadForRecursoAn No
terior
OrigenToLeadForOrigen No
LeadToPersonForLeadProgenitor No
CatalogoCIIU_cTosmartActions Yes
OLTToSplitterForOLT No
ResourceToHistoricoDeEtapaDeVentaForOraZcxOw No
ner
ServicioNetplus_cTosmartActions Yes
GrupoComercialToOrganizationForGrupoComercial No
Din
DireccionInstalacion No DireccionInstalacion_c
Cardinality Description
1:M
1:M
1:M
1:M
1:M
1:M
1:M
1:M
1:M
1:M
1:M
Custom Fields
Name Display Name Type Column Name
RecordName Código de actividad económica OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
CurrencyCode Currency Code FCL CURRENCY_CODE
LastUpdatedBy Actualizado por OOTB LAST_UPDATED_BY
CreatedBy Creado por OOTB CREATED_BY
OraZcxOwner_c Owner DCL
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Object Workflows
Name Definition Name Event Point Description
ActividadEconomica_c_Stan Create
dard_Create
ActividadEconomica_c_Stan Delete
dard_Delete
ActividadEconomica_c_Stan Update
dard_Update
ActividadEconomica_c
Actividades Economicas
Custom
CRM
HZ_REF_ENTITIES
12
0
0
0
3
1
0
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
ression
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
Object Name : Activity
Object Name Activity
Object Display Name Plural Actividades
Object Type OOTB
Application Name CRM
Table Name ZMM_ACTY_ACTIVITIES
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Standard Fields
Name Display Name Help Text
StatusCode Estado Status
ActivityEndDate Fecha y hora de finalización End Date
Subject Asunto Subject
ActivityStartDate Fecha y hora de inicio Start Date
ActivityTypeCode Tipo Type
AllDayFlag Todo el Día All Day
OwnerNameExtn Ejecutivo
OpportunityName Oportunidad Opportunity
AccountName2 Cuenta Account
PrivateFlag Privada Private
Location Ubicación Location
AccountName Account
DueDate Fecha de Vencimiento Due Date
PrimaryContactName Contacto Principal Primary Contact
PriorityCode Prioridad Priority
OutcomeCode Resultado Outcome
Custom Fields
Name Display Name Type Column Name
PrioridadMasivo_c Prioridad FCL EXTN_ATTRIBUTE_CHAR007
CorreoEjecutivoOpp_c Correo Ejecutivo Opp Text EXTN_ATTRIBUTE_CHAR009
MostrarHoraComo_c Mostrar hora como FCL EXTN_ATTRIBUTE_CHAR005
EjecutivoOpp_Id_c EjecutivoOpp DCLForeignKey EXTN_ATTRIBUTE_NUMBER001
CorreoManagerOpp_c Correo Manager Opp Text EXTN_ATTRIBUTE_CHAR010
ActividadProyecto_c Actividad Proyecto FCL EXTN_ATTRIBUTE_CHAR004
TipoActividadProyecto_c Tipo Actividad Proyecto FCL EXTN_ATTRIBUTE_CHAR003
ResultadoMasivo_c Resultado FCL EXTN_ATTRIBUTE_CHAR008
EjecutivoOpp_c EjecutivoOpp DCL
Triggers
Name Type Trigger PointDescription Error Message Expression
setStatus Field Trigger Modify if(OutcomeCode=='
Field Name : setAttribute('Status
OutcomeCode }
setAsunto Field Trigger Modify if((TipoActividadProy
Field Name : setAttribute('Subje
ActividadProyecto_c }
setDefaults Object Trigger Create def tipoUsuario=''
if(adf.util.usuarioPre
tipoUsuario='PREV
}
if(!adf.util.usuarioPre
tipoUsuario='SOLU
}
if(tipoUsuario!=''){
setAttribute('TipoA
setAttribute('Activit
}
InsertCorreo Object Trigger BeforeInsert tipoPreventa()
if(OpportunityId!=0
def opp= Opportun
if (OpportunityId =
def EjecutivoIdOp
def ejecutivoOpp=
ResourceVOVA?.M
NotificacionesCampan Object Trigger BeforeUpdate tipoPreventa()
aActividades if(OpportunityVOVA
setAttribute('Correo
NotificacionesCampan Object Trigger BeforeUpdate
aActividades
}
if (isAttributeChange
def nombre=''
if(ActividadProyect
nombre= 'Elabora
}
if(ActividadProyect
nombre= 'Validac
}
try {
def map = new H
def messageText
map.put("Channe
map.put("Messag
adf.util.sendNotifi
} catch (e) {
}
}
Validations
Name Type Error Message Expression
ValidacionSolucionesPr Object Validation Es necesario especificar un resultado para if(TipoActividadProy
eventa poder marcar una actividad de tipo if(StatusCode=='CO
soluciones como Completa. return nvl(Outcom
}
}
else if(TipoActividad
def attachments=A
def countAttachme
while(attachments.
def attachment=a
countAttachment
}
if(countAttachmen
throw new oracle.
}
}
return true
Rule1 Field Validation adf.source.isLookup
Field Name : EjecutivoOpp_Id_c
Object Functions
Name Parameters Return Type Privileged Visibility Description
tipoPreventa void No Default
Object Workflows
Name Definition Name Event Point Description
NotificacionActividadValid NotificacionActividadValida Update
acion cion
Dynamic Layouts
Layout Name Active Role
PNT TAREA CORPORATIVO Yes PTN_ZBS_SALES_MANAGER_JOB_CUSTOM_PRE_VEN
PTN TAREA Yes _CORP;PTN_ZBS_SALES_MANAGER_JOB_CUSTOM_JE
USUARIO_MASIVO;
PNT TAREA CORPORATIVO ANY Yes
PTN LLAMADA Yes USUARIO_MASIVO;
PTN LLAMADA CORPORATIVO Yes
PTN CITA Yes USUARIO_MASIVO;
PTN CITA CORPORATIVO Yes
PTN DET CITA Yes USUARIO_MASIVO;
PTN DET CITA CORPORATIVO Yes
PTN DET TAREA Yes USUARIO_MASIVO;
PNT DET TAREA CORPORATIVO Yes PTN_ZBS_SALES_MANAGER_JOB_CUSTOM_PRE_VEN
PNT DET TAREA COPROPIETARIO ANY Yes _CORP;PTN_ZBS_SALES_MANAGER_JOB_CUSTOM_JE
PTN DET LLAMADA Yes USUARIO_MASIVO;
PTN DET LLAMADA CORPORATIVO Yes
Diseño Actividades Yes
vity
vidades
B
M
M_ACTY_ACTIVITIES
11
16
5
1
3
2
15
Searchable
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
No
Yes
Yes
Yes
Yes
Expression
if(OutcomeCode=='SUCCESSFUL' || OutcomeCode=='REJECTED'){
setAttribute('StatusCode','COMPLETE')
}
if((TipoActividadProyecto_c=='SOLUCIONES' || TipoActividadProyecto_c=='PREVENTA' ) && nvl(ActividadProyecto_c,'')!=''){
setAttribute('Subject',getSelectedListDisplayValue('ActividadProyecto_c'))
}
def tipoUsuario=''
if(adf.util.usuarioPreventa()&& !adf.util.usuarioSoluciones()){
tipoUsuario='PREVENTA'
}
if(!adf.util.usuarioPreventa()&& adf.util.usuarioSoluciones()){
tipoUsuario='SOLUCIONES'
}
if(tipoUsuario!=''){
setAttribute('TipoActividadProyecto_c',tipoUsuario)
setAttribute('ActivityTypeCode',tipoUsuario)
}
tipoPreventa()
if(OpportunityId!=0 &&ActividadProyecto_c== 'ACT_VDISENO' ){
def opp= OpportunityVOVA?.OptyId
if (OpportunityId ==opp) {
def EjecutivoIdOpp=nvl(OpportunityVOVA?.getOriginalAttributeValue('OwnerResourcePartyId'),0 as BigDecimal)
def ejecutivoOpp= adf.util.getResourceProfileId(EjecutivoIdOpp as Long)
ResourceVOVA?.ManagerPartyId
tipoPreventa()
if(OpportunityVOVA!=null){
setAttribute('CorreoPreventa_c',OpportunityVOVA?.CorreoPreventa_c)
}
if (isAttributeChanged('StatusCode') && StatusCode=='COMPLETE' ){
def nombre=''
if(ActividadProyecto_c=='ACT_EDISENO'){
nombre= 'Elaborar diseño HLD'
}
if(ActividadProyecto_c=='ACT_VDISENO'){
nombre= 'Validación de Diseño'
}
try {
def map = new HashMap()
def messageText ='La actividad ' + nombre+ ' de la oportunidad ' +OpportunityName + ' fue completada'
map.put("Channels",["ORA_SVC_BELL"])
map.put("MessageText",messageText)
adf.util.sendNotification(adf, map)
} catch (e) {
}
}
Expression
if(TipoActividadProyecto_c=='SOLUCIONES'){
if(StatusCode=='COMPLETE'){
return nvl(OutcomeCode,'')!=''
}
}
else if(TipoActividadProyecto_c=='PREVENTA' && StatusCode=='COMPLETE' && ActividadProyecto_c=='ACT_EDISENO'){
def attachments=Attachments
def countAttachments=0
while(attachments.hasNext()){
def attachment=attachments.next()
countAttachments+=1
}
if(countAttachments==0){
throw new oracle.jbo.ValidationException('Actividades Tipo Preventa: Debe adjuntar el documento correspondiente para finalizar la a
}
}
return true
adf.source.isLookupIdValid('EjecutivoOpp_Id_c',newValue)
Expression
if((getPrimaryRowState().isNew() || isAttributeChanged('ActivityTypeCode')) && (ActivityTypeCode=='PREVENTA' ||
ActivityTypeCode=='SOLUCIONES')){
if(!adf.util.usuarioPreventa() && !adf.util.usuarioSoluciones() &&!adf.util.usuarioAdministrador()){
throw new oracle.jbo.ValidationException('Acción no permitida: No pude crear actividades tipo Preventa o Soluciones.')
}
}
B_CUSTOM_PRE_VEN
GER_JOB_CUSTOM_JE
Precision MaxLength Expression
1500 1500
200 200
1500 1500
18 18
200 200
1500 1500
1500 1500
1500 1500
1500 1500
1500 1500
200 200
ctividadProyecto_c,'')!=''){
,0 as BigDecimal)
voOpp)
ompletada'
cto_c=='ACT_EDISENO'){
ression
le.apps.crmCommon.extensibility.content.adf.data.util.ExtensibilityGro
urn false;
le.apps.crmCommon.extensibility.content.adf.data.util.ExtensibilityGro
urn false;
urn true;
le.apps.crmCommon.extensibility.content.adf.data.util.ExtensibilityGro
urn false;
poActividadProyecto_c=='SOLUCIONES' &&
tributeChanged('OutcomeCode')
urn OutcomeCode=='SUCCESSFUL' || isAttributeChanged('StatusCode')))
|| OutcomeCode=='REJECTED'
rn false
Object Name : Address
Object Name Address
Object Display Name Plural Direcciones de comunidad de
Object Type OOTB
Application Name CRM
Table Name HZ_PARTY_SITES
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Custom Fields
Name Display Name Type Column Name
TriggerAddressCreationInOpportuniDesencadenar creación en oportu Checkbox EXTN_ATTRIBUTE_CHAR003
Latitud_c Latitud FCL EXTN_ATTRIBUTE_CHAR006
Longitud_c Longitud FCL EXTN_ATTRIBUTE_CHAR007
CoordenadaLatitudNum_c Coordenada Latitud Number EXTN_ATTRIBUTE_NUMBER004
CoordenadaLatitud_c Coordenada Latitud Text EXTN_ATTRIBUTE_CHAR004
CoordenadaLongitud_c Coordenada Longitud Text EXTN_ATTRIBUTE_CHAR005
CoordenadaLongitudNum_c Coordenada Longitud Number EXTN_ATTRIBUTE_NUMBER005
BarrioSectorConjunto_c Barrio / Sector / Conjunto Text EXTN_ATTRIBUTE_CHAR008
Triggers
Name Type Trigger PointDescription Error Message
crearDireccionOportu Object Trigger BeforeUpdate
nidadesUpd
Validations
Name Type Error Message
FND_ACFF_LVR_Attribu Field Validation
teCategory__AttributeC Field Name : AttributeCategory
ategory
HintBasedMaximumVal Field Validation
idator_CoordenadaLati Field Name : CoordenadaLatitudNum_c
tudNum_c
HintBasedMaximumVal Field Validation
idator_CoordenadaLon Field Name :
gitudNum_c CoordenadaLongitudNum_c
Object Functions
Name Parameters Return Type Privileged Visibility Description
crearDirecci void No Callable by
onOportuni External
dades Systems
crearDirecci void No Callable by
onOportuni External
dades Systems
Object Workflows
Name Definition Name Event Point Description
cascadaDireccion cascadaDireccion Create
Dynamic Layouts
Layout Name Active Role
Direccion Punto Net Yes
Direccion Punto Net Creacion Yes
Address
Direcciones de comunidad de comercio
OOTB
CRM
HZ_PARTY_SITES
8
0
1
1
1
3
2
Expression
if(isAttributeChanged('TriggerAddressCreationInOpportunities_c')&&TriggerAddressCreationInOpportunities_c=='Y')
crearDireccionOportunidades()
Expression
return oracle.apps.fnd.applcore.oaext.model.OAEntityImpl.validateFlexfieldValue(newValue, adf.source, "FND_ACFF_VA_Attribute
"ContextCode", "Bind_ContextCode")
newValue <= Double.valueOf(adf.source.formatHintValueForAttr("CoordenadaLatitudNum_c", "maxValue"))
tion Expression
def siteId=PartySiteId
def direccionesInstalacion=DireccionInstalacion_Src_AddressToDireccionInstalacion_c_Tgt
def instalacionOptyIdList=[]
def outputMap=[:]
while(direccionesInstalacion.hasNext()){
def dirInst=direccionesInstalacion.next()
def optyId=dirInst.Opportunity_Id_Tgt_OpportunityToDireccionInstalacion_c as Long
if(!instalacionOptyIdList.contains(optyId)){
instalacionOptyIdList.add(optyId)
}
}
outputMap.put('instalacionOptyIdList',instalacionOptyIdList)
def optyList=[]
def partyId=PartyId
def optys=newView('OpportunityVO')
def optyc=newViewCriteria(optys)
def optyr=optyc.createRow()
def optyi=optyr.ensureCriteriaItem('TargetPartyId')
optyi.setOperator('=')
optyi.setValue(partyId)
optyc.insertRow(optyr)
optys.appendViewCriteria(optyc)
optys.executeQuery()
while(optys.hasNext()){
def opty=optys.next()
def optyId=opty.OptyId as Long
def optyMap=[:]
def addFlag=false
if(!instalacionOptyIdList.contains(optyId)){
def dirInst=direccionesInstalacion.createRow()
dirInst.setAttribute('Address_Id_Src_AddressToDireccionInstalacion_c',siteId)
dirInst.setAttribute('Opportunity_Id_Tgt_OpportunityToDireccionInstalacion_c',optyId)
direccionesInstalacion.insertRow(dirInst)
addFlag=true
}
optyMap.put('OptyId',optyId)
optyMap.put('Name',opty.Name)
optyMap.put('addFlag',addFlag)
optyList.add(optyMap)
}
outputMap.put('optyList',optyList)
outputMap.put('PartySiteId',siteId)
outputMap.put('FormattedAddress',FormattedAddress)
println(outputMap)
ption Disabled Actions Expression
No Field Update if(!
Name : desencadenar creación oracle.apps.crmCommon.extensibi
return false;
Execution Schedule : 0 : Days: After: else
Fields return true;
Name :
Address:TriggerAddressCreationInOpportunities
Value : Y
portunities_c=='Y')
urce, "FND_ACFF_VA_AttributeCategory__AttributeCategory",
axValue"))
maxValue"))
Tgt
d)
ression
le.apps.crmCommon.extensibility.content.adf.data.util.ExtensibilityGro
urn false;
urn true;
Object Name : Adicional_c
Object Name
Object Display Name Plural
Object Type
Application Name
Table Name
Child Object
Parent Object Name
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Custom Fields
Name Display Name Type Column Name
RecordName Desgrupo OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
CurrencyCode Currency Code FCL CURRENCY_CODE
ValorUnitario_c Valor Unitario Currency EXTN_ATTRIBUTE_NUMBER007
LastUpdatedBy Actualizado por OOTB LAST_UPDATED_BY
CreatedBy Creado por OOTB CREATED_BY
FinPromocionhasta_c Fin promocion (hasta) Date EXTN_ATTRIBUTE_TIMESTAMP002
InicioPromociondesde_c Inicio promocion (desde) Date EXTN_ATTRIBUTE_TIMESTAMP001
ValorTotal_c Valor Total Currency EXTN_ATTRIBUTE_NUMBER014
CantidadEnMeses_c Cantidad en meses Number EXTN_ATTRIBUTE_NUMBER016
Descripcion_c Descripcion Text EXTN_ATTRIBUTE_CHAR006
Cantidad_c Cantidad Number EXTN_ATTRIBUTE_NUMBER006
AssetVO_Id_c AssetVO_Id_c OOTB EXTN_ATTRIBUTE_NUMBER001
Detalle_c Detalle Text EXTN_ATTRIBUTE_CHAR008
Id Identificador de Registro OOTB ID
RecordNumber Record Number OOTB RECORD_NUMBER
DescripcionDescuento_c Descripcion % descuento Text EXTN_ATTRIBUTE_CHAR007
LastUpdateDate Fecha de Última Actualización OOTB LAST_UPDATE_DATE
Estado_c Estado Text EXTN_ATTRIBUTE_CHAR009
Adicional_c
Adicionales
Custom
CRM
ZCA_ASSET_XM
Yes
AssetEO
19
0
0
0
0
0
0
Custom Fields
Name Display Name Type Column Name
RecordName Código OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
Plan_c Plan DCL
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Rule1 Field Validation
Field Name : Oportunidad_Id_c
Rule1 Field Validation
Field Name : Plan_Id_c
Object Workflows
Name Definition Name Event Point Description
AnchoDeBanda_c_Standard Create
_Create
AnchoDeBanda_c_Standard Delete
_Delete
AnchoDeBanda_c_Standard Update
_Update
AnchoDeBanda_c
Ancho de banda
Custom
CRM
MOT_REF_ENTITIES
17
0
0
0
3
3
0
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
adf.source.isLookupIdValid('Oportunidad_Id_c',newValue)
adf.source.isLookupIdValid('Plan_Id_c',newValue)
ption Disabled Actions Expression
No return
(oracle.apps.fnd.applcore.Profile.ge
No return
(oracle.apps.fnd.applcore.Profile.ge
No return
(oracle.apps.fnd.applcore.Profile.ge
Precision MaxLength Expression
80 80
0 0
1500 1500
15 15
16 16
64 64
64 64
1500 1500
18 18
18 18
200 200
1500 1500
10 10
18 18
32 32
64 64
0 0
ression
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
Object Name : AsignacionMensualLeads_c
Object Name AsignacionMensualLeads_c
Object Display Name Plural Asignación mensual de leads
Object Type Custom
Application Name CRM
Table Name HZ_REF_ENTITIES
Record Name Sequence {0000000000}
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Custom Fields
Name Display Name Type Column Name
RecordName Número de Asignación mensual deOOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
MinimoDeLead_c Mínimo de Leads Number EXTN_ATTRIBUTE_NUMBER007
ScoreEjecutado_c Score Ejecutado Checkbox EXTN_ATTRIBUTE_CHAR007
CurrencyCode Currency Code FCL CURRENCY_CODE
Vueltas_c Número de Vueltas Number EXTN_ATTRIBUTE_NUMBER022
LastUpdatedBy Actualizado por OOTB LAST_UPDATED_BY
CreatedBy Creado por OOTB CREATED_BY
AsignacionActiva_c AsignacionActiva Checkbox EXTN_ATTRIBUTE_CHAR008
OraZcxOwner_c Owner DCL
Triggers
Name Type Trigger PointDescription Error Message
Init_AsignacionMensu Object Trigger Create
al
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Rule1 Field Validation
Field Name : VariablesOrigen_Id_c
Object Functions
Name Parameters Return Type Privileged Visibility Description
ejecutarAsig void No Default
nacion
calcularLead void No Default
sAsignados
Dynamic Layouts
Layout Name Active Role
Admin Yes
AsignacionMensualLeads_c
Asignación mensual de leads
Custom
CRM
HZ_REF_ENTITIES
{0000000000}
28
0
1
9
3
2
1
Expression
def today=today()
setAttribute('Mes_c',month(today))
setAttribute('Anio_c',year(today))
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
adf.source.isLookupIdValid('VariablesOrigen_Id_c',newValue)
tion Expression
def recursoAsignacions=RecursoAsignacionLead_Src_AsignacionMensualLeads_cToRecursoAsignacionLead_c_Tgt
def existenRecursos=false
while(recursoAsignacions.hasNext()&&!existenRecursos){
def recursosAsignacion=recursoAsignacions.next()
existenRecursos=true
}
def listaIdRecursos=[]
def anoymes=Anio_c*100+Mes_c
if(!existenRecursos){
def ress=newView('Resource')
def resc=newViewCriteria(ress)
def resr=resc.createRow()
def resi=resr.ensureCriteriaItem('AnoYMes_c')
resi.setOperator('<')
resi.setValue(anoymes)
resc.insertRow(resr)
ress.appendViewCriteria(resc)
ress.executeQuery()
def roleList=['SALES_SETUP_USER']
ress.setMaxFetchSize(1000)
ress.executeQuery()
while(ress.hasNext()){
def res=ress.next()
def resId=res.ResourceProfileId
res.setAttribute('AnoYMes_c',anoymes)
if(res.testRoles(roleList)&&!listaIdRecursos.contains(resId)){
listaIdRecursos.add(resId)
}
}
}
def numeroDeLeadsAAsignar=200
def leadsAsignados=LeadsAsignados_c
def leadsTotales=numeroDeLeadsAAsignar+leadsAsignados
def numeroDeVendedores=10
def minLeads=nvl(MinimoDeLead_c,0)
def bolsa=nvl(BolsaDeLeadsARepartir_c,0)
def k=nvl(UltimoObjetivoCompletado_c,0)
def c=nvl(ObjetivosCompletadosAcumulados_c,0)
if(ScoreEjecutado_c!='Y' || true){
def numeroMeses=NumeroDeMeses_c as Long
def today=today()
def yearNum=year(today)
def monthNum= 0
monthNum=month(today) as Long
println('NumeroDeMeses_c:'+numeroMeses)
yearNum=yearNum-(-monthNum+numeroMeses+1)/12 as Long
monthNum=(monthNum-numeroMeses-1)%12+1
def month2=month(today)
def year2=year(today)
if(month2==12){
year2=year2+1
month2=1
}
else{
month2+=1
}
def month2Str=''
if(month2>=10){
month2Str=''+month2
}
else{
month2Str= '0'+month2
}
def fechaActivoStr=''+year2+'-'+month2Str+'-01'
def fechaActivo=java.sql.Date.valueOf(fechaActivoStr)
def anoymes=Anio_c*100+Mes_c
def ress=newView('Resource')
/* def resc=newViewCriteria(ress)
def resr=resc.createRow()
def resi=resr.ensureCriteriaItem('AnoYMes_c')
resi.setOperator('<')
resi.setValue(anoymes)
def resj=resr.ensureCriteriaItem('AnoYMes_c')
resj.setOperator('ISBLANK')
resj.setConjunction(0); //OR
resc.insertRow(resr)
/*
def resr2=resc.createRow()
def resi2=resr2.ensureCriteriaItem('EndDateActive')
resi2.setOperator('ONORAFTER')
resi2.setValue(fechaActivo)
def resj2=resr2.ensureCriteriaItem('EndDateActive')
resj2.setOperator('ISBLANK')
resj2.setConjunction(0)
resc.insertRow(resr2)
*/
//ress.appendViewCriteria(resc)
ress.executeQuery()
ress.setMaxFetchSize(2000)
ress.executeQuery()
def recursosIds=[]
def recursosMap=[:]
def count=0
while(ress.hasNext()){
def res=ress.next()
def resId=res.PartyId
res.setAttribute('AnoYMes_c',anoymes)
if((res.esTeleventasDigital()&&(!recursosIds.contains(resId)||true))){
recursosIds.add(resId)
def recursoDetailMap=[:]
recursoDetailMap.put('ResourceProfileId',res.ResourceProfileId)
recursoDetailMap.put('Score',0)
recursoDetailMap.put('RecursoRow',res)
recursoDetailMap.put('EndDateActive',res.EndDateActive)
recursoDetailMap.put('Roles',res.Roles)
recursoDetailMap.put('AnoYMes_c',res.AnoYMes_c)
recursosMap.put(resId,recursoDetailMap)
}
count=count+1
}
def maxScore=0
while(optys.hasNext()){
def opty=optys.next()
def ownerId=opty.OwnerResourcePartyId
def statusCode=opty.StatusCode
if(recursosIds.contains(ownerId)&&(statusCode=='OPEN'||statusCode=='WON')){
def recursoDetailMap=recursosMap[ownerId]
def score=recursoDetailMap['Score']+1
recursoDetailMap.put('Score',score)
if(maxScore<score){
maxScore=score
}
}
}
println('RecursosMap:'+recursosMap)
for (resourcePartyId in recursosIds){
def recursoDetailMap=recursosMap[resourcePartyId]
def res=recursoDetailMap.RecursoRow
def score=recursoDetailMap.Score
res.setAttribute('Score_c',score)
res.setAttribute('AnoYMes_c',anoymes)
}
return true
}
return true
def cambioEnLista=false
def recursosAsignacion=RecursoAsignacionLead_Src_AsignacionMensualLeads_cToRecursoAsignacionLead_c_Tgt
def resAsignacionIdList=[]
def rowList=[]
def output=true
def count=0
def vueltas=nvl(Vueltas_c,0 as BigDecimal) as Long
while(recursosAsignacion.hasNext()){
def recursoAsignacion=recursosAsignacion.next()
if(recursoAsignacion.SuspenderAsignacion_c!='Y'){
resAsignacionIdList.add(recursoAsignacion.Resource_Id_Tgt_ResourceToRecursoAsignacionLead_c as Long)
}
count+=1
}
println('resAsignacionIdList:'+resAsignacionIdList)
def primeraAsignacion=false
if(count==0){
primeraAsignacion=true
}
println('countRecursos:'+count)
def resIdList=[]
def ress=newView('Resource')
ress.setSortBy('Score_c desc, StartDateActive asc')
ress.executeQuery()
def ranking=1
def numeroVendedores=0
while(ress.hasNext()){
def res=ress.next()
if(res.esTeleventasDigital()){
def resId=res.ResourceProfileId as Long
def recursoMap=[:]
recursoMap.put('ResourceProfileId',resId)
recursoMap.put('Ranking',ranking)
recursoMap.put('Insert',false)
recursoMap.put('Score',res.Score_c)
if(!resAsignacionIdList.contains(resId)){
recursoMap.put('Insert',true)
cambioEnLista=true
}
rowList.add(recursoMap)
ranking+=1
numeroVendedores+=1
resIdList.add(resId)
}
}
def deleteResAsignacionList=resAsignacionIdList-resIdList
def cantidadSkips=deleteResAsignacionList.size()
//def cantidadSkips = deleteResAsignacionList
def outputMap=[:]
outputMap.put('rowList',rowList)
outputMap.put('resAsignacionIdList',resAsignacionIdList)
//throw new oracle.jbo.ValidationException('outputMap:'+outputMap)
def deltaAsignacion=nvl(DeltaDeAsignacion_c,0 as BigDecimal)
def numeroVendedoresAnterior=nvl(NumeroDeVendedores_c,0 as BigDecimal)
setAttribute('NumeroDeVendedores_c',numeroVendedores)
if(primeraAsignacion){
deltaAsignacion=adf.util.calcularDeltaAsignacion(numeroVendedores as Long, BolsaDeLeadsARepartir_c as Long)
deltaAsignacion=(deltaAsignacion as BigDecimal).setScale(12,BigDecimal.ROUND_HALF_UP)
println('DeltaAsignacion:'+deltaAsignacion)
setAttribute('DeltaDeAsignacion_c',deltaAsignacion)
}
def minimoLeads=nvl(MinimoDeLead_c,0 as BigDecimal) as Long
def objetivoAsignacion=minimoLeads
def recursoCount=1
def rankingOffset=1+cantidadSkips
for(recursoMap in rowList){
def insert=recursoMap['Insert'] as Boolean
println('insert'+recursoCount+':'+insert)
if(insert){
println('Entré')
def recursoAsignacion=recursosAsignacion.createRow()
ranking=recursoMap['Ranking']
recursoAsignacion.setAttribute('Resource_Id_Tgt_ResourceToRecursoAsignacionLead_c',recursoMap['ResourceProf
if(!primeraAsignacion){
//-----------------cambio de numero numeroVendedoresAnterior por numeroVendedores
recursoAsignacion.setAttribute('Ranking_c',numeroVendedores+rankingOffset)
rankingOffset+=1
}
else{
recursoAsignacion.setAttribute('Ranking_c',ranking)
}
recursoAsignacion.setAttribute('Score_c',recursoMap['Score'])
recursoAsignacion.setAttribute('Offset_c',vueltas)
recursoAsignacion.setAttribute('LeadsAsignados_c',0)
if(primeraAsignacion){
recursoAsignacion.calcularObjetivoAsignacion(numeroVendedores as Long,minimoLeads as Long,deltaAsignacio
}
else{
recursoAsignacion.setAttribute('ObjetivoDeAsignacion_c',minimoLeads)
}
recursosAsignacion.insertRow(recursoAsignacion)
output=false
}
recursoCount+=1
}
recursosAsignacion.reset()
while(recursosAsignacion.hasNext()){
def res=recursosAsignacion.next()
if(deleteResAsignacionList.contains(res.Resource_Id_Tgt_ResourceToRecursoAsignacionLead_c as Long) && res.Susp
println('SuspenderAsignacion_c:' + res.SuspenderAsignacion_c)
res.setAttribute('SuspenderAsignacion_c','Y')
println('recurso suspendido:' + res.Resource_Tgt_ResourceToRecursoAsignacionLead_c_Src.PartyName)
cambioEnLista=true
}
else if(nvl(res.SuspenderAsignacion_c,'N')=='Y'){
if(resIdList.contains(res.Resource_Id_Tgt_ResourceToRecursoAsignacionLead_c)){
res.setAttribute('SuspenderAsignacion_c','N')
res.setAttribute('Offset_c',vueltas-nvl(res.LeadsAsignados_c,0 as BigDecimal))
}
}
}
outputMap.put('CambioEnLista',cambioEnLista)
println(outputMap)
//throw new oracle.jbo.ValidationException('OutputMapSetRanking'+outputMap)
return cambioEnLista
def recursosAsignacion=RecursoAsignacionLead_Src_AsignacionMensualLeads_cToRecursoAsignacionLead_c_Tgt
while(recursosAsignacion.hasNext()){
(recursosAsignacion.next()).remove()
}
def leads=newView('Lead')
def leadc=newViewCriteria(leads)
def leadr=leadc.createRow()
def leadi=leadr.ensureCriteriaItem('SistemaOrigen_c')
leadi.setOperator('=')
leadi.setValue('LEADBOX')
def leadj=leadr.ensureCriteriaItem('AsignacionMensual_Id_c')
leadj.setOperator('ISBLANK')
def leadk=leadr.ensureCriteriaItem('TipoCM_c')
leadk.setOperator('=')
leadk.setValue('MASIVO')
leadc.insertRow(leadr)
leads.appendViewCriteria(leadc)
leads.executeQuery()
def leadCount=0
while(leads.hasNext()){
def lead=leads.next()
leadCount+=1
}
println('TEST :D')
def printList=[]
def minimoLeads=nvl(MinimoDeLead_c,0 as BigDecimal) as Long
def numeroVendedores=nvl(NumeroDeVendedores_c,0 as BigDecimal) as Long
def bolsaLeads=nvl(BolsaDeLeadsARepartir_c,0 as BigDecimal) as Long
def rankingMap=[:]
def recursosAsignacion=RecursoAsignacionLead_Src_AsignacionMensualLeads_cToRecursoAsignacionLead_c_Tgt
def maximosAcumulados=nvl(ObjetivosCompletadosAcumulados_c,0 as BigDecimal) as Long
def ultimoObjetivoCompletado=nvl(UltimoObjetivoCompletado_c,numeroVendedores as BigDecimal)
def totalAnterior=nvl(LeadsAsignados_c,0 as BigDecimal) as Long
def leadTotal=leadCount+totalAnterior
//throw new oracle.jbo.ValidationException
while(recursosAsignacion.hasNext()){
def recursoAsignacion=recursosAsignacion.next()
def ranking=''+nvl(recursoAsignacion.Ranking_c,0 as BigDecimal)
def recursoMap=[:]
recursoMap.put('Row',recursoAsignacion)
recursoMap.put('Target',0)
rankingMap.put(ranking,recursoMap)
}
def primeraFrontera=numeroVendedores*minimoLeads
if(leadTotal <= primeraFrontera){
println('Condición 1')
def s=leadTotal%numeroVendedores
def i=1
while(i<=numeroVendedores){
def target=0
def recursoMap=rankingMap[''+i]
if(i<=s){
target=(leadTotal/numeroVendedores)+1
}
else{
target=leadTotal/numeroVendedores
}
println(target)
target=(target as BigDecimal).setScale(0,BigDecimal.ROUND_DOWN)
recursoMap.put('Target',target)
i+=1
}
}
else if(leadTotal<= numeroVendedores*minimoLeads+bolsaLeads){
println('Condición 2')
def i=numeroVendedores as Long
def escenario=''
def totalEsperado=0
while(i>0){
def printMap=[:]
def target=0
def recursoMap=rankingMap[''+i]
def recursoAsignacionRow=recursoMap['Row']
def objetivoAsignacion=recursoAsignacionRow.ObjetivoDeAsignacion_c as Long
totalEsperado+=objetivoAsignacion
if(objetivoAsignacion*i+totalEsperado>=leadTotal){
def s=((leadTotal-maximosAcumulados) as int)%((ultimoObjetivoCompletado-1)as int)
printMap.put('s',s)
if(i<s){
target=(leadTotal-maximosAcumulados)/(ultimoObjetivoCompletado-1)+1
escenario='target izquierda'
}
else{
target=(leadTotal-maximosAcumulados)/(ultimoObjetivoCompletado-1)
escenario='target derecha'
}
}
else{
printMap.put('s',0)
escenario='target=objetivo'
target=objetivoAsignacion
maximosAcumulados+=objetivoAsignacion
ultimoObjetivoCompletado=i
}
target=(target as BigDecimal).setScale(0,BigDecimal.ROUND_DOWN) as Long
println('target:'+target)
recursoMap.put('Target',target)
printMap.put('Escenario',escenario)
printMap.put('Rank',i)
printMap.put('maximosAcumulados',maximosAcumulados)
printMap.put('objetivoAsignacion',objetivoAsignacion)
printMap.put('ultimoObjetivoCompletado',ultimoObjetivoCompletado)
printMap.put('Target',target)
printList.add(printMap)
i-=1
}
setAttribute('ObjetivosCompletadosAcumulados_c',maximosAcumulados)
setAttribute('UltimoObjetivoCompletado_c',ultimoObjetivoCompletado)
}
else{
println('Condición 3')
ultimoObjetivoCompletado=1
maximosAcumulados=bolsaLeads+minimoLeads*numeroVendedores
setAttribute('ObjetivosCompletadosAcumulados_c',maximosAcumulados)
setAttribute('UltimoObjetivoCompletado_c',ultimoObjetivoCompletado)
def s=(leadTotal-maximosAcumulados)%numeroVendedores
def i=1
while(i<=numeroVendedores){
def target=0
def recursoMap=rankingMap[''+i]
def recursoAsignacionRow=recursoMap['Row']
def objetivoAsignacion=recursoAsignacionRow.ObjetivoDeAsignacion_c as Long
if(i<=s){
target=(leadTotal-maximosAcumulados)/numeroVendedores + 1 + objetivoAsignacion
}
else{
target=(leadTotal-maximosAcumulados)/numeroVendedores + objetivoAsignacion
}
target=(target as BigDecimal).setScale(0,BigDecimal.ROUND_DOWN) as Long
recursoMap.put('Target',target)
rankingMap.put(''+i,recursoMap)
i+=1
}
}
println('printList:'+printList)
def i=1
def leadIndex=0
def now=now()
println('RankingMap:'+rankingMap)
leads.reset()
recursosAsignacion=RecursoAsignacionLead_Src_AsignacionMensualLeads_cToRecursoAsignacionLead_c_Tgt
def countRecursos=0
while(recursosAsignacion.hasNext()){
def recursoAsignacionRow=recursosAsignacion.next()
def ranking=recursoAsignacionRow.Ranking_c
def recursoMap=rankingMap[''+ranking]
def current=nvl(recursoAsignacionRow.LeadsAsignados_c, 0 as BigDecimal) as Long
def target=recursoMap['Target'] as Long
def leadsAAsignar=target-current
def recursoRow=recursoAsignacionRow.Resource_Tgt_ResourceToRecursoAsignacionLead_c_Src
println('leadsAAsignar:'+leadsAAsignar)
while(leadsAAsignar>0&&leads.hasNext()){
def leadRow=leads.next()
if(leadRow.leadValido()){
leadRow.setAttribute('OwnerId',recursoRow.PartyId)
leadRow.setAttribute('AsignacionEjecutada_c',now)
leadRow.setAttribute('AsignacionMensual_Id_c',Id)
// println('leadRow.AsignacionEjecutada_c:'+leadRow.AsignacionEjecutada_c)
leadsAAsignar-=1
}
}
recursoAsignacionRow.setAttribute('LeadsAsignados_c',target)
println('recursoAsignacionRow.LeadsAsignados_c':+recursoAsignacionRow.LeadsAsignados_c)
countRecursos+=1
println('CountRecursos:'+countRecursos)
}
setAttribute('LeadsAsignados_c',leadTotal)
def leads=newView('Lead')
def leadc=newViewCriteria(leads)
def leadr=leadc.createRow()
//def leadi=leadr.ensureCriteriaItem('SistemaOrigen_c')
//leadi.setOperator('=')
//leadi.setValue(sistemaOrigen)
def leadj=leadr.ensureCriteriaItem('AsignacionMensual_Id_c')
leadj.setOperator('ISBLANK')
def leadk=leadr.ensureCriteriaItem('OwnerId')
leadk.setOperator('=')
leadk.setValue(300000035935384)
def leadl=leadr.ensureCriteriaItem('TipoCM_c')
leadl.setOperator('=')
leadl.setValue('MASIVO')
leadc.insertRow(leadr)
leads.appendViewCriteria(leadc)
leads.setMaxFetchSize(150)
leads.executeQuery()
def leadCount=0
while(leads.hasNext()){
def lead=leads.next()
if(lead.leadValido()){
leadCount+=1
}
}
def vueltas=nvl(Vueltas_c, 0 as BigDecimal) as Long
def printList=[]
def minimoLeads=nvl(MinimoDeLead_c,0 as BigDecimal) as Long
def numeroVendedores=nvl(NumeroDeVendedores_c,0 as BigDecimal) as Long
def bolsaLeads=nvl(BolsaDeLeadsARepartir_c,0 as BigDecimal) as Long
def rankingMap=[:]
def recursosAsignacion=RecursoAsignacionLead_Src_AsignacionMensualLeads_cToRecursoAsignacionLead_c_Tgt
def maximosAcumulados=nvl(ObjetivosCompletadosAcumulados_c,0 as BigDecimal) as Long
def ultimoObjetivoCompletado=nvl(UltimoObjetivoCompletado_c,numeroVendedores as BigDecimal)
def leadTotal=leadCount+nvl(LeadsAsignados_c,0 as BigDecimal) as Long
recursosAsignacion.reset()
def listaSkips=[]
def totalSkips=0
def totalOffset=0
def leadsDesactivados=0
while(recursosAsignacion.hasNext()){
def recursoAsignacion=recursosAsignacion.next()
def ranking=''+nvl(recursoAsignacion.Ranking_c,0 as BigDecimal)
def offset=nvl(recursoAsignacion.Offset_c,0 as BigDecimal ) as Long
if(recursoAsignacion.SuspenderAsignacion_c=='Y'){
listaSkips.add(nvl(recursoAsignacion.Ranking_c,0 as BigDecimal))
totalSkips+=1
leadsDesactivados+=nvl(recursoAsignacion.LeadsAsignados_c,0 as BigDecimal) as Long
}
else{
def recursoMap=[:]
recursoMap.put('Row',recursoAsignacion)
recursoMap.put('Target',0)
recursoMap.put('Offset',offset)
rankingMap.put(ranking,recursoMap)
}
totalOffset+=offset
}
//println('listaSkips:'+listaSkips)
//println('rankingMap:'+rankingMap)
def throwMap=[:]
throwMap.put('rankingMap',rankingMap)
throwMap.put('leadTotal',leadTotal)
throwMap.put('leadCount',leadCount)
throwMap.put('leadsAsignados',nvl(LeadsAsignados_c,0 as BigDecimal))
throwMap.put('numeroVendedores',numeroVendedores)
println('throwMap:'+throwMap)
//throw new oracle.jbo.ValidationException(''+throwMap)
//println('RecordName:'+RecordName)
//println('listaSkips:'+listaSkips)
//println('totalSkips:'+totalSkips)
leadTotal=leadTotal+totalOffset-leadsDesactivados
println('numeroVendedores:'+numeroVendedores)
println('totalSkips:'+totalSkips)
println('listaSkips:'+listaSkips)
setAttribute('ObjetivosCompletadosAcumulados_c',maximosAcumulados)
setAttribute('UltimoObjetivoCompletado_c',ultimoObjetivoCompletado)
}
else{
println('Condición 3')
ultimoObjetivoCompletado=1
maximosAcumulados=bolsaLeads+minimoLeads*numeroVendedores
setAttribute('ObjetivosCompletadosAcumulados_c',maximosAcumulados)
setAttribute('UltimoObjetivoCompletado_c',ultimoObjetivoCompletado)
def s=(leadTotal-maximosAcumulados)%numeroVendedores
def i=1
while(i<=numeroVendedores){
def target=0
def recursoMap=rankingMap[''+i]
def recursoAsignacionRow=recursoMap['Row']
def objetivoAsignacion=recursoAsignacionRow.ObjetivoDeAsignacion_c as Long
if(i<=s){
target=(leadTotal-maximosAcumulados)/numeroVendedores + 1 + objetivoAsignacion
}
else{
target=(leadTotal-maximosAcumulados)/numeroVendedores + objetivoAsignacion
}
target=(target as BigDecimal).setScale(0,BigDecimal.ROUND_DOWN) as Long
recursoMap.put('Target',target)
rankingMap.put(''+i,recursoMap)
i+=1
}
}
def outputMap=[:]
outputMap.put('printList',printList)
outputMap.put('rankingMap',rankingMap)
println('printList:'+printList)
def i=1
def leadIndex=0
def now=now()
println('RankingMap:'+rankingMap)
leads.reset()
recursosAsignacion=RecursoAsignacionLead_Src_AsignacionMensualLeads_cToRecursoAsignacionLead_c_Tgt
def countRecursos=0
def recursosAsignacionList=[]
while(recursosAsignacion.hasNext()){
def recursoAsignacionRow=recursosAsignacion.next()
def raMap=[:]
def ranking=nvl(recursoAsignacionRow.Ranking_c,0 as BigDecimal)
if(!listaSkips.contains(ranking)){
println('ranking not skipped:'+ranking)
def recursoMap=rankingMap[''+ranking]
def current=nvl(recursoAsignacionRow.LeadsAsignados_c, 0 as BigDecimal) as Long
def target=recursoMap['Target'] as Long
def leadsAAsignar=target-current
def recursoRow=recursoAsignacionRow.Resource_Tgt_ResourceToRecursoAsignacionLead_c_Src
println('leadsAAsignar:'+leadsAAsignar)
def countLeadsAsignados=0
while(leadsAAsignar>0&&leads.hasNext()){
def leadRow=leads.next()
if(leadRow.leadValido()){
leadRow.setAttribute('OwnerId',recursoRow.PartyId)
leadRow.setAttribute('AsignacionEjecutada_c',now)
leadRow.setAttribute('AsignacionMensual_Id_c',Id)
leadRow.setAttribute('OwnerAsignadoRegla_Id_c',recursoRow.ResourceProfileId)
// println('leadRow.AsignacionEjecutada_c:'+leadRow.AsignacionEjecutada_c)
leadsAAsignar-=1
countLeadsAsignados+=1
}
}
recursoAsignacionRow.setAttribute('LeadsAsignados_c',target)
raMap.put('ranking',ranking)
raMap.put('target',target)
raMap.put('countLeadsAsignados',countLeadsAsignados)
recursosAsignacionList.add(raMap)
println('recursoAsignacionRow.LeadsAsignados_c':+recursoAsignacionRow.LeadsAsignados_c)
countRecursos+=1
println('CountRecursos:'+countRecursos)
}
}
outputMap.put('recursosAsignacionList',recursosAsignacionList)
outputMap.put('NumeroDeVendedores_c',NumeroDeVendedores_c)
outputMap.put('totalOffset',totalOffset)
println('outputMap:'+outputMap)
setAttribute('LeadsAsignados_c',leadTotal-totalOffset+leadsDesactivados)
setAttribute('Vueltas_c',vueltas)
def leads=newView('Lead')
def leadc=newViewCriteria(leads)
def leadr=leadc.createRow()
def leadj=leadr.ensureCriteriaItem('AsignacionMensual_Id_c')
leadj.setOperator('=')
leadj.setValue(Id)
leadc.insertRow(leadr)
leads.appendViewCriteria(leadc)
leads.executeQuery()
while(leads.hasNext()){
def lead=leads.next()
lead.remove()
}
def leads=newView('Lead')
def leadc=newViewCriteria(leads)
def leadr=leadc.createRow()
def leadi=leadr.ensureCriteriaItem('SistemaOrigen_c')
leadi.setOperator('=')
leadi.setValue('LEADBOX')
def leadj=leadr.ensureCriteriaItem('AsignacionMensual_Id_c')
leadj.setOperator('ISBLANK')
leadc.insertRow(leadr)
leads.appendViewCriteria(leadc)
leads.executeQuery()
def leadCount=0
while(leads.hasNext()){
def lead=leads.next()
leadCount+=1
}
println('TEST :D')
def printList=[]
def minimoLeads=nvl(MinimoDeLead_c,0 as BigDecimal) as Long
def numeroVendedores=nvl(NumeroDeVendedores_c,0 as BigDecimal) as Long
def bolsaLeads=nvl(BolsaDeLeadsARepartir_c,0 as BigDecimal) as Long
def rankingMap=[:]
def recursosAsignacion=RecursoAsignacionLead_Src_AsignacionMensualLeads_cToRecursoAsignacionLead_c_Tgt
def maximosAcumulados=nvl(ObjetivosCompletadosAcumulados_c,0 as BigDecimal) as Long
def ultimoObjetivoCompletado=nvl(UltimoObjetivoCompletado_c,numeroVendedores as BigDecimal)
def totalAnterior=nvl(LeadsAsignados_c,0 as BigDecimal) as Long
def leadsAsignadosTotales=totalAnterior
def leadTotal=leadCount+totalAnterior
while(recursosAsignacion.hasNext()){
def recursoAsignacion=recursosAsignacion.next()
def ranking=''+nvl(recursoAsignacion.Ranking_c,0 as BigDecimal)
def recursoMap=[:]
recursoMap.put('Row',recursoAsignacion)
recursoMap.put('Target',0)
rankingMap.put(ranking,recursoMap)
}
def primeraFrontera=numeroVendedores*minimoLeads
def segundaFrontera= primeraFrontera + bolsaLeads
def leadsAAsignar=0
def leadsFaltantes=leadCount
if(leadsAsignadosTotales <= primeraFrontera){
if(leadTotal>primeraFrontera){
leadsAAsignar=primeraFrontera
leadsFaltantes=leadTotal-primeraFrontera
leadsAsignadosTotales=primeraFrontera
}
else{
leadsAAsignar=leadTotal
leadsFaltantes=0
leadsAsignadosTotales=leadTotal
}
println('Condición 1')
def s=leadsAAsignar%numeroVendedores
def i=1
while(i<=numeroVendedores){
def target=0
def recursoMap=rankingMap[''+i]
if(i<=s){
target=(leadsAAsignar/numeroVendedores)+1
}
else{
target=leadsAAsignar/numeroVendedores
}
println(target)
target=(target as BigDecimal).setScale(0,BigDecimal.ROUND_DOWN)
recursoMap.put('Target',target)
i+=1
}
}
if(leadsFaltantes>0){
if(leadsAsignadosTotales<= segundaFrontera){
if(leadTotal>segundaFrontera){
leadsAAsignar=segundaFrontera
leadsFaltantes=leadTotal-segundaFrontera
leadsAsignadosTotales=segundaFrontera
}
else{
leadsAAsignar=leadTotal
leadsFaltantes=0
leadsAsignadosTotales=leadTotal
}
println('Condición 2')
def i=numeroVendedores as Long
def escenario=''
def totalEsperado=0
while(i>0){
def printMap=[:]
def target=0
def recursoMap=rankingMap[''+i]
def recursoAsignacionRow=recursoMap['Row']
def objetivoAsignacion=recursoAsignacionRow.ObjetivoDeAsignacion_c as Long
totalEsperado+=objetivoAsignacion
if(objetivoAsignacion*i+totalEsperado>=leadsAAsignar){
def s=((leadTotal-maximosAcumulados) as int)%((ultimoObjetivoCompletado-1)as int)
printMap.put('s',s)
if(i<s){
target=(leadTotal-maximosAcumulados)/(ultimoObjetivoCompletado-1)+1
escenario='target izquierda'
}
else{
target=(leadTotal-maximosAcumulados)/(ultimoObjetivoCompletado-1)
escenario='target derecha'
}
}
else{
printMap.put('s',0)
escenario='target=objetivo'
target=objetivoAsignacion
maximosAcumulados+=objetivoAsignacion
ultimoObjetivoCompletado=i
}
target=(target as BigDecimal).setScale(0,BigDecimal.ROUND_DOWN) as Long
println('target:'+target)
recursoMap.put('Target',target)
printMap.put('Escenario',escenario)
printMap.put('Rank',i)
printMap.put('maximosAcumulados',maximosAcumulados)
printMap.put('objetivoAsignacion',objetivoAsignacion)
printMap.put('ultimoObjetivoCompletado',ultimoObjetivoCompletado)
printMap.put('Target',target)
printList.add(printMap)
i-=1
}
setAttribute('ObjetivosCompletadosAcumulados_c',maximosAcumulados)
setAttribute('UltimoObjetivoCompletado_c',ultimoObjetivoCompletado)
}
else{
println('Condición 3')
ultimoObjetivoCompletado=1
maximosAcumulados=bolsaLeads+minimoLeads*numeroVendedores
setAttribute('ObjetivosCompletadosAcumulados_c',maximosAcumulados)
setAttribute('UltimoObjetivoCompletado_c',ultimoObjetivoCompletado)
def s=(leadTotal-maximosAcumulados)%numeroVendedores
def i=1
while(i<=numeroVendedores){
def target=0
def recursoMap=rankingMap[''+i]
def recursoAsignacionRow=recursoMap['Row']
def objetivoAsignacion=recursoAsignacionRow.ObjetivoDeAsignacion_c as Long
if(i<=s){
target=(leadTotal-maximosAcumulados)/numeroVendedores + 1 + objetivoAsignacion
}
else{
target=(leadTotal-maximosAcumulados)/numeroVendedores + objetivoAsignacion
}
target=(target as BigDecimal).setScale(0,BigDecimal.ROUND_DOWN) as Long
recursoMap.put('Target',target)
rankingMap.put(''+i,recursoMap)
i+=1
}
}
}
println('printList:'+printList)
def i=1
def leadIndex=0
def now=now()
println('RankingMap:'+rankingMap)
leads.reset()
recursosAsignacion=RecursoAsignacionLead_Src_AsignacionMensualLeads_cToRecursoAsignacionLead_c_Tgt
def countRecursos=0
while(recursosAsignacion.hasNext()){
def recursoAsignacionRow=recursosAsignacion.next()
def ranking=recursoAsignacionRow.Ranking_c
def recursoMap=rankingMap[''+ranking]
def current=nvl(recursoAsignacionRow.LeadsAsignados_c, 0 as BigDecimal) as Long
def target=recursoMap['Target'] as Long
leadsAAsignar=target-current
def recursoRow=recursoAsignacionRow.Resource_Tgt_ResourceToRecursoAsignacionLead_c_Src
println('leadsAAsignar:'+leadsAAsignar)
while(leadsAAsignar>0&&leads.hasNext()){
def leadRow=leads.next()
if(leadRow.leadValido()){
leadRow.setAttribute('OwnerId',recursoRow.PartyId)
leadRow.setAttribute('AsignacionEjecutada_c',now)
leadRow.setAttribute('AsignacionMensual_Id_c',Id)
// println('leadRow.AsignacionEjecutada_c:'+leadRow.AsignacionEjecutada_c)
leadsAAsignar-=1
}
}
recursoAsignacionRow.setAttribute('LeadsAsignados_c',target)
println('recursoAsignacionRow.LeadsAsignados_c':+recursoAsignacionRow.LeadsAsignados_c)
countRecursos+=1
println('CountRecursos:'+countRecursos)
}
setAttribute('LeadsAsignados_c',leadTotal)
cursoAsignacionLead_c_Tgt
cursoAsignacionLead_c_Tgt
ignacionLead_c as Long)
DeLeadsARepartir_c as Long)
ALF_UP)
d_c',recursoMap['ResourceProfileId'])
ores
oLeads as Long,deltaAsignacion as Double)
d_c_Src.PartyName)
cursoAsignacionLead_c_Tgt
cursoAsignacionLead_c_Tgt
s Long
s as BigDecimal)
int)
acion
n
oAsignacionLead_c_Tgt
nLead_c_Src
nados_c)
cursoAsignacionLead_c_Tgt
s Long
s as BigDecimal)
ong
ores)
int)
acion
oAsignacionLead_c_Tgt
onLead_c_Src
gnados_c)
cursoAsignacionLead_c_Tgt
s Long
s as BigDecimal)
s int)
acion
oAsignacionLead_c_Tgt
nLead_c_Src
nados_c)
ression
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
Object Name : AssetEO
Object Name AssetEO
Object Display Name Plural Activos
Object Type OOTB
Application Name CRM
Table Name ZCA_ASSET
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Standard Fields
Name Display Name Help Text
AssetNumber Código Contrato Plan Asset Number
StatusCode Activo / Inactivo Status
ResourceOwnerId Resource Owner ID Resource Owner ID
PurchaseDate Fecha de venta en CRM Purchase Date
StartDate Fecha de Activación Start Date
EndDate Fecha de Desactivación End Date
EnteredCurrencyCode Moneda Currency
CustPartyType Tipo de Cliente Customer Type
CustomerId Cliente Asset Owner Party ID
PartyType Tipo de Cliente Customer Type
InstallDate Fecha de Instalación
Quantity Cantidad Quantity
CreationDate Creation Date
Custom Fields
Name Display Name Type Column Name
Valor1erFactura_c Valor 1er factura Currency EXTN_ATTRIBUTE_NUMBER004
AnchoDeBanda_c Ancho de Banda Text EXTN_ATTRIBUTE_CHAR011
EstatusServicio_c Estatus Servicio Netplus FCL EXTN_ATTRIBUTE_CHAR032
ValorDeInstalacion_c Valor de instalación Currency EXTN_ATTRIBUTE_NUMBER006
Pasaporte_c Pasaporte Text EXTN_ATTRIBUTE_CHAR029
IdentificadorDeOportunidad_Id_c Oportunidad DCLForeignKey EXTN_ATTRIBUTE_NUMBER003
MotivoEstatusServicio_c Motivo Estatus Servicio Netplus Text EXTN_ATTRIBUTE_CHAR031
Cedula_c Cédula Text EXTN_ATTRIBUTE_CHAR027
NombrePlanEnlace_c Nombre Plan/Enlace Text EXTN_ATTRIBUTE_CHAR006
AsesorPreventa_c Asesor Preventa Text EXTN_ATTRIBUTE_CHAR020
Origen_c Origen DCL
Triggers
Name Type Trigger PointDescription Error Message Expression
actualizarOportunidad Object Trigger BeforeInsert actualizarOportunid
Ins def statusServicio =
if(AreaComercial_c =
setAttribute('Timer_c
}
ContratosIngresados Object Trigger BeforeInsert EstadoContratos()
ActualizarOportunida Object Trigger BeforeUpdate actualizarOportunid
d crearActualizarProdu
ActualizarContratos Object Trigger BeforeUpdate if(isAttributeChange
EstadoContratos()
}
Validations
Name Type Error Message Expression
CustomerID_CantBeNul Object Validation Los activos sólo pueden ser creados if(nvl(CustomerId,0 a
l mediante una plantilla de carga o throw new oracle.jbo
integración. return true
Rule1 Field Validation adf.source.isLookup
Field Name : Canal_Id_c
Rule1 Field Validation adf.source.isLookup
Field Name : Origen_Id_c
Rule1 Field Validation adf.source.isLookup
Field Name :
IdentificadorDeOportunidad_Id_c
Object Functions
Name Parameters Return Type Privileged Visibility Description
actualizarOp void No Default
ortunidad
ortunidad
Dynamic Layouts
Layout Name Active Role
Común Yes ADMIN_GENERAL_PNT;
Masivo Yes USUARIO_MASIVO;
Corporativo Yes
Admin Yes ADMIN_GENERAL_PNT;
Masivo Yes USUARIO_MASIVO;
Corporativo Yes
Admin Yes ADMIN_GENERAL_PNT;
Diseño por Defecto Yes
tEO
vos
B
M
_ASSET
53
13
4
6
3
4
8
Searchable
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
No
Yes
Expression
actualizarOportunidad()
def statusServicio = EstatusServicio_c
if(AreaComercial_c =='MASIVO' && statusServicio == 'ACTIVO'){
setAttribute('Timer_c',now().time)
}
EstadoContratos()
actualizarOportunidad()
crearActualizarProductoResponsys()
if(isAttributeChanged('EstatusServicio_c')){
EstadoContratos()
}
Expression
if(nvl(CustomerId,0 as Long)==0)
throw new oracle.jbo.ValidationException('Los activos sólo pueden ser creados mediante una plantilla de carga o integración.')
return true
adf.source.isLookupIdValid('Canal_Id_c',newValue)
adf.source.isLookupIdValid('Origen_Id_c',newValue)
adf.source.isLookupIdValid('IdentificadorDeOportunidad_Id_c',newValue)
Expression
if(isAttributeChanged('EstatusServicio_c')||getPrimaryRowState().isNew()||isAttributeChanged('AssetAmount') ||
isAttributeChanged('ValorDeInstalacion_c')
def optyId=IdentificadorDeOportunidad_Id_c || isAttributeChanged('IdentificadorDeOportunidad_Id_c')){
if(optyId!=null){
def opty=IdentificadorDeOportunidad_Obj_c
if(nvl(opty.OptyId,0 as Long)==0){
def optys=newView('OpportunityVO')
def optyc=newViewCriteria(optys)
def optyr=optyc.createRow()
def optyi=optyr.ensureCriteriaItem('OptyId')
optyi.setOperator('=')
optyi.setValue(optyId)
optyc.insertRow(optyr)
optys.appendViewCriteria(optyc)
optys.executeQuery()
while(optys.hasNext()){
opty=optys.next()
}
}
opty.setAttribute('CambioAssets_c',now().time)
}
}
def optyId=nvl(IdentificadorDeOportunidad_Id_c,0 as BigDecimal)
if(optyId!=0 && !getPrimaryRowState().isNew()){
def opty=IdentificadorDeOportunidad_Obj_c
if(nvl(opty.OptyId, 0 as Long)!=0){
def team=assetResources
def optyOwnerId=opty.OwnerResourcePartyId
def ownerExists=false
while(team.hasNext()){
def member=team.next()
if(member.ResourceId!=optyOwnerId){
member.remove()
}
else{
member.setAttribute('OwnerFlag','Y')
ownerExists=true
}
}
if(!ownerExists){
def member=team.createRow()
member.setAttribute('ResourceId',optyOwnerId)
member.setAttribute('OwnerFlag','Y')
team.insertRow(member)
}
setAttribute('Canal_Id_c',opty.CanalObjC_Id_c)
setAttribute('Origen_Id_c',opty.Origen_Id_c)
setAttribute('Segmentacion_c',opty.Segmentacion_c)
setAttribute('SalesStageId_c',opty.SalesStageId)
}
}
def startTime=now().time
def assets=newView('AssetVO')
def assetc=newViewCriteria(assets)
def assetr=assetc.createRow()
def asseti=assetr.ensureCriteriaItem('Origen_Id_c')
asseti.setOperator('ISNOTBLANK')
def assetj=assetr.ensureCriteriaItem('Canal_Id_c')
assetj.setOperator('ISBLANK')
assetc.insertRow(assetr)
assets.appendViewCriteria(assetc)
assets.setMaxFetchSize(5000)
assets.executeQuery()
def maxTime=45000
def elapsedTime=now().time-startTime
def total=0
while(assets.hasNext() && elapsedTime<maxTime){
def asset=assets.next()
asset.getDatosOportunidad()
elapsedTime=now().time-startTime
total+=1
}
println('total Assets Regularizados:'+total)
try{
def statusServicio = EstatusServicio_c
def AssetNumber=isAttributeChanged('AssetNumber')
def ProductType=isAttributeChanged('ProductType')
def InventoryItemId=isAttributeChanged('InventoryItemId')
def InventoryOrgId=isAttributeChanged('InventoryOrgId')
def TipoDeIdentificacion_c=isAttributeChanged('TipoDeIdentificacion_c')
def Identificacion_c=isAttributeChanged('Identificacion_c')
def CustomerId=isAttributeChanged('CustomerId')
def TipoDeServicio_c=isAttributeChanged('TipoDeServicio_c')
def NombrePlanEnlace_c=isAttributeChanged('NombrePlanEnlace_c')
def InstallDate=isAttributeChanged('InstallDate')
def StartDate=isAttributeChanged('StartDate')
def EndDate=isAttributeChanged('EndDate')
def MotivoDeDesactivacion_c=isAttributeChanged('MotivoDeDesactivacion_c')
def Estado_c=isAttributeChanged('Estado_c')
def MotivoEstado_c=isAttributeChanged('MotivoEstado_c')
def PurchaseDate=isAttributeChanged('PurchaseDate')
def FechaFinMesAplicar_c=isAttributeChanged('FechaFinMesAplicar_c')
def Valor1erFactura_c=isAttributeChanged('Valor1erFactura_c')
def Pagada1erFactura_c=isAttributeChanged('Pagada1erFactura_c')
def MesIngresoSistema_c=isAttributeChanged('MesIngresoSistema_c')
def AssetAmount=isAttributeChanged('AssetAmount')
def ValorDeInstalacionBruta_c=isAttributeChanged('ValorDeInstalacionBruta_c')
def ValorDeInstalacion_c=isAttributeChanged('ValorDeInstalacion_c')
def AnchoDeBanda_c=isAttributeChanged('AnchoDeBanda_c')
def DesgeografiaOracle_c=isAttributeChanged('DesgeografiaOracle_c')
def DesproductoOracle_c=isAttributeChanged('DesproductoOracle_c')
def TipoDeInstalacion_c=isAttributeChanged('TipoDeInstalacion_c')
def MetrajeExtra_c=isAttributeChanged('MetrajeExtra_c')
def CDOESaturada_c=isAttributeChanged('CDOESaturada_c')
def Frecuencia_c=isAttributeChanged('Frecuencia_c')
def CiudadDeEnlace_c=isAttributeChanged('CiudadDeEnlace_c')
def UltimaMilla_c=isAttributeChanged('UltimaMilla_c')
def MesComisionado_c=isAttributeChanged('MesComisionado_c')
def AsesorPreventa_c=isAttributeChanged('AsesorPreventa_c')
def EnteredCurrencyCode=isAttributeChanged('EnteredCurrencyCode')
def StatusCode=isAttributeChanged('StatusCode')
def Canal_Id_c=isAttributeChanged('Canal_Id_c')
def Origen_Id_c=isAttributeChanged('Origen_Id_c')
def EnlacesBrutos_c=isAttributeChanged('EnlacesBrutos_c')
def EnlacesNetos_c=isAttributeChanged('EnlacesNetos_c')
def MontoBruto_c=isAttributeChanged('MontoBruto_c')
def MontoRecurrente_c=isAttributeChanged('MontoRecurrente_c')
def AreaComercial=isAttributeChanged('AreaComercial_c')
def ResourceOwnerPartyNumber=isAttributeChanged('ResourceOwnerPartyNumber')
def Pasaporte_c=isAttributeChanged('Pasaporte_c')
def Cedula_c=isAttributeChanged('Cedula_c')
def RUC_c=isAttributeChanged('RUC_c')
def RUCExterno_c=isAttributeChanged('RUCExterno_c')
def Segmentacion_c=isAttributeChanged('Segmentacion_c')
def EstatusServicio_c=isAttributeChanged('EstatusServicio_c')
def MotivoEstatusServicio_c=isAttributeChanged('MotivoEstatusServicio_c')
def FechaEstatusServicio_c=isAttributeChanged('FechaEstatusServicio_c')
def Nodo_c=isAttributeChanged('Nodo_c')
if(AreaComercial_c =='MASIVO' && statusServicio == 'ACTIVO'){
println('AreaComercial: '+AreaComercial_c + ' ESTATUS DEL SERVICIO: '+ EstatusServicio_c)
//throw new oracle.jbo.ValidationException('AreaComercial: '+AreaComercial_c + ' ESTATUS DEL SERVICIO: '+ statusServic
if(getPrimaryRowState().isNew()||AssetNumber||ProductType||InventoryItemId||InventoryOrgId||TipoDeIdentificacion_c||Ident
TipoDeServicio_c||NombrePlanEnlace_c||InstallDate||StartDate||EndDate||MotivoDeDesactivacion_c||Estado_c||MotivoEstado_
setAttribute('Timer_c',now().time)
}
}
}catch(Exception e){
// setAttribute('MensajeEnviadoAResponsys_c',e)
throw new oracle.jbo.ValidationException('Error: ' + e)
}
def horaCambios = nvl(Timer_c,0 as BigDecimal)
if(horaCambios != ''){
println('horaCambios (ms):'+horaCambios)
def diferencia = now().time - horaCambios;
println('diferencia (ms):'+diferencia)
if(StartDate==null || StartDate == ''){
def salto = Character.toString(10 as char);
println('Para enviar un producto a Responsys es necesario la fecha de activación, un estatus ACTIVO y área MASIVO'+salto
'StartDate:'+StartDate+salto+'status:'+EstatusServicio_c+salto+'área
}else{ comercial:'+AreaComercial_c)
if(diferencia <= 10000 && EstatusServicio_c == 'ACTIVO'){
try{
def token = adf.webServices.ObtenerToken.GET()
println('token: '+token)
def httpHeaders = ['token':token];
def service = adf.webServices.CreateUpdateProductResponsys
service.requestHTTPHeaders = httpHeaders;
try{
def serviceResponse = service.POST(Id_c)
println('AssetId: '+AssetId)
println('response: '+serviceResponse)
}catch(Exception e){
println('Error en llamada al servicio "CrearActualizarProductoResponsys: '+e.message)
}
//setAttribute('FechaDeEnvioAResponsys_c',now())
//setAttribute('MensajeEnviadoAResponsys_c',serviceResponse)
}catch(Exception e){
println('Error en llamada al servicio "ObtenerToken: '+e.message)
}
}}}
def cuenta = AssetOwnerAccount
if(cuenta==null){
if(CustomerId!=null){
def accounts=newView('OrganizationProfile')
def accountc=newViewCriteria(accounts)
def accountr=accountc.createRow()
def accounti=accountr.ensureCriteriaItem('PartyId')
accounti.setOperator('=')
accounti.setValue(CustomerId)
accountc.insertRow(accountr)
accounts.appendViewCriteria(accountc)
accounts.executeQuery()
while(accounts.hasNext()){
cuenta=accounts.next()
}
}
}
if(cuenta != null){
def estatusNetplusAnterior= nvl(getOriginalAttributeValue('EstatusServicio_c'),'')
def estatusNetplusActual= nvl(EstatusServicio_c,'')
def contratosIngresados = nvl(cuenta.TotalDeContratosIngresados_c,0 as BigDecimal)
def contratosActivos = nvl(cuenta.TotalDeContratosActivos_c,0 as BigDecimal)
def contratosDesactivados = nvl(cuenta.TotalDeContratosDesactivados_c,0 as BigDecimal)
def contratosDesactivadosTemporales = nvl(cuenta.TotalDeContratosDesactivadosTemporales_c,0 as BigDecimal)
def contratosNoConcretadosTemporales = nvl(cuenta.TotalDeContratosNoConcretadosTemporales_c,0 as BigDecimal)
def contratosNoConcretados = nvl(cuenta.TotalDeContratosNoConcretados_c,0 as BigDecimal)
if(isAttributeChanged('EstatusServicio_c') || activoRecienCreado ){
if(estatusNetplusActual == 'INGRESADO'){
contratosIngresados = contratosIngresados+1
cuenta.setAttribute('TotalDeContratosIngresados_c',contratosIngresados)
No if(!
Groovy Function oracle.apps.crmCommon.extensibility.con
return false;
No
Name :enviarProductoResponsys
Description : if(EstatusServicio_c == 'ACTIVO'){
Execution Schedule : 0:Days:After: return true}
Function Display Name : envioResponsys
while (team.hasNext())
{
def member = team.next()
ownerName = member.Part
map.put ('OwnerName',owne
}
println ("" + map)
return ownerName
80 80
18 18
0 0
80 80
20 20
500 500
80 80
14 14
0 0 ''+AssetId
80 80
10 10
80 80
12 12
18 18
80 80
80 80
80 80
80 80
80 80
80 80
10 10
1500 1500
80 80
0 0 AccountNameTransientForLO
1500 1500
80 80
0 0
80 80
10 10
80 80
80 80
1500 1500
anged('AssetAmount') ||
tunidad_Id_c')){
vicio_c)
TATUS DEL SERVICIO: '+ statusServicio)
ryOrgId||TipoDeIdentificacion_c||Identificacion_c||CustomerId||
activacion_c||Estado_c||MotivoEstado_c||PurchaseDate||
estatus ACTIVO y área MASIVO'+salto+
Comercial_c)
e)
al)
mal)
mporales_c,0 as BigDecimal)
osTemporales_c,0 as BigDecimal)
Decimal)
osTemporales)
retadosTemporales)
adosTemporales != 0){
osTemporales)
= 0){
oncretadosTemporales != 0){
cretadosTemporales)
ression
le.apps.crmCommon.extensibility.content.adf.data.util.ExtensibilityGro
urn false;
urn true;
le.apps.crmCommon.extensibility.content.adf.data.util.ExtensibilityGro
urn false;
urn true;
le.apps.crmCommon.extensibility.content.adf.data.util.ExtensibilityGro
urn false;
tatusServicio_c == 'ACTIVO'){
rn true}
Object Name : Bitacora_c
Object Name Bitacora_c
Object Display Name Plural Logs de Proceso
Object Type Custom
Application Name CRM
Table Name SVC_REF_ENTITIES
Record Name Sequence {000000000000}
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Custom Fields
Name Display Name Type Column Name
RecordName Autonum OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
Payload_c Payload Clob EXTN_ATTRIBUTE_CLOB002
Cuenta_c Cuenta DCL
Triggers
Name Type Trigger PointDescription Error Message
fechaLog Object Trigger Create
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Rule1 Field Validation
Field Name : Oportunidad_Id_c
Rule1 Field Validation
Field Name : Cuenta_Id_c
Rule1 Field Validation
Field Name : Cuenta_Id1_c
Rule1 Field Validation
Field Name : Contacto_Id_c
Rule1 Field Validation
Field Name : ConsultaScore_Id_c
Object Workflows
Name Definition Name Event Point Description
Bitacora_c_Standard_Create Create
Bitacora_c_Standard_Delete Delete
Bitacora_c_Standard_Updat Update
e
Bitacora_c
Logs de Proceso
Custom
CRM
SVC_REF_ENTITIES
{000000000000}
26
0
1
0
3
6
0
Expression
def now=now()
setAttribute('FechaLog_c',now)
setAttribute('Timestamp_c',now.time)
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
adf.source.isLookupIdValid('Oportunidad_Id_c',newValue)
adf.source.isLookupIdValid('Cuenta_Id_c',newValue)
adf.source.isLookupIdValid('Cuenta_Id1_c',newValue)
adf.source.isLookupIdValid('Contacto_Id_c',newValue)
adf.source.isLookupIdValid('ConsultaScore_Id_c',newValue)
ression
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
Object Name : Bucket_c
Object Name Bucket_c
Object Display Name Plural Bucket
Object Type Custom
Application Name CRM
Table Name HZ_REF_ENTITIES
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Custom Fields
Name Display Name Type Column Name
RecordName Código OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
CodigoPostal_Id_c Código Postal DCLForeignKey EXTN_ATTRIBUTE_NUMBER002
CodigoPostal_c Código Postal DCL
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Rule1 Field Validation
Field Name : Oportunidad_Id_c
Rule1 Field Validation
Field Name : CodigoPostal_Id_c
Object Workflows
Name Definition Name Event Point Description
Bucket_c_Standard_Delete Delete
Bucket_c_Standard_Create Create
Bucket_c_Standard_Update Update
Bucket_c
Bucket
Custom
CRM
HZ_REF_ENTITIES
16
0
0
0
3
3
0
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
adf.source.isLookupIdValid('Oportunidad_Id_c',newValue)
adf.source.isLookupIdValid('CodigoPostal_Id_c',newValue)
ption Disabled Actions Expression
No return
(oracle.apps.fnd.applcore.Profile.ge
No return
(oracle.apps.fnd.applcore.Profile.ge
No return
(oracle.apps.fnd.applcore.Profile.ge
Precision MaxLength Expression
80 80
0 0
18 18
1500 1500
15 15
64 64
64 64
1500 1500
18 18
200 200
1500 1500
10 10
18 18
32 32
64 64
0 0
ression
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
Object Name : Canal_c
Object Name Canal_c
Object Display Name Plural Canales
Object Type Custom
Application Name CRM
Table Name MOO_REF_ENTITIES
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Custom Fields
Name Display Name Type Column Name
RecordName Código OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
Corporativo_c Corporativo Checkbox EXTN_ATTRIBUTE_CHAR008
CurrencyCode Currency Code FCL CURRENCY_CODE
Masivo_c Masivo Checkbox EXTN_ATTRIBUTE_CHAR009
LastUpdatedBy Actualizado por OOTB LAST_UPDATED_BY
CreatedBy Creado por OOTB CREATED_BY
OraZcxOwner_c Owner DCL
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Object Workflows
Name Definition Name Event Point Description
Canal_c_Standard_Create Create
Canal_c_Standard_Delete Delete
Canal_c_Standard_Delete Delete
Canal_c_Standard_Update Update
Dynamic Layouts
Layout Name Active Role
Punto Net Origen Yes
Canal_c
Canales
Custom
CRM
MOO_REF_ENTITIES
15
0
0
0
3
1
1
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
No return
(oracle.apps.fnd.applcore.Profile.ge
ression
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
Object Name : Cantidad_c
Object Name Cantidad_c
Object Display Name Plural Cantidades
Object Type Custom
Application Name CRM
Table Name MKT_REF_ENTITIES
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Custom Fields
Name Display Name Type Column Name
RecordName Código OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
CurrencyCode Currency Code FCL CURRENCY_CODE
PromocionOServicio_Id_c Promoción o servicio DCLForeignKey EXTN_ATTRIBUTE_NUMBER001
LastUpdatedBy Actualizado por OOTB LAST_UPDATED_BY
CreatedBy Creado por OOTB CREATED_BY
PromocionOServicio_c Promoción o servicio DCL
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Rule1 Field Validation
Field Name : PromocionOServicio_Id_c
Object Workflows
Name Definition Name Event Point Description
Cantidad_c_Standard_Creat Create
e
Cantidad_c_Standard_Creat Create
e
Cantidad_c_Standard_Delet Delete
e
Cantidad_c_Standard_Updat Update
e
Cantidad_c
Cantidades
Custom
CRM
MKT_REF_ENTITIES
15
0
0
0
3
2
0
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
adf.source.isLookupIdValid('PromocionOServicio_Id_c',newValue)
No return
(oracle.apps.fnd.applcore.Profile.ge
No return
(oracle.apps.fnd.applcore.Profile.ge
Precision MaxLength Expression
80 80
0 0
15 15
18 18
64 64
64 64
1500 1500
1500 1500
200 200
10 10
10 10
18 18
32 32
64 64
0 0
ression
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
Object Name : CatalogoCIIU_c
Object Name CatalogoCIIU_c
Object Display Name Plural Catálogo CIIU
Object Type Custom
Application Name CRM
Table Name HZ_REF_ENTITIES
Record Name Sequence {0000000000}
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Custom Fields
Name Display Name Type Column Name
RecordName RUC OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
ActividadEconomicaFormula_c Actividad Económica Text Formula
Object Workflows
Name Definition Name Event Point Description
CatalogoCIIU_c_Standard_U Update
pdate
CatalogoCIIU_c_Standard_C Create
reate
CatalogoCIIU_c_Standard_D Delete
elete
Dynamic Layouts
Layout Name Active Role
PTN Corporativo Yes USUARIO_CORPORATIVO;
PTN Detalle Yes
Detalles Administrador Yes
CatalogoCIIU_c
Catálogo CIIU
Custom
CRM
HZ_REF_ENTITIES
{0000000000}
25
0
0
0
3
2
3
adf.source.isLookupIdValid('ActividadEconomicaDin_Id_c',newValue)
Custom Fields
Name Display Name Type Column Name
RecordName Id Netplus OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
Cuenta_c Cuenta DCL
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Rule1 Field Validation
Field Name : Contacto_Id_c
Rule1 Field Validation
Rule1
Field Name : Cuenta_Id_c
Rule1 Field Validation
Field Name : Oportunidad_Id_c
Object Workflows
Name Definition Name Event Point Description
ClienteNetplus_c_Standard_ Update
Update
ClienteNetplus_c_Standard_ Create
Create
ClienteNetplus_c_Standard_ Delete
Delete
ClienteNetplus_c
Clientes Netplus
Custom
CRM
MKT_REF_ENTITIES
18
0
0
0
3
4
0
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
adf.source.isLookupIdValid('Contacto_Id_c',newValue)
adf.source.isLookupIdValid('Cuenta_Id_c',newValue)
adf.source.isLookupIdValid('Cuenta_Id_c',newValue)
adf.source.isLookupIdValid('Oportunidad_Id_c',newValue)
Custom Fields
Name Display Name Type Column Name
RecordName Código OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
CurrencyCode Currency Code FCL CURRENCY_CODE
LastUpdatedBy Actualizado por OOTB LAST_UPDATED_BY
CreatedBy Creado por OOTB CREATED_BY
OraZcxOwner_c Owner DCL
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Rule1 Field Validation
Field Name : Bucket_Id_c
Rule1 Field Validation
Field Name : Oportunidad_Id_c
Object Workflows
Name Definition Name Event Point Description
CodigoPostal_c_Standard_C Create
reate
CodigoPostal_c_Standard_D Delete
elete
CodigoPostal_c_Standard_U Update
pdate
CodigoPostal_c
Codigo postal
Custom
CRM
MOT_REF_ENTITIES
16
0
0
0
3
3
0
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
adf.source.isLookupIdValid('Bucket_Id_c',newValue)
adf.source.isLookupIdValid('Oportunidad_Id_c',newValue)
ption Disabled Actions Expression
No return
(oracle.apps.fnd.applcore.Profile.ge
No return
(oracle.apps.fnd.applcore.Profile.ge
No return
(oracle.apps.fnd.applcore.Profile.ge
Precision MaxLength Expression
80 80
0 0
15 15
64 64
64 64
1500 1500
1500 1500
18 18
200 200
1500 1500
10 10
18 18
18 18
32 32
64 64
0 0
ression
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
Object Name : ColorDeHilo_c
Object Name ColorDeHilo_c
Object Display Name Plural Color de hilo
Object Type Custom
Application Name CRM
Table Name ZCA_REF_ENTITIES
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Custom Fields
Name Display Name Type Column Name
RecordName Código OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
CurrencyCode Currency Code FCL CURRENCY_CODE
LastUpdatedBy Actualizado por OOTB LAST_UPDATED_BY
CreatedBy Creado por OOTB CREATED_BY
OraZcxOwner_c Owner DCL
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Rule1 Field Validation
Field Name : Oportunidad_Id_c
Rule1 Field Validation
Field Name : GrupoDeHilo_Id_c
Object Workflows
Name Definition Name Event Point Description
ColorDeHilo_c_Standard_Cr Create
eate
ColorDeHilo_c_Standard_De Delete
lete
ColorDeHilo_c_Standard_Up Update
date
ColorDeHilo_c
Color de hilo
Custom
CRM
ZCA_REF_ENTITIES
16
0
0
0
3
3
0
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
adf.source.isLookupIdValid('Oportunidad_Id_c',newValue)
adf.source.isLookupIdValid('GrupoDeHilo_Id_c',newValue)
ption Disabled Actions Expression
No return
(oracle.apps.fnd.applcore.Profile.ge
No return
(oracle.apps.fnd.applcore.Profile.ge
No return
(oracle.apps.fnd.applcore.Profile.ge
Precision MaxLength Expression
80 80
0 0
15 15
64 64
64 64
1500 1500
18 18
18 18
200 200
1500 1500
1500 1500
10 10
18 18
32 32
64 64
0 0
ression
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
Object Name : Descuento_c
Object Name Descuento_c
Object Display Name Plural Descuento
Object Type Custom
Application Name CRM
Table Name SVC_REF_ENTITIES
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Custom Fields
Name Display Name Type Column Name
RecordName Código OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
Cada_c Cada Number EXTN_ATTRIBUTE_NUMBER007
Diferir_c Diferir DCL
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Rule1 Field Validation
Field Name : PromocionOservicio_Id_c
Rule1 Field Validation
Field Name : Oportunidad_Id_c
Rule1 Field Validation
Field Name : Diferir_Id_c
Rule1 Field Validation
Field Name :
PromocionDescuento_Id_c
Object Workflows
Name Definition Name Event Point Description
Descuento_c_Standard_Upd Update
ate
Descuento_c_Standard_Dele Delete
te
Descuento_c_Standard_Crea Create
te
Descuento_c
Descuento
Custom
CRM
SVC_REF_ENTITIES
23
0
0
0
3
5
0
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
adf.source.isLookupIdValid('PromocionOservicio_Id_c',newValue)
adf.source.isLookupIdValid('Oportunidad_Id_c',newValue)
adf.source.isLookupIdValid('Diferir_Id_c',newValue)
adf.source.isLookupIdValid('PromocionDescuento_Id_c',newValue)
Custom Fields
Name Display Name Type Column Name
RecordName Código OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
Cada_c Cada Number EXTN_ATTRIBUTE_NUMBER007
Valor_c Valor Number EXTN_ATTRIBUTE_NUMBER008
CurrencyCode Currency Code FCL CURRENCY_CODE
DescuentoDefault_c Descuento Default DCL
Object Workflows
Name Definition Name Event Point Description
Detalle_c_Standard_Create Create
Detalle_c_Standard_Update Update
Detalle_c_Standard_Delete Delete
Detalle_c
Detalle
Custom
CRM
HZ_REF_ENTITIES
25
0
0
0
3
6
0
adf.source.isLookupIdValid('PromocionOServicio_Id_c',newValue)
adf.source.isLookupIdValid('Oportunidad_Id_c',newValue)
adf.source.isLookupIdValid('PromocionDescuento_Id_c',newValue)
adf.source.isLookupIdValid('DiferirDefault_Id_c',newValue)
adf.source.isLookupIdValid('DescuentoDefault_Id_c',newValue)
Custom Fields
Name Display Name Type Column Name
RecordName Código OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
CurrencyCode Currency Code FCL CURRENCY_CODE
DescuentoDefault_c Descuento Default DCL
Triggers
Name Type Trigger PointDescription Error Message
printlns Object Trigger BeforeInsert
printlns Object Trigger BeforeInsert
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Rule1 Field Validation
Field Name : PromocionOServicio_Id_c
Rule1 Field Validation
Field Name : Oportunidad_Id_c
Rule1 Field Validation
Field Name :
PromocionDescuento_Id_c
Rule1 Field Validation
Field Name : Detalle_Id_c
Rule1 Field Validation
Field Name : DescuentoDefault_Id_c
Object Workflows
Name Definition Name Event Point Description
Diferir_c_Standard_Create Create
Diferir_c_Standard_Delete Delete
Diferir_c_Standard_Update Update
Diferir_c
Diferir
Custom
CRM
MKT_REF_ENTITIES
22
0
1
0
3
6
0
Expression
def map=[:]
map.put('RecordName',RecordName)
map.put('Descripcion_c',Descripcion_c)
map.put('Activo_c',Activo_c)
map.put('PromocionOServicio_Id_c',PromocionOServicio_Id_c)
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
adf.source.isLookupIdValid('PromocionOServicio_Id_c',newValue)
adf.source.isLookupIdValid('Oportunidad_Id_c',newValue)
adf.source.isLookupIdValid('PromocionDescuento_Id_c',newValue)
adf.source.isLookupIdValid('Detalle_Id_c',newValue)
adf.source.isLookupIdValid('DescuentoDefault_Id_c',newValue)
Custom Fields
Name Display Name Type Column Name
RecordName DireccionInstalacionRecordName OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
SeleccionarDireccionDeInstalacion Dirección de instalación Checkbox EXTN_ATTRIBUTE_CHAR006
CurrencyCode Currency Code FCL CURRENCY_CODE
DireccionDeFacturacion_c Dirección de Facturación Checkbox EXTN_ATTRIBUTE_CHAR007
LastUpdatedBy Actualizado por OOTB LAST_UPDATED_BY
CreatedBy Creado por OOTB CREATED_BY
Id Identificador de Registro OOTB ID
RecordNumber Record Number OOTB RECORD_NUMBER
LastUpdateDate Fecha de Última Actualización OOTB LAST_UPDATE_DATE
DireccionInstalacion_c
DireccionInstalacions
Intersection Entity generated by M:M
Relationship
Custom
CRM
MOT_REF_ENTITIES_XMM
{0000000}-{YY}{MM}{DD}
10
0
0
0
0
0
0
Custom Fields
Name Display Name Type Column Name
RecordName Código OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
CurrencyCode Currency Code FCL CURRENCY_CODE
TipoFormaPago_c Tipo de forma de pago FCL EXTN_ATTRIBUTE_CHAR009
LastUpdatedBy Actualizado por OOTB LAST_UPDATED_BY
CreatedBy Creado por OOTB CREATED_BY
OraZcxOwner_c Owner DCL
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Rule1 Field Validation
Field Name : Oportunidad_Id_c
Object Workflows
Name Definition Name Event Point Description
FormaDePago_c_Standard_ Delete
Delete
FormaDePago_c_Standard_ Delete
Delete
FormaDePago_c_Standard_ Update
Update
FormaDePago_c_Standard_ Create
Create
FormaDePago_c
Formas de pago
Custom
CRM
ZCA_REF_ENTITIES
15
0
0
0
3
2
0
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
adf.source.isLookupIdValid('Oportunidad_Id_c',newValue)
No return
(oracle.apps.fnd.applcore.Profile.ge
No return
(oracle.apps.fnd.applcore.Profile.ge
Precision MaxLength Expression
80 80
0 0
15 15
1500 1500
64 64
64 64
1500 1500
18 18
200 200
1500 1500
10 10
18 18
32 32
64 64
0 0
ression
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
Object Name : GrupoComercial_c
Object Name GrupoComercial_c
Object Display Name Plural Grupo Comercial
Object Type Custom
Application Name CRM
Table Name MKT_REF_ENTITIES
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Custom Fields
Name Display Name Type Column Name
RecordName Código OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
CurrencyCode Currency Code FCL CURRENCY_CODE
Inactivar_c Inactivar Checkbox EXTN_ATTRIBUTE_CHAR008
LastUpdatedBy Actualizado por OOTB LAST_UPDATED_BY
CreatedBy Creado por OOTB CREATED_BY
OraZcxOwner_c Owner DCL
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Object Workflows
Name Definition Name Event Point Description
GrupoComercial_c_Standard Create
_Create
GrupoComercial_c_Standard Delete
_Delete
GrupoComercial_c_Standard Update
_Update
GrupoComercial_c
Grupo Comercial
Custom
CRM
MKT_REF_ENTITIES
12
0
0
0
3
1
0
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
ression
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
Object Name : GrupoDeHilo_c
Object Name GrupoDeHilo_c
Object Display Name Plural Grupo de hilo
Object Type Custom
Application Name CRM
Table Name MOT_REF_ENTITIES
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Custom Fields
Name Display Name Type Column Name
RecordName Grupo de hilo OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
CurrencyCode Currency Code FCL CURRENCY_CODE
LastUpdatedBy Actualizado por OOTB LAST_UPDATED_BY
CreatedBy Creado por OOTB CREATED_BY
Splitter_Id_c Splitter DCLForeignKey EXTN_ATTRIBUTE_NUMBER002
OraZcxOwner_c Owner DCL
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Rule1 Field Validation
Field Name : Oportunidad_Id_c
Rule1 Field Validation
Field Name : Splitter_Id_c
Object Workflows
Name Definition Name Event Point Description
GrupoDeHilo_c_Standard_Cr Create
eate
GrupoDeHilo_c_Standard_D Delete
elete
GrupoDeHilo_c_Standard_U Update
pdate
GrupoDeHilo_c
Grupo de hilo
Custom
CRM
MOT_REF_ENTITIES
16
0
0
0
3
3
0
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
adf.source.isLookupIdValid('Oportunidad_Id_c',newValue)
adf.source.isLookupIdValid('Splitter_Id_c',newValue)
ption Disabled Actions Expression
No return
(oracle.apps.fnd.applcore.Profile.ge
No return
(oracle.apps.fnd.applcore.Profile.ge
No return
(oracle.apps.fnd.applcore.Profile.ge
Precision MaxLength Expression
80 80
0 0
15 15
64 64
64 64
18 18
1500 1500
18 18
200 200
1500 1500
10 10
18 18
1500 1500
32 32
64 64
0 0
ression
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
Object Name : HistoricoConsultaScore_c
Object Name HistoricoConsultaScore_c
Object Display Name Plural Consultas Score
Object Type Custom
Application Name CRM
Table Name HZ_REF_ENTITIES
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Custom Fields
Name Display Name Type Column Name
RecordName Número de Identificación OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
ClienteConDeuda_c Cliente con deuda Text EXTN_ATTRIBUTE_CHAR011
RecordNameFormula_c Número de Identificación Text Formula
Triggers
Name Type Trigger PointDescription Error Message
setOwner Object Trigger Create
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Rule1 Field Validation
Field Name : Contacto_Id_c
Rule1 Field Validation
Rule1
Field Name : Oportunidad_Id_c
Object Functions
Name Parameters Return Type Privileged Visibility Description
ActualiarSco void No Default
reContacto
Expression
def userName =adf.context.getSecurityContext()?.getUserProfile()?.getUserID()
def vo=newView('Resource')
def voc=vo.createViewCriteria()
def vor=voc.createRow()
def voi=vor.ensureCriteriaItem('Username')
voi.setOperator('=')
voi.setValue(userName)
voc.insertRow(vor)
vo.appendViewCriteria(voc)
vo.executeQuery()
def resource
while(vo.hasNext()){
def v=vo.next()
if(v.Username==userName){
resource =v
}
}
if(resource!=null){
setAttribute('OraZcxOwner_Id_c',resource.ResourceProfileId)
}
setAttribute('ConsultarScore_c','Y')
setAttribute('ControlTipo_c','Y')
if(ConsultarScore_c=='Y'){
consultaScore()
}
if(TipoConsulta_c=='1'){
ActualiarScoreContacto()
}
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
adf.source.isLookupIdValid('Contacto_Id_c',newValue)
adf.source.isLookupIdValid('Oportunidad_Id_c',newValue)
adf.source.isLookupIdValid('Oportunidad_Id_c',newValue)
tion Expression
def contacto= Contacto_Obj_c
if(contacto!=null){
contacto.setAttribute('Segmentacion_c',Segmentacion_c)
contacto.setAttribute('CapacidadDePago_c',CapacidadDePago_c)
contacto.setAttribute('RegistraTCActiva_c',RegistraTCActiva_c)
contacto.setAttribute('ResultadoDelModelo_c',ResultadoDelModelo_c)
contacto.setAttribute('ClienteCastigado_c',ClienteCastigado_c)
contacto.setAttribute('ClienteConDeuda_c',ClienteConDeuda_c)
}
def tipoDocumento_c = '';
def numeroDocumento_c = '';
def payload = [:]
def POST_param=[:]
def consulta= '';
def contacto = '';
if(consulta?.codigoRespuesta == '1' ){
def capacidadPago_c = consulta?.capacidadPago;
setAttribute('Segmentacion_c',consulta?.segmentacion);
setAttribute('ClienteCastigado_c',consulta?.clienteCastigado.Descripcion[0]);
setAttribute('ResultadoDelModelo_c',consulta?.resultadoModelo);
setAttribute('RegistraTCActiva_c',consulta?.registraTCActiva);
setAttribute('ClienteConDeuda_c',consulta?.clienteDeuda.Descripcion[0]);
setAttribute('CapacidadDePago_c', (capacidadPago_c as BigDecimal).setScale(2,BigDecimal.ROUND_HALF_UP))
setAttribute('Segmentacion_c',consulta?.segmentacion)
/* for(Cod in listaFormaDePago){
def listRow = listRows.createRow()
listRow.setAttribute('Oportunidad_Id_c',OptyId)
listRow.setAttribute('Activo_c','Y')
listRow.setAttribute('RecordName',Cod['Codigo'])
listRow.setAttribute('Descripcion_c',Cod['Descripcion'])
listRow.setAttribute('TipoFormaPago_c',Cod['tipo'])
listRows.insertRow(listRow)
}
*/
POST_param.put('Integracion_c',2)
POST_param.put('MensajeIntegracion_c',encodeToBase64('Consulta Exitosa'))
POST_param.put('Payload_c',encodeToBase64(''+ payload))
POST_param.put('Response_c',encodeToBase64(''+consulta))
POST_param.put('IdPrincipal_c',0)
//adf.webServices.LogBitacora.POST(POST_param)
}else{
POST_param.put('Integracion_c',2)
POST_param.put('MensajeIntegracion_c',encodeToBase64(msg))
POST_param.put('Payload_c',encodeToBase64(''+ payload))
POST_param.put('Response_c',encodeToBase64(''+consulta))
POST_param.put('IdPrincipal_c',0)
// adf.webServices.LogBitacora.POST(POST_param)
//throw new oracle.jbo.ValidationException(''+consulta?.resultadoModelo)
else{
return OraZcxOwner_Obj_c?.ge
}
80 80
0 0
Cédula o Pasaporte')
ecimal.ROUND_HALF_UP))
ression
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
Object Name : HistoricoDeContrato_c
Object Name HistoricoDeContrato_c
Object Display Name Plural Históricos de Contrato
Object Type Custom
Application Name CRM
Table Name SVC_REF_ENTITIES
Record Name Sequence {000000000}
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Custom Fields
Name Display Name Type Column Name
RecordName Histórico de Contrato OOTB RECORD_NAME
CreationDate Fecha OOTB CREATION_DATE
Subestado_c Subestado FCL EXTN_ATTRIBUTE_CHAR007
CurrencyCode Currency Code FCL CURRENCY_CODE
ComentariosObservaciones_c Comentarios / Observaciones Clob EXTN_ATTRIBUTE_CLOB001
LastUpdatedBy Actualizado por OOTB LAST_UPDATED_BY
CreatedBy Creado por OOTB CREATED_BY
OraZcxOwner_c Owner DCL
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Rule1 Field Validation
Field Name : Oportunidad_Id_c
Object Workflows
Name Definition Name Event Point Description
HistoricoDeContrato_c_Stan Create
dard_Create
HistoricoDeContrato_c_Stan Delete
dard_Delete
HistoricoDeContrato_c_Stan Update
dard_Update
HistoricoDeContrato_c
Históricos de Contrato
Custom
CRM
SVC_REF_ENTITIES
{000000000}
15
0
0
0
3
2
0
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
adf.source.isLookupIdValid('Oportunidad_Id_c',newValue)
ression
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
Object Name : HistoricoDeEtapaDeVenta_c
Object Name HistoricoDeEtapaDeVenta_c
Object Display Name Plural Historico de Etapa de Venta
Object Type Custom
Application Name CRM
Table Name HZ_REF_ENTITIES
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Custom Fields
Name Display Name Type Column Name
RecordName Etapa Actual OOTB RECORD_NAME
CreationDate Fecha de inicio de etapa OOTB CREATION_DATE
Dias_c Días Number EXTN_ATTRIBUTE_NUMBER006
EtapaAnterior_c Etapa Anterior Text EXTN_ATTRIBUTE_CHAR007
DiasForm_c Días Number Formula
Triggers
Name Type Trigger PointDescription Error Message
Fechafin Object Trigger BeforeUpdate
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Rule1 Field Validation
Field Name : Oportunidad_Id_c
Object Workflows
Name Definition Name Event Point Description
HistoricoDeEtapaDeVenta_c Update
_Standard_Update
HistoricoDeEtapaDeVenta_c Delete
_Standard_Delete
HistoricoDeEtapaDeVenta_c Create
_Standard_Create
HistoricoDeEtapaDeVenta_c
Historico de Etapa de Venta
Custom
CRM
HZ_REF_ENTITIES
19
0
1
0
3
2
0
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
adf.source.isLookupIdValid('Oportunidad_Id_c',newValue)
Custom Fields
Name Display Name Type Column Name
RecordName Valor anterior OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
RecursoAnterior_c Recurso Anterior DCL
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Rule1 Field Validation
Field Name : IdContacto_Id_c
Rule1 Field Validation
Field Name : IdCuenta_Id_c
Rule1 Field Validation
Field Name : IdOportunidad_Id_c
Rule1 Field Validation
Field Name : RecursoAsignado_Id_c
Rule1 Field Validation
Field Name : RecursoAnterior_Id_c
Object Workflows
Name Definition Name Event Point Description
HistoricoDeTemporalidad_c Create
_Standard_Create
HistoricoDeTemporalidad_c Delete
_Standard_Delete
HistoricoDeTemporalidad_c Update
_Standard_Update
Dynamic Layouts
Layout Name Active Role
Default custom layout 1 Yes
HistoricoDeTemporalidad_c
Historico de temporalidad
Custom
CRM
SVC_REF_ENTITIES
21
0
0
0
3
6
1
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
adf.source.isLookupIdValid('IdContacto_Id_c',newValue)
adf.source.isLookupIdValid('IdCuenta_Id_c',newValue)
adf.source.isLookupIdValid('IdOportunidad_Id_c',newValue)
adf.source.isLookupIdValid('RecursoAsignado_Id_c',newValue)
adf.source.isLookupIdValid('RecursoAnterior_Id_c',newValue)
Custom Fields
Name Display Name Type Column Name
RecordName Código OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
CurrencyCode Currency Code FCL CURRENCY_CODE
PromocionOServicio_Id_c Promoción o servicio DCLForeignKey EXTN_ATTRIBUTE_NUMBER001
LastUpdatedBy Actualizado por OOTB LAST_UPDATED_BY
CreatedBy Creado por OOTB CREATED_BY
PromocionOServicio_c Promoción o servicio DCL
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Rule1 Field Validation
Field Name : PromocionOServicio_Id_c
Object Workflows
Name Definition Name Event Point Description
IntervaloCada_c_Standard_ Update
Update
IntervaloCada_c_Standard_C Create
reate
IntervaloCada_c_Standard_ Delete
Delete
IntervaloCada_c
Intervalo cada
Custom
CRM
HZ_REF_ENTITIES
14
0
0
0
3
2
0
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
adf.source.isLookupIdValid('PromocionOServicio_Id_c',newValue)
ression
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
Object Name : IntervaloHasta_c
Object Name IntervaloHasta_c
Object Display Name Plural Intervalo hasta
Object Type Custom
Application Name CRM
Table Name MOO_REF_ENTITIES
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Custom Fields
Name Display Name Type Column Name
RecordName Código OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
CurrencyCode Currency Code FCL CURRENCY_CODE
PromocionOServicio_Id_c Promoción o servicio DCLForeignKey EXTN_ATTRIBUTE_NUMBER001
LastUpdatedBy Actualizado por OOTB LAST_UPDATED_BY
CreatedBy Creado por OOTB CREATED_BY
PromocionOServicio_c Promoción o servicio DCL
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Rule1 Field Validation
Field Name : PromocionOServicio_Id_c
Object Workflows
Name Definition Name Event Point Description
IntervaloHasta_c_Standard_ Update
Update
IntervaloHasta_c_Standard_ Create
Create
IntervaloHasta_c_Standard_ Delete
Delete
IntervaloHasta_c
Intervalo hasta
Custom
CRM
MOO_REF_ENTITIES
14
0
0
0
3
2
0
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
adf.source.isLookupIdValid('PromocionOServicio_Id_c',newValue)
ression
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
Object Name : IPRadioWifi_c
Object Name IPRadioWifi_c
Object Display Name Plural IP radio wifi
Object Type Custom
Application Name CRM
Table Name SVC_REF_ENTITIES
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Custom Fields
Name Display Name Type Column Name
RecordName Código OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
NodoWifi_c Nodo wifi DCL
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Rule1 Field Validation
Field Name : Oportunidad_Id_c
Rule1 Field Validation
Field Name : NodoWifi_Id_c
Object Workflows
Name Definition Name Event Point Description
IPRadioWifi_c_Standard_Cre Create
ate
IPRadioWifi_c_Standard_Up Update
date
IPRadioWifi_c_Standard_Del Delete
ete
IPRadioWifi_c
IP radio wifi
Custom
CRM
SVC_REF_ENTITIES
16
0
0
0
3
3
0
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
adf.source.isLookupIdValid('Oportunidad_Id_c',newValue)
adf.source.isLookupIdValid('NodoWifi_Id_c',newValue)
ption Disabled Actions Expression
No return
(oracle.apps.fnd.applcore.Profile.ge
No return
(oracle.apps.fnd.applcore.Profile.ge
No return
(oracle.apps.fnd.applcore.Profile.ge
Precision MaxLength Expression
80 80
0 0
1500 1500
15 15
64 64
64 64
1500 1500
18 18
200 200
1500 1500
10 10
18 18
32 32
64 64
18 18
0 0
ression
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
Object Name : Lead
Object Name Lead
Object Display Name Plural Leads
Object Type OOTB
Application Name CRM
Table Name MKL_LM_LEADS
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Standard Fields
Name Display Name Help Text
CreationDate Fecha de creación
JobTitle Cargo
OrganizationName Name
Rank Clasificación Clasificación
Name Nombre de lead Nombre de lead
CustPartyType Customer Type Customer Type
PrimaryPhoneNumber Teléfono de contacto
AddrElementAttribute1 Ciudad / Canton
AddrElementAttribute2 Barrio / Sector
AddrElementAttribute3 Conjunto / Urbanización /
AddrElementAttribute4 Edificio
Referencia
Custom Fields
Name Display Name Type Column Name
AnchoDeBanda_c Ancho de Banda Text EXTN_ATTRIBUTE_CHAR051
AsignacionMensual_Id_c Asignacion Mensual DCLForeignKey EXTN_ATTRIBUTE_NUMBER003
Nombres_c Nombres Text EXTN_ATTRIBUTE_CHAR030
PortafolioDeProductos_c Portafolio de Productos Text EXTN_ATTRIBUTE_CHAR052
SectoresComercialesCuenta_c Sectores Comerciales FCL EXTN_ATTRIBUTE_CHAR028
MotivoBaja_c Motivo de Baja FCL EXTN_ATTRIBUTE_CHAR038
AntiguedadEnDias_c No_Usar Antigüedad en días FCL EXTN_ATTRIBUTE_CHAR017
LongitudL_c Longitud FCL EXTN_ATTRIBUTE_CHAR043
Origen_Id_c Origen DCLForeignKey EXTN_ATTRIBUTE_NUMBER002
LeadsAbiertos_c Leads Abiertos Number EXTN_ATTRIBUTE_NUMBER009
Canal_Id_c Canal DCLForeignKey EXTN_ATTRIBUTE_NUMBER001
AreaComercialLead_c Area Comercial - NO USAR FCL EXTN_ATTRIBUTE_CHAR020
NumeroDeDocumento_c Número de documento Text EXTN_ATTRIBUTE_CHAR004
PasaportePersona_c Pasaporte Text EXTN_ATTRIBUTE_CHAR022
CoordenadaLongitud_c Coordenada Longitud Text EXTN_ATTRIBUTE_CHAR041
SectoresComercialesPersona_c Sectores Comerciales FCL EXTN_ATTRIBUTE_CHAR024
RUCCliente_c RUC Text EXTN_ATTRIBUTE_CHAR033
SistemaOrigen_c Sistema Origen FCL EXTN_ATTRIBUTE_CHAR014
Canal_c Canal DCL
Triggers
Name Type Trigger PointDescription Error Message Expression
setDatosContactoDin Field Trigger Modify setDatosContacto()
Field Name :
setDatosCuentaDin ContactName
Field Trigger Modify setDatosCuenta()
Field Name :
borrar_isla Cuenta_Id_c
Field Trigger Modify if(Origen_Id_c==100
Field Name :
Origen_Id_c }
else{
setAttribute('Isla_c'
}
Init_Lead Object Trigger Create def com=adf.util.usu
if(nvl(TipoCM_c,'')==
setAttribute('TipoC
}
else{
com=TipoCM_c
}
def map=[:]
map.put('CustomerI
map.put('PersonPart
map.put('CustomerP
map.put('CampaignC
map.put('CustomerA
map.put('CustomerP
map.put('PrimaryCo
map.put('SalesAccou
println('datos lead:'+
def tipoCliente=''
if(com=='MASIVO'){
tipoCliente='PERS
}
else if(com=='CORP
tipoCliente='ORGA
}
else{
tipoCliente='PERSO
}
if(nvl(PrimaryContac
tipoCliente='PERSO
}
if(nvl(Cuenta_Id_c,0
tipoCliente='ORGA
}
setAttribute('TipoCli
setAttribute('Primary
setDatosContacto()
setDatosCuenta()
buscaContactoCuenta Object Trigger BeforeInsert return true
regularizarLead()
return true
def numeroDocume
def tipoDocumento=
def busqueda=true
def setContacto=nu
if(nvl(numeroDocum
if(tipoDocumento!=
def accounts=newV
def acc=newViewCr
def accr=acc.create
def acci;
if(tipoDocumento=
acci=accr.ensureCr
}
if(tipoDocumento=
acci=accr.ensureCr
}
acci.setOperator('='
acci.setValue(nume
acc.insertRow(accr)
accounts.appendVie
accounts.executeQu
def accounte=''
while(accounts.hasN
accounte=accoun
if(nvl(accounte.Pa
//throw new ora
setCuenta=acco
busqueda=false;
}
}
if(busqueda && tip
def accounts1=new
def acc1=newViewC
def accr1=acc1.crea
def acci1='';
acci1=accr1.ensure
acci1.setOperator('=
acci1.setValue(num
acc1.insertRow(accr
accounts1.appendV
accounts1.executeQ
def accounte1=''
while(accounts1.has
accounte1=accou
if(nvl(accounte1.P
//throw new ora
setCuenta=acco
busqueda=false;
}
}
}
}
if(busqueda){
def contacts=newV
def con=newViewC
def conr=con.create
def coni='';
if(tipoDocumento=
coni=conr.ensureC
}
if(tipoDocumento=
coni=conr.ensureC
}
if(tipoDocumento=
coni=conr.ensureC
}
coni.setOperator('=
coni.setValue(nume
con.insertRow(conr
contacts.appendVie
contacts.executeQu
def conount=''
while(contacts.hasN
conount=contact
if(nvl(conount.Par
//throw new ora
setContacto=con
busqueda=false;
}
}
}
setAttribute('Accou
setAttribute('Prima
}
Temporalidad_INS Object Trigger BeforeInsert if(OwnerPartyId==3
return true
if(OwnerPartyId!=nu
setAttribute('Fecha
}
else{
setAttribute('Fecha
}
def fecha=date(2010
setAttribute('FechaD
def nullDate=new D
def fechaAsign=nvl(
if(fechaAsign!=nullD
def dias=adf.util.di
println('dias:'+dias)
setAttribute('Dispo
setAttribute('Estado
}
else{
setAttribute('Dispo
}
def tipoCliente=nvl(
def party
def idCliente
def viewName
if(tipoCliente=='PER
if(nvl(EnableCreate
party=PersonDVO
idCliente=nvl(Prima
viewName='Person
}
else if(tipoCliente==
if(nvl(EnableCreate
party=Cuenta_Obj_
idCliente=nvl(Cuen
viewName='Organ
}
if(party==null && id
def partys=newVie
def partyc=newVie
def partyr=partyc.c
def partyi=partyr.e
partyi.setOperator(
partyi.setValue(idC
partyc.insertRow(p
partys.appendView
partys.executeQuer
while(partys.hasNe
party=partys.next
}
}
if(party!=null){
if(party?.SalesProfil
party.setAttribute
}
else if(party?.SalesP
setAttribute('Estad
setAttribute('Disp
}
else if(party?.SalesP
throw new oracle.
}
}
procesosInsertLead Object Trigger BeforeInsert if(nvl(Estado_c,'')=='
setAttribute('Estado
}
if(nvl(Rank,'')==''){
setAttribute('Rank',
}
LlenadodeDocumen
transformarTelefono
DarDeBaja Object Trigger BeforeUpdate def CoordenadaLatit
def CoordenadaLon
DarDeBaja Object Trigger BeforeUpdate
/* if(isAttributeChan
if(nvl(MotivoBaja_c
throw new oracle.
}else{
setAttribute('Estad
setAttribute('Statu
setAttribute('DarD
}
*/
if((isAttributeChange
if(nvl(MotivoBaja_c
throw new oracle.jbo
}else{
setAttribute('Statu
}
if(nvl(SubMotivoDe
if((!CoordenadaL
{
throw new orac
}
if(nvl(LatitudLV_c
throw new oracle.j
}
}
}
}
if(isAttributeChange
if(nvl(LatitudLV_c,'
throw new oracle.
}
}
if(isAttributeChange
//setAttribute('Estad
setAttribute('Status
setAttribute('Motiv
}
controlUpd Object Trigger BeforeUpdate //if(isAttributeChang
if(isAttributeChange
setAttribute('Estado
}
//setAttribute('Enabl
//setAttribute('Enabl
if(isAttributeChange
setAttribute('Estado
println('Antes de va
validarConversion()
def flagCrearCuenta
def flagCrearContac
if(CrearCliente_c==
println('Antes de b
if(!buscarCuenta())
println('Antes de
validarCrearCuen
flagCrearCuenta=
}
}
if(CrearContacto_c=
println('Antes de b
if(!buscarContacto
println('Antes de
validarCrearCont
flagCrearContact
}
}
if(flagCrearCuenta)
println('Antes de c
crearCuenta()
}
if(flagCrearContact
println('Antes de c
crearContacto()
}
if(isAttributeChang
println('Antes de c
convertLeadToOp
}
}
if(isAttributeChange
transformarTelefon
}
LlenadoDocumentoBe Object Trigger BeforeUpdate
fore
if(isAttributeChange
isAttributeChanged(
LlenadodeDocume
}
}
else if(tipoAnterior
tipoClienteAnterio
if(idCuentaAnterior=
idClienteAnterior=i
}
else{
idClienteAnterior=i
}
if(idContactoActu
cambioCliente=tr
}
else if(tipoActual==
if(cambioCuenta){
tipoClienteAnterior
idClienteAnterior=i
cambioCliente=t
}
}
else if(tipoActual==
if(cambioContacto
tipoClienteAnterior
idClienteAnterior=i
cambioCliente=t
}
}
}
if(idClienteAnterior!=
//println('Actualizar
if(tipoClienteAnteri
def partys
if(tipoClienteAnte
partys=newView
}
else if(tipoClienteA
partys=newView
}
def partyc=newVi
def partyr=partyc
def partyi=partyr.
partyi.setOperato
partyi.setValue(idC
partyc.insertRow(p
partys.appendVie
partys.executeQue
while(partys.hasN
//println('Pude e
def party=partys
def leadsAbiertos=
if(leadsAbiertos>
party.setAttribute
}
}
}
def fechaAsignacion
def statusTemporalid
def oportunidadesA
if(cliente!=null){
oportunidadesAbie
}
def previousOwnerId
def cambioOwner=i
def cambioStatus=is
if((cambioOwner||ca
//println('Determin
if(cambioOwner){
fechaAsignacion=
if(OverrideReassig
def mapCliente=
if(idClienteAnter
cliente.setAttrib
cliente.setAttrib
mapCliente.put
mapCliente.put
mapCliente.put
adf.util.reasigna
}
}
}
statusTemporalidad
def currentOwnerId
def usuarioGeneric
def usuarioGeneric
def usuarioGeneric
if(TipoCM_c=='MA
usuarioGenericoId
}
if(TipoCM_c=='COR
usuarioGenericoId
}
def leadsAbiertos=
if(cliente!=null)
leadsAbiertos=nvl(
fechaAsignacion=n
def disponibleHast
if(!leadAbierto || cu
//println('El status
if(!leadAbierto||op
statusTemporalidad
if(cambioCliente&&
cliente.setAttrib
}
if(cambioStatus&
def previousSta
if(previousStatu
if(leadsAbierto
cliente.setAttribut
}
}
}
}
else{
statusTemporalidad
}
if(currentOwnerId
if(cambioOwner)
if(previousOwn
setAttribute('U
def team=Mkl
while(team.ha
def member=
if(member.Pa
member.rem
}
}
fechaAsignacio
}
}
}
else{
//println('El Status
statusTemporalida
disponibleHasta=
if(cambioStatus || ca
if((cambioStatus||ca
def previousStatu
if(((cambioStatu
cliente.setAttr
}
}
if(cambioOwner)
if((currentOwne
&&OverrideReassign
cliente.setAttr
}
else if((previous
&&OverrideReassign
cliente.setAttr
}
}
fechaAsignacion
def fecha=date(2
def dias=adf.util
disponibleHasta=
}
}
setAttribute('Estado
setAttribute('Dispo
if((previousOwnerId
currentOwnerId != u
setAttribute('Fecha
}
map.put('usuarioGe
map.put('disponibl
}
if(OverrideReassignm
setAttribute('Overr
}
map.put('tipoActual
map.put('statusTemp
map.put('idClienteA
map.put('idClienteA
map.put('fechaAsign
map.put('leadAbiert
map.put('oportunida
map.put('cambioClie
////println(''+map)
Validations
Name Type Error Message Expression
Validar_telefono Object Validation El código de área y el número de return true
teléfono sólo pueden tener caracteres def phoneNumber=
numéricos def areaCode=nvl(P
def okFormat=phon
if(!okFormat)
throw new oracle.jbo
en blanco,
return true guiones,
validarTipoDeCliente Object Validation El tipo de cliente es obligatorio if(getPrimaryRowSta
return true
if(nvl(TipoCliente_c,'
throw new oracle.jb
}
if(TipoCliente_c=='P
def contact=Person
}
return true
validaOwner Object Validation No tienes permisos para editar este lead if(getPrimaryRowSta
validaOwner Object Validation No tienes permisos para editar este lead
return true
if(adf.util.usuarioAdm
return true
}
def cliente
if(TipoCliente_c=='O
cliente=Cuenta_Ob
}
else if(TipoCliente_c=
cliente=PersonDVO
}
def moc=nvl(TipoCM
def genericoMasivo=
def genericoCorpora
def ownerLead=nvl(
def tipoUsuario=adf
def usuarioMasivo=
def prevOwner=getO
if(cliente!=null && o
adf.util.usuarioMasiv
def ownerCliente=n
if(ownerCliente==0
def partys
def clienteId=0
if(TipoCliente_c==
clienteId=nvl(Cu
partys=newView
}
else if(TipoCliente
clienteId=nvl(Pri
partys=newView
}
if(clienteId!=0){
def partyc=newV
def partyr=party
def partyi=party
partyi.setOperato
partyi.setValue(c
partyc.insertRow
partys.appendVi
partys.executeQu
while(partys.hasN
def party=party
ownerCliente=p
}
}
if(ownerCliente!=O
throw new oracle
}
}
}
def currentUsernam
def resources=newV
def resourcec=newV
def resourcer=resou
def resourcei=resou
resourcei.setOperato
resourcei.setValue(c
resourcec.insertRow
resources.appendVie
resources.executeQu
def currentUserId
while(resources.hasN
def resource=resou
currentUserId=reso
}
if( isAttributeChange
if(OwnerId!=curren
throw new oracle.
}
def usuarioDesasig
if((prevOwner==ge
def fechaNull=new
def fechaAsignaci
if(usuarioDesasign
return true
}
else{
throw new oracle
asignación')
}
}
else if(OwnerId!=pr
throw new oracle.
}
}
else{
if(OwnerId!=curren
def team=MklLead
def partOfTeam=f
while(team.hasNe
def member=tea
if(member.PartyI
partOfTeam=tr
}
}
if(!partOfTeam){
if(!adf.util.usuario
throw new orac
}
}
}
}
return true
Rule1 Field Validation adf.source.isLookup
Field Name : Canal_Id_c
Rule1 Field Validation adf.source.isLookup
Field Name : Origen_Id_c
Rule1 Field Validation adf.source.isLookup
Field Name : AsignacionMensual_Id_c
Rule1 Field Validation adf.source.isLookup
Field Name : Cuenta_Id_c
Rule1 Field Validation adf.source.isLookup
Field Name :
UsuarioDesasignado_Id_c
Rule1 Field Validation adf.source.isLookup
Field Name : Contacto_Id_c
Rule1 Field Validation adf.source.isLookup
Field Name : Evento_Id_c
Rule1 Field Validation adf.source.isLookup
Field Name :
OwnerAsignadoRegla_Id_c
Object Functions
Name Parameters Return Type Privileged Visibility Description
ConversionL void No Callable by
eads External
Systems
LlenadodeD void No Default
ocumentoLe
ad
leadsAbierto void No Default
s
Object Workflows
Name Definition Name Event Point Description
reasignacionCascada reasignacionCascada Update
Dynamic Layouts
Layout Name Active Role
ADMIN Yes
Landing Masivo Yes USUARIO_MASIVO;
Landing Corporativo Yes
Creación Admin Yes ADMIN_GENERAL_PNT;
Creacion Masivo No USUARIO_MASIVO;
Creación Corporativo Contacto 2 Yes
Creacion Corporativo Persona No
Creacion Corporativo Yes
Detalles Admin 2 Yes ADMIN_GENERAL_PNT;
Detalle masivo convertido Yes EJECUTIVO_MASIVO;USUARIO_MASIVO;
Diseño Masivo Contacto Yes USUARIO_MASIVO;EJECUTIVO_MASIVO;
Diseño Masivo Cuenta Yes USUARIO_MASIVO;EJECUTIVO_MASIVO;
Lead Admin No ADMIN_GENERAL_PNT;
Detalles Masivo No USUARIO_MASIVO;
Detalle corporativo convertida Yes
Detalles Corporativo Persona Yes
Detalles Corporativo Cuenta Yes
Diseño personalizado por defecto Yes
d
ds
B
M
_LM_LEADS
79
11
11
20
3
11
18
Searchable
Yes
No
Yes
Yes
Yes
Yes
Yes
No
No
No
No
No No No Yes
RIBUTE_CHAR007 No Yes No Yes
RIBUTE_TIMESTAMP001 No Yes No Yes
RIBUTE_CHAR009 No Yes No Yes
RIBUTE_NUMBER189 No Yes No Yes
RIBUTE_NUMBER007 No Yes Yes Yes
RIBUTE_CHAR015 No Yes No Yes
RIBUTE_NUMBER191 No Yes Yes Yes
RIBUTE_CHAR049 Yes Yes No Yes
RIBUTE_CHAR046 N Yes Yes No Yes
RIBUTE_NUMBER004 No Yes No Yes
No Yes No Yes
No Yes No Yes
RIBUTE_CHAR039 No Yes No Yes
RIBUTE_CHAR032 No Yes No Yes
Expression
setDatosContacto()
setDatosCuenta()
if(Origen_Id_c==100000104471653 ||Origen_Id_c==100000104471662){
}
else{
setAttribute('Isla_c','')
}
def com=adf.util.usuarioMasivoCorporativo()
if(nvl(TipoCM_c,'')==''){
setAttribute('TipoCM_c',com)
}
else{
com=TipoCM_c
}
def map=[:]
map.put('CustomerId',CustomerId)
map.put('PersonPartyVO',PersonPartyVO)
map.put('CustomerPersonProfileId',CustomerPersonProfileId)
map.put('CampaignContactId',CampaignContactId)
map.put('CustomerAccountId',CustomerAccountId)
map.put('CustomerPartyId',CustomerPartyId)
map.put('PrimaryContactId',PrimaryContactId)
map.put('SalesAccountPartyId',SalesAccountPartyId)
println('datos lead:'+map)
def tipoCliente=''
if(com=='MASIVO'){
tipoCliente='PERSON'
}
else if(com=='CORPORATIVO'){
tipoCliente='ORGANIZATION'
}
else{
tipoCliente='PERSON'
}
if(nvl(PrimaryContactId,0 as Long)!=0){
tipoCliente='PERSON'
}
if(nvl(Cuenta_Id_c,0 as BigDecimal)!=0){
tipoCliente='ORGANIZATION'
}
setAttribute('TipoCliente_c',tipoCliente)
setAttribute('PrimaryPhoneCountryCode','593')
setDatosContacto()
setDatosCuenta()
return true
regularizarLead()
return true
def numeroDocumento=getAttribute('NumeroDeDocumento_c');
def tipoDocumento=getAttribute('TipoDeIdentificacion_c');
def busqueda=true
def setContacto=null, setCuenta=null
if(nvl(numeroDocumento,null)!=null && nvl(tipoDocumento,null)!=null){
if(tipoDocumento!="C"){
def accounts=newView('OrganizationProfile')
def acc=newViewCriteria(accounts)
def accr=acc.createRow()
def acci;
if(tipoDocumento=="R"){
acci=accr.ensureCriteriaItem('JgzzFiscalCode')
}
if(tipoDocumento=="P"){
acci=accr.ensureCriteriaItem('Pasaporte_c')
}
acci.setOperator('=')
acci.setValue(numeroDocumento)
acc.insertRow(accr)
accounts.appendViewCriteria(acc)
accounts.executeQuery()
def accounte=''
while(accounts.hasNext()){
accounte=accounts.next()
if(nvl(accounte.PartyId,null)!=null){
//throw new oracle.jbo.ValidationException("El numero de documento: '"+numeroDocumento+"' está duplicado en la cuenta '"+ac
setCuenta=accounte.PartyNumber;
busqueda=false;
}
}
if(busqueda && tipoDocumento=="R"){
def accounts1=newView('OrganizationProfile')
def acc1=newViewCriteria(accounts1)
def accr1=acc1.createRow()
def acci1='';
acci1=accr1.ensureCriteriaItem('RUCExterno_c')
acci1.setOperator('=')
acci1.setValue(numeroDocumento)
acc1.insertRow(accr1)
accounts1.appendViewCriteria(acc1)
accounts1.executeQuery()
def accounte1=''
while(accounts1.hasNext()){
accounte1=accounts1.next()
if(nvl(accounte1.PartyId,null)!=null){
//throw new oracle.jbo.ValidationException("El numero de documento: '"+numeroDocumento+"' está duplicado en la cuenta '"+ac
setCuenta=accounte1.PartyNumber;
busqueda=false;
}
}
}
}
if(busqueda){
def contacts=newView('PersonProfile')
def con=newViewCriteria(contacts)
def conr=con.createRow()
def coni='';
if(tipoDocumento=="R"){
coni=conr.ensureCriteriaItem('JgzzFiscalCode')
}
if(tipoDocumento=="P"){
coni=conr.ensureCriteriaItem('NumeroDePasaporte_c')
}
if(tipoDocumento=="C"){
coni=conr.ensureCriteriaItem('NumeroDeCedula_c')
}
coni.setOperator('=')
coni.setValue(numeroDocumento)
con.insertRow(conr)
contacts.appendViewCriteria(con)
contacts.executeQuery()
def conount=''
while(contacts.hasNext()){
conount=contacts.next()
if(nvl(conount.PartyId,null)!=null){
//throw new oracle.jbo.ValidationException("El numero de documento: '"+numeroDocumento+"' está duplicado en el contacto '"+c
setContacto=conount.PartyId;
busqueda=false;
}
}
}
setAttribute('AccountPartyNumber',setCuenta);
setAttribute('PrimaryContactId',setContacto);
}
if(OwnerPartyId==300000029783351)
return true
if(OwnerPartyId!=null){
setAttribute('FechaDeAsignacion_c',today())
}
else{
setAttribute('FechaDeAsignacion_c',null)
}
def fecha=date(2010,01,01)
setAttribute('FechaDeAsignacion_c',today())
def nullDate=new Date(01,01,01)
def fechaAsign=nvl(FechaDeAsignacion_c,nullDate)
if(fechaAsign!=nullDate){
def dias=adf.util.diasTemporalidad(nvl(TipoCM_c,''),'LEAD','')
println('dias:'+dias)
setAttribute('DisponibleHasta_c',nvl(FechaDeAsignacion_c,today())+dias.toInteger())
setAttribute('EstadoDeTemporalidad_c','ACTIVA')
}
else{
setAttribute('DisponibleHasta_c',null)
}
def tipoCliente=nvl(TipoCliente_c,'')
def party
def idCliente
def viewName
if(tipoCliente=='PERSON'){
if(nvl(EnableCreateContact,'N')=='N')
party=PersonDVO
idCliente=nvl(PrimaryContactId,0 as Long)
viewName='PersonProfile'
}
else if(tipoCliente=='ORGANIZATION'){
if(nvl(EnableCreateAccount,'N')=='N')
party=Cuenta_Obj_c
idCliente=nvl(Cuenta_Id_c, 0 as BigDecimal)
viewName='OrganizationProfile'
}
if(party==null && idCliente!=0){
def partys=newView(viewName)
def partyc=newViewCriteria(partys)
def partyr=partyc.createRow()
def partyi=partyr.ensureCriteriaItem('PartyId')
partyi.setOperator('=')
partyi.setValue(idCliente)
partyc.insertRow(partyr)
partys.appendViewCriteria(partyc )
partys.executeQuery()
while(partys.hasNext()){
party=partys.next()
}
}
if(party!=null){
if(party?.SalesProfileType=='ZCA_PROSPECT'){
party.setAttribute('LeadsAbiertos_c',nvl(party.LeadsAbiertos_c,0 as BigDecimal)+1)
}
else if(party?.SalesProfileType=='ZCA_CUSTOMER'){
setAttribute('EstadoDeTemporalidad_c','INACTIVA')
setAttribute('DisponibleHasta_c',null)
}
else if(party?.SalesProfileType=='ZCA_CONTACT'){
throw new oracle.jbo.ValidationException('No es posible elegir un contacto tipo Contacto como cliente.')
}
}
if(nvl(Estado_c,'')==''){
setAttribute('Estado_c','NUEVO')
}
if(nvl(Rank,'')==''){
setAttribute('Rank','COOL')
}
LlenadodeDocumentoLead()
transformarTelefonoEloqua()
def CoordenadaLatitud=nvl(CoordenadaLatitud_c,'')
def CoordenadaLongitud=nvl(CoordenadaLongitud_c,'')
/* if(isAttributeChanged('DarDeBaja_c')&& DarDeBaja_c=='Y' || isAttributeChanged('MotivoBaja_c') || isAttributeChanged('SubMotivoDe
if(nvl(MotivoBaja_c,'')==''){
throw new oracle.jbo.ValidationException('Se requiere agregar un motivo de baja ')
}else{
setAttribute('Estado_c','DADO_DE_BAJA')
setAttribute('StatusCode','RETIRED')
setAttribute('DarDeBaja_c','N')
}
*/
if((isAttributeChanged('Estado_c')&& Estado_c=='DADO_DE_BAJA') || isAttributeChanged('MotivoBaja_c') || isAttributeChanged('SubMo
if(nvl(MotivoBaja_c,'')==''){
throw new oracle.jbo.ValidationException('(BDS)Se requiere agregar un motivo de baja ')
}else{
setAttribute('StatusCode','RETIRED')
}
if(nvl(SubMotivoDeBaja_c,'')==''&& (MotivoBaja_c =='NO_DESEA' ||
MotivoBaja_c =='NO_APLICA' ||
MotivoBaja_c =='YA_CONTRATO_SERVICIO' ||
MotivoBaja_c =='NO_COBERTURA' ||
MotivoBaja_c =='NO_APLICA_SCORE' ||
MotivoBaja_c =='VOLVER_A_LLAMAR' ||
MotivoBaja_c =='VENTA_FUTURA')){
throw new oracle.jbo.ValidationException('(BDS)Se requiere agregar un Sub Motivo de baja ')
}else{
setAttribute('StatusCode','RETIRED')
}
if((nvl(MotivoBaja_c,'')=='NO_COBERTURA')&&(SubMotivoDeBaja_c='CIUDAD_SIN_COBERTURA')) {
if((CoordenadaLatitud == '') && (CoordenadaLongitud == '')) {
throw new oracle.jbo.ValidationException('(BDS)Favor de colocar coordenadas de latitud y longitud')
}
if((CoordenadaLatitud != '') || (CoordenadaLongitud != ''))
{
def regex=/^([0-9]{3})\°([0-9]{2})\'([0-9]{2})\.([0-9]{2})$/
if((!CoordenadaLatitud.matches(regex)) || (!CoordenadaLongitud.matches(regex)))
{
throw new oracle.jbo.ValidationException('(BDS) La Longitud y/o Lalitud no tienen un formato correcto o no se encuentran dentro
}
if(nvl(LatitudLV_c,'')==''){
throw new oracle.jbo.ValidationException('(BDS)Favor de colocar latitud (Norte o Sur)')
}
}
}
}
if(isAttributeChanged('LatitudLV_c')&&Estado_c=='DADO_DE_BAJA'){
if(nvl(LatitudLV_c,'')==''){
throw new oracle.jbo.ValidationException('(BDS)Favor de colocar latitud (Norte o Sur)')
}
}
}
//if(isAttributeChanged('TipoCliente_c')||isAttributeChanged('TipoDeDocumento_c')||
if(isAttributeChanged('StatusCode')&& StatusCode=='RETIRED' ){
setAttribute('Estado_c','DADO_DE_BAJA')
}
//setAttribute('EnableCreateAccount',CrearCliente_c)
//setAttribute('EnableCreateContact',CrearContacto_c)
if(isAttributeChanged('StatusCode')&&StatusCode=='CONVERTED' || isAttributeChanged('Rank')&&Rank=='HOT'){
setAttribute('Estado_c','CONVERTIDO')
println('Antes de validar conversión')
validarConversion()
def flagCrearCuenta=false
def flagCrearContacto=false
if(CrearCliente_c=='Y' &&TipoCliente_c=='ORGANIZATION'){
println('Antes de buscarCuenta')
if(!buscarCuenta()){
println('Antes de validarCrearCuenta')
validarCrearCuenta()
flagCrearCuenta=true
}
}
if(CrearContacto_c=='Y'){
println('Antes de buscarContacto')
if(!buscarContacto()){
println('Antes de validarCrearContacto')
validarCrearContacto()
flagCrearContacto=true
}
}
if(flagCrearCuenta){
println('Antes de crearCuenta')
crearCuenta()
}
if(flagCrearContacto){
println('Antes de crearContacto')
crearContacto()
}
if(isAttributeChanged('Rank')&&Rank=='HOT' && StatusCode!='CONVERTED' ){
println('Antes de convertLeadToOpty')
convertLeadToOpty(LeadId, Name, OwnerResource.PartyNumber,'N', 'N', [:]);
}
}
if(isAttributeChanged('TelefonoEloqua_c')){
transformarTelefonoEloqua()
}
def cliente
def idClienteActual=0
def tipoActual=nvl(TipoCliente_c,'')
def map=[:]
map.put('Nombre de lead',Name)
def cambioTipoCliente=isAttributeChanged('TipoCliente_c')
def cambioCuenta=isAttributeChanged('Cuenta_Id_c')
def cambioContacto=isAttributeChanged('PrimaryContactId')
def idCuentaActual=nvl(Cuenta_Id_c,0 as BigDecimal)
def idContactoActual=nvl(PrimaryContactId,0 as Long)
if(idCuentaActual!=0){
setAttribute('CrearCliente_c','N')
}
if(idContactoActual!=0){
setAttribute('CrearContacto_c','N')
}
def cambioCliente=false
def leadAbierto=StatusCode=='UNQUALIFIED'||StatusCode=='QUALIFIED'
if(tipoActual=='PERSON'){
cliente=PersonDVO
idClienteActual=idContactoActual
}
else if(tipoActual=='ORGANIZATION'){
cliente=Cuenta_Obj_c
idClienteActual=idCuentaActual
}
def tipoAnterior=''
def idCuentaAnterior=0
def idContactoAnterior=0
def idClienteAnterior=0
def tipoClienteAnterior=''
if(cambioTipoCliente||cambioCuenta||cambioContacto){
if(cambioTipoCliente){
tipoAnterior=nvl(getOriginalAttributeValue('TipoCliente_c'),'')
}
if(cambioCuenta){
idCuentaAnterior=nvl(getOriginalAttributeValue('Cuenta_Id_c'),0 as BigDecimal)
}
if(cambioContacto){
idContactoAnterior=nvl(getOriginalAttributeValue('PrimaryContactId'),0 as Long)
}
if(tipoAnterior=='PERSON'){
tipoClienteAnterior='PERSON'
if(idContactoAnterior==0){
idClienteAnterior=idContactoActual
}
else{
idClienteAnterior=idContactoAnterior
}
if(idCuentaActual!=0&&tipoActual!='')
cambioCliente=true
}
else if(tipoAnterior=='ORGANIZATION'){
tipoClienteAnterior='ORGANIZATION'
if(idCuentaAnterior==0){
idClienteAnterior=idCuentaActual
}
else{
idClienteAnterior=idCuentaAnterior
}
if(idContactoActual!=0&&tipoActual!='')
cambioCliente=true
}
else if(tipoActual=='ORGANIZATION'){
if(cambioCuenta){
tipoClienteAnterior='ORGANIZATION'
idClienteAnterior=idCuentaAnterior
cambioCliente=true
}
}
else if(tipoActual=='PERSON'){
if(cambioContacto){
tipoClienteAnterior='PERSON'
idClienteAnterior=idContactoAnterior
cambioCliente=true
}
}
}
if(idClienteAnterior!=0){
//println('Actualizar leads en cliente anterior, de tipo ' + tipoClienteAnterior +' con el iD de cliente ' +idClienteAnterior)
if(tipoClienteAnterior=='PERSON'||tipoClienteAnterior=='ORGANIZATION'){
def partys
if(tipoClienteAnterior=='ORGANIZATION'){
partys=newView('OrganizationProfile')
}
else if(tipoClienteAnterior=='PERSON'){
partys=newView('PersonProfile')
}
def partyc=newViewCriteria(partys)
def partyr=partyc.createRow()
def partyi=partyr.ensureCriteriaItem('PartyId')
partyi.setOperator('=')
partyi.setValue(idClienteAnterior)
partyc.insertRow(partyr)
partys.appendViewCriteria(partyc)
partys.executeQuery()
while(partys.hasNext()){
//println('Pude encontrar un registro dentro de la vista')
def party=partys.next()
def leadsAbiertos=nvl(party.LeadsAbiertos_c,0 as BigDecimal)
if(leadsAbiertos>0)
party.setAttribute('LeadsAbiertos_c',leadsAbiertos-1)
}
}
}
def fechaAsignacion
def statusTemporalidad
def oportunidadesAbiertas=0 as BigDecimal
if(cliente!=null){
oportunidadesAbiertas= nvl(cliente.OportunidadesAbiertas_c,0 as BigDecimal)
}
def previousOwnerId=nvl(getOriginalAttributeValue('OwnerId') as Long,0 as Long)
def cambioOwner=isAttributeChanged('OwnerId') && previousOwnerId!=ownerId
def cambioStatus=isAttributeChanged('StatusCode')
if((cambioOwner||cambioCliente||cambioStatus||oportunidadesAbiertas>0)){
//println('Determinar status temporalidad')
if(cambioOwner){
fechaAsignacion=today()
if(OverrideReassignment_c!='Y' && TipoCM_c=='CORPORATIVO'){
def mapCliente=[:]
if(idClienteAnterior!=0){
cliente.setAttribute('OwnerPartyId',ownerId)
cliente.setAttribute('OverrideReassignment_c','Y')
mapCliente.put('customerId',idClienteActual)
mapCliente.put('ownerId',ownerId)
mapCliente.put('tipoCliente',tipoActual)
adf.util.reasignarListaClientes([mapCliente])
}
}
}
statusTemporalidad=nvl(EstadoDeTemporalidad_c,'')
def currentOwnerId=nvl(OwnerId,0 as Long)
def usuarioGenericoId
def usuarioGenericoMasivo=adf.util.usuarioGenericoMasivo()
def usuarioGenericoCorporativo=adf.util.usuarioGenericoCorporativo()
if(TipoCM_c=='MASIVO'){
usuarioGenericoId=usuarioGenericoMasivo
}
if(TipoCM_c=='CORPORATIVO'){
usuarioGenericoId=usuarioGenericoCorporativo
}
def leadsAbiertos=0
if(cliente!=null)
leadsAbiertos=nvl(cliente.LeadsAbiertos_c,0 as BigDecimal)as Long
fechaAsignacion=nvl(FechaDeAsignacion_c,today())
def disponibleHasta=DisponibleHasta_c
if(!leadAbierto || currentOwnerId==usuarioGenericoMasivo || currentOwnerId==usuarioGenericoCorporativo||oportunidadesAbiertas>
//println('El status de la temporalidad no será ACTIVO')
if(!leadAbierto||oportunidadesAbiertas>0 ){
statusTemporalidad='INACTIVA'
if(cambioCliente&&leadAbierto&&oportunidadesAbiertas>0 &&OverrideReassignment_c!='Y'){
cliente.setAttribute('LeadsAbiertos_c',leadsAbiertos+1)
}
if(cambioStatus&&!leadAbierto){
def previousStatus=getOriginalAttributeValue('StatusCode')
if(previousStatus=='QUALIFIED'||previousStatus=='UNQUALIFIED'){
if(leadsAbiertos>0&&OverrideReassignment_c!='Y'){
cliente.setAttribute('LeadsAbiertos_c',leadsAbiertos-1)
}
}
}
}
else{
statusTemporalidad='DESASIGNADO'
}
if(currentOwnerId==usuarioGenericoMasivo || currentOwnerId==usuarioGenericoCorporativo){
if(cambioOwner){
if(previousOwnerId!=0){
setAttribute('UsuarioDesasignado_Id_c',adf.util.getResourceProfileId(previousOwnerId))
def team=MklLeadResources
while(team.hasNext()){
def member=team.next()
if(member.PartyId==previousOwnerId)
member.remove()
}
}
fechaAsignacion=today()
}
}
}
else{
//println('El Status será activo')
statusTemporalidad='ACTIVA'
disponibleHasta=DisponibleHasta_c
if(cambioStatus || cambioOwner || cambioCliente){
if((cambioStatus||cambioCliente)&&leadAbierto){
def previousStatus=getOriginalAttributeValue('StatusCode')
if(((cambioStatus&&(previousStatus=='RETIRED'||previousStatus=='CONVERTED'))||cambioCliente)&&cliente!=null &&OverrideRe
cliente.setAttribute('LeadsAbiertos_c',leadsAbiertos+1)
}
}
if(cambioOwner){
if((currentOwnerId==usuarioGenericoMasivo || currentOwnerId==usuarioGenericoCorporativo) &&previousOwnerId!=currentOwn
&&OverrideReassignment_c!='Y' &&cliente!=null ){
cliente.setAttribute('LeadsAbiertos_c',leadsAbiertos-1)
}
else if((previousOwnerId==usuarioGenericoMasivo || previousOwnerId==usuarioGenericoCorporativo) &&previousOwnerId!=curr
&&OverrideReassignment_c!='Y' &&cliente!=null ){
cliente.setAttribute('LeadsAbiertos_c',leadsAbiertos+1)
}
}
fechaAsignacion=today()
def fecha=date(2001,01,01)
def dias=adf.util.diasTemporalidad(nvl(TipoCM_c,''),'CUENTA','')
disponibleHasta=fechaAsignacion+dias.toInteger()
}
}
setAttribute('EstadoDeTemporalidad_c',statusTemporalidad)
setAttribute('DisponibleHasta_c',disponibleHasta)
if((previousOwnerId == usuarioGenericoMasivo || previousOwnerId == usuarioGenericoCorporativo) && (currentOwnerId != usuarioG
currentOwnerId != usuarioGenericoMasivo) ){
setAttribute('FechaDeAsignacion_c',fechaAsignacion)
}
map.put('usuarioGenericoId',usuarioGenericoId)
map.put('disponibleHasta',disponibleHasta)
}
if(OverrideReassignment_c=='Y'){
setAttribute('OverrideReassignment_c','N')
}
map.put('tipoActual',tipoActual)
map.put('statusTemporalidad',statusTemporalidad)
map.put('idClienteActual',idClienteActual)
map.put('idClienteAnterior',idClienteAnterior)
map.put('fechaAsignacion',fechaAsignacion)
map.put('leadAbierto',leadAbierto)
map.put('oportunidadesAbiertas',oportunidadesAbiertas)
map.put('cambioCliente',cambioCliente)
////println(''+map)
Expression
return true
def phoneNumber=nvl(PrimaryPhoneNumber,'0')
def areaCode=nvl(PrimaryPhoneAreaCode,'0')
def okFormat=phoneNumber.isInteger() && areaCode.isInteger()
if(!okFormat)
throw new oracle.jbo.ValidationException('El código de área y el número de teléfono sólo pueden tener caracteres numéricos. Favor de
en blanco,
return true guiones, ni ningún otro caracter que no sea número.')
if(getPrimaryRowState().isNew())
return true
if(nvl(TipoCliente_c,'')==''){
throw new oracle.jbo.ValidationException('El tipo de cliente es obligatorio')
}
if(TipoCliente_c=='PERSON'){
def contact=PersonDVO
}
return true
if(getPrimaryRowState().isNew())
return true
if(adf.util.usuarioAdministrador() || adf.util.usuarioAdministradorTemporalidad()){
return true
}
def cliente
if(TipoCliente_c=='ORGANIZATION'){
cliente=Cuenta_Obj_c
}
else if(TipoCliente_c=='PERSON'){
cliente=PersonDVO
}
def moc=nvl(TipoCM_c,'')
def genericoMasivo=adf.util.usuarioGenericoMasivo()
def genericoCorporativo=adf.util.usuarioGenericoCorporativo()
def ownerLead=nvl(OwnerId,0 as Long)
def tipoUsuario=adf.util.usuarioMasivoCorporativo()
def usuarioMasivo=tipoUsuario=='MASIVO'
def prevOwner=getOriginalAttributeValue('OwnerId')
if(cliente!=null && ownerLead!=genericoMasivo && ownerLead != genericoCorporativo &&prevOwner!= genericoMasivo && prevOw
adf.util.usuarioMasivoCorporativo()!='MASIVO'){
def ownerCliente=nvl(cliente.OwnerPartyId, 0 as Long)
if(ownerCliente==0){
def partys
def clienteId=0
if(TipoCliente_c=='ORGANIZATION'){
clienteId=nvl(Cuenta_Id_c, 0 as BigDecimal)
partys=newView('OrganizationProfile')
}
else if(TipoCliente_c=='PERSON'){
clienteId=nvl(PrimaryContactId, 0 as Long)
partys=newView('PersonProfile')
}
if(clienteId!=0){
def partyc=newViewCriteria(partys)
def partyr=partyc.createRow()
def partyi=partyr.ensureCriteriaItem('PartyId')
partyi.setOperator('=')
partyi.setValue(clienteId)
partyc.insertRow(partyr)
partys.appendViewCriteria(partyc)
partys.executeQuery()
while(partys.hasNext()){
def party=partys.next()
ownerCliente=party.OwnerPartyId
}
}
if(ownerCliente!=OwnerId){
throw new oracle.jbo.ValidationException('El Cliente ' + cliente.PartyUniqueName + ' le pertenece al ejecutivo ' + cliente.OwnerPart
}
}
}
def currentUsername=adf.context.getSecurityContext()?.getUserProfile()?.getUserID()
def resources=newView('Resource')
def resourcec=newViewCriteria(resources)
def resourcer=resourcec.createRow()
def resourcei=resourcer.ensureCriteriaItem('Username')
resourcei.setOperator('=')
resourcei.setValue(currentUsername)
resourcec.insertRow(resourcer)
resources.appendViewCriteria(resourcec)
resources.executeQuery()
def currentUserId
while(resources.hasNext()&¤tUserId==null){
def resource=resources.next()
currentUserId=resource.PartyId
}
if( isAttributeChanged('OwnerId')){
if(OwnerId!=currentUserId){
throw new oracle.jbo.ValidationException('Sólo los managers pueden asignar un lead a otros usuarios')
}
def usuarioDesasignadoId=nvl(UsuarioDesasignado_Obj_c?.PartyId,0 as Long)
if((prevOwner==genericoMasivo && tipoUsuario=='MASIVO' )||(prevOwner==genericoCorporativo && tipoUsuario=='CORPORATIV
def fechaNull=new Date(01,01,50)
def fechaAsignacion=nvl(FechaDeAsignacion_c,fechaNull)
if(usuarioDesasignadoId!=currentUserId || fechaAsignacion+15<today()){
return true
}
else{
throw new oracle.jbo.ValidationException('Este usuario no puede tomar el lead porque le fue desasignado en el pasado, hasta que
asignación')
}
}
else if(OwnerId!=prevOwner){
throw new oracle.jbo.ValidationException('No es posible tomar el lead porque está siendo gestionado por otro ejecutivo')
}
}
else{
if(OwnerId!=currentUserId){
def team=MklLeadResources
def partOfTeam=false
while(team.hasNext()&&!partOfTeam){
def member=team.next()
if(member.PartyId==currentUserId && !member.getPrimaryRowState().isNew()){
partOfTeam=true
}
}
if(!partOfTeam){
if(!adf.util.usuarioAdministradorTemporalidad()){
throw new oracle.jbo.ValidationException('No puedes modificar este lead porque no eres parte del equipo de trabajo')
}
}
}
}
return true
adf.source.isLookupIdValid('Canal_Id_c',newValue)
adf.source.isLookupIdValid('Origen_Id_c',newValue)
adf.source.isLookupIdValid('AsignacionMensual_Id_c',newValue)
adf.source.isLookupIdValid('Cuenta_Id_c',newValue)
adf.source.isLookupIdValid('UsuarioDesasignado_Id_c',newValue)
adf.source.isLookupIdValid('Contacto_Id_c',newValue)
adf.source.isLookupIdValid('Evento_Id_c',newValue)
adf.source.isLookupIdValid('OwnerAsignadoRegla_Id_c',newValue)
Expression
def con=adf.webServices.convertLead
def httpHeaders=['Content-Type':'application/vnd.oracle.adf.action+json']
con.requestHTTPHeaders=httpHeaders
def payload= [
"name": "convertLeadToOpty",
"parameters": [
[
"leadId": LeadId
]
]
]
con.POST(payload)
def moc=TipoCM_c
def tipoIdentificacion=nvl(TipoDeIdentificacion_c,'')
def numeroDocumento=nvl(NumeroDeDocumento_c,'')
def tipoCliente=nvl(TipoCliente_c,'')
if(tipoCliente=='' && tipoIdentificacion!=''){
if(tipoIdentificacion=='RE'){
tipoCliente='ORGANIZATION'
}
else if(tipoIdentificacion=='C'){
tipoCliente='PERSON'
}
else if(moc=='CORPORATIVO'){
tipoCliente='ORGANIZATION'
}
else if(moc=='MASIVO'){
tipoCliente='PERSON'
}
setAttribute('TipoCliente_c',tipoCliente)
}
if(tipoCliente=='PERSON'){
if(numeroDocumento!=''){
if(tipoIdentificacion=='R' &&!isAttributeChanged('RUCPersona_c')){
setAttribute('RUCPersona_c',numeroDocumento)
}
else if(tipoIdentificacion=='C' &&!isAttributeChanged('CedulaPersona_c')){
setAttribute('CedulaPersona_c',numeroDocumento)
}
else if(tipoIdentificacion=='P'&&!isAttributeChanged('PasaportePersona_c')){
setAttribute('PasaportePersona_c',numeroDocumento)
}
}
def R= nvl(RUCPersona_c,'')
def P= nvl(PasaportePersona_c,'')
def C=nvl(CedulaPersona_c,'')
if( R!='' || C!='' || P!=''){
if(C!=''){
setAttribute('TipoDeIdentificacion_c','C')
setAttribute('NumeroDeDocumento_c',CedulaPersona_c)
}
else if(P!=''){
setAttribute('TipoDeIdentificacion_c','P')
setAttribute('NumeroDeDocumento_c',PasaportePersona_c)
}
else if( R!=''){
setAttribute('TipoDeIdentificacion_c','R')
setAttribute('NumeroDeDocumento_c',RUCPersona_c)
}
}
}
if(tipoCliente=='ORGANIZATION'){
if(numeroDocumento!=''){
if(tipoIdentificacion=='R'&&!isAttributeChanged('RUCCliente_c')){
setAttribute('RUCCliente_c',numeroDocumento)
}
else if(tipoIdentificacion=='RE'&&!isAttributeChanged('RUCExternoCuenta_c')){
setAttribute('RUCExternoCuenta_c',numeroDocumento)
}
else if(tipoIdentificacion=='P'&&!isAttributeChanged('PasaporteCuenta_c')){
setAttribute('PasaporteCuenta_c',numeroDocumento)
}
}
def org=Cuenta_Obj_c
def RC= nvl(RUCCliente_c,'')
def REC= nvl(RUCExternoCuenta_c,'')
def PC= nvl(PasaporteCuenta_c,'')
if( RC!='' || REC!='' || PC!='') {
def tipoC=''
def numeroC=''
if( RC!=''){
tipoC= setAttribute('TipoDeIdentificacion_c','R')
numeroC =setAttribute('NumeroDeDocumento_c',RUCCliente_c)
}
else if(REC!=''){
tipoC= setAttribute('TipoDeIdentificacion_c','C')
numeroC= setAttribute('NumeroDeDocumento_c',RUCExternoCuenta_c)
}
else{
tipoC= setAttribute('TipoDeIdentificacion_c','P')
numeroC= setAttribute('NumeroDeDocumento_c',PasaporteCuenta_c)
}
}
}
def party
def newRow=getPrimaryRowState().isNew()
def cambioStatus=isAttributeChanged('StatusCode')
def setOportunidadAbierta=cambioStatus||newRow
def esPersona=TipoCliente_c=='PERSON'&&EnableCreateContact=='Y'
def esOrganizacion=TipoCliente_c=='ORGANIZATION'&&EnableCreateAccount=='Y'
if(setOportunidadAbierta&&(esPersona||esOrganizacion)){
if(esPersona){
party=PersonDVO
}
else if(Organization!=null){
party=Cuenta_Obj_c
}
if(party!=null){
def opAbiertas=nvl(party.OportunidadesAbiertas_c,0 as BigDecimal)
def statusAnterior=getOriginalAttributeValue('StatusCode')
if((StatusCode=='QUALIFIED'||StatusCode=='UNQUALIFIED')&&(newRow|| cambioStatus&&(statusAnterior=='RETIRED'||
statusAnterior=='CONVERTED'))){
opAbiertas+=1
}
else if((StatusCode=='CONVERTED'||StatusCode=='RETIRED')&& cambioStatus&&(statusAnterior=='UNQUALIFIED'||stat
{ opAbiertas-=1
}
party.setAttribute('OportunidadesAbiertas_c',opAbiertas as Integer)
}
}
def cuentaId=nvl(Cuenta_Id_c,0 as BigDecimal)
def contactoId=nvl(PrimaryContactId, 0 as Long)
def tipoCliente=nvl(TipoCliente_c,'')
def cuentaExistente=nvl(CrearCliente_c,'N')=='N'
def contactoExistente=nvl(CrearContacto_c,'N')=='N'
if(tipoCliente==''){
if(TipoCM_c=='CORPORATIVO'){
tipoCliente='ORGANIZATION'
}
else{
tipoCliente='PERSON'
}
setAttribute('TipoCliente_c',tipoCliente)
}
if(cuentaExistente){
setDatosCuenta()
}
if(contactoExistente){
setDatosContacto()
}
def cuentaId= nvl(Cuenta_Id_c, 0 as BigDecimal)
def cuentaExistente=nvl(CrearCliente_c,'N')=='N' &&cuentaId!=0
if(cuentaExistente){
def cuenta=Cuenta_Obj_c
if(cuenta==null){
def cuentas=newView('OrganizationProfile')
def cc=newViewCriteria(cuentas)
def cr=cc.createRow()
def ci=cr.ensureCriteriaItem('PartyId')
ci.setOperator('=')
ci.setValue(cuentaId)
cc.insertRow(cr)
cuentas.appendViewCriteria(cc)
cuentas.executeQuery()
while(cuentas.hasNext()){
cuenta=cuentas.next()
}
}
setAttribute('NombreComercial_c',cuenta.OrganizationName)
setAttribute('RazonSocial_c',cuenta.RazonSocial_c)
setAttribute('RUCCliente_c',cuenta.JgzzFiscalCode)
setAttribute('RUCExternoCuenta_c',cuenta.RUCExterno_c)
setAttribute('PasaporteCuenta_c',cuenta.Pasaporte_c)
}
def contactoId=nvl(PrimaryContactId, 0 as Long)
def contactoExistente=nvl(CrearContacto_c,'N')=='N' && contactoId!=0
if(contactoExistente){
println('CrearContacto_c:' + CrearContacto_c +', PrimaryContactId' + PrimaryContactId)
println('contactoExistente')
def contacto=PersonDVO
if(contacto==null){
def contactos=newView('PersonProfile')
def cc=newViewCriteria(contactos)
def cr=cc.createRow()
def ci=cr.ensureCriteriaItem('PartyId')
ci.setOperator('=')
ci.setValue(contactoId)
cc.insertRow(cr)
contactos.appendViewCriteria(cc)
contactos.executeQuery()
while(contactos.hasNext()){
contacto=contactos.next()
}
}
setAttribute('Nombres_c',contacto.PersonFirstName)
setAttribute('Apellidos_c',contacto.PersonLastName)
setAttribute('CedulaPersona_c',contacto.NumeroDeCedula_c)
setAttribute('PasaportePersona_c',contacto.NumeroDePasaporte_c)
setAttribute('RUCPersona_c',contacto.JgzzFiscalCode)
setAttribute('PrimaryContactEmailAddress',contacto.CorreoElectronico_c)
if(contacto.SalesProfileType=='ZCA_CONTACT'){
contacto.setAttribute('SalesProfileType','ZCA_PROSPECT')
}
def phones=contacto.Phone
def exit=false
println('Antes de teléfonos')
while(phones.hasNext()&&!exit){
def phone=phones.next()
setAttribute('PrimaryPhoneCountryCode',phone.PhoneCountryCode)
setAttribute('PrimaryPhoneAreaCode',phone.PhoneAreaCode)
setAttribute('PrimaryPhoneNumber',phone.PhoneNumber)
exit=true
}
println('Después de teléfonos')
}
def orgParties=newView('OrganizationParty')
def orgParty=orgParties.createRow()
orgParty.setAttribute('CreatedByModule','FUSE')
def organizationProfiles=orgParty.OrganizationProfile
def organizationProfile=organizationProfiles.createRow()
organizationProfile.setAttribute('OrganizationName',NombreComercial_c)
organizationProfile.setAttribute('RazonSocial_c',RazonSocial_c)
organizationProfile.setAttribute('JgzzFiscalCode',RUCCliente_c)
organizationProfile.setAttribute('RUCExterno_c',RUCExternoCuenta_c)
organizationProfile.setAttribute('Pasaporte_c',PasaporteCuenta_c)
organizationProfile.setAttribute('IdLeadProgenitor_c',LeadId)
organizationProfile.setAttribute('CreatedByModule','FUSE')
organizationProfile.setAttribute('OwnerPartyId',OwnerId)
organizationProfiles.insertRow(organizationProfile)
def usageAssignments=orgParty.PartyUsageAssignment
def usageAssignment=usageAssignments.createRow()
usageAssignment.setAttribute('CreatedByModule','FUSE')
usageAssignment.setAttribute('PartyUsageCode','SALES_PROSPECT')
usageAssignments.insertRow(usageAssignment)
orgParties.insertRow(orgParty)
println('PARTYID De cuenta creada!!:'+orgParty.PartyId)
setAttribute('IdCuentaCreada_c',orgParty.PartyId)
def personParties=newView('PersonParty')
def personParty=personParties.createRow()
personParty.setAttribute('CreatedByModule','FUSE')
def personProfiles=personParty.PersonProfile
def personProfile=personProfiles.createRow()
personProfile.setAttribute('CreatedByModule','FUSE')
personProfile.setAttribute('PersonFirstName',Nombres_c)
personProfile.setAttribute('PersonLastName',Apellidos_c)
personProfile.setAttribute('NumeroDeCedula_c',CedulaPersona_c)
personProfile.setAttribute('NumeroDePasaporte_c',PasaportePersona_c)
personProfile.setAttribute('JgzzFiscalCode',RUCPersona_c)
personProfile.setAttribute('CorreoElectronico_c',PrimaryContactEmailAddress)
personProfile.setAttribute('SalesProfileType','ZCA_PROSPECT')
personProfile.setAttribute('IdLeadProgenitor_c',LeadId)
personProfile.setAttribute('OwnerPartyId',OwnerId)
if(SistemaOrigen_c == 'RESPONSYS'){
//personProfile.setAttribute('IdentificadorExterno_c',IdentificadorExterno_c)
println('Ejecutando requerimiento RESPONSYS')
//println(Canal_Id_c)
//println(Origen_Id_c)
personProfile.setAttribute('CanalDeVenta_Id_c', Canal_Id_c)
personProfile.setAttribute('OrigenDeVenta_Id_c', Origen_Id_c)
personProfile.setAttribute('CondicionesResponsys_c', 'Y')
}
def countryCode=nvl(PrimaryPhoneCountryCode,'')
def areaCode=nvl(PrimaryPhoneAreaCode,'')
def number=nvl(PrimaryPhoneNumber,'')
if(countryCode!=''&&areaCode!=''&&number!=''){
def phones =personProfile.Phone
def phone=phones.createRow()
phone.setAttribute('PhoneCountryCode',PrimaryPhoneCountryCode)
phone.setAttribute('PhoneAreaCode',PrimaryPhoneAreaCode)
phone.setAttribute('PhoneNumber',PrimaryPhoneNumber)
phone.setAttribute('PhoneType','MOBILE')
phone.setAttribute('CreatedByModule','FUSE')
phones.insertRow(phone)
}
personProfiles.insertRow(personProfile)
def usageAssignments=personParty.PartyUsageAssignment
def usageAssignment=usageAssignments.createRow()
usageAssignment.setAttribute('CreatedByModule','FUSE')
usageAssignment.setAttribute('PartyUsageCode','SALES_PROSPECT')
usageAssignments.insertRow(usageAssignment)
usageAssignment=usageAssignments.createRow()
usageAssignment.setAttribute('CreatedByModule','FUSE')
usageAssignment.setAttribute('PartyUsageCode','CONTACT')
usageAssignments.insertRow(usageAssignment)
personParties.insertRow(personParty)
setAttribute('Contacto_Id_c',personParty.PartyId)
if(CrearCliente_c=='Y'){
println('ENTRE A LOGICA DE CREAR CLIENTE UWU')
crearCuenta()
}
if(CrearContacto_c=='Y'){
crearContacto()
}
def optys=newView('OpportunityVO')
def opty=optys.createRow()
opty.setAttribute('AreaComercial_c','TipoCM_c')
opty.setAttribute('Name',Name +' '+ today())
opty.setAttribute('CanalObjC_Id_c',Canal_Id_c)
opty.setAttribute('Origen_Id_c',Origen_Id_c)
opty.setAttribute('OwnerResourcePartyId',OwnerId)
opty.setAttribute('PrimaryOrganizationId',BusinessUnitId)
optys.insertRow(opty)
def optyLeads=opty.OpportunityLead
//def optyLeads=newView('OpportunityLeadVO')
def optyLead=optyLeads.createRow()
//optyLead.setAttribute('OptyId',opty.OptyId)
optyLead.setAttribute('LeadId',LeadId)
optyLeads.insertRow(optyLead)
setAttribute('StatusCode','CONVERTED')
setAttribute('Estado_c','CONVERTIDO')
def leadOptys=LeadOpportunity
while(leadOptys.hasNext()){
def leadOpty=leadOptys.next()
def optys=newView('OpportunityVO')
def optyc=newViewCriteria(optys)
def optyr=optyc.createRow()
def optyi=optyr.ensureCriteriaItem('OptyId')
optyi.setOperator('=')
optyi.setValue(leadOpty.OptyId)
optyc.insertRow(optyr)
optys.appendViewCriteria(optyc)
optys.executeQuery()
while(optys.hasNext()){
def opty=optys.next()
opty.hererdarInformacionLead()
}
}
def errorMsg=''
def errorCount=0
def Espacios = 0
if(nvl(NombreComercial_c,'')=='' &&TipoCM_c=='CORPORATIVO'){
errorMsg='El campo Nombre Comercial es requerido para crear una cuenta. '
errorCount+=1
}
if(nvl(RazonSocial_c,'')==''){
errorMsg+='El campo Razón social es requerido para crear una cuenta. '
errorCount+=1
if(TipoCM_c=='MASIVO'){
setAttribute('NombreComercial_c',RazonSocial_c)
}
}
def NumPasaporte = nvl(PasaporteCuenta_c,'')
def NumRuc = nvl(RUCCliente_c,'')
def NumRucExt = nvl(RUCExternoCuenta_c,'')
}else{
if (NumRucExt !=''){
for (int i = 0; i < NumRucExt.length(); i++) {
if (NumRucExt.charAt(i) == ' ') {Espacios++;}
}
} }}
if (Espacios >0){
throw new oracle.jbo.ValidationException('El número de documento no puede contener espacios.')
}
adf.util.validarFormatoDoc('P', nvl(PasaporteCuenta_c,''))
}
catch(Exception e){
errorMsg+=' '+ e.message
errorCount+=1
}
if(errorCount>0){
throw new oracle.jbo.ValidationException(errorMsg)
}
/*def tipoDocumento =''+nvl(TipoDeIdentificacion_c,'');
def numeroDocumento=''+nvl(NumeroDeDocumento_c,'');
if((TipoDeIdentificacion_c=='R'||TipoDeIdentificacion_c=='C')&&numeroDocumento!='' ){
def nomEjecutivo=''+nvl(OwnerPartyName,'');
def status=adf.util.validaClienteNetplus(tipoDocumento,numeroDocumento)
}
*/
def errorMsg=''
def errorCount=0
def Espacios = 0
if(nvl(Nombres_c,'')=='' || nvl(Apellidos_c,'')==''){
errorMsg='Es necesario especificar Nombres y Apellidos para poder crear un contacto. '
errorCount+=1
}
if(nvl(PrimaryPhoneNumber,'')=='' &&nvl(PrimaryContactEmailAddress,'')==''){
errorMsg+='Es necesario especificar un teléfono o un correo electrónico para poder crear un contacto. '
errorCount+=1
}
def NumPasaporte = nvl(PasaportePersona_c,'')
def NumRuc = nvl(RUCPersona_c,'')
def NumCedula = nvl(CedulaPersona_c,'')
}else{
if (NumCedula !=''){
for (int i = 0; i < NumCedula.length(); i++) {
if (NumCedula.charAt(i) == ' ') {Espacios++;}
}
}}}
if (Espacios >0){
throw new oracle.jbo.ValidationException('El número de documento no puede contener espacios.')
}
adf.util.validarFormatoDoc('P',nvl(PasaportePersona_c,''))
}
catch(Exception e){
errorMsg+=' '+ e.message
errorCount+=1
}
if(errorCount>0){
throw new oracle.jbo.ValidationException(errorMsg)
}
/*def tipoDocumento =''+nvl(TipoDeIdentificacion_c,'');
def numeroDocumento=''+nvl(NumeroDeDocumento_c,'');
if((TipoDeIdentificacion_c=='R'||TipoDeIdentificacion_c=='C')&&numeroDocumento!='' ){
def nomEjecutivo=''+nvl(OwnerPartyName,'');
def organizations = newView('OrganizationProfile');
def organizationc = newViewCriteria(organizations);
def organizationr = organizationc.createRow();
def organizationi = organizationr.ensureCriteriaItem('NumeroDeDocumento_c');
organizationi.setOperator('=');
organizationi.setValue(numeroDocumento);
def organizationj=organizationr.ensureCriteriaItem('TipoDeDocumento_c')
organizationj.setOperator('=')
organizationj.setValue(tipoDocumento)
organizationc.insertRow(organizationr);
organizations.appendViewCriteria(organizationc);
organizations.executeQuery();
while (organizations.hasNext()) {
def curRow = organizations.next()
if(''+PartyId!=''+curRow.PartyId){
throw new oracle.jbo.ValidationException(''+'El numero de '+getSelectedListDisplayValue('TipoDocumento_c') + ' ya exi
'+curRow.organizationName+'
} del usuario '+curRow.OwnerPartyName);
}
def status=adf.util.validaClienteNetplus(tipoDocumento,numeroDocumento)
}
*/
if(!adf.util.usuarioAdministrador()){
return false
}
/*def phoneNumber=nvl(PrimaryPhoneNumber,'0')
def areaCode=nvl(PrimaryPhoneAreaCode,'0')
def okFormat=phoneNumber.isInteger() && areaCode.isInteger()
if(!okFormat)
return false*/
if(nvl(TipoCliente_c,'')=='' && (StatusCode=='QUALIFIED'||StatusCode=='UNQUALIFIED')){
return false
}
return true
def map=[:]
if(leadValido()){
def usuarioGenericoId
def moc=nvl(TipoCM_c,'')
if(moc=='MASIVO'){
usuarioGenericoId=adf.util.usuarioGenericoMasivo()
}
else if(moc=='CORPORATIVO'){
usuarioGenericoId=adf.util.usuarioGenericoCorporativo()
}
def tipoCliente=nvl(TipoCliente_c,'')
if(tipoCliente!=''){
def cliente
def clienteId
if(tipoCliente=='PERSON'){
cliente=PersonDVO
clienteId=PrimaryContactId
}
else if(tipoCliente=='ORGANIZATION'){
cliente=Cuenta_Obj_c
clienteId=Cuenta_Id_c
}
if(cliente!=null){
if(cliente.filaValida()&&TipoCM_c=='CORPORATIVO'){
if(cliente.LeadsAbiertos_c==1 &&nvl(cliente.OportunidadesAbiertas_c,0 as BigDecimal)==0){
cliente.setAttribute('OwnerPartyId',usuarioGenericoId)
cliente.setAttribute('OverrideReassignment_c','Y')
map.put('customerId',clienteId)
map.put('ownerId',usuarioGenericoId)
map.put('tipoCliente',tipoCliente)
map.put('PartyUniqueName',cliente.PartyUniqueName)
return [map]
}
else{
setAttribute('OwnerId',usuarioGenericoId)
setAttribute('OverrideReassignment_c','Y')
cliente.setAttribute('LeadsAbiertos_c',nvl(cliente.LeadsAbiertos_c,0 as BigDecimal)-1)
cliente.setAttribute('OverrideReassignment_c','Y')
return []
}
}
else{
setAttribute('OwnerId',usuarioGenericoId)
setAttribute('OverrideReassignment_c','Y')
}
}
else{
setAttribute('OwnerId',usuarioGenericoId)
setAttribute('OverrideReassignment_c','Y')
}
map.put('leadName',Name)
}
}
return [map]
def tipoActual=nvl(TipoCliente_c,'')
def idClienteActual
if(tipoActual=='PERSON'){
idClienteActual=nvl(PrimaryContactId,0 as Long)
}
else if(tipoActual=='ORGANIZATION'){
idClienteActual=nvl(Cuenta_Id_c, 0 as BigDecimal)
}
if(OverrideReassignment_c!='Y' && TipoCM_c!='MASIVO'){
adf.util.reasignarCliente(tipoActual,idClienteActual,OwnerId,LeadId)
}
else{
setAttribute('OverrideReassignment_c','N')
}
def existeCuenta=false
def docCuenta=''
def rucCuenta=nvl(RUCCliente_c,'')
def pasaporteCuenta=nvl(PasaporteCuenta_c,'')
def rucExterno=nvl(RUCExternoCuenta_c,'')
def numDoc=''
def tipoDocumento=''
def campo=''
if(rucCuenta!='' || rucExterno!='' || pasaporteCuenta!=''){
if(rucCuenta!=''){
numDoc=rucCuenta
tipoDocumento='R'
campo='JgzzFiscalCode'
}else if(rucExterno!=''){
numDoc=rucExterno
tipoDocumento='RE'
campo='RUCExterno_c'
}
else{
numDoc=pasaporteCuenta
tipoDocumento='P'
campo='Pasaporte_c'
}
}
else{
throw new oracle.jbo.ValidationException('Es necesario capturar el RUC, RUC Externo, o Pasaporte para la cuenta')
}
def accounts=newView('OrganizationProfile')
def acc=newViewCriteria(accounts)
def accr=acc.createRow()
def acci;
acci=accr.ensureCriteriaItem(campo)
acci.setOperator('=')
acci.setValue(numDoc)
acc.insertRow(accr)
accounts.appendViewCriteria(acc)
accounts.executeQuery()
while(accounts.hasNext()){
def account=accounts.next()
def partyId=nvl(account.PartyId,0 as Long)
if(partyId!=0){
setAttribute('CrearCliente_c','N')
setAttribute('Cuenta_Id_c',partyId)
existeCuenta=true
}
}
return existeCuenta
def existeContacto=false
def docContacto=''
def rucContacto=nvl(RUCPersona_c,'').trim()
def pasaporteContacto=nvl(PasaportePersona_c,'').trim()
def cedula=nvl(CedulaPersona_c,'').trim()
def numDoc=''
def tipoDocumento=''
def campo=''
if(rucContacto!='' || cedula!='' || pasaporteContacto!=''){
if(rucContacto!=''){
numDoc=rucContacto
tipoDocumento='R'
campo='JgzzFiscalCode'
}else if(cedula!=''){
numDoc=cedula
tipoDocumento='C'
campo='NumeroDeCedula_c'
}
else{
numDoc=pasaporteContacto
tipoDocumento='P'
campo='NumeroDePasaporte_c'
}
}
else{
throw new oracle.jbo.ValidationException('Es necesario capturar el RUC, la Cédula o el Pasaporte para el contacto')
}
def contacts=newView('PersonProfile')
def con=newViewCriteria(contacts)
def conr=con.createRow()
def coni;
coni=conr.ensureCriteriaItem(campo)
coni.setOperator('=')
coni.setValue(numDoc)
con.insertRow(conr)
contacts.appendViewCriteria(con)
contacts.executeQuery()
while(contacts.hasNext()){
def contact=contacts.next()
def partyId=nvl(contact.PartyId,0 as Long)
println('contactPartyId: '+partyId)
if(partyId!=0){
println('antes de setAttribute CrearContacto_c')
setAttribute('CrearContacto_c','N')
println('antes de setAttribute PrimaryContactId')
setAttribute('PrimaryContactId',partyId)
existeContacto=true
}
}
println('existeContacto:' + existeContacto)
return existeContacto
if(TipoCM_c=='MASIVO'){
def idClienteActual=0
def tipoActual=nvl(TipoCliente_c,'')
def idCuentaActual=nvl(Cuenta_Id_c,0 as BigDecimal)
def idContactoActual=nvl(PrimaryContactId,0 as Long)
println('tipoActual:'+tipoActual)
def cliente
def skipValidation=false
if(tipoActual=='PERSON'){
if(CrearContacto_c=='Y'){
skipValidation=true
}
idClienteActual=idContactoActual
cliente=PersonDVO
}
else if(tipoActual=='ORGANIZATION'){
if(CrearCliente_c=='Y'){
skipValidation=true
}
idClienteActual=idCuentaActual
cliente=Cuenta_Obj_c
}
if(!skipValidation){
def idCanalActual=nvl(Canal_Id_c, 0 as BigDecimal) as Long
if(cliente.OwnerPartyId!=OwnerId){
throw new oracle.jbo.ValidationException('No puedes convertir este lead porque el cliente le pertenece a otro ejecutivo
}
}
}
def clienteId
if(TipoCliente_c=='PERSON'){
clienteId= PrimaryContactId
}
else if(TipoCliente_c=='ORGANIZATION'){
clienteId= Cuenta_Id_c as Long
}
println(''+clienteId)
return clienteId
def telEloqua=nvl(TelefonoEloqua_c,'').trim()
if(telEloqua!=''){
def length=telEloqua.length()
if(telEloqua.substring(0,3)=='593'&&length>6){
setAttribute('PrimaryPhoneCountryCode','593')
setAttribute('PrimaryPhoneAreaCode',telEloqua.substring(3,5))
setAttribute('PrimaryPhoneNumber',telEloqua.substring(5,length))
}
else if(length>3){
setAttribute('PrimaryPhoneCountryCode','593')
setAttribute('PrimaryPhoneAreaCode',telEloqua.substring(0,2))
setAttribute('PrimaryPhoneNumber',telEloqua.substring(2,length))
}
}
No if(!
Groovy Function oracle.apps.crmCommon.extensibility.con
return false;
Name :HeredarDatos
Description : isAttributeChanged('StatusCode')&&Statu
Execution Schedule : 0:Days:After:
Function Display Name :
heredarDatosOportunidad
Groovy Function
Name :CovertirLead
Description :
Execution Schedule : 0:Days:After:
Function Display Name : ConversionLeads
TipoCliente_c=='PERSON'
TipoCliente_c=='PERSON'
MASIVO; StatusCode=='CONVERTED'
MASIVO; nvl(TipoCliente_c,'')=='PERSON'
MASIVO;
StatusCode=='CONVERTED'
nvl(TipoCliente_c,'')=='PERSON'
Precision MaxLength Expression
80 80
18 18
120 120
80 80
1500 1500
1500 1500
1500 1500
1500 1500
18 18
10 10
18 18
1500 1500
80 80
80 80
80 80
1500 1500
80 80
1500 1500
1500 1500
10 10
1500 1500
1500 1500
1500 1500
1500 1500
80 80
10 10
20 20
1500 1500
0 0
1500 1500
1500 1500
80 80
1500 1500
18 18
18 18
1500 1500
80 80
80 80
80 80
200 200
80 80
10 10
24 24
1500 1500
80 80
0 0 def estadoTemporalidad=nvl(E
def disponibleHasta=Disponib
def txt=''
def cliente
if(TipoCliente_c=='PERSON'){
cliente=PersonDVO
}
if(TipoCliente_c=='ORGANIZA
cliente=Cuenta_Obj_c
}
if(cliente==null){
return 'La temporalidad no apl
}
def optysAbiertas=nvl(cliente.
if(estadoTemporalidad=='FINA
txt='La temporalidad ya no apl
}
else if(estadoTemporalidad=='
txt='Este lead se encuentra di
}
else if(estadoTemporalidad=
txt='Este lead ya fue desasig
}
else if(optysAbiertas>0){
txt='La temporalidad no aplica
}
else{
txt='La temporalidad no aplica
}
return txt
80 80
80 80
1500 1500
80 80
80 80
1500 1500
200 200
10 10
0 0
1500 1500
1500 1500
80 80
0 0 CreationDate-today()
80 80
1500 1500
18 18
1500 1500
0 0 def nullDate= new Date(1900,0
def fechaAsig=nvl(FechaDeAsi
if(fechaAsig==nullDate){
return 0
}
else{
return today()-fechaAsig
}
0 0 ''+LeadId
1500 1500
0 0
80 80
18 18
24 24
80 80
18 18
80 80
10 10
10 10
1500 1500
1500 1500
1500 1500
80 80
+"' está duplicado en la cuenta '"+accounte.OrganizationName+"'")
Baja_c') || isAttributeChanged('SubMotivoDeBaja_c') ){
)) {
gitud')
vo) &&previousOwnerId!=currentOwnerId
rporativo) &&previousOwnerId!=currentOwnerId
ivo) && (currentOwnerId != usuarioGenericoCorporativo &&
suarios')
statusAnterior=='UNQUALIFIED'||statusAnterior=='QUALIFIED'))
d)
uenta. '
er espacios.')
'' ){
to. '
crear un contacto. '
ntacto. '
er espacios.')
'' ){
yValue('TipoDocumento_c') + ' ya existe en el contacto
D')){
cimal)==0){
l)-1)
, o Pasaporte para la cuenta')
el Pasaporte para el contacto')
l cliente le pertenece a otro ejecutivo')
ression
le.apps.crmCommon.extensibility.content.adf.data.util.ExtensibilityGro
urn false;
urn true;
le.apps.crmCommon.extensibility.content.adf.data.util.ExtensibilityGro
urn false;
ributeChanged('StatusCode')&&StatusCode=='CONVERTED'
le.apps.crmCommon.extensibility.content.adf.data.util.ExtensibilityGro
urn false;
Custom Fields
Name Display Name Type Column Name
RecordName Autonum OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
CurrencyCode Currency Code FCL CURRENCY_CODE
LastUpdatedBy Actualizado por OOTB LAST_UPDATED_BY
CreatedBy Creado por OOTB CREATED_BY
OraZcxOwner_c Owner DCL
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Object Workflows
Name Definition Name Event Point Description
MapeoFormaTipoPago_c_St Create
andard_Create
MapeoFormaTipoPago_c_St Delete
andard_Delete
MapeoFormaTipoPago_c_St Update
andard_Update
MapeoFormaTipoPago_c_St Update
andard_Update
MapeoFormaTipoPago_c
Mapeo Formas - Tipos de Pago
Custom
CRM
HZ_REF_ENTITIES
{0000}
12
0
0
0
3
1
0
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
ression
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
Object Name : MklLeadResources
Object Name MklLeadResources
Object Display Name Plural Recursos de oportunidad pote
Object Type OOTB
Application Name CRM
Table Name MKL_LEAD_RESOURCES
Child Object Yes
Parent Object Name Lead
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Standard Fields
Name Display Name Help Text
RoleName Puesto
LeadResources
ursos de oportunidad potencial de venta
B
M
_LEAD_RESOURCES
d
0
0
0
0
0
0
0
Searchable
No
Object Name : NodoWifi_c
Object Name NodoWifi_c
Object Display Name Plural Nodo wifi
Object Type Custom
Application Name CRM
Table Name SVC_REF_ENTITIES
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Custom Fields
Name Display Name Type Column Name
RecordName Código OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
CurrencyCode Currency Code FCL CURRENCY_CODE
LastUpdatedBy Actualizado por OOTB LAST_UPDATED_BY
CreatedBy Creado por OOTB CREATED_BY
OraZcxOwner_c Owner DCL
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Rule1 Field Validation
Field Name : Oportunidad_Id_c
Object Workflows
Name Definition Name Event Point Description
NodoWifi_c_Standard_Upda Update
te
NodoWifi_c_Standard_Delet Delete
e
NodoWifi_c_Standard_Creat Create
e
NodoWifi_c
Nodo wifi
Custom
CRM
SVC_REF_ENTITIES
14
0
0
0
3
2
0
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
adf.source.isLookupIdValid('Oportunidad_Id_c',newValue)
ression
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
Object Name : OLT_c
Object Name OLT_c
Object Display Name Plural OLT
Object Type Custom
Application Name CRM
Table Name SVC_REF_ENTITIES
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Custom Fields
Name Display Name Type Column Name
RecordName Código OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
CurrencyCode Currency Code FCL CURRENCY_CODE
LastUpdatedBy Actualizado por OOTB LAST_UPDATED_BY
CreatedBy Creado por OOTB CREATED_BY
OraZcxOwner_c Owner DCL
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Rule1 Field Validation
Field Name : Oportunidad_Id_c
Object Workflows
Name Definition Name Event Point Description
OLT_c_Standard_Update Update
OLT_c_Standard_Delete Delete
OLT_c_Standard_Create Create
OLT_c
OLT
Custom
CRM
SVC_REF_ENTITIES
14
0
0
0
3
2
0
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
adf.source.isLookupIdValid('Oportunidad_Id_c',newValue)
ression
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
Object Name : Opportunity
Object Name Opportunity
Object Display Name Plural Oportunidades
testEtapaVentas(CMV o MMV
Object Description
etapa de ventas(1 a 6)
Object Type OOTB
Application Name CRM
Table Name MOO_OPTY
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Standard Fields
Name Display Name Help Text
RcmndWinProb Probabilidad de éxito
StageStatusCd Estado
Comments Comentarios
AccountName Cliente
Custom Fields
Name Display Name Type Column Name
AnchoDeBanda_c Ancho de banda DCL
Triggers
Name Type Trigger PointDescription Error Message Expression
Tipo_de_forma_de_pa Field Trigger Modify return true
go Field Name : def formaPagoId=nv
FormaDePagoDin_Id if(formaPagoId==0
setAttribute('Tipo
}
else{
setAttribute('Tipo
}
Reset_Planes Field Trigger Modify setAttribute('UltimaM
Field Name : setAttribute('NodoW
Plan_Id_c setAttribute('IPRadio
setAttribute('AnchoD
setAttribute('OLT_c',
setAttribute('Splitter
setAttribute('GrupoD
setAttribute('ColorD
setAttribute('Bucket_
setAttribute('Codigo
setFormaDePagoDin Field Trigger Modify def formaPagoCode
Field Name : if(formaPagoCode!=
FormaDePagoFixed_ def formaPagoAnte
if(formaPagoAnteri
if(formaPagoAnte
setAttribute('For
formaPagoAnter
}
}
def tipoFormaPago
def formasPago=
def formaPagoR
formaPagoRow.s
formaPagoRow.s
formaPagoRow.s
formaPagoRow.s
formaPagoRow.s
formasPago.inse
setAttribute('For
setAttribute('Tip
}
else{
FormaDePagoDin_
setAttribute('Forma
setAttribute('TipoFo
}
setAttribute('UltimaM
setAttribute('NodoW
setAttribute('IPRadio
setAttribute('AnchoD
setAttribute('OLT_c',
setAttribute('Splitter
setAttribute('GrupoD
setAttribute('ColorD
setAttribute('Bucket_
setAttribute('Codigo
Tipo_Forma_Pago Field Trigger Modify def TipoformaPago=
Field Name : //def TipoCuenta =
TipoFormaPago_c
if(TipoFormaPago_c
setAttribute('Banco
}
if(TipoformaPago ==
setAttribute('TipoD
if(TipoformaPago ==
setAttribute('TipoD
}
if(TipoformaPago ==
setAttribute('TipoD
}
if(TipoformaPago ==
setAttribute('TipoDe
}
borrar_isla Field Trigger Modify if(Origen_Id_c==100
Field Name :
Origen_Id_c }
else{
setAttribute('Isla_c'
}
InitOptyCreate Object Trigger Create def moc=adf.util.usu
setAttribute('AreaCo
def method=adf.util
if(moc=='MASIVO'){
method=adf.util.ge
}
setAttribute('SalesM
if(moc=='MASIVO'){
setAttribute('CustP
}
else{
setAttribute('CustP
}
def cliente
if(Organization!=nul
cliente=Organizatio
}
else if(Person!=null){
cliente=Person
}
if(cliente!=null){
if(cliente.SalesProfi
setAttribute('Prim
}
}
controlInsert Object Trigger BeforeInsert setAttribute('WinPro
println('INS OPTY')
def moc=nvl(AreaCo
def method=adf.util
if(moc=='MASIVO'){
method=adf.util.ge
}
setAttribute('SalesM
getDatosOwner()
getDatosCliente()
//InsertarHistoricoE
Temporalidad_INS Object Trigger BeforeInsert if(OwnerResourcePa
validaOwner()
}
def party
def newRow=getPrim
def ownerChanged=
def setOportunidadA
def tipoCliente=''
def tamanioOportun
if(Tipo_c=='PROYEC
tamanioOportunid
}
setAttribute('Tamani
if(setOportunidadAb
if(Person!=null){
party=Person
tipoCliente='PERS
}
else if(Organization
party=Organizatio
tipoCliente='ORG
}
def fecha=date(2010
setAttribute('FechaD
def fechaAsign=nvl(
if(fechaAsign!=fecha
def dias=adf.util.di
println('dias:'+dias)
setAttribute('Dispo
setAttribute('Estado
}
else{
setAttribute('Dispo
}
if(party!=null){
def opAbiertas=n
if(party?.SalesProfil
if(StatusCode=='O
opAbiertas+=1
}
else if(!newRow){
opAbiertas-=1
}
party.setAttribute
}
else if(party?.SalesP
party?.setAttribute
setAttribute('Estad
setAttribute('Disp
}
setAttribute('Oport
}
MatrizCambioEtapas Object Trigger BeforeUpdate def acepOferta = ge
def docOferta = get
def emContrato = g
def docContrato = g
def docHoja = getAt
def envOpp = getAt
def envCliente = get
def codNetPlus=get
def nombreOferta=g
def asesorPreventa=
def segmentacion=
def segmentacionS=
def segmentacionU=
def segmentacionfec
def capacidadpago=
def formasdepago=
def RegistraTCA= ge
def resultadomodelo
def clientecastigado
def clientedeuda= g
def fechanull= null
def fecha = nvl(Fech
def valoractual= Sal
def oldvalor= getOr
if(isAttributeChange
if((CanalObjC_Id_c=
throw new oracle.
}
def MetodoVentaCM
def MetodoVentaMM
if(SalesMethodId==
def cmvetapa1=G
def cmvetapa2=G
def cmvetapa3=G
def cmvetapa4=G
def cmvetapa5=G
def cmvetapa6=G
// throw new ora
if(oldvalor==cmve
setAttribute('Sale
throw new oracle
}
else if(oldvalor==
}
else if(oldvalor==
}
else if(oldvalor==
if(Tipo_c=='PROY
if(nvl(EjecutivoPr
setAttribute('Sa
throw new orac
de Preventa.')
}
def actividades =
def act = newVie
def row = act.cre
def vrc = row.en
vrc.setOperator('
vrc.setValue('TAS
def vrc1 = row.e
vrc1.setOperator
vrc1.setValue(Op
act.insertRow(ro
actividades.appe
actividades.execu
def countPreven
def countSolucio
def tipoText=''
while (actividade
def actividad =
def tipoActivida
def estado= ac
def outcome=n
if(tipoActividad
if(tipoActividad=='
if(estado=='C
countPreve
}
tipoText='pre
}
else{
if(outcome==
countSoluci
}
tipoText='so
}
def nameact=
def idoportun
if(estado!='CO
setAttribute(
//throw new
if(tipoActivid
throw new ora
}
if(tipoActivid
throw new ora
}
}
}
}
if(countPreventa
setAttribute('Sa
if(countPrevent
throw new ora
de etapa
} ')
else if(countPre
throw new ora
para }poder avanzar
else{
throw new ora
diseño } y una activid
}
def archivo=Atta
def count=0
while(archivo.has
def att=archivo
count+=1
}
if(count< 1){
setAttribute('Sa
throw new orac
}
}
}
else if(oldvalor==
if(nvl(nombreOfe
setAttribute('Sale
throw new oracle
}
if(acepOferta!='
setAttribute('Sa
throw new ora
}
if(docOferta!='Y'
setAttribute('Sa
throw new ora
}
}
else if(oldvalor==
if( emContrato!=
setAttribute('Sa
throw new orac
}
if(nvl(CodigoNet
setAttribute('Sa
throw new orac
}
if(nvl(CodigoNe
setAttribute('Sa
throw new orac
}
}
else if(oldvalor==
if(StatusCode!='W
setAttribute('Sa
throw new orac
}
}
else if(oldvalor==
}
else if(oldvalor==cm
}
else if(oldvalor==cm
}
/* else if(oldvalor=
}
else if(oldvalor==
}
else if(oldvalor==
}
else if(oldvalor==
}*/
else {
setAttribute('Sale
throw new orac
}
historicoCambio
}
else if(SalesMethod
def cmmetapa1=G
def cmmetapa2=G
def cmmetapa3=G
def cmmetapa4=G
def cmmetapa5=G
if(oldvalor==cmm
if(nvl(segmentac
if(nvl(Coordena
setAttribute('Sa
throw new orac
}
setAttribute('Sa
throw new ora
}
if( segmentacion
ScoreContactPro
}
}
else if(oldvalor==
if(Person!=''){
def telColeccion
def sinTel = tru
def cont=0;
def mobile=fals
def work=false
while (telColecc
def ps = telCo
def type=nvl(p
if((type=='MO
cont+=1
}
}
if(cont<2){
setAttribute('Sa
throw new orac
}
}
if(MetrosEstimad
nvl(PisosDeEdificacio
setAttribute('Sa
throw new orac
edificación')
}
if(RequiereEscale
if(nvl(AlturaDe
setAttribute('SalesSt
throw new oracle.jbo
}
}
if(nvl(FechaEnvio
setAttribute('Sal
throw new oracle
}
}
else if(oldvalor==
if(nvl(SubEstado_
if(SubEstado_c!
setAttribute('Sa
throw new oracle.jb
encuentra
} Validado.
}
}
else if(oldvalor==
if(nvl(IDTicketCo
setAttribute('Sa
throw new orac
}
}
else {
setAttribute('Sale
throw new oracle
}
historicoCambio
}
}
*/
validarColeccionC
def errorList=[]
def errorCount=0
def errorMessage
def tipodocument
if(tipodocumento
errorList.add('T
errorCount+=1
}
def nroDocumento
if(nroDocumento
errorList.add('Nú
errorCount+=1
}
for(error in errorL
errorMessage+=
}
if (errorCount > 0
throw new oracle.
}else{
println('llegué aq
def partyc=newVi
def partyr=party
def partyi=party
partyi.setOperato
partyi.setValue(T
partyc.insertRow
partys.appendVi
partys.executeQu
while(partys.hasN
def party=party
setAttribute('En
party.funcionCr
setAttribute('Co
}
}
}
if(enviaContrato){
if(nvl(Segmentacio
throw new orac
}
setAttribute('Envia
validarColeccionC
validaCoordenada
def param='1'
def idContrato=n
if(idContrato!=''){
throw new oracle
}
enviarContrato('1
setAttribute('Envia
setAttribute('Num
setAttribute('SubE
setAttribute('Fech
historicoCambioE
}
if(actualizarContrat
setAttribute('Actu
validaCoordenada
def idContrato=n
if(idContrato=='')
throw new oracle
}
enviarContrato('2
setAttribute('SubE
setAttribute('Fech
setAttribute('Num
}
if(enviaOportunida
setAttribute('Envia
validarColeccionC
CrearActualizarOp
setAttribute('Envia
setAttribute('Fech
setAttribute('Sales
historicoCambioE
}
}
def idClienteActual=
def map=[:]
map.put('Nombre d
def cambioTipoClien
def cambioCliente=i
def statusActual=Sta
def oportunidadAbie
def oportunidadCerr
def cambioStatus=is
def cambioTipo=isA
def statusAnterior='
def tipo=nvl(Tipo_c,
if(cambioStatus){
statusAnterior=get
}
else{
statusAnterior=stat
}
def tipoActual=''
if(Person!=null){
cliente=Person
tipoActual='PERSO
}
else if(Organization!
cliente=Organizatio
tipoActual='ORGAN
}
def tipoAnterior=''
def idClienteAnterio
def fechaAsignacion
def statusTemporalid
def oportunidadesA
if(idClienteActual!=0
oportunidadesAbie
}
def newSize=''
def size=nvl(Tamani
if(cambioTipo){
println('Entré camb
if(tipo=='PROYECT
newSize=size+'_P
}
else{
newSize=size.repl
}
println('newsize:'+n
setAttribute('Taman
}
def cambioOwner=i
def finalizarMasivo=
def finalizarCorporat
def finalizarTempora
def inactivarTempor
def cambioMonto=i
newSize=nvl(Taman
if((cambioOwner||ca
// println('Determin
statusTemporalidad
def currentOwnerId
def previousOwner
def usuarioGeneric
def usuarioGeneric
def usuarioGeneric
if(moc=='MASIVO'
usuarioGenericoId
}
if(moc=='CORPOR
usuarioGenericoId
}
fechaAsignacion=n
def disponibleHast
if(oportunidadCerr
// println('El status
if(oportunidadCer
statusTemporalidad
if(inactivarTempora
if(oportunidade
cliente.setAttribute
}
}
}
else if(finalizarTemp
statusTemporalidad
setAttribute('Esta
}
else{
statusTemporalid
}
if(cambioOwner){
def revs=ChildRe
fechaAsignacion
while(revs.hasNe
def rev=revs.ne
rev.setAttribute
}
if(currentOwnerI
setAttribute('Us
def team=Oppo
while(team.hasN
def member=
if(member.Par
member.remo
}
}
}
}
else{
// println('El Status
statusTemporalida
disponibleHasta=
if(cambioStatus || ca
if((cambioStatus||ca
def previousStatu
if(((cambioStatu
cliente.setAttr
}
}
fechaAsignacion
def fecha=date(2
def dias=adf.util
println('Dias:'+di
disponibleHasta=
}
}
setAttribute('Estado
if(disponibleHasta)
setAttribute('Dis
} else if (previousOw
if(currentOwnerId
setAttribute('Fec
}
map.put('usuarioGe
map.put('disponibl
}
map.put('tipoActual
map.put('statusTemp
map.put('idClienteA
map.put('idClienteA
map.put('fechaAsign
map.put('oportunida
map.put('oportunida
map.put('cambioClie
println(''+map)
if(cambioCliente){
if(statusAnterior==
idClienteAnterior=
def partys=newVi
def partyc=newVi
def partyr=partyc
def partyi=partyr.
partyi.setOperato
partyi.setValue(idC
partyc.insertRow(p
partys.appendVie
partys.executeQue
def party
while(partys.hasN
party=partys.nex
tipoAnterior='OR
}
if(party==null){
partys=newView
partyc=newView
partyr=partyc.cre
partyi=partyr.en
partyi.setOperato
partyi.setValue(id
partyc.insertRow
partys.appendVi
partys.executeQu
while(partys.hasN
party=partys.ne
tipoAnterior='P
}
}
if(party!=null){
def opsAbiertas=
if(opsAbiertas>0
party.setAttribu
}
}
}
getDatosCliente()
}
if(isAttributeChange
getNumeroDocum
}
if(isAttributeChange
getDatosOwner()
}
def identificacionOri
def clienteOriginal =
def cambioIdentifica
def cambioCliente =
if((cambioIdentificac
if( nvl(identificacionO
BorrarDatosScrore()
}
if(cambioCliente){
BorrarDatosScrore()
}
}
if(isAttributeChange
BorrarPlanes()
BorrarPromocionesS
}
if(isAttributeChange
setAttribute('Fecha
}
if(isAttributeChange
setAttribute('Nomb
setAttribute('Apelli
setAttribute('Cedul
}
def cambioPreventa
if(cambioPreventa){
def preventaActual
def preventaAnteri
preventaActualId=
preventaAnteriorId
modificarEquipoDe
def emailrecurso=
setAttribute('Correo
try {
def map = new H
def messageText =
map.put("Channe
map.put("Messag
adf.util.sendNotifi
} catch (e) {
}
}
def cmvetapa2= Ge
def cmvetapa3=Get
def cmvetapa4=Get
def oldvalor= getOr
if(isAttributeChange
if(SalesStageId==c
def revenue= Chil
def countrevenue
while (revenue.ha
countrevenue+=
def rlinea = reve
}
//println('countrev
if(countrevenue==
//setAttribute('Sa
throw new oracle
}
}
/* if(SalesStageId==
def countActivida
def actividad = ne
def act = newView
def row = act.crea
def vrc = row.ensu
vrc.setOperator('=
vrc.setValue('TASK
def vrc1 = row.en
vrc1.setOperator('
vrc1.setValue(Opt
def vrc2 = row.en
vrc2.setOperator('
vrc2.setValue('ACT
def vrc3 = row.en
vrc3.setOperator('
vrc3.setValue('CO
act.insertRow(row
actividad.appendV
actividad.executeQ
while (actividad.ha
countActividad+
def curRow = ac
if(countActivida
setAttribute('Notifi
}
}
}*/
}
if(SalesStageId==cm
def nombreOferta=
def acepOferta = g
def docOferta = ge
if(nvl(nombreOfert
setAttribute('Sales
}
}
/*if((isAttributeChan
try{
adf.util.validaCana
}
catch(Exception e){
if(isAttributeChan
setAttribute('Can
}
if(isAttributeChan
setAttribute('Tar
}
throw new oracle.
}
}
if(InformaciónDeLea
hererdarInformacio
if(isAttributeChange
getNumeroDocum
}
if(isAttributeChange
getDatosOwner()
}
def cambioPreventa
if(cambioPreventa){
def preventaActual
def preventaAnteri
preventaActualId=
preventaAnteriorId
modificarEquipoDe
def emailrecurso=
setAttribute('Correo
try {
def map = new H
def messageText =
map.put("Channe
map.put("Messag
adf.util.sendNotifi
} catch (e) {
}
}
def cmvetapa3=Get
def oldvalor= getOr
if(isAttributeChange
if(SalesStageId==c
def revenue= Chil
def countrevenue
while (revenue.ha
countrevenue+=
def rlinea = reve
}
//println('countrev
if(countrevenue==
//setAttribute('Sa
throw new oracle
}
}
}*/
} catch (e) {
}
}
}
controlSubestados Object Trigger BeforeUpdate def subEstado=nvl(S
def cambioSubestad
def cambioComenta
def nombre=''
if(cambioSubestado
def cmmetapa2=G
def cmmetapa3=G
def cmmetapa4=G
def cmmetapa5=G
if(cambioSubestado
if(SubEstado_c==
nombre= 'Contr
setAttribute('Sale
historicoCambio
}
if(SubEstado_c==
nombre= 'Servic
setAttribute('Sale
setAttribute('Sta
setAttribute('Mo
historicoCambio
def cliente
if(Organization!=n
cliente=Organiza
}
else if(Person!=nu
cliente=Person
}
if(cliente!=null){
cliente.setAttribu
}
}
if(SubEstado_c==
setAttribute('Sale
if(SubEstado_c==
nombre= 'Cont
setAttribute('Nu
}
else if(SubEstado
nombre= 'Cont
setAttribute('Nu
}
else if(SubEstado
nombre = 'Con
}
historicoCambioE
}
try {
def map = new H
def messageText
map.put("Channe
map.put("Messag
adf.util.sendNotifi
} catch (e) {
}
def historicosContr
def historicoContra
historicoContrato.s
historicoContrato.s
historicoContrato.s
historicoContrato.s
historicosContrato.
}
Validations
Name Type Error Message Expression
validaOwner Object Validation No tienes permiso para editar esta if(adf.util.usuarioAdm
oportunidad return true
}
validaOwner Object Validation No tienes permiso para editar esta
oportunidad
def cliente
def tipoCliente
def partys
if(Organization!=nul
cliente=Organizatio
tipoCliente='ORGA
partys=newView('O
}
else if(Person!=null){
cliente=Person
tipoCliente='PERSO
partys=newView('P
}
def genericoMasivo=
def genericoCorpora
def tipoUsuario=adf
def usuarioMasivo=
def optyOwnerId=nv
def prevOwnerId=ge
def cambioCliente=i
if(TargetPartyId!=nu
if(cliente==null){
def partyc=newVi
def partyr=partyc
def partyi=partyr.
partyi.setOperato
partyi.setValue(Ta
partyc.insertRow(p
partys.appendVie
partys.executeQue
while(partys.hasN
def party=partys
cliente=party
}
}
}
if(cliente!=null && o
def ownerIdCliente
if(ownerIdCliente=
partys
def clienteId=nvl(
if(tipoCliente=='O
partys=newView
}
else if(tipoCliente=
partys=newView
}
if(clienteId!=0){
def partyc=newV
def partyr=party
def partyi=party
partyi.setOperato
partyi.setValue(c
partyc.insertRow
partys.appendVi
partys.executeQu
while(partys.hasN
def party=party
ownerIdCliente
}
}
}
if(ownerIdCliente!=
throw new oracle.
esta
} oportunidad')
}
def currentUsernam
def resources=newV
def resourcec=newV
def resourcer=resou
def resourcei=resou
resourcei.setOperato
resourcei.setValue(c
resourcec.insertRow
resources.appendVie
resources.executeQu
def currentUserId
while(resources.hasN
def resource=resou
currentUserId=reso
}
if(isAttributeChange
def prevOwner=ge
if(OwnerResourceP
throw new oracle.
}
def usuarioDesasig
if((prevOwner==ge
def fechaNull=new
def fechaAsignaci
if(usuarioDesasign
return true
}
else{
throw new oracle
fecha
} de asignación
}
else{
if(getPrimaryRowS
return true
throw new oracle.
}
}
else{
if(OwnerResourceP
def team=Opportu
def partOfTeam=f
while(team.hasNe
def member=tea
if(member.PartyI
partOfTeam=tr
}
}
if(!partOfTeam){
if(!adf.util.usuario
throw new orac
}
}
}
}
return true
Object Functions
Name Parameters Return Type Privileged Visibility Description
Temporalida void No Callable by
dContacto External
Systems
Temporalida void No Callable by
dCuenta External
Systems
Temporalida void No Callable by
dOportunida External
d Systems
Object Workflows
Name Definition Name Event Point Description
Prueba_SR Prueba_SR Create
Dynamic Layouts
Layout Name Active Role
Admin Final Yes ADMIN_GENERAL_PNT;
Corporativo no editable Yes USUARIO_CORPORATIVO;
Admin No ADMIN_GENERAL_PNT;
Masivo E1 Yes USUARIO_MASIVO;
Masivo Principal No
C Preventa Yes PTN_ZBS_SALES_MANAGER_JOB_CUSTOM_PRE_VEN
Corporativo E1 Yes _CORP;
Preventa No PTN_ZBS_SALES_MANAGER_JOB_CUSTOM_PRE_VEN
Preventa Cor No _CORP;
USUARIO_PREVENTA;
Masivo E5 No USUARIO_MASIVO;
Masivo E4 No USUARIO_MASIVO;
Masivo E3 No USUARIO_MASIVO;
Masivo E2 No USUARIO_MASIVO;
Corporativo E6 No
Corporativo E5 No
Corporativo E4 No
Corporativo E3 No
Corporativo E2 No
Corp Preventa No USUARIO_PREVENTA;
Usuario Masivo Yes USUARIO_MASIVO;
Usuario Corporativo Yes
Admin Yes ADMIN_GENERAL_PNT;
Usuario Masivo Yes USUARIO_MASIVO;
Usuario Corporativo Yes
ortunity
rtunidades
EtapaVentas(CMV o MMV)
a de ventas(1 a 6)
B
M
O_OPTY
175
4
14
66
18
21
24
Searchable
Yes
No
No
No
No Yes No Yes
RIBUTE_CHAR044 No Yes Yes Yes
RIBUTE_NUMBER014 No Yes Yes Yes
RIBUTE_CHAR022 No Yes Yes Yes
No No No Yes
Expression
return true
def formaPagoId=nvl(FormaDePagoDin_Id_c, 0 as BigDecimal)
if(formaPagoId==0){
setAttribute('TipoFormaPago_c',null)
}
else{
setAttribute('TipoFormaPago_c',FormaDePagoDin_Obj_c?.TipoFormaPago_c)
}
setAttribute('UltimaMilla_c',null)
setAttribute('NodoWifi_c',null)
setAttribute('IPRadioWifi_c',null)
setAttribute('AnchoDeBanda_c',null)
setAttribute('OLT_c',null)
setAttribute('Splitter_c',null)
setAttribute('GrupoDeHilo_c',null)
setAttribute('ColorDeHilo_c',null)
setAttribute('Bucket_c',null)
setAttribute('CodigoPostal_c',null)
def formaPagoCode=nvl(FormaDePagoFixed_c, '')
if(formaPagoCode!=''){
def formaPagoAnterior=FormaDePagoDin_Obj_c
if(formaPagoAnterior!=null){
if(formaPagoAnterior.RecordName!=formaPagoCode){
setAttribute('FormaDePagoDin_Id_c',null)
formaPagoAnterior.remove()
}
}
def tipoFormaPago=mapTipoPagoFormaPago(formaPagoCode)
def formasPago=newView('FormaDePago_c')
def formaPagoRow = formasPago.createRow()
formaPagoRow.setAttribute('Oportunidad_Id_c',OptyId)
formaPagoRow.setAttribute('Activo_c','Y')
formaPagoRow.setAttribute('RecordName',formaPagoCode)
formaPagoRow.setAttribute('Descripcion_c',getSelectedListDisplayValue('FormaDePagoFixed_c'))
formaPagoRow.setAttribute('TipoFormaPago_c',tipoFormaPago)
formasPago.insertRow(formaPagoRow)
setAttribute('FormaDePagoDin_Id_c',formaPagoRow.Id)
setAttribute('TipoFormaPago_c',tipoFormaPago)
}
else{
FormaDePagoDin_Obj_c?.remove()
setAttribute('FormaDePagoDin_Id_c',null)
setAttribute('TipoFormaPago_c','')
}
setAttribute('UltimaMilla_c',null)
setAttribute('NodoWifi_c',null)
setAttribute('IPRadioWifi_c',null)
setAttribute('AnchoDeBanda_c',null)
setAttribute('OLT_c',null)
setAttribute('Splitter_c',null)
setAttribute('GrupoDeHilo_c',null)
setAttribute('ColorDeHilo_c',null)
setAttribute('Bucket_c',null)
setAttribute('CodigoPostal_c',null)
def TipoformaPago=nvl(TipoFormaPago_c,'')
//def TipoCuenta = nvl(TipoDeCuenta_c,'')
if(TipoFormaPago_c!='4'){
setAttribute('Banco_c',null)
}
if(TipoformaPago == '0'){
setAttribute('TipoDeCuenta_c','AHORROS')
if(TipoformaPago == '1'){
setAttribute('TipoDeCuenta_c','AHORROS')
}
if(TipoformaPago == '2'){
setAttribute('TipoDeCuenta_c','CORRIENTE')
}
if(TipoformaPago == '4'){
setAttribute('TipoDeCuenta_c',null)
}
if(Origen_Id_c==100000104471653 ||Origen_Id_c==100000104471662){
}
else{
setAttribute('Isla_c','')
}
def moc=adf.util.usuarioMasivoCorporativo()
setAttribute('AreaComercial_c',moc)
def method=adf.util.getVar('CMV') as Long
if(moc=='MASIVO'){
method=adf.util.getVar('MMV') as Long
}
setAttribute('SalesMethodId',method)
if(moc=='MASIVO'){
setAttribute('CustPartyType','PERSON')
}
else{
setAttribute('CustPartyType','ORGANIZATION')
}
def cliente
if(Organization!=null){
cliente=Organization
}
else if(Person!=null){
cliente=Person
}
if(cliente!=null){
if(cliente.SalesProfileType=='ZCA_PROSPECT'){
setAttribute('PrimeraVenta_c','Y')
}
}
setAttribute('WinProb',RcmndWinProb)
println('INS OPTY')
def moc=nvl(AreaComercial_c,'')
def method=adf.util.getVar('CMV') as Long
if(moc=='MASIVO'){
method=adf.util.getVar('MMV') as Long
}
setAttribute('SalesMethodId',method)
getDatosOwner()
getDatosCliente()
//InsertarHistoricoEtapa()
if(OwnerResourcePartyId!=null){
validaOwner()
}
def party
def newRow=getPrimaryRowState().isNew()
def ownerChanged=isAttributeChanged('OwnerResourcePartyId')
def setOportunidadAbierta=isAttributeChanged('StatusCode')||newRow
def tipoCliente=''
def tamanioOportunidad='MONTO_CERO'
if(Tipo_c=='PROYECTO'){
tamanioOportunidad='MONTO_CERO_PROYECTO'
}
setAttribute('TamanioOportunidad_c',tamanioOportunidad)
if(setOportunidadAbierta){
if(Person!=null){
party=Person
tipoCliente='PERSON'
}
else if(Organization!=null){
party=Organization
tipoCliente='ORGANIZATION'
}
def fecha=date(2010,01,01)
setAttribute('FechaDeAsignacion_c',today())
def fechaAsign=nvl(FechaDeAsignacion_c,today())
if(fechaAsign!=fecha){
def dias=adf.util.diasTemporalidad(nvl(AreaComercial_c,''),'OPORTUNIDAD',tamanioOportunidad)
println('dias:'+dias)
setAttribute('DisponibleHasta_c',nvl(FechaDeAsignacion_c,today())+dias.toInteger())
setAttribute('EstadoDeTemporalidad_c','ACTIVA')
}
else{
setAttribute('DisponibleHasta_c',null)
}
if(party!=null){
def opAbiertas=nvl(party.OportunidadesAbiertas_c,0 as BigDecimal)
if(party?.SalesProfileType=='ZCA_PROSPECT'){
if(StatusCode=='OPEN'){
opAbiertas+=1
}
else if(!newRow){
opAbiertas-=1
}
party.setAttribute('OportunidadesAbiertas_c',opAbiertas as Integer)
}
else if(party?.SalesProfileType=='ZCA_CUSTOMER'){
party?.setAttribute('EstadoDeTemporalidad_c','FINALIZADA')
setAttribute('EstadoDeTemporalidad_c','FINALIZADA')
setAttribute('DisponibleHasta_c',null)
}
setAttribute('OportunidadAbiertaContabilizada_c','Y')
}
def acepOferta = getAttribute('AceptacionDeOferta_c');
def docOferta = getAttribute('DocumentosLegalesE2_c');
def emContrato = getAttribute('ContratoEmitido_c');
def docContrato = getAttribute('DocumentosLegales_c');
def docHoja = getAttribute('HojaTecnicaEmitida_c');
def envOpp = getAttribute('EnviaOportunidad_c');
def envCliente = getAttribute('EnviaCliente_c');
def codNetPlus=getAttribute('IDNetplus_c');
def nombreOferta=getAttribute('NombreOfertaFinal_c')
def asesorPreventa= getAttribute('EjecutivoPreventa_c','')
def segmentacion= getAttribute('Segmentacion_c','')
def segmentacionS= getAttribute ('SegmentacionSupervisor_c','')
def segmentacionU= getAttribute('UsuarioSegmentacionSupervisor_c','')
def segmentacionfechaHora= getAttribute('FechaHoraSegmentacionSupervisor_c', '' )
def capacidadpago=getAttribute('CapacidadDePago_c','')
def formasdepago= getAttribute('FormaDePagoDin_c','')
def RegistraTCA= getAttribute('RegistraTCActiva_c','')
def resultadomodelo= getAttribute('ResultadoDelModelo_c','')
def clientecastigado = getAttribute('ClienteCastigado_c','')
def clientedeuda= getAttribute('ClienteConDeuda_c','')
def fechanull= null
def fecha = nvl(FechaHoraSegmentacionSupervisor_c,fechanull)
def valoractual= SalesStageId
def oldvalor= getOriginalAttributeValue('SalesStageId')
if(isAttributeChanged('SalesStageId')&& oldvalor!=SalesStageId){
if((CanalObjC_Id_c==null || Origen_Id_c==null)&&!adf.util.usuarioAdministrador()){
throw new oracle.jbo.ValidationException('No es posible hacer el cambio de etapa sin antes especificar el canal y origen')
}
def MetodoVentaCMV=GetSalesMethod('CMV')
def MetodoVentaMMV=GetSalesMethod('MMV')
if(SalesMethodId==MetodoVentaCMV){
def cmvetapa1=GetSalesStageId('CMVE1')
def cmvetapa2=GetSalesStageId('CMVE2')
def cmvetapa3=GetSalesStageId('CMVE3')
def cmvetapa4=GetSalesStageId('CMVE4')
def cmvetapa5=GetSalesStageId('CMVE5')
def cmvetapa6=GetSalesStageId('CMVE6')
// throw new oracle.jbo.ValidationException('VALOR ACTUAL ' + cmvetapa1)
vrc1.setValue(OptyId);
act.insertRow(row);
actividades.appendViewCriteria(act);
actividades.executeQuery();
def countPreventa= 0
def countSoluciones= 0
def tipoText=''
while (actividades.hasNext()){
def actividad = actividades.next()
def tipoActividad=nvl(actividad.ActivityTypeCode,'')
def estado= actividad.StatusCode
def outcome=nvl(actividad.OutcomeCode,'')
if(tipoActividad=='PREVENTA' || tipoActividad=='SOLUCIONES'){
if(tipoActividad=='PREVENTA'){
if(estado=='COMPLETE' && actividad.ActividadProyecto_c=='ACT_EDISENO'){
countPreventa+=1
}
tipoText='preventa - Elaboración de diseño'
}
else{
if(outcome=='SUCCESSFUL' && estado=='COMPLETE'){
countSoluciones+=1
}
tipoText='soluciones '
}
def nameact= actividad.Subject
def idoportunidad= actividad.OpportunityId
if(countPreventa==0 || countSoluciones==0){
setAttribute('SalesStageId',oldvalor);
if(countPreventa==0 && countSoluciones!=0){
throw new oracle.jbo.ValidationException('Es necesario contar con al menos una actividad completa de tipo preventa - Elaboració
de etapa
} ')
else if(countPreventa!=0 && countSoluciones==0){
throw new oracle.jbo.ValidationException('Actividades Tipo Preventa: Es necesario contar con al menos una actividad aprobada y
para }poder avanzar de etapa.')
else{
throw new oracle.jbo.ValidationException('Acción no permitida: Es necesario contar con al menos una actividad completa de tipo
diseño } y una actividad aprobada y completa de tipo soluciones para poder avanzar de etapa.')
}
def archivo=Attachment
def count=0
while(archivo.hasNext()){
def att=archivo.next()
count+=1
}
if(count< 1){
setAttribute('SalesStageId',oldvalor);
throw new oracle.jbo.ValidationException('Es necesario cargar la cotización en la Etapa 3.')
}
}
}
else if(oldvalor==cmvetapa3 && SalesStageId== cmvetapa4){
if(nvl(nombreOferta,'')==''){
setAttribute('SalesStageId',oldvalor);
throw new oracle.jbo.ValidationException('El campo Nombre Oferta Final es obligatorio para cambiar de Etapa.')
}
if(acepOferta!='Y' ){
setAttribute('SalesStageId',oldvalor);
throw new oracle.jbo.ValidationException('El campo Aceptación de Oferta es Obligatorio para cambiar de Etapa.')
}
if(docOferta!='Y'){
setAttribute('SalesStageId',oldvalor);
throw new oracle.jbo.ValidationException('El campo Documentos Legales es Obligatorio para cambiar de Etapa.')
}
}
else if(oldvalor==cmvetapa4 && SalesStageId== cmvetapa5){
}
else if(oldvalor==cmvetapa5 && SalesStageId== cmvetapa6){
if(StatusCode!='WON'){
setAttribute('SalesStageId',oldvalor);
throw new oracle.jbo.ValidationException('No es posible realizar el cambio a la etapa 6.')
}
}
else if(oldvalor==cmvetapa3 && SalesStageId== cmvetapa1 ){
}
else if(oldvalor==cmvetapa3 && SalesStageId== cmvetapa2 ){
}
else if(oldvalor==cmvetapa2 && SalesStageId== cmvetapa1 ){
}
/* else if(oldvalor==cmvetapa1 && SalesStageId== cmvetapa6 ){
}
else if(oldvalor==cmvetapa2 && SalesStageId== cmvetapa6 ){
}
else if(oldvalor==cmvetapa3 && SalesStageId== cmvetapa6 ){
}
else if(oldvalor==cmvetapa4 && SalesStageId== cmvetapa6 ){
}*/
else {
setAttribute('SalesStageId',oldvalor);
throw new oracle.jbo.ValidationException('Acción no permitida: Oportunidad tipo Proyecto, no permite cambiar de etapa de 1 a 3
}
historicoCambioEtapa()
}
else if(SalesMethodId==MetodoVentaMMV){
def cmmetapa1=GetSalesStageId('MMVE1')
def cmmetapa2=GetSalesStageId('MMVE2')
def cmmetapa3=GetSalesStageId('MMVE3')
def cmmetapa4=GetSalesStageId('MMVE4')
def cmmetapa5=GetSalesStageId('MMVE5')
if( segmentacion!='' ){
ScoreContactProspect()
}
}
else if(oldvalor==cmmetapa2 && SalesStageId==cmmetapa3){
if(Person!=''){
def telColeccion =Person?.Phone;
def sinTel = true;
def cont=0;
def mobile=false
def work=false
while (telColeccion.hasNext()){
def ps = telColeccion?.next();
def type=nvl(ps.PhoneType,'')
if((type=='MOBILE'||type=='WORK')&&ps.Status=='A'){
cont+=1
}
}
if(cont<2){
setAttribute('SalesStageId',oldvalor);
throw new oracle.jbo.ValidationException('Se requiere ingresar 2 números de teléfono en el contacto')
}
}
if(MetrosEstimados_c==null && nvl(RequiereEscalera_c,'')=='' && nvl(Ductos_c,'')=='' && nvl(Pozos_c,'')=='' && nvl(PisoDeInstalac
nvl(PisosDeEdificacion_c,'')==''){
setAttribute('SalesStageId',oldvalor);
throw new oracle.jbo.ValidationException('Se requiere ingresar los campos metros estimados, requiere escalera, ductos, pozos, pis
edificación')
}
if(RequiereEscalera_c=='SI'){
if(nvl(AlturaDeEscalera_c,'')==''){
setAttribute('SalesStageId',oldvalor)
throw new oracle.jbo.ValidationException('Se requiere ingresar a que altura se requiere la escalera')
}
}
if(nvl(FechaEnvioContratoDigital_c,fechanull)== fechanull ){
setAttribute('SalesStageId',oldvalor);
throw new oracle.jbo.ValidationException('(BDS) Acción no permitida: para cambiar a etapa 3 debe enviar el contrato digital.')
}
}
else if(oldvalor==cmmetapa3 && SalesStageId==cmmetapa4){
if(nvl(SubEstado_c,'')!=''){
if(SubEstado_c!='CONTRATO_VALIDADO'){
setAttribute('SalesStageId',oldvalor);
throw new oracle.jbo.ValidationException('(BDS) Acción no permitida: para cambiar a etapa 4 el subestado de la oportunidad debe ini
encuentra
} Validado.')
}
}
else if(oldvalor==cmmetapa4 && SalesStageId==cmmetapa5){
if(nvl(IDTicketContratoNetplus_c,'')==''){
setAttribute('SalesStageId',oldvalor);
throw new oracle.jbo.ValidationException('No es posible avanzar si no se tiene un id de ticket de contrato')
}
}
else {
setAttribute('SalesStageId',oldvalor);
throw new oracle.jbo.ValidationException('(BDS) Acción no permitida: No se debe retroceder etapas.')
}
historicoCambioEtapa()
}
}
*/
validarColeccionCodigoNetplus()
def errorList=[]
def errorCount=0
def errorMessage ='Campo requerido: '
def tipodocumento = nvl(TipoDeIdentificacion_c,'')
if(tipodocumento == null || tipodocumento ==''){
errorList.add('Tipo de Identificación.')
errorCount+=1
}
def nroDocumento=nvl(NumeroDeDocumento_c,'')
if(nroDocumento == null || nroDocumento ==''){
errorList.add('Número de documento.')
errorCount+=1
}
for(error in errorList){
errorMessage+=error
}
if (errorCount > 0){
throw new oracle.jbo.ValidationException(''+errorMessage)
}else{
println('llegué aquí')
def partyc=newViewCriteria(partys)
def partyr=partyc.createRow()
def partyi=partyr.ensureCriteriaItem('PartyId')
partyi.setOperator('=')
partyi.setValue(TargetPartyId)
partyc.insertRow(partyr)
partys.appendViewCriteria(partyc)
partys.executeQuery()
while(partys.hasNext()){
def party=partys.next()
setAttribute('EnviaCliente_c','Y')
party.funcionCreaCliente(tipodocumento,nroDocumento)
setAttribute('CodigoNetplusDelCliente_c',party.CodigoNetPlus_c)
}
}
}
if(enviaContrato){
if(nvl(Segmentacion_c,'')=='' && AreaComercial_c=='MASIVO'){
throw new oracle.jbo.ValidationException('No es posible crear el contrato sin Consultar el Score.')
}
setAttribute('EnviarContratoDigital_c','N')
validarColeccionCodigoNetplus()
validaCoordenadas()
def param='1'
def idContrato=nvl(IDTicketContratoNetplus_c,'')
if(idContrato!=''){
throw new oracle.jbo.ValidationException('No es posible crear el contrato dos veces.')
}
enviarContrato('1')
setAttribute('EnviarContratoDigital_c','Y')
setAttribute('NumeroDeEnviosContratoD_c',nvl(NumeroDeEnviosContratoD_c,0 as BigDecimal)+1)
setAttribute('SubEstado_c','CONTRATO_ENVIADO_CLIENTE')
setAttribute('FechaVentaBruta_c',now())
historicoCambioEtapa()
}
if(actualizarContrato){
setAttribute('ActualizarContratoDigital_c','N')
validaCoordenadas()
def idContrato=nvl(IDTicketContratoNetplus_c,'')
if(idContrato==''){
throw new oracle.jbo.ValidationException('No es posible hacer la actualización del ticket porque no se cuenta con un Ticket de Con
}
enviarContrato('2')
setAttribute('SubEstado_c','CONTRATO_ENVIADO_CLIENTE')
setAttribute('FechaVentaBruta_c',now())
setAttribute('NumeroDeEnviosContratoD_c',nvl(NumeroDeEnviosContratoD_c,0 as BigDecimal)+1)
}
if(enviaOportunidad){
setAttribute('EnviaOportunidad_c','N')
validarColeccionCodigoNetplus()
CrearActualizarOportunidadNetplus()
setAttribute('EnviaOportunidad_c','Y')
setAttribute('FechaVentaBruta_c',now())
setAttribute('SalesStageId',GetSalesStageId('CMVE5'))
historicoCambioEtapa()
}
}
validaOwner()
def moc=nvl(AreaComercial_c,'')
def cliente
def idClienteActual=nvl(TargetPartyId,0 as Long)
def map=[:]
map.put('Nombre de lead',Name)
def cambioTipoCliente=false
def cambioCliente=isAttributeChanged('TargetPartyId')
def statusActual=StatusCode
def oportunidadAbierta=statusActual=='OPEN'
def oportunidadCerrada=statusActual=='LOST'||statusActual=='NO_SALE'
def cambioStatus=isAttributeChanged('StatusCode')
def cambioTipo=isAttributeChanged('Tipo_c')
def statusAnterior=''
def tipo=nvl(Tipo_c,'NORMAL')
if(cambioStatus){
statusAnterior=getOriginalAttributeValue('StatusCode')
}
else{
statusAnterior=statusActual
}
def tipoActual=''
if(Person!=null){
cliente=Person
tipoActual='PERSON'
}
else if(Organization!=null){
cliente=Organization
tipoActual='ORGANIZATION'
}
def tipoAnterior=''
def idClienteAnterior=0
def fechaAsignacion
def statusTemporalidad
def oportunidadesAbiertas=0 as BigDecimal
if(idClienteActual!=0){
oportunidadesAbiertas= nvl(cliente.OportunidadesAbiertas_c,0 as BigDecimal)
}
def newSize=''
def size=nvl(TamanioOportunidad_c,'MONTO_CERO')
if(cambioTipo){
println('Entré cambioTipo '+ getOriginalAttributeValue('Tipo_c')+ ' - '+tipo)
if(tipo=='PROYECTO'){
newSize=size+'_PROYECTO'
}
else{
newSize=size.replace('_PROYECTO','')
}
println('newsize:'+newSize)
setAttribute('TamanioOportunidad_c',newSize)
}
def cambioOwner=isAttributeChanged('OwnerResourcePartyId')
def finalizarMasivo=isAttributeChanged('IDTicketContratoNetplus_c')&&nvl(IDTicketContratoNetplus_c,'')!=''&&moc=='MASIVO'
def finalizarCorporativo=isAttributeChanged('CodigoNetPlus_c')&&nvl(CodigoNetPlus_c,'')!=''&&moc=='CORPORATIVO'
def finalizarTemporalidad=finalizarMasivo||finalizarCorporativo
def inactivarTemporalidad=cambioStatus&& statusAnterior=='OPEN' && oportunidadCerrada
def cambioMonto=isAttributeChanged('TamanioOportunidad_c')
newSize=nvl(TamanioOportunidad_c,'')
if((cambioOwner||cambioCliente||cambioStatus||finalizarTemporalidad|| cambioMonto || cambioTipo)){
// println('Determinar status temporalidad')
statusTemporalidad=nvl(EstadoDeTemporalidad_c,'')
def currentOwnerId=nvl(OwnerResourcePartyId,0 as Long)
def previousOwnerId=getOriginalAttributeValue('OwnerResourcePartyId') as Long
def usuarioGenericoId
def usuarioGenericoMasivo=adf.util.usuarioGenericoMasivo()
def usuarioGenericoCorporativo=adf.util.usuarioGenericoCorporativo()
if(moc=='MASIVO'){
usuarioGenericoId=usuarioGenericoMasivo
}
if(moc=='CORPORATIVO'){
usuarioGenericoId=usuarioGenericoCorporativo
}
fechaAsignacion=nvl(FechaDeAsignacion_c,today())
def disponibleHasta=null
if(oportunidadCerrada || currentOwnerId==usuarioGenericoMasivo || currentOwnerId==usuarioGenericoCorporativo || finalizarTempo
// println('El status de la temporalidad no será ACTIVO')
if(oportunidadCerrada){
statusTemporalidad='INACTIVA'
if(inactivarTemporalidad){
if(oportunidadesAbiertas>0){
cliente.setAttribute('OportunidadesAbiertas_c',oportunidadesAbiertas-1)
}
}
}
else if(finalizarTemporalidad){
statusTemporalidad='FINALIZADA'
setAttribute('EstadoDeTemporalidad_c',statusTemporalidad)
}
else{
statusTemporalidad='DESASIGNADO'
}
if(cambioOwner){
def revs=ChildRevenue
fechaAsignacion=today()
while(revs.hasNext()){
def rev=revs.next()
rev.setAttribute('ResourcePartyId',currentOwnerId)
}
if(currentOwnerId==usuarioGenericoMasivo || currentOwnerId==usuarioGenericoCorporativo){
setAttribute('UsuarioDesasignado_Id_c',adf.util.getResourceProfileId(previousOwnerId))
def team=OpportunityResource
while(team.hasNext()){
def member=team.next()
if(member.PartyId==previousOwnerId)
member.remove()
}
}
}
}
else{
// println('El Status será activo')
statusTemporalidad='ACTIVA'
disponibleHasta=DisponibleHasta_c
if(cambioStatus || cambioOwner || cambioCliente || cambioMonto || cambioTipo){
if((cambioStatus||cambioCliente)&&oportunidadAbierta){
def previousStatus=getOriginalAttributeValue('StatusCode')
if(((cambioStatus&&(previousStatus=='RETIRED'||previousStatus=='CONVERTED'))||cambioCliente)&&cliente!=null){
cliente.setAttribute('OportunidadesAbiertas_c',oportunidadesAbiertas+1)
}
}
fechaAsignacion=today()
def fecha=date(2001,01,01)
def dias=adf.util.diasTemporalidad(moc,'OPORTUNIDAD',newSize)
println('Dias:'+dias)
disponibleHasta=fechaAsignacion+dias.toInteger()
}
}
setAttribute('EstadoDeTemporalidad_c',statusTemporalidad)
if(disponibleHasta){
setAttribute('DisponibleHasta_c', disponibleHasta)
} else if (previousOwnerId == usuarioGenericoMasivo || previousOwnerId == usuarioGenericoCorporativo){
if(currentOwnerId != usuarioGenericoCorporativo || currentOwnerId != usuarioGenericoMasivo)
setAttribute('FechaDeAsignacion_c',fechaAsignacion)
}
map.put('usuarioGenericoId',usuarioGenericoId)
map.put('disponibleHasta',disponibleHasta)
}
map.put('tipoActual',tipoActual)
map.put('statusTemporalidad',statusTemporalidad)
map.put('idClienteActual',idClienteActual)
map.put('idClienteAnterior',idClienteAnterior)
map.put('fechaAsignacion',fechaAsignacion)
map.put('oportunidadAbierta',oportunidadAbierta)
map.put('oportunidadesAbiertas',oportunidadesAbiertas)
map.put('cambioCliente',cambioCliente)
println(''+map)
if(cambioCliente){
if(statusAnterior=='OPEN'){
idClienteAnterior=getOriginalAttributeValue('TargetPartyId')
def partys=newView('OrganizationProfile')
def partyc=newViewCriteria(partys)
def partyr=partyc.createRow()
def partyi=partyr.ensureCriteriaItem('PartyId')
partyi.setOperator('=')
partyi.setValue(idClienteAnterior)
partyc.insertRow(partyr)
partys.appendViewCriteria(partyc)
partys.executeQuery()
def party
while(partys.hasNext()){
party=partys.next()
tipoAnterior='ORGANIZATION'
}
if(party==null){
partys=newView('PersonProfile')
partyc=newViewCriteria(partys)
partyr=partyc.createRow()
partyi=partyr.ensureCriteriaItem('PartyId')
partyi.setOperator('=')
partyi.setValue(idClienteAnterior)
partyc.insertRow(partyr)
partys.appendViewCriteria(partyc)
partys.executeQuery()
while(partys.hasNext()){
party=partys.next()
tipoAnterior='PERSON'
}
}
if(party!=null){
def opsAbiertas=nvl(party.OportunidadesAbiertas_c,0 as BigDecimal)
if(opsAbiertas>0){
party.setAttribute('OportunidadesAbiertas_c',opsAbiertas-1)
}
}
}
getDatosCliente()
}
if(isAttributeChanged('TipoDeIdentificacion_c')){
getNumeroDocumento()
}
if(isAttributeChanged('OwnerResourcePartyId')){
getDatosOwner()
}
try {
def map = new HashMap()
def messageText ='Se te ha asignado la oportunidad ' + Name+ ' de tipo Proyecto, requiere su atención para la elaboración del docu
map.put("Channels",["ORA_SVC_BELL"])
map.put("MessageText",messageText)
adf.util.sendNotification(adf, map)
} catch (e) {
}
}
def cmvetapa2= GetSalesStageId('CMVE2')
def cmvetapa3=GetSalesStageId('CMVE3')
def cmvetapa4=GetSalesStageId('CMVE4')
def oldvalor= getOriginalAttributeValue('SalesStageId')
if(isAttributeChanged('SalesStageId')&& oldvalor!=SalesStageId){
if(SalesStageId==cmvetapa3){
def revenue= ChildRevenue
def countrevenue= 0
while (revenue.hasNext()) {
countrevenue+=1
def rlinea = revenue.next()
}
//println('countrevenue:'+countrevenue
if(countrevenue==0){
//setAttribute('SalesStageId',oldvalor);
throw new oracle.jbo.ValidationException('Se requiere agregar un producto')
}
}
/* if(SalesStageId==cmvetapa2){
def countActividad = 0
def actividad = newView('Activity');
def act = newViewCriteria(actividad);
def row = act.createRow()
def vrc = row.ensureCriteriaItem('ActivityFunctionCode');
vrc.setOperator('=');
vrc.setValue('TASK');
def vrc1 = row.ensureCriteriaItem('OpportunityId');
vrc1.setOperator('=');
vrc1.setValue(OptyId);
def vrc2 = row.ensureCriteriaItem('ActividadProyecto_c');
vrc2.setOperator('=');
vrc2.setValue('ACT_VDISENO');
def vrc3 = row.ensureCriteriaItem('StatusCode');
vrc3.setOperator('=');
vrc3.setValue('COMPLETE');
act.insertRow(row);
actividad.appendViewCriteria(act);
actividad.executeQuery()
while (actividad.hasNext()) {
countActividad+=1
def curRow = actividad.next()
if(countActividad==1){
setAttribute('NotificacionVDISENO_c','Y')
}
}
}*/
}
if(SalesStageId==cmvetapa3){
def nombreOferta=getAttribute('NombreOfertaFinal_c')
def acepOferta = getAttribute('AceptacionDeOferta_c')
def docOferta = getAttribute('DocumentosLegalesE2_c');
if(nvl(nombreOferta,'')!=''&& acepOferta=='Y' && docOferta=='Y') {
setAttribute('SalesStageId',cmvetapa4)
}
}
if(isAttributeChanged('TipoDeIdentificacion_c')){
getNumeroDocumento()
}
if(isAttributeChanged('OwnerResourcePartyId')){
getDatosOwner()
}
} catch (e) {
}
}
def cmvetapa3=GetSalesStageId('CMVE3')
def oldvalor= getOriginalAttributeValue('SalesStageId')
if(isAttributeChanged('SalesStageId')&& oldvalor!=SalesStageId){
if(SalesStageId==cmvetapa3){
def revenue= ChildRevenue
def countrevenue= 0
while (revenue.hasNext()) {
countrevenue+=1
def rlinea = revenue.next()
}
//println('countrevenue:'+countrevenue
if(countrevenue==0){
//setAttribute('SalesStageId',oldvalor);
throw new oracle.jbo.ValidationException('Se requiere agregar un producto')
}
}
}*/
if(isAttributeChanged('CambioAssets_c')){
getAssets()
}
if(isAttributeChanged('EffectiveDate')){
def revs=ChildRevenue
while(revs.hasNext()){
def rev=revs.next()
rev.setAttribute('EffectiveDate',EffectiveDate)
}
}
if(isAttributeChanged('StatusCode')){
if((CanalObjC_Id_c==null || Origen_Id_c==null)&&!adf.util.usuarioAdministrador()){
throw new oracle.jbo.ValidationException('No es posible hacer el cambio de estado sin antes especificar el canal y origen')
}
def nombre=''
historicoCambioEtapa()
def prevStatusCode=getOriginalAttributeValue('StatusCode')
if(StatusCode=='LOST' &&prevStatusCode!='LOST'){
nombre = 'Perdida'
if(AreaComercial_c=='CORPORATIVO'){
if(nvl(MotivoDeGananciaperdida_c,'')==''){
throw new oracle.jbo.ValidationException('Se requiere ingresar un motivo de perdida')
}
if(isAttributeChanged('MotivoDeGananciaperdida_c')&& MotivoDeGananciaperdida_c=='COMPETENCIA' && nvl(PartyUniqueNam
throw new oracle.jbo.ValidationException('Se requiere ingresar un competidor')
}
}
if(AreaComercial_c=='MASIVO'){
if(nvl(Competitors,'')==''){
throw new oracle.jbo.ValidationException('Es necesario elegir un competidor para poner la oportunidad como perdida.')
}
}
}else{
historicoCambioEtapa()
}
if(StatusCode=='WON' &&prevStatusCode!='WON'){
nombre='Ganada'
def cliente
if(Organization!=null){
cliente=Organization
}
else if(Person!=null){
cliente=Person
}
if(cliente!=null){
cliente.setAttribute('SalesProfileType','ZCA_CUSTOMER')
//cliente.setAttribute('CodigoNetPlus_c',CodigoNetplusDelCliente_c)
if(AreaComercial_c=='MASIVO'){
if(nvl(cliente.PrimeraVentaCerrada_c,'N')=='N'){
cliente.setAttribute('PrimeraVentaCerrada_c','Y')
cliente.setAttribute('OwnerPartyId',OwnerResourcePartyId)
}
}
}
}
if(statusCode!=prevStatusCode){
// historicoCambioEtapa()
try {
def map = new HashMap()
def messageText ='La oportunidad ' + Name+ ' esta con estado ' +nombre
map.put("Channels",["ORA_SVC_BELL"])
map.put("MessageText",messageText)
adf.util.sendNotification(adf, map)
} catch (e) {
}
}
}
def subEstado=nvl(SubEstado_c,'')
def cambioSubestado=isAttributeChanged('SubEstado_c')
def cambioComentarios=isAttributeChanged('Comments')
def nombre=''
if(cambioSubestado || cambioComentarios){
def cmmetapa2=GetSalesStageId('MMVE2')
def cmmetapa3=GetSalesStageId('MMVE3')
def cmmetapa4=GetSalesStageId('MMVE4')
def cmmetapa5=GetSalesStageId('MMVE5')
if(cambioSubestado){
if(SubEstado_c=='CONTRATO_VALIDADO' ){
nombre= 'Contrato validado'
setAttribute('SalesStageId',cmmetapa4);
historicoCambioEtapa()
}
if(SubEstado_c=='SERVICIO_ACTIVADO' ){
nombre= 'Servicio activado'
setAttribute('SalesStageId',cmmetapa5);
setAttribute('StatusCode','WON')
setAttribute('MotivoDeGananciaperdida_c','SI_INSTALACION')
historicoCambioEtapa()
def cliente
if(Organization!=null){
cliente=Organization
}
else if(Person!=null){
cliente=Person
}
if(cliente!=null){
cliente.setAttribute('SalesProfileType','ZCA_CUSTOMER')
}
}
if(SubEstado_c=='CONTRATO_DEVUELTO_VALIDADOR' || SubEstado_c=='CONTRATO_DEVUELTO_CLIENTE' || SubEstado_c=='CONTR
setAttribute('SalesStageId',cmmetapa2);
if(SubEstado_c=='CONTRATO_DEVUELTO_CLIENTE'){
nombre= 'Contrato devuelto por cliente'
setAttribute('NumeroDeDevolucionesCliente_c',nvl(NumeroDeDevolucionesCliente_c, 0 as BigDecimal)+1);
}
else if(SubEstado_c=='CONTRATO_DEVUELTO_VALIDADOR'){
nombre= 'Contrato devuelto por validador'
setAttribute('NumeroDeDevolucionesValidador_c',nvl(NumeroDeDevolucionesValidador_c,0 as BigDecimal)+1);
}
else if(SubEstado_c=='CONTRATO_CADUCADO'){
nombre = 'Contrato caducado por falta de firma'
}
historicoCambioEtapa()
}
try {
def map = new HashMap()
def messageText ='La oportunidad ' + Name+ ' esta con subestado ' +nombre
map.put("Channels",["ORA_SVC_BELL"])
map.put("MessageText",messageText)
adf.util.sendNotification(adf, map)
} catch (e) {
}
def historicosContrato=newView('HistoricoDeContrato_c')
def historicoContrato=historicosContrato.createRow()
historicoContrato.setAttribute('Subestado_c',SubEstado_c)
historicoContrato.setAttribute('ComentariosObservaciones_c',encodeToBase64(nvl(Comments,'')))
historicoContrato.setAttribute('Usuario_c',UsuarioSubestado_c)
historicoContrato.setAttribute('Oportunidad_Id_c',OptyId)
historicosContrato.insertRow(historicoContrato)
}
Expression
if(adf.util.usuarioAdministrador() || adf.util.usuarioAdministradorTemporalidad()){
return true
}
def cliente
def tipoCliente
def partys
if(Organization!=null){
cliente=Organization
tipoCliente='ORGANIZATION'
partys=newView('OrganizationProfile')
}
else if(Person!=null){
cliente=Person
tipoCliente='PERSON'
partys=newView('PersonProfile')
}
def genericoMasivo=adf.util.usuarioGenericoMasivo() as Long
def genericoCorporativo=adf.util.usuarioGenericoCorporativo() as Long
def tipoUsuario=adf.util.usuarioMasivoCorporativo()
def usuarioMasivo=tipoUsuario=='MASIVO'
def optyOwnerId=nvl(OwnerResourcePartyId,0 as Long)
def prevOwnerId=getOriginalAttributeValue('OwnerResourcePartyId') as Long
def cambioCliente=isAttributeChanged('OwnerResourcePartyId')
if(TargetPartyId!=null){
if(cliente==null){
def partyc=newViewCriteria(partys)
def partyr=partyc.createRow()
def partyi=partyr.ensureCriteriaItem('PartyId')
partyi.setOperator('=')
partyi.setValue(TargetPartyId)
partyc.insertRow(partyr)
partys.appendViewCriteria(partyc)
partys.executeQuery()
while(partys.hasNext()){
def party=partys.next()
cliente=party
}
}
}
}
}
}
if(ownerIdCliente!=optyOwnerId && !usuarioMasivo){
throw new oracle.jbo.ValidationException('El Cliente ' + cliente.PartyUniqueName + ' le pertenece al ejecutivo ' + cliente.OwnerParty
esta
} oportunidad')
}
def currentUsername=adf.context.getSecurityContext()?.getUserProfile()?.getUserID()
def resources=newView('Resource')
def resourcec=newViewCriteria(resources)
def resourcer=resourcec.createRow()
def resourcei=resourcer.ensureCriteriaItem('Username')
resourcei.setOperator('=')
resourcei.setValue(currentUsername)
resourcec.insertRow(resourcer)
resources.appendViewCriteria(resourcec)
resources.executeQuery()
def currentUserId
while(resources.hasNext()&¤tUserId==null){
def resource=resources.next()
currentUserId=resource.PartyId
}
if(isAttributeChanged('OwnerResourcePartyId') || getPrimaryRowState().isNew()){
def prevOwner=getOriginalAttributeValue('OwnerResourcePartyId') as Long
if(OwnerResourcePartyId!=currentUserId){
throw new oracle.jbo.ValidationException('Sólo los managers pueden asignar una oportunidad a otros usuarios')
}
def usuarioDesasignadoId=nvl(UsuarioDesasignado_Obj_c?.PartyId,0 as Long)
if((prevOwner==genericoMasivo && tipoUsuario=='MASIVO' )||(prevOwner==genericoCorporativo && tipoUsuario=='CORPORATIV
def fechaNull=new Date(01,01,50)
def fechaAsignacion=nvl(FechaDeAsignacion_c,fechaNull)
if(usuarioDesasignadoId!=currentUserId || fechaAsignacion+15<today()){
return true
}
else{
throw new oracle.jbo.ValidationException('Este usuario no puede tomar la oportunidad porque le fue desasignada en el pasado, ha
fecha
} de asignación')
}
else{
if(getPrimaryRowState().isNew())
return true
throw new oracle.jbo.ValidationException('No es posible tomar la oportunidad porque está siendo gestionada por otro ejecutivo')
}
}
else{
if(OwnerResourcePartyId!=currentUserId){
def team=OpportunityResource
def partOfTeam=false
while(team.hasNext()&&!partOfTeam){
def member=team.next()
if(member.PartyId==currentUserId && !member.getPrimaryRowState().isNew()){
partOfTeam=true
}
}
if(!partOfTeam){
if(!adf.util.usuarioAdministradorTemporalidad()){
throw new oracle.jbo.ValidationException('No puedes modificar esta oportunidad porque no eres parte del equipo de trabajo')
}
}
}
}
return true
adf.source.isLookupIdValid('UsuarioDesasignado_Id_c',newValue)
adf.source.isLookupIdValid('EjecutivoPreventa_Id_c',newValue)
adf.source.isLookupIdValid('Canal_Id_c',newValue)
adf.source.isLookupIdValid('Origen_Id_c',newValue)
adf.source.isLookupIdValid('ActividadEconomica_Id_c',newValue)
adf.source.isLookupIdValid('CanalObjC_Id_c',newValue)
adf.source.isLookupIdValid('Servicio_Id_c',newValue)
adf.source.isLookupIdValid('FormaDePagoDin_Id_c',newValue)
adf.source.isLookupIdValid('Plan_Id_c',newValue)
adf.source.isLookupIdValid('UltimaMilla_Id_c',newValue)
adf.source.isLookupIdValid('AnchoDeBanda_Id_c',newValue)
adf.source.isLookupIdValid('NodoWifi_Id_c',newValue)
adf.source.isLookupIdValid('OLT_Id_c',newValue)
adf.source.isLookupIdValid('Splitter_Id_c',newValue)
adf.source.isLookupIdValid('GrupoDeHilo_Id_c',newValue)
adf.source.isLookupIdValid('ColorDeHilo_Id_c',newValue)
adf.source.isLookupIdValid('IPRadioWifi_Id_c',newValue)
adf.source.isLookupIdValid('NombreCatalogoCIIUDin_Id_c',newValue)
adf.source.isLookupIdValid('CodigoPostal_Id_c',newValue)
adf.source.isLookupIdValid('Bucket_Id_c',newValue)
Expression
//Temporalidad Contacto
def vo=newView('PersonProfile')
def voc=newViewCriteria(vo)
def vocr=voc.createRow()
def voci=vocr.ensureCriteriaItem('DisponibleHasta_c')
voci.setOperator('<=')
voci.setValue(today())
def vocj=vocr.ensureCriteriaItem('EstadoDeTemporalidad_c')
vocj.setOperator('=')
vocj.setValue('ACTIVA')
voc.insertRow(vocr)
vo.appendViewCriteria(voc)
vo.executeQuery()
def ids='['
def count=0
while(vo.hasNext()){
def reg=vo.next()
if(reg.SectorComercial_c!=null&®.Sector_c!=null&&nvl(reg.PrimaryFormattedAddress,'')!=''){
reg.setAttribute('OwnerPartyId',300000004627567)
reg.setAttribute('EstadoDeTemporalidad_c','DESASIGNADO')
//reg.setAttribute('EstadoDeTemporalidad_c','ACTIVA')
if(count>0)
ids+=','
ids+=reg.PartyId
count+=1
}
}
//Temporalidad Cuenta
def vo=newView('OrganizationProfile')
def voc=newViewCriteria(vo)
def vocr=voc.createRow()
def voci=vocr.ensureCriteriaItem('DisponibleHasta_c')
voci.setOperator('<=')
voci.setValue(today())
def vocj=vocr.ensureCriteriaItem('EstadoDeTemporalidad_c')
vocj.setOperator('=')
vocj.setValue('ACTIVA')
voc.insertRow(vocr)
vo.appendViewCriteria(voc)
vo.executeQuery()
def ids='['
def count=0
while(vo.hasNext()){
def reg=vo.next()
//throw new oracle.jbo.ValidationException(''+reg.SalesProfileType)
def ps=reg.PartySite
def exists=false
while(ps.hasNext()){
def p=ps.next()
exists=true
}
if(reg.SectoresComerciales_c!=null&®.Sector_c!=null&&exists){
reg.setAttribute('OwnerPartyId',300000004627567)
reg.setAttribute('EstadoDeTemporalidad_c','DESASIGNADO')
if(count>0)
ids+=','
ids+=reg.PartyId+reg.SalesProfileType
count+=1
}
}
//Temporalidad Oportunidad//
def vo=newView('OpportunityVO')
def voc=newViewCriteria(vo)
def vocr=voc.createRow()
def voci=vocr.ensureCriteriaItem('DisponibleHasta_c')
voci.setOperator('<=')
voci.setValue(today())
def vocj=vocr.ensureCriteriaItem('EstadoDeTemporalidad_c')
vocj.setOperator('=')
vocj.setValue('ACTIVA')
voc.insertRow(vocr)
vo.appendViewCriteria(voc)
vo.executeQuery()
def ids='['
def count=0
while(vo.hasNext()){
def reg=vo.next()
reg.setAttribute('OwnerResourcePartyId',300000004627567)
reg.setAttribute('EstadoDeTemporalidad_c','DESASIGNADO')
if(count>0)
ids+=','
ids+=reg.OptyId
count+=1
}
def historico = newView('HistoricoDeTemporalidad_c')
def crear = historico.createRow();
crear.setAttribute('IdOportunidad_c', OptyId);
crear.setAttribute('RecordName', '--');
crear.setAttribute('ValorActual_c',DisponibleHasta_c);
historico.insertRow(crear)
def partyType=CustPartyType
def party
if(AreaComercial_c=='MASIVO'){
if(Organization!=null)
party=Organization
if(Person!=null)
party=Person
def direccionesInstalacion=DireccionInstalacion_Tgt_OpportunityToDireccionInstalacion_c_Tgt
def instalacionSiteIdList=[]
def outputMap=[:]
while(direccionesInstalacion.hasNext()){
def dirInst=direccionesInstalacion.next()
dirInst.remove()
}
outputMap.put('instalacionSiteIdList',instalacionSiteIdList)
def partySiteList=[]
def siteIdToAdd=[]
if(party){
def sites=party.PartySite
while(sites.hasNext()){
def site=sites.next()
def siteId=site.PartySiteId
def siteMap=[:]
def addFlag=false
if(!instalacionSiteIdList.contains(siteId)){
def dirInst=direccionesInstalacion.createRow()
dirInst.setAttribute('Address_Id_Src_AddressToDireccionInstalacion_c',siteId)
dirInst.setAttribute('Opportunity_Id_Tgt_OpportunityToDireccionInstalacion_c',OptyId)
direccionesInstalacion.insertRow(dirInst)
addFlag=true
}
siteMap.put('AddressId',siteId)
siteMap.put('Address',site.FormattedAddress)
siteMap.put('addFlag',addFlag)
partySiteList.add(siteMap)
}
}
outputMap.put('partySiteList',partySiteList)
println(outputMap)
}
def stageId=nvl(adf.userSession.userData[stageVarName],0 as Long) as Long
if(stageId!=0){
return stageId
}
def cs=newView('VariablesDeSistema_c')
def csc=newViewCriteria(cs)
def csr=csc.createRow()
def csi=csr.ensureCriteriaItem('RecordName')
csi.setOperator('=')
csi.setValue(stageVarName)
csc.insertRow(csr)
cs.appendViewCriteria(csc)
cs.executeQuery()
//def stageId=0
while(cs.hasNext()){
def c=cs.next()
stageId=c.ValorEntero_c as Long
}
adf.userSession.userData.put(stageVarName,stageId)
return stageId
def methodId=nvl(adf.userSession.userData[MethodVarName],0 as Long) as Long
if(methodId!=0){
return methodId
}
// Put a name/value pair in the user data map
//
// Get a value by key from the user data map
def cs=newView('VariablesDeSistema_c')
def csc=newViewCriteria(cs)
def csr=csc.createRow()
def csi=csr.ensureCriteriaItem('RecordName')
csi.setOperator('=')
csi.setValue(MethodVarName)
csc.insertRow(csr)
cs.appendViewCriteria(csc)
cs.executeQuery()
//def methodId=0
while(cs.hasNext()){
def c=cs.next()
methodId=c.ValorEntero_c as Long
}
adf.userSession.userData.put(MethodVarName, methodId)
return methodId
def idClienteSales =nvl(NumeroDeDocumento_c,'');
def errorMsg=''
def identificadorClienteOSC =TargetPartyId;
def tipoCliente = CustPartyType;
//if(tipoCliente == 'PERSON'){
//idClienteSales = Person?.CodigoNetPlus_c;
// identificadorClienteOSC = Person?.PartyNumber;
//}else{
//idClienteSales = PrimaryContactPerson?.CodigoNetPlus_c;
// identificadorClienteOSC = PrimaryContactPerson?.PartyNumber;
//}
def identificadorOppOSC = OptyId;
def numeroOportunidad = OptyNumber;
def nombreOportunidad = nvl(Name,'');
nombreOportunidad = nombreOportunidad.trim();
def moneda = nvl(CurrencyCode,'');
moneda = moneda.trim();
def monto = nvl(Revenue,0 as BigDecimal);
if(nvl(CodigoNetplusDelCliente_c,'')==''){
errorMsg+='No es posible enviar la oportunidad porque el cliente aún no ha sido enviado a Netplus'
}
if(idClienteSales==''){
errorMsg+='Es necesario seleccionar el Número de Documento sobre el que se levantará el Plan. Para seleccionar el Núm
elegir
} un Tipo de Documento capturado en el cliente.'
if(contador==0){
errorMsg+='La oportunidad no cuenta con un producto. No es posible enviar el contrato. '
}
if(errorMsg!=''){
throw new oracle.jbo.ValidationException(errorMsg)
}
/*
LOportunidad.put('codLineaOportunidad',codLineaOportunidad)
LOportunidad.put('codProducto',codProducto)
LOportunidad.put('codGrupoProducto',codGrupoProducto)
LOportunidad.put('producto',producto)
LOportunidad.put('cantidad',cantidad)
LOportunidad.put('descuento',descuento)
LOportunidad.put('valorUnitario',valorUnitario)
LOportunidad.put('montoTotal',montoTotal)
LOportunidad.put('valorInstalacion',valorInstalacion)
*/
POST_param.put('MensajeIntegracion_c',encodeToBase64(''+MensajeRespuesta))
POST_param.put('Payload_c',encodeToBase64(''+ payload))
POST_param.put('Response_c',encodeToBase64(''+crearActualizar))
adf.webServices.LogBitacora.POST(POST_param)
}else{
def POST_param=[:]
POST_param.put('Oportunidad_Id_c',identificadorOppOSC)
POST_param.put('Integracion_c',16)
POST_param.put('IdPrincipal_c',0)
POST_param.put('MensajeIntegracion_c',encodeToBase64(''+MensajeRespuesta))
POST_param.put('Payload_c',encodeToBase64(''+ payload))
POST_param.put('Response_c',encodeToBase64(''+ crearActualizar))
adf.webServices.LogBitacora.POST(POST_param)
}
}
catch(Exception e){
def msg=e.message
def POST_param=[:]
POST_param.put('Oportunidad_Id_c',identificadorOppOSC)
POST_param.put('Integracion_c',16)
POST_param.put('IdPrincipal_c',0)
POST_param.put('MensajeIntegracion_c',encodeToBase64(msg))
POST_param.put('Payload_c',encodeToBase64(''+ payload))
POST_param.put('Response_c',encodeToBase64(''+crearActualizar))
adf.webServices.LogBitacora.POST(POST_param)
def outputMap=[:]
def i=1
while(i<=2){
def ultimaMillaMap=[:]
ultimaMillaMap.put('Descripcion','Última Milla ' + i)
def j=1
def planes=[:]
while(j<=2){
def planMap=[:]
def numPlan=(i-1)*2+j
planMap.put('Nombre','Plan ' + numPlan )
def k=1
def anchosBanda=[:]
while(k<=2){
def anchoBandaMap=[:]
def numAnchoBanda=(numPlan-1)*2+k
anchoBandaMap.put('Descripcion','Ancho de Banda '+numAnchoBanda)
anchosBanda.put('AB'+numAnchoBanda,anchoBandaMap)
k+=1
}
planMap.put('AnchoBanda',anchosBanda)
planes.put('P'+numPlan,planMap)
j+=1
}
ultimaMillaMap.put('Planes',planes)
outputMap.put('UM'+i,ultimaMillaMap)
i+=1
}
outputMap
def map=mapEjemplo()
parsePlanes(map['Planes'])
parseWifi(map['Wifi'])
parseFibra(map['Fibra'])
//cuentas
def tipoCliente = CustPartyType;
def identificadorOppOSC_c =OptyId;
def tipoDocumento_c = '';
def numeroDocumento_c = '';
def payload = [:]
def POST_param=[:]
def consulta= '';
def contacto = '';
try{
if(tipoCliente == 'PERSON'){
contacto = AccountName;
if(nvl(contacto,null)==null){ throw new oracle.jbo.ValidationException('Campo requerido:Cliente ')}
tipoDocumento_c = Person?.TipoDocumento_c;
numeroDocumento_c = Person?.NumeroDeDocumento_c;
if(nvl(tipoDocumento_c,null)==null){ throw new oracle.jbo.ValidationException('Campo requerido: Tipo de documento')}
if(nvl(numeroDocumento_c,null)==null){ throw new oracle.jbo.ValidationException('Campo requerido: Número de docum
}
else{
contacto = ContactName;
if(nvl(contacto,null)==null){ throw new oracle.jbo.ValidationException('Campo requerido: Contacto principal')}
tipoDocumento_c =PrimaryContactPerson?.TipoDocumento_c;
numeroDocumento_c = PrimaryContactPerson?.NumeroDeDocumento_c;
if(nvl(tipoDocumento_c,null)==null){ throw new oracle.jbo.ValidationException('Campo requerido: Tipo de documento')}
if(nvl(numeroDocumento_c,null)==null){ throw new oracle.jbo.ValidationException('Campo requerido: Número de docum
}
payload.put('tipoDocumento',tipoDocumento_c)
payload.put('numeroDocumento',numeroDocumento_c)
setAttribute('ClienteCastigado_c',consulta?.clienteCastigado.Descripcion[0]);
setAttribute('ResultadoDelModelo_c',consulta?.resultadoModelo);
setAttribute('RegistraTCActiva_c',consulta?.registraTCActiva);
setAttribute('ClienteConDeuda_c',consulta?.clienteDeuda.Descripcion[0]);
println(consulta?.clienteDeuda.Descripcion)
setAttribute('CapacidadPagoNum_c', (capacidadPago_c as BigDecimal).setScale(2,BigDecimal.ROUND_HALF_UP))
POST_param.put('Oportunidad_Id_c',identificadorOppOSC_c)
POST_param.put('Integracion_c',2)
POST_param.put('MensajeIntegracion_c',encodeToBase64('prueba'))
POST_param.put('Payload_c',encodeToBase64(''+ payload))
POST_param.put('Response_c',encodeToBase64(''+consulta))
POST_param.put('IdPrincipal_c',0)
adf.webServices.LogBitacora.POST(POST_param)
creaHistoricoConsultaScore()
setAttribute('FechaConsultaScore_c',now())
}else{
adf.webServices.LogBitacora.POST(POST_param)
throw new oracle.jbo.ValidationException(''+mensaje)
}
catch(Exception e){
def msg=e.message
POST_param.put('Oportunidad_Id_c',identificadorOppOSC_c)
POST_param.put('Integracion_c',2)
POST_param.put('MensajeIntegracion_c',encodeToBase64(msg))
POST_param.put('Payload_c',encodeToBase64(''+ payload))
POST_param.put('Response_c',encodeToBase64(''+consulta))
POST_param.put('IdPrincipal_c',0)
adf.webServices.LogBitacora.POST(POST_param)
//throw new oracle.jbo.ValidationException(''+consulta?.resultadoModelo)
//promo.put('tipo'{,promocion.Tipo_c)
if (enviar == 'Y'){
if(Tipo_1 == 'PROMOCION'){
promo.put('idPromocion',nvl(promocion.RecordName,''))
promo.put('cantidad',nvl(promocion.CantidadNum_c,0 as BigDecimal))
Renovacion_1 = nvl(promocion.RenovacionFlag_c,'N');
if(Renovacion_1 == 'Y'){Renovacion_1 = '1'}else{Renovacion_1 = '0'}
promo.put('renovacion',Renovacion_1)
def detalleP = nvl(promocion.Detalle_Obj_c?.RecordName,'')
//if (detalleP == 0){detalleP =''}
promo.put('detalle',detalleP)
def diferirP = nvl(promocion.Diferir_Obj_c?.RecordName,'');
if (diferirP == '0'){diferirP =''}
promo.put('diferir',diferirP)
def descuentoP = nvl(promocion.Descuento_Obj_c?.RecordName,'');
if(descuentoP == '0'){descuentoP =''}
promo.put('descuento',descuentoP)
promo.put('intervaloCada',nvl(promocion.IntervaloCada_c,''))
promo.put('intervaloHasta',nvl(promocion.IntervaloHasta_c,''))
promo.put('valorUnitario',nvl(promocion.ValorUnitario_c,0 as BigDecimal))
promo.put('valorMensual',nvl(promocion.ValorMensual_c,0 as BigDecimal))
promociones_c.add(promo)
}else{
// serviciosAdd.put('tipo',nvl(promocion.Tipo_c,''))
serviciosAdd.put('idServicio',nvl(promocion.RecordName,''))
serviciosAdd.put('cantidad',nvl(promocion.CantidadNum_c,0 as BigDecimal))
Renovacion_2 = nvl(promocion.Renovacion_c,'N')
if(Renovacion_2 == 'Y'){Renovacion_2 = '0'}else{Renovacion_2 = '1'}
serviciosAdd.put('renovacion',Renovacion_2)
def detalleS = nvl(promocion.Detalle_Obj_c?.RecordName,'');
//if (detalleS ==0){detalleS =''}
serviciosAdd.put('detalle',detalleS)
def diferirS = nvl(promocion.Diferir_Obj_c?.RecordName,'');
if(diferirS == '0'){diferirS=''}
serviciosAdd.put('diferir',diferirS)
def descuentoS =nvl(promocion.Descuento_Obj_c?.RecordName,'');
if(descuentoS == '0'){descuentoS=''}
serviciosAdd.put('descuento',descuentoS)
serviciosAdd.put('intervaloCada',nvl(promocion.IntervaloCada_c,''))
serviciosAdd.put('intervaloHasta',nvl(promocion.IntervaloHasta_c,''))
serviciosAdd.put('valorUnitario',nvl(promocion.ValorUnitario_c,0 as BigDecimal))
serviciosAdd.put('valorMensual',nvl(promocion.ValorMensual_c,0 as BigDecimal))
serviciosAdicionales.add(serviciosAdd)
}
}
*/
}
println('promociones: '+promociones_c)
/*
def revs = ChildRevenue;
while (revs.hasNext()){
def rev = revs.next();
def des = [:]
des.put('idPromocion',nvl(rev.DescuentoMasivoDin_Obj_c?.RecordName,''))
des.put('cantidad',1)
des.put('renovacion',1)
def detalleP = nvl(rev.Detalle_Obj_c?.RecordName,'')
des.put('detalle',detalleP)
def diferirP = nvl(rev.Diferir_Obj_c?.RecordName,'');
if (diferirP == '0'){diferirP =''}
des.put('diferir',diferirP)
def descuentoP = nvl(rev.DescuentoDin_Obj_c?.RecordName,'');
if(descuentoP == '0'){descuentoP =''}
des.put('descuento',descuentoP)
des.put('intervaloCada',nvl(rev.IntervaloCadaNum_c,''))
des.put('intervaloHasta',nvl(rev.IntervaloHastaNum_c,''))
des.put('valorUnitario',nvl(rev.CostoDelPlan_c,0 as BigDecimal))
des.put('valorMensual',nvl(rev.TotalDelPlan_c,0 as BigDecimal))
promociones_c.add(des)
}
*/
def outputMap=[:]
def i=1
def maxEntries=2
def planList=[]
def wifiList=[]
def fibraList=[]
while(i<=maxEntries){
//PLANES
def mapPlan=[:]
def index=i
mapPlan.put('Codigo','P'+index)
mapPlan.put('Descripcion','Plan '+index)
def j=1
def listUM=[]
while(j<=maxEntries){
def mapUM=[:]
index=j+(i-1)*2
mapUM.put('Codigo','UM'+index)
mapUM.put('Descripcion','Ultima Milla '+index)
listUM.add(mapUM)
j+=1
}
mapPlan.put('UltimaMilla',listUM)
def listAB=[]
j=1
while(j<=maxEntries){
def mapAB=[:]
index=j+(i-1)*2
mapAB.put('Codigo','AB'+index)
mapAB.put('Descripcion','Ancho de Banda '+index)
listAB.add(mapAB)
j+=1
}
mapPlan.put('AnchoDeBanda',listAB)
planList.add(mapPlan)
//WIFI
def mapNW=[:]
index=i
mapNW.put('Codigo','NW'+index)
mapNW.put('Descripcion','Nodo Wifi '+index)
def listIW=[]
j=1
while(j<=maxEntries){
def mapIW=[:]
index=j+(i-1)*2
mapIW.put('Codigo','IW'+index)
mapIW.put('Descripcion','IP Wifi '+index)
listIW.add(mapIW)
j+=1
}
mapNW.put('IpWifi',listIW)
wifiList.add(mapNW)
//Fibra
def mapOLT=[:]
index=1
mapOLT.put('Codigo','OLT'+index)
mapOLT.put('Descripcion','OLT '+index)
def listSP=[]
j=1
while(j<=maxEntries){
def mapSP=[:]
index=j+(i-1)*2
mapSP.put('Codigo','SP'+index)
mapSP.put('Descripcion','Splitter '+index)
def listGH=[]
def k=1
while(k<=maxEntries){
def mapGH=[:]
index=k+(j-1)*2+(i-1)*4
mapGH.put('Codigo','GH'+index)
mapGH.put('Descripcion','Grupo de Hilo '+index)
def listCH=[]
def m=1
while(m<=maxEntries){
def mapCH=[:]
index=m+(k-1)*2+(j-1)*4+(i-1)*8
mapCH.put('Codigo','CH'+index)
mapCH.put('Descripcion','Color de Hilo '+index)
listCH.add(mapCH)
m+=1
}
mapGH.put('ColorHilo',listCH)
listGH.add(mapGH)
k+=1
}
mapSP.put('GrupoHilo',listGH)
listSP.add(mapSP)
j+=1
}
mapOLT.put('Splitter',listSP)
fibraList.add(mapOLT)
i+=1
}
outputMap.put('Planes',planList)
outputMap.put('Wifi',wifiList)
outputMap.put('Fibra',fibraList)
outputMap
def planRows=newView('Plan_c')
for(plan in planes){
def planRow=planRows.createRow()
println('plan:'+plan)
planRow.setAttribute('Oportunidad_Id_c',OptyId)
planRow.setAttribute('Activo_c','Y')
planRow.setAttribute('RecordName',plan['Codigo'])
planRow.setAttribute('Descripcion_c',plan['Descripcion'])
planRows.insertRow(planRow)
def planId=planRow.Id
def ultimasMillas=plan['UltimaMilla']
def anchosBanda=plan['AnchoDeBanda']
def umRows=newView('UltimaMillaNetplus_c')
for(um in ultimasMillas){
println('um:'+um)
def umRow=umRows.createRow()
umRow.setAttribute('Oportunidad_Id_c',OptyId)
umRow.setAttribute('Activo_c','Y')
umRow.setAttribute('RecordName',um['Codigo'])
umRow.setAttribute('Descripcion_c',um['Descripcion'])
umRow.setAttribute('Plan_Id_c',planId)
umRows.insertRow(umRow)
}
def abRows=newView('AnchoDeBanda_c')
for(ab in anchosBanda){
println('anchoBanda:'+ab)
def abRow=abRows.createRow()
abRow.setAttribute('Oportunidad_Id_c',OptyId)
abRow.setAttribute('Activo_c','Y')
abRow.setAttribute('RecordName',ab['Codigo'])
abRow.setAttribute('Descripcion_c',ab['Descripcion'])
abRow.setAttribute('Plan_Id_c',planId)
abRows.insertRow(abRow)
}
}
def nodoWifiRows=newView('NodoWifi_c')
for(nodoWifi in nodosWifi){
println('nodoWifi:'+nodoWifi)
def nodoWifiRow=nodoWifiRows.createRow()
nodoWifiRow.setAttribute('Oportunidad_Id_c',OptyId)
nodoWifiRow.setAttribute('Activo_c','Y')
nodoWifiRow.setAttribute('RecordName',nodoWifi['Codigo'])
nodoWifiRow.setAttribute('Descripcion_c',nodoWifi['Descripcion'])
nodoWifiRows.insertRow(nodoWifiRow)
def nodoWifiId=nodoWifiRow.Id
def ipws=nodoWifi['IpWifi']
def ipwRows=newView('IPRadioWifi_c')
for(ipw in ipws){
println('ipw:'+ipw)
def ipwRow=ipwRows.createRow()
ipwRow.setAttribute('Oportunidad_Id_c',OptyId)
ipwRow.setAttribute('Activo_c','Y')
ipwRow.setAttribute('RecordName',ipw['Codigo'])
ipwRow.setAttribute('Descripcion_c',ipw['Descripcion'])
ipwRow.setAttribute('NodoWifi_Id_c',nodoWifiId)
ipwRows.insertRow(ipwRow)
}
}
def oltRows=newView('OLT_c')
for(olt in olts){
def oltRow=oltRows.createRow()
println('olt:'+olt)
oltRow.setAttribute('Oportunidad_Id_c',OptyId)
oltRow.setAttribute('Activo_c','Y')
oltRow.setAttribute('RecordName',olt['Codigo'])
oltRow.setAttribute('Descripcion_c',olt['Descripcion'])
oltRows.insertRow(oltRow)
def oltId=oltRow.Id
def splitters=olt['Splitter']
def splitterRows=newView('Splitter_c')
for(splitter in splitters){
println('splitter:'+splitter)
def splitterRow=splitterRows.createRow()
def splitterId=splitterRow.Id
splitterRow.setAttribute('Oportunidad_Id_c',OptyId)
splitterRow.setAttribute('Activo_c','Y')
splitterRow.setAttribute('RecordName',splitter['Codigo'])
splitterRow.setAttribute('Descripcion_c',splitter['Descripcion'])
splitterRow.setAttribute('OLT_Id_c',oltId)
splitterRows.insertRow(splitterRow)
def gruposHilo=splitter['GrupoHilo']
def ghRows=newView('GrupoDeHilo_c')
for(gh in gruposHilo){
println('gh:'+gh)
def ghRow=ghRows.createRow()
def ghId=ghRow.Id
ghRow.setAttribute('Oportunidad_Id_c',OptyId)
ghRow.setAttribute('Activo_c','Y')
ghRow.setAttribute('RecordName',gh['Codigo'])
ghRow.setAttribute('Descripcion_c',gh['Descripcion'])
ghRow.setAttribute('Splitter_Id_c',splitterId)
ghRows.insertRow(ghRow)
def coloresHilo=gh['ColorHilo']
def chRows=newView('ColorDeHilo_c')
for(ch in coloresHilo){
println('ch:'+ch)
def chRow=chRows.createRow()
chRow.setAttribute('Oportunidad_Id_c',OptyId)
chRow.setAttribute('Activo_c','Y')
chRow.setAttribute('RecordName',ch['Codigo'])
chRow.setAttribute('Descripcion_c',ch['Descripcion'])
chRow.setAttribute('GrupoDeHilo_Id_c',ghId)
chRows.insertRow(chRow)
}
}
}
}
def i=1
def maxEntries=2
def listaPYS=[]
while(i<=maxEntries){
def mapPYS=[:]
def tipo=(i%2==0)?'SERVICIO':'PROMOCION'
def edit= i==1
mapPYS.put('Tipo',tipo)
mapPYS.put('Codigo','PYS'+i)
mapPYS.put('Descripcion',tipo+'1')
def j=1
def listCantidad=[]
def index=0
while(j<=maxEntries){
def mapCantidad=[:]
index=j+(i-1)*2
mapCantidad.put('Codigo','Cantidad'+index)
mapCantidad.put('Cantidad',index*3)
listCantidad.add(mapCantidad)
j+=1
}
mapPYS.put('Cantidad',listCantidad)
mapPYS.put('CantidadEditable',edit)
j=1
def listRenovacion=[]
while(j<=maxEntries){
def mapRenovacion=[:]
index=j+(i-1)*2
mapRenovacion.put('Codigo','Renovacion'+index)
mapRenovacion.put('Descripcion','Renovacion '+index)
listRenovacion.add(mapRenovacion)
j+=1
}
mapPYS.put('Renovacion',listRenovacion)
mapPYS.put('RenovacionEditable',edit)
j=1
def listDet=[]
while(j<=maxEntries){
def mapDet=[:]
index=j+(i-1)*2
mapDet.put('Codigo','Det'+index)
mapDet.put('Descripcion','Detalle '+index)
listDet.add(mapDet)
j+=1
}
mapPYS.put('Detalle',listDet)
mapPYS.put('DetalleEditable',edit)
j=1
def listDiferir=[]
while(j<=maxEntries){
def mapDiferir=[:]
index=j+(i-1)*2
mapDiferir.put('Codigo','Diferir'+index)
mapDiferir.put('Descripcion','Diferir '+index)
listDiferir.add(mapDiferir)
j+=1
}
mapPYS.put('Diferir',listDiferir)
mapPYS.put('DiferirEditable',!edit)
j=1
def listDescuento=[]
while(j<=maxEntries){
def mapDescuento=[:]
index=j+(i-1)*2
mapDescuento.put('Codigo','Descuento'+index)
mapDescuento.put('Descripcion','Descuento '+index)
listDescuento.add(mapDescuento)
j+=1
}
mapPYS.put('Descuento',listDescuento)
mapPYS.put('DescuentoEditable',edit)
j=1
def listIntervaloCada=[]
while(j<=maxEntries){
def mapIntervaloCada=[:]
index=j+(i-1)*2
mapIntervaloCada.put('Codigo','IntervaloCada'+index)
mapIntervaloCada.put('Descripcion','Intervalo Cada '+index)
listIntervaloCada.add(mapIntervaloCada)
j+=1
}
mapPYS.put('IntervaloCada',listIntervaloCada)
mapPYS.put('IntervaloCadaEditable',!edit)
j=1
def listIntervaloHasta=[]
while(j<=maxEntries){
def mapIntervaloHasta=[:]
index=j+(i-1)*2
mapIntervaloHasta.put('Codigo','IntervaloHasta'+index)
mapIntervaloHasta.put('Descripcion','Intervalo Hasta '+index)
listIntervaloHasta.add(mapIntervaloHasta)
j+=1
}
mapPYS.put('IntervaloHasta',listIntervaloHasta)
mapPYS.put('IntervaloHastaEditable',edit)
mapPYS.put('Estado','Estado')
mapPYS.put('ValorUnitario',10024.50)
mapPYS.put('ValorMensual',10024.50*100)
listaPYS.add(mapPYS)
i+=1
}
listaPYS
def pysRows=newView('PromocionesYServicios_c')
for(pys in pyss){
def pysRow=pysRows.createRow()
def pysId=pysRow.Id
pysRow.setAttribute('RecordName',pys['Codigo'])
pysRow.setAttribute('Descripcion_c',pys['Descripcion'])
pysRow.setAttribute('Tipo_c',pys['Tipo'])
pysRow.setAttribute('CantidadEditable_c',checkbox(pys['CantidadEditable'] as Boolean))
pysRow.setAttribute('RenovacionEditable_c',checkbox(pys['RenovacionEditable'] as Boolean))
pysRow.setAttribute('DetalleEditable_c',checkbox(pys['DetalleEditable'] as Boolean))
pysRow.setAttribute('DiferirEditable_c',checkbox(pys['DiferirEditable'] as Boolean))
pysRow.setAttribute('DescuentoEditable_c',checkbox(pys['DescuentoEditable'] as Boolean))
pysRow.setAttribute('IntervaloCadaEditable_c',checkbox(pys['IntervaloCadaEditable'] as Boolean))
pysRow.setAttribute('IntervaloHastaEditable_c',checkbox(pys['IntervaloHastaEditable'] as Boolean))
pysRow.setAttribute('Oportunidad_Id_c',OptyId)
def cantidades=pys['Cantidad']
def cantidadRows=newView('Cantidad_c')
def count=0
for(cantidad in cantidades){
def cantidadRow=cantidadRows.createRow()
if(count==0)
pysRow.setAttribute('Cantidad_Id_c',cantidadRow.Id)
cantidadRow.setAttribute('PromocionOServicio_Id_c',pysId)
cantidadRow.setAttribute('Activo_c','Y')
cantidadRow.setAttribute('RecordName',cantidad['Codigo'])
cantidadRow.setAttribute('Cantidad_c',cantidad['Cantidad'])
cantidadRows.insertRow(cantidadRow)
count+=1
}
def Renovaciones=pys['Renovacion']
def RenovacionRows=newView('Renovacion_c')
count=0
for(Renovacion in Renovaciones){
def RenovacionRow=RenovacionRows.createRow()
if(count==0)
pysRow.setAttribute('Renovacion_Id_c',RenovacionRow.Id)
RenovacionRow.setAttribute('PromocionOServicio_Id_c',pysId)
RenovacionRow.setAttribute('Activo_c','Y')
RenovacionRow.setAttribute('RecordName',Renovacion['Codigo'])
RenovacionRow.setAttribute('Descripcion_c',Renovacion['Descripcion'])
RenovacionRows.insertRow(RenovacionRow)
count+=1
}
def Detalles=pys['Detalle']
def DetalleRows=newView('Detalle_c')
count=0
for(Detalle in Detalles){
def DetalleRow=DetalleRows.createRow()
if(count==0)
pysRow.setAttribute('Detalle_Id_c',DetalleRow.Id)
DetalleRow.setAttribute('PromocionOServicio_Id_c',pysId)
DetalleRow.setAttribute('Activo_c','Y')
DetalleRow.setAttribute('RecordName',Detalle['Codigo'])
DetalleRow.setAttribute('Descripcion_c',Detalle['Descripcion'])
DetalleRows.insertRow(DetalleRow)
count+=1
}
def Diferires=pys['Diferir']
println('Diferir:'+Diferires)
def DiferirRows=newView('Diferir_c')
count=0
for(Diferir in Diferires){
def DiferirRow=DiferirRows.createRow()
if(count==0)
pysRow.setAttribute('Diferir_Id_c',DiferirRow.Id)
DiferirRow.setAttribute('PromocionOServicio_Id_c',pysId)
DiferirRow.setAttribute('Activo_c','Y')
DiferirRow.setAttribute('RecordName',Diferir['Codigo'])
DiferirRow.setAttribute('Descripcion_c',Diferir['Descripcion'])
DiferirRows.insertRow(DiferirRow)
count+=1
}
def Descuentoes=pys['Descuento']
def DescuentoRows=newView('Descuento_c')
count=0
for(Descuento in Descuentoes){
def DescuentoRow=DescuentoRows.createRow()
if(count==0)
pysRow.setAttribute('Descuento_Id_c',DescuentoRow.Id)
DescuentoRow.setAttribute('PromocionOservicio_Id_c',pysId)
DescuentoRow.setAttribute('Activo_c','Y')
DescuentoRow.setAttribute('RecordName',Descuento['Codigo'])
DescuentoRow.setAttribute('Descripcion_c',Descuento['Descripcion'])
DescuentoRows.insertRow(DescuentoRow)
count+=1
}
def IntervaloCadaes=pys['IntervaloCada']
def IntervaloCadaRows=newView('IntervaloCada_c')
count=0
for(IntervaloCada in IntervaloCadaes){
def IntervaloCadaRow=IntervaloCadaRows.createRow()
if(count==0)
pysRow.setAttribute('IntervaloCada_Id_c',IntervaloCadaRow.Id)
IntervaloCadaRow.setAttribute('PromocionOServicio_Id_c',pysId)
IntervaloCadaRow.setAttribute('Activo_c','Y')
IntervaloCadaRow.setAttribute('RecordName',IntervaloCada['Codigo'])
IntervaloCadaRow.setAttribute('Descripcion_c',IntervaloCada['Descripcion'])
IntervaloCadaRows.insertRow(IntervaloCadaRow)
count+=1
}
def IntervaloHastaes=pys['IntervaloHasta']
def IntervaloHastaRows=newView('IntervaloHasta_c')
count=0
for(IntervaloHasta in IntervaloHastaes){
def IntervaloHastaRow=IntervaloHastaRows.createRow()
if(count==0)
pysRow.setAttribute('IntervaloHasta_Id_c',IntervaloHastaRow.Id)
IntervaloHastaRow.setAttribute('PromocionOServicio_Id_c',pysId)
IntervaloHastaRow.setAttribute('Activo_c','Y')
IntervaloHastaRow.setAttribute('RecordName',IntervaloHasta['Codigo'])
IntervaloHastaRow.setAttribute('Descripcion_c',IntervaloHasta['Descripcion'])
IntervaloHastaRows.insertRow(IntervaloHastaRow)
count+=1
}
pysRow.setAttribute('Estado_c',pys['Estado'])
pysRow.setAttribute('ValorUnitario_c',pys['ValorUnitario'])
pysRow.setAttribute('ValorMensual_c',pys['ValorMensual'])
pysRows.insertRow(pysRow)
if(input){
return 'Y'
}
return 'N'
def list=listPromocionesYServicios()
println('list:'+list)
parsePromocionesYServicios(list)
///***CAMPOS OPORTUNIDAD***///
def milla = UltimaMilla_c
///***CAMPOS ANCHO DE BANDA***///
def descripción=AnchoDeBanda_Obj_c?.Descripcion_c
def plan = AnchoDeBanda_Obj_c?.Plan_c
def codigoAncho=''
def descAncho=''
///***CAMPOS WIFI***///
def nodoWifi=IPRadioWifi_Obj_c?.NodoWifi_c
def ipRadio='IP'
///***CAMPOS FIBRA***///
def OLT=OLT_c
def spliter=Splitter_c
def grupoHilo=GrupoDeHilo_c
def colorHilo=ColorDeHilo_c
if(nvl(nodoWifi)==null){ throw new oracle.jbo.ValidationException('Campo requerido: Nodo Wifi')}
if(nvl(ipRadio)==null){ throw new oracle.jbo.ValidationException('Campo requerido: IP Radio Wiffi')}
if(nvl(OLT)==null){ throw new oracle.jbo.ValidationException('Campo requerido: OLT')}
if(nvl(grupoHilo)==null){ throw new oracle.jbo.ValidationException('Campo requerido: Grupo de Hilo')}
if(nvl(colorHilo)==null){ throw new oracle.jbo.ValidationException('Campo requerido: Color de Hilo')}
if(nvl(spliter)==null){ throw new oracle.jbo.ValidationException('Campo requerido: Splitter')}
try{
def payload=[
]
try{
def result='';
def POST_param=[:]
POST_param.put('Cuenta_Id_c','11')
POST_param.put('Integracion_c',11)
POST_param.put('MensajeIntegracion_c','Exito')
POST_param.put('Payload_c',encodeToBase64('Payload'))
POST_param.put('Response_c',encodeToBase64('Response'))
POST_param.put('IdPrincipal_c','')
adf.webServices.LogBitacora.POST(POST_param)
}catch(Exception e){
//throw new oracle.jbo.ValidationException('Mensaje integración: ')
}
}catch(Exception e){
throw new oracle.jbo.ValidationException('Error en la integración: ')
}
///***CAMPOS OPORTUNIDAD***///
def Tipo = Tipo_c
///***CAMPOS FIBRA***///
def OLT=OLT_c
def spliter=Splitter_c
def grupoHilo=GrupoDeHilo_c
def colorHilo=ColorDeHilo_c
try{
def payload=[
]
def result='';
def POST_param=[:]
POST_param.put('Cuenta_Id_c','11')
POST_param.put('Integracion_c',11)
POST_param.put('MensajeIntegracion_c','Exito')
POST_param.put('Payload_c',encodeToBase64('Payload'))
POST_param.put('Response_c',encodeToBase64('Response'))
POST_param.put('IdPrincipal_c','')
adf.webServices.LogBitacora.POST(POST_param)
}catch(Exception e){
def POST_param=[:]
POST_param.put('Cuenta_Id_c','11')
POST_param.put('Integracion_c',11)
POST_param.put('MensajeIntegracion_c','Error:'+e.message)
POST_param.put('Payload_c',encodeToBase64(''))
POST_param.put('Response_c',encodeToBase64(''))
POST_param.put('IdPrincipal_c','')
adf.webServices.LogBitacora.POST(POST_param)
//throw new oracle.jbo.ValidationException('Mensaje integración: ')
}
def ae
def aes=newView('ActividadEconomica_c')
ae= aes.createRow()
ae.setAttribute('RecordName','A01')
ae.setAttribute('Descripcion_c','A01 - AGRICULTURA, GANADERÍA, CAZA Y ACTIVIDADES DE SERVICIOS CONEXAS.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','A02')
ae.setAttribute('Descripcion_c','A02 - SILVICULTURA Y EXTRACCIÓN DE MADERA.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','A03')
ae.setAttribute('Descripcion_c','A03 - PESCA Y ACUICULTURA.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','B05')
ae.setAttribute('Descripcion_c','B05 - EXTRACCIÓN DE CARBÓN DE PIEDRA Y LIGNITO.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','B06')
ae.setAttribute('Descripcion_c','B06 - EXTRACCIÓN DE PETRÓLEO CRUDO Y GAS NATURAL.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','B07')
ae.setAttribute('Descripcion_c','B07 - EXTRACCIÓN DE MINERALES METALÍFEROS.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','B08')
ae.setAttribute('Descripcion_c','B08 - EXPLOTACIÓN DE OTRAS MINAS Y CANTERAS.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','B09')
ae.setAttribute('Descripcion_c','B09 - ACTIVIDADES DE SERVICIOS DE APOYO PARA LA EXPLOTACIÓN DE MINAS Y CANTER
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','C10')
ae.setAttribute('Descripcion_c','C10 - ELABORACIÓN DE PRODUCTOS ALIMENTICIOS.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','C11')
ae.setAttribute('Descripcion_c','C11 - ELABORACIÓN DE BEBIDAS.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','C12')
ae.setAttribute('Descripcion_c','C12 - ELABORACIÓN DE PRODUCTOS DE TABACO.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','C13')
ae.setAttribute('Descripcion_c','C13 - FABRICACIÓN DE PRODUCTOS TEXTILES.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','C14')
ae.setAttribute('Descripcion_c','C14 - FABRICACIÓN DE PRENDAS DE VESTIR.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','C15')
ae.setAttribute('Descripcion_c','C15 - FABRICACIÓN DE CUEROS Y PRODUCTOS CONEXOS.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','C16')
ae.setAttribute('Descripcion_c','C16 - PRODUCCIÓN DE MADERA Y FABRICACIÓN DE PRODUCTOS DE MADERA Y CORCHO
FABRICACIÓN DE ARTÍCULOS DE PAJA Y DE MATERIALES TRENZABLES.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','C17')
ae.setAttribute('Descripcion_c','C17 - FABRICACIÓN DE PAPEL Y DE PRODUCTOS DE PAPEL.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','C18')
ae.setAttribute('Descripcion_c','C18 - IMPRESIÓN Y REPRODUCCIÓN DE GRABACIONES.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','C19')
ae.setAttribute('Descripcion_c','C19 - FABRICACIÓN DE COQUE Y DE PRODUCTOS DE LA REFINACIÓN DEL PETRÓLEO.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','C20')
ae.setAttribute('Descripcion_c','C20 - FABRICACIÓN DE SUBSTANCIAS Y PRODUCTOS QUÍMICOS.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','C21')
ae.setAttribute('Descripcion_c','C21 - FABRICACIÓN DE PRODUCTOS FARMACÉUTICOS, SUSTANCIAS QUÍMICAS MEDICINA
BOTÁNICOS DE USO FARMACÉUTICO.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','C22')
ae.setAttribute('Descripcion_c','C22 - FABRICACIÓN DE PRODUCTOS DE CAUCHO Y PLÁSTICO.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','C23')
ae.setAttribute('Descripcion_c','C23 - FABRICACIÓN DE OTROS PRODUCTOS MINERALES NO METÁLICOS.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','C24')
ae.setAttribute('Descripcion_c','C24 - FABRICACIÓN DE METALES COMUNES.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','C25')
ae.setAttribute('Descripcion_c','C25 - FABRICACIÓN DE PRODUCTOS ELABORADOS DE METAL, EXCEPTO MAQUINARIA Y EQ
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','C26')
ae.setAttribute('Descripcion_c','C26 - FABRICACIÓN DE PRODUCTOS DE INFORMÁTICA, ELECTRÓNICA Y ÓPTICA.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','C27')
ae.setAttribute('Descripcion_c','C27 - FABRICACIÓN DE EQUIPO ELÉCTRICO.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','C28')
ae.setAttribute('Descripcion_c','C28 - FABRICACIÓN DE MAQUINARIA Y EQUIPO N.C.P.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','C29')
ae.setAttribute('Descripcion_c','C29 - FABRICACIÓN DE VEHÍCULOS AUTOMOTORES, REMOLQUES Y SEMIRREMOLQUES.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','C30')
ae.setAttribute('Descripcion_c','C30 - FABRICACIÓN DE OTROS TIPOS DE EQUIPOS DE TRANSPORTE.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','C31')
ae.setAttribute('Descripcion_c','C31 - FABRICACIÓN DE MUEBLES.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','C32')
ae.setAttribute('Descripcion_c','C32 - OTRAS INDUSTRIAS MANUFACTURERAS.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','C33')
ae.setAttribute('Descripcion_c','C33 - REPARACIÓN E INSTALACIÓN DE MAQUINARIA Y EQUIPO.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','D35')
ae.setAttribute('Descripcion_c','D35 - SUMINISTRO DE ELECTRICIDAD, GAS, VAPOR Y AIRE ACONDICIONADO.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','E36')
ae.setAttribute('Descripcion_c','E36 - CAPTACIÓN, TRATAMIENTO Y DISTRIBUCIÓN DE AGUA.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','E37')
ae.setAttribute('Descripcion_c','E37 - EVACUACIÓN DE AGUAS RESIDUALES.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','E38')
ae.setAttribute('Descripcion_c','E38 - RECOLECCIÓN, TRATAMIENTO Y ELIMINACIÓN DE DESECHOS, RECUPERACIÓN DE M
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','E39')
ae.setAttribute('Descripcion_c','E39 - ACTIVIDADES DE DESCONTAMINACIÓN Y OTROS SERVICIOS DE GESTIÓN DE DESECH
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','F41')
ae.setAttribute('Descripcion_c','F41 - CONSTRUCCIÓN DE EDIFICIOS.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','F42')
ae.setAttribute('Descripcion_c','F42 - OBRAS DE INGENIERÍA CIVIL.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','F43')
ae.setAttribute('Descripcion_c','F43 - ACTIVIDADES ESPECIALIZADAS DE LA CONSTRUCCIÓN.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','G45')
ae.setAttribute('Descripcion_c','G45 - COMERCIO Y REPARACIÓN DE VEHÍCULOS AUTOMOTORES Y MOTOCICLETAS.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','G46')
ae.setAttribute('Descripcion_c','G46 - COMERCIO AL POR MAYOR, EXCEPTO EL DE VEHÍCULOS AUTOMOTORES Y MOTOCIC
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','G47')
ae.setAttribute('Descripcion_c','G47 - COMERCIO AL POR MENOR, EXCEPTO EL DE VEHÍCULOS AUTOMOTORES Y MOTOCIC
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','H49')
ae.setAttribute('Descripcion_c','H49 - TRANSPORTE POR VÍA TERRESTRE Y POR TUBERÍAS.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','H50')
ae.setAttribute('Descripcion_c','H50 - TRANSPORTE POR VÍA ACUÁTICA.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','H51')
ae.setAttribute('Descripcion_c','H51 - TRANSPORTE POR VÍA AÉREA.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','H52')
ae.setAttribute('Descripcion_c','H52 - ALMACENAMIENTO Y ACTIVIDADES DE APOYO AL TRANSPORTE.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','H53')
ae.setAttribute('Descripcion_c','H53 - ACTIVIDADES POSTALES Y DE MENSAJERÍA.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','I55')
ae.setAttribute('Descripcion_c','I55 - ACTIVIDADES DE ALOJAMIENTO.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','I56')
ae.setAttribute('Descripcion_c','I56 - SERVICIO DE ALIMENTO Y BEBIDA.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','J58')
ae.setAttribute('Descripcion_c','J58 - ACTIVIDADES DE PUBLICACIÓN.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','J59')
ae.setAttribute('Descripcion_c','J59 - ACTIVIDADES DE PRODUCCIÓN DE PELÍCULAS CINEMATOGRÁFICAS, VÍDEOS Y PROG
GRABACIÓN DE SONIDO Y EDICIÓN DE MÚSICA.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','J60')
ae.setAttribute('Descripcion_c','J60 - ACTIVIDADES DE PROGRAMACIÓN Y TRANSMISIÓN.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','J61')
ae.setAttribute('Descripcion_c','J61 - TELECOMUNICACIONES.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','J62')
ae.setAttribute('Descripcion_c','J62 - PROGRAMACIÓN INFORMÁTICA, CONSULTORÍA DE INFORMÁTICA Y ACTIVIDADES CO
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','J63')
ae.setAttribute('Descripcion_c','J63 - ACTIVIDADES DE SERVICIOS DE INFORMACIÓN.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','K64')
ae.setAttribute('Descripcion_c','K64 - ACTIVIDADES DE SERVICIOS FINANCIEROS, EXCEPTO LAS DE SEGUROS Y FONDOS DE
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','K65')
ae.setAttribute('Descripcion_c','K65 - SEGUROS, REASEGUROS Y FONDOS DE PENSIONES, EXCEPTO LOS PLANES DE SEGUR
AFILIACIÓN OBLIGATORIA.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','K66')
ae.setAttribute('Descripcion_c','K66 - ACTIVIDADES AUXILIARES DE LAS ACTIVIDADES DE SERVICIOS FINANCIEROS.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','L68')
ae.setAttribute('Descripcion_c','L68 - ACTIVIDADES INMOBILIARIAS.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','M69')
ae.setAttribute('Descripcion_c','M69 - ACTIVIDADES JURÍDICAS Y DE CONTABILIDAD.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','M70')
ae.setAttribute('Descripcion_c','M70 - ACTIVIDADES DE OFICINAS PRINCIPALES; ACTIVIDADES DE CONSULTORÍA DE GESTIÓ
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','M71')
ae.setAttribute('Descripcion_c','M71 - ACTIVIDADES DE ARQUITECTURA E INGENIERÍA; ENSAYOS Y ANÁLISIS TÉCNICOS.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','M72')
ae.setAttribute('Descripcion_c','M72 - INVESTIGACIÓN CIENTÍFICA Y DESARROLLO.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','M73')
ae.setAttribute('Descripcion_c','M73 - PUBLICIDAD Y ESTUDIOS DE MERCADO.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','M74')
ae.setAttribute('Descripcion_c','M74 - OTRAS ACTIVIDADES PROFESIONALES, CIENTÍFICAS Y TÉCNICAS.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','M75')
ae.setAttribute('Descripcion_c','M75 - ACTIVIDADES VETERINARIAS.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','N77')
ae.setAttribute('Descripcion_c','N77 - ACTIVIDADES DE ALQUILER Y ARRENDAMIENTO.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','N78')
ae.setAttribute('Descripcion_c','N78 - ACTIVIDADES DE EMPLEO.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','N79')
ae.setAttribute('Descripcion_c','N79 - ACTIVIDADES DE AGENCIAS DE VIAJES, OPERADORES TURÍSTICOS, SERVICIOS DE RES
CONEXAS.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','N80')
ae.setAttribute('Descripcion_c','N80 - ACTIVIDADES DE SEGURIDAD E INVESTIGACIÓN.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','N81')
ae.setAttribute('Descripcion_c','N81 - ACTIVIDADES DE SERVICIOS A EDIFICIOS Y PAISAJISMO.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','N82')
ae.setAttribute('Descripcion_c','N82 - ACTIVIDADES ADMINISTRATIVAS Y DE APOYO DE OFICINA Y OTRAS ACTIVIDADES D
EMPRESAS.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','O84')
ae.setAttribute('Descripcion_c','O84 - ADMINISTRACIÓN PÚBLICA Y DEFENSA; PLANES DE SEGURIDAD SOCIAL DE AFILIACI
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','P85')
ae.setAttribute('Descripcion_c','P85 - ENSEÑANZA.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','Q86')
ae.setAttribute('Descripcion_c','Q86 - ACTIVIDADES DE ATENCIÓN DE LA SALUD HUMANA.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','Q87')
ae.setAttribute('Descripcion_c','Q87 - ACTIVIDADES DE ATENCIÓN EN INSTITUCIONES.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','Q88')
ae.setAttribute('Descripcion_c','Q88 - ACTIVIDADES DE ASISTENCIA SOCIAL SIN ALOJAMIENTO.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','R90')
ae.setAttribute('Descripcion_c','R90 - ACTIVIDADES CREATIVAS, ARTÍSTICAS Y DE ENTRETENIMIENTO.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','R91')
ae.setAttribute('Descripcion_c','R91 - ACTIVIDADES DE BIBLIOTECAS, ARCHIVOS, MUSEOS Y OTRAS ACTIVIDADES CULTURA
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','R92')
ae.setAttribute('Descripcion_c','R92 - ACTIVIDADES DE JUEGOS DE AZAR Y APUESTAS.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','R93')
ae.setAttribute('Descripcion_c','R93 - ACTIVIDADES DEPORTIVAS, DE ESPARCIMIENTO Y RECREATIVAS.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','S94')
ae.setAttribute('Descripcion_c','S94 - ACTIVIDADES DE ASOCIACIONES.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','S95')
ae.setAttribute('Descripcion_c','S95 - REPARACIÓN DE COMPUTADORES Y DE EFECTOS PERSONALES Y ENSERES DOMÉSTIC
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','S96')
ae.setAttribute('Descripcion_c','S96 - OTRAS ACTIVIDADES DE SERVICIOS PERSONALES.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','T97')
ae.setAttribute('Descripcion_c','T97 - ACTIVIDADES DE LOS HOGARES COMO EMPLEADORES DE PERSONAL DOMÉSTICO.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','T98')
ae.setAttribute('Descripcion_c','T98 - ACTIVIDADES NO DIFERENCIADAS DE LOS HOGARES COMO PRODUCTORES DE BIEN
PROPIO.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
ae= aes.createRow()
ae.setAttribute('RecordName','U99')
ae.setAttribute('Descripcion_c','U99 - ACTIVIDADES DE ORGANIZACIONES Y ÓRGANOS EXTRATERRITORIALES.')
ae.setAttribute('Activo_c','Y')
aes.insertRow(ae)
BorrarPlanes()
BorrarPromocionesServicios()
def planRows=newView('Plan_c')
def abRows= newView('AnchoDeBanda_c')
def RadioRows= newView('IPRadioWifi_c')
def wifiRows= newView('NodoWifi_c')
def umRows = newView('UltimaMillaNetplus_c')
def olts = newView('OLT_c')
def splts = newView('Splitter_c')
def gHilos = newView('GrupoDeHilo_c')
def ColorHilos = newView('ColorDeHilo_c')
def buckets = newView('Bucket_c')
def CodPostales = newView('CodigoPostal_c')
if(Latitud == 'NORTE'){
valorLatitud_c = 'N'
}else{
valorLatitud_c = 'S'
}
if(nvl(tipoProducto,null)==null){ throw new oracle.jbo.ValidationException('Campo requerido: Servicio')}
if(nvl(segmentacion_c,null)==null){ throw new oracle.jbo.ValidationException('Campo requerido: Segmentacion')}
if(nvl(formaPago,null)==null){ throw new oracle.jbo.ValidationException('Campo requerido: Forma de Pago')}
if(nvl(sucursal_c,null)==null){ throw new oracle.jbo.ValidationException('Campo requerido: Sucursal')}
if(nvl(latitud_c,null)==null){ throw new oracle.jbo.ValidationException('Campo requerido: Coordenada Latitud')}
if(nvl(longitud_c,null)==null){ throw new oracle.jbo.ValidationException('Campo requerido: Coordenada Longitud')}
if(nvl(Latitud,null)==null){ throw new oracle.jbo.ValidationException('Campo requerido: Latitud')}
//servicio_c = 'fibra home';
/*
segmentacion_c = 'ultra';
formaPago = 'diners';
sucursal_c = 'quito';
latitud_c = "0°17'56.43\"";
longitud_c = "78°34'15.74\"";
*/
def provincia=''
def canton = '';
def dirs = DireccionInstalacion_Tgt_OpportunityToDireccionInstalacion_c_Tgt;
while (dirs.hasNext()){
def dir = dirs.next();
def esInstalacion = dir.SeleccionarDireccionDeInstalacion_c == 'Y';
println('dir instalación: '+ esInstalacion)
if (esInstalacion){
def datosDireccion=dir.Address_Src_AddressToDireccionInstalacion_c_Src
provincia = nvl(datosDireccion?.State,'');
provincia = provincia.toUpperCase().trim();
canton = nvl(datosDireccion?.AddrElementAttribute1,'');
canton = canton.toUpperCase().trim();
}
}
println('Consulta ancho de Banda provincia: '+provincia)
println('Consulta ancho de Banda canton: '+canton)
if(provincia == '' || canton == '' ){
throw new oracle.jbo.ValidationException('Es necesario ingresar una dirección de instalación')
}
payload.put('servicio',tipoProducto)
payload.put('segmentacion',segmentacion_c)
payload.put('formaPago',formaPago)
payload.put('sucursal',sucursal_c)
payload.put('latitud',latitud_c)
payload.put('valorLatitud',valorLatitud_c)
payload.put('longitud',longitud_c)
payload.put('provinciaEnlace',provincia)
payload.put('cantonEnlace',canton)
try{
consulta= adf.webServices.ConsultarAnchoDeBanda.POST(payload);
mensajeIntegracion = consulta?.message;
if(consulta?.code == '1' ){
def listaPlanes = consulta?.data['planes']
if(tipoProducto == 'wifi' ){
println('entrando a tipo wifi')
def listawifi = consulta?.data['wifi']
// println('listawifi: ' +listawifi)
int i=0;
for(nodo in listawifi){
//println('nodo: '+ nodo)
def wifiRow= wifiRows.createRow()
wifiRow.setAttribute('Oportunidad_Id_c',OptyId)
wifiRow.setAttribute('Activo_c','Y')
wifiRow.setAttribute('RecordName',nodo['codNodo'])
wifiRow.setAttribute('Descripcion_c',nodo['desNodo'])
wifiRows.insertRow(wifiRow)
def nodoWifiId =wifiRow.Id
def radioWifis = nodo['radioWifi']
for(ab in radioWifis){
//println('radio wifi: '+ ab)
//i++;
//if (i <10){
def radioRow = RadioRows.createRow()
radioRow.setAttribute('Oportunidad_Id_c',OptyId)
radioRow.setAttribute('Activo_c','Y')
radioRow.setAttribute('RecordName',ab['codRadio'])
radioRow.setAttribute('Descripcion_c',ab['desRadio'])
radioRow.setAttribute('NodoWifi_Id_c',nodoWifiId)
RadioRows.insertRow(radioRow)
//}
}
}
}else {
println('entrando a tipo Fibra')
def listafibra = consulta?.data['fibra']
def listaBuckets = consulta?.data['buckets']
for(ol in listafibra){
def olt = olts.createRow()
//println('olt:'+olt)
olt.setAttribute('Oportunidad_Id_c',OptyId)
olt.setAttribute('Activo_c','Y')
olt.setAttribute('RecordName',ol['codOlt'])
olt.setAttribute('Descripcion_c',ol['desOlt'])
olts.insertRow(olt)
def oltId = olt.Id
def listasplitter= ol['splitter']
for(sp in listasplitter){
//println('splitter:'+sp)
def splt = splts.createRow()
splt.setAttribute('Oportunidad_Id_c',OptyId)
splt.setAttribute('Activo_c','Y')
splt.setAttribute('RecordName',sp['codSplitter'])
splt.setAttribute('Descripcion_c',sp['codificacion'])
splt.setAttribute('OLT_Id_c',oltId)
def splitterId = splt.Id
splts.insertRow(splt)
def gruposHilo = sp['grupoHilo']
for(gh in gruposHilo){
//println('gh:'+gh)
def gHilo = gHilos.createRow()
gHilo.setAttribute('Oportunidad_Id_c',OptyId)
gHilo.setAttribute('Activo_c','Y')
gHilo.setAttribute('RecordName',gh['codGrupo'])
gHilo.setAttribute('Descripcion_c',gh['desGrupo'])
gHilo.setAttribute('Splitter_Id_c',splitterId)
gHilos.insertRow(gHilo)
def ghId = gHilo.Id
def coloresHilo = gh['colorHilo']
//println(coloresHilo)
for(ch in coloresHilo){
//println('ch:'+ ch)
def ColorHilo = ColorHilos.createRow()
ColorHilo.setAttribute('Oportunidad_Id_c',OptyId)
ColorHilo.setAttribute('Activo_c','Y')
ColorHilo.setAttribute('RecordName',ch['codColor'])
ColorHilo.setAttribute('Descripcion_c',ch['desColor'])
ColorHilo.setAttribute('GrupoDeHilo_Id_c',ghId)
ColorHilos.insertRow(ColorHilo)
}
}
}
}
for(bc in listaBuckets){
def bucket = buckets.createRow()
//println('olt:'+olt)
bucket.setAttribute('Oportunidad_Id_c',OptyId)
bucket.setAttribute('Activo_c','Y')
bucket.setAttribute('RecordName',bc['codBucket'])
bucket.setAttribute('Descripcion_c',bc['desBucket'])
buckets.insertRow(bucket)
def cpId = bucket.Id
def listasCodigos = bc['codigos']
for(cp in listasCodigos){
//println('splitter:'+sp)
def CodPostal = CodPostales.createRow()
CodPostal.setAttribute('Oportunidad_Id_c',OptyId)
CodPostal.setAttribute('Activo_c','Y')
CodPostal.setAttribute('RecordName',cp['codPostal'])
CodPostal.setAttribute('Descripcion_c',cp['desPostal'])
CodPostal.setAttribute('Bucket_Id_c',cpId)
CodPostales.insertRow(CodPostal)
}
}
}
println('guardando planes')
for(plan in listaPlanes){
//println('planes:' +plan)
def planRow=planRows.createRow()
def inventoryId= ''+plan['inventoryItemId']
def skipPlan= ! inventoryId.isInteger()
//if(!skipPlan){
planRow.setAttribute('Oportunidad_Id_c',OptyId)
planRow.setAttribute('Activo_c','Y')
planRow.setAttribute('RecordName',plan['codPlan'])
planRow.setAttribute('Descripcion_c',plan['desPlan'])
planRow.setAttribute('InventoryItemId_c',plan['inventoryItemId'])
planRows.insertRow(planRow)
def planId=planRow.Id
def ultimasMillas=plan['ultimaMilla']
def anchosBanda=plan['anchoBanda']
for (um in ultimasMillas){
println('ultimaMilla: '+ultimasMillas)
//def codUltimaMilla = ultimasMillas.codUltimaMilla;
//def cod =codUltimaMilla.trim();
def desUltimaMilla = um['desUltimaMilla'];
def des =desUltimaMilla.trim();
def umRow=umRows.createRow()
umRow.setAttribute('Oportunidad_Id_c',OptyId)
umRow.setAttribute('Activo_c','Y')
umRow.setAttribute('RecordName',um['codUltimaMilla'])
umRow.setAttribute('Descripcion_c',des)
umRow.setAttribute('Plan_Id_c',planId)
umRows.insertRow(umRow)
}
//}
for(ab in anchosBanda){
println('ancho de banda: '+ab)
def abRow=abRows.createRow()
abRow.setAttribute('Oportunidad_Id_c',OptyId)
abRow.setAttribute('Activo_c','Y')
abRow.setAttribute('RecordName',ab['codAnchoBanda'])
abRow.setAttribute('Descripcion_c',ab['desAnchoBanda'])
abRow.setAttribute('PrecioBruto_c',ab['tarifaBasica'])
abRow.setAttribute('Plan_Id_c',planId)
abRows.insertRow(abRow)
}
}
setAttribute('FechaConsultaInformacionPlanes_c',now())
POST_param.put('MensajeIntegracion_c',encodeToBase64(''+mensajeIntegracion))
POST_param.put('Payload_c',encodeToBase64(''+ payload))
POST_param.put('Response_c',encodeToBase64(''+consulta))
adf.webServices.LogBitacora.POST(POST_param)
}else{
println('Entrando a code =! de 1')
POST_param.put('MensajeIntegracion_c',encodeToBase64(''+mensajeIntegracion))
POST_param.put('Payload_c',encodeToBase64(''+ payload))
POST_param.put('Response_c',encodeToBase64(''+consulta))
adf.webServices.LogBitacora.POST(POST_param)
throw new oracle.jbo.ValidationException('(Puntonet) '+mensajeIntegracion)
}
}
catch(Exception e){
def msg=e.message
POST_param.put('MensajeIntegracion_c',encodeToBase64(''+msg))
POST_param.put('Payload_c',encodeToBase64(''+ payload))
POST_param.put('Response_c',encodeToBase64(''+consulta))
adf.webServices.LogBitacora.POST(POST_param)
throw new oracle.jbo.ValidationException('' + msg)
}
def bitacora=[:]
def payload=[:]
bitacora.put('Oportunidad_Id_c',OptyId)
bitacora.put('Integracion_c','4')
bitacora.put('IdPrincipal_c',0)
def response = '';
def mensajeRespuesta = '';
def tipoCliente = CustPartyType;
//println(OptyId)
try{
def accion='3'
// def sucursal= getSelectedListDisplayValue('SucursalDeVenta_c');
}
def provincia=''
def canton = '';
def dirs = DireccionInstalacion_Tgt_OpportunityToDireccionInstalacion_c_Tgt;
while (dirs.hasNext()){
def dir = dirs.next();
def esInstalacion = dir.SeleccionarDireccionDeInstalacion_c == 'Y';
println('esInstalacion: '+esInstalacion)
if (esInstalacion){
def datosDireccion=dir.Address_Src_AddressToDireccionInstalacion_c_Src
provincia = nvl(datosDireccion?.State,'');
provincia = provincia.toUpperCase().trim();
canton = nvl(datosDireccion?.AddrElementAttribute1,'');
canton = canton.toUpperCase().trim();
}
}
try{
response = adf.webServices.reservarLiberarSplitter.POST(payload)
println('RESPUESTA: '+response)
mensajeRespuesta = response.mensaje;
if (response.codigoRespuesta == '1'){
def pyss = response.promociones;
for(pys in pyss){
def tipo =pys['tipo']
def subtipo =pys['subtipo']
if(tipo == 'Promoción'){tipo = 'PROMOCION'}else{tipo = 'SERVICIO'}
def pysRow
if(subtipo == 'Descuento'){
pysRow=PydRows.createRow()
pysRow.setAttribute('Activo_c','Y')
pysRow.setAttribute('IntervaloCadaEditableX_c',checkbox(pys['intervaloCadaEditable'] as Boolean))
pysRow.setAttribute('IntervaloHastaEditableX_c',checkbox(pys['intervaloMaxHastaEditable'] as Boolean))
}
else{
def cantidadNum = nvl(pys['cantidad'],'')
def cantidadMin = nvl(pys['cantidadMin'],'')
def cantidadMax = nvl(pys['cantidadMax'],'')
def estado = nvl(pys['estado.Descripcion'],'')
def valorMensual = nvl(pys['valorMensual'],'')
pysRow=pysRows.createRow()
pysRow.setAttribute('Tipo_c',tipo)
def renovacion = pys['renovacion']
pysRow.setAttribute('RenovacionFlag_c',checkbox(pys['renovacion']as Boolean))
pysRow.setAttribute('Renovacion_c',checkbox(pys['renovacion']as Boolean))
pysRow.setAttribute('CantidadEditable_c',checkbox(pys['cantidadEditable'] as Boolean))
pysRow.setAttribute('RenovacionEditable_c',checkbox(pys['renovacionEditable'] as Boolean))
pysRow.setAttribute('ValorUnitarioEditable_c',checkbox(pys['valorUnitarioEditable'] as Boolean))
pysRow.setAttribute('Seleccionar_c',checkbox(pys['obligatorio'] as Boolean))
pysRow.setAttribute('ConsultarDetalleDeLaPromocion_c',checkbox(pys['obligatorio'] as Boolean))
pysRow.setAttribute('CantidadNum_c',cantidadNum)
pysRow.setAttribute('CantidadMinima_c',cantidadMin)
pysRow.setAttribute('CantidadMaxima_c',cantidadMax)
pysRow.setAttribute('Estado_c',estado)
pysRow.setAttribute('ValorUnitario_c',pys['valorUnitario'] as BigDecimal)
pysRow.setAttribute('ValorMensual_c',valorMensual)
pysRow.setAttribute('IntervaloCadaEditable_c',checkbox(pys['intervaloCadaEditable'] as Boolean))
pysRow.setAttribute('IntervaloHastaEditable_c',checkbox(pys['intervaloMaxHastaEditable'] as Boolean))
pysRow.setAttribute('Subtipo_c',subtipo)
}
def idPromocion = nvl(pys['idPromocion'],'')
def descripcionPromocion = nvl(pys['Descripcion'],'')
if (descripcionPromocion ==''){
descripcionPromocion = 'Sin Descripcion'
}
def intervaloMaxCada = nvl(pys['intervaloMaxCada'],'')
def intervaloMinCada = nvl(pys['intervaloMinCada'],'')
def intervaloMaxHasta = nvl(pys['intervaloMaxHasta'],'')
def intervaloMinHasta = nvl(pys['intervaloMinHasta'],'')
def intervalocadaNumP = nvl(pys['intervaloMinCada'],'')
def intervaloHastaNumP = nvl(pys['intervaloMinHasta'],'')
def pysId=pysRow.Id
pysRow.setAttribute('RecordName',idPromocion)
pysRow.setAttribute('Descripcion_c',descripcionPromocion)
pysRow.setAttribute('DetalleEditable_c',checkbox(pys['detalleEditable'] as Boolean))
pysRow.setAttribute('Obligatorio_c',checkbox(pys['obligatorio'] as Boolean))
pysRow.setAttribute('DiferirEditable_c',checkbox(pys['diferirEditable'] as Boolean))
pysRow.setAttribute('DescuentoEditable_c',checkbox(pys['descuentoEditable'] as Boolean))
pysRow.setAttribute('Oportunidad_Id_c',OptyId)
pysRow.setAttribute('IntervaloMaximoCada_c',intervaloMaxCada)
pysRow.setAttribute('IntervaloMinimoCada_c',intervaloMinCada)
pysRow.setAttribute('IntervaloMaximoHasta_c',intervaloMaxHasta)
pysRow.setAttribute('IntervaloMinimoHasta_c',intervaloMinHasta)
pysRow.setAttribute('IntervaloCadaNum_c',intervalocadaNumP)
pysRow.setAttribute('IntervaloHastaNum_c',intervaloHastaNumP)
if(subtipo=='Descuento'){
PydRows.insertRow(pysRow)
}
else{
pysRows.insertRow(pysRow)
}
DiferirRow.setAttribute('Detalle_Id_c',detalleId)
def Descuentos = Diferir['descuento']
for(Descuento in Descuentos){
def DescuentoRow=DescuentoRows.createRow()
def descuentoId = DescuentoRow.Id;
def descuentoDescripcion = nvl(Descuento['Descripcion'],'')
if (descuentoDescripcion == '' ){descuentoDescripcion = 'Sin Descuento'}
DescuentoRow.setAttribute('Descripcion_c',descuentoDescripcion)
//pysRow.setAttribute('Descuento_c',Descuento['Descripcion'])
if(subtipo == 'Descuento'){
DescuentoRow.setAttribute('PromocionDescuento_Id_c',pysId)
}
else{
DescuentoRow.setAttribute('PromocionOservicio_Id_c',pysId)
}
DescuentoRow.setAttribute('Oportunidad_Id_c',OptyId)
DescuentoRow.setAttribute('Activo_c','Y')
def coddescuento = nvl(Descuento['Codigo'],'');
if (coddescuento == ''){coddescuento = 0}
DescuentoRow.setAttribute('RecordName',coddescuento)
def descuentoHasta = nvl(Descuento['Hasta'],'')
def descuentoCada = nvl(Descuento['Cada'],'')
def porcentajeDescuento = nvl(Descuento['Porcentaje'],'')
DescuentoRow.setAttribute('Hasta_c',descuentoHasta)
DescuentoRow.setAttribute('Cada_c',descuentoCada)
DescuentoRow.setAttribute('Porcentaje_c',porcentajeDescuento)
DescuentoRow.setAttribute('Diferir_Id_c',DiferirId)
DescuentoRows.insertRow(DescuentoRow)
def descuentoDefault = nvl(Descuento['Default'],'');
if(descuentoDefault == 1){
DiferirRow.setAttribute('DescuentoDefault_Id_c', descuentoId)
if(diferirDefault == 1 && detalleDefault ==1){
pysRow.setAttribute('Descuento_Id_c',descuentoId)
}}
}
}
}
}
bitacora.put('MensajeIntegracion_c',encodeToBase64('Consulta Exitosa'))
bitacora.put('Payload_c',encodeToBase64(''+ payload))
bitacora.put('Response_c',encodeToBase64(''+response))
adf.webServices.LogBitacora.POST(bitacora)
}else{
throw new oracle.jbo.ValidationException('(Puntonet) '+ mensajeRespuesta)
}
}
catch(Exception e){
def msg=e.message
throw new oracle.jbo.ValidationException(''+msg)
bitacora.put('MensajeIntegracion_c',encodeToBase64(''+msg))
bitacora.put('Payload_c',encodeToBase64(''+ payload))
bitacora.put('Response_c',encodeToBase64(''+response))
adf.webServices.LogBitacora.POST(bitacora)
}
catch(Exception e){
def msg=e.message
bitacora.put('MensajeIntegracion_c',encodeToBase64(''+msg))
bitacora.put('Payload_c',encodeToBase64(''+ payload))
bitacora.put('Response_c',encodeToBase64(''+response))
adf.webServices.LogBitacora.POST(bitacora)
throw new oracle.jbo.ValidationException(''+msg)
validarDetalleDescuento()
def tipoDeIdentificacion = '';
def numeroDeIdentificacion = '';
def tipoDoc=nvl(TipoDeIdentificacion_c,'');
def numDoc = nvl(NumeroDeDocumento_c,'');
nombreArchivo = nvl(atts.FileName,'');
size = nvl(atts.UploadedFileLength,0 as long);
//println('nombre archivo:'+nombreArchivo)
type = nvl(atts.UploadedFileContentType,'');
AttachedDocumentId = nvl(atts.AttachedDocumentId,0 as long);
Pk1Value = nvl(atts.Pk1Value,'');
archivoMap.put('fileName',nombreArchivo)
archivoMap.put('size',size)
listaNombreArchivoAdjunto.add(archivoMap)
archivosAdjuntos.put('nombreArchivo',nombreArchivo)
archivosAdjuntos.put('type',type)
def GetParameters= [:]
GetParameters.put('AttachedDocumentId',AttachedDocumentId)
GetParameters.put('EntityName',EntityName)
GetParameters.put('Pk1Value',Pk1Value)
if(nombreArchivo != ''|| Pk1Value != ''){
def response = adf.webServices.Adjuntos.getAttachmentContent(GetParameters)
//println('responseadjunto:'+response)
base64 = response.UploadedFile;
base64=base64.replace(Character.toString(13 as char),'')
base64=base64.replace(Character.toString(10 as char),'')
archivosAdjuntos.put('base64',base64)
}
archivosAdjuntosA.add(archivosAdjuntos)
}
println('listaNombreArchivoAdjunto:'+listaNombreArchivoAdjunto)
def errorListOp=[]
def errorListCon=[]
def errorCountOp=0
def errorCountCon=0
def countT = 0;
def countR = 0;
def TelefonoMovil=false;
def tipoCliente = CustPartyType;
def countTelefonos=0
// datos de oportunidad
def datosOportunidad_c = [:]
def IdOportunidad = OptyNumber;
//def IdOportunidad = '669183';
telefonos_c.put('tipo',TipoTel.trim())
if(TipoTel == 'MOBILE'){
if (operadora == null ||operadora == ''){
throw new oracle.jbo.ValidationException('(BDS) Falló envio de contrato: Faltan los siguientes datos en el perfil del Con
telefono.')
}
else{
telefonos_c.put('principal','Y')
telefonos_c.put('operadora',operadora)
TelefonoMovil = true
countTelefonos+=1
}
}
else{
if(TipoTel == 'WORK'){
telefonos_c.put('principal','N')
telefonos_c.put('operadora','')
countTelefonos+=1
}
else{
if(TipoTel == 'HOME'){
telefonos_c.put('principal','N')
telefonos_c.put('operadora','')
countTelefonos+=1
}
}
}
telefonosA.add(telefonos_c)
countT+=1
}
if(!TelefonoMovil)
{
throw new oracle.jbo.ValidationException('(BDS) Falló envio de contrato: Faltan los siguientes datos en el perfil del Contac
móvil.')
}
nombres = nvl (Person?.PersonFirstName, '');
apellidos = nvl(Person?.PersonLastName,'');
genero = nvl(Person?.Gender,'');
fechaDeNacimiento = nvl(Person?.DateOfBirth as String,'');
estadoCivil = nvl( Person?.MaritalStatus,'');
discapacitado = nvl (Person?.Discapacitado_c,'');
println('discapacitado:'+discapacitado )
porcentajeDiscapacitado = nvl(Person?.PorcentajeDeDiscapacidad_c,0 as BigDecimal)*100
if(discapacitado == '' || discapacitado == 'N'){discapacitado = 'N'}else{discapacitado = 'Y'}
terceraEdad = nvl(Person?.TerceraEdad_c,'');
println('terceraEdad:'+terceraEdad)
if(terceraEdad == '' || terceraEdad == 'N'){terceraEdad = 'N'}else{terceraEdad = 'Y'}
if (tipoDeIdentificacion == 'R'){
telefonos_c.put('tipo',TipoTel.trim())
if(TipoTel == 'MOBILE'){
if (operadora == null ||operadora == ''){
//if ()
throw new oracle.jbo.ValidationException('(BDS) Falló envio de contrato: Faltan los siguientes datos en el perfil del Cont
telefono.')
}else{
telefonos_c.put('principal','Y')
telefonos_c.put('operadora',operadora)
countTelefonos+=1
TelefonoMovil = true
}}else{
if (TipoTel == 'WORK'){
telefonos_c.put('principal','N')
telefonos_c.put('operadora',nvl(operadora,''))
countTelefonos+=1
}else{
if (TipoTel == 'HOME'){
telefonos_c.put('principal','N')
telefonos_c.put('operadora',nvl(operadora,''))
countTelefonos+=1
}
}
}
telefonosA.add(telefonos_c)
countT+=1
}
if(!TelefonoMovil){
throw new oracle.jbo.ValidationException('(BDS) Falló envio de contrato: Faltan los siguientes datos en el perfil del Conta
móvil.')
}
//tipoDeIdentificacion = ''+nvl(PrimaryContactPerson?.TipoDocumento_c,'');
//numeroDeIdentificacion = '' +nvl(PrimaryContactPerson?.NumeroDeDocumento_c,'');
nombres = nvl(PrimaryContactPerson?.PersonFirstName, '');
apellidos = nvl(PrimaryContactPerson?.PersonLastName,'');
genero = nvl(PrimaryContactPerson?.Gender,'');
fechaDeNacimiento = nvl(PrimaryContactPerson?.DateOfBirth as String,'');
estadoCivil = nvl( PrimaryContactPerson?.MaritalStatus,'');
discapacitado = nvl (PrimaryContactPerson?.Discapacitado_c,'');
if(discapacitado == '' || discapacitado == 'N'){discapacitado = 'N'}else{discapacitado = 'Y'}
terceraEdad = nvl(PrimaryContactPerson?.TerceraEdad_c,'');
if(terceraEdad == '' || terceraEdad == 'N'){terceraEdad = 'N'}else{terceraEdad = 'Y'}
if (tipoDeIdentificacion == 'R' ||tipoDeIdentificacion == 'RE' ){
nombreReferencial= nvl(Organization?.OrganizationName,'')
nombreReferencial = nombreReferencial.trim();
razonSocial = nvl(Organization?.RazonSocial_c,'')
razonSocial = razonSocial.trim();
empresa= nvl(TargetPartyName,'')
empresa=empresa.trim();
representanteLegal = nombres +' '+apellidos;
nombresRepresentante =nombres;
apellidosRepresentante = apellidos;
cedulaRepresentante = nvl(PrimaryContactPerson?.NumeroDeCedula_c,'')
cargoRepresentante = nvl(PrimaryContactPerson?.JobTitle,'');
}}
//DIRECCIONES
def Expresion = /^[A-Za-zÁÉÍÓÚáéíóúñÑ0-9\s.]+$/
def errorListCaracteres=[]
def errorCountCaracteres=0
def direccionesA = []
def latitud = '';
def longitud = '';
def coordenadaLatitud = '';
def coordenadaLongitud = '';
def pais='';
def parroquia='';
def canton = '';
def ciudad ='';
def calleprincipal = '';
def callesecundaria = '';
def provincia=''
def dirs = DireccionInstalacion_Tgt_OpportunityToDireccionInstalacion_c_Tgt;
def countDI = 0;
def countDF = 0
def barrioSectorConjunto=''
def NroExterior =''
def conjuntoUrbanizacion=''
def Referencia = ''
while (dirs.hasNext()){
def dir = dirs.next();
def direccionI = [:]
def direccionF =[:]
def esInstalacion = dir.SeleccionarDireccionDeInstalacion_c=='Y';
def esFacturacion=dir.DireccionDeFacturacion_c=='Y'
if (esInstalacion){
latitud = nvl(Latitud_c,'')
longitud = nvl(Longitud_c,'')
coordenadaLatitud = nvl(CoordenadaLatitud_c,'');
coordenadaLatitud = coordenadaLatitud.trim();
coordenadaLongitud = nvl(CoordenadaLongitud_c,'');
coordenadaLongitud = coordenadaLongitud.trim();
def datosDireccion=dir.Address_Src_AddressToDireccionInstalacion_c_Src
pais=nvl(datosDireccion?.Country,'');
pais = pais.trim();
provincia = nvl(datosDireccion?.State,'');
provincia = provincia.toUpperCase().trim();
canton = nvl(datosDireccion?.AddrElementAttribute1,'');
canton = canton.toUpperCase().trim();
parroquia =nvl(datosDireccion?.City,'');
ciudad = parroquia.trim();
calleprincipal = nvl(datosDireccion?.Address1,'').trim();
callesecundaria = nvl(datosDireccion?.Address2,'')
barrioSectorConjunto=nvl(datosDireccion?.AddrElementAttribute2,'').trim()
conjuntoUrbanizacion= nvl(datosDireccion?.AddrElementAttribute3,'').trim()
NroExterior=nvl(datosDireccion?.Address3,'').trim()
Referencia=nvl(datosDireccion?.AddrElementAttribute4,'').trim()
direccionI.put('latitud',latitud)
direccionI.put('longitud',longitud)
direccionI.put('coordenadaLatitud',coordenadaLatitud)
direccionI.put('coordenadaLongitud',coordenadaLongitud)
direccionI.put('tipoDireccion','1')
direccionI.put('pais',pais)
direccionI.put('provincia',provincia)
direccionI.put('canton',canton)
direccionI.put('parroquia',parroquia)
direccionI.put('ciudad',ciudad)
direccionI.put('calleprincipal',calleprincipal.trim())
direccionI.put('callesecundaria',callesecundaria.trim())
direccionI.put('numeroExterior',NroExterior.trim())
direccionI.put('barrioSector',barrioSectorConjunto.trim())
direccionI.put('numeracion',NroExterior.trim())
direccionI.put('conjuntoUrbanizacionEdificio',conjuntoUrbanizacion.trim())
direccionI.put('referencia',Referencia.trim())
direccionesA.add(direccionI)
countDI+=1
}
if(esFacturacion){
latitud = nvl(Latitud_c,'')
longitud = nvl(Longitud_c,'')
coordenadaLatitud = nvl(CoordenadaLatitud_c,'');
coordenadaLongitud = nvl(CoordenadaLongitud_c,'');
pais=nvl(dir.Address_Src_AddressToDireccionInstalacion_c_Src?.Country,'');
provincia = nvl(dir.Address_Src_AddressToDireccionInstalacion_c_Src?.State,'');
provincia = provincia.toUpperCase().trim();
canton = nvl(dir.Address_Src_AddressToDireccionInstalacion_c_Src?.AddrElementAttribute1,'');
canton = canton.toUpperCase().trim();
parroquia =nvl(dir.Address_Src_AddressToDireccionInstalacion_c_Src?.City,'');
calleprincipal = nvl(dir.Address_Src_AddressToDireccionInstalacion_c_Src?.Address1,'');
callesecundaria = nvl(dir.Address_Src_AddressToDireccionInstalacion_c_Src?.Address2,'');
NroExterior = nvl(dir.Address_Src_AddressToDireccionInstalacion_c_Src?.Address3,'');
barrioSectorConjunto = nvl(dir.Address_Src_AddressToDireccionInstalacion_c_Src?.AddrElementAttribute2,'');
conjuntoUrbanizacion = nvl(dir.Address_Src_AddressToDireccionInstalacion_c_Src?.AddrElementAttribute3,'');
Referencia=nvl(dir.Address_Src_AddressToDireccionInstalacion_c_Src?.AddrElementAttribute4,'').trim()
direccionF.put('latitud','')
direccionF.put('longitud','')
direccionF.put('coordenadaLatitud','')
direccionF.put('coordenadaLongitud','')
direccionF.put('tipoDireccion','2')
direccionF.put('pais',pais.trim())
direccionF.put('provincia',provincia)
direccionF.put('canton',canton)
direccionF.put('parroquia',parroquia.trim())
direccionF.put('ciudad',ciudad.trim())
direccionF.put('calleprincipal',calleprincipal.trim())
direccionF.put('callesecundaria',callesecundaria.trim())
direccionF.put('numeroExterior',NroExterior.trim())
direccionF.put('barrioSector',barrioSectorConjunto.trim())
direccionI.put('numeracion',NroExterior.trim())
direccionI.put('conjuntoUrbanizacionEdificio',conjuntoUrbanizacion.trim())
direccionF.put('referencia',Referencia.trim())
direccionesA.add(direccionF)
countDF+=1
}
}
correoElectronico_c.put('correoFacturacion',correoFacturacion.trim())
correoElectronico_c.put('correo1',correo1.trim())
correoElectronico_c.put('correo2',correo2.trim())
datosCliente_c.put('correoElectronico',correoElectronico_c)
datosCliente_c.put('idNetplus',IdNetplus.trim())
datosCliente_c.put('telefonos',telefonosA)
datosCliente_c.put('tipoDeIdentificacion',tipoDeIdentificacion.trim())
datosCliente_c.put('numeroDeIdentificacion',numeroDeIdentificacion.trim())
datosCliente_c.put('razonSocial',razonSocial)
datosCliente_c.put('nombres',nombres.trim())
datosCliente_c.put('apellidos',apellidos.trim())
datosCliente_c.put('genero',genero.trim())
datosCliente_c.put('fechaDeNacimiento',fechaDeNacimiento)
datosCliente_c.put('estadoCivil',estadoCivil.trim())
datosCliente_c.put('discapacitado',discapacitado)
datosCliente_c.put('porcentajeDiscapacitado',porcentajeDiscapacitado)
datosCliente_c.put('terceraEdad',terceraEdad)
datosCliente_c.put('nombreReferencial',nombreReferencial)
datosCliente_c.put('empresa',empresa)
datosCliente_c.put('representanteLegal',representanteLegal)
datosCliente_c.put('nombresRepresentante',nombresRepresentante)
datosCliente_c.put('apellidosRepresentante',apellidosRepresentante)
datosCliente_c.put('cedulaRepresentante',cedulaRepresentante.trim())
datosCliente_c.put('cargoRepresentante',cargoRepresentante.trim())
datosCliente_c.put('direcciones',direccionesA)
//Referencias
def countIguales = 0; //agregar data clean
def tipos = []//agregar data clean
def referenciasA = []
def areaTelefonica = '';
def NombresReferencia = '';
def ApellidosReferencia = '';
def Parentesco = '';
def TelefonoReferencia = '';
def SectorReferencia = '';
def Role ='';
def PartyId = '';
def area ='';
def referencias_c=[:]
def Breferencias = newView('OpportunityContactVO')
def Breferenciasc = newViewCriteria(Breferencias)
def Breferenciasr = Breferenciasc.createRow()
def Breferenciasi = Breferenciasr.ensureCriteriaItem('OptyId')
Breferenciasi.setOperator('=')
Breferenciasi.setValue(OptyId)
Breferenciasc.insertRow(Breferenciasr)
Breferencias.appendViewCriteria(Breferenciasc)
Breferencias.executeQuery();
while (Breferencias.hasNext()){
def Breferencia = Breferencias.next();
if(Breferencia.RoleCd == 'REFERENCIA'){
if(Breferencia.PartyId == PrimaryContactPerson?.PartyId && tipoCliente == 'ORGANIZATION'){
throw new oracle.jbo.ValidationException('El contacto principal no puede ser referencia,seleccione otro contacto.')
}else{
countR+=1
NombresReferencia = nvl(Breferencia.ContactFirstName,'');
ApellidosReferencia = nvl(Breferencia.ContactLastName,'')
Parentesco = nvl(Breferencia.Parentesco_c,'')
PartyId = Breferencia.PartyId;
def admin_view = newView('PersonProfile');
def criteria = newViewCriteria(admin_view);
def row = criteria.createRow();
def vrc = row.ensureCriteriaItem('PartyId');
vrc.setOperator('=');
vrc.setValue(PartyId);
criteria.insertRow(row);
admin_view.appendViewCriteria(criteria);
admin_view.executeQuery();
while (admin_view.hasNext()) {
def curRow = admin_view.next()
SectorReferencia= nvl(curRow.Sector_c,'')
def telefonos = curRow.Phone;
while (telefonos.hasNext()){
def telefono = telefonos.next();
areaTelefonica = nvl(telefono.PhoneAreaCode,'')
TelefonoReferencia = nvl(telefono.PhoneNumber,'')
TelefonoReferencia = areaTelefonica.trim()+TelefonoReferencia.trim();
for (tel in telefonosA){
println('telefono de contacto: '+tel['numero'])
if(TelefonoReferencia == tel['numero']){
countIguales+=1
if(tel['tipo'] == 'WORK'){
tipos.add('Teléfono de trabajo:'+tel['numero'])
}else if(tel['tipo'] == 'HOME'){
tipos.add('Teléfono particular:'+tel['numero'])
}else{
tipos.add('Teléfono móvil:'+tel['numero'])
}
println('telefono de contacto: '+tel['numero']+' telefono de referencia: '+TelefonoReferencia)
}
}
println('referencia: '+countR)
}}}}}
if(countIguales >0){
def errorMessage = '(BDS) Los números de teléfono de la referencia no pueden ser iguales que en el contacto principal: ';
for(tipo in tipos){
errorMessage+=tipo
errorMessage+=' '
}
throw new oracle.jbo.ValidationException(errorMessage)
}
referencias_c.put('nombres',NombresReferencia.trim());
referencias_c.put('apellidos',ApellidosReferencia.trim());
referencias_c.put('parentescoRelacion',Parentesco.trim())
referencias_c.put('sector',SectorReferencia.trim());
referencias_c.put('telefono',TelefonoReferencia)
referenciasA.add(referencias_c)
//Score
def score = [:]
def Segmentacion = nvl(Segmentacion_c,'');
def SegmentacionSupervisor = nvl(SegmentacionSupervisor_c,'');
def CapacidaDePago = nvl(CapacidadDePago_c,'');
def FormaDePago_s =''+nvl(FormaDePagoDin_c,'');
def Registra_TC_Activa = nvl(RegistraTCActiva_c,'');
def ResultadoDelModelo = nvl(ResultadoDelModelo_c,'');
def ClienteCastigado_c = nvl(ClienteCastigado_c,'');
def ClienteConDeuda_c = nvl(ClienteConDeuda_c,'');
score.put('segmentacion',Segmentacion.trim())
score.put('segmentacionSupervisor',SegmentacionSupervisor.trim())
score.put('capacidadDePago',CapacidaDePago.trim())
score.put('formaDePago',FormaDePago_s.trim())
score.put('registraTCActiva',Registra_TC_Activa.trim())
score.put('resultadoDelModelo',ResultadoDelModelo.trim())
score.put('clienteCastigado',ClienteCastigado_c.trim())
score.put('clienteConDeuda',ClienteConDeuda_c.trim())
//Forma de Pago
def formaDePago = [:]
def CuentaPropia = nvl(CuentaPropia_c,'');
def FormaDePago_f = nvl(FormaDePagoDin_c,'');
def bancoTarjeta= nvl(getSelectedListDisplayValue('Banco_c'),'')
def defaultCuenta=''
if(TipoFormaPago_c=='4'){
defaultCuenta='CORRIENTE'
}
def TipoDeCuenta = nvl(TipoDeCuenta_c,defaultCuenta);
def numeroCuentaTarjeta =nvl(NroCuentaTarjeta_c,'');
def fechaExpiracionTarjeta = nvl(FechaExpiracionTarjeta_c as String,'');
def nombreTitular = nvl(NombreDeTitular_c,'')
def apellidosTitular = nvl(ApellidosDeTitular_c,'')
def cedulaTitular = nvl(CedulaDeTitular_c,'')
formaDePago.put('cuentaPropia',CuentaPropia.trim())
formaDePago.put('formaDePago',FormaDePago_f.trim())
formaDePago.put('bancoTarjeta',bancoTarjeta)
formaDePago.put('tipoDeCuenta',TipoDeCuenta)
formaDePago.put('numeroCuentaTarjeta',numeroCuentaTarjeta.trim())
formaDePago.put('fechaExpiracionTarjeta',fechaExpiracionTarjeta)
formaDePago.put('nombreTitular',nombreTitular.trim())
formaDePago.put('apellidosTitular',apellidosTitular.trim())
formaDePago.put('cedulaTitular',cedulaTitular.trim())
//Producto
def producto = [:]
def Servicio_c = nvl (TipoDeServicio_c,'');
if(Servicio_c == 'wifi'){Servicio_c = 'Wifi'}else{Servicio_c = 'Fibra Home'}
def UltimaMilla = nvl(UltimaMilla_c,'');
def ultimaMillaC =nvl(UltimaMilla_Obj_c?.RecordName,'');
def Plan =nvl(Plan_c,'');
def AnchoDeBanda = nvl(AnchoDeBanda_c,'');
def Bucket = nvl(Bucket_Obj_c?.RecordName,'');
def CodigoPostal ='';
def cps = newView('CodigoPostal_c')
def cpsc = newViewCriteria(cps)
def cpsr = cpsc.createRow()
def cpsi = cpsr.ensureCriteriaItem('Oportunidad_Id_c')
cpsi.setOperator('=')
cpsi.setValue(OptyId)
cpsc.insertRow(cpsr)
cps.appendViewCriteria(cpsc)
cps.executeQuery();
while (cps.hasNext()){
def cp = cps.next();
CodigoPostal = nvl(cp.RecordName,'');
}
//Promociones
def promociones_c =[]
def serviciosAdicionales = []
def Tipo_1 = '';
def Renovacion_1 = '';
def Renovacion_2 = '';
def promociones = newView('PromocionesYServicios_c')
def promocionc = newViewCriteria(promociones)
def promocionr = promocionc.createRow()
def promocioni = promocionr.ensureCriteriaItem('Oportunidad_Id_c')
promocioni.setOperator('=')
promocioni.setValue(OptyId)
promocionc.insertRow(promocionr)
promociones.appendViewCriteria(promocionc)
def promocionj=promocionr.ensureCriteriaItem('Seleccionar_c')
promocionj.setOperator('=')
promocionj.setValue('Y')
promocionc.insertRow(promocionr)
promociones.appendViewCriteria(promocionc)
promociones.executeQuery();
while (promociones.hasNext()){
def promo = [:]
def serviciosAdd =[:]
def promocion = promociones.next();
promocion.calcularPromocion()
promocion.validarPromocion()
def enviar = promocion.Seleccionar_c;
def seleccionado = promocion.Descripcion_c;
//println(seleccionado+':'+enviar )
Tipo_1 = promocion.Tipo_c;
//promo.put('tipo'{,promocion.Tipo_c)
//if (enviar == 'Y'){
if(Tipo_1 == 'PROMOCION'){
promo.put('idPromocion',nvl(promocion.RecordName,''))
promo.put('cantidad',nvl(promocion.CantidadNum_c,0 as BigDecimal))
Renovacion_1 = nvl(promocion.RenovacionFlag_c,'N');
if(Renovacion_1 == 'Y'){Renovacion_1 = '1'}else{Renovacion_1 = '0'}
promo.put('renovacion',Renovacion_1)
def detalleP = nvl(promocion.Detalle_Obj_c?.RecordName,'')
//if (detalleP == 0){detalleP =''}
promo.put('detalle',detalleP)
def diferirP = nvl(promocion.Diferir_Obj_c?.RecordName,'');
if (diferirP == '0'){diferirP =''}
promo.put('diferir',diferirP)
def descuentoP = nvl(promocion.Descuento_Obj_c?.RecordName,'');
if(descuentoP == '0'){descuentoP =''}
promo.put('descuento',descuentoP)
promo.put('intervaloCada',nvl(promocion.IntervaloCadaNum_c,0 as BigDecimal))
promo.put('intervaloHasta',nvl(promocion.IntervaloHastaNum_c,0 as BigDecimal))
promo.put('valorUnitario',nvl(promocion.ValorUnitario_c,0 as BigDecimal))
promo.put('valorMensual',nvl(promocion.ValorMensual_c,0 as BigDecimal))
promociones_c.add(promo)
}else{
// serviciosAdd.put('tipo',nvl(promocion.Tipo_c,''))
serviciosAdd.put('idServicio',nvl(promocion.RecordName,''))
serviciosAdd.put('cantidad',nvl(promocion.CantidadNum_c,0 as BigDecimal))
Renovacion_2 = nvl(promocion.Renovacion_c,'N')
if(Renovacion_2 == 'Y'){Renovacion_2 = '0'}else{Renovacion_2 = '1'}
serviciosAdd.put('renovacion',Renovacion_2)
def detalleS = nvl(promocion.Detalle_Obj_c?.RecordName,'');
//if (detalleS ==0){detalleS =''}
serviciosAdd.put('detalle',detalleS)
def diferirS = nvl(promocion.Diferir_Obj_c?.RecordName,'');
if(diferirS == '0'){diferirS=''}
serviciosAdd.put('diferir',diferirS)
def descuentoS =nvl(promocion.Descuento_Obj_c?.RecordName,'');
if(descuentoS == '0'){descuentoS=''}
serviciosAdd.put('descuento',descuentoS)
serviciosAdd.put('intervaloCada',nvl(promocion.IntervaloCadaNum_c,0 as BigDecimal))
serviciosAdd.put('intervaloHasta',nvl(promocion.IntervaloHastaNum_c,0 as BigDecimal))
serviciosAdd.put('valorUnitario',nvl(promocion.ValorUnitario_c,0 as BigDecimal))
serviciosAdd.put('valorMensual',nvl(promocion.ValorMensual_c,0 as BigDecimal))
serviciosAdicionales.add(serviciosAdd)
}
//}
}
def revs = ChildRevenue;
while (revs.hasNext()){
def rev = revs.next();
def des = [:]
def desc = nvl(rev.DescuentoMasivoDin_Obj_c?.RecordName,'');
//informacionGeneralDeInstalacion
def infoGeneralInstalacion = [:]
def metrosEstimados = nvl(MetrosEstimados_c,0 as BigDecimal);
def pozos = nvl(Pozos_c,'');
def comentario =nvl(ComentariosDeInstalacionSimple_c,'');
//def comentario ='';
def pisosEdificacion=nvl(PisosDeEdificacion_c,'')
if(pisosEdificacion == 'UNO'){pisosEdificacion=1}
if(pisosEdificacion == 'DOS'){pisosEdificacion=2}
if(pisosEdificacion == 'TRES'){pisosEdificacion=3}
if(pisosEdificacion == 'CUATRO'){pisosEdificacion=4}
if(pisosEdificacion == 'EDIFICIO'){pisosEdificacion='Edificio'}
def Ductos = nvl(Ductos_c,'');
if(Ductos == 'NO'){Ductos = 'No'}
if(Ductos == 'SI'){Ductos = 'Si'}
def pisoInstalacion=nvl(PisoDeInstalacion_c,'')
if (pisoInstalacion =='UNO_INS'){pisoInstalacion =1}
if (pisoInstalacion =='DOS_INS'){pisoInstalacion =2}
if (pisoInstalacion =='TRES_INS'){pisoInstalacion =3}
if (pisoInstalacion =='CUATRO_INS'){pisoInstalacion =4}
if (pisoInstalacion =='CINCO_INS'){pisoInstalacion =5}
if (pisoInstalacion =='SEIS_INS'){pisoInstalacion =6}
if (pisoInstalacion =='SIETE_INS'){pisoInstalacion =7}
if (pisoInstalacion =='OCHO_INS'){pisoInstalacion =8}
if (pisoInstalacion =='NUEVE_INS'){pisoInstalacion =9}
if (pisoInstalacion =='MAYOR_9_INS'){pisoInstalacion ='mayor a 9'}
def requiereEscalera = nvl(RequiereEscalera_c,'')
def alturaEscalera = nvl(AlturaDeEscalera_c,'')
if (alturaEscalera =='TRES_METROS'){alturaEscalera ='3 m'}
if (alturaEscalera =='SEIS_METROS'){alturaEscalera ='6 m'}
if (alturaEscalera =='NUEVE_METROS'){alturaEscalera ='9 m'}
infoGeneralInstalacion.put('metrosEstimados',metrosEstimados)
infoGeneralInstalacion.put('pozos',pozos.trim())
infoGeneralInstalacion.put('comentario',comentario.trim())
infoGeneralInstalacion.put('pisosInstalacion',pisoInstalacion)
infoGeneralInstalacion.put('pisosEdificacion',pisosEdificacion)
infoGeneralInstalacion.put('ductos',Ductos)
infoGeneralInstalacion.put('requiereEscalera',requiereEscalera.trim())
infoGeneralInstalacion.put('alturaEscalera',alturaEscalera)
//archivosAdjuntos":
if(countR == 0){
count+=1
MsgE = MsgE + 'una Referencia,' + ' ';
}
if(barrioSectorConjunto==''){
count+=1
MsgE = MsgE + 'el Barrio / Sector,' + ' ';
}else if (!barrioSectorConjunto.matches(Expresion)){
errorListCaracteres.add('Barrio/Sector')
errorCountCaracteres+=1
}
if(conjuntoUrbanizacion==''){
count+=1
MsgE = MsgE + 'Conjunto/Urbanización/Edificio,' + ' ';
}else if(!conjuntoUrbanizacion.matches(Expresion)){
errorListCaracteres.add('Conjunto/Urbanización/Edificio')
errorCountCaracteres+=1
}
if(pisosEdificacion==''){
count+=1
MsgE = MsgE + 'Pisos de edificación, ' + ' ';
}
if(pisoInstalacion==''){
count+=1
MsgE = MsgE + 'Piso de instalación.' + ' ';
}
if (MsgE != ''){
if(count == 1){
MsgE = '(BDS) Falló envio de contrato: Falta el siguiente campo en la oportunidad: "'+ MsgE + '".';
}
else{
MsgE = '(BDS) Falló envio de contrato: Faltan los siguientes campos en la oportunidad: "'+ MsgE + '".';
}
throw new oracle.jbo.ValidationException(MsgE)
if(AreaComercial_c == 'CORPORATIVO' ){
if(IdNetplus == null ||IdNetplus ==''){
throw new oracle.jbo.ValidationException('No se puede enviar el contrato si el cliente no esta registrado en Netplus')
}
}
}
}
def errorMessage= ''
if(errorCountOp>0 || errorCountCon >0){
errorMessage= '(BDS) Falló envio de contrato:'
if(errorCountCon>0){
if(errorCountCon==1){
errorMessage+= ' Falta el siguiente campo en el perfil del Contacto: '
}
else{
errorMessage+= ' Faltan los siguientes campos en el perfil del Contacto: '
}
for(error in errorListCon){
errorMessage+=error
}
errorMessage+='.'
}
if(errorCountOp>0){
if(errorCountCon==1){
errorMessage+= ' Falta el siguiente campo en la oportunidad: '
}
else{
errorMessage+= ' Faltan los siguientes campos en la oportunidad: '
}
for(error in errorListOp){
errorMessage+=error
}
errorMessage+='.'
}
throw new oracle.jbo.ValidationException(''+errorMessage+')')
}
def errorMessageCaracteres= ''
if(errorCountCaracteres>0){
errorMessageCaracteres= '(BDS):'
if(errorCountCaracteres==1){
errorMessageCaracteres+= ' El campo: '
for(error in errorListCaracteres){
errorMessageCaracteres+=error
}
errorMessageCaracteres+= ' no puede contener caracteres especiales.'
}
else{
errorMessageCaracteres+= ' Los campos: '
for(error in errorListCaracteres){
errorMessageCaracteres+=error
errorMessageCaracteres+=','
}
errorMessageCaracteres+= ' no pueden contener caracteres especiales.'
}
throw new oracle.jbo.ValidationException(''+errorMessageCaracteres)
}
def envio = '';
try{
//throw new oracle.jbo.ValidationException(tipoDeIdentificacion+numeroDeIdentificacion)
//println('entrando a llamada')
println('payload envio: ' +payload)
envio = adf.webServices.EnvioDeInformacionDecontrato.POST(payload)
println('RESPUESTA ENVIO DE CONTRATO: '+ envio)
if (envio!=null ||envio!=''){
if (envio?.codigoRespuesta == '1'){
setAttribute('SalesStageId',GetSalesStageId('MMVE3'))
setAttribute('FechaEnvioContratoDigital_c', now())
setAttribute('IDTicketContratoNetplus_c', envio?.idTicketNetplus)
def POST_param = [:]
payload.put('archivosAdjuntos',listaNombreArchivoAdjunto)
def identificadorOppOSC_c = OptyId;
POST_param.put('Oportunidad_Id_c',identificadorOppOSC_c)
POST_param.put('Integracion_c',5)
POST_param.put('IdPrincipal_c',envio?.idTicketNetplus)
POST_param.put('MensajeIntegracion_c',encodeToBase64('Envio Correcto'))
POST_param.put('Payload_c',encodeToBase64(''+ payload))
POST_param.put('Response_c',encodeToBase64(''+envio))
adf.webServices.LogBitacora.POST(POST_param)
}else
{
//if(envio?.Status == 'Error'){
// }
}
}
}
catch(Exception e){
def msg=e.message
def POST_param = [:]
payload.put('archivosAdjuntos',listaNombreArchivoAdjunto)
def identificadorOppOSC_c = OptyId;
POST_param.put('Oportunidad_Id_c',identificadorOppOSC_c)
POST_param.put('Integracion_c',5)
POST_param.put('IdPrincipal_c',0)
POST_param.put('MensajeIntegracion_c',encodeToBase64(''+msg))
POST_param.put('Payload_c',encodeToBase64(''+ payload))
POST_param.put('Response_c',encodeToBase64(''+envio))
adf.webServices.LogBitacora.POST(POST_param)
throw new oracle.jbo.ValidationException(''+'' + msg)
def opLeads=newView('OpportunityLeadVO')
def opLeadc=newViewCriteria(opLeads)
def opLeadr=opLeadc.createRow()
def opLeadi=opLeadr.ensureCriteriaItem('OptyId')
opLeadi.setOperator('=')
opLeadi.setValue(OptyId)
opLeadc.insertRow(opLeadr)
opLeads.appendViewCriteria(opLeadc)
opLeads.executeQuery()
println('Ingresé a script')
while(opLeads.hasNext()){
def opLead=opLeads.next()
def leads=newView('Lead')
def leadc=newViewCriteria(leads)
def leadr=leadc.createRow()
def leadi=leadr.ensureCriteriaItem('LeadNumber')
leadi.setOperator('=')
leadi.setValue(opLead.LeadNumber)
leadc.insertRow(leadr)
leads.appendViewCriteria(leadc)
leads.executeQuery()
println('LeadNumber:'+opLead.LeadNumber)
while(leads.hasNext()){
def lead=leads.next()
def contactoId
def cuentaId
def clienteId
if(lead.CrearContacto_c=='Y'){
contactoId=lead.Contacto_Id_c
}
else{
contactoId=lead.PrimaryContactId
}
if(lead.CrearCliente_c=='Y'){
cuentaId=lead.IdCuentaCreada_c
}
else{
cuentaId=lead.Cuenta_Id_c
}
if(lead.TipoCliente_c=='PERSON'){
clienteId=contactoId
}
else if(lead.TipoCliente_c=='ORGANIZATION'){
clienteId=cuentaId
}
setAttribute('TargetPartyId',clienteId)
setAttribute('KeyContactId',contactoId)
setAttribute('Latitud_c',nvl(lead.LatitudLV_c,''))
setAttribute('CoordenadaLatitud_c',nvl(lead.CoordenadaLatitud_c,''))
setAttribute('CoordenadaLongitud_c', nvl(lead.CoordenadaLongitud_c,''))
setAttribute('Longitud_c',nvl(lead.LongitudL_c,''))
setAttribute('BarrioSectorConjunto_c',nvl(lead.BarrioSectorConjunto_c,''))
lead.setAttribute('CustomerId',clienteId)
lead.setAttribute('PrimaryContactId',contactoId)
lead.setAttribute('Cuenta_Id_c',cuentaId)
def map=[:]
map.put('clienteId',clienteId)
map.put('contactoId',contactoId)
map.put(cuentaId,cuentaId)
println(''+map)
}
crearDireccionesDeinstalacion()
}
setAttribute('InformaciónDeLeadActualizada_c','Y')
def historico = newView('HistoricoDeEtapaDeVenta_c')
def crear = historico.createRow();
crear.setAttribute('Oportunidad_c',OptyNumber);
crear.setAttribute('RecordName', SalesStage);
//crear.setAttribute('FechaFinDeEtapa_c',today());
historico.insertRow(crear)
//cuentas
BorrarFormasDePago()
def listRows = newView('FormaDePago_c')
try{
if(tipoCliente == 'PERSON'){
println('entrando a contacto')
contacto = AccountName;
if(nvl(contacto,null)==null){
throw new oracle.jbo.ValidationException('Campo requerido:Cliente ')
}else{
tipoDocumento_c = nvl(TipoDeIdentificacion_c,'')
numeroDocumento_c = nvl(NumeroDeDocumento_c,'')
if(tipoDocumento_c == 'R' ){
throw new oracle.jbo.ValidationException('Para consultar el score es necesario enviar Cédula o Pasaporte')
}
}
}else{
println('entrando a cuenta')
contacto = AccountName;
if(nvl(contacto,null)==null){
throw new oracle.jbo.ValidationException('Campo requerido:Cliente ')
}else{
def id= Organization?.PreferredContactPersonId;
println('id:'+id)
def admin_view = newView('PersonProfile');
def criteria = newViewCriteria(admin_view);
def row = criteria.createRow();
def vrc = row.ensureCriteriaItem('PartyId');
vrc.setOperator('=');
vrc.setValue(KeyContactId);
criteria.insertRow(row);
admin_view.appendViewCriteria(criteria);
admin_view.executeQuery();
while (admin_view.hasNext()) {
def curRow = admin_view.next()
tipoDocumento_c =curRow.TipoDocumento_c;
def cedula = nvl(curRow.NumeroDeCedula_c,'');
def pasaporte = nvl(curRow.NumeroDePasaporte_c,'');
nombre = nvl(curRow.PersonFirstName,'')
if(cedula ==''){
if(pasaporte == ''){
throw new oracle.jbo.ValidationException('Para consultar el score es necesario enviar Cédula o Pasaporte')
}else{
numeroDocumento_c = pasaporte;
tipoDocumento_c ='P'
}
}else{
numeroDocumento_c= cedula;
tipoDocumento_c ='C'
}
} }}
tipoDocumento_c = tipoDocumento_c.trim();
numeroDocumento_c = numeroDocumento_c.trim();
payload.put('tipoDocumento',tipoDocumento_c)
payload.put('numeroDocumento',''+numeroDocumento_c)
payload.put('idEjecutivoCorporativo',''+OwnerResourcePartyId)
println('PAYLOAD CONSULTA CALIFICACION: '+ payload+' Nombre:'+nombre)
consulta = adf.webServices.ConsultarCalificacionCliente.POST(payload)
println('RESPUESTA CONSULTA CALIFICACION: '+ consulta)
if(consulta?.codigoRespuesta == '1' ){
def capacidadPago_c = consulta?.capacidadPago;
setAttribute('Segmentacion_c',consulta?.segmentacion);
setAttribute('ClienteCastigado_c',consulta?.clienteCastigado.Descripcion[0]);
setAttribute('ResultadoDelModelo_c',consulta?.resultadoModelo);
setAttribute('RegistraTCActiva_c',consulta?.registraTCActiva);
setAttribute('ClienteConDeuda_c',consulta?.clienteDeuda.Descripcion[0]);
setAttribute('CapacidadPagoNum_c', (capacidadPago_c as BigDecimal).setScale(2,BigDecimal.ROUND_HALF_UP))
setAttribute('ScoreFixed_c',consulta?.segmentacion)
println('CAPACIDAD DE PAGO: '+ CapacidadPagoNum_c)
// creaHistoricoConsultaScore()
setAttribute('FechaConsultaScore_c',now())
POST_param.put('Oportunidad_Id_c',identificadorOppOSC_c)
POST_param.put('Integracion_c',2)
POST_param.put('MensajeIntegracion_c',encodeToBase64('Consulta Exitosa'))
POST_param.put('Payload_c',encodeToBase64(''+ payload))
POST_param.put('Response_c',encodeToBase64(''+consulta))
POST_param.put('IdPrincipal_c',0)
adf.webServices.LogBitacora.POST(POST_param)
if(Segmentacion_c != null ||Segmentacion_c!=''){
setAttribute('SalesStageId',GetSalesStageId('MMVE2'))
}else{
}
}
catch(Exception e){
def msg=e.message
POST_param.put('Oportunidad_Id_c',identificadorOppOSC_c)
POST_param.put('Integracion_c',2)
POST_param.put('MensajeIntegracion_c',encodeToBase64(msg))
POST_param.put('Payload_c',encodeToBase64(''+ payload))
POST_param.put('Response_c',encodeToBase64(''+consulta))
POST_param.put('IdPrincipal_c',0)
adf.webServices.LogBitacora.POST(POST_param)
//throw new oracle.jbo.ValidationException(''+consulta?.resultadoModelo)
throw new oracle.jbo.ValidationException('Error: ' + e)
}
if(CoC!=null){
if(tipoDocumento=='C' ){
if(tipoDocumento==tipoDeIdentificacion){
nroDoc=nvl(party.NumeroDeCedula_c,'')
setAttribute('EnviaCliente_c','Y')
setAttribute('CodigoNetplusDelCliente_c',codNetplus)
}else{
nroDoc=nvl(party.NumeroDeCedula_c,'')
setAttribute('EnviaCliente_c','N')
setAttribute('CodigoNetplusDelCliente_c',null)
}else{
if(tipoDocumento=='R'){
if(tipoDocumento==tipoDeIdentificacion){
nroDoc=nvl(party.JgzzFiscalCode,'')
setAttribute('EnviaCliente_c','Y')
setAttribute('CodigoNetplusDelCliente_c',codNetplus)
}else{
nroDoc=nvl(party.JgzzFiscalCode,'')
setAttribute('EnviaCliente_c','N')
setAttribute('CodigoNetplusDelCliente_c',null)
}
}else{
if(tipoDocumento=='P'){
if( tipoDocumento==tipoDeIdentificacion){
nroDoc=nvl(party.NumeroDePasaporte_c,'')
setAttribute('EnviaCliente_c','Y')
setAttribute('CodigoNetplusDelCliente_c',codNetplus)
}else{
nroDoc=nvl(party.NumeroDePasaporte_c,'')
setAttribute('EnviaCliente_c','N')
setAttribute('CodigoNetplusDelCliente_c',null)
}
} else{
setAttribute('TipoDeIdentificacion_c',party.TipoDocumento_c)
nroDoc=nvl(party.NumeroDeDocumento_c,'')
}
}
}
}else{
if(tipoDocumento=='C'){
nroDoc=nvl(party.NumeroDeCedula_c,'')
setAttribute('EnviaCliente_c','Y')
setAttribute('CodigoNetplusDelCliente_c',codNetplus)
}
else if(tipoDocumento=='R'){
nroDoc=nvl(party.JgzzFiscalCode,'')
setAttribute('EnviaCliente_c','Y')
setAttribute('CodigoNetplusDelCliente_c',codNetplus)
}
else if(tipoDocumento=='P'){
nroDoc=nvl(party.NumeroDePasaporte_c,'')
setAttribute('EnviaCliente_c','Y')
setAttribute('CodigoNetplusDelCliente_c',codNetplus)
}
else{
setAttribute('TipoDeIdentificacion_c',party.TipoDocumento_c)
nroDoc=nvl(party.NumeroDeDocumento_c,'')
}
setAttribute('EnviaCliente_c','N')
}
}
else if(Organization!=null){
party=Organization
def clientes = newView('ClienteNetplus_c')
def clientesc = newViewCriteria(clientes)
def clientescr = clientesc.createRow()
def clientesci = clientescr.ensureCriteriaItem('Cuenta_Id_c')
clientesci.setOperator('=')
clientesci.setValue(identificadorClienteOSC)
def clientesj = clientescr.ensureCriteriaItem('TipoDeDocumento_c')
clientesj.setOperator('=')
clientesj.setValue(tipoDocumento)
clientesc.insertRow(clientescr)
clientes.appendViewCriteria(clientesc)
clientes.executeQuery();
while (clientes.hasNext()){
def cliente = clientes.next();
CoC = cliente.Cuenta_Id_c;
tipoDeIdentificacion = nvl(cliente.TipoDeDocumento_c,'');
numeroDeIdentificacion =nvl(cliente.NumeroDeDocumento_c,'');
codNetplus= nvl(cliente.RecordName,'');
//println(tipoDeIdentificacion+numeroDeIdentificacion)
}
if(CoC!=null){
if(tipoDocumento=='RE'){
if(tipoDocumento==tipoDeIdentificacion){
nroDoc=nvl(party.RUCExterno_c,'')
setAttribute('EnviaCliente_c','Y')
setAttribute('CodigoNetplusDelCliente_c',codNetplus)
}else{
nroDoc=nvl(party.RUCExterno_c,'')
setAttribute('EnviaCliente_c','N')
setAttribute('CodigoNetplusDelCliente_c',null)
}
}
else if(tipoDocumento=='R'){
if(tipoDocumento==tipoDeIdentificacion){
setAttribute('EnviaCliente_c','Y')
setAttribute('CodigoNetplusDelCliente_c',codNetplus)
nroDoc=nvl(party.JgzzFiscalCode,'')
}
else{
nroDoc=nvl(party.JgzzFiscalCode,'')
setAttribute('EnviaCliente_c','N')
setAttribute('CodigoNetplusDelCliente_c',null)
}
}
else if(tipoDocumento=='P'){
if(tipoDocumento==tipoDeIdentificacion){
nroDoc=nvl(party.Pasaporte_c,'')
setAttribute('EnviaCliente_c','Y')
setAttribute('CodigoNetplusDelCliente_c',codNetplus)
}else{
nroDoc=nvl(party.Pasaporte_c,'')
setAttribute('EnviaCliente_c','N')
setAttribute('CodigoNetplusDelCliente_c',null)
}
}
else{
setAttribute('TipoDeIdentificacion_c',party.TipoDeDocumento_c)
nroDoc=nvl(party.NumeroDeDocumento_c,'')
}
}else{
party=Organization
if(tipoDocumento=='RE'){
nroDoc=nvl(party.RUCExterno_c,'')
setAttribute('EnviaCliente_c','Y')
setAttribute('CodigoNetplusDelCliente_c',codNetplus)
}
else if(tipoDocumento=='R'){
nroDoc=nvl(party.JgzzFiscalCode,'')
setAttribute('EnviaCliente_c','Y')
setAttribute('CodigoNetplusDelCliente_c',codNetplus)
}
else if(tipoDocumento=='P'){
nroDoc=nvl(party.Pasaporte_c,'')
setAttribute('EnviaCliente_c','Y')
setAttribute('CodigoNetplusDelCliente_c',codNetplus)
}
else{
setAttribute('TipoDeIdentificacion_c',party.TipoDeDocumento_c)
nroDoc=nvl(party.NumeroDeDocumento_c,'')
}
}
println('nroDoc:'+nroDoc)
}
if(nroDoc==''){
throw new oracle.jbo.ValidationException('El cliente no cuenta con el tipo de identificación seleccionado. Favor de seleccio
}
else{
setAttribute('NumeroDeDocumento_c',nroDoc)
}
def errorList=[]
def errorCount=0
def countT =0
def genero = '';
def tipoDeIdentificacion = '';
def numeroDeIdentificacion = '';
def fechaDeNacimiento = '';
def estadoCivil = '';
def tipoCliente = CustPartyType;
def canal =nvl(CanalObjC_c,'')
def Ejecutivo = nvl(PartyName1,'')
def sucursal = nvl(getSelectedListDisplayValue('SucursalDeFacturacion_c'),'')
def FormaDePago = nvl(FormaDePagoDin_c,'')
def UltimaMilla = nvl(UltimaMilla_c,'')
def plan = nvl(Plan_c,'')
def AnchoDeBanda = nvl(AnchoDeBanda_c,'')
def tipoDeServicio = nvl(TipoDeServicio_c,'')
def NodoWifi = nvl(NodoWifi_c,'')
def ipRadioWifi = nvl(IPRadioWifi_c,'')
def OLT = nvl(OLT_c,'')
def splitter = nvl(Splitter_c,'')
def GrupoDeHilo = nvl(GrupoDeHilo_c,'')
def ColorDeHilo = nvl(ColorDeHilo_c,'')
def bucket = nvl(Bucket_c,'')
def CodigoPostal = nvl(CodigoPostal_c,'');
def contacto = '';
if(tipoCliente == 'PERSON'){
contacto = AccountName;
if(contacto == null || contacto ==''){
errorList.add('Cliente.')
errorCount+=1
}
}
tipoDeIdentificacion = nvl(Person?.TipoDocumento_c,'');
numeroDeIdentificacion = nvl(Person?.NumeroDeDocumento_c,'');
genero = nvl(Person?.Gender,'');
fechaDeNacimiento = nvl(Person?.DateOfBirth,'');
estadoCivil = nvl( Person?.MaritalStatus,'');
}
else{
contacto = ContactName;
if(contacto == null || contacto ==''){
errorList.add('Contacto principal.')
errorCount+=1
}
if(TipoTel == 'MOBILE'){
if (operadora == null ||operadora == ''){
errorList.add('Operadora de telefono,debe elegirse desde el cliente.')
errorCount+=1
}}
countT+=1
}
tipoDeIdentificacion = nvl(PrimaryContactPerson?.TipoDocumento_c,'');
numeroDeIdentificacion = nvl(PrimaryContactPerson?.NumeroDeDocumento_c,'');
genero = nvl(PrimaryContactPerson?.Gender,'');
fechaDeNacimiento = nvl(PrimaryContactPerson?.DateOfBirth,'');
estadoCivil = nvl( PrimaryContactPerson?.MaritalStatus,'');
}
}
}
def errorMessage= 'Campo requerido: '
for(error in errorList){
errorMessage+=error
}
return errorMessage
(CMV o MMV) def metodoVentaId=GetSalesMethod(claveMetodoVentas)
(1 a 6) def etapaVentasId=GetSalesStageId(claveMetodoVentas+'E'+numeroEtapaVentas)
return SalesStageId==etapaVentasId
def TipoIdentificacion = TipoDeIdentificacion_c;
def NumeroDocumento = NumeroDeDocumento_c;
Organization?.CrearPersonaJuridicaNetplus()
if(cliente.SalesProfileType=='ZCA_PROSPECT'){
setAttribute('PrimeraVenta_c','Y')
if(nvl(OportunidadAbiertaContabilizada_c,'N')=='N'){
if(EstadoDeTemporalidad_c=='ACTIVA'){
cliente.setAttribute('OportunidadesAbiertas_c',nvl(cliente.OportunidadesAbiertas_c,0 as BigDecimal) + 1)
}
setAttribute('OportunidadAbiertaContabilizada_c','Y')
}
}
if(tipoCliente=='ORGANIZATION'){
setAttribute('ActividadEconomica_Id_c',cuenta.ActividadEconomica_Id_c)
setAttribute('NombreCatalogoCIIUDin_Id_c',cuenta.NombreCatalogoCIIUDin_Id_c)
setAttribute('SectorCIIU_c',cuenta.SectorCIIU_c)
}
else if(tipoCliente=='PERSON'){
if(AreaComercial_c=='MASIVO' && nvl(IDTicketContratoNetplus_c,'')==''){
crearDireccionesDeinstalacion()
}
}
}
if(nvl(OwnerResourcePartyId,0 as Long)!=0){
def r=OpportunityOwnerResource
if(nvl(r?.PartyId,0 as Long)==0){
def rs=newView('Resource')
def rc=newViewCriteria(rs)
def rr=rc.createRow()
def ri=rr.ensureCriteriaItem('PartyId')
ri.setOperator('=')
ri.setValue(OwnerResourcePartyId)
rc.insertRow(rr)
rs.appendViewCriteria(rc)
rs.executeQuery()
while(rs.hasNext()){
r=rs.next()
}
}
setAttribute('SucursalDeFacturacion_c',r.SucursalesDeFacturacion_c)
if(nvl(SucursalDeVenta_c,'')=='')
setAttribute('SucursalDeVenta_c',r.SucursalesDeFacturacion_c)
}
o el def team=OpportunityResource
no existe. Bprra def insert=true
rtyIdRemove si while(team.hasNext()){
def member=team.next()
if(member.ResourceId==partyIdInsert){
member.setAttribute('AccessLevelCode','300')
insert=false
}
if(member.ResourceId==partyIdRemove&&member.ResourceId!=OwnerResourcePartyId){
member.remove()
}
}
if(insert&&partyIdInsert!=0){
def member=team.createRow()
member.setAttribute('ResourceId',partyIdInsert)
member.setAttribute('AccessLevelCode','300')
team.insertRow(member)
}
def oldvalor= getOriginalAttributeValue('SalesStageId')
def oldvalorNom= getOriginalAttributeValue('SalesStage')
if(isAttributeChanged('SalesStageId')&& oldvalor!=SalesStageId){
//EN ESTA SECCIÓN DEBES BUSCAR LAS ETAPAS HISTORICAS Y PONERLES A TODAS QUE FINALIZARON EL DIA DE HOY
def historicos = newView('HistoricoDeEtapaDeVenta_c');
def act = newViewCriteria(historicos);
def row = act.createRow();
def vrc = row.ensureCriteriaItem('Oportunidad_Id_c');
vrc.setOperator('=');
vrc.setValue(OptyId);
/* def vri=row.ensureCriteriaItem('FechaFinDeEtapa_c')
vri.setOperator('ISBLANK')
*/
act.insertRow(row);
historicos.appendViewCriteria(act);
historicos.executeQuery();
while (historicos.hasNext()) {
def curRow = historicos.next()
curRow.setAttribute('FechaFinDeEtapa_c',today());
}
// A PARTIR DE ESTA SECCION HAY QUE CREAR EL HISTORICO NUEVO
def crear = historicos.createRow();
crear.setAttribute('Oportunidad_c', OptyNumber);
crear.setAttribute('RecordName', oldvalorNom);
//crear.setAttribute('FechaInicioDeEtapa_c', today());
historicos.insertRow(crear)
}
if(AreaComercial_c=='CORPORATIVO'){
getAssetsCorporativo()
}
else{
def assets=newView('AssetVO')
def assetc=newViewCriteria(assets)
def assetr=assetc.createRow()
def asseti=assetr.ensureCriteriaItem('IdentificadorDeOportunidad_Id_c')
asseti.setOperator('=')
asseti.setValue(OptyId)
assetc.insertRow(assetr)
assets.appendViewCriteria(assetc)
assets.executeQuery()
def totales=0
def instalados=0
def noConcretados=0
def otros=0
def importeNeto=0 as BigDecimal
def importeBruto=0 as BigDecimal
//ValorDeInstalacion_c
def instalacionNeta=0
def assList=[]
def serviciosActivos=true
def count=0
def noSale=false
while(assets.hasNext()){
def asset=assets.next()
def statusServicio=nvl(asset.EstatusServicio_c,'')
def importe=nvl(asset.AssetAmount,0 as BigDecimal)
def instalacion=nvl(asset.ValorDeInstalacion_c,0 as BigDecimal)
def assMap=[:]
assMap.put('statusServicio',statusServicio)
assMap.put('importe',importe)
assMap.put('instalados',instalados)
asset.getDatosOportunidad()
if(statusServicio=='ACTIVO'){
instalados+=1
importeNeto+=importe
instalacionNeta+=instalacion
importeBruto+=importe
}
else{
serviciosActivos=false
if(statusServicio=='NO_CONCRETADA'){
noSale=true
noConcretados+=1
importeBruto+=importe
}
else{
otros+=1
importeBruto+=importe
}
}
totales+=1
assList.add(assMap)
}
if(totales>0){
setAttribute('ImporteNeto_c',importeNeto)
setAttribute('InstalacionNeta_c',instalacionNeta)
if(instalados>0){
setAttribute('StatusCode','WON')
setAttribute('EffectiveDate',today())
def motivo=''
def codigoEtapa=''
if(AreaComercial_c=='MASIVO'){
motivo='SI_INSTALACION'
codigoEtapa='MMVE5'
}
else{
motivo='ADJUDICADA'
codigoEtapa='CMVE6'
}
setAttribute('MotivoDeGananciaperdida_c',motivo)
setAttribute('FechaVentaNeta_c',today())
setAttribute('SalesStageId',GetSalesStageId(codigoEtapa))
def cliente
if(Person!=null){
cliente=Person
}
else{
cliente=Organization
}
if(cliente!=null){
cliente.setAttribute('SalesProfileType','ZCA_CUSTOMER')
}
}
else{
if(noConcretados==totales){
setAttribute('EffectiveDate',today())
setAttribute('StatusCode','NO_SALE')
setAttribute('MotivoDeGananciaperdida_c','INSTALACION_NO_CONCRETA')
}
}
}/*
def map=[:]
map.put('totales',totales)
map.put('noConcretados',noConcretados)
map.put('instalados',instalados)
map.put('otros',otros)
map.put('importeBruto',importeBruto)
map.put('importeNeto',importeNeto)
map.put('assList',assList)
println('mapGetAssets:'+map) */
}
def prods=newView('Product')
def prodc=newViewCriteria(prods)
def prodr=prodc.createRow()
def prodi=prodr.ensureCriteriaItem('Name')
prodi.setOperator('=')
prodi.setValue(itemName)
prodc.insertRow(prodr)
prods.appendViewCriteria(prodc)
prods.executeQuery()
def itemId=0
def msgMap=[:]
msgMap.put('itemName',itemName)
while(prods.hasNext()&&itemId!=0){
def prod=prods.next()
msgMap.put('msg1','Entre')
itemId=nvl(prod.InventoryItemId,0 as Long)
}
println(''+msgMap)
return itemId as Long
def latitud=nvl(CoordenadaLatitud_c,'')
def longitud = nvl(CoordenadaLongitud_c,'')
def latitudValida= latitud =~ /^00([0-5])°([0-5]0|[0-5][1-9])\'([0-5]0.[0-9]*|[0-5][1-9].[0-9]*)/ || latitud==''
def longitudValida= longitud =~ /^^0(7[5-9]|[8-9]0|8[0-9]|9[1-2]|95)°([0-5]0|[0-5][0-9])\'([0-5]0.[0-9]|[0-5][0-9].[0-9]*)/ || lon
if(!longitudValida || !latitudValida){
def count=0
def msg = '(BDS) La '
if(!longitudValida){
msg+= 'Longitud '
count+=1
}
if(!latitudValida){
if(count==1)
msg+= 'y la '
msg+= 'Latitud '
count+=1
}
if(count==1){
msg+='no tiene '
}
else{
msg+='no tienen '
}
msg+="un formato correcto o no se encuentran dentro del territorio de Ecuador."
throw new oracle.jbo.ValidationException(msg)
}
def moc=nvl(AreaComercial_c,'')
def canal =nvl(CanalObjC_Id_c,0 as BigDecimal)
def origen=nvl(Origen_Id_c,0 as BigDecimal)
map.put('customerId',TargetPartyId)
map.put('tipoCliente',CustPartyType)
map.put('PartyUniqueName',cliente.PartyUniqueName)
return [map]
}
else{
setAttribute('OwnerResourcePartyId',usuarioGenericoId)
return []
}
cliente.setAttribute('OportunidadesAbiertas_c',optysAbiertasNew)
}
}
if(AreaComercial_c=='MASIVO' &&OwnerResourcePartyId!=usuarioGenericoId){
setAttribute('OwnerResourcePartyId',usuarioGenericoId)
setAttribute('OverrideReassignment_c','Y')
}
}
return []
def cliente
def tipoActual
if(Person!=null){
cliente=Person
tipoActual='PERSON'
}
else if(Organization!=null){
cliente=Organization
tipoActual='ORGANIZATION'
}
}
if(ownerIdCliente!=optyOwnerId && ownerIdCliente!=genericoMasivo && ownerIdCliente!=genericoCorporativo){
throw new oracle.jbo.ValidationException('El Cliente ' + cliente.PartyUniqueName + ' le pertenece al ejecutivo ' + cliente.O
posible
} tomar esta oportunidad')
}
def currentUsername=adf.context.getSecurityContext()?.getUserProfile()?.getUserID()
def resources=newView('Resource')
def resourcec=newViewCriteria(resources)
def resourcer=resourcec.createRow()
def resourcei=resourcer.ensureCriteriaItem('Username')
resourcei.setOperator('=')
resourcei.setValue(currentUsername)
resourcec.insertRow(resourcer)
resources.appendViewCriteria(resourcec)
resources.executeQuery()
def currentUserId
while(resources.hasNext()&¤tUserId==null){
def resource=resources.next()
currentUserId=resource.PartyId
}
if(isAttributeChanged('OwnerResourcePartyId') || getPrimaryRowState().isNew()){
def prevOwner=getOriginalAttributeValue('OwnerResourcePartyId') as Long
if(OwnerResourcePartyId!=currentUserId){
throw new oracle.jbo.ValidationException('Sólo los managers pueden asignar una oportunidad a otros usuarios')
}
def usuarioDesasignadoId=nvl(UsuarioDesasignado_Obj_c?.PartyId,0 as Long)
def tipoUsuario=adf.util.usuarioMasivoCorporativo()
if((prevOwner==genericoMasivo && tipoUsuario=='MASIVO' )||(prevOwner==genericoCorporativo && tipoUsuario=='CO
def fechaNull=new Date(01,01,50)
def fechaAsignacion=nvl(FechaDeAsignacion_c,fechaNull)
if(usuarioDesasignadoId!=currentUserId || fechaAsignacion+15<today()){
return true
}
else{
throw new oracle.jbo.ValidationException('Este usuario no puede tomar la oportunidad porque le fue desasignada en el
15}días desde la fecha de asignación')
}
else{
if(getPrimaryRowState().isNew())
return true
throw new oracle.jbo.ValidationException('No es posible tomar la oportunidad porque está siendo gestionada por otro e
}
}
else{
if(OwnerResourcePartyId!=currentUserId){
def team=OpportunityResource
def partOfTeam=false
while(team.hasNext()&&!partOfTeam){
def member=team.next()
if(member.PartyId==currentUserId && !member.getPrimaryRowState().isNew()){
partOfTeam=true
}
}
if(!partOfTeam){
if(!adf.util.usuarioAdministradorTemporalidad()){
throw new oracle.jbo.ValidationException('No puedes modificar esta oportunidad porque no eres parte del equipo de
}
}
}
}
return true
def moc=nvl(AreaComercial_c,'')
def canalId=nvl(CanalObjC_Id_c,0 as BigDecimal)
def origenId=nvl(Origen_Id_c,0 as BigDecimal)
if(moc==''){
setAttribute('AreaComercial_c','CORPORATIVO')
}
if(canalId==0 && origenId==0){
// setAttribute('CanalObjC_Id_c',300000033134896)
//setAttribute('Origen_Id_c',300000033134897)
}
getDatosCliente()
getDatosOwner()
getAssets()
importarRevenue()
def objects= []
objects.add('FormaDePago_c')
for(ob in objects){
if(!objects.contains(ob))
throw new oracle.jbo.ValidationException('Esta función está limitada a las vistas dentro de esta lista:' +objects)
adf.util.deleteView(ob as String,OptyId)
}
def objects= []
objects.add('PromocionesYServicios_c')
objects.add('PromocionDescuento_c')
objects.add('Detalle_c')
objects.add('Diferir_c')
objects.add('Descuento_c')
//objects.add('ChildRevenue')
for(ob in objects){
if(!objects.contains(ob)){
throw new oracle.jbo.ValidationException('Esta función está limitada a las vistas dentro de esta lista:' +objects)
}else{
adf.util.deleteView(ob as String,OptyId)
}
}
def revs=ChildRevenue
while (revs.hasNext()){
def rev=revs.next()
rev.remove()
}
setAttribute('Plan_c',null)
setAttribute('UltimaMilla_c',null)
setAttribute('NodoWifi_c',null)
setAttribute('IPRadioWifi_c',null)
setAttribute('AnchoDeBanda_c',null)
setAttribute('OLT_c',null)
setAttribute('Splitter_c',null)
setAttribute('GrupoDeHilo_c',null)
setAttribute('ColorDeHilo_c',null)
setAttribute('Bucket_c',null)
setAttribute('CodigoPostal_c',null)
def objects= []
objects.add('Plan_c')
objects.add('AnchoDeBanda_c')
objects.add('IPRadioWifi_c')
objects.add('NodoWifi_c')
objects.add('UltimaMillaNetplus_c')
objects.add('OLT_c')
objects.add('Splitter_c')
objects.add('GrupoDeHilo_c')
objects.add('ColorDeHilo_c')
objects.add('Bucket_c')
objects.add('CodigoPostal_c')
//objects.add('ChildRevenue')
for(ob in objects){
if(!objects.contains(ob)){
throw new oracle.jbo.ValidationException('Esta función está limitada a las vistas dentro de esta lista:' +objects)
}else{
println('eliminando:'+ ob)
adf.util.deleteView(ob,OptyId)
}
}
def revs=ChildRevenue
while (revs.hasNext()){
def rev=revs.next()
rev.remove()
}
def tipoPago=''
def mapRecords=newView('MapeoFormaTipoPago_c')
def mapRecordc=newViewCriteria(mapRecords)
def mapRecordr=mapRecordc.createRow()
def mapRecordi=mapRecordr.ensureCriteriaItem('FormaDePago_c')
mapRecordi.setOperator('=')
mapRecordi.setValue(formaPago)
mapRecordc.insertRow(mapRecordr)
mapRecords.appendViewCriteria(mapRecordc)
mapRecords.executeQuery()
println('Ingresando a vista')
while(mapRecords.hasNext()){
println('Ingresé, pero no ejecuté el next()')
def mapRecord=mapRecords.next()
println('Registro encontrado: ' + mapRecord?.TipoFormaDePago_c +','+ mapRecord?.getSelectedListDisplayValue('TipoFor
return mapRecord?.TipoFormaDePago_c
}
println('No encontré nada')
return ''
/*
def tipoPago=''
if(formaPago=='1'){
tipoPago= '1'
}
else if(formaPago=='2'){
tipoPago= '4'
}
else if(formaPago=='3'){
tipoPago= '4'
}
else if(formaPago=='4'){
tipoPago= '2'
}
else if(formaPago=='6'){
tipoPago= '4'
}
else if(formaPago=='8'){
tipoPago= '1'
}
else if(formaPago=='10'){
tipoPago= '1'
}
else if(formaPago=='12'){
tipoPago= '2'
}
else if(formaPago=='13'){
tipoPago= '2'
}
else if(formaPago=='15'){
tipoPago= '1'
}
else if(formaPago=='20'){
tipoPago= '1'
}
else if(formaPago=='21'){
tipoPago= '2'
}
else if(formaPago=='27'){
tipoPago= '4'
}
else if(formaPago=='31'){
tipoPago= '2'
}
else if(formaPago=='32'){
tipoPago= '1'
}
else if(formaPago=='51'){
tipoPago= '2'
}
else if(formaPago=='53'){
tipoPago= '0'
}
else if(formaPago=='58'){
tipoPago= '0'
}
else if(formaPago=='59'){
tipoPago= '0'
}
else if(formaPago=='66'){
tipoPago= '1'
}
else if(formaPago=='67'){
tipoPago= '2'
}
else if(formaPago=='69'){
tipoPago= '1'
}
else if(formaPago=='72'){
tipoPago= '1'
}
else if(formaPago=='74'){
tipoPago= '1'
}
else if(formaPago=='76'){
tipoPago= '4'
}
else if(formaPago=='78'){
tipoPago= '3'
}
else if(formaPago=='79'){
tipoPago= '0'
}
else if(formaPago=='82'){
tipoPago= '0'
}
else if(formaPago=='86'){
tipoPago= '0'
}
else if(formaPago=='90'){
tipoPago= '4'
}
else if(formaPago=='95'){
tipoPago= '0'
}
else if(formaPago=='96'){
tipoPago= '3'
}
else if(formaPago=='97'){
tipoPago= '3'
}
else if(formaPago=='98'){
tipoPago= '3'
}
else if(formaPago=='99'){
tipoPago= '3'
}
else if(formaPago=='100'){
tipoPago= '3'
}
else if(formaPago=='101'){
tipoPago= '2'
}
else if(formaPago=='102'){
tipoPago= '0'
}
else if(formaPago=='103'){
tipoPago= '0'
}
else if(formaPago=='106'){
tipoPago= '0'
}
else if(formaPago=='111'){
tipoPago= '3'
}
else if(formaPago=='113'){
tipoPago= '0'
}
else if(formaPago=='114'){
tipoPago= '0'
}
else if(formaPago=='115'){
tipoPago= '0'
}
else if(formaPago=='116'){
tipoPago= '0'
}
else if(formaPago=='117'){
tipoPago= '4'
}
else if(formaPago=='119'){
tipoPago= '3'
}
else if(formaPago=='120'){
tipoPago= '1'
}
else if(formaPago=='121'){
tipoPago= '1'
}
else if(formaPago=='122'){
tipoPago= '3'
}
else if(formaPago=='123'){
tipoPago= '3'
}
else if(formaPago=='124'){
tipoPago= '3'
}
else if(formaPago=='125'){
tipoPago= '3'
}
else if(formaPago=='126'){
tipoPago= '3'
}
else if(formaPago=='127'){
tipoPago= '1'
}
else if(formaPago=='128'){
tipoPago= '1'
}
else if(formaPago=='129'){
tipoPago= '3'
}
else if(formaPago=='130'){
tipoPago= '3'
}
else if(formaPago=='131'){
tipoPago= '3'
}
else if(formaPago=='132'){
tipoPago= '3'
}
else if(formaPago=='133'){
tipoPago= '3'
}
else if(formaPago=='134'){
tipoPago= '3'
}
else if(formaPago=='135'){
tipoPago= '3'
}
else if(formaPago=='136'){
tipoPago= '2'
}
else if(formaPago=='137'){
tipoPago= '2'
}
else if(formaPago=='138'){
tipoPago= '2'
}
else if(formaPago=='139'){
tipoPago= '2'
}
else if(formaPago=='142'){
tipoPago= '0'
}
else if(formaPago=='143'){
tipoPago= '0'
}
return tipoPago
*/
nsultaScore(nu def historicos= newView('HistoricoConsultaScore_c')
o,tipoDocument def historico= historicos.createRow()
def contadorConsultaScore=nvl(ContadorConsultaScore_c,0 as BigDecimal)
def tipoConsulta = ''
if(contadorConsultaScore==0){
tipoConsulta='1'
}else{
tipoConsulta='N'
}
def contactoId
if(Organization!=null){
contactoId=KeyContactId
}
else{
contactoId=TargetPartyId
}
historico.setAttribute('Segmentacion_c',Segmentacion_c)
historico.setAttribute('ClienteCastigado_c',ClienteCastigado_c)
historico.setAttribute('ResultadoDelModelo_c',ResultadoDelModelo_c)
historico.setAttribute('RegistraTCActiva_c',RegistraTCActiva_c)
historico.setAttribute('ClienteConDeuda_c',ClienteConDeuda_c)
historico.setAttribute('CapacidadDePago_c',CapacidadPagoNum_c)
historico.setAttribute('Oportunidad_Id_c',OptyId)
historico.setAttribute('Contacto_Id_c',contactoId)
historico.setAttribute('TipoConsulta_c',tipoConsulta)
historico.setAttribute('ConsultarScore_c','N')
historico.setAttribute('RecordName',numeroDocumento)
historico.setAttribute('TipoDeIdentificacion_c',tipoDocumento)
historico.setAttribute('OraZcxOwner_Id_c',OpportunityOwnerResource.ResourceProfileId)
setAttribute('ContadorConsultaScore_c',contadorConsultaScore+1)
println('insertando score en oportunidad '+historico.Oportunidad_Id_c)
setAttribute('SubEstado_c','CONTRATO_DEVUELTO_CLIENTE')
def plan=Plan_Obj_c
def ab=AnchoDeBanda_Obj_c
if(plan!=null && ab != null){
def itemId=nvl(plan?.InventoryItemId_c,0 as BigDecimal) as Long
def monto=nvl(ab?.PrecioBruto_c, 0 as BigDecimal) as Double
upsertRevenueLine(itemId, monto)
}
def bloqueaConversion=false
def opAbierta= StatusCode=='OPEN'
def enProcesoVentaMasivo= AreaComercial_c=='MASIVO'&& (SalesStageId== GetSalesStageId('MMVE1') || SalesStageId=
GetSalesStageId('MMVE2') || SalesStageId==
def enProcesoVentaCorporativo= GetSalesStageId('MMVE3'))
AreaComercial_c=='CORPORATIVO'
def conUsuarioGenerico= OwnerResourcePartyId== adf.util.usuarioGenericoMasivo() || OwnerResourcePartyId==
adf.util.usuarioGenericoCorporativo()
bloqueaConversion= !conUsuarioGenerico && enProcesoVentaMasivo && opAbierta
return bloqueaConversion
if(TargetPartyId!=null){
def partyId=TargetPartyId
def party
def tipoCliente
def nombreCampo
def ruc=''
def cedula=''
def pasaporte=''
def rucEx=''
def codigoNetplus=''
if(Person!=null){
party=Person
tipoCliente='PERSON'
nombreCampo='Contacto_Id_c'
codigoNetplus=nvl(Person.CodigoNetPlus_c,'').trim()
ruc=nvl(Person.JgzzFiscalCode,'')
cedula=nvl(Person.NumeroDeCedula_c,'')
pasaporte=nvl(Person.NumeroDePasaporte_c,'')
}
else{
party=Organization
tipoCliente='ORGANIZATION'
nombreCampo='Cuenta_Id_c'
codigoNetplus=nvl(Organization.CodigoNetPlus_c,'').trim()
ruc=nvl(Organization.JgzzFiscalCode,'')
pasaporte=nvl(Organization.Pasaporte_c,'')
rucEx=nvl(Organization.RUCExterno_c,'')
}
def customerName=party.PartyUniqueName
def documentosListados=0
def documentosListadosList=[]
def nroDocList=[]
if(ruc!=''){
documentosListados+=1
nroDocList.add(ruc)
documentosListadosList.add('R')
}
if(pasaporte!=''){
documentosListados+=1
nroDocList.add(pasaporte)
documentosListadosList.add('P')
}
if(cedula!=''){
documentosListados+=1
nroDocList.add(cedula)
documentosListadosList.add('C')
}
if(rucEx!=''){
documentosListados+=1
nroDocList.add(rucEx)
documentosListadosList.add('RE')
}
def cliNets =newView('ClienteNetplus_c');
def cliNetc=newViewCriteria(cliNets)
def cliNetr=cliNetc.createRow()
def cliNeti=cliNetr.ensureCriteriaItem(nombreCampo)
cliNeti.setOperator('=')
cliNeti.setValue(TargetPartyId)
cliNetc.insertRow(cliNetr)
cliNets.appendViewCriteria(cliNetc)
cliNets.executeQuery()
def numDocList=[]
def tipoDocList=[]
def codigoNetplusList=[]
def matchList=[]
def index=0
def count=0
def idMatchNetplus=-1
def countMatch=0
def matchIndexList=[]
while(cliNets.hasNext()){
def cliNet=cliNets.next()
def curCodNetplus=nvl(cliNet.RecordName,'')
def nroDoc=nvl(cliNet.NumeroDeDocumento_c,'')
def tipoDoc=nvl(cliNet.TipoDeDocumento_c,'')
codigoNetplusList.add(curCodNetplus)
tipoDocList.add(tipoDoc)
numDocList.add(nroDoc)
def matchDoc=false
switch(tipoDoc){
case 'R':
if(ruc==nroDoc){
matchDoc=true
documentosListadosList.remove(tipoDoc)
numDocList.remove(nroDoc)
}
break;
case 'C':
if(cedula==nroDoc){
matchDoc=true
documentosListadosList.remove(tipoDoc)
numDocList.remove(nroDoc)
}
break;
case 'P':
if(pasaporte==nroDoc){
matchDoc=true
documentosListadosList.remove(tipoDoc)
numDocList.remove(nroDoc)
}
break;
case 'RE':
if(rucEx==nroDoc){
matchDoc=true
documentosListadosList.remove(tipoDoc)
numDocList.remove(nroDoc)
}
break;
default:
break;
}
if(matchDoc){
countMatch+=1
matchIndexList.add(index)
}
if(codigoNetplus==curCodNetplus){
idMatchNetplus=index
}
matchList.add(matchDoc)
index+=1
count+=1
}
def errorMsg =''
def createRowClienteNetplus=false
if(index>0){
if(countMatch!= count){
errorMsg='El cliente ' + customerName + 'presenta inconsistencias en su código de Netplus. Favor de ponerse en conta
del
} sistema'
else if(idMatchNetplus==-1){
if(documentosListados==countMatch+1){
createRowClienteNetplus=true
}
else{
errorMsg='El cliente ' + customerName + 'presenta inconsistencias en su código de Netplus. Favor de ponerse en co
administrador
} del sistema'
}
}
else{
if(documentosListados==1 && codigoNetplus!=''){
createRowClienteNetplus=true
}
}
if(createRowClienteNetplus ){
def cliNet=cliNets.createRow()
cliNet.setAttribute('TipoDeDocumento_c',documentosListadosList[0])
cliNet.setAttribute('NumeroDeDocumento_c',nroDocList[0])
cliNet.setAttribute('RecordName',party.CodigoNetPlus_c)
cliNet.setAttribute(nombreCampo,TargetPartyId)
cliNets.insertRow(cliNet)
}
}
def opLeads=newView('OpportunityLeadVO')
def opLeadc=newViewCriteria(opLeads)
def opLeadr=opLeadc.createRow()
def opLeadi=opLeadr.ensureCriteriaItem('OptyId')
opLeadi.setOperator('=')
opLeadi.setValue(OptyId)
opLeadc.insertRow(opLeadr)
opLeads.appendViewCriteria(opLeadc)
opLeads.executeQuery()
while(opLeads.hasNext()){
def opLead=opLeads.next()
def leads=newView('Lead')
def leadc=newViewCriteria(leads)
def leadr=leadc.createRow()
def leadi=leadr.ensureCriteriaItem('LeadNumber')
leadi.setOperator('=')
leadi.setValue(opLead.LeadNumber)
leadc.insertRow(leadr)
leads.appendViewCriteria(leadc)
leads.executeQuery()
println('LeadNumber:'+opLead.LeadNumber)
while(leads.hasNext()){
def lead=leads.next()
def contactoId
def cuentaId
def clienteId
def tipoCliente=lead.TipoCliente_c
if(tipoCliente=='PERSON'&&lead.CrearContacto_c=='Y'){
return true
}
if(tipoCliente=='ORGANIZATION'&&lead.CrearCliente_c=='Y'){
return true
}
}
}
return false
def assets=newView('AssetVO')
def assetc=newViewCriteria(assets)
def assetr=assetc.createRow()
def asseti=assetr.ensureCriteriaItem('IdentificadorDeOportunidad_Id_c')
asseti.setOperator('=')
asseti.setValue(OptyId)
assetc.insertRow(assetr)
assets.appendViewCriteria(assetc)
assets.executeQuery()
def totales=0
def instalados=0
def otros=0
//ValorDeInstalacion_c
def serviciosActivos=true
def count=0
def noSale=false
def revMap=[:]
def nullDate=new Date(1,1,1)
def minCloseDate=nullDate
while(assets.hasNext()){
def asset=assets.next()
def itemId=asset.InventoryItemId
def revDetails=[:]
if(!revMap.containsKey(itemId)){
revDetails.put('ImporteNeto',0)
revDetails.put('ImporteBruto',0)
revDetails.put('InstalacionNeta',0)
revDetails.put('InstalacionBruta',0)
revDetails.put('EnlacesNoConcretados',0)
revDetails.put('EnlacesTotales',0)
revDetails.put('EnlacesActivos',0)
revDetails.put('EnlacesNoConcretadosTemporales',0)
revDetails.put('EnlacesDesactivados',0)
revDetails.put('EnlacesIngresados',0)
revDetails.put('PrecioMensual',0)
}
else{
revDetails=revMap[itemId] as Map
}
def importeNeto=revDetails['ImporteNeto'] as BigDecimal
def importeBruto=revDetails['ImporteBruto'] as BigDecimal
def instalacionNeta=revDetails['InstalacionNeta'] as BigDecimal
def instalacionBruta=revDetails['InstalacionBruta'] as BigDecimal
def enlacesTotales=revDetails['EnlacesTotales'] as BigDecimal
def enlacesActivos=revDetails['EnlacesActivos'] as BigDecimal
def noConcretados=revDetails['EnlacesNoConcretados'] as BigDecimal
def precioMensual=revDetails['PrecioMensual'] as BigDecimal
def noConcretadosTemporales=revDetails['EnlacesNoConcretadosTemporales'] as BigDecimal
def desactivados=revDetails['EnlacesDesactivados'] as BigDecimal
def ingresados=revDetails['EnlacesIngresados'] as BigDecimal
def statusServicio=nvl(asset.EstatusServicio_c,'')
def importe=nvl(asset.AssetAmount,0 as BigDecimal)
def instalacion=nvl(asset.ValorDeInstalacion_c,0 as BigDecimal)
def assMap=[:]
assMap.put('statusServicio',statusServicio)
assMap.put('importe',importe)
assMap.put('instalados',instalados)
asset.getDatosOportunidad()
importeBruto+=importe
instalacionBruta+=instalacion
enlacesTotales+=1
if(statusServicio=='ACTIVO'){
enlacesActivos+=1
importeNeto+=importe
instalacionNeta+=instalacion
}
else if(statusServicio=='NO_CONCRETADA'){
noSale=true
noConcretados+=1
}
else if(statusServicio=='NO_CONCRETADA_TEMPORAL'){
noConcretadosTemporales+=1
}
else if(statusServicio=='INGRESADO'){
ingresados+=1
}
else if(statusServicio=='DESACTIVADO'||statusServicio=='DESACTIVADO_TEMPORAL'){
desactivados+=1
}
precioMensual=importeBruto
revDetails.put('ImporteNeto',importeNeto)
revDetails.put('ImporteBruto',importeBruto)
revDetails.put('InstalacionNeta',instalacionNeta)
revDetails.put('InstalacionBruta',instalacionBruta)
revDetails.put('EnlacesTotales',enlacesTotales)
revDetails.put('EnlacesActivos',enlacesActivos)
revDetails.put('EnlacesNoConcretados',noConcretados)
revDetails.put('PrecioMensual',precioMensual)
revDetails.put('EnlacesNoConcretadosTemporales',noConcretadosTemporales)
revDetails.put('EnlacesDesactivados',desactivados)
revDetails.put('EnlacesIngresados',ingresados)
revMap.put(itemId,revDetails)
}
def revs=ChildRevenue
def revMapTemp=revMap
def importeNetoTotal=0
def importeBrutoTotal=0
def instalacionNetaTotal=0
def instalacionBrutaTotal=0
def enlacesActivosTotales=0
def enlacesTotalesTotales=0
def noConcretadosTotales=0
while(revs.hasNext()){
def rev = revs.next()
def itemId=nvl(rev.InventoryItemId,0 as Long)
if(itemId!=0){
if(!revMap.containsKey(itemId) && revMap !=[:]){
rev.remove()
}
else if(revMap!=[:]){
def revDetails=revMap[itemId]
def importeNeto=revDetails['ImporteNeto'] as BigDecimal
def importeBruto=revDetails['ImporteBruto'] as BigDecimal
def instalacionNeta=revDetails['InstalacionNeta'] as BigDecimal
def instalacionBruta=revDetails['InstalacionBruta'] as BigDecimal
def enlacesTotales=revDetails['EnlacesTotales'] as BigDecimal
def enlacesActivos=revDetails['EnlacesActivos'] as BigDecimal
def noConcretados=revDetails['EnlacesNoConcretados'] as BigDecimal
def precioMensual=revDetails['PrecioMensual'] as BigDecimal
def noConcretadosTemporales=revDetails['EnlacesNoConcretadosTemporales'] as BigDecimal
def desactivados=revDetails['EnlacesDesactivados'] as BigDecimal
def ingresados=revDetails['EnlacesIngresados'] as BigDecimal
rev.setAttribute('ProductType','Item')
rev.setAttribute('InventoryItemId',itemId)
rev.setAttribute('NumeroDeEnlaces_c',enlacesTotales)
rev.setAttribute('EnlacesActivos_c',enlacesActivos)
rev.setAttribute('EnlacesNoConcretados_c',noConcretados)
rev.setAttribute('ImporteNeto_c',importeNeto)
rev.setAttribute('ImporteBruto_c',importeNeto)
rev.setAttribute('ValorDeInstalacion_c',instalacionBruta)
rev.setAttribute('InstalacionBruta_c',instalacionNeta)
rev.setAttribute('UnitPrice',importeBruto)
rev.setAttribute('RevnAmount',importeBruto)
rev.setAttribute('PrecioMensual_c',precioMensual)
rev.setAttribute('EnlacesNoConcretadosTemporales_c',noConcretadosTemporales)
rev.setAttribute('EnlacesDesactivados_c',desactivados)
rev.setAttribute('EnlacesIngresados_c',ingresados)
rev.setAttribute('ProductoDefinitvo_c','Y')
importeNetoTotal+=importeNeto
importeBrutoTotal+=importeBruto
instalacionNetaTotal+=instalacionNeta
instalacionBrutaTotal+=instalacionBruta
enlacesActivosTotales+=enlacesActivos
enlacesTotalesTotales+=enlacesTotales
noConcretadosTotales+=noConcretados
/*if(enlacesActivos>0){
def closeDate=nvl(rev.EffectiveDate,nullDate)
if(rev.StatusCode!='WON'){
rev.setAttribute('StatusCode','WON')
if(closeDate==nullDate){
rev.setAttribute('EffectiveDate',today())
closeDate=today()
}
}
if(minCloseDate.time> closeDate.time && minCloseDate!=nullDate){
minCloseDate=closeDate
}
}*/
revMap.remove(itemId)
}
}
}
def mapKeys=revMap.keySet()
for(itemId in mapKeys){
def revDetails=revMap[itemId]
def importeNeto=revDetails['ImporteNeto'] as BigDecimal
def importeBruto=revDetails['ImporteBruto'] as BigDecimal
def instalacionNeta=revDetails['InstalacionNeta'] as BigDecimal
def instalacionBruta=revDetails['InstalacionBruta'] as BigDecimal
def enlacesTotales=revDetails['EnlacesTotales'] as BigDecimal
def enlacesActivos=revDetails['EnlacesActivos'] as BigDecimal
def noConcretados=revDetails['EnlacesNoConcretados'] as BigDecimal
def precioMensual=revDetails['PrecioMensual'] as BigDecimal
def noConcretadosTemporales=revDetails['EnlacesNoConcretadosTemporales'] as BigDecimal
def desactivados=revDetails['EnlacesDesactivados'] as BigDecimal
def ingresados=revDetails['EnlacesIngresados'] as BigDecimal
def rev=revs.createRow()
rev.setAttribute('ProductType','Item')
rev.setAttribute('ResourcePartyId',OwnerResourcePartyId)
rev.setAttribute('InventoryItemId',itemId)
rev.setAttribute('InventoryOrgId',300000001746628)
rev.setAttribute('Quantity',1)
rev.setAttribute('StatusCode',StatusCode)
rev.setAttribute('NumeroDeEnlaces_c',enlacesTotales)
rev.setAttribute('EnlacesActivos_c',enlacesActivos)
rev.setAttribute('EnlacesNoConcretados_c',noConcretados)
rev.setAttribute('ImporteNeto_c',importeNeto)
rev.setAttribute('ImporteBruto_c',importeNeto)
rev.setAttribute('ValorDeInstalacion_c',instalacionBruta)
rev.setAttribute('InstalacionBruta_c',instalacionNeta)
rev.setAttribute('UnitPrice',importeBruto)
rev.setAttribute('RevnAmount',importeBruto)
rev.setAttribute('PrecioMensual_c',precioMensual)
rev.setAttribute('EnlacesNoConcretadosTemporales_c',noConcretadosTemporales)
rev.setAttribute('EnlacesDesactivados_c',desactivados)
rev.setAttribute('EnlacesIngresados_c',ingresados)
rev.setAttribute('ProductoDefinitvo_c','Y')
importeNetoTotal+=importeNeto
importeBrutoTotal+=importeBruto
instalacionNetaTotal+=instalacionNeta
instalacionBrutaTotal+=instalacionBruta
enlacesActivosTotales+=enlacesActivos
enlacesTotalesTotales+=enlacesTotales
noConcretadosTotales+=noConcretados
/*if(enlacesActivos>0){
def closeDate=nvl(rev.EffectiveDate,nullDate)
if(rev.StatusCode!='WON'){
rev.setAttribute('StatusCode','WON')
if(closeDate==nullDate){
rev.setAttribute('EffectiveDate',today())
closeDate=today()
}
}
if(minCloseDate.time> closeDate.time && minCloseDate!=nullDate){
minCloseDate=closeDate
}
}*/
revs.insertRow(rev)
}
if(enlacesTotalesTotales>0){
setAttribute('ImporteNeto_c',importeNetoTotal)
setAttribute('InstalacionNeta_c',instalacionNetaTotal)
if(enlacesActivosTotales+noConcretadosTotales==enlacesTotalesTotales){
if(enlacesActivosTotales>0){
setAttribute('StatusCode','WON')
if(nvl(EffectiveDate,nullDate)==nullDate){
setAttribute('EffectiveDate',today())
}
def motivo=''
def codigoEtapa=''
setAttribute('MotivoDeGananciaperdida_c','ADJUDICADA')
setAttribute('FechaVentaNeta_c',new java.sql.Date(minCloseDate.time))
setAttribute('SalesStageId',GetSalesStageId('CMVE6'))
def cliente
if(Person!=null){
cliente=Person
}
else{
cliente=Organization
}
if(cliente!=null){
cliente.setAttribute('SalesProfileType','ZCA_CUSTOMER')
}
}
else {
def fechaVentaBruta=nvl(FechaVentaBruta_c,nullDate)
def ventaBrutaTime=fechaVentaBruta.time
def instalacionNoConcretadaTime=(fechaVentaBruta+60).time
def todayTime=now().time
if(instalacionNoConcretadaTime<todayTime){
setAttribute('StatusCode','NO_SALE')
setAttribute('MotivoDeGananciaperdida_c','INSTALACION_NO_CONCRETA')
}
}
}
}
setAttribute('ImporteNeto_c',importeNetoTotal)
setAttribute('InstalacionBruta_c',instalacionBrutaTotal)
setAttribute('InstalacionNeta_c',instalacionNetaTotal)
println('getAssetsCorporativo:'+revMapTemp)
def bitacora=[:]
def payload=[:]
bitacora.put('Oportunidad_Id_c',OptyId)
bitacora.put('Integracion_c','4')
bitacora.put('IdPrincipal_c',0)
def response = '';
def mensajeRespuesta = '';
def tipoCliente = CustPartyType;
println(OptyId)
try{
def accion='3'
// def sucursal= getSelectedListDisplayValue('SucursalDeVenta_c');
}
//def codPromocion = '96726';
def provincia=''
def canton = '';
def dirs = DireccionInstalacion_Tgt_OpportunityToDireccionInstalacion_c_Tgt;
while (dirs.hasNext()){
def dir = dirs.next();
def esInstalacion = dir.SeleccionarDireccionDeInstalacion_c=='Y';
def datosDireccion=dir.Address_Src_AddressToDireccionInstalacion_c_Src
provincia = nvl(datosDireccion?.State,'');
provincia = provincia.toUpperCase().trim();
canton = nvl(datosDireccion?.AddrElementAttribute1,'');
canton = canton.toUpperCase().trim();
}
payload.put('accion',accion)
payload.put('sucursal',sucursal)
payload.put('servicio',servicio)
payload.put('segmentacion',segmentacion)
payload.put('formaPago',formaPago)
payload.put('plan',plan)
payload.put('anchoBanda',anchoBanda)
payload.put('aplicaAdultoMayor',aplicaAdultoMayor)
payload.put('aplicaDiscapacidad',aplicaDiscapacidad)
payload.put('owner',owner)
payload.put('codPromocion',codigoPromocion)
payload.put('provinciaEnlace',provincia)
payload.put('cantonEnlace',canton)
payload.put('codSplitter',codSplitter) //REVIEW: SR_Splitter 16/02/23
bitacora.put('Payload_c',encodeToBase64(''+payload))
println('PAYLOAD SPLITTER: '+payload)
try{
response = adf.webServices.reservarLiberarSplitter.POST(payload)
println('RESPUESTA: '+response)
mensajeRespuesta = response.mensaje;
if (response.codigoRespuesta == '1'){
def pyss = response.promociones;
for(pys in pyss){
def tipo =pys['tipo']
def subtipo =pys['subtipo']
if(subtipo == 'Descuento'){
}
}else{
def promociones = newView('PromocionesYServicios_c')
def promocionc = newViewCriteria(promociones)
def promocionr = promocionc.createRow()
def promocioni = promocionr.ensureCriteriaItem('Oportunidad_Id_c')
promocioni.setOperator('=')
promocioni.setValue(OptyId)
promocionc.insertRow(promocionr)
promociones.appendViewCriteria(promocionc)
def promocionj=promocionr.ensureCriteriaItem('RecordName')
promocionj.setOperator('=')
promocionj.setValue(codigoPromocion)
promocionc.insertRow(promocionr)
promociones.appendViewCriteria(promocionc)
promociones.executeQuery();
while (promociones.hasNext()){
promocion = promociones.next()
pysId=promocion.Id;
}
}
def Detalles = pys['detalle']
def count=0
for(Detalle in Detalles){
def DetalleRow=DetalleRows.createRow()
def detalleId = DetalleRow.Id;
def detalleDescripcion = nvl(Detalle['Descripcion'],'')
if(detalleDescripcion == ''){detalleDescripcion = 'Sin Detalle'}
DetalleRow.setAttribute('Descripcion_c',detalleDescripcion)
//pysRow.setAttribute('Detalle_c',detalleDescripcion)
if(subtipo == 'Descuento' && pysId!= null){
DetalleRow.setAttribute('PromocionDescuento_Id_c',pysId)
}
else{
if(pysId!= null){
DetalleRow.setAttribute('PromocionOServicio_Id_c',pysId)
}
}
DetalleRow.setAttribute('Oportunidad_Id_c',OptyId)
DetalleRow.setAttribute('Activo_c','Y')
def coddetalle = nvl(Detalle['Codigo'],'');
if (coddetalle == '' ){coddetalle = 0}
DetalleRow.setAttribute('RecordName',coddetalle)
def detalleDefault = nvl(Detalle['Default'],'');
if(detalleDefault ==1 ){promocion.setAttribute('Detalle_Id_c',detalleId)}
def detalleHasta= nvl(Detalle['Hasta'],'')
def detalleCada = nvl(Detalle['Cada'],'')
def valorDetalle = nvl(Detalle['Valor'],'')
DetalleRow.setAttribute('Hasta_c',detalleHasta)
DetalleRow.setAttribute('Cada_c',detalleCada)
DetalleRow.setAttribute('Valor_c',valorDetalle)
DetalleRows.insertRow(DetalleRow)
def Diferires = Detalle['diferir']
for(Diferir in Diferires){
def DiferirRow=DiferirRows.createRow()
def DiferirId = DiferirRow.Id;
def diferirDescripcion = nvl(Diferir['Descripcion'],'')
if(diferirDescripcion == ''){diferirDescripcion = 'Sin Diferir'}
DiferirRow.setAttribute('Descripcion_c',diferirDescripcion)
//pysRow.setAttribute('Diferir_c',Diferir['Descripcion'])
if(subtipo == 'Descuento'){
DiferirRow.setAttribute('PromocionDescuento_Id_c',pysId)
}
else{
DiferirRow.setAttribute('PromocionOServicio_Id_c',pysId)
}
DiferirRow.setAttribute('Oportunidad_Id_c',OptyId)
DiferirRow.setAttribute('Activo_c','Y')
def coddiferir = nvl(Diferir['Codigo'],'');
if (coddiferir == ''){coddiferir = 0}
DiferirRow.setAttribute('RecordName',coddiferir)
def diferirDefault = nvl(Diferir['Default'],'');
if(diferirDefault == 1){
DetalleRow.setAttribute('DiferirDefault_Id_c',DiferirId)
if(detalleDefault ==1 ){
promocion.setAttribute('Diferir_Id_c',DiferirId)
}
def revs = ChildRevenue;
while (revs.hasNext()){
def rev = revs.next();
rev.setAttribute('DescripcionDiferir_c',diferirDescripcion)
}
}
DiferirRow.setAttribute('Detalle_Id_c',detalleId)
def Descuentos = Diferir['descuento']
for(Descuento in Descuentos){
def DescuentoRow=DescuentoRows.createRow()
def descuentoId = DescuentoRow.Id;
def descuentoDescripcion = nvl(Descuento['Descripcion'],'')
if (descuentoDescripcion == '' ){descuentoDescripcion = 'Sin Descuento'}
DescuentoRow.setAttribute('Descripcion_c',descuentoDescripcion)
//pysRow.setAttribute('Descuento_c',Descuento['Descripcion'])
if(subtipo == 'Descuento'){
DescuentoRow.setAttribute('PromocionDescuento_Id_c',pysId)
}
else{
DescuentoRow.setAttribute('PromocionOservicio_Id_c',pysId)
}
DescuentoRow.setAttribute('Oportunidad_Id_c',OptyId)
DescuentoRow.setAttribute('Activo_c','Y')
def coddescuento = nvl(Descuento['Codigo'],'');
if (coddescuento == ''){coddescuento = 0}
DescuentoRow.setAttribute('RecordName',coddescuento)
def descuentoHasta = nvl(Descuento['Hasta'],'')
def descuentoCada = nvl(Descuento['Cada'],'')
def porcentajeDescuento = nvl(Descuento['Porcentaje'],'')
DescuentoRow.setAttribute('Hasta_c',descuentoHasta)
DescuentoRow.setAttribute('Cada_c',descuentoCada)
DescuentoRow.setAttribute('Porcentaje_c',porcentajeDescuento)
DescuentoRow.setAttribute('Diferir_Id_c',DiferirId)
DescuentoRows.insertRow(DescuentoRow)
def descuentoDefault = nvl(Descuento['Default'],'');
if(descuentoDefault == 1){
DiferirRow.setAttribute('DescuentoDefault_Id_c', descuentoId)
if(diferirDefault == 1 && detalleDefault ==1){
promocion.setAttribute('Descuento_Id_c',descuentoId)
}}
}
}
}
}
//println('RESPUESTA: '+response)
bitacora.put('MensajeIntegracion_c',encodeToBase64('Consulta detalle de promoción Exitosa'))
bitacora.put('Payload_c',encodeToBase64(''+ payload))
bitacora.put('Response_c',encodeToBase64(''+response))
adf.webServices.LogBitacora.POST(bitacora)
}else{
throw new oracle.jbo.ValidationException(''+ mensajeRespuesta)
}
}
catch(Exception e){
def msg=e.message
throw new oracle.jbo.ValidationException(''+msg)
bitacora.put('MensajeIntegracion_c',encodeToBase64(''+msg))
bitacora.put('Payload_c',encodeToBase64(''+ payload))
bitacora.put('Response_c',encodeToBase64(''+response))
adf.webServices.LogBitacora.POST(bitacora)
}
catch(Exception e){
def msg=e.message
bitacora.put('MensajeIntegracion_c',encodeToBase64(''+msg))
bitacora.put('Payload_c',encodeToBase64(''+ payload))
bitacora.put('Response_c',encodeToBase64(''+response))
adf.webServices.LogBitacora.POST(bitacora)
throw new oracle.jbo.ValidationException(''+msg)
if(adf.util.usuarioAdministrador() || AreaComercial_c=='CORPORATIVO'){
return true
}
def revs=ChildRevenue
while(revs.hasNext()){
def rev=revs.next()
if(rev.DescuentoMasivoDin_Id_c==null){
return true
}
if(nvl(rev.Detalle_Id_c,0 as BigDecimal)==0){
throw new oracle.jbo.ValidationException('(Puntonet) Para continuar es necesario seleccionar el detalle del descuento')
}
}
return true
setAttribute('Segmentacion_c','')
setAttribute('CapacidadPagoNum_c','')
setAttribute('RegistraTCActiva_c','')
setAttribute('ResultadoDelModelo_c','')
setAttribute('ClienteCastigado_c','')
setAttribute('ClienteConDeuda_c','')
No if(!
Groovy Function oracle.apps.crmCommon.extensibility.con
return false;
Name :reg opty
Description : isAttributeChanged('RegularizarOportunid
Execution Schedule : 0:Days:After:
Function Display Name :
regularizarOportunidad
No if(!
Groovy Function oracle.apps.crmCommon.extensibility.con
return false;
No
Name :ImportarDireccion
Description : AreaComercial_c=='MASIVO'
Execution Schedule : 0:Days:After:
Function Display Name :
hererdarInformacionLead
Yes if(!
Groovy Function oracle.apps.crmCommon.extensibility.con
return false;
Name :reasignacionCascada else
Description : return true;
Execution Schedule : 0:Days:After:
Function Display Name : reasignacionCascada
Yes if(!
Groovy Function oracle.apps.crmCommon.extensibility.con
return false;
Name :Oportunidad else
Description : return true;
Execution Schedule : 0:Days:After:
Function Display Name :
InsertarHistoricoEtapa
Yes if(!
Groovy Function oracle.apps.crmCommon.extensibility.con
return false;
Yes
StatusCode!='OPEN'
B_CUSTOM_PRE_VEN
B_CUSTOM_PRE_VEN
false
SalesStage == '05 - Cierre'
SalesStage == '04 - Instalación'
SalesStage == '03 - Contrato'
SalesStage == '02 - Oferta'
Precision MaxLength Expression
1500 1500
0 0
18 18
18 18
10 10
18 18
1500 1500
1500 1500
1500 1500
1500 1500
80 80
80 80
10 10
1500 1500
1500 1500
1500 1500
10 10
10 10
10 10
0 0
10 10
18 18
80 80
20 20
10 10
1500 1500
18 18
18 18
1500 1500
80 80
1500 1500
80 80
80 80
0 0
1500 1500
0 0 return Origen_c
10 10
80 80
80 80
10 10
10 10
0 0
80 80
80 80
10 10
18 18
1500 1500
10 10
1500 1500
10 10
1500 1500
10 10
18 18
1500 1500
0 0 StageStatusCd
10 10
1500 1500
200 200
1500 1500
18 18
10 10
18 18
1500 1500
18 18
1500 1500
0 0 getSelectedListDisplayValue('
80 80
80 80
1500 1500
1500 1500
1500 1500
80 80
10 10
1500 1500
200 200
1500 1500
18 18
1500 1500
400 400
1500 1500
80 80
80 80
0 0
1500 1500
0 0 def fechanull=null
if(OptyCreationDate!=fechanull
today() - OptyCreationDate
}
10 10
0 0
200 200
0 0 return EjecutivoPreventa_c
10 10
10 10
80 80
0 0 Name
1500 1500
1500 1500
10 10
80 80
1500 1500
10 10
1500 1500
80 80
0 0 def estado=''
def oportunidadNueva=nvl(Nu
def contratoFisico=nvl(Contrato
0 0
def requiereFirma=nvl(Requier
def contratoEnviado= SubE
def contratoFirmado= SubE
if(contratoFisico){
estado='El próximo envío de
}
else if(oportunidadNueva || re
estado='El próximo envío de c
}
else{
estado='El próximo envío de
}
estado
10 10
80 80
0 0 def NombreCuenta ='';
def cuenta=Organization
if(cuenta!=null) {
NombreCuenta=cuenta.Organ
}
return NombreCuenta
1500 1500
1500 1500
10 10
1500 1500
0 0 def RucCuenta ='';
def cuenta=Organization
if(cuenta!=null) {
RucCuenta=cuenta.JgzzFisc
}
return RucCuenta
18 18
18 18
10 10
80 80
10 10
10 10
1500 1500
1500 1500
18 18
10 10
32714 32714
1500 1500
0 0 def nullDate= new Date(1900,0
def fechaAsig=nvl(FechaDeAsi
if(fechaAsig==nullDate){
return 0
}
else{
return today()-fechaAsig
}
80 80
10 10
0 0
1500 1500
10 10
1500 1500
18 18
80 80
0 0 Asset?.Estado_c
80 80
80 80
80 80
0 0 return Revenue
80 80
18 18
0 0 if(TargetPartyId!=null){
def personaJ=Organization;
def personaN=Person;
if(personaJ==null && perso
def vo=newView('PersonProfi
def vc=newViewCriteria(vo);
def vcr=vc.createRow();
def vci=vcr.ensureCriteriaIte
vci.setOperator('=');
vci.setValue(TargetPartyId);
vc.insertRow(vcr);
vo.appendViewCriteria(vc);
vo.executeQuery();
while(vo.hasNext()){
def c=vo.next();
if(c.PartyId==TargetPartyId
if(c.CodigoNetPlus_c!=nul
return c.CodigoNetPlus_
}
}
}
}
if(personaJ!=null && person
if(personaJ.CodigoNetPlus_c
return personaJ.CodigoNe
}
}
}
0 0
32714 32714
1500 1500
1500 1500
0 0
1500 1500
10 10
1500 1500
0 0
10 10
0 0 return CanalObjC_c
18 18
1500 1500
18 18
18 18
0 0 return EffectiveDate
1500 1500
10 10
1500 1500
20 20
1500 1500
1500 1500
1500 1500
1500 1500
10 10
10 10
80 80
10 10
0 0 return ActividadEconomica_c
10 10
1500 1500
10 10
10 10
80 80
1500 1500
18 18
c'))
d)
pecificar el canal y origen')
ormal ')
no permite cambiar de etapa de 2 a 3, sin haber elegido el Ejecutivo
no ha sido completada.')
tividades para pasar de etapa.')
ambiar de Etapa.')
a cambiar de Etapa.')
a cambiar de Etapa.')
')
no permite cambiar de etapa de 1 a 3.')
)
ontacto')
')
t de contrato')
etapas.')
cionDePlanes_c=='Y'
rPromocionesYServicios_c=='Y' && AreaComercial_c=='MASIVO'
ged('ActualizarCliente_c')&& ActualizarCliente_c=='Y'
Y'
igital_c=='Y'
Oportunidad || actualizarContrato){
do')
ore.')
+1)
+1)
plus_c,'')!=''&&moc=='MASIVO'
moc=='CORPORATIVO'
po)){
iente)&&cliente!=null){
rporativo){
_c=='MASIVO'){
mal) as Long)
c != null){
as BigDecimal)!=0
mal) as Long)
as BigDecimal)!=0
tención para la elaboración del documento HLD.'
gDecimal)+1);
as BigDecimal)+1);
)
adf.util.usuarioMasivoCorporativo()!='MASIVO'){
ce al ejecutivo ' + cliente.OwnerPartyName +'. No es posible tomar
a otros usuarios')
ivo && tipoUsuario=='CORPORATIVO' )){
yId)
lus == ' '){accion ='Creación'}
viado a Netplus'
rato. '
r o actualizar una oportunidad')
erido:Cliente ')}
gDecimal.ROUND_HALF_UP))
n))
oolean))
lean))
as Boolean))
] as Boolean))
Nodo Wifi')}
Radio Wiffi')}
Grupo de Hilo')}
Color de Hilo')}
tter')}
LT')}
ido: Grupo de Hilo')}
do: Color de Hilo')}
Splitter')}
requerido: Segmentacion')}
ido: Servicio')}
Plan')}
ES DE SERVICIOS CONEXAS.')
')
URAL.')
APEL.')
S.')
QUÍMICOS.')
ES NO METÁLICOS.')
A, ELECTRÓNICA Y ÓPTICA.')
')
REMOLQUES Y SEMIRREMOLQUES.')
TRANSPORTE.')
Y EQUIPO.')
AIRE ACONDICIONADO.')
AGUA.')
OMOTORES Y MOTOCICLETAS.')
ÍAS.')
AL TRANSPORTE.')
NEMATOGRÁFICAS, VÍDEOS Y PROGRAMAS DE TELEVISIÓN,
ÓN.')
DE SERVICIOS FINANCIEROS.')
.')
.')
AJISMO.')
.')
AMIENTO.')
RETENIMIENTO.')
')
Y RECREATIVAS.')
S PERSONALES Y ENSERES DOMÉSTICOS.')
S.')
S EXTRATERRITORIALES.')
nta;
uerido: Servicio')}
requerido: Segmentacion')}
erido: Forma de Pago')}
ido: Sucursal')}
do: Coordenada Latitud')}
rido: Coordenada Longitud')}
: Latitud')}
lación')
ProfileType == 'ZCA_PROSPECT' ){
a;
02/23
do: Sucursal')}
do: Tipo de servicio')}
equerido: Segmentacion')}
uerido: Forma de Pago')}
Plan')}
querido: Ancho Banda')}
querido: Ancho Banda')}
o = 'Y'}
stalación')
able'] as Boolean))
taEditable'] as Boolean))
olean))
as Boolean))
e'] as Boolean))
rio'] as Boolean))
ble'] as Boolean))
Editable'] as Boolean))
n))
Boolean))
ficadorClienteOSC+salto+'nombreOportunidad:'+nombreOport
ntrato>0)
salVenta.trim();
s siguientes datos en el perfil del Contacto: Operadora de
*100
= 'Y'}
');
= 'Y'}
ttribute1,'');
1,'');
ss2,'');
');
AddrElementAttribute2,'');
.AddrElementAttribute3,'');
tAttribute4,'').trim()
GANIZATION'){
cia,seleccione otro contacto.')
rencia)
guales que en el contacto principal: ';
al))
mal))
'+ MsgE + '".';
ad: "'+ MsgE + '".';
gDecimal.ROUND_HALF_UP))
ación seleccionado. Favor de seleccionar otro')
s Double,Tipo_c=='PROYECTO'))
P))
Double,Tipo_c=='PROYECTO'))
c,0 as BigDecimal) + 1)
rtyId){
cimal)==0){
orativo){
liente!=genericoCorporativo){
' le pertenece al ejecutivo ' + cliente.OwnerPartyName +'. No es
portunidad a otros usuarios')
esStageId('MMVE1') || SalesStageId==
| OwnerResourcePartyId==
e Netplus. Favor de ponerse en contacto con un administrador
02/23
do: Sucursal')}
do: Tipo de servicio')}
equerido: Segmentacion')}
uerido: Forma de Pago')}
Plan')}
querido: Ancho Banda')}
querido: Ancho Banda')}
o = 'Y'}
ión Exitosa'))
ression
le.apps.crmCommon.extensibility.content.adf.data.util.ExtensibilityGro
urn false;
urn true;
le.apps.crmCommon.extensibility.content.adf.data.util.ExtensibilityGro
urn false;
urn true;
le.apps.crmCommon.extensibility.content.adf.data.util.ExtensibilityGro
urn false;
ributeChanged('RegularizarOportunidad_c')
le.apps.crmCommon.extensibility.content.adf.data.util.ExtensibilityGro
urn false;
Comercial_c=='MASIVO'
le.apps.crmCommon.extensibility.content.adf.data.util.ExtensibilityGro
urn false;
urn true;
le.apps.crmCommon.extensibility.content.adf.data.util.ExtensibilityGro
urn false;
ributeChanged('SubEstado_c')&&SubEstado_c=='CONTRATO_CADUC
O'
le.apps.crmCommon.extensibility.content.adf.data.util.ExtensibilityGro
urn false;
AttributeChanged('SubEstado_c') &&
Estado_c=='CONTRATO_VALIDADO')
return true;
le.apps.crmCommon.extensibility.content.adf.data.util.ExtensibilityGro
urn false;
urn true;
le.apps.crmCommon.extensibility.content.adf.data.util.ExtensibilityGro
urn false;
AttributeChanged('SubEstado_c') &&
Estado_c=='CONTRATO_DEVUELTO_CLIENTE'){
return true;
le.apps.crmCommon.extensibility.content.adf.data.util.ExtensibilityGro
urn false;
urn true;
le.apps.crmCommon.extensibility.content.adf.data.util.ExtensibilityGro
urn false;
AttributeChanged('SubEstado_c') &&
Estado_c=='CONTRATO_DEVUELTO_VALIDADOR')
return true;
le.apps.crmCommon.extensibility.content.adf.data.util.ExtensibilityGro
urn false;
urn true;
le.apps.crmCommon.extensibility.content.adf.data.util.ExtensibilityGro
urn false;
AttributeChanged('EjecutivoPreventa_c')&& nvl(EjecutivoPreventa_c,'')!
&& SalesStageId==GetSalesStageId('CMVE2')){
rn true
le.apps.crmCommon.extensibility.content.adf.data.util.ExtensibilityGro
urn false;
AttributeChanged('StatusCode')&&StatusCode=='WON'){
rn true
rn false
StatusCode=='WON'){
rn true
le.apps.crmCommon.extensibility.content.adf.data.util.ExtensibilityGro
urn false;
urn true;
le.apps.crmCommon.extensibility.content.adf.data.util.ExtensibilityGro
urn false;
AttributeChanged('SubEstado_c') &&
Estado_c=='CONTRATO_FIRMADO_CLIENTE')
return true;
le.apps.crmCommon.extensibility.content.adf.data.util.ExtensibilityGro
urn false;
urn true;
le.apps.crmCommon.extensibility.content.adf.data.util.ExtensibilityGro
urn false;
AttributeChanged('StatusCode')&&StatusCode=='LOST'){
rn true
rn false
Object Name : OpportunityContact
Object Name
Object Display Name Plural
Object Type
Application Name
Table Name
Child Object
Parent Object Name
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Custom Fields
Name Display Name Type Column Name
Parentesco_c Parentesco Text EXTN_ATTRIBUTE_CHAR003
OpportunityContact
Contactos de oportunidad
OOTB
CRM
MOO_OPTY_CON
Yes
Opportunity
1
0
0
0
0
0
0
Standard Fields
Name Display Name Help Text
RoleName Puesto
ortunityResource
ursos de oportunidad
B
M
O_OPTY_RESOURCES
ortunity
0
0
0
0
0
0
0
Searchable
No
Object Name : Organization
Object Name Organization
Object Display Name Plural Clientes
Object Type OOTB
Application Name CRM
Table Name HZ_ORGANIZATION_PROFILE
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Standard Fields
Name Display Name Help Text
OrganizationName Nombre comercial del
JgzzFiscalCode establecimiento
RUC
PartyNumber Número de Parte Registry ID
PreferredContactName Contacto Principal Contacto principal
PartyUniqueName Nombre comercial del
SalesProfileStatus establecimiento
Estado Sales Profile Status
SalesProfileType Tipo
Custom Fields
Name Display Name Type Column Name
TotalDeContratosNoConcretados_cTotal de Contratos no concretadosNumber EXTN_ATTRIBUTE_NUMBER014
ActualizarInformacionCIIU_c Actualizar Información CIIU Checkbox EXTN_ATTRIBUTE_CHAR025
NumeroDeLeads_c Numero de Leads Number EXTN_ATTRIBUTE_NUMBER007
NombreCatalogoCIIUDin_c Nombre en Catálogo CIIU DCL
Triggers
Name Type Trigger PointDescription Error Message Expression
setOrganizationName Field Trigger Modify if(AreaComercial_c=
Field Name : setAttribute('Organ
RazonSocial_c }
Activar_Temp Object Trigger Create setAttribute('EstadoD
Init_Account Object Trigger Create setAttribute('AreaCo
Temporalidad_INS Object Trigger BeforeInsert if(AreaComercial_c=
setAttribute('Fecha
setAttribute('Estado
return true
}
if(OwnerPartyId!=nu
setAttribute('Fecha
}
else{
setAttribute('Fecha
}
def fecha=date(2001
if(nvl(FechaDeAsigna
def dias=adf.util.dia
setAttribute('Dispon
}
else
{
setAttribute('Dispo
}
setAttribute('EstadoD
setAttribute('Oportu
getDireccionLead()
InsertHistorialCuenta Object Trigger BeforeInsert if(SalesProfileType =
def historico = new
def crear = historic
crear.setAttribute('I
crear.setAttribute('R
crear.setAttribute('V
historico.insertRow
}
LlenadoYDuplicadoDo Object Trigger BeforeInsert LlenadoDocumentos
cumentosC ValidarDuplicadosC(
busquedaCIIU()
HistoricoCuenta Object Trigger BeforeUpdate println('pruebas logs
def re= getOriginalA
if(nvl(re,'')==''){
re='–'
}
if(isAttributeChange
def historico = new
def crear = historic
crear.setAttribute('I
crear.setAttribute('R
crear.setAttribute('V
historico.insertRow
}
orquestacionTemporal Object Trigger BeforeUpdate if(OportunidadesAb
idad setAttribute('Oport
}
if(LeadsAbiertos_c==
setAttribute('Leads
}
if(AreaComercial_c=
setAttribute('Fecha
setAttribute('Estado
return true
}
def cambioContrato
def previousOwnerId
def cambioOwner=i
def cambioLeadsAbi
def cambioOportuni
def cambioTotalCon
def cambioTotalCon
def cambioTotalCon
def cambioTotalCon
def totalContratosAc
def totalContratosIn
def totalContratosD
def totalContratosN
def contratosPlanesT
def cambioTotalCon
def sinContratosActi
nvl(TotalDeContrato
def cambiarFechaIni
def cambioConsider
if(cambioOwner||cam
def currentOwnerId
def usuarioGeneric
if(nvl(AreaComercia
usuarioGenericoId
}
else if(nvl(AreaCom
usuarioGenericoId
}
def leadsAbiertos=
def oportunidadesA
def statusTempora
def fechaAsignacio
def disponibleHast
if(cambioOwner || c
fechaAsignacion=
//setAttribute('Ov
if(OverrideReassig
def mapCliente=
def tipoCliente=
mapCliente.put('
mapCliente.put('
mapCliente.put('
adf.util.reasignar
}
}
if(sinContratosActiv
println('Sin contra
}
else{
println('Con contr
}
if(currentOwnerId=
statusTemporalida
if(cambioOwner){
setAttribute('Usu
def team=Team
while(team.hasN
def member=te
if(member.Party
member.remov
}
if(ConsiderarCom
setAttribute('Co
}
fechaAsignacion
}
}
else if((leadsAbierto
println('Status tem
statusTemporalida
}
else{
statusTemporalida
disponibleHasta=
if(cambioOwner ||
fechaAsignacion
}
def fecha=date(2
def cuentaOClie
if(nvl(ConsiderarC
cuentaOCliente =
}else{
cuentaOCliente =
}
def dias=adf.util
println('DIAS:' +
disponibleHasta=
}
setAttribute('Estado
setAttribute('Dispo
setAttribute('Fecha
}
if(OverrideReassignm
setAttribute('Overr
}
if(pasaporte){
if(nvl(oldPas,'') != '' &
//println('Pasap
if(nvl(Pasaporte
//println( 'pa
throw new o
}
}
if( nvl(Pasaporte_c,'')
EliminarRegistroClie
}else{
println('NumeroDeP
crearActualizarRegis
}
}
if(ruc){
if(nvl(oldRuc,'') !=
//println('RUC v
if(nvl(JgzzFiscal
//println( 'RU
throw new o
}
}
if( nvl(JgzzFiscalCod
EliminarRegistroClie
}else{
println('JgzzFiscalCo
crearActualizarRegis
}
}
if(RucE){
if(nvl(oldRuc,'') !=
println('RUC va
if(nvl(JgzzFiscal
println( 'RUC
throw new o
}
}
if( nvl(RUCExterno_c
EliminarRegistroClie
}else{
println('NumeroDeR
crearActualizarRegis
}
}
CambiosParaActualiza Object Trigger BeforeUpdate if(AreaComercial_c =
cion //caracteresEspeciale
def cambioFirstNam
def cambioLastNam
def cambioCorreoEle
if(cambioFirstName|
def codigoNP = nv
if(CodigoNetPlus_c
def nroDoc;
def tipoDoc;
def cliNets = newV
def cliNetc=newVie
def cliNetr=cliNetc
def cliNeti=cliNetr.
cliNeti.setOperator
cliNeti.setValue(Par
def cliNetj=cliNetr.
cliNetj.setOperator
cliNetj.setValue(cod
cliNetc.insertRow(c
cliNets.appendView
cliNets.executeQue
def existe=false
while(cliNets.hasNe
def cliNet=cliNets
existe=true
nroDoc=nvl(cliNe
tipoDoc=nvl(cliNet.T
}
if(existe){
funcionCreaClient
println('Actualizac
}
}
}
Validations
Name Type Error Message Expression
validaPropietario Object Validation Tu usuario no tiene permisos para hacer if(getPrimaryRowSta
cambios a eta cuenta return true
if(adf.util.usuarioAdm
return true
}
def currentUsernam
def moc=adf.util.usu
def usuarioMasivo=
def usuarioCorporat
def resources=newV
def resourcec=newV
def resourcer=resou
def resourcei=resou
resourcei.setOperato
resourcei.setValue(c
resourcec.insertRow
resources.appendVie
resources.executeQu
def currentUserId
while(resources.hasN
def resource=resou
currentUserId=reso
}
def genericoMasivo=
def genericoCorpora
if( isAttributeChange
if(OwnerPartyId!=c
throw new oracle.
}
def prevOwner=ge
def usuarioDesasig
def tipoUsuario=a
if((prevOwner==ge
def fechaNull=new
def fechaAsignaci
if(usuarioDesasign
return true
}
else{
throw new oracle
de}asignación')
}
else{
throw new oracle.
}
}
else{
if(OwnerPartyId!=c
def team=Team
def partOfTeam=f
while(team.hasNe
def member=tea
if(member.PartyI
partOfTeam=tr
}
}
if(!partOfTeam){
if(!adf.util.usuario
throw new orac
}
}
}
}
return true
FND_ACFF_LVR_Attribu Field Validation return oracle.apps.fn
teCategory__AttributeC Field Name : AttributeCategory "ContextCode", "Bin
ategory
Rule1 Field Validation adf.source.isLookup
Field Name :
UsuarioDesasignado_Id_c
Rule1 Field Validation adf.source.isLookup
Field Name : ActividadEconomica_Id_c
Rule1 Field Validation adf.source.isLookup
Field Name : GrupoComercialDin_Id_c
Rule1 Field Validation adf.source.isLookup
Field Name :
NombreCatalogoCIIUDin_Id_c
Rule1 Field Validation adf.source.isLookup
Field Name : LeadProgenitor_Id_c
Object Functions
Name Parameters Return Type Privileged Visibility Description
CrearPerson void No Default
aJuridicaNet
plus
ActualizarPe void No Default
rsonaJuridic
aNetplus
setFechaVen void No Default
taBruta
Object Workflows
Name Definition Name Event Point Description
reasignacionCascada reasignacionCascada Update
Dynamic Layouts
Layout Name Active Role
Detalles Administrador Yes ADMIN_GENERAL_PNT;
Detalle Masivo Yes USUARIO_MASIVO;
Detalle Corporativo Yes
Edición Corporativo No
Diseño Busqueda y Seleccionar Yes
Creación Administrador Yes ADMIN_GENERAL_PNT;
Creación Masivo Yes USUARIO_MASIVO;
Creación Corporativo Yes
Landing Masivo Yes USUARIO_MASIVO;
Landing Corporativo Yes
anization
ntes
B
M
ORGANIZATION_PROFILES
61
7
11
18
2
7
10
Searchable
Yes
Yes
Yes
No
Yes
No
Yes
Expression
if(AreaComercial_c=='MASIVO' && nvl(RazonSocial_c,'')!=''){
setAttribute('OrganizationName',RazonSocial_c)
}
setAttribute('EstadoDeTemporalidad_c','ACTIVA')
setAttribute('AreaComercial_c',adf.util.usuarioMasivoCorporativo())
if(AreaComercial_c=='MASIVO'){
setAttribute('FechaDeAsignacion_c',null)
setAttribute('EstadoDeTemporalidad_c','INACTIVA')
return true
}
if(OwnerPartyId!=null){
setAttribute('FechaDeAsignacion_c',today())
}
else{
setAttribute('FechaDeAsignacion_c',null)
}
def fecha=date(2001,01,01)
if(nvl(FechaDeAsignacion_c,fecha)!=fecha){
def dias=adf.util.diasTemporalidad(nvl(AreaComercial_c,''),'CUENTA','')
setAttribute('DisponibleHasta_c',nvl(FechaDeAsignacion_c,today())+dias.toInteger())
}
else
{
setAttribute('DisponibleHasta_c',null)
}
setAttribute('EstadoDeTemporalidad_c','ACTIVA')
setAttribute('OportunidadesAbiertas_c',0)
getDireccionLead()
if(SalesProfileType == 'ZCA_CUSTOMER' || SalesProfileType == 'ZCA_PROSPECT'){
def historico = newView('HistoricoDeTemporalidad_c')
def crear = historico.createRow();
crear.setAttribute('IdCuenta_c', PartyNumber);
crear.setAttribute('RecordName', '--');
crear.setAttribute('ValorActual_c',DisponibleHasta_c);
historico.insertRow(crear)
}
LlenadoDocumentosC()
ValidarDuplicadosC()
busquedaCIIU()
println('pruebas logs')
def re= getOriginalAttributeValue('DisponibleHasta_c')
if(nvl(re,'')==''){
re='–'
}
if(isAttributeChanged('DisponibleHasta_c')&& re!=DisponibleHasta_c){
def historico = newView('HistoricoDeTemporalidad_c')
def crear = historico.createRow()
crear.setAttribute('IdCuenta_c',PartyNumber)
crear.setAttribute('RecordName', re)
crear.setAttribute('ValorActual_c',DisponibleHasta_c)
historico.insertRow(crear)
}
if(OportunidadesAbiertas_c==-1){
setAttribute('OportunidadesAbiertas_c',0)
}
if(LeadsAbiertos_c==-1){
setAttribute('LeadsAbiertos_c',0)
}
if(AreaComercial_c=='MASIVO' || nvl(AreaComercial_c,'')==''){
setAttribute('FechaDeAsignacion_c',null)
setAttribute('EstadoDeTemporalidad_c','INACTIVA')
return true
}
def cambioContratosActivos = isAttributeChanged('TotalDeContratosActivos_c')
def previousOwnerId=getOriginalAttributeValue('OwnerPartyId') as Long
def cambioOwner=isAttributeChanged('OwnerPartyId') && OwnerPartyId!=previousOwnerId
def cambioLeadsAbiertos=isAttributeChanged('LeadsAbiertos_c')
def cambioOportunidadesAbiertas=isAttributeChanged('OportunidadesAbiertas_c')
def cambioTotalContratosActivos= isAttributeChanged('TotalDeContratosActivos_c')
def cambioTotalContratosIngresados= isAttributeChanged('TotalDeContratosIngresados_c')
def cambioTotalContratosNCT= isAttributeChanged('TotalDeContratosNoConcretadosTemporales_c')
def cambioTotalContratosDT= isAttributeChanged('TotalDeContratosDesactivadosTemporales_c')
def totalContratosActivos=nvl(TotalDeContratosActivos_c, 0 as BigDecimal)
def totalContratosIngresados=nvl(TotalDeContratosDesactivadosTemporales_c, 0 as BigDecimal)
def totalContratosDT=nvl(TotalDeContratosDesactivadosTemporales_c, 0 as BigDecimal)
def totalContratosNCT=nvl(TotalDeContratosNoConcretadosTemporales_c, 0 as BigDecimal)
def contratosPlanesTotales=0
def cambioTotalContratos= cambioTotalContratosActivos || cambioTotalContratosIngresados || cambioTotalContratosNCT || cambioTo
def sinContratosActivos= totalContratosActivos == 0 && nvl(TotalDeContratosIngresados_c, 0 as BigDecimal) == 0 &&
nvl(TotalDeContratosNoConcretadosTemporales_c, 0 as BigDecimal) == 0 && nvl(TotalDeContratosDesactivadosTemporales_c,
def cambiarFechaInicioTemporalidad = isAttributeChanged('CodigoNetPlus_c') 0 as Big
&& nvl(CodigoNetPlus_c,'') !='' || cambioTotalContratos
def cambioConsiderarCliente=isAttributeChanged('ConsiderarComoCliente_c')
if(cambioOwner||cambioLeadsAbiertos||cambioOportunidadesAbiertas || cambioTotalContratos || cambioConsiderarCliente ){
def currentOwnerId=nvl(OwnerPartyId,0 as Long)
def usuarioGenericoId=0
if(nvl(AreaComercial_c,'')=='CORPORATIVO'){
usuarioGenericoId=adf.util.usuarioGenericoCorporativo()
}
else if(nvl(AreaComercial_c,'')=='MASIVO'){
usuarioGenericoId=adf.util.usuarioGenericoMasivo()
}
def leadsAbiertos=nvl(LeadsAbiertos_c,0 as BigDecimal)as Long
def oportunidadesAbiertas=nvl(OportunidadesAbiertas_c,0 as BigDecimal) as Long
def statusTemporalidad=EstadoDeTemporalidad_c
def fechaAsignacion=nvl(FechaDeAsignacion_c,today())
def disponibleHasta=null
if(cambioOwner || cambiarFechaInicioTemporalidad){
fechaAsignacion=today()
//setAttribute('OverrideReassignment_c','Y')
if(OverrideReassignment_c!='Y' && AreaComercial_c=='CORPORATIVO' && !cambiarFechaInicioTemporalidad){
def mapCliente=[:]
def tipoCliente=''
mapCliente.put('customerId',PartyId)
mapCliente.put('ownerId',OwnerPartyId)
mapCliente.put('tipoCliente','ORGANIZATION')
adf.util.reasignarListaClientes([mapCliente])
}
}
if(sinContratosActivos){
println('Sin contratos activos')
}
else{
println('Con contratos activos')
}
if(currentOwnerId==usuarioGenericoId){
statusTemporalidad='DESASIGNADO'
if(cambioOwner){
setAttribute('UsuarioDesasignado_Id_c',adf.util.getResourceProfileId(previousOwnerId))
def team=Team
while(team.hasNext()){
def member=team.next()
if(member.PartyId==previousOwnerId)
member.remove()
}
if(ConsiderarComoCliente_c=='Y'){
setAttribute('ConsiderarComoCliente_c','N')
}
fechaAsignacion=today()
}
}
else if((leadsAbiertos>0 || oportunidadesAbiertas>0 )&& nvl(ConsiderarComoCliente_c,'N') =='N' || !sinContratosActivos ){
println('Status temporalidad: INACTIVA')
statusTemporalidad='INACTIVA'
}
else{
statusTemporalidad='ACTIVA'
disponibleHasta=DisponibleHasta_c
if(cambioOwner || cambiarFechaInicioTemporalidad){
fechaAsignacion=today()
}
def fecha=date(2001,01,01)
def cuentaOCliente = ''
if(nvl(ConsiderarComoCliente_c, 'N') == 'N'){
cuentaOCliente = 'CUENTA'
}else{
cuentaOCliente = 'CLIENTE'
}
def dias=adf.util.diasTemporalidad(nvl(AreaComercial_c,''),cuentaOCliente,'')
println('DIAS:' + 'DIAS')
disponibleHasta=fechaAsignacion+dias.toInteger()
}
setAttribute('EstadoDeTemporalidad_c',statusTemporalidad)
setAttribute('DisponibleHasta_c',disponibleHasta)
setAttribute('FechaDeAsignacion_c',fechaAsignacion)
}
if(OverrideReassignment_c=='Y'){
setAttribute('OverrideReassignment_c','N')
}
LlenadoDocumentosC()
if(isAttributeChanged('JgzzFiscalCode') || isAttributeChanged('RUCExterno_c') || isAttributeChanged('Pasaporte_c' ) ||isAttributeChanged
isAttributeChanged('NumeroDeDocumento_c'
ValidarDuplicadosC() ) /*|| nvl(JgzzFiscalCode,'')=='' || nvl(RUCExterno_c,'')=='' || nvl(Pasaporte_c,'')==''*/){
}
if(isAttributeChanged('ActualizarClienteEnNetplus_c')&&ActualizarClienteEnNetplus_c=='Y'){
setAttribute('ActualizarClienteEnNetplus_c','N')
//funcionCreaCliente(java.lang.String,java.lang.String)
}
if(isAttributeChanged('TipoDeDocumento_c' )){
}
if(isAttributeChanged('JgzzFiscalCode')|| isAttributeChanged('ActualizarInformacionCIIU_c')&&ActualizarInformacionCIIU_c=='Y'){
setAttribute('ActualizarInformacionCIIU_c','N')
busquedaCIIU()
}
def oldRuc= getOriginalAttributeValue('JgzzFiscalCode')
def oldPas= getOriginalAttributeValue('Pasaporte_c')
def oldRucE= getOriginalAttributeValue('RUCExterno_c')
def ruc =isAttributeChanged('JgzzFiscalCode')
def pasaporte = isAttributeChanged('Pasaporte_c')
def RucE = isAttributeChanged('RUCExterno_c')
if(pasaporte){
if(nvl(oldPas,'') != '' && !adf.util.usuarioAdministrador()){
//println('Pasaporte valor origininal: '+oldPas)
if(nvl(Pasaporte_c,'') != nvl(oldPas,'') && (SalesProfileType=='ZCA_PROSPECT' || SalesProfileType=='ZCA_CUSTOMER')){
//println( 'pasaporte valor actual: ' + Pasaporte_c)
throw new oracle.jbo.ValidationException('(BDS) No se puede Modificar este Campo Pasaporte')
}
}
if( nvl(Pasaporte_c,'')==''){
EliminarRegistroClienteNetplus('P')
}else{
println('NumeroDePasaporte:'+Pasaporte_c)
crearActualizarRegistroClienteNetplus('P',Pasaporte_c)
}
}
if(ruc){
if(nvl(oldRuc,'') != '' && !adf.util.usuarioAdministrador()){
//println('RUC valor origininal: '+oldRuc)
if(nvl(JgzzFiscalCode,'') != nvl(oldRuc,'') && (SalesProfileType=='ZCA_PROSPECT' || SalesProfileType=='ZCA_CUSTOMER')){
//println( 'RUC valor actual: ' + JgzzFiscalCode)
throw new oracle.jbo.ValidationException('(BDS) No se puede Modificar este Campo RUC')
}
}
if( nvl(JgzzFiscalCode,'')==''){
EliminarRegistroClienteNetplus('R')
}else{
println('JgzzFiscalCode:'+JgzzFiscalCode)
crearActualizarRegistroClienteNetplus('R',JgzzFiscalCode)
}
}
if(RucE){
if(nvl(oldRuc,'') != '' && !adf.util.usuarioAdministrador()){
println('RUC valor origininal: '+oldRuc)
if(nvl(JgzzFiscalCode,'') != nvl(oldRuc,'') && (SalesProfileType=='ZCA_PROSPECT' || SalesProfileType=='ZCA_CUSTOMER')){
println( 'RUC valor actual: ' + JgzzFiscalCode)
throw new oracle.jbo.ValidationException('(BDS) No se puede Modificar este Campo RUC')
}
}
if( nvl(RUCExterno_c,'')==''){
EliminarRegistroClienteNetplus('RE')
}else{
println('NumeroDeRucEx:'+RUCExterno_c)
crearActualizarRegistroClienteNetplus('RE',RUCExterno_c)
}
}
if(AreaComercial_c =='MASIVO'){
//caracteresEspecialesDireccion()
def cambioFirstName= isAttributeChanged('RazonSocial_c')
def cambioLastName= isAttributeChanged('OrganizationName')
def cambioCorreoElectronico_c= isAttributeChanged('PreferredContactEmailAddress')
if(cambioFirstName||cambioLastName||cambioCorreoElectronico_c){
}
}
}
Expression
if(getPrimaryRowState().isNew())
return true
if(adf.util.usuarioAdministrador() || adf.util.usuarioAdministradorTemporalidad()){
return true
}
def currentUsername=adf.context.getSecurityContext()?.getUserProfile()?.getUserID()
def moc=adf.util.usuarioMasivoCorporativo()
def usuarioMasivo=moc=='MASIVO'
def usuarioCorporativo= moc=='CORPORATIVO'
def resources=newView('Resource')
def resourcec=newViewCriteria(resources)
def resourcer=resourcec.createRow()
def resourcei=resourcer.ensureCriteriaItem('Username')
resourcei.setOperator('=')
resourcei.setValue(currentUsername)
resourcec.insertRow(resourcer)
resources.appendViewCriteria(resourcec)
resources.executeQuery()
def currentUserId
while(resources.hasNext()&¤tUserId==null){
def resource=resources.next()
currentUserId=resource.PartyId
}
def genericoMasivo=adf.util.usuarioGenericoMasivo()
def genericoCorporativo=adf.util.usuarioGenericoCorporativo()
if( isAttributeChanged('OwnerPartyId')){
if(OwnerPartyId!=currentUserId){
throw new oracle.jbo.ValidationException('Sólo los managers pueden asignar una cuenta a otros usuarios')
}
def prevOwner=getOriginalAttributeValue('OwnerPartyId') as Long
def usuarioDesasignadoId=nvl(UsuarioDesasignado_Obj_c?.PartyId,0 as Long)
def tipoUsuario=adf.util.usuarioMasivoCorporativo()
if((prevOwner==genericoMasivo && usuarioMasivo )||(prevOwner==genericoCorporativo && usuarioCorporativo )){
def fechaNull=new Date(01,01,50)
def fechaAsignacion=nvl(FechaDeAsignacion_c,fechaNull)
if(usuarioDesasignadoId!=currentUserId || fechaAsignacion+15<today()){
return true
}
else{
throw new oracle.jbo.ValidationException('Este usuario no puede tomar el contacto porque le fue desasignado en el pasado, hasta
de}asignación')
}
else{
throw new oracle.jbo.ValidationException('No es posible tomar el contacto porque está siendo gestionado por otro ejecutivo')
}
}
else{
if(OwnerPartyId!=currentUserId){
def team=Team
def partOfTeam=false
while(team.hasNext()&&!partOfTeam){
def member=team.next()
if(member.PartyId==currentUserId && !member.getPrimaryRowState().isNew()){
partOfTeam=true
}
}
if(!partOfTeam){
if(!adf.util.usuarioAdministradorTemporalidad() && !usuarioMasivo){
throw new oracle.jbo.ValidationException('No puedes modificar este contacto porque no eres parte del equipo de trabajo')
}
}
}
}
return true
return oracle.apps.fnd.applcore.oaext.model.OAEntityImpl.validateFlexfieldValue(newValue, adf.source, "FND_ACFF_VA_AttributeCatego
"ContextCode", "Bind_ContextCode")
adf.source.isLookupIdValid('UsuarioDesasignado_Id_c',newValue)
adf.source.isLookupIdValid('ActividadEconomica_Id_c',newValue)
adf.source.isLookupIdValid('GrupoComercialDin_Id_c',newValue)
adf.source.isLookupIdValid('NombreCatalogoCIIUDin_Id_c',newValue)
adf.source.isLookupIdValid('LeadProgenitor_Id_c',newValue)
Expression
def CodigoNetPlus = CodigoNetPlus_c;
phonetype = telefono.PhoneType;
println('tipo de telefono: ' + phonetype)
if (phonetype == 'WORK'){
cTelefonicoPais_c = nvl(telefono.PhoneCountryCode,'');
codigoArea_c = nvl(telefono.PhoneAreaCode,'');
numero_c = nvl(telefono.PhoneNumber,'');
extension_c = nvl(telefono.PhoneExtension,'');
contactPointId = telefono.contactPointId;
}else{
ctTelefonicoPais_c = nvl(telefono.PhoneCountryCode,'');
codigoAreaT_c = nvl(telefono.PhoneAreaCode,'');
numeroT_c = nvl(telefono.PhoneNumber,'');
extension_c = nvl(telefono.PhoneExtension,'');
contactPointId = telefono.ContactPointId;
}
}
}
def payload = [:]
payload.put('tipo',tipo_c)
payload.put('extension',extension_c)
payload.put('numero',numero_c)
payload.put('fechaNacimiento',fechaNacimiento_c)
payload.put('provincia',provincia_c)
payload.put('nombres',nombres_c)
payload.put('razonSocial',razonSocial_c)
payload.put('cTelefonicoPais',cTelefonicoPais_c)
payload.put('genero',genero_c)
payload.put('referido',referido_c)
payload.put('numeroDocumento',numeroDocumento_c)
payload.put('grupoComercial',grupoComercial_c)
payload.put('cargo',cargo_c)
payload.put('rolComprador',rolComprador_c)
payload.put('sector',sector_c)
payload.put('apellidos',apellidos_c)
payload.put('paginaWeb',paginaWeb_c)
payload.put('sectoresComerciales',sectoresComerciales_c)
payload.put('contactoPrincipal',contactoPrincipal_c)
payload.put('callePrincipal',callePrincipal_c)
payload.put('idContacto',idContacto_c)
payload.put('identificadorPartyOSC',identificadorPartyOSC_c)
payload.put('idEjecutivoCorporativo',idEjecutivoCorporativo_c)
payload.put('identificadorOSC',identificadorOSC_c)
payload.put('ctTelefonicoPais',ctTelefonicoPais_c)
payload.put('pais',pais_c)
payload.put('correoContacto',correoContacto_c)
payload.put('tipoDocumento',tipoDocumento_c)
payload.put('afinidad',afinidad_c)
payload.put('tipoCliente',tipoCliente_c)
payload.put('codigoArea',codigoArea_c)
payload.put('canton',canton_c)
payload.put('ejecutivoCorporativo',ejecutivoCorporativo_c)
payload.put('codigoAreaT',codigoAreaT_c)
payload.put('telefonoContacto',telefonoContacto_c)
payload.put('numeroT',numeroT_c)
payload.put('correoElectronico',correoContacto_c)
payload.put('calleSecundaria',calleSecundaria_c)
payload.put('contactPointId',contactPointId)
payload.put('addressNumber',addressNumber)
println('PAYLOAD PJ: '+ payload)
try{
if (CodigoNetPlus == null ||CodigoNetPlus == ''||CodigoNetPlus == '0'||CodigoNetPlus == ' '){
creaCliente= adf.webServices.CrearClienteNaturalJuridico.POST(payload)
NumIntegracion = '11';
response = creaCliente;
data_c = creaCliente?.data;
MensajeIntegracion = creaCliente?.message;
}else{
ActualizaCliente= adf.webServices.ActualizarClienteNaturalJuridico.POST(payload)
NumIntegracion = '11';
response = ActualizaCliente;
data_c = ActualizaCliente?.data;
MensajeIntegracion = ActualizaCliente?.message;
}
if(response.code == '1' ){
println('entrando a codigo 1')
codigoCliente = '' + data_c.codCliente;
EstatusInt = ''+ data_c.estatusIntegracion;
setAttribute('EstatusInt_c',EstatusInt );
setAttribute('CodigoNetPlus_c',codigoCliente );
setAttribute('DesEstatusdeIntegracion_c',MensajeIntegracion);
setAttribute('SalesProfileType','ZCA_CUSTOMER')
Bitacora.put('Integracion_c',NumIntegracion )
Bitacora.put('MensajeIntegracion_c',encodeToBase64(''+MensajeIntegracion))
Bitacora.put('Payload_c',encodeToBase64(''+payload))
Bitacora.put('Response_c',encodeToBase64(''+response))
Bitacora.put('IdPrincipal_c',codigoCliente)
adf.webServices.LogBitacora.POST(Bitacora)
}
else{
println('entrando a codigo igual a 0')
setAttribute('EstatusInt_c',EstatusInt );
//setAttribute('CodigoNetPlus_c',codigoCliente );
setAttribute('DesEstatusdeIntegracion_c',MensajeIntegracion);
throw new oracle.jbo.ValidationException(''+ MensajeIntegracion)
Bitacora.put('Integracion_c',NumIntegracion)
Bitacora.put('MensajeIntegracion_c',encodeToBase64(''+MensajeIntegracion))
Bitacora.put('Payload_c',encodeToBase64(''+ payload))
Bitacora.put('Response_c',encodeToBase64(''+response))
Bitacora.put('IdPrincipal_c',codigoCliente)
adf.webServices.LogBitacora.POST(Bitacora)
}
catch(Exception e){
if (codigoCliente == null ||codigoCliente == '' ){
codigoCliente=0;
}
println('sin respuesta')
def msg=e.message
Bitacora.put('Integracion_c',NumIntegracion)
Bitacora.put('MensajeIntegracion_c',encodeToBase64(msg))
Bitacora.put('Payload_c',encodeToBase64(''+ payload))
Bitacora.put('Response_c',encodeToBase64(''+ response))
Bitacora.put('IdPrincipal_c',codigoCliente)
println('payload bitacora'+Bitacora )
adf.webServices.LogBitacora.POST(Bitacora)
throw new oracle.jbo.ValidationException(''+ msg)
}
//def codCiudadSucursal = '';
def identificadorPartyOSC_c = '' + nvl(PartyNumber,'');
def identificadorOSC_c =''+ nvl(PartyId,'');
def tipoDocumento_c =''+nvl(TipoDeDocumento_c,'');
def numeroDocumento_c =''+nvl(NumeroDeDocumento_c,'');
def tipo_c =''+nvl(TipoDePersona_c,'');
def sector_c =''+nvl(Sectorb_c,'');
def nombres_c =''+nvl(OrganizationName,'');
def sectoresComerciales_c =''+nvl(SectoresComerciales_c,'');
def idEjecutivoCorporativo_c =''+nvl(OwnerPartyId,'');
def ejecutivoCorporativo_c =''+nvl(OwnerPartyName,'');
def razonSocial_c =''+nvl(RazonSocial_c,'');
def grupoComercial_c =''+nvl(GrupoComercial_c,'');
def paginaWeb_c = ''+nvl(PrimaryURL,'');
def idContacto_c = ''+nvl(PreferredContactPersonId,'');
def contactoPrincipal_c =''+nvl(PreferredContactName,'');
def telefonoContacto_c = ''+nvl(PreferredContactPhone,'');
def correoContacto_c = ''+nvl(PreferredContactEmailAddress,'');
def genero_c = '';
def fechaNacimiento_c = '';
def apellidos_c = '';
def referido_c = '';
def cargo_c= '';
def afinidad_c='';
def rolComprador_c = '';
def curRow ='';
}
//---------------------------
def pais_c ='';
def callePrincipal_c ='';
def calleSecundaria_c ='';
def canton_c ='';
def provincia_c ='';
def addressId = '';
def direcciones = PartySite;
while (direcciones.hasNext()){
def direccion = direcciones.next();
pais_c = direccion.Country;
callePrincipal_c = direccion.Address1;
calleSecundaria_c = direccion.Address2;
provincia_c = upperCase(direccion.State);
canton_c = upperCase(direccion.AddrElementAttribute1);
addressId = direccion.PartySiteNumber;
payload.put('ctTelefonicoPais',ctTelefonicoPais_c)
payload.put('codigoAreaT',codigoAreaT_c)
payload.put('numeroT ',numeroT_c)
payload.put('extension',extension_c)
payload.put('correoElectronico',correoContacto_c)
payload.put('pais',pais_c)
payload.put('provincia',provincia_c)
payload.put('canton',canton_c)
payload.put('callePrincipal',callePrincipal_c)
payload.put('calleSecundaria',calleSecundaria_c)
payload.put('contactPointId',contactId)
payload.put('addressNumber',addressId)
try{
//LOGICA DE INTEGRACIÓN
ActualizaCliente= adf.webServices.ActualizarClienteNaturalJuridico.POST(payload)
println(ActualizaCliente)
if(ActualizaCliente?.data.estatusIntegracion =='0' || ActualizaCliente?.data.estatusIntegracion =='2'){
MensajeIntegracion = ''+ActualizaCliente?.message;
codigoCliente = ''+ActualizaCliente?.data.codCliente;
if (ActualizaCliente?.data.codCliente == null ||ActualizaCliente?.data.codCliente=='') {
codigoCliente= ' ';
}else{
codigoCliente = '' + ActualizaCliente?.data.codCliente;
}
setAttribute('EstatusInt_c',ActualizaCliente?.data.estatusIntegracion);
setAttribute('CodigoNetPlus_c',codigoCliente);
setAttribute('DesEstatusdeIntegracion_c',MensajeIntegracion);
//MensajeIntegracion = ''+ActualizaCliente?.message;
throw new oracle.jbo.ValidationException(''+ MensajeIntegracion)
def POST_param=[:]
POST_param.put('Cuenta_Id_c',identificadorOSC_c)
POST_param.put('Integracion_c',11)
POST_param.put('MensajeIntegracion_c',encodeToBase64(MensajeIntegracion))
POST_param.put('Payload_c',encodeToBase64(''+ payload))
POST_param.put('Response_c',encodeToBase64(''+ActualizaCliente))
POST_param.put('IdPrincipal_c',codigoCliente)
adf.webServices.LogBitacora.POST(POST_param)
}
else{
throw new oracle.jbo.ValidationException(''+MensajeIntegracion)
setAttribute('EstatusInt_c',ActualizaCliente?.data.estatusIntegracion);
setAttribute('CodigoNetPlus_c',ActualizaCliente?.data.codCliente);
setAttribute('DesEstatusdeIntegracion_c',ActualizaCliente?.message);
MensajeIntegracion = ''+ActualizaCliente?.message;
def POST_param=[:]
POST_param.put('Cuenta_Id_c',identificadorOSC_c)
POST_param.put('Integracion_c',11)
POST_param.put('MensajeIntegracion_c',encodeToBase64(MensajeIntegracion))
POST_param.put('Payload_c',encodeToBase64(''+ payload))
POST_param.put('Response_c',encodeToBase64(''+ActualizaCliente))
POST_param.put('IdPrincipal_c',codigoCliente)
adf.webServices.LogBitacora.POST(POST_param)
throw new oracle.jbo.ValidationException(''+MensajeIntegracion)
}
}
catch(Exception e){
println('sin respuesta del servicio')
def msg=e.message
def POST_param=[:]
POST_param.put('Cuenta_Id_c',identificadorOSC_c)
POST_param.put('Integracion_c',11)
POST_param.put('MensajeIntegracion_c',encodeToBase64(msg))
POST_param.put('Payload_c',encodeToBase64(''+ payload))
POST_param.put('Response_c',encodeToBase64(''+ActualizaCliente))
POST_param.put('IdPrincipal_c',codigoCliente)
//adf.webServices.LogBitacora.POST(POST_param)
throw new oracle.jbo.ValidationException('Error: ' + e)
def fechaList=[]
def today=today()
def yearNum=year(today)
def monthNum= 0
monthNum=month(today) as Long
def i=0
def rangoFechas=15
while(i < rangoFechas){
def anioActual=yearNum-(-monthNum+i+1)/12 as Long
def mesActual=(monthNum-i-1+1200)%12+1
def monthStr= ''
if(mesActual==0)
mesActual=12
if(mesActual>= 10){
monthStr=''+mesActual
}
else{
monthStr= '0'+mesActual
}
def yearStr=''+anioActual
def fechaStr=yearStr+"-"+monthStr+"-"+"01"
println(fechaStr)
fechaList.add(java.sql.Date.valueOf(fechaStr))
i+=1
}
def optys=newView('OpportunityVO')
optys.setMaxFetchSize(5000)
optys.executeQuery()
def count=0
while(optys.hasNext()){
def opty=optys.next()
opty.setAttribute('FechaVentaBruta_c',fechaList[count%rangoFechas])
}
def map=[:]
map.put('1',1)
map.put('2',2)
map.put('3',3)
def keys=map.keySet()
throw new oracle.jbo.ValidationException('keys:'+keys)
def Espacios = 0;
if(true){
def ruc =nvl(JgzzFiscalCode,'').trim()
def rucEx=nvl(RUCExterno_c,'').trim()
def pas=nvl(Pasaporte_c,'').trim()
if((ruc!='' || rucEx!='' || pas!='')){
def nomEjecutivo=''+nvl(OwnerPartyName,'');
def errorMsg=''
def organizations = newView('OrganizationProfile');
def organizationc = newViewCriteria(organizations);
def organizationr = organizationc.createRow();
def useOr=false
//def organizationa=organizationr.ensureCriteriaItem('Status')
//organizationa.setOperator('=')
//organizationa.setValue('A')
if(ruc!=''){
def organizationi=organizationr.ensureCriteriaItem('JgzzFiscalCode')
organizationi.setOperator('=')
organizationi.setValue(ruc)
useOr=true
}
if(rucEx!=''){
def organizationj=organizationr.ensureCriteriaItem('RUCExterno_c')
organizationj.setOperator('=')
organizationj.setValue(rucEx)
if(useOr){
organizationj.setConjunction(0)
}
useOr=true
}
if(pas!=''){
def organizationk=organizationr.ensureCriteriaItem('Pasaporte_c')
organizationk.setOperator('=')
organizationk.setValue(pas)
if(useOr){
organizationk.setConjunction(0)
}
useOr=true
}
organizationc.insertRow(organizationr);
organizations.appendViewCriteria(organizationc);
organizations.executeQuery();
while (organizations.hasNext()) {
def curRow = organizations.next()
if(''+PartyId!=''+curRow.PartyId &&curRow.Status=='A' && !adf.util.usuarioAdministrador()){
if(ruc!=''&&curRow.JgzzFiscalCode==ruc){
println('PartyId1:'+PartyId+', PartyId2:'+curRow.PartyId)
println('PartyNumber1:'+PartyNumber+', PartyNumber2:'+curRow.PartyNumber)
println('Status1:'+Status+', Status2:'+curRow.Status)
errorMsg+='El numero de RUC '+ ruc + ' ya existe en la cuenta '+curRow.OrganizationName+' en la bandeja del usuar
'+curRow.OwnerPartyName+'.
} '
if(rucEx!=''&&curRow.RUCExterno_c==rucEx){
errorMsg+='El numero de RUC Externo '+ rucEx + ' ya existe en la cuenta '+curRow.OrganizationName+' en la bandej
'+curRow.OwnerPartyName+'.
} '
if(pas!=''&&curRow.Pasaporte_c==pas){
errorMsg+='El numero de Pasaporte '+ pas + ' ya existe en la cuenta '+curRow.OrganizationName+' en la bandeja del
'+curRow.OwnerPartyName+'.
} '
}
}
if(errorMsg!=''){
println('mensaje de error:' + errorMsg)
throw new oracle.jbo.ValidationException(errorMsg)
}
if(ruc!=''&&isAttributeChanged('JgzzFiscalCode')){
for (int i = 0; i < JgzzFiscalCode.length(); i++) {
if (JgzzFiscalCode.charAt(i) == ' ') {Espacios++;}
}
if (Espacios >0){
throw new oracle.jbo.ValidationException('El número de RUC no puede contener espacios.')
}
setAttribute('EstatusValid_c',adf.util.validaClienteNetplus('R',ruc))
}
if(pas!=''&& isAttributeChanged('Pasaporte_c') ){
for (int i = 0; i < Pasaporte_c.length(); i++) {
if (Pasaporte_c.charAt(i) == ' ') {Espacios++;}
}
if (Espacios >0){
throw new oracle.jbo.ValidationException('El número de Pasaporte no puede contener espacios.')
}
adf.util.validarFormatoDoc('P',pas)
setAttribute('EstatusValid_c',adf.util.validaClienteNetplus('P',nvl(Pasaporte_c,'')))
}
if(rucEx !=''){
for (int i = 0; i < RUCExterno_c.length(); i++) {
if (RUCExterno_c.charAt(i) == ' ') {Espacios++;}
}
if (Espacios >0){
throw new oracle.jbo.ValidationException('El número de RUC Externo no puede contener espacios.')
}
}
}
}
def ruc=nvl(JgzzFiscalCode,'')
if(ruc!=''){
def ciius=newView('CatalogoCIIU_c')
def ciiuc=newViewCriteria(ciius)
def ciiur=ciiuc.createRow()
def ciiui=ciiur.ensureCriteriaItem('RecordNumber')
ciiui.setOperator('=')
ciiui.setValue(ruc)
ciiuc.insertRow(ciiur)
ciius.appendViewCriteria(ciiuc)
ciius.executeQuery()
def existe=false
while(ciius.hasNext()&&!existe){
def ciiu = ciius.next()
setAttribute('NombreCatalogoCIIUDin_Id_c',ciiu.Id)
setAttribute('ActividadEconomica_Id_c',ciiu.ActividadEconomicaDin_Id_c)
setAttribute('Ciudad_c',nvl(ciiu.Ciudad_c,''))
setAttribute('Tamano_c',nvl(ciiu.Tamano_c,''))
setAttribute('SectorCIIU_c',nvl(ciiu.SectorCIIU_c,''))
setAttribute('CantidadEmpleados_c',nvl(ciiu.CantidadEmpleados_c,''))
}
}
def leadId =nvl(IdLeadProgenitor_c,0 as BigDecimal)
println('Ejecutando getDireccionLead')
if(leadId!=0){
println('lead diferente de null')
def leads=newView('Lead')
def leadc=newViewCriteria(leads)
def leadr=leadc.createRow()
def leadi=leadr.ensureCriteriaItem('LeadId')
leadi.setOperator('=')
leadi.setValue(leadId)
leadc.insertRow(leadr)
leads.appendViewCriteria(leadc)
leads.executeQuery()
while(leads.hasNext()){
println('Encontr¿e un Lead!')
def lead=leads.next()
println('lead enable create account=='+lead.EnableCreateAccount+'y tipoCliente=='+lead.TipoCliente_c)
if(lead.TipoCliente_c=='ORGANIZATION'&&nvl(lead.PrimaryContactState,'')!=''){
def locations = newView('Location')
def location = locations.createRow()
location.setAttribute('Address1',lead.PrimaryContactAddress1)
location.setAttribute('Address2',lead.PrimaryContactAddress2)
location.setAttribute('State',lead.PrimaryContactState)
location.setAttribute('Country',lead.PrimaryContactCountry)
location.setAttribute('City',lead.PrimaryContactCity)
location.setAttribute('AddrElementAttribute1',lead.AddrElementAttribute1)
location.setAttribute('CreatedByModule','ZCM')
locations.insertRow(location)
println('location:'+location)
def locationId = location.getAttribute('LocationId')
def partySites = PartySite
def partySite = partySites.createRow()
partySite.setAttribute('CreatedByModule','ZCM')
partySite.setAttribute('LocationId',locationId)
partySites.insertRow(partySite)
println('partySite:'+partySite)
}
}
}
def organizationName=nvl(OrganizationName,'')
def razonSocial=nvl(RazonSocial_c,'')
def moc=nvl(AreaComercial_c,'')
return organizationName!=''&&razonSocial!='' &&moc!=''
def isNew=getPrimaryRowState().isNew()
def cambioTipoDocumento=isAttributeChanged('TipoDeDocumento_c')
def cambioNumeroDocumento=isAttributeChanged('NumeroDeDocumento_c')
def tipoDocumento=nvl(TipoDeDocumento_c,'')
def numeroDocumento=nvl(NumeroDeDocumento_c,'')
def R= nvl(JgzzFiscalCode,'')
def RE= nvl(RUCExterno_c,'')
def P= nvl(Pasaporte_c,'')
if(cambioTipoDocumento||cambioNumeroDocumento||isNew||(R==''&&RE==''&&P=='')){
if(tipoDocumento!=''&&numeroDocumento!=''){
if(tipoDocumento=='R'){
setAttribute('JgzzFiscalCode',numeroDocumento)
}
else if(tipoDocumento=='RE'){
setAttribute('RUCExterno_c',numeroDocumento)
}
else if(tipoDocumento=='P'){
setAttribute('Pasaporte_c',numeroDocumento)
}
}
}
def cambioRuc=isAttributeChanged('JgzzFiscalCode')
def cambioRucExterno=isAttributeChanged('RUCExterno_c')
def cambioPasaporte=isAttributeChanged('Pasaporte_c')
R= nvl(JgzzFiscalCode,'')
RE= nvl(RUCExterno_c,'')
P= nvl(Pasaporte_c,'')
if(cambioRuc||cambioRucExterno||cambioPasaporte||isNew||numeroDocumento==''){
if( R!=''){
setAttribute('TipoDeDocumento_c','R')
setAttribute('NumeroDeDocumento_c',R)
}
else if(RE!=''){
setAttribute('TipoDeDocumento_c','RE')
setAttribute('NumeroDeDocumento_c',RE)
}
else if(P!=''){
setAttribute('TipoDeDocumento_c','P')
setAttribute('NumeroDeDocumento_c',P)
}
}
def CodigoNetPlus = CodigoNetPlus_c;
phonetype = telefono.PhoneType;
println('tipo de telefono: ' + phonetype)
if (phonetype == 'WORK'){
cTelefonicoPais_c = nvl(telefono.PhoneCountryCode,'');
cTelefonicoPais_c = cTelefonicoPais_c.trim();
codigoArea_c = nvl(telefono.PhoneAreaCode,'');
codigoArea_c = codigoArea_c.trim();
numero_c = nvl(telefono.PhoneNumber,'');
numero_c = numero_c.trim();
extension_c = nvl(telefono.PhoneExtension,'');
extension_c = extension_c.trim();
contactPointId = telefono.contactPointId;
}else{
ctTelefonicoPais_c = nvl(telefono.PhoneCountryCode,'');
ctTelefonicoPais_c = ctTelefonicoPais_c.trim();
codigoAreaT_c = nvl(telefono.PhoneAreaCode,'');
codigoAreaT_c = codigoAreaT_c.trim();
numeroT_c = nvl(telefono.PhoneNumber,'');
numeroT_c = numeroT_c.trim();
extension_c = nvl(telefono.PhoneExtension,'');
extension_c = extension_c.trim()
contactPointId = telefono.ContactPointId;
}
}
def tipo_c =''+nvl(TipoDePersona_c,'');
tipo_c = tipo_c.trim();
def nombres_c =''+nvl(OrganizationName,'');
nombres_c = nombres_c.trim();
def razonSocial_c =''+nvl(RazonSocial_c,'');
razonSocial_c=razonSocial_c.trim();
def numeroDocumento_c =''+nvl(NumeroDeDocumento_c,'');
numeroDocumento_c = numeroDocumento_c.trim();
def grupoComercial_c =''+nvl(GrupoComercial_c,'');
grupoComercial_c = grupoComercial_c.trim();
def sector_c =''+nvl(Sectorb_c,'');
sector_c= sector_c.trim();
def paginaWeb_c = ''+nvl(PrimaryURL,'');
paginaWeb_c = paginaWeb_c.trim();
def sectoresComerciales_c =''+nvl(SectoresComerciales_c,'');
sectoresComerciales_c = sectoresComerciales_c.trim();
def identificadorPartyOSC_c = '' + nvl(PartyNumber,'');
def idEjecutivoCorporativo_c =''+nvl(OwnerPartyId,'');
def correoContacto_c = ''+nvl(PreferredContactEmailAddress,'');
correoContacto_c = correoContacto_c.trim();
def tipoDocumento_c =''+nvl(TipoDeDocumento_c,'');
def tipoCliente_c = ''+nvl(SalesProfileType,'');
def ejecutivoCorporativo_c =''+nvl(OwnerPartyName,'');
def telefonoContacto_c = ''+nvl(PreferredContactPhone,'');
telefonoContacto_c = telefonoContacto_c.trim();
def correoElectronico = '';
}
throw new oracle.jbo.ValidationException(errorMsg)
}
}
def contactoPrincipal_c =nvl(PreferredContactName,'');
contactoPrincipal_c = contactoPrincipal_c.trim();
println('contactoPrincipal_c: '+ contactoPrincipal_c)
def tipoOpp = nvl(AreaComercial_c,'');
println('tipoOpp:' +tipoOpp)
if (tipoOpp=='MASIVO'){
if(contactoPrincipal_c != ''){
def admin_view = newView('PersonProfile');
def criteria = newViewCriteria(admin_view);
def row = criteria.createRow();
def vrc = row.ensureCriteriaItem('PartyId');
vrc.setOperator('=');
vrc.setValue(PreferredContactPersonId);
criteria.insertRow(row);
admin_view.appendViewCriteria(criteria);
admin_view.executeQuery();
while (admin_view.hasNext()) {
def curRow = admin_view.next()
nombres_c = nvl(curRow.PersonFirstName,'')
nombres_c = nombres_c.trim();
genero_c = nvl(curRow.Gender,'')
genero_c = genero_c.trim();
fechaNacimiento_c = nvl(curRow.DateOfBirth,'')
apellidos_c = nvl(curRow.PersonLastName,'')
apellidos_c = apellidos_c.trim();
referido_c = nvl(curRow.Referidoc_c,'')
referido_c = referido_c.trim();
cargo_c= nvl(curRow.JobTitle,'')
cargo_c = cargo_c.trim();
afinidad_c= nvl(curRow.SalesAffinityCode,'')
afinidad_c = afinidad_c.trim();
rolComprador_c = nvl(curRow.SalesBuyingRoleCode,'')
rolComprador_c = rolComprador_c.trim()
idContacto_c =nvl(curRow.PartyId,'')
}
}else{
if (contactoPrincipal_c != ''){
contactoPrincipal_c = '';
nombres_c='';
correoContacto_c ='';
nombres_c = '';
genero_c = '';
fechaNacimiento_c = '';
apellidos_c ='';
referido_c = '';
cargo_c= '';
afinidad_c= '';
rolComprador_c = '';
idContacto_c =''
}
else{
throw new oracle.jbo.ValidationException('Falló en el envío del cliente: Debe añadir el Contacto Principal a la oportunidad
}
}
payload.put('barrioSector',barrioSector)
payload.put('numeracion',numeracion)
payload.put('conjuntoUrbanizacionEdificio',conjuntoUrbanizacionEdificio)
payload.put('referencia',referencia)
println('PAYLOAD PJ: '+ payload)
if(AreaComercial_c == 'MASIVO'){
def userName = adf.context.getSecurityContext()?.getUserName();
payload.put('nombreUsuario',userName)}
try{
def existe=false
def cliNets;
cliNets = newView('ClienteNetplus_c');
def cliNetc=newViewCriteria(cliNets)
def cliNetr=cliNetc.createRow()
def cliNeti=cliNetr.ensureCriteriaItem('Cuenta_Id_c')
cliNeti.setOperator('=')
cliNeti.setValue(PartyId)
def cliNetj=cliNetr.ensureCriteriaItem('NumeroDeDocumento_c')
cliNetj.setOperator('=')
cliNetj.setValue(nroDocumento)
cliNetc.insertRow(cliNetr)
cliNets.appendViewCriteria(cliNetc)
cliNets.executeQuery()
while(cliNets.hasNext()&&!existe){
def cliNet=cliNets.next()
existe=true
}
response = creaCliente;
data_c = creaCliente?.data;
MensajeIntegracion = creaCliente?.message;
println('se envio a crear el cliente')
}else{
NumIntegracion = '11';
ActualizaCliente= adf.webServices.ActualizarClienteNaturalJuridico.POST(payload)
response = ActualizaCliente;
data_c = ActualizaCliente?.data;
MensajeIntegracion = ActualizaCliente?.message;
println('se envio a actualizar el cliente')
}
println('numero de integración: '+NumIntegracion)
if(response.code == '1' ){
println('entrando a codigo 1')
codigoCliente = '' + data_c.codCliente;
EstatusInt = ''+ data_c.estatusIntegracion;
setAttribute('EstatusInt_c',EstatusInt );
setAttribute('CodigoNetPlus_c',codigoCliente );
setAttribute('DesEstatusdeIntegracion_c',MensajeIntegracion);
setAttribute('SalesProfileType','ZCA_CUSTOMER')
if(!existe){
def cliNet=cliNets.createRow()
cliNet.setAttribute('TipoDeDocumento_c',tipodocumento)
cliNet.setAttribute('NumeroDeDocumento_c',nroDocumento)
cliNet.setAttribute('RecordName',CodigoNetPlus_c)
cliNet.setAttribute('Cuenta_Id_c',PartyId)
cliNets.insertRow(cliNet)
}
Bitacora.put('Integracion_c',NumIntegracion )
Bitacora.put('MensajeIntegracion_c',encodeToBase64(''+MensajeIntegracion))
Bitacora.put('Payload_c',encodeToBase64(''+payload))
Bitacora.put('Response_c',encodeToBase64(''+response))
Bitacora.put('IdPrincipal_c',codigoCliente)
adf.webServices.LogBitacora.POST(Bitacora)
}
else{
println('entrando a codigo igual a 0')
setAttribute('EstatusInt_c',EstatusInt );
//setAttribute('CodigoNetPlus_c',codigoCliente );
setAttribute('DesEstatusdeIntegracion_c',MensajeIntegracion);
throw new oracle.jbo.ValidationException(''+ MensajeIntegracion)
Bitacora.put('Integracion_c',NumIntegracion)
Bitacora.put('MensajeIntegracion_c',encodeToBase64(''+MensajeIntegracion))
Bitacora.put('Payload_c',encodeToBase64(''+ payload))
Bitacora.put('Response_c',encodeToBase64(''+response))
Bitacora.put('IdPrincipal_c',codigoCliente)
adf.webServices.LogBitacora.POST(Bitacora)
}
catch(Exception e){
if (codigoCliente == null ||codigoCliente == '' ){
codigoCliente=0;
}
println('sin respuesta')
def msg=e.message
Bitacora.put('Integracion_c',NumIntegracion)
Bitacora.put('MensajeIntegracion_c',encodeToBase64(msg))
Bitacora.put('Payload_c',encodeToBase64(''+ payload))
Bitacora.put('Response_c',encodeToBase64(''+ response))
Bitacora.put('IdPrincipal_c',codigoCliente)
println('payload bitacora'+Bitacora )
adf.webServices.LogBitacora.POST(Bitacora)
throw new oracle.jbo.ValidationException(''+ msg)
}
def usages=PartyUsageAssignment
def salesProspect=false
while(usages.hasNext()&&salesProspect==false){
def usage=usages.next()
if(usage.PartyUsageCode=='SALES_PROSPECT' || usage.PartyUsageCode=='SALES_ACCOUNT' ){
salesProspect=true
}
}
def printMap=[:]
printMap.put('uniqueName',PartyUniqueName)
printMap.put('salesProspect',salesProspect)
if(salesProspect){
if(nvl(AreaComercial_c,'')==''){
setAttribute('AreaComercial_c','CORPORATIVO')
}
def codigoClienteNetplus=nvl(CodigoNetPlus_c,'')
def tipoDoc=nvl(TipoDeDocumento_c,'')
def nroDoc=nvl(NumeroDeDocumento_c,'')
if(codigoClienteNetplus!='' && tipoDoc!='' &&nroDoc!=''){
def cliNets = newView('ClienteNetplus_c');
def cliNetc=newViewCriteria(cliNets)
def cliNetr=cliNetc.createRow()
def cliNeti=cliNetr.ensureCriteriaItem('Cuenta_Id_c')
cliNeti.setOperator('=')
cliNeti.setValue(PartyId)
def cliNetj=cliNetr.ensureCriteriaItem('NumeroDeDocumento_c')
cliNetj.setOperator('=')
cliNetj.setValue(nroDoc)
cliNetc.insertRow(cliNetr)
cliNets.appendViewCriteria(cliNetc)
cliNets.executeQuery()
def existe=false
while(cliNets.hasNext()&&!existe){
def cliNet=cliNets.next()
existe=true
}
if(!existe){
def cliNet=cliNets.createRow()
cliNet.setAttribute('TipoDeDocumento_c',tipoDoc)
cliNet.setAttribute('NumeroDeDocumento_c',nroDoc)
cliNet.setAttribute('RecordName',codigoClienteNetplus)
cliNet.setAttribute('Cuenta_Id_c',PartyId)
cliNets.insertRow(cliNet)
}
}
LlenadoDocumentosC()
}
println(printMap)
def usuarioGenericoId
def currentOwnerId=OwnerPartyId
def moc=nvl(AreaComercial_c,'')
if(moc=='MASIVO'){
usuarioGenericoId=adf.util.usuarioGenericoMasivo()
}
else if(moc=='CORPORATIVO'){
usuarioGenericoId=adf.util.usuarioGenericoCorporativo()
}
if(nvl(OportunidadesAbiertas_c,0 as BigDecimal) == 0 && nvl(LeadsAbiertos_c,0 as BigDecimal)==0 || ConsiderarComoCli
setAttribute('OwnerPartyId',usuarioGenericoId)
setAttribute('OverrideReassignment_c','Y')
def map=[:]
map.put('customerId',PartyId)
map.put('ownerId',currentOwnerId)
map.put('tipoCliente','ORGANIZATION')
map.put('PartyUniqueName',PartyUniqueName)
return [map]
}
return []
if(OverrideReassignment_c!='Y' && AreaComercial_c!='MASIVO'){
adf.util.reasignarCliente('ORGANIZATION',PartyId,OwnerPartyId,PartyId)
}
else{
setAttribute('OverrideReassignment_c','N')
}
def cliNets = newView('ClienteNetplus_c');
def cliNetc=newViewCriteria(cliNets)
def cliNetr=cliNetc.createRow()
def cliNeti=cliNetr.ensureCriteriaItem('Cuenta_Id_c')
cliNeti.setOperator('=')
cliNeti.setValue(PartyId)
def cliNetj=cliNetr.ensureCriteriaItem('TipoDeDocumento_c')
cliNetj.setOperator('=')
cliNetj.setValue(TipoDocumento)
cliNetc.insertRow(cliNetr)
cliNets.appendViewCriteria(cliNetc)
cliNets.executeQuery()
while(cliNets.hasNext()){
def v=cliNets.next()
v.remove()
println('eliminando cuenta:'+PartyId+' tipo de documento:' +TipoDocumento)
}
println('TipoDocumento:'+TipoDocumento +' NroDocumento:'+NroDocumento)
def cliNets = newView('ClienteNetplus_c');
def cliNetc=newViewCriteria(cliNets)
def cliNetr=cliNetc.createRow()
def cliNeti=cliNetr.ensureCriteriaItem('Cuenta_Id_c')
cliNeti.setOperator('=')
cliNeti.setValue(PartyId)
def cliNetj=cliNetr.ensureCriteriaItem('TipoDeDocumento_c')
cliNetj.setOperator('=')
cliNetj.setValue(TipoDocumento)
cliNetc.insertRow(cliNetr)
cliNets.appendViewCriteria(cliNetc)
cliNets.executeQuery()
def existe=false
while(cliNets.hasNext()&&!existe){
def cliNet=cliNets.next()
existe=true
cliNet.setAttribute('NumeroDeDocumento_c',NroDocumento)
println('actualizando registro')
}
/*
if(!existe && nvl(CodigoNetPlus_c,'') !='' ){
def cliNet=cliNets.createRow()
cliNet.setAttribute('TipoDeDocumento_c',TipoDocumento)
cliNet.setAttribute('NumeroDeDocumento_c',NroDocumento)
cliNet.setAttribute('RecordName',CodigoNetPlus_c)
cliNet.setAttribute('Cuenta_Id_c',PartyId)
cliNets.insertRow(cliNet)
println('creando registro')
}*/
def callePrincipal_c ='';
def calleSecundaria_c ='';
def addressNumber = '';
def direcciones = PartySite;
def numeracion=''
def barrioSector=''
def conjuntoUrbanizacionEdificio=''
def referencia=''
def Expresion = /^[A-Za-zÁÉÍÓÚáéíóúñÑ0-9\s.]+$/
def Expresion2 = /^[0-9]*$/
def errorList=[]
def errorCount=0
while (direcciones.hasNext()){
def direccion = direcciones.next();
callePrincipal_c = nvl(direccion.Address1,'');
calleSecundaria_c = nvl(direccion.Address2,'');
numeracion=nvl(direccion.Address3,'').trim()
barrioSector=nvl(direccion.AddrElementAttribute2,'');
conjuntoUrbanizacionEdificio=nvl(direccion.AddrElementAttribute3,'').trim()
referencia=nvl(direccion.AddrElementAttribute4,'').trim()
activosC.insertRow(activosCR)
activos.appendViewCriteria(activosC)
activos.setMaxFetchSize(2000)
activos.executeQuery()
def totalIngresado = 0
def totalActivo = 0
def totalDesactivado = 0
def totalDesactivadoTemp = 0
def totalNoConcretado = 0
def totalNoConcretadoTemp = 0
def totalDeActivos = 0
while(activos.hasNext()){
def activo = activos.next()
def estado = activo.EstatusServicio_c
}
if(estado != 'DESACTIVADO' && TotalDeContratosDesactivados_c==null){
setAttribute('TotalDeContratosDesactivados_c',0)
}
if(estado != 'DESACTIVADO_TEMPORAL' && TotalDeContratosDesactivadosTemporales_c==null){
setAttribute('TotalDeContratosDesactivadosTemporales_c',0)
}
if(estado != 'NO_CONCRETADA' && TotalDeContratosNoConcretados_c==null){
setAttribute('TotalDeContratosNoConcretados_c',0)
}
if(estado != 'NO_CONCRETADA_TEMPORAL' && TotalDeContratosNoConcretadosTemporales_c==null){
setAttribute('TotalDeContratosNoConcretadosTemporales_c',0)
}
if(estado == 'INGRESADO'){
totalIngresado = totalIngresado+1
setAttribute('TotalDeContratosIngresados_c',totalIngresado)
No if(!
Groovy Function oracle.apps.crmCommon.extensibility.con
return false;
Name :regularizarCuenta
Description : isAttributeChanged('RegularizarCuenta_c
Execution Schedule : 0:Days:After:
Function Display Name : regularizarCuenta
def vc = newViewCriteria(vo)
def vcr = vc.createRow()
def vcri = vcr.ensureCriteriaIte
vcri.setOperator('=')
vcri.setValue(PartyId) //Id de
def vci2 = vcr.ensureCriteriaIt
vci2.setOperator('=')
vci2.setValue('OPEN')
vc.insertRow(vcr)
vo.appendViewCriteria(vc)
vo.executeQuery()
//setAttribute('NumeroOportun
return vo.getEstimatedRowCou
10 10
18 18
1500 1500
20 20
1500 1500
0 0
80 80
10 10
1500 1500
10 10
1500 1500
10 10
0 0 def nullDate= new Date(1900,0
def fechaAsig=nvl(FechaDeAsi
if(fechaAsig==nullDate){
return 0
}
else{
return today()-fechaAsig
}
18 18
10 10
1500 1500
32714 32714
10 10
80 80
1500 1500
0 0
10 10
1500 1500
10 10
10 10
18 18
80 80
1500 1500
18 18
1500 1500
16 16
80 80
10 10
1500 1500
1500 1500
1500 1500
10 10
10 10
10 10
1500 1500
18 18
1500 1500
10 10
80 80
80 80
20 20
s_c')
mbioTotalContratosNCT || cambioTotalContratosDT
BigDecimal) == 0 &&
osDesactivadosTemporales_c, 0 as BigDecimal)
tPlus_c,'') !='' || cambioTotalContratos == 0
&& sinContratosActivos
cambioConsiderarCliente ){
oTemporalidad){
' || !sinContratosActivos ){
d('Pasaporte_c' ) ||isAttributeChanged('TipoDeDocumento_c' )||
')=='' || nvl(Pasaporte_c,'')==''*/){
ualizarInformacionCIIU_c=='Y'){
ype=='ZCA_CUSTOMER')){
orte')
leType=='ZCA_CUSTOMER')){
leType=='ZCA_CUSTOMER')){
s usuarios')
suarioCorporativo )){
urce, "FND_ACFF_VA_AttributeCategory__AttributeCategory",
us == ' '){
gracion =='2'){
{
istrador()){
espacios.')
tener espacios.')
ontener espacios.')
='+lead.TipoCliente_c)
='')){
=''){
mporales_c==null){
)
a.'
ression
le.apps.crmCommon.extensibility.content.adf.data.util.ExtensibilityGro
urn false;
urn true;
le.apps.crmCommon.extensibility.content.adf.data.util.ExtensibilityGro
urn false;
ributeChanged('RegularizarCuenta_c')
Object Name : Origen_c
Object Name Origen_c
Object Display Name Plural Origenes
Object Type Custom
Application Name CRM
Table Name MOT_REF_ENTITIES
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Custom Fields
Name Display Name Type Column Name
RecordName Código OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
Corporativo_c Corporativo Checkbox EXTN_ATTRIBUTE_CHAR009
Canal_Id_c Canal DCLForeignKey EXTN_ATTRIBUTE_NUMBER001
CurrencyCode Currency Code FCL CURRENCY_CODE
Masivo_c Masivo Checkbox EXTN_ATTRIBUTE_CHAR010
LastUpdatedBy Actualizado por OOTB LAST_UPDATED_BY
CreatedBy Creado por OOTB CREATED_BY
OraZcxOwner_c Owner DCL
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Rule1 Field Validation
Field Name : Canal_Id_c
Object Workflows
Name Definition Name Event Point Description
Origen_c_Standard_Create Create
Origen_c_Standard_Delete Delete
Origen_c_Standard_Update Update
Dynamic Layouts
Layout Name Active Role
Punto Net Origen Yes
Punto Net Origen Yes
Origen_c
Origenes
Custom
CRM
MOT_REF_ENTITIES
18
0
0
0
3
2
2
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
adf.source.isLookupIdValid('Canal_Id_c',newValue)
ption Disabled Actions Expression
No return
(oracle.apps.fnd.applcore.Profile.ge
No return
(oracle.apps.fnd.applcore.Profile.ge
No return
(oracle.apps.fnd.applcore.Profile.ge
Custom Fields
Name Display Name Type Column Name
RecordName Número de registro OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
CurrencyCode Currency Code FCL CURRENCY_CODE
LeadsAsignados_c Leads Asignados Number EXTN_ATTRIBUTE_NUMBER006
LastUpdatedBy Actualizado por OOTB LAST_UPDATED_BY
CreatedBy Creado por OOTB CREATED_BY
OraZcxOwner_c Owner DCL
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Object Workflows
Name Definition Name Event Point Description
PartidaAsignacionLeads_c_S Update
tandard_Update
PartidaAsignacionLeads_c_S Delete
tandard_Delete
PartidaAsignacionLeads_c_S Create
tandard_Create
PartidaAsignacionLeads_c
Partidas de Asignación de Leads
Custom
CRM
ZCA_REF_ENTITIES
{0000000000}
11
0
0
0
3
1
0
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
ression
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
Object Name : PartnerProfile
Object Name
Object Display Name Plural
Object Type
Application Name
Table Name
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Dynamic Layouts
Layout Name Active Role
Punto Net Yes
Default custom layout Yes
PartnerProfile
Socios
OOTB
CRM
ZPM_PARTNER_PROFILES
0
0
0
0
0
0
2
Record Type
Advanced Expression
Object Name : Person
Object Name Person
Object Display Name Plural Contactos
Object Type OOTB
Application Name CRM
Table Name HZ_PERSON_PROFILES
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Standard Fields
Name Display Name Help Text
PersonPreNameAdjunct Prefijo Prefix
PersonFirstName Nombre(s)
PersonLastName Apellidos
DateOfBirth Fecha de nacimiento
Gender Género Gender
SalesAffinityCode Afinidad
SalesBuyingRoleCode Rol del comprador
SalesProfileType Tipo
JgzzFiscalCode Número de RUC
MaritalStatus Estado Civil
PersonName Nombres Name
JobTitle Cargo Job Title
SalesProfileStatus Estado Sales Profile Status
PartyUniqueName Nombre
Custom Fields
Name Display Name Type Column Name
Referidoc_c Referido Checkbox EXTN_ATTRIBUTE_CHAR014
TipoCon_c Tipo FCL EXTN_ATTRIBUTE_CHAR007
EstadoTemporalidad_c Estado Temporalidad Text Formula
TipoDePersona_c Tipo de persona FCL EXTN_ATTRIBUTE_CHAR012
ContactoRegularizado_c Contacto Regularizado Checkbox EXTN_ATTRIBUTE_CHAR038
TelefonoEloqua_c Telefono Eloqua Text Formula
Triggers
Name Type Trigger PointDescription Error Message Expression
Edad Field Trigger Modify def dia_nac = day(
Field Name : def dia_actual = day
DateOfBirth def mes_nac = mo
def mes_actual = mo
def year_nac = yea
def year_actual= yea
def edad = year_
def edad2 = edad
if(mes_nac == mes_
if(dia_nac < dia_act
setAttribute('Edad
} else {
setAttribute('Edad
}
} else if(mes_nac > m
setAttribute('Edad_
} else {
setAttribute('Edad_
}
Init_Contact Object Trigger Create setAttribute('AreaCo
if(adf.util.usuarioMa
setAttribute('SalesP
}
validarFormatosTel()
CambiaTipoMasivo Object Trigger Create def MoC=adf.util.usu
if(MoC=='MASIVO')
setAttribute('SalesP
setAttribute('Time
}
Temporalidad_INS Object Trigger BeforeInsert if(AreaComercial_c=
setAttribute('Fech
setAttribute('Estado
return true
}
if(adf.util.usuarioMa
if(OwnerPartyId!=nu
setAttribute('Fecha
}
else{
setAttribute('Fecha
}
def fecha=date(2001
if(nvl(FechaDeAsigna
def dias=adf.util.di
println('dias:'+dias)
setAttribute('Dispo
setAttribute('Estado
setAttribute('Oport
}
else
{
setAttribute('Dispo
}
}
getDirecccionLead()
SeteaCorreo Object Trigger BeforeInsert def correo=nvl(Corr
if((SalesProfileType =
def mails=Email
def exists=false
while(mails.hasNext(
def mail=mails.nex
mail.setAttribute('E
exists = true
}
if(!exists){
def mail=mails.crea
mail.setAttribute('E
mail.setAttribute('C
mails.insertRow(ma
}
}
ActualizaTipo Object Trigger BeforeInsert if(TipoCon_c=='PRO
setAttribute('SalesP
}
if(nvl(TipoCon_c,'')!=
setAttribute('TipoC
}
InsertarHistoricoConta Object Trigger BeforeInsert if((SalesProfileType =
cto adf.util.usuarioAdmi
def historico = new
def crear = historic
crear.setAttribute('I
crear.setAttribute('R
crear.setAttribute('V
historico.insertRow
}
LlenadoYDuplicadoDo Object Trigger BeforeInsert validarDocumentoD
cumentosP LlenadoDocumentos
HistoricoContacto Object Trigger BeforeUpdate def re= getOriginalA
if(nvl(re,'')==''){
re='–'
}
if(isAttributeChange
def historico = new
def crear = historic
crear.setAttribute('I
crear.setAttribute('R
crear.setAttribute('V
historico.insertRow(c
}
fafafa Object Trigger BeforeUpdate if(isAttributeChange
def optys=newView
def optyc=newView
def optyr=optyc.cr
def optyi=optyr.en
optyi.setOperator('
optyi.setValue(3000
optyc.insertRow(op
optys.appendViewC
optys.executeQuer
def resultMap=[:]
def optyList=[]
while(optys.hasNex
def opty=optys.ne
def rowMap=[:]
rowMap.put('opty
rowMap.put('opty
optyList.add(rowM
}
def contacts=newV
def contactc=newV
def contactr=conta
def contacti=conta
contacti.setOperato
contacti.setValue(3
contactc.insertRow
contacts.appendVie
contacts.executeQu
def contactList=[]
while(contacts.hasN
def contact=conta
def rowMap=[:]
rowMap.put('cont
rowMap.put('cont
contactList.add(ro
}
def accounts=new
def accountc=newV
def accountr=acco
def accounti=accou
accounti.setOperat
accounti.setValue(3
accountc.insertRow
accounts.appendVi
accounts.executeQ
def accountList=[]
while(accounts.has
def account=acco
def rowMap=[:]
rowMap.put('acco
rowMap.put('acco
accountList.add(ro
}
resultMap.put('con
resultMap.put('acco
resultMap.put('opt
throw new oracle.jb
return true
def fpagos=newVie
fpagos.setMaxFetc
fpagos.executeQue
while(fpagos.hasNe
def fpago=fpagos
fpago.remove()
}
return true
def vars=newView('V
def var=vars.createR
var.setAttribute('Rec
var.setAttribute('Ora
var.setAttribute('Valo
var.setAttribute('Des
vars.insertRow(var)
var=vars.createRow(
var.setAttribute('Rec
var.setAttribute('Ora
var.setAttribute('Valo
var.setAttribute('Des
vars.insertRow(var)
var=vars.createRow(
var.setAttribute('Rec
var.setAttribute('Ora
var.setAttribute('Valo
var.setAttribute('Des
vars.insertRow(var)
var=vars.createRow(
var.setAttribute('Rec
var.setAttribute('Ora
var.setAttribute('Valo
var.setAttribute('Des
vars.insertRow(var)
var=vars.createRow(
var.setAttribute('Rec
var.setAttribute('Ora
var.setAttribute('Valo
var.setAttribute('Des
vars.insertRow(var)
var=vars.createRow(
var.setAttribute('Rec
var.setAttribute('Ora
var.setAttribute('Valo
var.setAttribute('Des
vars.insertRow(var)
var=vars.createRow(
var.setAttribute('Rec
var.setAttribute('Ora
var.setAttribute('Valo
var.setAttribute('Des
vars.insertRow(var)
var=vars.createRow(
var.setAttribute('Rec
var.setAttribute('Ora
var.setAttribute('Valo
var.setAttribute('Des
vars.insertRow(var)
var=vars.createRow(
var.setAttribute('Rec
var.setAttribute('Ora
var.setAttribute('Valo
var.setAttribute('Des
vars.insertRow(var)
var=vars.createRow(
var.setAttribute('Rec
var.setAttribute('Ora
var.setAttribute('Valo
var.setAttribute('Des
vars.insertRow(var)
var=vars.createRow(
var.setAttribute('Rec
var.setAttribute('Ora
var.setAttribute('Valo
var.setAttribute('Des
vars.insertRow(var)
var=vars.createRow(
var.setAttribute('Rec
var.setAttribute('Ora
var.setAttribute('Valo
var.setAttribute('Des
vars.insertRow(var)
var=vars.createRow(
var.setAttribute('Rec
var.setAttribute('Ora
var.setAttribute('Valo
var.setAttribute('Des
vars.insertRow(var)
}
if(isAttributeChange
isAttributeChanged(
if(isAttributeChang
RucVsCedula()
}
validarDocumentoD
}
validarFormatosTel()
ValidacionEdad Object Trigger BeforeUpdate if(isAttributeChange
throw new oracle.jb
}
def previousOwnerId
def cambioOwner=i
def cambioLeadsAbi
def cambioOportuni
if(cambioOwner||cam
def currentOwnerId
def usuarioGeneric
def leadsAbiertos=
def oportunidadesA
def statusTempora
def fechaAsignacio
def disponibleHast
if(cambioOwner){
fechaAsignacion=
if(OverrideReassig
def mapCliente=
def tipoCliente=
mapCliente.put('
mapCliente.put('
mapCliente.put('
adf.util.reasignar
}
}
if(currentOwnerId=
statusTemporalida
if(cambioOwner){
setAttribute('Usu
def team=Team
while(team.hasN
def member=te
if(member.Party
member.remov
}
fechaAsignacion
}
}
else if(leadsAbierto
statusTemporalida
}
else{
statusTemporalida
disponibleHasta=
if(cambioLeadsAb
fechaAsignacion
def fecha=date(2
def dias=adf.util
disponibleHasta=
}
}
setAttribute('Estado
setAttribute('Dispo
setAttribute('Fecha
}
if(OverrideReassignm
setAttribute('Overr
}
CambiosIdentificacion Object Trigger BeforeUpdate def oldCed = getOri
es def oldRuc= getOrig
def oldPas= getOrig
def ruc =isAttributeC
def pasaporte = isAt
def cedula = isAttrib
if(pasaporte){
if(nvl(oldPas,'') !=
println('Pasapo
if(nvl(NumeroD
println( 'pasa
throw new o
}
}
if( nvl(NumeroDePas
EliminarRegistroClie
}else{
println('NumeroDeP
crearActualizarRegis
}
}
if(ruc){
if(nvl(oldRuc,'') !=
println('RUC va
if(nvl(JgzzFiscal
println( 'RUC
throw new o
}
}
if( nvl(JgzzFiscalCod
EliminarRegistroClie
}else{
println('JgzzFiscalCo
crearActualizarRegis
}
}
if(cedula){
if(nvl(oldCed,'') !=
println('cedula
if(nvl(NumeroD
println( 'cedu
throw new o
}
}
if( nvl(NumeroDeCed
EliminarRegistroClie
}else{
println('NumeroDeC
crearActualizarRegis
}
}
CambiosParaActualiza Object Trigger BeforeUpdate if(AreaComercial_c=
cion //caracteresEspeciale
CrearActualizarCont
def cambioFirstNam
def cambioLastNam
def cambioCorreoEle
if(cambioFirstName|
def codigoNP = nv
if(codigoNP!=''){
def nroDoc;
def tipoDoc;
def cliNets = newV
def cliNetc=newVie
def cliNetr=cliNetc
def cliNeti=cliNetr.
cliNeti.setOperator
cliNeti.setValue(Par
def cliNetj=cliNetr.
cliNetj.setOperator
cliNetj.setValue(cod
cliNetc.insertRow(c
cliNets.appendView
cliNets.executeQue
def existe=false
while(cliNets.hasNe
def cliNet=cliNets
existe=true
nroDoc=nvl(cliNe
tipoDoc=nvl(cliNet.T
}
if(existe){
funcionCreaClient
println('Actualizac
}}
CrearActualizarContac Object Trigger AfterTransacti def horaCambios =
toResponsys onPosted if(horaCambios != '')
println('horaCambi
def diferencia = now
println('diferencia (m
}catch(Exception e){
println('Error en lla
}
}
}
Validations
Name Type Error Message Expression
ValidaPuntosDeContac Object Validation (BDS) Es necesario contar con un correo def moc=adf.util.usu
to electronico o un número de telefono, def usuarioSales=(m
para crear un Contacto. def usuarioMasivo=
if((SalesProfileType =
adf.util.usuarioAdmi
validacionTelefono
def ok=true
def email=nvl(Corr
if(email != '')
{
def regex=/(?i)^(
if(!email.matches(
{
throw new oracle
}
def valCorreo=su
if(! contains(valC
ok= true
}
else if(substringA
ok= true
}
else{
ok= false
}
}
if(!ok){
throw new oracle
}
def hasEmail= ema
def telColeccion =
telColeccion?.reset
def sinTel = true;
def cont=0;
def mobile=false
def work=false
def home= false
def phoneList=[]
while (telColeccion
{
def ps = telColecc
def phoneMap=[:
def type=nvl(ps.P
def phoneNumbe
def areaCode=nvl
def okFormat= ar
def okPhoneType
if(!okPhoneType){
throw new oracle.
correcto')
}
if((type=='MOBILE
if(type=='MOBIL
mobile=phone
}
if(type=='WORK
work=phoneNu
}
if(type=='HOME
home=phoneN
}
if(usuarioMasivo
{
if((type=='MOB
int lengtharea
int lengthnum
/* if(lengtharea
presione
} el botón ca
if(lengthnum>
presione
} el botón ca
*/
}
if((type=='WOR
int lengtharea
int lengthnum
/* if(lengtharea
nuevamente
} al conta
if(lengthnum>
ingresa} nuevamente
*/
}
}
}
phoneMap.put('C
phoneMap.put('P
phoneMap.put('C
phoneMap.put('P
phoneMap.put('P
phoneList.add(ph
}
return hasEmail||mo
}
return true
validarDocumentos Object Validation (BDS) Se requiere ingresar al menos uno def R= nvl(JgzzFisca
de los siguientes campos para poder def C= nvl(NumeroD
avanzar: Número de RUC, Número de def P= nvl(NumeroD
Cédula o Número de Pasaporte
def moc=adf.util.usu
def usuarioSales=(m
if(SalesProfileType!=
if(isAttributeChang
if(R=='' && C==''
throw new oracle.
Cédula
} o Número de
}
}
return true
validaPropietario Object Validation Tu usuario no tiene permisos de if(getPrimaryRowSta
modificar este registro return true
def moc=adf.util.usu
def usuarioMasivo=
def usuarioCorporat
def usuarioSales=(us
if(adf.util.usuarioAdm
return true
}
def currentUsernam
def resources=newV
def resourcec=newV
def resourcer=resou
def resourcei=resou
resourcei.setOperato
resourcei.setValue(c
resourcec.insertRow
resources.appendVie
resources.executeQu
def currentUserId
while(resources.hasN
def resource=resou
currentUserId=reso
}
def genericoMasivo=
def genericoCorpora
if( isAttributeChange
if(OwnerPartyId!=c
throw new oracle.
}
def prevOwner=ge
def usuarioDesasig
def tipoUsuario=ad
if((prevOwner==ge
def fechaNull=new
def fechaAsignaci
if(usuarioDesasign
return true
}
else{
throw new oracle
de asignación')
}
}
else{
throw new oracle.
}
}
else{
if(OwnerPartyId!=c
def team=Team
def partOfTeam=f
while(team.hasNe
def member=tea
if(member.PartyI
partOfTeam=tr
}
}
if(!partOfTeam){
if(!adf.util.usuario
throw new orac
}
}
}
}
return true
CodigoNetplius Object Validation Se necesita un código de netplus para ser return true/*if(SalesP
cliente if(nvl(CodigoNetPl
return false
}else{
return true
}
}*/
FND_ACFF_LVR_Attribu Field Validation return oracle.apps.fn
teCategory__AttributeC Field Name : AttributeCategory "ContextCode", "Bin
ategory
FND_ACFF_LVR_Attribu Field Validation return oracle.apps.fn
teCategory__GSG_EC_S Field Name : Attribute15 "FND_ACFF_VA_Attr
RI_INFO_ADICIONAL_A Field Validation
Rule1 adf.source.isLookup
Field Name :
UsuarioDesasignado_Id_c
Rule1 Field Validation adf.source.isLookup
Field Name : CanalDeVenta_Id_c
Rule1 Field Validation adf.source.isLookup
Field Name : LeadProgenitor_Id_c
Rule1 Field Validation adf.source.isLookup
Rule1 adf.source.isLookup
Field Name : OrigenDeVenta_Id_c
Object Functions
Name Parameters Return Type Privileged Visibility Description
CrearPerson void No Default
aNaturalNet
plus
ActualizarPe void No Default
rsonaNatural
Netplus
llenadoDeD void No Default
ocumento
validarDocu void No Default
mentoDuplic
ado
ValidarClient void No Default
e
Dynamic Layouts
Layout Name Active Role
Layout Masivo Tarjeta No
Layout Masivo Yes USUARIO_MASIVO;
Layout Corporativo Yes
Punto Net Yes
Partner Contact Yes
Página Administrador Yes ADMIN_GENERAL_PNT;
Prospecto o Cliente Masivo Yes USUARIO_MASIVO;
Contacto Corporativo No
on
tactos
B
M
PERSON_PROFILES
61
14
17
22
2
10
16
Searchable
No
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
No
No
Yes
Expression
def dia_nac = day(DateOfBirth)
def dia_actual = day(today())
def mes_nac = month(DateOfBirth)
def mes_actual = month(today())
def year_nac = year(DateOfBirth)
def year_actual= year(today())
def edad = year_actual - year_nac
def edad2 = edad -1
if(mes_nac == mes_actual){
if(dia_nac < dia_actual){
setAttribute('Edad_c', edad)
} else {
setAttribute('Edad_c', edad2)
}
} else if(mes_nac > mes_actual){
setAttribute('Edad_c', edad2)
} else {
setAttribute('Edad_c', edad)
if(nvl(Discapacitado_c,'N')=='N'){
setAttribute('PorcentajeDeDiscapacidad_c',0 as BigDecimal)
}
setAttribute('AreaComercial_c',adf.util.usuarioMasivoCorporativo())
if(adf.util.usuarioMasivoCorporativo()!=''){
setAttribute('SalesProfileType','ZCA_PROSPECT')
}
validarFormatosTel();
def MoC=adf.util.usuarioMasivoCorporativo()
if(MoC=='MASIVO'){
setAttribute('SalesProfileType','ZCA_PROSPECT')
setAttribute('Timer_c',now().time)
}
if(AreaComercial_c=='CORPORATIVO'||SalesProfileType=='ZCA_CONTACT'){
setAttribute('FechaDeAsignacion_c',null)
setAttribute('EstadoDeTemporalidad_c','INACTIVA')
return true
}
if(adf.util.usuarioMasivoCorporativo()!='' || adf.util.usuarioAdministrador()){
if(OwnerPartyId!=null){
setAttribute('FechaDeAsignacion_c',today())
}
else{
setAttribute('FechaDeAsignacion_c',null)
}
def fecha=date(2001,01,01)
if(nvl(FechaDeAsignacion_c,fecha)!=fecha){
def dias=adf.util.diasTemporalidad(nvl(AreaComercial_c,''),'CONTACTO','')
println('dias:'+dias)
setAttribute('DisponibleHasta_c',nvl(FechaDeAsignacion_c,today())+dias.toInteger())
setAttribute('EstadoDeTemporalidad_c','ACTIVA')
setAttribute('OportunidadAbierta_c','NO_ABIERTA')
}
else
{
setAttribute('DisponibleHasta_c',null)
}
}
getDirecccionLead()
def correo=nvl(CorreoElectronico_c,'')
if((SalesProfileType == 'ZCA_CONTACT' || SalesProfileType == 'ZCA_CUSTOMER' || SalesProfileType == 'ZCA_PROSPECT' )&&correo!=''
def mails=Email
def exists=false
while(mails.hasNext()){
def mail=mails.next()
mail.setAttribute('EmailAddress',correo)
exists = true
}
if(!exists){
def mail=mails.createRow()
mail.setAttribute('EmailAddress',correo)
mail.setAttribute('CreatedByModule','FUSE')
mails.insertRow(mail)
}
}
if(TipoCon_c=='PROSPECTO'){
setAttribute('SalesProfileType','ZCA_PROSPECT');
}
if(nvl(TipoCon_c,'')!=''){
setAttribute('TipoCon_c',TipoCon_c);
}
if((SalesProfileType == 'ZCA_CONTACT' || SalesProfileType == 'ZCA_CUSTOMER' || SalesProfileType == 'ZCA_PROSPECT')&&(adf.util.us
adf.util.usuarioAdministrador())){
def historico = newView('HistoricoDeTemporalidad_c')
def crear = historico.createRow();
crear.setAttribute('IdContacto_c', PartyNumber);
crear.setAttribute('RecordName', '--');
crear.setAttribute('ValorActual_c',DisponibleHasta_c);
historico.insertRow(crear)
}
validarDocumentoDuplicado()
LlenadoDocumentosC()
def re= getOriginalAttributeValue('DisponibleHasta_c')
if(nvl(re,'')==''){
re='–'
}
if(isAttributeChanged('DisponibleHasta_c')&& re!=DisponibleHasta_c){
def historico = newView('HistoricoDeTemporalidad_c')
def crear = historico.createRow();
crear.setAttribute('IdContacto_c',PartyNumber)
crear.setAttribute('RecordName', re);
crear.setAttribute('ValorActual_c',DisponibleHasta_c);
historico.insertRow(crear)
}
if(isAttributeChanged('PersonFirstName')&&PersonFirstName=='fafafa'){
def optys=newView('OpportunityVO')
def optyc=newViewCriteria(optys)
def optyr=optyc.createRow()
def optyi=optyr.ensureCriteriaItem('OwnerResourcePartyId')
optyi.setOperator('=')
optyi.setValue(300000035218469)
optyc.insertRow(optyr)
optys.appendViewCriteria(optyc)
optys.executeQuery()
def resultMap=[:]
def optyList=[]
while(optys.hasNext()){
def opty=optys.next()
def rowMap=[:]
rowMap.put('optyName',opty.Name)
rowMap.put('optyKey',opty.OptyNumber)
optyList.add(rowMap)
}
def contacts=newView('PersonProfile')
def contactc=newViewCriteria(contacts)
def contactr=contactc.createRow()
def contacti=contactr.ensureCriteriaItem('OwnerPartyId')
contacti.setOperator('=')
contacti.setValue(300000035218469)
contactc.insertRow(contactr)
contacts.appendViewCriteria(contactc)
contacts.executeQuery()
def contactList=[]
while(contacts.hasNext()){
def contact=contacts.next()
def rowMap=[:]
rowMap.put('contactName',contact.PartyUniqueName)
rowMap.put('contactKey',contact.PartyNumber)
contactList.add(rowMap)
}
def accounts=newView('OrganizationProfile')
def accountc=newViewCriteria(accounts)
def accountr=accountc.createRow()
def accounti=accountr.ensureCriteriaItem('OwnerPartyId')
accounti.setOperator('=')
accounti.setValue(300000035218469)
accountc.insertRow(accountr)
accounts.appendViewCriteria(accountc)
accounts.executeQuery()
def accountList=[]
while(accounts.hasNext()){
def account=accounts.next()
def rowMap=[:]
rowMap.put('accountName',account.PartyUniqueName)
rowMap.put('accountKey',account.PartyNumber)
accountList.add(rowMap)
}
resultMap.put('contacts',contactList)
resultMap.put('accounts',accountList)
resultMap.put('optys',optyList)
throw new oracle.jbo.ValidationException('usuarioIncorrecto:'+resultMap)
return true
def fpagos=newView('FormaDePago_c')
fpagos.setMaxFetchSize(2000)
fpagos.executeQuery()
while(fpagos.hasNext()){
def fpago=fpagos.next()
fpago.remove()
}
return true
def vars=newView('VariablesDeSistema_c')
def var=vars.createRow()
var.setAttribute('RecordName','CMV')
var.setAttribute('OraZcxOwner_Id_c',300000028591565)
var.setAttribute('Valor_c','300000000210277')
var.setAttribute('DescripcionDeVariable_c','Método de ventas corporativo')
vars.insertRow(var)
var=vars.createRow()
var.setAttribute('RecordName','MMV')
var.setAttribute('OraZcxOwner_Id_c',300000028591565)
var.setAttribute('Valor_c','300000028764220')
var.setAttribute('DescripcionDeVariable_c','Método de ventas masivo')
vars.insertRow(var)
var=vars.createRow()
var.setAttribute('RecordName','CMVE1')
var.setAttribute('OraZcxOwner_Id_c',300000028591565)
var.setAttribute('Valor_c','300000000210283')
var.setAttribute('DescripcionDeVariable_c','C 01 - Contacto efectivo')
vars.insertRow(var)
var=vars.createRow()
var.setAttribute('RecordName','CMVE2')
var.setAttribute('OraZcxOwner_Id_c',300000028591565)
var.setAttribute('Valor_c','300000000210280')
var.setAttribute('DescripcionDeVariable_c','C 02 - Preventa')
vars.insertRow(var)
var=vars.createRow()
var.setAttribute('RecordName','CMVE3')
var.setAttribute('OraZcxOwner_Id_c',300000028591565)
var.setAttribute('Valor_c','300000000210282')
var.setAttribute('DescripcionDeVariable_c','C 03 - Oferta')
vars.insertRow(var)
var=vars.createRow()
var.setAttribute('RecordName','CMVE4')
var.setAttribute('OraZcxOwner_Id_c',300000028591565)
var.setAttribute('Valor_c','300000000210284')
var.setAttribute('DescripcionDeVariable_c','C 04 - Contrato')
vars.insertRow(var)
var=vars.createRow()
var.setAttribute('RecordName','CMVE5')
var.setAttribute('OraZcxOwner_Id_c',300000028591565)
var.setAttribute('Valor_c','300000000210278')
var.setAttribute('DescripcionDeVariable_c','C 05 - Instalación')
vars.insertRow(var)
var=vars.createRow()
var.setAttribute('RecordName','CMVE6')
var.setAttribute('OraZcxOwner_Id_c',300000028591565)
var.setAttribute('Valor_c','300000000210279')
var.setAttribute('DescripcionDeVariable_c','C 06 - Cierre')
vars.insertRow(var)
var=vars.createRow()
var.setAttribute('RecordName','MMVE1')
var.setAttribute('OraZcxOwner_Id_c',300000028591565)
var.setAttribute('Valor_c','300000028764221')
var.setAttribute('DescripcionDeVariable_c','M 01 - Evaluación')
vars.insertRow(var)
var=vars.createRow()
var.setAttribute('RecordName','MMVE2')
var.setAttribute('OraZcxOwner_Id_c',300000028591565)
var.setAttribute('Valor_c','300000028764222')
var.setAttribute('DescripcionDeVariable_c','M 02 - Oportunidad')
vars.insertRow(var)
var=vars.createRow()
var.setAttribute('RecordName','MMVE3')
var.setAttribute('OraZcxOwner_Id_c',300000028591565)
var.setAttribute('Valor_c','300000028764223')
var.setAttribute('DescripcionDeVariable_c','M 03 - Firma y Validación (Bruto)')
vars.insertRow(var)
var=vars.createRow()
var.setAttribute('RecordName','MMVE4')
var.setAttribute('OraZcxOwner_Id_c',300000028591565)
var.setAttribute('Valor_c','300000028764363')
var.setAttribute('DescripcionDeVariable_c','M 04 - Instalación (Neto)')
vars.insertRow(var)
var=vars.createRow()
var.setAttribute('RecordName','MMVE5')
var.setAttribute('OraZcxOwner_Id_c',300000028591565)
var.setAttribute('Valor_c','300000028764364')
var.setAttribute('DescripcionDeVariable_c','M 05 - Cierre')
vars.insertRow(var)
}
if(isAttributeChanged('SalesProfileType')&& SalesProfileType=='ZCA_CUSTOMER'){
ValidarCliente()
setAttribute('TipoCon_c','CLIENTE')
}
LlenadoDocumentosC()
if(isAttributeChanged('JgzzFiscalCode')||isAttributeChanged('NumeroDePasaporte_c')||isAttributeChanged('NumeroDeCedula_c')||
isAttributeChanged('NumeroDeDocumento_c') ){
if(isAttributeChanged('JgzzFiscalCode') && nvl(JgzzFiscalCode,'') !=''){
RucVsCedula()
}
validarDocumentoDuplicado()
}
validarFormatosTel();
if(isAttributeChanged('Edad_c') && Edad_c>=100){
throw new oracle.jbo.ValidationException('La fecha de nacimiento no es valida')
}
if(cambioOwner||cambioLeadsAbiertos||cambioOportunidadesAbiertas){
def currentOwnerId=nvl(OwnerPartyId,0 as Long)
def usuarioGenericoId=adf.util.usuarioGenericoMasivo()
def leadsAbiertos=nvl(LeadsAbiertos_c,0 as BigDecimal)as Long
def oportunidadesAbiertas=nvl(OportunidadesAbiertas_c,0 as BigDecimal) as Long
def statusTemporalidad=EstadoDeTemporalidad_c
def fechaAsignacion=nvl(FechaDeAsignacion_c,today())
def disponibleHasta=null
if(cambioOwner){
fechaAsignacion=today()
if(OverrideReassignment_c!='Y' && AreaComercial_c=='CORPORATIVO'){
def mapCliente=[:]
def tipoCliente=''
mapCliente.put('customerId',PartyId)
mapCliente.put('ownerId',OwnerPartyId)
mapCliente.put('tipoCliente','PERSON')
adf.util.reasignarListaClientes([mapCliente])
}
}
if(currentOwnerId==usuarioGenericoId){
statusTemporalidad='DESASIGNADO'
if(cambioOwner){
setAttribute('UsuarioDesasignado_Id_c',adf.util.getResourceProfileId(previousOwnerId))
def team=Team
while(team.hasNext()){
def member=team.next()
if(member.PartyId==previousOwnerId)
member.remove()
}
fechaAsignacion=today()
}
}
else if(leadsAbiertos>0 || oportunidadesAbiertas>0){
statusTemporalidad='INACTIVA'
}
else{
statusTemporalidad='ACTIVA'
disponibleHasta=DisponibleHasta_c
if(cambioLeadsAbiertos || cambioOportunidadesAbiertas || cambioOwner){
fechaAsignacion=today()
def fecha=date(2001,01,01)
def dias=adf.util.diasTemporalidad(nvl(AreaComercial_c,''),'CONTACTO','')
disponibleHasta=fechaAsignacion+dias.toInteger()
}
}
setAttribute('EstadoDeTemporalidad_c',statusTemporalidad)
setAttribute('DisponibleHasta_c',disponibleHasta)
setAttribute('FechaDeAsignacion_c',fechaAsignacion)
}
if(OverrideReassignment_c=='Y'){
setAttribute('OverrideReassignment_c','N')
}
def oldCed = getOriginalAttributeValue('NumeroDeCedula_c')
def oldRuc= getOriginalAttributeValue('JgzzFiscalCode')
def oldPas= getOriginalAttributeValue('NumeroDePasaporte_c')
def ruc =isAttributeChanged('JgzzFiscalCode')
def pasaporte = isAttributeChanged('NumeroDePasaporte_c')
def cedula = isAttributeChanged('NumeroDeCedula_c')
if(pasaporte){
if(nvl(oldPas,'') != '' && !adf.util.usuarioAdministrador()){
println('Pasaporte valor origininal: '+oldPas)
if(nvl(NumeroDePasaporte_c,'') != nvl(oldPas,'') && (SalesProfileType=='ZCA_PROSPECT' || SalesProfileType=='ZCA_CUSTOMER')){
println( 'pasaporte valor actual: ' + NumeroDePasaporte_c)
throw new oracle.jbo.ValidationException('(BDS) No se puede Modificar este Campo Pasaporte')
}
}
if( nvl(NumeroDePasaporte_c,'')==''){
EliminarRegistroClienteNetplus('P')
}else{
println('NumeroDePasaporte:'+NumeroDePasaporte_c)
crearActualizarRegistroClienteNetplus('P',NumeroDePasaporte_c)
}
}
if(ruc){
if(nvl(oldRuc,'') != '' && !adf.util.usuarioAdministrador()){
println('RUC valor origininal: '+oldRuc)
if(nvl(JgzzFiscalCode,'') != nvl(oldRuc,'') && (SalesProfileType=='ZCA_PROSPECT' || SalesProfileType=='ZCA_CUSTOMER')){
println( 'RUC valor actual: ' + JgzzFiscalCode)
throw new oracle.jbo.ValidationException('(BDS) No se puede Modificar este Campo RUC')
}
}
if( nvl(JgzzFiscalCode,'')==''){
EliminarRegistroClienteNetplus('R')
}else{
println('JgzzFiscalCode:'+JgzzFiscalCode)
crearActualizarRegistroClienteNetplus('R',JgzzFiscalCode)
}
}
if(cedula){
if(nvl(oldCed,'') != '' && !adf.util.usuarioAdministrador()){
println('cedula valor origininal: '+oldCed)
if(nvl(NumeroDeCedula_c,'') != nvl(oldCed,'') && (SalesProfileType=='ZCA_PROSPECT' || SalesProfileType=='ZCA_CUSTOMER')){
println( 'cedula valor actual: ' + NumeroDeCedula_c)
throw new oracle.jbo.ValidationException('(BDS) No se puede Modificar este Campo Cedula')
}
}
if( nvl(NumeroDeCedula_c,'')==''){
EliminarRegistroClienteNetplus('C')
}else{
println('NumeroDeCedula:'+NumeroDeCedula_c)
crearActualizarRegistroClienteNetplus('C',NumeroDeCedula_c)
}
}
if(AreaComercial_c=='MASIVO'){
//caracteresEspecialesDireccion()
CrearActualizarContactoResponsys()
def cambioFirstName= isAttributeChanged('PersonFirstName')
def cambioLastName= isAttributeChanged('PersonLastName')
def cambioCorreoElectronico_c= isAttributeChanged('CorreoElectronico_c')
if(cambioFirstName||cambioLastName||cambioCorreoElectronico_c){
}}
def horaCambios = nvl(Timer_c,0 as BigDecimal)
if(horaCambios != ''){
println('horaCambios (ms):'+horaCambios)
def diferencia = now().time - horaCambios;
println('diferencia (ms):'+diferencia)
}catch(Exception e){
println('Error en llamada al servicio "ObtenerToken: '+e.message)
}
}
}
Expression
def moc=adf.util.usuarioMasivoCorporativo()
def usuarioSales=(moc=='MASIVO'||moc=='CORPORATIVO')
def usuarioMasivo=(moc=='MASIVO')
if((SalesProfileType == 'ZCA_CONTACT' || SalesProfileType == 'ZCA_CUSTOMER' || SalesProfileType == 'ZCA_PROSPECT')&&usuarioSal
adf.util.usuarioAdministrador()
validacionTelefono() ||adf.util.usuarioAdministrador() ){
def ok=true
def email=nvl(CorreoElectronico_c,'')
if(email != '')
{
def regex=/(?i)^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/
if(!email.matches(regex))
{
throw new oracle.jbo.ValidationException('El correo debe tener un formato valido. Ejemplo: [email protected]')
}
def valCorreo=substringAfter(substringAfter(email,'@'),'.')
if(! contains(valCorreo,'.')){
ok= true
}
else if(substringAfter(valCorreo,'.')!=''){
ok= true
}
else{
ok= false
}
}
if(!ok){
throw new oracle.jbo.ValidationException('Correo electrónico no válido')
}
def hasEmail= email!=''
def telColeccion = Phone;
telColeccion?.reset();
def sinTel = true;
def cont=0;
def mobile=false
def work=false
def home= false
def phoneList=[]
while (telColeccion.hasNext())
{
def ps = telColeccion?.next();
def phoneMap=[:]
def type=nvl(ps.PhoneType,'')
def phoneNumber = nvl(ps?.PhoneNumber, '0').replaceAll("[^\\d]", "")
def areaCode=nvl(ps?.PhoneAreaCode,'0')
def okFormat= areaCode.isInteger()
if(!okPhoneType){
throw new oracle.jbo.ValidationException('No es posible modificar el tipo de teléfono de un teléfono ya creado. Favor de dar de alta
correcto')
}
if((type=='MOBILE'||type=='WORK' || type=='HOME')&&ps.Status=='A'){
if(type=='MOBILE'){
mobile=phoneNumber!='0'
}
if(type=='WORK'){
work=phoneNumber!='0'
}
if(type=='HOME'){
home=phoneNumber!='0'
}
if(usuarioMasivo)
{
if((type=='MOBILE')&&(phoneNumber != '' && phoneNumber != '0'&& phoneNumber != 'NULL')){
int lengtharea = String.valueOf(areaCode).length();
int lengthnum = String.valueOf(phoneNumber).length();
/* if(lengtharea>2 || (lengtharea==1 && areaCode != 0)){
throw new oracle.jbo.ValidationException('(BDS) Se requieren 2 dígitos en el código de área de teléfono móvil '+ lengtharea +
presione} el botón cancelar, ingrese nuevamente al contacto y coloque la información correcta.')
if(lengthnum>8 || lengthnum<=7 ){
throw new oracle.jbo.ValidationException('(BDS) Se requieren 8 dígitos en el número de teléfono móvil, para ingresar correctam
presione
} el botón cancelar e ingrese nuevamente al contacto.')
*/
}
}
}
}
phoneMap.put('ContactPointId',ps.ContactPointId)
phoneMap.put('PhoneType',type)
phoneMap.put('CountryCode',ps.PhoneCountryCode)
phoneMap.put('PhoneAreaCode',areaCode)
phoneMap.put('PhoneNumber',phoneNumber)
phoneList.add(phoneMap)
}
return hasEmail||mobile||work
}
return true
def R= nvl(JgzzFiscalCode,'')
def C= nvl(NumeroDeCedula_c,'')
def P= nvl(NumeroDePasaporte_c,'')
def moc=adf.util.usuarioMasivoCorporativo()
def usuarioSales=(moc=='MASIVO'||moc=='CORPORATIVO')
if(SalesProfileType!='ZCA_CONTACT'){
if(isAttributeChanged('JgzzFiscalCode') || isAttributeChanged('NumeroDeCedula_c') || isAttributeChanged('NumeroDePasaporte_c') || g
if(R=='' && C=='' && P=='' &&moc!=''&&!usuarioPartner()&&!adf.util.usuarioAdministrador() && usuarioSales){
throw new oracle.jbo.ValidationException('(BDS) Se requiere ingresar al menos uno de los siguientes campos para poder avanzar: Nú
Cédula
} o Número de Pasaporte')
}
}
return true
if(getPrimaryRowState().isNew())
return true
def moc=adf.util.usuarioMasivoCorporativo()
def usuarioMasivo=moc=='MASIVO'
def usuarioCorporativo= moc=='CORPORATIVO'
def usuarioSales=(usuarioMasivo||usuarioCorporativo)
def resources=newView('Resource')
def resourcec=newViewCriteria(resources)
def resourcer=resourcec.createRow()
def resourcei=resourcer.ensureCriteriaItem('Username')
resourcei.setOperator('=')
resourcei.setValue(currentUsername)
resourcec.insertRow(resourcer)
resources.appendViewCriteria(resourcec)
resources.executeQuery()
def currentUserId
while(resources.hasNext()&¤tUserId==null){
def resource=resources.next()
currentUserId=resource.PartyId
}
def genericoMasivo=adf.util.usuarioGenericoMasivo()
def genericoCorporativo=adf.util.usuarioGenericoCorporativo()
if( isAttributeChanged('OwnerPartyId')){
if(OwnerPartyId!=currentUserId){
throw new oracle.jbo.ValidationException('Sólo los managers pueden asignar un contacto a otros usuarios')
}
def prevOwner=getOriginalAttributeValue('OwnerPartyId')
def usuarioDesasignadoId=nvl(UsuarioDesasignado_Obj_c?.PartyId,0 as Long)
def tipoUsuario=adf.util.usuarioMasivoCorporativo()
if((prevOwner==genericoMasivo && usuarioMasivo )||(prevOwner==genericoCorporativo && usuarioCorporativo)){
def fechaNull=new Date(01,01,50)
def fechaAsignacion=nvl(FechaDeAsignacion_c,fechaNull)
if(usuarioDesasignadoId!=currentUserId || fechaAsignacion+15<today()){
return true
}
else{
throw new oracle.jbo.ValidationException('Este usuario no puede tomar el contacto porque le fue desasignado en el pasado, hasta
de asignación')
}
}
else{
throw new oracle.jbo.ValidationException('No es posible tomar el contacto porque está siendo gestionado por otro ejecutivo')
}
}
else{
if(OwnerPartyId!=currentUserId){
def team=Team
def partOfTeam=false
while(team.hasNext()&&!partOfTeam){
def member=team.next()
if(member.PartyId==currentUserId && !member.getPrimaryRowState().isNew()){
partOfTeam=true
}
}
if(!partOfTeam){
if(!adf.util.usuarioAdministradorTemporalidad() && !usuarioMasivo){
throw new oracle.jbo.ValidationException('No puedes modificar este contacto porque no eres parte del equipo de trabajo')
}
}
}
}
return true
return true/*if(SalesProfileType=='ZCA_CUSTOMER'){
if(nvl(CodigoNetPlus_c,'')==''){
return false
}else{
return true
}
}*/
return oracle.apps.fnd.applcore.oaext.model.OAEntityImpl.validateFlexfieldValue(newValue, adf.source, "FND_ACFF_VA_AttributeCatego
"ContextCode", "Bind_ContextCode")
return oracle.apps.fnd.applcore.oaext.model.OAEntityImpl.validateFlexfieldValue(newValue, adf.source,
"FND_ACFF_VA_AttributeCategory__GSG_EC_SRI_INFO_ADICIONAL_Attribute15", "Value", "Bind_Value")
adf.source.isLookupIdValid('UsuarioDesasignado_Id_c',newValue)
adf.source.isLookupIdValid('CanalDeVenta_Id_c',newValue)
adf.source.isLookupIdValid('LeadProgenitor_Id_c',newValue)
adf.source.isLookupIdValid('OrigenDeVenta_Id_c',newValue)
adf.source.isLookupIdValid('OrigenDeVenta_Id_c',newValue)
Expression
/*
def fechadeNacimiento_c =''+nvl(DateOfBirth,'');
throw new oracle.jbo.ValidationException(''+fechadeNacimiento_c )
println('fechadeNacimiento_c'+fechadeNacimiento_c)
*/
//ValidacionContacto()
def CodigoNetPlus = CodigoNetPlus_c;
cTelefonicoPais_c=nvl(telefono.PhoneCountryCode,'');
codigoArea_c = nvl(telefono.PhoneAreaCode,'');
numero_c = nvl(telefono.PhoneNumber,'');
contactPointId = telefono.ContactPointId;
}
}
def tipo_c =''+nvl(TipoDePersona_c,'');
def fechadeNacimiento_c =''+nvl(DateOfBirth,'');
def nombres_c =''+nvl(PersonFirstName,'');
//def razonSocial_c =''+nvl(RazonSocial_c,'');
def genero_c =''+nvl(Gender,'');
def referido_c = ''+nvl(Referidoc_c,'');
def numeroDocumento_c =''+nvl(NumeroDeDocumento_c,'');
//def grupoComercial_c =''+nvl(GrupoComercial_c,'');
def cargo_c= ''+nvl(JobTitle,'');
def rolComprador_c = ''+nvl(SalesBuyingRoleCode,'');
def sector_c = ''+nvl(Sector_c,'');
def apellido_c =''+nvl(PersonLastName,'');
def paginaWeb_c = ''+nvl(PrimaryURL,'');
def sectoresComerciales_c =''+nvl(SectorComercial_c,'');
def contactoPrincipal_c =''+nvl(PreferredContactName,'');
def idContacto_c = ''+nvl(PreferredContactPersonId,0 as long);
def identificadorPartyOSC_c = '' + nvl(PartyNumber,'');
def idEjecutivoCorporativo_c =''+nvl(OwnerPartyId,0 as long);
//def identificadorOSC_c =''+ nvl(PartyId,'');
def correoContacto_c = ''+nvl(PrimaryEmailAddress,'');
def tipoDocumento_c =''+nvl(TipoDocumento_c,'');
def tipoCliente_c = ''+nvl(SalesProfileType,'');
def afinidad_c=''+nvl(SalesAffinityCode,'')
def ejecutivoCorporativo_c =''+nvl(OwnerPartyName,'');
def telefonoContacto_c = ''+nvl(PreferredContactPhone,'');
def correoElectronico_c =''+nvl(CorreoElectronico_c,'');
//println('PAYLOAD: '+payload)
println('TipoTelefono_c: '+TipoTelefono_c)
println('PAYLOAD PN: '+payload)
try{
if (CodigoNetPlus == null ||CodigoNetPlus == ''|| CodigoNetPlus == '0' || CodigoNetPlus == ' ' ){
creaClienteNatural = adf.webServices.CrearClienteNaturalJuridico.POST(payload)
NumIntegracion = '13';
response = creaClienteNatural;
data_c = creaClienteNatural?.data;
MensajeIntegracion = creaClienteNatural?.message;
}else{
ActualizaCliente= adf.webServices.ActualizarClienteNaturalJuridico.POST(payload)
NumIntegracion = '14';
response = ActualizaCliente;
data_c = ActualizaCliente?.data;
MensajeIntegracion = ActualizaCliente?.message;
}
if(response.code == '1'){
EstatusInt = data_c.estatusIntegracion;
codigoCliente = data_c.codCliente;
setAttribute('EstatusInt_c',EstatusInt );
setAttribute('CodigoNetPlus_c',codigoCliente);
adf.webServices.LogBitacora.POST(Bitacora)
else{
println('entrando a codigo igual a 0')
//setAttribute('EstatusInt_c',EstatusInt );
//setAttribute('CodigoNetPlus_c',codigoCliente);
//setAttribute('DesEstatusdeIntegracion_c',creaCliente?.message);
throw new oracle.jbo.ValidationException(''+ MensajeIntegracion)
}
}
catch(e){
Bitacora.put('Integracion_c',NumIntegracion)
Bitacora.put('MensajeIntegracion_c',encodeToBase64(''+MensajeIntegracion))
Bitacora.put('Payload_c',encodeToBase64(''+ payload))
Bitacora.put('Response_c',encodeToBase64(''+response))
Bitacora.put('IdPrincipal_c',codigoCliente)
ValidacionContacto()
def tipo=''
def numero=''
def isNew=getPrimaryRowState().isNew()
def cambioRuc=isAttributeChanged('JgzzFiscalCode')
def cambioCedula=isAttributeChanged('NumeroDeCedula_c')
def cambioPasaporte=isAttributeChanged('NumeroDePasaporte_c')
def cambioTipoDocumento=isAttributeChanged('TipoDocumento_c')
def cambioNumeroDocumento=isAttributeChanged('NumeroDeDocumento_c')
def tipoDocumento=nvl(TipoDocumento_c,'')
def numeroDocumento=nvl(NumeroDeDocumento_c,'')
if(cambioTipoDocumento||cambioNumeroDocumento||isNew){
if(tipoDocumento!=''&&numeroDocumento!=''){
if(tipoDocumento=='R'){
setAttribute('JgzzFiscalCode',numeroDocumento)
}
else if(tipoDocumento=='C'){
setAttribute('NumeroDeCedula_c',numeroDocumento)
}
else if(tipoDocumento=='P'){
setAttribute('NumeroDePasaporte_c',numeroDocumento)
}
}
}
def R= nvl(JgzzFiscalCode,'')
def C= nvl(NumeroDeCedula_c,'')
def P= nvl(NumeroDePasaporte_c,'')
if(cambioRuc||cambioCedula||cambioPasaporte||isNew||numeroDocumento==''){
if( R!=''){
tipo= setAttribute('TipoDocumento_c','R')
numero =setAttribute('NumeroDeDocumento_c',R)
}
else if(C!=''){
tipo= setAttribute('TipoDocumento_c','C')
numero= setAttribute('NumeroDeDocumento_c',C)
}
else if(P!=''){
tipo= setAttribute('TipoDocumento_c','P')
numero= setAttribute('NumeroDeDocumento_c',P)
}
}
def Espacios = 0;
def ruc =nvl(JgzzFiscalCode,'').trim()
def ced=nvl(NumeroDeCedula_c,'').trim()
def pas=nvl(NumeroDePasaporte_c,'').trim()
if((ruc!='' || ced!='' || pas!='')){
def nomEjecutivo=''+nvl(OwnerPartyName,'');
def errorMsg=''
def persons = newView('PersonProfile');
def personc = newViewCriteria(persons);
def personr = personc.createRow();
def useOr=false
if(ruc!=''){
def personi=personr.ensureCriteriaItem('JgzzFiscalCode')
personi.setOperator('=')
personi.setValue(ruc)
useOr=true
}
if(ced!=''){
def personj=personr.ensureCriteriaItem('NumeroDeCedula_c')
personj.setOperator('=')
personj.setValue(ced)
if(useOr){
personj.setConjunction(0)
}
useOr=true
}
if(pas!=''){
def personk=personr.ensureCriteriaItem('NumeroDePasaporte_c')
personk.setOperator('=')
personk.setValue(pas)
if(useOr){
personk.setConjunction(0)
}
useOr=true
}
personc.insertRow(personr);
persons.appendViewCriteria(personc);
persons.executeQuery();
while (persons.hasNext()) {
def curRow = persons.next()
if(''+PartyId!=''+curRow.PartyId){
if(ruc!=''&&curRow.JgzzFiscalCode==ruc){
errorMsg+='El numero de RUC '+ ruc + ' ya existe en el contacto '+curRow.PersonName+' del usuario '+curRow.Owne
}
if(ced!=''&&curRow.NumeroDeCedula_c==ced){
errorMsg+='El numero de Cédula '+ ced + ' ya existe en el contacto '+curRow.PersonName+' del usuario '+curRow.Ow
}
if(pas!=''&&curRow.NumeroDePasaporte_c==pas){
errorMsg+='El numero de Pasaporte '+ pas + ' ya existe en el contacto '+curRow.PersonName+' del usuario '+curRow
}
}
}
if(errorMsg!='')
throw new oracle.jbo.ValidationException(errorMsg)
if(ruc!='' && (isAttributeChanged('JgzzFiscalCode'))){
for (int i = 0; i < JgzzFiscalCode.length(); i++) {
if (JgzzFiscalCode.charAt(i) == ' ') {Espacios++;}
}
if (Espacios >0){
throw new oracle.jbo.ValidationException('El número de RUC no puede contener espacios.')
}
setAttribute('EstatusValid_c',adf.util.validaClienteNetplus('1',ruc))
}
if(ced!='' && (isAttributeChanged('NumeroDeCedula_c') )){
for (int i = 0; i < NumeroDeCedula_c.length(); i++) {
if (NumeroDeCedula_c.charAt(i) == ' ') {Espacios++;}
}
if (Espacios >0){
throw new oracle.jbo.ValidationException('El número de Cédula no puede contener espacios.')
}
setAttribute('EstatusValid_c',adf.util.validaClienteNetplus('0',ced))
}
if(pas!='' && (isAttributeChanged('NumeroDePasaporte_c'))){
for (int i = 0; i < NumeroDePasaporte_c.length(); i++) {
if (NumeroDePasaporte_c.charAt(i) == ' ') {Espacios++;}
}
if (Espacios >0){
throw new oracle.jbo.ValidationException('El número de Pasaporte no puede contener espacios.')
}
adf.util.validarFormatoDoc('P',pas)
setAttribute('EstatusValid_c',adf.util.validaClienteNetplus('P',nvl(NumeroDePasaporte_c,'')))
}
}
if(CodigoNetPlus_c==''){
throw new oracle.jbo.ValidationException('No se puede modificar el tipo a cliente ya que no se cuenta con un codigo de ne
}
def usages=PartyUsageAssignment
while(usages.hasNext()){
def usage=usages.next()
def code=usage.PartyUsageCode
if(code=='PARTNER_CONTACT')
return true
}
return false
def leadId =nvl(IdLeadProgenitor_c,0 as BigDecimal)
println('Ejecutando getDireccionLead')
if(leadId!=0){
println('lead diferente de null')
def leads=newView('Lead')
def leadc=newViewCriteria(leads)
def leadr=leadc.createRow()
def leadi=leadr.ensureCriteriaItem('LeadId')
leadi.setOperator('=')
leadi.setValue(leadId)
leadc.insertRow(leadr)
leads.appendViewCriteria(leadc)
leads.executeQuery()
while(leads.hasNext()){
println('Encontr¿e un Lead!')
def lead=leads.next()
if(lead.TipoCliente_c=='PERSON'&&nvl(lead.PrimaryContactState,'')!=''){
def locations = newView('Location')
def location = locations.createRow()
location.setAttribute('Address1',lead.PrimaryContactAddress1)
location.setAttribute('Address2',lead.PrimaryContactAddress2)
location.setAttribute('State',lead.PrimaryContactState)
location.setAttribute('Country',lead.PrimaryContactCountry)
location.setAttribute('City',lead.PrimaryContactCity)
location.setAttribute('Address3',lead.PrimaryContactAddress3)
location.setAttribute('AddrElementAttribute1',lead.AddrElementAttribute1)
location.setAttribute('AddrElementAttribute2',lead.AddrElementAttribute2)
location.setAttribute('AddrElementAttribute3',lead.AddrElementAttribute3)
location.setAttribute('AddrElementAttribute4',lead.AddrElementAttribute4)
location.setAttribute('CreatedByModule','ZCM')
locations.insertRow(location)
println('location:'+location)
def locationId = location.getAttribute('LocationId')
def partySites = PartySite
def partySite = partySites.createRow()
partySite.setAttribute('CreatedByModule','ZCM')
partySite.setAttribute('LocationId',locationId)
partySites.insertRow(partySite)
println('partySite:'+partySite)
}
}
}
def errorList=[]
def errorCount=0
def genero = nvl(Gender,'')
def fechaDeNacimiento = nvl(DateOfBirth,null)
def EstadoCivil = nvl(MaritalStatus,'')
if(fechaDeNacimiento == null ){
errorList.add('Fecha de nacimiento.')
errorCount+=1
}
if(EstadoCivil == null || EstadoCivil ==''){
errorList.add('Estado civil.')
errorCount+=1
}
def errorMessage='';
if(errorCount=='0'){
return errorMessage
}else{
errorMessage= 'Es necesario seleccionar:'
}
for(error in errorList){
errorMessage+=error
}
return errorMessage
def tipo=''
def numero=''
def isNew=getPrimaryRowState().isNew()
def cambioTipoDocumento=isAttributeChanged('TipoDocumento_c')
def cambioNumeroDocumento=isAttributeChanged('NumeroDeDocumento_c')
def tipoDocumento=nvl(TipoDocumento_c,'')
def numeroDocumento=nvl(NumeroDeDocumento_c,'')
def R= nvl(JgzzFiscalCode,'')
def C= nvl(NumeroDeCedula_c,'')
def P= nvl(NumeroDePasaporte_c,'')
if(cambioTipoDocumento||cambioNumeroDocumento||isNew||(R==''&&C==''&&P=='')){
if(tipoDocumento!=''&&numeroDocumento!='' ){
if(tipoDocumento=='R' &&nvl(JgzzFiscalCode,'')==''){
setAttribute('JgzzFiscalCode',numeroDocumento)
}
else if(tipoDocumento=='C' &&nvl(NumeroDeCedula_c,'')==''){
setAttribute('NumeroDeCedula_c',numeroDocumento)
}
else if(tipoDocumento=='P' &&nvl(NumeroDePasaporte_c,'')==''){
setAttribute('NumeroDePasaporte_c',numeroDocumento)
}
}
}
def cambioRuc=isAttributeChanged('JgzzFiscalCode')
def cambioCedula=isAttributeChanged('NumeroDeCedula_c')
def cambioPasaporte=isAttributeChanged('NumeroDePasaporte_c')
R= nvl(JgzzFiscalCode,'')
C= nvl(NumeroDeCedula_c,'')
P= nvl(NumeroDePasaporte_c,'')
if(cambioRuc||cambioCedula||cambioPasaporte||isNew||numeroDocumento==''){
if( R!=''){
tipo= setAttribute('TipoDocumento_c','R')
numero =setAttribute('NumeroDeDocumento_c',R)
}
else if(C!=''){
tipo= setAttribute('TipoDocumento_c','C')
numero= setAttribute('NumeroDeDocumento_c',C)
}
else if(P!=''){
tipo= setAttribute('TipoDocumento_c','P')
numero= setAttribute('NumeroDeDocumento_c',P)
}
}
if(nvl(AreaComercial_c,'')=='')
setAttribute('AreaComercial_c','CORPORATIVO')
def codigoClienteNetplus=nvl(CodigoNetPlus_c,'')
def tipoDoc=nvl(TipoDocumento_c,'')
def nroDoc=nvl(NumeroDeDocumento_c,'')
def usages=PartyUsageAssignment
def salesProspect=false
while(usages.hasNext()&&salesProspect==false){
def usage=usages.next()
if(usage.PartyUsageCode=='SALES_PROSPECT'|| usage.PartyUsageCode=='SALES_ACCOUNT'){
salesProspect=true
}
}
if(salesProspect){
if(codigoClienteNetplus!='' && tipoDoc!='' &&nroDoc!=''){
def cliNets = newView('ClienteNetplus_c');
def cliNetc=newViewCriteria(cliNets)
def cliNetr=cliNetc.createRow()
def cliNeti=cliNetr.ensureCriteriaItem('Contacto_Id_c')
cliNeti.setOperator('=')
cliNeti.setValue(PartyId)
def cliNetj=cliNetr.ensureCriteriaItem('NumeroDeDocumento_c')
cliNetj.setOperator('=')
cliNetj.setValue(nroDoc)
cliNetc.insertRow(cliNetr)
cliNets.appendViewCriteria(cliNetc)
cliNets.executeQuery()
def existe=false
while(cliNets.hasNext()&&!existe){
def cliNet=cliNets.next()
existe=true
}
if(!existe){
def cliNet=cliNets.createRow()
cliNet.setAttribute('TipoDeDocumento_c',tipoDoc)
cliNet.setAttribute('NumeroDeDocumento_c',nroDoc)
cliNet.setAttribute('RecordName',codigoClienteNetplus)
cliNet.setAttribute('Contacto_Id_c',PartyId)
cliNets.insertRow(cliNet)
}
}
LlenadoDocumentosC()
}
if(true){
def timestamp=now().time
def optys=newView('OpportunityVO')
def optyc=newViewCriteria(optys)
def optyr=optyc.createRow()
def optyi=optyr.ensureCriteriaItem('SalesStageId')
optyi.setOperator('=')
optyi.setValue(300000000210282)
def optyj=optyr.ensureCriteriaItem('Tipo_c')
optyj.setOperator('ISBLANK')
optyc.insertRow(optyr)
optys.appendViewCriteria(optyc)
optys.setMaxFetchSize(10000)
optys.executeQuery()
def recordCount=0
def updatedCount=0
def cumpleCondicionCount=0
def maxUpdatedCount=500
def maxTime=40000
def elapsedTime=now().time-timestamp
def optysAbiertasList=[]
def optysNoAbiertasList=[]
def countAbiertas=0
def countNoAbiertas=0
while(optys.hasNext()&& updatedCount<maxUpdatedCount &&elapsedTime <40000){
def opty=optys.next()
def optyMap=[:]
optyMap.put('OptyNumber',opty.OptyNumber)
optyMap.put('Name',opty.Name)
optyMap.put('CreationDate',opty.CreationDate)
if(opty.StatusCode=='OPEN'){
optysAbiertasList.add(optyMap)
countAbiertas+=1
}
else{
optysNoAbiertasList.add(optyMap)
countNoAbiertas+=1
}
recordCount+=1
elapsedTime=now().time-timestamp
}
def map=[:]
map.put('recordcount',recordCount)
map.put('updatedCount',updatedCount)
map.put('elapsedTime',elapsedTime)
map.put('countAbiertas',countAbiertas)
map.put('countNoAbiertas',countNoAbiertas)
map.put('optysAbiertas',optysAbiertasList)
map.put('optysNoAbiertas',optysNoAbiertasList)
println('MAP'+map)
}
/*def assets=newView('AssetVO')
def assetc=newViewCriteria(assets)
def assetr=assetc.createRow()
def asseti=assetr.ensureCriteriaItem('IdentificadorDeOportunidad_Id_c')
asseti.setOperator('ISNOTBLANK')
assetc.insertRow(assetr)
assets.appendViewCriteria(assetc)
assets.setMaxFetchSize(2000)
assets.executeQuery()
def outputMap=[:]
def sinOportunidad=0
def assetCount=0
def tieneCanal=0
def tieneOrigen=0
def sinCanal=0
def sinOrigen=0
def optyList=[]
while(assets.hasNext()){
def asset=assets.next()
def opty=asset.IdentificadorDeOportunidad_Obj_c
if(opty!=null){
def canalId=nvl(opty.CanalObjC_Id_c,0 as BigDecimal)
def origenId=nvl(opty.Origen_Id_c,0 as BigDecimal)
if(canalId!=0){
// asset.setAttribute('Canal_Id_c',opty.CanalObjC_Id_c)
tieneCanal+=1
}
else{
sinCanal+=1
optyList.add(opty.Name)
}
if(origenId!=0){
// asset.setAttribute('Origen_Id_c',opty.Origen_Id_c)
tieneOrigen+=1
}
else{
sinOrigen+=1
}
}
else{
sinOportunidad+=1
}
assetCount+=1
}
outputMap.put('sinOportunidad',sinOportunidad)
outputMap.put('assetCount',assetCount)
outputMap.put('sinOrigen',sinOrigen)
outputMap.put('sinCanal',sinCanal)
outputMap.put('tieneCanal',tieneCanal)
outputMap.put('tieneOrigen',tieneOrigen)
outputMap.put('optyList',optyList)
println(''+outputMap)
}
*/
/*def startTime=now().time
def organizations=newView('OrganizationProfile')
def organizationc=newViewCriteria(organizations)
def organizationr=organizationc.createRow()
/*
def organizationi=organizationr.ensureCriteriaItem('JgzzFiscalCode')
organizationi.setOperator('ISBLANK')
def organizationj=organizationr.ensureCriteriaItem('RUCExterno_c')
organizationj.setOperator('ISBLANK')
def organizationk=organizationr.ensureCriteriaItem('Pasaporte_c')
organizationk.setOperator('ISBLANK')
*/
/*
def organizationl=organizationr.ensureCriteriaItem('RegularizarCuenta_c')
organizationl.setOperator('ISBLANK')
def organizationm=organizationr.ensureCriteriaItem('AreaComercial_c')
organizationm.setOperator('ISBLANK')
def organizationn=organizationr.ensureCriteriaItem('SalesProfileType')
organizationn.setOperator('ISNOTBLANK')
organizationc.insertRow(organizationr)
organizations.appendViewCriteria(organizationc)
organizations.setMaxFetchSize(50000)
def recordCount=0
def updatedCount=0
def cumpleCondicionCount=0
def elapsedTime=now().time-startTime
def maxRecords=250
while(organizations.hasNext()&&elapsedTime<50000){
def organization=organizations.next()
def ruc=nvl(organization.JgzzFiscalCode,'')
def re=nvl(organization.RUCExterno_c,'')
def pas=nvl(organization.Pasaporte_c,'')
def usages=organization.PartyUsageAssignment
def salesProspect=false
while(usages.hasNext()&&salesProspect==false){
def usage=usages.next()
if(usage.PartyUsageCode=='SALES_PROSPECT' || usage.PartyUsageCode=='SALES_ACCOUNT'){
salesProspect=true
}
}
if(nvl(organization.AreaComercial_c,'')=='' && salesProspect ){
cumpleCondicionCount+=1
if(updatedCount<maxRecords){
organization.setAttribute('RegularizarCuenta_c',startTime)
updatedCount+=1
}
}
elapsedTime=now().time-startTime
recordCount+=1
}
def map=[:]
map.put('recordCount',recordCount)
map.put('cumpleCondicionCount',cumpleCondicionCount)
map.put('updatedCount',updatedCount)
map.put('elapsedTime',elapsedTime)
println(''+map)
*/
/*
def persons=newView('PersonProfile')
def personc=newViewCriteria(persons)
def personr=personc.createRow()
/*
def personi=personr.ensureCriteriaItem('JgzzFiscalCode')
personi.setOperator('ISBLANK')
def personj=personr.ensureCriteriaItem('NumeroDeCedula_c')
personj.setOperator('ISBLANK')
def personk=personr.ensureCriteriaItem('NumeroDePasaporte_c')
personk.setOperator('ISBLANK')*/
/*
def personl=personr.ensureCriteriaItem('RegularizarContact_c')
personl.setOperator('ISBLANK')
def personm=personr.ensureCriteriaItem('AreaComercial_c')
personm.setOperator('ISBLANK')
def personn=personr.ensureCriteriaItem('SalesProfileType')
personn.setOperator('ISNOTBLANK')
personc.insertRow(personr)
persons.appendViewCriteria(personc)
persons.setMaxFetchSize(50000)
def recordCount=0
def updatedCount=0
def cumpleCondicionCount=0
def maxUpdatedCount=300
def timestamp=now().time
def maxTime=45000
def elapsedTime=now().time-timestamp
while(persons.hasNext() && elapsedTime< maxTime){
def person=persons.next()
def ruc=nvl(person.JgzzFiscalCode,'')
def ced=nvl(person.NumeroDeCedula_c,'')
def usages=person.PartyUsageAssignment
def salesProspect=false
while(usages.hasNext()&&salesProspect==false){
def usage=usages.next()
if(usage.PartyUsageCode=='SALES_PROSPECT' ||usage.PartyUsageCode=='SALES_ACCOUNT' ){
salesProspect=true
}
}
if(nvl(person.AreaComercial_c,'')=='' &&person.PartyId!=300000002076614 &&salesProspect){
cumpleCondicionCount+=1
if(updatedCount<maxUpdatedCount){
person.setAttribute('RegularizarContact_c',timestamp)
updatedCount+=1
}
}
recordCount+=1
elapsedTime=now().time-timestamp
}
def map=[:]
map.put('recordCount',recordCount)
map.put('cumpleCondicionCount',cumpleCondicionCount)
map.put('updatedCount',updatedCount)
map.put('elapsedTime',elapsedTime)
println(''+map)*/
/*
def timestamp=now().time
def optys=newView('OpportunityVO')
def optyc=newViewCriteria(optys)
def optyr=optyc.createRow()
def optyi=optyr.ensureCriteriaItem('AreaComercial_c')
optyi.setOperator('ISBLANK')
def optyj=optyr.ensureCriteriaItem('RegularizarOportunidad_c')
optyj.setOperator('ISBLANK')
def optyk=optyr.ensureCriteriaItem('StatusCode')
optyk.setOperator('=')
optyk.setValue('OPEN')
optyc.insertRow(optyr)
optys.appendViewCriteria(optyc)
optys.setMaxFetchSize(10000)
optys.executeQuery()
def recordCount=0
def updatedCount=0
def cumpleCondicionCount=0
def maxUpdatedCount=250
def maxTime=40000
def elapsedTime=now().time-timestamp
while(optys.hasNext()&& updatedCount<maxUpdatedCount &&elapsedTime <40000){
def opty=optys.next()
recordCount+=1
// opty.setAttribute('RegularizarOportunidad_c',timestamp)
elapsedTime=now().time-timestamp
// updatedCount+=1
}
def map=[:]
map.put('recordcount',recordCount)
map.put('updatedCount',updatedCount)
map.put('elapsedTime',elapsedTime)
println('MAP'+map)
}*/
return nvl(AreaComercial_c,'')!=''
if(filaValida()){
def usuarioGenericoId
def moc=nvl(AreaComercial_c,'')
if(moc=='MASIVO'){
usuarioGenericoId=adf.util.usuarioGenericoMasivo()
}
else if(moc=='CORPORATIVO'){
usuarioGenericoId=adf.util.usuarioGenericoCorporativo()
}
if(nvl(OportunidadesAbiertas_c,0 as BigDecimal) == 0 && nvl(LeadsAbiertos_c,0 as BigDecimal)==0){
setAttribute('OwnerPartyId',usuarioGenericoId)
setAttribute('OverrideReassignment_c','Y')
if(moc=='CORPORATIVO'){
setAttribute('OwnerPartyId',usuarioGenericoId)
def map=[:]
map.put('customerId',PartyId)
map.put('ownerId',OwnerPartyId)
map.put('tipoCliente','PERSON')
map.put('PartyUniqueName',PartyUniqueName)
return [map]
}
return []
}
}
return []
if(OverrideReassignment_c!='Y' && AreaComercial_c!='MASIVO'){
adf.util.reasignarCliente('PERSON',PartyId,OwnerPartyId,PartyId)
}
else{
setAttribute('OverrideReassignment_c','N')
}
def cliNets = newView('ClienteNetplus_c');
def cliNetc=newViewCriteria(cliNets)
def cliNetr=cliNetc.createRow()
def cliNeti=cliNetr.ensureCriteriaItem('Contacto_Id_c')
cliNeti.setOperator('=')
cliNeti.setValue(PartyId)
def cliNetj=cliNetr.ensureCriteriaItem('TipoDeDocumento_c')
cliNetj.setOperator('=')
cliNetj.setValue(TipoDocumento)
cliNetc.insertRow(cliNetr)
cliNets.appendViewCriteria(cliNetc)
cliNets.executeQuery()
while(cliNets.hasNext()){
def v=cliNets.next()
v.remove()
}
println('TipoDocumento:'+TipoDocumento +' NroDocumento:'+NroDocumento)
def cliNets = newView('ClienteNetplus_c');
def cliNetc=newViewCriteria(cliNets)
def cliNetr=cliNetc.createRow()
def cliNeti=cliNetr.ensureCriteriaItem('Contacto_Id_c')
cliNeti.setOperator('=')
cliNeti.setValue(PartyId)
def cliNetj=cliNetr.ensureCriteriaItem('TipoDeDocumento_c')
cliNetj.setOperator('=')
cliNetj.setValue(TipoDocumento)
cliNetc.insertRow(cliNetr)
cliNets.appendViewCriteria(cliNetc)
cliNets.executeQuery()
def existe=false
while(cliNets.hasNext()&&!existe){
def cliNet=cliNets.next()
existe=true
cliNet.setAttribute('NumeroDeDocumento_c',NroDocumento)
println('actualizando registro')
}
/*
if(!existe && nvl(CodigoNetPlus_c,'') !='' ){
def cliNet=cliNets.createRow()
cliNet.setAttribute('TipoDeDocumento_c',TipoDocumento)
cliNet.setAttribute('NumeroDeDocumento_c',NroDocumento)
cliNet.setAttribute('RecordName',CodigoNetPlus_c)
cliNet.setAttribute('Contacto_Id_c',PartyId)
cliNets.insertRow(cliNet)
println('creando registro')
}*/
if(AreaComercial_c=='MASIVO'&&SalesProfileType=='ZCA_CUSTOMER' ||SalesProfileType=='ZCA_PROSPECT' ){
//def timestamp=now().time
//ValidacionContacto()
def CodigoNetPlus = CodigoNetPlus_c;
cTelefonicoPais_c=nvl(telefono.PhoneCountryCode,'');
cTelefonicoPais_c =cTelefonicoPais_c.trim();
codigoArea_c = nvl(telefono.PhoneAreaCode,'');
codigoArea_c = codigoArea_c.trim();
numero_c = nvl(telefono.PhoneNumber,'');
numero_c = numero_c.trim();
contactPointId = telefono.ContactPointId;
}
}
def tipo_c =''+nvl(TipoDePersona_c,'');
tipo_c = tipo_c.trim();
def fechadeNacimiento_c =''+nvl(DateOfBirth,'');
def nombres_c =''+nvl(PersonFirstName,'');
nombres_c = nombres_c.trim();
//def razonSocial_c =''+nvl(RazonSocial_c,'');
def genero_c =''+nvl(Gender,'');
genero_c = genero_c.trim();
def referido_c = ''+nvl(Referidoc_c,'');
referido_c = referido_c.trim();
def numeroDocumento_c =''+nvl(NumeroDeDocumento_c,'');
//def grupoComercial_c =''+nvl(GrupoComercial_c,'');
def cargo_c= ''+nvl(JobTitle,'');
cargo_c = cargo_c.trim();
def rolComprador_c = ''+nvl(SalesBuyingRoleCode,'');
rolComprador_c = rolComprador_c.trim();
def sector_c = ''+nvl(Sector_c,'');
sector_c=sector_c.trim();
def apellido_c =''+nvl(PersonLastName,'');
apellido_c = apellido_c.trim();
def paginaWeb_c = ''+nvl(PrimaryURL,'');
paginaWeb_c = paginaWeb_c.trim();
def sectoresComerciales_c =''+nvl(SectorComercial_c,'');
sectoresComerciales_c = sectoresComerciales_c.trim();
def contactoPrincipal_c =''+nvl(PreferredContactName,'');
contactoPrincipal_c = contactoPrincipal_c.trim();
def idContacto_c = ''+nvl(PreferredContactPersonId,0 as long);
def identificadorPartyOSC_c = '' + nvl(PartyNumber,'');
def idEjecutivoCorporativo_c =''+nvl(OwnerPartyId,0 as long);
//def identificadorOSC_c =''+ nvl(PartyId,'');
if(AreaComercial_c == 'MASIVO'){
def userName = adf.context.getSecurityContext()?.getUserName();
payload.put('nombreUsuario',userName)}
println('TipoTelefono_c: '+TipoTelefono_c)
println('PAYLOAD PN: '+payload)
try{
def existe=false
def cliNets;
cliNets = newView('ClienteNetplus_c');
def cliNetc=newViewCriteria(cliNets)
def cliNetr=cliNetc.createRow()
def cliNeti=cliNetr.ensureCriteriaItem('Contacto_Id_c')
cliNeti.setOperator('=')
cliNeti.setValue(PartyId)
def cliNetj=cliNetr.ensureCriteriaItem('NumeroDeDocumento_c')
cliNetj.setOperator('=')
cliNetj.setValue(nroDocumento)
cliNetc.insertRow(cliNetr)
cliNets.appendViewCriteria(cliNetc)
cliNets.executeQuery()
while(cliNets.hasNext()&&!existe){
def cliNet=cliNets.next()
existe=true
}
if (!existe){
NumIntegracion ='13';
creaClienteNatural = adf.webServices.CrearClienteNaturalJuridico.POST(payload)
response = creaClienteNatural;
data_c = creaClienteNatural?.data;
MensajeIntegracion = creaClienteNatural?.message;
}else{
NumIntegracion ='14'
ActualizaCliente= adf.webServices.ActualizarClienteNaturalJuridico.POST(payload)
response = ActualizaCliente;
data_c = ActualizaCliente?.data;
MensajeIntegracion = ActualizaCliente?.message;
}
if(response.code == '1'){
EstatusInt = data_c.estatusIntegracion;
codigoCliente = data_c.codCliente;
setAttribute('EstatusInt_c',EstatusInt );
setAttribute('CodigoNetPlus_c',codigoCliente);
if(!existe){
def cliNet=cliNets.createRow()
cliNet.setAttribute('TipoDeDocumento_c',tipodocumento)
cliNet.setAttribute('NumeroDeDocumento_c',nroDocumento)
cliNet.setAttribute('RecordName',CodigoNetPlus_c)
cliNet.setAttribute('Contacto_Id_c',PartyId)
cliNets.insertRow(cliNet)
println('numdoc:'+nroDocumento+' tipo:'+tipodocumento)
println('!existe':existe)
}
println('codigo: '+CodigoNetPlus_c)
Bitacora.put('Integracion_c',NumIntegracion)
Bitacora.put('MensajeIntegracion_c',encodeToBase64(''+MensajeIntegracion))
Bitacora.put('Payload_c',encodeToBase64(''+ payload))
Bitacora.put('Response_c',encodeToBase64(''+response))
Bitacora.put('IdPrincipal_c',codigoCliente)
adf.webServices.LogBitacora.POST(Bitacora)
else{
println('entrando a codigo igual a 0')
//setAttribute('EstatusInt_c',EstatusInt );
//setAttribute('CodigoNetPlus_c',codigoCliente);
//setAttribute('DesEstatusdeIntegracion_c',creaCliente?.message);
throw new oracle.jbo.ValidationException(''+ MensajeIntegracion)
}
}
catch(e){
Bitacora.put('Integracion_c',NumIntegracion)
Bitacora.put('MensajeIntegracion_c',encodeToBase64(''+MensajeIntegracion))
Bitacora.put('Payload_c',encodeToBase64(''+ payload))
Bitacora.put('Response_c',encodeToBase64(''+response))
Bitacora.put('IdPrincipal_c',codigoCliente)
if(Ruc.substring(0,10) != cedula){
throw new oracle.jbo.ValidationException('(BDS) Comuniquese con su Supervisor o Gerente' )
}
/*
def phones=Phone
def expresion = /^[0-9]+$/
def count = 0;
def phoneRows=phones.getAllRowsInRange()
for (phone in phoneRows){
def phoneNumber=nvl(phone.PhoneNumber,null)
def areaCode=nvl(phone.PhoneAreaCode,null)
def extension= nvl(phone.PhoneExtension,null)
if(extension != null && !extension.matches(expresion)){count+=1}
if(phoneNumber != null && !phoneNumber.matches(expresion)){count+=1}
if(areaCode != null && !areaCode.matches(expresion)){count+=1}
*/
def cont = 0;
def mobile = false
def work = false
def home = false
def phoneList = []
while (telColeccion.hasNext()) {
def ps = telColeccion?.next();
def type = nvl(ps.PhoneType, '')
def phoneNumber = nvl(ps?.PhoneNumber, '0').replaceAll("[^\\d]", "")
def phoneExtension = nvl(ps?.PhoneExtension, '0')
def phoneNumberValue = nvl(ps?.PhoneNumber, '0')
def areaCode = nvl(ps?.PhoneAreaCode, '0')
def okFormat = areaCode.isInteger()
println(phoneNumber.length())
println(phoneNumber)
if (!phoneExtension.isInteger()) {
println("Valor no numérico encontrado: $phoneExtension")
throw new oracle.jbo.ValidationException('La extensión debe contener solo caracteres numéricos. Para una nueva edic
presiona
} cancelar e ingresa nuevamente al contacto')
if (!phoneNumberValue.isInteger()) {
println("Valor no numérico encontrado: $phoneNumberValue")
throw new oracle.jbo.ValidationException('El número de teléfono debe contener solo caracteres numéricos maximo 10
edición
} de teléfonos, por favor, presiona cancelar e ingresa nuevamente al contacto')
if (!okFormat) {
throw new oracle.jbo.ValidationException('El código de área sólo pueden tener caracteres numéricos. Para una nueva e
favor
} presiona cancelar e ingresa nuevamente al contacto')
if (type == 'MOBILE') {
mobile = true
} else if (type == 'WORK') {
work = true
} else if (type == 'HOME') {
home = true
}
Yes if(!
Groovy Function oracle.apps.crmCommon.extensibility.con
return false;
Name :reasignacionCascada else
Description : return true;
Execution Schedule : 0:Days:After:
Function Display Name : reasignacionCascada
_c,'')==''){
lesProfileType=='ZCA_CUSTOMER')){
orte')
leType=='ZCA_CUSTOMER')){
sProfileType=='ZCA_CUSTOMER')){
a')
e == 'ZCA_PROSPECT')&&usuarioSales &&!
[email protected]')
éfono ya creado. Favor de dar de alta un nuevo teléfono del tipo
NULL')){
ea de teléfono móvil '+ lengtharea + ' ' + areaCode +', por favor
eléfono móvil, para ingresar correctamente la información, por favor
Changed('NumeroDePasaporte_c') || getPrimaryRowState().isNew()){
&& usuarioSales){
entes campos para poder avanzar: Número de RUC, Número de
os usuarios')
suarioCorporativo)){
urce, "FND_ACFF_VA_AttributeCategory__AttributeCategory",
urce,
alue")
Plus == ' ' ){
nName+' del usuario '+curRow.OwnerPartyName+'. '
cios.')
pacios.')
espacios.')
e_c,'')))
que no se cuenta con un codigo de netplus')
')){
CCOUNT'){
0){
ACCOUNT'){
CCOUNT' ){
Prospect){
){
gDecimal)==0){
ype=='ZCA_PROSPECT' ){
e')
de');
fonoPrincipal_c')
idad_c')
ambioPartyNumber||cambioType||
Pasaporte_c||cambioDateOfBirth||cambioGender||
esion)){
cliente ' + errorMsg + ' es obligatorio.'
ression
le.apps.crmCommon.extensibility.content.adf.data.util.ExtensibilityGro
urn false;
ributeChanged('RegularizarContact_c')
le.apps.crmCommon.extensibility.content.adf.data.util.ExtensibilityGro
urn false;
urn true;
||
TipoCon_c=='PROSPECTO')
||
TipoCon_c=='PROSPECTO')
' || SalesProfileType ==
' || SalesProfileType ==
|| SalesProfileType ==
Object Name : Plan_c
Object Name Plan_c
Object Display Name Plural Planes
Object Type Custom
Application Name CRM
Table Name MKT_REF_ENTITIES
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Custom Fields
Name Display Name Type Column Name
RecordName Código OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
InventoryItemId_c InventoryItemId Number EXTN_ATTRIBUTE_NUMBER006
CurrencyCode Currency Code FCL CURRENCY_CODE
LastUpdatedBy Actualizado por OOTB LAST_UPDATED_BY
CreatedBy Creado por OOTB CREATED_BY
OraZcxOwner_c Owner DCL
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Rule1 Field Validation
Field Name : Oportunidad_Id_c
Object Workflows
Name Definition Name Event Point Description
Plan_c_Standard_Create Create
Plan_c_Standard_Create Create
Plan_c_Standard_Update Update
Plan_c_Standard_Delete Delete
Plan_c
Planes
Custom
CRM
MKT_REF_ENTITIES
15
0
0
0
3
2
0
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
adf.source.isLookupIdValid('Oportunidad_Id_c',newValue)
No return
(oracle.apps.fnd.applcore.Profile.ge
No return
(oracle.apps.fnd.applcore.Profile.ge
Precision MaxLength Expression
80 80
0 0
20 20
15 15
64 64
64 64
1500 1500
18 18
200 200
1500 1500
10 10
18 18
32 32
64 64
0 0
ression
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
Object Name : Product
Object Name
Object Display Name Plural
Object Type
Application Name
Table Name
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Custom Fields
Name Display Name Type Column Name
ProductGroupInfo_c ProductGroupInfo Text Formula
Product
Producto
OOTB
CRM
QSC_PRODUCTS_VL
1
0
0
0
0
0
0
Custom Fields
Name Display Name Type Column Name
TipoDeServicio_c Tipo de servicio FCL EXTN_ATTRIBUTE_CHAR005
Corporativo_c Corporativo Checkbox EXTN_ATTRIBUTE_CHAR003
Masivo_c Masivo Checkbox EXTN_ATTRIBUTE_CHAR004
TipoDeServicioWF_c Tipo de Servicio FCL EXTN_ATTRIBUTE_CHAR006
Dynamic Layouts
Layout Name Active Role
Diseño personalizado por defecto Yes
ProductGroupDetail
Grupo de productos
OOTB
CRM
QSC_PROD_GRP_DETAILS
4
0
0
0
0
0
1
Custom Fields
Name Display Name Type Column Name
RecordName Código OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
IntervaloCadaEditableX_c IntervaloCadaEditable Checkbox EXTN_ATTRIBUTE_CHAR012
Obligatorio_c Obligatorio Checkbox EXTN_ATTRIBUTE_CHAR014
Diferir_c Diferir Default DCL
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Rule1 Field Validation
Field Name : Oportunidad_Id_c
Rule1 Field Validation
Field Name : Diferir_Id_c
Rule1 Field Validation
Field Name : Detalle_Id_c
Rule1 Field Validation
Field Name : Descuento_Id_c
Object Workflows
Name Definition Name Event Point Description
PromocionDescuento_c_Sta Create
ndard_Create
PromocionDescuento_c_Sta Delete
ndard_Delete
PromocionDescuento_c_Sta Update
ndard_Update
PromocionDescuento_c
PromocionDescuento
Custom
CRM
MOT_REF_ENTITIES
40
0
0
0
3
5
0
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
adf.source.isLookupIdValid('Oportunidad_Id_c',newValue)
adf.source.isLookupIdValid('Diferir_Id_c',newValue)
adf.source.isLookupIdValid('Detalle_Id_c',newValue)
adf.source.isLookupIdValid('Descuento_Id_c',newValue)
ression
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
Object Name : PromocionesYServicios_c
Object Name PromocionesYServicios_c
Object Display Name Plural Promociones y servicios
Object Type Custom
Application Name CRM
Table Name MOT_REF_ENTITIES
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Custom Fields
Name Display Name Type Column Name
RecordName Código OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
CurrencyCode Currency Code FCL CURRENCY_CODE
Subtipo_c Subtipo FCL EXTN_ATTRIBUTE_CHAR025
DescuentoDefault_c Descuento Default DCL
Triggers
Name Type Trigger PointDescription Error Message
SetIntervalosDefault Field Trigger Modify
Field Name :
Diferir_Id_c
Object Functions
Name Parameters Return Type Privileged Visibility Description
validarProm String No Default
ocion
calcularProm Double No Default
ocion
Dynamic Layouts
Layout Name Active Role
Admin Yes ADMIN_GENERAL_PNT;
PromocionesYServicios_c
Promociones y servicios
Custom
CRM
MOT_REF_ENTITIES
69
0
4
4
3
13
1
if(cambioSeleccion||cambioCantidad||cambioDetalle||cambioDiferir||cambioDescuento){
calcularPromocion()
return true
def opty=Oportunidad_Obj_c
if(opty!=null){
def revs=opty.ChildRevenue
while(revs.hasNext()){
def rev=revs.next()
rev.getServiciosAdicionales()
}
}
}
def consultarDetallePromocion=isAttributeChanged('ConsultarDetalleDeLaPromocion_c')&& ConsultarDetalleDeLaPromocion_c
def OportunidadId = Oportunidad_Id_c;
def codigoPromocion=RecordName;
if(consultarDetallePromocion)
{
eliminarDetalle()
setAttribute('ConsultarDetalleDeLaPromocion_c','N')
def oprtunidades = newView('OpportunityVO')
def oprtunidadesc = newViewCriteria(oprtunidades)
def oprtunidadesr = oprtunidadesc.createRow()
def oprtunidadesi = oprtunidadesr.ensureCriteriaItem('OptyId')
oprtunidadesi.setOperator('=')
oprtunidadesi.setValue(OportunidadId)
oprtunidadesc.insertRow(oprtunidadesr)
oprtunidades.appendViewCriteria(oprtunidadesc)
oprtunidades.executeQuery();
while (oprtunidades.hasNext()){
def oprtunidad = oprtunidades.next()
println('entrando a consultar detalle')
oprtunidad.ConsultarDetallePromocion(codigoPromocion);
}
}
Expression
if(getPrimaryRowState().isNew()){
return true
}
def cantidadMin=nvl(CantidadMinima_c,0 as BigDecimal)
def cantidadMax=nvl(CantidadMaxima_c,0 as BigDecimal)
def cantidad=nvl(CantidadNum_c,0 as BigDecimal)
def errorMsg=''
if(cantidad<cantidadMin || cantidad > cantidadMax){
errorMsg+='La cantidad debe estar comprendida entre '+cantidadMin +' y ' + cantidadMax + '. '
}
adf.source.isLookupIdValid('Cantidad_Id_c',newValue)
adf.source.isLookupIdValid('Renovacion_Id_c',newValue)
adf.source.isLookupIdValid('Detalle_Id_c',newValue)
adf.source.isLookupIdValid('Diferir_Id_c',newValue)
adf.source.isLookupIdValid('Descuento_Id_c',newValue)
adf.source.isLookupIdValid('IntervaloCada_Id_c',newValue)
adf.source.isLookupIdValid('IntervaloHasta_Id_c',newValue)
adf.source.isLookupIdValid('Oportunidad_Id_c',newValue)
adf.source.isLookupIdValid('DetalleDefault_Id_c',newValue)
adf.source.isLookupIdValid('DiferirDefault_Id_c',newValue)
adf.source.isLookupIdValid('DescuentoDefault_Id_c',newValue)
tion Expression
if(getPrimaryRowState().isNew() || nvl(Seleccionar_c,'N')=='N' ){
return true
}
def cantidadMin=nvl(CantidadMinima_c,0 as BigDecimal)
def cantidadMax=nvl(CantidadMaxima_c,0 as BigDecimal)
def cantidad=nvl(CantidadNum_c,0 as BigDecimal)
def errorMsg=''
if(cantidad<cantidadMin || cantidad > cantidadMax){
errorMsg+='La cantidad debe estar comprendida entre '+cantidadMin +' y ' + cantidadMax + '. '
}
def errorList1=[]
def errorCount1=0
def seleccionado = nvl(Seleccionar_c,'')
def detalle = nvl(Detalle_c,'')
def direfir = nvl(Diferir_c,'')
def descuento = nvl(Descuento_c,'')
def RecordName_c = nvl(RecordName,'')
if (seleccionado == 'Y'){
println('RecordName:'+RecordName)
if (detalle == ''){
errorList1.add('Detalle. ')
errorCount1+=1
}
if (direfir == ''){
errorList1.add('Direfir. ')
errorCount1+=1
}
if (descuento == ''){
errorList1.add('Descuento. ')
errorCount1+=1
}
def errorMessage1= ''
if(errorCount1!=0){
for(error in errorList1){
errorMessage1+=error
}
throw new oracle.jbo.ValidationException('(BDS) Promociones y Servicios Adicionales: Debe seleccionar ' +errorMess
Descripcion_c)
}
def errorMessage=''
if(errorCount=='0'){
return errorMessage
}
else{
if(Tipo_c=='PROMOCION'){
errorMessage='Error en la Promoción ' + Descripcion_c+': '
}
else{
errorMessage='Error en el Servicio ' + Descripcion_c+': '
}
}
for(error in errorList){
errorMessage+=error
}
for(ob in objects){
if(!objects.contains(ob)){
throw new oracle.jbo.ValidationException('Esta función está limitada a las vistas dentro de esta lista:' +objects)
}else{
println('eliminando vista:'+ob)
def promociones = newView(ob)
def promocionc = newViewCriteria(promociones)
def promocionr = promocionc.createRow()
def promocioni = promocionr.ensureCriteriaItem('Oportunidad_Id_c')
promocioni.setOperator('=')
promocioni.setValue(OportunidadId)
if(ob == 'Descuento_c'){
IdPromocion = 'PromocionOservicio_Id_c'
}
def promocionj=promocionr.ensureCriteriaItem(IdPromocion)
promocionj.setOperator('=')
promocionj.setValue(Id)
promocionc.insertRow(promocionr)
promociones.appendViewCriteria(promocionc)
promociones.executeQuery();
while (promociones.hasNext()){
def v = promociones.next()
println('eliminando vista:'+v.Descripcion_c)
v.remove()
}
}
}
setAttribute('Detalle_c',null)
setAttribute('Diferir_c',null)
setAttribute('Descuento_c',null)
UND_HALF_UP)
ND_HALF_UP))
as BigDecimal)
al)
tro de esta lista:' +objects)
ression
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
Object Name : RecursoAsignacionLead_c
Object Name
Object Display Name Plural
Object Description
Object Type
Application Name
Table Name
Record Name Sequence
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Custom Fields
Name Display Name Type Column Name
RecordName RecursoAsignacionLeadRecordN OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
SuspenderAsignacion_c Suspender Asignación Checkbox EXTN_ATTRIBUTE_CHAR006
Ranking_c Ranking Number EXTN_ATTRIBUTE_NUMBER007
CurrencyCode Currency Code FCL CURRENCY_CODE
LeadsAsignados_c Leads asignados Number EXTN_ATTRIBUTE_NUMBER008
Offset_c Offset Number EXTN_ATTRIBUTE_NUMBER010
LastUpdatedBy Actualizado por OOTB LAST_UPDATED_BY
CreatedBy Creado por OOTB CREATED_BY
Score_c Score Number EXTN_ATTRIBUTE_NUMBER006
Id Identificador de Registro OOTB ID
RecordNumber Record Number OOTB RECORD_NUMBER
ObjetivoDeAsignacion_c Objetivo de Asignación Number EXTN_ATTRIBUTE_NUMBER009
LastUpdateDate Fecha de Última Actualización OOTB LAST_UPDATE_DATE
Object Functions
Name Parameters Return Type Privileged Visibility Description
calcularObje numeroVendedor void No Default
tivoAsignaci es-
on Long,minimoLead
s-
RecursoAsignacionLead_c
RecursoAsignacionLeads
Intersection Entity generated by M:M
Relationship
Custom
CRM
ZCA_REF_ENTITIES_XMM
{0000000}-{YY}{MM}{DD}
14
0
0
1
0
0
0
Description Expression
def objetivoAsignacion=((numeroVendedores-nvl(Ranking_c,0 as BigDecimal)+1)as BigDecimal)*deltaAsign
objetivoAsignacion=(objetivoAsignacion as BigDecimal).setScale(0,BigDecimal.ROUND_HALF_UP) as Long
setAttribute('ObjetivoDeAsignacion_c',objetivoAsignacion)
REST Enabl Precision MaxLength Expression
Yes 80 80
Yes 0 0
Yes 10 10
Yes 10 10
Yes 15 15
Yes 10 10
Yes 10 10
Yes 64 64
Yes 64 64
Yes 10 10
Yes 32 32
Yes 64 64
Yes 10 10
Yes 0 0
Custom Fields
Name Display Name Type Column Name
RecordName Código OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
CurrencyCode Currency Code FCL CURRENCY_CODE
PromocionOServicio_Id_c Promoción o servicio DCLForeignKey EXTN_ATTRIBUTE_NUMBER001
LastUpdatedBy Actualizado por OOTB LAST_UPDATED_BY
CreatedBy Creado por OOTB CREATED_BY
PromocionOServicio_c Promoción o servicio DCL
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Rule1 Field Validation
Field Name : PromocionOServicio_Id_c
Object Workflows
Name Definition Name Event Point Description
Renovacion_c_Standard_Del Delete
ete
Renovacion_c_Standard_Cre Create
ate
Renovacion_c_Standard_Up Update
date
Renovacion_c
Renovaciones
Custom
CRM
SVC_REF_ENTITIES
14
0
0
0
3
2
0
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
adf.source.isLookupIdValid('PromocionOServicio_Id_c',newValue)
ression
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
Object Name : Resource
Object Name
Object Display Name Plural
Object Type
Application Name
Table Name
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Custom Fields
Name Display Name Type Column Name
AnoYMes_c Año y mes ultimo score Number EXTN_ATTRIBUTE_NUMBER005
Score_c Score Number EXTN_ATTRIBUTE_NUMBER004
UsuarioRegestion_c Usuario regestión Checkbox EXTN_ATTRIBUTE_CHAR003
SucursalesDeFacturacion_c Sucursales de Facturación FCL EXTN_ATTRIBUTE_CHAR004
PartyId_c PartyId Text Formula
Object Functions
Name Parameters Return Type Privileged Visibility Description
esRegestion Boolean No Default
Dynamic Layouts
Layout Name Active Role
PTN Yes
PTN Yes
Resource
Recursos
OOTB
CRM
JTF_RS_RESOURCE_PROFILES
5
0
0
5
0
0
2
Description Expression
def list=['TELEVENTAS']
return testRoles(list)
def optys=newView('OpportunityVO')
def rras=ResourceRoleAssign
def nullDate=new Date(01,01,2099)
while(rras.hasNext()){
def rra=rras.next()
def endDate=nvl(rra.EndDateActive,nullDate)
def roleCode=rra.RoleCode
if(endDate>=today()&&listaRoles.contains(roleCode)){
return true
}
}
return false
def payload=[:]
def status = [:]
status.put('id','1')
def CodigoCuenta = PartyNumber;
def nombre = nvl(PersonFirstName ,'')
def apellido = nvl(PersonLastName,'')
def rol = Roles;
payload.put('codigo_cuenta_sales',CodigoCuenta)
payload.put('estatus',status)
payload.put('nombre_sales',nombre+' '+ apellido)
payload.put('perfil_sales',rol)
def response ='';
try{
response = adf.webServices.CrearCuentaRN.POST(payload)
println(response)
}
catch(Exception e){
println('sin respuesta')
def msg=e.message
throw new oracle.jbo.ValidationException('Error: '+ msg)
}
def list=['TELEVENTAS_DIGITAL']
testRoles(list)
Standard Fields
Name Display Name Help Text
Discount Discount caja
Custom Fields
Name Display Name Type Column Name
TotalServiciosAdicionales_c Total Servicios adicionales Currency EXTN_ATTRIBUTE_NUMBER023
DetalleEditable_c Detalle Editable Checkbox EXTN_ATTRIBUTE_CHAR007
DiferirEditable_c DiferirEditable Checkbox EXTN_ATTRIBUTE_CHAR008
EquiposMensual_c Equipos Mensual Currency EXTN_ATTRIBUTE_NUMBER038
Producto_c Producto Text Formula
Triggers
Name Type Trigger PointDescription Error Message Expression
Diferir Field Trigger Modify if(!getPrimaryRowSta
Field Name : def diferir=Diferir_O
Diferir_Id_c if(diferir!=null){
Diferir Modify
setAttribute('Desc
}
else{
setAttribute('Des
}
}
setAttribute('Descue
EliminarDiferirDescue Field Trigger Modify setAttribute('Diferir_
nto Field Name : setAttribute('Descue
SetIntervalos Detalle_Id_c
Field Trigger Modify def descuentoObj=D
Field Name : if(descuentoObj){
DescuentoMasivoDi setAttribute('Interv
setAttribute('Interv
}
else{
setAttribute('Interv
setAttribute('Interv
}
import Object Trigger Create def opty=Opportun
def optyId=nvl(Opty
if(optyId!=0){
if(nvl(opty?.OptyId,
def optys=newVie
def optyc=newVie
def optyr=optyc.c
def optyi=optyr.e
optyi.setOperator
optyi.setValue(Op
optyc.insertRow(o
optys.appendView
optys.executeQue
while(optys.hasNe
opty=optys.next
}
}
}
if(opty==null)
return true
if(opty?.getPrimaryR
return true
setAttribute('StatusC
setAttribute('AreaCo
initDescuento()
return true
Validar_Borrado Object Trigger Remove if(ProductoDefinitvo
Validar_Borrado Object Trigger Remove
throw new oracle.jb
}
controlInsert Object Trigger BeforeInsert controlRevenue(true
def op=Opportunity
def MetodoVentaCM
if(op==null){
return true
}
if(op!=null){
if(op.SalesMethodId
if(!op.getPrimaryRow
def atts=op.Attachm
def count=0
while(atts.hasNext())
def att=atts.next()
count+=1
}
if(count==0){
throw new oracle.jbo
}
if(count > 0){
def cmvetap
def cmvetap
if((op.SalesStageId =
throw new oracle.jbo
}
}
}
}
}
controlGeneralUpdate Object Trigger BeforeUpdate if(OptyId){
def consultarPromo
if(consultarPromoc
setAttribute('Cons
def promocionId=
if(promocionId!=0
def opty=Oppor
if(!opty){
def optys=new
def optyc=new
def optyr=opty
def optyi=opty
optyi.setOperat
optyi.setValue(O
optyc.insertRow
optys.appendV
optys.executeQ
while(optys.has
opty=optys.ne
}
}
def promocionD
def codigoProm
opty.ConsultarD
setAttribute('Ulti
promocionDescu
}
}
}
controlRevenue(false
OsnIntegrationTrigger Object Trigger AfterCommit secondaryEOSendTo
Validations
Name Type Error Message Expression
validarIntervalos Object Validation def descuentoObj=D
if(descuentoObj){
def minCada=nvl(d
def minHasta=nvl(d
def maxCada=nvl(d
def maxHasta=nvl(
def msg=''
def cada=nvl(Interv
def hasta=nvl(Inter
def cadaOk=minCa
def hastaOk= minH
if(cadaOk&& hasta
return true
}
else{
if(!cadaOk){
msg='El valor de
}
if(!hastaOk){
msg+='El valor d
}
throw new oracle.
}
}
else{
return true
}
return true
Rule1 Field Validation adf.source.isLookup
Field Name : Bucket_Id_c
Rule1 Field Validation adf.source.isLookup
Field Name : CodigoPostal_Id_c
Rule1 Field Validation adf.source.isLookup
Field Name :
DescuentoMasivoDin_Id_c
Rule1 Field Validation adf.source.isLookup
Field Name : DescuentoDin_Id_c
Rule1 Field Validation adf.source.isLookup
Field Name : Detalle_Id_c
Rule1 Field Validation adf.source.isLookup
Field Name : Diferir_Id_c
Object Functions
Name Parameters Return Type Privileged Visibility Description
revenueEdit Boolean No Default
able
ortunity
59
1
8
6
0
7
0
Searchable
No
Expression
if(!getPrimaryRowState().isNew()){
def diferir=Diferir_Obj_c
if(diferir!=null){
setAttribute('DescripcionDiferir_c',diferir?.Descripcion_c)
}
else{
setAttribute('DescripcionDiferir_c','1')
}
}
setAttribute('DescuentoDin_c',null)
setAttribute('Diferir_c',null)
setAttribute('DescuentoDin_c',null)
def descuentoObj=DescuentoMasivoDin_Obj_c
if(descuentoObj){
setAttribute('IntervaloCadaNum_c',nvl(descuentoObj.IntervaloMinimoCada_c,0 as BigDecimal))
setAttribute('IntervaloHastaNum_c',nvl(descuentoObj.IntervaloMinimoHasta_c,0 as BigDecimal))
}
else{
setAttribute('IntervaloCadaNum_c',null)
setAttribute('IntervaloHastaNum_c',null)
}
def opty=Opportunity
def optyId=nvl(OptyId, 0 as Long)
if(optyId!=0){
if(nvl(opty?.OptyId, 0 as Long)==0){
def optys=newView('OpportunityVO')
def optyc=newViewCriteria(optys)
def optyr=optyc.createRow()
def optyi=optyr.ensureCriteriaItem('OptyId')
optyi.setOperator('=')
optyi.setValue(OptyId)
optyc.insertRow(optyr)
optys.appendViewCriteria(optyc)
optys.executeQuery()
while(optys.hasNext()){
opty=optys.next()
}
}
}
if(opty==null)
return true
if(opty?.getPrimaryRowState().isNew())
return true
setAttribute('StatusCode',opty.StatusCode)
setAttribute('AreaComercial_c',opty.AreaComercial_c)
initDescuento()
return true
if(ProductoDefinitvo_c=='Y' && !adf.util.usuarioAdministrador()){
throw new oracle.jbo.ValidationException('No es posible eliminar este producto ya que fue creado directamente por la integración.')
}
controlRevenue(true)
def op=Opportunity
def MetodoVentaCMV=300000000210277
if(op==null){
return true
}
if(op!=null){
if(op.SalesMethodId==MetodoVentaCMV){
if(!op.getPrimaryRowState().isNew()){
def atts=op.Attachment
def count=0
while(atts.hasNext()){
def att=atts.next()
count+=1
}
if(count==0){
throw new oracle.jbo.ValidationException('Para cambiar de Etapa 1 a 3, es necesario cargar una cotización.')
}
if(count > 0){
def cmvetapa1= op.GetSalesStageId('CMVE1')
def cmvetapa2= op.GetSalesStageId('CMVE2')
if((op.SalesStageId == cmvetapa1 || op.SalesStageId == cmvetapa2) && op.AreaComercial_c == 'CORPORATIVO'){
throw new oracle.jbo.ValidationException('No puedes agregar un producto en Etapa 1 o 2.')
}
}
}
}
}
if(OptyId){
def consultarPromocion=isAttributeChanged('ConsultarDetallesDescuento_c')&&ConsultarDetallesDescuento_c=='Y'
if(consultarPromocion){
setAttribute('ConsultarDetallesDescuento_c','N')
def promocionId=nvl(DescuentoMasivoDin_Id_c,0 as BigDecimal)
if(promocionId!=0){
def opty=Opportunity
if(!opty){
def optys=newView('OpportunityVO')
def optyc=newViewCriteria(optys)
def optyr=optyc.createRow()
def optyi=optyr.ensureCriteriaItem('OptyId')
optyi.setOperator('=')
optyi.setValue(OptyId)
optyc.insertRow(optyr)
optys.appendViewCriteria(optyc)
optys.executeQuery()
while(optys.hasNext()){
opty=optys.next()
}
}
def promocionDescuento=DescuentoMasivoDin_Obj_c
def codigoPromocion=promocionDescuento.RecordName
opty.ConsultarDetallePromocion(codigoPromocion)
setAttribute('UltimaPromocionConsultada_c',codigoPromocion)
promocionDescuento.setAttribute('DetalleConsultado_c','Y')
}
}
}
controlRevenue(false)
secondaryEOSendToOSN(source)
Expression
def descuentoObj=DescuentoMasivoDin_Obj_c
if(descuentoObj){
def minCada=nvl(descuentoObj.IntervaloMinimoCada_c,0 as BigDecimal)
def minHasta=nvl(descuentoObj.IntervaloMinimoHasta_c,0 as BigDecimal)
def maxCada=nvl(descuentoObj.IntervaloMaximoCada_c,0 as BigDecimal)
def maxHasta=nvl(descuentoObj.IntervaloMaximoHasta_c,0 as BigDecimal)
def msg=''
def cada=nvl(IntervaloCadaNum_c,0 as BigDecimal)
def hasta=nvl(IntervaloHastaNum_c,0 as BigDecimal)
return true
adf.source.isLookupIdValid('Bucket_Id_c',newValue)
adf.source.isLookupIdValid('CodigoPostal_Id_c',newValue)
adf.source.isLookupIdValid('DescuentoMasivoDin_Id_c',newValue)
adf.source.isLookupIdValid('DescuentoDin_Id_c',newValue)
adf.source.isLookupIdValid('Detalle_Id_c',newValue)
adf.source.isLookupIdValid('Diferir_Id_c',newValue)
Expression
StatusCode=='OPEN'
def a
/*if(OptyId!=null){
def promDescs=newView('PromocionDescuento_c')
def promDescc=newViewCriteria(promDescs)
def promDescr=promDescc.createRow()
def promDesci=promDescr.ensureCriteriaItem('Oportunidad_Id_c')
promDesci.setOperator('=')
promDesci.setValue(OptyId)
promDescc.insertRow(promDescr)
promDescs.appendViewCriteria(promDescc)
promDescs.executeQuery()
def promEditable='N'
def detEditable='N'
def difEditable='N'
def descEditable='N'
def promDescId
def detId
def difId
def descId
def promDescCount=0
def curPromDesc
while(promDescs.hasNext()&&promDescCount <=1){
def promDesc=promDescs.next()
if(promDescId==null){
promDescId=promDesc.Id
curPromDesc=promDesc
detEditable=nvl(promDesc.DetalleEditable_c,'N')
difEditable=nvl(promDesc.DiferirEditable_c,'N')
descEditable=nvl(promDesc.DescuentoEditable_c,'N')
detId=promDesc.Detalle_Id_c
difId=promDesc.Diferir_Id_c
descId=promDesc.Descuento_Id_c
}
promDescCount+=1
}
if(promDescCount>1){
promEditable='Y'
}
setAttribute('DescuentoMasivoDin_Id_c',promDescId)
setAttribute('PromocionEditable_c',promEditable)
setAttribute('Detalle_Id_c',detId)
setAttribute('Diferir_Id_c',difId)
setAttribute('DescuentoDin_Id_c',descId)
setAttribute('DetalleEditable_c',detEditable)
setAttribute('DiferirEditable_c',difEditable)
setAttribute('DescuentoEditable_c',descEditable)
}*/
def totalEquipos=0
def totalPromociones=0
def totalInstalacion=0
def totalServicios=0
def mensualEquipos=0
def mensualPromociones=0
def mensualInstalacion=0
def mensualServicios=0
def promServs=newView('PromocionesYServicios_c')
def promServc=newViewCriteria(promServs)
def promServr=promServc.createRow()
def promServi=promServr.ensureCriteriaItem('Oportunidad_Id_c')
promServi.setOperator('=')
promServi.setValue(OptyId)
def promServj=promServr.ensureCriteriaItem('Seleccionar_c')
promServj.setOperator('=')
promServj.setValue('Y')
promServc.insertRow(promServr)
promServs.appendViewCriteria(promServc)
promServs.executeQuery()
def map=[:]
def promList=[]
while(promServs.hasNext()){
def promServ=promServs.next()
def promMap=[:]
def subtipo=promServ.Subtipo_c
// promServ.calcularPromocion()
def montoTotal=promServ.ValorTotal_c
def montoMensual=promServ.ValorMensual_c
if(subtipo=='Instalacion'){
totalInstalacion+=montoTotal
mensualInstalacion+=montoMensual
}
else if(subtipo=='Equipo'){
totalEquipos+=montoTotal
mensualEquipos+=montoMensual
}
else if(subtipo=='Servicio Adicional'){
totalServicios+=montoTotal
mensualServicios+=montoMensual
}
else if(subtipo=='Promocion'){
totalPromociones+=montoTotal
mensualPromociones+=montoMensual
}
promMap.put('subtipo',subtipo)
promMap.put('montoMensual',montoMensual)
promMap.put('montoTotal',montoTotal)
promMap.put('Desc',promServ.Descripcion_c)
promList.add(promMap)
}
//throw new oracle.jbo.ValidationException('promList:'+ promList)
totalEquipos=(totalEquipos as BigDecimal).setScale(2,BigDecimal.ROUND_HALF_UP)
totalPromociones=(totalPromociones as BigDecimal).setScale(2,BigDecimal.ROUND_HALF_UP)
totalInstalacion=(totalInstalacion as BigDecimal).setScale(2,BigDecimal.ROUND_HALF_UP)
totalServicios=(totalServicios as BigDecimal).setScale(2,BigDecimal.ROUND_HALF_UP)
setAttribute('TotalDeEquipos_c',totalEquipos)
setAttribute('TotalPromociones_c',totalPromociones)
setAttribute('TotalServiciosAdicionales_c',totalServicios)
setAttribute('ValorDeInstalacion_c',totalInstalacion)
setAttribute('EquiposMensual_c',mensualEquipos)
setAttribute('PromocionesMensual_c',mensualPromociones)
setAttribute('ServiciosAdicionalesMensual_c',mensualServicios)
setAttribute('InstalacionMensual_c',mensualInstalacion)
otización.')
CORPORATIVO'){
esDescuento_c=='Y'
nCada + ' y ' + maxCada+'. '
2,BigDecimal.ROUND_HALF_UP)
a de productos');
o_c')||isAttributeChanged('ValorDeInstalacion_c')||
{
Promociones){
gDecimal))
gDecimal))
gDecimal))
BigDecimal))
imal))
mal))
ntaje_c, 0 as BigDecimal))
Equipos) as
ensualPromociones+mensualEquipos) as
Y'
Object Name : ServicioNetplus_c
Object Name ServicioNetplus_c
Object Display Name Plural Servicios Netplus
Object Type Custom
Application Name CRM
Table Name MKT_REF_ENTITIES
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Custom Fields
Name Display Name Type Column Name
RecordName Código de Servicio OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
CurrencyCode Currency Code FCL CURRENCY_CODE
LastUpdatedBy Actualizado por OOTB LAST_UPDATED_BY
CreatedBy Creado por OOTB CREATED_BY
OraZcxOwner_c Owner DCL
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Rule1 Field Validation
Field Name : Oportunidad_Id_c
Object Workflows
Name Definition Name Event Point Description
ServicioNetplus_c_Standard Update
_Update
ServicioNetplus_c_Standard Create
_Create
ServicioNetplus_c_Standard Delete
_Delete
ServicioNetplus_c
Servicios Netplus
Custom
CRM
MKT_REF_ENTITIES
14
0
0
0
3
2
0
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
adf.source.isLookupIdValid('Oportunidad_Id_c',newValue)
ression
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
Object Name : ServiciosAdquiridos_c
Object Name ServiciosAdquiridos_c
Object Display Name Plural Servicios Adquiridos
Object Type Custom
Application Name CRM
Table Name SVC_REF_ENTITIES
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Custom Fields
Name Display Name Type Column Name
RecordName Servicios Name OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
CodigoDeServicioPromocion_c Código de Servicio Adicional o Pr Text EXTN_ATTRIBUTE_CHAR007
DetallePromocion_c Detalle (Promoción) Text EXTN_ATTRIBUTE_CHAR014
IdDetalleAsset_c Id Detalle Asset DCL
Object Workflows
Name Definition Name Event Point Description
ServiciosAdquiridos_c_Stan Update
dard_Update
ServiciosAdquiridos_c_Stan Create
dard_Create
ServiciosAdquiridos_c_Stan Delete
dard_Delete
Dynamic Layouts
Layout Name Active Role
Layout Yes
ServiciosAdquiridos_c
Servicios Adquiridos
Custom
CRM
SVC_REF_ENTITIES
25
0
0
0
3
2
1
adf.source.isLookupIdValid('IdDetalleAsset_Id_c',newValue)
Custom Fields
Name Display Name Type Column Name
RecordName Código OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
OLT_c OLT DCL
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Rule1 Field Validation
Field Name : Oportunidad_Id_c
Rule1 Field Validation
Field Name : OLT_Id_c
Object Workflows
Name Definition Name Event Point Description
Splitter_c_Standard_Create Create
Splitter_c_Standard_Delete Delete
Splitter_c_Standard_Update Update
Splitter_c
Splitters
Custom
CRM
SVC_REF_ENTITIES
16
0
0
0
3
3
0
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
adf.source.isLookupIdValid('Oportunidad_Id_c',newValue)
adf.source.isLookupIdValid('OLT_Id_c',newValue)
ption Disabled Actions Expression
No return
(oracle.apps.fnd.applcore.Profile.ge
No return
(oracle.apps.fnd.applcore.Profile.ge
No return
(oracle.apps.fnd.applcore.Profile.ge
Precision MaxLength Expression
80 80
0 0
1500 1500
18 18
15 15
64 64
64 64
1500 1500
18 18
200 200
1500 1500
10 10
18 18
32 32
64 64
0 0
ression
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
Object Name : Subestado_c
Object Name Subestado_c
Object Display Name Plural Eventos y Campañas
Object Type Custom
Application Name CRM
Table Name MOT_REF_ENTITIES
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Custom Fields
Name Display Name Type Column Name
RecordName Nombre OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
Corporativo_c Corporativo Checkbox EXTN_ATTRIBUTE_CHAR008
CurrencyCode Currency Code FCL CURRENCY_CODE
Masivo_c Masivo Checkbox EXTN_ATTRIBUTE_CHAR007
LastUpdatedBy Actualizado por OOTB LAST_UPDATED_BY
CreatedBy Creado por OOTB CREATED_BY
OraZcxOwner_c Owner DCL
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Object Workflows
Name Definition Name Event Point Description
Subestado_c_Standard_Crea Create
te
Subestado_c_Standard_Upd Update
ate
Subestado_c_Standard_Dele Delete
te
Dynamic Layouts
Layout Name Active Role
Administrador Yes ADMIN_GENERAL_PNT;
Subestado_c
Eventos y Campañas
Custom
CRM
MOT_REF_ENTITIES
14
0
0
0
3
1
1
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
ression
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
Object Name : Temporalidad_c
Object Name Temporalidad_c
Object Display Name Plural Temporalidad
Object Description carriedStartTime, carriedRecor
Object Type Custom
Application Name CRM
Table Name MKT_REF_ENTITIES
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Custom Fields
Name Display Name Type Column Name
RecordName Temporalidad OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
MontoPremium_c Monto Premium Currency EXTN_ATTRIBUTE_NUMBER018
DiasLead_c Días Lead Number EXTN_ATTRIBUTE_NUMBER015
CurrencyCode Currency Code FCL CURRENCY_CODE
LastUpdatedBy Actualizado por OOTB LAST_UPDATED_BY
DiasOportunidadMontoCero_c Días Oportunidad Monto Cero Number EXTN_ATTRIBUTE_NUMBER016
CreatedBy Creado por OOTB CREATED_BY
OraZcxOwner_c Owner DCL
Triggers
Name Type Trigger PointDescription Error Message
correrTemporalidad Object Trigger BeforeUpdate
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Object Functions
Name Parameters Return Type Privileged Visibility Description
Temporalida carriedStartTime- Map No Callable by
dOportunida Long,carriedRecor External
d ds-Long Systems
Temporalida carriedStartTime- Map No Default carriedStartTime,
dLead Long,carriedRecor carriedRecords
ds-Long
Temporalida carriedStartTime- Map No Callable by
dCuenta Long,carriedRecor External
ds-Long Systems
Temporalida carriedStartTime- Map No Callable by
dContacto Long,carriedRecor External
ds-Long Systems
correrTempo void No Callable by
ralidad External
Systems
Object Workflows
Name Definition Name Event Point Description
Temporalidad_c_Standard_ Update
Update
Temporalidad_c_Standard_ Delete
Delete
Temporalidad_c_Standard_ Delete
Delete
Temporalidad_c_Standard_C Create
reate
Temporalidad_c
Temporalidad
carriedStartTime, carriedRecords
Custom
CRM
MKT_REF_ENTITIES
31
0
1
15
3
1
0
Expression
def tipoTemporalidad=nvl(CorrerTemporalidadList_c,'')
def ejecutarTemporalidad=tipoTemporalidad!=''&&isAttributeChanged('CorrerTemporalidadList_c')
def startTime=now().time
def maxTime=45000 as Long
def nullDate= new java.sql.Date(1)
if(ejecutarTemporalidad){
setAttribute('CorrerTemporalidadList_c',null)
def outputMap=[:]
if(tipoTemporalidad=='CONTACTO'){
outputMap=TemporalidadContacto(startTime,0 as Long)
adf.util.reasignarListaClientes(outputMap['listaClientes'] as List)
}
else if(tipoTemporalidad=='CUENTA'){
outputMap=TemporalidadCuenta(startTime,0 as Long)
adf.util.reasignarListaClientes(outputMap['listaClientes'] as List)
}else if(tipoTemporalidad=='LEAD'){
outputMap=TemporalidadLead(startTime,0 as Long)
adf.util.reasignarListaClientes(outputMap['listaClientes'] as List)
}else if(tipoTemporalidad=='OPORTUNIDAD'){
outputMap=TemporalidadOportunidad(startTime,0 as Long)
adf.util.reasignarListaClientes(outputMap['listaClientes'] as List)
}
else if(tipoTemporalidad=='TODAS'){
correrTemporalidad()
}
}
else{
if(isAttributeChanged('ContabilizarOperacionesAbiertas_c')&&nvl(ContabilizarOperacionesAbiertas_c,'')!=''){
def tipo=nvl(ContabilizarOperacionesAbiertas_c,'')
// if(nvl(ContabilizarOperacionesAbiertas_c,'')!=''){
setAttribute('ContabilizarOperacionesAbiertas_c',null)
/* if(tipo=='PERSON'){
contabilizarOperacionesAbiertasContacto()
}
else if(tipo=='ORGANIZATION'){
contabilizarOperacionesAbiertasCuenta()
}
}*/
// deshacerTemporalidadMasivo()
}
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
tion Expression
adf.util.loadResourceProfileIdMap()
//Temporalidad Oportunidad
def startTime=now().time
if(nvl(carriedStartTime,0 as Long)!=0){
startTime=carriedStartTime
}
def elapsedTime=now().time-startTime
def maxTime=nvl(MaxTime_c,0 as BigDecimal)
def maxRecords=nvl(MaxRecords_c,0 as BigDecimal)
def processedCount=carriedRecords
def outputMap=[:]
def listaClientes=[]
if(elapsedTime<maxTime){
def optys=newView('OpportunityVO')
def optyc=newViewCriteria(optys)
def optyr=optyc.createRow()
def optyi=optyr.ensureCriteriaItem('DisponibleHasta_c')
optyi.setOperator('<')
optyi.setValue(today())
def optyj=optyr.ensureCriteriaItem('EstadoDeTemporalidad_c')
optyj.setOperator('=')
optyj.setValue('ACTIVA')
def optym= optyr.ensureCriteriaItem('AreaComercial_c')
optym.setOperator('=')
optym.setValue('CORPORATIVO')
recordMap.put('Name',opty.Name)
recordMap.put('filaValida',opty.filaValida())
recordMap.put('statusCode',statusCode)
recordMap.put('registroIntegrado',registroIntegrado)
listaRegistros.add(recordMap)
if(opty.filaValida() && statusCode=='OPEN' && !registroIntegrado){
elapsedTime=now().time-startTime
def lista=opty.aplicarReglasTemporalidad()
elapsedTime=now().time-startTime
listaClientes+=lista
processedCount+=1
}
else{
elapsedTime=now().time-startTime
}
elapsedTime=now().time-startTime
}
println('listaClientes'+listaClientes)
def map=[:]
map.put('processedCount',processedCount)
map.put('totalCount',totalCount)
map.put('listaOportunidades', listaRegistros)
println('temporalidad oportunidad:'+map)
}
outputMap.put('elapsedTime',elapsedTime)
outputMap.put('processedCount',processedCount)
outputMap.put('listaClientes',listaClientes)
println(outputMap)
return outputMap
artTime, adf.util.loadResourceProfileIdMap()
cords def startTime=now().time
if(nvl(carriedStartTime,0 as Long)!=0){
startTime=carriedStartTime
}
def elapsedTime=now().time-startTime
def maxTime=nvl(MaxTime_c,0 as BigDecimal)
def maxRecords=nvl(MaxRecords_c,0 as BigDecimal)
def processedCount=carriedRecords
def listaClientes=[]
def outputMap=[:]
if(elapsedTime<maxTime){
def leads=newView('Lead')
def leadc=newViewCriteria(leads)
def leadcr=leadc.createRow()
def leadci=leadcr.ensureCriteriaItem('DisponibleHasta_c')
leadci.setOperator('<')
leadci.setValue(today())
def leadcj=leadcr.ensureCriteriaItem('EstadoDeTemporalidad_c')
leadcj.setOperator('=')
leadcj.setValue('ACTIVA')
def leadm=leadcr.ensureCriteriaItem('TipoCM_c')
leadm.setOperator('=')
leadm.setValue('CORPORATIVO')
leadc.insertRow(leadcr)
leads.appendViewCriteria(leadc)
leads.setMaxFetchSize(5000)
leads.executeQuery()
def ids='['
def totalCount=0
elapsedTime=now().time-startTime
def listaLeads=[]
while(leads.hasNext()&&elapsedTime<maxTime&&processedCount<maxRecords){
def lead=leads.next()
def areaComercial=nvl(lead.TipoCM_c,'')
def status=lead.StatusCode
if(lead.leadValido()&&(status=='QUALIFIED'||status=='UNQUALIFIED')){
def lista=lead.aplicarReglasTemporalidad()
//la expresión dentro del if es equivalente a lista.size()>0
def leadMap=[:]
leadMap.put('Name',lead.Name)
leadMap.put('Contact',lead.PrimaryContactName)
leadMap.put('Cuenta',lead.Cuenta_c)
listaLeads.add(leadMap)
elapsedTime=now().time-startTime
listaClientes+=lista
processedCount+=1
}
elapsedTime=now().time-startTime
totalCount+=1
}
def map=[:]
map.put('listaLeads',listaLeads)
map.put('processedCount',processedCount)
map.put('totalCount',totalCount)
println('temporalidad lead:'+map)
outputMap.put('elapsedTime',elapsedTime)
outputMap.put('processedCount',processedCount)
outputMap.put('listaClientes',listaClientes)
println(outputMap)
return outputMap
adf.util.loadResourceProfileIdMap()
def startTime=now().time
if(nvl(carriedStartTime,0 as Long)!=0){
startTime=carriedStartTime
}
def elapsedTime=now().time-startTime
def processedCount=carriedRecords
def maxTime=nvl(MaxTime_c,0 as BigDecimal)
def maxRecords=nvl(MaxRecords_c,0 as BigDecimal)
def outputMap=[:]
def listaClientes=[]
if(elapsedTime<maxTime){
def orgs=newView('OrganizationProfile')
def orgc=newViewCriteria(orgs)
def orgcr=orgc.createRow()
def orgci=orgcr.ensureCriteriaItem('DisponibleHasta_c')
orgci.setOperator('<')
orgci.setValue(today())
def orgcj=orgcr.ensureCriteriaItem('EstadoDeTemporalidad_c')
orgcj.setOperator('=')
orgcj.setValue('ACTIVA')
def orgm=orgcr.ensureCriteriaItem('AreaComercial_c')
orgm.setOperator('=')
orgm.setValue('CORPORATIVO')
orgc.insertRow(orgcr)
orgs.appendViewCriteria(orgc)
orgs.setMaxFetchSize(5000)
orgs.executeQuery()
def ids='['
def totalCount=0
elapsedTime=now().time-startTime
println('elapsedTime: ' + elapsedTime + ',maxTime: ' + maxTime + ',processedCount: ' + processedCount +',maxRec
while(orgs.hasNext()&&elapsedTime<maxTime&&processedCount<maxRecords){
def org=orgs.next()
def areaComercial=nvl(org.AreaComercial_c,'')
if(areaComercial ==''){
org.setAttribute('AreaComercial_c','CORPORATIVO')
}
if(org.OrganizationName!='NO UTILIZAR'){
def lista=org.aplicarReglasTemporalidad()
//la expresión dentro del if es equivalente a lista.size()>0
listaClientes+=lista
processedCount+=1
}
elapsedTime=now().time-startTime
totalCount+=1
}
def map=[:]
map.put('processedCount',processedCount)
map.put('totalCount',totalCount)
map.put('elapsedTime',elapsedTime)
println('temporalidad cuenta:'+map)
}
outputMap.put('elapsedTime',elapsedTime)
outputMap.put('processedCount',processedCount)
outputMap.put('listaClientes',listaClientes)
return outputMap
adf.util.loadResourceProfileIdMap()
def startTime=now().time
if(nvl(carriedStartTime,0 as Long)!=0){
startTime=carriedStartTime
}
def elapsedTime=now().time-startTime
def maxTime=nvl(MaxTime_c,0 as BigDecimal)
def maxRecords=nvl(MaxRecords_c,0 as BigDecimal)
def processedCount=carriedRecords
def listaClientes=[]
def outputMap=[:]
if(elapsedTime<maxTime){
def persons=newView('PersonProfile')
def personc=newViewCriteria(persons)
def personcr=personc.createRow()
def personci=personcr.ensureCriteriaItem('DisponibleHasta_c')
personci.setOperator('<')
personci.setValue(today())
def personcj=personcr.ensureCriteriaItem('EstadoDeTemporalidad_c')
personcj.setOperator('=')
personcj.setValue('ACTIVA')
def personck=personcr.ensureCriteriaItem('SalesProfileType')
personck.setOperator('=')
personck.setValue('ZCA_PROSPECT')
def personcl=personcr.ensureCriteriaItem('CodigoNetPlus_c')
personcl.setOperator('ISBLANK')
def personm=personcr.ensureCriteriaItem('AreaComercial_c')
personm.setOperator('=')
personm.setValue('CORPORATIVO')
personc.insertRow(personcr)
persons.appendViewCriteria(personc)
persons.setMaxFetchSize(5000)
persons.executeQuery()
def ids='['
def totalCount=0
elapsedTime=now().time-startTime
while(persons.hasNext()&&elapsedTime<maxTime&&processedCount<maxRecords){
def person=persons.next()
def areaComercial=nvl(person.AreaComercial_c,'')
if(areaComercial ==''){
person.setAttribute('AreaComercial_c','CORPORATIVO')
}
if(person.filaValida()&&areaComercial!='CORPORATIVO'&&person.PersonFirstName!='NO UTILIZAR'){
def lista=person.aplicarReglasTemporalidad()
//la expresión dentro del if es equivalente a lista.size()>0
if(lista){
listaClientes+=lista
processedCount+=1
}
}
elapsedTime=now().time-startTime
totalCount+=1
}
def map=[:]
map.put('processedCount',processedCount)
map.put('totalCount',totalCount)
println('temporalidad contacto:'+map)
outputMap.put('elapsedTime',elapsedTime)
outputMap.put('processedCount',processedCount)
outputMap.put('listaClientes',listaClientes)
println(outputMap)
return outputMap
println('outputMap:'+outputMap)
return outputMap
def startTime=now().time as Long
def maxTime=45000 as Long
def listaClientes=[]
def outputMap=TemporalidadOportunidad(startTime,0 as Long)
listaClientes+=outputMap['listaClientes']
def records=outputMap['processedCount'] as Long
outputMap=TemporalidadLead(startTime,records)
listaClientes+=outputMap['listaClientes']
records=outputMap['processedCount'] as Long
outputMap=TemporalidadCuenta(startTime,records)
listaClientes+=outputMap['listaClientes']
records=outputMap['processedCount'] as Long
outputMap=TemporalidadContacto(startTime,records)
listaClientes+=outputMap['listaClientes']
adf.util.reasignarListaClientes(outputMap['listaClientes'] as List)
def startTime=now().time
def nullDate=new java.sql.Date(date(1950,01,01).time)//year, month, day
def fechaInicial=nvl(UltimaFechaCorregida_c,nullDate)-1
def fechaPivote=new java.sql.Date(date(2021,02,01).time)
def fechaFinal
if(fechaInicial+30<fechaPivote){
fechaFinal=fechaPivote
}
else{
fechaFinal=today()+1
}
def contacts=newView('PersonProfile')
def contactc=newViewCriteria(contacts)
def contactr=contactc.createRow()
def contacti=contactr.ensureCriteriaItem('SalesProfileType')
contacti.setOperator('=')
contacti.setValue('ZCA_PROSPECT')
def contactj=contactr.ensureCriteriaItem('AreaComercial_c')
contactj.setOperator('=')
contactj.setValue(RecordName)
def contactk=contactr.ensureCriteriaItem('CreationDate')
contactk.setOperator('ONORBEFORE')
contactk.setValue(fechaFinal)
def contactl=contactr.ensureCriteriaItem('CreationDate')
contactl.setOperator('ONORAFTER')
contactl.setValue(fechaInicial)
println('fechaInicial: '+fechaInicial)
contactc.insertRow(contactr)
contacts.appendViewCriteria(contactc)
contacts.setMaxFetchSize(100000)
contacts.setSortBy('CreationDate asc')
contacts.executeQuery()
def maxRecords=nvl(MaxRecords_c,0 as BigDecimal) as Long
def maxTime=nvl(MaxTime_c,0 as BigDecimal) as Long
def elapsedTime=now().time-startTime
def currentRecords=0
def clientesMap=[:]
def lastCreationDate
while(contacts.hasNext() && elapsedTime<maxTime/2 && currentRecords<maxRecords){
def contact=contacts.next()
def partyId=contact.PartyId as String
def datosCliente=[:]
datosCliente.put('Row',contact)
datosCliente.put('LeadsAbiertos',0)
datosCliente.put('OportunidadesAbiertas',0)
datosCliente.put('TipoCliente','PERSON')
datosCliente.put('CreationDate',contact.CreationDate)
clientesMap.put(partyId,datosCliente)
elapsedTime=now().time-startTime
currentRecords+=1
lastCreationDate=contact.CreationDate
}
println('countRecords:' + currentRecords)
println('clientesMap:'+clientesMap)
contarOperacionesAbiertas(clientesMap)
setAttribute('UltimaFechaCorregida_c',lastCreationDate)
def startTime=now().time
def nullDate=new java.sql.Date(date(1950,01,01).time)//year, month, day
def fechaInicial=nvl(UltimaFechaCorregidaCuenta_c,nullDate)-1
def fechaFinal=fechaInicial+30
def orgs=newView('OrganizationProfile')
def orgc=newViewCriteria(orgs)
def orgr=orgc.createRow()
def orgi=orgr.ensureCriteriaItem('SalesProfileType')
orgi.setOperator('=')
orgi.setValue('ZCA_PROSPECT')
def orgj=orgr.ensureCriteriaItem('AreaComercial_c')
orgj.setOperator('=')
orgj.setValue(RecordName)
def orgk=orgr.ensureCriteriaItem('CreationDate')
orgk.setOperator('ONORBEFORE')
orgk.setValue(fechaFinal)
def orgl=orgr.ensureCriteriaItem('CreationDate')
orgl.setOperator('ONORAFTER')
orgl.setValue(fechaInicial)
orgc.insertRow(orgr)
orgs.appendViewCriteria(orgc)
orgs.setMaxFetchSize(100000)
orgs.executeQuery()
def maxRecords=nvl(MaxRecords_c,0 as BigDecimal) as Long
def maxTime=nvl(MaxTime_c,0 as BigDecimal) as Long
def elapsedTime=now().time-startTime
def currentRecords=0
def clientesMap=[:]
def lastCreationDate=fechaInicial
def countInside=0
def countOutside=0
def earliestCreationDate=fechaFinal
while(orgs.hasNext()){
def org=orgs.next()
if(org.CreationDate < fechaFinal){
def partyId=org.PartyId as String
def datosCliente=[:]
datosCliente.put('Row',org)
datosCliente.put('LeadsAbiertos',0)
datosCliente.put('OportunidadesAbiertas',0)
datosCliente.put('TipoCliente','ORGANIZATION')
datosCliente.put('CreationDate',org.CreationDate)
clientesMap.put(partyId,datosCliente)
elapsedTime=now().time-startTime
currentRecords+=1
if(org.CreationDate>lastCreationDate){
lastCreationDate=org.CreationDate
}
countInside+=1
}
countOutside+=1
if(earliestCreationDate>org.CreationDate){
earliestCreationDate=org.CreationDate
}
}
if(lastCreationDate==fechaInicial){
lastCreationDate=fechaFinal
}
contarOperacionesAbiertas(clientesMap)
setAttribute('UltimaFechaCorregidaCuenta_c',lastCreationDate)
println('CountInside, CountOutside: ' + countInside+ ', ' + countOutside+ 'fechaInicial;' + fechaInicial +'FechaFinal;' +
earliestCreationDate:' + earliestCreationDate)
def startTime=now().time
def printMap=[:]
def leads=newView('Lead')
def leadc=newViewCriteria(leads)
def optys=newView('OpportunityVO')
def optyc=newViewCriteria(optys)
def countClientes=0
def listaClientes=mapClientes.keySet()
for(customerId in listaClientes){
if(countClientes==0){
println('listaClientes:'+listaClientes)
}
def datosCliente=mapClientes[customerId]
def tipoCliente=nvl(datosCliente['TipoCliente'] as String,'')
def leadField=''
if(tipoCliente=='PERSON'){
leadField='PrimaryContactId'
}
if(tipoCliente=='ORGANIZATION'){
leadField='Cuenta_Id_c'
}
if(customerId!=0){
def leadr=leadc.createRow()
def leadi=leadr.ensureCriteriaItem(leadField)
leadi.setOperator('=')
leadi.setValue(customerId)
leadi.setConjunction(0)
leadc.insertRow(leadr)
def optyr=optyc.createRow()
def optyi=optyr.ensureCriteriaItem('TargetPartyId')
optyi.setOperator('=')
optyi.setValue(customerId)
optyc.insertRow(optyr)
countClientes+=1
}
}
println('pAsé el primer bucle')
def optyList=[]
def leadList=[]
def idGenericoMasivo=adf.util.usuarioGenericoMasivo()
def idGenericoCorporativo=adf.util.usuarioGenericoCorporativo()
if(countClientes>0){
//contarLeadsAbiertos
leads.appendViewCriteria(leadc)
leads.executeQuery()
println('previo a contar leads')
while(leads.hasNext()){
def map=[:]
def lead=leads.next()
def clienteId=0
def tipoCliente=lead.TipoCliente_c
def statusCode=lead.StatusCode
def statusActivo=statusCode=='QUALIFIED' || statusCode=='UNQUALIFIED'
if(statusActivo){
if(tipoCliente=='PERSON'){
clienteId=lead.PrimaryContactId as String
}
else if(tipoCliente=='ORGANIZATION'){
clienteId=lead.Cuenta_Id_c as String
}
def datosCliente=mapClientes[clienteId] as Map
if(datosCliente!=null && lead.OwnerPartyId!= idGenericoMasivo && lead.OwnerPartyId!= idGenericoCorporativ
//println('Lead: '+ lead.LeadNumber +',clienteId: '+ clienteId + ',datosCliente: '+ datosCliente)
def leadsAbiertos=nvl(datosCliente['LeadsAbiertos'] as Long,0 as Long)
leadsAbiertos+=1
datosCliente.put('LeadsAbiertos',leadsAbiertos)
}
}
}
optys.appendViewCriteria(optyc)
optys.executeQuery()
println('previo a contar optys')
while(optys.hasNext()){
def opty=optys.next()
if(opty.StatusCode=='OPEN' && opty.OwnerResourcePartyId!= idGenericoMasivo && opty.OwnerResourcePartyI
def clienteId=opty.TargetPartyId as String
def datosCliente=mapClientes[clienteId] as Map
def optysAbiertas=nvl(datosCliente['OportunidadesAbiertas'] as Long,0 as Long)
optysAbiertas+=1
datosCliente.put('OportunidadesAbiertas',optysAbiertas)
}
}
for(customerId in listaClientes){
def datosCliente=mapClientes[customerId] as Map
def row=datosCliente['Row']
def leadsAbiertos=nvl(datosCliente['LeadsAbiertos'] as Long,0 as Long)
def optysAbiertas=nvl(datosCliente['OportunidadesAbiertas'] as Long,0 as Long)
def nullDate= new java.sql.Date(1)
if(nvl(row.DisponibleHasta_c,nullDate)==nullDate && leadsAbiertos==0 && optysAbiertas==0){
row.setAttribute('DisponibleHasta_c', today()-2)
}
row.setAttribute('LeadsAbiertos_c',leadsAbiertos)
row.setAttribute('OportunidadesAbiertas_c',optysAbiertas)
}
printMap.put('leads',leadList)
printMap.put('optys',optyList)
printMap.put('mapClientesOwners',mapClientes)
def elapsedTime=now().time - startTime
printMap.put('elapsedTime',elapsedTime)
println(''+printMap)
}
def temps=newView('Temporalidad_c')
temps.executeQuery()
def exit=false
while(temps.hasNext()&& !exit){
def temp=temps.next()
if(nvl(temp.RecordName,'')=='CORPORATIVO'){
temp.correrTemporalidad()
exit=true
}
}
def temps=newView('Temporalidad_c')
def tempc=newViewCriteria(temps)
def tempr=tempc.createRow()
def tempi=tempr.ensureCriteriaItem('RecordName')
tempi.setOperator('=')
tempi.setValue('CORPORATIVO')
tempc.insertRow(tempr)
temps.appendViewCriteria(tempc)
temps.executeQuery()
while(temps.hasNext()){
def temp=temps.next()
if(temp.RecordName=='CORPORATIVO'){
temp.contabilizarOperacionesAbiertasContacto()
}
}
def temps=newView('Temporalidad_c')
def tempc=newViewCriteria(temps)
def tempr=tempc.createRow()
def tempi=tempr.ensureCriteriaItem('RecordName')
tempi.setOperator('=')
tempi.setValue('CORPORATIVO')
tempc.insertRow(tempr)
temps.appendViewCriteria(tempc)
temps.executeQuery()
while(temps.hasNext()){
def temp=temps.next()
if(temp.RecordName=='CORPORATIVO'){
temp.contabilizarOperacionesAbiertasCuenta()
}
}
def leads=newView('Lead')
def leadc=newViewCriteria(leads)
def leadr=leadc.createRow()
def leadi=leadr.ensureCriteriaItem('TipoCM_c')
leadi.setOperator('=')
leadi.setValue('MASIVO')
def leadj=leadr.ensureCriteriaItem('OwnerId')
leadj.setOperator('=')
leadj.setValue(adf.util.usuarioGenericoMasivo())
def leadk=leadr.ensureCriteriaItem('UsuarioDesasignado_Id_c')
leadk.setOperator('ISNOTBLANK')
def leadm=leadr.ensureCriteriaItem('PrimaryContactId')
leadm.setOperator('ISBLANK')
def leadn=leadr.ensureCriteriaItem('Cuenta_Id_c')
leadn.setOperator('ISBLANK')
leadc.insertRow(leadr)
leads.appendViewCriteria(leadc)
leads.setMaxFetchSize(5000)
leads.executeQuery()
def outputList=[]
while(leads.hasNext()){
def lead=leads.next()
if(lead.UsuarioDesasignado_Obj_c!=null){
lead.setAttribute('OwnerId',lead.UsuarioDesasignado_Obj_c?.PartyId)
lead.setAttribute('UsuarioDesasignado_Id_c',null)
def leadMap=[:]
leadMap.put('leadNumber',lead.LeadNumber)
leadMap.put('LeadName',lead.Name)
leadMap.put('OwnerId',lead.OwnerId)
leadMap.put('OwnerPartyName',lead.OwnerPartyName)
leadMap.put('TipoCM_c',lead.TipoCM_c)
leadMap.put('PrimaryContactId',lead.PrimaryContactId)
leadMap.put('Cuenta_Id_c',lead.Cuenta_Id_c)
outputList.add(leadMap)
}
}
println('OutputMap:'+outputList)
adf.util.loadResourceProfileIdMap()
//Temporalidad Oportunidad
def curDate=now()
def curDateTz=adf.util.nowSqlTZ()
println('curDate: '+ curDate+', curDateTz: ' + curDateTz)
def startTime=now().time
def elapsedTime=now().time-startTime
def maxTime=nvl(MaxTime_c,0 as BigDecimal)
def maxRecords=nvl(MaxRecords_c,0 as BigDecimal)
def processedCount=0
def outputMap=[:]
def listaClientes=[]
if(elapsedTime<maxTime){
def optys=newView('OpportunityVO')
def optyc=newViewCriteria(optys)
def optyr=optyc.createRow()
def optyi=optyr.ensureCriteriaItem('FechaVentaBruta_c')
optyi.setOperator('ONORBEFORE')
optyi.setValue(adf.util.nowSqlTZ()-60)
def optym= optyr.ensureCriteriaItem('AreaComercial_c')
optym.setOperator('=')
optym.setValue('CORPORATIVO')
def optyn= optyr.ensureCriteriaItem('StatusCode')
optyn.setOperator('=')
optyn.setValue('OPEN')
optyc.insertRow(optyr)
optys.appendViewCriteria(optyc)
optys.setMaxFetchSize(5000)
optys.executeQuery()
def totalCount=0
elapsedTime=now().time-startTime
def listaRegistros=[]
while(optys.hasNext()&&processedCount<48){
def recordMap=[:]
totalCount+=1
elapsedTime=now().time-startTime
def opty=optys.next()
def statusCode=opty.StatusCode
if(opty.filaValida()){
opty.getAssets()
elapsedTime=now().time-startTime
processedCount+=1
recordMap.put('Name',opty.Name)
listaRegistros.add(recordMap)
}
else{
elapsedTime=now().time-startTime
}
elapsedTime=now().time-startTime
}
println('listaClientes'+listaClientes)
def map=[:]
map.put('processedCount',processedCount)
map.put('totalCount',totalCount)
map.put('listaOportunidades', listaRegistros)
println('temporalidad oportunidad:'+map)
}
outputMap.put('elapsedTime',elapsedTime)
outputMap.put('processedCount',processedCount)
outputMap.put('listaClientes',listaClientes)
println(outputMap)
def temps=newView('Temporalidad_c')
def tempc=newViewCriteria(temps)
def tempr=tempc.createRow()
def tempi=tempr.ensureCriteriaItem('RecordName')
tempi.setOperator('=')
tempi.setValue('CORPORATIVO')
tempc.insertRow(tempr)
temps.appendViewCriteria(tempc)
temps.executeQuery()
while(temps.hasNext()){
def temp=temps.next()
if(temp.RecordName=='CORPORATIVO'){
temp.instalacionNoConcretada()
}
}
def cuentas=newView('OrganizationProfile')
def cuentac=newViewCriteria(cuentas)
def cuentar=cuentac.createRow()
def cuentai=cuentar.ensureCriteriaItem('TimestampTotalContratos_c')
cuentai.setOperator('=')
cuentai.setValue(0)
def cuentaPS = cuentar.ensureCriteriaItem('PartyStatus')
cuentaPS.setOperator('=')
cuentaPS.setValue('A')
cuentac.insertRow(cuentar)
cuentas.appendViewCriteria(cuentac)
cuentas.setMaxFetchSize(47)
cuentas.executeQuery()
java.util.Map clientesMap=[:]
while(cuentas.hasNext()){
def cuenta=cuentas.next()
java.util.Map currentMap=[:]
currentMap.put('row',cuenta)
currentMap.put('ConsiderarComoCliente_c','N')
currentMap.put('optysAbiertas',0)
currentMap.put('leadsAbiertos',0)
clientesMap.put(cuenta.PartyId,currentMap)
}
adf.util.regularizarClienteMap(clientesMap)
No return
(oracle.apps.fnd.applcore.Profile.ge
Precision MaxLength Expression
80 80
0 0
10 10
10 10
15 15
64 64
10 10
64 64
1500 1500
1500 1500
10 10
18 18
10 10
10 10
10 10
32 32
0 0
10 10
64 64
10 10
80 80
10 10
1500 1500
10 10
1500 1500
0 0
10 10
10 10
10 10
1500 1500
0 0
c')
as_c,'')!=''){
cords){
_c,'')!='' || nvl(opty.CodigoNetplusDelCliente_c,'')!=''
' + processedCount +',maxRecords: ' + maxRecords)
='NO UTILIZAR'){
ds){
;' + fechaInicial +'FechaFinal;' + fechaFinal + ',
artyId!= idGenericoCorporativo){
atosCliente)
&& opty.OwnerResourcePartyId!= idGenericoCorporativo){
biertas==0){
ression
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
Object Name : UltimaMillaNetplus_c
Object Name UltimaMillaNetplus_c
Object Display Name Plural Últimas Millas Netplus
Object Type Custom
Application Name CRM
Table Name ZCA_REF_ENTITIES
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Custom Fields
Name Display Name Type Column Name
RecordName Código de Última Milla OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
Plan_c Plan DCL
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Rule1 Field Validation
Field Name : Oportunidad_Id_c
Rule1 Field Validation
Field Name : Plan_Id_c
Object Workflows
Name Definition Name Event Point Description
UltimaMillaNetplus_c_Stand Update
ard_Update
UltimaMillaNetplus_c_Stand Delete
ard_Delete
UltimaMillaNetplus_c_Stand Create
ard_Create
UltimaMillaNetplus_c
Últimas Millas Netplus
Custom
CRM
ZCA_REF_ENTITIES
16
0
0
0
3
3
0
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
adf.source.isLookupIdValid('Oportunidad_Id_c',newValue)
adf.source.isLookupIdValid('Plan_Id_c',newValue)
ption Disabled Actions Expression
No return
(oracle.apps.fnd.applcore.Profile.ge
No return
(oracle.apps.fnd.applcore.Profile.ge
No return
(oracle.apps.fnd.applcore.Profile.ge
Precision MaxLength Expression
80 80
0 0
1500 1500
15 15
64 64
64 64
1500 1500
18 18
18 18
80 80
1500 1500
10 10
18 18
32 32
64 64
0 0
ression
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
Object Name : VariablesDeSistema_c
Object Name VariablesDeSistema_c
Object Display Name Plural Variables de sistema
Object Type Custom
Application Name CRM
Table Name MOO_REF_ENTITIES
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Custom Fields
Name Display Name Type Column Name
RecordName Código de variable OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
ValorEntero_c Valor Numérico Number EXTN_ATTRIBUTE_NUMBER006
Valor_c Valor Text EXTN_ATTRIBUTE_CHAR007
CurrencyCode Currency Code FCL CURRENCY_CODE
DescripcionDeVariable_c Descripción de variable Text EXTN_ATTRIBUTE_CHAR008
LastUpdatedBy Actualizado por OOTB LAST_UPDATED_BY
CreatedBy Creado por OOTB CREATED_BY
OraZcxOwner_c Owner DCL
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Object Functions
Name Parameters Return Type Privileged Visibility Description
regularizarC void No Callable by
ontactos External
Systems
ontactos External
Systems
Object Workflows
Name Definition Name Event Point Description
VariablesDeSistema_c_Stan Update
dard_Update
VariablesDeSistema_c_Stan Create
dard_Create
VariablesDeSistema_c_Stan Delete
dard_Delete
VariablesDeSistema_c
Variables de sistema
Custom
CRM
MOO_REF_ENTITIES
13
0
0
1
3
1
0
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
tion Expression
def persons=newView('PersonProfile')
def personc=newViewCriteria(persons)
def personr=personc.createRow()
/*
def personi=personr.ensureCriteriaItem('JgzzFiscalCode')
personi.setOperator('ISBLANK')
def personj=personr.ensureCriteriaItem('NumeroDeCedula_c')
personj.setOperator('ISBLANK')
def personk=personr.ensureCriteriaItem('NumeroDePasaporte_c')
personk.setOperator('ISBLANK')*/
def personl=personr.ensureCriteriaItem('RegularizarContact_c')
personl.setOperator('ISBLANK')
def personm=personr.ensureCriteriaItem('AreaComercial_c')
personm.setOperator('ISBLANK')
def personn=personr.ensureCriteriaItem('SalesProfileType')
personn.setOperator('ISNOTBLANK')
personc.insertRow(personr)
persons.appendViewCriteria(personc)
persons.setMaxFetchSize(50000)
def recordCount=0
def updatedCount=0
def cumpleCondicionCount=0
def maxUpdatedCount=300
def timestamp=now().time
def maxTime=45000
def elapsedTime=now().time-timestamp
while(persons.hasNext() && elapsedTime< maxTime){
def person=persons.next()
def ruc=nvl(person.JgzzFiscalCode,'')
def ced=nvl(person.NumeroDeCedula_c,'')
def usages=person.PartyUsageAssignment
def salesProspect=false
while(usages.hasNext()&&salesProspect==false){
def usage=usages.next()
if(usage.PartyUsageCode=='SALES_PROSPECT' ||usage.PartyUsageCode=='SALES_ACCOUNT' ){
salesProspect=true
}
}
if(nvl(person.AreaComercial_c,'')=='' &&person.PartyId!=300000002076614 &&salesProspect){
cumpleCondicionCount+=1
if(updatedCount<maxUpdatedCount){
person.setAttribute('RegularizarContact_c',timestamp)
updatedCount+=1
}
}
recordCount+=1
elapsedTime=now().time-timestamp
}
def map=[:]
map.put('recordCount',recordCount)
map.put('cumpleCondicionCount',cumpleCondicionCount)
map.put('updatedCount',updatedCount)
map.put('elapsedTime',elapsedTime)
println(''+map)
Prospect){
ression
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
rn
cle.apps.fnd.applcore.Profile.get('ZCX_CUSTOM_OBJECT_EVENTS') ==
Object Name : VarReglasAsignacionLeads_c
Object Name VarReglasAsignacionLeads_c
Object Display Name Plural Consolas de Asignación de Le
Object Type Custom
Application Name CRM
Table Name MKT_REF_ENTITIES
Record Name Sequence {000000}
Total number of custom fields
Total number of modified Standard fields
Total number of Triggers
Total number of Object Functions
Total number of Object Workflows
Total number of Validations
Total number of Dynamic Layouts
Custom Fields
Name Display Name Type Column Name
RecordName Consola OOTB RECORD_NAME
CreationDate Fecha de Creación OOTB CREATION_DATE
Status_c Status FCL EXTN_ATTRIBUTE_CHAR009
MinimoDeLead_c Mínimo de Leads Number EXTN_ATTRIBUTE_NUMBER006
CantidadLeadsAsignados_c Cantidad de leads asignados Number EXTN_ATTRIBUTE_NUMBER014
CurrencyCode Currency Code FCL CURRENCY_CODE
LastUpdatedBy Actualizado por OOTB LAST_UPDATED_BY
CreatedBy Creado por OOTB CREATED_BY
OraZcxOwner_c Owner DCL
Triggers
Name Type Trigger PointDescription Error Message
ejecutarAsignacion Object Trigger BeforeUpdate
ejecutarAsignacion Object Trigger BeforeUpdate
Validations
Name Type Error Message
Rule1 Field Validation
Field Name : OraZcxOwner_Id_c
Object Functions
Name Parameters Return Type Privileged Visibility Description
asignacionM void No Callable by
asiva External
Systems
Dynamic Layouts
Layout Name Active Role
Jefatura Televentas Yes PTN_PTN_ZPM_PARTNER_SALES_MANAGER_JOB_Co
Jefatura Televentas Yes nsAsigLeads_CUSTOM;
PTN_PTN_ZPM_PARTNER_SALES_MANAGER_JOB_Co
nsAsigLeads_CUSTOM;
VarReglasAsignacionLeads_c
Consolas de Asignación de Leads
Custom
CRM
MKT_REF_ENTITIES
{000000}
19
0
1
2
3
1
2
Expression
if(isAttributeChanged('EjecutarAsignacion_c')&&EjecutarAsignacion_c=='Y'){
solicitarAsignacion()
}
Expression
adf.source.isLookupIdValid('OraZcxOwner_Id_c',newValue)
tion Expression
def consolas=newView('VarReglasAsignacionLeads_c')
consolas.executeQuery()
while(consolas.hasNext()){
def consola=consolas.next()
consola.solicitarAsignacion()
}
def today=today()
def anio=year(today)
def mes=month(today)
def amls=newView('AsignacionMensualLeads_c')
def amlc=newViewCriteria(amls)
def amlr=amlc.createRow()
def amli=amlr.ensureCriteriaItem('Mes_c')
amli.setOperator('=')
amli.setValue(mes)
def amlj=amlr.ensureCriteriaItem('Anio_c')
amlj.setOperator('=')
amlj.setValue(anio)
def amlk=amlr.ensureCriteriaItem('VariablesOrigen_Id_c')
amlk.setOperator('=')
amlk.setValue(Id)
def amlm=amlr.ensureCriteriaItem('AsignacionActiva_c')
amlm.setOperator('=')
amlm.setValue('Y')
amlc.insertRow(amlr)
amls.appendViewCriteria(amlc)
amls.executeQuery()
def existeAsignacionMensual=false
def aml
while(amls.hasNext()&&!existeAsignacionMensual){
aml=amls.next()
existeAsignacionMensual=true
}
if(!existeAsignacionMensual){
aml=amls.createRow()
aml.setAttribute('BolsaDeLeadsARepartir_c',BolsaDeLeadsARepartir_c as Long)
aml.setAttribute('MinimoDeLead_c',MinimoDeLead_c as Long)
aml.setAttribute('NumeroDeMeses_c',NumeroDeMeses_c as Long)
aml.setAttribute('TamanoDeLotes_c',TamanoDeLotes_c as Long)
aml.setAttribute('AsignacionActiva_c','Y')
aml.setAttribute('VariablesOrigen_Id_c',Id)
}
def now=now()
aml.setAttribute('EjecutarAsignacion_c',now)
setAttribute('FechaHoraUltimaEjecucion_c',now)
setAttribute('EjecutarAsignacion_c','N')
def correrPaso2=false
def correrPaso3=false
def correrPaso4=false
if(!existeAsignacionMensual){
amls.insertRow(aml)
setAttribute('Status_c','1')
correrPaso2=false
}
else{
correrPaso2=true
}
if(correrPaso2){
correrPaso3=aml.calcularScore()
setAttribute('Status_c','2')
}
def insercionRanking=false
if(correrPaso3){
correrPaso4= ! aml.setRanking()
println(''+correrPaso4)
setAttribute('Status_c','3')
}
if(correrPaso4){
setAttribute('Status_c','4')
aml.asignarLeadsCanal('LEADBOX')
// aml.asignarLeadsCanal('CELTY')
}
No return
(oracle.apps.fnd.applcore.Profile.ge