mnakos icon

S1Workshop-ContextMenu

mnakos | PRO | 10/05/17 10:36:09 AM UTC | 0 ⭐ | 420 👁️ | Never ⏰ | []
JavaScript |

5.63 KB

|

None

|

0 👍

/

0 👎

X.INCLUDE('MyLibFile.txt');
var vUSERSCTXMENU = ',' + X.CCCWSSETTINGS.USERSCTXMENU + ','; //Χρήστες που εμφανίζεται το right click menu
var vSALSERIESCONV = ',' + X.CCCWSSETTINGS.SALSERIESCONV + ','; //Σειρές που εκτελείται ο custom μετασχηματισμός
var vUSER = ',' + X.SYS.USER + ',';
 
function ON_CREATE() {
    ChangeContextMenus(); //Αλλαγή των μενού που εμφανίζονται στο δεξί κλικ (browser και lines) ====  ΠΡΟΣΟΧΗ ΟΡΙΖΕΤΑΙ ΜΟΝΟ ΣΤΟ ON_CREATE ====
}
 
function ChangeContextMenus() {
    //Στα internal objects το StringList του Browser έχει όνομα BRMENU και του grid GRIDMENU.
    //Στα παραστατικά πωλήσεων, αγορών και αποθήκης το grid των υπηρεσιών είναι SRVGRIDMENU και των Παγίων ASSGRIDMENU
 
    //Μενού browser
    if (vUSERSCTXMENU.indexOf(vUSER) > -1) {
        var vBrowserMenu = X.EXEC('CODE:ModuleIntf.FindXStrings', X.MODULE, 'BRMENU');
        X.EXEC('CODE:PiLib.TStringsSetItem', vBrowserMenu, 0, '201707191=1;Μετασχηματισμός SoftOne / Custom Μετασχηματισμός');        //Αλλαγή υπάρχουσας τιμής StringList
    
        //Προσθήκη νέων τιμών σε StringList
        X.EXEC('CODE:PiLib.TStringsAdd', vBrowserMenu, '-=-');  
        X.EXEC('CODE:PiLib.TStringsAdd', vBrowserMenu, '201707192=1;Οικονομικά στοιχεία πελάτη');   
        X.EXEC('CODE:PiLib.TStringsAdd', vBrowserMenu, '201707193=1;Run DLL Form');
        X.EXEC('CODE:PiLib.TStringsAdd', vBrowserMenu, '-=-');      
        X.EXEC('CODE:PiLib.TStringsAdd', vBrowserMenu, '201709281=1;Εργασία 1?Custom Εργασίες');
        X.EXEC('CODE:PiLib.TStringsAdd', vBrowserMenu, '201709282=1;Εργασία 2?Custom Εργασίες');
        X.EXEC('CODE:PiLib.TStringsAdd', vBrowserMenu, '201709283=1;Εργασία 3?Custom Εργασίες');
        X.EXEC('CODE:PiLib.TStringsAdd', vBrowserMenu, '201707194=3;Διαθεσιμότητα είδους');      
        
        X.EXEC('CODE:SysRequest.RefreshPopupMenu', X.MODULE, 'BRMENU', 1); //Refresh pop up menu
    }
 
    //Μενού γραμμών παραστατικού
    var vGridMenu = X.EXEC('CODE:ModuleIntf.FindXStrings', X.MODULE, 'GRIDMENU');
    X.EXEC('CODE:PiLib.TStringsAdd', vGridMenu, '-=-');
    X.EXEC('CODE:PiLib.TStringsAdd', vGridMenu, '201707195=Σχετικές καμπάνιες');   
    X.EXEC('CODE:PiLib.TStringsAdd', vGridMenu, '201707196=Διαθέσιμες παρτίδες'); 
    
    X.EXEC('CODE:SysRequest.RefreshPopupMenu', X.MODULE, 'GRIDMENU', 0);
    
    //a = X.EXEC('CODE:PiLib.TStringsGetText', vGridMenu);
    //X.WARNING(a);
    //a = X.EXEC('CODE:PiLib.TStringsGetText', vBrowserMenu);
}
 
