📄 manager.c
字号:
}
}
del_blank((*(d->i+8))->str);
if(isdigital((*(d->i+8))->str))
{
if(strlen((*((d->i)+8))->str)==0)
{
sign=8;
messagebox(stdscr,7,19,44,12,PAUSE,"删除标志不可为空");
}
else
{
i=atoi((*((d->i)+8))->str);
if(i==1||i==0)
{
break;
}
else
{
sign=8;
messagebox(stdscr,7,19,44,12,PAUSE,"删除标志为0或者1");
}
}
}
else
{
sign=8;
messagebox(stdscr,7,19,44,12,PAUSE,"请输入数字");
}
break;
case 9:
(*(d->b))->pitch_on(*(d->b));
sign=(*(d->b))->attack(*(d->b),8,10,10);
if(sign == 0)
{
result=1;
}
break;
case 10:
(*((d->b)+1))->pitch_on(*((d->b)+1));
sign=(*((d->b)+1))->attack(*((d->b)+1),9,1,1);
if(sign == 0)
{
result=0;
}
break;
}
}
while (sign);
return result;
}
void change_goods_infor(GOODS *g)
{
wbkgd(stdscr,COLOR_PAIR(2));
refresh();
FRAME *f[10];
BUTTON *b[2];
INPUT *i[9];
int result=0,sign=1;
char *str[10]={"商品信息","商品名称:","单位:","规格:","销售价格:","进货价格:","库存数量:","商品折扣:","条形码:","删除标志:"};
f[0]=creat_frame(0,19,26,40,3);
f[1]=creat_frame(2,30,1,22,1);
f[2]=creat_frame(4,30,1,22,1);
f[3]=creat_frame(6,30,1,22,1);
f[4]=creat_frame(8,30,1,22,1);
f[5]=creat_frame(10,30,1,22,1);
f[6]=creat_frame(12,30,1,22,1);
f[7]=creat_frame(14,30,1,22,1);
f[8]=creat_frame(16,30,1,22,1);
f[9]=creat_frame(18,30,1,22,1);
b[0]=createButton(20,26,3,8,"确定");
b[1]=createButton(20,44,3,8,"取消");
i[0]=create_input(f[1],20,0,2,9);
i[1]=create_input(f[2],20,1,3,9);
i[2]=create_input(f[3],20,2,4,9);
i[3]=create_input(f[4],20,3,5,9);
i[4]=create_input(f[5],20,4,6,9);
i[5]=create_input(f[6],20,5,7,9);
i[6]=create_input(f[7],20,6,8,9);
i[7]=create_input(f[8],20,0,0,0);
i[8]=create_input(f[9],1,7,9,9);
DIALOG *d=create_dialog(f,i,b,str,NULL);
show_add_goods(d);
show_goods_infor(d,g);
mvwprintw((*(d->i+5))->f->win,0,0,"%d",g->stock_number);
wrefresh((*(d->i+5))->f->win);
sprintf((*(d->i+5))->str,"%d",g->stock_number);
(*((d->f)+9))->draw(*((d->f)+9));
mvwprintw((*(d->f))->win,18,2,"%s",*(d->str+9));
wrefresh((*(d->f))->win);
mvwprintw((*(d->i+8))->f->win,0,0,"%d",g->delete_sign);
wrefresh((*(d->i+8))->f->win);
sprintf((*(d->i+8))->str,"%d",g->delete_sign);
result= action_change_goods(d,g);
/* char commodity_name[31];
char unti[17];
char spec[17];
float sell_price;
float stock_price;
int stock_number;
float agio;
*/
if (result)
{
strcpy(g->commodity_name,(*((d->i)))->str);
strcpy(g->unti,(*((d->i)+1))->str);
strcpy(g->spec,(*((d->i)+2))->str);
g->sell_price=atof((*((d->i)+3))->str);
g->stock_price=atof((*((d->i)+4))->str);
g->stock_number=atoi((*((d->i)+5))->str);
g->agio=atof((*((d->i)+6))->str);
g->delete_sign=atoi((*((d->i)+8))->str);
update_goods_table(g);
}
free(d);
f[0]->free(&f[0]);
f[1]->free(&f[1]);
f[2]->free(&f[2]);
f[3]->free(&f[3]);
f[4]->free(&f[4]);
f[5]->free(&f[5]);
f[6]->free(&f[6]);
f[7]->free(&f[7]);
f[8]->free(&f[8]);
f[9]->free(&f[9]);
b[0]->free(&b[0]);
b[1]->free(&b[1]);
i[0]->free(&i[0]);
i[1]->free(&i[1]);
i[2]->free(&i[2]);
i[3]->free(&i[3]);
i[4]->free(&i[4]);
i[5]->free(&i[5]);
i[6]->free(&i[6]);
i[7]->free(&i[7]);
i[8]->free(&i[8]);
scr_restore("scan12.dat");//屏幕恢复
}
///////////////////////////////输入商品名称//////////////////////////////////////////
void show__goods_name(DIALOG *d)
{
scr_dump("scan11.dat");//屏幕保存
box((*(d->f))->win,0,0);
mvwprintw((*(d->f))->win,0,8,"%s",*(d->str));
mvwprintw((*(d->f))->win,3,1,"%s",*(d->str+1));
(*(d->f))->draw(*(d->f));
(*((d->f)+1))->draw(*((d->f)+1));
(*(d->b))->setColor(*(d->b),3,1,4);
(*((d->b)+1))->setColor(*((d->b)+1),3,1,4);
(*(d->b))->show(*(d->b));
(*((d->b)+1))->show(*((d->b)+1));
}
int action_goods_name(DIALOG *d,GOODS *g,int biaozi)
{
int result=0,sign=1;
int node_exist=0;
int count=0,i=0;
do
{
switch (sign)
{
case 1:
sign=(*((d->i)))->input_char(*((d->i)),1,0,0);//输入用户ID
if(sign==27)
{
sign=messagebox(stdscr,7,19,44,12,YORN,"确认要退出");
if(sign)
{
sign=0;
break;
}
else
{
sign=1;
}
}
/*数目有没有超过*/
del_blank((*(d->i))->str);
if(strlen((*(d->i))->str)!=0)//输入的Id不否合法
{
count=select_exist_goods((*(d->i))->str,g);
switch (count)
{
case 0:
sign=1;
messagebox(stdscr,7,19,44,12,PAUSE,"没有该货物,请重新输入");
(*(d->i))->del_str(*(d->i));
break;
case 2:
if(biaozi)
{
sign=1;
messagebox(stdscr,7,19,44,12,PAUSE,"该货物已被删除,请重新激活");
(*(d->i))->del_str(*(d->i));
}
break;
default:
break;
}
}
else
{
sign=1;
messagebox(stdscr,7,19,44,12,PAUSE,"商品名称不能为空");
(*(d->i))->del_str(*(d->i));
/*提示有非数字字符*/
}
break;
case 2:
(*(d->b))->pitch_on(*(d->b));
sign=(*(d->b))->attack(*(d->b),1,3,3);
if(sign == 0)
{
result=1;
}
break;
case 3:
(*((d->b)+1))->pitch_on(*((d->b)+1));
sign=(*((d->b)+1))->attack(*((d->b)+1),2,1,1);
if(sign == 0)
{
result=0;
}
break;
}
}
while (sign);
return result;
}
void input_goods_name()
{
wbkgd(stdscr,COLOR_PAIR(2));
refresh();
FRAME *f[2];
BUTTON *b[2];
INPUT *i;
GOODS g;
memset(&g,0,sizeof(GOODS));
int result=0;
char *str[2]={"请输入商品名称","商品名称:"};
f[0]=creat_frame(7,15,11,30,3);
f[1]=creat_frame(10,26,1,18,1);
b[0]=createButton(12,18,3,8,"确定");
b[1]=createButton(12,33,3,8,"取消");
i=create_input(f[1],16,0,2,2);
DIALOG *d=create_dialog(f,&i,b,str,NULL);
show__goods_name(d);
result=action_goods_name(d,&g,1);
if(result)
{
change_goods_infor(&g);
}
free(d);
f[0]->free(&f[0]);
f[1]->free(&f[1]);
b[0]->free(&b[0]);
b[1]->free(&b[1]);
i->free(&i);
scr_restore("scan11.dat");//屏幕恢复
}
/////////////////////////////////////////////////////////////删除商品
void del_goods_by_name()
{
wbkgd(stdscr,COLOR_PAIR(2));
refresh();
FRAME *f[2];
BUTTON *b[2];
INPUT *i;
GOODS g;
memset(&g,0,sizeof(GOODS));
int result=0;
char *str[2]={"请输入商品名称","商品名称:"};
f[0]=creat_frame(7,15,11,30,3);
f[1]=creat_frame(10,26,1,18,1);
b[0]=createButton(12,18,3,8,"确定");
b[1]=createButton(12,33,3,8,"取消");
i=create_input(f[1],16,0,2,2);
DIALOG *d=create_dialog(f,&i,b,str,NULL);
show__goods_name(d);
result=action_goods_name(d,&g,1);
if(result)
{
g.delete_sign=1;
update_goods_table(&g);
messagebox(stdscr,7,19,44,12,PAUSE,"商品删除成功");
}
free(d);
f[0]->free(&f[0]);
f[1]->free(&f[1]);
b[0]->free(&b[0]);
b[1]->free(&b[1]);
i->free(&i);
scr_restore("scan11.dat");//屏幕恢复
}
///////////////////////////////////////////////////////////////////////////////////查询商品
void show_demand_goods(DIALOG *d)
{
scr_dump("scan13.dat");//屏幕保存
box((*(d->f))->win,0,0);
mvwprintw((*(d->f))->win,0,15,"%s",*(d->str));
mvwprintw((*(d->f))->win,2,2,"%s",*(d->str+1));
mvwprintw((*(d->f))->win,4,6,"%s",*(d->str+2));
mvwprintw((*(d->f))->win,6,6,"%s",*(d->str+3));
mvwprintw((*(d->f))->win,8,2,"%s",*(d->str+4));
mvwprintw((*(d->f))->win,10,2,"%s",*(d->str+5));
mvwprintw((*(d->f))->win,12,2,"%s",*(d->str+6));
mvwprintw((*(d->f))->win,14,2,"%s",*(d->str+7));
mvwprintw((*(d->f))->win,16,4,"%s",*(d->str+8));
(*(d->f))->draw(*(d->f));
(*((d->f)+1))->draw(*((d->f)+1));
(*((d->f)+2))->draw(*((d->f)+2));
(*((d->f)+3))->draw(*((d->f)+3));
(*((d->f)+4))->draw(*((d->f)+4));
(*((d->f)+5))->draw(*((d->f)+5));
(*((d->f)+6))->draw(*((d->f)+6));
(*((d->f)+7))->draw(*((d->f)+7));
(*((d->f)+8))->draw(*((d->f)+8));
(*(d->b))->setColor(*(d->b),3,1,4);
(*(d->b))->show(*(d->b));
}
void show_demand_goods_infor(GOODS *g)
{
wbkgd(stdscr,COLOR_PAIR(2));
refresh();
FRAME *f[10];
BUTTON *b[1];
INPUT *i[9];
int result=0,sign=1;
char *str[10]={"商品信息","商品名称:","单位:","规格:","销售价格:","进货价格:","库存数量:","商品折扣:","条形码:","删除标志:"};
f[0]=creat_frame(0,19,26,40,3);
f[1]=creat_frame(2,30,1,22,1);
f[2]=creat_frame(4,30,1,22,1);
f[3]=creat_frame(6,30,1,22,1);
f[4]=creat_frame(8,30,1,22,1);
f[5]=creat_frame(10,30,1,22,1);
f[6]=creat_frame(12,30,1,22,1);
f[7]=creat_frame(14,30,1,22,1);
f[8]=creat_frame(16,30,1,22,1);
f[9]=creat_frame(18,30,1,22,1);
b[0]=createButton(20,44,3,8,"确定");
i[0]=create_input(f[1],20,0,2,9);
i[1]=create_input(f[2],20,1,3,9);
i[2]=create_input(f[3],20,2,4,9);
i[3]=create_input(f[4],20,3,5,9);
i[4]=create_input(f[5],20,4,6,9);
i[5]=create_input(f[6],20,5,7,9);
i[6]=create_input(f[7],20,6,8,9);
i[7]=create_input(f[8],20,0,0,0);
i[8]=create_input(f[9],1,7,9,9);
DIALOG *d=create_dialog(f,i,b,str,NULL);
show_demand_goods(d);
show_goods_infor(d,g);
mvwprintw((*(d->i+5))->f->win,0,0,"%d",g->stock_number);
wrefresh((*(d->i+5))->f->win);
sprintf((*(d->i+5))->str,"%d",g->stock_number);
(*((d->f)+9))->draw(*((d->f)+9));
mvwprintw((*(d->f))->win,18,2,"%s",*(d->str+9));
wrefresh((*(d->f))->win);
mvwprintw((*(d->i+8))->f->win,0,0,"%d",g->delete_sign);
wrefresh((*(d->i+8))->f->win);
sprintf((*(d->i+8))->str,"%d",g->delete_sign);
if(g->delete_sign == 1)
{
mvwprintw((*(d->f))->win,21,2,"商品已删除");
wrefresh((*(d->f))->win);
}
(*((d->b)))->pitch_on(*((d->b)));
(*((d->b)))->attack(*((d->b)),0,0,0);
free(d);
f[0]->free(&f[0]);
f[1]->free(&f[1]);
f[2]->free(&f[2]);
f[3]->free(&f[3]);
f[4]->free(&f[4]);
f[5]->free(&f[5]);
f[6]->free(&f[6]);
f[7]->free(&f[7]);
f[8]->free(&f[8]);
f[9]->free(&f[9]);
b[0]->free(&b[0]);
i[0]->free(&i[0]);
i[1]->free(&i[1]);
i[2]->free(&i[2]);
i[3]->free(&i[3]);
i[4]->free(&i[4]);
i[5]->free(&i[5]);
i[6]->free(&i[6]);
i[7]->free(&i[7]);
i[8]->free(&i[8]);
scr_restore("scan13.dat");//屏幕恢复
}
void demand_goods_infor()
{
wbkgd(stdscr,COLOR_PAIR(2));
refresh();
FRAME *f[2];
BUTTON *b[2];
INPUT *i;
GOODS g;
memset(&g,0,sizeof(GOODS));
int result=0;
char *str[2]={"请输入商品名称","商品名称:"};
f[0]=creat_frame(7,15,11,30,3);
f[1]=creat_frame(10,26,1,18,1);
b[0]=createButton(12,18,3,8,"确定");
b[1]=createButton(12,33,3,8,"取消");
i=create_input(f[1],16,0,2,2);
DIALOG *d=create_dialog(f,&i,b,str,NULL);
show__goods_name(d);
result=action_goods_name(d,&g,1);
if(result)
{
show_demand_goods_infor(&g);
}
free(d);
f[0]->free(&f[0]);
f[1]->free(&f[1]);
b[0]->free(&b[0]);
b[1]->free(&b[1]);
i->free(&i);
scr_restore("scan11.dat");//屏幕恢复
}
//////////////////////////////商品管理主函数///////////////////////////////////////////
void goods_manage(EMP *e)
{
wbkgd(stdscr,COLOR_PAIR(2));
refresh();
FRAME *f[2];
BUTTON *b[2];
INPUT *i;
int result=0,sign=1;
char *str[9]={"商品管理","管理员:","等级:数据库管理员","1.添 加 商 品","2.修 改 商 品","3.删 除 商 品","4.查 询 商 品","5.退 出","选择:"};
f[0]=creat_frame(2,19,22,40,3);
f[1]=creat_frame(16,26,1,4,1);
b[0]=createButton(18,26,3,8,"确定");
b[1]=createButton(18,44,3,8,"取消");
i=create_input(f[1],1,0,2,3);
DIALOG *d=create_dialog(f,&i,b,str,NULL);
do
{
mvwprintw((*(d->f))->win,2,8,"%s",e->emp_name);
show_manage_counts(d);
result=action_manage_counts(d);
switch (result)
{
case 1:
(*(d->i))->del_str(*(d->i));
add_goods();
break;
case 2:
(*(d->i))->del_str(*(d->i));
input_goods_name();
break;
case 3:
(*(d->i))->del_str(*(d->i));
del_goods_by_name();
break;
case 4:
(*(d->i))->del_str(*(d->i));
demand_goods_infor();
break;
case 5:
sign=messagebox(stdscr,7,19,44,12,YORN,"您确定要退出吗?");
if(sign == 0)
{
continue;
}
else
{
sign = 0;
}
break;
}
}
while (sign);
free(d);
f[0]->free(&f[0]);
f[1]->free(&f[1]);
b[0]->free(&b[0]);
b[1]->free(&b[1]);
i->free(&i);
scr_restore("scan5.dat");//屏幕恢复
}
/********************************************************
///////////////////销售记录查询/////////////////////////
********************************************************/
///////////////////////////////////////////////////////////按销售时间查询
void show_demand_note_by_time(DIALOG *d)
{
scr_dump("scan15.dat");//屏幕保存
box((*(d->f))->win,0,0);
mvwprintw((*(d->f))->win,0,15,"%s",*(d->str));
mvwprintw((*(d->f))->win,2,1,"%s",*(d->str+1));
mvwprintw((*(d->f))->win,6,1,"%s",*(d->str+2));
mvwprintw((*(d->f))->win,4,16,"%s",*(d->str+3));
mvwprintw((*(d->f))->win,4,20,"%s",*(d->str+4));
mvwprintw((*(d->f))->win,4,24,"%s",*(d->str+5));
mvwprintw((*(d->f))->win,8,16,"%s",*(d->str+3));
mvwprintw((*(d->f))->win,8,20,"%s",*(d->str+4));
mvwprintw((*(d->f))->win,8,24,"%s",*(d->str+5));
(*(d->f))->draw(*(d->f));
(*((d->f)+1))->draw(*((d->f)+1));
(*(d->f+2))->draw(*(d->f+2));
(*((d->f)+3))->draw(*((d->f)+3));
(*((d->f)+4))->draw(*((d->f)+4));
(*(d->f+5))->draw(*(d->f+5));
(*((d->f)+6))->draw(*((d->f)+6));
(*(d->b))->setColor(*(d->b),3,1,4);
(*((d->b)+1))->setColor(*((d->b)+1),3,1,4);
(*(d->b))->show(*(d->b));
(*((d->b)+1))->show(*((d->b)+1));
}
int leap(char *str)
{
int year=0;
year=atoi(str);
if(year%400==0||(year%4==0&&year%100!=0))
return 1;
else
return 0;
}
int if_right_date(char *year,char *month,char *day)
{
int m=0,d=0,lp=0;
m=atoi(month);
d=atoi(day);
lp=leap(year);
switch (m)
{
case 1:
if(d>31||d<1)
return 1;
break;
case 2:
if(lp)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -