Wednesday, December 3, 2008

Item Posting "Material Issue"

public class InventJournalTransUploadSPL_movement
//UploadInventTrans
{
    InventJournalTable  inventJournalTable;
    FormRun             formRunInventJournalTable;
     MaterialIssueTable material;
}

void callModified(FormRun _formRun, Types _types, int _dsId, int _fieldId)
{
    FormStringControl       fc1;
    FormRealControl         fc2;
    FormIntControl          fc3;
    FormComboboxControl     fc4;
    FormDateControl         fc5;
    ;

    switch (_types)
    {
        case (Types::String) :
                                fc1= _formRun.design().addControl(FormCOntrolType::String,"InventXXX");
                                fc1.dataSource(_dsid);
                                fc1.dataField(_fieldId);
                                fc1.modified();
                                _formRun.design().removeControl(fc1.id());
                                return;


        case (Types::Real)   :
                                fc2= _formRun.design().addControl(FormCOntrolType::Real,"InventXXX");
                                fc2.dataSource(_dsid);
                                fc2.dataField(_fieldId);
                                fc2.modified();
                                _formRun.design().removeControl(fc2.id());
                                return;
        case (Types::Integer) :
                                fc3= _formRun.design().addControl(FormCOntrolType::Integer,"InventXXX");
                                fc3.dataSource(_dsid);
                                fc3.dataField(_fieldId);
                                fc3.modified();
                                _formRun.design().removeControl(fc3.id());
                                return;
        case (Types::Enum) :
                                fc4= _formRun.design().addControl(FormCOntrolType::ComboBox,"InventXXX");
                                fc4.dataSource(_dsid);
                                fc4.dataField(_fieldId);
                                fc4.modified();
                                _formRun.design().removeControl(fc4.id());
                                return;
        case (Types::Date) :
                                fc5= _formRun.design().addControl(FormCOntrolType::Date,"InventXXX");
                                fc5.dataSource(_dsid);
                                fc5.dataField(_fieldId);
                                fc5.modified();
                                _formRun.design().removeControl(fc5.id());
                                return;
    }

    throw "";
}

void createJournalTable()
{
    Args                            args                        = new args();
    FormDataSource                  fds;
    ;

    args.name(formStr(InventJournalTable));
    args.parmEnumType(enumname2id("InventJournalType"));
    args.parmEnum(InventJournalType::project);

    formRunInventJournalTable = classFactory.formRunClass(args);

    formRunInventJournalTable.init();
    formRunInventJournalTable.design().visible(false);
    formRunInventJournalTable.run();

    fds = formRunInventJournalTable.dataSource();
    fds.create();

    inventJournalTable = fds.cursor();
    inventJournalTable.JournalNameId = material.InventJournalNameId;
    this.callModified(formRunInventJournalTable, Types::String, fds.id(), fieldNum(InventJournalTable, JournalNameId));

    inventJournalTable.Description = material.Name;
    this.callModified(formRunInventJournalTable, Types::String, fds.id(), fieldNum(InventJournalTable, Description));

    inventJournalTable.VoucherSeqId = material.InventJournalVoucherSeqId;
    this.callModified(formRunInventJournalTable, Types::String, fds.id(), fieldNum(InventJournalTable, VoucherSeqId));

    inventJournalTable.MaterialIssueId = material.MaterialIssueId;
    this.callModified(formRunInventJournalTable, Types::String, fds.id(), fieldNum(InventJournalTable, MaterialIssueId));

    inventJournalTable.NumOfLines = material.Lines;
    this.callModified(formRunInventJournalTable, Types::Integer, fds.id(), fieldNum(InventJournalTable, NumOfLines));

    formRunInventJournalTable.dataSource().write();
}

void createJournalTrans()
{
    Args                            args                        = new args();
    FormDataSource                  fds;
    FormRun                         formRun;
    InventJournalTrans              inventJournalTrans;
    InventDim                       inventDim;
    object                          obj;
    MaterialIssueLine               MaterialIssueLine;
    ;

    args.name(formStr(InventJournalProject));
    args.record(inventJournalTable);
    args.caller(formRunInventJournalTable);

    formRun = classFactory.formRunClass(args);

    formRun.init();
    formRun.design().visible(false);
    formRun.run();
   while select MaterialIssueLine where MaterialIssueLine.MaterialIssueId == material.MaterialIssueId
   {
    fds = formRun.dataSource();
    fds.create();

    inventJournalTrans = fds.cursor();

    inventJournalTrans.ItemId = MaterialIssueLine.ItemId;//"B-Uad";
    this.callModified(formRun, Types::String, fds.id(), fieldNum(InventJournalTrans, ItemId));

    inventJournalTrans.Qty    = MaterialIssueLine.IssuedQty;// 10;
    this.callModified(formRun, Types::Real  , fds.id(), fieldNum(InventJournalTrans, Qty));


    inventJournalTrans.ProjId  =material.ProjId;// '40110';
    this.callModified(formRun, Types::String  , fds.id(), fieldNum(InventJournalTrans, ProjId));

    inventJournalTrans.ProjSalesCurrencyId  = MaterialIssueLine.CurrencyCode;//'INR';
    this.callModified(formRun, Types::String  , fds.id(), fieldNum(InventJournalTrans, ProjSalesCurrencyId));

    inventJournalTrans.ProjUnitID = MaterialIssueLine.UnitID;// 'pcs';
    this.callModified(formRun, Types::String  , fds.id(), fieldNum(InventJournalTrans, ProjUnitID));

    inventJournalTrans.ProjCategoryId = MaterialIssueLine.ProjCategoryId;// 'Bulbs';
    this.callModified(formRun, Types::String  , fds.id(), fieldNum(InventJournalTrans, ProjCategoryId));


    obj = fds;

    fds = obj.inventDimDs();

    inventDim = fds.cursor();

    inventDim.InventLocationId =MaterialIssueLine.InventLocationId;// "NW";
    this.callModified(formRun, Types::String  , fds.id(), fieldNum(InventDim, InventLocationId));

    formRun.dataSource().write();
    }
    formRun.close();
}

public void first(MaterialIssueTable _MaterialIsuueTable)
{
    JournalForm                _journalForm;
    Args args,args1;
    boolean check;

   ;
   check = true;

    Material = _MaterialIsuueTable;
    ttsbegin;
    this.createJournalTable();
    try
    {
    if (inventJournalTable)
    {
        this.createJournalTrans();
       // this.postJournalTable();
       args = new Args();
       args.record(inventJournalTable);
       args.caller(formRunInventJournalTable);

        new menuFunction(menuItemActionStr(InventJournalPost),
        MenuItemType::Action).run(args);

    }
    }

    catch
    {
     ttscommit;
    }

    ttscommit;
}

static void main(args _args)
{
    InventJournalTransUploadSPL_movement    InventJournalTransUploadSPL_movement = new InventJournalTransUploadSPL_movement();


    MaterialIssueTable Material1;
    ;

    Material1 =  _args.record();

    InventJournalTransUploadSPL_movement.first(Material1);

}

This is done as per one of the customer specification

No comments:

How to identify the user that was used to change an object from AOT in AX2012

Get the object name for which we need to track these (user and date&time) information's. Login to SQL Server Management Studio an...