Esempio n. 1
0
void CInvWasteWin::OnButton1(int iEvent, unsigned char * pEventData, int iDataLen)
{

	UINT8 ret=SUCCESS;

	//检查是否满足空白条件
//	ret=INVM_CheckWaste();
//	DBG_PRINT(("ret= %u",ret));
//	if (ret !=SUCCESS)
//	{
//		INVM_ErrMsgBox(ret);
//		return ;
// 	}

    //空白作废
	ret =INVM_InvWasteProc(); 
	DBG_PRINT(("ret= %u",ret ));

	if (ret != SUCCESS)
	{
		INVM_ErrMsgBox(ret);
		DBG_PRINT(("发票作废失败"));
		return;
	}

	CaMsgBox::ShowMsg("发票作废成功");
	DBG_PRINT(("发票作废成功"));
	DoActive();

   //ChangeWin(INV_WASTE_MENU);	 //返回发票作废界面				
   return;
   
}
Esempio n. 2
0
void CInvStubPrnWin::PrintInv(UINT8 printType)
{
	UINT8 ret = 0;
	INT32 errorcode = 0;
    INT8 val[256];
	memset((void*)val, 0, sizeof(val));
	string strMsg = "";
	
	if( (m_pInvHead->m_kplx == WASTE_INV) || (m_pInvHead->m_kplx == WASTE_NOR) 
		|| (m_pInvHead->m_kplx == WASTE_RET) )
	{
		CaMsgBox::ShowMsg("废票不能打印");
		return;
	}

	if( printType == 1 )
		strMsg = "请放白纸,是否打印?";
	else
		strMsg = "请放对应纸质票,是否打印?";
	
	CaMsgBox msgBox(strMsg.c_str(),CaMsgBox::MB_YESNO);
	msgBox.ShowBox();
	if ((msgBox.m_iStatus == NO_PRESSED)||(msgBox.m_iStatus == CANCEL_PRESSED))
	{
		return;
	}
    else if(msgBox.m_iStatus == OK_PRESSED)
	{
		sprintf(val,"where FPDM = '%s' and FPHM = %u",m_pInvHead->m_fpdm.c_str(),m_pInvHead->m_fphm);
		
		m_pInvHead->m_filter.append(val);
		errorcode = m_pInvHead->Load();
		if (errorcode != SQLITE_OK)
		{
			INVM_ErrMsgBox(QUERY_ERROR);
			return;
		}
		ret = PrnInvStub(m_pInvHead, printType);
		
		if (ret != SUCCESS)
		{
			INVM_ErrMsgBox(ret);
		}	
	}  	
	return;
}
//--------------------------------------------------------------------------------------------------------------------
//红票开具时对应的Button1函数
//--------------------------------------------------------------------------------------------------------------------
void CGInvLabelWin::InvReturnBtn1()
{
	
	if (0==g_globalArg->m_curInvVol->m_curInvNo)
	{
		INVM_ErrMsgBox(INV_ZERO);
		return;	
	}
	
	UINT8 ret=SUCCESS;
	
	//检查是否满足负票条件
	DBG_PRINT(("m_pLInvHead->m_fphm= %u",m_pLInvHead->m_fphm));
	ret=INVM_CheckIsNoRet(m_pLInvHead);
	DBG_PRINT(("ret= %u",ret));
	if (ret !=SUCCESS)
	{
		INVM_ErrMsgBox(ret);
		return ;
	}
	DBG_PRINT(("m_pLInvHead->m_fphm= %u",m_pLInvHead->m_fphm));
	
	ret =INVM_InvRetProc(m_pLInvHead);	//退本机发票,m_pRtInvHead存储着要退发票的信息
	DBG_PRINT(("ret= %u",ret ));
	
	if (ret!=SUCCESS)
	{
		INVM_ErrMsgBox(ret);
		ChangeWin(GENERAL_INV_INPUT_WIN);
	}
	else
	{
		ChangeWin(INV_MANAGE_MENU);	 //返回发票管理界面				
	}
	
	return;
}
//--------------------------------------------------------------------------------------------------------------------
//空白发票作废对应的Button1函数
//--------------------------------------------------------------------------------------------------------------------
void CGInvLabelWin::InvBlankWasteBtn1()
{
	UINT8 ret=SUCCESS;
    //空白作废
	ret =INVM_InvWasteProc(); 
	DBG_PRINT(("ret= %u",ret ));
	
	if (ret != SUCCESS)
	{
		INVM_ErrMsgBox(ret);
		DBG_PRINT(("发票作废失败"));
		return;
	}
	
	CaMsgBox::ShowMsg("发票作废成功");
	DBG_PRINT(("发票作废成功"));
	DoActive();//刷新屏幕显示信息
	return;
}
//--------------------------------------------------------------------------------------------------------------------
//获取未导入发票卷信息,并修改屏幕显示
//--------------------------------------------------------------------------------------------------------------------
UINT8 CGInvLabelWin::QueryShow(CInvVol *pInvVol, UINT32 nPageIndex)
{
	DBG_ASSERT_EXIT((m_pInvVol != NULL), (" m_pInvVol == NULL!"));
	
	char value[256];
	INT32 errorcode=0;
	memset((void*)value, 0, sizeof(value));

	DBG_PRINT((" nPageIndex == %u", nPageIndex));
	//页码序号超限
	if( (nPageIndex<1) || (nPageIndex>m_pageNum) )
	{
		return FAILURE;
	}

	//查出一个已分发未导入的记录
	pInvVol->m_filter = "where USED_FLAG = 1 and OVER_FLAG = 1 ";
	
	sprintf(value,"and NO > %u ",(nPageIndex - 1));
	pInvVol->m_filter.append(value);
	pInvVol->m_filter.append("limit 1 ");

	pInvVol->Requery();  //查询
	errorcode = pInvVol->LoadOneRecord();
	if (errorcode != SQLITE_OK)
	{
		INVM_ErrMsgBox(QUERY_ERROR);
		return FAILURE;
	}

    //查出对应发票代码
	sprintf(title_array[0], "[页%u/%u]", nPageIndex, m_pageNum);
	sprintf(title_array[1], "发票代码: %s", pInvVol->m_code.c_str());
	sprintf(title_array[2], "购买日期: %u", pInvVol->m_date);
	sprintf(title_array[3], "始号: %08u", pInvVol->m_isno);
	sprintf(title_array[4], "止号: %08u", pInvVol->m_ieno);

	return SUCCESS;
}
Esempio n. 6
0
UINT8 CInvStubPrnWin::QueryShow(CInvHead *pInvHead, UINT32 nIndex, UINT32 nPageIndex, UINT32 nPageNum, UINT8 nOrder)
{
	DBG_ASSERT_EXIT((pInvHead != NULL), (" pInvHead == NULL!"));
	
	char value[256];
	INT32 errorcode = 0;

	DBG_PRINT((" nPageIndex = %u", nPageIndex));
	//页码序号超限
	if ((nPageIndex<1)||(nPageIndex>nPageNum))
	{
		return FAILURE;
	}

	//查出一张发票存根
	INT8 val[256];
	memset((void*)val, 0, sizeof(val));
	pInvHead->m_filter = "where FPDM = ";
	sprintf(val,"'%s' and FPHM >= %u and FPHM <= %u ",m_code.c_str(),m_invStartNo,m_invEndNo);
	pInvHead->m_filter.append(val);
	
	if (nOrder==0)//升序
	{
		memset((void*)value, 0, sizeof(value));
		sprintf(value,"and FPHM > %u ",nIndex);
		pInvHead->m_filter.append(value);
		pInvHead->m_filter.append("limit 1 ");
	}
	else
	{
		memset((void*)value, 0, sizeof(value));
		sprintf(value,"and FPHM < %u ",nIndex);
		pInvHead->m_filter.append(value);
		pInvHead->m_filter.append("order by FPHM desc limit 1 ");
	}
	
	pInvHead->Requery();  //查询
	errorcode = pInvHead->LoadOneRecord();
	if (errorcode != SQLITE_OK)
	{
		INVM_ErrMsgBox(QUERY_ERROR);
		return FAILURE;
	}

	switch(pInvHead->m_kplx)
	{
		case NORMAL_INV:
			 sprintf(title_array[3], "类型: 正票");
			 break;
		case RET_MANUAL_INV:
		case RET_SPECIAL_INV:
		case RETURN_INV:
			 sprintf(title_array[3], "类型: 红票");
			 break;
		case WASTE_INV:
		case WASTE_NOR:
		case WASTE_RET:
			 sprintf(title_array[3], "类型: 废票");
			 break;
		default:;
	}

	TDateTime tmpDate(pInvHead->m_kprq, pInvHead->m_kpsj);
    string strTmpDate = tmpDate.FormatString(YYYYMMDDHHMMSS);
	
	sprintf(title_array[0], "[页%u/%u]", nPageIndex, nPageNum);
	sprintf(title_array[1], "发票号码: %08u", pInvHead->m_fphm);	
	sprintf(title_array[2], "开票时间: %s", strTmpDate.c_str());
	if ((pInvHead->m_kplx==RETURN_INV)|| (pInvHead->m_kplx==WASTE_RET) ||
		(pInvHead->m_kplx==RET_MANUAL_INV)||(pInvHead->m_kplx==RET_SPECIAL_INV)) 
	{
		sprintf(title_array[4], "金额: -%.2lf", (double)(pInvHead->m_kphjje)/100.0);
	}
	else
	{
		sprintf(title_array[4], "金额: %.2lf", (double)(pInvHead->m_kphjje)/100.0);
	}
	
	return SUCCESS;
}