//----------------------------------------------------------------------------------------------
// ========== 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