iMagazine

Mój Alfred – obliczanie VAT

23/03/2014, 00:42 · · · 4

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:

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:

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.

4

Maciej Skrzypczak

Użytkownik sprzętu z nadgryzionym jabłkiem, grafik komputerowy, nałogowy gracz ARK: Survival Evolved. Redaktor iMagazine.pl.


4
Dodaj komentarz

avatar
3 Comment threads
1 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
4 Comment authors
Nayma.plMaksymilian ŚleziakMaciej SkrzypczakAdam Recent comment authors
  Subscribe  
najnowszy najstarszy oceniany
Powiadom o
Adam
Gość
Adam

Dzięki za workflow. Przy okazji mam pytanie: jak nazywa się motyw, którego używasz w Alfredzie ?

Maciej Skrzypczak
Gość

To motyw mojej twórczości – Tiny – możesz go pobrać stąd → https://dl.dropboxusercontent.com/u/6791141/share/tiny-mcskrzypczak.zip

Maksymilian Śleziak
Gość

Dzięki właśnie miałem się zabrać za stworzenie takiego workflow, ale okazało się, że już go stworzyłeś – super! :-)

Nayma.pl
Gość

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.