BeginForm(OrderSlipBeforeInsert) Set(@RuleResponse.Status,"0") Sql("select LOGICAlREF,LINENO_,SPECODE2 from LOGOTIGER..LG_001_01_ORFLINE WHERE ORDFICHEREF = @ERPDATA.INTERNAL_REFERENCE ORDER BY LOGICALREF",@sqlresult) //IF(@sqlresult.rowCount>0) // For(@i,1,@ERPDATA.TRANSACTIONS.items.count,1) // Set(@WMSDATA.Lines.@i.ExtendedKeys.customcode2,@ERPDATA.TRANSACTIONS.items.@i.AUXIL_CODE) // Set(@WMSDATA.Lines.@i.ExtendedKeys.customcode2,@sqlresult.rows.@i.SPECODE2) // Next() //ENDIF() EndForm() BeginForm(WorkOrderSlipSave) Set(@RuleResponse.Status,"0") EndForm() BeginForm(WorkOrderLineSave) Set(@RuleResponse.Status,"0") //Set(@GridSelectList.rows.1.ProjectCode,"Test") EndForm() BeginForm(BeforeSave) Set(@RuleResponse.Status,"0") IF(@GridSelectList.rows.1.DocumentNumber!="Test"). Set(@RuleResponse.Status,"-1") Set(@RuleResponse.CustomMessage,"Döküman numarası hatalı !") EndIf() If(@RuleResponse.Status="0") Set(@RuleResponse.CustomMessage,"İşlem Tamamlandı") EndIf() Set(@Total,0.0) For(@i,1,@GridSelectList.rows.1.Lines.count,1) Set(@Total,@Total+@GridSelectList.rows.1.Lines.@i.XXXXXXXXXX) Next() EndForm() BeginForm(PostQuickProduction) Http("POST","http://192.168.1.23:32001/api/v1/token",{"Authorization":"Basic TG9nb1lhemlsaW1PY2VhbjppamJLVlhEb3BpZlBBdFcxL1VmN3VOTHE3RXFlQi94aVhWbmdJODZ4cDhsUWFFUVFsbkNvckpWeHI4OGJKaUorVEI2WXNkay8zaksvalhxV1YxWUp2UT09", "username":"1", "Content-Type":"application/x-www-form-urlencoded"},{"grant_type":"password","username":"LOGO","firmno":"001","password":"123"},@sonuc) text(1,1,"@sonuc.access_token") //Input(1,7,"wait... ",{"type":"text","max":"10","min":"1"},@temp) Http("POST","http://192.168.1.23:32001/api/v1/quickProductionSlips/",{"Content-Type": "application/json","Authorization":"Bearer @sonuc.access_token"}, {"FICHENO":"~","DATE":"2020-09-16T00:00:00","FTIME":"1516363","AUXIL_CODE":"","AUTH_CODE":"","ITEMREF":"1036","ITEM_CODE":"MM01","UOMREF":23,"UEDIT":"ADET","USREF":"5","UUNIT":"05","ORDERREF":"0","AMOUNT":"10","DEPARTMENT":"0","SOURCEINDEX":"0","PRODTYPE":"1","LOSTFACTOR":"0","PROJECTREF":"3","PROJECT_CODE":"","DEF":"HIZLIURETIM1","TRANSACTIONS":{"items":[{"STCREF":"1034","AMNT":"20","PRICE":"0","PERC":"0","MAINCREF":"1036","LINENO":"1","LOSTFACTOR":"10","SOURCEINDEX":"0","UOMREF":"23","CARDTYPE":"11","UEDIT":"ADET","UUNIT":"000,Merkez","CLIENTREF":"0","COMP_TYPE":"1"},{"STCREF":"1035","AMNT":"20","PRICE":"0","PERC":"0","MAINCREF":"1036","LINENO":"2","LOSTFACTOR":"01","SOURCEINDEX":"0","UOMREF":"23","CARDTYPE":"11","UEDIT":"ADET","UUNIT":"000,Merkez","CLIENTREF":"0","COMP_TYPE":"1"}]},"APPROVE_DATE":"1899-12-30T00:00:00","CREATE_STFICHES":"0","CALC_OPTION":"1","CLIENTREF":"0","CREATE_WH_FICHE":"0"},@sonuc) If(@Response.Status="-1") ShowMessage({"title":"HATA","message":"@Response.Message ","buttons":"TAMAM"},@secim) EndIf() EndForm() BeginForm(FillItemStockAmountForPlanningSlip) Set(@RuleErrorMessage,"") If(@GridSelectList.rowCount>1) Set(@RuleErrorMessage,"Kural'ı bir den fazla planlama için çalıştıramazsınız!") Goto(ExitForm) EndIf( ) Warehouse.Get(@GridSelectList.rows.1.WarehouseId) PlanningSlip.Get(@GridSelectList.rows.1.Id) IF(@@PlanningSlip.StateId>8) Set(@RuleErrorMessage,"@@PlanningSlip.SlipNumber Numaralı planlama statüsü bu işlem için uygun değil (Fiş satatüsü Planlandı durumunda olmalı) !") Goto(ExitForm) EndIf() PlanningSlipLine.List("SlipId=@@PlanningSlip.Id","Id",@PlanningSlipline) If(@PlanningSlipline="" or @PlanningSlipline.rowCount=0) Set(@RuleErrorMessage,"@@PlanningSlip.SlipNumber Numaralı planlamaya ait fiş satırı yok !") Goto(ExitForm) EndIf() For(@i,1,@PlanningSlipline.rowCount,1) PlanningSlipLine.Get(@PlanningSlipline.rows.@i.Id) Sql("select ItemId,Sum(TotalQuantity-ReservedQuantity) As Quantity from [dbo].[GetItemTotals](@@Warehouse.Id,0,NULL,NULL,@@Item.Id,@@ItemVariant.Id,NULL) GROUP By ItemId",@sqlResult) Set(@Quantity,0) IF(@sqlResult.rowCount>0) Set(@Quantity,@sqlResult.rows.1.Quantity) EndIf() // Satır birimi anabirimden farklıysa malzeme stok toplamı seçilen birime göre hesaplanıyor. If(@@ItemUnit.IsMasterUnit!=1) Set(@Quantity,@Quantity/(@@PlanningSlipLine.ConvFactor2*@@PlanningSlipLine.ConvFactor1)) EndIf() PlanningSlipLine.Set({"ItemAmount": "@Quantity"}) PlanningSlipLine.Save() IF(@Response.Status = "-1") Set(@RuleErrorMessage,"@Response.Message") Goto(ExitForm) EndIf() Next() Set(@RuleResponse.Status,"0") Goto(SuccsessExitForm) ExitForm: Set(@RuleResponse.Status,@Response.Status) Set(@RuleResponse.CustomMessage,"Hata oluştu : @RuleErrorMessage") Goto(ReturnForm) SuccsessExitForm: If(@RuleResponse.Status="0") Set(@RuleResponse.CustomMessage,"@@PlanningSlip.SlipNumber Numaralı Planlamaya ait malzemeler için Malzeme stok miktarları set edilmiştir.") EndIf() ReturnForm: Set(@Response.Message,"") EndForm() BeginForm(FillItemStockAmountForPlanningSlipLine) Sql("select ItemId,Sum(TotalQuantity-ReservedQuantity) As Quantity from [dbo].[GetItemTotals](@@PlanningSlipLine.WarehouseId,0,NULL,NULL,@@PlanningSlipLine.ItemId,@@PlanningSlipLine.VariantId,NULL) GROUP By ItemId",@sqlResult) Set(@Quantity,0) IF(@sqlResult.rowCount>0) Set(@Quantity,@sqlResult.rows.1.Quantity) EndIf() If(@@ItemUnit.IsMasterUnit!=1) Set(@Quantity,@Quantity/(@@PlanningSlipLine.ConvFactor2*@@PlanningSlipLine.ConvFactor1)) EndIf() Set(@RuleResponse.Status,"0") EndForm() BeginForm(ERPPostBefore) //Post edilen fiş nesnesindeki başlık tag leri post öncesnde kural ile manüple edilerek aşağıdaki şekilde gönderilebilir. Set(@ERPDATA.DOC_NUMBER,"ERPPostBefore") Set(@ERPDATA.TEST,"test") //Post edilen fiş nesnesindeki satırlarında for ile aşağıdaki şekilde dönülerek istenilen tagler set edilebilir. For(@i,1,@ERPDATA.TRANSACTIONS.items.count,1) Set(@ERPDATA.TRANSACTIONS.items.@i.DESCRIPTION,"Kural ile Post sırasında eklendi") Set(@ERPDATA.TRANSACTIONS.items.@i.FA_INFO.FIXED_AST_RGS.items.1.CODE,"rifat") //Post edilen fiş nesnesindeki satırın seri lot detaylrında for ile aşağıdaki şekilde dönülerek istenilen tagler set edilebilir. For(@k,1,@ERPDATA.TRANSACTIONS.items.@i.SL_DETAILS.items.count,1) Set(@ERPDATA.TRANSACTIONS.items.@i.SL_DETAILS.items.@k.LINEEXP,"Kural ile Post sırasında eklendi") Set(@ERPDATA.TRANSACTIONS.items.1.FA_INFO.items.1.FIXED_AST_RGS.items.1.CODE,"rifat") Set(@ERPDATA.TRANSACTIONS.items.1.FA_INFO.FIXED_AST_RGS.CODE,"CODE") Set(@ERPDATA.TRANSACTIONS.items.1.FA_INFO.FIXED_AST_RGS.SOURCE_WH,"1") Set(@ERPDATA.TRANSACTIONS.items.1.FA_INFO.FIXED_AST_RGS.DATE_ACQUIRED,"") Set(@ERPDATA.TRANSACTIONS.items.1.FA_INFO.FIXED_AST_RGS.DATE_DEPRSTART,"") Set(@ERPDATA.TRANSACTIONS.items.1.FA_INFO.FIXED_AST_RGS.QUANTITY,"10") Set(@ERPDATA.TRANSACTIONS.items.1.FA_INFO.FIXED_AST_RGS.VAT_POST_DUR,"1") Set(@ERPDATA.TRANSACTIONS.items.1.FA_INFO.FIXED_AST_RGS.DEPR_RATE,"0") Set(@ERPDATA.TRANSACTIONS.items.1.FA_INFO.FIXED_AST_RGS.DEPR_DUR,"0") Set(@ERPDATA.TRANSACTIONS.items.1.FA_INFO.FIXED_AST_RGS.DEPR_TYPE,"0") Set(@ERPDATA.TRANSACTIONS.items.1.FA_INFO.FIXED_AST_RGS.REVALUATE,"0") Set(@ERPDATA.TRANSACTIONS.items.1.FA_INFO.FIXED_AST_RGS.REV_DEPR,"0") Set(@ERPDATA.TRANSACTIONS.items.1.FA_INFO.FIXED_AST_RGS.RC_XRATE,"0") Set(@ERPDATA.TRANSACTIONS.items.1.FA_INFO.FIXED_AST_RGS.DEPR_TYPE2,"0") Set(@ERPDATA.TRANSACTIONS.items.1.FA_INFO.FIXED_AST_RGS.DATE_DEPRSTART2,"132382977") Set(@ERPDATA.TRANSACTIONS.items.1.FA_INFO.items.1.FIXED_AST_RGS.items.1.QUANTITY,"10") Next() Next() EndForm() BeginForm(BeforeItemInsert) Set(@WMSDATA.Name,@WMSDATA.Name+" BeforeItemInsert") EndForm() //------------------------------------------------------------------------------------------------------------ BeginForm(BeforeDispatchPost) sql("select TOP 1 CODE from LOGOTIGER..L_SHPAGENT",@sqlresult) If(@sqlresult.rowCount>0) // L_SHPAGENT tablosunda kayıtlı taşıyıcı kodlarından birisinin bu şekilde set edilmesi yeterlidir. Set(@ERPDATA.SHIPPING_AGENT,@sqlresult.rows.1.CODE) Set(@ERPDATA.TEST,"test") Set(@ERPDATA.TRANSACTIONS.items.1.FA_INFO.FIXED_AST_RGS.CODE,"rifat") Set(@ERPDATA.TRANSACTIONS.items.1.FA_INFO.items.1.FIXED_AST_RGS.items.1.CODE,"rifat") Set(@ERPDATA.TRANSACTIONS.items.1.FA_INFO.items.1.FIXED_AST_RGS.items.1.QUANTITY,"10") EndIf() EndForm() BeginForm(LineType8Post) Set(@i,1) Set(@ERPDATA.TRANSACTIONS.items.@i.TYPE,"8") Set(@ERPDATA.TRANSACTIONS.items.@i.MASTER_CODE,"05.01.DNT.0004") Set(@ERPDATA.TRANSACTIONS.items.@i.UNIT_CODE,"ADET") Set(@ERPDATA.TRANSACTIONS.items.@i.FIXAST_CODE,"~") Set(@ERPDATA.TRANSACTIONS.items.@i.FIXAST_STATUS,"1") Set(@ERPDATA.TRANSACTIONS.items.@i.FA_INFO.FIXED_AST_RGS.CODE,"~") Set(@ERPDATA.TRANSACTIONS.items.@i.FA_INFO.FIXED_AST_RGS.RC_XRATE,"2") Set(@ERPDATA.TRANSACTIONS.items.@i.FA_INFO.FIXED_AST_RGS.SOURCE_WH,"1") Set(@ERPDATA.TRANSACTIONS.items.@i.DATE_ACQUIRED,"10.08.2020") Set(@ERPDATA.TRANSACTIONS.items.@i.FA_INFO.FIXED_AST_RGS.DATE_DEPRSTART,"01.01.2020") Set(@ERPDATA.TRANSACTIONS.items.@i.FA_INFO.FIXED_AST_RGS.QUANTITY,"1") Set(@ERPDATA.TRANSACTIONS.items.@i.FA_INFO.FIXED_AST_RGS.VAT_POST_DUR,"1") Set(@ERPDATA.TRANSACTIONS.items.@i.FA_INFO.FIXED_AST_RGS.DEPR_RATE,"2") Set(@ERPDATA.TRANSACTIONS.items.@i.FA_INFO.FIXED_AST_RGS.DEPR_DUR,"50") Set(@ERPDATA.TRANSACTIONS.items.@i.FA_INFO.FIXED_AST_RGS.DEPR_TYPE,"1") Set(@ERPDATA.TRANSACTIONS.items.@i.FA_INFO.FIXED_AST_RGS.REVALUATE,"1") Set(@ERPDATA.TRANSACTIONS.items.@i.FA_INFO.FIXED_AST_RGS.REV_DEPR,"1") Set(@ERPDATA.TRANSACTIONS.items.@i.FA_INFO.FIXED_AST_RGS.DEPR_TYPE2,"1") EndForm() BeginForm(ProcessWorkOrderForShipmentTransfer) Set(@RuleErrorMessage,"") If(@GridSelectList.rowCount>1) Set(@RuleErrorMessage,"Kural'ı bir den fazla planlama için çalıştıramazsınız!") Goto(ExitForm) EndIf( ) Warehouse.Get(@GridSelectList.rows.1.WarehouseId) PlanningSlip.Get(@GridSelectList.rows.1.Id) Set(@RuleErrorMessage,"") Warehouse.Get(@@PlanningSlip.WarehouseId,@Warehouse) WorkOrder.Get("PlanningSlipId=@@PlanningSlip.Id and SlipType=3 and StateId<13 and CustomSlipTypeId is NULL") IF(@@WorkOrder="") Set(@RuleErrorMessage,"@@PlanningSlip.SlipNumber Numaralı planlamaya ait Emir fişi oluşturulmamış yada Emir fişi Statusu Beklemede değil !") Goto(ExitForm) EndIf() IF(@@WorkOrder.CustomSlipTypeId!="" or @@WorkOrder.CustomSlipTypeId !=34, Goto(ExitForm)) IF(@@WorkOrder.StateId>12) //İşleme alındı veya Tamamlandı ise Çık Beklemede ise devam Set(@RuleErrorMessage,"@@PlanningSlip.SlipNumber Numaralı planlamaya ait Transfer Emir fişinin (@@WorkOrder.SlipNumber) statüsü bu işlem için uygun durumda değil !") Goto(ExitForm) EndIf() PlanningSlip.Get(@@WorkOrder.PlanningSlipId) IF(@@PlanningSlip="") Set(@RuleErrorMessage,"Planlama okunamadı!") Goto(ExitForm) Else() IF(@@PlanningSlip.StateId>8 ) //Planlama bulunamazsa ve Planlama statüsü İşleme Alındı ise Çık Set(@RuleErrorMessage,"Planlama statüsü Planlandı durumunda değil, işleme devam edilemiyor.!") Goto(ExitForm) EndIf() EndIf() CustomSlipType.Get("Name='Sevkiyat Mal Toplama'") Address.Get("WarehouseId=@@Warehouse.Id and Address='MalToplama-01'",@Address2) // Mal Toplamanın yapılacağı adres WorkOrderLine.List("SlipId=@@WorkOrder.Id","LineNumber",@WorkOrderLine) If(@WorkOrderLine.rowCount>0) For(@i,1,@WorkOrderLine.rowCount,1) Set(@@Warehouse,@Warehouse) Set(@@Warehouse2,@@Warehouse) WorkOrderLine.Get(@WorkOrderLine.rows.@i.Id) Set(@@Address2,@Address2) Set(@Condition,'') Set(@VariantId,0) IF(@WorkOrderLine.rows.@i.VariantId!="") Set(@VariantId,@WorkOrderLine.rows.@i.VariantId) Set(@Condition," and VariantId=@VariantId") EndIf() Set(@quantity,@WorkOrderLine.rows.@i.Quantity) Set(@RemAmount,@quantity) Sql({"report":"ItemListByAddressForShipment","WarehouseId":"@@Warehouse.Id","ItemId":"@WorkOrderLine.rows.@i.ItemId","VariantId":"@VariantId"},@sqlResult) If(@sqlResult.rowCount>0) For(@k,1,@sqlResult.rowCount,1) ResetVariables({"name":["@@Address","@@ItemTracking"]}) If(@RemAmount>0) Address.Get(@sqlResult.rows.@k.AddressId,@Address) If(@Address="") Set(@RuleErrorMessage,"ItemTracking adresi boş yada hatalı !") Goto(ExitForm) EndIf() Set(@@Address,@Address) Set(@ItmQuantity,@RemAmount) Set(@ProcessUnitAmount,@sqlResult.rows.@k.ActualStock/(@WorkOrderLine.rows.@i.ConvFactor2*@WorkOrderLine.rows.@i.ConvFactor1)) If(@RemAmount>@ProcessUnitAmount) Set(@ItmQuantity,@ProcessUnitAmount) EndIf() Set(@RemAmount,@RemAmount-@ItmQuantity) Set(@@Warehouse,@Warehouse) Set(@@Warehouse2,@@Warehouse) Arp.Get(@WorkOrderLine.rows.@i.ArpId) If(@@Item.TrackingType!="0") WorkOrderLine.New({"SlipType":"3","Quantity":"@ItmQuantity","Priority":"@WorkOrderLine.rows.@i.Priority"},0) Else() WorkOrderLine.New({"SlipType":"3","Quantity":"@ItmQuantity","Priority":"@WorkOrderLine.rows.@i.Priority"},1) EndIf() IF(@Response.Status = "-1") Set(@RuleErrorMessage,"@Response.Message") Goto(ExitForm) EndIf() // Sevkiyat için transfer emrine adresleri set edilen malzemeler bu planlama için rezerv ediliyor ReservationSlip.Get("WorkOrderId=@@WorkOrder.Id and PlanningSlipId=@@WorkOrder.PlanningSlipId Active='1'") If(@@ReservationSlip.Id = "") PlanningSlip.Get(@@WorkOrder.PlanningSlipId) ReservationSlip.New({"SlipType":"2"},1) IF(@Response.Status = "-1") Set(@RuleErrorMessage,"@Response.Message") Goto(ExitForm) EndIf() EndIf() ResetVariables({"name":["@@ReservationSlipLine"]}) ReservationSlipLine.New({"SlipType":"2","Quantity":"@ItmQuantity"},0) If(@@Item.TrackingType="0") ReservationSlipLine.Save() IF(@Response.Status = "-1") Set(@RuleErrorMessage,"@Response.Message") Goto(ExitForm) EndIf() EndIf() Set(@@Warehouse2,@@Warehouse) If(@@Item.TrackingType!="0") ItemUnit.Get(@sqlResult.rows.@k.UnitId) If(@@ItemUnit="",Goto(ExitForm)) ResetVariables({"name":["@@ItemTracking"]}) ItemTracking.New({"LineType":"4","Quantity":"@ItmQuantity","TrackingNumber":"@sqlResult.rows.@k.TrackingNumber","ExpirationDate":"@sqlResult.rows.@k.ExpirationDate","ProductionDate":"@sqlResult.rows.@k.ProductionDate"},1) IF(@Response.Status = "-1") Set(@RuleErrorMessage,"@Response.Message") Goto(ExitForm) EndIf() Sql("Delete TransactionDetail Where WorkOrderLineId=@@WorkOrderLine.Id and ISNULL(TrackingNumber,'')=''",@result) Planlamadan emir oluşturunca akip numarasız serilot detayı oluşturulduğu için siliniyor. IF(@@ReservationSlipLine!="") ItemTracking.New({"LineType":"6","Quantity":"@ItmQuantity","TrackingNumber":"@sqlResult.rows.@k.TrackingNumber","ExpirationDate":"@sqlResult.rows.@k.ExpirationDate","ProductionDate":"@sqlResult.rows.@k.ProductionDate"},1) IF(@Response.Status = "-1") Set(@RuleErrorMessage,"@Response.Message") Goto(ExitForm) EndIf() EndIf() Set(@qntty,@ItmQuantity) Sql("select ISNULL(Sum(Quantity),0) Quantity from TransactionDetail Where WorkOrderLineId=@@WorkOrderLine.Id and IOCode=3",@result) If(@result.rows.1.Quantity>0) Set(@qntty,@result.rows.1.Quantity) EndIf() Sql("Update WorkOrderLine set Quantity=@qntty Where Id=@@WorkOrderLine.Id",@result) Else() Set(@@WorkOrderLine,{"ReservarionSlipLine":"@@ReservationSlipLine.Id"}) WorkOrderLine.Save() IF(@Response.Status = "-1") Set(@RuleErrorMessage,"@Response.Message") Goto(ExitForm) EndIf() EndIf() Else() Set(@k,@sqlResult.rowCount) EndIf() Next() EndIf() Next() EndIf() //Emir fişinde adresi set edilemeyen malzeme satırlatrı fişten siliniyor. (Depoda olmayan bir malzeme de bu durum olabilir.) Sql("Delete WorkOrderLine Where SlipId=@@WorkOrder.Id and ISNULL(AddressId,0)=0",@result) CustomState.Get(9) //Planlama fişi fişi statusu İşleme Alındı yapılıyor. ResetVariables({"name":["@@Arp"]}) IF(@@PlanningSlip.ArpId!="") Arp.Get(@@PlanningSlip.ArpId) EndIf() PlanningSlip.Save() IF(@Response.Status = "-1") Set(@RuleErrorMessage,"@Response.Message") Goto(ExitForm) EndIf() CustomState.Get(13) //Emir fişi statusu İşleme Alındı yapılıyor. WorkOrder.Save() IF(@Response.Status = "-1") Set(@RuleErrorMessage,"@Response.Message") Goto(ExitForm) EndIf() Set(@RuleResponse.Status,"0") Goto(SuccsessExitForm) ExitForm: Set(@RuleResponse.Status,@Response.Status) Set(@RuleResponse.CustomMessage,"Hata oluştu : @RuleErrorMessage") Goto(ReturnForm) SuccsessExitForm: If(@RuleResponse.Status="0") Set(@RuleResponse.CustomMessage,"@@PlanningSlip.SlipNumber Numaralı Planlamaya ait malzemeler için Sevkiyat Transfer Emri düzenlendi. Sevkiyat süreci başlatılmıştır.") EndIf() ReturnForm: Set(@Response.Message,"") EndForm() BeginForm(Test) Warehouse.Get(@@PlanningSlip.WarehouseId) ExitForm: Set(@test,1) EndForm() BeginForm(PlanlamaKullaniciBelirle) Set(@userId, {Actions.1.RuleResponse}) If(@userId != "") For(@i,1,@GridSelectList.rowCount,1) Warehouse.Get(@GridSelectList.rows.@i.WarehouseId) PlanningSlip.Get(@GridSelectList.rows.@i.Id) If(@@PlanningSlip!="") PlanningSlipLine.List("SlipId=@@PlanningSlip.Id", "" , @PlanningSlipLine) For(@k,1,@PlanningSlipLine.rowCount,1) PlanningSlipLine.Get(@PlanningSlipLine.rows.@k.Id) If(@@PlanningSlipLine!="") User.Get(@userId) PlanningSlipLine.Save() EndIf() Next() EndIf() Next() EndIf() EndForm() BeginForm(PlanlamaSatirlariKullaniciBelirle) Set(@userId, {Actions.1.RuleResponse}) If(@userId != "") For(@i,1,@GridSelectList.rowCount,1) Warehouse.Get(@GridSelectList.rows.@i.WarehouseId) If(@@Warehouse!="") PlanningSlip.Get(@GridSelectList.rows.@i.SlipId) PlanningSlipLine.Get(@GridSelectList.rows.@i.Id) If(@@PlanningSlipLine!="") User.Get(@userId) PlanningSlipLine.Save() EndIf() EndIf() Next() EndIf() EndForm() BeginForm(PlanlamaSatirlariOncelikBelirle) Set(@Oncelik, {Actions.1.RuleResponse}) If(@Oncelik != "") For(@i,1,@GridSelectList.rowCount,1) Warehouse.Get(@GridSelectList.rows.@i.WarehouseId) If(@@Warehouse!="") PlanningSlip.Get(@GridSelectList.rows.@i.SlipId) PlanningSlipLine.Get(@GridSelectList.rows.@i.Id) If(@@PlanningSlipLine!="") PlanningSlipLine.Set({"Priority": "@Oncelik"}) PlanningSlipLine.Save() EndIf() EndIf() Next() EndIf() EndForm() BeginForm(GenerateUsageSlipWithTransferWorkOrder) If(@GridSelectList.rowCount>1) Set(@RuleErrorMessage,"Birden fazla emir fişi seçemezsiniz !") Goto(ExitForm) EndIf() Warehouse.Get(@GridSelectList.rows.1.WarehouseId) WorkOrder.Get(@GridSelectList.rows.1.Id) If(@@WorkOrder.Id="") Set(@RuleErrorMessage,"Emir fişi okunamad!") Goto(ExitForm) EndIf() sql("select * From WorkOrder Where CustomSlipTypeId=24 and ParentWorkOrderId=@@WorkOrder.Id",@result) If(@result.rowCount>0) Set(@RuleErrorMessage,"@@WorkOrder.SlipNumber Bu fiş için daha önce Sarf fişi oluşturulmuş !") Goto(ExitForm) EndIf() Set(@CurrentWo,@@WorkOrder) WorkOrderLine.List("SlipId=@@WorkOrder.Id","",@WorkOrderLineList) IF(@WorkOrderLineList.rowCount=0) Set(@RuleErrorMessage,"@@WorkOrder.SlipNumber Numaralı Emir fişine ait satır yok !") Goto(ExitForm) EndIf() For(@i,1,@WorkOrderLineList.rowCount,1) ResetVariables({"Name":["@@WorkOrderLine","@@ItemTracking","@@Warehouse","@@Address"]}) WorkOrder.Get(@WorkOrderLineList.rows.@i.SlipId) If(@@WorkOrder.Id="") Set(@RuleErrorMessage,"@WorkOrderLineList.rows.@i.SlipId Id li Emir fişi okunamad!") Goto(ExitForm) EndIf() WorkOrderLine.Get(@WorkOrderLineList.rows.@i.Id) IF(@@WorkOrderLine.Id="") Set(@RuleErrorMessage,"@WorkOrderLineList.rows.@i.Id Id li Emir fişi satırı okunamadı !") Goto(ExitForm) EndIf() sql("select Sum(IsNull(TotalQuantity,0)-IsNull(ReservedQuantity,0)) Total from[dbo].[GetTrackingNumbers] (@@Warehouse2.Id,0,0,0,@@Item.Id,Null,Null,Null) Where IsNull(TotalQuantity,0)-IsNull(ReservedQuantity,0) >0 ",@totalresult) If(@totalresult.rows.1.Total>0) sql("select * from[dbo].[GetTrackingNumbers] (@@Warehouse2.Id,0,0,0,@@Item.Id,Null,Null,Null) Where IsNull(TotalQuantity,0)-IsNull(ReservedQuantity,0) >0 Order By ExpirationDate Desc",@result) If(@result.rowCount=0) Set(@RuleErrorMessage,"@@Item.Code kodlu malzemeye ait stok bilgisi okunamadı !") Goto(ExitForm) EndIf() Set(@WoQuantity,@@WorkOrderLine.Quantity*(@@WorkOrderLine.ConvFactor2*@@WorkOrderLine.ConvFactor2)) Warehouse.Get(@WorkOrderLineList.rows.@i.Warehouse2Id) If(@@Warehouse="") Set(@RuleErrorMessage,"Depo okunamadı !") Goto(ExitForm) EndIf() ResetVariables({"Name":["@@WorkOrder","@@Warehouse2","@@Address2"]}) WorkOrder.Get("SlipType=2 and CustomSlipTypeId=24 and ParentWorkOrderId=@CurrentWo.Id") If(@@WorkOrder.Id="") //Sarf Fişi CustomSlipType.Get(24) WorkOrder.New({"SlipType":"2","ParentWorkOrderId":"@CurrentWo.Id"},1) If(@Response.Status="-1") Set(@RuleErrorMessage,"Sarf Emir fişi oluşturulamadı ! ( @Response.Message )") Goto(ExitForm) EndIf() EndIf() ReservationSlip.Get("WorkOrderId=@@WorkOrder.Id Active='1'") If(@@ReservationSlip.Id = "") PlanningSlip.Get(@@WorkOrder.PlanningSlipId) ReservationSlip.New({"SlipType":"2"},1) IF(@Response.Status = "-1") Set(@RuleErrorMessage,"Rezervasyon fişi oluşturulamadı ! ( @Response.Message )") Goto(ExitForm) EndIf() EndIf() Address.Get(@WorkOrderLineList.rows.@i.Address2Id) If(@@Address.Id="") Set(@RuleErrorMessage,"Adres Okunamadı!") Goto(ExitForm) EndIf() Item.Get(@WorkOrderLineList.rows.@i.ItemId) If(@@Item.Id="") Set(@RuleErrorMessage,"@WorkOrderLineList.rows.@i.ItemId Id li Malzeme okunamadı") Goto(ExitForm) EndIf() Set(@ProcessRemAmount,@WoQuantity) If(@ProcessRemAmount>0) WorkOrderLine.New({"SlipType":"2","Quantity":"@WoQuantity","ParentLineId":"@WorkOrderLineList.rows.@i.Id"},0) ReservationSlipLine.New({"SlipType":"2","Quantity":"@WoQuantity"},0) If(@@Item.TrackingType!=0) For(@k,1,@result.rowCount,1) If(@ProcessRemAmount>0) Set(@TrackingQuantity,@result.rows.@k.TotalQuantity-@result.rows.@k.ReservedQuantity) Set(@ProcessRemAmount,@ProcessRemAmount-@TrackingQuantity) ItemTracking.New({"LineType":"4","Quantity":"@TrackingQuantity","TrackingNumber":"@result.rows.@k.TrackingNumber","ExpirationDate":"@result.rows.@k.ExpirationDate","ProductionDate":"@result.rows.@k.ProductionDate"},1) If(@Response.Status="-1") Set(@RuleErrorMessage,"Emir fişi satırı takip no detay kayıt edilemedi ! ( @Response.Message )") Goto(ExitForm) EndIf() ItemTracking.New({"LineType":"6","Quantity":"@TrackingQuantity","TrackingNumber":"@result.rows.@k.TrackingNumber","ExpirationDate":"@result.rows.@k.ExpirationDate","ProductionDate":"@result.rows.@k.ProductionDate"},1) If(@Response.Status="-1") Set(@RuleErrorMessage,"Rezervasyon fişi satırı takip no detay kayıt edilemedi ! ( @Response.Message )") Goto(ExitForm) EndIf() Else() Set(@k,@result.rowCount) EndIf() Next() Else() WorkOrderLine.Save() If(@Response.Status="-1") Set(@RuleErrorMessage,"Sarf Emir fişi satırı kayıt edilemedi ! ( @Response.Message )") Goto(ExitForm) EndIf() ReservationSlipLine.Save() If(@Response.Status="-1") Set(@RuleErrorMessage,"Sarf Stok fişi satırı kayıt edilemedi ! ( @Response.Message )") Goto(ExitForm) EndIf() EndIf() EndIf() If(@ProcessRemAmount>0) // Stoktan Karşılanamayan miktar kaldıysa transfer emir fiş satırının karşılanabilen miktarı güncellenir, // Karşuılanamayan miktar kadar transfer emir fişine o malzeme için yeni emir fişi satırı eklenir. ResetVariables({"Name":["@@WorkOrderLine","@@ItemTracking"]}) WorkOrder.Get(@WorkOrderLineList.rows.@i.SlipId) If(@@WorkOrder.Id="") Set(@RuleErrorMessage,"@WorkOrderLineList.rows.@i.SlipId Id li Emir fişi okunamadı") Goto(ExitForm) EndIf() WorkOrderLine.Get(@WorkOrderLineList.rows.@i.Id) If(@@WorkOrderLine.Id="") Set(@RuleErrorMessage,"@WorkOrderLineList.rows.@i.Id Id li Emir fişi satırı okunamadı") Goto(ExitForm) EndIf() Set(@RamAmount,@WoQuantity-@ProcessRemAmount) WorkOrderLine.Set({"Quantity":"@RamAmount"}) If(@@Item.TrackingType!=0) ItemTracking.Get("WorkOrderLineId=@@WorkOrderLine.Id") If(@@ItemTracking.Id="") Set(@RuleErrorMessage,"@WorkOrderLineList.rows.@i.SlipId Id li Emir fişi okunamadı") Goto(ExitForm) EndIf() ItemTracking.Set({"Quantity":"@RamAmount"}) ItemTracking.Save() If(@Response.Status="-1") Set(@RuleErrorMessage,"Emir fişi satırı güncellenemedi! ( @Response.Message )") Goto(ExitForm) EndIf() EndIf() WorkOrderLine.Save() If(@Response.Status="-1") Set(@RuleErrorMessage,"Emir fişi satırı kayıt edilirken hata oluştu ! ( @Response.Message )") Goto(ExitForm) EndIf() // Karşılanamayan miktar yeni oluşturulan mir fişine ekleniyor. ResetVariables({"Name":["@@WorkOrder","@@CustomSlipType"]}) WorkOrder.Get("SlipType=3 and ParentWorkOrderId=@CurrentWo.Id") If(@@WorkOrder.Id="") //Ambar Transfer Fişi (Tiger) CustomSlipType.Get(26) WorkOrder.New({"SlipType":"3","ParentWorkOrderId":"@CurrentWo.Id"},1) If(@Response.Status="-1") Set(@RuleErrorMessage,"Emir fişi Bağlantılı Ambar Transfer Emir fişi oluşturulamadı ! ( @Response.Message )") Goto(ExitForm) EndIf() EndIf() WorkOrderLine.New({"SlipType":"3","Quantity":"@ProcessRemAmount"},0) If(@@Item.TrackingType!=0) ItemTracking.New({"LineType":"4","Quantity":"@ProcessRemAmount","TrackingNumber":"","ExpirationDate":"","ProductionDate":""},1) If(@Response.Status="-1") Set(@RuleErrorMessage,"Emir fişi Bağlantılı Ambar Transfer Emir fişi satırı takip no detay eklenemedi! ( @Response.Message )") Goto(ExitForm) EndIf() EndIf() WorkOrderLine.Save() If(@Response.Status="-1") Set(@RuleErrorMessage,"Emir fişi Bağlantılı Ambar Transfer Emir fişi satırı oluşturulamadı ! ( @Response.Message )") Goto(ExitForm) EndIf() Set(@ProcessRemAmount,0) EndIf() Else() ResetVariables({"Name":["@@WorkOrder","@@CustomSlipType"]}) Sql("Delete WorkOrderLine Where Id=@WorkOrderLineList.rows.@i.Id",@result) // Karşılanamayan satır Ambar transfer fişinden siliniyor. // Karşılanamayan miktar yeni oluşturulan mir fişine ekleniyor. Set(@WoQuantity,@@WorkOrderLine.Quantity*(@@WorkOrderLine.ConvFactor2*@@WorkOrderLine.ConvFactor2)) WorkOrder.Get("SlipType=3 and ParentWorkOrderId=@CurrentWo.Id") If(@@WorkOrder.Id="") //Ambar Transfer Fişi (Tiger) CustomSlipType.Get(26) WorkOrder.New({"SlipType":"3","ParentWorkOrderId":"@CurrentWo.Id"},1) If(@Response.Status="-1") Set(@RuleErrorMessage,"Emir fişi Bağlantılı Ambar Transfer Emir fişi oluşturulamadı ! ( @Response.Message )") Goto(ExitForm) EndIf() EndIf() WorkOrderLine.New({"SlipType":"3","Quantity":"@WoQuantity"},0) If(@@Item.TrackingType!=0) ItemTracking.New({"LineType":"4","Quantity":"@WoQuantity","TrackingNumber":"","ExpirationDate":"","ProductionDate":""},1) If(@Response.Status="-1") Set(@RuleErrorMessage,"Emir fişi Bağlantılı Ambar Transfer Emir fişi satırı takip no detay eklenemedi! ( @Response.Message )") Goto(ExitForm) EndIf() EndIf() WorkOrderLine.Save() If(@Response.Status="-1") Set(@RuleErrorMessage,"Emir fişi Bağlantılı Ambar Transfer Emir fişi satırı oluşturulamadı ! ( @Response.Message )") Goto(ExitForm) EndIf() EndIf() Next() ResetVariables({"Name":["@@WorkOrder","@@Slip","@@CustomSlipType","@@Warehouse","@@Address","@@Warehouse2","@@Address2"]}) WorkOrder.Get("CustomSlipTypeId=24 and SlipType=2 and ParentWorkOrderId=@CurrentWo.Id") IF(@@WorkOrder.Id="") Set(@RuleErrorMessage,"Sarf için Emir fişi okunamadı !") Goto(ExitForm) EndIf() CustomSlipType.Get(24) CustomState.Get("StateNumber = 3 and RecordType = 159") WorkOrder.Save() If(@Response.Status="-1") Set(@RuleErrorMessage,"Sarf Emir fişi kayıt edilirken hata oluştu ! ( @Response.Message )") Goto(ExitForm) EndIf() Slip.Generate() If(@Response.Status="-1") Set(@RuleErrorMessage,"Sarf Stok fişi oluştururken hata oluştu ! ( @Response.Message )") Goto(ExitForm) EndIf() Slip.Get("WorkOrderId=@@WorkOrder.Id") If(@@Slip.Id="") Set(@RuleErrorMessage,"Sarf için Stok fişi okunamadı !") Goto(ExitForm) EndIf() CustomSlipType.Get(24) //Entegre edildi Satatüsü CustomState.Get("SystemEvent = 6 and RecordType = 161") Slip.Save() If(@Response.Status="-1") Set(@RuleErrorMessage,"Sarf Stok fişi kayıt edilirken hata oluştu ! ( @Response.Message )") Goto(ExitForm) EndIf() WorkOrder.Get(@CurrentWo.Id) //Ambar transfer CustomSlipType.Get(26) CustomState.Get("StateNumber = 3 and RecordType = 159") WorkOrder.Save() If(@Response.Status="-1") Set(@RuleErrorMessage,"Emir fişi staüsü değiştirilirken hata oluştu ! ( @Response.Message )") Goto(ExitForm) EndIf() Set(@RuleResponse.Status,"0") Goto(SuccsessExitForm) ExitForm: Set(@RuleResponse.Status,"-1") Set(@RuleResponse.CustomMessage,"@RuleErrorMessage") Goto(ReturnForm) SuccsessExitForm: If(@RuleResponse.Status="0") Set(@RuleResponse.CustomMessage,"İşlem Tamamlandı.") EndIf() ReturnForm: Set(@Response.Message,"") EndForm() BeginForm(PlanlamaAracBelirle) Set(@VehicleId, {Actions.1.RuleResponse}) If(@VehicleId != "") For(@i,1,@GridSelectList.rowCount,1) Warehouse.Get(@GridSelectList.rows.@i.WarehouseId) If(@@Warehouse!="") PlanningSlip.Get(@GridSelectList.rows.@i.Id) If(@@PlanningSlip!="") Vehicle.Get(@VehicleId) Warehouse.Get(@@PlanningSlip.WarehouseId) PlanningSlip.Save() EndIf() EndIf() Next() EndIf() EndForm() //Bu kural Satınalma türündeki siparişlerin tamamından Satınalma irsaliyesi oluşturur. //Normal malzemei, takipli ve varyantlı malzemeler için çalışır. //Takipli malzemeler için random takip numarası, üretim tarihi ve son kullanım tarihi oluşturur. //Serili malzemeler için üretim ve son kullamım tarihi set etmez. //Çalışma sırasında eksik bir veri ya da işlem hatası oluştuğunda hatayı ekrana mesaj olarak patlatır. İşlemi orada keser. Hata son oluşan fiş kaynaklıdır. //Girişi işlemi yapılan malzemeleri adres Tipi hafif yük rafı tipinde tanımlı adreslere random yerleştirir. BeginForm(GenerateItemsDataForAllAddress) Warehouse.Get(30) // işlem depo Id si Dikkat ! SysUser'ın bu depoya yetkisi olmalı IF(@@Warehouse="") Set(@RuleErrorMessage,"30 Id li depo tanımı bulunamadı !") Goto(ExitForm) EndIf() //AdressType 2 hafif yük rafı, ilk katlar toplama gözleri olarak kurgulandı malzemeler paletsiz olarak ilk kat gözlerine yerleştirilir. Sql(" select * from sysAddress Where WarehouseId=@@Warehouse.Id and Id not in(29,28) and AddressType=2 Order By Address",@sqlAddressList) If(@sqlAddressList="" or @sqlAddressList.rowCount=0) Set(@RuleErrorMessage,"@@Warehouse.Code Kodlu depoya ait Hafif Yük Rafı Tipinde adres tanımı bulunamadı !") Goto(ExitForm) EndIf() Set(@SlipId,0) Sql(" select * from OrderSlipLine where SlipType=1 and WarehouseId=@@Warehouse.Id Order by SlipId",@sqlOrderSlipLine) If(@sqlOrderSlipLine="" or @sqlOrderSlipLine.rowCount=0) Set(@RuleErrorMessage,"@@Warehouse.Code Kodlu depoya Satınalma siparişi bulunamadı !") Goto(ExitForm) EndIf() For(@i,1,@sqlOrderSlipLine.rowCount,1) ResetVariables({"name":["@@Warehouse2","@@OrderSlipLine","@@Item","@@ItemVariant","@@ItemUnit"]}) sql(" SELECT FLOOR(RAND(CHECKSUM(NEWID()))*(1-@sqlAddressList.rowCount+1)+@sqlAddressList.rowCount) RndAddressId",@sqlRndAddressId) Set(@rndId,@sqlRndAddressId.rows.1.RndAddressId) Address.Get(@sqlAddressList.rows.@rndId.Id) If(@@Address="") Set(@RuleErrorMessage,"@@Warehouse.Code Kodlu depo da geçerli tipte adres tanımı bulunamadı !") Goto(ExitForm) EndIf() Set(@Quantity,@sqlOrderSlipLine.rows.@i.Quantity) CustomSlipType.Get(11) //Satınalma İrsaliyesi IF(@@CustomSlipType="") Set(@RuleErrorMessage,"11 Id li İlk Satınalma irsaliyesi kullanıcı tanımlı fiş türü bulunamadı !") Goto(ExitForm) EndIf() Item.Get(@sqlOrderSlipLine.rows.@i.ItemId) If(@@Item!="") ItemUnit.Get(@sqlOrderSlipLine.rows.@i.UnitId) If(@@ItemUnit="") Set(@RuleErrorMessage,"@sqlOrderSlipLine.rows.@i.UnitId Id li birim bulunamadı !") Goto(ExitForm) EndIf() If(@@Item.CanConfigure="1") Item.Get(@sqlOrderSlipLine.rows.@i.VariantId,@@ItemVariant) If(@@ItemVariant="") Set(@RuleErrorMessage,"@sqlOrderSlipLine.rows.@i.VariantId Id li varyant bulunamadı !") Goto(ExitForm) EndIf() EndIf() If(@SlipId!=@sqlOrderSlipLine.rows.@i.SlipId) If(@SlipId>0) CustomSlipType.Get(11) Slip.Generate() If(@Response.Status="-1") Set(@RuleErrorMessage,@Response.Message) Goto(ExitForm) EndIf() EndIf() ResetVariables({"name":["@@OrderSlip","@@OrderSlipLine","@@WorkOrder","@@WorkOrderLine","@@ItemTracking"]}) OrderSlip.Get(@sqlOrderSlipLine.rows.@i.SlipId) WorkOrder.New({"SlipType":"1",},1) If(@Response.Status="-1") Set(@RuleErrorMessage,@Response.Message) Goto(ExitForm) EndIf() Set(@SlipId,@sqlOrderSlipLine.rows.@i.SlipId) EndIf() OrderSlipLine.Get(@sqlOrderSlipLine.rows.@i.Id) If(@@OrderSlipLine="") Set(@RuleErrorMessage,"@sqlOrderSlipLine.rows.@i.Id Id li Sipariş satırı okunamadı !") Goto(ExitForm) EndIf() If(@@Item.TrackingType!=0) ResetVariables({"name":["@trackingNumber","@ProductionDate","@ExpirationDate"]}) Sql(" SELECT FLOOR(RAND(CHECKSUM(NEWID()))*(1-10000000000+1)+10000000000) RndTrackingNumber",@rndTrackingNumber) If(@rndTrackingNumber.rowCount=0) Set(@RuleErrorMessage,"Random Takip Numarası üretilemedi !") Goto(ExitForm) EndIf() Set(@trackingNumber,@rndTrackingNumber.rows.1.RndTrackingNumber) If(@trackingNumber="") Set(@RuleErrorMessage,"Random Takip Numarası üretilemedi (2) !") Goto(ExitForm) EndIf() If(@@Item.TrackingType=1) sql("SELECT CONVERT(date,DATEADD(day, ROUND(DATEDIFF(day, '2019-01-01', '2019-01-01') * RAND(CHECKSUM(NEWID())), 5),DATEADD(second, abs(CHECKSUM(NEWID())) % 9186400,'2019-01-01')),104) ProductionDate",@sqlProductionDate) If(@sqlProductionDate.rowCount=0) Set(@RuleErrorMessage,"Random Üretim tarihi üretilemedi !") Goto(ExitForm) EndIf() Mid(@sqlProductionDate.rows.1.ProductionDate,1,10,@ProductionDate) If(@ProductionDate="") Set(@RuleErrorMessage,"Random Üretim tarihi üretilemedi (2) !") Goto(ExitForm) EndIf() sql("SELECT CONVERT(date,DATEADD(day, ROUND(DATEDIFF(day, '2021-01-01', '2021-01-01') * RAND(CHECKSUM(NEWID())), 5),DATEADD(second, abs(CHECKSUM(NEWID())) % 9186400,'2021-01-01')),104) ExpirationDate",@sqlExpirationDate) If(@sqlExpirationDate.rowCount=0) Set(@RuleErrorMessage,"Random Üretim tarihi üretilemedi !") Goto(ExitForm) EndIf() Mid(@sqlExpirationDate.rows.1.ExpirationDate,1,10,@ExpirationDate) If(@ExpirationDate="") Set(@RuleErrorMessage,"Random Üretim tarihi üretilemedi (2) !") Goto(ExitForm) EndIf() Set(@Condition," and WarehouseId=@@Warehouse.Id and AddressId=@@Address.Id") IF(@@ItemVariant!="") Set(@Condition," and VariantId=@@ItemVariant.Id") EndIf() WorkOrderLine.Get("SlipId=@@WorkOrder.Id and ItemId=@@Item.Id @Condition") If(@@WorkOrderLine="") WorkOrderLine.New({"SlipType":"1","Quantity":"@Quantity"},0) If(@Response.Status="-1") Set(@RuleErrorMessage,@Response.Message) Goto(ExitForm) EndIf() EndIf() ItemTracking.New({"LineType":"4","Quantity":"@Quantity","TrackingNumber":"@trackingNumber","ExpirationDate":"@ExpirationDate","ProductionDate":"@ProductionDate"},1) If(@Response.Status="-1") Set(@RuleErrorMessage,@Response.Message) Goto(ExitForm) EndIf() Else() For(@k,1,@Quantity,1) //Miktar kadar Seri üretilir Set(@Condition," and WarehouseId=@@Warehouse.Id and AddressId=@@Address.Id") IF(@@ItemVariant!="") Set(@Condition," and VariantId=@@ItemVariant.Id") EndIf() WorkOrderLine.Get("SlipId=@@WorkOrder.Id and ItemId=@@Item.Id @Condition") If(@@WorkOrderLine="") WorkOrderLine.New({"SlipType":"1","Quantity":"@Quantity"},0) If(@Response.Status="-1") Set(@RuleErrorMessage,@Response.Message) Goto(ExitForm) EndIf() EndIf() ResetVariables({"name":["@trackingNumber","@ProductionDate","@ExpirationDate"]}) Sql(" SELECT FLOOR(RAND(CHECKSUM(NEWID()))*(1-90009000900+1)+90009000900) RndTrackingNumber",@rndTrackingNumber) If(@rndTrackingNumber.rowCount=0) Set(@RuleErrorMessage,"Random Takip Numarası üretilemedi !") Goto(ExitForm) EndIf() Set(@trackingNumber,@rndTrackingNumber.rows.1.RndTrackingNumber) ItemTracking.New({"LineType":"4","Quantity":"1","TrackingNumber":"@trackingNumber","ExpirationDate":"@ExpirationDate","ProductionDate":"@ProductionDate"},1) If(@Response.Status="-1") Set(@RuleErrorMessage,@Response.Message) Goto(ExitForm) EndIf() Next() EndIf() Else() WorkOrderLine.New({"SlipType":"1","Quantity":"@Quantity"},1) If(@Response.Status="-1") Set(@RuleErrorMessage,@Response.Message) Goto(ExitForm) EndIf() EndIf() Else() Set(@RuleErrorMessage,"@sqlOrderSlipLine.rows.@i.Id Id li siparişteki @sqlOrderSlipLine.rows.@i.ItemId Id li malzeme bulunamadı !") Goto(ExitForm) EndIf() Next() Slip.Generate() Set(@RuleResponse.Status,"0") Goto(SuccsessExitForm) ExitForm: Set(@RuleResponse.Status,@Response.Status) Set(@RuleResponse.CustomMessage,"Hata oluştu : @RuleErrorMessage") Goto(ReturnForm) SuccsessExitForm: If(@RuleResponse.Status="0") Set(@RuleResponse.CustomMessage,"İşlem tamamlandı.") EndIf() ReturnForm: Set(@Response.Message,"") EndForm() //Bu kural Satınalma türündeki siparişlerin tamamından Satınalma irsaliyesi oluşturur. //Normal malzemei, takipli ve varyantlı malzemeler için çalışır. //Takipli malzemeler için random takip numarası, üretim tarihi ve son kullanım tarihi oluşturur. //Serili malzemeler için üretim ve son kullamım tarihi set etmez. //Çalışma sırasında eksik bir veri ya da işlem hatası oluştuğunda hatayı ekrana mesaj olarak patlatır. İşlemi orada keser. Hata son oluşan fiş kaynaklıdır. //Girişi işlemi AddressType=3 olan ilk adrese paletli olarak yapılır. //Her bir sipariş satırındaki malzelzeme, yeni üretilen bir palet numarası ile o paletin içine yerleştirilir. BeginForm(GenerateItemsDataForAllAddressWithContainer) Warehouse.Get(24) // işlem depo Id si Dikkat ! SysUser'ın bu depoya yetkisi olmalı IF(@@Warehouse="") Set(@RuleErrorMessage,"24 Id li depo tanımı bulunamadı !") Goto(ExitForm) EndIf() Set(@SlipId,0) Sql(" select * from OrderSlipLine where SlipType=1 and WarehouseId=@@Warehouse.Id Order by SlipId",@sqlOrderSlipLine) If(@sqlOrderSlipLine="" or @sqlOrderSlipLine.rowCount=0) Set(@RuleErrorMessage,"@@Warehouse.Code Kodlu depoya Satınalma siparişi bulunamadı !") Goto(ExitForm) EndIf() For(@i,1,@sqlOrderSlipLine.rowCount,1) ResetVariables({"name":["@@Warehouse2","@@OrderSlipLine","@@Item","@@ItemVariant","@@ItemUnit","@@Container"]}) ContainerType.Get("Description='Palet'") If(@@ContainerType.Id="") Set(@RuleErrorMessage,"Palet açıklamalı ContainerType tanımı bulunamadı !") Goto(ExitForm) EndIf() Container.Generate({"Count":"1"}) If(@@Container="") Set(@RuleErrorMessage,"Container oluşturulamadı !") Goto(ExitForm) EndIf() Address.Get("AddressType=3 AND WarehouseId=@@Warehouse.Id") If(@@Address="") Set(@RuleErrorMessage,"@@Warehouse.Code Kodlu depo da geçerli tipte (AddressType=3) adres tanımı bulunamadı !") Goto(ExitForm) EndIf() Set(@Quantity,@sqlOrderSlipLine.rows.@i.Quantity) CustomSlipType.Get(11) //Satınalma İrsaliyesi IF(@@CustomSlipType="") Set(@RuleErrorMessage,"11 Id li İlk Satınalma irsaliyesi kullanıcı tanımlı fiş türü bulunamadı !") Goto(ExitForm) EndIf() Item.Get(@sqlOrderSlipLine.rows.@i.ItemId) If(@@Item!="") ItemUnit.Get(@sqlOrderSlipLine.rows.@i.UnitId) If(@@ItemUnit="") Set(@RuleErrorMessage,"@sqlOrderSlipLine.rows.@i.UnitId Id li birim bulunamadı !") Goto(ExitForm) EndIf() If(@@Item.CanConfigure="1") Item.Get(@sqlOrderSlipLine.rows.@i.VariantId,@@ItemVariant) If(@@ItemVariant="") Set(@RuleErrorMessage,"@sqlOrderSlipLine.rows.@i.VariantId Id li varyant bulunamadı !") Goto(ExitForm) EndIf() EndIf() If(@SlipId!=@sqlOrderSlipLine.rows.@i.SlipId) If(@SlipId>0) CustomSlipType.Get(11) Slip.Generate() If(@Response.Status="-1") Set(@RuleErrorMessage,@Response.Message) Goto(ExitForm) EndIf() EndIf() ResetVariables({"name":["@@OrderSlip","@@OrderSlipLine","@@WorkOrder","@@WorkOrderLine","@@ItemTracking"]}) OrderSlip.Get(@sqlOrderSlipLine.rows.@i.SlipId) WorkOrder.New({"SlipType":"1",},1) If(@Response.Status="-1") Set(@RuleErrorMessage,@Response.Message) Goto(ExitForm) EndIf() Set(@SlipId,@sqlOrderSlipLine.rows.@i.SlipId) EndIf() OrderSlipLine.Get(@sqlOrderSlipLine.rows.@i.Id) If(@@OrderSlipLine="") Set(@RuleErrorMessage,"@sqlOrderSlipLine.rows.@i.Id Id li Sipariş satırı okunamadı !") Goto(ExitForm) EndIf() If(@@Item.TrackingType!=0) ResetVariables({"name":["@trackingNumber","@ProductionDate","@ExpirationDate"]}) Sql(" SELECT FLOOR(RAND(CHECKSUM(NEWID()))*(1-10000000000+1)+10000000000) RndTrackingNumber",@rndTrackingNumber) If(@rndTrackingNumber.rowCount=0) Set(@RuleErrorMessage,"Random Takip Numarası üretilemedi !") Goto(ExitForm) EndIf() Set(@trackingNumber,@rndTrackingNumber.rows.1.RndTrackingNumber) If(@trackingNumber="") Set(@RuleErrorMessage,"Random Takip Numarası üretilemedi (2) !") Goto(ExitForm) EndIf() If(@@Item.TrackingType=1) sql("SELECT CONVERT(date,DATEADD(day, ROUND(DATEDIFF(day, '2019-01-01', '2019-01-01') * RAND(CHECKSUM(NEWID())), 5),DATEADD(second, abs(CHECKSUM(NEWID())) % 9186400,'2019-01-01')),104) ProductionDate",@sqlProductionDate) If(@sqlProductionDate.rowCount=0) Set(@RuleErrorMessage,"Random Üretim tarihi üretilemedi !") Goto(ExitForm) EndIf() Mid(@sqlProductionDate.rows.1.ProductionDate,1,10,@ProductionDate) If(@ProductionDate="") Set(@RuleErrorMessage,"Random Üretim tarihi üretilemedi (2) !") Goto(ExitForm) EndIf() sql("SELECT CONVERT(date,DATEADD(day, ROUND(DATEDIFF(day, '2021-01-01', '2021-01-01') * RAND(CHECKSUM(NEWID())), 5),DATEADD(second, abs(CHECKSUM(NEWID())) % 9186400,'2021-01-01')),104) ExpirationDate",@sqlExpirationDate) If(@sqlExpirationDate.rowCount=0) Set(@RuleErrorMessage,"Random Üretim tarihi üretilemedi !") Goto(ExitForm) EndIf() Mid(@sqlExpirationDate.rows.1.ExpirationDate,1,10,@ExpirationDate) If(@ExpirationDate="") Set(@RuleErrorMessage,"Random Üretim tarihi üretilemedi (2) !") Goto(ExitForm) EndIf() Set(@Condition," and WarehouseId=@@Warehouse.Id and AddressId=@@Address.Id") IF(@@ItemVariant!="") Set(@Condition," and VariantId=@@ItemVariant.Id") EndIf() WorkOrderLine.Get("SlipId=@@WorkOrder.Id and ItemId=@@Item.Id @Condition") If(@@WorkOrderLine="") WorkOrderLine.New({"SlipType":"1","Quantity":"@Quantity"},0) If(@Response.Status="-1") Set(@RuleErrorMessage,@Response.Message) Goto(ExitForm) EndIf() EndIf() ItemTracking.New({"LineType":"4","Quantity":"@Quantity","TrackingNumber":"@trackingNumber","ExpirationDate":"@ExpirationDate","ProductionDate":"@ProductionDate"},1) If(@Response.Status="-1") Set(@RuleErrorMessage,@Response.Message) Goto(ExitForm) EndIf() Else() For(@k,1,@Quantity,1) //Miktar kadar Seri üretilir Set(@Condition," and WarehouseId=@@Warehouse.Id and AddressId=@@Address.Id") IF(@@ItemVariant!="") Set(@Condition," and VariantId=@@ItemVariant.Id") EndIf() WorkOrderLine.Get("SlipId=@@WorkOrder.Id and ItemId=@@Item.Id @Condition") If(@@WorkOrderLine="") WorkOrderLine.New({"SlipType":"1","Quantity":"@Quantity"},0) If(@Response.Status="-1") Set(@RuleErrorMessage,@Response.Message) Goto(ExitForm) EndIf() EndIf() ResetVariables({"name":["@trackingNumber","@ProductionDate","@ExpirationDate"]}) Sql(" SELECT FLOOR(RAND(CHECKSUM(NEWID()))*(1-90009000900+1)+90009000900) RndTrackingNumber",@rndTrackingNumber) If(@rndTrackingNumber.rowCount=0) Set(@RuleErrorMessage,"Random Takip Numarası üretilemedi !") Goto(ExitForm) EndIf() Set(@trackingNumber,@rndTrackingNumber.rows.1.RndTrackingNumber) ItemTracking.New({"LineType":"4","Quantity":"1","TrackingNumber":"@trackingNumber","ExpirationDate":"@ExpirationDate","ProductionDate":"@ProductionDate"},1) If(@Response.Status="-1") Set(@RuleErrorMessage,@Response.Message) Goto(ExitForm) EndIf() Next() EndIf() Else() WorkOrderLine.New({"SlipType":"1","Quantity":"@Quantity"},1) If(@Response.Status="-1") Set(@RuleErrorMessage,@Response.Message) Goto(ExitForm) EndIf() EndIf() Else() Set(@RuleErrorMessage,"@sqlOrderSlipLine.rows.@i.Id Id li siparişteki @sqlOrderSlipLine.rows.@i.ItemId Id li malzeme bulunamadı !") Goto(ExitForm) EndIf() Next() Slip.Generate() If(@Response.Status="-1") Set(@RuleErrorMessage,@Response.Message) Goto(ExitForm) EndIf() Set(@RuleResponse.Status,"0") Goto(SuccsessExitForm) ExitForm: Set(@RuleResponse.Status,@Response.Status) Set(@RuleResponse.CustomMessage,"Hata oluştu : @RuleErrorMessage") Goto(ReturnForm) SuccsessExitForm: If(@RuleResponse.Status="0") Set(@RuleResponse.CustomMessage,"İşlem tamamlandı.") EndIf() ReturnForm: Set(@Response.Message,"") EndForm() // AdresType=3 olan ilk adresteki Paletler 50 şer satırlık Transfer emri ve Stok fişi ile Sıralı olarak ilgili depodaki AddressType=1 (Ağır Yük Rafı) tipindeki adreslere transfer edilir. BeginForm(ContainerTransfer) Warehouse.Get(24) // işlem depo Id si Dikkat ! SysUser'ın bu depoya yetkisi olmalı IF(@@Warehouse="") Set(@RuleErrorMessage,"24 Id li depo tanımı bulunamadı !") Goto(ExitForm) EndIf() Address.Get("AddressType=3 AND WarehouseId=@@Warehouse.Id") If(@@Address="") Set(@RuleErrorMessage,"@@Warehouse.Code Kodlu depo da geçerli tipte (AddressType=3) adres tanımı bulunamadı !") Goto(ExitForm) EndIf() Sql(" select * from GetContainerList(@@Warehouse.Id,@@Address.Id) ",@sqlContainerList) If(@sqlContainerList="" or @sqlContainerList.rowCount=0) Set(@RuleErrorMessage,"@@Warehouse.Code Kodlu depoya Satınalma siparişi bulunamadı !") Goto(ExitForm) EndIf() Sql(" select * from SysAddress where WarehouseId=@@Warehouse.Id and AddressType=1 Order by Address",@sqlAddressList) If(@sqlAddressList="" or @sqlAddressList.rowCount=0) Set(@RuleErrorMessage,"@@Warehouse.Code Kodlu depo da AddressType=1 (Ağır Yük Rafı) tipinde tanımlı adres bulunamadı !") Goto(ExitForm) EndIf() Set(@@Warehouse2,@@Warehouse) Set(@AddressLine,0) CustomSlipType.Get("SlipType=3 and ErpIntegration=0") IF(@@CustomSlipType="") Set(@RuleErrorMessage,"Transfer türünde (3) kullanıcı tanımlı fiş türü bulunamadı !") Goto(ExitForm) EndIf() WorkOrder.New({"SlipType":"3",},1) If(@Response.Status="-1") Set(@RuleErrorMessage,@Response.Message) Goto(ExitForm) EndIf() Set(@fisSatir,0) For(@i,1,@sqlContainerList.rowCount,1) ResetVariables({"name":["@@Item","@@ItemUnit","@@ItemTracking"]}) Set(@fisSatir,@fisSatir+1) IF(@fisSatir>50) //50 satırlık fişler oluşturulur Set(@fisSatir,1) Slip.Generate() If(@Response.Status="-1") Set(@RuleErrorMessage,@Response.Message) Goto(ExitForm) EndIf() WorkOrder.New({"SlipType":"3",},1) If(@Response.Status="-1") Set(@RuleErrorMessage,@Response.Message) Goto(ExitForm) EndIf() EndIf() ResetVariables({"name":["@@Container","@@Address2"]}) Set(@AddressLine,@AddressLine+1) IF(@AddressLine>@sqlAddressList.rowCount) Set(@AddressLine,1) EndIf() Address.Get(@sqlAddressList.rows.@AddressLine.Id,@@Address2) IF(@@Address2="") Set(@RuleErrorMessage,"Adres listesinden adres bilgisi set edilemedi !") Goto(ExitForm) EndIf() Container.Get(@sqlContainerList.rows.@i.ContainerId) IF(@@Container="") Set(@RuleErrorMessage,"@sqlContainerList.rows.@i.ContainerId Id li container okunamadı !") Goto(ExitForm) EndIf() Set(@@Container2,@@Container) WorkOrderLine.New({"SlipType":"3","Quantity":"@Quantity"},1) If(@Response.Status="-1") Set(@RuleErrorMessage,@Response.Message) Goto(ExitForm) EndIf() Next() Slip.Generate() If(@Response.Status="-1") Set(@RuleErrorMessage,@Response.Message) Goto(ExitForm) EndIf() Set(@RuleResponse.Status,"0") Goto(SuccsessExitForm) ExitForm: Set(@RuleResponse.Status,@Response.Status) Set(@RuleResponse.CustomMessage,"Hata oluştu : @RuleErrorMessage") Goto(ReturnForm) SuccsessExitForm: If(@RuleResponse.Status="0") Set(@RuleResponse.CustomMessage,"İşlem tamamlandı.") EndIf() ReturnForm: Set(@Response.Message,"") EndForm() // Planlama fişine ait Mal Toplama fişinden stok fişi oluşturur BeginForm(ItemTransferWithPlanningSlip) Set(@RuleErrorMessage,"") If(@GridSelectList.rowCount>1) Set(@RuleErrorMessage,"Kural'ı bir den fazla planlama için çalıştıramazsınız!") Goto(ExitForm) EndIf() Warehouse.Get(@GridSelectList.rows.1.WarehouseId,@Warehouse) PlanningSlip.Get(@GridSelectList.rows.1.Id) //Transfer öncesi yapılan rezervasyon çıkış işleminde stok yetersiz durumuna neden oluyordu bu yüzden çıkış öncesinde planlamaya ait rezervasyon fişi siliniyor. sql("delete ReservationSlipLine rsl,ReservationSlip rs where rs.Id=rsl.SlipId and rs.PlanningSlipId=@@PlanningSlip.Id",@result) sql("delete ReservationSlip where PlanningSlipId=@@PlanningSlip.Id",@result) Set(@RuleErrorMessage,"") WorkOrder.Get("PlanningSlipId=@@PlanningSlip.Id and SlipType=3 and StateId=13") // İşleme alındı IF(@@WorkOrder="") Set(@RuleErrorMessage,"@@PlanningSlip.SlipNumber Numaralı planlamaya ait Emir fişi oluşturulmamış yada Emir fişi Statusu Beklemede değil !") Goto(ExitForm) EndIf() CustomSlipType.Get("Name='Sevkiyat Mal Toplama'") IF(@@CustomSlipType="") Set(@RuleErrorMessage,"Sevkiyat Mal Toplama isimli Transfer türünde kullanıcı tanımlı fiş türü tanımı bulunamadu ") Goto(ExitForm) EndIf() IF(@@WorkOrder.CustomSlipTypeId !=@@CustomSlipType.Id) Set(@RuleErrorMessage,"@@WorkOrder.SlipNumber Numaralı Transfer emrine ait Sevkiyat Mal Toplama emri bulunamadı !") Goto(ExitForm) EndIf() IF(@@WorkOrder.StateId>13) //Tamamlandı ve İtal edildi ise Çık Set(@RuleErrorMessage,"@@PlanningSlip.SlipNumber Numaralı planlamaya ait Transfer Emir fişinin (@@WorkOrder.SlipNumber) statüsü bu işlem için uygun durumda değil !") Goto(ExitForm) EndIf() Set(@@Warehouse,@Warehouse) Set(@@Warehouse2,@Warehouse) PlanningSlip.Get(@@WorkOrder.PlanningSlipId) IF(@@PlanningSlip.StateId!=9 ) Set(@RuleErrorMessage,"Planlama statüsü İşleme Alındı olmadığı için işleme devam edilemiyor !") Goto(ExitForm) EndIf() Set(@@Warehouse2,@Warehouse) CustomSlipType.Get("Name='Sevkiyat Mal Toplama'") Slip.Generate() IF(@Response.Status = "-1") Set(@RuleErrorMessage,"@Response.Message") Goto(ExitForm) EndIf() Set(@@Warehouse2,@Warehouse) CustomState.Get(14) //Emir fişi Tamamlandı WorkOrder.Save() IF(@Response.Status = "-1") Set(@RuleErrorMessage,"@Response.Message") Goto(ExitForm) EndIf() Set(@@Warehouse2,@Warehouse) CustomState.Get(17) //İşleme Alındı Slip.Save() IF(@Response.Status = "-1") Set(@RuleErrorMessage,"@Response.Message") Goto(ExitForm) EndIf() Set(@@Warehouse2,@Warehouse) CustomState.Get(10) //Planlama Tamamlandı PlanningSlip.Save() IF(@Response.Status = "-1") Set(@RuleErrorMessage,"@Response.Message") Goto(ExitForm) EndIf() //Transfer emrinden Çıkış Türünde (Toptan Satış İrsaliyesi) Emir fişi ve Stok fişi oluşturuluyor. Set(@WorkOrder,@@WorkOrder) Set(@WorkOrderLine,@@WorkOrderLine) WorkOrderLine.List("SlipId=@@WorkOrder.Id","",@WorkOrderLine) IF(@WorkOrderLine="" or @WorkOrderLine.worCount=0) Set(@RuleErrorMessage,"@@WorkOrder.SlipNumber Numaralı Transfer türünde emir fişinin satırları okunamadı.!") Goto(ExitForm) EndIf() Set(@@Warehouse,@Warehouse) Set(@@Warehouse2,@Warehouse) CustomSlipType.Get(18) //Toplan Satış İrsaliyesi CustomState.Get(13) //İşleme Alındı ResetVariables({"name":["@@WorkOrder"]}) WorkOrder.New({"SlipType":"2",},1) If(@Response.Status="-1") Set(@RuleErrorMessage,@Response.Message) Goto(ExitForm) EndIf() CustomSlipType.Get(18) //Toplan Satış İrsaliyesi CustomState.Get(19) Slip.New({"SlipType":"2",},1) If(@Response.Status="-1") Set(@RuleErrorMessage,@Response.Message) Goto(ExitForm) EndIf() For(@i,1,@WorkOrderLine.rowCount,1) ResetVariables({"name":["@@Item","@@ItemUnit","@@ItemTracking","@@OrderSlipLine","@@PlanningSlipLine","@@Address","@@Address2"]}) Item.Get(@WorkOrderLine.rows.@i.ItemId) If(@@Item="") Set(@RuleErrorMessage,"@WorkOrderLine.rows.@i.ItemId Id li Malzeme bulunamadı") Goto(ExitForm) EndIf() Item.Get(@WorkOrderLine.rows.@i.VariantId,@@ItemVariant) If(@@ItemVariant="") Set(@RuleErrorMessage,"@WorkOrderLine.rows.@i.VariantId Id li Varyantlı Malzeme bulunamadı") Goto(ExitForm) EndIf() ItemUnit.Get(@WorkOrderLine.rows.@i.UnitId) If(@@ItemUnit="") Set(@RuleErrorMessage,"@WorkOrderLine.rows.@i.UnitId Id li Birim bulunamadı") Goto(ExitForm) EndIf() OrderSlipLine.Get(@WorkOrderLine.rows.@i.OrderSlipLineId) If(@@OrderSlipLine="") Set(@RuleErrorMessage,"@WorkOrderLine.rows.@i.OrderSlipLineId Id li Sipariş satırı okunamadı") Goto(ExitForm) EndIf() PlanningSlipLine.Get(@WorkOrderLine.rows.@i.PlanningSlipLineId) If(@@PlanningSlipLine="") Set(@RuleErrorMessage,"@WorkOrderLine.rows.@i.PlanningSlipLineId Id li Planlama satırı okunamadı") Goto(ExitForm) EndIf() Set(@Quantity,@WorkOrderLine.rows.@i.Quantity) Warehouse.Get(@WorkOrderLine.rows.@i.WarehouseId) If(@@Warehouse="") Set(@RuleErrorMessage,"@WorkOrderLine.rows.@i.WarehouseId Id li Depo okunamadı") Goto(ExitForm) EndIf() Address.Get(@WorkOrderLine.rows.@i.Address2Id) If(@@Address="") Set(@RuleErrorMessage,"@WorkOrderLine.rows.@i.Address2Id Id li Adres okunamadı") Goto(ExitForm) EndIf() IF(@@Item.TrackingType!=0) WorkOrderLine.New({"SlipType":"2","Quantity":"@Quantity"},0) If(@Response.Status="-1") Set(@RuleErrorMessage,@Response.Message) Goto(ExitForm) EndIf() SlipLine.New({"SlipType":"2","Quantity":"@Quantity"},0) If(@Response.Status="-1") Set(@RuleErrorMessage,@Response.Message) Goto(ExitForm) EndIf() ItemTracking.List("WorkOrderLineId=@WorkOrderLine.rows.@i.Id and LineType=4 and IoCode=2","",@ItemTrackingList) If(@ItemTrackingList="" or @ItemTrackingList.rowCount=0) Set(@RuleErrorMessage,"Emir Fişi satır Id:@WorkOrderLine.Id Transfer türünde emir fiş satırının Lot detayı okunamadı.!") Goto(ExitForm) EndIf() For(@k,1,@ItemTrackingList.rowCount,1) Set(@trackingNumber,@ItemTrackingList.rows.@k.TrackingNumber) Set(@ExpirationDate,@ItemTrackingList.rows.@k.ExpirationDate) Set(@ProductionDate,@ItemTrackingList.rows.@k.ProductionDate) Set(@ItmTrkQuantity,@ItemTrackingList.rows.@k.Quantity) Address.Get(@WorkOrderLine.rows.@i.Address2Id) ItemTracking.New({"LineType":"4","Quantity":"@ItmTrkQuantity","TrackingNumber":"@trackingNumber","ExpirationDate":"@ExpirationDate","ProductionDate":"@ProductionDate"},1) If(@Response.Status="-1") Set(@RuleErrorMessage,@Response.Message) Goto(ExitForm) EndIf() ItemTracking.New({"LineType":"5","Quantity":"@ItmTrkQuantity","TrackingNumber":"@trackingNumber","ExpirationDate":"@ExpirationDate","ProductionDate":"@ProductionDate"},1) If(@Response.Status="-1") Set(@RuleErrorMessage,@Response.Message) Goto(ExitForm) EndIf() Next() Else() WorkOrderLine.New({"SlipType":"2","Quantity":"@Quantity"},1) If(@Response.Status="-1") Set(@RuleErrorMessage,@Response.Message) Goto(ExitForm) EndIf() SlipLine.New({"SlipType":"2","Quantity":"@Quantity"},1) If(@Response.Status="-1") Set(@RuleErrorMessage,@Response.Message) Goto(ExitForm) EndIf() EndIf() Next() CustomState.Get(14) //Tamamlandı WorkOrder.Save() If(@Response.Status="-1") Set(@RuleErrorMessage,@Response.Message) Goto(ExitForm) EndIf() CustomState.Get(19) // Entegre Edildi Slip.Save() If(@Response.Status="-1") Set(@RuleErrorMessage,@Response.Message) Goto(ExitForm) EndIf() Set(@RuleResponse.Status,"0") Goto(SuccsessExitForm) ExitForm: Set(@RuleResponse.Status,@Response.Status) Set(@RuleResponse.CustomMessage,"Hata oluştu : @RuleErrorMessage") Goto(ReturnForm) SuccsessExitForm: If(@RuleResponse.Status="0") Set(@RuleResponse.CustomMessage,"@@PlanningSlip.SlipNumber Numaralı Planlamaya ait malzemeler Transfer tründe emir ve stok fişi ile Mal Toplama adresine toplanıp, Mal Toplama adresinden sevk edilerek işlem tamamlanmıştır.") EndIf() ReturnForm: Set(@Response.Message,"") EndForm() BeginForm(TransferReservationSlip) Set(@sourceErpFirmId,@@ErpFirm.Id) Set(@targetErpFirmId, {Actions.1.RuleResponse}) Warehouse.Get(@GridSelectList.rows.1.WarehouseId) ReservationSlip.List("WarehouseId=@GridSelectList.rows.1.WarehouseId and Active=1","Id",@ReservationSlipList) For(@i,1,@ReservationSlipList.rowCount,1) ErpFirm.Get(@sourceErpFirmId) ReservationSlip.Get(@ReservationSlipList.rows.@i.Id) ReservationSlip.Set({"Active":"0"}) ReservationSlip.Save() Set(@sourceReservationSlip,@@ReservationSlip) ErpFirm.Get(@targetErpFirmId) If(@sourceReservationSlip.rows.count>0) ReservationSlipLine.List("SlipId=@ReservationSlipList.rows.@i.Id","Id",@sourceReservationSlipline) If(@sourceReservationSlipline.rows.count>0) For(@k,1,@sourceReservationSlipline.rowCount,1) Warehouse.Get(@sourceReservationSlipline.rows.@k.WarehouseId) IF(@@Warehouse!="") EndIf() Next() EndIf() EndIf() Next() Set(@RuleResponse.Status,"0") Goto(SuccsessExitForm) ExitForm: Set(@RuleResponse.Status,@Response.Status) Set(@RuleResponse.CustomMessage,"Hata oluştu : @RuleErrorMessage") Goto(ReturnForm) SuccsessExitForm: If(@RuleResponse.Status="0") Set(@RuleResponse.CustomMessage,"@@PlanningSlip.SlipNumber Numaralı Planlamaya ait malzemeler Transfer tründe emir ve stok fişi ile Mal Toplama adresine toplanıp, Mal Toplama adresinden sevk edilerek işlem tamamlanmıştır.") EndIf() ReturnForm: Set(@Response.Message,"") EndForm()