Skocz do zawartości

Transformata do Paczka w Ruchu

Polecane posty

Ok - mój problem jest nieaktualny. Wszystko od początku do końca działa jak powinno. Transformata jest w porządku, powodem problemu był, jak to najczęściej bywa, "czynnik ludzki". Zakładając w słowniku nowy eksport w polu "plik wynikowy" wpisałem sobie tylko samą końcową nazwę pliku zamiast pełnej ścieżki. Coś mnie zaćmiło że folder "C:\sello_Eksport" jest domyślny dla wszystkich eksportów i ustawiony na sztywno więc nie trzeba... Brawo ja. sorry za zamieszanie.

Link to postu
  • 2 miesiące temu...
  • 3 tygodnie później...
  • 3 miesiące temu...
  • 2 tygodnie później...
  • 1 miesiąc temu...
  • 1 miesiąc temu...
  • 1 miesiąc temu...

Jeżeli ktoś będzie taki życzliwy i mi wytłumaczy w jaki sposób zrobić w module Paczki odniesienie do wartości transakcji to ja będę taki życzliwy i udostępnię za free napisaną przeze mnie ( amatorską, ale w pełni działającą ) transformatę do paczki w ruchu.

 

Obecnie ona działa, ale opiekun handlowy Paczki w Ruchu mi się spina, że w przypadku paczek opłaconych mam ustawione na sztywno wartość ubezpieczenia przesyłki.

Oczywiście w przypadku pobrań to wartość ubezpieczenia to wartość pobrania, ale w przypadku paczek opłaconych nie mam skąd wziąć ( bądź nie potrafię ) wartości transakcji.

Myślałem o tym, by w przypadku metody dostawy paczka w ruchu po przedpłacie mieć ustawione 'wartościowa', ale nie widzę nigdzie w sello opcji żeby mi to się samo ustawiało i kopiowało wartość transakcji.

Link to postu
  • 2 tygodnie później...
1 godzinę temu, G W napisał:

może to:  [Paczka_TransakcjaWartosc]

Już to rozwiązałem na zasadzie sumy wartości towarów w transakcji. Tylko, że warunek jest taki, że w Sello towary mają Cenę brutto ustawioną.

 

(sum(s:Items/s:Item/s:Price[number(.) = number(.)]) *100 *(s:Items/s:Item/s:Quantity[number(.) = number(.)]) ) +649

Link to postu

