none
modelo de cálculo de precios de productos, usando listas de precio, unidades y listas de descuentos RRS feed

  • Pregunta

  • Estimados amigos,
    Un cliente nos está pidiendo hacer extensiones al CRM que requieren que seamos capaces de determinar el precio vigente de un producto, dada una lista de precios y lista de descuentos. ¿existe alguna forma soportada para poder determinar el precio de un producto (dato de salida) a partir del id del producto en cuestión, el id de la lista de precios aplicable y el ID de la lista de descuentos aplicable?

    He estado buscando documentación de como CRM hace los cálculos cuando uno presiona el botón "Recalcular" en una cotización (quote) o en una nota de venta (salesorder), y no he logrado encontrar información que permita entender el procedimiento de cálculo, para poder extenderlo.

    En particular, requerimos calcular ciertos campos personalizados al cambiar de lista de precios, pero no podemos lograr hacerlo dentro de los códigos onload, onsave u onchange de la entidad hija (quotedetail o salesorderdetail) , ya que no se ejecutan cuando se hace el "recalcular" en la entidad madre.

    Agradeceré cualquier ayuda al respecto
    miércoles, 3 de marzo de 2010 21:25

Respuestas

  • Hola,

    Es posible realizar estos cálculos. En varios proyectos hemos tenido que hacer cosas como estas. 

    Lo primero que deberías de hacer es obtener el precio del producto basándote en la entrada correspondiente para la lista de precios en cuestión con la unidad de medida que necesites. Las fórmulas para calcular el precio del producto en la lista de precios las tienes aquí http://msdn.microsoft.com/en-us/library/bb928283.aspx

    Una vez obtenido el precio del producto para esa lista de precios y la unidad correspondiente, deberías buscar los descuentos aplicables a ese producto en la lista de descuentos correspondiente basándote en la unidad de medida, el producto y la cantidad.

    La verdad es que resulta bastante complejo realizar todos estos cálculos. Hay muchas variable implicadas a demás de que necesitas tener en cuenta las unidades de medida y sus relaciones en todo el proceso.

    Por otra parte, lo que mencionas de calcular ciertos campos personalizados en un la linea de detalle (ya sea de opportunity, quote o sales order) al cambiar la lista de precios en la entidad padre es algo que debes hacer mediante plug-ins. El código JavaScript unicamente se ejecuta cuando abre el formulario, por lo que si cambias el price list, hasta que vuelvas a abrir el formulario de cada uno de los elementos de detalle tu código JavaScript no se ejecutará por lo que no es viable. Piensa que el botón de recalcular lo único que hace es recargar el formulario los cálculos se hacen internamente mediante plug-ins, así que tú deberías añadir los tuyos propios para tus campos.

    Espero que te sirva de ayuda.

    Un saludo


    Marco Amoedo - http://marcoamoedo.com
    • Marcado como respuesta keefertris sábado, 6 de marzo de 2010 13:55
    sábado, 6 de marzo de 2010 13:15
    Moderador

Todas las respuestas

  • Hola,

    Es posible realizar estos cálculos. En varios proyectos hemos tenido que hacer cosas como estas. 

    Lo primero que deberías de hacer es obtener el precio del producto basándote en la entrada correspondiente para la lista de precios en cuestión con la unidad de medida que necesites. Las fórmulas para calcular el precio del producto en la lista de precios las tienes aquí http://msdn.microsoft.com/en-us/library/bb928283.aspx

    Una vez obtenido el precio del producto para esa lista de precios y la unidad correspondiente, deberías buscar los descuentos aplicables a ese producto en la lista de descuentos correspondiente basándote en la unidad de medida, el producto y la cantidad.

    La verdad es que resulta bastante complejo realizar todos estos cálculos. Hay muchas variable implicadas a demás de que necesitas tener en cuenta las unidades de medida y sus relaciones en todo el proceso.

    Por otra parte, lo que mencionas de calcular ciertos campos personalizados en un la linea de detalle (ya sea de opportunity, quote o sales order) al cambiar la lista de precios en la entidad padre es algo que debes hacer mediante plug-ins. El código JavaScript unicamente se ejecuta cuando abre el formulario, por lo que si cambias el price list, hasta que vuelvas a abrir el formulario de cada uno de los elementos de detalle tu código JavaScript no se ejecutará por lo que no es viable. Piensa que el botón de recalcular lo único que hace es recargar el formulario los cálculos se hacen internamente mediante plug-ins, así que tú deberías añadir los tuyos propios para tus campos.

    Espero que te sirva de ayuda.

    Un saludo


    Marco Amoedo - http://marcoamoedo.com
    • Marcado como respuesta keefertris sábado, 6 de marzo de 2010 13:55
    sábado, 6 de marzo de 2010 13:15
    Moderador
  • Estimado Marco,

    Muchas gracias por la información. Confirma la idea central de usar plug-ins para esta acción, aunque también agregamos código al evento onchange del campo "lista de precios", para que se hiciera la actualización en forma inmediata, y no cuando se grabe el registro.

    Lamentablemente, aún no encuentro documentación del detalle de la fórmula de cálculo, para poder aprovechar el motor interno de CRM. Que lástima que esté tan poco documentada (incluso si hay que explicarlo a un cliente!)

    Saludos
    sábado, 6 de marzo de 2010 13:54