[sin_prototype] Falta en el serializer el metodo "value"
En relacion con el ticket #28 (closed) da un error:
Started GET "/proyectos/181/formulacion/presupuesto_proyectos/calcula_importe?update=presupuesto&presupuesto%5Bnumero_unidades%5D=1&presupuesto%5Bcoste_unitario_convertido%5D=1" for ::1 at 2018-06-18 19:08:53 +0200
Processing by PresupuestoProyectosController#calcula_importe as HTML
Parameters: {"update"=>"presupuesto", "presupuesto"=>{"numero_unidades"=>"1", "coste_unitario_convertido"=>"1"}, "seccion"=>"proyectos", "proyecto_id"=>"181", "menu"=>"formulacion"}
Usuario Load (0.4ms) SELECT `usuario`.* FROM `usuario` WHERE `usuario`.`id` = 1 LIMIT 1
Proyecto Load (0.4ms) SELECT `proyecto`.* FROM `proyecto` WHERE `proyecto`.`id` = 181 LIMIT 1
DefinicionEstado Load (0.3ms) SELECT `definicion_estado`.* FROM `definicion_estado` INNER JOIN `estado` ON `definicion_estado`.`id` = `estado`.`definicion_estado_id` WHERE `estado`.`proyecto_id` = 181 AND `estado`.`estado_actual` = 1 LIMIT 1
(0.6ms) SELECT COUNT(*) FROM `permiso_x_rol` INNER JOIN `rol` ON `rol`.`id` = `permiso_x_rol`.`rol_id` INNER JOIN `usuario_x_proyecto` ON `usuario_x_proyecto`.`rol_id` = `rol`.`id` WHERE `usuario_x_proyecto`.`usuario_id` = 1 AND `usuario_x_proyecto`.`proyecto_id` = 181 AND `permiso_x_rol`.`ver` = 1 AND `permiso_x_rol`.`menu` = 'formulacion' AND `permiso_x_rol`.`controlador` = 'presupuesto_proyectos'
CACHE (0.0ms) SELECT COUNT(*) FROM `permiso_x_rol` INNER JOIN `rol` ON `rol`.`id` = `permiso_x_rol`.`rol_id` INNER JOIN `usuario_x_proyecto` ON `usuario_x_proyecto`.`rol_id` = `rol`.`id` WHERE `usuario_x_proyecto`.`usuario_id` = 1 AND `usuario_x_proyecto`.`proyecto_id` = 181 AND `permiso_x_rol`.`ver` = 1 AND `permiso_x_rol`.`menu` = 'formulacion' AND `permiso_x_rol`.`controlador` = 'presupuesto_proyectos' [["ver", true], ["menu", "formulacion"], ["controlador", "presupuesto_proyectos"]]
Rendered inline template (0.6ms)
Completed 500 Internal Server Error in 168ms (ActiveRecord: 3.2ms)
NoMethodError (undefined method `[]' for #<JsonGong:0x00007fd5e38b27c8>):
app/controllers/presupuesto_proyectos_controller.rb:376:in `block in calcula_importe'
app/serializers/json_gong.rb:6:in `initialize'
app/controllers/presupuesto_proyectos_controller.rb:372:in `new'
app/controllers/presupuesto_proyectos_controller.rb:372:in `calcula_importe'
Ha aparecido un nuevo metodo del prototype_helper que no tenemos implementado:
372 ::JsonGong.new(self) do |page|
373 # Cuando calculamos el importe del presupuesto total, modificamos sin mas
374 if params[:update] == "presupuesto"
375 page.replace_html "presupuesto_importe_convertido", :inline => "Importe <br><b><%= @importe_formateado %><br>"
376 page[:presupuesto_importe].value = numero_unidades * coste_unitario if numero_unidades && coste_unitario
377 # En caso contrario, modificamos un presupuesto por actividad
378 else
379 page.replace_html params[:update], :inline => "<%= texto_numero _('Importe'), 'actividad', 'importe_convertido','1_2', {name: '#{params[:update]}', value: '# {@importe_formateado}'} %>"
380 end
el metodo:
page[:prespuesto_importe].value = numero_unidades * coste_unitario if numero_unidades && coste_unitario
Nosotros crearlo en el serializer, y sustituirlo por algo asi como:
page.value( "presupuesto_importe", (numero_unidades * coste_unitario)) if numero_unidades && coste_unitario
Tambien el nombre puede cambiarse a "modificar_value" o algo asi.
El metodo no se utiliza mas que en 4 ocasiones:
app/controllers//contrato_controller.rb: page[params[:update]].value = importe_formateado
app/controllers//presupuesto_actividad_controller.rb: page[:presupuesto_x_actividad_importe].value = numero_unidades * coste_unitario if numero_unidades && coste_unitario
app/controllers//presupuesto_empleado_agentes_controller.rb: page[:presupuesto_importe].value = numero_unidades * coste_unitario if numero_unidades && coste_unitario
app/controllers//presupuesto_proyectos_controller.rb: page[:presupuesto_importe].value = numero_unidades * coste_unitario if numero_unidades && coste_unitario