//--------------------------------------------------------------------------------------------------------------------
//获取所要作废的空白发票信息,并修改屏幕显示
//--------------------------------------------------------------------------------------------------------------------
UINT8 CGInvLabelWin::BlankWasteShow()
{
	string strErr("");
	UINT8 ret =SUCCESS;
	UINT8 uFlag=0;
	if (0 == g_globalArg->m_curInvVol->m_curInvNo) //避免反复读盘
	{
		ret = SALE_GetCurInv(g_globalArg->m_curInvVol, strErr);
		if (ret == FAILURE)
		{
			if (strErr.length()>OBJ_TITLE_MAX_LEN)
			{
				strErr = strErr.substr(0,OBJ_TITLE_MAX_LEN);
			}
			label[0]->SetTitleAlign(CaObject::ALIGN_LEFT);
			sprintf(title_array[0], strErr.c_str()); //错误
			sprintf(title_array[1], "作废发票代码: 空");
			sprintf(title_array[2], "作废发票号码: 空");
			uFlag=1;
		}		
	}	
	if (0 == uFlag)
	{
		label[0]->SetTitleAlign(CaObject::ALIGN_CENTER);
		sprintf(title_array[0], "空白发票作废");
		sprintf(title_array[1], "作废发票代码:%s ", g_globalArg->m_curInvVol->m_code.c_str());
		sprintf(title_array[2], "作废发票号码:%08u", g_globalArg->m_curInvVol->m_curInvNo);	
	}	
	sprintf(title_array[3], "");
	sprintf(title_array[4], "");
	return SUCCESS;
}
Exemplo n.º 2
0
void CInvWasteWin::DoActive()
{
	DBG_PRINT(("进入CInvWasteWin::DoActive函数"));
	INT32 nCurrentInvNo = g_globalArg->m_curInvVol->m_ieno + 1 - g_globalArg->m_curInvVol->m_remain;
	DBG_PRINT(("nCurrentInvNo = %u",nCurrentInvNo));
	
	string strErr;
	UINT8 ret =SUCCESS;
	UINT8 uFlag=0;
	if (0 == g_globalArg->m_curInvVol->m_curInvNo) //避免反复读盘
	{
		BAR_DEF();
		BAR_SHOW("获取作废发票号码中...");
       ret = SALE_GetCurInv(g_globalArg->m_curInvVol,strErr);
 		if (ret ==FAILURE)
 		{
 			uFlag=1;
			if (strErr.length()>OBJ_TITLE_MAX_LEN)
			{
				strErr = strErr.substr(0,OBJ_TITLE_MAX_LEN);
			}
			sprintf(title_array[1], strErr.c_str()); //错误
			sprintf(title_array[2], "作废发票代码: 空");
			sprintf(title_array[3], "作废发票号码: 空");	
 		} 
		
	}

	if (0 ==uFlag)
	{
		sprintf(title_array[1], "");
		sprintf(title_array[2], "作废发票代码:%s ", g_globalArg->m_curInvVol->m_code.c_str());
		sprintf(title_array[3], "作废发票号码:%08u", g_globalArg->m_curInvVol->m_curInvNo);	
	}

	
	ChangeTitle();
	m_pBtn1->SetFocus();
	ReFresh();
	DBG_PRINT(("退出CInvWasteWin::DoActive函数"));
}
Exemplo n.º 3
0
UINT8 SimpleMakeNormalInv(SaleData &tmpSaleData,string &strErr)
{
	UINT8 ret;
	CInvDet *invDet = NULL;
	CInvHead invHead;
	tmpSaleData.m_smallInvInfo = &invHead;
    UINT32 nCurDate = TDateTime::CurrentDateTime().FormatInt(YYYYMMDD);
	UINT32 nCurTime = TDateTime::CurrentDateTime().FormatInt(HHMMSS);

	INT64 tmpDJ=0;
	INT64 moneyTaxSum=0;
	//组装正票
	//组装发票头
	//tmpSaleData.m_smallInvInfo->m_fphm = g_globalArg->m_curInvVol->m_ieno + 1 - 
	//	g_globalArg->m_curInvVol->m_remain;  /**< 发票号码 */

	ret = SALE_GetCurInv(g_globalArg->m_curInvVol,strErr);
	DBG_PRINT(("strErr= %s",strErr.c_str()));

	if (ret ==FAILURE)
	{
		DBG_PRINT(("获取当前发票号码错误:%s",strErr.c_str()));
		return ret;
	}


	tmpSaleData.m_smallInvInfo->m_fphm = g_globalArg->m_curInvVol->m_curInvNo;
    tmpSaleData.m_smallInvInfo->m_fpdm = g_globalArg->m_curInvVol->m_code;  /**< 发票代码简称 */  	
	tmpSaleData.m_smallInvInfo->m_kplx = NORMAL_INV;		//开票类型	

	tmpSaleData.m_smallInvInfo->m_yfphm = 0;		//原发票号码
	tmpSaleData.m_smallInvInfo->m_yfpdm = "";		//原发票号码	
    tmpSaleData.m_smallInvInfo->m_fplb = atoi(g_globalArg->m_invKind->m_pzCode.c_str()); //发票种类
	
	tmpSaleData.m_smallInvInfo->m_fkdw = "个人";			//付款人名称
	tmpSaleData.m_smallInvInfo->m_fkdwsh = "012345678901234";
	tmpSaleData.m_smallInvInfo->m_sky = g_globalArg->m_operator->m_name;		//操作员名称
//	tmpSaleData.m_smallInvInfo->m_opId = g_globalArg->m_operator->m_opId;		//操作员id	
//	tmpSaleData.m_smallInvInfo->m_uID = 0;          //纳税户名称ID号
//	tmpSaleData.m_smallInvInfo->m_ptype = 0;		//付款方式
	tmpSaleData.m_smallInvInfo->m_sphsl = 3;//当前发票总商品行加1

	tmpSaleData.m_smallInvInfo->m_kphjje = (INT64)(3.00 * SUM_EXTENSION);//当前发票总金额
 	tmpSaleData.m_smallInvInfo->m_backup1 = "";		//备用字段1

//	tmpSaleData.m_smallInvInfo->m_backup2 = "";		//备用字段2 
//	tmpSaleData.m_smallInvInfo->m_backup3 = "";		//备用字段3

	//发票明细
	for(UINT8 i = 1; i<4; i++)
	{
//		invDet = new CInvDet;
		invDet = invDet->GetNewInvDet();//从静态数组获取一个可用的CInvDet对象
		DBG_ASSERT_EXIT((invDet != NULL), (" invDet == NULL!"));
		invDet->m_fpdm = tmpSaleData.m_smallInvInfo->m_fpdm; 
		invDet->m_fphm = tmpSaleData.m_smallInvInfo->m_fphm;
	//	invDet->m_sphxh = i; 
		invDet->m_kprq = nCurDate;
		invDet->m_kpsj = nCurTime;
		invDet->m_kplx = NORMAL_INV;
		invDet->m_sky = g_globalArg->m_operator->m_name;


		invDet->m_spbm = "0000000000001";
		invDet->m_sphxh = i;
		invDet->m_spmc = "测试商品1";
	//	invDet->m_taxId = 1; //非税控只允许税目1
		invDet->m_spsl = 1.0; //保存四舍五入后的值
		invDet->m_dotNum = 0;
		invDet->m_spdj = (double)1.00;
		invDet->m_spje = (INT64)(1.00*SUM_EXTENSION);
		invDet->m_sl = 0.03;
		invDet->m_spse=tmpSaleData.CountTax(invDet->m_spje, (UINT32)(invDet->m_sl*SUM_EXTENSION)); //商品税额
	    invDet->m_je= invDet->m_spje - invDet->m_spse; //商品金额(不含税)
	
		invDet->m_spdw = "个";	//商品单位
		
		tmpDJ = double2int(invDet->m_spdj*SUM_EXTENSION);
		DBG_PRINT(("tmpDJ==%lld ", tmpDJ));
		tmpDJ -=tmpSaleData.CountTax(double2int(invDet->m_spdj*SUM_EXTENSION), (UINT32)(invDet->m_sl*SUM_EXTENSION));
		DBG_PRINT(("tmpDJ==%lld ", tmpDJ));
		
		invDet->m_dj= (double)(tmpDJ*1.0)/SUM_EXTENSION; //商品单价(不含税)
		
		invDet->m_je= invDet->m_spje-invDet->m_spse; //商品金额(不含税)
		moneyTaxSum += invDet->m_spse;
		invDet->m_property = DETAIL_GENERAL_GOODS;
		invDet->m_backup = "";
		tmpSaleData.m_smallInvInfo->InsertNode(invDet);	//插入节点
		
	}

	//当前发票累计税额增加
	tmpSaleData.m_smallInvInfo->m_kpse = moneyTaxSum;
	DBG_PRINT(("当前发票累计税额 tmpSaleData.m_smallInvInfo->m_kpse = %lld", tmpSaleData.m_smallInvInfo->m_kpse));
	moneyTaxSum = 0;

	ret = tmpSaleData.MakeInvoiceHandle(PRINT, INV_ROLL_PROC);
	tmpSaleData.m_smallInvInfo->DelList();
	tmpSaleData.m_smallInvInfo = NULL;
	if (ret != SUCCESS)
	{
		if (ret==DB_FULL) 
		{
			DBG_RETURN(DB_FULL);
		}
		else if (ret==HAVE_ROLLED) 
		{
			DBG_RETURN(HAVE_ROLLED);
		}
		else
		{
			DBG_RETURN(ret);
		}	
	}	
	DBG_RETURN(SUCCESS);	
}