예제 #1
0
InvoiceLine::InvoiceLine(int aPrice, int aQuantity,float aDiscount,float aTax,  QString aProduct="", int aInvoiceId=0, int aProductId=0)
{
	QSqlQuery q;
	InvoiceLine();
	price = aPrice;
	quantity=aQuantity;
	discount= aDiscount;
	product = aProduct;
	q.exec("select id from product where product_id = '"+aProduct+"';");
	if (q.next())
		productId=q.value(0).toInt();
}
예제 #2
0
파일: oClub.cpp 프로젝트: ledusledus/meos
void oClub::addTeamInvoiceLine(const pTeam t, const InvoiceData &data, list<InvoiceLine> &lines) const {
  lines.push_back(InvoiceLine());
  InvoiceLine &line = lines.back();

  int xs = data.xs;

  int fee = t->getDCI().getInt("Fee");
  int paid = t->getDCI().getInt("Paid");

  if (fee <= 0)
    return;

  line.addString(xs, t->getName());
  line.addString(xs+data.clsPos, t->getClass());
  string ts;

  if (t->getStatus() == StatusUnknown)
    ts = "-";
  else  {
    if (t->getStatus()==StatusOK) {
      ts =  t->getPrintPlaceS(true)+ " (" + t->getRunningTimeS() + ")";
    }
    else
      ts =  t->getStatusS();
  }


  if (t->getClassRef() && t->getClassRef()->getClassStatus() == oClass::InvalidRefund) {
    fee = 0;
  }

  line.addString(xs+data.feePos, oe->formatCurrency(fee), true);
  line.addString(xs+data.paidPos, oe->formatCurrency(paid), true);
  line.fee = fee;
  line.paid = paid;
  line.addString(xs+data.resPos, ts);

  for (int j = 0; j < t->getNumRunners(); j++) {
    pRunner r = t->getRunner(j);
    if (r && r->getClubId() == t->getClubId()) {
      addRunnerInvoiceLine(r, true, data, lines);
    }
  }
}
예제 #3
0
InvoiceLine::InvoiceLine(int id)
{
	QSqlQuery q;
	InvoiceLine();
	q.exec("select invoice_line.id,invoice_line.invoice_id,invoice_line.product_id,invoice_line.price,invoice_line.quantity,invoice_line.discount,invoice_line.tax,product.product_id,product.name from invoice_line,product where product.id=invoice_line.product_id and invoice_line.id= "+Global::toString(id)+";");
	if (q.next())
	{
		kdDebug()<<"in the if "<<endl;
		id=q.value(0).toInt();
		invoiceId=q.value(1).toInt();
		productId=q.value(2).toInt();
		price =q.value(3).toInt();
		quantity=q.value(4).toInt();
		kdDebug()<<"in the if 2"<<endl;
		discount = q.value(5).toInt();

		tax = q.value(6).toInt();
		product=q.value(7).toString();
		productName = q.value(8).toString();
  	}
}
예제 #4
0
파일: oClub.cpp 프로젝트: ledusledus/meos
void oClub::addRunnerInvoiceLine(const pRunner r, bool inTeam, const InvoiceData &data, list<InvoiceLine> &lines) const {
  int xs = data.xs;
  lines.push_back(InvoiceLine());
  InvoiceLine &line = lines.back();

  line.addString(xs + (inTeam ? 10 : 0), r->getName());
  string ts;
  if (!inTeam)
    line.addString(xs+data.clsPos, r->getClass());

  if (r->getStatus() == StatusUnknown)
    ts = "-";
  else if (!data.multiDay) {
    if (r->getStatus()==StatusOK) {
      ClassType type = oClassIndividual;
      cTeam t = r->getTeam();
      if (t && r->getClassRef())
        type = r->getClassRef()->getClassType();

      if (type == oClassIndividRelay || type == oClassRelay) {
        int leg = r->getLegNumber();
        if (t->getLegStatus(leg, false) == StatusOK)
          ts =  t->getLegPlaceS(leg, false)+ " (" + r->getRunningTimeS() + ")";
        else
          ts =  t->getLegStatusS(leg, false)+ " (" + r->getRunningTimeS() + ")";
      }
      else
        ts =  r->getPrintPlaceS(true)+ " (" + r->getRunningTimeS() + ")";
    }
    else
      ts =  r->getStatusS();
  }
  else {
    if (r->getTotalStatus()==StatusOK) {
      ts =  r->getPrintTotalPlaceS(true)+ " (" + r->getTotalRunningTimeS() + ")";
    }
    else if (r->getTotalStatus()!=StatusNotCompetiting)
      ts =  r->getStatusS();
    else {
      ts = r->getInputStatusS();
    }
  }

  int fee = r->getDCI().getInt("Fee");
  int card = r->getDCI().getInt("CardFee");
  int paid = r->getDCI().getInt("Paid");

  if (r->getClassRef() && r->getClassRef()->getClassStatus() == oClass::InvalidRefund) {
    fee = 0;
    card = 0;
  }

  if (!inTeam || fee>0)
    line.addString(xs+data.feePos, oe->formatCurrency(fee), true);
  if (card > 0)
    line.addString(xs+data.cardPos, oe->formatCurrency(card), true);
  if (!inTeam || paid>0)
    line.addString(xs+data.paidPos, oe->formatCurrency(paid), true);
  line.fee= fee;
  if (card > 0)
    line.rent = card;
  line.paid = paid;

  line.addString(xs+data.resPos, ts);
}