doom-software.com

Website review doom-software.com

Facturacion Web

 Generated on April 06 2026 08:36 AM

Old data? UPDATE !

The score is 28/100

SEO Content

Title

Facturacion Web

Length : 15

Perfect, your title contains between 10 and 70 characters.

Description

Length : 0

Very bad. We haven't found meta description on your page. Use this free online meta tags generator to create description.

Keywords

Very bad. We haven't found meta keywords on your page. Use this free online meta tags generator to create keywords.

Og Meta Properties

This page does not take advantage of Og Properties. This tags allows social crawler's better structurize your page. Use this free og properties generator to create them.

Headings

H1 H2 H3 H4 H5 H6
0 10 28 48 6 0
  • [H2] Ooops. !!!! Algo fué mal.
  • [H2] Ooops. !!!! Algo tardo demasiado
  • [H2] Ooops. !!!! Algo fué mal.
  • [H2] Ooops. !!!! Algo fué mal.
  • [H2] Fields
  • [H2] Fields
  • [H2] Fields
  • [H2] Ooops. !!!! Algo tardo demasiado
  • [H2] Ooops. !!!! Algo fué mal.
  • [H2] Ooops. !!!! Algo fué mal.
  • [H3] ' + settings.title + '
  • [H3] Files in folder ( " + data.foldername + " )
  • [H3] '+ ' Files
  • [H3] " + vTitol + "
  • [H3] No Preview avialable
  • [H3] Un error no controlado ha ocurrido.
  • [H3] ${self.options.title}
  • [H3] Un error no controlado ha ocurrido.
  • [H3] Un error no controlado ha ocurrido.
  • [H3] ' + element.value + '
  • [H3] ' + element.value + '
  • [H3] ' + vElement.title + '
  • [H3]
  • [H3] " + data.General.title + "
  • [H3] " + vTitol + "
  • [H3] ' + element.value + '
  • [H3] " + data.General.title + "
  • [H3] " + vTitol + "
  • [H3] " + vTitol + "
  • [H3] ' + settings.print.title + '
  • [H3] ' + settings.print.title + '
  • [H3] ",{class:"box-title",text:op.GroupTitle})) var hBoxTools = $("",{class:"box-tools"}).appendTo(hDivTitle); var hMin = $("",{class:"btn btn-box-tool","data-widget":"collapse"}).appendTo(hBoxTools).append("") .click(function(){ self.DivList.toggle(500); }); var hdivMenus = $("",{style:"display:block",class:"box-body no-padding"}).appendTo(self.DivList); self.DivList = hdivMenus; }// GROUP title // MAIN BUTTON if (self.options.elements.button){ self.MainButton = $.appendE(self.options.elements.button).appendTo(hDiv); }else{ self.MainButton = $("",{class:self.options.ButtonClass,"data-toggle":"dropdown","type":"button","aria-expanded":true}).appendTo(hDiv); } if (self.options.ButtonStyle) {self.MainButton.attr("style",self.options.ButtonStyle)} var BtnTitle = null; if (self.options.title) {BtnTitle = self.options.title + ' '} var hUL = $("",{class:self.options.UlClass}); self.UL = hUL; if (self.options.ulstyle) { hUL.attr("style",self.options.ulstyle) } $.each(this.recordset,function(i,obj){ // console.log(obj) if (obj.icon == "nav-divider"){ // hUL.appendE({tagName:"",class:obj.icon}) var hLi = $.appendE({tagName:"",class:obj.icon}).appendTo(hUL).append(""); }else{ var hLi = $('',{class:self.options.LiClass,role:"presentation",style:self.options.LiStyle}).appendTo(hUL); if (obj.rowData) {hLi.attr("rowData", obj.rowData)}; if (obj.addLIclass) { hLi.attr("class" , hLi.attr("class") + ' ' + obj.addLIclass ) } obj.LI = hLi; var hA = $("",{text: ' ' + obj.title, role:"menuitem"}).appendTo(hLi); if (obj.titlestyle) {hA.attr("style", obj.titlestyle)} if (obj.icon){ var iAttributes = {class:obj.icon}; if (obj.iconstyle) {iAttributes.style = obj.iconstyle} hA.prepend($("",iAttributes)); } // icon if (obj.badge) { if (!obj.badgestyle) {obj.badgestyle = ""} $("",{class:'badge',text:obj.badge,style:"float:right;" + obj.badgestyle}).appendTo(hA) }// badge hLi.click({item:hLi.index(),obj:obj},function(e){ var obj = e.data.obj; var DataSend = self.recordset[e.data.item]; if (self.options.DataAdd) {DataSend.DataAdd =self.options.DataAdd } if (obj.onclick) { if (self.options.ClickContext){ obj.onclick.call(self.options.ClickContext,DataSend) }else{ obj.onclick(DataSend) } } if (self.options.onclick){ if (self.options.ClickContext){ self.options.onclick.call(self.options.ClickContext,DataSend) }else{ self.options.onclick(DataSend) } } if (self.options.selected){ self.DivList.find("li.active").removeClass("active"); $(this).addClass("active"); } if (self.options.showCheck) { var hli = self.UL.find("li.check"); hli.removeClass("check"); hli.find("a").find("i.fa-check").remove(); $(this).find("a").prepend(''); $(this).addClass("check"); } // Change the default. if (self.options.default){ self.MainButton.html(obj.title + ' ') if (self.options.icon) { self.MainButton.prepend(" ")} self.MainButton.append('') }// default }) // DEFAULT if ( (self.options.default) && (self.options.default== obj.id) ) { if (self.options.showCheck) { hLi.addClass("check"); hA.prepend(''); } if (self.options.selected){ hLi.addClass("active"); } BtnTitle = obj.title + ' '; }; // default }// No divider }) // each // BUTTON TITLE if (BtnTitle) {self.MainButton.html(BtnTitle)} if (self.options.icon) { self.MainButton.prepend(" ")} self.MainButton.append('') self.DivList.append(hUL); }, // end ShowElements } // --------------------------------------------------------- // DECLARED JQUERY FUNCTIONS // ------------------------------------------------------------ $.fn.jMenu = function(options){ // RETURN FOR EACH ELEMENT CHAINING MANTEINING return this.each(function(){ // this is now jquery object this.html(''); var my = Object.create(jMenu); my.init(options, this); // INSTANCIATE MYCOMPONENT // access to my component from outside like $('#mydiv').data('mycomponent') if (options.idName){ $.data(this,options.idName,my) }else{ $.data(this,'jMenu',my) } }); // end return FOR EACH ELEMENT CHAINING MANTEINING } // --------------------------------------------------------- // OPTIONS // ------------------------------------------------------------ $.fn.jMenu.Options = { TagButton: "", MainDivSytle: "", MainDivClass: "dropdown inline", ButtonClass:"btn btn-default dropdown-toggle" , UlClass:"dropdown-menu" , LiClass:"",LiStyle:"cursor:pointer" , ButtonClass:"btn btn-default dropdown-toggle", SpanClass:"label label-default pull-right", selected: false,showCheck:false, GrupTitleClass: "box-header with-border", elements:{ // button:{tagName:"",class:"btn btn-default dropdown-toggle",style:"","data-toggle":"dropdown","type":"button","aria-expanded":true}, } }; // end options // APPEND ELEMENT *appendE jQuery.fn.appendE = function(element){ return this.each(function(){ // YOUR CODE FOR EACH ELEMENT HERE // EXAMPLE : $(this).css('color',settings.color); var tagName = element.tagName; delete element.tagName; // console.log("append element:" + tagName + " - " ); console.log(element); $(this).append($(tagName,element)); }); // end return }// appendE jQuery.appendE = function(element){ var tagName = element.tagName; delete element.tagName; return $(tagName,element) } // appendE })(jQuery, window, document); // END SCOPE jMenu // jKubyData component var jKubyData = { // default values *defaults defaults : { name: 'Default Name', DBtoken:null , xmlConf:null, }, // end defaults // SERVER CONNECTION *server *options serverOptions: { // hostname : "api.kubysoft.com" , url : "/node/app", // "/app" kubyapikey: "kubyapitoken00014xs", appServer: "KubyData.Api" // change app server for your app server. }, // CALL SERVER *server *call CallServer: function(Myparams, fnNext){ // console.log("fn CallServer") var self = this; // INI VARS. var settings = {CallType:"GET",timeout:9000}; if (!fnNext) {fnNext = function(){}} if (!Myparams) { Myparams = {}} // PREPARE CALL Myparams.DBToken = self.options.DBtoken; var hostName = window.location.hostname; if ( this.serverOptions.hostname ) { hostName = this.serverOptions.hostname } var Protocol = window.location.protocol; if (!Protocol){Protocol = "http:"} var url= Protocol + '//'+ hostName + self.serverOptions.url + '/?app=' + self.serverOptions.appServer; console.log("KUDABY CALL SERVER: " + url);console.log("Settings:") ; console.dir(settings); console.log("Myparams:"); console.dir(Myparams); // NodeAjaxTime = new Date().getTime(); var MydataReturn = null; $.ajax({ // headers: {'kubyapikey': self.serverOptions.kubyapikey}, type: settings.CallType, url: url, contentType: 'application/json', timeout: settings.timeout, data: Myparams , success: function(data) { if (fnNext) { if (data.error){ self.showError(data.error, data.errorDescription) }else{ fnNext.call(self,data); } }// success. }, // success error: function(jqXHR, textStatus, errorThrown) { self.showError("Error Call server", errorThrown) } // error })// end ajax. },// end call server, // SERVER CALL ServerCallExample: function(){ var self = this; // call server var MyParams = {option:"exceltime",value:42854}; self.CallServer(MyParams, fnResponse); function fnResponse(data){ var self = this; console.log("After server"); console.dir(self);console.log(data); } }, // ServerCallExample // *CREATE A INSTANCE *new *instance create: function(options){ var instance = Object.create(this); Object.keys(options).forEach(function(key){ instance[key] = options[key]; }) return instance; }, // end create // INIT *init componentn init: function(options, elem){ // INI OBJECTS var self = this; // reference to mycomponent . self.MainDiv = $(elem); // jquery version of actual element // INI OPTIONS self.options = $.extend({}, self.defaults, options); // KUDABY INI if (!self.options.DBtoken) {self.options.DBtoken = KubyData.DBtoken} self.kubyDB = new KuDaBy({DB:self.options.DBtoken,xmlConf:self.options.xmlConf}); // UPDATE SCHEMA var jForms = jKudabyForms.create({}) jForms.SchemaUpdate({xml:"KubyData.Schema"},function(){ }); // INI VARS. self.Data = {} self.Data.user = KubyData.usuario; self.Data.operacionList = [{value:'1',title:'Igual =',db:'='},{value:'2',title:'Diferente ',db:''}, {value:'3',title:'Contiene (like)',db:'like'}, {value:'4',title:'Empiez por',db:'like'},{value:'5',title:'Mayor que >',db:'>'}, {value:'6',title:'Menor que
  • [H3] Añadir nuevo criterio
  • [H3] Añadir nuevo campo
  • [H3] '+ ' Files
  • [H3] Un error no controlado ha ocurrido.
  • [H3] Un error no controlado ha ocurrido.
  • [H3] " + vTitulo + "
  • [H4] ' + settings.title + '
  • [H4] Alert!
  • [H4] '); hMain.append(hText ); if (settings.type =='danger') { hText.append(''); }else if (settings.type =='warning') { hText.append(''); }else if (settings.type =='info') { hText.append(''); }else if (settings.type =='success') { hText.append(''); }; // end icon hText.append(' '+ settings.title +''); // DESCRIPCIOT hMain.append(''); hMain.append('' + settings.description + '
  • [H4] Warning!
  • [H4] Do you wanna delete the file ?
  • [H4] ' + Err + '
  • [H4] Nueva Carpeta
  • [H4] Puede volver a cargar la aplicación. Si el problema persiste envie un ticket para que revisemos el problema.
  • [H4] ' + Err + '
  • [H4] Editar Html
  • [H4] Puede que hayas perdido intermitentemente la conexión, prueba de volver a intentarlo.
  • [H4] Puedes volver a cargar la aplicación.
  • [H4] Se ha generado automáticamente el ticket num ${numTicket} y en seguida revisaremos el problema para que puedas seguir trabajando.
  • [H4] Puedes volver a cargar la aplicación y probar la actuación de nuevo, si el problema persiste abre un ticket indicando en qué actuación te aparece este error.
  • [H4] IMPORTING ERRORS
  • [H4] IMPORTING ERRORS
  • [H4] ' + data.ErrorImport + '
  • [H4] IMPORTING DATA
  • [H4] IMPORTING DATA
  • [H4] IMPORTING ERRORS
  • [H4] ' + Err + '
  • [H4] Warning!
  • [H4] Are you sure to delete this record ?
  • [H4] Warning!
  • [H4] Deleting in " + CountDownDelete + "
  • [H4] ' + Err + '
  • [H4] Añadir nuevo cliente
  • [H4] Añadir nuevo cliente
  • [H4] ' + Err + '
  • [H4] {{title}}
  • [H4] ' + Err + '
  • [H4] ' + Err + '
  • [H4] Warning!
  • [H4] Do you wanna delete the file ?
  • [H4] Puede que hayas perdido intermitentemente la conexión, prueba de volver a intentarlo.
  • [H4] Puedes volver a cargar la aplicación.
  • [H4] Se ha generado automáticamente el ticket num ${numTicket} y en seguida revisaremos el problema para que puedas seguir trabajando.
  • [H4] Puedes volver a cargar la aplicación y probar la actuación de nuevo, si el problema persiste abre un ticket indicando en qué actuación te aparece este error.
  • [H4] ' + Err + '
  • [H4] Atención!
  • [H4] Esta seguro que quiere borrar este registro ?
  • [H4] Alerta!
  • [H4] Borrado en " + self.CountDownDelete + "
  • [H4] Atención!
  • [H4] Esta seguro que quiere borrar este registro ?
  • [H4] Warning!
  • [H4] Deleting in " + self.CountDownDelete + "
  • [H4] ' + Err + '
  • [H5] TOTAL
  • [H5] TOTAL
  • [H5] TOTAL
  • [H5] No data
  • [H5] "+ '' + Title + "
  • [H5] ",{class:"description-text",text:"TOTAL"})) .append($("",{class:"description-header",text:total.toFixed(vdecimals)})) if (self.options.showTotal == "Left" ){ FootLeft.append(hDivTotals) }else if (self.options.showTotal = "Right"){ FootRight.append(hDivTotals) } } } // divider footer. }, // HtmlIni // DATA PREPARE *DATA *PREPARE DataPrepare: function(){ var self = this, op = self.options; self.DataFields(); console.log("fn DataPrepare"); console.log(op); // INI DATA // self.Data.Recordset = self.options.recordset; // INI VARS var swPrepareData = true; // CAMBIAR CAMP DATA PER DATE if ( (op.FieldGrup.toLowerCase() == 'fecha') || (op.FieldGrup.toLowerCase() == 'data') || (op.FieldGrup.toLowerCase() == 'date') ) { op.SwFecha = true ; op.FieldGrupOriginal = op.FieldGrup; // GET PART OF DAYS var con, mindate=null,maxdate=null, row; if (self.Data.Recordset.length > 0){ for (i = 0; i < self.Data.Recordset.length; i++){ row = self.Data.Recordset[i]; var dateAact = row[op.FieldGrup]; var dateArr = dateAact.split('/'); var year = parseInt(dateArr[2]); var month = parseInt(dateArr[1]); var monthstr= month; if (month < 10){monthstr='0'+month}else{ } var day = parseInt(dateArr[0]); if (day < 10){var daystr='0' + day} var strDate = month + "/" + day + "/"+ year; var CurrDate = new Date(strDate); // month if (month < 10){var mes='0'+month+'/'+year;} else{var mes=month+'/'+year;}; row.Month = mes; row.MonthNum= month; // day var DoY = getDOY(CurrDate); row.Day = DoY row.DayM = daystr + '/' + monthstr; row.DayY = daystr + '/' + monthstr + '/' + year; // week var week = getWeekNumber(CurrDate); row.Week = week; // year row.Year = year; row[op.FieldGrup] = CurrDate; //row.push(DoY);row.push(week); row.push(month); row.push(mes); row.push(year);row.pusch // MIN MAX DATE if ( (mindate== null ) || ( CurrDate < mindate) ) { mindate = CurrDate } if ( (maxdate== null ) || ( CurrDate > maxdate) ) { maxdate = CurrDate } }; // Difference var timeDiff = Math.abs(mindate.getTime() - maxdate.getTime()); var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24)); op.DaysDiff = diffDays; // console.log("After prepare data "); console.dir(self.Data.Recordset); self.Data.DataArray = self.record2Array(self.Data.Recordset); self.Data.keys = self.Data.DataArray[0]; } }else{ op.SwFecha = false self.Data.DataArray = self.record2Array(self.Data.Recordset); self.Data.keys = self.Data.DataArray[0]; } // if fecha // OCULTA CAMBIO DE FECHAS. if (!op.SwFecha){ self.DivTimeView.html(''); } // IF CharType IS PIECHART DELETE NEGATIVE VALUES. if (op.CharType == "PieChart"){ var colValue = self.Data.keys.indexOf(op.FieldValor) for (var i = 1; i < self.Data.DataArray.length; i++) { if (self.Data.DataArray[i][colValue] < 0 ) { self.Data.DataArray.splice(i, 1);} } }// if // PREPARE DATAGRAPH GRUP DATA /* if (false){ var DataG = google.visualization.arrayToDataTable(self.Data.DataArray); self.Data.DataGraph = google.visualization.data.group(DataG,[self.Data.keys.indexOf(op.FieldGrup)], [{'column': self.Data.keys.indexOf(op.FieldValor), 'aggregation': google.visualization.data.sum, 'type': 'number'}] ); } // prepare */ self.dataChangeView(); self.showMultiView(); },// DataPrepare //DataFields *data *fields DataFields : function(){ var self = this, op = self.options; console.log(self.Data.Recordset); console.log("Fields"); console.log(op.Fields); self.Fields = []; var savedFields = []; var fieldElement = {}; //loop the field options if (self.options.Fields.length>0){ for (var i = 0;i

