예제 #1
0
 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();
     }
 }
예제 #2
0
        /// <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;
                }
            }
        }
예제 #4
0
        /// <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;
                }
            }
        }