use of com.axelor.apps.crm.db.Lead in project axelor-open-suite by axelor.
the class MapRestCrm method getLeads.
@Path("/lead")
@GET
@Produces(MediaType.APPLICATION_JSON)
public JsonNode getLeads() {
ObjectNode mainNode = factory.objectNode();
try {
List<? extends Lead> leads = leadRepo.all().fetch();
ArrayNode arrayNode = factory.arrayNode();
for (Lead lead : leads) {
String fullName = lead.getFirstName() + " " + lead.getName();
if (lead.getEnterpriseName() != null) {
fullName = lead.getEnterpriseName() + "<br/>" + fullName;
}
ObjectNode objectNode = factory.objectNode();
objectNode.put("fullName", fullName);
objectNode.put("fixedPhone", lead.getFixedPhone() != null ? lead.getFixedPhone() : " ");
if (lead.getEmailAddress() != null) {
objectNode.put("emailAddress", lead.getEmailAddress().getAddress());
}
StringBuilder addressString = new StringBuilder();
if (lead.getPrimaryAddress() != null) {
addressString.append(lead.getPrimaryAddress() + "<br/>");
}
if (lead.getPrimaryCity() != null) {
addressString.append(lead.getPrimaryCity() + "<br/>");
}
if (lead.getPrimaryPostalCode() != null) {
addressString.append(lead.getPrimaryPostalCode() + "<br/>");
}
if (lead.getPrimaryState() != null) {
addressString.append(lead.getPrimaryState() + "<br/>");
}
if (lead.getPrimaryCountry() != null) {
addressString.append(lead.getPrimaryCountry().getName());
}
String addressFullname = addressString.toString();
objectNode.put("address", addressFullname);
objectNode.put("pinColor", "yellow");
objectNode.put("pinChar", I18n.get(ITranslation.PIN_CHAR_LEAD));
Map<String, Object> result = Beans.get(MapService.class).getMap(addressFullname);
if (result != null) {
objectNode.put("latit", (BigDecimal) result.get("latitude"));
objectNode.put("longit", (BigDecimal) result.get("longitude"));
}
arrayNode.add(objectNode);
}
mapRestService.setData(mainNode, arrayNode);
} catch (Exception e) {
mapRestService.setError(mainNode, e);
}
return mainNode;
}
use of com.axelor.apps.crm.db.Lead in project axelor-open-suite by axelor.
the class CampaignServiceImpl method generateEvents.
@Transactional
public void generateEvents(Campaign campaign) {
LocalDateTime eventStartDateTime = campaign.getEventStartDateTime();
LocalDateTime eventEndDateTime = campaign.getEventEndDateTime();
Long duration = campaign.getDuration();
for (Partner partner : campaign.getPartnerSet()) {
Event event = new Event();
if (partner.getIsContact()) {
event.setContactPartner(partner);
} else {
event.setPartner(partner);
}
event.setUser(campaign.getGenerateEventPerPartnerOrLead() ? partner.getUser() : campaign.getEventUser());
event.setSubject(campaign.getSubject());
event.setTypeSelect(campaign.getEventTypeSelect());
event.setStartDateTime(eventStartDateTime);
event.setEndDateTime(eventEndDateTime);
event.setDuration(duration);
event.setTeam(campaign.getGenerateEventPerPartnerOrLead() ? partner.getTeam() : campaign.getTeam());
event.setCampaign(campaign);
event.setStatusSelect(1);
eventRepo.save(event);
}
for (Lead lead : campaign.getLeadSet()) {
Event event = new Event();
event.setLead(lead);
event.setUser(campaign.getGenerateEventPerPartnerOrLead() ? lead.getUser() : campaign.getEventUser());
event.setSubject(campaign.getSubject());
event.setTypeSelect(campaign.getEventTypeSelect());
event.setStartDateTime(eventStartDateTime);
event.setEndDateTime(eventEndDateTime);
event.setDuration(duration);
event.setTeam(campaign.getGenerateEventPerPartnerOrLead() ? lead.getTeam() : campaign.getTeam());
event.setCampaign(campaign);
event.setStatusSelect(1);
eventRepo.save(event);
}
}
use of com.axelor.apps.crm.db.Lead in project axelor-open-suite by axelor.
the class CampaignServiceImpl method addNotParticipatingTargets.
@Override
@Transactional
public void addNotParticipatingTargets(Campaign campaign, Campaign campaignContext) {
for (Partner partner : campaignContext.getInvitedPartnerSet()) {
if (partner.isSelected()) {
campaign.addNotParticipatingPartnerSetItem(partner);
campaign.removeInvitedPartnerSetItem(partner);
}
}
for (Lead lead : campaignContext.getInvitedLeadSet()) {
if (lead.isSelected()) {
campaign.addNotParticipatingLeadSetItem(lead);
campaign.removeInvitedLeadSetItem(lead);
}
}
Beans.get(CampaignRepository.class).save(campaign);
}
use of com.axelor.apps.crm.db.Lead in project axelor-open-suite by axelor.
the class CampaignServiceImpl method inviteAllTargets.
@Override
@Transactional
public void inviteAllTargets(Campaign campaign) {
Set<Partner> partners = campaign.getPartners();
Set<Partner> notParticipatingPartnerSet = campaign.getNotParticipatingPartnerSet();
for (Partner partner : campaign.getPartnerSet()) {
if (!partners.contains(partner) && !notParticipatingPartnerSet.contains(partner)) {
campaign.addInvitedPartnerSetItem(partner);
}
}
Set<Lead> leads = campaign.getLeads();
Set<Lead> notParticipatingLeadSet = campaign.getNotParticipatingLeadSet();
for (Lead lead : campaign.getLeadSet()) {
if (!leads.contains(lead) && !notParticipatingLeadSet.contains(lead)) {
campaign.addInvitedLeadSetItem(lead);
}
}
Beans.get(CampaignRepository.class).save(campaign);
}
use of com.axelor.apps.crm.db.Lead in project axelor-open-suite by axelor.
the class CampaignController method markLeadPresent.
public void markLeadPresent(ActionRequest request, ActionResponse response) {
Campaign campaign = request.getContext().getParent().asType(Campaign.class);
Lead lead = request.getContext().asType(Lead.class);
lead = Beans.get(LeadRepository.class).find(lead.getId());
try {
Beans.get(CampaignService.class).markLeadPresent(Beans.get(CampaignRepository.class).find(campaign.getId()), lead);
response.setReload(true);
} catch (Exception e) {
TraceBackService.trace(response, e);
}
}
Aggregations