Evolution 1.11.0.2
SQL Server


Opción: Organización > Estructura Organizativa > Plazas

Asignación de Centro de Costo en Edición de plaza

  1. La siguiente imagen muestra parte de la lista de valores de centros de costo, que ha sido modificada para mostrar un dato del property bag del Centro de Costo junto con la descripción del mismo:

  2. alt text

  3. La siguiente imagen muestra el resultado de seleccionar un centro de costo:

  4. alt text

  5. La siguiente imagen muestra el resultado de asociar el centro de costo a la plaza, que concuerda con el registro seleccionado, y con la manera en que el Usuario desea ver el centro de costo asignado a la plaza:

  6. alt text

  7. Sin embargo, luego de guardar la plaza, y volver a consultar su detalle, el centro de costo asignado solo muestra su descripción:

  8. alt text

¿Cómo puedo mostrar los mismos datos de la lista de selección de Centros de Costo en la vista de consulta de Centros de Costo asignados a la plaza?

La lista de selección muestra la concatenación de un campo PropertyBag del Centro de Costo y la descripción del Centro de Costo.


asked 08 Feb '18, 21:57

Henry%20Sandoval's gravatar image

Henry Sandoval
(suspended)
accept rate: 53%

edited 12 Feb '18, 10:17

Fernando%20Paz's gravatar image

Fernando Paz ♦♦
17.3k81635


La lista de centros de costo que se muestra en la pantalla, la obtiene el código fuente con sus propios servicios, sin utilizar la lista de valores que modificaste.

Dado que el formulario recibe como modelo una entidad 'Plaza' con toda sus dedendencias, incluyendo la lista de centros de costo asociados, tendrías que crear un custom view y modificar la línea en Javascript que inicializa el objeto en memoria que guarda la lista de centros de costo.

El vista para crear la custom es: Areas\Estructura\Views\Plaza\CreateOrEdit.aspx

El código a modificar sería la asignación de la variable seedData que está aproximadamente en la línea 555:

model = new ViewModel();
ko.applyBindings(model);

var seedData = JSON.parse('<%= HttpUtility.JavaScriptStringEncode(ViewData["listadoCentrosCosto"] as string?? "[]")%>');

model.listadoCentrosCosto(ko.utils.arrayMap(seedData, function(data) {
    return new CentroCostoAsociado(data);
}));

La asignación de la variable seedData, se hace con una lista preparada a nivel del código fuente, esta línea se debería sustituir por el código para formar la lista con los datos primarios de la entidad Plaza que se recibe en el modelo. Esta es una muestra de más o menos como puede ser el código para sustituir la linea 555.

<%
    var regexTemplate = "<AsociacionCentroCosto><{0}>(.*)</{0}></AsociacionCentroCosto>";
    var nombreCampo = "????????";
    var regex = new Regex(string.Format(RegexPasswordTemplate, nombreCampo));

    var lista = new JavaScriptSerializer().Serialize(Model.AsociacionesCentroCosto.Select(lcc => {
        var valorCampo = "";
        if (lcc.CentroCosoto.RawPropertyBag != null)
        {
            var match = regex.Match(lcc.CentroCosoto.RawPropertyBag);
            valorCampo = match.Success ? match.Groups[1].Value + "-" : "";
        }

        return new {
            lcc.Codigo, 
            CodigoCentroCosto = lcc.CentroCosto.NomenclaturaContable, 
            DescripcionCentroCosto = dato + lcc.CentroCosto.Descripcion, 
            lcc.Porcentaje
        };
    }));
%>
var seedData = JSON.parse('<%= HttpUtility.JavaScriptStringEncode(lista as string ?? "[]")%>');

El código que te pongo, lo copie de otro formulario por lo que puede tener errores, es para revisarlo y ajustarlo a tu necesidad.

link

answered 09 Feb '18, 10:03

Fernando%20Paz's gravatar image

Fernando Paz ♦♦
17.3k81635
accept rate: 51%

edited 12 Feb '18, 10:19

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Evolution en BitBucket

En este sitio puede acceder al código fuente, centro de descargas y reportar bugs, propuestas y mejoras para Evolution.

Evolution en JIRA

En este sitio puedes sugerir nueva funcionalidad para Evolution, o puedes votar por la funcionalidad ya propuesta por otros usuarios.

Tags:

×23
×9
×1

Asked: 08 Feb '18, 21:57

Seen: 959 times

Last updated: 12 Feb '18, 10:19

[Acerca de] [Preguntas Frecuentes] [Privacidad] [Soporte] [Contacto]
Copyright 2013-2018. Asesores en Informática