Atiker Yazılım Resmi Forum Sitesidir. Amacımız kullanıcılarımıza, iş ortaklarımıza, danışmanlara, yazılımcılara programlarımız hakkında destek ve bilgi vermektir. Detaylı bilgi ve destek için: 444 82 99 |
Seri Kodundan Stok Kodu ve Seri Kaydı Desteği |
Yanıt Yaz |
Yazar | |
mervenur.demic
Yeni Üye Kayıt Tarihi: 25 Ekim 2018 Durum: Aktif Değil Puanlar: 262 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı mervenur.demic
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
Gönderim Zamanı: 26 Ekim 2018 Saat 09:03 |
Seri Kodundan Stok Kodu ve Seri Kaydı Desteği Seri kodunu barkod gibi görüp bir faturada kalem sayısı fazla olan işletmelerde satış Faturası, satış İrsaliyesi gibi ürün yönü çıkış olan belgelerde LPS uygulaması açıkken, sistemde olan bir serinin belgede girilip hem stok kartının bulunması hem de LPS hareketinin oluşması istenebilir. Öncelikle bu işlemin olması için; 1-) Belge Seçeneklerinden LPS işleminin açık ve tipinin Belge Kayıt(1) olması, 2-) Belge Seçeneklerinden Kalemde Hızlı Giriş Desteğinin açık olması, 3-) Belge Seçeneklerinden Miktar için ön değer parametresinin “1” olması Ayrıca her serinin ayrı ayrı kalem olmaması için; 4-) Belge Seçeneklerinden “Tekrar Eden Stok Engellensin” ve “Tekrar Eden Stok Listeden Bulunsun” parametrelerinin açık olması, 5-) Eğer stoklarda fiyat yok ve fiyatların sonradan girilmesi isteniyorsa “Tutarsız Kayıt Girişine İzin Ver” parametresinin gerekmektedir. 6-) Ayrıca Elle Seri yazılıyorsa hızlı giriş açık olmasından dolayı “Tab” Değil “Enter” tuşuna basılması gerekmektedir. İşlem Adımları ; 1-) Aşağıdaki fonksiyonu sisteme ekleyiniz. CREATE FUNCTION dbo.ZZ_PrgFn_GetStokKoduWithSeriNo(@SERI_NO VARCHAR(100)) RETURNS TABLE AS RETURN ( /* ***** Bakiye Kontrolü Olmadan Seri Desteği ***** */ --SELECT STOK_KODU FROM TBLSTOKLPSHR HR (NOLOCK) --INNER JOIN TBLSTOKSB SB (NOLOCK) ON SB.REC_NO=HR.STOK_KODU_RECID WHERE ISNULL(SERI_NO,'')=@SERI_NO
/* ***** Bakiye Kontrolü ile Seri Desteği ***** */ SELECT STOK_KODU FROM PRG_VIEW_LPSSTOKHR WITH(NOLOCK) WHERE ISNULL(SERI_NO,'')=@SERI_NO GROUP BY STOK_KODU,SERI_NO HAVING SUM(GCMIK*GC_ISLEM)>0 ) 2-) Aktif Kodlamaları ilgili alanlara yazınız. STOK_KODU.OnAfterChange if STOK_KODU.Text <> '' then if AppInfo.AppGlobalInteger = 0 then begin AppInfo.AppGlobalString := STOK_KODU.Text; end; STOK_KODU.OnBeforeExit(Seri Numarasının Kontrolü
Yapılıyor) AppQuery.Close; AppQuery.SQL.Text:='SELECT * FROM TBLSTOKSB WHERE STOK_KODU='+QuotedStr(AppInfo.AppGlobalString); AppQuery.Open; If AppQuery.Found Then Begin AppInfo.AppGlobalString := ''; AppInfo.AppGlobalInteger := 0; End Else Begin AppQuery.SQL.Text:='SELECT * FROM DBO.ZZ_PrgFn_GetStokKoduWithSeriNo('+quotedstr(AppInfo.AppGlobalString)+')'; AppQuery.Open; If AppQuery.RecordCount > 1 Then Begin ShowMessage('Seri Kodu Birden Fazla Stok İle Eşleşti! Kayıtları Kontrol Ediniz.'); Exit; End; If AppQuery.Found Then Begin AppInfo.AppGlobalInteger := 1; //Seri Bulundu İse STOK_KODU.Text := AppQuery.Fields[0].AsString; STOK_KODU.SetFocus; STOK_ADI.SetFocus; End Else Begin End; End; AppQuery.Close; Public.OnLoad AppInfo.AppGlobalInteger := 0; //Seri Bulundu Flagı 0
ise bulunmadı 0 ise bulundu. BtnStokKayit.OnAfterPost(Seri Kaydının Yapıldığı Kodlama) var xSTOK_KODU: String; Qry:TBtQuery; function GetStokRecID(STOK_KODU:String):Integer; begin
AppQuery.Close;
AppQuery.SQL.Text:='SELECT REC_NO FROM TBLSTOKSB WHERE
STOK_KODU=' + QUOTEDSTR(STOK_KODU); AppQuery.Open; Result := AppQuery.FieldByName('REC_NO').AsInteger; AppQuery.Close;
end;
function GetBelgeListNo(KALEM_RECNO:Integer):Integer; begin
AppQuery.Close;
AppQuery.SQL.Text:='SELECT BELGE_LIST_NO FROM TBLSTOKHR
WHERE REC_NO=' + QUOTEDSTR(KALEM_RECNO); AppQuery.Open;
Result := AppQuery.FieldByName('BELGE_LIST_NO').AsInteger; AppQuery.Close;
end; begin AppQuery.Close; AppQuery.SQL.Text:='SELECT * FROM
DBO.ZZ_PrgFn_GetStokKoduWithSeriNo('+quotedstr(AppInfo.AppGlobalString)+')'; AppQuery.Open;
if AppQuery.Found
then
begin xSTOK_KODU := AppQuery.Fields[0].AsString; end
else
begin xSTOK_KODU := AppInfo.AppGlobalString; end;
AppQuery.Close; if AppInfo.AppGlobalInteger = 1 then begin
Qry := TBtQuery.Create(nil);
Qry.Close;
Qry.RequestLive := True; Qry.SQL.Text:='SELECT * FROM TBLSTOKLPSHR
WHERE 1=1'; Qry.SQL.Add('AND SERI_NO=' + QuotedStr(AppInfo.AppGlobalString)); Qry.SQL.Add('AND
BELGE_TIPI=1');
Qry.SQL.Add('AND ILK_REC_NO=' +
IntToStr(BtnStokKayit.BtTag)); Qry.Open;
if Qry.Found then Qry.Edit else
Qry.Insert;
Qry.FieldByName('STOK_KODU_RECID').AsInteger
:= GetStokRecID(xSTOK_KODU); Qry.FieldByName('SERI_NO').AsString
:= AppInfo.AppGlobalString; Qry.FieldByName('LOT_NO').AsString :=
'';
Qry.FieldByName('PARTI_NO').AsString
:= ''; Qry.FieldByName('GCMIK').AsFloat :=
1;
Qry.FieldByName('BELGE_NO').AsString
:= BELGE_NO.Text; Qry.FieldByName('BELGE_TIPI').AsInteger
:= 1; Qry.FieldByName('ILK_REC_NO').AsInteger
:=
BtnStokKayit.BtTag;
Qry.FieldByName('BELGE_LIST_NO').AsInteger
:= GetBelgeListNo(BtnStokKayit.BtTag); Qry.Post; Qry.Close; end; AppInfo.AppGlobalInteger := 0; AppInfo.AppGlobalString := '';
end; Menu.PopupMenu:5_OnClick(Fazla okutulan serilerin kalemden miktarı azaltıldıktan sonra silinmesi için) var xSeriNo : String; Qry : TBtQuery; begin xSeriNo := ''; if InputQuery('Seri Silme',
'Silinecek Seri No Giriniz : ', xSeriNo) then begin
Qry :=
TBtQuery.Create(nil);
Qry.Close;
Qry.RequestLive
:= True; Qry.SQL.Text
:= 'SELECT * FROM TBLSTOKLPSHR WHERE BELGE_NO=' + BELGE_NO.SQLText; Qry.SQL.Add('AND
SERI_NO=' +
QuotedStr(xSeriNo));
Qry.Open;
if Qry.Found
then begin
Qry.Delete; AppInfo.AppMes('Seri
Silindi!'); end else begin
AppInfo.AppMes('Seri Bulunamadı!');
Exit;
end;
Qry.Close;
end;
end; Düzenleyen mervenur.demic - 02 Kasım 2018 Saat 08:57 |
|
Yanıt Yaz | |
Tweet
|
Forum Atla | Forum İzinleri Kapalı Foruma Yeni Konu Gönderme Kapalı Forumdaki Konulara Cevap Yazma Kapalı Forumda Cevapları Silme Kapalı Forumdaki Cevapları Düzenleme Kapalı Forumda Anket Açma Kapalı Forumda Anketlerde Oy Kullanma |