📄 posreturn.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 + -