Skip to content

Instantly share code, notes, and snippets.

@esoergel
Last active August 29, 2015 14:20
Show Gist options
  • Save esoergel/a76284fb3222d642c458 to your computer and use it in GitHub Desktop.
Save esoergel/a76284fb3222d642c458 to your computer and use it in GitHub Desktop.
<?xml version="1.0" encoding="UTF-8" ?>
<h:html xmlns:h="http://www.w3.org/1999/xhtml" xmlns:orx="http://openrosa.org/jr/xforms" xmlns="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:jr="http://openrosa.org/javarosa" xmlns:vellum="http://commcarehq.org/xforms/vellum">
<h:head>
<h:title>New Commande UX</h:title>
<model>
<instance>
<data xmlns:jrm="http://dev.commcarehq.org/jr/xforms" xmlns="http://openrosa.org/formdesigner/3c2e45b4c8d9ce9df41dfed50a1031255f5ce8b8" uiVersion="1" version="1" name="New Commande UX">
<products ids="" count="" current_index="" vellum:role="Repeat">
<item id="" index="" jr:template="">
<is_required />
<stock_data>
<stock_final_derniere_livraison />
<stock_vendu_derniere_livraison />
<stock_initial />
<retour />
<stocks_declasses_remplacer />
</stock_data>
<prev_stock_final />
<coalesce_prev_stock_final />
<display_prev_stock_final />
<prev_stock_vendu />
<coalesce_prev_stock_vendu />
<prev_stock_vendu_label />
<retour_transfer_source>
<transfer date="" src="" xmlns="http://commcarehq.org/ledger/v1" type="retour_transfer_source" section-id="stock" vellum:role="Transfer">
<entry id="" quantity="" />
</transfer>
</retour_transfer_source>
<stock_initial_balance>
<balance entity-id="" date="" xmlns="http://commcarehq.org/ledger/v1" type="stock_initial_balance" section-id="stock" vellum:role="Balance">
<entry id="" quantity="" />
</balance>
</stock_initial_balance>
<stock_vendu />
<stock_vendu_label />
<prev_stock_vendu_balance>
<balance entity-id="" date="" xmlns="http://commcarehq.org/ledger/v1" type="prev_stock_vendu_balance" section-id="prev_stock_vendu" vellum:role="Balance">
<entry id="" quantity="" />
</balance>
</prev_stock_vendu_balance>
<livraison_necessaire />
<livraison_necessaire_label />
<total_1_ci_product />
<total_1_product_label />
</item>
</products>
<facture>
<products ids="" count="" current_index="" vellum:role="Repeat">
<item id="" index="" jr:template="">
<product_bill_livraison_necessaire_label />
</item>
</products>
</facture>
<total_1_ci />
<accept_total_1 />
<products_1 ids="" count="" current_index="" vellum:role="Repeat">
<item id="" index="" jr:template="">
<livraison_data>
<livraison_necessaire_label />
<livraison_necessaire_question />
<livraison_faite />
</livraison_data>
<livraison_effective />
<total_1_product />
<livraison_effective_label />
<livraison_transfer_group>
<transfer date="" dest="" xmlns="http://commcarehq.org/ledger/v1" type="livraison_transfer" section-id="stock" vellum:role="Transfer">
<entry id="" quantity="" />
</transfer>
</livraison_transfer_group>
<retour_transfer_destination>
<transfer date="" dest="" xmlns="http://commcarehq.org/ledger/v1" type="retour_transfer_destination" section-id="stock" vellum:role="Transfer">
<entry id="" quantity="" />
</transfer>
</retour_transfer_destination>
</item>
</products_1>
<total_1 />
<total_1_label />
</data>
</instance>
<instance src="jr://fixture/commtrack:products" id=" products"></instance>
<instance src="jr://instance/ledgerdb" id="ledger"></instance>
<instance src=" jr://fixture/commtrack:products" id="products"></instance>
<instance id="ledger" src="jr://instance/ledgerdb"></instance>
<bind nodeset="/data/products/@current_index" calculate="count(/data/products/item)" />
<bind nodeset="/data/products/item" />
<bind nodeset="/data/products/item/is_required" calculate="instance('ledger')/ledgerdb/ledger[@entity-id=instance('commcaresession')/session/data/case_id]/section[@section-id='is_required']/entry[@id=current()/../@id]" />
<bind nodeset="/data/products/item/stock_data" />
<bind nodeset="/data/products/item/stock_data/stock_final_derniere_livraison" type="xsd:int" relevant="/data/products/item/prev_stock_final = ''" />
<bind nodeset="/data/products/item/stock_data/stock_vendu_derniere_livraison" type="xsd:int" relevant="/data/products/item/prev_stock_vendu = ''" />
<bind nodeset="/data/products/item/stock_data/stock_initial" type="xsd:int" />
<bind nodeset="/data/products/item/stock_data/retour" type="xsd:int" />
<bind nodeset="/data/products/item/stock_data/stocks_declasses_remplacer" relevant="/data/products/item/stock_data/retour &gt; '0'" />
<bind nodeset="/data/products/item/prev_stock_final" calculate="instance('ledger')/ledgerdb/ledger[@entity-id=instance('commcaresession')/session/data/case_id]/section[@section-id='stock']/entry[@id=current()/../@id]" />
<bind nodeset="/data/products/item/coalesce_prev_stock_final" calculate="coalesce(/data/products/item/prev_stock_final, /data/products/item/stock_data/stock_final_derniere_livraison)" />
<bind nodeset="/data/products/item/display_prev_stock_final" />
<bind nodeset="/data/products/item/prev_stock_vendu" calculate="instance('ledger')/ledgerdb/ledger[@entity-id=instance('commcaresession')/session/data/case_id]/section[@section-id='prev_stock_vendu']/entry[@id=current()/../@id]" />
<bind nodeset="/data/products/item/coalesce_prev_stock_vendu" calculate="coalesce(/data/products/item/prev_stock_vendu, /data/products/item/stock_data/stock_vendu_derniere_livraison)" />
<bind nodeset="/data/products/item/prev_stock_vendu_label" />
<bind nodeset="/data/products/item/retour_transfer_source" />
<bind nodeset="/data/products/item/retour_transfer_source/transfer[@type='retour_transfer_source']/entry/@quantity" calculate="/data/products/item/stock_data/retour" />
<bind nodeset="/data/products/item/stock_initial_balance" />
<bind nodeset="/data/products/item/stock_initial_balance/balance[@type='stock_initial_balance']/entry/@quantity" calculate="/data/products/item/stock_data/stock_initial" />
<bind nodeset="/data/products/item/stock_vendu" calculate="int(/data/products/item/coalesce_prev_stock_final - /data/products/item/stock_data/stock_initial - /data/products/item/stock_data/retour)" />
<bind nodeset="/data/products/item/stock_vendu_label" relevant="/data/products/item/is_required = 1" />
<bind nodeset="/data/products/item/prev_stock_vendu_balance" />
<bind nodeset="/data/products/item/prev_stock_vendu_balance/balance[@type='prev_stock_vendu_balance']/entry/@quantity" calculate="/data/products/item/stock_vendu" />
<bind nodeset="/data/products/item/livraison_necessaire" calculate="max(round((/data/products/item/coalesce_prev_stock_vendu + /data/products/item/stock_vendu) div 2 * 1.2 - /data/products/item/stock_data/stock_initial), '0')" />
<bind nodeset="/data/products/item/livraison_necessaire_label" />
<bind nodeset="/data/products/item/total_1_ci_product" calculate="coalesce((/data/products/item/livraison_necessaire * instance('products')/products/product[@id=current()/../@id]/cost), &quot;0&quot;)" />
<bind nodeset="/data/products/item/total_1_product_label" />
<bind nodeset="/data/facture" />
<bind nodeset="/data/facture/products/@current_index" calculate="count(/data/facture/products/item)" />
<bind nodeset="/data/facture/products/item" />
<bind nodeset="/data/facture/products/item/product_bill_livraison_necessaire_label" />
<bind nodeset="/data/total_1_ci" calculate="sum(/data/products/item/total_1_ci_product)" />
<bind nodeset="/data/accept_total_1" />
<bind nodeset="/data/products_1/@current_index" calculate="count(/data/products_1/item)" />
<bind nodeset="/data/products_1/item" />
<bind nodeset="/data/products_1/item/livraison_data" relevant="(/data/accept_total_1) = ('no') " />
<bind nodeset="/data/products_1/item/livraison_data/livraison_necessaire_label" />
<bind nodeset="/data/products_1/item/livraison_data/livraison_necessaire_question" required="true()" />
<bind nodeset="/data/products_1/item/livraison_data/livraison_faite" type="xsd:int" relevant="/data/products_1/item/livraison_data/livraison_necessaire_question = 'no'" />
<bind nodeset="/data/products_1/item/livraison_effective" calculate="if(/data/products_1/item/livraison_data/livraison_necessaire_question = 'no', /data/products_1/item/livraison_data/livraison_faite, /data/products/item[@id = current()/../@id]/livraison_necessaire)" />
<bind nodeset="/data/products_1/item/total_1_product" calculate="coalesce((/data/products_1/item/livraison_effective * instance('products')/products/product[@id=current()/../@id]/cost), &quot;0&quot;)" />
<bind nodeset="/data/products_1/item/livraison_effective_label" />
<bind nodeset="/data/products_1/item/livraison_transfer_group" />
<bind nodeset="/data/products_1/item/livraison_transfer_group/transfer[@type='livraison_transfer']/entry/@quantity" calculate="/data/products_1/item/livraison_effective" />
<bind nodeset="/data/products_1/item/retour_transfer_destination" relevant="/data/products/item[@id=current()/../@id]/stock_data/stocks_declasses_remplacer = 'yes'" />
<bind nodeset="/data/products_1/item/retour_transfer_destination/transfer[@type='retour_transfer_destination']/entry/@quantity" calculate="/data/products/item[@id=current()/../@id]/stock_data/retour" />
<bind nodeset="/data/total_1" calculate="sum(/data/products_1/item/total_1_product)" />
<bind nodeset="/data/total_1_label" />
<setvalue event="xforms-ready" ref="/data/products/@ids" value="join(' ', instance('products')/products/product/@id)" />
<setvalue event="xforms-ready" ref="/data/products/@count" value="count-selected(/data/products/@ids)" />
<setvalue event="jr-insert" ref="/data/products/item/@index" value="int(/data/products/@current_index)" />
<setvalue event="jr-insert" ref="/data/products/item/@id" value="selected-at(/data/products/@ids,../@index)" />
<setvalue event="jr-insert" ref="/data/products/item/stock_initial_balance/balance[@type='stock_initial_balance']/@date" value="today()" />
<setvalue event="jr-insert" ref="/data/products/item/stock_initial_balance/balance[@type='stock_initial_balance']/entry/@id" value="current()/../../../../@id" />
<setvalue event="jr-insert" ref="/data/products/item/stock_initial_balance/balance[@type='stock_initial_balance']/@entity-id" value="instance('commcaresession')/session/data/case_id" />
<setvalue event="jr-insert" ref="/data/products_1/item/livraison_transfer_group/transfer[@type='livraison_transfer']/entry/@id" value="current()/../../../../@id" />
<setvalue event="jr-insert" ref="/data/products_1/item/livraison_transfer_group/transfer[@type='livraison_transfer']/@dest" value="instance('commcaresession')/session/data/case_id" />
<setvalue event="jr-insert" ref="/data/products_1/item/livraison_transfer_group/transfer[@type='livraison_transfer']/@date" value="today()" />
<setvalue event="jr-insert" ref="/data/products/item/prev_stock_vendu_balance/balance[@type='prev_stock_vendu_balance']/entry/@id" value="current()/../../../../@id" />
<setvalue event="jr-insert" ref="/data/products/item/prev_stock_vendu_balance/balance[@type='prev_stock_vendu_balance']/@entity-id" value="instance('commcaresession')/session/data/case_id" />
<setvalue event="jr-insert" ref="/data/products/item/prev_stock_vendu_balance/balance[@type='prev_stock_vendu_balance']/@date" value="today()" />
<setvalue event="jr-insert" ref="/data/products/item/retour_transfer_source/transfer[@type='retour_transfer_source']/entry/@id" value="current()/../../../../@id" />
<setvalue event="jr-insert" ref="/data/products/item/retour_transfer_source/transfer[@type='retour_transfer_source']/@src" value="instance('commcaresession')/session/data/case_id" />
<setvalue event="jr-insert" ref="/data/products/item/retour_transfer_source/transfer[@type='retour_transfer_source']/@date" value="today()" />
<setvalue event="jr-insert" ref="/data/products_1/item/retour_transfer_destination/transfer[@type='retour_transfer_destination']/@date" value="today()" />
<setvalue event="xforms-ready" ref="/data/products_1/@ids" value="join(' ', instance('products')/products/product/@id)" />
<setvalue event="xforms-ready" ref="/data/products_1/@count" value="count-selected(/data/products_1/@ids)" />
<setvalue event="jr-insert" ref="/data/products_1/item/@index" value="int(/data/products_1/@current_index)" />
<setvalue event="jr-insert" ref="/data/products_1/item/@id" value="selected-at(/data/products_1/@ids,../@index)" />
<setvalue event="jr-insert" ref="/data/products_1/item/retour_transfer_destination/transfer[@type='retour_transfer_destination']/@dest" value="instance('commcaresession')/session/data/case_id" />
<setvalue event="jr-insert" ref="/data/products_1/item/retour_transfer_destination/transfer[@type='retour_transfer_destination']/entry/@id" value="current()/../../../../@id" />
<setvalue event="xforms-ready" ref="/data/facture/products/@ids" value="join(' ', instance('products')/products/product/@id)" />
<setvalue event="xforms-ready" ref="/data/facture/products/@count" value="count-selected(/data/facture/products/@ids)" />
<setvalue event="jr-insert" ref="/data/facture/products/item/@index" value="int(/data/facture/products/@current_index)" />
<setvalue event="jr-insert" ref="/data/facture/products/item/@id" value="selected-at(/data/facture/products/@ids,../@index)" />
<itext>
<translation lang="en" default="">
<text id="question1-label">
<value><output value="instance('products')/products/product[@id=current()/@id]/name" /></value>
</text>
<text id="products/item/stock_data-label">
<value>stock_data</value>
</text>
<text id="products/item/stock_final_derniere_livraison-label">
<value>Stock Final Derniere Livraison</value>
</text>
<text id="products/item/stock_vendu_derniere_livraison-label">
<value>Stock Vendu Derniere Livraison</value>
</text>
<text id="products/item/stock_initial-label">
<value>Stock initial</value>
</text>
<text id="products/item/retour-label">
<value>How much was retourned?</value>
</text>
<text id="products/item/stocks_declasses_remplacer-label">
<value>Are you going to replace the stocks declasses?</value>
</text>
<text id="products/item/stocks_declasses_remplacer-yes-label">
<value>yes</value>
</text>
<text id="products/item/stocks_declasses_remplacer-no-label">
<value>no</value>
</text>
<text id="products/item/display_prev_stock_final-label">
<value>Prev stock final from ledger <output value="/data/products/item/prev_stock_final" /></value>
</text>
<text id="products/item/prev_stock_vendu_label-label">
<value>Prev stock vendu ledger <output value="/data/products/item/prev_stock_vendu" /></value>
</text>
<text id="products/item/retour_transfer_source-label">
<value>retour_transfer_source</value>
</text>
<text id="products/item/stock_initial_balance-label">
<value>stock_initial_balance</value>
</text>
<text id="products/item/stock_vendu_label-label">
<value>Stock vendu: <output value="/data/products/item/stock_vendu" /></value>
</text>
<text id="products/item/prev_stock_vendu_balance-label">
<value>prev_stock_vendu_balance</value>
</text>
<text id="products/item/livraison_necessaire_label-label">
<value>Livraison necessaire <output value="/data/products/item/livraison_necessaire" /></value>
</text>
<text id="products/item/total_1_product_label-label">
<value>Total 1 product <output value="/data/products/item/total_1_ci_product" /></value>
</text>
<text id="facture-label">
<value>facture</value>
</text>
<text id="facture/question2-label">
<value>products</value>
</text>
<text id="facture/products/item/product_bill_livraison_necessaire_label-label">
<value><output value="instance('products')/products/product[@id=current()/../@id]/name" /> Total 1 est CFA <output value="/data/products/item[@id = current()/../@id]/total_1_ci_product" /> et CI est <output value="/data/products/item[@id = current()/../@id]/livraison_necessaire" /></value>
</text>
<text id="accept_total_1-label">
<value>Total 1 CI is <output value="/data/total_1_ci" />, do you accept?</value>
</text>
<text id="accept_total_1-yes-label">
<value>yes</value>
</text>
<text id="accept_total_1-no-label">
<value>no</value>
</text>
<text id="question1-label2">
<value><output value="instance('products')/products/product[@id=current()/@id]/name" /></value>
</text>
<text id="products/item/livraison_data-label">
<value>livraison_data</value>
</text>
<text id="products_1/item/livraison_data/livraison_necessaire_label-label">
<value>CI is <output value=" /data/products/item[@id = current()/../../@id]/livraison_necessaire " /></value>
</text>
<text id="products_1/item/livraison_data/livraison_necessaire_question-label">
<value>Do you accept CI?</value>
</text>
<text id="products/item/livraison_necessaire_question-yes-label">
<value>yes</value>
</text>
<text id="products/item/livraison_necessaire_question-no-label">
<value>no</value>
</text>
<text id="products/item/livraison_faite-label">
<value>How much you're delivering?</value>
</text>
<text id="products/item/livraison_effective_label-label">
<value>Livraison effective <output value="/data/products_1/item/livraison_effective" /> and Total 1 is <output value="/data/products_1/item/total_1_product" /></value>
</text>
<text id="products/item/livraison_transfer-label">
<value>livraison_transfer_group</value>
</text>
<text id="products/item/livraison_transfer/question5-label">
<value>retour_transfer_destination</value>
</text>
<text id="total_1_label-label">
<value>Total 1 est <output value="/data/total_1" /> CFA</value>
</text>
</translation>
</itext>
</model>
</h:head>
<h:body>
<group>
<label ref="jr:itext('question1-label')" />
<repeat jr:count="/data/products/@count" jr:noAddRemove="true()" nodeset="/data/products/item">
<group ref="/data/products/item/stock_data" appearance="field-list">
<label ref="jr:itext('products/item/stock_data-label')" />
<input ref="/data/products/item/stock_data/stock_final_derniere_livraison">
<label ref="jr:itext('products/item/stock_final_derniere_livraison-label')" />
</input>
<input ref="/data/products/item/stock_data/stock_vendu_derniere_livraison">
<label ref="jr:itext('products/item/stock_vendu_derniere_livraison-label')" />
</input>
<input ref="/data/products/item/stock_data/stock_initial">
<label ref="jr:itext('products/item/stock_initial-label')" />
</input>
<input ref="/data/products/item/stock_data/retour">
<label ref="jr:itext('products/item/retour-label')" />
</input>
<select1 ref="/data/products/item/stock_data/stocks_declasses_remplacer">
<label ref="jr:itext('products/item/stocks_declasses_remplacer-label')" />
<item>
<label ref="jr:itext('products/item/stocks_declasses_remplacer-yes-label')" />
<value>yes</value>
</item>
<item>
<label ref="jr:itext('products/item/stocks_declasses_remplacer-no-label')" />
<value>no</value>
</item>
</select1>
</group>
<trigger ref="/data/products/item/display_prev_stock_final" appearance="minimal">
<label ref="jr:itext('products/item/display_prev_stock_final-label')" />
</trigger>
<trigger ref="/data/products/item/prev_stock_vendu_label" appearance="minimal">
<label ref="jr:itext('products/item/prev_stock_vendu_label-label')" />
</trigger>
<group ref="/data/products/item/retour_transfer_source">
<label ref="jr:itext('products/item/retour_transfer_source-label')" />
</group>
<group ref="/data/products/item/stock_initial_balance">
<label ref="jr:itext('products/item/stock_initial_balance-label')" />
</group>
<trigger ref="/data/products/item/stock_vendu_label" appearance="minimal">
<label ref="jr:itext('products/item/stock_vendu_label-label')" />
</trigger>
<group ref="/data/products/item/prev_stock_vendu_balance">
<label ref="jr:itext('products/item/prev_stock_vendu_balance-label')" />
</group>
<trigger ref="/data/products/item/livraison_necessaire_label" appearance="minimal">
<label ref="jr:itext('products/item/livraison_necessaire_label-label')" />
</trigger>
<trigger ref="/data/products/item/total_1_product_label" appearance="minimal">
<label ref="jr:itext('products/item/total_1_product_label-label')" />
</trigger>
</repeat>
</group>
<group ref="/data/facture" appearance="field-list">
<label ref="jr:itext('facture-label')" />
<group>
<label ref="jr:itext('facture/question2-label')" />
<repeat jr:count="/data/facture/products/@count" jr:noAddRemove="true()" nodeset="/data/facture/products/item">
<trigger ref="/data/facture/products/item/product_bill_livraison_necessaire_label" appearance="minimal">
<label ref="jr:itext('facture/products/item/product_bill_livraison_necessaire_label-label')" />
</trigger>
</repeat>
</group>
</group>
<select1 ref="/data/accept_total_1">
<label ref="jr:itext('accept_total_1-label')" />
<item>
<label ref="jr:itext('accept_total_1-yes-label')" />
<value>yes</value>
</item>
<item>
<label ref="jr:itext('accept_total_1-no-label')" />
<value>no</value>
</item>
</select1>
<group>
<label ref="jr:itext('question1-label2')" />
<repeat jr:count="/data/products_1/@count" jr:noAddRemove="true()" nodeset="/data/products_1/item">
<group ref="/data/products_1/item/livraison_data" appearance="field-list">
<label ref="jr:itext('products/item/livraison_data-label')" />
<trigger ref="/data/products_1/item/livraison_data/livraison_necessaire_label" appearance="minimal">
<label ref="jr:itext('products_1/item/livraison_data/livraison_necessaire_label-label')" />
</trigger>
<select1 ref="/data/products_1/item/livraison_data/livraison_necessaire_question">
<label ref="jr:itext('products_1/item/livraison_data/livraison_necessaire_question-label')" />
<item>
<label ref="jr:itext('products/item/livraison_necessaire_question-yes-label')" />
<value>yes</value>
</item>
<item>
<label ref="jr:itext('products/item/livraison_necessaire_question-no-label')" />
<value>no</value>
</item>
</select1>
<input ref="/data/products_1/item/livraison_data/livraison_faite">
<label ref="jr:itext('products/item/livraison_faite-label')" />
</input>
</group>
<trigger ref="/data/products_1/item/livraison_effective_label" appearance="minimal">
<label ref="jr:itext('products/item/livraison_effective_label-label')" />
</trigger>
<group ref="/data/products_1/item/livraison_transfer_group">
<label ref="jr:itext('products/item/livraison_transfer-label')" />
</group>
<group ref="/data/products_1/item/retour_transfer_destination">
<label ref="jr:itext('products/item/livraison_transfer/question5-label')" />
</group>
</repeat>
</group>
<trigger ref="/data/total_1_label" appearance="minimal">
<label ref="jr:itext('total_1_label-label')" />
</trigger>
</h:body>
</h:html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment