🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

8 total messages Started by ChrisB Thu, 27 Dec 2007 14:20
Problem z obliczeniami
#9612
Author: ChrisB
Date: Thu, 27 Dec 2007 14:20
69 lines
2857 bytes
Witam!

Na zaliczenie mam projekt z XML i XSL, temat: "Faktura".
Fragment XML opisujacy pozycje na fakturze:

     <Pozycja>
         <LP>1</LP>
         <Indeks>Indeks 1</Indeks>
         <Opis>Opis 1</Opis>
         <Ilosc>3</Ilosc>
         <Jednostka>m2</Jednostka>
         <CenaPLN>25</CenaPLN>
         <StawkaVAT>
             <Procent>22</Procent>
         </StawkaVAT>
     </Pozycja>

     <Pozycja>
         <LP>2</LP>
         <Indeks>Indeks 2</Indeks>
         <Opis>Opis 2</Opis>
         <Ilosc>2</Ilosc>
         <Jednostka>m2</Jednostka>
         <CenaPLN>2</CenaPLN>
         <StawkaVAT>
             <Procent>22</Procent>
         </StawkaVAT>
     </Pozycja>

     <Pozycja>
         <LP>3</LP>
         <Indeks>Indeks 3</Indeks>
         <Opis>Opis 3</Opis>
         <Ilosc>5</Ilosc>
         <Jednostka>m2</Jednostka>
         <CenaPLN>5</CenaPLN>
         <StawkaVAT>
             <Procent>22</Procent>
         </StawkaVAT>
     </Pozycja>

W XSL obliczam cene brutto dla kazdej pozycji w ten oto sposob (w skrocie):
<xsl:template match="Pozycja">
     <xsl:variable name="ilosc_sztuk" select="Ilosc" />
     <xsl:variable name="cena" select="CenaPLN" />
     <xsl:variable name="wart_netto" select="$ilosc_sztuk * $cena" />
     <xsl:variable name="vat" select="StawkaVAT/Procent" />
     <xsl:variable name="cena_vat" select="$wart_netto * $vat div 100" />
     <xsl:variable name="cena_z_vat" select="$cena_vat + $wart_netto" />
     <xsl:value-of select="$cena_z_vat"/>
</xsl:template>

I teraz musze zrobic podsumowanie faktury czyli obliczyc kwote do 
zaplaty czyli dla kazdego z towarow wykonac to co jest powyzej i 
zsumowac to wszystko... ale jak?

Uzycie:

sum((/Faktura/Pozycja/Ilosc * /Faktura/Pozycja/CenaPLN) * 
/Faktura/Pozycja/StawkaVAT/Procent))

powoduje blad: Wyrażenie nie zwraca węzła DOM.
Sumwowanie w stylu Suma = Suma + Pozycja rowniez odpada bo zmienna w XSL 
nie moga zmieniac swoich wartosci.

Macie jakies pomysly jak to zrobic?

-- 
Chrisb
Re: Problem z obliczeniami
#9613
Author: szomiz
Date: Thu, 27 Dec 2007 14:52
31 lines
2118 bytes
Użytkownik "ChrisB" <abuse@tpi.pl> napisał w wiadomości 
news:fl0ce1$c7m$1@atlantis.news.tpi.pl...
> Witam!

> Macie jakies pomysly jak to zrobic?

Nie ma prostego sposobu, nie posuujesz wynikow operacji na wartosciach 
wezlow.

Teraz OT:

Zanim zaczniesz bawic sie fakturami:
1. Zapoznaj sie z przepisami obowiazujacymi przy ich wystawianiu.
2. Wez pod uwage, ze wskazane jest by XML reprezentujacy fakture byl z tymi 
przepisami zgodny.

Ja wiem, ze wsystko mozna policzyc, ale co z tego, skoro rozporzadzenie 
wymaga podsumowan (nie wymaga natomiast wyliczania VAT'u i brutt'a dla 
kazdej pozycji!).

Optymalne  - moim zdaniem - jest zaszycie w aplikacji wyliczania, podczas 
generowania faktury, (ZTCP wymaganej) wartosci netto kazdej pozycji.

A pozniej proste sumowania po warunkach. Nawiasen mowiac (patrz pkt 2.) 
wskazane jest by to podsumowanie bylo zawarte w pliku faktury.

Wiem, ze wiecej roboty, ale bardzo wygodne jest generowanie WZ'tki (albo 
pseudo-WZ'tki przy uslugach) i dopiero na jej podstawie faktury VAT. Przy 
okazji opanujesz magazyny.

sz. 
Re: Problem z obliczeniami
#9614
Author: ChrisB
Date: Thu, 27 Dec 2007 18:06
20 lines
1467 bytes
szomiz pisze:
> Użytkownik "ChrisB" <abuse@tpi.pl> napisał w wiadomości 
> news:fl0ce1$c7m$1@atlantis.news.tpi.pl...
> 
> 
> Nie ma prostego sposobu, nie posuujesz wynikow operacji na wartosciach 
> wezlow.
> 
> Teraz OT:
> 
> Zanim zaczniesz bawic sie fakturami:
> 1. Zapoznaj sie z przepisami obowiazujacymi przy ich wystawianiu.
> 2. Wez pod uwage, ze wskazane jest by XML reprezentujacy fakture byl z tymi 
> przepisami zgodny.

Przepisy raczej nie maja tu nic do rzeczy - tak jak napisalem: to jest 
projekt na zaliczenie :)

-- 
ChrisB
Re: Problem z obliczeniami
#9615
Author: szomiz
Date: Thu, 27 Dec 2007 18:12
12 lines
1448 bytes
Użytkownik "ChrisB" <abuse@tpi.pl> napisał w wiadomości 
news:fl0ptq$f9t$1@nemesis.news.tpi.pl...

> Przepisy raczej nie maja tu nic do rzeczy - tak jak napisalem: to jest 
> projekt na zaliczenie :)

No to masz szczescie, ze tego nie zauwazylem...

Wiec albo skorzystaj z rad praktyka i wysil szare komorki, albo wystaw 
zlecenie na jakims serwisie dla freelancerow.

sz. 
Re: Problem z obliczeniami
#9616
Author: szomiz
Date: Thu, 27 Dec 2007 18:13
14 lines
1466 bytes
Użytkownik "ChrisB" <abuse@tpi.pl> napisał w wiadomości
news:fl0ptq$f9t$1@nemesis.news.tpi.pl...

> Przepisy raczej nie maja tu nic do rzeczy - tak jak napisalem: to jest 
> projekt na zaliczenie :)

No to masz szczescie, ze tego nie zauwazylem...

Wiec albo skorzystaj z rad i wysil szare komorki, albo wystaw
zlecenie na jakims serwisie dla freelancerow.

EOT

sz. 
Re: Problem z obliczeniami
#9617
Author: ChrisB
Date: Thu, 27 Dec 2007 19:40
11 lines
1288 bytes
szomiz pisze:
> Użytkownik "ChrisB" <abuse@tpi.pl> napisał w wiadomości
> news:fl0ptq$f9t$1@nemesis.news.tpi.pl...
> 
>
> No to masz szczescie, ze tego nie zauwazylem...

A to jakas zbrodnia pytac o cos na usenecie w celach edukacyjnych?

-- 
ChrisB
Re: Problem z obliczeniami
#9618
Author: szomiz
Date: Thu, 27 Dec 2007 20:27
21 lines
1818 bytes
Użytkownik "ChrisB" <abuse@tpi.pl> napisał w wiadomości 
news:fl0vf9$rf2$1@nemesis.news.tpi.pl...
> szomiz pisze:
>> Użytkownik "ChrisB" <abuse@tpi.pl> napisał w wiadomości
>> news:fl0ptq$f9t$1@nemesis.news.tpi.pl...
>>
>> No to masz szczescie, ze tego nie zauwazylem...
>
> A to jakas zbrodnia pytac o cos na usenecie w celach edukacyjnych?

Nie jest. Ale jezeli potrzebne ci to na zaliczenie, to mozna w sieci znalezc 
rozwiazania problemu.

Tyle, ze jezeli pojedziesz po bandzie, to jak juz zdobedziesz kwit o 
ukonczeniu studiow bedziesz ial zal do calego swiata, ze beda cie chcieli 
wylacznie w programistycznych Biedronkach.

EOT (po raz drugi)

sz. 
Re: Problem z obliczeniami
#9619
Author: moozzyk
Date: Fri, 28 Dec 2007 07:52
81 lines
4020 bytes
"ChrisB" <abuse@tpi.pl> wrote in message 
news:fl0ce1$c7m$1@atlantis.news.tpi.pl...
> Witam!
>
> Na zaliczenie mam projekt z XML i XSL, temat: "Faktura".
> Fragment XML opisujacy pozycje na fakturze:
>
>     <Pozycja>
>         <LP>1</LP>
>         <Indeks>Indeks 1</Indeks>
>         <Opis>Opis 1</Opis>
>         <Ilosc>3</Ilosc>
>         <Jednostka>m2</Jednostka>
>         <CenaPLN>25</CenaPLN>
>         <StawkaVAT>
>             <Procent>22</Procent>
>         </StawkaVAT>
>     </Pozycja>
>
>     <Pozycja>
>         <LP>2</LP>
>         <Indeks>Indeks 2</Indeks>
>         <Opis>Opis 2</Opis>
>         <Ilosc>2</Ilosc>
>         <Jednostka>m2</Jednostka>
>         <CenaPLN>2</CenaPLN>
>         <StawkaVAT>
>             <Procent>22</Procent>
>         </StawkaVAT>
>     </Pozycja>
>
>     <Pozycja>
>         <LP>3</LP>
>         <Indeks>Indeks 3</Indeks>
>         <Opis>Opis 3</Opis>
>         <Ilosc>5</Ilosc>
>         <Jednostka>m2</Jednostka>
>         <CenaPLN>5</CenaPLN>
>         <StawkaVAT>
>             <Procent>22</Procent>
>         </StawkaVAT>
>     </Pozycja>
>
> W XSL obliczam cene brutto dla kazdej pozycji w ten oto sposob (w 
> skrocie):
> <xsl:template match="Pozycja">
>     <xsl:variable name="ilosc_sztuk" select="Ilosc" />
>     <xsl:variable name="cena" select="CenaPLN" />
>     <xsl:variable name="wart_netto" select="$ilosc_sztuk * $cena" />
>     <xsl:variable name="vat" select="StawkaVAT/Procent" />
>     <xsl:variable name="cena_vat" select="$wart_netto * $vat div 100" />
>     <xsl:variable name="cena_z_vat" select="$cena_vat + $wart_netto" />
>     <xsl:value-of select="$cena_z_vat"/>
> </xsl:template>
>
> I teraz musze zrobic podsumowanie faktury czyli obliczyc kwote do zaplaty 
> czyli dla kazdego z towarow wykonac to co jest powyzej i zsumowac to 
> wszystko... ale jak?
>
> Uzycie:
>
> sum((/Faktura/Pozycja/Ilosc * /Faktura/Pozycja/CenaPLN) * 
> /Faktura/Pozycja/StawkaVAT/Procent))
>
> powoduje blad: Wyrażenie nie zwraca węzła DOM.
> Sumwowanie w stylu Suma = Suma + Pozycja rowniez odpada bo zmienna w XSL 
> nie moga zmieniac swoich wartosci.
>
> Macie jakies pomysly jak to zrobic?
>
> -- 
> Chrisb

Hint: Uzyj zmiennej bedacej RTF (result tree fragment) i zawierajacej
iloczyny czastkowe a potem to zsumuj.

moozzyk

---------------------------------
http://xml.com.pl
http://xml.com.pl/XmlFellow.aspx 
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads