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(@[email protected])

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