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) 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,"")