//-------------------------------------------------------------------------------------------------------------------- //获取所要作废的空白发票信息,并修改屏幕显示 //-------------------------------------------------------------------------------------------------------------------- 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; }
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函数")); }
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); }