ORKESTRA

ORKESTRA

  orkestra orkestra.com.tr
  Sohbet   İndirme Merkezi

Sipariş/irsaliye/fatura v.b. fişlerde Kapsam Dışı olmasına göre satırda KDV bilgisi gibi alanların anlık değiştirilmesi.

Bu işlemler için ilgili nesnelerin "Sipariş,İrsaliye,Fatura v.b." listeleme ekranında Uyarlama Tanımları içerisinde, "Editör Öznitelik Güncelleme" uyarlamasına aşağıdaki betik eklenir.

Console.warn("Property change = " + ctx.targetProperty);
if (ctx.targetProperty == "docInvType"){
    Console.warn("DocInvType = " + ctx.newValue);
    Object grid = ctx.findPropertyGrid("lines");
    Console.warn("grid = " + grid);
    Object colVat = grid.columnByProperty("vat");
    for (row : grid.getRows() as IBeanLineDataGridRow){
        Console.warn("console grid");
        if (ctx.bean.docInvType == 1){
            Console.warn("docInvType 1 olduğu durum");
            row.cell(colVat).resolvePart("9","vat.vatDef");
        }
        else{
            Console.warn("docInvType else olduğu durum");
            row.cell(colVat).resolvePart("18","vat.vatDef");
        }
    }
    grid.forceRecalculate();
}

 

 

İKİNCİ SENARYO; KDV ler ile beraber Tevkifatların da değiştirilmesi.

boolean debug = true;
if(debug){Console.warn("Property change = " + ctx.targetProperty);}
if (ctx.targetProperty == "docInvType")
{
    if(debug){Console.warn("DocInvType = " + ctx.newValue);}
    Object grid = ctx.findPropertyGrid("lines");
    Object colVat = grid.columnByProperty("vat");
    Object colItem = grid.columnByProperty("item");
    if(debug){
        Console.warn("grid = " + grid);
        Console.warn("colVat = " + colVat);
        Console.warn("colItem = " + colItem);
        Console.warn("Satır Sayısı = " + grid.rowCount);
    }
    int i=0;
    for (row : grid.getRows() as IBeanLineDataGridRow)
    {
        Object lineObject = cast(row.bean) TenderLine;
        if(debug){
            Console.warn("console grid");
            Console.warn("lineObject = " + lineObject);
        }
        if (ctx.bean.docInvType == 1 && lineObject.vat.vatRate==18)
        {
            BigDecimal kdvTutari = lineObject.vat.vatAmount;
            BigDecimal tevkifatTutari = lineObject.vat.vatWithold;
            row.cell(colVat).resolvePart("9","vat.vatDef");
            if(tevkifatTutari>0){
                lineObject.vat.setVatWitholdDiff(-1*tevkifatTutari);
                lineObject.vat.setVatUserDiff(0);
                if(debug){Console.warn("tevkifatTutari var => "+tevkifatTutari);}
                if(debug){Console.warn("Tevkifat var => "+lineObject.vat.vatWithold);}
            }
            if(debug){
                Console.warn("docInvType 1 olduğu durum");
                Console.warn("kdvTutari = " + kdvTutari);
            }
        }
        else if(lineObject.vat.vatRate==9){
            lineObject.vat.setVatWitholdDiff(0);
            lineObject.vat.setVatUserDiff(0);
            row.cell(colVat).resolvePart("18","vat.vatDef");
        }
        if(debug){
            Console.warn('-----------# '+i+'-------------');
            Console.warn('Urun Kodu : '+lineObject.item.getCode()+" - "+lineObject.item.getDescription());
        }
    }
    grid.forceRecalculate();
}