⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 manager.c

📁 LINUX下POS收银系统,可以对货物及工作人员进行管理.近本实现增删改查的功能
💻 C
📖 第 1 页 / 共 5 页
字号:
	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 + -