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

📄 proscenium.c

📁 本人做的一个基于LINUX平台的小程序
💻 C
📖 第 1 页 / 共 3 页
字号:
			}
		}
		else if (ch == KEY_F(4)&& backlist->count > 0)
		{
			result = sale_optionf4(linklist,backlist,temp);
			if(result == 4)
			{
				free_all_node(linklist);
				free_all_node(backlist);
				flag = 0;
				werase(info);
				wrefresh(info);
			}
		else
			{
				print_info(info,linklist,flag,offset,1);
				wrefresh(info);
			}
		}
		else if (ch == KEY_F(9))
		{
			scr_dump("temp1.scr");
			int result = 0;
			WINDOW *check = NULL;
			check = create_default_color_window(8,35,8,20,1);
			
			mvwprintw(check,0,13,"是否退出");
			wrefresh(check);
			delwin(check);

			if(result = yes_or_no(10,28,1,10))
			{
				delwin(info);
				return 1;
			}
			else
			{
				scr_restore("temp1.scr");
				print_info(info,linklist,flag,offset,1);
				continue;
			}
		}
		else 
			print_info(info,linklist,flag,offset,1);
	}
}

int sale_optionf9(LINKLIST *linklist,LINKLIST *sale_temp,sale_record *temp)
{
	scr_dump("temp1.scr");
	 
	if(linklist->count > 0)
	{	
		scr_restore("temp1.scr");
		return 0;
	}
	if(sale_temp->count > 0)
	{
		message("还有单未处理!您可以撤销所有的单,或者进行取单处理",8,26);
		scr_restore("temp1.scr");
		return 0;
	}
	
	int result = 0;
	WINDOW *check = NULL;
	check = create_default_color_window(8,35,8,20,1);
	
	mvwprintw(check,0,13,"是否退出");
	wrefresh(check);
	delwin(check);

	if(result = yes_or_no(10,28,1,10))
	    {
			scr_restore("temp1.scr");
			return 9;
	    }
	scr_restore("temp1.scr");
	return 0;
}

int get_vir_money(LINKLIST *linklist)//应收
{
	NODE *p;
	p = linklist->head;

	float sum = 0;
	int i = 1;

	for(i;i <= linklist->count;i++)
	{
		sum = ((for_sale *)(p->node_data))->sum + sum; 
		p = p->next;
	}
	return sum;
}

void init_sale_record(sale_record *temp,char *user)
{
	memset(temp,0,sizeof(sale_record));

	int num = 0;
	char time[17] = {0};
	char id[5] = {0};

	sale_time(time);
	num = get_trans_id();
	
	sprintf(id,"%d",num);
	sprintf(temp->sale_id,"%s%d",time,num);

	strcpy(temp->date,time);
	strcpy(temp->trans_id,id);
	strcpy(temp->staff_id,user);

	temp->sale_state = 0;

}


void update_sale_count(LINKLIST *linklist,int style)
{
	int count = 0;
	
	NODE *p;
	p = linklist->head;
	int i = 1;

	for(i;i <= linklist->count;i++)
	{
		if(style == 0)
			count = (((for_sale *)(p->node_data))->storage) + (((for_sale *)(p->node_data))->count);
		else
			count = (((for_sale *)(p->node_data))->storage) - (((for_sale *)(p->node_data))->count);

		update_product(((for_sale *)(p->node_data))->bar_code,count);
		p = p->next;
	}
}

void insert_all_detail(LINKLIST *linklist,sale_record *temp)
{
	int i = 1,result = 0;
	int num = 0;
	char detail_id[19] = {0};
	NODE *p;
	p = linklist->head;
	
	
	if(temp->sale_state == 1)//记录退货时间
	{
		sale_time(temp->date);
	}

	num = get_detail_id();
	rtrim(temp->date);
	sprintf(detail_id,"%s%d",temp->date,num);

	while(i <= (linklist->count))
	{
        result = insert_sale_detail(((for_sale *)(p->node_data))->bar_code,((for_sale *)(p->node_data))->count,((for_sale *)(p->node_data))->sale_price,detail_id,temp);
		num = get_detail_id();
		sprintf(detail_id,"%s%d",temp->date,num);
		p = p->next;
		i++;
	}
}

int list_for_f6_f7(LINKLIST *sale_temp,char *str,int style)
{
	NODE *p;
	int ch = 0,result = 0;
	int flag = 1;
	int *cur = &flag;

	WINDOW *check = NULL,*list = NULL;

	check = create_default_color_window(13,35,6,20,2);

	if (style == 1)
		mvwprintw(check,0,15,"撤单");
	if (style == 0)
		mvwprintw(check,0,15,"取单");
	
	wrefresh(check);
	delwin(check);
	yes_or_no(15,30,0,10);

	list = newwin(7,19,7,28);
	wbkgd(list,COLOR_PAIR(2));
	
	p = sale_temp->head;
	while(p != NULL)
	{
		mvwaddstr(list,flag-1,0,(char *)p->node_data);
		flag++;
		p = p->next;
	}
	flag = 1;
	wattron(list,A_REVERSE);
	mvwaddstr(list,flag-1,0,(char *)sale_temp->head->node_data);
	wrefresh(list);
	keypad(list,true);
	while(1)
	{
		ch = wgetch(list);
		if(ch == KEY_DOWN||ch == KEY_UP)
		{
			wattroff(list,A_REVERSE);
			p = get_node_by_index(sale_temp,flag);	
			mvwaddstr(list,flag-1,0,(char *)p->node_data);
			KEY_UP_DOWN(sale_temp->count,ch,cur);
			wattron(list,A_REVERSE);
			p = get_node_by_index(sale_temp,flag);	
			mvwaddstr(list,flag-1,0,(char *)p->node_data);
		}
		else if(ch == 10)
		{
			if(result = yes_or_no(15,30,1,10))
			{
				p = get_node_by_index(sale_temp,flag);	
				strcpy(str,(char *)p->node_data);
				free_at(sale_temp,flag);
				delwin(list);
				return 1;
			}
			else
				break;
		}
		else
			continue;
	}

	delwin(list);
	return 0;
}


