Ikinci El Oyun ve Elektronik Malzeme satis yerleri icin Sambapos

Merhabalar,

elbettte uygun olup olmadigi tartisilabilir fakat cok sevdigim bir arkadasim icin bir kasa programlamak istiyorum…

Istedigi aslinda basit bir sey. Elinde Yüzlerce PS1, PS2, PS3, PS4 Nindento, vs…vs. gibi cihazlarin oyunlari var. Bunlari Barcode ile DB de tutup, satildikca enventardan -1 düsürmek istiyor.

Aslinda istedigi basit bir Stock ve Envanter yapisi.

Felan Filan Oyunu…Beep yapip scan edilecek…Barcodesi DB de kayitliysa, istege gore islem yapacak: Envantere ekleyecek (+1) veya Satis yapip -1 düsürecek. … Olay bu…

Sambapos altinda bunu gerceklestirmek icin, hangi konulari okumam veya incelemem lazim?

Not: Yapilabilirligi veya uygunlugu ikinci planda…

Tesekkürler
E. Kaplan

Filmde görülen yer kadar, 1 garaj dolusu ve birde bodrum kati dolusu oyunlar var.
Bunlarin herbirisinde Barcode var. Datenbank i kendileri olusturcaklar. Ben sadece alt yapiyi hazirlayip vermek istiyorum.

Böyle birsey sambapos ile gerceklesmek icin, hangi konulari okumam/incelemem gerekli?

Tesekkürler

Cola Fanta yerine, Oyun ismi koyup, Stock da kac tane var, Stock takip edilebilmeli…Envanterde bir oyundan kac tane var, onlar listenebilmeli…Hedef amac bu…

Abi Elinde Bir Stok Kaydı Var Ise Tum Envanteri Sisteme Giris Yapip Recete Seklinde Bağlaması Yeterli Olur Diye Düsünüyorum Bir Olmaya Stoklara Siparis Alınmasın Diye Bir Otomasyon İş Çözer gibi

1 Beğeni

Böyle birsey yapmak istedigim.

desing da böyle birsey …

biraz bir ilerleme oldu ama yavas ilerleyebiliyoz, hazim ede ede gidiyoz:

1 Beğeni

@EmrBkts @vehbi
hocam burdaki gelen result da sonuc yoksa UNDEFINED geliyor.
Integer result lari ISNULL() ile duzelttim felan isin icine NULL result gelince ve beklenen sonuc TEXT olunca, UNDEFINED yerine bos birakmasini nasil saglayabilirim?

örn;

function searchProduktName(produktBarcode) {

	var qry = "";
	var res = "";
	var name = "" ;

	if (produktBarcode != '') {
	  	qry  = "SELECT MenuItems.Name FROM dbo.MenuItems " ;
		qry += " INNER JOIN dbo.MenuItemPrices  ON dbo.MenuItemPrices.Id = dbo.MenuItems.Id WHERE MenuItems.Barcode = '" + produktBarcode + "' " ;
	  	qry += " GROUP BY MenuItems.Name,MenuItemPrices.Price,MenuItems.Barcode,MenuItems.GroupCode ";
	  	res = sql.Exec(qry);
	  	name = res[0];
	  	//dlg.ShowMessage(name[0]);
	  	
	}
	updateSetting('lblProduktName',name);

}

Bu örnekte eger, result NULL veya UNDEFINED gelmesini istemiyorsam, nasil bir ilave yapmam gerekli?

Tesekkürler
E. Kaplan

Bu işlemde CASE i kullanabilirsiniz

https://docs.microsoft.com/en-us/sql/t-sql/language-elements/case-transact-sql?view=sql-server-ver15

@vehbi

hocam 3 fakli yöntemle denedim, 3. de de undefined geliyor;

Şimdi programsettingsvalue tablosu içinde Name i birşey olan bir alanı sorguladığımda

select
CASE when value is null then ‘N/A’
else value end as value
from ProgramSettingValues
where name=‘UserInfo’

boşsa N/A getiriyor. Sende undefined nasıl oluyor anlamadım. eğer sorguladığın alan hiç yoksa herhangi bir satır dönmemeli. Tablonun içindeki verileri bi gösteirmisin

Doncem hocam yoldayim

Resimdeki TYPEOF satirlarini ilave ettim (Dikkat: Result dan sonra)

Ve görüntüsü:

