예제 #1
0
 private static void quickSort(Multas[] vetor, int inicio, int fim)
 {
     if (inicio < fim)
     {
         Multas p = vetor[inicio];
         int    i = inicio + 1;
         int    f = fim;
         while (i <= f)
         {
             if (vetor[i].dataEmissao <= p.dataEmissao)
             {
                 i++;
             }
             else if (p.dataEmissao < vetor[f].dataEmissao)
             {
                 f--;
             }
             else
             {
                 Multas troca = vetor[i];
                 vetor[i] = vetor[f];
                 vetor[f] = troca;
                 i++;
                 f--;
             }
         }
         vetor[inicio] = vetor[f];
         vetor[f]      = p;
         quickSort(vetor, inicio, f - 1);
         quickSort(vetor, f + 1, fim);
     }
 }
예제 #2
0
        protected void btnActualizarobservacion_Click(object sender, EventArgs e)
        {
            try
            {
                if (txtObservacion.Enabled == false)
                {
                    lblMensa.Text = "No solo se puede enviar observacion una vez";
                }
                else
                {
                    DetalleGastosComunes detgas = new DetalleGastosComunes();
                    detgas.IdPago      = decimal.Parse(ddlGasto.Text);
                    detgas.Observacion = txtObservacion.Text;
                    detgas.Update();

                    MultasCollection multa = new MultasCollection();
                    if (multa.MultasCountResidente() != 0)
                    {
                        Multas multas = new Multas();
                        detgas.IdPago      = decimal.Parse(ddlGasto.Text);
                        multas.Observacion = txtObservacion.Text;
                        multas.Update();
                        txtObservacion.Text = "";
                    }
                    lblMensa.Text = "Observacion ingresada Correctamente";
                }
            }
            catch (Exception)
            {
                lblMensa.Text = "Error al ingresar la observacion";
            }
        }
예제 #3
0
    protected DataSet obtenerMultas()
    {
        int       id        = Int32.Parse(Session["id"].ToString());
        Multas    datos     = new Multas();
        DAMultas  dMultas   = new DAMultas();
        DataTable resultado = dMultas.TraerMultas(id);
        DataTable data      = new DataTable();

        data = datos._Multas;
        DataRow fila;

        for (int i = 0; i < resultado.Rows.Count; i++)
        {
            fila = data.NewRow();

            fila["Id"]    = Int32.Parse(resultado.Rows[i]["id"].ToString());
            fila["Fecha"] = DateTime.Parse(resultado.Rows[i]["fecha"].ToString());
            fila["Nombre del usuario"]   = resultado.Rows[i]["nombre_usuario"].ToString();
            fila["Nombre del elemento"]  = resultado.Rows[i]["nombre_elemento"].ToString();
            fila["Username del usuario"] = resultado.Rows[i]["nickname"].ToString();
            fila["Valor"]        = resultado.Rows[i]["valor"].ToString();
            fila["Dias de mora"] = resultado.Rows[i]["dias_mora"].ToString();
            data.Rows.Add(fila);
        }


        return(datos);
    }
예제 #4
0
        private void LoadList()
        {
            try {
                List <dynamic> ListaGravidades = Listas.MultasGravidades;
                List <dynamic> ListaStatus     = Listas.MultasStatus;

                Multas multas = new Multas();
                multas.GetAll();

                ListaDados = multas.Results;

                gridDados.Rows.Clear();

                foreach (dynamic multa in ListaDados)
                {
                    string gravidade = ListaGravidades.Find(find => Convert.ToInt32(find.Value) == Convert.ToInt32(multa.Gravidade)).Text;
                    string status    = ListaStatus.Find(find => Convert.ToInt32(find.Value) == Convert.ToInt32(multa.Status)).Text;
                    gridDados.Rows.Add(
                        multa.Id,
                        multa.DataOcorrencia,
                        multa.Placa.ToString().ToUpper(),
                        multa.Motorista,
                        multa.Descricao,
                        gravidade,
                        multa.Valor,
                        multa.DataVencimento,
                        status
                        );
                }
            }
            catch (Exception e) {
                MessageBox.Show("Houver um erro ao carregar a lista. (" + e.Message + ")");
            }
        }
예제 #5
0
        private void OnSelectExcluir(object sender, EventArgs e)
        {
            try {
                if (mouseLocation.RowIndex >= 0)
                {
                    int Id = Convert.ToInt32(gridDados.Rows[mouseLocation.RowIndex].Cells[0].Value);

                    DialogResult Excluir = MessageBox.Show("Tem certeza que excluir esta Multa?", "Excluir Multa", MessageBoxButtons.YesNo);

                    if (Excluir == DialogResult.Yes)
                    {
                        Multas multas = new Multas();
                        multas.Id = Id;
                        multas.Delete();

                        if (multas.Success)
                        {
                            MessageBox.Show(multas.Message);
                            LoadList();
                        }
                        else
                        {
                            throw new Exception("Houver um erro ao excluir a multa. (" + multas.Message + ")");
                        }
                    }
                }
            }
            catch (Exception ex) {
                MessageBox.Show(ex.Message);
            }
        }
예제 #6
0
        public async Task <IActionResult> Edit(int id, [Bind("IdMulta,IdMunicipalidad,Descripcion,IdPlaca,Idnit")] Multas multas)
        {
            if (id != multas.IdMulta)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(multas);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!MultasExists(multas.IdMulta))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(multas));
        }
예제 #7
0
        public ActionResult Create(MultaFormModel model)
        {
            if (ModelState.IsValid)
            {
                var multa = new Multas
                {
                    Infracao     = model.Infracao,
                    LocalDaMulta = model.LocalDaMulta,

                    // Os seguintes campos são nullable.
                    // Temos que usar '.Value' para obter o valor,
                    // senão dá erro
                    // (Ex: cannot convert int? to int)
                    DataDaMulta = model.DataDaMulta.Value,
                    ValorMulta  = model.ValorMulta.Value,

                    AgenteFK   = model.AgenteFK.Value,
                    CondutorFK = model.CondutorFK.Value,
                    ViaturaFK  = model.ViaturaFK.Value
                };

                db.Multas.Add(multa);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            // Se obtermos um erro, teremos que reinicializar as nossas dropdowns.
            PreencherDropDownsComDadosBd(model);

            return(View(model));
        }
예제 #8
0
        public ActionResult DeleteConfirmed(int id)
        {
            Multas multas = db.Multas.Find(id);

            db.Multas.Remove(multas);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
예제 #9
0
 public ActionResult Edit([Bind(Include = "IdMultas,Anio,SalarioMinVigentRegionC,SalarioMinVigentRegionB,MontoEquivDiasSalario")] Multas multas)
 {
     if (ModelState.IsValid)
     {
         db.Entry(multas).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(multas));
 }
예제 #10
0
        public async Task <IActionResult> Create([Bind("IdMulta,IdMunicipalidad,Descripcion,IdPlaca,Idnit")] Multas multas)
        {
            if (ModelState.IsValid)
            {
                _context.Add(multas);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(multas));
        }
예제 #11
0
        public ActionResult Create([Bind(Include = "IdMultas,Anio,SalarioMinVigentRegionC,SalarioMinVigentRegionB,MontoEquivDiasSalario")] Multas multas)
        {
            if (ModelState.IsValid)
            {
                db.Multas.Add(multas);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(multas));
        }
예제 #12
0
 public ActionResult Adicionar(Multas multa)
 {
     try
     {
         new MultasDao().DbAdd(multa);
         return(RedirectToAction("Index", "Veiculos"));
     }
     catch
     {
         return(View());
     }
 }
예제 #13
0
 public ActionResult Editar(Multas multa)
 {
     try
     {
         new MultasDao().DbUpdate(multa);
         return(RedirectToAction("Index", "Veiculos"));
     }
     catch
     {
         return(View());
     }
 }
예제 #14
0
 public ActionResult Edit([Bind(Include = "ID,Infracao,LocalDaMulta,ValorMulta,DataDaMulta,AgenteFK,CondutorFK,ViaturaFK")] Multas multas)
 {
     if (ModelState.IsValid)
     {
         db.Entry(multas).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.AgenteFK   = new SelectList(db.Agentes, "ID", "Nome", multas.AgenteFK);
     ViewBag.CondutorFK = new SelectList(db.Condutores, "ID", "Nome", multas.CondutorFK);
     ViewBag.ViaturaFK  = new SelectList(db.Viaturas, "ID", "Matricula", multas.ViaturaFK);
     return(View(multas));
 }
예제 #15
0
        public ActionResult Deletar(Multas multa)
        {
            try
            {
                new MultasDao().DeleteRegistro(multa);

                return(RedirectToAction("Index", "Veiculos"));
            }
            catch
            {
                return(View());
            }
        }
예제 #16
0
        public MultaFormModel(Multas multas)
        {
            this.ID = multas.ID;

            this.AgenteFK   = multas.AgenteFK;
            this.CondutorFK = multas.CondutorFK;
            this.ViaturaFK  = multas.ViaturaFK;

            this.DataDaMulta  = multas.DataDaMulta;
            this.Infracao     = multas.Infracao;
            this.LocalDaMulta = multas.LocalDaMulta;
            this.ValorMulta   = multas.ValorMulta;
        }
예제 #17
0
        // GET: Multas/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Multas multas = db.Multas.Find(id);

            if (multas == null)
            {
                return(HttpNotFound());
            }
            return(View(multas));
        }
예제 #18
0
        // GET: Multas/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Multas multas = db.Multas.Find(id);

            if (multas == null)
            {
                return(HttpNotFound());
            }
            ViewBag.AgenteFK   = new SelectList(db.Agentes, "ID", "Nome", multas.AgenteFK);
            ViewBag.CondutorFK = new SelectList(db.Condutores, "ID", "Nome", multas.CondutorFK);
            ViewBag.ViaturaFK  = new SelectList(db.Viaturas, "ID", "Matricula", multas.ViaturaFK);
            return(View(multas));
        }
        public List <Multas> mListarPlacas(string placa, string maxRows, string pagina, string colNombre, string colOrden)
        {
            ArrayList paramrs = new ArrayList();

            SqlParameter sqlparametro = new SqlParameter("@placa", SqlDbType.NVarChar, 20);

            sqlparametro.Value = placa;
            paramrs.Add(sqlparametro);
            sqlparametro       = new SqlParameter("@inMaxRows", SqlDbType.NVarChar, 20);
            sqlparametro.Value = maxRows;
            paramrs.Add(sqlparametro);
            sqlparametro       = new SqlParameter("@inPagina", SqlDbType.NVarChar, 20);
            sqlparametro.Value = pagina;
            paramrs.Add(sqlparametro);
            sqlparametro       = new SqlParameter("@colNombre", SqlDbType.NVarChar, 128);
            sqlparametro.Value = colNombre;
            paramrs.Add(sqlparametro);
            sqlparametro       = new SqlParameter("@colOrden", SqlDbType.NVarChar, 10);
            sqlparametro.Value = colOrden;
            paramrs.Add(sqlparametro);

            DataTable dt = conexion.EjecutarProcedure("usp_ConsultarPlacasMultas", paramrs);


            Multas        OMultas   = new Multas();
            List <Multas> lstmultas = new List <Multas>();



            foreach (DataRow rw in dt.Rows)
            {
                OMultas             = new Multas();
                OMultas.placa       = rw[0].ToString();
                OMultas.falta       = rw[1].ToString();
                OMultas.fecfraccion = rw[2].ToString();
                OMultas.importe     = rw[3].ToString();
                OMultas.estado      = rw[4].ToString();
                OMultas.paginas     = rw[5].ToString();
                lstmultas.Add(OMultas);
            }
            return(lstmultas);
        }
예제 #20
0
        // GET: Multas/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Multas multas = db.Multas.Find(id);

            if (multas == null)
            {
                return(HttpNotFound());
            }

            // Fiz um construtor que recebe uma multa, para "limpar"
            // o código do controller um bocadinho...
            var model = new MultaFormModel(multas);

            PreencherDropDownsComDadosBd(model);

            return(View(multas));
        }
        private void PreencherDados()
        {
            try {
                Multas multas = new Multas();
                multas.Id = Id;
                multas.Get();

                dynamic multa = multas.Results[0];

                combVeiculo.SelectedValue   = Convert.ToInt32(multa.Veiculo);
                combMotorista.SelectedValue = (Convert.ToString(multa.Motorista) != string.Empty ? Convert.ToInt32(multa.Motorista) : "");
                combGravidade.SelectedValue = Convert.ToInt32(multa.Gravidade);
                combStatus.SelectedValue    = Convert.ToInt32(multa.Status);
                timeDataOcorrencia.Text     = multa.DataOcorrencia;
                timeDataNotificacao.Text    = multa.DataNotificacao;
                timeDataVencimento.Text     = multa.DataVencimento;
                textValor.Text     = Converter.ToReais(multa.Valor);
                textDescricao.Text = multa.Descricao;
                textLocal.Text     = multa.Local;
            }
            catch (Exception e) {
                MessageBox.Show("Não foi possivel Preencher os dados. (" + e.Message + ")");
            }
        }
예제 #22
0
        public async void mtdRealizarMultaAutomatica()
        {
            var scope      = scopeFactory.CreateScope();
            var dbContext  = scope.ServiceProvider.GetRequiredService <ApplicationDbContext>();
            int intIdMulta = 0;
            //String responseString = await client.GetStringAsync(UrlFecha);
            //dynamic fecha = JsonConvert.DeserializeObject<dynamic>(responseString);
            //string strFecha = fecha.resultado.ToString();

            //DateTime time = DateTime.Now;

            ParametrosController    par  = new ParametrosController(context);
            ActionResult <DateTime> time = par.mtdObtenerFechaMexico();

            var movimientos = await dbContext.tbmovimientos.Where(x => x.dtm_hora_fin.Date == time.Value.Date && x.bit_status == true).ToListAsync();

            if (movimientos.Count != 0)
            {
                foreach (var item in movimientos)
                {
                    if (item.str_comentarios == "APARCADO" || item.str_comentarios.Contains("EXTENSIÓN DE TIEMPO"))
                    {
                        if (time.Value == item.dtm_hora_fin || time.Value > item.dtm_hora_fin)
                        {
                            if (item.int_id_espacio == null)
                            {
                                var strategy = dbContext.Database.CreateExecutionStrategy();
                                await strategy.ExecuteAsync(async() =>
                                {
                                    using (IDbContextTransaction transaction = dbContext.Database.BeginTransaction())
                                    {
                                        try
                                        {
                                            var multa = new Multas()
                                            {
                                                created_by             = "Api Automatica",
                                                bit_status             = true,
                                                dtm_fecha              = time.Value,
                                                flt_monto              = 0.0,
                                                str_motivo             = "Tiempo vencido",
                                                str_tipo_multa         = "MULTA AUTOMATICA",
                                                str_documento_garantia = "SIN GARANTÍA",
                                                str_folio_multa        = "N/A",
                                                str_placa              = item.str_placa,
                                                str_clave_candado      = "N/A",
                                                //Falta modelo
                                                //Falta marca
                                                str_id_agente_id     = "3766f6fd-ebd5-4ad9-a27c-80255557d959",
                                                int_id_movimiento_id = item.id,
                                                //int_id_saldo_id = item.int_id_saldo_id,
                                                int_id_vehiculo_id = item.int_id_vehiculo_id,
                                                intidconcesion_id  = item.intidconcesion_id
                                            };
                                            dbContext.tbmultas.Add(multa);
                                            dbContext.SaveChanges();
                                            intIdMulta = multa.id;

                                            var response             = await dbContext.tbmovimientos.FirstOrDefaultAsync(x => x.id == item.id);
                                            response.str_comentarios = "MULTA";
                                            response.boolean_multa   = true;
                                            response.int_id_multa    = intIdMulta;
                                            dbContext.SaveChanges();

                                            var usuario = await dbContext.NetUsers.FirstOrDefaultAsync(x => x.Id == item.int_id_usuario_id);

                                            dbContext.tbdetallemulta.Add(new DetalleMulta()
                                            {
                                                int_id_multa    = intIdMulta,
                                                bit_status      = true,
                                                dtmFecha        = time.Value,
                                                str_usuario     = usuario.strNombre + " " + usuario.strApellidos,
                                                flt_monto       = 0,
                                                str_comentarios = "MULTA AUTOMÁTICA"
                                            });
                                            dbContext.SaveChanges();

                                            var espacio = await dbContext.tbespacios.FirstOrDefaultAsync(x => x.id == item.int_id_espacio);

                                            dbContext.tbdetallemovimientos.Add(new DetalleMovimientos()
                                            {
                                                int_idmovimiento   = item.id,
                                                int_id_usuario_id  = response.int_id_usuario_id,
                                                int_duracion       = 0,
                                                dtm_horaInicio     = time.Value,
                                                dtm_horaFin        = time.Value,
                                                flt_importe        = 0.0,
                                                flt_saldo_anterior = 0.0,
                                                flt_saldo_fin      = 0.0,
                                                str_observaciones  = response.str_comentarios
                                            });

                                            dbContext.SaveChanges();
                                            transaction.Commit();
                                        }

                                        catch (Exception ex)
                                        {
                                            transaction.Rollback();
                                        }
                                    }
                                });
                            }
                            else
                            {
                                var strategy = dbContext.Database.CreateExecutionStrategy();
                                await strategy.ExecuteAsync(async() =>
                                {
                                    using (IDbContextTransaction transaction = dbContext.Database.BeginTransaction())
                                    {
                                        try
                                        {
                                            var multa = new Multas()
                                            {
                                                created_by             = "Api Automatica",
                                                bit_status             = true,
                                                dtm_fecha              = time.Value,
                                                flt_monto              = 0.0,
                                                str_motivo             = "Tiempo vencido",
                                                str_tipo_multa         = "MULTA AUTOMATICA",
                                                str_documento_garantia = "SIN GARANTÍA",
                                                str_folio_multa        = "N/A",
                                                str_placa              = item.str_placa,
                                                str_clave_candado      = "N/A",
                                                //Falta modelo
                                                //Falta marca
                                                str_id_agente_id     = "98f5553e-5fd9-4ade-bd51-66d6dc2fa9d3",
                                                int_id_movimiento_id = item.id,
                                                //int_id_saldo_id = item.int_id_saldo_id,
                                                int_id_vehiculo_id = item.int_id_vehiculo_id,
                                                intidconcesion_id  = item.intidconcesion_id
                                            };
                                            dbContext.tbmultas.Add(multa);
                                            dbContext.SaveChanges();
                                            intIdMulta = multa.id;

                                            var response             = await dbContext.tbmovimientos.FirstOrDefaultAsync(x => x.id == item.id);
                                            response.str_comentarios = "MULTA";
                                            response.boolean_multa   = true;
                                            response.int_id_multa    = intIdMulta;
                                            dbContext.SaveChanges();

                                            var usuario = await dbContext.NetUsers.FirstOrDefaultAsync(x => x.Id == item.int_id_usuario_id);

                                            dbContext.tbdetallemulta.Add(new DetalleMulta()
                                            {
                                                int_id_multa    = intIdMulta,
                                                bit_status      = true,
                                                dtmFecha        = time.Value,
                                                str_usuario     = usuario.strNombre + " " + usuario.strApellidos,
                                                flt_monto       = 0,
                                                str_comentarios = "MULTA AUTOMÁTICA"
                                            });
                                            dbContext.SaveChanges();

                                            var espacio = await dbContext.tbespacios.FirstOrDefaultAsync(x => x.id == item.int_id_espacio);

                                            dbContext.tbdetallemovimientos.Add(new DetalleMovimientos()
                                            {
                                                int_idmovimiento   = item.id,
                                                int_idespacio      = response.int_id_espacio.Value,
                                                int_id_usuario_id  = response.int_id_usuario_id,
                                                int_id_zona        = espacio.id_zona,
                                                int_duracion       = 0,
                                                dtm_horaInicio     = time.Value,
                                                dtm_horaFin        = time.Value,
                                                flt_importe        = 0.0,
                                                flt_saldo_anterior = 0.0,
                                                flt_saldo_fin      = 0.0,
                                                str_observaciones  = response.str_comentarios
                                            });

                                            dbContext.SaveChanges();
                                            transaction.Commit();
                                        }

                                        catch (Exception ex)
                                        {
                                            transaction.Rollback();
                                        }
                                    }
                                });
                            }
                        }
                    }
                }
            }
        }