Images

We found 74 images on this web page.

72 alt attributes are empty or missing. Add alternative text so that search engines can better understand the content of your images.

Text/HTML Ratio

Ratio : 0%

This page's ratio of text to HTML code is below 15 percent, this means that your website probably needs more text content.

Flash

Perfect, no Flash content has been detected on this page.

Iframe

Too Bad, you have Iframes on the web pages, this mean that content in an Iframe cannot be indexed.

URL Rewrite

Good. Your links looks friendly!

Underscores in the URLs

We have detected underscores in your URLs. You should rather use hyphens to optimize your SEO.

In-page links

We found a total of 8 links including 3 link(s) to files

Anchor Type Juice
view » Internal Passing Juice
"+ vOneFile.name + " Internal Passing Juice
Action Internal Passing Juice
"+Myfile.descripcio+" Internal Passing Juice
"+name+" Internal Passing Juice
General Internal Passing Juice
'+obj.title+' Internal Passing Juice
Created by doom-software.com Internal Passing Juice

SEO Keywords

Keywords Cloud

 todos sessión los software iniciar copyright derechos  doom inicio productos

Keywords Consistency

Keyword Content Title Keywords Description Headings
inicio 1
productos 1
iniciar 1
sessión 1
copyright 1

Usability

Url

Domain : doom-software.com

