|
- namespace TM.TransSmart.Transforms {
-
-
- [Microsoft.XLANGs.BaseTypes.SchemaReference(@"TM.TransSmart.Schemas.Shipment", typeof(global::TM.TransSmart.Schemas.Shipment))]
- [Microsoft.XLANGs.BaseTypes.SchemaReference(@"TM.Shared.Schemas_v19A.Order", typeof(global::TM.Shared.Schemas_v19A.Order))]
- public sealed class TM_TransSmart_Shipment_to_TM_Shared_Order : global::Microsoft.XLANGs.BaseTypes.TransformBase {
-
- private const string _strMap = @"<xsl:stylesheet xmlns:xsl=""http://www.w3.org/1999/XSL/Transform"" version=""1.0""
- xmlns:ScriptNS0=""http://schemas.microsoft.com/BizTalk/2003/ScriptNS0""
- xmlns:ScriptNS1=""http://schemas.microsoft.com/BizTalk/2003/ScriptNS1""
- xmlns:msxsl=""urn:schemas-microsoft-com:xslt""
-
- xmlns:DateTime=""TM.Shared.Components.DateTime""
- xmlns:SSO=""TM.Shared.Components.SSO""
- xmlns:String=""TM.Shared.Components.String""
-
- xmlns:Helper=""TM.TransSmart.Components""
-
- xmlns:s0=""http://TM.TransSmart.Shipment""
- xmlns:ns0=""http://TM.KLG.com/KLG/Order/v19A""
-
- exclude-result-prefixes=""s0 ns0 ScriptNS0 ScriptNS1 msxsl DateTime SSO String Helper"">
-
- <xsl:output omit-xml-declaration=""yes"" method=""xml"" version=""1.0"" indent=""yes"" />
-
- <!-- region global variable initialization -->
-
- <xsl:variable name=""connectionString"" select=""SSO:GetValue('TM.TransSmart', 'ESBLookupConnectionString')""/>
-
- <xsl:variable name=""receiver"" select=""ScriptNS0:DBValueExtract(ScriptNS0:DBLookup(0 , /s0:carrierBooking/s0:shipments[1]/s0:shipmentInfo[1]/s0:carrier , $connectionString , 'TM_TransSmart_Receiver' , 'TransSmart_carrier') , 'KLG_receiver')""/>
-
- <xsl:variable name=""sender"">
- <xsl:choose>
- <xsl:when test=""$receiver='KLGEUEERSE01'"">
- <xsl:choose>
- <xsl:when test=""normalize-space(ScriptNS0:DBValueExtract(ScriptNS0:DBLookup(0 , concat(/s0:carrierBooking/s0:shipments[1]/s0:shipmentInfo[1]/s0:customerId, /s0:carrierBooking/s0:shipments[1]/s0:shipmentInfo[1]/s0:costcenter) , $connectionString , 'TM_TransSmart_CompanyCode' , 'TransSmart_customerId+TransSmart_costcentre') , 'KLGEUEERSE01')) != ''"">
- <xsl:value-of select=""ScriptNS0:DBValueExtract(ScriptNS0:DBLookup(0 , concat(/s0:carrierBooking/s0:shipments[1]/s0:shipmentInfo[1]/s0:customerId, /s0:carrierBooking/s0:shipments[1]/s0:shipmentInfo[1]/s0:costcenter) , $connectionString , 'TM_TransSmart_CompanyCode' , 'TransSmart_customerId+TransSmart_costcentre') , 'KLGEUEERSE01')""/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select=""ScriptNS0:DBValueExtract(ScriptNS0:DBLookup(0 , /s0:carrierBooking/s0:shipments[1]/s0:shipmentInfo[1]/s0:customerId , $connectionString , 'TM_TransSmart_CompanyCode' , 'TransSmart_customerId') , 'KLGEUEERSE01')""/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:when>
- <xsl:when test=""$receiver='KLGEUVENLO01'"">
- <xsl:choose>
- <xsl:when test=""normalize-space(ScriptNS0:DBValueExtract(ScriptNS0:DBLookup(0 , concat(/s0:carrierBooking/s0:shipments[1]/s0:shipmentInfo[1]/s0:customerId, /s0:carrierBooking/s0:shipments[1]/s0:shipmentInfo[1]/s0:costcenter) , $connectionString , 'TM_TransSmart_CompanyCode' , 'TransSmart_customerId+TransSmart_costcentre') , 'KLGEUVENLO01')) != ''"">
- <xsl:value-of select=""ScriptNS0:DBValueExtract(ScriptNS0:DBLookup(0 , concat(/s0:carrierBooking/s0:shipments[1]/s0:shipmentInfo[1]/s0:customerId, /s0:carrierBooking/s0:shipments[1]/s0:shipmentInfo[1]/s0:costcenter) , $connectionString , 'TM_TransSmart_CompanyCode' , 'TransSmart_customerId+TransSmart_costcentre') , 'KLGEUVENLO01')""/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select=""ScriptNS0:DBValueExtract(ScriptNS0:DBLookup(0 , /s0:carrierBooking/s0:shipments[1]/s0:shipmentInfo[1]/s0:customerId , $connectionString , 'TM_TransSmart_CompanyCode' , 'TransSmart_customerId') , 'KLGEUVENLO01')""/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text></xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <xsl:variable name=""leadtimeSetup"" select=""ScriptNS0:DBLookup(0 , concat($sender, $receiver), $connectionString , 'TM_TransSmart_Leadtimes' , 'Sender + Receiver')""/>
- <xsl:variable name=""LeadtimeCalculation"" select=""ScriptNS0:DBValueExtract($leadtimeSetup, 'Active')"" />
- <xsl:variable name=""CorrectionDays"" select=""number(ScriptNS0:DBValueExtract($leadtimeSetup, 'CorrectionDays'))"" />
- <xsl:variable name=""DefaultLeadtimeDays"" select=""ScriptNS0:DBValueExtract($leadtimeSetup, 'DefaultDays')"" />
- <xsl:variable name=""DefaultDeliveryCountry"" select=""ScriptNS0:DBValueExtract($leadtimeSetup, 'DefaultDeliveryCountry')"" />
- <xsl:variable name=""DefaultDeliveryTimeFrom"" select=""ScriptNS0:DBValueExtract($leadtimeSetup, 'DefaultDeliveryTimeFrom')"" />
- <xsl:variable name=""DefaultDeliveryTimeTo"" select=""ScriptNS0:DBValueExtract($leadtimeSetup, 'DefaultDeliveryTimeTo')"" />
-
- <xsl:variable name=""currentDate"" select=""DateTime:GetCurrentDate()"" />
- <xsl:variable name=""currentDateTime"" select=""DateTime:GetCurrentDateTime()"" />
-
- <!-- end region -->
-
- <!-- region templates -->
-
- <xsl:template match=""/"">
- <xsl:apply-templates select=""/s0:carrierBooking"" />
- </xsl:template>
-
- <xsl:template match=""/s0:carrierBooking"">
- <ns0:Order>
- <Sender>
- <xsl:value-of select=""$sender""/>
- </Sender>
- <Receiver>
- <xsl:value-of select=""$receiver""/>
- </Receiver>
- <GroupName>N/A</GroupName>
- <Consolidation>N/A</Consolidation>
- <ReceiverVersion>N/A</ReceiverVersion>
- <OrchestrationResult>N/A</OrchestrationResult>
- <Reference>
- <xsl:value-of select=""s0:shipments[1]/s0:shipmentInfo[1]/s0:reference""/>
- </Reference>
- <TimeStamp>
- <xsl:value-of select=""$currentDateTime"" />
- </TimeStamp>
- <Status>NEW</Status>
- <Date>
- <xsl:value-of select=""$currentDate"" />
- </Date>
- <FullTruckLoad>false</FullTruckLoad>
- <xsl:for-each select=""s0:shipments/s0:shipmentInfo"">
- <Shipment>
- <xsl:call-template name=""Shipment""/>
- </Shipment>
- </xsl:for-each>
- </ns0:Order>
- </xsl:template>
-
- <xsl:template name=""Shipment"">
- <Consignor>
- <xsl:value-of select=""$sender""/>
- </Consignor>
- <ConsignorReference>
- <xsl:value-of select=""s0:reference""/>
- </ConsignorReference>
- <Debtor>
- <xsl:value-of select=""$sender""/>
- </Debtor>
- <DebtorReference>
- <xsl:choose>
- <xsl:when test=""normalize-space(s0:additionalReferences/s0:additionalReference[s0:type='ORDER']/s0:value) != ''"">
- <xsl:value-of select=""s0:additionalReferences/s0:additionalReference[s0:type='ORDER']/s0:value""/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select=""s0:reference""/>
- </xsl:otherwise>
- </xsl:choose>
- </DebtorReference>
- <Incoterm>
- <xsl:choose>
- <xsl:when test=""s0:incoterms = 'DDU'"">DAP</xsl:when>
- <xsl:otherwise>
- <xsl:value-of select=""s0:incoterms""/>
- </xsl:otherwise>
- </xsl:choose>
- </Incoterm>
- <IncotermCity/>
- <IncotermCountryCode/>
- <xsl:variable name=""deliveryFeatures"">
- <xsl:if test=""s0:serviceLevelOther!=''"">
- <!-- Transsmart heeft een probleem met underscores in het serviceLevel element -->
- <!-- Daarom gebruiken zij ~ en moet KLG deze vervangen door _ -->
- <!-- Meerdere services worden gescheiden door een + teken -->
- <xsl:call-template name=""features"">
- <xsl:with-param name=""splitString"" select=""translate(s0:serviceLevelOther,'~','_')""/>
- <xsl:with-param name=""delimiter"" select=""'+'""/>
- </xsl:call-template>
- </xsl:if>
- </xsl:variable>
- <xsl:call-template name=""Address_SF"" />
- <xsl:call-template name=""Address_ST"">
- <xsl:with-param name=""deliveryFeatures"" select=""$deliveryFeatures""/>
- </xsl:call-template>
- <xsl:call-template name=""Good"">
- <xsl:with-param name=""deliveryFeatures"" select=""$deliveryFeatures""/>
- </xsl:call-template>
- </xsl:template>
-
- <xsl:template name=""Address_SF"">
-
- <xsl:variable name=""collectionDate"" select=""concat(substring(s0:pickupDate, 1, 4), '-', substring(s0:pickupDate, 5, 2), '-', substring(s0:pickupDate, 7, 2))""/>
- <xsl:variable name=""collectionTimeFrom"" select=""concat(substring(s0:pickupTime, 1, 2), ':', substring(s0:pickupTime, 3, 2), ':00')""/>
- <xsl:variable name=""collectionTimeUntill"" select=""concat(substring(s0:pickupTimeTo, 1, 2), ':', substring(s0:pickupTimeTo, 3, 2), ':00')""/>
-
- <xsl:variable name=""loadingDateTimeFrom"">
- <xsl:choose>
- <xsl:when test=""not($collectionDate = '00000000') and not(normalize-space($collectionDate)='') and string-length($collectionDate) = 10"">
- <xsl:choose>
- <xsl:when test=""not(normalize-space($collectionTimeFrom)='') and string-length($collectionTimeFrom) = 8"">
- <xsl:value-of select=""concat($collectionDate, 'T', $collectionTimeFrom)"" />
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select=""concat($collectionDate, 'T07:00:00')"" />
- </xsl:otherwise>
- </xsl:choose>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select=""concat($currentDate, 'T07:00:00')""/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <xsl:variable name=""loadingDateTimeTo"">
- <xsl:choose>
- <xsl:when test=""not($collectionDate = '00000000') and not(normalize-space($collectionDate)='') and string-length($collectionDate) = 10"">
- <xsl:choose>
- <xsl:when test=""not(normalize-space($collectionTimeUntill)='') and string-length($collectionTimeUntill) = 8"">
- <xsl:value-of select=""concat($collectionDate, 'T', $collectionTimeUntill)"" />
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select=""concat($collectionDate, 'T16:00:00')"" />
- </xsl:otherwise>
- </xsl:choose>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select=""concat($currentDate, 'T16:00:00')""/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <xsl:variable name=""loadingReference"">
- <xsl:choose>
- <xsl:when test=""$sender = 'JOBESHEERE01' and substring(s0:instruction,1,3) = 'RDV'"">
- <xsl:value-of select=""s0:instruction""/>
- </xsl:when>
- <xsl:when test=""normalize-space(s0:additionalReferences/s0:additionalReference[s0:type='ROUTE_ID']/s0:value) != ''"">
- <xsl:value-of select=""s0:additionalReferences/s0:additionalReference[s0:type='ROUTE_ID']/s0:value""/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select=""s0:reference""/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <Address>
- <AddressType>SF</AddressType>
- <xsl:call-template name=""Address"">
- <xsl:with-param name=""addressCode"" select=""''"" />
- <xsl:with-param name=""name1"" select = ""s0:addresses/s0:address[s0:type = 'SEND']/s0:name"" />
- <xsl:with-param name=""name2"" select = ""''"" />
- <xsl:with-param name=""address1"" select = ""s0:addresses/s0:address[s0:type = 'SEND']/s0:street1"" />
- <xsl:with-param name=""address2"" select = ""s0:addresses/s0:address[s0:type = 'SEND']/s0:street2"" />
- <xsl:with-param name=""postalCode"" select = ""s0:addresses/s0:address[s0:type = 'SEND']/s0:zipCode"" />
- <xsl:with-param name=""city"" select = ""s0:addresses/s0:address[s0:type = 'SEND']/s0:city"" />
- <xsl:with-param name=""region"" select = ""s0:addresses/s0:address[s0:type = 'SEND' and s0:countryCode = 'IE']/s0:state"" />
- <xsl:with-param name=""countryCode"" select = ""s0:addresses/s0:address[s0:type = 'SEND']/s0:countryCode"" />
- <xsl:with-param name=""start"" select = ""$loadingDateTimeFrom"" />
- <xsl:with-param name=""end"" select = ""$loadingDateTimeTo"" />
- <xsl:with-param name=""reference"" select = ""$loadingReference"" />
- <xsl:with-param name=""externalRemark1"" select = ""''"" />
- <xsl:with-param name=""externalRemark2"" select = ""''"" />
- <xsl:with-param name=""internalRemark1"" select = ""''"" />
- <xsl:with-param name=""internalRemark2"" select = ""''"" />
- </xsl:call-template>
- <xsl:call-template name=""ContactPerson"">
- <xsl:with-param name=""name"" select = ""s0:addresses/s0:address[s0:type = 'SEND']/s0:contact"" />
- <xsl:with-param name=""phone"" select = ""s0:addresses/s0:address[s0:type = 'SEND']/s0:telNo"" />
- <xsl:with-param name=""fax"" select = ""''"" />
- <xsl:with-param name=""email"" select = ""s0:addresses/s0:address[s0:type = 'SEND']/s0:email"" />
- </xsl:call-template>
- </Address>
- </xsl:template>
-
- <xsl:template name=""Address_ST"">
- <xsl:param name=""reference"" />
- <xsl:param name=""deliveryFeatures"" />
-
- <xsl:variable name=""collectionDate"" select=""concat(substring(s0:pickupDate/text(), 1, 4), '-', substring(s0:pickupDate/text(), 5, 2), '-', substring(s0:pickupDate/text(), 7, 2))""/>
-
- <xsl:variable name =""adjustedDeliveryDateTimeFrom"">
- <xsl:choose>
- <xsl:when test=""number(DateTime:CompareDateTime($currentDate, $collectionDate)) <= 0"">
- <xsl:value-of select=""concat(DateTime:GetWorkday($collectionDate, '2', 'NL'),'T07:00:00')""/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select=""concat($currentDate, 'T07:00:00')""/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <xsl:variable name =""adjustedDeliveryDateTimeTo"">
- <xsl:choose>
- <xsl:when test=""number(DateTime:CompareDateTime($currentDate, $collectionDate)) <= 0"">
- <xsl:value-of select=""concat(DateTime:GetWorkday($collectionDate, '2', 'NL'),'T16:00:00')""/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select=""concat($currentDate, 'T16:00:00')""/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <xsl:variable name=""deliveryDate"" select=""concat(substring(s0:requestedDeliveryDate/text(), 1, 4), '-', substring(s0:requestedDeliveryDate/text(), 5, 2), '-', substring(s0:requestedDeliveryDate/text(), 7, 2))""/>
- <xsl:variable name=""deliveryTimeFrom"" select=""concat(substring(s0:requestedDeliveryTime/text(), 1, 2), ':', substring(s0:requestedDeliveryTime/text(), 3, 2), ':00')""/>
- <xsl:variable name=""deliveryTimeUntill"" select=""concat(substring(s0:requestedDeliveryTimeTo/text(), 1, 2), ':', substring(s0:requestedDeliveryTimeTo/text(), 3, 2), ':00')""/>
-
- <xsl:variable name=""deliveryDateTimeFrom"">
- <xsl:choose>
- <xsl:when test=""not($deliveryDate = '00000000') and not(normalize-space($deliveryDate)='') and string-length($deliveryDate) = 10"">
- <xsl:choose>
- <xsl:when test=""not($deliveryTimeFrom = '00:00:00') and not(normalize-space($deliveryTimeFrom)='') and string-length($deliveryTimeFrom) = 8"">
- <xsl:value-of select=""concat($deliveryDate, 'T', $deliveryTimeFrom)"" />
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select=""concat($deliveryDate, 'T07:00:00')"" />
- </xsl:otherwise>
- </xsl:choose>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select=""$adjustedDeliveryDateTimeFrom""/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <xsl:variable name=""deliveryDateTimeTo"">
- <xsl:choose>
- <xsl:when test=""not($deliveryDate = '00000000') and not(normalize-space($deliveryDate)='') and string-length($deliveryDate) = 10"">
- <xsl:choose>
- <xsl:when test=""not($deliveryTimeUntill = '00:00:00') and not(normalize-space($deliveryTimeUntill)='') and string-length($deliveryTimeUntill) = 8"">
- <xsl:value-of select=""concat($deliveryDate, 'T', $deliveryTimeUntill)"" />
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select=""concat($deliveryDate, 'T16:00:00')"" />
- </xsl:otherwise>
- </xsl:choose>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select=""$adjustedDeliveryDateTimeTo""/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <Address>
- <AddressType>ST</AddressType>
-
- <xsl:variable name=""deliveryReference"">
- <xsl:choose>
- <xsl:when test=""s0:additionalReferences/s0:additionalReference[s0:type='YOUR_REFERENCE'] and normalize-space(s0:additionalReferences/s0:additionalReference[s0:type='YOUR_REFERENCE']/s0:value)!=''"">
- <xsl:value-of select=""s0:additionalReferences/s0:additionalReference[s0:type='YOUR_REFERENCE']/s0:value""/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select=""s0:reference""/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <xsl:call-template name=""Address"">
- <xsl:with-param name=""addressCode"" select=""''"" />
- <xsl:with-param name=""name1"" select = ""s0:addresses/s0:address[s0:type = 'RECV']/s0:name"" />
- <xsl:with-param name=""name2"" select = ""''"" />
- <xsl:with-param name=""address1"" select = ""s0:addresses/s0:address[s0:type = 'RECV']/s0:street1"" />
- <xsl:with-param name=""address2"" select = ""s0:addresses/s0:address[s0:type = 'RECV']/s0:street2"" />
- <xsl:with-param name=""postalCode"" select = ""s0:addresses/s0:address[s0:type = 'RECV']/s0:zipCode"" />
- <xsl:with-param name=""city"" select = ""s0:addresses/s0:address[s0:type = 'RECV']/s0:city"" />
- <xsl:with-param name=""region"" select = ""s0:addresses/s0:address[s0:type = 'RECV' and s0:countryCode = 'IE']/s0:state"" />
- <xsl:with-param name=""countryCode"" select = ""s0:addresses/s0:address[s0:type = 'RECV']/s0:countryCode"" />
- <xsl:with-param name=""start"" select = ""$deliveryDateTimeFrom"" />
- <xsl:with-param name=""end"" select = ""$deliveryDateTimeTo"" />
- <xsl:with-param name=""reference"" select = ""$deliveryReference"" />
- <xsl:with-param name=""externalRemark1"" select = ""''"" />
- <xsl:with-param name=""externalRemark2"" select = ""s0:instruction"" />
- <xsl:with-param name=""internalRemark1"" select = ""''"" />
- <xsl:with-param name=""internalRemark2"" select = ""''"" />
- </xsl:call-template>
-
- <!--<xsl:if test=""s0:serviceLevelTime!=''"">
- <xsl:call-template name=""features"">
- <xsl:with-param name=""splitString"" select=""translate(s0:serviceLevelTime,'~','_')""/>
- <xsl:with-param name=""delimiter"" select=""'+'""/>
- </xsl:call-template>
- </xsl:if>-->
-
-
- <xsl:copy-of select=""$deliveryFeatures""/>
- <xsl:if test=""$LeadtimeCalculation = 'True'"">
- <Parametergroup>
- <Groupname>
- <xsl:text>LeadtimeData</xsl:text>
- </Groupname>
- <Parameter>
- <Qualifier>
- <xsl:text>ReceiverPostalcode</xsl:text>
- </Qualifier>
- <Value>
- <xsl:value-of select=""translate(s0:addresses/s0:address[s0:type = 'RECV']/s0:zipCode, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ ', '')""/>
- </Value>
- </Parameter>
- <Parameter>
- <Qualifier>
- <xsl:text>SenderPostalcode</xsl:text>
- </Qualifier>
- <Value>
- <xsl:value-of select=""translate(s0:addresses/s0:address[s0:type = 'SEND']/s0:zipCode, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ ', '')""/>
- </Value>
- </Parameter>
- <Parameter>
- <Qualifier>
- <xsl:text>ReceiverCountry</xsl:text>
- </Qualifier>
- <Value>
- <xsl:value-of select=""s0:addresses/s0:address[s0:type = 'RECV']/s0:countryCode""/>
- </Value>
- </Parameter>
- <Parameter>
- <Qualifier>
- <xsl:text>SenderCountry</xsl:text>
- </Qualifier>
- <Value>
- <xsl:value-of select=""s0:addresses/s0:address[s0:type = 'SEND']/s0:countryCode""/>
- </Value>
- </Parameter>
- <Parameter>
- <Qualifier>
- <xsl:text>PackageQuantity</xsl:text>
- </Qualifier>
- <Value>
- <xsl:value-of select=""sum(s0:shipmentLines/s0:shipmentLine/s0:quantity)""/>
- </Value>
- </Parameter>
- <Parameter>
- <Qualifier>
- <xsl:text>PackageKilogram</xsl:text>
- </Qualifier>
- <Value>
- <xsl:value-of select=""sum(s0:shipmentLines/s0:shipmentLine/s0:measurements/s0:weight)""/>
- </Value>
- </Parameter>
- <Parameter>
- <Qualifier>
- <xsl:text>ADR</xsl:text>
- </Qualifier>
- <Value>
- <xsl:text>false</xsl:text>
- </Value>
- </Parameter>
- <Parameter>
- <Qualifier>
- <xsl:text>defaultLeadDate</xsl:text>
- </Qualifier>
- <Value>
- <xsl:value-of select=""DateTime:GetWorkday(concat(substring(s0:pickupDate/text(), 1, 4), '-', substring(s0:pickupDate/text(), 5, 2), '-', substring(s0:pickupDate/text(), 7, 2)), $DefaultLeadtimeDays, $DefaultDeliveryCountry)""/>
- </Value>
- </Parameter>
- <Parameter>
- <Qualifier>
- <xsl:text>StartingDate</xsl:text>
- </Qualifier>
- <Value>
- <!--<xsl:value-of select=""concat(substring(s0:pickupDate/text(), 1, 4), '-', substring(s0:pickupDate/text(), 5, 2), '-', substring(s0:pickupDate/text(), 7, 2))""/>
- <xsl:text> Correction </xsl:text>
- <xsl:value-of select=""$CorrectionDays""/>
- <xsl:text> Result </xsl:text>-->
- <xsl:value-of select=""DateTime:GetWorkday(concat(substring(s0:pickupDate/text(), 1, 4), '-', substring(s0:pickupDate/text(), 5, 2), '-', substring(s0:pickupDate/text(), 7, 2)), $CorrectionDays, s0:addresses/s0:address[s0:type = 'SEND']/s0:countryCode)""/>
- <!--<xsl:text> Loading </xsl:text>
- <xsl:value-of select=""s0:addresses/s0:address[s0:type = 'SEND']/s0:countryCode""/>-->
- </Value>
- </Parameter>
- <Parameter>
- <Qualifier>
- <xsl:text>timeFrom</xsl:text>
- </Qualifier>
- <Value>
- <xsl:choose>
- <xsl:when test=""not($deliveryTimeFrom = '00:00:00') and not(normalize-space($deliveryTimeFrom)='') and string-length($deliveryTimeFrom) = 8"">
- <xsl:value-of select=""$deliveryTimeFrom""/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select=""$DefaultDeliveryTimeFrom""/>
- </xsl:otherwise>
- </xsl:choose>
- </Value>
- </Parameter>
- <Parameter>
- <Qualifier>
- <xsl:text>timeTo</xsl:text>
- </Qualifier>
- <Value>
- <xsl:choose>
- <xsl:when test=""not($deliveryTimeUntill = '00:00:00') and not(normalize-space($deliveryTimeUntill)='') and string-length($deliveryTimeUntill) = 8"">
- <xsl:value-of select=""$deliveryTimeUntill""/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select=""$DefaultDeliveryTimeTo""/>
- </xsl:otherwise>
- </xsl:choose>
- </Value>
- </Parameter>
- <Parameter>
- <Qualifier>
- <xsl:text>CompanyCode</xsl:text>
- </Qualifier>
- <Value>
- <xsl:value-of select=""$sender""/>
- </Value>
- </Parameter>
- </Parametergroup>
- </xsl:if>
-
- <xsl:call-template name=""ContactPerson"">
- <xsl:with-param name=""name"" select = ""s0:addresses/s0:address[s0:type = 'RECV']/s0:contact"" />
- <xsl:with-param name=""phone"" select = ""s0:addresses/s0:address[s0:type = 'RECV']/s0:telNo"" />
- <xsl:with-param name=""fax"" select = ""s0:addresses/s0:address[s0:type = 'RECV']/s0:faxNo"" />
- <xsl:with-param name=""email"" select = ""s0:addresses/s0:address[s0:type = 'RECV']/s0:email"" />
- </xsl:call-template>
- </Address>
- </xsl:template>
-
- <xsl:template name=""Address"">
- <xsl:param name=""addressCode"" />
- <xsl:param name=""name1"" />
- <xsl:param name=""name2"" />
- <xsl:param name=""address1"" />
- <xsl:param name=""address2"" />
- <xsl:param name=""postalCode"" />
- <xsl:param name=""city"" />
- <xsl:param name=""region"" />
- <xsl:param name=""countryCode"" />
- <xsl:param name=""start"" />
- <xsl:param name=""end"" />
- <xsl:param name=""reference"" />
- <xsl:param name=""externalRemark1"" />
- <xsl:param name=""externalRemark2"" />
- <xsl:param name=""internalRemark1"" />
- <xsl:param name=""internalRemark2"" />
- <AddressCode>
- <xsl:value-of select=""$addressCode"" />
- </AddressCode>
- <Name1>
- <xsl:value-of select=""$name1"" />
- </Name1>
- <Name2>
- <xsl:value-of select=""$name2"" />
- </Name2>
- <Address1>
- <xsl:value-of select=""$address1"" />
- </Address1>
- <Address2>
- <xsl:value-of select=""$address2"" />
- </Address2>
- <PostalCode>
- <xsl:value-of select=""$postalCode"" />
- </PostalCode>
- <City>
- <xsl:value-of select=""$city"" />
- </City>
- <Region>
- <xsl:value-of select=""$region"" />
- </Region>
- <CountryCode>
- <xsl:value-of select=""$countryCode"" />
- </CountryCode>
- <Start>
- <xsl:value-of select=""$start"" />
- </Start>
- <End>
- <xsl:value-of select=""$end"" />
- </End>
- <Reference>
- <xsl:value-of select=""$reference"" />
- </Reference>
- <ExternalRemark1>
- <xsl:value-of select=""$externalRemark1"" />
- </ExternalRemark1>
- <ExternalRemark2>
- <xsl:value-of select=""$externalRemark2"" />
- </ExternalRemark2>
- <InternalRemark1>
- <xsl:value-of select=""$internalRemark1"" />
- </InternalRemark1>
- <InternalRemark2>
- <xsl:value-of select=""$internalRemark2"" />
- </InternalRemark2>
- </xsl:template>
-
- <xsl:template name=""features"">
- <xsl:param name=""splitString"" select="".""/>
- <xsl:param name=""delimiter"" select=""'+'""/>
- <xsl:choose>
- <xsl:when test=""contains($splitString,$delimiter)"">
- <xsl:call-template name=""feature"">
- <xsl:with-param name=""service"" select=""substring-before($splitString,$delimiter)""/>
- </xsl:call-template>
- <xsl:call-template name=""features"">
- <xsl:with-param name=""splitString"" select=""substring-after($splitString,$delimiter)""/>
- <xsl:with-param name=""delimiter"" select=""$delimiter""/>
- </xsl:call-template>
- </xsl:when>
- <xsl:otherwise>
- <xsl:call-template name=""feature"">
- <xsl:with-param name=""service"" select=""$splitString""/>
- </xsl:call-template>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
- <xsl:template name=""feature"">
- <xsl:param name=""service""/>
- <!--Het Transsmart service level STANDARD wordt door KLG genegeerd
- c.q. niet als feature opgenomen
- <xsl:if test=""$service!='STANDARD'"">-->
- <Feature>
- <FeatureCode>
- <xsl:value-of select=""$service""/>
- </FeatureCode>
- <xsl:if test=""$service='APP_REQ_EMAIL' or $service='APP_REQ_FAX' or $service='APP_REQ_INTERNET' or $service='APP_REQ_PHONE'"">
- <AdditionalValue>
- <xsl:if test=""$service='APP_REQ_EMAIL'"">
- <xsl:value-of select=""s0:addresses/s0:address[s0:type = 'RECV']/s0:email""/>
- </xsl:if>
- <xsl:if test=""$service='APP_REQ_FAX'"">
- <xsl:value-of select=""s0:addresses/s0:address[s0:type = 'RECV']/s0:faxNo""/>
- </xsl:if>
- <xsl:if test=""$service='APP_REQ_INTERNET'"">
- </xsl:if>
- <xsl:if test="" $service='APP_REQ_PHONE'"">
- <xsl:value-of select=""s0:addresses/s0:address[s0:type = 'RECV']/s0:telNo""/>
- </xsl:if>
- </AdditionalValue>
- </xsl:if>
- </Feature>
- <!--</xsl:if>-->
- </xsl:template>
-
- <xsl:template name=""ContactPerson"">
- <xsl:param name=""name"" />
- <xsl:param name=""phone"" />
- <xsl:param name=""fax"" />
- <xsl:param name=""email"" />
- <ContactPerson>
- <Name>
- <xsl:value-of select=""$name"" />
- </Name>
- <Phone>
- <xsl:value-of select=""$phone"" />
- </Phone>
- <Fax>
- <xsl:value-of select=""$fax"" />
- </Fax>
- <Email>
- <xsl:value-of select=""$email"" />
- </Email>
- </ContactPerson>
- </xsl:template>
-
- <xsl:template name=""Good"">
- <xsl:param name=""deliveryFeatures"" />
-
- <xsl:for-each select=""s0:shipmentLines/s0:shipmentLine"">
-
- <!--Current Line values ...-->
- <xsl:variable name=""cType"" select=""s0:packageType"" />
- <xsl:variable name=""cDesc"" select=""s0:description"" />
- <xsl:variable name=""cLeng"" select=""s0:measurements/s0:length"" />
- <xsl:variable name=""cWidt"" select=""s0:measurements/s0:width"" />
- <xsl:variable name=""cHeig"" select=""s0:measurements/s0:height"" />
-
- <xsl:if test=""generate-id() = generate-id(../s0:shipmentLine[s0:packageType=$cType][s0:description=$cDesc][s0:measurements/s0:length=$cLeng][s0:measurements/s0:width=$cWidt][s0:measurements/s0:height=$cHeig][1])"">
-
- <xsl:variable name=""tQuantity"" select=""sum(../s0:shipmentLine[s0:packageType=$cType][s0:description=$cDesc][s0:measurements/s0:length=$cLeng][s0:measurements/s0:width=$cWidt][s0:measurements/s0:height=$cHeig]/s0:quantity)"" />
-
- <xsl:variable name=""tWeight"" select=""round(sum(../s0:shipmentLine[s0:packageType=$cType][s0:description=$cDesc][s0:measurements/s0:length=$cLeng][s0:measurements/s0:width=$cWidt][s0:measurements/s0:height=$cHeig]/s0:measurements/s0:weight))""/>
-
-
-
- <Good>
-
- <xsl:variable name=""packageType"" select=""Helper:GetDelimitedValueByIndex(s0:packageType, '|', 0)""/>
- <xsl:variable name=""packageExchange"" select=""Helper:GetDelimitedValueByIndex(s0:packageType, '|', 1)""/>
- <xsl:variable name=""Stackable"" select=""Helper:GetDelimitedValueByIndex(s0:packageType, '|', 2)""/>
-
- <!--<DEBUG>
- <TYPE>
- <xsl:value-of select=""$packageType""/>
- </TYPE>
- <EXCHANGE>
- <xsl:value-of select=""$packageExchange""/>
- </EXCHANGE>
- <STACKABLE>
- <xsl:value-of select=""$Stackable""/>
- </STACKABLE>
- </DEBUG>-->
-
- <PackingQty>
- <xsl:value-of select=""$tQuantity""/>
- </PackingQty>
- <PackingType>
- <!--<xsl:choose>
- <xsl:when test=""contains(s0:packageType, '|')"">
- <xsl:value-of select=""substring-before(s0:packageType, '|')""/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select=""s0:packageType""/>
- </xsl:otherwise>
- </xsl:choose>-->
- <xsl:value-of select=""$packageType""/>
- </PackingType>
- <!-- igv Feature NR exchange negeren -->
- <!--<xsl:if test=""contains(s0:packageType, '|') and not(msxsl:node-set($deliveryFeatures)/Feature/FeatureCode = 'NR')"">-->
- <xsl:if test=""$packageExchange!='' and not(msxsl:node-set($deliveryFeatures)/Feature/FeatureCode = 'NR')"">
- <PackingExchange>
- <!--<xsl:value-of select=""substring-after(s0:packageType, '|')""/>-->
- <xsl:value-of select=""$packageExchange""/>
- </PackingExchange>
- </xsl:if>
- <ProductDescription>
- <xsl:value-of select=""s0:description""/>
- </ProductDescription>
- <BrutoWeight>
- <xsl:value-of select=""$tWeight""/>
- </BrutoWeight>
- <NettoWeight>
- <xsl:value-of select=""$tWeight""/>
- </NettoWeight>
- <LoadingMeter>
- <xsl:value-of select=""format-number(((((round($cLeng) * round($cWidt)) div 24000) * $tQuantity) * 100) div 100,'##0.00' )""/>
- </LoadingMeter>
- <Volume>
- <xsl:value-of select=""((round($cLeng) * round($cWidt) * round($cHeig)) * $tQuantity) div 1000000""/>
- </Volume>
- <xsl:if test=""String:IsNumeric($Stackable)"">
- <StackingLayers>
- <xsl:value-of select=""$Stackable""/>
- </StackingLayers>
- </xsl:if>
- <PackingLength>
- <xsl:value-of select=""$cLeng""/>
- </PackingLength>
- <PackingWidth>
- <xsl:value-of select=""$cWidt""/>
- </PackingWidth>
- <PackingHeight>
- <xsl:value-of select=""$cHeig""/>
- </PackingHeight>
-
-
- <xsl:for-each select=""../s0:shipmentLine[s0:packageType=$cType][s0:description=$cDesc][s0:measurements/s0:length=$cLeng][s0:measurements/s0:width=$cWidt][s0:measurements/s0:height=$cHeig]/s0:dangerousGoods/s0:dangerousGoodsInfo"">
-
-
- <DangerousGood>
- <DGSADRCode/>
- <UNNumber>
- <xsl:value-of select=""s0:unCode/text()""/>
- </UNNumber>
- <Class/>
- <SubClass1>
- <xsl:value-of select=""s0:hazardClassPrimary/text()""/>
- </SubClass1>
- <SubClass2>
- <xsl:value-of select=""s0:hazardClassSecondary/text()""/>
- </SubClass2>
- <SubClass3/>
- <Classification>
- <xsl:value-of select=""s0:classificationCode/text()""/>
- </Classification>
- <Labels/>
- <Qty>
- <xsl:value-of select=""s0:quantity/text()""/>
- </Qty>
- <Weight>
- <xsl:value-of select=""s0:measurements[s0:weightUom='KG']/s0:weight/text()""/>
- </Weight>
- <Volume/>
- <ProductDescription>
- <xsl:value-of select=""s0:description/text()""/>
- </ProductDescription>
- <PackageType>
- <xsl:value-of select=""s0:packingType/text()""/>
- </PackageType>
- <PackingGroup>
- <xsl:choose>
- <xsl:when test=""s0:packingGroup/text() = '0'"">
- <xsl:text>0</xsl:text>
- </xsl:when>
- <xsl:when test=""s0:packingGroup/text() = '1'"">
- <xsl:text>I</xsl:text>
- </xsl:when>
- <xsl:when test=""s0:packingGroup/text() = '2'"">
- <xsl:text>II</xsl:text>
- </xsl:when>
- <xsl:when test=""s0:packingGroup/text() = '3'"">
- <xsl:text>III</xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select=""s0:packingGroup/text()""/>
- </xsl:otherwise>
- </xsl:choose>
- </PackingGroup>
- <TransportCategory/>
- <NOSText/>
- <TunnelRestrictionCode>
- <xsl:value-of select=""s0:tunnelCode/text()""/>
- </TunnelRestrictionCode>
- <EnvironmentallyHazardous/>
- <MarinePollutant/>
- <xsl:choose>
- <xsl:when test=""s0:limitedQuantity > '0' and s0:limitedQuantity != 'N'"">
- <LimitedQuantity><xsl:text>Y</xsl:text></LimitedQuantity>
- </xsl:when>
- <xsl:otherwise>
- <LimitedQuantity/>
- </xsl:otherwise>
- </xsl:choose>
- <LocalizedDescription/>
- </DangerousGood>
-
- </xsl:for-each>
-
- </Good>
- </xsl:if>
- </xsl:for-each>
-
-
- </xsl:template>
-
- <!-- end region -->
-
- <xsl:variable name=""dbClose"" select=""ScriptNS0:DBLookupShutdown()""/>
-
- </xsl:stylesheet>
- ";
-
- private const int _useXSLTransform = 0;
-
- private const string _strArgList = @"<ExtensionObjects>
- <ExtensionObject Namespace=""http://schemas.microsoft.com/BizTalk/2003/ScriptNS0""
- AssemblyName=""Microsoft.BizTalk.BaseFunctoids, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35""
- ClassName=""Microsoft.BizTalk.BaseFunctoids.FunctoidScripts"" />
- <ExtensionObject Namespace=""http://schemas.microsoft.com/BizTalk/2003/ScriptNS1""
- AssemblyName=""Microsoft.BizTalk.CrossReferencing, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35""
- ClassName=""Microsoft.BizTalk.CrossReferencing.CrossReferencing"" />
- <ExtensionObject Namespace=""TM.Shared.Components.DateTime""
- AssemblyName=""TM.Shared.Components, Version=3.0.7.0, Culture=neutral, PublicKeyToken=9cbf569b151cb1d4""
- ClassName=""TM.Shared.Components.DateTimeFunctions"" />
- <ExtensionObject Namespace=""TM.Shared.Components.KeyList""
- AssemblyName=""TM.Shared.Components, Version=3.0.7.0, Culture=neutral, PublicKeyToken=9cbf569b151cb1d4""
- ClassName=""TM.Shared.Components.KeyListFunctions"" />
- <ExtensionObject Namespace=""TM.Shared.Components.SSO""
- AssemblyName=""TM.Shared.Components, Version=3.0.7.0, Culture=neutral, PublicKeyToken=9cbf569b151cb1d4""
- ClassName=""TM.Shared.Components.SSOFunctions"" />
- <ExtensionObject Namespace=""TM.Shared.Components.String""
- AssemblyName=""TM.Shared.Components, Version=3.0.7.0, Culture=neutral, PublicKeyToken=9cbf569b151cb1d4""
- ClassName=""TM.Shared.Components.StringFunctions"" />
- <ExtensionObject Namespace=""TM.TransSmart.Components""
- AssemblyName=""TM.TransSmart.Components, Version=3.0.1.0, Culture=neutral, PublicKeyToken=089e5464cda5fc95""
- ClassName=""TM.TransSmart.Components.Helper"" />
- </ExtensionObjects>";
-
- private const string _strSrcSchemasList0 = @"TM.TransSmart.Schemas.Shipment";
-
- private const global::TM.TransSmart.Schemas.Shipment _srcSchemaTypeReference0 = null;
-
- private const string _strTrgSchemasList0 = @"TM.Shared.Schemas_v19A.Order";
-
- private const global::TM.Shared.Schemas_v19A.Order _trgSchemaTypeReference0 = null;
-
- public override string XmlContent {
- get {
- return _strMap;
- }
- }
-
- public override int UseXSLTransform {
- get {
- return _useXSLTransform;
- }
- }
-
- public override string XsltArgumentListContent {
- get {
- return _strArgList;
- }
- }
-
- public override string[] SourceSchemas {
- get {
- string[] _SrcSchemas = new string [1];
- _SrcSchemas[0] = @"TM.TransSmart.Schemas.Shipment";
- return _SrcSchemas;
- }
- }
-
- public override string[] TargetSchemas {
- get {
- string[] _TrgSchemas = new string [1];
- _TrgSchemas[0] = @"TM.Shared.Schemas_v19A.Order";
- return _TrgSchemas;
- }
- }
- }
- }
|