A proszę:
 

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:s="http://www.sello.pl/export">
    <xsl:output method="text" encoding="utf-8"/>
    <xsl:strip-space elements="*" />
    <xsl:variable name="comma">;</xsl:variable>

    <!-- Paczka w Ruchu -->
    <!-- Wersja rozwojowa 1.5 -->

    <!--Adres email - jeśli ma być wstawiony adres e-mail z adresu wysyłkowego (tylko FOD) wpisz FOD, pozostaw puste jeśli ma być pobierany domyślny adres e-mail kontrachenta-->
    <xsl:variable name="email">FOD</xsl:variable>
    <xsl:template name="Opis">
        <xsl:value-of select="//s:Transaction[s:Packages/s:Package[s:PackageID = current()/@PackageID]]/s:DoneDocNumber"/>
    </xsl:template>

    <!-- WŁAŚCIWA CZĘŚĆ -->
    
    <!-- Poniżej nagłówki od Sendit'a do których będą dopasowywane wartości -->
    <xsl:template match="/">
        <xsl:text>OrderID;DestinationCode;PSD;EMail;FirstName;LastName;CompanyName;StreetName;BuildingNumber;FlatNumber;City;PostCode;PhoneNumber;CashOnDelivery;CashOnDeliveryValue;TransferDescription;Insurance;InsuranceValue</xsl:text>
        <xsl:text>&#xa;</xsl:text>
        <xsl:apply-templates select="s:ExportData/s:Package" />
    </xsl:template>

    <xsl:template match="s:Package">

        <!--OrderID-->
        <!--Generowany na podstawie Id paczki w bazie Sello-->
        <xsl:value-of select="@PackageID"/>
        <xsl:value-of select="$comma"/>

        <!--DestinationCode-->
        <!--Punk odbioru pobierany z notatki dodawanej przez FOD-->
        <xsl:value-of select="substring(substring-after(s:Notes/s:Note/s:Content, 'PACZKA w RUCHu: '), 1, 15)"/>
        <xsl:value-of select="$comma"/>

        <!--PSD-->
        <!--Alternatywna metoda identyfikacji punktu odbioru, zostawiamy puste-->
        <xsl:value-of select="$comma"/>

        <!--EMail-->
        <xsl:choose>
            <xsl:when test="$email = 'FOD'">
                <xsl:value-of select="s:DeliveryAddress/s:Email"/>
            </xsl:when>
            <xsl:otherwise>
                <xsl:value-of select="../s:Customer[@CustomerID = current()/s:Customer/@CustomerID]/s:EmailAddress[@IsDefault = 1]"/>
            </xsl:otherwise>
        </xsl:choose>
        <xsl:value-of select="$comma"/>

        <!--FirstName pierwsza część pola Imię i nazwisko w adresie dostawy -->
        <xsl:value-of select="substring-before(s:DeliveryAddress/s:Name, ' ')"/>
        <xsl:value-of select="$comma"/>

        <!-- LastName druga część pola Imię i nazwisko UWAGA - sprawdzić jak zachowa się w przypadku 3-członowych nazwisk -->
        <xsl:value-of select="substring-after(s:DeliveryAddress/s:Name, ' ')"/>
        <xsl:value-of select="$comma"/>

        <!--CompanyName-->
        <!-- Nazwa firmy skracana do 32 znaków, jeśli nie podane w adresie wysyłkowym zostaje puste -->
        <xsl:choose>
            <xsl:when test="s:DeliveryAddress/s:Company != '' ">
                <xsl:value-of select="substring(translate(s:DeliveryAddress/s:Company,',;','..'), 1, 32)"/>
            </xsl:when>
        </xsl:choose>
        <xsl:value-of select="$comma"/>

        <!--StreetName-->
        <!-- Ulica odbiorcy - teoretycznie zbędna, na etykiecie i tak brana jest pod uwagę ulica punktu -->
        <xsl:value-of select="s:DeliveryAddress/s:Street"/>
        <xsl:value-of select="$comma"/>

        <!--BuildingNumber-->
        <!-- Numer budynku -->
        <xsl:value-of select="/s:DeliveryAddress/s:HouseNumber"/>
        <xsl:value-of select="$comma"/>

        <!--FlatNumber -->
        <!-- Numer mieszkania/lokalu, nadal zbędne-->
        <xsl:value-of select="s:DeliveryAddress/s:FlatNumber"/>
        <xsl:value-of select="$comma"/>

        <!--City-->
        <!-- Miasto odbiorcy, j.w.-->
        <xsl:value-of select="s:DeliveryAddress/s:City"/>
        <xsl:value-of select="$comma"/>

        <!-- PostCode -->
        <!-- Kod pocztowy-->
        <xsl:value-of select="s:DeliveryAddress/s:ZipCode"/>
        <xsl:value-of select="$comma"/>

        <!-- PhoneNumber -->
        <!-- Telefon odbiorcy "oczyszczony" z niepotrzebnych znaków-->
        <xsl:value-of select="translate(s:DeliveryAddress/s:PhoneNumber,' +-(),;','')"/>
        <xsl:value-of select="$comma"/>

        <!-- CashOnDelivery -->
        <!-- Czy za pobraniem, wstawia "1", w pliku przykładowym było słowo "TAK" ale z "1" też działa -->
        <xsl:choose>
            <xsl:when test="s:IsPayOnDelivery = 1">
                <xsl:text>TAK</xsl:text>
            </xsl:when>
        </xsl:choose>
        <xsl:value-of select="$comma"/>

        <!-- CashOnDeliveryValue -->
        <!-- Wartość kwoty za pobraniem - w xml-u w formacie money, w csv testowym liczba w groszach(zł*100)-->
        <xsl:choose>
            <xsl:when test="s:IsPayOnDelivery = 1">
                <xsl:value-of select="round(number(s:Charge)*100)"/>
            </xsl:when>
        </xsl:choose>
        <xsl:value-of select="$comma"/>

        <!-- TransferDescription -->
        <!-- Tytuł przelewu za pobranie-->
        <xsl:variable name="description">
                    <xsl:call-template name="Opis"/>
        </xsl:variable>
        <xsl:choose>
            <xsl:when test="s:IsPayOnDelivery = 1">
                <xsl:value-of select="translate($description, '/',' ')"/>
            </xsl:when>
        </xsl:choose>
        <xsl:value-of select="$comma"/>

        <!-- Insurance -->
        <!-- Ubezpieczenie, domyślnie włączone dla pobrań na kwotę pobrania-->
        <xsl:choose>
            <xsl:when test="s:IsPayOnDelivery = 1">
                <xsl:text>TAK</xsl:text>
            </xsl:when>
        </xsl:choose>
        <xsl:value-of select="$comma"/>

        <!-- InsuranceValue -->
        <!-- Kwota ubezpieczenia, dla pobrań ustawiona na wartość pobrania-->
        <xsl:choose>
            <xsl:when test="s:IsPayOnDelivery = 1">
                <xsl:value-of select="round(number(s:Charge)*100)"/>
            </xsl:when>
        </xsl:choose>
        
        <xsl:text>&#xa;</xsl:text>
    </xsl:template>
