Search in sources :

Example 1 with Lead

use of com.axelor.apps.crm.db.Lead in project axelor-open-suite by axelor.

the class ConvertLeadWizardController method setDefaults.

public void setDefaults(ActionRequest request, ActionResponse response) throws AxelorException {
    Lead lead = findLead(request);
    response.setAttr("$partner.$primaryAddress", "value", lead.getPrimaryAddress());
    response.setAttr("$partner.$primaryCity", "value", lead.getPrimaryCity());
    response.setAttr("$partner.$primaryState", "value", lead.getPrimaryState());
    response.setAttr("$partner.$primaryPostalCode", "value", lead.getPrimaryPostalCode());
    response.setAttr("$partner.$primaryCountry", "value", lead.getPrimaryCountry());
    response.setAttr("$contactAddress", "value", lead.getPrimaryAddress());
    response.setAttr("$contactCity", "value", lead.getPrimaryCity());
    response.setAttr("$contactState", "value", lead.getPrimaryState());
    response.setAttr("$contactPostalCode", "value", lead.getPrimaryPostalCode());
    response.setAttr("$contactCountry", "value", lead.getPrimaryCountry());
    response.setAttr("$leadToPartnerSelect", "value", 1);
    response.setAttr("$leadToContactSelect", "value", 1);
}
Also used : Lead(com.axelor.apps.crm.db.Lead)

Example 2 with Lead

use of com.axelor.apps.crm.db.Lead in project axelor-open-suite by axelor.

the class ConvertLeadWizardController method setConvertLeadIntoOpportunity.

public void setConvertLeadIntoOpportunity(ActionRequest request, ActionResponse response) throws AxelorException {
    Lead lead = findLead(request);
    AppBase appBase = Beans.get(AppBaseService.class).getAppBase();
    response.setAttr("lead", "value", lead);
    response.setAttr("amount", "value", lead.getEstimatedBudget());
    response.setAttr("customerDescription", "value", lead.getDescription());
    response.setAttr("source", "value", lead.getSource());
    response.setAttr("partner", "value", lead.getPartner());
    response.setAttr("user", "value", lead.getUser());
    response.setAttr("team", "value", lead.getTeam());
    response.setAttr("webSite", "value", lead.getWebSite());
    response.setAttr("source", "value", lead.getSource());
    response.setAttr("department", "value", lead.getDepartment());
    response.setAttr("isCustomer", "value", true);
    response.setAttr("partnerTypeSelect", "value", "1");
    response.setAttr("language", "value", appBase.getDefaultPartnerLanguage());
    Company company = null;
    CompanyRepository companyRepo = Beans.get(CompanyRepository.class);
    if (lead.getUser() != null && lead.getUser().getActiveCompany() != null) {
        company = lead.getUser().getActiveCompany();
    } else if (companyRepo.all().count() == 1) {
        company = companyRepo.all().fetchOne();
    }
    if (company != null) {
        response.setAttr("company", "value", company);
        response.setAttr("currency", "value", company.getCurrency());
    }
}
Also used : Company(com.axelor.apps.base.db.Company) CompanyRepository(com.axelor.apps.base.db.repo.CompanyRepository) AppBaseService(com.axelor.apps.base.service.app.AppBaseService) Lead(com.axelor.apps.crm.db.Lead) AppBase(com.axelor.apps.base.db.AppBase)

Example 3 with Lead

use of com.axelor.apps.crm.db.Lead in project axelor-open-suite by axelor.

the class ConvertLeadWizardController method setPartnerDefaults.

public void setPartnerDefaults(ActionRequest request, ActionResponse response) throws AxelorException {
    Lead lead = findLead(request);
    AppBase appBase = Beans.get(AppBaseService.class).getAppBase();
    response.setAttr("name", "value", lead.getEnterpriseName());
    response.setAttr("industrySector", "value", lead.getIndustrySector());
    response.setAttr("titleSelect", "value", lead.getTitleSelect());
    response.setAttr("emailAddress", "value", lead.getEmailAddress());
    response.setAttr("mobilePhone", "value", lead.getMobilePhone());
    response.setAttr("fixedPhone", "value", lead.getFixedPhone());
    response.setAttr("webSite", "value", lead.getWebSite());
    response.setAttr("source", "value", lead.getSource());
    response.setAttr("department", "value", lead.getDepartment());
    response.setAttr("team", "value", lead.getTeam());
    response.setAttr("user", "value", lead.getUser());
    if (lead.getUser() != null) {
        if (lead.getUser().getActiveCompany().getDefaultPartnerCategorySelect() == CompanyRepository.CATEGORY_CUSTOMER) {
            response.setAttr("isCustomer", "value", true);
        } else if (lead.getUser().getActiveCompany().getDefaultPartnerCategorySelect() == CompanyRepository.CATEGORY_SUPPLIER) {
            response.setAttr("isSupplier", "value", true);
        } else {
            response.setAttr("isProspect", "value", true);
        }
    } else {
        response.setAttr("isProspect", "value", true);
    }
    response.setAttr("partnerTypeSelect", "value", "1");
    response.setAttr("language", "value", appBase.getDefaultPartnerLanguage());
    response.setAttr("nbrEmployees", "value", 0);
}
Also used : AppBaseService(com.axelor.apps.base.service.app.AppBaseService) Lead(com.axelor.apps.crm.db.Lead) AppBase(com.axelor.apps.base.db.AppBase)