int back_login(char *user_out)
{
	scr_dump("temp1.scr");
	WINDOW *login = NULL, *username = NULL ,*passwd =  NULL;//登陆窗口,用户窗口,密码窗口

	staff_info *check;
	check =(staff_info *)malloc(sizeof(staff_info));
	memset(check,0,sizeof(staff_info));
	
	login = create_default_color_window(10,40,6,20,1);
	mvwprintw(login,0,17,"退货");
	mvwprintw(login,2,9,"帐号:");
	mvwprintw(login,4,9,"密码:");
	wrefresh(login);
	delwin(login);

	username = create_no_border_color_window(1,12,8,35,4);
	wrefresh(username);
	
	passwd = create_no_border_color_window(1,12,10,35,4);
	wrefresh(passwd);
	
	yes_or_no(12,31,0,10);
	char user[20] = {0};
	char password[20] = {0};
	int ch = 0;
	int flag = 1,result = 0;
	int *p = &flag;
	keypad(username,true);
	keypad(passwd,true);

	while(1)
	{
		switch(flag)
		{
			case 1:
				user_input(username,user,p);
				break;
			case 2:
				passwd_input(passwd,password,p);
				break;
			case 3:		
				result = yes_or_no(12,31,1,10);
				if (result == -1)
				{
					*p = 2;
				}
				else if (result == 0)
				{
					delwin(username);
					delwin(passwd);
					return 0;
				}
				else if (result == 1)
				{
					if(strlen(user) == 0)
						message("用户名不能为空!",17,25);
					else if(strlen(password) == 0)
						message("密码不能为空!",17,25);
					else if(strlen(user)!=6||str_isdigit(user))
						message("用户名为6位数字!",17,25);
					else if(strlen(password)<6||strlen(password)>12)
						message("密码为6位至12位!",17,25);
					else
					{
						result = user_confirm(user,check);

						if(result == -1)//用户名不存在
						{
							*p = 1;
							message("用户名不存在!",17,25);
						}
						else
						{
							if(strcmp(password,check->passwd) == 0) // 正确
							{		
								if(result == 0)
								{
									strcpy(user_out,user);
									delwin(username);
									delwin(passwd);
									scr_restore("temp1.scr");
									return 1;
								}
								else
									message("这个帐户没有退货权限!",8,25);
							}
							else
							{
								//密码错误
								message("密码错误!",17,25);
							}
						}	
					}
					*p = 1;
					memset(user,0,20*sizeof(char));
					memset(password,0,20*sizeof(char));
					mvwaddnstr(username,0,0,"         ",10);
					wrefresh(username);
					mvwaddnstr(passwd,0,0,"          ",10);
					wrefresh(passwd);
				}
				break;
		}
	}
	return 0;
}

int back_get_id(LINKLIST *linklist,char *str)
{
	scr_dump("temp1.scr");
	int ch = 0,flag = 1,result = 0,i = 0;
	int *p = &flag;

	WINDOW *check = NULL;
	check = create_default_color_window(8,35,8,20,1);
	
	mvwprintw(check,2,2,"销售单号:");
	wrefresh(check);
	delwin(check);
	yes_or_no(12,30,0,10);
	
	WINDOW *for_id = NULL;
	WINDOW *confirm = NULL,*cancel = NULL;
	
	for_id = newwin(1,21,10,31);
	wbkgd(for_id,COLOR_PAIR(5));
	wrefresh(for_id);
	keypad(for_id,true);

	while(1)
	{
		switch(flag)
		{
			case 1:
				i = strlen(str);
				wmove(for_id,0,i);
				ch = wgetch(for_id);
				if(ch == 10||ch == KEY_DOWN)
				{
					*p = 2;
					break;
				}
				else
				{
					get_info(for_id,str,ch,2,20);
				}	
				break;
			case 2:
				result = yes_or_no(12,30,1,10);
				if(result == 1)
				{
					if(is_sale_id(str))
					{
						scr_restore("temp1.scr");
						return 1;
					}
					else
					{
						message("单号输入错误或不存在!",8,30);
						memset(str,0,21*sizeof(char));
						mvwaddnstr(for_id,0,0,"                        ",21);
						wrefresh(for_id);
						*p = 1;
						break;
					}
				}
				else if (result == -1)
				{
					*p = 1;
					break;
				}
				else
				{
					scr_restore("temp1.scr");
					return 0;
				}
				break;
		}
	}
	return 0;

}

int display_control(int *cur,int *offset,int change,int limit)
{
	int temp = 0;
	*offset = *offset + change;
	temp = *offset;

	if (temp > limit)
	{
		*offset = 1;
		*cur = (*cur)-limit+1;
		return 1;
	}
	else if (temp < 1)
	{
		*offset = 1;
		return 1;
	}
	else
	{
		return 0;
	}
	return 1;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -