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()