{"id":1470,"date":"2019-05-26T16:09:11","date_gmt":"2019-05-26T16:09:11","guid":{"rendered":"https:\/\/www.vtigerspain.es\/?p=1470"},"modified":"2019-05-26T16:45:42","modified_gmt":"2019-05-26T16:45:42","slug":"como-crear-ordenes-de-compra-a-partir-de-ordenes-de-venta-en-vtiger-crm-para-cada-proveedor","status":"publish","type":"post","link":"https:\/\/www.vtigerspain.es\/en\/como-crear-ordenes-de-compra-a-partir-de-ordenes-de-venta-en-vtiger-crm-para-cada-proveedor\/","title":{"rendered":"C\u00f3mo crear \u00f3rdenes de compra a partir de \u00f3rdenes de venta en vTiger CRM para cada proveedor asociado a cada producto"},"content":{"rendered":"<p>En este art\u00edculo vamos a estudiar un caso de uso del generador de workflows de la empresa vtextra.com de la cual hemos extraido de su web esta aplicaci\u00f3n del mismo a la versi\u00f3n de <strong>vTiger CRM 7<\/strong>.<\/p>\n<p>Dado un pedido de orden de venta en <strong>vTiger CRM<\/strong> que nos genera un cliente este puede derivar en la tener la posibilidad de crear un pedido de compra, pero no solo una orden de compra, sino una para cada proveedor de productos que forman parte de la orden de venta inicial, as\u00ed una orden de venta da pie a N posibles ordenes de compra.<\/p>\n<p>Supongamos que tenemos un pedido de venta con el siguiente producto:<\/p>\n<p>Producto 1 &#8211; proveedor A<\/p>\n<p>Producto 2 &#8211; proveedor B<\/p>\n<p>Producto 3 &#8211; vendedor A<\/p>\n<p>Producto 4 &#8211; proveedor C<\/p>\n<p>Producto 5 &#8211; proveedor C<\/p>\n<p>En este caso necesito 3 \u00f3rdenes de compra:<\/p>\n<p>ORDEN DE COMPRA 1: con el producto 1 y el producto 3 del proveedor A<\/p>\n<p>ORDEN DE COMPRA 2: con el producto 2 del proveedor B<\/p>\n<p>ORDEN DE COMPRA 3: con el producto 4 y el producto 5 del proveedor C<\/p>\n<p>Por supuesto, el precio de los productos de cara a los proveedores debe ser el precio de compra en el cat\u00e1logo de productos en el precio de lista.<\/p>\n<p>Implementar esta posibilidad con el m\u00f3dulo de dise\u00f1o de flujo de trabajo de vtextra.com es algo factible de ser desplegado en nuestra instancia de<strong> vTiger CRM<\/strong>.<\/p>\n<p><em><strong><span style=\"font-size: 20px;\">Flujo de trabajo principal: bucle a trav\u00e9s de productos<\/span><\/strong><\/em><\/p>\n<p>El flujo de trabajo principal lo desplegamos y se establece en el m\u00f3dulo de Ordenes de venta y debe ser implementado de esta forma:<\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone size-medium\" src=\"https:\/\/www.vtigerspain.es\/wp-content\/uploads\/2019\/05\/imagenvtextra1.png\" alt=\"vTigerSpain con vtextra.com 1\" width=\"1597\" height=\"419\" \/><\/p>\n<p>El bloque principal que utilizamos despu\u00e9s del inicio es el bucle a trav\u00e9s del producto que en nuestro caso se establecer\u00e1 de esta forma:<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-medium\" src=\"https:\/\/www.vtigerspain.es\/wp-content\/uploads\/2019\/05\/imagenvtextra2.png\" width=\"1113\" height=\"602\" \/><\/p>\n<p>Este bloque formar\u00e1 un bucle en cada producto del pedido de venta que son procesados en cada iteraci\u00f3n, pasando la informaci\u00f3n por cada item del pedido al flujo de trabajo en cuestion.<\/p>\n<p>Como no toda la informaci\u00f3n est\u00e1 disponible, usaremos otro bloque llamado ejecutar expresi\u00f3n con un registro externo, para obtener la informaci\u00f3n que falta, en este bloque buscamos en el m\u00f3dulo del producto todos los productos que tienen la ID del producto que est\u00e1 seleccionado en el bucle que estamos recorriendo en el workflow princiapl. Cuando encontramos este producto, establecemos alguna variable de entorno (dentro de la ficha del producto podemos establecer cu\u00e1l es su proveedor por defecto) para tener el ID del proveedor, el nombre del producto y el costo de compra.<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-medium\" src=\"https:\/\/www.vtigerspain.es\/wp-content\/uploads\/2019\/05\/imagenvtextra3.png\" width=\"1116\" height=\"560\" \/><\/p>\n<p>Ahora el siguiente paso es verificar si existe una orden de compra relacionada con nuestra orden de venta (para administrar esta relaci\u00f3n, agregamos un campo uitype 10 en la orden de compra que apunta a la orden de venta) con el proveedor del producto seleccionado del bucle principal: si existe, agregamos la producto al pedido de compra, si no existe, creamos pedido de compra sin producto y con este proveedor en concreto y luego agregamos el producto a comprar.<\/p>\n<p>La condici\u00f3n se debe establecer de la siguiente manera:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium\" src=\"https:\/\/www.vtigerspain.es\/wp-content\/uploads\/2019\/05\/imagenvtextra4.png\" width=\"1116\" height=\"488\" \/><\/p>\n<p>Agregar productos que mueven datos a un flujo de trabajo externo<\/p>\n<p>Esta es una soluci\u00f3n potente que usamos para agregar productos a las \u00f3rdenes de compra que se pueden ir creando en cada iteraci\u00f3n.<\/p>\n<p>Movemos algunos datos del flujo de trabajo principal a un flujo de trabajo secundario usando WRITE ENTITY DATA BL.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium\" src=\"https:\/\/www.vtigerspain.es\/wp-content\/uploads\/2019\/05\/imagenvtextra5.png\" width=\"791\" height=\"363\" \/><\/p>\n<p>Como puede ver en la imagen, establecemos algunas variables en el ejemplo idproduct tomar\u00e1 valores de la variable de entorno $ env [\u00abproducto\u00bb] [\u00abproductid\u00bb] y as\u00ed sucesivamente.<\/p>\n<p>Entonces llamamos a un flujo de trabajo externo:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium\" src=\"https:\/\/www.vtigerspain.es\/wp-content\/uploads\/2019\/05\/imagenvtextra6.png\" width=\"993\" height=\"578\" \/><\/p>\n<p>El flujo de trabajo es \u00abagregar producto de ODV\u00bb y se ejecuta en la orden de compra con la identificaci\u00f3n que se encuentra en la b\u00fasqueda global.<\/p>\n<p>El nuevo flujo de trabajo es as\u00ed:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium\" src=\"https:\/\/www.vtigerspain.es\/wp-content\/uploads\/2019\/05\/imagenvtextra7.png\" width=\"780\" height=\"185\" \/><\/p>\n<p>El bloque READ ENTITY DATA puede leer datos escritos en el bloque WRITE ENTITY DATA:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium\" src=\"https:\/\/www.vtigerspain.es\/wp-content\/uploads\/2019\/05\/imagenvtextra8.png\" width=\"728\" height=\"553\" \/><\/p>\n<p>El \u00faltimo paso es agregar un producto a esta orden de compra, utilizando los datos que obtenemos:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium\" src=\"https:\/\/www.vtigerspain.es\/wp-content\/uploads\/2019\/05\/imagenvtextra9.png\" width=\"1119\" height=\"581\" \/><\/p>\n<p>Este flujo de trabajo podr\u00eda llamarse con un bot\u00f3n en la orden de venta, que permita crear autom\u00e1ticamente todas las ordenes de compra o bien dispararlo con alguna condici\u00f3n llegado un determinado estado del pedido de venta como puede ser cuando llegue a estado aceptado.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium\" src=\"https:\/\/www.vtigerspain.es\/wp-content\/uploads\/2019\/05\/imagenvtextra10.png\" width=\"1172\" height=\"627\" \/><\/p>\n<p>A trav\u00e9s de este m\u00f3dulo de creaci\u00f3n de workflow de vtextra.com se pueden crear flujos de trabajo de crear este flujo de trabajo en esta linea:<\/p>\n<p><span style=\"font-size: large;\"><span lang=\"en-GB\"><i><b>Workflow Designer <\/b><\/i><\/span><\/span><span style=\"font-family: Wingdings;\"><span style=\"font-size: large;\"><i><b>\uf0e0<\/b><\/i><\/span><\/span><i><b> <\/b><\/i><span style=\"color: #0000ff;\"><u><a href=\"https:\/\/vtextra.com\/knowledgebase\/workflow-designer-quick-start\/\"><span lang=\"en-GB\">https:\/\/vtextra.com\/knowledgebase\/workflow-designer-quick-start\/<\/span><\/a><\/u><\/span><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En este art\u00edculo vamos a estudiar un caso de uso del generador de workflows de la empresa vtextra.com de la cual hemos extraido de su web esta aplicaci\u00f3n del mismo<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[16],"tags":[],"class_list":["post-1470","post","type-post","status-publish","format-standard","hentry","category-noticias"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/www.vtigerspain.es\/en\/wp-json\/wp\/v2\/posts\/1470","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vtigerspain.es\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vtigerspain.es\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vtigerspain.es\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vtigerspain.es\/en\/wp-json\/wp\/v2\/comments?post=1470"}],"version-history":[{"count":5,"href":"https:\/\/www.vtigerspain.es\/en\/wp-json\/wp\/v2\/posts\/1470\/revisions"}],"predecessor-version":[{"id":1477,"href":"https:\/\/www.vtigerspain.es\/en\/wp-json\/wp\/v2\/posts\/1470\/revisions\/1477"}],"wp:attachment":[{"href":"https:\/\/www.vtigerspain.es\/en\/wp-json\/wp\/v2\/media?parent=1470"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vtigerspain.es\/en\/wp-json\/wp\/v2\/categories?post=1470"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vtigerspain.es\/en\/wp-json\/wp\/v2\/tags?post=1470"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}