Length : 17

Favicon

Great, your website has a favicon.

Printability

We could not find a Print-Friendly CSS.

Language

Good. Your declared language is sp.

Dublin Core

This page does not take advantage of Dublin Core.

Document

Doctype

Missing doctype

Encoding

Perfect. Your declared charset is ISO-8859-15.

W3C Validity

Errors : 0

Warnings : 0

Email Privacy

Warning! At least one email address has been found in the plain text. Use free antispam protector to hide email from spammers.

Deprecated HTML

Great! We haven't found deprecated HTML tags in your HTML.

Speed Tips

Attention! Try to avoid nested tables in HTML.
Too bad, your website is using inline styles.
Too bad, your website has too many CSS files (more than 4).
Too bad, your website has too many JS files (more than 6).
Too bad, your website does not take advantage of gzip.

Mobile

Mobile Optimization

Apple Icon
Meta Viewport Tag
Flash content

Optimization

XML Sitemap

Missing

Your website does not have an XML sitemap - this can be problematic.

A sitemap lists URLs that are available for crawling and can include additional information like your site's latest updates, frequency of changes and importance of the URLs. This allows search engines to crawl the site more intelligently.

Robots.txt

https://doom-software.com/robots.txt

Great, your website has a robots.txt file.

Analytics

Missing

We didn't detect an analytics tool installed on this website.

Web analytics let you measure visitor activity on your website. You should have at least one analytics tool installed, but It can also be good to install a second in order to cross-check the data.

PageSpeed Insights


Device
Categories

Free SEO Testing Tool

Free SEO Testing Tool is a free SEO tool which provides you content analysis of the website.