Ejemplo n.º 1
0
struct order * getOrderFromStream(FILE * stream){
  if(feof(stream)) return 0;
  char line[MAX_LINE_LEN] = {'\0'};
  fgets(line,MAX_LINE_LEN,stream);
  //fprintf(stdout,"line:\n%s-- +++ --\n",line);
  char type,temp;
  float price;
  unsigned int size,tstamp;
  char id[MAX_ID_LEN] = {'\0'};
  if(sscanf(line,"%u %c %s %c %f %u\n",&tstamp,&temp,id,&type,&price,&size)<6){
    if(sscanf(line,"%u %c %s %u\n",&tstamp,&type,id,&size)<4) return 0;
    return newOrder(0.0,size,type,id,tstamp);
  }
  return newOrder(price,size,type,id,tstamp);
}
Ejemplo n.º 2
0
void CSVWorld::Table::moveDownRecord()
{
    if (mEditLock || (mModel->getFeatures() & CSMWorld::IdTableBase::Feature_Constant))
        return;

    QModelIndexList selectedRows = selectionModel()->selectedRows();

    if (selectedRows.size()==1)
    {
        int row =selectedRows.begin()->row();

        if (row<mProxyModel->rowCount()-1)
        {
            int row2 = row+1;

            row = mProxyModel->mapToSource (mProxyModel->index (row, 0)).row();
            row2 = mProxyModel->mapToSource (mProxyModel->index (row2, 0)).row();

            if (row2<=row)
                throw std::runtime_error ("Inconsistent row order");

            std::vector<int> newOrder (row2-row+1);
            newOrder[0] = row2-row;
            newOrder[row2-row] = 0;
            for (int i=1; i<row2-row; ++i)
                newOrder[i] = i;

            mDocument.getUndoStack().push (new CSMWorld::ReorderRowsCommand (
                dynamic_cast<CSMWorld::IdTable&> (*mModel), row, newOrder));
        }
    }
}
Ejemplo n.º 3
0
void CSVWorld::Table::moveDownRecord()
{
    QModelIndexList selectedRows = selectionModel()->selectedRows();

    if (selectedRows.size()==1)
    {
        int row =selectedRows.begin()->row();

        if (row<mProxyModel->rowCount()-1)
        {
            int row2 = row+1;

            row = mProxyModel->mapToSource (mProxyModel->index (row, 0)).row();
            row2 = mProxyModel->mapToSource (mProxyModel->index (row2, 0)).row();

            if (row2<=row)
                throw std::runtime_error ("Inconsistent row order");

            std::vector<int> newOrder (row2-row+1);
            newOrder[0] = row2-row;
            newOrder[row2-row] = 0;
            for (int i=1; i<row2-row; ++i)
                newOrder[i] = i;

            mUndoStack.push (new CSMWorld::ReorderRowsCommand (*mModel, row, newOrder));
        }
    }
}
Ejemplo n.º 4
0
void CStrategyGrid::addGrid(int count)
{
	int addcount = count - m_nCount;

	double price = 0;

	if(m_TradeDirection==0)
	{
		if(m_kp==0)
		{
			 price = m_beginPrice - (m_nCount / m_N1) * m_J1;
		}
		else if(m_kp==1)
		{
			 price = m_beginPrice + (m_nCount / m_N1) * m_J1;
		}
	}
	else if(m_TradeDirection==1)
	{
		if(m_kp==0)
		{
			 price = m_beginPrice + (m_nCount / m_N1) * m_J1;
		}
		else if(m_kp==1)
		{
			 price = m_beginPrice - (m_nCount / m_N1) * m_J1;
		}
	}

	newOrder(addcount,price);

}
Ejemplo n.º 5
0
void __TestReorderCopy()
{
    size_t numTuples = 10;
    QVector<size_t> cDims(1, 5);
    QString name("Source Array");

    //make sure that an incorrectly sized order returns a null pointer
    typename DataArray<T>::Pointer src = DataArray<T>::CreateArray(numTuples, cDims, name, false);
    QVector<size_t> wrongSize(numTuples + 1);
    typename DataArray<T>::Pointer copy = boost::dynamic_pointer_cast<DataArray<T> >(src->reorderCopy(wrongSize));
    DREAM3D_REQUIRE_EQUAL(copy.get(), 0);

    // fill reorder vector with same index (using this would be the same result as deep copy)
    QVector<size_t> newOrder(numTuples);
    for(size_t i = 0; i < numTuples; i++)
    {
        newOrder[i] = i;
    }

    //shuffle order
    std::random_shuffle(newOrder.begin(), newOrder.end());

    // First lets try it without allocating any memory
    copy = boost::dynamic_pointer_cast<DataArray<T> >(src->reorderCopy(newOrder));

    //if newOrder is inporperly size a null pointer is returned
    DREAM3D_REQUIRE_NE(copy.get(), 0);

    //check sizes
    DREAM3D_REQUIRED(copy->getNumberOfTuples(), ==, src->getNumberOfTuples() );
    DREAM3D_REQUIRED(copy->isAllocated(), ==, src->isAllocated() );

    // Create the array again, this time allocating the data and putting in some known data
    src = DataArray<T>::CreateArray(numTuples, cDims, name, true);
    for(size_t i = 0; i < src->getSize(); i++)
    {
        src->setValue(i, i);
    }

    for(size_t i = 0; i < numTuples; i++)
    {
        for(size_t j = 0; j < cDims[0]; j++)
        {
            src->setComponent(i, j, static_cast<T>(i * cDims[0] + j) );
        }
    }
    copy = boost::dynamic_pointer_cast<DataArray<T> >(src->reorderCopy(newOrder));
    for(size_t i = 0; i < numTuples; i++)
    {
        for(size_t j = 0; j < cDims[0]; j++)
        {
            T cpy = copy->getComponent(newOrder[i], j);
            T val = src->getComponent(i, j);
            DREAM3D_REQUIRE_EQUAL(cpy, val)
        }
    }
}
Ejemplo n.º 6
0
vector<int> Anneal::getNextOrder(vector<int> order)
{
	vector<int> newOrder(order);

	int randomCity = rand() % (dimension - 1) + 1;		//generujemy dwie wartoœci ró¿ne od zera oraz od siebie
	int anotherRandomCity = rand() % (dimension - 1) + 1;
	while (randomCity == anotherRandomCity) anotherRandomCity = rand() % (dimension - 1) + 1;

	swap(newOrder[randomCity], newOrder[anotherRandomCity]);

	return newOrder;
}
void ConvolveMatrixEffectConfigWidget::orderChanged(int)
{
    if (!m_effect) {
        return;
    }

    QPoint newOrder(m_orderX->value(), m_orderY->value());
    QPoint oldOrder = m_effect->order();
    if (newOrder != oldOrder) {
        m_effect->setOrder(newOrder);
        emit filterChanged();
    }

    m_targetX->setMaximum(newOrder.x());
    m_targetY->setMaximum(newOrder.y());
}
Ejemplo n.º 8
0
OneD<_T> OneD<_T>::truncateToNonZeros(double zeroEpsilon) const
{
    zeroEpsilon = std::abs(zeroEpsilon);
    size_t newOrder(0);

    // Find the highest order non-zero coefficient
    for (size_t ii = 0, idx = order(); ii <= order(); ++ii, --idx)
    {
        if (std::abs((*this)[idx]) > zeroEpsilon)
        {
            newOrder = idx;
            break;
        }
    }

    return truncateTo(newOrder);
}
Ejemplo n.º 9
0
	int TWS_TLServer::SendOrder(TLOrder o)
	{
		// check our order
		if (o.symbol=="") return UNKNOWN_SYMBOL;
		if (!o.isValid()) return INVALID_ORDERSIZE;


		// create broker-specific objects here
		Order* order(new Order);
		order->auxPrice = o.isTrail() ? o.trail : o.stop;
		order->lmtPrice = o.price;
		order->orderType = (o.isStop()) ? "STP" : (o.isLimit() ? "LMT" : (o.isTrail() ? "TRAIL" : "MKT"));
		order->totalQuantity = (long)o.size;
		order->action = (o.side) ? "BUY" : "SELL";
		order->account = o.account;
		order->tif = o.TIF;
		order->outsideRth = true;
		order->orderId = newOrder(o.id,o.account);
		order->transmit = true;

		Contract* contract(new Contract);
		contract->symbol = o.symbol;
		contract->localSymbol = o.localsymbol!="" ? o.localsymbol : o.symbol;
		if (o.exchange=="")
			o.exchange = "SMART";
		contract->exchange = o.exchange;
		contract->secType = o.security;
		contract->currency = o.currency;

		// get the TWS session associated with our account
		EClient* client;
		if (o.account=="") // if no account specified, get default
			client = m_link[this->validlinkids[0]];
		else // otherwise get the session our account is logged into
			client	= GetOrderSink(o.account);

		// place our order
		if (client!=NULL)
			client->placeOrder(order->orderId,*contract,*order);

		delete order;
		delete contract;

		return OK;
	}
Ejemplo n.º 10
0
void PlaceOrderControl::submitOrder()
{

    QUuid requestId;

    if (this->getStudent() != NULL) {
        if (!this->getStudent()->getCart()->getItems().empty()) {
            QVector<qint32> itemIds;

            for (SellableItem *item: this->getStudent()->getCart()->getItems()) {
                itemIds.append(item->getId());
            }

            Order newOrder(itemIds, *this->getStudent()->getCreditCardInfo(), *this->getStudent()->getDeliveryInfo());

            requestId = requestAPI->submitOrder(newOrder);

            qDebug() << "PlaceOrderControl::submitOrder: Submitted order request with request ID " << requestId << " to the server...";
        }
    }

}
Ejemplo n.º 11
0
void QgsLayerTreeMapCanvasBridge::setCustomLayerOrder( const QStringList& order )
{
  if ( mCustomLayerOrder == order )
    return;

  // verify that the new order is correct
  QStringList defOrder( defaultLayerOrder() );
  QStringList newOrder( order );
  QStringList sortedNewOrder( order );
  qSort( defOrder );
  qSort( sortedNewOrder );

  if ( defOrder.size() < sortedNewOrder.size() )
  {
    // might contain bad layers, but also duplicates
    QSet<QString> ids( defOrder.toSet() );

    for ( int i = 0; i < sortedNewOrder.size(); i++ )
    {
      if ( !ids.contains( sortedNewOrder[i] ) )
      {
        newOrder.removeAll( sortedNewOrder[i] );
        sortedNewOrder.removeAt( i-- );
      }
    }
  }

  if ( defOrder != sortedNewOrder )
    return; // must be permutation of the default order

  mCustomLayerOrder = newOrder;
  emit customLayerOrderChanged( mCustomLayerOrder );

  if ( mHasCustomLayerOrder )
    deferredSetCanvasLayers();
}
Ejemplo n.º 12
0
// Constructor from components
Foam::labelList Foam::bandCompression(const labelListList& cellCellAddressing)
{
    labelList newOrder(cellCellAddressing.size());

    // the business bit of the renumbering
    SLList<label> nextCell;

    labelList visited(cellCellAddressing.size());

    label currentCell;
    label cellInOrder = 0;

    // reset the visited cells list
    forAll (visited, cellI)
    {
        visited[cellI] = 0;
    }

    // loop over the cells
    forAll (visited, cellI)
    {
        // find the first cell that has not been visited yet
        if (visited[cellI] == 0)
        {
            currentCell = cellI;

            // use this cell as a start
            nextCell.append(currentCell);

            // loop through the nextCell list. Add the first cell into the
            // cell order if it has not already been visited and ask for its
            // neighbours. If the neighbour in question has not been visited,
            // add it to the end of the nextCell list

            while (nextCell.size())
            {
                currentCell = nextCell.removeHead();

                if (visited[currentCell] == 0)
                {
                    visited[currentCell] = 1;

                    // add into cellOrder
                    newOrder[cellInOrder] = currentCell;
                    cellInOrder++;

                    // find if the neighbours have been visited
                    const labelList& neighbours =
                        cellCellAddressing[currentCell];

                    forAll (neighbours, nI)
                    {
                        if (visited[neighbours[nI]] == 0)
                        {
                            // not visited, add to the list
                            nextCell.append(neighbours[nI]);
                        }
                    }
                }
            }
        }
Ejemplo n.º 13
0
int main(int argc, char *argv[]) {
	
	// erstelle irgendwelche rabatte
	int i, i1;	
	for(i = 0; i < x; i++) {
		for(i1 = 0; i1 < y; i1++) {
			discounts[i][i1] = rand() % 100;
		}
	}
	
	

	while(option != 3) {

		printf("\nOptionen:\n");
		printf("1: Neue Produkte eingeben\n");
		printf("2: Neue Kunden eingeben\n");
		printf("3: Beenden\n\n");

		printf("Weitere Optionen\n");
		printf("4:  Alle Produkte auflisten\n");
		printf("5:  Alle Personen auflisten\n");
		printf("6:  Alle Aufträge auflisten\n");
		printf("7:  Neuen Auftrag anlegen\n");
		printf("8:  Auftrag bearbeiten\n");
		printf("9:  Auftrag löschen\n");
		printf("10: Person bearbeiten\n");
		printf("11: Produkt bearbeiten\n");
		printf("12: Nach Produkt suchen\n");
		printf("13: Nach Kunde suchen\n");
		printf("14. Rekusiver Warenwert\n");
		printf("15. Iterativer Warenwert\n");
		printf("16. Rabattliste");
		
		printf("\nAuswahl: ");
		scanf("%i", &option);
		Order o;
		Product p;
		Customer c;
	
		switch(option) {
			case 1:
				while(decision != 'n') {
					p = newProduct();
					getchar();
					printf("Wollen Sie noch einen Eintrag erstellen (j/n)?\n");
					scanf("%c", &decision);
					if(max_products == p.id + 1)
						resizeProductArray(&product, &max_products);
					product[p.id] = p;
					productIndex++;
				}
				decision = 'j';
			break;
			case 2:
				while(decision != 'n') {
					Customer c = newCustomer();
					getchar();
					printf("Wollen Sie noch einen Eintrag erstellen (j/n)?\n");
					scanf("%c", &decision);	
					if(max_customer == c.id + 1)
						resizeCustomerArray(&customer, &max_customer);
					customer[c.id] = c;
					customerIndex++;
				}
				decision = 'j';
			break;
			case 3: 
				printf("\nBeendet..\n");
			break;
			case 4:
				printProducts(product, productIndex);
			break;
			case 5:
				printCustomer(customer, customerIndex);
			break;
			case 6:
				printOrders(order, orderIndex);
			break;
			case 7:
				o = newOrder();
				if(max_order == c.id + 1)
					resizeOrderArray(&order, &max_order);
				order[o.id] = o;
				orderIndex++;
			break;
			case 8:
				// auftrag bearbeiten
			break;
			case 9:
				// auftrag loeschen
			break;
			case 10:
				c = searchCustomer(customer, customerIndex);
				c = editCustomer(c);
				customer[c.id] = c;
			break;
			case 11:
				p = searchProduct(product, productIndex);
				p = editProduct(p);
				product[p.id] = p;
			break;
			case 12:
				p = searchProduct(product, productIndex);
				printf("\nArtikelnummer: %i\n", p.id+1);
				printf("Artikelname: %s\n", p.name);
				printf("Artikelpreis: %0.2f\n", p.price);
				printf("Lagerbestand: %i\n", p.amount);
			break;
			case 13:
				c = searchCustomer(customer, customerIndex);
				printf("\nKundennummer: %i\n", c.id);
				printf("Kundenname: %s\n", c.name);
			break;
			case 14: 
				printf("\nAktueller Warenwert: ");
				printf("%0.2f Euro (rekursiv)\n", recursiveProductValue(product, productIndex-1));
			break;
			case 15: 
				printf("\nAktueller Warenwert: ");
				printf("%0.2f Euro (iterativ)\n", iterativeProductValue(product, productIndex-1));
			break;
			case 16:
					printf("Produkt/Anzahl");
					for(i = 0; i < x; i++) {
						for(i1 = 0; i1 < y; i1++) {
							printf("[%02i]", discounts[i][i1]);
						}
						printf("\n");
					}
			break;
			default: break;
		}
	}
}
Ejemplo n.º 14
0
void CounterInterface::onClick_pbSaveOrdered()
{
    if (orderIdProduct.length() == 0 ){

        QMessageBox::warning(this, tr("Selecione um produto"), tr("O pedido deve ter pelo menos um produto"), tr("Voltar"));

        searchProduct->eSearch->Clear();

        searchProduct->eSearch->setFocus();

        return;
    }

    if (wPaymentView->totalValueOrder > wPaymentView->totalPaid){

        int op = QMessageBox::question(this, tr("Preço pago insuficiente"), tr("O valor pago é insuficiente para pagar o pedido.\nDeseja salvar o pedido dessa forma?"), tr("Sim"), tr("Não"));

        if (op == 1)
            return;
    }

    bool client = true;

    if (wPaymentView->idClient == 0 && wPaymentView->ePhone->isEmpty() && wPaymentView->ePhoneBusiness->isEmpty()){
        client = false;
    }

    // se o cliente tiver sido selecionado, ele vai verificar se o cliente se foi alterado
    if (! wPaymentView->idClient == 0){
        wPaymentView->dataClientF.clear();

        if (wPaymentView->typeClient == wPaymentView->NORMAL){

            wPaymentView->dataClientF << QString::number(wPaymentView->idClient) << wPaymentView->eName->text() << wPaymentView->ePhone->text() << wPaymentView->eStreet->text() << wPaymentView->eNumber->text() << wPaymentView->eComplement->text() << wPaymentView->eDistrict->text() << wPaymentView->eCep->text() << QString::number(wPaymentView->DSBShipping->value()) << wPaymentView->teNotes->toPlainText();

        }else{

            wPaymentView->dataClientF << QString::number(wPaymentView->idClient) << wPaymentView->eNameContactBusiness->text() << wPaymentView->eNameBusiness->text() << wPaymentView->eFantasyNameBusiness->text() << wPaymentView->eCNPJBusiness->text() << wPaymentView->ePhoneBusiness->text() << wPaymentView->eStreetBusiness->text() << wPaymentView->eNumberBusiness->text() << wPaymentView->eComplementBusiness->text() << wPaymentView->eDistrictBusiness->text() << wPaymentView->eCepBusiness->text() << QString::number(wPaymentView->DSBShippingBusiness->value()) << wPaymentView->teNotesBusiness->toPlainText();

        }

        bool equal = true;

        for (int i = 0; i < wPaymentView->dataClientI.length(); i++){
            if (wPaymentView->dataClientI[i] != wPaymentView->dataClientF[i]){
                equal = false;
                break;
            }
        }

        if (! equal){
            int op = QMessageBox::question(this, tr("Alteração do cliente."), tr("Tiveram alterações no cliente.\nDeseja salvá-las?"), "Sim", "Não");

            if (op == 0)
                if (! wPaymentView->order->updateClient(wPaymentView->dataClientF))
                    qDebug() << "[CounterInterface] [Botão Salvar Pedido]";
        }
    }

    if ((!(wPaymentView->ePhone->isEmpty() && wPaymentView->ePhoneBusiness->isEmpty())) && wPaymentView->idClient == 0){
        if (wPaymentView->typeClient == wPaymentView->NORMAL){
            if (isAvailable()){
                //seta os valores

                wPaymentView->idClient = order->nextIdClient();

                wPaymentView->order->phone = wPaymentView->ePhone->text();
                wPaymentView->order->name = wPaymentView->eName->text();
                wPaymentView->order->cep = wPaymentView->eCep->text();
                wPaymentView->order->street = wPaymentView->eStreet->text();
                wPaymentView->order->number = wPaymentView->eNumber->text();
                wPaymentView->order->complement = wPaymentView->eComplement->text();
                wPaymentView->order->district = wPaymentView->eDistrict->text();
                wPaymentView->order->shipping = wPaymentView->DSBShipping->value();
                wPaymentView->order->note = wPaymentView->teNotes->toPlainText();

                wPaymentView->order->insertClient();
            }
        }else{
            if (isAvailableBusiness()){
                //seta os valores

                wPaymentView->idClient = wPaymentView->order->nextIdClient();

                wPaymentView->order->phone = wPaymentView->ePhoneBusiness->text();
                wPaymentView->order->nameRespondible = wPaymentView->eNameContactBusiness->text();
                wPaymentView->order->cep = wPaymentView->eCepBusiness->text();
                wPaymentView->order->street = wPaymentView->eStreetBusiness->text();
                wPaymentView->order->number = wPaymentView->eNumberBusiness->text();
                wPaymentView->order->complement = wPaymentView->eComplementBusiness->text();
                wPaymentView->order->district = wPaymentView->eDistrictBusiness->text();
                wPaymentView->order->shipping = wPaymentView->DSBShipping->value();
                wPaymentView->order->note = wPaymentView->teNotesBusiness->toPlainText();
                wPaymentView->order->corporateName = wPaymentView->eNameBusiness->text();
                wPaymentView->order->CNPJ = wPaymentView->eCNPJBusiness->text();
                wPaymentView->order->fantasyName = wPaymentView->eFantasyNameBusiness->text();

                wPaymentView->order->insertClient();
            }
        }
    }

    wPaymentView->order->isAdd = isAdd;
    wPaymentView->order->typeClient = wPaymentView->typeClient;
    wPaymentView->order->idClient = wPaymentView->idClient;
    wPaymentView->order->totalValueOrderProducts = wPaymentView->totalValueOrder;
    wPaymentView->order->valuePaid = wPaymentView->totalPaid;
    wPaymentView->order->valueShipping = wPaymentView->DSBShipping->value();
    wPaymentView->order->orderQuantity = orderQuantity;
    wPaymentView->order->orderValues = orderValues;
    wPaymentView->order->orderSizes = orderSizes;
    wPaymentView->order->orderPartProduct = orderPartProduct;
    wPaymentView->order->orderIdProduct = orderIdProduct;
    wPaymentView->order->orderNameProduct = orderNameProduct;
    wPaymentView->order->orderNoteProduct = orderNoteProduct;

    QList<QString> orderPaymentForm;
    QList<QString> orderPaymentFormValue;

    if (wPaymentView->tablePaymentForm->model()->rowCount() > 0){
        for (int i = 0; i < wPaymentView->tablePaymentForm->model()->rowCount(); i++){
            orderPaymentForm << wPaymentView->tablePaymentForm->model()->index(i, 0).data().toString();
            orderPaymentFormValue << wPaymentView->tablePaymentForm->model()->index(i, 1).data().toString();
        }
    }

    wPaymentView->order->orderPaymentForm = orderPaymentForm;
    wPaymentView->order->orderPaymentFormValue = orderPaymentFormValue;

    wPaymentView->order->typeOrder = Order::COUNTER;

    if (wPaymentView->order->insertOrder())
    {
        int op = QMessageBox::question(this, tr("Salvo com sucesso"), tr("Pedido salvo com sucesso.\nDeseja imprimir o pedido agora?"), tr("Sim"), tr("Não"));

        if (op == 0)
            html.print(html.createHTMLOrder(order->idOrder.toInt()));
    }

    emit newOrder();

    clearOrder();
}