1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
| #!/bin/ksh
. /exploit/commun/cfg/env_exploit
# automatiser la decoupe des fichiers de factures maritimes
# pour l'instant ne coupe que les factures et duplicatats precedent le numero de facture passe en parametre
# et ca imprimera donc a partir de la jusqu a la fin
# version 0.0 04/03/2008
# ne pas utiliser se script pour l'instant c'est encore un test merci
# le script prend 3 parametres
# 1-nom du fichier PS
# 2-le numero de la facture
# 3-nom de l imprimante si il est present ca imprime dessus
# creer une fonction usage
usage()
{
echo
echo USAGE : $0 FICHIER numero_facture imprimante\(facultative\)
echo
}
# verifier le nombre de parametres (au moins 2)
if [ $# -lt 2 ] ; then
mes_err "FATAL" $0 "le nombre de parametres est incorrect" "L execution a ete interrompu" "Analyser l incident"
echo le nombre de parametres est incorrect L execution a ete interrompu Analyser l incident
usage
exit 1
fi
# tester l existance du fichier
if [ ! -f $1 ]; then
mes_err "FATAL" $0 "le fichier $1 n existe pas" "L execution a ete interrompu" "Analyser l incident"
echo "FATAL $0 le fichier $1 n existe pas L execution a ete interrompu Analyser l incident"
exit 1
fi
# tester l existance du numero de facture dans le fichier
if [ $(grep -i $2 $1 | wc -l) -eq 0 ] ; then
mes_err "FATAL" $0 "le fichier $1 ne contient pas la facture #$2" "L execution a ete interrompu" "Analyser l incident"
echo "FATAL $0 le fichier $1 ne contient pas la facture #$2 L execution a ete interrompu Analyser l incident"
exit 1
fi
# genere un format de date pour permetre la creation d'un nom de fichier lisible
DATE=$(date +"%y%m%d")
# calcul du numero de la ligne jusqu a laquelle il faut effacer depuis la 163
n_ligne=$(cat -n $1 | grep "_DSC_FN _DSC_BK 520.2 800.48 _DSC_MV ("$2")" | awk '{print $1}' | head -1)
n_ligne=$(($n_ligne-7))
echo decoupage de la ligne 163 a la ligne $n_ligne
# copie du fichier
cp $1 /tmp/$2-$DATE.ps
if [ $? -ne 0 ] ; then
# message d erreur
mes_err "FATAL" $0 "la copie du fichier cp $1 /tmp/$2-$DATE.ps echoue" "L execution a ete interrompu" "Analyser l incident"
echo "FATAL $0 la copie du fichier cp $1 /tmp/$2-$DATE.ps echoue L execution a ete interrompu Analyser l incident"
exit 1
fi
# executer la decoupe
vi -c "163,"$n_ligne"d|:wq" /tmp/$2-$DATE.ps
if [ $? -ne 0 ] ; then
# message d erreur
echo
fi
# tester la presence du parametre 3
if [ $# -eq 3 ] ; then
# tester que l'imprimante existe
if [ $((grep $3 /etc/printcap | wc -l)) -gt 0 ] ; then
lpr -P $3 /tmp/$2-$DATE.ps
if [ $? -ne 0 ] ; then
mes_err "FATAL" $0 "l edition de /tmp/$2-$DATE.ps n a pu s effectuer sur $3" "Merci de verifier le spoolex" "Analyser l incident"
echo "FATAL $0 l edition de /tmp/$2-$DATE.ps n a pu s effectuer sur $3 Merci de verifier le spoolex Analyser l incident"
exit 1
fi
fi
fi
# deplacement du fichier genere dans les archives de factures maritimes
mv /tmp/$2-$DATE.ps /OA_div/prd/gp/gpgc/11.5.0/fic/SODIFRANCE/factures_maritimes/
if [ $? -ne 0 ] ; then
# message d erreur
mes_err "FATAL" $0 "le deplacement du fichier mv /tmp/$2-$DATE.ps /OA_div/prd/gp/gpgc/11.5.0/fic/SODIFRANCE/factures_maritimes/ echoue" "L execution a ete interrompu" "Analyser l incident"
echo "FATAL $0 le deplacement du fichier mv /tmp/$2-$DATE.ps /OA_div/prd/gp/gpgc/11.5.0/fic/SODIFRANCE/factures_maritimes/ echoue L execution a ete interrompu Analyser l incident"
exit 1
fi
exit 0 |
Partager