Salut à tous, j'ai reçu un script, mais i cant ajouter le rapport de synthèse .. tenir compte synax erreur. aide-moi l'esprit de jeter un oeil et me dire ce qui n'allait pas ..
Je sais que c'est un peu long, mais j'espère que quelqu'un pourra me hep avec elle. merci
le message d'erreur lorsque je venir essayer d'exécuter le rapport de synthèse ..
i guess 1 du problème est le système date.thing.
le problème est sur le point de vente.
J'essaie de les ajouter toutes les ventes quotidiennes et ont un grand total de toutes les ventes de tous les jours.
ci-dessous est le code.
Code:
# Global variables
POS=~/.Point_Of_Sales
POS=POS.txt
export POS
confirm()
{
echo -en "$@"
read ans
ans=`echo $ans | tr '[a-z]' '[A-Z]'`
if [ "$ans" == "Y" ]; then
return 0
else
return 1
fi
}
num_lines()
{
grep -i "$@" $POS|wc -l| awk '{ print $1 }'
}
find_lines()
{
# Find lines matching $1
res=-1
if [ ! -z "$1" ]; then
grep -i "$@" $POS
res=$?
fi
return $res
}
list_items()
{
# List items matching given search criteria
if [ "$#" -eq "0" ]; then
echo -en "Search for: (return to list all) "
read search
if [ -z "$search" ]; then
search="."
fi
echo
else
search="$@"
fi
find_lines "${search}" | while read i
do
echo "$i" | tr ':' '\t'
done
echo -en "Matches found: "
num_lines "$search"
}
add_item()
{
echo "Add Item: You will be prompted for 3 items:"
echo "- Item Description, Unit Price, Quantity Purchased -"
echo
echo -en "Item Description:"
read product
echo -en "Unit Price:"
read Unit_Price
echo -en "Quantity:"
read Quantity
Date_Purchased=$(date +"%d %b %Y")
echo "${product}:${Unit_Price}:${Quantity}:${Date_Purchased}" >> $POS
}
locate_single_item()
{
echo -en "Item to search for: "
read search
n=`num_lines "$search"`
if [ -z "$n" ]; then
n=0
fi
while [ "${n}" -ne "1" ]; do
#list_items "$search"
echo -en "${n} matches found. Please choose a "
case "$n" in
"0") echo "less" ;;
"*") echo "more" ;;
esac
echo "specific search term (q to return to menu): "
read search
if [ "$search" == "q" ]; then
return 0
fi
n=`num_lines "$search"`
done
return `grep -in $search $POS |cut -d":" -f1`
}
remove_item()
{
locate_single_item
search=`head -$? $POS | tail -1|tr ' ' '.'`
if [ -z "${search}" ]; then
return
fi
list_items "$search"
confirm "Remove?"
if [ "$?" -eq "0" ]; then
grep -v "$search" $POS > ${POS}.tmp ; mv ${POS}.tmp ${POS}
else
echo "NOT REMOVING"
fi
}
edit_item()
{
locate_single_item
search=`head -$? $POS | tail -1|tr ' ' '.'`
if [ -z "${search}" ]; then
return
fi
list_items "$search"
thisline=`grep -i "$search" $POS`
oldProduct=`echo $thisline|cut -d":" -f1`
oldUnitPrice=`echo $thisline|cut -d":" -f2`
oldQuanity=`echo $thisline|cut -d":" -f3`
echo "SEARCH : $search"
grep -v "$search" $POS > ${POS}.tmp ; mv ${POS}.tmp ${POS}
echo -en "Item Description: [ $oldProduct ] "
read Product
echo -en "Unit Price[ $oldUnitPrice ] "
read Unit_Price
echo -en "Quanity [ $oldQuanity ] "
read Quanity
Date_Purchased=$(date +"%d %b %Y")
echo "${Product}:${Unit_Price}:${Quanity}:${Date_Purchased}" >> $POS
}
summary_items()
{
#echo "- - - POS Summary Report - - -"
#echo "---------------------------"
#echo "Date Total POS"
#echo "---------------------------"
print_dtotal
#echo "---------------------------"
#print_gtotal
#echo "---------------------------"
#echo -en "Best Selling Product: "
#print_bestsell
#echo -en "Product with Highest POS: "
#print_phighPOS
#echo -en "Date with Highest POS: "
print_dtotal | sort -f4| while read z
do
echo $z | cut -f4 -d' '
return 0
done
echo
echo -en "Press Enter to continue..."
read
}
print_dtotal()
{
count=0
grep -i : $POS | cut -d: -f4 | sort -u | while read i
do
dtotal=0
grep -i "$i" $POS | while read x
do
count=`expr $count + 1`
temp1=`echo $x | cut -d: -f2 | cut -c2-`
temp2=`echo $x | cut -d: -f3`
temp3=`calcu_m $temp1 $temp2`
dtotal=`calcu_a $dtotal $temp3`
n=`num_lines "$i"`
if [ "${n}" -eq "${count}" ]; then
echo $i" $"$dtotal
fi
done
done
}
print_gtotal()
{
gtotal=0
grep -i : $POS | while read x
do
temp1=`echo $x | cut -d: -f2 | cut -c2-`
temp2=`echo $x | cut -d: -f3`
temp3=`calcu_m $temp1 $temp2`
gtotal=`calcu_a $gtotal $temp3`
n=`num_lines "$i"`
if [ "${n}" -eq "${count}" ]; then
echo "Grand Total $"$gtotal
fi
count=`expr $count + 1`
done
}
print_bestsell()
{
grep -i : $POS | sort -k4 -r -t: | while read bs
do
echo $bs | cut -d: -f1
return 0
done
}
print_phighPOS()
{
count=0
phigh="0.0"
grep -i : $POS | while read x
do
count=`expr $count + 1`
temp1=`echo $x | cut -d: -f2 | cut -c2-`
temp2=`echo $x | cut -d: -f3`
temp3=`calcu_m $temp1 $temp2`
comparex $temp3 $phigh
if [ "$?" -eq "0" ]; then
phigh=$temp3
phighx=`echo $x | cut -d: -f1`
fi
n=`num_lines ":"`
if [ "${n}" -eq "${count}" ]; then
echo $phighx
fi
done
}
comparex() # compare 2 decimal numbers $1 $2 eg 1.20 and 3.60
{
x1=`echo $1 | cut -d. -f1`
x2=`echo $1 | cut -d. -f2`
y1=`echo $2 | cut -d. -f1`
y2=`echo $2 | cut -d. -f2`
if [ "${x1}" -gt "${y1}" ]; then
return 0
elif [ "${x1}" -eq "${y1}" ]; then
if [ "${x2}" -gt "${y2}" ]; then
return 0
fi
fi
return 1
}
calcu_a() # add 2 decimal numbers $1 $2
{
x1=`echo $1 | cut -d. -f1`
x2=`echo $1 | cut -d. -f2`
y1=`echo $2 | cut -d. -f1`
y2=`echo $2 | cut -d. -f2`
x1=`expr $x1 + $y1`
x2=`expr $x2 + $y2`
x3=`expr $x2 \/ 100`
x1=`expr $x1 + $x3`
x2=`expr $x2 \% 100`
echo $x1"."$x2
}
calcu_m() # multiply 2 decimal numbers $1 $2
{
x1=`echo $1 | cut -d. -f1`
x2=`echo $1 | cut -d. -f2`
y=`echo $2`
x1=`expr $x1 \* $y`
x2=`expr $x2 \* $y`
x3=`expr $x2 \/ 100`
x1=`expr $x1 + $x3`
x2=`expr $x2 \% 100`
echo $x1"."$x2
}