Cmenu
view release on metacpan or search on metacpan
contrib/sqlmenu view on Meta::CPAN
# now set new values
if($#hacks>0) {
for($i=1;$i<=$#hacks;$i++) {
$result=$conn->exec("UPDATE food SET buy = 1 WHERE foodid = $hacks[$i]");
}
}
}
}
}
} until(($sel eq "%EMPTY%")||($sel eq "%UP%"));
if($sel eq "%UP%") { $sel= ""; }
$last_option=0;
last SUB_MENU;
};
/shopshow/ && do {
$result=$conn->exec("SELECT * FROM food WHERE buy > 0");
$numrows=$result->ntuples();
if($numrows<=0) {
&menu_show("No Records","No items have been flagged for purchase","HELP");
} else {
$cat=0;
&menu_init("Shopping List","Buy these items");
for($i=0;$i<$numrows;$i++) {
@row=$result->fetchrow;
if($row[1]!=$cat) {
$head=&getcat($row[1]);
$cat=$row[1];
}
&menu_item($row[2],$head,4);
}
&menu_display("");
}
$last_option=1;
last SUB_MENU;
};
/shopprint/ && do {
$result=$conn->exec("SELECT * FROM food WHERE buy > 0 ORDER BY foodcat");
$numrows=$result->ntuples();
if($numrows<=0) {
&menu_show("No Records","No items have been flagged for purchase","HELP");
} else {
open(OUT,">/tmp/foodout");
print OUT "Shopping List\n-------------\n";
$cat=0;
&menu_init("Shopping List","Buy these items");
for($i=0;$i<$numrows;$i++) {
@row=$result->fetchrow;
if($row[1]!=$cat) {
$head=&getcat($row[1]);
$cat=$row[1];
}
&menu_item($row[2],$head);
printf(OUT "%d %s %s\n",$i,$head,$row[2]);
}
close(OUT);
$sel=&menu_display("Press OK to Print");
chop($sel);
if(($sel eq "%EMPTY%")||($sel eq "%UP%")) {
$sel="";
} else {
&menu_popup("Printing","Sending Data to Printer");
system("lpr -Pbj /tmp/foodout");
system("rm /tmp/foodout");
&menu_popup();
}
}
$last_option=2;
last SUB_MENU;
};
/shopclear/ && do {
&menu_popup("Removing all Flagged Items","Clearing Shopping List");
$result=$conn->exec("SELECT * FROM food WHERE buy > 0");
$numrows=$result->ntuples();
for($i=0;$i<$numrows;$i++) {
@row=$result->fetchrow;
$clear=$conn->exec("UPDATE food SET buy = 0, update = CURRENT_TIMESTAMP WHERE foodid = $row[0]");
}
$last_option=3;
&menu_popup();
last SUB_MENU;
};
/foodadd/ && do {
$cat=&fooditem();
if($cat>0) {
$head=getcat($cat);
&menu_init("New Item","Add new item to category $head");
&menu_item($cat,"Category",4);
&menu_item($food,"Item",6,$cat,"20 0 0");
$sel=&menu_display("Edit Item",2);
chop($sel);
@hacks=split(/$Cmenu::menu_sep/,$sel);
if($hacks[0] ne "%EMPTY%") {
(undef,$head)=split(/$Cmenu::menu_sepn/,$hacks[1]);
$result=$conn->exec("INSERT INTO food VALUES(NEXTVAL('food_foodid_seq'),$cat,'$head')");
}
}
$sel="";
$last_option=4;
last SUB_MENU;
};
};
} until(($sel eq "%EMPTY%")||($sel eq "%UP%"));
return($sel);
}
# ---< fooditem >----------------------------------------------------
sub fooditem {
my($class,$classt);
&menu_init("Query Database","Select Food Category");
$result=$conn->exec("SELECT * FROM foodcat WHERE foodcat < 10");
$numrows=$result->ntuples();
for($i=0;$i<$numrows;$i++) {
@row=$result->fetchrow;
&menu_item($row[1],$row[0]);
}
$sel=&menu_display("Choose a Category");
chop($sel);
if(($sel ne "%EMPTY%")&&($sel ne "%UP%")) {
$class=$sel;
$result=$conn->exec("SELECT * FROM foodcat WHERE foodcat =$sel");
@row=$result->fetchrow;
$classt=@row[1];
$sel=$sel*10;
&menu_init("Query Database","Select from $classt");
$result=$conn->exec("SELECT * FROM foodcat WHERE foodcat >= $sel AND foodcat < ($sel+10)");
$numrows=$result->ntuples();
for($i=0;$i<$numrows;$i++) {
@row=$result->fetchrow;
&menu_item(@row[1],@row[0]);
}
$sel=&menu_display("Choose a Category");
chop($sel);
}
return($sel);
}
( run in 1.839 second using v1.01-cache-2.11-cpan-364913b4093 )