https://192.168.7.15:8081/distribuidores/create-presupuesto/

Query Metrics

36 Database Queries
14 Different statements
24.43 ms Query time
17 Invalid entities

Grouped Statements

Show all queries

maenar connection

Time Count Info
10.09 ms
(41.28%)
8
"COMMIT"
Parameters: []
2.49 ms
(10.18%)
3
SELECT t0.id AS id6, t0.firstname AS firstname7, t0.lastname AS lastname8, t0.email AS email9, t0.username AS username10, t0.password AS password11, t0.nif AS nif12, t0.company AS company13, t0.address AS address14, t0.cp AS cp15, t0.localidad AS localidad16, t0.provincia AS provincia17, t0.comunity AS comunity18, t0.phone AS phone19, t0.mphone AS mphone20, t0.salt AS salt21, t0.rol AS rol22, t0.codigorecuperacion AS codigorecuperacion23, t0.pathdnifrontal AS pathdnifrontal24, t0.pathdnitrasera AS pathdnitrasera25, t0.pathfoto AS pathfoto26, t0.pathrgpdfirmadofisico AS pathrgpdfirmadofisico27, t0.pathrgpdfirma AS pathrgpdfirma28, t0.firmadorgpdelectronico AS firmadorgpdelectronico29, t0.tieneCuenta AS tieneCuenta30, t0.tipoFianza AS tipoFianza31, t0.activo AS activo32, t0.bloqueado AS bloqueado33, t0.expirado AS expirado34, t0.tipo, t1.nombre AS nombre35, t1.latitud AS latitud36, t1.longitud AS longitud37, t1.especial AS especial38, t1.sendSMS AS sendSMS39, t1.entregadirectaacliente AS entregadirectaacliente40, t1.categorydistributor_id AS categorydistributor_id41, t1.gestorZona_id AS gestorZona_id42, t3.pagoWeb AS pagoWeb43, t3.descuento AS descuento44, t3.aceptacondiciones AS aceptacondiciones45, t3.distribuidor_id AS distribuidor_id46, t5.gestorzona_id AS gestorzona_id47 FROM User t0 LEFT JOIN Distributor t1 ON t0.id = t1.id LEFT JOIN admin t2 ON t0.id = t2.id LEFT JOIN UserWeb t3 ON t0.id = t3.id LEFT JOIN little t4 ON t0.id = t4.id LEFT JOIN gestorZonaUser t5 ON t0.id = t5.id WHERE t0.id = ?
Parameters: [0 => 2]
2.18 ms
(8.92%)
3
INSERT INTO PresupuestoLine (precio, mostrardevolucionacero, desgasteSalida, desgasteEntrada, importeRotura, descripcionRotura, importeSuciedad, sucia, cantidad, alquiler, importeExpress, codigoMaquina, fechaDevolucion, fechaAlarma, fechaEntrega, gestorZ_entrega, horassalida, minutossalida, horasentrada, minutosentrada, gestorZ_recogida, estadoPresupuestoLine, cantidaddevuelta, mostrar, saltardiasminimos, saltarfianza, pagoiniciallinea, descripcion, fechadevolucionorig, fechaentregaorig, fechainicial, descuento, barCode, estarealquilada, precioDiaActual, precioSuciedadActual, precioDesgasteActual, Presupuestos_id, product_id, productorderlinecerrado_id, rotura_id, gestorZona_id, idlineacopia, idlineaorigen) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
Parameters: [1 => null, 2 => 0, 3 => 0, 4 => 0, 5 => 0, 6 => null, 7 => null, 8 => 0, 9 => 1, 10 => 1, 11 => null, 12 => null, 13 => 2025-10-03 07:00:00, 14 => 2025-10-03 07:00:00, 15 => 2025-10-02 07:00:00, 16 => 0, 17 => null, 18 => null, 19 => null, 20 => null, 21 => 0, 22 => pendiente, 23 => 0, 24 => 1, 25 => 0, 26 => 0, 27 => 0, 28 => null, 29 => null, 30 => 2025-10-02 07:00:00, 31 => null, 32 => 0, 33 => null, 34 => 0, 35 => 95, 36 => null, 37 => null, 38 => 12, 39 => 185, 40 => null, 41 => null, 42 => null, 43 => null, 44 => null]
2.15 ms
(8.79%)
3
SELECT t0.id AS id4, t0.nombre AS nombre5, t0.nombreURL AS nombreURL6, t0.fechaAlta AS fechaAlta7, t0.codigo AS codigo8, t0.pathqr AS pathqr9, t0.descripcion AS descripcion10, t0.especificaciones AS especificaciones11, t0.eliminado AS eliminado12, t0.stockTotal AS stockTotal13, t0.stockReal AS stockReal14, t0.mostrarPrincipal AS mostrarPrincipal15, t0.title AS title16, t0.metadescription AS metadescription17, t0.activo AS activo18, t0.md5qr AS md5qr19, t0.subcategoria_id AS subcategoria_id20, t0.tipoIVA_id AS tipoIVA_id21, t0.tipo, t1.precioDia AS precioDia22, t1.fianza AS fianza23, t1.descuento37 AS descuento3724, t1.descuento830 AS descuento83025, t1.descuento31 AS descuento3126, t1.desgaste AS desgaste27, t1.tipoDesgaste AS tipoDesgaste28, t1.precioDesgaste AS precioDesgaste29, t1.precioSuciedad AS precioSuciedad30, t1.precioRecargo AS precioRecargo31, t1.suplementoTorre AS suplementoTorre32, t1.mostrarrotura AS mostrarrotura33, t1.contrato_id AS contrato_id34, t2.precio AS precio35, t3.precio AS precio36 FROM Product t0 LEFT JOIN productalquiler t1 ON t0.id = t1.id LEFT JOIN productconsumible t2 ON t0.id = t2.id LEFT JOIN productsegundamano t3 ON t0.id = t3.id WHERE t0.id = ?
Parameters: [0 => 185]
2.03 ms
(8.31%)
2
UPDATE PresupuestoLine SET precio = ? WHERE id = ?
Parameters: [0 => 95, 1 => 12]
1.24 ms
(5.08%)
8
"START TRANSACTION"
Parameters: []
1.10 ms
(4.52%)
1
SELECT p0_.id AS id0, p0_.numeroPedido AS numeroPedido1, p0_.tipoPedido AS tipoPedido2, p0_.subNumeroPedido AS subNumeroPedido3, p0_.parcial AS parcial4, p0_.stringnumeropedido AS stringnumeropedido5, p0_.diasPedido AS diasPedido6, p0_.fechaCreacion AS fechaCreacion7, p0_.fechaEntrega AS fechaEntrega8, p0_.fechaDevolucion AS fechaDevolucion9, p0_.fechaEstimadaDevolucion AS fechaEstimadaDevolucion10, p0_.momentoentrega AS momentoentrega11, p0_.estado AS estado12, p0_.deposito AS deposito13, p0_.metodopago AS metodopago14, p0_.importecobrado AS importecobrado15, p0_.horaRecogidaCliente AS horaRecogidaCliente16, p0_.horaRecogidaDistribuidor AS horaRecogidaDistribuidor17, p0_.servicioExpress AS servicioExpress18, p0_.serviciodomicilio AS serviciodomicilio19, p0_.recogidadomicilio AS recogidadomicilio20, p0_.recogidadistribuidor AS recogidadistribuidor21, p0_.recogidacentral AS recogidacentral22, p0_.importeRecargo AS importeRecargo23, p0_.direccion AS direccion24, p0_.cp AS cp25, p0_.localidad AS localidad26, p0_.provincia AS provincia27, p0_.personacontacto AS personacontacto28, p0_.telefonodomicilio AS telefonodomicilio29, p0_.observaciones AS observaciones30, p0_.observacionesDevolucion AS observacionesDevolucion31, p0_.entregadopor AS entregadopor32, p0_.numeropedidointerno AS numeropedidointerno33, p0_.numeropedidointernotemporal AS numeropedidointernotemporal34, p0_.personaentrega AS personaentrega35, p0_.costeserviciodomicilio AS costeserviciodomicilio36, p0_.especial AS especial37, p0_.inicial AS inicial38, p0_.devuelta AS devuelta39, p0_.copia AS copia40, p0_.notas AS notas41, p0_.saltarCargoLogistico AS saltarCargoLogistico42, p0_.temporal AS temporal43, p0_.albaraninterno AS albaraninterno44, p0_.personarecoge AS personarecoge45, p0_.personarealizapedido AS personarealizapedido46, p0_.origen AS origen47, p0_.signature AS signature48, p0_.tokeninfoentrega AS tokeninfoentrega49, p0_.smsenviado AS smsenviado50, p0_.denysendSMStoclient AS denysendSMStoclient51, p0_.latitud AS latitud52, p0_.longitud AS longitud53, p0_.distribuidor_id AS distribuidor_id54, p0_.pago_id AS pago_id55, p0_.usuario_id AS usuario_id56, p0_.rangosserviciodomicilio_id AS rangosserviciodomicilio_id57, p0_.codigoPromocional_id AS codigoPromocional_id58 FROM Presupuestos p0_ WHERE p0_.origen <> 'a' ORDER BY p0_.numeroPedido DESC LIMIT 1
Parameters: []
0.87 ms
(3.55%)
2
SELECT t0.id AS id1, t0.diasminimos AS diasminimos2, t0.productalquiler_id AS productalquiler_id3, t0.categoriadistribuidor_id AS categoriadistribuidor_id4 FROM alquilercategoriadistribuidor t0 WHERE t0.productalquiler_id = ?
Parameters: [0 => 185]
0.65 ms
(2.68%)
1
SELECT r0_.id AS id0, r0_.texto AS texto1, r0_.coste AS coste2, r0_.textovisual AS textovisual3 FROM rangosserviciodomicilio r0_ WHERE r0_.id IN (?)
Parameters: [ 0 => [ 0 => 2 ] ]
0.40 ms
(1.63%)
1
UPDATE Presupuestos SET stringnumeropedido = ? WHERE id = ?
Parameters: [0 => W0003, 1 => 12]
0.39 ms
(1.60%)
1
SELECT t0.id AS id1, t0.rangoinferior AS rangoinferior2, t0.rangointermedioinf AS rangointermedioinf3, t0.rangointermediosup AS rangointermediosup4, t0.rangosuperior AS rangosuperior5, t0.recargo1 AS recargo16, t0.recargo2 AS recargo27, t0.recargo3 AS recargo38, t0.servicioExpress AS servicioExpress9, t0.name AS name10 FROM CategoryDistributor t0 WHERE t0.id = ?
Parameters: [0 => 1]
0.31 ms
(1.26%)
1
UPDATE Presupuestos SET horaRecogidaCliente = ? WHERE id = ?
Parameters: [0 => 07:00:00, 1 => 12]
0.30 ms
(1.23%)
1
INSERT INTO Presupuestos (numeroPedido, tipoPedido, subNumeroPedido, parcial, stringnumeropedido, diasPedido, fechaCreacion, fechaEntrega, fechaDevolucion, fechaEstimadaDevolucion, momentoentrega, estado, deposito, metodopago, importecobrado, horaRecogidaCliente, horaRecogidaDistribuidor, servicioExpress, serviciodomicilio, recogidadomicilio, recogidadistribuidor, recogidacentral, importeRecargo, direccion, cp, localidad, provincia, personacontacto, telefonodomicilio, observaciones, observacionesDevolucion, entregadopor, numeropedidointerno, numeropedidointernotemporal, personaentrega, costeserviciodomicilio, especial, inicial, devuelta, copia, notas, saltarCargoLogistico, temporal, albaraninterno, personarecoge, personarealizapedido, origen, signature, tokeninfoentrega, smsenviado, denysendSMStoclient, latitud, longitud, distribuidor_id, pago_id, usuario_id, rangosserviciodomicilio_id, codigoPromocional_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
Parameters: [1 => 3, 2 => 1, 3 => 0, 4 => 0, 5 => null, 6 => 0, 7 => 2025-10-01 17:05:46, 8 => 2025-10-02 00:00:00, 9 => null, 10 => null, 11 => null, 12 => pendiente, 13 => null, 14 => null, 15 => null, 16 => null, 17 => null, 18 => 0, 19 => 0, 20 => 0, 21 => 0, 22 => 0, 23 => 0, 24 => null, 25 => null, 26 => null, 27 => null, 28 => null, 29 => null, 30 => null, 31 => null, 32 => null, 33 => 0, 34 => null, 35 => null, 36 => null, 37 => 0, 38 => 1, 39 => 0, 40 => 0, 41 => , 42 => 0, 43 => 0, 44 => null, 45 => null, 46 => Emma, 47 => w, 48 => null, 49 => null, 50 => 0, 51 => 0, 52 => null, 53 => null, 54 => 2, 55 => null, 56 => 38939, 57 => 2, 58 => null]
0.24 ms
(0.98%)
1
SELECT t0.id AS id1, t0.recargo AS recargo2 FROM servicioDomicilio t0 WHERE t0.id = ?
Parameters: [0 => 1]

localizacion connection

No database queries were performed.

Database Connections

Name Service
localizacion doctrine.dbal.localizacion_connection
maenar doctrine.dbal.maenar_connection

Entity Managers

Name Service
default doctrine.orm.default_entity_manager
localizacion doctrine.orm.localizacion_entity_manager

Second Level Cache

Second Level Cache is not enabled.

Entities Mapping

localizacion entity manager

No loaded entities.

default entity manager

Class Mapping errors
Maenar\coreBundle\Entity\User
  • The field Maenar\coreBundle\Entity\User#usuariosautorizados is on the inverse side of a bi-directional relationship, but the specified mappedBy association on the target-entity Maenar\coreBundle\Entity\usuarioautorizado#cliente does not contain the required 'inversedBy=usuariosautorizados' attribute.
Maenar\coreBundle\Entity\Distributor
  • The field Maenar\coreBundle\Entity\Distributor#usuariosautorizados is on the inverse side of a bi-directional relationship, but the specified mappedBy association on the target-entity Maenar\coreBundle\Entity\usuarioautorizado#cliente does not contain the required 'inversedBy=usuariosautorizados' attribute.
  • The mappings Maenar\coreBundle\Entity\Distributor#categoryDistributor and Maenar\coreBundle\Entity\CategoryDistributor#distributors are inconsistent with each other.
Maenar\coreBundle\Entity\admin
  • The field Maenar\coreBundle\Entity\admin#usuariosautorizados is on the inverse side of a bi-directional relationship, but the specified mappedBy association on the target-entity Maenar\coreBundle\Entity\usuarioautorizado#cliente does not contain the required 'inversedBy=usuariosautorizados' attribute.
Maenar\coreBundle\Entity\UserWeb
  • The field Maenar\coreBundle\Entity\UserWeb#usuariosautorizados is on the inverse side of a bi-directional relationship, but the specified mappedBy association on the target-entity Maenar\coreBundle\Entity\usuarioautorizado#cliente does not contain the required 'inversedBy=usuariosautorizados' attribute.
Maenar\coreBundle\Entity\little
  • The field Maenar\coreBundle\Entity\little#usuariosautorizados is on the inverse side of a bi-directional relationship, but the specified mappedBy association on the target-entity Maenar\coreBundle\Entity\usuarioautorizado#cliente does not contain the required 'inversedBy=usuariosautorizados' attribute.
Maenar\coreBundle\Entity\gestorZonaUser
  • The field Maenar\coreBundle\Entity\gestorZonaUser#usuariosautorizados is on the inverse side of a bi-directional relationship, but the specified mappedBy association on the target-entity Maenar\coreBundle\Entity\usuarioautorizado#cliente does not contain the required 'inversedBy=usuariosautorizados' attribute.
Maenar\coreBundle\Entity\usuarioautorizado No errors.
Maenar\coreBundle\Entity\CategoryDistributor
  • The association Maenar\coreBundle\Entity\CategoryDistributor#distributors refers to the owning side field Maenar\coreBundle\Entity\Distributor#categorydistributor which does not exist.
Maenar\coreBundle\Entity\gestorZona No errors.
Maenar\varsBundle\Entity\servicioDomicilio No errors.
Maenar\presupuestoBundle\Entity\Presupuestos
  • The association Maenar\presupuestoBundle\Entity\Presupuestos#pago refers to the inverse side field Maenar\PagoBundle\Entity\pago#Presupuesto which does not exist.
  • The mappings Maenar\presupuestoBundle\Entity\Presupuestos#PresupuestoLines and Maenar\presupuestoBundle\Entity\PresupuestoLine#Presupuesto are inconsistent with each other.
  • The association Maenar\presupuestoBundle\Entity\Presupuestos#horariosDisponibles refers to the owning side field Maenar\transporteBundle\Entity\horariosDisponibles#Presupuesto which does not exist.
Maenar\varsBundle\Entity\rangosserviciodomicilio No errors.
Maenar\PagoBundle\Entity\pago No errors.
Maenar\presupuestoBundle\Entity\PresupuestoLine
  • The association Maenar\presupuestoBundle\Entity\PresupuestoLine#Presupuesto refers to the inverse side field Maenar\presupuestoBundle\Entity\Presupuestos#PresupuestoLine which does not exist.
  • The association Maenar\presupuestoBundle\Entity\PresupuestoLine#gestorZ refers to the inverse side field Maenar\coreBundle\Entity\gestorZona#PresupuestoLine which does not exist.
  • The field Maenar\presupuestoBundle\Entity\PresupuestoLine#lineasdealquiler is on the inverse side of a bi-directional relationship, but the specified mappedBy association on the target-entity Maenar\presupuestoBundle\Entity\PresupuestoLine#idlineaorigen does not contain the required 'inversedBy=lineasdealquiler' attribute.
Maenar\transporteBundle\Entity\horariosDisponibles
  • The association Maenar\transporteBundle\Entity\horariosDisponibles#order refers to the inverse side field Maenar\orderBundle\Entity\Orders#TimeDistribution which does not exist.
Maenar\varsBundle\Entity\codigoPromocional No errors.
Maenar\varsBundle\Entity\Empresa No errors.
Maenar\productsBundle\Entity\Product
  • The field Maenar\productsBundle\Entity\Product#images is on the inverse side of a bi-directional relationship, but the specified mappedBy association on the target-entity Maenar\productsBundle\Entity\Images#product does not contain the required 'inversedBy=images' attribute.
  • The field Maenar\productsBundle\Entity\Product#videos is on the inverse side of a bi-directional relationship, but the specified mappedBy association on the target-entity Maenar\productsBundle\Entity\video#product does not contain the required 'inversedBy=videos' attribute.
  • The field Maenar\productsBundle\Entity\Product#pdfs is on the inverse side of a bi-directional relationship, but the specified mappedBy association on the target-entity Maenar\productsBundle\Entity\pdfs#product does not contain the required 'inversedBy=pdfs' attribute.
  • The field Maenar\productsBundle\Entity\Product#tags is on the inverse side of a bi-directional relationship, but the specified mappedBy association on the target-entity Maenar\productsBundle\Entity\Tag#product does not contain the required 'inversedBy=tags' attribute.
Maenar\productsBundle\Entity\productalquiler
  • The field Maenar\productsBundle\Entity\productalquiler#images is on the inverse side of a bi-directional relationship, but the specified mappedBy association on the target-entity Maenar\productsBundle\Entity\Images#product does not contain the required 'inversedBy=images' attribute.
  • The field Maenar\productsBundle\Entity\productalquiler#videos is on the inverse side of a bi-directional relationship, but the specified mappedBy association on the target-entity Maenar\productsBundle\Entity\video#product does not contain the required 'inversedBy=videos' attribute.
  • The field Maenar\productsBundle\Entity\productalquiler#pdfs is on the inverse side of a bi-directional relationship, but the specified mappedBy association on the target-entity Maenar\productsBundle\Entity\pdfs#product does not contain the required 'inversedBy=pdfs' attribute.
  • The field Maenar\productsBundle\Entity\productalquiler#tags is on the inverse side of a bi-directional relationship, but the specified mappedBy association on the target-entity Maenar\productsBundle\Entity\Tag#product does not contain the required 'inversedBy=tags' attribute.
  • The field Maenar\productsBundle\Entity\productalquiler#roturas is on the inverse side of a bi-directional relationship, but the specified mappedBy association on the target-entity Maenar\productsBundle\Entity\rotura#productalquiler does not contain the required 'inversedBy=roturas' attribute.
  • The field Maenar\productsBundle\Entity\productalquiler#alquilercategoriadistribuidores is on the inverse side of a bi-directional relationship, but the specified mappedBy association on the target-entity Maenar\productsBundle\Entity\alquilercategoriadistribuidor#productalquiler does not contain the required 'inversedBy=alquilercategoriadistribuidores' attribute.
Maenar\productsBundle\Entity\productconsumible
  • The field Maenar\productsBundle\Entity\productconsumible#images is on the inverse side of a bi-directional relationship, but the specified mappedBy association on the target-entity Maenar\productsBundle\Entity\Images#product does not contain the required 'inversedBy=images' attribute.
  • The field Maenar\productsBundle\Entity\productconsumible#videos is on the inverse side of a bi-directional relationship, but the specified mappedBy association on the target-entity Maenar\productsBundle\Entity\video#product does not contain the required 'inversedBy=videos' attribute.
  • The field Maenar\productsBundle\Entity\productconsumible#pdfs is on the inverse side of a bi-directional relationship, but the specified mappedBy association on the target-entity Maenar\productsBundle\Entity\pdfs#product does not contain the required 'inversedBy=pdfs' attribute.
  • The field Maenar\productsBundle\Entity\productconsumible#tags is on the inverse side of a bi-directional relationship, but the specified mappedBy association on the target-entity Maenar\productsBundle\Entity\Tag#product does not contain the required 'inversedBy=tags' attribute.
Maenar\productsBundle\Entity\productsegundamano
  • The field Maenar\productsBundle\Entity\productsegundamano#images is on the inverse side of a bi-directional relationship, but the specified mappedBy association on the target-entity Maenar\productsBundle\Entity\Images#product does not contain the required 'inversedBy=images' attribute.
  • The field Maenar\productsBundle\Entity\productsegundamano#videos is on the inverse side of a bi-directional relationship, but the specified mappedBy association on the target-entity Maenar\productsBundle\Entity\video#product does not contain the required 'inversedBy=videos' attribute.
  • The field Maenar\productsBundle\Entity\productsegundamano#pdfs is on the inverse side of a bi-directional relationship, but the specified mappedBy association on the target-entity Maenar\productsBundle\Entity\pdfs#product does not contain the required 'inversedBy=pdfs' attribute.
  • The field Maenar\productsBundle\Entity\productsegundamano#tags is on the inverse side of a bi-directional relationship, but the specified mappedBy association on the target-entity Maenar\productsBundle\Entity\Tag#product does not contain the required 'inversedBy=tags' attribute.
Maenar\productsBundle\Entity\Subcategory No errors.
Maenar\productsBundle\Entity\Images No errors.
Maenar\productsBundle\Entity\video No errors.
Maenar\productsBundle\Entity\pdfs No errors.
Maenar\productsBundle\Entity\Tag No errors.
Maenar\productsBundle\Entity\TipoIVA No errors.
Maenar\productsBundle\Entity\rotura No errors.
Maenar\productsBundle\Entity\alquilercategoriadistribuidor No errors.
Maenar\productsBundle\Entity\contrato
  • The field Maenar\productsBundle\Entity\contrato#productos is on the inverse side of a bi-directional relationship, but the specified mappedBy association on the target-entity Maenar\productsBundle\Entity\productalquiler#contrato does not contain the required 'inversedBy=productos' attribute.
Maenar\presupuestoBundle\Entity\productorderlinecerrado
  • The field Maenar\presupuestoBundle\Entity\productorderlinecerrado#orderlines is on the inverse side of a bi-directional relationship, but the specified mappedBy association on the target-entity Maenar\presupuestoBundle\Entity\PresupuestoLine#productorderlinecerrado does not contain the required 'inversedBy=orderlines' attribute.
Maenar\productsBundle\Entity\Category
  • The field Maenar\productsBundle\Entity\Category#subcategories is on the inverse side of a bi-directional relationship, but the specified mappedBy association on the target-entity Maenar\productsBundle\Entity\Subcategory#category does not contain the required 'inversedBy=subcategories' attribute.