亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? loginwindow.c

?? 福建博洋教育C/C++軟件項目實戰:POS收銀系統
?? C
?? 第 1 頁 / 共 5 頁
字號:
					wrefresh(given);				
					break;
				}	
			}
		}

	ENSURE:	
		wattron(dialog[1],A_REVERSE);
		mvwprintw(dialog[1],1,2, "確定");		
		wrefresh(dialog[1]);		  
		while (1)
		{
			ch=wgetch(dialog[1]);
			switch (ch)
			{		
			case KEY_F(1):
				return 0;
			case KEY_UP:
				wattroff(dialog[1],A_REVERSE);
				mvwprintw(dialog[1],1,2, "確定");
				wrefresh(dialog[1]);					
				goto MONEY;
			case KEY_RIGHT:
				wattroff(dialog[1],A_REVERSE);
				mvwprintw(dialog[1],1,2, "確定");
				wrefresh(dialog[1]);			
				goto CANCEL;
			case '\n':
				if (cnt1==0)
				{
					Message("請您輸入的金額",10,40);
					scr_restore("finish.scr");
					cnt1=0;
					now_row1=0;
					secondStr[0]='\0';
					goto MONEY;
				}
				if(is_float(secondStr)==0)
				{
					Message("輸入金額格式錯誤",10,40);
					scr_restore("finish.scr");
					cnt1=0;
					now_row1=0;
					secondStr[0]='\0';
					goto MONEY;
				}
				cashTotal=atof(secondStr);
				if (cashTotal<cashReceive)
				{
					Message("實收金額小于應收金額",10,40);
					scr_restore("finish.scr");
					cnt1=0;
					now_row1=0;
					secondStr[0]='\0';
					goto MONEY;
				}			
				cashGive=cashTotal-cashReceive;
				wprintw(change,"%.2f",cashGive);
				wrefresh(change);
				wgetch(dialog[1]);				
				//修改數據庫數據		
				sale_info->given_sum=cashReceive;//購買商品的總價格
				sale_info->real_sum=cashTotal;//實際付款數
				sale_info->change=cashGive;//找零
				sale_info->sale_money=cashReceive;
				sale_info->sale_state=0;//0代表正常銷售
				if (insert_sale(sale_info)==-1)
				{
					Message("數據庫出錯",10,40);
					endwin();
					exit(1);
				}	
				if (insert_sale(sale_info)==0)
				{
					Message("插入銷售信息的時候出錯",10,40);
					endwin();
					exit(1);
				}
				SALE_DETAIL *sale_detail=(SALE_DETAIL *)malloc(sizeof(SALE_DETAIL));
				DETAILID *detail=(DETAILID *)malloc(sizeof(DETAILID));
				PRODUCT *pro_info=(PRODUCT *)malloc(sizeof(PRODUCT));
				for ( i=1; i<=salelist.count; i++)
				{
					n=salelist.get_node_by_index(&salelist,i);	
					pro_info=(PRODUCT *)n->data;
					int res=update_product_count(pro_info);
					if (res==-1)
					{
						Message("數據庫出錯",10,40);
						endwin();
						exit(1);
					}				
					if (res==0)
					{
						Message("沒有找到相應的商品",10,40);
						endwin();
						exit(1);
					}		
					//消費明細表添加					
					if (get_seq_detail_id(detail)!=1)
					{
						Message("數據庫出錯",10,40);
						endwin();
						exit(1);
					}
					strcpy(sale_detail->detail_id,sale_info->sale_date);
					strcat(sale_detail->detail_id,detail->seq_detail_id);
					strcpy(sale_detail->sale_id,sale_info->sale_id);
					strcpy(sale_detail->bar_code,pro_info->bar_code);
					sale_detail->count=pro_info->count;
					sale_detail->sale_price=pro_info->sale_price;
					sale_detail->sale_state=0;//0代表正常銷售	
					res=insert_sale_detail(sale_detail);
					if (res==-1)
					{
						Message("數據庫出錯",10,40);
						endwin();
						exit(1);
					}
					if (res==0)
					{
						Message("插入銷售明細的時候出錯",10,40);
						endwin();
						exit(1);
					}						
				}
				salelist.clear_link(&salelist);				
				return 1;			
			}			
		}
	CANCEL:	
		wattron(dialog[2],A_REVERSE);
		mvwprintw(dialog[2],1,2, "取消");		
		wrefresh(dialog[2]);		  
		while (1)
		{
			ch=wgetch(dialog[2]);
			switch (ch)
			{			
			case KEY_LEFT:		
				wattroff(dialog[2],A_REVERSE);
				mvwprintw(dialog[2],1,2, "取消");
				wrefresh(dialog[2]);
				goto ENSURE;
			case KEY_F(1):			
			case '\n':
				return 0;						
			}
		}
}
/*===============================================================
function:掛單窗口與功能實現
================================================================*/
int suspend_deal_win(SALE *sale_info)
{
	if (salelist.count)
	{ 
		if (save_sale_count>=3)
		{
			Message("已有3個掛單",10,40);
			return 0;
		}
		if (message_botton("是否要掛單",10,40))
		{		
			strcpy(save_sale_id[save_sale_count++],sale_info->sale_id);			
			int i=1;				
			sale_info->given_sum=0;
			sale_info->real_sum=0;
			sale_info->sale_money=0;
			sale_info->change=0;
			sale_info->sale_state=-1;//-1代表銷售狀態為掛單
			//插入銷售表
			int res=insert_sale(sale_info);
			if (res==-1)
			{
				Message("數據庫出錯",10,40);
				endwin();
				exit(1);
			}	
			if (res==0)
			{
				Message("插入銷售信息的時候出錯",10,40);
				endwin();
				exit(1);
			}
			PRODUCT *pro_info=(PRODUCT *)malloc(sizeof(PRODUCT));
			SALE_DETAIL *sale_detail=(SALE_DETAIL *)malloc(sizeof(SALE_DETAIL));
			DETAILID *detail=(DETAILID *)malloc(sizeof(DETAILID));
			for ( i=1; i<=salelist.count; i++)
			{				
				NODE *n=salelist.get_node_by_index(&salelist,i);	
				pro_info=(PRODUCT *)n->data;
				res=update_product_count(pro_info);
				if (res==-1)
				{
					Message("數據庫出錯",10,40);
					endwin();
					exit(1);
				}
				if (res==0)
				{
					Message("沒有找到相應的商品",10,40);
					endwin();
					exit(1);
				}				
				//消費明細表添加			
				if (get_seq_detail_id(detail)!=1)
				{
					Message("數據庫出錯",10,40);
					endwin();
					exit(1);
				}
				strcpy(sale_detail->detail_id,sale_info->sale_date);
				strcat(sale_detail->detail_id,detail->seq_detail_id);
				strcpy(sale_detail->sale_id,sale_info->sale_id);
				strcpy(sale_detail->bar_code,pro_info->bar_code);
				sale_detail->count=pro_info->count;
				sale_detail->sale_price=pro_info->sale_price;
				sale_detail->sale_state=-1;//-1代表掛單	
				res=insert_sale_detail(sale_detail);
				if (res==-1)
				{
					Message("數據庫出錯",10,40);
					endwin();
					exit(1);
				}
				if (res==0)
				{
					Message("插入銷售明細的時候出錯",10,40);
					endwin();
					exit(1);
				}
			}
			salelist.clear_link(&salelist);			
			return 1;
		}
		return 0;
	}
	Message("沒有銷售商品",10,40);
	return 0;
}
/*====================================================
function:取單窗口與功能實現
===================================================*/
void fetch_deal_win()
{
	if(salelist.count)
	{
		Message("有銷售單沒有結算",10,40);
		return;
	}
	if(save_sale_count==0)
	{
		Message("沒有掛單信息",10,40);
		return;
	}
	WINDOW *dialog;
	dialog=create_win(10,40,6,20);
	keypad(dialog,TRUE);
	wbkgd(dialog,COLOR_PAIR(7));
	box(dialog,0,0);
	mvwprintw(dialog,7,10,"按ENTER鍵取單F1鍵返回");
	wrefresh(dialog);
	mvwprintw(dialog,0,19,"取單");
	int cur=0;
	print_save_sale_id(dialog,cur);
	wrefresh(dialog);
	int ch=0;
	SALE_ID *save_id=(SALE_ID *)malloc(sizeof(SALE_ID));
	while (1)
	{
		int i=1;
		int res=0;
		ch=wgetch(dialog);
		switch (ch)
		{
		case KEY_F(1):			
			return;
		case KEY_UP:
			if (cur>0)
			{
				print_save_sale_id(dialog,--cur);
			}
			break;				
		case KEY_DOWN:
			if (cur<=save_sale_count-2)
			{
				print_save_sale_id(dialog,++cur);
			}
			break;
		case '\n':
			//根據單號取單
			strcpy(save_id->sale_id,save_sale_id[cur]);
			res=get_sale_detail(save_id);
			if (res==-1)
			{
				Message("數據庫出錯",10,40);
				endwin();
				exit(1);
			}
			if (salelist.count==0)
			{
				Message("取單的時候數據庫出錯,沒找到相應的數據",10,40);
				endwin();
				exit(1);
			}	
			for ( i=1; i<=salelist.count; i++)
			{
				//數據庫修改返回相應商品的庫存			
				NODE *n=salelist.get_node_by_index(&salelist,i);	
				PRODUCT * pro_info=(PRODUCT *)n->data;
				res=fetch_product_count(pro_info);
				if (res==-1)
				{
					Message("數據庫出錯",10,40);
					endwin();
					exit(1);
				}
				if (res==0)
				{
					Message("沒有找到相應的商品",10,40);
					endwin();
					exit(1);
				}										
			}	
			//把消費表及消費明細表中的掛單消息進行刪除
			res=del_sale_detail(save_id);			
			if (res==-1)
			{
				Message("數據庫出錯",10,40);
				endwin();
				exit(1);
			}
			if (res==0)
			{
				Message("刪除銷售明細的時候數據出錯",10,40);
				endwin();
				exit(1);
			}			
			//刪除原數據中提取單號;
			for ( i=cur+1; i<=save_sale_count-1; i++)
			{			
				strcpy(save_sale_id[cur],save_sale_id[i]);
			}
			save_sale_count--;
			return;
		}
	}	

}

/*=====================================================
function:打印取單窗口中的單號
=====================================================*/
void print_save_sale_id(WINDOW *print_window,int cur)
{
	if (save_sale_count==0)
	{
		return;
	}
	int i=0;
	for (; i<=save_sale_count-1; i++)
	{		
		if (i==cur)
		{	
			wstandout(print_window);
		}
		mvwprintw(print_window,1+i,10,"%d.%s",i+1,save_sale_id[i]);					
		if (i==cur)
		{	
			wstandend(print_window);		
		}				
	}	
	wrefresh(print_window);
}
/*==========================================================
function:撤單窗口與功能的實現
===========================================================*/
void remove_deal_win()
{
	//先判斷當前有無銷售單,有銷售單的話按F7進行撤單
	if (salelist.count)
	{
		if (message_botton("您確定要刪除當前銷售記錄",10,40))
		{
			salelist.clear_link(&salelist);
		}	
		return;
	}
	if (save_sale_count==0)
	{
		Message("無掛單",10,40);
		return;
	}
	WINDOW *dialog;	
	dialog=create_win(10,40,6,20);
	keypad(dialog,TRUE);
	wbkgd(dialog,COLOR_PAIR(7));
	box(dialog,0,0);
	wrefresh(dialog);
	mvwprintw(dialog,0,19,"撤單");
	mvwprintw(dialog,7,10,"按ENTER鍵撤單F1鍵返回");
	int cur=0;
	print_save_sale_id(dialog,cur);
	wrefresh(dialog);
	int ch=0;
	SALE_ID *save_id=(SALE_ID *)malloc(sizeof(SALE_ID));
	while (1)
	{
		int i=1;
		int res=0;
		ch=wgetch(dialog);
		switch (ch)
		{	
		case KEY_F(1):			
			return;
		case KEY_UP:
			if (cur>0)
			{
				print_save_sale_id(dialog,--cur);
			}
			break;				
		case KEY_DOWN:
			if (cur<=save_sale_count-2)
			{
				print_save_sale_id(dialog,++cur);
			}
			break;
		case '\n':
			//根據單號取單
			if ( message_botton("是否確定要撤單",10,36)==0 )
			{
				return;
			}
			strcpy(save_id->sale_id,save_sale_id[cur]);
			res=get_sale_detail(save_id);
			if (res==-1)
			{
				Message("數據庫出錯",10,40);
				endwin();
				exit(1);
			}
			if (salelist.count==0)
			{
				Message("取單的時候數據庫出錯,沒找到相應的數據",10,40);
				endwin();
				exit(1);
			}	
			for ( i=1; i<=salelist.count; i++)
			{
				//數據庫修改返回商品庫存			
				NODE *n=salelist.get_node_by_index(&salelist,i);	
				PRODUCT * pro_info=(PRODUCT *)n->data;
				res=fetch_product_count(pro_info);
				if (res==-1)
				{
					Message("數據庫出錯",10,40);
					endwin();
					exit(1);
				}
				if (res==0)
				{
					Message("沒有找到相應的商品",10,40);
					endwin();
					exit(1);
				}										
			}	
			//撤單的時候把消費表及消費明細表中掛單的信息進行刪除
			res=del_sale_detail(save_id);			
			if (res==-1)
			{
				Message("數據庫出錯",10,40);
				endwin();
				exit(1);
			}
			if (res==0)
			{
				Message("刪除銷售明細的時候數據出錯",10,40);
				endwin();
				exit(1);
			}	
			//刪除原數據中提取單號;
			for ( i=cur+1; i<=save_sale_count-1; i++)
			{			
				strcpy(save_sale_id[cur],save_sale_id[i]);
			}
			save_sale_count--;
			salelist.clear_link(&salelist);	
			return;
		}
	}	
}

/*==================================================
function:退貨功能
===================================================*/
void return_purchase()
{
	if (salelist.count)
	{
		Message("有銷售單未結算",10,40);
		return;
	}
	account_log_win();
	return;
}

/*=====================================================
function:超級帳戶登陸退貨窗口與超級帳戶驗證
=======================================================*/
void account_log_win()
{	
	char user[7]={'\0'};//賬戶帳號
	char pwd[13]={'\0'};//賬戶密碼
	int ch,res;
	int now_col,now_row;
	int now_col1,now_row1;	
	int cnt=0;	
	int cnt1=0;	
	int l=0;
	int i=0;
	WINDOW *dialog[3]={NULL};
	print_dialog_box(10,40,"退貨",1,dialog);
	mvwprintw(dialog[0],2,4,"超級賬戶帳號:");
	mvwprintw(dialog[0],4,4,"超級賬戶密碼:");
	wrefresh(dialog[0]);
	keypad(dialog[1],TRUE);
	keypad(dialog[2],TRUE);
	WINDOW *account=create_win(1,16,9,38);
	keypad(account,TRUE);
	wbkgd(account,COLOR_PAIR(4));
	wrefresh(account);
	WINDOW *passwd=create_win(1,16,11,38);
	keypad(passwd,TRUE);
	wbkgd(passwd,COLOR_PAIR(4));
	wrefresh(passwd);
	scr_dump("superadmin.scr");
	ACCOUNT:
		wmove(account,0,0);
		wprintw(account,user);	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产美女搞黄色| 精品一区二区久久| 日韩和欧美的一区| 国产成人精品一区二| 欧美三级电影在线观看| 国产精品伦一区| 日本不卡在线视频| 色婷婷久久99综合精品jk白丝 | 精品成人免费观看| 一区二区三区资源| 不卡欧美aaaaa| 精品日韩一区二区三区| 亚洲国产wwwccc36天堂| 91农村精品一区二区在线| 久久久久久久久久久电影| 亚洲电影欧美电影有声小说| 91在线云播放| 国产欧美精品一区| 韩国在线一区二区| 91精品久久久久久蜜臀| 亚洲人午夜精品天堂一二香蕉| 国内外精品视频| 日韩你懂的电影在线观看| 婷婷一区二区三区| 欧美视频中文一区二区三区在线观看| 成人欧美一区二区三区白人| 国产suv精品一区二区三区| 26uuuu精品一区二区| 美女免费视频一区二区| 555www色欧美视频| 日韩中文字幕一区二区三区| 欧美日韩高清影院| 亚洲成人av一区| 欧美日本一区二区三区| 午夜av区久久| 91精品国模一区二区三区| 丝袜美腿成人在线| 在线播放国产精品二区一二区四区| 一区二区三区.www| 欧美人妖巨大在线| 日本欧美一区二区三区乱码| 日韩三级.com| 国产一区欧美日韩| 国产精品传媒入口麻豆| 99视频国产精品| 一个色在线综合| 91精品欧美福利在线观看| 老司机免费视频一区二区三区| 精品福利在线导航| 国产激情精品久久久第一区二区 | 欧美精品一卡两卡| 人人爽香蕉精品| 精品国产一区二区精华| 欧美性生活久久| 亚洲综合一区在线| 91精品在线观看入口| 黑人巨大精品欧美黑白配亚洲| 国产欧美综合色| 91丨porny丨国产入口| 午夜久久久久久久久| 欧美成人一区二区三区在线观看 | 国产激情一区二区三区| 中文字幕中文字幕中文字幕亚洲无线| 99re成人精品视频| 五月婷婷欧美视频| 久久精品一区二区三区四区 | 国产电影精品久久禁18| 最新日韩av在线| 欧美一区二区三区影视| 成人黄色综合网站| 日韩成人免费电影| 中文字幕不卡一区| 3d成人h动漫网站入口| 成人免费高清视频| 亚洲大片精品永久免费| 亚洲国产精品ⅴa在线观看| 欧美三级在线播放| 国产99久久久国产精品免费看| 一区二区三区欧美久久| 国产日产亚洲精品系列| 欧美日韩国产免费一区二区| 成人国产在线观看| 蜜臀av一区二区在线观看| 国产精品看片你懂得| 日韩欧美一级精品久久| 日本久久一区二区三区| 国产一区二区在线观看免费| 亚洲成人免费看| 椎名由奈av一区二区三区| 欧美变态tickling挠脚心| 91热门视频在线观看| 精品一区二区三区久久| 亚洲高清视频在线| 亚洲视频一二区| 国产片一区二区三区| 日韩欧美123| 欧美理论在线播放| 日本韩国精品在线| 91亚洲精品久久久蜜桃| 国产a视频精品免费观看| 青草国产精品久久久久久| 亚洲一区二区三区不卡国产欧美| 国产日本亚洲高清| 久久日韩精品一区二区五区| 日韩亚洲欧美综合| 91精品国产免费| 在线综合+亚洲+欧美中文字幕| 欧美日韩精品专区| 欧美三级日本三级少妇99| 日本二三区不卡| 欧洲精品中文字幕| 欧美伊人久久久久久久久影院 | 国产精品二区一区二区aⅴ污介绍| 欧美成人高清电影在线| 日韩一区二区电影网| 欧美一区二区三区的| 欧美一级片在线观看| 91精品视频网| 日韩欧美国产一区在线观看| 日韩欧美亚洲国产另类| 欧美成人综合网站| 26uuu国产电影一区二区| 欧美va在线播放| 久久久综合视频| 国产欧美一区视频| 中文字幕日韩一区二区| 1区2区3区精品视频| 亚洲精品成a人| 午夜国产精品影院在线观看| 男男视频亚洲欧美| 九色综合狠狠综合久久| 国产精华液一区二区三区| 国产91富婆露脸刺激对白| av欧美精品.com| 欧美少妇bbb| 日韩午夜激情视频| 国产丝袜在线精品| 亚洲欧美激情在线| 免费精品视频最新在线| 国产成人在线视频网址| 91视频在线观看| 欧美日韩国产综合视频在线观看| 日韩一区二区三区电影在线观看 | 韩国欧美国产一区| 成人国产精品免费网站| 欧美亚洲国产bt| 欧美精品一区二区三区高清aⅴ| 中文字幕不卡在线观看| 亚洲v中文字幕| 国产一区二区在线观看免费| 欧美久久久久久久久中文字幕| 精品国产精品网麻豆系列| 成人免费一区二区三区在线观看| 亚洲成人一区在线| 岛国精品在线观看| 欧美另类变人与禽xxxxx| 日本一区二区三区国色天香| 亚洲一区二区在线播放相泽| 看电视剧不卡顿的网站| 色综合久久久网| 2022国产精品视频| 午夜影院在线观看欧美| 粉嫩aⅴ一区二区三区四区五区| 欧美日韩国产高清一区二区三区| 国产亚洲精品福利| 视频一区国产视频| 91看片淫黄大片一级在线观看| 日韩欧美高清一区| 亚洲影视在线播放| 国产91精品精华液一区二区三区 | 欧美一区二区二区| 亚洲少妇最新在线视频| 久草热8精品视频在线观看| 在线亚洲高清视频| 欧美激情中文字幕一区二区| 日韩不卡免费视频| 日本福利一区二区| 国产精品乱子久久久久| 国产精品一区二区久久不卡| 欧美一级国产精品| 亚洲va韩国va欧美va精品| 91免费版在线| 国产欧美日韩在线观看| 极品瑜伽女神91| 日韩一级成人av| 日本免费新一区视频 | 色哦色哦哦色天天综合| 国产欧美一区二区三区在线看蜜臀| 美女视频网站黄色亚洲| 91精品国产综合久久久久久久久久| 亚洲女女做受ⅹxx高潮| 91视频国产观看| 国产精品久久久久久户外露出| 国产成人精品影视| 国产色产综合产在线视频| 国产在线播放一区三区四| 久久久久97国产精华液好用吗| 久久99久久99| 一区二区三区四区激情| 99久久精品国产网站|