예제 #23
0
 public void adicionarMulta(string nova_multa)
 {
     Multas.Add(nova_multa);
 }
        private void OnEnviar(object sender, EventArgs e)
        {
            try {
                Validate Validate = new Validate(this, ErrorProvider);

                Validate.AddRule(combVeiculo, "Veiculo", "required|numeric|max:11");
                Validate.AddRule(combMotorista, "Motorista", "numeric|max:11");
                Validate.AddRule(combGravidade, "Gravidade", "required|numeric|exact:1");
                Validate.AddRule(combStatus, "Status", "required|numeric|exact:1");
                Validate.AddRule(timeDataOcorrencia, "Data Ocorrencia", "required|date:dd/MM/yyyy");
                Validate.AddRule(timeDataNotificacao, "Data Notificacao", "date:dd/MM/yyyy");
                Validate.AddRule(timeDataVencimento, "Data Vencimento", "date:dd/MM/yyyy");
                Validate.AddRule(textValor, "Valor", "reais|max:11");
                Validate.AddRule(textDescricao, "Descrição da Infração", "max:500");
                Validate.AddRule(textLocal, "Local da Infração", "max:500");

                Validate.Validation();

                if (Validate.IsValid())
                {
                    Multas multas = new Multas();

                    multas.Veiculo         = combVeiculo.SelectedValue;
                    multas.Motorista       = combMotorista.SelectedValue;
                    multas.Gravidade       = combGravidade.SelectedValue;
                    multas.Status          = combStatus.SelectedValue;
                    multas.DataOcorrencia  = timeDataOcorrencia.Text;
                    multas.DataNotificacao = timeDataNotificacao.Text;
                    multas.DataVencimento  = timeDataVencimento.Text;
                    multas.Valor           = Converter.ToDecimal(textValor.Text, true);
                    multas.Descricao       = textDescricao.Text;
                    multas.Local           = textLocal.Text;

                    if (Id > 0)
                    {
                        multas.Id = Convert.ToInt32(Id);
                        multas.Update();
                    }
                    else
                    {
                        multas.Create();
                    }

                    if (multas.Success)
                    {
                        DialogResult SuccessBox = MessageBox.Show(multas.Message, "CADASTRADO");
                        if (SuccessBox == DialogResult.OK)
                        {
                            if (fmPrincipal != null)
                            {
                                fmPrincipal.AtivarForm(new TMSForms.List.FormMultas(fmPrincipal));
                            }
                            else
                            {
                                Close();
                            }
                        }
                    }
                    else
                    {
                        MessageBox.Show("Houver um erro ao salvar a multas (" + multas.Message + ")");
                    }
                }
                else
                {
                    Validate.ErrorProviderShow();
                }
            }
            catch (Exception ex) {
                MessageBox.Show(ex.Message);
            }
        }
