13-07-2024, Saat: 09:52
selamlar kodumda bir yerde bir hata var ama çözemedik. ikinci else alanı işlem görmüyor
procedure TForm7.urunEkle;
var
useresponse2: Integer;
productID, productName, productCode, barcode,guncelleme: string;
price7, price1, price2, n11Price, hbPrice, trendyolSalePrice, idefixSalePrice, price6, n11_commission, hb_commission, eptt_commission, trendyol_commission: Double;
hbProductUrl, n11ProductUrl, trendyolProductUrl: string;
hb_price_min, hb_price_max, trendyol_price_min, trendyol_price_max, n11_price_min, n11_price_max: Double;
sqlChanged: Boolean;
begin
sqlChanged := False;
useresponse2 := MessageDlg('Eşitleme yapmak istediğinizden emin misiniz? Bu işlem geri alınamaz.', mtConfirmation, [mbYes, mbNo], 0);
if useresponse2 = mrYes then
begin
ZQSQL.SQL.Text := 'SELECT product_id FROM product_quantity WHERE quantity >= 1';
ZQSQL.Open;
ZQMySQLAd.SQL.Text := 'SELECT urun_id FROM veriler ';
ZQMySQLAd.Open;
ZQMySQLAd.First;
ZMySQL.StartTransaction;
try
while not ZQMySQLAd.Eof do
begin
ZQSQLAd.SQL.Text := 'SELECT product_quantity.product_id, product_quantity.quantity, product.status ' +
'FROM product_quantity ' +
'LEFT JOIN product ON product_quantity.product_id = product.id ' +
'WHERE product_quantity.product_id = :productID AND product.status = 0';
ZQSQLAd.ParamByName('productID').AsString := ZQMySQLAd.FieldByName('urun_id').AsString;
ZQSQLAd.Open;
if ZQSQLAd.Eof or (ZQSQLAd.FieldByName('quantity').AsInteger = 0) or (ZQSQLAd.FieldByName('status').AsInteger = 0) then
begin
zymysqfiyat.SQL.Text := 'DELETE FROM veriler WHERE urun_id = :productID';
zymysqfiyat.ParamByName('productID').AsString := ZQMySQLAd.FieldByName('urun_id').AsString;
zymysqfiyat.ExecSQL;
end;
ZQSQLAd.Close;
ZQMySQLAd.Next;
end;
ZQMySQLAd.Close;
ZQSQL.First;
while not ZQSQL.Eof do
begin
productID := ZQSQL.FieldByName('product_id').AsString;
ZQSQLAd.SQL.Text := 'SELECT productname, productcode, barcode, n11_commission, hb_commission, eptt_commission, trendyol_commission, ' +
'hb_product_url, n11_product_url, trendyol_product_url, status ' +
'FROM product WHERE id = :productID AND status > 0';
ZQSQLAd.ParamByName('productID').AsString := productID;
ZQSQLAd.Open;
if not ZQSQLAd.Eof then
begin
productName := ZQSQLAd.FieldByName('productname').AsString;
productCode := ZQSQLAd.FieldByName('productcode').AsString;
barcode := ZQSQLAd.FieldByName('barcode').AsString;
n11_commission := ZQSQLAd.FieldByName('n11_commission').AsFloat;
hb_commission := ZQSQLAd.FieldByName('hb_commission').AsFloat;
eptt_commission := ZQSQLAd.FieldByName('eptt_commission').AsFloat;
trendyol_commission := ZQSQLAd.FieldByName('trendyol_commission').AsFloat;
hbProductUrl := ZQSQLAd.FieldByName('hb_product_url').AsString;
n11ProductUrl := ZQSQLAd.FieldByName('n11_product_url').AsString;
trendyolProductUrl := ZQSQLAd.FieldByName('trendyol_product_url').AsString;
zsqlfiyat.SQL.Text := 'SELECT price7, price1, price2, n11_price, hb_price, trendyol_saleprice, idefix_sale_price, price6 ' +
'FROM product_prices WHERE product_id = :productID';
zsqlfiyat.ParamByName('productID').AsString := productID;
zsqlfiyat.Open;
if not zsqlfiyat.Eof then
begin
price1 := Round(zsqlfiyat.FieldByName('price1').AsFloat * 1.20);
price2 := Round(zsqlfiyat.FieldByName('price2').AsFloat * 1.20);
price6 := Round(zsqlfiyat.FieldByName('price6').AsFloat * 1.20);
price7 := Round(zsqlfiyat.FieldByName('price7').AsFloat * 1.20);
ZQMySQLAd.SQL.Text := 'SELECT smartlinkfiyati, n11komisyon, hepsiburadakomisyon, trendyolkomison, idefixkomisyon, maliyet, ' +
'listefiyati, n11fiyati, hepsiburadafiyati, trendyolfiyati, idefixfiyati, ozelmaliyet, ' +
'hb_product_url, n11_product_url, trendyol_product_url, ' +
'hepsiburadarekabetalt, hepsiburadarekabetust, trednyolrekabetalt, trendyolrekabetust, n11rekabetalt, n11rekabetust, barcode, ' +
'hbhc, tdhc, idehc, n11hc, tdminhc, tdmaxhc, hbminhc, hbmaxhc, n11minhc, n11maxhc,guncelleme ' +
'FROM veriler WHERE urun_id = :productID';
ZQMySQLAd.ParamByName('productID').AsString := productID;
ZQMySQLAd.Open;
;
if (ZQMySQLAd.FieldByName('n11komisyon').AsFloat <> n11_commission) or (ZQMySQLAd.FieldByName('smartlinkfiyati').AsFloat <> price2) then
n11Price := Round((price2 / (1 - (n11_commission / 100))))
else
n11Price := zsqlfiyat.FieldByName('n11_price').AsFloat;
if (ZQMySQLAd.FieldByName('hepsiburadakomisyon').AsFloat <> hb_commission) or (ZQMySQLAd.FieldByName('smartlinkfiyati').AsFloat <> price2) then
hbPrice := Round((price2 / (1 - (hb_commission / 100))))
else
hbPrice := Round(zsqlfiyat.FieldByName('hb_price').AsFloat * 1.20);
if (ZQMySQLAd.FieldByName('trendyolkomison').AsFloat <> trendyol_commission) or (ZQMySQLAd.FieldByName('smartlinkfiyati').AsFloat <> price2) then
trendyolSalePrice := Round((price2 / (1 - (trendyol_commission / 100))))
else
trendyolSalePrice := Round(zsqlfiyat.FieldByName('trendyol_saleprice').AsFloat * 1.20);
if (ZQMySQLAd.FieldByName('idefixkomisyon').AsFloat <> eptt_commission) or (ZQMySQLAd.FieldByName('smartlinkfiyati').AsFloat <> price2) then
idefixSalePrice := Round((price2 / (1 - (eptt_commission / 100))))
else
idefixSalePrice := Round(zsqlfiyat.FieldByName('idefix_sale_price').AsFloat * 1.20);
hb_price_min := hbPrice;
hb_price_max := Round(hb_price_min * 1.20);
trendyol_price_min := trendyolSalePrice;
trendyol_price_max := Round(trendyol_price_min * 1.20);
n11_price_min := n11Price;
n11_price_max := Round(n11_price_min * 1.20);
if ZQMySQLAd.FieldByName('guncelleme').AsString<>'' then
begin
guncelleme := ZQMySQLAd.FieldByName('guncelleme').AsString;
end;
if not ZQMySQLAd.Eof then
begin
// `price2` değişmişse tüm alanları güncelle
if (ZQMySQLAd.FieldByName('smartlinkfiyati').AsFloat <> price2)
then
begin
ShowMessage('sener'+(ZQMySQLAd.FieldByName('smartlinkfiyati').asstring)+productName);
ShowMessage(floattostr(price2)+productName) ;
zymysqfiyat.SQL.Clear;
zymysqfiyat.SQL.Add('UPDATE veriler SET ');
zymysqfiyat.SQL.Add('smartlinkfiyati = :price2, ');
zymysqfiyat.SQL.Add('n11komisyon = :n11_commission, ');
zymysqfiyat.SQL.Add('hepsiburadakomisyon = :hb_commission, ');
zymysqfiyat.SQL.Add('trendyolkomison = :trendyol_commission, ');
zymysqfiyat.SQL.Add('idefixkomisyon = :eptt_commission, ');
zymysqfiyat.SQL.Add('maliyet = :price6, ');
zymysqfiyat.SQL.Add('ozelmaliyet = :price7, ');
zymysqfiyat.SQL.Add('listefiyati = :price1, ');
zymysqfiyat.SQL.Add('hb_product_url = :hbProductUrl, ');
zymysqfiyat.SQL.Add('n11_product_url = :n11ProductUrl, ');
zymysqfiyat.SQL.Add('trendyol_product_url = :trendyolProductUrl, ');
zymysqfiyat.SQL.Add('hepsiburadarekabetalt = :hb_price_min, ');
zymysqfiyat.SQL.Add('hepsiburadarekabetust = :hb_price_max, ');
zymysqfiyat.SQL.Add('trednyolrekabetalt = :trendyol_price_min, ');
zymysqfiyat.SQL.Add('trendyolrekabetust = :trendyol_price_max, ');
zymysqfiyat.SQL.Add('n11rekabetalt = :n11_price_min, ');
zymysqfiyat.SQL.Add('n11rekabetust = :n11_price_max, ');
zymysqfiyat.SQL.Add('barcode = :barcode, ');
if guncelleme<>'' then
begin
zymysqfiyat.SQL.Add('guncelleme = :guncelleme, ');
sqlChanged := True;
end;
// H olmayanlar için kontroller
if (ZQMySQLAd.FieldByName('guncelleme').AsString <> 'H')then
begin
if (ZQMySQLAd.FieldByName('n11hc').AsString <> 'H')then
begin
zymysqfiyat.SQL.Add('n11fiyati = :n11Price, ');
zymysqfiyat.ParamByName('n11Price').AsFloat := n11Price;
sqlChanged := True;
end;
if (ZQMySQLAd.FieldByName('hbhc').AsString <> 'H')then
begin
zymysqfiyat.SQL.Add('hepsiburadafiyati = :hbPrice, ');
zymysqfiyat.ParamByName('hbPrice').AsFloat := hbPrice;
sqlChanged := True;
end;
if (ZQMySQLAd.FieldByName('tdhc').AsString <> 'H')then
begin
zymysqfiyat.SQL.Add('trendyolfiyati = :trendyolSalePrice, ');
zymysqfiyat.ParamByName('trendyolSalePrice').AsFloat := trendyolSalePrice;
sqlChanged := True;
end;
if (ZQMySQLAd.FieldByName('idehc').AsString <> 'H')then
begin
zymysqfiyat.SQL.Add('idefixfiyati = :idefixSalePrice, ');
zymysqfiyat.ParamByName('idefixSalePrice').AsFloat := idefixSalePrice;
sqlChanged := True;
end;
if (ZQMySQLAd.FieldByName('tdminhc').AsString <> 'H')then
begin
zymysqfiyat.SQL.Add('trednyolrekabetalt = :trendyol_price_min, ');
zymysqfiyat.ParamByName('trendyol_price_min').AsFloat := trendyol_price_min;
sqlChanged := True;
end;
if (ZQMySQLAd.FieldByName('tdmaxhx').AsString <> 'H')then
begin
zymysqfiyat.SQL.Add('trendyolrekabetust = :trendyol_price_max, ');
zymysqfiyat.ParamByName('trendyol_price_max').AsFloat := trendyol_price_max;
sqlChanged := True;
end;
if (ZQMySQLAd.FieldByName('hbminhx').AsString <> 'H')then
begin
zymysqfiyat.SQL.Add('hepsiburadarekabetalt = :hb_price_min, ');
zymysqfiyat.ParamByName('hb_price_min').AsFloat := hb_price_min;
sqlChanged := True;
end;
if (ZQMySQLAd.FieldByName('hbmaxhc').AsString <> 'H')then
begin
zymysqfiyat.SQL.Add('hepsiburadarekabetust = :hb_price_max, ');
zymysqfiyat.ParamByName('hb_price_max').AsFloat := hb_price_max;
sqlChanged := True;
end;
if (ZQMySQLAd.FieldByName('n11minhc').AsString <> 'H')then
begin
zymysqfiyat.SQL.Add('n11rekabetalt = :n11_price_min, ');
zymysqfiyat.ParamByName('n11_price_min').AsFloat := n11_price_min;
sqlChanged := True;
end;
if (ZQMySQLAd.FieldByName('n11max').AsString <> 'H')then
begin
zymysqfiyat.SQL.Add('n11rekabetust = :n11_price_max, ');
zymysqfiyat.ParamByName('n11_price_max').AsFloat := n11_price_max;
sqlChanged := True;
end;
end; // Son virgülü kaldır
if zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1].EndsWith(', ') then
zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1] := zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1].Substring(0, zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1].Length - 2);
// zymysqfiyat.SQL.Add(' WHERE urun_id = :productID');
// Parametrelerin atanması
zymysqfiyat.ParamByName('price2').AsFloat := price2;
zymysqfiyat.ParamByName('n11_commission').AsFloat := n11_commission;
zymysqfiyat.ParamByName('hb_commission').AsFloat := hb_commission;
zymysqfiyat.ParamByName('trendyol_commission').AsFloat := trendyol_commission;
zymysqfiyat.ParamByName('eptt_commission').AsFloat := eptt_commission;
zymysqfiyat.ParamByName('price6').AsFloat := price6;
zymysqfiyat.ParamByName('price7').AsFloat := price7;
zymysqfiyat.ParamByName('price1').AsFloat := price1;
zymysqfiyat.ParamByName('hbProductUrl').AsString := hbProductUrl;
zymysqfiyat.ParamByName('n11ProductUrl').AsString := n11ProductUrl;
zymysqfiyat.ParamByName('trendyolProductUrl').AsString := trendyolProductUrl;
zymysqfiyat.ParamByName('hb_price_min').AsFloat := hb_price_min;
zymysqfiyat.ParamByName('hb_price_max').AsFloat := hb_price_max;
zymysqfiyat.ParamByName('trendyol_price_min').AsFloat := trendyol_price_min;
zymysqfiyat.ParamByName('trendyol_price_max').AsFloat := trendyol_price_max;
zymysqfiyat.ParamByName('n11_price_min').AsFloat := n11_price_min;
zymysqfiyat.ParamByName('n11_price_max').AsFloat := n11_price_max;
zymysqfiyat.ParamByName('barcode').AsString := barcode;
if guncelleme<>'' then
begin
zymysqfiyat.ParamByName('guncelleme').AsString := guncelleme;
end;
if sqlChanged then
begin
zymysqfiyat.SQL.Add(' WHERE urun_id = :productID');
zymysqfiyat.ParamByName('productID').AsString := productID;
zymysqfiyat.ExecSQL;
end;
end
//eğer komisyonlar değişmiş ise
else if (ZQMySQLAd.FieldByName('n11komisyon').AsFloat <> n11_commission)
or (ZQMySQLAd.FieldByName('hepsiburadakomisyon').AsFloat <> hb_commission) or
(ZQMySQLAd.FieldByName('trendyolkomison').AsFloat <> trendyol_commission) or
(ZQMySQLAd.FieldByName('idefixkomisyon').AsFloat <> eptt_commission)
then
begin
ShowMessage('sener'+(ZQMySQLAd.FieldByName('smartlinkfiyati').asstring)+productName);
ShowMessage(floattostr(price2)+productName) ;
zymysqfiyat.SQL.Clear;
zymysqfiyat.SQL.Add('UPDATE veriler SET ');
zymysqfiyat.SQL.Add('smartlinkfiyati = :price2, ');
zymysqfiyat.SQL.Add('n11komisyon = :n11_commission, ');
zymysqfiyat.SQL.Add('hepsiburadakomisyon = :hb_commission, ');
zymysqfiyat.SQL.Add('trendyolkomison = :trendyol_commission, ');
zymysqfiyat.SQL.Add('idefixkomisyon = :eptt_commission, ');
zymysqfiyat.SQL.Add('maliyet = :price6, ');
zymysqfiyat.SQL.Add('ozelmaliyet = :price7, ');
zymysqfiyat.SQL.Add('listefiyati = :price1, ');
zymysqfiyat.SQL.Add('hb_product_url = :hbProductUrl, ');
zymysqfiyat.SQL.Add('n11_product_url = :n11ProductUrl, ');
zymysqfiyat.SQL.Add('trendyol_product_url = :trendyolProductUrl, ');
zymysqfiyat.SQL.Add('hepsiburadarekabetalt = :hb_price_min, ');
zymysqfiyat.SQL.Add('hepsiburadarekabetust = :hb_price_max, ');
zymysqfiyat.SQL.Add('trednyolrekabetalt = :trendyol_price_min, ');
zymysqfiyat.SQL.Add('trendyolrekabetust = :trendyol_price_max, ');
zymysqfiyat.SQL.Add('n11rekabetalt = :n11_price_min, ');
zymysqfiyat.SQL.Add('n11rekabetust = :n11_price_max, ');
zymysqfiyat.SQL.Add('barcode = :barcode, ');
zymysqfiyat.SQL.Add('n11fiyati = :n11Price, ');
zymysqfiyat.ParamByName('n11Price').AsFloat := n11Price;
zymysqfiyat.SQL.Add('hepsiburadafiyati = :hbPrice, ');
zymysqfiyat.ParamByName('hbPrice').AsFloat := hbPrice;
zymysqfiyat.SQL.Add('trendyolfiyati = :trendyolSalePrice, ');
zymysqfiyat.ParamByName('trendyolSalePrice').AsFloat := trendyolSalePrice;
zymysqfiyat.SQL.Add('idefixfiyati = :idefixSalePrice, ');
zymysqfiyat.ParamByName('idefixSalePrice').AsFloat := idefixSalePrice;
zymysqfiyat.SQL.Add('trednyolrekabetalt = :trendyol_price_min, ');
zymysqfiyat.ParamByName('trendyol_price_min').AsFloat := trendyol_price_min;
zymysqfiyat.SQL.Add('trendyolrekabetust = :trendyol_price_max, ');
zymysqfiyat.ParamByName('trendyol_price_max').AsFloat := trendyol_price_max;
zymysqfiyat.SQL.Add('hepsiburadarekabetalt = :hb_price_min, ');
zymysqfiyat.ParamByName('hb_price_min').AsFloat := hb_price_min;
zymysqfiyat.SQL.Add('hepsiburadarekabetust = :hb_price_max, ');
zymysqfiyat.ParamByName('hb_price_max').AsFloat := hb_price_max;
zymysqfiyat.SQL.Add('n11rekabetalt = :n11_price_min, ');
zymysqfiyat.ParamByName('n11_price_min').AsFloat := n11_price_min;
zymysqfiyat.SQL.Add('n11rekabetust = :n11_price_max, ');
zymysqfiyat.ParamByName('n11_price_max').AsFloat := n11_price_max;
// Son virgülü kaldır
if zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1].EndsWith(', ') then
zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1] := zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1].Substring(0, zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1].Length - 2);
// zymysqfiyat.SQL.Add(' WHERE urun_id = :productID');
// Parametrelerin atanması
zymysqfiyat.ParamByName('price2').AsFloat := price2;
zymysqfiyat.ParamByName('n11_commission').AsFloat := n11_commission;
zymysqfiyat.ParamByName('hb_commission').AsFloat := hb_commission;
zymysqfiyat.ParamByName('trendyol_commission').AsFloat := trendyol_commission;
zymysqfiyat.ParamByName('eptt_commission').AsFloat := eptt_commission;
zymysqfiyat.ParamByName('price6').AsFloat := price6;
zymysqfiyat.ParamByName('price7').AsFloat := price7;
zymysqfiyat.ParamByName('price1').AsFloat := price1;
zymysqfiyat.ParamByName('hbProductUrl').AsString := hbProductUrl;
zymysqfiyat.ParamByName('n11ProductUrl').AsString := n11ProductUrl;
zymysqfiyat.ParamByName('trendyolProductUrl').AsString := trendyolProductUrl;
zymysqfiyat.ParamByName('hb_price_min').AsFloat := hb_price_min;
zymysqfiyat.ParamByName('hb_price_max').AsFloat := hb_price_max;
zymysqfiyat.ParamByName('trendyol_price_min').AsFloat := trendyol_price_min;
zymysqfiyat.ParamByName('trendyol_price_max').AsFloat := trendyol_price_max;
zymysqfiyat.ParamByName('n11_price_min').AsFloat := n11_price_min;
zymysqfiyat.ParamByName('n11_price_max').AsFloat := n11_price_max;
zymysqfiyat.ParamByName('barcode').AsString := barcode;
zymysqfiyat.SQL.Add(' WHERE urun_id = :productID');
zymysqfiyat.ParamByName('productID').AsString := productID;
zymysqfiyat.ExecSQL;
end
else burası çalışmıyor
begin
ShowMessage('Product ID: ' + productID + ' | Güncelleme: ' + ZQMySQLAd.FieldByName('guncelleme').AsString);
zymysqfiyat.SQL.Clear;
zymysqfiyat.SQL.Add('UPDATE veriler SET ');
if ZQMySQLAd.FieldByName('maliyet').AsFloat <> price6 then
begin
zymysqfiyat.SQL.Add('maliyet = :price6, ');
zymysqfiyat.ParamByName('price6').AsFloat := price6;
sqlChanged := True;
end;
if ZQMySQLAd.FieldByName('ozelmaliyet').AsFloat <> price7 then
begin
zymysqfiyat.SQL.Add('ozelmaliyet = :price7, ');
zymysqfiyat.ParamByName('price7').AsFloat := price7;
sqlChanged := True;
end;
if ZQMySQLAd.FieldByName('hb_product_url').AsString <> hbProductUrl then
begin
zymysqfiyat.SQL.Add('hb_product_url = :hbProductUrl, ');
zymysqfiyat.ParamByName('hbProductUrl').AsString := hbProductUrl;
sqlChanged := True;
end;
if ZQMySQLAd.FieldByName('n11_product_url').AsString <> n11ProductUrl then
begin
zymysqfiyat.SQL.Add('n11_product_url = :n11ProductUrl, ');
zymysqfiyat.ParamByName('n11ProductUrl').AsString := n11ProductUrl;
sqlChanged := True;
end;
if ZQMySQLAd.FieldByName('trendyol_product_url').AsString <> trendyolProductUrl then
begin
zymysqfiyat.SQL.Add('trendyol_product_url = :trendyolProductUrl, ');
zymysqfiyat.ParamByName('trendyolProductUrl').AsString := trendyolProductUrl;
sqlChanged := True;
end;
if ZQMySQLAd.FieldByName('n11komisyon').AsFloat <> n11_commission then
begin
zymysqfiyat.SQL.Add('n11komisyon = :n11_commission, ');
zymysqfiyat.ParamByName('n11_commission').AsFloat := n11_commission;
sqlChanged := True;
end;
if ZQMySQLAd.FieldByName('hepsiburadakomisyon').AsFloat <> hb_commission then
begin
zymysqfiyat.SQL.Add('hepsiburadakomisyon = :hb_commission, ');
zymysqfiyat.ParamByName('hb_commission').AsFloat := hb_commission;
sqlChanged := True;
end;
if ZQMySQLAd.FieldByName('trendyolkomison').AsFloat <> trendyol_commission then
begin
zymysqfiyat.SQL.Add('trendyolkomison = :trendyol_commission, ');
zymysqfiyat.ParamByName('trendyol_commission').AsFloat := trendyol_commission;
sqlChanged := True;
end;
if ZQMySQLAd.FieldByName('idefixkomisyon').AsFloat <> eptt_commission then
begin
zymysqfiyat.SQL.Add('idefixkomisyon = :eptt_commission, ');
zymysqfiyat.ParamByName('eptt_commission').AsFloat := eptt_commission;
sqlChanged := True;
end;
if ZQMySQLAd.FieldByName('n11fiyati').AsFloat <> n11Price then
begin
ShowMessage(floattostr(n11Price));
if ZQMySQLAd.FieldByName('n11hc').AsString <> 'H' then
begin
zymysqfiyat.SQL.Add('n11hc = :n11hc, ');
zymysqfiyat.SQL.Add('n11minhc = :n11minhc, ');
zymysqfiyat.SQL.Add('n11maxhc = :n11maxhc, ');
zymysqfiyat.ParamByName('n11hc').AsString := 'H';
zymysqfiyat.ParamByName('n11minhc').AsString := 'H';
zymysqfiyat.ParamByName('n11maxhc').AsString := 'H';
end;
zymysqfiyat.SQL.Add('n11fiyati = :n11Price, ');
zymysqfiyat.ParamByName('n11Price').AsFloat := n11Price;
sqlChanged := True;
end;
if ZQMySQLAd.FieldByName('hepsiburadafiyati').AsFloat <> hbPrice then
begin
zymysqfiyat.SQL.Add('hepsiburadafiyati = :hbPrice, ');
if ZQMySQLAd.FieldByName('hbhc').AsString <> 'H' then
begin
zymysqfiyat.SQL.Add('hbhc = :hbhc, ');
zymysqfiyat.SQL.Add('hbminhc = :hbminhc, ');
zymysqfiyat.SQL.Add('hbmaxhc = :hbmaxhc, ');
zymysqfiyat.ParamByName('hbhc').AsString := 'H';
zymysqfiyat.ParamByName('hbminhc').AsString := 'H';
zymysqfiyat.ParamByName('hbmaxhc').AsString := 'H';
end;
zymysqfiyat.ParamByName('hbPrice').AsFloat := hbPrice;
sqlChanged := True;
end;
if ZQMySQLAd.FieldByName('trendyolfiyati').AsFloat <> trendyolSalePrice then
begin
zymysqfiyat.SQL.Add('trendyolfiyati = :trendyolSalePrice, ');
if ZQMySQLAd.FieldByName('hbhc').AsString <> 'H' then
begin
zymysqfiyat.SQL.Add('tdhc = :tdhc, ');
zymysqfiyat.SQL.Add('tdminhc = :tdminhc, ');
zymysqfiyat.SQL.Add('tdmaxhc = :tdmaxhc, ');
zymysqfiyat.ParamByName('tdhc').AsString := 'H';
zymysqfiyat.ParamByName('tdminhc').AsString := 'H';
zymysqfiyat.ParamByName('tdmaxhc').AsString := 'H';
end;
zymysqfiyat.ParamByName('trendyolSalePrice').AsFloat := trendyolSalePrice;
sqlChanged := True;
end;
if ZQMySQLAd.FieldByName('idefixfiyati').AsFloat <> idefixSalePrice then
begin
zymysqfiyat.SQL.Add('idefixfiyati = :idefixSalePrice, ');
if ZQMySQLAd.FieldByName('hbhc').AsString <> 'H' then
begin
zymysqfiyat.SQL.Add('idehc = :idehc, ');
zymysqfiyat.ParamByName('idehc').AsString := 'H';
end;
zymysqfiyat.ParamByName('idefixSalePrice').AsFloat := idefixSalePrice;
sqlChanged := True;
end;
if ZQMySQLAd.FieldByName('trednyolrekabetalt').AsFloat <> trendyol_price_min then
begin
zymysqfiyat.SQL.Add('trednyolrekabetalt = :trendyol_price_min, ');
zymysqfiyat.ParamByName('trendyol_price_min').AsFloat := trendyol_price_min;
sqlChanged := True;
end;
if ZQMySQLAd.FieldByName('trendyolrekabetust').AsFloat <> trendyol_price_max then
begin
zymysqfiyat.SQL.Add('trendyolrekabetust = :trendyol_price_max, ');
zymysqfiyat.ParamByName('trendyol_price_max').AsFloat := trendyol_price_max;
sqlChanged := True;
end;
if ZQMySQLAd.FieldByName('hepsiburadarekabetalt').AsFloat <> hb_price_min then
begin
zymysqfiyat.SQL.Add('hepsiburadarekabetalt = :hb_price_min, ');
zymysqfiyat.ParamByName('hb_price_min').AsFloat := hb_price_min;
sqlChanged := True;
end;
if ZQMySQLAd.FieldByName('hepsiburadarekabetust').AsFloat <> hb_price_max then
begin
zymysqfiyat.SQL.Add('hepsiburadarekabetust = :hb_price_max, ');
zymysqfiyat.ParamByName('hb_price_max').AsFloat := hb_price_max;
sqlChanged := True;
end;
if ZQMySQLAd.FieldByName('n11rekabetalt').AsFloat <> n11_price_min then
begin
zymysqfiyat.SQL.Add('n11rekabetalt = :n11_price_min, ');
zymysqfiyat.ParamByName('n11_price_min').AsFloat := n11_price_min;
sqlChanged := True;
end;
if ZQMySQLAd.FieldByName('n11rekabetust').AsFloat <> n11_price_max then
begin
zymysqfiyat.SQL.Add('n11rekabetust = :n11_price_max, ');
zymysqfiyat.ParamByName('n11_price_max').AsFloat := n11_price_max;
sqlChanged := True;
end;
// Son virgülü kaldır
if zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1].EndsWith(', ') then
zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1] := zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1].Substring(0, zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1].Length - 2);
if sqlChanged then
begin
zymysqfiyat.SQL.Add(' WHERE urun_id = :productID');
zymysqfiyat.ParamByName('productID').AsString := productID;
zymysqfiyat.ExecSQL;
end;
end
else
begin
zymysqfiyat.SQL.Clear;
zymysqfiyat.SQL.Add('INSERT INTO veriler (urun_id, smartlinkfiyati, listefiyati, n11fiyati, hepsiburadafiyati, trendyolfiyati, idefixfiyati,');
zymysqfiyat.SQL.Add('urun_adi, urun_kodu, n11komisyon, hepsiburadakomisyon, trendyolkomison, idefixkomisyon, maliyet, ozelmaliyet, hb_product_url, n11_product_url, trendyol_product_url, ' +
'hepsiburadarekabetalt, hepsiburadarekabetust, trednyolrekabetalt, trendyolrekabetust, n11rekabetalt, n11rekabetust, barcode)');
zymysqfiyat.SQL.Add('VALUES (:productID, :price2, :price1, :n11Price, :hbPrice, :trendyolSalePrice, :idefixSalePrice, :productName, :productCode,');
zymysqfiyat.SQL.Add(':n11_commission, :hb_commission, :trendyol_commission, :eptt_commission, :price6, :price7, :hbProductUrl, :n11ProductUrl, :trendyolProductUrl, ' +
':hb_price_min, :hb_price_max, :trendyol_price_min, :trendyol_price_max, :n11_price_min, :n11_price_max, :barcode)');
zymysqfiyat.ParamByName('productID').AsString := productID;
zymysqfiyat.ParamByName('price2').AsFloat := price2;
zymysqfiyat.ParamByName('price1').AsFloat := price1;
zymysqfiyat.ParamByName('n11Price').AsFloat := n11Price;
zymysqfiyat.ParamByName('hbPrice').AsFloat := hbPrice;
zymysqfiyat.ParamByName('trendyolSalePrice').AsFloat := trendyolSalePrice;
zymysqfiyat.ParamByName('idefixSalePrice').AsFloat := idefixSalePrice;
zymysqfiyat.ParamByName('productName').AsString := productName;
zymysqfiyat.ParamByName('productCode').AsString := productCode;
zymysqfiyat.ParamByName('n11_commission').AsFloat := n11_commission;
zymysqfiyat.ParamByName('hb_commission').AsFloat := hb_commission;
zymysqfiyat.ParamByName('trendyol_commission').AsFloat := trendyol_commission;
zymysqfiyat.ParamByName('eptt_commission').AsFloat := eptt_commission;
zymysqfiyat.ParamByName('price6').AsFloat := price6;
zymysqfiyat.ParamByName('price7').AsFloat := price7;
zymysqfiyat.ParamByName('hbProductUrl').AsString := hbProductUrl;
zymysqfiyat.ParamByName('n11ProductUrl').AsString := n11ProductUrl;
zymysqfiyat.ParamByName('trendyolProductUrl').AsString := trendyolProductUrl;
zymysqfiyat.ParamByName('hb_price_min').AsFloat := hb_price_min;
zymysqfiyat.ParamByName('hb_price_max').AsFloat := hb_price_max;
zymysqfiyat.ParamByName('trendyol_price_min').AsFloat := trendyol_price_min;
zymysqfiyat.ParamByName('trendyol_price_max').AsFloat := trendyol_price_max;
zymysqfiyat.ParamByName('n11_price_min').AsFloat := n11_price_min;
zymysqfiyat.ParamByName('n11_price_max').AsFloat := n11_price_max;
zymysqfiyat.ParamByName('barcode').AsString := barcode;
zymysqfiyat.ExecSQL;
end;
end;
zsqlfiyat.Close;
end;
ZQSQLAd.Close;
ZQMySQLAd.Close;
ZQSQL.Next;
end;
ZQSQL.Close;
ZMySQL.Commit;
except
on E: Exception do
begin
ZMySQL.Rollback;
ShowMessage('Hata: ' + E.Message);
end;
end;
ZQuery1.Close;
ZQuery1.Open;
UpdateRecordCountLabel;
ShowMessage('Eşitleme Tamamlandı');
end;
end;
end;
end;
Wave 呼叫
procedure TForm7.urunEkle;
var
useresponse2: Integer;
productID, productName, productCode, barcode,guncelleme: string;
price7, price1, price2, n11Price, hbPrice, trendyolSalePrice, idefixSalePrice, price6, n11_commission, hb_commission, eptt_commission, trendyol_commission: Double;
hbProductUrl, n11ProductUrl, trendyolProductUrl: string;
hb_price_min, hb_price_max, trendyol_price_min, trendyol_price_max, n11_price_min, n11_price_max: Double;
sqlChanged: Boolean;
begin
sqlChanged := False;
useresponse2 := MessageDlg('Eşitleme yapmak istediğinizden emin misiniz? Bu işlem geri alınamaz.', mtConfirmation, [mbYes, mbNo], 0);
if useresponse2 = mrYes then
begin
ZQSQL.SQL.Text := 'SELECT product_id FROM product_quantity WHERE quantity >= 1';
ZQSQL.Open;
ZQMySQLAd.SQL.Text := 'SELECT urun_id FROM veriler ';
ZQMySQLAd.Open;
ZQMySQLAd.First;
ZMySQL.StartTransaction;
try
while not ZQMySQLAd.Eof do
begin
ZQSQLAd.SQL.Text := 'SELECT product_quantity.product_id, product_quantity.quantity, product.status ' +
'FROM product_quantity ' +
'LEFT JOIN product ON product_quantity.product_id = product.id ' +
'WHERE product_quantity.product_id = :productID AND product.status = 0';
ZQSQLAd.ParamByName('productID').AsString := ZQMySQLAd.FieldByName('urun_id').AsString;
ZQSQLAd.Open;
if ZQSQLAd.Eof or (ZQSQLAd.FieldByName('quantity').AsInteger = 0) or (ZQSQLAd.FieldByName('status').AsInteger = 0) then
begin
zymysqfiyat.SQL.Text := 'DELETE FROM veriler WHERE urun_id = :productID';
zymysqfiyat.ParamByName('productID').AsString := ZQMySQLAd.FieldByName('urun_id').AsString;
zymysqfiyat.ExecSQL;
end;
ZQSQLAd.Close;
ZQMySQLAd.Next;
end;
ZQMySQLAd.Close;
ZQSQL.First;
while not ZQSQL.Eof do
begin
productID := ZQSQL.FieldByName('product_id').AsString;
ZQSQLAd.SQL.Text := 'SELECT productname, productcode, barcode, n11_commission, hb_commission, eptt_commission, trendyol_commission, ' +
'hb_product_url, n11_product_url, trendyol_product_url, status ' +
'FROM product WHERE id = :productID AND status > 0';
ZQSQLAd.ParamByName('productID').AsString := productID;
ZQSQLAd.Open;
if not ZQSQLAd.Eof then
begin
productName := ZQSQLAd.FieldByName('productname').AsString;
productCode := ZQSQLAd.FieldByName('productcode').AsString;
barcode := ZQSQLAd.FieldByName('barcode').AsString;
n11_commission := ZQSQLAd.FieldByName('n11_commission').AsFloat;
hb_commission := ZQSQLAd.FieldByName('hb_commission').AsFloat;
eptt_commission := ZQSQLAd.FieldByName('eptt_commission').AsFloat;
trendyol_commission := ZQSQLAd.FieldByName('trendyol_commission').AsFloat;
hbProductUrl := ZQSQLAd.FieldByName('hb_product_url').AsString;
n11ProductUrl := ZQSQLAd.FieldByName('n11_product_url').AsString;
trendyolProductUrl := ZQSQLAd.FieldByName('trendyol_product_url').AsString;
zsqlfiyat.SQL.Text := 'SELECT price7, price1, price2, n11_price, hb_price, trendyol_saleprice, idefix_sale_price, price6 ' +
'FROM product_prices WHERE product_id = :productID';
zsqlfiyat.ParamByName('productID').AsString := productID;
zsqlfiyat.Open;
if not zsqlfiyat.Eof then
begin
price1 := Round(zsqlfiyat.FieldByName('price1').AsFloat * 1.20);
price2 := Round(zsqlfiyat.FieldByName('price2').AsFloat * 1.20);
price6 := Round(zsqlfiyat.FieldByName('price6').AsFloat * 1.20);
price7 := Round(zsqlfiyat.FieldByName('price7').AsFloat * 1.20);
ZQMySQLAd.SQL.Text := 'SELECT smartlinkfiyati, n11komisyon, hepsiburadakomisyon, trendyolkomison, idefixkomisyon, maliyet, ' +
'listefiyati, n11fiyati, hepsiburadafiyati, trendyolfiyati, idefixfiyati, ozelmaliyet, ' +
'hb_product_url, n11_product_url, trendyol_product_url, ' +
'hepsiburadarekabetalt, hepsiburadarekabetust, trednyolrekabetalt, trendyolrekabetust, n11rekabetalt, n11rekabetust, barcode, ' +
'hbhc, tdhc, idehc, n11hc, tdminhc, tdmaxhc, hbminhc, hbmaxhc, n11minhc, n11maxhc,guncelleme ' +
'FROM veriler WHERE urun_id = :productID';
ZQMySQLAd.ParamByName('productID').AsString := productID;
ZQMySQLAd.Open;
;
if (ZQMySQLAd.FieldByName('n11komisyon').AsFloat <> n11_commission) or (ZQMySQLAd.FieldByName('smartlinkfiyati').AsFloat <> price2) then
n11Price := Round((price2 / (1 - (n11_commission / 100))))
else
n11Price := zsqlfiyat.FieldByName('n11_price').AsFloat;
if (ZQMySQLAd.FieldByName('hepsiburadakomisyon').AsFloat <> hb_commission) or (ZQMySQLAd.FieldByName('smartlinkfiyati').AsFloat <> price2) then
hbPrice := Round((price2 / (1 - (hb_commission / 100))))
else
hbPrice := Round(zsqlfiyat.FieldByName('hb_price').AsFloat * 1.20);
if (ZQMySQLAd.FieldByName('trendyolkomison').AsFloat <> trendyol_commission) or (ZQMySQLAd.FieldByName('smartlinkfiyati').AsFloat <> price2) then
trendyolSalePrice := Round((price2 / (1 - (trendyol_commission / 100))))
else
trendyolSalePrice := Round(zsqlfiyat.FieldByName('trendyol_saleprice').AsFloat * 1.20);
if (ZQMySQLAd.FieldByName('idefixkomisyon').AsFloat <> eptt_commission) or (ZQMySQLAd.FieldByName('smartlinkfiyati').AsFloat <> price2) then
idefixSalePrice := Round((price2 / (1 - (eptt_commission / 100))))
else
idefixSalePrice := Round(zsqlfiyat.FieldByName('idefix_sale_price').AsFloat * 1.20);
hb_price_min := hbPrice;
hb_price_max := Round(hb_price_min * 1.20);
trendyol_price_min := trendyolSalePrice;
trendyol_price_max := Round(trendyol_price_min * 1.20);
n11_price_min := n11Price;
n11_price_max := Round(n11_price_min * 1.20);
if ZQMySQLAd.FieldByName('guncelleme').AsString<>'' then
begin
guncelleme := ZQMySQLAd.FieldByName('guncelleme').AsString;
end;
if not ZQMySQLAd.Eof then
begin
// `price2` değişmişse tüm alanları güncelle
if (ZQMySQLAd.FieldByName('smartlinkfiyati').AsFloat <> price2)
then
begin
ShowMessage('sener'+(ZQMySQLAd.FieldByName('smartlinkfiyati').asstring)+productName);
ShowMessage(floattostr(price2)+productName) ;
zymysqfiyat.SQL.Clear;
zymysqfiyat.SQL.Add('UPDATE veriler SET ');
zymysqfiyat.SQL.Add('smartlinkfiyati = :price2, ');
zymysqfiyat.SQL.Add('n11komisyon = :n11_commission, ');
zymysqfiyat.SQL.Add('hepsiburadakomisyon = :hb_commission, ');
zymysqfiyat.SQL.Add('trendyolkomison = :trendyol_commission, ');
zymysqfiyat.SQL.Add('idefixkomisyon = :eptt_commission, ');
zymysqfiyat.SQL.Add('maliyet = :price6, ');
zymysqfiyat.SQL.Add('ozelmaliyet = :price7, ');
zymysqfiyat.SQL.Add('listefiyati = :price1, ');
zymysqfiyat.SQL.Add('hb_product_url = :hbProductUrl, ');
zymysqfiyat.SQL.Add('n11_product_url = :n11ProductUrl, ');
zymysqfiyat.SQL.Add('trendyol_product_url = :trendyolProductUrl, ');
zymysqfiyat.SQL.Add('hepsiburadarekabetalt = :hb_price_min, ');
zymysqfiyat.SQL.Add('hepsiburadarekabetust = :hb_price_max, ');
zymysqfiyat.SQL.Add('trednyolrekabetalt = :trendyol_price_min, ');
zymysqfiyat.SQL.Add('trendyolrekabetust = :trendyol_price_max, ');
zymysqfiyat.SQL.Add('n11rekabetalt = :n11_price_min, ');
zymysqfiyat.SQL.Add('n11rekabetust = :n11_price_max, ');
zymysqfiyat.SQL.Add('barcode = :barcode, ');
if guncelleme<>'' then
begin
zymysqfiyat.SQL.Add('guncelleme = :guncelleme, ');
sqlChanged := True;
end;
// H olmayanlar için kontroller
if (ZQMySQLAd.FieldByName('guncelleme').AsString <> 'H')then
begin
if (ZQMySQLAd.FieldByName('n11hc').AsString <> 'H')then
begin
zymysqfiyat.SQL.Add('n11fiyati = :n11Price, ');
zymysqfiyat.ParamByName('n11Price').AsFloat := n11Price;
sqlChanged := True;
end;
if (ZQMySQLAd.FieldByName('hbhc').AsString <> 'H')then
begin
zymysqfiyat.SQL.Add('hepsiburadafiyati = :hbPrice, ');
zymysqfiyat.ParamByName('hbPrice').AsFloat := hbPrice;
sqlChanged := True;
end;
if (ZQMySQLAd.FieldByName('tdhc').AsString <> 'H')then
begin
zymysqfiyat.SQL.Add('trendyolfiyati = :trendyolSalePrice, ');
zymysqfiyat.ParamByName('trendyolSalePrice').AsFloat := trendyolSalePrice;
sqlChanged := True;
end;
if (ZQMySQLAd.FieldByName('idehc').AsString <> 'H')then
begin
zymysqfiyat.SQL.Add('idefixfiyati = :idefixSalePrice, ');
zymysqfiyat.ParamByName('idefixSalePrice').AsFloat := idefixSalePrice;
sqlChanged := True;
end;
if (ZQMySQLAd.FieldByName('tdminhc').AsString <> 'H')then
begin
zymysqfiyat.SQL.Add('trednyolrekabetalt = :trendyol_price_min, ');
zymysqfiyat.ParamByName('trendyol_price_min').AsFloat := trendyol_price_min;
sqlChanged := True;
end;
if (ZQMySQLAd.FieldByName('tdmaxhx').AsString <> 'H')then
begin
zymysqfiyat.SQL.Add('trendyolrekabetust = :trendyol_price_max, ');
zymysqfiyat.ParamByName('trendyol_price_max').AsFloat := trendyol_price_max;
sqlChanged := True;
end;
if (ZQMySQLAd.FieldByName('hbminhx').AsString <> 'H')then
begin
zymysqfiyat.SQL.Add('hepsiburadarekabetalt = :hb_price_min, ');
zymysqfiyat.ParamByName('hb_price_min').AsFloat := hb_price_min;
sqlChanged := True;
end;
if (ZQMySQLAd.FieldByName('hbmaxhc').AsString <> 'H')then
begin
zymysqfiyat.SQL.Add('hepsiburadarekabetust = :hb_price_max, ');
zymysqfiyat.ParamByName('hb_price_max').AsFloat := hb_price_max;
sqlChanged := True;
end;
if (ZQMySQLAd.FieldByName('n11minhc').AsString <> 'H')then
begin
zymysqfiyat.SQL.Add('n11rekabetalt = :n11_price_min, ');
zymysqfiyat.ParamByName('n11_price_min').AsFloat := n11_price_min;
sqlChanged := True;
end;
if (ZQMySQLAd.FieldByName('n11max').AsString <> 'H')then
begin
zymysqfiyat.SQL.Add('n11rekabetust = :n11_price_max, ');
zymysqfiyat.ParamByName('n11_price_max').AsFloat := n11_price_max;
sqlChanged := True;
end;
end; // Son virgülü kaldır
if zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1].EndsWith(', ') then
zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1] := zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1].Substring(0, zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1].Length - 2);
// zymysqfiyat.SQL.Add(' WHERE urun_id = :productID');
// Parametrelerin atanması
zymysqfiyat.ParamByName('price2').AsFloat := price2;
zymysqfiyat.ParamByName('n11_commission').AsFloat := n11_commission;
zymysqfiyat.ParamByName('hb_commission').AsFloat := hb_commission;
zymysqfiyat.ParamByName('trendyol_commission').AsFloat := trendyol_commission;
zymysqfiyat.ParamByName('eptt_commission').AsFloat := eptt_commission;
zymysqfiyat.ParamByName('price6').AsFloat := price6;
zymysqfiyat.ParamByName('price7').AsFloat := price7;
zymysqfiyat.ParamByName('price1').AsFloat := price1;
zymysqfiyat.ParamByName('hbProductUrl').AsString := hbProductUrl;
zymysqfiyat.ParamByName('n11ProductUrl').AsString := n11ProductUrl;
zymysqfiyat.ParamByName('trendyolProductUrl').AsString := trendyolProductUrl;
zymysqfiyat.ParamByName('hb_price_min').AsFloat := hb_price_min;
zymysqfiyat.ParamByName('hb_price_max').AsFloat := hb_price_max;
zymysqfiyat.ParamByName('trendyol_price_min').AsFloat := trendyol_price_min;
zymysqfiyat.ParamByName('trendyol_price_max').AsFloat := trendyol_price_max;
zymysqfiyat.ParamByName('n11_price_min').AsFloat := n11_price_min;
zymysqfiyat.ParamByName('n11_price_max').AsFloat := n11_price_max;
zymysqfiyat.ParamByName('barcode').AsString := barcode;
if guncelleme<>'' then
begin
zymysqfiyat.ParamByName('guncelleme').AsString := guncelleme;
end;
if sqlChanged then
begin
zymysqfiyat.SQL.Add(' WHERE urun_id = :productID');
zymysqfiyat.ParamByName('productID').AsString := productID;
zymysqfiyat.ExecSQL;
end;
end
//eğer komisyonlar değişmiş ise
else if (ZQMySQLAd.FieldByName('n11komisyon').AsFloat <> n11_commission)
or (ZQMySQLAd.FieldByName('hepsiburadakomisyon').AsFloat <> hb_commission) or
(ZQMySQLAd.FieldByName('trendyolkomison').AsFloat <> trendyol_commission) or
(ZQMySQLAd.FieldByName('idefixkomisyon').AsFloat <> eptt_commission)
then
begin
ShowMessage('sener'+(ZQMySQLAd.FieldByName('smartlinkfiyati').asstring)+productName);
ShowMessage(floattostr(price2)+productName) ;
zymysqfiyat.SQL.Clear;
zymysqfiyat.SQL.Add('UPDATE veriler SET ');
zymysqfiyat.SQL.Add('smartlinkfiyati = :price2, ');
zymysqfiyat.SQL.Add('n11komisyon = :n11_commission, ');
zymysqfiyat.SQL.Add('hepsiburadakomisyon = :hb_commission, ');
zymysqfiyat.SQL.Add('trendyolkomison = :trendyol_commission, ');
zymysqfiyat.SQL.Add('idefixkomisyon = :eptt_commission, ');
zymysqfiyat.SQL.Add('maliyet = :price6, ');
zymysqfiyat.SQL.Add('ozelmaliyet = :price7, ');
zymysqfiyat.SQL.Add('listefiyati = :price1, ');
zymysqfiyat.SQL.Add('hb_product_url = :hbProductUrl, ');
zymysqfiyat.SQL.Add('n11_product_url = :n11ProductUrl, ');
zymysqfiyat.SQL.Add('trendyol_product_url = :trendyolProductUrl, ');
zymysqfiyat.SQL.Add('hepsiburadarekabetalt = :hb_price_min, ');
zymysqfiyat.SQL.Add('hepsiburadarekabetust = :hb_price_max, ');
zymysqfiyat.SQL.Add('trednyolrekabetalt = :trendyol_price_min, ');
zymysqfiyat.SQL.Add('trendyolrekabetust = :trendyol_price_max, ');
zymysqfiyat.SQL.Add('n11rekabetalt = :n11_price_min, ');
zymysqfiyat.SQL.Add('n11rekabetust = :n11_price_max, ');
zymysqfiyat.SQL.Add('barcode = :barcode, ');
zymysqfiyat.SQL.Add('n11fiyati = :n11Price, ');
zymysqfiyat.ParamByName('n11Price').AsFloat := n11Price;
zymysqfiyat.SQL.Add('hepsiburadafiyati = :hbPrice, ');
zymysqfiyat.ParamByName('hbPrice').AsFloat := hbPrice;
zymysqfiyat.SQL.Add('trendyolfiyati = :trendyolSalePrice, ');
zymysqfiyat.ParamByName('trendyolSalePrice').AsFloat := trendyolSalePrice;
zymysqfiyat.SQL.Add('idefixfiyati = :idefixSalePrice, ');
zymysqfiyat.ParamByName('idefixSalePrice').AsFloat := idefixSalePrice;
zymysqfiyat.SQL.Add('trednyolrekabetalt = :trendyol_price_min, ');
zymysqfiyat.ParamByName('trendyol_price_min').AsFloat := trendyol_price_min;
zymysqfiyat.SQL.Add('trendyolrekabetust = :trendyol_price_max, ');
zymysqfiyat.ParamByName('trendyol_price_max').AsFloat := trendyol_price_max;
zymysqfiyat.SQL.Add('hepsiburadarekabetalt = :hb_price_min, ');
zymysqfiyat.ParamByName('hb_price_min').AsFloat := hb_price_min;
zymysqfiyat.SQL.Add('hepsiburadarekabetust = :hb_price_max, ');
zymysqfiyat.ParamByName('hb_price_max').AsFloat := hb_price_max;
zymysqfiyat.SQL.Add('n11rekabetalt = :n11_price_min, ');
zymysqfiyat.ParamByName('n11_price_min').AsFloat := n11_price_min;
zymysqfiyat.SQL.Add('n11rekabetust = :n11_price_max, ');
zymysqfiyat.ParamByName('n11_price_max').AsFloat := n11_price_max;
// Son virgülü kaldır
if zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1].EndsWith(', ') then
zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1] := zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1].Substring(0, zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1].Length - 2);
// zymysqfiyat.SQL.Add(' WHERE urun_id = :productID');
// Parametrelerin atanması
zymysqfiyat.ParamByName('price2').AsFloat := price2;
zymysqfiyat.ParamByName('n11_commission').AsFloat := n11_commission;
zymysqfiyat.ParamByName('hb_commission').AsFloat := hb_commission;
zymysqfiyat.ParamByName('trendyol_commission').AsFloat := trendyol_commission;
zymysqfiyat.ParamByName('eptt_commission').AsFloat := eptt_commission;
zymysqfiyat.ParamByName('price6').AsFloat := price6;
zymysqfiyat.ParamByName('price7').AsFloat := price7;
zymysqfiyat.ParamByName('price1').AsFloat := price1;
zymysqfiyat.ParamByName('hbProductUrl').AsString := hbProductUrl;
zymysqfiyat.ParamByName('n11ProductUrl').AsString := n11ProductUrl;
zymysqfiyat.ParamByName('trendyolProductUrl').AsString := trendyolProductUrl;
zymysqfiyat.ParamByName('hb_price_min').AsFloat := hb_price_min;
zymysqfiyat.ParamByName('hb_price_max').AsFloat := hb_price_max;
zymysqfiyat.ParamByName('trendyol_price_min').AsFloat := trendyol_price_min;
zymysqfiyat.ParamByName('trendyol_price_max').AsFloat := trendyol_price_max;
zymysqfiyat.ParamByName('n11_price_min').AsFloat := n11_price_min;
zymysqfiyat.ParamByName('n11_price_max').AsFloat := n11_price_max;
zymysqfiyat.ParamByName('barcode').AsString := barcode;
zymysqfiyat.SQL.Add(' WHERE urun_id = :productID');
zymysqfiyat.ParamByName('productID').AsString := productID;
zymysqfiyat.ExecSQL;
end
else burası çalışmıyor
begin
ShowMessage('Product ID: ' + productID + ' | Güncelleme: ' + ZQMySQLAd.FieldByName('guncelleme').AsString);
zymysqfiyat.SQL.Clear;
zymysqfiyat.SQL.Add('UPDATE veriler SET ');
if ZQMySQLAd.FieldByName('maliyet').AsFloat <> price6 then
begin
zymysqfiyat.SQL.Add('maliyet = :price6, ');
zymysqfiyat.ParamByName('price6').AsFloat := price6;
sqlChanged := True;
end;
if ZQMySQLAd.FieldByName('ozelmaliyet').AsFloat <> price7 then
begin
zymysqfiyat.SQL.Add('ozelmaliyet = :price7, ');
zymysqfiyat.ParamByName('price7').AsFloat := price7;
sqlChanged := True;
end;
if ZQMySQLAd.FieldByName('hb_product_url').AsString <> hbProductUrl then
begin
zymysqfiyat.SQL.Add('hb_product_url = :hbProductUrl, ');
zymysqfiyat.ParamByName('hbProductUrl').AsString := hbProductUrl;
sqlChanged := True;
end;
if ZQMySQLAd.FieldByName('n11_product_url').AsString <> n11ProductUrl then
begin
zymysqfiyat.SQL.Add('n11_product_url = :n11ProductUrl, ');
zymysqfiyat.ParamByName('n11ProductUrl').AsString := n11ProductUrl;
sqlChanged := True;
end;
if ZQMySQLAd.FieldByName('trendyol_product_url').AsString <> trendyolProductUrl then
begin
zymysqfiyat.SQL.Add('trendyol_product_url = :trendyolProductUrl, ');
zymysqfiyat.ParamByName('trendyolProductUrl').AsString := trendyolProductUrl;
sqlChanged := True;
end;
if ZQMySQLAd.FieldByName('n11komisyon').AsFloat <> n11_commission then
begin
zymysqfiyat.SQL.Add('n11komisyon = :n11_commission, ');
zymysqfiyat.ParamByName('n11_commission').AsFloat := n11_commission;
sqlChanged := True;
end;
if ZQMySQLAd.FieldByName('hepsiburadakomisyon').AsFloat <> hb_commission then
begin
zymysqfiyat.SQL.Add('hepsiburadakomisyon = :hb_commission, ');
zymysqfiyat.ParamByName('hb_commission').AsFloat := hb_commission;
sqlChanged := True;
end;
if ZQMySQLAd.FieldByName('trendyolkomison').AsFloat <> trendyol_commission then
begin
zymysqfiyat.SQL.Add('trendyolkomison = :trendyol_commission, ');
zymysqfiyat.ParamByName('trendyol_commission').AsFloat := trendyol_commission;
sqlChanged := True;
end;
if ZQMySQLAd.FieldByName('idefixkomisyon').AsFloat <> eptt_commission then
begin
zymysqfiyat.SQL.Add('idefixkomisyon = :eptt_commission, ');
zymysqfiyat.ParamByName('eptt_commission').AsFloat := eptt_commission;
sqlChanged := True;
end;
if ZQMySQLAd.FieldByName('n11fiyati').AsFloat <> n11Price then
begin
ShowMessage(floattostr(n11Price));
if ZQMySQLAd.FieldByName('n11hc').AsString <> 'H' then
begin
zymysqfiyat.SQL.Add('n11hc = :n11hc, ');
zymysqfiyat.SQL.Add('n11minhc = :n11minhc, ');
zymysqfiyat.SQL.Add('n11maxhc = :n11maxhc, ');
zymysqfiyat.ParamByName('n11hc').AsString := 'H';
zymysqfiyat.ParamByName('n11minhc').AsString := 'H';
zymysqfiyat.ParamByName('n11maxhc').AsString := 'H';
end;
zymysqfiyat.SQL.Add('n11fiyati = :n11Price, ');
zymysqfiyat.ParamByName('n11Price').AsFloat := n11Price;
sqlChanged := True;
end;
if ZQMySQLAd.FieldByName('hepsiburadafiyati').AsFloat <> hbPrice then
begin
zymysqfiyat.SQL.Add('hepsiburadafiyati = :hbPrice, ');
if ZQMySQLAd.FieldByName('hbhc').AsString <> 'H' then
begin
zymysqfiyat.SQL.Add('hbhc = :hbhc, ');
zymysqfiyat.SQL.Add('hbminhc = :hbminhc, ');
zymysqfiyat.SQL.Add('hbmaxhc = :hbmaxhc, ');
zymysqfiyat.ParamByName('hbhc').AsString := 'H';
zymysqfiyat.ParamByName('hbminhc').AsString := 'H';
zymysqfiyat.ParamByName('hbmaxhc').AsString := 'H';
end;
zymysqfiyat.ParamByName('hbPrice').AsFloat := hbPrice;
sqlChanged := True;
end;
if ZQMySQLAd.FieldByName('trendyolfiyati').AsFloat <> trendyolSalePrice then
begin
zymysqfiyat.SQL.Add('trendyolfiyati = :trendyolSalePrice, ');
if ZQMySQLAd.FieldByName('hbhc').AsString <> 'H' then
begin
zymysqfiyat.SQL.Add('tdhc = :tdhc, ');
zymysqfiyat.SQL.Add('tdminhc = :tdminhc, ');
zymysqfiyat.SQL.Add('tdmaxhc = :tdmaxhc, ');
zymysqfiyat.ParamByName('tdhc').AsString := 'H';
zymysqfiyat.ParamByName('tdminhc').AsString := 'H';
zymysqfiyat.ParamByName('tdmaxhc').AsString := 'H';
end;
zymysqfiyat.ParamByName('trendyolSalePrice').AsFloat := trendyolSalePrice;
sqlChanged := True;
end;
if ZQMySQLAd.FieldByName('idefixfiyati').AsFloat <> idefixSalePrice then
begin
zymysqfiyat.SQL.Add('idefixfiyati = :idefixSalePrice, ');
if ZQMySQLAd.FieldByName('hbhc').AsString <> 'H' then
begin
zymysqfiyat.SQL.Add('idehc = :idehc, ');
zymysqfiyat.ParamByName('idehc').AsString := 'H';
end;
zymysqfiyat.ParamByName('idefixSalePrice').AsFloat := idefixSalePrice;
sqlChanged := True;
end;
if ZQMySQLAd.FieldByName('trednyolrekabetalt').AsFloat <> trendyol_price_min then
begin
zymysqfiyat.SQL.Add('trednyolrekabetalt = :trendyol_price_min, ');
zymysqfiyat.ParamByName('trendyol_price_min').AsFloat := trendyol_price_min;
sqlChanged := True;
end;
if ZQMySQLAd.FieldByName('trendyolrekabetust').AsFloat <> trendyol_price_max then
begin
zymysqfiyat.SQL.Add('trendyolrekabetust = :trendyol_price_max, ');
zymysqfiyat.ParamByName('trendyol_price_max').AsFloat := trendyol_price_max;
sqlChanged := True;
end;
if ZQMySQLAd.FieldByName('hepsiburadarekabetalt').AsFloat <> hb_price_min then
begin
zymysqfiyat.SQL.Add('hepsiburadarekabetalt = :hb_price_min, ');
zymysqfiyat.ParamByName('hb_price_min').AsFloat := hb_price_min;
sqlChanged := True;
end;
if ZQMySQLAd.FieldByName('hepsiburadarekabetust').AsFloat <> hb_price_max then
begin
zymysqfiyat.SQL.Add('hepsiburadarekabetust = :hb_price_max, ');
zymysqfiyat.ParamByName('hb_price_max').AsFloat := hb_price_max;
sqlChanged := True;
end;
if ZQMySQLAd.FieldByName('n11rekabetalt').AsFloat <> n11_price_min then
begin
zymysqfiyat.SQL.Add('n11rekabetalt = :n11_price_min, ');
zymysqfiyat.ParamByName('n11_price_min').AsFloat := n11_price_min;
sqlChanged := True;
end;
if ZQMySQLAd.FieldByName('n11rekabetust').AsFloat <> n11_price_max then
begin
zymysqfiyat.SQL.Add('n11rekabetust = :n11_price_max, ');
zymysqfiyat.ParamByName('n11_price_max').AsFloat := n11_price_max;
sqlChanged := True;
end;
// Son virgülü kaldır
if zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1].EndsWith(', ') then
zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1] := zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1].Substring(0, zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1].Length - 2);
if sqlChanged then
begin
zymysqfiyat.SQL.Add(' WHERE urun_id = :productID');
zymysqfiyat.ParamByName('productID').AsString := productID;
zymysqfiyat.ExecSQL;
end;
end
else
begin
zymysqfiyat.SQL.Clear;
zymysqfiyat.SQL.Add('INSERT INTO veriler (urun_id, smartlinkfiyati, listefiyati, n11fiyati, hepsiburadafiyati, trendyolfiyati, idefixfiyati,');
zymysqfiyat.SQL.Add('urun_adi, urun_kodu, n11komisyon, hepsiburadakomisyon, trendyolkomison, idefixkomisyon, maliyet, ozelmaliyet, hb_product_url, n11_product_url, trendyol_product_url, ' +
'hepsiburadarekabetalt, hepsiburadarekabetust, trednyolrekabetalt, trendyolrekabetust, n11rekabetalt, n11rekabetust, barcode)');
zymysqfiyat.SQL.Add('VALUES (:productID, :price2, :price1, :n11Price, :hbPrice, :trendyolSalePrice, :idefixSalePrice, :productName, :productCode,');
zymysqfiyat.SQL.Add(':n11_commission, :hb_commission, :trendyol_commission, :eptt_commission, :price6, :price7, :hbProductUrl, :n11ProductUrl, :trendyolProductUrl, ' +
':hb_price_min, :hb_price_max, :trendyol_price_min, :trendyol_price_max, :n11_price_min, :n11_price_max, :barcode)');
zymysqfiyat.ParamByName('productID').AsString := productID;
zymysqfiyat.ParamByName('price2').AsFloat := price2;
zymysqfiyat.ParamByName('price1').AsFloat := price1;
zymysqfiyat.ParamByName('n11Price').AsFloat := n11Price;
zymysqfiyat.ParamByName('hbPrice').AsFloat := hbPrice;
zymysqfiyat.ParamByName('trendyolSalePrice').AsFloat := trendyolSalePrice;
zymysqfiyat.ParamByName('idefixSalePrice').AsFloat := idefixSalePrice;
zymysqfiyat.ParamByName('productName').AsString := productName;
zymysqfiyat.ParamByName('productCode').AsString := productCode;
zymysqfiyat.ParamByName('n11_commission').AsFloat := n11_commission;
zymysqfiyat.ParamByName('hb_commission').AsFloat := hb_commission;
zymysqfiyat.ParamByName('trendyol_commission').AsFloat := trendyol_commission;
zymysqfiyat.ParamByName('eptt_commission').AsFloat := eptt_commission;
zymysqfiyat.ParamByName('price6').AsFloat := price6;
zymysqfiyat.ParamByName('price7').AsFloat := price7;
zymysqfiyat.ParamByName('hbProductUrl').AsString := hbProductUrl;
zymysqfiyat.ParamByName('n11ProductUrl').AsString := n11ProductUrl;
zymysqfiyat.ParamByName('trendyolProductUrl').AsString := trendyolProductUrl;
zymysqfiyat.ParamByName('hb_price_min').AsFloat := hb_price_min;
zymysqfiyat.ParamByName('hb_price_max').AsFloat := hb_price_max;
zymysqfiyat.ParamByName('trendyol_price_min').AsFloat := trendyol_price_min;
zymysqfiyat.ParamByName('trendyol_price_max').AsFloat := trendyol_price_max;
zymysqfiyat.ParamByName('n11_price_min').AsFloat := n11_price_min;
zymysqfiyat.ParamByName('n11_price_max').AsFloat := n11_price_max;
zymysqfiyat.ParamByName('barcode').AsString := barcode;
zymysqfiyat.ExecSQL;
end;
end;
zsqlfiyat.Close;
end;
ZQSQLAd.Close;
ZQMySQLAd.Close;
ZQSQL.Next;
end;
ZQSQL.Close;
ZMySQL.Commit;
except
on E: Exception do
begin
ZMySQL.Rollback;
ShowMessage('Hata: ' + E.Message);
end;
end;
ZQuery1.Close;
ZQuery1.Open;
UpdateRecordCountLabel;
ShowMessage('Eşitleme Tamamlandı');
end;
end;
end;
end;
Wave 呼叫