0.00.0100011NY5000Yadmin2007/04/09 17:01:13.040This Transform does two things.
Firstly it uses the cahrges and services tables to construct service
products and their prices for ongoing charging in OpenVPMS.
Secondly it creates a set of deactivate service products that ar ereferenced by the legacy invoice
that have been migrated. This is necessary as the legacy system only provides a serviceid in the invoice and
doesn't hold the actual service charge reference that was selected at the time of charging (Silly)17875535101Services InputSelect Service fieldsYTransform Service FieldsSort by product IdYCharges InputSelect Charge fieldsYRow NormaliserFilter rowsYFilter rowsSort Charge RowsYSort Charge RowsMerge JoinYMerge JoinTransform Service FieldsYTransform Service Reference FieldsProduct ReferenceYSort by product IdUnique product Id'sYUnique product Id'sProduct Service ChargesYSelect Service fieldsSort Service RowsYSelect Charge fieldsRow NormaliserYSort Service RowsMerge JoinYServices InputSelect Service Reference FieldsYSelect Service Reference FieldsTransform Service Reference FieldsYCharges InputXBaseInputY1noneF:\VETAID\CHARGES.DBF0NNN53479YFilter rowsFilterRowsY1noneNITEMNAME<>constantString-1-1Y400476YMerge JoinMergeJoinY1noneINNERSort Service RowsSort Charge RowsSERVICESERVICE395314YProduct ReferenceOpenVPMSLoaderPluginY1noneopenvpmsPRODUCTID<product.service>namefalsefalse<product.service>activefalsefalse<product.service>prices[0]<productPrice.unitPrice>pricetruefalse<product.service>prices[1]<productPrice.fixedPrice>pricetruefalsetruetrue1000899205YProduct Service ChargesOpenVPMSLoaderPluginY1noneopenvpmsPRODUCTID<product.service>namefalsefalse<product.service>activefalsefalse<product.service>prices[0]<productPrice.unitPrice>pricetruefalse<product.service>prices[0]<productPrice.unitPrice>uomtruefalse<product.service>prices[1]<productPrice.fixedPrice>pricetruefalsetruetrue1000900314YRow NormaliserNormaliserY1nonePRICEITEM11ITEMNAMECOMP11UNITSCOMPCOST11COMPCOSTTOTAL11TOTALCOSTITEM22ITEMNAMECOMP22UNITSCOMPCOST22COMPCOSTTOTAL22TOTALCOSTITEM33ITEMNAMECOMP33UNITSCOMPCOST33COMPCOSTTOTAL33TOTALCOSTITEM44ITEMNAMECOMP44UNITSCOMPCOST44COMPCOSTTOTAL44TOTALCOSTITEM55ITEMNAMECOMP55UNITSCOMPCOST55COMPCOSTTOTAL55TOTALCOSTITEM66ITEMNAMECOMP66UNITSCOMPCOST66COMPCOSTTOTAL66TOTALCOSTITEM77ITEMNAMECOMP77UNITSCOMPCOST77COMPCOSTTOTAL77TOTALCOSTITEM88ITEMNAMECOMP88UNITSCOMPCOST88COMPCOSTTOTAL88TOTALCOST282475YSelect Charge fieldsSelectValuesY1noneSERVICE-2-2SPECIES-2-2SIZE-2-2ITEM1-2-2COMP1-2-2COMPCOST1-2-2TOTAL1-2-2ITEM2-2-2COMP2-2-2COMPCOST2-2-2TOTAL2-2-2ITEM3-2-2COMP3-2-2COMPCOST3-2-2TOTAL3-2-2ITEM4-2-2COMP4-2-2COMPCOST4-2-2TOTAL4-2-2ITEM5-2-2COMP5-2-2COMPCOST5-2-2TOTAL5-2-2ITEM6-2-2COMP6-2-2COMPCOST6-2-2TOTAL6-2-2ITEM7-2-2COMP7-2-2COMPCOST7-2-2TOTAL7-2-2ITEM8-2-2COMP8-2-2COMPCOST8-2-2TOTAL8-2-2166477YSelect Service Reference FieldsSelectValuesY1noneSERVICENO-2-2DESCRIPTSERVICE-2-2SERVICENOPRODUCTIDString200209212YSelect Service fieldsSelectValuesY1noneSERVICENO-2-2DESCRIPTSERVICE-2-2SERVICENOPRODUCTIDString200218314YServices InputXBaseInputN1noneF:\VETAID\SERVICES.DBF0NNN46283YSort Charge RowsSortRowsY1none%%java.io.tmpdir%%out5000NSERVICEYSPECIESYPRICEY396400YSort Service RowsSortRowsY1none%%java.io.tmpdir%%out5000NSERVICEY313315YSort by product IdSortRowsY1none%%java.io.tmpdir%%out5000NPRODUCTIDN652315YTransform Service FieldsScriptValueModY1none0Script 1//Script here
var wordUtils = Packages.org.apache.commons.lang.WordUtils;
// Transform ProductID
var oldid = PRODUCTID.getString()
PRODUCTID.setString("SERV" + upper(SPECIES.getString()) + oldid)
PRODUCTID.setString(replace(PRODUCTID.getString(),".0","." + PRICE.getString()))
// Transform Name
if (SERVICE.getString() != null)
SERVICE.setString(wordUtils.capitalizeFully(trim(SERVICE.getString())))
if (SERVICE.getString() == null || SERVICE.getString() == "")
SERVICE.setString("No Name")
//Transform active flag
var NAME
if (ITEMNAME.getString() == null || ITEMNAME.getString() == "" || (ITEMNAME.getString().length < 2))
NAME = SERVICE.getString() + " " + SPECIES.getString()
else
NAME = SERVICE.getString() + " " + SPECIES.getString() + " - " + substr(ITEMNAME.getString(),2)
var ACTIVE = true
//Transform prices
var UNITPRICE
if (COMPCOST.getNumber() != 0.0)
UNITPRICE = COMPCOST.getNumber()
else
UNITPRICE = null
var FIXEDPRICE
if (TOTALCOST.getNumber() != 0.0)
FIXEDPRICE = TOTALCOST.getNumber()
else
FIXEDPRICE = null
NAMENAMEString-1-1ACTIVEACTIVEBoolean-1-1UNITPRICEUNITPRICENumber-1-1FIXEDPRICEFIXEDPRICENumber-1-1533315YTransform Service Reference FieldsScriptValueModY1none0Script 1//Script here
var wordUtils = Packages.org.apache.commons.lang.WordUtils;
// Transform ProductID
PRODUCTID.setString("SERV" + PRODUCTID.getString())
// Transform Name
if (SERVICE.getString() != null)
SERVICE.setString(wordUtils.capitalizeFully(trim(SERVICE.getString())))
if (SERVICE.getString() == null || SERVICE.getString() == "")
SERVICE.setString("No Name")
//Transform active flag
var NAME = SERVICE.getString()
var ACTIVE = false
var UNITPRICE = null
var FIXEDPRICE = 0.0
NAMENAMEString-1-1ACTIVEACTIVEBoolean-1-1UNITPRICEUNITPRICENumber-1-1FIXEDPRICEFIXEDPRICENumber-1-1529209YUnique product Id'sUniqueY1noneNPRODUCTIDY758315Y