Atiker Yazılım | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Bilgi Bankası > Aktif Kodlama
  Aktif Konular Aktif Konular RSS - Seri Kodundan Stok Kodu ve Seri Kaydı Desteği
  SSS SSS  Forumu Ara   Etkinlikler   Kayıt Ol Kayıt Ol  Giriş Giriş

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 Yanıt Yaz
Yazar
Mesaj
  Konu Arama Konu Arama  Topic Seçenekleri Topic Seçenekleri
mervenur.demic Açılır Kutu İzle
Yeni Üye
Yeni Üye


Kayıt Tarihi: 25 Ekim 2018
Durum: Aktif Değil
Puanlar: 262
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı mervenur.demic Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: Seri Kodundan Stok Kodu ve Seri Kaydı Desteği
    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
Yukarı Dön
 Yanıt Yaz Yanıt Yaz
  Konu Paylaş   

Forum Atla Forum İzinleri Açılır Kutu İzle