Hola a todos Tengo un script, pero i cant añadir el informe de síntesis .. mantener haber synax error. mente ayudar a echar un vistazo y me dicen lo que salió mal ..
Sé que es un poco largo, pero espero que alguien me puede hepatitis con él. gracias
llegado el mensaje de error cuando trato de ejecutar el informe de síntesis ..
i 1 de adivinar el problema es el sistema date.thing.
el problema es sobre los puntos de venta.
Estoy tratando de añadir la seguridad de todos los diarios de ventas y luego tienen un gran total de todas las ventas de todos los días.
a continuación es el código.
Código:
# 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
}