Hej alla Jag har ett manus, men jag skränande lägga upp den sammanfattande rapporten .. hålla med synax fel. åtanke att hjälpa mig att ta en titt och berätta vad som gick fel ..
Jag vet är lite lång, men jag hoppas någon kan Hep mig med det. tack
felmeddelandet kommer upp när jag försöker köra den sammanfattande rapporten ..
Jag antar att 1 av problemet är det system date.thing.
problemet handlar om i butikerna.
Jag försöker att lägga upp alla dagliga försäljningen och sedan har en totalsumman av all försäljning av alla dagar.
nedan är koden.
Kod:
# 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
}