public void Create(Queja queja) { try { _crudQueja.Create(queja); var configManager = new ConfiguracionManager(); var empresaManager = new EmpresaManager(); var sancionManager = new SancionManager(); var rutaManager = new RutaManager(); var ruta = new Ruta(); var empresa = new Empresa(); var configuracionTerminal = new ConfiguracionTerminal(); //Obtengo la empresa a la que se le agregó la queja ruta.Id = queja.Ruta; empresa = empresaManager.RetrieveEmpresaByRuta(ruta); //Obtengo el Id de la terminal ruta = rutaManager.Retrieve(ruta); var terminalId = ruta.TerminalId; //Obtengo la configuración de terminal configuracionTerminal = configManager.RetrieveConfiguracionTerminal(terminalId); //Obtengo la cantidad de quejas para una sanción var cantidadSancion = configuracionTerminal.CantidadQuejasSancion; //Obtengo la cantidad de quejas hechas a una ruta var cantidadQuejas = _crudQueja.RetriveQuejasActivasByRutaStatement <Queja>(queja.Ruta).Count; //Valido si hay quejas suficientes para una sanción if (cantidadSancion <= cantidadQuejas) { var sancion = new Sancion(); sancion.Descripcion = "Sanción generada automaticamente por el sistema"; sancion.Multa = 3000; sancion.Estado = "Activo"; sancion.TerminalId = ruta.TerminalId; sancion.Fecha = DateTime.Now; sancion.Suspencion = "Activo"; sancion.FechaReactivacion = DateTime.Now.AddDays(7); sancion.Empresa = empresa.CedulaJuridica; sancionManager.Create(sancion); } } catch (Exception ex) { ExceptionManager.GetInstance().Process(ex); } }
public void Create(int empresaId) { try { var pagosResalizados = ObtenerPagosPorEmpresa(empresaId); var pagoCreado = false; pagosResalizados.ForEach(p => { var mes = DateTime.Parse(p.Fecha); var now = DateTime.Now; if (mes.Month == now.Month) { pagoCreado = true; } }); if (pagoCreado) { return; } var lineaManager = new LineaManager(); var configuracionTerminal = new ConfiguracionManager(); var lineas = lineaManager.GetAllLines(0, empresaId); var pagos = new List <PagoPendiente>(); lineas.ForEach(l => { var termialConfig = configuracionTerminal.RetrieveConfiguracionTerminal(l.Terminal.Id); pagos.Add(new PagoPendiente { LineaId = l.LineaId, EmpresaId = l.Empresa.CedulaJuridica, Monto = Convert.ToInt32(l.EspaciosParqueo * termialConfig.CostoParqueoBusMes) }); }); pagos.ForEach(p => _crudFactory.Create(p)); } catch (Exception e) { ExceptionManager.GetInstance().Process(e); } }
public void Create(Tarjeta card) { try { var getCarsd = GeTarjetaByUniquecode(card.CodigoUnico); if (getCarsd != null) { throw new BusinessException(300); } var config = new ConfiguracionManager(); card.EstadoTarjeta = new EstadoTarjeta { EstadoTarjetaId = 1 }; var terminalConfig = config.RetrieveConfiguracionTerminal(card.Terminal.Id); card.SaldoDisponible = Convert.ToInt32(terminalConfig.MontoInicialTarjeta); var transactionManager = new TransactionManager(); _crudFactory.Create(card); transactionManager.CreateFirstTransaction(new Transaccion { CardUniqueCode = card.CodigoUnico, Charge = Convert.ToInt32(card.SaldoDisponible), Description = "Monto Inicial " + card.NombreTarjeta, Type = "Venta Tarjeta", Status = "Activo", Terminal = card.Terminal }); } catch (Exception e) { ExceptionManager.GetInstance().Process(e); } }
public void RegistrarSalida(Recorrido recorrido) { try { var recorridoDb = _crudRecorrido.Retrieve <Recorrido>(recorrido); if (recorridoDb == null) //No existe { throw new BusinessException(217); } if (ListaRecorridosActuales.FirstOrDefault(r => r.RecorridoId == recorridoDb.RecorridoId) != null || recorridoDb.HoraSalida != DateTime.MinValue) //Ya salio { throw new BusinessException(220); } recorridoDb.HoraSalida = DateTime.Now; var ruta = _crudRuta.Retrieve <Ruta>(new Ruta { Id = recorridoDb.RutaId }); var terminal = _crudTerminal.Retrieve <Terminal>(new Terminal { Id = ruta.TerminalId }); var time = DateTime.Now.TimeOfDay; var tardia = time - recorridoDb.Horario; var configManager = new ConfiguracionManager(); var configuracionTerminal = configManager.RetrieveConfiguracionTerminal(ruta.TerminalId); if (tardia.Minutes > configuracionTerminal.CantidadMinutosTardia) // More than 15 minutes late. { recorridoDb.MinutosTarde = tardia.Minutes; if (_crudRecorrido.RetrieveTardias <Recorrido>().Count >= configuracionTerminal.CantidadTardiasSancion) { var sancionManager = new SancionManager(); var linea = _crudLinea.Retrieve <Linea>(new Linea { LineaId = ruta.LineaId }); var sancion = new Sancion { Descripcion = "Sanción por mas de " + configuracionTerminal.CantidadTardiasSancion + " tardias en el mes.", Multa = 5000, Estado = "Activo", TerminalId = ruta.TerminalId, Fecha = DateTime.Now, Suspencion = "Inactivo", FechaReactivacion = DateTime.Now.AddDays(20), Empresa = linea.Empresa.CedulaJuridica }; sancionManager.Create(sancion); } } _crudRecorrido.UpdateSalida(recorridoDb); recorridoDb.Posicion = new Posicion { RecorridoId = recorridoDb.RecorridoId, Latitude = terminal.Latitude, Longitude = terminal.Longitude, TimeStamp = DateTime.Now }; ListaRecorridosActuales.Add(recorridoDb); } catch (Exception e) { ExceptionManager.GetInstance().Process(e); } }