Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Ambarlar Arası Transfer İşlemleri

Anchor
_Toc95424338
_Toc95424338

Transfer İşlemleri iki ambar arasında olabileceği gibi depo içerisinde de olabilir, buradaki fark ambarlar arası transfer işleminde oluşan fiş ERP'ye entegre edilir depo içerisinde oluşan Yer Değiştirme fişi ise ERP'ye entegre edilmez. Bu iki fiş arasındaki fark Hedef Ambar bilgisidir, Yer Değiştirme fişinde kaynak ve hedef ambar bilgisi aynı olurken Ambarlar arası transfer fişinde ise farklı seçilir.
BackOffice Transfer İşlemleri
Diğer fişlerde olduğu gibi transfer fişinde de önce emir sonra stok fişi oluşturulur. Eğer transfer fişi bir talebe istinaden gerçekleşecek ise o zaman ERP'deki talep fişi WMS Platform->Transfer->Siparişler menüsü altına aktarılır. Buradaki talep fişi önce emire sonra emri stok fişine dönüştürülerek talebe istinaden ambar transfer malzeme fişi ERP'ye geri aktarılır.
Transfer fişi diğer fişlerden farklı olarak Hedef bilgiler de seçilmelidir;

  • Hedef Ambar
  • Hedef Adres
  • Hedef Taşıma Kabı (zorunlu değil)

Eğer işlem yer değiştirme ise o zaman kaynak ve hedef ambar aynı seçilir,
Image Added
Eğer yer değiştirme işlemi sadece malzemeyi bir lokasyondan başka bir lokasyona taşımak ise o zaman malzeme seçilir, miktar girilir ve kaynak adres ile hedef adres girilir. Aşağıdaki örnekte göreceğiniz gibi buradaki tek fark kaynak ile hedef adreslerin farklı olmasıdır.
Image Added
Eğer bu işlem bir ambar transfer fişi olsaydı o zaman fiş türü değiştirilip hedef ambar ve hedef adres bilgileri değiştirilerek işlem gerçekleşirdi.
Image Added
Transfer işleminde taşıma kabı kullanımı tam taşıma kabı ile taşıma kabı içerisinden belli bir miktarı transfer olarak gerçekleşebilir. Tam taşıma kabı transfer işleminde satırda sadece kaynak ve hedefte aynı taşıma kabı seçilmesi yeterlidir. Burada malzeme seçimine gerek yoktur.
Image Added
Eğer malzeme seçimi yapılıp hedef taşıma kabı bilgisi boş bırakılırsa o zaman sadece miktar kadar stok hareket etmiş olacak ama taşıma kabı kaynak adreste kalacaktır. Image Added
Eğer bir adresteki malzemeler yeni bir taşıma kabına trasnfer edilmek istenirse o zaman kaynak taşıma kabı boş bırakılp hedef taşıma kabı alanı doldurulur ve malzeme seçilerek miktar girişi yapılır.
Image Added
Taşıma kaplı transfer işlemlerinde hangi alanları dolu olması gerektiğini gösteren tablo aşağıdaki gibidir.
Image Added
Terminal Transfer İşlemleri
Terminal ile transfer süreci aşağıdaki işlem adımları ile gerçekleşir;

  1. Fiş türü seçilir

Image Added

  1. Kaynak ve hedef bilgiler seçilir.

Image Added

  1. Satır bilgileri sorulur

