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

📄 posreturn.c

📁 一个不错的POS系统
💻 C
字号:
#include "posReturn.h"
#include "posLogin.h"
#include "posPublic.h"
#include "pub.h"

#include <stdlib.h>
int saleReturn()
{
	int n,m=-100;
	/*if(barInfoList.count>0)
	{
		MessageBox2("");
	}*/
	n=loginWin(1);
	if(2!=n)
	{
		while(1)
		{
			m=returnBox();
			if(m==0)
				MessageBox("退货成功任意键继续...",0);
			if(m==1)
				break;
		}
	}
	return 0;
}
int returnBox()
{
	WINDOW * winmain,* winsure,*wincancle,*winsaleid,*winbarcode,*winnum;
	int n,num=5,ch,flag=0;
	char bar_code[12];
	char bar_code_cn[12];
	static char sale_id[19]={0};
	char returnnum[5];	
	memset(bar_code,0,sizeof(bar_code));	
	memset(returnnum,0,sizeof(returnnum));
	memset(bar_code_cn,0,sizeof(bar_code_cn));
	scr_dump("scr_save.scr6");	
	winmain=newwin(12,40,8,20);
	box(winmain,0,0);
	if(has_colors())
	{
		init_pair(17,COLOR_BLACK,COLOR_MAGENTA);
		init_pair(18,COLOR_BLACK,COLOR_WHITE);
	}
	wbkgd(winmain,COLOR_PAIR(17));
	mvwprintw(winmain,0,18,"退货");
	mvwprintw(winmain,2,1,"销售单号");
	mvwprintw(winmain,4,1,"条形码");
	mvwprintw(winmain,6,1,"退货数量");
	wrefresh(winmain);
	
	winsaleid=newwin(1,20,10,30);
	wbkgd(winsaleid,COLOR_PAIR(18));
	mvwprintw(winsaleid,0,0,"%s",sale_id);
	wrefresh(winsaleid);
	
	winbarcode=newwin(1,12,12,30);
	wbkgd(winbarcode,COLOR_PAIR(18));
	mvwprintw(winbarcode,0,0,"CN");
	wrefresh(winbarcode);

	winnum=newwin(1,5,14,30);
	wbkgd(winnum,COLOR_PAIR(18));
	wrefresh(winnum);

	winsure=newwin(1,6,18,25);
	wbkgd(winsure,COLOR_PAIR(18));
	mvwprintw(winsure,0,1,"确定");
	wrefresh(winsure);

	wincancle=newwin(1,6,18,48);
	wbkgd(wincancle,COLOR_PAIR(18));
	mvwprintw(wincancle,0,1,"退出");
	wrefresh(wincancle);
	freshReturnWin(flag,winsaleid,winbarcode,winnum,winsure, wincancle);
	while(1)
	{
		ch=getch();
		
		if(ch==KEY_DOWN||ch==KEY_UP||ch==KEY_LEFT||ch==KEY_RIGHT)
		{
			/*makelog("debug.log","left up down right");*/
			flag=buttonCtl(winsure,wincancle,num,ch,flag);
			freshReturnWin(flag,winsaleid,winbarcode,winnum,winsure, wincancle);
		}
		else if(ch==10||ch==KEY_ENTER)
		{
			/*makelog("debug.log","enter");*/
			if(flag!=num-2&&flag!=num-1)
			{
				flag=++flag%num;
				freshReturnWin(flag,winsaleid,winbarcode,winnum,winsure, wincancle);		
			}
			else if(flag==num-2)
			{
				/*if(strlen(sale_id)!=18)
				{
					MessageBox("销售单号不存在",0);
				}*/
				
				n=atoi(returnnum);
				if(n<1)
				{
					MessageBox("输入的数量至少为1!",0);
				}
				else
				{
				sprintf(bar_code_cn,"CN%s",bar_code);
				g_sale_state=2;

				n=returnproduct(sale_id,bar_code_cn,n);
				
				
				if(n==3)
					MessageBox("输入的数量太大!",0);
				if(n==-1)
					MessageBox("条形码或销售单号不存在",0);
				if(n==0)
				{
					flag=10;
					break;
				}
				}
			}
			else if(flag==num-1)
			{
				flag=20;
				break;
			}
				
		}
		else if(KEY_BACKSPACE==ch)
		{
			makelog("debug.log","backspace ");
			if(flag==0)
			{
				int len=strlen(sale_id);
				if(len>0)
				{
					sale_id[len-1]='\0';					
					wprintw(winsaleid,"\b \b");
					freshReturnWin(flag,winsaleid,winbarcode,winnum,winsure, wincancle);
				}
			}
			if(flag==1)
			{
				int len=strlen(bar_code);
				if(len>0)
				{
					bar_code[len-1]='\0';					
					wprintw(winbarcode,"\b \b");
					freshReturnWin(flag,winsaleid,winbarcode,winnum,winsure, wincancle);
				}
			}
			if(flag==2)
			{
				int len=strlen(returnnum);
				if(len>0)
				{
					returnnum[len-1]='\0';					
					wprintw(winnum,"\b \b");
					freshReturnWin(flag,winsaleid,winbarcode,winnum,winsure, wincancle);
				}
			}
			
		}
		else if(isdigit(ch))
		{		
			if(flag==0)
			{
				int len=strlen(sale_id);
				if(len<18)
				{
					sale_id[len]=ch;
					wprintw(winsaleid,"%c",ch);
					freshReturnWin(flag,winsaleid,winbarcode,winnum,winsure, wincancle);
				}
			}
			if(flag==1)
			{
				int len=strlen(bar_code);
				if(len<6)
				{
					bar_code[len]=ch;
					wprintw(winbarcode,"%c",ch);
					freshReturnWin(flag,winsaleid,winbarcode,winnum,winsure, wincancle);
				}
			}
			if(flag==2)
			{
				int len=strlen(returnnum);
				if(len<3)
				{
					returnnum[len]=ch;
					wprintw(winnum,"%c",ch);
					freshReturnWin(flag,winsaleid,winbarcode,winnum,winsure, wincancle);
				}
			}
			
		}		
	
	}

	wclear(winmain);
	wrefresh(winmain);
	delwin(winmain);
	delwin(wincancle);
	delwin(winsure);
	delwin(winnum);
	delwin(winbarcode);
	delwin(winsaleid);
	scr_restore("scr_save.scr6");
	refresh();
	if(10==flag)
		return 0;
	if(20==flag)
		return 1;
}
int freshReturnWin(int flag,WINDOW * winsaleid,WINDOW * winbarcode,WINDOW * winnum,WINDOW * winsure,WINDOW *  wincancle)
{
	switch(flag)
	{
		case 0:
			touchwin(winsaleid);
			wrefresh(winsaleid);
			break;
		case 1:
			touchwin(winbarcode);
			wrefresh(winbarcode);
			break;
		case 2:
			touchwin(winnum);
			wrefresh(winnum);
			break;
		case 3:			
			wattron(winsure,A_REVERSE);
			mvwprintw(winsure,0,0," 确定 ");
			wattroff(winsure,A_REVERSE);
			wrefresh(winsure);
			break;
		case 4:
			touchwin(wincancle);
			wattron(wincancle,A_REVERSE);
			mvwprintw(wincancle,0,0," 退出 ");
			wattroff(wincancle,A_REVERSE);
			wrefresh(wincancle);
			break;
	}
	return 0;
}

⌨️ 快捷键说明

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