Пример #1
0
        /*
         * Busca toda la información de los partes que se han trabajado y los envia a central.
         * Por cada parte genera 3 JSON.
         * Tras confirmar la transferencia y guardado de la información en central borra los partes enviados.
         */
        public async void EnvioMasivo(object sender, EventArgs e)
        {
            Login comprueba = new Login();

            if (comprueba.CompruebaTerminados())
            {
                Conecta envio = new Conecta();

                List <SAT>        sat;
                List <SAT_Lineas> lineas = new List <SAT_Lineas>();


                RepositorySatApp bbdd = new RepositorySatApp();

                if (Variables.RevisaParte == true)
                {
                    sat = bbdd.SatRevisar <SAT>();
                }
                else
                {
                    sat = bbdd.SatCerrado <SAT>();
                }

                bool SAT      = false;
                bool LINEAS   = false;
                bool NOLINEAS = false;

                int numparte = 0;
                int part     = 0;
                foreach (SAT parte in sat)
                {
                    sat[part].Hora            = sat[part].Hora;
                    sat[part].HoraInicioTarea = sat[part].HoraInicioTarea;
                    sat[part].HoraFinTarea    = sat[part].HoraFinTarea;

                    //En el caso de alguno de los Pendientes de las opciones es true. Esta a prueba
                    if (sat[part].PendienteRepuesto == true || sat[part].PendientePresupuesto == true || sat[part].PendienteRecambio == true || sat[part].SinReparar == true)
                    {
                        sat[part].Revisar       = false;
                        sat[part].FechaEnvioApp = "1900-12-30 00:00:00.000";
                    }
                    else
                    {
                        sat[part].FechaEnvioApp = "1900-12-30 00:00:00.000";
                    }

                    lineas = bbdd.LineasSatCerrado <SAT_Lineas>(parte.N_Parte);

                    if (lineas.Count == 0)
                    {
                        await DisplayAlert("Aviso", "El parte número " + parte.N_Parte + " no tiene articulos ni servicios asociados por lo que no se pueden enviar los partes cerrados", "Ok");

                        NOLINEAS = true;
                    }
                    else
                    {
                        //Estamos en mantenimientos 03/02/2021
                        string[] rutaUrl = new string[] { "api/ListarSatLineas2", "api/SatAppRespaldo" };


                        for (int i = 0; i < rutaUrl.Length; i++)
                        {
                            if (rutaUrl[i] == "api/ListarSatLineas2")
                            {
                                if (await envio.UpdateDatosAsync(rutaUrl[i], lineas))
                                {
                                    LINEAS = true;
                                }
                                else
                                {
                                    LINEAS = false;
                                }
                            }
                            else if (rutaUrl[i] == "api/SatAppRespaldo")
                            {
                                if (LINEAS == true)
                                {
                                    if (await envio.UpdateDatosAsync(rutaUrl[i], sat[part]))
                                    {
                                        part++;
                                        SAT = true;
                                    }
                                    else
                                    {
                                        part++;
                                        SAT = false;
                                    }
                                }
                            }
                        }
                        bbdd.BorrarSatLineas2 <SAT_Lineas>(parte.N_Parte);
                    }
                    if (SAT == false || LINEAS == false)
                    {
                        break;
                    }
                }
                if (SAT == true & LINEAS == true & NOLINEAS == false)
                {
                    bbdd.BorrarSatCerrado(sat);
                    bbdd.BorrarLineasSatCerrado(lineas);
                    await DisplayAlert("Aviso", "Enviados correctamente todos los partes trabajados", "Ok");

                    ActualizarLista();
                }
                else if (SAT == false & LINEAS == false & NOLINEAS == false)
                {
                    await DisplayAlert("Aviso", "Error en el envio de parte, el parte numero " + numparte + " no se envio correctamente", "Ok");
                }
                bbdd.CerrarConexion();
            }
            else
            {
                await DisplayAlert("Aviso", "No hay partes cerrados que enviar", "Ok");
            }
        }