function EXECCOMMAND(cmd) {
    if (cmd == 201707191) { //Δεξί κλικ - Μετασχηματισμός στο ευρετήριο
        var vSelRecs;
        vSelRecs = X.GETPARAM('SELRECS');
        if (vSelRecs == '') {
            X.WARNING ('Παρακαλώ επιλέξτε παραστατικά!');
            return;
        }       
        vSelRecs = vSelRecs.replace(/\?/g,",");
        var vds = X.GETSQLDATASET('SELECT DISTINCT SERIES FROM FINDOC WHERE '+ vSelRecs,null);
 
        if (vds.RECORDCOUNT > 1) {
            X.EXCEPTION ('Εχετε επιλέξει παραστατικά με διαφορετικές σειρές!');
        }
        else {
            var vSeries = ',' + vds.SERIES + ',';
            if (vSALSERIESCONV.indexOf(vSeries) > -1) {
                X.EXEC('XCMD:FORMIMPORT,SCRIPTNAME:SalesCustomConv');
            }
            else {
                X.EXEC('XCMD:CONVERTDLG,SOSOURCE:1351');
            }
        }
    }
    if (cmd == 201707192) {//Δεξί κλικ σε browser - Οικονομικά στοιχεία πελάτη
        var vSelRecs;
        vSelRecs = X.GETPARAM('SELRECS');
        if (vSelRecs == '') {
            X.WARNING ('Παρακαλώ επιλέξτε παραστατικά!');
            return;
        }               
        vSelRecs = vSelRecs.replace(/\?/g,",");
        var vds = X.GETSQLDATASET('SELECT DISTINCT TRDR FROM FINDOC WHERE '+ vSelRecs,null);
        if (vds.RECORDCOUNT > 1) {
            X.WARNING('Εχετε επιλέξει περισσότερους από έναν πελάτες!');
            return;
        }
        else if (vds.RECORDCOUNT == 1) {
            X.EXEC('XCMD:CUSTOMER[FORM=Οικονομικά στοιχεία,AUTOLOCATE='+vds.TRDR+']');
        }
    }   
    if (cmd == 201707194) {//Δεξί κλικ σε browser - Γραμμές ειδών
        var vSelRecs;
        vSelRecs = X.GETPARAM('SELRECS');
        X.WARNING(vSelRecs);
        if (vSelRecs == '') {
            X.WARNING ('Παρακαλώ επιλέξτε παραστατικά!');
            return;
        }               
        vSelRecs = vSelRecs.replace(/\?/g,",");
        var vds = X.GETSQLDATASET('SELECT DISTINCT MTRL FROM FINDOC INNER JOIN MTRLINES ON FINDOC.FINDOC=MTRLINES.FINDOC WHERE '+ vSelRecs,null);
        if (vds.RECORDCOUNT > 1) {
            X.WARNING('Εχετε επιλέξει περισσότερα από ένα είδη!');
            return;
        }
        else if (vds.RECORDCOUNT == 1) {
            X.EXEC('XCMD:ITEM[FORM=Διαθεσιμότητα,AUTOLOCATE='+vds.MTRL+']');
        }
    }       
    
    if (cmd == 201707195) {
        X.WARNING('Το είδος '+ITELINES.X_NAME+ ' δεν υπάρχει σε καμπάνιες!');
    }
    if (cmd == 201707196) {
        if (ITELINES.MTRL > 0) {
            X.EXEC('XCMD:ITEM[FORM=Διαθέσιμες παρτίδες,AUTOLOCATE='+ITELINES.MTRL+']');
        }
    }   
    if (cmd == 201709281)
        MyMessage(16, 'Προσοχή', 'Custom Εργασία 1');
    if (cmd == 201709282)
        MyMessage(64, 'Πληροφορία', 'Custom Εργασία 2');
    if (cmd == 201709283) {
        var answer = MyMessage(4, 'Ερώτηση', 'Custom Εργασία 3');
        if (answer == 6)
            X.WARNING('Yes pressed');
        else if (answer == 7)
            X.WARNING('No pressed');            
    }
}

Comments