Exemple #1
0
ProductData ProjectPrivate::findProductData(const ProductData &product) const
{
    foreach (const ProductData &p, m_projectData.allProducts()) {
        if (p.name() == product.name() && p.profile() == product.profile())
            return p;
    }
    return ProductData();
}
Exemple #2
0
InvoiceData XmlDataLayer::invoiceSelectData(QString name, int type) {
	qDebug() << __FILE__ << __LINE__ << __FUNCTION__;

	InvoiceData o_invData;

	QDomDocument doc(sett().getInoiveDocName());
	QDomElement root;
	QDomElement nabywca;
	QDomElement product;
	QString fName = name;

	QFile file(sett().getInvoicesDir() + fName);
	if (!file.open(QIODevice::ReadOnly)) {
		qDebug("file doesn't exist");
		return o_invData;
	} else {
		QTextStream stream(&file);
		if (!doc.setContent(stream.readAll())) {
			file.close();
			return o_invData;
		}
	}

	root = doc.documentElement();
	o_invData.frNr = root.attribute("no");
	o_invData.sellingDate = QDate::fromString(root.attribute("sellingDate"), sett().getDateFormat());
	o_invData.productDate = QDate::fromString(root.attribute("issueDate"),	sett().getDateFormat());

	QDomNode tmp;
	tmp = root.firstChild();
	tmp = tmp.toElement().nextSibling(); // nabywca
	nabywca = tmp.toElement();
	o_invData.customer = nabywca.attribute("name") + "," + nabywca.attribute(
			"city") + "," + nabywca.attribute("street") + "," + QObject::trUtf8("NIP: ")
			+ nabywca.attribute("tic");
			/* not required
			+ ", " + nabywca.attribute("account")
			+ ", " + nabywca.attribute("phone") + ", " + nabywca.attribute(
			"email") + ", " + nabywca.attribute("www")) */
	// kontrName->setCursorPosition(1);

	tmp = tmp.toElement().nextSibling(); // product
	product = tmp.toElement();

	o_invData.discount = product.attribute("discount").toInt();



	tmp = tmp.toElement().nextSibling();
	QDomElement additional = tmp.toElement();
	o_invData.additText = additional.attribute("text");
	int curPayment = sett().value("payments").toString().split("|").indexOf(additional.attribute("paymentType"));

	if (curPayment == sett().value("payments").toString().split("|").count() - 1) {
	    // disconnect(platCombo, SIGNAL(currentIndexChanged (QString)), this, SLOT(payTextChanged(QString)));

		// platCombo->setCurrentIndex(curPayment);

		// ; //  = new CustomPaymData();
		o_invData.custPaym.payment1 = additional.attribute("payment1");
		o_invData.custPaym.amount1  = additional.attribute("amount1").toDouble();
		o_invData.custPaym.date1    = QDate::fromString(additional.attribute("liabDate1"), sett().getDateFormat());
		o_invData.custPaym.payment2 = additional.attribute("payment2");
		o_invData.custPaym.amount2  = additional.attribute("amount2").toDouble();
		o_invData.custPaym.date2    = QDate::fromString(additional.attribute("liabDate2"), sett().getDateFormat());

		// connect(platCombo, SIGNAL(currentIndexChanged (QString)), this, SLOT(payTextChanged(QString)));
	} else {
		// platCombo->setCurrentIndex(curPayment);
	}

	o_invData.liabDate = QDate::fromString(additional.attribute("liabDate"), sett().getDateFormat());
	int curCurrency = sett().value("waluty").toString().split("|").indexOf(additional.attribute("currency"));
	o_invData.currencyTypeId = curCurrency;


    QFile db(sett().getInvoicesDir() + name);

    if (!db.open(QIODevice::ReadOnly | QIODevice::Text))
    {
        qDebug("file doesn't exist");
         return o_invData;
    }

    QXmlQuery query;
    QString res;

    query.setFocus(&db);
    query.setQuery("//product");
    if ( ! query.isValid())
        return o_invData;

    query.evaluateTo(&res);
    db.close();

    QDomDocument productsDOMDocument;
    productsDOMDocument.setContent("" + res + "");
    QDomNodeList products = productsDOMDocument.elementsByTagName("product");

    for (int i = 0; i < products.count(); i++) {
        QDomElement product = products.at(i).toElement();
        o_invData.products[i] =
                ProductData(product.attribute("id").toInt(),
                            product.attribute("name"),
                            product.attribute("code"),
                            product.attribute("PKWiU"),
                            product.attribute("quantity").toDouble(),
                            product.attribute("quantityType"),
                            product.attribute("discount").toDouble(),
                            product.attribute("price").toDouble(),
                            product.attribute("nett").toDouble(),
                            product.attribute("vatBucket").toInt(),
                            product.attribute("gross").toDouble(),
                            additional.attribute("currency"));
    }
    return o_invData;
}