Example 4 with Lead

use of com.axelor.apps.crm.db.Lead in project axelor-open-suite by axelor.

the class ConvertLeadWizardController method convertLead.

@SuppressWarnings("unchecked")
public void convertLead(ActionRequest request, ActionResponse response) {
    try {
        Context context = request.getContext();
        Map<String, Object> leadContext = (Map<String, Object>) context.get("_lead");
        Lead lead = Beans.get(LeadRepository.class).find(((Integer) leadContext.get("id")).longValue());
        Partner partner = createPartnerData(context);
        Partner contactPartner = null;
        if (partner != null) {
            contactPartner = createContactData(context, partner);
        }
        try {
            lead = Beans.get(LeadService.class).convertLead(lead, partner, contactPartner);
        } catch (Exception e) {
            TraceBackService.trace(e);
        }
        if (lead.getPartner() == null) {
            throw new AxelorException(TraceBackRepository.CATEGORY_INCONSISTENCY, I18n.get(IExceptionMessage.CONVERT_LEAD_ERROR));
        }
        openPartner(response, lead);
    } catch (Exception e) {
        TraceBackService.trace(response, e);
    }
}
Also used : Context(com.axelor.rpc.Context) LeadRepository(com.axelor.apps.crm.db.repo.LeadRepository) AxelorException(com.axelor.exception.AxelorException) Lead(com.axelor.apps.crm.db.Lead) Map(java.util.Map) Partner(com.axelor.apps.base.db.Partner) AxelorException(com.axelor.exception.AxelorException)

Example 5 with Lead

use of com.axelor.apps.crm.db.Lead in project axelor-open-suite by axelor.

the class ConvertLeadWizardController method setContactDefaults.

public void setContactDefaults(ActionRequest request, ActionResponse response) throws AxelorException {
    Lead lead = findLead(request);
    response.setAttr("firstName", "value", lead.getFirstName());
    response.setAttr("name", "value", lead.getName());
    response.setAttr("titleSelect", "value", lead.getTitleSelect());
    response.setAttr("emailAddress", "value", lead.getEmailAddress());
    response.setAttr("mobilePhone", "value", lead.getMobilePhone());
    response.setAttr("fixedPhone", "value", lead.getFixedPhone());
    response.setAttr("user", "value", lead.getUser());
    response.setAttr("team", "value", lead.getTeam());
    response.setAttr("jobTitleFunction", "value", lead.getJobTitleFunction());
}
Also used : Lead(com.axelor.apps.crm.db.Lead)

Aggregations

Lead (com.axelor.apps.crm.db.Lead)24 Partner (com.axelor.apps.base.db.Partner)7 Transactional (com.google.inject.persist.Transactional)6 LeadService (com.axelor.apps.crm.service.LeadService)4 CampaignRepository (com.axelor.apps.marketing.db.repo.CampaignRepository)4 AxelorException (com.axelor.exception.AxelorException)4 LeadRepository (com.axelor.apps.crm.db.repo.LeadRepository)3 Map (java.util.Map)3 Address (com.axelor.apps.base.db.Address)2 AppBase (com.axelor.apps.base.db.AppBase)2 AppBaseService (com.axelor.apps.base.service.app.AppBaseService)2 EmailAddress (com.axelor.apps.message.db.EmailAddress)2 Context (com.axelor.rpc.Context)2 Company (com.axelor.apps.base.db.Company)1 Country (com.axelor.apps.base.db.Country)1 CompanyRepository (com.axelor.apps.base.db.repo.CompanyRepository)1 MapService (com.axelor.apps.base.service.MapService)1 PartnerService (com.axelor.apps.base.service.PartnerService)1 Event (com.axelor.apps.crm.db.Event)1 Campaign (com.axelor.apps.marketing.db.Campaign)1