#!/bin/sh ################################################################################ # Skrypt przygotowujący plik korespondencji masowej dla Envelo # # Skrypt przeznaczony do pracy w urządzeniem wyjściowym rodzaju Polecenie # Wywołanie: envelo_mass &zbior& &zalaczniki& # # &zbior& to ścieżka do pliku sterującego wg schematu Envelo # &zalaczniki& to ścieżki do plików z fakturami # # Nazwy pliku sterującego i faktur mogą być dowolne. # # Skrypt konwertuje plik sterujący do formatu xls, następnie pakuje # razem z plikami faktur # Spakowany plik przenosi do katalogu /trinout/envelo/ # # Skrypt do pracy potrzebuje programów unoconv z pakietu LibreOffice # lub podobnego oraz programu 7za z pakietu p7zip. # # Note: Pierwsze dwa wiersze pliku sterującego to nagłówek i nie mogą być puste # # PZ 2020/10 # ################################################################################ katalog=$PWD # bieżący katalog temp=`dirname "$1"` # katalog z plikiem sterującym plik=`basename "$1"` # pełna nazwa bez ścieżki plik="${plik%.*}" # nazwa bez rozszerzenia cd "$temp" # Konwersja pliku csv do xls (Excel) # # Program ssconvert #ssconvert --import-encoding=utf-8 "$1" $plik.xls # Program unoconv z pakietu OpenOffice/LibreOffice # filter options # https://wiki.openoffice.org/wiki/Documentation/DevGuide/Spreadsheets/Filter_Options # separator ; (59) # ogranicznik " (34) # kodowanie utf-8 unoconv -i FilterOptions=59,34,utf-8 --format xls "$1" # Bezpośrednie użycie LibreOffice # TODO: opcje filtra # libreoffice --headless --convert-to xls "$1" shift 7za a -tzip "$plik.zip" "$plik.xls" for fakturaPDF do 7za u "$plik.zip" "$fakturaPDF" done cd "$katalog" # Przeniesienie pliku do katalogu trinout/envelo dir=../trtres/trinout/envelo/ if [ ! -d "$dir" ] then mkdir -p "$dir" fi mv -f "$temp/$plik.zip" "$dir" #eof