} // process /// <summary> /// Process Fail /// </summary> /// <param name="imp">import</param> /// <param name="errorMsg">error message</param> /// <returns>false</returns> private bool ProcessFail(X_I_Contact imp, String errorMsg) { imp.SetI_IsImported(false); imp.SetI_ErrorMsg(errorMsg); imp.Save(); return(false); } // processFail
} // doIt /// <summary> /// impoert process /// </summary> /// <param name="imp">import</param> /// <returns>true if processed</returns> private bool Process(X_I_Contact imp) { if (imp.GetEMail() == null || imp.GetEMail().Length == 0) { return(ProcessFail(imp, "No EMail")); } MUser user = MUser.Get(GetCtx(), imp.GetEMail(), Get_TrxName()); // New User if (user == null || user.GetAD_User_ID() == 0) { if (imp.IsEMailBounced()) { return(ProcessFail(imp, "No User found with email - cannou set Bounced flag")); } if (imp.GetContactName() == null || imp.GetContactName().Length == 0) { return(ProcessFail(imp, "No Name for User/Contact")); } user = new MUser(GetCtx(), 0, Get_TrxName()); user.SetName(imp.GetContactName()); user.SetDescription(imp.GetContactDescription()); user.SetEMail(imp.GetEMail()); } // Existing User else { if (imp.IsEMailBounced()) { user.SetIsEMailBounced(true); user.SetBouncedInfo(imp.GetBouncedInfo()); } } if (!user.Save()) { return(ProcessFail(imp, "Cannot save User")); } // Create BP if (imp.IsCreateBP()) { if (user.GetC_BPartner_ID() == 0) { MBPartner bp = new MBPartner(GetCtx(), 0, Get_TrxName()); bp.SetName(user.GetName()); if (!bp.Save()) { return(ProcessFail(imp, "Cannot create BPartner")); } else { user.SetC_BPartner_ID(bp.GetC_BPartner_ID()); if (!user.Save()) { return(ProcessFail(imp, "Cannot update User")); } } } imp.SetC_BPartner_ID(user.GetC_BPartner_ID()); } // Create Lead if (imp.IsCreateLead()) { MLead lead = new MLead(GetCtx(), 0, Get_TrxName()); lead.SetName(imp.GetContactName()); lead.SetDescription(imp.GetContactDescription()); lead.SetAD_User_ID(user.GetAD_User_ID()); lead.SetC_BPartner_ID(user.GetC_BPartner_ID()); lead.Save(); imp.SetC_Lead_ID(lead.GetC_Lead_ID()); } // Interest Area if (imp.GetR_InterestArea_ID() != 0 && user != null) { MContactInterest ci = MContactInterest.Get(GetCtx(), imp.GetR_InterestArea_ID(), user.GetAD_User_ID(), true, Get_TrxName()); ci.Save(); // don't subscribe or re-activate } imp.SetAD_User_ID(user.GetAD_User_ID()); imp.SetI_IsImported(true); imp.SetI_ErrorMsg(null); imp.Save(); return(true); } // process