Ejemplo n.º 1
0
void CounterInterface::onClick_pbCancelOrdered(){
    int op = QMessageBox::question(this, tr("Deleter todos os itens."),tr("Tem certeza que deseja cancelar este pedido?"), tr("Sim"), tr("Não"));

    if (op == 0){
        clearOrder();
    }
}
Ejemplo n.º 2
0
Archivo: TSP.c Proyecto: Subs101/Subs
double nearestNeighbor(struct Arr2D* tour,int seed)
{
	int x1,x2,y1,y2,i;
	int a = 0;
	int temp;
	int order_index = 0;
	double distAB = 0.0f;
	double minDistAB;
	double totalDist = 0;
	
	
	clearOrder(tour);
	a = seed;
	tour->array[ORDER][a] = order_index;
	order_index++;
	
	
	while(visitedAll(tour) == -1)
	{
		distAB = BIG_NUM;
		minDistAB = BIG_NUM;
		
		
		
		for (i = 0; i< tour->size[CITY]; i++)
		{	
			if(tour->array[ORDER][i] == -1)
			{
				x1 = tour->array[X][a];
				x2 = tour->array[X][i];
				
				y1 = tour->array[Y][a];
				y2 = tour->array[Y][i];
			
				distAB = euclidDist(x1,x2,y1,y2);
		
				if(distAB < minDistAB)
				{
					minDistAB = distAB;
					
					temp = i;
				}
			}
			else{
				
			}
	
		}
		totalDist += minDistAB;
		tour->array[ORDER][temp] = order_index;
		
		a = temp;
		temp = -1;
		
		order_index++;
		
		
		
	}
	
	//add an edge from last visited to start point
	totalDist+= addRoundTrip(tour);
	
	
	
	return totalDist;
	
}
Ejemplo n.º 3
0
Archivo: TSP.c Proyecto: Subs101/Subs
int RepNearestNeighbor(struct Arr2D* tour)
{
	int x1,x2,y1,y2,i,j;
	int seed;
	int a = 0;
	int temp;
	
	int order_index = 0;
	
	double distAB = BIG_NUM;
	double minDistAB = BIG_NUM;
	double totalDist = BIG_NUM;
	double minTotalDist = BIG_NUM;

	
	
	for(j = 0; j < tour->size[CITY];j++)
	{
		a = j;
		order_index = 0;
		totalDist = 0;
		clearOrder(tour);
	
		tour->array[ORDER][a] = order_index;
		order_index++;
	
		while(visitedAll(tour) == -1)
		{
			distAB = BIG_NUM;
			minDistAB = BIG_NUM;
		
			for (i = 0; i< tour->size[CITY]; i++)
			{	
				if(tour->array[ORDER][i] == -1 && i != a)
				{
					x1 = tour->array[X][a];
					x2 = tour->array[X][i];
				
					y1 = tour->array[Y][a];
					y2 = tour->array[Y][i];
			
					distAB = euclidDist(x1,x2,y1,y2);
		
					if(distAB < minDistAB)
					{
						
						minDistAB = distAB;
						
						temp = i;
					}
				}
				else{
				
					}
	
			}
			
			totalDist += minDistAB;
			tour->array[ORDER][temp] = order_index;
			a = temp;
		
			order_index++;
			

		}
	
		//add an edge from last visited to start point
		totalDist+=addRoundTrip(tour);
	
	
		
		if( totalDist < minTotalDist)
		{
			minTotalDist = totalDist;
			seed = j;
			
		}
	
	}
	
	
	
	
	return seed;
	
}
Ejemplo n.º 4
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();
}