protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { // solo cargar este codigo la primera vez DropDownList1.DataSource = PaisServicio.ListarTodo(Session); DropDownList1.DataBind(); DropDownList2.DataSource = EstadoServicio.ListarTodo(); DropDownList2.DataBind(); } }
/// <inheritdoc /> public void CambiarEstado(int indexServicio, Cotizacion cotizacion, EstadoServicio nuevoEstado) { /* * Reglas: * 1.- Un servicio empieza siempre como SinIniciar. * 2.- Un servicio SinIniciar solo puede cambiar a Rodaje o Cancelado. * 3.- Un servicio en rodaje solo puede cambiar a Postproduccion o Cancelado. * 4.- Un servicio en Postproduccion solo puede cambiar a revision o Cancelado. * 5.- Un servicio en Revision solo puede cambiar * 6.- Una cotizacion que esta terminada, no puede cambiar de estado. */ switch (cotizacion.Servicios[indexServicio - 1].Estado) { case EstadoServicio.SinIniciar: { if (nuevoEstado != EstadoServicio.PreProduccion && nuevoEstado != EstadoServicio.Cancelado) { throw new ModelException("Este servicio solo puede cambiar a Preproduccion o ser Cancelado!"); } break; } case EstadoServicio.PreProduccion: { if (nuevoEstado != EstadoServicio.Rodaje && nuevoEstado != EstadoServicio.Cancelado) { throw new ModelException("Este servicio solo puede cambiar a Rodaje o ser Cancelado!"); } break; } case EstadoServicio.Rodaje: { if (nuevoEstado != EstadoServicio.PostProduccion && nuevoEstado != EstadoServicio.Cancelado) { throw new ModelException("Este servicio solo puede cambiar a Postproduccion o ser Cancelado!"); } break; } case EstadoServicio.PostProduccion: { if (nuevoEstado != EstadoServicio.Revision && nuevoEstado != EstadoServicio.Cancelado) { throw new ModelException("Este servicio solo puede cambiar a Revision o ser Cancelado!"); } break; } case EstadoServicio.Revision: { if (nuevoEstado != EstadoServicio.Entregado && nuevoEstado != EstadoServicio.Cancelado) { throw new ModelException("Este servicio solo puede ser Entregado o Cancelado!"); } break; } case EstadoServicio.Entregado: { throw new ModelException("Este servicio no puede cambiar de estado!"); } case EstadoServicio.Cancelado: { throw new ModelException("Este servicio no puede cambiar de estado!"); } } //Si paso las reglas, actualizar. cotizacion.Servicios[indexServicio - 1].Estado = nuevoEstado; /* * No se actualiza via el metodo Anadir de esta clase, ya que no se quiere anadir * una nueva version de la cotizacion, si no, actualizar un dato de esta que * solo les interesa a los usuarios del sistema y no a quien recibe la cotizacion. */ //Actualizar cotizacion. _repositoryCotizacion.Add(cotizacion); }
public static void iniciarApp() { IRestResponse restResponse = EstadoServicio.Response(); bool flag = true; try { if (restResponse.StatusCode == HttpStatusCode.OK) { flag = bool.Parse(JObject.Parse(restResponse.Content)["estado"].ToString()); } } catch { } if (!flag) { LogHandler.EnviarMsj("", ErrorType.Critical, "Get data Tienda Nube.\nObject reference not set to an instance of an object.\nStack Trace:\n[System.NullReferenceException: Object reference not set to an instance of an object.]at Program.GetDataTN()", Program.singleton.origenDFTN); Program.notification.ErrorIcon("Get data Tienda Nube"); } else { try { Program.sync = Sync.Instance; if (!Program.sync.running) { Assembly executingAssembly = Assembly.GetExecutingAssembly(); string fileVersion = FileVersionInfo.GetVersionInfo(executingAssembly.Location).FileVersion; LogHandler.EnviarMsj("", ErrorType.Information, string.Concat("Iniciando aplicación. V=", fileVersion), Program.singleton.origenDFTN); Program.notification.ProcessingIcon(); if ((!Program.singleton.habilitarDescargaVentas ? false : Program.singleton.notificarOrdenesModificadas)) { IRestResponse restResponse1 = ObtenerInformacionServicio.Response(); if (restResponse1.StatusCode == HttpStatusCode.OK) { string str = JObject.Parse(restResponse1.Content)["InformacionOrganic"]["Version"].ToString(); if ((new Version("10.0010.13084")).CompareTo(new Version(str)) > 0) { LogHandler.EnviarMsj("", ErrorType.Minor, "Se desactiva Modificación de Ordenes. Versión mínima 10.0010.13084.", Program.singleton.origenDFTN); Program.singleton.DesactivarModificacionDeOrdenes(); } } } if (!Program.singleton.habilitarDescargaVentas) { Program.sync.StartSync(); Program.notification.IdleIcon(); } else { IRestResponse restResponse2 = VerificarConexionDF.Response(); HttpStatusCode statusCode = restResponse2.StatusCode; if (statusCode == HttpStatusCode.OK) { Program.sync.StartSync(); Program.notification.IdleIcon(); } else if (statusCode == HttpStatusCode.Unauthorized) { LogHandler.EnviarMsj("", ErrorType.Critical, "Fallo al iniciar aplicación: \nError de autorización. API Dragonfish", Program.singleton.origenDFTN); Program.notification.ErrorIcon("Error de autorización. API Dragonfish."); } else if (statusCode == HttpStatusCode.NotFound) { Program.notification.IdleIcon(); Program.sync.StartSync(); } else { string[] statusDescription = new string[] { "Fallo al iniciar aplicación: \nNo se puede acceder a la api de Dragonifsh.\nCódigo: ", null, null, null, null }; statusDescription[1] = restResponse2.StatusCode.ToString(); statusDescription[2] = ". Descripción: "; statusDescription[3] = restResponse2.StatusDescription; statusDescription[4] = "."; LogHandler.EnviarMsj("", ErrorType.Critical, string.Concat(statusDescription), Program.singleton.origenDFTN); Program.notification.ErrorIcon("No se puede acceder a la api de Dragonifsh."); Program.InternalTimer = new System.Threading.Timer(new TimerCallback(Program.InitProcess), null, 60000, 0); } } } } catch (Exception exception) { throw exception; } } }
/// <summary> /// Despliega un formulario para cambiar el estado de un servicio. /// </summary> /// <param name="sistema"></param> private static void FormularioCambiarEstadoServicio(ISistema sistema) { Console.WriteLine("Ingrese el identificador de la cotizacion:"); string identificador = Console.ReadLine(); Cotizacion cotizacion = null; try { cotizacion = sistema.BuscarCotizacion(identificador); } catch (Exception e) { Console.WriteLine(e.Message); return; } if (cotizacion.Estado != EstadoCotizacion.Aprobada) { Console.WriteLine("No tiene permiso para poder editar los estados de esta cotizacion."); return; } int index = 0; foreach (Servicio s in cotizacion.Servicios) { Console.WriteLine("\n------------------"); Console.WriteLine("Indice: " + (++index)); Console.WriteLine(s.ToStringBrief()); } Console.WriteLine("------------------\n"); while (true) { Console.WriteLine("\nIngrese el indice del servicio al cual quiere cambiar su estado:"); Console.WriteLine("[Otro] Cancelar"); int editIndex = 0; try { editIndex = int.Parse(Console.ReadLine()); } catch (Exception e) { Console.WriteLine(e.Message); continue; } EstadoServicio nuevoEstado = EstadoServicio.SinIniciar; if (editIndex >= 1 && editIndex <= cotizacion.Servicios.Count) { Servicio editServicio = cotizacion.Servicios[editIndex - 1]; Console.WriteLine("\n------------------"); Console.WriteLine(editServicio.ToStringBrief()); Console.WriteLine("------------------\n"); Console.WriteLine("Ingrese el nuevo estado del servicio:"); Console.WriteLine("[1] " + EstadoServicio.PreProduccion); Console.WriteLine("[2] " + EstadoServicio.Rodaje); Console.WriteLine("[3] " + EstadoServicio.PostProduccion); Console.WriteLine("[4] " + EstadoServicio.Revision); Console.WriteLine("[5] " + EstadoServicio.Entregado); Console.WriteLine("[6] " + EstadoServicio.Cancelado); Console.WriteLine("[0] Cancelar cambio de estado"); string input = Console.ReadLine(); switch (input) { case "1": nuevoEstado = EstadoServicio.PreProduccion; break; case "2": nuevoEstado = EstadoServicio.Rodaje; break; case "3": nuevoEstado = EstadoServicio.PostProduccion; break; case "4": nuevoEstado = EstadoServicio.Revision; break; case "5": nuevoEstado = EstadoServicio.Entregado; break; case "6": nuevoEstado = EstadoServicio.Cancelado; break; case "0": return; default: continue; } try { sistema.CambiarEstado(editIndex, cotizacion, nuevoEstado); Console.WriteLine("Se ha cambiado el estado del servicio."); } catch (Exception e) { Console.WriteLine(e.Message); Console.WriteLine("\nCancelando cambio de estado..."); return; } } else { break; } } }