Exemple #1
0
void
ItemMargin::setItem(Id item_id, const QString& number)
{
    if (_item->getId() == item_id) return;
    _item->setValue(Plu(item_id, number));
    newItem();
}
Exemple #2
0
void
SalesHistory::setItem(Id item_id, const QString& number)
{
    if (_item->getId() == item_id) return;
    _item->setValue(Plu(item_id, number));
    slotItemChanged();
}
Exemple #3
0
// Set the widgets from the data object.
void 
ItemTransfer::dataToWidget()
{
    _gltxFrame->setData(_curr);
    _toNumber->setText(_link.number());
    _toShift->setId(_link.shiftId());
    _toStore->setId(_link.storeId());
    _account->setId(_curr.accountId());
    _inactive->setChecked(!_curr.isActive());

    // Load the items
    _items->setUpdatesEnabled(false);
    _items->clear();
    _lines.clear();
    _lookup->store_id = _curr.storeId();
    for (unsigned int i = 0; i < _curr.items().size(); ++i) {
	const ItemLine& line = _curr.items()[i];
	if (line.voided) continue;

	Item item;
	findItem(line.item_id, item);

	fixed on_hand, total_cost, on_order;
	_quasar->db()->itemGeneral(item.id(), "", _curr.storeId(),
				   QDate::currentDate(), on_hand, total_cost,
				   on_order);

	VectorRow* row = new VectorRow(_items->columns());
	row->setValue(0, Plu(line.item_id, line.number));
	row->setValue(1, item.description());
	row->setValue(2, line.size);
	row->setValue(3, on_hand / item.sizeQty(line.size));
	row->setValue(4, -line.quantity);
	row->setValue(5, -line.inv_cost);
	if (_company.depositAccount() != INVALID_ID)
	    row->setValue(6, -line.ext_deposit);
	_items->appendRow(row);

	AdjItem& iline = _lines[_items->rows() - 1];
	iline.item = item;
	iline.number = line.number;
	iline.size = line.size;
	iline.size_qty = line.size_qty;
	iline.quantity = -line.quantity;
	iline.inv_cost = -line.inv_cost;
	iline.ext_deposit = -line.ext_deposit;

	if (i == 0) {
	    for (unsigned int i = 0; i < iline.item.sizes().size(); ++i) {
		_size->insertItem(item.sizes()[i].name);
		if (item.sizes()[i].name == line.size)
		    _size->setCurrentItem(_size->count() - 1);
	    }
	}
    }
    _items->appendRow(new VectorRow(_items->columns()));
    _items->setUpdatesEnabled(true);

    recalculate();
}
Exemple #4
0
TString MillePedeTrees::RPos2(const TString &tree) const
{

  const TString x(tree + XPos());
  const TString y(tree + YPos());

  return Parenth((x + Mal() += x) + Plu() += (y + Mal() += y));
}
Exemple #5
0
// Set the widgets from the data object.
void 
CountMaster::dataToWidget()
{
    _number->setText(_curr.number());
    _description->setText(_curr.description());
    _date->setDate(_curr.date());
    _location->setId(_curr.locationId());
    _employee->setId(_curr.employeeId());
    _store->setId(_curr.storeId());
    _inactive->setChecked(!_curr.isActive());

    _locLookup->store_id = _curr.storeId();
    _itemLookup->store_id = _curr.storeId();

    // Clear the caches
    _item_cache.clear();

    // Load the items
    _items->setUpdatesEnabled(false);
    _items->clear();
    const vector<CountItem>& items = _curr.items();
    for (unsigned int line = 0; line < items.size(); ++line) {
	Id item_id = items[line].item_id;
	QString number = items[line].number;
	QString size = items[line].size;
	fixed size_qty = items[line].size_qty;
	fixed quantity = items[line].quantity;
	fixed on_hand = items[line].on_hand;
	bool oh_set = items[line].oh_set;

	Item item;
	findItem(item_id, item);

	QString description = item.description();
	if (item_id == INVALID_ID)
	    description = tr("** Unknown Item **");

	if (!oh_set && item.id() != INVALID_ID) {
	    fixed total_cost, on_order;
	    QDate date = QDate::currentDate();
	    _quasar->db()->itemGeneral(item.id(), "", _curr.storeId(),
				       date, on_hand, total_cost, on_order);
	    on_hand = on_hand / size_qty;
	}

	VectorRow* row = new VectorRow(_items->columns());
	row->setValue(0, Plu(item_id, number));
	row->setValue(1, description);
	row->setValue(2, size);
	row->setValue(3, on_hand);
	row->setValue(4, quantity);
	_items->appendRow(row);
    }
    _items->setUpdatesEnabled(true);
    _items->appendRow(new VectorRow(_items->columns()));
}
Exemple #6
0
TString MillePedeTrees::DeformValue(UInt_t i, const TString &whichOne) const
{
  const unsigned int iDelta = 9;
  //start,result,diff
  if (whichOne == "diff") {
    // normal result: end minus start
    TString result((PosT() += Form("DeformValues[%u]", i)) += Min()
		   += MisPosT() += Form("DeformValues[%u]", i));
    if (!fSurfDefDeltaBows) { // special treatment
      if(i <= 2) { // sensor 1
	result += Plu() +=    PosT() += Form("DeformValues[%u]", i + iDelta)
	       +  Min() += MisPosT() += Form("DeformValues[%u]", i + iDelta);
      } else if (i >= 9 && i <=11) { // sensor 2
	result = Min() += Parenth(result); // delta values to be subtracted
	// add usual difference of mean values
	result += Plu() +=    PosT() += Form("DeformValues[%u]", i - iDelta)
	       +  Min() += MisPosT() += Form("DeformValues[%u]", i - iDelta);
      }
    }
    return Parenth(result);
  } else {
    // first find tree for start or result
    TString tree;
    if (whichOne == "result") tree = PosT();
    else if (whichOne == "start") tree = MisPosT();
    else {
      ::Error("MillePedeTrees::DeformValue",
	      "unknown 'whichOne': %s", whichOne.Data());
      return "1";
    }
    // special treatment?
    if (!fSurfDefDeltaBows) {
      if(i <= 2) { // sensor 1
	return Parenth(tree + Form("DeformValues[%u]", i) += Plu()
		       += tree + Form("DeformValues[%u]", i + iDelta));
      } else if (i >= 9 && i <= 11) { // sensor 2
	return Parenth(tree + Form("DeformValues[%u]", i - iDelta) += Min() 
		       += tree + Form("DeformValues[%u]", i));
      }
    }
    return tree += Form("DeformValues[%u]", i);
  }
}
Exemple #7
0
TString MillePedeTrees::DelRphi(const TString &tree1, const TString &tree2) const
{
  // distance vector in rphi/xy plane times unit vector e_phi = (-y/r, x/r)
  // tree2 gives reference for e_phi 
  const TString deltaX = Parenth(tree1 + XPos() += (Min() += tree2) += XPos());
  const TString deltaY = Parenth(tree1 + YPos() += (Min() += tree2) += YPos());
  // (delta_x * (-y) + delta_y * x) / r
  // protect against possible sign of RPos:
  return Parenth(Parenth(deltaX + Mal() += ("-" + tree2) += YPos()
			 += Plu() += deltaY + Mal() += tree2 + XPos()
			 ) += Div() += Sqrt(RPos2(tree2)) //RPos(tree2)
		 );
}
// Set the widgets from the data object.
void
PromoBatchMaster::dataToWidget()
{
    _number->setText(_curr.number());
    _description->setText(_curr.description());
    _store->setId(_curr.storeId());
    _fromDate->setDate(_curr.fromDate());
    _toDate->setDate(_curr.toDate());
    _execDate->setDate(_curr.executedOn());
    _inactive->setChecked(!_curr.isActive());

    // Clear the caches
    _item_cache.clear();
    Id store_id = _curr.storeId();

    // Load the items
    _items->setUpdatesEnabled(false);
    _items->clear();
    const vector<PromoBatchItem>& items = _curr.items();
    for (unsigned int line = 0; line < items.size(); ++line) {
        Id item_id = items[line].item_id;
        QString number = items[line].number;
        QString size = items[line].size;
        Price promoPrice = items[line].price;
        fixed ordered = items[line].ordered;
        Id price_id = items[line].price_id;

        Item item;
        findItem(item_id, item);

        QString description = item.description();
        if (item_id == INVALID_ID)
            description = tr("** Unknown Item **");

        Price currentPrice = item.price(store_id, size);

        VectorRow* row = new VectorRow(_items->columns() + 1);
        row->setValue(0, Plu(item_id, number));
        row->setValue(1, description);
        row->setValue(2, size);
        row->setValue(3, currentPrice);
        row->setValue(4, promoPrice);
        row->setValue(5, ordered);
        row->setValue(6, price_id);
        _items->appendRow(row);
    }
    _items->setUpdatesEnabled(true);
    _items->appendRow(new VectorRow(_items->columns() + 1));
}
Exemple #9
0
void
CountMaster::appendItem(const Item& item, const QString& number,
			const QString& in_size, fixed qty)
{
    QString size = in_size;
    if (size.isEmpty()) size = item.sellSize();
    fixed size_qty = item.sizeQty(size);

    fixed on_hand, total_cost, on_order;
    QDate date = QDate::currentDate();
    _quasar->db()->itemGeneral(item.id(), "", _curr.storeId(),
			       date, on_hand, total_cost, on_order);
    on_hand = on_hand / size_qty;

    VectorRow* row = new VectorRow(_items->columns());
    row->setValue(0, Plu(item.id(), number));
    row->setValue(1, item.description());
    row->setValue(2, size);
    row->setValue(3, on_hand);
    row->setValue(4, qty);
    _items->insertRow(_items->rows() - 1, row);
}
Exemple #10
0
bool
OpenBalances::importItem(QDomNodeList& nodes)
{
    Item item;
    QString number;
    QString size;
    fixed qty = 0.0;
    fixed cost = 0.0;

    for (uint i = 0; i < nodes.count(); ++i) {
	QDomNode node = nodes.item(i);
	if (node.isNull()) continue;

	QDomElement e = node.toElement();
	if (e.isNull()) continue;
	QString tag = e.tagName();
	QString text = e.text();

	if (tag == "number") {
	    if (!findItem(text, item))
		warning("Can't find item: " + text);
	    number = text;
	} else if (tag == "size") {
	    size = text;
	} else if (tag == "qty") {
	    qty = text.toDouble();
	} else if (tag == "cost") {
	    cost = text.toDouble();
	} else {
	    warning("Unknown item tag: " + tag);
	}
    }

    if (item.id() == INVALID_ID) {
	warning("Failed item import");
	return false;
    }

    if (!item.isInventoried()) {
	warning("Item " + number + " isn't inventoried");
	return false;
    }

    if (!item.stocked(_store->getId())) {
	warning("Item " + number + " isn't stocked");
	return false;
    }

    if (size.isEmpty()) size = item.numberSize(number);
    if (size.isEmpty()) size = item.sellSize();

    VectorRow* row = new VectorRow(_items->columns());
    row->setValue(0, Plu(item.id(), number));
    row->setValue(1, item.description());
    row->setValue(2, size);
    row->setValue(3, qty);
    row->setValue(4, cost);
    _items->appendRow(row);

    return true;
}