예제 #1
0
/*!
    \fn PanelCash::slot_edit_change(const QString& text)
 */
void PanelCash::slot_edit_change(const QString& text)
{
	if(text.isEmpty())
		return;
	
	QString fromUnit1 = comboBox1->currentText();
	QString toUnit2 = comboBox2->currentText();
	
	double d_rate = convert_currency(text.toDouble(), fromUnit1, toUnit2);
		
	eUnit2->setText(QString::number(d_rate,'F',2));
}
예제 #2
0
/*!
    \fn PanelCash::slot_unit2_change(const QString& text)
 */
void PanelCash::slot_unit2_change(const QString& text)
{
	QString fromUnit1 = comboBox1->currentText();
	QString toUnit2 = text;
		
	double d_rate = eUnit1->text().toDouble();
	
	if(!d_rate)
		return;
	
	d_rate = convert_currency(d_rate, fromUnit1, toUnit2);
	
	eUnit2->setText(QString::number(d_rate,'F',2));
}
예제 #3
0
void AccountPanelImpl::slot_unit1_change(const QString& text)
{
    QString fromUnit1 = text;
    QString toUnit2 = comboBox2->currentText();

    double d_rate = eUnit1->text().toDouble();

    if(!d_rate)
    {
        return;
    }

    d_rate = convert_currency(d_rate, fromUnit1, toUnit2);
    eUnit2->setText(QString::number(d_rate,'F',2));
}
예제 #4
0
파일: fdatabase.cpp 프로젝트: Iownnoname/qt
void set_data_creditor(Db_dat data)
{
    QSqlQuery query(QSqlDatabase::database(data_u.NameDB));
	
    double idata = 0;
	QString s_cash, s_cash_credit;
	get_data_from_bank(idata, s_cash);
	
	query.prepare("select * from creditors where 1");
	query.exec();
	
	bool b=false;//find record id finded - change, else create new
	
    while (query.next())
    {
		QSqlQuery query_in(QSqlDatabase::database(data_u.NameDB));
        if(data.date == query.value(0).toString())
        {
            s_cash_credit = query.value(3).toString();
            double n = query.value(2).toDouble()-data.count_d;

            if (n > 0)
            {
			   query_in.prepare("update creditors set count=:count where (date_c=:date_c)");
			   query_in.bindValue(":count", n);
			   query_in.bindValue(":date_c", data.date);
            }
            else
            {
				query_in.prepare("delete from creditors where (date_c=:date_c)");
				query_in.bindValue(":date_c", data.date);
			}
			
            if (!query_in.exec())
            {
				qDebug() << query_in.lastError();
				return;
			}
			
            b = true;
			break;
		}
	}
	
    if (!b)
    {
        //create new credit
        idata -= data.count_d;//check many in count

        if(idata<0)
        {
            QMessageBox::information(0,QObject::tr("Erorr operation"),QObject::tr("No cash"));
			return;	
		}
		
		
		query.prepare("INSERT INTO creditors (date_c, name_c, count,"
				"currency_name, percent, type, description, date_incr) "
				"VALUES (:date_c, :name, :count, :currency_name, :percent,"
				":type, :description, :date_incr)");
		query.bindValue(":count", data.count_d);
		query.bindValue(":currency_name", s_cash);
		query.bindValue(":percent", data.percent);
		query.bindValue(":type", data.type);
		query.bindValue(":date_c", data.date);
		query.bindValue(":name", data.Name);
		query.bindValue(":description", data.descr);
		query.bindValue(":date_incr", data.date_incr);
		
        if (!query.exec())
        {
		   qDebug() << query.lastError();
		   return;
		}
	}
		
	Db_dat data_o;
	
	QString s_h = "<b>%1</b> <b>%2:</b>";
	bool bconverted = false;
	double d_c_cash= data.count_d;
	
    if(b)
    {

        if(s_cash == s_cash_credit)
        {
            //convert cash if currency bank
		    idata += data.count_d; // not equable with currency credit
        }
        else
        {
		    d_c_cash = convert_currency(data.count_d,s_cash_credit,s_cash);
		    idata += d_c_cash;
		    bconverted = true;
		}
		
		data_o.descr = s_h.arg(QObject::tr("Credit amortiazation")).arg(QObject::tr("debtor"))+data.Name;
		
        if (bconverted)
        {
		    data_o.descr+="<br><b><font color=\"red\">"+QObject::tr("Cash automatically converted: from")
					+" "+QString::number(data.count_d)+" "+s_cash_credit
					+" "+QObject::tr("to")+" "
                    +QString::number(d_c_cash)+""+s_cash+"</font></b>";
        }
        else
        {
            data_o.descr = data.descr;
        }
    }

	data_o.date = data.date;
	data_o.currency = s_cash;
	data_o.count_d = d_c_cash;
	add_operation(b, data_o);
	set_data_to_bank(idata, s_cash);
}