Advertisement
mnakos

veko_sales.js

Jul 7th, 2015
360
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //----------------------------------------------------------------------------------------------
  2. // ==========  G L O B A L   V A  R I A B L E S
  3. var FISCAL_FILE_FULL_PATH = "c:\\tmp\\testing.txt";
  4. var ASK_FOR_FISCAL_FILE_EXP = "Must I generate a fiscal file for the saved invoice?";
  5. 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: ";
  6. //----------------------------------------------------------------------------------------------
  7. // ==========  L I B R A R I E S
  8. 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)};
  9. // ==========  E N D   L I B R A R I E S
  10. //----------------------------------------------------------------------------------------------
  11. function ON_AFTERPOST()
  12. {
  13.     var sid;
  14.    
  15.     if(X.NEWID > 0)
  16.         sid = X.NEWID;
  17.     else
  18.         sid = SALDOC.FINDOC;
  19.    
  20.     var answer = X.ASK("CAUTION - Confirmation!", ASK_FOR_FISCAL_FILE_EXP);
  21.    
  22.     if(answer == 6)
  23.         _export_fiscal_file(sid);
  24. }
  25. //----------------------------------------------------------------------------------------------
  26. function _export_fiscal_file(sid)
  27. {
  28.     var outs = "";
  29.     var SQL, tmpDS;
  30.    
  31.     outs = "CLEAR;\r\nKEY REG;\r\n";
  32.    
  33.     SQL = ("select mt.name as item_name, round(mtl.qty1, 2) as qty1, " +
  34.         "Round((mtl.LINEVAL / mtl.qty1), 2) as price " +
  35.         "from mtrlines mtl " +
  36.         "inner join mtrl mt on mt.mtrl = mtl.mtrl " +
  37.         "where findoc = {0};")
  38.         .supplyArguments(sid);
  39.     tmpDS = X.GETSQLDATASET(SQL, null);
  40.    
  41.     if(tmpDS.Recordcount == 0) return;
  42.    
  43.     var tmp_qty, tmp_price;
  44.    
  45.     while(!tmpDS.Eof)
  46.     {
  47.         tmp_qty = new Number(tmpDS.qty1) * 1;
  48.         tmp_qty = tmp_qty.FPNumberFormat(2).replace(",", ".");
  49.         tmp_price = new Number(tmpDS.price) * 1;
  50.         tmp_price = tmp_price.FPNumberFormat(2).replace(",", ".");
  51.        
  52.         //FPNumberFormat
  53.         outs += ("SALE DPT=1,DES='{0}',QTY={1},PRICE={2};\r\n")
  54.             .supplyArguments(tmpDS.item_name, tmp_qty, tmp_price);
  55.        
  56.         tmpDS.Next;
  57.     }
  58.    
  59.     outs += "CLOSE TENDER=1";
  60.    
  61.     try
  62.     {
  63.         X.Tofile(FISCAL_FILE_FULL_PATH, outs);
  64.     }
  65.     catch(e)
  66.     {
  67.         X.Exception(FISCFILE_ERROR + e.description);
  68.     }
  69. }
  70. //----------------------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement