Mastodon

Mój Alfred – obliczanie VAT

4
Dodane: 10 lat temu

W dzisiejszej części wpisów poświęconych workflows do Alfreda po raz pierwszy od dłuższego czasu przedstawię Wam stworzoną przeze mnie akcję, która ma za zadanie podać cenę netto lub brutto dotyczącą 23% podatku.

Z pewnością część z Was ma czasami potrzebę szybkiego obliczenia kwoty netto lub brutto od jakiejś liczby. Wiem to po sobie. Dlatego na własne potrzeby stworzyłem workflow, który po wpisaniu kwoty wyświetla od razu netto i brutto (w zależności, które potrzebujemy).

Działanie przedstawia się następująco:

  • w oknie Alfreda wpisujemy vat oraz kwotę
  • w momencie wpisania kwoty pokażą się dwa wyniki – netto i brutto
  • po wskazaniu któregoś z wyników mamy dwie możliwości:
    • wciśnięcie klawisza Enter spowoduje skopiowanie wartości do schowka
    • wciśnięcie klawiszy Cmd ⌘+Enter wyświetli wynik w oknie Alfreda, dzięki czemu będziemy mogli wykonywać dalsze obliczenia

Budowa tego workflow przedstawia się następująco:

Wejście

Na wejściu użyłem Script filter, w którym odbywa się całe liczenie. Skrypt znajdujący się wewnątrz wygląda następująco:

LICZBA={query}
LICZBA=${LICZBA//,/.}

NETTO=`echo "scale=2;x=((100*$LICZBA*100/123)+0.5)/100; if (x<1) print 0; x" | bc`

NETTO8=`echo "scale=2;x=((100*$LICZBA*100/108)+0.5)/100; if (x<1) print 0; x" | bc`

BRUTTO=`echo "scale=2;x=((100*$LICZBA*1.23)+0.5)/100; if (x<1) print 0; x" | bc`

BRUTTO8=`echo "scale=2;x=((100*$LICZBA*1.08)+0.5)/100; if (x<1) print 0; x" | bc`

NETTO=${NETTO//./,}
NETTO8=${NETTO8//./,}
BRUTTO=${BRUTTO//./,}
BRUTTO8=${BRUTTO8//./,}

TEXT="[ENTER] = skopiuj, [CMD]+[ENTER] = wyświetl wynik w Alfredzie"

echo '
            
                
                icon.png
                '$TEXT'
            
            
                
                icon.png
                '$TEXT'
            
            
                
                icon.png
                '$TEXT'
            
            
                
                icon.png
                '$TEXT'
            
        '

Dla zainteresowanych wyjaśnienie kodu:

  • LICZBA={query} – proste, przypisanie wpisywanej kwoty do zmiennej LICZBA;
  • LICZBAOK=${LICZBA//,/.} – ponieważ w Polsce wprowadzamy liczby dziesiętne rozdzielane przecinkiem, natomiast OS X czyta liczby rozdzielane kropką, to w tym miejscu wprowadzona liczba jest odpowiednio konwertowana – przecinek zamieniany jest na kropkę – i całość przypisana jest do nowej zmiennej LICZBAOK;
  • NETTO=`echo “scale=2;(((10^2)$LICZBAOK100/123)+0.5)/(10^2)” | bc` – do zmiennej NETTO przypisany jest wynik stosownego obliczenia;
  • BRUTTO=`echo “scale=2;(((10^2)$LICZBAOK1.23)+0.5)/(10^2)” | bc` – do zmiennej BRUTTO przypisany jest wynik stosownego obliczenia;
  • NETTOOK=${NETTO//./,} oraz BRUTTOOK=${BRUTTO//./,} – tutaj liczby są ponownie konwertowane – kropka rozdzielająca miejsca dziesiętne zamieniana jest na przecinek;
  • echo… – ta sekwencja ma wyświetlić wyniki „na żywo” pod oknem Alfreda.

Wyjście

Skopiowanie do schowka

Użyty został element Copy to Clipboard ze zmienną {query}, czyli wynikiem akcji, który zostanie skopiowany do systemowego schowka. Zaznaczenie dodatkowo opcji Automatically paste to front most app wklei wartość do aplikacji, która znajduje się aktualnie „na wierzchu”.

Wyświetlenie w oknie Alfreda

Tutaj z kolei posłużyłem się elementem Run NSAppleScript, czyli wywołuję poniższy, bardzo łatwy AppleScript:

on alfred_script(q)
    tell application "Alfred 3"
        search q
    end tell
end alfred_script

Jego działanie jest bardzo proste. Po wciśnięciu kombinacji Cmd ⌘+Enter okno Alfreda zostanie uruchomione jeszcze raz, ale tym razem z parametrem q, czyli naszym wynikiem.


Nazwa: VAT
Pobieranie: link

Wszystkie artykuły z serii Mój Alfred
możecie znaleźć pod tym linkiem.

Maciej Skrzypczak

Użytkownik sprzętu z nadgryzionym jabłkiem, grafik komputerowy, Redaktor iMagazine.pl. Mastodon: mcskrzypczak@c.im

Zapraszamy do dalszej dyskusji na Mastodonie lub Twitterze .

Komentarze: 4

Witam.

Mam problem z tym skryptem. Mam alfreda 3 z powerpackiem.
Dodaje w Workflow “Blank Workflow”. Nazywam je VAT.

Nastepnie dodaje po kolei elementy i je łaczę.
https://www.dropbox.com/s/eph7favg3vzgd3h/Zrzut%20ekranu%202016-06-13%2016.12.43.jpg?dl=0

W skrypcie dodaje kod w taki sposób:
https://www.dropbox.com/s/a2c2wbvh5j2rav3/Zrzut%20ekranu%202016-06-13%2016.15.34.jpg?dl=0

i niestety nie działa mi ten workflow chocby nie wiem co a bardzo bym go chciał. Z góry dziekuje za wszelką pomoc w tej kwestii.