📄 manager.c
字号:
sprintf((*(d->i+6))->str,"%f",g->agio);
sprintf((*(d->i+7))->str,"%s",g->bar_code);
}
int action_add_goods(DIALOG *d,GOODS *g)
{
int result=0,sign=1;
int goods_exist=0;
int id=0;
int i=0;
do
{
switch (sign)
{
case 1:
sign=(*((d->i)))->input_char(*((d->i)),1,0,0);
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)//输入不否合法
{
/*查看数据库中是否存在该商品*/
goods_exist=select_exist_goods((*(d->i))->str,g);
if(goods_exist)
{
show_goods_infor(d,g);
}
else
{
id=get_goods_code();
mvwprintw((*(d->i+7))->f->win,0,0,"CN%d",id);
wrefresh((*(d->i+7))->f->win);
}
break;
}
else
{
sign=1;
messagebox(stdscr,7,19,44,12,PAUSE,"商品名不可为空");
(*(d->i))->del_str(*(d->i));
continue;
/*提示有非数字字符*/
}
break;
case 2:
sign=(*((d->i)+1))->input_char(*((d->i)+1),1,0,0);
if(sign==27)
{
sign=messagebox(stdscr,7,19,44,12,YORN,"确认要退出");
if(sign)
{
sign=0;
break;
}
else
{
sign=2;
}
}
del_blank((*(d->i+1))->str);
if(strlen((*((d->i)+1))->str)==0)
{
sign=2;
messagebox(stdscr,7,19,44,12,PAUSE,"商品单位不可为空");
}
break;
case 3:
sign=(*((d->i)+2))->input_char(*((d->i)+2),1,0,0);
if(sign==27)
{
sign=messagebox(stdscr,7,19,44,12,YORN,"确认要退出");
if(sign)
{
sign=0;
break;
}
else
{
sign=3;
}
}
del_blank((*(d->i+2))->str);
if(strlen((*((d->i)+2))->str)==0)
{
sign=3;
messagebox(stdscr,7,19,44,12,PAUSE,"商品规格不可为空");
}
break;
case 4:
sign=(*((d->i)+3))->input_char(*((d->i)+3),1,0,1);
if(sign==27)
{
sign=messagebox(stdscr,7,19,44,12,YORN,"确认要退出");
if(sign)
{
sign=0;
break;
}
else
{
sign=4;
}
}
del_blank((*(d->i+3))->str);
if(isdigital((*(d->i+3))->str))
{
if(strlen((*((d->i)+3))->str)==0)
{
sign=4;
messagebox(stdscr,7,19,44,12,PAUSE,"销售价格不可为空");
}
}
else
{
sign=4;
messagebox(stdscr,7,19,44,12,PAUSE,"请输入数字");
}
break;
case 5:
sign=(*((d->i)+4))->input_char(*((d->i)+4),1,0,1);
if(sign==27)
{
sign=messagebox(stdscr,7,19,44,12,YORN,"确认要退出");
if(sign)
{
sign=0;
break;
}
else
{
sign=5;
}
}
del_blank((*(d->i+4))->str);
if(isdigital((*(d->i+4))->str))
{
if(strlen((*((d->i)+4))->str)==0)
{
sign=5;
messagebox(stdscr,7,19,44,12,PAUSE,"进货价格不可为空");
}
else
{
if((*((d->i)+3))->str > (*(d->i+4))->str)
{
sign=5;
messagebox(stdscr,7,19,44,12,PAUSE,"进货价格不可高于销售价格");
}
}
}
else
{
sign=5;
messagebox(stdscr,7,19,44,12,PAUSE,"请输入数字");
}
break;
case 6:
sign=(*((d->i)+5))->input_char(*((d->i)+5),1,0,1);
if(sign==27)
{
sign=messagebox(stdscr,7,19,44,12,YORN,"确认要退出");
if(sign)
{
sign=0;
break;
}
else
{
sign=6;
}
}
del_blank((*(d->i+5))->str);
if(isdigital((*(d->i+5))->str))
{
if(strlen((*((d->i)+5))->str)==0)
{
sign=6;
messagebox(stdscr,7,19,44,12,PAUSE,"新增数量不可为空");
}
}
else
{
sign=6;
messagebox(stdscr,7,19,44,12,PAUSE,"请输入数字");
}
break;
case 7:
sign=(*((d->i)+6))->input_char(*((d->i)+6),1,0,1);
if(sign==27)
{
sign=messagebox(stdscr,7,19,44,12,YORN,"确认要退出");
if(sign)
{
sign=0;
break;
}
else
{
sign=7;
}
}
del_blank((*(d->i+6))->str);
if(isdigital((*(d->i+6))->str))
{
if(strlen((*((d->i)+6))->str)==0)
{
sign=7;
messagebox(stdscr,7,19,44,12,PAUSE,"商品折扣不可为空");
}
}
else
{
sign=7;
messagebox(stdscr,7,19,44,12,PAUSE,"请输入数字");
}
break;
case 8:
(*(d->b))->pitch_on(*(d->b));
sign=(*(d->b))->attack(*(d->b),7,9,9);
if(sign == 0)
{
result=1;
}
break;
case 9:
(*((d->b)+1))->pitch_on(*((d->b)+1));
sign=(*((d->b)+1))->attack(*((d->b)+1),8,1,1);
if(sign == 0)
{
result=0;
}
break;
}
}
while (sign);
return result;
}
void add_goods()
{
wbkgd(stdscr,COLOR_PAIR(2));
refresh();
FRAME *f[9];
BUTTON *b[2];
INPUT *i[8];
GOODS g;
memset(&g,0,sizeof(GOODS));
int result=0,sign=1;
char *str[9]={"添加商品","商品名称:","单位:","规格:","销售价格:","进货价格:","新增数量:","商品折扣:","条形码:"};
f[0]=creat_frame(4,19,24,40,3);
f[1]=creat_frame(6,30,1,22,1);
f[2]=creat_frame(8,30,1,22,1);
f[3]=creat_frame(10,30,1,22,1);
f[4]=creat_frame(12,30,1,22,1);
f[5]=creat_frame(14,30,1,22,1);
f[6]=creat_frame(16,30,1,22,1);
f[7]=creat_frame(18,30,1,22,1);
f[8]=creat_frame(20,30,1,22,1);
b[0]=createButton(22,26,3,8,"确定");
b[1]=createButton(22,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);
DIALOG *d=create_dialog(f,i,b,str,NULL);
show_add_goods(d);
result= action_add_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);
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]);
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]);
scr_restore("scan10.dat");//屏幕恢复
}
///////////////////////////////修改商品信息///////////////////////////////////////////
int action_change_goods(DIALOG *d,GOODS *g)
{
int result=0,sign=1;
int id=0;
int i=0;
do
{
switch (sign)
{
case 1:
sign=(*((d->i)))->input_char(*((d->i)),1,0,0);
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)//输入不否合法
{
break;
}
else
{
sign=1;
messagebox(stdscr,7,19,44,12,PAUSE,"商品名不可为空");
(*(d->i))->del_str(*(d->i));
continue;
/*提示有非数字字符*/
}
break;
case 2:
sign=(*((d->i)+1))->input_char(*((d->i)+1),1,0,0);
if(sign==27)
{
sign=messagebox(stdscr,7,19,44,12,YORN,"确认要退出");
if(sign)
{
sign=0;
break;
}
else
{
sign=2;
}
}
del_blank((*(d->i+1))->str);
if(strlen((*((d->i)+1))->str)==0)
{
sign=2;
messagebox(stdscr,7,19,44,12,PAUSE,"商品单位不可为空");
}
break;
case 3:
sign=(*((d->i)+2))->input_char(*((d->i)+2),1,0,0);
if(sign==27)
{
sign=messagebox(stdscr,7,19,44,12,YORN,"确认要退出");
if(sign)
{
sign=0;
break;
}
else
{
sign=3;
}
}
del_blank((*(d->i+2))->str);
if(strlen((*((d->i)+2))->str)==0)
{
sign=3;
messagebox(stdscr,7,19,44,12,PAUSE,"商品规格不可为空");
}
break;
case 4:
sign=(*((d->i)+3))->input_char(*((d->i)+3),1,0,1);
if(sign==27)
{
sign=messagebox(stdscr,7,19,44,12,YORN,"确认要退出");
if(sign)
{
sign=0;
break;
}
else
{
sign=4;
}
}
del_blank((*(d->i+3))->str);
if(isdigital((*(d->i+3))->str))
{
if(strlen((*((d->i)+3))->str)==0)
{
sign=4;
messagebox(stdscr,7,19,44,12,PAUSE,"销售价格不可为空");
}
}
else
{
sign=4;
messagebox(stdscr,7,19,44,12,PAUSE,"请输入数字");
}
break;
case 5:
sign=(*((d->i)+4))->input_char(*((d->i)+4),1,0,1);
if(sign==27)
{
sign=messagebox(stdscr,7,19,44,12,YORN,"确认要退出");
if(sign)
{
sign=0;
break;
}
else
{
sign=5;
}
}
del_blank((*(d->i+4))->str);
if(isdigital((*(d->i+4))->str))
{
if(strlen((*((d->i)+4))->str)==0)
{
sign=5;
messagebox(stdscr,7,19,44,12,PAUSE,"进货价格不可为空");
}
else
{
if((*((d->i)+3))->str > (*(d->i+4))->str)
{
sign=5;
messagebox(stdscr,7,19,44,12,PAUSE,"进货价格不可高于销售价格");
}
}
}
else
{
sign=5;
messagebox(stdscr,7,19,44,12,PAUSE,"请输入数字");
}
break;
case 6:
sign=(*((d->i)+5))->input_char(*((d->i)+5),1,0,1);
if(sign==27)
{
sign=messagebox(stdscr,7,19,44,12,YORN,"确认要退出");
if(sign)
{
sign=0;
break;
}
else
{
sign=6;
}
}
del_blank((*(d->i+5))->str);
if(isdigital((*(d->i+5))->str))
{
if(strlen((*((d->i)+5))->str)==0)
{
sign=6;
messagebox(stdscr,7,19,44,12,PAUSE,"库存数量不可为空");
}
}
else
{
sign=6;
messagebox(stdscr,7,19,44,12,PAUSE,"请输入数字");
}
break;
case 7:
sign=(*((d->i)+6))->input_char(*((d->i)+6),1,0,1);
if(sign==27)
{
sign=messagebox(stdscr,7,19,44,12,YORN,"确认要退出");
if(sign)
{
sign=0;
break;
}
else
{
sign=7;
}
}
del_blank((*(d->i+6))->str);
if(isdigital((*(d->i+6))->str))
{
if(strlen((*((d->i)+6))->str)==0)
{
sign=7;
messagebox(stdscr,7,19,44,12,PAUSE,"商品折扣不可为空");
}
}
else
{
sign=7;
messagebox(stdscr,7,19,44,12,PAUSE,"请输入数字");
}
break;
case 8:
sign=(*((d->i)+8))->input_char(*((d->i)+8),1,0,1);
if(sign==27)
{
sign=messagebox(stdscr,7,19,44,12,YORN,"确认要退出");
if(sign)
{
sign=0;
break;
}
else
{
sign=8;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -