mnakos icon

veko_sales.js

mnakos | PRO | 07/07/15 08:23:39 AM UTC | 0 ⭐ | 527 👁️ | Never ⏰ | []
JavaScript |

2.71 KB

|

None

|

0 👍

/

0 👎

//----------------------------------------------------------------------------------------------
// ==========  G L O B A L   V A  R I A B L E S
var FISCAL_FILE_FULL_PATH = "c:\\tmp\\testing.txt";
var ASK_FOR_FISCAL_FILE_EXP = "Must I generate a fiscal file for the saved invoice?";
var FISCFILE_ERROR = "An error occured while trying to save the fiscal file. Perhaps you sould try once more, or an invalid path selected for ourput: ";
//----------------------------------------------------------------------------------------------
// ==========  L I B R A R I E S
String.prototype.LeadingZeros=function(count){var sLen=this.length;var lenDiff,prefix;var lzi=0;prefix="";lenDiff=count-sLen;for(lzi=0;lenDiff>lzi;lzi++){prefix+="0"}return(prefix+this.toString())};String.prototype.supplyArguments=function(){var tmpS,CanExit;var retVal=this;for(sAiEx=0,arglen=arguments.length;sAiEx<arglen;sAiEx++){CanExit=false;while(!CanExit){tmpS=retVal.replace("{"+sAiEx+"}",arguments[sAiEx].toString());if(tmpS==retVal){CanExit=true}else{retVal=tmpS}}}return retVal};Number.prototype.FPNumberFormat=function(digits){return parseFloat(Math.round(this*100)/100).toFixed(digits)};
// ==========  E N D   L I B R A R I E S
//----------------------------------------------------------------------------------------------
function ON_AFTERPOST()
{
    var sid;
    
    if(X.NEWID > 0)
        sid = X.NEWID;
    else
        sid = SALDOC.FINDOC;
    
    var answer = X.ASK("CAUTION - Confirmation!", ASK_FOR_FISCAL_FILE_EXP);
    
    if(answer == 6)
        _export_fiscal_file(sid);
}
//----------------------------------------------------------------------------------------------
function _export_fiscal_file(sid)
{
    var outs = "";
    var SQL, tmpDS;
    
    outs = "CLEAR;\r\nKEY REG;\r\n";
    
    SQL = ("select mt.name as item_name, round(mtl.qty1, 2) as qty1, " +
        "Round((mtl.LINEVAL / mtl.qty1), 2) as price " +
        "from mtrlines mtl " +
        "inner join mtrl mt on mt.mtrl = mtl.mtrl " +
        "where findoc = {0};")
        .supplyArguments(sid);
    tmpDS = X.GETSQLDATASET(SQL, null);
    
    if(tmpDS.Recordcount == 0) return;
    
    var tmp_qty, tmp_price;
    
    while(!tmpDS.Eof)
    {
        tmp_qty = new Number(tmpDS.qty1) * 1;
        tmp_qty = tmp_qty.FPNumberFormat(2).replace(",", ".");
        tmp_price = new Number(tmpDS.price) * 1;
        tmp_price = tmp_price.FPNumberFormat(2).replace(",", ".");
        
        //FPNumberFormat
        outs += ("SALE DPT=1,DES='{0}',QTY={1},PRICE={2};\r\n")
            .supplyArguments(tmpDS.item_name, tmp_qty, tmp_price);
        
        tmpDS.Next;
    }
    
    outs += "CLOSE TENDER=1";
    
    try
    {
        X.Tofile(FISCAL_FILE_FULL_PATH, outs);
    }
    catch(e)
    {
        X.Exception(FISCFILE_ERROR + e.description);
    }
}
//----------------------------------------------------------------------------------------------

Comments