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(); } }
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; }
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; }
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(); }