예제 #25
0
        public async Task mtdRealizarMultaAutomatica()
        {
            var scope      = scopeFactory.CreateScope();
            var dbContext  = scope.ServiceProvider.GetRequiredService <ApplicationDbContext>();
            int intIdMulta = 0;


            ParametrosController    par   = new ParametrosController(dbContext);
            ActionResult <DateTime> time1 = par.mtdObtenerFechaMexico();

            DateTime time = time1.Value;
            // DateTime time = DateTime.Now;


            var movimientos = await dbContext.tbmovimientos.Where(x => x.dtm_hora_fin.Date == time.Date && x.bit_status == true).ToListAsync();

            var tipoUsuario = await dbContext.tbtiposusuarios.FirstOrDefaultAsync(x => x.strTipoUsuario == "AGENTE VIAL");

            var agente = await dbContext.NetUsers.FirstOrDefaultAsync(x => x.intIdTipoUsuario == tipoUsuario.id);

            if (movimientos.Count != 0)
            {
                foreach (var item in movimientos)
                {
                    if (item.str_comentarios == "APARCADO" || item.str_comentarios.Contains("EXTENSIÓN DE TIEMPO"))
                    {
                        if (time == item.dtm_hora_fin || time > item.dtm_hora_fin)
                        {
                            if (item.int_id_espacio == null)
                            {
                                var vehiculo = await dbContext.tbvehiculos.FirstOrDefaultAsync(x => x.id == item.int_id_vehiculo_id);


                                var strategy = dbContext.Database.CreateExecutionStrategy();
                                await strategy.ExecuteAsync(async() =>
                                {
                                    using (IDbContextTransaction transaction = dbContext.Database.BeginTransaction())
                                    {
                                        try
                                        {
                                            var multa = new Multas()
                                            {
                                                created_by             = "Api Automatica",
                                                bit_status             = true,
                                                dtm_fecha              = time,
                                                flt_monto              = 0.00,
                                                str_motivo             = "Tiempo vencido",
                                                str_tipo_multa         = "MULTA AUTOMATICA",
                                                str_documento_garantia = "SIN GARANTÍA",
                                                str_folio_multa        = "N/A",
                                                str_placa              = item.str_placa,
                                                str_clave_candado      = "N/A",
                                                str_modelo             = vehiculo.str_modelo,
                                                str_marca              = vehiculo.str_marca,
                                                str_color              = vehiculo.str_color,
                                                str_id_agente_id       = agente.Id,
                                                int_id_movimiento_id   = item.id,
                                                //int_id_saldo_id = item.int_id_saldo_id,
                                                int_id_vehiculo_id = item.int_id_vehiculo_id,
                                                intidconcesion_id  = item.intidconcesion_id
                                            };
                                            dbContext.tbmultas.Add(multa);
                                            dbContext.SaveChanges();
                                            intIdMulta = multa.id;

                                            var response             = await dbContext.tbmovimientos.FirstOrDefaultAsync(x => x.id == item.id);
                                            response.str_comentarios = "MULTA";
                                            response.boolean_multa   = true;
                                            response.int_id_multa    = intIdMulta;
                                            dbContext.SaveChanges();

                                            var usuario = await dbContext.NetUsers.FirstOrDefaultAsync(x => x.Id == item.int_id_usuario_id);

                                            dbContext.tbdetallemulta.Add(new DetalleMulta()
                                            {
                                                int_id_multa    = intIdMulta,
                                                bit_status      = true,
                                                dtmFecha        = time,
                                                str_usuario     = usuario.strNombre + " " + usuario.strApellidos,
                                                flt_monto       = 0,
                                                str_comentarios = "MULTA AUTOMÁTICA"
                                            });
                                            dbContext.SaveChanges();

                                            var espacio = await dbContext.tbespacios.FirstOrDefaultAsync(x => x.id == item.int_id_espacio);

                                            dbContext.tbdetallemovimientos.Add(new DetalleMovimientos()
                                            {
                                                int_idmovimiento   = item.id,
                                                int_id_usuario_id  = response.int_id_usuario_id,
                                                int_duracion       = 0,
                                                dtm_horaInicio     = time,
                                                dtm_horaFin        = time,
                                                flt_importe        = 0.00,
                                                flt_saldo_anterior = 0.00,
                                                flt_saldo_fin      = 0.00,
                                                str_observaciones  = response.str_comentarios
                                            });

                                            dbContext.SaveChanges();
                                            transaction.Commit();
                                        }

                                        catch (Exception ex)
                                        {
                                            transaction.Rollback();
                                        }
                                    }
                                });
                            }
                            else
                            {
                                var strategy = dbContext.Database.CreateExecutionStrategy();
                                await strategy.ExecuteAsync(async() =>
                                {
                                    var vehiculo = await dbContext.tbvehiculos.FirstOrDefaultAsync(x => x.id == item.int_id_vehiculo_id);

                                    using (IDbContextTransaction transaction = dbContext.Database.BeginTransaction())
                                    {
                                        try
                                        {
                                            var multa = new Multas()
                                            {
                                                created_by             = "Api Automatica",
                                                bit_status             = true,
                                                dtm_fecha              = time,
                                                flt_monto              = 0.00,
                                                str_motivo             = "Tiempo vencido",
                                                str_tipo_multa         = "MULTA AUTOMATICA",
                                                str_documento_garantia = "SIN GARANTÍA",
                                                str_folio_multa        = "N/A",
                                                str_placa              = item.str_placa,
                                                str_clave_candado      = "N/A",
                                                str_modelo             = vehiculo.str_modelo,
                                                str_marca              = vehiculo.str_marca,
                                                str_color              = vehiculo.str_color,
                                                str_id_agente_id       = agente.Id,
                                                int_id_movimiento_id   = item.id,
                                                //int_id_saldo_id = item.int_id_saldo_id,
                                                int_id_vehiculo_id = item.int_id_vehiculo_id,
                                                intidconcesion_id  = item.intidconcesion_id
                                            };
                                            dbContext.tbmultas.Add(multa);
                                            dbContext.SaveChanges();
                                            intIdMulta = multa.id;

                                            var response             = await dbContext.tbmovimientos.FirstOrDefaultAsync(x => x.id == item.id);
                                            response.str_comentarios = "MULTA";
                                            response.boolean_multa   = true;
                                            response.int_id_multa    = intIdMulta;
                                            dbContext.SaveChanges();

                                            var usuario = await dbContext.NetUsers.FirstOrDefaultAsync(x => x.Id == item.int_id_usuario_id);

                                            dbContext.tbdetallemulta.Add(new DetalleMulta()
                                            {
                                                int_id_multa    = intIdMulta,
                                                bit_status      = true,
                                                dtmFecha        = time,
                                                str_usuario     = usuario.strNombre + " " + usuario.strApellidos,
                                                flt_monto       = 0.00,
                                                str_comentarios = "MULTA AUTOMÁTICA"
                                            });
                                            dbContext.SaveChanges();

                                            var espacio = await dbContext.tbespacios.FirstOrDefaultAsync(x => x.id == item.int_id_espacio);

                                            dbContext.tbdetallemovimientos.Add(new DetalleMovimientos()
                                            {
                                                int_idmovimiento   = item.id,
                                                int_idespacio      = response.int_id_espacio.Value,
                                                int_id_usuario_id  = response.int_id_usuario_id,
                                                int_id_zona        = espacio.id_zona,
                                                int_duracion       = 0,
                                                dtm_horaInicio     = time,
                                                dtm_horaFin        = time,
                                                flt_importe        = 0.00,
                                                flt_saldo_anterior = 0.00,
                                                flt_saldo_fin      = 0.00,
                                                str_observaciones  = response.str_comentarios
                                            });

                                            dbContext.SaveChanges();
                                            transaction.Commit();
                                        }

                                        catch (Exception ex)
                                        {
                                            transaction.Rollback();
                                        }
                                    }
                                });
                            }
                        }
                    }
                }
            }
        }