Result bos gelince, sanirim degiskeni algilamiyor…Ki degisken yukardaki satirda =‘0,00’ seklinde tanimli olmasina ragmen…

Sorunun SQL den ziyade JScript ile ilgili duruyor

Result seti boş dönüyor. Dolayısı ile değişkene atama yapılamıyor. Belki resultsetin boyutuna bakılabilir. 0 ise bu şekilde bir kodlama daha uygun olur

Kullandigim fonksiyonlar bunlar;

function searchProduktGroupcode(produktBarcode) {
	produktBarcode  = typeof produktBarcode === 'undefined' ? '' : produktBarcode;
	
	var qry = "";
	var res = "";
	var newValue = "";
	var groupCode = "";
	
	if (produktBarcode != '') {
	  	qry  = "SELECT CASE WHEN MenuItems.GroupCode IS NULL THEN '' ELSE MenuItems.GroupCode END AS GroupCode FROM dbo.MenuItems " ;
		qry += " INNER JOIN dbo.MenuItemPrices  ON dbo.MenuItemPrices.Id = dbo.MenuItems.Id WHERE MenuItems.Barcode = '" + produktBarcode + "' " ;
	  	qry += " GROUP BY MenuItems.Name,MenuItemPrices.Price,MenuItems.Barcode,MenuItems.GroupCode ";
	  	res = sql.Exec(qry);
	  	groupCoude = res[0];
	  	groupCoude  = typeof groupCoude === 'undefined' ? 'N/A' : groupCoude;
	}
	if (res != ''){
		setSettingbydb('lblProduktGruppenname', groupCoude);
    }else {
    	setSettingbydb('lblProduktGruppenname', 'N/A');
    }


}




function setSettingbydb(settingname,settingvalue) {

  var qry = "SELECT count([Name]) as CT FROM [ProgramSettingValues] WHERE [Name]='"+settingname+"'";
  var r = sql.Query(qry).First;
  
  if (r==0) {

    qry = "INSERT INTO [ProgramSettingValues] ([Name], [Value]) VALUES ('"+settingname+"', '"+settingvalue+"')";
    sql.ExecSql(qry);
  } else {

    qry = "UPDATE [ProgramSettingValues] SET [Value]='"+settingvalue+"' WHERE [Name]='"+settingname+"'";
    sql.ExecSql(qry);
  }
}

==================

  function setSettingbydb(settingname,settingvalue) {

  var qry = "SELECT count([Name]) as CT FROM [ProgramSettingValues] WHERE [Name]='"+settingname+"'";
  var r = sql.Query(qry).First;
  
  if (r==0) {

    qry = "INSERT INTO [ProgramSettingValues] ([Name], [Value]) VALUES ('"+settingname+"', '"+settingvalue+"')";
    sql.ExecSql(qry);
  } else {

    qry = "UPDATE [ProgramSettingValues] SET [Value]='"+settingvalue+"' WHERE [Name]='"+settingname+"'";
    sql.ExecSql(qry);
  }
}

CASE li ilavelerin hicbir etkisi olmuyor.

Sonuc bu sekilde simdi;

Boyut derken?
Resultun LENGHT() i mi?

evet dizinin boyutunu öğrenip 0 dan byükse dönüş için ayarlayabilirsin

Asagidaki sekilde denedim fakat gene 0,00 seklinde geliyor…Ki bir deger dondugu zaman bile IF deki TRUE kismina girmiyor.

function searchProduktPreis(produktBarcode) {
	produktBarcode  = typeof produktBarcode === 'undefined' ? '' : produktBarcode;
	
	var qry = "";
	if (produktBarcode != '') {
	  	qry  = "SELECT MenuItemPrices.Price FROM dbo.MenuItems " ;
	  	qry =qry+ " INNER JOIN dbo.MenuItemPrices  ON dbo.MenuItemPrices.Id = dbo.MenuItems.Id WHERE MenuItems.Barcode = '" + produktBarcode + "' " ;
	  	qry =qry+ " GROUP BY MenuItemPrices.Price ";
	  	var res = sql.Exec(qry).First;
	  	if (res==0) {
	  		var preis = res[0];
	  		setSettingbydb('lblProduktPreis', preis);
	  	}else {
	  		setSettingbydb('lblProduktPreis', '0,00');
	  	}
	}
}

iyi gidiyoz iyi :slight_smile:

1 Beğeni