</xsl:stylesheet>

Aczkolwiek pisałem ją ponad rok temu na podstawie innej transformaty z forum i kawał czasu nie korzystam więc nie wiem czy się coś nie zdezaktualizowało.
Ważne - plik wynikowy musi być zapisywany z rozszerzeniem CSV !!

  • Dziękuję 1
Link to postu
  • 1 miesiąc temu...
  • 2 tygodnie później...

Dzień dobry:

Mój problem. Skopiowana i wklejona poniżej transformata nie działa do końca- nie przenosi do e-nadawcy numerów telefonów klientów. 

Co należy poprawić?

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:s="http://www.sello.pl/export">
  <!--POCZTEX-->
  <!--Oznaczenie umowy na podstawie, której nadawane są przesyłki pocztowe (idUmowyMRUMC).-->
  <xsl:variable name="NrUmowy"></xsl:variable>
  <!--Oznaczenie Karty na podstawie, której nadawane są przesyłki pocztowe (idKartyMRUMR).-->
  <xsl:variable name="KartaUmowy"></xsl:variable>
  <!--Rodzaj serwisu przesyłki Pocztex-N:
  E – Ekspres
  K – Kurier-->
  <xsl:variable name="RodzajPrzesylki">E</xsl:variable>
  <!--Termin-serwis dla przesyłki:
  A – Miejski do 3h - do 5 km
  B – Miejski do 3h - do 10 km
  C – Miejski do 3h - do 15 km
  D – Miejski do 3h - powyżej 15 km
  E – Miejski do 4h - do 10 km
  F – Miejski do 4h - do 15 km
  G – Miejski do 4h - do 20 km
  H – Miejski do 4h - do 30 km
  J – Miejski do 4h - do 40 km
  M – Krajowy
  R – Bezpośredni do 30 kg
  S – Bezpośredni powyżej 30 do 100 kg
  X – Ekspres 24-->
  <xsl:variable name="Termin">X</xsl:variable>
  <!--Forma przekazania kwoty pobrania:
  P – Na wskazany adres
  S – Na rachunek bankowy-->
  <xsl:variable name="SposobPobrania">S</xsl:variable>
  <!--Sposób powiadomienia adresata przesyłki. Jeśli pole jest puste, to powiadomienie nie jest wysyłane.
  M – SMS
  E – E-mail-->
  <xsl:variable name="FormaPowiadomieniaAdresata"></xsl:variable>
  <!--Opis dla danej paczki. Pole z dowolną zawartością nie przekraczającą długości 40 znaków-->
  <xsl:template name="Opis">
    <xsl:for-each select="s:Items/s:Item">
      <xsl:value-of select="s:Symbol"/> <xsl:value-of select="s:Name"/> x <xsl:value-of select="s:Quantity"/><xsl:text>&#10;</xsl:text>
    </xsl:for-each>
  </xsl:template>

  <xsl:param name="Year"/>
  <xsl:param name="Month"/>
  <xsl:param name="Day"/>
  <xsl:param name="Hour"/>
  <xsl:param name="Minute"/>
  <xsl:param name="Second"/>
  <xsl:template match="s:ExportData">
    <xsl:element name="Nadawca">
      <xsl:attribute name="Struktura">1.6</xsl:attribute>
      <xsl:attribute name="Nazwa">
        <xsl:value-of select="s:Company/s:Address/s:Company"/>
      </xsl:attribute>
      <xsl:attribute name="NazwaSkrocona">
        <xsl:variable name="companyName" select="s:Company/s:Address/s:Company"/>
        <xsl:value-of select="substring($companyName,0,10)"/>
      </xsl:attribute>
      <xsl:attribute name="Ulica">
        <xsl:value-of select="s:Company/s:Address/s:Street"/>
      </xsl:attribute>
      <xsl:attribute name="Dom">
        <xsl:value-of select="s:Company/s:Address/s:HouseNumber"/>
      </xsl:attribute>
      <xsl:attribute name="Lokal">
        <xsl:value-of select="s:Company/s:Address/s:FlatNumber"/>
      </xsl:attribute>
      <xsl:attribute name="Miejscowosc">
        <xsl:value-of select="s:Company/s:Address/s:City"/>
      </xsl:attribute>
      <xsl:attribute name="Kod">
        <xsl:value-of select="translate(s:Company/s:Address/s:ZipCode,'- ','')"/>
      </xsl:attribute>
      <xsl:attribute name="NIP">
        <xsl:value-of select="translate(s:Company/s:Address/s:NIP,'- ','')"/>
      </xsl:attribute>
      <xsl:attribute name="Zrodlo">NADAWCA</xsl:attribute>
      <xsl:attribute name="Guid">
        <xsl:value-of select="s:Company/s:GUID"/>
      </xsl:attribute>
      <xsl:element name="Zbior">
        <xsl:attribute name="Nazwa">
          <xsl:value-of select="concat(format-number($Day,'00'),'-',format-number($Month,'00'),'-',$Year,'\1')"/>
        </xsl:attribute>
        <xsl:attribute name="DataUtworzenia">
          <xsl:value-of select="concat($Year,'-',format-number($Month,'00'),'-',format-number($Day,'00'),'T',format-number($Hour,'00'),':',format-number($Minute,'00'),':',format-number($Second,'00'))"/>
        </xsl:attribute>
        <xsl:attribute name="Opis">Jakis dowolny opis</xsl:attribute>
        <xsl:attribute name="IloscPrzesylek">
          <xsl:value-of select="count(s:Package)"/>
        </xsl:attribute>
        <xsl:attribute name="Guid">
          <xsl:value-of select="s:GUID"/>
        </xsl:attribute>
        <xsl:apply-templates select="s:Package"/>
      </xsl:element>
    </xsl:element>
  </xsl:template>
  <xsl:template match="s:Package">
    <xsl:element name="Przesylka">
      <xsl:attribute name="Guid">
        <xsl:value-of select="s:GUID"/>
      </xsl:attribute>
      <xsl:element name="Atrybut">
        <xsl:attribute name="Typ">Adresat</xsl:attribute>
        <xsl:attribute name="Nazwa">Nazwa</xsl:attribute>
        <xsl:choose>
          <xsl:when test="s:DeliveryAddress/s:Company!=''">
            <xsl:value-of select="s:DeliveryAddress/s:Company"/>
          </xsl:when>
          <xsl:otherwise>
            <xsl:value-of select="s:DeliveryAddress/s:Name"/>
          </xsl:otherwise>
        </xsl:choose>
      </xsl:element>
      <xsl:if test="s:DeliveryAddress/s:Company!='' and s:DeliveryAddress/s:Name!=''">
        <xsl:element name="Atrybut">
          <xsl:attribute name="Typ">Adresat</xsl:attribute>
          <xsl:attribute name="Nazwa">NazwaII</xsl:attribute>
          <xsl:value-of select="s:DeliveryAddress/s:Name"/>
        </xsl:element>
      </xsl:if>
      <xsl:element name="Atrybut">
        <xsl:attribute name="Typ">Adresat</xsl:attribute>
        <xsl:attribute name="Nazwa">Ulica</xsl:attribute>
        <xsl:value-of select="s:DeliveryAddress/s:Street"/>
      </xsl:element>
      <xsl:element name="Atrybut">
        <xsl:attribute name="Typ">Adresat</xsl:attribute>
        <xsl:attribute name="Nazwa">Dom</xsl:attribute>
        <xsl:value-of select="s:DeliveryAddress/s:HouseNumber"/>
      </xsl:element>
      <xsl:element name="Atrybut">
        <xsl:attribute name="Typ">Adresat</xsl:attribute>
        <xsl:attribute name="Nazwa">Lokal</xsl:attribute>
        <xsl:value-of select="s:DeliveryAddress/s:FlatNumber"/>
      </xsl:element>
      <xsl:element name="Atrybut">
        <xsl:attribute name="Typ">Adresat</xsl:attribute>
        <xsl:attribute name="Nazwa">Miejscowosc</xsl:attribute>
        <xsl:value-of select="s:DeliveryAddress/s:City"/>
      </xsl:element>
      <xsl:element name="Atrybut">
        <xsl:attribute name="Typ">Adresat</xsl:attribute>
        <xsl:attribute name="Nazwa">Kod</xsl:attribute>
        <xsl:value-of select="translate(s:DeliveryAddress/s:ZipCode,'- ','')"/>
      </xsl:element>
      <xsl:element name="Atrybut">
        <xsl:attribute name="Typ">Adresat</xsl:attribute>
        <xsl:attribute name="Nazwa">Kraj</xsl:attribute>
        <xsl:choose>
          <xsl:when test="s:DeliveryAddress/s:Country=''">Polska</xsl:when>
          <xsl:otherwise>
            <xsl:value-of select="s:DeliveryAddress/s:Country"/>
          </xsl:otherwise>
        </xsl:choose>
      </xsl:element>
      <xsl:if test="$FormaPowiadomieniaAdresata!=''">
        <xsl:element name="Atrybut">
          <xsl:attribute name="Typ"/>
          <xsl:attribute name="Nazwa">FormaPowiadomieniaAdresata</xsl:attribute>
          <xsl:value-of select="$FormaPowiadomieniaAdresata"/>
        </xsl:element>
        <xsl:element name="Atrybut">
          <xsl:attribute name="Typ"/>
          <xsl:attribute name="Nazwa">KontaktPowiadomieniaAdresata</xsl:attribute>
          <xsl:choose>
            <xsl:when test="$FormaPowiadomieniaAdresata='M'">
              <xsl:variable name="phone" select="translate(s:DeliveryAddress/s:PhoneNumber,'- ()/','')"/>
              <xsl:variable name="phone2" select="format-number(substring($phone,string-length($phone)-8,9),'000000000')"/>
              <xsl:value-of select="$phone2"/>
            </xsl:when>
            <xsl:when test="$FormaPowiadomieniaAdresata='E'">
              <xsl:value-of select="s:DeliveryAddress/s:Email"/>
            </xsl:when>
          </xsl:choose>
        </xsl:element>
      </xsl:if>
      <!--Atrybuty specyficzne dla przesyłki 834-->
      <xsl:element name="Atrybut">
        <xsl:attribute name="Typ"/>
        <xsl:attribute name="Nazwa">Symbol</xsl:attribute>834</xsl:element>
      <xsl:if test="$NrUmowy!=''">
        <xsl:element name="Atrybut">
          <xsl:attribute name="Typ"/>
          <xsl:attribute name="Nazwa">Umowa</xsl:attribute>
          <xsl:value-of select="$NrUmowy"/>
        </xsl:element>
      </xsl:if>
      <xsl:if test="$KartaUmowy!=''">
        <xsl:element name="Atrybut">
          <xsl:attribute name="Typ"/>
          <xsl:attribute name="Nazwa">KartaUmowy</xsl:attribute>
          <xsl:value-of select="$KartaUmowy"/>
        </xsl:element>
      </xsl:if>
      <xsl:element name="Atrybut">
        <xsl:attribute name="Typ"/>
        <xsl:attribute name="Nazwa">Ilosc</xsl:attribute>1</xsl:element>
      <xsl:if test="s:Weight">
        <xsl:element name="Atrybut">
          <xsl:attribute name="Typ"/>
          <xsl:attribute name="Nazwa">Masa</xsl:attribute>
          <xsl:value-of select="30000"/>
        </xsl:element>
      </xsl:if>
      <xsl:if test="s:SendingNumber!=''">
        <xsl:element name="Atrybut">
          <xsl:attribute name="Typ"/>
          <xsl:attribute name="Nazwa">NrNadania</xsl:attribute>
          <xsl:value-of select="translate(s:SendingNumber,'- ','')"/>
        </xsl:element>
      </xsl:if>
      <xsl:if test="$RodzajPrzesylki!=''">
        <xsl:element name="Atrybut">
          <xsl:attribute name="Typ"/>
          <xsl:attribute name="Nazwa">Serwis</xsl:attribute>
          <xsl:value-of select="$RodzajPrzesylki"/>
        </xsl:element>
      </xsl:if>
      <xsl:if test="$Termin!=''">
        <xsl:element name="Atrybut">
          <xsl:attribute name="Typ"/>
          <xsl:attribute name="Nazwa">Termin</xsl:attribute>
          <xsl:value-of select="$Termin"/>
        </xsl:element>
      </xsl:if>
      <xsl:element name="Atrybut">
        <xsl:attribute name="Typ"/>
        <xsl:attribute name="Nazwa">CzyOplacaOdbiorca</xsl:attribute>N</xsl:element>
      <xsl:if test="s:DeliveryMethod/s:IsPayOnDelivery=1">
        <xsl:element name="Atrybut">
          <xsl:attribute name="Typ"/>
          <xsl:attribute name="Nazwa">Uslugi</xsl:attribute>P</xsl:element>
        <xsl:element name="Atrybut">
          <xsl:attribute name="Typ"/>
          <xsl:attribute name="Nazwa">SposobPobrania</xsl:attribute>
          <xsl:value-of select="$SposobPobrania"/>
        </xsl:element>
        <xsl:if test="s:Charge">
          <xsl:element name="Atrybut">
            <xsl:attribute name="Typ"/>
            <xsl:attribute name="Nazwa">KwotaPobrania</xsl:attribute>
            <xsl:value-of select="round(number(s:Charge)*100)"/>
          </xsl:element>
        </xsl:if>
      </xsl:if>
      <xsl:element name="Atrybut">
        <xsl:attribute name="Typ"/>
        <xsl:attribute name="Nazwa">Wersja</xsl:attribute>1</xsl:element>
      <xsl:variable name="description">
        <xsl:call-template name="Opis"/>
      </xsl:variable>
      <xsl:if test="$description!=''">
        <xsl:element name="Atrybut">
          <xsl:attribute name="Typ"/>
          <xsl:attribute name="Nazwa">Uwagi</xsl:attribute>
          <xsl:value-of select="$description"/>
        </xsl:element>
      </xsl:if>
    </xsl:element>
  </xsl:template>
</xsl:stylesheet>

Link to postu
  • 7 miesięcy temu...

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.
Uwaga: Twój wpis zanim będzie widoczny, będzie wymagał zatwierdzenia moderatora.

Użytkownik forum
Odpowiedz...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

×
×
  • Dodaj nową pozycję...