public override async Task <Enums.eSyncResult> SaveAndSync(ISUPModel sender) { InteraccionModel <InteraccionBusiness> interaccion = sender as InteraccionModel <InteraccionBusiness>; Enums.eSyncResult syncResult = Enums.eSyncResult.Synchronized; LocalTransaction localTransaction = CRMMobileDesaDB.BeginTransaction(); try { if (interaccion.Formulario_CodigoSAP != null) { // Save formularios guardarFormularios(interaccion); guardarRelevamientos(interaccion); } // Save this and sync Transacciones syncResult = await base.SaveAndSync(sender, new Func <ISUPModel, Task <bool> >(syncTransacciones)); localTransaction.Commit(); } catch (Exception ex) { localTransaction.Rollback(); throw ex; } return(syncResult); }
async protected static void Execute(InteraccionModel <InteraccionBusiness> interaccion) { _isExecuting = true; try { MessageBoxResult result = MessageBoxResult.No; if (InteraccionBusiness.InteraccionIsDirty(interaccion)) { result = CRMMessageBox.ShowAreYouSure("¿Desea descartar los cambios realizados?"); } else { result = MessageBoxResult.Yes; } if (result == System.Windows.MessageBoxResult.Yes) { interaccion = null; NavigationHelper.NavigateHome(); } } catch (Exception ex) { App.CurrentLoggingContext.LogException(ex); } finally { _isExecuting = false; } }
public void AddInteraccionToCalendar(InteraccionModel newObj) { /* * DispatcherHelper.UIDispatcher.InvokeAsync(() => * { * loadMonthData(newObj.Fecha); * }); */ string tipoInteraccionText = _tipoInteraccion[(int)newObj.TipoInteraccion.IdTipoInteraccion]; Appointment appDia = (from a in AppointmentsMes where a.Subject == tipoInteraccionText && a.Date.Year == newObj.FechaInicioPlanificada.Value.Year && a.Date.DayOfYear == newObj.FechaInicioPlanificada.Value.DayOfYear select a).FirstOrDefault(); // Si no existía ningúna cita en el día if (appDia == null) { // Se agrega la nueva cita addAppointment(newObj.FechaInicioPlanificada.Value, (int)newObj.TipoInteraccion.IdTipoInteraccion, 1); } else { // Se suma 1 a la cita actual appDia.Count = appDia.Count + 1; } }
public static void EstadoInteraccion_OnChanged(InteraccionModel <InteraccionBusiness> interaccion) { if (interaccion.EstadoInteraccion_CodigoSAP != Constants.EstadoInteraccionCodigoSAP.CONCLUIDA) { return; } if ( interaccion.Formulario_CodigoSAP == null || (interaccion.Formulario_CodigoSAP != ((int)Enums.eFormulario.CHECK_COMERCIAL).ToString() && interaccion.Formulario_CodigoSAP != ((int)Enums.eFormulario.CHECK_COMERCIAL_RETAIL).ToString() & interaccion.Formulario_CodigoSAP != ((int)Enums.eFormulario.CHECK_VISITA_RETAIL).ToString()) ) { cerrarInteraccion(interaccion); return; } // No se puede cambiar de estado si alguna respuesta es NO CUMPLE GenericList <RespuestaInteraccionFormulario> respuestasNoCumple = new GenericList <RespuestaInteraccionFormulario>(); var respuestasFormularioCheck = interaccion.RespuestasInteraccionFormulario; foreach (var respuestaFormularioCheck in respuestasFormularioCheck) { if (respuestaFormularioCheck.Respuesta_CodigoSAP == null) { respuestasNoCumple.Add(respuestaFormularioCheck.SUPEntity); } else { Respuesta respuesta = Respuesta.FindByCodigoSAP(respuestaFormularioCheck.Respuesta_CodigoSAP); if (respuesta.CodigoSAP.Trim() == Constants.RespuestaCodigoSAP.NO_CUMPLE) { respuestasNoCumple.Add(respuestaFormularioCheck.SUPEntity); } } } if (respuestasNoCumple.Size() > 0) { // TODO: Terminar de mostrar la interaccion subsiguiente App.Locator.InteraccionSubsiguienteChildViewModelStatic.RespuestasNoCumple = respuestasNoCumple; InteraccionSubsiguienteChildView.Show(); if (App.Locator.InteraccionSubsiguienteChildViewModelStatic.Result) { cerrarInteraccion(interaccion); } } else { cerrarInteraccion(interaccion); } }
protected static void Execute(DireccionEntregaModel dirEntrega) { Interaccion newInteraccion = new Interaccion(); InteraccionBusiness.InitializeNewInteraccion(newInteraccion, Enums.eTipoInteraccion.TareaCliente, dirEntrega); App.Locator.InteraccionViewModelStatic.InteraccionActual = InteraccionModel <InteraccionBusiness> .Create(newInteraccion); MainViewModel.MainViewModelMsg.Send(new MainViewModel.MainViewModelMsg(MainViewModel.eMainViewModelMsg.CollapseLeftPanel)); NavigationHelper.Navigate <InteraccionView>(); }
protected static void Execute() { Interaccion newInteraccion = new Interaccion(); InteraccionBusiness.InitializeNewInteraccion(newInteraccion, Enums.eTipoInteraccion.TareaRRCC); App.Locator.InteraccionViewModelStatic.InteraccionActual = InteraccionModel <InteraccionBusiness> .Create(newInteraccion); var list = TipoInteraccion.FindAll(); MainViewModel.MainViewModelMsg.Send(new MainViewModel.MainViewModelMsg(MainViewModel.eMainViewModelMsg.CollapseLeftPanel)); NavigationHelper.Navigate <InteraccionView>(); }
public static void LoadRespuestas(InteraccionModel<InteraccionBusiness> interaccion) { if (interaccion.Formulario_CodigoSAP == null) { interaccion.RespuestasInteraccionFormulario = new RespuestaInteraccionFormularioModelCollection(); return; } var preguntas = GetPreguntas(interaccion.Formulario); var respuestas = interaccion.RespuestasInteraccionFormulario; GenerarRespuestasPredeterminadasEnInteraccion(interaccion, respuestas, preguntas); }
private static void GenerarRespuestasPredeterminadasEnInteraccion( InteraccionModel <InteraccionBusiness> interaccion, RespuestaInteraccionFormularioModelCollection respuestas, PreguntaFormularioModelCollection preguntas) { if (respuestas.Count != preguntas.Count) { if (respuestas.Count == 0) { // Agrega todas las preguntas como respuestas predeterminadas respuestas = new RespuestaInteraccionFormularioModelCollection(); foreach (var preg in preguntas) { respuestas.Add(new RespuestaInteraccionFormularioModel() { Interaccion = (InteraccionModel)interaccion, Pregunta_CodigoSAP = preg.Pregunta_CodigoSAP }); } } else // Merge { // Eliminar respuestas para las cuales no haya pregunta for (int i = respuestas.Count - 1; i >= 0; i--) { RespuestaInteraccionFormularioModel rta = respuestas[i] as RespuestaInteraccionFormularioModel; if (preguntas.Where((preg) => preg.Pregunta_CodigoSAP == rta.Pregunta_CodigoSAP).FirstOrDefault() == null) { respuestas.Remove(rta); } } // Agregar respuestas que falten para cada pregunta foreach (var preg in preguntas) { if (respuestas.Where((rta) => rta.Pregunta_CodigoSAP == preg.Pregunta_CodigoSAP).FirstOrDefault() == null) { respuestas.Add(new RespuestaInteraccionFormularioModel() { Interaccion = (InteraccionModel)interaccion, Pregunta_CodigoSAP = preg.Pregunta_CodigoSAP }); } } } } else { // Puede que la cuenta sea igual pero el contenido no. // Se asume que nunca va a suceder. } interaccion.RespuestasInteraccionFormulario = respuestas; }
public static void LoadRespuestas(InteraccionModel <InteraccionBusiness> interaccion) { if (interaccion.Formulario_CodigoSAP == null) { interaccion.RespuestasInteraccionFormulario = new RespuestaInteraccionFormularioModelCollection(); return; } var preguntas = GetPreguntas(interaccion.Formulario); var respuestas = interaccion.RespuestasInteraccionFormulario; GenerarRespuestasPredeterminadasEnInteraccion(interaccion, respuestas, preguntas); }
public static bool InteraccionIsDirty(InteraccionModel <InteraccionBusiness> interaccion) { return(interaccion.IsDirty || (interaccion.Formulario != null && interaccion.Formulario.IsDirty) || (interaccion.FormularioMercado != null && interaccion.FormularioMercado.IsDirty) || (interaccion.FormularioPrecios != null && interaccion.FormularioPrecios.IsDirty) || (interaccion.FormularioTransporte != null && interaccion.FormularioTransporte.IsDirty) || (interaccion.RelevamientosTransporte != null) || (interaccion.RelevamientosProveedor != null) || (interaccion.RelevamientosProducto != null) || (interaccion.RelevamientosPrecio != null) || (interaccion.RespuestasInteraccionFormulario != null && interaccion.RespuestasInteraccionFormulario.Where((o) => o.IsDirty).FirstOrDefault() != null)); }
protected static bool CanExecute(InteraccionModel <InteraccionBusiness> interaccion) { if (_isExecuting) { return(false); } bool canExecute = InteraccionBusiness.InteraccionIsDirty(interaccion); if (!canExecute) { return(false); } // Validates all properties return(interaccion.ValidateSync()); }
async private static void saveInteraccionActual(InteraccionModel <InteraccionBusiness> interaccion) { bool wasNew = interaccion.IsNew; // Se resguarda el valor pq luego de guardar ya no es nueva. string resultMsg = string.Empty; MessageBoxImage resultMsgType = MessageBoxImage.Information; try { Enums.eSyncResult syncResult = await interaccion.SaveAndSync(); switch (syncResult) { case Enums.eSyncResult.Pending: resultMsg = "Interacción nro. " + interaccion.IdInteraccion + " creada con éxito. \nPor favor ejecute la SINCRONIZACIÓN cuando esté conectado a internet."; resultMsgType = MessageBoxImage.Warning; break; case Enums.eSyncResult.Synchronized: resultMsg = "La interacción nro. " + interaccion.IdInteraccion + " ha sido creada y sincronizada con éxito."; break; } if (wasNew) { App.Locator.MainViewModelStatic.AddInteraccionToLeftPanel((InteraccionModel)interaccion); App.Locator.CalendarViewModelStatic.AddInteraccionToCalendar((InteraccionModel)interaccion); } ; CRMMessageBox.ShowSuccess(resultMsg, resultMsgType); // Mostrar la nueva interaccion creada. App.Locator.MainViewModelStatic.FechaSeleccionada = interaccion.FechaInicioPlanificada.Value; interaccion = null; // Clear ViewModel Interaccion NavigationHelper.NavigateHome(); } catch (Exception ex) { App.CurrentLoggingContext.LogException(ex); Task.Factory.StartNew(() => { App.Locator.InteraccionViewModelStatic.ConfigureView(); }); CRMMessageBox.ShowError("Error al guardar los datos de la interacción."); } }
public static void EstadoInteraccion_OnChanged(InteraccionModel<InteraccionBusiness> interaccion) { if (interaccion.EstadoInteraccion_CodigoSAP != Constants.EstadoInteraccionCodigoSAP.CONCLUIDA) return; if ( interaccion.Formulario_CodigoSAP == null || (interaccion.Formulario_CodigoSAP != ((int)Enums.eFormulario.CHECK_COMERCIAL).ToString() && interaccion.Formulario_CodigoSAP != ((int)Enums.eFormulario.CHECK_COMERCIAL_RETAIL).ToString() & interaccion.Formulario_CodigoSAP != ((int)Enums.eFormulario.CHECK_VISITA_RETAIL).ToString()) ) { cerrarInteraccion(interaccion); return; } // No se puede cambiar de estado si alguna respuesta es NO CUMPLE GenericList<RespuestaInteraccionFormulario> respuestasNoCumple = new GenericList<RespuestaInteraccionFormulario>(); var respuestasFormularioCheck = interaccion.RespuestasInteraccionFormulario; foreach (var respuestaFormularioCheck in respuestasFormularioCheck) { if (respuestaFormularioCheck.Respuesta_CodigoSAP == null) respuestasNoCumple.Add(respuestaFormularioCheck.SUPEntity); else { Respuesta respuesta = Respuesta.FindByCodigoSAP(respuestaFormularioCheck.Respuesta_CodigoSAP); if (respuesta.CodigoSAP.Trim() == Constants.RespuestaCodigoSAP.NO_CUMPLE) respuestasNoCumple.Add(respuestaFormularioCheck.SUPEntity); } } if (respuestasNoCumple.Size() > 0) { // TODO: Terminar de mostrar la interaccion subsiguiente App.Locator.InteraccionSubsiguienteChildViewModelStatic.RespuestasNoCumple = respuestasNoCumple; InteraccionSubsiguienteChildView.Show(); if (App.Locator.InteraccionSubsiguienteChildViewModelStatic.Result) cerrarInteraccion(interaccion); } else cerrarInteraccion(interaccion); }
async protected static void Execute(InteraccionModel <InteraccionBusiness> interaccion) { _isExecuting = true; //this.RaiseCanExecuteChanged(); try { saveInteraccionActual(interaccion); } catch (Exception ex) { App.CurrentLoggingContext.LogException(ex); } finally { _isExecuting = false; //InteraccionSaveCommand.RaiseCanExecuteChanged(); } }
async protected static void Execute(InteraccionModel <InteraccionBusiness> interaccion) { _isExecuting = true; try { string caption = "Acceso a la edición del formulario"; if (interaccion.Motivo == null || interaccion.Negocio == null) { string msg = "Para proceder a completar el formulario,\r\ndebe seleccionar un motivo y negocio (negocio por segmento)."; CRMMessageBox.Show(msg, caption, MessageBoxButton.OK, MessageBoxImage.Information); return; } FormularioModel frm = InteraccionBusiness.GetFormularioXSeleccion(interaccion.Motivo, interaccion.Negocio); if (frm == null) { string msg = "El grupo de motivo, segmento y negocio seleccionado\r\nno posee formulario asociado."; CRMMessageBox.Show(msg, caption, MessageBoxButton.OK, MessageBoxImage.Warning); return; } // Es formulario nuevo? if (interaccion.Formulario_CodigoSAP == null || interaccion.Formulario_CodigoSAP != frm.CodigoSAP) { // Set el nuevo formulario interaccion.Formulario = frm; } App.Locator.FormularioViewModelStatic.FormularioActual = FormularioModel <FormularioCheckListBusiness> .Create(interaccion.Formulario); NavigationHelper.Navigate <FormularioView>(); } catch (Exception ex) { App.CurrentLoggingContext.LogException(ex); } finally { _isExecuting = false; } }
public void RemoveInteraccionFromLeftPanel(InteraccionModel interaccionModel) { switch ((Enums.eTipoInteraccion)interaccionModel.TipoInteraccion.IdTipoInteraccion) { case Enums.eTipoInteraccion.VisitaRRCC: Visitas.Remove(Visitas.Where((v) => v.IdInteraccion == interaccionModel.IdInteraccion).FirstOrDefault()); break; case Enums.eTipoInteraccion.TareaRRCC: TareasRRCC.Remove(TareasRRCC.Where((v) => v.IdInteraccion == interaccionModel.IdInteraccion).FirstOrDefault()); break; case Enums.eTipoInteraccion.TareaCliente: TareasCliente.Remove(TareasCliente.Where((v) => v.IdInteraccion == interaccionModel.IdInteraccion).FirstOrDefault()); break; default: break; } }
public void AddInteraccionToLeftPanel(InteraccionModel interaccionModel) { switch ((Enums.eTipoInteraccion)interaccionModel.TipoInteraccion.IdTipoInteraccion) { case Enums.eTipoInteraccion.VisitaRRCC: Visitas.Add(interaccionModel); break; case Enums.eTipoInteraccion.TareaRRCC: TareasRRCC.Add(interaccionModel); break; case Enums.eTipoInteraccion.TareaCliente: TareasCliente.Add(interaccionModel); break; default: break; } }
private void guardarFormularios(InteraccionModel <InteraccionBusiness> interaccion) { switch ((Enums.eFormulario) int.Parse(interaccion.Formulario_CodigoSAP)) { case Enums.eFormulario.CHECK_COMERCIAL: case Enums.eFormulario.CHECK_COMERCIAL_RETAIL: case Enums.eFormulario.CHECK_VISITA_RETAIL: case Enums.eFormulario.CHECK_VISITA_ESPECIALISTA: case Enums.eFormulario.CHECK_VISITA_INTEGRAL: case Enums.eFormulario.PLAN_VENTA: FormularioCheckListBusiness.Save(interaccion); break; case Enums.eFormulario.MERCADO: if (interaccion.FormularioMercado != null) { ; } interaccion.FormularioMercado.Save(); break; case Enums.eFormulario.PRECIOS: if (interaccion.FormularioPrecios != null) { return; } interaccion.FormularioPrecios.Save(); break; case Enums.eFormulario.TRANSPORTE: if (interaccion.FormularioTransporte != null) { return; } interaccion.FormularioTransporte.Save(); break; default: break; } }
public void RemoveInteraccionFromCalendar(InteraccionModel interaccionModel) { string tipoInteraccionText = _tipoInteraccion[(int)InteraccionBusiness.GetTipoInteraccion(interaccionModel.SUPEntity)]; Appointment appDia = (from a in AppointmentsMes where a.Subject == tipoInteraccionText && a.Date.Year == interaccionModel.FechaInicioPlanificada.Value.Year && a.Date.DayOfYear == interaccionModel.FechaInicioPlanificada.Value.DayOfYear select a).FirstOrDefault(); // Si no existía ningúna cita en el día if (appDia == null) { return; } else { // Se suma 1 a la cita actual appDia.Count = appDia.Count - 1; } }
public static void Save(InteraccionModel <InteraccionBusiness> interaccion) { if (interaccion.Formulario == null) { return; } interaccion.Formulario.Save(); if (interaccion.RespuestasInteraccionFormulario == null) { return; } foreach (var respuestaInteraccion in interaccion.RespuestasInteraccionFormulario) { respuestaInteraccion.Save(); } if (!interaccion.Formulario.CalculaPuntuacion) { interaccion.Puntaje = 0; // Evita guardar algún valor que no corresponde } }
private static void cerrarInteraccion(InteraccionModel <InteraccionBusiness> interaccion) { try { interaccion.EstadoInteraccion_CodigoSAP = Constants.EstadoInteraccionCodigoSAP.CONCLUIDA; interaccion.FechaInicioReal = ModelHelper.DateTime_ToDate(DateTime.Now); interaccion.HoraInicioReal = ModelHelper.DateTime_ToTime(DateTime.Now); interaccion.FechaFinReal = ModelHelper.DateTime_ToDate(DateTime.Now); interaccion.HoraFinReal = ModelHelper.DateTime_ToTime(DateTime.Now); interaccion.Update(); CRMMessageBox.ShowSuccess("La interaccion ha sido cerrada."); App.Locator.SUPServiceStatic.SincronizarInteraccionesXInterlocutorActual(); NavigationHelper.NavigateHome(); } catch (Exception ex) { App.CurrentLoggingContext.LogException(ex); throw; } }
public static bool InteraccionIsDirty(InteraccionModel<InteraccionBusiness> interaccion) { return interaccion.IsDirty || (interaccion.Formulario != null && interaccion.Formulario.IsDirty) || (interaccion.FormularioMercado != null && interaccion.FormularioMercado.IsDirty) || (interaccion.FormularioPrecios != null && interaccion.FormularioPrecios.IsDirty) || (interaccion.FormularioTransporte != null && interaccion.FormularioTransporte.IsDirty) || (interaccion.RelevamientosTransporte != null) || (interaccion.RelevamientosProveedor != null) || (interaccion.RelevamientosProducto != null) || (interaccion.RelevamientosPrecio != null) || (interaccion.RespuestasInteraccionFormulario != null && interaccion.RespuestasInteraccionFormulario.Where((o) => o.IsDirty).FirstOrDefault() != null); }
private void guardarRelevamientos(InteraccionModel<InteraccionBusiness> interaccion) { if (interaccion.Formulario.SeleccionTablasRelevamiento == null || interaccion.Formulario.SeleccionTablasRelevamiento.Count == 0) return; foreach (var tblRelevamiento in interaccion.Formulario.SeleccionTablasRelevamiento) { switch ((Enums.eTablaRelevamiento)tblRelevamiento.IdTablaRelevamiento) { case Enums.eTablaRelevamiento.TRANSPORTE: foreach (var item in interaccion.RelevamientosTransporte.RemovedItems) { item.Interaccion = null; // Importante para eliminar la relacion item.Save(); } foreach (var item in interaccion.RelevamientosTransporte) { item.Save(); } break; case Enums.eTablaRelevamiento.PRECIOS: foreach (var item in interaccion.RelevamientosPrecio.RemovedItems) { item.Interaccion = null; // Importante para eliminar la relacion item.Save(); } foreach (var item in interaccion.RelevamientosPrecio) { item.Save(); } break; case Enums.eTablaRelevamiento.PRODUCTO: foreach (var item in interaccion.RelevamientosProducto.RemovedItems) { item.Interaccion = null; // Importante para eliminar la relacion item.Save(); } foreach (var item in interaccion.RelevamientosProducto) { item.Save(); } break; case Enums.eTablaRelevamiento.PROVEEDOR: foreach (var item in interaccion.RelevamientosProveedor.RemovedItems) { item.Interaccion = null; // Importante para eliminar la relacion item.Save(); } foreach (var item in interaccion.RelevamientosProveedor) { item.Save(); } break; default: break; } } }
private void guardarRelevamientos(InteraccionModel <InteraccionBusiness> interaccion) { if (interaccion.Formulario.SeleccionTablasRelevamiento == null || interaccion.Formulario.SeleccionTablasRelevamiento.Count == 0) { return; } foreach (var tblRelevamiento in interaccion.Formulario.SeleccionTablasRelevamiento) { switch ((Enums.eTablaRelevamiento)tblRelevamiento.IdTablaRelevamiento) { case Enums.eTablaRelevamiento.TRANSPORTE: foreach (var item in interaccion.RelevamientosTransporte.RemovedItems) { item.Interaccion = null; // Importante para eliminar la relacion item.Save(); } foreach (var item in interaccion.RelevamientosTransporte) { item.Save(); } break; case Enums.eTablaRelevamiento.PRECIOS: foreach (var item in interaccion.RelevamientosPrecio.RemovedItems) { item.Interaccion = null; // Importante para eliminar la relacion item.Save(); } foreach (var item in interaccion.RelevamientosPrecio) { item.Save(); } break; case Enums.eTablaRelevamiento.PRODUCTO: foreach (var item in interaccion.RelevamientosProducto.RemovedItems) { item.Interaccion = null; // Importante para eliminar la relacion item.Save(); } foreach (var item in interaccion.RelevamientosProducto) { item.Save(); } break; case Enums.eTablaRelevamiento.PROVEEDOR: foreach (var item in interaccion.RelevamientosProveedor.RemovedItems) { item.Interaccion = null; // Importante para eliminar la relacion item.Save(); } foreach (var item in interaccion.RelevamientosProveedor) { item.Save(); } break; default: break; } } }
public void AddInteraccionToCalendar(InteraccionModel newObj) { throw new NotImplementedException(); }
public void RemoveInteraccionFromCalendar(InteraccionModel interaccionModel) { throw new NotImplementedException(); }
public void AddInteraccionToCalendar(InteraccionModel newObj) { throw new NotImplementedException(); }
public void RemoveInteraccionFromCalendar(InteraccionModel interaccionModel) { throw new NotImplementedException(); }
public static void Save(InteraccionModel<InteraccionBusiness> interaccion) { if (interaccion.Formulario == null) return; interaccion.Formulario.Save(); if (interaccion.RespuestasInteraccionFormulario == null) return; foreach (var respuestaInteraccion in interaccion.RespuestasInteraccionFormulario) { respuestaInteraccion.Save(); } if (!interaccion.Formulario.CalculaPuntuacion) interaccion.Puntaje = 0; // Evita guardar algún valor que no corresponde }
private static void GenerarRespuestasPredeterminadasEnInteraccion( InteraccionModel<InteraccionBusiness> interaccion, RespuestaInteraccionFormularioModelCollection respuestas, PreguntaFormularioModelCollection preguntas) { if (respuestas.Count != preguntas.Count) { if (respuestas.Count == 0) { // Agrega todas las preguntas como respuestas predeterminadas respuestas = new RespuestaInteraccionFormularioModelCollection(); foreach (var preg in preguntas) { respuestas.Add(new RespuestaInteraccionFormularioModel() { Interaccion = (InteraccionModel)interaccion, Pregunta_CodigoSAP = preg.Pregunta_CodigoSAP }); } } else // Merge { // Eliminar respuestas para las cuales no haya pregunta for (int i = respuestas.Count - 1; i >= 0; i--) { RespuestaInteraccionFormularioModel rta = respuestas[i] as RespuestaInteraccionFormularioModel; if (preguntas.Where((preg) => preg.Pregunta_CodigoSAP == rta.Pregunta_CodigoSAP).FirstOrDefault() == null) { respuestas.Remove(rta); } } // Agregar respuestas que falten para cada pregunta foreach (var preg in preguntas) { if (respuestas.Where((rta) => rta.Pregunta_CodigoSAP == preg.Pregunta_CodigoSAP).FirstOrDefault() == null) { respuestas.Add(new RespuestaInteraccionFormularioModel() { Interaccion = (InteraccionModel)interaccion, Pregunta_CodigoSAP = preg.Pregunta_CodigoSAP }); } } } } else { // Puede que la cuenta sea igual pero el contenido no. // Se asume que nunca va a suceder. } interaccion.RespuestasInteraccionFormulario = respuestas; }
private void guardarFormularios(InteraccionModel<InteraccionBusiness> interaccion) { switch ((Enums.eFormulario)int.Parse( interaccion.Formulario_CodigoSAP)) { case Enums.eFormulario.CHECK_COMERCIAL: case Enums.eFormulario.CHECK_COMERCIAL_RETAIL: case Enums.eFormulario.CHECK_VISITA_RETAIL: case Enums.eFormulario.CHECK_VISITA_ESPECIALISTA: case Enums.eFormulario.CHECK_VISITA_INTEGRAL: case Enums.eFormulario.PLAN_VENTA: FormularioCheckListBusiness.Save(interaccion); break; case Enums.eFormulario.MERCADO: if (interaccion.FormularioMercado != null) ; interaccion.FormularioMercado.Save(); break; case Enums.eFormulario.PRECIOS: if (interaccion.FormularioPrecios != null) return; interaccion.FormularioPrecios.Save(); break; case Enums.eFormulario.TRANSPORTE: if (interaccion.FormularioTransporte != null) return; interaccion.FormularioTransporte.Save(); break; default: break; } }
protected static bool CanExecute(InteraccionModel <InteraccionBusiness> interaccion) { return(true); }
private static void cerrarInteraccion(InteraccionModel<InteraccionBusiness> interaccion) { try { interaccion.EstadoInteraccion_CodigoSAP = Constants.EstadoInteraccionCodigoSAP.CONCLUIDA; interaccion.FechaInicioReal = ModelHelper.DateTime_ToDate(DateTime.Now); interaccion.HoraInicioReal = ModelHelper.DateTime_ToTime(DateTime.Now); interaccion.FechaFinReal = ModelHelper.DateTime_ToDate(DateTime.Now); interaccion.HoraFinReal = ModelHelper.DateTime_ToTime(DateTime.Now); interaccion.Update(); CRMMessageBox.ShowSuccess("La interaccion ha sido cerrada."); App.Locator.SUPServiceStatic.SincronizarInteraccionesXInterlocutorActual(); NavigationHelper.NavigateHome(); } catch (Exception ex) { App.CurrentLoggingContext.LogException(ex); throw; } }