Image Added
Eğer işlem paletli ise yukarıda olduğu gibi 2 seçenek sorulur. Eğer malzeme barkodu girildiyse doğrudan miktar sorulur.
Terminal Script Transfer Uyarlma Kodları
Transfer işlemi için örnek script kodu satır aralarında yorumlar ile aşağıdaki gibidir.
BeginForm(TransferBaslik)
KeyFunction("ESC",GoForm(AnaMenu))
ClearScreen()
Text(0,0,"Transfer İşlemleri")
ResetVariables(

Wiki Markup
\{"name":\["
@HedefSira","@KaynakSira","@@Address","@@Address2","@fisTurSecim","@@Warehouse","@@Warehouse2","@@Slip","@@WorkOrder","@@WorkOrderLine","@@SlipLine"]})
ShowMessage({"title":"Seçim","message":"Transfer İşlem Türü","buttons":"Ambar Transfer|Yer Değiştirme"},@fisTurSecim)
DepoSecimi:
////Fiş türü seçim işlemleri
If(@fisTurSecim=1)
//Ambart Transfer Fiş Türü Seçimi
CustomSlipType.Get(25)
Warehouse.List("","Code",@KaynakDepoListe)
PopupView(@KaynakDepoListe.rows,{"mode":"list","title":"Kaynak Depo Seçimi",
Wiki Markup
"fields":\["Code|Depo Kodu|15|L"
,"Name|Depo Adı|15|L"]},@KaynakSira)
Warehouse.Get(@[email protected])
If(@@Warehouse.Id="")
ShowMessage({"title":"UYARI","message":"Depo Seçilemedi","buttons":"TAMAM"},@Mesaj)
Goto(DepoSecimi)
EndIf()
Warehouse.List("Id!=@@Warehouse.Id","Code",@HedefDepoListe)
PopupView(@HedefDepoListe.rows,{"mode":"list","title":"Kaynak Depo Seçimi",
Wiki Markup
"fields":\["Code|Depo Kodu|15|L"
,"Name|Depo Adı|15|L"]},@HedefSira)
Warehouse.Get(@[email protected],@@Warehouse2)
If(@@Warehouse2.Id="")
ShowMessage({"title":"UYARI","message":"Hedef Depo Seçilemedi","buttons":"TAMAM"},@Mesaj)
Goto(DepoSecimi)
EndIf()
Else()
//Yer Değiştir Fiş Türü Seçimi
Warehouse.Get(@@LoginUser.DefaultWarehouseId)
Warehouse.Get(@@Warehouse.Id,@@Warehouse2)
CustomSlipType.Get(1)
EndIf()
///Aynı güne, aynı fiş türünden, aynı kullanıcıya ait, açık Emir Fişi yoksa yenisi açılır
WorkOrder.Get("SlipType=3 AND (StateId<>14 OR StateId <>15) AND CustomSlipTypeId=@@CustomSlipType.Id AND Warehouse2Id=@@Warehouse2.Id AND WarehouseId=@@Warehouse.Id AND CreatedBy=@@LoginUser.Id AND CONVERT(date, CreatedDate)=CONVERT(date, getdate())")
If(@@WorkOrder.Id="")
WorkOrder.New({"SlipType":"3"},1)
EndIf()
///Emire ait Beklemede ve İşleme Alındı fiş varsa seçilir yoksa yeni fiş açılır
Slip.Get("WorkOrderId=@@WorkOrder.Id AND (StateId=16 OR StateId=17)")
If(@@Slip.Id="")
Slip.New({"SlipType":"3"},1)
EndIf()
KaynakAdresSecimi:
ClearScreen()
Text(0,0,"@@CustomSlipType.Name İşlemleri")
ResetVariables(
Wiki Markup
\{"name":\["
@@Address","@@Address2","@AdresListesi","@HedefAdresListesi"]})
////Kaynak Adres Seçimi
/// Adres Seçimi, tek adres ise otomatik seçer birden çok adres ise liste çıkartır
Address.List("WarehouseId=@@Warehouse.Id","",@AdresListesi)
If(@AdresListesi.rowCount<1)
ShowMessage({"title":"UYARI","message":" Adres Bulunamadı","buttons":"TAMAM"},@Mesaj)
Goto(KaynakAdresSecimi)
EndIf()
If(@AdresListesi.rowCount=1)
Address.Get(@AdresListesi.rows.1.Id)
Else()
PopupView(@AdresListesi.rows,{"mode":"list","title":"@@Warehouse.Code-@@Warehouse.Name Kaynak Adres Listesi",
Wiki Markup
"fields":\["Address|Adres Tanımı|15|L"\]\}
,@Sira)
Address.Get(@[email protected])
EndIf()
////Hedef Adres Seçimi
/// Adres Seçimi, tek adres ise otomatik seçer birden çok adres ise liste çıkartır
Address.List("WarehouseId=@@Warehouse2.Id AND Id!=@@Address.Id","",@HedefAdresListesi)
If(@HedefAdresListesi.rowCount<1)
ShowMessage({"title":"UYARI","message":" Adres Bulunamadı","buttons":"TAMAM"},@Mesaj)
Goto(KaynakAdresSecimi)
EndIf()
If(@HedefAdresListesi.rowCount=1)
Address.Get(@HedefAdresListesi.rows.1.Id,@@Address2)
Else()
PopupView(@HedefAdresListesi.rows,{"mode":"list","title":"@@Warehouse2.Code-@@Warehouse2.Name Hedef Adres",
Wiki Markup
"fields":\["Address|Adres Tanımı|15|L"\]\}
,@Sira)
Address.Get(@[email protected],@@Address2)
EndIf()
///Palet veya ürün okutulur
PaletVeyaUrun:
ResetVariables(
Wiki Markup
\{"name":\["
@@ContainerType","@@Container2","@@Container"]})
Text(1,1,"@@Warehouse.Code-@@Warehouse.Name -> @@Warehouse2.Code-@@Warehouse2.Name",{"title":"Kaynak Ambar | Hedef Ambar","style": {"color":"Red","titleColor":"Blue","size":"2","effect":"Bold"}})
Text(1,2,"@@Address.Address -> @@Address2.Address",{"title":"Kaynak | Hedef Adres","style": {"color":"Red","titleColor":"Blue","size":"2","effect":"Bold"}})
Input(1,3,
Wiki Markup
"Palet veya Malzeme  \[0-ENTER Adres Seçim\]:"
,{"type":"text","min":"1", "max":"105","style": {"titleColor":"Green"}},@Barkod)
If(@Barkod="0",Goto(KaynakAdresSecimi))
///Palet Kaynak Adres stokunda varsa işlem türü kontrol edilir Yoksa Malzeme Kontrol Eder
/// İşlem Türleri
/// 1 = TamPalet
/// 2 = Paletin içinden ürün çıkartılıp adrese transfer
/// 3 = Paletten Yeni Palete veya var olan Palete transfer
PaletKontrol:
Sql("select * from StockTotalView where LPN=@Barkod AND Address=@@Address.Address and Stok>0",@PaletKaynakAdresStokKontrol)
If(@PaletKaynakAdresStokKontrol.rowCount>0)
Container.Get("LPN='@Barkod'")
ShowMessage({"title":"SORU?","message":"Palet Barkod: @@Container.LPN \n Transfer Türü","buttons":"Tam Palet|Palet İçinden|Paletten Palete"},@TTuru)
CaseGoto(@TTuru,{"1":"TamPalet","2":"PaletIcinden","3":"PalettenPalete"})
Else()
Goto(MalzemeKontrol)
EndIf()
/// 1 = TamPalet
TamPalet:
Container.Get(@@Container.Id,@@Container2)
ResetVariables(
Wiki Markup
\{"name":\["
@@Item"]})
WorkOrderLine.New({"SlipType":"3","Quantity" : "1"},1)
SlipLine.New({"SlipType":"3","Quantity" : "1"},1)
If(@Response.Status="-1")
ShowMessage({"title":"Fiş Kaydetme Hatası", "message" : "@Response.Message ", "buttons" : "Tamam"},@secim)
Goto(PaletVeyaUrun)
EndIf()
Goto(PaletVeyaUrun)
/// 3 = Paletten Yeni Palete veya var olan Palete transfer
PalettenPalete:
ClearLines(3,10)
Input(0,0,
Wiki Markup
"Hedef Palet \[0-ENTER Yeni Palet\]:"
,{"type":"text","min":"1", "max":"105","style": {"titleColor":"Green"}},@Palet2Barkod)
If(@Palet2Barkod="0")
ResetVariables(
Wiki Markup
\{"name":\["
@@ContainerType","@@Container2","@@Container"]})
ContainerType.List("","",@ContainerTipi)
PopupView(@ContainerTipi.rows,{"mode":"list","title":"Kabul Palet Türü",
Wiki Markup
"fields":\["LPNPrefix|Kodu|15|L"
,"Code|Açıklama|15|L"]},@Sira)
ContainerType.Get(@[email protected])
If(@@ContainerType="")
ShowMessage({"title":"UYARI","message":"Taşıma kabı tipi seçilemedi","buttons":"TAMAM"},@Secenek)
Goto(PalettenPalete)
EndIf()
Container.Generate({"Count":"1","Description":"@[email protected]"},@@Container2)
Print("PaletEtiket",@@LoginUser.PrinterId,1,{"Id":"@@Container2.Id"})
Set(@Palet2Barkod,@@Container2.LPN)
Else()
///Hedef Palet Yeni Değilse Stokta var mı?
Sql("select * from StockTotalView where LPN=@Palet2Barkod AND Address=@@Address.Address",@HedefPaletStokKontrol)
If(@HedefPaletStokKontrol.rowCount<0)
ShowMessage({"title":"UYARI","message":"Okutulan @Palet2Barkod Palet Barkodu \n Hefed @@Warehouse2.Code-@@Warehouse2.Name Ambarın \n @@Address2.Address Adresinde Yoktur","buttons":"TAMAM"},@Mesaj)
Goto(PalettenPalete)
EndIf()
EndIf()
Container.Get("LPN='@Barkod'")
Container.Get("LPN='@Palet2Barkod'",@@Container2)
If(@@Container2="")
ShowMessage({"title":"UYARI","message":"Taşıma kabı seçilemedi","buttons":"TAMAM"},@Secenek)
Goto(PalettenPalete)
EndIf()
/// 2 = Paletin içinden ürün çıkartılıp adrese transfer
PaletIcinden:
If(@PaletKaynakAdresStokKontrol.rowCount=1)
Set(@Barkod,@PaletKaynakAdresStokKontrol.rows.1.ItemCode)
Else()
Input(1,4,"@@Container.LPN içindeki Malzeme @@Container2.LPN
Wiki Markup
\[0-ENTER Adres Seçim\]:"
,{"type":"text","min":"1", "max":"105","style": {"titleColor":"Green"}},@Barkod)
EndIf()
If(@Barkod="0",Goto(KaynakAdresSecimi))
MalzemeKontrol:
UnitBarcode.Get("Barcode='@Barkod'")
If(@@Item.Id="")
Item.Get("Code='@Barkod'")
If(@@Item.Id="")
Item.List("Name like '%'+@Barkod+'%'","",@MalzemeListesi)
If(@MalzemeListesi.rowCount<1)
ShowMessage({"title":"UYARI","message":"Girilen Bilgilere Ait Malzeme Bulunamadı","buttons":"TAMAM"},@Secenek)
Goto(PaletVeyaUrun)
EndIf()
PopupView(@MalzemeListesi.rows,{"mode":"list","title":"Malzemelr",
Wiki Markup
"fields":\["Code|Kodu|15|L"
,"Name|Açıklaması|35|L"],"style":@Style.app.popup},@Sira)
Item.Get(@[email protected])
/// Secilen Malzemeye Ait Birim Sistesini Getirir
ItemUnit.List("ItemId=@@Item.Id","",@BirimListe)
PopupView(@BirimListe.rows,{"mode":"list","title":"Malzemelr",
Wiki Markup
"fields":\["Code|Kodu|15|L"\]
,"style":@Style.app.popup},@Sira)
ItemUnit.Get(@[email protected])
EndIf()
EndIf()
///Takip Turu Kontrol
Text(1,3,"@@Container.LPN -> @@Container2.LPN",{"title":"Kaynak Palet | Hedef PAlet","style": {"color":"Red","titleColor":"Blue","size":"2","effect":"Bold"}})
Text(1,4,"@@Item.Code | @@Item.Name",{"title":"Malzeme Kodu | Malzeme Açıklaması","style": {"color":"Red","titleColor":"Blue","size":"2","effect":"Bold"}})
CaseGoto(@@Item.TrackingType,{"0":"TakipsizMiktarSor","1":"LotBilgisiniSor","2":"SeriSatirAc"})
TakipsizMiktarSor:
///Takipsiz Stok Kontrol
If(@@Container!="")
/// İşlem paletli ise
Sql("select ISNULL(SUM(Stok),0) kalan from StockTotalView where LPN=@@Container.LPN AND Address=@@Address.Address AND ItemId=@@Item.Id and Stok>0",@KaynakAdresStokKontrol)
Else()
///İşlem paletsiz ise
Sql("select ISNULL(SUM(Stok),0) kalan from StockTotalView where LPN IS NULL AND ItemId=@@Item.Id AND Address=@@Address.Address and Stok>0",@KaynakAdresStokKontrol)
EndIf()
Input(1,5,"@@ItemUnit.Code
Wiki Markup
Miktarı \[0-ENTER Yeni Ürün\]: "
,{"type":"decimal","min":"0.05", "max":"99999999.0","style": {"titleColor":"Green"}},@miktar)
If(@Barkod="0",Goto(PaletVeyaUrun))
If(@miktar>@KaynakAdresStokKontrol.rows.1.kalan)
ShowMessage({"title":"Uyarı", "message" : "Malzemeye ait @@Warehouse.Code-@@Warehouse.Name Ambarın @@Address.Address Adresinde Stok Yetersiz \n Stok Miktarı: @KaynakAdresStokKontrol.rows.1.kalan @@ItemUnit.Code", "buttons" : "Tamam"},@secim)
Goto(TakipsizMiktarSor)
EndIf()
WorkOrderLine.New({"SlipType":"3","Quantity" : "@miktar"},1)
SlipLine.New({"SlipType":"3","Quantity" : "@miktar"},1)
If(@Response.Status="-1")
ShowMessage({"title":"Fiş Kaydetme Hatası", "message" : "@Response.Message ", "buttons" : "Tamam"},@secim)
EndIf()
Goto(PaletVeyaUrun)
LotBilgisiniSor:
Input(1,5,"@@Item.Code-@@Item.Name @@ItemUnit.Code
Wiki Markup
Lot No \[0-ENTER Yeni Ürün\]: "
,{"type":"text","min":"1", "max":"105"},@TakipNo)
If(@Barkod="0",Goto(PaletVeyaUrun))
/// Lot Stok Kontrol
If(@@Container!="")
/// İşlem paletli ilse
Sql("select ISNULL(SUM(Stok),0) kalan from StockTotalView where TrackingNumber=@TakipNo AND LPN=@@Container.LPN AND Address=@@Address.Address AND ItemId=@@Item.Id and Stok>0",@KaynakAdresStokKontrol)
Else()
///İşlem paletsiz ise
Sql("select ISNULL(SUM(Stok),0) kalan from StockTotalView where TrackingNumber=@TakipNo AND ItemId=@@Item.Id AND Address=@@Address.Address and Stok>0",@KaynakAdresStokKontrol)
EndIf()
Input(1,6,"@@ItemUnit.Code Miktarı: ",{"type":"decimal","min":"0.05", "max":"99999999.0","style": {"titleColor":"Green"}},@miktar)
If(@miktar>@KaynakAdresStokKontrol.rows.1.kalan)
ShowMessage({"title":"Uyarı", "message" : "Malzemeye ait @@Warehouse.Code-@@Warehouse.Name Ambarın @@Address.Address Adresinde Stok Yetersiz \n Stok Miktarı: @KaynakAdresStokKontrol.rows.1.kalan @@ItemUnit.Code", "buttons" : "Tamam"},@secim)
Goto(LotBilgisiniSor)
EndIf()
WorkOrderLine.New({"SlipType":"3","Quantity" : "@miktar"},0)
SlipLine.New({"SlipType":"3","Quantity" : "@miktar"},0)
ItemTracking.New({"LineType":"4","Quantity":"@miktar","TrackingNumber":"@TakipNo"},1)
ItemTracking.New({"LineType":"5","Quantity":"@miktar","TrackingNumber":"@TakipNo"},1)
If(@Response.Status="-1")
ShowMessage({"title":"Fiş Kaydetme Hatası", "message" : "@Response.Message ", "buttons" : "Tamam"},@secim)
EndIf()
Goto(PaletVeyaUrun)
SeriSatirAc:
WorkOrderLine.New({"SlipType":"3","Quantity" : "1"},0)
SlipLine.New({"SlipType":"3","Quantity" : "1"},0)
SeriBilgisiAl:
Input(1,5,"@@Item.Code-@@Item.Name
Wiki Markup
Seri No \[0-ENTER Yeni Ürün\]: "
,{"type":"text","min":"1", "max":"105"},@TakipNo)
If(@TakipNo=0,Goto(PaletVeyaUrun))
/// Seri Kodlu Stok Kontrol
If(@@Container!="")
/// İşlem paletli ilse
Sql("select ISNULL(SUM(Stok),0) kalan from StockTotalView where TrackingNumber=@TakipNo AND LPN=@@Container.LPN AND Address=@@Address.Address AND ItemId=@@Item.Id and Stok>0",@KaynakAdresStokKontrol)
Else()
///İşlem paletsiz ise
Sql("select ISNULL(SUM(Stok),0) kalan from StockTotalView where TrackingNumber=@TakipNo AND ItemId=@@Item.Id AND Address=@@Address.Address and Stok>0",@KaynakAdresStokKontrol)
EndIf()
If(@KaynakAdresStokKontrol.rows.1.kalan<0)
ShowMessage({"title":"UYARI","message":"Malzemeye ve @TakipNo Seriye Ait \n @@Warehouse.Code-@@Warehouse.Name Ambarın \n @@Address.Address Adresinde \n Stok Yoktur","buttons":"TAMAM"},@Mesaj)
Goto(PaletVeyaUrun)
EndIf()
ItemTracking.New({"LineType":"4","Quantity":"1","TrackingNumber":"@TakipNo"},1)
ItemTracking.New({"LineType":"5","Quantity":"1","TrackingNumber":"@TakipNo"},1)
If(@Response.Status="-1")
ShowMessage({"title":"Fiş Kaydetme Hatası", "message" : "@Response.Message ", "buttons" : "Tamam"},@secim)
EndIf()
Goto(SeriBilgisiAl)
GoForm(AnaMenu)
EndForm()