Пример #1
0
bool XmlDataLayer::nameFilter(QString nameToCheck, QDate start, QDate end) {
	qDebug() << __FILE__ << __LINE__ << __FUNCTION__;

	QString tmp = nameToCheck;
	tmp = tmp.remove("h"); // invoice
	tmp = tmp.remove("k"); // correction
	tmp = tmp.left(10);
	tmp = tmp.remove("-");

	// not very flexible
	// assumption is that date comes as yyyymmdd
	// if its otherwise order of remove methods has to be changed
	int year = tmp.left(4).toInt();
	tmp = tmp.remove(0, 4);
	int month = tmp.left(2).toInt();
	tmp = tmp.remove(0, 2);
	int day = tmp.left(2).toInt();
	tmp = tmp.remove(0, 2);
	QDate tmpDate(year, month, day);

	if (tmpDate < start) {
		return false;
	}

	if (tmpDate > end) {
		return false;
	}

	// default true?
	return true;
}
//--------------------------------------------------------------------------------------------------------------------
//获取所要作废的已开发票信息,并修改屏幕显示
//--------------------------------------------------------------------------------------------------------------------
UINT8 CGInvLabelWin::UsedWasteShow(CInvHead *pInvHead)
{
	sprintf(title_array[0], "已开发票作废");	
	sprintf(title_array[1], "发票号码: %08d", pInvHead->m_fphm);	
	
	TDateTime tmpDate(pInvHead->m_kprq, pInvHead->m_kpsj);
    string strTmpDate = tmpDate.FormatString(YYYYMMDDHHMMSS);
	sprintf(title_array[2], "开票时间: %s", strTmpDate.c_str());

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

	if ((pInvHead->m_kplx==RETURN_INV)||(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;
}
Пример #3
0
// =============================================================================
void MainWindow::openSpreadsheet()
{
    QString fileName = QFileDialog::getOpenFileName(this,
                                                    tr("Open Time tracking"),
                                                    QDir::homePath(),
                                                    tr("Time tracking files (*.xml)"));
    if (!fileName.isEmpty()) {
        fileName.remove(QRegExp("\\.\\w+$"));
        DEBUG("Opening file " + fileName);
        QStringList stringList = fileName.split('-');
        if(stringList.size() != 3) {

            QMessageBox::warning(this, tr("Invalid filename"),
                                 "File " + fileName + " could not be loaded.",
                                 QMessageBox::Ok);
        }
        QString userName = stringList.at(0);
        QDate tmpDate(stringList.at(1).toInt(), stringList.at(2).toInt(), 1);

        createSubWindow(userName, tmpDate);

    }
}
Пример #4
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;
}