diff --git a/admin/.jpg b/admin-dev/.jpg similarity index 100% rename from admin/.jpg rename to admin-dev/.jpg diff --git a/admin/ajax-tab.php b/admin-dev/ajax-tab.php similarity index 100% rename from admin/ajax-tab.php rename to admin-dev/ajax-tab.php diff --git a/admin/ajax.php b/admin-dev/ajax.php similarity index 100% rename from admin/ajax.php rename to admin-dev/ajax.php diff --git a/admin/ajax_products_list.php b/admin-dev/ajax_products_list.php similarity index 100% rename from admin/ajax_products_list.php rename to admin-dev/ajax_products_list.php diff --git a/admin/autoupgrade/backup/index.php b/admin-dev/autoupgrade/backup/index.php similarity index 100% rename from admin/autoupgrade/backup/index.php rename to admin-dev/autoupgrade/backup/index.php diff --git a/admin/autoupgrade/index.php b/admin-dev/autoupgrade/index.php similarity index 100% rename from admin/autoupgrade/index.php rename to admin-dev/autoupgrade/index.php diff --git a/admin/backup.php b/admin-dev/backup.php similarity index 100% rename from admin/backup.php rename to admin-dev/backup.php diff --git a/admin/backups/.htaccess b/admin-dev/backups/.htaccess similarity index 100% rename from admin/backups/.htaccess rename to admin-dev/backups/.htaccess diff --git a/admin/backups/index.php b/admin-dev/backups/index.php similarity index 100% rename from admin/backups/index.php rename to admin-dev/backups/index.php diff --git a/admin/cron_currency_rates.php b/admin-dev/cron_currency_rates.php similarity index 100% rename from admin/cron_currency_rates.php rename to admin-dev/cron_currency_rates.php diff --git a/admin/displayImage.php b/admin-dev/displayImage.php similarity index 100% rename from admin/displayImage.php rename to admin-dev/displayImage.php diff --git a/admin/drawer.php b/admin-dev/drawer.php similarity index 100% rename from admin/drawer.php rename to admin-dev/drawer.php diff --git a/admin/export/.htaccess b/admin-dev/export/.htaccess similarity index 100% rename from admin/export/.htaccess rename to admin-dev/export/.htaccess diff --git a/admin/export/index.php b/admin-dev/export/index.php similarity index 100% rename from admin/export/index.php rename to admin-dev/export/index.php diff --git a/admin/filemanager/LICENSE b/admin-dev/filemanager/LICENSE similarity index 100% rename from admin/filemanager/LICENSE rename to admin-dev/filemanager/LICENSE diff --git a/admin/filemanager/ajax_calls.php b/admin-dev/filemanager/ajax_calls.php similarity index 100% rename from admin/filemanager/ajax_calls.php rename to admin-dev/filemanager/ajax_calls.php diff --git a/admin/filemanager/config/config.php b/admin-dev/filemanager/config/config.php similarity index 100% rename from admin/filemanager/config/config.php rename to admin-dev/filemanager/config/config.php diff --git a/admin/filemanager/config/index.php b/admin-dev/filemanager/config/index.php similarity index 100% rename from admin/filemanager/config/index.php rename to admin-dev/filemanager/config/index.php diff --git a/admin/filemanager/css/bootstrap-lightbox.min.css b/admin-dev/filemanager/css/bootstrap-lightbox.min.css similarity index 100% rename from admin/filemanager/css/bootstrap-lightbox.min.css rename to admin-dev/filemanager/css/bootstrap-lightbox.min.css diff --git a/admin/filemanager/css/bootstrap-modal.min.css b/admin-dev/filemanager/css/bootstrap-modal.min.css similarity index 100% rename from admin/filemanager/css/bootstrap-modal.min.css rename to admin-dev/filemanager/css/bootstrap-modal.min.css diff --git a/admin/filemanager/css/bootstrap-responsive.min.css b/admin-dev/filemanager/css/bootstrap-responsive.min.css similarity index 100% rename from admin/filemanager/css/bootstrap-responsive.min.css rename to admin-dev/filemanager/css/bootstrap-responsive.min.css diff --git a/admin/filemanager/css/bootstrap.min.css b/admin-dev/filemanager/css/bootstrap.min.css similarity index 100% rename from admin/filemanager/css/bootstrap.min.css rename to admin-dev/filemanager/css/bootstrap.min.css diff --git a/admin/filemanager/css/dropzone.css b/admin-dev/filemanager/css/dropzone.css similarity index 100% rename from admin/filemanager/css/dropzone.css rename to admin-dev/filemanager/css/dropzone.css diff --git a/admin/filemanager/css/dropzone.min.css b/admin-dev/filemanager/css/dropzone.min.css similarity index 100% rename from admin/filemanager/css/dropzone.min.css rename to admin-dev/filemanager/css/dropzone.min.css diff --git a/admin/filemanager/css/index.php b/admin-dev/filemanager/css/index.php similarity index 100% rename from admin/filemanager/css/index.php rename to admin-dev/filemanager/css/index.php diff --git a/admin/filemanager/css/jquery.contextMenu.min.css b/admin-dev/filemanager/css/jquery.contextMenu.min.css similarity index 100% rename from admin/filemanager/css/jquery.contextMenu.min.css rename to admin-dev/filemanager/css/jquery.contextMenu.min.css diff --git a/admin/filemanager/css/style.css b/admin-dev/filemanager/css/style.css similarity index 100% rename from admin/filemanager/css/style.css rename to admin-dev/filemanager/css/style.css diff --git a/admin/filemanager/css/style.less b/admin-dev/filemanager/css/style.less similarity index 100% rename from admin/filemanager/css/style.less rename to admin-dev/filemanager/css/style.less diff --git a/admin/filemanager/dialog.php b/admin-dev/filemanager/dialog.php similarity index 100% rename from admin/filemanager/dialog.php rename to admin-dev/filemanager/dialog.php diff --git a/admin/filemanager/execute.php b/admin-dev/filemanager/execute.php similarity index 100% rename from admin/filemanager/execute.php rename to admin-dev/filemanager/execute.php diff --git a/admin/filemanager/force_download.php b/admin-dev/filemanager/force_download.php similarity index 100% rename from admin/filemanager/force_download.php rename to admin-dev/filemanager/force_download.php diff --git a/admin/filemanager/img/cut.png b/admin-dev/filemanager/img/cut.png similarity index 100% rename from admin/filemanager/img/cut.png rename to admin-dev/filemanager/img/cut.png diff --git a/admin/filemanager/img/date.png b/admin-dev/filemanager/img/date.png similarity index 100% rename from admin/filemanager/img/date.png rename to admin-dev/filemanager/img/date.png diff --git a/admin/filemanager/img/dimension.png b/admin-dev/filemanager/img/dimension.png similarity index 100% rename from admin/filemanager/img/dimension.png rename to admin-dev/filemanager/img/dimension.png diff --git a/admin/filemanager/img/door.png b/admin-dev/filemanager/img/door.png similarity index 100% rename from admin/filemanager/img/door.png rename to admin-dev/filemanager/img/door.png diff --git a/admin/filemanager/img/down.png b/admin-dev/filemanager/img/down.png similarity index 100% rename from admin/filemanager/img/down.png rename to admin-dev/filemanager/img/down.png diff --git a/admin/filemanager/img/download.png b/admin-dev/filemanager/img/download.png similarity index 100% rename from admin/filemanager/img/download.png rename to admin-dev/filemanager/img/download.png diff --git a/admin/filemanager/img/duplicate.png b/admin-dev/filemanager/img/duplicate.png similarity index 100% rename from admin/filemanager/img/duplicate.png rename to admin-dev/filemanager/img/duplicate.png diff --git a/admin/filemanager/img/edit_img.png b/admin-dev/filemanager/img/edit_img.png similarity index 100% rename from admin/filemanager/img/edit_img.png rename to admin-dev/filemanager/img/edit_img.png diff --git a/admin/filemanager/img/glyphicons-halflings-white.png b/admin-dev/filemanager/img/glyphicons-halflings-white.png similarity index 100% rename from admin/filemanager/img/glyphicons-halflings-white.png rename to admin-dev/filemanager/img/glyphicons-halflings-white.png diff --git a/admin/filemanager/img/glyphicons-halflings.png b/admin-dev/filemanager/img/glyphicons-halflings.png similarity index 100% rename from admin/filemanager/img/glyphicons-halflings.png rename to admin-dev/filemanager/img/glyphicons-halflings.png diff --git a/admin/filemanager/img/ico/ac3.jpg b/admin-dev/filemanager/img/ico/ac3.jpg similarity index 100% rename from admin/filemanager/img/ico/ac3.jpg rename to admin-dev/filemanager/img/ico/ac3.jpg diff --git a/admin/filemanager/img/ico/accdb.jpg b/admin-dev/filemanager/img/ico/accdb.jpg similarity index 100% rename from admin/filemanager/img/ico/accdb.jpg rename to admin-dev/filemanager/img/ico/accdb.jpg diff --git a/admin/filemanager/img/ico/ade.jpg b/admin-dev/filemanager/img/ico/ade.jpg similarity index 100% rename from admin/filemanager/img/ico/ade.jpg rename to admin-dev/filemanager/img/ico/ade.jpg diff --git a/admin/filemanager/img/ico/adp.jpg b/admin-dev/filemanager/img/ico/adp.jpg similarity index 100% rename from admin/filemanager/img/ico/adp.jpg rename to admin-dev/filemanager/img/ico/adp.jpg diff --git a/admin/filemanager/img/ico/ai.jpg b/admin-dev/filemanager/img/ico/ai.jpg similarity index 100% rename from admin/filemanager/img/ico/ai.jpg rename to admin-dev/filemanager/img/ico/ai.jpg diff --git a/admin/filemanager/img/ico/aiff.jpg b/admin-dev/filemanager/img/ico/aiff.jpg similarity index 100% rename from admin/filemanager/img/ico/aiff.jpg rename to admin-dev/filemanager/img/ico/aiff.jpg diff --git a/admin/filemanager/img/ico/avi.jpg b/admin-dev/filemanager/img/ico/avi.jpg similarity index 100% rename from admin/filemanager/img/ico/avi.jpg rename to admin-dev/filemanager/img/ico/avi.jpg diff --git a/admin/filemanager/img/ico/bmp.jpg b/admin-dev/filemanager/img/ico/bmp.jpg similarity index 100% rename from admin/filemanager/img/ico/bmp.jpg rename to admin-dev/filemanager/img/ico/bmp.jpg diff --git a/admin/filemanager/img/ico/css.jpg b/admin-dev/filemanager/img/ico/css.jpg similarity index 100% rename from admin/filemanager/img/ico/css.jpg rename to admin-dev/filemanager/img/ico/css.jpg diff --git a/admin/filemanager/img/ico/csv.jpg b/admin-dev/filemanager/img/ico/csv.jpg similarity index 100% rename from admin/filemanager/img/ico/csv.jpg rename to admin-dev/filemanager/img/ico/csv.jpg diff --git a/admin/filemanager/img/ico/default.jpg b/admin-dev/filemanager/img/ico/default.jpg similarity index 100% rename from admin/filemanager/img/ico/default.jpg rename to admin-dev/filemanager/img/ico/default.jpg diff --git a/admin/filemanager/img/ico/dmg.jpg b/admin-dev/filemanager/img/ico/dmg.jpg similarity index 100% rename from admin/filemanager/img/ico/dmg.jpg rename to admin-dev/filemanager/img/ico/dmg.jpg diff --git a/admin/filemanager/img/ico/doc.jpg b/admin-dev/filemanager/img/ico/doc.jpg similarity index 100% rename from admin/filemanager/img/ico/doc.jpg rename to admin-dev/filemanager/img/ico/doc.jpg diff --git a/admin/filemanager/img/ico/docx.jpg b/admin-dev/filemanager/img/ico/docx.jpg similarity index 100% rename from admin/filemanager/img/ico/docx.jpg rename to admin-dev/filemanager/img/ico/docx.jpg diff --git a/admin/filemanager/img/ico/favicon.ico b/admin-dev/filemanager/img/ico/favicon.ico similarity index 100% rename from admin/filemanager/img/ico/favicon.ico rename to admin-dev/filemanager/img/ico/favicon.ico diff --git a/admin/filemanager/img/ico/fla.jpg b/admin-dev/filemanager/img/ico/fla.jpg similarity index 100% rename from admin/filemanager/img/ico/fla.jpg rename to admin-dev/filemanager/img/ico/fla.jpg diff --git a/admin/filemanager/img/ico/flv.jpg b/admin-dev/filemanager/img/ico/flv.jpg similarity index 100% rename from admin/filemanager/img/ico/flv.jpg rename to admin-dev/filemanager/img/ico/flv.jpg diff --git a/admin/filemanager/img/ico/folder.jpg b/admin-dev/filemanager/img/ico/folder.jpg similarity index 100% rename from admin/filemanager/img/ico/folder.jpg rename to admin-dev/filemanager/img/ico/folder.jpg diff --git a/admin/filemanager/img/ico/folder.png b/admin-dev/filemanager/img/ico/folder.png similarity index 100% rename from admin/filemanager/img/ico/folder.png rename to admin-dev/filemanager/img/ico/folder.png diff --git a/admin/filemanager/img/ico/folder_back.jpg b/admin-dev/filemanager/img/ico/folder_back.jpg similarity index 100% rename from admin/filemanager/img/ico/folder_back.jpg rename to admin-dev/filemanager/img/ico/folder_back.jpg diff --git a/admin/filemanager/img/ico/folder_back.png b/admin-dev/filemanager/img/ico/folder_back.png similarity index 100% rename from admin/filemanager/img/ico/folder_back.png rename to admin-dev/filemanager/img/ico/folder_back.png diff --git a/admin/filemanager/img/ico/gif.jpg b/admin-dev/filemanager/img/ico/gif.jpg similarity index 100% rename from admin/filemanager/img/ico/gif.jpg rename to admin-dev/filemanager/img/ico/gif.jpg diff --git a/admin/filemanager/img/ico/gz.jpg b/admin-dev/filemanager/img/ico/gz.jpg similarity index 100% rename from admin/filemanager/img/ico/gz.jpg rename to admin-dev/filemanager/img/ico/gz.jpg diff --git a/admin/filemanager/img/ico/html.jpg b/admin-dev/filemanager/img/ico/html.jpg similarity index 100% rename from admin/filemanager/img/ico/html.jpg rename to admin-dev/filemanager/img/ico/html.jpg diff --git a/admin/filemanager/img/ico/index.php b/admin-dev/filemanager/img/ico/index.php similarity index 100% rename from admin/filemanager/img/ico/index.php rename to admin-dev/filemanager/img/ico/index.php diff --git a/admin/filemanager/img/ico/iso.jpg b/admin-dev/filemanager/img/ico/iso.jpg similarity index 100% rename from admin/filemanager/img/ico/iso.jpg rename to admin-dev/filemanager/img/ico/iso.jpg diff --git a/admin/filemanager/img/ico/jpeg.jpg b/admin-dev/filemanager/img/ico/jpeg.jpg similarity index 100% rename from admin/filemanager/img/ico/jpeg.jpg rename to admin-dev/filemanager/img/ico/jpeg.jpg diff --git a/admin/filemanager/img/ico/jpg.jpg b/admin-dev/filemanager/img/ico/jpg.jpg similarity index 100% rename from admin/filemanager/img/ico/jpg.jpg rename to admin-dev/filemanager/img/ico/jpg.jpg diff --git a/admin/filemanager/img/ico/log.jpg b/admin-dev/filemanager/img/ico/log.jpg similarity index 100% rename from admin/filemanager/img/ico/log.jpg rename to admin-dev/filemanager/img/ico/log.jpg diff --git a/admin/filemanager/img/ico/m4a.jpg b/admin-dev/filemanager/img/ico/m4a.jpg similarity index 100% rename from admin/filemanager/img/ico/m4a.jpg rename to admin-dev/filemanager/img/ico/m4a.jpg diff --git a/admin/filemanager/img/ico/mdb.jpg b/admin-dev/filemanager/img/ico/mdb.jpg similarity index 100% rename from admin/filemanager/img/ico/mdb.jpg rename to admin-dev/filemanager/img/ico/mdb.jpg diff --git a/admin/filemanager/img/ico/mid.jpg b/admin-dev/filemanager/img/ico/mid.jpg similarity index 100% rename from admin/filemanager/img/ico/mid.jpg rename to admin-dev/filemanager/img/ico/mid.jpg diff --git a/admin/filemanager/img/ico/mov.jpg b/admin-dev/filemanager/img/ico/mov.jpg similarity index 100% rename from admin/filemanager/img/ico/mov.jpg rename to admin-dev/filemanager/img/ico/mov.jpg diff --git a/admin/filemanager/img/ico/mp3.jpg b/admin-dev/filemanager/img/ico/mp3.jpg similarity index 100% rename from admin/filemanager/img/ico/mp3.jpg rename to admin-dev/filemanager/img/ico/mp3.jpg diff --git a/admin/filemanager/img/ico/mp4.jpg b/admin-dev/filemanager/img/ico/mp4.jpg similarity index 100% rename from admin/filemanager/img/ico/mp4.jpg rename to admin-dev/filemanager/img/ico/mp4.jpg diff --git a/admin/filemanager/img/ico/mpeg.jpg b/admin-dev/filemanager/img/ico/mpeg.jpg similarity index 100% rename from admin/filemanager/img/ico/mpeg.jpg rename to admin-dev/filemanager/img/ico/mpeg.jpg diff --git a/admin/filemanager/img/ico/mpg.jpg b/admin-dev/filemanager/img/ico/mpg.jpg similarity index 100% rename from admin/filemanager/img/ico/mpg.jpg rename to admin-dev/filemanager/img/ico/mpg.jpg diff --git a/admin/filemanager/img/ico/odb.jpg b/admin-dev/filemanager/img/ico/odb.jpg similarity index 100% rename from admin/filemanager/img/ico/odb.jpg rename to admin-dev/filemanager/img/ico/odb.jpg diff --git a/admin/filemanager/img/ico/odf.jpg b/admin-dev/filemanager/img/ico/odf.jpg similarity index 100% rename from admin/filemanager/img/ico/odf.jpg rename to admin-dev/filemanager/img/ico/odf.jpg diff --git a/admin/filemanager/img/ico/odg.jpg b/admin-dev/filemanager/img/ico/odg.jpg similarity index 100% rename from admin/filemanager/img/ico/odg.jpg rename to admin-dev/filemanager/img/ico/odg.jpg diff --git a/admin/filemanager/img/ico/odp.jpg b/admin-dev/filemanager/img/ico/odp.jpg similarity index 100% rename from admin/filemanager/img/ico/odp.jpg rename to admin-dev/filemanager/img/ico/odp.jpg diff --git a/admin/filemanager/img/ico/ods.jpg b/admin-dev/filemanager/img/ico/ods.jpg similarity index 100% rename from admin/filemanager/img/ico/ods.jpg rename to admin-dev/filemanager/img/ico/ods.jpg diff --git a/admin/filemanager/img/ico/odt.jpg b/admin-dev/filemanager/img/ico/odt.jpg similarity index 100% rename from admin/filemanager/img/ico/odt.jpg rename to admin-dev/filemanager/img/ico/odt.jpg diff --git a/admin/filemanager/img/ico/ogg.jpg b/admin-dev/filemanager/img/ico/ogg.jpg similarity index 100% rename from admin/filemanager/img/ico/ogg.jpg rename to admin-dev/filemanager/img/ico/ogg.jpg diff --git a/admin/filemanager/img/ico/otg.jpg b/admin-dev/filemanager/img/ico/otg.jpg similarity index 100% rename from admin/filemanager/img/ico/otg.jpg rename to admin-dev/filemanager/img/ico/otg.jpg diff --git a/admin/filemanager/img/ico/otp.jpg b/admin-dev/filemanager/img/ico/otp.jpg similarity index 100% rename from admin/filemanager/img/ico/otp.jpg rename to admin-dev/filemanager/img/ico/otp.jpg diff --git a/admin/filemanager/img/ico/ots.jpg b/admin-dev/filemanager/img/ico/ots.jpg similarity index 100% rename from admin/filemanager/img/ico/ots.jpg rename to admin-dev/filemanager/img/ico/ots.jpg diff --git a/admin/filemanager/img/ico/ott.jpg b/admin-dev/filemanager/img/ico/ott.jpg similarity index 100% rename from admin/filemanager/img/ico/ott.jpg rename to admin-dev/filemanager/img/ico/ott.jpg diff --git a/admin/filemanager/img/ico/pdf.jpg b/admin-dev/filemanager/img/ico/pdf.jpg similarity index 100% rename from admin/filemanager/img/ico/pdf.jpg rename to admin-dev/filemanager/img/ico/pdf.jpg diff --git a/admin/filemanager/img/ico/png.jpg b/admin-dev/filemanager/img/ico/png.jpg similarity index 100% rename from admin/filemanager/img/ico/png.jpg rename to admin-dev/filemanager/img/ico/png.jpg diff --git a/admin/filemanager/img/ico/ppt.jpg b/admin-dev/filemanager/img/ico/ppt.jpg similarity index 100% rename from admin/filemanager/img/ico/ppt.jpg rename to admin-dev/filemanager/img/ico/ppt.jpg diff --git a/admin/filemanager/img/ico/pptx.jpg b/admin-dev/filemanager/img/ico/pptx.jpg similarity index 100% rename from admin/filemanager/img/ico/pptx.jpg rename to admin-dev/filemanager/img/ico/pptx.jpg diff --git a/admin/filemanager/img/ico/psd.jpg b/admin-dev/filemanager/img/ico/psd.jpg similarity index 100% rename from admin/filemanager/img/ico/psd.jpg rename to admin-dev/filemanager/img/ico/psd.jpg diff --git a/admin/filemanager/img/ico/rar.jpg b/admin-dev/filemanager/img/ico/rar.jpg similarity index 100% rename from admin/filemanager/img/ico/rar.jpg rename to admin-dev/filemanager/img/ico/rar.jpg diff --git a/admin/filemanager/img/ico/rtf.jpg b/admin-dev/filemanager/img/ico/rtf.jpg similarity index 100% rename from admin/filemanager/img/ico/rtf.jpg rename to admin-dev/filemanager/img/ico/rtf.jpg diff --git a/admin/filemanager/img/ico/sql.jpg b/admin-dev/filemanager/img/ico/sql.jpg similarity index 100% rename from admin/filemanager/img/ico/sql.jpg rename to admin-dev/filemanager/img/ico/sql.jpg diff --git a/admin/filemanager/img/ico/svg.jpg b/admin-dev/filemanager/img/ico/svg.jpg similarity index 100% rename from admin/filemanager/img/ico/svg.jpg rename to admin-dev/filemanager/img/ico/svg.jpg diff --git a/admin/filemanager/img/ico/tar.jpg b/admin-dev/filemanager/img/ico/tar.jpg similarity index 100% rename from admin/filemanager/img/ico/tar.jpg rename to admin-dev/filemanager/img/ico/tar.jpg diff --git a/admin/filemanager/img/ico/tiff.jpg b/admin-dev/filemanager/img/ico/tiff.jpg similarity index 100% rename from admin/filemanager/img/ico/tiff.jpg rename to admin-dev/filemanager/img/ico/tiff.jpg diff --git a/admin/filemanager/img/ico/txt.jpg b/admin-dev/filemanager/img/ico/txt.jpg similarity index 100% rename from admin/filemanager/img/ico/txt.jpg rename to admin-dev/filemanager/img/ico/txt.jpg diff --git a/admin/filemanager/img/ico/wav.jpg b/admin-dev/filemanager/img/ico/wav.jpg similarity index 100% rename from admin/filemanager/img/ico/wav.jpg rename to admin-dev/filemanager/img/ico/wav.jpg diff --git a/admin/filemanager/img/ico/webm.jpg b/admin-dev/filemanager/img/ico/webm.jpg similarity index 100% rename from admin/filemanager/img/ico/webm.jpg rename to admin-dev/filemanager/img/ico/webm.jpg diff --git a/admin/filemanager/img/ico/wma.jpg b/admin-dev/filemanager/img/ico/wma.jpg similarity index 100% rename from admin/filemanager/img/ico/wma.jpg rename to admin-dev/filemanager/img/ico/wma.jpg diff --git a/admin/filemanager/img/ico/xhtml.jpg b/admin-dev/filemanager/img/ico/xhtml.jpg similarity index 100% rename from admin/filemanager/img/ico/xhtml.jpg rename to admin-dev/filemanager/img/ico/xhtml.jpg diff --git a/admin/filemanager/img/ico/xls.jpg b/admin-dev/filemanager/img/ico/xls.jpg similarity index 100% rename from admin/filemanager/img/ico/xls.jpg rename to admin-dev/filemanager/img/ico/xls.jpg diff --git a/admin/filemanager/img/ico/xlsx.jpg b/admin-dev/filemanager/img/ico/xlsx.jpg similarity index 100% rename from admin/filemanager/img/ico/xlsx.jpg rename to admin-dev/filemanager/img/ico/xlsx.jpg diff --git a/admin/filemanager/img/ico/xml.jpg b/admin-dev/filemanager/img/ico/xml.jpg similarity index 100% rename from admin/filemanager/img/ico/xml.jpg rename to admin-dev/filemanager/img/ico/xml.jpg diff --git a/admin/filemanager/img/ico/zip.jpg b/admin-dev/filemanager/img/ico/zip.jpg similarity index 100% rename from admin/filemanager/img/ico/zip.jpg rename to admin-dev/filemanager/img/ico/zip.jpg diff --git a/admin/filemanager/img/ico_dark/ac3.jpg b/admin-dev/filemanager/img/ico_dark/ac3.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/ac3.jpg rename to admin-dev/filemanager/img/ico_dark/ac3.jpg diff --git a/admin/filemanager/img/ico_dark/accdb.jpg b/admin-dev/filemanager/img/ico_dark/accdb.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/accdb.jpg rename to admin-dev/filemanager/img/ico_dark/accdb.jpg diff --git a/admin/filemanager/img/ico_dark/ade.jpg b/admin-dev/filemanager/img/ico_dark/ade.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/ade.jpg rename to admin-dev/filemanager/img/ico_dark/ade.jpg diff --git a/admin/filemanager/img/ico_dark/adp.jpg b/admin-dev/filemanager/img/ico_dark/adp.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/adp.jpg rename to admin-dev/filemanager/img/ico_dark/adp.jpg diff --git a/admin/filemanager/img/ico_dark/ai.jpg b/admin-dev/filemanager/img/ico_dark/ai.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/ai.jpg rename to admin-dev/filemanager/img/ico_dark/ai.jpg diff --git a/admin/filemanager/img/ico_dark/aiff.jpg b/admin-dev/filemanager/img/ico_dark/aiff.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/aiff.jpg rename to admin-dev/filemanager/img/ico_dark/aiff.jpg diff --git a/admin/filemanager/img/ico_dark/avi.jpg b/admin-dev/filemanager/img/ico_dark/avi.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/avi.jpg rename to admin-dev/filemanager/img/ico_dark/avi.jpg diff --git a/admin/filemanager/img/ico_dark/bmp.jpg b/admin-dev/filemanager/img/ico_dark/bmp.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/bmp.jpg rename to admin-dev/filemanager/img/ico_dark/bmp.jpg diff --git a/admin/filemanager/img/ico_dark/css.jpg b/admin-dev/filemanager/img/ico_dark/css.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/css.jpg rename to admin-dev/filemanager/img/ico_dark/css.jpg diff --git a/admin/filemanager/img/ico_dark/csv.jpg b/admin-dev/filemanager/img/ico_dark/csv.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/csv.jpg rename to admin-dev/filemanager/img/ico_dark/csv.jpg diff --git a/admin/filemanager/img/ico_dark/default.jpg b/admin-dev/filemanager/img/ico_dark/default.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/default.jpg rename to admin-dev/filemanager/img/ico_dark/default.jpg diff --git a/admin/filemanager/img/ico_dark/dmg.jpg b/admin-dev/filemanager/img/ico_dark/dmg.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/dmg.jpg rename to admin-dev/filemanager/img/ico_dark/dmg.jpg diff --git a/admin/filemanager/img/ico_dark/doc.jpg b/admin-dev/filemanager/img/ico_dark/doc.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/doc.jpg rename to admin-dev/filemanager/img/ico_dark/doc.jpg diff --git a/admin/filemanager/img/ico_dark/docx.jpg b/admin-dev/filemanager/img/ico_dark/docx.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/docx.jpg rename to admin-dev/filemanager/img/ico_dark/docx.jpg diff --git a/admin/filemanager/img/ico_dark/favicon.ico b/admin-dev/filemanager/img/ico_dark/favicon.ico similarity index 100% rename from admin/filemanager/img/ico_dark/favicon.ico rename to admin-dev/filemanager/img/ico_dark/favicon.ico diff --git a/admin/filemanager/img/ico_dark/fla.jpg b/admin-dev/filemanager/img/ico_dark/fla.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/fla.jpg rename to admin-dev/filemanager/img/ico_dark/fla.jpg diff --git a/admin/filemanager/img/ico_dark/flv.jpg b/admin-dev/filemanager/img/ico_dark/flv.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/flv.jpg rename to admin-dev/filemanager/img/ico_dark/flv.jpg diff --git a/admin/filemanager/img/ico_dark/folder.jpg b/admin-dev/filemanager/img/ico_dark/folder.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/folder.jpg rename to admin-dev/filemanager/img/ico_dark/folder.jpg diff --git a/admin/filemanager/img/ico_dark/folder.png b/admin-dev/filemanager/img/ico_dark/folder.png similarity index 100% rename from admin/filemanager/img/ico_dark/folder.png rename to admin-dev/filemanager/img/ico_dark/folder.png diff --git a/admin/filemanager/img/ico_dark/folder_back.jpg b/admin-dev/filemanager/img/ico_dark/folder_back.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/folder_back.jpg rename to admin-dev/filemanager/img/ico_dark/folder_back.jpg diff --git a/admin/filemanager/img/ico_dark/folder_back.png b/admin-dev/filemanager/img/ico_dark/folder_back.png similarity index 100% rename from admin/filemanager/img/ico_dark/folder_back.png rename to admin-dev/filemanager/img/ico_dark/folder_back.png diff --git a/admin/filemanager/img/ico_dark/gif.jpg b/admin-dev/filemanager/img/ico_dark/gif.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/gif.jpg rename to admin-dev/filemanager/img/ico_dark/gif.jpg diff --git a/admin/filemanager/img/ico_dark/gz.jpg b/admin-dev/filemanager/img/ico_dark/gz.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/gz.jpg rename to admin-dev/filemanager/img/ico_dark/gz.jpg diff --git a/admin/filemanager/img/ico_dark/html.jpg b/admin-dev/filemanager/img/ico_dark/html.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/html.jpg rename to admin-dev/filemanager/img/ico_dark/html.jpg diff --git a/admin/filemanager/img/ico_dark/index.php b/admin-dev/filemanager/img/ico_dark/index.php similarity index 100% rename from admin/filemanager/img/ico_dark/index.php rename to admin-dev/filemanager/img/ico_dark/index.php diff --git a/admin/filemanager/img/ico_dark/iso.jpg b/admin-dev/filemanager/img/ico_dark/iso.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/iso.jpg rename to admin-dev/filemanager/img/ico_dark/iso.jpg diff --git a/admin/filemanager/img/ico_dark/jpeg.jpg b/admin-dev/filemanager/img/ico_dark/jpeg.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/jpeg.jpg rename to admin-dev/filemanager/img/ico_dark/jpeg.jpg diff --git a/admin/filemanager/img/ico_dark/jpg.jpg b/admin-dev/filemanager/img/ico_dark/jpg.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/jpg.jpg rename to admin-dev/filemanager/img/ico_dark/jpg.jpg diff --git a/admin/filemanager/img/ico_dark/log.jpg b/admin-dev/filemanager/img/ico_dark/log.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/log.jpg rename to admin-dev/filemanager/img/ico_dark/log.jpg diff --git a/admin/filemanager/img/ico_dark/m4a.jpg b/admin-dev/filemanager/img/ico_dark/m4a.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/m4a.jpg rename to admin-dev/filemanager/img/ico_dark/m4a.jpg diff --git a/admin/filemanager/img/ico_dark/mdb.jpg b/admin-dev/filemanager/img/ico_dark/mdb.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/mdb.jpg rename to admin-dev/filemanager/img/ico_dark/mdb.jpg diff --git a/admin/filemanager/img/ico_dark/mid.jpg b/admin-dev/filemanager/img/ico_dark/mid.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/mid.jpg rename to admin-dev/filemanager/img/ico_dark/mid.jpg diff --git a/admin/filemanager/img/ico_dark/mov.jpg b/admin-dev/filemanager/img/ico_dark/mov.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/mov.jpg rename to admin-dev/filemanager/img/ico_dark/mov.jpg diff --git a/admin/filemanager/img/ico_dark/mp3.jpg b/admin-dev/filemanager/img/ico_dark/mp3.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/mp3.jpg rename to admin-dev/filemanager/img/ico_dark/mp3.jpg diff --git a/admin/filemanager/img/ico_dark/mp4.jpg b/admin-dev/filemanager/img/ico_dark/mp4.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/mp4.jpg rename to admin-dev/filemanager/img/ico_dark/mp4.jpg diff --git a/admin/filemanager/img/ico_dark/mpeg.jpg b/admin-dev/filemanager/img/ico_dark/mpeg.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/mpeg.jpg rename to admin-dev/filemanager/img/ico_dark/mpeg.jpg diff --git a/admin/filemanager/img/ico_dark/mpg.jpg b/admin-dev/filemanager/img/ico_dark/mpg.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/mpg.jpg rename to admin-dev/filemanager/img/ico_dark/mpg.jpg diff --git a/admin/filemanager/img/ico_dark/odb.jpg b/admin-dev/filemanager/img/ico_dark/odb.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/odb.jpg rename to admin-dev/filemanager/img/ico_dark/odb.jpg diff --git a/admin/filemanager/img/ico_dark/odf.jpg b/admin-dev/filemanager/img/ico_dark/odf.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/odf.jpg rename to admin-dev/filemanager/img/ico_dark/odf.jpg diff --git a/admin/filemanager/img/ico_dark/odg.jpg b/admin-dev/filemanager/img/ico_dark/odg.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/odg.jpg rename to admin-dev/filemanager/img/ico_dark/odg.jpg diff --git a/admin/filemanager/img/ico_dark/odp.jpg b/admin-dev/filemanager/img/ico_dark/odp.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/odp.jpg rename to admin-dev/filemanager/img/ico_dark/odp.jpg diff --git a/admin/filemanager/img/ico_dark/ods.jpg b/admin-dev/filemanager/img/ico_dark/ods.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/ods.jpg rename to admin-dev/filemanager/img/ico_dark/ods.jpg diff --git a/admin/filemanager/img/ico_dark/odt.jpg b/admin-dev/filemanager/img/ico_dark/odt.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/odt.jpg rename to admin-dev/filemanager/img/ico_dark/odt.jpg diff --git a/admin/filemanager/img/ico_dark/ogg.jpg b/admin-dev/filemanager/img/ico_dark/ogg.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/ogg.jpg rename to admin-dev/filemanager/img/ico_dark/ogg.jpg diff --git a/admin/filemanager/img/ico_dark/otg.jpg b/admin-dev/filemanager/img/ico_dark/otg.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/otg.jpg rename to admin-dev/filemanager/img/ico_dark/otg.jpg diff --git a/admin/filemanager/img/ico_dark/otp.jpg b/admin-dev/filemanager/img/ico_dark/otp.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/otp.jpg rename to admin-dev/filemanager/img/ico_dark/otp.jpg diff --git a/admin/filemanager/img/ico_dark/ots.jpg b/admin-dev/filemanager/img/ico_dark/ots.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/ots.jpg rename to admin-dev/filemanager/img/ico_dark/ots.jpg diff --git a/admin/filemanager/img/ico_dark/ott.jpg b/admin-dev/filemanager/img/ico_dark/ott.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/ott.jpg rename to admin-dev/filemanager/img/ico_dark/ott.jpg diff --git a/admin/filemanager/img/ico_dark/pdf.jpg b/admin-dev/filemanager/img/ico_dark/pdf.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/pdf.jpg rename to admin-dev/filemanager/img/ico_dark/pdf.jpg diff --git a/admin/filemanager/img/ico_dark/png.jpg b/admin-dev/filemanager/img/ico_dark/png.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/png.jpg rename to admin-dev/filemanager/img/ico_dark/png.jpg diff --git a/admin/filemanager/img/ico_dark/ppt.jpg b/admin-dev/filemanager/img/ico_dark/ppt.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/ppt.jpg rename to admin-dev/filemanager/img/ico_dark/ppt.jpg diff --git a/admin/filemanager/img/ico_dark/pptx.jpg b/admin-dev/filemanager/img/ico_dark/pptx.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/pptx.jpg rename to admin-dev/filemanager/img/ico_dark/pptx.jpg diff --git a/admin/filemanager/img/ico_dark/psd.jpg b/admin-dev/filemanager/img/ico_dark/psd.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/psd.jpg rename to admin-dev/filemanager/img/ico_dark/psd.jpg diff --git a/admin/filemanager/img/ico_dark/rar.jpg b/admin-dev/filemanager/img/ico_dark/rar.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/rar.jpg rename to admin-dev/filemanager/img/ico_dark/rar.jpg diff --git a/admin/filemanager/img/ico_dark/rtf.jpg b/admin-dev/filemanager/img/ico_dark/rtf.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/rtf.jpg rename to admin-dev/filemanager/img/ico_dark/rtf.jpg diff --git a/admin/filemanager/img/ico_dark/sql.jpg b/admin-dev/filemanager/img/ico_dark/sql.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/sql.jpg rename to admin-dev/filemanager/img/ico_dark/sql.jpg diff --git a/admin/filemanager/img/ico_dark/svg.jpg b/admin-dev/filemanager/img/ico_dark/svg.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/svg.jpg rename to admin-dev/filemanager/img/ico_dark/svg.jpg diff --git a/admin/filemanager/img/ico_dark/tar.jpg b/admin-dev/filemanager/img/ico_dark/tar.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/tar.jpg rename to admin-dev/filemanager/img/ico_dark/tar.jpg diff --git a/admin/filemanager/img/ico_dark/tiff.jpg b/admin-dev/filemanager/img/ico_dark/tiff.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/tiff.jpg rename to admin-dev/filemanager/img/ico_dark/tiff.jpg diff --git a/admin/filemanager/img/ico_dark/txt.jpg b/admin-dev/filemanager/img/ico_dark/txt.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/txt.jpg rename to admin-dev/filemanager/img/ico_dark/txt.jpg diff --git a/admin/filemanager/img/ico_dark/wav.jpg b/admin-dev/filemanager/img/ico_dark/wav.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/wav.jpg rename to admin-dev/filemanager/img/ico_dark/wav.jpg diff --git a/admin/filemanager/img/ico_dark/webm.jpg b/admin-dev/filemanager/img/ico_dark/webm.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/webm.jpg rename to admin-dev/filemanager/img/ico_dark/webm.jpg diff --git a/admin/filemanager/img/ico_dark/wma.jpg b/admin-dev/filemanager/img/ico_dark/wma.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/wma.jpg rename to admin-dev/filemanager/img/ico_dark/wma.jpg diff --git a/admin/filemanager/img/ico_dark/xhtml.jpg b/admin-dev/filemanager/img/ico_dark/xhtml.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/xhtml.jpg rename to admin-dev/filemanager/img/ico_dark/xhtml.jpg diff --git a/admin/filemanager/img/ico_dark/xls.jpg b/admin-dev/filemanager/img/ico_dark/xls.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/xls.jpg rename to admin-dev/filemanager/img/ico_dark/xls.jpg diff --git a/admin/filemanager/img/ico_dark/xlsx.jpg b/admin-dev/filemanager/img/ico_dark/xlsx.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/xlsx.jpg rename to admin-dev/filemanager/img/ico_dark/xlsx.jpg diff --git a/admin/filemanager/img/ico_dark/xml.jpg b/admin-dev/filemanager/img/ico_dark/xml.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/xml.jpg rename to admin-dev/filemanager/img/ico_dark/xml.jpg diff --git a/admin/filemanager/img/ico_dark/zip.jpg b/admin-dev/filemanager/img/ico_dark/zip.jpg similarity index 100% rename from admin/filemanager/img/ico_dark/zip.jpg rename to admin-dev/filemanager/img/ico_dark/zip.jpg diff --git a/admin/filemanager/img/index.php b/admin-dev/filemanager/img/index.php similarity index 100% rename from admin/filemanager/img/index.php rename to admin-dev/filemanager/img/index.php diff --git a/admin/filemanager/img/info.png b/admin-dev/filemanager/img/info.png similarity index 100% rename from admin/filemanager/img/info.png rename to admin-dev/filemanager/img/info.png diff --git a/admin/filemanager/img/label.png b/admin-dev/filemanager/img/label.png similarity index 100% rename from admin/filemanager/img/label.png rename to admin-dev/filemanager/img/label.png diff --git a/admin/filemanager/img/loading.gif b/admin-dev/filemanager/img/loading.gif similarity index 100% rename from admin/filemanager/img/loading.gif rename to admin-dev/filemanager/img/loading.gif diff --git a/admin/filemanager/img/logo.png b/admin-dev/filemanager/img/logo.png similarity index 100% rename from admin/filemanager/img/logo.png rename to admin-dev/filemanager/img/logo.png diff --git a/admin/filemanager/img/page_white_add.png b/admin-dev/filemanager/img/page_white_add.png similarity index 100% rename from admin/filemanager/img/page_white_add.png rename to admin-dev/filemanager/img/page_white_add.png diff --git a/admin/filemanager/img/page_white_copy.png b/admin-dev/filemanager/img/page_white_copy.png similarity index 100% rename from admin/filemanager/img/page_white_copy.png rename to admin-dev/filemanager/img/page_white_copy.png diff --git a/admin/filemanager/img/page_white_delete.png b/admin-dev/filemanager/img/page_white_delete.png similarity index 100% rename from admin/filemanager/img/page_white_delete.png rename to admin-dev/filemanager/img/page_white_delete.png diff --git a/admin/filemanager/img/page_white_edit.png b/admin-dev/filemanager/img/page_white_edit.png similarity index 100% rename from admin/filemanager/img/page_white_edit.png rename to admin-dev/filemanager/img/page_white_edit.png diff --git a/admin/filemanager/img/page_white_paste.png b/admin-dev/filemanager/img/page_white_paste.png similarity index 100% rename from admin/filemanager/img/page_white_paste.png rename to admin-dev/filemanager/img/page_white_paste.png diff --git a/admin/filemanager/img/preview.png b/admin-dev/filemanager/img/preview.png similarity index 100% rename from admin/filemanager/img/preview.png rename to admin-dev/filemanager/img/preview.png diff --git a/admin/filemanager/img/processing.gif b/admin-dev/filemanager/img/processing.gif similarity index 100% rename from admin/filemanager/img/processing.gif rename to admin-dev/filemanager/img/processing.gif diff --git a/admin/filemanager/img/rename.png b/admin-dev/filemanager/img/rename.png similarity index 100% rename from admin/filemanager/img/rename.png rename to admin-dev/filemanager/img/rename.png diff --git a/admin/filemanager/img/size.png b/admin-dev/filemanager/img/size.png similarity index 100% rename from admin/filemanager/img/size.png rename to admin-dev/filemanager/img/size.png diff --git a/admin/filemanager/img/sort.png b/admin-dev/filemanager/img/sort.png similarity index 100% rename from admin/filemanager/img/sort.png rename to admin-dev/filemanager/img/sort.png diff --git a/admin/filemanager/img/spritemap.png b/admin-dev/filemanager/img/spritemap.png similarity index 100% rename from admin/filemanager/img/spritemap.png rename to admin-dev/filemanager/img/spritemap.png diff --git a/admin/filemanager/img/spritemap@2x.png b/admin-dev/filemanager/img/spritemap@2x.png similarity index 100% rename from admin/filemanager/img/spritemap@2x.png rename to admin-dev/filemanager/img/spritemap@2x.png diff --git a/admin/filemanager/img/spritemap@2x_hu_HU.png b/admin-dev/filemanager/img/spritemap@2x_hu_HU.png similarity index 100% rename from admin/filemanager/img/spritemap@2x_hu_HU.png rename to admin-dev/filemanager/img/spritemap@2x_hu_HU.png diff --git a/admin/filemanager/img/spritemap_hu_HU.png b/admin-dev/filemanager/img/spritemap_hu_HU.png similarity index 100% rename from admin/filemanager/img/spritemap_hu_HU.png rename to admin-dev/filemanager/img/spritemap_hu_HU.png diff --git a/admin/filemanager/img/storing_animation.gif b/admin-dev/filemanager/img/storing_animation.gif similarity index 100% rename from admin/filemanager/img/storing_animation.gif rename to admin-dev/filemanager/img/storing_animation.gif diff --git a/admin/filemanager/img/up.png b/admin-dev/filemanager/img/up.png similarity index 100% rename from admin/filemanager/img/up.png rename to admin-dev/filemanager/img/up.png diff --git a/admin/filemanager/img/url.png b/admin-dev/filemanager/img/url.png similarity index 100% rename from admin/filemanager/img/url.png rename to admin-dev/filemanager/img/url.png diff --git a/admin/filemanager/img/zip.png b/admin-dev/filemanager/img/zip.png similarity index 100% rename from admin/filemanager/img/zip.png rename to admin-dev/filemanager/img/zip.png diff --git a/admin/filemanager/include/index.php b/admin-dev/filemanager/include/index.php similarity index 100% rename from admin/filemanager/include/index.php rename to admin-dev/filemanager/include/index.php diff --git a/admin/filemanager/include/php_image_magician.php b/admin-dev/filemanager/include/php_image_magician.php similarity index 99% rename from admin/filemanager/include/php_image_magician.php rename to admin-dev/filemanager/include/php_image_magician.php index 0922a7236..f77685090 100644 --- a/admin/filemanager/include/php_image_magician.php +++ b/admin-dev/filemanager/include/php_image_magician.php @@ -1148,8 +1148,6 @@ class imageLib imagecopy($comp, $im, 0, 0, 0, 0, $width, $height); imagecopy($comp, $filter, 0, 0, 0, 0, $width, $height); imagecopymerge($im, $comp, 0, 0, 0, 0, $width, $height, $amount); - - imagedestroy($comp); return $im; } @@ -1261,9 +1259,6 @@ class imageLib } $this->imageResized = $final; - - imagedestroy($li); - imagedestroy($im); } @@ -1571,10 +1566,6 @@ class imageLib imagesavealpha($rgb, true); $this->imageResized = $rgb; - - imagedestroy($image); - imagedestroy($newImage); - imagedestroy($shadow); } @@ -3320,7 +3311,6 @@ class imageLib public function __destruct() { if (is_resource($this->imageResized)) { - imagedestroy($this->imageResized); } } diff --git a/admin/filemanager/include/utils.php b/admin-dev/filemanager/include/utils.php similarity index 99% rename from admin/filemanager/include/utils.php rename to admin-dev/filemanager/include/utils.php index b8c3295de..8bba34878 100644 --- a/admin/filemanager/include/utils.php +++ b/admin-dev/filemanager/include/utils.php @@ -352,7 +352,6 @@ function get_file_by_url($url) curl_setopt($ch, CURLOPT_URL, $url); $data = curl_exec($ch); - curl_close($ch); return $data; } diff --git a/admin/filemanager/index.php b/admin-dev/filemanager/index.php similarity index 100% rename from admin/filemanager/index.php rename to admin-dev/filemanager/index.php diff --git a/admin/filemanager/jPlayer/Jplayer.swf b/admin-dev/filemanager/jPlayer/Jplayer.swf similarity index 100% rename from admin/filemanager/jPlayer/Jplayer.swf rename to admin-dev/filemanager/jPlayer/Jplayer.swf diff --git a/admin/filemanager/jPlayer/add-on/index.php b/admin-dev/filemanager/jPlayer/add-on/index.php similarity index 100% rename from admin/filemanager/jPlayer/add-on/index.php rename to admin-dev/filemanager/jPlayer/add-on/index.php diff --git a/admin/filemanager/jPlayer/add-on/jplayer.playlist.min.js b/admin-dev/filemanager/jPlayer/add-on/jplayer.playlist.min.js similarity index 100% rename from admin/filemanager/jPlayer/add-on/jplayer.playlist.min.js rename to admin-dev/filemanager/jPlayer/add-on/jplayer.playlist.min.js diff --git a/admin/filemanager/jPlayer/add-on/jquery.jplayer.inspector.js b/admin-dev/filemanager/jPlayer/add-on/jquery.jplayer.inspector.js similarity index 100% rename from admin/filemanager/jPlayer/add-on/jquery.jplayer.inspector.js rename to admin-dev/filemanager/jPlayer/add-on/jquery.jplayer.inspector.js diff --git a/admin/filemanager/jPlayer/index.php b/admin-dev/filemanager/jPlayer/index.php similarity index 100% rename from admin/filemanager/jPlayer/index.php rename to admin-dev/filemanager/jPlayer/index.php diff --git a/admin/filemanager/jPlayer/jquery.jplayer.min.js b/admin-dev/filemanager/jPlayer/jquery.jplayer.min.js similarity index 100% rename from admin/filemanager/jPlayer/jquery.jplayer.min.js rename to admin-dev/filemanager/jPlayer/jquery.jplayer.min.js diff --git a/admin/filemanager/jPlayer/popcorn/index.php b/admin-dev/filemanager/jPlayer/popcorn/index.php similarity index 100% rename from admin/filemanager/jPlayer/popcorn/index.php rename to admin-dev/filemanager/jPlayer/popcorn/index.php diff --git a/admin/filemanager/jPlayer/popcorn/popcorn.jplayer.js b/admin-dev/filemanager/jPlayer/popcorn/popcorn.jplayer.js similarity index 100% rename from admin/filemanager/jPlayer/popcorn/popcorn.jplayer.js rename to admin-dev/filemanager/jPlayer/popcorn/popcorn.jplayer.js diff --git a/admin/filemanager/jPlayer/skin/blue.monday/index.php b/admin-dev/filemanager/jPlayer/skin/blue.monday/index.php similarity index 100% rename from admin/filemanager/jPlayer/skin/blue.monday/index.php rename to admin-dev/filemanager/jPlayer/skin/blue.monday/index.php diff --git a/admin/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.css b/admin-dev/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.css similarity index 100% rename from admin/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.css rename to admin-dev/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.css diff --git a/admin/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.jpg b/admin-dev/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.jpg similarity index 100% rename from admin/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.jpg rename to admin-dev/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.jpg diff --git a/admin/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.seeking.gif b/admin-dev/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.seeking.gif similarity index 100% rename from admin/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.seeking.gif rename to admin-dev/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.seeking.gif diff --git a/admin/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.video.play.png b/admin-dev/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.video.play.png similarity index 100% rename from admin/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.video.play.png rename to admin-dev/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.video.play.png diff --git a/admin/filemanager/jPlayer/skin/blue.monday/spirites_blue.monday_2011.pxm b/admin-dev/filemanager/jPlayer/skin/blue.monday/spirites_blue.monday_2011.pxm similarity index 100% rename from admin/filemanager/jPlayer/skin/blue.monday/spirites_blue.monday_2011.pxm rename to admin-dev/filemanager/jPlayer/skin/blue.monday/spirites_blue.monday_2011.pxm diff --git a/admin/filemanager/jPlayer/skin/index.php b/admin-dev/filemanager/jPlayer/skin/index.php similarity index 100% rename from admin/filemanager/jPlayer/skin/index.php rename to admin-dev/filemanager/jPlayer/skin/index.php diff --git a/admin/filemanager/js/bootbox.min.js b/admin-dev/filemanager/js/bootbox.min.js similarity index 100% rename from admin/filemanager/js/bootbox.min.js rename to admin-dev/filemanager/js/bootbox.min.js diff --git a/admin/filemanager/js/bootstrap-lightbox.min.js b/admin-dev/filemanager/js/bootstrap-lightbox.min.js similarity index 100% rename from admin/filemanager/js/bootstrap-lightbox.min.js rename to admin-dev/filemanager/js/bootstrap-lightbox.min.js diff --git a/admin/filemanager/js/bootstrap-modal.min.js b/admin-dev/filemanager/js/bootstrap-modal.min.js similarity index 100% rename from admin/filemanager/js/bootstrap-modal.min.js rename to admin-dev/filemanager/js/bootstrap-modal.min.js diff --git a/admin/filemanager/js/bootstrap-modalmanager.min.js b/admin-dev/filemanager/js/bootstrap-modalmanager.min.js similarity index 100% rename from admin/filemanager/js/bootstrap-modalmanager.min.js rename to admin-dev/filemanager/js/bootstrap-modalmanager.min.js diff --git a/admin/filemanager/js/bootstrap.min.js b/admin-dev/filemanager/js/bootstrap.min.js similarity index 100% rename from admin/filemanager/js/bootstrap.min.js rename to admin-dev/filemanager/js/bootstrap.min.js diff --git a/admin/filemanager/js/dropzone.min.js b/admin-dev/filemanager/js/dropzone.min.js similarity index 100% rename from admin/filemanager/js/dropzone.min.js rename to admin-dev/filemanager/js/dropzone.min.js diff --git a/admin/filemanager/js/imagesloaded.pkgd.min.js b/admin-dev/filemanager/js/imagesloaded.pkgd.min.js similarity index 100% rename from admin/filemanager/js/imagesloaded.pkgd.min.js rename to admin-dev/filemanager/js/imagesloaded.pkgd.min.js diff --git a/admin/filemanager/js/include.js b/admin-dev/filemanager/js/include.js similarity index 100% rename from admin/filemanager/js/include.js rename to admin-dev/filemanager/js/include.js diff --git a/admin/filemanager/js/include.min.js b/admin-dev/filemanager/js/include.min.js similarity index 100% rename from admin/filemanager/js/include.min.js rename to admin-dev/filemanager/js/include.min.js diff --git a/admin/filemanager/js/index.php b/admin-dev/filemanager/js/index.php similarity index 100% rename from admin/filemanager/js/index.php rename to admin-dev/filemanager/js/index.php diff --git a/admin/filemanager/js/jquery.contextMenu.js b/admin-dev/filemanager/js/jquery.contextMenu.js similarity index 100% rename from admin/filemanager/js/jquery.contextMenu.js rename to admin-dev/filemanager/js/jquery.contextMenu.js diff --git a/admin/filemanager/js/jquery.contextMenu.min.js b/admin-dev/filemanager/js/jquery.contextMenu.min.js similarity index 100% rename from admin/filemanager/js/jquery.contextMenu.min.js rename to admin-dev/filemanager/js/jquery.contextMenu.min.js diff --git a/admin/filemanager/js/jquery.js b/admin-dev/filemanager/js/jquery.js similarity index 100% rename from admin/filemanager/js/jquery.js rename to admin-dev/filemanager/js/jquery.js diff --git a/admin/filemanager/js/jquery.queryloader2.min.js b/admin-dev/filemanager/js/jquery.queryloader2.min.js similarity index 100% rename from admin/filemanager/js/jquery.queryloader2.min.js rename to admin-dev/filemanager/js/jquery.queryloader2.min.js diff --git a/admin/filemanager/js/jquery.touchSwipe.min.js b/admin-dev/filemanager/js/jquery.touchSwipe.min.js similarity index 100% rename from admin/filemanager/js/jquery.touchSwipe.min.js rename to admin-dev/filemanager/js/jquery.touchSwipe.min.js diff --git a/admin/filemanager/js/jquery.ui.position.js b/admin-dev/filemanager/js/jquery.ui.position.js similarity index 100% rename from admin/filemanager/js/jquery.ui.position.js rename to admin-dev/filemanager/js/jquery.ui.position.js diff --git a/admin/filemanager/js/jquery.ui.position.min.js b/admin-dev/filemanager/js/jquery.ui.position.min.js similarity index 100% rename from admin/filemanager/js/jquery.ui.position.min.js rename to admin-dev/filemanager/js/jquery.ui.position.min.js diff --git a/admin/filemanager/js/modernizr.custom.js b/admin-dev/filemanager/js/modernizr.custom.js similarity index 100% rename from admin/filemanager/js/modernizr.custom.js rename to admin-dev/filemanager/js/modernizr.custom.js diff --git a/admin/filemanager/lang/az.php b/admin-dev/filemanager/lang/az.php similarity index 100% rename from admin/filemanager/lang/az.php rename to admin-dev/filemanager/lang/az.php diff --git a/admin/filemanager/lang/bg.php b/admin-dev/filemanager/lang/bg.php similarity index 100% rename from admin/filemanager/lang/bg.php rename to admin-dev/filemanager/lang/bg.php diff --git a/admin/filemanager/lang/br.php b/admin-dev/filemanager/lang/br.php similarity index 100% rename from admin/filemanager/lang/br.php rename to admin-dev/filemanager/lang/br.php diff --git a/admin/filemanager/lang/cs.php b/admin-dev/filemanager/lang/cs.php similarity index 100% rename from admin/filemanager/lang/cs.php rename to admin-dev/filemanager/lang/cs.php diff --git a/admin/filemanager/lang/de.php b/admin-dev/filemanager/lang/de.php similarity index 100% rename from admin/filemanager/lang/de.php rename to admin-dev/filemanager/lang/de.php diff --git a/admin/filemanager/lang/en.php b/admin-dev/filemanager/lang/en.php similarity index 100% rename from admin/filemanager/lang/en.php rename to admin-dev/filemanager/lang/en.php diff --git a/admin/filemanager/lang/es.php b/admin-dev/filemanager/lang/es.php similarity index 100% rename from admin/filemanager/lang/es.php rename to admin-dev/filemanager/lang/es.php diff --git a/admin/filemanager/lang/fa.php b/admin-dev/filemanager/lang/fa.php similarity index 100% rename from admin/filemanager/lang/fa.php rename to admin-dev/filemanager/lang/fa.php diff --git a/admin/filemanager/lang/fr.php b/admin-dev/filemanager/lang/fr.php similarity index 100% rename from admin/filemanager/lang/fr.php rename to admin-dev/filemanager/lang/fr.php diff --git a/admin/filemanager/lang/hr.php b/admin-dev/filemanager/lang/hr.php similarity index 100% rename from admin/filemanager/lang/hr.php rename to admin-dev/filemanager/lang/hr.php diff --git a/admin/filemanager/lang/hu.php b/admin-dev/filemanager/lang/hu.php similarity index 100% rename from admin/filemanager/lang/hu.php rename to admin-dev/filemanager/lang/hu.php diff --git a/admin/filemanager/lang/id.php b/admin-dev/filemanager/lang/id.php similarity index 100% rename from admin/filemanager/lang/id.php rename to admin-dev/filemanager/lang/id.php diff --git a/admin/filemanager/lang/index.php b/admin-dev/filemanager/lang/index.php similarity index 100% rename from admin/filemanager/lang/index.php rename to admin-dev/filemanager/lang/index.php diff --git a/admin/filemanager/lang/it.php b/admin-dev/filemanager/lang/it.php similarity index 100% rename from admin/filemanager/lang/it.php rename to admin-dev/filemanager/lang/it.php diff --git a/admin/filemanager/lang/mn.php b/admin-dev/filemanager/lang/mn.php similarity index 100% rename from admin/filemanager/lang/mn.php rename to admin-dev/filemanager/lang/mn.php diff --git a/admin/filemanager/lang/nb.php b/admin-dev/filemanager/lang/nb.php similarity index 100% rename from admin/filemanager/lang/nb.php rename to admin-dev/filemanager/lang/nb.php diff --git a/admin/filemanager/lang/nl.php b/admin-dev/filemanager/lang/nl.php similarity index 100% rename from admin/filemanager/lang/nl.php rename to admin-dev/filemanager/lang/nl.php diff --git a/admin/filemanager/lang/pl.php b/admin-dev/filemanager/lang/pl.php similarity index 100% rename from admin/filemanager/lang/pl.php rename to admin-dev/filemanager/lang/pl.php diff --git a/admin/filemanager/lang/pt.php b/admin-dev/filemanager/lang/pt.php similarity index 100% rename from admin/filemanager/lang/pt.php rename to admin-dev/filemanager/lang/pt.php diff --git a/admin/filemanager/lang/ru.php b/admin-dev/filemanager/lang/ru.php similarity index 100% rename from admin/filemanager/lang/ru.php rename to admin-dev/filemanager/lang/ru.php diff --git a/admin/filemanager/lang/se.php b/admin-dev/filemanager/lang/se.php similarity index 100% rename from admin/filemanager/lang/se.php rename to admin-dev/filemanager/lang/se.php diff --git a/admin/filemanager/lang/sk.php b/admin-dev/filemanager/lang/sk.php similarity index 100% rename from admin/filemanager/lang/sk.php rename to admin-dev/filemanager/lang/sk.php diff --git a/admin/filemanager/lang/tr.php b/admin-dev/filemanager/lang/tr.php similarity index 100% rename from admin/filemanager/lang/tr.php rename to admin-dev/filemanager/lang/tr.php diff --git a/admin/filemanager/lang/uk.php b/admin-dev/filemanager/lang/uk.php similarity index 100% rename from admin/filemanager/lang/uk.php rename to admin-dev/filemanager/lang/uk.php diff --git a/admin/filemanager/plugin.js b/admin-dev/filemanager/plugin.js similarity index 100% rename from admin/filemanager/plugin.js rename to admin-dev/filemanager/plugin.js diff --git a/admin/filemanager/plugin.min.js b/admin-dev/filemanager/plugin.min.js similarity index 100% rename from admin/filemanager/plugin.min.js rename to admin-dev/filemanager/plugin.min.js diff --git a/admin/filemanager/upload.php b/admin-dev/filemanager/upload.php similarity index 100% rename from admin/filemanager/upload.php rename to admin-dev/filemanager/upload.php diff --git a/admin/filemanager/uploader/index.php b/admin-dev/filemanager/uploader/index.php similarity index 100% rename from admin/filemanager/uploader/index.php rename to admin-dev/filemanager/uploader/index.php diff --git a/admin/filemanager/uploader/success.jpg b/admin-dev/filemanager/uploader/success.jpg similarity index 100% rename from admin/filemanager/uploader/success.jpg rename to admin-dev/filemanager/uploader/success.jpg diff --git a/admin/filemanager/uploader/success.php b/admin-dev/filemanager/uploader/success.php similarity index 100% rename from admin/filemanager/uploader/success.php rename to admin-dev/filemanager/uploader/success.php diff --git a/admin/footer.inc.php b/admin-dev/footer.inc.php similarity index 100% rename from admin/footer.inc.php rename to admin-dev/footer.inc.php diff --git a/admin/functions.php b/admin-dev/functions.php similarity index 100% rename from admin/functions.php rename to admin-dev/functions.php diff --git a/admin/get-file-admin.php b/admin-dev/get-file-admin.php similarity index 100% rename from admin/get-file-admin.php rename to admin-dev/get-file-admin.php diff --git a/admin/grider.php b/admin-dev/grider.php similarity index 100% rename from admin/grider.php rename to admin-dev/grider.php diff --git a/admin/header.inc.php b/admin-dev/header.inc.php similarity index 100% rename from admin/header.inc.php rename to admin-dev/header.inc.php diff --git a/admin/import/.htaccess b/admin-dev/import/.htaccess similarity index 100% rename from admin/import/.htaccess rename to admin-dev/import/.htaccess diff --git a/admin/import/index.php b/admin-dev/import/index.php similarity index 100% rename from admin/import/index.php rename to admin-dev/import/index.php diff --git a/admin/index.php b/admin-dev/index.php similarity index 100% rename from admin/index.php rename to admin-dev/index.php diff --git a/admin/init.php b/admin-dev/init.php similarity index 100% rename from admin/init.php rename to admin-dev/init.php diff --git a/admin/login.php b/admin-dev/login.php similarity index 100% rename from admin/login.php rename to admin-dev/login.php diff --git a/admin/password.php b/admin-dev/password.php similarity index 100% rename from admin/password.php rename to admin-dev/password.php diff --git a/admin/pdf.php b/admin-dev/pdf.php similarity index 100% rename from admin/pdf.php rename to admin-dev/pdf.php diff --git a/admin/searchcron.php b/admin-dev/searchcron.php similarity index 100% rename from admin/searchcron.php rename to admin-dev/searchcron.php diff --git a/admin/tabs/.htaccess b/admin-dev/tabs/.htaccess similarity index 100% rename from admin/tabs/.htaccess rename to admin-dev/tabs/.htaccess diff --git a/admin/tabs/index.php b/admin-dev/tabs/index.php similarity index 100% rename from admin/tabs/index.php rename to admin-dev/tabs/index.php diff --git a/admin/themes/default/bower.json b/admin-dev/themes/default/bower.json similarity index 100% rename from admin/themes/default/bower.json rename to admin-dev/themes/default/bower.json diff --git a/admin/themes/default/config.rb b/admin-dev/themes/default/config.rb similarity index 100% rename from admin/themes/default/config.rb rename to admin-dev/themes/default/config.rb diff --git a/admin/themes/default/css/admin-theme.css b/admin-dev/themes/default/css/admin-theme.css similarity index 94% rename from admin/themes/default/css/admin-theme.css rename to admin-dev/themes/default/css/admin-theme.css index e636ba1f1..63f704b1d 100644 --- a/admin/themes/default/css/admin-theme.css +++ b/admin-dev/themes/default/css/admin-theme.css @@ -1,4 +1,4 @@ -@import url("//fonts.googleapis.com/css?family=Open+Sans:300,400,700");@import url("//fonts.googleapis.com/css?family=Ubuntu+Condensed");@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(20px)}100%{opacity:1;-webkit-transform:translateY(0)}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-20px)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-20px)}100%{opacity:1;-webkit-transform:translateY(0)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(20px)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(20px)}100%{opacity:1;-webkit-transform:translateX(0)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(-20px)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(-20px)}100%{opacity:1;-webkit-transform:translateX(0)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(20px)}}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0)}}@-webkit-keyframes fadeOutUpBig{0%{opacity:1;-webkit-transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-2000px)}}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translateY(-2000px)}100%{opacity:1;-webkit-transform:translateY(0)}}@-webkit-keyframes fadeOutDownBig{0%{opacity:1;-webkit-transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(2000px)}}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translateX(2000px)}100%{opacity:1;-webkit-transform:translateX(0)}}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1;-webkit-transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(-2000px)}}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translateX(-2000px)}100%{opacity:1;-webkit-transform:translateX(0)}}@-webkit-keyframes fadeOutRightBig{0%{opacity:1;-webkit-transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(2000px)}}@-webkit-keyframes bounceIn{0%{opacity:0;-webkit-transform:scale(.3)}50%{opacity:1;-webkit-transform:scale(1.05)}70%{-webkit-transform:scale(.9)}100%{-webkit-transform:scale(1)}}@-webkit-keyframes bounceInDown{0%{opacity:0;-webkit-transform:translateY(-2000px)}60%{opacity:1;-webkit-transform:translateY(30px)}80%{-webkit-transform:translateY(-10px)}100%{-webkit-transform:translateY(0)}}@-webkit-keyframes bounceInUp{0%{opacity:0;-webkit-transform:translateY(2000px)}60%{opacity:1;-webkit-transform:translateY(-30px)}80%{-webkit-transform:translateY(10px)}100%{-webkit-transform:translateY(0)}}@-webkit-keyframes bounceInRight{0%{opacity:0;-webkit-transform:translateX(2000px)}60%{opacity:1;-webkit-transform:translateX(-30px)}80%{-webkit-transform:translateX(10px)}100%{-webkit-transform:translateX(0)}}@-webkit-keyframes bounceInLeft{0%{opacity:0;-webkit-transform:translateX(-2000px)}60%{opacity:1;-webkit-transform:translateX(30px)}80%{-webkit-transform:translateX(-10px)}100%{-webkit-transform:translateX(0)}}@-webkit-keyframes bounceOut{0%{-webkit-transform:scale(1)}25%{-webkit-transform:scale(.95)}50%{opacity:1;-webkit-transform:scale(1.1)}100%{opacity:0;-webkit-transform:scale(.3)}}@-webkit-keyframes bounceOutUp{0%{-webkit-transform:translateY(0)}20%{opacity:1;-webkit-transform:translateY(20px)}100%{opacity:0;-webkit-transform:translateY(-2000px)}}@-webkit-keyframes bounceOutDown{0%{-webkit-transform:translateY(0)}20%{opacity:1;-webkit-transform:translateY(-20px)}100%{opacity:0;-webkit-transform:translateY(2000px)}}@-webkit-keyframes bounceOutLeft{0%{-webkit-transform:translateX(0)}20%{opacity:1;-webkit-transform:translateX(20px)}100%{opacity:0;-webkit-transform:translateX(-2000px)}}@-webkit-keyframes bounceOutRight{0%{-webkit-transform:translateX(0)}20%{opacity:1;-webkit-transform:translateX(-20px)}100%{opacity:0;-webkit-transform:translateX(2000px)}}@-webkit-keyframes flash{0%{opacity:1}25%{opacity:0}50%{opacity:1}75%{opacity:0}100%{opacity:1}}@-webkit-keyframes bounce{0%{-webkit-transform:translateY(0)}20%{-webkit-transform:translateY(0)}40%{-webkit-transform:translateY(-30px)}50%{-webkit-transform:translateY(0)}60%{-webkit-transform:translateY(-15px)}80%{-webkit-transform:translateY(0)}100%{-webkit-transform:translateY(0)}}@-webkit-keyframes shake{0%{-webkit-transform:translateX(0)}10%{-webkit-transform:translateX(-10px)}20%{-webkit-transform:translateX(10px)}30%{-webkit-transform:translateX(-10px)}40%{-webkit-transform:translateX(10px)}50%{-webkit-transform:translateX(-10px)}60%{-webkit-transform:translateX(10px)}70%{-webkit-transform:translateX(-10px)}80%{-webkit-transform:translateX(10px)}90%{-webkit-transform:translateX(-10px)}100%{-webkit-transform:translateX(0)}}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(-90deg);opacity:0}100%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(0);opacity:1}}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(90deg);opacity:0}100%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(0);opacity:1}}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(-90deg);opacity:0}100%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(0);opacity:1}}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(90deg);opacity:0}100%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(0);opacity:1}}@-webkit-keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(0);opacity:1}100%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(90deg);opacity:0}}@-webkit-keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(0);opacity:1}100%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(-90deg);opacity:0}}@-webkit-keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(0);opacity:1}100%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(-90deg);opacity:0}}@-webkit-keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(0);opacity:1}100%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(90deg);opacity:0}}@-webkit-keyframes rotateIn{0%{-webkit-transform-origin:center center;-webkit-transform:rotate(-200deg);opacity:0}100%{-webkit-transform-origin:center center;-webkit-transform:rotate(0);opacity:1}}@-webkit-keyframes rotateOut{0%{-webkit-transform-origin:center center;-webkit-transform:rotate(0);opacity:1}100%{-webkit-transform-origin:center center;-webkit-transform:rotate(200deg);opacity:0}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1)}10%{-webkit-transform:scale(.9) rotate(-3deg)}20%{-webkit-transform:scale(.9) rotate(-3deg)}30%{-webkit-transform:scale(1.1) rotate(3deg)}40%{-webkit-transform:scale(1.1) rotate(-3deg)}50%{-webkit-transform:scale(1.1) rotate(3deg)}60%{-webkit-transform:scale(1.1) rotate(-3deg)}70%{-webkit-transform:scale(1.1) rotate(3deg)}80%{-webkit-transform:scale(1.1) rotate(-3deg)}90%{-webkit-transform:scale(1.1) rotate(3deg)}100%{-webkit-transform:scale(1) rotate(0)}}@-moz-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@-moz-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@-moz-keyframes fadeInUp{0%{opacity:0;-moz-transform:translateY(20px)}100%{opacity:1;-moz-transform:translateY(0)}}@-moz-keyframes fadeOutUp{0%{opacity:1;-moz-transform:translateY(0)}100%{opacity:0;-moz-transform:translateY(-20px)}}@-moz-keyframes fadeInDown{0%{opacity:0;-moz-transform:translateY(-20px)}100%{opacity:1;-moz-transform:translateY(0)}}@-moz-keyframes fadeOutDown{0%{opacity:1;-moz-transform:translateY(0)}100%{opacity:0;-moz-transform:translateY(20px)}}@-moz-keyframes fadeInRight{0%{opacity:0;-moz-transform:translateX(20px)}100%{opacity:1;-moz-transform:translateX(0)}}@-moz-keyframes fadeOutLeft{0%{opacity:1;-moz-transform:translateX(0)}100%{opacity:0;-moz-transform:translateX(-20px)}}@-moz-keyframes fadeInLeft{0%{opacity:0;-moz-transform:translateX(-20px)}100%{opacity:1;-moz-transform:translateX(0)}}@-moz-keyframes fadeOutRight{0%{opacity:1;-moz-transform:translateX(0)}100%{opacity:0;-moz-transform:translateX(20px)}}@-moz-keyframes fadeInUpBig{0%{opacity:0;-moz-transform:translateY(2000px)}100%{opacity:1;-moz-transform:translateY(0)}}@-moz-keyframes fadeOutUpBig{0%{opacity:1;-moz-transform:translateY(0)}100%{opacity:0;-moz-transform:translateY(-2000px)}}@-moz-keyframes fadeInDownBig{0%{opacity:0;-moz-transform:translateY(-2000px)}100%{opacity:1;-moz-transform:translateY(0)}}@-moz-keyframes fadeOutDownBig{0%{opacity:1;-moz-transform:translateY(0)}100%{opacity:0;-moz-transform:translateY(2000px)}}@-moz-keyframes fadeInRightBig{0%{opacity:0;-moz-transform:translateX(2000px)}100%{opacity:1;-moz-transform:translateX(0)}}@-moz-keyframes fadeOutLeftBig{0%{opacity:1;-moz-transform:translateX(0)}100%{opacity:0;-moz-transform:translateX(-2000px)}}@-moz-keyframes fadeInLeftBig{0%{opacity:0;-moz-transform:translateX(-2000px)}100%{opacity:1;-moz-transform:translateX(0)}}@-moz-keyframes fadeOutRightBig{0%{opacity:1;-moz-transform:translateX(0)}100%{opacity:0;-moz-transform:translateX(2000px)}}@-moz-keyframes bounceIn{0%{opacity:0;-moz-transform:scale(.3)}50%{opacity:1;-moz-transform:scale(1.05)}70%{-moz-transform:scale(.9)}100%{-moz-transform:scale(1)}}@-moz-keyframes bounceInDown{0%{opacity:0;-moz-transform:translateY(-2000px)}60%{opacity:1;-moz-transform:translateY(30px)}80%{-moz-transform:translateY(-10px)}100%{-moz-transform:translateY(0)}}@-moz-keyframes bounceInUp{0%{opacity:0;-moz-transform:translateY(2000px)}60%{opacity:1;-moz-transform:translateY(-30px)}80%{-moz-transform:translateY(10px)}100%{-moz-transform:translateY(0)}}@-moz-keyframes bounceInRight{0%{opacity:0;-moz-transform:translateX(2000px)}60%{opacity:1;-moz-transform:translateX(-30px)}80%{-moz-transform:translateX(10px)}100%{-moz-transform:translateX(0)}}@-moz-keyframes bounceInLeft{0%{opacity:0;-moz-transform:translateX(-2000px)}60%{opacity:1;-moz-transform:translateX(30px)}80%{-moz-transform:translateX(-10px)}100%{-moz-transform:translateX(0)}}@-moz-keyframes bounceOut{0%{-moz-transform:scale(1)}25%{-moz-transform:scale(.95)}50%{opacity:1;-moz-transform:scale(1.1)}100%{opacity:0;-moz-transform:scale(.3)}}@-moz-keyframes bounceOutUp{0%{-moz-transform:translateY(0)}20%{opacity:1;-moz-transform:translateY(20px)}100%{opacity:0;-moz-transform:translateY(-2000px)}}@-moz-keyframes bounceOutDown{0%{-moz-transform:translateY(0)}20%{opacity:1;-moz-transform:translateY(-20px)}100%{opacity:0;-moz-transform:translateY(2000px)}}@-moz-keyframes bounceOutLeft{0%{-moz-transform:translateX(0)}20%{opacity:1;-moz-transform:translateX(20px)}100%{opacity:0;-moz-transform:translateX(-2000px)}}@-moz-keyframes bounceOutRight{0%{-moz-transform:translateX(0)}20%{opacity:1;-moz-transform:translateX(-20px)}100%{opacity:0;-moz-transform:translateX(2000px)}}@-moz-keyframes flash{0%{opacity:1}25%{opacity:0}50%{opacity:1}75%{opacity:0}100%{opacity:1}}@-moz-keyframes bounce{0%{-moz-transform:translateY(0)}20%{-moz-transform:translateY(0)}40%{-moz-transform:translateY(-30px)}50%{-moz-transform:translateY(0)}60%{-moz-transform:translateY(-15px)}80%{-moz-transform:translateY(0)}100%{-moz-transform:translateY(0)}}@-moz-keyframes shake{0%{-moz-transform:translateX(0)}10%{-moz-transform:translateX(-10px)}20%{-moz-transform:translateX(10px)}30%{-moz-transform:translateX(-10px)}40%{-moz-transform:translateX(10px)}50%{-moz-transform:translateX(-10px)}60%{-moz-transform:translateX(10px)}70%{-moz-transform:translateX(-10px)}80%{-moz-transform:translateX(10px)}90%{-moz-transform:translateX(-10px)}100%{-moz-transform:translateX(0)}}@-moz-keyframes rotateInDownLeft{0%{-moz-transform-origin:left bottom;-moz-transform:rotate(-90deg);opacity:0}100%{-moz-transform-origin:left bottom;-moz-transform:rotate(0);opacity:1}}@-moz-keyframes rotateInUpLeft{0%{-moz-transform-origin:left bottom;-moz-transform:rotate(90deg);opacity:0}100%{-moz-transform-origin:left bottom;-moz-transform:rotate(0);opacity:1}}@-moz-keyframes rotateInUpRight{0%{-moz-transform-origin:right bottom;-moz-transform:rotate(-90deg);opacity:0}100%{-moz-transform-origin:right bottom;-moz-transform:rotate(0);opacity:1}}@-moz-keyframes rotateInDownRight{0%{-moz-transform-origin:right bottom;-moz-transform:rotate(90deg);opacity:0}100%{-moz-transform-origin:right bottom;-moz-transform:rotate(0);opacity:1}}@-moz-keyframes rotateOutDownLeft{0%{-moz-transform-origin:left bottom;-moz-transform:rotate(0);opacity:1}100%{-moz-transform-origin:left bottom;-moz-transform:rotate(90deg);opacity:0}}@-moz-keyframes rotateOutUpLeft{0%{-moz-transform-origin:left bottom;-moz-transform:rotate(0);opacity:1}100%{-moz-transform-origin:left bottom;-moz-transform:rotate(-90deg);opacity:0}}@-moz-keyframes rotateOutDownRight{0%{-moz-transform-origin:right bottom;-moz-transform:rotate(0);opacity:1}100%{-moz-transform-origin:right bottom;-moz-transform:rotate(-90deg);opacity:0}}@-moz-keyframes rotateOutUpRight{0%{-moz-transform-origin:right bottom;-moz-transform:rotate(0);opacity:1}100%{-moz-transform-origin:right bottom;-moz-transform:rotate(90deg);opacity:0}}@-moz-keyframes rotateIn{0%{-moz-transform-origin:center center;-moz-transform:rotate(-200deg);opacity:0}100%{-moz-transform-origin:center center;-moz-transform:rotate(0);opacity:1}}@-moz-keyframes rotateOut{0%{-moz-transform-origin:center center;-moz-transform:rotate(0);opacity:1}100%{-moz-transform-origin:center center;-moz-transform:rotate(200deg);opacity:0}}@-moz-keyframes tada{0%{-moz-transform:scale(1)}10%{-moz-transform:scale(.9) rotate(-3deg)}20%{-moz-transform:scale(.9) rotate(-3deg)}30%{-moz-transform:scale(1.1) rotate(3deg)}40%{-moz-transform:scale(1.1) rotate(-3deg)}50%{-moz-transform:scale(1.1) rotate(3deg)}60%{-moz-transform:scale(1.1) rotate(-3deg)}70%{-moz-transform:scale(1.1) rotate(3deg)}80%{-moz-transform:scale(1.1) rotate(-3deg)}90%{-moz-transform:scale(1.1) rotate(3deg)}100%{-moz-transform:scale(1) rotate(0)}}@-ms-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@-ms-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@-ms-keyframes fadeInUp{0%{opacity:0;-ms-transform:translateY(20px)}100%{opacity:1;-ms-transform:translateY(0)}}@-ms-keyframes fadeOutUp{0%{opacity:1;-ms-transform:translateY(0)}100%{opacity:0;-ms-transform:translateY(-20px)}}@-ms-keyframes fadeInDown{0%{opacity:0;-ms-transform:translateY(-20px)}100%{opacity:1;-ms-transform:translateY(0)}}@-ms-keyframes fadeOutDown{0%{opacity:1;-ms-transform:translateY(0)}100%{opacity:0;-ms-transform:translateY(20px)}}@-ms-keyframes fadeInRight{0%{opacity:0;-ms-transform:translateX(20px)}100%{opacity:1;-ms-transform:translateX(0)}}@-ms-keyframes fadeOutLeft{0%{opacity:1;-ms-transform:translateX(0)}100%{opacity:0;-ms-transform:translateX(-20px)}}@-ms-keyframes fadeInLeft{0%{opacity:0;-ms-transform:translateX(-20px)}100%{opacity:1;-ms-transform:translateX(0)}}@-ms-keyframes fadeOutRight{0%{opacity:1;-ms-transform:translateX(0)}100%{opacity:0;-ms-transform:translateX(20px)}}@-ms-keyframes fadeInUpBig{0%{opacity:0;-ms-transform:translateY(2000px)}100%{opacity:1;-ms-transform:translateY(0)}}@-ms-keyframes fadeOutUpBig{0%{opacity:1;-ms-transform:translateY(0)}100%{opacity:0;-ms-transform:translateY(-2000px)}}@-ms-keyframes fadeInDownBig{0%{opacity:0;-ms-transform:translateY(-2000px)}100%{opacity:1;-ms-transform:translateY(0)}}@-ms-keyframes fadeOutDownBig{0%{opacity:1;-ms-transform:translateY(0)}100%{opacity:0;-ms-transform:translateY(2000px)}}@-ms-keyframes fadeInRightBig{0%{opacity:0;-ms-transform:translateX(2000px)}100%{opacity:1;-ms-transform:translateX(0)}}@-ms-keyframes fadeOutLeftBig{0%{opacity:1;-ms-transform:translateX(0)}100%{opacity:0;-ms-transform:translateX(-2000px)}}@-ms-keyframes fadeInLeftBig{0%{opacity:0;-ms-transform:translateX(-2000px)}100%{opacity:1;-ms-transform:translateX(0)}}@-ms-keyframes fadeOutRightBig{0%{opacity:1;-ms-transform:translateX(0)}100%{opacity:0;-ms-transform:translateX(2000px)}}@-ms-keyframes bounceIn{0%{opacity:0;-ms-transform:scale(.3)}50%{opacity:1;-ms-transform:scale(1.05)}70%{-ms-transform:scale(.9)}100%{-ms-transform:scale(1)}}@-ms-keyframes bounceInDown{0%{opacity:0;-ms-transform:translateY(-2000px)}60%{opacity:1;-ms-transform:translateY(30px)}80%{-ms-transform:translateY(-10px)}100%{-ms-transform:translateY(0)}}@-ms-keyframes bounceInUp{0%{opacity:0;-ms-transform:translateY(2000px)}60%{opacity:1;-ms-transform:translateY(-30px)}80%{-ms-transform:translateY(10px)}100%{-ms-transform:translateY(0)}}@-ms-keyframes bounceInRight{0%{opacity:0;-ms-transform:translateX(2000px)}60%{opacity:1;-ms-transform:translateX(-30px)}80%{-ms-transform:translateX(10px)}100%{-ms-transform:translateX(0)}}@-ms-keyframes bounceInLeft{0%{opacity:0;-ms-transform:translateX(-2000px)}60%{opacity:1;-ms-transform:translateX(30px)}80%{-ms-transform:translateX(-10px)}100%{-ms-transform:translateX(0)}}@-ms-keyframes bounceOut{0%{-ms-transform:scale(1)}25%{-ms-transform:scale(.95)}50%{opacity:1;-ms-transform:scale(1.1)}100%{opacity:0;-ms-transform:scale(.3)}}@-ms-keyframes bounceOutUp{0%{-ms-transform:translateY(0)}20%{opacity:1;-ms-transform:translateY(20px)}100%{opacity:0;-ms-transform:translateY(-2000px)}}@-ms-keyframes bounceOutDown{0%{-ms-transform:translateY(0)}20%{opacity:1;-ms-transform:translateY(-20px)}100%{opacity:0;-ms-transform:translateY(2000px)}}@-ms-keyframes bounceOutLeft{0%{-ms-transform:translateX(0)}20%{opacity:1;-ms-transform:translateX(20px)}100%{opacity:0;-ms-transform:translateX(-2000px)}}@-ms-keyframes bounceOutRight{0%{-ms-transform:translateX(0)}20%{opacity:1;-ms-transform:translateX(-20px)}100%{opacity:0;-ms-transform:translateX(2000px)}}@-ms-keyframes flash{0%{opacity:1}25%{opacity:0}50%{opacity:1}75%{opacity:0}100%{opacity:1}}@-ms-keyframes bounce{0%{-ms-transform:translateY(0)}20%{-ms-transform:translateY(0)}40%{-ms-transform:translateY(-30px)}50%{-ms-transform:translateY(0)}60%{-ms-transform:translateY(-15px)}80%{-ms-transform:translateY(0)}100%{-ms-transform:translateY(0)}}@-ms-keyframes shake{0%{-ms-transform:translateX(0)}10%{-ms-transform:translateX(-10px)}20%{-ms-transform:translateX(10px)}30%{-ms-transform:translateX(-10px)}40%{-ms-transform:translateX(10px)}50%{-ms-transform:translateX(-10px)}60%{-ms-transform:translateX(10px)}70%{-ms-transform:translateX(-10px)}80%{-ms-transform:translateX(10px)}90%{-ms-transform:translateX(-10px)}100%{-ms-transform:translateX(0)}}@-ms-keyframes rotateInDownLeft{0%{-ms-transform-origin:left bottom;-ms-transform:rotate(-90deg);opacity:0}100%{-ms-transform-origin:left bottom;-ms-transform:rotate(0);opacity:1}}@-ms-keyframes rotateInUpLeft{0%{-ms-transform-origin:left bottom;-ms-transform:rotate(90deg);opacity:0}100%{-ms-transform-origin:left bottom;-ms-transform:rotate(0);opacity:1}}@-ms-keyframes rotateInUpRight{0%{-ms-transform-origin:right bottom;-ms-transform:rotate(-90deg);opacity:0}100%{-ms-transform-origin:right bottom;-ms-transform:rotate(0);opacity:1}}@-ms-keyframes rotateInDownRight{0%{-ms-transform-origin:right bottom;-ms-transform:rotate(90deg);opacity:0}100%{-ms-transform-origin:right bottom;-ms-transform:rotate(0);opacity:1}}@-ms-keyframes rotateOutDownLeft{0%{-ms-transform-origin:left bottom;-ms-transform:rotate(0);opacity:1}100%{-ms-transform-origin:left bottom;-ms-transform:rotate(90deg);opacity:0}}@-ms-keyframes rotateOutUpLeft{0%{-ms-transform-origin:left bottom;-ms-transform:rotate(0);opacity:1}100%{-ms-transform-origin:left bottom;-ms-transform:rotate(-90deg);opacity:0}}@-ms-keyframes rotateOutDownRight{0%{-ms-transform-origin:right bottom;-ms-transform:rotate(0);opacity:1}100%{-ms-transform-origin:right bottom;-ms-transform:rotate(-90deg);opacity:0}}@-ms-keyframes rotateOutUpRight{0%{-ms-transform-origin:right bottom;-ms-transform:rotate(0);opacity:1}100%{-ms-transform-origin:right bottom;-ms-transform:rotate(90deg);opacity:0}}@-ms-keyframes rotateIn{0%{-ms-transform-origin:center center;-ms-transform:rotate(-200deg);opacity:0}100%{-ms-transform-origin:center center;-ms-transform:rotate(0);opacity:1}}@-ms-keyframes rotateOut{0%{-ms-transform-origin:center center;-ms-transform:rotate(0);opacity:1}100%{-ms-transform-origin:center center;-ms-transform:rotate(200deg);opacity:0}}@-ms-keyframes tada{0%{-ms-transform:scale(1)}10%{-ms-transform:scale(.9) rotate(-3deg)}20%{-ms-transform:scale(.9) rotate(-3deg)}30%{-ms-transform:scale(1.1) rotate(3deg)}40%{-ms-transform:scale(1.1) rotate(-3deg)}50%{-ms-transform:scale(1.1) rotate(3deg)}60%{-ms-transform:scale(1.1) rotate(-3deg)}70%{-ms-transform:scale(1.1) rotate(3deg)}80%{-ms-transform:scale(1.1) rotate(-3deg)}90%{-ms-transform:scale(1.1) rotate(3deg)}100%{-ms-transform:scale(1) rotate(0)}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}100%{opacity:1;transform:translateY(0)}}@keyframes fadeOutUp{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-20px)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}100%{opacity:1;transform:translateY(0)}}@keyframes fadeOutDown{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(20px)}}@keyframes fadeInRight{0%{opacity:0;transform:translateX(20px)}100%{opacity:1;transform:translateX(0)}}@keyframes fadeOutLeft{0%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(-20px)}}@keyframes fadeInLeft{0%{opacity:0;transform:translateX(-20px)}100%{opacity:1;transform:translateX(0)}}@keyframes fadeOutRight{0%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(20px)}}@keyframes fadeInUpBig{0%{opacity:0;transform:translateY(2000px)}100%{opacity:1;transform:translateY(0)}}@keyframes fadeOutUpBig{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-2000px)}}@keyframes fadeInDownBig{0%{opacity:0;transform:translateY(-2000px)}100%{opacity:1;transform:translateY(0)}}@keyframes fadeOutDownBig{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(2000px)}}@keyframes fadeInRightBig{0%{opacity:0;transform:translateX(2000px)}100%{opacity:1;transform:translateX(0)}}@keyframes fadeOutLeftBig{0%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(-2000px)}}@keyframes fadeInLeftBig{0%{opacity:0;transform:translateX(-2000px)}100%{opacity:1;transform:translateX(0)}}@keyframes fadeOutRightBig{0%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(2000px)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}100%{transform:scale(1)}}@keyframes bounceInDown{0%{opacity:0;transform:translateY(-2000px)}60%{opacity:1;transform:translateY(30px)}80%{transform:translateY(-10px)}100%{transform:translateY(0)}}@keyframes bounceInUp{0%{opacity:0;transform:translateY(2000px)}60%{opacity:1;transform:translateY(-30px)}80%{transform:translateY(10px)}100%{transform:translateY(0)}}@keyframes bounceInRight{0%{opacity:0;transform:translateX(2000px)}60%{opacity:1;transform:translateX(-30px)}80%{transform:translateX(10px)}100%{transform:translateX(0)}}@keyframes bounceInLeft{0%{opacity:0;transform:translateX(-2000px)}60%{opacity:1;transform:translateX(30px)}80%{transform:translateX(-10px)}100%{transform:translateX(0)}}@keyframes bounceOut{0%{transform:scale(1)}25%{transform:scale(.95)}50%{opacity:1;transform:scale(1.1)}100%{opacity:0;transform:scale(.3)}}@keyframes bounceOutUp{0%{transform:translateY(0)}20%{opacity:1;transform:translateY(20px)}100%{opacity:0;transform:translateY(-2000px)}}@keyframes bounceOutDown{0%{transform:translateY(0)}20%{opacity:1;transform:translateY(-20px)}100%{opacity:0;transform:translateY(2000px)}}@keyframes bounceOutLeft{0%{transform:translateX(0)}20%{opacity:1;transform:translateX(20px)}100%{opacity:0;transform:translateX(-2000px)}}@keyframes bounceOutRight{0%{transform:translateX(0)}20%{opacity:1;transform:translateX(-20px)}100%{opacity:0;transform:translateX(2000px)}}@keyframes flash{0%{opacity:1}25%{opacity:0}50%{opacity:1}75%{opacity:0}100%{opacity:1}}@keyframes bounce{0%{transform:translateY(0)}20%{transform:translateY(0)}40%{transform:translateY(-30px)}50%{transform:translateY(0)}60%{transform:translateY(-15px)}80%{transform:translateY(0)}100%{transform:translateY(0)}}@keyframes shake{0%{transform:translateX(0)}10%{transform:translateX(-10px)}20%{transform:translateX(10px)}30%{transform:translateX(-10px)}40%{transform:translateX(10px)}50%{transform:translateX(-10px)}60%{transform:translateX(10px)}70%{transform:translateX(-10px)}80%{transform:translateX(10px)}90%{transform:translateX(-10px)}100%{transform:translateX(0)}}@keyframes rotateInDownLeft{0%{transform-origin:left bottom;transform:rotate(-90deg);opacity:0}100%{transform-origin:left bottom;transform:rotate(0);opacity:1}}@keyframes rotateInUpLeft{0%{transform-origin:left bottom;transform:rotate(90deg);opacity:0}100%{transform-origin:left bottom;transform:rotate(0);opacity:1}}@keyframes rotateInUpRight{0%{transform-origin:right bottom;transform:rotate(-90deg);opacity:0}100%{transform-origin:right bottom;transform:rotate(0);opacity:1}}@keyframes rotateInDownRight{0%{transform-origin:right bottom;transform:rotate(90deg);opacity:0}100%{transform-origin:right bottom;transform:rotate(0);opacity:1}}@keyframes rotateOutDownLeft{0%{transform-origin:left bottom;transform:rotate(0);opacity:1}100%{transform-origin:left bottom;transform:rotate(90deg);opacity:0}}@keyframes rotateOutUpLeft{0%{transform-origin:left bottom;transform:rotate(0);opacity:1}100%{transform-origin:left bottom;transform:rotate(-90deg);opacity:0}}@keyframes rotateOutDownRight{0%{transform-origin:right bottom;transform:rotate(0);opacity:1}100%{transform-origin:right bottom;transform:rotate(-90deg);opacity:0}}@keyframes rotateOutUpRight{0%{transform-origin:right bottom;transform:rotate(0);opacity:1}100%{transform-origin:right bottom;transform:rotate(90deg);opacity:0}}@keyframes rotateIn{0%{transform-origin:center center;transform:rotate(-200deg);opacity:0}100%{transform-origin:center center;transform:rotate(0);opacity:1}}@keyframes rotateOut{0%{transform-origin:center center;transform:rotate(0);opacity:1}100%{transform-origin:center center;transform:rotate(200deg);opacity:0}}@keyframes tada{0%{transform:scale(1)}10%{transform:scale(.9) rotate(-3deg)}20%{transform:scale(.9) rotate(-3deg)}30%{transform:scale(1.1) rotate(3deg)}40%{transform:scale(1.1) rotate(-3deg)}50%{transform:scale(1.1) rotate(3deg)}60%{transform:scale(1.1) rotate(-3deg)}70%{transform:scale(1.1) rotate(3deg)}80%{transform:scale(1.1) rotate(-3deg)}90%{transform:scale(1.1) rotate(3deg)}100%{transform:scale(1) rotate(0)}}/*! +@import url("//fonts.googleapis.com/css?family=Open+Sans:300,400,700");@import url("//fonts.googleapis.com/css?family=Ubuntu+Condensed");@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(20px)}100%{opacity:1;-webkit-transform:translateY(0)}}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-20px)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-20px)}100%{opacity:1;-webkit-transform:translateY(0)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(20px)}}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(20px)}100%{opacity:1;-webkit-transform:translateX(0)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(-20px)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(-20px)}100%{opacity:1;-webkit-transform:translateX(0)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(20px)}}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0)}}@-webkit-keyframes fadeOutUpBig{0%{opacity:1;-webkit-transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-2000px)}}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translateY(-2000px)}100%{opacity:1;-webkit-transform:translateY(0)}}@-webkit-keyframes fadeOutDownBig{0%{opacity:1;-webkit-transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(2000px)}}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translateX(2000px)}100%{opacity:1;-webkit-transform:translateX(0)}}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1;-webkit-transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(-2000px)}}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translateX(-2000px)}100%{opacity:1;-webkit-transform:translateX(0)}}@-webkit-keyframes fadeOutRightBig{0%{opacity:1;-webkit-transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(2000px)}}@-webkit-keyframes bounceIn{0%{opacity:0;-webkit-transform:scale(.3)}50%{opacity:1;-webkit-transform:scale(1.05)}70%{-webkit-transform:scale(.9)}100%{-webkit-transform:scale(1)}}@-webkit-keyframes bounceInDown{0%{opacity:0;-webkit-transform:translateY(-2000px)}60%{opacity:1;-webkit-transform:translateY(30px)}80%{-webkit-transform:translateY(-10px)}100%{-webkit-transform:translateY(0)}}@-webkit-keyframes bounceInUp{0%{opacity:0;-webkit-transform:translateY(2000px)}60%{opacity:1;-webkit-transform:translateY(-30px)}80%{-webkit-transform:translateY(10px)}100%{-webkit-transform:translateY(0)}}@-webkit-keyframes bounceInRight{0%{opacity:0;-webkit-transform:translateX(2000px)}60%{opacity:1;-webkit-transform:translateX(-30px)}80%{-webkit-transform:translateX(10px)}100%{-webkit-transform:translateX(0)}}@-webkit-keyframes bounceInLeft{0%{opacity:0;-webkit-transform:translateX(-2000px)}60%{opacity:1;-webkit-transform:translateX(30px)}80%{-webkit-transform:translateX(-10px)}100%{-webkit-transform:translateX(0)}}@-webkit-keyframes bounceOut{0%{-webkit-transform:scale(1)}25%{-webkit-transform:scale(.95)}50%{opacity:1;-webkit-transform:scale(1.1)}100%{opacity:0;-webkit-transform:scale(.3)}}@-webkit-keyframes bounceOutUp{0%{-webkit-transform:translateY(0)}20%{opacity:1;-webkit-transform:translateY(20px)}100%{opacity:0;-webkit-transform:translateY(-2000px)}}@-webkit-keyframes bounceOutDown{0%{-webkit-transform:translateY(0)}20%{opacity:1;-webkit-transform:translateY(-20px)}100%{opacity:0;-webkit-transform:translateY(2000px)}}@-webkit-keyframes bounceOutLeft{0%{-webkit-transform:translateX(0)}20%{opacity:1;-webkit-transform:translateX(20px)}100%{opacity:0;-webkit-transform:translateX(-2000px)}}@-webkit-keyframes bounceOutRight{0%{-webkit-transform:translateX(0)}20%{opacity:1;-webkit-transform:translateX(-20px)}100%{opacity:0;-webkit-transform:translateX(2000px)}}@-webkit-keyframes flash{0%{opacity:1}25%{opacity:0}50%{opacity:1}75%{opacity:0}100%{opacity:1}}@-webkit-keyframes bounce{0%{-webkit-transform:translateY(0)}20%{-webkit-transform:translateY(0)}40%{-webkit-transform:translateY(-30px)}50%{-webkit-transform:translateY(0)}60%{-webkit-transform:translateY(-15px)}80%{-webkit-transform:translateY(0)}100%{-webkit-transform:translateY(0)}}@-webkit-keyframes shake{0%{-webkit-transform:translateX(0)}10%{-webkit-transform:translateX(-10px)}20%{-webkit-transform:translateX(10px)}30%{-webkit-transform:translateX(-10px)}40%{-webkit-transform:translateX(10px)}50%{-webkit-transform:translateX(-10px)}60%{-webkit-transform:translateX(10px)}70%{-webkit-transform:translateX(-10px)}80%{-webkit-transform:translateX(10px)}90%{-webkit-transform:translateX(-10px)}100%{-webkit-transform:translateX(0)}}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(-90deg);opacity:0}100%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(0);opacity:1}}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(90deg);opacity:0}100%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(0);opacity:1}}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(-90deg);opacity:0}100%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(0);opacity:1}}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(90deg);opacity:0}100%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(0);opacity:1}}@-webkit-keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(0);opacity:1}100%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(90deg);opacity:0}}@-webkit-keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(0);opacity:1}100%{-webkit-transform-origin:left bottom;-webkit-transform:rotate(-90deg);opacity:0}}@-webkit-keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(0);opacity:1}100%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(-90deg);opacity:0}}@-webkit-keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(0);opacity:1}100%{-webkit-transform-origin:right bottom;-webkit-transform:rotate(90deg);opacity:0}}@-webkit-keyframes rotateIn{0%{-webkit-transform-origin:center center;-webkit-transform:rotate(-200deg);opacity:0}100%{-webkit-transform-origin:center center;-webkit-transform:rotate(0);opacity:1}}@-webkit-keyframes rotateOut{0%{-webkit-transform-origin:center center;-webkit-transform:rotate(0);opacity:1}100%{-webkit-transform-origin:center center;-webkit-transform:rotate(200deg);opacity:0}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1)}10%{-webkit-transform:scale(.9) rotate(-3deg)}20%{-webkit-transform:scale(.9) rotate(-3deg)}30%{-webkit-transform:scale(1.1) rotate(3deg)}40%{-webkit-transform:scale(1.1) rotate(-3deg)}50%{-webkit-transform:scale(1.1) rotate(3deg)}60%{-webkit-transform:scale(1.1) rotate(-3deg)}70%{-webkit-transform:scale(1.1) rotate(3deg)}80%{-webkit-transform:scale(1.1) rotate(-3deg)}90%{-webkit-transform:scale(1.1) rotate(3deg)}100%{-webkit-transform:scale(1) rotate(0)}}@-moz-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@-moz-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@-moz-keyframes fadeInUp{0%{opacity:0;-moz-transform:translateY(20px)}100%{opacity:1;-moz-transform:translateY(0)}}@-moz-keyframes fadeOutUp{0%{opacity:1;-moz-transform:translateY(0)}100%{opacity:0;-moz-transform:translateY(-20px)}}@-moz-keyframes fadeInDown{0%{opacity:0;-moz-transform:translateY(-20px)}100%{opacity:1;-moz-transform:translateY(0)}}@-moz-keyframes fadeOutDown{0%{opacity:1;-moz-transform:translateY(0)}100%{opacity:0;-moz-transform:translateY(20px)}}@-moz-keyframes fadeInRight{0%{opacity:0;-moz-transform:translateX(20px)}100%{opacity:1;-moz-transform:translateX(0)}}@-moz-keyframes fadeOutLeft{0%{opacity:1;-moz-transform:translateX(0)}100%{opacity:0;-moz-transform:translateX(-20px)}}@-moz-keyframes fadeInLeft{0%{opacity:0;-moz-transform:translateX(-20px)}100%{opacity:1;-moz-transform:translateX(0)}}@-moz-keyframes fadeOutRight{0%{opacity:1;-moz-transform:translateX(0)}100%{opacity:0;-moz-transform:translateX(20px)}}@-moz-keyframes fadeInUpBig{0%{opacity:0;-moz-transform:translateY(2000px)}100%{opacity:1;-moz-transform:translateY(0)}}@-moz-keyframes fadeOutUpBig{0%{opacity:1;-moz-transform:translateY(0)}100%{opacity:0;-moz-transform:translateY(-2000px)}}@-moz-keyframes fadeInDownBig{0%{opacity:0;-moz-transform:translateY(-2000px)}100%{opacity:1;-moz-transform:translateY(0)}}@-moz-keyframes fadeOutDownBig{0%{opacity:1;-moz-transform:translateY(0)}100%{opacity:0;-moz-transform:translateY(2000px)}}@-moz-keyframes fadeInRightBig{0%{opacity:0;-moz-transform:translateX(2000px)}100%{opacity:1;-moz-transform:translateX(0)}}@-moz-keyframes fadeOutLeftBig{0%{opacity:1;-moz-transform:translateX(0)}100%{opacity:0;-moz-transform:translateX(-2000px)}}@-moz-keyframes fadeInLeftBig{0%{opacity:0;-moz-transform:translateX(-2000px)}100%{opacity:1;-moz-transform:translateX(0)}}@-moz-keyframes fadeOutRightBig{0%{opacity:1;-moz-transform:translateX(0)}100%{opacity:0;-moz-transform:translateX(2000px)}}@-moz-keyframes bounceIn{0%{opacity:0;-moz-transform:scale(.3)}50%{opacity:1;-moz-transform:scale(1.05)}70%{-moz-transform:scale(.9)}100%{-moz-transform:scale(1)}}@-moz-keyframes bounceInDown{0%{opacity:0;-moz-transform:translateY(-2000px)}60%{opacity:1;-moz-transform:translateY(30px)}80%{-moz-transform:translateY(-10px)}100%{-moz-transform:translateY(0)}}@-moz-keyframes bounceInUp{0%{opacity:0;-moz-transform:translateY(2000px)}60%{opacity:1;-moz-transform:translateY(-30px)}80%{-moz-transform:translateY(10px)}100%{-moz-transform:translateY(0)}}@-moz-keyframes bounceInRight{0%{opacity:0;-moz-transform:translateX(2000px)}60%{opacity:1;-moz-transform:translateX(-30px)}80%{-moz-transform:translateX(10px)}100%{-moz-transform:translateX(0)}}@-moz-keyframes bounceInLeft{0%{opacity:0;-moz-transform:translateX(-2000px)}60%{opacity:1;-moz-transform:translateX(30px)}80%{-moz-transform:translateX(-10px)}100%{-moz-transform:translateX(0)}}@-moz-keyframes bounceOut{0%{-moz-transform:scale(1)}25%{-moz-transform:scale(.95)}50%{opacity:1;-moz-transform:scale(1.1)}100%{opacity:0;-moz-transform:scale(.3)}}@-moz-keyframes bounceOutUp{0%{-moz-transform:translateY(0)}20%{opacity:1;-moz-transform:translateY(20px)}100%{opacity:0;-moz-transform:translateY(-2000px)}}@-moz-keyframes bounceOutDown{0%{-moz-transform:translateY(0)}20%{opacity:1;-moz-transform:translateY(-20px)}100%{opacity:0;-moz-transform:translateY(2000px)}}@-moz-keyframes bounceOutLeft{0%{-moz-transform:translateX(0)}20%{opacity:1;-moz-transform:translateX(20px)}100%{opacity:0;-moz-transform:translateX(-2000px)}}@-moz-keyframes bounceOutRight{0%{-moz-transform:translateX(0)}20%{opacity:1;-moz-transform:translateX(-20px)}100%{opacity:0;-moz-transform:translateX(2000px)}}@-moz-keyframes flash{0%{opacity:1}25%{opacity:0}50%{opacity:1}75%{opacity:0}100%{opacity:1}}@-moz-keyframes bounce{0%{-moz-transform:translateY(0)}20%{-moz-transform:translateY(0)}40%{-moz-transform:translateY(-30px)}50%{-moz-transform:translateY(0)}60%{-moz-transform:translateY(-15px)}80%{-moz-transform:translateY(0)}100%{-moz-transform:translateY(0)}}@-moz-keyframes shake{0%{-moz-transform:translateX(0)}10%{-moz-transform:translateX(-10px)}20%{-moz-transform:translateX(10px)}30%{-moz-transform:translateX(-10px)}40%{-moz-transform:translateX(10px)}50%{-moz-transform:translateX(-10px)}60%{-moz-transform:translateX(10px)}70%{-moz-transform:translateX(-10px)}80%{-moz-transform:translateX(10px)}90%{-moz-transform:translateX(-10px)}100%{-moz-transform:translateX(0)}}@-moz-keyframes rotateInDownLeft{0%{-moz-transform-origin:left bottom;-moz-transform:rotate(-90deg);opacity:0}100%{-moz-transform-origin:left bottom;-moz-transform:rotate(0);opacity:1}}@-moz-keyframes rotateInUpLeft{0%{-moz-transform-origin:left bottom;-moz-transform:rotate(90deg);opacity:0}100%{-moz-transform-origin:left bottom;-moz-transform:rotate(0);opacity:1}}@-moz-keyframes rotateInUpRight{0%{-moz-transform-origin:right bottom;-moz-transform:rotate(-90deg);opacity:0}100%{-moz-transform-origin:right bottom;-moz-transform:rotate(0);opacity:1}}@-moz-keyframes rotateInDownRight{0%{-moz-transform-origin:right bottom;-moz-transform:rotate(90deg);opacity:0}100%{-moz-transform-origin:right bottom;-moz-transform:rotate(0);opacity:1}}@-moz-keyframes rotateOutDownLeft{0%{-moz-transform-origin:left bottom;-moz-transform:rotate(0);opacity:1}100%{-moz-transform-origin:left bottom;-moz-transform:rotate(90deg);opacity:0}}@-moz-keyframes rotateOutUpLeft{0%{-moz-transform-origin:left bottom;-moz-transform:rotate(0);opacity:1}100%{-moz-transform-origin:left bottom;-moz-transform:rotate(-90deg);opacity:0}}@-moz-keyframes rotateOutDownRight{0%{-moz-transform-origin:right bottom;-moz-transform:rotate(0);opacity:1}100%{-moz-transform-origin:right bottom;-moz-transform:rotate(-90deg);opacity:0}}@-moz-keyframes rotateOutUpRight{0%{-moz-transform-origin:right bottom;-moz-transform:rotate(0);opacity:1}100%{-moz-transform-origin:right bottom;-moz-transform:rotate(90deg);opacity:0}}@-moz-keyframes rotateIn{0%{-moz-transform-origin:center center;-moz-transform:rotate(-200deg);opacity:0}100%{-moz-transform-origin:center center;-moz-transform:rotate(0);opacity:1}}@-moz-keyframes rotateOut{0%{-moz-transform-origin:center center;-moz-transform:rotate(0);opacity:1}100%{-moz-transform-origin:center center;-moz-transform:rotate(200deg);opacity:0}}@-moz-keyframes tada{0%{-moz-transform:scale(1)}10%{-moz-transform:scale(.9) rotate(-3deg)}20%{-moz-transform:scale(.9) rotate(-3deg)}30%{-moz-transform:scale(1.1) rotate(3deg)}40%{-moz-transform:scale(1.1) rotate(-3deg)}50%{-moz-transform:scale(1.1) rotate(3deg)}60%{-moz-transform:scale(1.1) rotate(-3deg)}70%{-moz-transform:scale(1.1) rotate(3deg)}80%{-moz-transform:scale(1.1) rotate(-3deg)}90%{-moz-transform:scale(1.1) rotate(3deg)}100%{-moz-transform:scale(1) rotate(0)}}@-ms-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@-ms-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@-ms-keyframes fadeInUp{0%{opacity:0;-ms-transform:translateY(20px)}100%{opacity:1;-ms-transform:translateY(0)}}@-ms-keyframes fadeOutUp{0%{opacity:1;-ms-transform:translateY(0)}100%{opacity:0;-ms-transform:translateY(-20px)}}@-ms-keyframes fadeInDown{0%{opacity:0;-ms-transform:translateY(-20px)}100%{opacity:1;-ms-transform:translateY(0)}}@-ms-keyframes fadeOutDown{0%{opacity:1;-ms-transform:translateY(0)}100%{opacity:0;-ms-transform:translateY(20px)}}@-ms-keyframes fadeInRight{0%{opacity:0;-ms-transform:translateX(20px)}100%{opacity:1;-ms-transform:translateX(0)}}@-ms-keyframes fadeOutLeft{0%{opacity:1;-ms-transform:translateX(0)}100%{opacity:0;-ms-transform:translateX(-20px)}}@-ms-keyframes fadeInLeft{0%{opacity:0;-ms-transform:translateX(-20px)}100%{opacity:1;-ms-transform:translateX(0)}}@-ms-keyframes fadeOutRight{0%{opacity:1;-ms-transform:translateX(0)}100%{opacity:0;-ms-transform:translateX(20px)}}@-ms-keyframes fadeInUpBig{0%{opacity:0;-ms-transform:translateY(2000px)}100%{opacity:1;-ms-transform:translateY(0)}}@-ms-keyframes fadeOutUpBig{0%{opacity:1;-ms-transform:translateY(0)}100%{opacity:0;-ms-transform:translateY(-2000px)}}@-ms-keyframes fadeInDownBig{0%{opacity:0;-ms-transform:translateY(-2000px)}100%{opacity:1;-ms-transform:translateY(0)}}@-ms-keyframes fadeOutDownBig{0%{opacity:1;-ms-transform:translateY(0)}100%{opacity:0;-ms-transform:translateY(2000px)}}@-ms-keyframes fadeInRightBig{0%{opacity:0;-ms-transform:translateX(2000px)}100%{opacity:1;-ms-transform:translateX(0)}}@-ms-keyframes fadeOutLeftBig{0%{opacity:1;-ms-transform:translateX(0)}100%{opacity:0;-ms-transform:translateX(-2000px)}}@-ms-keyframes fadeInLeftBig{0%{opacity:0;-ms-transform:translateX(-2000px)}100%{opacity:1;-ms-transform:translateX(0)}}@-ms-keyframes fadeOutRightBig{0%{opacity:1;-ms-transform:translateX(0)}100%{opacity:0;-ms-transform:translateX(2000px)}}@-ms-keyframes bounceIn{0%{opacity:0;-ms-transform:scale(.3)}50%{opacity:1;-ms-transform:scale(1.05)}70%{-ms-transform:scale(.9)}100%{-ms-transform:scale(1)}}@-ms-keyframes bounceInDown{0%{opacity:0;-ms-transform:translateY(-2000px)}60%{opacity:1;-ms-transform:translateY(30px)}80%{-ms-transform:translateY(-10px)}100%{-ms-transform:translateY(0)}}@-ms-keyframes bounceInUp{0%{opacity:0;-ms-transform:translateY(2000px)}60%{opacity:1;-ms-transform:translateY(-30px)}80%{-ms-transform:translateY(10px)}100%{-ms-transform:translateY(0)}}@-ms-keyframes bounceInRight{0%{opacity:0;-ms-transform:translateX(2000px)}60%{opacity:1;-ms-transform:translateX(-30px)}80%{-ms-transform:translateX(10px)}100%{-ms-transform:translateX(0)}}@-ms-keyframes bounceInLeft{0%{opacity:0;-ms-transform:translateX(-2000px)}60%{opacity:1;-ms-transform:translateX(30px)}80%{-ms-transform:translateX(-10px)}100%{-ms-transform:translateX(0)}}@-ms-keyframes bounceOut{0%{-ms-transform:scale(1)}25%{-ms-transform:scale(.95)}50%{opacity:1;-ms-transform:scale(1.1)}100%{opacity:0;-ms-transform:scale(.3)}}@-ms-keyframes bounceOutUp{0%{-ms-transform:translateY(0)}20%{opacity:1;-ms-transform:translateY(20px)}100%{opacity:0;-ms-transform:translateY(-2000px)}}@-ms-keyframes bounceOutDown{0%{-ms-transform:translateY(0)}20%{opacity:1;-ms-transform:translateY(-20px)}100%{opacity:0;-ms-transform:translateY(2000px)}}@-ms-keyframes bounceOutLeft{0%{-ms-transform:translateX(0)}20%{opacity:1;-ms-transform:translateX(20px)}100%{opacity:0;-ms-transform:translateX(-2000px)}}@-ms-keyframes bounceOutRight{0%{-ms-transform:translateX(0)}20%{opacity:1;-ms-transform:translateX(-20px)}100%{opacity:0;-ms-transform:translateX(2000px)}}@-ms-keyframes flash{0%{opacity:1}25%{opacity:0}50%{opacity:1}75%{opacity:0}100%{opacity:1}}@-ms-keyframes bounce{0%{-ms-transform:translateY(0)}20%{-ms-transform:translateY(0)}40%{-ms-transform:translateY(-30px)}50%{-ms-transform:translateY(0)}60%{-ms-transform:translateY(-15px)}80%{-ms-transform:translateY(0)}100%{-ms-transform:translateY(0)}}@-ms-keyframes shake{0%{-ms-transform:translateX(0)}10%{-ms-transform:translateX(-10px)}20%{-ms-transform:translateX(10px)}30%{-ms-transform:translateX(-10px)}40%{-ms-transform:translateX(10px)}50%{-ms-transform:translateX(-10px)}60%{-ms-transform:translateX(10px)}70%{-ms-transform:translateX(-10px)}80%{-ms-transform:translateX(10px)}90%{-ms-transform:translateX(-10px)}100%{-ms-transform:translateX(0)}}@-ms-keyframes rotateInDownLeft{0%{-ms-transform-origin:left bottom;-ms-transform:rotate(-90deg);opacity:0}100%{-ms-transform-origin:left bottom;-ms-transform:rotate(0);opacity:1}}@-ms-keyframes rotateInUpLeft{0%{-ms-transform-origin:left bottom;-ms-transform:rotate(90deg);opacity:0}100%{-ms-transform-origin:left bottom;-ms-transform:rotate(0);opacity:1}}@-ms-keyframes rotateInUpRight{0%{-ms-transform-origin:right bottom;-ms-transform:rotate(-90deg);opacity:0}100%{-ms-transform-origin:right bottom;-ms-transform:rotate(0);opacity:1}}@-ms-keyframes rotateInDownRight{0%{-ms-transform-origin:right bottom;-ms-transform:rotate(90deg);opacity:0}100%{-ms-transform-origin:right bottom;-ms-transform:rotate(0);opacity:1}}@-ms-keyframes rotateOutDownLeft{0%{-ms-transform-origin:left bottom;-ms-transform:rotate(0);opacity:1}100%{-ms-transform-origin:left bottom;-ms-transform:rotate(90deg);opacity:0}}@-ms-keyframes rotateOutUpLeft{0%{-ms-transform-origin:left bottom;-ms-transform:rotate(0);opacity:1}100%{-ms-transform-origin:left bottom;-ms-transform:rotate(-90deg);opacity:0}}@-ms-keyframes rotateOutDownRight{0%{-ms-transform-origin:right bottom;-ms-transform:rotate(0);opacity:1}100%{-ms-transform-origin:right bottom;-ms-transform:rotate(-90deg);opacity:0}}@-ms-keyframes rotateOutUpRight{0%{-ms-transform-origin:right bottom;-ms-transform:rotate(0);opacity:1}100%{-ms-transform-origin:right bottom;-ms-transform:rotate(90deg);opacity:0}}@-ms-keyframes rotateIn{0%{-ms-transform-origin:center center;-ms-transform:rotate(-200deg);opacity:0}100%{-ms-transform-origin:center center;-ms-transform:rotate(0);opacity:1}}@-ms-keyframes rotateOut{0%{-ms-transform-origin:center center;-ms-transform:rotate(0);opacity:1}100%{-ms-transform-origin:center center;-ms-transform:rotate(200deg);opacity:0}}@-ms-keyframes tada{0%{-ms-transform:scale(1)}10%{-ms-transform:scale(.9) rotate(-3deg)}20%{-ms-transform:scale(.9) rotate(-3deg)}30%{-ms-transform:scale(1.1) rotate(3deg)}40%{-ms-transform:scale(1.1) rotate(-3deg)}50%{-ms-transform:scale(1.1) rotate(3deg)}60%{-ms-transform:scale(1.1) rotate(-3deg)}70%{-ms-transform:scale(1.1) rotate(3deg)}80%{-ms-transform:scale(1.1) rotate(-3deg)}90%{-ms-transform:scale(1.1) rotate(3deg)}100%{-ms-transform:scale(1) rotate(0)}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}100%{opacity:1;transform:translateY(0)}}@keyframes fadeOutUp{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-20px)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}100%{opacity:1;transform:translateY(0)}}@keyframes fadeOutDown{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(20px)}}@keyframes fadeInRight{0%{opacity:0;transform:translateX(20px)}100%{opacity:1;transform:translateX(0)}}@keyframes fadeOutLeft{0%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(-20px)}}@keyframes fadeInLeft{0%{opacity:0;transform:translateX(-20px)}100%{opacity:1;transform:translateX(0)}}@keyframes fadeOutRight{0%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(20px)}}@keyframes fadeInUpBig{0%{opacity:0;transform:translateY(2000px)}100%{opacity:1;transform:translateY(0)}}@keyframes fadeOutUpBig{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-2000px)}}@keyframes fadeInDownBig{0%{opacity:0;transform:translateY(-2000px)}100%{opacity:1;transform:translateY(0)}}@keyframes fadeOutDownBig{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(2000px)}}@keyframes fadeInRightBig{0%{opacity:0;transform:translateX(2000px)}100%{opacity:1;transform:translateX(0)}}@keyframes fadeOutLeftBig{0%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(-2000px)}}@keyframes fadeInLeftBig{0%{opacity:0;transform:translateX(-2000px)}100%{opacity:1;transform:translateX(0)}}@keyframes fadeOutRightBig{0%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(2000px)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}100%{transform:scale(1)}}@keyframes bounceInDown{0%{opacity:0;transform:translateY(-2000px)}60%{opacity:1;transform:translateY(30px)}80%{transform:translateY(-10px)}100%{transform:translateY(0)}}@keyframes bounceInUp{0%{opacity:0;transform:translateY(2000px)}60%{opacity:1;transform:translateY(-30px)}80%{transform:translateY(10px)}100%{transform:translateY(0)}}@keyframes bounceInRight{0%{opacity:0;transform:translateX(2000px)}60%{opacity:1;transform:translateX(-30px)}80%{transform:translateX(10px)}100%{transform:translateX(0)}}@keyframes bounceInLeft{0%{opacity:0;transform:translateX(-2000px)}60%{opacity:1;transform:translateX(30px)}80%{transform:translateX(-10px)}100%{transform:translateX(0)}}@keyframes bounceOut{0%{transform:scale(1)}25%{transform:scale(.95)}50%{opacity:1;transform:scale(1.1)}100%{opacity:0;transform:scale(.3)}}@keyframes bounceOutUp{0%{transform:translateY(0)}20%{opacity:1;transform:translateY(20px)}100%{opacity:0;transform:translateY(-2000px)}}@keyframes bounceOutDown{0%{transform:translateY(0)}20%{opacity:1;transform:translateY(-20px)}100%{opacity:0;transform:translateY(2000px)}}@keyframes bounceOutLeft{0%{transform:translateX(0)}20%{opacity:1;transform:translateX(20px)}100%{opacity:0;transform:translateX(-2000px)}}@keyframes bounceOutRight{0%{transform:translateX(0)}20%{opacity:1;transform:translateX(-20px)}100%{opacity:0;transform:translateX(2000px)}}@keyframes flash{0%{opacity:1}25%{opacity:0}50%{opacity:1}75%{opacity:0}100%{opacity:1}}@keyframes bounce{0%{transform:translateY(0)}20%{transform:translateY(0)}40%{transform:translateY(-30px)}50%{transform:translateY(0)}60%{transform:translateY(-15px)}80%{transform:translateY(0)}100%{transform:translateY(0)}}@keyframes shake{0%{transform:translateX(0)}10%{transform:translateX(-10px)}20%{transform:translateX(10px)}30%{transform:translateX(-10px)}40%{transform:translateX(10px)}50%{transform:translateX(-10px)}60%{transform:translateX(10px)}70%{transform:translateX(-10px)}80%{transform:translateX(10px)}90%{transform:translateX(-10px)}100%{transform:translateX(0)}}@keyframes rotateInDownLeft{0%{transform-origin:left bottom;transform:rotate(-90deg);opacity:0}100%{transform-origin:left bottom;transform:rotate(0);opacity:1}}@keyframes rotateInUpLeft{0%{transform-origin:left bottom;transform:rotate(90deg);opacity:0}100%{transform-origin:left bottom;transform:rotate(0);opacity:1}}@keyframes rotateInUpRight{0%{transform-origin:right bottom;transform:rotate(-90deg);opacity:0}100%{transform-origin:right bottom;transform:rotate(0);opacity:1}}@keyframes rotateInDownRight{0%{transform-origin:right bottom;transform:rotate(90deg);opacity:0}100%{transform-origin:right bottom;transform:rotate(0);opacity:1}}@keyframes rotateOutDownLeft{0%{transform-origin:left bottom;transform:rotate(0);opacity:1}100%{transform-origin:left bottom;transform:rotate(90deg);opacity:0}}@keyframes rotateOutUpLeft{0%{transform-origin:left bottom;transform:rotate(0);opacity:1}100%{transform-origin:left bottom;transform:rotate(-90deg);opacity:0}}@keyframes rotateOutDownRight{0%{transform-origin:right bottom;transform:rotate(0);opacity:1}100%{transform-origin:right bottom;transform:rotate(-90deg);opacity:0}}@keyframes rotateOutUpRight{0%{transform-origin:right bottom;transform:rotate(0);opacity:1}100%{transform-origin:right bottom;transform:rotate(90deg);opacity:0}}@keyframes rotateIn{0%{transform-origin:center center;transform:rotate(-200deg);opacity:0}100%{transform-origin:center center;transform:rotate(0);opacity:1}}@keyframes rotateOut{0%{transform-origin:center center;transform:rotate(0);opacity:1}100%{transform-origin:center center;transform:rotate(200deg);opacity:0}}@keyframes tada{0%{transform:scale(1)}10%{transform:scale(.9) rotate(-3deg)}20%{transform:scale(.9) rotate(-3deg)}30%{transform:scale(1.1) rotate(3deg)}40%{transform:scale(1.1) rotate(-3deg)}50%{transform:scale(1.1) rotate(3deg)}60%{transform:scale(1.1) rotate(-3deg)}70%{transform:scale(1.1) rotate(3deg)}80%{transform:scale(1.1) rotate(-3deg)}90%{transform:scale(1.1) rotate(3deg)}100%{transform:scale(1) rotate(0)}}/*! * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) */@font-face{font-family:'FontAwesome';src:url("../fonts/fontawesome-webfont.eot?v=4.3.0");src:url("../fonts/fontawesome-webfont.eot?#iefix&v=4.3.0") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff2?v=4.3.0") format("woff2"),url("../fonts/fontawesome-webfont.woff?v=4.3.0") format("woff"),url("../fonts/fontawesome-webfont.ttf?v=4.3.0") format("truetype"),url("../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.icon,.page-sidebar-closed:not(.nav-topbar):not(.mobile-nav) .searchtab:before,[class^="icon-"],[class^="process-icon-"],.bootstrap .alert.alert-warning:before,.bootstrap .alert.alert-danger:before,.bootstrap #carrier_wizard .wizard_error:before,.bootstrap .alert.alert-success:before,.bootstrap .alert.alert-info:before,.bootstrap .alert.alert-addons:before,.bootstrap .alert.alert-onboarding:before,.bootstrap .alert.alert-message:before,.bootstrap .table td.dragHandle .dragGroup:before,.bootstrap #dashboard .loading .data_value:before,.bootstrap #employee-thumbnail:before,.mce-ico,.chosen-container-single .chosen-single div b,.chosen-container-single .chosen-search:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0)}.icon-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.icon-2x,.page-sidebar-closed:not(.nav-topbar):not(.mobile-nav) .searchtab:before,[class^="icon-Admin"],[class^="process-icon-"]{font-size:2em}.icon-3x,.bootstrap .alert.alert-warning:before,.bootstrap .alert.alert-danger:before,.bootstrap #carrier_wizard .wizard_error:before,.bootstrap .alert.alert-success:before,.bootstrap .alert.alert-info:before,.bootstrap .alert.alert-addons:before,.bootstrap .alert.alert-onboarding:before,.bootstrap .alert.alert-message:before{font-size:3em}.icon-4x{font-size:4em}.icon-5x{font-size:5em}.icon-fw,[class^="icon-Admin"],[class^="process-icon-"]{width:1.28571em;text-align:center}.icon-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.icon-ul>li{position:relative}.icon-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.icon-li.icon-lg{left:-1.85714em}.icon-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.icon.pull-left,.page-sidebar-closed:not(.nav-topbar):not(.mobile-nav) .pull-left.searchtab:before,.pull-left[class^="icon-"],.pull-left[class^="process-icon-"],.bootstrap .pull-left.alert.alert-warning:before,.bootstrap .pull-left.alert.alert-danger:before,.bootstrap #carrier_wizard .pull-left.wizard_error:before,.bootstrap .pull-left.alert.alert-success:before,.bootstrap .pull-left.alert.alert-info:before,.bootstrap .pull-left.alert.alert-addons:before,.bootstrap .pull-left.alert.alert-onboarding:before,.bootstrap .pull-left.alert.alert-message:before,.bootstrap .table td.dragHandle .pull-left.dragGroup:before,.bootstrap #dashboard .loading .pull-left.data_value:before,.bootstrap .pull-left#employee-thumbnail:before,.pull-left.mce-ico,.chosen-container-single .chosen-single div b.pull-left,.chosen-container-single .pull-left.chosen-search:before{margin-right:.3em}.icon.pull-right,.page-sidebar-closed:not(.nav-topbar):not(.mobile-nav) .pull-right.searchtab:before,.pull-right[class^="icon-"],.pull-right[class^="process-icon-"],.bootstrap .pull-right.alert.alert-warning:before,.bootstrap .pull-right.alert.alert-danger:before,.bootstrap #carrier_wizard .pull-right.wizard_error:before,.bootstrap .pull-right.alert.alert-success:before,.bootstrap .pull-right.alert.alert-info:before,.bootstrap .pull-right.alert.alert-addons:before,.bootstrap .pull-right.alert.alert-onboarding:before,.bootstrap .pull-right.alert.alert-message:before,.bootstrap .table td.dragHandle .pull-right.dragGroup:before,.bootstrap #dashboard .loading .pull-right.data_value:before,.bootstrap .pull-right#employee-thumbnail:before,.pull-right.mce-ico,.chosen-container-single .chosen-single div b.pull-right,.chosen-container-single .pull-right.chosen-search:before{margin-left:.3em}.icon-spin,#content .process-icon-loading,.bootstrap #dashboard .loading .data_value:before,.bootstrap #employee-thumbnail:before{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.icon-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.icon-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.icon-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.icon-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.icon-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.icon-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .icon-rotate-90,:root .icon-rotate-180,:root .icon-rotate-270,:root .icon-flip-horizontal,:root .icon-flip-vertical{filter:none}.icon-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.icon-stack-1x,.icon-stack-2x{position:absolute;left:0;width:100%;text-align:center}.icon-stack-1x{line-height:inherit}.icon-stack-2x{font-size:2em}.icon-inverse{color:#fff}.icon-glass:before{content:""}.icon-music:before{content:""}.icon-search:before,.page-sidebar-closed:not(.nav-topbar):not(.mobile-nav) .searchtab:before,.icon-AdminSearch:before,.chosen-container-single .chosen-search:before{content:""}.icon-envelope-o:before,.icon-envelope-alt:before,#content .process-icon-envelope:before{content:""}.icon-heart:before{content:""}.icon-star:before{content:""}.icon-star-o:before,.icon-star-empty:before{content:""}.icon-user:before{content:""}.icon-film:before{content:""}.icon-th-large:before{content:""}.icon-th:before{content:""}.icon-th-list:before{content:""}.icon-check:before,#content .process-icon-ok:before{content:""}.icon-remove:before,#content .process-icon-cancel:before,.icon-close:before,.icon-times:before,.icon-remove:before,#content .process-icon-cancel:before{content:""}.icon-search-plus:before,.icon-zoom-in:before{content:""}.icon-search-minus:before,.icon-zoom-out:before{content:""}.icon-power-off:before,.icon-off:before,#content .process-icon-off:before,#content .process-icon-power:before{content:""}.icon-signal:before{content:""}.icon-gear:before,.icon-cog:before,.icon-AdminAdmin:before,#content .process-icon-configure:before{content:""}.icon-trash-o:before,.icon-trash:before,#content .process-icon-delete:before,#content .process-icon-uninstall:before{content:""}.icon-home:before{content:""}.icon-file-o:before,.icon-file-alt:before{content:""}.icon-clock-o:before,.icon-time:before{content:""}.icon-road:before{content:""}.icon-download:before,.icon-download-alt:before,#content .process-icon-download-alt:before,#content .process-icon-save-date:before,#content .process-icon-save-status:before{content:""}.icon-arrow-circle-o-down:before,.icon-download:before,.icon-download-alt:before,#content .process-icon-download-alt:before,#content .process-icon-save-date:before,#content .process-icon-save-status:before{content:""}.icon-arrow-circle-o-up:before,.icon-upload:before,.icon-upload-alt:before{content:""}.icon-inbox:before{content:""}.icon-play-circle-o:before,.icon-play-circle:before,.icon-play-sign:before{content:""}.icon-rotate-right:before,.icon-repeat:before{content:""}.icon-refresh:before,#content .process-icon-update:before,#content .process-icon-refresh:before,.bootstrap #dashboard .loading .data_value:before,.bootstrap #employee-thumbnail:before{content:""}.icon-list-alt:before{content:""}.icon-lock:before,#content .process-icon-lock:before{content:""}.icon-flag:before{content:""}.icon-headphones:before{content:""}.icon-volume-off:before{content:""}.icon-volume-down:before{content:""}.icon-volume-up:before{content:""}.icon-qrcode:before{content:""}.icon-barcode:before{content:""}.icon-tag:before{content:""}.icon-tags:before,.icon-AdminPriceRule:before{content:""}.icon-book:before,.icon-AdminCatalog:before{content:""}.icon-bookmark:before{content:""}.icon-print:before{content:""}.icon-camera:before{content:""}.icon-font:before{content:""}.icon-bold:before{content:""}.icon-italic:before{content:""}.icon-text-height:before{content:""}.icon-text-width:before{content:""}.icon-align-left:before{content:""}.icon-align-center:before{content:""}.icon-align-right:before{content:""}.icon-align-justify:before{content:""}.icon-list:before{content:""}.icon-dedent:before,.icon-outdent:before,.icon-indent-left:before{content:""}.icon-indent:before,.icon-indent-right:before{content:""}.icon-video-camera:before,.icon-facetime-video:before{content:""}.icon-photo:before,.icon-image:before,.icon-picture-o:before,.icon-picture:before{content:""}.icon-pencil:before{content:""}.icon-map-marker:before{content:""}.icon-adjust:before{content:""}.icon-tint:before{content:""}.icon-edit:before,#content .process-icon-edit:before,.icon-pencil-square-o:before,.icon-edit:before,#content .process-icon-edit:before{content:""}.icon-share-square-o:before,.icon-share:before,.icon-share-alt:before{content:""}.icon-check-square-o:before{content:""}.icon-arrows:before,.icon-move:before,.bootstrap .table td.dragHandle .dragGroup:before{content:""}.icon-step-backward:before{content:""}.icon-fast-backward:before{content:""}.icon-backward:before{content:""}.icon-play:before{content:""}.icon-pause:before{content:""}.icon-stop:before{content:""}.icon-forward:before{content:""}.icon-fast-forward:before{content:""}.icon-step-forward:before{content:""}.icon-eject:before{content:""}.icon-chevron-left:before{content:""}.icon-chevron-right:before{content:""}.icon-plus-circle:before,.icon-plus-sign:before,#content .process-icon-newAttributes:before,#content .process-icon-new:before,#content .process-icon-new-url:before,#content .process-icon-newCombination.toolbar-new:before,#content .process-icon-plus:before{content:""}.icon-minus-circle:before,.icon-minus-sign:before,#content .process-icon-newCombination.toolbar-cancel:before,#content .process-icon-minus:before{content:""}.icon-times-circle:before,.icon-remove-sign:before,#content .process-icon-close:before{content:""}.icon-check-circle:before,.icon-ok-sign:before,.bootstrap .alert.alert-success:before,.bootstrap #carrier_wizard .alert-success.wizard_error:before{content:""}.icon-question-circle:before,.icon-question-sign:before,#content .process-icon-help-new:before,#content .process-icon-help:before,.bootstrap .alert.alert-info:before,.bootstrap #carrier_wizard .alert-info.wizard_error:before{content:""}.icon-info-circle:before,.icon-info-sign:before{content:""}.icon-crosshairs:before,.icon-screenshot:before{content:""}.icon-times-circle-o:before,.icon-remove-circle:before{content:""}.icon-check-circle-o:before,.icon-ok-circle:before{content:""}.icon-ban:before{content:""}.icon-arrow-left:before{content:""}.icon-arrow-right:before{content:""}.icon-arrow-up:before{content:""}.icon-arrow-down:before{content:""}.icon-mail-forward:before,.icon-share:before,.icon-share-alt:before{content:""}.icon-expand:before,.icon-resize-full:before,#content .process-icon-expand:before{content:""}.icon-compress:before,.icon-resize-small:before,#content .process-icon-compress:before{content:""}.icon-plus:before,#content .process-icon-new-module:before{content:""}.icon-minus:before{content:""}.icon-asterisk:before{content:""}.icon-exclamation-circle:before,.icon-exclamation-sign:before,.bootstrap .alert.alert-warning:before,.bootstrap #carrier_wizard .alert-warning.wizard_error:before{content:""}.icon-gift:before{content:""}.icon-leaf:before{content:""}.icon-fire:before{content:""}.icon-eye:before,.icon-eye-open:before,#content .process-icon-preview:before,#content .process-icon-previewURL:before{content:""}.icon-eye-slash:before,.icon-eye-close:before{content:""}.icon-warning:before,.icon-exclamation-triangle:before,.icon-warning-sign:before,.bootstrap .alert.alert-danger:before,.bootstrap #carrier_wizard .wizard_error:before{content:""}.icon-plane:before{content:""}.icon-calendar:before{content:""}.icon-random:before{content:""}.icon-comment:before,.bootstrap .alert.alert-message:before,.bootstrap #carrier_wizard .alert-message.wizard_error:before{content:""}.icon-magnet:before{content:""}.icon-chevron-up:before{content:""}.icon-chevron-down:before{content:""}.icon-retweet:before{content:""}.icon-shopping-cart:before,#content .process-icon-cart:before{content:""}.icon-folder:before,.icon-folder-close:before{content:""}.icon-folder-open:before{content:""}.icon-arrows-v:before,.icon-resize-vertical:before{content:""}.icon-arrows-h:before,.icon-resize-horizontal:before{content:""}.icon-bar-chart-o:before,.icon-bar-chart:before,.icon-AdminStats:before,#content .process-icon-stats:before,.icon-bar-chart:before,.icon-AdminStats:before,#content .process-icon-stats:before{content:""}.icon-twitter-square:before,.icon-twitter-sign:before{content:""}.icon-facebook-square:before,.icon-facebook-sign:before{content:""}.icon-camera-retro:before{content:""}.icon-key:before{content:""}.icon-gears:before,.icon-cogs:before,.icon-AdminTools:before,#content .process-icon-cogs:before{content:""}.icon-comments:before{content:""}.icon-thumbs-o-up:before,.icon-thumbs-up-alt:before{content:""}.icon-thumbs-o-down:before,.icon-thumbs-down-alt:before{content:""}.icon-star-half:before{content:""}.icon-heart-o:before,.icon-heart-empty:before{content:""}.icon-sign-out:before,.icon-signout:before{content:""}.icon-linkedin-square:before,.icon-linkedin-sign:before{content:""}.icon-thumb-tack:before,.icon-pushpin:before{content:""}.icon-external-link:before{content:""}.icon-sign-in:before,.icon-signin:before{content:""}.icon-trophy:before{content:""}.icon-github-square:before,.icon-github-sign:before{content:""}.icon-upload:before,.icon-upload-alt:before{content:""}.icon-lemon-o:before,.icon-lemon:before{content:""}.icon-phone:before{content:""}.icon-square-o:before,.icon-check-empty:before{content:""}.icon-bookmark-o:before,.icon-bookmark-empty:before{content:""}.icon-phone-square:before,.icon-phone-sign:before{content:""}.icon-twitter:before{content:""}.icon-facebook-f:before,.icon-facebook:before{content:""}.icon-github:before{content:""}.icon-unlock:before{content:""}.icon-credit-card:before,.icon-AdminParentOrders:before,#content .process-icon-payment:before{content:""}.icon-rss:before{content:""}.icon-hdd-o:before,.icon-hdd:before{content:""}.icon-bullhorn:before{content:""}.icon-bell:before,.icon-bell-alt:before{content:""}.icon-certificate:before{content:""}.icon-hand-o-right:before,.icon-hand-right:before{content:""}.icon-hand-o-left:before,.icon-hand-left:before{content:""}.icon-hand-o-up:before,.icon-hand-up:before{content:""}.icon-hand-o-down:before,.icon-hand-down:before{content:""}.icon-arrow-circle-left:before,.icon-circle-arrow-left:before,#content .process-icon-back:before{content:""}.icon-arrow-circle-right:before,.icon-circle-arrow-right:before,#content .process-icon-next:before{content:""}.icon-arrow-circle-up:before,.icon-circle-arrow-up:before{content:""}.icon-arrow-circle-down:before,.icon-circle-arrow-down:before{content:""}.icon-globe:before,.icon-AdminParentLocalization:before{content:""}.icon-wrench:before,.icon-AdminParentPreferences:before{content:""}.icon-tasks:before{content:""}.icon-filter:before{content:""}.icon-briefcase:before{content:""}.icon-arrows-alt:before,.icon-fullscreen:before{content:""}.icon-group:before,.icon-AdminParentCustomer:before,.icon-users:before,.icon-group:before,.icon-AdminParentCustomer:before{content:""}.icon-chain:before,.icon-link:before,.icon-AdminShopUrl:before{content:""}.icon-cloud:before{content:""}.icon-flask:before,.icon-beaker:before{content:""}.icon-cut:before,.icon-scissors:before,.icon-cut:before{content:""}.icon-copy:before,#content .process-icon-duplicate:before,.icon-files-o:before,.icon-copy:before,#content .process-icon-duplicate:before{content:""}.icon-paperclip:before,.icon-paper-clip:before{content:""}.icon-save:before,#content .process-icon-save:before,#content .process-icon-save-and-stay:before,#content .process-icon-save-and-preview:before,.icon-floppy-o:before,.icon-save:before,#content .process-icon-save:before,#content .process-icon-save-and-stay:before,#content .process-icon-save-and-preview:before{content:""}.icon-square:before,.icon-sign-blank:before{content:""}.icon-navicon:before,.icon-reorder:before,.icon-bars:before,.icon-reorder:before{content:""}.icon-list-ul:before{content:""}.icon-list-ol:before{content:""}.icon-strikethrough:before{content:""}.icon-underline:before{content:""}.icon-table:before{content:""}.icon-magic:before,.icon-AdminAttributeGenerator:before{content:""}.icon-truck:before,.icon-AdminParentShipping:before{content:""}.icon-pinterest:before{content:""}.icon-pinterest-square:before,.icon-pinterest-sign:before{content:""}.icon-google-plus-square:before,.icon-google-plus-sign:before{content:""}.icon-google-plus:before{content:""}.icon-money:before{content:""}.icon-caret-down:before,#content .process-icon-dropdown:before,.chosen-container-single .chosen-single div b:before{content:""}.icon-caret-up:before{content:""}.icon-caret-left:before{content:""}.icon-caret-right:before{content:""}.icon-columns:before{content:""}.icon-unsorted:before,.icon-sort:before{content:""}.icon-sort-down:before,.icon-sort-desc:before,.icon-sort-up:before{content:""}.icon-sort-up:before,.icon-sort-asc:before,.icon-sort-down:before{content:""}.icon-envelope:before{content:""}.icon-linkedin:before{content:""}.icon-rotate-left:before,#content .process-icon-reset:before,.icon-undo:before{content:""}.icon-legal:before,.icon-gavel:before,.icon-legal:before{content:""}.icon-dashboard:before,.icon-AdminDashboard:before,.icon-tachometer:before,.icon-dashboard:before,.icon-AdminDashboard:before{content:""}.icon-comment-o:before,.icon-comment-alt:before{content:""}.icon-comments-o:before,.icon-comments-alt:before{content:""}.icon-flash:before,.icon-AdminFlash:before,.icon-bolt:before{content:""}.icon-sitemap:before,.icon-AdminShop:before{content:""}.icon-umbrella:before{content:""}.icon-paste:before,.icon-clipboard:before,.icon-paste:before{content:""}.icon-lightbulb-o:before,.icon-lightbulb:before{content:""}.icon-exchange:before,#content .process-icon-partial_refund:before{content:""}.icon-cloud-download:before,#content .process-icon-download:before{content:""}.icon-cloud-upload:before,#content .process-icon-import:before,#content .process-icon-upload:before{content:""}.icon-user-md:before{content:""}.icon-stethoscope:before{content:""}.icon-suitcase:before{content:""}.icon-bell-o:before,.icon-bell:before,.icon-bell-alt:before{content:""}.icon-coffee:before{content:""}.icon-cutlery:before,.icon-food:before{content:""}.icon-file-text-o:before,.icon-file-text-alt:before{content:""}.icon-building-o:before,.icon-building:before{content:""}.icon-hospital-o:before,.icon-hospital:before{content:""}.icon-ambulance:before{content:""}.icon-medkit:before{content:""}.icon-fighter-jet:before{content:""}.icon-beer:before{content:""}.icon-h-square:before,.icon-h-sign:before{content:""}.icon-plus-square:before,.icon-plus-sign-alt:before{content:""}.icon-angle-double-left:before,.icon-double-angle-left:before{content:""}.icon-angle-double-right:before,.icon-double-angle-right:before{content:""}.icon-angle-double-up:before,.icon-double-angle-up:before{content:""}.icon-angle-double-down:before,.icon-double-angle-down:before{content:""}.icon-angle-left:before{content:""}.icon-angle-right:before{content:""}.icon-angle-up:before{content:""}.icon-angle-down:before{content:""}.icon-desktop:before{content:""}.icon-laptop:before{content:""}.icon-tablet:before{content:""}.icon-mobile-phone:before,.icon-mobile:before,.icon-mobile-phone:before{content:""}.icon-circle-o:before,.icon-circle-blank:before{content:""}.icon-quote-left:before{content:""}.icon-quote-right:before{content:""}.icon-spinner:before{content:""}.icon-circle:before{content:""}.icon-mail-reply:before,#content .process-icon-mail-reply:before,.icon-reply:before{content:""}.icon-github-alt:before{content:""}.icon-folder-o:before,.icon-folder-close-alt:before{content:""}.icon-folder-open-o:before,.icon-folder-open-alt:before{content:""}.icon-smile-o:before,.icon-smile:before{content:""}.icon-frown-o:before,.icon-frown:before{content:""}.icon-meh-o:before,.icon-meh:before{content:""}.icon-gamepad:before{content:""}.icon-keyboard-o:before,.icon-keyboard:before{content:""}.icon-flag-o:before,.icon-flag-alt:before,#content .process-icon-flag:before{content:""}.icon-flag-checkered:before{content:""}.icon-terminal:before,#content .process-icon-terminal:before{content:""}.icon-code:before{content:""}.icon-mail-reply-all:before,.icon-reply-all:before,#content .process-icon-reply-all:before{content:""}.icon-star-half-empty:before,.icon-star-half-full:before,.icon-star-half-o:before,.icon-star-half-empty:before{content:""}.icon-location-arrow:before{content:""}.icon-crop:before{content:""}.icon-code-fork:before{content:""}.icon-unlink:before,.icon-chain-broken:before,.icon-unlink:before{content:""}.icon-question:before{content:""}.icon-info:before{content:""}.icon-exclamation:before{content:""}.icon-superscript:before{content:""}.icon-subscript:before{content:""}.icon-eraser:before,#content .process-icon-eraser:before{content:""}.icon-puzzle-piece:before,.icon-AdminParentModules:before,#content .process-icon-modules-list:before,#content .process-icon-puzzle-piece:before,.bootstrap .alert.alert-addons:before,.bootstrap #carrier_wizard .alert-addons.wizard_error:before{content:""}.icon-microphone:before{content:""}.icon-microphone-slash:before,.icon-microphone-off:before{content:""}.icon-shield:before{content:""}.icon-calendar-o:before,.icon-calendar-empty:before{content:""}.icon-fire-extinguisher:before{content:""}.icon-rocket:before,.bootstrap .alert.alert-onboarding:before,.bootstrap #carrier_wizard .alert-onboarding.wizard_error:before{content:""}.icon-maxcdn:before{content:""}.icon-chevron-circle-left:before,.icon-chevron-sign-left:before{content:""}.icon-chevron-circle-right:before,.icon-chevron-sign-right:before{content:""}.icon-chevron-circle-up:before,.icon-chevron-sign-up:before{content:""}.icon-chevron-circle-down:before,.icon-chevron-sign-down:before{content:""}.icon-html5:before,#content .process-icon-themes:before{content:""}.icon-css3:before{content:""}.icon-anchor:before,#content .process-icon-anchor:before{content:""}.icon-unlock-alt:before{content:""}.icon-bullseye:before{content:""}.icon-ellipsis-h:before,.icon-ellipsis-horizontal:before{content:""}.icon-ellipsis-v:before,.icon-ellipsis-vertical:before{content:""}.icon-rss-square:before,.icon-rss-sign:before{content:""}.icon-play-circle:before,.icon-play-sign:before{content:""}.icon-ticket:before{content:""}.icon-minus-square:before,.icon-minus-sign-alt:before{content:""}.icon-minus-square-o:before,.icon-check-minus:before,.icon-collapse-alt:before{content:""}.icon-level-up:before{content:""}.icon-level-down:before{content:""}.icon-check-square:before,.icon-check-sign:before{content:""}.icon-pencil-square:before,.icon-edit-sign:before{content:""}.icon-external-link-square:before,.icon-external-link-sign:before{content:""}.icon-share-square:before,.icon-share-sign:before,#content .process-icon-export:before{content:""}.icon-compass:before{content:""}.icon-toggle-down:before,.icon-caret-square-o-down:before,.icon-collapse:before{content:""}.icon-toggle-up:before,.icon-caret-square-o-up:before,.icon-collapse-top:before{content:""}.icon-toggle-right:before,.icon-caret-square-o-right:before{content:""}.icon-euro:before,.icon-eur:before{content:""}.icon-gbp:before{content:""}.icon-dollar:before,.icon-usd:before{content:""}.icon-rupee:before,.icon-inr:before{content:""}.icon-cny:before,.icon-rmb:before,.icon-yen:before,.icon-jpy:before{content:""}.icon-ruble:before,.icon-rouble:before,.icon-rub:before,.icon-cny:before{content:""}.icon-won:before,.icon-krw:before{content:""}.icon-bitcoin:before,.icon-btc:before{content:""}.icon-file:before{content:""}.icon-file-text:before{content:""}.icon-sort-alpha-asc:before,.icon-sort-by-alphabet:before{content:""}.icon-sort-alpha-desc:before,.icon-sort-by-alphabet-alt:before{content:""}.icon-sort-amount-asc:before,.icon-sort-by-attributes:before{content:""}.icon-sort-amount-desc:before,.icon-sort-by-attributes-alt:before{content:""}.icon-sort-numeric-asc:before,.icon-sort-by-order:before{content:""}.icon-sort-numeric-desc:before,.icon-sort-by-order-alt:before{content:""}.icon-thumbs-up:before{content:""}.icon-thumbs-down:before{content:""}.icon-youtube-square:before,.icon-youtube-sign:before{content:""}.icon-youtube:before{content:""}.icon-xing:before{content:""}.icon-xing-square:before,.icon-xing-sign:before{content:""}.icon-youtube-play:before{content:""}.icon-dropbox:before{content:""}.icon-stack-overflow:before,.icon-stackexchange:before{content:""}.icon-instagram:before{content:""}.icon-flickr:before{content:""}.icon-adn:before{content:""}.icon-bitbucket:before{content:""}.icon-bitbucket-square:before,.icon-bitbucket-sign:before{content:""}.icon-tumblr:before{content:""}.icon-tumblr-square:before,.icon-tumblr-sign:before{content:""}.icon-long-arrow-down:before{content:""}.icon-long-arrow-up:before{content:""}.icon-long-arrow-left:before{content:""}.icon-long-arrow-right:before{content:""}.icon-apple:before{content:""}.icon-windows:before{content:""}.icon-android:before{content:""}.icon-linux:before{content:""}.icon-dribbble:before{content:""}.icon-skype:before{content:""}.icon-foursquare:before{content:""}.icon-trello:before{content:""}.icon-female:before{content:""}.icon-male:before{content:""}.icon-gittip:before,.icon-gratipay:before{content:""}.icon-sun-o:before,.icon-sun:before{content:""}.icon-moon-o:before,.icon-moon:before{content:""}.icon-archive:before,.icon-AdminStock:before{content:""}.icon-bug:before{content:""}.icon-vk:before{content:""}.icon-weibo:before{content:""}.icon-renren:before{content:""}.icon-pagelines:before{content:""}.icon-stack-exchange:before{content:""}.icon-arrow-circle-o-right:before{content:""}.icon-arrow-circle-o-left:before{content:""}.icon-toggle-left:before,.icon-caret-square-o-left:before{content:""}.icon-dot-circle-o:before{content:""}.icon-wheelchair:before{content:""}.icon-vimeo-square:before{content:""}.icon-turkish-lira:before,.icon-try:before{content:""}.icon-plus-square-o:before,.icon-expand-alt:before{content:""}.icon-space-shuttle:before{content:""}.icon-slack:before{content:""}.icon-envelope-square:before{content:""}.icon-wordpress:before{content:""}.icon-openid:before{content:""}.icon-institution:before,.icon-bank:before,.icon-university:before{content:""}.icon-mortar-board:before,.icon-graduation-cap:before{content:""}.icon-yahoo:before{content:""}.icon-google:before{content:""}.icon-reddit:before{content:""}.icon-reddit-square:before{content:""}.icon-stumbleupon-circle:before{content:""}.icon-stumbleupon:before{content:""}.icon-delicious:before{content:""}.icon-digg:before{content:""}.icon-pied-piper:before{content:""}.icon-pied-piper-alt:before{content:""}.icon-drupal:before{content:""}.icon-joomla:before{content:""}.icon-language:before{content:""}.icon-fax:before{content:""}.icon-building:before{content:""}.icon-child:before{content:""}.icon-paw:before{content:""}.icon-spoon:before{content:""}.icon-cube:before{content:""}.icon-cubes:before{content:""}.icon-behance:before{content:""}.icon-behance-square:before{content:""}.icon-steam:before{content:""}.icon-steam-square:before{content:""}.icon-recycle:before{content:""}.icon-automobile:before,.icon-car:before{content:""}.icon-cab:before,.icon-taxi:before{content:""}.icon-tree:before{content:""}.icon-spotify:before{content:""}.icon-deviantart:before{content:""}.icon-soundcloud:before{content:""}.icon-database:before,#content .process-icon-database:before{content:""}.icon-file-pdf-o:before{content:""}.icon-file-word-o:before{content:""}.icon-file-excel-o:before{content:""}.icon-file-powerpoint-o:before{content:""}.icon-file-photo-o:before,.icon-file-picture-o:before,.icon-file-image-o:before{content:""}.icon-file-zip-o:before,.icon-file-archive-o:before{content:""}.icon-file-sound-o:before,.icon-file-audio-o:before{content:""}.icon-file-movie-o:before,.icon-file-video-o:before{content:""}.icon-file-code-o:before{content:""}.icon-vine:before{content:""}.icon-codepen:before{content:""}.icon-jsfiddle:before{content:""}.icon-life-bouy:before,.icon-life-buoy:before,.icon-life-saver:before,.icon-support:before,.icon-life-ring:before{content:""}.icon-circle-o-notch:before,#content .process-icon-loading:before{content:""}.icon-ra:before,.icon-rebel:before{content:""}.icon-ge:before,.icon-empire:before{content:""}.icon-git-square:before{content:""}.icon-git:before{content:""}.icon-hacker-news:before{content:""}.icon-tencent-weibo:before{content:""}.icon-qq:before{content:""}.icon-wechat:before,.icon-weixin:before{content:""}.icon-send:before,.icon-paper-plane:before{content:""}.icon-send-o:before,.icon-paper-plane-o:before{content:""}.icon-history:before{content:""}.icon-genderless:before,.icon-circle-thin:before{content:""}.icon-header:before{content:""}.icon-paragraph:before{content:""}.icon-sliders:before{content:""}.icon-share-alt:before{content:""}.icon-share-alt-square:before{content:""}.icon-bomb:before{content:""}.icon-soccer-ball-o:before,.icon-futbol-o:before{content:""}.icon-tty:before{content:""}.icon-binoculars:before{content:""}.icon-plug:before{content:""}.icon-slideshare:before{content:""}.icon-twitch:before{content:""}.icon-yelp:before{content:""}.icon-newspaper-o:before{content:""}.icon-wifi:before{content:""}.icon-calculator:before{content:""}.icon-paypal:before{content:""}.icon-google-wallet:before{content:""}.icon-cc-visa:before{content:""}.icon-cc-mastercard:before{content:""}.icon-cc-discover:before{content:""}.icon-cc-amex:before{content:""}.icon-cc-paypal:before{content:""}.icon-cc-stripe:before{content:""}.icon-bell-slash:before{content:""}.icon-bell-slash-o:before{content:""}.icon-trash:before,#content .process-icon-delete:before,#content .process-icon-uninstall:before{content:""}.icon-copyright:before{content:""}.icon-at:before{content:""}.icon-eyedropper:before{content:""}.icon-paint-brush:before{content:""}.icon-birthday-cake:before{content:""}.icon-area-chart:before{content:""}.icon-pie-chart:before{content:""}.icon-line-chart:before{content:""}.icon-lastfm:before{content:""}.icon-lastfm-square:before{content:""}.icon-toggle-off:before,#content .process-icon-toggle-off:before{content:""}.icon-toggle-on:before,#content .process-icon-toggle-on:before{content:""}.icon-bicycle:before{content:""}.icon-bus:before{content:""}.icon-ioxhost:before{content:""}.icon-angellist:before{content:""}.icon-cc:before{content:""}.icon-shekel:before,.icon-sheqel:before,.icon-ils:before{content:""}.icon-meanpath:before{content:""}.icon-buysellads:before{content:""}.icon-connectdevelop:before{content:""}.icon-dashcube:before{content:""}.icon-forumbee:before{content:""}.icon-leanpub:before{content:""}.icon-sellsy:before{content:""}.icon-shirtsinbulk:before{content:""}.icon-simplybuilt:before{content:""}.icon-skyatlas:before{content:""}.icon-cart-plus:before{content:""}.icon-cart-arrow-down:before{content:""}.icon-diamond:before{content:""}.icon-ship:before{content:""}.icon-user-secret:before{content:""}.icon-motorcycle:before{content:""}.icon-street-view:before{content:""}.icon-heartbeat:before{content:""}.icon-venus:before{content:""}.icon-mars:before{content:""}.icon-mercury:before{content:""}.icon-transgender:before{content:""}.icon-transgender-alt:before{content:""}.icon-venus-double:before{content:""}.icon-mars-double:before{content:""}.icon-venus-mars:before{content:""}.icon-mars-stroke:before{content:""}.icon-mars-stroke-v:before{content:""}.icon-mars-stroke-h:before{content:""}.icon-neuter:before{content:""}.icon-facebook-official:before{content:""}.icon-pinterest-p:before{content:""}.icon-whatsapp:before{content:""}.icon-server:before{content:""}.icon-user-plus:before{content:""}.icon-user-times:before{content:""}.icon-hotel:before,.icon-bed:before{content:""}.icon-viacoin:before{content:""}.icon-train:before{content:""}.icon-subway:before{content:""}.icon-medium:before{content:""}/*! normalize.css v3.0.1 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}.bootstrap *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap *:before,.bootstrap *:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap html{font-size:62.5%;-webkit-tap-highlight-color:transparent}.bootstrap body{font-family:"Open Sans",Helvetica,Arial,sans-serif;font-size:12px;line-height:1.42857;color:#555;background-color:#EFF1F2}.bootstrap input,.bootstrap button,.bootstrap select,.bootstrap textarea{font-family:inherit;font-size:inherit;line-height:inherit}.bootstrap a{color:#00aff0;text-decoration:none}.bootstrap a:hover,.bootstrap a:focus{color:#0077a4;text-decoration:underline}.bootstrap a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.bootstrap figure{margin:0}.bootstrap img{vertical-align:middle}.bootstrap .img-responsive{display:block;max-width:100%;height:auto}.bootstrap .img-rounded{border-radius:6px}.bootstrap .img-thumbnail{padding:4px;line-height:1.42857;background-color:#EFF1F2;border:1px solid #ddd;border-radius:3px;-webkit-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;display:inline-block;max-width:100%;height:auto}.bootstrap .img-circle{border-radius:50%}.bootstrap hr{margin-top:17px;margin-bottom:17px;border:0;border-top:1px solid #eee}.bootstrap .sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.bootstrap .sr-only-focusable:active,.bootstrap .sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.bootstrap h1,.bootstrap h2,.bootstrap h3,.bootstrap h4,.bootstrap h5,.bootstrap h6,.bootstrap .h1,.bootstrap .h2,.bootstrap .h3,.bootstrap .h4,.bootstrap .h5,.bootstrap .h6{font-family:"Ubuntu Condensed",Helvetica,Arial,sans-serif;font-weight:400;line-height:1.1;color:inherit}.bootstrap h1 small,.bootstrap h1 .small,.bootstrap h2 small,.bootstrap h2 .small,.bootstrap h3 small,.bootstrap h3 .small,.bootstrap h4 small,.bootstrap h4 .small,.bootstrap h5 small,.bootstrap h5 .small,.bootstrap h6 small,.bootstrap h6 .small,.bootstrap .h1 small,.bootstrap .h1 .small,.bootstrap .h2 small,.bootstrap .h2 .small,.bootstrap .h3 small,.bootstrap .h3 .small,.bootstrap .h4 small,.bootstrap .h4 .small,.bootstrap .h5 small,.bootstrap .h5 .small,.bootstrap .h6 small,.bootstrap .h6 .small{font-weight:normal;line-height:1;color:#999}.bootstrap h1,.bootstrap .h1,.bootstrap h2,.bootstrap .h2,.bootstrap h3,.bootstrap .h3{margin-top:17px;margin-bottom:8.5px}.bootstrap h1 small,.bootstrap h1 .small,.bootstrap .h1 small,.bootstrap .h1 .small,.bootstrap h2 small,.bootstrap h2 .small,.bootstrap .h2 small,.bootstrap .h2 .small,.bootstrap h3 small,.bootstrap h3 .small,.bootstrap .h3 small,.bootstrap .h3 .small{font-size:65%}.bootstrap h4,.bootstrap .h4,.bootstrap h5,.bootstrap .h5,.bootstrap h6,.bootstrap .h6{margin-top:8.5px;margin-bottom:8.5px}.bootstrap h4 small,.bootstrap h4 .small,.bootstrap .h4 small,.bootstrap .h4 .small,.bootstrap h5 small,.bootstrap h5 .small,.bootstrap .h5 small,.bootstrap .h5 .small,.bootstrap h6 small,.bootstrap h6 .small,.bootstrap .h6 small,.bootstrap .h6 .small{font-size:75%}.bootstrap h1,.bootstrap .h1{font-size:31px}.bootstrap h2,.bootstrap .h2{font-size:25px}.bootstrap h3,.bootstrap .h3{font-size:21px}.bootstrap h4,.bootstrap .h4{font-size:15px}.bootstrap h5,.bootstrap .h5{font-size:12px}.bootstrap h6,.bootstrap .h6{font-size:11px}.bootstrap p{margin:0 0 8.5px}.bootstrap .lead{margin-bottom:17px;font-size:13px;font-weight:200;line-height:1.4}@media (min-width: 768px){.bootstrap .lead{font-size:18px}}.bootstrap small,.bootstrap .small{font-size:85%}.bootstrap cite{font-style:normal}.bootstrap mark,.bootstrap .mark{background-color:#fef1d3;padding:.2em}.bootstrap .text-left{text-align:left}.bootstrap .text-right{text-align:right}.bootstrap .text-center{text-align:center}.bootstrap .text-justify{text-align:justify}.bootstrap .text-nowrap{white-space:nowrap}.bootstrap .text-muted,.bootstrap #header_notifs_icon_wrapper .notifs_dropdown .notifs_panel .list_notif .no_notifs,#header_notifs_icon_wrapper .notifs_dropdown .notifs_panel .list_notif .bootstrap .no_notifs,.bootstrap .module_description,.bootstrap .hook_panel_header .hook_title,.bootstrap .hook_panel_header .hook_description{color:#999}.bootstrap .text-primary{color:#00aff0}.bootstrap a.text-primary:hover{color:#008abd}.bootstrap .text-success{color:#3c763d}.bootstrap a.text-success:hover{color:#2b542c}.bootstrap .text-info{color:#31708f}.bootstrap a.text-info:hover{color:#245269}.bootstrap .text-warning{color:#8a6d3b}.bootstrap a.text-warning:hover{color:#66512c}.bootstrap .text-danger{color:#a94442}.bootstrap a.text-danger:hover{color:#843534}.bootstrap .bg-primary{color:#fff}.bootstrap .bg-primary{background-color:#00aff0}.bootstrap a.bg-primary:hover{background-color:#008abd}.bootstrap .bg-success{background-color:#cce9d7}.bootstrap a.bg-success:hover{background-color:#a8dabb}.bootstrap .bg-info{background-color:#d3f1f7}.bootstrap a.bg-info:hover{background-color:#a8e3ef}.bootstrap .bg-warning{background-color:#fef1d3}.bootstrap a.bg-warning:hover{background-color:#fde1a1}.bootstrap .bg-danger{background-color:#f9cce1}.bootstrap a.bg-danger:hover{background-color:#f49ec6}.bootstrap .page-header{padding-bottom:7.5px;margin:34px 0 17px;border-bottom:1px solid #eee}.bootstrap ul,.bootstrap ol{margin-top:0;margin-bottom:8.5px}.bootstrap ul ul,.bootstrap ul ol,.bootstrap ol ul,.bootstrap ol ol{margin-bottom:0}.bootstrap .list-unstyled,.bootstrap .list-inline,.bootstrap #dashboard .data_list_large,.bootstrap #dashboard .data_list_vertical{padding-left:0;list-style:none}.bootstrap .list-inline{margin-left:-5px}.bootstrap .list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}.bootstrap dl{margin-top:0;margin-bottom:17px}.bootstrap dt,.bootstrap dd{line-height:1.42857}.bootstrap dt{font-weight:bold}.bootstrap dd{margin-left:0}.bootstrap .dl-horizontal dd:before,.bootstrap .dl-horizontal dd:after{content:" ";display:table}.bootstrap .dl-horizontal dd:after{clear:both}@media (min-width: 768px){.bootstrap .dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bootstrap .dl-horizontal dd{margin-left:180px}}.bootstrap abbr[title],.bootstrap abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}.bootstrap .initialism{font-size:90%;text-transform:uppercase}.bootstrap blockquote{padding:8.5px 17px;margin:0 0 17px;font-size:15px;border-left:5px solid #eee}.bootstrap blockquote p:last-child,.bootstrap blockquote ul:last-child,.bootstrap blockquote ol:last-child{margin-bottom:0}.bootstrap blockquote footer,.bootstrap blockquote small,.bootstrap blockquote .small{display:block;font-size:80%;line-height:1.42857;color:#999}.bootstrap blockquote footer:before,.bootstrap blockquote small:before,.bootstrap blockquote .small:before{content:'\2014 \00A0'}.bootstrap .blockquote-reverse,.bootstrap blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.bootstrap .blockquote-reverse footer:before,.bootstrap .blockquote-reverse small:before,.bootstrap .blockquote-reverse .small:before,.bootstrap blockquote.pull-right footer:before,.bootstrap blockquote.pull-right small:before,.bootstrap blockquote.pull-right .small:before{content:''}.bootstrap .blockquote-reverse footer:after,.bootstrap .blockquote-reverse small:after,.bootstrap .blockquote-reverse .small:after,.bootstrap blockquote.pull-right footer:after,.bootstrap blockquote.pull-right small:after,.bootstrap blockquote.pull-right .small:after{content:'\00A0 \2014'}.bootstrap blockquote:before,.bootstrap blockquote:after{content:""}.bootstrap address{margin-bottom:17px;font-style:normal;line-height:1.42857}.bootstrap code,.bootstrap kbd,.bootstrap pre,.bootstrap samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}.bootstrap code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:3px}.bootstrap kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}.bootstrap pre{display:block;padding:8px;margin:0 0 8.5px;font-size:11px;line-height:1.42857;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:3px}.bootstrap pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.bootstrap .pre-scrollable{max-height:340px;overflow-y:scroll}.bootstrap .container{margin-right:auto;margin-left:auto;padding-left:5px;padding-right:5px}.bootstrap .container:before,.bootstrap .container:after{content:" ";display:table}.bootstrap .container:after{clear:both}@media (min-width: 768px){.bootstrap .container{width:728px}}@media (min-width: 992px){.bootstrap .container{width:940px}}@media (min-width: 1200px){.bootstrap .container{width:1170px}}.bootstrap .container-fluid{margin-right:auto;margin-left:auto;padding-left:5px;padding-right:5px}.bootstrap .container-fluid:before,.bootstrap .container-fluid:after{content:" ";display:table}.bootstrap .container-fluid:after{clear:both}.bootstrap .row,.bootstrap .multishop-well,.bootstrap #dashboard .data_list_vertical{margin-left:-5px;margin-right:-5px}.bootstrap .row:before,.bootstrap .multishop-well:before,.bootstrap #dashboard .data_list_vertical:before,.bootstrap .row:after,.bootstrap .multishop-well:after,.bootstrap #dashboard .data_list_vertical:after{content:" ";display:table}.bootstrap .row:after,.bootstrap .multishop-well:after,.bootstrap #dashboard .data_list_vertical:after{clear:both}.bootstrap .col-xs-1,.bootstrap .col-sm-1,.bootstrap .col-md-1,.bootstrap .col-lg-1,.bootstrap .col-xs-2,.bootstrap .col-sm-2,.bootstrap .col-md-2,.bootstrap .col-lg-2,.bootstrap .col-xs-3,.bootstrap .col-sm-3,.bootstrap .col-md-3,.bootstrap .col-lg-3,.bootstrap .col-xs-4,.bootstrap .col-sm-4,.bootstrap .col-md-4,.bootstrap .col-lg-4,.bootstrap .col-xs-5,.bootstrap .col-sm-5,.bootstrap .col-md-5,.bootstrap .col-lg-5,.bootstrap .col-xs-6,.bootstrap #dashboard .data_list_vertical li,.bootstrap .col-sm-6,.bootstrap .col-md-6,.bootstrap .col-lg-6,.bootstrap .col-xs-7,.bootstrap .col-sm-7,.bootstrap .col-md-7,.bootstrap .col-lg-7,.bootstrap .col-xs-8,.bootstrap .col-sm-8,.bootstrap .col-md-8,.bootstrap .col-lg-8,.bootstrap .col-xs-9,.bootstrap .col-sm-9,.bootstrap .col-md-9,.bootstrap .col-lg-9,.bootstrap .col-xs-10,.bootstrap .col-sm-10,.bootstrap .col-md-10,.bootstrap .col-lg-10,.bootstrap .col-xs-11,.bootstrap .col-sm-11,.bootstrap .col-md-11,.bootstrap .col-lg-11,.bootstrap .col-xs-12,.bootstrap .col-sm-12,.bootstrap .col-md-12,.bootstrap .col-lg-12{position:relative;min-height:1px;padding-left:5px;padding-right:5px}.bootstrap .col-xs-1,.bootstrap .col-xs-2,.bootstrap .col-xs-3,.bootstrap .col-xs-4,.bootstrap .col-xs-5,.bootstrap .col-xs-6,.bootstrap #dashboard .data_list_vertical li,.bootstrap .col-xs-7,.bootstrap .col-xs-8,.bootstrap .col-xs-9,.bootstrap .col-xs-10,.bootstrap .col-xs-11,.bootstrap .col-xs-12{float:left}.bootstrap .col-xs-1{width:8.33333%}.bootstrap .col-xs-2{width:16.66667%}.bootstrap .col-xs-3{width:25%}.bootstrap .col-xs-4{width:33.33333%}.bootstrap .col-xs-5{width:41.66667%}.bootstrap .col-xs-6,.bootstrap #dashboard .data_list_vertical li{width:50%}.bootstrap .col-xs-7{width:58.33333%}.bootstrap .col-xs-8{width:66.66667%}.bootstrap .col-xs-9{width:75%}.bootstrap .col-xs-10{width:83.33333%}.bootstrap .col-xs-11{width:91.66667%}.bootstrap .col-xs-12{width:100%}.bootstrap .col-xs-pull-0{right:auto}.bootstrap .col-xs-pull-1{right:8.33333%}.bootstrap .col-xs-pull-2{right:16.66667%}.bootstrap .col-xs-pull-3{right:25%}.bootstrap .col-xs-pull-4{right:33.33333%}.bootstrap .col-xs-pull-5{right:41.66667%}.bootstrap .col-xs-pull-6{right:50%}.bootstrap .col-xs-pull-7{right:58.33333%}.bootstrap .col-xs-pull-8{right:66.66667%}.bootstrap .col-xs-pull-9{right:75%}.bootstrap .col-xs-pull-10{right:83.33333%}.bootstrap .col-xs-pull-11{right:91.66667%}.bootstrap .col-xs-pull-12{right:100%}.bootstrap .col-xs-push-0{left:auto}.bootstrap .col-xs-push-1{left:8.33333%}.bootstrap .col-xs-push-2{left:16.66667%}.bootstrap .col-xs-push-3{left:25%}.bootstrap .col-xs-push-4{left:33.33333%}.bootstrap .col-xs-push-5{left:41.66667%}.bootstrap .col-xs-push-6{left:50%}.bootstrap .col-xs-push-7{left:58.33333%}.bootstrap .col-xs-push-8{left:66.66667%}.bootstrap .col-xs-push-9{left:75%}.bootstrap .col-xs-push-10{left:83.33333%}.bootstrap .col-xs-push-11{left:91.66667%}.bootstrap .col-xs-push-12{left:100%}.bootstrap .col-xs-offset-0{margin-left:0%}.bootstrap .col-xs-offset-1{margin-left:8.33333%}.bootstrap .col-xs-offset-2{margin-left:16.66667%}.bootstrap .col-xs-offset-3{margin-left:25%}.bootstrap .col-xs-offset-4{margin-left:33.33333%}.bootstrap .col-xs-offset-5{margin-left:41.66667%}.bootstrap .col-xs-offset-6{margin-left:50%}.bootstrap .col-xs-offset-7{margin-left:58.33333%}.bootstrap .col-xs-offset-8{margin-left:66.66667%}.bootstrap .col-xs-offset-9{margin-left:75%}.bootstrap .col-xs-offset-10{margin-left:83.33333%}.bootstrap .col-xs-offset-11{margin-left:91.66667%}.bootstrap .col-xs-offset-12{margin-left:100%}@media (min-width: 768px){.bootstrap .col-sm-1,.bootstrap .col-sm-2,.bootstrap .col-sm-3,.bootstrap .col-sm-4,.bootstrap .col-sm-5,.bootstrap .col-sm-6,.bootstrap .col-sm-7,.bootstrap .col-sm-8,.bootstrap .col-sm-9,.bootstrap .col-sm-10,.bootstrap .col-sm-11,.bootstrap .col-sm-12{float:left}.bootstrap .col-sm-1{width:8.33333%}.bootstrap .col-sm-2{width:16.66667%}.bootstrap .col-sm-3{width:25%}.bootstrap .col-sm-4{width:33.33333%}.bootstrap .col-sm-5{width:41.66667%}.bootstrap .col-sm-6{width:50%}.bootstrap .col-sm-7{width:58.33333%}.bootstrap .col-sm-8{width:66.66667%}.bootstrap .col-sm-9{width:75%}.bootstrap .col-sm-10{width:83.33333%}.bootstrap .col-sm-11{width:91.66667%}.bootstrap .col-sm-12{width:100%}.bootstrap .col-sm-pull-0{right:auto}.bootstrap .col-sm-pull-1{right:8.33333%}.bootstrap .col-sm-pull-2{right:16.66667%}.bootstrap .col-sm-pull-3{right:25%}.bootstrap .col-sm-pull-4{right:33.33333%}.bootstrap .col-sm-pull-5{right:41.66667%}.bootstrap .col-sm-pull-6{right:50%}.bootstrap .col-sm-pull-7{right:58.33333%}.bootstrap .col-sm-pull-8{right:66.66667%}.bootstrap .col-sm-pull-9{right:75%}.bootstrap .col-sm-pull-10{right:83.33333%}.bootstrap .col-sm-pull-11{right:91.66667%}.bootstrap .col-sm-pull-12{right:100%}.bootstrap .col-sm-push-0{left:auto}.bootstrap .col-sm-push-1{left:8.33333%}.bootstrap .col-sm-push-2{left:16.66667%}.bootstrap .col-sm-push-3{left:25%}.bootstrap .col-sm-push-4{left:33.33333%}.bootstrap .col-sm-push-5{left:41.66667%}.bootstrap .col-sm-push-6{left:50%}.bootstrap .col-sm-push-7{left:58.33333%}.bootstrap .col-sm-push-8{left:66.66667%}.bootstrap .col-sm-push-9{left:75%}.bootstrap .col-sm-push-10{left:83.33333%}.bootstrap .col-sm-push-11{left:91.66667%}.bootstrap .col-sm-push-12{left:100%}.bootstrap .col-sm-offset-0{margin-left:0%}.bootstrap .col-sm-offset-1{margin-left:8.33333%}.bootstrap .col-sm-offset-2{margin-left:16.66667%}.bootstrap .col-sm-offset-3{margin-left:25%}.bootstrap .col-sm-offset-4{margin-left:33.33333%}.bootstrap .col-sm-offset-5{margin-left:41.66667%}.bootstrap .col-sm-offset-6{margin-left:50%}.bootstrap .col-sm-offset-7{margin-left:58.33333%}.bootstrap .col-sm-offset-8{margin-left:66.66667%}.bootstrap .col-sm-offset-9{margin-left:75%}.bootstrap .col-sm-offset-10{margin-left:83.33333%}.bootstrap .col-sm-offset-11{margin-left:91.66667%}.bootstrap .col-sm-offset-12{margin-left:100%}}@media (min-width: 992px){.bootstrap .col-md-1,.bootstrap .col-md-2,.bootstrap .col-md-3,.bootstrap .col-md-4,.bootstrap .col-md-5,.bootstrap .col-md-6,.bootstrap .col-md-7,.bootstrap .col-md-8,.bootstrap .col-md-9,.bootstrap .col-md-10,.bootstrap .col-md-11,.bootstrap .col-md-12{float:left}.bootstrap .col-md-1{width:8.33333%}.bootstrap .col-md-2{width:16.66667%}.bootstrap .col-md-3{width:25%}.bootstrap .col-md-4{width:33.33333%}.bootstrap .col-md-5{width:41.66667%}.bootstrap .col-md-6{width:50%}.bootstrap .col-md-7{width:58.33333%}.bootstrap .col-md-8{width:66.66667%}.bootstrap .col-md-9{width:75%}.bootstrap .col-md-10{width:83.33333%}.bootstrap .col-md-11{width:91.66667%}.bootstrap .col-md-12{width:100%}.bootstrap .col-md-pull-0{right:auto}.bootstrap .col-md-pull-1{right:8.33333%}.bootstrap .col-md-pull-2{right:16.66667%}.bootstrap .col-md-pull-3{right:25%}.bootstrap .col-md-pull-4{right:33.33333%}.bootstrap .col-md-pull-5{right:41.66667%}.bootstrap .col-md-pull-6{right:50%}.bootstrap .col-md-pull-7{right:58.33333%}.bootstrap .col-md-pull-8{right:66.66667%}.bootstrap .col-md-pull-9{right:75%}.bootstrap .col-md-pull-10{right:83.33333%}.bootstrap .col-md-pull-11{right:91.66667%}.bootstrap .col-md-pull-12{right:100%}.bootstrap .col-md-push-0{left:auto}.bootstrap .col-md-push-1{left:8.33333%}.bootstrap .col-md-push-2{left:16.66667%}.bootstrap .col-md-push-3{left:25%}.bootstrap .col-md-push-4{left:33.33333%}.bootstrap .col-md-push-5{left:41.66667%}.bootstrap .col-md-push-6{left:50%}.bootstrap .col-md-push-7{left:58.33333%}.bootstrap .col-md-push-8{left:66.66667%}.bootstrap .col-md-push-9{left:75%}.bootstrap .col-md-push-10{left:83.33333%}.bootstrap .col-md-push-11{left:91.66667%}.bootstrap .col-md-push-12{left:100%}.bootstrap .col-md-offset-0{margin-left:0%}.bootstrap .col-md-offset-1{margin-left:8.33333%}.bootstrap .col-md-offset-2{margin-left:16.66667%}.bootstrap .col-md-offset-3{margin-left:25%}.bootstrap .col-md-offset-4{margin-left:33.33333%}.bootstrap .col-md-offset-5{margin-left:41.66667%}.bootstrap .col-md-offset-6{margin-left:50%}.bootstrap .col-md-offset-7{margin-left:58.33333%}.bootstrap .col-md-offset-8{margin-left:66.66667%}.bootstrap .col-md-offset-9{margin-left:75%}.bootstrap .col-md-offset-10{margin-left:83.33333%}.bootstrap .col-md-offset-11{margin-left:91.66667%}.bootstrap .col-md-offset-12{margin-left:100%}}@media (min-width: 1200px){.bootstrap .col-lg-1,.bootstrap .col-lg-2,.bootstrap .col-lg-3,.bootstrap .col-lg-4,.bootstrap .col-lg-5,.bootstrap .col-lg-6,.bootstrap .col-lg-7,.bootstrap .col-lg-8,.bootstrap .col-lg-9,.bootstrap .col-lg-10,.bootstrap .col-lg-11,.bootstrap .col-lg-12{float:left}.bootstrap .col-lg-1{width:8.33333%}.bootstrap .col-lg-2{width:16.66667%}.bootstrap .col-lg-3{width:25%}.bootstrap .col-lg-4{width:33.33333%}.bootstrap .col-lg-5{width:41.66667%}.bootstrap .col-lg-6{width:50%}.bootstrap .col-lg-7{width:58.33333%}.bootstrap .col-lg-8{width:66.66667%}.bootstrap .col-lg-9{width:75%}.bootstrap .col-lg-10{width:83.33333%}.bootstrap .col-lg-11{width:91.66667%}.bootstrap .col-lg-12{width:100%}.bootstrap .col-lg-pull-0{right:auto}.bootstrap .col-lg-pull-1{right:8.33333%}.bootstrap .col-lg-pull-2{right:16.66667%}.bootstrap .col-lg-pull-3{right:25%}.bootstrap .col-lg-pull-4{right:33.33333%}.bootstrap .col-lg-pull-5{right:41.66667%}.bootstrap .col-lg-pull-6{right:50%}.bootstrap .col-lg-pull-7{right:58.33333%}.bootstrap .col-lg-pull-8{right:66.66667%}.bootstrap .col-lg-pull-9{right:75%}.bootstrap .col-lg-pull-10{right:83.33333%}.bootstrap .col-lg-pull-11{right:91.66667%}.bootstrap .col-lg-pull-12{right:100%}.bootstrap .col-lg-push-0{left:auto}.bootstrap .col-lg-push-1{left:8.33333%}.bootstrap .col-lg-push-2{left:16.66667%}.bootstrap .col-lg-push-3{left:25%}.bootstrap .col-lg-push-4{left:33.33333%}.bootstrap .col-lg-push-5{left:41.66667%}.bootstrap .col-lg-push-6{left:50%}.bootstrap .col-lg-push-7{left:58.33333%}.bootstrap .col-lg-push-8{left:66.66667%}.bootstrap .col-lg-push-9{left:75%}.bootstrap .col-lg-push-10{left:83.33333%}.bootstrap .col-lg-push-11{left:91.66667%}.bootstrap .col-lg-push-12{left:100%}.bootstrap .col-lg-offset-0{margin-left:0%}.bootstrap .col-lg-offset-1{margin-left:8.33333%}.bootstrap .col-lg-offset-2{margin-left:16.66667%}.bootstrap .col-lg-offset-3{margin-left:25%}.bootstrap .col-lg-offset-4{margin-left:33.33333%}.bootstrap .col-lg-offset-5{margin-left:41.66667%}.bootstrap .col-lg-offset-6{margin-left:50%}.bootstrap .col-lg-offset-7{margin-left:58.33333%}.bootstrap .col-lg-offset-8{margin-left:66.66667%}.bootstrap .col-lg-offset-9{margin-left:75%}.bootstrap .col-lg-offset-10{margin-left:83.33333%}.bootstrap .col-lg-offset-11{margin-left:91.66667%}.bootstrap .col-lg-offset-12{margin-left:100%}}.bootstrap table{max-width:100%;background-color:transparent}.bootstrap th{text-align:left}.bootstrap .table{width:100%;margin-bottom:17px}.bootstrap .table>thead>tr>th,.bootstrap .table>thead>tr>td,.bootstrap .table>tbody>tr>th,.bootstrap .table>tbody>tr>td,.bootstrap .table>tfoot>tr>th,.bootstrap .table>tfoot>tr>td{padding:8px;line-height:1.42857;vertical-align:top;border-top:1px solid #ddd}.bootstrap .table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.bootstrap .table>caption+thead>tr:first-child>th,.bootstrap .table>caption+thead>tr:first-child>td,.bootstrap .table>colgroup+thead>tr:first-child>th,.bootstrap .table>colgroup+thead>tr:first-child>td,.bootstrap .table>thead:first-child>tr:first-child>th,.bootstrap .table>thead:first-child>tr:first-child>td{border-top:0}.bootstrap .table>tbody+tbody{border-top:2px solid #ddd}.bootstrap .table .table{background-color:#EFF1F2}.bootstrap .table-condensed>thead>tr>th,.bootstrap .table-condensed>thead>tr>td,.bootstrap .table-condensed>tbody>tr>th,.bootstrap .table-condensed>tbody>tr>td,.bootstrap .table-condensed>tfoot>tr>th,.bootstrap .table-condensed>tfoot>tr>td{padding:5px}.bootstrap .table-bordered{border:1px solid #ddd}.bootstrap .table-bordered>thead>tr>th,.bootstrap .table-bordered>thead>tr>td{border-bottom-width:2px}.bootstrap .table-striped>tbody>tr:nth-child(odd)>td,.bootstrap .table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.bootstrap .table-hover>tbody>tr:hover>td,.bootstrap .table-hover>tbody>tr:hover>th{background-color:#EDF7FB}.bootstrap table col[class*="col-"]{position:static;float:none;display:table-column}.bootstrap table td[class*="col-"],.bootstrap table th[class*="col-"]{position:static;float:none;display:table-cell}.bootstrap .table>thead>tr>td.active,.bootstrap .table>thead>tr>th.active,.bootstrap .table>thead>tr.active>td,.bootstrap .table>thead>tr.active>th,.bootstrap .table>tbody>tr>td.active,.bootstrap .table>tbody>tr>th.active,.bootstrap .table>tbody>tr.active>td,.bootstrap .table>tbody>tr.active>th,.bootstrap .table>tfoot>tr>td.active,.bootstrap .table>tfoot>tr>th.active,.bootstrap .table>tfoot>tr.active>td,.bootstrap .table>tfoot>tr.active>th{background-color:#EDF7FB}.bootstrap .table-hover>tbody>tr>td.active:hover,.bootstrap .table-hover>tbody>tr>th.active:hover,.bootstrap .table-hover>tbody>tr.active:hover>td,.bootstrap .table-hover>tbody>tr:hover>.active,.bootstrap .table-hover>tbody>tr.active:hover>th{background-color:#d8eef6}.bootstrap .table>thead>tr>td.success,.bootstrap .table>thead>tr>th.success,.bootstrap .table>thead>tr.success>td,.bootstrap .table>thead>tr.success>th,.bootstrap .table>tbody>tr>td.success,.bootstrap .table>tbody>tr>th.success,.bootstrap .table>tbody>tr.success>td,.bootstrap .table>tbody>tr.success>th,.bootstrap .table>tfoot>tr>td.success,.bootstrap .table>tfoot>tr>th.success,.bootstrap .table>tfoot>tr.success>td,.bootstrap .table>tfoot>tr.success>th{background-color:#cce9d7}.bootstrap .table-hover>tbody>tr>td.success:hover,.bootstrap .table-hover>tbody>tr>th.success:hover,.bootstrap .table-hover>tbody>tr.success:hover>td,.bootstrap .table-hover>tbody>tr:hover>.success,.bootstrap .table-hover>tbody>tr.success:hover>th{background-color:#bae1c9}.bootstrap .table>thead>tr>td.info,.bootstrap .table>thead>tr>th.info,.bootstrap .table>thead>tr.info>td,.bootstrap .table>thead>tr.info>th,.bootstrap .table>tbody>tr>td.info,.bootstrap .table>tbody>tr>th.info,.bootstrap .table>tbody>tr.info>td,.bootstrap .table>tbody>tr.info>th,.bootstrap .table>tfoot>tr>td.info,.bootstrap .table>tfoot>tr>th.info,.bootstrap .table>tfoot>tr.info>td,.bootstrap .table>tfoot>tr.info>th{background-color:#d3f1f7}.bootstrap .table-hover>tbody>tr>td.info:hover,.bootstrap .table-hover>tbody>tr>th.info:hover,.bootstrap .table-hover>tbody>tr.info:hover>td,.bootstrap .table-hover>tbody>tr:hover>.info,.bootstrap .table-hover>tbody>tr.info:hover>th{background-color:#bdeaf3}.bootstrap .table>thead>tr>td.warning,.bootstrap .table>thead>tr>th.warning,.bootstrap .table>thead>tr.warning>td,.bootstrap .table>thead>tr.warning>th,.bootstrap .table>tbody>tr>td.warning,.bootstrap .table>tbody>tr>th.warning,.bootstrap .table>tbody>tr.warning>td,.bootstrap .table>tbody>tr.warning>th,.bootstrap .table>tfoot>tr>td.warning,.bootstrap .table>tfoot>tr>th.warning,.bootstrap .table>tfoot>tr.warning>td,.bootstrap .table>tfoot>tr.warning>th{background-color:#fef1d3}.bootstrap .table-hover>tbody>tr>td.warning:hover,.bootstrap .table-hover>tbody>tr>th.warning:hover,.bootstrap .table-hover>tbody>tr.warning:hover>td,.bootstrap .table-hover>tbody>tr:hover>.warning,.bootstrap .table-hover>tbody>tr.warning:hover>th{background-color:#fde9ba}.bootstrap .table>thead>tr>td.danger,.bootstrap .table>thead>tr>th.danger,.bootstrap .table>thead>tr.danger>td,.bootstrap .table>thead>tr.danger>th,.bootstrap .table>tbody>tr>td.danger,.bootstrap .table>tbody>tr>th.danger,.bootstrap .table>tbody>tr.danger>td,.bootstrap .table>tbody>tr.danger>th,.bootstrap .table>tfoot>tr>td.danger,.bootstrap .table>tfoot>tr>th.danger,.bootstrap .table>tfoot>tr.danger>td,.bootstrap .table>tfoot>tr.danger>th{background-color:#f9cce1}.bootstrap .table-hover>tbody>tr>td.danger:hover,.bootstrap .table-hover>tbody>tr>th.danger:hover,.bootstrap .table-hover>tbody>tr.danger:hover>td,.bootstrap .table-hover>tbody>tr:hover>.danger,.bootstrap .table-hover>tbody>tr.danger:hover>th{background-color:#f6b5d4}@media screen and (max-width: 767px){.bootstrap .table-responsive{width:100%;margin-bottom:12.75px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;-webkit-overflow-scrolling:touch}.bootstrap .table-responsive>.table{margin-bottom:0}.bootstrap .table-responsive>.table>thead>tr>th,.bootstrap .table-responsive>.table>thead>tr>td,.bootstrap .table-responsive>.table>tbody>tr>th,.bootstrap .table-responsive>.table>tbody>tr>td,.bootstrap .table-responsive>.table>tfoot>tr>th,.bootstrap .table-responsive>.table>tfoot>tr>td{white-space:nowrap}.bootstrap .table-responsive>.table-bordered{border:0}.bootstrap .table-responsive>.table-bordered>thead>tr>th:first-child,.bootstrap .table-responsive>.table-bordered>thead>tr>td:first-child,.bootstrap .table-responsive>.table-bordered>tbody>tr>th:first-child,.bootstrap .table-responsive>.table-bordered>tbody>tr>td:first-child,.bootstrap .table-responsive>.table-bordered>tfoot>tr>th:first-child,.bootstrap .table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.bootstrap .table-responsive>.table-bordered>thead>tr>th:last-child,.bootstrap .table-responsive>.table-bordered>thead>tr>td:last-child,.bootstrap .table-responsive>.table-bordered>tbody>tr>th:last-child,.bootstrap .table-responsive>.table-bordered>tbody>tr>td:last-child,.bootstrap .table-responsive>.table-bordered>tfoot>tr>th:last-child,.bootstrap .table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.bootstrap .table-responsive>.table-bordered>tbody>tr:last-child>th,.bootstrap .table-responsive>.table-bordered>tbody>tr:last-child>td,.bootstrap .table-responsive>.table-bordered>tfoot>tr:last-child>th,.bootstrap .table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}.bootstrap fieldset{padding:0;margin:0;border:0;min-width:0}.bootstrap legend{display:block;width:100%;padding:0;margin-bottom:17px;font-size:18px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}.bootstrap label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}.bootstrap input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap input[type="radio"],.bootstrap input[type="checkbox"]{margin:3px 0 0;margin-top:1px \9;line-height:normal}.bootstrap input[type="file"]{display:block}.bootstrap input[type="range"]{display:block;width:100%}.bootstrap select[multiple],.bootstrap select[size]{height:auto}.bootstrap input[type="file"]:focus,.bootstrap input[type="radio"]:focus,.bootstrap input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.bootstrap output{display:block;padding-top:7px;font-size:12px;line-height:1.42857;color:#555}.bootstrap .form-control,.bootstrap input[type="text"],.bootstrap input[type="search"],.bootstrap input[type="password"],.bootstrap textarea,.bootstrap select{display:block;width:100%;height:31px;padding:6px 8px;font-size:12px;line-height:1.42857;color:#555;background-color:#F5F8F9;background-image:none;border:1px solid #C7D6DB;border-radius:3px;-webkit-transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s;-o-transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s;transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s}.bootstrap .form-control:focus,.bootstrap input[type="text"]:focus,.bootstrap input[type="search"]:focus,.bootstrap input[type="password"]:focus,.bootstrap textarea:focus,.bootstrap select:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.bootstrap .form-control::-moz-placeholder,.bootstrap input[type="text"]::-moz-placeholder,.bootstrap input[type="search"]::-moz-placeholder,.bootstrap input[type="password"]::-moz-placeholder,.bootstrap textarea::-moz-placeholder,.bootstrap select::-moz-placeholder{color:#999;opacity:1}.bootstrap .form-control:-ms-input-placeholder,.bootstrap input[type="text"]:-ms-input-placeholder,.bootstrap input[type="search"]:-ms-input-placeholder,.bootstrap input[type="password"]:-ms-input-placeholder,.bootstrap textarea:-ms-input-placeholder,.bootstrap select:-ms-input-placeholder{color:#999}.bootstrap .form-control::-webkit-input-placeholder,.bootstrap input[type="text"]::-webkit-input-placeholder,.bootstrap input[type="search"]::-webkit-input-placeholder,.bootstrap input[type="password"]::-webkit-input-placeholder,.bootstrap textarea::-webkit-input-placeholder,.bootstrap select::-webkit-input-placeholder{color:#999}.bootstrap .form-control[disabled],.bootstrap input[disabled][type="text"],.bootstrap input[disabled][type="search"],.bootstrap input[disabled][type="password"],.bootstrap textarea[disabled],.bootstrap select[disabled],.bootstrap .form-control[readonly],.bootstrap input[readonly][type="text"],.bootstrap input[readonly][type="search"],.bootstrap input[readonly][type="password"],.bootstrap textarea[readonly],.bootstrap select[readonly],fieldset[disabled] .bootstrap .form-control,fieldset[disabled] .bootstrap input[type="text"],fieldset[disabled] .bootstrap input[type="search"],fieldset[disabled] .bootstrap input[type="password"],fieldset[disabled] .bootstrap textarea,fieldset[disabled] .bootstrap select{cursor:not-allowed;background-color:#eee;opacity:1}.bootstrap textarea.form-control,.bootstrap textarea{height:auto}.bootstrap input[type="search"]{-webkit-appearance:none}.bootstrap input[type="date"],.bootstrap input[type="time"],.bootstrap input[type="datetime-local"],.bootstrap input[type="month"]{line-height:31px;line-height:1.42857 \0}.bootstrap input[type="date"].input-sm,.bootstrap .input-group-sm>input[type="date"].form-control,.bootstrap .input-group-sm>input[type="date"][type="text"],.bootstrap .input-group-sm>input[type="date"][type="search"],.bootstrap .input-group-sm>input[type="date"][type="password"],.bootstrap .input-group-sm>input[type="date"].input-group-addon,.bootstrap .input-group-sm>.input-group-btn>input[type="date"].btn,.bootstrap input[type="time"].input-sm,.bootstrap .input-group-sm>input[type="time"].form-control,.bootstrap .input-group-sm>input[type="time"][type="text"],.bootstrap .input-group-sm>input[type="time"][type="search"],.bootstrap .input-group-sm>input[type="time"][type="password"],.bootstrap .input-group-sm>input[type="time"].input-group-addon,.bootstrap .input-group-sm>.input-group-btn>input[type="time"].btn,.bootstrap input[type="datetime-local"].input-sm,.bootstrap .input-group-sm>input[type="datetime-local"].form-control,.bootstrap .input-group-sm>input[type="datetime-local"][type="text"],.bootstrap .input-group-sm>input[type="datetime-local"][type="search"],.bootstrap .input-group-sm>input[type="datetime-local"][type="password"],.bootstrap .input-group-sm>input[type="datetime-local"].input-group-addon,.bootstrap .input-group-sm>.input-group-btn>input[type="datetime-local"].btn,.bootstrap input[type="month"].input-sm,.bootstrap .input-group-sm>input[type="month"].form-control,.bootstrap .input-group-sm>input[type="month"][type="text"],.bootstrap .input-group-sm>input[type="month"][type="search"],.bootstrap .input-group-sm>input[type="month"][type="password"],.bootstrap .input-group-sm>input[type="month"].input-group-addon,.bootstrap .input-group-sm>.input-group-btn>input[type="month"].btn{line-height:28px}.bootstrap input[type="date"].input-lg,.bootstrap .input-group-lg>input[type="date"].form-control,.bootstrap .input-group-lg>input[type="date"][type="text"],.bootstrap .input-group-lg>input[type="date"][type="search"],.bootstrap .input-group-lg>input[type="date"][type="password"],.bootstrap .input-group-lg>input[type="date"].input-group-addon,.bootstrap .input-group-lg>.input-group-btn>input[type="date"].btn,.bootstrap input[type="time"].input-lg,.bootstrap .input-group-lg>input[type="time"].form-control,.bootstrap .input-group-lg>input[type="time"][type="text"],.bootstrap .input-group-lg>input[type="time"][type="search"],.bootstrap .input-group-lg>input[type="time"][type="password"],.bootstrap .input-group-lg>input[type="time"].input-group-addon,.bootstrap .input-group-lg>.input-group-btn>input[type="time"].btn,.bootstrap input[type="datetime-local"].input-lg,.bootstrap .input-group-lg>input[type="datetime-local"].form-control,.bootstrap .input-group-lg>input[type="datetime-local"][type="text"],.bootstrap .input-group-lg>input[type="datetime-local"][type="search"],.bootstrap .input-group-lg>input[type="datetime-local"][type="password"],.bootstrap .input-group-lg>input[type="datetime-local"].input-group-addon,.bootstrap .input-group-lg>.input-group-btn>input[type="datetime-local"].btn,.bootstrap input[type="month"].input-lg,.bootstrap .input-group-lg>input[type="month"].form-control,.bootstrap .input-group-lg>input[type="month"][type="text"],.bootstrap .input-group-lg>input[type="month"][type="search"],.bootstrap .input-group-lg>input[type="month"][type="password"],.bootstrap .input-group-lg>input[type="month"].input-group-addon,.bootstrap .input-group-lg>.input-group-btn>input[type="month"].btn{line-height:42px}.bootstrap .form-group{margin-bottom:15px}.bootstrap .radio,.bootstrap .checkbox{display:block;min-height:17px;margin-top:10px;margin-bottom:10px}.bootstrap .radio label,.bootstrap .checkbox label{padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.bootstrap .radio input[type="radio"],.bootstrap .radio-inline input[type="radio"],.bootstrap .checkbox input[type="checkbox"],.bootstrap .checkbox-inline input[type="checkbox"]{float:left;margin-left:-20px}.bootstrap .radio+.radio,.bootstrap .checkbox+.checkbox{margin-top:-5px}.bootstrap .radio-inline,.bootstrap .checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.bootstrap .radio-inline+.radio-inline,.bootstrap .checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}.bootstrap input[type="radio"][disabled],fieldset[disabled] .bootstrap input[type="radio"],.bootstrap input[type="checkbox"][disabled],fieldset[disabled] .bootstrap input[type="checkbox"],.bootstrap .radio[disabled],fieldset[disabled] .bootstrap .radio,.bootstrap .radio-inline[disabled],fieldset[disabled] .bootstrap .radio-inline,.bootstrap .checkbox[disabled],fieldset[disabled] .bootstrap .checkbox,.bootstrap .checkbox-inline[disabled],fieldset[disabled] .bootstrap .checkbox-inline{cursor:not-allowed}.bootstrap .input-sm,.bootstrap .input-group-sm>.form-control,.bootstrap .input-group-sm>input[type="text"],.bootstrap .input-group-sm>input[type="search"],.bootstrap .input-group-sm>input[type="password"],.bootstrap .input-group-sm>textarea,.bootstrap .input-group-sm>select,.bootstrap .input-group-sm>.input-group-addon,.bootstrap .input-group-sm>.input-group-btn>.btn{height:28px;padding:5px 10px;font-size:11px;line-height:1.5;border-radius:3px}.bootstrap select.input-sm,.bootstrap .input-group-sm>select.form-control,.bootstrap .input-group-sm>select,.bootstrap .input-group-sm>select.input-group-addon,.bootstrap .input-group-sm>.input-group-btn>select.btn{height:28px;line-height:28px}.bootstrap textarea.input-sm,.bootstrap .input-group-sm>textarea.form-control,.bootstrap .input-group-sm>textarea,.bootstrap .input-group-sm>textarea.input-group-addon,.bootstrap .input-group-sm>.input-group-btn>textarea.btn,.bootstrap select[multiple].input-sm,.bootstrap .input-group-sm>select[multiple],.bootstrap .input-group-sm>.input-group-btn>select[multiple].btn{height:auto}.bootstrap .input-lg,.bootstrap .input-group-lg>.form-control,.bootstrap .input-group-lg>input[type="text"],.bootstrap .input-group-lg>input[type="search"],.bootstrap .input-group-lg>input[type="password"],.bootstrap .input-group-lg>textarea,.bootstrap .input-group-lg>select,.bootstrap .input-group-lg>.input-group-addon,.bootstrap .input-group-lg>.input-group-btn>.btn{height:42px;padding:10px 16px;font-size:15px;line-height:1.33;border-radius:6px}.bootstrap select.input-lg,.bootstrap .input-group-lg>select.form-control,.bootstrap .input-group-lg>select,.bootstrap .input-group-lg>select.input-group-addon,.bootstrap .input-group-lg>.input-group-btn>select.btn{height:42px;line-height:42px}.bootstrap textarea.input-lg,.bootstrap .input-group-lg>textarea.form-control,.bootstrap .input-group-lg>textarea,.bootstrap .input-group-lg>textarea.input-group-addon,.bootstrap .input-group-lg>.input-group-btn>textarea.btn,.bootstrap select[multiple].input-lg,.bootstrap .input-group-lg>select[multiple],.bootstrap .input-group-lg>.input-group-btn>select[multiple].btn{height:auto}.bootstrap .has-feedback{position:relative}.bootstrap .has-feedback .form-control,.bootstrap .has-feedback input[type="text"],.bootstrap .has-feedback input[type="search"],.bootstrap .has-feedback input[type="password"],.bootstrap .has-feedback textarea,.bootstrap .has-feedback select{padding-right:38.75px}.bootstrap .form-control-feedback{position:absolute;top:22px;right:0;z-index:2;display:block;width:31px;height:31px;line-height:31px;text-align:center}.bootstrap .input-lg+.form-control-feedback,.bootstrap .input-group-lg>.form-control+.form-control-feedback,.bootstrap .input-group-lg>input[type="text"]+.form-control-feedback,.bootstrap .input-group-lg>input[type="search"]+.form-control-feedback,.bootstrap .input-group-lg>input[type="password"]+.form-control-feedback,.bootstrap .input-group-lg>textarea+.form-control-feedback,.bootstrap .input-group-lg>select+.form-control-feedback,.bootstrap .input-group-lg>.input-group-addon+.form-control-feedback,.bootstrap .input-group-lg>.input-group-btn>.btn+.form-control-feedback{width:42px;height:42px;line-height:42px}.bootstrap .input-sm+.form-control-feedback,.bootstrap .input-group-sm>.form-control+.form-control-feedback,.bootstrap .input-group-sm>input[type="text"]+.form-control-feedback,.bootstrap .input-group-sm>input[type="search"]+.form-control-feedback,.bootstrap .input-group-sm>input[type="password"]+.form-control-feedback,.bootstrap .input-group-sm>textarea+.form-control-feedback,.bootstrap .input-group-sm>select+.form-control-feedback,.bootstrap .input-group-sm>.input-group-addon+.form-control-feedback,.bootstrap .input-group-sm>.input-group-btn>.btn+.form-control-feedback{width:28px;height:28px;line-height:28px}.bootstrap .has-success .help-block,.bootstrap .has-success .control-label,.bootstrap .has-success .radio,.bootstrap .has-success .checkbox,.bootstrap .has-success .radio-inline,.bootstrap .has-success .checkbox-inline{color:#3c763d}.bootstrap .has-success .form-control,.bootstrap .has-success input[type="text"],.bootstrap .has-success input[type="search"],.bootstrap .has-success input[type="password"],.bootstrap .has-success textarea,.bootstrap .has-success select{background-color:#cce9d7;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.bootstrap .has-success .form-control:focus,.bootstrap .has-success input[type="text"]:focus,.bootstrap .has-success input[type="search"]:focus,.bootstrap .has-success input[type="password"]:focus,.bootstrap .has-success textarea:focus,.bootstrap .has-success select:focus{-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168}.bootstrap .has-success .input-group-addon{color:#3c763d;background-color:#cce9d7}.bootstrap .has-success .form-control-feedback{color:#3c763d}.bootstrap .has-warning .help-block,.bootstrap .has-warning .control-label,.bootstrap .has-warning .radio,.bootstrap .has-warning .checkbox,.bootstrap .has-warning .radio-inline,.bootstrap .has-warning .checkbox-inline{color:#8a6d3b}.bootstrap .has-warning .form-control,.bootstrap .has-warning input[type="text"],.bootstrap .has-warning input[type="search"],.bootstrap .has-warning input[type="password"],.bootstrap .has-warning textarea,.bootstrap .has-warning select{background-color:#fef1d3;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.bootstrap .has-warning .form-control:focus,.bootstrap .has-warning input[type="text"]:focus,.bootstrap .has-warning input[type="search"]:focus,.bootstrap .has-warning input[type="password"]:focus,.bootstrap .has-warning textarea:focus,.bootstrap .has-warning select:focus{-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b}.bootstrap .has-warning .input-group-addon{color:#8a6d3b;background-color:#fef1d3}.bootstrap .has-warning .form-control-feedback{color:#8a6d3b}.bootstrap .has-error .help-block,.bootstrap .has-error .control-label,.bootstrap .has-error .radio,.bootstrap .has-error .checkbox,.bootstrap .has-error .radio-inline,.bootstrap .has-error .checkbox-inline{color:#a94442}.bootstrap .has-error .form-control,.bootstrap .has-error input[type="text"],.bootstrap .has-error input[type="search"],.bootstrap .has-error input[type="password"],.bootstrap .has-error textarea,.bootstrap .has-error select{background-color:#f9cce1;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.bootstrap .has-error .form-control:focus,.bootstrap .has-error input[type="text"]:focus,.bootstrap .has-error input[type="search"]:focus,.bootstrap .has-error input[type="password"]:focus,.bootstrap .has-error textarea:focus,.bootstrap .has-error select:focus{-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483}.bootstrap .has-error .input-group-addon{color:#a94442;background-color:#f9cce1}.bootstrap .has-error .form-control-feedback{color:#a94442}.bootstrap .form-control-static{margin-bottom:0}.bootstrap .help-block{display:block;margin-top:5px;margin-bottom:10px;color:#959595}@media (min-width: 768px){.bootstrap .form-inline .form-group,.bootstrap .navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.bootstrap .form-inline .form-control,.bootstrap .navbar-form .form-control,.bootstrap .form-inline input[type="text"],.bootstrap .navbar-form input[type="text"],.bootstrap .form-inline input[type="search"],.bootstrap .navbar-form input[type="search"],.bootstrap .form-inline input[type="password"],.bootstrap .navbar-form input[type="password"],.bootstrap .form-inline textarea,.bootstrap .navbar-form textarea,.bootstrap .form-inline select,.bootstrap .navbar-form select{display:inline-block;width:auto;vertical-align:middle}.bootstrap .form-inline .input-group,.bootstrap .navbar-form .input-group{display:inline-table;vertical-align:middle}.bootstrap .form-inline .input-group .input-group-addon,.bootstrap .navbar-form .input-group .input-group-addon,.bootstrap .form-inline .input-group .input-group-btn,.bootstrap .navbar-form .input-group .input-group-btn,.bootstrap .form-inline .input-group .form-control,.bootstrap .navbar-form .input-group .form-control,.bootstrap .form-inline .input-group input[type="text"],.bootstrap .navbar-form .input-group input[type="text"],.bootstrap .form-inline .input-group input[type="search"],.bootstrap .navbar-form .input-group input[type="search"],.bootstrap .form-inline .input-group input[type="password"],.bootstrap .navbar-form .input-group input[type="password"],.bootstrap .form-inline .input-group textarea,.bootstrap .navbar-form .input-group textarea,.bootstrap .form-inline .input-group select,.bootstrap .navbar-form .input-group select{width:auto}.bootstrap .form-inline .input-group>.form-control,.bootstrap .navbar-form .input-group>.form-control,.bootstrap .form-inline .input-group>input[type="text"],.bootstrap .navbar-form .input-group>input[type="text"],.bootstrap .form-inline .input-group>input[type="search"],.bootstrap .navbar-form .input-group>input[type="search"],.bootstrap .form-inline .input-group>input[type="password"],.bootstrap .navbar-form .input-group>input[type="password"],.bootstrap .form-inline .input-group>textarea,.bootstrap .navbar-form .input-group>textarea,.bootstrap .form-inline .input-group>select,.bootstrap .navbar-form .input-group>select{width:100%}.bootstrap .form-inline .control-label,.bootstrap .navbar-form .control-label{margin-bottom:0;vertical-align:middle}.bootstrap .form-inline .radio,.bootstrap .navbar-form .radio,.bootstrap .form-inline .checkbox,.bootstrap .navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.bootstrap .form-inline .radio input[type="radio"],.bootstrap .navbar-form .radio input[type="radio"],.bootstrap .form-inline .checkbox input[type="checkbox"],.bootstrap .navbar-form .checkbox input[type="checkbox"]{float:none;margin-left:0}.bootstrap .form-inline .has-feedback .form-control-feedback,.bootstrap .navbar-form .has-feedback .form-control-feedback{top:0}}.bootstrap .form-horizontal .radio,.bootstrap .form-horizontal .checkbox,.bootstrap .form-horizontal .radio-inline,.bootstrap .form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.bootstrap .form-horizontal .radio,.bootstrap .form-horizontal .checkbox{min-height:24px}.bootstrap .form-horizontal .form-group{margin-left:-5px;margin-right:-5px}.bootstrap .form-horizontal .form-group:before,.bootstrap .form-horizontal .form-group:after{content:" ";display:table}.bootstrap .form-horizontal .form-group:after{clear:both}.bootstrap .form-horizontal .form-control-static{padding-top:7px;padding-bottom:7px}@media (min-width: 768px){.bootstrap .form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.bootstrap .form-horizontal .has-feedback .form-control-feedback{top:0;right:5px}.bootstrap .btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 8px;font-size:12px;line-height:1.42857;border-radius:3px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.bootstrap .btn:focus,.bootstrap .btn:active:focus,.bootstrap .btn.active:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.bootstrap .btn:hover,.bootstrap .btn:focus{color:#363A41;text-decoration:none}.bootstrap .btn:active,.bootstrap .btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.bootstrap .btn.disabled,.bootstrap .btn[disabled],fieldset[disabled] .bootstrap .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.bootstrap .btn-left{text-align:left}.bootstrap .btn-right{text-align:right}.bootstrap .btn-default{color:#363A41;background-color:#fff;border-color:#DEDEDE}.bootstrap .btn-default:hover,.bootstrap .btn-default:focus,.bootstrap .btn-default:active,.bootstrap .btn-default.active,.open>.bootstrap .btn-default.dropdown-toggle{color:#363A41;background-color:#e6e6e6;border-color:#bfbfbf}.bootstrap .btn-default:active,.bootstrap .btn-default.active,.open>.bootstrap .btn-default.dropdown-toggle{background-image:none}.bootstrap .btn-default.disabled,.bootstrap .btn-default.disabled:hover,.bootstrap .btn-default.disabled:focus,.bootstrap .btn-default.disabled:active,.bootstrap .btn-default.disabled.active,.bootstrap .btn-default[disabled],.bootstrap .btn-default[disabled]:hover,.bootstrap .btn-default[disabled]:focus,.bootstrap .btn-default[disabled]:active,.bootstrap .btn-default[disabled].active,fieldset[disabled] .bootstrap .btn-default,fieldset[disabled] .bootstrap .btn-default:hover,fieldset[disabled] .bootstrap .btn-default:focus,fieldset[disabled] .bootstrap .btn-default:active,fieldset[disabled] .bootstrap .btn-default.active{background-color:#fff;border-color:#DEDEDE}.bootstrap .btn-default .badge,.bootstrap .btn-default #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper .bootstrap .btn-default .notifs_badge,.bootstrap .btn-default .module-badge-popular,.bootstrap .btn-default .module-badge-partner,.bootstrap .btn-default .module-badge-bought{color:#fff;background-color:#363A41}.bootstrap .btn-primary{color:#363A41;background-color:#2eacce;border-color:#2eacce}.bootstrap .btn-primary:hover,.bootstrap .btn-primary:focus,.bootstrap .btn-primary:active,.bootstrap .btn-primary.active,.open>.bootstrap .btn-primary.dropdown-toggle{color:#363A41;background-color:#2589a4;border-color:#23829c}.bootstrap .btn-primary:active,.bootstrap .btn-primary.active,.open>.bootstrap .btn-primary.dropdown-toggle{background-image:none}.bootstrap .btn-primary.disabled,.bootstrap .btn-primary.disabled:hover,.bootstrap .btn-primary.disabled:focus,.bootstrap .btn-primary.disabled:active,.bootstrap .btn-primary.disabled.active,.bootstrap .btn-primary[disabled],.bootstrap .btn-primary[disabled]:hover,.bootstrap .btn-primary[disabled]:focus,.bootstrap .btn-primary[disabled]:active,.bootstrap .btn-primary[disabled].active,fieldset[disabled] .bootstrap .btn-primary,fieldset[disabled] .bootstrap .btn-primary:hover,fieldset[disabled] .bootstrap .btn-primary:focus,fieldset[disabled] .bootstrap .btn-primary:active,fieldset[disabled] .bootstrap .btn-primary.active{background-color:#2eacce;border-color:#2eacce}.bootstrap .btn-primary .badge,.bootstrap .btn-primary #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper .bootstrap .btn-primary .notifs_badge,.bootstrap .btn-primary .module-badge-popular,.bootstrap .btn-primary .module-badge-partner,.bootstrap .btn-primary .module-badge-bought{color:#2eacce;background-color:#363A41}.bootstrap .btn-success{color:#fff;background-color:#72C279;border-color:#60ba68}.bootstrap .btn-success:hover,.bootstrap .btn-success:focus,.bootstrap .btn-success:active,.bootstrap .btn-success.active,.open>.bootstrap .btn-success.dropdown-toggle{color:#fff;background-color:#4eb357;border-color:#439a4a}.bootstrap .btn-success:active,.bootstrap .btn-success.active,.open>.bootstrap .btn-success.dropdown-toggle{background-image:none}.bootstrap .btn-success.disabled,.bootstrap .btn-success.disabled:hover,.bootstrap .btn-success.disabled:focus,.bootstrap .btn-success.disabled:active,.bootstrap .btn-success.disabled.active,.bootstrap .btn-success[disabled],.bootstrap .btn-success[disabled]:hover,.bootstrap .btn-success[disabled]:focus,.bootstrap .btn-success[disabled]:active,.bootstrap .btn-success[disabled].active,fieldset[disabled] .bootstrap .btn-success,fieldset[disabled] .bootstrap .btn-success:hover,fieldset[disabled] .bootstrap .btn-success:focus,fieldset[disabled] .bootstrap .btn-success:active,fieldset[disabled] .bootstrap .btn-success.active{background-color:#72C279;border-color:#60ba68}.bootstrap .btn-success .badge,.bootstrap .btn-success #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper .bootstrap .btn-success .notifs_badge,.bootstrap .btn-success .module-badge-popular,.bootstrap .btn-success .module-badge-partner,.bootstrap .btn-success .module-badge-bought{color:#72C279;background-color:#fff}.bootstrap .btn-info{color:#fff;background-color:#25b9d7;border-color:#21a6c1}.bootstrap .btn-info:hover,.bootstrap .btn-info:focus,.bootstrap .btn-info:active,.bootstrap .btn-info.active,.open>.bootstrap .btn-info.dropdown-toggle{color:#fff;background-color:#1e94ab;border-color:#18798d}.bootstrap .btn-info:active,.bootstrap .btn-info.active,.open>.bootstrap .btn-info.dropdown-toggle{background-image:none}.bootstrap .btn-info.disabled,.bootstrap .btn-info.disabled:hover,.bootstrap .btn-info.disabled:focus,.bootstrap .btn-info.disabled:active,.bootstrap .btn-info.disabled.active,.bootstrap .btn-info[disabled],.bootstrap .btn-info[disabled]:hover,.bootstrap .btn-info[disabled]:focus,.bootstrap .btn-info[disabled]:active,.bootstrap .btn-info[disabled].active,fieldset[disabled] .bootstrap .btn-info,fieldset[disabled] .bootstrap .btn-info:hover,fieldset[disabled] .bootstrap .btn-info:focus,fieldset[disabled] .bootstrap .btn-info:active,fieldset[disabled] .bootstrap .btn-info.active{background-color:#25b9d7;border-color:#21a6c1}.bootstrap .btn-info .badge,.bootstrap .btn-info #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper .bootstrap .btn-info .notifs_badge,.bootstrap .btn-info .module-badge-popular,.bootstrap .btn-info .module-badge-partner,.bootstrap .btn-info .module-badge-bought{color:#25b9d7;background-color:#fff}.bootstrap .btn-warning{color:#fff;background-color:#fbbb22;border-color:#fbb309}.bootstrap .btn-warning:hover,.bootstrap .btn-warning:focus,.bootstrap .btn-warning:active,.bootstrap .btn-warning.active,.open>.bootstrap .btn-warning.dropdown-toggle{color:#fff;background-color:#e6a304;border-color:#c38a04}.bootstrap .btn-warning:active,.bootstrap .btn-warning.active,.open>.bootstrap .btn-warning.dropdown-toggle{background-image:none}.bootstrap .btn-warning.disabled,.bootstrap .btn-warning.disabled:hover,.bootstrap .btn-warning.disabled:focus,.bootstrap .btn-warning.disabled:active,.bootstrap .btn-warning.disabled.active,.bootstrap .btn-warning[disabled],.bootstrap .btn-warning[disabled]:hover,.bootstrap .btn-warning[disabled]:focus,.bootstrap .btn-warning[disabled]:active,.bootstrap .btn-warning[disabled].active,fieldset[disabled] .bootstrap .btn-warning,fieldset[disabled] .bootstrap .btn-warning:hover,fieldset[disabled] .bootstrap .btn-warning:focus,fieldset[disabled] .bootstrap .btn-warning:active,fieldset[disabled] .bootstrap .btn-warning.active{background-color:#fbbb22;border-color:#fbb309}.bootstrap .btn-warning .badge,.bootstrap .btn-warning #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper .bootstrap .btn-warning .notifs_badge,.bootstrap .btn-warning .module-badge-popular,.bootstrap .btn-warning .module-badge-partner,.bootstrap .btn-warning .module-badge-bought{color:#fbbb22;background-color:#fff}.bootstrap .btn-danger{color:#fff;background-color:#E08F95;border-color:#da7b82}.bootstrap .btn-danger:hover,.bootstrap .btn-danger:focus,.bootstrap .btn-danger:active,.bootstrap .btn-danger.active,.open>.bootstrap .btn-danger.dropdown-toggle{color:#fff;background-color:#d5676f;border-color:#cd4b55}.bootstrap .btn-danger:active,.bootstrap .btn-danger.active,.open>.bootstrap .btn-danger.dropdown-toggle{background-image:none}.bootstrap .btn-danger.disabled,.bootstrap .btn-danger.disabled:hover,.bootstrap .btn-danger.disabled:focus,.bootstrap .btn-danger.disabled:active,.bootstrap .btn-danger.disabled.active,.bootstrap .btn-danger[disabled],.bootstrap .btn-danger[disabled]:hover,.bootstrap .btn-danger[disabled]:focus,.bootstrap .btn-danger[disabled]:active,.bootstrap .btn-danger[disabled].active,fieldset[disabled] .bootstrap .btn-danger,fieldset[disabled] .bootstrap .btn-danger:hover,fieldset[disabled] .bootstrap .btn-danger:focus,fieldset[disabled] .bootstrap .btn-danger:active,fieldset[disabled] .bootstrap .btn-danger.active{background-color:#E08F95;border-color:#da7b82}.bootstrap .btn-danger .badge,.bootstrap .btn-danger #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper .bootstrap .btn-danger .notifs_badge,.bootstrap .btn-danger .module-badge-popular,.bootstrap .btn-danger .module-badge-partner,.bootstrap .btn-danger .module-badge-bought{color:#E08F95;background-color:#fff}.bootstrap .btn-link{color:#00aff0;font-weight:normal;cursor:pointer;border-radius:0}.bootstrap .btn-link,.bootstrap .btn-link:active,.bootstrap .btn-link[disabled],fieldset[disabled] .bootstrap .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.bootstrap .btn-link,.bootstrap .btn-link:hover,.bootstrap .btn-link:focus,.bootstrap .btn-link:active{border-color:transparent}.bootstrap .btn-link:hover,.bootstrap .btn-link:focus{color:#0077a4;text-decoration:underline;background-color:transparent}.bootstrap .btn-link[disabled]:hover,.bootstrap .btn-link[disabled]:focus,fieldset[disabled] .bootstrap .btn-link:hover,fieldset[disabled] .bootstrap .btn-link:focus{color:#999;text-decoration:none}.bootstrap .btn-lg,.bootstrap .btn-group-lg>.btn{padding:10px 16px;font-size:15px;line-height:1.33;border-radius:3px}.bootstrap .btn-sm,.bootstrap .btn-group-sm>.btn{padding:5px 10px;font-size:11px;line-height:1.5;border-radius:3px}.bootstrap .btn-xs,.bootstrap .btn-group-xs>.btn{padding:1px 5px;font-size:11px;line-height:1.5;border-radius:3px}.bootstrap .btn-block{display:block;width:100%}.bootstrap .btn-block+.btn-block{margin-top:5px}.bootstrap input[type="submit"].btn-block,.bootstrap input[type="reset"].btn-block,.bootstrap input[type="button"].btn-block{width:100%}.bootstrap .fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.bootstrap .fade.in{opacity:1}.bootstrap .collapse{display:none}.bootstrap .collapse.in{display:block}.bootstrap tr.collapse.in{display:table-row}.bootstrap tbody.collapse.in{display:table-row-group}.bootstrap .collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height 0.35s ease;-o-transition:height 0.35s ease;transition:height 0.35s ease}.bootstrap .caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.bootstrap .dropdown{position:relative}.bootstrap .dropdown-toggle:focus{outline:0}.bootstrap .dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:12px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:3px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.bootstrap .dropdown-menu.pull-right{right:0;left:auto}.bootstrap .dropdown-menu .divider{height:1px;margin:7.5px 0;overflow:hidden;background-color:#e5e5e5}.bootstrap .dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857;color:#333;white-space:nowrap}.bootstrap .dropdown-menu>li>a:hover,.bootstrap .dropdown-menu>li>a:focus{text-decoration:none;color:#fff;background-color:#00aff0}.bootstrap .dropdown-menu>.active>a,.bootstrap .dropdown-menu>.active>a:hover,.bootstrap .dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#00aff0}.bootstrap .dropdown-menu>.disabled>a,.bootstrap .dropdown-menu>.disabled>a:hover,.bootstrap .dropdown-menu>.disabled>a:focus{color:#999}.bootstrap .dropdown-menu>.disabled>a:hover,.bootstrap .dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.bootstrap .open>.dropdown-menu{display:block}.bootstrap .open>a{outline:0}.bootstrap .dropdown-menu-right{left:auto;right:0}.bootstrap .dropdown-menu-left{left:0;right:auto}.bootstrap .dropdown-header{display:block;padding:3px 20px;font-size:11px;line-height:1.42857;color:#999}.bootstrap .dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.bootstrap .pull-right>.dropdown-menu{right:0;left:auto}.bootstrap .dropup .caret,.bootstrap .navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.bootstrap .dropup .dropdown-menu,.bootstrap .navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width: 768px){.bootstrap .navbar-right .dropdown-menu,.bootstrap #header_employee_box .dropdown-menu{right:0;left:auto}.bootstrap .navbar-right .dropdown-menu-left,.bootstrap #header_employee_box .dropdown-menu-left{left:0;right:auto}}.bootstrap .btn-group,.bootstrap .btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.bootstrap .btn-group>.btn,.bootstrap .btn-group-vertical>.btn{position:relative;float:left}.bootstrap .btn-group>.btn:hover,.bootstrap .btn-group>.btn:focus,.bootstrap .btn-group>.btn:active,.bootstrap .btn-group>.btn.active,.bootstrap .btn-group-vertical>.btn:hover,.bootstrap .btn-group-vertical>.btn:focus,.bootstrap .btn-group-vertical>.btn:active,.bootstrap .btn-group-vertical>.btn.active{z-index:2}.bootstrap .btn-group>.btn:focus,.bootstrap .btn-group-vertical>.btn:focus{outline:0}.bootstrap .btn-group .btn+.btn,.bootstrap .btn-group .btn+.btn-group,.bootstrap .btn-group .btn-group+.btn,.bootstrap .btn-group .btn-group+.btn-group{margin-left:-1px}.bootstrap .btn-toolbar{margin-left:-5px}.bootstrap .btn-toolbar:before,.bootstrap .btn-toolbar:after{content:" ";display:table}.bootstrap .btn-toolbar:after{clear:both}.bootstrap .btn-toolbar .btn-group,.bootstrap .btn-toolbar .input-group{float:left}.bootstrap .btn-toolbar>.btn,.bootstrap .btn-toolbar>.btn-group,.bootstrap .btn-toolbar>.input-group{margin-left:5px}.bootstrap .btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.bootstrap .btn-group>.btn:first-child{margin-left:0}.bootstrap .btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.bootstrap .btn-group>.btn:last-child:not(:first-child),.bootstrap .btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.bootstrap .btn-group>.dropdown-toggle:not(:first-child){border-left:0}.bootstrap .btn-group>.btn-group{float:left}.bootstrap .btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.bootstrap .btn-group>.btn-group:first-child>.btn:last-child,.bootstrap .btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.bootstrap .btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.bootstrap .btn-group .dropdown-toggle:active,.bootstrap .btn-group.open .dropdown-toggle{outline:0}.bootstrap .btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.bootstrap .btn-group>.btn-lg+.dropdown-toggle,.bootstrap .btn-group-lg.btn-group>.btn+.dropdown-toggle{padding-left:12px;padding-right:12px}.bootstrap .btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.bootstrap .btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.bootstrap .btn .caret{margin-left:0}.bootstrap .btn-lg .caret,.bootstrap .btn-group-lg>.btn .caret{border-width:5px 5px 0;border-bottom-width:0}.bootstrap .dropup .btn-lg .caret,.bootstrap .dropup .btn-group-lg>.btn .caret{border-width:0 5px 5px}.bootstrap .btn-group-vertical>.btn,.bootstrap .btn-group-vertical>.btn-group,.bootstrap .btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.bootstrap .btn-group-vertical>.btn-group:before,.bootstrap .btn-group-vertical>.btn-group:after{content:" ";display:table}.bootstrap .btn-group-vertical>.btn-group:after{clear:both}.bootstrap .btn-group-vertical>.btn-group>.btn{float:none}.bootstrap .btn-group-vertical>.btn+.btn,.bootstrap .btn-group-vertical>.btn+.btn-group,.bootstrap .btn-group-vertical>.btn-group+.btn,.bootstrap .btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.bootstrap .btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.bootstrap .btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:3px;border-bottom-right-radius:0;border-bottom-left-radius:0}.bootstrap .btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:3px;border-top-right-radius:0;border-top-left-radius:0}.bootstrap .btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.bootstrap .btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.bootstrap .btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.bootstrap .btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.bootstrap .btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.bootstrap .btn-group-justified>.btn,.bootstrap .btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.bootstrap .btn-group-justified>.btn-group .btn{width:100%}.bootstrap [data-toggle="buttons"]>.btn>input[type="radio"],.bootstrap [data-toggle="buttons"]>.btn>input[type="checkbox"]{position:absolute;z-index:-1;opacity:0}.bootstrap .input-group{position:relative;display:table;border-collapse:separate}.bootstrap .input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.bootstrap .input-group .form-control,.bootstrap .input-group input[type="text"],.bootstrap .input-group input[type="search"],.bootstrap .input-group input[type="password"],.bootstrap .input-group textarea,.bootstrap .input-group select{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.bootstrap .input-group-addon,.bootstrap .input-group-btn,.bootstrap .input-group .form-control,.bootstrap .input-group input[type="text"],.bootstrap .input-group input[type="search"],.bootstrap .input-group input[type="password"],.bootstrap .input-group textarea,.bootstrap .input-group select{display:table-cell}.bootstrap .input-group-addon:not(:first-child):not(:last-child),.bootstrap .input-group-btn:not(:first-child):not(:last-child),.bootstrap .input-group .form-control:not(:first-child):not(:last-child),.bootstrap .input-group input[type="text"]:not(:first-child):not(:last-child),.bootstrap .input-group input[type="search"]:not(:first-child):not(:last-child),.bootstrap .input-group input[type="password"]:not(:first-child):not(:last-child),.bootstrap .input-group textarea:not(:first-child):not(:last-child),.bootstrap .input-group select:not(:first-child):not(:last-child){border-radius:0}.bootstrap .input-group-addon,.bootstrap .input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.bootstrap .input-group-addon{padding:6px 8px;font-size:12px;font-weight:normal;line-height:1;color:#555;text-align:center;background-color:#F5F8F9;border-top:1px solid #C7D6DB;border-left:1px solid #C7D6DB;border-bottom:1px solid #C7D6DB;border-right:1px solid #C7D6DB;border-radius:3px}.bootstrap .input-group-addon.input-sm,.bootstrap .input-group-sm>.input-group-addon,.bootstrap .input-group-sm>.input-group-btn>.input-group-addon.btn{padding:5px 10px;font-size:11px;border-radius:3px}.bootstrap .input-group-addon.input-lg,.bootstrap .input-group-lg>.input-group-addon,.bootstrap .input-group-lg>.input-group-btn>.input-group-addon.btn{padding:10px 16px;font-size:15px;border-radius:6px}.bootstrap .input-group-addon input[type="radio"],.bootstrap .input-group-addon input[type="checkbox"]{margin-top:0}.bootstrap .input-group .form-control:first-child,.bootstrap .input-group input[type="text"]:first-child,.bootstrap .input-group input[type="search"]:first-child,.bootstrap .input-group input[type="password"]:first-child,.bootstrap .input-group textarea:first-child,.bootstrap .input-group select:first-child,.bootstrap .input-group-addon:first-child,.bootstrap .input-group-btn:first-child>.btn,.bootstrap .input-group-btn:first-child>.btn-group>.btn,.bootstrap .input-group-btn:first-child>.dropdown-toggle,.bootstrap .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.bootstrap .input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.bootstrap .input-group-addon:first-child{border-right:0}.bootstrap .input-group .form-control:last-child,.bootstrap .input-group input[type="text"]:last-child,.bootstrap .input-group input[type="search"]:last-child,.bootstrap .input-group input[type="password"]:last-child,.bootstrap .input-group textarea:last-child,.bootstrap .input-group select:last-child,.bootstrap .input-group-addon:last-child,.bootstrap .input-group-btn:last-child>.btn,.bootstrap .input-group-btn:last-child>.btn-group>.btn,.bootstrap .input-group-btn:last-child>.dropdown-toggle,.bootstrap .input-group-btn:first-child>.btn:not(:first-child),.bootstrap .input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.bootstrap .input-group-addon:last-child{border-left:0}.bootstrap .input-group-btn{position:relative;font-size:0;white-space:nowrap}.bootstrap .input-group-btn>.btn{position:relative}.bootstrap .input-group-btn>.btn+.btn{margin-left:-1px}.bootstrap .input-group-btn>.btn:hover,.bootstrap .input-group-btn>.btn:focus,.bootstrap .input-group-btn>.btn:active{z-index:2}.bootstrap .input-group-btn:first-child>.btn,.bootstrap .input-group-btn:first-child>.btn-group{margin-right:-1px}.bootstrap .input-group-btn:last-child>.btn,.bootstrap .input-group-btn:last-child>.btn-group{margin-left:-1px}.bootstrap .nav,.bootstrap #header_notifs_icon_wrapper,.bootstrap #header_employee_box,.bootstrap #header_quick,.bootstrap #header_shop{margin-bottom:0;padding-left:0;list-style:none}.bootstrap .nav:before,.bootstrap #header_notifs_icon_wrapper:before,.bootstrap #header_employee_box:before,.bootstrap #header_quick:before,.bootstrap #header_shop:before,.bootstrap .nav:after,.bootstrap #header_notifs_icon_wrapper:after,.bootstrap #header_employee_box:after,.bootstrap #header_quick:after,.bootstrap #header_shop:after{content:" ";display:table}.bootstrap .nav:after,.bootstrap #header_notifs_icon_wrapper:after,.bootstrap #header_employee_box:after,.bootstrap #header_quick:after,.bootstrap #header_shop:after{clear:both}.bootstrap .nav>li,.bootstrap #header_notifs_icon_wrapper>li,.bootstrap #header_employee_box>li,.bootstrap #header_quick>li,.bootstrap #header_shop>li{position:relative;display:block}.bootstrap .nav>li>a,.bootstrap #header_notifs_icon_wrapper>li>a,.bootstrap #header_employee_box>li>a,.bootstrap #header_quick>li>a,.bootstrap #header_shop>li>a{position:relative;display:block;padding:10px 15px}.bootstrap .nav>li>a:hover,.bootstrap #header_notifs_icon_wrapper>li>a:hover,.bootstrap #header_employee_box>li>a:hover,.bootstrap #header_quick>li>a:hover,.bootstrap #header_shop>li>a:hover,.bootstrap .nav>li>a:focus,.bootstrap #header_notifs_icon_wrapper>li>a:focus,.bootstrap #header_employee_box>li>a:focus,.bootstrap #header_quick>li>a:focus,.bootstrap #header_shop>li>a:focus{text-decoration:none}.bootstrap .nav>li.disabled>a,.bootstrap #header_notifs_icon_wrapper>li.disabled>a,.bootstrap #header_employee_box>li.disabled>a,.bootstrap #header_quick>li.disabled>a,.bootstrap #header_shop>li.disabled>a{color:#999}.bootstrap .nav>li.disabled>a:hover,.bootstrap #header_notifs_icon_wrapper>li.disabled>a:hover,.bootstrap #header_employee_box>li.disabled>a:hover,.bootstrap #header_quick>li.disabled>a:hover,.bootstrap #header_shop>li.disabled>a:hover,.bootstrap .nav>li.disabled>a:focus,.bootstrap #header_notifs_icon_wrapper>li.disabled>a:focus,.bootstrap #header_employee_box>li.disabled>a:focus,.bootstrap #header_quick>li.disabled>a:focus,.bootstrap #header_shop>li.disabled>a:focus{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.bootstrap .nav .open>a,.bootstrap #header_notifs_icon_wrapper .open>a,.bootstrap #header_employee_box .open>a,.bootstrap #header_quick .open>a,.bootstrap #header_shop .open>a,.bootstrap .nav .open>a:hover,.bootstrap #header_notifs_icon_wrapper .open>a:hover,.bootstrap #header_employee_box .open>a:hover,.bootstrap #header_quick .open>a:hover,.bootstrap #header_shop .open>a:hover,.bootstrap .nav .open>a:focus,.bootstrap #header_notifs_icon_wrapper .open>a:focus,.bootstrap #header_employee_box .open>a:focus,.bootstrap #header_quick .open>a:focus,.bootstrap #header_shop .open>a:focus{background-color:#eee;border-color:#00aff0}.bootstrap .nav .nav-divider,.bootstrap #header_notifs_icon_wrapper .nav-divider,.bootstrap #header_employee_box .nav-divider,.bootstrap #header_quick .nav-divider,.bootstrap #header_shop .nav-divider{height:1px;margin:7.5px 0;overflow:hidden;background-color:#e5e5e5}.bootstrap .nav>li>a>img,.bootstrap #header_notifs_icon_wrapper>li>a>img,.bootstrap #header_employee_box>li>a>img,.bootstrap #header_quick>li>a>img,.bootstrap #header_shop>li>a>img{max-width:none}.bootstrap .nav-tabs{border-bottom:1px solid #ddd}.bootstrap .nav-tabs>li{float:left;margin-bottom:-1px}.bootstrap .nav-tabs>li>a{margin-right:2px;line-height:1.42857;border:1px solid transparent;border-radius:3px 3px 0 0}.bootstrap .nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.bootstrap .nav-tabs>li.active>a,.bootstrap .nav-tabs>li.active>a:hover,.bootstrap .nav-tabs>li.active>a:focus{color:#555;background-color:#EFF1F2;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.bootstrap .nav-pills>li{float:left}.bootstrap .nav-pills>li>a{border-radius:3px}.bootstrap .nav-pills>li+li{margin-left:2px}.bootstrap .nav-pills>li.active>a,.bootstrap .nav-pills>li.active>a:hover,.bootstrap .nav-pills>li.active>a:focus{color:#fff;background-color:#00aff0}.bootstrap .nav-stacked>li{float:none}.bootstrap .nav-stacked>li+li{margin-top:2px;margin-left:0}.bootstrap .nav-justified,.bootstrap .nav-tabs.nav-justified{width:100%}.bootstrap .nav-justified>li,.bootstrap .nav-tabs.nav-justified>li{float:none}.bootstrap .nav-justified>li>a,.bootstrap .nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.bootstrap .nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width: 768px){.bootstrap .nav-justified>li,.bootstrap .nav-tabs.nav-justified>li{display:table-cell;width:1%}.bootstrap .nav-justified>li>a,.bootstrap .nav-tabs.nav-justified>li>a{margin-bottom:0}}.bootstrap .nav-tabs-justified,.bootstrap .nav-tabs.nav-justified{border-bottom:0}.bootstrap .nav-tabs-justified>li>a,.bootstrap .nav-tabs.nav-justified>li>a{margin-right:0;border-radius:3px}.bootstrap .nav-tabs-justified>.active>a,.bootstrap .nav-tabs.nav-justified>.active>a,.bootstrap .nav-tabs-justified>.active>a:hover,.bootstrap .nav-tabs.nav-justified>.active>a:hover,.bootstrap .nav-tabs-justified>.active>a:focus,.bootstrap .nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width: 768px){.bootstrap .nav-tabs-justified>li>a,.bootstrap .nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:3px 3px 0 0}.bootstrap .nav-tabs-justified>.active>a,.bootstrap .nav-tabs.nav-justified>.active>a,.bootstrap .nav-tabs-justified>.active>a:hover,.bootstrap .nav-tabs.nav-justified>.active>a:hover,.bootstrap .nav-tabs-justified>.active>a:focus,.bootstrap .nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#EFF1F2}}.bootstrap .tab-content>.tab-pane{display:none}.bootstrap .tab-content>.active{display:block}.bootstrap .nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.bootstrap .navbar,.bootstrap #header_infos{position:relative;min-height:35px;margin-bottom:17px;border:1px solid transparent}.bootstrap .navbar:before,.bootstrap #header_infos:before,.bootstrap .navbar:after,.bootstrap #header_infos:after{content:" ";display:table}.bootstrap .navbar:after,.bootstrap #header_infos:after{clear:both}@media (min-width: 768px){.bootstrap .navbar,.bootstrap #header_infos{border-radius:3px}}.bootstrap .navbar-header:before,.bootstrap .navbar-header:after{content:" ";display:table}.bootstrap .navbar-header:after{clear:both}@media (min-width: 768px){.bootstrap .navbar-header{float:left}}.bootstrap .navbar-collapse{overflow-x:visible;padding-right:5px;padding-left:5px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.bootstrap .navbar-collapse:before,.bootstrap .navbar-collapse:after{content:" ";display:table}.bootstrap .navbar-collapse:after{clear:both}.bootstrap .navbar-collapse.in{overflow-y:auto}@media (min-width: 768px){.bootstrap .navbar-collapse{width:auto;border-top:0;box-shadow:none}.bootstrap .navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.bootstrap .navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .bootstrap .navbar-collapse,#header_infos .bootstrap .navbar-collapse,.navbar-static-top .bootstrap .navbar-collapse,.navbar-fixed-bottom .bootstrap .navbar-collapse{padding-left:0;padding-right:0}}.bootstrap .navbar-fixed-top .navbar-collapse,.bootstrap #header_infos .navbar-collapse,.bootstrap .navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-width: 480px) and (orientation: landscape){.bootstrap .navbar-fixed-top .navbar-collapse,.bootstrap #header_infos .navbar-collapse,.bootstrap .navbar-fixed-bottom .navbar-collapse{max-height:200px}}.bootstrap .container>.navbar-header,.bootstrap .container>.navbar-collapse,.bootstrap .container-fluid>.navbar-header,.bootstrap .container-fluid>.navbar-collapse{margin-right:-5px;margin-left:-5px}@media (min-width: 768px){.bootstrap .container>.navbar-header,.bootstrap .container>.navbar-collapse,.bootstrap .container-fluid>.navbar-header,.bootstrap .container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.bootstrap .navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width: 768px){.bootstrap .navbar-static-top{border-radius:0}}.bootstrap .navbar-fixed-top,.bootstrap #header_infos,.bootstrap .navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width: 768px){.bootstrap .navbar-fixed-top,.bootstrap #header_infos,.bootstrap .navbar-fixed-bottom{border-radius:0}}.bootstrap .navbar-fixed-top,.bootstrap #header_infos{top:0;border-width:0 0 1px}.bootstrap .navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.bootstrap .navbar-brand,.bootstrap #header_shopversion,.bootstrap #header_shopname{float:left;padding:9px 5px;font-size:15px;line-height:17px;height:35px}.bootstrap .navbar-brand:hover,.bootstrap #header_shopversion:hover,.bootstrap #header_shopname:hover,.bootstrap .navbar-brand:focus,.bootstrap #header_shopversion:focus,.bootstrap #header_shopname:focus{text-decoration:none}@media (min-width: 768px){.navbar>.container .bootstrap .navbar-brand,#header_infos>.container .bootstrap .navbar-brand,.navbar>.container .bootstrap #header_shopversion,#header_infos>.container .bootstrap #header_shopversion,.navbar>.container .bootstrap #header_shopname,#header_infos>.container .bootstrap #header_shopname,.navbar>.container-fluid .bootstrap .navbar-brand,#header_infos>.container-fluid .bootstrap .navbar-brand,.navbar>.container-fluid .bootstrap #header_shopversion,#header_infos>.container-fluid .bootstrap #header_shopversion,.navbar>.container-fluid .bootstrap #header_shopname,#header_infos>.container-fluid .bootstrap #header_shopname{margin-left:-5px}}.bootstrap .navbar-toggle{position:relative;float:right;margin-right:5px;padding:9px 10px;margin-top:.5px;margin-bottom:.5px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:3px}.bootstrap .navbar-toggle:focus{outline:0}.bootstrap .navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.bootstrap .navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width: 768px){.bootstrap .navbar-toggle{display:none}}.bootstrap .navbar-nav,.bootstrap #header_notifs_icon_wrapper,.bootstrap #header_employee_box,.bootstrap #header_quick,.bootstrap #header_shop{margin:4.5px -5px;float:left;margin:0}.bootstrap .navbar-nav>li>a,.bootstrap #header_notifs_icon_wrapper>li>a,.bootstrap #header_employee_box>li>a,.bootstrap #header_quick>li>a,.bootstrap #header_shop>li>a{padding-top:10px;padding-bottom:10px;line-height:17px}.bootstrap .navbar-nav>li,.bootstrap #header_notifs_icon_wrapper>li,.bootstrap #header_employee_box>li,.bootstrap #header_quick>li,.bootstrap #header_shop>li{float:left}.bootstrap .navbar-nav>li>a,.bootstrap #header_notifs_icon_wrapper>li>a,.bootstrap #header_employee_box>li>a,.bootstrap #header_quick>li>a,.bootstrap #header_shop>li>a{padding-top:9px;padding-bottom:9px}.bootstrap .navbar-nav.navbar-right:last-child,.bootstrap .navbar-right#header_notifs_icon_wrapper:last-child,.bootstrap #header_employee_box:last-child,.bootstrap .navbar-right#header_quick:last-child,.bootstrap .navbar-right#header_shop:last-child{margin-right:-5px}.bootstrap .navbar-left,.bootstrap #header_quick,.bootstrap #header_shop{float:left !important}.bootstrap .navbar-right,.bootstrap #header_employee_box{float:right !important}.bootstrap .navbar-form{margin-left:-5px;margin-right:-5px;padding:10px 5px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:2px;margin-bottom:2px}@media (max-width: 767px){.bootstrap .navbar-form .form-group{margin-bottom:5px}}@media (min-width: 768px){.bootstrap .navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.bootstrap .navbar-form.navbar-right:last-child,.bootstrap .navbar-form#header_employee_box:last-child{margin-right:-5px}}.bootstrap .navbar-nav>li>.dropdown-menu,.bootstrap #header_notifs_icon_wrapper>li>.dropdown-menu,.bootstrap #header_employee_box>li>.dropdown-menu,.bootstrap #header_quick>li>.dropdown-menu,.bootstrap #header_shop>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.bootstrap .navbar-fixed-bottom .navbar-nav>li>.dropdown-menu,.bootstrap .navbar-fixed-bottom #header_notifs_icon_wrapper>li>.dropdown-menu,.bootstrap .navbar-fixed-bottom #header_employee_box>li>.dropdown-menu,.bootstrap .navbar-fixed-bottom #header_quick>li>.dropdown-menu,.bootstrap .navbar-fixed-bottom #header_shop>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.bootstrap .navbar-btn{margin-top:2px;margin-bottom:2px}.bootstrap .navbar-btn.btn-sm,.bootstrap .btn-group-sm>.navbar-btn.btn{margin-top:3.5px;margin-bottom:3.5px}.bootstrap .navbar-btn.btn-xs,.bootstrap .btn-group-xs>.navbar-btn.btn{margin-top:6.5px;margin-bottom:6.5px}.bootstrap .navbar-text{margin-top:9px;margin-bottom:9px}@media (min-width: 768px){.bootstrap .navbar-text{float:left;margin-left:5px;margin-right:5px}.bootstrap .navbar-text.navbar-right:last-child,.bootstrap .navbar-text#header_employee_box:last-child{margin-right:0}}.bootstrap .navbar-default{background-color:#f8f8f8}.bootstrap .navbar-default .navbar-brand,.bootstrap .navbar-default #header_shopversion,.bootstrap .navbar-default #header_shopname{color:#777}.bootstrap .navbar-default .navbar-brand:hover,.bootstrap .navbar-default #header_shopversion:hover,.bootstrap .navbar-default #header_shopname:hover,.bootstrap .navbar-default .navbar-brand:focus,.bootstrap .navbar-default #header_shopversion:focus,.bootstrap .navbar-default #header_shopname:focus{color:#5e5e5e;background-color:transparent}.bootstrap .navbar-default .navbar-text{color:#777}.bootstrap .navbar-default .navbar-nav>li>a,.bootstrap .navbar-default #header_notifs_icon_wrapper>li>a,.bootstrap .navbar-default #header_employee_box>li>a,.bootstrap .navbar-default #header_quick>li>a,.bootstrap .navbar-default #header_shop>li>a{color:#777}.bootstrap .navbar-default .navbar-nav>li>a:hover,.bootstrap .navbar-default #header_notifs_icon_wrapper>li>a:hover,.bootstrap .navbar-default #header_employee_box>li>a:hover,.bootstrap .navbar-default #header_quick>li>a:hover,.bootstrap .navbar-default #header_shop>li>a:hover,.bootstrap .navbar-default .navbar-nav>li>a:focus,.bootstrap .navbar-default #header_notifs_icon_wrapper>li>a:focus,.bootstrap .navbar-default #header_employee_box>li>a:focus,.bootstrap .navbar-default #header_quick>li>a:focus,.bootstrap .navbar-default #header_shop>li>a:focus{color:#333;background-color:transparent}.bootstrap .navbar-default .navbar-nav>.active>a,.bootstrap .navbar-default #header_notifs_icon_wrapper>.active>a,.bootstrap .navbar-default #header_employee_box>.active>a,.bootstrap .navbar-default #header_quick>.active>a,.bootstrap .navbar-default #header_shop>.active>a,.bootstrap .navbar-default .navbar-nav>.active>a:hover,.bootstrap .navbar-default #header_notifs_icon_wrapper>.active>a:hover,.bootstrap .navbar-default #header_employee_box>.active>a:hover,.bootstrap .navbar-default #header_quick>.active>a:hover,.bootstrap .navbar-default #header_shop>.active>a:hover,.bootstrap .navbar-default .navbar-nav>.active>a:focus,.bootstrap .navbar-default #header_notifs_icon_wrapper>.active>a:focus,.bootstrap .navbar-default #header_employee_box>.active>a:focus,.bootstrap .navbar-default #header_quick>.active>a:focus,.bootstrap .navbar-default #header_shop>.active>a:focus{color:#555;background-color:#e7e7e7}.bootstrap .navbar-default .navbar-nav>.disabled>a,.bootstrap .navbar-default #header_notifs_icon_wrapper>.disabled>a,.bootstrap .navbar-default #header_employee_box>.disabled>a,.bootstrap .navbar-default #header_quick>.disabled>a,.bootstrap .navbar-default #header_shop>.disabled>a,.bootstrap .navbar-default .navbar-nav>.disabled>a:hover,.bootstrap .navbar-default #header_notifs_icon_wrapper>.disabled>a:hover,.bootstrap .navbar-default #header_employee_box>.disabled>a:hover,.bootstrap .navbar-default #header_quick>.disabled>a:hover,.bootstrap .navbar-default #header_shop>.disabled>a:hover,.bootstrap .navbar-default .navbar-nav>.disabled>a:focus,.bootstrap .navbar-default #header_notifs_icon_wrapper>.disabled>a:focus,.bootstrap .navbar-default #header_employee_box>.disabled>a:focus,.bootstrap .navbar-default #header_quick>.disabled>a:focus,.bootstrap .navbar-default #header_shop>.disabled>a:focus{color:#ccc;background-color:transparent}.bootstrap .navbar-default .navbar-toggle{border-color:#ddd}.bootstrap .navbar-default .navbar-toggle:hover,.bootstrap .navbar-default .navbar-toggle:focus{background-color:#ddd}.bootstrap .navbar-default .navbar-toggle .icon-bar{background-color:#888}.bootstrap .navbar-default .navbar-collapse,.bootstrap .navbar-default .navbar-form{border-color:#e7e7e7}.bootstrap .navbar-default .navbar-nav>.open>a,.bootstrap .navbar-default #header_notifs_icon_wrapper>.open>a,.bootstrap .navbar-default #header_employee_box>.open>a,.bootstrap .navbar-default #header_quick>.open>a,.bootstrap .navbar-default #header_shop>.open>a,.bootstrap .navbar-default .navbar-nav>.open>a:hover,.bootstrap .navbar-default #header_notifs_icon_wrapper>.open>a:hover,.bootstrap .navbar-default #header_employee_box>.open>a:hover,.bootstrap .navbar-default #header_quick>.open>a:hover,.bootstrap .navbar-default #header_shop>.open>a:hover,.bootstrap .navbar-default .navbar-nav>.open>a:focus,.bootstrap .navbar-default #header_notifs_icon_wrapper>.open>a:focus,.bootstrap .navbar-default #header_employee_box>.open>a:focus,.bootstrap .navbar-default #header_quick>.open>a:focus,.bootstrap .navbar-default #header_shop>.open>a:focus{background-color:#e7e7e7;color:#555}@media (max-width: 767px){.bootstrap .navbar-default .navbar-nav .open .dropdown-menu>li>a,.bootstrap .navbar-default #header_notifs_icon_wrapper .open .dropdown-menu>li>a,.bootstrap .navbar-default #header_employee_box .open .dropdown-menu>li>a,.bootstrap .navbar-default #header_quick .open .dropdown-menu>li>a,.bootstrap .navbar-default #header_shop .open .dropdown-menu>li>a{color:#777}.bootstrap .navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.bootstrap .navbar-default #header_notifs_icon_wrapper .open .dropdown-menu>li>a:hover,.bootstrap .navbar-default #header_employee_box .open .dropdown-menu>li>a:hover,.bootstrap .navbar-default #header_quick .open .dropdown-menu>li>a:hover,.bootstrap .navbar-default #header_shop .open .dropdown-menu>li>a:hover,.bootstrap .navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.bootstrap .navbar-default #header_notifs_icon_wrapper .open .dropdown-menu>li>a:focus,.bootstrap .navbar-default #header_employee_box .open .dropdown-menu>li>a:focus,.bootstrap .navbar-default #header_quick .open .dropdown-menu>li>a:focus,.bootstrap .navbar-default #header_shop .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.bootstrap .navbar-default .navbar-nav .open .dropdown-menu>.active>a,.bootstrap .navbar-default #header_notifs_icon_wrapper .open .dropdown-menu>.active>a,.bootstrap .navbar-default #header_employee_box .open .dropdown-menu>.active>a,.bootstrap .navbar-default #header_quick .open .dropdown-menu>.active>a,.bootstrap .navbar-default #header_shop .open .dropdown-menu>.active>a,.bootstrap .navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.bootstrap .navbar-default #header_notifs_icon_wrapper .open .dropdown-menu>.active>a:hover,.bootstrap .navbar-default #header_employee_box .open .dropdown-menu>.active>a:hover,.bootstrap .navbar-default #header_quick .open .dropdown-menu>.active>a:hover,.bootstrap .navbar-default #header_shop .open .dropdown-menu>.active>a:hover,.bootstrap .navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.bootstrap .navbar-default #header_notifs_icon_wrapper .open .dropdown-menu>.active>a:focus,.bootstrap .navbar-default #header_employee_box .open .dropdown-menu>.active>a:focus,.bootstrap .navbar-default #header_quick .open .dropdown-menu>.active>a:focus,.bootstrap .navbar-default #header_shop .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.bootstrap .navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.bootstrap .navbar-default #header_notifs_icon_wrapper .open .dropdown-menu>.disabled>a,.bootstrap .navbar-default #header_employee_box .open .dropdown-menu>.disabled>a,.bootstrap .navbar-default #header_quick .open .dropdown-menu>.disabled>a,.bootstrap .navbar-default #header_shop .open .dropdown-menu>.disabled>a,.bootstrap .navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.bootstrap .navbar-default #header_notifs_icon_wrapper .open .dropdown-menu>.disabled>a:hover,.bootstrap .navbar-default #header_employee_box .open .dropdown-menu>.disabled>a:hover,.bootstrap .navbar-default #header_quick .open .dropdown-menu>.disabled>a:hover,.bootstrap .navbar-default #header_shop .open .dropdown-menu>.disabled>a:hover,.bootstrap .navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.bootstrap .navbar-default #header_notifs_icon_wrapper .open .dropdown-menu>.disabled>a:focus,.bootstrap .navbar-default #header_employee_box .open .dropdown-menu>.disabled>a:focus,.bootstrap .navbar-default #header_quick .open .dropdown-menu>.disabled>a:focus,.bootstrap .navbar-default #header_shop .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.bootstrap .navbar-default .navbar-link{color:#777}.bootstrap .navbar-default .navbar-link:hover{color:#333}.bootstrap .navbar-default .btn-link{color:#777}.bootstrap .navbar-default .btn-link:hover,.bootstrap .navbar-default .btn-link:focus{color:#333}.bootstrap .navbar-default .btn-link[disabled]:hover,.bootstrap .navbar-default .btn-link[disabled]:focus,fieldset[disabled] .bootstrap .navbar-default .btn-link:hover,fieldset[disabled] .bootstrap .navbar-default .btn-link:focus{color:#ccc}.bootstrap .navbar-inverse,.bootstrap #header_infos{background-color:#282b30}.bootstrap .navbar-inverse .navbar-brand,.bootstrap #header_infos .navbar-brand,.bootstrap .navbar-inverse #header_shopversion,.bootstrap #header_infos #header_shopversion,.bootstrap .navbar-inverse #header_shopname,.bootstrap #header_infos #header_shopname{color:#fff}.bootstrap .navbar-inverse .navbar-brand:hover,.bootstrap #header_infos .navbar-brand:hover,.bootstrap .navbar-inverse #header_shopversion:hover,.bootstrap #header_infos #header_shopversion:hover,.bootstrap .navbar-inverse #header_shopname:hover,.bootstrap #header_infos #header_shopname:hover,.bootstrap .navbar-inverse .navbar-brand:focus,.bootstrap #header_infos .navbar-brand:focus,.bootstrap .navbar-inverse #header_shopversion:focus,.bootstrap #header_infos #header_shopversion:focus,.bootstrap .navbar-inverse #header_shopname:focus,.bootstrap #header_infos #header_shopname:focus{color:#fff;background-color:transparent}.bootstrap .navbar-inverse .navbar-text,.bootstrap #header_infos .navbar-text{color:#999}.bootstrap .navbar-inverse .navbar-nav>li>a,.bootstrap #header_infos .navbar-nav>li>a,.bootstrap .navbar-inverse #header_notifs_icon_wrapper>li>a,.bootstrap #header_infos #header_notifs_icon_wrapper>li>a,.bootstrap .navbar-inverse #header_employee_box>li>a,.bootstrap #header_infos #header_employee_box>li>a,.bootstrap .navbar-inverse #header_quick>li>a,.bootstrap #header_infos #header_quick>li>a,.bootstrap .navbar-inverse #header_shop>li>a,.bootstrap #header_infos #header_shop>li>a{color:#fff}.bootstrap .navbar-inverse .navbar-nav>li>a:hover,.bootstrap #header_infos .navbar-nav>li>a:hover,.bootstrap .navbar-inverse #header_notifs_icon_wrapper>li>a:hover,.bootstrap #header_infos #header_notifs_icon_wrapper>li>a:hover,.bootstrap .navbar-inverse #header_employee_box>li>a:hover,.bootstrap #header_infos #header_employee_box>li>a:hover,.bootstrap .navbar-inverse #header_quick>li>a:hover,.bootstrap #header_infos #header_quick>li>a:hover,.bootstrap .navbar-inverse #header_shop>li>a:hover,.bootstrap #header_infos #header_shop>li>a:hover,.bootstrap .navbar-inverse .navbar-nav>li>a:focus,.bootstrap #header_infos .navbar-nav>li>a:focus,.bootstrap .navbar-inverse #header_notifs_icon_wrapper>li>a:focus,.bootstrap #header_infos #header_notifs_icon_wrapper>li>a:focus,.bootstrap .navbar-inverse #header_employee_box>li>a:focus,.bootstrap #header_infos #header_employee_box>li>a:focus,.bootstrap .navbar-inverse #header_quick>li>a:focus,.bootstrap #header_infos #header_quick>li>a:focus,.bootstrap .navbar-inverse #header_shop>li>a:focus,.bootstrap #header_infos #header_shop>li>a:focus{color:#999;background-color:transparent}.bootstrap .navbar-inverse .navbar-nav>.active>a,.bootstrap #header_infos .navbar-nav>.active>a,.bootstrap .navbar-inverse #header_notifs_icon_wrapper>.active>a,.bootstrap #header_infos #header_notifs_icon_wrapper>.active>a,.bootstrap .navbar-inverse #header_employee_box>.active>a,.bootstrap #header_infos #header_employee_box>.active>a,.bootstrap .navbar-inverse #header_quick>.active>a,.bootstrap #header_infos #header_quick>.active>a,.bootstrap .navbar-inverse #header_shop>.active>a,.bootstrap #header_infos #header_shop>.active>a,.bootstrap .navbar-inverse .navbar-nav>.active>a:hover,.bootstrap #header_infos .navbar-nav>.active>a:hover,.bootstrap .navbar-inverse #header_notifs_icon_wrapper>.active>a:hover,.bootstrap #header_infos #header_notifs_icon_wrapper>.active>a:hover,.bootstrap .navbar-inverse #header_employee_box>.active>a:hover,.bootstrap #header_infos #header_employee_box>.active>a:hover,.bootstrap .navbar-inverse #header_quick>.active>a:hover,.bootstrap #header_infos #header_quick>.active>a:hover,.bootstrap .navbar-inverse #header_shop>.active>a:hover,.bootstrap #header_infos #header_shop>.active>a:hover,.bootstrap .navbar-inverse .navbar-nav>.active>a:focus,.bootstrap #header_infos .navbar-nav>.active>a:focus,.bootstrap .navbar-inverse #header_notifs_icon_wrapper>.active>a:focus,.bootstrap #header_infos #header_notifs_icon_wrapper>.active>a:focus,.bootstrap .navbar-inverse #header_employee_box>.active>a:focus,.bootstrap #header_infos #header_employee_box>.active>a:focus,.bootstrap .navbar-inverse #header_quick>.active>a:focus,.bootstrap #header_infos #header_quick>.active>a:focus,.bootstrap .navbar-inverse #header_shop>.active>a:focus,.bootstrap #header_infos #header_shop>.active>a:focus{color:#999;background-color:#111214}.bootstrap .navbar-inverse .navbar-nav>.disabled>a,.bootstrap #header_infos .navbar-nav>.disabled>a,.bootstrap .navbar-inverse #header_notifs_icon_wrapper>.disabled>a,.bootstrap #header_infos #header_notifs_icon_wrapper>.disabled>a,.bootstrap .navbar-inverse #header_employee_box>.disabled>a,.bootstrap #header_infos #header_employee_box>.disabled>a,.bootstrap .navbar-inverse #header_quick>.disabled>a,.bootstrap #header_infos #header_quick>.disabled>a,.bootstrap .navbar-inverse #header_shop>.disabled>a,.bootstrap #header_infos #header_shop>.disabled>a,.bootstrap .navbar-inverse .navbar-nav>.disabled>a:hover,.bootstrap #header_infos .navbar-nav>.disabled>a:hover,.bootstrap .navbar-inverse #header_notifs_icon_wrapper>.disabled>a:hover,.bootstrap #header_infos #header_notifs_icon_wrapper>.disabled>a:hover,.bootstrap .navbar-inverse #header_employee_box>.disabled>a:hover,.bootstrap #header_infos #header_employee_box>.disabled>a:hover,.bootstrap .navbar-inverse #header_quick>.disabled>a:hover,.bootstrap #header_infos #header_quick>.disabled>a:hover,.bootstrap .navbar-inverse #header_shop>.disabled>a:hover,.bootstrap #header_infos #header_shop>.disabled>a:hover,.bootstrap .navbar-inverse .navbar-nav>.disabled>a:focus,.bootstrap #header_infos .navbar-nav>.disabled>a:focus,.bootstrap .navbar-inverse #header_notifs_icon_wrapper>.disabled>a:focus,.bootstrap #header_infos #header_notifs_icon_wrapper>.disabled>a:focus,.bootstrap .navbar-inverse #header_employee_box>.disabled>a:focus,.bootstrap #header_infos #header_employee_box>.disabled>a:focus,.bootstrap .navbar-inverse #header_quick>.disabled>a:focus,.bootstrap #header_infos #header_quick>.disabled>a:focus,.bootstrap .navbar-inverse #header_shop>.disabled>a:focus,.bootstrap #header_infos #header_shop>.disabled>a:focus{color:#444;background-color:transparent}.bootstrap .navbar-inverse .navbar-toggle,.bootstrap #header_infos .navbar-toggle{border-color:#333}.bootstrap .navbar-inverse .navbar-toggle:hover,.bootstrap #header_infos .navbar-toggle:hover,.bootstrap .navbar-inverse .navbar-toggle:focus,.bootstrap #header_infos .navbar-toggle:focus{background-color:#333}.bootstrap .navbar-inverse .navbar-toggle .icon-bar,.bootstrap #header_infos .navbar-toggle .icon-bar{background-color:#fff}.bootstrap .navbar-inverse .navbar-collapse,.bootstrap #header_infos .navbar-collapse,.bootstrap .navbar-inverse .navbar-form,.bootstrap #header_infos .navbar-form{border-color:#181a1d}.bootstrap .navbar-inverse .navbar-nav>.open>a,.bootstrap #header_infos .navbar-nav>.open>a,.bootstrap .navbar-inverse #header_notifs_icon_wrapper>.open>a,.bootstrap #header_infos #header_notifs_icon_wrapper>.open>a,.bootstrap .navbar-inverse #header_employee_box>.open>a,.bootstrap #header_infos #header_employee_box>.open>a,.bootstrap .navbar-inverse #header_quick>.open>a,.bootstrap #header_infos #header_quick>.open>a,.bootstrap .navbar-inverse #header_shop>.open>a,.bootstrap #header_infos #header_shop>.open>a,.bootstrap .navbar-inverse .navbar-nav>.open>a:hover,.bootstrap #header_infos .navbar-nav>.open>a:hover,.bootstrap .navbar-inverse #header_notifs_icon_wrapper>.open>a:hover,.bootstrap #header_infos #header_notifs_icon_wrapper>.open>a:hover,.bootstrap .navbar-inverse #header_employee_box>.open>a:hover,.bootstrap #header_infos #header_employee_box>.open>a:hover,.bootstrap .navbar-inverse #header_quick>.open>a:hover,.bootstrap #header_infos #header_quick>.open>a:hover,.bootstrap .navbar-inverse #header_shop>.open>a:hover,.bootstrap #header_infos #header_shop>.open>a:hover,.bootstrap .navbar-inverse .navbar-nav>.open>a:focus,.bootstrap #header_infos .navbar-nav>.open>a:focus,.bootstrap .navbar-inverse #header_notifs_icon_wrapper>.open>a:focus,.bootstrap #header_infos #header_notifs_icon_wrapper>.open>a:focus,.bootstrap .navbar-inverse #header_employee_box>.open>a:focus,.bootstrap #header_infos #header_employee_box>.open>a:focus,.bootstrap .navbar-inverse #header_quick>.open>a:focus,.bootstrap #header_infos #header_quick>.open>a:focus,.bootstrap .navbar-inverse #header_shop>.open>a:focus,.bootstrap #header_infos #header_shop>.open>a:focus{background-color:#111214;color:#999}.bootstrap .navbar-inverse .navbar-link,.bootstrap #header_infos .navbar-link{color:#fff}.bootstrap .navbar-inverse .navbar-link:hover,.bootstrap #header_infos .navbar-link:hover{color:#999}.bootstrap .navbar-inverse .btn-link,.bootstrap #header_infos .btn-link{color:#fff}.bootstrap .navbar-inverse .btn-link:hover,.bootstrap #header_infos .btn-link:hover,.bootstrap .navbar-inverse .btn-link:focus,.bootstrap #header_infos .btn-link:focus{color:#999}.bootstrap .navbar-inverse .btn-link[disabled]:hover,.bootstrap #header_infos .btn-link[disabled]:hover,.bootstrap .navbar-inverse .btn-link[disabled]:focus,.bootstrap #header_infos .btn-link[disabled]:focus,fieldset[disabled] .bootstrap .navbar-inverse .btn-link:hover,fieldset[disabled] .bootstrap #header_infos .btn-link:hover,fieldset[disabled] .bootstrap .navbar-inverse .btn-link:focus,fieldset[disabled] .bootstrap #header_infos .btn-link:focus{color:#444}.bootstrap .breadcrumb{padding:8px 15px;margin-bottom:17px;list-style:none;background-color:#f5f5f5;border-radius:3px}.bootstrap .breadcrumb>li{display:inline-block}.bootstrap .breadcrumb>li+li:before{content:"/ ";padding:0 5px;color:#ccc}.bootstrap .breadcrumb>.active{color:#999}.bootstrap .pagination{display:inline-block;padding-left:0;margin:17px 0;border-radius:3px}.bootstrap .pagination>li{display:inline}.bootstrap .pagination>li>a,.bootstrap .pagination>li>span{position:relative;float:left;padding:6px 8px;line-height:1.42857;text-decoration:none;color:#00aff0;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.bootstrap .pagination>li:first-child>a,.bootstrap .pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:3px;border-top-left-radius:3px}.bootstrap .pagination>li:last-child>a,.bootstrap .pagination>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.bootstrap .pagination>li>a:hover,.bootstrap .pagination>li>a:focus,.bootstrap .pagination>li>span:hover,.bootstrap .pagination>li>span:focus{color:#0077a4;background-color:#eee;border-color:#ddd}.bootstrap .pagination>.active>a,.bootstrap .pagination>.active>a:hover,.bootstrap .pagination>.active>a:focus,.bootstrap .pagination>.active>span,.bootstrap .pagination>.active>span:hover,.bootstrap .pagination>.active>span:focus{z-index:2;color:#fff;background-color:#00aff0;border-color:#00aff0;cursor:default}.bootstrap .pagination>.disabled>span,.bootstrap .pagination>.disabled>span:hover,.bootstrap .pagination>.disabled>span:focus,.bootstrap .pagination>.disabled>a,.bootstrap .pagination>.disabled>a:hover,.bootstrap .pagination>.disabled>a:focus{color:#999;background-color:#fff;border-color:#ddd;cursor:not-allowed}.bootstrap .pagination-lg>li>a,.bootstrap .pagination-lg>li>span{padding:10px 16px;font-size:15px}.bootstrap .pagination-lg>li:first-child>a,.bootstrap .pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.bootstrap .pagination-lg>li:last-child>a,.bootstrap .pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.bootstrap .pagination-sm>li>a,.bootstrap .pagination-sm>li>span{padding:5px 10px;font-size:11px}.bootstrap .pagination-sm>li:first-child>a,.bootstrap .pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.bootstrap .pagination-sm>li:last-child>a,.bootstrap .pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.bootstrap .pager{padding-left:0;margin:17px 0;list-style:none;text-align:center}.bootstrap .pager:before,.bootstrap .pager:after{content:" ";display:table}.bootstrap .pager:after{clear:both}.bootstrap .pager li{display:inline}.bootstrap .pager li>a,.bootstrap .pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.bootstrap .pager li>a:hover,.bootstrap .pager li>a:focus{text-decoration:none;background-color:#eee}.bootstrap .pager .next>a,.bootstrap .pager .next>span{float:right}.bootstrap .pager .previous>a,.bootstrap .pager .previous>span{float:left}.bootstrap .pager .disabled>a,.bootstrap .pager .disabled>a:hover,.bootstrap .pager .disabled>a:focus,.bootstrap .pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.bootstrap .label{display:inline;padding:0.15em 0.4em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.bootstrap .label:empty{display:none}.btn .bootstrap .label{position:relative;top:-1px}.bootstrap a.label:hover,.bootstrap a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.bootstrap .label-default{background-color:#999}.bootstrap .label-default[href]:hover,.bootstrap .label-default[href]:focus{background-color:gray}.bootstrap .label-primary{background-color:#00aff0}.bootstrap .label-primary[href]:hover,.bootstrap .label-primary[href]:focus{background-color:#008abd}.bootstrap .label-success{background-color:#72C279}.bootstrap .label-success[href]:hover,.bootstrap .label-success[href]:focus{background-color:#4eb357}.bootstrap .label-info{background-color:#25b9d7}.bootstrap .label-info[href]:hover,.bootstrap .label-info[href]:focus{background-color:#1e94ab}.bootstrap .label-warning{background-color:#fbbb22}.bootstrap .label-warning[href]:hover,.bootstrap .label-warning[href]:focus{background-color:#e6a304}.bootstrap .label-danger{background-color:#E08F95}.bootstrap .label-danger[href]:hover,.bootstrap .label-danger[href]:focus{background-color:#d5676f}.bootstrap .badge,.bootstrap #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper .bootstrap .notifs_badge,.bootstrap .module-badge-popular,.bootstrap .module-badge-partner,.bootstrap .module-badge-bought{display:inline-block;min-width:10px;padding:3px 7px;font-size:11px;font-weight:bold;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px}.bootstrap .badge:empty,.bootstrap #header_notifs_icon_wrapper .notifs_badge:empty,#header_notifs_icon_wrapper .bootstrap .notifs_badge:empty,.bootstrap .module-badge-popular:empty,.bootstrap .module-badge-partner:empty,.bootstrap .module-badge-bought:empty{display:none}.btn .bootstrap .badge,.btn .bootstrap #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper .btn .bootstrap .notifs_badge,.btn .bootstrap .module-badge-popular,.btn .bootstrap .module-badge-partner,.btn .bootstrap .module-badge-bought{position:relative;top:-1px}.btn-xs .bootstrap .badge,.bootstrap .btn-group-xs>.btn .bootstrap .badge,.btn-xs .bootstrap #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper .btn-xs .bootstrap .notifs_badge,.bootstrap .btn-group-xs>.btn .bootstrap #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper .bootstrap .btn-group-xs>.btn .bootstrap .notifs_badge,.btn-xs .bootstrap .module-badge-popular,.bootstrap .btn-group-xs>.btn .bootstrap .module-badge-popular,.btn-xs .bootstrap .module-badge-partner,.bootstrap .btn-group-xs>.btn .bootstrap .module-badge-partner,.btn-xs .bootstrap .module-badge-bought,.bootstrap .btn-group-xs>.btn .bootstrap .module-badge-bought{top:0;padding:1px 5px}a.list-group-item.active>.bootstrap .badge,a.list-group-item.active>.bootstrap #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper a.list-group-item.active>.bootstrap .notifs_badge,a.list-group-item.active>.bootstrap .module-badge-popular,a.list-group-item.active>.bootstrap .module-badge-partner,a.list-group-item.active>.bootstrap .module-badge-bought,.nav-pills>.active>a>.bootstrap .badge,.nav-pills>.active>a>.bootstrap #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper .nav-pills>.active>a>.bootstrap .notifs_badge,.nav-pills>.active>a>.bootstrap .module-badge-popular,.nav-pills>.active>a>.bootstrap .module-badge-partner,.nav-pills>.active>a>.bootstrap .module-badge-bought{color:#00aff0;background-color:#fff}.nav-pills>li>a>.bootstrap .badge,.nav-pills>li>a>.bootstrap #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper .nav-pills>li>a>.bootstrap .notifs_badge,.nav-pills>li>a>.bootstrap .module-badge-popular,.nav-pills>li>a>.bootstrap .module-badge-partner,.nav-pills>li>a>.bootstrap .module-badge-bought{margin-left:3px}.bootstrap a.badge:hover,.bootstrap #header_notifs_icon_wrapper a.notifs_badge:hover,#header_notifs_icon_wrapper .bootstrap a.notifs_badge:hover,.bootstrap a.module-badge-popular:hover,.bootstrap a.module-badge-partner:hover,.bootstrap a.module-badge-bought:hover,.bootstrap a.badge:focus,.bootstrap #header_notifs_icon_wrapper a.notifs_badge:focus,#header_notifs_icon_wrapper .bootstrap a.notifs_badge:focus,.bootstrap a.module-badge-popular:focus,.bootstrap a.module-badge-partner:focus,.bootstrap a.module-badge-bought:focus{color:#fff;text-decoration:none;cursor:pointer}.bootstrap .thumbnail{display:block;padding:4px;margin-bottom:17px;line-height:1.42857;background-color:#EFF1F2;border:1px solid #ddd;border-radius:3px;-webkit-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.bootstrap .thumbnail>img,.bootstrap .thumbnail a>img{display:block;max-width:100%;height:auto;margin-left:auto;margin-right:auto}.bootstrap .thumbnail .caption{padding:9px;color:#555}.bootstrap a.thumbnail:hover,.bootstrap a.thumbnail:focus,.bootstrap a.thumbnail.active{border-color:#00aff0}.bootstrap .alert,.bootstrap #carrier_wizard .wizard_error{padding:15px;margin-bottom:17px;border:1px solid transparent;border-radius:3px}.bootstrap .alert h4,.bootstrap #carrier_wizard .wizard_error h4{margin-top:0;color:inherit}.bootstrap .alert .alert-link,.bootstrap #carrier_wizard .wizard_error .alert-link{font-weight:bold}.bootstrap .alert>p,.bootstrap #carrier_wizard .wizard_error>p,.bootstrap .alert>ul,.bootstrap #carrier_wizard .wizard_error>ul{margin-bottom:0}.bootstrap .alert>p+p,.bootstrap #carrier_wizard .wizard_error>p+p{margin-top:5px}.bootstrap .alert-dismissable{padding-right:35px}.bootstrap .alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.bootstrap .alert-success{background-color:#ddf0de;border-color:#72C279;color:#72C279}.bootstrap .alert-success hr{border-top-color:#60ba68}.bootstrap .alert-success .alert-link{color:#4eb357}.bootstrap .alert-info{background-color:#DCF4F9;border-color:#25b9d7;color:#1e94ab}.bootstrap .alert-info hr{border-top-color:#21a6c1}.bootstrap .alert-info .alert-link{color:#166e80}.bootstrap .alert-warning{background-color:#FFF3D7;border-color:#D2A63C;color:#D2A63C}.bootstrap .alert-warning hr{border-top-color:#c79a2e}.bootstrap .alert-warning .alert-link{color:#b28a29}.bootstrap .alert-danger,.bootstrap #carrier_wizard .wizard_error{background-color:#FFE2E4;border-color:#E08F95;color:#D27C82}.bootstrap .alert-danger hr,.bootstrap #carrier_wizard .wizard_error hr{border-top-color:#da7b82}.bootstrap .alert-danger .alert-link,.bootstrap #carrier_wizard .wizard_error .alert-link{color:#c5565e}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.bootstrap .progress{overflow:hidden;height:17px;margin-bottom:17px;background-color:#f5f5f5;border-radius:3px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.bootstrap .progress-bar{float:left;width:0%;height:100%;font-size:11px;line-height:17px;color:#fff;text-align:center;background-color:#00aff0;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.bootstrap .progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0));background-size:40px 40px}.bootstrap .progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.bootstrap .progress-bar[aria-valuenow="1"],.bootstrap .progress-bar[aria-valuenow="2"]{min-width:30px}.bootstrap .progress-bar[aria-valuenow="0"]{color:#999;min-width:30px;background-color:transparent;background-image:none;box-shadow:none}.bootstrap .progress-bar-success{background-color:#72C279}.progress-striped .bootstrap .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0))}.bootstrap .progress-bar-info{background-color:#25b9d7}.progress-striped .bootstrap .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0))}.bootstrap .progress-bar-warning{background-color:#fbbb22}.progress-striped .bootstrap .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0))}.bootstrap .progress-bar-danger{background-color:#E08F95}.progress-striped .bootstrap .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0))}.bootstrap .media,.bootstrap .message-item,.bootstrap .media-body{overflow:hidden;zoom:1}.bootstrap .media,.bootstrap .message-item,.bootstrap .media .media,.bootstrap .message-item .media,.bootstrap .media .message-item,.bootstrap .message-item .message-item{margin-top:15px}.bootstrap .media:first-child,.bootstrap .message-item:first-child{margin-top:0}.bootstrap .media-object{display:block}.bootstrap .media-heading{margin:0 0 5px}.bootstrap .media>.pull-left,.bootstrap .message-item>.pull-left{margin-right:10px}.bootstrap .media>.pull-right,.bootstrap .message-item>.pull-right{margin-left:10px}.bootstrap .media-list{padding-left:0;list-style:none}.bootstrap .list-group,.bootstrap #dashboard .data_list{margin-bottom:20px;padding-left:0}.bootstrap .list-group-item,.bootstrap #dashboard .data_list li{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.bootstrap .list-group-item:first-child,.bootstrap #dashboard .data_list li:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.bootstrap .list-group-item:last-child,.bootstrap #dashboard .data_list li:last-child{margin-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.bootstrap .list-group-item>.badge,.bootstrap #dashboard .data_list li>.badge,.bootstrap #header_notifs_icon_wrapper .list-group-item>.notifs_badge,#header_notifs_icon_wrapper .bootstrap .list-group-item>.notifs_badge,.bootstrap #dashboard .data_list #header_notifs_icon_wrapper li>.notifs_badge,#header_notifs_icon_wrapper .bootstrap #dashboard .data_list li>.notifs_badge,.bootstrap .list-group-item>.module-badge-popular,.bootstrap #dashboard .data_list li>.module-badge-popular,.bootstrap .list-group-item>.module-badge-partner,.bootstrap #dashboard .data_list li>.module-badge-partner,.bootstrap .list-group-item>.module-badge-bought,.bootstrap #dashboard .data_list li>.module-badge-bought{float:right}.bootstrap .list-group-item>.badge+.badge,.bootstrap #dashboard .data_list li>.badge+.badge,.bootstrap #header_notifs_icon_wrapper .list-group-item>.notifs_badge+.badge,#header_notifs_icon_wrapper .bootstrap .list-group-item>.notifs_badge+.badge,.bootstrap #dashboard .data_list #header_notifs_icon_wrapper li>.notifs_badge+.badge,#header_notifs_icon_wrapper .bootstrap #dashboard .data_list li>.notifs_badge+.badge,.bootstrap .list-group-item>.module-badge-popular+.badge,.bootstrap #dashboard .data_list li>.module-badge-popular+.badge,.bootstrap .list-group-item>.module-badge-partner+.badge,.bootstrap #dashboard .data_list li>.module-badge-partner+.badge,.bootstrap .list-group-item>.module-badge-bought+.badge,.bootstrap #dashboard .data_list li>.module-badge-bought+.badge,.bootstrap #header_notifs_icon_wrapper .list-group-item>.badge+.notifs_badge,#header_notifs_icon_wrapper .bootstrap .list-group-item>.badge+.notifs_badge,.bootstrap #dashboard .data_list #header_notifs_icon_wrapper li>.badge+.notifs_badge,#header_notifs_icon_wrapper .bootstrap #dashboard .data_list li>.badge+.notifs_badge,.bootstrap #header_notifs_icon_wrapper .list-group-item>.notifs_badge+.notifs_badge,#header_notifs_icon_wrapper .bootstrap .list-group-item>.notifs_badge+.notifs_badge,.bootstrap #dashboard .data_list #header_notifs_icon_wrapper li>.notifs_badge+.notifs_badge,#header_notifs_icon_wrapper .bootstrap #dashboard .data_list li>.notifs_badge+.notifs_badge,.bootstrap #header_notifs_icon_wrapper .list-group-item>.module-badge-popular+.notifs_badge,#header_notifs_icon_wrapper .bootstrap .list-group-item>.module-badge-popular+.notifs_badge,.bootstrap #dashboard .data_list #header_notifs_icon_wrapper li>.module-badge-popular+.notifs_badge,#header_notifs_icon_wrapper .bootstrap #dashboard .data_list li>.module-badge-popular+.notifs_badge,.bootstrap #header_notifs_icon_wrapper .list-group-item>.module-badge-partner+.notifs_badge,#header_notifs_icon_wrapper .bootstrap .list-group-item>.module-badge-partner+.notifs_badge,.bootstrap #dashboard .data_list #header_notifs_icon_wrapper li>.module-badge-partner+.notifs_badge,#header_notifs_icon_wrapper .bootstrap #dashboard .data_list li>.module-badge-partner+.notifs_badge,.bootstrap #header_notifs_icon_wrapper .list-group-item>.module-badge-bought+.notifs_badge,#header_notifs_icon_wrapper .bootstrap .list-group-item>.module-badge-bought+.notifs_badge,.bootstrap #dashboard .data_list #header_notifs_icon_wrapper li>.module-badge-bought+.notifs_badge,#header_notifs_icon_wrapper .bootstrap #dashboard .data_list li>.module-badge-bought+.notifs_badge,.bootstrap .list-group-item>.badge+.module-badge-popular,.bootstrap #dashboard .data_list li>.badge+.module-badge-popular,.bootstrap #header_notifs_icon_wrapper .list-group-item>.notifs_badge+.module-badge-popular,#header_notifs_icon_wrapper .bootstrap .list-group-item>.notifs_badge+.module-badge-popular,.bootstrap #dashboard .data_list #header_notifs_icon_wrapper li>.notifs_badge+.module-badge-popular,#header_notifs_icon_wrapper .bootstrap #dashboard .data_list li>.notifs_badge+.module-badge-popular,.bootstrap .list-group-item>.module-badge-popular+.module-badge-popular,.bootstrap #dashboard .data_list li>.module-badge-popular+.module-badge-popular,.bootstrap .list-group-item>.module-badge-partner+.module-badge-popular,.bootstrap #dashboard .data_list li>.module-badge-partner+.module-badge-popular,.bootstrap .list-group-item>.module-badge-bought+.module-badge-popular,.bootstrap #dashboard .data_list li>.module-badge-bought+.module-badge-popular,.bootstrap .list-group-item>.badge+.module-badge-partner,.bootstrap #dashboard .data_list li>.badge+.module-badge-partner,.bootstrap #header_notifs_icon_wrapper .list-group-item>.notifs_badge+.module-badge-partner,#header_notifs_icon_wrapper .bootstrap .list-group-item>.notifs_badge+.module-badge-partner,.bootstrap #dashboard .data_list #header_notifs_icon_wrapper li>.notifs_badge+.module-badge-partner,#header_notifs_icon_wrapper .bootstrap #dashboard .data_list li>.notifs_badge+.module-badge-partner,.bootstrap .list-group-item>.module-badge-popular+.module-badge-partner,.bootstrap #dashboard .data_list li>.module-badge-popular+.module-badge-partner,.bootstrap .list-group-item>.module-badge-partner+.module-badge-partner,.bootstrap #dashboard .data_list li>.module-badge-partner+.module-badge-partner,.bootstrap .list-group-item>.module-badge-bought+.module-badge-partner,.bootstrap #dashboard .data_list li>.module-badge-bought+.module-badge-partner,.bootstrap .list-group-item>.badge+.module-badge-bought,.bootstrap #dashboard .data_list li>.badge+.module-badge-bought,.bootstrap #header_notifs_icon_wrapper .list-group-item>.notifs_badge+.module-badge-bought,#header_notifs_icon_wrapper .bootstrap .list-group-item>.notifs_badge+.module-badge-bought,.bootstrap #dashboard .data_list #header_notifs_icon_wrapper li>.notifs_badge+.module-badge-bought,#header_notifs_icon_wrapper .bootstrap #dashboard .data_list li>.notifs_badge+.module-badge-bought,.bootstrap .list-group-item>.module-badge-popular+.module-badge-bought,.bootstrap #dashboard .data_list li>.module-badge-popular+.module-badge-bought,.bootstrap .list-group-item>.module-badge-partner+.module-badge-bought,.bootstrap #dashboard .data_list li>.module-badge-partner+.module-badge-bought,.bootstrap .list-group-item>.module-badge-bought+.module-badge-bought,.bootstrap #dashboard .data_list li>.module-badge-bought+.module-badge-bought{margin-right:5px}.bootstrap a.list-group-item{color:#555}.bootstrap a.list-group-item .list-group-item-heading{color:#333}.bootstrap a.list-group-item:hover,.bootstrap a.list-group-item:focus{text-decoration:none;color:#555;background-color:#f5f5f5}.bootstrap .list-group-item.disabled,.bootstrap #dashboard .data_list li.disabled,.bootstrap .list-group-item.disabled:hover,.bootstrap #dashboard .data_list li.disabled:hover,.bootstrap .list-group-item.disabled:focus,.bootstrap #dashboard .data_list li.disabled:focus{background-color:#eee;color:#999}.bootstrap .list-group-item.disabled .list-group-item-heading,.bootstrap #dashboard .data_list li.disabled .list-group-item-heading,.bootstrap .list-group-item.disabled:hover .list-group-item-heading,.bootstrap #dashboard .data_list li.disabled:hover .list-group-item-heading,.bootstrap .list-group-item.disabled:focus .list-group-item-heading,.bootstrap #dashboard .data_list li.disabled:focus .list-group-item-heading{color:inherit}.bootstrap .list-group-item.disabled .list-group-item-text,.bootstrap #dashboard .data_list li.disabled .list-group-item-text,.bootstrap .list-group-item.disabled:hover .list-group-item-text,.bootstrap #dashboard .data_list li.disabled:hover .list-group-item-text,.bootstrap .list-group-item.disabled:focus .list-group-item-text,.bootstrap #dashboard .data_list li.disabled:focus .list-group-item-text{color:#999}.bootstrap .list-group-item.active,.bootstrap #dashboard .data_list li.active,.bootstrap .list-group-item.active:hover,.bootstrap #dashboard .data_list li.active:hover,.bootstrap .list-group-item.active:focus,.bootstrap #dashboard .data_list li.active:focus{z-index:2;color:#fff;background-color:#00aff0;border-color:#00aff0}.bootstrap .list-group-item.active .list-group-item-heading,.bootstrap #dashboard .data_list li.active .list-group-item-heading,.bootstrap .list-group-item.active:hover .list-group-item-heading,.bootstrap #dashboard .data_list li.active:hover .list-group-item-heading,.bootstrap .list-group-item.active:focus .list-group-item-heading,.bootstrap #dashboard .data_list li.active:focus .list-group-item-heading{color:inherit}.bootstrap .list-group-item.active .list-group-item-text,.bootstrap #dashboard .data_list li.active .list-group-item-text,.bootstrap .list-group-item.active:hover .list-group-item-text,.bootstrap #dashboard .data_list li.active:hover .list-group-item-text,.bootstrap .list-group-item.active:focus .list-group-item-text,.bootstrap #dashboard .data_list li.active:focus .list-group-item-text{color:#bdedff}.bootstrap .list-group-item-success{color:#3c763d;background-color:#cce9d7}.bootstrap a.list-group-item-success{color:#3c763d}.bootstrap a.list-group-item-success .list-group-item-heading{color:inherit}.bootstrap a.list-group-item-success:hover,.bootstrap a.list-group-item-success:focus{color:#3c763d;background-color:#bae1c9}.bootstrap a.list-group-item-success.active,.bootstrap a.list-group-item-success.active:hover,.bootstrap a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.bootstrap .list-group-item-info{color:#31708f;background-color:#d3f1f7}.bootstrap a.list-group-item-info{color:#31708f}.bootstrap a.list-group-item-info .list-group-item-heading{color:inherit}.bootstrap a.list-group-item-info:hover,.bootstrap a.list-group-item-info:focus{color:#31708f;background-color:#bdeaf3}.bootstrap a.list-group-item-info.active,.bootstrap a.list-group-item-info.active:hover,.bootstrap a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.bootstrap .list-group-item-warning{color:#8a6d3b;background-color:#fef1d3}.bootstrap a.list-group-item-warning{color:#8a6d3b}.bootstrap a.list-group-item-warning .list-group-item-heading{color:inherit}.bootstrap a.list-group-item-warning:hover,.bootstrap a.list-group-item-warning:focus{color:#8a6d3b;background-color:#fde9ba}.bootstrap a.list-group-item-warning.active,.bootstrap a.list-group-item-warning.active:hover,.bootstrap a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.bootstrap .list-group-item-danger{color:#a94442;background-color:#f9cce1}.bootstrap a.list-group-item-danger{color:#a94442}.bootstrap a.list-group-item-danger .list-group-item-heading{color:inherit}.bootstrap a.list-group-item-danger:hover,.bootstrap a.list-group-item-danger:focus{color:#a94442;background-color:#f6b5d4}.bootstrap a.list-group-item-danger.active,.bootstrap a.list-group-item-danger.active:hover,.bootstrap a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.bootstrap .list-group-item-heading{margin-top:0;margin-bottom:5px}.bootstrap .list-group-item-text{margin-bottom:0;line-height:1.3}.bootstrap .panel,.bootstrap #dash_version,.bootstrap .message-item-initial .message-item-initial-body,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel{margin-bottom:17px;background-color:#fff;border:1px solid transparent;border-radius:3px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.bootstrap .panel-body{padding:15px}.bootstrap .panel-body:before,.bootstrap .panel-body:after{content:" ";display:table}.bootstrap .panel-body:after{clear:both}.bootstrap .panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:2px;border-top-left-radius:2px}.bootstrap .panel-heading>.dropdown .dropdown-toggle{color:inherit}.bootstrap .panel-title{margin-top:0;margin-bottom:0;font-size:14px;color:inherit}.bootstrap .panel-title>a{color:inherit}.bootstrap .panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:2px;border-bottom-left-radius:2px}.bootstrap .panel>.list-group,.bootstrap #dash_version>.list-group,.bootstrap .message-item-initial .message-item-initial-body>.list-group,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.list-group,.bootstrap #dashboard .panel>.data_list,.bootstrap #dashboard #dash_version>.data_list,.bootstrap .message-item-initial #dashboard .message-item-initial-body>.data_list,.bootstrap #dashboard .message-item-initial .message-item-initial-body>.data_list,.bootstrap .timeline .timeline-item .timeline-caption #dashboard .timeline-panel>.data_list,.bootstrap #dashboard .timeline .timeline-item .timeline-caption .timeline-panel>.data_list{margin-bottom:0}.bootstrap .panel>.list-group .list-group-item,.bootstrap #dash_version>.list-group .list-group-item,.bootstrap .message-item-initial .message-item-initial-body>.list-group .list-group-item,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.list-group .list-group-item,.bootstrap #dashboard .panel>.data_list .list-group-item,.bootstrap #dashboard #dash_version>.data_list .list-group-item,.bootstrap .message-item-initial #dashboard .message-item-initial-body>.data_list .list-group-item,.bootstrap #dashboard .message-item-initial .message-item-initial-body>.data_list .list-group-item,.bootstrap .timeline .timeline-item .timeline-caption #dashboard .timeline-panel>.data_list .list-group-item,.bootstrap #dashboard .timeline .timeline-item .timeline-caption .timeline-panel>.data_list .list-group-item,.bootstrap .panel>.list-group #dashboard .data_list li,.bootstrap #dashboard .data_list .panel>.list-group li,.bootstrap #dash_version>.list-group #dashboard .data_list li,.bootstrap #dashboard .data_list #dash_version>.list-group li,.bootstrap .message-item-initial .message-item-initial-body>.list-group #dashboard .data_list li,.bootstrap #dashboard .data_list .message-item-initial .message-item-initial-body>.list-group li,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.list-group #dashboard .data_list li,.bootstrap #dashboard .data_list .timeline .timeline-item .timeline-caption .timeline-panel>.list-group li,.bootstrap #dashboard .panel>.data_list li,.bootstrap #dashboard #dash_version>.data_list li,.bootstrap .message-item-initial #dashboard .message-item-initial-body>.data_list li,.bootstrap #dashboard .message-item-initial .message-item-initial-body>.data_list li,.bootstrap .timeline .timeline-item .timeline-caption #dashboard .timeline-panel>.data_list li,.bootstrap #dashboard .timeline .timeline-item .timeline-caption .timeline-panel>.data_list li{border-width:1px 0;border-radius:0}.bootstrap .panel>.list-group:first-child .list-group-item:first-child,.bootstrap #dash_version>.list-group:first-child .list-group-item:first-child,.bootstrap .message-item-initial .message-item-initial-body>.list-group:first-child .list-group-item:first-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.list-group:first-child .list-group-item:first-child,.bootstrap #dashboard .panel>.data_list:first-child .list-group-item:first-child,.bootstrap #dashboard #dash_version>.data_list:first-child .list-group-item:first-child,.bootstrap .message-item-initial #dashboard .message-item-initial-body>.data_list:first-child .list-group-item:first-child,.bootstrap #dashboard .message-item-initial .message-item-initial-body>.data_list:first-child .list-group-item:first-child,.bootstrap .timeline .timeline-item .timeline-caption #dashboard .timeline-panel>.data_list:first-child .list-group-item:first-child,.bootstrap #dashboard .timeline .timeline-item .timeline-caption .timeline-panel>.data_list:first-child .list-group-item:first-child,.bootstrap .panel>.list-group:first-child #dashboard .data_list li:first-child,.bootstrap #dashboard .data_list .panel>.list-group:first-child li:first-child,.bootstrap #dash_version>.list-group:first-child #dashboard .data_list li:first-child,.bootstrap #dashboard .data_list #dash_version>.list-group:first-child li:first-child,.bootstrap .message-item-initial .message-item-initial-body>.list-group:first-child #dashboard .data_list li:first-child,.bootstrap #dashboard .data_list .message-item-initial .message-item-initial-body>.list-group:first-child li:first-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.list-group:first-child #dashboard .data_list li:first-child,.bootstrap #dashboard .data_list .timeline .timeline-item .timeline-caption .timeline-panel>.list-group:first-child li:first-child,.bootstrap #dashboard .panel>.data_list:first-child li:first-child,.bootstrap #dashboard #dash_version>.data_list:first-child li:first-child,.bootstrap .message-item-initial #dashboard .message-item-initial-body>.data_list:first-child li:first-child,.bootstrap #dashboard .message-item-initial .message-item-initial-body>.data_list:first-child li:first-child,.bootstrap .timeline .timeline-item .timeline-caption #dashboard .timeline-panel>.data_list:first-child li:first-child,.bootstrap #dashboard .timeline .timeline-item .timeline-caption .timeline-panel>.data_list:first-child li:first-child{border-top:0;border-top-right-radius:2px;border-top-left-radius:2px}.bootstrap .panel>.list-group:last-child .list-group-item:last-child,.bootstrap #dash_version>.list-group:last-child .list-group-item:last-child,.bootstrap .message-item-initial .message-item-initial-body>.list-group:last-child .list-group-item:last-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.list-group:last-child .list-group-item:last-child,.bootstrap #dashboard .panel>.data_list:last-child .list-group-item:last-child,.bootstrap #dashboard #dash_version>.data_list:last-child .list-group-item:last-child,.bootstrap .message-item-initial #dashboard .message-item-initial-body>.data_list:last-child .list-group-item:last-child,.bootstrap #dashboard .message-item-initial .message-item-initial-body>.data_list:last-child .list-group-item:last-child,.bootstrap .timeline .timeline-item .timeline-caption #dashboard .timeline-panel>.data_list:last-child .list-group-item:last-child,.bootstrap #dashboard .timeline .timeline-item .timeline-caption .timeline-panel>.data_list:last-child .list-group-item:last-child,.bootstrap .panel>.list-group:last-child #dashboard .data_list li:last-child,.bootstrap #dashboard .data_list .panel>.list-group:last-child li:last-child,.bootstrap #dash_version>.list-group:last-child #dashboard .data_list li:last-child,.bootstrap #dashboard .data_list #dash_version>.list-group:last-child li:last-child,.bootstrap .message-item-initial .message-item-initial-body>.list-group:last-child #dashboard .data_list li:last-child,.bootstrap #dashboard .data_list .message-item-initial .message-item-initial-body>.list-group:last-child li:last-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.list-group:last-child #dashboard .data_list li:last-child,.bootstrap #dashboard .data_list .timeline .timeline-item .timeline-caption .timeline-panel>.list-group:last-child li:last-child,.bootstrap #dashboard .panel>.data_list:last-child li:last-child,.bootstrap #dashboard #dash_version>.data_list:last-child li:last-child,.bootstrap .message-item-initial #dashboard .message-item-initial-body>.data_list:last-child li:last-child,.bootstrap #dashboard .message-item-initial .message-item-initial-body>.data_list:last-child li:last-child,.bootstrap .timeline .timeline-item .timeline-caption #dashboard .timeline-panel>.data_list:last-child li:last-child,.bootstrap #dashboard .timeline .timeline-item .timeline-caption .timeline-panel>.data_list:last-child li:last-child{border-bottom:0;border-bottom-right-radius:2px;border-bottom-left-radius:2px}.bootstrap .panel-heading+.list-group .list-group-item:first-child,.bootstrap #dashboard .panel-heading+.data_list .list-group-item:first-child,.bootstrap .panel-heading+.list-group #dashboard .data_list li:first-child,.bootstrap #dashboard .data_list .panel-heading+.list-group li:first-child,.bootstrap #dashboard .panel-heading+.data_list li:first-child{border-top-width:0}.bootstrap .panel>.table,.bootstrap #dash_version>.table,.bootstrap .message-item-initial .message-item-initial-body>.table,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table,.bootstrap .panel>.table-responsive>.table,.bootstrap #dash_version>.table-responsive>.table,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive>.table,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive>.table{margin-bottom:0}.bootstrap .panel>.table:first-child,.bootstrap #dash_version>.table:first-child,.bootstrap .message-item-initial .message-item-initial-body>.table:first-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table:first-child,.bootstrap .panel>.table-responsive:first-child>.table:first-child,.bootstrap #dash_version>.table-responsive:first-child>.table:first-child,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive:first-child>.table:first-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:2px;border-top-left-radius:2px}.bootstrap .panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.bootstrap #dash_version>.table:first-child>thead:first-child>tr:first-child td:first-child,.bootstrap .message-item-initial .message-item-initial-body>.table:first-child>thead:first-child>tr:first-child td:first-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.bootstrap .panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.bootstrap #dash_version>.table:first-child>thead:first-child>tr:first-child th:first-child,.bootstrap .message-item-initial .message-item-initial-body>.table:first-child>thead:first-child>tr:first-child th:first-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.bootstrap .panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.bootstrap #dash_version>.table:first-child>tbody:first-child>tr:first-child td:first-child,.bootstrap .message-item-initial .message-item-initial-body>.table:first-child>tbody:first-child>tr:first-child td:first-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.bootstrap .panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.bootstrap #dash_version>.table:first-child>tbody:first-child>tr:first-child th:first-child,.bootstrap .message-item-initial .message-item-initial-body>.table:first-child>tbody:first-child>tr:first-child th:first-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.bootstrap .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.bootstrap #dash_version>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.bootstrap .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.bootstrap #dash_version>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.bootstrap .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.bootstrap #dash_version>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.bootstrap .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.bootstrap #dash_version>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:2px}.bootstrap .panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.bootstrap #dash_version>.table:first-child>thead:first-child>tr:first-child td:last-child,.bootstrap .message-item-initial .message-item-initial-body>.table:first-child>thead:first-child>tr:first-child td:last-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.bootstrap .panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.bootstrap #dash_version>.table:first-child>thead:first-child>tr:first-child th:last-child,.bootstrap .message-item-initial .message-item-initial-body>.table:first-child>thead:first-child>tr:first-child th:last-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.bootstrap .panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.bootstrap #dash_version>.table:first-child>tbody:first-child>tr:first-child td:last-child,.bootstrap .message-item-initial .message-item-initial-body>.table:first-child>tbody:first-child>tr:first-child td:last-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.bootstrap .panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.bootstrap #dash_version>.table:first-child>tbody:first-child>tr:first-child th:last-child,.bootstrap .message-item-initial .message-item-initial-body>.table:first-child>tbody:first-child>tr:first-child th:last-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.bootstrap .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.bootstrap #dash_version>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.bootstrap .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.bootstrap #dash_version>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.bootstrap .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.bootstrap #dash_version>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.bootstrap .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.bootstrap #dash_version>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:2px}.bootstrap .panel>.table:last-child,.bootstrap #dash_version>.table:last-child,.bootstrap .message-item-initial .message-item-initial-body>.table:last-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table:last-child,.bootstrap .panel>.table-responsive:last-child>.table:last-child,.bootstrap #dash_version>.table-responsive:last-child>.table:last-child,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive:last-child>.table:last-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.bootstrap .panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.bootstrap #dash_version>.table:last-child>tbody:last-child>tr:last-child td:first-child,.bootstrap .message-item-initial .message-item-initial-body>.table:last-child>tbody:last-child>tr:last-child td:first-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.bootstrap .panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.bootstrap #dash_version>.table:last-child>tbody:last-child>tr:last-child th:first-child,.bootstrap .message-item-initial .message-item-initial-body>.table:last-child>tbody:last-child>tr:last-child th:first-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.bootstrap .panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.bootstrap #dash_version>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.bootstrap .message-item-initial .message-item-initial-body>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.bootstrap .panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.bootstrap #dash_version>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.bootstrap .message-item-initial .message-item-initial-body>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.bootstrap .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.bootstrap #dash_version>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.bootstrap .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.bootstrap #dash_version>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.bootstrap .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.bootstrap #dash_version>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.bootstrap .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.bootstrap #dash_version>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:2px}.bootstrap .panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.bootstrap #dash_version>.table:last-child>tbody:last-child>tr:last-child td:last-child,.bootstrap .message-item-initial .message-item-initial-body>.table:last-child>tbody:last-child>tr:last-child td:last-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.bootstrap .panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.bootstrap #dash_version>.table:last-child>tbody:last-child>tr:last-child th:last-child,.bootstrap .message-item-initial .message-item-initial-body>.table:last-child>tbody:last-child>tr:last-child th:last-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.bootstrap .panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.bootstrap #dash_version>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.bootstrap .message-item-initial .message-item-initial-body>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.bootstrap .panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.bootstrap #dash_version>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.bootstrap .message-item-initial .message-item-initial-body>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.bootstrap .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.bootstrap #dash_version>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.bootstrap .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.bootstrap #dash_version>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.bootstrap .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.bootstrap #dash_version>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.bootstrap .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.bootstrap #dash_version>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:2px}.bootstrap .panel>.panel-body+.table,.bootstrap #dash_version>.panel-body+.table,.bootstrap .message-item-initial .message-item-initial-body>.panel-body+.table,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.panel-body+.table,.bootstrap .panel>.panel-body+.table-responsive,.bootstrap #dash_version>.panel-body+.table-responsive,.bootstrap .message-item-initial .message-item-initial-body>.panel-body+.table-responsive,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.bootstrap .panel>.table>tbody:first-child>tr:first-child th,.bootstrap #dash_version>.table>tbody:first-child>tr:first-child th,.bootstrap .message-item-initial .message-item-initial-body>.table>tbody:first-child>tr:first-child th,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table>tbody:first-child>tr:first-child th,.bootstrap .panel>.table>tbody:first-child>tr:first-child td,.bootstrap #dash_version>.table>tbody:first-child>tr:first-child td,.bootstrap .message-item-initial .message-item-initial-body>.table>tbody:first-child>tr:first-child td,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table>tbody:first-child>tr:first-child td{border-top:0}.bootstrap .panel>.table-bordered,.bootstrap #dash_version>.table-bordered,.bootstrap .message-item-initial .message-item-initial-body>.table-bordered,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-bordered,.bootstrap .panel>.table-responsive>.table-bordered,.bootstrap #dash_version>.table-responsive>.table-bordered,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive>.table-bordered,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive>.table-bordered{border:0}.bootstrap .panel>.table-bordered>thead>tr>th:first-child,.bootstrap #dash_version>.table-bordered>thead>tr>th:first-child,.bootstrap .message-item-initial .message-item-initial-body>.table-bordered>thead>tr>th:first-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-bordered>thead>tr>th:first-child,.bootstrap .panel>.table-bordered>thead>tr>td:first-child,.bootstrap #dash_version>.table-bordered>thead>tr>td:first-child,.bootstrap .message-item-initial .message-item-initial-body>.table-bordered>thead>tr>td:first-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-bordered>thead>tr>td:first-child,.bootstrap .panel>.table-bordered>tbody>tr>th:first-child,.bootstrap #dash_version>.table-bordered>tbody>tr>th:first-child,.bootstrap .message-item-initial .message-item-initial-body>.table-bordered>tbody>tr>th:first-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-bordered>tbody>tr>th:first-child,.bootstrap .panel>.table-bordered>tbody>tr>td:first-child,.bootstrap #dash_version>.table-bordered>tbody>tr>td:first-child,.bootstrap .message-item-initial .message-item-initial-body>.table-bordered>tbody>tr>td:first-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-bordered>tbody>tr>td:first-child,.bootstrap .panel>.table-bordered>tfoot>tr>th:first-child,.bootstrap #dash_version>.table-bordered>tfoot>tr>th:first-child,.bootstrap .message-item-initial .message-item-initial-body>.table-bordered>tfoot>tr>th:first-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-bordered>tfoot>tr>th:first-child,.bootstrap .panel>.table-bordered>tfoot>tr>td:first-child,.bootstrap #dash_version>.table-bordered>tfoot>tr>td:first-child,.bootstrap .message-item-initial .message-item-initial-body>.table-bordered>tfoot>tr>td:first-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-bordered>tfoot>tr>td:first-child,.bootstrap .panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.bootstrap #dash_version>.table-responsive>.table-bordered>thead>tr>th:first-child,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive>.table-bordered>thead>tr>th:first-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.bootstrap .panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.bootstrap #dash_version>.table-responsive>.table-bordered>thead>tr>td:first-child,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive>.table-bordered>thead>tr>td:first-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.bootstrap .panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.bootstrap #dash_version>.table-responsive>.table-bordered>tbody>tr>th:first-child,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive>.table-bordered>tbody>tr>th:first-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.bootstrap .panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.bootstrap #dash_version>.table-responsive>.table-bordered>tbody>tr>td:first-child,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive>.table-bordered>tbody>tr>td:first-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.bootstrap .panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.bootstrap #dash_version>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.bootstrap .panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.bootstrap #dash_version>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.bootstrap .panel>.table-bordered>thead>tr>th:last-child,.bootstrap #dash_version>.table-bordered>thead>tr>th:last-child,.bootstrap .message-item-initial .message-item-initial-body>.table-bordered>thead>tr>th:last-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-bordered>thead>tr>th:last-child,.bootstrap .panel>.table-bordered>thead>tr>td:last-child,.bootstrap #dash_version>.table-bordered>thead>tr>td:last-child,.bootstrap .message-item-initial .message-item-initial-body>.table-bordered>thead>tr>td:last-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-bordered>thead>tr>td:last-child,.bootstrap .panel>.table-bordered>tbody>tr>th:last-child,.bootstrap #dash_version>.table-bordered>tbody>tr>th:last-child,.bootstrap .message-item-initial .message-item-initial-body>.table-bordered>tbody>tr>th:last-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-bordered>tbody>tr>th:last-child,.bootstrap .panel>.table-bordered>tbody>tr>td:last-child,.bootstrap #dash_version>.table-bordered>tbody>tr>td:last-child,.bootstrap .message-item-initial .message-item-initial-body>.table-bordered>tbody>tr>td:last-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-bordered>tbody>tr>td:last-child,.bootstrap .panel>.table-bordered>tfoot>tr>th:last-child,.bootstrap #dash_version>.table-bordered>tfoot>tr>th:last-child,.bootstrap .message-item-initial .message-item-initial-body>.table-bordered>tfoot>tr>th:last-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-bordered>tfoot>tr>th:last-child,.bootstrap .panel>.table-bordered>tfoot>tr>td:last-child,.bootstrap #dash_version>.table-bordered>tfoot>tr>td:last-child,.bootstrap .message-item-initial .message-item-initial-body>.table-bordered>tfoot>tr>td:last-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-bordered>tfoot>tr>td:last-child,.bootstrap .panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.bootstrap #dash_version>.table-responsive>.table-bordered>thead>tr>th:last-child,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive>.table-bordered>thead>tr>th:last-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.bootstrap .panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.bootstrap #dash_version>.table-responsive>.table-bordered>thead>tr>td:last-child,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive>.table-bordered>thead>tr>td:last-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.bootstrap .panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.bootstrap #dash_version>.table-responsive>.table-bordered>tbody>tr>th:last-child,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive>.table-bordered>tbody>tr>th:last-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.bootstrap .panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.bootstrap #dash_version>.table-responsive>.table-bordered>tbody>tr>td:last-child,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive>.table-bordered>tbody>tr>td:last-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.bootstrap .panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.bootstrap #dash_version>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.bootstrap .panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.bootstrap #dash_version>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.bootstrap .panel>.table-bordered>thead>tr:first-child>td,.bootstrap #dash_version>.table-bordered>thead>tr:first-child>td,.bootstrap .message-item-initial .message-item-initial-body>.table-bordered>thead>tr:first-child>td,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-bordered>thead>tr:first-child>td,.bootstrap .panel>.table-bordered>thead>tr:first-child>th,.bootstrap #dash_version>.table-bordered>thead>tr:first-child>th,.bootstrap .message-item-initial .message-item-initial-body>.table-bordered>thead>tr:first-child>th,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-bordered>thead>tr:first-child>th,.bootstrap .panel>.table-bordered>tbody>tr:first-child>td,.bootstrap #dash_version>.table-bordered>tbody>tr:first-child>td,.bootstrap .message-item-initial .message-item-initial-body>.table-bordered>tbody>tr:first-child>td,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-bordered>tbody>tr:first-child>td,.bootstrap .panel>.table-bordered>tbody>tr:first-child>th,.bootstrap #dash_version>.table-bordered>tbody>tr:first-child>th,.bootstrap .message-item-initial .message-item-initial-body>.table-bordered>tbody>tr:first-child>th,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-bordered>tbody>tr:first-child>th,.bootstrap .panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.bootstrap #dash_version>.table-responsive>.table-bordered>thead>tr:first-child>td,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive>.table-bordered>thead>tr:first-child>td,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.bootstrap .panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.bootstrap #dash_version>.table-responsive>.table-bordered>thead>tr:first-child>th,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive>.table-bordered>thead>tr:first-child>th,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.bootstrap .panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.bootstrap #dash_version>.table-responsive>.table-bordered>tbody>tr:first-child>td,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive>.table-bordered>tbody>tr:first-child>td,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.bootstrap .panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.bootstrap #dash_version>.table-responsive>.table-bordered>tbody>tr:first-child>th,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive>.table-bordered>tbody>tr:first-child>th,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.bootstrap .panel>.table-bordered>tbody>tr:last-child>td,.bootstrap #dash_version>.table-bordered>tbody>tr:last-child>td,.bootstrap .message-item-initial .message-item-initial-body>.table-bordered>tbody>tr:last-child>td,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-bordered>tbody>tr:last-child>td,.bootstrap .panel>.table-bordered>tbody>tr:last-child>th,.bootstrap #dash_version>.table-bordered>tbody>tr:last-child>th,.bootstrap .message-item-initial .message-item-initial-body>.table-bordered>tbody>tr:last-child>th,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-bordered>tbody>tr:last-child>th,.bootstrap .panel>.table-bordered>tfoot>tr:last-child>td,.bootstrap #dash_version>.table-bordered>tfoot>tr:last-child>td,.bootstrap .message-item-initial .message-item-initial-body>.table-bordered>tfoot>tr:last-child>td,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-bordered>tfoot>tr:last-child>td,.bootstrap .panel>.table-bordered>tfoot>tr:last-child>th,.bootstrap #dash_version>.table-bordered>tfoot>tr:last-child>th,.bootstrap .message-item-initial .message-item-initial-body>.table-bordered>tfoot>tr:last-child>th,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-bordered>tfoot>tr:last-child>th,.bootstrap .panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.bootstrap #dash_version>.table-responsive>.table-bordered>tbody>tr:last-child>td,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive>.table-bordered>tbody>tr:last-child>td,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.bootstrap .panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.bootstrap #dash_version>.table-responsive>.table-bordered>tbody>tr:last-child>th,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive>.table-bordered>tbody>tr:last-child>th,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.bootstrap .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.bootstrap #dash_version>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.bootstrap .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.bootstrap #dash_version>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.bootstrap .panel>.table-responsive,.bootstrap #dash_version>.table-responsive,.bootstrap .message-item-initial .message-item-initial-body>.table-responsive,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel>.table-responsive{border:0;margin-bottom:0}.bootstrap .panel-group{margin-bottom:17px}.bootstrap .panel-group .panel,.bootstrap .panel-group #dash_version,.bootstrap .panel-group .message-item-initial .message-item-initial-body,.bootstrap .message-item-initial .panel-group .message-item-initial-body,.bootstrap .panel-group .timeline .timeline-item .timeline-caption .timeline-panel,.bootstrap .timeline .timeline-item .timeline-caption .panel-group .timeline-panel{margin-bottom:0;border-radius:3px}.bootstrap .panel-group .panel+.panel,.bootstrap .panel-group #dash_version+.panel,.bootstrap .panel-group .message-item-initial .message-item-initial-body+.panel,.bootstrap .message-item-initial .panel-group .message-item-initial-body+.panel,.bootstrap .panel-group .timeline .timeline-item .timeline-caption .timeline-panel+.panel,.bootstrap .timeline .timeline-item .timeline-caption .panel-group .timeline-panel+.panel,.bootstrap .panel-group .panel+#dash_version,.bootstrap .panel-group #dash_version+#dash_version,.bootstrap .panel-group .message-item-initial .message-item-initial-body+#dash_version,.bootstrap .message-item-initial .panel-group .message-item-initial-body+#dash_version,.bootstrap .panel-group .timeline .timeline-item .timeline-caption .timeline-panel+#dash_version,.bootstrap .timeline .timeline-item .timeline-caption .panel-group .timeline-panel+#dash_version,.bootstrap .panel-group .message-item-initial .panel+.message-item-initial-body,.bootstrap .message-item-initial .panel-group .panel+.message-item-initial-body,.bootstrap .panel-group .message-item-initial #dash_version+.message-item-initial-body,.bootstrap .message-item-initial .panel-group #dash_version+.message-item-initial-body,.bootstrap .panel-group .message-item-initial .message-item-initial-body+.message-item-initial-body,.bootstrap .message-item-initial .panel-group .message-item-initial-body+.message-item-initial-body,.bootstrap .panel-group .timeline .timeline-item .timeline-caption .message-item-initial .timeline-panel+.message-item-initial-body,.bootstrap .message-item-initial .panel-group .timeline .timeline-item .timeline-caption .timeline-panel+.message-item-initial-body,.bootstrap .timeline .timeline-item .timeline-caption .panel-group .message-item-initial .timeline-panel+.message-item-initial-body,.bootstrap .message-item-initial .timeline .timeline-item .timeline-caption .panel-group .timeline-panel+.message-item-initial-body,.bootstrap .panel-group .timeline .timeline-item .timeline-caption .panel+.timeline-panel,.bootstrap .timeline .timeline-item .timeline-caption .panel-group .panel+.timeline-panel,.bootstrap .panel-group .timeline .timeline-item .timeline-caption #dash_version+.timeline-panel,.bootstrap .timeline .timeline-item .timeline-caption .panel-group #dash_version+.timeline-panel,.bootstrap .panel-group .message-item-initial .timeline .timeline-item .timeline-caption .message-item-initial-body+.timeline-panel,.bootstrap .timeline .timeline-item .timeline-caption .panel-group .message-item-initial .message-item-initial-body+.timeline-panel,.bootstrap .message-item-initial .panel-group .timeline .timeline-item .timeline-caption .message-item-initial-body+.timeline-panel,.bootstrap .timeline .timeline-item .timeline-caption .message-item-initial .panel-group .message-item-initial-body+.timeline-panel,.bootstrap .panel-group .timeline .timeline-item .timeline-caption .timeline-panel+.timeline-panel,.bootstrap .timeline .timeline-item .timeline-caption .panel-group .timeline-panel+.timeline-panel{margin-top:5px}.bootstrap .panel-group .panel-heading{border-bottom:0}.bootstrap .panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.bootstrap .panel-group .panel-footer{border-top:0}.bootstrap .panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.bootstrap .panel-default{border-color:#ddd}.bootstrap .panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.bootstrap .panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.bootstrap .panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.bootstrap .panel-primary{border-color:#00aff0}.bootstrap .panel-primary>.panel-heading{color:#fff;background-color:#00aff0;border-color:#00aff0}.bootstrap .panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#00aff0}.bootstrap .panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#00aff0}.bootstrap .panel-success{border-color:#bae1c3}.bootstrap .panel-success>.panel-heading{color:#3c763d;background-color:#cce9d7;border-color:#bae1c3}.bootstrap .panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bae1c3}.bootstrap .panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bae1c3}.bootstrap .panel-info{border-color:#b5f2f2}.bootstrap .panel-info>.panel-heading{color:#31708f;background-color:#d3f1f7;border-color:#b5f2f2}.bootstrap .panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#b5f2f2}.bootstrap .panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#b5f2f2}.bootstrap .panel-warning{border-color:#fddeba}.bootstrap .panel-warning>.panel-heading{color:#8a6d3b;background-color:#fef1d3;border-color:#fddeba}.bootstrap .panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#fddeba}.bootstrap .panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#fddeba}.bootstrap .panel-danger{border-color:#f6b5de}.bootstrap .panel-danger>.panel-heading{color:#a94442;background-color:#f9cce1;border-color:#f6b5de}.bootstrap .panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#f6b5de}.bootstrap .panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#f6b5de}.bootstrap .well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#FCFDFE;border:1px solid #e1ebf5;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.bootstrap .well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.bootstrap .well-lg{padding:24px;border-radius:6px}.bootstrap .well-sm{padding:9px;border-radius:3px}.bootstrap .close{float:right;font-size:18px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.bootstrap .close:hover,.bootstrap .close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}.bootstrap button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.bootstrap .tooltip{position:absolute;z-index:1070;display:block;visibility:visible;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.bootstrap .tooltip.in{opacity:1;filter:alpha(opacity=100)}.bootstrap .tooltip.top{margin-top:-3px;padding:5px 0}.bootstrap .tooltip.right{margin-left:3px;padding:0 5px}.bootstrap .tooltip.bottom{margin-top:3px;padding:5px 0}.bootstrap .tooltip.left{margin-left:-3px;padding:0 5px}.bootstrap .tooltip-inner{max-width:250px;padding:20px;color:#fff;text-align:center;text-decoration:none;background-color:#555;border-radius:3px}.bootstrap .tooltip-inner :last-child{margin-bottom:0}.bootstrap .tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.bootstrap .tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#555}.bootstrap .tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#555}.bootstrap .tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#555}.bootstrap .tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#555}.bootstrap .tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#555}.bootstrap .tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#555}.bootstrap .tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#555}.bootstrap .tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#555}.bootstrap .popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);white-space:normal}.bootstrap .popover.top{margin-top:-10px}.bootstrap .popover.right{margin-left:10px}.bootstrap .popover.bottom{margin-top:10px}.bootstrap .popover.left{margin-left:-10px}.bootstrap .popover-title{margin:0;padding:8px 14px;font-size:12px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.bootstrap .popover-content{padding:9px 14px}.bootstrap .popover>.arrow,.bootstrap .popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.bootstrap .popover>.arrow{border-width:11px}.bootstrap .popover>.arrow:after{border-width:10px;content:""}.bootstrap .popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,0.05);bottom:-11px}.bootstrap .popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.bootstrap .popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,0.05)}.bootstrap .popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.bootstrap .popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.05);top:-11px}.bootstrap .popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.bootstrap .popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,0.05)}.bootstrap .popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.bootstrap .clearfix:before,.bootstrap .clearfix:after{content:" ";display:table}.bootstrap .clearfix:after{clear:both}.bootstrap .center-block{display:block;margin-left:auto;margin-right:auto}.bootstrap .pull-right{float:right !important}.bootstrap .pull-left{float:left !important}.bootstrap .hide{display:none !important}.bootstrap .show{display:block !important}.bootstrap .invisible{visibility:hidden}.bootstrap .text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.bootstrap .hidden{display:none !important;visibility:hidden !important}.bootstrap .affix{position:fixed}@-ms-viewport{.bootstrap{width:device-width}}.bootstrap .visible-xs,.bootstrap .visible-sm,.bootstrap .visible-md,.bootstrap .visible-lg{display:none !important}.bootstrap .visible-xs-block,.bootstrap .visible-xs-inline,.bootstrap .visible-xs-inline-block,.bootstrap .visible-sm-block,.bootstrap .visible-sm-inline,.bootstrap .visible-sm-inline-block,.bootstrap .visible-md-block,.bootstrap .visible-md-inline,.bootstrap .visible-md-inline-block,.bootstrap .visible-lg-block,.bootstrap .visible-lg-inline,.bootstrap .visible-lg-inline-block{display:none !important}@media (max-width: 767px){.bootstrap .visible-xs{display:block !important}.bootstrap table.visible-xs{display:table}.bootstrap tr.visible-xs{display:table-row !important}.bootstrap th.visible-xs,.bootstrap td.visible-xs{display:table-cell !important}}@media (max-width: 767px){.bootstrap .visible-xs-block{display:block !important}}@media (max-width: 767px){.bootstrap .visible-xs-inline{display:inline !important}}@media (max-width: 767px){.bootstrap .visible-xs-inline-block{display:inline-block !important}}@media (min-width: 768px) and (max-width: 991px){.bootstrap .visible-sm{display:block !important}.bootstrap table.visible-sm{display:table}.bootstrap tr.visible-sm{display:table-row !important}.bootstrap th.visible-sm,.bootstrap td.visible-sm{display:table-cell !important}}@media (min-width: 768px) and (max-width: 991px){.bootstrap .visible-sm-block{display:block !important}}@media (min-width: 768px) and (max-width: 991px){.bootstrap .visible-sm-inline{display:inline !important}}@media (min-width: 768px) and (max-width: 991px){.bootstrap .visible-sm-inline-block{display:inline-block !important}}@media (min-width: 992px) and (max-width: 1199px){.bootstrap .visible-md{display:block !important}.bootstrap table.visible-md{display:table}.bootstrap tr.visible-md{display:table-row !important}.bootstrap th.visible-md,.bootstrap td.visible-md{display:table-cell !important}}@media (min-width: 992px) and (max-width: 1199px){.bootstrap .visible-md-block{display:block !important}}@media (min-width: 992px) and (max-width: 1199px){.bootstrap .visible-md-inline{display:inline !important}}@media (min-width: 992px) and (max-width: 1199px){.bootstrap .visible-md-inline-block{display:inline-block !important}}@media (min-width: 1200px){.bootstrap .visible-lg{display:block !important}.bootstrap table.visible-lg{display:table}.bootstrap tr.visible-lg{display:table-row !important}.bootstrap th.visible-lg,.bootstrap td.visible-lg{display:table-cell !important}}@media (min-width: 1200px){.bootstrap .visible-lg-block{display:block !important}}@media (min-width: 1200px){.bootstrap .visible-lg-inline{display:inline !important}}@media (min-width: 1200px){.bootstrap .visible-lg-inline-block{display:inline-block !important}}@media (max-width: 767px){.bootstrap .hidden-xs,.bootstrap #header_notifs_icon_wrapper,.bootstrap #header_quick{display:none !important}}@media (min-width: 768px) and (max-width: 991px){.bootstrap .hidden-sm,.bootstrap #header_quick{display:none !important}}@media (min-width: 992px) and (max-width: 1199px){.bootstrap .hidden-md{display:none !important}}@media (min-width: 1200px){.bootstrap .hidden-lg{display:none !important}}.bootstrap .visible-print{display:none !important}@media print{.bootstrap .visible-print{display:block !important}.bootstrap table.visible-print{display:table}.bootstrap tr.visible-print{display:table-row !important}.bootstrap th.visible-print,.bootstrap td.visible-print{display:table-cell !important}}.bootstrap .visible-print-block{display:none !important}@media print{.bootstrap .visible-print-block{display:block !important}}.bootstrap .visible-print-inline{display:none !important}@media print{.bootstrap .visible-print-inline{display:inline !important}}.bootstrap .visible-print-inline-block{display:none !important}@media print{.bootstrap .visible-print-inline-block{display:inline-block !important}}@media print{.bootstrap .hidden-print{display:none !important}}.modal-open{overflow:hidden}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform 0.3s ease-out;-moz-transition:-moz-transform 0.3s ease-out;-o-transition:-o-transform 0.3s ease-out;transition:transform 0.3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer:before,.modal-footer:after{content:" ";display:table}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width: 768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width: 992px){.modal-lg{width:900px}}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:0.6s ease-in-out left;-o-transition:0.6s ease-in-out left;transition:0.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, color-stop(rgba(0,0,0,0.5) 0%), color-stop(rgba(0,0,0,0.0001) 100%));background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.0001) 100%);background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0%,rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, color-stop(rgba(0,0,0,0.0001) 0%), color-stop(rgba(0,0,0,0.5) 100%));background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0%, rgba(0,0,0,0.5) 100%);background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0%,rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:transparent}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width: 768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}html,body{min-height:100%;height:100%}body{font:400 12px/1.42857 "Open Sans",Helvetica,Arial,sans-serif;color:#555;background-color:#EFF1F2;-webkit-tap-highlight-color:transparent}#main{z-index:10;width:100%;padding:36px 0 60px;margin:0 0 -50px 0;float:left}#content.bootstrap{padding:100px 10px 0;-webkit-transition-property:margin;transition-property:margin;-webkit-transition-duration:.4s;transition-duration:.4s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}#content.bootstrap .panel,#content.bootstrap #dash_version,#content.bootstrap .message-item-initial .message-item-initial-body,#content.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel{position:relative;padding:20px;margin-bottom:20px;border:solid 1px #d3d8db;background-color:#fff;-webkit-border-radius:5px;border-radius:5px}#content.bootstrap .panel.panel-highlighted,#content.bootstrap .panel-highlighted#dash_version,#content.bootstrap .message-item-initial .panel-highlighted.message-item-initial-body,#content.bootstrap .timeline .timeline-item .timeline-caption .panel-highlighted.timeline-panel{border-color:#00aff0 !important;-webkit-box-shadow:rgba(0,175,240,0.15) 0 0 0 6px inset !important;box-shadow:rgba(0,175,240,0.15) 0 0 0 6px inset !important}#content.bootstrap .panel .panel-heading,#content.bootstrap #dash_version .panel-heading,#content.bootstrap .message-item-initial .message-item-initial-body .panel-heading,#content.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel .panel-heading{font-family:"Ubuntu Condensed",Helvetica,Arial,sans-serif;font-weight:400;font-size:14px;text-overflow:ellipsis;white-space:nowrap;color:#555;height:32px}#content.bootstrap .panel .panel-heading .btn,#content.bootstrap #dash_version .panel-heading .btn,#content.bootstrap .message-item-initial .message-item-initial-body .panel-heading .btn,#content.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel .panel-heading .btn{padding:4px 8px !important}#content.bootstrap .panel .panel-heading a.btn,#content.bootstrap #dash_version .panel-heading a.btn,#content.bootstrap .message-item-initial .message-item-initial-body .panel-heading a.btn,#content.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel .panel-heading a.btn{font-family:"Open Sans",Helvetica,Arial,sans-serif;text-transform:none;position:relative;top:2px}#content.bootstrap .panel .panel-heading i,#content.bootstrap #dash_version .panel-heading i,#content.bootstrap .message-item-initial .message-item-initial-body .panel-heading i,#content.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel .panel-heading i{font-size:14px}#content.bootstrap .panel .panel,#content.bootstrap #dash_version .panel,#content.bootstrap .message-item-initial .message-item-initial-body .panel,#content.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel .panel,#content.bootstrap .panel #dash_version,#content.bootstrap #dash_version #dash_version,#content.bootstrap .message-item-initial .message-item-initial-body #dash_version,#content.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel #dash_version,#content.bootstrap .panel .message-item-initial .message-item-initial-body,#content.bootstrap .message-item-initial .panel .message-item-initial-body,#content.bootstrap #dash_version .message-item-initial .message-item-initial-body,#content.bootstrap .message-item-initial #dash_version .message-item-initial-body,#content.bootstrap .message-item-initial .message-item-initial-body .message-item-initial-body,#content.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel .message-item-initial .message-item-initial-body,#content.bootstrap .message-item-initial .timeline .timeline-item .timeline-caption .timeline-panel .message-item-initial-body,#content.bootstrap .panel .timeline .timeline-item .timeline-caption .timeline-panel,#content.bootstrap .timeline .timeline-item .timeline-caption .panel .timeline-panel,#content.bootstrap #dash_version .timeline .timeline-item .timeline-caption .timeline-panel,#content.bootstrap .timeline .timeline-item .timeline-caption #dash_version .timeline-panel,#content.bootstrap .message-item-initial .message-item-initial-body .timeline .timeline-item .timeline-caption .timeline-panel,#content.bootstrap .timeline .timeline-item .timeline-caption .message-item-initial .message-item-initial-body .timeline-panel,#content.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel .timeline-panel{border:solid 1px #ddd}#content.bootstrap .panel .panel.tab-content,#content.bootstrap #dash_version .panel.tab-content,#content.bootstrap .message-item-initial .message-item-initial-body .panel.tab-content,#content.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel .panel.tab-content,#content.bootstrap .panel .tab-content#dash_version,#content.bootstrap #dash_version .tab-content#dash_version,#content.bootstrap .message-item-initial .message-item-initial-body .tab-content#dash_version,#content.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel .tab-content#dash_version,#content.bootstrap .panel .message-item-initial .tab-content.message-item-initial-body,#content.bootstrap .message-item-initial .panel .tab-content.message-item-initial-body,#content.bootstrap #dash_version .message-item-initial .tab-content.message-item-initial-body,#content.bootstrap .message-item-initial #dash_version .tab-content.message-item-initial-body,#content.bootstrap .message-item-initial .message-item-initial-body .tab-content.message-item-initial-body,#content.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel .message-item-initial .tab-content.message-item-initial-body,#content.bootstrap .message-item-initial .timeline .timeline-item .timeline-caption .timeline-panel .tab-content.message-item-initial-body,#content.bootstrap .panel .timeline .timeline-item .timeline-caption .tab-content.timeline-panel,#content.bootstrap .timeline .timeline-item .timeline-caption .panel .tab-content.timeline-panel,#content.bootstrap #dash_version .timeline .timeline-item .timeline-caption .tab-content.timeline-panel,#content.bootstrap .timeline .timeline-item .timeline-caption #dash_version .tab-content.timeline-panel,#content.bootstrap .message-item-initial .message-item-initial-body .timeline .timeline-item .timeline-caption .tab-content.timeline-panel,#content.bootstrap .timeline .timeline-item .timeline-caption .message-item-initial .message-item-initial-body .tab-content.timeline-panel,#content.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel .tab-content.timeline-panel{-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}#content.bootstrap h3:not(.modal-title),#content.bootstrap .panel-heading{border:none;font-size:1.2em;line-height:2.2em;height:2.2em;text-transform:uppercase;border-bottom:solid 1px #eee;padding:0 0 0 5px;margin:-20px -16px 15px -16px}#content.bootstrap h3:not(.modal-title) i,#content.bootstrap h3:not(.modal-title) a,#content.bootstrap .panel-heading i,#content.bootstrap .panel-heading a{color:contrasted(#e5e8e3)}#content.bootstrap h3:not(.modal-title) .badge,#content.bootstrap h3:not(.modal-title) #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper #content.bootstrap h3:not(.modal-title) .notifs_badge,#content.bootstrap h3:not(.modal-title) .module-badge-popular,#content.bootstrap h3:not(.modal-title) .module-badge-partner,#content.bootstrap h3:not(.modal-title) .module-badge-bought,#content.bootstrap .panel-heading .badge,#content.bootstrap .panel-heading #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper #content.bootstrap .panel-heading .notifs_badge,#content.bootstrap .panel-heading .module-badge-popular,#content.bootstrap .panel-heading .module-badge-partner,#content.bootstrap .panel-heading .module-badge-bought{color:#555;font-size:1.1em;line-height:1.2em;padding:0 10px;font-weight:700;border:solid 1px #d9d9d9;background-color:#fff;margin-left:.4em;-webkit-border-radius:20px;border-radius:20px}#content.bootstrap h3:not(.modal-title) .badge a,#content.bootstrap h3:not(.modal-title) #header_notifs_icon_wrapper .notifs_badge a,#header_notifs_icon_wrapper #content.bootstrap h3:not(.modal-title) .notifs_badge a,#content.bootstrap h3:not(.modal-title) .module-badge-popular a,#content.bootstrap h3:not(.modal-title) .module-badge-partner a,#content.bootstrap h3:not(.modal-title) .module-badge-bought a,#content.bootstrap .panel-heading .badge a,#content.bootstrap .panel-heading #header_notifs_icon_wrapper .notifs_badge a,#header_notifs_icon_wrapper #content.bootstrap .panel-heading .notifs_badge a,#content.bootstrap .panel-heading .module-badge-popular a,#content.bootstrap .panel-heading .module-badge-partner a,#content.bootstrap .panel-heading .module-badge-bought a{display:block;font-size:.8em}#content.bootstrap h3:not(.modal-title) .panel-heading-action,#content.bootstrap .panel-heading .panel-heading-action{line-height:0;position:absolute;top:2px;right:0}#content.bootstrap h3:not(.modal-title) .panel-heading-action .btn,#content.bootstrap .panel-heading .panel-heading-action .btn{padding:4px 8px !important}#content.bootstrap h3:not(.modal-title) .panel-heading-action .btn-group,#content.bootstrap .panel-heading .panel-heading-action .btn-group{position:absolute;white-space:nowrap;top:2px;right:6px}#content.bootstrap h3:not(.modal-title) .panel-heading-action .btn-group a.btn,#content.bootstrap .panel-heading .panel-heading-action .btn-group a.btn{float:none}#content.bootstrap h3:not(.modal-title) .panel-heading-action>a.btn,#content.bootstrap .panel-heading .panel-heading-action>a.btn{position:absolute;top:0;right:2px}#content.bootstrap h3:not(.modal-title) .panel-heading-action a.list-toolbar-btn,#content.bootstrap .panel-heading .panel-heading-action a.list-toolbar-btn{height:30px;width:30px;color:#CCC;float:left;border-left:solid 1px #eee}#content.bootstrap h3:not(.modal-title) .panel-heading-action a.list-toolbar-btn:hover,#content.bootstrap .panel-heading .panel-heading-action a.list-toolbar-btn:hover{text-decoration:none;color:#00aff0}#content.bootstrap h3:not(.modal-title) .panel-heading-action a.list-toolbar-btn i,#content.bootstrap .panel-heading .panel-heading-action a.list-toolbar-btn i{text-align:center;font-size:18px;line-height:30px}#content.bootstrap h3:not(.modal-title) .panel-heading-action .dropdown-menu,#content.bootstrap .panel-heading .panel-heading-action .dropdown-menu{line-height:normal}#content.bootstrap .panel-danger .panel-heading{background-color:#DC143C;color:#FFF;margin:-20px -20px 15px -20px;padding:0px 10px 0px 10px}#content.bootstrap form .alert,#content.bootstrap form #carrier_wizard .wizard_error,#content.bootstrap #carrier_wizard form .wizard_error{clear:both}@media (max-width: 480px){#content.bootstrap{padding:120px 5px 0;margin-left:0 !important}}#content.bootstrap .help-block{font-style:italic}#content.bootstrap .nav.nav-tabs li.active a,#content.bootstrap .nav-tabs#header_notifs_icon_wrapper li.active a,#content.bootstrap .nav-tabs#header_employee_box li.active a,#content.bootstrap .nav-tabs#header_quick li.active a,#content.bootstrap .nav-tabs#header_shop li.active a{z-index:99}#content.bootstrap .breadcrumb{background-color:#fff;border:solid 1px #d3d8db}#content.bootstrap .panel.panel-sm,#content.bootstrap .panel-sm#dash_version,#content.bootstrap .message-item-initial .panel-sm.message-item-initial-body,#content.bootstrap .timeline .timeline-item .timeline-caption .panel-sm.timeline-panel{padding:8px !important}#content.bootstrap .panel.panel-sm .panel-heading,#content.bootstrap .panel-sm#dash_version .panel-heading,#content.bootstrap .message-item-initial .panel-sm.message-item-initial-body .panel-heading,#content.bootstrap .timeline .timeline-item .timeline-caption .panel-sm.timeline-panel .panel-heading{font-size:13px;margin:-8px -8px 10px;padding-left:8px}#content.bootstrap .panel.panel-sm .form-group,#content.bootstrap .panel-sm#dash_version .form-group,#content.bootstrap .message-item-initial .panel-sm.message-item-initial-body .form-group,#content.bootstrap .timeline .timeline-item .timeline-caption .panel-sm.timeline-panel .form-group{margin-bottom:8px}#content.bootstrap #page-loader{position:fixed;display:none;inset:0;z-index:10000;background-color:rgba(0,0,0,0.5)}#content.bootstrap #page-loader span{position:absolute;inset:0;display:flex;justify-content:center;align-items:center}#content.bootstrap #page-loader i{color:#fff;font-size:50px}.data-focus.data-focus-primary{background-color:#00aff0;color:#fff;-webkit-border-radius:10px;border-radius:10px}#customer_part .customerCard.selected-customer .panel,#customer_part .customerCard.selected-customer .bootstrap #dash_version,.bootstrap #customer_part .customerCard.selected-customer #dash_version,#customer_part .customerCard.selected-customer .bootstrap .message-item-initial .message-item-initial-body,.bootstrap .message-item-initial #customer_part .customerCard.selected-customer .message-item-initial-body,#customer_part .customerCard.selected-customer .bootstrap .timeline .timeline-item .timeline-caption .timeline-panel,.bootstrap .timeline .timeline-item .timeline-caption #customer_part .customerCard.selected-customer .timeline-panel{color:#72C279;border:solid 2px #72C279}body.display-modal #content,body.display-modal #main{margin:0;padding:0;background:#F8F8F8}.bootstrap .modal .alert h3,.bootstrap .modal #carrier_wizard .wizard_error h3,.bootstrap #carrier_wizard .modal .wizard_error h3{margin-top:0}.bootstrap .modal-footer .alert,.bootstrap .modal-footer #carrier_wizard .wizard_error,.bootstrap #carrier_wizard .modal-footer .wizard_error{text-align:left}.bootstrap .panel .panel-footer,.bootstrap #dash_version .panel-footer,.bootstrap .message-item-initial .message-item-initial-body .panel-footer,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel .panel-footer{height:73px;border-color:#eee;background-color:#FCFDFE;margin:15px -20px -20px}.bootstrap .panel .panel-footer .btn.pull-right:not(:first-child),.bootstrap #dash_version .panel-footer .btn.pull-right:not(:first-child),.bootstrap .message-item-initial .message-item-initial-body .panel-footer .btn.pull-right:not(:first-child),.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel .panel-footer .btn.pull-right:not(:first-child){margin-right:5px}.bootstrap .panel .panel-footer .btn,.bootstrap #dash_version .panel-footer .btn,.bootstrap .message-item-initial .message-item-initial-body .panel-footer .btn,.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel .panel-footer .btn{line-height:1em}#header .panel-footer{margin:15px 0 0 !important;height:40px !important}.list_action_wrapper{margin-bottom:15px}.list_action_wrapper .list_availibility_container{position:relative}.list_action_wrapper .list_availibility_container .dropdown-menu{right:0;padding:8px 12px}.list_action_wrapper .list_availibility_container .dropdown-menu label{font-weight:400}.list_action_wrapper #selected_filter_container{background-color:#fff;padding:8px 20px;border:solid 1px #d3d8db;border-radius:5px 5px 0 0;font-size:14px;min-height:52px;margin-top:15px}.list_action_wrapper #selected_filter_container .selected_filters>span{font-size:12px;padding:6px 10px;display:inline-block;background:#F5F8F9;border:1px solid #A0D0EB;border-radius:3px}.list_action_wrapper #selected_filter_container .selected_filters>span+span{margin-left:12px}.list_action_wrapper #selected_filter_container .selected_filters>span .filter_value{font-weight:700}.list_action_wrapper #selected_filter_container .selected_filters>span i{cursor:pointer}.list_action_wrapper #list_filters_panel{margin-top:15px;margin-bottom:0}.list_action_wrapper #selected_filter_container+#list_filters_panel{margin-top:0}.list_action_wrapper #selected_filter_container+div.panel,.list_action_wrapper .bootstrap #selected_filter_container+div#dash_version,.bootstrap .list_action_wrapper #selected_filter_container+div#dash_version,.list_action_wrapper .bootstrap .message-item-initial #selected_filter_container+div.message-item-initial-body,.bootstrap .message-item-initial .list_action_wrapper #selected_filter_container+div.message-item-initial-body,.list_action_wrapper .bootstrap .timeline .timeline-item .timeline-caption #selected_filter_container+div.timeline-panel,.bootstrap .timeline .timeline-item .timeline-caption .list_action_wrapper #selected_filter_container+div.timeline-panel{border-top:transparent;border-radius:0 0 5px 5px}.list_action_wrapper .list_filters{padding:0 30px;display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:8px 40px}.list_action_wrapper .list_filters>.row,.list_action_wrapper .bootstrap .list_filters>.multishop-well,.bootstrap .list_action_wrapper .list_filters>.multishop-well,.list_action_wrapper .bootstrap #dashboard .list_filters>.data_list_vertical,.bootstrap #dashboard .list_action_wrapper .list_filters>.data_list_vertical{display:flex;align-items:center}.list_action_wrapper .list_filters .date_range,.list_action_wrapper .list_filters .input_range{display:flex;justify-content:space-between;gap:15px}.list_action_wrapper .list_filters .date_range .input-group:first-child{margin-bottom:0}.list_action_wrapper .list_filters label{text-align:right;font-weight:400}.list_action_wrapper .list_filters .actions{grid-column-start:1;grid-column-end:4}@media (max-width: 992px){.list_action_wrapper .list_filters{grid-template-columns:repeat(2, 1fr)}.list_action_wrapper .list_filters .actions{grid-column-start:1;grid-column-end:3}}@media (max-width: 768px){.list_action_wrapper .list_filters{grid-template-columns:repeat(1, 1fr)}.list_action_wrapper .list_filters .actions{grid-column-start:1;grid-column-end:2}.list_action_wrapper .list_filters label{text-align:left}}#main.helpOpen{width:70%}@media (max-width: 1200px){#main.helpOpen{width:100%}}#help-container{position:relative;margin:0;padding:0;float:right;width:30%;margin-top:155px;margin-bottom:50px;background-color:#fff;box-sizing:border-box;overflow-x:hidden}@media (max-width: 1200px){#help-container{display:none}}.page-topbar #help-container{margin-top:140px}#header{z-index:20}#header_infos{height:36px !important}#header_infos .navbar-header{width:100%}#header_shopversion{font-size:1.3em !important;position:relative;height:36px;background:url("../img/qloapps-back-office-header.png") no-repeat top left;background-size:auto 36px;padding-left:140px !important;margin:0 5px 0 0}#header_shopversion #shop_version{font-size:10px}@media (max-width: 480px){#header_shopversion{display:none}}#header_shopname{text-decoration:none}@media (max-width: 768px){.bootstrap #header_shopname{padding:9px 5px 9px 40px}}#header_notifs_icon_wrapper{min-width:170px}#header_notifs_icon_wrapper>li>a{height:36px;display:block;color:#fff}#header_notifs_icon_wrapper>li>a:hover i{color:#fff}#header_notifs_icon_wrapper>li>a>i{font-size:14px;vertical-align:middle}#header_notifs_icon_wrapper .notifs{width:40px;position:relative}#header_notifs_icon_wrapper .notifs_badge{position:absolute;font-size:10px !important;top:2px;padding:0 5px !important;display:none;z-index:10;right:-3px}#header_notifs_icon_wrapper .notifs_dropdown{background-color:#fff;border:none;-webkit-box-shadow:rgba(0,0,0,0.7) 0 0 10px;box-shadow:rgba(0,0,0,0.7) 0 0 10px}#header_notifs_icon_wrapper .notifs_dropdown .notifs_panel{width:300px}#header_notifs_icon_wrapper .notifs_dropdown .notifs_panel .notifs_panel_header h3{padding:10px;font-size:1.3em;margin:0;border-bottom:solid 1px #ccc}#header_notifs_icon_wrapper .notifs_dropdown .notifs_panel .notifs_panel_footer{padding:10px;text-align:center}#header_notifs_icon_wrapper .notifs_dropdown .notifs_panel .list_notif a{display:block;text-decoration:none;padding:5px;border-bottom:solid 1px #ccc}#header_notifs_icon_wrapper .notifs_dropdown .notifs_panel .list_notif .no_notifs{display:block;padding:15px;border-bottom:solid 1px #ccc}#header_nav_toggle{background-color:#000;border:none;color:#fff;display:none}#header_employee_box{margin:0 !important}@media (max-width: 768px){#header_employee_box{float:right}#header_employee_box>li{display:inline-block;float:left}}@media (max-width: 1200px){#header_employee_box span.string-long{display:none}}#header_employee_box span.string-short{display:none}@media (max-width: 1200px){#header_employee_box span.string-short{display:inline-block}}#header_employee_box a img{margin-right:5px}#header_employee_box #header_foaccess{display:inline-block}#header_employee_box #header_foaccess i{font-size:1.2em}#header_employee_box .maintenance-mode{color:#fff;cursor:default;display:inline-block;margin-left:-13px}#header_employee_box .maintenance-mode .label-tooltip{padding:9px 0;color:#fbbb22}#employee_infos img{border:none;padding:0}#employee_links i{font-size:14px}@media (max-width: 768px){#employee_links{position:fixed !important;top:36px !important;width:100% !important;height:100% !important;background-color:#383F50 !important;left:0 !important}#employee_links li{color:#fff;font-size:1.2em;text-transform:uppercase}#employee_links li i{font-size:1.3em;color:#00aff0}}#employee_links .version{color:#999;text-align:center;font-size:.9em;padding:0 0 3px 0}#employee_links .version sup{font-size:.7em}#ajax_running{position:absolute;height:35px;width:35px;top:0;background-color:rgba(0,0,0,0.4);text-align:center;left:0}#ajax_running i{font-size:20px;color:rgba(255,255,255,0.6);line-height:35px}#footer{display:block;width:100%;height:50px;position:fixed;bottom:0;z-index:600;background-color:rgba(0,0,0,0.8);color:#aaa;line-height:50px;-webkit-animation:fadeInUp .3s .2s ease both;-moz-animation:fadeInUp .3s .2s ease both;-ms-animation:fadeInUp .3s .2s ease both;-o-animation:fadeInUp .3s .2s ease both;animation:fadeInUp .3s .2s ease both}#footer a{color:#ccc}#footer.hide{display:none !important}#footer #go-top{display:block;height:30px;width:30px;position:fixed;right:10px;bottom:10px;z-index:9003;padding:0px 6px;margin:-2px 0px 0px;text-align:center;line-height:30px;text-decoration:none;color:#fff;cursor:pointer;font-size:16px;background-color:#363A41;right:10px}#footer #go-top:hover{background-color:#00aff0}#footer a.footer_link{color:#00aff0}#footer a.footer_link:hover{color:#fff;text-decoration:none}#footer a.footer_link i{font-size:14px;color:#fff}#footer .footer-contact{padding:7px 0 0 0;line-height:35px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0 0 6px 6px}#footer .footer-contact strong{font-weight:400;color:#fff}a.link-social i{font-size:14px;width:24px;height:24px;display:inline-block;line-height:24px !important;text-align:center;margin:0 4px 0 0;-webkit-border-radius:30px;border-radius:30px}a.link-social:hover{text-decoration:none}.link-twitter i{color:#fff;background-color:#7CCEEF}.link-twitter i:hover{color:#7CCEEF;background-color:#fff}.link-facebook i{color:#fff;background-color:#557DBB}.link-facebook i:hover{color:#557DBB;background-color:#fff}.link-github i{color:#000;background-color:#fff}.link-github i:hover{color:#fff;background-color:#000}.link-google i{color:#fff;background-color:#E6644E}.link-google i:hover{color:#E6644E;background-color:#fff}.status-page-dot.operational{color:#2ecc71 !important}.status-page-dot.degraded_performance{color:#f1c40f !important}.status-page-dot.partial_outage{color:#e67e22 !important}.status-page-dot.major_outage{color:#e74c3c !important}#nav-sidebar{position:fixed;width:210px;height:100%;z-index:500;background-color:#363A41;left:0}#nav-sidebar ul.menu{margin:0;padding:0;list-style:none !important}#nav-sidebar ul.menu li.searchtab{padding:14px 7px;height:55px;position:relative;background-color:#363A41}#nav-sidebar ul.menu li.searchtab #bo_query{-webkit-border-top-left-radius:0;border-top-left-radius:0;-webkit-border-top-right-radius:55px;border-top-right-radius:55px;-webkit-border-bottom-right-radius:55px;border-bottom-right-radius:55px;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;color:#363A41;background-color:#fff;border:1px solid transparent !important;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:none;-o-transition:none;transition:none}#nav-sidebar ul.menu li.searchtab .input-group-btn{-webkit-border-top-left-radius:55px;border-top-left-radius:55px;-webkit-border-top-right-radius:0;border-top-right-radius:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-webkit-border-bottom-left-radius:55px;border-bottom-left-radius:55px}#nav-sidebar ul.menu li.searchtab .input-group-btn .btn{-webkit-border-top-left-radius:55px;border-top-left-radius:55px;-webkit-border-top-right-radius:0;border-top-right-radius:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-webkit-border-bottom-left-radius:55px;border-bottom-left-radius:55px;-webkit-box-shadow:none;box-shadow:none}#nav-sidebar ul.menu li.searchtab .input-group-btn .btn-default{-webkit-box-shadow:none;box-shadow:none;border:1px solid transparent !important}#nav-sidebar ul.menu li.searchtab .form-group.focus-search{position:absolute;width:400px;height:55px;z-index:900;top:0;background-color:#363A41;left:0;padding:14px 13px 0 7px}#nav-sidebar ul.menu li.searchtab .form-group.focus-search #bo_query{width:100%}#nav-sidebar ul.menu li.searchtab .form-group.focus-search .input-group-btn{-webkit-border-top-left-radius:55px;border-top-left-radius:55px;-webkit-border-top-right-radius:0;border-top-right-radius:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-webkit-border-bottom-left-radius:55px;border-bottom-left-radius:55px}#nav-sidebar ul.menu li.searchtab .form-group.focus-search .input-group-btn .btn{-webkit-border-top-left-radius:55px;border-top-left-radius:55px;-webkit-border-top-right-radius:0;border-top-right-radius:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-webkit-border-bottom-left-radius:55px;border-bottom-left-radius:55px;-webkit-box-shadow:none;box-shadow:none}#nav-sidebar ul.menu li.searchtab .form-group.focus-search .input-group-btn .btn-default{-webkit-box-shadow:none;box-shadow:none}#nav-sidebar ul.menu li.searchtab .clear_search{position:absolute;top:6px;z-index:10;right:8px}#nav-sidebar ul.menu li.searchtab i{font-size:14px}#nav-sidebar ul.menu li.maintab{position:relative}#nav-sidebar ul.menu li.maintab ul.submenu{display:none;padding:0px;background-color:#363A41}#nav-sidebar ul.menu li.maintab ul.submenu li{list-style:none !important}#nav-sidebar ul.menu li.maintab ul.submenu li a{color:#BEBEBE;display:block;padding:4px 8px;background-color:#363A41}@media (min-height: 850px){#nav-sidebar ul.menu li.maintab ul.submenu li a{padding:8px 8px;min-height:34px}}#nav-sidebar ul.menu li.maintab ul.submenu li a:hover{color:#fff;text-decoration:none;background-color:#282b30}#nav-sidebar ul.menu li.maintab a{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}#nav-sidebar ul.menu li.maintab>a.title{display:block;position:relative;padding:0 .35em;height:34px;background-color:#363A41;color:#BEBEBE;line-height:34px;text-decoration:none;-webkit-transition-property:background-color;transition-property:background-color;-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}#nav-sidebar ul.menu li.maintab>a.title i{vertical-align:middle;margin-top:-5px;color:#BEBEBE;-webkit-transition-property:color;transition-property:color;-webkit-transition-duration:.4s;transition-duration:.4s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}#nav-sidebar ul.menu li.maintab>a.title span{padding-left:10px}#nav-sidebar ul.menu li.maintab.hover>a.title,#nav-sidebar ul.menu li.maintab:hover:not(.hover)>a.title{color:#fff;background-color:#282b30}#nav-sidebar ul.menu li.maintab.hover>a.title i,#nav-sidebar ul.menu li.maintab:hover:not(.hover)>a.title i{color:#fff}#nav-sidebar ul.menu li.maintab.hover:not(.active):before{content:"";width:0;height:0;border-style:solid;border-width:8px 10px 8px 0;border-color:transparent #363A41 transparent transparent;background-color:transparent;margin-top:6px;position:absolute;z-index:1;right:0}@media (min-height: 850px){#nav-sidebar ul.menu li.maintab.hover:not(.active):before{margin-top:10px}}#nav-sidebar ul.menu li.maintab.hover ul.submenu{position:absolute;display:block;width:200px;top:0;z-index:600;left:210px}#nav-sidebar ul.menu li.maintab:last-child>a.title{border-bottom:none}#nav-sidebar ul.menu li.maintab.active a,#nav-sidebar ul.menu li.maintab.active li.active a{color:#fff}#nav-sidebar ul.menu li.maintab.active a.title,#nav-sidebar ul.menu li.maintab.active li.active a.title{border-right:3px solid #fff;background-color:#282b30}#nav-sidebar ul.menu li.maintab.active a i,#nav-sidebar ul.menu li.maintab.active li.active a i{color:#fff}@media (min-height: 850px){body:not(.page-sidebar-closed) #nav-sidebar ul.menu li.maintab.active ul.submenu{display:block;margin-left:35px;border-left:1px solid #282b30}body:not(.page-sidebar-closed) #nav-sidebar ul.menu li.maintab.active ul.submenu a{color:#BEBEBE;padding:8px 8px}body:not(.page-sidebar-closed) #nav-sidebar ul.menu li.maintab.active ul.submenu a:hover{color:#fff;background-color:#282b30;text-decoration:none}body:not(.page-sidebar-closed) #nav-sidebar ul.menu li.maintab.active ul.submenu li.active a{color:#fff;position:relative}}@media (max-width: 480px){#nav-sidebar{display:none}}@media (max-height: 850px){body:not(.page-sidebar-closed) #nav-sidebar ul.menu li.maintab>a.title{font-size:12px;height:28px;line-height:28px}body:not(.page-sidebar-closed) #nav-sidebar ul.menu li.maintab>a.title i{vertical-align:baseline;width:18px;font-size:14px;text-align:right}body:not(.page-sidebar-closed) #nav-sidebar ul.menu li.maintab ul.submenu{padding:1px 1px 0 1px}body:not(.page-sidebar-closed) #nav-sidebar ul.menu li.maintab ul.submenu li a{padding:0 6px;height:27px;line-height:27px}body:not(.page-sidebar-closed) #nav-sidebar ul.menu li.maintab.active ul.submenu{display:none}body:not(.page-sidebar-closed) #nav-sidebar ul.menu li.maintab.active.hover ul.submenu{position:absolute;display:block;width:200px;z-index:600;left:210px;top:0}}.page-sidebar #content{margin-left:210px}.page-sidebar-closed #nav-sidebar{overflow:visible;width:50px}.page-sidebar-closed #nav-sidebar ul.submenu{display:none !important;position:relative;top:34px;padding-top:0 !important}.page-sidebar-closed #nav-sidebar li.searchtab{color:rgba(255,255,255,0.5)}.page-sidebar-closed #nav-sidebar li.searchtab:hover{cursor:pointer;color:#fff}.page-sidebar-closed #nav-sidebar li.searchtab.search-expanded{width:400px;background-color:#2a2e33;padding:14px 13px 0 7px}.page-sidebar-closed #nav-sidebar li.searchtab.search-expanded:before{display:none}.page-sidebar-closed #nav-sidebar li.searchtab.search-expanded form .form-group{display:block}.page-sidebar-closed #nav-sidebar li.maintab.active ul.submenu{border:none !important}.page-sidebar-closed #nav-sidebar a.title{text-align:center}.page-sidebar-closed #nav-sidebar a.title>span{display:none}.page-sidebar-closed #nav-sidebar>ul>li.maintab:hover{width:250px !important;position:relative;z-index:500}.page-sidebar-closed #nav-sidebar>ul>li.maintab:hover a.title{text-align:left}.page-sidebar-closed #nav-sidebar>ul>li.maintab:hover a.title>span{display:inline-block}.page-sidebar-closed #nav-sidebar>ul>li.maintab:hover ul.submenu{position:absolute !important;display:block !important;top:34px !important;width:200px !important;left:50px}.page-sidebar-closed #content{margin-left:55px}@media (max-width: 480px){.page-sidebar-closed #content{margin-left:0}}.page-sidebar-closed .submenu_expand{display:none}#nav-topbar{position:fixed;height:30px;top:36px;width:100%;z-index:600;background-color:#fff;border:solid 1px #fff;padding:0 40px 0 0}#nav-topbar ul.menu{margin:0;padding:0;display:block;list-style:none}#nav-topbar ul.menu li.maintab{border-right:solid 1px #E6E6E6}#nav-topbar ul.menu li.maintab:last-child{border:none}#nav-topbar ul.menu li.searchtab{width:200px;margin-right:5px;float:right}#nav-topbar ul.menu li.searchtab .clear_search{position:absolute;top:6px;z-index:10;right:8px}#nav-topbar ul.menu li.maintab,#nav-topbar ul.menu li.subtab{height:28px;padding:0;margin:0;list-style:none;position:relative;float:left}#nav-topbar ul.menu li.maintab>a,#nav-topbar ul.menu li.subtab>a{display:block;line-height:27px;color:#646c79;padding:0 6px;margin:0;font-size:12px}#nav-topbar ul.menu li.maintab>a i,#nav-topbar ul.menu li.subtab>a i{margin:0;width:15px;color:#4d535d;background-color:transparent;font-size:14px}#nav-topbar ul.menu li.maintab.active,#nav-topbar ul.menu li.maintab:hover,#nav-topbar ul.menu li.subtab.active,#nav-topbar ul.menu li.subtab:hover{background-color:#00aff0}#nav-topbar ul.menu li.maintab.active>a,#nav-topbar ul.menu li.maintab:hover>a,#nav-topbar ul.menu li.subtab.active>a,#nav-topbar ul.menu li.subtab:hover>a{text-decoration:none;color:#fff}#nav-topbar ul.menu li.maintab.active>a i,#nav-topbar ul.menu li.maintab:hover>a i,#nav-topbar ul.menu li.subtab.active>a i,#nav-topbar ul.menu li.subtab:hover>a i{color:#fff}#nav-topbar ul.menu li.expanded>ul.submenu{display:block}#nav-topbar ul.menu ul.submenu{background-color:#fff;display:none;position:absolute;margin:0;padding:0;left:0;top:28px;width:200px !important;-webkit-box-shadow:rgba(0,0,0,0.3) 0 2px 4px;box-shadow:rgba(0,0,0,0.3) 0 2px 4px}#nav-topbar ul.menu ul.submenu>li{width:200px;padding:0;list-style:none}#nav-topbar ul.menu ul.submenu>li:last-child>a{border:none}#nav-topbar ul.menu ul.submenu>li>a{display:block;padding:4px 5px 4px 10px;border-bottom:solid 1px #E6E6E6}#nav-topbar ul.menu ul.submenu>li>a:hover{color:#fff;background-color:#00aff0;text-decoration:none}#nav-topbar ul.menu ul.submenu>li.active a{color:#fff;background-color:#00aff0;border-bottom:solid 1px #008abd}#nav-topbar #ellipsistab{display:block;width:40px;height:28px;padding:0;margin:0;position:absolute;right:0}#nav-topbar #ellipsistab>a{text-align:center;font-size:14px;line-height:30px;color:#363A41;cursor:pointer}#nav-topbar #ellipsistab ul#ellipsis_submenu{right:0;left:inherit}#nav-topbar #ellipsistab ul#ellipsis_submenu a.title{padding:0 8px;text-align:left}#nav-topbar #ellipsistab ul#ellipsis_submenu li.subtab.expanded>ul{top:0;left:-200px}#nav-topbar .menu-collapse{display:none}#nav-mobile{position:fixed;top:0;width:35px;height:35px;z-index:1100;left:0}#nav-mobile.expanded{width:100%;height:100%;top:35px}#nav-mobile.expanded .menu-collapse{top:-35px;position:absolute;z-index:1200;left:0}#nav-mobile ul.menu{position:absolute;display:none;width:100%;height:100%;background-color:rgba(0,0,0,0.8);padding:0;border-top:1px #000 solid;list-style:none;margin:0 0 100px 0;-webkit-transition:all .35s ease-out;-o-transition:all .35s ease-out;transition:all .35s ease-out;-webkit-animation:fadeInLeft .3s .2s ease both;-moz-animation:fadeInLeft .3s .2s ease both;-ms-animation:fadeInLeft .3s .2s ease both;-o-animation:fadeInLeft .3s .2s ease both;animation:fadeInLeft .3s .2s ease both}#nav-mobile ul.menu>li.searchtab{padding:15px;position:relative;-webkit-box-shadow:rgba(0,0,0,0.1) 0 -3px 0 0 inset;box-shadow:rgba(0,0,0,0.1) 0 -3px 0 0 inset}#nav-mobile ul.menu>li.searchtab #bo_query{color:#363A41;background-color:#d1d3d8}#nav-mobile ul.menu>li.searchtab .form-group{margin:0}#nav-mobile ul.menu>li.searchtab .clear_search{position:absolute;top:5px;right:5px}#nav-mobile ul.menu>li{background:#363A41;position:relative}#nav-mobile ul.menu>li>a{display:block;height:34px;line-height:34px;position:relative;border-bottom:1px solid #1f2125;font-size:12px;color:#c3c4c6;background-color:#363A41;text-transform:uppercase;text-decoration:none;padding:0 0 0 10px;-webkit-transition-property:background-color;transition-property:background-color;-webkit-transition-duration:.4s;transition-duration:.4s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}#nav-mobile ul.menu>li>a i{color:rgba(255,255,255,0.6);vertical-align:middle;-webkit-transition-property:color;transition-property:color;-webkit-transition-duration:.4s;transition-duration:.4s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}#nav-mobile ul.menu>li>a:hover{background-color:#4d535d;color:#fff}#nav-mobile ul.menu>li>a:hover i{color:#fff}#nav-mobile ul.menu>li>a>i{display:inline-block;height:34px;width:34px;font-size:20px;line-height:34px;color:#fff;text-align:center}#nav-mobile ul.submenu{display:none}#nav-mobile #nav-mobile-submenu a:not(#nav-mobile-submenu-back){font-size:1.2em;text-transform:none;padding-left:50px}#nav-mobile a#nav-mobile-submenu-back{background-color:#2a2e33;font-size:1.5em}#nav-mobile ul.menu.menu-close{-webkit-animation:fadeOutLeft .2s .2s ease both;-moz-animation:fadeOutLeft .2s .2s ease both;-ms-animation:fadeOutLeft .2s .2s ease both;-o-animation:fadeOutLeft .2s .2s ease both;animation:fadeOutLeft .2s .2s ease both}#nav-mobile .menu-collapse{color:#fff;background-color:#000;width:35px;height:35px;text-align:center;line-height:1.3em}.menu-collapse{cursor:pointer;height:54px;width:100%;font-size:2em;text-align:center;line-height:55px;display:block;color:#BEBEBE}.mobile-nav #content h2.page-title{padding-left:10px !important}.mobile-nav #content h4.page-subtitle{left:10px !important}.mobile-nav #content ul.page-breadcrumb{left:10px !important}.page-topbar:not(.mobile-nav) #main{padding-top:64px}.page-topbar:not(.mobile-nav) #content{margin-left:0}.page-topbar:not(.mobile-nav) #content .page-head{top:66px}.page-topbar:not(.mobile-nav) #content .page-title{padding-left:75px}.page-topbar:not(.mobile-nav) #content .page-subtitle{left:75px}.page-topbar:not(.mobile-nav) #content .page-breadcrumb{left:75px}.page-sidebar-closed:not(.nav-topbar):not(.mobile-nav) .searchtab:before{z-index:1000;position:absolute;top:16px;display:block;width:28px;height:28px;left:14px}.page-sidebar-closed:not(.nav-topbar):not(.mobile-nav) .searchtab .form-group{display:none}[class^="icon-"]{font-size:14px}[class^="process-icon-"]{display:block;width:30px;height:30px;margin:0 auto;font-size:28px;background:transparent;background-size:26px;background-position:center}#content .process-icon-loading{line-height:30px;font-size:20px}.bootstrap .fixed-width-xs{width:48px !important}.bootstrap .fixed-width-sm{width:80px !important}.bootstrap .fixed-width-md{width:120px !important}.bootstrap .fixed-width-lg{width:160px !important}.bootstrap .fixed-width-xl{width:200px !important}.bootstrap .fixed-width-xxl{width:250px !important}@media (max-width: 480px){.bootstrap .hidden-inline-xs{display:none !important}}.bootstrap .row-margin-bottom{margin-bottom:15px}.bootstrap .row-margin-top{margin-top:15px}.bootstrap .row-padding-top{padding-top:15px}.bootstrap .thumbnail,.bootstrap .img-thumbnail{background-color:#fff;border-color:#ccc !important}.bootstrap .highlight{background-color:#F7E69F}.bootstrap .text-orange{color:#f90}.bootstrap .badge,.bootstrap #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper .bootstrap .notifs_badge,.bootstrap .module-badge-popular,.bootstrap .module-badge-partner,.bootstrap .module-badge-bought{padding:1px 5px;font-weight:normal;font-size:1em;line-height:inherit;letter-spacing:.0625em;background-color:#00aff0}.bootstrap .badge.badge-info,.bootstrap #header_notifs_icon_wrapper .badge-info.notifs_badge,#header_notifs_icon_wrapper .bootstrap .badge-info.notifs_badge,.bootstrap .badge-info.module-badge-popular,.bootstrap .badge-info.module-badge-partner,.bootstrap .badge-info.module-badge-bought{background-color:#25b9d7}.bootstrap .badge.badge-success,.bootstrap #header_notifs_icon_wrapper .badge-success.notifs_badge,#header_notifs_icon_wrapper .bootstrap .badge-success.notifs_badge,.bootstrap .badge-success.module-badge-popular,.bootstrap .badge-success.module-badge-partner,.bootstrap .badge-success.module-badge-bought{background-color:#72C279}.bootstrap .badge.badge-warning,.bootstrap #header_notifs_icon_wrapper .badge-warning.notifs_badge,#header_notifs_icon_wrapper .bootstrap .badge-warning.notifs_badge,.bootstrap .badge-warning.module-badge-popular,.bootstrap .badge-warning.module-badge-partner,.bootstrap .badge-warning.module-badge-bought{background-color:#fbbb22}.bootstrap .badge.badge-danger,.bootstrap #header_notifs_icon_wrapper .badge-danger.notifs_badge,#header_notifs_icon_wrapper .bootstrap .badge-danger.notifs_badge,.bootstrap .badge-danger.module-badge-popular,.bootstrap .badge-danger.module-badge-partner,.bootstrap .badge-danger.module-badge-bought{background-color:#E08F95}.bootstrap .badge.badge-critical,.bootstrap #header_notifs_icon_wrapper .badge-critical.notifs_badge,#header_notifs_icon_wrapper .bootstrap .badge-critical.notifs_badge,.bootstrap .badge-critical.module-badge-popular,.bootstrap .badge-critical.module-badge-partner,.bootstrap .badge-critical.module-badge-bought{background-color:#cf535c}.bootstrap .label{font-size:12px;font-weight:400}.bootstrap .label.label-inactive{background-color:#999}.bootstrap .nav-tabs{border-bottom:none}.bootstrap .nav-tabs li .badge,.bootstrap .nav-tabs li #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper .bootstrap .nav-tabs li .notifs_badge,.bootstrap .nav-tabs li .module-badge-popular,.bootstrap .nav-tabs li .module-badge-partner,.bootstrap .nav-tabs li .module-badge-bought{background-color:#fff;border:solid 2px #eee;color:#666}.bootstrap .nav-tabs li a{font-size:1.1em;font-family:"Ubuntu Condensed",Helvetica,Arial,sans-serif;text-transform:uppercase;font-weight:300}.bootstrap .nav-tabs li.active a,.bootstrap .nav-tabs li.active a:hover,.bootstrap .nav-tabs li.active a:focus{background-color:#fff}.bootstrap .table tr.parent td{background-color:#eee !important;border-bottom:solid 1px #ccc !important}.bootstrap .alert.alert-warning,.bootstrap #carrier_wizard .alert-warning.wizard_error{position:relative;border:none;padding-left:50px;border-left:solid 3px #fcc94f}.bootstrap .alert.alert-warning:before,.bootstrap #carrier_wizard .alert-warning.wizard_error:before{position:absolute;top:6px;display:block;height:25px;width:25px;color:#fcc94f;left:7px}.bootstrap .alert.alert-danger,.bootstrap #carrier_wizard .wizard_error{position:relative;border:none;padding-left:50px;border-left:solid 3px #eab3b7}.bootstrap .alert.alert-danger:before,.bootstrap #carrier_wizard .wizard_error:before{position:absolute;top:6px;display:block;height:25px;width:25px;color:#eab3b7;left:7px}.bootstrap .alert.alert-success,.bootstrap #carrier_wizard .alert-success.wizard_error{position:relative;border:none;padding-left:50px;border-left:solid 3px #92d097}.bootstrap .alert.alert-success:before,.bootstrap #carrier_wizard .alert-success.wizard_error:before{position:absolute;top:6px;display:block;height:25px;width:25px;color:#92d097;left:7px}.bootstrap .alert.alert-info,.bootstrap #carrier_wizard .alert-info.wizard_error{position:relative;border:none;padding-left:50px;border-left:solid 3px #4ac7e0}.bootstrap .alert.alert-info:before,.bootstrap #carrier_wizard .alert-info.wizard_error:before{position:absolute;top:6px;display:block;height:25px;width:25px;color:#4ac7e0;left:7px}.bootstrap .alert.alert-addons,.bootstrap #carrier_wizard .alert-addons.wizard_error{background-color:#F3F3F2;border-color:#f34794;color:#F01778;position:relative;border:none;padding-left:50px;border-left:solid 3px #f34291}.bootstrap .alert.alert-addons hr,.bootstrap #carrier_wizard .alert-addons.wizard_error hr{border-top-color:#f22f86}.bootstrap .alert.alert-addons .alert-link,.bootstrap #carrier_wizard .alert-addons.wizard_error .alert-link{color:#c70d60}.bootstrap .alert.alert-addons:before,.bootstrap #carrier_wizard .alert-addons.wizard_error:before{position:absolute;top:6px;display:block;height:25px;width:25px;color:#f34291;left:7px}.bootstrap .alert.alert-onboarding,.bootstrap #carrier_wizard .alert-onboarding.wizard_error{background-color:#fff;border-color:#4ec8e1;color:#25b9d7;position:relative;border:none;padding-left:50px;border-left:solid 3px #fff;border:solid 2px #25b9d7;box-shadow:inset 140px 0 0 #25b9d7;padding:20px 20px 20px 160px}.bootstrap .alert.alert-onboarding hr,.bootstrap #carrier_wizard .alert-onboarding.wizard_error hr{border-top-color:#39c1dd}.bootstrap .alert.alert-onboarding .alert-link,.bootstrap #carrier_wizard .alert-onboarding.wizard_error .alert-link{color:#1e94ab}.bootstrap .alert.alert-onboarding:before,.bootstrap #carrier_wizard .alert-onboarding.wizard_error:before{position:absolute;top:6px;display:block;height:25px;width:25px;color:#fff;left:7px}.bootstrap .alert.alert-onboarding:before,.bootstrap #carrier_wizard .alert-onboarding.wizard_error:before{left:25px;top:40px;font-size:98px}.bootstrap .alert.alert-onboarding .onboarding-step,.bootstrap #carrier_wizard .alert-onboarding.wizard_error .onboarding-step{width:100%;height:2em}.bootstrap .alert.alert-onboarding .onboarding-step.step-success,.bootstrap #carrier_wizard .alert-onboarding.wizard_error .onboarding-step.step-success{background-color:#25b9d7}.bootstrap .alert.alert-onboarding .onboarding-step.step-in-progress,.bootstrap #carrier_wizard .alert-onboarding.wizard_error .onboarding-step.step-in-progress{background-image:-webkit-linear-gradient(45deg, #7ad6e8 25%, transparent 25%, transparent 50%, #7ad6e8 50%, #7ad6e8 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, #7ad6e8 25%, transparent 25%, transparent 50%, #7ad6e8 50%, #7ad6e8 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, #7ad6e8 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,#7ad6e8 50%,#7ad6e8 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0));-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite;background-color:#25b9d7}.bootstrap .alert.alert-onboarding .onboarding-step.step-todo,.bootstrap #carrier_wizard .alert-onboarding.wizard_error .onboarding-step.step-todo{background-color:#eee}.bootstrap .alert.alert-onboarding .onboarding-step.step-first,.bootstrap #carrier_wizard .alert-onboarding.wizard_error .onboarding-step.step-first{-webkit-border-radius:3em 0 0 3em;border-radius:3em 0 0 3em}.bootstrap .alert.alert-onboarding .onboarding-step.step-final,.bootstrap #carrier_wizard .alert-onboarding.wizard_error .onboarding-step.step-final{-webkit-border-radius:0 3em 3em 0;border-radius:0 3em 3em 0}.bootstrap .alert.alert-onboarding h4,.bootstrap #carrier_wizard .alert-onboarding.wizard_error h4{font-weight:100;font-size:2.1em;color:#383F50;margin-bottom:.4em}.bootstrap .alert.alert-onboarding p,.bootstrap #carrier_wizard .alert-onboarding.wizard_error p{font-size:1.1em;color:#7d88a4;margin-bottom:1em}.bootstrap .alert.alert-onboarding .onboarding-action-container,.bootstrap #carrier_wizard .alert-onboarding.wizard_error .onboarding-action-container{padding-top:3em}.bootstrap .alert.alert-onboarding hr,.bootstrap #carrier_wizard .alert-onboarding.wizard_error hr{border-color:#a5e3f0}.bootstrap .alert.alert-onboarding .progress,.bootstrap #carrier_wizard .alert-onboarding.wizard_error .progress{-webkit-border-radius:3em;border-radius:3em;height:2em;box-shadow:none}.bootstrap .alert.alert-onboarding .progress-bar,.bootstrap #carrier_wizard .alert-onboarding.wizard_error .progress-bar{box-shadow:none}.bootstrap .alert.alert-message,.bootstrap #carrier_wizard .alert-message.wizard_error{position:relative;border:none;padding-left:50px;border-left:solid 3px #fcc94f;border:solid 2px #fbbb22;background-color:#fff}.bootstrap .alert.alert-message:before,.bootstrap #carrier_wizard .alert-message.wizard_error:before{position:absolute;top:6px;display:block;height:25px;width:25px;color:#fcc94f;left:7px}.bootstrap .alert h4,.bootstrap #carrier_wizard .wizard_error h4{font-size:1.45em;margin-bottom:1em}.bootstrap .overflow-y{max-height:200px;margin-bottom:15px;overflow-y:auto}.bootstrap .input[type='password']{font-size:2em !important}.bootstrap .pagination{margin:17px 0 0 0}.bootstrap .list-detail dd:not(:last-child){margin-bottom:10px}.bootstrap .attributes-color-container{width:40px;height:25px;display:block;border:solid 1px #000}.bootstrap #mColorPickerInput{color:#000}.bootstrap .modal-content-overflow{max-height:400px;overflow-y:scroll}.bootstrap .pointer{cursor:pointer}.bootstrap #recommendation-wrapper{margin-bottom:20px}.bootstrap #optional-list-toggle{font-family:"Open Sans",Helvetica,Arial,sans-serif;font-size:13px;padding:8px 12px;text-transform:none}.bootstrap #optional-list-toggle label{font-weight:400}.bootstrap #list_filters_panel .chosen-container{width:100% !important}.bootstrap #list_filters_panel .chosen-container-multi .chosen-choices{max-height:55px !important;white-space:nowrap;overflow-x:auto}.bootstrap #list_filters_panel .chosen-container-multi .chosen-choices li{float:none;display:inline-block}.bootstrap .table{border-collapse:separate;border-spacing:0 2px 0 0;margin-bottom:5px}.bootstrap .table thead>tr>th{border:none;font-weight:normal;vertical-align:top;border-bottom:solid 1px #a0d0eb}.bootstrap .table thead>tr>th span.title_box{color:#656565;display:block;word-wrap:nowrap;white-space:nowrap}.bootstrap .table thead>tr>th span.title_box.active{font-weight:bold}.bootstrap .table thead>tr>th span.title_box a{text-decoration:none}.bootstrap .table thead>tr>th span.title_box a.active{color:#000}.bootstrap .table thead>tr>th span.title_box .label-tooltip{color:#3586AE;background-color:#edf7fb;border:none;border-bottom:solid 1px #D8EDF7;padding:0 5px}.bootstrap .table thead>tr.filter>th{background-color:#ecf6fb}.bootstrap .table thead>tr.filter>th input[type="text"].filter,.bootstrap .table thead>tr.filter>th input[type="password"].filter,.bootstrap .table thead>tr.filter>th select.filter{font-size:11px;padding:4px;border-color:#a0d0eb}.bootstrap .table input,.bootstrap .table select{margin:0}.bootstrap .table input.center,.bootstrap .table select.center{margin:0 auto}.bootstrap .table tbody>tr>td{border-top:none;color:#666;background-color:#fff;padding:3px 7px;vertical-align:middle;word-wrap:nowrap;font-size:12px;border-bottom:solid 1px #EAEDEF}.bootstrap .table tbody>tr.odd>td{background-color:#FCFDFE}.bootstrap .table tbody>tr:hover>td{background-color:#f4f8fb}.bootstrap .table td.center,.bootstrap .table th.center{text-align:center}.bootstrap .table td.pointer{cursor:pointer}.bootstrap .table td.dragHandle .dragGroup{width:80px;cursor:move;text-align:center;position:relative;font-size:14px;padding:4px 4px 4px 20px;-webkit-border-radius:5px;border-radius:5px}.bootstrap .table td.dragHandle .dragGroup:hover{color:#fff;background-color:#00aff0 !important}.bootstrap .table td.dragHandle .dragGroup:before{display:block;height:16px;width:16px;position:absolute;top:8px;left:6px}.bootstrap .table td.dragHandle .dragGroup .positions{display:inline-block;border:solid 1px #ccc;background-color:#eee;padding:0 5px;color:#aaa;width:43px;text-shadow:#fff 1px 1px;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:rgba(0,0,0,0.2) 0 1px 3px inset;box-shadow:rgba(0,0,0,0.2) 0 1px 3px inset}.bootstrap .table tr.actions{text-align:right}.bootstrap .table td.actions{text-align:right;padding-right:5px}.bootstrap .table th.actions .btn{margin-bottom:4px !important}.bootstrap .table tr.myDragClass{padding:10px;background-color:#eee}.bootstrap .table tr.myDragClass td{color:#fff !important;background-color:#00aff0 !important;-moz-transform:translate(5px, 10px);-ms-transform:translate(5px, 10px);-webkit-transform:translate(5px, 10px);transform:translate(5px, 10px)}.bootstrap .table.tableDnD td{-webkit-transition-property:all;transition-property:all;-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.bootstrap tr.highlighted td{background-color:#00aff0 !important;color:#fff !important}.bootstrap .bulk-actions{margin:17px 0 0 0}.bootstrap .bulk-actions ul i{font-size:14px}.bootstrap .list-action-enable{font-size:1.3em;display:inline-block;width:30px;text-align:center;color:rgba(255,255,255,0.8);-webkit-border-radius:3px;border-radius:3px}.bootstrap .list-action-enable.action-enabled{color:#72C279}.bootstrap .list-action-enable.action-disabled{color:#E08F95}.bootstrap .list-action-enable:hover{color:#25B9D7}.bootstrap .list-empty{background-color:#FCFDFE !important}.bootstrap .list-empty .list-empty-msg{text-align:center;display:block;width:50%;margin:20px auto;color:#999;font-family:"Ubuntu Condensed",Helvetica,Arial,sans-serif;font-size:1.4em}.bootstrap .list-empty .list-empty-icon{color:#dedede;display:block;clear:both;font-size:84px;text-shadow:#fff 1px 1px 0}.bootstrap .date_range .input-group:first-child{margin-bottom:5px}.bootstrap .input_range>:first-child{margin-bottom:5px}@media (max-width: 991px){.bootstrap .table-responsive-row{overflow:visible}.bootstrap .table-responsive-row table,.bootstrap .table-responsive-row thead,.bootstrap .table-responsive-row tbody,.bootstrap .table-responsive-row th,.bootstrap .table-responsive-row td,.bootstrap .table-responsive-row tr{display:block}.bootstrap .table-responsive-row thead tr{display:block;float:left;width:70%}.bootstrap .table-responsive-row thead tr:first-child{width:30%}.bootstrap .table-responsive-row thead tr:first-child th{width:100% !important}.bootstrap .table-responsive-row thead tr:first-child:last-child{display:none}.bootstrap .table-responsive-row th{height:48px;text-align:center}.bootstrap .table-responsive-row th .fixed-width-md{float:left}.bootstrap .table-responsive-row th .fixed-width-sm{width:100% !important}.bootstrap .table-responsive-row tr{border:1px solid #ccc;-webkit-box-shadow:#EAEDEF 0 2px 0 0;box-shadow:#EAEDEF 0 2px 0 0;width:100%;margin-bottom:6px}.bootstrap .table-responsive-row tr:last-child{border-bottom:1px solid #ccc}.bootstrap .table-responsive-row td{position:relative;padding-left:35% !important;width:100% !important;text-align:left !important;line-height:2em !important;font-size:1.15em !important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bootstrap .table-responsive-row td:last-child{border:none}.bootstrap .table-responsive-row td .btn-group-action .dropdown-toggle{display:none !important}.bootstrap .table-responsive-row td .btn-group-action ul.dropdown-menu,.bootstrap .table-responsive-row td .btn-group-action .dropdown-menu li{position:relative;padding:0;margin:0;float:right;display:inline-block;background:transparent;border:none;z-index:13;-webkit-box-shadow:none;box-shadow:none}.bootstrap .table-responsive-row td .dropdown-menu li a,.bootstrap .table-responsive-row td a.btn,.bootstrap .table-responsive-row td button.btn{background-color:#fff;border:none;padding:12px 10px !important;margin-right:5px;display:inline-block;margin:0 !important;float:right;border-left:1px solid #EAEDEF;z-index:13;color:#00aff0;font-weight:bold;-webkit-box-shadow:none;box-shadow:none;-webkit-border-radius:0;border-radius:0}.bootstrap .table-responsive-row td .dropdown-menu li a i,.bootstrap .table-responsive-row td a.btn i,.bootstrap .table-responsive-row td button.btn i{color:#00aff0}.bootstrap .table-responsive-row td .dropdown-menu li a:hover,.bootstrap .table-responsive-row td a.btn:hover,.bootstrap .table-responsive-row td button.btn:hover{background-color:#00aff0;color:#fff}.bootstrap .table-responsive-row td .dropdown-menu li a:hover i,.bootstrap .table-responsive-row td a.btn:hover i,.bootstrap .table-responsive-row td button.btn:hover i{color:#fff}.bootstrap .table-responsive-row .odd td{background-color:#FCFDFE !important}.bootstrap .table-responsive-row td.row-selector{display:none}.bootstrap .table-responsive-row td:before{position:absolute;top:4px;left:12px;width:30%;border-right:1px solid #EAEDEF;padding-right:10px;white-space:nowrap;color:#aaa;text-align:right;font-size:.9em;font-style:italic}.bootstrap .table-responsive-row td:last-child{text-align:right !important;padding:0 !important}.bootstrap .table-responsive-row td:last-child:before{content:none !important}.bootstrap .table-responsive-row .btn-group{float:none !important}.bootstrap .table-responsive{width:100%;margin-bottom:12.75px;overflow-y:hidden;overflow-x:auto;border:1px solid #ddd;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-overflow-scrolling:touch}.bootstrap .table-responsive>.table{margin-bottom:0}.bootstrap .table-responsive>.table>thead>tr>th,.bootstrap .table-responsive>.table>thead>tr>td,.bootstrap .table-responsive>.table>tbody>tr>th,.bootstrap .table-responsive>.table>tbody>tr>td,.bootstrap .table-responsive>.table>tfoot>tr>th,.bootstrap .table-responsive>.table>tfoot>tr>td{white-space:nowrap}.bootstrap .table-responsive>.table-bordered{border:0}.bootstrap .table-responsive>.table-bordered>thead>tr>th:first-child,.bootstrap .table-responsive>.table-bordered>thead>tr>td:first-child,.bootstrap .table-responsive>.table-bordered>tbody>tr>th:first-child,.bootstrap .table-responsive>.table-bordered>tbody>tr>td:first-child,.bootstrap .table-responsive>.table-bordered>tfoot>tr>th:first-child,.bootstrap .table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.bootstrap .table-responsive>.table-bordered>thead>tr>th:last-child,.bootstrap .table-responsive>.table-bordered>thead>tr>td:last-child,.bootstrap .table-responsive>.table-bordered>tbody>tr>th:last-child,.bootstrap .table-responsive>.table-bordered>tbody>tr>td:last-child,.bootstrap .table-responsive>.table-bordered>tfoot>tr>th:last-child,.bootstrap .table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.bootstrap .table-responsive>.table-bordered>tbody>tr:last-child>th,.bootstrap .table-responsive>.table-bordered>tbody>tr:last-child>td,.bootstrap .table-responsive>.table-bordered>tfoot>tr:last-child>th,.bootstrap .table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}.bootstrap .tree-panel-heading-controls{line-height:2.2em;font-size:1.1em;color:#00aff0}.bootstrap .tree-panel-heading-controls i{font-size:14px}.bootstrap .tree{list-style:none;overflow:auto;padding:0 0 0 20px}.bootstrap .tree input{vertical-align:baseline;margin-right:4px;line-height:normal}.bootstrap .tree i{font-size:14px}.bootstrap .tree .tree-item-name,.bootstrap .tree .tree-folder-name{padding:2px 5px;-webkit-border-radius:4px;border-radius:4px}.bootstrap .tree .tree-item-name label,.bootstrap .tree .tree-folder-name label{font-weight:400}.bootstrap .tree .tree-item-name:hover,.bootstrap .tree .tree-folder-name:hover{background-color:#eee;cursor:pointer}.bootstrap .tree .tree-selected{color:#fff;background-color:#00aff0}.bootstrap .tree .tree-selected:hover{background-color:#009cd7}.bootstrap .tree .tree-selected i.tree-dot{background-color:#fff}.bootstrap .tree i.tree-dot{display:inline-block;position:relative;width:6px;height:6px;margin:0 4px;background-color:#ccc;-webkit-border-radius:6px;border-radius:6px}.bootstrap .tree .tree-item-disable,.bootstrap .tree .tree-folder-name-disable{color:#ccc}.bootstrap .tree .tree-item-disable:hover,.bootstrap .tree .tree-folder-name-disable:hover{color:#ccc;background-color:none}.bootstrap .tree .node-hint{font-style:italic;color:#959595;margin-left:30px;margin-top:-4px;margin-bottom:4px}.bootstrap .tree .badge,.bootstrap .tree #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper .bootstrap .tree .notifs_badge,.bootstrap .tree .module-badge-popular,.bootstrap .tree .module-badge-partner,.bootstrap .tree .module-badge-bought{margin-left:5px}.bootstrap .tree-actions{display:inline-block}.bootstrap .tree-panel-heading-controls{margin:-20px -20px 20px;padding:5px;border-bottom:solid 1px #DFDFDF}.bootstrap .tree-actions .twitter-typeahead{padding:0 0 0 4px;position:relative;top:1px}.bootstrap .tree-actions .tt-hint{left:4px !important;color:#ccc}.bootstrap .tree-panel-label-title{font-weight:400;margin:0;padding:0 0 0 8px}.bootstrap .tree.cattree{max-height:350px;overflow-y:auto}.bootstrap label.control-label{font-size:13px;font-weight:normal;color:#666}.bootstrap label.control-label span.label-tooltip{text-decoration:none;font-size:13px;color:#3586AE;background-color:#edf7fb;border:none;border-bottom:solid 1px #D8EDF7;padding:0 5px;-webkit-border-radius:3px;border-radius:3px}.bootstrap label.required:before{content:"*";color:red;font-size:14px;position:relative;line-height:12px}.bootstrap .tooltip{font-size:12px;font-family:"Open Sans",Helvetica,Arial,sans-serif;white-space:normal}.bootstrap select.input-tiny,.bootstrap input[type="text"].input-tiny,.bootstrap input[type="password"].input-tiny{width:80px;float:left}.bootstrap textarea{resize:none}.bootstrap textarea:focus,.bootstrap input[type="text"]:focus,.bootstrap input[type="password"]:focus,.bootstrap input[type="datetime"]:focus,.bootstrap input[type="datetime-local"]:focus,.bootstrap input[type="date"]:focus,.bootstrap input[type="month"]:focus,.bootstrap input[type="time"]:focus,.bootstrap input[type="week"]:focus,.bootstrap input[type="number"]:focus,.bootstrap input[type="email"]:focus,.bootstrap input[type="url"]:focus,.bootstrap input[type="search"]:focus,.bootstrap input[type="tel"]:focus,.bootstrap input[type="color"]:focus,.bootstrap .uneditable-input:focus{background-color:#FEFBE2;-webkit-box-shadow:none;box-shadow:none}.bootstrap .btn .caret{border-top-color:#333 !important}.bootstrap .btn:hover .caret{border-top-color:#fff !important}.bootstrap .btn.btn-default i{color:#555}.bootstrap .btn.btn-default:hover{color:#fff;background-color:#00aff0;border-color:#008abd;-webkit-box-shadow:none;box-shadow:none}.bootstrap .btn.btn-default:hover i{color:#fff}.bootstrap .btn.btn-primary{background-color:#00aff0;color:#fff;text-transform:uppercase}.bootstrap .btn.btn-primary i{color:#fff}.bootstrap .btn.btn-primary:hover{background-color:#008abd;-webkit-box-shadow:none;box-shadow:none}.bootstrap .btn.btn-default[disabled]{border-color:#999;color:#363A41;background-color:#f2f2f2}.bootstrap .dropdown-menu{text-align:left}.bootstrap .dropdown-menu>li a{padding:5px 10px}.bootstrap .dropdown-menu>li a:hover i{color:#fff}.bootstrap .btn-group-action{line-height:0}.bootstrap .btn-group-action .btn{font-family:"Open Sans",Helvetica,Arial,sans-serif}.bootstrap .btn-group-action .btn-group{white-space:nowrap}.bootstrap .btn-group-action .btn-group>a,.bootstrap .btn-group-action .btn-group button{text-decoration:none;display:inline-block;float:none}.bootstrap .btn-group-action .btn-group>a:first-child{margin-right:-3px}.bootstrap .btn-group-action .btn-group i{font-size:14px}.bootstrap .dummyfile{position:relative}.bootstrap .dummyfile .hide-file-upload{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;filter:alpha(opacity=0)}.bootstrap .tt-query{border-bottom-right-radius:3px !important;border-top-right-radius:3px !important}.bootstrap .tt-dropdown-menu{background-color:#fff;border:solid 1px #ccc;font-size:.9em;text-transform:none}.bootstrap .tt-suggestions{padding:0 6px;-webkit-box-shadow:rgba(0,0,0,0.25) 0 1px 4px;box-shadow:rgba(0,0,0,0.25) 0 1px 4px}.bootstrap .tt-suggestion p{border-bottom:solid 1px #ccc;margin:0 !important;padding:0 !important}.bootstrap .tt-suggestion:last-child p{border-bottom:none}.bootstrap .tagify-container{background-color:#fff;padding:0px 3px;min-height:30px;overflow:auto;border:solid 1px #ccc;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:rgba(0,0,0,0.075) 0 1px 1px inset;box-shadow:rgba(0,0,0,0.075) 0 1px 1px inset}.bootstrap .tagify-container span{float:left}.bootstrap .tagify-container>span{display:inline-block;padding:2px 5px;margin:3px;border-radius:2px;border:1px solid #00aff0;background-color:#3ecbff;color:#fff}.bootstrap .tagify-container>span>a{color:#00aff0;text-decoration:none;font-weight:bold;padding-left:5px}.bootstrap .tagify-container>input{margin-top:2px;border:0 none;width:140px;height:auto;-webkit-box-shadow:none;box-shadow:none}.bootstrap .tagify-container>input:focus{outline:0;-webkit-box-shadow:none;box-shadow:none}@media (max-width: 1200px){.bootstrap .form-group input[type="text"],.bootstrap .form-group input[type="search"],.bootstrap .form-group input[type="password"],.bootstrap .form-group textarea,.bootstrap .form-group select,.bootstrap .form-group input[type="number"]{margin:4px 0}.bootstrap .form-group .input-group{margin:4px 0}.bootstrap .form-group .input-group input[type="text"],.bootstrap .form-group .input-group input[type="search"],.bootstrap .form-group .input-group input[type="password"],.bootstrap .form-group .input-group textarea,.bootstrap .form-group .input-group select{margin:0}}.bootstrap input[type="text"],.bootstrap input[type="search"],.bootstrap input[type="password"],.bootstrap input[type="email"],.bootstrap input[type="tel"]{font-family:"Open Sans",Helvetica,Arial,sans-serif,"FontAwesome" !important}.bootstrap .kpi-container{display:flex;gap:15px;justify-content:space-between;padding:12px !important}.bootstrap .kpi-container .kpis-wrap{width:100%;white-space:nowrap;overflow-x:auto;font-size:0;margin-bottom:-8px;display:flex;flex-wrap:wrap;margin-left:-5px;margin-right:-5px;flex-grow:1}.bootstrap .kpi-container .kpis-wrap .kpi-wrap{display:inline-block;width:20%;margin-bottom:8px;padding-left:5px;padding-right:5px}.bootstrap .kpi-container .actions-wrap{width:16px}.bootstrap .kpi-container .actions-wrap button{padding:0;border:none;opacity:.2;display:block;width:100%}.bootstrap .kpi-container .actions-wrap button:not(:first-of-type){margin-top:4px}.bootstrap .kpi-container .actions-wrap button:hover{opacity:.5;background-color:#fff}.bootstrap .kpi-container .actions-wrap button:focus,.bootstrap .kpi-container .actions-wrap button:active{outline:none !important}.bootstrap .kpi-container .actions-wrap button i{color:#000 !important;font-size:16px}.bootstrap .kpi-container .actions-wrap button i.icon-ellipsis-vertical{position:relative;top:3px}.bootstrap .kpi-container .actions-wrap .dropdown-menu{top:25px;right:0;left:unset;min-width:200px;font-size:13px;padding:8px 12px}.bootstrap .kpi-container .actions-wrap .dropdown-menu label{font-weight:normal}.bootstrap .kpi-container.no-wrapping .kpis-wrap{white-space:normal;flex-wrap:nowrap}@media (min-width: 1200px){.bootstrap .kpi-container.no-wrapping .kpis-wrap .kpi-wrap{min-width:20%}}@media (max-width: 1200px){.bootstrap .kpi-container.no-wrapping .kpis-wrap .kpi-wrap{min-width:20%}}@media (max-width: 768px){.bootstrap .kpi-container.no-wrapping .kpis-wrap .kpi-wrap{min-width:33.33%}}@media (max-width: 480px){.bootstrap .kpi-container.no-wrapping .kpis-wrap .kpi-wrap{min-width:50%}}@media (max-width: 992px){.bootstrap.no-wrapping .kpis-wrap{flex-wrap:nowrap !important}}@media (max-width: 1200px){.bootstrap .kpi-container .kpis-wrap .kpi-wrap{width:20%}}@media (max-width: 768px){.bootstrap .kpi-container .kpis-wrap .kpi-wrap{width:33.33%}}@media (max-width: 480px){.bootstrap .kpi-container .kpis-wrap .kpi-wrap{width:50%}}.bootstrap .box-stats{display:block;height:100%}.bootstrap .box-stats .boxchart-overlay{padding:10px 10px 5px 10px;margin-right:10px;float:left;-webkit-border-radius:3px;border-radius:3px}.bootstrap .box-stats .kpi-content{width:100%;height:100%;position:relative;border:1px solid #e7edfa;border-left-width:3px;border-radius:6px;padding:4px 8px 8px 4px;display:flex;gap:10px;white-space:normal}.bootstrap .box-stats .kpi-content i.kpi-icon{font-size:15px;text-align:center;color:#fff;line-height:26px;background:#eee;width:28px;height:28px;-webkit-border-radius:6px;border-radius:6px}.bootstrap .box-stats .kpi-content .kpi-data{flex-grow:1}.bootstrap .box-stats .kpi-content .title-subtitle{display:flex;justify-content:space-between}.bootstrap .box-stats .kpi-content .title-subtitle .title{display:block;color:#666;font-size:13px}.bootstrap .box-stats .kpi-content .title-subtitle .subtitle{display:block;text-transform:capitalize;color:#aaa;font-size:10px;position:relative;top:3px;text-align:right}.bootstrap .box-stats .kpi-content .value-container .value{display:block;clear:both;font-size:14px;font-weight:bold;color:#666;min-height:22px}.bootstrap .box-stats .kpi-content .value-container .value.loading{height:22px;min-width:40px}.bootstrap .box-stats .kpi-content .arrow i{color:#828282 !important}.bootstrap .box-stats:hover{text-decoration:none}.bootstrap .color1 .kpi-content{border-left-color:#2BA8E3}.bootstrap .color1 i,.bootstrap .color1 .boxchart-overlay{color:#2BA8E3 !important}.bootstrap .color2 .kpi-content{border-left-color:#FF5450}.bootstrap .color2 i,.bootstrap .color2 .boxchart-overlay{color:#FF5450 !important}.bootstrap .color3 .kpi-content{border-left-color:#9E5BA1}.bootstrap .color3 i,.bootstrap .color3 .boxchart-overlay{color:#9E5BA1 !important}.bootstrap .color4 .kpi-content{border-left-color:#95CC6B}.bootstrap .color4 i,.bootstrap .color4 .boxchart-overlay{color:#95CC6B !important}.bootstrap .data_chart rect{fill:#fff}.bootstrap .data_chart path{stroke:#fff;stroke-width:2;fill:none}.bootstrap .data_chart line{stroke:#000}.bootstrap .data_chart .area{fill:rgba(255,255,255,0.3);stroke-width:0}.bootstrap .switch a,.bootstrap .switch-light span span{display:none}@media only screen{.bootstrap .switch-light{display:block;height:26px;position:relative;overflow:visible;padding:0}.bootstrap .switch-light *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap .switch-light a{display:block;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.bootstrap .switch-light label,.bootstrap .switch-light>span{line-height:26px;vertical-align:middle}.bootstrap .switch-light label{position:relative;z-index:3;display:block;width:100%}.bootstrap .switch-light input{position:absolute;opacity:0;z-index:5}.bootstrap .switch-light input:checked ~ a{left:0}.bootstrap .switch-light>span{position:absolute;width:100%;margin:0;font-weight:normal;text-align:left;left:0}.bootstrap .switch-light>span span{position:absolute;top:0;z-index:5;display:block;width:50%;text-align:center;left:0}.bootstrap .switch-light>span span:last-child{left:50%}.bootstrap .switch-light a{position:absolute;top:0;z-index:4;display:block;width:50%;height:100%;padding:0;left:50%}.bootstrap .switch{display:block;height:26px;position:relative}.bootstrap .switch *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap .switch a{display:block;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.bootstrap .switch label,.bootstrap .switch>span{line-height:26px;vertical-align:middle}.bootstrap .switch input{position:absolute;opacity:0}.bootstrap .switch label{position:relative;z-index:2;width:50%;height:100%;margin:0;text-align:center;float:left}.bootstrap .switch a{position:absolute;top:0;padding:0;z-index:1;width:50%;height:100%;color:#fff;border:solid 1px #279CBB;background-color:#2eacce;left:0;-webkit-box-shadow:"#1B7088" 0 -1px 0 inset;box-shadow:"#1B7088" 0 -1px 0 inset}.bootstrap .switch input:last-of-type:checked ~ a{border:solid 1px #CA6F6F;background-color:#E08F95;left:50%;-webkit-box-shadow:"#5C5C5C" 0 -1px 0 inset;box-shadow:"#5C5C5C" 0 -1px 0 inset}.bootstrap .switch input:disabled ~ a{border:solid 1px #b3b3b3 !important;background-color:#cdcdcd !important;-webkit-box-shadow:#b3b3b3 0 -1px 0 inset !important;box-shadow:#b3b3b3 0 -1px 0 inset !important}.bootstrap .switch.switch-3 label,.bootstrap .switch.switch-3 a{width:33.33333%}.bootstrap .switch.switch-3 input:checked:nth-of-type(2) ~ a{left:33.33333%}.bootstrap .switch.switch-3 input:checked:last-of-type ~ a{left:66.66667%}.bootstrap .switch.switch-4 label,.bootstrap .switch.switch-4 a{width:25%}.bootstrap .switch.switch-4 input:checked:nth-of-type(2) ~ a{left:25%}.bootstrap .switch.switch-4 input:checked:nth-of-type(3) ~ a{left:50%}.bootstrap .switch.switch-4 input:checked:last-of-type ~ a{left:75%}.bootstrap .switch.switch-5 label,.bootstrap .switch.switch-5 a{width:20%}.bootstrap .switch.switch-5 input:checked:nth-of-type(2) ~ a{left:20%}.bootstrap .switch.switch-5 input:checked:nth-of-type(3) ~ a{left:40%}.bootstrap .switch.switch-5 input:checked:nth-of-type(4) ~ a{left:60%}.bootstrap .switch.switch-5 input:checked:last-of-type ~ a{left:80%}.bootstrap .prestashop-switch{margin-top:3px;background-color:#eee;border-radius:3px;color:#333;text-align:center;-webkit-box-shadow:rgba(0,0,0,0.15) 0 1px 4px 1px inset;box-shadow:rgba(0,0,0,0.15) 0 1px 4px 1px inset}.bootstrap .prestashop-switch *{outline:0 !important}.bootstrap .prestashop-switch label{text-transform:uppercase;color:#bbb;font-weight:400;cursor:pointer;-webkit-transition:color .2s ease-out;-o-transition:color .2s ease-out;transition:color .2s ease-out}.bootstrap .prestashop-switch input:checked+label{color:#fff}.bootstrap .prestashop-switch>span{color:#666;text-transform:uppercase;cursor:pointer}.bootstrap .prestashop-switch.switch-light input:checked ~ a{border:solid 1px #72C279;background-color:#96d19b;-webkit-box-shadow:#72C279 0 -1px 0 inset;box-shadow:#72C279 0 -1px 0 inset}.bootstrap .prestashop-switch.switch-light input:checked ~ span span:first-of-type{color:#fff}.bootstrap .prestashop-switch.switch-light input:checked ~ span span:last-of-type{color:#ccc}.bootstrap .prestashop-switch.switch-light input ~ a{border:solid 1px #E08F95;background-color:#ebb7bb;-webkit-box-shadow:#E08F95 0 -1px 0 inset;box-shadow:#E08F95 0 -1px 0 inset}.bootstrap .prestashop-switch.switch-light input ~ span span:first-of-type{color:#ccc}.bootstrap .prestashop-switch.switch-light input ~ span span:last-of-type{color:#fff}}.bootstrap .page-head{width:100%;padding:0;margin:0;position:fixed;top:36px;z-index:499;background-color:#fff;border-bottom:#DFDFDF 1px solid;color:#363A41;left:0}.bootstrap .page-head h2.page-title{float:left;position:relative;margin:0;font:14pt "Open Sans",Helvetica,Arial,sans-serif;font-weight:bold;color:#363A41;white-space:nowrap;padding:31px 0 20px 230px}@media (max-width: 480px){.bootstrap .page-head h2.page-title{padding:26px 0 55px 70px}}@media (min-width: 480px) and (max-width: 768px){.bootstrap .page-head h2.page-title{padding:26px 0 25px 70px}}.bootstrap .page-head h2.page-title a{border-bottom:dotted 1px #fff}.bootstrap .page-head h2.page-title a:hover{color:#000;border-color:#000}.bootstrap .page-head h2.page-title.configure{padding:31px 0 35px 230px}@media (max-width: 480px){.bootstrap .page-head h2.page-title.configure{padding:26px 0 60px 70px}}@media (min-width: 480px) and (max-width: 768px){.bootstrap .page-head h2.page-title.configure{padding:26px 0 40px 70px}}.bootstrap .page-head a{color:#fff;text-decoration:none}.bootstrap .page-head h4.page-subtitle{float:left;position:absolute;margin-top:60px;left:230px;font-family:"Open Sans"}@media (max-width: 768px){.bootstrap .page-head h4.page-subtitle{left:70px}}.bootstrap .page-head .toolbarBox{position:absolute;background-color:transparent !important;right:0;top:18px}@media (max-width: 768px){.bootstrap .page-head .toolbarBox{top:25px}}.bootstrap .page-head .toolbarBox #toolbar-nav{border:none}.bootstrap .page-head .toolbarBox .btn-toolbar{margin:0;padding:3px 0 0 0}.bootstrap .page-head .toolbarBox .btn-toolbar .toolbar_btn{position:relative;padding:10px 10px !important;font-size:12px;line-height:8px;color:#00aff0;text-align:center;text-shadow:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid #00aff0;border-radius:2px;margin:0 3px 2px 0}@media (max-width: 992px){.bootstrap .page-head .toolbarBox .btn-toolbar .toolbar_btn{width:46px;font-size:11px}.bootstrap .page-head .toolbarBox .btn-toolbar .toolbar_btn div{color:#363A41}}.bootstrap .page-head .toolbarBox .btn-toolbar .toolbar_btn i{display:inline;font-size:18px}.bootstrap .page-head .toolbarBox .btn-toolbar .toolbar_btn i:hover{color:#40c9ed}.bootstrap .page-head .toolbarBox .btn-toolbar .toolbar_btn span{position:relative;top:-2px;left:2px;color:#363A41;font-weight:400}.bootstrap .page-head .toolbarBox .btn-toolbar .dropdown-toolbar{display:none;float:right;-webkit-border-radius:3px;border-radius:3px}@media (max-width: 768px){.bootstrap .page-head .toolbarBox .btn-toolbar .dropdown-toolbar{display:block;padding:6px 10px !important;margin-right:10px}}@media (max-width: 480px){.bootstrap .page-head .toolbarBox .btn-toolbar .dropdown-toolbar{margin-right:5px}}.bootstrap .page-head .toolbarBox #toolbar-nav li+li{margin-left:8px}.bootstrap .page-head ul.page-breadcrumb{position:absolute;list-style:none;margin:0;padding:0;top:9px;height:20px;line-height:20px;color:#000;font-size:12px;color:rgba(0,0,0,0.5);background:transparent !important;border:none !important;white-space:nowrap;-webkit-border-radius:0;border-radius:0;left:230px}@media (max-width: 768px){.bootstrap .page-head ul.page-breadcrumb{left:70px}}.bootstrap .page-head ul.page-breadcrumb li i{font-size:10px}.bootstrap .page-head ul.page-breadcrumb li.breadcrumb-container i,.bootstrap .page-head ul.page-breadcrumb li.breadcrumb-current i{position:absolute;top:2px;font-size:42px;color:#659e32;padding-right:5px;border-right:solid 1px #659e32;left:-60px}.bootstrap .page-head ul.page-breadcrumb li:before{color:#659e32}.bootstrap .page-head ul.page-breadcrumb li a{color:#363A41}.bootstrap .page-head ul.page-breadcrumb li a:hover{color:#363A41}.bootstrap .page-header-toolbar-back{border:none !important;display:inline-block}.bootstrap #datepicker .input-selected{margin:0}.bootstrap #datepicker #date-start.input-selected,.bootstrap #datepicker #date-end.input-selected{border:solid 3px #00A4E7}.bootstrap #datepicker #date-start-compare.input-selected,.bootstrap #datepicker #date-end-compare.input-selected{border:solid 3px #FF8000}.bootstrap #datepicker div#datepicker-form #date-range{border:solid 1px #0092ce}.bootstrap #datepicker div#datepicker-form #date-range .form-date-heading{background-color:#0092ce}.bootstrap #datepicker div#datepicker-form #date-compare{border:solid 1px #e67300}.bootstrap #datepicker div#datepicker-form #date-compare .form-date-heading{background-color:#e67300}.bootstrap #datepicker div#datepicker-form .form-date-heading{height:30px;line-height:30px;padding:0 0 0 8px}.bootstrap #datepicker div#datepicker-form .form-date-heading .title,.bootstrap #datepicker div#datepicker-form .form-date-heading .checkbox-title label{font-size:1.15em;color:#fff;font-weight:200;text-transform:uppercase;line-height:2em}.bootstrap #datepicker div#datepicker-form .form-date-heading .btn-default{background-color:rgba(255,255,255,0.3);font-weight:700;color:#fff;border:none}.bootstrap #datepicker div#datepicker-form .form-date-heading select{margin:2px 2px 0 0}.bootstrap #datepicker div#datepicker-form .form-date-body,.bootstrap #datepicker div#datepicker-form .form-date-actions{width:100%;padding:10px;background-color:#fff;display:inline-block}.bootstrap #datepicker div#datepicker-form .form-date-actions{border:solid 1px #ccc}.bootstrap #datepicker div#datepicker-form .form-date-group{clear:both;width:100%;margin:0 auto 6px}.bootstrap #datepicker div#datepicker-form .form-date-group label{font-size:.8em;font-weight:700;text-transform:uppercase;color:#666}.bootstrap #datepicker div#datepicker-form .form-date-group input{margin:4px 4px 0 0}.bootstrap #datepicker div#datepicker-form .form-date-group input[type='text']{width:35%}.bootstrap #datepicker div#datepicker-form .form-date-group button{margin:5px 0 0 0}.bootstrap .form-date-actions .btn:hover,.bootstrap .form-date-actions .btn:focus,.bootstrap .form-date-actions .btn:active{outline:unset !important;text-decoration:none}.bootstrap .form-date-actions{bottom:-27px;position:absolute;width:100%;z-index:599;background-color:#fff;box-shadow:0 7px 10px 0 rgba(0,0,0,0.26);padding:2px;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.bootstrap .chevron-left,.bootstrap .chevron-right{position:relative}.bootstrap .chevron-left:before,.bootstrap .chevron-right:before{display:block;content:"";width:0;height:0;border-style:solid;position:absolute}.bootstrap .chevron-left:before{top:0;border-color:transparent transparent transparent #00A4E7;background-color:#1bbdff;right:0;border-width:1.2em 0 1.2em .5em}.bootstrap .chevron-right:before{top:0;border-color:transparent transparent transparent #1bbdff;background-color:#00A4E7;left:0;border-width:1.2em 0 1.2em .5em}.bootstrap .input-complete{-webkit-animation:one .2s ease-in-out;-moz-animation:one .2s ease-in-out;-ms-animation:one .2s ease-in-out;-o-animation:one .2s ease-in-out;animation:one .2s ease-in-out}@-webkit-keyframes one{0%{background-color:#00A4E7}100%{background-color:#fff}}@-webkit-keyframes two{0%{-webkit-box-shadow:#00A4E7 0 0 0 20px inset;box-shadow:#00A4E7 0 0 0 20px inset}100%{-webkit-box-shadow:#00A4E7 0 0 0 inset;box-shadow:#00A4E7 0 0 0 inset}}.bootstrap .breadcrumb-multishop{width:auto;position:relative}.bootstrap .breadcrumb-multishop:after{content:"";position:absolute;top:0;bottom:0;font-size:14px;line-height:22px;padding:0 7px;font-family:FontAwesome;background-color:#659e32;color:#fff;pointer-events:none;right:0;-webkit-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.bootstrap .breadcrumb-multishop select{display:inline-block;height:22px;line-height:20px;border:1px solid #659e32;margin:0;outline:none;color:#666;background:#fff;position:relative;-webkit-appearance:none;padding:0 5px 0 8px;-webkit-border-radius:4px;border-radius:4px}.bootstrap .breadcrumb-multishop select:focus{box-shadow:0 0 0 1px #659e32}.bootstrap #header_shop .group{font-style:italic}.bootstrap #header_shop .shop a{padding-left:20px}@media screen and (-webkit-min-device-pixel-ratio: 0){.bootstrap .custom-select select{padding-right:30px}}.bootstrap .no-pointer-events .custom-select:after{content:none}.bootstrap .multishop-well{padding:20px 20px 10px;margin-bottom:15px;background-color:#FAF8F0;border:none;border-left:3px solid #FBECCB}.bootstrap .media-product-pack{width:200px;border:solid 2px #eee;padding:4px;overflow:hidden;position:relative;margin-bottom:10px;margin-right:10px;-webkit-border-radius:4px;border-radius:4px;float:left}.bootstrap .media-product-pack .media-product-pack-img{width:100%;padding-bottom:5px;border-bottom:1px solid #ccc;margin-bottom:5px}.bootstrap .media-product-pack .media-product-pack-title{width:100%;padding:0 5px;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bootstrap .media-product-pack .media-product-pack-ref{color:#aaa;width:100%;padding:0 5px;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bootstrap .media-product-pack .media-product-pack-action{position:absolute;top:7px;border:solid 1px #ccc;text-align:center;right:7px;-webkit-border-radius:4px;border-radius:4px}.bootstrap .media-product-pack .media-product-pack-quantity{background-color:#fff;position:absolute;padding:0 4px;top:7px;height:25px;min-width:35px;line-height:23px;border:solid 1px #ccc;text-align:center;left:7px;-webkit-border-radius:4px;border-radius:4px}@-webkit-keyframes wave{0%{background-position:-786px 0}100%{background-position:786px 0}}@keyframes wave{0%{background-position:-786px 0}100%{background-position:786px 0}}@-webkit-keyframes pulse{0%{background-color:#ddd}25%{background-color:#f5f5f5}50%{background-color:#e5e5e5}75%{background-color:#f5f5f5}100%{background-color:#ddd}}@keyframes pulse{0%{background-color:#ddd}25%{background-color:#f5f5f5}50%{background-color:#e5e5e5}75%{background-color:#f5f5f5}100%{background-color:#ddd}}.bootstrap .skeleton-loading-wave{animation-duration:1.3s;animation-fill-mode:forwards;animation-iteration-count:infinite;animation-name:wave;animation-timing-function:linear;-webkit-animation-duration:1.3s;-webkit-animation-fill-mode:forwards;-webkit-animation-iteration-count:infinite;-webkit-animation-name:wave;-webkit-animation-timing-function:linear;-moz-animation-duration:1.3s;-moz-animation-fill-mode:forwards;-moz-animation-iteration-count:infinite;-moz-animation-name:wave;-moz-animation-timing-function:linear;background:#ddd;background-image:-webkit-gradient(linear, left center, right center, from(#ddd), color-stop(.2, #f5f5f5), color-stop(.4, #e5e5e5), to(#ddd));background-image:-webkit-linear-gradient(left, #ddd 0%, #f5f5f5 20%, #e5e5e5 40%, #ddd 100%);background-image:-moz-gradient(linear, left center, right center, from(#ddd), color-stop(.2, #f5f5f5), color-stop(.4, #e5e5e5), to(#ddd));background-image:-moz-linear-gradient(left, #ddd 0%, #f5f5f5 20%, #e5e5e5 40%, #ddd 100%);background-repeat:no-repeat;background-size:800px 104px;height:104px;position:relative}.bootstrap .skeleton-loading-pulse{background:#ddd;background-color:#ddd;animation-name:pulse;animation-duration:3s;animation-iteration-count:infinite;-webkit-animation-name:pulse;-webkit-animation-duration:3s;-webkit-animation-iteration-count:infinite;-moz-animation-name:pulse;-moz-animation-duration:3s;-moz-animation-iteration-count:infinite}.bootstrap .loading-container-box{width:100%;height:40px}.bootstrap .loading-container-bar{width:100%;height:10px}.bootstrap #carrier_wizard{position:relative;display:block}.bootstrap #carrier_wizard .translatable-field{color:#363A41}.bootstrap #carrier_wizard .translatable-field li a{color:#363A41}.bootstrap #carrier_wizard .stepContainer{position:relative;display:block;clear:both}.bootstrap #carrier_wizard .stepContainer div.content{position:absolute;display:block;width:100%;clear:both}.bootstrap #carrier_wizard .stepContainer .StepTitle{display:block;position:relative;clear:both}.bootstrap #carrier_wizard ul.anchor{position:relative;display:block;float:left;list-style:none;padding:0;margin:0 0 10px 0;clear:both;width:100%}.bootstrap #carrier_wizard ul.anchor.nbr_steps_4 li{width:25%;float:left}.bootstrap #carrier_wizard ul.anchor.nbr_steps_5 li{width:25%;float:left}.bootstrap #carrier_wizard li{position:relative;display:block;overflow:hidden}.bootstrap #carrier_wizard li a{color:#ccc;height:32px;display:block;position:relative;margin:0 16px 0 0;text-decoration:none;outline-style:none}.bootstrap #carrier_wizard li a .stepNumber{position:relative;float:left;width:24px;height:32px;margin-right:3px;text-align:center;padding:0 5px;font-size:30px;line-height:32px;color:#fff}.bootstrap #carrier_wizard li a .stepDesc{position:relative;text-align:left;font-size:13px;height:32px;display:table-cell;vertical-align:middle;line-height:13px}.bootstrap #carrier_wizard li a .chevron{border:16px solid transparent;border-left:14px solid #fff;border-right:0;position:absolute;right:-16px;top:0}.bootstrap #carrier_wizard li a .chevron:after{border:16px solid transparent;border-left:14px solid #ccc;border-right:0;position:absolute;content:"";right:2px;top:-16px}.bootstrap #carrier_wizard li a.disabled{color:#777;background-color:#ccc}.bootstrap #carrier_wizard li a.disabled .chevron:after{border-left:14px solid #ccc}.bootstrap #carrier_wizard li a.selected{color:#F8F8F8;cursor:text;background-color:#363A41}.bootstrap #carrier_wizard li a.selected .chevron:after{border-left:14px solid #363A41}.bootstrap #carrier_wizard li a.done{color:#fff;background-color:#72C279}.bootstrap #carrier_wizard li a.done .chevron:after{border-left:14px solid #72C279}.bootstrap #carrier_wizard .loader{display:none}.bootstrap #carrier_wizard .msgBox{position:relative;display:none;float:left;margin:4px 0 0 5px;padding:5px;border:1px solid gold;background-color:#ffd;color:#5A5655;-webkit-border-radius:5px;border-radius:5px}.bootstrap #carrier_wizard .msgBox .content{padding:0px;float:left}.bootstrap #carrier_wizard #carrier_logo_block{right:10px}.bootstrap #carrier_wizard .range_inf td,.bootstrap #carrier_wizard .range_sup td{background-color:#ccc}.bootstrap #carrier_wizard .range_type{width:220px;text-align:right;font-weight:bold}.bootstrap #carrier_wizard .range_data{width:110px}.bootstrap #carrier_wizard .range_sign{width:18px;font-size:20px;text-align:center}.bootstrap #carrier_wizard .range_data_new{width:110px}.bootstrap #carrier_wizard table#zones_table{width:auto}.bootstrap #carrier_wizard .field_error{border-color:#E08F95}.bootstrap #carrier_wizard .actionBar{height:30px}.bootstrap #carrier_wizard .actionBar a{float:right;margin-right:10px}.bootstrap .size_s{font-size:1.1em}.bootstrap .size_md{font-size:1.3em}.bootstrap .size_l{font-size:1.7em}.bootstrap .size_xl{font-size:2em}.bootstrap .size_xxl{font-size:2.3em}.bootstrap .number-monospace{font-family:"Droid Sans Mono",Helvetica,Arial,sans-serif !important;word-spacing:-0.3em;font-weight:200}.bootstrap .color_success{color:#72C279}.bootstrap .color_danger{color:#E08F95}.bootstrap .dash_trend_down{color:#E08F95}.bootstrap .dash_trend_down:before{font-family:FontAwesome;content:"";margin-right:4px}.bootstrap .dash_trend_up{color:#72C279}.bootstrap .dash_trend_up:before{font-family:FontAwesome;content:"";margin-right:4px}.bootstrap .dash_trend_right:before{font-family:FontAwesome;content:"";margin-right:4px}.bootstrap #dashboard section>section header{padding:3px 8px;color:#fff;font-size:1.2em;background-color:#00aff0;margin:0 0 3px 0}.bootstrap #dashboard section>section header .small{display:block;clear:both;font-variant:small-cap;text-transform:uppercase;font-size:.8em;font-family:"Open Sans",Helvetica,Arial,sans-serif}.bootstrap #dashboard .data_list{padding:0;margin:0 0 10px 0}.bootstrap #dashboard .data_list li{position:relative}.bootstrap #dashboard .data_list .data_value{line-height:39px;position:absolute;top:0;right:0;padding:0 10px 0 0}.bootstrap #dashboard .data_list_small{padding:0;border-top:solid 1px #ddd;margin:8px 0 10px 0}.bootstrap #dashboard .data_list_small li{padding:3px 0;position:relative;border:none;margin:0;border-bottom:dashed 1px #ddd}.bootstrap #dashboard .data_list_small .data_label{text-transform:uppercase;color:#bbb}.bootstrap #dashboard .data_list_small .data_value{line-height:25px;position:absolute;top:0;padding:0;right:0}.bootstrap #dashboard .data_list_large{padding:0;margin:8px 0 10px 0}.bootstrap #dashboard .data_list_large li{padding:6px 0;position:relative;border:none;margin:0}.bootstrap #dashboard .data_list_large .data_label{line-height:.8em}.bootstrap #dashboard .data_list_large .data_label small{font-size:.6em}.bootstrap #dashboard .data_list_large .data_value{text-align:right;line-height:.6em;position:absolute;top:0;right:0;padding:8px 0 0 0}.bootstrap #dashboard .data_list_large .data_value small{font-size:.5em}.bootstrap #dashboard .data_list_vertical{padding:0;border:1px solid #ddd;margin:0 0 10px 0;-webkit-border-radius:3px;border-radius:3px}.bootstrap #dashboard .data_list_vertical li{padding:6px;border-left:solid 1px #ddd}.bootstrap #dashboard .data_list_vertical li:first-child{border:none}.bootstrap #dashboard .data_list_vertical .data_label{min-height:32px;display:block;line-height:1em;text-align:center}.bootstrap #dashboard .data_list_vertical .data_value{display:block;text-align:center}.bootstrap #dashboard .nv-axis.nv-x .tick line,.bootstrap #dashboard .nv-axis.nv-y .tick line,.bootstrap #dashboard .nv-interactive .nv-interactiveGuideLine line{display:none}.bootstrap #dashboard .nvd3.nv-pie path{fill-opacity:1}.bootstrap #dashboard .nv-label text{fill:#FFF !important}.bootstrap #dashboard #dashgoals svg{height:250px}.bootstrap #dashboard #dashproducts nav{margin-bottom:10px;font:400 1.1em/120% "Ubuntu Condensed",Helvetica,Arial,sans-serif;text-transform:uppercase}.bootstrap #dashboard #dashaddons{background-color:#fff;border:1px dashed silver;-webkit-border-radius:3px;border-radius:3px;padding:10px 20px;font-size:1.3em;text-align:center}.bootstrap #dashboard #dashaddons a{display:block}.bootstrap #dashboard #dashaddons a:hover{text-decoration:none}.bootstrap #dashboard #dashactivity svg{height:150px}.bootstrap #dashboard .loading .data_value{min-width:30px;text-align:center}.bootstrap #dashboard .loading .data_value:before{font-size:14px;color:#ccc}.bootstrap #dashboard .loading .data_value span,.bootstrap #dashboard .loading .data_value small{display:none}.bootstrap #dashboard .loading .data_trend{display:none}.bootstrap #dashboard .tooltip-panel{padding:10px;min-width:150px}.bootstrap #dashboard .tooltip-panel-heading{font:400 1.2em/1.42857 "Ubuntu Condensed",Helvetica,Arial,sans-serif;text-align:center;margin-bottom:10px;text-transform:uppercase;border-bottom:1px solid #ccc}.bootstrap .data_loading,.bootstrap #dashboard .data_value span,.bootstrap #dashboard .data_value .dash_trend{opacity:1;-webkit-animation-name:bounceG;animation-name:bounceG;-webkit-animation-duration:.7s;animation-duration:.7s;-webkit-animation-direction:linear;animation-direction:linear;-webkit-transform:scaleX(.7);-ms-transform:scaleX(.7);-o-transform:scaleX(.7);transform:scaleX(.7);-webkit-transform:scaleY(.7);-ms-transform:scaleY(.7);-o-transform:scaleY(.7);transform:scaleY(.7)}@-webkit-keyframes bounceG{0%{opacity:0;filter:alpha(opacity=0);-webkit-transform:scaleX(.1);-ms-transform:scaleX(.1);-o-transform:scaleX(.1);transform:scaleX(.1);-webkit-transform:scaleY(.1);-ms-transform:scaleY(.1);-o-transform:scaleY(.1);transform:scaleY(.1)}100%{opacity:1;filter:alpha(opacity=100);-webkit-transform:scaleX(1);-ms-transform:scaleX(1);-o-transform:scaleX(1);transform:scaleX(1);-webkit-transform:scaleY(1);-ms-transform:scaleY(1);-o-transform:scaleY(1);transform:scaleY(1)}}@-moz-keyframes bounceG{0%{opacity:0;filter:alpha(opacity=0);-webkit-transform:scaleX(.1);-ms-transform:scaleX(.1);-o-transform:scaleX(.1);transform:scaleX(.1);-webkit-transform:scaleY(.1);-ms-transform:scaleY(.1);-o-transform:scaleY(.1);transform:scaleY(.1)}100%{opacity:1;filter:alpha(opacity=100);-webkit-transform:scaleX(1);-ms-transform:scaleX(1);-o-transform:scaleX(1);transform:scaleX(1);-webkit-transform:scaleY(1);-ms-transform:scaleY(1);-o-transform:scaleY(1);transform:scaleY(1)}}@-ms-keyframes bounceG{0%{opacity:0;filter:alpha(opacity=0);-webkit-transform:scaleX(.1);-ms-transform:scaleX(.1);-o-transform:scaleX(.1);transform:scaleX(.1);-webkit-transform:scaleY(.1);-ms-transform:scaleY(.1);-o-transform:scaleY(.1);transform:scaleY(.1)}100%{opacity:1;filter:alpha(opacity=100);-webkit-transform:scaleX(1);-ms-transform:scaleX(1);-o-transform:scaleX(1);transform:scaleX(1);-webkit-transform:scaleY(1);-ms-transform:scaleY(1);-o-transform:scaleY(1);transform:scaleY(1)}}@-o-keyframes bounceG{0%{opacity:0;filter:alpha(opacity=0);-webkit-transform:scaleX(.1);-ms-transform:scaleX(.1);-o-transform:scaleX(.1);transform:scaleX(.1);-webkit-transform:scaleY(.1);-ms-transform:scaleY(.1);-o-transform:scaleY(.1);transform:scaleY(.1)}100%{opacity:1;filter:alpha(opacity=100);-webkit-transform:scaleX(1);-ms-transform:scaleX(1);-o-transform:scaleX(1);transform:scaleX(1);-webkit-transform:scaleY(1);-ms-transform:scaleY(1);-o-transform:scaleY(1);transform:scaleY(1)}}@keyframes bounceG{0%{opacity:0;filter:alpha(opacity=0);-webkit-transform:scaleX(.1);-ms-transform:scaleX(.1);-o-transform:scaleX(.1);transform:scaleX(.1);-webkit-transform:scaleY(.1);-ms-transform:scaleY(.1);-o-transform:scaleY(.1);transform:scaleY(.1)}100%{opacity:1;filter:alpha(opacity=100);-webkit-transform:scaleX(1);-ms-transform:scaleX(1);-o-transform:scaleX(1);transform:scaleX(1);-webkit-transform:scaleY(1);-ms-transform:scaleY(1);-o-transform:scaleY(1);transform:scaleY(1)}}.bootstrap #dash_version{padding:0 !important;overflow:hidden}.bootstrap #dash_version iframe{height:80px;width:100%}.bootstrap #calendar button.btn-default.active{border-color:#008abd;color:#fff;font-weight:700;background-color:#00aff0;-webkit-box-shadow:none;box-shadow:none}@media (max-width: 480px){.bootstrap #calendar{padding:10px !important}.bootstrap #calendar button.btn-default{padding:5px 5px}}.bootstrap #login{min-height:100%;padding-bottom:45px}.bootstrap #shop-img{z-index:1;position:absolute;margin:0 auto;text-align:center;left:0;right:0}.bootstrap #login-header{padding-top:40px;margin-bottom:30px;color:#6d6d6d}.bootstrap #login-header h1,.bootstrap #login-header h4{margin:0;padding:0}.bootstrap #login-panel{margin:0 auto;width:500px}.bootstrap #login-panel .form-control,.bootstrap #login-panel input[type="text"],.bootstrap #login-panel input[type="search"],.bootstrap #login-panel input[type="password"],.bootstrap #login-panel textarea,.bootstrap #login-panel select{height:inherit !important;padding:10px 8px !important}@media (max-width: 480px){.bootstrap #login-panel{width:90%}}.bootstrap #login-panel .panel,.bootstrap #login-panel #dash_version,.bootstrap #login-panel .message-item-initial .message-item-initial-body,.bootstrap .message-item-initial #login-panel .message-item-initial-body,.bootstrap #login-panel .timeline .timeline-item .timeline-caption .timeline-panel,.bootstrap .timeline .timeline-item .timeline-caption #login-panel .timeline-panel{-webkit-border-radius:0;border-radius:0;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.3);box-shadow:0 1px 3px rgba(0,0,0,0.3)}.bootstrap #login-panel .panel-footer{height:inherit;margin:0 -20px -20px}.bootstrap #login-panel .flip-container{height:420px;margin-top:115px;-webkit-perspective:1000px;-moz-perspective:1000px;perspective:1000px;transform-style:preserve-3d}.bootstrap #login-panel .flip-container.flip .flipper{-webkit-transform:rotateY(180deg);-ms-transform:rotateY(180deg);-o-transform:rotateY(180deg);transform:rotateY(180deg)}.bootstrap #login-panel .flip-container.flip .back{-webkit-backface-visibility:visible;-moz-backface-visibility:visible;backface-visibility:visible}.bootstrap #login-panel .flipper{position:relative;transform-style:preserve-3d;-webkit-transition-duration:.6s;transition-duration:.6s;-moz-transform-style:preserve-3d;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.bootstrap #login-panel .front,.bootstrap #login-panel .back{width:100%;padding:40px;position:absolute;transition:.6s;transform-style:preserve-3d;top:0;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden;left:0}.bootstrap #login-panel .front{-webkit-transform:rotateY(0);-ms-transform:rotateY(0);-o-transform:rotateY(0);transform:rotateY(0);z-index:2}.bootstrap #login-panel .back{display:none;z-index:1;-webkit-transform:rotateY(180deg);-ms-transform:rotateY(180deg);-o-transform:rotateY(180deg);transform:rotateY(180deg)}.bootstrap #login-panel .login-actions{position:relative}.bootstrap #login-panel #shop_name{text-align:center;font-family:"Open Sans",Helvetica,Arial,sans-serif}.bootstrap #login-panel #login_form{padding-top:15px}.bootstrap #login-panel #remind-me{margin-top:0}.bootstrap #login-footer{margin-top:20px}.bootstrap #login-footer a{color:#A0AAB5}.bootstrap #suggestion-wrapper-placeholder .panel,.bootstrap #suggestion-wrapper-placeholder #dash_version,.bootstrap #suggestion-wrapper-placeholder .message-item-initial .message-item-initial-body,.bootstrap .message-item-initial #suggestion-wrapper-placeholder .message-item-initial-body,.bootstrap #suggestion-wrapper-placeholder .timeline .timeline-item .timeline-caption .timeline-panel,.bootstrap .timeline .timeline-item .timeline-caption #suggestion-wrapper-placeholder .timeline-panel{text-align:center}.bootstrap #catalog-center-column{padding:0 30px}.bootstrap #catalog-center-column .btn.btn-primary{background:#1292FF;border-radius:5px}.bootstrap #catalog-center-column .pagination-container{text-align:center;margin-bottom:12px}.bootstrap #catalog-center-column .list-container .list-header{margin-bottom:40px}.bootstrap #catalog-center-column .list-container .list-header .title{font-size:24px;color:#000;font-weight:700}.bootstrap #catalog-center-column .list-container .list-header .sort-label{margin-top:6px}.bootstrap #catalog-center-column .list-container .explore-panel{font-weight:600;font-size:16px;color:#000}.bootstrap .bootstrap #catalog-center-column .list-empty{background-color:unset !important}.bootstrap #suggested-modules-list .suggested-elements,.bootstrap #suggested-theme-list .suggested-elements{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;flex-wrap:wrap;margin:0 -15px}.bootstrap #suggested-modules-list .suggested-elements .element-panel,.bootstrap #suggested-theme-list .suggested-elements .element-panel{display:flex;flex-direction:column;margin-bottom:25px}.bootstrap #suggested-modules-list .suggested-elements .element-panel>.panel,.bootstrap #suggested-modules-list .suggested-elements .element-panel>#dash_version,.bootstrap #suggested-modules-list .suggested-elements .message-item-initial .element-panel>.message-item-initial-body,.bootstrap .message-item-initial #suggested-modules-list .suggested-elements .element-panel>.message-item-initial-body,.bootstrap #suggested-modules-list .suggested-elements .timeline .timeline-item .timeline-caption .element-panel>.timeline-panel,.bootstrap .timeline .timeline-item .timeline-caption #suggested-modules-list .suggested-elements .element-panel>.timeline-panel,.bootstrap #suggested-theme-list .suggested-elements .element-panel>.panel,.bootstrap #suggested-theme-list .suggested-elements .element-panel>#dash_version,.bootstrap #suggested-theme-list .suggested-elements .message-item-initial .element-panel>.message-item-initial-body,.bootstrap .message-item-initial #suggested-theme-list .suggested-elements .element-panel>.message-item-initial-body,.bootstrap #suggested-theme-list .suggested-elements .timeline .timeline-item .timeline-caption .element-panel>.timeline-panel,.bootstrap .timeline .timeline-item .timeline-caption #suggested-theme-list .suggested-elements .element-panel>.timeline-panel{border:unset;box-shadow:0px 3px 10px rgba(0,0,0,0.05);margin:0 10px;height:100%}.bootstrap #suggested-modules-list .module-info-wrapper{position:relative;height:100%}.bootstrap #suggested-modules-list .module-info-wrapper .module-logo{display:flex;gap:10px;margin-bottom:20px}.bootstrap #suggested-modules-list .module-info-wrapper .module-logo img{max-height:60px}.bootstrap #suggested-modules-list .panel-action .module-price{font-size:14px;font-weight:700}.bootstrap #suggested-theme-list .theme-info-wrapper{position:relative;height:100%}.bootstrap #suggested-theme-list .theme-info-wrapper .theme-logo{position:relative;width:100%;padding-top:70%}.bootstrap #suggested-theme-list .theme-info-wrapper .theme-logo img{position:absolute;top:0;left:0;right:0;bottom:0;height:100%;width:100%;object-fit:cover;border-radius:5px}.bootstrap #suggested-theme-list .panel-action .theme-price{font-size:14px;font-weight:700}.bootstrap #catalog-center-column .explore-panel{margin-bottom:60px}.bootstrap #module-list h3{position:relative;top:0;margin:0;padding:0;background-color:transparent;color:#363A41;left:0}.bootstrap #module-list select.active{border:solid 1px #00aff0;background:#bdedff}.bootstrap #module-list select.active option{background:#fff !important}.bootstrap .hook_panel{margin-bottom:10px !important;border:solid #E6E6E6 1px;-webkit-box-shadow:rgba(0,0,0,0.1) 0 -2px 0 inset;box-shadow:rgba(0,0,0,0.1) 0 -2px 0 inset;-webkit-border-radius:3px;border-radius:3px;padding:10px 10px 5px 10px}.bootstrap .module_name{font-size:1.2em}.bootstrap .hook_panel_header{margin:0 -10px 0 -10px;padding:0 10px 10px 10px}.bootstrap .hook_panel_header .hook_name{font-size:1.4em;color:#00aff0;background-color:#fff;padding:0 4px;-webkit-border-radius:3px;border-radius:3px}.bootstrap .hook_panel_header .hook_description{padding:3px 0 0 3px}.bootstrap .modules_list_container_tab img{max-width:66px}.bootstrap .module_list .module_list_item{display:table;width:100%;padding:5px 0;margin-bottom:-1px;border:solid 1px #9ED0EC}.bootstrap .module_list .module_list_item.highlight{background-color:#F7E69F}.bootstrap .module_list .draggable{cursor:pointer}.bootstrap .module_col_select{display:table-cell;width:22px;min-height:35px;vertical-align:middle;text-align:center;border-right:1px solid #ddd}.bootstrap .module_col_position{display:table-cell;width:70px;vertical-align:middle;text-align:right}.bootstrap .module_col_position .positions{border:solid 1px #ccc;background-color:#eee;padding:0 5px;font-size:1.4em;color:#aaa;cursor:move;text-shadow:#fff 1px 1px;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:rgba(0,0,0,0.2) 0 1px 3px inset;box-shadow:rgba(0,0,0,0.2) 0 1px 3px inset}.bootstrap .module_col_icon{display:table-cell;width:50px;text-align:center;vertical-align:middle}.bootstrap .module_col_infos{display:table-cell;height:50px;vertical-align:middle}.bootstrap .module_col_actions{display:table-cell;width:160px;padding:0 10px;vertical-align:middle;text-align:right}.bootstrap .module_col_actions .btn-group{text-align:left}.bootstrap li.sortable-placeholder{border:1px dashed #CCC;background-color:#eee;margin:4px;-webkit-border-radius:5px;border-radius:5px}.bootstrap td.module_active{background-color:#96d19b !important}.bootstrap td.module_inactive{background-color:#d5d5d5 !important}.bootstrap .module-badge-popular,.bootstrap .module-badge-partner,.bootstrap .module-badge-bought{font-size:12px}.bootstrap .module-badge-popular{background-color:#F01778}.bootstrap .module-badge-partner{background-color:#00aff0}.bootstrap .module-badge-bought{background-color:#8BC954}.bootstrap .categoriesTitle .list-group #filternameForm,.bootstrap .categoriesTitle #dashboard .data_list #filternameForm,.bootstrap #dashboard .categoriesTitle .data_list #filternameForm{padding-right:15px}.bootstrap .categoriesTitle .list-group .list-group-item,.bootstrap .categoriesTitle #dashboard .data_list .list-group-item,.bootstrap #dashboard .categoriesTitle .data_list .list-group-item,.bootstrap #dashboard .data_list .categoriesTitle .list-group li,.bootstrap .categoriesTitle #dashboard .data_list li,.bootstrap #dashboard .categoriesTitle .data_list li{position:relative;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding-right:35px}.bootstrap .categoriesTitle .list-group .list-group-item .badge,.bootstrap .categoriesTitle #dashboard .data_list .list-group-item .badge,.bootstrap #dashboard .categoriesTitle .data_list .list-group-item .badge,.bootstrap #dashboard .data_list .categoriesTitle .list-group li .badge,.bootstrap .categoriesTitle #dashboard .data_list li .badge,.bootstrap #dashboard .categoriesTitle .data_list li .badge,.bootstrap .categoriesTitle .list-group .list-group-item #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper .bootstrap .categoriesTitle .list-group .list-group-item .notifs_badge,.bootstrap .categoriesTitle #dashboard .data_list .list-group-item #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper .bootstrap .categoriesTitle #dashboard .data_list .list-group-item .notifs_badge,.bootstrap #dashboard .categoriesTitle .data_list .list-group-item #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper .bootstrap #dashboard .categoriesTitle .data_list .list-group-item .notifs_badge,.bootstrap #dashboard .data_list .categoriesTitle .list-group li #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper .bootstrap #dashboard .data_list .categoriesTitle .list-group li .notifs_badge,.bootstrap .categoriesTitle #dashboard .data_list li #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper .bootstrap .categoriesTitle #dashboard .data_list li .notifs_badge,.bootstrap #dashboard .categoriesTitle .data_list li #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper .bootstrap #dashboard .categoriesTitle .data_list li .notifs_badge,.bootstrap .categoriesTitle .list-group .list-group-item .module-badge-popular,.bootstrap .categoriesTitle #dashboard .data_list .list-group-item .module-badge-popular,.bootstrap #dashboard .categoriesTitle .data_list .list-group-item .module-badge-popular,.bootstrap #dashboard .data_list .categoriesTitle .list-group li .module-badge-popular,.bootstrap .categoriesTitle #dashboard .data_list li .module-badge-popular,.bootstrap #dashboard .categoriesTitle .data_list li .module-badge-popular,.bootstrap .categoriesTitle .list-group .list-group-item .module-badge-partner,.bootstrap .categoriesTitle #dashboard .data_list .list-group-item .module-badge-partner,.bootstrap #dashboard .categoriesTitle .data_list .list-group-item .module-badge-partner,.bootstrap #dashboard .data_list .categoriesTitle .list-group li .module-badge-partner,.bootstrap .categoriesTitle #dashboard .data_list li .module-badge-partner,.bootstrap #dashboard .categoriesTitle .data_list li .module-badge-partner,.bootstrap .categoriesTitle .list-group .list-group-item .module-badge-bought,.bootstrap .categoriesTitle #dashboard .data_list .list-group-item .module-badge-bought,.bootstrap #dashboard .categoriesTitle .data_list .list-group-item .module-badge-bought,.bootstrap #dashboard .data_list .categoriesTitle .list-group li .module-badge-bought,.bootstrap .categoriesTitle #dashboard .data_list li .module-badge-bought,.bootstrap #dashboard .categoriesTitle .data_list li .module-badge-bought{position:absolute;right:5px}.bootstrap .quickview-badge{margin-top:30px}.bootstrap .quickview-price{color:#666;font-size:1.8em;float:right}.bootstrap .rating{unicode-bidi:bidi-override;direction:rtl;font-size:20px}.bootstrap .rating span.star{font-family:"FontAwesome";display:inline-block}.bootstrap .rating span.star:before{content:"";padding-right:3px;color:#bbb}.bootstrap .rating span.star.active:before,.bootstrap .rating span.star.active ~ span.star:before{content:"";color:#F5AB35}.bootstrap #modules_list_container_tab_modal .img-thumbnail{max-width:60px;max-height:60px}.bootstrap .modules-addons-info{text-align:center}.bootstrap .modules-addons-info h4{margin-bottom:0px !important}.bootstrap .modules-addons-buttons{text-align:center}.bootstrap .modules-addons-buttons a{margin-right:10px;text-transform:uppercase}.bootstrap .adminsearch #content .panel .panel,.bootstrap .adminsearch #content #dash_version .panel,.bootstrap .adminsearch #content .message-item-initial .message-item-initial-body .panel,.bootstrap .message-item-initial .adminsearch #content .message-item-initial-body .panel,.bootstrap .adminsearch #content .timeline .timeline-item .timeline-caption .timeline-panel .panel,.bootstrap .timeline .timeline-item .timeline-caption .adminsearch #content .timeline-panel .panel,.bootstrap .adminsearch #content .panel #dash_version,.bootstrap .adminsearch #content #dash_version #dash_version,.bootstrap .adminsearch #content .message-item-initial .message-item-initial-body #dash_version,.bootstrap .message-item-initial .adminsearch #content .message-item-initial-body #dash_version,.bootstrap .adminsearch #content .timeline .timeline-item .timeline-caption .timeline-panel #dash_version,.bootstrap .timeline .timeline-item .timeline-caption .adminsearch #content .timeline-panel #dash_version,.bootstrap .adminsearch #content .panel .message-item-initial .message-item-initial-body,.bootstrap .message-item-initial .adminsearch #content .panel .message-item-initial-body,.bootstrap .adminsearch #content #dash_version .message-item-initial .message-item-initial-body,.bootstrap .message-item-initial .adminsearch #content #dash_version .message-item-initial-body,.bootstrap .adminsearch #content .message-item-initial .message-item-initial-body .message-item-initial-body,.bootstrap .message-item-initial .adminsearch #content .message-item-initial-body .message-item-initial-body,.bootstrap .adminsearch #content .timeline .timeline-item .timeline-caption .timeline-panel .message-item-initial .message-item-initial-body,.bootstrap .message-item-initial .adminsearch #content .timeline .timeline-item .timeline-caption .timeline-panel .message-item-initial-body,.bootstrap .timeline .timeline-item .timeline-caption .adminsearch #content .timeline-panel .message-item-initial .message-item-initial-body,.bootstrap .message-item-initial .timeline .timeline-item .timeline-caption .adminsearch #content .timeline-panel .message-item-initial-body,.bootstrap .adminsearch #content .panel .timeline .timeline-item .timeline-caption .timeline-panel,.bootstrap .timeline .timeline-item .timeline-caption .adminsearch #content .panel .timeline-panel,.bootstrap .adminsearch #content #dash_version .timeline .timeline-item .timeline-caption .timeline-panel,.bootstrap .timeline .timeline-item .timeline-caption .adminsearch #content #dash_version .timeline-panel,.bootstrap .adminsearch #content .message-item-initial .message-item-initial-body .timeline .timeline-item .timeline-caption .timeline-panel,.bootstrap .timeline .timeline-item .timeline-caption .adminsearch #content .message-item-initial .message-item-initial-body .timeline-panel,.bootstrap .message-item-initial .adminsearch #content .message-item-initial-body .timeline .timeline-item .timeline-caption .timeline-panel,.bootstrap .timeline .timeline-item .timeline-caption .message-item-initial .adminsearch #content .message-item-initial-body .timeline-panel,.bootstrap .adminsearch #content .timeline .timeline-item .timeline-caption .timeline-panel .timeline-panel,.bootstrap .timeline .timeline-item .timeline-caption .adminsearch #content .timeline-panel .timeline-panel{padding:0;margin:0;border:none;-webkit-border-radius:0;border-radius:0;-webkit-box-shadow:0;box-shadow:0}.bootstrap #translations_form .translations-email-panel{padding:8px 12px;margin:0 0 8px 20px}.bootstrap #translations_form .block-mail iframe,.bootstrap #translations_form .block-mail textarea{width:100%;height:500px}.bootstrap #translations_form .panel-group{display:none}.bootstrap #translations_form a.panel-title i{display:none}.bootstrap #translations_form a.panel-title:hover{text-decoration:none}.bootstrap #translations_form a.panel-title:hover i{display:inline-block}.bootstrap #translations_form .mails_field{border-bottom:1px solid #eee;padding-bottom:8px;margin-bottom:16px}.bootstrap #translations_form .mails_field ul.nav-pills{margin-bottom:5px}.bootstrap #translations_form .mails_field h4 .badge,.bootstrap #translations_form .mails_field h4 #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper .bootstrap #translations_form .mails_field h4 .notifs_badge,.bootstrap #translations_form .mails_field h4 .module-badge-popular,.bootstrap #translations_form .mails_field h4 .module-badge-partner,.bootstrap #translations_form .mails_field h4 .module-badge-bought{font-size:12px}.bootstrap #translations_form .mails_field h4 .badge.badge-danger,.bootstrap #translations_form .mails_field h4 #header_notifs_icon_wrapper .badge-danger.notifs_badge,#header_notifs_icon_wrapper .bootstrap #translations_form .mails_field h4 .badge-danger.notifs_badge,.bootstrap #translations_form .mails_field h4 .badge-danger.module-badge-popular,.bootstrap #translations_form .mails_field h4 .badge-danger.module-badge-partner,.bootstrap #translations_form .mails_field h4 .badge-danger.module-badge-bought{color:#E08F95;border:solid 2px #E08F95;background-color:transparent}.bootstrap #translations_form .mails_field .panel-footer{margin:0 -15px}.bootstrap .avatar-xs{height:16px;width:16px;display:inline-block;text-align:center;overflow:hidden;-webkit-border-radius:16px;border-radius:16px}.bootstrap .avatar-xs img{width:100%;height:100%}.bootstrap .avatar-xs i{font-size:10.66667px;line-height:16px}.bootstrap .avatar-sm{height:32px;width:32px;display:inline-block;text-align:center;overflow:hidden;-webkit-border-radius:32px;border-radius:32px}.bootstrap .avatar-sm img{width:100%;height:100%}.bootstrap .avatar-sm i{font-size:21.33333px;line-height:32px}.bootstrap .avatar-md{height:48px;width:48px;display:inline-block;text-align:center;overflow:hidden;-webkit-border-radius:32px;border-radius:32px}.bootstrap .avatar-md img{width:100%;height:100%}.bootstrap .avatar-md i{font-size:32px;line-height:48px}.bootstrap .avatar-lg{height:80px;width:80px;display:inline-block;text-align:center;overflow:hidden;-webkit-border-radius:80px;border-radius:80px}.bootstrap .avatar-lg img{width:100%;height:100%}.bootstrap .avatar-lg i{font-size:53.33333px;line-height:80px}.bootstrap .avatar-xl{height:128px;width:128px;display:inline-block;text-align:center;overflow:hidden;-webkit-border-radius:128px;border-radius:128px}.bootstrap .avatar-xl img{width:100%;height:100%}.bootstrap .avatar-xl i{font-size:85.33333px;line-height:128px}.bootstrap #employee-thumbnail{margin-bottom:10px;width:104px;height:104px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAIAAACzY+a1AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAB1ZJREFUeNrsnV1PGl0UhcsUbGmtVotYQatVbFqrF973/1+ZJqaJX0hFRKh8CRYBUZyu0KR5k1eBwWFmHV3romlShdPzzN577TMz5wTOz8+fSSbL0hQIoSSEkhAKoSSEkhBKQiiEkhBKQigJoRBKQigJoSSET1bBJ/W/7XQ6rVarXq83Go2rq6ubmxv8/fr6Gv80OTm5vr5uWZYQ0umqq3K5/Pv372q1CoS3t7f//7E3b94oCrmw1Wq1SqWCP//FWQ99+fJlcXFRCP1Xu93O5XLFYhHkkCQH8gKWBX4LCwuqhX4KtICtUCggW4Kio98Nh8NG8zMeIVxJPp/PZrPNZnO4T0CORaYdHx83dxIChj6ECFeSSqXAb8CE2UOhUGhlZWVpaUlR6JFs20bBOzg4gGdx5QMRiHt7eyifnz9/fvHihRCOVmgMMN2oea5/MgIaLQesTTQaVSIdlVDzwO/hmbPXdAQCiUQCeVVR6L4AL51Oe5Clk8kkzNHa2popKzVmjHJ3d9cDfv8N9+/fv/ddEBDCQbW/v398fOzxl5ZKpa2tLSMosiNEQBwdHfny1fCo29vbdy6oCqGDSUQJ9HEAiMWdnR0USCEcRrj8UQJH6j8HTAM/f/4UwmF0dnaGRo1hJKlUirn14kWYyWR48gEoCqEz1et1FEKe8ZTLZarxGICwUqlQWUE4mtPTUyF0oEajwTaki4sLIXQgt+5CuCh4Y87uQg8hGi8hHFSBQEAIzVa73e50OkJosG67EkIH3kG51GyEptyrE0LzvIMQSkIoCaEQeiHbtjkdqRAKoRyppFoohJIQSkIoCaEQSkIoPQmEnC/2oVXlHBjXK6LX19f7+/utVsvp3iMeyLbt8/Pzly9fsm2PwYWwWq1ms1nOfIXLa2trKxQKffv2jWpXBYvtSicvPADJtn7LhTAcDpOvjgaDwefPnwvhvRobG8McMSNELWTbm4bOYvHnUjUVvYQcRR6FGCFbqqdDCMvHjBCpXlHYp30m3wWNcHh0tZB8X8lXr14JYf9cSu5IhbCPpqammBGicxXCPpqcnKR1NAhBDE8I+wj8YrEYJ8JIJEJ4s4Lx7sny8jJhyUHDyrn5MyNCGPeNjQ0qX/P3LAROt0x61/7du3dUxuHt27fxeJxzrngfvKA6gQcIaSeKFyHVNufMrQ4vwomJCRL7B5PMfCgXL0Kee4dwMYQO2QCE4EdyW4C5EFIjDAQCJBWI/PAR6keBI5EIQxYlXFQzBiG6Q9+76bm5OfIzR6gHh3Lo7+GC8KLz8/PPuMX+TkU8HvfxLmssFuM/S40dIQIxkUj4MzWWZcQBvwa82YRQQEHy/ntx6RA+ZmEkQujr16/T09NefuPMzIwp54qagRDpdHNz08sWGzVYh9+5bw69XOUif5zVSIS2bXt58oFB7wUYg7DT6RCefCCEDkT4Yp8QOlOz2fRyg3qDNoEzBqGXu9Pzv9phJEKPT3FSFLoveRnjEbZaLdFSFCqR+mdkrrryuPRyntB0x9XGfNAwlM/nDw8P2+229+fHWJaVSCSWl5cVhcOrVqv9+PHj8vLSl/N/EP3JZJL2CF8zEBYKBX8PK7NtO5fLCeGDotD3MdAe4WsGQob9EPlNDS9CWNBms+n7MDAG8lUFXoRnZ2cMpxhiDBiJEA7jBjOZDMlgMBLOI2CpEZZKpXq9TjIYjATjEULHHb3GYyrCVquVTqfZrnqMB6PiXGpnWWBDsalUKrjY0c7TnsUcCoWi0ejc3Nz09DTPI4r+I4Rlz2azgMdT/PpqfHwcIOfn5xlu7vuJsFarwa+DH+GRBoNobGwMFGdnZ/19AdEHhJ1OB6Xl5OQEmZPZrA/qJiwLeXVhYSESifiy3ZGn+xFcXl7mumJYdnGxipe6CofDsa5ev379CKPw4uLi+Pj4169fptxHHVoIxPfv3y8uLk5MTDwGhLZtF4tFVDtcpI8gZzrKrsirqJQzMzOjfoZjVAjhM2EykTP5b9aMVIjFv+9Hjs67uo8QBe+0Kz02+E/gF+9qFGXSTYQwKZlMBmmTtjf3fWUAqfXDhw/ubvLoDkJ0eCAHtyJ4g4CE3wFLt7rJhyIEvKOjI3ToOqjH2bwHArOzsx8/fnw4yOER1uv1ZDJZKBQE7yEgo9Ho6urqQ3ZIGqa1R81Lp9PInI++yRu1cPUjgaHjQl5dWloarkY6i0KYzL/wVPNGZHYA0mn74QAh3GYqlVKrMOr2Y2VlBa7V5UTaaDQODg5gODXFoxYiZGdnp1KpfPr0acCNi/ojzOfz+FBlTi+FaCmXy2tra4Nse9UHITInbKfm1HshZra3t5H/kFd7/2SvpwcODw/Fz19h/kFhSIQnJyd9f1nyQKAAFo4RVqvV3d1dTR+JwAJEHCBEv7m3t/ekbu+RCyxA5L5VsDsQwtH2YC75IhABl0ERFotFTRmh7uNyB8JCoaD5ItR9XCxNjekSQiGUhFASQiGUhFASQkkIhVAyQo1G486VbiE0RsFg8M6XpP4IMAApALrnMeLgrgAAAABJRU5ErkJggg==);background-size:contain;position:relative;border:solid 1px #ccc;-webkit-border-radius:4px;border-radius:4px;-webkit-box-shadow:#fff 0 0 0 4px inset;box-shadow:#fff 0 0 0 4px inset}.bootstrap #employee-thumbnail:before{position:absolute;top:10px;display:block;text-align:center;font-size:2em;z-index:10;color:#ccc;left:10px}.bootstrap #employee-thumbnail a{width:100px;height:100px;overflow:hidden;display:block;position:absolute;top:1px;z-index:100;background-position:center;background-size:contain;border:none;left:1px;-webkit-box-shadow:#fff 0 0 0 3px inset;box-shadow:#fff 0 0 0 3px inset}.bootstrap .table.customer_thread .text-success,.bootstrap #MeaningStatus .text-success{color:#56CE56}.bootstrap .table.customer_thread .text-warning,.bootstrap #MeaningStatus .text-warning{color:#FCC94F}.bootstrap .message-item-initial h2{font-size:1.5em;margin:0 0 5px 0}.bootstrap .message-item-initial .message-item-initial-body{position:relative;margin-top:10px}.bootstrap .message-item-initial .message-date{color:#bbb;margin-bottom:10px}.bootstrap .message-item{position:relative;border-bottom:solid 1px #eee;margin:0 0 0 30px;padding:10px 0}.bootstrap .message-item:last-child{border:none}.bootstrap .message-item .message-item-heading{display:inline-block}.bootstrap .message-item .message-body{margin:0 0 0 80px}.bootstrap .message-item .message-body .message-item-text{padding:0 0 0 10px;border-left:2px solid #ccc}.bootstrap .message-item .message-avatar{position:absolute;top:10px;left:10px}.bootstrap .message-item .message-date{color:#bbb}.bootstrap .arrow:before,.bootstrap .arrow:after{position:absolute;display:inline-block;border-color:transparent;border-style:solid;content:""}.bootstrap .arrow-left:before{top:6px;border-right-color:#d1d4d7;border-width:7px 7px 7px 0;margin-left:-7px;left:0}.bootstrap .arrow-left:after{top:7px;border-right-color:#fff;border-width:6px 6px 6px 0;left:0;margin-left:-6px}.bootstrap .arrow-right:before{top:6px;border-left-color:#d1d4d7;border-width:7px 0 7px 7px;right:0px;margin-right:-7px}.bootstrap .arrow-right:after{top:7px;border-left-color:#fff;border-width:6px 0 6px 6px;right:0px;margin-right:-6px}.bootstrap .timeline{display:table;width:100%;border-spacing:0;table-layout:fixed;position:relative;border-collapse:collapse}.bootstrap .timeline:before{content:"";width:6px;position:absolute;top:0;bottom:30px;background-color:#ddd;z-index:0;margin-left:-4px;left:50%}.bootstrap .timeline .timeline-item{display:table-row}.bootstrap .timeline .timeline-item .timeline-caption{display:table-cell;vertical-align:top;width:50%}.bootstrap .timeline .timeline-item .timeline-caption .timeline-panel{display:inline-block;position:relative;text-align:left;margin-left:42px;-webkit-box-shadow:0;box-shadow:0}.bootstrap .timeline .timeline-item .timeline-caption h5{margin:0}.bootstrap .timeline .timeline-item .timeline-caption h5 span{display:block;color:#999;margin-bottom:4px;font-size:12px}.bootstrap .timeline .timeline-item .timeline-caption p{font-size:12px;margin-bottom:0;margin-top:10px}.bootstrap .timeline .timeline-item .timeline-date{position:absolute;width:150px;top:10px;text-align:right;left:-220px}.bootstrap .timeline .timeline-item .timeline-icon{position:absolute;width:40px;height:40px;line-height:40px;border-radius:40px;top:-2px;text-align:center;border:2px solid #fff;background-color:#666;left:-62px}.bootstrap .timeline .timeline-item .timeline-icon i{font-size:20px;margin-top:5px;color:#fff}.bootstrap .timeline .timeline-item:before,.bootstrap .timeline .timeline-item.alt:after{content:"";display:block;width:50%}.bootstrap .timeline .timeline-item.alt{text-align:right}.bootstrap .timeline .timeline-item.alt:before{display:none}.bootstrap .timeline .timeline-item.alt .timeline-panel{margin-right:40px;margin-left:0}.bootstrap .timeline .timeline-item.alt .timeline-date{right:-220px;text-align:left;left:auto}.bootstrap .timeline .timeline-item.alt .timeline-icon{left:auto;right:-60px}.bootstrap .timeline .timeline-item.active{display:table-caption;text-align:center}.bootstrap .timeline .timeline-item.active:before{width:1%}.bootstrap .timeline .timeline-item.active .timeline-panel{margin-left:0}.bootstrap .timeline .timeline-item.active .timeline-caption{display:inline-block;width:auto}.bootstrap .timeline .timeline-item.active .timeline-date,.bootstrap .timeline .timeline-item.active .timeline-icon{position:static;margin-bottom:10px;display:inline-block;width:auto}.bootstrap .command-danger{background-color:#E08F95 !important}.bootstrap .command-success{background-color:#72C279 !important}.bootstrap .theme-container{width:100%;height:300px;overflow:hidden;border:solid 1px #ccc;position:relative;background-color:rgba(77,87,110,0.3);-webkit-border-radius:3px;border-radius:3px}.bootstrap .theme-container .theme-title{text-align:center;height:40px;line-height:40px;font-size:16px;background-color:#4D576E;color:#fff;margin:0 0 10px 0;padding:0;border-bottom:solid 1px #fff}.bootstrap .theme-container .thumbnail-wrapper .action-wrapper{display:none;position:absolute;top:40px;left:0}.bootstrap .theme-container .thumbnail-wrapper .action-wrapper .action-overlay{width:100%;height:260px;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzRkNTc2ZSIgc3RvcC1vcGFjaXR5PSIwLjUiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiM0ZDU3NmUiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSJ1cmwoI2dyYWQpIiAvPjwvc3ZnPiA=');background-size:100%;background-image:-webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, rgba(77,87,110,0.5)),color-stop(100%, #4d576e));background-image:-moz-linear-gradient(rgba(77,87,110,0.5),#4d576e);background-image:-webkit-linear-gradient(rgba(77,87,110,0.5),#4d576e);background-image:linear-gradient(rgba(77,87,110,0.5),#4d576e)}.bootstrap .theme-container .thumbnail-wrapper .action-wrapper .action-buttons{position:absolute;width:100%;top:130px;text-align:center}.bootstrap .addons-see-all-themes{padding-top:21px}.bootstrap .addons-see-all-themes a{margin-left:10px}.bootstrap .addons-style-search-bar{padding-top:0px}.bootstrap .nowrap{white-space:nowrap}.bootstrap #customization_list{border:0px}.bootstrap .booking_occupancy_edit .occupancy-info-separator,.bootstrap .booking_occupancy .occupancy-info-separator{margin-top:0px;margin-bottom:10px}.bootstrap .booking_occupancy_edit .close_occupancy,.bootstrap .booking_occupancy .close_occupancy{text-decoration:underline}.bootstrap .booking_occupancy .booking_occupancy_wrapper{max-height:250px;width:100%;overflow-x:auto}.bootstrap .booking_occupancy label.room_num_wrapper{text-decoration:underline;margin-bottom:10px}.bootstrap #booking-documents-modal .documents-list table tbody img{max-width:55px}.bootstrap .toolbar_order_status_badge{font-size:12px}.bootstrap .error_text{color:red}.bootstrap .room_type_old_price{text-decoration:line-through;color:#979797;font-size:12px}.bootstrap .wk-input-date{cursor:text;background-color:#F5F8F9}.bootstrap #room_status_info_wrapper .margin-bottom-5{margin-bottom:5px}.bootstrap #room_status_info_wrapper .room_status_date{display:none}.bootstrap #order_detail_view .panel .panel-heading,.bootstrap #order_detail_view #dash_version .panel-heading,.bootstrap #order_detail_view .message-item-initial .message-item-initial-body .panel-heading,.bootstrap .message-item-initial #order_detail_view .message-item-initial-body .panel-heading,.bootstrap #order_detail_view .timeline .timeline-item .timeline-caption .timeline-panel .panel-heading,.bootstrap .timeline .timeline-item .timeline-caption #order_detail_view .timeline-panel .panel-heading{height:auto;padding:5px 5px 3px 5px}.bootstrap #order_detail_view .panel .panel-heading a,.bootstrap #order_detail_view #dash_version .panel-heading a,.bootstrap #order_detail_view .message-item-initial .message-item-initial-body .panel-heading a,.bootstrap .message-item-initial #order_detail_view .message-item-initial-body .panel-heading a,.bootstrap #order_detail_view .timeline .timeline-item .timeline-caption .timeline-panel .panel-heading a,.bootstrap .timeline .timeline-item .timeline-caption #order_detail_view .timeline-panel .panel-heading a{text-transform:none}.bootstrap .modal-body .modal-footer{padding:15px 0px 0px 0px}.bootstrap .modal-body .tab-content{padding:15px;border:1px solid #ddd}.bootstrap .loading_overlay{display:none;position:fixed;left:0;top:0;height:100%;width:100%;background-color:rgba(0,0,0,0.5);z-index:100000}.bootstrap .loading_overlay .loading-img{position:absolute;top:50%;left:0;right:0;margin:0 auto}.bootstrap #customer_cart_details .overbooked_room{background-color:#FF69B4;color:#FFF;padding:2px 5px;border-radius:2px;font-weight:600}.bootstrap .room_status_info_form .room_status{white-space:normal}.bootstrap #noteContent{max-height:200px}.bootstrap .panel-refund-request .refunded_amount{margin-top:2px}.bootstrap .order-notes .panel-content{max-height:240px;overflow:auto}.bootstrap .panel-guest_address .panel-heading{align-items:center;display:flex;gap:10px;justify-content:space-between}.bootstrap .panel-guest_address .panel-heading .panel-title{width:100%}.bootstrap .panel-guest_address .panel-heading .dropdown-menu{right:0;left:unset;font-size:14px}.bootstrap #order-details-price .icon-bold{font-weight:600}.bootstrap #order-details-price #convenience_services .panel,.bootstrap #order-details-price #convenience_services #dash_version,.bootstrap #order-details-price #convenience_services .message-item-initial .message-item-initial-body,.bootstrap .message-item-initial #order-details-price #convenience_services .message-item-initial-body,.bootstrap #order-details-price #convenience_services .timeline .timeline-item .timeline-caption .timeline-panel,.bootstrap .timeline .timeline-item .timeline-caption #order-details-price #convenience_services .timeline-panel,.bootstrap #order-details-price #order_tax_details .panel,.bootstrap #order-details-price #order_tax_details #dash_version,.bootstrap #order-details-price #order_tax_details .message-item-initial .message-item-initial-body,.bootstrap .message-item-initial #order-details-price #order_tax_details .message-item-initial-body,.bootstrap #order-details-price #order_tax_details .timeline .timeline-item .timeline-caption .timeline-panel,.bootstrap .timeline .timeline-item .timeline-caption #order-details-price #order_tax_details .timeline-panel{padding:10px;background-color:#F5F8F9;border:solid 1px transparent;border-radius:0}.bootstrap #order-details-price #convenience_services .panel .table tr:last-child td,.bootstrap #order-details-price #convenience_services #dash_version .table tr:last-child td,.bootstrap #order-details-price #convenience_services .message-item-initial .message-item-initial-body .table tr:last-child td,.bootstrap .message-item-initial #order-details-price #convenience_services .message-item-initial-body .table tr:last-child td,.bootstrap #order-details-price #convenience_services .timeline .timeline-item .timeline-caption .timeline-panel .table tr:last-child td,.bootstrap .timeline .timeline-item .timeline-caption #order-details-price #convenience_services .timeline-panel .table tr:last-child td,.bootstrap #order-details-price #order_tax_details .panel .table tr:last-child td,.bootstrap #order-details-price #order_tax_details #dash_version .table tr:last-child td,.bootstrap #order-details-price #order_tax_details .message-item-initial .message-item-initial-body .table tr:last-child td,.bootstrap .message-item-initial #order-details-price #order_tax_details .message-item-initial-body .table tr:last-child td,.bootstrap #order-details-price #order_tax_details .timeline .timeline-item .timeline-caption .timeline-panel .table tr:last-child td,.bootstrap .timeline .timeline-item .timeline-caption #order-details-price #order_tax_details .timeline-panel .table tr:last-child td{border-bottom:none}.bootstrap #order-details-price #convenience_services .panel .table tr td,.bootstrap #order-details-price #convenience_services #dash_version .table tr td,.bootstrap #order-details-price #convenience_services .message-item-initial .message-item-initial-body .table tr td,.bootstrap .message-item-initial #order-details-price #convenience_services .message-item-initial-body .table tr td,.bootstrap #order-details-price #convenience_services .timeline .timeline-item .timeline-caption .timeline-panel .table tr td,.bootstrap .timeline .timeline-item .timeline-caption #order-details-price #convenience_services .timeline-panel .table tr td,.bootstrap #order-details-price #order_tax_details .panel .table tr td,.bootstrap #order-details-price #order_tax_details #dash_version .table tr td,.bootstrap #order-details-price #order_tax_details .message-item-initial .message-item-initial-body .table tr td,.bootstrap .message-item-initial #order-details-price #order_tax_details .message-item-initial-body .table tr td,.bootstrap #order-details-price #order_tax_details .timeline .timeline-item .timeline-caption .timeline-panel .table tr td,.bootstrap .timeline .timeline-item .timeline-caption #order-details-price #order_tax_details .timeline-panel .table tr td{background-color:#F5F8F9}.bootstrap #leave_bprice{margin-left:0px}.bootstrap .padding-top-20{padding-top:20px}.bootstrap .modal-subtitle{font-weight:400;color:#333;font-size:13px;padding-bottom:10px}.bootstrap .rooms-disable-dates-title{margin-top:15px;padding-bottom:5px;font-size:13px;border-bottom:solid 1px #EAEDEF}.bootstrap .rooms-disable-dates-title .rooms-disable-dates thead tr{background-color:#f1f1f1}.bootstrap .rooms_bulk_actions .dropdown-menu li>a:hover{cursor:pointer}.bootstrap #bulk-update-rooms-button[disabled]{border-color:#DEDEDE}.bootstrap #bulk-update-rooms-button[disabled]:hover{cursor:not-allowed}.bootstrap .add_disable_date_row_container{margin-top:5px}.bootstrap #deactiveDatesModal .fc-popover-body .fc-daygrid-event-harness .fc-event-end,.bootstrap #deactiveDatesModal .fc-popover-body .fc-daygrid-event-harness .fc-event-start{margin-left:unset;margin-right:unset}.bootstrap #deactiveDatesModal .fc-popover.fc-more-popover{max-width:450px}.bootstrap #deactiveDatesModal .fc-daygrid-event{box-shadow:0px 1px 2px 0px rgba(171,171,171,0.3);border-radius:4px}.bootstrap #deactiveDatesModal .fc-daygrid-day-bg{min-height:40px}.bootstrap #deactiveDatesModal .fc-h-event.fc-event{border-color:#fff;background:#fff}.bootstrap #deactiveDatesModal .fc-h-event .fc-event-main{color:#333}.bootstrap #deactiveDatesModal .fc-h-event.fc-event.calendar_hover_highlight{border-color:#CAE4FF;background:#CAE4FF}.bootstrap #deactiveDatesModal .fc-event-title-container{cursor:pointer;padding:4px}.bootstrap #deactiveDatesModal .highlight-event-day{background:#F5F5F5}.bootstrap #deactiveDatesModal .fc-event-title{text-overflow:ellipsis;white-space:nowrap;max-width:65%;overflow:hidden;padding-left:10px}.bootstrap #deactiveDatesModal .event_title_container,.bootstrap #deactiveDatesModal .fc-popover-body .fc-event-title{border-left:2px solid red}.bootstrap #deactiveDatesModal #disable_dates_form .date_from_container,.bootstrap #deactiveDatesModal #disable_dates_form .date_to_container{position:relative}.bootstrap #deactiveDatesModal #disable_dates_form .date_from_container .ui-datepicker,.bootstrap #deactiveDatesModal #disable_dates_form .date_to_container .ui-datepicker{position:absolute;top:62px;left:5px}.bootstrap #deactiveDatesModal #disable_dates_form textarea{border-radius:4px}.bootstrap #deactiveDatesModal #disable_dates_form .form-group .control-label{margin-bottom:5px}.bootstrap #deactiveDatesModal #disable_dates_form .form-group .btn{border-radius:5px}.bootstrap #deactiveDatesModal .modal-title{line-height:2}.bootstrap #deactiveDatesModal .modal-title .add_disable_dates,.bootstrap #deactiveDatesModal .modal-title .close{margin-right:10px}.bootstrap #deactiveDatesModal .modal-title .remove_disable_dates{margin-right:20px}.bootstrap #deactiveDatesModal .modal-title .close{line-height:2}.bootstrap #deactiveDatesModal .modal-title .disable_dates_title{display:inline-block;font-weight:600}.bootstrap #deactiveDatesModal .modal-title .disable_dates_title .disable_dates_room_num{color:grey}.bootstrap #deactiveDatesModal .delete_disable_dates{margin-left:10px}.bootstrap #deactiveDatesModal .delete_disable_dates:hover,.bootstrap #deactiveDatesModal .edit_disable_dates:hover{cursor:pointer}.bootstrap #deactiveDatesModal .tooltip_info_block{font-weight:600;min-width:340px}.bootstrap #deactiveDatesModal .tooltip_info_block .tooltip_title{margin:10px 5px}.bootstrap #deactiveDatesModal .tooltip_container{font-size:14px;z-index:99999;position:absolute;min-width:450px;max-width:450px;background:#fff;box-shadow:0 8px 25px -2px rgba(0,0,0,0.2);padding:15px;border-radius:6px}.bootstrap #deactiveDatesModal .tooltip_container .tooltip_title{padding-bottom:5px;font-weight:600}.bootstrap #deactiveDatesModal .tooltip_container .tooltip_title .close{opacity:.6}.bootstrap #deactiveDatesModal .tooltip_container .tooltip_label{font-weight:400;color:#888;margin-bottom:5px}.bootstrap #deactiveDatesModal .tooltip_container .tooltip_event_title{border:1px solid #D9D9D9;border-radius:6px;padding:5px 10px}.bootstrap #deactiveDatesModal .tooltip_container .tooltip_content .tooltip_reason{word-wrap:break-word;max-height:200px;overflow:auto}.bootstrap #deactiveDatesModal .tooltip_container .tooltip_content .tooltip_reason_container,.bootstrap #deactiveDatesModal .tooltip_container .tooltip_content .id_event{margin-top:10px}.bootstrap #deactiveDatesModal .tooltip_container .tooltip_content>div{display:inline-block}.bootstrap #deactiveDatesModal .tooltip_container .tooltip_content .row,.bootstrap #deactiveDatesModal .tooltip_container .tooltip_content .multishop-well,.bootstrap #deactiveDatesModal .tooltip_container .tooltip_content #dashboard .data_list_vertical,.bootstrap #dashboard #deactiveDatesModal .tooltip_container .tooltip_content .data_list_vertical{margin-left:0;margin-right:0}.bootstrap #deactiveDatesModal .tooltip_container .tooltip_content ul.disable_dates_actions{padding-left:0;margin-bottom:0;list-style-type:none}.bootstrap #deactiveDatesModal .tooltip_container .tooltip_content ul.disable_dates_actions .btn{text-align:left;display:block;border:none}.bootstrap #deactiveDatesModal .tooltip_action_block{min-width:unset}.mce-container{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#333;font-size:12px;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:normal;box-sizing:content-box;text-align:left;direction:ltr}.mce-container *{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#333;font-size:12px;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:normal;text-align:left;box-sizing:content-box;direction:ltr}.mce-widget{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#333;font-size:12px;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:normal;text-align:left;box-sizing:content-box;direction:ltr}.mce-widget *{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#333;font-size:12px;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:normal;text-align:left;box-sizing:content-box;direction:ltr}.mce-widget button{box-sizing:border-box}.mce-container *[unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:visible !important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;width:100%;height:auto;left:0}.mce-tinymce{display:block;border-radius:2px}.mce-wordcount{position:absolute;top:0;padding:8px;right:0}div.mce-edit-area{background:#FFF;filter:none;padding:1px}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative}.mce-fullscreen .mce-resizehandle{display:none}.mce-charmap{border-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid #9e9e9e;width:20px;height:20px;line-height:20px;text-align:center;vertical-align:middle;padding:2px}.mce-charmap td div{text-align:center}.mce-charmap td:hover{background:#d9d9d9}.mce-grid td div{border:1px solid #d6d6d6;width:12px;height:12px;margin:2px;cursor:pointer;border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover{border-color:#a1a1a1}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#d6d6d6;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#a1a1a1;background:#c8def4}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-toolbar-grp{padding-bottom:2px}.mce-toolbar-grp .mce-flow-layout-item{margin-bottom:0}.mce-rtl .mce-wordcount{left:0;right:auto}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;opacity:.4;filter:alpha(opacity=40);zoom:1;right:2px}.mce-scrollbar-h{top:auto;bottom:2px;width:100%;height:7px;right:auto;left:2px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%;-webkit-border-radius:7px;border-radius:7px}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(opacity=60);zoom:1;-webkit-border-radius:7px;border-radius:7px}.mce-scroll{position:relative}.mce-panel{border:0 solid #ccc;background-color:#FCFDFE}.mce-floatpanel{position:absolute;box-shadow:0 5px 10px rgba(0,0,0,0.2)}.mce-floatpanel.mce-fixed{position:fixed}.mce-floatpanel .mce-arrow{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid;border-width:11px}.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid;border-width:10px;content:""}.mce-floatpanel.mce-popover{top:0;background:transparent;background:#fff;border:1px solid rgba(0,0,0,0.25);-webkit-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);left:0}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px;*margin-top:0}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{border-top-width:0;border-bottom-color:#9e9e9e;border-bottom-color:rgba(0,0,0,0.25);top:-11px;left:50%;margin-left:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;border-top-width:0;border-bottom-color:#fff;margin-left:-10px}.mce-floatpanel.mce-popover.mce-bottom.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end{margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;background:#fff;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;top:0;width:100%;height:100%;background:#000;left:0}#mce-modal-block.mce-in{opacity:.3;filter:alpha(opacity=30);zoom:1}.mce-window-move{cursor:move}.mce-window{background:transparent;background:#fff;position:fixed;top:0;opacity:0;-webkit-transition:opacity 150ms ease-in;transition:opacity 150ms ease-in;left:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-border-radius:6px;border-radius:6px}.mce-window.mce-in{opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #c5c5c5;position:relative}.mce-window-head .mce-close{position:absolute;top:9px;font-size:18px;font-weight:bold;line-height:20px;color:#858585;cursor:pointer;height:20px;overflow:hidden;right:15px}.mce-close:hover{color:#adadad}.mce-window-head .mce-title{line-height:20px;font-size:14px;font-weight:normal;text-rendering:optimizelegibility;padding-right:10px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:#fff;border-top:1px solid #c5c5c5;-webkit-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.mce-window-head .mce-dragh{position:absolute;top:0;cursor:move;width:90%;height:100%;left:0}.mce-window iframe{width:100%;height:100%}.mce-window.mce-fullscreen{-webkit-border-radius:0;border-radius:0}.mce-window.mce-fullscreen .mce-foot{-webkit-border-radius:0;border-radius:0}.mce-rtl .mce-window-head .mce-close{position:absolute;right:auto;left:15px}.mce-rtl .mce-window-head .mce-dragh{left:auto;right:0}.mce-rtl .mce-window-head .mce-title{direction:rtl;text-align:right}.mce-abs-layout{position:relative}body .mce-abs-layout-item{position:absolute}.mce-abs-end{position:absolute;width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-tooltip{position:absolute;padding:5px;zoom:1}.mce-tooltip-inner{font-size:12px;background-color:#000;color:#fff;max-width:200px;text-align:center;white-space:normal;-webkit-border-radius:3px;border-radius:3px;padding:5px 8px 4px 8px}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-right-color:#000}.mce-tooltip-arrow-w{border-left-color:#000}.mce-tooltip-nw,.mce-tooltip-sw{margin-left:-14px}.mce-tooltip-n .mce-tooltip-arrow{top:0px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent;left:50%;margin-left:-5px}.mce-tooltip-nw .mce-tooltip-arrow{top:0;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent;left:10px}.mce-tooltip-ne .mce-tooltip-arrow{top:0;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent;right:10px}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent;left:50%;margin-left:-5px}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent;left:10px}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent;right:10px}.mce-tooltip-e .mce-tooltip-arrow{top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent;right:0}.mce-tooltip-w .mce-tooltip-arrow{top:50%;margin-top:-5px;border-top-color:transparent;border-bottom-color:transparent;left:0;border-left-style:solid;border-right:none}.mce-btn{position:relative;display:inline-block;*display:inline;*zoom:1;background-color:#fff;-webkit-box-shadow:#eee 0 0 0 inset;box-shadow:#eee 0 0 0 inset}.mce-btn:hover,.mce-btn:focus{color:#eee;background-color:#eee;-webkit-box-shadow:#ddd 0 0 0 inset;box-shadow:#ddd 0 0 0 inset}.mce-btn.mce-disabled button,.mce-btn.mce-disabled:hover button{cursor:default;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-btn.mce-active{background-color:#d6d6d6}.mce-btn.mce-active:hover{background-color:#d6d6d6}.mce-btn:not(.mce-disabled):active{background-color:#d6d6d6}.mce-btn button{padding:2px 6px;font-size:12px;cursor:pointer;color:#333;text-align:center;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-primary{min-width:50px;color:#fff;border:1px solid #b1b1b1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);background-color:#006dcc}.mce-primary:hover,.mce-primary:focus{background-color:#005fb3}.mce-primary.mce-disabled button,.mce-primary.mce-disabled:hover button{cursor:default;opacity:.4;filter:alpha(opacity=40);zoom:1;-webkit-box-shadow:none;box-shadow:none}.mce-primary.mce-active{background-color:#005299}.mce-primary.mce-active:hover{background-color:#005299}.mce-primary:not(.mce-disabled):active{background-color:#005299}.mce-primary button{color:#fff}.mce-primary button i{color:#fff}.mce-btn-large button{padding:9px 14px;font-size:12px;line-height:normal;-webkit-border-radius:5px;border-radius:5px}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:1px 5px;font-size:12px;*padding-bottom:2px}.mce-btn-small i{line-height:20px;vertical-align:top;*line-height:18px}.mce-btn .mce-caret,.mce-btn-small .mce-caret{margin-top:8px;margin-left:0}.mce-caret{display:inline-block;*display:inline;*zoom:1;width:0;height:0;vertical-align:top;border-top:4px solid #333;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#aaa}.mce-caret.mce-up{border-bottom:4px solid #333;border-top:0}.mce-rtl .mce-btn button{direction:rtl}.mce-btn-group .mce-btn{border:solid 1px #ccc;border-radius:0;border-right:none}.mce-btn-group .mce-first{-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-webkit-border-top-right-radius:0;border-top-right-radius:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px}.mce-btn-group .mce-last{border-right:solid 1px #ccc;-webkit-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.mce-btn-group .mce-first.mce-last{border-radius:3px}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-checkbox{cursor:pointer}i.mce-i-checkbox{border:1px solid #c5c5c5;border-radius:3px;background-color:#f0f0f0;text-indent:-10em;*font-size:0;*line-height:0;*text-indent:0;overflow:hidden;width:14px;height:14px;text-align:center;display:inline-block;margin:0 3px 0 0}.mce-checked i.mce-i-checkbox{color:#333;font-size:12px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox,.mce-checkbox.mce-focus i.mce-i-checkbox{border:1px solid rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.65);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.65)}.mce-checkbox.mce-disabled .mce-label,.mce-checkbox.mce-disabled i.mce-i-checkbox{color:#acacac}.mce-rtl .mce-checkbox{direction:rtl;text-align:right}.mce-rtl i.mce-i-checkbox{margin:0 0 0 3px}.mce-colorbutton .mce-ico{position:relative}.mce-colorbutton-grid{margin:4px}.mce-colorbutton button{padding-right:4px}.mce-colorbutton .mce-preview{display:block;position:absolute;top:50%;margin-top:7px;background:gray;width:13px;height:2px;overflow:hidden;margin-left:-14px;left:50%;padding-right:3px}.mce-colorbutton.mce-btn-small .mce-preview{width:16px;padding-right:0;margin-left:-16px}.mce-colorbutton .mce-open{border-left:1px solid transparent;border-right:1px solid transparent;padding-left:4px}.mce-colorbutton:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-colorbutton.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-colorbutton{direction:rtl}.mce-rtl .mce-colorbutton .mce-preview{margin-left:0;padding-right:0;padding-left:4px;margin-right:14px}.mce-rtl .mce-colorbutton.mce-btn-small .mce-preview{margin-left:0;padding-right:0;margin-right:-17px;padding-left:0}.mce-rtl .mce-colorbutton button{padding-right:10px;padding-left:10px}.mce-rtl .mce-colorbutton .mce-open{padding-left:4px;padding-right:4px}.mce-combobox{display:inline-block;*display:inline;*zoom:1;*height:32px}.mce-combobox input{border:1px solid #c5c5c5;border-right-color:#c5c5c5;height:28px}.mce-combobox.mce-disabled input{color:#adadad}.mce-combobox.mce-has-open input{-webkit-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.mce-combobox .mce-btn{border-left:0;-webkit-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;background-color:#C5C5C5;-webkit-box-shadow:#aaa 0 -2px 0 inset;box-shadow:#aaa 0 -2px 0 inset}.mce-combobox button{height:26px}.mce-combobox.mce-disabled .mce-btn button{cursor:default;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-path{display:inline-block;*display:inline;*zoom:1;padding:8px;white-space:normal}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;*display:inline;*zoom:1;cursor:pointer;color:#333}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:#666;color:#fff}.mce-path .mce-divider{display:inline}.mce-disabled .mce-path-item{color:#aaa}.mce-rtl .mce-path{direction:rtl}.mce-fieldset{border:0 solid #9E9E9E;border-radius:3px}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}.mce-fit-layout{display:inline-block;*display:inline;*zoom:1}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;*display:inline;*zoom:1;margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-tinymce-inline .mce-flow-layout{white-space:nowrap}.mce-rtl .mce-flow-layout{text-align:right;direction:rtl}.mce-rtl .mce-flow-layout-item{margin:2px 2px 2px 0}.mce-rtl .mce-flow-layout-item.mce-last{margin-left:2px}.mce-iframe{border:0 solid #9e9e9e;width:100%;height:100%}.mce-label{display:inline-block;*display:inline;*zoom:1;border:0;overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label.mce-disabled{color:#aaa}.mce-label.mce-multiline{white-space:pre-wrap}.mce-rtl .mce-label{text-align:right;direction:rtl}.mce-menubar{border:1px solid #eee}.mce-menubar .mce-menubtn{border-color:transparent;background:transparent;border-radius:0;box-shadow:none;filter:none}.mce-menubar .mce-menubtn button span{color:#333}.mce-menubar .mce-caret{border-top-color:#333}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus{border-color:transparent;background:#e6e6e6;filter:none;box-shadow:none}.mce-menubtn.mce-disabled span{color:#aaa}.mce-menubtn span{color:#333;margin-right:2px;line-height:20px;*line-height:16px}.mce-menubtn.mce-btn-small span{font-size:12px}.mce-menubtn.mce-fixed-width span{display:inline-block;overflow-x:hidden;text-overflow:ellipsis;width:90px}.mce-menubtn.mce-fixed-width.mce-btn-small span{width:70px}.mce-menubtn .mce-caret{*margin-top:6px}.mce-rtl .mce-menubtn button{direction:rtl;text-align:right}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-rtl .mce-listbox .mce-caret{right:auto;left:8px}.mce-rtl .mce-listbox button{padding-right:10px;padding-left:20px}.mce-menu-item{display:block;padding:6px 15px 6px 12px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap;cursor:pointer;line-height:normal;border-left:4px solid transparent;margin-bottom:1px}.mce-menu-item .mce-ico,.mce-menu-item .mce-text{color:#333}.mce-menu-item.mce-disabled .mce-text,.mce-menu-item.mce-disabled .mce-ico{color:#adadad}.mce-menu-item:hover .mce-text,.mce-menu-item.mce-selected .mce-text,.mce-menu-item:hover .mce-ico,.mce-menu-item.mce-selected .mce-ico,.mce-menu-item:focus .mce-ico{color:#fff}.mce-menu-item.mce-disabled:hover{background:#ccc}.mce-menu-shortcut{display:inline-block;color:#adadad;display:inline-block;*display:inline;*zoom:1;padding:0 15px 0 20px}.mce-menu-item:hover .mce-menu-shortcut,.mce-menu-item.mce-selected .mce-menu-shortcut,.mce-menu-item:focus .mce-menu-shortcut{color:#fff}.mce-menu-item .mce-caret{margin-top:4px;*margin-top:3px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #333}.mce-menu-item.mce-selected .mce-caret,.mce-menu-item:focus .mce-caret,.mce-menu-item:hover .mce-caret{border-left-color:#fff}.mce-menu-align .mce-menu-shortcut{*margin-top:-2px;position:absolute;right:0}.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu-item.mce-active i{visibility:visible}.mce-menu-item-normal.mce-active{background-color:#c8def4}.mce-menu-item-preview.mce-active{border-left:5px solid #aaa}.mce-menu-item-normal.mce-active .mce-text{color:#333}.mce-menu-item-normal.mce-active:hover .mce-text,.mce-menu-item-normal.mce-active:hover .mce-ico{color:#fff}.mce-menu-item:hover,.mce-menu-item.mce-selected,.mce-menu-item:focus{text-decoration:none;color:#fff;background-color:#0081c2}div.mce-menu .mce-menu-item-sep,.mce-menu-item-sep:hover{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:#cbcbcb;border-bottom:1px solid #fff;cursor:default;filter:none}.mce-menu.mce-rtl{direction:rtl}.mce-rtl .mce-menu-item{text-align:right;direction:rtl;padding:6px 12px 6px 15px}.mce-menu-align.mce-rtl .mce-menu-shortcut,.mce-menu-align.mce-rtl .mce-caret{right:auto;left:0}.mce-rtl .mce-menu-item .mce-caret{margin-left:6px;margin-right:0;border-right:4px solid #333;border-left:0}.mce-rtl .mce-menu-item.mce-selected .mce-caret,.mce-rtl .mce-menu-item:focus .mce-caret,.mce-rtl .mce-menu-item:hover .mce-caret{border-left-color:transparent;border-right-color:#fff}.mce-menu{position:absolute;left:0;top:0;background:transparent;z-index:1000;padding:5px 0 5px 0;margin:2px 0 0;min-width:160px;background:#fff;border:1px solid #989898;border:1px solid rgba(0,0,0,0.2);z-index:1002;border-radius:6px;box-shadow:0 5px 10px rgba(0,0,0,0.2);max-height:400px;overflow:auto;overflow-x:hidden}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block;*display:inline}.mce-menu-sub-tr-tl{margin:-6px 0 0 -1px}.mce-menu-sub-br-bl{margin:6px 0 0 -1px}.mce-menu-sub-tl-tr{margin:-6px 0 0 1px}.mce-menu-sub-bl-br{margin:6px 0 0 1px}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-container-body .mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#333}.mce-spacer{visibility:hidden}.mce-splitbtn .mce-open{border-left:1px solid transparent;border-right:1px solid transparent}.mce-splitbtn button{padding-right:4px}.mce-splitbtn .mce-open{padding-left:4px}.mce-splitbtn .mce-open.mce-active{box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.mce-splitbtn.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-splitbtn{direction:rtl;text-align:right}.mce-rtl .mce-splitbtn button{padding-right:10px;padding-left:10px}.mce-rtl .mce-splitbtn .mce-open{padding-left:4px;padding-right:4px}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #c5c5c5}.mce-tab{display:inline-block;*display:inline;*zoom:1;border:1px solid #c5c5c5;border-width:0 1px 0 0;background:#e3e3e3;padding:8px;height:13px;cursor:pointer}.mce-tab:hover{background:#fdfdfd}.mce-tab.mce-active{background:#fdfdfd;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-rtl .mce-tabs{text-align:right;direction:rtl}.mce-rtl .mce-tab{border-width:0 0 0 1px}.mce-textbox{background:#fff;border:1px solid #c5c5c5;border-radius:3px;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);display:inline-block;transition:border linear .2s,box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:pre-wrap;*white-space:pre;color:#333}.mce-textbox:focus,.mce-textbox.mce-focus{border-color:rgba(82,168,236,0.8);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.65)}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px}.mce-textbox.mce-disabled{color:#adadad}.mce-rtl .mce-textbox{text-align:right;direction:rtl}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url("../img/loader.gif") no-repeat center center}.mce-i-none{width:16px;height:16px;margin:2px 0}.mce-ico{font-size:14px;line-height:20px}.mce-i-save:before{content:""}.mce-i-newdocument:before{content:""}.mce-i-fullpage:before{content:""}.mce-i-alignleft:before{content:""}.mce-i-aligncenter:before{content:""}.mce-i-alignright:before{content:""}.mce-i-alignjustify:before{content:""}.mce-i-cut:before{content:""}.mce-i-paste:before{content:""}.mce-i-searchreplace:before{content:""}.mce-i-bullist:before{content:""}.mce-i-numlist:before{content:""}.mce-i-indent:before{content:""}.mce-i-outdent:before{content:""}.mce-i-blockquote:before{content:""}.mce-i-undo:before{content:""}.mce-i-redo:before{content:""}.mce-i-link:before{content:""}.mce-i-unlink:before{content:""}.mce-i-anchor:before{content:""}.mce-i-image:before{content:""}.mce-i-media:before{content:""}.mce-i-help:before{content:""}.mce-i-code:before{content:""}.mce-i-inserttime:before{content:""}.mce-i-preview:before{content:""}.mce-i-forecolor:before,.mce-i-backcolor:before{content:""}.mce-i-table:before{content:""}.mce-i-hr:before{content:""}.mce-i-removeformat:before{content:""}.mce-i-subscript:before{content:""}.mce-i-superscript:before{content:""}.mce-i-charmap:before{content:""}.mce-i-emoticons:before{content:""}.mce-i-print:before{content:""}.mce-i-fullscreen:before{content:""}.mce-i-spellchecker:before{content:""}.mce-i-nonbreaking:before{content:""}.mce-i-template:before{content:""}.mce-i-pagebreak:before{content:""}.mce-i-restoredraft:before{content:""}.mce-i-untitled:before{content:""}.mce-i-bold:before{content:""}.mce-i-italic:before{content:""}.mce-i-underline:before{content:""}.mce-i-strikethrough:before{content:""}.mce-i-visualchars:before,.mce-i-visualblocks:before{content:""}.mce-i-ltr:before{content:""}.mce-i-rtl:before{content:""}.mce-i-copy:before{content:""}.mce-i-resize:before{content:""}.mce-i-browse:before{content:""}.mce-i-pastetext:before{content:""}.mce-i-checkbox:before{content:""}.mce-i-selected{visibility:hidden}.mce-i-selected:before{content:""}i.mce-i-backcolor{background:#bbb}#growls{z-index:50000;position:fixed}#growls.default{top:100px;right:10px}#growls.tl{top:10px;left:10px}#growls.tr{top:10px;right:10px}#growls.bl{bottom:10px;left:10px}#growls.br{bottom:10px;right:10px}.growl{opacity:1;position:relative;-webkit-border-radius:4px;border-radius:4px;-webkit-transition:all .4s ease-in-out;-o-transition:all .4s ease-in-out;transition:all .4s ease-in-out}.growl.growl-incoming{opacity:0}.growl.growl-outgoing{opacity:0}.growl.growl-small{width:200px;padding:5px;margin:5px}.growl.growl-medium{width:250px;padding:10px;margin:10px}.growl.growl-large{width:300px;padding:15px;margin:15px}.growl.growl-default{color:#FFF;background:gray}.growl.growl-error{color:#fff;background:rgba(224,143,149,0.8)}.growl.growl-notice{color:#fff;background:rgba(114,194,121,0.8)}.growl.growl-warning{color:#fff;background:rgba(251,187,34,0.8)}.growl .growl-close{cursor:pointer;font-size:14px;line-height:18px;font-weight:normal;font-family:helvetica,verdana,sans-serif;float:right}.growl .growl-title{font-size:18px;line-height:24px}.growl .growl-message{font-size:14px;line-height:18px}.chosen-select{width:100%}.chosen-select-deselect{width:100%}.chosen-container{display:inline-block;font-size:12px;position:relative;vertical-align:middle}.chosen-container .chosen-drop{background:#F5F8F9;border:1px solid #999;border-top-color:#d9d9d9;margin-top:-1px;position:absolute;top:100%;z-index:1060;left:-9000px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;-webkit-box-shadow:0 8px 8px rgba(0,0,0,0.25);box-shadow:0 8px 8px rgba(0,0,0,0.25)}.chosen-container.chosen-with-drop .chosen-drop{left:0;right:0}.chosen-container .chosen-results{color:#555;max-height:240px;position:relative;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 0 0 4px;margin:0 4px 4px 0}.chosen-container .chosen-results li{display:none;line-height:1.42857;list-style:none;margin:0;padding:5px 6px}.chosen-container .chosen-results li em{background:#feffde;font-style:normal}.chosen-container .chosen-results li.group-result{display:list-item;cursor:default;color:#999;font-weight:bold}.chosen-container .chosen-results li.group-option{padding-left:15px}.chosen-container .chosen-results li.active-result{cursor:pointer;display:list-item}.chosen-container .chosen-results li.highlighted{background-color:#00aff0;color:#fff}.chosen-container .chosen-results li.highlighted em{background:transparent}.chosen-container .chosen-results li.disabled-result{display:list-item;color:#999}.chosen-container .chosen-results .no-results{background:#eee;display:list-item}.chosen-container .chosen-results-scroll{background:#fff;margin:0 4px;position:absolute;text-align:center;width:321px;z-index:1}.chosen-container .chosen-results-scroll span{display:inline-block;height:1.42857;text-indent:-5000px;width:9px}.chosen-container .chosen-results-scroll-down{bottom:0}.chosen-container .chosen-results-scroll-down span{background:url("../img/chosen-sprite.png") no-repeat -4px -3px}.chosen-container .chosen-results-scroll-up span{background:url("../img/chosen-sprite.png") no-repeat -22px -3px}.chosen-container-single .chosen-single{background-color:#F5F8F9;border:1px solid #C7D6DB;color:#555;display:block;height:31px;overflow:hidden;line-height:31px;position:relative;text-decoration:none;white-space:nowrap;padding:0 0 0 8px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-border-radius:3px;border-radius:3px}.chosen-container-single .chosen-single:hover{text-decoration:none;cursor:pointer}.chosen-container-single .chosen-single:span{display:block;margin-right:26px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chosen-container-single .chosen-single:abbr{background:url("../img/chosen-sprite.png") right top no-repeat;display:block;font-size:1px;height:10px;position:absolute;top:10.5px;width:12px;right:26px}.chosen-container-single .chosen-single:abbr:hover{background-position:right -11px}.chosen-container-single .chosen-single.chosen-disabled .chosen-single abbr:hover{background-position:right 2px}.chosen-container-single .chosen-single div{display:block;height:100%;position:absolute;top:0;width:18px;right:0}.chosen-container-single .chosen-single div b{font-size:14px;text-align:center;line-height:28px;display:block;height:100%;width:100%}.chosen-container-single .chosen-default{color:#999}.chosen-container-single .chosen-search{margin:0;padding:3px 4px;position:relative;white-space:nowrap;z-index:1000;overflow:hidden}.chosen-container-single .chosen-search input{border:1px solid #C7D6DB;margin:1px 0;width:100%;padding:4px 20px 4px 4px;border-top-right-radius:3px;border-top-left-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.chosen-container-single .chosen-search:before{color:#00aff0;position:absolute;font-size:14px;text-align:center;display:block;line-height:22px;height:22px;width:22px;top:7px;right:7px}.chosen-container-single .chosen-drop{margin-top:-1px;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.chosen-container-single-nosearch .chosen-search input{position:absolute;left:-9000px}.chosen-container-single-nosearch .chosen-search:before{visibility:hidden}.chosen-container-multi .chosen-choices{background-color:#F5F8F9;border:1px solid #C7D6DB;cursor:text;height:auto !important;height:1%;margin:0;overflow:hidden;padding:0;position:relative;border-top-right-radius:0;border-top-left-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.chosen-container-multi .chosen-choices li{list-style:none;float:left}.chosen-container-multi .chosen-choices .search-field{margin:0;padding:0;white-space:nowrap}.chosen-container-multi .chosen-choices .search-field input{background:transparent !important;border:0 !important;color:#555;height:29px;width:100% !important;margin:0;padding:4px;outline:0;-webkit-box-shadow:none;box-shadow:none}.chosen-container-multi .chosen-choices .search-field .default{color:#999}.chosen-container-multi .chosen-choices .search-choice{-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;background-color:#eee;border:1px solid #C7D6DB;color:#333;cursor:default;line-height:13px;position:relative;margin:6px 0 3px 5px;padding:3px 20px 3px 5px;border-top-right-radius:3px;border-top-left-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;background-image:-webkit-linear-gradient(top, #fff 0%, #eee 100%);background-image:-o-linear-gradient(top, #fff 0%, #eee 100%);background-image:linear-gradient(to bottom, #ffffff 0%,#eeeeee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.chosen-container-multi .chosen-choices .search-choice .search-choice-close{background:url("../img/chosen-sprite.png") right top no-repeat;display:block;font-size:1px;height:10px;position:absolute;top:5px;width:12px;right:4px}.chosen-container-multi .chosen-choices .search-choice .search-choice-close:hover{background-position:right -11px}.chosen-container-multi .chosen-choices .search-choice-focus{background:#d4d4d4}.chosen-container-multi .chosen-choices .search-choice-focus .search-choice-close{background-position:right -11px}.chosen-container-multi .chosen-results{margin:0;padding:0}.chosen-container-multi .chosen-drop .result-selected{display:none}.chosen-container-active .chosen-single{border:1px solid rgba(82,168,236,0.8);-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.075) inset,0 0 8px rgba(82,168,236,0.6);box-shadow:0 1px 1px rgba(0,0,0,0.075) inset,0 0 8px rgba(82,168,236,0.6);-webkit-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}.chosen-container-active.chosen-with-drop .chosen-single{background-color:#eee;border:1px solid rgba(82,168,236,0.8);-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.075) inset,0 0 8px rgba(82,168,236,0.6);box-shadow:0 1px 1px rgba(0,0,0,0.075) inset,0 0 8px rgba(82,168,236,0.6);-webkit-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}.chosen-container-active.chosen-with-drop .chosen-single div{background:transparent;border-left:none}.chosen-container-active.chosen-with-drop .chosen-single div b{background-position:-18px 7px}.chosen-container-active .chosen-choices{border:1px solid rgba(82,168,236,0.8);border-bottom-right-radius:0;border-bottom-left-radius:0;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.075) inset,0 0 8px rgba(82,168,236,0.6);box-shadow:0 1px 1px rgba(0,0,0,0.075) inset,0 0 8px rgba(82,168,236,0.6);-webkit-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}.chosen-container-active .chosen-choices .search-field input{color:#111 !important}.chosen-disabled{cursor:default;opacity:.5 !important}.chosen-disabled .chosen-single{cursor:default}.chosen-disabled .chosen-choices .search-choice .search-choice-close{cursor:default}.chosen-rtl{text-align:right}.chosen-rtl .chosen-single{padding:0 8px 0 0;overflow:visible}.chosen-rtl .chosen-single span{margin-left:26px;margin-right:0;direction:rtl}.chosen-rtl .chosen-single div{left:7px;right:auto}.chosen-rtl .chosen-single abbr{left:26px;right:auto}.chosen-rtl .chosen-choices .search-field input{direction:rtl}.chosen-rtl .chosen-choices li{float:right}.chosen-rtl .chosen-choices .search-choice{margin:6px 5px 3px 0;padding:3px 5px 3px 19px}.chosen-rtl .chosen-choices .search-choice .search-choice-close{background-position:right top;left:4px;right:auto}.chosen-rtl.chosen-container-single .chosen-results{margin:0 0 4px 4px;padding:0 4px 0 0}.chosen-rtl .chosen-results .group-option{padding-left:0;padding-right:15px}.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div{border-right:none}.chosen-rtl .chosen-search input{background:url("../img/chosen-sprite.png") no-repeat -28px -20px,#F5F8F9;direction:rtl;padding:4px 5px 4px 20px}/*! diff --git a/admin/themes/default/css/admin-theme_rtl.css b/admin-dev/themes/default/css/admin-theme_rtl.css similarity index 100% rename from admin/themes/default/css/admin-theme_rtl.css rename to admin-dev/themes/default/css/admin-theme_rtl.css diff --git a/admin/themes/default/css/index.php b/admin-dev/themes/default/css/index.php similarity index 100% rename from admin/themes/default/css/index.php rename to admin-dev/themes/default/css/index.php diff --git a/admin/themes/default/css/overrides.css b/admin-dev/themes/default/css/overrides.css similarity index 100% rename from admin/themes/default/css/overrides.css rename to admin-dev/themes/default/css/overrides.css diff --git a/admin/themes/default/css/partials/index.php b/admin-dev/themes/default/css/partials/index.php similarity index 100% rename from admin/themes/default/css/partials/index.php rename to admin-dev/themes/default/css/partials/index.php diff --git a/admin/themes/default/css/partials/ndv3.css b/admin-dev/themes/default/css/partials/ndv3.css similarity index 100% rename from admin/themes/default/css/partials/ndv3.css rename to admin-dev/themes/default/css/partials/ndv3.css diff --git a/admin/themes/default/css/schemes/admin-theme-blue.css b/admin-dev/themes/default/css/schemes/admin-theme-blue.css similarity index 100% rename from admin/themes/default/css/schemes/admin-theme-blue.css rename to admin-dev/themes/default/css/schemes/admin-theme-blue.css diff --git a/admin/themes/default/css/schemes/admin-theme-contrast.css b/admin-dev/themes/default/css/schemes/admin-theme-contrast.css similarity index 100% rename from admin/themes/default/css/schemes/admin-theme-contrast.css rename to admin-dev/themes/default/css/schemes/admin-theme-contrast.css diff --git a/admin/themes/default/css/schemes/admin-theme-flex.css b/admin-dev/themes/default/css/schemes/admin-theme-flex.css similarity index 100% rename from admin/themes/default/css/schemes/admin-theme-flex.css rename to admin-dev/themes/default/css/schemes/admin-theme-flex.css diff --git a/admin/themes/default/css/schemes/admin-theme-fruit.css b/admin-dev/themes/default/css/schemes/admin-theme-fruit.css similarity index 100% rename from admin/themes/default/css/schemes/admin-theme-fruit.css rename to admin-dev/themes/default/css/schemes/admin-theme-fruit.css diff --git a/admin/themes/default/css/schemes/admin-theme-prune.css b/admin-dev/themes/default/css/schemes/admin-theme-prune.css similarity index 100% rename from admin/themes/default/css/schemes/admin-theme-prune.css rename to admin-dev/themes/default/css/schemes/admin-theme-prune.css diff --git a/admin/themes/default/css/schemes/index.php b/admin-dev/themes/default/css/schemes/index.php similarity index 100% rename from admin/themes/default/css/schemes/index.php rename to admin-dev/themes/default/css/schemes/index.php diff --git a/admin/themes/default/css/schemes_rtl/admin-theme-blue_rtl.css b/admin-dev/themes/default/css/schemes_rtl/admin-theme-blue_rtl.css similarity index 100% rename from admin/themes/default/css/schemes_rtl/admin-theme-blue_rtl.css rename to admin-dev/themes/default/css/schemes_rtl/admin-theme-blue_rtl.css diff --git a/admin/themes/default/css/schemes_rtl/admin-theme-contrast_rtl.css b/admin-dev/themes/default/css/schemes_rtl/admin-theme-contrast_rtl.css similarity index 100% rename from admin/themes/default/css/schemes_rtl/admin-theme-contrast_rtl.css rename to admin-dev/themes/default/css/schemes_rtl/admin-theme-contrast_rtl.css diff --git a/admin/themes/default/css/schemes_rtl/admin-theme-flex_rtl.css b/admin-dev/themes/default/css/schemes_rtl/admin-theme-flex_rtl.css similarity index 100% rename from admin/themes/default/css/schemes_rtl/admin-theme-flex_rtl.css rename to admin-dev/themes/default/css/schemes_rtl/admin-theme-flex_rtl.css diff --git a/admin/themes/default/css/schemes_rtl/admin-theme-fruit_rtl.css b/admin-dev/themes/default/css/schemes_rtl/admin-theme-fruit_rtl.css similarity index 100% rename from admin/themes/default/css/schemes_rtl/admin-theme-fruit_rtl.css rename to admin-dev/themes/default/css/schemes_rtl/admin-theme-fruit_rtl.css diff --git a/admin/themes/default/css/schemes_rtl/admin-theme-prune_rtl.css b/admin-dev/themes/default/css/schemes_rtl/admin-theme-prune_rtl.css similarity index 100% rename from admin/themes/default/css/schemes_rtl/admin-theme-prune_rtl.css rename to admin-dev/themes/default/css/schemes_rtl/admin-theme-prune_rtl.css diff --git a/admin/themes/default/css/schemes_rtl/index.php b/admin-dev/themes/default/css/schemes_rtl/index.php similarity index 100% rename from admin/themes/default/css/schemes_rtl/index.php rename to admin-dev/themes/default/css/schemes_rtl/index.php diff --git a/admin/themes/default/css/vendor/font-awesome/LICENSE b/admin-dev/themes/default/css/vendor/font-awesome/LICENSE similarity index 100% rename from admin/themes/default/css/vendor/font-awesome/LICENSE rename to admin-dev/themes/default/css/vendor/font-awesome/LICENSE diff --git a/admin/themes/default/css/vendor/font-awesome/font-awesome.css b/admin-dev/themes/default/css/vendor/font-awesome/font-awesome.css similarity index 100% rename from admin/themes/default/css/vendor/font-awesome/font-awesome.css rename to admin-dev/themes/default/css/vendor/font-awesome/font-awesome.css diff --git a/admin/themes/default/css/vendor/index.php b/admin-dev/themes/default/css/vendor/index.php similarity index 100% rename from admin/themes/default/css/vendor/index.php rename to admin-dev/themes/default/css/vendor/index.php diff --git a/admin/themes/default/css/vendor/nv.d3.css b/admin-dev/themes/default/css/vendor/nv.d3.css similarity index 100% rename from admin/themes/default/css/vendor/nv.d3.css rename to admin-dev/themes/default/css/vendor/nv.d3.css diff --git a/admin/themes/default/fonts/FontAwesome.otf b/admin-dev/themes/default/fonts/FontAwesome.otf similarity index 100% rename from admin/themes/default/fonts/FontAwesome.otf rename to admin-dev/themes/default/fonts/FontAwesome.otf diff --git a/admin/themes/default/fonts/fontawesome-webfont.eot b/admin-dev/themes/default/fonts/fontawesome-webfont.eot similarity index 100% rename from admin/themes/default/fonts/fontawesome-webfont.eot rename to admin-dev/themes/default/fonts/fontawesome-webfont.eot diff --git a/admin/themes/default/fonts/fontawesome-webfont.svg b/admin-dev/themes/default/fonts/fontawesome-webfont.svg similarity index 100% rename from admin/themes/default/fonts/fontawesome-webfont.svg rename to admin-dev/themes/default/fonts/fontawesome-webfont.svg diff --git a/admin/themes/default/fonts/fontawesome-webfont.ttf b/admin-dev/themes/default/fonts/fontawesome-webfont.ttf similarity index 100% rename from admin/themes/default/fonts/fontawesome-webfont.ttf rename to admin-dev/themes/default/fonts/fontawesome-webfont.ttf diff --git a/admin/themes/default/fonts/fontawesome-webfont.woff b/admin-dev/themes/default/fonts/fontawesome-webfont.woff similarity index 100% rename from admin/themes/default/fonts/fontawesome-webfont.woff rename to admin-dev/themes/default/fonts/fontawesome-webfont.woff diff --git a/admin/themes/default/fonts/fontawesome-webfont.woff2 b/admin-dev/themes/default/fonts/fontawesome-webfont.woff2 similarity index 100% rename from admin/themes/default/fonts/fontawesome-webfont.woff2 rename to admin-dev/themes/default/fonts/fontawesome-webfont.woff2 diff --git a/admin/themes/default/fonts/index.php b/admin-dev/themes/default/fonts/index.php similarity index 100% rename from admin/themes/default/fonts/index.php rename to admin-dev/themes/default/fonts/index.php diff --git a/admin/themes/default/img/ajax-loader.gif b/admin-dev/themes/default/img/ajax-loader.gif similarity index 100% rename from admin/themes/default/img/ajax-loader.gif rename to admin-dev/themes/default/img/ajax-loader.gif diff --git a/admin/themes/default/img/bg-button-degrade.png b/admin-dev/themes/default/img/bg-button-degrade.png similarity index 100% rename from admin/themes/default/img/bg-button-degrade.png rename to admin-dev/themes/default/img/bg-button-degrade.png diff --git a/admin/themes/default/img/bg-degrade-table.png b/admin-dev/themes/default/img/bg-degrade-table.png similarity index 100% rename from admin/themes/default/img/bg-degrade-table.png rename to admin-dev/themes/default/img/bg-degrade-table.png diff --git a/admin/themes/default/img/bg-lang.png b/admin-dev/themes/default/img/bg-lang.png similarity index 100% rename from admin/themes/default/img/bg-lang.png rename to admin-dev/themes/default/img/bg-lang.png diff --git a/admin/themes/default/img/bg-quick.png b/admin-dev/themes/default/img/bg-quick.png similarity index 100% rename from admin/themes/default/img/bg-quick.png rename to admin-dev/themes/default/img/bg-quick.png diff --git a/admin/themes/default/img/bg-submenu.png b/admin-dev/themes/default/img/bg-submenu.png similarity index 100% rename from admin/themes/default/img/bg-submenu.png rename to admin-dev/themes/default/img/bg-submenu.png diff --git a/admin/themes/default/img/bg-subtab.png b/admin-dev/themes/default/img/bg-subtab.png similarity index 100% rename from admin/themes/default/img/bg-subtab.png rename to admin-dev/themes/default/img/bg-subtab.png diff --git a/admin/themes/default/img/bg-tab.png b/admin-dev/themes/default/img/bg-tab.png similarity index 100% rename from admin/themes/default/img/bg-tab.png rename to admin-dev/themes/default/img/bg-tab.png diff --git a/admin/themes/default/img/bg-top.png b/admin-dev/themes/default/img/bg-top.png similarity index 100% rename from admin/themes/default/img/bg-top.png rename to admin-dev/themes/default/img/bg-top.png diff --git a/admin/themes/default/img/bg_loaderSpace.png b/admin-dev/themes/default/img/bg_loaderSpace.png similarity index 100% rename from admin/themes/default/img/bg_loaderSpace.png rename to admin-dev/themes/default/img/bg_loaderSpace.png diff --git a/admin/themes/default/img/bullet_orange.png b/admin-dev/themes/default/img/bullet_orange.png similarity index 100% rename from admin/themes/default/img/bullet_orange.png rename to admin-dev/themes/default/img/bullet_orange.png diff --git a/admin/themes/default/img/button-bg.png b/admin-dev/themes/default/img/button-bg.png similarity index 100% rename from admin/themes/default/img/button-bg.png rename to admin-dev/themes/default/img/button-bg.png diff --git a/admin/themes/default/img/chosen-sprite.png b/admin-dev/themes/default/img/chosen-sprite.png similarity index 100% rename from admin/themes/default/img/chosen-sprite.png rename to admin-dev/themes/default/img/chosen-sprite.png diff --git a/admin/themes/default/img/chosen-sprite@2x.png b/admin-dev/themes/default/img/chosen-sprite@2x.png similarity index 100% rename from admin/themes/default/img/chosen-sprite@2x.png rename to admin-dev/themes/default/img/chosen-sprite@2x.png diff --git a/admin/themes/default/img/dashboard_loading.gif b/admin-dev/themes/default/img/dashboard_loading.gif similarity index 100% rename from admin/themes/default/img/dashboard_loading.gif rename to admin-dev/themes/default/img/dashboard_loading.gif diff --git a/admin/themes/default/img/export-csv.png b/admin-dev/themes/default/img/export-csv.png similarity index 100% rename from admin/themes/default/img/export-csv.png rename to admin-dev/themes/default/img/export-csv.png diff --git a/admin/themes/default/img/footer-bg.png b/admin-dev/themes/default/img/footer-bg.png similarity index 100% rename from admin/themes/default/img/footer-bg.png rename to admin-dev/themes/default/img/footer-bg.png diff --git a/admin/themes/default/img/header_module.png b/admin-dev/themes/default/img/header_module.png similarity index 100% rename from admin/themes/default/img/header_module.png rename to admin-dev/themes/default/img/header_module.png diff --git a/admin/themes/default/img/icon-attention.png b/admin-dev/themes/default/img/icon-attention.png similarity index 100% rename from admin/themes/default/img/icon-attention.png rename to admin-dev/themes/default/img/icon-attention.png diff --git a/admin/themes/default/img/icon-cancel.png b/admin-dev/themes/default/img/icon-cancel.png similarity index 100% rename from admin/themes/default/img/icon-cancel.png rename to admin-dev/themes/default/img/icon-cancel.png diff --git a/admin/themes/default/img/icon-info.png b/admin-dev/themes/default/img/icon-info.png similarity index 100% rename from admin/themes/default/img/icon-info.png rename to admin-dev/themes/default/img/icon-info.png diff --git a/admin/themes/default/img/icon-info.svg b/admin-dev/themes/default/img/icon-info.svg similarity index 100% rename from admin/themes/default/img/icon-info.svg rename to admin-dev/themes/default/img/icon-info.svg diff --git a/admin/themes/default/img/icon-multishop.png b/admin-dev/themes/default/img/icon-multishop.png similarity index 100% rename from admin/themes/default/img/icon-multishop.png rename to admin-dev/themes/default/img/icon-multishop.png diff --git a/admin/themes/default/img/icon-search.png b/admin-dev/themes/default/img/icon-search.png similarity index 100% rename from admin/themes/default/img/icon-search.png rename to admin-dev/themes/default/img/icon-search.png diff --git a/admin/themes/default/img/icon-search2.png b/admin-dev/themes/default/img/icon-search2.png similarity index 100% rename from admin/themes/default/img/icon-search2.png rename to admin-dev/themes/default/img/icon-search2.png diff --git a/admin/themes/default/img/icon-sprites-title.png b/admin-dev/themes/default/img/icon-sprites-title.png similarity index 100% rename from admin/themes/default/img/icon-sprites-title.png rename to admin-dev/themes/default/img/icon-sprites-title.png diff --git a/admin/themes/default/img/icon-valid-green.png b/admin-dev/themes/default/img/icon-valid-green.png similarity index 100% rename from admin/themes/default/img/icon-valid-green.png rename to admin-dev/themes/default/img/icon-valid-green.png diff --git a/admin/themes/default/img/index.php b/admin-dev/themes/default/img/index.php similarity index 100% rename from admin/themes/default/img/index.php rename to admin-dev/themes/default/img/index.php diff --git a/admin/themes/default/img/live_edit.png b/admin-dev/themes/default/img/live_edit.png similarity index 100% rename from admin/themes/default/img/live_edit.png rename to admin-dev/themes/default/img/live_edit.png diff --git a/admin/themes/default/img/loader.gif b/admin-dev/themes/default/img/loader.gif similarity index 100% rename from admin/themes/default/img/loader.gif rename to admin-dev/themes/default/img/loader.gif diff --git a/admin/themes/default/img/lock.png b/admin-dev/themes/default/img/lock.png similarity index 100% rename from admin/themes/default/img/lock.png rename to admin-dev/themes/default/img/lock.png diff --git a/admin/themes/default/img/logout.png b/admin-dev/themes/default/img/logout.png similarity index 100% rename from admin/themes/default/img/logout.png rename to admin-dev/themes/default/img/logout.png diff --git a/admin/themes/default/img/module-logout.png b/admin-dev/themes/default/img/module-logout.png similarity index 100% rename from admin/themes/default/img/module-logout.png rename to admin-dev/themes/default/img/module-logout.png diff --git a/admin/themes/default/img/module-profile.png b/admin-dev/themes/default/img/module-profile.png similarity index 100% rename from admin/themes/default/img/module-profile.png rename to admin-dev/themes/default/img/module-profile.png diff --git a/admin/themes/default/img/modules_list_button.png b/admin-dev/themes/default/img/modules_list_button.png similarity index 100% rename from admin/themes/default/img/modules_list_button.png rename to admin-dev/themes/default/img/modules_list_button.png diff --git a/admin/themes/default/img/modules_view_layout_sidebar.png b/admin-dev/themes/default/img/modules_view_layout_sidebar.png similarity index 100% rename from admin/themes/default/img/modules_view_layout_sidebar.png rename to admin-dev/themes/default/img/modules_view_layout_sidebar.png diff --git a/admin/themes/default/img/modules_view_layout_sidebar_grey.png b/admin-dev/themes/default/img/modules_view_layout_sidebar_grey.png similarity index 100% rename from admin/themes/default/img/modules_view_layout_sidebar_grey.png rename to admin-dev/themes/default/img/modules_view_layout_sidebar_grey.png diff --git a/admin/themes/default/img/modules_view_table_select_row.png b/admin-dev/themes/default/img/modules_view_table_select_row.png similarity index 100% rename from admin/themes/default/img/modules_view_table_select_row.png rename to admin-dev/themes/default/img/modules_view_table_select_row.png diff --git a/admin/themes/default/img/modules_view_table_select_row_grey.png b/admin-dev/themes/default/img/modules_view_table_select_row_grey.png similarity index 100% rename from admin/themes/default/img/modules_view_table_select_row_grey.png rename to admin-dev/themes/default/img/modules_view_table_select_row_grey.png diff --git a/admin/themes/default/img/news-bg.gif b/admin-dev/themes/default/img/news-bg.gif similarity index 100% rename from admin/themes/default/img/news-bg.gif rename to admin-dev/themes/default/img/news-bg.gif diff --git a/admin/themes/default/img/notif_customer.png b/admin-dev/themes/default/img/notif_customer.png similarity index 100% rename from admin/themes/default/img/notif_customer.png rename to admin-dev/themes/default/img/notif_customer.png diff --git a/admin/themes/default/img/notif_message.png b/admin-dev/themes/default/img/notif_message.png similarity index 100% rename from admin/themes/default/img/notif_message.png rename to admin-dev/themes/default/img/notif_message.png diff --git a/admin/themes/default/img/notif_order.png b/admin-dev/themes/default/img/notif_order.png similarity index 100% rename from admin/themes/default/img/notif_order.png rename to admin-dev/themes/default/img/notif_order.png diff --git a/admin/themes/default/img/patterns/bedge_grunge.png b/admin-dev/themes/default/img/patterns/bedge_grunge.png similarity index 100% rename from admin/themes/default/img/patterns/bedge_grunge.png rename to admin-dev/themes/default/img/patterns/bedge_grunge.png diff --git a/admin/themes/default/img/patterns/classy_fabric.png b/admin-dev/themes/default/img/patterns/classy_fabric.png similarity index 100% rename from admin/themes/default/img/patterns/classy_fabric.png rename to admin-dev/themes/default/img/patterns/classy_fabric.png diff --git a/admin/themes/default/img/patterns/index.php b/admin-dev/themes/default/img/patterns/index.php similarity index 100% rename from admin/themes/default/img/patterns/index.php rename to admin-dev/themes/default/img/patterns/index.php diff --git a/admin/themes/default/img/play.png b/admin-dev/themes/default/img/play.png similarity index 100% rename from admin/themes/default/img/play.png rename to admin-dev/themes/default/img/play.png diff --git a/admin/themes/default/img/prestashop-addons-logo.png b/admin-dev/themes/default/img/prestashop-addons-logo.png similarity index 100% rename from admin/themes/default/img/prestashop-addons-logo.png rename to admin-dev/themes/default/img/prestashop-addons-logo.png diff --git a/admin/themes/default/img/process-icon-addProduct.png b/admin-dev/themes/default/img/process-icon-addProduct.png similarity index 100% rename from admin/themes/default/img/process-icon-addProduct.png rename to admin-dev/themes/default/img/process-icon-addProduct.png diff --git a/admin/themes/default/img/process-icon-back.png b/admin-dev/themes/default/img/process-icon-back.png similarity index 100% rename from admin/themes/default/img/process-icon-back.png rename to admin-dev/themes/default/img/process-icon-back.png diff --git a/admin/themes/default/img/process-icon-cancel.png b/admin-dev/themes/default/img/process-icon-cancel.png similarity index 100% rename from admin/themes/default/img/process-icon-cancel.png rename to admin-dev/themes/default/img/process-icon-cancel.png diff --git a/admin/themes/default/img/process-icon-delete.png b/admin-dev/themes/default/img/process-icon-delete.png similarity index 100% rename from admin/themes/default/img/process-icon-delete.png rename to admin-dev/themes/default/img/process-icon-delete.png diff --git a/admin/themes/default/img/process-icon-duplicate.png b/admin-dev/themes/default/img/process-icon-duplicate.png similarity index 100% rename from admin/themes/default/img/process-icon-duplicate.png rename to admin-dev/themes/default/img/process-icon-duplicate.png diff --git a/admin/themes/default/img/process-icon-edit.png b/admin-dev/themes/default/img/process-icon-edit.png similarity index 100% rename from admin/themes/default/img/process-icon-edit.png rename to admin-dev/themes/default/img/process-icon-edit.png diff --git a/admin/themes/default/img/process-icon-export-csv-details.png b/admin-dev/themes/default/img/process-icon-export-csv-details.png similarity index 100% rename from admin/themes/default/img/process-icon-export-csv-details.png rename to admin-dev/themes/default/img/process-icon-export-csv-details.png diff --git a/admin/themes/default/img/process-icon-export-csv.png b/admin-dev/themes/default/img/process-icon-export-csv.png similarity index 100% rename from admin/themes/default/img/process-icon-export-csv.png rename to admin-dev/themes/default/img/process-icon-export-csv.png diff --git a/admin/themes/default/img/process-icon-help-new.png b/admin-dev/themes/default/img/process-icon-help-new.png similarity index 100% rename from admin/themes/default/img/process-icon-help-new.png rename to admin-dev/themes/default/img/process-icon-help-new.png diff --git a/admin/themes/default/img/process-icon-help.png b/admin-dev/themes/default/img/process-icon-help.png similarity index 100% rename from admin/themes/default/img/process-icon-help.png rename to admin-dev/themes/default/img/process-icon-help.png diff --git a/admin/themes/default/img/process-icon-import.png b/admin-dev/themes/default/img/process-icon-import.png similarity index 100% rename from admin/themes/default/img/process-icon-import.png rename to admin-dev/themes/default/img/process-icon-import.png diff --git a/admin/themes/default/img/process-icon-modules-list.png b/admin-dev/themes/default/img/process-icon-modules-list.png similarity index 100% rename from admin/themes/default/img/process-icon-modules-list.png rename to admin-dev/themes/default/img/process-icon-modules-list.png diff --git a/admin/themes/default/img/process-icon-new-module-addon.png b/admin-dev/themes/default/img/process-icon-new-module-addon.png similarity index 100% rename from admin/themes/default/img/process-icon-new-module-addon.png rename to admin-dev/themes/default/img/process-icon-new-module-addon.png diff --git a/admin/themes/default/img/process-icon-new-module.png b/admin-dev/themes/default/img/process-icon-new-module.png similarity index 100% rename from admin/themes/default/img/process-icon-new-module.png rename to admin-dev/themes/default/img/process-icon-new-module.png diff --git a/admin/themes/default/img/process-icon-new-url.png b/admin-dev/themes/default/img/process-icon-new-url.png similarity index 100% rename from admin/themes/default/img/process-icon-new-url.png rename to admin-dev/themes/default/img/process-icon-new-url.png diff --git a/admin/themes/default/img/process-icon-new.png b/admin-dev/themes/default/img/process-icon-new.png similarity index 100% rename from admin/themes/default/img/process-icon-new.png rename to admin-dev/themes/default/img/process-icon-new.png diff --git a/admin/themes/default/img/process-icon-partial-refund.png b/admin-dev/themes/default/img/process-icon-partial-refund.png similarity index 100% rename from admin/themes/default/img/process-icon-partial-refund.png rename to admin-dev/themes/default/img/process-icon-partial-refund.png diff --git a/admin/themes/default/img/process-icon-preview.png b/admin-dev/themes/default/img/process-icon-preview.png similarity index 100% rename from admin/themes/default/img/process-icon-preview.png rename to admin-dev/themes/default/img/process-icon-preview.png diff --git a/admin/themes/default/img/process-icon-refresh-cache.png b/admin-dev/themes/default/img/process-icon-refresh-cache.png similarity index 100% rename from admin/themes/default/img/process-icon-refresh-cache.png rename to admin-dev/themes/default/img/process-icon-refresh-cache.png diff --git a/admin/themes/default/img/process-icon-refresh-index.png b/admin-dev/themes/default/img/process-icon-refresh-index.png similarity index 100% rename from admin/themes/default/img/process-icon-refresh-index.png rename to admin-dev/themes/default/img/process-icon-refresh-index.png diff --git a/admin/themes/default/img/process-icon-save-and-stay.png b/admin-dev/themes/default/img/process-icon-save-and-stay.png similarity index 100% rename from admin/themes/default/img/process-icon-save-and-stay.png rename to admin-dev/themes/default/img/process-icon-save-and-stay.png diff --git a/admin/themes/default/img/process-icon-save-calendar.png b/admin-dev/themes/default/img/process-icon-save-calendar.png similarity index 100% rename from admin/themes/default/img/process-icon-save-calendar.png rename to admin-dev/themes/default/img/process-icon-save-calendar.png diff --git a/admin/themes/default/img/process-icon-save.png b/admin-dev/themes/default/img/process-icon-save.png similarity index 100% rename from admin/themes/default/img/process-icon-save.png rename to admin-dev/themes/default/img/process-icon-save.png diff --git a/admin/themes/default/img/process-icon-standard-refund.png b/admin-dev/themes/default/img/process-icon-standard-refund.png similarity index 100% rename from admin/themes/default/img/process-icon-standard-refund.png rename to admin-dev/themes/default/img/process-icon-standard-refund.png diff --git a/admin/themes/default/img/process-icon-stats.png b/admin-dev/themes/default/img/process-icon-stats.png similarity index 100% rename from admin/themes/default/img/process-icon-stats.png rename to admin-dev/themes/default/img/process-icon-stats.png diff --git a/admin/themes/default/img/qloapps-back-office-header.png b/admin-dev/themes/default/img/qloapps-back-office-header.png similarity index 100% rename from admin/themes/default/img/qloapps-back-office-header.png rename to admin-dev/themes/default/img/qloapps-back-office-header.png diff --git a/admin/themes/default/img/searchbar.png b/admin-dev/themes/default/img/searchbar.png similarity index 100% rename from admin/themes/default/img/searchbar.png rename to admin-dev/themes/default/img/searchbar.png diff --git a/admin/themes/default/img/searchbutton.png b/admin-dev/themes/default/img/searchbutton.png similarity index 100% rename from admin/themes/default/img/searchbutton.png rename to admin-dev/themes/default/img/searchbutton.png diff --git a/admin/themes/default/img/select2-spinner.gif b/admin-dev/themes/default/img/select2-spinner.gif similarity index 100% rename from admin/themes/default/img/select2-spinner.gif rename to admin-dev/themes/default/img/select2-spinner.gif diff --git a/admin/themes/default/img/select2.png b/admin-dev/themes/default/img/select2.png similarity index 100% rename from admin/themes/default/img/select2.png rename to admin-dev/themes/default/img/select2.png diff --git a/admin/themes/default/img/select2x2.png b/admin-dev/themes/default/img/select2x2.png similarity index 100% rename from admin/themes/default/img/select2x2.png rename to admin-dev/themes/default/img/select2x2.png diff --git a/admin/themes/default/img/separator.png b/admin-dev/themes/default/img/separator.png similarity index 100% rename from admin/themes/default/img/separator.png rename to admin-dev/themes/default/img/separator.png diff --git a/admin/themes/default/img/separator_subnav.png b/admin-dev/themes/default/img/separator_subnav.png similarity index 100% rename from admin/themes/default/img/separator_subnav.png rename to admin-dev/themes/default/img/separator_subnav.png diff --git a/admin/themes/default/img/tab_right.gif b/admin-dev/themes/default/img/tab_right.gif similarity index 100% rename from admin/themes/default/img/tab_right.gif rename to admin-dev/themes/default/img/tab_right.gif diff --git a/admin/themes/default/img/thead.png b/admin-dev/themes/default/img/thead.png similarity index 100% rename from admin/themes/default/img/thead.png rename to admin-dev/themes/default/img/thead.png diff --git a/admin/themes/default/img/tree-multishop-groups.png b/admin-dev/themes/default/img/tree-multishop-groups.png similarity index 100% rename from admin/themes/default/img/tree-multishop-groups.png rename to admin-dev/themes/default/img/tree-multishop-groups.png diff --git a/admin/themes/default/img/tree-multishop-root.png b/admin-dev/themes/default/img/tree-multishop-root.png similarity index 100% rename from admin/themes/default/img/tree-multishop-root.png rename to admin-dev/themes/default/img/tree-multishop-root.png diff --git a/admin/themes/default/img/tree-multishop-shop.png b/admin-dev/themes/default/img/tree-multishop-shop.png similarity index 100% rename from admin/themes/default/img/tree-multishop-shop.png rename to admin-dev/themes/default/img/tree-multishop-shop.png diff --git a/admin/themes/default/img/tree-multishop-url.png b/admin-dev/themes/default/img/tree-multishop-url.png similarity index 100% rename from admin/themes/default/img/tree-multishop-url.png rename to admin-dev/themes/default/img/tree-multishop-url.png diff --git a/admin/themes/default/index.php b/admin-dev/themes/default/index.php similarity index 100% rename from admin/themes/default/index.php rename to admin-dev/themes/default/index.php diff --git a/admin/themes/default/js/admin-theme.js b/admin-dev/themes/default/js/admin-theme.js similarity index 99% rename from admin/themes/default/js/admin-theme.js rename to admin-dev/themes/default/js/admin-theme.js index 04acc90b5..e8c42601d 100644 --- a/admin/themes/default/js/admin-theme.js +++ b/admin-dev/themes/default/js/admin-theme.js @@ -516,4 +516,4 @@ function initTooltip($target, contentFn, items) { } }); }); -} \ No newline at end of file +} diff --git a/admin/themes/default/js/calendar.js b/admin-dev/themes/default/js/calendar.js similarity index 100% rename from admin/themes/default/js/calendar.js rename to admin-dev/themes/default/js/calendar.js diff --git a/admin/themes/default/js/date-range-picker.js b/admin-dev/themes/default/js/date-range-picker.js similarity index 100% rename from admin/themes/default/js/date-range-picker.js rename to admin-dev/themes/default/js/date-range-picker.js diff --git a/admin/themes/default/js/help.js b/admin-dev/themes/default/js/help.js similarity index 100% rename from admin/themes/default/js/help.js rename to admin-dev/themes/default/js/help.js diff --git a/admin/themes/default/js/index.php b/admin-dev/themes/default/js/index.php similarity index 100% rename from admin/themes/default/js/index.php rename to admin-dev/themes/default/js/index.php diff --git a/admin/themes/default/js/jquery.fileupload-image.js b/admin-dev/themes/default/js/jquery.fileupload-image.js similarity index 100% rename from admin/themes/default/js/jquery.fileupload-image.js rename to admin-dev/themes/default/js/jquery.fileupload-image.js diff --git a/admin/themes/default/js/jquery.fileupload-process.js b/admin-dev/themes/default/js/jquery.fileupload-process.js similarity index 100% rename from admin/themes/default/js/jquery.fileupload-process.js rename to admin-dev/themes/default/js/jquery.fileupload-process.js diff --git a/admin/themes/default/js/jquery.fileupload-validate.js b/admin-dev/themes/default/js/jquery.fileupload-validate.js similarity index 100% rename from admin/themes/default/js/jquery.fileupload-validate.js rename to admin-dev/themes/default/js/jquery.fileupload-validate.js diff --git a/admin/themes/default/js/jquery.fileupload.LICENSE b/admin-dev/themes/default/js/jquery.fileupload.LICENSE similarity index 100% rename from admin/themes/default/js/jquery.fileupload.LICENSE rename to admin-dev/themes/default/js/jquery.fileupload.LICENSE diff --git a/admin/themes/default/js/jquery.fileupload.js b/admin-dev/themes/default/js/jquery.fileupload.js similarity index 100% rename from admin/themes/default/js/jquery.fileupload.js rename to admin-dev/themes/default/js/jquery.fileupload.js diff --git a/admin/themes/default/js/jquery.iframe-transport.js b/admin-dev/themes/default/js/jquery.iframe-transport.js similarity index 100% rename from admin/themes/default/js/jquery.iframe-transport.js rename to admin-dev/themes/default/js/jquery.iframe-transport.js diff --git a/admin/themes/default/js/modernizr-loads.js b/admin-dev/themes/default/js/modernizr-loads.js similarity index 100% rename from admin/themes/default/js/modernizr-loads.js rename to admin-dev/themes/default/js/modernizr-loads.js diff --git a/admin/themes/default/js/tree.js b/admin-dev/themes/default/js/tree.js similarity index 100% rename from admin/themes/default/js/tree.js rename to admin-dev/themes/default/js/tree.js diff --git a/admin/themes/default/js/vendor/bootstrap.min.js b/admin-dev/themes/default/js/vendor/bootstrap.min.js similarity index 100% rename from admin/themes/default/js/vendor/bootstrap.min.js rename to admin-dev/themes/default/js/vendor/bootstrap.min.js diff --git a/admin/themes/default/js/vendor/bootstrap/LICENSE b/admin-dev/themes/default/js/vendor/bootstrap/LICENSE similarity index 100% rename from admin/themes/default/js/vendor/bootstrap/LICENSE rename to admin-dev/themes/default/js/vendor/bootstrap/LICENSE diff --git a/admin/themes/default/js/vendor/bootstrap/affix.js b/admin-dev/themes/default/js/vendor/bootstrap/affix.js similarity index 100% rename from admin/themes/default/js/vendor/bootstrap/affix.js rename to admin-dev/themes/default/js/vendor/bootstrap/affix.js diff --git a/admin/themes/default/js/vendor/bootstrap/alert.js b/admin-dev/themes/default/js/vendor/bootstrap/alert.js similarity index 100% rename from admin/themes/default/js/vendor/bootstrap/alert.js rename to admin-dev/themes/default/js/vendor/bootstrap/alert.js diff --git a/admin/themes/default/js/vendor/bootstrap/button.js b/admin-dev/themes/default/js/vendor/bootstrap/button.js similarity index 100% rename from admin/themes/default/js/vendor/bootstrap/button.js rename to admin-dev/themes/default/js/vendor/bootstrap/button.js diff --git a/admin/themes/default/js/vendor/bootstrap/carousel.js b/admin-dev/themes/default/js/vendor/bootstrap/carousel.js similarity index 100% rename from admin/themes/default/js/vendor/bootstrap/carousel.js rename to admin-dev/themes/default/js/vendor/bootstrap/carousel.js diff --git a/admin/themes/default/js/vendor/bootstrap/collapse.js b/admin-dev/themes/default/js/vendor/bootstrap/collapse.js similarity index 100% rename from admin/themes/default/js/vendor/bootstrap/collapse.js rename to admin-dev/themes/default/js/vendor/bootstrap/collapse.js diff --git a/admin/themes/default/js/vendor/bootstrap/dropdown.js b/admin-dev/themes/default/js/vendor/bootstrap/dropdown.js similarity index 100% rename from admin/themes/default/js/vendor/bootstrap/dropdown.js rename to admin-dev/themes/default/js/vendor/bootstrap/dropdown.js diff --git a/admin/themes/default/js/vendor/bootstrap/index.php b/admin-dev/themes/default/js/vendor/bootstrap/index.php similarity index 100% rename from admin/themes/default/js/vendor/bootstrap/index.php rename to admin-dev/themes/default/js/vendor/bootstrap/index.php diff --git a/admin/themes/default/js/vendor/bootstrap/modal.js b/admin-dev/themes/default/js/vendor/bootstrap/modal.js similarity index 100% rename from admin/themes/default/js/vendor/bootstrap/modal.js rename to admin-dev/themes/default/js/vendor/bootstrap/modal.js diff --git a/admin/themes/default/js/vendor/bootstrap/popover.js b/admin-dev/themes/default/js/vendor/bootstrap/popover.js similarity index 100% rename from admin/themes/default/js/vendor/bootstrap/popover.js rename to admin-dev/themes/default/js/vendor/bootstrap/popover.js diff --git a/admin/themes/default/js/vendor/bootstrap/scrollspy.js b/admin-dev/themes/default/js/vendor/bootstrap/scrollspy.js similarity index 100% rename from admin/themes/default/js/vendor/bootstrap/scrollspy.js rename to admin-dev/themes/default/js/vendor/bootstrap/scrollspy.js diff --git a/admin/themes/default/js/vendor/bootstrap/tab.js b/admin-dev/themes/default/js/vendor/bootstrap/tab.js similarity index 100% rename from admin/themes/default/js/vendor/bootstrap/tab.js rename to admin-dev/themes/default/js/vendor/bootstrap/tab.js diff --git a/admin/themes/default/js/vendor/bootstrap/tooltip.js b/admin-dev/themes/default/js/vendor/bootstrap/tooltip.js similarity index 100% rename from admin/themes/default/js/vendor/bootstrap/tooltip.js rename to admin-dev/themes/default/js/vendor/bootstrap/tooltip.js diff --git a/admin/themes/default/js/vendor/bootstrap/transition.js b/admin-dev/themes/default/js/vendor/bootstrap/transition.js similarity index 100% rename from admin/themes/default/js/vendor/bootstrap/transition.js rename to admin-dev/themes/default/js/vendor/bootstrap/transition.js diff --git a/admin/themes/default/js/vendor/enquire.LICENSE b/admin-dev/themes/default/js/vendor/enquire.LICENSE similarity index 100% rename from admin/themes/default/js/vendor/enquire.LICENSE rename to admin-dev/themes/default/js/vendor/enquire.LICENSE diff --git a/admin/themes/default/js/vendor/enquire.min.js b/admin-dev/themes/default/js/vendor/enquire.min.js similarity index 100% rename from admin/themes/default/js/vendor/enquire.min.js rename to admin-dev/themes/default/js/vendor/enquire.min.js diff --git a/admin/themes/default/js/vendor/index.php b/admin-dev/themes/default/js/vendor/index.php similarity index 100% rename from admin/themes/default/js/vendor/index.php rename to admin-dev/themes/default/js/vendor/index.php diff --git a/admin/themes/default/js/vendor/jquery-passy.LICENSE b/admin-dev/themes/default/js/vendor/jquery-passy.LICENSE similarity index 100% rename from admin/themes/default/js/vendor/jquery-passy.LICENSE rename to admin-dev/themes/default/js/vendor/jquery-passy.LICENSE diff --git a/admin/themes/default/js/vendor/jquery-passy.js b/admin-dev/themes/default/js/vendor/jquery-passy.js similarity index 100% rename from admin/themes/default/js/vendor/jquery-passy.js rename to admin-dev/themes/default/js/vendor/jquery-passy.js diff --git a/admin/themes/default/js/vendor/matchMedia.LICENSE b/admin-dev/themes/default/js/vendor/matchMedia.LICENSE similarity index 100% rename from admin/themes/default/js/vendor/matchMedia.LICENSE rename to admin-dev/themes/default/js/vendor/matchMedia.LICENSE diff --git a/admin/themes/default/js/vendor/matchMedia.addListener.js b/admin-dev/themes/default/js/vendor/matchMedia.addListener.js similarity index 100% rename from admin/themes/default/js/vendor/matchMedia.addListener.js rename to admin-dev/themes/default/js/vendor/matchMedia.addListener.js diff --git a/admin/themes/default/js/vendor/matchMedia.js b/admin-dev/themes/default/js/vendor/matchMedia.js similarity index 100% rename from admin/themes/default/js/vendor/matchMedia.js rename to admin-dev/themes/default/js/vendor/matchMedia.js diff --git a/admin/themes/default/js/vendor/modernizr.LICENSE b/admin-dev/themes/default/js/vendor/modernizr.LICENSE similarity index 100% rename from admin/themes/default/js/vendor/modernizr.LICENSE rename to admin-dev/themes/default/js/vendor/modernizr.LICENSE diff --git a/admin/themes/default/js/vendor/modernizr.min.js b/admin-dev/themes/default/js/vendor/modernizr.min.js similarity index 100% rename from admin/themes/default/js/vendor/modernizr.min.js rename to admin-dev/themes/default/js/vendor/modernizr.min.js diff --git a/admin/themes/default/js/vendor/moment-with-langs.min.js b/admin-dev/themes/default/js/vendor/moment-with-langs.min.js similarity index 100% rename from admin/themes/default/js/vendor/moment-with-langs.min.js rename to admin-dev/themes/default/js/vendor/moment-with-langs.min.js diff --git a/admin/themes/default/js/vendor/moment.LICENSE b/admin-dev/themes/default/js/vendor/moment.LICENSE similarity index 100% rename from admin/themes/default/js/vendor/moment.LICENSE rename to admin-dev/themes/default/js/vendor/moment.LICENSE diff --git a/admin/themes/default/js/vendor/nv.d3.min.js b/admin-dev/themes/default/js/vendor/nv.d3.min.js similarity index 100% rename from admin/themes/default/js/vendor/nv.d3.min.js rename to admin-dev/themes/default/js/vendor/nv.d3.min.js diff --git a/admin/themes/default/js/vendor/nvd3.LICENSE b/admin-dev/themes/default/js/vendor/nvd3.LICENSE similarity index 100% rename from admin/themes/default/js/vendor/nvd3.LICENSE rename to admin-dev/themes/default/js/vendor/nvd3.LICENSE diff --git a/admin/themes/default/js/vendor/typeahead.LICENSE b/admin-dev/themes/default/js/vendor/typeahead.LICENSE similarity index 100% rename from admin/themes/default/js/vendor/typeahead.LICENSE rename to admin-dev/themes/default/js/vendor/typeahead.LICENSE diff --git a/admin/themes/default/js/vendor/typeahead.min.js b/admin-dev/themes/default/js/vendor/typeahead.min.js similarity index 100% rename from admin/themes/default/js/vendor/typeahead.min.js rename to admin-dev/themes/default/js/vendor/typeahead.min.js diff --git a/admin/themes/default/sass/admin-theme.sass b/admin-dev/themes/default/sass/admin-theme.sass similarity index 100% rename from admin/themes/default/sass/admin-theme.sass rename to admin-dev/themes/default/sass/admin-theme.sass diff --git a/admin/themes/default/sass/admin-theme_rtl.sass b/admin-dev/themes/default/sass/admin-theme_rtl.sass similarity index 100% rename from admin/themes/default/sass/admin-theme_rtl.sass rename to admin-dev/themes/default/sass/admin-theme_rtl.sass diff --git a/admin/themes/default/sass/controllers/_carrier-wizard.sass b/admin-dev/themes/default/sass/controllers/_carrier-wizard.sass similarity index 100% rename from admin/themes/default/sass/controllers/_carrier-wizard.sass rename to admin-dev/themes/default/sass/controllers/_carrier-wizard.sass diff --git a/admin/themes/default/sass/controllers/_customer-thread.sass b/admin-dev/themes/default/sass/controllers/_customer-thread.sass similarity index 100% rename from admin/themes/default/sass/controllers/_customer-thread.sass rename to admin-dev/themes/default/sass/controllers/_customer-thread.sass diff --git a/admin/themes/default/sass/controllers/_dashboard.sass b/admin-dev/themes/default/sass/controllers/_dashboard.sass similarity index 100% rename from admin/themes/default/sass/controllers/_dashboard.sass rename to admin-dev/themes/default/sass/controllers/_dashboard.sass diff --git a/admin/themes/default/sass/controllers/_login.sass b/admin-dev/themes/default/sass/controllers/_login.sass similarity index 100% rename from admin/themes/default/sass/controllers/_login.sass rename to admin-dev/themes/default/sass/controllers/_login.sass diff --git a/admin/themes/default/sass/controllers/_modules.sass b/admin-dev/themes/default/sass/controllers/_modules.sass similarity index 100% rename from admin/themes/default/sass/controllers/_modules.sass rename to admin-dev/themes/default/sass/controllers/_modules.sass diff --git a/admin/themes/default/sass/controllers/_modules_catalog.sass b/admin-dev/themes/default/sass/controllers/_modules_catalog.sass similarity index 100% rename from admin/themes/default/sass/controllers/_modules_catalog.sass rename to admin-dev/themes/default/sass/controllers/_modules_catalog.sass diff --git a/admin/themes/default/sass/controllers/_order.sass b/admin-dev/themes/default/sass/controllers/_order.sass similarity index 100% rename from admin/themes/default/sass/controllers/_order.sass rename to admin-dev/themes/default/sass/controllers/_order.sass diff --git a/admin/themes/default/sass/controllers/_products.sass b/admin-dev/themes/default/sass/controllers/_products.sass similarity index 100% rename from admin/themes/default/sass/controllers/_products.sass rename to admin-dev/themes/default/sass/controllers/_products.sass diff --git a/admin/themes/default/sass/controllers/_search.sass b/admin-dev/themes/default/sass/controllers/_search.sass similarity index 100% rename from admin/themes/default/sass/controllers/_search.sass rename to admin-dev/themes/default/sass/controllers/_search.sass diff --git a/admin/themes/default/sass/controllers/_themes.sass b/admin-dev/themes/default/sass/controllers/_themes.sass similarity index 100% rename from admin/themes/default/sass/controllers/_themes.sass rename to admin-dev/themes/default/sass/controllers/_themes.sass diff --git a/admin/themes/default/sass/controllers/_translations.sass b/admin-dev/themes/default/sass/controllers/_translations.sass similarity index 100% rename from admin/themes/default/sass/controllers/_translations.sass rename to admin-dev/themes/default/sass/controllers/_translations.sass diff --git a/admin/themes/default/sass/controllers/index.php b/admin-dev/themes/default/sass/controllers/index.php similarity index 100% rename from admin/themes/default/sass/controllers/index.php rename to admin-dev/themes/default/sass/controllers/index.php diff --git a/admin/themes/default/sass/index.php b/admin-dev/themes/default/sass/index.php similarity index 100% rename from admin/themes/default/sass/index.php rename to admin-dev/themes/default/sass/index.php diff --git a/admin/themes/default/sass/modules/_colors.sass b/admin-dev/themes/default/sass/modules/_colors.sass similarity index 100% rename from admin/themes/default/sass/modules/_colors.sass rename to admin-dev/themes/default/sass/modules/_colors.sass diff --git a/admin/themes/default/sass/modules/_mixins.sass b/admin-dev/themes/default/sass/modules/_mixins.sass similarity index 100% rename from admin/themes/default/sass/modules/_mixins.sass rename to admin-dev/themes/default/sass/modules/_mixins.sass diff --git a/admin/themes/default/sass/modules/_variables.sass b/admin-dev/themes/default/sass/modules/_variables.sass similarity index 100% rename from admin/themes/default/sass/modules/_variables.sass rename to admin-dev/themes/default/sass/modules/_variables.sass diff --git a/admin/themes/default/sass/modules/colors/_ambers.scss b/admin-dev/themes/default/sass/modules/colors/_ambers.scss similarity index 100% rename from admin/themes/default/sass/modules/colors/_ambers.scss rename to admin-dev/themes/default/sass/modules/colors/_ambers.scss diff --git a/admin/themes/default/sass/modules/colors/_blues.scss b/admin-dev/themes/default/sass/modules/colors/_blues.scss similarity index 100% rename from admin/themes/default/sass/modules/colors/_blues.scss rename to admin-dev/themes/default/sass/modules/colors/_blues.scss diff --git a/admin/themes/default/sass/modules/colors/_browns.scss b/admin-dev/themes/default/sass/modules/colors/_browns.scss similarity index 100% rename from admin/themes/default/sass/modules/colors/_browns.scss rename to admin-dev/themes/default/sass/modules/colors/_browns.scss diff --git a/admin/themes/default/sass/modules/colors/_grays.scss b/admin-dev/themes/default/sass/modules/colors/_grays.scss similarity index 100% rename from admin/themes/default/sass/modules/colors/_grays.scss rename to admin-dev/themes/default/sass/modules/colors/_grays.scss diff --git a/admin/themes/default/sass/modules/colors/_greens.scss b/admin-dev/themes/default/sass/modules/colors/_greens.scss similarity index 100% rename from admin/themes/default/sass/modules/colors/_greens.scss rename to admin-dev/themes/default/sass/modules/colors/_greens.scss diff --git a/admin/themes/default/sass/modules/colors/_limes.scss b/admin-dev/themes/default/sass/modules/colors/_limes.scss similarity index 100% rename from admin/themes/default/sass/modules/colors/_limes.scss rename to admin-dev/themes/default/sass/modules/colors/_limes.scss diff --git a/admin/themes/default/sass/modules/colors/_oranges.scss b/admin-dev/themes/default/sass/modules/colors/_oranges.scss similarity index 100% rename from admin/themes/default/sass/modules/colors/_oranges.scss rename to admin-dev/themes/default/sass/modules/colors/_oranges.scss diff --git a/admin/themes/default/sass/modules/colors/_peaches.scss b/admin-dev/themes/default/sass/modules/colors/_peaches.scss similarity index 100% rename from admin/themes/default/sass/modules/colors/_peaches.scss rename to admin-dev/themes/default/sass/modules/colors/_peaches.scss diff --git a/admin/themes/default/sass/modules/colors/_pinks.scss b/admin-dev/themes/default/sass/modules/colors/_pinks.scss similarity index 100% rename from admin/themes/default/sass/modules/colors/_pinks.scss rename to admin-dev/themes/default/sass/modules/colors/_pinks.scss diff --git a/admin/themes/default/sass/modules/colors/_preboot.scss b/admin-dev/themes/default/sass/modules/colors/_preboot.scss similarity index 100% rename from admin/themes/default/sass/modules/colors/_preboot.scss rename to admin-dev/themes/default/sass/modules/colors/_preboot.scss diff --git a/admin/themes/default/sass/modules/colors/_purples.scss b/admin-dev/themes/default/sass/modules/colors/_purples.scss similarity index 100% rename from admin/themes/default/sass/modules/colors/_purples.scss rename to admin-dev/themes/default/sass/modules/colors/_purples.scss diff --git a/admin/themes/default/sass/modules/colors/_reds.scss b/admin-dev/themes/default/sass/modules/colors/_reds.scss similarity index 100% rename from admin/themes/default/sass/modules/colors/_reds.scss rename to admin-dev/themes/default/sass/modules/colors/_reds.scss diff --git a/admin/themes/default/sass/modules/colors/_tans.scss b/admin-dev/themes/default/sass/modules/colors/_tans.scss similarity index 100% rename from admin/themes/default/sass/modules/colors/_tans.scss rename to admin-dev/themes/default/sass/modules/colors/_tans.scss diff --git a/admin/themes/default/sass/modules/colors/_turquoise.scss b/admin-dev/themes/default/sass/modules/colors/_turquoise.scss similarity index 100% rename from admin/themes/default/sass/modules/colors/_turquoise.scss rename to admin-dev/themes/default/sass/modules/colors/_turquoise.scss diff --git a/admin/themes/default/sass/modules/colors/_whites.scss b/admin-dev/themes/default/sass/modules/colors/_whites.scss similarity index 100% rename from admin/themes/default/sass/modules/colors/_whites.scss rename to admin-dev/themes/default/sass/modules/colors/_whites.scss diff --git a/admin/themes/default/sass/modules/colors/_yellows.scss b/admin-dev/themes/default/sass/modules/colors/_yellows.scss similarity index 100% rename from admin/themes/default/sass/modules/colors/_yellows.scss rename to admin-dev/themes/default/sass/modules/colors/_yellows.scss diff --git a/admin/themes/default/sass/modules/colors/index.php b/admin-dev/themes/default/sass/modules/colors/index.php similarity index 100% rename from admin/themes/default/sass/modules/colors/index.php rename to admin-dev/themes/default/sass/modules/colors/index.php diff --git a/admin/themes/default/sass/modules/index.php b/admin-dev/themes/default/sass/modules/index.php similarity index 100% rename from admin/themes/default/sass/modules/index.php rename to admin-dev/themes/default/sass/modules/index.php diff --git a/admin/themes/default/sass/partials/_backward.sass b/admin-dev/themes/default/sass/partials/_backward.sass similarity index 100% rename from admin/themes/default/sass/partials/_backward.sass rename to admin-dev/themes/default/sass/partials/_backward.sass diff --git a/admin/themes/default/sass/partials/_chosen.sass b/admin-dev/themes/default/sass/partials/_chosen.sass similarity index 100% rename from admin/themes/default/sass/partials/_chosen.sass rename to admin-dev/themes/default/sass/partials/_chosen.sass diff --git a/admin/themes/default/sass/partials/_commons.sass b/admin-dev/themes/default/sass/partials/_commons.sass similarity index 100% rename from admin/themes/default/sass/partials/_commons.sass rename to admin-dev/themes/default/sass/partials/_commons.sass diff --git a/admin/themes/default/sass/partials/_content.sass b/admin-dev/themes/default/sass/partials/_content.sass similarity index 100% rename from admin/themes/default/sass/partials/_content.sass rename to admin-dev/themes/default/sass/partials/_content.sass diff --git a/admin/themes/default/sass/partials/_date-picker.sass b/admin-dev/themes/default/sass/partials/_date-picker.sass similarity index 100% rename from admin/themes/default/sass/partials/_date-picker.sass rename to admin-dev/themes/default/sass/partials/_date-picker.sass diff --git a/admin/themes/default/sass/partials/_date-range-picker.sass b/admin-dev/themes/default/sass/partials/_date-range-picker.sass similarity index 100% rename from admin/themes/default/sass/partials/_date-range-picker.sass rename to admin-dev/themes/default/sass/partials/_date-range-picker.sass diff --git a/admin/themes/default/sass/partials/_footer.sass b/admin-dev/themes/default/sass/partials/_footer.sass similarity index 100% rename from admin/themes/default/sass/partials/_footer.sass rename to admin-dev/themes/default/sass/partials/_footer.sass diff --git a/admin/themes/default/sass/partials/_forms.sass b/admin-dev/themes/default/sass/partials/_forms.sass similarity index 100% rename from admin/themes/default/sass/partials/_forms.sass rename to admin-dev/themes/default/sass/partials/_forms.sass diff --git a/admin/themes/default/sass/partials/_growl.sass b/admin-dev/themes/default/sass/partials/_growl.sass similarity index 100% rename from admin/themes/default/sass/partials/_growl.sass rename to admin-dev/themes/default/sass/partials/_growl.sass diff --git a/admin/themes/default/sass/partials/_header.sass b/admin-dev/themes/default/sass/partials/_header.sass similarity index 100% rename from admin/themes/default/sass/partials/_header.sass rename to admin-dev/themes/default/sass/partials/_header.sass diff --git a/admin/themes/default/sass/partials/_icons.sass b/admin-dev/themes/default/sass/partials/_icons.sass similarity index 100% rename from admin/themes/default/sass/partials/_icons.sass rename to admin-dev/themes/default/sass/partials/_icons.sass diff --git a/admin/themes/default/sass/partials/_kpi.sass b/admin-dev/themes/default/sass/partials/_kpi.sass similarity index 100% rename from admin/themes/default/sass/partials/_kpi.sass rename to admin-dev/themes/default/sass/partials/_kpi.sass diff --git a/admin/themes/default/sass/partials/_ladda.sass b/admin-dev/themes/default/sass/partials/_ladda.sass similarity index 100% rename from admin/themes/default/sass/partials/_ladda.sass rename to admin-dev/themes/default/sass/partials/_ladda.sass diff --git a/admin/themes/default/sass/partials/_multistore.sass b/admin-dev/themes/default/sass/partials/_multistore.sass similarity index 100% rename from admin/themes/default/sass/partials/_multistore.sass rename to admin-dev/themes/default/sass/partials/_multistore.sass diff --git a/admin/themes/default/sass/partials/_nav.sass b/admin-dev/themes/default/sass/partials/_nav.sass similarity index 100% rename from admin/themes/default/sass/partials/_nav.sass rename to admin-dev/themes/default/sass/partials/_nav.sass diff --git a/admin/themes/default/sass/partials/_print.sass b/admin-dev/themes/default/sass/partials/_print.sass similarity index 100% rename from admin/themes/default/sass/partials/_print.sass rename to admin-dev/themes/default/sass/partials/_print.sass diff --git a/admin/themes/default/sass/partials/_product.sass b/admin-dev/themes/default/sass/partials/_product.sass similarity index 100% rename from admin/themes/default/sass/partials/_product.sass rename to admin-dev/themes/default/sass/partials/_product.sass diff --git a/admin/themes/default/sass/partials/_rtl.sass b/admin-dev/themes/default/sass/partials/_rtl.sass similarity index 100% rename from admin/themes/default/sass/partials/_rtl.sass rename to admin-dev/themes/default/sass/partials/_rtl.sass diff --git a/admin/themes/default/sass/partials/_select2.scss b/admin-dev/themes/default/sass/partials/_select2.scss similarity index 100% rename from admin/themes/default/sass/partials/_select2.scss rename to admin-dev/themes/default/sass/partials/_select2.scss diff --git a/admin/themes/default/sass/partials/_skeleton-loading.sass b/admin-dev/themes/default/sass/partials/_skeleton-loading.sass similarity index 100% rename from admin/themes/default/sass/partials/_skeleton-loading.sass rename to admin-dev/themes/default/sass/partials/_skeleton-loading.sass diff --git a/admin/themes/default/sass/partials/_switch.sass b/admin-dev/themes/default/sass/partials/_switch.sass similarity index 100% rename from admin/themes/default/sass/partials/_switch.sass rename to admin-dev/themes/default/sass/partials/_switch.sass diff --git a/admin/themes/default/sass/partials/_tables.sass b/admin-dev/themes/default/sass/partials/_tables.sass similarity index 100% rename from admin/themes/default/sass/partials/_tables.sass rename to admin-dev/themes/default/sass/partials/_tables.sass diff --git a/admin/themes/default/sass/partials/_tinymce.sass b/admin-dev/themes/default/sass/partials/_tinymce.sass similarity index 100% rename from admin/themes/default/sass/partials/_tinymce.sass rename to admin-dev/themes/default/sass/partials/_tinymce.sass diff --git a/admin/themes/default/sass/partials/_toolbar.sass b/admin-dev/themes/default/sass/partials/_toolbar.sass similarity index 100% rename from admin/themes/default/sass/partials/_toolbar.sass rename to admin-dev/themes/default/sass/partials/_toolbar.sass diff --git a/admin/themes/default/sass/partials/_tooltip.sass b/admin-dev/themes/default/sass/partials/_tooltip.sass similarity index 100% rename from admin/themes/default/sass/partials/_tooltip.sass rename to admin-dev/themes/default/sass/partials/_tooltip.sass diff --git a/admin/themes/default/sass/partials/_tree.sass b/admin-dev/themes/default/sass/partials/_tree.sass similarity index 100% rename from admin/themes/default/sass/partials/_tree.sass rename to admin-dev/themes/default/sass/partials/_tree.sass diff --git a/admin/themes/default/sass/partials/index.php b/admin-dev/themes/default/sass/partials/index.php similarity index 100% rename from admin/themes/default/sass/partials/index.php rename to admin-dev/themes/default/sass/partials/index.php diff --git a/admin/themes/default/sass/partials/ndv3.sass b/admin-dev/themes/default/sass/partials/ndv3.sass similarity index 100% rename from admin/themes/default/sass/partials/ndv3.sass rename to admin-dev/themes/default/sass/partials/ndv3.sass diff --git a/admin/themes/default/sass/schemes/admin-theme-blue.sass b/admin-dev/themes/default/sass/schemes/admin-theme-blue.sass similarity index 100% rename from admin/themes/default/sass/schemes/admin-theme-blue.sass rename to admin-dev/themes/default/sass/schemes/admin-theme-blue.sass diff --git a/admin/themes/default/sass/schemes/admin-theme-contrast.sass b/admin-dev/themes/default/sass/schemes/admin-theme-contrast.sass similarity index 100% rename from admin/themes/default/sass/schemes/admin-theme-contrast.sass rename to admin-dev/themes/default/sass/schemes/admin-theme-contrast.sass diff --git a/admin/themes/default/sass/schemes/admin-theme-flex.sass b/admin-dev/themes/default/sass/schemes/admin-theme-flex.sass similarity index 100% rename from admin/themes/default/sass/schemes/admin-theme-flex.sass rename to admin-dev/themes/default/sass/schemes/admin-theme-flex.sass diff --git a/admin/themes/default/sass/schemes/admin-theme-fruit.sass b/admin-dev/themes/default/sass/schemes/admin-theme-fruit.sass similarity index 100% rename from admin/themes/default/sass/schemes/admin-theme-fruit.sass rename to admin-dev/themes/default/sass/schemes/admin-theme-fruit.sass diff --git a/admin/themes/default/sass/schemes/admin-theme-prune.sass b/admin-dev/themes/default/sass/schemes/admin-theme-prune.sass similarity index 100% rename from admin/themes/default/sass/schemes/admin-theme-prune.sass rename to admin-dev/themes/default/sass/schemes/admin-theme-prune.sass diff --git a/admin/themes/default/sass/schemes/index.php b/admin-dev/themes/default/sass/schemes/index.php similarity index 100% rename from admin/themes/default/sass/schemes/index.php rename to admin-dev/themes/default/sass/schemes/index.php diff --git a/admin/themes/default/sass/schemes_rtl/admin-theme-blue_rtl.sass b/admin-dev/themes/default/sass/schemes_rtl/admin-theme-blue_rtl.sass similarity index 100% rename from admin/themes/default/sass/schemes_rtl/admin-theme-blue_rtl.sass rename to admin-dev/themes/default/sass/schemes_rtl/admin-theme-blue_rtl.sass diff --git a/admin/themes/default/sass/schemes_rtl/admin-theme-contrast_rtl.sass b/admin-dev/themes/default/sass/schemes_rtl/admin-theme-contrast_rtl.sass similarity index 100% rename from admin/themes/default/sass/schemes_rtl/admin-theme-contrast_rtl.sass rename to admin-dev/themes/default/sass/schemes_rtl/admin-theme-contrast_rtl.sass diff --git a/admin/themes/default/sass/schemes_rtl/admin-theme-flex_rtl.sass b/admin-dev/themes/default/sass/schemes_rtl/admin-theme-flex_rtl.sass similarity index 100% rename from admin/themes/default/sass/schemes_rtl/admin-theme-flex_rtl.sass rename to admin-dev/themes/default/sass/schemes_rtl/admin-theme-flex_rtl.sass diff --git a/admin/themes/default/sass/schemes_rtl/admin-theme-fruit_rtl.sass b/admin-dev/themes/default/sass/schemes_rtl/admin-theme-fruit_rtl.sass similarity index 100% rename from admin/themes/default/sass/schemes_rtl/admin-theme-fruit_rtl.sass rename to admin-dev/themes/default/sass/schemes_rtl/admin-theme-fruit_rtl.sass diff --git a/admin/themes/default/sass/schemes_rtl/admin-theme-prune_rtl.sass b/admin-dev/themes/default/sass/schemes_rtl/admin-theme-prune_rtl.sass similarity index 100% rename from admin/themes/default/sass/schemes_rtl/admin-theme-prune_rtl.sass rename to admin-dev/themes/default/sass/schemes_rtl/admin-theme-prune_rtl.sass diff --git a/admin/themes/default/sass/schemes_rtl/index.php b/admin-dev/themes/default/sass/schemes_rtl/index.php similarity index 100% rename from admin/themes/default/sass/schemes_rtl/index.php rename to admin-dev/themes/default/sass/schemes_rtl/index.php diff --git a/admin/themes/default/sass/vendor/_animate.sass b/admin-dev/themes/default/sass/vendor/_animate.sass similarity index 100% rename from admin/themes/default/sass/vendor/_animate.sass rename to admin-dev/themes/default/sass/vendor/_animate.sass diff --git a/admin/themes/default/sass/vendor/bi-app/_bi-app-ltr.scss b/admin-dev/themes/default/sass/vendor/bi-app/_bi-app-ltr.scss similarity index 100% rename from admin/themes/default/sass/vendor/bi-app/_bi-app-ltr.scss rename to admin-dev/themes/default/sass/vendor/bi-app/_bi-app-ltr.scss diff --git a/admin/themes/default/sass/vendor/bi-app/_bi-app-rtl.scss b/admin-dev/themes/default/sass/vendor/bi-app/_bi-app-rtl.scss similarity index 100% rename from admin/themes/default/sass/vendor/bi-app/_bi-app-rtl.scss rename to admin-dev/themes/default/sass/vendor/bi-app/_bi-app-rtl.scss diff --git a/admin/themes/default/sass/vendor/bi-app/_mixins.scss b/admin-dev/themes/default/sass/vendor/bi-app/_mixins.scss similarity index 100% rename from admin/themes/default/sass/vendor/bi-app/_mixins.scss rename to admin-dev/themes/default/sass/vendor/bi-app/_mixins.scss diff --git a/admin/themes/default/sass/vendor/bi-app/_variables-ltr.scss b/admin-dev/themes/default/sass/vendor/bi-app/_variables-ltr.scss similarity index 100% rename from admin/themes/default/sass/vendor/bi-app/_variables-ltr.scss rename to admin-dev/themes/default/sass/vendor/bi-app/_variables-ltr.scss diff --git a/admin/themes/default/sass/vendor/bi-app/_variables-rtl.scss b/admin-dev/themes/default/sass/vendor/bi-app/_variables-rtl.scss similarity index 100% rename from admin/themes/default/sass/vendor/bi-app/_variables-rtl.scss rename to admin-dev/themes/default/sass/vendor/bi-app/_variables-rtl.scss diff --git a/admin/themes/default/sass/vendor/bi-app/index.php b/admin-dev/themes/default/sass/vendor/bi-app/index.php similarity index 100% rename from admin/themes/default/sass/vendor/bi-app/index.php rename to admin-dev/themes/default/sass/vendor/bi-app/index.php diff --git a/admin/themes/default/sass/vendor/bootstrap-rtl-sass/_bootstrap-rtl.sass b/admin-dev/themes/default/sass/vendor/bootstrap-rtl-sass/_bootstrap-rtl.sass similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-rtl-sass/_bootstrap-rtl.sass rename to admin-dev/themes/default/sass/vendor/bootstrap-rtl-sass/_bootstrap-rtl.sass diff --git a/admin/themes/default/sass/vendor/bootstrap-rtl-sass/_button-groups-rtl.sass b/admin-dev/themes/default/sass/vendor/bootstrap-rtl-sass/_button-groups-rtl.sass similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-rtl-sass/_button-groups-rtl.sass rename to admin-dev/themes/default/sass/vendor/bootstrap-rtl-sass/_button-groups-rtl.sass diff --git a/admin/themes/default/sass/vendor/bootstrap-rtl-sass/_carousel-rtl.sass b/admin-dev/themes/default/sass/vendor/bootstrap-rtl-sass/_carousel-rtl.sass similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-rtl-sass/_carousel-rtl.sass rename to admin-dev/themes/default/sass/vendor/bootstrap-rtl-sass/_carousel-rtl.sass diff --git a/admin/themes/default/sass/vendor/bootstrap-rtl-sass/_grid-rtl.sass b/admin-dev/themes/default/sass/vendor/bootstrap-rtl-sass/_grid-rtl.sass similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-rtl-sass/_grid-rtl.sass rename to admin-dev/themes/default/sass/vendor/bootstrap-rtl-sass/_grid-rtl.sass diff --git a/admin/themes/default/sass/vendor/bootstrap-rtl-sass/_list-group-rtl.sass b/admin-dev/themes/default/sass/vendor/bootstrap-rtl-sass/_list-group-rtl.sass similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-rtl-sass/_list-group-rtl.sass rename to admin-dev/themes/default/sass/vendor/bootstrap-rtl-sass/_list-group-rtl.sass diff --git a/admin/themes/default/sass/vendor/bootstrap-rtl-sass/_merged-rtl.sass b/admin-dev/themes/default/sass/vendor/bootstrap-rtl-sass/_merged-rtl.sass similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-rtl-sass/_merged-rtl.sass rename to admin-dev/themes/default/sass/vendor/bootstrap-rtl-sass/_merged-rtl.sass diff --git a/admin/themes/default/sass/vendor/bootstrap-rtl-sass/_pager-rtl.sass b/admin-dev/themes/default/sass/vendor/bootstrap-rtl-sass/_pager-rtl.sass similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-rtl-sass/_pager-rtl.sass rename to admin-dev/themes/default/sass/vendor/bootstrap-rtl-sass/_pager-rtl.sass diff --git a/admin/themes/default/sass/vendor/bootstrap-rtl-sass/_pagination-rtl.sass b/admin-dev/themes/default/sass/vendor/bootstrap-rtl-sass/_pagination-rtl.sass similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-rtl-sass/_pagination-rtl.sass rename to admin-dev/themes/default/sass/vendor/bootstrap-rtl-sass/_pagination-rtl.sass diff --git a/admin/themes/default/sass/vendor/bootstrap-rtl-sass/_type-rtl.sass b/admin-dev/themes/default/sass/vendor/bootstrap-rtl-sass/_type-rtl.sass similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-rtl-sass/_type-rtl.sass rename to admin-dev/themes/default/sass/vendor/bootstrap-rtl-sass/_type-rtl.sass diff --git a/admin/themes/default/sass/vendor/bootstrap-rtl-sass/index.php b/admin-dev/themes/default/sass/vendor/bootstrap-rtl-sass/index.php similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-rtl-sass/index.php rename to admin-dev/themes/default/sass/vendor/bootstrap-rtl-sass/index.php diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_alerts.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_alerts.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_alerts.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_alerts.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_badges.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_badges.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_badges.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_badges.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_breadcrumbs.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_breadcrumbs.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_breadcrumbs.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_breadcrumbs.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_button-groups.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_button-groups.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_button-groups.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_button-groups.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_buttons.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_buttons.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_buttons.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_buttons.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_carousel.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_carousel.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_carousel.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_carousel.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_close.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_close.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_close.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_close.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_code.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_code.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_code.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_code.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_component-animations.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_component-animations.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_component-animations.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_component-animations.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_dropdowns.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_dropdowns.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_dropdowns.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_dropdowns.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_forms.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_forms.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_forms.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_forms.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_glyphicons.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_glyphicons.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_glyphicons.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_glyphicons.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_grid.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_grid.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_grid.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_grid.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_input-groups.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_input-groups.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_input-groups.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_input-groups.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_jumbotron.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_jumbotron.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_jumbotron.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_jumbotron.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_labels.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_labels.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_labels.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_labels.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_list-group.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_list-group.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_list-group.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_list-group.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_media.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_media.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_media.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_media.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_mixins.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_mixins.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_mixins.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_mixins.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_modals.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_modals.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_modals.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_modals.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_navbar.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_navbar.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_navbar.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_navbar.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_navs.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_navs.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_navs.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_navs.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_normalize.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_normalize.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_normalize.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_normalize.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_pager.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_pager.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_pager.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_pager.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_pagination.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_pagination.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_pagination.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_pagination.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_panels.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_panels.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_panels.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_panels.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_popovers.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_popovers.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_popovers.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_popovers.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_print.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_print.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_print.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_print.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_progress-bars.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_progress-bars.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_progress-bars.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_progress-bars.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_responsive-embed.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_responsive-embed.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_responsive-embed.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_responsive-embed.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_responsive-utilities.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_responsive-utilities.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_responsive-utilities.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_responsive-utilities.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_scaffolding.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_scaffolding.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_scaffolding.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_scaffolding.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_tables.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_tables.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_tables.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_tables.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_theme.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_theme.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_theme.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_theme.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_thumbnails.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_thumbnails.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_thumbnails.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_thumbnails.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_tooltip.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_tooltip.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_tooltip.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_tooltip.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_type.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_type.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_type.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_type.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_utilities.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_utilities.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_utilities.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_utilities.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_variables.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_variables.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_variables.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_variables.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/_wells.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/_wells.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/_wells.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/_wells.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/index.php b/admin-dev/themes/default/sass/vendor/bootstrap-sass/index.php similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/index.php rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/index.php diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/mixins/_alerts.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_alerts.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/mixins/_alerts.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_alerts.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/mixins/_background-variant.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_background-variant.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/mixins/_background-variant.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_background-variant.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/mixins/_border-radius.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_border-radius.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/mixins/_border-radius.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_border-radius.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/mixins/_buttons.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_buttons.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/mixins/_buttons.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_buttons.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/mixins/_center-block.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_center-block.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/mixins/_center-block.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_center-block.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/mixins/_clearfix.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_clearfix.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/mixins/_clearfix.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_clearfix.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/mixins/_forms.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_forms.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/mixins/_forms.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_forms.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/mixins/_gradients.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_gradients.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/mixins/_gradients.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_gradients.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/mixins/_grid-framework.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_grid-framework.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/mixins/_grid-framework.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_grid-framework.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/mixins/_grid.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_grid.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/mixins/_grid.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_grid.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/mixins/_hide-text.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_hide-text.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/mixins/_hide-text.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_hide-text.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/mixins/_image.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_image.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/mixins/_image.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_image.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/mixins/_labels.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_labels.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/mixins/_labels.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_labels.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/mixins/_list-group.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_list-group.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/mixins/_list-group.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_list-group.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/mixins/_nav-divider.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_nav-divider.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/mixins/_nav-divider.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_nav-divider.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/mixins/_nav-vertical-align.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_nav-vertical-align.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/mixins/_nav-vertical-align.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_nav-vertical-align.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/mixins/_opacity.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_opacity.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/mixins/_opacity.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_opacity.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/mixins/_pagination.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_pagination.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/mixins/_pagination.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_pagination.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/mixins/_panels.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_panels.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/mixins/_panels.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_panels.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/mixins/_progress-bar.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_progress-bar.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/mixins/_progress-bar.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_progress-bar.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/mixins/_reset-filter.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_reset-filter.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/mixins/_reset-filter.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_reset-filter.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/mixins/_resize.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_resize.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/mixins/_resize.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_resize.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/mixins/_responsive-visibility.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_responsive-visibility.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/mixins/_responsive-visibility.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_responsive-visibility.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/mixins/_size.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_size.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/mixins/_size.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_size.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/mixins/_tab-focus.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_tab-focus.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/mixins/_tab-focus.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_tab-focus.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/mixins/_table-row.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_table-row.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/mixins/_table-row.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_table-row.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/mixins/_text-emphasis.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_text-emphasis.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/mixins/_text-emphasis.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_text-emphasis.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/mixins/_text-overflow.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_text-overflow.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/mixins/_text-overflow.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_text-overflow.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/mixins/_vendor-prefixes.scss b/admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_vendor-prefixes.scss similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/mixins/_vendor-prefixes.scss rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/_vendor-prefixes.scss diff --git a/admin/themes/default/sass/vendor/bootstrap-sass/mixins/index.php b/admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/index.php similarity index 100% rename from admin/themes/default/sass/vendor/bootstrap-sass/mixins/index.php rename to admin-dev/themes/default/sass/vendor/bootstrap-sass/mixins/index.php diff --git a/admin/themes/default/sass/vendor/font-awesome/_animated.scss b/admin-dev/themes/default/sass/vendor/font-awesome/_animated.scss similarity index 100% rename from admin/themes/default/sass/vendor/font-awesome/_animated.scss rename to admin-dev/themes/default/sass/vendor/font-awesome/_animated.scss diff --git a/admin/themes/default/sass/vendor/font-awesome/_bordered-pulled.scss b/admin-dev/themes/default/sass/vendor/font-awesome/_bordered-pulled.scss similarity index 100% rename from admin/themes/default/sass/vendor/font-awesome/_bordered-pulled.scss rename to admin-dev/themes/default/sass/vendor/font-awesome/_bordered-pulled.scss diff --git a/admin/themes/default/sass/vendor/font-awesome/_core.scss b/admin-dev/themes/default/sass/vendor/font-awesome/_core.scss similarity index 100% rename from admin/themes/default/sass/vendor/font-awesome/_core.scss rename to admin-dev/themes/default/sass/vendor/font-awesome/_core.scss diff --git a/admin/themes/default/sass/vendor/font-awesome/_extras.scss b/admin-dev/themes/default/sass/vendor/font-awesome/_extras.scss similarity index 100% rename from admin/themes/default/sass/vendor/font-awesome/_extras.scss rename to admin-dev/themes/default/sass/vendor/font-awesome/_extras.scss diff --git a/admin/themes/default/sass/vendor/font-awesome/_fixed-width.scss b/admin-dev/themes/default/sass/vendor/font-awesome/_fixed-width.scss similarity index 100% rename from admin/themes/default/sass/vendor/font-awesome/_fixed-width.scss rename to admin-dev/themes/default/sass/vendor/font-awesome/_fixed-width.scss diff --git a/admin/themes/default/sass/vendor/font-awesome/_icons.scss b/admin-dev/themes/default/sass/vendor/font-awesome/_icons.scss similarity index 100% rename from admin/themes/default/sass/vendor/font-awesome/_icons.scss rename to admin-dev/themes/default/sass/vendor/font-awesome/_icons.scss diff --git a/admin/themes/default/sass/vendor/font-awesome/_larger.scss b/admin-dev/themes/default/sass/vendor/font-awesome/_larger.scss similarity index 100% rename from admin/themes/default/sass/vendor/font-awesome/_larger.scss rename to admin-dev/themes/default/sass/vendor/font-awesome/_larger.scss diff --git a/admin/themes/default/sass/vendor/font-awesome/_list.scss b/admin-dev/themes/default/sass/vendor/font-awesome/_list.scss similarity index 100% rename from admin/themes/default/sass/vendor/font-awesome/_list.scss rename to admin-dev/themes/default/sass/vendor/font-awesome/_list.scss diff --git a/admin/themes/default/sass/vendor/font-awesome/_mixins.scss b/admin-dev/themes/default/sass/vendor/font-awesome/_mixins.scss similarity index 100% rename from admin/themes/default/sass/vendor/font-awesome/_mixins.scss rename to admin-dev/themes/default/sass/vendor/font-awesome/_mixins.scss diff --git a/admin/themes/default/sass/vendor/font-awesome/_path.scss b/admin-dev/themes/default/sass/vendor/font-awesome/_path.scss similarity index 100% rename from admin/themes/default/sass/vendor/font-awesome/_path.scss rename to admin-dev/themes/default/sass/vendor/font-awesome/_path.scss diff --git a/admin/themes/default/sass/vendor/font-awesome/_rotated-flipped.scss b/admin-dev/themes/default/sass/vendor/font-awesome/_rotated-flipped.scss similarity index 100% rename from admin/themes/default/sass/vendor/font-awesome/_rotated-flipped.scss rename to admin-dev/themes/default/sass/vendor/font-awesome/_rotated-flipped.scss diff --git a/admin/themes/default/sass/vendor/font-awesome/_screen-reader.scss b/admin-dev/themes/default/sass/vendor/font-awesome/_screen-reader.scss similarity index 100% rename from admin/themes/default/sass/vendor/font-awesome/_screen-reader.scss rename to admin-dev/themes/default/sass/vendor/font-awesome/_screen-reader.scss diff --git a/admin/themes/default/sass/vendor/font-awesome/_spinning.scss b/admin-dev/themes/default/sass/vendor/font-awesome/_spinning.scss similarity index 100% rename from admin/themes/default/sass/vendor/font-awesome/_spinning.scss rename to admin-dev/themes/default/sass/vendor/font-awesome/_spinning.scss diff --git a/admin/themes/default/sass/vendor/font-awesome/_stacked.scss b/admin-dev/themes/default/sass/vendor/font-awesome/_stacked.scss similarity index 100% rename from admin/themes/default/sass/vendor/font-awesome/_stacked.scss rename to admin-dev/themes/default/sass/vendor/font-awesome/_stacked.scss diff --git a/admin/themes/default/sass/vendor/font-awesome/_variables.scss b/admin-dev/themes/default/sass/vendor/font-awesome/_variables.scss similarity index 100% rename from admin/themes/default/sass/vendor/font-awesome/_variables.scss rename to admin-dev/themes/default/sass/vendor/font-awesome/_variables.scss diff --git a/admin/themes/default/sass/vendor/font-awesome/font-awesome.scss b/admin-dev/themes/default/sass/vendor/font-awesome/font-awesome.scss similarity index 100% rename from admin/themes/default/sass/vendor/font-awesome/font-awesome.scss rename to admin-dev/themes/default/sass/vendor/font-awesome/font-awesome.scss diff --git a/admin/themes/default/sass/vendor/font-awesome/index.php b/admin-dev/themes/default/sass/vendor/font-awesome/index.php similarity index 100% rename from admin/themes/default/sass/vendor/font-awesome/index.php rename to admin-dev/themes/default/sass/vendor/font-awesome/index.php diff --git a/admin/themes/default/sass/vendor/index.php b/admin-dev/themes/default/sass/vendor/index.php similarity index 100% rename from admin/themes/default/sass/vendor/index.php rename to admin-dev/themes/default/sass/vendor/index.php diff --git a/admin/themes/default/template/alerts.tpl b/admin-dev/themes/default/template/alerts.tpl similarity index 100% rename from admin/themes/default/template/alerts.tpl rename to admin-dev/themes/default/template/alerts.tpl diff --git a/admin/themes/default/template/content.tpl b/admin-dev/themes/default/template/content.tpl similarity index 100% rename from admin/themes/default/template/content.tpl rename to admin-dev/themes/default/template/content.tpl diff --git a/admin/themes/default/template/controllers/access/helpers/form/form.tpl b/admin-dev/themes/default/template/controllers/access/helpers/form/form.tpl similarity index 99% rename from admin/themes/default/template/controllers/access/helpers/form/form.tpl rename to admin-dev/themes/default/template/controllers/access/helpers/form/form.tpl index 7c5a71acc..258013c26 100644 --- a/admin/themes/default/template/controllers/access/helpers/form/form.tpl +++ b/admin-dev/themes/default/template/controllers/access/helpers/form/form.tpl @@ -302,11 +302,11 @@
{if isset($hotels) && $hotels}
-

{l s='Hotel Permissions'}

+

{l s='Property Permissions'}

- + @@ -131,7 +131,7 @@
{if isset($room['selected_services']) && $room['selected_services']} diff --git a/admin/themes/default/template/controllers/carts/index.php b/admin-dev/themes/default/template/controllers/carts/index.php similarity index 100% rename from admin/themes/default/template/controllers/carts/index.php rename to admin-dev/themes/default/template/controllers/carts/index.php diff --git a/admin/themes/default/template/controllers/categories/helpers/form/form.tpl b/admin-dev/themes/default/template/controllers/categories/helpers/form/form.tpl similarity index 100% rename from admin/themes/default/template/controllers/categories/helpers/form/form.tpl rename to admin-dev/themes/default/template/controllers/categories/helpers/form/form.tpl diff --git a/admin/themes/default/template/controllers/categories/helpers/form/index.php b/admin-dev/themes/default/template/controllers/categories/helpers/form/index.php similarity index 100% rename from admin/themes/default/template/controllers/categories/helpers/form/index.php rename to admin-dev/themes/default/template/controllers/categories/helpers/form/index.php diff --git a/admin/themes/default/template/controllers/categories/helpers/index.php b/admin-dev/themes/default/template/controllers/categories/helpers/index.php similarity index 100% rename from admin/themes/default/template/controllers/categories/helpers/index.php rename to admin-dev/themes/default/template/controllers/categories/helpers/index.php diff --git a/admin/themes/default/template/controllers/categories/helpers/list/index.php b/admin-dev/themes/default/template/controllers/categories/helpers/list/index.php similarity index 100% rename from admin/themes/default/template/controllers/categories/helpers/list/index.php rename to admin-dev/themes/default/template/controllers/categories/helpers/list/index.php diff --git a/admin/themes/default/template/controllers/categories/helpers/list/list_header.tpl b/admin-dev/themes/default/template/controllers/categories/helpers/list/list_header.tpl similarity index 100% rename from admin/themes/default/template/controllers/categories/helpers/list/list_header.tpl rename to admin-dev/themes/default/template/controllers/categories/helpers/list/list_header.tpl diff --git a/admin/themes/default/template/controllers/categories/index.php b/admin-dev/themes/default/template/controllers/categories/index.php similarity index 100% rename from admin/themes/default/template/controllers/categories/index.php rename to admin-dev/themes/default/template/controllers/categories/index.php diff --git a/admin/themes/default/template/controllers/cms/helpers/form/form.tpl b/admin-dev/themes/default/template/controllers/cms/helpers/form/form.tpl similarity index 100% rename from admin/themes/default/template/controllers/cms/helpers/form/form.tpl rename to admin-dev/themes/default/template/controllers/cms/helpers/form/form.tpl diff --git a/admin/themes/default/template/controllers/cms/helpers/form/index.php b/admin-dev/themes/default/template/controllers/cms/helpers/form/index.php similarity index 100% rename from admin/themes/default/template/controllers/cms/helpers/form/index.php rename to admin-dev/themes/default/template/controllers/cms/helpers/form/index.php diff --git a/admin/themes/default/template/controllers/cms/helpers/index.php b/admin-dev/themes/default/template/controllers/cms/helpers/index.php similarity index 100% rename from admin/themes/default/template/controllers/cms/helpers/index.php rename to admin-dev/themes/default/template/controllers/cms/helpers/index.php diff --git a/admin/themes/default/template/controllers/cms/index.php b/admin-dev/themes/default/template/controllers/cms/index.php similarity index 100% rename from admin/themes/default/template/controllers/cms/index.php rename to admin-dev/themes/default/template/controllers/cms/index.php diff --git a/admin/themes/default/template/controllers/cms_categories/helpers/form/form.tpl b/admin-dev/themes/default/template/controllers/cms_categories/helpers/form/form.tpl similarity index 100% rename from admin/themes/default/template/controllers/cms_categories/helpers/form/form.tpl rename to admin-dev/themes/default/template/controllers/cms_categories/helpers/form/form.tpl diff --git a/admin/themes/default/template/controllers/cms_categories/helpers/form/index.php b/admin-dev/themes/default/template/controllers/cms_categories/helpers/form/index.php similarity index 100% rename from admin/themes/default/template/controllers/cms_categories/helpers/form/index.php rename to admin-dev/themes/default/template/controllers/cms_categories/helpers/form/index.php diff --git a/admin/themes/default/template/controllers/cms_categories/helpers/index.php b/admin-dev/themes/default/template/controllers/cms_categories/helpers/index.php similarity index 100% rename from admin/themes/default/template/controllers/cms_categories/helpers/index.php rename to admin-dev/themes/default/template/controllers/cms_categories/helpers/index.php diff --git a/admin/themes/default/template/controllers/cms_categories/index.php b/admin-dev/themes/default/template/controllers/cms_categories/index.php similarity index 100% rename from admin/themes/default/template/controllers/cms_categories/index.php rename to admin-dev/themes/default/template/controllers/cms_categories/index.php diff --git a/admin/themes/default/template/controllers/cms_content/content.tpl b/admin-dev/themes/default/template/controllers/cms_content/content.tpl similarity index 100% rename from admin/themes/default/template/controllers/cms_content/content.tpl rename to admin-dev/themes/default/template/controllers/cms_content/content.tpl diff --git a/admin/themes/default/template/controllers/cms_content/index.php b/admin-dev/themes/default/template/controllers/cms_content/index.php similarity index 100% rename from admin/themes/default/template/controllers/cms_content/index.php rename to admin-dev/themes/default/template/controllers/cms_content/index.php diff --git a/admin/themes/default/template/controllers/countries/helpers/form/form.tpl b/admin-dev/themes/default/template/controllers/countries/helpers/form/form.tpl similarity index 100% rename from admin/themes/default/template/controllers/countries/helpers/form/form.tpl rename to admin-dev/themes/default/template/controllers/countries/helpers/form/form.tpl diff --git a/admin/themes/default/template/controllers/countries/helpers/form/index.php b/admin-dev/themes/default/template/controllers/countries/helpers/form/index.php similarity index 100% rename from admin/themes/default/template/controllers/countries/helpers/form/index.php rename to admin-dev/themes/default/template/controllers/countries/helpers/form/index.php diff --git a/admin/themes/default/template/controllers/countries/helpers/index.php b/admin-dev/themes/default/template/controllers/countries/helpers/index.php similarity index 100% rename from admin/themes/default/template/controllers/countries/helpers/index.php rename to admin-dev/themes/default/template/controllers/countries/helpers/index.php diff --git a/admin/themes/default/template/controllers/countries/helpers/list/index.php b/admin-dev/themes/default/template/controllers/countries/helpers/list/index.php similarity index 100% rename from admin/themes/default/template/controllers/countries/helpers/list/index.php rename to admin-dev/themes/default/template/controllers/countries/helpers/list/index.php diff --git a/admin/themes/default/template/controllers/countries/helpers/list/list_footer.tpl b/admin-dev/themes/default/template/controllers/countries/helpers/list/list_footer.tpl similarity index 100% rename from admin/themes/default/template/controllers/countries/helpers/list/list_footer.tpl rename to admin-dev/themes/default/template/controllers/countries/helpers/list/list_footer.tpl diff --git a/admin/themes/default/template/controllers/countries/index.php b/admin-dev/themes/default/template/controllers/countries/index.php similarity index 100% rename from admin/themes/default/template/controllers/countries/index.php rename to admin-dev/themes/default/template/controllers/countries/index.php diff --git a/admin/themes/default/template/controllers/customer_threads/helpers/index.php b/admin-dev/themes/default/template/controllers/customer_threads/helpers/index.php similarity index 100% rename from admin/themes/default/template/controllers/customer_threads/helpers/index.php rename to admin-dev/themes/default/template/controllers/customer_threads/helpers/index.php diff --git a/admin/themes/default/template/controllers/customer_threads/helpers/list/index.php b/admin-dev/themes/default/template/controllers/customer_threads/helpers/list/index.php similarity index 100% rename from admin/themes/default/template/controllers/customer_threads/helpers/list/index.php rename to admin-dev/themes/default/template/controllers/customer_threads/helpers/list/index.php diff --git a/admin/themes/default/template/controllers/customer_threads/helpers/list/list_header.tpl b/admin-dev/themes/default/template/controllers/customer_threads/helpers/list/list_header.tpl similarity index 100% rename from admin/themes/default/template/controllers/customer_threads/helpers/list/list_header.tpl rename to admin-dev/themes/default/template/controllers/customer_threads/helpers/list/list_header.tpl diff --git a/admin/themes/default/template/controllers/customer_threads/helpers/options/index.php b/admin-dev/themes/default/template/controllers/customer_threads/helpers/options/index.php similarity index 100% rename from admin/themes/default/template/controllers/customer_threads/helpers/options/index.php rename to admin-dev/themes/default/template/controllers/customer_threads/helpers/options/index.php diff --git a/admin/themes/default/template/controllers/customer_threads/helpers/options/options.tpl b/admin-dev/themes/default/template/controllers/customer_threads/helpers/options/options.tpl similarity index 100% rename from admin/themes/default/template/controllers/customer_threads/helpers/options/options.tpl rename to admin-dev/themes/default/template/controllers/customer_threads/helpers/options/options.tpl diff --git a/admin/themes/default/template/controllers/customer_threads/helpers/view/index.php b/admin-dev/themes/default/template/controllers/customer_threads/helpers/view/index.php similarity index 100% rename from admin/themes/default/template/controllers/customer_threads/helpers/view/index.php rename to admin-dev/themes/default/template/controllers/customer_threads/helpers/view/index.php diff --git a/admin/themes/default/template/controllers/customer_threads/helpers/view/message.tpl b/admin-dev/themes/default/template/controllers/customer_threads/helpers/view/message.tpl similarity index 100% rename from admin/themes/default/template/controllers/customer_threads/helpers/view/message.tpl rename to admin-dev/themes/default/template/controllers/customer_threads/helpers/view/message.tpl diff --git a/admin/themes/default/template/controllers/customer_threads/helpers/view/modal.tpl b/admin-dev/themes/default/template/controllers/customer_threads/helpers/view/modal.tpl similarity index 100% rename from admin/themes/default/template/controllers/customer_threads/helpers/view/modal.tpl rename to admin-dev/themes/default/template/controllers/customer_threads/helpers/view/modal.tpl diff --git a/admin/themes/default/template/controllers/customer_threads/helpers/view/timeline_item.tpl b/admin-dev/themes/default/template/controllers/customer_threads/helpers/view/timeline_item.tpl similarity index 100% rename from admin/themes/default/template/controllers/customer_threads/helpers/view/timeline_item.tpl rename to admin-dev/themes/default/template/controllers/customer_threads/helpers/view/timeline_item.tpl diff --git a/admin/themes/default/template/controllers/customer_threads/helpers/view/view.tpl b/admin-dev/themes/default/template/controllers/customer_threads/helpers/view/view.tpl similarity index 100% rename from admin/themes/default/template/controllers/customer_threads/helpers/view/view.tpl rename to admin-dev/themes/default/template/controllers/customer_threads/helpers/view/view.tpl diff --git a/admin/themes/default/template/controllers/customer_threads/index.php b/admin-dev/themes/default/template/controllers/customer_threads/index.php similarity index 100% rename from admin/themes/default/template/controllers/customer_threads/index.php rename to admin-dev/themes/default/template/controllers/customer_threads/index.php diff --git a/admin/themes/default/template/controllers/customer_threads/message.tpl b/admin-dev/themes/default/template/controllers/customer_threads/message.tpl similarity index 100% rename from admin/themes/default/template/controllers/customer_threads/message.tpl rename to admin-dev/themes/default/template/controllers/customer_threads/message.tpl diff --git a/admin/themes/default/template/controllers/customer_threads/page_header_toolbar.tpl b/admin-dev/themes/default/template/controllers/customer_threads/page_header_toolbar.tpl similarity index 100% rename from admin/themes/default/template/controllers/customer_threads/page_header_toolbar.tpl rename to admin-dev/themes/default/template/controllers/customer_threads/page_header_toolbar.tpl diff --git a/admin/themes/default/template/controllers/customers/helpers/index.php b/admin-dev/themes/default/template/controllers/customers/helpers/index.php similarity index 100% rename from admin/themes/default/template/controllers/customers/helpers/index.php rename to admin-dev/themes/default/template/controllers/customers/helpers/index.php diff --git a/admin/themes/default/template/controllers/customers/helpers/list/index.php b/admin-dev/themes/default/template/controllers/customers/helpers/list/index.php similarity index 100% rename from admin/themes/default/template/controllers/customers/helpers/list/index.php rename to admin-dev/themes/default/template/controllers/customers/helpers/list/index.php diff --git a/admin/themes/default/template/controllers/customers/helpers/list/list_header.tpl b/admin-dev/themes/default/template/controllers/customers/helpers/list/list_header.tpl similarity index 100% rename from admin/themes/default/template/controllers/customers/helpers/list/list_header.tpl rename to admin-dev/themes/default/template/controllers/customers/helpers/list/list_header.tpl diff --git a/admin/themes/default/template/controllers/customers/helpers/required_fields.tpl b/admin-dev/themes/default/template/controllers/customers/helpers/required_fields.tpl similarity index 100% rename from admin/themes/default/template/controllers/customers/helpers/required_fields.tpl rename to admin-dev/themes/default/template/controllers/customers/helpers/required_fields.tpl diff --git a/admin/themes/default/template/controllers/customers/helpers/view/index.php b/admin-dev/themes/default/template/controllers/customers/helpers/view/index.php similarity index 100% rename from admin/themes/default/template/controllers/customers/helpers/view/index.php rename to admin-dev/themes/default/template/controllers/customers/helpers/view/index.php diff --git a/admin/themes/default/template/controllers/customers/helpers/view/view.tpl b/admin-dev/themes/default/template/controllers/customers/helpers/view/view.tpl similarity index 100% rename from admin/themes/default/template/controllers/customers/helpers/view/view.tpl rename to admin-dev/themes/default/template/controllers/customers/helpers/view/view.tpl diff --git a/admin/themes/default/template/controllers/customers/index.php b/admin-dev/themes/default/template/controllers/customers/index.php similarity index 100% rename from admin/themes/default/template/controllers/customers/index.php rename to admin-dev/themes/default/template/controllers/customers/index.php diff --git a/admin/themes/default/template/controllers/customers/modals/_customer_guest_form.tpl b/admin-dev/themes/default/template/controllers/customers/modals/_customer_guest_form.tpl similarity index 100% rename from admin/themes/default/template/controllers/customers/modals/_customer_guest_form.tpl rename to admin-dev/themes/default/template/controllers/customers/modals/_customer_guest_form.tpl diff --git a/admin/themes/default/template/controllers/customers/modals/index.php b/admin-dev/themes/default/template/controllers/customers/modals/index.php similarity index 100% rename from admin/themes/default/template/controllers/customers/modals/index.php rename to admin-dev/themes/default/template/controllers/customers/modals/index.php diff --git a/admin/themes/default/template/controllers/dashboard/helpers/index.php b/admin-dev/themes/default/template/controllers/dashboard/helpers/index.php similarity index 100% rename from admin/themes/default/template/controllers/dashboard/helpers/index.php rename to admin-dev/themes/default/template/controllers/dashboard/helpers/index.php diff --git a/admin/themes/default/template/controllers/dashboard/helpers/view/index.php b/admin-dev/themes/default/template/controllers/dashboard/helpers/view/index.php similarity index 100% rename from admin/themes/default/template/controllers/dashboard/helpers/view/index.php rename to admin-dev/themes/default/template/controllers/dashboard/helpers/view/index.php diff --git a/admin/themes/default/template/controllers/dashboard/helpers/view/view.tpl b/admin-dev/themes/default/template/controllers/dashboard/helpers/view/view.tpl similarity index 100% rename from admin/themes/default/template/controllers/dashboard/helpers/view/view.tpl rename to admin-dev/themes/default/template/controllers/dashboard/helpers/view/view.tpl diff --git a/admin/themes/default/template/controllers/dashboard/index.php b/admin-dev/themes/default/template/controllers/dashboard/index.php similarity index 100% rename from admin/themes/default/template/controllers/dashboard/index.php rename to admin-dev/themes/default/template/controllers/dashboard/index.php diff --git a/admin/themes/default/template/controllers/emails/content.tpl b/admin-dev/themes/default/template/controllers/emails/content.tpl similarity index 100% rename from admin/themes/default/template/controllers/emails/content.tpl rename to admin-dev/themes/default/template/controllers/emails/content.tpl diff --git a/admin/themes/default/template/controllers/emails/index.php b/admin-dev/themes/default/template/controllers/emails/index.php similarity index 100% rename from admin/themes/default/template/controllers/emails/index.php rename to admin-dev/themes/default/template/controllers/emails/index.php diff --git a/admin/themes/default/template/controllers/employees/helpers/form/form.tpl b/admin-dev/themes/default/template/controllers/employees/helpers/form/form.tpl similarity index 100% rename from admin/themes/default/template/controllers/employees/helpers/form/form.tpl rename to admin-dev/themes/default/template/controllers/employees/helpers/form/form.tpl diff --git a/admin/themes/default/template/controllers/employees/helpers/form/index.php b/admin-dev/themes/default/template/controllers/employees/helpers/form/index.php similarity index 100% rename from admin/themes/default/template/controllers/employees/helpers/form/index.php rename to admin-dev/themes/default/template/controllers/employees/helpers/form/index.php diff --git a/admin/themes/default/template/controllers/employees/helpers/index.php b/admin-dev/themes/default/template/controllers/employees/helpers/index.php similarity index 100% rename from admin/themes/default/template/controllers/employees/helpers/index.php rename to admin-dev/themes/default/template/controllers/employees/helpers/index.php diff --git a/admin/themes/default/template/controllers/employees/index.php b/admin-dev/themes/default/template/controllers/employees/index.php similarity index 100% rename from admin/themes/default/template/controllers/employees/index.php rename to admin-dev/themes/default/template/controllers/employees/index.php diff --git a/admin/themes/default/template/controllers/feature_value/helpers/form/form.tpl b/admin-dev/themes/default/template/controllers/feature_value/helpers/form/form.tpl similarity index 100% rename from admin/themes/default/template/controllers/feature_value/helpers/form/form.tpl rename to admin-dev/themes/default/template/controllers/feature_value/helpers/form/form.tpl diff --git a/admin/themes/default/template/controllers/feature_value/helpers/form/index.php b/admin-dev/themes/default/template/controllers/feature_value/helpers/form/index.php similarity index 100% rename from admin/themes/default/template/controllers/feature_value/helpers/form/index.php rename to admin-dev/themes/default/template/controllers/feature_value/helpers/form/index.php diff --git a/admin/themes/default/template/controllers/feature_value/helpers/index.php b/admin-dev/themes/default/template/controllers/feature_value/helpers/index.php similarity index 100% rename from admin/themes/default/template/controllers/feature_value/helpers/index.php rename to admin-dev/themes/default/template/controllers/feature_value/helpers/index.php diff --git a/admin/themes/default/template/controllers/feature_value/index.php b/admin-dev/themes/default/template/controllers/feature_value/index.php similarity index 100% rename from admin/themes/default/template/controllers/feature_value/index.php rename to admin-dev/themes/default/template/controllers/feature_value/index.php diff --git a/admin/themes/default/template/controllers/features/helpers/form/form.tpl b/admin-dev/themes/default/template/controllers/features/helpers/form/form.tpl similarity index 100% rename from admin/themes/default/template/controllers/features/helpers/form/form.tpl rename to admin-dev/themes/default/template/controllers/features/helpers/form/form.tpl diff --git a/admin/themes/default/template/controllers/features/helpers/form/index.php b/admin-dev/themes/default/template/controllers/features/helpers/form/index.php similarity index 100% rename from admin/themes/default/template/controllers/features/helpers/form/index.php rename to admin-dev/themes/default/template/controllers/features/helpers/form/index.php diff --git a/admin/themes/default/template/controllers/features/helpers/index.php b/admin-dev/themes/default/template/controllers/features/helpers/index.php similarity index 100% rename from admin/themes/default/template/controllers/features/helpers/index.php rename to admin-dev/themes/default/template/controllers/features/helpers/index.php diff --git a/admin/themes/default/template/controllers/features/index.php b/admin-dev/themes/default/template/controllers/features/index.php similarity index 100% rename from admin/themes/default/template/controllers/features/index.php rename to admin-dev/themes/default/template/controllers/features/index.php diff --git a/admin/themes/default/template/controllers/geolocation/helpers/index.php b/admin-dev/themes/default/template/controllers/geolocation/helpers/index.php similarity index 100% rename from admin/themes/default/template/controllers/geolocation/helpers/index.php rename to admin-dev/themes/default/template/controllers/geolocation/helpers/index.php diff --git a/admin/themes/default/template/controllers/geolocation/helpers/options/index.php b/admin-dev/themes/default/template/controllers/geolocation/helpers/options/index.php similarity index 100% rename from admin/themes/default/template/controllers/geolocation/helpers/options/index.php rename to admin-dev/themes/default/template/controllers/geolocation/helpers/options/index.php diff --git a/admin/themes/default/template/controllers/geolocation/helpers/options/options.tpl b/admin-dev/themes/default/template/controllers/geolocation/helpers/options/options.tpl similarity index 100% rename from admin/themes/default/template/controllers/geolocation/helpers/options/options.tpl rename to admin-dev/themes/default/template/controllers/geolocation/helpers/options/options.tpl diff --git a/admin/themes/default/template/controllers/geolocation/index.php b/admin-dev/themes/default/template/controllers/geolocation/index.php similarity index 100% rename from admin/themes/default/template/controllers/geolocation/index.php rename to admin-dev/themes/default/template/controllers/geolocation/index.php diff --git a/admin/themes/default/template/controllers/groups/helpers/form/form.tpl b/admin-dev/themes/default/template/controllers/groups/helpers/form/form.tpl similarity index 100% rename from admin/themes/default/template/controllers/groups/helpers/form/form.tpl rename to admin-dev/themes/default/template/controllers/groups/helpers/form/form.tpl diff --git a/admin/themes/default/template/controllers/groups/helpers/form/index.php b/admin-dev/themes/default/template/controllers/groups/helpers/form/index.php similarity index 100% rename from admin/themes/default/template/controllers/groups/helpers/form/index.php rename to admin-dev/themes/default/template/controllers/groups/helpers/form/index.php diff --git a/admin/themes/default/template/controllers/groups/helpers/index.php b/admin-dev/themes/default/template/controllers/groups/helpers/index.php similarity index 100% rename from admin/themes/default/template/controllers/groups/helpers/index.php rename to admin-dev/themes/default/template/controllers/groups/helpers/index.php diff --git a/admin/themes/default/template/controllers/groups/helpers/tree/index.php b/admin-dev/themes/default/template/controllers/groups/helpers/tree/index.php similarity index 100% rename from admin/themes/default/template/controllers/groups/helpers/tree/index.php rename to admin-dev/themes/default/template/controllers/groups/helpers/tree/index.php diff --git a/admin/themes/default/template/controllers/groups/helpers/tree/tree_categories.tpl b/admin-dev/themes/default/template/controllers/groups/helpers/tree/tree_categories.tpl similarity index 100% rename from admin/themes/default/template/controllers/groups/helpers/tree/tree_categories.tpl rename to admin-dev/themes/default/template/controllers/groups/helpers/tree/tree_categories.tpl diff --git a/admin/themes/default/template/controllers/groups/helpers/tree/tree_node_folder_radio.tpl b/admin-dev/themes/default/template/controllers/groups/helpers/tree/tree_node_folder_radio.tpl similarity index 100% rename from admin/themes/default/template/controllers/groups/helpers/tree/tree_node_folder_radio.tpl rename to admin-dev/themes/default/template/controllers/groups/helpers/tree/tree_node_folder_radio.tpl diff --git a/admin/themes/default/template/controllers/groups/helpers/tree/tree_node_item_radio.tpl b/admin-dev/themes/default/template/controllers/groups/helpers/tree/tree_node_item_radio.tpl similarity index 100% rename from admin/themes/default/template/controllers/groups/helpers/tree/tree_node_item_radio.tpl rename to admin-dev/themes/default/template/controllers/groups/helpers/tree/tree_node_item_radio.tpl diff --git a/admin/themes/default/template/controllers/groups/helpers/view/index.php b/admin-dev/themes/default/template/controllers/groups/helpers/view/index.php similarity index 100% rename from admin/themes/default/template/controllers/groups/helpers/view/index.php rename to admin-dev/themes/default/template/controllers/groups/helpers/view/index.php diff --git a/admin/themes/default/template/controllers/groups/helpers/view/view.tpl b/admin-dev/themes/default/template/controllers/groups/helpers/view/view.tpl similarity index 100% rename from admin/themes/default/template/controllers/groups/helpers/view/view.tpl rename to admin-dev/themes/default/template/controllers/groups/helpers/view/view.tpl diff --git a/admin/themes/default/template/controllers/groups/index.php b/admin-dev/themes/default/template/controllers/groups/index.php similarity index 100% rename from admin/themes/default/template/controllers/groups/index.php rename to admin-dev/themes/default/template/controllers/groups/index.php diff --git a/admin/themes/default/template/controllers/guest_registration/helpers/view/view.tpl b/admin-dev/themes/default/template/controllers/guest_registration/helpers/view/view.tpl similarity index 100% rename from admin/themes/default/template/controllers/guest_registration/helpers/view/view.tpl rename to admin-dev/themes/default/template/controllers/guest_registration/helpers/view/view.tpl diff --git a/admin/themes/default/template/controllers/guest_registration/index.php b/admin-dev/themes/default/template/controllers/guest_registration/index.php similarity index 100% rename from admin/themes/default/template/controllers/guest_registration/index.php rename to admin-dev/themes/default/template/controllers/guest_registration/index.php diff --git a/admin/themes/default/template/controllers/images/content.tpl b/admin-dev/themes/default/template/controllers/images/content.tpl similarity index 95% rename from admin/themes/default/template/controllers/images/content.tpl rename to admin-dev/themes/default/template/controllers/images/content.tpl index 98e9a7578..cd20a3c3d 100644 --- a/admin/themes/default/template/controllers/images/content.tpl +++ b/admin-dev/themes/default/template/controllers/images/content.tpl @@ -29,7 +29,7 @@ {if isset($display_move) && $display_move} {if $safe_mode}
-

{l s='PrestaShop has detected that your server configuration is not compatible with the new storage system (directive "safe_mode" is activated). You should therefore continue to use the existing system.'}

+

{l s='QloApps has detected that your server configuration is not compatible with the new storage system (directive "safe_mode" is activated). You should therefore continue to use the existing system.'}

{else}
diff --git a/admin/themes/default/template/controllers/images/index.php b/admin-dev/themes/default/template/controllers/images/index.php similarity index 100% rename from admin/themes/default/template/controllers/images/index.php rename to admin-dev/themes/default/template/controllers/images/index.php diff --git a/admin/themes/default/template/controllers/import/helpers/form/form.tpl b/admin-dev/themes/default/template/controllers/import/helpers/form/form.tpl similarity index 100% rename from admin/themes/default/template/controllers/import/helpers/form/form.tpl rename to admin-dev/themes/default/template/controllers/import/helpers/form/form.tpl diff --git a/admin/themes/default/template/controllers/import/helpers/form/index.php b/admin-dev/themes/default/template/controllers/import/helpers/form/index.php similarity index 100% rename from admin/themes/default/template/controllers/import/helpers/form/index.php rename to admin-dev/themes/default/template/controllers/import/helpers/form/index.php diff --git a/admin/themes/default/template/controllers/import/helpers/index.php b/admin-dev/themes/default/template/controllers/import/helpers/index.php similarity index 100% rename from admin/themes/default/template/controllers/import/helpers/index.php rename to admin-dev/themes/default/template/controllers/import/helpers/index.php diff --git a/admin/themes/default/template/controllers/import/helpers/view/index.php b/admin-dev/themes/default/template/controllers/import/helpers/view/index.php similarity index 100% rename from admin/themes/default/template/controllers/import/helpers/view/index.php rename to admin-dev/themes/default/template/controllers/import/helpers/view/index.php diff --git a/admin/themes/default/template/controllers/import/helpers/view/view.tpl b/admin-dev/themes/default/template/controllers/import/helpers/view/view.tpl similarity index 100% rename from admin/themes/default/template/controllers/import/helpers/view/view.tpl rename to admin-dev/themes/default/template/controllers/import/helpers/view/view.tpl diff --git a/admin/themes/default/template/controllers/import/index.php b/admin-dev/themes/default/template/controllers/import/index.php similarity index 100% rename from admin/themes/default/template/controllers/import/index.php rename to admin-dev/themes/default/template/controllers/import/index.php diff --git a/admin/themes/default/template/controllers/index.php b/admin-dev/themes/default/template/controllers/index.php similarity index 100% rename from admin/themes/default/template/controllers/index.php rename to admin-dev/themes/default/template/controllers/index.php diff --git a/admin/themes/default/template/controllers/information/helpers/index.php b/admin-dev/themes/default/template/controllers/information/helpers/index.php similarity index 100% rename from admin/themes/default/template/controllers/information/helpers/index.php rename to admin-dev/themes/default/template/controllers/information/helpers/index.php diff --git a/admin/themes/default/template/controllers/information/helpers/view/index.php b/admin-dev/themes/default/template/controllers/information/helpers/view/index.php similarity index 100% rename from admin/themes/default/template/controllers/information/helpers/view/index.php rename to admin-dev/themes/default/template/controllers/information/helpers/view/index.php diff --git a/admin/themes/default/template/controllers/information/helpers/view/view.tpl b/admin-dev/themes/default/template/controllers/information/helpers/view/view.tpl similarity index 100% rename from admin/themes/default/template/controllers/information/helpers/view/view.tpl rename to admin-dev/themes/default/template/controllers/information/helpers/view/view.tpl diff --git a/admin/themes/default/template/controllers/information/index.php b/admin-dev/themes/default/template/controllers/information/index.php similarity index 100% rename from admin/themes/default/template/controllers/information/index.php rename to admin-dev/themes/default/template/controllers/information/index.php diff --git a/admin/themes/default/template/controllers/invoices/helpers/form/form.tpl b/admin-dev/themes/default/template/controllers/invoices/helpers/form/form.tpl similarity index 100% rename from admin/themes/default/template/controllers/invoices/helpers/form/form.tpl rename to admin-dev/themes/default/template/controllers/invoices/helpers/form/form.tpl diff --git a/admin/themes/default/template/controllers/invoices/helpers/form/index.php b/admin-dev/themes/default/template/controllers/invoices/helpers/form/index.php similarity index 100% rename from admin/themes/default/template/controllers/invoices/helpers/form/index.php rename to admin-dev/themes/default/template/controllers/invoices/helpers/form/index.php diff --git a/admin/themes/default/template/controllers/invoices/helpers/index.php b/admin-dev/themes/default/template/controllers/invoices/helpers/index.php similarity index 100% rename from admin/themes/default/template/controllers/invoices/helpers/index.php rename to admin-dev/themes/default/template/controllers/invoices/helpers/index.php diff --git a/admin/themes/default/template/controllers/invoices/index.php b/admin-dev/themes/default/template/controllers/invoices/index.php similarity index 100% rename from admin/themes/default/template/controllers/invoices/index.php rename to admin-dev/themes/default/template/controllers/invoices/index.php diff --git a/admin/themes/default/template/controllers/languages/helpers/form/form.tpl b/admin-dev/themes/default/template/controllers/languages/helpers/form/form.tpl similarity index 100% rename from admin/themes/default/template/controllers/languages/helpers/form/form.tpl rename to admin-dev/themes/default/template/controllers/languages/helpers/form/form.tpl diff --git a/admin/themes/default/template/controllers/languages/helpers/form/index.php b/admin-dev/themes/default/template/controllers/languages/helpers/form/index.php similarity index 100% rename from admin/themes/default/template/controllers/languages/helpers/form/index.php rename to admin-dev/themes/default/template/controllers/languages/helpers/form/index.php diff --git a/admin/themes/default/template/controllers/languages/helpers/index.php b/admin-dev/themes/default/template/controllers/languages/helpers/index.php similarity index 100% rename from admin/themes/default/template/controllers/languages/helpers/index.php rename to admin-dev/themes/default/template/controllers/languages/helpers/index.php diff --git a/admin/themes/default/template/controllers/languages/index.php b/admin-dev/themes/default/template/controllers/languages/index.php similarity index 100% rename from admin/themes/default/template/controllers/languages/index.php rename to admin-dev/themes/default/template/controllers/languages/index.php diff --git a/admin/themes/default/template/controllers/localization/content.tpl b/admin-dev/themes/default/template/controllers/localization/content.tpl similarity index 100% rename from admin/themes/default/template/controllers/localization/content.tpl rename to admin-dev/themes/default/template/controllers/localization/content.tpl diff --git a/admin/themes/default/template/controllers/localization/index.php b/admin-dev/themes/default/template/controllers/localization/index.php similarity index 100% rename from admin/themes/default/template/controllers/localization/index.php rename to admin-dev/themes/default/template/controllers/localization/index.php diff --git a/admin/themes/default/template/controllers/login/content.tpl b/admin-dev/themes/default/template/controllers/login/content.tpl similarity index 99% rename from admin/themes/default/template/controllers/login/content.tpl rename to admin-dev/themes/default/template/controllers/login/content.tpl index 687c668f3..09312efc6 100644 --- a/admin/themes/default/template/controllers/login/content.tpl +++ b/admin-dev/themes/default/template/controllers/login/content.tpl @@ -25,7 +25,7 @@

- +

{$qloapps_version}
diff --git a/admin/themes/default/template/controllers/login/header.tpl b/admin-dev/themes/default/template/controllers/login/header.tpl similarity index 100% rename from admin/themes/default/template/controllers/login/header.tpl rename to admin-dev/themes/default/template/controllers/login/header.tpl diff --git a/admin/themes/default/template/controllers/login/index.php b/admin-dev/themes/default/template/controllers/login/index.php similarity index 100% rename from admin/themes/default/template/controllers/login/index.php rename to admin-dev/themes/default/template/controllers/login/index.php diff --git a/admin/themes/default/template/controllers/login/layout.tpl b/admin-dev/themes/default/template/controllers/login/layout.tpl similarity index 100% rename from admin/themes/default/template/controllers/login/layout.tpl rename to admin-dev/themes/default/template/controllers/login/layout.tpl diff --git a/admin/themes/default/template/controllers/logs/employee_field.tpl b/admin-dev/themes/default/template/controllers/logs/employee_field.tpl similarity index 100% rename from admin/themes/default/template/controllers/logs/employee_field.tpl rename to admin-dev/themes/default/template/controllers/logs/employee_field.tpl diff --git a/admin/themes/default/template/controllers/logs/helpers/index.php b/admin-dev/themes/default/template/controllers/logs/helpers/index.php similarity index 100% rename from admin/themes/default/template/controllers/logs/helpers/index.php rename to admin-dev/themes/default/template/controllers/logs/helpers/index.php diff --git a/admin/themes/default/template/controllers/logs/helpers/list/index.php b/admin-dev/themes/default/template/controllers/logs/helpers/list/index.php similarity index 100% rename from admin/themes/default/template/controllers/logs/helpers/list/index.php rename to admin-dev/themes/default/template/controllers/logs/helpers/list/index.php diff --git a/admin/themes/default/template/controllers/logs/helpers/list/list_header.tpl b/admin-dev/themes/default/template/controllers/logs/helpers/list/list_header.tpl similarity index 100% rename from admin/themes/default/template/controllers/logs/helpers/list/list_header.tpl rename to admin-dev/themes/default/template/controllers/logs/helpers/list/list_header.tpl diff --git a/admin/themes/default/template/controllers/logs/index.php b/admin-dev/themes/default/template/controllers/logs/index.php similarity index 100% rename from admin/themes/default/template/controllers/logs/index.php rename to admin-dev/themes/default/template/controllers/logs/index.php diff --git a/admin/themes/default/template/controllers/maintenance/helpers/index.php b/admin-dev/themes/default/template/controllers/maintenance/helpers/index.php similarity index 100% rename from admin/themes/default/template/controllers/maintenance/helpers/index.php rename to admin-dev/themes/default/template/controllers/maintenance/helpers/index.php diff --git a/admin/themes/default/template/controllers/maintenance/helpers/options/index.php b/admin-dev/themes/default/template/controllers/maintenance/helpers/options/index.php similarity index 100% rename from admin/themes/default/template/controllers/maintenance/helpers/options/index.php rename to admin-dev/themes/default/template/controllers/maintenance/helpers/options/index.php diff --git a/admin/themes/default/template/controllers/maintenance/helpers/options/options.tpl b/admin-dev/themes/default/template/controllers/maintenance/helpers/options/options.tpl similarity index 100% rename from admin/themes/default/template/controllers/maintenance/helpers/options/options.tpl rename to admin-dev/themes/default/template/controllers/maintenance/helpers/options/options.tpl diff --git a/admin/themes/default/template/controllers/maintenance/index.php b/admin-dev/themes/default/template/controllers/maintenance/index.php similarity index 100% rename from admin/themes/default/template/controllers/maintenance/index.php rename to admin-dev/themes/default/template/controllers/maintenance/index.php diff --git a/admin/themes/default/template/controllers/manufacturers/helpers/index.php b/admin-dev/themes/default/template/controllers/manufacturers/helpers/index.php similarity index 100% rename from admin/themes/default/template/controllers/manufacturers/helpers/index.php rename to admin-dev/themes/default/template/controllers/manufacturers/helpers/index.php diff --git a/admin/themes/default/template/controllers/manufacturers/helpers/view/index.php b/admin-dev/themes/default/template/controllers/manufacturers/helpers/view/index.php similarity index 100% rename from admin/themes/default/template/controllers/manufacturers/helpers/view/index.php rename to admin-dev/themes/default/template/controllers/manufacturers/helpers/view/index.php diff --git a/admin/themes/default/template/controllers/manufacturers/helpers/view/view.tpl b/admin-dev/themes/default/template/controllers/manufacturers/helpers/view/view.tpl similarity index 100% rename from admin/themes/default/template/controllers/manufacturers/helpers/view/view.tpl rename to admin-dev/themes/default/template/controllers/manufacturers/helpers/view/view.tpl diff --git a/admin/themes/default/template/controllers/manufacturers/index.php b/admin-dev/themes/default/template/controllers/manufacturers/index.php similarity index 100% rename from admin/themes/default/template/controllers/manufacturers/index.php rename to admin-dev/themes/default/template/controllers/manufacturers/index.php diff --git a/admin/themes/default/template/controllers/marketing/helpers/index.php b/admin-dev/themes/default/template/controllers/marketing/helpers/index.php similarity index 100% rename from admin/themes/default/template/controllers/marketing/helpers/index.php rename to admin-dev/themes/default/template/controllers/marketing/helpers/index.php diff --git a/admin/themes/default/template/controllers/marketing/helpers/view/index.php b/admin-dev/themes/default/template/controllers/marketing/helpers/view/index.php similarity index 100% rename from admin/themes/default/template/controllers/marketing/helpers/view/index.php rename to admin-dev/themes/default/template/controllers/marketing/helpers/view/index.php diff --git a/admin/themes/default/template/controllers/marketing/helpers/view/view.tpl b/admin-dev/themes/default/template/controllers/marketing/helpers/view/view.tpl similarity index 100% rename from admin/themes/default/template/controllers/marketing/helpers/view/view.tpl rename to admin-dev/themes/default/template/controllers/marketing/helpers/view/view.tpl diff --git a/admin/themes/default/template/controllers/marketing/index.php b/admin-dev/themes/default/template/controllers/marketing/index.php similarity index 100% rename from admin/themes/default/template/controllers/marketing/index.php rename to admin-dev/themes/default/template/controllers/marketing/index.php diff --git a/admin/themes/default/template/controllers/meta/helpers/index.php b/admin-dev/themes/default/template/controllers/meta/helpers/index.php similarity index 100% rename from admin/themes/default/template/controllers/meta/helpers/index.php rename to admin-dev/themes/default/template/controllers/meta/helpers/index.php diff --git a/admin/themes/default/template/controllers/meta/index.php b/admin-dev/themes/default/template/controllers/meta/index.php similarity index 100% rename from admin/themes/default/template/controllers/meta/index.php rename to admin-dev/themes/default/template/controllers/meta/index.php diff --git a/admin/themes/default/template/controllers/modules/ad_bar.tpl b/admin-dev/themes/default/template/controllers/modules/ad_bar.tpl similarity index 100% rename from admin/themes/default/template/controllers/modules/ad_bar.tpl rename to admin-dev/themes/default/template/controllers/modules/ad_bar.tpl diff --git a/admin/themes/default/template/controllers/modules/configuration_bar.tpl b/admin-dev/themes/default/template/controllers/modules/configuration_bar.tpl similarity index 100% rename from admin/themes/default/template/controllers/modules/configuration_bar.tpl rename to admin-dev/themes/default/template/controllers/modules/configuration_bar.tpl diff --git a/admin/themes/default/template/controllers/modules/configure.tpl b/admin-dev/themes/default/template/controllers/modules/configure.tpl similarity index 100% rename from admin/themes/default/template/controllers/modules/configure.tpl rename to admin-dev/themes/default/template/controllers/modules/configure.tpl diff --git a/admin/themes/default/template/controllers/modules/content.tpl b/admin-dev/themes/default/template/controllers/modules/content.tpl similarity index 83% rename from admin/themes/default/template/controllers/modules/content.tpl rename to admin-dev/themes/default/template/controllers/modules/content.tpl index bfc706ef7..838b1fbed 100644 --- a/admin/themes/default/template/controllers/modules/content.tpl +++ b/admin-dev/themes/default/template/controllers/modules/content.tpl @@ -35,14 +35,11 @@
-
- QloApps Addons -
diff --git a/admin/themes/default/template/controllers/modules/favorites.tpl b/admin-dev/themes/default/template/controllers/modules/favorites.tpl similarity index 100% rename from admin/themes/default/template/controllers/modules/favorites.tpl rename to admin-dev/themes/default/template/controllers/modules/favorites.tpl diff --git a/admin/themes/default/template/controllers/modules/filters.tpl b/admin-dev/themes/default/template/controllers/modules/filters.tpl similarity index 100% rename from admin/themes/default/template/controllers/modules/filters.tpl rename to admin-dev/themes/default/template/controllers/modules/filters.tpl diff --git a/admin/themes/default/template/controllers/modules/index.php b/admin-dev/themes/default/template/controllers/modules/index.php similarity index 100% rename from admin/themes/default/template/controllers/modules/index.php rename to admin-dev/themes/default/template/controllers/modules/index.php diff --git a/admin/themes/default/template/controllers/modules/js.tpl b/admin-dev/themes/default/template/controllers/modules/js.tpl similarity index 100% rename from admin/themes/default/template/controllers/modules/js.tpl rename to admin-dev/themes/default/template/controllers/modules/js.tpl diff --git a/admin/themes/default/template/controllers/modules/list.tpl b/admin-dev/themes/default/template/controllers/modules/list.tpl similarity index 100% rename from admin/themes/default/template/controllers/modules/list.tpl rename to admin-dev/themes/default/template/controllers/modules/list.tpl diff --git a/admin/themes/default/template/controllers/modules/login_addons.tpl b/admin-dev/themes/default/template/controllers/modules/login_addons.tpl similarity index 82% rename from admin/themes/default/template/controllers/modules/login_addons.tpl rename to admin-dev/themes/default/template/controllers/modules/login_addons.tpl index 2f6dd2554..3ffe3f369 100644 --- a/admin/themes/default/template/controllers/modules/login_addons.tpl +++ b/admin-dev/themes/default/template/controllers/modules/login_addons.tpl @@ -37,17 +37,16 @@
- Logo PrestaShop Addons -

{l s="Connect your shop with PrestaShop's marketplace in order to automatically import all your Addons purchases."}

+

{l s="Connect your hotel with QloApps Addons in order to automatically import all your Addons purchases."}{l s='QloApps addons'}


{l s="Don't have an account?"}

-

{l s="Discover the Power of PrestaShop Addons! Explore the PrestaShop Official Marketplace and find over 3 500 innovative modules and themes that optimize conversion rates, increase traffic, build customer loyalty and maximize your productivity"}

+

{l s="Discover the Power of QloApps Addons! Explore our Addons store and find over 3 500 innovative modules and themes that optimize conversion rates, increase traffic, build customer loyalty and maximize your productivity"}

-

{l s='Connect to PrestaShop Addons'}

+

{l s='Connect to QloApps Addons'}

diff --git a/admin/themes/default/template/controllers/modules/modal_not_trusted.tpl b/admin-dev/themes/default/template/controllers/modules/modal_not_trusted.tpl similarity index 100% rename from admin/themes/default/template/controllers/modules/modal_not_trusted.tpl rename to admin-dev/themes/default/template/controllers/modules/modal_not_trusted.tpl diff --git a/admin/themes/default/template/controllers/modules/modal_not_trusted_blocked.tpl b/admin-dev/themes/default/template/controllers/modules/modal_not_trusted_blocked.tpl similarity index 100% rename from admin/themes/default/template/controllers/modules/modal_not_trusted_blocked.tpl rename to admin-dev/themes/default/template/controllers/modules/modal_not_trusted_blocked.tpl diff --git a/admin/themes/default/template/controllers/modules/modal_not_trusted_country.tpl b/admin-dev/themes/default/template/controllers/modules/modal_not_trusted_country.tpl similarity index 100% rename from admin/themes/default/template/controllers/modules/modal_not_trusted_country.tpl rename to admin-dev/themes/default/template/controllers/modules/modal_not_trusted_country.tpl diff --git a/admin/themes/default/template/controllers/modules/modal_translation.tpl b/admin-dev/themes/default/template/controllers/modules/modal_translation.tpl similarity index 100% rename from admin/themes/default/template/controllers/modules/modal_translation.tpl rename to admin-dev/themes/default/template/controllers/modules/modal_translation.tpl diff --git a/admin/themes/default/template/controllers/modules/page.tpl b/admin-dev/themes/default/template/controllers/modules/page.tpl similarity index 100% rename from admin/themes/default/template/controllers/modules/page.tpl rename to admin-dev/themes/default/template/controllers/modules/page.tpl diff --git a/admin/themes/default/template/controllers/modules/page_header_toolbar.tpl b/admin-dev/themes/default/template/controllers/modules/page_header_toolbar.tpl similarity index 100% rename from admin/themes/default/template/controllers/modules/page_header_toolbar.tpl rename to admin-dev/themes/default/template/controllers/modules/page_header_toolbar.tpl diff --git a/admin/themes/default/template/controllers/modules/quickview.tpl b/admin-dev/themes/default/template/controllers/modules/quickview.tpl similarity index 100% rename from admin/themes/default/template/controllers/modules/quickview.tpl rename to admin-dev/themes/default/template/controllers/modules/quickview.tpl diff --git a/admin/themes/default/template/controllers/modules/tab_module_line.tpl b/admin-dev/themes/default/template/controllers/modules/tab_module_line.tpl similarity index 100% rename from admin/themes/default/template/controllers/modules/tab_module_line.tpl rename to admin-dev/themes/default/template/controllers/modules/tab_module_line.tpl diff --git a/admin/themes/default/template/controllers/modules/tab_modules_list.tpl b/admin-dev/themes/default/template/controllers/modules/tab_modules_list.tpl similarity index 100% rename from admin/themes/default/template/controllers/modules/tab_modules_list.tpl rename to admin-dev/themes/default/template/controllers/modules/tab_modules_list.tpl diff --git a/admin/themes/default/template/controllers/modules/warning_module.tpl b/admin-dev/themes/default/template/controllers/modules/warning_module.tpl similarity index 100% rename from admin/themes/default/template/controllers/modules/warning_module.tpl rename to admin-dev/themes/default/template/controllers/modules/warning_module.tpl diff --git a/admin/themes/default/template/controllers/modules_catalog/content.tpl b/admin-dev/themes/default/template/controllers/modules_catalog/content.tpl similarity index 100% rename from admin/themes/default/template/controllers/modules_catalog/content.tpl rename to admin-dev/themes/default/template/controllers/modules_catalog/content.tpl diff --git a/admin/themes/default/template/controllers/modules_catalog/index.php b/admin-dev/themes/default/template/controllers/modules_catalog/index.php similarity index 100% rename from admin/themes/default/template/controllers/modules_catalog/index.php rename to admin-dev/themes/default/template/controllers/modules_catalog/index.php diff --git a/admin/themes/default/template/controllers/modules_catalog/modules_list.tpl b/admin-dev/themes/default/template/controllers/modules_catalog/modules_list.tpl similarity index 100% rename from admin/themes/default/template/controllers/modules_catalog/modules_list.tpl rename to admin-dev/themes/default/template/controllers/modules_catalog/modules_list.tpl diff --git a/admin/themes/default/template/controllers/modules_catalog/page.tpl b/admin-dev/themes/default/template/controllers/modules_catalog/page.tpl similarity index 100% rename from admin/themes/default/template/controllers/modules_catalog/page.tpl rename to admin-dev/themes/default/template/controllers/modules_catalog/page.tpl diff --git a/admin/themes/default/template/controllers/modules_catalog/theme_list.tpl b/admin-dev/themes/default/template/controllers/modules_catalog/theme_list.tpl similarity index 100% rename from admin/themes/default/template/controllers/modules_catalog/theme_list.tpl rename to admin-dev/themes/default/template/controllers/modules_catalog/theme_list.tpl diff --git a/admin/themes/default/template/controllers/modules_positions/form.tpl b/admin-dev/themes/default/template/controllers/modules_positions/form.tpl similarity index 100% rename from admin/themes/default/template/controllers/modules_positions/form.tpl rename to admin-dev/themes/default/template/controllers/modules_positions/form.tpl diff --git a/admin/themes/default/template/controllers/modules_positions/index.php b/admin-dev/themes/default/template/controllers/modules_positions/index.php similarity index 100% rename from admin/themes/default/template/controllers/modules_positions/index.php rename to admin-dev/themes/default/template/controllers/modules_positions/index.php diff --git a/admin/themes/default/template/controllers/modules_positions/list_modules.tpl b/admin-dev/themes/default/template/controllers/modules_positions/list_modules.tpl similarity index 100% rename from admin/themes/default/template/controllers/modules_positions/list_modules.tpl rename to admin-dev/themes/default/template/controllers/modules_positions/list_modules.tpl diff --git a/admin/themes/default/template/controllers/normal_products/associations.tpl b/admin-dev/themes/default/template/controllers/normal_products/associations.tpl similarity index 100% rename from admin/themes/default/template/controllers/normal_products/associations.tpl rename to admin-dev/themes/default/template/controllers/normal_products/associations.tpl diff --git a/admin/themes/default/template/controllers/normal_products/features.tpl b/admin-dev/themes/default/template/controllers/normal_products/features.tpl similarity index 100% rename from admin/themes/default/template/controllers/normal_products/features.tpl rename to admin-dev/themes/default/template/controllers/normal_products/features.tpl diff --git a/admin/themes/default/template/controllers/normal_products/helpers/form/form.tpl b/admin-dev/themes/default/template/controllers/normal_products/helpers/form/form.tpl similarity index 97% rename from admin/themes/default/template/controllers/normal_products/helpers/form/form.tpl rename to admin-dev/themes/default/template/controllers/normal_products/helpers/form/form.tpl index bc29f7e99..d1b79abc2 100644 --- a/admin/themes/default/template/controllers/normal_products/helpers/form/form.tpl +++ b/admin-dev/themes/default/template/controllers/normal_products/helpers/form/form.tpl @@ -77,9 +77,9 @@ var product_type_simple = {Product::PTYPE_SIMPLE|intval}; var SELLING_PREFERENCE_WITH_ROOM_TYPE = {Product::SELLING_PREFERENCE_WITH_ROOM_TYPE|intval}; - var SELLING_PREFERENCE_HOTEL_STANDALONE = {Product::SELLING_PREFERENCE_HOTEL_STANDALONE|intval}; - var SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE = {Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE|intval}; - var SELLING_PREFERENCE_STANDALONE = {Product::SELLING_PREFERENCE_STANDALONE|intval}; + var SELLING_PREFERENCE_WITH_HOTEL = {Product::SELLING_PREFERENCE_WITH_HOTEL|intval}; + var SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_ROOM_TYPE = {Product::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_ROOM_TYPE|intval}; + var SELLING_PREFERENCE_WITH_STANDALONE = {Product::SELLING_PREFERENCE_WITH_STANDALONE|intval}; var price_addition_type_with_room = {Product::PRICE_ADDITION_TYPE_WITH_ROOM|intval}; var price_addition_type_independent = {Product::PRICE_ADDITION_TYPE_INDEPENDENT|intval}; diff --git a/admin/themes/default/template/controllers/normal_products/helpers/form/index.php b/admin-dev/themes/default/template/controllers/normal_products/helpers/form/index.php similarity index 100% rename from admin/themes/default/template/controllers/normal_products/helpers/form/index.php rename to admin-dev/themes/default/template/controllers/normal_products/helpers/form/index.php diff --git a/admin/themes/default/template/controllers/normal_products/helpers/index.php b/admin-dev/themes/default/template/controllers/normal_products/helpers/index.php similarity index 100% rename from admin/themes/default/template/controllers/normal_products/helpers/index.php rename to admin-dev/themes/default/template/controllers/normal_products/helpers/index.php diff --git a/admin/themes/default/template/controllers/normal_products/helpers/tree/index.php b/admin-dev/themes/default/template/controllers/normal_products/helpers/tree/index.php similarity index 100% rename from admin/themes/default/template/controllers/normal_products/helpers/tree/index.php rename to admin-dev/themes/default/template/controllers/normal_products/helpers/tree/index.php diff --git a/admin/themes/default/template/controllers/normal_products/helpers/tree/subtree_associated_categories.tpl b/admin-dev/themes/default/template/controllers/normal_products/helpers/tree/subtree_associated_categories.tpl similarity index 100% rename from admin/themes/default/template/controllers/normal_products/helpers/tree/subtree_associated_categories.tpl rename to admin-dev/themes/default/template/controllers/normal_products/helpers/tree/subtree_associated_categories.tpl diff --git a/admin/themes/default/template/controllers/normal_products/helpers/tree/tree_associated_categories.tpl b/admin-dev/themes/default/template/controllers/normal_products/helpers/tree/tree_associated_categories.tpl similarity index 100% rename from admin/themes/default/template/controllers/normal_products/helpers/tree/tree_associated_categories.tpl rename to admin-dev/themes/default/template/controllers/normal_products/helpers/tree/tree_associated_categories.tpl diff --git a/admin/themes/default/template/controllers/normal_products/helpers/tree/tree_associated_header.tpl b/admin-dev/themes/default/template/controllers/normal_products/helpers/tree/tree_associated_header.tpl similarity index 100% rename from admin/themes/default/template/controllers/normal_products/helpers/tree/tree_associated_header.tpl rename to admin-dev/themes/default/template/controllers/normal_products/helpers/tree/tree_associated_header.tpl diff --git a/admin/themes/default/template/controllers/normal_products/helpers/tree/tree_categories.tpl b/admin-dev/themes/default/template/controllers/normal_products/helpers/tree/tree_categories.tpl similarity index 100% rename from admin/themes/default/template/controllers/normal_products/helpers/tree/tree_categories.tpl rename to admin-dev/themes/default/template/controllers/normal_products/helpers/tree/tree_categories.tpl diff --git a/admin/themes/default/template/controllers/normal_products/helpers/tree/tree_headere.tpl b/admin-dev/themes/default/template/controllers/normal_products/helpers/tree/tree_headere.tpl similarity index 100% rename from admin/themes/default/template/controllers/normal_products/helpers/tree/tree_headere.tpl rename to admin-dev/themes/default/template/controllers/normal_products/helpers/tree/tree_headere.tpl diff --git a/admin/themes/default/template/controllers/normal_products/helpers/uploader/ajax.tpl b/admin-dev/themes/default/template/controllers/normal_products/helpers/uploader/ajax.tpl similarity index 100% rename from admin/themes/default/template/controllers/normal_products/helpers/uploader/ajax.tpl rename to admin-dev/themes/default/template/controllers/normal_products/helpers/uploader/ajax.tpl diff --git a/admin/themes/default/template/controllers/normal_products/helpers/uploader/attachment_ajax.tpl b/admin-dev/themes/default/template/controllers/normal_products/helpers/uploader/attachment_ajax.tpl similarity index 100% rename from admin/themes/default/template/controllers/normal_products/helpers/uploader/attachment_ajax.tpl rename to admin-dev/themes/default/template/controllers/normal_products/helpers/uploader/attachment_ajax.tpl diff --git a/admin/themes/default/template/controllers/normal_products/helpers/uploader/index.php b/admin-dev/themes/default/template/controllers/normal_products/helpers/uploader/index.php similarity index 100% rename from admin/themes/default/template/controllers/normal_products/helpers/uploader/index.php rename to admin-dev/themes/default/template/controllers/normal_products/helpers/uploader/index.php diff --git a/admin/themes/default/template/controllers/normal_products/helpers/uploader/virtual_product.tpl b/admin-dev/themes/default/template/controllers/normal_products/helpers/uploader/virtual_product.tpl similarity index 100% rename from admin/themes/default/template/controllers/normal_products/helpers/uploader/virtual_product.tpl rename to admin-dev/themes/default/template/controllers/normal_products/helpers/uploader/virtual_product.tpl diff --git a/admin/themes/default/template/controllers/normal_products/images.tpl b/admin-dev/themes/default/template/controllers/normal_products/images.tpl similarity index 100% rename from admin/themes/default/template/controllers/normal_products/images.tpl rename to admin-dev/themes/default/template/controllers/normal_products/images.tpl diff --git a/admin/themes/default/template/controllers/normal_products/index.php b/admin-dev/themes/default/template/controllers/normal_products/index.php similarity index 100% rename from admin/themes/default/template/controllers/normal_products/index.php rename to admin-dev/themes/default/template/controllers/normal_products/index.php diff --git a/admin/themes/default/template/controllers/normal_products/informations.tpl b/admin-dev/themes/default/template/controllers/normal_products/informations.tpl similarity index 90% rename from admin/themes/default/template/controllers/normal_products/informations.tpl rename to admin-dev/themes/default/template/controllers/normal_products/informations.tpl index 2000a8f8c..ab3a25191 100644 --- a/admin/themes/default/template/controllers/normal_products/informations.tpl +++ b/admin-dev/themes/default/template/controllers/normal_products/informations.tpl @@ -230,25 +230,40 @@
{* Code For Standard product working *} - {*
-
-
selling_preference_type != Product::SELLING_PREFERENCE_WITH_ROOM_TYPE && $product->selling_preference_type != 0}style="display:none;"{/if}> +
id) && $product->selling_preference_type != 0}style="display:none;"{/if}>
{if isset($pack) && $pack->isPack($product->id)}

{l s='The sum of prices of the products in the pack is %s%s%s' sprintf=[$currency->prefix,{toolsConvertPrice price=$pack->noPackPrice($product->id)|string_format:$priceDisplayPrecisionFormat},$currency->suffix]}

{/if}
*} -
- -
- +
+ +
+ +
-
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+ {* As no use in QloApps currently so commented *} {*
{include file="controllers/products/multishop/checkbox.tpl" field="unit_price" type="unit_price"}
diff --git a/admin/themes/default/template/controllers/normal_products/quantities.tpl b/admin-dev/themes/default/template/controllers/normal_products/quantities.tpl similarity index 100% rename from admin/themes/default/template/controllers/normal_products/quantities.tpl rename to admin-dev/themes/default/template/controllers/normal_products/quantities.tpl diff --git a/admin/themes/default/template/controllers/normal_products/seo.tpl b/admin-dev/themes/default/template/controllers/normal_products/seo.tpl similarity index 100% rename from admin/themes/default/template/controllers/normal_products/seo.tpl rename to admin-dev/themes/default/template/controllers/normal_products/seo.tpl diff --git a/admin/themes/default/template/controllers/normal_products/specific_prices_shop_update.tpl b/admin-dev/themes/default/template/controllers/normal_products/specific_prices_shop_update.tpl similarity index 100% rename from admin/themes/default/template/controllers/normal_products/specific_prices_shop_update.tpl rename to admin-dev/themes/default/template/controllers/normal_products/specific_prices_shop_update.tpl diff --git a/admin/themes/default/template/controllers/normal_products/textarea_lang.tpl b/admin-dev/themes/default/template/controllers/normal_products/textarea_lang.tpl similarity index 100% rename from admin/themes/default/template/controllers/normal_products/textarea_lang.tpl rename to admin-dev/themes/default/template/controllers/normal_products/textarea_lang.tpl diff --git a/admin/themes/default/template/controllers/not_found/content.tpl b/admin-dev/themes/default/template/controllers/not_found/content.tpl similarity index 100% rename from admin/themes/default/template/controllers/not_found/content.tpl rename to admin-dev/themes/default/template/controllers/not_found/content.tpl diff --git a/admin/themes/default/template/controllers/not_found/index.php b/admin-dev/themes/default/template/controllers/not_found/index.php similarity index 100% rename from admin/themes/default/template/controllers/not_found/index.php rename to admin-dev/themes/default/template/controllers/not_found/index.php diff --git a/admin/themes/default/template/controllers/order_preferences/helpers/index.php b/admin-dev/themes/default/template/controllers/order_preferences/helpers/index.php similarity index 100% rename from admin/themes/default/template/controllers/order_preferences/helpers/index.php rename to admin-dev/themes/default/template/controllers/order_preferences/helpers/index.php diff --git a/admin/themes/default/template/controllers/order_preferences/helpers/options/index.php b/admin-dev/themes/default/template/controllers/order_preferences/helpers/options/index.php similarity index 100% rename from admin/themes/default/template/controllers/order_preferences/helpers/options/index.php rename to admin-dev/themes/default/template/controllers/order_preferences/helpers/options/index.php diff --git a/admin/themes/default/template/controllers/order_preferences/helpers/options/options.tpl b/admin-dev/themes/default/template/controllers/order_preferences/helpers/options/options.tpl similarity index 100% rename from admin/themes/default/template/controllers/order_preferences/helpers/options/options.tpl rename to admin-dev/themes/default/template/controllers/order_preferences/helpers/options/options.tpl diff --git a/admin/themes/default/template/controllers/order_preferences/index.php b/admin-dev/themes/default/template/controllers/order_preferences/index.php similarity index 100% rename from admin/themes/default/template/controllers/order_preferences/index.php rename to admin-dev/themes/default/template/controllers/order_preferences/index.php diff --git a/admin/themes/default/template/controllers/orders/_booking_document_line.tpl b/admin-dev/themes/default/template/controllers/orders/_booking_document_line.tpl similarity index 100% rename from admin/themes/default/template/controllers/orders/_booking_document_line.tpl rename to admin-dev/themes/default/template/controllers/orders/_booking_document_line.tpl diff --git a/admin/themes/default/template/controllers/orders/_cart_booking_services.tpl b/admin-dev/themes/default/template/controllers/orders/_cart_booking_services.tpl similarity index 100% rename from admin/themes/default/template/controllers/orders/_cart_booking_services.tpl rename to admin-dev/themes/default/template/controllers/orders/_cart_booking_services.tpl diff --git a/admin/themes/default/template/controllers/orders/_current_cart_details_data.tpl b/admin-dev/themes/default/template/controllers/orders/_current_cart_details_data.tpl similarity index 100% rename from admin/themes/default/template/controllers/orders/_current_cart_details_data.tpl rename to admin-dev/themes/default/template/controllers/orders/_current_cart_details_data.tpl diff --git a/admin/themes/default/template/controllers/orders/_documents.tpl b/admin-dev/themes/default/template/controllers/orders/_documents.tpl similarity index 100% rename from admin/themes/default/template/controllers/orders/_documents.tpl rename to admin-dev/themes/default/template/controllers/orders/_documents.tpl diff --git a/admin/themes/default/template/controllers/orders/_filter_hotel_rooms.tpl b/admin-dev/themes/default/template/controllers/orders/_filter_hotel_rooms.tpl similarity index 100% rename from admin/themes/default/template/controllers/orders/_filter_hotel_rooms.tpl rename to admin-dev/themes/default/template/controllers/orders/_filter_hotel_rooms.tpl diff --git a/admin/themes/default/template/controllers/orders/_filter_room_types.tpl b/admin-dev/themes/default/template/controllers/orders/_filter_room_types.tpl similarity index 100% rename from admin/themes/default/template/controllers/orders/_filter_room_types.tpl rename to admin-dev/themes/default/template/controllers/orders/_filter_room_types.tpl diff --git a/admin/themes/default/template/controllers/orders/_hotel_service_products_table.tpl b/admin-dev/themes/default/template/controllers/orders/_hotel_service_products_table.tpl similarity index 100% rename from admin/themes/default/template/controllers/orders/_hotel_service_products_table.tpl rename to admin-dev/themes/default/template/controllers/orders/_hotel_service_products_table.tpl diff --git a/admin/themes/default/template/controllers/orders/_new_service_product.tpl b/admin-dev/themes/default/template/controllers/orders/_new_service_product.tpl similarity index 100% rename from admin/themes/default/template/controllers/orders/_new_service_product.tpl rename to admin-dev/themes/default/template/controllers/orders/_new_service_product.tpl diff --git a/admin/themes/default/template/controllers/orders/_overbookings.tpl b/admin-dev/themes/default/template/controllers/orders/_overbookings.tpl similarity index 100% rename from admin/themes/default/template/controllers/orders/_overbookings.tpl rename to admin-dev/themes/default/template/controllers/orders/_overbookings.tpl diff --git a/admin/themes/default/template/controllers/orders/_print_pdf_icon.tpl b/admin-dev/themes/default/template/controllers/orders/_print_pdf_icon.tpl similarity index 100% rename from admin/themes/default/template/controllers/orders/_print_pdf_icon.tpl rename to admin-dev/themes/default/template/controllers/orders/_print_pdf_icon.tpl diff --git a/admin/themes/default/template/controllers/orders/_product_line.tpl b/admin-dev/themes/default/template/controllers/orders/_product_line.tpl similarity index 99% rename from admin/themes/default/template/controllers/orders/_product_line.tpl rename to admin-dev/themes/default/template/controllers/orders/_product_line.tpl index a27076f75..2b6a2ad1d 100644 --- a/admin/themes/default/template/controllers/orders/_product_line.tpl +++ b/admin-dev/themes/default/template/controllers/orders/_product_line.tpl @@ -190,7 +190,7 @@ {l s='Delete'} - {if isset($use_tourism_tax) && $use_tourism_tax && isset($data.tourism_tax_status) && $data.tourism_tax_status != $tourism_tax_status_not_applicable && !$data.is_cancelled && !$data.is_refunded} + {if isset($use_tourism_tax) && $use_tourism_tax && isset($data.tourism_tax_status) && $data.tourism_tax_status != $tourism_tax_status_not_applicable && $data.id_status != $ROOM_STATUS_CANCELLED && !$data.is_refunded} {if $data.tourism_tax_status == $tourism_tax_status_applied}
  • diff --git a/admin/themes/default/template/controllers/orders/_resolvable_overbookings.tpl b/admin-dev/themes/default/template/controllers/orders/_resolvable_overbookings.tpl similarity index 100% rename from admin/themes/default/template/controllers/orders/_resolvable_overbookings.tpl rename to admin-dev/themes/default/template/controllers/orders/_resolvable_overbookings.tpl diff --git a/admin/themes/default/template/controllers/orders/_rooms_informaion_table.tpl b/admin-dev/themes/default/template/controllers/orders/_rooms_informaion_table.tpl similarity index 96% rename from admin/themes/default/template/controllers/orders/_rooms_informaion_table.tpl rename to admin-dev/themes/default/template/controllers/orders/_rooms_informaion_table.tpl index c4f8cdeab..189b9a7a8 100644 --- a/admin/themes/default/template/controllers/orders/_rooms_informaion_table.tpl +++ b/admin-dev/themes/default/template/controllers/orders/_rooms_informaion_table.tpl @@ -27,7 +27,7 @@
  • {l s='Hotel'}{l s='Property'} {l s='All'} diff --git a/admin/themes/default/template/controllers/access/helpers/form/index.php b/admin-dev/themes/default/template/controllers/access/helpers/form/index.php similarity index 100% rename from admin/themes/default/template/controllers/access/helpers/form/index.php rename to admin-dev/themes/default/template/controllers/access/helpers/form/index.php diff --git a/admin/themes/default/template/controllers/access/helpers/index.php b/admin-dev/themes/default/template/controllers/access/helpers/index.php similarity index 100% rename from admin/themes/default/template/controllers/access/helpers/index.php rename to admin-dev/themes/default/template/controllers/access/helpers/index.php diff --git a/admin/themes/default/template/controllers/access/index.php b/admin-dev/themes/default/template/controllers/access/index.php similarity index 100% rename from admin/themes/default/template/controllers/access/index.php rename to admin-dev/themes/default/template/controllers/access/index.php diff --git a/admin/themes/default/template/controllers/addons_catalog/content.tpl b/admin-dev/themes/default/template/controllers/addons_catalog/content.tpl similarity index 100% rename from admin/themes/default/template/controllers/addons_catalog/content.tpl rename to admin-dev/themes/default/template/controllers/addons_catalog/content.tpl diff --git a/admin/themes/default/template/controllers/addons_catalog/index.php b/admin-dev/themes/default/template/controllers/addons_catalog/index.php similarity index 100% rename from admin/themes/default/template/controllers/addons_catalog/index.php rename to admin-dev/themes/default/template/controllers/addons_catalog/index.php diff --git a/admin/themes/default/template/controllers/addresses/helpers/form/form.tpl b/admin-dev/themes/default/template/controllers/addresses/helpers/form/form.tpl similarity index 100% rename from admin/themes/default/template/controllers/addresses/helpers/form/form.tpl rename to admin-dev/themes/default/template/controllers/addresses/helpers/form/form.tpl diff --git a/admin/themes/default/template/controllers/addresses/helpers/form/index.php b/admin-dev/themes/default/template/controllers/addresses/helpers/form/index.php similarity index 100% rename from admin/themes/default/template/controllers/addresses/helpers/form/index.php rename to admin-dev/themes/default/template/controllers/addresses/helpers/form/index.php diff --git a/admin/themes/default/template/controllers/addresses/helpers/index.php b/admin-dev/themes/default/template/controllers/addresses/helpers/index.php similarity index 100% rename from admin/themes/default/template/controllers/addresses/helpers/index.php rename to admin-dev/themes/default/template/controllers/addresses/helpers/index.php diff --git a/admin/themes/default/template/controllers/addresses/helpers/list/index.php b/admin-dev/themes/default/template/controllers/addresses/helpers/list/index.php similarity index 100% rename from admin/themes/default/template/controllers/addresses/helpers/list/index.php rename to admin-dev/themes/default/template/controllers/addresses/helpers/list/index.php diff --git a/admin/themes/default/template/controllers/addresses/helpers/list/list_header.tpl b/admin-dev/themes/default/template/controllers/addresses/helpers/list/list_header.tpl similarity index 100% rename from admin/themes/default/template/controllers/addresses/helpers/list/list_header.tpl rename to admin-dev/themes/default/template/controllers/addresses/helpers/list/list_header.tpl diff --git a/admin/themes/default/template/controllers/addresses/index.php b/admin-dev/themes/default/template/controllers/addresses/index.php similarity index 100% rename from admin/themes/default/template/controllers/addresses/index.php rename to admin-dev/themes/default/template/controllers/addresses/index.php diff --git a/admin/themes/default/template/controllers/attachments/helpers/list/list_action_delete.tpl b/admin-dev/themes/default/template/controllers/attachments/helpers/list/list_action_delete.tpl similarity index 100% rename from admin/themes/default/template/controllers/attachments/helpers/list/list_action_delete.tpl rename to admin-dev/themes/default/template/controllers/attachments/helpers/list/list_action_delete.tpl diff --git a/admin/themes/default/template/controllers/attachments/index.php b/admin-dev/themes/default/template/controllers/attachments/index.php similarity index 100% rename from admin/themes/default/template/controllers/attachments/index.php rename to admin-dev/themes/default/template/controllers/attachments/index.php diff --git a/admin/themes/default/template/controllers/attribute_generator/content.tpl b/admin-dev/themes/default/template/controllers/attribute_generator/content.tpl similarity index 100% rename from admin/themes/default/template/controllers/attribute_generator/content.tpl rename to admin-dev/themes/default/template/controllers/attribute_generator/content.tpl diff --git a/admin/themes/default/template/controllers/attribute_generator/index.php b/admin-dev/themes/default/template/controllers/attribute_generator/index.php similarity index 100% rename from admin/themes/default/template/controllers/attribute_generator/index.php rename to admin-dev/themes/default/template/controllers/attribute_generator/index.php diff --git a/admin/themes/default/template/controllers/attributes/helpers/form/form.tpl b/admin-dev/themes/default/template/controllers/attributes/helpers/form/form.tpl similarity index 100% rename from admin/themes/default/template/controllers/attributes/helpers/form/form.tpl rename to admin-dev/themes/default/template/controllers/attributes/helpers/form/form.tpl diff --git a/admin/themes/default/template/controllers/attributes/helpers/form/index.php b/admin-dev/themes/default/template/controllers/attributes/helpers/form/index.php similarity index 100% rename from admin/themes/default/template/controllers/attributes/helpers/form/index.php rename to admin-dev/themes/default/template/controllers/attributes/helpers/form/index.php diff --git a/admin/themes/default/template/controllers/attributes/helpers/index.php b/admin-dev/themes/default/template/controllers/attributes/helpers/index.php similarity index 100% rename from admin/themes/default/template/controllers/attributes/helpers/index.php rename to admin-dev/themes/default/template/controllers/attributes/helpers/index.php diff --git a/admin/themes/default/template/controllers/attributes/index.php b/admin-dev/themes/default/template/controllers/attributes/index.php similarity index 100% rename from admin/themes/default/template/controllers/attributes/index.php rename to admin-dev/themes/default/template/controllers/attributes/index.php diff --git a/admin/themes/default/template/controllers/attributes_groups/helpers/form/form.tpl b/admin-dev/themes/default/template/controllers/attributes_groups/helpers/form/form.tpl similarity index 100% rename from admin/themes/default/template/controllers/attributes_groups/helpers/form/form.tpl rename to admin-dev/themes/default/template/controllers/attributes_groups/helpers/form/form.tpl diff --git a/admin/themes/default/template/controllers/attributes_groups/helpers/form/index.php b/admin-dev/themes/default/template/controllers/attributes_groups/helpers/form/index.php similarity index 100% rename from admin/themes/default/template/controllers/attributes_groups/helpers/form/index.php rename to admin-dev/themes/default/template/controllers/attributes_groups/helpers/form/index.php diff --git a/admin/themes/default/template/controllers/attributes_groups/helpers/index.php b/admin-dev/themes/default/template/controllers/attributes_groups/helpers/index.php similarity index 100% rename from admin/themes/default/template/controllers/attributes_groups/helpers/index.php rename to admin-dev/themes/default/template/controllers/attributes_groups/helpers/index.php diff --git a/admin/themes/default/template/controllers/attributes_groups/helpers/list/index.php b/admin-dev/themes/default/template/controllers/attributes_groups/helpers/list/index.php similarity index 100% rename from admin/themes/default/template/controllers/attributes_groups/helpers/list/index.php rename to admin-dev/themes/default/template/controllers/attributes_groups/helpers/list/index.php diff --git a/admin/themes/default/template/controllers/attributes_groups/helpers/list/list_header.tpl b/admin-dev/themes/default/template/controllers/attributes_groups/helpers/list/list_header.tpl similarity index 100% rename from admin/themes/default/template/controllers/attributes_groups/helpers/list/list_header.tpl rename to admin-dev/themes/default/template/controllers/attributes_groups/helpers/list/list_header.tpl diff --git a/admin/themes/default/template/controllers/attributes_groups/helpers/view/index.php b/admin-dev/themes/default/template/controllers/attributes_groups/helpers/view/index.php similarity index 100% rename from admin/themes/default/template/controllers/attributes_groups/helpers/view/index.php rename to admin-dev/themes/default/template/controllers/attributes_groups/helpers/view/index.php diff --git a/admin/themes/default/template/controllers/attributes_groups/index.php b/admin-dev/themes/default/template/controllers/attributes_groups/index.php similarity index 100% rename from admin/themes/default/template/controllers/attributes_groups/index.php rename to admin-dev/themes/default/template/controllers/attributes_groups/index.php diff --git a/admin/themes/default/template/controllers/backup/download/index.php b/admin-dev/themes/default/template/controllers/backup/download/index.php similarity index 100% rename from admin/themes/default/template/controllers/backup/download/index.php rename to admin-dev/themes/default/template/controllers/backup/download/index.php diff --git a/admin/themes/default/template/controllers/backup/download/view.tpl b/admin-dev/themes/default/template/controllers/backup/download/view.tpl similarity index 100% rename from admin/themes/default/template/controllers/backup/download/view.tpl rename to admin-dev/themes/default/template/controllers/backup/download/view.tpl diff --git a/admin/themes/default/template/controllers/backup/helpers/index.php b/admin-dev/themes/default/template/controllers/backup/helpers/index.php similarity index 100% rename from admin/themes/default/template/controllers/backup/helpers/index.php rename to admin-dev/themes/default/template/controllers/backup/helpers/index.php diff --git a/admin/themes/default/template/controllers/backup/helpers/list/index.php b/admin-dev/themes/default/template/controllers/backup/helpers/list/index.php similarity index 100% rename from admin/themes/default/template/controllers/backup/helpers/list/index.php rename to admin-dev/themes/default/template/controllers/backup/helpers/list/index.php diff --git a/admin/themes/default/template/controllers/backup/helpers/list/list_header.tpl b/admin-dev/themes/default/template/controllers/backup/helpers/list/list_header.tpl similarity index 92% rename from admin/themes/default/template/controllers/backup/helpers/list/list_header.tpl rename to admin-dev/themes/default/template/controllers/backup/helpers/list/list_header.tpl index 341197364..1fe43c383 100644 --- a/admin/themes/default/template/controllers/backup/helpers/list/list_header.tpl +++ b/admin-dev/themes/default/template/controllers/backup/helpers/list/list_header.tpl @@ -68,14 +68,14 @@ {if $host_mode} {else}
    diff --git a/admin/themes/default/template/controllers/backup/helpers/view/index.php b/admin-dev/themes/default/template/controllers/backup/helpers/view/index.php similarity index 100% rename from admin/themes/default/template/controllers/backup/helpers/view/index.php rename to admin-dev/themes/default/template/controllers/backup/helpers/view/index.php diff --git a/admin/themes/default/template/controllers/backup/helpers/view/view.tpl b/admin-dev/themes/default/template/controllers/backup/helpers/view/view.tpl similarity index 100% rename from admin/themes/default/template/controllers/backup/helpers/view/view.tpl rename to admin-dev/themes/default/template/controllers/backup/helpers/view/view.tpl diff --git a/admin/themes/default/template/controllers/backup/index.php b/admin-dev/themes/default/template/controllers/backup/index.php similarity index 100% rename from admin/themes/default/template/controllers/backup/index.php rename to admin-dev/themes/default/template/controllers/backup/index.php diff --git a/admin/themes/default/template/controllers/carrier_wizard/helpers/form/form.tpl b/admin-dev/themes/default/template/controllers/carrier_wizard/helpers/form/form.tpl similarity index 100% rename from admin/themes/default/template/controllers/carrier_wizard/helpers/form/form.tpl rename to admin-dev/themes/default/template/controllers/carrier_wizard/helpers/form/form.tpl diff --git a/admin/themes/default/template/controllers/carrier_wizard/helpers/form/form_ranges.tpl b/admin-dev/themes/default/template/controllers/carrier_wizard/helpers/form/form_ranges.tpl similarity index 100% rename from admin/themes/default/template/controllers/carrier_wizard/helpers/form/form_ranges.tpl rename to admin-dev/themes/default/template/controllers/carrier_wizard/helpers/form/form_ranges.tpl diff --git a/admin/themes/default/template/controllers/carrier_wizard/helpers/form/index.php b/admin-dev/themes/default/template/controllers/carrier_wizard/helpers/form/index.php similarity index 100% rename from admin/themes/default/template/controllers/carrier_wizard/helpers/form/index.php rename to admin-dev/themes/default/template/controllers/carrier_wizard/helpers/form/index.php diff --git a/admin/themes/default/template/controllers/carrier_wizard/helpers/index.php b/admin-dev/themes/default/template/controllers/carrier_wizard/helpers/index.php similarity index 100% rename from admin/themes/default/template/controllers/carrier_wizard/helpers/index.php rename to admin-dev/themes/default/template/controllers/carrier_wizard/helpers/index.php diff --git a/admin/themes/default/template/controllers/carrier_wizard/helpers/view/index.php b/admin-dev/themes/default/template/controllers/carrier_wizard/helpers/view/index.php similarity index 100% rename from admin/themes/default/template/controllers/carrier_wizard/helpers/view/index.php rename to admin-dev/themes/default/template/controllers/carrier_wizard/helpers/view/index.php diff --git a/admin/themes/default/template/controllers/carrier_wizard/helpers/view/view.tpl b/admin-dev/themes/default/template/controllers/carrier_wizard/helpers/view/view.tpl similarity index 100% rename from admin/themes/default/template/controllers/carrier_wizard/helpers/view/view.tpl rename to admin-dev/themes/default/template/controllers/carrier_wizard/helpers/view/view.tpl diff --git a/admin/themes/default/template/controllers/carrier_wizard/index.php b/admin-dev/themes/default/template/controllers/carrier_wizard/index.php similarity index 100% rename from admin/themes/default/template/controllers/carrier_wizard/index.php rename to admin-dev/themes/default/template/controllers/carrier_wizard/index.php diff --git a/admin/themes/default/template/controllers/carrier_wizard/logo.tpl b/admin-dev/themes/default/template/controllers/carrier_wizard/logo.tpl similarity index 100% rename from admin/themes/default/template/controllers/carrier_wizard/logo.tpl rename to admin-dev/themes/default/template/controllers/carrier_wizard/logo.tpl diff --git a/admin/themes/default/template/controllers/carrier_wizard/summary.tpl b/admin-dev/themes/default/template/controllers/carrier_wizard/summary.tpl similarity index 100% rename from admin/themes/default/template/controllers/carrier_wizard/summary.tpl rename to admin-dev/themes/default/template/controllers/carrier_wizard/summary.tpl diff --git a/admin/themes/default/template/controllers/carriers/helpers/form/form.tpl b/admin-dev/themes/default/template/controllers/carriers/helpers/form/form.tpl similarity index 100% rename from admin/themes/default/template/controllers/carriers/helpers/form/form.tpl rename to admin-dev/themes/default/template/controllers/carriers/helpers/form/form.tpl diff --git a/admin/themes/default/template/controllers/carriers/helpers/form/index.php b/admin-dev/themes/default/template/controllers/carriers/helpers/form/index.php similarity index 100% rename from admin/themes/default/template/controllers/carriers/helpers/form/index.php rename to admin-dev/themes/default/template/controllers/carriers/helpers/form/index.php diff --git a/admin/themes/default/template/controllers/carriers/helpers/index.php b/admin-dev/themes/default/template/controllers/carriers/helpers/index.php similarity index 100% rename from admin/themes/default/template/controllers/carriers/helpers/index.php rename to admin-dev/themes/default/template/controllers/carriers/helpers/index.php diff --git a/admin/themes/default/template/controllers/carriers/helpers/list/index.php b/admin-dev/themes/default/template/controllers/carriers/helpers/list/index.php similarity index 100% rename from admin/themes/default/template/controllers/carriers/helpers/list/index.php rename to admin-dev/themes/default/template/controllers/carriers/helpers/list/index.php diff --git a/admin/themes/default/template/controllers/carriers/helpers/list/list_content.tpl b/admin-dev/themes/default/template/controllers/carriers/helpers/list/list_content.tpl similarity index 100% rename from admin/themes/default/template/controllers/carriers/helpers/list/list_content.tpl rename to admin-dev/themes/default/template/controllers/carriers/helpers/list/list_content.tpl diff --git a/admin/themes/default/template/controllers/carriers/helpers/view/index.php b/admin-dev/themes/default/template/controllers/carriers/helpers/view/index.php similarity index 100% rename from admin/themes/default/template/controllers/carriers/helpers/view/index.php rename to admin-dev/themes/default/template/controllers/carriers/helpers/view/index.php diff --git a/admin/themes/default/template/controllers/carriers/helpers/view/view.tpl b/admin-dev/themes/default/template/controllers/carriers/helpers/view/view.tpl similarity index 100% rename from admin/themes/default/template/controllers/carriers/helpers/view/view.tpl rename to admin-dev/themes/default/template/controllers/carriers/helpers/view/view.tpl diff --git a/admin/themes/default/template/controllers/carriers/index.php b/admin-dev/themes/default/template/controllers/carriers/index.php similarity index 100% rename from admin/themes/default/template/controllers/carriers/index.php rename to admin-dev/themes/default/template/controllers/carriers/index.php diff --git a/admin/themes/default/template/controllers/cart_rules/actions.tpl b/admin-dev/themes/default/template/controllers/cart_rules/actions.tpl similarity index 100% rename from admin/themes/default/template/controllers/cart_rules/actions.tpl rename to admin-dev/themes/default/template/controllers/cart_rules/actions.tpl diff --git a/admin/themes/default/template/controllers/cart_rules/conditions.tpl b/admin-dev/themes/default/template/controllers/cart_rules/conditions.tpl similarity index 100% rename from admin/themes/default/template/controllers/cart_rules/conditions.tpl rename to admin-dev/themes/default/template/controllers/cart_rules/conditions.tpl diff --git a/admin/themes/default/template/controllers/cart_rules/form.js b/admin-dev/themes/default/template/controllers/cart_rules/form.js similarity index 100% rename from admin/themes/default/template/controllers/cart_rules/form.js rename to admin-dev/themes/default/template/controllers/cart_rules/form.js diff --git a/admin/themes/default/template/controllers/cart_rules/form.tpl b/admin-dev/themes/default/template/controllers/cart_rules/form.tpl similarity index 100% rename from admin/themes/default/template/controllers/cart_rules/form.tpl rename to admin-dev/themes/default/template/controllers/cart_rules/form.tpl diff --git a/admin/themes/default/template/controllers/cart_rules/helpers/index.php b/admin-dev/themes/default/template/controllers/cart_rules/helpers/index.php similarity index 100% rename from admin/themes/default/template/controllers/cart_rules/helpers/index.php rename to admin-dev/themes/default/template/controllers/cart_rules/helpers/index.php diff --git a/admin/themes/default/template/controllers/cart_rules/helpers/list/_hotel_names_tooltip.tpl b/admin-dev/themes/default/template/controllers/cart_rules/helpers/list/_hotel_names_tooltip.tpl similarity index 100% rename from admin/themes/default/template/controllers/cart_rules/helpers/list/_hotel_names_tooltip.tpl rename to admin-dev/themes/default/template/controllers/cart_rules/helpers/list/_hotel_names_tooltip.tpl diff --git a/admin/themes/default/template/controllers/cart_rules/helpers/list/index.php b/admin-dev/themes/default/template/controllers/cart_rules/helpers/list/index.php similarity index 100% rename from admin/themes/default/template/controllers/cart_rules/helpers/list/index.php rename to admin-dev/themes/default/template/controllers/cart_rules/helpers/list/index.php diff --git a/admin/themes/default/template/controllers/cart_rules/helpers/list/list_header.tpl b/admin-dev/themes/default/template/controllers/cart_rules/helpers/list/list_header.tpl similarity index 100% rename from admin/themes/default/template/controllers/cart_rules/helpers/list/list_header.tpl rename to admin-dev/themes/default/template/controllers/cart_rules/helpers/list/list_header.tpl diff --git a/admin/themes/default/template/controllers/cart_rules/index.php b/admin-dev/themes/default/template/controllers/cart_rules/index.php similarity index 100% rename from admin/themes/default/template/controllers/cart_rules/index.php rename to admin-dev/themes/default/template/controllers/cart_rules/index.php diff --git a/admin/themes/default/template/controllers/cart_rules/informations.tpl b/admin-dev/themes/default/template/controllers/cart_rules/informations.tpl similarity index 100% rename from admin/themes/default/template/controllers/cart_rules/informations.tpl rename to admin-dev/themes/default/template/controllers/cart_rules/informations.tpl diff --git a/admin/themes/default/template/controllers/cart_rules/modal_confirm_bulk_delete.tpl b/admin-dev/themes/default/template/controllers/cart_rules/modal_confirm_bulk_delete.tpl similarity index 100% rename from admin/themes/default/template/controllers/cart_rules/modal_confirm_bulk_delete.tpl rename to admin-dev/themes/default/template/controllers/cart_rules/modal_confirm_bulk_delete.tpl diff --git a/admin/themes/default/template/controllers/cart_rules/modal_confirm_delete.tpl b/admin-dev/themes/default/template/controllers/cart_rules/modal_confirm_delete.tpl similarity index 100% rename from admin/themes/default/template/controllers/cart_rules/modal_confirm_delete.tpl rename to admin-dev/themes/default/template/controllers/cart_rules/modal_confirm_delete.tpl diff --git a/admin/themes/default/template/controllers/cart_rules/product_rule.tpl b/admin-dev/themes/default/template/controllers/cart_rules/product_rule.tpl similarity index 100% rename from admin/themes/default/template/controllers/cart_rules/product_rule.tpl rename to admin-dev/themes/default/template/controllers/cart_rules/product_rule.tpl diff --git a/admin/themes/default/template/controllers/cart_rules/product_rule_group.tpl b/admin-dev/themes/default/template/controllers/cart_rules/product_rule_group.tpl similarity index 100% rename from admin/themes/default/template/controllers/cart_rules/product_rule_group.tpl rename to admin-dev/themes/default/template/controllers/cart_rules/product_rule_group.tpl diff --git a/admin/themes/default/template/controllers/cart_rules/product_rule_itemlist.tpl b/admin-dev/themes/default/template/controllers/cart_rules/product_rule_itemlist.tpl similarity index 100% rename from admin/themes/default/template/controllers/cart_rules/product_rule_itemlist.tpl rename to admin-dev/themes/default/template/controllers/cart_rules/product_rule_itemlist.tpl diff --git a/admin/themes/default/template/controllers/carts/_orders.tpl b/admin-dev/themes/default/template/controllers/carts/_orders.tpl similarity index 100% rename from admin/themes/default/template/controllers/carts/_orders.tpl rename to admin-dev/themes/default/template/controllers/carts/_orders.tpl diff --git a/admin/themes/default/template/controllers/carts/helpers/index.php b/admin-dev/themes/default/template/controllers/carts/helpers/index.php similarity index 100% rename from admin/themes/default/template/controllers/carts/helpers/index.php rename to admin-dev/themes/default/template/controllers/carts/helpers/index.php diff --git a/admin/themes/default/template/controllers/carts/helpers/view/index.php b/admin-dev/themes/default/template/controllers/carts/helpers/view/index.php similarity index 100% rename from admin/themes/default/template/controllers/carts/helpers/view/index.php rename to admin-dev/themes/default/template/controllers/carts/helpers/view/index.php diff --git a/admin/themes/default/template/controllers/carts/helpers/view/view.tpl b/admin-dev/themes/default/template/controllers/carts/helpers/view/view.tpl similarity index 97% rename from admin/themes/default/template/controllers/carts/helpers/view/view.tpl rename to admin-dev/themes/default/template/controllers/carts/helpers/view/view.tpl index c4cacfa00..c22482496 100644 --- a/admin/themes/default/template/controllers/carts/helpers/view/view.tpl +++ b/admin-dev/themes/default/template/controllers/carts/helpers/view/view.tpl @@ -102,7 +102,7 @@
    {dateFormat date=$room['date_from'] full=$is_full_date} - {dateFormat date=$room['date_to'] full=$is_full_date} - {if $room['adults']}{$room['adults']}{/if} {if $room['adults'] > 1}{l s='Adults'}{else}{l s='Adult'}{/if}{if {$room['children']}}, {$room['children']} {if $room['children'] > 1}{l s='Children'}{else}{l s='Child'}{/if}{/if} + {if $stay['adults']}{$stay['adults']}{/if} {if $stay['adults'] > 1}{l s='Adults'}{else}{l s='Adult'}{/if}{if {$stay['children']}}, {$stay['children']} {if $stay['children'] > 1}{l s='Children'}{else}{l s='Child'}{/if}{/if} {displayWtPriceWithCurrency price=$room['feature_price_tax_excl'] currency=$currency}
    - + diff --git a/admin/themes/default/template/controllers/orders/_select_payment.tpl b/admin-dev/themes/default/template/controllers/orders/_select_payment.tpl similarity index 100% rename from admin/themes/default/template/controllers/orders/_select_payment.tpl rename to admin-dev/themes/default/template/controllers/orders/_select_payment.tpl diff --git a/admin/themes/default/template/controllers/orders/_shipping.tpl b/admin-dev/themes/default/template/controllers/orders/_shipping.tpl similarity index 100% rename from admin/themes/default/template/controllers/orders/_shipping.tpl rename to admin-dev/themes/default/template/controllers/orders/_shipping.tpl diff --git a/admin/themes/default/template/controllers/orders/_standalone_service_products_table.tpl b/admin-dev/themes/default/template/controllers/orders/_standalone_service_products_table.tpl similarity index 100% rename from admin/themes/default/template/controllers/orders/_standalone_service_products_table.tpl rename to admin-dev/themes/default/template/controllers/orders/_standalone_service_products_table.tpl diff --git a/admin/themes/default/template/controllers/orders/_stay_periods_tooltip.tpl b/admin-dev/themes/default/template/controllers/orders/_stay_periods_tooltip.tpl similarity index 100% rename from admin/themes/default/template/controllers/orders/_stay_periods_tooltip.tpl rename to admin-dev/themes/default/template/controllers/orders/_stay_periods_tooltip.tpl diff --git a/admin/themes/default/template/controllers/orders/_tourism_tax_actions.tpl b/admin-dev/themes/default/template/controllers/orders/_tourism_tax_actions.tpl similarity index 100% rename from admin/themes/default/template/controllers/orders/_tourism_tax_actions.tpl rename to admin-dev/themes/default/template/controllers/orders/_tourism_tax_actions.tpl diff --git a/admin/themes/default/template/controllers/orders/form.tpl b/admin-dev/themes/default/template/controllers/orders/form.tpl similarity index 99% rename from admin/themes/default/template/controllers/orders/form.tpl rename to admin-dev/themes/default/template/controllers/orders/form.tpl index e18a07406..dcbcf7b02 100644 --- a/admin/themes/default/template/controllers/orders/form.tpl +++ b/admin-dev/themes/default/template/controllers/orders/form.tpl @@ -35,6 +35,7 @@ var can_edit_booking_carts = {if isset($can_edit_booking_carts) && $can_edit_booking_carts}true{else}false{/if}; var can_add_addresses = {if isset($can_add_addresses) && $can_add_addresses}true{else}false{/if}; var admin_order_tab_link = "{$link->getAdminLink('AdminOrders')|addslashes}"; + var new_service_pcm_once_for_booking = {Product::PRICE_CALCULATION_METHOD_ONCE_FOR_BOOKING|intval}; var changed_shipping_price = false; var shipping_price_selected_carrier = ''; var current_index = '{$current|escape:'html':'UTF-8'}&token={$token|escape:'html':'UTF-8'}'; @@ -53,6 +54,13 @@ var priceDisplayPrecision = {$smarty.const._PS_PRICE_DISPLAY_PRECISION_|intval}; $(document).ready(function() { + $(document).on('change', '#add_new_room_services_form select[name="price_calculation_type"]', function() { + if ($(this).val() == new_service_pcm_once_for_booking) { + $('#new_service_pcm_days_container').hide(); + } else { + $('#new_service_pcm_days_container').show(); + } + }); $('.total_taxes_price_info img').tooltip({ content: function () { @@ -1659,6 +1667,7 @@ }, complete: function() { $(".loading_overlay").hide(); + initTooltip(); } }); }); @@ -1794,6 +1803,7 @@ }, complete: function() { $(".loading_overlay").hide(); + initTooltip(); } }); }); @@ -1844,6 +1854,7 @@ }, complete: function() { $(".loading_overlay").hide(); + initTooltip(); } }); }); diff --git a/admin/themes/default/template/controllers/orders/form_customization_feedback.tpl b/admin-dev/themes/default/template/controllers/orders/form_customization_feedback.tpl similarity index 100% rename from admin/themes/default/template/controllers/orders/form_customization_feedback.tpl rename to admin-dev/themes/default/template/controllers/orders/form_customization_feedback.tpl diff --git a/admin/themes/default/template/controllers/orders/helpers/index.php b/admin-dev/themes/default/template/controllers/orders/helpers/index.php similarity index 100% rename from admin/themes/default/template/controllers/orders/helpers/index.php rename to admin-dev/themes/default/template/controllers/orders/helpers/index.php diff --git a/admin/themes/default/template/controllers/orders/helpers/list/index.php b/admin-dev/themes/default/template/controllers/orders/helpers/list/index.php similarity index 100% rename from admin/themes/default/template/controllers/orders/helpers/list/index.php rename to admin-dev/themes/default/template/controllers/orders/helpers/list/index.php diff --git a/admin/themes/default/template/controllers/orders/helpers/list/list_header.tpl b/admin-dev/themes/default/template/controllers/orders/helpers/list/list_header.tpl similarity index 100% rename from admin/themes/default/template/controllers/orders/helpers/list/list_header.tpl rename to admin-dev/themes/default/template/controllers/orders/helpers/list/list_header.tpl diff --git a/admin/themes/default/template/controllers/orders/helpers/view/index.php b/admin-dev/themes/default/template/controllers/orders/helpers/view/index.php similarity index 100% rename from admin/themes/default/template/controllers/orders/helpers/view/index.php rename to admin-dev/themes/default/template/controllers/orders/helpers/view/index.php diff --git a/admin/themes/default/template/controllers/orders/helpers/view/view.tpl b/admin-dev/themes/default/template/controllers/orders/helpers/view/view.tpl similarity index 99% rename from admin/themes/default/template/controllers/orders/helpers/view/view.tpl rename to admin-dev/themes/default/template/controllers/orders/helpers/view/view.tpl index 3b371bc1f..54d7c49c7 100644 --- a/admin/themes/default/template/controllers/orders/helpers/view/view.tpl +++ b/admin-dev/themes/default/template/controllers/orders/helpers/view/view.tpl @@ -44,6 +44,7 @@ {/if} @@ -343,7 +343,7 @@ diff --git a/admin/themes/default/template/helpers/calendar/calendar.tpl b/admin-dev/themes/default/template/helpers/calendar/calendar.tpl similarity index 100% rename from admin/themes/default/template/helpers/calendar/calendar.tpl rename to admin-dev/themes/default/template/helpers/calendar/calendar.tpl diff --git a/admin/themes/default/template/helpers/calendar/index.php b/admin-dev/themes/default/template/helpers/calendar/index.php similarity index 100% rename from admin/themes/default/template/helpers/calendar/index.php rename to admin-dev/themes/default/template/helpers/calendar/index.php diff --git a/admin/themes/default/template/helpers/dataviz/graph.tpl b/admin-dev/themes/default/template/helpers/dataviz/graph.tpl similarity index 100% rename from admin/themes/default/template/helpers/dataviz/graph.tpl rename to admin-dev/themes/default/template/helpers/dataviz/graph.tpl diff --git a/admin/themes/default/template/helpers/dataviz/index.php b/admin-dev/themes/default/template/helpers/dataviz/index.php similarity index 100% rename from admin/themes/default/template/helpers/dataviz/index.php rename to admin-dev/themes/default/template/helpers/dataviz/index.php diff --git a/admin/themes/default/template/helpers/form/assoshop.tpl b/admin-dev/themes/default/template/helpers/form/assoshop.tpl similarity index 100% rename from admin/themes/default/template/helpers/form/assoshop.tpl rename to admin-dev/themes/default/template/helpers/form/assoshop.tpl diff --git a/admin/themes/default/template/helpers/form/form.tpl b/admin-dev/themes/default/template/helpers/form/form.tpl similarity index 100% rename from admin/themes/default/template/helpers/form/form.tpl rename to admin-dev/themes/default/template/helpers/form/form.tpl diff --git a/admin/themes/default/template/helpers/form/form_category.tpl b/admin-dev/themes/default/template/helpers/form/form_category.tpl similarity index 100% rename from admin/themes/default/template/helpers/form/form_category.tpl rename to admin-dev/themes/default/template/helpers/form/form_category.tpl diff --git a/admin/themes/default/template/helpers/form/form_group.tpl b/admin-dev/themes/default/template/helpers/form/form_group.tpl similarity index 100% rename from admin/themes/default/template/helpers/form/form_group.tpl rename to admin-dev/themes/default/template/helpers/form/form_group.tpl diff --git a/admin/themes/default/template/helpers/form/index.php b/admin-dev/themes/default/template/helpers/form/index.php similarity index 100% rename from admin/themes/default/template/helpers/form/index.php rename to admin-dev/themes/default/template/helpers/form/index.php diff --git a/admin/themes/default/template/helpers/index.php b/admin-dev/themes/default/template/helpers/index.php similarity index 100% rename from admin/themes/default/template/helpers/index.php rename to admin-dev/themes/default/template/helpers/index.php diff --git a/admin/themes/default/template/helpers/kpi/index.php b/admin-dev/themes/default/template/helpers/kpi/index.php similarity index 100% rename from admin/themes/default/template/helpers/kpi/index.php rename to admin-dev/themes/default/template/helpers/kpi/index.php diff --git a/admin/themes/default/template/helpers/kpi/kpi.tpl b/admin-dev/themes/default/template/helpers/kpi/kpi.tpl similarity index 100% rename from admin/themes/default/template/helpers/kpi/kpi.tpl rename to admin-dev/themes/default/template/helpers/kpi/kpi.tpl diff --git a/admin/themes/default/template/helpers/kpi/row.tpl b/admin-dev/themes/default/template/helpers/kpi/row.tpl similarity index 100% rename from admin/themes/default/template/helpers/kpi/row.tpl rename to admin-dev/themes/default/template/helpers/kpi/row.tpl diff --git a/admin/themes/default/template/helpers/list/index.php b/admin-dev/themes/default/template/helpers/list/index.php similarity index 100% rename from admin/themes/default/template/helpers/list/index.php rename to admin-dev/themes/default/template/helpers/list/index.php diff --git a/admin/themes/default/template/helpers/list/list.tpl b/admin-dev/themes/default/template/helpers/list/list.tpl similarity index 100% rename from admin/themes/default/template/helpers/list/list.tpl rename to admin-dev/themes/default/template/helpers/list/list.tpl diff --git a/admin/themes/default/template/helpers/list/list_action_addstock.tpl b/admin-dev/themes/default/template/helpers/list/list_action_addstock.tpl similarity index 100% rename from admin/themes/default/template/helpers/list/list_action_addstock.tpl rename to admin-dev/themes/default/template/helpers/list/list_action_addstock.tpl diff --git a/admin/themes/default/template/helpers/list/list_action_default.tpl b/admin-dev/themes/default/template/helpers/list/list_action_default.tpl similarity index 100% rename from admin/themes/default/template/helpers/list/list_action_default.tpl rename to admin-dev/themes/default/template/helpers/list/list_action_default.tpl diff --git a/admin/themes/default/template/helpers/list/list_action_delete.tpl b/admin-dev/themes/default/template/helpers/list/list_action_delete.tpl similarity index 100% rename from admin/themes/default/template/helpers/list/list_action_delete.tpl rename to admin-dev/themes/default/template/helpers/list/list_action_delete.tpl diff --git a/admin/themes/default/template/helpers/list/list_action_details.tpl b/admin-dev/themes/default/template/helpers/list/list_action_details.tpl similarity index 100% rename from admin/themes/default/template/helpers/list/list_action_details.tpl rename to admin-dev/themes/default/template/helpers/list/list_action_details.tpl diff --git a/admin/themes/default/template/helpers/list/list_action_duplicate.tpl b/admin-dev/themes/default/template/helpers/list/list_action_duplicate.tpl similarity index 100% rename from admin/themes/default/template/helpers/list/list_action_duplicate.tpl rename to admin-dev/themes/default/template/helpers/list/list_action_duplicate.tpl diff --git a/admin/themes/default/template/helpers/list/list_action_edit.tpl b/admin-dev/themes/default/template/helpers/list/list_action_edit.tpl similarity index 100% rename from admin/themes/default/template/helpers/list/list_action_edit.tpl rename to admin-dev/themes/default/template/helpers/list/list_action_edit.tpl diff --git a/admin/themes/default/template/helpers/list/list_action_enable.tpl b/admin-dev/themes/default/template/helpers/list/list_action_enable.tpl similarity index 100% rename from admin/themes/default/template/helpers/list/list_action_enable.tpl rename to admin-dev/themes/default/template/helpers/list/list_action_enable.tpl diff --git a/admin/themes/default/template/helpers/list/list_action_preview.tpl b/admin-dev/themes/default/template/helpers/list/list_action_preview.tpl similarity index 100% rename from admin/themes/default/template/helpers/list/list_action_preview.tpl rename to admin-dev/themes/default/template/helpers/list/list_action_preview.tpl diff --git a/admin/themes/default/template/helpers/list/list_action_removestock.tpl b/admin-dev/themes/default/template/helpers/list/list_action_removestock.tpl similarity index 100% rename from admin/themes/default/template/helpers/list/list_action_removestock.tpl rename to admin-dev/themes/default/template/helpers/list/list_action_removestock.tpl diff --git a/admin/themes/default/template/helpers/list/list_action_supplier_order_receipt.tpl b/admin-dev/themes/default/template/helpers/list/list_action_supplier_order_receipt.tpl similarity index 100% rename from admin/themes/default/template/helpers/list/list_action_supplier_order_receipt.tpl rename to admin-dev/themes/default/template/helpers/list/list_action_supplier_order_receipt.tpl diff --git a/admin/themes/default/template/helpers/list/list_action_supply_order_change_state.tpl b/admin-dev/themes/default/template/helpers/list/list_action_supply_order_change_state.tpl similarity index 100% rename from admin/themes/default/template/helpers/list/list_action_supply_order_change_state.tpl rename to admin-dev/themes/default/template/helpers/list/list_action_supply_order_change_state.tpl diff --git a/admin/themes/default/template/helpers/list/list_action_supply_order_create_from_template.tpl b/admin-dev/themes/default/template/helpers/list/list_action_supply_order_create_from_template.tpl similarity index 100% rename from admin/themes/default/template/helpers/list/list_action_supply_order_create_from_template.tpl rename to admin-dev/themes/default/template/helpers/list/list_action_supply_order_create_from_template.tpl diff --git a/admin/themes/default/template/helpers/list/list_action_supply_order_receipt.tpl b/admin-dev/themes/default/template/helpers/list/list_action_supply_order_receipt.tpl similarity index 100% rename from admin/themes/default/template/helpers/list/list_action_supply_order_receipt.tpl rename to admin-dev/themes/default/template/helpers/list/list_action_supply_order_receipt.tpl diff --git a/admin/themes/default/template/helpers/list/list_action_transferstock.tpl b/admin-dev/themes/default/template/helpers/list/list_action_transferstock.tpl similarity index 100% rename from admin/themes/default/template/helpers/list/list_action_transferstock.tpl rename to admin-dev/themes/default/template/helpers/list/list_action_transferstock.tpl diff --git a/admin/themes/default/template/helpers/list/list_action_view.tpl b/admin-dev/themes/default/template/helpers/list/list_action_view.tpl similarity index 100% rename from admin/themes/default/template/helpers/list/list_action_view.tpl rename to admin-dev/themes/default/template/helpers/list/list_action_view.tpl diff --git a/admin/themes/default/template/helpers/list/list_content.tpl b/admin-dev/themes/default/template/helpers/list/list_content.tpl similarity index 100% rename from admin/themes/default/template/helpers/list/list_content.tpl rename to admin-dev/themes/default/template/helpers/list/list_content.tpl diff --git a/admin/themes/default/template/helpers/list/list_footer.tpl b/admin-dev/themes/default/template/helpers/list/list_footer.tpl similarity index 100% rename from admin/themes/default/template/helpers/list/list_footer.tpl rename to admin-dev/themes/default/template/helpers/list/list_footer.tpl diff --git a/admin/themes/default/template/helpers/list/list_header.tpl b/admin-dev/themes/default/template/helpers/list/list_header.tpl similarity index 100% rename from admin/themes/default/template/helpers/list/list_header.tpl rename to admin-dev/themes/default/template/helpers/list/list_header.tpl diff --git a/admin/themes/default/template/helpers/modules_list/index.php b/admin-dev/themes/default/template/helpers/modules_list/index.php similarity index 100% rename from admin/themes/default/template/helpers/modules_list/index.php rename to admin-dev/themes/default/template/helpers/modules_list/index.php diff --git a/admin/themes/default/template/helpers/modules_list/list.tpl b/admin-dev/themes/default/template/helpers/modules_list/list.tpl similarity index 100% rename from admin/themes/default/template/helpers/modules_list/list.tpl rename to admin-dev/themes/default/template/helpers/modules_list/list.tpl diff --git a/admin/themes/default/template/helpers/modules_list/modal.tpl b/admin-dev/themes/default/template/helpers/modules_list/modal.tpl similarity index 100% rename from admin/themes/default/template/helpers/modules_list/modal.tpl rename to admin-dev/themes/default/template/helpers/modules_list/modal.tpl diff --git a/admin/themes/default/template/helpers/options/index.php b/admin-dev/themes/default/template/helpers/options/index.php similarity index 100% rename from admin/themes/default/template/helpers/options/index.php rename to admin-dev/themes/default/template/helpers/options/index.php diff --git a/admin/themes/default/template/helpers/options/options.tpl b/admin-dev/themes/default/template/helpers/options/options.tpl similarity index 100% rename from admin/themes/default/template/helpers/options/options.tpl rename to admin-dev/themes/default/template/helpers/options/options.tpl diff --git a/admin/themes/default/template/helpers/required_fields.tpl b/admin-dev/themes/default/template/helpers/required_fields.tpl similarity index 100% rename from admin/themes/default/template/helpers/required_fields.tpl rename to admin-dev/themes/default/template/helpers/required_fields.tpl diff --git a/admin/themes/default/template/helpers/shops_list/index.php b/admin-dev/themes/default/template/helpers/shops_list/index.php similarity index 100% rename from admin/themes/default/template/helpers/shops_list/index.php rename to admin-dev/themes/default/template/helpers/shops_list/index.php diff --git a/admin/themes/default/template/helpers/shops_list/list.tpl b/admin-dev/themes/default/template/helpers/shops_list/list.tpl similarity index 100% rename from admin/themes/default/template/helpers/shops_list/list.tpl rename to admin-dev/themes/default/template/helpers/shops_list/list.tpl diff --git a/admin/themes/default/template/helpers/tooltip.tpl b/admin-dev/themes/default/template/helpers/tooltip.tpl similarity index 100% rename from admin/themes/default/template/helpers/tooltip.tpl rename to admin-dev/themes/default/template/helpers/tooltip.tpl diff --git a/admin/themes/default/template/helpers/tree/index.php b/admin-dev/themes/default/template/helpers/tree/index.php similarity index 100% rename from admin/themes/default/template/helpers/tree/index.php rename to admin-dev/themes/default/template/helpers/tree/index.php diff --git a/admin/themes/default/template/helpers/tree/tree.tpl b/admin-dev/themes/default/template/helpers/tree/tree.tpl similarity index 100% rename from admin/themes/default/template/helpers/tree/tree.tpl rename to admin-dev/themes/default/template/helpers/tree/tree.tpl diff --git a/admin/themes/default/template/helpers/tree/tree_categories.tpl b/admin-dev/themes/default/template/helpers/tree/tree_categories.tpl similarity index 100% rename from admin/themes/default/template/helpers/tree/tree_categories.tpl rename to admin-dev/themes/default/template/helpers/tree/tree_categories.tpl diff --git a/admin/themes/default/template/helpers/tree/tree_header.tpl b/admin-dev/themes/default/template/helpers/tree/tree_header.tpl similarity index 100% rename from admin/themes/default/template/helpers/tree/tree_header.tpl rename to admin-dev/themes/default/template/helpers/tree/tree_header.tpl diff --git a/admin/themes/default/template/helpers/tree/tree_header_room.tpl b/admin-dev/themes/default/template/helpers/tree/tree_header_room.tpl similarity index 100% rename from admin/themes/default/template/helpers/tree/tree_header_room.tpl rename to admin-dev/themes/default/template/helpers/tree/tree_header_room.tpl diff --git a/admin/themes/default/template/helpers/tree/tree_node_folder.tpl b/admin-dev/themes/default/template/helpers/tree/tree_node_folder.tpl similarity index 100% rename from admin/themes/default/template/helpers/tree/tree_node_folder.tpl rename to admin-dev/themes/default/template/helpers/tree/tree_node_folder.tpl diff --git a/admin/themes/default/template/helpers/tree/tree_node_folder_checkbox.tpl b/admin-dev/themes/default/template/helpers/tree/tree_node_folder_checkbox.tpl similarity index 100% rename from admin/themes/default/template/helpers/tree/tree_node_folder_checkbox.tpl rename to admin-dev/themes/default/template/helpers/tree/tree_node_folder_checkbox.tpl diff --git a/admin/themes/default/template/helpers/tree/tree_node_folder_checkbox_shops.tpl b/admin-dev/themes/default/template/helpers/tree/tree_node_folder_checkbox_shops.tpl similarity index 100% rename from admin/themes/default/template/helpers/tree/tree_node_folder_checkbox_shops.tpl rename to admin-dev/themes/default/template/helpers/tree/tree_node_folder_checkbox_shops.tpl diff --git a/admin/themes/default/template/helpers/tree/tree_node_folder_radio.tpl b/admin-dev/themes/default/template/helpers/tree/tree_node_folder_radio.tpl similarity index 100% rename from admin/themes/default/template/helpers/tree/tree_node_folder_radio.tpl rename to admin-dev/themes/default/template/helpers/tree/tree_node_folder_radio.tpl diff --git a/admin/themes/default/template/helpers/tree/tree_node_item.tpl b/admin-dev/themes/default/template/helpers/tree/tree_node_item.tpl similarity index 100% rename from admin/themes/default/template/helpers/tree/tree_node_item.tpl rename to admin-dev/themes/default/template/helpers/tree/tree_node_item.tpl diff --git a/admin/themes/default/template/helpers/tree/tree_node_item_checkbox.tpl b/admin-dev/themes/default/template/helpers/tree/tree_node_item_checkbox.tpl similarity index 100% rename from admin/themes/default/template/helpers/tree/tree_node_item_checkbox.tpl rename to admin-dev/themes/default/template/helpers/tree/tree_node_item_checkbox.tpl diff --git a/admin/themes/default/template/helpers/tree/tree_node_item_checkbox_shops.tpl b/admin-dev/themes/default/template/helpers/tree/tree_node_item_checkbox_shops.tpl similarity index 100% rename from admin/themes/default/template/helpers/tree/tree_node_item_checkbox_shops.tpl rename to admin-dev/themes/default/template/helpers/tree/tree_node_item_checkbox_shops.tpl diff --git a/admin/themes/default/template/helpers/tree/tree_node_item_radio.tpl b/admin-dev/themes/default/template/helpers/tree/tree_node_item_radio.tpl similarity index 100% rename from admin/themes/default/template/helpers/tree/tree_node_item_radio.tpl rename to admin-dev/themes/default/template/helpers/tree/tree_node_item_radio.tpl diff --git a/admin/themes/default/template/helpers/tree/tree_shops.tpl b/admin-dev/themes/default/template/helpers/tree/tree_shops.tpl similarity index 100% rename from admin/themes/default/template/helpers/tree/tree_shops.tpl rename to admin-dev/themes/default/template/helpers/tree/tree_shops.tpl diff --git a/admin/themes/default/template/helpers/tree/tree_toolbar.tpl b/admin-dev/themes/default/template/helpers/tree/tree_toolbar.tpl similarity index 100% rename from admin/themes/default/template/helpers/tree/tree_toolbar.tpl rename to admin-dev/themes/default/template/helpers/tree/tree_toolbar.tpl diff --git a/admin/themes/default/template/helpers/tree/tree_toolbar_link.tpl b/admin-dev/themes/default/template/helpers/tree/tree_toolbar_link.tpl similarity index 100% rename from admin/themes/default/template/helpers/tree/tree_toolbar_link.tpl rename to admin-dev/themes/default/template/helpers/tree/tree_toolbar_link.tpl diff --git a/admin/themes/default/template/helpers/tree/tree_toolbar_search.tpl b/admin-dev/themes/default/template/helpers/tree/tree_toolbar_search.tpl similarity index 100% rename from admin/themes/default/template/helpers/tree/tree_toolbar_search.tpl rename to admin-dev/themes/default/template/helpers/tree/tree_toolbar_search.tpl diff --git a/admin/themes/default/template/helpers/uploader/ajax.tpl b/admin-dev/themes/default/template/helpers/uploader/ajax.tpl similarity index 100% rename from admin/themes/default/template/helpers/uploader/ajax.tpl rename to admin-dev/themes/default/template/helpers/uploader/ajax.tpl diff --git a/admin/themes/default/template/helpers/uploader/index.php b/admin-dev/themes/default/template/helpers/uploader/index.php similarity index 100% rename from admin/themes/default/template/helpers/uploader/index.php rename to admin-dev/themes/default/template/helpers/uploader/index.php diff --git a/admin/themes/default/template/helpers/uploader/simple.tpl b/admin-dev/themes/default/template/helpers/uploader/simple.tpl similarity index 100% rename from admin/themes/default/template/helpers/uploader/simple.tpl rename to admin-dev/themes/default/template/helpers/uploader/simple.tpl diff --git a/admin/themes/default/template/helpers/view/index.php b/admin-dev/themes/default/template/helpers/view/index.php similarity index 100% rename from admin/themes/default/template/helpers/view/index.php rename to admin-dev/themes/default/template/helpers/view/index.php diff --git a/admin/themes/default/template/helpers/view/view.tpl b/admin-dev/themes/default/template/helpers/view/view.tpl similarity index 100% rename from admin/themes/default/template/helpers/view/view.tpl rename to admin-dev/themes/default/template/helpers/view/view.tpl diff --git a/admin/themes/default/template/index.php b/admin-dev/themes/default/template/index.php similarity index 100% rename from admin/themes/default/template/index.php rename to admin-dev/themes/default/template/index.php diff --git a/admin/themes/default/template/invalid_token.tpl b/admin-dev/themes/default/template/invalid_token.tpl similarity index 100% rename from admin/themes/default/template/invalid_token.tpl rename to admin-dev/themes/default/template/invalid_token.tpl diff --git a/admin/themes/default/template/layout-ajax.tpl b/admin-dev/themes/default/template/layout-ajax.tpl similarity index 100% rename from admin/themes/default/template/layout-ajax.tpl rename to admin-dev/themes/default/template/layout-ajax.tpl diff --git a/admin/themes/default/template/layout-export.tpl b/admin-dev/themes/default/template/layout-export.tpl similarity index 100% rename from admin/themes/default/template/layout-export.tpl rename to admin-dev/themes/default/template/layout-export.tpl diff --git a/admin/themes/default/template/layout.tpl b/admin-dev/themes/default/template/layout.tpl similarity index 100% rename from admin/themes/default/template/layout.tpl rename to admin-dev/themes/default/template/layout.tpl diff --git a/admin/themes/default/template/modal.tpl b/admin-dev/themes/default/template/modal.tpl similarity index 100% rename from admin/themes/default/template/modal.tpl rename to admin-dev/themes/default/template/modal.tpl diff --git a/admin/themes/default/template/nav.tpl b/admin-dev/themes/default/template/nav.tpl similarity index 100% rename from admin/themes/default/template/nav.tpl rename to admin-dev/themes/default/template/nav.tpl diff --git a/admin/themes/default/template/page_header_toolbar.tpl b/admin-dev/themes/default/template/page_header_toolbar.tpl similarity index 100% rename from admin/themes/default/template/page_header_toolbar.tpl rename to admin-dev/themes/default/template/page_header_toolbar.tpl diff --git a/admin/themes/default/template/recomended-banner.tpl b/admin-dev/themes/default/template/recomended-banner.tpl similarity index 100% rename from admin/themes/default/template/recomended-banner.tpl rename to admin-dev/themes/default/template/recomended-banner.tpl diff --git a/admin/themes/default/template/search_form.tpl b/admin-dev/themes/default/template/search_form.tpl similarity index 100% rename from admin/themes/default/template/search_form.tpl rename to admin-dev/themes/default/template/search_form.tpl diff --git a/admin/themes/default/template/seo_preview.tpl b/admin-dev/themes/default/template/seo_preview.tpl similarity index 100% rename from admin/themes/default/template/seo_preview.tpl rename to admin-dev/themes/default/template/seo_preview.tpl diff --git a/admin/themes/default/template/toolbar.tpl b/admin-dev/themes/default/template/toolbar.tpl similarity index 100% rename from admin/themes/default/template/toolbar.tpl rename to admin-dev/themes/default/template/toolbar.tpl diff --git a/admin/themes/index.php b/admin-dev/themes/index.php similarity index 100% rename from admin/themes/index.php rename to admin-dev/themes/index.php diff --git a/classes/AdminTab.php b/classes/AdminTab.php index 0e54eac07..a09c99aee 100644 --- a/classes/AdminTab.php +++ b/classes/AdminTab.php @@ -1673,7 +1673,9 @@ abstract class AdminTabCore $irow = 0; if ($this->_list && isset($this->fieldsDisplay['position'])) { - $positions = array_map(create_function('$elem', 'return (int)$elem[\'position\'];'), $this->_list); + $positions = array_map(function ($elem) { + return (int) $elem['position']; + }, $this->_list); sort($positions); } if ($this->_list) { diff --git a/classes/Cart.php b/classes/Cart.php index 6e7e282fd..76cd45ce9 100644 --- a/classes/Cart.php +++ b/classes/Cart.php @@ -827,7 +827,7 @@ class CartCore extends ObjectModel $serviceProducts = array(); $context = Context::getContext(); foreach ($productList as $key => $product) { - if (!$product['booking_product'] && (Product::SELLING_PREFERENCE_STANDALONE == $product['selling_preference_type'])) { + if (!$product['booking_product'] && Product::isSellableAsStandalone($product['id_product']) && !Product::isSellableWithRoomType($product['id_product'])) { if (Validate::isLoadedObject( $objProduct = new Product($product['id_product'], false, $this->id_lang) )) { @@ -1649,6 +1649,10 @@ class CartCore extends ObjectModel $objAdvPayment = new HotelAdvancedPayment(); foreach ($products as $product) { // skip products if selection os for only room or only normal products + $canSellWithRoomType = Product::isSellableWithRoomType($product['id_product']); + $canSellWithHotel = Product::isSellableWithHotel($product['id_product']); + $canSellAsStandalone = Product::isSellableAsStandalone($product['id_product']); + if ($product['booking_product']) { if ($type == Cart::ONLY_ROOM_SERVICES || $type == Cart::ONLY_STANDALONE_PRODUCTS @@ -1664,10 +1668,8 @@ class CartCore extends ObjectModel continue; } - if (Product::SELLING_PREFERENCE_WITH_ROOM_TYPE == $product['selling_preference_type'] - || Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE == $product['selling_preference_type'] - ) { - if ($type == Cart::ONLY_STANDALONE_PRODUCTS && Product::SELLING_PREFERENCE_WITH_ROOM_TYPE == $product['selling_preference_type']) { + if ($canSellWithRoomType) { + if ($type == Cart::ONLY_STANDALONE_PRODUCTS && !$canSellAsStandalone && !$canSellWithHotel) { continue; } if ($product['auto_add_to_cart']) { @@ -1693,9 +1695,7 @@ class CartCore extends ObjectModel continue; } } - } elseif (Product::SELLING_PREFERENCE_STANDALONE == $product['selling_preference_type'] - || Product::SELLING_PREFERENCE_HOTEL_STANDALONE == $product['selling_preference_type'] - ) { + } elseif ($canSellAsStandalone || $canSellWithHotel) { if ($type == Cart::ONLY_ROOM_SERVICES || $type == Cart::ONLY_CONVENIENCE_FEE || $type == Cart::ONLY_ROOM_SERVICES_WITHOUT_AUTO_ADD @@ -1758,22 +1758,55 @@ class CartCore extends ObjectModel $products_total[$id_tax_rules_group.'_'.$id_address] = 0; } if (!$product['booking_product']) { - if (Product::SELLING_PREFERENCE_STANDALONE == $product['selling_preference_type']) { - if ($servicePorducts = $objServiceProductCartDetail->getServiceProductsInCart( + $isRoomServiceTotalType = in_array($type, array( + Cart::ONLY_ROOM_SERVICES, + Cart::ONLY_CONVENIENCE_FEE, + Cart::ONLY_ROOM_SERVICES_WITHOUT_AUTO_ADD, + Cart::ONLY_ROOM_SERVICES_WITHOUT_CONVENIENCE_FEE, + Cart::ONLY_ROOM_SERVICES_WITH_AUTO_ADD_WITHOUT_CONVENIENCE_FEE, + )); + + + if ($param_product && isset($product['selling_preference_type'])) { + $canSellWithRoomType = $canSellWithRoomType + && in_array((int) $product['selling_preference_type'], array( + Product::SELLING_PREFERENCE_WITH_ROOM_TYPE, + Product::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_ROOM_TYPE, + Product::SELLING_PREFERENCE_WITH_STANDALONE_AND_WITH_ROOM_TYPE, + Product::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_ROOM_TYPE_AND_WITH_STANDALONE, + )); + $canSellWithHotel = $canSellWithHotel + && in_array((int) $product['selling_preference_type'], array( + Product::SELLING_PREFERENCE_WITH_HOTEL, + Product::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_ROOM_TYPE, + Product::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_STANDALONE, + Product::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_ROOM_TYPE_AND_WITH_STANDALONE, + )); + $canSellAsStandalone = $canSellAsStandalone + && in_array((int) $product['selling_preference_type'], array( + Product::SELLING_PREFERENCE_WITH_STANDALONE, + Product::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_STANDALONE, + Product::SELLING_PREFERENCE_WITH_STANDALONE_AND_WITH_ROOM_TYPE, + Product::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_ROOM_TYPE_AND_WITH_STANDALONE, + )); + } + + if ($canSellAsStandalone && !$isRoomServiceTotalType) { + if ($serviceProducts = $objServiceProductCartDetail->getServiceProductsInCart( $this->id, [], - null, - null, + 0, + 0, null, (int)$product['id_product'] )) { - foreach ($servicePorducts as $servicePorduct) { + foreach ($serviceProducts as $serviceProduct) { if ($with_taxes) { - $priceAdd = $servicePorduct['unit_price_tax_incl']; + $priceAdd = $serviceProduct['unit_price_tax_incl']; } else { - $priceAdd = $servicePorduct['unit_price_tax_excl']; + $priceAdd = $serviceProduct['unit_price_tax_excl']; } - $lineTotal = Tools::processPriceRounding($priceAdd, (int)$servicePorduct['quantity']); + $lineTotal = Tools::processPriceRounding($priceAdd, (int)$serviceProduct['quantity']); if ($ps_round_type == Order::ROUND_TOTAL) { $products_total[$id_tax_rules_group.'_'.$id_address] += $lineTotal; } else { @@ -1781,22 +1814,21 @@ class CartCore extends ObjectModel } if ($with_taxes && in_array($type, array(Cart::BOTH, Cart::BOTH_WITHOUT_SHIPPING, Cart::ONLY_TOURISM_TAX))) { - $tourism_tax_total += $servicePorduct['tourism_tax']; - $tourism_tax_standalone_products += $servicePorduct['tourism_tax']; + $tourism_tax_total += $serviceProduct['tourism_tax']; + $tourism_tax_standalone_products += $serviceProduct['tourism_tax']; } } } - } else if (Product::SELLING_PREFERENCE_HOTEL_STANDALONE == $product['selling_preference_type'] - || Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE == $product['selling_preference_type'] - ) { + } + if ($canSellWithHotel) { if ($type == Cart::ONLY_ROOM_SERVICES || $type == Cart::ONLY_CONVENIENCE_FEE || $type == Cart::ONLY_ROOM_SERVICES_WITHOUT_AUTO_ADD || $type == Cart::ONLY_ROOM_SERVICES_WITHOUT_CONVENIENCE_FEE || $type == Cart::ONLY_ROOM_SERVICES_WITH_AUTO_ADD_WITHOUT_CONVENIENCE_FEE ) { - $servicePorducts = $objServiceProductCartDetail->getServiceProductsInCart( + $serviceProducts = $objServiceProductCartDetail->getServiceProductsInCart( $this->id, [], 0, @@ -1805,7 +1837,7 @@ class CartCore extends ObjectModel (int)$product['id_product'] ); } elseif ($type == Cart::ONLY_STANDALONE_PRODUCTS) { - $servicePorducts = $objServiceProductCartDetail->getServiceProductsInCart( + $serviceProducts = $objServiceProductCartDetail->getServiceProductsInCart( $this->id, [], null, @@ -1814,7 +1846,7 @@ class CartCore extends ObjectModel (int)$product['id_product'] ); } else { - $servicePorducts = $objServiceProductCartDetail->getServiceProductsInCart( + $serviceProducts = $objServiceProductCartDetail->getServiceProductsInCart( $this->id, [], isset($product['id_hotel']) ? $product['id_hotel'] : null, @@ -1824,27 +1856,31 @@ class CartCore extends ObjectModel ); } - if ($servicePorducts) { - foreach ($servicePorducts as $servicePorduct) { - if ($with_taxes) { - $priceAdd = $servicePorduct['total_price_tax_incl']; - } else { - $priceAdd = $servicePorduct['total_price_tax_excl']; - } + if ($serviceProducts) { + foreach ($serviceProducts as $serviceProduct) { + if (!empty($serviceProduct['id_hotel']) && empty($serviceProduct['id_hotel_cart_booking'])) { + if ($with_taxes) { + $priceAdd = $serviceProduct['total_price_tax_incl']; + } else { + $priceAdd = $serviceProduct['total_price_tax_excl']; + } - if ($ps_round_type == Order::ROUND_TOTAL) { - $products_total[$id_tax_rules_group.'_'.$id_address] += $priceAdd; - } else { - $products_total[$id_tax_rules_group] += $priceAdd; + if ($ps_round_type == Order::ROUND_TOTAL) { + $products_total[$id_tax_rules_group.'_'.$id_address] += $priceAdd; + } else { + $products_total[$id_tax_rules_group] += $priceAdd; + } } if ($with_taxes && in_array($type, array(Cart::BOTH, Cart::BOTH_WITHOUT_SHIPPING, Cart::ONLY_TOURISM_TAX))) { - $tourism_tax_total += $servicePorduct['tourism_tax']; - $tourism_tax_standalone_products += $servicePorduct['tourism_tax']; + $tourism_tax_total += $serviceProduct['tourism_tax']; + $tourism_tax_standalone_products += $serviceProduct['tourism_tax']; } } } - } else if (Product::SELLING_PREFERENCE_WITH_ROOM_TYPE == $product['selling_preference_type']) { + } + if ($canSellWithRoomType && $type !== Cart::ONLY_STANDALONE_PRODUCTS) { + if ($servicesWithRoom = $objServiceProductCartDetail->getServiceProductsInCart( $this->id, [], @@ -1859,17 +1895,19 @@ class CartCore extends ObjectModel (int)$product['price_addition_type'] )) { foreach ($servicesWithRoom as $service) { - if ($with_taxes) { - $servicePrice = $service['total_price_tax_incl']; - } else { - $servicePrice = $service['total_price_tax_excl']; - } + if(!empty($service['id_hotel_cart_booking']) && empty($service['id_hotel'])) { + if ($with_taxes) { + $servicePrice = $service['total_price_tax_incl']; + } else { + $servicePrice = $service['total_price_tax_excl']; + } - // Rounding as per configurations - if ($ps_round_type == Order::ROUND_TOTAL) { - $products_total[$id_tax_rules_group.'_'.$id_address] += $servicePrice; - } else { - $products_total[$id_tax_rules_group] += $servicePrice; + // Rounding as per configurations + if ($ps_round_type == Order::ROUND_TOTAL) { + $products_total[$id_tax_rules_group.'_'.$id_address] += $servicePrice; + } else { + $products_total[$id_tax_rules_group] += $servicePrice; + } } if ($with_taxes && in_array($type, array(Cart::BOTH, Cart::BOTH_WITHOUT_SHIPPING, Cart::ONLY_TOURISM_TAX))) { @@ -2469,9 +2507,7 @@ class CartCore extends ObjectModel } } } else { - if (Product::SELLING_PREFERENCE_WITH_ROOM_TYPE == $product['selling_preference_type'] - || Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE == $product['selling_preference_type'] - ) { + if (Product::isSellableWithRoomType($product['id_product'])) { // get standard products which are booked for room types // send id_hotel = 0 for standard products with room types if ($selectedServiceProducts = $objServiceProductCartDetail->getServiceProductsInCart( @@ -2484,6 +2520,9 @@ class CartCore extends ObjectModel )) { $array = array(); foreach($selectedServiceProducts as $selectedProduct) { + if (empty($selectedProduct['id_hotel_cart_booking'])) { + continue; + } if (isset($array[$selectedProduct['id_room_type_hotel']])) { $array[$selectedProduct['id_room_type_hotel']]['total_price_tax_excl'] += $selectedProduct['total_price_tax_excl']; $array[$selectedProduct['id_room_type_hotel']]['total_price_tax_incl'] += $selectedProduct['total_price_tax_incl']; @@ -2497,25 +2536,21 @@ class CartCore extends ObjectModel 'id_hotel_cart_booking' => $selectedProduct['id_hotel_cart_booking'], ); } - if (Product::PRICE_CALCULATION_METHOD_PER_DAY == $selectedProduct['price_calculation_method']) { - $numDays = HotelHelper::getNumberOfDays( - $selectedProduct['date_from'], - $selectedProduct['date_to'] - ); - $array[$selectedProduct['id_room_type_hotel']]['quantity'] += ($selectedProduct['quantity'] * $numDays); - } else { - $array[$selectedProduct['id_room_type_hotel']]['quantity'] += $selectedProduct['quantity']; - - } + $numDays = Product::getServicePriceBillableDays( + $selectedProduct['price_calculation_method'], + $selectedProduct['date_from'], + $selectedProduct['date_to'] + ); + $array[$selectedProduct['id_room_type_hotel']]['quantity'] += ($selectedProduct['quantity'] * $numDays); } - + if ($array) { foreach($array as $selectedProduct) { $product['cart_quantity'] = $selectedProduct['quantity']; $product['total'] = $selectedProduct['total_price_tax_excl']; $product['total_wt'] = $selectedProduct['total_price_tax_incl']; - $product['price_wt'] = $selectedProduct['total_price_tax_incl'] / $selectedProduct['quantity']; - $product['price'] = $selectedProduct['total_price_tax_excl'] / $selectedProduct['quantity']; + $product['price_wt'] = $selectedProduct['total_price_tax_incl'] / max($selectedProduct['quantity'], 1); + $product['price'] = $selectedProduct['total_price_tax_excl'] / max($selectedProduct['quantity'], 1); $product['id_hotel'] = $selectedProduct['id_hotel']; $product['id_room_type'] = $selectedProduct['id_room_type']; $product['id_hotel_cart_booking'] = $selectedProduct['id_hotel_cart_booking']; @@ -2545,23 +2580,64 @@ class CartCore extends ObjectModel } } } + if (Product::isSellableAsStandalone($product['id_product'])) { + if ($selectedServiceProducts = $objServiceProductCartDetail->getServiceProductsInCart( + $this->id, + [], + 0, + 0, + null, + (int)$product['id_product'] + )) { + $array = array(); + foreach ($selectedServiceProducts as $selectedServiceProduct) { + if ((int) $selectedServiceProduct['id_hotel'] === 0 + && (int) $selectedServiceProduct['id_hotel_cart_booking'] === 0 + ) { + if (isset($array[$selectedServiceProduct['id_product']])) { + $array[$selectedServiceProduct['id_product']]['total_price_tax_excl'] += $selectedServiceProduct['total_price_tax_excl']; + $array[$selectedServiceProduct['id_product']]['total_price_tax_incl'] += $selectedServiceProduct['total_price_tax_incl']; + $array[$selectedServiceProduct['id_product']]['quantity'] += $selectedServiceProduct['quantity']; + } else { + $array[$selectedServiceProduct['id_product']] = array( + 'quantity' => $selectedServiceProduct['quantity'], + 'total_price_tax_excl' => $selectedServiceProduct['total_price_tax_excl'], + 'total_price_tax_incl' => $selectedServiceProduct['total_price_tax_incl'], + ); + } + + } + } - if (Product::SELLING_PREFERENCE_STANDALONE == $product['selling_preference_type']) { - if (!isset($standaloneProduct[$id_address])) { - $standaloneProduct[$id_address] = array( - 'product_list' => array(), - 'warehouse_list' => $package['warehouse_list'], - 'carrier_list' => $product['carrier_list'], - 'id_warehouse' => $package['id_warehouse'], - 'id_carrier' => isset($package['id_carrier']) ? $package['id_carrier'] : 0 - ); + if ($array) { + foreach ($array as $standaloneProductData) { + $serviceProduct = $product; + $serviceProduct['cart_quantity'] = $standaloneProductData['quantity']; + $serviceProduct['total'] = $standaloneProductData['total_price_tax_excl']; + $serviceProduct['total_wt'] = $standaloneProductData['total_price_tax_incl']; + $serviceProduct['price'] = $standaloneProductData['total_price_tax_excl'] / $standaloneProductData['quantity']; + $serviceProduct['price_wt'] = $standaloneProductData['total_price_tax_incl'] / $standaloneProductData['quantity']; + $serviceProduct['selling_preference_type'] = Product::SELLING_PREFERENCE_WITH_STANDALONE; + $serviceProduct['id_hotel'] = 0; + $serviceProduct['id_hotel_cart_booking'] = 0; + $serviceProduct['id_room_type'] = 0; + if (!isset($standaloneProduct[$id_address])) { + $standaloneProduct[$id_address] = array( + 'product_list' => array(), + 'warehouse_list' => $package['warehouse_list'], + 'carrier_list' => $product['carrier_list'], + 'id_warehouse' => $package['id_warehouse'], + 'id_carrier' => isset($package['id_carrier']) ? $package['id_carrier'] : 0 + ); + } + $productinfo = $serviceProduct; + + $standaloneProduct[$id_address]['product_list'][] = $productinfo; + } + } } - $standaloneProduct[$id_address]['product_list'][] = $product; } - - if (Product::SELLING_PREFERENCE_HOTEL_STANDALONE == $product['selling_preference_type'] - || Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE == $product['selling_preference_type'] - ) { + if (Product::isSellableWithHotel($product['id_product'])) { if ($selectedServiceProducts = $objServiceProductCartDetail->getServiceProductsInCart( $this->id, [], @@ -2572,6 +2648,9 @@ class CartCore extends ObjectModel )) { $array = array(); foreach($selectedServiceProducts as $hotelProduct) { + if (!isset($hotelProduct['id_hotel']) || !$hotelProduct['id_hotel']) { + continue; + } if (isset($array[$hotelProduct['id_hotel']])) { $array[$hotelProduct['id_hotel']]['total_price_tax_excl'] += $hotelProduct['total_price_tax_excl']; $array[$hotelProduct['id_hotel']]['total_price_tax_incl'] += $hotelProduct['total_price_tax_incl']; @@ -2602,7 +2681,8 @@ class CartCore extends ObjectModel // if (!empty($hotelProducts['products'])) { // foreach($hotelProducts['products'] as $hotelProduct) { $productinfo = $serviceProduct; - $productinfo['selling_preference_type'] = Product::SELLING_PREFERENCE_HOTEL_STANDALONE; + $productinfo['selling_preference_type'] = Product::SELLING_PREFERENCE_WITH_HOTEL; + $orderPackage[$id_address][$hotelProduct['id_hotel']]['product_list'][] = $productinfo; if (!isset($orderPackage[$id_address][$hotelProduct['id_hotel']]['id_hotel'])) { $orderPackage[$id_address][$hotelProduct['id_hotel']]['id_hotel'] = $hotelProduct['id_hotel']; @@ -2647,6 +2727,7 @@ class CartCore extends ObjectModel } $final_package_list = $hotelWisePackageList; + /// ddd($final_package_list); // END $package_list hotel wise $cache[$cache_key] = $final_package_list; return $final_package_list; @@ -3187,33 +3268,24 @@ class CartCore extends ObjectModel $id_address = HotelRoomType::getHotelIdAddressByIdProduct($id_product); } else { // if the product is a standard product the get the address as per the selling preference - $sellingPreferenceType = Product::getSellingPreferenceType($id_product); + $canSellWithRoomType = Product::isSellableWithRoomType($id_product); + $canSellWithHotel = Product::isSellableWithHotel($id_product); + $canSellAsStandalone = Product::isSellableAsStandalone($id_product); - if ($sellingPreferenceType == Product::SELLING_PREFERENCE_WITH_ROOM_TYPE) { - if ($id_product_room_type) { - $objRoomType = new HotelRoomType(); - if ($roomTypeInfo = $objRoomType->getRoomTypeInfoByIdProduct($id_product_room_type)) { - if ($htlAddress = HotelBranchInformation::getAddress($roomTypeInfo['id_hotel'])) { - $id_address = $htlAddress['id_address']; - } - } - } - } elseif ($sellingPreferenceType == Product::SELLING_PREFERENCE_HOTEL_STANDALONE) { + if ($canSellWithHotel) { if ($htlAddress = HotelBranchInformation::getAddress($id_hotel)) { $id_address = $htlAddress['id_address']; } - } elseif ($sellingPreferenceType == Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE) { - if ($htlAddress = HotelBranchInformation::getAddress($id_hotel)) { - $id_address = $htlAddress['id_address']; - } elseif ($id_product_room_type) { - $objRoomType = new HotelRoomType(); - if ($roomTypeInfo = $objRoomType->getRoomTypeInfoByIdProduct($id_product_room_type)) { - if ($htlAddress = HotelBranchInformation::getAddress($roomTypeInfo['id_hotel'])) { - $id_address = $htlAddress['id_address']; - } + } + + if (!$id_address && $canSellWithRoomType && $id_product_room_type) { + $objRoomType = new HotelRoomType(); + if ($roomTypeInfo = $objRoomType->getRoomTypeInfoByIdProduct($id_product_room_type)) { + if ($htlAddress = HotelBranchInformation::getAddress($roomTypeInfo['id_hotel'])) { + $id_address = $htlAddress['id_address']; } } - } elseif ($sellingPreferenceType == Product::SELLING_PREFERENCE_STANDALONE) { + } elseif ($canSellAsStandalone) { $addressPreferenceType = Configuration::get('PS_STANDARD_PRODUCT_ORDER_ADDRESS_PREFRENCE'); if ($addressPreferenceType == Product::STANDARD_PRODUCT_ADDRESS_PREFERENCE_CUSTOM) { $id_address = (int) Configuration::get('PS_STANDARD_PRODUCT_ORDER_ADDRESS_ID'); @@ -3982,14 +4054,14 @@ class CartCore extends ObjectModel $objServiceProductCartDetail = new ServiceProductCartDetail(); foreach ($products as &$product) { if (!$product['booking_product']) { - if (Product::SELLING_PREFERENCE_STANDALONE == $product['selling_preference_type']) { + if (Product::SELLING_PREFERENCE_WITH_STANDALONE == $product['selling_preference_type']) { $nbTotalProducts += (int) $product['cart_quantity']; - } elseif (Product::SELLING_PREFERENCE_HOTEL_STANDALONE == $product['selling_preference_type'] - || Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE == $product['selling_preference_type'] + } elseif (Product::SELLING_PREFERENCE_WITH_HOTEL == $product['selling_preference_type'] + || Product::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_ROOM_TYPE == $product['selling_preference_type'] ) { if ($serviceProducts = $objServiceProductCartDetail->getServiceProductsInCart( $this->id, - [Product::SELLING_PREFERENCE_HOTEL_STANDALONE, Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE], + [Product::SELLING_PREFERENCE_HOTEL_STANDALONE, Product::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_ROOM_TYPE], null, 0, null, diff --git a/classes/CartRule.php b/classes/CartRule.php index 6f25aeabf..67665d6d4 100644 --- a/classes/CartRule.php +++ b/classes/CartRule.php @@ -359,12 +359,13 @@ class CartRuleCore extends ObjectModel } } - // Remove cart rule if the cart contains a product from a hotel not covered by its hotel restriction + // Remove cart rule if the cart contains a room from a hotel not covered by its hotel restriction. foreach ($result as $key => $cart_rule) { - if ($cart_rule['hotel_restriction']) { + if (isset($cart_rule['hotel_restriction']) && $cart_rule['hotel_restriction']) { $total_cart_products = (int)Db::getInstance()->getValue(' SELECT COUNT(cp.id_product) FROM '._DB_PREFIX_.'cart_product cp + INNER JOIN '._DB_PREFIX_.'htl_room_type hrt ON hrt.id_product = cp.id_product WHERE cp.id_cart = '.(int)$cart->id ); $allowed_cart_products = (int)Db::getInstance()->getValue(' @@ -662,11 +663,12 @@ class CartRuleCore extends ObjectModel } } - // Check if all the products in the cart belong to the restricted hotel(s) + // Check if all the rooms in the cart belong to the restricted hotel(s). Only room-type cart if ($this->hotel_restriction) { $total_cart_products = (int)Db::getInstance()->getValue(' SELECT COUNT(cp.id_product) FROM '._DB_PREFIX_.'cart_product cp + INNER JOIN '._DB_PREFIX_.'htl_room_type hrt ON hrt.id_product = cp.id_product WHERE cp.id_cart = '.(int)$context->cart->id ); $allowed_cart_products = (int)Db::getInstance()->getValue(' @@ -1007,7 +1009,7 @@ class CartRuleCore extends ObjectModel continue; } } - $cache_id .= '_'.(int)$product['id_product'].'_'.(int)$product['id_product_attribute'].(isset($product['in_stock']) ? '_'.(int)$product['in_stock'] : ''); + $cache_id .= '_'.(int)$product['id_product'].'_'.(int)$product['id_product_attribute'].'_'.(int)$product['cart_quantity'].(isset($product['in_stock']) ? '_'.(int)$product['in_stock'] : ''); } $package_products = $package['products']; diff --git a/classes/ConfigurationTest.php b/classes/ConfigurationTest.php index fe733a161..40229c457 100644 --- a/classes/ConfigurationTest.php +++ b/classes/ConfigurationTest.php @@ -146,7 +146,7 @@ class ConfigurationTestCore { return ( version_compare(substr(phpversion(), 0, 5), '8.1.0', '>=') - && version_compare(substr(phpversion(), 0, 5), '8.5', '<') + && version_compare(substr(phpversion(), 0, 5), '8.6.0', '<') ); } diff --git a/classes/ImageManager.php b/classes/ImageManager.php index c811fdbcf..d187c02cd 100644 --- a/classes/ImageManager.php +++ b/classes/ImageManager.php @@ -285,7 +285,6 @@ class ImageManagerCore $temp = imagecreatetruecolor($dst_w * $quality + 1, $dst_h * $quality + 1); imagecopyresized($temp, $src_image, 0, 0, $src_x, $src_y, $dst_w * $quality + 1, $dst_h * $quality + 1, $src_w, $src_h); imagecopyresampled($dst_image, $temp, $dst_x, $dst_y, 0, 0, $dst_w, $dst_h, $dst_w * $quality, $dst_h * $quality); - imagedestroy($temp); } else { imagecopyresampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h); } @@ -321,7 +320,6 @@ class ImageManagerCore $const = defined('FILEINFO_MIME_TYPE') ? FILEINFO_MIME_TYPE : FILEINFO_MIME; $finfo = finfo_open($const); $mime_type = finfo_file($finfo, $filename); - finfo_close($finfo); } elseif (function_exists('mime_content_type')) { $mime_type = mime_content_type($filename); } elseif (function_exists('exec')) { @@ -542,7 +540,6 @@ class ImageManagerCore $success = imagejpeg($resource, $filename, (int)$quality); break; } - imagedestroy($resource); @chmod($filename, 0664); return $success; } diff --git a/classes/LocalizationPack.php b/classes/LocalizationPack.php index 14bf297bc..36f1ede22 100644 --- a/classes/LocalizationPack.php +++ b/classes/LocalizationPack.php @@ -339,9 +339,10 @@ class LocalizationPackCore continue; } - $errors = Language::downloadAndInstallLanguagePack($attributes['iso_code'], $attributes['version'], $attributes); - if ($errors !== true && is_array($errors)) { - $this->_errors = array_merge($this->_errors, $errors); + $version = isset($attributes['version']) ? (string)$attributes['version'] : null; + $lang_pack_response = Language::downloadAndInstallLanguagePack($attributes['iso_code'], $version, null); + if ($lang_pack_response !== true) { + Language::checkAndAddLanguage($attributes['iso_code'], false, false); } } } diff --git a/classes/PaymentModule.php b/classes/PaymentModule.php index bd9da789c..6c7b2df80 100644 --- a/classes/PaymentModule.php +++ b/classes/PaymentModule.php @@ -603,9 +603,9 @@ abstract class PaymentModuleCore extends Module } if (!$product['booking_product'] - && ($product['selling_preference_type'] == Product::SELLING_PREFERENCE_STANDALONE - || $product['selling_preference_type'] == Product::SELLING_PREFERENCE_HOTEL_STANDALONE - || $product['selling_preference_type'] == Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE + && ($product['selling_preference_type'] == Product::SELLING_PREFERENCE_WITH_STANDALONE + || $product['selling_preference_type'] == Product::SELLING_PREFERENCE_WITH_HOTEL + || $product['selling_preference_type'] == Product::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_ROOM_TYPE ) ) { $cover_image_arr = $objProduct->getCover($product['id_product']); @@ -901,6 +901,15 @@ abstract class PaymentModuleCore extends Module $objBookingDetail->zipcode = $hotelAddress['postcode']; $objBookingDetail->phone = $hotelAddress['phone']; } + $objBookingDetail->property_type_name = $objHotelBranch->propertyTypeName; + + + } + + // Save room selling object and property type names as they are at the time of order creation + if ($roomTypeInfo = $objRoomType->getRoomTypeInfoByIdProduct($idProduct, $idLang)) { + $objBookingDetail->selling_object_name = $roomTypeInfo['selling_object_name']; + $objBookingDetail->selling_object_plural_name = $roomTypeInfo['selling_object_plural_name']; } /*for saving details of the advance payment product wise*/ @@ -974,6 +983,9 @@ abstract class PaymentModuleCore extends Module )) { $idOrderDetail = $objBookingDetail->getPsOrderDetailIdByIdProduct($idProduct, $order->id, $product['selling_preference_type']); foreach ($roomTypeServices as $roomTypeService) { + if (!$roomTypeService['id_hotel_cart_booking']) { + continue; + } $roomBookingDetail = $objBookingDetail->getRowByIdOrderIdProductInDateRange( $order->id, $roomTypeService['id_room_type'], @@ -1020,7 +1032,7 @@ abstract class PaymentModuleCore extends Module } } } - } elseif (Product::SELLING_PREFERENCE_HOTEL_STANDALONE == $product['selling_preference_type']) { + } elseif (Product::SELLING_PREFERENCE_WITH_HOTEL == $product['selling_preference_type']) { if ($hotelProducts = $objServiceProductCartDetail->getServiceProductsInCart( $this->context->cart->id, [], @@ -1077,12 +1089,12 @@ abstract class PaymentModuleCore extends Module } } - } elseif (Product::SELLING_PREFERENCE_STANDALONE == $product['selling_preference_type']) { + } elseif (Product::SELLING_PREFERENCE_WITH_STANDALONE == $product['selling_preference_type']) { if ($standaloneProducts = $objServiceProductCartDetail->getServiceProductsInCart( $this->context->cart->id, - [Product::SELLING_PREFERENCE_STANDALONE], - null, - null, + [], + 0, + 0, null, $product['id_product'] )) { @@ -1128,7 +1140,7 @@ abstract class PaymentModuleCore extends Module } } - } elseif (Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE == $product['selling_preference_type']) { + } elseif (Product::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_ROOM_TYPE == $product['selling_preference_type']) { $idProductRoomType = null; $idProductHotel = null; if (isset($product['id_room_type']) && $product['id_room_type']) { @@ -1146,7 +1158,7 @@ abstract class PaymentModuleCore extends Module )) { foreach ($serviceProducts as $serviceProduct) { if ($serviceProduct['id_hotel']) { - $idOrderDetail = $objBookingDetail->getPsOrderDetailIdByIdProduct($idProduct, $order->id, Product::SELLING_PREFERENCE_HOTEL_STANDALONE); + $idOrderDetail = $objBookingDetail->getPsOrderDetailIdByIdProduct($idProduct, $order->id, Product::SELLING_PREFERENCE_WITH_HOTEL); } else { $idOrderDetail = $objBookingDetail->getPsOrderDetailIdByIdProduct($idProduct, $order->id, Product::SELLING_PREFERENCE_WITH_ROOM_TYPE); } @@ -1335,10 +1347,10 @@ abstract class PaymentModuleCore extends Module $total_convenience_fee_tax = $total_convenience_fee_ti - $total_convenience_fee_te; // service products - $standalone_products_price_tax_excl = $order->getTotalProductsWithoutTaxes(false, false, Product::SELLING_PREFERENCE_STANDALONE); - $standalone_products_price_tax_incl = $order->getTotalProductsWithTaxes(false, false, Product::SELLING_PREFERENCE_STANDALONE); - $hotel_standalone_products_price_tax_excl = $order->getTotalProductsWithoutTaxes(false, false, Product::SELLING_PREFERENCE_HOTEL_STANDALONE); - $hotel_standalone_products_price_tax_incl = $order->getTotalProductsWithTaxes(false, false, Product::SELLING_PREFERENCE_HOTEL_STANDALONE); + $standalone_products_price_tax_excl = $order->getTotalProductsWithoutTaxes(false, false, Product::SELLING_PREFERENCE_WITH_STANDALONE); + $standalone_products_price_tax_incl = $order->getTotalProductsWithTaxes(false, false, Product::SELLING_PREFERENCE_WITH_STANDALONE); + $hotel_standalone_products_price_tax_excl = $order->getTotalProductsWithoutTaxes(false, false, Product::SELLING_PREFERENCE_WITH_HOTEL); + $hotel_standalone_products_price_tax_incl = $order->getTotalProductsWithTaxes(false, false, Product::SELLING_PREFERENCE_WITH_HOTEL); $service_products_tax = ($standalone_products_price_tax_incl + $hotel_standalone_products_price_tax_incl) - ($standalone_products_price_tax_excl + $hotel_standalone_products_price_tax_excl); diff --git a/classes/Product.php b/classes/Product.php index f09b83c20..73f423a3e 100644 --- a/classes/Product.php +++ b/classes/Product.php @@ -56,6 +56,13 @@ class ProductCore extends ObjectModel /** @var string Manufacturer name */ public $manufacturer_name; + /** @var string Room Type Selling Object name */ + public $selling_object_name; + + /** @var string Room Type Selling Object plural name */ + public $selling_object_plural_name; + + /** @var string Supplier name */ public $supplier_name; @@ -250,6 +257,7 @@ class ProductCore extends ObjectModel public $is_virtual; public $booking_product; public $id_pack_product_attribute; + public $id_selling_object; public $cache_default_attribute; /** @@ -345,6 +353,7 @@ class ProductCore extends ObjectModel 'show_price' => array('type' => self::TYPE_BOOL, 'shop' => true, 'validate' => 'isBool'), 'indexed' => array('type' => self::TYPE_BOOL, 'shop' => true, 'validate' => 'isBool'), 'visibility' => array('type' => self::TYPE_STRING, 'shop' => true, 'validate' => 'isProductVisibility', 'values' => array('both', 'catalog', 'search', 'none'), 'default' => 'both'), + 'id_selling_object' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => false), 'cache_default_attribute' => array('type' => self::TYPE_INT, 'shop' => true), 'advanced_stock_management' => array('type' => self::TYPE_BOOL, 'shop' => true, 'validate' => 'isBool'), 'date_add' => array('type' => self::TYPE_DATE, 'shop' => true, 'validate' => 'isDate'), @@ -555,15 +564,24 @@ class ProductCore extends ObjectModel // Product selling preference types const SELLING_PREFERENCE_WITH_ROOM_TYPE = 1; // Product to be sold with Room types - const SELLING_PREFERENCE_HOTEL_STANDALONE = 2; // Product to be sold Standalone with Hotels - const SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE = 3; // Product to be sold Standalone with Hotels and with Room types also - const SELLING_PREFERENCE_STANDALONE = 4; // Product to be sold standalone + const SELLING_PREFERENCE_WITH_HOTEL = 2; // Product to be sold Standalone with Hotels + const SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_ROOM_TYPE = 3; // Product to be sold Standalone with Hotels and with Room types also + const SELLING_PREFERENCE_WITH_STANDALONE = 4; // Product to be sold standalone + const SELLING_PREFERENCE_WITH_STANDALONE_AND_WITH_ROOM_TYPE = 5; // Product to be sold standalone and with Room types also + const SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_STANDALONE = 6; // Product to be sold standalone with Hotels and with Room types also + const SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_ROOM_TYPE_AND_WITH_STANDALONE = 7; // Product to be sold standalone with Hotels and with Room types also and standalone const PRICE_ADDITION_TYPE_WITH_ROOM = 1; const PRICE_ADDITION_TYPE_INDEPENDENT = 2; - const PRICE_CALCULATION_METHOD_PER_BOOKING = 1; - const PRICE_CALCULATION_METHOD_PER_DAY = 2; + const PRICE_CALCULATION_METHOD_ON_CHECKIN_DAY = 1; + const PRICE_CALCULATION_METHOD_ON_CHECKOUT_DAY = 2; + const PRICE_CALCULATION_METHOD_CHECKIN_DAY_AND_CHECKOUT_DAY = 3; + const PRICE_CALCULATION_METHOD_ON_DURING_STAY = 4; + const PRICE_CALCULATION_METHOD_CHECKIN_AND_DURING_STAY = 5; + const PRICE_CALCULATION_METHOD_CHECKOUT_AND_DURING_STAY = 6; + const PRICE_CALCULATION_METHOD_CHECKIN_AND_CHECKOUT_AND_DURING_STAY = 7; + const PRICE_CALCULATION_METHOD_ONCE_FOR_BOOKING = 8; const STANDARD_PRODUCT_ADDRESS_PREFERENCE_CUSTOMER = 1; const STANDARD_PRODUCT_ADDRESS_PREFERENCE_HOTEL = 2; @@ -581,6 +599,9 @@ class ProductCore extends ObjectModel $this->tax_name = 'deprecated'; // The applicable tax may be BOTH the product one AND the state one (moreover this variable is some deadcode) $this->manufacturer_name = Manufacturer::getNameById((int)$this->id_manufacturer); $this->supplier_name = Supplier::getNameById((int)$this->id_supplier); + $sellingObject = RoomTypeSellingObject::getRoomTypeSellingObjectBySellingObjectId((int)$this->id_selling_object, (int)$id_lang); + $this->selling_object_name = $sellingObject ? $sellingObject['name'] : null; + $this->selling_object_plural_name = $sellingObject ? $sellingObject['plural_name'] : null; $address = null; $id_address = Cart::getIdAddressForTaxCalculation($this->id); $this->tax_rate = $this->getTaxesRate(new Address($id_address)); @@ -1441,7 +1462,10 @@ class ProductCore extends ObjectModel ('. '(`element_type` = '.RoomTypeServiceProduct::WK_ELEMENT_TYPE_ROOM_TYPE.' AND `id_element` = '.(int)$this->id.') ) - AND (p.`selling_preference_type` = '.(int)self::SELLING_PREFERENCE_WITH_ROOM_TYPE. ' || p.`selling_preference_type` = '.(int)self::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE.')'. ' + AND (p.`selling_preference_type` = '.(int)self::SELLING_PREFERENCE_WITH_ROOM_TYPE. ' + || p.`selling_preference_type` = '.(int)self::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_ROOM_TYPE.' + || p.`selling_preference_type` = '.(int)self::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_ROOM_TYPE_AND_WITH_STANDALONE.' + || p.`selling_preference_type` = '.(int)self::SELLING_PREFERENCE_WITH_STANDALONE_AND_WITH_ROOM_TYPE.') AND product_shop.`id_shop` = '.(int)$context->shop->id .($sub_category? ' AND product_shop.`id_category_default` = '.(int)$sub_category : '') .($front ? ' AND product_shop.`show_at_front` = 1':'') @@ -1485,7 +1509,10 @@ class ProductCore extends ObjectModel ('. '(`element_type` = '.RoomTypeServiceProduct::WK_ELEMENT_TYPE_ROOM_TYPE.' AND `id_element` = '.(int)$this->id.') ) - AND (p.`selling_preference_type` = '.(int)self::SELLING_PREFERENCE_WITH_ROOM_TYPE. '|| p.`selling_preference_type` = '.(int)self::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE.')'. ' + AND (p.`selling_preference_type` = '.(int)self::SELLING_PREFERENCE_WITH_ROOM_TYPE. ' + || p.`selling_preference_type` = '.(int)self::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_ROOM_TYPE.' + || p.`selling_preference_type` = '.(int)self::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_ROOM_TYPE_AND_WITH_STANDALONE.' + || p.`selling_preference_type` = '.(int)self::SELLING_PREFERENCE_WITH_STANDALONE_AND_WITH_ROOM_TYPE.')'. ' AND product_shop.`id_shop` = '.(int)$context->shop->id .($sub_category? ' AND product_shop.`id_category_default` = '.(int)$sub_category : '') .($front ? ' AND product_shop.`show_at_front` = 1':'') @@ -1534,7 +1561,9 @@ class ProductCore extends ObjectModel '(`element_type` = '.RoomTypeServiceProduct::WK_ELEMENT_TYPE_ROOM_TYPE.' AND `id_element` = '.(int)$this->id.') ) AND p.`selling_preference_type` = '.(int)self::SELLING_PREFERENCE_WITH_ROOM_TYPE. - ' || p.`selling_preference_type` = '.(int)self::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE. + ' || p.`selling_preference_type` = '.(int)self::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_ROOM_TYPE. + ' || p.`selling_preference_type` = '.(int)self::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_ROOM_TYPE_AND_WITH_STANDALONE. + ' || p.`selling_preference_type` = '.(int)self::SELLING_PREFERENCE_WITH_STANDALONE_AND_WITH_ROOM_TYPE. ' AND product_shop.`id_shop` = '.(int)$context->shop->id; $sql .= ' GROUP BY cl.`id_category`'; @@ -3096,7 +3125,7 @@ class ProductCore extends ObjectModel } if (!Product::isBookingProduct($id_product) - && (Product::getSellingPreferenceType($id_product) == Product::SELLING_PREFERENCE_STANDALONE) + && (Product::getSellingPreferenceType($id_product) == Product::SELLING_PREFERENCE_WITH_STANDALONE) && !$id_address ) { $serviceAddressPrefrenceType = Configuration::get('PS_STANDARD_PRODUCT_ORDER_ADDRESS_PREFRENCE'); @@ -4012,7 +4041,7 @@ class ProductCore extends ObjectModel $id_value = Db::getInstance()->Insert_ID(); } $row = array('id_feature' => (int)$id_feature, 'id_product' => (int)$this->id, 'id_feature_value' => (int)$id_value); - Db::getInstance()->insert('feature_product', $row); + Db::getInstance()->insert('feature_product', $row, false, true, Db::INSERT_IGNORE); SpecificPriceRule::applyAllRules(array((int)$this->id)); if ($id_value) { return ($id_value); @@ -6821,11 +6850,12 @@ class ProductCore extends ObjectModel ) ); - $isPerDay = Product::getProductPriceCalculation($idProduct) == Product::PRICE_CALCULATION_METHOD_PER_DAY - && $dateFrom && $dateTo; - if ($isPerDay) { - $price = $price * HotelHelper::getNumberOfDays($dateFrom, $dateTo); - } + $numdays = Product::getServicePriceBillableDays( + Product::getProductPriceCalculation($idProduct), + $dateFrom, + $dateTo + ); + $price = $price * $numdays; $price = $price * $quantity; @@ -6870,9 +6900,118 @@ class ProductCore extends ObjectModel ); } + if (!$specificPrice || ($specificPrice['id_cart'] == 0 && $specificPrice['id_htl_cart_booking'] == 0)) { + if (!$idGroup || !Validate::isLoadedObject(new Group((int)$idGroup))) { + $idGroup = (int)Group::getCurrent()->id; + } + $price = Product::applyGroupDiscount($price, $idProduct, $idGroup); + } return $price; } + + public static function getServicePriceBillableDays( + $priceCalculationMethod, + $dateFrom, + $dateTo, + ) { + + $numNights = (int) HotelHelper::getNumberOfDays($dateFrom, $dateTo); + if ($numNights < 1) { + return 1; + } + + $checkinDay = 1; + $checkoutDay = 1; + $stayDay = $numNights - 1; + + switch ((int) $priceCalculationMethod) { + case self::PRICE_CALCULATION_METHOD_ONCE_FOR_BOOKING: + return 1; + + case self::PRICE_CALCULATION_METHOD_ON_CHECKIN_DAY: + return $checkinDay; + + case self::PRICE_CALCULATION_METHOD_ON_CHECKOUT_DAY: + return $checkoutDay; + + case self::PRICE_CALCULATION_METHOD_ON_DURING_STAY: + return $stayDay; + + case self::PRICE_CALCULATION_METHOD_CHECKIN_DAY_AND_CHECKOUT_DAY: + return $checkinDay + $checkoutDay; + + case self::PRICE_CALCULATION_METHOD_CHECKIN_AND_DURING_STAY: + return $checkinDay + $stayDay; + + case self::PRICE_CALCULATION_METHOD_CHECKOUT_AND_DURING_STAY: + return $checkoutDay + $stayDay; + + case self::PRICE_CALCULATION_METHOD_CHECKIN_AND_CHECKOUT_AND_DURING_STAY: + return $checkinDay + $checkoutDay + $stayDay; + + default: + return $numNights; + } + } + + public static function getPriceCalculationMethodDaysLabel($priceCalculationMethod) + { + $priceCalculationMethod = (int) $priceCalculationMethod; + $labels = array(); + static $module = null; + if (is_null($module)) { + $module = Module::getInstanceByName('hotelreservationsystem'); + } + if ($priceCalculationMethod == self::PRICE_CALCULATION_METHOD_ONCE_FOR_BOOKING) { + $labels[] = $module->l('Once per booking'); + + return $labels; + } + + if ($priceCalculationMethod & self::PRICE_CALCULATION_METHOD_ON_CHECKIN_DAY) { + $labels[] = $module->l('Check-in day'); + } + if ($priceCalculationMethod & self::PRICE_CALCULATION_METHOD_ON_DURING_STAY) { + $labels[] = $module->l('During-stay days'); + } + if ($priceCalculationMethod & self::PRICE_CALCULATION_METHOD_ON_CHECKOUT_DAY) { + $labels[] = $module->l('Check-out day'); + } + + return $labels; + } + + public static function isSellableWithRoomType($idProduct) + { + return in_array((int) self::getSellingPreferenceType($idProduct), [ + self::SELLING_PREFERENCE_WITH_ROOM_TYPE, + self::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_ROOM_TYPE, + self::SELLING_PREFERENCE_WITH_STANDALONE_AND_WITH_ROOM_TYPE, + self::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_ROOM_TYPE_AND_WITH_STANDALONE, + ]); + } + + public static function isSellableWithHotel($idProduct) + { + return in_array((int) self::getSellingPreferenceType($idProduct), [ + self::SELLING_PREFERENCE_WITH_HOTEL, + self::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_ROOM_TYPE, + self::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_STANDALONE, + self::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_ROOM_TYPE_AND_WITH_STANDALONE, + ]); + } + + public static function isSellableAsStandalone($idProduct) + { + return in_array((int) self::getSellingPreferenceType($idProduct), [ + self::SELLING_PREFERENCE_WITH_STANDALONE, + self::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_STANDALONE, + self::SELLING_PREFERENCE_WITH_STANDALONE_AND_WITH_ROOM_TYPE, + self::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_ROOM_TYPE_AND_WITH_STANDALONE, + ]); + } + /** * Prepare grouped core features and values for a room type, with selection state. * diff --git a/classes/Profile.php b/classes/Profile.php index 54900fb44..268ca8da8 100644 --- a/classes/Profile.php +++ b/classes/Profile.php @@ -112,7 +112,13 @@ class ProfileCore extends ObjectModel { // getProfileAccesses is cached so there is no performance leak $accesses = Profile::getProfileAccesses($id_profile); - return (isset($accesses[$id_tab]) ? $accesses[$id_tab] : false); + return (isset($accesses[$id_tab]) ? $accesses[$id_tab] : array( + 'view' => 0, + 'add' => 0, + 'edit' => 0, + 'delete' => 0, + 'kpi' => 0, + )); } public static function getProfileAccesses($id_profile, $type = 'id_tab') diff --git a/classes/RoomTypeSellingObject.php b/classes/RoomTypeSellingObject.php new file mode 100644 index 000000000..61b98b6be --- /dev/null +++ b/classes/RoomTypeSellingObject.php @@ -0,0 +1,95 @@ + 'room_type_selling_object', + 'primary' => 'id_room_type_selling_object', + 'multilang' => true, + 'fields' => array( + 'active' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool'), + 'date_add' => array('type' => self::TYPE_DATE, 'validate' => 'isDate', 'copy_post' => false), + 'date_upd' => array('type' => self::TYPE_DATE, 'validate' => 'isDate', 'copy_post' => false), + 'name' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'required' => true), + 'plural_name' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'required' => true), + ), + ); + + public function isUsed() + { + return (bool) Db::getInstance()->getValue( + 'SELECT COUNT(*) FROM `'._DB_PREFIX_.'product` WHERE `id_selling_object` = '.(int) $this->id + ); + } + + public static function getRoomTypeSellingObjectBySellingObjectId($idSellingObject = null, $idLang = null) + { + if (!$idLang) { + $idLang = Context::getContext()->language->id; + } + + $cache_key = 'RoomTypeSellingObject::getRoomTypeSellingObjectBySellingObjectId_'.(int)$idSellingObject.'_'.(int)$idLang; + if (!Cache::isStored($cache_key)) { + $sql = 'SELECT hrstl.`name`, hrstl.`plural_name` + FROM `'._DB_PREFIX_.'room_type_selling_object` hrst + LEFT JOIN `'._DB_PREFIX_.'room_type_selling_object_lang` hrstl + ON (hrst.`id_room_type_selling_object` = hrstl.`id_room_type_selling_object` + AND hrstl.`id_lang` = '.(int)$idLang.') + WHERE hrst.`id_room_type_selling_object` = '.(int)$idSellingObject; + $res = Db::getInstance()->getRow($sql); + Cache::store($cache_key, $res); + } + + return Cache::retrieve($cache_key); + } + + public static function getRoomTypeSellingObjects($idLang = null, $active = true) + { + if (!$idLang) { + $idLang = Context::getContext()->language->id; + } + + $cache_key = 'RoomTypeSellingObject::getRoomTypeSellingObjects'.(int)$idLang.'_'.(int)$active; + if (!Cache::isStored($cache_key)) { + $sql = 'SELECT hrst.`id_room_type_selling_object` AS `id_room_type_selling_object`, hrstl.`name`, hrstl.`plural_name` + FROM `'._DB_PREFIX_.'room_type_selling_object` hrst + LEFT JOIN `'._DB_PREFIX_.'room_type_selling_object_lang` hrstl + ON (hrst.`id_room_type_selling_object` = hrstl.`id_room_type_selling_object` + AND hrstl.`id_lang` = '.(int)$idLang.')'. + ($active ? ' WHERE hrst.`active` = 1' : ''). + ' ORDER BY hrstl.`name` ASC'; + + $res = Db::getInstance()->executeS($sql); + Cache::store($cache_key, $res); + } + + return Cache::retrieve($cache_key); + } +} diff --git a/classes/Tag.php b/classes/Tag.php index 92b0434e5..e9f7f1280 100644 --- a/classes/Tag.php +++ b/classes/Tag.php @@ -97,7 +97,7 @@ class TagCore extends ObjectModel } if (!is_array($tag_list)) { - $tag_list = array_filter(array_unique(array_map('trim', preg_split('#\\'.$separator.'#', $tag_list, null, PREG_SPLIT_NO_EMPTY)))); + $tag_list = array_filter(array_unique(array_map('trim', preg_split('#\\'.$separator.'#', $tag_list, 0, PREG_SPLIT_NO_EMPTY)))); } $list = array(); diff --git a/classes/Tools.php b/classes/Tools.php index 2ffec4434..60b8d69fd 100644 --- a/classes/Tools.php +++ b/classes/Tools.php @@ -224,7 +224,7 @@ class ToolsCore * * @param string $url Desired URL */ - public static function redirectAdmin($url) + public static function redirectAdmin($url): never { header('Location: '.$url); exit; @@ -1381,14 +1381,14 @@ class ToolsCore $has_mb_strtolower = function_exists('mb_strtolower'); } - if (isset($array_str[$str])) { - return $array_str[$str]; - } - if (!is_string($str)) { return false; } + if (isset($array_str[$str])) { + return $array_str[$str]; + } + if ($str == '') { return ''; } @@ -1891,13 +1891,13 @@ class ToolsCore } $precision_places = 14 - floor(log10(abs($value))); - $f1 = pow(10.0, (double)abs($places)); + $f1 = pow(10.0, (float) abs($places)); /* If the decimal precision guaranteed by FP arithmetic is higher than * the requested places BUT is small enough to make sure a non-zero value * is returned, pre-round the result to the precision */ if ($precision_places > $places && $precision_places - $places < 15) { - $f2 = pow(10.0, (double)abs($precision_places)); + $f2 = pow(10.0, (float) abs($precision_places)); if ($precision_places >= 0) { $tmp_value = $value * $f2; @@ -1909,7 +1909,7 @@ class ToolsCore * thus never larger than 1e15 here) */ $tmp_value = Tools::round_helper($tmp_value, $mode); /* now correctly move the decimal point */ - $f2 = pow(10.0, (double)abs($places - $precision_places)); + $f2 = pow(10.0, (float) abs($places - $precision_places)); /* because places < precision_places */ $tmp_value = $tmp_value / $f2; } else { @@ -2091,7 +2091,6 @@ class ToolsCore } } $content = curl_exec($curl); - curl_close($curl); return $content; } else { return false; @@ -2374,9 +2373,9 @@ class ToolsCore } // Write data in .htaccess file - fwrite($write_fd, "# ~~start~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again\n"); - fwrite($write_fd, "# .htaccess automaticaly generated by PrestaShop e-commerce open-source solution\n"); - fwrite($write_fd, "# http://www.prestashop.com - http://www.prestashop.com/forums\n\n"); + fwrite($write_fd, "# ~~start~~ Do not remove this comment, QloApps will keep automatically the code outside this comment when .htaccess will be generated again\n"); + fwrite($write_fd, "# .htaccess automaticaly generated by QloApps hotel commerce open-source solution\n"); + fwrite($write_fd, "# https://www.qloapps.com\n\n"); if ($disable_modsec) { fwrite($write_fd, "\nSecFilterEngine Off\nSecFilterScanPOST Off\n\n\n"); @@ -2584,7 +2583,7 @@ FileETag none $domain = current($domains); fwrite($write_fd, 'ErrorDocument 404 '.$domain[0]['physical']."index.php?controller=404\n\n"); - fwrite($write_fd, "# ~~end~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again"); + fwrite($write_fd, "# ~~end~~ Do not remove this comment, QloApps will keep automatically the code outside this comment when .htaccess will be generated again"); if ($specific_after) { fwrite($write_fd, "\n\n".trim($specific_after)); } @@ -2965,7 +2964,7 @@ exit; /** * @deprecated as of 1.5 use Controller::getController('PageNotFoundController')->run(); */ - public static function display404Error() + public static function display404Error(): never { header('HTTP/1.1 404 Not Found'); header('Status: 404 Not Found'); diff --git a/classes/Uploader.php b/classes/Uploader.php index 218f81a3e..47ddf2ffd 100644 --- a/classes/Uploader.php +++ b/classes/Uploader.php @@ -123,7 +123,7 @@ class UploaderCore case 'k': $bytes *= 1024; } - if ($bytes == '') { + if ($bytes == 0) { $bytes = null; } return $bytes; diff --git a/classes/controller/AdminController.php b/classes/controller/AdminController.php index 2b6636eef..9a2095ead 100644 --- a/classes/controller/AdminController.php +++ b/classes/controller/AdminController.php @@ -447,7 +447,7 @@ class AdminControllerCore extends Controller { global $timer_start; $this->timer_start = $timer_start; - // Has to be remove for the next Prestashop version + // Has to be remove for the next QloApps version global $token; $this->controller_type = 'admin'; @@ -527,7 +527,7 @@ class AdminControllerCore extends Controller 29 => $this->l('Successful upgrade'), 30 => $this->l('A partial refund was successfully created.'), 31 => $this->l('The discount was successfully generated.'), - 32 => $this->l('Successfully signed in to PrestaShop Addons'), + 32 => $this->l('Successfully signed in to QloApps Addons'), 33 => $this->l('The selected module(s) have been successfully enabled.'), 34 => $this->l('The selected module(s) have been successfully disabled.'), @@ -1797,8 +1797,7 @@ class AdminControllerCore extends Controller $this->initTabModuleList(); $this->addPageHeaderToolBarModulesListButton(); - $this->context->smarty->assign('help_link', 'http://help.prestashop.com/'.Language::getIsoById($this->context->employee->id_lang).'/doc/' - .Tools::getValue('controller').'?version='._PS_VERSION_.'&country='.Language::getIsoById($this->context->employee->id_lang)); + $this->context->smarty->assign('help_link', 'https://webkul.uvdesk.com/en/customer/create-ticket/'); } /** @@ -2516,7 +2515,7 @@ class AdminControllerCore extends Controller 'check_url_fopen' => (ini_get('allow_url_fopen') ? 'ok' : 'ko'), 'check_openssl' => (extension_loaded('openssl') ? 'ok' : 'ko'), 'add_permission' => 1, - 'addons_register_link' => 'https://addons.prestashop.com/'.$this->context->language->iso_code.'/login' + 'addons_register_link' => 'https://store.webkul.com/customer/account/login' )); //Force override translation key @@ -2967,7 +2966,7 @@ class AdminControllerCore extends Controller */ public function init() { - // Has to be removed for the next Prestashop version + // Has to be removed for the next QloApps version global $currentIndex; parent::init(); diff --git a/classes/db/DbPDO.php b/classes/db/DbPDO.php index 3be1c4326..3b5ffccad 100644 --- a/classes/db/DbPDO.php +++ b/classes/db/DbPDO.php @@ -60,8 +60,13 @@ class DbPDOCore extends Db } else { $dsn .= 'host='.$host; } - - return new PDO($dsn, $user, $password, array(PDO::ATTR_TIMEOUT => $timeout, PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true)); + if(class_exists('Pdo\\Mysql')){ + $bufferedQueryAttr = \Pdo\Mysql::ATTR_USE_BUFFERED_QUERY; + }else{ + $bufferedQueryAttr = PDO::MYSQL_ATTR_USE_BUFFERED_QUERY;; + } + + return new PDO($dsn, $user, $password, array(PDO::ATTR_TIMEOUT => $timeout, $bufferedQueryAttr => true)); } /** diff --git a/classes/module/Module.php b/classes/module/Module.php index 6b08a164e..69ea19b9a 100644 --- a/classes/module/Module.php +++ b/classes/module/Module.php @@ -403,7 +403,7 @@ abstract class ModuleCore // Install module and retrieve the installation id $result = Db::getInstance()->insert($this->table, array('name' => $this->name, 'active' => 1, 'version' => $this->version)); if (!$result) { - $this->_errors[] = Tools::displayError('Technical error: PrestaShop could not install this module.'); + $this->_errors[] = Tools::displayError('Technical error: QloApps could not install this module.'); return false; } $this->id = Db::getInstance()->Insert_ID(); diff --git a/classes/order/Order.php b/classes/order/Order.php index c55320d9c..c59836651 100644 --- a/classes/order/Order.php +++ b/classes/order/Order.php @@ -47,6 +47,7 @@ class OrderCore extends ObjectModel const ORDER_COMPLETE_CANCELLATION_OR_REFUND_REQUEST_FLAG = 3; const ORDER_COMPLETE_NOSHOW_FLAG = 4; + /** @var int Delivery address id */ public $id_address_delivery; @@ -1137,7 +1138,7 @@ class OrderCore extends ObjectModel $selling_preference_type = null, $product_auto_add = null, $product_price_addition_type = null, - $ids_order_detail = [] + $ids_order_detail = [], ) { // update if (!$products) { @@ -2556,12 +2557,11 @@ class OrderCore extends ObjectModel )) { $totals = array_reduce($serviceProductDetail, function ($carry, $item) use ($order_detail) { $objHotelBookingDetail = new HotelBookingDetail((int) $item['id_htl_booking_detail']); - $numDays = 1; - if ((Product::PRICE_CALCULATION_METHOD_PER_DAY == $order_detail['product_price_calculation_method']) - && (!$numDays = HotelHelper::getNumberOfDays($objHotelBookingDetail->date_from, $objHotelBookingDetail->date_to)) - ) { - $numDays = 1; - } + $numDays = Product::getServicePriceBillableDays( + $order_detail['product_price_calculation_method'], + $objHotelBookingDetail->date_from, + $objHotelBookingDetail->date_to + ); if (!empty($item['id_tax_rules_group'])) { $qty = isset($item['quantity']) ? $item['quantity'] : 0; @@ -2612,12 +2612,11 @@ class OrderCore extends ObjectModel // We are getting auto added service for specific room.There will be only on htl_booking_detail but can have multiple auto added service with room. // Note: All the auto added service with room have same id_tax_rule group $autoAddedServiceData = array_shift($autoAddedServiceData); - $numDays = 1; - if ((Product::PRICE_CALCULATION_METHOD_PER_DAY == $order_detail['product_price_calculation_method']) - && (!$numDays = HotelHelper::getNumberOfDays($autoAddedServiceData['date_from'], $autoAddedServiceData['date_to'])) - ) { - $numDays = 1; - } + $numDays = Product::getServicePriceBillableDays( + $order_detail['product_price_calculation_method'], + $autoAddedServiceData['date_from'], + $autoAddedServiceData['date_to'] + ); $autoAddedServices = $autoAddedServiceData['additional_services']; // Calculate total quantity of auto-added services @@ -2870,12 +2869,12 @@ class OrderCore extends ObjectModel } // check hotel linked products $objServiceProductOrderDetail = new ServiceProductOrderDetail(); - if ($hotelProducts = $objServiceProductOrderDetail->getServiceProductsInOrder($this->id, 0, 0, Product::SELLING_PREFERENCE_HOTEL_STANDALONE)) { + if ($hotelProducts = $objServiceProductOrderDetail->getServiceProductsInOrder($this->id, 0, 0, Product::SELLING_PREFERENCE_WITH_HOTEL)) { $res &= $this->checkList($hotelProducts, $action, false); $hasRoomsOrProducts = 1; } - if ($standaloneProducts = $objServiceProductOrderDetail->getServiceProductsInOrder($this->id, 0, 0, Product::SELLING_PREFERENCE_STANDALONE)) { + if ($standaloneProducts = $objServiceProductOrderDetail->getServiceProductsInOrder($this->id, 0, 0, Product::SELLING_PREFERENCE_WITH_STANDALONE)) { $res &= $this->checkList($standaloneProducts, $action, false); $hasRoomsOrProducts = 1; } diff --git a/classes/order/OrderDetail.php b/classes/order/OrderDetail.php index 2275f7811..683cc7dfd 100644 --- a/classes/order/OrderDetail.php +++ b/classes/order/OrderDetail.php @@ -465,10 +465,11 @@ class OrderDetailCore extends ObjectModel $totalPriceTaxExcl = 0.0; $firstServiceProduct = null; foreach ($serviceProductData as $bookingServiceData) { - $bookingNumDays = 1; - if (Product::PRICE_CALCULATION_METHOD_PER_DAY == $this->product_price_calculation_method) { - $bookingNumDays = HotelHelper::getNumberOfDays($bookingServiceData['date_from'], $bookingServiceData['date_to']) ?: 1; - } + $bookingNumDays = Product::getServicePriceBillableDays( + $this->product_price_calculation_method, + $bookingServiceData['date_from'], + $bookingServiceData['date_to'] + ); foreach ($bookingServiceData['additional_services'] as $item) { $itemQuantity = (isset($item['quantity']) ? $item['quantity'] : 0) * $bookingNumDays; $quantity += $itemQuantity; @@ -498,10 +499,11 @@ class OrderDetailCore extends ObjectModel $quantity = 0; $totalPriceTaxExcl = 0.0; foreach ($serviceProductData as $cartServiceItem) { - $itemNumDays = 1; - if (Product::PRICE_CALCULATION_METHOD_PER_DAY == $this->product_price_calculation_method) { - $itemNumDays = HotelHelper::getNumberOfDays($cartServiceItem['date_from'], $cartServiceItem['date_to']) ?: 1; - } + $itemNumDays = Product::getServicePriceBillableDays( + $this->product_price_calculation_method, + $cartServiceItem['date_from'], + $cartServiceItem['date_to'] + ); $itemQuantity = (isset($cartServiceItem['quantity']) ? $cartServiceItem['quantity'] : 0) * $itemNumDays; $quantity += $itemQuantity; $totalPriceTaxExcl += $itemQuantity * (isset($cartServiceItem['unit_price_tax_excl']) ? $cartServiceItem['unit_price_tax_excl'] : 0); diff --git a/classes/order/OrderInvoice.php b/classes/order/OrderInvoice.php index 83ba35ce1..29f66f590 100644 --- a/classes/order/OrderInvoice.php +++ b/classes/order/OrderInvoice.php @@ -505,7 +505,8 @@ class OrderInvoiceCore extends ObjectModel $order_detail = array_filter($order_detail, function($v) { return (!$v['is_booking_product'] && !$v['product_auto_add'] && $v['selling_preference_type'] == Product::SELLING_PREFERENCE_WITH_ROOM_TYPE); }); - $details = $order->getProductTaxesDetails($order_detail, false, Product::SELLING_PREFERENCE_WITH_ROOM_TYPE); + + $details = $order->getProductTaxesDetails($order_detail, false,Product::SELLING_PREFERENCE_WITH_ROOM_TYPE); if ($sum_composite_taxes) { $grouped_details = array(); @@ -634,10 +635,11 @@ class OrderInvoiceCore extends ObjectModel $order_detail = $this->getProducts(); $order_detail = array_filter($order_detail, function($v) { return (!$v['is_booking_product'] && ( - $v['selling_preference_type'] == Product::SELLING_PREFERENCE_STANDALONE - || $v['selling_preference_type'] == Product::SELLING_PREFERENCE_HOTEL_STANDALONE + $v['selling_preference_type'] == Product::SELLING_PREFERENCE_WITH_STANDALONE + || $v['selling_preference_type'] == Product::SELLING_PREFERENCE_WITH_HOTEL )); }); + $details = $order->getProductTaxesDetails($order_detail, false); diff --git a/classes/order/OrderTaxDetail.php b/classes/order/OrderTaxDetail.php index 768c5c3ae..68ab11a48 100644 --- a/classes/order/OrderTaxDetail.php +++ b/classes/order/OrderTaxDetail.php @@ -159,13 +159,11 @@ class OrderTaxDetailCore extends ObjectModel MAX(CASE WHEN ex.`id_order_tax_exemption` IS NULL THEN 1 ELSE 0 END) AS applied_count FROM `' . _DB_PREFIX_ . 'order_tax_detail` tt INNER JOIN `' . _DB_PREFIX_ . 'tax` t ON t.`id_tax` = tt.`id_tax` AND t.`is_tourism_tax` = 1 - LEFT JOIN `' . _DB_PREFIX_ . 'htl_booking_detail` hbd - ON hbd.`id` = tt.`id_htl_booking` LEFT JOIN `' . _DB_PREFIX_ . 'order_tax_exemption` ex ON ex.`id_htl_booking` = tt.`id_htl_booking` WHERE tt.`id_order` = ' . $idOrder . ' AND tt.`id_htl_booking` != 0 - AND hbd.`is_refunded` = 0 + AND tt.`id_htl_booking` NOT IN (' . OrderReturn::getRefundedBookingIdsSubquery() . ') GROUP BY tt.`id_htl_booking`' ); foreach ((array) $rows as $row) { @@ -754,8 +752,6 @@ class OrderTaxDetailCore extends ObjectModel INNER JOIN `' . _DB_PREFIX_ . 'tax` t ON t.`id_tax` = ott.`id_tax` AND t.`is_tourism_tax` = 1 LEFT JOIN `' . _DB_PREFIX_ . 'service_product_order_detail` spod ON spod.`id_service_product_order_detail` = ott.`id_service_product_order_detail` - LEFT JOIN `' . _DB_PREFIX_ . 'htl_booking_detail` hbd - ON hbd.`id` = ott.`id_htl_booking` LEFT JOIN `' . _DB_PREFIX_ . 'order_tax_exemption` ex ON (ott.`id_htl_booking` != 0 AND ex.`id_htl_booking` = ott.`id_htl_booking`) OR (ott.`id_htl_booking` = 0 AND spod.`id_htl_booking_detail` != 0 AND ex.`id_htl_booking` = spod.`id_htl_booking_detail`) @@ -763,7 +759,7 @@ class OrderTaxDetailCore extends ObjectModel LEFT JOIN `' . _DB_PREFIX_ . 'tax_lang` tl ON tl.`id_tax` = ott.`id_tax` AND tl.`id_lang` = ' . $idLang . ' WHERE ott.`id_order` = ' . $idOrder . ' - AND ((ott.`id_htl_booking` != 0 AND hbd.`is_refunded` = 0) + AND ((ott.`id_htl_booking` != 0 AND ott.`id_htl_booking` NOT IN (' . OrderReturn::getRefundedBookingIdsSubquery() . ')) OR (ott.`id_htl_booking` = 0 AND spod.`is_refunded` = 0)) AND ex.`id_order_tax_exemption` IS NULL GROUP BY ott.`id_tax`, tl.`name`' @@ -795,14 +791,12 @@ class OrderTaxDetailCore extends ObjectModel INNER JOIN `' . _DB_PREFIX_ . 'tax` t ON t.`id_tax` = ott.`id_tax` AND t.`is_tourism_tax` = 1 LEFT JOIN `' . _DB_PREFIX_ . 'service_product_order_detail` spod ON spod.`id_service_product_order_detail` = ott.`id_service_product_order_detail` - LEFT JOIN `' . _DB_PREFIX_ . 'htl_booking_detail` hbd - ON hbd.`id` = ott.`id_htl_booking` LEFT JOIN `' . _DB_PREFIX_ . 'order_tax_exemption` ex ON (ott.`id_htl_booking` != 0 AND ex.`id_htl_booking` = ott.`id_htl_booking`) OR (ott.`id_htl_booking` = 0 AND spod.`id_htl_booking_detail` != 0 AND ex.`id_htl_booking` = spod.`id_htl_booking_detail`) OR (ott.`id_htl_booking` = 0 AND (spod.`id_htl_booking_detail` = 0 OR spod.`id_htl_booking_detail` IS NULL) AND ex.`id_service_product_order_detail` = ott.`id_service_product_order_detail` AND ex.`id_htl_booking` = 0) WHERE ott.`id_order` = ' . $idOrder . ' - AND ((ott.`id_htl_booking` != 0 AND hbd.`is_refunded` = 0) + AND ((ott.`id_htl_booking` != 0 AND ott.`id_htl_booking` NOT IN (' . OrderReturn::getRefundedBookingIdsSubquery() . ')) OR (ott.`id_htl_booking` = 0 AND spod.`is_refunded` = 0)) AND ex.`id_order_tax_exemption` IS NULL GROUP BY ott.`id_order_detail`' @@ -842,7 +836,7 @@ class OrderTaxDetailCore extends ObjectModel $scopeValue = (int) $scopeValue; if ($scopeColumn === self::SCOPE_COLUMN_ROOM) { return (bool) Db::getInstance()->getValue( - 'SELECT `is_refunded` FROM `' . _DB_PREFIX_ . 'htl_booking_detail` WHERE `id` = ' . $scopeValue + 'SELECT ' . $scopeValue . ' IN (' . OrderReturn::getRefundedBookingIdsSubquery() . ')' ); } return (bool) Db::getInstance()->getValue( @@ -1281,8 +1275,12 @@ class OrderTaxDetailCore extends ObjectModel $objBookingDetail = new HotelBookingDetail(); $bookings = $objBookingDetail->getBookingDataByOrderId($idOrder); if ($bookings) { + $refundedIds = array_flip(array_column( + Db::getInstance()->executeS(OrderReturn::getRefundedBookingIdsSubquery()), + 'id_htl_booking' + )); foreach ($bookings as $booking) { - if (!empty($booking['is_refunded']) || !empty($booking['is_cancelled'])) { + if (isset($refundedIds[$booking['id']]) || $booking['id_status'] == HotelBookingDetail::STATUS_CANCELLED) { continue; } $result = self::exemptBooking($booking['id'], $idEmployee, $note, $autoMsgLabel, $remarkLabel); @@ -1319,8 +1317,12 @@ class OrderTaxDetailCore extends ObjectModel $objBookingDetail = new HotelBookingDetail(); $bookings = $objBookingDetail->getBookingDataByOrderId($idOrder); if ($bookings) { + $refundedIds = array_flip(array_column( + Db::getInstance()->executeS(OrderReturn::getRefundedBookingIdsSubquery()), + 'id_htl_booking' + )); foreach ($bookings as $booking) { - if (!empty($booking['is_refunded']) || !empty($booking['is_cancelled'])) { + if (isset($refundedIds[$booking['id']]) || $booking['id_status'] == HotelBookingDetail::STATUS_CANCELLED) { continue; } $result = self::applyBooking($booking['id'], $idEmployee, $autoMsgLabel); diff --git a/classes/pdf/HTMLTemplateBookingVoucher.php b/classes/pdf/HTMLTemplateBookingVoucher.php index 890a5772d..03cf50a15 100644 --- a/classes/pdf/HTMLTemplateBookingVoucher.php +++ b/classes/pdf/HTMLTemplateBookingVoucher.php @@ -287,8 +287,8 @@ class HTMLTemplateBookingVoucherCore extends HTMLTemplate if (!empty($idsOrderDetail)) { $footer['room_price_tax_excl'] = $this->order->getTotalProductsWithoutTaxes(false, true, null, null, null, $idsOrderDetail) + $this->order->getTotalProductsWithoutTaxes(false, false, Product::SELLING_PREFERENCE_WITH_ROOM_TYPE, 1, Product::PRICE_ADDITION_TYPE_WITH_ROOM, $idsOrderDetail); $roomsCostTaxIncl = $this->order->getTotalProductsWithTaxes(false, true, null, null, null, $idsOrderDetail) + $this->order->getTotalProductsWithTaxes(false, false, Product::SELLING_PREFERENCE_WITH_ROOM_TYPE, 1, Product::PRICE_ADDITION_TYPE_WITH_ROOM, $idsOrderDetail); - $footer['service_products_price_tax_excl'] = $this->order->getTotalProductsWithoutTaxes(false, false, Product::SELLING_PREFERENCE_STANDALONE, false, false, $idsOrderDetail) + $this->order->getTotalProductsWithoutTaxes(false, false, Product::SELLING_PREFERENCE_HOTEL_STANDALONE, false, false, $idsOrderDetail); - $serviceProductsCostTaxIncl = $this->order->getTotalProductsWithTaxes(false, false, Product::SELLING_PREFERENCE_STANDALONE, false, false, $idsOrderDetail) + $this->order->getTotalProductsWithTaxes(false, false, Product::SELLING_PREFERENCE_HOTEL_STANDALONE, false, false, $idsOrderDetail); + $footer['service_products_price_tax_excl'] = $this->order->getTotalProductsWithoutTaxes(false, false, Product::SELLING_PREFERENCE_WITH_STANDALONE, false, false, $idsOrderDetail) + $this->order->getTotalProductsWithoutTaxes(false, false, Product::SELLING_PREFERENCE_WITH_HOTEL, false, false, $idsOrderDetail); + $serviceProductsCostTaxIncl = $this->order->getTotalProductsWithTaxes(false, false, Product::SELLING_PREFERENCE_WITH_STANDALONE, false, false, $idsOrderDetail) + $this->order->getTotalProductsWithTaxes(false, false, Product::SELLING_PREFERENCE_WITH_HOTEL, false, false, $idsOrderDetail); $footer['additional_service_price_tax_excl'] = $this->order->getTotalProductsWithoutTaxes(false, false, Product::SELLING_PREFERENCE_WITH_ROOM_TYPE, 0, null, $idsOrderDetail) + $totalDemandsPriceTE; $additionalServicesCostTaxIncl = $this->order->getTotalProductsWithTaxes(false, false, Product::SELLING_PREFERENCE_WITH_ROOM_TYPE, 0, null, $idsOrderDetail) + $totalDemandsPriceTI; $footer['total_convenience_fee_te'] = $this->order->getTotalProductsWithoutTaxes(false, false, Product::SELLING_PREFERENCE_WITH_ROOM_TYPE, 1, Product::PRICE_ADDITION_TYPE_INDEPENDENT, $idsOrderDetail); @@ -310,6 +310,7 @@ class HTMLTemplateBookingVoucherCore extends HTMLTemplate $totalTourismTax = OrderTaxDetail::getOrderTourismTaxTotal((int) $this->order->id); $footer['total_tax_without_discount'] = max(0, $totalWithoutDiscountTaxIncl - $footer['total_without_discount_te'] - $totalTourismTax); $footer['total_tourism_tax'] = $totalTourismTax; + $footer['show_tourism_tax_separately'] = (bool) Configuration::get('QLO_TOURISM_TAX_SHOW_SEPARATE_DOCS'); $grandTotal = max(0.0, $totalWithoutDiscountTaxIncl - $productDiscountsTaxIncl); $footer['product_discounts_tax_incl'] = $productDiscountsTaxIncl; $footer['total_paid_tax_incl'] = $grandTotal; diff --git a/classes/pdf/HTMLTemplateInvoice.php b/classes/pdf/HTMLTemplateInvoice.php index 514b001d4..7c9494d8b 100644 --- a/classes/pdf/HTMLTemplateInvoice.php +++ b/classes/pdf/HTMLTemplateInvoice.php @@ -314,6 +314,7 @@ class HTMLTemplateInvoiceCore extends HTMLTemplate $service_product_data = array(); $room_additinal_services = array(); $formattedHotelAddress = ''; + $propertyType = ''; if (Module::isInstalled('hotelreservationsystem')) { $obj_htl_bk_dtl = new HotelBookingDetail(); $objServiceProductOrderDetail = new ServiceProductOrderDetail(); @@ -392,6 +393,8 @@ class HTMLTemplateInvoiceCore extends HTMLTemplate $unit_price_tax_incl = $order_details_obj->unit_price_tax_incl; $cart_htl_data[$type_key]['hotel_name'] = $data_v['hotel_name']; + $propertyType = $data_v['property_type_name']; + $cart_htl_data[$type_key]['name'] = $order_details_obj->product_name; $cart_htl_data[$type_key]['unit_price_tax_excl'] = $unit_price_tax_excl; $cart_htl_data[$type_key]['unit_price_tax_incl'] = $unit_price_tax_incl; @@ -557,8 +560,8 @@ class HTMLTemplateInvoiceCore extends HTMLTemplate foreach ($cart_htl_data[$type_key]['date_diff'] as $key => &$value) { $value['avg_paid_unit_price_tax_excl'] = Tools::ps_round($value['avg_paid_unit_price_tax_excl'] / $value['num_rm'], 6); } - } else if (Product::SELLING_PREFERENCE_HOTEL_STANDALONE == $type_value['selling_preference_type'] - || Product::SELLING_PREFERENCE_STANDALONE == $type_value['selling_preference_type'] + } else if (Product::SELLING_PREFERENCE_WITH_HOTEL == $type_value['selling_preference_type'] + || Product::SELLING_PREFERENCE_WITH_STANDALONE == $type_value['selling_preference_type'] ) { $serviceProducts = $objServiceProductOrderDetail->getServiceProductsInOrder($order_obj->id, $type_value['id_order_detail'], $type_value['product_id']); if ($taxes = OrderDetail::getTaxListStatic($type_value['id_order_detail'])) { @@ -597,8 +600,8 @@ class HTMLTemplateInvoiceCore extends HTMLTemplate if ($idsOrderDetail = array_column($order_details, 'id_order_detail')) { $footer['room_price_tax_excl'] = $this->order->getTotalProductsWithoutTaxes(false, true, null, null, null, $idsOrderDetail) + $this->order->getTotalProductsWithoutTaxes(false, false, Product::SELLING_PREFERENCE_WITH_ROOM_TYPE, 1, Product::PRICE_ADDITION_TYPE_WITH_ROOM, $idsOrderDetail); $footer['room_price_tax_incl'] = $this->order->getTotalProductsWithTaxes(false, true, null, null, null, $idsOrderDetail) + $this->order->getTotalProductsWithTaxes(false, false, Product::SELLING_PREFERENCE_WITH_ROOM_TYPE, 1, Product::PRICE_ADDITION_TYPE_WITH_ROOM, $idsOrderDetail); - $footer['service_products_price_tax_excl'] = $this->order->getTotalProductsWithoutTaxes(false, false, Product::SELLING_PREFERENCE_STANDALONE, false, false, $idsOrderDetail) + $this->order->getTotalProductsWithoutTaxes(false, false, Product::SELLING_PREFERENCE_HOTEL_STANDALONE, false, false, $idsOrderDetail); - $footer['service_products_price_tax_incl'] = $this->order->getTotalProductsWithTaxes(false, false, Product::SELLING_PREFERENCE_STANDALONE, false, false, $idsOrderDetail) + $this->order->getTotalProductsWithTaxes(false, false, Product::SELLING_PREFERENCE_HOTEL_STANDALONE, false, false, $idsOrderDetail); + $footer['service_products_price_tax_excl'] = $this->order->getTotalProductsWithoutTaxes(false, false, Product::SELLING_PREFERENCE_WITH_STANDALONE, false, false, $idsOrderDetail) + $this->order->getTotalProductsWithoutTaxes(false, false, Product::SELLING_PREFERENCE_WITH_HOTEL, false, false, $idsOrderDetail); + $footer['service_products_price_tax_incl'] = $this->order->getTotalProductsWithTaxes(false, false, Product::SELLING_PREFERENCE_WITH_STANDALONE, false, false, $idsOrderDetail) + $this->order->getTotalProductsWithTaxes(false, false, Product::SELLING_PREFERENCE_WITH_HOTEL, false, false, $idsOrderDetail); $footer['additional_service_price_tax_excl'] = $this->order->getTotalProductsWithoutTaxes(false, false, Product::SELLING_PREFERENCE_WITH_ROOM_TYPE, 0, null, $idsOrderDetail); $footer['additional_service_price_tax_incl'] = $this->order->getTotalProductsWithTaxes(false, false, Product::SELLING_PREFERENCE_WITH_ROOM_TYPE, 0, null, $idsOrderDetail); $footer['total_convenience_fee_te'] = $this->order->getTotalProductsWithoutTaxes(false, false, Product::SELLING_PREFERENCE_WITH_ROOM_TYPE, 1, Product::PRICE_ADDITION_TYPE_INDEPENDENT, $idsOrderDetail); @@ -615,6 +618,7 @@ class HTMLTemplateInvoiceCore extends HTMLTemplate if ($footer['total_tax_without_discount'] < 0) { $footer['total_tax_without_discount'] = 0; } + $footer['show_tourism_tax_separately'] = (bool) Configuration::get('QLO_TOURISM_TAX_SHOW_SEPARATE_DOCS'); $data = array( 'cart_htl_data' => $cart_htl_data, @@ -628,6 +632,7 @@ class HTMLTemplateInvoiceCore extends HTMLTemplate 'delivery_address' => $formatted_delivery_address, 'invoice_address' => $formatted_invoice_address, 'hotel_address' => $formattedHotelAddress, + 'property_type' => $propertyType, 'addresses' => array('invoice' => $invoice_address, 'delivery' => $delivery_address), 'tax_excluded_display' => $tax_excluded_display, 'display_product_images' => $display_product_images, diff --git a/classes/pdf/HTMLTemplateOrderSlip.php b/classes/pdf/HTMLTemplateOrderSlip.php index 045eeb52a..c9856be17 100644 --- a/classes/pdf/HTMLTemplateOrderSlip.php +++ b/classes/pdf/HTMLTemplateOrderSlip.php @@ -349,8 +349,8 @@ class HTMLTemplateOrderSlipCore extends HTMLTemplateInvoice $breakdown = array(); $order_detail = array_filter($this->order->products, function($v) { return (!$v['is_booking_product'] && ( - $v['selling_preference_type'] == Product::SELLING_PREFERENCE_STANDALONE - || $v['selling_preference_type'] == Product::SELLING_PREFERENCE_HOTEL_STANDALONE + $v['selling_preference_type'] == Product::SELLING_PREFERENCE_WITH_STANDALONE + || $v['selling_preference_type'] == Product::SELLING_PREFERENCE_WITH_HOTEL )); }); diff --git a/classes/webservice/WebserviceSpecificManagementBookings.php b/classes/webservice/WebserviceSpecificManagementBookings.php index c011d9a0f..01f4817cb 100644 --- a/classes/webservice/WebserviceSpecificManagementBookings.php +++ b/classes/webservice/WebserviceSpecificManagementBookings.php @@ -1146,12 +1146,11 @@ class WebserviceSpecificManagementBookingsCore Extends ObjectModel implements We $objOrderDetail = new OrderDetail($service['id_order_detail']); $objServiceProductOrderDetail = new ServiceProductOrderDetail($service['id_service_product_order_detail']); $quantity = $objServiceProductOrderDetail->quantity; - if ($objOrderDetail->product_price_calculation_method == Product::PRICE_CALCULATION_METHOD_PER_DAY) { - $quantity = $quantity * HotelHelper::getNumberOfDays( - $objHotelBookingDetail->date_from, - $objHotelBookingDetail->date_to - ); - } + $quantity *= Product::getServicePriceBillableDays( + $objOrderDetail->product_price_calculation_method, + $objHotelBookingDetail->date_from, + $objHotelBookingDetail->date_to + ); if (isset($this->wsRequestedRoomTypes[$dateRoomJoinKey]['services'][$service['id_product']])) { $oldPriceTaxExcl = $objServiceProductOrderDetail->total_price_tax_excl; @@ -2195,10 +2194,13 @@ class WebserviceSpecificManagementBookingsCore Extends ObjectModel implements We ))) { foreach ($services as $service) { $insertedServiceProductIdOrderDetail = $objBookingDetail->getLastInsertedServiceIdOrderDetail($objOrder->id, $service['id_product']); - $numDays = 1; - if (Product::getProductPriceCalculation($service['id_product']) == Product::PRICE_CALCULATION_METHOD_PER_DAY) { - $numDays = HotelHelper::getNumberOfDays($objBookingDetail->date_from, $objBookingDetail->date_to); - } + + $numDays = Product::getServicePriceBillableDays( + Product::getProductPriceCalculation($service['id_product']), + $objBookingDetail->date_from, + $objBookingDetail->date_to + ); + $totalPriceTaxExcl = Product::getServiceProductPrice( $service['id_product'], 0, @@ -2528,9 +2530,12 @@ class WebserviceSpecificManagementBookingsCore Extends ObjectModel implements We foreach ($selectedAdditonalServices[$idHotelBooking]['additional_services'] as $service) { $serviceOrderDetail = new OrderDetail($service['id_order_detail']); $cart_quantity = $service['quantity']; - if ($service['price_calculation_method'] == Product::PRICE_CALCULATION_METHOD_PER_DAY) { - $cart_quantity = $cart_quantity * $quantity; - } + $serviceApplicableDays = Product::getServicePriceBillableDays( + $service['price_calculation_method'], + $dateFrom, + $dateTo + ); + $cart_quantity = $cart_quantity * $serviceApplicableDays; if ($cart_quantity >= $serviceOrderDetail->product_quantity) { $serviceOrderDetail->delete(); @@ -3036,10 +3041,11 @@ class WebserviceSpecificManagementBookingsCore Extends ObjectModel implements We $priceTaxExcl = $objServiceProductOrderDetail->total_price_tax_excl; $priceTaxIncl = $objServiceProductOrderDetail->total_price_tax_incl; $objHotelBookingDetail = new HotelBookingDetail($objServiceProductOrderDetail->id_htl_booking_detail); - $numDays = 1; - if (Product::getProductPriceCalculation($service['id_product']) == Product::PRICE_CALCULATION_METHOD_PER_DAY) { - $numDays = HotelHelper::getNumberOfDays($objHotelBookingDetail->date_from, $objHotelBookingDetail->date_to); - } + $numDays = Product::getServicePriceBillableDays( + Product::getProductPriceCalculation($service['id_product']), + $objHotelBookingDetail->date_from, + $objHotelBookingDetail->date_to + ); $quantity = $objOrderDetail->product_quantity * $numDays; if ($objServiceProductOrderDetail->delete()) { @@ -3131,10 +3137,11 @@ class WebserviceSpecificManagementBookingsCore Extends ObjectModel implements We $insertedServiceProductIdOrderDetail = $objHotelBookingDetail->getLastInsertedServiceIdOrderDetail($objOrder->id, $service['id_product']); $objOrderDetail = new OrderDetail($insertedServiceProductIdOrderDetail); - $numDays = 1; - if (Product::getProductPriceCalculation($product['id_product']) == Product::PRICE_CALCULATION_METHOD_PER_DAY) { - $numDays = HotelHelper::getNumberOfDays($objHotelBookingDetail->date_from, $objHotelBookingDetail->date_to); - } + $numDays = Product::getServicePriceBillableDays( + Product::getProductPriceCalculation($product['id_product']), + $objHotelBookingDetail->date_from, + $objHotelBookingDetail->date_to + ); $quantity = $objServiceProductCartDetail->quantity * $numDays; @@ -3691,7 +3698,7 @@ class WebserviceSpecificManagementBookingsCore Extends ObjectModel implements We $objProduct = new Product($service['id_product']); $services['per_night'] = 0; - if ($objProduct->price_calculation_method == Product::PRICE_CALCULATION_METHOD_PER_DAY) { + if ($objProduct->price_calculation_method & Product::PRICE_CALCULATION_METHOD_ON_DURING_STAY) { $services['per_night'] = 1; } @@ -3922,17 +3929,18 @@ class WebserviceSpecificManagementBookingsCore Extends ObjectModel implements We $services['id_service'] = (int) $service['id_product']; $services['name'] = $service['name']; $services['quantity'] = (int) $service['quantity']; - $services['unit_price_without_tax'] = Tools::ps_round(($service['total_price_tax_excl'] / $services['quantity']), _PS_PRICE_COMPUTE_PRECISION_); + $applicableDays = Product::getServicePriceBillableDays( + $service['price_calculation_method'], + $additionalService['date_from'], + $additionalService['date_to'] + ); + $unitDivisor = max(1, ((int) $services['quantity'] * (int) $applicableDays)); + $services['unit_price_without_tax'] = Tools::ps_round(($service['total_price_tax_excl'] / $unitDivisor), _PS_PRICE_COMPUTE_PRECISION_); $services['total_price_without_tax'] = Tools::ps_round(($service['total_price_tax_excl']), _PS_PRICE_COMPUTE_PRECISION_); $services['total_tax'] = Tools::ps_round(($service['total_price_tax_incl'] - $service['total_price_tax_excl']), _PS_PRICE_COMPUTE_PRECISION_); - $objProduct = new Product($service['id_product']); - $services['per_night'] = 0; - if ($objProduct->price_calculation_method == Product::PRICE_CALCULATION_METHOD_PER_DAY) { - $services['per_night'] = 1; - } - - $services['price_mode'] = (int) $objProduct->price_calculation_method; + $services['per_night'] = ((int) $applicableDays > 1) ? 1 : 0; + $services['price_mode'] = (int) $service['price_calculation_method']; $roomInfo['services'][] = $services; } } diff --git a/classes/webservice/WebserviceSpecificManagementImages.php b/classes/webservice/WebserviceSpecificManagementImages.php index 2a1cff79c..6dc92a3b5 100644 --- a/classes/webservice/WebserviceSpecificManagementImages.php +++ b/classes/webservice/WebserviceSpecificManagementImages.php @@ -1051,7 +1051,6 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage } break; } - imagedestroy($dest_image); if (!$imaged) { throw new WebserviceException(sprintf('Unable to write the image "%s".', str_replace(_PS_ROOT_DIR_, '[SHOP_ROOT_DIR]', $new_path)), array(70, 500)); } @@ -1104,7 +1103,6 @@ class WebserviceSpecificManagementImagesCore implements WebserviceSpecificManage $const = defined('FILEINFO_MIME_TYPE') ? FILEINFO_MIME_TYPE : FILEINFO_MIME; $finfo = finfo_open($const); $mime_type = finfo_file($finfo, $file['tmp_name']); - finfo_close($finfo); } elseif (Tools::isCallable('mime_content_type')) { $mime_type = mime_content_type($file['tmp_name']); } elseif (Tools::isCallable('exec')) { diff --git a/composer.json b/composer.json index db48f1054..dadd7c53f 100644 --- a/composer.json +++ b/composer.json @@ -32,7 +32,7 @@ "source": "https://github.com/Qloapps/QloApps" }, "require": { - "php": ">8.0 <8.5", + "php": ">=8.1 <8.6", "ext-curl": "*", "ext-dom": "*", "ext-gd": "*", diff --git a/controllers/admin/AdminCartsController.php b/controllers/admin/AdminCartsController.php index cbcb74c41..f895ba5ed 100644 --- a/controllers/admin/AdminCartsController.php +++ b/controllers/admin/AdminCartsController.php @@ -363,7 +363,7 @@ class AdminCartsControllerCore extends AdminController $objServiceProductCartDetail = new ServiceProductCartDetail(); $hotelProducts = $objServiceProductCartDetail->getServiceProductsInCart( $cart->id, - [Product::SELLING_PREFERENCE_HOTEL_STANDALONE, Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE], + [], $idHotel = null, 0, null, @@ -377,9 +377,15 @@ class AdminCartsControllerCore extends AdminController 1 ); + $hotelProducts = array_filter($hotelProducts, function ($product) { + return $product['id_hotel'] > 0 && $product['id_hotel_cart_booking'] == 0; + }); + $standaloneProducts = $objServiceProductCartDetail->getServiceProductsInCart( $cart->id, - [Product::SELLING_PREFERENCE_STANDALONE] + [], + 0, + 0 ); if (count($standaloneProducts)) { @@ -1172,34 +1178,47 @@ class AdminCartsControllerCore extends AdminController if (Configuration::get('PS_ALLOW_ADD_ALL_SERVICES_IN_BOOKING')) { // get all services $objProduct = new Product(); - $hotelServiceProducts = $objProduct->getServiceProducts(true, Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE); - $roomTypeServiceProducts = $objProduct->getServiceProducts(true, Product::SELLING_PREFERENCE_WITH_ROOM_TYPE); - $serviceProducts = array_merge($roomTypeServiceProducts, $hotelServiceProducts); + $serviceProducts = array_values(array_filter( + $objProduct->getServiceProducts(true), + function ($serviceProduct) { + return Product::isSellableWithRoomType($serviceProduct['id_product']); + } + )); + if ($serviceProducts) { + foreach ($serviceProducts as $key => $servProduct) { + + if (!Product::isAvailableWhenOutOfStock(StockAvailable::outOfStock((int)$servProduct['id_product'])) + && Product::getQuantity((int)$servProduct['id_product']) <= 0 + ) { + unset($serviceProducts[$key]); + continue; + } + + $numDays = Product::getServicePriceBillableDays( + $servProduct['price_calculation_method'], + $dateFrom, + $dateTo + ); + + $serviceProducts[$key]['price_tax_exc'] = Product::getServiceProductPrice( + $servProduct['id_product'], + 0, + 0, + $idProduct, + false, + 1, + $dateFrom, + $dateTo, + $idCart + ) / max($numDays, 1); + } + } + } else { $objRoomTypeServiceProduct = new RoomTypeServiceProduct(); $serviceProducts = $objRoomTypeServiceProduct->getServiceProductsData($idProduct, 1, 0, false, 2, null); } - if ($serviceProducts) { - foreach ($serviceProducts as $key => $servProduct) { - $numDays = 1; - if (Product::PRICE_CALCULATION_METHOD_PER_DAY == $servProduct['price_calculation_method']) { - $numDays = HotelHelper::getNumberOfDays($dateFrom, $dateTo); - } - $serviceProducts[$key]['price_tax_exc'] = Product::getServiceProductPrice( - $servProduct['id_product'], - 0, - 0, - $idProduct, - false, - 1, - $dateFrom, - $dateTo, - $idCart - )/$numDays; - } - } - $objServiceProductCartDetail = new ServiceProductCartDetail(); if ($selectedRoomServiceProduct = $objCartBookingData->getRoomRowByIdProductIdRoomInDateRange( $idCart, @@ -1324,9 +1343,14 @@ class AdminCartsControllerCore extends AdminController $idHotelCartBooking = Tools::getValue('id_hotel_cart_booking'); // valiadate services being added if (Validate::isLoadedObject($objHtlCartBooking = new HotelCartBookingData($idHotelCartBooking))) { + $objCart = new Cart($objHtlCartBooking->id_cart); $name = trim(Tools::getValue('new_service_name')); $price = Tools::getValue('new_service_price'); - $priceCalcMethod = Tools::getValue('new_service_price_calc_method'); + if (Tools::getValue('price_calculation_type') == Product::PRICE_CALCULATION_METHOD_ONCE_FOR_BOOKING) { + $priceCalcMethod = Product::PRICE_CALCULATION_METHOD_ONCE_FOR_BOOKING; + } elseif (is_array(Tools::getValue('new_service_price_calc_method'))) { + $priceCalcMethod = array_sum(array_map('intval', Tools::getValue('new_service_price_calc_method'))); + } $priceAdditionType = Tools::getValue('new_service_price_addition_type'); $productQty = Tools::getValue('new_service_qty'); $idTaxRuleGroup = Tools::getValue('new_service_price_tax_rule_group'); @@ -1358,6 +1382,15 @@ class AdminCartsControllerCore extends AdminController $response['hasError'] = true; $response['errors'][] = Tools::displayError('Invalid service name'); } + + if (empty($priceCalcMethod)) { + $response['hasError'] = true; + $response['errors'][] = Tools::displayError('Please select at least one day to apply the price calculation method.'); + } elseif ( + !Validate::isUnsignedInt($priceCalcMethod)) { + $response['hasError'] = true; + $response['errors'][] = Tools::displayError('Invalid price calculation method.'); + } if (!isset($price)) { $response['hasError'] = true; @@ -1370,6 +1403,12 @@ class AdminCartsControllerCore extends AdminController // if no validation errors then add service if (!$response['hasError']) { // ======= START: Create Service product ========= + if ($objCart->id_currency != (int)Configuration::get('PS_CURRENCY_DEFAULT')) { + $currency = Currency::getCurrencyInstance($objCart->id_currency); + $price = Tools::ps_round($price/$currency->conversion_rate, 6); + $this->context->currency = new Currency((int) $objCart->id_currency); + } + $objServiceProduct = new Product(); $objServiceProduct->price_calculation_method = $priceCalcMethod; $objServiceProduct->selling_preference_type = Product::SELLING_PREFERENCE_WITH_ROOM_TYPE; @@ -1409,7 +1448,6 @@ class AdminCartsControllerCore extends AdminController RoomTypeServiceProduct::WK_ELEMENT_TYPE_ROOM_TYPE ); // If service product is create successfully the start adding the product in cart and order - $objCart = new Cart($objHtlCartBooking->id_cart); $objServiceProduct = new Product($objServiceProduct->id, false, $objCart->id_lang); $objServiceProductCartDetail = new ServiceProductCartDetail(); @@ -1476,19 +1514,46 @@ class AdminCartsControllerCore extends AdminController if (Configuration::get('PS_ALLOW_ADD_ALL_SERVICES_IN_BOOKING')) { // get all services $objProduct = new Product(); - $hotelServiceProducts = $objProduct->getServiceProducts(true, Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE); - $roomTypeServiceProducts = $objProduct->getServiceProducts(true, Product::SELLING_PREFERENCE_WITH_ROOM_TYPE); - $serviceProducts = array_merge($roomTypeServiceProducts, $hotelServiceProducts); + $serviceProducts = array_values(array_filter( + $objProduct->getServiceProducts(true), + function ($serviceProduct) { + return Product::isSellableWithRoomType($serviceProduct['id_product']); + } + )); + if ($serviceProducts) { + foreach ($serviceProducts as $key => $servProduct) { + + if (!Product::isAvailableWhenOutOfStock(StockAvailable::outOfStock((int)$servProduct['id_product'])) + && Product::getQuantity((int)$servProduct['id_product']) <= 0 + ) { + unset($serviceProducts[$key]); + continue; + } + + $numDays = Product::getServicePriceBillableDays( + $servProduct['price_calculation_method'], + $objCartBookingData->date_from, + $objCartBookingData->date_to + ); + + $serviceProducts[$key]['price_tax_exc'] = Product::getServiceProductPrice( + $servProduct['id_product'], + 0, + 0, + $objCartBookingData->id_product, + false, + 1, + $objCartBookingData->date_from, + $objCartBookingData->date_to, + $objCartBookingData->id_cart + )/ max($numDays, 1); + } + } } else { $objRoomTypeServiceProduct = new RoomTypeServiceProduct(); $serviceProducts = $objRoomTypeServiceProduct->getServiceProductsData($objCartBookingData->id_product, 1, 0, false, 2, null); } - if ($serviceProducts) { - foreach ($serviceProducts as $key => $servProduct) { - $serviceProducts[$key]['price_tax_exc'] = $servProduct['price']; - } - } $objServiceProductCartDetail = new ServiceProductCartDetail(); if ($selectedRoomServiceProduct = $objCartBookingData->getRoomRowByIdProductIdRoomInDateRange( @@ -1575,6 +1640,39 @@ class AdminCartsControllerCore extends AdminController $response['hasError'] = true; $response['errors'][] = Tools::displayError('Invalid unit price for service').': '.$objProduct->name; } + + if ($selected && $objProduct->allow_multiple_quantity + && isset($serviceQuantities[$idServiceProduct]) + && Validate::isUnsignedInt($serviceQuantities[$idServiceProduct]) + ) { + $cartTotalQty = Cart::getProductQtyInCart($objCart->id, $idServiceProduct); + + $qty = (int)$serviceQuantities[$idServiceProduct]; + $numDays = Product::getServicePriceBillableDays( + $objProduct->price_calculation_method, + $objHotelCartBookingData->date_from, + $objHotelCartBookingData->date_to + ); + + $existingQty = 0; + $objSpCartDetail = new ServiceProductCartDetail(); + if ($idExistingDetail = $objSpCartDetail->alreadyExists( + $objCart->id, + $idServiceProduct, + $idCartBooking + )) { + $existingQty = (int)(new ServiceProductCartDetail($idExistingDetail))->quantity * $numDays; + } + + $finalQty = (int)$cartTotalQty - $existingQty + ($qty * $numDays); + if ($objProduct->max_quantity && $finalQty > $objProduct->max_quantity) { + $response['hasError'] = true; + $response['errors'][] = Tools::displayError(sprintf('Cannot add more than %d quantity.', $objProduct->max_quantity)).': '.$objProduct->name; + } elseif (!Product::isAvailableWhenOutOfStock(StockAvailable::outOfStock((int)$idServiceProduct)) && !$objProduct->checkQty($finalQty)) { + $response['hasError'] = true; + $response['errors'][] = Tools::displayError('There isn\'t enough product in stock.').': '.$objProduct->name; + } + } } else { $response['errors'][] = Tools::displayError('Some services not found. please try after refreshing the page'); } diff --git a/controllers/admin/AdminDashboardController.php b/controllers/admin/AdminDashboardController.php index 81ff78003..b944aff8e 100644 --- a/controllers/admin/AdminDashboardController.php +++ b/controllers/admin/AdminDashboardController.php @@ -255,7 +255,7 @@ class AdminDashboardControllerCore extends AdminController $objHotelInfo = new HotelBranchInformation(); $idsHotel = $objHotelInfo->getProfileAccessedHotels($this->context->employee->id_profile, 1, 1); - $hotelOptions = array(array('id_hotel' => false, 'hotel_name' => $this->l('All Hotels'))); + $hotelOptions = array(array('id_hotel' => false, 'hotel_name' => $this->l('All Properties'))); foreach ($idsHotel as $idHotel) { $objHotelBranchInfo = new HotelBranchInformation($idHotel, $this->context->language->id); $hotelAddressInfo = HotelBranchInformation::getAddress($idHotel); diff --git a/controllers/admin/AdminImagesController.php b/controllers/admin/AdminImagesController.php index 9298fa147..68631940d 100644 --- a/controllers/admin/AdminImagesController.php +++ b/controllers/admin/AdminImagesController.php @@ -86,7 +86,7 @@ class AdminImagesControllerCore extends AdminController 'orderby' => false ), 'hotels' => array( - 'title' => $this->l('Hotels'), + 'title' => $this->l('Properties'), 'align' => 'center', 'type' => 'bool', 'active' => 'hotels', @@ -301,7 +301,7 @@ class AdminImagesControllerCore extends AdminController ), array( 'type' => 'switch', - 'label' => $this->l('Hotels'), + 'label' => $this->l('Properties'), 'name' => 'hotels', 'required' => false, 'is_bool' => true, @@ -503,7 +503,7 @@ class AdminImagesControllerCore extends AdminController $types = array( 'categories' => $this->l('Categories'), 'products' => $this->l('Room Types/Products'), - 'hotels' => $this->l('Hotels'), + 'hotels' => $this->l('Properties'), // 'manufacturers' => $this->l('Manufacturers'), // 'suppliers' => $this->l('Suppliers'), // 'scenes' => $this->l('Scenes'), diff --git a/controllers/admin/AdminImportController.php b/controllers/admin/AdminImportController.php index 06a92e48b..7414fb4e8 100644 --- a/controllers/admin/AdminImportController.php +++ b/controllers/admin/AdminImportController.php @@ -78,7 +78,7 @@ class AdminImportControllerCore extends AdminController { $this->bootstrap = true; $this->entities = array( - $this->l('Hotels'), + $this->l('Properties'), $this->l('Room Types'), $this->l('Rooms'), $this->l('Categories'), @@ -108,7 +108,7 @@ class AdminImportControllerCore extends AdminController 'parent' => Configuration::get('PS_HOME_CATEGORY'), ); break; - case $this->entities[$this->l('Hotels')]: + case $this->entities[$this->l('Properties')]: $this->required_fields = array( 'hotel_name', 'phone', @@ -132,7 +132,7 @@ class AdminImportControllerCore extends AdminController 'no' => array('label' => $this->l('Ignore this column')), 'id' => array('label' => $this->l('ID')), 'active' => array('label' => $this->l('Active (0/1)')), - 'hotel_name' => array('label' => $this->l('Hotel Name *')), + 'hotel_name' => array('label' => $this->l('Property Name *')), 'short_description' => array('label' => $this->l('Short Description')), 'description' => array('label' => $this->l('Description')), 'phone' => array('label' => $this->l('Mobile phone *')), @@ -146,7 +146,7 @@ class AdminImportControllerCore extends AdminController 'city' => array('label' => $this->l('City *')), 'postcode' => array('label' => $this->l('Zip Code *')), 'fax' => array('label' => $this->l('Fax')), - 'policies' => array('label' => $this->l('Hotel Policies')), + 'policies' => array('label' => $this->l('Property Policies')), 'active_refund' => array('label' => $this->l('Allow Refund (0 = No, 1 = Yes)')), 'refund_ids' => array('label' => $this->l('Refund IDs (x,y,z...)')), 'max_checkout_offset' => array('label' => $this->l('Maximum checkout offset')), @@ -168,7 +168,7 @@ class AdminImportControllerCore extends AdminController 'id' => array('label' => $this->l('ID')), 'active' => array('label' => $this->l('Active (0/1)')), 'name' => array('label' => $this->l('Name *')), - 'id_hotel' => array('label' => $this->l('Hotel ID *')), + 'id_hotel' => array('label' => $this->l('Property ID *')), 'price' => array('label' => $this->l('Pre-tax retail price')), 'wholesale_price' => array('label' => $this->l('Pre-tax operating cost')), 'id_tax_rules_group' => array('label' => $this->l('Tax rule ID')), @@ -441,7 +441,7 @@ class AdminImportControllerCore extends AdminController case 'k': $bytes *= 1024; } - if (!isset($bytes) || $bytes == '') { + if (!isset($bytes) || $bytes == 0) { $bytes = 20971520; } // 20Mb @@ -1472,8 +1472,8 @@ class AdminImportControllerCore extends AdminController } } } else { - $this->warnings[] = $this->l('Hotel creation for the ').$objCountry->name. - $this->l(' is currently unavailable. Kindly activate the country for hotel creation.'); + $this->warnings[] = $this->l('Property creation for the ').$objCountry->name. + $this->l(' is currently unavailable. Kindly activate the country for property creation.'); } } } @@ -1882,7 +1882,7 @@ class AdminImportControllerCore extends AdminController } $objServiceProduct = new Product($idServiceProduct); - if (Product::SELLING_PREFERENCE_WITH_ROOM_TYPE == $objServiceProduct->selling_preference_type) { + if (Product::isSellableWithRoomType($objServiceProduct->id)) { $objRoomTypeServiceProduct->addRoomProductLink( $objServiceProduct->id, $product->id, @@ -2310,12 +2310,12 @@ class AdminImportControllerCore extends AdminController $info['shop'] = explode($this->multiple_value_separator, $info['shop']); RoomTypeServiceProduct::deleteRoomProductLink($product->id); - if (Product::SELLING_PREFERENCE_WITH_ROOM_TYPE == $product->selling_preference_type) { + if (Product::isSellableWithRoomType($product->id)) { $objRoomTypeServiceProduct = new RoomTypeServiceProduct(); if (isset($info['id_room_types']) && $info['id_room_types']) { $objRoomTypeServiceProduct->addRoomProductLink( $product->id, - $product->id_room_types, + $info['id_room_types'], RoomTypeServiceProduct::WK_ELEMENT_TYPE_ROOM_TYPE ); } @@ -3273,7 +3273,7 @@ class AdminImportControllerCore extends AdminController } } break; - case $this->entities[$this->l('Hotels')]: + case $this->entities[$this->l('Properties')]: Db::getInstance()->execute('TRUNCATE TABLE `'._DB_PREFIX_.'htl_branch_info_lang`'); Db::getInstance()->execute('DELETE c, cl FROM `'._DB_PREFIX_.'category` c LEFT JOIN `'._DB_PREFIX_.'category_lang` cl ON c.id_category = cl.id_category @@ -3462,7 +3462,7 @@ class AdminImportControllerCore extends AdminController $import_type = false; Db::getInstance()->disableCache(); switch ((int)Tools::getValue('entity')) { - case $this->entities[$import_type = $this->l('Hotels')]: + case $this->entities[$import_type = $this->l('Properties')]: $this->hotelImport(); $this->clearSmartyCache(); break; diff --git a/controllers/admin/AdminLocalizationController.php b/controllers/admin/AdminLocalizationController.php index 694b27ddd..381aab1ae 100644 --- a/controllers/admin/AdminLocalizationController.php +++ b/controllers/admin/AdminLocalizationController.php @@ -337,7 +337,7 @@ class AdminLocalizationControllerCore extends AdminController array( 'type' => 'radio', 'label' => $this->l('Download pack data'), - 'desc' => $this->l('If set to yes then the localization pack will be downloaded from prestashop.com. Otherwise the local xml file found in the localization folder of your QloApps installation will be used.'), + 'desc' => $this->l('If set to yes then the localization pack will be downloaded from QloApps API. Otherwise the local xml file found in the localization folder of your QloApps installation will be used.'), 'name' => 'download_updated_pack', 'is_bool'=> true, 'values' => array( diff --git a/controllers/admin/AdminNormalProductsController.php b/controllers/admin/AdminNormalProductsController.php index 2681ad61f..3634e81c0 100644 --- a/controllers/admin/AdminNormalProductsController.php +++ b/controllers/admin/AdminNormalProductsController.php @@ -200,8 +200,14 @@ class AdminNormalProductsControllerCore extends AdminController Product::PRICE_ADDITION_TYPE_INDEPENDENT => $this->l('Convenience Fee') ); $priceCalculationMethod = array( - Product::PRICE_CALCULATION_METHOD_PER_BOOKING => $this->l('Add price once for the booking range'), - Product::PRICE_CALCULATION_METHOD_PER_DAY => $this->l('Add price for each day of booking') + Product::PRICE_CALCULATION_METHOD_ON_CHECKIN_DAY => $this->l('Check-in day'), + Product::PRICE_CALCULATION_METHOD_ON_CHECKOUT_DAY => $this->l('Check-out day'), + Product::PRICE_CALCULATION_METHOD_ON_DURING_STAY => $this->l('During-stay days'), + Product::PRICE_CALCULATION_METHOD_CHECKIN_DAY_AND_CHECKOUT_DAY => $this->l('Check-in day | Check-out days'), + Product::PRICE_CALCULATION_METHOD_CHECKIN_AND_DURING_STAY => $this->l('Check-in day | During-stay days'), + Product::PRICE_CALCULATION_METHOD_CHECKOUT_AND_DURING_STAY => $this->l('Check-out day | During-stay days'), + Product::PRICE_CALCULATION_METHOD_CHECKIN_AND_CHECKOUT_AND_DURING_STAY => $this->l('Check-in day | During-stay days | Check-out day'), + Product::PRICE_CALCULATION_METHOD_ONCE_FOR_BOOKING => $this->l('Once per booking'), ); $this->_join .= ' @@ -222,7 +228,7 @@ class AdminNormalProductsControllerCore extends AdminController LEFT JOIN `'._DB_PREFIX_.'htl_room_type` hrt ON (rsp.`id_element` = hrt.`id_product` AND rsp.`element_type` = '.(int)RoomTypeServiceProduct::WK_ELEMENT_TYPE_ROOM_TYPE.') '.HotelBranchInformation::addHotelRestriction(false, 'hrt'); - $this->_select .= ' IF(a.`auto_add_to_cart`, "'.$this->l('Yes').'", "'.$this->l('No').'") as auto_added, IF(a.`auto_add_to_cart`, 1, 0) as badge_success, IF(a.`show_at_front`, "'.$this->l('Yes').'", "'.$this->l('No').'") as show_at_front_txt, IF(a.`price_calculation_method` = '.(int)Product::PRICE_CALCULATION_METHOD_PER_DAY.', "'.$this->l('Per Day').'", "'.$this->l('Per Booking').'") as price_calculation_method_txt, (SELECT COUNT(hri.`id`) FROM `'._DB_PREFIX_.'htl_room_information` hri WHERE hri.`id_product` = a.`id_product`) as num_rooms, '; + $this->_select .= ' IF(a.`auto_add_to_cart`, "'.$this->l('Yes').'", "'.$this->l('No').'") as auto_added, IF(a.`auto_add_to_cart`, 1, 0) as badge_success, IF(a.`show_at_front`, "'.$this->l('Yes').'", "'.$this->l('No').'") as show_at_front_txt, (SELECT COUNT(hri.`id`) FROM `'._DB_PREFIX_.'htl_room_information` hri WHERE hri.`id_product` = a.`id_product`) as num_rooms, '; $this->_select .= ' COUNT(hrt.`id_product`) as products_associated, '; $this->_select .= 'shop.`name` AS `shopname`, a.`id_shop_default`, '; $this->_select .= $alias_image.'.`id_image` AS `id_image`, cl.`name` AS `name_category`, '.$alias.'.`price`, 0 AS `price_final`, a.`is_virtual`, pd.`nb_downloadable`, sav.`quantity` AS `sav_quantity`, '.$alias.'.`active`, IF(sav.`quantity`<=0, 1, 0) AS `badge_danger`'; @@ -297,13 +303,14 @@ class AdminNormalProductsControllerCore extends AdminController 'callback' => 'getPriceDisplayPreference', 'list' => $priceAdditionType, ); - $this->fields_list['price_calculation_method_txt'] = array( + $this->fields_list['price_calculation_method'] = array( 'title' => $this->l('Price calculation method'), 'filter_key' => 'a!price_calculation_method', 'type' => 'select', 'list' => $priceCalculationMethod, 'visible_default' => true, 'optional' => true, + 'callback' => 'getPriceCalculationMethod', ); $this->servicesCategory = array(); $idServiceCategory = Configuration::get('PS_SERVICE_CATEGORY'); @@ -325,9 +332,12 @@ class AdminNormalProductsControllerCore extends AdminController // Code For Standard product working // $sellingPreferenceTypes = array( // Product::SELLING_PREFERENCE_WITH_ROOM_TYPE => $this->l('With room type'), - // Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE => $this->l('With hotel|room type'), - // Product::SELLING_PREFERENCE_STANDALONE => $this->l('Standalone'), - // Product::SELLING_PREFERENCE_HOTEL_STANDALONE => $this->l('With hotel'), + // Product::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_ROOM_TYPE => $this->l('With hotel | With room type'), + // Product::SELLING_PREFERENCE_WITH_STANDALONE => $this->l('With Standalone'), + // Product::SELLING_PREFERENCE_WITH_HOTEL => $this->l('With hotel'), + // Product::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_STANDALONE => $this->l('With hotel | With standalone'), + // Product::SELLING_PREFERENCE_WITH_STANDALONE_AND_WITH_ROOM_TYPE => $this->l('With room type | With standalone'), + // Product::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_ROOM_TYPE_AND_WITH_STANDALONE => $this->l('With hotel | With room type | With standalone'), // ); // $this->fields_list['selling_preference_type'] = array( // 'type' => 'select', @@ -424,17 +434,28 @@ class AdminNormalProductsControllerCore extends AdminController public function getBuyingOption($selling_preference_type, $row) { - if ($selling_preference_type == Product::SELLING_PREFERENCE_WITH_ROOM_TYPE) { - return $this->l('With room type'); - } else if ($selling_preference_type == Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE) { - return $this->l('With hotel|room type'); - } else if ($selling_preference_type == Product::SELLING_PREFERENCE_STANDALONE) { - return $this->l('Standalone'); - } else if ($selling_preference_type == Product::SELLING_PREFERENCE_HOTEL_STANDALONE) { - return $this->l('With hotel'); + $list = $this->fields_list['selling_preference_type']['list']; + + if (empty($list[$selling_preference_type])) { + return '--'; } - return '--'; + $options = array_map('trim', explode('|', $list[$selling_preference_type])); + + return implode(', ', $options); + } + + public function getPriceCalculationMethod($price_calculation_method, $row) + { + $list = $this->fields_list['price_calculation_method']['list']; + + if (empty($list[$price_calculation_method])) { + return '--'; + } + + $options = array_map('trim', explode('|', $list[$price_calculation_method])); + + return implode(', ', $options); } public function getHotelName($hotelName, $row) @@ -499,6 +520,11 @@ class AdminNormalProductsControllerCore extends AdminController */ protected function copyFromPost(&$object, $table) { + if (Tools::getValue('price_calculation_type') == Product::PRICE_CALCULATION_METHOD_ONCE_FOR_BOOKING) { + $_POST['price_calculation_method'] = Product::PRICE_CALCULATION_METHOD_ONCE_FOR_BOOKING; + } elseif (is_array(Tools::getValue('price_calculation_method'))) { + $_POST['price_calculation_method'] = array_sum(array_map('intval', Tools::getValue('price_calculation_method'))); + } parent::copyFromPost($object, $table); if (get_class($object) != 'Product') { return; @@ -1552,6 +1578,8 @@ class AdminNormalProductsControllerCore extends AdminController _PS_JS_DIR_.'jquery/plugins/timepicker/jquery-ui-timepicker-addon.css', _PS_CSS_DIR_.'ps-hotel-reservation.css', )); + }else { + $this->addJqueryUI('ui.tooltip', 'base', true); } } @@ -2226,6 +2254,17 @@ class AdminNormalProductsControllerCore extends AdminController */ public function checkProduct() { + if (Tools::getValue('price_calculation_type') == Product::PRICE_CALCULATION_METHOD_ONCE_FOR_BOOKING) { + $_POST['price_calculation_method'] = Product::PRICE_CALCULATION_METHOD_ONCE_FOR_BOOKING; + } elseif (is_array(Tools::getValue('price_calculation_method'))) { + $_POST['price_calculation_method'] = array_sum(array_map('intval', Tools::getValue('price_calculation_method'))); + } + + // Code For Standard product working + // if (is_array(Tools::getValue('selling_preference_type'))) { + // $_POST['selling_preference_type'] = array_sum(array_map('intval', Tools::getValue('selling_preference_type'))); + // } + $className = 'Product'; // @todo : the call_user_func seems to contains only statics values (className = 'Product') $rules = call_user_func(array($this->className, 'getValidationRules'), $this->className); @@ -2377,6 +2416,15 @@ class AdminNormalProductsControllerCore extends AdminController $this->errors[] = $this->l('This product must be in the default category.'); } + // code for standard product working + // if (!Tools::getValue('selling_preference_type')) { + // $this->errors[] = $this->l('Please select at least one buying option.'); + // } + + if (Tools::getValue('id_product') && !Tools::getValue('price_calculation_method')) { + $this->errors[] = $this->l('Please select at least one day to apply the price calculation method on.'); + } + // Tags foreach ($languages as $language) { if ($value = Tools::getValue('tags_'.$language['id_lang'])) { @@ -3012,7 +3060,8 @@ class AdminNormalProductsControllerCore extends AdminController if (Validate::isLoadedObject($product)) { $objRoomTypeServiceProduct = new RoomTypeServiceProduct(); $allAssociations = $objRoomTypeServiceProduct->getAssociatedHotelsAndRoomType($product->id); - if (Product::SELLING_PREFERENCE_WITH_ROOM_TYPE == $product->selling_preference_type) { + + if (Product::isSellableWithRoomType($product->id)) { $associatedRoomTypes = $allAssociations['room_type']; $selectedRoomTypes = Tools::getValue('RT_tree_room_type_box', array()); @@ -3049,89 +3098,14 @@ class AdminNormalProductsControllerCore extends AdminController RoomTypeServiceProduct::WK_ELEMENT_TYPE_ROOM_TYPE ); } - RoomTypeServiceProduct::deleteRoomProductLink( - $product->id, - RoomTypeServiceProduct::WK_ELEMENT_TYPE_HOTEL - ); - } elseif (Product::SELLING_PREFERENCE_HOTEL_STANDALONE == $product->selling_preference_type) { - $associatedHotels = $allAssociations['hotel']; - $selectedHotel = Tools::getValue('hotel_box', array()); - // Generate list of new associations - $newHotels = array(); - foreach ($selectedHotel as $selectedRoomType) { - if (!in_array($selectedRoomType, $associatedHotels)) { - $newHotels[] = $selectedRoomType; - } - } - - // Generate list of associations to remove - $removedHotels = array(); - foreach ($associatedHotels as $associatedRoomType) { - if (!in_array($associatedRoomType, $selectedHotel)) { - $removedHotels[] = $associatedRoomType; - } - } - - // Remove associations - foreach ($removedHotels as $removedHotel) { - RoomTypeServiceProduct::deleteRoomProductLink( - $product->id, - RoomTypeServiceProduct::WK_ELEMENT_TYPE_HOTEL, - $removedHotel - ); - } - - // Save new associations - if ($newHotels) { - $objRoomTypeServiceProduct->addRoomProductLink( - $product->id, - $newHotels, - RoomTypeServiceProduct::WK_ELEMENT_TYPE_HOTEL - ); - } + } else { RoomTypeServiceProduct::deleteRoomProductLink( $product->id, RoomTypeServiceProduct::WK_ELEMENT_TYPE_ROOM_TYPE ); - } elseif (Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE == $product->selling_preference_type) { - // Add room types linking - $associatedRoomTypes = $allAssociations['room_type']; - $selectedRoomTypes = Tools::getValue('RT_tree_room_type_box', array()); - // Generate list of new associations - $newRoomTypes = array(); - foreach ($selectedRoomTypes as $selectedRoomType) { - if (!in_array($selectedRoomType, $associatedRoomTypes)) { - $newRoomTypes[] = $selectedRoomType; - } - } + } - // Generate list of associations to remove - $removedRoomTypes = array(); - foreach ($associatedRoomTypes as $associatedRoomType) { - if (!in_array($associatedRoomType, $selectedRoomTypes)) { - $removedRoomTypes[] = $associatedRoomType; - } - } - - // Remove old associations - foreach ($removedRoomTypes as $removedRoomType) { - RoomTypeServiceProduct::deleteRoomProductLink( - $product->id, - RoomTypeServiceProduct::WK_ELEMENT_TYPE_ROOM_TYPE, - $removedRoomType - ); - } - - // Save new associations - if ($newRoomTypes) { - $objRoomTypeServiceProduct->addRoomProductLink( - $product->id, - $newRoomTypes, - RoomTypeServiceProduct::WK_ELEMENT_TYPE_ROOM_TYPE - ); - } - - // Add hotels linking + if (Product::isSellableWithHotel($product->id)) { $associatedHotels = $allAssociations['hotel']; $selectedHotel = Tools::getValue('hotel_box', array()); // Generate list of new associations @@ -3150,7 +3124,7 @@ class AdminNormalProductsControllerCore extends AdminController } } - // Remove old associations + // Remove associations foreach ($removedHotels as $removedHotel) { RoomTypeServiceProduct::deleteRoomProductLink( $product->id, @@ -3168,11 +3142,17 @@ class AdminNormalProductsControllerCore extends AdminController ); } } else { - // Remove associations RoomTypeServiceProduct::deleteRoomProductLink( - $product->id + $product->id, + RoomTypeServiceProduct::WK_ELEMENT_TYPE_HOTEL ); } + + if (!Product::isSellableWithRoomType($product->id) + && !Product::isSellableWithHotel($product->id) + ) { + RoomTypeServiceProduct::deleteRoomProductLink($product->id); + } } } diff --git a/controllers/admin/AdminOrderPreferencesController.php b/controllers/admin/AdminOrderPreferencesController.php index ea047ca1d..4bcfadfe9 100644 --- a/controllers/admin/AdminOrderPreferencesController.php +++ b/controllers/admin/AdminOrderPreferencesController.php @@ -330,7 +330,7 @@ class AdminOrderPreferencesControllerCore extends AdminController ), array( 'value' => Product::STANDARD_PRODUCT_ADDRESS_PREFERENCE_HOTEL, - 'name' => $this->l('Hotel Address') + 'name' => $this->l('Property Address') ), array( 'value' => Product::STANDARD_PRODUCT_ADDRESS_PREFERENCE_CUSTOM, @@ -374,8 +374,8 @@ class AdminOrderPreferencesControllerCore extends AdminController 'identifier' => 'value', 'js' => "changeStandardProductAddressType()", 'hint' => $this->l('Select address for standard product tax calculation, this will be used to calculate the tax for the standard product price.'), - 'desc' => $this->l('The selected address will be used to calculate tax for standard products. To change the hotel address, update the "Primary Hotel" in the'). - ' '.$this->l('Hotel General Configuration.').'' + 'desc' => $this->l('The selected address will be used to calculate tax for standard products. To change the property address, update the "Primary Property" in the'). + ' '.$this->l('Property General Configuration.').'' ), 'PS_STANDARD_PRODUCT_ORDER_ADDRESS' => array( 'title' => $this->l('Custom address for tax calculation'), diff --git a/controllers/admin/AdminOrdersController.php b/controllers/admin/AdminOrdersController.php index 20eb4c77d..b63209ce5 100644 --- a/controllers/admin/AdminOrdersController.php +++ b/controllers/admin/AdminOrdersController.php @@ -169,7 +169,7 @@ class AdminOrdersControllerCore extends AdminController 'visible_default' => true ), 'hotel_name' => array( - 'title' => $this->l('Hotel'), + 'title' => $this->l('Property Name'), 'type' => 'select', 'filter_key' => 'hbd!id_hotel', 'list' => $this->hotelsArray, @@ -1077,19 +1077,32 @@ class AdminOrdersControllerCore extends AdminController if (Configuration::get('PS_ALLOW_ADD_ALL_SERVICES_IN_BOOKING')) { // get all services $objProduct = new Product(); - $hotelServiceProducts = $objProduct->getServiceProducts(true, Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE); - $roomTypeServiceProducts = $objProduct->getServiceProducts(true, Product::SELLING_PREFERENCE_WITH_ROOM_TYPE); - if ($serviceProducts = array_merge($roomTypeServiceProducts, $hotelServiceProducts)) { + $serviceProducts = array_values(array_filter( + $objProduct->getServiceProducts(true), + function ($serviceProduct) { + return Product::isSellableWithRoomType($serviceProduct['id_product']); + } + )); + + if($serviceProducts) { foreach ($serviceProducts as $key => $servProduct) { + if (!Product::isAvailableWhenOutOfStock(StockAvailable::outOfStock((int)$servProduct['id_product'])) + && Product::getQuantity((int)$servProduct['id_product']) <= 0 + ) { + unset($serviceProducts[$key]); + continue; + } if (!empty($additionalServices[$productLineData['id']]) && in_array($servProduct['id_product'], array_column($additionalServices[$productLineData['id']]['additional_services'], 'id_product')) ) { unset($serviceProducts[$key]); } else { - $numDays = 1; - if (Product::PRICE_CALCULATION_METHOD_PER_DAY == $servProduct['price_calculation_method']) { - $numDays = HotelHelper::getNumberOfDays($dateFrom, $dateTo); - } + + $numDays = Product::getServicePriceBillableDays( + $servProduct['price_calculation_method'], + $dateFrom, + $dateTo + ); $serviceProducts[$key]['price_tax_exc'] = Product::getServiceProductPrice( $servProduct['id_product'], 0, @@ -1099,7 +1112,7 @@ class AdminOrdersControllerCore extends AdminController 1, $dateFrom, $dateTo - )/$numDays; + ) / max($numDays, 1); } } } @@ -1116,7 +1129,7 @@ class AdminOrdersControllerCore extends AdminController } } - + $smartyVars['serviceProducts'] = $serviceProducts; $objOrderReturn = new OrderReturn(); $refundReqBookings = $objOrderReturn->getOrderRefundRequestedBookings($objOrder->id, 0, 1); @@ -1206,8 +1219,8 @@ class AdminOrdersControllerCore extends AdminController // multiple refund requests are allowed per product, no matter its // current status — always selectable, never excluded from this list - $hotelProducts = $objServiceProductOrderDetail->getServiceProductsInOrder($objOrder->id, 0, 0, Product::SELLING_PREFERENCE_HOTEL_STANDALONE); - $standaloneProducts = $objServiceProductOrderDetail->getServiceProductsInOrder($objOrder->id, 0, 0, Product::SELLING_PREFERENCE_STANDALONE); + $hotelProducts = $objServiceProductOrderDetail->getServiceProductsInOrder($objOrder->id, 0, 0, Product::SELLING_PREFERENCE_WITH_HOTEL); + $standaloneProducts = $objServiceProductOrderDetail->getServiceProductsInOrder($objOrder->id, 0, 0, Product::SELLING_PREFERENCE_WITH_STANDALONE); $this->context->smarty->assign( array( @@ -1420,6 +1433,7 @@ class AdminOrdersControllerCore extends AdminController $this->addJqueryUI('ui.datepicker'); $this->addJqueryUI('ui.tooltip', 'base', true); $this->addJS(_PS_JS_DIR_.'vendor/d3.v3.min.js'); + $this->addJqueryUI(array('ui.tooltip'), 'base', true); if ($this->display == 'view') { if ($this->loadObject()) { @@ -2475,7 +2489,8 @@ class AdminOrdersControllerCore extends AdminController } } - if ($hotelProducts = $objRoomTypeServProdOrderDtl->getServiceProductsInOrder($order->id, 0, 0, Product::SELLING_PREFERENCE_HOTEL_STANDALONE)) { + + if ($hotelProducts = $objRoomTypeServProdOrderDtl->getServiceProductsInOrder($order->id, 0, 0, Product::SELLING_PREFERENCE_WITH_HOTEL)) { foreach ($hotelProducts as $serviceProduct) { $objRoomTypeServProdOrderDtl = new ServiceProductOrderDetail($serviceProduct['id_service_product_order_detail']); foreach ($fields as $field) { @@ -2490,7 +2505,7 @@ class AdminOrdersControllerCore extends AdminController } } - if ($standaloneProducts = $objRoomTypeServProdOrderDtl->getServiceProductsInOrder($order->id, 0, 0, Product::SELLING_PREFERENCE_STANDALONE)) { + if ($standaloneProducts = $objRoomTypeServProdOrderDtl->getServiceProductsInOrder($order->id, 0, 0, Product::SELLING_PREFERENCE_WITH_STANDALONE)) { foreach ($standaloneProducts as $serviceProduct) { $objRoomTypeServProdOrderDtl = new ServiceProductOrderDetail($serviceProduct['id_service_product_order_detail']); foreach ($fields as $field) { @@ -3006,8 +3021,8 @@ class AdminOrdersControllerCore extends AdminController // if order has normal products the add kpi for total products $objServiceProductOrderDetail = new ServiceProductOrderDetail(); - $hotelProducts = $objServiceProductOrderDetail->getServiceProductsInOrder($objOrder->id, 0, 0, Product::SELLING_PREFERENCE_HOTEL_STANDALONE); - $standaloneProducts = $objServiceProductOrderDetail->getServiceProductsInOrder($objOrder->id, 0, 0, Product::SELLING_PREFERENCE_STANDALONE); + $hotelProducts = $objServiceProductOrderDetail->getServiceProductsInOrder($objOrder->id, 0, 0, Product::SELLING_PREFERENCE_WITH_HOTEL); + $standaloneProducts = $objServiceProductOrderDetail->getServiceProductsInOrder($objOrder->id, 0, 0, Product::SELLING_PREFERENCE_WITH_STANDALONE); if ($hotelProducts || $standaloneProducts) { $helper = new HelperKpi(); @@ -3359,8 +3374,8 @@ class AdminOrdersControllerCore extends AdminController } else { $product['image_link'] = $this->context->link->getImageLink($objProduct->link_rewrite, $this->context->language->iso_code.'-default', 'small_default'); } - if ($product['selling_preference_type'] == Product::SELLING_PREFERENCE_HOTEL_STANDALONE) { - $hotelProducts = $objServiceProductOrderDetail->getServiceProductsInOrder($order->id, $product['id_order_detail'], $product['product_id'], Product::SELLING_PREFERENCE_HOTEL_STANDALONE); + if ($product['selling_preference_type'] == Product::SELLING_PREFERENCE_WITH_HOTEL) { + $hotelProducts = $objServiceProductOrderDetail->getServiceProductsInOrder($order->id, $product['id_order_detail'], $product['product_id'], Product::SELLING_PREFERENCE_WITH_HOTEL); foreach ($hotelProducts as $hotelProduct) { $tourismTaxStatus = isset($standaloneServiceTourismTaxStatusMap[$hotelProduct['id_service_product_order_detail']]) ? $standaloneServiceTourismTaxStatusMap[$hotelProduct['id_service_product_order_detail']] @@ -3378,8 +3393,8 @@ class AdminOrdersControllerCore extends AdminController $orderHotelServiceProducts[] = array_merge($product, $hotelProduct); } } - if ($product['selling_preference_type'] == Product::SELLING_PREFERENCE_STANDALONE) { - $standaloneProducts = $objServiceProductOrderDetail->getServiceProductsInOrder($order->id, $product['id_order_detail'], $product['product_id'], Product::SELLING_PREFERENCE_STANDALONE); + if ($product['selling_preference_type'] == Product::SELLING_PREFERENCE_WITH_STANDALONE) { + $standaloneProducts = $objServiceProductOrderDetail->getServiceProductsInOrder($order->id, $product['id_order_detail'], $product['product_id'], Product::SELLING_PREFERENCE_WITH_STANDALONE); foreach ($standaloneProducts as $standaloneProduct) { $tourismTaxStatus = isset($standaloneServiceTourismTaxStatusMap[$standaloneProduct['id_service_product_order_detail']]) ? $standaloneServiceTourismTaxStatusMap[$standaloneProduct['id_service_product_order_detail']] @@ -3796,8 +3811,8 @@ class AdminOrdersControllerCore extends AdminController // send hotel standalone and standalone products $objProduct = new Product(); - $hotelStandaloneProducts = $objProduct->getServiceProducts(null, Product::SELLING_PREFERENCE_HOTEL_STANDALONE); - $standaloneProducts = $objProduct->getServiceProducts(null, Product::SELLING_PREFERENCE_STANDALONE); + $hotelStandaloneProducts = $objProduct->getServiceProducts(null, Product::SELLING_PREFERENCE_WITH_HOTEL); + $standaloneProducts = $objProduct->getServiceProducts(null, Product::SELLING_PREFERENCE_WITH_STANDALONE); $cartRuleAccess = Profile::getProfileAccess($this->context->employee->id_profile, (int)Tab::getIdFromClassName('AdminCartRules')); $addressAccess = Profile::getProfileAccess($this->context->employee->id_profile, (int)Tab::getIdFromClassName('AdminAddresses')); @@ -4361,12 +4376,25 @@ class AdminOrdersControllerCore extends AdminController } } } else { - if ($products = Product::searchByName( - (int)$this->context->language->id, - pSQL(Tools::getValue('product_search')), - 0, - Product::SELLING_PREFERENCE_STANDALONE - )) { + $products = array(); + $standaloneSellingPreferenceTypes = array( + Product::SELLING_PREFERENCE_WITH_STANDALONE, + Product::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_STANDALONE, + Product::SELLING_PREFERENCE_WITH_STANDALONE_AND_WITH_ROOM_TYPE, + Product::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_ROOM_TYPE_AND_WITH_STANDALONE, + ); + foreach ($standaloneSellingPreferenceTypes as $sellingPreferenceType) { + if ($productsByType = Product::searchByName( + (int)$this->context->language->id, + pSQL(Tools::getValue('product_search')), + 0, + $sellingPreferenceType + )) { + $products = array_merge($products, $productsByType); + } + } + if ($products) { + $products = array_values(array_column($products, null, 'id_product')); $objServiceProductOption = new ServiceProductOption(); $idAddress = 0; if (Tools::isSubmit('id_address')) { @@ -4579,8 +4607,13 @@ class AdminOrdersControllerCore extends AdminController } } - if ($product->booking_product || Product::SELLING_PREFERENCE_WITH_ROOM_TYPE == $product->selling_preference_type) { - die(Tools::jsonEncode(array( + if ($product->booking_product + || ( + Product::isSellableWithRoomType($product->id) + && !Product::isSellableWithHotel($product->id) + && !Product::isSellableAsStandalone($product->id) + ) + ) { die(Tools::jsonEncode(array( 'result' => false, 'error' => Tools::displayError('The product cannot be added through this method.') ))); @@ -5552,11 +5585,15 @@ class AdminOrdersControllerCore extends AdminController $objBookingDetail->email = $objHotelBranch->email; $objBookingDetail->check_in_time = $objHotelBranch->check_in; $objBookingDetail->check_out_time = $objHotelBranch->check_out; + $objBookingDetail->property_type_name = $objHotelBranch->propertyTypeName; + } - if ($roomTypeInfo = $objRoomType->getRoomTypeInfoByIdProduct($idProduct)) { + if ($roomTypeInfo = $objRoomType->getRoomTypeInfoByIdProduct($idProduct, $idLang)) { $objBookingDetail->adults = $objCartBookingData->adults; $objBookingDetail->children = $objCartBookingData->children; $objBookingDetail->child_ages = $objCartBookingData->child_ages; + $objBookingDetail->selling_object_name = $roomTypeInfo['selling_object_name']; + $objBookingDetail->selling_object_plural_name = $roomTypeInfo['selling_object_plural_name']; } if ($objBookingDetail->save()) { @@ -5627,10 +5664,11 @@ class AdminOrdersControllerCore extends AdminController )) { foreach ($services as $service) { $insertedServiceProductIdOrderDetail = $objBookingDetail->getLastInsertedServiceIdOrderDetail($order->id, $service['id_product']); - $numDays = 1; - if (Product::getProductPriceCalculation($service['id_product']) == Product::PRICE_CALCULATION_METHOD_PER_DAY) { - $numDays = HotelHelper::getNumberOfDays($objBookingDetail->date_from, $objBookingDetail->date_to); - } + $numDays = Product::getServicePriceBillableDays( + Product::getProductPriceCalculation($service['id_product']), + $objBookingDetail->date_from, + $objBookingDetail->date_to + ); $totalPriceTaxExcl = Product::getServiceProductPrice( (int) $service['id_product'], @@ -5661,7 +5699,7 @@ class AdminOrdersControllerCore extends AdminController 1, $objBookingDetail->date_from, $objBookingDetail->date_to - ) / $numDays; + ) / max($numDays, 1); $unitPriceTaxExcl = Product::getServiceProductPrice( (int) $service['id_product'], 0, @@ -5671,7 +5709,7 @@ class AdminOrdersControllerCore extends AdminController 1, $objBookingDetail->date_from, $objBookingDetail->date_to - ) / $numDays; + ) / max($numDays, 1); $objServiceProductOrderDetail = new ServiceProductOrderDetail(); $objServiceProductOrderDetail->id_product = $service['id_product']; @@ -5783,11 +5821,15 @@ class AdminOrdersControllerCore extends AdminController $response['status'] = false; $response['error'] = Tools::displayError('The product object cannot be loaded.'); } elseif ($objProduct->booking_product - || $objProduct->selling_preference_type == Product::SELLING_PREFERENCE_WITH_ROOM_TYPE + || ( + Product::isSellableWithRoomType($objProduct->id) + && !Product::isSellableWithHotel($objProduct->id) + && !Product::isSellableAsStandalone($objProduct->id) + ) ) { $response['status'] = false; $response['error'] = Tools::displayError('Invalid product. Please try adding any other product.'); - } elseif ($objProduct->selling_preference_type != Product::SELLING_PREFERENCE_STANDALONE + } elseif (!Product::isSellableAsStandalone($objProduct->id) && (!$addressTax->id_hotel || !Validate::isLoadedObject($objHotel = new HotelBranchInformation($addressTax->id_hotel))) ) { @@ -5872,7 +5914,7 @@ class AdminOrdersControllerCore extends AdminController $idProduct, 'up', $productInformations['product_quantity'], - isset($addressTax->id_hotel) ? $addressTax->id_hotel : 0, + isset($addressTax->id_hotel) ? $addressTax->id_hotel : false, false, isset($productInformations['product_option']) ? $productInformations['product_option'] : null )) { @@ -5887,7 +5929,10 @@ class AdminOrdersControllerCore extends AdminController if ($response['status']) { // If product is standalone and current order is for a hotel then we have to create a new order for this product $response['new_id_order'] = 0; - if ($objProduct->selling_preference_type == Product::SELLING_PREFERENCE_STANDALONE && $addressTax->id_hotel) { + if (Product::isSellableAsStandalone($objProduct->id) + && !Product::isSellableWithHotel($objProduct->id) + && $addressTax->id_hotel + ) { $objPaymentModule = new BoOrder(); $objEmployee = new Employee($this->context->cookie->id_employee); @@ -5969,8 +6014,10 @@ class AdminOrdersControllerCore extends AdminController $objOrderDetail = new OrderDetail(); $cartProducts = $objCart->getProducts(); - if ($cartProducts[0]['selling_preference_type'] == Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE) { - $cartProducts[0]['selling_preference_type'] = Product::SELLING_PREFERENCE_HOTEL_STANDALONE; + if (Product::isSellableWithHotel($cartProducts[0]['id_product']) && $addressTax->id_hotel) { + $cartProducts[0]['selling_preference_type'] = Product::SELLING_PREFERENCE_WITH_HOTEL; + } elseif (Product::isSellableAsStandalone($cartProducts[0]['id_product'])) { + $cartProducts[0]['selling_preference_type'] = Product::SELLING_PREFERENCE_WITH_STANDALONE; } $objOrderDetail->createList($objOrder, $objCart, $objOrder->getCurrentOrderState(), $cartProducts, (isset($objOrderInvoice) ? $objOrderInvoice->id : 0), $useTaxes, (int)Tools::getValue('add_product_warehouse')); @@ -6433,62 +6480,66 @@ class AdminOrdersControllerCore extends AdminController && count($orderServiceProduct['additional_services']) ) { foreach ($orderServiceProduct['additional_services'] as $serviceProduct) { - if ($serviceProduct['price_calculation_method'] == Product::PRICE_CALCULATION_METHOD_PER_DAY) { - $newNumDays = HotelHelper::getNumberOfDays($new_date_from, $new_date_to); - $objServiceProductOrderDetail = new ServiceProductOrderDetail((int) $serviceProduct['id_service_product_order_detail']); - $unitPriceTaxExcl = $objServiceProductOrderDetail->unit_price_tax_excl; - $unitPriceTaxIncl = $objServiceProductOrderDetail->unit_price_tax_incl; + $newNumDays = Product::getServicePriceBillableDays( + $serviceProduct['price_calculation_method'], + $new_date_from, + $new_date_to + ); + $oldNumDays = Product::getServicePriceBillableDays( + $serviceProduct['price_calculation_method'], + $old_date_from, + $old_date_to + ); + $objServiceProductOrderDetail = new ServiceProductOrderDetail((int) $serviceProduct['id_service_product_order_detail']); + $unitPriceTaxExcl = $objServiceProductOrderDetail->unit_price_tax_excl; + $unitPriceTaxIncl = $objServiceProductOrderDetail->unit_price_tax_incl; - $newTotalPriceTaxExcl = Tools::processPriceRounding( - ($newNumDays * $unitPriceTaxExcl), - $objServiceProductOrderDetail->quantity, - $order->round_type, - $order->round_mode - ); - $newTotalPriceTaxIncl = Tools::processPriceRounding( - ($newNumDays * $unitPriceTaxIncl), - $objServiceProductOrderDetail->quantity, - $order->round_type, - $order->round_mode - ); + $newTotalPriceTaxExcl = Tools::processPriceRounding( + ($newNumDays * $unitPriceTaxExcl), + $objServiceProductOrderDetail->quantity, + $order->round_type, + $order->round_mode + ); + $newTotalPriceTaxIncl = Tools::processPriceRounding( + ($newNumDays * $unitPriceTaxIncl), + $objServiceProductOrderDetail->quantity, + $order->round_type, + $order->round_mode + ); - $order->total_products -= $objServiceProductOrderDetail->total_price_tax_excl; - $order->total_products_wt -= $objServiceProductOrderDetail->total_price_tax_incl; + $order->total_products -= $objServiceProductOrderDetail->total_price_tax_excl; + $order->total_products_wt -= $objServiceProductOrderDetail->total_price_tax_incl; - // change order total - $order->total_products += $newTotalPriceTaxExcl; - $order->total_products_wt += $newTotalPriceTaxIncl; + // change order total + $order->total_products += $newTotalPriceTaxExcl; + $order->total_products_wt += $newTotalPriceTaxIncl; - $objOrderDetail = new OrderDetail((int) $serviceProduct['id_order_detail']); - $objOrderDetail->total_price_tax_excl -= $objServiceProductOrderDetail->total_price_tax_excl; - $objOrderDetail->total_price_tax_incl -= $objServiceProductOrderDetail->total_price_tax_incl; + $objOrderDetail = new OrderDetail((int) $serviceProduct['id_order_detail']); + $objOrderDetail->total_price_tax_excl -= $objServiceProductOrderDetail->total_price_tax_excl; + $objOrderDetail->total_price_tax_incl -= $objServiceProductOrderDetail->total_price_tax_incl; - $objOrderDetail->total_price_tax_excl += $newTotalPriceTaxExcl; - $objOrderDetail->total_price_tax_incl += $newTotalPriceTaxIncl; + $objOrderDetail->total_price_tax_excl += $newTotalPriceTaxExcl; + $objOrderDetail->total_price_tax_incl += $newTotalPriceTaxIncl; - $oldNumDays = HotelHelper::getNumberOfDays($old_date_from, $old_date_to); - $oldProductQuantity = $objServiceProductOrderDetail->quantity * $oldNumDays; - $newProductQuantity = $objServiceProductOrderDetail->quantity * $newNumDays; - $objOrderDetail->product_quantity += ($newProductQuantity - $oldProductQuantity); + $oldProductQuantity = $objServiceProductOrderDetail->quantity * $oldNumDays; + $newProductQuantity = $objServiceProductOrderDetail->quantity * $newNumDays; + $objOrderDetail->product_quantity += ($newProductQuantity - $oldProductQuantity); - $objOrderDetail->save(); - $this->context->cart = new Cart($objServiceProductOrderDetail->id_cart); + $objOrderDetail->save(); + $this->context->cart = new Cart($objServiceProductOrderDetail->id_cart); - if (isset($order_invoice)) { - $order_invoice->total_paid_tax_excl -= $objServiceProductOrderDetail->total_price_tax_excl; - $order_invoice->total_paid_tax_incl -= $objServiceProductOrderDetail->total_price_tax_incl; - - $order_invoice->total_paid_tax_excl += (float)$newTotalPriceTaxExcl; - $order_invoice->total_paid_tax_incl += (float)$newTotalPriceTaxIncl; - } - $objServiceProductOrderDetail->unit_price_tax_excl = $unitPriceTaxExcl; - $objServiceProductOrderDetail->unit_price_tax_incl = $unitPriceTaxIncl; - $objServiceProductOrderDetail->total_price_tax_excl = $newTotalPriceTaxExcl; - $objServiceProductOrderDetail->total_price_tax_incl = $newTotalPriceTaxIncl; - $objServiceProductOrderDetail->save(); - - $objOrderDetail->updateTaxAmount($order); + if (isset($order_invoice)) { + $order_invoice->total_paid_tax_excl -= $objServiceProductOrderDetail->total_price_tax_excl; + $order_invoice->total_paid_tax_incl -= $objServiceProductOrderDetail->total_price_tax_incl; + $order_invoice->total_paid_tax_excl += (float)$newTotalPriceTaxExcl; + $order_invoice->total_paid_tax_incl += (float)$newTotalPriceTaxIncl; } + $objServiceProductOrderDetail->unit_price_tax_excl = $unitPriceTaxExcl; + $objServiceProductOrderDetail->unit_price_tax_incl = $unitPriceTaxIncl; + $objServiceProductOrderDetail->total_price_tax_excl = $newTotalPriceTaxExcl; + $objServiceProductOrderDetail->total_price_tax_incl = $newTotalPriceTaxIncl; + $objServiceProductOrderDetail->save(); + $objOrderDetail->updateTaxAmount($order); } } } @@ -6889,9 +6940,12 @@ class AdminOrdersControllerCore extends AdminController $serviceOrderDetail = new OrderDetail($service['id_order_detail']); $cart_quantity = $service['quantity']; - if ($service['price_calculation_method'] == Product::PRICE_CALCULATION_METHOD_PER_DAY) { - $cart_quantity = $cart_quantity * $product_quantity; - } + $serviceApplicableDays = Product::getServicePriceBillableDays( + $service['price_calculation_method'], + $selectedAdditonalServices[$idHotelBooking]['date_from'], + $selectedAdditonalServices[$idHotelBooking]['date_to'] + ); + $cart_quantity = $cart_quantity * $serviceApplicableDays; if ($cart_quantity >= $serviceOrderDetail->product_quantity) { $serviceOrderDetail->delete(); } else { @@ -7046,15 +7100,6 @@ class AdminOrdersControllerCore extends AdminController $order_invoice->total_discount_tax_excl = 0; $res &= $order_invoice->update(); } - - // If no rooms left in the order, Update Order total and discounts to 0 - $order->total_discounts = 0; - $order->total_discounts_tax_incl = 0; - $order->total_discounts_tax_excl = 0; - $order->total_paid = 0; - $order->total_paid_tax_incl = 0; - $order->total_paid_tax_excl = 0; - $order->update(); } if (isset($order_invoice) && $order_invoice->id) { @@ -7730,20 +7775,54 @@ class AdminOrdersControllerCore extends AdminController if (Configuration::get('PS_ALLOW_ADD_ALL_SERVICES_IN_BOOKING')) { // get all services $objProduct = new Product(); - $hotelServiceProducts = $objProduct->getServiceProducts(true, Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE); - $roomTypeServiceProducts = $objProduct->getServiceProducts(true, Product::SELLING_PREFERENCE_WITH_ROOM_TYPE); - $serviceProducts = array_merge($roomTypeServiceProducts, $hotelServiceProducts); + $serviceProducts = array_values(array_filter( + $objProduct->getServiceProducts(true), + function ($serviceProduct) { + return Product::isSellableWithRoomType($serviceProduct['id_product']); + } + )); + if ($serviceProducts) { + foreach ($serviceProducts as $key => $servProduct) { + if (!Product::isAvailableWhenOutOfStock(StockAvailable::outOfStock((int)$servProduct['id_product'])) + && Product::getQuantity((int)$servProduct['id_product']) <= 0 + ) { + unset($serviceProducts[$key]); + continue; + } + if (!empty($additionalServices[$idHtlBookingDetail]) + && in_array($servProduct['id_product'], array_column($additionalServices[$idHtlBookingDetail]['additional_services'], 'id_product')) + ) { + unset($serviceProducts[$key]); + } else { + + $numDays = Product::getServicePriceBillableDays( + $servProduct['price_calculation_method'], + $dateFrom, + $dateTo + ); + + $serviceProducts[$key]['price_tax_exc'] = Product::getServiceProductPrice( + $servProduct['id_product'], + 0, + 0, + $idProduct, + false, + 1, + $dateFrom, + $dateTo + ) / max($numDays, 1); + } + } + } + } else { $objRoomTypeServiceProduct = new RoomTypeServiceProduct(); - $serviceProducts = $objRoomTypeServiceProduct->getServiceProductsData($idProduct, 1, 0, false, 2, null); - } - - if ($serviceProducts) { - foreach ($serviceProducts as $key => $servProduct) { - $serviceProducts[$key]['price_tax_exc'] = $servProduct['price']; - if (isset($additionalServices[$idHtlBookingDetail]) && $additionalServices[$idHtlBookingDetail]) { - if (in_array($servProduct['id_product'], array_column($additionalServices[$idHtlBookingDetail]['additional_services'], 'id_product'))) { - unset($serviceProducts[$key]); + if ($serviceProducts = $objRoomTypeServiceProduct->getServiceProductsData($idProduct, 1, 0, false, 2, null)) { + foreach ($serviceProducts as $key => $servProduct) { + if (!empty($additionalServices[$idHtlBookingDetail])) { + if (in_array($servProduct['id_product'], array_column($additionalServices[$idHtlBookingDetail]['additional_services'], 'id_product'))) { + unset($serviceProducts[$key]); + } } } } @@ -7846,13 +7925,11 @@ class AdminOrdersControllerCore extends AdminController $objServiceProductOrderDetail->quantity = $quantity; $objServiceProductOrderDetail->unit_price_tax_excl = $unitPrice; $objServiceProductOrderDetail->unit_price_tax_incl = $unitPrice * $oldTaxMultiplier; - $numDays = 1; - if ($objOrderDetail->product_price_calculation_method == Product::PRICE_CALCULATION_METHOD_PER_DAY) { - $numDays = HotelHelper::getNumberOfDays( - $objHotelBookingDetail->date_from, - $objHotelBookingDetail->date_to - ); - } + $numDays = Product::getServicePriceBillableDays( + $objOrderDetail->product_price_calculation_method, + $objHotelBookingDetail->date_from, + $objHotelBookingDetail->date_to + ); $objServiceProductOrderDetail->total_price_tax_excl = Tools::processPriceRounding( ($objServiceProductOrderDetail->unit_price_tax_excl * $numDays), $quantity, @@ -7870,22 +7947,14 @@ class AdminOrdersControllerCore extends AdminController $priceDiffTaxExcl = $objServiceProductOrderDetail->total_price_tax_excl - $oldTotalPriceTaxExcl; $priceDiffTaxIncl = $objServiceProductOrderDetail->total_price_tax_incl - $oldTotalPriceTaxIncl; - if ($objOrderDetail->product_price_calculation_method == Product::PRICE_CALCULATION_METHOD_PER_DAY) { - $numDays = HotelHelper::getNumberOfDays( - $objHotelBookingDetail->date_from, - $objHotelBookingDetail->date_to - ); - $quantityDiff = ($objServiceProductOrderDetail->quantity - $oldQuantity)*$numDays; - } else { - $quantityDiff = $objServiceProductOrderDetail->quantity - $oldQuantity; - } + $quantityDiff = ($objServiceProductOrderDetail->quantity - $oldQuantity) * $numDays; $objOrderDetail->product_quantity += $quantityDiff; $objOrderDetail->total_price_tax_excl += $priceDiffTaxExcl; $objOrderDetail->total_price_tax_incl += $priceDiffTaxIncl; - $objOrderDetail->unit_price_tax_excl = ($objOrderDetail->total_price_tax_excl / $objOrderDetail->product_quantity); - $objOrderDetail->unit_price_tax_incl = ($objOrderDetail->total_price_tax_incl / $objOrderDetail->product_quantity); + $objOrderDetail->unit_price_tax_excl = ($objOrderDetail->total_price_tax_excl / max($objOrderDetail->product_quantity, 1)); + $objOrderDetail->unit_price_tax_incl = ($objOrderDetail->total_price_tax_incl / max($objOrderDetail->product_quantity, 1)); $result &= $objOrderDetail->updateTaxAmount($objOrder); @@ -8001,6 +8070,25 @@ class AdminOrdersControllerCore extends AdminController $response['hasError'] = true; $response['errors'][] = sprintf($this->l('Invalid unit price for %s.'), $objProduct->name); } + + if ($objProduct->allow_multiple_quantity && Validate::isUnsignedInt($qty[$service])) { + $finalQty = (int)$qty[$service]; + $numDays = Product::getServicePriceBillableDays( + Product::getProductPriceCalculation($service), + $objHotelBookingDetail->date_from, + $objHotelBookingDetail->date_to + ); + $stockQty = $finalQty * $numDays; + + if ($objProduct->max_quantity && $finalQty > $objProduct->max_quantity) { + $response['hasError'] = true; + $response['errors'][] = sprintf($this->l('Cannot add more than %d quantity.'), $objProduct->max_quantity).': '.$objProduct->name; + } elseif (!Product::isAvailableWhenOutOfStock(StockAvailable::outOfStock((int)$service)) && !$objProduct->checkQty($stockQty)) { + $response['hasError'] = true; + $response['errors'][] = $this->l('There isn\'t enough product in stock.').': '.$objProduct->name; + } + } + $selectedServices[$key] = array( 'id' => $service, 'qty' => $qty[$service], @@ -8041,10 +8129,11 @@ class AdminOrdersControllerCore extends AdminController $this->context->cart = $cart; $this->context->customer = new Customer($order->id_customer); - $numDays = 1; - if (Product::getProductPriceCalculation($service['id']) == Product::PRICE_CALCULATION_METHOD_PER_DAY) { - $numDays = HotelHelper::getNumberOfDays($objHotelBookingDetail->date_from, $objHotelBookingDetail->date_to); - } + $numDays = Product::getServicePriceBillableDays( + Product::getProductPriceCalculation($service['id']), + $objHotelBookingDetail->date_from, + $objHotelBookingDetail->date_to + ); $objRoomTypeServiceProductPrice = new RoomTypeServiceProductPrice(); $initialServicePrice = Product::getServiceProductPrice( @@ -8056,7 +8145,7 @@ class AdminOrdersControllerCore extends AdminController 1, $objHotelBookingDetail->date_from, $objHotelBookingDetail->date_to - ) / $numDays; + ) / max($numDays, 1); if ($initialServicePrice != $service['price']) { $specific_price = new SpecificPrice(); @@ -8117,7 +8206,7 @@ class AdminOrdersControllerCore extends AdminController 1, null, $roomHtlCartInfo['id'] - ) / $numDays; + ) / max($numDays, 1); $unitPriceTaxIncl = Product::getServiceProductPrice( (int) $product['id_product'], 0, @@ -8132,7 +8221,7 @@ class AdminOrdersControllerCore extends AdminController 1, null, $roomHtlCartInfo['id'] - ) / $numDays; + ) / max($numDays, 1); $totalPriceChangeTaxExcl += $totalPriceTaxExcl = Tools::processPriceRounding( ($unitPriceTaxExcl * $numDays), @@ -8150,7 +8239,7 @@ class AdminOrdersControllerCore extends AdminController $product['total'] = $totalPriceTaxExcl; $product['total_wt'] = $totalPriceTaxIncl; - if ($product['selling_preference_type'] == Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE) { + if (Product::isSellableWithRoomType($product['id_product'])) { $product['selling_preference_type'] = Product::SELLING_PREFERENCE_WITH_ROOM_TYPE; } } @@ -8268,7 +8357,11 @@ class AdminOrdersControllerCore extends AdminController )) { $name = trim(Tools::getValue('new_service_name')); $price = Tools::getValue('new_service_price'); - $priceCalcMethod = Tools::getValue('new_service_price_calc_method'); + if (Tools::getValue('price_calculation_type') == Product::PRICE_CALCULATION_METHOD_ONCE_FOR_BOOKING) { + $priceCalcMethod = Product::PRICE_CALCULATION_METHOD_ONCE_FOR_BOOKING; + } elseif (is_array(Tools::getValue('new_service_price_calc_method'))) { + $priceCalcMethod = array_sum(array_map('intval', Tools::getValue('new_service_price_calc_method'))); + } $priceAdditionType = Tools::getValue('new_service_price_addition_type'); $productQty = Tools::getValue('new_service_qty'); $idTaxRuleGroup = Tools::getValue('new_service_price_tax_rule_group'); @@ -8302,6 +8395,15 @@ class AdminOrdersControllerCore extends AdminController $response['errors'][] = Tools::displayError('Invalid service name'); } + if (empty($priceCalcMethod)) { + $response['hasError'] = true; + $response['errors'][] = Tools::displayError('Please select at least one day to apply the price calculation method.'); + } elseif ( + !Validate::isUnsignedInt($priceCalcMethod)) { + $response['hasError'] = true; + $response['errors'][] = Tools::displayError('Invalid price calculation method.'); + } + if (!isset($price)) { $response['hasError'] = true; $response['errors'][] = Tools::displayError('Service price is required'); @@ -8309,7 +8411,6 @@ class AdminOrdersControllerCore extends AdminController $response['hasError'] = true; $response['errors'][] = Tools::displayError('Invalid service price'); } - // if no validation errors then add service if (!$response['hasError']) { // ======= START: Create Service product ========= @@ -8377,10 +8478,11 @@ class AdminOrdersControllerCore extends AdminController $objRoomTypeServiceProductPrice = new RoomTypeServiceProductPrice(); $cartProductProcessed = 1; - $numDays = 1; - if (Product::getProductPriceCalculation($objServiceProduct->id) == Product::PRICE_CALCULATION_METHOD_PER_DAY) { - $numDays = HotelHelper::getNumberOfDays($objHotelBookingDetail->date_from, $objHotelBookingDetail->date_to); - } + $numDays = Product::getServicePriceBillableDays( + Product::getProductPriceCalculation($objServiceProduct->id), + $objHotelBookingDetail->date_from, + $objHotelBookingDetail->date_to + ); foreach ($productList as &$product) { // This is used to get the actual quanity of the service as it is calculated incorrectly if the service is per night if ($idRoomTypeServProductCart = $objServiceProductCartDetail->alreadyExists( @@ -8418,7 +8520,7 @@ class AdminOrdersControllerCore extends AdminController $objHotelBookingDetail->date_from, $objHotelBookingDetail->date_to, $objCart->id - ) / $numDays; + ) / max($numDays, 1); $unitPriceTaxIncl = Product::getServiceProductPrice( (int)$product['id_product'], 0, @@ -8429,7 +8531,7 @@ class AdminOrdersControllerCore extends AdminController $objHotelBookingDetail->date_from, $objHotelBookingDetail->date_to, $objCart->id - ) / $numDays; + ) / max($numDays, 1); $totalPriceChangeTaxExcl += $totalPriceTaxExcl = Tools::processPriceRounding( ($unitPriceTaxExcl * $numDays), @@ -8638,13 +8740,12 @@ class AdminOrdersControllerCore extends AdminController OrderTaxDetail::hardDeleteForBooking(0, array((int) $objServiceProductOrderDetail->id)); $order = new Order($objServiceProductOrderDetail->id_order); - if ($objOrderDetail->product_price_calculation_method == Product::PRICE_CALCULATION_METHOD_PER_DAY) { - $numDays = HotelHelper::getNumberOfDays( - $objHotelBookingDetail->date_from, - $objHotelBookingDetail->date_to - ); - $quantity = $quantity * $numDays; - } + $numDays = Product::getServicePriceBillableDays( + $objOrderDetail->product_price_calculation_method, + $objHotelBookingDetail->date_from, + $objHotelBookingDetail->date_to + ); + $quantity = $quantity * $numDays; if ($quantity >= $objOrderDetail->product_quantity) { $objOrderDetail->delete(); } else { diff --git a/controllers/admin/AdminPPreferencesController.php b/controllers/admin/AdminPPreferencesController.php index 4794c1f9a..9b1005cb9 100644 --- a/controllers/admin/AdminPPreferencesController.php +++ b/controllers/admin/AdminPPreferencesController.php @@ -179,7 +179,7 @@ class AdminPPreferencesControllerCore extends AdminController ), 'PS_BACKOFFICE_ROOM_BOOKING_TYPE' => array( 'title' => $this->l('In back-office, add rooms to cart with'), - 'hint' => $this->l('In Room occupancy, while adding rooms in cart customer has to select per room occupancy and in room quantity customer only has to select number of rooms.'), + 'hint' => $this->l('In Room occupancy, while adding room in cart customer has to select per room occupancy and in rooms quantity customer only has to select number of rooms.'), 'cast' => 'intval', 'type' => 'select', 'list' => array( @@ -437,14 +437,6 @@ class AdminPPreferencesControllerCore extends AdminController Db::getInstance()->execute($sql); } - if (Tools::getValue('PS_FRONT_SEARCH_TYPE') == HotelBookingDetail::SEARCH_TYPE_OWS) { - $_POST['PS_FRONT_ROOM_UNIT_SELECTION_TYPE'] = HotelBookingDetail::PS_ROOM_UNIT_SELECTION_TYPE_OCCUPANCY; - } - - if (Tools::getValue('PS_BACKOFFICE_SEARCH_TYPE') == HotelBookingDetail::SEARCH_TYPE_OWS) { - $_POST['PS_BACKOFFICE_ROOM_BOOKING_TYPE'] = HotelBookingDetail::PS_ROOM_UNIT_SELECTION_TYPE_OCCUPANCY; - } - if (Tools::getIsset('PS_CATALOG_MODE')) { Tools::clearSmartyCache(); Media::clearCache(); diff --git a/controllers/admin/AdminPatternsController.php b/controllers/admin/AdminPatternsController.php index d49df4cad..e393e8d3e 100644 --- a/controllers/admin/AdminPatternsController.php +++ b/controllers/admin/AdminPatternsController.php @@ -513,7 +513,7 @@ class AdminPatternsControllerCore extends AdminController 'color_value' => 'red', 'blue' => 'Content in custom color in blue field', 'activeVisu_field' => 1, - 'editable_text' => "PrestaShop", + 'editable_text' => "QloApps", ), array( 'id' => 1, @@ -524,7 +524,7 @@ class AdminPatternsControllerCore extends AdminController 'color_value' => 'blue', 'blue' => 'Content in custom color in blue field', 'activeVisu_field' => 0, - 'editable_text' => "PrestaShop", + 'editable_text' => "QloApps", ), array( 'id' => 2, @@ -535,7 +535,7 @@ class AdminPatternsControllerCore extends AdminController 'color_value' => 'yellow', 'blue' => 'Content in custom color in blue field', 'activeVisu_field' => 1, - 'editable_text' => "PrestaShop Lorem ipsum dolor sit amet, consectetur adipiscing elit. ", + 'editable_text' => "QloApps Lorem ipsum dolor sit amet, consectetur adipiscing elit. ", ), array( 'id' => 9, @@ -546,7 +546,7 @@ class AdminPatternsControllerCore extends AdminController 'color_value' => '#CCCC99', 'blue' => 'Content in custom color in blue field', 'activeVisu_field' => 1, - 'editable_text' => "PrestaShop", + 'editable_text' => "QloApps", ), ); diff --git a/controllers/admin/AdminPerformanceController.php b/controllers/admin/AdminPerformanceController.php index 8748ca7af..e599d1654 100644 --- a/controllers/admin/AdminPerformanceController.php +++ b/controllers/admin/AdminPerformanceController.php @@ -309,7 +309,7 @@ class AdminPerformanceControllerCore extends AdminController 'title' => $this->l('CCC (Combine, Compress and Cache)'), 'icon' => 'icon-fullscreen' ), - 'description' => $this->l('CCC allows you to reduce the loading time of your page. With these settings you will gain performance without even touching the code of your theme. Make sure, however, that your theme is compatible with PrestaShop 1.4+. Otherwise, CCC will cause problems.'), + 'description' => $this->l('CCC allows you to reduce the loading time of your page. With these settings you will gain performance without even touching the code of your theme.'), 'input' => array( array( 'type' => 'hidden', @@ -638,7 +638,7 @@ class AdminPerformanceControllerCore extends AdminController public function postProcess() { - /* PrestaShop demo mode */ + /* QloApps demo mode */ if (_PS_MODE_DEMO_) { $this->errors[] = Tools::displayError('This functionality has been disabled.'); return; @@ -941,11 +941,11 @@ class AdminPerformanceControllerCore extends AdminController public function displayAjaxTestServer() { - /* PrestaShop demo mode */ + /* QloApps demo mode */ if (_PS_MODE_DEMO_) { die(Tools::displayError('This functionality has been disabled.')); } - /* PrestaShop demo mode*/ + /* QloApps demo mode*/ if (Tools::isSubmit('action') && Tools::getValue('action') == 'test_server') { $host = pSQL(Tools::getValue('sHost', '')); $port = (int)Tools::getValue('sPort', 0); diff --git a/controllers/admin/AdminProductsController.php b/controllers/admin/AdminProductsController.php index 66b70e3e9..bd8a07335 100644 --- a/controllers/admin/AdminProductsController.php +++ b/controllers/admin/AdminProductsController.php @@ -289,7 +289,7 @@ class AdminProductsControllerCore extends AdminController } $this->fields_list['hotel_name'] = array( - 'title' => $this->l('Hotel'), + 'title' => $this->l('Property'), 'type' => 'select', 'multiple' => true, 'operator' => 'or', @@ -414,9 +414,12 @@ class AdminProductsControllerCore extends AdminController ); $objProduct = new Product(); - $hotelServiceProducts = $objProduct->getServiceProducts(null, Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE); - $roomTypeServiceProducts = $objProduct->getServiceProducts(null, Product::SELLING_PREFERENCE_WITH_ROOM_TYPE); - $allServiceProducts = array_merge($roomTypeServiceProducts, $hotelServiceProducts); + $allServiceProducts = array_values(array_filter( + $objProduct->getServiceProducts(null), + function ($serviceProduct) { + return Product::isSellableWithRoomType($serviceProduct['id_product']); + } + )); $serviceProducts = array(); foreach ($allServiceProducts as $serviceProduct) { $serviceProducts[$serviceProduct['id_product']] = $serviceProduct['name']; @@ -2201,6 +2204,8 @@ class AdminProductsControllerCore extends AdminController return false; } + $this->assignRoomType($object); + // update position in category $object->setPositionInCategory(Tools::getValue('category_position')); @@ -2365,6 +2370,7 @@ class AdminProductsControllerCore extends AdminController $saveShort = Tools::getValue('description_short'); $_POST['description_short'] = strip_tags(Tools::getValue('description_short')); } + $_POST['id_selling_object'] = Tools::getValue('id_selling_object') ?? 0; // Check description short size without html $limit = (int)Configuration::get('PS_SHORT_DESC_LIMIT'); @@ -3131,8 +3137,12 @@ class AdminProductsControllerCore extends AdminController if (Validate::isLoadedObject($product)) { if ($id_hotel = Tools::getValue('id_hotel')) { $objRoomType = new HotelRoomType(); + if ($roomTypeInfo = $objRoomType->getRoomTypeInfoByIdProduct($product->id)) { + $objRoomType = new HotelRoomType((int)$roomTypeInfo['id']); + } $objRoomType->id_product = $product->id; $objRoomType->id_hotel = $id_hotel; + $objRoomType->id_selling_object = (int)$product->id_selling_object; $objRoomType->save(); } } @@ -3243,9 +3253,12 @@ class AdminProductsControllerCore extends AdminController $objRoomType = new HotelRoomType(); if ($hotelRoomType = $objRoomType->getRoomTypeInfoByIdProduct($obj->id)) { - $hotelServiceProducts = $obj->getServiceProducts(null, Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE); - $roomTypeServiceProducts = $obj->getServiceProducts(null, Product::SELLING_PREFERENCE_WITH_ROOM_TYPE); - $allServiceProducts = array_merge($roomTypeServiceProducts, $hotelServiceProducts); + $allServiceProducts = array_values(array_filter( + $obj->getServiceProducts(null), + function ($serviceProduct) { + return Product::isSellableWithRoomType($serviceProduct['id_product']); + } + )); $objRoomTypeServiceProduct = new RoomTypeServiceProduct(); $objRoomTypeServiceProductPrice = new RoomTypeServiceProductPrice(); @@ -4507,6 +4520,12 @@ class AdminProductsControllerCore extends AdminController $data->assign('htl_full_info', $hotelFullInfo); } + $roomTypeSellingObjects = RoomTypeSellingObject::getRoomTypeSellingObjects($this->context->language->id); + $data->assign('selling_object_info', $roomTypeSellingObjects); + if (!empty($product->id_selling_object)) { + $data->assign('selected_room_type_selling_object', $product->id_selling_object); + } + $this->tpl_form_vars['product'] = $product; $this->tpl_form_vars['custom_form'] = $data->fetch(); } @@ -5511,15 +5530,15 @@ class AdminProductsControllerCore extends AdminController if (!empty($roomNumber = trim(Tools::getValue('num'))) && !Validate::isUnsignedInt($roomNumber) ) { - $this->errors[] = Tools::displayError('Invalid Starting Room No.'); + $this->errors[] = sprintf(Tools::displayError('Invalid Starting %s No.') , $roomTypeInfo['selling_object_name']); } if (!($roomQuantity = Tools::getValue('qty'))) { - $this->errors[] = Tools::displayError('Number of rooms is required.'); + $this->errors[] = sprintf(Tools::displayError('Number of %s is required.') ,$roomTypeInfo['selling_object_name']); } else if (!Validate::isUnsignedInt($roomQuantity) || $roomQuantity < 1) { - $this->errors[] = Tools::displayError('Invalid value for number of rooms.'); + $this->errors[] = sprintf(Tools::displayError('Invalid value for number of %s.') ,$roomTypeInfo['selling_object_name']); } else if ($roomQuantity > 50) { - $this->errors[] = Tools::displayError('You cannot create more than 50 rooms at a time.'); + $this->errors[] = sprintf(Tools::displayError('You cannot create more than 50 %s at a time.'), $roomTypeInfo['selling_object_name']); } if (trim($comment = Tools::getValue('room_comment'))) { @@ -5532,7 +5551,7 @@ class AdminProductsControllerCore extends AdminController $disableDates = Tools::getValue('disable_dates'); $roomsInfo['disable_dates_json'] = json_encode($disableDates); if (!$disableDates) { - $this->errors[] = Tools::displayError('Please add at least one date range for updating the rooms status to temporary inactive.'); + $this->errors[] = sprintf(Tools::displayError('Please add at least one date range for updating the %s status to temporary inactive.') , $roomTypeInfo['selling_object_name']); } else { $hasMissingRowError = false; foreach ($disableDates as $key => $dateRange) { diff --git a/controllers/admin/AdminRoomTypeSellingObjectsController.php b/controllers/admin/AdminRoomTypeSellingObjectsController.php new file mode 100644 index 000000000..9d60e2774 --- /dev/null +++ b/controllers/admin/AdminRoomTypeSellingObjectsController.php @@ -0,0 +1,230 @@ +bootstrap = true; + $this->table = 'room_type_selling_object'; + $this->className = 'RoomTypeSellingObject'; + $this->identifier = 'id_room_type_selling_object'; + $this->lang = true; + $this->context = Context::getContext(); + $this->toolbar_title = $this->l('Room Type Selling Objects'); + + parent::__construct(); + + $this->fields_list = array( + 'id_room_type_selling_object' => array( + 'title' => $this->l('ID'), + 'align' => 'center', + 'class' => 'fixed-width-xs', + ), + 'name' => array( + 'title' => $this->l('Name'), + 'align' => 'left', + ), + 'plural_name' => array( + 'title' => $this->l('Plural Name'), + 'align' => 'left', + ), + 'active' => array( + 'title' => $this->l('Status'), + 'align' => 'center', + 'active' => 'status', + 'type' => 'bool', + 'orderby' => false, + ), + ); + + $this->addRowAction('edit'); + $this->addRowAction('delete'); + $this->bulk_actions = array( + 'delete' => array( + 'text' => $this->l('Delete selected'), + 'confirm' => $this->l('Delete selected items?'), + 'icon' => 'icon-trash', + ), + ); + } + + public function initPageHeaderToolbar() + { + if (!$this->display || $this->display == 'list') { + $this->page_header_toolbar_btn['new_room_selling_type'] = array( + 'href' => self::$currentIndex.'&add'.$this->table.'&token='.$this->token, + 'desc' => $this->l('Add new Selling Object', null, null, false), + 'icon' => 'process-icon-new', + ); + } + + parent::initPageHeaderToolbar(); + } + + public function renderForm() + { + if (!$this->loadObject(true)) { + return; + } + + $this->fields_form = array( + 'legend' => array( + 'title' => $this->l('Room Type Selling Object'), + 'icon' => 'icon-tags', + ), + 'input' => array( + array( + 'type' => 'text', + 'label' => $this->l('Name'), + 'name' => 'name', + 'lang' => true, + 'required' => true, + 'hint' => $this->l('Displayed name for this room type selling object.'), + ), + array( + 'type' => 'text', + 'label' => $this->l('Plural Name'), + 'name' => 'plural_name', + 'lang' => true, + 'required' => true, + 'hint' => $this->l('Displayed name when more than one is booked.'), + ), + array( + 'type' => 'switch', + 'label' => $this->l('Enabled'), + 'name' => 'active', + 'is_bool' => true, + 'default_value' => 1, + 'values' => array( + array( + 'id' => 'active_on', + 'value' => 1, + 'label' => $this->l('Enabled'), + ), + array( + 'id' => 'active_off', + 'value' => 0, + 'label' => $this->l('Disabled'), + ), + ), + ), + ), + 'submit' => array( + 'title' => $this->l('Save'), + ), + 'buttons' => array( + 'save-and-stay' => array( + 'title' => $this->l('Save and stay'), + 'name' => 'submitAdd'.$this->table.'AndStay', + 'type' => 'submit', + 'class' => 'btn btn-default pull-right', + 'icon' => 'process-icon-save', + ), + ), + ); + + return parent::renderForm(); + } + + public function postProcess() + { + if (Tools::isSubmit('submitAdd'.$this->table) || Tools::isSubmit('submitAdd'.$this->table.'AndStay')) { + $languages = Language::getLanguages(false); + $defaultLangId = Configuration::get('PS_LANG_DEFAULT'); + $objDefaultLanguage = Language::getLanguage((int) $defaultLangId); + $idSellingObject = Tools::getValue($this->identifier); + + if (!trim(Tools::getValue('name_'.$defaultLangId))) { + $this->errors[] = $this->l('Name is required at least in ').$objDefaultLanguage['name']; + } else { + foreach ($languages as $lang) { + if (trim(Tools::getValue('name_'.$lang['id_lang']))) { + if (!Validate::isGenericName(Tools::getValue('name_'.$lang['id_lang']))) { + $this->errors[] = $this->l('Invalid Name in ').$lang['name']; + } + } + } + } + + if (!trim(Tools::getValue('plural_name_'.$defaultLangId))) { + $this->errors[] = $this->l('Plural Name is required at least in ').$objDefaultLanguage['name']; + } else { + foreach ($languages as $lang) { + if (trim(Tools::getValue('plural_name_'.$lang['id_lang']))) { + if (!Validate::isGenericName(Tools::getValue('plural_name_'.$lang['id_lang']))) { + $this->errors[] = $this->l('Invalid Plural Name in ').$lang['name']; + } + } + } + } + + $this->display = $idSellingObject ? 'edit' : 'add'; + + if (!$this->errors) { + parent::postProcess(); + } + } else { + parent::postProcess(); + } + } + + public function processDelete() + { + $object = $this->loadObject(); + if (!$this->checkDeletion($object)) { + return false; + } + return parent::processDelete(); + } + + protected function processBulkDelete() + { + if (is_array($this->boxes) && !empty($this->boxes)) { + foreach ($this->boxes as $idSellingObject) { + $object = new RoomTypeSellingObject((int) $idSellingObject); + if (!$this->checkDeletion($object)) { + return false; + } + } + } + + return parent::processBulkDelete(); + } + + protected function checkDeletion($object) + { + if (Validate::isLoadedObject($object)) { + if ($object->isUsed()) { + $this->errors[] = $this->l('You cannot delete this room type selling object because it is currently assigned to one or more room types.'); + } else { + return true; + } + } else { + $this->errors[] = Tools::displayError('An error occurred while deleting the object.').' + '.$this->table.' '.Tools::displayError('(cannot load object)'); + } + + return false; + } +} diff --git a/controllers/admin/AdminStatsController.php b/controllers/admin/AdminStatsController.php index 796d62080..42e26ab47 100644 --- a/controllers/admin/AdminStatsController.php +++ b/controllers/admin/AdminStatsController.php @@ -2406,9 +2406,9 @@ class AdminStatsControllerCore extends AdminStatsTabController IFNULL(SUM( CASE WHEN od.`purchase_supplier_price` <> "0.000000" - THEN (od.`purchase_supplier_price` / (IF (od.`product_price_calculation_method` = '.Product::PRICE_CALCULATION_METHOD_PER_BOOKING.', DATEDIFF(hbd.`date_to`, hbd.`date_from`), 1))) + THEN (od.`purchase_supplier_price` / (IF (od.`product_price_calculation_method` = '.Product::PRICE_CALCULATION_METHOD_CHECKIN_AND_CHECKOUT_AND_DURING_STAY.', DATEDIFF(hbd.`date_to`, hbd.`date_from`), 1))) WHEN od.`purchase_supplier_price` = "0.000000" - THEN ((od.`original_product_price` / o.`conversion_rate`) * '.(int)Configuration::get('CONF_AVERAGE_PRODUCT_MARGIN').' / 100) / (IF (od.`product_price_calculation_method` = '.Product::PRICE_CALCULATION_METHOD_PER_BOOKING.', DATEDIFF(hbd.`date_to`, hbd.`date_from`), 1)) + THEN ((od.`original_product_price` / o.`conversion_rate`) * '.(int)Configuration::get('CONF_AVERAGE_PRODUCT_MARGIN').' / 100) / (IF (od.`product_price_calculation_method` = '.Product::PRICE_CALCULATION_METHOD_CHECKIN_AND_CHECKOUT_AND_DURING_STAY.', DATEDIFF(hbd.`date_to`, hbd.`date_from`), 1)) END ), 0) FROM `'._DB_PREFIX_.'service_product_order_detail` rtspod diff --git a/controllers/admin/AdminSupplyOrdersController.php b/controllers/admin/AdminSupplyOrdersController.php index 08c427101..34b83c550 100644 --- a/controllers/admin/AdminSupplyOrdersController.php +++ b/controllers/admin/AdminSupplyOrdersController.php @@ -301,7 +301,7 @@ class AdminSupplyOrdersControllerCore extends AdminController 'required' => false, 'hint' => array( $this->l('This will reset the order.'), - $this->l('If a value specified, each of your current product (from the selected supplier and warehouse) with a quantity lower than or equal to this value will be loaded. This means that PrestaShop will pre-fill this order with the products that are low on quantity.'), + $this->l('If a value specified, each of your current product (from the selected supplier and warehouse) with a quantity lower than or equal to this value will be loaded. This means that QloApps will pre-fill this order with the products that are low on quantity.'), ), ), ), diff --git a/controllers/admin/AdminTaxesController.php b/controllers/admin/AdminTaxesController.php index 1f2433087..1c42235f8 100644 --- a/controllers/admin/AdminTaxesController.php +++ b/controllers/admin/AdminTaxesController.php @@ -140,15 +140,29 @@ class AdminTaxesControllerCore extends AdminController 'type' => 'bool', ); - if (Configuration::get('QLO_USE_TOURISM_TAX') || Tools::getValue('QLO_USE_TOURISM_TAX')) { - $this->fields_options['general']['fields']['QLO_TOURISM_TAX_GROSSED_UP'] = array( - 'title' => $this->l('Include tourism tax in displayed prices'), - 'desc' => $this->l('When enabled, tourism tax is included in displayed prices. The applicable tourism tax is always shown as a separate line if applicable.'), - 'validation' => 'isBool', - 'cast' => 'intval', - 'type' => 'bool', - ); - } + $this->fields_options['general']['fields']['QLO_TOURISM_TAX_GROSSED_UP'] = array( + 'title' => $this->l('Include tourism tax in displayed prices'), + 'desc' => $this->l('When enabled, tourism tax is included in displayed prices. Whether the applicable tourism tax is also shown as a separate line depends on the settings below.'), + 'validation' => 'isBool', + 'cast' => 'intval', + 'type' => 'bool', + ); + + $this->fields_options['general']['fields']['QLO_TOURISM_TAX_SHOW_SEPARATE'] = array( + 'title' => $this->l('Show tourism tax separately in price summary'), + 'desc' => $this->l('When enabled, tourism tax is shown as its own line, separate from the room/service tax, on the cart summary, order confirmation, and order detail pages.'), + 'validation' => 'isBool', + 'cast' => 'intval', + 'type' => 'bool', + ); + + $this->fields_options['general']['fields']['QLO_TOURISM_TAX_SHOW_SEPARATE_DOCS'] = array( + 'title' => $this->l('Show tourism tax separately on invoices / booking vouchers'), + 'desc' => $this->l('When enabled, tourism tax is shown as its own line, separate from the room/service tax, on the invoice and booking voucher totals.'), + 'validation' => 'isBool', + 'cast' => 'intval', + 'type' => 'bool', + ); parent::__construct(); @@ -1134,8 +1148,8 @@ class AdminTaxesControllerCore extends AdminController parent::setMedia(); if ($this->display == 'edit' || $this->display == 'add') { $this->addCSS(_MODULE_DIR_ . 'hotelreservationsystem/views/css/HotelReservationAdmin.css'); - $this->addJs(_MODULE_DIR_ . 'hotelreservationsystem/views/js/TourismTaxForm.js'); } + $this->addJs(_PS_JS_DIR_ . 'admin/tourism_tax_form.js'); } /** diff --git a/controllers/admin/AdminThemesController.php b/controllers/admin/AdminThemesController.php index 45ff88ae5..6d340fefc 100644 --- a/controllers/admin/AdminThemesController.php +++ b/controllers/admin/AdminThemesController.php @@ -48,7 +48,7 @@ class AdminThemesControllerCore extends AdminController /** * Multidimensional array used to check [theme]/config.xml values, - * and also checks prestashop current configuration if not match. + * and also checks QloApps current configuration if not match. * * @var array */ @@ -58,7 +58,7 @@ class AdminThemesControllerCore extends AdminController 'available' => array( 'value' => 'true', /* - * accepted attribute value if value doesn't match, prestashop configuration value must have those values + * accepted attribute value if value doesn't match, QloApps configuration value must have those values */ 'check_if_not_valid' => array( 'PS_CSS_THEME_CACHE' => 0, @@ -68,7 +68,7 @@ class AdminThemesControllerCore extends AdminController ), ), ), - 'error' => 'This theme may not correctly use PrestaShop\'s "combine, compress and cache" options.', + 'error' => 'This theme may not correctly use QloApps "combine, compress and cache" options.', 'tab' => 'AdminPerformance', ), 'guest_checkout' => array( @@ -78,7 +78,7 @@ class AdminThemesControllerCore extends AdminController 'check_if_not_valid' => array('PS_GUEST_CHECKOUT_ENABLED' => 0) ), ), - 'error' => 'This theme may not correctly use PrestaShop\'s "guest checkout" feature.', + 'error' => 'This theme may not correctly use QloApps "guest checkout" feature.', 'tab' => 'AdminPreferences', ), 'one_page_checkout' => array( @@ -88,7 +88,7 @@ class AdminThemesControllerCore extends AdminController 'check_if_not_valid' => array('PS_ORDER_PROCESS_TYPE' => 0), ), ), - 'error' => 'This theme may not correctly use PrestaShop\'s "one-page checkout" feature.', + 'error' => 'This theme may not correctly use QloApps "one-page checkout" feature.', 'tab' => 'AdminPreferences', ), 'store_locator' => array( @@ -101,7 +101,7 @@ class AdminThemesControllerCore extends AdminController ), ) ), - 'error' => 'This theme may not correctly use PrestaShop\'s "store locator" feature.', + 'error' => 'This theme may not correctly use QloApps "store locator" feature.', 'tab' => 'AdminStores', ) ); @@ -377,7 +377,7 @@ class AdminThemesControllerCore extends AdminController 'label' => $this->l('Name of the theme\'s directory'), 'name' => 'directory', 'required' => true, - 'hint' => $this->l('If the directory does not exist, PrestaShop will create it automatically.'), + 'hint' => $this->l('If the directory does not exist, QloApps will create it automatically.'), ); $theme_query = Theme::getThemes(); @@ -963,7 +963,7 @@ class AdminThemesControllerCore extends AdminController private function generateXML($theme_to_export, $metas) { - $theme = new SimpleXMLElement(''); + $theme = new SimpleXMLElement(''); $theme->addAttribute('version', Tools::getValue('theme_version')); $theme->addAttribute('name', Tools::htmlentitiesUTF8(Tools::getValue('theme_name'))); $theme->addAttribute('directory', Tools::htmlentitiesUTF8(Tools::getValue('theme_directory'))); @@ -1930,18 +1930,6 @@ class AdminThemesControllerCore extends AdminController } } - public function ajaxProcessGetAddonsThemes() - { - $parent_domain = Tools::getHttpHost(true).substr($_SERVER['REQUEST_URI'], 0, -1 * strlen(basename($_SERVER['REQUEST_URI']))); - $iso_lang = $this->context->language->iso_code; - $iso_currency = $this->context->currency->iso_code; - $iso_country = $this->context->country->iso_code; - $activity = Configuration::get('PS_SHOP_ACTIVITY'); - $addons_url = 'http://addons.prestashop.com/iframe/search-1.6.php?psVersion='._PS_VERSION_.'&onlyThemes=1&isoLang='.$iso_lang.'&isoCurrency='.$iso_currency.'&isoCountry='.$iso_country.'&activity='.(int)$activity.'&parentUrl='.$parent_domain; - - die(Tools::file_get_contents($addons_url)); - } - /** * This function checks if the theme designer has thunk to make his theme compatible 1.4, * and noticed it on the $theme_dir/config.xml file. If not, some new functionnalities has diff --git a/controllers/admin/AdminWebserviceController.php b/controllers/admin/AdminWebserviceController.php index 08f86468d..8f9d4b0b0 100644 --- a/controllers/admin/AdminWebserviceController.php +++ b/controllers/admin/AdminWebserviceController.php @@ -280,17 +280,17 @@ class AdminWebserviceControllerCore extends AdminController if (function_exists('apache_get_modules')) { $apache_modules = apache_get_modules(); if (!in_array('mod_auth_basic', $apache_modules)) { - $this->warnings[] = $this->l('Please activate the \'mod_auth_basic\' Apache module to allow authentication of PrestaShop\'s webservice.'); + $this->warnings[] = $this->l('Please activate the \'mod_auth_basic\' Apache module to allow authentication of QloApps\'s webservice.'); } if (!in_array('mod_rewrite', $apache_modules)) { - $this->warnings[] = $this->l('Please activate the \'mod_rewrite\' Apache module to allow the PrestaShop webservice.'); + $this->warnings[] = $this->l('Please activate the \'mod_rewrite\' Apache module to allow the QloApps webservice.'); } } else { - $this->warnings[] = $this->l('We could not check to see if basic authentication and rewrite extensions have been activated. Please manually check if they\'ve been activated in order to use the PrestaShop webservice.'); + $this->warnings[] = $this->l('We could not check to see if basic authentication and rewrite extensions have been activated. Please manually check if they\'ve been activated in order to use the QloApps webservice.'); } } if (!extension_loaded('SimpleXML')) { - $this->warnings[] = $this->l('Please activate the \'SimpleXML\' PHP extension to allow testing of PrestaShop\'s webservice.'); + $this->warnings[] = $this->l('Please activate the \'SimpleXML\' PHP extension to allow testing of QloApps\'s webservice.'); } if (!configuration::get('PS_SSL_ENABLED')) { $this->warnings[] = $this->l('It is preferable to use SSL (https:) for webservice calls, as it avoids the "man in the middle" type security issues.'); diff --git a/controllers/front/CartController.php b/controllers/front/CartController.php index deb20807d..afb25f0c4 100644 --- a/controllers/front/CartController.php +++ b/controllers/front/CartController.php @@ -180,20 +180,10 @@ class CartControllerCore extends FrontController } } else { $idProductOption = Tools::getValue('id_product_option', null); - if ($product->selling_preference_type == Product::SELLING_PREFERENCE_STANDALONE) { - $objServiceProductCartDetail = new ServiceProductCartDetail(); - $result = $objServiceProductCartDetail->removeCartServiceProduct( - $this->context->cart->id, - $this->id_product, - false, - false, - false, - $idProductOption ? $idProductOption : null - ); + $canSellWithHotel = Product::isSellableWithHotel($product->id); + $canSellStandalone = Product::isSellableAsStandalone($product->id); - } elseif ($product->selling_preference_type == Product::SELLING_PREFERENCE_HOTEL_STANDALONE - || $product->selling_preference_type == Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE - ) { + if ($canSellWithHotel && $this->id_hotel) { $objServiceProductCartDetail = new ServiceProductCartDetail(); $result = $objServiceProductCartDetail->removeCartServiceProduct( @@ -204,6 +194,16 @@ class CartControllerCore extends FrontController false, $idProductOption ? $idProductOption : null ); + } elseif ($canSellStandalone) { + $objServiceProductCartDetail = new ServiceProductCartDetail(); + $result = $objServiceProductCartDetail->removeCartServiceProduct( + $this->context->cart->id, + $this->id_product, + false, + false, + false, + $idProductOption ? $idProductOption : null + ); } } @@ -481,7 +481,52 @@ class CartControllerCore extends FrontController } else { $objHotelCartBookingData = new HotelCartBookingData(); $idProductOption = Tools::getValue('id_product_option'); - if ($product->selling_preference_type == Product::SELLING_PREFERENCE_STANDALONE) { + $id_hotel = (int) Tools::getValue('id_hotel'); + $canSellWithHotel = Product::isSellableWithHotel($product->id); + $canSellStandalone = Product::isSellableAsStandalone($product->id); + + if ($canSellWithHotel && $id_hotel) { + if ($operator == 'up') { + $objServiceProductCartDetail = new ServiceProductCartDetail(); + $productCartDetail = array(); + if ($id_cart) { + if ($cartDetail = $objServiceProductCartDetail->getServiceProductsInCart( + (int) $id_cart, + [$product->selling_preference_type], + $id_hotel, + null, + null, + $this->id_product + )) { + $productCartDetail = array_shift($cartDetail); + } + } + if ($product->allow_multiple_quantity) { + $finalQuantity = $this->qty; + if (isset($productCartDetail) && $productCartDetail) { + $quantityInCart = Cart::getProductQtyInCart( + $id_cart, + $this->id_product + ); + $finalQuantity += $quantityInCart; + } + if ($product->max_quantity && $finalQuantity > $product->max_quantity) { + $this->errors[] = Tools::displayError(sprintf('You cannot add more than %d quantity for this product in the cart.', $product->max_quantity)); + } + } elseif ($productCartDetail) { + $this->errors[] = Tools::displayError('You can only order one quantity for this product.'); + } + if (ServiceProductOption::productHasOptions($this->id_product)) { + if (!$idProductOption) { + $this->errors[] = Tools::displayError('Cannot add product without a option.'); + } else { + if (!ServiceProductOption::productHasOptions($this->id_product, $idProductOption)) { + $this->errors[] = Tools::displayError('The selected option is not available.'); + } + } + } + } + } elseif ($canSellStandalone) { // if can be added without room type then we can directly add product in cart. if ($operator == 'up') { if ($product->allow_multiple_quantity) { @@ -515,50 +560,8 @@ class CartControllerCore extends FrontController } } } - } elseif ($product->selling_preference_type == Product::SELLING_PREFERENCE_HOTEL_STANDALONE - || $product->selling_preference_type == Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE - ) { - $id_hotel = Tools::getValue('id_hotel'); - if ($operator == 'up') { - if ($id_hotel) { - $objServiceProductCartDetail = new ServiceProductCartDetail(); - $productCartDetail = array(); - if ($id_cart) { - if ($cartDetail = $objServiceProductCartDetail->getServiceProductsInCart( - (int) $id_cart, - [$product->selling_preference_type], - $id_hotel, - null, - null, - $this->id_product - )) { - $productCartDetail = array_shift($cartDetail); - } - } - if ($product->allow_multiple_quantity) { - $finalQuantity = $this->qty; - if (isset($productCartDetail) && $productCartDetail) { - $finalQuantity += $productCartDetail['quantity']; - } - if ($product->max_quantity && $finalQuantity > $product->max_quantity) { - $this->errors[] = Tools::displayError(sprintf('You cannot add more than %d quantity for this product in the cart.', $product->max_quantity)); - } - } elseif ($productCartDetail) { - $this->errors[] = Tools::displayError('You can only order one quantity for this product.'); - } - if (ServiceProductOption::productHasOptions($this->id_product)) { - if (!$idProductOption) { - $this->errors[] = Tools::displayError('Cannot add product without a option.'); - } else { - if (!ServiceProductOption::productHasOptions($this->id_product, $idProductOption)) { - $this->errors[] = Tools::displayError('The selected option is not available.'); - } - } - } - } else { - $this->errors[] = Tools::displayError('Cannot add product without a hotel.'); - } - } + } elseif ($canSellWithHotel) { + $this->errors[] = Tools::displayError('Cannot add product without a hotel.'); } else { $this->errors[] = Tools::displayError('Can not add product without room in cart'); } @@ -583,22 +586,24 @@ class CartControllerCore extends FrontController } } - // Check product quantity availability - if ($this->id_product_attribute) { - if (!Product::isAvailableWhenOutOfStock($product->out_of_stock) && !ProductAttribute::checkAttributeQty($this->id_product_attribute, $qty_to_check)) { + // Check product quantity availability only when no earlier validation error exists + if (!$this->errors) { + if ($this->id_product_attribute) { + if (!Product::isAvailableWhenOutOfStock($product->out_of_stock) && !ProductAttribute::checkAttributeQty($this->id_product_attribute, $qty_to_check)) { + $this->errors[] = Tools::displayError('There isn\'t enough product in stock.', !Tools::getValue('ajax')); + } + } elseif ($product->hasAttributes()) { + $minimumQuantity = ($product->out_of_stock == 2) ? !Configuration::get('PS_ORDER_OUT_OF_STOCK') : !$product->out_of_stock; + $this->id_product_attribute = Product::getDefaultAttribute($product->id, $minimumQuantity); + // @todo do something better than a redirect admin !! + if (!$this->id_product_attribute) { + Tools::redirectAdmin($this->context->link->getProductLink($product)); + } elseif (!Product::isAvailableWhenOutOfStock($product->out_of_stock) && !ProductAttribute::checkAttributeQty($this->id_product_attribute, $qty_to_check)) { + $this->errors[] = Tools::displayError('There isn\'t enough product in stock.', !Tools::getValue('ajax')); + } + } elseif (!$product->checkQty($qty_to_check)) { $this->errors[] = Tools::displayError('There isn\'t enough product in stock.', !Tools::getValue('ajax')); } - } elseif ($product->hasAttributes()) { - $minimumQuantity = ($product->out_of_stock == 2) ? !Configuration::get('PS_ORDER_OUT_OF_STOCK') : !$product->out_of_stock; - $this->id_product_attribute = Product::getDefaultAttribute($product->id, $minimumQuantity); - // @todo do something better than a redirect admin !! - if (!$this->id_product_attribute) { - Tools::redirectAdmin($this->context->link->getProductLink($product)); - } elseif (!Product::isAvailableWhenOutOfStock($product->out_of_stock) && !ProductAttribute::checkAttributeQty($this->id_product_attribute, $qty_to_check)) { - $this->errors[] = Tools::displayError('There isn\'t enough product in stock.', !Tools::getValue('ajax')); - } - } elseif (!$product->checkQty($qty_to_check)) { - $this->errors[] = Tools::displayError('There isn\'t enough product in stock.', !Tools::getValue('ajax')); } // If no errors, process product addition @@ -655,8 +660,9 @@ class CartControllerCore extends FrontController $availQty = $total_available_rooms + $req_rm; } $this->context->cookie->avail_rooms = $availQty; - } elseif ($product->selling_preference_type == Product::SELLING_PREFERENCE_HOTEL_STANDALONE - || $product->selling_preference_type == Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE + } elseif ( + Product::isSellableWithHotel($product->id) + && $id_hotel ) { $objServiceProductCartDetail = new ServiceProductCartDetail(); $update_quantity = $objServiceProductCartDetail->updateCartServiceProduct( @@ -676,15 +682,15 @@ class CartControllerCore extends FrontController 'id_product_option' => isset($idProductOption) ? $idProductOption : null )); } - } elseif ($product->selling_preference_type == Product::SELLING_PREFERENCE_STANDALONE) { + } elseif (Product::isSellableAsStandalone($product->id)) { $objServiceProductCartDetail = new ServiceProductCartDetail(); $update_quantity = $objServiceProductCartDetail->updateCartServiceProduct( $this->context->cart->id, $this->id_product, $operator, $this->qty, - false, - false, + 0, + 0, isset($idProductOption) ? $idProductOption : null ); if ($operator == 'up') { @@ -766,8 +772,20 @@ class CartControllerCore extends FrontController if ($objProduct->allow_multiple_quantity) { if (!Validate::isUnsignedInt($qty)) { $this->errors[] = Tools::displayError('The quantity you\'ve entered is invalid.'); - } elseif ($objProduct->max_quantity && $qty > $objProduct->max_quantity) { - $this->errors[] = Tools::displayError(sprintf('cannot add more than %d quantity.', $objProduct->max_quantity)); + } else { + $cartTotalQty = Cart::getProductQtyInCart((int)$this->context->cart->id,(int)$idServiceProduct); + $numDays = Product::getServicePriceBillableDays( + $objProduct->price_calculation_method, + $objHotelCartBookingData->date_from, + $objHotelCartBookingData->date_to + ); + $currentQty = $qty * $numDays; + $finalQty = (int)$cartTotalQty + $currentQty; + if ($objProduct->max_quantity && $finalQty > $objProduct->max_quantity) { + $this->errors[] = Tools::displayError(sprintf('cannot add more than %d quantity.', $objProduct->max_quantity)); + } else if (!Product::isAvailableWhenOutOfStock($objProduct->out_of_stock) && !$objProduct->checkQty($finalQty)) { + $this->errors[] = Tools::displayError('There isn\'t enough product in stock.'); + } } } else { $qty = 1; diff --git a/controllers/front/GuestTrackingController.php b/controllers/front/GuestTrackingController.php index 5583a2bf0..62885ecb6 100644 --- a/controllers/front/GuestTrackingController.php +++ b/controllers/front/GuestTrackingController.php @@ -121,6 +121,7 @@ class GuestTrackingControllerCore extends FrontController && ($dateFrom = Tools::getValue('date_from')) && ($dateTo = Tools::getValue('date_to')) ) { + $objRoomType = new HotelRoomType(); $useTax = 0; if (Group::getPriceDisplayMethod($this->context->customer->id_default_group) == PS_TAX_INC) { $useTax = 1; @@ -144,8 +145,10 @@ class GuestTrackingControllerCore extends FrontController )); } + $roomTypeInfo = $objRoomType->getRoomTypeInfoByIdProduct($idProduct); $this->context->smarty->assign(array( 'objOrder' => new Order($idOrder), + 'room_type_info' => $roomTypeInfo, )); $response['extra_services'] = $this->context->smarty->fetch(_PS_THEME_DIR_.'_partials/order-extra-services.tpl'); @@ -280,6 +283,12 @@ class GuestTrackingControllerCore extends FrontController $cartHotelData[$type_key]['id_product'] = $type_value['product_id']; $cartHotelData[$type_key]['cover_img'] = $cover_img; + // Prefer the name stored at order-creation time so it stays historically accurate + if (!empty($order_bk_data[0]['selling_object_name'])) { + $cartHotelData[$type_key]['selling_object_name'] = $order_bk_data[0]['selling_object_name']; + $cartHotelData[$type_key]['selling_object_plural_name'] = $order_bk_data[0]['selling_object_plural_name']; + } + foreach ($order_bk_data as $data_k => $data_v) { $date_join = strtotime($data_v['date_from']).strtotime($data_v['date_to']); @@ -449,7 +458,7 @@ class GuestTrackingControllerCore extends FrontController $value['avg_price_diff_tax_excl'] = abs(Tools::ps_round($value['avg_paid_unit_price_tax_excl'] - $value['product_price_tax_excl'], 6)); $value['avg_price_diff_tax_incl'] = abs(Tools::ps_round($value['avg_paid_unit_price_tax_incl'] - $value['product_price_tax_incl'], 6)); } - } elseif ($type_value['selling_preference_type'] == Product::SELLING_PREFERENCE_WITH_ROOM_TYPE) { + } elseif (Product::SELLING_PREFERENCE_WITH_ROOM_TYPE == $type_value['selling_preference_type']) { if ($type_value['product_auto_add'] && $type_value['product_price_addition_type'] == Product::PRICE_ADDITION_TYPE_INDEPENDENT) { $total_convenience_fee_ti += $objServiceProductOrderDetail->getRoomTypeServiceProducts( $idOrder, @@ -476,7 +485,7 @@ class GuestTrackingControllerCore extends FrontController 1 ); } - } else if ($type_value['selling_preference_type'] == Product::SELLING_PREFERENCE_HOTEL_STANDALONE) { + } else if (Product::SELLING_PREFERENCE_WITH_HOTEL == $type_value['selling_preference_type']) { $cover_image_arr = $product->getCover($type_value['product_id']); if (!empty($cover_image_arr)) { @@ -488,7 +497,7 @@ class GuestTrackingControllerCore extends FrontController foreach ($hotelProducts as $hotelProduct) { $hotelServiceProducts[] = array_merge($type_value, $hotelProduct); } - } else if ($type_value['selling_preference_type'] == Product::SELLING_PREFERENCE_STANDALONE) { + } else if (Product::SELLING_PREFERENCE_WITH_STANDALONE == $type_value['selling_preference_type']) { $cover_image_arr = $product->getCover($type_value['product_id']); if (!empty($cover_image_arr)) { @@ -538,6 +547,7 @@ class GuestTrackingControllerCore extends FrontController $order->obj_hotel_branch_information = $objHotelBranchInformation; $order->hotel_address_info = $hotelAddressInfo; $order->hotel_refund_rules = $hotelRefundRules; + $order->property_type = $objHotelBranchInformation ? $objHotelBranchInformation->propertyTypeName : null; //end Hook::exec('actionOrderDetail', array('carrier' => $order->carrier, 'order' => $order)); @@ -557,6 +567,7 @@ class GuestTrackingControllerCore extends FrontController 'guestInformations' => (array)$customer, 'view_on_map' => Configuration::get('WK_GOOGLE_ACTIVE_MAP'), 'total_tourism_tax' => isset($total_tourism_tax) ? $total_tourism_tax : 0, + 'show_tourism_tax_separately' => (bool) Configuration::get('QLO_TOURISM_TAX_SHOW_SEPARATE'), )); } diff --git a/controllers/front/OrderConfirmationController.php b/controllers/front/OrderConfirmationController.php index 074b69f0a..cd3de3304 100644 --- a/controllers/front/OrderConfirmationController.php +++ b/controllers/front/OrderConfirmationController.php @@ -182,6 +182,12 @@ class OrderConfirmationControllerCore extends FrontController $cart_htl_data[$type_key]['adults'] = $rm_dtl['adults']; $cart_htl_data[$type_key]['children'] = $rm_dtl['children']; + // Prefer the name stored at order-creation time so it stays historically accurate + if (!empty($order_bk_data[0]['selling_object_name'])) { + $cart_htl_data[$type_key]['selling_object_name'] = $order_bk_data[0]['selling_object_name']; + $cart_htl_data[$type_key]['selling_object_plural_name'] = $order_bk_data[0]['selling_object_plural_name']; + } + foreach ($order_bk_data as $data_k => $data_v) { $date_join = strtotime($data_v['date_from']).strtotime($data_v['date_to']); /*Product price when order was created*/ @@ -325,7 +331,7 @@ class OrderConfirmationControllerCore extends FrontController $totalRoomsBooked += 1; } - } else if ($type_value['selling_preference_type'] == Product::SELLING_PREFERENCE_HOTEL_STANDALONE) { + } else if ($type_value['selling_preference_type'] == Product::SELLING_PREFERENCE_WITH_HOTEL) { $cover_image_arr = $product->getCover($type_value['product_id']); if (!empty($cover_image_arr)) { @@ -348,7 +354,7 @@ class OrderConfirmationControllerCore extends FrontController } $cart_hotel_service_products[] = $type_value; } - } else if ($type_value['selling_preference_type'] == Product::SELLING_PREFERENCE_STANDALONE) { + } else if ($type_value['selling_preference_type'] == Product::SELLING_PREFERENCE_WITH_STANDALONE) { $cover_image_arr = $product->getCover($type_value['product_id']); if (!empty($cover_image_arr)) { @@ -378,8 +384,8 @@ class OrderConfirmationControllerCore extends FrontController if (!$objCartOrder->hasInvoice()) { $orders_has_invoice = 0; } - $orderTotalInfo['total_standalone_products_ti'] += ($objCartOrder->getTotalProductsWithTaxes(false, false, Product::SELLING_PREFERENCE_HOTEL_STANDALONE)+$objCartOrder->getTotalProductsWithTaxes(false, false, Product::SELLING_PREFERENCE_STANDALONE)); - $orderTotalInfo['total_standalone_products_te'] += ($objCartOrder->getTotalProductsWithoutTaxes(false, false, Product::SELLING_PREFERENCE_HOTEL_STANDALONE)+$objCartOrder->getTotalProductsWithoutTaxes(false, false, Product::SELLING_PREFERENCE_STANDALONE)); + $orderTotalInfo['total_standalone_products_ti'] += ($objCartOrder->getTotalProductsWithTaxes(false, false, Product::SELLING_PREFERENCE_WITH_HOTEL)+$objCartOrder->getTotalProductsWithTaxes(false, false, Product::SELLING_PREFERENCE_WITH_STANDALONE)); + $orderTotalInfo['total_standalone_products_te'] += ($objCartOrder->getTotalProductsWithoutTaxes(false, false, Product::SELLING_PREFERENCE_WITH_HOTEL)+$objCartOrder->getTotalProductsWithoutTaxes(false, false, Product::SELLING_PREFERENCE_WITH_STANDALONE)); $orderTotalInfo['total_wrapping'] += $objCartOrder->total_wrapping; $orderTotalInfo['total_rooms_te'] += $objCartOrder->getTotalProductsWithoutTaxes(false, true); $orderTotalInfo['total_rooms_ti'] += $objCartOrder->getTotalProductsWithTaxes(false, true); @@ -409,6 +415,7 @@ class OrderConfirmationControllerCore extends FrontController } } + $orderTotalInfo['show_tourism_tax_separately'] = (bool) Configuration::get('QLO_TOURISM_TAX_SHOW_SEPARATE'); $this->context->smarty->assign('orderTotalInfo', $orderTotalInfo); $this->context->smarty->assign('orders_has_invoice', $orders_has_invoice); } @@ -439,6 +446,7 @@ class OrderConfirmationControllerCore extends FrontController $this->setTemplate(_PS_THEME_DIR_.'order-confirmation.tpl'); } + /** * Execute the hook displayPaymentReturn */ diff --git a/controllers/front/OrderDetailController.php b/controllers/front/OrderDetailController.php index 2df858bb0..3b954dbc8 100644 --- a/controllers/front/OrderDetailController.php +++ b/controllers/front/OrderDetailController.php @@ -130,6 +130,13 @@ class OrderDetailControllerCore extends FrontController $cartHotelData[$type_key]['id_product'] = $type_value['product_id']; $cartHotelData[$type_key]['cover_img'] = $type_value['cover_img']; + // Prefer the name stored at order-creation time so it stays historically accurate + if (!empty($order_bk_data[0]['selling_object_name'])) { + $cartHotelData[$type_key]['selling_object_name'] = $order_bk_data[0]['selling_object_name']; + $cartHotelData[$type_key]['selling_object_plural_name'] = $order_bk_data[0]['selling_object_plural_name']; + } + + foreach ($order_bk_data as $data_k => $data_v) { $date_join = strtotime($data_v['date_from']).strtotime($data_v['date_to']); @@ -321,7 +328,7 @@ class OrderDetailControllerCore extends FrontController $value['avg_price_diff_tax_excl'] = abs(Tools::ps_round($value['avg_paid_unit_price_tax_excl'] - $value['product_price_tax_excl'], 6)); $value['avg_price_diff_tax_incl'] = abs(Tools::ps_round($value['avg_paid_unit_price_tax_incl'] - $value['product_price_tax_incl'], 6)); } - } else if ($type_value['selling_preference_type'] == Product::SELLING_PREFERENCE_WITH_ROOM_TYPE) { + } else if (Product::SELLING_PREFERENCE_WITH_ROOM_TYPE ==$type_value['selling_preference_type']) { if ($type_value['product_auto_add'] && $type_value['product_price_addition_type'] == Product::PRICE_ADDITION_TYPE_INDEPENDENT) { $total_convenience_fee_ti += $objServiceProductOrderDetail->getRoomTypeServiceProducts( $id_order, @@ -348,7 +355,7 @@ class OrderDetailControllerCore extends FrontController 1 ); } - } else if ($type_value['selling_preference_type'] == Product::SELLING_PREFERENCE_HOTEL_STANDALONE) { + } else if (Product::SELLING_PREFERENCE_WITH_HOTEL == $type_value['selling_preference_type']) { $hotelProducts = $objServiceProductOrderDetail->getServiceProductsInOrder($id_order, $type_value['id_order_detail'], $type_value['product_id']); foreach ($hotelProducts as $hotelProduct) { $hotelServiceProducts[] = array_merge($type_value, $hotelProduct); @@ -367,7 +374,7 @@ class OrderDetailControllerCore extends FrontController } $serviceProductsFormatted[$hotelProduct['id_product']]['options'][] = $hotelProduct; } - } else if ($type_value['selling_preference_type'] == Product::SELLING_PREFERENCE_STANDALONE) { + } else if (Product::SELLING_PREFERENCE_WITH_STANDALONE == $type_value['selling_preference_type']) { $standaloneProducts = $objServiceProductOrderDetail->getServiceProductsInOrder($id_order, $type_value['id_order_detail'], $type_value['product_id']); foreach ($standaloneProducts as $standaloneProduct) { $standaloneServiceProducts[] = array_merge($type_value, $standaloneProduct); @@ -394,6 +401,7 @@ class OrderDetailControllerCore extends FrontController 'total_convenience_fee_ti' => $total_convenience_fee_ti, 'total_convenience_fee_te' => $total_convenience_fee_te, 'total_tourism_tax' => $totalTourismTax, + 'show_tourism_tax_separately' => (bool) Configuration::get('QLO_TOURISM_TAX_SHOW_SEPARATE'), 'any_back_order' => $anyBackOrder, 'shw_bo_msg' => Configuration::get('WK_SHOW_MSG_ON_BO'), 'back_ord_msg' => Configuration::get('WK_BO_MESSAGE'), @@ -410,10 +418,13 @@ class OrderDetailControllerCore extends FrontController if ($idHotel = $addressTax->id_hotel) { $objHotelBranchInformation = new HotelBranchInformation($idHotel, $this->context->language->id); $hotelAddressInfo = HotelBranchInformation::getAddress($idHotel); + // Prefer the name stored at order-creation time so it stays historically accurate $objHotelBranchRefundRules = new HotelBranchRefundRules(); $hotelRefundRules = $objHotelBranchRefundRules->getHotelRefundRules($idHotel, 0, 1); + $order->property_type = $objHotelBranchInformation->propertyTypeName; $this->context->smarty->assign(array( 'obj_hotel_branch_information' => $objHotelBranchInformation, + 'property_type' => $objHotelBranchInformation->propertyTypeName, 'hotel_address_info' => $hotelAddressInfo, 'hotel_refund_rules' => $hotelRefundRules, )); @@ -501,6 +512,8 @@ class OrderDetailControllerCore extends FrontController && ($dateFrom = Tools::getValue('date_from')) && ($dateTo = Tools::getValue('date_to')) ) { + + $objRoomType = new HotelRoomType(); $useTax = 0; if (Group::getPriceDisplayMethod($this->context->customer->id_default_group) == PS_TAX_INC) { $useTax = 1; @@ -525,8 +538,10 @@ class OrderDetailControllerCore extends FrontController )); } + $roomTypeInfo = $objRoomType->getRoomTypeInfoByIdProduct($idProduct); $this->context->smarty->assign(array( - 'objOrder' => $order, + 'objOrder' => new Order($idOrder), + 'room_type_info' => $roomTypeInfo, )); $response['extra_services'] = $this->context->smarty->fetch(_PS_THEME_DIR_.'_partials/order-extra-services.tpl'); diff --git a/controllers/front/OrderOpcController.php b/controllers/front/OrderOpcController.php index a5aa6a352..1e7de5921 100644 --- a/controllers/front/OrderOpcController.php +++ b/controllers/front/OrderOpcController.php @@ -413,6 +413,7 @@ class OrderOpcControllerCore extends ParentOrderController } else { $this->addJS(_THEME_MOBILE_JS_DIR_.'opc.js'); } + $this->addJqueryUI(array('ui.tooltip'), 'base', true); $this->addJS(array( _THEME_JS_DIR_.'tools/statesManagement.js', @@ -945,6 +946,7 @@ class OrderOpcControllerCore extends ParentOrderController && ($dateTo = Tools::getValue('date_to')) ) { $objCartBookingData = new HotelCartBookingData(); + $objRoomType = new HotelRoomType(); $objServiceProductCartDetail = new ServiceProductCartDetail(); $objRoomTypeServiceProduct = new RoomTypeServiceProduct(); $roomTypeServiceProducts = $objRoomTypeServiceProduct->getServiceProductsData($idProduct, 1, 0, true, 1); @@ -987,10 +989,13 @@ class OrderOpcControllerCore extends ParentOrderController ? $availableServicePricing[$cartBookingData['id']] : array(); } + + $roomTypeInfo = $objRoomType->getRoomTypeInfoByIdProduct($idProduct); unset($cartBookingData); $this->context->smarty->assign(array( 'roomTypeServiceProducts' => $roomTypeServiceProducts, - 'cartRooms' => $cartBookings + 'cartRooms' => $cartBookings, + 'room_type_info' => $roomTypeInfo )); } } diff --git a/controllers/front/ParentOrderController.php b/controllers/front/ParentOrderController.php index e49dfc4ae..3fa526a22 100644 --- a/controllers/front/ParentOrderController.php +++ b/controllers/front/ParentOrderController.php @@ -322,9 +322,15 @@ class ParentOrderControllerCore extends FrontController $this->context->smarty->assign('cart_htl_data', $cartBookingInfo); } $objServiceProductCartDetail = new ServiceProductCartDetail(); + $hotelSellingPreferences = [ + Product::SELLING_PREFERENCE_WITH_HOTEL, + Product::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_ROOM_TYPE, + Product::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_STANDALONE, + Product::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_ROOM_TYPE_AND_WITH_STANDALONE, + ]; if ($hotelProducts = $objServiceProductCartDetail->getServiceProductsInCart( $this->context->cart->id, - [Product::SELLING_PREFERENCE_HOTEL_STANDALONE, Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE], + $hotelSellingPreferences, $idHotel = null, 0, null, @@ -337,12 +343,25 @@ class ParentOrderControllerCore extends FrontController null, 1 )) { - $this->context->smarty->assign('hotel_products', $hotelProducts); + $hotelProducts = array_values(array_filter($hotelProducts, function ($product) { + return !empty($product['id_hotel']); + })); + if (!empty($hotelProducts)) { + $this->context->smarty->assign('hotel_products', $hotelProducts); + } } + $standaloneSellingPreferences = [ + Product::SELLING_PREFERENCE_WITH_STANDALONE, + Product::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_STANDALONE, + Product::SELLING_PREFERENCE_WITH_STANDALONE_AND_WITH_ROOM_TYPE, + Product::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_ROOM_TYPE_AND_WITH_STANDALONE, + ]; $standaloneProducts = $objServiceProductCartDetail->getServiceProductsInCart( $this->context->cart->id, - [Product::SELLING_PREFERENCE_STANDALONE] + $standaloneSellingPreferences, + 0, + 0 ); foreach ($standaloneProducts as &$standaloneProduct) { @@ -387,6 +406,7 @@ class ParentOrderControllerCore extends FrontController } } $this->context->smarty->assign($summary); + $this->context->smarty->assign('show_tourism_tax_separately', (bool) Configuration::get('QLO_TOURISM_TAX_SHOW_SEPARATE')); $this->context->smarty->assign(array( 'HOOK_SHOPPING_CART' => Hook::exec('displayShoppingCartFooter', $summary), 'HOOK_SHOPPING_CART_EXTRA' => Hook::exec('displayShoppingCart', $summary) @@ -457,6 +477,7 @@ class ParentOrderControllerCore extends FrontController } $this->context->smarty->assign($summary); + $this->context->smarty->assign('show_tourism_tax_separately', (bool) Configuration::get('QLO_TOURISM_TAX_SHOW_SEPARATE')); $this->context->smarty->assign(array( 'token_cart' => Tools::getToken(false), 'isLogged' => $this->isLogged, @@ -488,9 +509,17 @@ class ParentOrderControllerCore extends FrontController Tools::redirect(''); } elseif (!Customer::getAddressesTotalById($this->context->customer->id)) { $objServiceProductCartDetail = new ServiceProductCartDetail(); + $standaloneSellingPreferences = [ + Product::SELLING_PREFERENCE_WITH_STANDALONE, + Product::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_STANDALONE, + Product::SELLING_PREFERENCE_WITH_STANDALONE_AND_WITH_ROOM_TYPE, + Product::SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_ROOM_TYPE_AND_WITH_STANDALONE, + ]; if (count($objServiceProductCartDetail->getServiceProductsInCart( $this->context->cart->id, - [Product::SELLING_PREFERENCE_STANDALONE] + $standaloneSellingPreferences, + 0, + 0 ))) { $multi = (int)Tools::getValue('multi-shipping'); Tools::redirect('index.php?controller=address&back='.urlencode('order.php?step=1'.($multi ? '&multi-shipping='.$multi : ''))); diff --git a/controllers/front/ProductController.php b/controllers/front/ProductController.php index 22c89bba8..b13fe9db7 100644 --- a/controllers/front/ProductController.php +++ b/controllers/front/ProductController.php @@ -40,6 +40,7 @@ class ProductControllerCore extends FrontController if (count($this->errors)) { return; } + $this->addJqueryUI(array('ui.tooltip'), 'base', true); if (!$this->useMobileTheme()) { $this->addCSS(_THEME_CSS_DIR_.'product.css'); @@ -138,10 +139,14 @@ class ProductControllerCore extends FrontController // if product is a service product then check type of selling preference if (!$this->product->booking_product) { - if ($this->product->selling_preference_type == Product::SELLING_PREFERENCE_WITH_ROOM_TYPE) { + if ( + Product::isSellableWithRoomType($this->product->id) + && !Product::isSellableWithHotel($this->product->id) + && !Product::isSellableAsStandalone($this->product->id) + ) { Tools::redirect($this->context->link->getPageLink('pagenotfound')); - } elseif ($this->product->selling_preference_type == Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE) { - // if selling preference is hotel standalone and with room type then check if product is associated to any hotel + } elseif (Product::isSellableWithHotel($this->product->id)) { + // For any hotel-sellable service product, ensure hotel associations exist. $objRoomTypeServiceProduct = new RoomTypeServiceProduct(); $associatedHotels = $objRoomTypeServiceProduct->getAssociatedHotelsAndRoomType($this->product->id); if (!isset($associatedHotels['hotel']) || !$associatedHotels['hotel']) { @@ -338,15 +343,15 @@ class ProductControllerCore extends FrontController /*By webkul To send All needed Hotel Information on product.tpl*/ ##################################################################### - $htl_features = array(); + $htl_features = array(); $obj_hotel_room_type = new HotelRoomType(); $room_info_by_product_id = $obj_hotel_room_type->getRoomTypeInfoByIdProduct($this->product->id); if ($hotel_id = $room_info_by_product_id['id_hotel']) { - $obj_hotel_branch = new HotelBranchInformation(); + $obj_hotel_branch = new HotelBranchInformation($hotel_id); $hotel_info_by_id = $obj_hotel_branch->hotelBranchesInfo(false, 2, 1, $hotel_id); $hotel_policies = $hotel_info_by_id['policies']; $hotel_name = $hotel_info_by_id['hotel_name']; - + $propertyType = $obj_hotel_branch->propertyTypeName; $addressInfo = HotelBranchInformation::getAddress($room_info_by_product_id['id_hotel']); $hotel_location = $addressInfo['city']. ($addressInfo['id_state']?', '.$addressInfo['state']:'').', '.$addressInfo['country']; @@ -431,6 +436,7 @@ class ProductControllerCore extends FrontController 'hotel_rating' => $hotel_info_by_id['rating'], 'hotel_description' => $hotel_info_by_id['description'], 'hotel_policies' => $hotel_policies, + 'property_type' => $propertyType, 'hotel_features' => $htl_features, 'room_type_features' => $roomFeatures, 'room_dynamic_amenities' => $roomAmenities, @@ -897,12 +903,13 @@ class ProductControllerCore extends FrontController public function assignServiceProductVars( $idProductOption = false, $quantity = 1, - $idHotel = false + $idHotel = false, + $buying_option = false ) { $smartyVars = array(); - if (Product::SELLING_PREFERENCE_HOTEL_STANDALONE == $this->product->selling_preference_type - || Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE == $this->product->selling_preference_type - ) { + $smartyVars['sellable_with_hotel'] = Product::isSellableWithHotel($this->product->id); + $smartyVars['sellable_as_standalone'] = Product::isSellableAsStandalone($this->product->id); + if (Product::isSellableWithHotel($this->product->id)) { $objRoomTypeServiceProduct = new RoomTypeServiceProduct(); if ($associatedHotels = $objRoomTypeServiceProduct->getAssociatedHotelsAndRoomType($this->product->id)['hotel']) { @@ -925,6 +932,9 @@ class ProductControllerCore extends FrontController if ($idHotel) { $smartyVars['service_id_hotel'] = $idHotel; } + if($buying_option) { + $smartyVars['buying_option'] = $buying_option; + } $useTax = HotelBookingDetail::useTax(); $includeTourismTax = $useTax && Configuration::get('QLO_TOURISM_TAX_GROSSED_UP'); $objServiceProductOption = new ServiceProductOption(); @@ -1489,13 +1499,15 @@ class ProductControllerCore extends FrontController )) { } } else { - $idHotel = Tools::getValue('id_hotel'); + $idHotel = Tools::getValue('service_id_hotel'); + $buying_option = Tools::getValue('buying_option'); $id_product_option = Tools::getValue('id_product_option'); $quantity = Tools::getValue('qty'); $this->assignServiceProductVars( $id_product_option, $quantity, - $idHotel + $idHotel, + $buying_option ); } diff --git a/install/classes/controllerConsole.php b/install-dev/classes/controllerConsole.php similarity index 100% rename from install/classes/controllerConsole.php rename to install-dev/classes/controllerConsole.php diff --git a/install/classes/controllerHttp.php b/install-dev/classes/controllerHttp.php similarity index 100% rename from install/classes/controllerHttp.php rename to install-dev/classes/controllerHttp.php diff --git a/install/classes/datas.php b/install-dev/classes/datas.php similarity index 100% rename from install/classes/datas.php rename to install-dev/classes/datas.php diff --git a/install/classes/exception.php b/install-dev/classes/exception.php similarity index 100% rename from install/classes/exception.php rename to install-dev/classes/exception.php diff --git a/install/classes/index.php b/install-dev/classes/index.php similarity index 100% rename from install/classes/index.php rename to install-dev/classes/index.php diff --git a/install/classes/language.php b/install-dev/classes/language.php similarity index 100% rename from install/classes/language.php rename to install-dev/classes/language.php diff --git a/install/classes/languages.php b/install-dev/classes/languages.php similarity index 100% rename from install/classes/languages.php rename to install-dev/classes/languages.php diff --git a/install/classes/model.php b/install-dev/classes/model.php similarity index 100% rename from install/classes/model.php rename to install-dev/classes/model.php diff --git a/install/classes/session.php b/install-dev/classes/session.php similarity index 100% rename from install/classes/session.php rename to install-dev/classes/session.php diff --git a/install/classes/simplexml.php b/install-dev/classes/simplexml.php similarity index 100% rename from install/classes/simplexml.php rename to install-dev/classes/simplexml.php diff --git a/install/classes/sqlLoader.php b/install-dev/classes/sqlLoader.php similarity index 100% rename from install/classes/sqlLoader.php rename to install-dev/classes/sqlLoader.php diff --git a/install/classes/xmlLoader.php b/install-dev/classes/xmlLoader.php similarity index 100% rename from install/classes/xmlLoader.php rename to install-dev/classes/xmlLoader.php diff --git a/install/controllers/console/index.php b/install-dev/controllers/console/index.php similarity index 100% rename from install/controllers/console/index.php rename to install-dev/controllers/console/index.php diff --git a/install/controllers/console/process.php b/install-dev/controllers/console/process.php similarity index 100% rename from install/controllers/console/process.php rename to install-dev/controllers/console/process.php diff --git a/install/controllers/http/configure.php b/install-dev/controllers/http/configure.php similarity index 100% rename from install/controllers/http/configure.php rename to install-dev/controllers/http/configure.php diff --git a/install/controllers/http/database.php b/install-dev/controllers/http/database.php similarity index 100% rename from install/controllers/http/database.php rename to install-dev/controllers/http/database.php diff --git a/install/controllers/http/index.php b/install-dev/controllers/http/index.php similarity index 100% rename from install/controllers/http/index.php rename to install-dev/controllers/http/index.php diff --git a/install/controllers/http/license.php b/install-dev/controllers/http/license.php similarity index 100% rename from install/controllers/http/license.php rename to install-dev/controllers/http/license.php diff --git a/install/controllers/http/process.php b/install-dev/controllers/http/process.php similarity index 100% rename from install/controllers/http/process.php rename to install-dev/controllers/http/process.php diff --git a/install/controllers/http/smarty_compile.php b/install-dev/controllers/http/smarty_compile.php similarity index 100% rename from install/controllers/http/smarty_compile.php rename to install-dev/controllers/http/smarty_compile.php diff --git a/install/controllers/http/system.php b/install-dev/controllers/http/system.php similarity index 100% rename from install/controllers/http/system.php rename to install-dev/controllers/http/system.php diff --git a/install/controllers/http/welcome.php b/install-dev/controllers/http/welcome.php similarity index 100% rename from install/controllers/http/welcome.php rename to install-dev/controllers/http/welcome.php diff --git a/install/controllers/index.php b/install-dev/controllers/index.php similarity index 100% rename from install/controllers/index.php rename to install-dev/controllers/index.php diff --git a/install/data/db_structure.sql b/install-dev/data/db_structure.sql similarity index 99% rename from install/data/db_structure.sql rename to install-dev/data/db_structure.sql index 4504c819d..f253ba3ff 100644 --- a/install/data/db_structure.sql +++ b/install-dev/data/db_structure.sql @@ -1652,6 +1652,7 @@ CREATE TABLE `PREFIX_product` ( `cache_has_attachments` tinyint(1) NOT NULL DEFAULT '0', `is_virtual` tinyint(1) NOT NULL DEFAULT '0', `booking_product` tinyint(1) NOT NULL DEFAULT '1', + `id_selling_object` int(10) unsigned DEFAULT NULL, `cache_default_attribute` int(10) unsigned DEFAULT NULL, `date_add` datetime NOT NULL, `date_upd` datetime NOT NULL, @@ -2903,3 +2904,19 @@ CREATE TABLE IF NOT EXISTS `PREFIX_maintenance_access` ( `date_add` datetime NOT NULL, PRIMARY KEY (`id_maintenance_access`) ) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `PREFIX_room_type_selling_object` ( + `id_room_type_selling_object` int(10) unsigned NOT NULL AUTO_INCREMENT, + `active` tinyint(1) unsigned NOT NULL DEFAULT '1', + `date_add` datetime NOT NULL, + `date_upd` datetime NOT NULL, + PRIMARY KEY (`id_room_type_selling_object`) +) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `PREFIX_room_type_selling_object_lang` ( + `id_room_type_selling_object` int(10) unsigned NOT NULL, + `id_lang` int(10) unsigned NOT NULL, + `name` varchar(255) NOT NULL, + `plural_name` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id_room_type_selling_object`, `id_lang`) +) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8; diff --git a/install/data/img/genders/Mr.jpg b/install-dev/data/img/genders/Mr.jpg similarity index 100% rename from install/data/img/genders/Mr.jpg rename to install-dev/data/img/genders/Mr.jpg diff --git a/install/data/img/genders/Mrs.jpg b/install-dev/data/img/genders/Mrs.jpg similarity index 100% rename from install/data/img/genders/Mrs.jpg rename to install-dev/data/img/genders/Mrs.jpg diff --git a/install/data/img/genders/Unknown.jpg b/install-dev/data/img/genders/Unknown.jpg similarity index 100% rename from install/data/img/genders/Unknown.jpg rename to install-dev/data/img/genders/Unknown.jpg diff --git a/install/data/img/genders/index.php b/install-dev/data/img/genders/index.php similarity index 100% rename from install/data/img/genders/index.php rename to install-dev/data/img/genders/index.php diff --git a/install/data/img/index.php b/install-dev/data/img/index.php similarity index 100% rename from install/data/img/index.php rename to install-dev/data/img/index.php diff --git a/install/data/img/os/Awaiting_payment.gif b/install-dev/data/img/os/Awaiting_payment.gif similarity index 100% rename from install/data/img/os/Awaiting_payment.gif rename to install-dev/data/img/os/Awaiting_payment.gif diff --git a/install/data/img/os/Awaiting_remote_payment.gif b/install-dev/data/img/os/Awaiting_remote_payment.gif similarity index 100% rename from install/data/img/os/Awaiting_remote_payment.gif rename to install-dev/data/img/os/Awaiting_remote_payment.gif diff --git a/install/data/img/os/Canceled.gif b/install-dev/data/img/os/Canceled.gif similarity index 100% rename from install/data/img/os/Canceled.gif rename to install-dev/data/img/os/Canceled.gif diff --git a/install/data/img/os/No_show.gif b/install-dev/data/img/os/No_show.gif similarity index 100% rename from install/data/img/os/No_show.gif rename to install-dev/data/img/os/No_show.gif diff --git a/install/data/img/os/Overbooking_paid.gif b/install-dev/data/img/os/Overbooking_paid.gif similarity index 100% rename from install/data/img/os/Overbooking_paid.gif rename to install-dev/data/img/os/Overbooking_paid.gif diff --git a/install/data/img/os/Overbooking_partial_paid.gif b/install-dev/data/img/os/Overbooking_partial_paid.gif similarity index 100% rename from install/data/img/os/Overbooking_partial_paid.gif rename to install-dev/data/img/os/Overbooking_partial_paid.gif diff --git a/install/data/img/os/Overbooking_unpaid.gif b/install-dev/data/img/os/Overbooking_unpaid.gif similarity index 100% rename from install/data/img/os/Overbooking_unpaid.gif rename to install-dev/data/img/os/Overbooking_unpaid.gif diff --git a/install/data/img/os/Partial_payment_accepted.gif b/install-dev/data/img/os/Partial_payment_accepted.gif similarity index 100% rename from install/data/img/os/Partial_payment_accepted.gif rename to install-dev/data/img/os/Partial_payment_accepted.gif diff --git a/install/data/img/os/Payment_accepted.gif b/install-dev/data/img/os/Payment_accepted.gif similarity index 100% rename from install/data/img/os/Payment_accepted.gif rename to install-dev/data/img/os/Payment_accepted.gif diff --git a/install/data/img/os/Payment_error.gif b/install-dev/data/img/os/Payment_error.gif similarity index 100% rename from install/data/img/os/Payment_error.gif rename to install-dev/data/img/os/Payment_error.gif diff --git a/install/data/img/os/Payment_remotely_accepted.gif b/install-dev/data/img/os/Payment_remotely_accepted.gif similarity index 100% rename from install/data/img/os/Payment_remotely_accepted.gif rename to install-dev/data/img/os/Payment_remotely_accepted.gif diff --git a/install/data/img/os/Processing_in_progress.gif b/install-dev/data/img/os/Processing_in_progress.gif similarity index 100% rename from install/data/img/os/Processing_in_progress.gif rename to install-dev/data/img/os/Processing_in_progress.gif diff --git a/install/data/img/os/Refund.gif b/install-dev/data/img/os/Refund.gif similarity index 100% rename from install/data/img/os/Refund.gif rename to install-dev/data/img/os/Refund.gif diff --git a/install/data/img/os/index.php b/install-dev/data/img/os/index.php similarity index 100% rename from install/data/img/os/index.php rename to install-dev/data/img/os/index.php diff --git a/install/data/index.php b/install-dev/data/index.php similarity index 100% rename from install/data/index.php rename to install-dev/data/index.php diff --git a/install/data/iso_to_timezone.xml b/install-dev/data/iso_to_timezone.xml similarity index 100% rename from install/data/iso_to_timezone.xml rename to install-dev/data/iso_to_timezone.xml diff --git a/install/data/theme.sql b/install-dev/data/theme.sql similarity index 100% rename from install/data/theme.sql rename to install-dev/data/theme.sql diff --git a/install/data/xml/address_format.xml b/install-dev/data/xml/address_format.xml similarity index 100% rename from install/data/xml/address_format.xml rename to install-dev/data/xml/address_format.xml diff --git a/install/data/xml/business_source.xml b/install-dev/data/xml/business_source.xml similarity index 100% rename from install/data/xml/business_source.xml rename to install-dev/data/xml/business_source.xml diff --git a/install/data/xml/category.xml b/install-dev/data/xml/category.xml similarity index 100% rename from install/data/xml/category.xml rename to install-dev/data/xml/category.xml diff --git a/install/data/xml/category_group.xml b/install-dev/data/xml/category_group.xml similarity index 100% rename from install/data/xml/category_group.xml rename to install-dev/data/xml/category_group.xml diff --git a/install/data/xml/cms.xml b/install-dev/data/xml/cms.xml similarity index 100% rename from install/data/xml/cms.xml rename to install-dev/data/xml/cms.xml diff --git a/install/data/xml/cms_category.xml b/install-dev/data/xml/cms_category.xml similarity index 100% rename from install/data/xml/cms_category.xml rename to install-dev/data/xml/cms_category.xml diff --git a/install/data/xml/configuration.xml b/install-dev/data/xml/configuration.xml similarity index 98% rename from install/data/xml/configuration.xml rename to install-dev/data/xml/configuration.xml index b5cb8b5c2..6c7728f25 100644 --- a/install/data/xml/configuration.xml +++ b/install-dev/data/xml/configuration.xml @@ -994,6 +994,18 @@ 5 + + + 0 + + + 0 + + + 1 + + + 1 diff --git a/install/data/xml/contact.xml b/install-dev/data/xml/contact.xml similarity index 100% rename from install/data/xml/contact.xml rename to install-dev/data/xml/contact.xml diff --git a/install/data/xml/country.xml b/install-dev/data/xml/country.xml similarity index 100% rename from install/data/xml/country.xml rename to install-dev/data/xml/country.xml diff --git a/install/data/xml/gender.xml b/install-dev/data/xml/gender.xml similarity index 100% rename from install/data/xml/gender.xml rename to install-dev/data/xml/gender.xml diff --git a/install/data/xml/group.xml b/install-dev/data/xml/group.xml similarity index 100% rename from install/data/xml/group.xml rename to install-dev/data/xml/group.xml diff --git a/install/data/xml/hook.xml b/install-dev/data/xml/hook.xml similarity index 100% rename from install/data/xml/hook.xml rename to install-dev/data/xml/hook.xml diff --git a/install/data/xml/hook_alias.xml b/install-dev/data/xml/hook_alias.xml similarity index 100% rename from install/data/xml/hook_alias.xml rename to install-dev/data/xml/hook_alias.xml diff --git a/install/data/xml/image_type.xml b/install-dev/data/xml/image_type.xml similarity index 100% rename from install/data/xml/image_type.xml rename to install-dev/data/xml/image_type.xml diff --git a/install/data/xml/index.php b/install-dev/data/xml/index.php similarity index 100% rename from install/data/xml/index.php rename to install-dev/data/xml/index.php diff --git a/install/data/xml/meta.xml b/install-dev/data/xml/meta.xml similarity index 100% rename from install/data/xml/meta.xml rename to install-dev/data/xml/meta.xml diff --git a/install/data/xml/operating_system.xml b/install-dev/data/xml/operating_system.xml similarity index 100% rename from install/data/xml/operating_system.xml rename to install-dev/data/xml/operating_system.xml diff --git a/install/data/xml/order_return_state.xml b/install-dev/data/xml/order_return_state.xml similarity index 100% rename from install/data/xml/order_return_state.xml rename to install-dev/data/xml/order_return_state.xml diff --git a/install/data/xml/order_state.xml b/install-dev/data/xml/order_state.xml similarity index 100% rename from install/data/xml/order_state.xml rename to install-dev/data/xml/order_state.xml diff --git a/install/data/xml/profile.xml b/install-dev/data/xml/profile.xml similarity index 100% rename from install/data/xml/profile.xml rename to install-dev/data/xml/profile.xml diff --git a/install/data/xml/quick_access.xml b/install-dev/data/xml/quick_access.xml similarity index 100% rename from install/data/xml/quick_access.xml rename to install-dev/data/xml/quick_access.xml diff --git a/install/data/xml/risk.xml b/install-dev/data/xml/risk.xml similarity index 100% rename from install/data/xml/risk.xml rename to install-dev/data/xml/risk.xml diff --git a/install/data/xml/search_engine.xml b/install-dev/data/xml/search_engine.xml similarity index 100% rename from install/data/xml/search_engine.xml rename to install-dev/data/xml/search_engine.xml diff --git a/install/data/xml/source.xml b/install-dev/data/xml/source.xml similarity index 100% rename from install/data/xml/source.xml rename to install-dev/data/xml/source.xml diff --git a/install/data/xml/state.xml b/install-dev/data/xml/state.xml similarity index 100% rename from install/data/xml/state.xml rename to install-dev/data/xml/state.xml diff --git a/install/data/xml/stock_mvt_reason.xml b/install-dev/data/xml/stock_mvt_reason.xml similarity index 100% rename from install/data/xml/stock_mvt_reason.xml rename to install-dev/data/xml/stock_mvt_reason.xml diff --git a/install/data/xml/supply_order_state.xml b/install-dev/data/xml/supply_order_state.xml similarity index 100% rename from install/data/xml/supply_order_state.xml rename to install-dev/data/xml/supply_order_state.xml diff --git a/install/data/xml/tab.xml b/install-dev/data/xml/tab.xml similarity index 98% rename from install/data/xml/tab.xml rename to install-dev/data/xml/tab.xml index 538da95e3..49eddfe55 100644 --- a/install/data/xml/tab.xml +++ b/install-dev/data/xml/tab.xml @@ -84,9 +84,9 @@ AdminFeatures - + + AdminRoomTypeSellingObjects + diff --git a/install/data/xml/theme.xml b/install-dev/data/xml/theme.xml similarity index 100% rename from install/data/xml/theme.xml rename to install-dev/data/xml/theme.xml diff --git a/install/data/xml/theme_meta.xml b/install-dev/data/xml/theme_meta.xml similarity index 100% rename from install/data/xml/theme_meta.xml rename to install-dev/data/xml/theme_meta.xml diff --git a/install/data/xml/timezone.xml b/install-dev/data/xml/timezone.xml similarity index 100% rename from install/data/xml/timezone.xml rename to install-dev/data/xml/timezone.xml diff --git a/install/data/xml/warehouse.xml b/install-dev/data/xml/warehouse.xml similarity index 100% rename from install/data/xml/warehouse.xml rename to install-dev/data/xml/warehouse.xml diff --git a/install/data/xml/web_browser.xml b/install-dev/data/xml/web_browser.xml similarity index 100% rename from install/data/xml/web_browser.xml rename to install-dev/data/xml/web_browser.xml diff --git a/install/data/xml/zone.xml b/install-dev/data/xml/zone.xml similarity index 100% rename from install/data/xml/zone.xml rename to install-dev/data/xml/zone.xml diff --git a/install/dev/index.php b/install-dev/dev/index.php similarity index 100% rename from install/dev/index.php rename to install-dev/dev/index.php diff --git a/install/dev/index.phtml b/install-dev/dev/index.phtml similarity index 100% rename from install/dev/index.phtml rename to install-dev/dev/index.phtml diff --git a/install/dev/style.css b/install-dev/dev/style.css similarity index 100% rename from install/dev/style.css rename to install-dev/dev/style.css diff --git a/install/dev/translate.php b/install-dev/dev/translate.php similarity index 100% rename from install/dev/translate.php rename to install-dev/dev/translate.php diff --git a/install/dev/update_eu_taxrulegroups.php b/install-dev/dev/update_eu_taxrulegroups.php similarity index 100% rename from install/dev/update_eu_taxrulegroups.php rename to install-dev/dev/update_eu_taxrulegroups.php diff --git a/install/fixtures/fashion/data/address.xml b/install-dev/fixtures/fashion/data/address.xml similarity index 100% rename from install/fixtures/fashion/data/address.xml rename to install-dev/fixtures/fashion/data/address.xml diff --git a/install/fixtures/fashion/data/alias.xml b/install-dev/fixtures/fashion/data/alias.xml similarity index 100% rename from install/fixtures/fashion/data/alias.xml rename to install-dev/fixtures/fashion/data/alias.xml diff --git a/install/fixtures/fashion/data/connections.xml b/install-dev/fixtures/fashion/data/connections.xml similarity index 100% rename from install/fixtures/fashion/data/connections.xml rename to install-dev/fixtures/fashion/data/connections.xml diff --git a/install/fixtures/fashion/data/customer.xml b/install-dev/fixtures/fashion/data/customer.xml similarity index 100% rename from install/fixtures/fashion/data/customer.xml rename to install-dev/fixtures/fashion/data/customer.xml diff --git a/install/fixtures/fashion/data/guest.xml b/install-dev/fixtures/fashion/data/guest.xml similarity index 100% rename from install/fixtures/fashion/data/guest.xml rename to install-dev/fixtures/fashion/data/guest.xml diff --git a/install/fixtures/fashion/data/index.php b/install-dev/fixtures/fashion/data/index.php similarity index 100% rename from install/fixtures/fashion/data/index.php rename to install-dev/fixtures/fashion/data/index.php diff --git a/install/fixtures/fashion/img/c/Blouses-category_default.jpg b/install-dev/fixtures/fashion/img/c/Blouses-category_default.jpg similarity index 100% rename from install/fixtures/fashion/img/c/Blouses-category_default.jpg rename to install-dev/fixtures/fashion/img/c/Blouses-category_default.jpg diff --git a/install/fixtures/fashion/img/c/Blouses-medium_default.jpg b/install-dev/fixtures/fashion/img/c/Blouses-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/c/Blouses-medium_default.jpg rename to install-dev/fixtures/fashion/img/c/Blouses-medium_default.jpg diff --git a/install/fixtures/fashion/img/c/Blouses.jpg b/install-dev/fixtures/fashion/img/c/Blouses.jpg similarity index 100% rename from install/fixtures/fashion/img/c/Blouses.jpg rename to install-dev/fixtures/fashion/img/c/Blouses.jpg diff --git a/install/fixtures/fashion/img/c/Casual_Dresses-category_default.jpg b/install-dev/fixtures/fashion/img/c/Casual_Dresses-category_default.jpg similarity index 100% rename from install/fixtures/fashion/img/c/Casual_Dresses-category_default.jpg rename to install-dev/fixtures/fashion/img/c/Casual_Dresses-category_default.jpg diff --git a/install/fixtures/fashion/img/c/Casual_Dresses-medium_default.jpg b/install-dev/fixtures/fashion/img/c/Casual_Dresses-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/c/Casual_Dresses-medium_default.jpg rename to install-dev/fixtures/fashion/img/c/Casual_Dresses-medium_default.jpg diff --git a/install/fixtures/fashion/img/c/Casual_Dresses.jpg b/install-dev/fixtures/fashion/img/c/Casual_Dresses.jpg similarity index 100% rename from install/fixtures/fashion/img/c/Casual_Dresses.jpg rename to install-dev/fixtures/fashion/img/c/Casual_Dresses.jpg diff --git a/install/fixtures/fashion/img/c/Dresses-category_default.jpg b/install-dev/fixtures/fashion/img/c/Dresses-category_default.jpg similarity index 100% rename from install/fixtures/fashion/img/c/Dresses-category_default.jpg rename to install-dev/fixtures/fashion/img/c/Dresses-category_default.jpg diff --git a/install/fixtures/fashion/img/c/Dresses-medium_default.jpg b/install-dev/fixtures/fashion/img/c/Dresses-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/c/Dresses-medium_default.jpg rename to install-dev/fixtures/fashion/img/c/Dresses-medium_default.jpg diff --git a/install/fixtures/fashion/img/c/Dresses.jpg b/install-dev/fixtures/fashion/img/c/Dresses.jpg similarity index 100% rename from install/fixtures/fashion/img/c/Dresses.jpg rename to install-dev/fixtures/fashion/img/c/Dresses.jpg diff --git a/install/fixtures/fashion/img/c/Evening_Dresses-category_default.jpg b/install-dev/fixtures/fashion/img/c/Evening_Dresses-category_default.jpg similarity index 100% rename from install/fixtures/fashion/img/c/Evening_Dresses-category_default.jpg rename to install-dev/fixtures/fashion/img/c/Evening_Dresses-category_default.jpg diff --git a/install/fixtures/fashion/img/c/Evening_Dresses-medium_default.jpg b/install-dev/fixtures/fashion/img/c/Evening_Dresses-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/c/Evening_Dresses-medium_default.jpg rename to install-dev/fixtures/fashion/img/c/Evening_Dresses-medium_default.jpg diff --git a/install/fixtures/fashion/img/c/Evening_Dresses.jpg b/install-dev/fixtures/fashion/img/c/Evening_Dresses.jpg similarity index 100% rename from install/fixtures/fashion/img/c/Evening_Dresses.jpg rename to install-dev/fixtures/fashion/img/c/Evening_Dresses.jpg diff --git a/install/fixtures/fashion/img/c/Summer_Dresses-category_default.jpg b/install-dev/fixtures/fashion/img/c/Summer_Dresses-category_default.jpg similarity index 100% rename from install/fixtures/fashion/img/c/Summer_Dresses-category_default.jpg rename to install-dev/fixtures/fashion/img/c/Summer_Dresses-category_default.jpg diff --git a/install/fixtures/fashion/img/c/Summer_Dresses-medium_default.jpg b/install-dev/fixtures/fashion/img/c/Summer_Dresses-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/c/Summer_Dresses-medium_default.jpg rename to install-dev/fixtures/fashion/img/c/Summer_Dresses-medium_default.jpg diff --git a/install/fixtures/fashion/img/c/Summer_Dresses.jpg b/install-dev/fixtures/fashion/img/c/Summer_Dresses.jpg similarity index 100% rename from install/fixtures/fashion/img/c/Summer_Dresses.jpg rename to install-dev/fixtures/fashion/img/c/Summer_Dresses.jpg diff --git a/install/fixtures/fashion/img/c/T-shirts-category_default.jpg b/install-dev/fixtures/fashion/img/c/T-shirts-category_default.jpg similarity index 100% rename from install/fixtures/fashion/img/c/T-shirts-category_default.jpg rename to install-dev/fixtures/fashion/img/c/T-shirts-category_default.jpg diff --git a/install/fixtures/fashion/img/c/T-shirts-medium_default.jpg b/install-dev/fixtures/fashion/img/c/T-shirts-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/c/T-shirts-medium_default.jpg rename to install-dev/fixtures/fashion/img/c/T-shirts-medium_default.jpg diff --git a/install/fixtures/fashion/img/c/T-shirts.jpg b/install-dev/fixtures/fashion/img/c/T-shirts.jpg similarity index 100% rename from install/fixtures/fashion/img/c/T-shirts.jpg rename to install-dev/fixtures/fashion/img/c/T-shirts.jpg diff --git a/install/fixtures/fashion/img/c/Tops-category_default.jpg b/install-dev/fixtures/fashion/img/c/Tops-category_default.jpg similarity index 100% rename from install/fixtures/fashion/img/c/Tops-category_default.jpg rename to install-dev/fixtures/fashion/img/c/Tops-category_default.jpg diff --git a/install/fixtures/fashion/img/c/Tops-medium_default.jpg b/install-dev/fixtures/fashion/img/c/Tops-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/c/Tops-medium_default.jpg rename to install-dev/fixtures/fashion/img/c/Tops-medium_default.jpg diff --git a/install/fixtures/fashion/img/c/Tops.jpg b/install-dev/fixtures/fashion/img/c/Tops.jpg similarity index 100% rename from install/fixtures/fashion/img/c/Tops.jpg rename to install-dev/fixtures/fashion/img/c/Tops.jpg diff --git a/install/fixtures/fashion/img/c/Tops_1-category_default.jpg b/install-dev/fixtures/fashion/img/c/Tops_1-category_default.jpg similarity index 100% rename from install/fixtures/fashion/img/c/Tops_1-category_default.jpg rename to install-dev/fixtures/fashion/img/c/Tops_1-category_default.jpg diff --git a/install/fixtures/fashion/img/c/Tops_1-medium_default.jpg b/install-dev/fixtures/fashion/img/c/Tops_1-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/c/Tops_1-medium_default.jpg rename to install-dev/fixtures/fashion/img/c/Tops_1-medium_default.jpg diff --git a/install/fixtures/fashion/img/c/Tops_1.jpg b/install-dev/fixtures/fashion/img/c/Tops_1.jpg similarity index 100% rename from install/fixtures/fashion/img/c/Tops_1.jpg rename to install-dev/fixtures/fashion/img/c/Tops_1.jpg diff --git a/install/fixtures/fashion/img/c/Women-category_default.jpg b/install-dev/fixtures/fashion/img/c/Women-category_default.jpg similarity index 100% rename from install/fixtures/fashion/img/c/Women-category_default.jpg rename to install-dev/fixtures/fashion/img/c/Women-category_default.jpg diff --git a/install/fixtures/fashion/img/c/Women-medium_default.jpg b/install-dev/fixtures/fashion/img/c/Women-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/c/Women-medium_default.jpg rename to install-dev/fixtures/fashion/img/c/Women-medium_default.jpg diff --git a/install/fixtures/fashion/img/c/Women.jpg b/install-dev/fixtures/fashion/img/c/Women.jpg similarity index 100% rename from install/fixtures/fashion/img/c/Women.jpg rename to install-dev/fixtures/fashion/img/c/Women.jpg diff --git a/install/fixtures/fashion/img/c/index.php b/install-dev/fixtures/fashion/img/c/index.php similarity index 100% rename from install/fixtures/fashion/img/c/index.php rename to install-dev/fixtures/fashion/img/c/index.php diff --git a/install/fixtures/fashion/img/c/resize.php b/install-dev/fixtures/fashion/img/c/resize.php similarity index 100% rename from install/fixtures/fashion/img/c/resize.php rename to install-dev/fixtures/fashion/img/c/resize.php diff --git a/install/fixtures/fashion/img/index.php b/install-dev/fixtures/fashion/img/index.php similarity index 100% rename from install/fixtures/fashion/img/index.php rename to install-dev/fixtures/fashion/img/index.php diff --git a/install/fixtures/fashion/img/m/Fashion_Manufacturer-large_default.jpg b/install-dev/fixtures/fashion/img/m/Fashion_Manufacturer-large_default.jpg similarity index 100% rename from install/fixtures/fashion/img/m/Fashion_Manufacturer-large_default.jpg rename to install-dev/fixtures/fashion/img/m/Fashion_Manufacturer-large_default.jpg diff --git a/install/fixtures/fashion/img/m/Fashion_Manufacturer-medium_default.jpg b/install-dev/fixtures/fashion/img/m/Fashion_Manufacturer-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/m/Fashion_Manufacturer-medium_default.jpg rename to install-dev/fixtures/fashion/img/m/Fashion_Manufacturer-medium_default.jpg diff --git a/install/fixtures/fashion/img/m/Fashion_Manufacturer-small_default.jpg b/install-dev/fixtures/fashion/img/m/Fashion_Manufacturer-small_default.jpg similarity index 100% rename from install/fixtures/fashion/img/m/Fashion_Manufacturer-small_default.jpg rename to install-dev/fixtures/fashion/img/m/Fashion_Manufacturer-small_default.jpg diff --git a/install/fixtures/fashion/img/m/Fashion_Manufacturer.jpg b/install-dev/fixtures/fashion/img/m/Fashion_Manufacturer.jpg similarity index 100% rename from install/fixtures/fashion/img/m/Fashion_Manufacturer.jpg rename to install-dev/fixtures/fashion/img/m/Fashion_Manufacturer.jpg diff --git a/install/fixtures/fashion/img/m/index.php b/install-dev/fixtures/fashion/img/m/index.php similarity index 100% rename from install/fixtures/fashion/img/m/index.php rename to install-dev/fixtures/fashion/img/m/index.php diff --git a/install/fixtures/fashion/img/p/image_1-cart_default.jpg b/install-dev/fixtures/fashion/img/p/image_1-cart_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_1-cart_default.jpg rename to install-dev/fixtures/fashion/img/p/image_1-cart_default.jpg diff --git a/install/fixtures/fashion/img/p/image_1-home_default.jpg b/install-dev/fixtures/fashion/img/p/image_1-home_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_1-home_default.jpg rename to install-dev/fixtures/fashion/img/p/image_1-home_default.jpg diff --git a/install/fixtures/fashion/img/p/image_1-large_default.jpg b/install-dev/fixtures/fashion/img/p/image_1-large_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_1-large_default.jpg rename to install-dev/fixtures/fashion/img/p/image_1-large_default.jpg diff --git a/install/fixtures/fashion/img/p/image_1-medium_default.jpg b/install-dev/fixtures/fashion/img/p/image_1-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_1-medium_default.jpg rename to install-dev/fixtures/fashion/img/p/image_1-medium_default.jpg diff --git a/install/fixtures/fashion/img/p/image_1-small_default.jpg b/install-dev/fixtures/fashion/img/p/image_1-small_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_1-small_default.jpg rename to install-dev/fixtures/fashion/img/p/image_1-small_default.jpg diff --git a/install/fixtures/fashion/img/p/image_1-thickbox_default.jpg b/install-dev/fixtures/fashion/img/p/image_1-thickbox_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_1-thickbox_default.jpg rename to install-dev/fixtures/fashion/img/p/image_1-thickbox_default.jpg diff --git a/install/fixtures/fashion/img/p/image_1.jpg b/install-dev/fixtures/fashion/img/p/image_1.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_1.jpg rename to install-dev/fixtures/fashion/img/p/image_1.jpg diff --git a/install/fixtures/fashion/img/p/image_10-cart_default.jpg b/install-dev/fixtures/fashion/img/p/image_10-cart_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_10-cart_default.jpg rename to install-dev/fixtures/fashion/img/p/image_10-cart_default.jpg diff --git a/install/fixtures/fashion/img/p/image_10-home_default.jpg b/install-dev/fixtures/fashion/img/p/image_10-home_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_10-home_default.jpg rename to install-dev/fixtures/fashion/img/p/image_10-home_default.jpg diff --git a/install/fixtures/fashion/img/p/image_10-large_default.jpg b/install-dev/fixtures/fashion/img/p/image_10-large_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_10-large_default.jpg rename to install-dev/fixtures/fashion/img/p/image_10-large_default.jpg diff --git a/install/fixtures/fashion/img/p/image_10-medium_default.jpg b/install-dev/fixtures/fashion/img/p/image_10-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_10-medium_default.jpg rename to install-dev/fixtures/fashion/img/p/image_10-medium_default.jpg diff --git a/install/fixtures/fashion/img/p/image_10-small_default.jpg b/install-dev/fixtures/fashion/img/p/image_10-small_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_10-small_default.jpg rename to install-dev/fixtures/fashion/img/p/image_10-small_default.jpg diff --git a/install/fixtures/fashion/img/p/image_10-thickbox_default.jpg b/install-dev/fixtures/fashion/img/p/image_10-thickbox_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_10-thickbox_default.jpg rename to install-dev/fixtures/fashion/img/p/image_10-thickbox_default.jpg diff --git a/install/fixtures/fashion/img/p/image_10.jpg b/install-dev/fixtures/fashion/img/p/image_10.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_10.jpg rename to install-dev/fixtures/fashion/img/p/image_10.jpg diff --git a/install/fixtures/fashion/img/p/image_11-cart_default.jpg b/install-dev/fixtures/fashion/img/p/image_11-cart_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_11-cart_default.jpg rename to install-dev/fixtures/fashion/img/p/image_11-cart_default.jpg diff --git a/install/fixtures/fashion/img/p/image_11-home_default.jpg b/install-dev/fixtures/fashion/img/p/image_11-home_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_11-home_default.jpg rename to install-dev/fixtures/fashion/img/p/image_11-home_default.jpg diff --git a/install/fixtures/fashion/img/p/image_11-large_default.jpg b/install-dev/fixtures/fashion/img/p/image_11-large_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_11-large_default.jpg rename to install-dev/fixtures/fashion/img/p/image_11-large_default.jpg diff --git a/install/fixtures/fashion/img/p/image_11-medium_default.jpg b/install-dev/fixtures/fashion/img/p/image_11-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_11-medium_default.jpg rename to install-dev/fixtures/fashion/img/p/image_11-medium_default.jpg diff --git a/install/fixtures/fashion/img/p/image_11-small_default.jpg b/install-dev/fixtures/fashion/img/p/image_11-small_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_11-small_default.jpg rename to install-dev/fixtures/fashion/img/p/image_11-small_default.jpg diff --git a/install/fixtures/fashion/img/p/image_11-thickbox_default.jpg b/install-dev/fixtures/fashion/img/p/image_11-thickbox_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_11-thickbox_default.jpg rename to install-dev/fixtures/fashion/img/p/image_11-thickbox_default.jpg diff --git a/install/fixtures/fashion/img/p/image_11.jpg b/install-dev/fixtures/fashion/img/p/image_11.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_11.jpg rename to install-dev/fixtures/fashion/img/p/image_11.jpg diff --git a/install/fixtures/fashion/img/p/image_12-cart_default.jpg b/install-dev/fixtures/fashion/img/p/image_12-cart_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_12-cart_default.jpg rename to install-dev/fixtures/fashion/img/p/image_12-cart_default.jpg diff --git a/install/fixtures/fashion/img/p/image_12-home_default.jpg b/install-dev/fixtures/fashion/img/p/image_12-home_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_12-home_default.jpg rename to install-dev/fixtures/fashion/img/p/image_12-home_default.jpg diff --git a/install/fixtures/fashion/img/p/image_12-large_default.jpg b/install-dev/fixtures/fashion/img/p/image_12-large_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_12-large_default.jpg rename to install-dev/fixtures/fashion/img/p/image_12-large_default.jpg diff --git a/install/fixtures/fashion/img/p/image_12-medium_default.jpg b/install-dev/fixtures/fashion/img/p/image_12-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_12-medium_default.jpg rename to install-dev/fixtures/fashion/img/p/image_12-medium_default.jpg diff --git a/install/fixtures/fashion/img/p/image_12-small_default.jpg b/install-dev/fixtures/fashion/img/p/image_12-small_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_12-small_default.jpg rename to install-dev/fixtures/fashion/img/p/image_12-small_default.jpg diff --git a/install/fixtures/fashion/img/p/image_12-thickbox_default.jpg b/install-dev/fixtures/fashion/img/p/image_12-thickbox_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_12-thickbox_default.jpg rename to install-dev/fixtures/fashion/img/p/image_12-thickbox_default.jpg diff --git a/install/fixtures/fashion/img/p/image_12.jpg b/install-dev/fixtures/fashion/img/p/image_12.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_12.jpg rename to install-dev/fixtures/fashion/img/p/image_12.jpg diff --git a/install/fixtures/fashion/img/p/image_13-cart_default.jpg b/install-dev/fixtures/fashion/img/p/image_13-cart_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_13-cart_default.jpg rename to install-dev/fixtures/fashion/img/p/image_13-cart_default.jpg diff --git a/install/fixtures/fashion/img/p/image_13-home_default.jpg b/install-dev/fixtures/fashion/img/p/image_13-home_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_13-home_default.jpg rename to install-dev/fixtures/fashion/img/p/image_13-home_default.jpg diff --git a/install/fixtures/fashion/img/p/image_13-large_default.jpg b/install-dev/fixtures/fashion/img/p/image_13-large_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_13-large_default.jpg rename to install-dev/fixtures/fashion/img/p/image_13-large_default.jpg diff --git a/install/fixtures/fashion/img/p/image_13-medium_default.jpg b/install-dev/fixtures/fashion/img/p/image_13-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_13-medium_default.jpg rename to install-dev/fixtures/fashion/img/p/image_13-medium_default.jpg diff --git a/install/fixtures/fashion/img/p/image_13-small_default.jpg b/install-dev/fixtures/fashion/img/p/image_13-small_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_13-small_default.jpg rename to install-dev/fixtures/fashion/img/p/image_13-small_default.jpg diff --git a/install/fixtures/fashion/img/p/image_13-thickbox_default.jpg b/install-dev/fixtures/fashion/img/p/image_13-thickbox_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_13-thickbox_default.jpg rename to install-dev/fixtures/fashion/img/p/image_13-thickbox_default.jpg diff --git a/install/fixtures/fashion/img/p/image_13.jpg b/install-dev/fixtures/fashion/img/p/image_13.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_13.jpg rename to install-dev/fixtures/fashion/img/p/image_13.jpg diff --git a/install/fixtures/fashion/img/p/image_14-cart_default.jpg b/install-dev/fixtures/fashion/img/p/image_14-cart_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_14-cart_default.jpg rename to install-dev/fixtures/fashion/img/p/image_14-cart_default.jpg diff --git a/install/fixtures/fashion/img/p/image_14-home_default.jpg b/install-dev/fixtures/fashion/img/p/image_14-home_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_14-home_default.jpg rename to install-dev/fixtures/fashion/img/p/image_14-home_default.jpg diff --git a/install/fixtures/fashion/img/p/image_14-large_default.jpg b/install-dev/fixtures/fashion/img/p/image_14-large_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_14-large_default.jpg rename to install-dev/fixtures/fashion/img/p/image_14-large_default.jpg diff --git a/install/fixtures/fashion/img/p/image_14-medium_default.jpg b/install-dev/fixtures/fashion/img/p/image_14-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_14-medium_default.jpg rename to install-dev/fixtures/fashion/img/p/image_14-medium_default.jpg diff --git a/install/fixtures/fashion/img/p/image_14-small_default.jpg b/install-dev/fixtures/fashion/img/p/image_14-small_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_14-small_default.jpg rename to install-dev/fixtures/fashion/img/p/image_14-small_default.jpg diff --git a/install/fixtures/fashion/img/p/image_14-thickbox_default.jpg b/install-dev/fixtures/fashion/img/p/image_14-thickbox_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_14-thickbox_default.jpg rename to install-dev/fixtures/fashion/img/p/image_14-thickbox_default.jpg diff --git a/install/fixtures/fashion/img/p/image_14.jpg b/install-dev/fixtures/fashion/img/p/image_14.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_14.jpg rename to install-dev/fixtures/fashion/img/p/image_14.jpg diff --git a/install/fixtures/fashion/img/p/image_15-cart_default.jpg b/install-dev/fixtures/fashion/img/p/image_15-cart_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_15-cart_default.jpg rename to install-dev/fixtures/fashion/img/p/image_15-cart_default.jpg diff --git a/install/fixtures/fashion/img/p/image_15-home_default.jpg b/install-dev/fixtures/fashion/img/p/image_15-home_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_15-home_default.jpg rename to install-dev/fixtures/fashion/img/p/image_15-home_default.jpg diff --git a/install/fixtures/fashion/img/p/image_15-large_default.jpg b/install-dev/fixtures/fashion/img/p/image_15-large_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_15-large_default.jpg rename to install-dev/fixtures/fashion/img/p/image_15-large_default.jpg diff --git a/install/fixtures/fashion/img/p/image_15-medium_default.jpg b/install-dev/fixtures/fashion/img/p/image_15-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_15-medium_default.jpg rename to install-dev/fixtures/fashion/img/p/image_15-medium_default.jpg diff --git a/install/fixtures/fashion/img/p/image_15-small_default.jpg b/install-dev/fixtures/fashion/img/p/image_15-small_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_15-small_default.jpg rename to install-dev/fixtures/fashion/img/p/image_15-small_default.jpg diff --git a/install/fixtures/fashion/img/p/image_15-thickbox_default.jpg b/install-dev/fixtures/fashion/img/p/image_15-thickbox_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_15-thickbox_default.jpg rename to install-dev/fixtures/fashion/img/p/image_15-thickbox_default.jpg diff --git a/install/fixtures/fashion/img/p/image_15.jpg b/install-dev/fixtures/fashion/img/p/image_15.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_15.jpg rename to install-dev/fixtures/fashion/img/p/image_15.jpg diff --git a/install/fixtures/fashion/img/p/image_16-cart_default.jpg b/install-dev/fixtures/fashion/img/p/image_16-cart_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_16-cart_default.jpg rename to install-dev/fixtures/fashion/img/p/image_16-cart_default.jpg diff --git a/install/fixtures/fashion/img/p/image_16-home_default.jpg b/install-dev/fixtures/fashion/img/p/image_16-home_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_16-home_default.jpg rename to install-dev/fixtures/fashion/img/p/image_16-home_default.jpg diff --git a/install/fixtures/fashion/img/p/image_16-large_default.jpg b/install-dev/fixtures/fashion/img/p/image_16-large_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_16-large_default.jpg rename to install-dev/fixtures/fashion/img/p/image_16-large_default.jpg diff --git a/install/fixtures/fashion/img/p/image_16-medium_default.jpg b/install-dev/fixtures/fashion/img/p/image_16-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_16-medium_default.jpg rename to install-dev/fixtures/fashion/img/p/image_16-medium_default.jpg diff --git a/install/fixtures/fashion/img/p/image_16-small_default.jpg b/install-dev/fixtures/fashion/img/p/image_16-small_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_16-small_default.jpg rename to install-dev/fixtures/fashion/img/p/image_16-small_default.jpg diff --git a/install/fixtures/fashion/img/p/image_16-thickbox_default.jpg b/install-dev/fixtures/fashion/img/p/image_16-thickbox_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_16-thickbox_default.jpg rename to install-dev/fixtures/fashion/img/p/image_16-thickbox_default.jpg diff --git a/install/fixtures/fashion/img/p/image_16.jpg b/install-dev/fixtures/fashion/img/p/image_16.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_16.jpg rename to install-dev/fixtures/fashion/img/p/image_16.jpg diff --git a/install/fixtures/fashion/img/p/image_17-cart_default.jpg b/install-dev/fixtures/fashion/img/p/image_17-cart_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_17-cart_default.jpg rename to install-dev/fixtures/fashion/img/p/image_17-cart_default.jpg diff --git a/install/fixtures/fashion/img/p/image_17-home_default.jpg b/install-dev/fixtures/fashion/img/p/image_17-home_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_17-home_default.jpg rename to install-dev/fixtures/fashion/img/p/image_17-home_default.jpg diff --git a/install/fixtures/fashion/img/p/image_17-large_default.jpg b/install-dev/fixtures/fashion/img/p/image_17-large_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_17-large_default.jpg rename to install-dev/fixtures/fashion/img/p/image_17-large_default.jpg diff --git a/install/fixtures/fashion/img/p/image_17-medium_default.jpg b/install-dev/fixtures/fashion/img/p/image_17-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_17-medium_default.jpg rename to install-dev/fixtures/fashion/img/p/image_17-medium_default.jpg diff --git a/install/fixtures/fashion/img/p/image_17-small_default.jpg b/install-dev/fixtures/fashion/img/p/image_17-small_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_17-small_default.jpg rename to install-dev/fixtures/fashion/img/p/image_17-small_default.jpg diff --git a/install/fixtures/fashion/img/p/image_17-thickbox_default.jpg b/install-dev/fixtures/fashion/img/p/image_17-thickbox_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_17-thickbox_default.jpg rename to install-dev/fixtures/fashion/img/p/image_17-thickbox_default.jpg diff --git a/install/fixtures/fashion/img/p/image_17.jpg b/install-dev/fixtures/fashion/img/p/image_17.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_17.jpg rename to install-dev/fixtures/fashion/img/p/image_17.jpg diff --git a/install/fixtures/fashion/img/p/image_18-cart_default.jpg b/install-dev/fixtures/fashion/img/p/image_18-cart_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_18-cart_default.jpg rename to install-dev/fixtures/fashion/img/p/image_18-cart_default.jpg diff --git a/install/fixtures/fashion/img/p/image_18-home_default.jpg b/install-dev/fixtures/fashion/img/p/image_18-home_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_18-home_default.jpg rename to install-dev/fixtures/fashion/img/p/image_18-home_default.jpg diff --git a/install/fixtures/fashion/img/p/image_18-large_default.jpg b/install-dev/fixtures/fashion/img/p/image_18-large_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_18-large_default.jpg rename to install-dev/fixtures/fashion/img/p/image_18-large_default.jpg diff --git a/install/fixtures/fashion/img/p/image_18-medium_default.jpg b/install-dev/fixtures/fashion/img/p/image_18-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_18-medium_default.jpg rename to install-dev/fixtures/fashion/img/p/image_18-medium_default.jpg diff --git a/install/fixtures/fashion/img/p/image_18-small_default.jpg b/install-dev/fixtures/fashion/img/p/image_18-small_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_18-small_default.jpg rename to install-dev/fixtures/fashion/img/p/image_18-small_default.jpg diff --git a/install/fixtures/fashion/img/p/image_18-thickbox_default.jpg b/install-dev/fixtures/fashion/img/p/image_18-thickbox_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_18-thickbox_default.jpg rename to install-dev/fixtures/fashion/img/p/image_18-thickbox_default.jpg diff --git a/install/fixtures/fashion/img/p/image_18.jpg b/install-dev/fixtures/fashion/img/p/image_18.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_18.jpg rename to install-dev/fixtures/fashion/img/p/image_18.jpg diff --git a/install/fixtures/fashion/img/p/image_19-cart_default.jpg b/install-dev/fixtures/fashion/img/p/image_19-cart_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_19-cart_default.jpg rename to install-dev/fixtures/fashion/img/p/image_19-cart_default.jpg diff --git a/install/fixtures/fashion/img/p/image_19-home_default.jpg b/install-dev/fixtures/fashion/img/p/image_19-home_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_19-home_default.jpg rename to install-dev/fixtures/fashion/img/p/image_19-home_default.jpg diff --git a/install/fixtures/fashion/img/p/image_19-large_default.jpg b/install-dev/fixtures/fashion/img/p/image_19-large_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_19-large_default.jpg rename to install-dev/fixtures/fashion/img/p/image_19-large_default.jpg diff --git a/install/fixtures/fashion/img/p/image_19-medium_default.jpg b/install-dev/fixtures/fashion/img/p/image_19-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_19-medium_default.jpg rename to install-dev/fixtures/fashion/img/p/image_19-medium_default.jpg diff --git a/install/fixtures/fashion/img/p/image_19-small_default.jpg b/install-dev/fixtures/fashion/img/p/image_19-small_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_19-small_default.jpg rename to install-dev/fixtures/fashion/img/p/image_19-small_default.jpg diff --git a/install/fixtures/fashion/img/p/image_19-thickbox_default.jpg b/install-dev/fixtures/fashion/img/p/image_19-thickbox_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_19-thickbox_default.jpg rename to install-dev/fixtures/fashion/img/p/image_19-thickbox_default.jpg diff --git a/install/fixtures/fashion/img/p/image_19.jpg b/install-dev/fixtures/fashion/img/p/image_19.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_19.jpg rename to install-dev/fixtures/fashion/img/p/image_19.jpg diff --git a/install/fixtures/fashion/img/p/image_2-cart_default.jpg b/install-dev/fixtures/fashion/img/p/image_2-cart_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_2-cart_default.jpg rename to install-dev/fixtures/fashion/img/p/image_2-cart_default.jpg diff --git a/install/fixtures/fashion/img/p/image_2-home_default.jpg b/install-dev/fixtures/fashion/img/p/image_2-home_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_2-home_default.jpg rename to install-dev/fixtures/fashion/img/p/image_2-home_default.jpg diff --git a/install/fixtures/fashion/img/p/image_2-large_default.jpg b/install-dev/fixtures/fashion/img/p/image_2-large_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_2-large_default.jpg rename to install-dev/fixtures/fashion/img/p/image_2-large_default.jpg diff --git a/install/fixtures/fashion/img/p/image_2-medium_default.jpg b/install-dev/fixtures/fashion/img/p/image_2-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_2-medium_default.jpg rename to install-dev/fixtures/fashion/img/p/image_2-medium_default.jpg diff --git a/install/fixtures/fashion/img/p/image_2-small_default.jpg b/install-dev/fixtures/fashion/img/p/image_2-small_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_2-small_default.jpg rename to install-dev/fixtures/fashion/img/p/image_2-small_default.jpg diff --git a/install/fixtures/fashion/img/p/image_2-thickbox_default.jpg b/install-dev/fixtures/fashion/img/p/image_2-thickbox_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_2-thickbox_default.jpg rename to install-dev/fixtures/fashion/img/p/image_2-thickbox_default.jpg diff --git a/install/fixtures/fashion/img/p/image_2.jpg b/install-dev/fixtures/fashion/img/p/image_2.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_2.jpg rename to install-dev/fixtures/fashion/img/p/image_2.jpg diff --git a/install/fixtures/fashion/img/p/image_20-cart_default.jpg b/install-dev/fixtures/fashion/img/p/image_20-cart_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_20-cart_default.jpg rename to install-dev/fixtures/fashion/img/p/image_20-cart_default.jpg diff --git a/install/fixtures/fashion/img/p/image_20-home_default.jpg b/install-dev/fixtures/fashion/img/p/image_20-home_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_20-home_default.jpg rename to install-dev/fixtures/fashion/img/p/image_20-home_default.jpg diff --git a/install/fixtures/fashion/img/p/image_20-large_default.jpg b/install-dev/fixtures/fashion/img/p/image_20-large_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_20-large_default.jpg rename to install-dev/fixtures/fashion/img/p/image_20-large_default.jpg diff --git a/install/fixtures/fashion/img/p/image_20-medium_default.jpg b/install-dev/fixtures/fashion/img/p/image_20-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_20-medium_default.jpg rename to install-dev/fixtures/fashion/img/p/image_20-medium_default.jpg diff --git a/install/fixtures/fashion/img/p/image_20-small_default.jpg b/install-dev/fixtures/fashion/img/p/image_20-small_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_20-small_default.jpg rename to install-dev/fixtures/fashion/img/p/image_20-small_default.jpg diff --git a/install/fixtures/fashion/img/p/image_20-thickbox_default.jpg b/install-dev/fixtures/fashion/img/p/image_20-thickbox_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_20-thickbox_default.jpg rename to install-dev/fixtures/fashion/img/p/image_20-thickbox_default.jpg diff --git a/install/fixtures/fashion/img/p/image_20.jpg b/install-dev/fixtures/fashion/img/p/image_20.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_20.jpg rename to install-dev/fixtures/fashion/img/p/image_20.jpg diff --git a/install/fixtures/fashion/img/p/image_21-cart_default.jpg b/install-dev/fixtures/fashion/img/p/image_21-cart_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_21-cart_default.jpg rename to install-dev/fixtures/fashion/img/p/image_21-cart_default.jpg diff --git a/install/fixtures/fashion/img/p/image_21-home_default.jpg b/install-dev/fixtures/fashion/img/p/image_21-home_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_21-home_default.jpg rename to install-dev/fixtures/fashion/img/p/image_21-home_default.jpg diff --git a/install/fixtures/fashion/img/p/image_21-large_default.jpg b/install-dev/fixtures/fashion/img/p/image_21-large_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_21-large_default.jpg rename to install-dev/fixtures/fashion/img/p/image_21-large_default.jpg diff --git a/install/fixtures/fashion/img/p/image_21-medium_default.jpg b/install-dev/fixtures/fashion/img/p/image_21-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_21-medium_default.jpg rename to install-dev/fixtures/fashion/img/p/image_21-medium_default.jpg diff --git a/install/fixtures/fashion/img/p/image_21-small_default.jpg b/install-dev/fixtures/fashion/img/p/image_21-small_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_21-small_default.jpg rename to install-dev/fixtures/fashion/img/p/image_21-small_default.jpg diff --git a/install/fixtures/fashion/img/p/image_21-thickbox_default.jpg b/install-dev/fixtures/fashion/img/p/image_21-thickbox_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_21-thickbox_default.jpg rename to install-dev/fixtures/fashion/img/p/image_21-thickbox_default.jpg diff --git a/install/fixtures/fashion/img/p/image_21.jpg b/install-dev/fixtures/fashion/img/p/image_21.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_21.jpg rename to install-dev/fixtures/fashion/img/p/image_21.jpg diff --git a/install/fixtures/fashion/img/p/image_22-cart_default.jpg b/install-dev/fixtures/fashion/img/p/image_22-cart_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_22-cart_default.jpg rename to install-dev/fixtures/fashion/img/p/image_22-cart_default.jpg diff --git a/install/fixtures/fashion/img/p/image_22-home_default.jpg b/install-dev/fixtures/fashion/img/p/image_22-home_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_22-home_default.jpg rename to install-dev/fixtures/fashion/img/p/image_22-home_default.jpg diff --git a/install/fixtures/fashion/img/p/image_22-large_default.jpg b/install-dev/fixtures/fashion/img/p/image_22-large_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_22-large_default.jpg rename to install-dev/fixtures/fashion/img/p/image_22-large_default.jpg diff --git a/install/fixtures/fashion/img/p/image_22-medium_default.jpg b/install-dev/fixtures/fashion/img/p/image_22-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_22-medium_default.jpg rename to install-dev/fixtures/fashion/img/p/image_22-medium_default.jpg diff --git a/install/fixtures/fashion/img/p/image_22-small_default.jpg b/install-dev/fixtures/fashion/img/p/image_22-small_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_22-small_default.jpg rename to install-dev/fixtures/fashion/img/p/image_22-small_default.jpg diff --git a/install/fixtures/fashion/img/p/image_22-thickbox_default.jpg b/install-dev/fixtures/fashion/img/p/image_22-thickbox_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_22-thickbox_default.jpg rename to install-dev/fixtures/fashion/img/p/image_22-thickbox_default.jpg diff --git a/install/fixtures/fashion/img/p/image_22.jpg b/install-dev/fixtures/fashion/img/p/image_22.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_22.jpg rename to install-dev/fixtures/fashion/img/p/image_22.jpg diff --git a/install/fixtures/fashion/img/p/image_23-cart_default.jpg b/install-dev/fixtures/fashion/img/p/image_23-cart_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_23-cart_default.jpg rename to install-dev/fixtures/fashion/img/p/image_23-cart_default.jpg diff --git a/install/fixtures/fashion/img/p/image_23-home_default.jpg b/install-dev/fixtures/fashion/img/p/image_23-home_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_23-home_default.jpg rename to install-dev/fixtures/fashion/img/p/image_23-home_default.jpg diff --git a/install/fixtures/fashion/img/p/image_23-large_default.jpg b/install-dev/fixtures/fashion/img/p/image_23-large_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_23-large_default.jpg rename to install-dev/fixtures/fashion/img/p/image_23-large_default.jpg diff --git a/install/fixtures/fashion/img/p/image_23-medium_default.jpg b/install-dev/fixtures/fashion/img/p/image_23-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_23-medium_default.jpg rename to install-dev/fixtures/fashion/img/p/image_23-medium_default.jpg diff --git a/install/fixtures/fashion/img/p/image_23-small_default.jpg b/install-dev/fixtures/fashion/img/p/image_23-small_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_23-small_default.jpg rename to install-dev/fixtures/fashion/img/p/image_23-small_default.jpg diff --git a/install/fixtures/fashion/img/p/image_23-thickbox_default.jpg b/install-dev/fixtures/fashion/img/p/image_23-thickbox_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_23-thickbox_default.jpg rename to install-dev/fixtures/fashion/img/p/image_23-thickbox_default.jpg diff --git a/install/fixtures/fashion/img/p/image_23.jpg b/install-dev/fixtures/fashion/img/p/image_23.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_23.jpg rename to install-dev/fixtures/fashion/img/p/image_23.jpg diff --git a/install/fixtures/fashion/img/p/image_3-cart_default.jpg b/install-dev/fixtures/fashion/img/p/image_3-cart_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_3-cart_default.jpg rename to install-dev/fixtures/fashion/img/p/image_3-cart_default.jpg diff --git a/install/fixtures/fashion/img/p/image_3-home_default.jpg b/install-dev/fixtures/fashion/img/p/image_3-home_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_3-home_default.jpg rename to install-dev/fixtures/fashion/img/p/image_3-home_default.jpg diff --git a/install/fixtures/fashion/img/p/image_3-large_default.jpg b/install-dev/fixtures/fashion/img/p/image_3-large_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_3-large_default.jpg rename to install-dev/fixtures/fashion/img/p/image_3-large_default.jpg diff --git a/install/fixtures/fashion/img/p/image_3-medium_default.jpg b/install-dev/fixtures/fashion/img/p/image_3-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_3-medium_default.jpg rename to install-dev/fixtures/fashion/img/p/image_3-medium_default.jpg diff --git a/install/fixtures/fashion/img/p/image_3-small_default.jpg b/install-dev/fixtures/fashion/img/p/image_3-small_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_3-small_default.jpg rename to install-dev/fixtures/fashion/img/p/image_3-small_default.jpg diff --git a/install/fixtures/fashion/img/p/image_3-thickbox_default.jpg b/install-dev/fixtures/fashion/img/p/image_3-thickbox_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_3-thickbox_default.jpg rename to install-dev/fixtures/fashion/img/p/image_3-thickbox_default.jpg diff --git a/install/fixtures/fashion/img/p/image_3.jpg b/install-dev/fixtures/fashion/img/p/image_3.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_3.jpg rename to install-dev/fixtures/fashion/img/p/image_3.jpg diff --git a/install/fixtures/fashion/img/p/image_4-cart_default.jpg b/install-dev/fixtures/fashion/img/p/image_4-cart_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_4-cart_default.jpg rename to install-dev/fixtures/fashion/img/p/image_4-cart_default.jpg diff --git a/install/fixtures/fashion/img/p/image_4-home_default.jpg b/install-dev/fixtures/fashion/img/p/image_4-home_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_4-home_default.jpg rename to install-dev/fixtures/fashion/img/p/image_4-home_default.jpg diff --git a/install/fixtures/fashion/img/p/image_4-large_default.jpg b/install-dev/fixtures/fashion/img/p/image_4-large_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_4-large_default.jpg rename to install-dev/fixtures/fashion/img/p/image_4-large_default.jpg diff --git a/install/fixtures/fashion/img/p/image_4-medium_default.jpg b/install-dev/fixtures/fashion/img/p/image_4-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_4-medium_default.jpg rename to install-dev/fixtures/fashion/img/p/image_4-medium_default.jpg diff --git a/install/fixtures/fashion/img/p/image_4-small_default.jpg b/install-dev/fixtures/fashion/img/p/image_4-small_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_4-small_default.jpg rename to install-dev/fixtures/fashion/img/p/image_4-small_default.jpg diff --git a/install/fixtures/fashion/img/p/image_4-thickbox_default.jpg b/install-dev/fixtures/fashion/img/p/image_4-thickbox_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_4-thickbox_default.jpg rename to install-dev/fixtures/fashion/img/p/image_4-thickbox_default.jpg diff --git a/install/fixtures/fashion/img/p/image_4.jpg b/install-dev/fixtures/fashion/img/p/image_4.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_4.jpg rename to install-dev/fixtures/fashion/img/p/image_4.jpg diff --git a/install/fixtures/fashion/img/p/image_5-cart_default.jpg b/install-dev/fixtures/fashion/img/p/image_5-cart_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_5-cart_default.jpg rename to install-dev/fixtures/fashion/img/p/image_5-cart_default.jpg diff --git a/install/fixtures/fashion/img/p/image_5-home_default.jpg b/install-dev/fixtures/fashion/img/p/image_5-home_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_5-home_default.jpg rename to install-dev/fixtures/fashion/img/p/image_5-home_default.jpg diff --git a/install/fixtures/fashion/img/p/image_5-large_default.jpg b/install-dev/fixtures/fashion/img/p/image_5-large_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_5-large_default.jpg rename to install-dev/fixtures/fashion/img/p/image_5-large_default.jpg diff --git a/install/fixtures/fashion/img/p/image_5-medium_default.jpg b/install-dev/fixtures/fashion/img/p/image_5-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_5-medium_default.jpg rename to install-dev/fixtures/fashion/img/p/image_5-medium_default.jpg diff --git a/install/fixtures/fashion/img/p/image_5-small_default.jpg b/install-dev/fixtures/fashion/img/p/image_5-small_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_5-small_default.jpg rename to install-dev/fixtures/fashion/img/p/image_5-small_default.jpg diff --git a/install/fixtures/fashion/img/p/image_5-thickbox_default.jpg b/install-dev/fixtures/fashion/img/p/image_5-thickbox_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_5-thickbox_default.jpg rename to install-dev/fixtures/fashion/img/p/image_5-thickbox_default.jpg diff --git a/install/fixtures/fashion/img/p/image_5.jpg b/install-dev/fixtures/fashion/img/p/image_5.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_5.jpg rename to install-dev/fixtures/fashion/img/p/image_5.jpg diff --git a/install/fixtures/fashion/img/p/image_6-cart_default.jpg b/install-dev/fixtures/fashion/img/p/image_6-cart_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_6-cart_default.jpg rename to install-dev/fixtures/fashion/img/p/image_6-cart_default.jpg diff --git a/install/fixtures/fashion/img/p/image_6-home_default.jpg b/install-dev/fixtures/fashion/img/p/image_6-home_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_6-home_default.jpg rename to install-dev/fixtures/fashion/img/p/image_6-home_default.jpg diff --git a/install/fixtures/fashion/img/p/image_6-large_default.jpg b/install-dev/fixtures/fashion/img/p/image_6-large_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_6-large_default.jpg rename to install-dev/fixtures/fashion/img/p/image_6-large_default.jpg diff --git a/install/fixtures/fashion/img/p/image_6-medium_default.jpg b/install-dev/fixtures/fashion/img/p/image_6-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_6-medium_default.jpg rename to install-dev/fixtures/fashion/img/p/image_6-medium_default.jpg diff --git a/install/fixtures/fashion/img/p/image_6-small_default.jpg b/install-dev/fixtures/fashion/img/p/image_6-small_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_6-small_default.jpg rename to install-dev/fixtures/fashion/img/p/image_6-small_default.jpg diff --git a/install/fixtures/fashion/img/p/image_6-thickbox_default.jpg b/install-dev/fixtures/fashion/img/p/image_6-thickbox_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_6-thickbox_default.jpg rename to install-dev/fixtures/fashion/img/p/image_6-thickbox_default.jpg diff --git a/install/fixtures/fashion/img/p/image_6.jpg b/install-dev/fixtures/fashion/img/p/image_6.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_6.jpg rename to install-dev/fixtures/fashion/img/p/image_6.jpg diff --git a/install/fixtures/fashion/img/p/image_7-cart_default.jpg b/install-dev/fixtures/fashion/img/p/image_7-cart_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_7-cart_default.jpg rename to install-dev/fixtures/fashion/img/p/image_7-cart_default.jpg diff --git a/install/fixtures/fashion/img/p/image_7-home_default.jpg b/install-dev/fixtures/fashion/img/p/image_7-home_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_7-home_default.jpg rename to install-dev/fixtures/fashion/img/p/image_7-home_default.jpg diff --git a/install/fixtures/fashion/img/p/image_7-large_default.jpg b/install-dev/fixtures/fashion/img/p/image_7-large_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_7-large_default.jpg rename to install-dev/fixtures/fashion/img/p/image_7-large_default.jpg diff --git a/install/fixtures/fashion/img/p/image_7-medium_default.jpg b/install-dev/fixtures/fashion/img/p/image_7-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_7-medium_default.jpg rename to install-dev/fixtures/fashion/img/p/image_7-medium_default.jpg diff --git a/install/fixtures/fashion/img/p/image_7-small_default.jpg b/install-dev/fixtures/fashion/img/p/image_7-small_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_7-small_default.jpg rename to install-dev/fixtures/fashion/img/p/image_7-small_default.jpg diff --git a/install/fixtures/fashion/img/p/image_7-thickbox_default.jpg b/install-dev/fixtures/fashion/img/p/image_7-thickbox_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_7-thickbox_default.jpg rename to install-dev/fixtures/fashion/img/p/image_7-thickbox_default.jpg diff --git a/install/fixtures/fashion/img/p/image_7.jpg b/install-dev/fixtures/fashion/img/p/image_7.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_7.jpg rename to install-dev/fixtures/fashion/img/p/image_7.jpg diff --git a/install/fixtures/fashion/img/p/image_8-cart_default.jpg b/install-dev/fixtures/fashion/img/p/image_8-cart_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_8-cart_default.jpg rename to install-dev/fixtures/fashion/img/p/image_8-cart_default.jpg diff --git a/install/fixtures/fashion/img/p/image_8-home_default.jpg b/install-dev/fixtures/fashion/img/p/image_8-home_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_8-home_default.jpg rename to install-dev/fixtures/fashion/img/p/image_8-home_default.jpg diff --git a/install/fixtures/fashion/img/p/image_8-large_default.jpg b/install-dev/fixtures/fashion/img/p/image_8-large_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_8-large_default.jpg rename to install-dev/fixtures/fashion/img/p/image_8-large_default.jpg diff --git a/install/fixtures/fashion/img/p/image_8-medium_default.jpg b/install-dev/fixtures/fashion/img/p/image_8-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_8-medium_default.jpg rename to install-dev/fixtures/fashion/img/p/image_8-medium_default.jpg diff --git a/install/fixtures/fashion/img/p/image_8-small_default.jpg b/install-dev/fixtures/fashion/img/p/image_8-small_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_8-small_default.jpg rename to install-dev/fixtures/fashion/img/p/image_8-small_default.jpg diff --git a/install/fixtures/fashion/img/p/image_8-thickbox_default.jpg b/install-dev/fixtures/fashion/img/p/image_8-thickbox_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_8-thickbox_default.jpg rename to install-dev/fixtures/fashion/img/p/image_8-thickbox_default.jpg diff --git a/install/fixtures/fashion/img/p/image_8.jpg b/install-dev/fixtures/fashion/img/p/image_8.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_8.jpg rename to install-dev/fixtures/fashion/img/p/image_8.jpg diff --git a/install/fixtures/fashion/img/p/image_9-cart_default.jpg b/install-dev/fixtures/fashion/img/p/image_9-cart_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_9-cart_default.jpg rename to install-dev/fixtures/fashion/img/p/image_9-cart_default.jpg diff --git a/install/fixtures/fashion/img/p/image_9-home_default.jpg b/install-dev/fixtures/fashion/img/p/image_9-home_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_9-home_default.jpg rename to install-dev/fixtures/fashion/img/p/image_9-home_default.jpg diff --git a/install/fixtures/fashion/img/p/image_9-large_default.jpg b/install-dev/fixtures/fashion/img/p/image_9-large_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_9-large_default.jpg rename to install-dev/fixtures/fashion/img/p/image_9-large_default.jpg diff --git a/install/fixtures/fashion/img/p/image_9-medium_default.jpg b/install-dev/fixtures/fashion/img/p/image_9-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_9-medium_default.jpg rename to install-dev/fixtures/fashion/img/p/image_9-medium_default.jpg diff --git a/install/fixtures/fashion/img/p/image_9-small_default.jpg b/install-dev/fixtures/fashion/img/p/image_9-small_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_9-small_default.jpg rename to install-dev/fixtures/fashion/img/p/image_9-small_default.jpg diff --git a/install/fixtures/fashion/img/p/image_9-thickbox_default.jpg b/install-dev/fixtures/fashion/img/p/image_9-thickbox_default.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_9-thickbox_default.jpg rename to install-dev/fixtures/fashion/img/p/image_9-thickbox_default.jpg diff --git a/install/fixtures/fashion/img/p/image_9.jpg b/install-dev/fixtures/fashion/img/p/image_9.jpg similarity index 100% rename from install/fixtures/fashion/img/p/image_9.jpg rename to install-dev/fixtures/fashion/img/p/image_9.jpg diff --git a/install/fixtures/fashion/img/p/index.php b/install-dev/fixtures/fashion/img/p/index.php similarity index 100% rename from install/fixtures/fashion/img/p/index.php rename to install-dev/fixtures/fashion/img/p/index.php diff --git a/install/fixtures/fashion/img/p/resize.php b/install-dev/fixtures/fashion/img/p/resize.php similarity index 100% rename from install/fixtures/fashion/img/p/resize.php rename to install-dev/fixtures/fashion/img/p/resize.php diff --git a/install/fixtures/fashion/img/scenes/index.php b/install-dev/fixtures/fashion/img/scenes/index.php similarity index 100% rename from install/fixtures/fashion/img/scenes/index.php rename to install-dev/fixtures/fashion/img/scenes/index.php diff --git a/install/fixtures/fashion/img/scenes/thumbs/index.php b/install-dev/fixtures/fashion/img/scenes/thumbs/index.php similarity index 100% rename from install/fixtures/fashion/img/scenes/thumbs/index.php rename to install-dev/fixtures/fashion/img/scenes/thumbs/index.php diff --git a/install/fixtures/fashion/img/st/Coconut_Grove-medium_default.jpg b/install-dev/fixtures/fashion/img/st/Coconut_Grove-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/st/Coconut_Grove-medium_default.jpg rename to install-dev/fixtures/fashion/img/st/Coconut_Grove-medium_default.jpg diff --git a/install/fixtures/fashion/img/st/Coconut_Grove.jpg b/install-dev/fixtures/fashion/img/st/Coconut_Grove.jpg similarity index 100% rename from install/fixtures/fashion/img/st/Coconut_Grove.jpg rename to install-dev/fixtures/fashion/img/st/Coconut_Grove.jpg diff --git a/install/fixtures/fashion/img/st/Dade_County-medium_default.jpg b/install-dev/fixtures/fashion/img/st/Dade_County-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/st/Dade_County-medium_default.jpg rename to install-dev/fixtures/fashion/img/st/Dade_County-medium_default.jpg diff --git a/install/fixtures/fashion/img/st/Dade_County.jpg b/install-dev/fixtures/fashion/img/st/Dade_County.jpg similarity index 100% rename from install/fixtures/fashion/img/st/Dade_County.jpg rename to install-dev/fixtures/fashion/img/st/Dade_County.jpg diff --git a/install/fixtures/fashion/img/st/E_Fort_Lauderdale-medium_default.jpg b/install-dev/fixtures/fashion/img/st/E_Fort_Lauderdale-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/st/E_Fort_Lauderdale-medium_default.jpg rename to install-dev/fixtures/fashion/img/st/E_Fort_Lauderdale-medium_default.jpg diff --git a/install/fixtures/fashion/img/st/E_Fort_Lauderdale.jpg b/install-dev/fixtures/fashion/img/st/E_Fort_Lauderdale.jpg similarity index 100% rename from install/fixtures/fashion/img/st/E_Fort_Lauderdale.jpg rename to install-dev/fixtures/fashion/img/st/E_Fort_Lauderdale.jpg diff --git a/install/fixtures/fashion/img/st/N_Miami_Biscayne-medium_default.jpg b/install-dev/fixtures/fashion/img/st/N_Miami_Biscayne-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/st/N_Miami_Biscayne-medium_default.jpg rename to install-dev/fixtures/fashion/img/st/N_Miami_Biscayne-medium_default.jpg diff --git a/install/fixtures/fashion/img/st/N_Miami_Biscayne.jpg b/install-dev/fixtures/fashion/img/st/N_Miami_Biscayne.jpg similarity index 100% rename from install/fixtures/fashion/img/st/N_Miami_Biscayne.jpg rename to install-dev/fixtures/fashion/img/st/N_Miami_Biscayne.jpg diff --git a/install/fixtures/fashion/img/st/Pembroke_Pines-medium_default.jpg b/install-dev/fixtures/fashion/img/st/Pembroke_Pines-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/st/Pembroke_Pines-medium_default.jpg rename to install-dev/fixtures/fashion/img/st/Pembroke_Pines-medium_default.jpg diff --git a/install/fixtures/fashion/img/st/Pembroke_Pines.jpg b/install-dev/fixtures/fashion/img/st/Pembroke_Pines.jpg similarity index 100% rename from install/fixtures/fashion/img/st/Pembroke_Pines.jpg rename to install-dev/fixtures/fashion/img/st/Pembroke_Pines.jpg diff --git a/install/fixtures/fashion/img/st/index.php b/install-dev/fixtures/fashion/img/st/index.php similarity index 100% rename from install/fixtures/fashion/img/st/index.php rename to install-dev/fixtures/fashion/img/st/index.php diff --git a/install/fixtures/fashion/img/su/Fashion_Supplier-large_default.jpg b/install-dev/fixtures/fashion/img/su/Fashion_Supplier-large_default.jpg similarity index 100% rename from install/fixtures/fashion/img/su/Fashion_Supplier-large_default.jpg rename to install-dev/fixtures/fashion/img/su/Fashion_Supplier-large_default.jpg diff --git a/install/fixtures/fashion/img/su/Fashion_Supplier-medium_default.jpg b/install-dev/fixtures/fashion/img/su/Fashion_Supplier-medium_default.jpg similarity index 100% rename from install/fixtures/fashion/img/su/Fashion_Supplier-medium_default.jpg rename to install-dev/fixtures/fashion/img/su/Fashion_Supplier-medium_default.jpg diff --git a/install/fixtures/fashion/img/su/Fashion_Supplier-small_default.jpg b/install-dev/fixtures/fashion/img/su/Fashion_Supplier-small_default.jpg similarity index 100% rename from install/fixtures/fashion/img/su/Fashion_Supplier-small_default.jpg rename to install-dev/fixtures/fashion/img/su/Fashion_Supplier-small_default.jpg diff --git a/install/fixtures/fashion/img/su/Fashion_Supplier.jpg b/install-dev/fixtures/fashion/img/su/Fashion_Supplier.jpg similarity index 100% rename from install/fixtures/fashion/img/su/Fashion_Supplier.jpg rename to install-dev/fixtures/fashion/img/su/Fashion_Supplier.jpg diff --git a/install/fixtures/fashion/img/su/index.php b/install-dev/fixtures/fashion/img/su/index.php similarity index 100% rename from install/fixtures/fashion/img/su/index.php rename to install-dev/fixtures/fashion/img/su/index.php diff --git a/install/fixtures/fashion/index.php b/install-dev/fixtures/fashion/index.php similarity index 100% rename from install/fixtures/fashion/index.php rename to install-dev/fixtures/fashion/index.php diff --git a/install/fixtures/fashion/install.php b/install-dev/fixtures/fashion/install.php similarity index 100% rename from install/fixtures/fashion/install.php rename to install-dev/fixtures/fashion/install.php diff --git a/install/fixtures/fashion/langs/index.php b/install-dev/fixtures/fashion/langs/index.php similarity index 100% rename from install/fixtures/fashion/langs/index.php rename to install-dev/fixtures/fashion/langs/index.php diff --git a/install/fixtures/index.php b/install-dev/fixtures/index.php similarity index 100% rename from install/fixtures/index.php rename to install-dev/fixtures/index.php diff --git a/install/index.php b/install-dev/index.php similarity index 100% rename from install/index.php rename to install-dev/index.php diff --git a/install/index_cli.php b/install-dev/index_cli.php similarity index 100% rename from install/index_cli.php rename to install-dev/index_cli.php diff --git a/install/init.php b/install-dev/init.php similarity index 97% rename from install/init.php rename to install-dev/init.php index 00818afcb..a438fbcb6 100644 --- a/install/init.php +++ b/install-dev/init.php @@ -28,7 +28,7 @@ ob_start(); // Check PHP version if (version_compare(preg_replace('/[^0-9.]/', '', PHP_VERSION), '5.2', '<')) { - die('You need at least PHP 5.2 to run PrestaShop. Your current PHP version is '.PHP_VERSION); + die('You need at least PHP 5.2 to run QloApps. Your current PHP version is '.PHP_VERSION); } // we check if theses constants are defined diff --git a/install/install_version.php b/install-dev/install_version.php similarity index 100% rename from install/install_version.php rename to install-dev/install_version.php diff --git a/install/langs/bg/data/business_source.xml b/install-dev/langs/bg/data/business_source.xml similarity index 100% rename from install/langs/bg/data/business_source.xml rename to install-dev/langs/bg/data/business_source.xml diff --git a/install/langs/bg/data/carrier.xml b/install-dev/langs/bg/data/carrier.xml similarity index 100% rename from install/langs/bg/data/carrier.xml rename to install-dev/langs/bg/data/carrier.xml diff --git a/install/langs/bg/data/category.xml b/install-dev/langs/bg/data/category.xml similarity index 100% rename from install/langs/bg/data/category.xml rename to install-dev/langs/bg/data/category.xml diff --git a/install/langs/bg/data/cms.xml b/install-dev/langs/bg/data/cms.xml similarity index 100% rename from install/langs/bg/data/cms.xml rename to install-dev/langs/bg/data/cms.xml diff --git a/install/langs/bg/data/cms_category.xml b/install-dev/langs/bg/data/cms_category.xml similarity index 100% rename from install/langs/bg/data/cms_category.xml rename to install-dev/langs/bg/data/cms_category.xml diff --git a/install/langs/bg/data/configuration.xml b/install-dev/langs/bg/data/configuration.xml similarity index 100% rename from install/langs/bg/data/configuration.xml rename to install-dev/langs/bg/data/configuration.xml diff --git a/install/langs/bg/data/contact.xml b/install-dev/langs/bg/data/contact.xml similarity index 100% rename from install/langs/bg/data/contact.xml rename to install-dev/langs/bg/data/contact.xml diff --git a/install/langs/bg/data/country.xml b/install-dev/langs/bg/data/country.xml similarity index 100% rename from install/langs/bg/data/country.xml rename to install-dev/langs/bg/data/country.xml diff --git a/install/langs/bg/data/gender.xml b/install-dev/langs/bg/data/gender.xml similarity index 100% rename from install/langs/bg/data/gender.xml rename to install-dev/langs/bg/data/gender.xml diff --git a/install/langs/bg/data/group.xml b/install-dev/langs/bg/data/group.xml similarity index 100% rename from install/langs/bg/data/group.xml rename to install-dev/langs/bg/data/group.xml diff --git a/install/langs/bg/data/index.php b/install-dev/langs/bg/data/index.php similarity index 100% rename from install/langs/bg/data/index.php rename to install-dev/langs/bg/data/index.php diff --git a/install/langs/bg/data/meta.xml b/install-dev/langs/bg/data/meta.xml similarity index 100% rename from install/langs/bg/data/meta.xml rename to install-dev/langs/bg/data/meta.xml diff --git a/install/langs/bg/data/order_return_state.xml b/install-dev/langs/bg/data/order_return_state.xml similarity index 100% rename from install/langs/bg/data/order_return_state.xml rename to install-dev/langs/bg/data/order_return_state.xml diff --git a/install/langs/bg/data/order_state.xml b/install-dev/langs/bg/data/order_state.xml similarity index 100% rename from install/langs/bg/data/order_state.xml rename to install-dev/langs/bg/data/order_state.xml diff --git a/install/langs/bg/data/profile.xml b/install-dev/langs/bg/data/profile.xml similarity index 100% rename from install/langs/bg/data/profile.xml rename to install-dev/langs/bg/data/profile.xml diff --git a/install/langs/bg/data/quick_access.xml b/install-dev/langs/bg/data/quick_access.xml similarity index 100% rename from install/langs/bg/data/quick_access.xml rename to install-dev/langs/bg/data/quick_access.xml diff --git a/install/langs/bg/data/risk.xml b/install-dev/langs/bg/data/risk.xml similarity index 100% rename from install/langs/bg/data/risk.xml rename to install-dev/langs/bg/data/risk.xml diff --git a/install/langs/bg/data/source.xml b/install-dev/langs/bg/data/source.xml similarity index 100% rename from install/langs/bg/data/source.xml rename to install-dev/langs/bg/data/source.xml diff --git a/install/langs/bg/data/stock_mvt_reason.xml b/install-dev/langs/bg/data/stock_mvt_reason.xml similarity index 100% rename from install/langs/bg/data/stock_mvt_reason.xml rename to install-dev/langs/bg/data/stock_mvt_reason.xml diff --git a/install/langs/bg/data/supplier_order_state.xml b/install-dev/langs/bg/data/supplier_order_state.xml similarity index 100% rename from install/langs/bg/data/supplier_order_state.xml rename to install-dev/langs/bg/data/supplier_order_state.xml diff --git a/install/langs/bg/data/supply_order_state.xml b/install-dev/langs/bg/data/supply_order_state.xml similarity index 100% rename from install/langs/bg/data/supply_order_state.xml rename to install-dev/langs/bg/data/supply_order_state.xml diff --git a/install/langs/bg/data/tab.xml b/install-dev/langs/bg/data/tab.xml similarity index 96% rename from install/langs/bg/data/tab.xml rename to install-dev/langs/bg/data/tab.xml index e64e85a36..57cfb8121 100644 --- a/install/langs/bg/data/tab.xml +++ b/install-dev/langs/bg/data/tab.xml @@ -22,6 +22,7 @@ + @@ -32,10 +33,12 @@ + + diff --git a/install/langs/bg/flag.jpg b/install-dev/langs/bg/flag.jpg similarity index 100% rename from install/langs/bg/flag.jpg rename to install-dev/langs/bg/flag.jpg diff --git a/install/langs/bg/img/bg-default-category.jpg b/install-dev/langs/bg/img/bg-default-category.jpg similarity index 100% rename from install/langs/bg/img/bg-default-category.jpg rename to install-dev/langs/bg/img/bg-default-category.jpg diff --git a/install/langs/bg/img/bg-default-home.jpg b/install-dev/langs/bg/img/bg-default-home.jpg similarity index 100% rename from install/langs/bg/img/bg-default-home.jpg rename to install-dev/langs/bg/img/bg-default-home.jpg diff --git a/install/langs/bg/img/bg-default-large.jpg b/install-dev/langs/bg/img/bg-default-large.jpg similarity index 100% rename from install/langs/bg/img/bg-default-large.jpg rename to install-dev/langs/bg/img/bg-default-large.jpg diff --git a/install/langs/bg/img/bg-default-large_scene.jpg b/install-dev/langs/bg/img/bg-default-large_scene.jpg similarity index 100% rename from install/langs/bg/img/bg-default-large_scene.jpg rename to install-dev/langs/bg/img/bg-default-large_scene.jpg diff --git a/install/langs/bg/img/bg-default-medium.jpg b/install-dev/langs/bg/img/bg-default-medium.jpg similarity index 100% rename from install/langs/bg/img/bg-default-medium.jpg rename to install-dev/langs/bg/img/bg-default-medium.jpg diff --git a/install/langs/bg/img/bg-default-small.jpg b/install-dev/langs/bg/img/bg-default-small.jpg similarity index 100% rename from install/langs/bg/img/bg-default-small.jpg rename to install-dev/langs/bg/img/bg-default-small.jpg diff --git a/install/langs/bg/img/bg-default-thickbox.jpg b/install-dev/langs/bg/img/bg-default-thickbox.jpg similarity index 100% rename from install/langs/bg/img/bg-default-thickbox.jpg rename to install-dev/langs/bg/img/bg-default-thickbox.jpg diff --git a/install/langs/bg/img/bg-default-thumb_scene.jpg b/install-dev/langs/bg/img/bg-default-thumb_scene.jpg similarity index 100% rename from install/langs/bg/img/bg-default-thumb_scene.jpg rename to install-dev/langs/bg/img/bg-default-thumb_scene.jpg diff --git a/install/langs/bg/img/bg.jpg b/install-dev/langs/bg/img/bg.jpg similarity index 100% rename from install/langs/bg/img/bg.jpg rename to install-dev/langs/bg/img/bg.jpg diff --git a/install/langs/bg/img/index.php b/install-dev/langs/bg/img/index.php similarity index 100% rename from install/langs/bg/img/index.php rename to install-dev/langs/bg/img/index.php diff --git a/install/langs/bg/index.php b/install-dev/langs/bg/index.php similarity index 100% rename from install/langs/bg/index.php rename to install-dev/langs/bg/index.php diff --git a/install/langs/bg/install.php b/install-dev/langs/bg/install.php similarity index 100% rename from install/langs/bg/install.php rename to install-dev/langs/bg/install.php diff --git a/install/langs/bg/language.xml b/install-dev/langs/bg/language.xml similarity index 100% rename from install/langs/bg/language.xml rename to install-dev/langs/bg/language.xml diff --git a/install/langs/bn/data/business_source.xml b/install-dev/langs/bn/data/business_source.xml similarity index 100% rename from install/langs/bn/data/business_source.xml rename to install-dev/langs/bn/data/business_source.xml diff --git a/install/langs/bn/data/carrier.xml b/install-dev/langs/bn/data/carrier.xml similarity index 100% rename from install/langs/bn/data/carrier.xml rename to install-dev/langs/bn/data/carrier.xml diff --git a/install/langs/bn/data/category.xml b/install-dev/langs/bn/data/category.xml similarity index 100% rename from install/langs/bn/data/category.xml rename to install-dev/langs/bn/data/category.xml diff --git a/install/langs/bn/data/cms.xml b/install-dev/langs/bn/data/cms.xml similarity index 100% rename from install/langs/bn/data/cms.xml rename to install-dev/langs/bn/data/cms.xml diff --git a/install/langs/bn/data/cms_category.xml b/install-dev/langs/bn/data/cms_category.xml similarity index 100% rename from install/langs/bn/data/cms_category.xml rename to install-dev/langs/bn/data/cms_category.xml diff --git a/install/langs/bn/data/configuration.xml b/install-dev/langs/bn/data/configuration.xml similarity index 100% rename from install/langs/bn/data/configuration.xml rename to install-dev/langs/bn/data/configuration.xml diff --git a/install/langs/bn/data/contact.xml b/install-dev/langs/bn/data/contact.xml similarity index 100% rename from install/langs/bn/data/contact.xml rename to install-dev/langs/bn/data/contact.xml diff --git a/install/langs/bn/data/country.xml b/install-dev/langs/bn/data/country.xml similarity index 100% rename from install/langs/bn/data/country.xml rename to install-dev/langs/bn/data/country.xml diff --git a/install/langs/bn/data/gender.xml b/install-dev/langs/bn/data/gender.xml similarity index 100% rename from install/langs/bn/data/gender.xml rename to install-dev/langs/bn/data/gender.xml diff --git a/install/langs/bn/data/group.xml b/install-dev/langs/bn/data/group.xml similarity index 100% rename from install/langs/bn/data/group.xml rename to install-dev/langs/bn/data/group.xml diff --git a/install/langs/bn/data/index.php b/install-dev/langs/bn/data/index.php similarity index 100% rename from install/langs/bn/data/index.php rename to install-dev/langs/bn/data/index.php diff --git a/install/langs/bn/data/meta.xml b/install-dev/langs/bn/data/meta.xml similarity index 100% rename from install/langs/bn/data/meta.xml rename to install-dev/langs/bn/data/meta.xml diff --git a/install/langs/bn/data/order_return_state.xml b/install-dev/langs/bn/data/order_return_state.xml similarity index 100% rename from install/langs/bn/data/order_return_state.xml rename to install-dev/langs/bn/data/order_return_state.xml diff --git a/install/langs/bn/data/order_state.xml b/install-dev/langs/bn/data/order_state.xml similarity index 100% rename from install/langs/bn/data/order_state.xml rename to install-dev/langs/bn/data/order_state.xml diff --git a/install/langs/bn/data/profile.xml b/install-dev/langs/bn/data/profile.xml similarity index 100% rename from install/langs/bn/data/profile.xml rename to install-dev/langs/bn/data/profile.xml diff --git a/install/langs/bn/data/quick_access.xml b/install-dev/langs/bn/data/quick_access.xml similarity index 100% rename from install/langs/bn/data/quick_access.xml rename to install-dev/langs/bn/data/quick_access.xml diff --git a/install/langs/bn/data/risk.xml b/install-dev/langs/bn/data/risk.xml similarity index 100% rename from install/langs/bn/data/risk.xml rename to install-dev/langs/bn/data/risk.xml diff --git a/install/langs/bn/data/source.xml b/install-dev/langs/bn/data/source.xml similarity index 100% rename from install/langs/bn/data/source.xml rename to install-dev/langs/bn/data/source.xml diff --git a/install/langs/bn/data/stock_mvt_reason.xml b/install-dev/langs/bn/data/stock_mvt_reason.xml similarity index 100% rename from install/langs/bn/data/stock_mvt_reason.xml rename to install-dev/langs/bn/data/stock_mvt_reason.xml diff --git a/install/langs/bn/data/supplier_order_state.xml b/install-dev/langs/bn/data/supplier_order_state.xml similarity index 100% rename from install/langs/bn/data/supplier_order_state.xml rename to install-dev/langs/bn/data/supplier_order_state.xml diff --git a/install/langs/bn/data/supply_order_state.xml b/install-dev/langs/bn/data/supply_order_state.xml similarity index 100% rename from install/langs/bn/data/supply_order_state.xml rename to install-dev/langs/bn/data/supply_order_state.xml diff --git a/install/langs/bn/data/tab.xml b/install-dev/langs/bn/data/tab.xml similarity index 96% rename from install/langs/bn/data/tab.xml rename to install-dev/langs/bn/data/tab.xml index 31b4e9ec8..47a56976d 100644 --- a/install/langs/bn/data/tab.xml +++ b/install-dev/langs/bn/data/tab.xml @@ -24,6 +24,7 @@ + @@ -34,10 +35,12 @@ + + diff --git a/install/langs/bn/flag.jpg b/install-dev/langs/bn/flag.jpg similarity index 100% rename from install/langs/bn/flag.jpg rename to install-dev/langs/bn/flag.jpg diff --git a/install/langs/bn/img/bn-default-category.jpg b/install-dev/langs/bn/img/bn-default-category.jpg similarity index 100% rename from install/langs/bn/img/bn-default-category.jpg rename to install-dev/langs/bn/img/bn-default-category.jpg diff --git a/install/langs/bn/img/bn-default-home.jpg b/install-dev/langs/bn/img/bn-default-home.jpg similarity index 100% rename from install/langs/bn/img/bn-default-home.jpg rename to install-dev/langs/bn/img/bn-default-home.jpg diff --git a/install/langs/bn/img/bn-default-large.jpg b/install-dev/langs/bn/img/bn-default-large.jpg similarity index 100% rename from install/langs/bn/img/bn-default-large.jpg rename to install-dev/langs/bn/img/bn-default-large.jpg diff --git a/install/langs/bn/img/bn-default-large_scene.jpg b/install-dev/langs/bn/img/bn-default-large_scene.jpg similarity index 100% rename from install/langs/bn/img/bn-default-large_scene.jpg rename to install-dev/langs/bn/img/bn-default-large_scene.jpg diff --git a/install/langs/bn/img/bn-default-medium.jpg b/install-dev/langs/bn/img/bn-default-medium.jpg similarity index 100% rename from install/langs/bn/img/bn-default-medium.jpg rename to install-dev/langs/bn/img/bn-default-medium.jpg diff --git a/install/langs/bn/img/bn-default-small.jpg b/install-dev/langs/bn/img/bn-default-small.jpg similarity index 100% rename from install/langs/bn/img/bn-default-small.jpg rename to install-dev/langs/bn/img/bn-default-small.jpg diff --git a/install/langs/bn/img/bn-default-thickbox.jpg b/install-dev/langs/bn/img/bn-default-thickbox.jpg similarity index 100% rename from install/langs/bn/img/bn-default-thickbox.jpg rename to install-dev/langs/bn/img/bn-default-thickbox.jpg diff --git a/install/langs/bn/img/bn-default-thumb_scene.jpg b/install-dev/langs/bn/img/bn-default-thumb_scene.jpg similarity index 100% rename from install/langs/bn/img/bn-default-thumb_scene.jpg rename to install-dev/langs/bn/img/bn-default-thumb_scene.jpg diff --git a/install/langs/bn/img/bn.jpg b/install-dev/langs/bn/img/bn.jpg similarity index 100% rename from install/langs/bn/img/bn.jpg rename to install-dev/langs/bn/img/bn.jpg diff --git a/install/langs/bn/img/index.php b/install-dev/langs/bn/img/index.php similarity index 100% rename from install/langs/bn/img/index.php rename to install-dev/langs/bn/img/index.php diff --git a/install/langs/bn/index.php b/install-dev/langs/bn/index.php similarity index 100% rename from install/langs/bn/index.php rename to install-dev/langs/bn/index.php diff --git a/install/langs/bn/install.php b/install-dev/langs/bn/install.php similarity index 100% rename from install/langs/bn/install.php rename to install-dev/langs/bn/install.php diff --git a/install/langs/bn/language.xml b/install-dev/langs/bn/language.xml similarity index 100% rename from install/langs/bn/language.xml rename to install-dev/langs/bn/language.xml diff --git a/install/langs/br/data/business_source.xml b/install-dev/langs/br/data/business_source.xml similarity index 100% rename from install/langs/br/data/business_source.xml rename to install-dev/langs/br/data/business_source.xml diff --git a/install/langs/br/data/carrier.xml b/install-dev/langs/br/data/carrier.xml similarity index 100% rename from install/langs/br/data/carrier.xml rename to install-dev/langs/br/data/carrier.xml diff --git a/install/langs/br/data/category.xml b/install-dev/langs/br/data/category.xml similarity index 100% rename from install/langs/br/data/category.xml rename to install-dev/langs/br/data/category.xml diff --git a/install/langs/br/data/cms.xml b/install-dev/langs/br/data/cms.xml similarity index 100% rename from install/langs/br/data/cms.xml rename to install-dev/langs/br/data/cms.xml diff --git a/install/langs/br/data/cms_category.xml b/install-dev/langs/br/data/cms_category.xml similarity index 100% rename from install/langs/br/data/cms_category.xml rename to install-dev/langs/br/data/cms_category.xml diff --git a/install/langs/br/data/configuration.xml b/install-dev/langs/br/data/configuration.xml similarity index 100% rename from install/langs/br/data/configuration.xml rename to install-dev/langs/br/data/configuration.xml diff --git a/install/langs/br/data/contact.xml b/install-dev/langs/br/data/contact.xml similarity index 100% rename from install/langs/br/data/contact.xml rename to install-dev/langs/br/data/contact.xml diff --git a/install/langs/br/data/country.xml b/install-dev/langs/br/data/country.xml similarity index 100% rename from install/langs/br/data/country.xml rename to install-dev/langs/br/data/country.xml diff --git a/install/langs/br/data/gender.xml b/install-dev/langs/br/data/gender.xml similarity index 100% rename from install/langs/br/data/gender.xml rename to install-dev/langs/br/data/gender.xml diff --git a/install/langs/br/data/group.xml b/install-dev/langs/br/data/group.xml similarity index 100% rename from install/langs/br/data/group.xml rename to install-dev/langs/br/data/group.xml diff --git a/install/langs/br/data/index.php b/install-dev/langs/br/data/index.php similarity index 100% rename from install/langs/br/data/index.php rename to install-dev/langs/br/data/index.php diff --git a/install/langs/br/data/meta.xml b/install-dev/langs/br/data/meta.xml similarity index 100% rename from install/langs/br/data/meta.xml rename to install-dev/langs/br/data/meta.xml diff --git a/install/langs/br/data/order_return_state.xml b/install-dev/langs/br/data/order_return_state.xml similarity index 100% rename from install/langs/br/data/order_return_state.xml rename to install-dev/langs/br/data/order_return_state.xml diff --git a/install/langs/br/data/order_state.xml b/install-dev/langs/br/data/order_state.xml similarity index 100% rename from install/langs/br/data/order_state.xml rename to install-dev/langs/br/data/order_state.xml diff --git a/install/langs/br/data/profile.xml b/install-dev/langs/br/data/profile.xml similarity index 100% rename from install/langs/br/data/profile.xml rename to install-dev/langs/br/data/profile.xml diff --git a/install/langs/br/data/quick_access.xml b/install-dev/langs/br/data/quick_access.xml similarity index 100% rename from install/langs/br/data/quick_access.xml rename to install-dev/langs/br/data/quick_access.xml diff --git a/install/langs/br/data/risk.xml b/install-dev/langs/br/data/risk.xml similarity index 100% rename from install/langs/br/data/risk.xml rename to install-dev/langs/br/data/risk.xml diff --git a/install/langs/br/data/source.xml b/install-dev/langs/br/data/source.xml similarity index 100% rename from install/langs/br/data/source.xml rename to install-dev/langs/br/data/source.xml diff --git a/install/langs/br/data/stock_mvt_reason.xml b/install-dev/langs/br/data/stock_mvt_reason.xml similarity index 100% rename from install/langs/br/data/stock_mvt_reason.xml rename to install-dev/langs/br/data/stock_mvt_reason.xml diff --git a/install/langs/br/data/supplier_order_state.xml b/install-dev/langs/br/data/supplier_order_state.xml similarity index 100% rename from install/langs/br/data/supplier_order_state.xml rename to install-dev/langs/br/data/supplier_order_state.xml diff --git a/install/langs/br/data/supply_order_state.xml b/install-dev/langs/br/data/supply_order_state.xml similarity index 100% rename from install/langs/br/data/supply_order_state.xml rename to install-dev/langs/br/data/supply_order_state.xml diff --git a/install/langs/br/data/tab.xml b/install-dev/langs/br/data/tab.xml similarity index 96% rename from install/langs/br/data/tab.xml rename to install-dev/langs/br/data/tab.xml index 332e9b093..3ce9f48e5 100644 --- a/install/langs/br/data/tab.xml +++ b/install-dev/langs/br/data/tab.xml @@ -37,6 +37,7 @@ + @@ -69,6 +70,7 @@ + @@ -86,6 +88,7 @@ + diff --git a/install/langs/br/flag.jpg b/install-dev/langs/br/flag.jpg similarity index 100% rename from install/langs/br/flag.jpg rename to install-dev/langs/br/flag.jpg diff --git a/install/langs/br/img/br-default-category.jpg b/install-dev/langs/br/img/br-default-category.jpg similarity index 100% rename from install/langs/br/img/br-default-category.jpg rename to install-dev/langs/br/img/br-default-category.jpg diff --git a/install/langs/br/img/br-default-home.jpg b/install-dev/langs/br/img/br-default-home.jpg similarity index 100% rename from install/langs/br/img/br-default-home.jpg rename to install-dev/langs/br/img/br-default-home.jpg diff --git a/install/langs/br/img/br-default-large.jpg b/install-dev/langs/br/img/br-default-large.jpg similarity index 100% rename from install/langs/br/img/br-default-large.jpg rename to install-dev/langs/br/img/br-default-large.jpg diff --git a/install/langs/br/img/br-default-large_scene.jpg b/install-dev/langs/br/img/br-default-large_scene.jpg similarity index 100% rename from install/langs/br/img/br-default-large_scene.jpg rename to install-dev/langs/br/img/br-default-large_scene.jpg diff --git a/install/langs/br/img/br-default-medium.jpg b/install-dev/langs/br/img/br-default-medium.jpg similarity index 100% rename from install/langs/br/img/br-default-medium.jpg rename to install-dev/langs/br/img/br-default-medium.jpg diff --git a/install/langs/br/img/br-default-small.jpg b/install-dev/langs/br/img/br-default-small.jpg similarity index 100% rename from install/langs/br/img/br-default-small.jpg rename to install-dev/langs/br/img/br-default-small.jpg diff --git a/install/langs/br/img/br-default-thickbox.jpg b/install-dev/langs/br/img/br-default-thickbox.jpg similarity index 100% rename from install/langs/br/img/br-default-thickbox.jpg rename to install-dev/langs/br/img/br-default-thickbox.jpg diff --git a/install/langs/br/img/br-default-thumb_scene.jpg b/install-dev/langs/br/img/br-default-thumb_scene.jpg similarity index 100% rename from install/langs/br/img/br-default-thumb_scene.jpg rename to install-dev/langs/br/img/br-default-thumb_scene.jpg diff --git a/install/langs/br/img/br.jpg b/install-dev/langs/br/img/br.jpg similarity index 100% rename from install/langs/br/img/br.jpg rename to install-dev/langs/br/img/br.jpg diff --git a/install/langs/br/img/index.php b/install-dev/langs/br/img/index.php similarity index 100% rename from install/langs/br/img/index.php rename to install-dev/langs/br/img/index.php diff --git a/install/langs/br/index.php b/install-dev/langs/br/index.php similarity index 100% rename from install/langs/br/index.php rename to install-dev/langs/br/index.php diff --git a/install/langs/br/install.php b/install-dev/langs/br/install.php similarity index 100% rename from install/langs/br/install.php rename to install-dev/langs/br/install.php diff --git a/install/langs/br/language.xml b/install-dev/langs/br/language.xml similarity index 100% rename from install/langs/br/language.xml rename to install-dev/langs/br/language.xml diff --git a/install/langs/ca/flag.jpg b/install-dev/langs/ca/flag.jpg similarity index 100% rename from install/langs/ca/flag.jpg rename to install-dev/langs/ca/flag.jpg diff --git a/install/langs/ca/index.php b/install-dev/langs/ca/index.php similarity index 100% rename from install/langs/ca/index.php rename to install-dev/langs/ca/index.php diff --git a/install/langs/ca/install.php b/install-dev/langs/ca/install.php similarity index 100% rename from install/langs/ca/install.php rename to install-dev/langs/ca/install.php diff --git a/install/langs/ca/language.xml b/install-dev/langs/ca/language.xml similarity index 100% rename from install/langs/ca/language.xml rename to install-dev/langs/ca/language.xml diff --git a/install/langs/cs/data/business_source.xml b/install-dev/langs/cs/data/business_source.xml similarity index 100% rename from install/langs/cs/data/business_source.xml rename to install-dev/langs/cs/data/business_source.xml diff --git a/install/langs/cs/data/carrier.xml b/install-dev/langs/cs/data/carrier.xml similarity index 100% rename from install/langs/cs/data/carrier.xml rename to install-dev/langs/cs/data/carrier.xml diff --git a/install/langs/cs/data/category.xml b/install-dev/langs/cs/data/category.xml similarity index 100% rename from install/langs/cs/data/category.xml rename to install-dev/langs/cs/data/category.xml diff --git a/install/langs/cs/data/cms.xml b/install-dev/langs/cs/data/cms.xml similarity index 100% rename from install/langs/cs/data/cms.xml rename to install-dev/langs/cs/data/cms.xml diff --git a/install/langs/cs/data/cms_category.xml b/install-dev/langs/cs/data/cms_category.xml similarity index 100% rename from install/langs/cs/data/cms_category.xml rename to install-dev/langs/cs/data/cms_category.xml diff --git a/install/langs/cs/data/configuration.xml b/install-dev/langs/cs/data/configuration.xml similarity index 100% rename from install/langs/cs/data/configuration.xml rename to install-dev/langs/cs/data/configuration.xml diff --git a/install/langs/cs/data/contact.xml b/install-dev/langs/cs/data/contact.xml similarity index 100% rename from install/langs/cs/data/contact.xml rename to install-dev/langs/cs/data/contact.xml diff --git a/install/langs/cs/data/country.xml b/install-dev/langs/cs/data/country.xml similarity index 100% rename from install/langs/cs/data/country.xml rename to install-dev/langs/cs/data/country.xml diff --git a/install/langs/cs/data/gender.xml b/install-dev/langs/cs/data/gender.xml similarity index 100% rename from install/langs/cs/data/gender.xml rename to install-dev/langs/cs/data/gender.xml diff --git a/install/langs/cs/data/group.xml b/install-dev/langs/cs/data/group.xml similarity index 100% rename from install/langs/cs/data/group.xml rename to install-dev/langs/cs/data/group.xml diff --git a/install/langs/cs/data/index.php b/install-dev/langs/cs/data/index.php similarity index 100% rename from install/langs/cs/data/index.php rename to install-dev/langs/cs/data/index.php diff --git a/install/langs/cs/data/meta.xml b/install-dev/langs/cs/data/meta.xml similarity index 100% rename from install/langs/cs/data/meta.xml rename to install-dev/langs/cs/data/meta.xml diff --git a/install/langs/cs/data/order_return_state.xml b/install-dev/langs/cs/data/order_return_state.xml similarity index 100% rename from install/langs/cs/data/order_return_state.xml rename to install-dev/langs/cs/data/order_return_state.xml diff --git a/install/langs/cs/data/order_state.xml b/install-dev/langs/cs/data/order_state.xml similarity index 100% rename from install/langs/cs/data/order_state.xml rename to install-dev/langs/cs/data/order_state.xml diff --git a/install/langs/cs/data/profile.xml b/install-dev/langs/cs/data/profile.xml similarity index 100% rename from install/langs/cs/data/profile.xml rename to install-dev/langs/cs/data/profile.xml diff --git a/install/langs/cs/data/quick_access.xml b/install-dev/langs/cs/data/quick_access.xml similarity index 100% rename from install/langs/cs/data/quick_access.xml rename to install-dev/langs/cs/data/quick_access.xml diff --git a/install/langs/cs/data/risk.xml b/install-dev/langs/cs/data/risk.xml similarity index 100% rename from install/langs/cs/data/risk.xml rename to install-dev/langs/cs/data/risk.xml diff --git a/install/langs/cs/data/source.xml b/install-dev/langs/cs/data/source.xml similarity index 100% rename from install/langs/cs/data/source.xml rename to install-dev/langs/cs/data/source.xml diff --git a/install/langs/cs/data/stock_mvt_reason.xml b/install-dev/langs/cs/data/stock_mvt_reason.xml similarity index 100% rename from install/langs/cs/data/stock_mvt_reason.xml rename to install-dev/langs/cs/data/stock_mvt_reason.xml diff --git a/install/langs/cs/data/supplier_order_state.xml b/install-dev/langs/cs/data/supplier_order_state.xml similarity index 100% rename from install/langs/cs/data/supplier_order_state.xml rename to install-dev/langs/cs/data/supplier_order_state.xml diff --git a/install/langs/cs/data/supply_order_state.xml b/install-dev/langs/cs/data/supply_order_state.xml similarity index 100% rename from install/langs/cs/data/supply_order_state.xml rename to install-dev/langs/cs/data/supply_order_state.xml diff --git a/install/langs/cs/data/tab.xml b/install-dev/langs/cs/data/tab.xml similarity index 96% rename from install/langs/cs/data/tab.xml rename to install-dev/langs/cs/data/tab.xml index 55f106284..766be0f02 100644 --- a/install/langs/cs/data/tab.xml +++ b/install-dev/langs/cs/data/tab.xml @@ -22,6 +22,7 @@ + @@ -32,10 +33,12 @@ + + diff --git a/install/langs/cs/flag.jpg b/install-dev/langs/cs/flag.jpg similarity index 100% rename from install/langs/cs/flag.jpg rename to install-dev/langs/cs/flag.jpg diff --git a/install/langs/cs/img/cs-default-category.jpg b/install-dev/langs/cs/img/cs-default-category.jpg similarity index 100% rename from install/langs/cs/img/cs-default-category.jpg rename to install-dev/langs/cs/img/cs-default-category.jpg diff --git a/install/langs/cs/img/cs-default-home.jpg b/install-dev/langs/cs/img/cs-default-home.jpg similarity index 100% rename from install/langs/cs/img/cs-default-home.jpg rename to install-dev/langs/cs/img/cs-default-home.jpg diff --git a/install/langs/cs/img/cs-default-large.jpg b/install-dev/langs/cs/img/cs-default-large.jpg similarity index 100% rename from install/langs/cs/img/cs-default-large.jpg rename to install-dev/langs/cs/img/cs-default-large.jpg diff --git a/install/langs/cs/img/cs-default-large_scene.jpg b/install-dev/langs/cs/img/cs-default-large_scene.jpg similarity index 100% rename from install/langs/cs/img/cs-default-large_scene.jpg rename to install-dev/langs/cs/img/cs-default-large_scene.jpg diff --git a/install/langs/cs/img/cs-default-medium.jpg b/install-dev/langs/cs/img/cs-default-medium.jpg similarity index 100% rename from install/langs/cs/img/cs-default-medium.jpg rename to install-dev/langs/cs/img/cs-default-medium.jpg diff --git a/install/langs/cs/img/cs-default-small.jpg b/install-dev/langs/cs/img/cs-default-small.jpg similarity index 100% rename from install/langs/cs/img/cs-default-small.jpg rename to install-dev/langs/cs/img/cs-default-small.jpg diff --git a/install/langs/cs/img/cs-default-thickbox.jpg b/install-dev/langs/cs/img/cs-default-thickbox.jpg similarity index 100% rename from install/langs/cs/img/cs-default-thickbox.jpg rename to install-dev/langs/cs/img/cs-default-thickbox.jpg diff --git a/install/langs/cs/img/cs-default-thumb_scene.jpg b/install-dev/langs/cs/img/cs-default-thumb_scene.jpg similarity index 100% rename from install/langs/cs/img/cs-default-thumb_scene.jpg rename to install-dev/langs/cs/img/cs-default-thumb_scene.jpg diff --git a/install/langs/cs/img/cs.jpg b/install-dev/langs/cs/img/cs.jpg similarity index 100% rename from install/langs/cs/img/cs.jpg rename to install-dev/langs/cs/img/cs.jpg diff --git a/install/langs/cs/img/index.php b/install-dev/langs/cs/img/index.php similarity index 100% rename from install/langs/cs/img/index.php rename to install-dev/langs/cs/img/index.php diff --git a/install/langs/cs/index.php b/install-dev/langs/cs/index.php similarity index 100% rename from install/langs/cs/index.php rename to install-dev/langs/cs/index.php diff --git a/install/langs/cs/install.php b/install-dev/langs/cs/install.php similarity index 100% rename from install/langs/cs/install.php rename to install-dev/langs/cs/install.php diff --git a/install/langs/cs/language.xml b/install-dev/langs/cs/language.xml similarity index 100% rename from install/langs/cs/language.xml rename to install-dev/langs/cs/language.xml diff --git a/install/langs/de/data/business_source.xml b/install-dev/langs/de/data/business_source.xml similarity index 100% rename from install/langs/de/data/business_source.xml rename to install-dev/langs/de/data/business_source.xml diff --git a/install/langs/de/data/carrier.xml b/install-dev/langs/de/data/carrier.xml similarity index 100% rename from install/langs/de/data/carrier.xml rename to install-dev/langs/de/data/carrier.xml diff --git a/install/langs/de/data/category.xml b/install-dev/langs/de/data/category.xml similarity index 100% rename from install/langs/de/data/category.xml rename to install-dev/langs/de/data/category.xml diff --git a/install/langs/de/data/cms.xml b/install-dev/langs/de/data/cms.xml similarity index 100% rename from install/langs/de/data/cms.xml rename to install-dev/langs/de/data/cms.xml diff --git a/install/langs/de/data/cms_category.xml b/install-dev/langs/de/data/cms_category.xml similarity index 100% rename from install/langs/de/data/cms_category.xml rename to install-dev/langs/de/data/cms_category.xml diff --git a/install/langs/de/data/configuration.xml b/install-dev/langs/de/data/configuration.xml similarity index 100% rename from install/langs/de/data/configuration.xml rename to install-dev/langs/de/data/configuration.xml diff --git a/install/langs/de/data/contact.xml b/install-dev/langs/de/data/contact.xml similarity index 100% rename from install/langs/de/data/contact.xml rename to install-dev/langs/de/data/contact.xml diff --git a/install/langs/de/data/country.xml b/install-dev/langs/de/data/country.xml similarity index 100% rename from install/langs/de/data/country.xml rename to install-dev/langs/de/data/country.xml diff --git a/install/langs/de/data/gender.xml b/install-dev/langs/de/data/gender.xml similarity index 100% rename from install/langs/de/data/gender.xml rename to install-dev/langs/de/data/gender.xml diff --git a/install/langs/de/data/group.xml b/install-dev/langs/de/data/group.xml similarity index 100% rename from install/langs/de/data/group.xml rename to install-dev/langs/de/data/group.xml diff --git a/install/langs/de/data/index.php b/install-dev/langs/de/data/index.php similarity index 100% rename from install/langs/de/data/index.php rename to install-dev/langs/de/data/index.php diff --git a/install/langs/de/data/meta.xml b/install-dev/langs/de/data/meta.xml similarity index 100% rename from install/langs/de/data/meta.xml rename to install-dev/langs/de/data/meta.xml diff --git a/install/langs/de/data/order_return_state.xml b/install-dev/langs/de/data/order_return_state.xml similarity index 100% rename from install/langs/de/data/order_return_state.xml rename to install-dev/langs/de/data/order_return_state.xml diff --git a/install/langs/de/data/order_state.xml b/install-dev/langs/de/data/order_state.xml similarity index 100% rename from install/langs/de/data/order_state.xml rename to install-dev/langs/de/data/order_state.xml diff --git a/install/langs/de/data/profile.xml b/install-dev/langs/de/data/profile.xml similarity index 100% rename from install/langs/de/data/profile.xml rename to install-dev/langs/de/data/profile.xml diff --git a/install/langs/de/data/quick_access.xml b/install-dev/langs/de/data/quick_access.xml similarity index 100% rename from install/langs/de/data/quick_access.xml rename to install-dev/langs/de/data/quick_access.xml diff --git a/install/langs/de/data/risk.xml b/install-dev/langs/de/data/risk.xml similarity index 100% rename from install/langs/de/data/risk.xml rename to install-dev/langs/de/data/risk.xml diff --git a/install/langs/de/data/source.xml b/install-dev/langs/de/data/source.xml similarity index 100% rename from install/langs/de/data/source.xml rename to install-dev/langs/de/data/source.xml diff --git a/install/langs/de/data/stock_mvt_reason.xml b/install-dev/langs/de/data/stock_mvt_reason.xml similarity index 100% rename from install/langs/de/data/stock_mvt_reason.xml rename to install-dev/langs/de/data/stock_mvt_reason.xml diff --git a/install/langs/de/data/supply_order_state.xml b/install-dev/langs/de/data/supply_order_state.xml similarity index 100% rename from install/langs/de/data/supply_order_state.xml rename to install-dev/langs/de/data/supply_order_state.xml diff --git a/install/langs/de/data/tab.xml b/install-dev/langs/de/data/tab.xml similarity index 96% rename from install/langs/de/data/tab.xml rename to install-dev/langs/de/data/tab.xml index 560787ede..05855af74 100644 --- a/install/langs/de/data/tab.xml +++ b/install-dev/langs/de/data/tab.xml @@ -37,6 +37,7 @@ + @@ -69,6 +70,7 @@ + @@ -86,6 +88,7 @@ + diff --git a/install/langs/de/flag.jpg b/install-dev/langs/de/flag.jpg similarity index 100% rename from install/langs/de/flag.jpg rename to install-dev/langs/de/flag.jpg diff --git a/install/langs/de/img/de-default-category.jpg b/install-dev/langs/de/img/de-default-category.jpg similarity index 100% rename from install/langs/de/img/de-default-category.jpg rename to install-dev/langs/de/img/de-default-category.jpg diff --git a/install/langs/de/img/de-default-home.jpg b/install-dev/langs/de/img/de-default-home.jpg similarity index 100% rename from install/langs/de/img/de-default-home.jpg rename to install-dev/langs/de/img/de-default-home.jpg diff --git a/install/langs/de/img/de-default-large.jpg b/install-dev/langs/de/img/de-default-large.jpg similarity index 100% rename from install/langs/de/img/de-default-large.jpg rename to install-dev/langs/de/img/de-default-large.jpg diff --git a/install/langs/de/img/de-default-large_scene.jpg b/install-dev/langs/de/img/de-default-large_scene.jpg similarity index 100% rename from install/langs/de/img/de-default-large_scene.jpg rename to install-dev/langs/de/img/de-default-large_scene.jpg diff --git a/install/langs/de/img/de-default-medium.jpg b/install-dev/langs/de/img/de-default-medium.jpg similarity index 100% rename from install/langs/de/img/de-default-medium.jpg rename to install-dev/langs/de/img/de-default-medium.jpg diff --git a/install/langs/de/img/de-default-small.jpg b/install-dev/langs/de/img/de-default-small.jpg similarity index 100% rename from install/langs/de/img/de-default-small.jpg rename to install-dev/langs/de/img/de-default-small.jpg diff --git a/install/langs/de/img/de-default-thickbox.jpg b/install-dev/langs/de/img/de-default-thickbox.jpg similarity index 100% rename from install/langs/de/img/de-default-thickbox.jpg rename to install-dev/langs/de/img/de-default-thickbox.jpg diff --git a/install/langs/de/img/de-default-thumb_scene.jpg b/install-dev/langs/de/img/de-default-thumb_scene.jpg similarity index 100% rename from install/langs/de/img/de-default-thumb_scene.jpg rename to install-dev/langs/de/img/de-default-thumb_scene.jpg diff --git a/install/langs/de/img/de.jpg b/install-dev/langs/de/img/de.jpg similarity index 100% rename from install/langs/de/img/de.jpg rename to install-dev/langs/de/img/de.jpg diff --git a/install/langs/de/img/index.php b/install-dev/langs/de/img/index.php similarity index 100% rename from install/langs/de/img/index.php rename to install-dev/langs/de/img/index.php diff --git a/install/langs/de/index.php b/install-dev/langs/de/index.php similarity index 100% rename from install/langs/de/index.php rename to install-dev/langs/de/index.php diff --git a/install/langs/de/install.php b/install-dev/langs/de/install.php similarity index 100% rename from install/langs/de/install.php rename to install-dev/langs/de/install.php diff --git a/install/langs/de/language.xml b/install-dev/langs/de/language.xml similarity index 100% rename from install/langs/de/language.xml rename to install-dev/langs/de/language.xml diff --git a/install/langs/en/data/business_source.xml b/install-dev/langs/en/data/business_source.xml similarity index 100% rename from install/langs/en/data/business_source.xml rename to install-dev/langs/en/data/business_source.xml diff --git a/install/langs/en/data/carrier.xml b/install-dev/langs/en/data/carrier.xml similarity index 100% rename from install/langs/en/data/carrier.xml rename to install-dev/langs/en/data/carrier.xml diff --git a/install/langs/en/data/category.xml b/install-dev/langs/en/data/category.xml similarity index 100% rename from install/langs/en/data/category.xml rename to install-dev/langs/en/data/category.xml diff --git a/install/langs/en/data/cms.xml b/install-dev/langs/en/data/cms.xml similarity index 100% rename from install/langs/en/data/cms.xml rename to install-dev/langs/en/data/cms.xml diff --git a/install/langs/en/data/cms_category.xml b/install-dev/langs/en/data/cms_category.xml similarity index 100% rename from install/langs/en/data/cms_category.xml rename to install-dev/langs/en/data/cms_category.xml diff --git a/install/langs/en/data/configuration.xml b/install-dev/langs/en/data/configuration.xml similarity index 100% rename from install/langs/en/data/configuration.xml rename to install-dev/langs/en/data/configuration.xml diff --git a/install/langs/en/data/contact.xml b/install-dev/langs/en/data/contact.xml similarity index 100% rename from install/langs/en/data/contact.xml rename to install-dev/langs/en/data/contact.xml diff --git a/install/langs/en/data/country.xml b/install-dev/langs/en/data/country.xml similarity index 100% rename from install/langs/en/data/country.xml rename to install-dev/langs/en/data/country.xml diff --git a/install/langs/en/data/gender.xml b/install-dev/langs/en/data/gender.xml similarity index 100% rename from install/langs/en/data/gender.xml rename to install-dev/langs/en/data/gender.xml diff --git a/install/langs/en/data/group.xml b/install-dev/langs/en/data/group.xml similarity index 100% rename from install/langs/en/data/group.xml rename to install-dev/langs/en/data/group.xml diff --git a/install/langs/en/data/index.php b/install-dev/langs/en/data/index.php similarity index 100% rename from install/langs/en/data/index.php rename to install-dev/langs/en/data/index.php diff --git a/install/langs/en/data/meta.xml b/install-dev/langs/en/data/meta.xml similarity index 100% rename from install/langs/en/data/meta.xml rename to install-dev/langs/en/data/meta.xml diff --git a/install/langs/en/data/order_return_state.xml b/install-dev/langs/en/data/order_return_state.xml similarity index 100% rename from install/langs/en/data/order_return_state.xml rename to install-dev/langs/en/data/order_return_state.xml diff --git a/install/langs/en/data/order_state.xml b/install-dev/langs/en/data/order_state.xml similarity index 100% rename from install/langs/en/data/order_state.xml rename to install-dev/langs/en/data/order_state.xml diff --git a/install/langs/en/data/profile.xml b/install-dev/langs/en/data/profile.xml similarity index 100% rename from install/langs/en/data/profile.xml rename to install-dev/langs/en/data/profile.xml diff --git a/install/langs/en/data/quick_access.xml b/install-dev/langs/en/data/quick_access.xml similarity index 100% rename from install/langs/en/data/quick_access.xml rename to install-dev/langs/en/data/quick_access.xml diff --git a/install/langs/en/data/risk.xml b/install-dev/langs/en/data/risk.xml similarity index 100% rename from install/langs/en/data/risk.xml rename to install-dev/langs/en/data/risk.xml diff --git a/install/langs/en/data/source.xml b/install-dev/langs/en/data/source.xml similarity index 100% rename from install/langs/en/data/source.xml rename to install-dev/langs/en/data/source.xml diff --git a/install/langs/en/data/stock_mvt_reason.xml b/install-dev/langs/en/data/stock_mvt_reason.xml similarity index 100% rename from install/langs/en/data/stock_mvt_reason.xml rename to install-dev/langs/en/data/stock_mvt_reason.xml diff --git a/install/langs/en/data/supplier_order_state.xml b/install-dev/langs/en/data/supplier_order_state.xml similarity index 100% rename from install/langs/en/data/supplier_order_state.xml rename to install-dev/langs/en/data/supplier_order_state.xml diff --git a/install/langs/en/data/supply_order_state.xml b/install-dev/langs/en/data/supply_order_state.xml similarity index 100% rename from install/langs/en/data/supply_order_state.xml rename to install-dev/langs/en/data/supply_order_state.xml diff --git a/install/langs/en/data/tab.xml b/install-dev/langs/en/data/tab.xml similarity index 98% rename from install/langs/en/data/tab.xml rename to install-dev/langs/en/data/tab.xml index 791f58a5a..ed8cd3da5 100644 --- a/install/langs/en/data/tab.xml +++ b/install-dev/langs/en/data/tab.xml @@ -22,6 +22,7 @@ + diff --git a/install/langs/en/flag.jpg b/install-dev/langs/en/flag.jpg similarity index 100% rename from install/langs/en/flag.jpg rename to install-dev/langs/en/flag.jpg diff --git a/install/langs/en/img/en-default-category.jpg b/install-dev/langs/en/img/en-default-category.jpg similarity index 100% rename from install/langs/en/img/en-default-category.jpg rename to install-dev/langs/en/img/en-default-category.jpg diff --git a/install/langs/en/img/en-default-home.jpg b/install-dev/langs/en/img/en-default-home.jpg similarity index 100% rename from install/langs/en/img/en-default-home.jpg rename to install-dev/langs/en/img/en-default-home.jpg diff --git a/install/langs/en/img/en-default-large.jpg b/install-dev/langs/en/img/en-default-large.jpg similarity index 100% rename from install/langs/en/img/en-default-large.jpg rename to install-dev/langs/en/img/en-default-large.jpg diff --git a/install/langs/en/img/en-default-large_scene.jpg b/install-dev/langs/en/img/en-default-large_scene.jpg similarity index 100% rename from install/langs/en/img/en-default-large_scene.jpg rename to install-dev/langs/en/img/en-default-large_scene.jpg diff --git a/install/langs/en/img/en-default-medium.jpg b/install-dev/langs/en/img/en-default-medium.jpg similarity index 100% rename from install/langs/en/img/en-default-medium.jpg rename to install-dev/langs/en/img/en-default-medium.jpg diff --git a/install/langs/en/img/en-default-small.jpg b/install-dev/langs/en/img/en-default-small.jpg similarity index 100% rename from install/langs/en/img/en-default-small.jpg rename to install-dev/langs/en/img/en-default-small.jpg diff --git a/install/langs/en/img/en-default-thickbox.jpg b/install-dev/langs/en/img/en-default-thickbox.jpg similarity index 100% rename from install/langs/en/img/en-default-thickbox.jpg rename to install-dev/langs/en/img/en-default-thickbox.jpg diff --git a/install/langs/en/img/en-default-thumb_scene.jpg b/install-dev/langs/en/img/en-default-thumb_scene.jpg similarity index 100% rename from install/langs/en/img/en-default-thumb_scene.jpg rename to install-dev/langs/en/img/en-default-thumb_scene.jpg diff --git a/install/langs/en/img/en.jpg b/install-dev/langs/en/img/en.jpg similarity index 100% rename from install/langs/en/img/en.jpg rename to install-dev/langs/en/img/en.jpg diff --git a/install/langs/en/img/index.php b/install-dev/langs/en/img/index.php similarity index 100% rename from install/langs/en/img/index.php rename to install-dev/langs/en/img/index.php diff --git a/install/langs/en/index.php b/install-dev/langs/en/index.php similarity index 100% rename from install/langs/en/index.php rename to install-dev/langs/en/index.php diff --git a/install/langs/en/install.php b/install-dev/langs/en/install.php similarity index 100% rename from install/langs/en/install.php rename to install-dev/langs/en/install.php diff --git a/install/langs/en/language.xml b/install-dev/langs/en/language.xml similarity index 100% rename from install/langs/en/language.xml rename to install-dev/langs/en/language.xml diff --git a/install/langs/es/data/business_source.xml b/install-dev/langs/es/data/business_source.xml similarity index 100% rename from install/langs/es/data/business_source.xml rename to install-dev/langs/es/data/business_source.xml diff --git a/install/langs/es/data/carrier.xml b/install-dev/langs/es/data/carrier.xml similarity index 100% rename from install/langs/es/data/carrier.xml rename to install-dev/langs/es/data/carrier.xml diff --git a/install/langs/es/data/category.xml b/install-dev/langs/es/data/category.xml similarity index 100% rename from install/langs/es/data/category.xml rename to install-dev/langs/es/data/category.xml diff --git a/install/langs/es/data/cms.xml b/install-dev/langs/es/data/cms.xml similarity index 100% rename from install/langs/es/data/cms.xml rename to install-dev/langs/es/data/cms.xml diff --git a/install/langs/es/data/cms_category.xml b/install-dev/langs/es/data/cms_category.xml similarity index 100% rename from install/langs/es/data/cms_category.xml rename to install-dev/langs/es/data/cms_category.xml diff --git a/install/langs/es/data/configuration.xml b/install-dev/langs/es/data/configuration.xml similarity index 100% rename from install/langs/es/data/configuration.xml rename to install-dev/langs/es/data/configuration.xml diff --git a/install/langs/es/data/contact.xml b/install-dev/langs/es/data/contact.xml similarity index 100% rename from install/langs/es/data/contact.xml rename to install-dev/langs/es/data/contact.xml diff --git a/install/langs/es/data/country.xml b/install-dev/langs/es/data/country.xml similarity index 100% rename from install/langs/es/data/country.xml rename to install-dev/langs/es/data/country.xml diff --git a/install/langs/es/data/gender.xml b/install-dev/langs/es/data/gender.xml similarity index 100% rename from install/langs/es/data/gender.xml rename to install-dev/langs/es/data/gender.xml diff --git a/install/langs/es/data/group.xml b/install-dev/langs/es/data/group.xml similarity index 100% rename from install/langs/es/data/group.xml rename to install-dev/langs/es/data/group.xml diff --git a/install/langs/es/data/index.php b/install-dev/langs/es/data/index.php similarity index 100% rename from install/langs/es/data/index.php rename to install-dev/langs/es/data/index.php diff --git a/install/langs/es/data/meta.xml b/install-dev/langs/es/data/meta.xml similarity index 100% rename from install/langs/es/data/meta.xml rename to install-dev/langs/es/data/meta.xml diff --git a/install/langs/es/data/order_return_state.xml b/install-dev/langs/es/data/order_return_state.xml similarity index 100% rename from install/langs/es/data/order_return_state.xml rename to install-dev/langs/es/data/order_return_state.xml diff --git a/install/langs/es/data/order_state.xml b/install-dev/langs/es/data/order_state.xml similarity index 100% rename from install/langs/es/data/order_state.xml rename to install-dev/langs/es/data/order_state.xml diff --git a/install/langs/es/data/profile.xml b/install-dev/langs/es/data/profile.xml similarity index 100% rename from install/langs/es/data/profile.xml rename to install-dev/langs/es/data/profile.xml diff --git a/install/langs/es/data/quick_access.xml b/install-dev/langs/es/data/quick_access.xml similarity index 100% rename from install/langs/es/data/quick_access.xml rename to install-dev/langs/es/data/quick_access.xml diff --git a/install/langs/es/data/risk.xml b/install-dev/langs/es/data/risk.xml similarity index 100% rename from install/langs/es/data/risk.xml rename to install-dev/langs/es/data/risk.xml diff --git a/install/langs/es/data/source.xml b/install-dev/langs/es/data/source.xml similarity index 100% rename from install/langs/es/data/source.xml rename to install-dev/langs/es/data/source.xml diff --git a/install/langs/es/data/stock_mvt_reason.xml b/install-dev/langs/es/data/stock_mvt_reason.xml similarity index 100% rename from install/langs/es/data/stock_mvt_reason.xml rename to install-dev/langs/es/data/stock_mvt_reason.xml diff --git a/install/langs/es/data/supplier_order_state.xml b/install-dev/langs/es/data/supplier_order_state.xml similarity index 100% rename from install/langs/es/data/supplier_order_state.xml rename to install-dev/langs/es/data/supplier_order_state.xml diff --git a/install/langs/es/data/supply_order_state.xml b/install-dev/langs/es/data/supply_order_state.xml similarity index 100% rename from install/langs/es/data/supply_order_state.xml rename to install-dev/langs/es/data/supply_order_state.xml diff --git a/install/langs/es/data/tab.xml b/install-dev/langs/es/data/tab.xml similarity index 96% rename from install/langs/es/data/tab.xml rename to install-dev/langs/es/data/tab.xml index 8bc3e8062..a60f3340a 100644 --- a/install/langs/es/data/tab.xml +++ b/install-dev/langs/es/data/tab.xml @@ -21,6 +21,7 @@ + @@ -31,10 +32,12 @@ + + diff --git a/install/langs/es/flag.jpg b/install-dev/langs/es/flag.jpg similarity index 100% rename from install/langs/es/flag.jpg rename to install-dev/langs/es/flag.jpg diff --git a/install/langs/es/img/es-default-category.jpg b/install-dev/langs/es/img/es-default-category.jpg similarity index 100% rename from install/langs/es/img/es-default-category.jpg rename to install-dev/langs/es/img/es-default-category.jpg diff --git a/install/langs/es/img/es-default-home.jpg b/install-dev/langs/es/img/es-default-home.jpg similarity index 100% rename from install/langs/es/img/es-default-home.jpg rename to install-dev/langs/es/img/es-default-home.jpg diff --git a/install/langs/es/img/es-default-large.jpg b/install-dev/langs/es/img/es-default-large.jpg similarity index 100% rename from install/langs/es/img/es-default-large.jpg rename to install-dev/langs/es/img/es-default-large.jpg diff --git a/install/langs/es/img/es-default-large_scene.jpg b/install-dev/langs/es/img/es-default-large_scene.jpg similarity index 100% rename from install/langs/es/img/es-default-large_scene.jpg rename to install-dev/langs/es/img/es-default-large_scene.jpg diff --git a/install/langs/es/img/es-default-medium.jpg b/install-dev/langs/es/img/es-default-medium.jpg similarity index 100% rename from install/langs/es/img/es-default-medium.jpg rename to install-dev/langs/es/img/es-default-medium.jpg diff --git a/install/langs/es/img/es-default-small.jpg b/install-dev/langs/es/img/es-default-small.jpg similarity index 100% rename from install/langs/es/img/es-default-small.jpg rename to install-dev/langs/es/img/es-default-small.jpg diff --git a/install/langs/es/img/es-default-thickbox.jpg b/install-dev/langs/es/img/es-default-thickbox.jpg similarity index 100% rename from install/langs/es/img/es-default-thickbox.jpg rename to install-dev/langs/es/img/es-default-thickbox.jpg diff --git a/install/langs/es/img/es-default-thumb_scene.jpg b/install-dev/langs/es/img/es-default-thumb_scene.jpg similarity index 100% rename from install/langs/es/img/es-default-thumb_scene.jpg rename to install-dev/langs/es/img/es-default-thumb_scene.jpg diff --git a/install/langs/es/img/es.jpg b/install-dev/langs/es/img/es.jpg similarity index 100% rename from install/langs/es/img/es.jpg rename to install-dev/langs/es/img/es.jpg diff --git a/install/langs/es/img/index.php b/install-dev/langs/es/img/index.php similarity index 100% rename from install/langs/es/img/index.php rename to install-dev/langs/es/img/index.php diff --git a/install/langs/es/index.php b/install-dev/langs/es/index.php similarity index 100% rename from install/langs/es/index.php rename to install-dev/langs/es/index.php diff --git a/install/langs/es/install.php b/install-dev/langs/es/install.php similarity index 100% rename from install/langs/es/install.php rename to install-dev/langs/es/install.php diff --git a/install/langs/es/language.xml b/install-dev/langs/es/language.xml similarity index 100% rename from install/langs/es/language.xml rename to install-dev/langs/es/language.xml diff --git a/install/langs/fa/Flag_of_Iran.svg b/install-dev/langs/fa/Flag_of_Iran.svg similarity index 100% rename from install/langs/fa/Flag_of_Iran.svg rename to install-dev/langs/fa/Flag_of_Iran.svg diff --git a/install/langs/fa/data/business_source.xml b/install-dev/langs/fa/data/business_source.xml similarity index 100% rename from install/langs/fa/data/business_source.xml rename to install-dev/langs/fa/data/business_source.xml diff --git a/install/langs/fa/data/carrier.xml b/install-dev/langs/fa/data/carrier.xml similarity index 100% rename from install/langs/fa/data/carrier.xml rename to install-dev/langs/fa/data/carrier.xml diff --git a/install/langs/fa/data/category.xml b/install-dev/langs/fa/data/category.xml similarity index 100% rename from install/langs/fa/data/category.xml rename to install-dev/langs/fa/data/category.xml diff --git a/install/langs/fa/data/cms.xml b/install-dev/langs/fa/data/cms.xml similarity index 100% rename from install/langs/fa/data/cms.xml rename to install-dev/langs/fa/data/cms.xml diff --git a/install/langs/fa/data/cms_category.xml b/install-dev/langs/fa/data/cms_category.xml similarity index 100% rename from install/langs/fa/data/cms_category.xml rename to install-dev/langs/fa/data/cms_category.xml diff --git a/install/langs/fa/data/configuration.xml b/install-dev/langs/fa/data/configuration.xml similarity index 100% rename from install/langs/fa/data/configuration.xml rename to install-dev/langs/fa/data/configuration.xml diff --git a/install/langs/fa/data/contact.xml b/install-dev/langs/fa/data/contact.xml similarity index 100% rename from install/langs/fa/data/contact.xml rename to install-dev/langs/fa/data/contact.xml diff --git a/install/langs/fa/data/country.xml b/install-dev/langs/fa/data/country.xml similarity index 100% rename from install/langs/fa/data/country.xml rename to install-dev/langs/fa/data/country.xml diff --git a/install/langs/fa/data/gender.xml b/install-dev/langs/fa/data/gender.xml similarity index 100% rename from install/langs/fa/data/gender.xml rename to install-dev/langs/fa/data/gender.xml diff --git a/install/langs/fa/data/group.xml b/install-dev/langs/fa/data/group.xml similarity index 100% rename from install/langs/fa/data/group.xml rename to install-dev/langs/fa/data/group.xml diff --git a/install/langs/fa/data/index.php b/install-dev/langs/fa/data/index.php similarity index 100% rename from install/langs/fa/data/index.php rename to install-dev/langs/fa/data/index.php diff --git a/install/langs/fa/data/meta.xml b/install-dev/langs/fa/data/meta.xml similarity index 100% rename from install/langs/fa/data/meta.xml rename to install-dev/langs/fa/data/meta.xml diff --git a/install/langs/fa/data/order_return_state.xml b/install-dev/langs/fa/data/order_return_state.xml similarity index 100% rename from install/langs/fa/data/order_return_state.xml rename to install-dev/langs/fa/data/order_return_state.xml diff --git a/install/langs/fa/data/order_state.xml b/install-dev/langs/fa/data/order_state.xml similarity index 100% rename from install/langs/fa/data/order_state.xml rename to install-dev/langs/fa/data/order_state.xml diff --git a/install/langs/fa/data/profile.xml b/install-dev/langs/fa/data/profile.xml similarity index 100% rename from install/langs/fa/data/profile.xml rename to install-dev/langs/fa/data/profile.xml diff --git a/install/langs/fa/data/quick_access.xml b/install-dev/langs/fa/data/quick_access.xml similarity index 100% rename from install/langs/fa/data/quick_access.xml rename to install-dev/langs/fa/data/quick_access.xml diff --git a/install/langs/fa/data/risk.xml b/install-dev/langs/fa/data/risk.xml similarity index 100% rename from install/langs/fa/data/risk.xml rename to install-dev/langs/fa/data/risk.xml diff --git a/install/langs/fa/data/source.xml b/install-dev/langs/fa/data/source.xml similarity index 100% rename from install/langs/fa/data/source.xml rename to install-dev/langs/fa/data/source.xml diff --git a/install/langs/fa/data/stock_mvt_reason.xml b/install-dev/langs/fa/data/stock_mvt_reason.xml similarity index 100% rename from install/langs/fa/data/stock_mvt_reason.xml rename to install-dev/langs/fa/data/stock_mvt_reason.xml diff --git a/install/langs/fa/data/supplier_order_state.xml b/install-dev/langs/fa/data/supplier_order_state.xml similarity index 100% rename from install/langs/fa/data/supplier_order_state.xml rename to install-dev/langs/fa/data/supplier_order_state.xml diff --git a/install/langs/fa/data/supply_order_state.xml b/install-dev/langs/fa/data/supply_order_state.xml similarity index 100% rename from install/langs/fa/data/supply_order_state.xml rename to install-dev/langs/fa/data/supply_order_state.xml diff --git a/install/langs/fa/data/tab.xml b/install-dev/langs/fa/data/tab.xml similarity index 96% rename from install/langs/fa/data/tab.xml rename to install-dev/langs/fa/data/tab.xml index 8679f4027..48100c000 100644 --- a/install/langs/fa/data/tab.xml +++ b/install-dev/langs/fa/data/tab.xml @@ -22,6 +22,7 @@ + @@ -32,10 +33,12 @@ + + diff --git a/install/langs/fa/flag.jpg b/install-dev/langs/fa/flag.jpg similarity index 100% rename from install/langs/fa/flag.jpg rename to install-dev/langs/fa/flag.jpg diff --git a/install/langs/fa/img/fa-default-category.jpg b/install-dev/langs/fa/img/fa-default-category.jpg similarity index 100% rename from install/langs/fa/img/fa-default-category.jpg rename to install-dev/langs/fa/img/fa-default-category.jpg diff --git a/install/langs/fa/img/fa-default-home.jpg b/install-dev/langs/fa/img/fa-default-home.jpg similarity index 100% rename from install/langs/fa/img/fa-default-home.jpg rename to install-dev/langs/fa/img/fa-default-home.jpg diff --git a/install/langs/fa/img/fa-default-large.jpg b/install-dev/langs/fa/img/fa-default-large.jpg similarity index 100% rename from install/langs/fa/img/fa-default-large.jpg rename to install-dev/langs/fa/img/fa-default-large.jpg diff --git a/install/langs/fa/img/fa-default-large_scene.jpg b/install-dev/langs/fa/img/fa-default-large_scene.jpg similarity index 100% rename from install/langs/fa/img/fa-default-large_scene.jpg rename to install-dev/langs/fa/img/fa-default-large_scene.jpg diff --git a/install/langs/fa/img/fa-default-medium.jpg b/install-dev/langs/fa/img/fa-default-medium.jpg similarity index 100% rename from install/langs/fa/img/fa-default-medium.jpg rename to install-dev/langs/fa/img/fa-default-medium.jpg diff --git a/install/langs/fa/img/fa-default-small.jpg b/install-dev/langs/fa/img/fa-default-small.jpg similarity index 100% rename from install/langs/fa/img/fa-default-small.jpg rename to install-dev/langs/fa/img/fa-default-small.jpg diff --git a/install/langs/fa/img/fa-default-thickbox.jpg b/install-dev/langs/fa/img/fa-default-thickbox.jpg similarity index 100% rename from install/langs/fa/img/fa-default-thickbox.jpg rename to install-dev/langs/fa/img/fa-default-thickbox.jpg diff --git a/install/langs/fa/img/fa-default-thumb_scene.jpg b/install-dev/langs/fa/img/fa-default-thumb_scene.jpg similarity index 100% rename from install/langs/fa/img/fa-default-thumb_scene.jpg rename to install-dev/langs/fa/img/fa-default-thumb_scene.jpg diff --git a/install/langs/fa/img/fa.jpg b/install-dev/langs/fa/img/fa.jpg similarity index 100% rename from install/langs/fa/img/fa.jpg rename to install-dev/langs/fa/img/fa.jpg diff --git a/install/langs/fa/img/index.php b/install-dev/langs/fa/img/index.php similarity index 100% rename from install/langs/fa/img/index.php rename to install-dev/langs/fa/img/index.php diff --git a/install/langs/fa/index.php b/install-dev/langs/fa/index.php similarity index 100% rename from install/langs/fa/index.php rename to install-dev/langs/fa/index.php diff --git a/install/langs/fa/install.php b/install-dev/langs/fa/install.php similarity index 100% rename from install/langs/fa/install.php rename to install-dev/langs/fa/install.php diff --git a/install/langs/fa/language.xml b/install-dev/langs/fa/language.xml similarity index 100% rename from install/langs/fa/language.xml rename to install-dev/langs/fa/language.xml diff --git a/install/langs/fr/data/business_source.xml b/install-dev/langs/fr/data/business_source.xml similarity index 100% rename from install/langs/fr/data/business_source.xml rename to install-dev/langs/fr/data/business_source.xml diff --git a/install/langs/fr/data/carrier.xml b/install-dev/langs/fr/data/carrier.xml similarity index 100% rename from install/langs/fr/data/carrier.xml rename to install-dev/langs/fr/data/carrier.xml diff --git a/install/langs/fr/data/category.xml b/install-dev/langs/fr/data/category.xml similarity index 100% rename from install/langs/fr/data/category.xml rename to install-dev/langs/fr/data/category.xml diff --git a/install/langs/fr/data/cms.xml b/install-dev/langs/fr/data/cms.xml similarity index 100% rename from install/langs/fr/data/cms.xml rename to install-dev/langs/fr/data/cms.xml diff --git a/install/langs/fr/data/cms_category.xml b/install-dev/langs/fr/data/cms_category.xml similarity index 100% rename from install/langs/fr/data/cms_category.xml rename to install-dev/langs/fr/data/cms_category.xml diff --git a/install/langs/fr/data/configuration.xml b/install-dev/langs/fr/data/configuration.xml similarity index 100% rename from install/langs/fr/data/configuration.xml rename to install-dev/langs/fr/data/configuration.xml diff --git a/install/langs/fr/data/contact.xml b/install-dev/langs/fr/data/contact.xml similarity index 100% rename from install/langs/fr/data/contact.xml rename to install-dev/langs/fr/data/contact.xml diff --git a/install/langs/fr/data/country.xml b/install-dev/langs/fr/data/country.xml similarity index 100% rename from install/langs/fr/data/country.xml rename to install-dev/langs/fr/data/country.xml diff --git a/install/langs/fr/data/gender.xml b/install-dev/langs/fr/data/gender.xml similarity index 100% rename from install/langs/fr/data/gender.xml rename to install-dev/langs/fr/data/gender.xml diff --git a/install/langs/fr/data/group.xml b/install-dev/langs/fr/data/group.xml similarity index 100% rename from install/langs/fr/data/group.xml rename to install-dev/langs/fr/data/group.xml diff --git a/install/langs/fr/data/index.php b/install-dev/langs/fr/data/index.php similarity index 100% rename from install/langs/fr/data/index.php rename to install-dev/langs/fr/data/index.php diff --git a/install/langs/fr/data/meta.xml b/install-dev/langs/fr/data/meta.xml similarity index 100% rename from install/langs/fr/data/meta.xml rename to install-dev/langs/fr/data/meta.xml diff --git a/install/langs/fr/data/order_return_state.xml b/install-dev/langs/fr/data/order_return_state.xml similarity index 100% rename from install/langs/fr/data/order_return_state.xml rename to install-dev/langs/fr/data/order_return_state.xml diff --git a/install/langs/fr/data/order_state.xml b/install-dev/langs/fr/data/order_state.xml similarity index 100% rename from install/langs/fr/data/order_state.xml rename to install-dev/langs/fr/data/order_state.xml diff --git a/install/langs/fr/data/profile.xml b/install-dev/langs/fr/data/profile.xml similarity index 100% rename from install/langs/fr/data/profile.xml rename to install-dev/langs/fr/data/profile.xml diff --git a/install/langs/fr/data/quick_access.xml b/install-dev/langs/fr/data/quick_access.xml similarity index 100% rename from install/langs/fr/data/quick_access.xml rename to install-dev/langs/fr/data/quick_access.xml diff --git a/install/langs/fr/data/risk.xml b/install-dev/langs/fr/data/risk.xml similarity index 100% rename from install/langs/fr/data/risk.xml rename to install-dev/langs/fr/data/risk.xml diff --git a/install/langs/fr/data/source.xml b/install-dev/langs/fr/data/source.xml similarity index 100% rename from install/langs/fr/data/source.xml rename to install-dev/langs/fr/data/source.xml diff --git a/install/langs/fr/data/stock_mvt_reason.xml b/install-dev/langs/fr/data/stock_mvt_reason.xml similarity index 100% rename from install/langs/fr/data/stock_mvt_reason.xml rename to install-dev/langs/fr/data/stock_mvt_reason.xml diff --git a/install/langs/fr/data/supplier_order_state.xml b/install-dev/langs/fr/data/supplier_order_state.xml similarity index 100% rename from install/langs/fr/data/supplier_order_state.xml rename to install-dev/langs/fr/data/supplier_order_state.xml diff --git a/install/langs/fr/data/supply_order_state.xml b/install-dev/langs/fr/data/supply_order_state.xml similarity index 100% rename from install/langs/fr/data/supply_order_state.xml rename to install-dev/langs/fr/data/supply_order_state.xml diff --git a/install/langs/fr/data/tab.xml b/install-dev/langs/fr/data/tab.xml similarity index 96% rename from install/langs/fr/data/tab.xml rename to install-dev/langs/fr/data/tab.xml index 9800a1cf6..d235dbd54 100644 --- a/install/langs/fr/data/tab.xml +++ b/install-dev/langs/fr/data/tab.xml @@ -37,6 +37,7 @@ + @@ -69,6 +70,7 @@ + @@ -86,6 +88,7 @@ + diff --git a/install/langs/fr/flag.jpg b/install-dev/langs/fr/flag.jpg similarity index 100% rename from install/langs/fr/flag.jpg rename to install-dev/langs/fr/flag.jpg diff --git a/install/langs/fr/img/fr-default-category.jpg b/install-dev/langs/fr/img/fr-default-category.jpg similarity index 100% rename from install/langs/fr/img/fr-default-category.jpg rename to install-dev/langs/fr/img/fr-default-category.jpg diff --git a/install/langs/fr/img/fr-default-home.jpg b/install-dev/langs/fr/img/fr-default-home.jpg similarity index 100% rename from install/langs/fr/img/fr-default-home.jpg rename to install-dev/langs/fr/img/fr-default-home.jpg diff --git a/install/langs/fr/img/fr-default-large.jpg b/install-dev/langs/fr/img/fr-default-large.jpg similarity index 100% rename from install/langs/fr/img/fr-default-large.jpg rename to install-dev/langs/fr/img/fr-default-large.jpg diff --git a/install/langs/fr/img/fr-default-large_scene.jpg b/install-dev/langs/fr/img/fr-default-large_scene.jpg similarity index 100% rename from install/langs/fr/img/fr-default-large_scene.jpg rename to install-dev/langs/fr/img/fr-default-large_scene.jpg diff --git a/install/langs/fr/img/fr-default-medium.jpg b/install-dev/langs/fr/img/fr-default-medium.jpg similarity index 100% rename from install/langs/fr/img/fr-default-medium.jpg rename to install-dev/langs/fr/img/fr-default-medium.jpg diff --git a/install/langs/fr/img/fr-default-small.jpg b/install-dev/langs/fr/img/fr-default-small.jpg similarity index 100% rename from install/langs/fr/img/fr-default-small.jpg rename to install-dev/langs/fr/img/fr-default-small.jpg diff --git a/install/langs/fr/img/fr-default-thickbox.jpg b/install-dev/langs/fr/img/fr-default-thickbox.jpg similarity index 100% rename from install/langs/fr/img/fr-default-thickbox.jpg rename to install-dev/langs/fr/img/fr-default-thickbox.jpg diff --git a/install/langs/fr/img/fr-default-thumb_scene.jpg b/install-dev/langs/fr/img/fr-default-thumb_scene.jpg similarity index 100% rename from install/langs/fr/img/fr-default-thumb_scene.jpg rename to install-dev/langs/fr/img/fr-default-thumb_scene.jpg diff --git a/install/langs/fr/img/fr.jpg b/install-dev/langs/fr/img/fr.jpg similarity index 100% rename from install/langs/fr/img/fr.jpg rename to install-dev/langs/fr/img/fr.jpg diff --git a/install/langs/fr/img/index.php b/install-dev/langs/fr/img/index.php similarity index 100% rename from install/langs/fr/img/index.php rename to install-dev/langs/fr/img/index.php diff --git a/install/langs/fr/index.php b/install-dev/langs/fr/index.php similarity index 100% rename from install/langs/fr/index.php rename to install-dev/langs/fr/index.php diff --git a/install/langs/fr/install.php b/install-dev/langs/fr/install.php similarity index 100% rename from install/langs/fr/install.php rename to install-dev/langs/fr/install.php diff --git a/install/langs/fr/language.xml b/install-dev/langs/fr/language.xml similarity index 100% rename from install/langs/fr/language.xml rename to install-dev/langs/fr/language.xml diff --git a/install/langs/he/data/business_source.xml b/install-dev/langs/he/data/business_source.xml similarity index 100% rename from install/langs/he/data/business_source.xml rename to install-dev/langs/he/data/business_source.xml diff --git a/install/langs/he/data/carrier.xml b/install-dev/langs/he/data/carrier.xml similarity index 100% rename from install/langs/he/data/carrier.xml rename to install-dev/langs/he/data/carrier.xml diff --git a/install/langs/he/data/category.xml b/install-dev/langs/he/data/category.xml similarity index 100% rename from install/langs/he/data/category.xml rename to install-dev/langs/he/data/category.xml diff --git a/install/langs/he/data/cms.xml b/install-dev/langs/he/data/cms.xml similarity index 100% rename from install/langs/he/data/cms.xml rename to install-dev/langs/he/data/cms.xml diff --git a/install/langs/he/data/cms_category.xml b/install-dev/langs/he/data/cms_category.xml similarity index 100% rename from install/langs/he/data/cms_category.xml rename to install-dev/langs/he/data/cms_category.xml diff --git a/install/langs/he/data/configuration.xml b/install-dev/langs/he/data/configuration.xml similarity index 100% rename from install/langs/he/data/configuration.xml rename to install-dev/langs/he/data/configuration.xml diff --git a/install/langs/he/data/contact.xml b/install-dev/langs/he/data/contact.xml similarity index 100% rename from install/langs/he/data/contact.xml rename to install-dev/langs/he/data/contact.xml diff --git a/install/langs/he/data/country.xml b/install-dev/langs/he/data/country.xml similarity index 100% rename from install/langs/he/data/country.xml rename to install-dev/langs/he/data/country.xml diff --git a/install/langs/he/data/gender.xml b/install-dev/langs/he/data/gender.xml similarity index 100% rename from install/langs/he/data/gender.xml rename to install-dev/langs/he/data/gender.xml diff --git a/install/langs/he/data/group.xml b/install-dev/langs/he/data/group.xml similarity index 100% rename from install/langs/he/data/group.xml rename to install-dev/langs/he/data/group.xml diff --git a/install/langs/he/data/index.php b/install-dev/langs/he/data/index.php similarity index 100% rename from install/langs/he/data/index.php rename to install-dev/langs/he/data/index.php diff --git a/install/langs/he/data/meta.xml b/install-dev/langs/he/data/meta.xml similarity index 100% rename from install/langs/he/data/meta.xml rename to install-dev/langs/he/data/meta.xml diff --git a/install/langs/he/data/order_return_state.xml b/install-dev/langs/he/data/order_return_state.xml similarity index 100% rename from install/langs/he/data/order_return_state.xml rename to install-dev/langs/he/data/order_return_state.xml diff --git a/install/langs/he/data/order_state.xml b/install-dev/langs/he/data/order_state.xml similarity index 100% rename from install/langs/he/data/order_state.xml rename to install-dev/langs/he/data/order_state.xml diff --git a/install/langs/he/data/profile.xml b/install-dev/langs/he/data/profile.xml similarity index 100% rename from install/langs/he/data/profile.xml rename to install-dev/langs/he/data/profile.xml diff --git a/install/langs/he/data/quick_access.xml b/install-dev/langs/he/data/quick_access.xml similarity index 100% rename from install/langs/he/data/quick_access.xml rename to install-dev/langs/he/data/quick_access.xml diff --git a/install/langs/he/data/risk.xml b/install-dev/langs/he/data/risk.xml similarity index 100% rename from install/langs/he/data/risk.xml rename to install-dev/langs/he/data/risk.xml diff --git a/install/langs/he/data/source.xml b/install-dev/langs/he/data/source.xml similarity index 100% rename from install/langs/he/data/source.xml rename to install-dev/langs/he/data/source.xml diff --git a/install/langs/he/data/stock_mvt_reason.xml b/install-dev/langs/he/data/stock_mvt_reason.xml similarity index 100% rename from install/langs/he/data/stock_mvt_reason.xml rename to install-dev/langs/he/data/stock_mvt_reason.xml diff --git a/install/langs/he/data/supplier_order_state.xml b/install-dev/langs/he/data/supplier_order_state.xml similarity index 100% rename from install/langs/he/data/supplier_order_state.xml rename to install-dev/langs/he/data/supplier_order_state.xml diff --git a/install/langs/he/data/supply_order_state.xml b/install-dev/langs/he/data/supply_order_state.xml similarity index 100% rename from install/langs/he/data/supply_order_state.xml rename to install-dev/langs/he/data/supply_order_state.xml diff --git a/install/langs/he/data/tab.xml b/install-dev/langs/he/data/tab.xml similarity index 96% rename from install/langs/he/data/tab.xml rename to install-dev/langs/he/data/tab.xml index 599085de3..05f5f2862 100644 --- a/install/langs/he/data/tab.xml +++ b/install-dev/langs/he/data/tab.xml @@ -22,6 +22,7 @@ + @@ -32,10 +33,12 @@ + + diff --git a/install/langs/he/flag.jpg b/install-dev/langs/he/flag.jpg similarity index 100% rename from install/langs/he/flag.jpg rename to install-dev/langs/he/flag.jpg diff --git a/install/langs/he/img/he-default-category.jpg b/install-dev/langs/he/img/he-default-category.jpg similarity index 100% rename from install/langs/he/img/he-default-category.jpg rename to install-dev/langs/he/img/he-default-category.jpg diff --git a/install/langs/he/img/he-default-home.jpg b/install-dev/langs/he/img/he-default-home.jpg similarity index 100% rename from install/langs/he/img/he-default-home.jpg rename to install-dev/langs/he/img/he-default-home.jpg diff --git a/install/langs/he/img/he-default-large.jpg b/install-dev/langs/he/img/he-default-large.jpg similarity index 100% rename from install/langs/he/img/he-default-large.jpg rename to install-dev/langs/he/img/he-default-large.jpg diff --git a/install/langs/he/img/he-default-large_scene.jpg b/install-dev/langs/he/img/he-default-large_scene.jpg similarity index 100% rename from install/langs/he/img/he-default-large_scene.jpg rename to install-dev/langs/he/img/he-default-large_scene.jpg diff --git a/install/langs/he/img/he-default-medium.jpg b/install-dev/langs/he/img/he-default-medium.jpg similarity index 100% rename from install/langs/he/img/he-default-medium.jpg rename to install-dev/langs/he/img/he-default-medium.jpg diff --git a/install/langs/he/img/he-default-small.jpg b/install-dev/langs/he/img/he-default-small.jpg similarity index 100% rename from install/langs/he/img/he-default-small.jpg rename to install-dev/langs/he/img/he-default-small.jpg diff --git a/install/langs/he/img/he-default-thickbox.jpg b/install-dev/langs/he/img/he-default-thickbox.jpg similarity index 100% rename from install/langs/he/img/he-default-thickbox.jpg rename to install-dev/langs/he/img/he-default-thickbox.jpg diff --git a/install/langs/he/img/he-default-thumb_scene.jpg b/install-dev/langs/he/img/he-default-thumb_scene.jpg similarity index 100% rename from install/langs/he/img/he-default-thumb_scene.jpg rename to install-dev/langs/he/img/he-default-thumb_scene.jpg diff --git a/install/langs/he/img/he.jpg b/install-dev/langs/he/img/he.jpg similarity index 100% rename from install/langs/he/img/he.jpg rename to install-dev/langs/he/img/he.jpg diff --git a/install/langs/he/img/index.php b/install-dev/langs/he/img/index.php similarity index 100% rename from install/langs/he/img/index.php rename to install-dev/langs/he/img/index.php diff --git a/install/langs/he/index.php b/install-dev/langs/he/index.php similarity index 100% rename from install/langs/he/index.php rename to install-dev/langs/he/index.php diff --git a/install/langs/he/install.php b/install-dev/langs/he/install.php similarity index 100% rename from install/langs/he/install.php rename to install-dev/langs/he/install.php diff --git a/install/langs/he/language.xml b/install-dev/langs/he/language.xml similarity index 100% rename from install/langs/he/language.xml rename to install-dev/langs/he/language.xml diff --git a/install/langs/hr/data/business_source.xml b/install-dev/langs/hr/data/business_source.xml similarity index 100% rename from install/langs/hr/data/business_source.xml rename to install-dev/langs/hr/data/business_source.xml diff --git a/install/langs/hr/data/carrier.xml b/install-dev/langs/hr/data/carrier.xml similarity index 100% rename from install/langs/hr/data/carrier.xml rename to install-dev/langs/hr/data/carrier.xml diff --git a/install/langs/hr/data/category.xml b/install-dev/langs/hr/data/category.xml similarity index 100% rename from install/langs/hr/data/category.xml rename to install-dev/langs/hr/data/category.xml diff --git a/install/langs/hr/data/cms.xml b/install-dev/langs/hr/data/cms.xml similarity index 100% rename from install/langs/hr/data/cms.xml rename to install-dev/langs/hr/data/cms.xml diff --git a/install/langs/hr/data/cms_category.xml b/install-dev/langs/hr/data/cms_category.xml similarity index 100% rename from install/langs/hr/data/cms_category.xml rename to install-dev/langs/hr/data/cms_category.xml diff --git a/install/langs/hr/data/configuration.xml b/install-dev/langs/hr/data/configuration.xml similarity index 100% rename from install/langs/hr/data/configuration.xml rename to install-dev/langs/hr/data/configuration.xml diff --git a/install/langs/hr/data/contact.xml b/install-dev/langs/hr/data/contact.xml similarity index 100% rename from install/langs/hr/data/contact.xml rename to install-dev/langs/hr/data/contact.xml diff --git a/install/langs/hr/data/country.xml b/install-dev/langs/hr/data/country.xml similarity index 100% rename from install/langs/hr/data/country.xml rename to install-dev/langs/hr/data/country.xml diff --git a/install/langs/hr/data/gender.xml b/install-dev/langs/hr/data/gender.xml similarity index 100% rename from install/langs/hr/data/gender.xml rename to install-dev/langs/hr/data/gender.xml diff --git a/install/langs/hr/data/group.xml b/install-dev/langs/hr/data/group.xml similarity index 100% rename from install/langs/hr/data/group.xml rename to install-dev/langs/hr/data/group.xml diff --git a/install/langs/hr/data/index.php b/install-dev/langs/hr/data/index.php similarity index 100% rename from install/langs/hr/data/index.php rename to install-dev/langs/hr/data/index.php diff --git a/install/langs/hr/data/meta.xml b/install-dev/langs/hr/data/meta.xml similarity index 100% rename from install/langs/hr/data/meta.xml rename to install-dev/langs/hr/data/meta.xml diff --git a/install/langs/hr/data/order_return_state.xml b/install-dev/langs/hr/data/order_return_state.xml similarity index 100% rename from install/langs/hr/data/order_return_state.xml rename to install-dev/langs/hr/data/order_return_state.xml diff --git a/install/langs/hr/data/order_state.xml b/install-dev/langs/hr/data/order_state.xml similarity index 100% rename from install/langs/hr/data/order_state.xml rename to install-dev/langs/hr/data/order_state.xml diff --git a/install/langs/hr/data/profile.xml b/install-dev/langs/hr/data/profile.xml similarity index 100% rename from install/langs/hr/data/profile.xml rename to install-dev/langs/hr/data/profile.xml diff --git a/install/langs/hr/data/quick_access.xml b/install-dev/langs/hr/data/quick_access.xml similarity index 100% rename from install/langs/hr/data/quick_access.xml rename to install-dev/langs/hr/data/quick_access.xml diff --git a/install/langs/hr/data/risk.xml b/install-dev/langs/hr/data/risk.xml similarity index 100% rename from install/langs/hr/data/risk.xml rename to install-dev/langs/hr/data/risk.xml diff --git a/install/langs/hr/data/source.xml b/install-dev/langs/hr/data/source.xml similarity index 100% rename from install/langs/hr/data/source.xml rename to install-dev/langs/hr/data/source.xml diff --git a/install/langs/hr/data/stock_mvt_reason.xml b/install-dev/langs/hr/data/stock_mvt_reason.xml similarity index 100% rename from install/langs/hr/data/stock_mvt_reason.xml rename to install-dev/langs/hr/data/stock_mvt_reason.xml diff --git a/install/langs/hr/data/supplier_order_state.xml b/install-dev/langs/hr/data/supplier_order_state.xml similarity index 100% rename from install/langs/hr/data/supplier_order_state.xml rename to install-dev/langs/hr/data/supplier_order_state.xml diff --git a/install/langs/hr/data/supply_order_state.xml b/install-dev/langs/hr/data/supply_order_state.xml similarity index 100% rename from install/langs/hr/data/supply_order_state.xml rename to install-dev/langs/hr/data/supply_order_state.xml diff --git a/install/langs/hr/data/tab.xml b/install-dev/langs/hr/data/tab.xml similarity index 96% rename from install/langs/hr/data/tab.xml rename to install-dev/langs/hr/data/tab.xml index 3cc9d106e..3dccab504 100644 --- a/install/langs/hr/data/tab.xml +++ b/install-dev/langs/hr/data/tab.xml @@ -22,6 +22,7 @@ + @@ -32,10 +33,12 @@ + + diff --git a/install/langs/hr/flag.jpg b/install-dev/langs/hr/flag.jpg similarity index 100% rename from install/langs/hr/flag.jpg rename to install-dev/langs/hr/flag.jpg diff --git a/install/langs/hr/img/hr-default-category.jpg b/install-dev/langs/hr/img/hr-default-category.jpg similarity index 100% rename from install/langs/hr/img/hr-default-category.jpg rename to install-dev/langs/hr/img/hr-default-category.jpg diff --git a/install/langs/hr/img/hr-default-home.jpg b/install-dev/langs/hr/img/hr-default-home.jpg similarity index 100% rename from install/langs/hr/img/hr-default-home.jpg rename to install-dev/langs/hr/img/hr-default-home.jpg diff --git a/install/langs/hr/img/hr-default-large.jpg b/install-dev/langs/hr/img/hr-default-large.jpg similarity index 100% rename from install/langs/hr/img/hr-default-large.jpg rename to install-dev/langs/hr/img/hr-default-large.jpg diff --git a/install/langs/hr/img/hr-default-large_scene.jpg b/install-dev/langs/hr/img/hr-default-large_scene.jpg similarity index 100% rename from install/langs/hr/img/hr-default-large_scene.jpg rename to install-dev/langs/hr/img/hr-default-large_scene.jpg diff --git a/install/langs/hr/img/hr-default-medium.jpg b/install-dev/langs/hr/img/hr-default-medium.jpg similarity index 100% rename from install/langs/hr/img/hr-default-medium.jpg rename to install-dev/langs/hr/img/hr-default-medium.jpg diff --git a/install/langs/hr/img/hr-default-small.jpg b/install-dev/langs/hr/img/hr-default-small.jpg similarity index 100% rename from install/langs/hr/img/hr-default-small.jpg rename to install-dev/langs/hr/img/hr-default-small.jpg diff --git a/install/langs/hr/img/hr-default-thickbox.jpg b/install-dev/langs/hr/img/hr-default-thickbox.jpg similarity index 100% rename from install/langs/hr/img/hr-default-thickbox.jpg rename to install-dev/langs/hr/img/hr-default-thickbox.jpg diff --git a/install/langs/hr/img/hr-default-thumb_scene.jpg b/install-dev/langs/hr/img/hr-default-thumb_scene.jpg similarity index 100% rename from install/langs/hr/img/hr-default-thumb_scene.jpg rename to install-dev/langs/hr/img/hr-default-thumb_scene.jpg diff --git a/install/langs/hr/img/hr.jpg b/install-dev/langs/hr/img/hr.jpg similarity index 100% rename from install/langs/hr/img/hr.jpg rename to install-dev/langs/hr/img/hr.jpg diff --git a/install/langs/hr/img/index.php b/install-dev/langs/hr/img/index.php similarity index 100% rename from install/langs/hr/img/index.php rename to install-dev/langs/hr/img/index.php diff --git a/install/langs/hr/index.php b/install-dev/langs/hr/index.php similarity index 100% rename from install/langs/hr/index.php rename to install-dev/langs/hr/index.php diff --git a/install/langs/hr/install.php b/install-dev/langs/hr/install.php similarity index 100% rename from install/langs/hr/install.php rename to install-dev/langs/hr/install.php diff --git a/install/langs/hr/language.xml b/install-dev/langs/hr/language.xml similarity index 100% rename from install/langs/hr/language.xml rename to install-dev/langs/hr/language.xml diff --git a/install/langs/hu/data/business_source.xml b/install-dev/langs/hu/data/business_source.xml similarity index 100% rename from install/langs/hu/data/business_source.xml rename to install-dev/langs/hu/data/business_source.xml diff --git a/install/langs/hu/data/carrier.xml b/install-dev/langs/hu/data/carrier.xml similarity index 100% rename from install/langs/hu/data/carrier.xml rename to install-dev/langs/hu/data/carrier.xml diff --git a/install/langs/hu/data/category.xml b/install-dev/langs/hu/data/category.xml similarity index 100% rename from install/langs/hu/data/category.xml rename to install-dev/langs/hu/data/category.xml diff --git a/install/langs/hu/data/cms.xml b/install-dev/langs/hu/data/cms.xml similarity index 100% rename from install/langs/hu/data/cms.xml rename to install-dev/langs/hu/data/cms.xml diff --git a/install/langs/hu/data/cms_category.xml b/install-dev/langs/hu/data/cms_category.xml similarity index 100% rename from install/langs/hu/data/cms_category.xml rename to install-dev/langs/hu/data/cms_category.xml diff --git a/install/langs/hu/data/configuration.xml b/install-dev/langs/hu/data/configuration.xml similarity index 100% rename from install/langs/hu/data/configuration.xml rename to install-dev/langs/hu/data/configuration.xml diff --git a/install/langs/hu/data/contact.xml b/install-dev/langs/hu/data/contact.xml similarity index 100% rename from install/langs/hu/data/contact.xml rename to install-dev/langs/hu/data/contact.xml diff --git a/install/langs/hu/data/country.xml b/install-dev/langs/hu/data/country.xml similarity index 100% rename from install/langs/hu/data/country.xml rename to install-dev/langs/hu/data/country.xml diff --git a/install/langs/hu/data/gender.xml b/install-dev/langs/hu/data/gender.xml similarity index 100% rename from install/langs/hu/data/gender.xml rename to install-dev/langs/hu/data/gender.xml diff --git a/install/langs/hu/data/group.xml b/install-dev/langs/hu/data/group.xml similarity index 100% rename from install/langs/hu/data/group.xml rename to install-dev/langs/hu/data/group.xml diff --git a/install/langs/hu/data/index.php b/install-dev/langs/hu/data/index.php similarity index 100% rename from install/langs/hu/data/index.php rename to install-dev/langs/hu/data/index.php diff --git a/install/langs/hu/data/meta.xml b/install-dev/langs/hu/data/meta.xml similarity index 100% rename from install/langs/hu/data/meta.xml rename to install-dev/langs/hu/data/meta.xml diff --git a/install/langs/hu/data/order_return_state.xml b/install-dev/langs/hu/data/order_return_state.xml similarity index 100% rename from install/langs/hu/data/order_return_state.xml rename to install-dev/langs/hu/data/order_return_state.xml diff --git a/install/langs/hu/data/order_state.xml b/install-dev/langs/hu/data/order_state.xml similarity index 100% rename from install/langs/hu/data/order_state.xml rename to install-dev/langs/hu/data/order_state.xml diff --git a/install/langs/hu/data/profile.xml b/install-dev/langs/hu/data/profile.xml similarity index 100% rename from install/langs/hu/data/profile.xml rename to install-dev/langs/hu/data/profile.xml diff --git a/install/langs/hu/data/quick_access.xml b/install-dev/langs/hu/data/quick_access.xml similarity index 100% rename from install/langs/hu/data/quick_access.xml rename to install-dev/langs/hu/data/quick_access.xml diff --git a/install/langs/hu/data/risk.xml b/install-dev/langs/hu/data/risk.xml similarity index 100% rename from install/langs/hu/data/risk.xml rename to install-dev/langs/hu/data/risk.xml diff --git a/install/langs/hu/data/source.xml b/install-dev/langs/hu/data/source.xml similarity index 100% rename from install/langs/hu/data/source.xml rename to install-dev/langs/hu/data/source.xml diff --git a/install/langs/hu/data/stock_mvt_reason.xml b/install-dev/langs/hu/data/stock_mvt_reason.xml similarity index 100% rename from install/langs/hu/data/stock_mvt_reason.xml rename to install-dev/langs/hu/data/stock_mvt_reason.xml diff --git a/install/langs/hu/data/supplier_order_state.xml b/install-dev/langs/hu/data/supplier_order_state.xml similarity index 100% rename from install/langs/hu/data/supplier_order_state.xml rename to install-dev/langs/hu/data/supplier_order_state.xml diff --git a/install/langs/hu/data/supply_order_state.xml b/install-dev/langs/hu/data/supply_order_state.xml similarity index 100% rename from install/langs/hu/data/supply_order_state.xml rename to install-dev/langs/hu/data/supply_order_state.xml diff --git a/install/langs/hu/data/tab.xml b/install-dev/langs/hu/data/tab.xml similarity index 96% rename from install/langs/hu/data/tab.xml rename to install-dev/langs/hu/data/tab.xml index 228cb1e6a..45015736d 100644 --- a/install/langs/hu/data/tab.xml +++ b/install-dev/langs/hu/data/tab.xml @@ -22,6 +22,7 @@ + @@ -32,10 +33,12 @@ + + diff --git a/install/langs/hu/flag.jpg b/install-dev/langs/hu/flag.jpg similarity index 100% rename from install/langs/hu/flag.jpg rename to install-dev/langs/hu/flag.jpg diff --git a/install/langs/hu/img/hu-default-category.jpg b/install-dev/langs/hu/img/hu-default-category.jpg similarity index 100% rename from install/langs/hu/img/hu-default-category.jpg rename to install-dev/langs/hu/img/hu-default-category.jpg diff --git a/install/langs/hu/img/hu-default-home.jpg b/install-dev/langs/hu/img/hu-default-home.jpg similarity index 100% rename from install/langs/hu/img/hu-default-home.jpg rename to install-dev/langs/hu/img/hu-default-home.jpg diff --git a/install/langs/hu/img/hu-default-large.jpg b/install-dev/langs/hu/img/hu-default-large.jpg similarity index 100% rename from install/langs/hu/img/hu-default-large.jpg rename to install-dev/langs/hu/img/hu-default-large.jpg diff --git a/install/langs/hu/img/hu-default-large_scene.jpg b/install-dev/langs/hu/img/hu-default-large_scene.jpg similarity index 100% rename from install/langs/hu/img/hu-default-large_scene.jpg rename to install-dev/langs/hu/img/hu-default-large_scene.jpg diff --git a/install/langs/hu/img/hu-default-medium.jpg b/install-dev/langs/hu/img/hu-default-medium.jpg similarity index 100% rename from install/langs/hu/img/hu-default-medium.jpg rename to install-dev/langs/hu/img/hu-default-medium.jpg diff --git a/install/langs/hu/img/hu-default-small.jpg b/install-dev/langs/hu/img/hu-default-small.jpg similarity index 100% rename from install/langs/hu/img/hu-default-small.jpg rename to install-dev/langs/hu/img/hu-default-small.jpg diff --git a/install/langs/hu/img/hu-default-thickbox.jpg b/install-dev/langs/hu/img/hu-default-thickbox.jpg similarity index 100% rename from install/langs/hu/img/hu-default-thickbox.jpg rename to install-dev/langs/hu/img/hu-default-thickbox.jpg diff --git a/install/langs/hu/img/hu-default-thumb_scene.jpg b/install-dev/langs/hu/img/hu-default-thumb_scene.jpg similarity index 100% rename from install/langs/hu/img/hu-default-thumb_scene.jpg rename to install-dev/langs/hu/img/hu-default-thumb_scene.jpg diff --git a/install/langs/hu/img/hu.jpg b/install-dev/langs/hu/img/hu.jpg similarity index 100% rename from install/langs/hu/img/hu.jpg rename to install-dev/langs/hu/img/hu.jpg diff --git a/install/langs/hu/img/index.php b/install-dev/langs/hu/img/index.php similarity index 100% rename from install/langs/hu/img/index.php rename to install-dev/langs/hu/img/index.php diff --git a/install/langs/hu/index.php b/install-dev/langs/hu/index.php similarity index 100% rename from install/langs/hu/index.php rename to install-dev/langs/hu/index.php diff --git a/install/langs/hu/install.php b/install-dev/langs/hu/install.php similarity index 100% rename from install/langs/hu/install.php rename to install-dev/langs/hu/install.php diff --git a/install/langs/hu/language.xml b/install-dev/langs/hu/language.xml similarity index 100% rename from install/langs/hu/language.xml rename to install-dev/langs/hu/language.xml diff --git a/install/langs/id/data/business_source.xml b/install-dev/langs/id/data/business_source.xml similarity index 100% rename from install/langs/id/data/business_source.xml rename to install-dev/langs/id/data/business_source.xml diff --git a/install/langs/id/data/carrier.xml b/install-dev/langs/id/data/carrier.xml similarity index 100% rename from install/langs/id/data/carrier.xml rename to install-dev/langs/id/data/carrier.xml diff --git a/install/langs/id/data/category.xml b/install-dev/langs/id/data/category.xml similarity index 100% rename from install/langs/id/data/category.xml rename to install-dev/langs/id/data/category.xml diff --git a/install/langs/id/data/cms.xml b/install-dev/langs/id/data/cms.xml similarity index 100% rename from install/langs/id/data/cms.xml rename to install-dev/langs/id/data/cms.xml diff --git a/install/langs/id/data/cms_category.xml b/install-dev/langs/id/data/cms_category.xml similarity index 100% rename from install/langs/id/data/cms_category.xml rename to install-dev/langs/id/data/cms_category.xml diff --git a/install/langs/id/data/configuration.xml b/install-dev/langs/id/data/configuration.xml similarity index 100% rename from install/langs/id/data/configuration.xml rename to install-dev/langs/id/data/configuration.xml diff --git a/install/langs/id/data/contact.xml b/install-dev/langs/id/data/contact.xml similarity index 100% rename from install/langs/id/data/contact.xml rename to install-dev/langs/id/data/contact.xml diff --git a/install/langs/id/data/country.xml b/install-dev/langs/id/data/country.xml similarity index 100% rename from install/langs/id/data/country.xml rename to install-dev/langs/id/data/country.xml diff --git a/install/langs/id/data/gender.xml b/install-dev/langs/id/data/gender.xml similarity index 100% rename from install/langs/id/data/gender.xml rename to install-dev/langs/id/data/gender.xml diff --git a/install/langs/id/data/group.xml b/install-dev/langs/id/data/group.xml similarity index 100% rename from install/langs/id/data/group.xml rename to install-dev/langs/id/data/group.xml diff --git a/install/langs/id/data/index.php b/install-dev/langs/id/data/index.php similarity index 100% rename from install/langs/id/data/index.php rename to install-dev/langs/id/data/index.php diff --git a/install/langs/id/data/meta.xml b/install-dev/langs/id/data/meta.xml similarity index 100% rename from install/langs/id/data/meta.xml rename to install-dev/langs/id/data/meta.xml diff --git a/install/langs/id/data/order_return_state.xml b/install-dev/langs/id/data/order_return_state.xml similarity index 100% rename from install/langs/id/data/order_return_state.xml rename to install-dev/langs/id/data/order_return_state.xml diff --git a/install/langs/id/data/order_state.xml b/install-dev/langs/id/data/order_state.xml similarity index 100% rename from install/langs/id/data/order_state.xml rename to install-dev/langs/id/data/order_state.xml diff --git a/install/langs/id/data/profile.xml b/install-dev/langs/id/data/profile.xml similarity index 100% rename from install/langs/id/data/profile.xml rename to install-dev/langs/id/data/profile.xml diff --git a/install/langs/id/data/quick_access.xml b/install-dev/langs/id/data/quick_access.xml similarity index 100% rename from install/langs/id/data/quick_access.xml rename to install-dev/langs/id/data/quick_access.xml diff --git a/install/langs/id/data/risk.xml b/install-dev/langs/id/data/risk.xml similarity index 100% rename from install/langs/id/data/risk.xml rename to install-dev/langs/id/data/risk.xml diff --git a/install/langs/id/data/source.xml b/install-dev/langs/id/data/source.xml similarity index 100% rename from install/langs/id/data/source.xml rename to install-dev/langs/id/data/source.xml diff --git a/install/langs/id/data/stock_mvt_reason.xml b/install-dev/langs/id/data/stock_mvt_reason.xml similarity index 100% rename from install/langs/id/data/stock_mvt_reason.xml rename to install-dev/langs/id/data/stock_mvt_reason.xml diff --git a/install/langs/id/data/supplier_order_state.xml b/install-dev/langs/id/data/supplier_order_state.xml similarity index 100% rename from install/langs/id/data/supplier_order_state.xml rename to install-dev/langs/id/data/supplier_order_state.xml diff --git a/install/langs/id/data/supply_order_state.xml b/install-dev/langs/id/data/supply_order_state.xml similarity index 100% rename from install/langs/id/data/supply_order_state.xml rename to install-dev/langs/id/data/supply_order_state.xml diff --git a/install/langs/id/data/tab.xml b/install-dev/langs/id/data/tab.xml similarity index 96% rename from install/langs/id/data/tab.xml rename to install-dev/langs/id/data/tab.xml index bf7d18335..22cf353ee 100644 --- a/install/langs/id/data/tab.xml +++ b/install-dev/langs/id/data/tab.xml @@ -22,6 +22,7 @@ + @@ -32,10 +33,12 @@ + + diff --git a/install/langs/id/flag.jpg b/install-dev/langs/id/flag.jpg similarity index 100% rename from install/langs/id/flag.jpg rename to install-dev/langs/id/flag.jpg diff --git a/install/langs/id/img/id-default-category.jpg b/install-dev/langs/id/img/id-default-category.jpg similarity index 100% rename from install/langs/id/img/id-default-category.jpg rename to install-dev/langs/id/img/id-default-category.jpg diff --git a/install/langs/id/img/id-default-home.jpg b/install-dev/langs/id/img/id-default-home.jpg similarity index 100% rename from install/langs/id/img/id-default-home.jpg rename to install-dev/langs/id/img/id-default-home.jpg diff --git a/install/langs/id/img/id-default-large.jpg b/install-dev/langs/id/img/id-default-large.jpg similarity index 100% rename from install/langs/id/img/id-default-large.jpg rename to install-dev/langs/id/img/id-default-large.jpg diff --git a/install/langs/id/img/id-default-large_scene.jpg b/install-dev/langs/id/img/id-default-large_scene.jpg similarity index 100% rename from install/langs/id/img/id-default-large_scene.jpg rename to install-dev/langs/id/img/id-default-large_scene.jpg diff --git a/install/langs/id/img/id-default-medium.jpg b/install-dev/langs/id/img/id-default-medium.jpg similarity index 100% rename from install/langs/id/img/id-default-medium.jpg rename to install-dev/langs/id/img/id-default-medium.jpg diff --git a/install/langs/id/img/id-default-small.jpg b/install-dev/langs/id/img/id-default-small.jpg similarity index 100% rename from install/langs/id/img/id-default-small.jpg rename to install-dev/langs/id/img/id-default-small.jpg diff --git a/install/langs/id/img/id-default-thickbox.jpg b/install-dev/langs/id/img/id-default-thickbox.jpg similarity index 100% rename from install/langs/id/img/id-default-thickbox.jpg rename to install-dev/langs/id/img/id-default-thickbox.jpg diff --git a/install/langs/id/img/id-default-thumb_scene.jpg b/install-dev/langs/id/img/id-default-thumb_scene.jpg similarity index 100% rename from install/langs/id/img/id-default-thumb_scene.jpg rename to install-dev/langs/id/img/id-default-thumb_scene.jpg diff --git a/install/langs/id/img/id.jpg b/install-dev/langs/id/img/id.jpg similarity index 100% rename from install/langs/id/img/id.jpg rename to install-dev/langs/id/img/id.jpg diff --git a/install/langs/id/img/index.php b/install-dev/langs/id/img/index.php similarity index 100% rename from install/langs/id/img/index.php rename to install-dev/langs/id/img/index.php diff --git a/install/langs/id/index.php b/install-dev/langs/id/index.php similarity index 100% rename from install/langs/id/index.php rename to install-dev/langs/id/index.php diff --git a/install/langs/id/install.php b/install-dev/langs/id/install.php similarity index 100% rename from install/langs/id/install.php rename to install-dev/langs/id/install.php diff --git a/install/langs/id/language.xml b/install-dev/langs/id/language.xml similarity index 100% rename from install/langs/id/language.xml rename to install-dev/langs/id/language.xml diff --git a/install/langs/index.php b/install-dev/langs/index.php similarity index 100% rename from install/langs/index.php rename to install-dev/langs/index.php diff --git a/install/langs/it/data/business_source.xml b/install-dev/langs/it/data/business_source.xml similarity index 100% rename from install/langs/it/data/business_source.xml rename to install-dev/langs/it/data/business_source.xml diff --git a/install/langs/it/data/carrier.xml b/install-dev/langs/it/data/carrier.xml similarity index 100% rename from install/langs/it/data/carrier.xml rename to install-dev/langs/it/data/carrier.xml diff --git a/install/langs/it/data/category.xml b/install-dev/langs/it/data/category.xml similarity index 100% rename from install/langs/it/data/category.xml rename to install-dev/langs/it/data/category.xml diff --git a/install/langs/it/data/cms.xml b/install-dev/langs/it/data/cms.xml similarity index 100% rename from install/langs/it/data/cms.xml rename to install-dev/langs/it/data/cms.xml diff --git a/install/langs/it/data/cms_category.xml b/install-dev/langs/it/data/cms_category.xml similarity index 100% rename from install/langs/it/data/cms_category.xml rename to install-dev/langs/it/data/cms_category.xml diff --git a/install/langs/it/data/configuration.xml b/install-dev/langs/it/data/configuration.xml similarity index 100% rename from install/langs/it/data/configuration.xml rename to install-dev/langs/it/data/configuration.xml diff --git a/install/langs/it/data/contact.xml b/install-dev/langs/it/data/contact.xml similarity index 100% rename from install/langs/it/data/contact.xml rename to install-dev/langs/it/data/contact.xml diff --git a/install/langs/it/data/country.xml b/install-dev/langs/it/data/country.xml similarity index 100% rename from install/langs/it/data/country.xml rename to install-dev/langs/it/data/country.xml diff --git a/install/langs/it/data/gender.xml b/install-dev/langs/it/data/gender.xml similarity index 100% rename from install/langs/it/data/gender.xml rename to install-dev/langs/it/data/gender.xml diff --git a/install/langs/it/data/group.xml b/install-dev/langs/it/data/group.xml similarity index 100% rename from install/langs/it/data/group.xml rename to install-dev/langs/it/data/group.xml diff --git a/install/langs/it/data/index.php b/install-dev/langs/it/data/index.php similarity index 100% rename from install/langs/it/data/index.php rename to install-dev/langs/it/data/index.php diff --git a/install/langs/it/data/meta.xml b/install-dev/langs/it/data/meta.xml similarity index 100% rename from install/langs/it/data/meta.xml rename to install-dev/langs/it/data/meta.xml diff --git a/install/langs/it/data/order_return_state.xml b/install-dev/langs/it/data/order_return_state.xml similarity index 100% rename from install/langs/it/data/order_return_state.xml rename to install-dev/langs/it/data/order_return_state.xml diff --git a/install/langs/it/data/order_state.xml b/install-dev/langs/it/data/order_state.xml similarity index 100% rename from install/langs/it/data/order_state.xml rename to install-dev/langs/it/data/order_state.xml diff --git a/install/langs/it/data/profile.xml b/install-dev/langs/it/data/profile.xml similarity index 100% rename from install/langs/it/data/profile.xml rename to install-dev/langs/it/data/profile.xml diff --git a/install/langs/it/data/quick_access.xml b/install-dev/langs/it/data/quick_access.xml similarity index 100% rename from install/langs/it/data/quick_access.xml rename to install-dev/langs/it/data/quick_access.xml diff --git a/install/langs/it/data/risk.xml b/install-dev/langs/it/data/risk.xml similarity index 100% rename from install/langs/it/data/risk.xml rename to install-dev/langs/it/data/risk.xml diff --git a/install/langs/it/data/source.xml b/install-dev/langs/it/data/source.xml similarity index 100% rename from install/langs/it/data/source.xml rename to install-dev/langs/it/data/source.xml diff --git a/install/langs/it/data/stock_mvt_reason.xml b/install-dev/langs/it/data/stock_mvt_reason.xml similarity index 100% rename from install/langs/it/data/stock_mvt_reason.xml rename to install-dev/langs/it/data/stock_mvt_reason.xml diff --git a/install/langs/it/data/supplier_order_state.xml b/install-dev/langs/it/data/supplier_order_state.xml similarity index 100% rename from install/langs/it/data/supplier_order_state.xml rename to install-dev/langs/it/data/supplier_order_state.xml diff --git a/install/langs/it/data/supply_order_state.xml b/install-dev/langs/it/data/supply_order_state.xml similarity index 100% rename from install/langs/it/data/supply_order_state.xml rename to install-dev/langs/it/data/supply_order_state.xml diff --git a/install/langs/it/data/tab.xml b/install-dev/langs/it/data/tab.xml similarity index 96% rename from install/langs/it/data/tab.xml rename to install-dev/langs/it/data/tab.xml index 143d4b614..97b1b229a 100644 --- a/install/langs/it/data/tab.xml +++ b/install-dev/langs/it/data/tab.xml @@ -37,6 +37,7 @@ + @@ -69,6 +70,7 @@ + @@ -86,6 +88,7 @@ + diff --git a/install/langs/it/flag.jpg b/install-dev/langs/it/flag.jpg similarity index 100% rename from install/langs/it/flag.jpg rename to install-dev/langs/it/flag.jpg diff --git a/install/langs/it/img/index.php b/install-dev/langs/it/img/index.php similarity index 100% rename from install/langs/it/img/index.php rename to install-dev/langs/it/img/index.php diff --git a/install/langs/it/img/it-default-category.jpg b/install-dev/langs/it/img/it-default-category.jpg similarity index 100% rename from install/langs/it/img/it-default-category.jpg rename to install-dev/langs/it/img/it-default-category.jpg diff --git a/install/langs/it/img/it-default-home.jpg b/install-dev/langs/it/img/it-default-home.jpg similarity index 100% rename from install/langs/it/img/it-default-home.jpg rename to install-dev/langs/it/img/it-default-home.jpg diff --git a/install/langs/it/img/it-default-large.jpg b/install-dev/langs/it/img/it-default-large.jpg similarity index 100% rename from install/langs/it/img/it-default-large.jpg rename to install-dev/langs/it/img/it-default-large.jpg diff --git a/install/langs/it/img/it-default-large_scene.jpg b/install-dev/langs/it/img/it-default-large_scene.jpg similarity index 100% rename from install/langs/it/img/it-default-large_scene.jpg rename to install-dev/langs/it/img/it-default-large_scene.jpg diff --git a/install/langs/it/img/it-default-medium.jpg b/install-dev/langs/it/img/it-default-medium.jpg similarity index 100% rename from install/langs/it/img/it-default-medium.jpg rename to install-dev/langs/it/img/it-default-medium.jpg diff --git a/install/langs/it/img/it-default-small.jpg b/install-dev/langs/it/img/it-default-small.jpg similarity index 100% rename from install/langs/it/img/it-default-small.jpg rename to install-dev/langs/it/img/it-default-small.jpg diff --git a/install/langs/it/img/it-default-thickbox.jpg b/install-dev/langs/it/img/it-default-thickbox.jpg similarity index 100% rename from install/langs/it/img/it-default-thickbox.jpg rename to install-dev/langs/it/img/it-default-thickbox.jpg diff --git a/install/langs/it/img/it-default-thumb_scene.jpg b/install-dev/langs/it/img/it-default-thumb_scene.jpg similarity index 100% rename from install/langs/it/img/it-default-thumb_scene.jpg rename to install-dev/langs/it/img/it-default-thumb_scene.jpg diff --git a/install/langs/it/img/it.jpg b/install-dev/langs/it/img/it.jpg similarity index 100% rename from install/langs/it/img/it.jpg rename to install-dev/langs/it/img/it.jpg diff --git a/install/langs/it/index.php b/install-dev/langs/it/index.php similarity index 100% rename from install/langs/it/index.php rename to install-dev/langs/it/index.php diff --git a/install/langs/it/install.php b/install-dev/langs/it/install.php similarity index 100% rename from install/langs/it/install.php rename to install-dev/langs/it/install.php diff --git a/install/langs/it/language.xml b/install-dev/langs/it/language.xml similarity index 100% rename from install/langs/it/language.xml rename to install-dev/langs/it/language.xml diff --git a/install/langs/lt/data/business_source.xml b/install-dev/langs/lt/data/business_source.xml similarity index 100% rename from install/langs/lt/data/business_source.xml rename to install-dev/langs/lt/data/business_source.xml diff --git a/install/langs/lt/data/carrier.xml b/install-dev/langs/lt/data/carrier.xml similarity index 100% rename from install/langs/lt/data/carrier.xml rename to install-dev/langs/lt/data/carrier.xml diff --git a/install/langs/lt/data/category.xml b/install-dev/langs/lt/data/category.xml similarity index 100% rename from install/langs/lt/data/category.xml rename to install-dev/langs/lt/data/category.xml diff --git a/install/langs/lt/data/cms.xml b/install-dev/langs/lt/data/cms.xml similarity index 100% rename from install/langs/lt/data/cms.xml rename to install-dev/langs/lt/data/cms.xml diff --git a/install/langs/lt/data/cms_category.xml b/install-dev/langs/lt/data/cms_category.xml similarity index 100% rename from install/langs/lt/data/cms_category.xml rename to install-dev/langs/lt/data/cms_category.xml diff --git a/install/langs/lt/data/configuration.xml b/install-dev/langs/lt/data/configuration.xml similarity index 100% rename from install/langs/lt/data/configuration.xml rename to install-dev/langs/lt/data/configuration.xml diff --git a/install/langs/lt/data/contact.xml b/install-dev/langs/lt/data/contact.xml similarity index 100% rename from install/langs/lt/data/contact.xml rename to install-dev/langs/lt/data/contact.xml diff --git a/install/langs/lt/data/country.xml b/install-dev/langs/lt/data/country.xml similarity index 100% rename from install/langs/lt/data/country.xml rename to install-dev/langs/lt/data/country.xml diff --git a/install/langs/lt/data/gender.xml b/install-dev/langs/lt/data/gender.xml similarity index 100% rename from install/langs/lt/data/gender.xml rename to install-dev/langs/lt/data/gender.xml diff --git a/install/langs/lt/data/group.xml b/install-dev/langs/lt/data/group.xml similarity index 100% rename from install/langs/lt/data/group.xml rename to install-dev/langs/lt/data/group.xml diff --git a/install/langs/lt/data/index.php b/install-dev/langs/lt/data/index.php similarity index 100% rename from install/langs/lt/data/index.php rename to install-dev/langs/lt/data/index.php diff --git a/install/langs/lt/data/meta.xml b/install-dev/langs/lt/data/meta.xml similarity index 100% rename from install/langs/lt/data/meta.xml rename to install-dev/langs/lt/data/meta.xml diff --git a/install/langs/lt/data/order_return_state.xml b/install-dev/langs/lt/data/order_return_state.xml similarity index 100% rename from install/langs/lt/data/order_return_state.xml rename to install-dev/langs/lt/data/order_return_state.xml diff --git a/install/langs/lt/data/order_state.xml b/install-dev/langs/lt/data/order_state.xml similarity index 100% rename from install/langs/lt/data/order_state.xml rename to install-dev/langs/lt/data/order_state.xml diff --git a/install/langs/lt/data/profile.xml b/install-dev/langs/lt/data/profile.xml similarity index 100% rename from install/langs/lt/data/profile.xml rename to install-dev/langs/lt/data/profile.xml diff --git a/install/langs/lt/data/quick_access.xml b/install-dev/langs/lt/data/quick_access.xml similarity index 100% rename from install/langs/lt/data/quick_access.xml rename to install-dev/langs/lt/data/quick_access.xml diff --git a/install/langs/lt/data/risk.xml b/install-dev/langs/lt/data/risk.xml similarity index 100% rename from install/langs/lt/data/risk.xml rename to install-dev/langs/lt/data/risk.xml diff --git a/install/langs/lt/data/source.xml b/install-dev/langs/lt/data/source.xml similarity index 100% rename from install/langs/lt/data/source.xml rename to install-dev/langs/lt/data/source.xml diff --git a/install/langs/lt/data/stock_mvt_reason.xml b/install-dev/langs/lt/data/stock_mvt_reason.xml similarity index 100% rename from install/langs/lt/data/stock_mvt_reason.xml rename to install-dev/langs/lt/data/stock_mvt_reason.xml diff --git a/install/langs/lt/data/supplier_order_state.xml b/install-dev/langs/lt/data/supplier_order_state.xml similarity index 100% rename from install/langs/lt/data/supplier_order_state.xml rename to install-dev/langs/lt/data/supplier_order_state.xml diff --git a/install/langs/lt/data/supply_order_state.xml b/install-dev/langs/lt/data/supply_order_state.xml similarity index 100% rename from install/langs/lt/data/supply_order_state.xml rename to install-dev/langs/lt/data/supply_order_state.xml diff --git a/install/langs/lt/data/tab.xml b/install-dev/langs/lt/data/tab.xml similarity index 96% rename from install/langs/lt/data/tab.xml rename to install-dev/langs/lt/data/tab.xml index 57124e29a..eac239ce5 100644 --- a/install/langs/lt/data/tab.xml +++ b/install-dev/langs/lt/data/tab.xml @@ -22,6 +22,7 @@ + @@ -32,10 +33,12 @@ + + diff --git a/install/langs/lt/flag.jpg b/install-dev/langs/lt/flag.jpg similarity index 100% rename from install/langs/lt/flag.jpg rename to install-dev/langs/lt/flag.jpg diff --git a/install/langs/lt/img/index.php b/install-dev/langs/lt/img/index.php similarity index 100% rename from install/langs/lt/img/index.php rename to install-dev/langs/lt/img/index.php diff --git a/install/langs/lt/img/lt-default-category.jpg b/install-dev/langs/lt/img/lt-default-category.jpg similarity index 100% rename from install/langs/lt/img/lt-default-category.jpg rename to install-dev/langs/lt/img/lt-default-category.jpg diff --git a/install/langs/lt/img/lt-default-home.jpg b/install-dev/langs/lt/img/lt-default-home.jpg similarity index 100% rename from install/langs/lt/img/lt-default-home.jpg rename to install-dev/langs/lt/img/lt-default-home.jpg diff --git a/install/langs/lt/img/lt-default-large.jpg b/install-dev/langs/lt/img/lt-default-large.jpg similarity index 100% rename from install/langs/lt/img/lt-default-large.jpg rename to install-dev/langs/lt/img/lt-default-large.jpg diff --git a/install/langs/lt/img/lt-default-large_scene.jpg b/install-dev/langs/lt/img/lt-default-large_scene.jpg similarity index 100% rename from install/langs/lt/img/lt-default-large_scene.jpg rename to install-dev/langs/lt/img/lt-default-large_scene.jpg diff --git a/install/langs/lt/img/lt-default-medium.jpg b/install-dev/langs/lt/img/lt-default-medium.jpg similarity index 100% rename from install/langs/lt/img/lt-default-medium.jpg rename to install-dev/langs/lt/img/lt-default-medium.jpg diff --git a/install/langs/lt/img/lt-default-small.jpg b/install-dev/langs/lt/img/lt-default-small.jpg similarity index 100% rename from install/langs/lt/img/lt-default-small.jpg rename to install-dev/langs/lt/img/lt-default-small.jpg diff --git a/install/langs/lt/img/lt-default-thickbox.jpg b/install-dev/langs/lt/img/lt-default-thickbox.jpg similarity index 100% rename from install/langs/lt/img/lt-default-thickbox.jpg rename to install-dev/langs/lt/img/lt-default-thickbox.jpg diff --git a/install/langs/lt/img/lt-default-thumb_scene.jpg b/install-dev/langs/lt/img/lt-default-thumb_scene.jpg similarity index 100% rename from install/langs/lt/img/lt-default-thumb_scene.jpg rename to install-dev/langs/lt/img/lt-default-thumb_scene.jpg diff --git a/install/langs/lt/img/lt.jpg b/install-dev/langs/lt/img/lt.jpg similarity index 100% rename from install/langs/lt/img/lt.jpg rename to install-dev/langs/lt/img/lt.jpg diff --git a/install/langs/lt/index.php b/install-dev/langs/lt/index.php similarity index 100% rename from install/langs/lt/index.php rename to install-dev/langs/lt/index.php diff --git a/install/langs/lt/install.php b/install-dev/langs/lt/install.php similarity index 100% rename from install/langs/lt/install.php rename to install-dev/langs/lt/install.php diff --git a/install/langs/lt/language.xml b/install-dev/langs/lt/language.xml similarity index 100% rename from install/langs/lt/language.xml rename to install-dev/langs/lt/language.xml diff --git a/install/langs/mk/data/business_source.xml b/install-dev/langs/mk/data/business_source.xml similarity index 100% rename from install/langs/mk/data/business_source.xml rename to install-dev/langs/mk/data/business_source.xml diff --git a/install/langs/mk/data/carrier.xml b/install-dev/langs/mk/data/carrier.xml similarity index 100% rename from install/langs/mk/data/carrier.xml rename to install-dev/langs/mk/data/carrier.xml diff --git a/install/langs/mk/data/category.xml b/install-dev/langs/mk/data/category.xml similarity index 100% rename from install/langs/mk/data/category.xml rename to install-dev/langs/mk/data/category.xml diff --git a/install/langs/mk/data/cms.xml b/install-dev/langs/mk/data/cms.xml similarity index 100% rename from install/langs/mk/data/cms.xml rename to install-dev/langs/mk/data/cms.xml diff --git a/install/langs/mk/data/cms_category.xml b/install-dev/langs/mk/data/cms_category.xml similarity index 100% rename from install/langs/mk/data/cms_category.xml rename to install-dev/langs/mk/data/cms_category.xml diff --git a/install/langs/mk/data/configuration.xml b/install-dev/langs/mk/data/configuration.xml similarity index 100% rename from install/langs/mk/data/configuration.xml rename to install-dev/langs/mk/data/configuration.xml diff --git a/install/langs/mk/data/contact.xml b/install-dev/langs/mk/data/contact.xml similarity index 100% rename from install/langs/mk/data/contact.xml rename to install-dev/langs/mk/data/contact.xml diff --git a/install/langs/mk/data/country.xml b/install-dev/langs/mk/data/country.xml similarity index 100% rename from install/langs/mk/data/country.xml rename to install-dev/langs/mk/data/country.xml diff --git a/install/langs/mk/data/gender.xml b/install-dev/langs/mk/data/gender.xml similarity index 100% rename from install/langs/mk/data/gender.xml rename to install-dev/langs/mk/data/gender.xml diff --git a/install/langs/mk/data/group.xml b/install-dev/langs/mk/data/group.xml similarity index 100% rename from install/langs/mk/data/group.xml rename to install-dev/langs/mk/data/group.xml diff --git a/install/langs/mk/data/index.php b/install-dev/langs/mk/data/index.php similarity index 100% rename from install/langs/mk/data/index.php rename to install-dev/langs/mk/data/index.php diff --git a/install/langs/mk/data/meta.xml b/install-dev/langs/mk/data/meta.xml similarity index 100% rename from install/langs/mk/data/meta.xml rename to install-dev/langs/mk/data/meta.xml diff --git a/install/langs/mk/data/order_return_state.xml b/install-dev/langs/mk/data/order_return_state.xml similarity index 100% rename from install/langs/mk/data/order_return_state.xml rename to install-dev/langs/mk/data/order_return_state.xml diff --git a/install/langs/mk/data/order_state.xml b/install-dev/langs/mk/data/order_state.xml similarity index 100% rename from install/langs/mk/data/order_state.xml rename to install-dev/langs/mk/data/order_state.xml diff --git a/install/langs/mk/data/profile.xml b/install-dev/langs/mk/data/profile.xml similarity index 100% rename from install/langs/mk/data/profile.xml rename to install-dev/langs/mk/data/profile.xml diff --git a/install/langs/mk/data/quick_access.xml b/install-dev/langs/mk/data/quick_access.xml similarity index 100% rename from install/langs/mk/data/quick_access.xml rename to install-dev/langs/mk/data/quick_access.xml diff --git a/install/langs/mk/data/risk.xml b/install-dev/langs/mk/data/risk.xml similarity index 100% rename from install/langs/mk/data/risk.xml rename to install-dev/langs/mk/data/risk.xml diff --git a/install/langs/mk/data/source.xml b/install-dev/langs/mk/data/source.xml similarity index 100% rename from install/langs/mk/data/source.xml rename to install-dev/langs/mk/data/source.xml diff --git a/install/langs/mk/data/stock_mvt_reason.xml b/install-dev/langs/mk/data/stock_mvt_reason.xml similarity index 100% rename from install/langs/mk/data/stock_mvt_reason.xml rename to install-dev/langs/mk/data/stock_mvt_reason.xml diff --git a/install/langs/mk/data/supplier_order_state.xml b/install-dev/langs/mk/data/supplier_order_state.xml similarity index 100% rename from install/langs/mk/data/supplier_order_state.xml rename to install-dev/langs/mk/data/supplier_order_state.xml diff --git a/install/langs/mk/data/supply_order_state.xml b/install-dev/langs/mk/data/supply_order_state.xml similarity index 100% rename from install/langs/mk/data/supply_order_state.xml rename to install-dev/langs/mk/data/supply_order_state.xml diff --git a/install/langs/mk/data/tab.xml b/install-dev/langs/mk/data/tab.xml similarity index 96% rename from install/langs/mk/data/tab.xml rename to install-dev/langs/mk/data/tab.xml index c0ea7d395..0051e647e 100644 --- a/install/langs/mk/data/tab.xml +++ b/install-dev/langs/mk/data/tab.xml @@ -22,6 +22,7 @@ + @@ -32,10 +33,12 @@ + + diff --git a/install/langs/mk/flag.jpg b/install-dev/langs/mk/flag.jpg similarity index 100% rename from install/langs/mk/flag.jpg rename to install-dev/langs/mk/flag.jpg diff --git a/install/langs/mk/img/index.php b/install-dev/langs/mk/img/index.php similarity index 100% rename from install/langs/mk/img/index.php rename to install-dev/langs/mk/img/index.php diff --git a/install/langs/mk/img/mk-default-category.jpg b/install-dev/langs/mk/img/mk-default-category.jpg similarity index 100% rename from install/langs/mk/img/mk-default-category.jpg rename to install-dev/langs/mk/img/mk-default-category.jpg diff --git a/install/langs/mk/img/mk-default-home.jpg b/install-dev/langs/mk/img/mk-default-home.jpg similarity index 100% rename from install/langs/mk/img/mk-default-home.jpg rename to install-dev/langs/mk/img/mk-default-home.jpg diff --git a/install/langs/mk/img/mk-default-large.jpg b/install-dev/langs/mk/img/mk-default-large.jpg similarity index 100% rename from install/langs/mk/img/mk-default-large.jpg rename to install-dev/langs/mk/img/mk-default-large.jpg diff --git a/install/langs/mk/img/mk-default-large_scene.jpg b/install-dev/langs/mk/img/mk-default-large_scene.jpg similarity index 100% rename from install/langs/mk/img/mk-default-large_scene.jpg rename to install-dev/langs/mk/img/mk-default-large_scene.jpg diff --git a/install/langs/mk/img/mk-default-medium.jpg b/install-dev/langs/mk/img/mk-default-medium.jpg similarity index 100% rename from install/langs/mk/img/mk-default-medium.jpg rename to install-dev/langs/mk/img/mk-default-medium.jpg diff --git a/install/langs/mk/img/mk-default-small.jpg b/install-dev/langs/mk/img/mk-default-small.jpg similarity index 100% rename from install/langs/mk/img/mk-default-small.jpg rename to install-dev/langs/mk/img/mk-default-small.jpg diff --git a/install/langs/mk/img/mk-default-thickbox.jpg b/install-dev/langs/mk/img/mk-default-thickbox.jpg similarity index 100% rename from install/langs/mk/img/mk-default-thickbox.jpg rename to install-dev/langs/mk/img/mk-default-thickbox.jpg diff --git a/install/langs/mk/img/mk-default-thumb_scene.jpg b/install-dev/langs/mk/img/mk-default-thumb_scene.jpg similarity index 100% rename from install/langs/mk/img/mk-default-thumb_scene.jpg rename to install-dev/langs/mk/img/mk-default-thumb_scene.jpg diff --git a/install/langs/mk/img/mk.jpg b/install-dev/langs/mk/img/mk.jpg similarity index 100% rename from install/langs/mk/img/mk.jpg rename to install-dev/langs/mk/img/mk.jpg diff --git a/install/langs/mk/index.php b/install-dev/langs/mk/index.php similarity index 100% rename from install/langs/mk/index.php rename to install-dev/langs/mk/index.php diff --git a/install/langs/mk/install.php b/install-dev/langs/mk/install.php similarity index 100% rename from install/langs/mk/install.php rename to install-dev/langs/mk/install.php diff --git a/install/langs/mk/language.xml b/install-dev/langs/mk/language.xml similarity index 100% rename from install/langs/mk/language.xml rename to install-dev/langs/mk/language.xml diff --git a/install/langs/nl/data/business_source.xml b/install-dev/langs/nl/data/business_source.xml similarity index 100% rename from install/langs/nl/data/business_source.xml rename to install-dev/langs/nl/data/business_source.xml diff --git a/install/langs/nl/data/carrier.xml b/install-dev/langs/nl/data/carrier.xml similarity index 100% rename from install/langs/nl/data/carrier.xml rename to install-dev/langs/nl/data/carrier.xml diff --git a/install/langs/nl/data/category.xml b/install-dev/langs/nl/data/category.xml similarity index 100% rename from install/langs/nl/data/category.xml rename to install-dev/langs/nl/data/category.xml diff --git a/install/langs/nl/data/cms.xml b/install-dev/langs/nl/data/cms.xml similarity index 100% rename from install/langs/nl/data/cms.xml rename to install-dev/langs/nl/data/cms.xml diff --git a/install/langs/nl/data/cms_category.xml b/install-dev/langs/nl/data/cms_category.xml similarity index 100% rename from install/langs/nl/data/cms_category.xml rename to install-dev/langs/nl/data/cms_category.xml diff --git a/install/langs/nl/data/configuration.xml b/install-dev/langs/nl/data/configuration.xml similarity index 100% rename from install/langs/nl/data/configuration.xml rename to install-dev/langs/nl/data/configuration.xml diff --git a/install/langs/nl/data/contact.xml b/install-dev/langs/nl/data/contact.xml similarity index 100% rename from install/langs/nl/data/contact.xml rename to install-dev/langs/nl/data/contact.xml diff --git a/install/langs/nl/data/country.xml b/install-dev/langs/nl/data/country.xml similarity index 100% rename from install/langs/nl/data/country.xml rename to install-dev/langs/nl/data/country.xml diff --git a/install/langs/nl/data/gender.xml b/install-dev/langs/nl/data/gender.xml similarity index 100% rename from install/langs/nl/data/gender.xml rename to install-dev/langs/nl/data/gender.xml diff --git a/install/langs/nl/data/group.xml b/install-dev/langs/nl/data/group.xml similarity index 100% rename from install/langs/nl/data/group.xml rename to install-dev/langs/nl/data/group.xml diff --git a/install/langs/nl/data/index.php b/install-dev/langs/nl/data/index.php similarity index 100% rename from install/langs/nl/data/index.php rename to install-dev/langs/nl/data/index.php diff --git a/install/langs/nl/data/meta.xml b/install-dev/langs/nl/data/meta.xml similarity index 100% rename from install/langs/nl/data/meta.xml rename to install-dev/langs/nl/data/meta.xml diff --git a/install/langs/nl/data/order_return_state.xml b/install-dev/langs/nl/data/order_return_state.xml similarity index 100% rename from install/langs/nl/data/order_return_state.xml rename to install-dev/langs/nl/data/order_return_state.xml diff --git a/install/langs/nl/data/order_state.xml b/install-dev/langs/nl/data/order_state.xml similarity index 100% rename from install/langs/nl/data/order_state.xml rename to install-dev/langs/nl/data/order_state.xml diff --git a/install/langs/nl/data/profile.xml b/install-dev/langs/nl/data/profile.xml similarity index 100% rename from install/langs/nl/data/profile.xml rename to install-dev/langs/nl/data/profile.xml diff --git a/install/langs/nl/data/quick_access.xml b/install-dev/langs/nl/data/quick_access.xml similarity index 100% rename from install/langs/nl/data/quick_access.xml rename to install-dev/langs/nl/data/quick_access.xml diff --git a/install/langs/nl/data/risk.xml b/install-dev/langs/nl/data/risk.xml similarity index 100% rename from install/langs/nl/data/risk.xml rename to install-dev/langs/nl/data/risk.xml diff --git a/install/langs/nl/data/source.xml b/install-dev/langs/nl/data/source.xml similarity index 100% rename from install/langs/nl/data/source.xml rename to install-dev/langs/nl/data/source.xml diff --git a/install/langs/nl/data/stock_mvt_reason.xml b/install-dev/langs/nl/data/stock_mvt_reason.xml similarity index 100% rename from install/langs/nl/data/stock_mvt_reason.xml rename to install-dev/langs/nl/data/stock_mvt_reason.xml diff --git a/install/langs/nl/data/supplier_order_state.xml b/install-dev/langs/nl/data/supplier_order_state.xml similarity index 100% rename from install/langs/nl/data/supplier_order_state.xml rename to install-dev/langs/nl/data/supplier_order_state.xml diff --git a/install/langs/nl/data/supply_order_state.xml b/install-dev/langs/nl/data/supply_order_state.xml similarity index 100% rename from install/langs/nl/data/supply_order_state.xml rename to install-dev/langs/nl/data/supply_order_state.xml diff --git a/install/langs/nl/data/tab.xml b/install-dev/langs/nl/data/tab.xml similarity index 96% rename from install/langs/nl/data/tab.xml rename to install-dev/langs/nl/data/tab.xml index 27c6f9992..fb13668d4 100644 --- a/install/langs/nl/data/tab.xml +++ b/install-dev/langs/nl/data/tab.xml @@ -22,6 +22,7 @@ + @@ -32,10 +33,12 @@ + + diff --git a/install/langs/nl/flag.jpg b/install-dev/langs/nl/flag.jpg similarity index 100% rename from install/langs/nl/flag.jpg rename to install-dev/langs/nl/flag.jpg diff --git a/install/langs/nl/img/index.php b/install-dev/langs/nl/img/index.php similarity index 100% rename from install/langs/nl/img/index.php rename to install-dev/langs/nl/img/index.php diff --git a/install/langs/nl/img/nl-default-category.jpg b/install-dev/langs/nl/img/nl-default-category.jpg similarity index 100% rename from install/langs/nl/img/nl-default-category.jpg rename to install-dev/langs/nl/img/nl-default-category.jpg diff --git a/install/langs/nl/img/nl-default-home.jpg b/install-dev/langs/nl/img/nl-default-home.jpg similarity index 100% rename from install/langs/nl/img/nl-default-home.jpg rename to install-dev/langs/nl/img/nl-default-home.jpg diff --git a/install/langs/nl/img/nl-default-large.jpg b/install-dev/langs/nl/img/nl-default-large.jpg similarity index 100% rename from install/langs/nl/img/nl-default-large.jpg rename to install-dev/langs/nl/img/nl-default-large.jpg diff --git a/install/langs/nl/img/nl-default-large_scene.jpg b/install-dev/langs/nl/img/nl-default-large_scene.jpg similarity index 100% rename from install/langs/nl/img/nl-default-large_scene.jpg rename to install-dev/langs/nl/img/nl-default-large_scene.jpg diff --git a/install/langs/nl/img/nl-default-medium.jpg b/install-dev/langs/nl/img/nl-default-medium.jpg similarity index 100% rename from install/langs/nl/img/nl-default-medium.jpg rename to install-dev/langs/nl/img/nl-default-medium.jpg diff --git a/install/langs/nl/img/nl-default-small.jpg b/install-dev/langs/nl/img/nl-default-small.jpg similarity index 100% rename from install/langs/nl/img/nl-default-small.jpg rename to install-dev/langs/nl/img/nl-default-small.jpg diff --git a/install/langs/nl/img/nl-default-thickbox.jpg b/install-dev/langs/nl/img/nl-default-thickbox.jpg similarity index 100% rename from install/langs/nl/img/nl-default-thickbox.jpg rename to install-dev/langs/nl/img/nl-default-thickbox.jpg diff --git a/install/langs/nl/img/nl-default-thumb_scene.jpg b/install-dev/langs/nl/img/nl-default-thumb_scene.jpg similarity index 100% rename from install/langs/nl/img/nl-default-thumb_scene.jpg rename to install-dev/langs/nl/img/nl-default-thumb_scene.jpg diff --git a/install/langs/nl/img/nl.jpg b/install-dev/langs/nl/img/nl.jpg similarity index 100% rename from install/langs/nl/img/nl.jpg rename to install-dev/langs/nl/img/nl.jpg diff --git a/install/langs/nl/index.php b/install-dev/langs/nl/index.php similarity index 100% rename from install/langs/nl/index.php rename to install-dev/langs/nl/index.php diff --git a/install/langs/nl/install.php b/install-dev/langs/nl/install.php similarity index 100% rename from install/langs/nl/install.php rename to install-dev/langs/nl/install.php diff --git a/install/langs/nl/language.xml b/install-dev/langs/nl/language.xml similarity index 100% rename from install/langs/nl/language.xml rename to install-dev/langs/nl/language.xml diff --git a/install/langs/no/data/business_source.xml b/install-dev/langs/no/data/business_source.xml similarity index 100% rename from install/langs/no/data/business_source.xml rename to install-dev/langs/no/data/business_source.xml diff --git a/install/langs/no/data/carrier.xml b/install-dev/langs/no/data/carrier.xml similarity index 100% rename from install/langs/no/data/carrier.xml rename to install-dev/langs/no/data/carrier.xml diff --git a/install/langs/no/data/category.xml b/install-dev/langs/no/data/category.xml similarity index 100% rename from install/langs/no/data/category.xml rename to install-dev/langs/no/data/category.xml diff --git a/install/langs/no/data/cms.xml b/install-dev/langs/no/data/cms.xml similarity index 100% rename from install/langs/no/data/cms.xml rename to install-dev/langs/no/data/cms.xml diff --git a/install/langs/no/data/cms_category.xml b/install-dev/langs/no/data/cms_category.xml similarity index 100% rename from install/langs/no/data/cms_category.xml rename to install-dev/langs/no/data/cms_category.xml diff --git a/install/langs/no/data/configuration.xml b/install-dev/langs/no/data/configuration.xml similarity index 100% rename from install/langs/no/data/configuration.xml rename to install-dev/langs/no/data/configuration.xml diff --git a/install/langs/no/data/contact.xml b/install-dev/langs/no/data/contact.xml similarity index 100% rename from install/langs/no/data/contact.xml rename to install-dev/langs/no/data/contact.xml diff --git a/install/langs/no/data/country.xml b/install-dev/langs/no/data/country.xml similarity index 100% rename from install/langs/no/data/country.xml rename to install-dev/langs/no/data/country.xml diff --git a/install/langs/no/data/gender.xml b/install-dev/langs/no/data/gender.xml similarity index 100% rename from install/langs/no/data/gender.xml rename to install-dev/langs/no/data/gender.xml diff --git a/install/langs/no/data/group.xml b/install-dev/langs/no/data/group.xml similarity index 100% rename from install/langs/no/data/group.xml rename to install-dev/langs/no/data/group.xml diff --git a/install/langs/no/data/index.php b/install-dev/langs/no/data/index.php similarity index 100% rename from install/langs/no/data/index.php rename to install-dev/langs/no/data/index.php diff --git a/install/langs/no/data/meta.xml b/install-dev/langs/no/data/meta.xml similarity index 100% rename from install/langs/no/data/meta.xml rename to install-dev/langs/no/data/meta.xml diff --git a/install/langs/no/data/order_return_state.xml b/install-dev/langs/no/data/order_return_state.xml similarity index 100% rename from install/langs/no/data/order_return_state.xml rename to install-dev/langs/no/data/order_return_state.xml diff --git a/install/langs/no/data/order_state.xml b/install-dev/langs/no/data/order_state.xml similarity index 100% rename from install/langs/no/data/order_state.xml rename to install-dev/langs/no/data/order_state.xml diff --git a/install/langs/no/data/profile.xml b/install-dev/langs/no/data/profile.xml similarity index 100% rename from install/langs/no/data/profile.xml rename to install-dev/langs/no/data/profile.xml diff --git a/install/langs/no/data/quick_access.xml b/install-dev/langs/no/data/quick_access.xml similarity index 100% rename from install/langs/no/data/quick_access.xml rename to install-dev/langs/no/data/quick_access.xml diff --git a/install/langs/no/data/risk.xml b/install-dev/langs/no/data/risk.xml similarity index 100% rename from install/langs/no/data/risk.xml rename to install-dev/langs/no/data/risk.xml diff --git a/install/langs/no/data/source.xml b/install-dev/langs/no/data/source.xml similarity index 100% rename from install/langs/no/data/source.xml rename to install-dev/langs/no/data/source.xml diff --git a/install/langs/no/data/stock_mvt_reason.xml b/install-dev/langs/no/data/stock_mvt_reason.xml similarity index 100% rename from install/langs/no/data/stock_mvt_reason.xml rename to install-dev/langs/no/data/stock_mvt_reason.xml diff --git a/install/langs/no/data/supplier_order_state.xml b/install-dev/langs/no/data/supplier_order_state.xml similarity index 100% rename from install/langs/no/data/supplier_order_state.xml rename to install-dev/langs/no/data/supplier_order_state.xml diff --git a/install/langs/no/data/supply_order_state.xml b/install-dev/langs/no/data/supply_order_state.xml similarity index 100% rename from install/langs/no/data/supply_order_state.xml rename to install-dev/langs/no/data/supply_order_state.xml diff --git a/install/langs/no/data/tab.xml b/install-dev/langs/no/data/tab.xml similarity index 96% rename from install/langs/no/data/tab.xml rename to install-dev/langs/no/data/tab.xml index b122490f4..0629fd458 100644 --- a/install/langs/no/data/tab.xml +++ b/install-dev/langs/no/data/tab.xml @@ -22,6 +22,7 @@ + @@ -32,10 +33,12 @@ + + diff --git a/install/langs/no/flag.jpg b/install-dev/langs/no/flag.jpg similarity index 100% rename from install/langs/no/flag.jpg rename to install-dev/langs/no/flag.jpg diff --git a/install/langs/no/img/index.php b/install-dev/langs/no/img/index.php similarity index 100% rename from install/langs/no/img/index.php rename to install-dev/langs/no/img/index.php diff --git a/install/langs/no/img/no-default-category.jpg b/install-dev/langs/no/img/no-default-category.jpg similarity index 100% rename from install/langs/no/img/no-default-category.jpg rename to install-dev/langs/no/img/no-default-category.jpg diff --git a/install/langs/no/img/no-default-home.jpg b/install-dev/langs/no/img/no-default-home.jpg similarity index 100% rename from install/langs/no/img/no-default-home.jpg rename to install-dev/langs/no/img/no-default-home.jpg diff --git a/install/langs/no/img/no-default-large.jpg b/install-dev/langs/no/img/no-default-large.jpg similarity index 100% rename from install/langs/no/img/no-default-large.jpg rename to install-dev/langs/no/img/no-default-large.jpg diff --git a/install/langs/no/img/no-default-large_scene.jpg b/install-dev/langs/no/img/no-default-large_scene.jpg similarity index 100% rename from install/langs/no/img/no-default-large_scene.jpg rename to install-dev/langs/no/img/no-default-large_scene.jpg diff --git a/install/langs/no/img/no-default-medium.jpg b/install-dev/langs/no/img/no-default-medium.jpg similarity index 100% rename from install/langs/no/img/no-default-medium.jpg rename to install-dev/langs/no/img/no-default-medium.jpg diff --git a/install/langs/no/img/no-default-small.jpg b/install-dev/langs/no/img/no-default-small.jpg similarity index 100% rename from install/langs/no/img/no-default-small.jpg rename to install-dev/langs/no/img/no-default-small.jpg diff --git a/install/langs/no/img/no-default-thickbox.jpg b/install-dev/langs/no/img/no-default-thickbox.jpg similarity index 100% rename from install/langs/no/img/no-default-thickbox.jpg rename to install-dev/langs/no/img/no-default-thickbox.jpg diff --git a/install/langs/no/img/no-default-thumb_scene.jpg b/install-dev/langs/no/img/no-default-thumb_scene.jpg similarity index 100% rename from install/langs/no/img/no-default-thumb_scene.jpg rename to install-dev/langs/no/img/no-default-thumb_scene.jpg diff --git a/install/langs/no/img/no.jpg b/install-dev/langs/no/img/no.jpg similarity index 100% rename from install/langs/no/img/no.jpg rename to install-dev/langs/no/img/no.jpg diff --git a/install/langs/no/index.php b/install-dev/langs/no/index.php similarity index 100% rename from install/langs/no/index.php rename to install-dev/langs/no/index.php diff --git a/install/langs/no/install.php b/install-dev/langs/no/install.php similarity index 100% rename from install/langs/no/install.php rename to install-dev/langs/no/install.php diff --git a/install/langs/no/language.xml b/install-dev/langs/no/language.xml similarity index 100% rename from install/langs/no/language.xml rename to install-dev/langs/no/language.xml diff --git a/install/langs/pl/data/business_source.xml b/install-dev/langs/pl/data/business_source.xml similarity index 100% rename from install/langs/pl/data/business_source.xml rename to install-dev/langs/pl/data/business_source.xml diff --git a/install/langs/pl/data/carrier.xml b/install-dev/langs/pl/data/carrier.xml similarity index 100% rename from install/langs/pl/data/carrier.xml rename to install-dev/langs/pl/data/carrier.xml diff --git a/install/langs/pl/data/category.xml b/install-dev/langs/pl/data/category.xml similarity index 100% rename from install/langs/pl/data/category.xml rename to install-dev/langs/pl/data/category.xml diff --git a/install/langs/pl/data/cms.xml b/install-dev/langs/pl/data/cms.xml similarity index 100% rename from install/langs/pl/data/cms.xml rename to install-dev/langs/pl/data/cms.xml diff --git a/install/langs/pl/data/cms_category.xml b/install-dev/langs/pl/data/cms_category.xml similarity index 100% rename from install/langs/pl/data/cms_category.xml rename to install-dev/langs/pl/data/cms_category.xml diff --git a/install/langs/pl/data/configuration.xml b/install-dev/langs/pl/data/configuration.xml similarity index 100% rename from install/langs/pl/data/configuration.xml rename to install-dev/langs/pl/data/configuration.xml diff --git a/install/langs/pl/data/contact.xml b/install-dev/langs/pl/data/contact.xml similarity index 100% rename from install/langs/pl/data/contact.xml rename to install-dev/langs/pl/data/contact.xml diff --git a/install/langs/pl/data/country.xml b/install-dev/langs/pl/data/country.xml similarity index 100% rename from install/langs/pl/data/country.xml rename to install-dev/langs/pl/data/country.xml diff --git a/install/langs/pl/data/gender.xml b/install-dev/langs/pl/data/gender.xml similarity index 100% rename from install/langs/pl/data/gender.xml rename to install-dev/langs/pl/data/gender.xml diff --git a/install/langs/pl/data/group.xml b/install-dev/langs/pl/data/group.xml similarity index 100% rename from install/langs/pl/data/group.xml rename to install-dev/langs/pl/data/group.xml diff --git a/install/langs/pl/data/index.php b/install-dev/langs/pl/data/index.php similarity index 100% rename from install/langs/pl/data/index.php rename to install-dev/langs/pl/data/index.php diff --git a/install/langs/pl/data/meta.xml b/install-dev/langs/pl/data/meta.xml similarity index 100% rename from install/langs/pl/data/meta.xml rename to install-dev/langs/pl/data/meta.xml diff --git a/install/langs/pl/data/order_return_state.xml b/install-dev/langs/pl/data/order_return_state.xml similarity index 100% rename from install/langs/pl/data/order_return_state.xml rename to install-dev/langs/pl/data/order_return_state.xml diff --git a/install/langs/pl/data/order_state.xml b/install-dev/langs/pl/data/order_state.xml similarity index 100% rename from install/langs/pl/data/order_state.xml rename to install-dev/langs/pl/data/order_state.xml diff --git a/install/langs/pl/data/profile.xml b/install-dev/langs/pl/data/profile.xml similarity index 100% rename from install/langs/pl/data/profile.xml rename to install-dev/langs/pl/data/profile.xml diff --git a/install/langs/pl/data/quick_access.xml b/install-dev/langs/pl/data/quick_access.xml similarity index 100% rename from install/langs/pl/data/quick_access.xml rename to install-dev/langs/pl/data/quick_access.xml diff --git a/install/langs/pl/data/risk.xml b/install-dev/langs/pl/data/risk.xml similarity index 100% rename from install/langs/pl/data/risk.xml rename to install-dev/langs/pl/data/risk.xml diff --git a/install/langs/pl/data/source.xml b/install-dev/langs/pl/data/source.xml similarity index 100% rename from install/langs/pl/data/source.xml rename to install-dev/langs/pl/data/source.xml diff --git a/install/langs/pl/data/stock_mvt_reason.xml b/install-dev/langs/pl/data/stock_mvt_reason.xml similarity index 100% rename from install/langs/pl/data/stock_mvt_reason.xml rename to install-dev/langs/pl/data/stock_mvt_reason.xml diff --git a/install/langs/pl/data/supplier_order_state.xml b/install-dev/langs/pl/data/supplier_order_state.xml similarity index 100% rename from install/langs/pl/data/supplier_order_state.xml rename to install-dev/langs/pl/data/supplier_order_state.xml diff --git a/install/langs/pl/data/supply_order_state.xml b/install-dev/langs/pl/data/supply_order_state.xml similarity index 100% rename from install/langs/pl/data/supply_order_state.xml rename to install-dev/langs/pl/data/supply_order_state.xml diff --git a/install/langs/pl/data/tab.xml b/install-dev/langs/pl/data/tab.xml similarity index 96% rename from install/langs/pl/data/tab.xml rename to install-dev/langs/pl/data/tab.xml index bc9b91e58..5da7096ef 100644 --- a/install/langs/pl/data/tab.xml +++ b/install-dev/langs/pl/data/tab.xml @@ -37,6 +37,7 @@ + @@ -69,6 +70,7 @@ + @@ -86,6 +88,7 @@ + diff --git a/install/langs/pl/flag.jpg b/install-dev/langs/pl/flag.jpg similarity index 100% rename from install/langs/pl/flag.jpg rename to install-dev/langs/pl/flag.jpg diff --git a/install/langs/pl/img/flag.jpg b/install-dev/langs/pl/img/flag.jpg similarity index 100% rename from install/langs/pl/img/flag.jpg rename to install-dev/langs/pl/img/flag.jpg diff --git a/install/langs/pl/img/index.php b/install-dev/langs/pl/img/index.php similarity index 100% rename from install/langs/pl/img/index.php rename to install-dev/langs/pl/img/index.php diff --git a/install/langs/pl/img/pl-default-category.jpg b/install-dev/langs/pl/img/pl-default-category.jpg similarity index 100% rename from install/langs/pl/img/pl-default-category.jpg rename to install-dev/langs/pl/img/pl-default-category.jpg diff --git a/install/langs/pl/img/pl-default-home.jpg b/install-dev/langs/pl/img/pl-default-home.jpg similarity index 100% rename from install/langs/pl/img/pl-default-home.jpg rename to install-dev/langs/pl/img/pl-default-home.jpg diff --git a/install/langs/pl/img/pl-default-large.jpg b/install-dev/langs/pl/img/pl-default-large.jpg similarity index 100% rename from install/langs/pl/img/pl-default-large.jpg rename to install-dev/langs/pl/img/pl-default-large.jpg diff --git a/install/langs/pl/img/pl-default-large_scene.jpg b/install-dev/langs/pl/img/pl-default-large_scene.jpg similarity index 100% rename from install/langs/pl/img/pl-default-large_scene.jpg rename to install-dev/langs/pl/img/pl-default-large_scene.jpg diff --git a/install/langs/pl/img/pl-default-medium.jpg b/install-dev/langs/pl/img/pl-default-medium.jpg similarity index 100% rename from install/langs/pl/img/pl-default-medium.jpg rename to install-dev/langs/pl/img/pl-default-medium.jpg diff --git a/install/langs/pl/img/pl-default-small.jpg b/install-dev/langs/pl/img/pl-default-small.jpg similarity index 100% rename from install/langs/pl/img/pl-default-small.jpg rename to install-dev/langs/pl/img/pl-default-small.jpg diff --git a/install/langs/pl/img/pl-default-thickbox.jpg b/install-dev/langs/pl/img/pl-default-thickbox.jpg similarity index 100% rename from install/langs/pl/img/pl-default-thickbox.jpg rename to install-dev/langs/pl/img/pl-default-thickbox.jpg diff --git a/install/langs/pl/img/pl-default-thumb_scene.jpg b/install-dev/langs/pl/img/pl-default-thumb_scene.jpg similarity index 100% rename from install/langs/pl/img/pl-default-thumb_scene.jpg rename to install-dev/langs/pl/img/pl-default-thumb_scene.jpg diff --git a/install/langs/pl/img/pl.jpg b/install-dev/langs/pl/img/pl.jpg similarity index 100% rename from install/langs/pl/img/pl.jpg rename to install-dev/langs/pl/img/pl.jpg diff --git a/install/langs/pl/index.php b/install-dev/langs/pl/index.php similarity index 100% rename from install/langs/pl/index.php rename to install-dev/langs/pl/index.php diff --git a/install/langs/pl/install.php b/install-dev/langs/pl/install.php similarity index 100% rename from install/langs/pl/install.php rename to install-dev/langs/pl/install.php diff --git a/install/langs/pl/language.xml b/install-dev/langs/pl/language.xml similarity index 100% rename from install/langs/pl/language.xml rename to install-dev/langs/pl/language.xml diff --git a/install/langs/pt/data/business_source.xml b/install-dev/langs/pt/data/business_source.xml similarity index 100% rename from install/langs/pt/data/business_source.xml rename to install-dev/langs/pt/data/business_source.xml diff --git a/install/langs/pt/data/carrier.xml b/install-dev/langs/pt/data/carrier.xml similarity index 100% rename from install/langs/pt/data/carrier.xml rename to install-dev/langs/pt/data/carrier.xml diff --git a/install/langs/pt/data/category.xml b/install-dev/langs/pt/data/category.xml similarity index 100% rename from install/langs/pt/data/category.xml rename to install-dev/langs/pt/data/category.xml diff --git a/install/langs/pt/data/cms.xml b/install-dev/langs/pt/data/cms.xml similarity index 100% rename from install/langs/pt/data/cms.xml rename to install-dev/langs/pt/data/cms.xml diff --git a/install/langs/pt/data/cms_category.xml b/install-dev/langs/pt/data/cms_category.xml similarity index 100% rename from install/langs/pt/data/cms_category.xml rename to install-dev/langs/pt/data/cms_category.xml diff --git a/install/langs/pt/data/configuration.xml b/install-dev/langs/pt/data/configuration.xml similarity index 100% rename from install/langs/pt/data/configuration.xml rename to install-dev/langs/pt/data/configuration.xml diff --git a/install/langs/pt/data/contact.xml b/install-dev/langs/pt/data/contact.xml similarity index 100% rename from install/langs/pt/data/contact.xml rename to install-dev/langs/pt/data/contact.xml diff --git a/install/langs/pt/data/country.xml b/install-dev/langs/pt/data/country.xml similarity index 100% rename from install/langs/pt/data/country.xml rename to install-dev/langs/pt/data/country.xml diff --git a/install/langs/pt/data/gender.xml b/install-dev/langs/pt/data/gender.xml similarity index 100% rename from install/langs/pt/data/gender.xml rename to install-dev/langs/pt/data/gender.xml diff --git a/install/langs/pt/data/group.xml b/install-dev/langs/pt/data/group.xml similarity index 100% rename from install/langs/pt/data/group.xml rename to install-dev/langs/pt/data/group.xml diff --git a/install/langs/pt/data/index.php b/install-dev/langs/pt/data/index.php similarity index 100% rename from install/langs/pt/data/index.php rename to install-dev/langs/pt/data/index.php diff --git a/install/langs/pt/data/meta.xml b/install-dev/langs/pt/data/meta.xml similarity index 100% rename from install/langs/pt/data/meta.xml rename to install-dev/langs/pt/data/meta.xml diff --git a/install/langs/pt/data/order_return_state.xml b/install-dev/langs/pt/data/order_return_state.xml similarity index 100% rename from install/langs/pt/data/order_return_state.xml rename to install-dev/langs/pt/data/order_return_state.xml diff --git a/install/langs/pt/data/order_state.xml b/install-dev/langs/pt/data/order_state.xml similarity index 100% rename from install/langs/pt/data/order_state.xml rename to install-dev/langs/pt/data/order_state.xml diff --git a/install/langs/pt/data/profile.xml b/install-dev/langs/pt/data/profile.xml similarity index 100% rename from install/langs/pt/data/profile.xml rename to install-dev/langs/pt/data/profile.xml diff --git a/install/langs/pt/data/quick_access.xml b/install-dev/langs/pt/data/quick_access.xml similarity index 100% rename from install/langs/pt/data/quick_access.xml rename to install-dev/langs/pt/data/quick_access.xml diff --git a/install/langs/pt/data/risk.xml b/install-dev/langs/pt/data/risk.xml similarity index 100% rename from install/langs/pt/data/risk.xml rename to install-dev/langs/pt/data/risk.xml diff --git a/install/langs/pt/data/source.xml b/install-dev/langs/pt/data/source.xml similarity index 100% rename from install/langs/pt/data/source.xml rename to install-dev/langs/pt/data/source.xml diff --git a/install/langs/pt/data/stock_mvt_reason.xml b/install-dev/langs/pt/data/stock_mvt_reason.xml similarity index 100% rename from install/langs/pt/data/stock_mvt_reason.xml rename to install-dev/langs/pt/data/stock_mvt_reason.xml diff --git a/install/langs/pt/data/supplier_order_state.xml b/install-dev/langs/pt/data/supplier_order_state.xml similarity index 100% rename from install/langs/pt/data/supplier_order_state.xml rename to install-dev/langs/pt/data/supplier_order_state.xml diff --git a/install/langs/pt/data/supply_order_state.xml b/install-dev/langs/pt/data/supply_order_state.xml similarity index 100% rename from install/langs/pt/data/supply_order_state.xml rename to install-dev/langs/pt/data/supply_order_state.xml diff --git a/install/langs/pt/data/tab.xml b/install-dev/langs/pt/data/tab.xml similarity index 96% rename from install/langs/pt/data/tab.xml rename to install-dev/langs/pt/data/tab.xml index 41609f606..273e161be 100644 --- a/install/langs/pt/data/tab.xml +++ b/install-dev/langs/pt/data/tab.xml @@ -37,6 +37,7 @@ + @@ -69,6 +70,7 @@ + @@ -86,6 +88,7 @@ + diff --git a/install/langs/pt/flag.jpg b/install-dev/langs/pt/flag.jpg similarity index 100% rename from install/langs/pt/flag.jpg rename to install-dev/langs/pt/flag.jpg diff --git a/install/langs/pt/img/index.php b/install-dev/langs/pt/img/index.php similarity index 100% rename from install/langs/pt/img/index.php rename to install-dev/langs/pt/img/index.php diff --git a/install/langs/pt/img/pt-default-category.jpg b/install-dev/langs/pt/img/pt-default-category.jpg similarity index 100% rename from install/langs/pt/img/pt-default-category.jpg rename to install-dev/langs/pt/img/pt-default-category.jpg diff --git a/install/langs/pt/img/pt-default-home.jpg b/install-dev/langs/pt/img/pt-default-home.jpg similarity index 100% rename from install/langs/pt/img/pt-default-home.jpg rename to install-dev/langs/pt/img/pt-default-home.jpg diff --git a/install/langs/pt/img/pt-default-large.jpg b/install-dev/langs/pt/img/pt-default-large.jpg similarity index 100% rename from install/langs/pt/img/pt-default-large.jpg rename to install-dev/langs/pt/img/pt-default-large.jpg diff --git a/install/langs/pt/img/pt-default-large_scene.jpg b/install-dev/langs/pt/img/pt-default-large_scene.jpg similarity index 100% rename from install/langs/pt/img/pt-default-large_scene.jpg rename to install-dev/langs/pt/img/pt-default-large_scene.jpg diff --git a/install/langs/pt/img/pt-default-medium.jpg b/install-dev/langs/pt/img/pt-default-medium.jpg similarity index 100% rename from install/langs/pt/img/pt-default-medium.jpg rename to install-dev/langs/pt/img/pt-default-medium.jpg diff --git a/install/langs/pt/img/pt-default-small.jpg b/install-dev/langs/pt/img/pt-default-small.jpg similarity index 100% rename from install/langs/pt/img/pt-default-small.jpg rename to install-dev/langs/pt/img/pt-default-small.jpg diff --git a/install/langs/pt/img/pt-default-thickbox.jpg b/install-dev/langs/pt/img/pt-default-thickbox.jpg similarity index 100% rename from install/langs/pt/img/pt-default-thickbox.jpg rename to install-dev/langs/pt/img/pt-default-thickbox.jpg diff --git a/install/langs/pt/img/pt-default-thumb_scene.jpg b/install-dev/langs/pt/img/pt-default-thumb_scene.jpg similarity index 100% rename from install/langs/pt/img/pt-default-thumb_scene.jpg rename to install-dev/langs/pt/img/pt-default-thumb_scene.jpg diff --git a/install/langs/pt/img/pt.jpg b/install-dev/langs/pt/img/pt.jpg similarity index 100% rename from install/langs/pt/img/pt.jpg rename to install-dev/langs/pt/img/pt.jpg diff --git a/install/langs/pt/index.php b/install-dev/langs/pt/index.php similarity index 100% rename from install/langs/pt/index.php rename to install-dev/langs/pt/index.php diff --git a/install/langs/pt/install.php b/install-dev/langs/pt/install.php similarity index 100% rename from install/langs/pt/install.php rename to install-dev/langs/pt/install.php diff --git a/install/langs/pt/language.xml b/install-dev/langs/pt/language.xml similarity index 100% rename from install/langs/pt/language.xml rename to install-dev/langs/pt/language.xml diff --git a/install/langs/qc/data/business_source.xml b/install-dev/langs/qc/data/business_source.xml similarity index 100% rename from install/langs/qc/data/business_source.xml rename to install-dev/langs/qc/data/business_source.xml diff --git a/install/langs/qc/data/carrier.xml b/install-dev/langs/qc/data/carrier.xml similarity index 100% rename from install/langs/qc/data/carrier.xml rename to install-dev/langs/qc/data/carrier.xml diff --git a/install/langs/qc/data/category.xml b/install-dev/langs/qc/data/category.xml similarity index 100% rename from install/langs/qc/data/category.xml rename to install-dev/langs/qc/data/category.xml diff --git a/install/langs/qc/data/cms.xml b/install-dev/langs/qc/data/cms.xml similarity index 100% rename from install/langs/qc/data/cms.xml rename to install-dev/langs/qc/data/cms.xml diff --git a/install/langs/qc/data/cms_category.xml b/install-dev/langs/qc/data/cms_category.xml similarity index 100% rename from install/langs/qc/data/cms_category.xml rename to install-dev/langs/qc/data/cms_category.xml diff --git a/install/langs/qc/data/configuration.xml b/install-dev/langs/qc/data/configuration.xml similarity index 100% rename from install/langs/qc/data/configuration.xml rename to install-dev/langs/qc/data/configuration.xml diff --git a/install/langs/qc/data/contact.xml b/install-dev/langs/qc/data/contact.xml similarity index 100% rename from install/langs/qc/data/contact.xml rename to install-dev/langs/qc/data/contact.xml diff --git a/install/langs/qc/data/country.xml b/install-dev/langs/qc/data/country.xml similarity index 100% rename from install/langs/qc/data/country.xml rename to install-dev/langs/qc/data/country.xml diff --git a/install/langs/qc/data/gender.xml b/install-dev/langs/qc/data/gender.xml similarity index 100% rename from install/langs/qc/data/gender.xml rename to install-dev/langs/qc/data/gender.xml diff --git a/install/langs/qc/data/group.xml b/install-dev/langs/qc/data/group.xml similarity index 100% rename from install/langs/qc/data/group.xml rename to install-dev/langs/qc/data/group.xml diff --git a/install/langs/qc/data/index.php b/install-dev/langs/qc/data/index.php similarity index 100% rename from install/langs/qc/data/index.php rename to install-dev/langs/qc/data/index.php diff --git a/install/langs/qc/data/meta.xml b/install-dev/langs/qc/data/meta.xml similarity index 100% rename from install/langs/qc/data/meta.xml rename to install-dev/langs/qc/data/meta.xml diff --git a/install/langs/qc/data/order_return_state.xml b/install-dev/langs/qc/data/order_return_state.xml similarity index 100% rename from install/langs/qc/data/order_return_state.xml rename to install-dev/langs/qc/data/order_return_state.xml diff --git a/install/langs/qc/data/order_state.xml b/install-dev/langs/qc/data/order_state.xml similarity index 100% rename from install/langs/qc/data/order_state.xml rename to install-dev/langs/qc/data/order_state.xml diff --git a/install/langs/qc/data/profile.xml b/install-dev/langs/qc/data/profile.xml similarity index 100% rename from install/langs/qc/data/profile.xml rename to install-dev/langs/qc/data/profile.xml diff --git a/install/langs/qc/data/quick_access.xml b/install-dev/langs/qc/data/quick_access.xml similarity index 100% rename from install/langs/qc/data/quick_access.xml rename to install-dev/langs/qc/data/quick_access.xml diff --git a/install/langs/qc/data/risk.xml b/install-dev/langs/qc/data/risk.xml similarity index 100% rename from install/langs/qc/data/risk.xml rename to install-dev/langs/qc/data/risk.xml diff --git a/install/langs/qc/data/source.xml b/install-dev/langs/qc/data/source.xml similarity index 100% rename from install/langs/qc/data/source.xml rename to install-dev/langs/qc/data/source.xml diff --git a/install/langs/qc/data/stock_mvt_reason.xml b/install-dev/langs/qc/data/stock_mvt_reason.xml similarity index 100% rename from install/langs/qc/data/stock_mvt_reason.xml rename to install-dev/langs/qc/data/stock_mvt_reason.xml diff --git a/install/langs/qc/data/supplier_order_state.xml b/install-dev/langs/qc/data/supplier_order_state.xml similarity index 100% rename from install/langs/qc/data/supplier_order_state.xml rename to install-dev/langs/qc/data/supplier_order_state.xml diff --git a/install/langs/qc/data/supply_order_state.xml b/install-dev/langs/qc/data/supply_order_state.xml similarity index 100% rename from install/langs/qc/data/supply_order_state.xml rename to install-dev/langs/qc/data/supply_order_state.xml diff --git a/install/langs/qc/data/tab.xml b/install-dev/langs/qc/data/tab.xml similarity index 96% rename from install/langs/qc/data/tab.xml rename to install-dev/langs/qc/data/tab.xml index e323a18e3..9d25daca0 100644 --- a/install/langs/qc/data/tab.xml +++ b/install-dev/langs/qc/data/tab.xml @@ -37,6 +37,7 @@ + @@ -69,6 +70,7 @@ + @@ -86,6 +88,7 @@ + diff --git a/install/langs/qc/flag.jpg b/install-dev/langs/qc/flag.jpg similarity index 100% rename from install/langs/qc/flag.jpg rename to install-dev/langs/qc/flag.jpg diff --git a/install/langs/qc/img/index.php b/install-dev/langs/qc/img/index.php similarity index 100% rename from install/langs/qc/img/index.php rename to install-dev/langs/qc/img/index.php diff --git a/install/langs/qc/img/qc-default-category.jpg b/install-dev/langs/qc/img/qc-default-category.jpg similarity index 100% rename from install/langs/qc/img/qc-default-category.jpg rename to install-dev/langs/qc/img/qc-default-category.jpg diff --git a/install/langs/qc/img/qc-default-home.jpg b/install-dev/langs/qc/img/qc-default-home.jpg similarity index 100% rename from install/langs/qc/img/qc-default-home.jpg rename to install-dev/langs/qc/img/qc-default-home.jpg diff --git a/install/langs/qc/img/qc-default-large.jpg b/install-dev/langs/qc/img/qc-default-large.jpg similarity index 100% rename from install/langs/qc/img/qc-default-large.jpg rename to install-dev/langs/qc/img/qc-default-large.jpg diff --git a/install/langs/qc/img/qc-default-large_scene.jpg b/install-dev/langs/qc/img/qc-default-large_scene.jpg similarity index 100% rename from install/langs/qc/img/qc-default-large_scene.jpg rename to install-dev/langs/qc/img/qc-default-large_scene.jpg diff --git a/install/langs/qc/img/qc-default-medium.jpg b/install-dev/langs/qc/img/qc-default-medium.jpg similarity index 100% rename from install/langs/qc/img/qc-default-medium.jpg rename to install-dev/langs/qc/img/qc-default-medium.jpg diff --git a/install/langs/qc/img/qc-default-small.jpg b/install-dev/langs/qc/img/qc-default-small.jpg similarity index 100% rename from install/langs/qc/img/qc-default-small.jpg rename to install-dev/langs/qc/img/qc-default-small.jpg diff --git a/install/langs/qc/img/qc-default-thickbox.jpg b/install-dev/langs/qc/img/qc-default-thickbox.jpg similarity index 100% rename from install/langs/qc/img/qc-default-thickbox.jpg rename to install-dev/langs/qc/img/qc-default-thickbox.jpg diff --git a/install/langs/qc/img/qc-default-thumb_scene.jpg b/install-dev/langs/qc/img/qc-default-thumb_scene.jpg similarity index 100% rename from install/langs/qc/img/qc-default-thumb_scene.jpg rename to install-dev/langs/qc/img/qc-default-thumb_scene.jpg diff --git a/install/langs/qc/img/qc.jpg b/install-dev/langs/qc/img/qc.jpg similarity index 100% rename from install/langs/qc/img/qc.jpg rename to install-dev/langs/qc/img/qc.jpg diff --git a/install/langs/qc/index.php b/install-dev/langs/qc/index.php similarity index 100% rename from install/langs/qc/index.php rename to install-dev/langs/qc/index.php diff --git a/install/langs/qc/install.php b/install-dev/langs/qc/install.php similarity index 100% rename from install/langs/qc/install.php rename to install-dev/langs/qc/install.php diff --git a/install/langs/qc/language.xml b/install-dev/langs/qc/language.xml similarity index 100% rename from install/langs/qc/language.xml rename to install-dev/langs/qc/language.xml diff --git a/install/langs/ro/data/business_source.xml b/install-dev/langs/ro/data/business_source.xml similarity index 100% rename from install/langs/ro/data/business_source.xml rename to install-dev/langs/ro/data/business_source.xml diff --git a/install/langs/ro/data/carrier.xml b/install-dev/langs/ro/data/carrier.xml similarity index 100% rename from install/langs/ro/data/carrier.xml rename to install-dev/langs/ro/data/carrier.xml diff --git a/install/langs/ro/data/category.xml b/install-dev/langs/ro/data/category.xml similarity index 100% rename from install/langs/ro/data/category.xml rename to install-dev/langs/ro/data/category.xml diff --git a/install/langs/ro/data/cms.xml b/install-dev/langs/ro/data/cms.xml similarity index 100% rename from install/langs/ro/data/cms.xml rename to install-dev/langs/ro/data/cms.xml diff --git a/install/langs/ro/data/cms_category.xml b/install-dev/langs/ro/data/cms_category.xml similarity index 100% rename from install/langs/ro/data/cms_category.xml rename to install-dev/langs/ro/data/cms_category.xml diff --git a/install/langs/ro/data/configuration.xml b/install-dev/langs/ro/data/configuration.xml similarity index 100% rename from install/langs/ro/data/configuration.xml rename to install-dev/langs/ro/data/configuration.xml diff --git a/install/langs/ro/data/contact.xml b/install-dev/langs/ro/data/contact.xml similarity index 100% rename from install/langs/ro/data/contact.xml rename to install-dev/langs/ro/data/contact.xml diff --git a/install/langs/ro/data/country.xml b/install-dev/langs/ro/data/country.xml similarity index 100% rename from install/langs/ro/data/country.xml rename to install-dev/langs/ro/data/country.xml diff --git a/install/langs/ro/data/gender.xml b/install-dev/langs/ro/data/gender.xml similarity index 100% rename from install/langs/ro/data/gender.xml rename to install-dev/langs/ro/data/gender.xml diff --git a/install/langs/ro/data/group.xml b/install-dev/langs/ro/data/group.xml similarity index 100% rename from install/langs/ro/data/group.xml rename to install-dev/langs/ro/data/group.xml diff --git a/install/langs/ro/data/index.php b/install-dev/langs/ro/data/index.php similarity index 100% rename from install/langs/ro/data/index.php rename to install-dev/langs/ro/data/index.php diff --git a/install/langs/ro/data/meta.xml b/install-dev/langs/ro/data/meta.xml similarity index 100% rename from install/langs/ro/data/meta.xml rename to install-dev/langs/ro/data/meta.xml diff --git a/install/langs/ro/data/order_return_state.xml b/install-dev/langs/ro/data/order_return_state.xml similarity index 100% rename from install/langs/ro/data/order_return_state.xml rename to install-dev/langs/ro/data/order_return_state.xml diff --git a/install/langs/ro/data/order_state.xml b/install-dev/langs/ro/data/order_state.xml similarity index 100% rename from install/langs/ro/data/order_state.xml rename to install-dev/langs/ro/data/order_state.xml diff --git a/install/langs/ro/data/profile.xml b/install-dev/langs/ro/data/profile.xml similarity index 100% rename from install/langs/ro/data/profile.xml rename to install-dev/langs/ro/data/profile.xml diff --git a/install/langs/ro/data/quick_access.xml b/install-dev/langs/ro/data/quick_access.xml similarity index 100% rename from install/langs/ro/data/quick_access.xml rename to install-dev/langs/ro/data/quick_access.xml diff --git a/install/langs/ro/data/risk.xml b/install-dev/langs/ro/data/risk.xml similarity index 100% rename from install/langs/ro/data/risk.xml rename to install-dev/langs/ro/data/risk.xml diff --git a/install/langs/ro/data/source.xml b/install-dev/langs/ro/data/source.xml similarity index 100% rename from install/langs/ro/data/source.xml rename to install-dev/langs/ro/data/source.xml diff --git a/install/langs/ro/data/stock_mvt_reason.xml b/install-dev/langs/ro/data/stock_mvt_reason.xml similarity index 100% rename from install/langs/ro/data/stock_mvt_reason.xml rename to install-dev/langs/ro/data/stock_mvt_reason.xml diff --git a/install/langs/ro/data/supplier_order_state.xml b/install-dev/langs/ro/data/supplier_order_state.xml similarity index 100% rename from install/langs/ro/data/supplier_order_state.xml rename to install-dev/langs/ro/data/supplier_order_state.xml diff --git a/install/langs/ro/data/supply_order_state.xml b/install-dev/langs/ro/data/supply_order_state.xml similarity index 100% rename from install/langs/ro/data/supply_order_state.xml rename to install-dev/langs/ro/data/supply_order_state.xml diff --git a/install/langs/ro/data/tab.xml b/install-dev/langs/ro/data/tab.xml similarity index 96% rename from install/langs/ro/data/tab.xml rename to install-dev/langs/ro/data/tab.xml index 9bcd1cbcf..5611caf1a 100644 --- a/install/langs/ro/data/tab.xml +++ b/install-dev/langs/ro/data/tab.xml @@ -22,6 +22,7 @@ + @@ -32,10 +33,12 @@ + + diff --git a/install/langs/ro/flag.jpg b/install-dev/langs/ro/flag.jpg similarity index 100% rename from install/langs/ro/flag.jpg rename to install-dev/langs/ro/flag.jpg diff --git a/install/langs/ro/img/index.php b/install-dev/langs/ro/img/index.php similarity index 100% rename from install/langs/ro/img/index.php rename to install-dev/langs/ro/img/index.php diff --git a/install/langs/ro/img/ro-default-category.jpg b/install-dev/langs/ro/img/ro-default-category.jpg similarity index 100% rename from install/langs/ro/img/ro-default-category.jpg rename to install-dev/langs/ro/img/ro-default-category.jpg diff --git a/install/langs/ro/img/ro-default-home.jpg b/install-dev/langs/ro/img/ro-default-home.jpg similarity index 100% rename from install/langs/ro/img/ro-default-home.jpg rename to install-dev/langs/ro/img/ro-default-home.jpg diff --git a/install/langs/ro/img/ro-default-large.jpg b/install-dev/langs/ro/img/ro-default-large.jpg similarity index 100% rename from install/langs/ro/img/ro-default-large.jpg rename to install-dev/langs/ro/img/ro-default-large.jpg diff --git a/install/langs/ro/img/ro-default-large_scene.jpg b/install-dev/langs/ro/img/ro-default-large_scene.jpg similarity index 100% rename from install/langs/ro/img/ro-default-large_scene.jpg rename to install-dev/langs/ro/img/ro-default-large_scene.jpg diff --git a/install/langs/ro/img/ro-default-medium.jpg b/install-dev/langs/ro/img/ro-default-medium.jpg similarity index 100% rename from install/langs/ro/img/ro-default-medium.jpg rename to install-dev/langs/ro/img/ro-default-medium.jpg diff --git a/install/langs/ro/img/ro-default-small.jpg b/install-dev/langs/ro/img/ro-default-small.jpg similarity index 100% rename from install/langs/ro/img/ro-default-small.jpg rename to install-dev/langs/ro/img/ro-default-small.jpg diff --git a/install/langs/ro/img/ro-default-thickbox.jpg b/install-dev/langs/ro/img/ro-default-thickbox.jpg similarity index 100% rename from install/langs/ro/img/ro-default-thickbox.jpg rename to install-dev/langs/ro/img/ro-default-thickbox.jpg diff --git a/install/langs/ro/img/ro-default-thumb_scene.jpg b/install-dev/langs/ro/img/ro-default-thumb_scene.jpg similarity index 100% rename from install/langs/ro/img/ro-default-thumb_scene.jpg rename to install-dev/langs/ro/img/ro-default-thumb_scene.jpg diff --git a/install/langs/ro/img/ro.jpg b/install-dev/langs/ro/img/ro.jpg similarity index 100% rename from install/langs/ro/img/ro.jpg rename to install-dev/langs/ro/img/ro.jpg diff --git a/install/langs/ro/index.php b/install-dev/langs/ro/index.php similarity index 100% rename from install/langs/ro/index.php rename to install-dev/langs/ro/index.php diff --git a/install/langs/ro/install.php b/install-dev/langs/ro/install.php similarity index 100% rename from install/langs/ro/install.php rename to install-dev/langs/ro/install.php diff --git a/install/langs/ro/language.xml b/install-dev/langs/ro/language.xml similarity index 100% rename from install/langs/ro/language.xml rename to install-dev/langs/ro/language.xml diff --git a/install/langs/ru/data/business_source.xml b/install-dev/langs/ru/data/business_source.xml similarity index 100% rename from install/langs/ru/data/business_source.xml rename to install-dev/langs/ru/data/business_source.xml diff --git a/install/langs/ru/data/carrier.xml b/install-dev/langs/ru/data/carrier.xml similarity index 100% rename from install/langs/ru/data/carrier.xml rename to install-dev/langs/ru/data/carrier.xml diff --git a/install/langs/ru/data/category.xml b/install-dev/langs/ru/data/category.xml similarity index 100% rename from install/langs/ru/data/category.xml rename to install-dev/langs/ru/data/category.xml diff --git a/install/langs/ru/data/cms.xml b/install-dev/langs/ru/data/cms.xml similarity index 100% rename from install/langs/ru/data/cms.xml rename to install-dev/langs/ru/data/cms.xml diff --git a/install/langs/ru/data/cms_category.xml b/install-dev/langs/ru/data/cms_category.xml similarity index 100% rename from install/langs/ru/data/cms_category.xml rename to install-dev/langs/ru/data/cms_category.xml diff --git a/install/langs/ru/data/configuration.xml b/install-dev/langs/ru/data/configuration.xml similarity index 100% rename from install/langs/ru/data/configuration.xml rename to install-dev/langs/ru/data/configuration.xml diff --git a/install/langs/ru/data/contact.xml b/install-dev/langs/ru/data/contact.xml similarity index 100% rename from install/langs/ru/data/contact.xml rename to install-dev/langs/ru/data/contact.xml diff --git a/install/langs/ru/data/country.xml b/install-dev/langs/ru/data/country.xml similarity index 100% rename from install/langs/ru/data/country.xml rename to install-dev/langs/ru/data/country.xml diff --git a/install/langs/ru/data/gender.xml b/install-dev/langs/ru/data/gender.xml similarity index 100% rename from install/langs/ru/data/gender.xml rename to install-dev/langs/ru/data/gender.xml diff --git a/install/langs/ru/data/group.xml b/install-dev/langs/ru/data/group.xml similarity index 100% rename from install/langs/ru/data/group.xml rename to install-dev/langs/ru/data/group.xml diff --git a/install/langs/ru/data/index.php b/install-dev/langs/ru/data/index.php similarity index 100% rename from install/langs/ru/data/index.php rename to install-dev/langs/ru/data/index.php diff --git a/install/langs/ru/data/meta.xml b/install-dev/langs/ru/data/meta.xml similarity index 100% rename from install/langs/ru/data/meta.xml rename to install-dev/langs/ru/data/meta.xml diff --git a/install/langs/ru/data/order_return_state.xml b/install-dev/langs/ru/data/order_return_state.xml similarity index 100% rename from install/langs/ru/data/order_return_state.xml rename to install-dev/langs/ru/data/order_return_state.xml diff --git a/install/langs/ru/data/order_state.xml b/install-dev/langs/ru/data/order_state.xml similarity index 100% rename from install/langs/ru/data/order_state.xml rename to install-dev/langs/ru/data/order_state.xml diff --git a/install/langs/ru/data/profile.xml b/install-dev/langs/ru/data/profile.xml similarity index 100% rename from install/langs/ru/data/profile.xml rename to install-dev/langs/ru/data/profile.xml diff --git a/install/langs/ru/data/quick_access.xml b/install-dev/langs/ru/data/quick_access.xml similarity index 100% rename from install/langs/ru/data/quick_access.xml rename to install-dev/langs/ru/data/quick_access.xml diff --git a/install/langs/ru/data/risk.xml b/install-dev/langs/ru/data/risk.xml similarity index 100% rename from install/langs/ru/data/risk.xml rename to install-dev/langs/ru/data/risk.xml diff --git a/install/langs/ru/data/source.xml b/install-dev/langs/ru/data/source.xml similarity index 100% rename from install/langs/ru/data/source.xml rename to install-dev/langs/ru/data/source.xml diff --git a/install/langs/ru/data/stock_mvt_reason.xml b/install-dev/langs/ru/data/stock_mvt_reason.xml similarity index 100% rename from install/langs/ru/data/stock_mvt_reason.xml rename to install-dev/langs/ru/data/stock_mvt_reason.xml diff --git a/install/langs/ru/data/supplier_order_state.xml b/install-dev/langs/ru/data/supplier_order_state.xml similarity index 100% rename from install/langs/ru/data/supplier_order_state.xml rename to install-dev/langs/ru/data/supplier_order_state.xml diff --git a/install/langs/ru/data/supply_order_state.xml b/install-dev/langs/ru/data/supply_order_state.xml similarity index 100% rename from install/langs/ru/data/supply_order_state.xml rename to install-dev/langs/ru/data/supply_order_state.xml diff --git a/install/langs/ru/data/tab.xml b/install-dev/langs/ru/data/tab.xml similarity index 96% rename from install/langs/ru/data/tab.xml rename to install-dev/langs/ru/data/tab.xml index d3cef5002..e2dc04758 100644 --- a/install/langs/ru/data/tab.xml +++ b/install-dev/langs/ru/data/tab.xml @@ -39,6 +39,7 @@ + @@ -71,6 +72,7 @@ + @@ -88,6 +90,7 @@ + diff --git a/install/langs/ru/flag.jpg b/install-dev/langs/ru/flag.jpg similarity index 100% rename from install/langs/ru/flag.jpg rename to install-dev/langs/ru/flag.jpg diff --git a/install/langs/ru/img/flag.jpg b/install-dev/langs/ru/img/flag.jpg similarity index 100% rename from install/langs/ru/img/flag.jpg rename to install-dev/langs/ru/img/flag.jpg diff --git a/install/langs/ru/img/index.php b/install-dev/langs/ru/img/index.php similarity index 100% rename from install/langs/ru/img/index.php rename to install-dev/langs/ru/img/index.php diff --git a/install/langs/ru/img/ru-default-category.jpg b/install-dev/langs/ru/img/ru-default-category.jpg similarity index 100% rename from install/langs/ru/img/ru-default-category.jpg rename to install-dev/langs/ru/img/ru-default-category.jpg diff --git a/install/langs/ru/img/ru-default-home.jpg b/install-dev/langs/ru/img/ru-default-home.jpg similarity index 100% rename from install/langs/ru/img/ru-default-home.jpg rename to install-dev/langs/ru/img/ru-default-home.jpg diff --git a/install/langs/ru/img/ru-default-large.jpg b/install-dev/langs/ru/img/ru-default-large.jpg similarity index 100% rename from install/langs/ru/img/ru-default-large.jpg rename to install-dev/langs/ru/img/ru-default-large.jpg diff --git a/install/langs/ru/img/ru-default-large_scene.jpg b/install-dev/langs/ru/img/ru-default-large_scene.jpg similarity index 100% rename from install/langs/ru/img/ru-default-large_scene.jpg rename to install-dev/langs/ru/img/ru-default-large_scene.jpg diff --git a/install/langs/ru/img/ru-default-medium.jpg b/install-dev/langs/ru/img/ru-default-medium.jpg similarity index 100% rename from install/langs/ru/img/ru-default-medium.jpg rename to install-dev/langs/ru/img/ru-default-medium.jpg diff --git a/install/langs/ru/img/ru-default-small.jpg b/install-dev/langs/ru/img/ru-default-small.jpg similarity index 100% rename from install/langs/ru/img/ru-default-small.jpg rename to install-dev/langs/ru/img/ru-default-small.jpg diff --git a/install/langs/ru/img/ru-default-thickbox.jpg b/install-dev/langs/ru/img/ru-default-thickbox.jpg similarity index 100% rename from install/langs/ru/img/ru-default-thickbox.jpg rename to install-dev/langs/ru/img/ru-default-thickbox.jpg diff --git a/install/langs/ru/img/ru-default-thumb_scene.jpg b/install-dev/langs/ru/img/ru-default-thumb_scene.jpg similarity index 100% rename from install/langs/ru/img/ru-default-thumb_scene.jpg rename to install-dev/langs/ru/img/ru-default-thumb_scene.jpg diff --git a/install/langs/ru/img/ru.jpg b/install-dev/langs/ru/img/ru.jpg similarity index 100% rename from install/langs/ru/img/ru.jpg rename to install-dev/langs/ru/img/ru.jpg diff --git a/install/langs/ru/index.php b/install-dev/langs/ru/index.php similarity index 100% rename from install/langs/ru/index.php rename to install-dev/langs/ru/index.php diff --git a/install/langs/ru/install.php b/install-dev/langs/ru/install.php similarity index 100% rename from install/langs/ru/install.php rename to install-dev/langs/ru/install.php diff --git a/install/langs/ru/language.xml b/install-dev/langs/ru/language.xml similarity index 100% rename from install/langs/ru/language.xml rename to install-dev/langs/ru/language.xml diff --git a/install/langs/si/data/business_source.xml b/install-dev/langs/si/data/business_source.xml similarity index 100% rename from install/langs/si/data/business_source.xml rename to install-dev/langs/si/data/business_source.xml diff --git a/install/langs/si/data/carrier.xml b/install-dev/langs/si/data/carrier.xml similarity index 100% rename from install/langs/si/data/carrier.xml rename to install-dev/langs/si/data/carrier.xml diff --git a/install/langs/si/data/category.xml b/install-dev/langs/si/data/category.xml similarity index 100% rename from install/langs/si/data/category.xml rename to install-dev/langs/si/data/category.xml diff --git a/install/langs/si/data/cms.xml b/install-dev/langs/si/data/cms.xml similarity index 100% rename from install/langs/si/data/cms.xml rename to install-dev/langs/si/data/cms.xml diff --git a/install/langs/si/data/cms_category.xml b/install-dev/langs/si/data/cms_category.xml similarity index 100% rename from install/langs/si/data/cms_category.xml rename to install-dev/langs/si/data/cms_category.xml diff --git a/install/langs/si/data/configuration.xml b/install-dev/langs/si/data/configuration.xml similarity index 100% rename from install/langs/si/data/configuration.xml rename to install-dev/langs/si/data/configuration.xml diff --git a/install/langs/si/data/contact.xml b/install-dev/langs/si/data/contact.xml similarity index 100% rename from install/langs/si/data/contact.xml rename to install-dev/langs/si/data/contact.xml diff --git a/install/langs/si/data/country.xml b/install-dev/langs/si/data/country.xml similarity index 100% rename from install/langs/si/data/country.xml rename to install-dev/langs/si/data/country.xml diff --git a/install/langs/si/data/gender.xml b/install-dev/langs/si/data/gender.xml similarity index 100% rename from install/langs/si/data/gender.xml rename to install-dev/langs/si/data/gender.xml diff --git a/install/langs/si/data/group.xml b/install-dev/langs/si/data/group.xml similarity index 100% rename from install/langs/si/data/group.xml rename to install-dev/langs/si/data/group.xml diff --git a/install/langs/si/data/index.php b/install-dev/langs/si/data/index.php similarity index 100% rename from install/langs/si/data/index.php rename to install-dev/langs/si/data/index.php diff --git a/install/langs/si/data/meta.xml b/install-dev/langs/si/data/meta.xml similarity index 100% rename from install/langs/si/data/meta.xml rename to install-dev/langs/si/data/meta.xml diff --git a/install/langs/si/data/order_return_state.xml b/install-dev/langs/si/data/order_return_state.xml similarity index 100% rename from install/langs/si/data/order_return_state.xml rename to install-dev/langs/si/data/order_return_state.xml diff --git a/install/langs/si/data/order_state.xml b/install-dev/langs/si/data/order_state.xml similarity index 100% rename from install/langs/si/data/order_state.xml rename to install-dev/langs/si/data/order_state.xml diff --git a/install/langs/si/data/profile.xml b/install-dev/langs/si/data/profile.xml similarity index 100% rename from install/langs/si/data/profile.xml rename to install-dev/langs/si/data/profile.xml diff --git a/install/langs/si/data/quick_access.xml b/install-dev/langs/si/data/quick_access.xml similarity index 100% rename from install/langs/si/data/quick_access.xml rename to install-dev/langs/si/data/quick_access.xml diff --git a/install/langs/si/data/risk.xml b/install-dev/langs/si/data/risk.xml similarity index 100% rename from install/langs/si/data/risk.xml rename to install-dev/langs/si/data/risk.xml diff --git a/install/langs/si/data/source.xml b/install-dev/langs/si/data/source.xml similarity index 100% rename from install/langs/si/data/source.xml rename to install-dev/langs/si/data/source.xml diff --git a/install/langs/si/data/stock_mvt_reason.xml b/install-dev/langs/si/data/stock_mvt_reason.xml similarity index 100% rename from install/langs/si/data/stock_mvt_reason.xml rename to install-dev/langs/si/data/stock_mvt_reason.xml diff --git a/install/langs/si/data/supplier_order_state.xml b/install-dev/langs/si/data/supplier_order_state.xml similarity index 100% rename from install/langs/si/data/supplier_order_state.xml rename to install-dev/langs/si/data/supplier_order_state.xml diff --git a/install/langs/si/data/supply_order_state.xml b/install-dev/langs/si/data/supply_order_state.xml similarity index 100% rename from install/langs/si/data/supply_order_state.xml rename to install-dev/langs/si/data/supply_order_state.xml diff --git a/install/langs/si/data/tab.xml b/install-dev/langs/si/data/tab.xml similarity index 96% rename from install/langs/si/data/tab.xml rename to install-dev/langs/si/data/tab.xml index 5e8c489a4..fc2a7877c 100644 --- a/install/langs/si/data/tab.xml +++ b/install-dev/langs/si/data/tab.xml @@ -22,6 +22,7 @@ + @@ -32,10 +33,12 @@ + + diff --git a/install/langs/si/flag.jpg b/install-dev/langs/si/flag.jpg similarity index 100% rename from install/langs/si/flag.jpg rename to install-dev/langs/si/flag.jpg diff --git a/install/langs/si/img/index.php b/install-dev/langs/si/img/index.php similarity index 100% rename from install/langs/si/img/index.php rename to install-dev/langs/si/img/index.php diff --git a/install/langs/si/img/si-default-category.jpg b/install-dev/langs/si/img/si-default-category.jpg similarity index 100% rename from install/langs/si/img/si-default-category.jpg rename to install-dev/langs/si/img/si-default-category.jpg diff --git a/install/langs/si/img/si-default-home.jpg b/install-dev/langs/si/img/si-default-home.jpg similarity index 100% rename from install/langs/si/img/si-default-home.jpg rename to install-dev/langs/si/img/si-default-home.jpg diff --git a/install/langs/si/img/si-default-large.jpg b/install-dev/langs/si/img/si-default-large.jpg similarity index 100% rename from install/langs/si/img/si-default-large.jpg rename to install-dev/langs/si/img/si-default-large.jpg diff --git a/install/langs/si/img/si-default-large_scene.jpg b/install-dev/langs/si/img/si-default-large_scene.jpg similarity index 100% rename from install/langs/si/img/si-default-large_scene.jpg rename to install-dev/langs/si/img/si-default-large_scene.jpg diff --git a/install/langs/si/img/si-default-medium.jpg b/install-dev/langs/si/img/si-default-medium.jpg similarity index 100% rename from install/langs/si/img/si-default-medium.jpg rename to install-dev/langs/si/img/si-default-medium.jpg diff --git a/install/langs/si/img/si-default-small.jpg b/install-dev/langs/si/img/si-default-small.jpg similarity index 100% rename from install/langs/si/img/si-default-small.jpg rename to install-dev/langs/si/img/si-default-small.jpg diff --git a/install/langs/si/img/si-default-thickbox.jpg b/install-dev/langs/si/img/si-default-thickbox.jpg similarity index 100% rename from install/langs/si/img/si-default-thickbox.jpg rename to install-dev/langs/si/img/si-default-thickbox.jpg diff --git a/install/langs/si/img/si-default-thumb_scene.jpg b/install-dev/langs/si/img/si-default-thumb_scene.jpg similarity index 100% rename from install/langs/si/img/si-default-thumb_scene.jpg rename to install-dev/langs/si/img/si-default-thumb_scene.jpg diff --git a/install/langs/si/img/si.jpg b/install-dev/langs/si/img/si.jpg similarity index 100% rename from install/langs/si/img/si.jpg rename to install-dev/langs/si/img/si.jpg diff --git a/install/langs/si/index.php b/install-dev/langs/si/index.php similarity index 100% rename from install/langs/si/index.php rename to install-dev/langs/si/index.php diff --git a/install/langs/si/install.php b/install-dev/langs/si/install.php similarity index 100% rename from install/langs/si/install.php rename to install-dev/langs/si/install.php diff --git a/install/langs/si/language.xml b/install-dev/langs/si/language.xml similarity index 100% rename from install/langs/si/language.xml rename to install-dev/langs/si/language.xml diff --git a/install/langs/sr/data/business_source.xml b/install-dev/langs/sr/data/business_source.xml similarity index 100% rename from install/langs/sr/data/business_source.xml rename to install-dev/langs/sr/data/business_source.xml diff --git a/install/langs/sr/data/carrier.xml b/install-dev/langs/sr/data/carrier.xml similarity index 100% rename from install/langs/sr/data/carrier.xml rename to install-dev/langs/sr/data/carrier.xml diff --git a/install/langs/sr/data/category.xml b/install-dev/langs/sr/data/category.xml similarity index 100% rename from install/langs/sr/data/category.xml rename to install-dev/langs/sr/data/category.xml diff --git a/install/langs/sr/data/cms.xml b/install-dev/langs/sr/data/cms.xml similarity index 100% rename from install/langs/sr/data/cms.xml rename to install-dev/langs/sr/data/cms.xml diff --git a/install/langs/sr/data/cms_category.xml b/install-dev/langs/sr/data/cms_category.xml similarity index 100% rename from install/langs/sr/data/cms_category.xml rename to install-dev/langs/sr/data/cms_category.xml diff --git a/install/langs/sr/data/configuration.xml b/install-dev/langs/sr/data/configuration.xml similarity index 100% rename from install/langs/sr/data/configuration.xml rename to install-dev/langs/sr/data/configuration.xml diff --git a/install/langs/sr/data/contact.xml b/install-dev/langs/sr/data/contact.xml similarity index 100% rename from install/langs/sr/data/contact.xml rename to install-dev/langs/sr/data/contact.xml diff --git a/install/langs/sr/data/country.xml b/install-dev/langs/sr/data/country.xml similarity index 100% rename from install/langs/sr/data/country.xml rename to install-dev/langs/sr/data/country.xml diff --git a/install/langs/sr/data/gender.xml b/install-dev/langs/sr/data/gender.xml similarity index 100% rename from install/langs/sr/data/gender.xml rename to install-dev/langs/sr/data/gender.xml diff --git a/install/langs/sr/data/group.xml b/install-dev/langs/sr/data/group.xml similarity index 100% rename from install/langs/sr/data/group.xml rename to install-dev/langs/sr/data/group.xml diff --git a/install/langs/sr/data/index.php b/install-dev/langs/sr/data/index.php similarity index 100% rename from install/langs/sr/data/index.php rename to install-dev/langs/sr/data/index.php diff --git a/install/langs/sr/data/meta.xml b/install-dev/langs/sr/data/meta.xml similarity index 100% rename from install/langs/sr/data/meta.xml rename to install-dev/langs/sr/data/meta.xml diff --git a/install/langs/sr/data/order_return_state.xml b/install-dev/langs/sr/data/order_return_state.xml similarity index 100% rename from install/langs/sr/data/order_return_state.xml rename to install-dev/langs/sr/data/order_return_state.xml diff --git a/install/langs/sr/data/order_state.xml b/install-dev/langs/sr/data/order_state.xml similarity index 100% rename from install/langs/sr/data/order_state.xml rename to install-dev/langs/sr/data/order_state.xml diff --git a/install/langs/sr/data/profile.xml b/install-dev/langs/sr/data/profile.xml similarity index 100% rename from install/langs/sr/data/profile.xml rename to install-dev/langs/sr/data/profile.xml diff --git a/install/langs/sr/data/quick_access.xml b/install-dev/langs/sr/data/quick_access.xml similarity index 100% rename from install/langs/sr/data/quick_access.xml rename to install-dev/langs/sr/data/quick_access.xml diff --git a/install/langs/sr/data/risk.xml b/install-dev/langs/sr/data/risk.xml similarity index 100% rename from install/langs/sr/data/risk.xml rename to install-dev/langs/sr/data/risk.xml diff --git a/install/langs/sr/data/source.xml b/install-dev/langs/sr/data/source.xml similarity index 100% rename from install/langs/sr/data/source.xml rename to install-dev/langs/sr/data/source.xml diff --git a/install/langs/sr/data/stock_mvt_reason.xml b/install-dev/langs/sr/data/stock_mvt_reason.xml similarity index 100% rename from install/langs/sr/data/stock_mvt_reason.xml rename to install-dev/langs/sr/data/stock_mvt_reason.xml diff --git a/install/langs/sr/data/supplier_order_state.xml b/install-dev/langs/sr/data/supplier_order_state.xml similarity index 100% rename from install/langs/sr/data/supplier_order_state.xml rename to install-dev/langs/sr/data/supplier_order_state.xml diff --git a/install/langs/sr/data/supply_order_state.xml b/install-dev/langs/sr/data/supply_order_state.xml similarity index 100% rename from install/langs/sr/data/supply_order_state.xml rename to install-dev/langs/sr/data/supply_order_state.xml diff --git a/install/langs/sr/data/tab.xml b/install-dev/langs/sr/data/tab.xml similarity index 96% rename from install/langs/sr/data/tab.xml rename to install-dev/langs/sr/data/tab.xml index dd8f4ce9a..b1b4d0305 100644 --- a/install/langs/sr/data/tab.xml +++ b/install-dev/langs/sr/data/tab.xml @@ -22,6 +22,7 @@ + @@ -32,10 +33,12 @@ + + diff --git a/install/langs/sr/flag.jpg b/install-dev/langs/sr/flag.jpg similarity index 100% rename from install/langs/sr/flag.jpg rename to install-dev/langs/sr/flag.jpg diff --git a/install/langs/sr/img/index.php b/install-dev/langs/sr/img/index.php similarity index 100% rename from install/langs/sr/img/index.php rename to install-dev/langs/sr/img/index.php diff --git a/install/langs/sr/img/sr-default-category.jpg b/install-dev/langs/sr/img/sr-default-category.jpg similarity index 100% rename from install/langs/sr/img/sr-default-category.jpg rename to install-dev/langs/sr/img/sr-default-category.jpg diff --git a/install/langs/sr/img/sr-default-home.jpg b/install-dev/langs/sr/img/sr-default-home.jpg similarity index 100% rename from install/langs/sr/img/sr-default-home.jpg rename to install-dev/langs/sr/img/sr-default-home.jpg diff --git a/install/langs/sr/img/sr-default-large.jpg b/install-dev/langs/sr/img/sr-default-large.jpg similarity index 100% rename from install/langs/sr/img/sr-default-large.jpg rename to install-dev/langs/sr/img/sr-default-large.jpg diff --git a/install/langs/sr/img/sr-default-large_scene.jpg b/install-dev/langs/sr/img/sr-default-large_scene.jpg similarity index 100% rename from install/langs/sr/img/sr-default-large_scene.jpg rename to install-dev/langs/sr/img/sr-default-large_scene.jpg diff --git a/install/langs/sr/img/sr-default-medium.jpg b/install-dev/langs/sr/img/sr-default-medium.jpg similarity index 100% rename from install/langs/sr/img/sr-default-medium.jpg rename to install-dev/langs/sr/img/sr-default-medium.jpg diff --git a/install/langs/sr/img/sr-default-small.jpg b/install-dev/langs/sr/img/sr-default-small.jpg similarity index 100% rename from install/langs/sr/img/sr-default-small.jpg rename to install-dev/langs/sr/img/sr-default-small.jpg diff --git a/install/langs/sr/img/sr-default-thickbox.jpg b/install-dev/langs/sr/img/sr-default-thickbox.jpg similarity index 100% rename from install/langs/sr/img/sr-default-thickbox.jpg rename to install-dev/langs/sr/img/sr-default-thickbox.jpg diff --git a/install/langs/sr/img/sr-default-thumb_scene.jpg b/install-dev/langs/sr/img/sr-default-thumb_scene.jpg similarity index 100% rename from install/langs/sr/img/sr-default-thumb_scene.jpg rename to install-dev/langs/sr/img/sr-default-thumb_scene.jpg diff --git a/install/langs/sr/img/sr.jpg b/install-dev/langs/sr/img/sr.jpg similarity index 100% rename from install/langs/sr/img/sr.jpg rename to install-dev/langs/sr/img/sr.jpg diff --git a/install/langs/sr/index.php b/install-dev/langs/sr/index.php similarity index 100% rename from install/langs/sr/index.php rename to install-dev/langs/sr/index.php diff --git a/install/langs/sr/install.php b/install-dev/langs/sr/install.php similarity index 100% rename from install/langs/sr/install.php rename to install-dev/langs/sr/install.php diff --git a/install/langs/sr/language.xml b/install-dev/langs/sr/language.xml similarity index 100% rename from install/langs/sr/language.xml rename to install-dev/langs/sr/language.xml diff --git a/install/langs/sv/data/business_source.xml b/install-dev/langs/sv/data/business_source.xml similarity index 100% rename from install/langs/sv/data/business_source.xml rename to install-dev/langs/sv/data/business_source.xml diff --git a/install/langs/sv/data/carrier.xml b/install-dev/langs/sv/data/carrier.xml similarity index 100% rename from install/langs/sv/data/carrier.xml rename to install-dev/langs/sv/data/carrier.xml diff --git a/install/langs/sv/data/category.xml b/install-dev/langs/sv/data/category.xml similarity index 100% rename from install/langs/sv/data/category.xml rename to install-dev/langs/sv/data/category.xml diff --git a/install/langs/sv/data/cms.xml b/install-dev/langs/sv/data/cms.xml similarity index 100% rename from install/langs/sv/data/cms.xml rename to install-dev/langs/sv/data/cms.xml diff --git a/install/langs/sv/data/cms_category.xml b/install-dev/langs/sv/data/cms_category.xml similarity index 100% rename from install/langs/sv/data/cms_category.xml rename to install-dev/langs/sv/data/cms_category.xml diff --git a/install/langs/sv/data/configuration.xml b/install-dev/langs/sv/data/configuration.xml similarity index 100% rename from install/langs/sv/data/configuration.xml rename to install-dev/langs/sv/data/configuration.xml diff --git a/install/langs/sv/data/contact.xml b/install-dev/langs/sv/data/contact.xml similarity index 100% rename from install/langs/sv/data/contact.xml rename to install-dev/langs/sv/data/contact.xml diff --git a/install/langs/sv/data/country.xml b/install-dev/langs/sv/data/country.xml similarity index 100% rename from install/langs/sv/data/country.xml rename to install-dev/langs/sv/data/country.xml diff --git a/install/langs/sv/data/gender.xml b/install-dev/langs/sv/data/gender.xml similarity index 100% rename from install/langs/sv/data/gender.xml rename to install-dev/langs/sv/data/gender.xml diff --git a/install/langs/sv/data/group.xml b/install-dev/langs/sv/data/group.xml similarity index 100% rename from install/langs/sv/data/group.xml rename to install-dev/langs/sv/data/group.xml diff --git a/install/langs/sv/data/index.php b/install-dev/langs/sv/data/index.php similarity index 100% rename from install/langs/sv/data/index.php rename to install-dev/langs/sv/data/index.php diff --git a/install/langs/sv/data/meta.xml b/install-dev/langs/sv/data/meta.xml similarity index 100% rename from install/langs/sv/data/meta.xml rename to install-dev/langs/sv/data/meta.xml diff --git a/install/langs/sv/data/order_return_state.xml b/install-dev/langs/sv/data/order_return_state.xml similarity index 100% rename from install/langs/sv/data/order_return_state.xml rename to install-dev/langs/sv/data/order_return_state.xml diff --git a/install/langs/sv/data/order_state.xml b/install-dev/langs/sv/data/order_state.xml similarity index 100% rename from install/langs/sv/data/order_state.xml rename to install-dev/langs/sv/data/order_state.xml diff --git a/install/langs/sv/data/profile.xml b/install-dev/langs/sv/data/profile.xml similarity index 100% rename from install/langs/sv/data/profile.xml rename to install-dev/langs/sv/data/profile.xml diff --git a/install/langs/sv/data/quick_access.xml b/install-dev/langs/sv/data/quick_access.xml similarity index 100% rename from install/langs/sv/data/quick_access.xml rename to install-dev/langs/sv/data/quick_access.xml diff --git a/install/langs/sv/data/risk.xml b/install-dev/langs/sv/data/risk.xml similarity index 100% rename from install/langs/sv/data/risk.xml rename to install-dev/langs/sv/data/risk.xml diff --git a/install/langs/sv/data/source.xml b/install-dev/langs/sv/data/source.xml similarity index 100% rename from install/langs/sv/data/source.xml rename to install-dev/langs/sv/data/source.xml diff --git a/install/langs/sv/data/stock_mvt_reason.xml b/install-dev/langs/sv/data/stock_mvt_reason.xml similarity index 100% rename from install/langs/sv/data/stock_mvt_reason.xml rename to install-dev/langs/sv/data/stock_mvt_reason.xml diff --git a/install/langs/sv/data/supplier_order_state.xml b/install-dev/langs/sv/data/supplier_order_state.xml similarity index 100% rename from install/langs/sv/data/supplier_order_state.xml rename to install-dev/langs/sv/data/supplier_order_state.xml diff --git a/install/langs/sv/data/supply_order_state.xml b/install-dev/langs/sv/data/supply_order_state.xml similarity index 100% rename from install/langs/sv/data/supply_order_state.xml rename to install-dev/langs/sv/data/supply_order_state.xml diff --git a/install/langs/sv/data/tab.xml b/install-dev/langs/sv/data/tab.xml similarity index 96% rename from install/langs/sv/data/tab.xml rename to install-dev/langs/sv/data/tab.xml index 9c631deaa..70e8716f0 100644 --- a/install/langs/sv/data/tab.xml +++ b/install-dev/langs/sv/data/tab.xml @@ -22,6 +22,7 @@ + @@ -32,10 +33,12 @@ + + diff --git a/install/langs/sv/flag.jpg b/install-dev/langs/sv/flag.jpg similarity index 100% rename from install/langs/sv/flag.jpg rename to install-dev/langs/sv/flag.jpg diff --git a/install/langs/sv/img/index.php b/install-dev/langs/sv/img/index.php similarity index 100% rename from install/langs/sv/img/index.php rename to install-dev/langs/sv/img/index.php diff --git a/install/langs/sv/img/sv-default-category.jpg b/install-dev/langs/sv/img/sv-default-category.jpg similarity index 100% rename from install/langs/sv/img/sv-default-category.jpg rename to install-dev/langs/sv/img/sv-default-category.jpg diff --git a/install/langs/sv/img/sv-default-home.jpg b/install-dev/langs/sv/img/sv-default-home.jpg similarity index 100% rename from install/langs/sv/img/sv-default-home.jpg rename to install-dev/langs/sv/img/sv-default-home.jpg diff --git a/install/langs/sv/img/sv-default-large.jpg b/install-dev/langs/sv/img/sv-default-large.jpg similarity index 100% rename from install/langs/sv/img/sv-default-large.jpg rename to install-dev/langs/sv/img/sv-default-large.jpg diff --git a/install/langs/sv/img/sv-default-large_scene.jpg b/install-dev/langs/sv/img/sv-default-large_scene.jpg similarity index 100% rename from install/langs/sv/img/sv-default-large_scene.jpg rename to install-dev/langs/sv/img/sv-default-large_scene.jpg diff --git a/install/langs/sv/img/sv-default-medium.jpg b/install-dev/langs/sv/img/sv-default-medium.jpg similarity index 100% rename from install/langs/sv/img/sv-default-medium.jpg rename to install-dev/langs/sv/img/sv-default-medium.jpg diff --git a/install/langs/sv/img/sv-default-small.jpg b/install-dev/langs/sv/img/sv-default-small.jpg similarity index 100% rename from install/langs/sv/img/sv-default-small.jpg rename to install-dev/langs/sv/img/sv-default-small.jpg diff --git a/install/langs/sv/img/sv-default-thickbox.jpg b/install-dev/langs/sv/img/sv-default-thickbox.jpg similarity index 100% rename from install/langs/sv/img/sv-default-thickbox.jpg rename to install-dev/langs/sv/img/sv-default-thickbox.jpg diff --git a/install/langs/sv/img/sv-default-thumb_scene.jpg b/install-dev/langs/sv/img/sv-default-thumb_scene.jpg similarity index 100% rename from install/langs/sv/img/sv-default-thumb_scene.jpg rename to install-dev/langs/sv/img/sv-default-thumb_scene.jpg diff --git a/install/langs/sv/img/sv.jpg b/install-dev/langs/sv/img/sv.jpg similarity index 100% rename from install/langs/sv/img/sv.jpg rename to install-dev/langs/sv/img/sv.jpg diff --git a/install/langs/sv/index.php b/install-dev/langs/sv/index.php similarity index 100% rename from install/langs/sv/index.php rename to install-dev/langs/sv/index.php diff --git a/install/langs/sv/install.php b/install-dev/langs/sv/install.php similarity index 100% rename from install/langs/sv/install.php rename to install-dev/langs/sv/install.php diff --git a/install/langs/sv/language.xml b/install-dev/langs/sv/language.xml similarity index 100% rename from install/langs/sv/language.xml rename to install-dev/langs/sv/language.xml diff --git a/install/langs/tr/flag.jpg b/install-dev/langs/tr/flag.jpg similarity index 100% rename from install/langs/tr/flag.jpg rename to install-dev/langs/tr/flag.jpg diff --git a/install/langs/tr/img/index.php b/install-dev/langs/tr/img/index.php similarity index 100% rename from install/langs/tr/img/index.php rename to install-dev/langs/tr/img/index.php diff --git a/install/langs/tr/img/tr-default-category.jpg b/install-dev/langs/tr/img/tr-default-category.jpg similarity index 100% rename from install/langs/tr/img/tr-default-category.jpg rename to install-dev/langs/tr/img/tr-default-category.jpg diff --git a/install/langs/tr/img/tr-default-home.jpg b/install-dev/langs/tr/img/tr-default-home.jpg similarity index 100% rename from install/langs/tr/img/tr-default-home.jpg rename to install-dev/langs/tr/img/tr-default-home.jpg diff --git a/install/langs/tr/img/tr-default-large.jpg b/install-dev/langs/tr/img/tr-default-large.jpg similarity index 100% rename from install/langs/tr/img/tr-default-large.jpg rename to install-dev/langs/tr/img/tr-default-large.jpg diff --git a/install/langs/tr/img/tr-default-large_scene.jpg b/install-dev/langs/tr/img/tr-default-large_scene.jpg similarity index 100% rename from install/langs/tr/img/tr-default-large_scene.jpg rename to install-dev/langs/tr/img/tr-default-large_scene.jpg diff --git a/install/langs/tr/img/tr-default-medium.jpg b/install-dev/langs/tr/img/tr-default-medium.jpg similarity index 100% rename from install/langs/tr/img/tr-default-medium.jpg rename to install-dev/langs/tr/img/tr-default-medium.jpg diff --git a/install/langs/tr/img/tr-default-small.jpg b/install-dev/langs/tr/img/tr-default-small.jpg similarity index 100% rename from install/langs/tr/img/tr-default-small.jpg rename to install-dev/langs/tr/img/tr-default-small.jpg diff --git a/install/langs/tr/img/tr-default-thickbox.jpg b/install-dev/langs/tr/img/tr-default-thickbox.jpg similarity index 100% rename from install/langs/tr/img/tr-default-thickbox.jpg rename to install-dev/langs/tr/img/tr-default-thickbox.jpg diff --git a/install/langs/tr/img/tr-default-thumb_scene.jpg b/install-dev/langs/tr/img/tr-default-thumb_scene.jpg similarity index 100% rename from install/langs/tr/img/tr-default-thumb_scene.jpg rename to install-dev/langs/tr/img/tr-default-thumb_scene.jpg diff --git a/install/langs/tr/img/tr.jpg b/install-dev/langs/tr/img/tr.jpg similarity index 100% rename from install/langs/tr/img/tr.jpg rename to install-dev/langs/tr/img/tr.jpg diff --git a/install/langs/tr/index.php b/install-dev/langs/tr/index.php similarity index 100% rename from install/langs/tr/index.php rename to install-dev/langs/tr/index.php diff --git a/install/langs/tr/install.php b/install-dev/langs/tr/install.php similarity index 100% rename from install/langs/tr/install.php rename to install-dev/langs/tr/install.php diff --git a/install/langs/tr/language.xml b/install-dev/langs/tr/language.xml similarity index 100% rename from install/langs/tr/language.xml rename to install-dev/langs/tr/language.xml diff --git a/install/langs/tw/data/business_source.xml b/install-dev/langs/tw/data/business_source.xml similarity index 100% rename from install/langs/tw/data/business_source.xml rename to install-dev/langs/tw/data/business_source.xml diff --git a/install/langs/tw/data/carrier.xml b/install-dev/langs/tw/data/carrier.xml similarity index 100% rename from install/langs/tw/data/carrier.xml rename to install-dev/langs/tw/data/carrier.xml diff --git a/install/langs/tw/data/category.xml b/install-dev/langs/tw/data/category.xml similarity index 100% rename from install/langs/tw/data/category.xml rename to install-dev/langs/tw/data/category.xml diff --git a/install/langs/tw/data/cms.xml b/install-dev/langs/tw/data/cms.xml similarity index 100% rename from install/langs/tw/data/cms.xml rename to install-dev/langs/tw/data/cms.xml diff --git a/install/langs/tw/data/cms_category.xml b/install-dev/langs/tw/data/cms_category.xml similarity index 100% rename from install/langs/tw/data/cms_category.xml rename to install-dev/langs/tw/data/cms_category.xml diff --git a/install/langs/tw/data/configuration.xml b/install-dev/langs/tw/data/configuration.xml similarity index 100% rename from install/langs/tw/data/configuration.xml rename to install-dev/langs/tw/data/configuration.xml diff --git a/install/langs/tw/data/contact.xml b/install-dev/langs/tw/data/contact.xml similarity index 100% rename from install/langs/tw/data/contact.xml rename to install-dev/langs/tw/data/contact.xml diff --git a/install/langs/tw/data/country.xml b/install-dev/langs/tw/data/country.xml similarity index 100% rename from install/langs/tw/data/country.xml rename to install-dev/langs/tw/data/country.xml diff --git a/install/langs/tw/data/gender.xml b/install-dev/langs/tw/data/gender.xml similarity index 100% rename from install/langs/tw/data/gender.xml rename to install-dev/langs/tw/data/gender.xml diff --git a/install/langs/tw/data/group.xml b/install-dev/langs/tw/data/group.xml similarity index 100% rename from install/langs/tw/data/group.xml rename to install-dev/langs/tw/data/group.xml diff --git a/install/langs/tw/data/index.php b/install-dev/langs/tw/data/index.php similarity index 100% rename from install/langs/tw/data/index.php rename to install-dev/langs/tw/data/index.php diff --git a/install/langs/tw/data/meta.xml b/install-dev/langs/tw/data/meta.xml similarity index 100% rename from install/langs/tw/data/meta.xml rename to install-dev/langs/tw/data/meta.xml diff --git a/install/langs/tw/data/order_return_state.xml b/install-dev/langs/tw/data/order_return_state.xml similarity index 100% rename from install/langs/tw/data/order_return_state.xml rename to install-dev/langs/tw/data/order_return_state.xml diff --git a/install/langs/tw/data/order_state.xml b/install-dev/langs/tw/data/order_state.xml similarity index 100% rename from install/langs/tw/data/order_state.xml rename to install-dev/langs/tw/data/order_state.xml diff --git a/install/langs/tw/data/profile.xml b/install-dev/langs/tw/data/profile.xml similarity index 100% rename from install/langs/tw/data/profile.xml rename to install-dev/langs/tw/data/profile.xml diff --git a/install/langs/tw/data/quick_access.xml b/install-dev/langs/tw/data/quick_access.xml similarity index 100% rename from install/langs/tw/data/quick_access.xml rename to install-dev/langs/tw/data/quick_access.xml diff --git a/install/langs/tw/data/risk.xml b/install-dev/langs/tw/data/risk.xml similarity index 100% rename from install/langs/tw/data/risk.xml rename to install-dev/langs/tw/data/risk.xml diff --git a/install/langs/tw/data/source.xml b/install-dev/langs/tw/data/source.xml similarity index 100% rename from install/langs/tw/data/source.xml rename to install-dev/langs/tw/data/source.xml diff --git a/install/langs/tw/data/stock_mvt_reason.xml b/install-dev/langs/tw/data/stock_mvt_reason.xml similarity index 100% rename from install/langs/tw/data/stock_mvt_reason.xml rename to install-dev/langs/tw/data/stock_mvt_reason.xml diff --git a/install/langs/tw/data/supplier_order_state.xml b/install-dev/langs/tw/data/supplier_order_state.xml similarity index 100% rename from install/langs/tw/data/supplier_order_state.xml rename to install-dev/langs/tw/data/supplier_order_state.xml diff --git a/install/langs/tw/data/supply_order_state.xml b/install-dev/langs/tw/data/supply_order_state.xml similarity index 100% rename from install/langs/tw/data/supply_order_state.xml rename to install-dev/langs/tw/data/supply_order_state.xml diff --git a/install/langs/tw/data/tab.xml b/install-dev/langs/tw/data/tab.xml similarity index 96% rename from install/langs/tw/data/tab.xml rename to install-dev/langs/tw/data/tab.xml index 6bd9c423e..3284f0d68 100644 --- a/install/langs/tw/data/tab.xml +++ b/install-dev/langs/tw/data/tab.xml @@ -24,6 +24,7 @@ + @@ -34,10 +35,12 @@ + + diff --git a/install/langs/tw/flag.jpg b/install-dev/langs/tw/flag.jpg similarity index 100% rename from install/langs/tw/flag.jpg rename to install-dev/langs/tw/flag.jpg diff --git a/install/langs/tw/img/index.php b/install-dev/langs/tw/img/index.php similarity index 100% rename from install/langs/tw/img/index.php rename to install-dev/langs/tw/img/index.php diff --git a/install/langs/tw/img/tw-default-category.jpg b/install-dev/langs/tw/img/tw-default-category.jpg similarity index 100% rename from install/langs/tw/img/tw-default-category.jpg rename to install-dev/langs/tw/img/tw-default-category.jpg diff --git a/install/langs/tw/img/tw-default-home.jpg b/install-dev/langs/tw/img/tw-default-home.jpg similarity index 100% rename from install/langs/tw/img/tw-default-home.jpg rename to install-dev/langs/tw/img/tw-default-home.jpg diff --git a/install/langs/tw/img/tw-default-large.jpg b/install-dev/langs/tw/img/tw-default-large.jpg similarity index 100% rename from install/langs/tw/img/tw-default-large.jpg rename to install-dev/langs/tw/img/tw-default-large.jpg diff --git a/install/langs/tw/img/tw-default-large_scene.jpg b/install-dev/langs/tw/img/tw-default-large_scene.jpg similarity index 100% rename from install/langs/tw/img/tw-default-large_scene.jpg rename to install-dev/langs/tw/img/tw-default-large_scene.jpg diff --git a/install/langs/tw/img/tw-default-medium.jpg b/install-dev/langs/tw/img/tw-default-medium.jpg similarity index 100% rename from install/langs/tw/img/tw-default-medium.jpg rename to install-dev/langs/tw/img/tw-default-medium.jpg diff --git a/install/langs/tw/img/tw-default-small.jpg b/install-dev/langs/tw/img/tw-default-small.jpg similarity index 100% rename from install/langs/tw/img/tw-default-small.jpg rename to install-dev/langs/tw/img/tw-default-small.jpg diff --git a/install/langs/tw/img/tw-default-thickbox.jpg b/install-dev/langs/tw/img/tw-default-thickbox.jpg similarity index 100% rename from install/langs/tw/img/tw-default-thickbox.jpg rename to install-dev/langs/tw/img/tw-default-thickbox.jpg diff --git a/install/langs/tw/img/tw-default-thumb_scene.jpg b/install-dev/langs/tw/img/tw-default-thumb_scene.jpg similarity index 100% rename from install/langs/tw/img/tw-default-thumb_scene.jpg rename to install-dev/langs/tw/img/tw-default-thumb_scene.jpg diff --git a/install/langs/tw/img/tw.jpg b/install-dev/langs/tw/img/tw.jpg similarity index 100% rename from install/langs/tw/img/tw.jpg rename to install-dev/langs/tw/img/tw.jpg diff --git a/install/langs/tw/index.php b/install-dev/langs/tw/index.php similarity index 100% rename from install/langs/tw/index.php rename to install-dev/langs/tw/index.php diff --git a/install/langs/tw/install.php b/install-dev/langs/tw/install.php similarity index 100% rename from install/langs/tw/install.php rename to install-dev/langs/tw/install.php diff --git a/install/langs/tw/language.xml b/install-dev/langs/tw/language.xml similarity index 100% rename from install/langs/tw/language.xml rename to install-dev/langs/tw/language.xml diff --git a/install/langs/vn/data/business_source.xml b/install-dev/langs/vn/data/business_source.xml similarity index 100% rename from install/langs/vn/data/business_source.xml rename to install-dev/langs/vn/data/business_source.xml diff --git a/install/langs/vn/data/carrier.xml b/install-dev/langs/vn/data/carrier.xml similarity index 100% rename from install/langs/vn/data/carrier.xml rename to install-dev/langs/vn/data/carrier.xml diff --git a/install/langs/vn/data/category.xml b/install-dev/langs/vn/data/category.xml similarity index 100% rename from install/langs/vn/data/category.xml rename to install-dev/langs/vn/data/category.xml diff --git a/install/langs/vn/data/cms.xml b/install-dev/langs/vn/data/cms.xml similarity index 100% rename from install/langs/vn/data/cms.xml rename to install-dev/langs/vn/data/cms.xml diff --git a/install/langs/vn/data/cms_category.xml b/install-dev/langs/vn/data/cms_category.xml similarity index 100% rename from install/langs/vn/data/cms_category.xml rename to install-dev/langs/vn/data/cms_category.xml diff --git a/install/langs/vn/data/configuration.xml b/install-dev/langs/vn/data/configuration.xml similarity index 100% rename from install/langs/vn/data/configuration.xml rename to install-dev/langs/vn/data/configuration.xml diff --git a/install/langs/vn/data/contact.xml b/install-dev/langs/vn/data/contact.xml similarity index 100% rename from install/langs/vn/data/contact.xml rename to install-dev/langs/vn/data/contact.xml diff --git a/install/langs/vn/data/country.xml b/install-dev/langs/vn/data/country.xml similarity index 100% rename from install/langs/vn/data/country.xml rename to install-dev/langs/vn/data/country.xml diff --git a/install/langs/vn/data/gender.xml b/install-dev/langs/vn/data/gender.xml similarity index 100% rename from install/langs/vn/data/gender.xml rename to install-dev/langs/vn/data/gender.xml diff --git a/install/langs/vn/data/group.xml b/install-dev/langs/vn/data/group.xml similarity index 100% rename from install/langs/vn/data/group.xml rename to install-dev/langs/vn/data/group.xml diff --git a/install/langs/vn/data/index.php b/install-dev/langs/vn/data/index.php similarity index 100% rename from install/langs/vn/data/index.php rename to install-dev/langs/vn/data/index.php diff --git a/install/langs/vn/data/meta.xml b/install-dev/langs/vn/data/meta.xml similarity index 100% rename from install/langs/vn/data/meta.xml rename to install-dev/langs/vn/data/meta.xml diff --git a/install/langs/vn/data/order_return_state.xml b/install-dev/langs/vn/data/order_return_state.xml similarity index 100% rename from install/langs/vn/data/order_return_state.xml rename to install-dev/langs/vn/data/order_return_state.xml diff --git a/install/langs/vn/data/order_state.xml b/install-dev/langs/vn/data/order_state.xml similarity index 100% rename from install/langs/vn/data/order_state.xml rename to install-dev/langs/vn/data/order_state.xml diff --git a/install/langs/vn/data/profile.xml b/install-dev/langs/vn/data/profile.xml similarity index 100% rename from install/langs/vn/data/profile.xml rename to install-dev/langs/vn/data/profile.xml diff --git a/install/langs/vn/data/quick_access.xml b/install-dev/langs/vn/data/quick_access.xml similarity index 100% rename from install/langs/vn/data/quick_access.xml rename to install-dev/langs/vn/data/quick_access.xml diff --git a/install/langs/vn/data/risk.xml b/install-dev/langs/vn/data/risk.xml similarity index 100% rename from install/langs/vn/data/risk.xml rename to install-dev/langs/vn/data/risk.xml diff --git a/install/langs/vn/data/source.xml b/install-dev/langs/vn/data/source.xml similarity index 100% rename from install/langs/vn/data/source.xml rename to install-dev/langs/vn/data/source.xml diff --git a/install/langs/vn/data/stock_mvt_reason.xml b/install-dev/langs/vn/data/stock_mvt_reason.xml similarity index 100% rename from install/langs/vn/data/stock_mvt_reason.xml rename to install-dev/langs/vn/data/stock_mvt_reason.xml diff --git a/install/langs/vn/data/supplier_order_state.xml b/install-dev/langs/vn/data/supplier_order_state.xml similarity index 100% rename from install/langs/vn/data/supplier_order_state.xml rename to install-dev/langs/vn/data/supplier_order_state.xml diff --git a/install/langs/vn/data/supply_order_state.xml b/install-dev/langs/vn/data/supply_order_state.xml similarity index 100% rename from install/langs/vn/data/supply_order_state.xml rename to install-dev/langs/vn/data/supply_order_state.xml diff --git a/install/langs/vn/data/tab.xml b/install-dev/langs/vn/data/tab.xml similarity index 96% rename from install/langs/vn/data/tab.xml rename to install-dev/langs/vn/data/tab.xml index 8e7f4cdf2..e9b0b546f 100644 --- a/install/langs/vn/data/tab.xml +++ b/install-dev/langs/vn/data/tab.xml @@ -37,6 +37,7 @@ + @@ -68,6 +69,7 @@ + @@ -86,6 +88,7 @@ + diff --git a/install/langs/vn/flag.jpg b/install-dev/langs/vn/flag.jpg similarity index 100% rename from install/langs/vn/flag.jpg rename to install-dev/langs/vn/flag.jpg diff --git a/install/langs/vn/img/index.php b/install-dev/langs/vn/img/index.php similarity index 100% rename from install/langs/vn/img/index.php rename to install-dev/langs/vn/img/index.php diff --git a/install/langs/vn/img/vn-default-category.jpg b/install-dev/langs/vn/img/vn-default-category.jpg similarity index 100% rename from install/langs/vn/img/vn-default-category.jpg rename to install-dev/langs/vn/img/vn-default-category.jpg diff --git a/install/langs/vn/img/vn-default-home.jpg b/install-dev/langs/vn/img/vn-default-home.jpg similarity index 100% rename from install/langs/vn/img/vn-default-home.jpg rename to install-dev/langs/vn/img/vn-default-home.jpg diff --git a/install/langs/vn/img/vn-default-large.jpg b/install-dev/langs/vn/img/vn-default-large.jpg similarity index 100% rename from install/langs/vn/img/vn-default-large.jpg rename to install-dev/langs/vn/img/vn-default-large.jpg diff --git a/install/langs/vn/img/vn-default-large_scene.jpg b/install-dev/langs/vn/img/vn-default-large_scene.jpg similarity index 100% rename from install/langs/vn/img/vn-default-large_scene.jpg rename to install-dev/langs/vn/img/vn-default-large_scene.jpg diff --git a/install/langs/vn/img/vn-default-medium.jpg b/install-dev/langs/vn/img/vn-default-medium.jpg similarity index 100% rename from install/langs/vn/img/vn-default-medium.jpg rename to install-dev/langs/vn/img/vn-default-medium.jpg diff --git a/install/langs/vn/img/vn-default-small.jpg b/install-dev/langs/vn/img/vn-default-small.jpg similarity index 100% rename from install/langs/vn/img/vn-default-small.jpg rename to install-dev/langs/vn/img/vn-default-small.jpg diff --git a/install/langs/vn/img/vn-default-thickbox.jpg b/install-dev/langs/vn/img/vn-default-thickbox.jpg similarity index 100% rename from install/langs/vn/img/vn-default-thickbox.jpg rename to install-dev/langs/vn/img/vn-default-thickbox.jpg diff --git a/install/langs/vn/img/vn-default-thumb_scene.jpg b/install-dev/langs/vn/img/vn-default-thumb_scene.jpg similarity index 100% rename from install/langs/vn/img/vn-default-thumb_scene.jpg rename to install-dev/langs/vn/img/vn-default-thumb_scene.jpg diff --git a/install/langs/vn/img/vn.jpg b/install-dev/langs/vn/img/vn.jpg similarity index 100% rename from install/langs/vn/img/vn.jpg rename to install-dev/langs/vn/img/vn.jpg diff --git a/install/langs/vn/index.php b/install-dev/langs/vn/index.php similarity index 100% rename from install/langs/vn/index.php rename to install-dev/langs/vn/index.php diff --git a/install/langs/vn/install.php b/install-dev/langs/vn/install.php similarity index 100% rename from install/langs/vn/install.php rename to install-dev/langs/vn/install.php diff --git a/install/langs/vn/language.xml b/install-dev/langs/vn/language.xml similarity index 100% rename from install/langs/vn/language.xml rename to install-dev/langs/vn/language.xml diff --git a/install/langs/zh/data/business_source.xml b/install-dev/langs/zh/data/business_source.xml similarity index 100% rename from install/langs/zh/data/business_source.xml rename to install-dev/langs/zh/data/business_source.xml diff --git a/install/langs/zh/data/carrier.xml b/install-dev/langs/zh/data/carrier.xml similarity index 100% rename from install/langs/zh/data/carrier.xml rename to install-dev/langs/zh/data/carrier.xml diff --git a/install/langs/zh/data/category.xml b/install-dev/langs/zh/data/category.xml similarity index 100% rename from install/langs/zh/data/category.xml rename to install-dev/langs/zh/data/category.xml diff --git a/install/langs/zh/data/cms.xml b/install-dev/langs/zh/data/cms.xml similarity index 100% rename from install/langs/zh/data/cms.xml rename to install-dev/langs/zh/data/cms.xml diff --git a/install/langs/zh/data/cms_category.xml b/install-dev/langs/zh/data/cms_category.xml similarity index 100% rename from install/langs/zh/data/cms_category.xml rename to install-dev/langs/zh/data/cms_category.xml diff --git a/install/langs/zh/data/configuration.xml b/install-dev/langs/zh/data/configuration.xml similarity index 100% rename from install/langs/zh/data/configuration.xml rename to install-dev/langs/zh/data/configuration.xml diff --git a/install/langs/zh/data/contact.xml b/install-dev/langs/zh/data/contact.xml similarity index 100% rename from install/langs/zh/data/contact.xml rename to install-dev/langs/zh/data/contact.xml diff --git a/install/langs/zh/data/country.xml b/install-dev/langs/zh/data/country.xml similarity index 100% rename from install/langs/zh/data/country.xml rename to install-dev/langs/zh/data/country.xml diff --git a/install/langs/zh/data/gender.xml b/install-dev/langs/zh/data/gender.xml similarity index 100% rename from install/langs/zh/data/gender.xml rename to install-dev/langs/zh/data/gender.xml diff --git a/install/langs/zh/data/group.xml b/install-dev/langs/zh/data/group.xml similarity index 100% rename from install/langs/zh/data/group.xml rename to install-dev/langs/zh/data/group.xml diff --git a/install/langs/zh/data/index.php b/install-dev/langs/zh/data/index.php similarity index 100% rename from install/langs/zh/data/index.php rename to install-dev/langs/zh/data/index.php diff --git a/install/langs/zh/data/meta.xml b/install-dev/langs/zh/data/meta.xml similarity index 100% rename from install/langs/zh/data/meta.xml rename to install-dev/langs/zh/data/meta.xml diff --git a/install/langs/zh/data/order_return_state.xml b/install-dev/langs/zh/data/order_return_state.xml similarity index 100% rename from install/langs/zh/data/order_return_state.xml rename to install-dev/langs/zh/data/order_return_state.xml diff --git a/install/langs/zh/data/order_state.xml b/install-dev/langs/zh/data/order_state.xml similarity index 100% rename from install/langs/zh/data/order_state.xml rename to install-dev/langs/zh/data/order_state.xml diff --git a/install/langs/zh/data/profile.xml b/install-dev/langs/zh/data/profile.xml similarity index 100% rename from install/langs/zh/data/profile.xml rename to install-dev/langs/zh/data/profile.xml diff --git a/install/langs/zh/data/quick_access.xml b/install-dev/langs/zh/data/quick_access.xml similarity index 100% rename from install/langs/zh/data/quick_access.xml rename to install-dev/langs/zh/data/quick_access.xml diff --git a/install/langs/zh/data/risk.xml b/install-dev/langs/zh/data/risk.xml similarity index 100% rename from install/langs/zh/data/risk.xml rename to install-dev/langs/zh/data/risk.xml diff --git a/install/langs/zh/data/source.xml b/install-dev/langs/zh/data/source.xml similarity index 100% rename from install/langs/zh/data/source.xml rename to install-dev/langs/zh/data/source.xml diff --git a/install/langs/zh/data/stock_mvt_reason.xml b/install-dev/langs/zh/data/stock_mvt_reason.xml similarity index 100% rename from install/langs/zh/data/stock_mvt_reason.xml rename to install-dev/langs/zh/data/stock_mvt_reason.xml diff --git a/install/langs/zh/data/supplier_order_state.xml b/install-dev/langs/zh/data/supplier_order_state.xml similarity index 100% rename from install/langs/zh/data/supplier_order_state.xml rename to install-dev/langs/zh/data/supplier_order_state.xml diff --git a/install/langs/zh/data/supply_order_state.xml b/install-dev/langs/zh/data/supply_order_state.xml similarity index 100% rename from install/langs/zh/data/supply_order_state.xml rename to install-dev/langs/zh/data/supply_order_state.xml diff --git a/install/langs/zh/data/tab.xml b/install-dev/langs/zh/data/tab.xml similarity index 96% rename from install/langs/zh/data/tab.xml rename to install-dev/langs/zh/data/tab.xml index 68906c9e1..b39721021 100644 --- a/install/langs/zh/data/tab.xml +++ b/install-dev/langs/zh/data/tab.xml @@ -22,6 +22,7 @@ + @@ -32,10 +33,12 @@ + + diff --git a/install/langs/zh/flag.jpg b/install-dev/langs/zh/flag.jpg similarity index 100% rename from install/langs/zh/flag.jpg rename to install-dev/langs/zh/flag.jpg diff --git a/install/langs/zh/img/index.php b/install-dev/langs/zh/img/index.php similarity index 100% rename from install/langs/zh/img/index.php rename to install-dev/langs/zh/img/index.php diff --git a/install/langs/zh/img/zh-default-category.jpg b/install-dev/langs/zh/img/zh-default-category.jpg similarity index 100% rename from install/langs/zh/img/zh-default-category.jpg rename to install-dev/langs/zh/img/zh-default-category.jpg diff --git a/install/langs/zh/img/zh-default-home.jpg b/install-dev/langs/zh/img/zh-default-home.jpg similarity index 100% rename from install/langs/zh/img/zh-default-home.jpg rename to install-dev/langs/zh/img/zh-default-home.jpg diff --git a/install/langs/zh/img/zh-default-large.jpg b/install-dev/langs/zh/img/zh-default-large.jpg similarity index 100% rename from install/langs/zh/img/zh-default-large.jpg rename to install-dev/langs/zh/img/zh-default-large.jpg diff --git a/install/langs/zh/img/zh-default-large_scene.jpg b/install-dev/langs/zh/img/zh-default-large_scene.jpg similarity index 100% rename from install/langs/zh/img/zh-default-large_scene.jpg rename to install-dev/langs/zh/img/zh-default-large_scene.jpg diff --git a/install/langs/zh/img/zh-default-medium.jpg b/install-dev/langs/zh/img/zh-default-medium.jpg similarity index 100% rename from install/langs/zh/img/zh-default-medium.jpg rename to install-dev/langs/zh/img/zh-default-medium.jpg diff --git a/install/langs/zh/img/zh-default-small.jpg b/install-dev/langs/zh/img/zh-default-small.jpg similarity index 100% rename from install/langs/zh/img/zh-default-small.jpg rename to install-dev/langs/zh/img/zh-default-small.jpg diff --git a/install/langs/zh/img/zh-default-thickbox.jpg b/install-dev/langs/zh/img/zh-default-thickbox.jpg similarity index 100% rename from install/langs/zh/img/zh-default-thickbox.jpg rename to install-dev/langs/zh/img/zh-default-thickbox.jpg diff --git a/install/langs/zh/img/zh-default-thumb_scene.jpg b/install-dev/langs/zh/img/zh-default-thumb_scene.jpg similarity index 100% rename from install/langs/zh/img/zh-default-thumb_scene.jpg rename to install-dev/langs/zh/img/zh-default-thumb_scene.jpg diff --git a/install/langs/zh/img/zh.jpg b/install-dev/langs/zh/img/zh.jpg similarity index 100% rename from install/langs/zh/img/zh.jpg rename to install-dev/langs/zh/img/zh.jpg diff --git a/install/langs/zh/index.php b/install-dev/langs/zh/index.php similarity index 100% rename from install/langs/zh/index.php rename to install-dev/langs/zh/index.php diff --git a/install/langs/zh/install.php b/install-dev/langs/zh/install.php similarity index 100% rename from install/langs/zh/install.php rename to install-dev/langs/zh/install.php diff --git a/install/langs/zh/language.xml b/install-dev/langs/zh/language.xml similarity index 100% rename from install/langs/zh/language.xml rename to install-dev/langs/zh/language.xml diff --git a/install/models/database.php b/install-dev/models/database.php similarity index 100% rename from install/models/database.php rename to install-dev/models/database.php diff --git a/install/models/index.php b/install-dev/models/index.php similarity index 100% rename from install/models/index.php rename to install-dev/models/index.php diff --git a/install/models/install.php b/install-dev/models/install.php similarity index 100% rename from install/models/install.php rename to install-dev/models/install.php diff --git a/install/models/system.php b/install-dev/models/system.php similarity index 100% rename from install/models/system.php rename to install-dev/models/system.php diff --git a/install/sandbox/.htaccess b/install-dev/sandbox/.htaccess similarity index 100% rename from install/sandbox/.htaccess rename to install-dev/sandbox/.htaccess diff --git a/install/sandbox/index.php b/install-dev/sandbox/index.php similarity index 100% rename from install/sandbox/index.php rename to install-dev/sandbox/index.php diff --git a/install/sandbox/test.php b/install-dev/sandbox/test.php similarity index 100% rename from install/sandbox/test.php rename to install-dev/sandbox/test.php diff --git a/install/theme/img/01-gd100.png b/install-dev/theme/img/01-gd100.png similarity index 100% rename from install/theme/img/01-gd100.png rename to install-dev/theme/img/01-gd100.png diff --git a/install/theme/img/01-pt100.png b/install-dev/theme/img/01-pt100.png similarity index 100% rename from install/theme/img/01-pt100.png rename to install-dev/theme/img/01-pt100.png diff --git a/install/theme/img/01-pt70.png b/install-dev/theme/img/01-pt70.png similarity index 100% rename from install/theme/img/01-pt70.png rename to install-dev/theme/img/01-pt70.png diff --git a/install/theme/img/02-gd100.png b/install-dev/theme/img/02-gd100.png similarity index 100% rename from install/theme/img/02-gd100.png rename to install-dev/theme/img/02-gd100.png diff --git a/install/theme/img/02-pt100.png b/install-dev/theme/img/02-pt100.png similarity index 100% rename from install/theme/img/02-pt100.png rename to install-dev/theme/img/02-pt100.png diff --git a/install/theme/img/02-pt70.png b/install-dev/theme/img/02-pt70.png similarity index 100% rename from install/theme/img/02-pt70.png rename to install-dev/theme/img/02-pt70.png diff --git a/install/theme/img/03-gd100.png b/install-dev/theme/img/03-gd100.png similarity index 100% rename from install/theme/img/03-gd100.png rename to install-dev/theme/img/03-gd100.png diff --git a/install/theme/img/03-pt100.png b/install-dev/theme/img/03-pt100.png similarity index 100% rename from install/theme/img/03-pt100.png rename to install-dev/theme/img/03-pt100.png diff --git a/install/theme/img/03-pt70.png b/install-dev/theme/img/03-pt70.png similarity index 100% rename from install/theme/img/03-pt70.png rename to install-dev/theme/img/03-pt70.png diff --git a/install/theme/img/04-gd100.png b/install-dev/theme/img/04-gd100.png similarity index 100% rename from install/theme/img/04-gd100.png rename to install-dev/theme/img/04-gd100.png diff --git a/install/theme/img/04-pt100.png b/install-dev/theme/img/04-pt100.png similarity index 100% rename from install/theme/img/04-pt100.png rename to install-dev/theme/img/04-pt100.png diff --git a/install/theme/img/04-pt70.png b/install-dev/theme/img/04-pt70.png similarity index 100% rename from install/theme/img/04-pt70.png rename to install-dev/theme/img/04-pt70.png diff --git a/install/theme/img/05-gd100.png b/install-dev/theme/img/05-gd100.png similarity index 100% rename from install/theme/img/05-gd100.png rename to install-dev/theme/img/05-gd100.png diff --git a/install/theme/img/05-pt100.png b/install-dev/theme/img/05-pt100.png similarity index 100% rename from install/theme/img/05-pt100.png rename to install-dev/theme/img/05-pt100.png diff --git a/install/theme/img/05-pt70.png b/install-dev/theme/img/05-pt70.png similarity index 100% rename from install/theme/img/05-pt70.png rename to install-dev/theme/img/05-pt70.png diff --git a/install/theme/img/ajax-loader-small.gif b/install-dev/theme/img/ajax-loader-small.gif similarity index 100% rename from install/theme/img/ajax-loader-small.gif rename to install-dev/theme/img/ajax-loader-small.gif diff --git a/install/theme/img/ajax-loader.gif b/install-dev/theme/img/ajax-loader.gif similarity index 100% rename from install/theme/img/ajax-loader.gif rename to install-dev/theme/img/ajax-loader.gif diff --git a/install/theme/img/bad.gif b/install-dev/theme/img/bad.gif similarity index 100% rename from install/theme/img/bad.gif rename to install-dev/theme/img/bad.gif diff --git a/install/theme/img/bg-body.png b/install-dev/theme/img/bg-body.png similarity index 100% rename from install/theme/img/bg-body.png rename to install-dev/theme/img/bg-body.png diff --git a/install/theme/img/bg-contentTitle.png b/install-dev/theme/img/bg-contentTitle.png similarity index 100% rename from install/theme/img/bg-contentTitle.png rename to install-dev/theme/img/bg-contentTitle.png diff --git a/install/theme/img/bg-ctnr.png b/install-dev/theme/img/bg-ctnr.png similarity index 100% rename from install/theme/img/bg-ctnr.png rename to install-dev/theme/img/bg-ctnr.png diff --git a/install/theme/img/bg-input-text.png b/install-dev/theme/img/bg-input-text.png similarity index 100% rename from install/theme/img/bg-input-text.png rename to install-dev/theme/img/bg-input-text.png diff --git a/install/theme/img/bg-li-headerLinks.png b/install-dev/theme/img/bg-li-headerLinks.png similarity index 100% rename from install/theme/img/bg-li-headerLinks.png rename to install-dev/theme/img/bg-li-headerLinks.png diff --git a/install/theme/img/bg-li-tabs-finished.png b/install-dev/theme/img/bg-li-tabs-finished.png similarity index 100% rename from install/theme/img/bg-li-tabs-finished.png rename to install-dev/theme/img/bg-li-tabs-finished.png diff --git a/install/theme/img/bg-li-tabs-rtl.png b/install-dev/theme/img/bg-li-tabs-rtl.png similarity index 100% rename from install/theme/img/bg-li-tabs-rtl.png rename to install-dev/theme/img/bg-li-tabs-rtl.png diff --git a/install/theme/img/bg-li-tabs.png b/install-dev/theme/img/bg-li-tabs.png similarity index 100% rename from install/theme/img/bg-li-tabs.png rename to install-dev/theme/img/bg-li-tabs.png diff --git a/install/theme/img/bg-phone_block.png b/install-dev/theme/img/bg-phone_block.png similarity index 100% rename from install/theme/img/bg-phone_block.png rename to install-dev/theme/img/bg-phone_block.png diff --git a/install/theme/img/bg-tab.png b/install-dev/theme/img/bg-tab.png similarity index 100% rename from install/theme/img/bg-tab.png rename to install-dev/theme/img/bg-tab.png diff --git a/install/theme/img/bg_blockInfoEnd.png b/install-dev/theme/img/bg_blockInfoEnd.png similarity index 100% rename from install/theme/img/bg_blockInfoEnd.png rename to install-dev/theme/img/bg_blockInfoEnd.png diff --git a/install/theme/img/bg_bt_blockInfoEnd.png b/install-dev/theme/img/bg_bt_blockInfoEnd.png similarity index 100% rename from install/theme/img/bg_bt_blockInfoEnd.png rename to install-dev/theme/img/bg_bt_blockInfoEnd.png diff --git a/install/theme/img/bg_field.png b/install-dev/theme/img/bg_field.png similarity index 100% rename from install/theme/img/bg_field.png rename to install-dev/theme/img/bg_field.png diff --git a/install/theme/img/bg_help.png b/install-dev/theme/img/bg_help.png similarity index 100% rename from install/theme/img/bg_help.png rename to install-dev/theme/img/bg_help.png diff --git a/install/theme/img/bg_input_button.png b/install-dev/theme/img/bg_input_button.png similarity index 100% rename from install/theme/img/bg_input_button.png rename to install-dev/theme/img/bg_input_button.png diff --git a/install/theme/img/bg_li_stepList.png b/install-dev/theme/img/bg_li_stepList.png similarity index 100% rename from install/theme/img/bg_li_stepList.png rename to install-dev/theme/img/bg_li_stepList.png diff --git a/install/theme/img/bg_li_title.png b/install-dev/theme/img/bg_li_title.png similarity index 100% rename from install/theme/img/bg_li_title.png rename to install-dev/theme/img/bg_li_title.png diff --git a/install/theme/img/bg_loaderSpace.png b/install-dev/theme/img/bg_loaderSpace.png similarity index 100% rename from install/theme/img/bg_loaderSpace.png rename to install-dev/theme/img/bg_loaderSpace.png diff --git a/install/theme/img/bg_moduleTable_th.png b/install-dev/theme/img/bg_moduleTable_th.png similarity index 100% rename from install/theme/img/bg_moduleTable_th.png rename to install-dev/theme/img/bg_moduleTable_th.png diff --git a/install/theme/img/boutonpt-disabled.png b/install-dev/theme/img/boutonpt-disabled.png similarity index 100% rename from install/theme/img/boutonpt-disabled.png rename to install-dev/theme/img/boutonpt-disabled.png diff --git a/install/theme/img/boutonpt-on.png b/install-dev/theme/img/boutonpt-on.png similarity index 100% rename from install/theme/img/boutonpt-on.png rename to install-dev/theme/img/boutonpt-on.png diff --git a/install/theme/img/boutonpt-over.png b/install-dev/theme/img/boutonpt-over.png similarity index 100% rename from install/theme/img/boutonpt-over.png rename to install-dev/theme/img/boutonpt-over.png diff --git a/install/theme/img/bt - Copie.png b/install-dev/theme/img/bt - Copie.png similarity index 100% rename from install/theme/img/bt - Copie.png rename to install-dev/theme/img/bt - Copie.png diff --git a/install/theme/img/bt-dsbl - Copie.png b/install-dev/theme/img/bt-dsbl - Copie.png similarity index 100% rename from install/theme/img/bt-dsbl - Copie.png rename to install-dev/theme/img/bt-dsbl - Copie.png diff --git a/install/theme/img/bt-dsbl.png b/install-dev/theme/img/bt-dsbl.png similarity index 100% rename from install/theme/img/bt-dsbl.png rename to install-dev/theme/img/bt-dsbl.png diff --git a/install/theme/img/bt-hover.png b/install-dev/theme/img/bt-hover.png similarity index 100% rename from install/theme/img/bt-hover.png rename to install-dev/theme/img/bt-hover.png diff --git a/install/theme/img/bt.png b/install-dev/theme/img/bt.png similarity index 100% rename from install/theme/img/bt.png rename to install-dev/theme/img/bt.png diff --git a/install/theme/img/bt_off.png b/install-dev/theme/img/bt_off.png similarity index 100% rename from install/theme/img/bt_off.png rename to install-dev/theme/img/bt_off.png diff --git a/install/theme/img/bt_off_hover.png b/install-dev/theme/img/bt_off_hover.png similarity index 100% rename from install/theme/img/bt_off_hover.png rename to install-dev/theme/img/bt_off_hover.png diff --git a/install/theme/img/btn-installeur.png b/install-dev/theme/img/btn-installeur.png similarity index 100% rename from install/theme/img/btn-installeur.png rename to install-dev/theme/img/btn-installeur.png diff --git a/install/theme/img/bullet.png b/install-dev/theme/img/bullet.png similarity index 100% rename from install/theme/img/bullet.png rename to install-dev/theme/img/bullet.png diff --git a/install/theme/img/chosen-sprite.png b/install-dev/theme/img/chosen-sprite.png similarity index 100% rename from install/theme/img/chosen-sprite.png rename to install-dev/theme/img/chosen-sprite.png diff --git a/install/theme/img/chosen-sprite@2x.png b/install-dev/theme/img/chosen-sprite@2x.png similarity index 100% rename from install/theme/img/chosen-sprite@2x.png rename to install-dev/theme/img/chosen-sprite@2x.png diff --git a/install/theme/img/favicon.ico b/install-dev/theme/img/favicon.ico similarity index 100% rename from install/theme/img/favicon.ico rename to install-dev/theme/img/favicon.ico diff --git a/install/theme/img/help.png b/install-dev/theme/img/help.png similarity index 100% rename from install/theme/img/help.png rename to install-dev/theme/img/help.png diff --git a/install/theme/img/ico_help.gif b/install-dev/theme/img/ico_help.gif similarity index 100% rename from install/theme/img/ico_help.gif rename to install-dev/theme/img/ico_help.gif diff --git a/install/theme/img/icon-bulb.png b/install-dev/theme/img/icon-bulb.png similarity index 100% rename from install/theme/img/icon-bulb.png rename to install-dev/theme/img/icon-bulb.png diff --git a/install/theme/img/icon-installation-guide.png b/install-dev/theme/img/icon-installation-guide.png similarity index 100% rename from install/theme/img/icon-installation-guide.png rename to install-dev/theme/img/icon-installation-guide.png diff --git a/install/theme/img/icon-services.png b/install-dev/theme/img/icon-services.png similarity index 100% rename from install/theme/img/icon-services.png rename to install-dev/theme/img/icon-services.png diff --git a/install/theme/img/icon-tutorials.png b/install-dev/theme/img/icon-tutorials.png similarity index 100% rename from install/theme/img/icon-tutorials.png rename to install-dev/theme/img/icon-tutorials.png diff --git a/install/theme/img/index.php b/install-dev/theme/img/index.php similarity index 100% rename from install/theme/img/index.php rename to install-dev/theme/img/index.php diff --git a/install/theme/img/logo.png b/install-dev/theme/img/logo.png similarity index 100% rename from install/theme/img/logo.png rename to install-dev/theme/img/logo.png diff --git a/install/theme/img/noflag.jpg b/install-dev/theme/img/noflag.jpg similarity index 100% rename from install/theme/img/noflag.jpg rename to install-dev/theme/img/noflag.jpg diff --git a/install/theme/img/ok.gif b/install-dev/theme/img/ok.gif similarity index 100% rename from install/theme/img/ok.gif rename to install-dev/theme/img/ok.gif diff --git a/install/theme/img/ombrage-bas.png b/install-dev/theme/img/ombrage-bas.png similarity index 100% rename from install/theme/img/ombrage-bas.png rename to install-dev/theme/img/ombrage-bas.png diff --git a/install/theme/img/ombrage-droit.png b/install-dev/theme/img/ombrage-droit.png similarity index 100% rename from install/theme/img/ombrage-droit.png rename to install-dev/theme/img/ombrage-droit.png diff --git a/install/theme/img/phone.png b/install-dev/theme/img/phone.png similarity index 100% rename from install/theme/img/phone.png rename to install-dev/theme/img/phone.png diff --git a/install/theme/img/pict_error.png b/install-dev/theme/img/pict_error.png similarity index 100% rename from install/theme/img/pict_error.png rename to install-dev/theme/img/pict_error.png diff --git a/install/theme/img/pict_h3_infos.png b/install-dev/theme/img/pict_h3_infos.png similarity index 100% rename from install/theme/img/pict_h3_infos.png rename to install-dev/theme/img/pict_h3_infos.png diff --git a/install/theme/img/pict_info.png b/install-dev/theme/img/pict_info.png similarity index 100% rename from install/theme/img/pict_info.png rename to install-dev/theme/img/pict_info.png diff --git a/install/theme/img/print.png b/install-dev/theme/img/print.png similarity index 100% rename from install/theme/img/print.png rename to install-dev/theme/img/print.png diff --git a/install/theme/img/puce.gif b/install-dev/theme/img/puce.gif similarity index 100% rename from install/theme/img/puce.gif rename to install-dev/theme/img/puce.gif diff --git a/install/theme/img/shadow-left.png b/install-dev/theme/img/shadow-left.png similarity index 100% rename from install/theme/img/shadow-left.png rename to install-dev/theme/img/shadow-left.png diff --git a/install/theme/img/suggested-modules.png b/install-dev/theme/img/suggested-modules.png similarity index 100% rename from install/theme/img/suggested-modules.png rename to install-dev/theme/img/suggested-modules.png diff --git a/install/theme/img/suggested-themes.png b/install-dev/theme/img/suggested-themes.png similarity index 100% rename from install/theme/img/suggested-themes.png rename to install-dev/theme/img/suggested-themes.png diff --git a/install/theme/img/visu_boBlock.png b/install-dev/theme/img/visu_boBlock.png similarity index 100% rename from install/theme/img/visu_boBlock.png rename to install-dev/theme/img/visu_boBlock.png diff --git a/install/theme/img/visu_foBlock.png b/install-dev/theme/img/visu_foBlock.png similarity index 100% rename from install/theme/img/visu_foBlock.png rename to install-dev/theme/img/visu_foBlock.png diff --git a/install/theme/index.php b/install-dev/theme/index.php similarity index 100% rename from install/theme/index.php rename to install-dev/theme/index.php diff --git a/install/theme/js/configure.js b/install-dev/theme/js/configure.js similarity index 100% rename from install/theme/js/configure.js rename to install-dev/theme/js/configure.js diff --git a/install/theme/js/database.js b/install-dev/theme/js/database.js similarity index 100% rename from install/theme/js/database.js rename to install-dev/theme/js/database.js diff --git a/install/theme/js/index.php b/install-dev/theme/js/index.php similarity index 100% rename from install/theme/js/index.php rename to install-dev/theme/js/index.php diff --git a/install/theme/js/install.js b/install-dev/theme/js/install.js similarity index 90% rename from install/theme/js/install.js rename to install-dev/theme/js/install.js index 36432cdd8..732e9ace0 100644 --- a/install/theme/js/install.js +++ b/install-dev/theme/js/install.js @@ -72,10 +72,6 @@ function psinstall_google_click() { window.open('https://plus.google.com/share?url=www.qloapps.com/', 'sharergplus', 'toolbar=0,status=0,width=660,height=445'); } -function psinstall_pinterest_click() { - window.open('http://www.pinterest.com/pin/create/button/?media=http://img-cdn.prestashop.com/logo.png&url=https://qloapps.com/', 'sharerpinterest', 'toolbar=0,status=0,width=660,height=445'); -} - function psinstall_linkedin_click() { window.open('https://www.linkedin.com/shareArticle?title=QloApps&url=www.qloapps.com/download/', 'sharerlinkedin', 'toolbar=0,status=0,width=600,height=450'); } diff --git a/install/theme/js/license.js b/install-dev/theme/js/license.js similarity index 100% rename from install/theme/js/license.js rename to install-dev/theme/js/license.js diff --git a/install/theme/js/process.js b/install-dev/theme/js/process.js similarity index 98% rename from install/theme/js/process.js rename to install-dev/theme/js/process.js index 46a5241c4..cf2968a6f 100644 --- a/install/theme/js/process.js +++ b/install-dev/theme/js/process.js @@ -32,7 +32,7 @@ $(document).ready(function() current_step = 0; function start_install() { - // If we are already installing PrestaShop, do not trigger action again + // If we are already installing QloApps, do not trigger action again if (is_installing) return; is_installing = true; diff --git a/install/theme/js/welcome.js b/install-dev/theme/js/welcome.js similarity index 100% rename from install/theme/js/welcome.js rename to install-dev/theme/js/welcome.js diff --git a/install/theme/rtl.css b/install-dev/theme/rtl.css similarity index 100% rename from install/theme/rtl.css rename to install-dev/theme/rtl.css diff --git a/install/theme/view.css b/install-dev/theme/view.css similarity index 100% rename from install/theme/view.css rename to install-dev/theme/view.css diff --git a/install/theme/views/configure.phtml b/install-dev/theme/views/configure.phtml similarity index 100% rename from install/theme/views/configure.phtml rename to install-dev/theme/views/configure.phtml diff --git a/install/theme/views/database.phtml b/install-dev/theme/views/database.phtml similarity index 100% rename from install/theme/views/database.phtml rename to install-dev/theme/views/database.phtml diff --git a/install/theme/views/footer.phtml b/install-dev/theme/views/footer.phtml similarity index 100% rename from install/theme/views/footer.phtml rename to install-dev/theme/views/footer.phtml diff --git a/install/theme/views/header.phtml b/install-dev/theme/views/header.phtml similarity index 98% rename from install/theme/views/header.phtml rename to install-dev/theme/views/header.phtml index 9572eb881..5169e2b79 100644 --- a/install/theme/views/header.phtml +++ b/install-dev/theme/views/header.phtml @@ -16,7 +16,6 @@ - step.'.js')): ?> diff --git a/install/theme/views/index.php b/install-dev/theme/views/index.php similarity index 100% rename from install/theme/views/index.php rename to install-dev/theme/views/index.php diff --git a/install/theme/views/license.phtml b/install-dev/theme/views/license.phtml similarity index 100% rename from install/theme/views/license.phtml rename to install-dev/theme/views/license.phtml diff --git a/install/theme/views/license_content.phtml b/install-dev/theme/views/license_content.phtml similarity index 100% rename from install/theme/views/license_content.phtml rename to install-dev/theme/views/license_content.phtml diff --git a/install/theme/views/process.phtml b/install-dev/theme/views/process.phtml similarity index 100% rename from install/theme/views/process.phtml rename to install-dev/theme/views/process.phtml diff --git a/install/theme/views/system.phtml b/install-dev/theme/views/system.phtml similarity index 100% rename from install/theme/views/system.phtml rename to install-dev/theme/views/system.phtml diff --git a/install/theme/views/welcome.phtml b/install-dev/theme/views/welcome.phtml similarity index 100% rename from install/theme/views/welcome.phtml rename to install-dev/theme/views/welcome.phtml diff --git a/install/upgrade/classes/AbstractLogger.php b/install-dev/upgrade/classes/AbstractLogger.php similarity index 100% rename from install/upgrade/classes/AbstractLogger.php rename to install-dev/upgrade/classes/AbstractLogger.php diff --git a/install/upgrade/classes/AddConfToFile.php b/install-dev/upgrade/classes/AddConfToFile.php similarity index 100% rename from install/upgrade/classes/AddConfToFile.php rename to install-dev/upgrade/classes/AddConfToFile.php diff --git a/install/upgrade/classes/FileLogger.php b/install-dev/upgrade/classes/FileLogger.php similarity index 100% rename from install/upgrade/classes/FileLogger.php rename to install-dev/upgrade/classes/FileLogger.php diff --git a/install/upgrade/classes/ToolsInstall.php b/install-dev/upgrade/classes/ToolsInstall.php similarity index 100% rename from install/upgrade/classes/ToolsInstall.php rename to install-dev/upgrade/classes/ToolsInstall.php diff --git a/install/upgrade/classes/index.php b/install-dev/upgrade/classes/index.php similarity index 100% rename from install/upgrade/classes/index.php rename to install-dev/upgrade/classes/index.php diff --git a/install/upgrade/index.php b/install-dev/upgrade/index.php similarity index 100% rename from install/upgrade/index.php rename to install-dev/upgrade/index.php diff --git a/install/upgrade/php/add_accounting_tab.php b/install-dev/upgrade/php/add_accounting_tab.php similarity index 100% rename from install/upgrade/php/add_accounting_tab.php rename to install-dev/upgrade/php/add_accounting_tab.php diff --git a/install/upgrade/php/add_attribute_position.php b/install-dev/upgrade/php/add_attribute_position.php similarity index 100% rename from install/upgrade/php/add_attribute_position.php rename to install-dev/upgrade/php/add_attribute_position.php diff --git a/install/upgrade/php/add_carrier_position.php b/install-dev/upgrade/php/add_carrier_position.php similarity index 100% rename from install/upgrade/php/add_carrier_position.php rename to install-dev/upgrade/php/add_carrier_position.php diff --git a/install/upgrade/php/add_column_order_state_deleted_if_not_exists.php b/install-dev/upgrade/php/add_column_order_state_deleted_if_not_exists.php similarity index 100% rename from install/upgrade/php/add_column_order_state_deleted_if_not_exists.php rename to install-dev/upgrade/php/add_column_order_state_deleted_if_not_exists.php diff --git a/install/upgrade/php/add_column_orders_reference_if_not_exists.php b/install-dev/upgrade/php/add_column_orders_reference_if_not_exists.php similarity index 100% rename from install/upgrade/php/add_column_orders_reference_if_not_exists.php rename to install-dev/upgrade/php/add_column_orders_reference_if_not_exists.php diff --git a/install/upgrade/php/add_default_restrictions_modules_groups.php b/install-dev/upgrade/php/add_default_restrictions_modules_groups.php similarity index 100% rename from install/upgrade/php/add_default_restrictions_modules_groups.php rename to install-dev/upgrade/php/add_default_restrictions_modules_groups.php diff --git a/install/upgrade/php/add_feature_position.php b/install-dev/upgrade/php/add_feature_position.php similarity index 100% rename from install/upgrade/php/add_feature_position.php rename to install-dev/upgrade/php/add_feature_position.php diff --git a/install/upgrade/php/add_group_attribute_position.php b/install-dev/upgrade/php/add_group_attribute_position.php similarity index 100% rename from install/upgrade/php/add_group_attribute_position.php rename to install-dev/upgrade/php/add_group_attribute_position.php diff --git a/install/upgrade/php/add_id_shop_to_shipper_lang_index.php b/install-dev/upgrade/php/add_id_shop_to_shipper_lang_index.php similarity index 100% rename from install/upgrade/php/add_id_shop_to_shipper_lang_index.php rename to install-dev/upgrade/php/add_id_shop_to_shipper_lang_index.php diff --git a/install/upgrade/php/add_missing_columns_customer.php b/install-dev/upgrade/php/add_missing_columns_customer.php similarity index 100% rename from install/upgrade/php/add_missing_columns_customer.php rename to install-dev/upgrade/php/add_missing_columns_customer.php diff --git a/install/upgrade/php/add_missing_image_key.php b/install-dev/upgrade/php/add_missing_image_key.php similarity index 100% rename from install/upgrade/php/add_missing_image_key.php rename to install-dev/upgrade/php/add_missing_image_key.php diff --git a/install/upgrade/php/add_missing_rewrite_value.php b/install-dev/upgrade/php/add_missing_rewrite_value.php similarity index 100% rename from install/upgrade/php/add_missing_rewrite_value.php rename to install-dev/upgrade/php/add_missing_rewrite_value.php diff --git a/install/upgrade/php/add_missing_shop_column_pagenotfound.php b/install-dev/upgrade/php/add_missing_shop_column_pagenotfound.php similarity index 100% rename from install/upgrade/php/add_missing_shop_column_pagenotfound.php rename to install-dev/upgrade/php/add_missing_shop_column_pagenotfound.php diff --git a/install/upgrade/php/add_module_to_hook.php b/install-dev/upgrade/php/add_module_to_hook.php similarity index 100% rename from install/upgrade/php/add_module_to_hook.php rename to install-dev/upgrade/php/add_module_to_hook.php diff --git a/install/upgrade/php/add_new_categores_160.php b/install-dev/upgrade/php/add_new_categores_160.php similarity index 100% rename from install/upgrade/php/add_new_categores_160.php rename to install-dev/upgrade/php/add_new_categores_160.php diff --git a/install/upgrade/php/add_new_groups.php b/install-dev/upgrade/php/add_new_groups.php similarity index 100% rename from install/upgrade/php/add_new_groups.php rename to install-dev/upgrade/php/add_new_groups.php diff --git a/install/upgrade/php/add_new_order_refund_states_160.php b/install-dev/upgrade/php/add_new_order_refund_states_160.php similarity index 100% rename from install/upgrade/php/add_new_order_refund_states_160.php rename to install-dev/upgrade/php/add_new_order_refund_states_160.php diff --git a/install/upgrade/php/add_new_tab.php b/install-dev/upgrade/php/add_new_tab.php similarity index 100% rename from install/upgrade/php/add_new_tab.php rename to install-dev/upgrade/php/add_new_tab.php diff --git a/install/upgrade/php/add_new_tabs_160.php b/install-dev/upgrade/php/add_new_tabs_160.php similarity index 100% rename from install/upgrade/php/add_new_tabs_160.php rename to install-dev/upgrade/php/add_new_tabs_160.php diff --git a/install/upgrade/php/add_order_detail_meta_page_161.php b/install-dev/upgrade/php/add_order_detail_meta_page_161.php similarity index 100% rename from install/upgrade/php/add_order_detail_meta_page_161.php rename to install-dev/upgrade/php/add_order_detail_meta_page_161.php diff --git a/install/upgrade/php/add_order_reference_in_order_payment.php b/install-dev/upgrade/php/add_order_reference_in_order_payment.php similarity index 100% rename from install/upgrade/php/add_order_reference_in_order_payment.php rename to install-dev/upgrade/php/add_order_reference_in_order_payment.php diff --git a/install/upgrade/php/add_order_state.php b/install-dev/upgrade/php/add_order_state.php similarity index 100% rename from install/upgrade/php/add_order_state.php rename to install-dev/upgrade/php/add_order_state.php diff --git a/install/upgrade/php/add_required_customization_field_flag.php b/install-dev/upgrade/php/add_required_customization_field_flag.php similarity index 100% rename from install/upgrade/php/add_required_customization_field_flag.php rename to install-dev/upgrade/php/add_required_customization_field_flag.php diff --git a/install/upgrade/php/add_stock_tab.php b/install-dev/upgrade/php/add_stock_tab.php similarity index 100% rename from install/upgrade/php/add_stock_tab.php rename to install-dev/upgrade/php/add_stock_tab.php diff --git a/install/upgrade/php/add_unknown_gender.php b/install-dev/upgrade/php/add_unknown_gender.php similarity index 100% rename from install/upgrade/php/add_unknown_gender.php rename to install-dev/upgrade/php/add_unknown_gender.php diff --git a/install/upgrade/php/alter_blocklink.php b/install-dev/upgrade/php/alter_blocklink.php similarity index 100% rename from install/upgrade/php/alter_blocklink.php rename to install-dev/upgrade/php/alter_blocklink.php diff --git a/install/upgrade/php/alter_cms_block.php b/install-dev/upgrade/php/alter_cms_block.php similarity index 100% rename from install/upgrade/php/alter_cms_block.php rename to install-dev/upgrade/php/alter_cms_block.php diff --git a/install/upgrade/php/alter_productcomments_guest_index.php b/install-dev/upgrade/php/alter_productcomments_guest_index.php similarity index 100% rename from install/upgrade/php/alter_productcomments_guest_index.php rename to install-dev/upgrade/php/alter_productcomments_guest_index.php diff --git a/install/upgrade/php/attribute_group_clean_combinations.php b/install-dev/upgrade/php/attribute_group_clean_combinations.php similarity index 100% rename from install/upgrade/php/attribute_group_clean_combinations.php rename to install-dev/upgrade/php/attribute_group_clean_combinations.php diff --git a/install/upgrade/php/block_category_1521.php b/install-dev/upgrade/php/block_category_1521.php similarity index 100% rename from install/upgrade/php/block_category_1521.php rename to install-dev/upgrade/php/block_category_1521.php diff --git a/install/upgrade/php/blocknewsletter.php b/install-dev/upgrade/php/blocknewsletter.php similarity index 100% rename from install/upgrade/php/blocknewsletter.php rename to install-dev/upgrade/php/blocknewsletter.php diff --git a/install/upgrade/php/blocknewsletter1530.php b/install-dev/upgrade/php/blocknewsletter1530.php similarity index 100% rename from install/upgrade/php/blocknewsletter1530.php rename to install-dev/upgrade/php/blocknewsletter1530.php diff --git a/install/upgrade/php/category_product_index_unique.php b/install-dev/upgrade/php/category_product_index_unique.php similarity index 100% rename from install/upgrade/php/category_product_index_unique.php rename to install-dev/upgrade/php/category_product_index_unique.php diff --git a/install/upgrade/php/change_feature_image_to_jpg.php b/install-dev/upgrade/php/change_feature_image_to_jpg.php similarity index 100% rename from install/upgrade/php/change_feature_image_to_jpg.php rename to install-dev/upgrade/php/change_feature_image_to_jpg.php diff --git a/install/upgrade/php/check_webservice_account_table.php b/install-dev/upgrade/php/check_webservice_account_table.php similarity index 100% rename from install/upgrade/php/check_webservice_account_table.php rename to install-dev/upgrade/php/check_webservice_account_table.php diff --git a/install/upgrade/php/clean_category_product.php b/install-dev/upgrade/php/clean_category_product.php similarity index 100% rename from install/upgrade/php/clean_category_product.php rename to install-dev/upgrade/php/clean_category_product.php diff --git a/install/upgrade/php/clean_product_description_161.php b/install-dev/upgrade/php/clean_product_description_161.php similarity index 100% rename from install/upgrade/php/clean_product_description_161.php rename to install-dev/upgrade/php/clean_product_description_161.php diff --git a/install/upgrade/php/clean_tabs_15.php b/install-dev/upgrade/php/clean_tabs_15.php similarity index 100% rename from install/upgrade/php/clean_tabs_15.php rename to install-dev/upgrade/php/clean_tabs_15.php diff --git a/install/upgrade/php/cms_block.php b/install-dev/upgrade/php/cms_block.php similarity index 100% rename from install/upgrade/php/cms_block.php rename to install-dev/upgrade/php/cms_block.php diff --git a/install/upgrade/php/cms_multishop.php b/install-dev/upgrade/php/cms_multishop.php similarity index 100% rename from install/upgrade/php/cms_multishop.php rename to install-dev/upgrade/php/cms_multishop.php diff --git a/install/upgrade/php/configuration_double_cleaner.php b/install-dev/upgrade/php/configuration_double_cleaner.php similarity index 100% rename from install/upgrade/php/configuration_double_cleaner.php rename to install-dev/upgrade/php/configuration_double_cleaner.php diff --git a/install/upgrade/php/convert_product_price.php b/install-dev/upgrade/php/convert_product_price.php similarity index 100% rename from install/upgrade/php/convert_product_price.php rename to install-dev/upgrade/php/convert_product_price.php diff --git a/install/upgrade/php/country_to_timezone.php b/install-dev/upgrade/php/country_to_timezone.php similarity index 100% rename from install/upgrade/php/country_to_timezone.php rename to install-dev/upgrade/php/country_to_timezone.php diff --git a/install/upgrade/php/create_entry_for_payment_detail_table_160.php b/install-dev/upgrade/php/create_entry_for_payment_detail_table_160.php similarity index 100% rename from install/upgrade/php/create_entry_for_payment_detail_table_160.php rename to install-dev/upgrade/php/create_entry_for_payment_detail_table_160.php diff --git a/install/upgrade/php/create_multistore.php b/install-dev/upgrade/php/create_multistore.php similarity index 100% rename from install/upgrade/php/create_multistore.php rename to install-dev/upgrade/php/create_multistore.php diff --git a/install/upgrade/php/customization_field_multishop_lang.php b/install-dev/upgrade/php/customization_field_multishop_lang.php similarity index 100% rename from install/upgrade/php/customization_field_multishop_lang.php rename to install-dev/upgrade/php/customization_field_multishop_lang.php diff --git a/install/upgrade/php/deactivate_custom_modules.php b/install-dev/upgrade/php/deactivate_custom_modules.php similarity index 100% rename from install/upgrade/php/deactivate_custom_modules.php rename to install-dev/upgrade/php/deactivate_custom_modules.php diff --git a/install/upgrade/php/delivery_number_set.php b/install-dev/upgrade/php/delivery_number_set.php similarity index 100% rename from install/upgrade/php/delivery_number_set.php rename to install-dev/upgrade/php/delivery_number_set.php diff --git a/install/upgrade/php/drop_image_type_non_unique_index.php b/install-dev/upgrade/php/drop_image_type_non_unique_index.php similarity index 100% rename from install/upgrade/php/drop_image_type_non_unique_index.php rename to install-dev/upgrade/php/drop_image_type_non_unique_index.php diff --git a/install/upgrade/php/drop_module_non_unique_index.php b/install-dev/upgrade/php/drop_module_non_unique_index.php similarity index 100% rename from install/upgrade/php/drop_module_non_unique_index.php rename to install-dev/upgrade/php/drop_module_non_unique_index.php diff --git a/install/upgrade/php/ecotax_tax_application_fix.php b/install-dev/upgrade/php/ecotax_tax_application_fix.php similarity index 100% rename from install/upgrade/php/ecotax_tax_application_fix.php rename to install-dev/upgrade/php/ecotax_tax_application_fix.php diff --git a/install/upgrade/php/editorial_update.php b/install-dev/upgrade/php/editorial_update.php similarity index 100% rename from install/upgrade/php/editorial_update.php rename to install-dev/upgrade/php/editorial_update.php diff --git a/install/upgrade/php/editorial_update_multishop.php b/install-dev/upgrade/php/editorial_update_multishop.php similarity index 100% rename from install/upgrade/php/editorial_update_multishop.php rename to install-dev/upgrade/php/editorial_update_multishop.php diff --git a/install/upgrade/php/fix_cms_shop_1520.php b/install-dev/upgrade/php/fix_cms_shop_1520.php similarity index 100% rename from install/upgrade/php/fix_cms_shop_1520.php rename to install-dev/upgrade/php/fix_cms_shop_1520.php diff --git a/install/upgrade/php/fix_download_product_feature_active.php b/install-dev/upgrade/php/fix_download_product_feature_active.php similarity index 100% rename from install/upgrade/php/fix_download_product_feature_active.php rename to install-dev/upgrade/php/fix_download_product_feature_active.php diff --git a/install/upgrade/php/fix_unique_specific_price.php b/install-dev/upgrade/php/fix_unique_specific_price.php similarity index 100% rename from install/upgrade/php/fix_unique_specific_price.php rename to install-dev/upgrade/php/fix_unique_specific_price.php diff --git a/install/upgrade/php/generate_new_cookie_key.php b/install-dev/upgrade/php/generate_new_cookie_key.php similarity index 100% rename from install/upgrade/php/generate_new_cookie_key.php rename to install-dev/upgrade/php/generate_new_cookie_key.php diff --git a/install/upgrade/php/generate_ntree.php b/install-dev/upgrade/php/generate_ntree.php similarity index 100% rename from install/upgrade/php/generate_ntree.php rename to install-dev/upgrade/php/generate_ntree.php diff --git a/install/upgrade/php/generate_root_category_for_multishop.php b/install-dev/upgrade/php/generate_root_category_for_multishop.php similarity index 100% rename from install/upgrade/php/generate_root_category_for_multishop.php rename to install-dev/upgrade/php/generate_root_category_for_multishop.php diff --git a/install/upgrade/php/generate_tax_rules.php b/install-dev/upgrade/php/generate_tax_rules.php similarity index 100% rename from install/upgrade/php/generate_tax_rules.php rename to install-dev/upgrade/php/generate_tax_rules.php diff --git a/install/upgrade/php/generic_add_missing_column.php b/install-dev/upgrade/php/generic_add_missing_column.php similarity index 100% rename from install/upgrade/php/generic_add_missing_column.php rename to install-dev/upgrade/php/generic_add_missing_column.php diff --git a/install/upgrade/php/gridextjs_deprecated.php b/install-dev/upgrade/php/gridextjs_deprecated.php similarity index 100% rename from install/upgrade/php/gridextjs_deprecated.php rename to install-dev/upgrade/php/gridextjs_deprecated.php diff --git a/install/upgrade/php/group_reduction_column_fix.php b/install-dev/upgrade/php/group_reduction_column_fix.php similarity index 100% rename from install/upgrade/php/group_reduction_column_fix.php rename to install-dev/upgrade/php/group_reduction_column_fix.php diff --git a/install/upgrade/php/hook_blocksearch_on_header.php b/install-dev/upgrade/php/hook_blocksearch_on_header.php similarity index 100% rename from install/upgrade/php/hook_blocksearch_on_header.php rename to install-dev/upgrade/php/hook_blocksearch_on_header.php diff --git a/install/upgrade/php/id_currency_country_fix.php b/install-dev/upgrade/php/id_currency_country_fix.php similarity index 100% rename from install/upgrade/php/id_currency_country_fix.php rename to install-dev/upgrade/php/id_currency_country_fix.php diff --git a/install/upgrade/php/image_shop1510.php b/install-dev/upgrade/php/image_shop1510.php similarity index 100% rename from install/upgrade/php/image_shop1510.php rename to install-dev/upgrade/php/image_shop1510.php diff --git a/install/upgrade/php/index.php b/install-dev/upgrade/php/index.php similarity index 100% rename from install/upgrade/php/index.php rename to install-dev/upgrade/php/index.php diff --git a/install/upgrade/php/invoice_number_set.php b/install-dev/upgrade/php/invoice_number_set.php similarity index 100% rename from install/upgrade/php/invoice_number_set.php rename to install-dev/upgrade/php/invoice_number_set.php diff --git a/install/upgrade/php/latin1_database_to_utf8.php b/install-dev/upgrade/php/latin1_database_to_utf8.php similarity index 100% rename from install/upgrade/php/latin1_database_to_utf8.php rename to install-dev/upgrade/php/latin1_database_to_utf8.php diff --git a/install/upgrade/php/migrate_block_info_to_cms_block.php b/install-dev/upgrade/php/migrate_block_info_to_cms_block.php similarity index 100% rename from install/upgrade/php/migrate_block_info_to_cms_block.php rename to install-dev/upgrade/php/migrate_block_info_to_cms_block.php diff --git a/install/upgrade/php/migrate_orders.php b/install-dev/upgrade/php/migrate_orders.php similarity index 100% rename from install/upgrade/php/migrate_orders.php rename to install-dev/upgrade/php/migrate_orders.php diff --git a/install/upgrade/php/migrate_tabs_15.php b/install-dev/upgrade/php/migrate_tabs_15.php similarity index 100% rename from install/upgrade/php/migrate_tabs_15.php rename to install-dev/upgrade/php/migrate_tabs_15.php diff --git a/install/upgrade/php/migrate_tabs_multi_shop.php b/install-dev/upgrade/php/migrate_tabs_multi_shop.php similarity index 100% rename from install/upgrade/php/migrate_tabs_multi_shop.php rename to install-dev/upgrade/php/migrate_tabs_multi_shop.php diff --git a/install/upgrade/php/module_blockwishlist_multishop.php b/install-dev/upgrade/php/module_blockwishlist_multishop.php similarity index 100% rename from install/upgrade/php/module_blockwishlist_multishop.php rename to install-dev/upgrade/php/module_blockwishlist_multishop.php diff --git a/install/upgrade/php/module_reinstall_blockmyaccount.php b/install-dev/upgrade/php/module_reinstall_blockmyaccount.php similarity index 100% rename from install/upgrade/php/module_reinstall_blockmyaccount.php rename to install-dev/upgrade/php/module_reinstall_blockmyaccount.php diff --git a/install/upgrade/php/module_reinstall_blocksearch.php b/install-dev/upgrade/php/module_reinstall_blocksearch.php similarity index 100% rename from install/upgrade/php/module_reinstall_blocksearch.php rename to install-dev/upgrade/php/module_reinstall_blocksearch.php diff --git a/install/upgrade/php/move_crossselling.php b/install-dev/upgrade/php/move_crossselling.php similarity index 100% rename from install/upgrade/php/move_crossselling.php rename to install-dev/upgrade/php/move_crossselling.php diff --git a/install/upgrade/php/move_hotel_address_to_address_table.php b/install-dev/upgrade/php/move_hotel_address_to_address_table.php similarity index 100% rename from install/upgrade/php/move_hotel_address_to_address_table.php rename to install-dev/upgrade/php/move_hotel_address_to_address_table.php diff --git a/install/upgrade/php/move_hotel_categoryes_to_location.php b/install-dev/upgrade/php/move_hotel_categoryes_to_location.php similarity index 100% rename from install/upgrade/php/move_hotel_categoryes_to_location.php rename to install-dev/upgrade/php/move_hotel_categoryes_to_location.php diff --git a/install/upgrade/php/move_translations_module_file.php b/install-dev/upgrade/php/move_translations_module_file.php similarity index 100% rename from install/upgrade/php/move_translations_module_file.php rename to install-dev/upgrade/php/move_translations_module_file.php diff --git a/install/upgrade/php/outstanding_allow_amount1530.php b/install-dev/upgrade/php/outstanding_allow_amount1530.php similarity index 100% rename from install/upgrade/php/outstanding_allow_amount1530.php rename to install-dev/upgrade/php/outstanding_allow_amount1530.php diff --git a/install/upgrade/php/p15010_drop_column_id_address_if_exists.php b/install-dev/upgrade/php/p15010_drop_column_id_address_if_exists.php similarity index 100% rename from install/upgrade/php/p15010_drop_column_id_address_if_exists.php rename to install-dev/upgrade/php/p15010_drop_column_id_address_if_exists.php diff --git a/install/upgrade/php/p15012_add_missing_columns.php b/install-dev/upgrade/php/p15012_add_missing_columns.php similarity index 100% rename from install/upgrade/php/p15012_add_missing_columns.php rename to install-dev/upgrade/php/p15012_add_missing_columns.php diff --git a/install/upgrade/php/p15013_add_missing_columns.php b/install-dev/upgrade/php/p15013_add_missing_columns.php similarity index 100% rename from install/upgrade/php/p15013_add_missing_columns.php rename to install-dev/upgrade/php/p15013_add_missing_columns.php diff --git a/install/upgrade/php/p15014_add_missing_columns.php b/install-dev/upgrade/php/p15014_add_missing_columns.php similarity index 100% rename from install/upgrade/php/p15014_add_missing_columns.php rename to install-dev/upgrade/php/p15014_add_missing_columns.php diff --git a/install/upgrade/php/p15014_copy_missing_images_tab_from_installer.php b/install-dev/upgrade/php/p15014_copy_missing_images_tab_from_installer.php similarity index 100% rename from install/upgrade/php/p15014_copy_missing_images_tab_from_installer.php rename to install-dev/upgrade/php/p15014_copy_missing_images_tab_from_installer.php diff --git a/install/upgrade/php/p15014_upgrade_sekeywords.php b/install-dev/upgrade/php/p15014_upgrade_sekeywords.php similarity index 100% rename from install/upgrade/php/p15014_upgrade_sekeywords.php rename to install-dev/upgrade/php/p15014_upgrade_sekeywords.php diff --git a/install/upgrade/php/p15015_blockadvertising_extension.php b/install-dev/upgrade/php/p15015_blockadvertising_extension.php similarity index 100% rename from install/upgrade/php/p15015_blockadvertising_extension.php rename to install-dev/upgrade/php/p15015_blockadvertising_extension.php diff --git a/install/upgrade/php/p15016_add_missing_columns.php b/install-dev/upgrade/php/p15016_add_missing_columns.php similarity index 100% rename from install/upgrade/php/p15016_add_missing_columns.php rename to install-dev/upgrade/php/p15016_add_missing_columns.php diff --git a/install/upgrade/php/p15017_add_id_shop_to_primary_key.php b/install-dev/upgrade/php/p15017_add_id_shop_to_primary_key.php similarity index 100% rename from install/upgrade/php/p15017_add_id_shop_to_primary_key.php rename to install-dev/upgrade/php/p15017_add_id_shop_to_primary_key.php diff --git a/install/upgrade/php/p15018_change_image_types.php b/install-dev/upgrade/php/p15018_change_image_types.php similarity index 100% rename from install/upgrade/php/p15018_change_image_types.php rename to install-dev/upgrade/php/p15018_change_image_types.php diff --git a/install/upgrade/php/p1531_redirect_type.php b/install-dev/upgrade/php/p1531_redirect_type.php similarity index 100% rename from install/upgrade/php/p1531_redirect_type.php rename to install-dev/upgrade/php/p1531_redirect_type.php diff --git a/install/upgrade/php/p1540_add_missing_columns.php b/install-dev/upgrade/php/p1540_add_missing_columns.php similarity index 100% rename from install/upgrade/php/p1540_add_missing_columns.php rename to install-dev/upgrade/php/p1540_add_missing_columns.php diff --git a/install/upgrade/php/p16011_media_server.php b/install-dev/upgrade/php/p16011_media_server.php similarity index 100% rename from install/upgrade/php/p16011_media_server.php rename to install-dev/upgrade/php/p16011_media_server.php diff --git a/install/upgrade/php/p16012_pack_rework.php b/install-dev/upgrade/php/p16012_pack_rework.php similarity index 100% rename from install/upgrade/php/p16012_pack_rework.php rename to install-dev/upgrade/php/p16012_pack_rework.php diff --git a/install/upgrade/php/p1603_add_attachment_size.php b/install-dev/upgrade/php/p1603_add_attachment_size.php similarity index 100% rename from install/upgrade/php/p1603_add_attachment_size.php rename to install-dev/upgrade/php/p1603_add_attachment_size.php diff --git a/install/upgrade/php/p1606module_exceptions.php b/install-dev/upgrade/php/p1606module_exceptions.php similarity index 100% rename from install/upgrade/php/p1606module_exceptions.php rename to install-dev/upgrade/php/p1606module_exceptions.php diff --git a/install/upgrade/php/p1607_drop_primary_key_if_exists.php b/install-dev/upgrade/php/p1607_drop_primary_key_if_exists.php similarity index 100% rename from install/upgrade/php/p1607_drop_primary_key_if_exists.php rename to install-dev/upgrade/php/p1607_drop_primary_key_if_exists.php diff --git a/install/upgrade/php/ps1600_add_missing_index.php b/install-dev/upgrade/php/ps1600_add_missing_index.php similarity index 100% rename from install/upgrade/php/ps1600_add_missing_index.php rename to install-dev/upgrade/php/ps1600_add_missing_index.php diff --git a/install/upgrade/php/ps16012_update_alias.php b/install-dev/upgrade/php/ps16012_update_alias.php similarity index 100% rename from install/upgrade/php/ps16012_update_alias.php rename to install-dev/upgrade/php/ps16012_update_alias.php diff --git a/install/upgrade/php/ps1604_update_employee_date.php b/install-dev/upgrade/php/ps1604_update_employee_date.php similarity index 100% rename from install/upgrade/php/ps1604_update_employee_date.php rename to install-dev/upgrade/php/ps1604_update_employee_date.php diff --git a/install/upgrade/php/ps1605_change_index.php b/install-dev/upgrade/php/ps1605_change_index.php similarity index 100% rename from install/upgrade/php/ps1605_change_index.php rename to install-dev/upgrade/php/ps1605_change_index.php diff --git a/install/upgrade/php/ps1607_language_code_update.php b/install-dev/upgrade/php/ps1607_language_code_update.php similarity index 100% rename from install/upgrade/php/ps1607_language_code_update.php rename to install-dev/upgrade/php/ps1607_language_code_update.php diff --git a/install/upgrade/php/ps1610_safe_remove_indexes.php b/install-dev/upgrade/php/ps1610_safe_remove_indexes.php similarity index 100% rename from install/upgrade/php/ps1610_safe_remove_indexes.php rename to install-dev/upgrade/php/ps1610_safe_remove_indexes.php diff --git a/install/upgrade/php/regenerate_level_depth.php b/install-dev/upgrade/php/regenerate_level_depth.php similarity index 100% rename from install/upgrade/php/regenerate_level_depth.php rename to install-dev/upgrade/php/regenerate_level_depth.php diff --git a/install/upgrade/php/remove_duplicate_category_groups.php b/install-dev/upgrade/php/remove_duplicate_category_groups.php similarity index 100% rename from install/upgrade/php/remove_duplicate_category_groups.php rename to install-dev/upgrade/php/remove_duplicate_category_groups.php diff --git a/install/upgrade/php/remove_module_from_hook.php b/install-dev/upgrade/php/remove_module_from_hook.php similarity index 100% rename from install/upgrade/php/remove_module_from_hook.php rename to install-dev/upgrade/php/remove_module_from_hook.php diff --git a/install/upgrade/php/remove_tab.php b/install-dev/upgrade/php/remove_tab.php similarity index 100% rename from install/upgrade/php/remove_tab.php rename to install-dev/upgrade/php/remove_tab.php diff --git a/install/upgrade/php/reorderpositions.php b/install-dev/upgrade/php/reorderpositions.php similarity index 100% rename from install/upgrade/php/reorderpositions.php rename to install-dev/upgrade/php/reorderpositions.php diff --git a/install/upgrade/php/set_discount_category.php b/install-dev/upgrade/php/set_discount_category.php similarity index 100% rename from install/upgrade/php/set_discount_category.php rename to install-dev/upgrade/php/set_discount_category.php diff --git a/install/upgrade/php/set_payment_module.php b/install-dev/upgrade/php/set_payment_module.php similarity index 100% rename from install/upgrade/php/set_payment_module.php rename to install-dev/upgrade/php/set_payment_module.php diff --git a/install/upgrade/php/set_payment_module_group.php b/install-dev/upgrade/php/set_payment_module_group.php similarity index 100% rename from install/upgrade/php/set_payment_module_group.php rename to install-dev/upgrade/php/set_payment_module_group.php diff --git a/install/upgrade/php/set_product_suppliers.php b/install-dev/upgrade/php/set_product_suppliers.php similarity index 100% rename from install/upgrade/php/set_product_suppliers.php rename to install-dev/upgrade/php/set_product_suppliers.php diff --git a/install/upgrade/php/set_stock_available.php b/install-dev/upgrade/php/set_stock_available.php similarity index 100% rename from install/upgrade/php/set_stock_available.php rename to install-dev/upgrade/php/set_stock_available.php diff --git a/install/upgrade/php/setallgroupsonhomecategory.php b/install-dev/upgrade/php/setallgroupsonhomecategory.php similarity index 100% rename from install/upgrade/php/setallgroupsonhomecategory.php rename to install-dev/upgrade/php/setallgroupsonhomecategory.php diff --git a/install/upgrade/php/shop_url.php b/install-dev/upgrade/php/shop_url.php similarity index 100% rename from install/upgrade/php/shop_url.php rename to install-dev/upgrade/php/shop_url.php diff --git a/install/upgrade/php/update_carrier_url.php b/install-dev/upgrade/php/update_carrier_url.php similarity index 100% rename from install/upgrade/php/update_carrier_url.php rename to install-dev/upgrade/php/update_carrier_url.php diff --git a/install/upgrade/php/update_customer_default_group.php b/install-dev/upgrade/php/update_customer_default_group.php similarity index 100% rename from install/upgrade/php/update_customer_default_group.php rename to install-dev/upgrade/php/update_customer_default_group.php diff --git a/install/upgrade/php/update_feature_detachable_cache.php b/install-dev/upgrade/php/update_feature_detachable_cache.php similarity index 100% rename from install/upgrade/php/update_feature_detachable_cache.php rename to install-dev/upgrade/php/update_feature_detachable_cache.php diff --git a/install/upgrade/php/update_for_13version.php b/install-dev/upgrade/php/update_for_13version.php similarity index 100% rename from install/upgrade/php/update_for_13version.php rename to install-dev/upgrade/php/update_for_13version.php diff --git a/install/upgrade/php/update_genders_images.php b/install-dev/upgrade/php/update_genders_images.php similarity index 100% rename from install/upgrade/php/update_genders_images.php rename to install-dev/upgrade/php/update_genders_images.php diff --git a/install/upgrade/php/update_image_size_in_db.php b/install-dev/upgrade/php/update_image_size_in_db.php similarity index 100% rename from install/upgrade/php/update_image_size_in_db.php rename to install-dev/upgrade/php/update_image_size_in_db.php diff --git a/install/upgrade/php/update_mailalerts_add_column_idshop.php b/install-dev/upgrade/php/update_mailalerts_add_column_idshop.php similarity index 100% rename from install/upgrade/php/update_mailalerts_add_column_idshop.php rename to install-dev/upgrade/php/update_mailalerts_add_column_idshop.php diff --git a/install/upgrade/php/update_module_blocklayered.php b/install-dev/upgrade/php/update_module_blocklayered.php similarity index 100% rename from install/upgrade/php/update_module_blocklayered.php rename to install-dev/upgrade/php/update_module_blocklayered.php diff --git a/install/upgrade/php/update_module_followup.php b/install-dev/upgrade/php/update_module_followup.php similarity index 100% rename from install/upgrade/php/update_module_followup.php rename to install-dev/upgrade/php/update_module_followup.php diff --git a/install/upgrade/php/update_module_loyalty.php b/install-dev/upgrade/php/update_module_loyalty.php similarity index 100% rename from install/upgrade/php/update_module_loyalty.php rename to install-dev/upgrade/php/update_module_loyalty.php diff --git a/install/upgrade/php/update_module_pagesnotfound.php b/install-dev/upgrade/php/update_module_pagesnotfound.php similarity index 100% rename from install/upgrade/php/update_module_pagesnotfound.php rename to install-dev/upgrade/php/update_module_pagesnotfound.php diff --git a/install/upgrade/php/update_module_product_comments.php b/install-dev/upgrade/php/update_module_product_comments.php similarity index 100% rename from install/upgrade/php/update_module_product_comments.php rename to install-dev/upgrade/php/update_module_product_comments.php diff --git a/install/upgrade/php/update_modules_multishop.php b/install-dev/upgrade/php/update_modules_multishop.php similarity index 100% rename from install/upgrade/php/update_modules_multishop.php rename to install-dev/upgrade/php/update_modules_multishop.php diff --git a/install/upgrade/php/update_modules_sql.php b/install-dev/upgrade/php/update_modules_sql.php similarity index 100% rename from install/upgrade/php/update_modules_sql.php rename to install-dev/upgrade/php/update_modules_sql.php diff --git a/install/upgrade/php/update_order_canada.php b/install-dev/upgrade/php/update_order_canada.php similarity index 100% rename from install/upgrade/php/update_order_canada.php rename to install-dev/upgrade/php/update_order_canada.php diff --git a/install/upgrade/php/update_order_detail_taxes.php b/install-dev/upgrade/php/update_order_detail_taxes.php similarity index 100% rename from install/upgrade/php/update_order_detail_taxes.php rename to install-dev/upgrade/php/update_order_detail_taxes.php diff --git a/install/upgrade/php/update_order_details.php b/install-dev/upgrade/php/update_order_details.php similarity index 100% rename from install/upgrade/php/update_order_details.php rename to install-dev/upgrade/php/update_order_details.php diff --git a/install/upgrade/php/update_order_messages.php b/install-dev/upgrade/php/update_order_messages.php similarity index 100% rename from install/upgrade/php/update_order_messages.php rename to install-dev/upgrade/php/update_order_messages.php diff --git a/install/upgrade/php/update_order_payment_detail_160.php b/install-dev/upgrade/php/update_order_payment_detail_160.php similarity index 100% rename from install/upgrade/php/update_order_payment_detail_160.php rename to install-dev/upgrade/php/update_order_payment_detail_160.php diff --git a/install/upgrade/php/update_order_payment_type_160.php b/install-dev/upgrade/php/update_order_payment_type_160.php similarity index 100% rename from install/upgrade/php/update_order_payment_type_160.php rename to install-dev/upgrade/php/update_order_payment_type_160.php diff --git a/install/upgrade/php/update_order_states_161.php b/install-dev/upgrade/php/update_order_states_161.php similarity index 100% rename from install/upgrade/php/update_order_states_161.php rename to install-dev/upgrade/php/update_order_states_161.php diff --git a/install/upgrade/php/update_products_ecotax_v133.php b/install-dev/upgrade/php/update_products_ecotax_v133.php similarity index 100% rename from install/upgrade/php/update_products_ecotax_v133.php rename to install-dev/upgrade/php/update_products_ecotax_v133.php diff --git a/install/upgrade/php/update_stock_mvt_reason.php b/install-dev/upgrade/php/update_stock_mvt_reason.php similarity index 100% rename from install/upgrade/php/update_stock_mvt_reason.php rename to install-dev/upgrade/php/update_stock_mvt_reason.php diff --git a/install/upgrade/php/update_tabs_161.php b/install-dev/upgrade/php/update_tabs_161.php similarity index 100% rename from install/upgrade/php/update_tabs_161.php rename to install-dev/upgrade/php/update_tabs_161.php diff --git a/install/upgrade/php/updateproductcomments.php b/install-dev/upgrade/php/updateproductcomments.php similarity index 100% rename from install/upgrade/php/updateproductcomments.php rename to install-dev/upgrade/php/updateproductcomments.php diff --git a/install/upgrade/php/updatetabicon_from_11version.php b/install-dev/upgrade/php/updatetabicon_from_11version.php similarity index 100% rename from install/upgrade/php/updatetabicon_from_11version.php rename to install-dev/upgrade/php/updatetabicon_from_11version.php diff --git a/install/upgrade/php/upgrade_cms_15.php b/install-dev/upgrade/php/upgrade_cms_15.php similarity index 100% rename from install/upgrade/php/upgrade_cms_15.php rename to install-dev/upgrade/php/upgrade_cms_15.php diff --git a/install/upgrade/php/upgrade_cms_15_rename.php b/install-dev/upgrade/php/upgrade_cms_15_rename.php similarity index 100% rename from install/upgrade/php/upgrade_cms_15_rename.php rename to install-dev/upgrade/php/upgrade_cms_15_rename.php diff --git a/install/upgrade/sql/1.4.1.sql b/install-dev/upgrade/sql/1.4.1.sql similarity index 100% rename from install/upgrade/sql/1.4.1.sql rename to install-dev/upgrade/sql/1.4.1.sql diff --git a/install/upgrade/sql/1.5.0.sql b/install-dev/upgrade/sql/1.5.0.sql similarity index 100% rename from install/upgrade/sql/1.5.0.sql rename to install-dev/upgrade/sql/1.5.0.sql diff --git a/install/upgrade/sql/1.5.1.0.sql b/install-dev/upgrade/sql/1.5.1.0.sql similarity index 100% rename from install/upgrade/sql/1.5.1.0.sql rename to install-dev/upgrade/sql/1.5.1.0.sql diff --git a/install/upgrade/sql/1.5.2.0.sql b/install-dev/upgrade/sql/1.5.2.0.sql similarity index 100% rename from install/upgrade/sql/1.5.2.0.sql rename to install-dev/upgrade/sql/1.5.2.0.sql diff --git a/install/upgrade/sql/1.6.0.0.sql b/install-dev/upgrade/sql/1.6.0.0.sql similarity index 100% rename from install/upgrade/sql/1.6.0.0.sql rename to install-dev/upgrade/sql/1.6.0.0.sql diff --git a/install/upgrade/sql/1.6.1.0.sql b/install-dev/upgrade/sql/1.6.1.0.sql similarity index 100% rename from install/upgrade/sql/1.6.1.0.sql rename to install-dev/upgrade/sql/1.6.1.0.sql diff --git a/install/upgrade/sql/index.php b/install-dev/upgrade/sql/index.php similarity index 100% rename from install/upgrade/sql/index.php rename to install-dev/upgrade/sql/index.php diff --git a/install/upgrade/upgrade.php b/install-dev/upgrade/upgrade.php similarity index 100% rename from install/upgrade/upgrade.php rename to install-dev/upgrade/upgrade.php diff --git a/js/admin/normal_products.js b/js/admin/normal_products.js index 2e1bf00a6..cce5d172b 100644 --- a/js/admin/normal_products.js +++ b/js/admin/normal_products.js @@ -476,6 +476,11 @@ product_tabs['Informations'] = new function(){ this.bindAutoAddProduct = function (){ $('input[name="auto_add_to_cart"]').on('change',function(){ if ($(this).val() == 1) { + $('#sp_with_room_type').prop('checked', true); + var $checkedSpOthers = $('#sp_with_hotel, #sp_standalone').filter(':checked'); + if ($checkedSpOthers.length) { + $checkedSpOthers.prop('checked', false).trigger('change'); + } $("#price_addition_type_container").show('fast'); $("#show_at_front_container").hide('fast'); // $('#show_at_front_off').prop("checked", true).change(); @@ -547,59 +552,58 @@ product_tabs['Informations'] = new function(){ }; this.switchProductType = function(){ - - $('#selling_preference_type').on('change',function(){ - if (parseInt($(this).val()) == SELLING_PREFERENCE_WITH_ROOM_TYPE) { - $('#associated_hotel_tree').hide('fast').find('input').each(function() { - $(this).attr('data-name', $(this).attr('name')); - $(this).removeAttr('name'); - }); - $('#associated_hotel_rooms_tree').show('fast').find('input').each(function() { + function toggleAssociationFieldNames(containerSelector, shouldShow) + { + var $container = $(containerSelector); + if (shouldShow) { + $container.show('fast').find('input').each(function() { $(this).attr('name', $(this).attr('data-name')); $(this).removeAttr('data-name'); }); - $('#auto_add_to_cart_container').show('fast'); - $('#show_at_front_container').show('fast'); - $('#product_options').show('fast'); - } else if (parseInt($(this).val()) == SELLING_PREFERENCE_HOTEL_STANDALONE) { - $('#associated_hotel_rooms_tree').hide('fast').find('input').each(function() { + } else { + $container.hide('fast').find('input').each(function() { $(this).attr('data-name', $(this).attr('name')); $(this).removeAttr('name'); }); - $('#associated_hotel_tree').show('fast').find('input').each(function() { - $(this).attr('name', $(this).attr('data-name')); - $(this).removeAttr('data-name'); - }); - $('#auto_add_to_cart_container').hide('fast'); - $('#show_at_front_container').show('fast'); - $('#product_options').show('fast'); - } else if (parseInt($(this).val()) == SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE) { - $('#associated_hotel_rooms_tree').show('fast').find('input').each(function() { - $(this).attr('name', $(this).attr('data-name')); - $(this).removeAttr('data-name'); - }); - $('#associated_hotel_tree').show('fast').find('input').each(function() { - $(this).attr('name', $(this).attr('data-name')); - $(this).removeAttr('data-name'); - }); - $('#auto_add_to_cart_container').hide('fast'); - $('#show_at_front_container').show('fast'); - $('#product_options').show('fast'); - } else if (parseInt($(this).val()) == SELLING_PREFERENCE_STANDALONE) { - $('#associated_hotel_rooms_tree').hide('fast').find('input').each(function() { - $(this).attr('data-name', $(this).attr('name')); - $(this).removeAttr('name'); - }); - $('#associated_hotel_tree').hide('fast').find('input').each(function() { - $(this).attr('data-name', $(this).attr('name')); - $(this).removeAttr('name'); - }); - $('#auto_add_to_cart_container').hide('fast'); - $('#show_at_front_container').show('fast'); - $('#product_options').show('fast'); } + } + + function applySellingPreferenceUIState() + { + var withRoomType = $('#sp_with_room_type').is(':checked'); + var withHotel = $('#sp_with_hotel').is(':checked'); + var standalone = $('#sp_standalone').is(':checked'); + + var $autoAddOff = $('#auto_add_to_cart_off'); + var $autoAddCheckedInput; + + toggleAssociationFieldNames('#associated_hotel_tree', withHotel); + toggleAssociationFieldNames('#associated_hotel_rooms_tree', withRoomType); + + if (withRoomType) { + $('#auto_add_to_cart_container').show('fast'); + $autoAddCheckedInput = $('input[name="auto_add_to_cart"]:checked'); + if (!$autoAddCheckedInput.length) { + $autoAddOff.prop('checked', true); + $autoAddCheckedInput = $autoAddOff; + } + } else { + $autoAddOff.prop('checked', true); + $('#auto_add_to_cart_container').hide('fast'); + $autoAddCheckedInput = $autoAddOff; + } + + $autoAddCheckedInput.trigger('change'); + $('#product_options').show('fast'); + } + + $('#sp_with_room_type, #sp_with_hotel, #sp_standalone').on('change', function(){ + setTimeout(function() { + applySellingPreferenceUIState(); + }, 0); }); - $('#selling_preference_type').trigger('change'); + // Code For Standard product working + ///applySellingPreferenceUIState(); $('#simple_product').attr('checked', true); $('input[name="type_product"]').on('click', function(e) diff --git a/js/admin/orders.js b/js/admin/orders.js index 878f4786c..f2570ac62 100644 --- a/js/admin/orders.js +++ b/js/admin/orders.js @@ -1083,6 +1083,14 @@ $(document).ready(function() { $('#btn_new_room_service').hide(); }); + $(document).on('change', '#add_new_room_services_form select[name="price_calculation_type"]', function() { + if ($(this).val() == new_service_pcm_once_for_booking) { + $('#new_service_pcm_days_container').hide(); + } else { + $('#new_service_pcm_days_container').show(); + } + }); + // Add new custom service: change auto added option $(document).on('change', '#add_new_room_services_form input[name="new_service_auto_added"]', function() { var room_type_tax_rule_group_exist = $("#room_type_tax_rule_group_exist").val(); @@ -1238,6 +1246,57 @@ $(document).ready(function() { }); }); + $(document).on('click', '.del_room_additional_service', function(e){ + e.preventDefault(); + if (confirm(txt_confirm)) { + var idServiceProductOrderDetail = $(this).data('id_service_product_order_detail'); + $currentItem = $(this); + if (idServiceProductOrderDetail) { + $(".loading_overlay").show(); + $.ajax({ + type: 'POST', + headers: { + "cache-control": "no-cache" + }, + url: admin_order_tab_link, + dataType: 'JSON', + cache: false, + data: { + id_service_product_order_detail: idServiceProductOrderDetail, + action: 'DeleteRoomAdditionalService', + ajax: true + }, + success: function(jsonData) { + if (!jsonData.hasError) { + if (jsonData.service_panel) { + $('#room_type_service_product_desc').replaceWith(jsonData.service_panel); + } + showSuccessMessage(txtExtraServiceSucc); + } else { + showErrorMessage(jsonData.errors); + + } + }, + complete: function() { + $(".loading_overlay").hide(); + } + }); + } else { + showErrorMessage(txtInvalidDemandVal); + } + } + + }); + + // change advance option of extra demand + $(document).on('change', '.demand_adv_option_block .id_option', function(e) { + var option_selected = $(this).find('option:selected'); + var extra_demand_price = option_selected.attr("optionPrice") + extra_demand_price = parseFloat(extra_demand_price); + // extra_demand_price = formatCurrency(extra_demand_price, currency_format, currency_sign, currency_blank); + $(this).closest('.room_demand_block').find('.unit_price').val(extra_demand_price); + }); + $(".textarea-autosize").autosize(); var date = new Date(); @@ -1300,6 +1359,7 @@ $(document).ready(function() { }, complete: function() { $(".loading_overlay").hide(); + initTooltip(); } }); }); @@ -2377,7 +2437,7 @@ const EditRoomBookingModal = { // initialize datepickers EditRoomBookingModal.initDatePickers(); - + initTooltip(); $('#edit_product .extra-services-container #id_htl_booking').val(jsonProductLineData.id); $('#edit-room-booking-modal').modal('show'); } else { diff --git a/modules/hotelreservationsystem/views/js/TourismTaxForm.js b/js/admin/tourism_tax_form.js similarity index 73% rename from modules/hotelreservationsystem/views/js/TourismTaxForm.js rename to js/admin/tourism_tax_form.js index 80e478c60..0fa04c2de 100644 --- a/modules/hotelreservationsystem/views/js/TourismTaxForm.js +++ b/js/admin/tourism_tax_form.js @@ -1,24 +1,24 @@ -/** - * NOTICE OF LICENSE - * - * This source file is subject to the Open Software License version 3.0 - * that is bundled with this package in the file LICENSE.md - * It is also available through the world-wide-web at this URL: - * https://opensource.org/license/osl-3-0-php - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to support@qloapps.com so we can send you a copy immediately. - * - * DISCLAIMER - * - * Do not edit or add to this file if you wish to upgrade this module to a newer - * versions in the future. If you wish to customize this module for your needs - * please refer to https://store.webkul.com/customisation-guidelines for more information. - * - * @author Webkul IN - * @copyright Since 2010 Webkul - * @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 - */ +/* +* NOTICE OF LICENSE +* +* This source file is subject to the Open Software License version 3.0 +* that is bundled with this package in the file LICENSE.md +* It is also available through the world-wide-web at this URL: +* https://opensource.org/license/osl-3-0-php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to support@qloapps.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade this module to a newer +* versions in the future. If you wish to customize this module for your needs +* please refer to https://store.webkul.com/customisation-guidelines for more information. +* +* @author Webkul IN +* @copyright Since 2010 Webkul +* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +*/ $(document).ready(function () { var CALCULATION_TYPE_PERCENTAGE = 1; @@ -153,3 +153,40 @@ $(document).ready(function () { $(this).closest('tr').remove(); }); }); + +function toggleTourismTaxOptionFields(animate) +{ + var $fields = $('#conf_id_QLO_TOURISM_TAX_GROSSED_UP, #conf_id_QLO_TOURISM_TAX_SHOW_SEPARATE, #conf_id_QLO_TOURISM_TAX_SHOW_SEPARATE_DOCS').closest('.form-group'); + var taxEnabled = $('#PS_TAX_on').prop('checked') === true; + var tourismTaxEnabled = $('#QLO_USE_TOURISM_TAX_on').prop('checked') === true; + var show = taxEnabled && tourismTaxEnabled; + if (animate) { + show ? $fields.fadeIn() : $fields.fadeOut(); + } else { + show ? $fields.show() : $fields.hide(); + } +} + +function toggleMainTaxOptionFields(animate) +{ + var $fields = $('#conf_id_PS_TAX_DISPLAY, #conf_id_QLO_USE_TOURISM_TAX').closest('.form-group'); + var show = $('#PS_TAX_on').prop('checked') === true; + if (animate) { + show ? $fields.fadeIn() : $fields.fadeOut(); + } else { + show ? $fields.show() : $fields.hide(); + } + toggleTourismTaxOptionFields(animate); +} + +$(document).ready(function () { + toggleMainTaxOptionFields(false); + + $('#PS_TAX_on, #PS_TAX_off').click(function (e) { + toggleMainTaxOptionFields(true); + }); + + $('#QLO_USE_TOURISM_TAX_on, #QLO_USE_TOURISM_TAX_off').click(function (e) { + toggleTourismTaxOptionFields(true); + }); +}); diff --git a/mails/en/bookings_refund_request_detail_admin.tpl b/mails/en/bookings_refund_request_detail_admin.tpl index 657124172..67a13baea 100644 --- a/mails/en/bookings_refund_request_detail_admin.tpl +++ b/mails/en/bookings_refund_request_detail_admin.tpl @@ -7,7 +7,7 @@ - + diff --git a/mails/en/bookings_refund_request_detail_customer.tpl b/mails/en/bookings_refund_request_detail_customer.tpl index 07be275d5..9b5e067c9 100644 --- a/mails/en/bookings_refund_request_detail_customer.tpl +++ b/mails/en/bookings_refund_request_detail_customer.tpl @@ -6,7 +6,7 @@ - + diff --git a/mails/en/bookings_refund_request_detail_customer_text.tpl b/mails/en/bookings_refund_request_detail_customer_text.tpl index 51d0d3ea7..6cc0ee118 100644 --- a/mails/en/bookings_refund_request_detail_customer_text.tpl +++ b/mails/en/bookings_refund_request_detail_customer_text.tpl @@ -5,7 +5,7 @@ {l s="Room Type"} -{l s="Hotel"} +{l s="Property Name"} {l s="Rooms Qty"} diff --git a/mails/en/hotel_booking_cart_data.tpl b/mails/en/hotel_booking_cart_data.tpl index 7f1d3eb67..e15cc0e07 100644 --- a/mails/en/hotel_booking_cart_data.tpl +++ b/mails/en/hotel_booking_cart_data.tpl @@ -7,7 +7,7 @@ - + diff --git a/mails/en/order_hotel_detail.tpl b/mails/en/order_hotel_detail.tpl index a6d98eb90..10d04d59c 100644 --- a/mails/en/order_hotel_detail.tpl +++ b/mails/en/order_hotel_detail.tpl @@ -1,12 +1,12 @@ {if isset($list['hotel_name']) && $list['hotel_name']}

    - {l s='Hotel details'}: + {l s='Property details'}:

    - {l s='Hotel Name'}: {$list['hotel_name']}
    - {l s='Hotel Phone'}: {$list['hotel_phone']}
    - {l s='Hotel Email'}: {$list['hotel_email']}
    + {l s='Property Name'}: {$list['hotel_name']}
    + {l s='Property Phone'}: {$list['hotel_phone']}
    + {l s='Property Email'}: {$list['hotel_email']}
    {l s='Total Rooms'}: {$list['num_rooms']}

    diff --git a/mails/en/order_hotel_detail_text.tpl b/mails/en/order_hotel_detail_text.tpl index e80d3bb4b..f4e80043b 100644 --- a/mails/en/order_hotel_detail_text.tpl +++ b/mails/en/order_hotel_detail_text.tpl @@ -1,9 +1,9 @@ {if isset($list['hotel_name']) && $list['hotel_name']} -{l s='Hotel details'}: +{l s='Property details'}: -{l s='Hotel Name'}: {$list['hotel_name']} -{l s='Hotel Phone'}: {$list['hotel_phone']} -{l s='Hotel Email'}: {$list['hotel_email']} +{l s='Property Name'}: {$list['hotel_name']} +{l s='Property Phone'}: {$list['hotel_phone']} +{l s='Property Email'}: {$list['hotel_email']} {l s='Total Rooms'}: {$list['num_rooms']} {/if} \ No newline at end of file diff --git a/modules/blockcart/ajax-cart.js b/modules/blockcart/ajax-cart.js index a005667bf..6226edce0 100644 --- a/modules/blockcart/ajax-cart.js +++ b/modules/blockcart/ajax-cart.js @@ -127,6 +127,27 @@ var ajaxCart = { dateFormat: 'DD-MM-YYYY', dateFormatFull: 'DD-MM-YYYY HH:mm:ss', nb_total_products: 0, + isSellableWithRoomType: function(sellingPreferenceType) { + return (sellingPreferenceType == SELLING_PREFERENCE_WITH_ROOM_TYPE + || sellingPreferenceType == SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_ROOM_TYPE + || sellingPreferenceType == SELLING_PREFERENCE_WITH_STANDALONE_AND_WITH_ROOM_TYPE + || sellingPreferenceType == SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_ROOM_TYPE_AND_WITH_STANDALONE + ); + }, + isSellableWithHotel: function(sellingPreferenceType) { + return (sellingPreferenceType == SELLING_PREFERENCE_WITH_HOTEL + || sellingPreferenceType == SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_ROOM_TYPE + || sellingPreferenceType == SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_STANDALONE + || sellingPreferenceType == SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_ROOM_TYPE_AND_WITH_STANDALONE + ); + }, + isSellableAsStandalone: function(sellingPreferenceType) { + return (sellingPreferenceType == SELLING_PREFERENCE_WITH_STANDALONE + || sellingPreferenceType == SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_STANDALONE + || sellingPreferenceType == SELLING_PREFERENCE_WITH_STANDALONE_AND_WITH_ROOM_TYPE + || sellingPreferenceType == SELLING_PREFERENCE_WITH_HOTEL_AND_WITH_ROOM_TYPE_AND_WITH_STANDALONE + ); + }, _overrideButtonsInThePage: function () { //for every 'add' buttons... $(document).off('click', '.ajax_add_to_cart_button').on('click', '.ajax_add_to_cart_button', function (e) { @@ -156,7 +177,7 @@ var ajaxCart = { var date_from = $('#room_check_in').val(); var date_to = $('#room_check_out').val(); - var id_hotel = $('#service_id_hotel').length ? $('#service_id_hotel').val() : 0; + var id_hotel = ($('input[name="buying_option"]').length && $('input[name="buying_option"]:checked').val() == '2') ? 0 : ($('#service_id_hotel').length ? $('#service_id_hotel').val() : 0); var occupancy = getBookingOccupancyDetails($(this).closest('.booking_room_fields'), parseInt(booking_product)); if (occupancy) { @@ -704,21 +725,33 @@ var ajaxCart = { //try to know if the current product is still in the new list var stayInTheCart = false; + var isHotelRow = (typeof ids[3] != 'undefined' && parseInt(ids[3]) > 0); for (aProduct in jsonData.products) { //we've called the variable aProduct because IE6 bug if this variable is called product //if product has attributes - if ((parseInt(jsonData.products[aProduct]['selling_preference_type']) == SELLING_PREFERENCE_HOTEL_STANDALONE - || parseInt(jsonData.products[aProduct]['selling_preference_type']) == SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE) - && (typeof jsonData.products[aProduct]['hotel_wise_data'] != 'undefined' && jsonData.products[aProduct]['hotel_wise_data'].length) - ) { + if (isHotelRow && jsonData.products[aProduct]['id'] == ids[0] + && (typeof jsonData.products[aProduct]['hotel_wise_data'] != 'undefined' && jsonData.products[aProduct]['hotel_wise_data'].length)) { $.each(jsonData.products[aProduct]['hotel_wise_data'], function() { - if (!ids[3] || (ids[3] == this.id_hotel)) { + if (ids[3] == this.id_hotel) { stayInTheCart = true; } }); } else { if (jsonData.products[aProduct]['id'] == ids[0] && (!ids[1] || jsonData.products[aProduct]['idCombination'] == ids[1])) { - stayInTheCart = true; + var productType = parseInt(jsonData.products[aProduct]['selling_preference_type']); + var isStandaloneRow = (typeof ids[3] == 'undefined' || parseInt(ids[3]) === 0); + + if (!isStandaloneRow) { + } else if ( + ajaxCart.isSellableAsStandalone(productType) + && (ajaxCart.isSellableWithHotel(productType) || ajaxCart.isSellableWithRoomType(productType)) + ) { + if (parseInt(jsonData.products[aProduct]['standalone_total_qty']) > 0) { + stayInTheCart = true; + } + } else { + stayInTheCart = true; + } // update the product customization display (when the product is still in the cart) ajaxCart.hideOldProductCustomizations(jsonData.products[aProduct], productDomId); } @@ -836,25 +869,37 @@ var ajaxCart = { $(jsonData.products).each(function(key, value) { //fix ie6 bug (one more item 'undefined' in IE6) if (this.id != undefined) { - if (!this.booking_product && parseInt(this.selling_preference_type) == SELLING_PREFERENCE_WITH_ROOM_TYPE) { - return; - } - //create a container for listing the products and hide the 'no product in the cart' message (only if the cart was empty) - if ($('.cart_block:first dl.products').length == 0) { - $('.cart_block_no_products').before('
    '); - $('.cart_block_no_products').hide(); - } - - if (parseInt(this.selling_preference_type) == SELLING_PREFERENCE_HOTEL_STANDALONE - || parseInt(this.selling_preference_type) == SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE + if ( + this.booking_product + || ajaxCart.isSellableWithHotel(parseInt(this.selling_preference_type)) + || ajaxCart.isSellableAsStandalone(parseInt(this.selling_preference_type)) ) { - if (typeof value.hotel_wise_data != 'undefined') { - $(value.hotel_wise_data).each(function(i, val) { - ajaxCart.addProductRow(value, val); - }); + if ($('.cart_block:first dl.products').length == 0) { + $('.cart_block_no_products').before('
    '); + $('.cart_block_no_products').hide(); + } + + var hasHotelRows = (typeof value.hotel_wise_data != 'undefined' && value.hotel_wise_data.length); + if (hasHotelRows) { + if (typeof value.hotel_wise_data != 'undefined') { + $(value.hotel_wise_data).each(function(i, val) { + ajaxCart.addProductRow(value, val); + }); + } + } + + var shouldShowStandaloneRow = this.booking_product + || ( + !ajaxCart.isSellableWithHotel(parseInt(this.selling_preference_type)) + && !ajaxCart.isSellableWithRoomType(parseInt(this.selling_preference_type)) + ) + || ( + ajaxCart.isSellableAsStandalone(parseInt(this.selling_preference_type)) + && parseInt(value.standalone_total_qty || 0, 10) > 0 + ); + if (shouldShowStandaloneRow) { + ajaxCart.addProductRow(value); } - } else { - ajaxCart.addProductRow(value); } } }); @@ -877,10 +922,7 @@ var ajaxCart = { content += '
    '; content += '' + name + ''; content += '
    '; - if ((parseInt(product.selling_preference_type) == SELLING_PREFERENCE_HOTEL_STANDALONE - || parseInt(product.selling_preference_type) == SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE) - && (typeof(hotel_wise_data) != 'undefined' && typeof(hotel_wise_data.hotel_name) != 'undefined') - ) { + if ((typeof(hotel_wise_data) != 'undefined' && typeof(hotel_wise_data.hotel_name) != 'undefined')) { content += '
    ' + hotel_wise_data.hotel_name + '
    '; } @@ -894,10 +936,7 @@ var ajaxCart = { if (product.booking_product) { content += formatCurrency(parseFloat(product.bookingData.total_room_type_amount), currency_format, currency_sign, currency_blank); - }else if ((parseInt(product.selling_preference_type) == SELLING_PREFERENCE_HOTEL_STANDALONE - || parseInt(product.selling_preference_type) == SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE) - && (typeof(hotel_wise_data) != 'undefined') - ) { + } else if (typeof(hotel_wise_data) != 'undefined') { content += formatCurrency(parseFloat(hotel_wise_data.amount), currency_format, currency_sign, currency_blank); } else { content += formatCurrency(parseFloat(product.amount), currency_format, currency_sign, currency_blank); @@ -917,7 +956,7 @@ var ajaxCart = { if (typeof(hotel_wise_data) != 'undefined' && hotel_wise_data.total_qty) { content += hotel_wise_data.total_qty; } else { - content += product.cart_quantity; + content += (typeof product.standalone_total_qty != 'undefined' ? product.standalone_total_qty : product.cart_quantity); } } content += ''; @@ -977,16 +1016,11 @@ var ajaxCart = { content += ''; content += ''; content += ''; - if (parseInt(product.selling_preference_type) == SELLING_PREFERENCE_HOTEL_STANDALONE - || parseInt(product.selling_preference_type) == SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE - ) { - if (hotel_wise_data.options !== 'undefined') { - var options = hotel_wise_data.options; - } - } else if (parseInt(product.selling_preference_type) == SELLING_PREFERENCE_STANDALONE) { - if (product.options !== 'undefined') { - var options = product.options; - } + var options = []; + if (typeof(hotel_wise_data) != 'undefined' && typeof(hotel_wise_data.options) != 'undefined') { + options = hotel_wise_data.options; + } else if (typeof(product.options) != 'undefined') { + options = product.options; } if (options !== 'undefined') { $.each(options, function(data_k, data_v) { @@ -1044,16 +1078,11 @@ var ajaxCart = { } else if (product.hasOptions) { $('dt[data-id="cart_block_product_' + productDomId + '"] .cart_prod_cont tr.product_option_row').remove(); var product_options_content = ''; - if (parseInt(product.selling_preference_type) == SELLING_PREFERENCE_HOTEL_STANDALONE - || parseInt(product.selling_preference_type) == SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE - ) { - if (hotel_wise_data.options !== 'undefined') { - var options = hotel_wise_data.options; - } - } else if (parseInt(product.selling_preference_type) == SELLING_PREFERENCE_STANDALONE) { - if (product.options !== 'undefined') { - var options = product.options; - } + var options = []; + if (typeof(hotel_wise_data) != 'undefined' && typeof(hotel_wise_data.options) != 'undefined') { + options = hotel_wise_data.options; + } else if (typeof(product.options) != 'undefined') { + options = product.options; } if (options !== 'undefined') { $.each(options, function(data_k, data_v) { @@ -1078,10 +1107,7 @@ var ajaxCart = { if (!product.is_gift) { if (product.booking_product) { $('dt[data-id="cart_block_product_' + productDomId + '"] .price').text(formatCurrency(parseFloat(product.bookingData.total_room_type_amount), currency_format, currency_sign, currency_blank)); - } else if ((parseInt(product.selling_preference_type) == SELLING_PREFERENCE_HOTEL_STANDALONE - || parseInt(product.selling_preference_type) == SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE) - && typeof(hotel_wise_data) != 'undefined' - ) { + } else if (typeof(hotel_wise_data) != 'undefined') { $('dt[data-id="cart_block_product_' + productDomId + '"] .price').text(formatCurrency(parseFloat(hotel_wise_data.amount), currency_format, currency_sign, currency_blank)); } else { $('dt[data-id="cart_block_product_' + productDomId + '"] .price').text(formatCurrency(parseFloat(product.amount), currency_format, currency_sign, currency_blank)); @@ -1092,15 +1118,16 @@ var ajaxCart = { //cart_booking_data[key].total_num_rooms argument sent to update num of rooms instead of quantity if (product.booking_product) { ajaxCart.updateProductQuantity(jsonProduct, product.bookingData.total_num_rooms); - } else if ((parseInt(product.selling_preference_type) == SELLING_PREFERENCE_HOTEL_STANDALONE - || parseInt(product.selling_preference_type) == SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE - ) - && typeof(hotel_wise_data) != 'undefined' + } else if ( + typeof(hotel_wise_data) != 'undefined' && hotel_wise_data.total_qty ) { ajaxCart.updateProductQuantity(jsonProduct, hotel_wise_data.total_qty, hotel_wise_data); } else { - ajaxCart.updateProductQuantity(jsonProduct, jsonProduct.cart_quantity); + ajaxCart.updateProductQuantity( + jsonProduct, + (typeof jsonProduct.standalone_total_qty != 'undefined' ? jsonProduct.standalone_total_qty : jsonProduct.cart_quantity) + ); } // Customized product @@ -1207,13 +1234,19 @@ var ajaxCart = { let rooms = 0; let adults = 0; let children = 0; + if (typeof product.layer_cart_attribute_label !== 'undefined') { + $('#layer_cart .layer_cart_attribute_type').text(product.layer_cart_attribute_label); + } + if(typeof product.layer_cart_room_success_msg !== 'undefined'){ + $('#layer_cart .layer_cart_room_success_msg').text(product.layer_cart_room_success_msg); + } if (occupancy_required_for_booking) { $.each(product.occupancy, function(index, val) { rooms++; adults += parseInt(val.adults); children += parseInt(val.children); }); - product_quantity_text = getRoomTypeGuestOccupancyFormated(adults, children, rooms); + product_quantity_text = getRoomTypeGuestOccupancyFormated(adults, children, rooms,product.room_info.selling_object_name, product.room_info.selling_object_plural_name); } else { product_quantity_text = product.occupancy; } diff --git a/modules/blockcart/blockcart.php b/modules/blockcart/blockcart.php index 12b233ee5..1479cabf2 100644 --- a/modules/blockcart/blockcart.php +++ b/modules/blockcart/blockcart.php @@ -117,11 +117,11 @@ class Blockcart extends Module $product['hasCustomizedDatas'] = false; $product['hasAttributes'] = false; $product['hasOptions'] = false; + $product['standalone_total_qty'] = 0; if (!$product['booking_product']) { $product['hasOptions'] = ServiceProductOption::productHasOptions($product['id_product']); - if (Product::SELLING_PREFERENCE_STANDALONE == $product['selling_preference_type']) { - $nbTotalProducts += (int) $product['cart_quantity']; + if (Product::isSellableAsStandalone($product['id_product'])) { $product['total_price_tax_incl'] = 0; $product['total_price_tax_excl'] = 0; $product['amount'] = 0; @@ -129,9 +129,9 @@ class Blockcart extends Module if ($serviceProducts = $objServiceProductCartDetail->getServiceProductsInCart( $params['cart']->id, - [Product::SELLING_PREFERENCE_STANDALONE], + [(int) $product['selling_preference_type']], + 0, 0, - null, null, $product['id_product'], )) { @@ -144,15 +144,17 @@ class Blockcart extends Module $product['total_price_tax_incl'] += $serviceProduct['total_price_tax_incl'] + $tourismTaxGrossUp; $product['total_price_tax_excl'] += $serviceProduct['total_price_tax_excl']; $product['amount'] += $useTax ? ($serviceProduct['total_price_tax_incl'] + $tourismTaxGrossUp) : $serviceProduct['total_price_tax_excl']; + $product['standalone_total_qty'] += (int) $serviceProduct['quantity']; } } } - } elseif (Product::SELLING_PREFERENCE_HOTEL_STANDALONE == $product['selling_preference_type'] - || Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE == $product['selling_preference_type'] - ) { + $nbTotalProducts += (int) $product['standalone_total_qty']; + } + + if (Product::isSellableWithHotel($product['id_product'])) { if ($serviceProducts = $objServiceProductCartDetail->getServiceProductsInCart( $params['cart']->id, - [Product::SELLING_PREFERENCE_HOTEL_STANDALONE, Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE], + [(int) $product['selling_preference_type']], null, 0, null, @@ -162,7 +164,6 @@ class Blockcart extends Module if ($serviceProduct['id_hotel'] && $serviceProduct['id_product'] == $product['id_product'] ) { - $nbTotalProducts += (int) $serviceProduct['quantity']; if (!isset($product['hotel_wise_data'][$serviceProduct['id_hotel']])) { $product['hotel_wise_data'][$serviceProduct['id_hotel']] = array( 'id_hotel' => $serviceProduct['id_hotel'], @@ -178,6 +179,7 @@ class Blockcart extends Module $product['hotel_wise_data'][$serviceProduct['id_hotel']]['total_price_tax_excl'] += $serviceProduct['total_price_tax_excl']; $product['hotel_wise_data'][$serviceProduct['id_hotel']]['amount'] += $useTax ? $serviceProduct['total_price_tax_incl'] : $serviceProduct['total_price_tax_excl']; $product['hotel_wise_data'][$serviceProduct['id_hotel']]['total_qty'] += $serviceProduct['quantity']; + $nbTotalProducts += (int) $serviceProduct['quantity']; $product['hotel_wise_data'][$serviceProduct['id_hotel']]['options'][] = $serviceProduct; } } @@ -216,11 +218,14 @@ class Blockcart extends Module $tax_cost = 0; $tourismTaxCost = Tools::displayPrice(0, $currency); + $totalTaxesCost = Tools::displayPrice(0, $currency); if ($useTax && $useTax) { $totalToPayWithoutTaxes = $params['cart']->getOrderTotal(false); $tax_cost = Tools::displayPrice(($totalToPay - $totalToPayWithoutTaxes) - $tourismTax, $currency); $tourismTaxCost = Tools::displayPrice($tourismTax, $currency); + $totalTaxesCost = Tools::displayPrice($totalToPay - $totalToPayWithoutTaxes, $currency); } + $showTourismTaxSeparately = (bool) Configuration::get('QLO_TOURISM_TAX_SHOW_SEPARATE'); // The cart content is altered for display $orderProcess = Configuration::get('PS_ORDER_PROCESS_TYPE') ? 'order-opc' : 'order'; foreach ($cart_rules as &$cart_rule) { @@ -273,6 +278,7 @@ class Blockcart extends Module } $objCartBookingData = new HotelCartBookingData(); + $objRoomType = new HotelRoomType(); $addedProduct = false; // get currently added product if exists @@ -304,7 +310,18 @@ class Blockcart extends Module 'cart_default' ); $addedProduct['booking_product'] = $objProduct->booking_product; + $room_info = $objRoomType->getRoomTypeInfoByIdProduct($objProduct->id, $this->context->language->id); + $addedProduct['room_info'] = $room_info; if ($objProduct->booking_product) { + $occupancyRequiredForBooking = false; + if (Configuration::get('PS_FRONT_ROOM_UNIT_SELECTION_TYPE') == HotelBookingDetail::PS_ROOM_UNIT_SELECTION_TYPE_OCCUPANCY) { + $occupancyRequiredForBooking = true; + } + $addedProduct['occupancy_required_for_booking'] = $occupancyRequiredForBooking; + $addedProduct['layer_cart_attribute_label'] = $addedProduct['occupancy_required_for_booking'] + ? sprintf($this->l('%s occupancy'), $room_info['selling_object_name']) + : sprintf($this->l('%s quantity added'), $room_info['selling_object_plural_name']); + $includeTourismTax = ($priceDisplayMethod != PS_TAX_EXC) && (bool) Configuration::get('QLO_TOURISM_TAX_GROSSED_UP'); $price = $addedProduct['price'] = HotelRoomTypeFeaturePricing::getRoomTypeTotalPrice( $objProduct->id, @@ -319,6 +336,7 @@ class Blockcart extends Module 1, $includeTourismTax ); + $addedProduct['layer_cart_room_success_msg'] = sprintf($this->l('%s successfully added to your cart'), $room_info['selling_object_name']); if ($priceDisplayMethod == PS_TAX_EXC) { $addedProduct['price'] = Tools::displayPrice($price['total_price_tax_excl']); } else { @@ -328,34 +346,10 @@ class Blockcart extends Module $addedProduct['date_from'] = Tools::displayDate($addedProduct['date_from'], null, $fullDate); $addedProduct['date_to'] = Tools::displayDate($addedProduct['date_to'], null, $fullDate); } else { + $canSellWithHotel = Product::isSellableWithHotel($objProduct->id); + $canSellStandalone = Product::isSellableAsStandalone($objProduct->id); $includeTourismTax = $useTax && (bool) Configuration::get('QLO_TOURISM_TAX_GROSSED_UP'); - if ($objProduct->selling_preference_type == Product::SELLING_PREFERENCE_STANDALONE) { - $addedProduct['unit_price'] = Product::getServiceProductPrice( - $objProduct->id, - isset($addedProduct['id_product_option']) ? $addedProduct['id_product_option'] : null, - 0, - false, - $useTax, - 1, - null, - null, - false, - null, - 1, - null, - 0, - $includeTourismTax - ); - - if (isset($addedProduct['id_product_option']) - && $addedProduct['id_product_option'] - && Validate::isLoadedObject($productOption = new ServiceProductOption($addedProduct['id_product_option'], $this->context->language->id)) - ) { - $addedProduct['option_name'] = $productOption->name; - } - } elseif ($objProduct->selling_preference_type == Product::SELLING_PREFERENCE_HOTEL_STANDALONE - || $objProduct->selling_preference_type == Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE - ) { + if ($canSellWithHotel && !empty($addedProduct['id_hotel'])) { $addedProduct['unit_price'] = Product::getServiceProductPrice( $objProduct->id, isset($addedProduct['id_product_option']) ? $addedProduct['id_product_option'] : null, @@ -375,6 +369,30 @@ class Blockcart extends Module $objHotel = new HotelBranchInformation($addedProduct['id_hotel'], $this->context->language->id); $addedProduct['hotel_name'] = $objHotel->hotel_name; + if (isset($addedProduct['id_product_option']) + && $addedProduct['id_product_option'] + && Validate::isLoadedObject($productOption = new ServiceProductOption($addedProduct['id_product_option'], $this->context->language->id)) + ) { + $addedProduct['option_name'] = $productOption->name; + } + } elseif ($canSellStandalone) { + $addedProduct['unit_price'] = Product::getServiceProductPrice( + $objProduct->id, + isset($addedProduct['id_product_option']) ? $addedProduct['id_product_option'] : null, + 0, + false, + $useTax, + 1, + null, + null, + false, + null, + 1, + null, + 0, + $includeTourismTax + ); + if (isset($addedProduct['id_product_option']) && $addedProduct['id_product_option'] && Validate::isLoadedObject($productOption = new ServiceProductOption($addedProduct['id_product_option'], $this->context->language->id)) @@ -382,8 +400,11 @@ class Blockcart extends Module $addedProduct['option_name'] = $productOption->name; } } - $addedProduct['price'] = Tools::displayPrice($addedProduct['unit_price'] * $addedProduct['qty']); - $addedProduct['unit_price'] = Tools::displayPrice($addedProduct['unit_price']); + $quantity = $addedProduct['qty']; + $totalPrice = (float) $addedProduct['unit_price']; + $unitPrice = $totalPrice / $quantity; + $addedProduct['price'] = Tools::displayPrice($totalPrice); + $addedProduct['unit_price'] = Tools::displayPrice($unitPrice); } unset($this->context->cookie->currentAddedProduct); } @@ -421,10 +442,12 @@ class Blockcart extends Module 'tax_cost' => $tax_cost, 'tourism_tax_cost' => $tourismTaxCost, 'tourism_tax' => $tourismTax, + 'total_taxes_cost' => $totalTaxesCost, + 'show_tourism_tax_separately' => $showTourismTaxSeparately, 'wrapping_cost' => Tools::displayPrice($wrappingCost, $currency), 'product_total' => Tools::displayPrice($params['cart']->getOrderTotal($useTax, Cart::ONLY_PRODUCTS), $currency), - 'room_total' => ($totalRoomsPrice + $totalAdditionalServicesWithAutoAddPrice), - 'room_total_format' => Tools::displayPrice($totalRoomsPrice + $totalAdditionalServicesWithAutoAddPrice - $totalConvenienceFee), + 'room_total' => ($totalRoomsPrice + $totalAdditionalServicesWithAutoAddPrice + $totalAdditionalServicesWithoutAutoAddPrice), + 'room_total_format' => Tools::displayPrice($totalRoomsPrice + $totalAdditionalServicesWithAutoAddPrice + $totalAdditionalServicesWithoutAutoAddPrice), 'totalToPay' => $totalToPay, 'total_convenience_fee' => $totalConvenienceFee, 'total_convenience_fee_format' => Tools::displayPrice(($totalConvenienceFee), $currency), diff --git a/modules/blockcart/blockcart.tpl b/modules/blockcart/blockcart.tpl index 780140e15..a4227cd3e 100644 --- a/modules/blockcart/blockcart.tpl +++ b/modules/blockcart/blockcart.tpl @@ -63,14 +63,15 @@
    {foreach from=$products key=data_k item='product' name='myLoop'} {* only show products that are booking or global without room *} - {if $product.booking_product || ($product.selling_preference_type == Product::SELLING_PREFERENCE_STANDALONE)|| ($product.selling_preference_type == Product::SELLING_PREFERENCE_HOTEL_STANDALONE) || ($product.selling_preference_type == Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE)} - {if $product.selling_preference_type == Product::SELLING_PREFERENCE_HOTEL_STANDALONE || $product.selling_preference_type == Product::SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE} - {if isset($product.hotel_wise_data) && $product.hotel_wise_data} - {foreach $product.hotel_wise_data as $hotel_wise_data} - {include file="./cartrow.tpl" hotel_wise_data=$hotel_wise_data} - {/foreach} - {/if} - {else} + {if $product.booking_product || Product::isSellableAsStandalone($product.id_product) || Product::isSellableWithHotel($product.id_product)} + {if isset($product.hotel_wise_data) && $product.hotel_wise_data} + {foreach $product.hotel_wise_data as $hotel_wise_data} + {include file="./cartrow.tpl" hotel_wise_data=$hotel_wise_data} + {/foreach} + {/if} + {if $product.booking_product + || (!Product::isSellableWithHotel($product.id_product) && !Product::isSellableWithRoomType($product.id_product)) + || (Product::isSellableAsStandalone($product.id_product) && $product.standalone_total_qty > 0)} {include file="./cartrow.tpl" hotel_wise_data=false} {/if} {/if} @@ -136,7 +137,7 @@ {/if} --> {block name='blockcart_shopping_cart_total_tax'} {if $show_tax && $use_tax} -
    + @@ -144,12 +145,20 @@ {/block} {block name='blockcart_shopping_cart_total_tourism_tax'} {if $show_tax && $use_tax} -

    {l s='Room'}

    {l s='Unit'}

    {l s='Image'} {l s='Duration'} {l s='Occupancy'}
    {l s="Room Num"} {l s="Room Type"}{l s="Hotel"}{l s="Property Name"} {l s="Duration"}
    {l s="Room Type"}{l s="Hotel"}{l s="Property Name"} {l s="Rooms Qty"} {l s="Duration"}
    {l s="Room Image"} {l s="Room Description"}{l s="Room Capcity"}{l s="Room Capacity"} {l s="Unit Price"} {l s="Rooms Qty"} {l s="Check-in Date"}' + price_txt + ' 
    + + {if isset($value.children) && $value.children} + {foreach from=$value.children item=val} + + + + + {/foreach} + {/if} + +
    + {l s={$val.name} mod='hotelreservationsyatem'} + + +
    +
    +
    + + {assign var=i value=$i+1} + {/foreach} + {/if} + + {else} +
    + {l s='No property found to assign features.' mod='hotelreservationsystem'} +
    + {/if} + + \ No newline at end of file diff --git a/modules/hotelreservationsystem/views/templates/admin/hotel_configuration_setting/helpers/view/view.tpl b/modules/hotelreservationsystem/views/templates/admin/hotel_configuration_setting/helpers/view/view.tpl index 42faec4da..069642979 100644 --- a/modules/hotelreservationsystem/views/templates/admin/hotel_configuration_setting/helpers/view/view.tpl +++ b/modules/hotelreservationsystem/views/templates/admin/hotel_configuration_setting/helpers/view/view.tpl @@ -21,7 +21,7 @@ *}
    -

       {l s='Hotel Configuration' mod='hotelreservationsystem'}

    +

       {l s='Property Configuration' mod='hotelreservationsystem'}

    {foreach from=$settings_links item=settings_link}
    @@ -27,7 +27,7 @@ - + @@ -66,13 +66,13 @@ - - + {if $occupancy_required_for_booking} @@ -161,7 +161,7 @@ -
    {l s='Room No.' mod='hotelreservationsystem'}{l s='%s No.' sprintf=$book_v['selling_object_name'] mod='hotelreservationsystem'} {l s='Duration' mod='hotelreservationsystem'} {l s='Message' mod='hotelreservationsystem'} {l s='Allotment Type' mod='hotelreservationsystem'}
    {l s='Duration' mod='hotelreservationsystem'}{l s='Room No.' mod='hotelreservationsystem'}{l s='%s No.' sprintf=$book_v['selling_object_name'] mod='hotelreservationsystem'} {l s='Allotment Type' mod='hotelreservationsystem'}{l s='Guests' mod='hotelreservationsystem'}
    - + @@ -263,7 +263,7 @@
    {l s='Room No.' mod='hotelreservationsystem'}{l s='%s No.' sprintf=$book_v['selling_object_name'] mod='hotelreservationsystem'} {l s='Duration' mod='hotelreservationsystem'} {l s='Order' mod='hotelreservationsystem'} {l s='Message' mod='hotelreservationsystem'}
    - + diff --git a/modules/hotelreservationsystem/views/templates/admin/hotel_rooms_booking/helpers/view/_partials/search-stats.tpl b/modules/hotelreservationsystem/views/templates/admin/hotel_rooms_booking/helpers/view/_partials/search-stats.tpl index 44b27250f..11690bc24 100644 --- a/modules/hotelreservationsystem/views/templates/admin/hotel_rooms_booking/helpers/view/_partials/search-stats.tpl +++ b/modules/hotelreservationsystem/views/templates/admin/hotel_rooms_booking/helpers/view/_partials/search-stats.tpl @@ -63,4 +63,23 @@
    + +
    +
    + + {l s='Available Rooms' mod='hotelreservationsystem'} +
    +
    + + {l s='Partially Available' mod='hotelreservationsystem'} +
    +
    + + {l s='Unavailable Rooms' mod='hotelreservationsystem'} +
    +
    + + {l s='Booked Rooms' mod='hotelreservationsystem'} +
    +
    \ No newline at end of file diff --git a/modules/hotelreservationsystem/views/templates/admin/hotel_rooms_booking/helpers/view/view.tpl b/modules/hotelreservationsystem/views/templates/admin/hotel_rooms_booking/helpers/view/view.tpl index 27259daa9..59e073aa1 100644 --- a/modules/hotelreservationsystem/views/templates/admin/hotel_rooms_booking/helpers/view/view.tpl +++ b/modules/hotelreservationsystem/views/templates/admin/hotel_rooms_booking/helpers/view/view.tpl @@ -42,7 +42,7 @@
    @@ -227,7 +227,7 @@ {else}
    - {l s='No Hotels' mod='hotelreservationsystem'} + {l s='No Properties Available' mod='hotelreservationsystem'}
    diff --git a/modules/hotelreservationsystem/views/templates/admin/order_refund_requests/helpers/view/view.tpl b/modules/hotelreservationsystem/views/templates/admin/order_refund_requests/helpers/view/view.tpl index 0ad8b0641..be4b0e61f 100644 --- a/modules/hotelreservationsystem/views/templates/admin/order_refund_requests/helpers/view/view.tpl +++ b/modules/hotelreservationsystem/views/templates/admin/order_refund_requests/helpers/view/view.tpl @@ -155,7 +155,7 @@ {/if}
    - + @@ -184,7 +184,7 @@ {displayPrice price=($booking['total_price_tax_incl'] + $booking['extra_service_total_price_tax_incl']) currency=$orderCurrency['id']} {capture name='refund_total_tooltip'}
    - + {displayPrice price=$booking['total_price_tax_incl'] currency=$orderCurrency['id']}
    @@ -204,7 +204,7 @@ {displayPrice price=($booking['room_paid_amount'] + $booking['extra_service_total_paid_amount']) currency=$orderCurrency['id']} {capture name='refund_paid_tooltip'}
    - + {displayPrice price=$booking['room_paid_amount'] currency=$orderCurrency['id']}
    @@ -385,7 +385,7 @@
    diff --git a/modules/qloduitkupayment/classes/QdpDuitkuServiceRequest.php b/modules/qloduitkupayment/classes/QdpDuitkuServiceRequest.php index 4e9c94161..19273074b 100644 --- a/modules/qloduitkupayment/classes/QdpDuitkuServiceRequest.php +++ b/modules/qloduitkupayment/classes/QdpDuitkuServiceRequest.php @@ -58,7 +58,6 @@ class QdpDuitkuServiceRequest curl_setopt_array($curl, $options); $request = curl_exec($curl); $httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE); - curl_close($curl); self::logResponse($request); $response = array(); diff --git a/modules/qlohotelreview/controllers/admin/AdminHotelReviewHotelReviewController.php b/modules/qlohotelreview/controllers/admin/AdminHotelReviewHotelReviewController.php index a8e7d9284..79fbb9058 100644 --- a/modules/qlohotelreview/controllers/admin/AdminHotelReviewHotelReviewController.php +++ b/modules/qlohotelreview/controllers/admin/AdminHotelReviewHotelReviewController.php @@ -72,8 +72,8 @@ class AdminHotelReviewHotelReviewController extends ModuleAdminController 'class' => 'fixed-width-xs', ), 'hotel_name' => array( - 'title' => $this->l('Hotel'), - 'hint' => $this->l('Name of the hotel for which this review has been added.'), + 'title' => $this->l('Property Name'), + 'hint' => $this->l('Name of the property for which this review has been added.'), 'align' => 'left', 'callback' => 'getHotelLink', ), diff --git a/modules/qloicsexport/CHANGELOG.txt b/modules/qloicsexport/CHANGELOG.txt deleted file mode 100644 index c02acd381..000000000 --- a/modules/qloicsexport/CHANGELOG.txt +++ /dev/null @@ -1,13 +0,0 @@ ---------------------------------------------------------------- -# V4.0.0 | COMPATIBLE:: QLOAPPS V1.7.x ---------------------------------------------------------------- -# V1.0.3 | COMPATIBLE:: QLOAPPS V1.6.x ---------------------------------------------------------------- -# V1.0.2 | COMPATIBLE:: QLOAPPS V1.5.x, V1.6.x AND V1.7.x ---------------------------------------------------------------- -# V1.0.0 to V1.0.1 | COMPATIBLE:: QLOAPPS V1.5.x, V1.6.x --------------------------------------------------------------- -* [CO] : Added Hotel wise permission while trying to export the data. ---------------------------------------------------------------- -# V1.0.0 | COMPATIBLE:: QLOAPPS V1.5.x, 1.6.x --------------------------------------------------------------- diff --git a/modules/qloicsexport/CustomizationPolicy.txt b/modules/qloicsexport/CustomizationPolicy.txt deleted file mode 100644 index 7a688847f..000000000 --- a/modules/qloicsexport/CustomizationPolicy.txt +++ /dev/null @@ -1,80 +0,0 @@ -1. Definitions --------------- -"Webkul" means Webkul Software Pvt. Ltd. -"Customization" means those services by which functionality / features are added to a product that are not included in the base installation of a product, which are aimed to suit the specific needs of the customer. -"Module" means the custom add-on module to be developed and provided by Webkul to you in accordance with this policy and the Order Form. -"Order Form" means the order form (electronic or hard copy), accepted by Webkul, through which you ordered the Module to be developed and provided by Webkul and which sets out the details, specifications and parameters of the customized Module to be provided. -"Software" means the software licensed by Webkul to you pursuant to the terms and conditions of a Webkul Software License Agreement. - - -2. Module Development ---------------------- -All customization Services and use of the Module are subject to the terms and conditions of Webkul’s Software Licence Agreement, found on Webkul’s website, and are also subject to the terms and conditions set forth in the Order Form, as well as the customization parameters. No other customization services will be provided unless expressly agreed upon by you and Webkul in writing, signed by authorized representatives of you and Webkul. - - -3. Customization Services -------------------------- -Customization Services will be provided in accordance with the terms of the Order Form and subject to the conditions set forth on the Order Form including full payment of all fees and adherence to all time limits and scheduling restrictions. -If expressly stated on the Order Form, the Customization Services and Module shall be subject to acceptance by you in accordance with the acceptance criteria set forth in the Order Form. Where there is no acceptance criteria set forth on the Order Form, acceptance shall be deemed to occur upon the earliest of: -completion of the acceptance criteria, -Webkul's completion of the Customization Services and written notification to you of such completion, -your use of the Module in other than a test environment. -Notwithstanding the foregoing, if acceptance testing, delivery or completion is delayed by thirty (30) days or more for reasons not related to Webkul’s performance, you must pay the value of any milestone that is contingent on acceptance. Such acceptance does not negate any warranty rights that you may have respecting the Module, as set forth herein. You are solely responsible for preparing your facilities and equipment for installation of the Module, where applicable. -Webkul will make reasonable efforts to accommodate your time and deadline requirements with respect to the performance of Customization Services; however, meeting such requirements is subject to availability of resources, both human and equipment at the time of your request and is dependent on your availability to provide input and to perform necessary actions. Webkul shall not be liable in any way for any delay or damage arising from Webkul’s failure to meet such of your requirements or any deadlines. -Any changes to the Customization Services or Module requirements after execution of the Order Form will be subject to a cost and delivery re-assessment, and a written change order or re-quote that has been mutually agreed upon by you and Webkul in writing. Webkul reserves the right to make changes in the design of its Software without the obligation to make equivalent changes to the Module. -If, pursuant to your request, Webkul reviews drawings and documents prepared by others in connection with the Customization Services, including your personnel and other consultants, contractors, and suppliers, Webkul’s review of such drawings and documents shall be only to confirm general compliance with the intent of the design and information given, and shall not constitute acceptance by Webkul of any responsibility for correctness of specifications or details of such drawings and documentation. Webkul shall be entitled to rely on all information provided, and decisions and approvals made, by you in connection with Webkul’s work hereunder. You agree that Webkul and its personnel shall not be subject to any liability or costs relating to the Customization Services to the extent such liability and costs are attributable to any information provided by you that is not complete, accurate or current in all material respects. -The Module, and all parts thereof, shall at all times be treated as Software licensed to you under the terms and conditions of the Licence Agreement. - - -4. Term and Termination ------------------------ -The term of the Development Services, if any, shall be as set out on the Order Form. -Customization Services may be terminated by Webkul immediately upon notice for cause if: -you materially breach any agreement entered into between you and Webkul, including Webkul’s Licence Agreement and/or any User / software license agreement relating to Webkul’s products (or you consistently fail to properly perform and observe your obligations under such agreements or any applicable Webkul Software policy), and you fail to rectify the situation within ten (10) calendar days of notice from Webkul; or -you become insolvent, or a receiver or receiver-manager is appointed for any part of your property, or you make an assignment, proposal or arrangement for the benefit of your creditors or you file an assignment in bankruptcy, or any proceedings under any bankruptcy or insolvency laws are commenced against you. -Webkul shall have the right to terminate Customization Services immediately upon notice to you, without penalty or refund, if any agreement relating to the Software is terminated for any reason. -Each party shall have the right to terminate the Development Services for convenience upon ninety (90) days’ notice to the other party. -Termination of the Customization Services or any agreement shall not affect your payment obligation for any Customization Services performed by Webkul prior to the date of termination, regardless of whether you have had, as at the date of termination, any use of the Module or part thereof. In the event that the Customization Services are terminated prior to the delivery of the Module to you, Webkul shall not be obligated to deliver any work-in-progress or any portion of the Module to you, unless otherwise expressly agreed by the parties in writing. - - -5. Fees -------- -You shall pay fees for the Customization Services and Module license in accordance with the fee schedule set forth in the Order Form. Webkul shall submit invoices to you for all fees and payments due, including applicable expenses, on a monthly basis in arrears. You shall pay to Webkul the full amount of each invoice received from Webkul within seven (7) days of receipt of the invoice. All invoices shall detail the nature of the Customization Services performed, the fees payable, and the basis on which the calculation of the fees has been made. -You are responsible for, and shall pay all taxes relating to the Customization Services and the Module. Unless otherwise indicated, all amounts payable by you under an Order Form are exclusive of any tax, duty, levy, or similar government charge that may be assessed by any jurisdiction, whether based on gross revenue, the delivery, possession or use of the Module, other Software or Customization Services, or otherwise. -If you fail to pay any amount due within thirty (30) days of such payment becoming due and payable, in addition to any other rights and remedies available to Webkul, Webkul shall be entitled to charge interest on all outstanding amounts at the lesser of 18% per annum or the maximum rate permitted by law, such interest commencing as of the due date for such payment. You shall also be responsible for paying for all reasonable fees and costs incurred by Webkul, including legal fees, in collecting any overdue amounts or enforcing any provision of any agreement entered into between you and Webkul. -Pricing is subject to Webkul’s understanding of the project requirements, the terms of this policy and the Order Form. Webkul reserves the right to invoice you for additional Customization Services requested by you, or that are required based on incomplete details or specifications provided by you, that are not specified in the Order Form but are provided by Webkul to you, provided that Webkul provides you with notice that such additional Customization Services are not included in the Order Form and are subject to Webkul’s then current time and materials fee schedule for such Customization Services. Invoices for such additional Customization Services shall be subject to payment in accordance with this Section. - - -6. Intellectual Property Rights -------------------------------- -Webkul shall own all intellectual property rights (whether or not patentable or registrable under copyright, trade-mark or similar legislation or subject to analogous protection) in and to the Module, and all work conceived, created, invented, produced, designed or reduced to practice by Webkul and its personnel as a result of or with respect to any and all Customization Services provided to you. Your rights and obligations relating to the use of the Module shall be governed by the terms of the applicable Webkul Software License Agreement regardless of whether you may have contributed to any Module in any way. The foregoing shall not be deemed to transfer ownership to Webkul of any pre-existing intellectual property rights that you may have in the materials that you provide to Webkul in order to permit Webkul to perform the Customization Services; however, to the extent that you have provided such materials to Webkul, you hereby grant Webkul a non-exclusive, non-transferable, royalty-free license to use all such materials for the purposes of performing the Customization Services and providing you with the Module. - - -7. Limited Warranty and Limitation of Liability ------------------------------------------------ -Limited Warranty: Webkul warrants that all services provided by Webkul shall be provided in a competent, professional manner by persons who are fully trained and qualified to perform the Customization Services. Webkul does not represent or warrant that the Customization Services or Module provided hereunder will be capable of achieving a particular result for your business, or that the operation of the Module will be error free or uninterrupted, or that all errors in the Module can be found or corrected, although Webkul shall use commercially reasonable efforts to do so. Without limiting the foregoing, this warranty is valid only for the six (6) months following the acceptance date as set forth in Section 3(b). The above warranty shall not apply to defects or non-conformities resulting from: -improper or inadequate maintenance or installation of the Module -use of the Module in combination with software, interfaces, or other materials that are not supplied or specifically authorized by Webkul, -unauthorized or improper use or modification of the Module, including use that is not contemplated in the Order Form or instructions provided by Webkul, -abuse, negligence, accident, or other damage from external sources, or -improper preparation of your facilities or equipment for installation and use or the Module. -Limitation of Liability: -save as otherwise provided in a written agreement between you and Webkul, and to the maximum extent permitted by applicable law, Webkul makes no warranty or condition, express or implied, statutory or otherwise, with respect to the module or the Customization services, including, without limitation, the implied warranties or conditions of merchantability and fitness for a particular purpose. -in no event shall Webkul be liable to you or any other person for any indirect, special, punitive, exemplary, consequential or incidental damages (including without limitation, damages for loss of revenues or profits, business interruption, loss of business information, and the like) arising out of the use, inability to use or the performance or non-performance of, the module or the provision of the Customization services, even if Webkul has been advised of the possibility of such damage or claim, or it is foreseeable. -in no event shall Webkul’s maximum aggregate liability to you for direct damages exceed the total amount paid by you for the Customization services performed by Webkul within the six (6) months preceding the date on which the claim arose. - - -8. General Terms and Conditions -------------------------------- -As Webkul is primarily a plugin and app development company and its main focus is on constant plugin development fulfilling various latest requirements and keeping up with the latest trends, Webkul has all the right to release the same customized plugin as a new plugin in future to be available to all its customers. The same may include few or every feature of the customisation. Webkul reserve all the rights to do the same as the customisation done for the client is Intellectual property of Webkul. -The customization undertaken by Webkul would be identical to the discussed requirements, and would not include any sort of additional changes or alterations. Any additional changes or alterations would be considered as a separate project and would be charged separately. -Webkul would be providing customization support for only one month from the delivery of the project. For any further support extended to you, the same shall be charged separately which includes specifically any further help or bug /error fix. -The cost of customization doesn’t include the cost of extension installation or exchange of the extension, if it has not been specifically quoted within the project cost. -During the project customization, you ought not to edit or change any of the files and it is also advisable to have a backup every-time a change is made. If you, on your own, are making certain changes, it is advisable to back up the files, folder and database. Before doing anything on your own, you need to inform Webkul if Webkul is working on the project or your support period is subsisting. -The customization charge will include a single template. Any time during or after the customization if you change the template, you shall be wholly and solely liable for any loss or damage emanating from the same. Webkul will not be responsible for any loss or damage done due to the same. -All the communication will take place through Webkul’s help desk system only. If the need arises, the issues can be discussed via Skype once in week or month. Webkul does not allow screen sharing and remote desktop. -Customization cost will not include any free consulting beyond the scope of the project. -If while making any changes by yourself or by your team, something gets damaged, then Webkul will not be responsible for it. This includes any issues faced by you for your own fault even during the support period of the module or project. -Webkul will not be responsible for any damages during the customization. It is advised that you must have a proper backup management system deployed. -The terms and conditions of this Policy shall be governed by Indian Laws, and the courts in Delhi alone shall only have exclusive jurisdiction to resolve/ adjudicate upon any disputes. -If any dispute arises between webkul and you/Licensee at any time, in connection with the validity, interpretation, implementation or alleged breach of any provision of this Agreement, the same shall be referred to a sole Arbitrator who shall be an independent and neutral third party appointed exclusively by Webkul. You shall not object to the appointment of the Arbitrator so appointed by Webkul. The place of arbitration shall be Delhi, India. The Arbitration & Conciliation Act, 1996 as amended by The Arbitration & Conciliation (Amendment) Act, 2015, shall govern the arbitration proceedings. The arbitration proceedings shall be held in the English language. diff --git a/modules/qloicsexport/LICENSE.txt b/modules/qloicsexport/LICENSE.txt deleted file mode 100644 index 44b1b399c..000000000 --- a/modules/qloicsexport/LICENSE.txt +++ /dev/null @@ -1,223 +0,0 @@ -SOFTWARE LICENCE AGREEMENT -=============================== - -This AGREEMENT is made effective on the date of the purchase of the software between Webkul Software Pvt. Ltd.,Company incorporated under the Companies Act, 1956 (hereinafter referred to as “Licensor"), and the purchaser of the software/ product (hereinafter referred to as "Licensee"). - -Preamble -================== -Licensor is a web and mobile product based organization engaged in the business of developing and marketing software for enterprise level e-commerce businesses. It is an ISO and NSR (NASSCOM) certified organization having a team of more than 150 creative engineers which come from different backgrounds. It has developed more than 700 web extensions and apps in the past few years for open source platforms which are used and trusted globally. Licensee now wishes to obtain license, and Licensor wishes to grant a license, to allow use of the software so purchased in developing the e-commerce business website/ mobile app of the Licensee, subject to the terms and conditions set forth herein. - - -THEREFORE, with the intent to be legally bound, the parties hereby agree as follows: - - -Agreement -================ - -1.Definitions : ------------------- -As used in this Agreement, the following capitalized terms shall have the definitions set forth below: - - -"Derivative Works" are works developed by Licensee, its officers, agents, contractors or employees, which are based upon, in whole or in part, the Source Code and/or the Documentation and may also be based upon and/or incorporate one or more other preexisting works of the Licensor. Derivative Works may be any improvement, revision, modification, translation (including compilation or recapitulation by computer), abridgment, condensation, expansion, or any other form in which such a preexisting work may be recast, transformed, or adapted. For purposes hereof, a Derivative Work shall also include any compilation that incorporates such a preexisting work. - - -"Documentation" is written, printed or otherwise recorded or stored (digital or paper) material relating to the Software and/or Source Code, including technical specifications and instructions for its use including Software/ Source Code annotations and other descriptions of the principles of its operation and instructions for its use. - - -"Improvements" shall mean, with respect to the Software, all modifications and changes made, developed, acquired or conceived after the date hereof and during the entire term of this Agreement. - - -"Source Code" is the computer programming source code form of the Software in the form maintained by the Licensor, and includes all non-third-party executables, libraries, components, and Documentation created or used in the creation, development, maintenance, and support of the Software as well as all updates, error corrections and revisions thereto provided by Licensor, in whole or in part. - - -2. Software License. -------------------------- - -(a)Grant of License. For the consideration set forth below, Licensor hereby grants to Licensee, and Licensee hereby accepts the worldwide, non-exclusive, perpetual, royalty-free rights and licenses set forth below: - - -(i)The right and license to use and incorporate the software, in whole or in part, to develop its website/ mobile app (including the integration of all or part of the Licensor’s software into Licensee's own software) on one domain ( Except Joomla modules , listed on store are entitled to be used on unlimited domain as per the standard guidelines ) only, solely for the own personal or business use of the Licensee. However, the License does not authorize the Licensee to compile, copy or distribute the said Software or its Derivative Works. - - -(ii)The right and license does not authorize the Licensee to make any backup or archival copies of the Software and / or the Source Code and Documentation. - -(iii)The right and license does not authorize the Licensee to migrate the domain license to another domain. - - -(b)Scope; Rights and Responsibilities. - - -(i)Licensor shall enable the Licensee to download one complete copy of the Software. - - -(ii)The Software is intended for the sole use of the Licensee in development of its own website/ mobile app. - - -(iii)Licensee does not have the right to hand over, sell, distribute, sub-license, rent, lease or lend any portion of the Software or Documentation, whether modified or unmodified, to anyone. Licensee should not place the Software on a server so that it becomes accessible via a public network such as the Internet for distribution purposes. In case the Licensee is using any source code management system like github, it can use the code there only when it has paid subscription from such management system. - - -(iv)Licensee is not authorized to appoint, or work with, third parties to perform any development services using the Source Code, the source code to Derivative Works and/or the Documentation on behalf of, or working with, the Licensee. Release of Source Code, Derivative Work source code and/or Documentation to any third party shall be considered as violation of the Agreement, inter-alia entailing forthwith termination and legal action. - - - -(c)Ownership. - - -(i)Software and Source Code. All right, title, copyright, and interest in the Software, Source Code, Software Modifications and Error corrections will be and remain the property of Licensor. - - -(ii)Derivative Works. As creation of Derivative Works by the Licensee is prohibited, thus, all right, title, copyright, and interest in any and/or all Derivative Works and Improvements created by, or on behalf of, Licensee will also be deemed to the property of Licensor. Licensor shall be entitled to protect copyright / intellectual property in all such Derivative Works and Improvements also in any country as it may deem fit including without limitation seeking copyright and/or patent protection. - - -3.Consideration. --------------------- - -(a)Licensee shall pay to Licensor the amount as mentioned on the website from where the order is placed, as one-time, upfront fees in consideration for the licenses and rights granted hereunder (hereinafter referred to as the "License Fee"). The License Fee to be paid by Licensee shall be paid upfront at the time of placing the order, and no credit will be allowed under any circumstances. - - -(b)Once paid, the License Fees shall be non-refundable. The Licensee has fully satisfied itself about the Software and has seen the demonstration, and only thereafter has placed the order. Thus, the License Fees or any part thereof is non-refundable. No claim for refund of the Licence Fees shall be entertained under any circumstances. - - - -4.Representations and Warranties. -------------------------------------- - -(a)Mutual. Each of the parties represents and warrants to the other as follows. - - -(i)such party is a legal entity duly organized, validly existing and in good standing; - - -(ii)such party has the power and authority to conduct its business as presently conducted and to enter into, execute, deliver and perform this Agreement. - - -(iii)This Agreement has been duly and validly accepted by such party and constitutes the legal, valid and binding obligations of such party respectively, enforceable against such party in accordance with their respective terms; - - -(iv)the acceptance, execution, delivery and performance of this Agreement does not and will not violate such party's charter or by-laws; nor require any consent, authorization, approval, exemption or other action by any third party or governmental entity. - - -(b)Licensor warrants that, at the time of purchase of the Software: - - -the Software will function materially as set forth in the website or published functionality provided by Licensor to customers and potential customers describing the Software; and - - -Software add-ons, if purchased by the Licensee from the Licensor, will not materially diminish the features or functions of or the specifications of the Software as they existed as of the execution of this Agreement. - - - -(c)Title. Licensor represents and warrants that it is the exclusive owner of all copyright/ intellectual property in the Software (including the Source Code) and has good and marketable title to the Software (including the Source Code) free and clear of all liens, claims and encumbrances of any nature whatsoever (collectively, "Liens"). Licensor's grant of license and rights to Licensee hereunder does not, and will not infringe any third party's property, intellectual property or personal rights. - - - -5.Term. -------------- - -(a)Subject to Licensee's payment obligations, this Agreement shall commence as on the date of making payment of the Software by the Licensee to the Licensor, and shall continue until terminated by either party. - - -(b)The Licensor retains the right to terminate the license at any time, if the Licensee is not abiding by any of the terms of the Agreement. The Licensee may terminate the Agreement at any time at its own discretion by uninstalling the Software and /or by destroying the said Software (or any copies thereof). However, the Licensee shall not be entitled to seek any refund of the amount paid by it to the Licensor, under any circumstances. - - -(c)Survival. In the event this Agreement is terminated for any reason, the provisions set forth in Sections 2(a), 2(b), and 2(c) shall survive. - - - - -6. Indemnification ----------------------- - -The Licensee release the Licensor from, and agree to indemnify, defend and hold harmless the Licensor (and its officers, directors, employees, agents and Affiliates) against, any claim, loss, damage, settlement, cost, taxes, expense or other liability (including, without limitation, attorneys' fees) (each, a "Claim") arising from or related to: (a) any actual or alleged breach of any obligations in this Agreement; (b) any refund, adjustment, or return of Software,(c) any claim for actual or alleged infringement of any Intellectual Property Rights made by any third party or damages related thereto; or (d) Taxes. - - -7. Limitation of Liability ------------------------------- - -The Licensor will not be liable for any direct, indirect, incidental, special, consequential or exemplary damages, including but not limited to, damages for loss of profits, goodwill, use, data or other intangible losses arising out of or in connection with the Software, whether in contract, warranty, tort etc. (including negligence, software liability, any type of civil responsibility or other theory or otherwise) to the Licensee or any other person for cost of software, cover, recovery or recoupment of any investment made by the Licensee or its affiliates in connection with this Agreement, or for any other loss of profit, revenue, business, or data or punitive or consequential damages arising out of or relating to this Agreement. Further, the aggregate liability of the Licensor, arising out of or in connection with this Agreement or the transactions contemplated hereby will not exceed at any time, or under any circumstances, the total amounts received by the Licensor from the Licensee in connection with the particular software giving rise to the claim. - - -8. Force Majeure ---------------------- - -The Licensor will not be liable for any delay or failure to perform any of its obligations under this Agreement by reasons, events or other matters beyond its reasonable control. - - -9. Relationship of Parties ------------------------------- - -The Licensor and Licensee are independent legal entities, and nothing in this Agreement will be construed to create a partnership, joint venture, association of persons, agency, franchise, sales representative, or employment relationship between the parties. The Licensee will have no authority to make or accept any offers or representations on behalf of the Licensor. The relationship between the parties is that of Licensor and Licensee only, and the rights, duties, liabilities of each party shall be governed by this Agreement. - - -10. Modification ------------------------- - -The Licensor may amend any of the terms and conditions contained in this Agreement at any time and solely at its discretion. Any changes will be effective upon the posting of such changes on the Portal/ website, and the Licensee is responsible for reviewing these changes and informing itself of all applicable changes or notices. The continued use of a software by the Licensee after posting of any changes by the Licensor, will constitute the acceptance of such changes or modifications by the Licensee. - - - -11.Miscellaneous. ------------------------ - -(a)General Provisions. This Agreement: (i) may be amended only by a writing signed by each of the parties; (ii) may be executed in several counterparts, each of which shall be deemed an original but all of which shall constitute one and the same instrument; (iii) contains the entire agreement of the parties with respect to the transactions contemplated hereby and supersedes all prior written and oral agreements, and all contemporaneous oral agreements, relating to such transactions; (iv) shall be governed by, and construed and enforced in accordance with, the laws of India; and (v) shall be binding upon, and inure to the benefit of, the parties and their respective successors and permitted assigns. Each of the parties hereby irrevocably submits to the jurisdiction of the Courts at Delhi, India, for the purposes of any action or proceeding arising out of or relating to this Agreement or the subject matter hereof and brought by any other party. - - -(b)Assignment. Licensee cannot assign, pledge or otherwise transfer, whether by operation of law or otherwise, this Agreement, or any of its obligations hereunder, without the prior written consent of Licensor, which consent shall not be unreasonably withheld. - - -(c)Notices. Unless otherwise specifically provided herein, all notices, consents, requests, demands and other communications required or permitted hereunder: - - -(i)shall be in writing; - - -(ii)shall be sent by messenger, certified or registered mail/email, or reliable express delivery service, to the appropriate address(es) set forth below; and - - -(iii)shall be deemed to have been given on the date of receipt by the addressee, as evidenced by a receipt executed by the addressee (or a responsible person in his or her office), the records of the Party delivering such communication or a notice to the effect that such addressee refused to claim or accept such communication, if sent by messenger, mail or express delivery service. - - -All such communications shall be sent to the following addresses or numbers, or to such other addresses or numbers as any party may inform the others by giving five days' prior notice: - - -If to Webkul Software Pvt. Ltd.: - - - -Webkul Software Pvt. Ltd. - -H-28, ARV Park, Sector 63, NOIDA – 201301, - -Uttar Pradesh, India - - -If to Licensee: - -At the address mentioned by the Licensee - -(at the time of placing order of generating Invoice) - - -(d)Severability. It is the intent of the parties that the provisions of this Agreement be enforced to the fullest extent permissible under the laws and public policies of India in which enforcement hereof is sought. In furtherance of the foregoing, each provision hereof shall be severable from each other provision, and any provision hereof which is/ becomes unenforceable shall be subject to the following: (i) if such provision is contrary to or conflicts with any requirement of any statute, rule or regulation in effect, then such requirement shall be incorporated into, or substituted for, such unenforceable provision to the minimum extent necessary to make such provision enforceable; (ii) the court, agency or arbitrator considering the matter is hereby authorized to (or, if such court, agency or arbitrator is unwilling or fails to do so, then the parties shall) amend such provision to the minimum extent necessary to make such provision enforceable, and the parties hereby consent to the entry of an order so amending such provision; and (iii) if any such provision cannot be or is not reformed and made enforceable pursuant to clause (i) or (ii) above, then such provision shall be ineffective to the minimum extent necessary to make the remainder of this Agreement enforceable. Any application of the foregoing provisions to any provision hereof shall not effect the validity or enforceability of any other provision hereof. - - -(e)By purchasing the Software, the Licensee acknowledge that it has read this Agreement, and that it agrees to the content of the Agreement, its terms and agree to use the Software in compliance with this Agreement. - - -(f)The Licensor holds the sole copyright of the Software. The Software or any portion thereof is a copyrightable matter and is liable to be protected by the applicable laws. Copyright infringement in any manner can lead to prosecution according to the current law. The Licensor reserves the right to revoke the license of any user who is not holding any license or is holding an invalid license. - - -(g)This Agreement gives the right to use only one copy of the Software on one domain solely for the own personal or business use of the Licensee, subject to all the terms and conditions of this Agreement. A separate License has to be purchased for each new Software installation. Any distribution of the Software without the written consent of the Licensor (including non-commercial distribution) is regarded as violation of this Agreement, and will entail immediate termination of the Agreement and may invite liability, both civil and criminal, as per applicable laws. - - -(h)The Licensor reserves the rights to publish a selected list of users/ Licensees of its Software, and no permission of any Licensee is needed in this regard. The Licensee agrees that the Licensor may, in its sole discretion, disclose or make available any information provided or submitted by the Licensee or related to it under this Agreement to any judicial, quasi-judicial, governmental, regulatory or any other authority as may be required by the Licensor to co-operate and / or comply with any of their orders, instructions or directions or to fulfill any requirements under applicable Laws. - - -(i)If the Licensee continues to use the Software even after the sending of the notice by the Licensor for termination, the Licensee agree to accept an injunction to restrain itself from its further use, and to pay all costs (including but not limited to reasonable attorney fees) to enforce injunction or to revoke the License, and any damages suffered by the Licensor because of the misuse of the Software by the Licensee. - - -12. Arbitration ------------------------ - -If any dispute arises between the Licensor and the Licensee at any time, in connection with the validity, interpretation, implementation or alleged breach of any provision of this Agreement, the same shall be referred to a sole Arbitrator who shall be an independent and neutral third party appointed exclusively by the Licensor. The Licensee shall not object to the appointment of the Arbitrator so appointed by the Licensor. The place of arbitration shall be Delhi, India. The Arbitration & Conciliation Act, 1996 as amended by The Arbitration & Conciliation (Amendment) Act, 2015, shall govern the arbitration proceedings. The arbitration proceedings shall be held in the English language. diff --git a/modules/qloicsexport/Readme.md b/modules/qloicsexport/Readme.md deleted file mode 100644 index bf1d8dee5..000000000 --- a/modules/qloicsexport/Readme.md +++ /dev/null @@ -1,49 +0,0 @@ -### User Guide Documentation link: -https://qloapps.com/qloapps-booking-icalendar-ics-file-export/ - -### Support Policy: -https://store.webkul.com/support.html - -### Store link: -https://store.webkul.com/QloApps-Booking-iCalendar.html - -### Explore Modules: -https://store.webkul.com/Qloapps.html - -### Explore Addons: -https://qloapps.com/addons/ - - -**QloApps Booking iCalendar (.ics) File Export 4.0.0** - -- Module V4.0.0 compatible with QloApps version V1.7.x - -- Module V1.0.3 compatible with QloApps version V1.6.x - -- Module V1.0.2 compatible with QloApps version V1.5.x , V1.6.x AND V1.7.x - -- Module V1.0.1 compatible with QloApps version V1.6.x AND V1.5.x - -- Module V1.0.0 compatible with QloApps version V1.6.x AND V1.5.x - - -### Refund Policy: -https://store.webkul.com/refund-policy.html/ - - -## Important Notes: - -For the proper functioning of the module in QloApps 1.7.0., you must update the existing hook parameters in the core file: classes/Mail.php: - -##### Mofify the the following function at line number 417 (may vary) - -Find the existing actionMailAlterMessageBeforeSend hook and replace it with the following version: - -``` -Hook::exec('actionMailAlterMessageBeforeSend', array( - 'template' => &$template, - 'message' => &$email, - 'template_vars' => $template_vars, -)); - -``` \ No newline at end of file diff --git a/modules/qloicsexport/classes/QieIcalHelper.php b/modules/qloicsexport/classes/QieIcalHelper.php deleted file mode 100644 index 00ea3a3c7..000000000 --- a/modules/qloicsexport/classes/QieIcalHelper.php +++ /dev/null @@ -1,267 +0,0 @@ -icalParameters)) { - $filterVal = $this->sanitizeValues($value, $key); - $this->icalProperties[$key] = $filterVal; - } - } - - public function getBookingsICalendarValues($params = array()) - { - $idOrders = array(); - if ($orders = $this->getBookingOrders($params)) { - $idOrders = array_column($orders, 'id_order'); - } - - if ($idOrders) { - $objHtlBooking = new HotelBookingDetail(); - $moduleObj = new QloIcsExport(); - - // Start tags ics file - $icsProperties = array( - 'BEGIN:VCALENDAR', - 'VERSION:2.0', - 'PRODID:-//hacksw/handcal//NONSGML v1.0//EN', - 'CALSCALE:GREGORIAN' - ); - - foreach ($idOrders as $idOrder) { - if ($bookings = $objHtlBooking->getOrderFormatedBookinInfoByIdOrder($idOrder)) { - foreach ($bookings as $booking) { - $icsProperties[] = 'BEGIN:VEVENT'; - - $checkIn = date('Y-m-d', strtotime($booking['date_from'])) . ' ' . - date('H:i:s', strtotime($booking['check_in_time'])); - $this->setProperty('dtstart', $checkIn); - - $checkOut = date('Y-m-d', strtotime($booking['date_to'])) . ' ' . - date('H:i:s', strtotime($booking['check_out_time'])); - $this->setProperty('dtend', $checkOut); - - // description - $objOrder = new Order($booking['id_order']); - $descriptionText = $moduleObj->l('Booking details', 'QieIcalHelper') . ' - \n\n'; - $descriptionText .= $moduleObj->l('Booking Reference', 'QieIcalHelper') . ' : ' . - $objOrder->reference . '\n\n'; - $descriptionText .= $moduleObj->l('Hotel', 'QieIcalHelper') . ' : ' . - $booking['hotel_name'] . '\n\n'; - $descriptionText .= $moduleObj->l('Check-In', 'QieIcalHelper') . ' : ' . - date('d F Y', strtotime($checkIn)) . '\n\n'; - $descriptionText .= $moduleObj->l('Check-Out', 'QieIcalHelper') . ' : ' . - date('d F Y', strtotime($checkOut)) . '\n\n'; - $descriptionText .= $moduleObj->l('Hotel Email', 'QieIcalHelper') . ' : ' . - $booking['email'] . '\n\n'; - $descriptionText .= $moduleObj->l('Hotel Phone', 'QieIcalHelper') . ' : ' . - $booking['phone'] . '\n\n'; - - $descriptionHtml = '

    ' . $moduleObj->l('Booking details', 'QieIcalHelper') . ' - ' . '

    '; - $descriptionHtml .= '

    ' . $moduleObj->l('Booking Reference', 'QieIcalHelper') . ' : ' . - $objOrder->reference . '

    '; - $descriptionHtml .= '

    ' . $moduleObj->l('Hotel', 'QieIcalHelper') . ' : ' . - $booking['hotel_name'] . '

    '; - $descriptionHtml .= '

    ' . $moduleObj->l('Check-In', 'QieIcalHelper') . ' : ' . - date('d F Y', strtotime($checkIn)) . '

    '; - $descriptionHtml .= '

    ' . $moduleObj->l('Check-Out', 'QieIcalHelper') . ' : ' . - date('d F Y', strtotime($checkOut)) . '

    '; - $descriptionHtml .= '

    ' . $moduleObj->l('Hotel Email', 'QieIcalHelper') . ' : ' . - $booking['email'] . '

    '; - $descriptionHtml .= '

    ' . $moduleObj->l('Hotel Phone', 'QieIcalHelper') . ' : ' . - $booking['phone'] . '

    '; - - // add customer name, email and phone number if available - if (Validate::isLoadedObject($objCustomer = new Customer($objOrder->id_customer))) { - if ( - isset($objCustomer->firstname) && $objCustomer->firstname - && isset($objCustomer->lastname) && $objCustomer->lastname - ) { - $descriptionHtml .= '

    ' . $moduleObj->l('Guest Name', 'QieIcalHelper') . ' : ' . - $objCustomer->firstname . ' ' . $objCustomer->lastname . '

    '; - } - - if (isset($objCustomer->email) && $objCustomer->email) { - $descriptionHtml .= '

    ' . $moduleObj->l('Guest Email', 'QieIcalHelper') . ' : ' . - $objCustomer->email . '

    '; - - $descriptionText .= $moduleObj->l('Guest Email', 'QieIcalHelper') . ' : ' . - $objCustomer->email . '\n\n'; - } - - if (isset($objOrder->id_address_delivery) && $objOrder->id_address_delivery) { - if ( - Validate::isLoadedObject( - $objAddress = new Address($objOrder->id_address_delivery) - ) - ) { - if (isset($objAddress->phone_mobile) && $objAddress->phone_mobile) { - $descriptionHtml .= '

    ' . $moduleObj->l('Guest Mobile', 'QieIcalHelper') . - ' : ' . $objAddress->phone_mobile . '

    '; - - $descriptionText .= $moduleObj->l('Guest Mobile', 'QieIcalHelper') . - ' : ' . $objAddress->phone_mobile . '\n\n'; - } - if (isset($objAddress->phone) && $objAddress->phone) { - $descriptionHtml .= '

    ' . $moduleObj->l('Guest Phone', 'QieIcalHelper') . - ' : ' . $objAddress->phone . '

    '; - - $descriptionText .= $moduleObj->l('Guest Phone', 'QieIcalHelper') . - ' : ' . $objAddress->phone . '\n\n'; - } - } - } - } - - $descriptionHtml .= '

    ' . $moduleObj->l('Booking Created On', 'QieIcalHelper') . ' : ' . - date('d F Y', strtotime($booking['date_add'])) . '

    '; - - $this->setProperty('description', $descriptionText); - - // location - $location = $booking['city']; - if ($booking['state']) { - $location .= ', ' . $booking['state']; - } - $location .= ', ' . $booking['country']; - - $this->setProperty('location', $location); - - // summary - $summary = $booking['room_num'] . ', ' . $booking['room_type'] . ', ' . $booking['hotel_name']; - $this->setProperty('summary', $summary); - - $icalProps = array(); - foreach ($this->icalProperties as $key => $value) { - $icalProps[Tools::strtoupper($key . ($key === 'url' ? ';VALUE=URI' : ''))] = $value; - // for html compatible description - if (Tools::strtolower($key) == 'description') { - $icalProps['X-ALT-DESC;FMTTYPE=text/html'] = $descriptionHtml; - } - } - - // set time stamp and uid - $icalProps['DTSTAMP'] = $this->formatDateTime('now'); - $icalProps['UID'] = uniqid(); - - foreach ($icalProps as $key => $value) { - $icsProperties[] = "$key:$value"; - } - - // end ics tags - $icsProperties[] = 'END:VEVENT'; - } - } - } - - $icsProperties[] = 'END:VCALENDAR'; - return implode("\r\n", $icsProperties); - } - - return false; - } - - private function sanitizeValues($value, $key = false) - { - switch ($key) { - case 'dtend': - case 'dtstamp': - case 'dtstart': - $value = $this->formatDateTime($value); - break; - default: - $value = $this->escapeStringChars($value); - } - - return $value; - } - - private function formatDateTime($time) - { - return gmdate('Ymd\THis\Z', strtotime($time)) . ''; - } - - private function escapeStringChars($string) - { - return preg_replace('/([\,;])/', '\\\$1', $string); - } - - // get all booking hotels - public function getBookingHotels() - { - $sql = 'SELECT DISTINCT `id_hotel`, `hotel_name` FROM `' . _DB_PREFIX_ . 'htl_booking_detail`'; - - return Db::getInstance()->executeS($sql); - } - - public function getBookingOrders($params) - { - $sql = 'SELECT DISTINCT `id_order` FROM `' . _DB_PREFIX_ . 'htl_booking_detail` WHERE 1'; - - // check if some filters are there for ics download - if ( - isset($params['date_from']) - && isset($params['date_to']) - && $params['date_from'] - && $params['date_to'] - ) { - $dateFrom = date('Y-m-d', strtotime($params['date_from'])); - $dateTo = date('Y-m-d', strtotime($params['date_to'])); - - $sql .= ' AND `date_from` >= \'' . pSQL($dateFrom) . '\'' . ' AND `date_to` <= \'' . pSQL($dateTo) . '\''; - } - - if (isset($params['hotels']) && $params['hotels']) { - // if all hotels is not selected then add cehck for the hotels - if (!in_array(0, $params['hotels'])) { - $hotels = array_map('intval', $params['hotels']); - $sql .= ' AND `id_hotel` IN (' . implode(',', $hotels) . ')'; - } - } - - if (isset($params['id_order']) && $params['id_order']) { - $sql .= ' AND `id_order` = ' . (int) $params['id_order']; - } - - return Db::getInstance()->executeS($sql); - } - - public function getOrderIdByReference($fullReference) - { - return Db::getInstance()->executeS( - 'SELECT id_order FROM `' . _DB_PREFIX_ . 'orders` - WHERE reference = "' . pSQL($fullReference) . '" ORDER BY id_order ASC' - ); - } -} diff --git a/modules/qloicsexport/classes/index.php b/modules/qloicsexport/classes/index.php deleted file mode 100644 index 1ac4dd02b..000000000 --- a/modules/qloicsexport/classes/index.php +++ /dev/null @@ -1,32 +0,0 @@ -bootstrap = true; - $this->context = Context::getContext(); - - parent::__construct(); - } - - public function postProcess() - { - if (!Tools::getValue('action')) { - $method = Tools::getValue('ics_method'); - if ($method == 'export_order_bookings') { - if ($idOrder = Tools::getValue('id_order')) { - // get bookings ics file from a specific order order - header('Content-Type: text/calendar; charset=utf-8'); - header('Content-Disposition: attachment; filename=qlo_bookings.ics'); - $params = array(); - $params['id_order'] = $idOrder; - $objIcalHelper = new QieIcalHelper(); - echo $objIcalHelper->getBookingsICalendarValues($params); - - exit; - } else { - die(Tools::displayError('The order ID is missing.')); - } - } elseif ($method == 'export_all_bookings') { - // get ics file for all the bookings from all orders - header('Content-Type: text/calendar; charset=utf-8'); - header('Content-Disposition: attachment; filename=qlo_bookings.ics'); - - $objIcalHelper = new QieIcalHelper(); - $params = array(); - $params['date_from'] = Tools::getValue('ics_date_from'); - $params['date_to'] = Tools::getValue('ics_date_to'); - $params['hotels'] = Tools::getValue('ics_hotels'); - echo $objIcalHelper->getBookingsICalendarValues($params); - - exit; - } else { - die(Tools::displayError($this->l('Action is missing.'))); - } - } - - parent::postProcess(); - } - - public function ajaxProcessValidateIcsForm() - { - $result = array(); - $result['status'] = 0; - $result['errors'] = array(); - - $dateFrom = Tools::getValue('ics_date_from'); - $dateTo = Tools::getValue('ics_date_to'); - $hotels = Tools::getValue('ics_hotels'); - - if ($dateFrom || $dateTo) { - if ($dateFrom) { - $dateFrom = date('Y-m-d', strtotime($dateFrom)); - if (!Validate::isDate($dateFrom)) { - $result['errors']['ics_date_from'] = $this->l('Start date is invalid.'); - } - } else { - $result['errors']['ics_date_from'] = $this->l('Start date is invalid.'); - } - - if ($dateTo) { - $dateTo = date('Y-m-d', strtotime($dateTo)); - if (!Validate::isDate($dateTo)) { - $result['errors']['ics_date_to'] = $this->l('End date is invalid.'); - } - } else { - $result['errors']['ics_date_to'] = $this->l('End date is invalid.'); - } - - if ($dateFrom && $dateTo) { - if (strtotime($dateFrom) > strtotime($dateTo)) { - $result['errors']['ics_date_to'] = $this->l('End date is invalid.'); - } - } - } - if (!$hotels) { - $result['errors']['ics_hotels'] = $this->l('Please select atleast one hotel or all hotels from the option.'); - } - $params = array(); - $params['date_from'] = Tools::getValue('ics_date_from'); - $params['date_to'] = Tools::getValue('ics_date_to'); - $params['hotels'] = Tools::getValue('ics_hotels'); - $objIcalHelper = new QieIcalHelper(); - if (!$objIcalHelper->getBookingOrders($params)) { - $result['errors']['ics_no_bookings'] = $this->l('No bookings are available.'); - } - if (!count($result['errors'])) { - $result['status'] = 1; - } - echo Tools::jsonEncode($result); - - die; - } -} diff --git a/modules/qloicsexport/controllers/admin/AdminQloIcsExportConfiguration.php b/modules/qloicsexport/controllers/admin/AdminQloIcsExportConfiguration.php deleted file mode 100644 index f60149f69..000000000 --- a/modules/qloicsexport/controllers/admin/AdminQloIcsExportConfiguration.php +++ /dev/null @@ -1,93 +0,0 @@ -bootstrap = true; - $this->table = 'configuration'; - $this->className = 'Configuration'; - $this->display = 'edit'; - - parent::__construct(); - } - public function initToolbar() - { - parent::initToolbar(); - $this->toolbar_title = $this->l('Configuration'); - } - - public function renderForm() - { - $this->fields_form = array( - 'legend' => array( - 'title' => $this->l('iCal Export Configuration & Import'), - 'icon' => 'icon-cogs' - ), - 'input' => array( - array( - 'type' => 'switch', - 'label' => $this->l('Attach iCal file to order confirmation email'), - 'name' => 'QIE_ATTACH_MAIL', - 'is_bool' => true, - 'desc' => $this->l('If enabled, an .ics file will be attached to the order confirmation email sent to the customer.'), - 'values' => array( - array( - 'id' => 'active_on', - 'value' => 1, - 'label' => $this->l('Enabled') - ), - array( - 'id' => 'active_off', - 'value' => 0, - 'label' => $this->l('Disabled') - ) - ), - ), - ), - 'submit' => array( - 'title' => $this->l('Save'), - 'class' => 'btn btn-default pull-right' - ) - ); - - // Fetch the current value from the configuration table - $this->fields_value = array( - 'QIE_ATTACH_MAIL' => Configuration::get('QIE_ATTACH_MAIL'), - ); - $this->show_form_cancel_button = false; - - return parent::renderForm(); - } - - public function postProcess() - { - if (Tools::isSubmit('submitAddconfiguration')) { - $attachToMail = (int) Tools::getValue('QIE_ATTACH_MAIL'); - Configuration::updateValue('QIE_ATTACH_MAIL', $attachToMail); - Tools::redirectAdmin(self::$currentIndex . '&token=' . $this->token . '&conf=4'); - } - return parent::postProcess(); - } -} \ No newline at end of file diff --git a/modules/qloicsexport/controllers/admin/index.php b/modules/qloicsexport/controllers/admin/index.php deleted file mode 100644 index 1ac4dd02b..000000000 --- a/modules/qloicsexport/controllers/admin/index.php +++ /dev/null @@ -1,32 +0,0 @@ -name = 'qloicsexport'; - $this->tab = 'administration'; - $this->version = '4.0.0'; - $this->author = 'Webkul'; - $this->bootstrap = true; - $this->secure_key = Tools::encrypt($this->name); - $this->ps_versions_compliancy = array('min' => '1.6', 'max' => _PS_VERSION_); - $this->qloapps_versions_compliancy = array('min' => '1.7.0.0', 'max' => _QLOAPPS_VERSION_); - - $this->displayName = 'QloApps Booking iCalendar (.ics) File Export'; - $this->description = $this->l('Using this module, Admin can export bookings iCalendar file in .ics format.'); - - parent::__construct(); - } - - public function registerModuleHooks() - { - return $this->registerHook( - array( - 'displayAdminOrder', - 'displayAdminListBefore', - 'actionAdminControllerSetMedia', - 'actionMailAlterMessageBeforeSend', - ) - ); - } - - public function hookActionMailAlterMessageBeforeSend($params) - { - if (Configuration::get('QIE_ATTACH_MAIL') - && $params['template'] == 'order_conf' - && isset($params['message']) - && isset($params['template_vars']['{order_name}']) - ) { - $emailObject = $params['message']; - $templateVars = isset($params['template_vars']) ? $params['template_vars'] : array(); - $orderUniqRef = $templateVars['{order_name}']; // ex: XQEGPFGRI#1 || XQEGPFGRI#2 - - // 1. Separate the Reference and the Index - $orderUniqRefParts = explode('#', $orderUniqRef); - $orderReference = $orderUniqRefParts[0]; - $orderUniqRefIndex = isset($orderUniqRefParts[1]) ? (int) $orderUniqRefParts[1] : 1; - $objIcalHelper = new QieIcalHelper(); - $objOrder = $objIcalHelper->getOrderIdByReference($orderReference); - if ($objOrder) { - $targetOrderUniqRefIndex = $orderUniqRefIndex - 1; - - if (isset($objOrder[$targetOrderUniqRefIndex]['id_order'])) { - $idOrder = (int) $objOrder[$targetOrderUniqRefIndex]['id_order']; - - $finalIcsContent = $objIcalHelper->getBookingsICalendarValues(array('id_order' => $idOrder)); - - if ($finalIcsContent) { - $filename = 'booking_' . $orderReference . '_' . $orderUniqRefIndex . '.ics'; - $emailObject->attach( - $finalIcsContent, - $filename, - 'text/calendar' - ); - } - } - } - } - } - - public function install() - { - if ( - !parent::install() - || !$this->registerModuleHooks() - || !$this->callInstallTab() - || !Configuration::updateValue('QIE_ATTACH_MAIL', 0) - ) { - return false; - } - return true; - } - - public function callInstallTab() - { - $this->installTab('AdminExportIcalFile', 'order restrict configuration', false, false); - $this->installTab('AdminQloIcsExportConfiguration', $this->l('Ics Export Configuration'), false, false); - - return true; - } - - public function uninstallTab() - { - $moduleTabs = Tab::getCollectionFromModule($this->name); - if (!empty($moduleTabs)) { - foreach ($moduleTabs as $moduleTab) { - $moduleTab->delete(); - } - } - - return true; - } - - public function uninstall() - { - if ( - !parent::uninstall() - || !$this->uninstallTab() - || !$this->deleteConfigKeys() - ) { - return false; - } - - return true; - } - - public function deleteConfigKeys() - { - if (!Configuration::deleteByName('QIE_ATTACH_MAIL')) { - return false; - } - return true; - } - - public function installTab($class_name, $tab_name, $tab_parent_name = false, $need_tab = true) - { - $tab = new Tab(); - $tab->active = 1; - $tab->class_name = $class_name; - $tab->name = array(); - - foreach (Language::getLanguages(true) as $lang) { - $tab->name[$lang['id_lang']] = $tab_name; - } - - if ($tab_parent_name) { - $tab->id_parent = (int) Tab::getIdFromClassName($tab_parent_name); - } elseif (!$need_tab) { - $tab->id_parent = -1; - } else { - $tab->id_parent = 0; - } - - $tab->module = $this->name; - $res = $tab->add(); - - return $res; - } - - public function hookActionAdminControllerSetMedia() - { - if ('AdminOrders' == Tools::getValue('controller')) { - $idOrder = Tools::getValue('id_order'); - $params = array(); - if ($idOrder) { - $params['id_order'] = $idOrder; - } - $objIcalHelper = new QieIcalHelper(); - // show button if bookings are avialable in the system - if ($objIcalHelper->getBookingOrders($params)) { - // add header toolbar button for the ics file download - $toolbarParams = array( - 'desc' => $this->l('Export iCalendar(.ics) File'), - 'icon' => 'process-icon-download', - ); - - if ($idOrder) { - $toolbarParams['href'] = $this->context->link->getAdminLink('AdminExportIcalFile') . - '&id_order=' . $idOrder . '&ics_method=export_order_bookings'; - $toolbarParams['target'] = 1; - $toolbarParams['help'] = $this->l('Export bookings of this order iCalendar file in .ics format.'); - } else { - $toolbarParams['modal_target'] = '#ics-download-form'; - $toolbarParams['help'] = $this->l('Export bookings of all orders iCalendar file in .ics format.'); - // css and js for modal box and validate js - $this->context->controller->addCSS($this->_path . 'views/css/admin/qlo_ics_export.css'); - - Media::addJsDef(array('ctrlLink' => $this->context->link->getAdminLink('AdminExportIcalFile'))); - $this->context->controller->addJS($this->_path . 'views/js/admin/qlo_ics_export.js'); - } - $this->context->controller->page_header_toolbar_btn['ics_download'] = $toolbarParams; - } - } - } - public function getContent() - { - return Tools::redirectAdmin($this->context->link->getAdminLink('AdminQloIcsExportConfiguration')); - } - public function hookDisplayAdminListBefore() - { - if ('AdminOrders' == Tools::getValue('controller') && !Tools::getValue('id_order')) { - $objHotelInfo = new HotelBranchInformation(); - $idsHotel = $objHotelInfo->getProfileAccessedHotels($this->context->employee->id_profile, 1, 1); - if ($idsHotel) { - $hotels = array(); - foreach ($idsHotel as $idHotel) { - $objHotelBranchInfo = new HotelBranchInformation($idHotel, $this->context->language->id); - $hotels[] = array( - 'id_hotel' => (int) $idHotel, - 'hotel_name' => $objHotelBranchInfo->hotel_name - ); - } - array_unshift($hotels, array('id_hotel' => 0, 'hotel_name' => $this->l('All Hotels'))); - $exportLink = $this->context->link->getAdminLink('AdminExportIcalFile'); - - $this->context->smarty->assign( - array( - 'hotels' => $hotels, - 'export_link' => $exportLink, - 'allOrders' => 1 - ) - ); - - return $this->display(__FILE__, 'adminBookingExport.tpl'); - } - } - } -} diff --git a/modules/qloicsexport/upgrade/index.php b/modules/qloicsexport/upgrade/index.php deleted file mode 100644 index 1ac4dd02b..000000000 --- a/modules/qloicsexport/upgrade/index.php +++ /dev/null @@ -1,32 +0,0 @@ -deleteFiles()); -} - -class UpgradeQloIcsExport101 -{ - public function __construct($module = null) - { - if ($module) { - $this->module = $module; - } - } - - public function deleteFiles() - { - $filesToDelete = array( - 'classes/WkIcalHelper.php', - 'views/css/admin/wk_ics_export.css', - 'views/js/admin/wk_ics_export.js' - ); - - foreach ($filesToDelete as $file) { - Tools::deleteFile($this->module->getLocalPath().$file); - } - return true; - } - -} diff --git a/modules/qloicsexport/views/css/admin/index.php b/modules/qloicsexport/views/css/admin/index.php deleted file mode 100644 index 1ac4dd02b..000000000 --- a/modules/qloicsexport/views/css/admin/index.php +++ /dev/null @@ -1,32 +0,0 @@ - - - - icon-calendar - Created with Sketch. - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/modules/qloicsexport/views/img/index.php b/modules/qloicsexport/views/img/index.php deleted file mode 100644 index 1ac4dd02b..000000000 --- a/modules/qloicsexport/views/img/index.php +++ /dev/null @@ -1,32 +0,0 @@ -= checkIn && dmy <= checkOut)) { - return [true, 'in-select-date-range', '']; - } - } - - return [true, '']; -} \ No newline at end of file diff --git a/modules/qloicsexport/views/js/index.php b/modules/qloicsexport/views/js/index.php deleted file mode 100644 index 1ac4dd02b..000000000 --- a/modules/qloicsexport/views/js/index.php +++ /dev/null @@ -1,32 +0,0 @@ - - -
    -{/if} \ No newline at end of file diff --git a/modules/qloicsexport/views/templates/hook/index.php b/modules/qloicsexport/views/templates/hook/index.php deleted file mode 100644 index 1ac4dd02b..000000000 --- a/modules/qloicsexport/views/templates/hook/index.php +++ /dev/null @@ -1,32 +0,0 @@ -execute( + 'UPDATE `'._DB_PREFIX_.'wk_paypal_commerce_order` + SET `pp_payment_status` = "'.pSQL($payment_status).'" + WHERE `pp_transaction_id` = "'.pSQL($transaction_id).'" + ' + ); + } + + public static function updateOrderPaypalOrderStatus($transaction_id, $payment_status, $orderData) + { + return Db::getInstance()->execute( + 'UPDATE `'._DB_PREFIX_.'wk_paypal_commerce_order` + SET `pp_payment_status` = "'.pSQL($payment_status).'", + `response` = "'.pSQL(json_encode($orderData)).'" + WHERE `pp_transaction_id` = "'.pSQL($transaction_id).'" + ' + ); + } + /** * Get currency formatted price * @param float $price diff --git a/modules/qlopaypalcommerce/classes/WkPaypalCommerceDb.php b/modules/qlopaypalcommerce/classes/WkPaypalCommerceDb.php index 1bf8df69e..19a2225ac 100644 --- a/modules/qlopaypalcommerce/classes/WkPaypalCommerceDb.php +++ b/modules/qlopaypalcommerce/classes/WkPaypalCommerceDb.php @@ -2,10 +2,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -18,7 +18,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ class WkPaypalCommerceDb @@ -85,6 +85,14 @@ class WkPaypalCommerceDb 'WK_PAYPAL_COMMERCE_EMAIL', 'WK_PAYPAL_COMMERCE_CLIENT_ID', 'WK_PAYPAL_COMMERCE_CLIENT_SECRET', + 'WK_PAYPAL_COMMERCE_SANDBOX_MERCHANT_ID', + 'WK_PAYPAL_COMMERCE_SANDBOX_EMAIL', + 'WK_PAYPAL_COMMERCE_SANDBOX_CLIENT_ID', + 'WK_PAYPAL_COMMERCE_SANDBOX_CLIENT_SECRET', + 'WK_PAYPAL_COMMERCE_LIVE_MERCHANT_ID', + 'WK_PAYPAL_COMMERCE_LIVE_EMAIL', + 'WK_PAYPAL_COMMERCE_LIVE_CLIENT_ID', + 'WK_PAYPAL_COMMERCE_LIVE_CLIENT_SECRET', 'WK_PAYPAL_COMMERCE_PAYMENT_MODE', 'WK_PAYPAL_COMMERCE_SANDBOX_WEBHOOK_ID', 'WK_PAYPAL_COMMERCE_LIVE_WEBHOOK_ID', @@ -111,21 +119,37 @@ class WkPaypalCommerceDb public function getConfigFieldsValues() { return array( - 'WK_PAYPAL_COMMERCE_MERCHANT_ID' => Tools::getValue( - 'WK_PAYPAL_COMMERCE_MERCHANT_ID', - Configuration::get('WK_PAYPAL_COMMERCE_MERCHANT_ID') + 'WK_PAYPAL_COMMERCE_SANDBOX_MERCHANT_ID' => Tools::getValue( + 'WK_PAYPAL_COMMERCE_SANDBOX_MERCHANT_ID', + Configuration::get('WK_PAYPAL_COMMERCE_SANDBOX_MERCHANT_ID') ), - 'WK_PAYPAL_COMMERCE_EMAIL' => Tools::getValue( - 'WK_PAYPAL_COMMERCE_EMAIL', - Configuration::get('WK_PAYPAL_COMMERCE_EMAIL') + 'WK_PAYPAL_COMMERCE_SANDBOX_EMAIL' => Tools::getValue( + 'WK_PAYPAL_COMMERCE_SANDBOX_EMAIL', + Configuration::get('WK_PAYPAL_COMMERCE_SANDBOX_EMAIL') ), - 'WK_PAYPAL_COMMERCE_CLIENT_ID' => Tools::getValue( - 'WK_PAYPAL_COMMERCE_CLIENT_ID', - Configuration::get('WK_PAYPAL_COMMERCE_CLIENT_ID') + 'WK_PAYPAL_COMMERCE_SANDBOX_CLIENT_ID' => Tools::getValue( + 'WK_PAYPAL_COMMERCE_SANDBOX_CLIENT_ID', + Configuration::get('WK_PAYPAL_COMMERCE_SANDBOX_CLIENT_ID') ), - 'WK_PAYPAL_COMMERCE_CLIENT_SECRET' => Tools::getValue( - 'WK_PAYPAL_COMMERCE_CLIENT_SECRET', - Configuration::get('WK_PAYPAL_COMMERCE_CLIENT_SECRET') + 'WK_PAYPAL_COMMERCE_SANDBOX_CLIENT_SECRET' => Tools::getValue( + 'WK_PAYPAL_COMMERCE_SANDBOX_CLIENT_SECRET', + Configuration::get('WK_PAYPAL_COMMERCE_SANDBOX_CLIENT_SECRET') + ), + 'WK_PAYPAL_COMMERCE_LIVE_MERCHANT_ID' => Tools::getValue( + 'WK_PAYPAL_COMMERCE_LIVE_MERCHANT_ID', + Configuration::get('WK_PAYPAL_COMMERCE_LIVE_MERCHANT_ID') + ), + 'WK_PAYPAL_COMMERCE_LIVE_EMAIL' => Tools::getValue( + 'WK_PAYPAL_COMMERCE_LIVE_EMAIL', + Configuration::get('WK_PAYPAL_COMMERCE_LIVE_EMAIL') + ), + 'WK_PAYPAL_COMMERCE_LIVE_CLIENT_ID' => Tools::getValue( + 'WK_PAYPAL_COMMERCE_LIVE_CLIENT_ID', + Configuration::get('WK_PAYPAL_COMMERCE_LIVE_CLIENT_ID') + ), + 'WK_PAYPAL_COMMERCE_LIVE_CLIENT_SECRET' => Tools::getValue( + 'WK_PAYPAL_COMMERCE_LIVE_CLIENT_SECRET', + Configuration::get('WK_PAYPAL_COMMERCE_LIVE_CLIENT_SECRET') ), 'WK_PAYPAL_COMMERCE_PAYMENT_MODE' => Tools::getValue( 'WK_PAYPAL_COMMERCE_PAYMENT_MODE', diff --git a/modules/qlopaypalcommerce/classes/WkPaypalCommerceHelper.php b/modules/qlopaypalcommerce/classes/WkPaypalCommerceHelper.php index 8d2c0ae85..3ce60de35 100644 --- a/modules/qlopaypalcommerce/classes/WkPaypalCommerceHelper.php +++ b/modules/qlopaypalcommerce/classes/WkPaypalCommerceHelper.php @@ -2,10 +2,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -18,7 +18,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ class WkPaypalCommerceHelper @@ -27,14 +27,24 @@ class WkPaypalCommerceHelper public static function getAccessToken() { $apiResp = array(); - if (Tools::isSubmit('submit_paypal_commerce')) { - $wkClientID = trim(Tools::getValue('WK_PAYPAL_COMMERCE_CLIENT_ID')); - $wkClientSecret = trim(Tools::getValue('WK_PAYPAL_COMMERCE_CLIENT_SECRET')); + if (Tools::isSubmit('btnConfigSubmit')) { $wkEnvironment = Tools::getValue('WK_PAYPAL_COMMERCE_PAYMENT_MODE'); + if ($wkEnvironment == QloPaypalCommerce::WK_PAYPAL_COMMERCE_PAYMENT_MODE_PRODUCTION) { + $wkClientID = trim(Tools::getValue('WK_PAYPAL_COMMERCE_LIVE_CLIENT_ID')); + $wkClientSecret = trim(Tools::getValue('WK_PAYPAL_COMMERCE_LIVE_CLIENT_SECRET')); + } else { + $wkClientID = trim(Tools::getValue('WK_PAYPAL_COMMERCE_SANDBOX_CLIENT_ID')); + $wkClientSecret = trim(Tools::getValue('WK_PAYPAL_COMMERCE_SANDBOX_CLIENT_SECRET')); + } } else { - $wkClientID = trim(Configuration::get('WK_PAYPAL_COMMERCE_CLIENT_ID')); - $wkClientSecret = trim(Configuration::get('WK_PAYPAL_COMMERCE_CLIENT_SECRET')); $wkEnvironment = Configuration::get('WK_PAYPAL_COMMERCE_PAYMENT_MODE'); + if ($wkEnvironment == QloPaypalCommerce::WK_PAYPAL_COMMERCE_PAYMENT_MODE_PRODUCTION) { + $wkClientID = Configuration::get('WK_PAYPAL_COMMERCE_LIVE_CLIENT_ID'); + $wkClientSecret = Configuration::get('WK_PAYPAL_COMMERCE_LIVE_CLIENT_SECRET'); + } else { + $wkClientID = Configuration::get('WK_PAYPAL_COMMERCE_SANDBOX_CLIENT_ID'); + $wkClientSecret = Configuration::get('WK_PAYPAL_COMMERCE_SANDBOX_CLIENT_SECRET'); + } } $base_url = ($wkEnvironment == 'sandbox') ? PayPalHelper::WK_PAYPAL_SANDBOX_URL : PayPalHelper::WK_PAYPAL_LIVE_URL; @@ -60,8 +70,6 @@ class WkPaypalCommerceHelper $response = curl_exec($curl); $err = curl_error($curl); - curl_close($curl); - if ($err) { throw new PrestaShopException(sprintf('cURL Error #: %s', $err)); } else { @@ -84,9 +92,19 @@ class WkPaypalCommerceHelper "alg" => "none" ); $returnData = base64_encode(json_encode($temp)) . '.'; + + $wkEnvironment = Configuration::get('WK_PAYPAL_COMMERCE_PAYMENT_MODE'); + if ($wkEnvironment == QloPaypalCommerce::WK_PAYPAL_COMMERCE_PAYMENT_MODE_PRODUCTION) { + $wkClientID = Configuration::get('WK_PAYPAL_COMMERCE_LIVE_CLIENT_ID'); + $wkMerchantID = Configuration::get('WK_PAYPAL_COMMERCE_LIVE_MERCHANT_ID'); + } else { + $wkClientID = Configuration::get('WK_PAYPAL_COMMERCE_SANDBOX_CLIENT_ID'); + $wkMerchantID = Configuration::get('WK_PAYPAL_COMMERCE_SANDBOX_MERCHANT_ID'); + } + $temp = array( - "iss" => trim(Configuration::get('WK_PAYPAL_COMMERCE_CLIENT_ID')), - "payer_id" => Configuration::get('WK_PAYPAL_COMMERCE_MERCHANT_ID') + "iss" => $wkClientID, + "payer_id" => $wkMerchantID ); $returnData .= base64_encode(json_encode($temp)) . '.'; return $returnData; @@ -156,7 +174,6 @@ class WkPaypalCommerceHelper $response = curl_exec($curl); $err = curl_error($curl); - curl_close($curl); if ($err) { throw new PrestaShopException(sprintf('cURL Error #: %s', $err)); @@ -215,8 +232,6 @@ class WkPaypalCommerceHelper curl_exec($curl); $err = curl_error($curl); - curl_close($curl); - if ($err) { throw new PrestaShopException(sprintf('cURL Error #: %s', $err)); } @@ -255,8 +270,6 @@ class WkPaypalCommerceHelper $response = curl_exec($curl); $err = curl_error($curl); - curl_close($curl); - if ($err) { throw new PrestaShopException(sprintf('cURL Error #: %s', $err)); } else { diff --git a/modules/qlopaypalcommerce/classes/WkPaypalCommerceRefund.php b/modules/qlopaypalcommerce/classes/WkPaypalCommerceRefund.php index 1a0a47bc8..b92c45513 100644 --- a/modules/qlopaypalcommerce/classes/WkPaypalCommerceRefund.php +++ b/modules/qlopaypalcommerce/classes/WkPaypalCommerceRefund.php @@ -2,10 +2,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -18,7 +18,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ class WkPaypalCommerceRefund extends ObjectModel @@ -83,6 +83,14 @@ class WkPaypalCommerceRefund extends ObjectModel ) ); + public static function getIdByPaypalRefundId($paypalRefundId) + { + return Db::getInstance()->getValue( + 'SELECT `id_paypal_commerce_refund` FROM `'._DB_PREFIX_.'wk_paypal_commerce_refund` + WHERE `paypal_refund_id` = "'.pSQL($paypalRefundId).'"' + ); + } + public static function getRefundListByTransID($idTrans) { $refunds = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS( diff --git a/modules/qlopaypalcommerce/classes/WkPaypalCommerceWebhook.php b/modules/qlopaypalcommerce/classes/WkPaypalCommerceWebhook.php index db2b1a837..a707d0a18 100644 --- a/modules/qlopaypalcommerce/classes/WkPaypalCommerceWebhook.php +++ b/modules/qlopaypalcommerce/classes/WkPaypalCommerceWebhook.php @@ -2,10 +2,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -18,21 +18,26 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ class WkPaypalCommerceWebhook { + const WK_PAYPAL_COMMERCE_PAYMENT_STATUS_COMPLETED = 'COMPLETED'; + const WK_PAYPAL_COMMERCE_PAYMENT_STATUS_APPROVED = 'APPROVED'; + const WK_PAYPAL_COMMERCE_PAYMENT_STATUS_PENDING = 'PENDING'; + const WK_PAYPAL_COMMERCE_PAYMENT_STATUS_DENIED = 'DENIED'; + const WK_PAYPAL_COMMERCE_EVENT_TYPE_ORDER_COMPLETED = 'CHECKOUT.ORDER.COMPLETED'; + public function capturePending($eventData) { $transaction_id = $eventData['resource']['id']; - $objPaypalOrder = new WKPayPalCommerceOrder(); - if ($objPaypalOrder->getTransactionDetailsByPaypalTransaction( + if (WKPayPalCommerceOrder::getTransactionDetailsByPaypalTransaction( $transaction_id )) { $ppOrderStatus = $eventData['resource']['status']; - $this->updateOrderCapturePaypalOrderStatus($transaction_id, $ppOrderStatus); + WKPayPalCommerceOrder::updateOrderCapturePaypalOrderStatus($transaction_id, $ppOrderStatus); } } @@ -40,10 +45,7 @@ class WkPaypalCommerceWebhook { $refundID = $eventData['resource']['id']; - $id = Db::getInstance()->getValue( - 'SELECT `id_paypal_commerce_refund` FROM `'._DB_PREFIX_.'wk_paypal_commerce_refund` - WHERE `paypal_refund_id` = "' . pSQL($refundID) .'"' - ); + $id = WkPaypalCommerceRefund::getIdByPaypalRefundId($refundID); $refundObj = new WkPaypalCommerceRefund($id); $refundObj->paypal_refund_id = $refundID; @@ -60,8 +62,7 @@ class WkPaypalCommerceWebhook public function captureDenied($eventData) { $transaction_id = $eventData['resource']['id']; - $objPaypalOrder = new WKPayPalCommerceOrder(); - if ($transactionData = $objPaypalOrder->getTransactionDetailsByPaypalTransaction( + if ($transactionData = WKPayPalCommerceOrder::getTransactionDetailsByPaypalTransaction( $transaction_id )) { $cartID = $transactionData['id_cart']; @@ -76,7 +77,7 @@ class WkPaypalCommerceWebhook } $ppOrderStatus = $eventData['resource']['status']; - $this->updateOrderCapturePaypalOrderStatus($transaction_id, $ppOrderStatus); + WKPayPalCommerceOrder::updateOrderCapturePaypalOrderStatus($transaction_id, $ppOrderStatus); } } @@ -87,14 +88,13 @@ class WkPaypalCommerceWebhook foreach ($purchaseUnits as $purchase) { $transaction_id = $purchase['payments']['captures'][0]['id']; - $objPaypalOrder = new WKPayPalCommerceOrder(); - if ($transactionData = $objPaypalOrder->getTransactionDetailsByPaypalTransaction( + if ($transactionData = WKPayPalCommerceOrder::getTransactionDetailsByPaypalTransaction( $transaction_id )) { // Check if PayPal order is already finished with status COMPLETED - if ($transactionData['pp_payment_status'] != 'COMPLETED') { + if ($transactionData['pp_payment_status'] != self::WK_PAYPAL_COMMERCE_PAYMENT_STATUS_COMPLETED) { // if order completed then change the status of the order - if ($eventData['event_type'] == 'CHECKOUT.ORDER.COMPLETED') { + if ($eventData['event_type'] == self::WK_PAYPAL_COMMERCE_EVENT_TYPE_ORDER_COMPLETED) { $cartID = $transactionData['id_cart']; $objCart = new Cart($cartID); $capturedAmount = isset($purchase['payments']['captures'][0]['amount']['value']) @@ -115,7 +115,7 @@ class WkPaypalCommerceWebhook } } - $this->updateOrderPaypalOrderStatus($transaction_id, $payment_status, $eventData['resource']); + WKPayPalCommerceOrder::updateOrderPaypalOrderStatus($transaction_id, $payment_status, $eventData['resource']); } } } @@ -123,8 +123,7 @@ class WkPaypalCommerceWebhook public function captureCompleted($eventData) { $transaction_id = $eventData['resource']['id']; - $objPaypalOrder = new WKPayPalCommerceOrder(); - if ($transactionData = $objPaypalOrder->getTransactionDetailsByPaypalTransaction( + if ($transactionData = WKPayPalCommerceOrder::getTransactionDetailsByPaypalTransaction( $transaction_id )) { $cartID = $transactionData['id_cart']; @@ -146,7 +145,7 @@ class WkPaypalCommerceWebhook } $ppOrderStatus = $eventData['resource']['status']; - $this->updateOrderCapturePaypalOrderStatus($transaction_id, $ppOrderStatus); + WKPayPalCommerceOrder::updateOrderCapturePaypalOrderStatus($transaction_id, $ppOrderStatus); } } @@ -176,25 +175,4 @@ class WkPaypalCommerceWebhook $orderHistory->addWithemail(true, null); } } - - public function updateOrderCapturePaypalOrderStatus($transaction_id, $payment_status) - { - return Db::getInstance()->execute( - 'UPDATE `'._DB_PREFIX_.'wk_paypal_commerce_order` - SET `pp_payment_status` = "'.pSQL($payment_status).'" - WHERE `pp_transaction_id` = "'.pSQL($transaction_id).'" - ' - ); - } - - public function updateOrderPaypalOrderStatus($transaction_id, $payment_status, $orderData) - { - return Db::getInstance()->execute( - 'UPDATE `'._DB_PREFIX_.'wk_paypal_commerce_order` - SET `pp_payment_status` = "'.pSQL($payment_status).'", - `response` = "'.pSQL(json_encode($orderData)).'" - WHERE `pp_transaction_id` = "'.pSQL($transaction_id).'" - ' - ); - } } diff --git a/modules/qlopaypalcommerce/classes/index.php b/modules/qlopaypalcommerce/classes/index.php index 409280877..8d30901e6 100644 --- a/modules/qlopaypalcommerce/classes/index.php +++ b/modules/qlopaypalcommerce/classes/index.php @@ -2,10 +2,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -18,7 +18,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); diff --git a/modules/qlopaypalcommerce/controllers/admin/AdminPaypalCommerceTransactionController.php b/modules/qlopaypalcommerce/controllers/admin/AdminPaypalCommerceTransactionController.php index 3e8a23b17..2c8412c10 100644 --- a/modules/qlopaypalcommerce/controllers/admin/AdminPaypalCommerceTransactionController.php +++ b/modules/qlopaypalcommerce/controllers/admin/AdminPaypalCommerceTransactionController.php @@ -2,10 +2,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -18,7 +18,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ class AdminPaypalCommerceTransactionController extends ModuleAdminController @@ -30,16 +30,36 @@ class AdminPaypalCommerceTransactionController extends ModuleAdminController $this->bootstrap = true; $this->list_no_link = true; + $this->_new_list_header_design = true; $this->table = 'wk_paypal_commerce_order'; $this->className = 'WKPayPalCommerceOrder'; - $this->_select = 'a.*, CONCAT(c.firstname, \' \', c.lastname) as customer_name, c.email'; + $this->_select = 'a.*, CONCAT(c.firstname, \' \', c.lastname) as customer_name, c.email, + CONCAT("[", GROUP_CONCAT(DISTINCT ord.`id_order`), "]") as id_orders'; + $this->_join = ' LEFT JOIN `' . _DB_PREFIX_ . 'customer` c ON (c.id_customer = a.id_customer)'; + $this->_join .= ' LEFT JOIN `' . _DB_PREFIX_ . 'orders` ord ON (a.`order_reference` = ord.`reference`)'; $this->_where = ' AND a.`id_cart` != 0'; $this->_orderBy = 'id_paypal_commerce_order'; $this->_defaultOrderWay = 'DESC'; + $this->_group = ' GROUP BY a.`id_cart`'; + + $orderBy = Tools::getValue($this->table.'Orderby'); + $orderWay = Tools::getValue($this->table.'Orderway'); + + if (!Validate::isOrderBy($orderBy)) { + $orderBy = 'id_paypal_commerce_order'; // fallback + } + + if (!Validate::isOrderWay($orderWay)) { + $orderWay = 'DESC'; + } + + $this->_orderBy = pSQL($orderBy); + $this->_orderWay = pSQL($orderWay); + $this->toolbar_title = $this->l('PayPal Transactions'); $this->fields_list = array( @@ -47,6 +67,7 @@ class AdminPaypalCommerceTransactionController extends ModuleAdminController 'title' => $this->l('Order Reference'), 'align' => 'center', 'havingFilter' => true, + 'callback' => 'getOrderInfo', 'hint' => $this->l('Order reference in QloApps of the PayPal transaction'), ), 'pp_transaction_id' => array( @@ -80,6 +101,8 @@ class AdminPaypalCommerceTransactionController extends ModuleAdminController 'hint' => $this->l('Payment Status'), 'orderBy' => false, 'hint' => $this->l('Current status of the PayPal transaction.'), + 'callback' => 'getStatus', + 'search' => false, ), 'order_date' => array( 'title' => $this->l('Order Date'), @@ -92,7 +115,61 @@ class AdminPaypalCommerceTransactionController extends ModuleAdminController public function getCustomerInfo($customerName, $row) { - return ''.$customerName.'
    '.'('.$row['email'].')
    '; + $safeCustomerName = Tools::safeOutput($customerName); + $safeEmail = Tools::safeOutput($row['email']); + return ''.$safeCustomerName.'
    '.'('.$safeEmail.')
    '; + } + + public function getOrderInfo($reference, $row) + { + $safeReference = Tools::safeOutput($reference); + $str = $safeReference.'
    ('; + $arrIdOrders = json_decode($row['id_orders']); + if (is_array($arrIdOrders)) { + $arrIdOrders = array_values(array_unique(array_map('intval', $arrIdOrders))); + foreach ($arrIdOrders as $key => $id_order) { + $str .= '#'.$id_order.''; + if ($key < count($arrIdOrders) - 1) { + $str .= ', '; + } + } + } + return $str.')'; + } + + /** + * Renders the "Status" list column as a colored badge for known PayPal + * payment statuses, falling back to plain escaped text for any other value. + * @param string $ppPaymentStatus Raw PayPal payment status stored on the transaction + * @return string HTML for the list cell + */ + public function getStatus($ppPaymentStatus) + { + $statusBadges = array( + WkPaypalCommerceWebhook::WK_PAYPAL_COMMERCE_PAYMENT_STATUS_COMPLETED => array( + 'class' => 'badge-success', + 'label' => $this->l('Completed'), + ), + WkPaypalCommerceWebhook::WK_PAYPAL_COMMERCE_PAYMENT_STATUS_APPROVED => array( + 'class' => 'badge-info', + 'label' => $this->l('Approved'), + ), + WkPaypalCommerceWebhook::WK_PAYPAL_COMMERCE_PAYMENT_STATUS_PENDING => array( + 'class' => 'badge-warning', + 'label' => $this->l('Pending'), + ), + WkPaypalCommerceWebhook::WK_PAYPAL_COMMERCE_PAYMENT_STATUS_DENIED => array( + 'class' => 'badge-danger', + 'label' => $this->l('Denied'), + ), + ); + + if (isset($statusBadges[$ppPaymentStatus])) { + return '' + .$statusBadges[$ppPaymentStatus]['label'].''; + } + + return Tools::safeOutput($ppPaymentStatus); } public function setCurrency($val, $row) @@ -133,47 +210,57 @@ class AdminPaypalCommerceTransactionController extends ModuleAdminController public function renderView() { $idTrans = (int)Tools::getValue('id_paypal_commerce_order'); - if ($idTrans > 0) { + $objPPOrder = new WKPayPalCommerceOrder($idTrans); + if (Validate::isLoadedObject($objPPOrder)) { $smartyVars = array(); $refundData = array(); $totalRefunded = 0; - if ($transactionData = WKPayPalCommerceOrder::getTransactionDetails((int)$idTrans)) { - $orderCurrency = new Currency((int)$transactionData['id_currency']); - $refundData = WkPaypalCommerceRefund::getRefundListByTransID((int)$idTrans); - $totalRefundedFormatted = WkPaypalCommerceRefund::getTotalRefundedAmount((int)$idTrans, true); + $transactionData = WKPayPalCommerceOrder::getTransactionDetails((int)$idTrans); + $orderCurrency = new Currency((int)$transactionData['id_currency']); + $refundData = WkPaypalCommerceRefund::getRefundListByTransID((int)$idTrans); + $totalRefundedFormatted = WkPaypalCommerceRefund::getTotalRefundedAmount((int)$idTrans, true); - $totalRefunded = WkPaypalCommerceRefund::getTotalRefundedAmount((int)$idTrans, false); - $remainingRefund = (float)($transactionData['pp_paid_total'] - $totalRefunded); - $response = Tools::jsonDecode($transactionData['response'], true); + $totalRefunded = WkPaypalCommerceRefund::getTotalRefundedAmount((int)$idTrans, false); + $remainingRefund = (float)($transactionData['pp_paid_total'] - $totalRefunded); + $response = json_decode($transactionData['response'], true); - // Buyer making a payment in a different currency (ex: EUR) which is different from the default currency of merchant (Ex: USD), In all those cross currency cases, After Capture, transaction will fall into Pending state and will require merchant to manually go to his PayPal account and accept the payment. - $objPPOrder = new WKPayPalCommerceOrder(); - if ( - isset($response['data']['purchase_units'][0]['payments']['captures'][0]['status_details']['reason']) - && ($transactionData['pp_payment_status'] == 'PENDING' || $transactionData['pp_payment_status'] == 'DENIED') - && isset($response['data']['purchase_units'][0]['payments']['captures'][0]['status_details']['reason']) - ) { - if (isset($objPPOrder->ppStatusDetail[$response['data']['purchase_units'][0]['payments']['captures'][0]['status_details']['reason']])) { - $smartyVars['ppstatusDetailMsg'] = $objPPOrder->ppStatusDetail[$response['data']['purchase_units'][0]['payments']['captures'][0]['status_details']['reason']]; - } + // Buyer making a payment in a different currency (ex: EUR) which is different from the default currency of merchant (Ex: USD), In all those cross currency cases, After Capture, transaction will fall into Pending state and will require merchant to manually go to his PayPal account and accept the payment. + if (isset($response['data']['purchase_units'][0]['payments']['captures'][0]['status_details']['reason']) + && ($transactionData['pp_payment_status'] == WkPaypalCommerceWebhook::WK_PAYPAL_COMMERCE_PAYMENT_STATUS_PENDING + || $transactionData['pp_payment_status'] == WkPaypalCommerceWebhook::WK_PAYPAL_COMMERCE_PAYMENT_STATUS_DENIED) + ) { + if (isset($objPPOrder->ppStatusDetail[$response['data']['purchase_units'][0]['payments']['captures'][0]['status_details']['reason']])) { + $smartyVars['ppstatusDetailMsg'] = $objPPOrder->ppStatusDetail[$response['data']['purchase_units'][0]['payments']['captures'][0]['status_details']['reason']]; } - - $smartyVars['transaction_url'] = $this->context->link->getAdminLink('AdminPaypalCommerceTransaction',Tools::getAdminTokenLite('AdminPaypalCommerceTransaction')).'&viewwk_paypal_commerce_order&id_paypal_commerce_order=' . (int)$idTrans; - $smartyVars['transaction_data'] = $transactionData; - $smartyVars['refund_data'] = $refundData; - $smartyVars['refunded_amount'] = $totalRefundedFormatted; - $smartyVars['remaining_refund'] = $remainingRefund; - $smartyVars['remaining_refund_format'] = Tools::displayPrice($remainingRefund, $orderCurrency); - $smartyVars['currency'] = $orderCurrency; - $smartyVars['WK_PAYPAL_COMMERCE_REFUND_TYPE_FULL'] = WkPaypalCommerceRefund::WK_PAYPAL_COMMERCE_REFUND_TYPE_FULL; - $smartyVars['WK_PAYPAL_COMMERCE_REFUND_TYPE_PARTIAL'] = WkPaypalCommerceRefund::WK_PAYPAL_COMMERCE_REFUND_TYPE_PARTIAL; - - $this->context->smarty->assign($smartyVars); - $this->base_tpl_view = 'view.tpl'; - return parent::renderView(); - } else { - Tools::redirectAdmin(self::$currentIndex . '&token=' . $this->token); } + + $orderLinks = array(); + if ($transactionData['id_cart']) { + $orders = Order::getByReference($transactionData['order_reference']); + foreach ($orders as $order) { + $orderLinks[] = array( + 'id_order' => (int) $order->id, + 'link' => $this->context->link->getAdminLink('AdminOrders') + . '&id_order=' . (int) $order->id + . '&vieworder', + ); + } + } + + $smartyVars['transaction_data'] = $transactionData; + $smartyVars['order_links'] = $orderLinks; + $smartyVars['refund_data'] = $refundData; + $smartyVars['refunded_amount'] = $totalRefundedFormatted; + $smartyVars['remaining_refund'] = $remainingRefund; + $smartyVars['remaining_refund_format'] = Tools::displayPrice($remainingRefund, $orderCurrency); + $smartyVars['currency'] = $orderCurrency; + $smartyVars['WK_PAYPAL_COMMERCE_REFUND_TYPE_FULL'] = WkPaypalCommerceRefund::WK_PAYPAL_COMMERCE_REFUND_TYPE_FULL; + $smartyVars['WK_PAYPAL_COMMERCE_REFUND_TYPE_PARTIAL'] = WkPaypalCommerceRefund::WK_PAYPAL_COMMERCE_REFUND_TYPE_PARTIAL; + $smartyVars['WK_PAYPAL_COMMERCE_PAYMENT_STATUS_COMPLETED'] = WkPaypalCommerceWebhook::WK_PAYPAL_COMMERCE_PAYMENT_STATUS_COMPLETED; + + $this->context->smarty->assign($smartyVars); + $this->base_tpl_view = 'view.tpl'; + return parent::renderView(); } else { Tools::redirectAdmin(self::$currentIndex . '&token=' . $this->token); } @@ -225,7 +312,7 @@ class AdminPaypalCommerceTransactionController extends ModuleAdminController $postData = array(); $postData['amount'] = array( 'currency_code' => $transactionData['pp_paid_currency'], - 'value' => $refundAmt + 'value' => number_format(Tools::ps_round($refundAmt, 2), 2, '.', '') ); $postData['transaction_id'] = $transactionData['pp_transaction_id']; $postData['refund_reason'] = $refundReason; diff --git a/modules/qlopaypalcommerce/controllers/admin/index.php b/modules/qlopaypalcommerce/controllers/admin/index.php index 409280877..8d30901e6 100644 --- a/modules/qlopaypalcommerce/controllers/admin/index.php +++ b/modules/qlopaypalcommerce/controllers/admin/index.php @@ -2,10 +2,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -18,7 +18,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); diff --git a/modules/qlopaypalcommerce/controllers/front/callback.php b/modules/qlopaypalcommerce/controllers/front/callback.php index 89aac427d..f408f90db 100644 --- a/modules/qlopaypalcommerce/controllers/front/callback.php +++ b/modules/qlopaypalcommerce/controllers/front/callback.php @@ -2,10 +2,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -18,7 +18,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ class QloPaypalCommerceCallbackModuleFrontController extends ModuleFrontController diff --git a/modules/qlopaypalcommerce/controllers/front/errorpayment.php b/modules/qlopaypalcommerce/controllers/front/errorpayment.php index a54ab7adf..657e701c7 100644 --- a/modules/qlopaypalcommerce/controllers/front/errorpayment.php +++ b/modules/qlopaypalcommerce/controllers/front/errorpayment.php @@ -2,10 +2,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -18,7 +18,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ class QloPaypalCommerceErrorpaymentModuleFrontController extends ModuleFrontController diff --git a/modules/qlopaypalcommerce/controllers/front/index.php b/modules/qlopaypalcommerce/controllers/front/index.php index 409280877..8d30901e6 100644 --- a/modules/qlopaypalcommerce/controllers/front/index.php +++ b/modules/qlopaypalcommerce/controllers/front/index.php @@ -2,10 +2,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -18,7 +18,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); diff --git a/modules/qlopaypalcommerce/controllers/front/payment.php b/modules/qlopaypalcommerce/controllers/front/payment.php index c151fd52e..8f9823fc3 100644 --- a/modules/qlopaypalcommerce/controllers/front/payment.php +++ b/modules/qlopaypalcommerce/controllers/front/payment.php @@ -2,10 +2,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -18,11 +18,15 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ class QloPaypalCommercePaymentModuleFrontController extends ModuleFrontController { + const WK_PAYPAL_COMMERCE_ACTION_CREATE_ORDER = 1; + const WK_PAYPAL_COMMERCE_ACTION_CAPTURE_ORDER = 2; + const WK_PAYPAL_COMMERCE_ACTION_CANCELLED = 3; + public function init() { parent::init(); @@ -61,13 +65,13 @@ class QloPaypalCommercePaymentModuleFrontController extends ModuleFrontControlle parent::initContent(); if ($this->module->secure_key != Tools::getValue('token')) { - die('Invalid token.'); + die($this->module->l('Invalid token.', 'payment')); } if (Tools::isSubmit('action')) { $action = (int)Tools::getValue('action'); switch ($action) { - case 1: + case self::WK_PAYPAL_COMMERCE_ACTION_CREATE_ORDER: $json = Tools::file_get_contents('php://input'); $orderDetails = json_decode($json, true); @@ -94,7 +98,7 @@ class QloPaypalCommercePaymentModuleFrontController extends ModuleFrontControlle WkPaypalCommerceHelper::logMsg('payment', json_encode($ppOrderData)); die(json_encode($ppOrderData)); - case 2: + case self::WK_PAYPAL_COMMERCE_ACTION_CAPTURE_ORDER: $json = Tools::file_get_contents('php://input'); $orderData = json_decode($json, true); @@ -122,9 +126,18 @@ class QloPaypalCommercePaymentModuleFrontController extends ModuleFrontControlle // Payment success $paypalOrderID = $returnData['data']['id']; - // Save order data - $transaction_id = $this->saveOrderData($returnData); - if ($paypalOrderID) { + $paymentStatus = ''; + + if (isset($returnData['data']['purchase_units'][0]['payments']['captures'][0]['status'])) { + $paymentStatus = $returnData['data']['purchase_units'][0]['payments']['captures'][0]['status']; + } + + $paypalOrderCartId = isset($returnData['data']['purchase_units'][0]['custom_id']) ? $returnData['data']['purchase_units'][0]['custom_id'] : null; + $belongsToCurrentCart = ((int) $paypalOrderCartId === (int) $cart->id); + + if ($paypalOrderID && $paymentStatus == WkPaypalCommerceWebhook::WK_PAYPAL_COMMERCE_PAYMENT_STATUS_COMPLETED && $belongsToCurrentCart) { + // Save order data + $this->saveOrderData($returnData); $currency = $this->context->currency; // Order status/amount must reflect what PayPal actually captured, // not the cart's is_advance_payment flag (still editable by the @@ -135,7 +148,7 @@ class QloPaypalCommercePaymentModuleFrontController extends ModuleFrontControlle $isFullyPaid = $capturedAmount >= $fullTotal; // set order status - if ($returnData['data']['status'] == 'COMPLETED') { + if ($returnData['data']['status'] == WkPaypalCommerceWebhook::WK_PAYPAL_COMMERCE_PAYMENT_STATUS_COMPLETED) { $orderStatus = $isFullyPaid ? Configuration::get('PS_OS_PAYMENT_ACCEPTED') : Configuration::get('PS_OS_PARTIAL_PAYMENT_ACCEPTED'); @@ -143,7 +156,11 @@ class QloPaypalCommercePaymentModuleFrontController extends ModuleFrontControlle $orderStatus = Configuration::get('PS_OS_AWAITING_PAYMENT'); } - $extraVars['transaction_id'] = $transaction_id; + $transactionId = ''; + if (isset($returnData['data']['purchase_units'][0]['payments']['captures'][0]['id'])) { + $transactionId = $returnData['data']['purchase_units'][0]['payments']['captures'][0]['id']; + } + $extraVars = array('transaction_id' => $transactionId); // create order for the payment $this->module->validateOrder( $cart->id, @@ -181,6 +198,12 @@ class QloPaypalCommercePaymentModuleFrontController extends ModuleFrontControlle ); Tools::redirect($orderLink); } else { + if ($paypalOrderID && $paymentStatus == WkPaypalCommerceWebhook::WK_PAYPAL_COMMERCE_PAYMENT_STATUS_COMPLETED && !$belongsToCurrentCart) { + WkPaypalCommerceHelper::logMsg( + 'payment', + 'PayPal order/cart mismatch. Expected cart: '.$cart->id.', PayPal custom_id: '.$paypalOrderCartId + ); + } WkPaypalCommerceHelper::logMsg('payment', 'Payment status'. $returnData['data']['status']); WkPaypalCommerceHelper::logMsg('payment', '--------------', true); Tools::redirect('index.php?controller=order&step=1'); @@ -208,7 +231,7 @@ class QloPaypalCommercePaymentModuleFrontController extends ModuleFrontControlle } } break; - case 3: + case self::WK_PAYPAL_COMMERCE_ACTION_CANCELLED: WkPaypalCommerceHelper::logMsg('payment', 'Payment cancelled by customer...', true); WkPaypalCommerceHelper::logMsg('payment', json_encode(Tools::getAllValues())); WkPaypalCommerceHelper::logMsg('payment', '--------------', true); @@ -226,14 +249,13 @@ class QloPaypalCommercePaymentModuleFrontController extends ModuleFrontControlle // Save order data private function saveOrderData($orderData) { - $transaction_id = ''; if ($orderData) { $purchaseUnits = $orderData['data']['purchase_units']; foreach ($purchaseUnits as $purchase) { - $transaction_id = $purchase['payments']['captures'][0]['id']; - $payment_status = $purchase['payments']['captures'][0]['status']; - $payment_total = $purchase['payments']['captures'][0]['amount']['value']; - $payment_curr = $purchase['payments']['captures'][0]['amount']['currency_code']; + $transactionId = $purchase['payments']['captures'][0]['id']; + $paymentStatus = $purchase['payments']['captures'][0]['status']; + $paymentTotal = $purchase['payments']['captures'][0]['amount']['value']; + $paymentCurrency = $purchase['payments']['captures'][0]['amount']['currency_code']; $cart = $this->context->cart; $currency = Currency::getCurrency((int) $cart->id_currency); @@ -255,19 +277,21 @@ class QloPaypalCommercePaymentModuleFrontController extends ModuleFrontControlle $orderObj->checkout_currency = $currency['iso_code']; // PayPal Returned Data - $orderObj->pp_paid_total = (float)$payment_total; - $orderObj->pp_paid_currency = $payment_curr; + $orderObj->pp_paid_total = (float)$paymentTotal; + $orderObj->pp_paid_currency = $paymentCurrency; $orderObj->pp_reference_id = $purchase['reference_id']; $orderObj->pp_order_id = $orderData['data']['id']; - $orderObj->pp_transaction_id = $transaction_id; - $orderObj->pp_payment_status = $payment_status; + $orderObj->pp_transaction_id = $transactionId; + $orderObj->pp_payment_status = $paymentStatus; $orderObj->response = json_encode($orderData); $orderObj->order_date = date('Y-m-d H:i:s'); $orderObj->save(); } + + return true; } - return $transaction_id; + return false; } // Create order data to send to PayPal @@ -290,17 +314,17 @@ class QloPaypalCommercePaymentModuleFrontController extends ModuleFrontControlle ); // address is not required in paypal payment, if customer has added an address then we add tha address to paypal payer object - if ($bilAddr = $ppHelper->getSimpleAddress( + if ($billingAddress = $ppHelper->getSimpleAddress( (int)$cart->id_customer, (int)$cart->id_address_invoice )) { $orderData['payer']['address'] = array( - 'address_line_1' => $bilAddr['address1'], - 'address_line_2' => $bilAddr['address2'], - 'admin_area_2' => $bilAddr['city'], - 'admin_area_1' => $bilAddr['state_iso'], - 'postal_code' => $bilAddr['postcode'], - 'country_code' => $bilAddr['country_iso'], + 'address_line_1' => $billingAddress['address1'], + 'address_line_2' => $billingAddress['address2'], + 'admin_area_2' => $billingAddress['city'], + 'admin_area_1' => $billingAddress['state_iso'], + 'postal_code' => $billingAddress['postcode'], + 'country_code' => $billingAddress['country_iso'], ); } @@ -339,27 +363,27 @@ class QloPaypalCommercePaymentModuleFrontController extends ModuleFrontControlle $orderData['purchase_units'][0]['amount'] = array( 'currency_code' => $currency['iso_code'], - 'value' => Tools::ps_round($cartTotalAmountTI, 2), + 'value' => number_format(Tools::ps_round($cartTotalAmountTI, 2), 2, '.', ''), 'breakdown' => array( 'item_total' => array( 'currency_code' => $currency['iso_code'], - 'value' => Tools::ps_round($itemTotalAmountTE, 2), + 'value' => number_format(Tools::ps_round($itemTotalAmountTE, 2), 2, '.', ''), ), 'shipping' => array( 'currency_code' => $currency['iso_code'], - 'value' => 0, + 'value' => '0.00', ), 'shipping_discount' => array( 'currency_code' => $currency['iso_code'], - 'value' => 0, + 'value' => '0.00', ), 'tax_total' => array( 'currency_code' => $currency['iso_code'], - 'value' => Tools::ps_round(($itemTotalAmountTI - $itemTotalAmountTE), 2), + 'value' => number_format(Tools::ps_round(($itemTotalAmountTI - $itemTotalAmountTE), 2), 2, '.', ''), ), 'discount' => array( 'currency_code' => $currency['iso_code'], - 'value' => Tools::ps_round($discountTI, 2), + 'value' => number_format(Tools::ps_round($discountTI, 2), 2, '.', ''), ), ) ); @@ -368,8 +392,10 @@ class QloPaypalCommercePaymentModuleFrontController extends ModuleFrontControlle // $items = $ppHelper->getPaypalOrderItemDetails($cart->id); // $orderData['purchase_units'][0]['items'] = array_values($items); + $wkEnvironment = Configuration::get('WK_PAYPAL_COMMERCE_PAYMENT_MODE'); + $merchantId = ($wkEnvironment == QloPaypalCommerce::WK_PAYPAL_COMMERCE_PAYMENT_MODE_PRODUCTION) ? Configuration::get('WK_PAYPAL_COMMERCE_LIVE_MERCHANT_ID') : Configuration::get('WK_PAYPAL_COMMERCE_SANDBOX_MERCHANT_ID'); $orderData['purchase_units'][0]['payee'] = array( - 'merchant_id' => Configuration::get('WK_PAYPAL_COMMERCE_MERCHANT_ID') + 'merchant_id' => $merchantId ); $orderData['application_context'] = array( @@ -379,13 +405,4 @@ class QloPaypalCommercePaymentModuleFrontController extends ModuleFrontControlle return $orderData; } - - /** - * getPriceDecimalPrecision - * @return void - */ - private function getPriceDecimalPrecision() - { - return _PS_PRICE_COMPUTE_PRECISION_; - } } \ No newline at end of file diff --git a/modules/qlopaypalcommerce/controllers/front/webhook.php b/modules/qlopaypalcommerce/controllers/front/webhook.php index 8315afd89..db62cd7f8 100644 --- a/modules/qlopaypalcommerce/controllers/front/webhook.php +++ b/modules/qlopaypalcommerce/controllers/front/webhook.php @@ -2,10 +2,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -18,7 +18,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ class QloPaypalCommerceWebhookModuleFrontController extends ModuleFrontController diff --git a/modules/qlopaypalcommerce/controllers/index.php b/modules/qlopaypalcommerce/controllers/index.php index 409280877..8d30901e6 100644 --- a/modules/qlopaypalcommerce/controllers/index.php +++ b/modules/qlopaypalcommerce/controllers/index.php @@ -2,10 +2,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -18,7 +18,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); diff --git a/modules/qlopaypalcommerce/index.php b/modules/qlopaypalcommerce/index.php index 409280877..8d30901e6 100644 --- a/modules/qlopaypalcommerce/index.php +++ b/modules/qlopaypalcommerce/index.php @@ -2,10 +2,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -18,7 +18,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); diff --git a/modules/qlopaypalcommerce/libs/Helpers/HttpHelper.php b/modules/qlopaypalcommerce/libs/Helpers/HttpHelper.php index f3c42b7ce..293ef64e1 100644 --- a/modules/qlopaypalcommerce/libs/Helpers/HttpHelper.php +++ b/modules/qlopaypalcommerce/libs/Helpers/HttpHelper.php @@ -2,10 +2,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -18,7 +18,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ class HttpHelper { @@ -30,10 +30,6 @@ class HttpHelper { $this->_initCurl(); } - public function __destruct() { - curl_close($this->_curl); - } - private function _initCurl() { if(!function_exists('curl_version')) { trigger_error("Curl not available", E_USER_ERROR); diff --git a/modules/qlopaypalcommerce/libs/Helpers/PayPalHelper.php b/modules/qlopaypalcommerce/libs/Helpers/PayPalHelper.php index c8735946a..7c1e6bb37 100644 --- a/modules/qlopaypalcommerce/libs/Helpers/PayPalHelper.php +++ b/modules/qlopaypalcommerce/libs/Helpers/PayPalHelper.php @@ -2,10 +2,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -18,7 +18,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ include_once(dirname(__FILE__) . '/HttpHelper.php'); @@ -67,7 +67,14 @@ class PayPalHelper { $this->_setDefaultHeaders(); $this->_setAPIVersion('1'); $this->_http->setUrl($this->_createApiUrl("oauth2/token")); - $this->_http->setAuthentication(Configuration::get('WK_PAYPAL_COMMERCE_CLIENT_ID') . ":" . Configuration::get('WK_PAYPAL_COMMERCE_CLIENT_SECRET')); + if (self::isSanboxEnvironment()) { + $wkClientId = trim(Configuration::get('WK_PAYPAL_COMMERCE_SANDBOX_CLIENT_ID')); + $wkClientSecret = trim(Configuration::get('WK_PAYPAL_COMMERCE_SANDBOX_CLIENT_SECRET')); + } else { + $wkClientId = trim(Configuration::get('WK_PAYPAL_COMMERCE_LIVE_CLIENT_ID')); + $wkClientSecret = trim(Configuration::get('WK_PAYPAL_COMMERCE_LIVE_CLIENT_SECRET')); + } + $this->_http->setAuthentication($wkClientId . ":" . $wkClientSecret); $this->_http->setBody("grant_type=client_credentials"); $returnData = $this->_http->sendRequest(); $this->_token = $returnData['access_token']; diff --git a/modules/qlopaypalcommerce/libs/Helpers/index.php b/modules/qlopaypalcommerce/libs/Helpers/index.php index 150f23072..80123c370 100644 --- a/modules/qlopaypalcommerce/libs/Helpers/index.php +++ b/modules/qlopaypalcommerce/libs/Helpers/index.php @@ -2,10 +2,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -18,7 +18,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); diff --git a/modules/qlopaypalcommerce/libs/Orders.php b/modules/qlopaypalcommerce/libs/Orders.php index c84426caf..ec9dbd6cf 100644 --- a/modules/qlopaypalcommerce/libs/Orders.php +++ b/modules/qlopaypalcommerce/libs/Orders.php @@ -2,10 +2,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -18,7 +18,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ include_once(dirname(__FILE__) . '/Helpers/PayPalHelper.php'); diff --git a/modules/qlopaypalcommerce/libs/PayPalCommerce.php b/modules/qlopaypalcommerce/libs/PayPalCommerce.php index a32ea2a4b..602f39588 100644 --- a/modules/qlopaypalcommerce/libs/PayPalCommerce.php +++ b/modules/qlopaypalcommerce/libs/PayPalCommerce.php @@ -2,10 +2,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -18,7 +18,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ include_once(dirname(__FILE__) . '/Orders.php'); diff --git a/modules/qlopaypalcommerce/libs/index.php b/modules/qlopaypalcommerce/libs/index.php index 150f23072..80123c370 100644 --- a/modules/qlopaypalcommerce/libs/index.php +++ b/modules/qlopaypalcommerce/libs/index.php @@ -2,10 +2,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -18,7 +18,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); diff --git a/modules/qlopaypalcommerce/log/index.php b/modules/qlopaypalcommerce/log/index.php index 150f23072..80123c370 100644 --- a/modules/qlopaypalcommerce/log/index.php +++ b/modules/qlopaypalcommerce/log/index.php @@ -2,10 +2,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -18,7 +18,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); diff --git a/modules/qlopaypalcommerce/qlopaypalcommerce.php b/modules/qlopaypalcommerce/qlopaypalcommerce.php index 1418f382a..f57622330 100644 --- a/modules/qlopaypalcommerce/qlopaypalcommerce.php +++ b/modules/qlopaypalcommerce/qlopaypalcommerce.php @@ -2,10 +2,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -18,7 +18,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ if (!defined('_PS_VERSION_')) { @@ -29,10 +29,23 @@ require_once dirname(__FILE__).'/classes/WkClassInclude.php'; class QloPaypalCommerce extends PaymentModule { + const WK_PAYPAL_COMMERCE_PAYMENT_MODE_SANDBOX = 'sandbox'; + const WK_PAYPAL_COMMERCE_PAYMENT_MODE_PRODUCTION = 'production'; + private $html = ''; private $postErrors = array(); private $token = ''; + private $sandboxMerchantId = ''; + private $sandboxEmail = ''; + private $sandboxClientId = ''; + private $sandboxClientSecret = ''; + + private $liveMerchantId = ''; + private $liveEmail = ''; + private $liveClientId = ''; + private $liveClientSecret = ''; + public $ppMode; public $merchantId; public $paypalEmail; @@ -49,7 +62,8 @@ class QloPaypalCommerce extends PaymentModule $this->bootstrap = true; $this->secure_key = Tools::encrypt($this->name); $this->html = ''; - $this->ps_versions_compliancy = array('min' => '1.6', 'max' => '1.6'); + $this->ps_versions_compliancy = array('min' => '1.6', 'max' => _PS_VERSION_); + $this->qloapps_versions_compliancy = array('min' => '1.6', 'max' => _QLOAPPS_VERSION_); $this->displayName = $this->l('QloApps PayPal Checkout'); @@ -72,26 +86,47 @@ class QloPaypalCommerce extends PaymentModule $config = Configuration::getMultiple(array( 'WK_PAYPAL_COMMERCE_PAYMENT_MODE', - 'WK_PAYPAL_COMMERCE_MERCHANT_ID', - 'WK_PAYPAL_COMMERCE_EMAIL', - 'WK_PAYPAL_COMMERCE_CLIENT_ID', - 'WK_PAYPAL_COMMERCE_CLIENT_SECRET' + 'WK_PAYPAL_COMMERCE_SANDBOX_MERCHANT_ID', + 'WK_PAYPAL_COMMERCE_SANDBOX_EMAIL', + 'WK_PAYPAL_COMMERCE_SANDBOX_CLIENT_ID', + 'WK_PAYPAL_COMMERCE_SANDBOX_CLIENT_SECRET', + 'WK_PAYPAL_COMMERCE_LIVE_MERCHANT_ID', + 'WK_PAYPAL_COMMERCE_LIVE_EMAIL', + 'WK_PAYPAL_COMMERCE_LIVE_CLIENT_ID', + 'WK_PAYPAL_COMMERCE_LIVE_CLIENT_SECRET', )); if (!empty($config['WK_PAYPAL_COMMERCE_PAYMENT_MODE'])) { $this->ppMode = $config['WK_PAYPAL_COMMERCE_PAYMENT_MODE']; } - if (!empty($config['WK_PAYPAL_COMMERCE_MERCHANT_ID'])) { - $this->merchantId = $config['WK_PAYPAL_COMMERCE_MERCHANT_ID']; - } - if (!empty($config['WK_PAYPAL_COMMERCE_EMAIL'])) { - $this->paypalEmail = $config['WK_PAYPAL_COMMERCE_EMAIL']; - } - if (!empty($config['WK_PAYPAL_COMMERCE_CLIENT_ID'])) { - $this->clientId = $config['WK_PAYPAL_COMMERCE_CLIENT_ID']; - } - if (!empty($config['WK_PAYPAL_COMMERCE_CLIENT_SECRET'])) { - $this->clientSecret = $config['WK_PAYPAL_COMMERCE_CLIENT_SECRET']; + $mode = $this->ppMode ? $this->ppMode : self::WK_PAYPAL_COMMERCE_PAYMENT_MODE_SANDBOX; + + if ($mode == self::WK_PAYPAL_COMMERCE_PAYMENT_MODE_PRODUCTION) { + if (!empty($config['WK_PAYPAL_COMMERCE_LIVE_MERCHANT_ID'])) { + $this->merchantId = $config['WK_PAYPAL_COMMERCE_LIVE_MERCHANT_ID']; + } + if (!empty($config['WK_PAYPAL_COMMERCE_LIVE_EMAIL'])) { + $this->paypalEmail = $config['WK_PAYPAL_COMMERCE_LIVE_EMAIL']; + } + if (!empty($config['WK_PAYPAL_COMMERCE_LIVE_CLIENT_ID'])) { + $this->clientId = $config['WK_PAYPAL_COMMERCE_LIVE_CLIENT_ID']; + } + if (!empty($config['WK_PAYPAL_COMMERCE_LIVE_CLIENT_SECRET'])) { + $this->clientSecret = $config['WK_PAYPAL_COMMERCE_LIVE_CLIENT_SECRET']; + } + } else { + if (!empty($config['WK_PAYPAL_COMMERCE_SANDBOX_MERCHANT_ID'])) { + $this->merchantId = $config['WK_PAYPAL_COMMERCE_SANDBOX_MERCHANT_ID']; + } + if (!empty($config['WK_PAYPAL_COMMERCE_SANDBOX_EMAIL'])) { + $this->paypalEmail = $config['WK_PAYPAL_COMMERCE_SANDBOX_EMAIL']; + } + if (!empty($config['WK_PAYPAL_COMMERCE_SANDBOX_CLIENT_ID'])) { + $this->clientId = $config['WK_PAYPAL_COMMERCE_SANDBOX_CLIENT_ID']; + } + if (!empty($config['WK_PAYPAL_COMMERCE_SANDBOX_CLIENT_SECRET'])) { + $this->clientSecret = $config['WK_PAYPAL_COMMERCE_SANDBOX_CLIENT_SECRET']; + } } parent::__construct(); @@ -101,6 +136,8 @@ class QloPaypalCommerce extends PaymentModule public function getContent() { + $this->context->controller->addJS($this->_path.'views/js/admin/paypal_config.js'); + if (!$this->checkPaypalCommerceConfigured()) { $this->context->controller->warnings[] = $this->l('PayPal Merchant ID, Email, Client ID and Secret must be configured.'); } @@ -109,7 +146,7 @@ class QloPaypalCommerce extends PaymentModule $this->context->controller->warnings[] = $this->l('No currency has been set for this module.'); } - if (Tools::isSubmit('submit_paypal_commerce')) { + if (Tools::isSubmit('btnConfigSubmit')) { $this->postValidation(); if (!count($this->postErrors)) { $this->postProcess(); @@ -163,42 +200,74 @@ class QloPaypalCommerce extends PaymentModule 'hint' => $this->l('Select PayPal payment environment either sandbox or production. You can get real transaction only on production, for testing, use sandbox.'), ), array( - 'label' => $this->l('Merchant ID'), - 'name' => 'WK_PAYPAL_COMMERCE_MERCHANT_ID', + 'label' => $this->l('Sandbox Merchant ID'), + 'name' => 'WK_PAYPAL_COMMERCE_SANDBOX_MERCHANT_ID', 'size' => 60, 'type' => 'text', 'required' => true, - 'hint' => $this->l('Enter the Merchant ID of your PayPal account.'), + 'hint' => $this->l('Enter the Merchant ID of your PayPal sandbox account.'), ), array( - 'label' => $this->l('Account Email'), - 'name' => 'WK_PAYPAL_COMMERCE_EMAIL', + 'label' => $this->l('Sandbox Account Email'), + 'name' => 'WK_PAYPAL_COMMERCE_SANDBOX_EMAIL', 'size' => 60, 'type' => 'text', 'required' => true, - 'hint' => $this->l('Enter the PayPal Account Email of your PayPal account.'), + 'hint' => $this->l('Enter the PayPal Account Email of your PayPal sandbox account.'), ), array( - 'label' => $this->l('Client ID'), - 'name' => 'WK_PAYPAL_COMMERCE_CLIENT_ID', + 'label' => $this->l('Sandbox Client ID'), + 'name' => 'WK_PAYPAL_COMMERCE_SANDBOX_CLIENT_ID', 'size' => 100, 'type' => 'text', 'required' => true, - 'hint' => $this->l('Enter the Client ID from PayPal account app credentials.'), + 'hint' => $this->l('Enter the Client ID from PayPal sandbox account app credentials.'), ), array( - 'label' => $this->l('Client Secret'), - 'name' => 'WK_PAYPAL_COMMERCE_CLIENT_SECRET', + 'label' => $this->l('Sandbox Client Secret'), + 'name' => 'WK_PAYPAL_COMMERCE_SANDBOX_CLIENT_SECRET', 'size' => 100, 'type' => 'text', 'required' => true, - 'hint' => $this->l('Enter the Client Secret from PayPal account app credentials.'), + 'hint' => $this->l('Enter the Client Secret from PayPal sandbox account app credentials.'), + ), + array( + 'label' => $this->l('Live Merchant ID'), + 'name' => 'WK_PAYPAL_COMMERCE_LIVE_MERCHANT_ID', + 'size' => 60, + 'type' => 'text', + 'required' => true, + 'hint' => $this->l('Enter the Merchant ID of your PayPal live account.'), + ), + array( + 'label' => $this->l('Live Account Email'), + 'name' => 'WK_PAYPAL_COMMERCE_LIVE_EMAIL', + 'size' => 60, + 'type' => 'text', + 'required' => true, + 'hint' => $this->l('Enter the PayPal Account Email of your PayPal live account.'), + ), + array( + 'label' => $this->l('Live Client ID'), + 'name' => 'WK_PAYPAL_COMMERCE_LIVE_CLIENT_ID', + 'size' => 100, + 'type' => 'text', + 'required' => true, + 'hint' => $this->l('Enter the Client ID from PayPal live account app credentials.'), + ), + array( + 'label' => $this->l('Live Client Secret'), + 'name' => 'WK_PAYPAL_COMMERCE_LIVE_CLIENT_SECRET', + 'size' => 100, + 'type' => 'text', + 'required' => true, + 'hint' => $this->l('Enter the Client Secret from PayPal live account app credentials.'), ), ), 'description' => $this->l('PayPal Seller Protection not applicable'), 'submit' => array( 'title' => $this->l('Save'), - 'name' => 'submit_paypal_commerce', + 'name' => 'btnConfigSubmit', ), ); @@ -225,49 +294,73 @@ class QloPaypalCommerce extends PaymentModule private function postValidation() { - if (Tools::isSubmit('submit_paypal_commerce')) { - $wkMerchantId = trim(Tools::getValue('WK_PAYPAL_COMMERCE_MERCHANT_ID')); + if (Tools::isSubmit('btnConfigSubmit')) { + $mode = Tools::getValue('WK_PAYPAL_COMMERCE_PAYMENT_MODE'); + + $this->sandboxMerchantId = trim(Tools::getValue('WK_PAYPAL_COMMERCE_SANDBOX_MERCHANT_ID')); + $this->sandboxEmail = trim(Tools::getValue('WK_PAYPAL_COMMERCE_SANDBOX_EMAIL')); + $this->sandboxClientId = trim(Tools::getValue('WK_PAYPAL_COMMERCE_SANDBOX_CLIENT_ID')); + $this->sandboxClientSecret = trim(Tools::getValue('WK_PAYPAL_COMMERCE_SANDBOX_CLIENT_SECRET')); + + $this->liveMerchantId = trim(Tools::getValue('WK_PAYPAL_COMMERCE_LIVE_MERCHANT_ID')); + $this->liveEmail = trim(Tools::getValue('WK_PAYPAL_COMMERCE_LIVE_EMAIL')); + $this->liveClientId = trim(Tools::getValue('WK_PAYPAL_COMMERCE_LIVE_CLIENT_ID')); + $this->liveClientSecret = trim(Tools::getValue('WK_PAYPAL_COMMERCE_LIVE_CLIENT_SECRET')); + + if ($mode == self::WK_PAYPAL_COMMERCE_PAYMENT_MODE_PRODUCTION) { + $wkMerchantId = $this->liveMerchantId; + $wkEmail = $this->liveEmail; + $wkClientID = $this->liveClientId; + $wkClientSecret = $this->liveClientSecret; + } else { + $wkMerchantId = $this->sandboxMerchantId; + $wkEmail = $this->sandboxEmail; + $wkClientID = $this->sandboxClientId; + $wkClientSecret = $this->sandboxClientSecret; + } + if (!$wkMerchantId) { $this->postErrors[] = $this->l('Please enter Merchant ID'); - } elseif (!preg_match(Tools::cleanNonUnicodeSupport('/[a-zA-Z0-9]+/'), $wkMerchantId)) { + } elseif (!preg_match('/^[a-zA-Z0-9]+$/', $wkMerchantId)) { $this->postErrors[] = $this->l('Invalid Merchant ID provided.'); } - $wkEmail = trim(Tools::getValue('WK_PAYPAL_COMMERCE_EMAIL')); if (!$wkEmail) { $this->postErrors[] = $this->l('Please enter Account Email'); } elseif (!Validate::isEmail($wkEmail)) { $this->postErrors[] = $this->l('Please enter valid Account Email'); } - $wkClientID = trim(Tools::getValue('WK_PAYPAL_COMMERCE_CLIENT_ID')); if (!$wkClientID) { $this->postErrors[] = $this->l('Please enter Client ID'); + } elseif (!preg_match('/^[A-Za-z0-9._-]+$/', $wkClientID)) { + $this->postErrors[] = $this->l('Invalid Client ID provided.'); } - $wkClientSecret = trim(Tools::getValue('WK_PAYPAL_COMMERCE_CLIENT_SECRET')); if (!$wkClientSecret) { $this->postErrors[] = $this->l('Please enter Client Secret'); + } elseif (!preg_match('/^[A-Za-z0-9._-]+$/', $wkClientSecret)) { + $this->postErrors[] = $this->l('Invalid Client Secret provided.'); } // Validate PayPal credentials $this->validatePaypalCredentials(); - if (Tools::getValue('WK_PAYPAL_COMMERCE_PAYMENT_MODE') == 'sandbox' + if ($mode == self::WK_PAYPAL_COMMERCE_PAYMENT_MODE_SANDBOX && $this->token ) { if (empty(Configuration::get('WK_PAYPAL_COMMERCE_SANDBOX_WEBHOOK_ID'))) { // Create webhook URL first time $this->createWebhookUrl('sandbox'); - } elseif (Tools::getValue('WK_PAYPAL_COMMERCE_CLIENT_ID') != Configuration::get('WK_PAYPAL_COMMERCE_CLIENT_ID')) { + } elseif ($this->sandboxClientId != Configuration::get('WK_PAYPAL_COMMERCE_SANDBOX_CLIENT_ID')) { // Delete existing webhook URL if PayPal credential changed WkPaypalCommerceHelper::deleteWebhookUrl(); $this->createWebhookUrl('sandbox'); } - } elseif (Tools::getValue('WK_PAYPAL_COMMERCE_PAYMENT_MODE') == 'production' + } elseif ($mode == self::WK_PAYPAL_COMMERCE_PAYMENT_MODE_PRODUCTION && $this->token ) { if (empty(Configuration::get('WK_PAYPAL_COMMERCE_LIVE_WEBHOOK_ID'))) { // Create webhook URL first time $this->createWebhookUrl('production'); - } elseif (Tools::getValue('WK_PAYPAL_COMMERCE_CLIENT_ID') != Configuration::get('WK_PAYPAL_COMMERCE_CLIENT_ID')) { + } elseif ($this->liveClientId != Configuration::get('WK_PAYPAL_COMMERCE_LIVE_CLIENT_ID')) { // Delete existing webhook URL if PayPal credential changed WkPaypalCommerceHelper::deleteWebhookUrl(); $this->createWebhookUrl('production'); @@ -309,22 +402,24 @@ class QloPaypalCommerce extends PaymentModule public function postProcess() { if (Tools::isSubmit('btnConfigSubmit')) { - Configuration::updateValue('WK_PAYPAL_COMMERCE_MERCHANT_ID', trim(Tools::getValue('WK_PAYPAL_COMMERCE_MERCHANT_ID'))); - Configuration::updateValue('WK_PAYPAL_COMMERCE_EMAIL', trim(Tools::getValue('WK_PAYPAL_COMMERCE_EMAIL'))); - Configuration::updateValue('WK_PAYPAL_COMMERCE_CLIENT_ID', trim(Tools::getValue('WK_PAYPAL_COMMERCE_CLIENT_ID'))); - Configuration::updateValue('WK_PAYPAL_COMMERCE_CLIENT_SECRET', trim(Tools::getValue('WK_PAYPAL_COMMERCE_CLIENT_SECRET'))); - Configuration::updateValue('WK_PAYPAL_COMMERCE_PAYMENT_MODE', Tools::getValue('WK_PAYPAL_COMMERCE_PAYMENT_MODE')); + $mode = Tools::getValue('WK_PAYPAL_COMMERCE_PAYMENT_MODE'); + + Configuration::updateValue('WK_PAYPAL_COMMERCE_SANDBOX_MERCHANT_ID', $this->sandboxMerchantId); + Configuration::updateValue('WK_PAYPAL_COMMERCE_SANDBOX_EMAIL', $this->sandboxEmail); + Configuration::updateValue('WK_PAYPAL_COMMERCE_SANDBOX_CLIENT_ID', $this->sandboxClientId); + Configuration::updateValue('WK_PAYPAL_COMMERCE_SANDBOX_CLIENT_SECRET', $this->sandboxClientSecret); + + Configuration::updateValue('WK_PAYPAL_COMMERCE_LIVE_MERCHANT_ID', $this->liveMerchantId); + Configuration::updateValue('WK_PAYPAL_COMMERCE_LIVE_EMAIL', $this->liveEmail); + Configuration::updateValue('WK_PAYPAL_COMMERCE_LIVE_CLIENT_ID', $this->liveClientId); + Configuration::updateValue('WK_PAYPAL_COMMERCE_LIVE_CLIENT_SECRET', $this->liveClientSecret); + + Configuration::updateValue('WK_PAYPAL_COMMERCE_PAYMENT_MODE', $mode); $moduleConfig = $this->context->link->getAdminLink('AdminModules'); Tools::redirectAdmin( $moduleConfig.'&configure='.$this->name.'&tab_module='.$this->tab.'&module_name='.$this->name.'&conf=4' ); - - // redirect after saving the configuration - Tools::redirectAdmin( - $this->context->link->getAdminLink('AdminModules').'&configure='.$this->name.'&tab_module='.$this->tab. - '&module_name='.$this->name.'&conf=4' - ); } } @@ -383,7 +478,9 @@ class QloPaypalCommerce extends PaymentModule $currency = Currency::getCurrency((int)$this->context->currency->id); // // add PayPal script - $this->context->controller->addJS('https://www.paypal.com/sdk/js?client-id='.Configuration::get('WK_PAYPAL_COMMERCE_CLIENT_ID').'&commit=true&components=buttons&debug=false¤cy='.$currency['iso_code'].'&intent=capture'); + $mode = Configuration::get('WK_PAYPAL_COMMERCE_PAYMENT_MODE'); + $clientId = ($mode === self::WK_PAYPAL_COMMERCE_PAYMENT_MODE_PRODUCTION) ? Configuration::get('WK_PAYPAL_COMMERCE_LIVE_CLIENT_ID') : Configuration::get('WK_PAYPAL_COMMERCE_SANDBOX_CLIENT_ID'); + $this->context->controller->addJS('https://www.paypal.com/sdk/js?client-id='.$clientId.'&commit=true&components=buttons&debug=false¤cy='.$currency['iso_code'].'&intent=capture'); $this->context->controller->addCSS($this->_path.'views/css/front/wk_payment.css'); @@ -443,16 +540,17 @@ class QloPaypalCommerce extends PaymentModule // Check payment module is configured public function checkPaypalCommerceConfigured() { - if (!isset($this->ppMode) - || !isset($this->merchantId) - || !isset($this->paypalEmail) - || !isset($this->clientId) - || !isset($this->clientSecret) - ) { - return false; + $mode = Configuration::get('WK_PAYPAL_COMMERCE_PAYMENT_MODE'); + if ($mode == self::WK_PAYPAL_COMMERCE_PAYMENT_MODE_PRODUCTION) { + return Configuration::get('WK_PAYPAL_COMMERCE_LIVE_MERCHANT_ID') + && Configuration::get('WK_PAYPAL_COMMERCE_LIVE_EMAIL') + && Configuration::get('WK_PAYPAL_COMMERCE_LIVE_CLIENT_ID') + && Configuration::get('WK_PAYPAL_COMMERCE_LIVE_CLIENT_SECRET'); } - - return true; + return Configuration::get('WK_PAYPAL_COMMERCE_SANDBOX_MERCHANT_ID') + && Configuration::get('WK_PAYPAL_COMMERCE_SANDBOX_EMAIL') + && Configuration::get('WK_PAYPAL_COMMERCE_SANDBOX_CLIENT_ID') + && Configuration::get('WK_PAYPAL_COMMERCE_SANDBOX_CLIENT_SECRET'); } public function hookPaymentReturn($params) diff --git a/modules/qlopaypalcommerce/translations/ca.php b/modules/qlopaypalcommerce/translations/ca.php index 1ffb99c10..846f6995d 100644 --- a/modules/qlopaypalcommerce/translations/ca.php +++ b/modules/qlopaypalcommerce/translations/ca.php @@ -2,22 +2,135 @@ global $_MODULE; $_MODULE = array(); -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_dba5abcd5b8bb0ee23a6bde15a6e5fde'] = 'QloApps PayPal Checkout'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_dba5abcd5b8bb0ee23a6bde15a6e5fde'] = 'Pagament de PayPal de QloApps'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1639a5f6b16f8d4a04393dbdff0e05f6'] = 'Un negoci global instantani.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_dd5e9bb870ec616039f0fe9f2bd4726b'] = 'Una integració per a totes les vostres necessitats de pagament en línia.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_dd5e9bb870ec616039f0fe9f2bd4726b'] = 'Una integració per a totes les teves necessitats de pagament en línia.'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_e654f7a86a4458b9cd662267e0f29b52'] = 'Beneficis'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_e0a9745011703bc991ab1af1f50ccd20'] = 'Activeu una experiència de compra perfecta per als vostres clients que fomenti la conversió i la fidelització.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_af0fd51a752f317a87b2f7b724856034'] = 'Accepteu els pagaments de PayPal amb incorporació simplificada, integració adaptable i fàcil configuració del compte.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_b9b50f4dec6df62993204153f8d5db2c'] = 'Accés a clients de 377M + PayPal de tot el món *, amb suport en moneda local per a una millor gestió dels diners.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_cb47de9d9350a9025c8c3b657c8c8268'] = 'Tranquil·litat per a vosaltres i els vostres clients amb protecció del comprador i del venedor en vendes elegibles.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_8332b9ae4d8931da4a311f410a232619'] = 'Resultat del quart trimestre de PayPal 2020'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1e4fe71e24592a98260048fe05cbbb5b'] = 'Cal configurar l’identificador de comerciant de PayPal, el correu electrònic, l’identificador de client i el secret.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a02758d758e8bec77a33d7f392eb3f8a'] = 'No s\'ha establert cap moneda per a aquest mòdul.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_afcae56aeb45bbff848348abf4824b44'] = 'Configuració de pagament de PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_116e78f6c1c4b4f66a57192817242e35'] = 'Entorn de transaccions'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_2652eec977dcb2a5aea85f5bec235b05'] = 'Sandbox'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_e0a9745011703bc991ab1af1f50ccd20'] = 'Habilita una experiència de compra fluida per als teus clients que impulsi la conversió i la fidelització.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_af0fd51a752f317a87b2f7b724856034'] = 'Accepta pagaments de PayPal amb una incorporació simplificada, una integració adaptable i una configuració de compte fàcil.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_b9b50f4dec6df62993204153f8d5db2c'] = 'Accés a més de 377 milions de clients de PayPal arreu del món*, amb compatibilitat amb la moneda local per a una millor gestió dels diners.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_cb47de9d9350a9025c8c3b657c8c8268'] = 'Tranquil·litat per a tu i els teus clients amb la protecció del comprador i del venedor en les vendes elegibles.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_8332b9ae4d8931da4a311f410a232619'] = 'Resultat de PayPal del quart trimestre del 2020'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1e4fe71e24592a98260048fe05cbbb5b'] = 'Cal configurar l\'ID de comerciant, el correu electrònic, l\'ID de client i el secret de PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a02758d758e8bec77a33d7f392eb3f8a'] = 'No s\'ha definit cap moneda per a aquest mòdul.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_afcae56aeb45bbff848348abf4824b44'] = 'Configuració de pagaments de PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_116e78f6c1c4b4f66a57192817242e35'] = 'Entorn de transacció'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_2652eec977dcb2a5aea85f5bec235b05'] = 'Zona de proves'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_756d97bb256b8580d4d71ee0c547804e'] = 'Producció'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_bb6e852329aacf2cc839e01ab1ce1773'] = 'Seleccioneu l\'entorn de pagament de PayPal, ja sigui sandbox o producció. Podeu obtenir transaccions reals només en producció, per provar-les, utilitzeu sandbox.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_bb6e852329aacf2cc839e01ab1ce1773'] = 'Seleccioneu l\'entorn de pagament de PayPal, ja sigui sandbox o producció. Només podeu obtenir transaccions reals en producció; per a proves, utilitzeu sandbox.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_ed4f8785248e2d9a8a8b25e5c483551a'] = 'ID de comerciant de Sandbox'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_6d132ffd3d699649441bdc627dd57eba'] = 'Introduïu l\'ID de comerciant del vostre compte de prova de PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_36808d0f8a32391ba62716d9831040e5'] = 'Correu electrònic del compte de Sandbox'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_ff8336737d5f067b6c11724bd6fc944e'] = 'Introduïu el correu electrònic del compte de PayPal del vostre compte de sandbox de PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a0bd7d42b20f8ca0c6f28bdd30a1af1f'] = 'ID de client de Sandbox'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_e7b65a83fa18a3396a4b140483e6f288'] = 'Introduïu l\'ID de client de les credencials de l\'aplicació del compte de prova de PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_9af7eae52a08a132e079c3e910bb2cbe'] = 'Secret del client de Sandbox'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_023d4f770106b82c4984d38c9033d393'] = 'Introduïu el secret del client des de les credencials de l\'aplicació del compte de prova de PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_450e2248dad7a152379bf016310e1eba'] = 'ID de comerciant en directe'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_3058efc14b28f688630f4e6770db5f03'] = 'Introduïu l\'ID de comerciant del vostre compte real de PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_c916854e86ef605147fce41d400b6d74'] = 'Correu electrònic del compte en directe'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_05e0b13ee68a1adcd4939da789611213'] = 'Introdueix el correu electrònic del compte de PayPal del teu compte real de PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1087b413bc531d99ee4deb93e280bfed'] = 'ID de client en directe'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_dfa5a074df3ad0ca4018a93243fcce1e'] = 'Introduïu l\'ID de client de les credencials de l\'aplicació de compte en directe de PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_b9b75793dc0a1d8225b39b8be4392339'] = 'Secret de client en directe'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1382bf9075c663adbf10818ed4789234'] = 'Introduïu el secret del client de les credencials de l\'aplicació de compte en directe de PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_783901fa167d90d82463e71da67c5e52'] = 'La protecció del venedor de PayPal no és aplicable.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_c9cc8cce247e49bae79f15173ce97354'] = 'Desa'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a1c0702a8ce0c1562b372b93b5b8ae70'] = 'Si us plau, introduïu l\'ID del comerciant'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_5f8d20654b3683fd837ad6766a99b388'] = 'S\'ha proporcionat un ID de comerciant no vàlid.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_451ad04779375f902c3c9de28f096f42'] = 'Si us plau, introduïu el correu electrònic del compte'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a23555edc4d09483a2d5d84478a6e8d3'] = 'Si us plau, introduïu un correu electrònic vàlid del compte'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_d78b4ac6843d2634c46a59c2d0c2629d'] = 'Si us plau, introduïu l\'ID del client'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_3640405a6244a23f537de55975337bf3'] = 'Si us plau, introduïu el secret del client'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_89493d1e532e6577510bbd93052bf20c'] = 'El pagador va iniciar una disputa amb PayPal per aquest pagament capturat.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_9c28e950fb310ee005da61698456bc61'] = 'Els fons capturats es van revertir en resposta a la disputa del pagador sobre aquest pagament capturat amb l\'emissor de l\'instrument financer utilitzat per pagar aquest pagament capturat.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_e2740ccb963c88d2739ee7ff5d493235'] = 'El pagador ha pagat amb un xec electrònic que encara no s\'ha compensat.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_4e3da671b7e244adc46f9093e150fd99'] = 'Visita el teu compte en línia. A la **Visió general del compte**, accepta i rebutja aquest pagament.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_f3d713097a36e0a9f589755465883f91'] = 'No es pot proporcionar cap raó específica addicional. Per obtenir més informació sobre aquest pagament capturat, visiteu el vostre compte en línia o contacteu amb PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_04263f8fe176af4cd42d9756fc136cfe'] = 'El pagament capturat està pendent de revisió manual.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_c343691c63a475e04acf19b98945bc59'] = 'El beneficiari encara no ha configurat les preferències de recepció adequades per al seu compte. Per obtenir més informació sobre com acceptar o rebutjar aquest pagament, visiteu el vostre compte en línia. Aquest motiu s\'ofereix normalment en casos com ara quan la moneda del pagament capturat és diferent de la moneda principal del beneficiari.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_71013ee01f1a31c0310bcf4a91162c29'] = 'Els fons capturats van ser retornats.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_a4656378d78c3d73b354ddc0d4dabe18'] = 'El pagador ha d\'enviar els fons per a aquest pagament capturat. Aquest codi apareix generalment per a les transferències bancàries manuals.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_1bca65212e4eba1b64766eeb66091af2'] = 'El beneficiari no té un compte de PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_53c3196bca5dde9b71e5be8287ae9cde'] = 'El compte de PayPal del beneficiari no està verificat'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_a7a37ae71b70fe671308691cc6fe03dc'] = 'Transaccions de PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_1e860e56970a81a1ba3e1fcb7fccc846'] = 'Referència de la comanda'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_55307c995094996234479b33fbc16bd1'] = 'Referència de comanda a QloApps de la transacció de PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2b6ab125b0384eb33453b95c3f8e4ae6'] = 'ID de transacció de PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_dae74f84a69dab4b8e04999f2460febf'] = 'Identificador de la transacció de PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2763b4242763cbee7190de46d45d204f'] = 'Total de la transacció'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_e8453b7e2a7ccf2edeae228682a61b8d'] = 'Import total pagat en la transacció de PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_ce26601dac0dea138b7295f02b7620a7'] = 'Client'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_41a9d5e195648f50143f1c1abf5e00e6'] = 'Client de QloApps que va fer una transacció amb PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_ec53a8c4f07baed5d8825072c89799be'] = 'Estat'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2ea78fadfafeae47ad786c288667eadf'] = 'Estat del pagament'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_3516529c1d87f5fde62d6841140f5dc0'] = 'Estat actual de la transacció de PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_6fbc355a02359656f1e4540d58b784e1'] = 'Data de la comanda'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_168f21218c30dcc245dc1c62c103cb7b'] = 'Data de creació de la comanda.'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_630f6dc397fe74e52d5189e2c80f282b'] = 'Torna a la llista'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2a43821ec21eadc4073fc65dc35d2198'] = 'Tipus de reemborsament no vàlid.'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_4e7f26d58027e5f9611cc5fe9d901e06'] = 'Import de reemborsament no vàlid.'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_5eaf60217767a2ad1e30d36dc3a1c12c'] = 'Introduïu un motiu de reemborsament vàlid (només es permeten caràcters alfanumèrics).'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_ee4f91ae6dc5a35a0060efa164cb65d9'] = 'Import de reemborsament no vàlid. L\'import màxim disponible per a la devolució és'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_6a8b1040e75c9723eef0a783ffc0e1d2'] = 'El reemborsament ja s\'ha fet per aquesta transacció.'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_446b416d535ed3f547fcd653dc11d49c'] = 'Sol·licitud no vàlida'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_e2b7dec8fa4b498156dfee6e4c84b156'] = 'Aquest mètode de pagament no està disponible.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_2b46a852749d321a4c6eafa3b36b643c'] = 'Pagament de PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_78170aac364ebe8527577b742dc2111d'] = 'Detalls de la transacció de PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_34c15b4659b2241667e4c5d534270a17'] = 'Entorn de pagament'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_2652eec977dcb2a5aea85f5bec235b05'] = 'Zona de proves'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_756d97bb256b8580d4d71ee0c547804e'] = 'Producció'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_6f097b8feb2af129c8f74c786c130c1c'] = 'ID de referència de PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_2b6ab125b0384eb33453b95c3f8e4ae6'] = 'ID de transacció de PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_157c928dae48d88d19fb2ced2afbdd71'] = 'ID de comanda de PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_fdabf4e63a3cc1fe987269ff4e629148'] = 'Import de la transacció'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_1e860e56970a81a1ba3e1fcb7fccc846'] = 'Referència de la comanda'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_2ea989f83006e233627987293f4bde0a'] = 'Nom del client'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_54945fdafec2c65f0f5561d65b165f1a'] = 'Correu electrònic del client'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_475007c00d7c166cca01a44ecfd068ff'] = 'Veure client'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_4351cfebe4b61d8aa5efa1d020710005'] = 'Vista'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_2ea78fadfafeae47ad786c288667eadf'] = 'Estat del pagament'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_8f7afecbc8fbc4cd0f50a57d1172482e'] = 'COMPLETAT'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_31738cd694667ccdfa2cbc65249de5cc'] = 'Data de pagament'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_580d87d5c5121696825f17708b1ec065'] = 'Import total reemborsat'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_8b123a0f5d61720a4273bc4ed1d613a3'] = 'Transacció de reemborsament'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_a3a13394565fb6956d6948a1dbb8fe3f'] = 'Import total reemborsat'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_9d9dca90e919bd4c8febf55ea7a25b5f'] = 'Import total disponible per a reemborsament'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_51890b292429265077afcc0b2bb6f34a'] = 'Seleccioneu el tipus de reemborsament. Seleccioneu reemborsament parcial per reemborsar l\'import parcial de la transacció. Seleccioneu reemborsament complet per reemborsar l\'import total de la transacció.'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_d8fb839f1db11646b85354c3fb50fda3'] = 'Tipus de reemborsament'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_4f5a217b333e276be931951be6dc28f0'] = 'Selecciona el tipus de reemborsament'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_abcec07843d3ec02783b27587560f85f'] = 'Reemborsament complet'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_c985a711556e2edf5cac28dfbdb43ff0'] = 'Reemborsament parcial'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_84bca5dc34bb0d1244a9e0f323878665'] = 'Introduïu l\'import que voleu reemborsar de l\'import de la transacció.'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_b782d4ff61550d7e8cdee4cf70a03788'] = 'Import del reemborsament'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_6bbeabf389367bc93090db6dd0c13c4e'] = 'màx.'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_85689c24167c4690a0e346c46a17598c'] = 'Introduïu un comentari per a aquest reemborsament.'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_97d8f33367ecaeee79d5255b447c8827'] = 'Comentari de reemborsament'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_76f0ed934de85cc7131910b32ede7714'] = 'Reemborsament'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_072ab77c58ea38de4e3272c3eed624c1'] = 'Llista de reemborsaments'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_88427ec035734b45aae9f7d8859a5008'] = 'ID de transacció'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_b2f40690858b404ed10e62bdf422c704'] = 'Import'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_a1fa27779242b4902f7ae3bdd5c6d508'] = 'Tipus'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_ec53a8c4f07baed5d8825072c89799be'] = 'Estat'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_44749712dbec183e983dcd78a7736c41'] = 'Data'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_91921ada405fd6ba65dff028df047cb6'] = 'Observació'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_a207494d393a4f4909f746fd24440440'] = 'Encara no s\'ha creat cap reembossament.'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_e3bc22b32f4abd925670253972326260'] = 'Import total reemborsat:'; +$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_7b12dad517fd9056aabf8099a8173ddf'] = 'El vostre pagament ha fallat pel següent motiu:'; +$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_3d9f514d46849760ef1b1412e314fd99'] = 'Error:'; +$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_0d6779532e0735f6a9b05723ab191bc3'] = 'Descripció de l\'error:'; +$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_569fd05bdafa1712c4f6be5b153b8418'] = 'Altres mètodes de pagament'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_cancel_ack_0e1b6078789badcbfae8640288a46f0f'] = 'Has cancel·lat el pagament amb PayPal. Pots tornar-ho a intentar amb PayPal o provar un altre mètode de pagament.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_88526efe38fd18179a127024aba8c1d7'] = 'La teva comanda a %s s\'ha completat.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_cd44f47a868e5e42fa1a23b775504490'] = 'Import total pagat'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_19c419a8a4f1cd621853376a930a2e24'] = 'S\'ha enviat un correu electrònic amb aquesta informació.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_30163d8fc3068e8297e7ab5bf32aec87'] = 'La seva comanda serà enviada tan aviat com sigui possible.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_ca7e41a658753c87973936d7ce2429a8'] = 'Si teniu preguntes, comentaris o dubtes, poseu-vos en contacte amb el nostre'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_66fcf4c223bbf4c7c886d4784e1f62e4'] = 'equip expert d\'atenció al client'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_7c2ed2f8a5fc3c48f2d49196f96b34b1'] = 'Hem detectat un problema amb el vostre pagament. Poseu-vos en contacte amb el nostre'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_17a17ba93e6ac0192bd563905e87538d'] = 'Paga amb les opcions de pagament de Paypal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_644253cd300d73471cf86296d532b964'] = 'Paga amb Paypal'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_25e8f2fd2871c8423bbe4e254066cd98'] = 'Si us plau, espereu...'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_229a7ec501323b94db7ff3157a7623c9'] = 'Identificador de comerciant'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_daa9d1b5682c462e8fc8585bb4cf868c'] = 'Introduïu l\'identificador de comerciant del vostre compte de PayPal.'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_275f5257af70b08ed6def799bfa214b3'] = 'Correu electrònic del compte'; @@ -26,97 +139,4 @@ $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_76525f0f34b48475e5ca3 $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_21fb87c3b83156a1c9e7c51239705335'] = 'Introduïu l\'identificador de client des de les credencials de l\'aplicació del compte PayPal.'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_734082edf44417dd19cc65943aa65c36'] = 'Secret del client'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_92718280c77bfa861693c57bad5a0632'] = 'Introduïu el secret del client des de les credencials de l\'aplicació del compte PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_783901fa167d90d82463e71da67c5e52'] = 'La protecció del venedor de PayPal no és aplicable'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_c9cc8cce247e49bae79f15173ce97354'] = 'Desa'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a1c0702a8ce0c1562b372b93b5b8ae70'] = 'Introduïu l\'identificador de comerciant'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_5f8d20654b3683fd837ad6766a99b388'] = 'S\'ha proporcionat un identificador de comerciant no vàlid.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_451ad04779375f902c3c9de28f096f42'] = 'Introduïu el correu electrònic del compte'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a23555edc4d09483a2d5d84478a6e8d3'] = 'Introduïu el correu electrònic del compte vàlid'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_d78b4ac6843d2634c46a59c2d0c2629d'] = 'Introduïu l\'identificador de client'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_3640405a6244a23f537de55975337bf3'] = 'Introduïu Secret del client'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_89493d1e532e6577510bbd93052bf20c'] = 'El pagador va iniciar una disputa per aquest pagament capturat amb PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_9c28e950fb310ee005da61698456bc61'] = 'Els fons capturats es van invertir en resposta a que el pagador disputava aquest pagament capturat amb l\'emissor de l\'instrument financer utilitzat per pagar aquest pagament capturat.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_e2740ccb963c88d2739ee7ff5d493235'] = 'El pagador ha pagat mitjançant un eCheck que encara no s’ha esborrat.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_4e3da671b7e244adc46f9093e150fd99'] = 'Visiteu el vostre compte en línia. A la vostra ** Visió general del compte **, accepteu i denegueu aquest pagament.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_f3d713097a36e0a9f589755465883f91'] = 'No es pot proporcionar cap motiu específic addicional. Per obtenir més informació sobre aquest pagament capturat, visiteu el vostre compte en línia o contacteu amb PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_04263f8fe176af4cd42d9756fc136cfe'] = 'El pagament capturat està pendent de revisió manual.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_c343691c63a475e04acf19b98945bc59'] = 'El beneficiari encara no ha configurat les preferències de recepció adequades per al seu compte. Per obtenir més informació sobre com acceptar o denegar aquest pagament, visiteu el vostre compte en línia. Aquest motiu s’ofereix normalment en situacions com ara quan la moneda del pagament capturat és diferent de la moneda principal del beneficiari.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_71013ee01f1a31c0310bcf4a91162c29'] = 'Es van retornar els fons capturats.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_a4656378d78c3d73b354ddc0d4dabe18'] = 'El pagador ha d’enviar els fons d’aquest pagament capturat. Aquest codi apareix generalment per als EFT manuals.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_1bca65212e4eba1b64766eeb66091af2'] = 'El beneficiari no té cap compte de PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_53c3196bca5dde9b71e5be8287ae9cde'] = 'El compte PayPal del beneficiari no està verificat'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_a7a37ae71b70fe671308691cc6fe03dc'] = 'Transaccions PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_1e860e56970a81a1ba3e1fcb7fccc846'] = 'ordre de referència'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_55307c995094996234479b33fbc16bd1'] = 'Referència de la comanda a QloApps de la transacció PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2b6ab125b0384eb33453b95c3f8e4ae6'] = 'Identificador de transacció PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_dae74f84a69dab4b8e04999f2460febf'] = 'Identificador de la transacció PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2763b4242763cbee7190de46d45d204f'] = 'Total de transaccions'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_e8453b7e2a7ccf2edeae228682a61b8d'] = 'Import total pagat en la transacció PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_ce26601dac0dea138b7295f02b7620a7'] = 'Client'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_41a9d5e195648f50143f1c1abf5e00e6'] = 'Client de les aplicacions QloApps que va fer la transacció PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_ec53a8c4f07baed5d8825072c89799be'] = 'Estat'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2ea78fadfafeae47ad786c288667eadf'] = 'Estat de pagament'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_3516529c1d87f5fde62d6841140f5dc0'] = 'Estat actual de la transacció PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_6fbc355a02359656f1e4540d58b784e1'] = 'Data d\'Ordre'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_168f21218c30dcc245dc1c62c103cb7b'] = 'Data de creació de la comanda.'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_630f6dc397fe74e52d5189e2c80f282b'] = 'Torna a la llista'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2a43821ec21eadc4073fc65dc35d2198'] = 'El tipus de reembossament no és vàlid.'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_4e7f26d58027e5f9611cc5fe9d901e06'] = 'La quantitat de reembossament no és vàlida.'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_5eaf60217767a2ad1e30d36dc3a1c12c'] = 'Introduïu un motiu de devolució vàlid (només es permet l\'alfanumèric).'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_ee4f91ae6dc5a35a0060efa164cb65d9'] = 'La quantitat de reembossament no és vàlida. Màx. l\'import disponible per a la devolució és de'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_6a8b1040e75c9723eef0a783ffc0e1d2'] = 'El reembossament ja s’ha realitzat per aquesta transacció.'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_446b416d535ed3f547fcd653dc11d49c'] = 'Sol · licitud no vàlida'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_e2b7dec8fa4b498156dfee6e4c84b156'] = 'Aquesta forma de pagament no està disponible.'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_2b46a852749d321a4c6eafa3b36b643c'] = 'Pagament de PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_78170aac364ebe8527577b742dc2111d'] = 'Detalls de la transacció de PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_34c15b4659b2241667e4c5d534270a17'] = 'Entorn de pagament'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_2652eec977dcb2a5aea85f5bec235b05'] = 'Sandbox'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_756d97bb256b8580d4d71ee0c547804e'] = 'Producció'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_6f097b8feb2af129c8f74c786c130c1c'] = 'Identificador de referència de PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_2b6ab125b0384eb33453b95c3f8e4ae6'] = 'Identificador de transacció PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_157c928dae48d88d19fb2ced2afbdd71'] = 'Identificador de comanda de PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_fdabf4e63a3cc1fe987269ff4e629148'] = 'Import de la transacció'; $_MODULE['<{qlopaypalcommerce}prestashop>view_e98b5a6351fecb55b2f890686f31856d'] = 'Referència de la comanda de QloApps'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_2ea989f83006e233627987293f4bde0a'] = 'Nom del client'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_54945fdafec2c65f0f5561d65b165f1a'] = 'Correu electrònic del client'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_475007c00d7c166cca01a44ecfd068ff'] = 'Veure client'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_4351cfebe4b61d8aa5efa1d020710005'] = 'Veure'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_2ea78fadfafeae47ad786c288667eadf'] = 'Estat de pagament'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_8f7afecbc8fbc4cd0f50a57d1172482e'] = 'COMPLETAT'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_31738cd694667ccdfa2cbc65249de5cc'] = 'Data de pagament'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_580d87d5c5121696825f17708b1ec065'] = 'Import total reemborsat'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_8b123a0f5d61720a4273bc4ed1d613a3'] = 'Transacció de reembossament'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_a3a13394565fb6956d6948a1dbb8fe3f'] = 'Import total reemborsat'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_9d9dca90e919bd4c8febf55ea7a25b5f'] = 'Import total disponible a reemborsar'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_51890b292429265077afcc0b2bb6f34a'] = 'Seleccioneu el tipus de reembossament. Seleccioneu el reembossament parcial per reembossar l\'import parcial de la transacció. Seleccioneu el reembossament complet per retornar l\'import total de la transacció.'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_d8fb839f1db11646b85354c3fb50fda3'] = 'Tipus de devolució'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_4f5a217b333e276be931951be6dc28f0'] = 'Seleccioneu el tipus de reembossament'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_abcec07843d3ec02783b27587560f85f'] = 'Reemborsament complet'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_c985a711556e2edf5cac28dfbdb43ff0'] = 'Reembossament parcial'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_84bca5dc34bb0d1244a9e0f323878665'] = 'Introduïu l\'import que voleu reembossar a partir de l\'import de la transacció.'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_b782d4ff61550d7e8cdee4cf70a03788'] = 'Reemborsament'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_6bbeabf389367bc93090db6dd0c13c4e'] = 'màx.'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_85689c24167c4690a0e346c46a17598c'] = 'Introduïu un comentari per a aquest reembossament.'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_97d8f33367ecaeee79d5255b447c8827'] = 'Observació de devolució'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_76f0ed934de85cc7131910b32ede7714'] = 'Reembossament'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_072ab77c58ea38de4e3272c3eed624c1'] = 'Llista de devolucions'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_88427ec035734b45aae9f7d8859a5008'] = 'Identificador de transacció'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_b2f40690858b404ed10e62bdf422c704'] = 'Import'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_a1fa27779242b4902f7ae3bdd5c6d508'] = 'Tipus'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_ec53a8c4f07baed5d8825072c89799be'] = 'Estat'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_44749712dbec183e983dcd78a7736c41'] = 'Data'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_a207494d393a4f4909f746fd24440440'] = 'Encara no s\'ha creat cap devolució.'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_e3bc22b32f4abd925670253972326260'] = 'Import total reemborsat: '; -$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_7b12dad517fd9056aabf8099a8173ddf'] = 'El vostre pagament ha fallat pel següent motiu:'; -$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_3d9f514d46849760ef1b1412e314fd99'] = 'Error:'; -$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_0d6779532e0735f6a9b05723ab191bc3'] = 'Descripció de l\'error:'; -$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_569fd05bdafa1712c4f6be5b153b8418'] = 'Altres formes de pagament'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_cancel_ack_0e1b6078789badcbfae8640288a46f0f'] = 'Heu cancel·lat el pagament mitjançant PayPal. Podeu tornar-ho a provar amb PayPal o provar una altra forma de pagament.'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_88526efe38fd18179a127024aba8c1d7'] = 'La vostra comanda a% s s\'ha completat.'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_cd44f47a868e5e42fa1a23b775504490'] = 'Import total pagat'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_19c419a8a4f1cd621853376a930a2e24'] = 'S\'ha enviat un correu electrònic amb aquesta informació.'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_30163d8fc3068e8297e7ab5bf32aec87'] = 'La vostra comanda s’enviarà el més aviat possible.'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_ca7e41a658753c87973936d7ce2429a8'] = 'Si teniu preguntes, comentaris o dubtes, poseu-vos en contacte amb el nostre'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_66fcf4c223bbf4c7c886d4784e1f62e4'] = 'equip expert d’atenció al client'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_7c2ed2f8a5fc3c48f2d49196f96b34b1'] = 'Hem detectat un problema amb el vostre pagament. Poseu-vos en contacte amb el nostre'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_25e8f2fd2871c8423bbe4e254066cd98'] = 'Espera ...'; diff --git a/modules/qlopaypalcommerce/translations/es.php b/modules/qlopaypalcommerce/translations/es.php index d28c09069..af7ffab1e 100644 --- a/modules/qlopaypalcommerce/translations/es.php +++ b/modules/qlopaypalcommerce/translations/es.php @@ -2,71 +2,75 @@ global $_MODULE; $_MODULE = array(); -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_dba5abcd5b8bb0ee23a6bde15a6e5fde'] = 'Pago de QloApps PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1639a5f6b16f8d4a04393dbdff0e05f6'] = 'Un negocio global instantáneo.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_dd5e9bb870ec616039f0fe9f2bd4726b'] = 'Una integración para todas sus necesidades de pago en línea.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_e654f7a86a4458b9cd662267e0f29b52'] = 'Beneficios'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_e0a9745011703bc991ab1af1f50ccd20'] = 'Habilite una experiencia de compra perfecta para sus clientes que impulse la conversión y la lealtad.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_af0fd51a752f317a87b2f7b724856034'] = 'Acepte pagos de PayPal con una incorporación simplificada, una integración adaptable y una configuración de cuenta sencilla.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_b9b50f4dec6df62993204153f8d5db2c'] = 'Acceso a más de 377 millones de clientes de PayPal en todo el mundo *, con soporte en moneda local para una mejor gestión del dinero.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_cb47de9d9350a9025c8c3b657c8c8268'] = 'Tranquilidad para usted y sus clientes con protección para compradores y vendedores en ventas elegibles.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_8332b9ae4d8931da4a311f410a232619'] = 'Resultado de PayPal del cuarto trimestre de 2020'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1e4fe71e24592a98260048fe05cbbb5b'] = 'Deben configurarse el ID de comerciante de PayPal, el correo electrónico, el ID de cliente y el secreto.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a02758d758e8bec77a33d7f392eb3f8a'] = 'No se ha establecido ninguna moneda para este módulo.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_e0a9745011703bc991ab1af1f50ccd20'] = 'Ofrezca a sus clientes una experiencia de compra fluida que impulse la conversión y la fidelización.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_af0fd51a752f317a87b2f7b724856034'] = 'Acepte pagos con PayPal gracias a un proceso de incorporación simplificado, una integración adaptable y una configuración de cuenta sencilla.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_b9b50f4dec6df62993204153f8d5db2c'] = 'Acceso a más de 377 millones de clientes de PayPal en todo el mundo*, con soporte para monedas locales para una mejor gestión del dinero.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_cb47de9d9350a9025c8c3b657c8c8268'] = 'Tranquilidad para usted y sus clientes gracias a la protección que ofrecen tanto al comprador como al vendedor en las ventas que cumplan los requisitos.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_8332b9ae4d8931da4a311f410a232619'] = 'Resultados de PayPal del cuarto trimestre de 2020'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1e4fe71e24592a98260048fe05cbbb5b'] = 'Se deben configurar el ID de comerciante de PayPal, el correo electrónico, el ID de cliente y la clave secreta.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a02758d758e8bec77a33d7f392eb3f8a'] = 'No se ha configurado ninguna moneda para este módulo.'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_afcae56aeb45bbff848348abf4824b44'] = 'Configuración de pago de PayPal'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_116e78f6c1c4b4f66a57192817242e35'] = 'Entorno de transacción'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_2652eec977dcb2a5aea85f5bec235b05'] = 'Salvadera'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_756d97bb256b8580d4d71ee0c547804e'] = 'Producción'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_bb6e852329aacf2cc839e01ab1ce1773'] = 'Seleccione el entorno de pago de PayPal, ya sea sandbox o producción. Puede obtener transacciones reales solo en producción, para pruebas, use sandbox.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_229a7ec501323b94db7ff3157a7623c9'] = 'Identificación del comerciante'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_daa9d1b5682c462e8fc8585bb4cf868c'] = 'Ingrese el ID de comerciante de su cuenta PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_275f5257af70b08ed6def799bfa214b3'] = 'Cuenta de email'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_9b022ec729030a4e40c533c61668d128'] = 'Ingrese el correo electrónico de la cuenta de PayPal de su cuenta de PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_76525f0f34b48475e5ca33f71d296f3b'] = 'Identificación del cliente'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_21fb87c3b83156a1c9e7c51239705335'] = 'Ingrese el ID de cliente de las credenciales de la aplicación de la cuenta de PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_734082edf44417dd19cc65943aa65c36'] = 'Secreto del cliente'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_92718280c77bfa861693c57bad5a0632'] = 'Ingrese el secreto del cliente de las credenciales de la aplicación de la cuenta de PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_783901fa167d90d82463e71da67c5e52'] = 'Protección al vendedor de PayPal no aplicable'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_c9cc8cce247e49bae79f15173ce97354'] = 'Salvar'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a1c0702a8ce0c1562b372b93b5b8ae70'] = 'Ingrese el ID del comerciante'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_5f8d20654b3683fd837ad6766a99b388'] = 'Se proporcionó un ID de comerciante no válido.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_451ad04779375f902c3c9de28f096f42'] = 'Ingrese el correo electrónico de la cuenta'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a23555edc4d09483a2d5d84478a6e8d3'] = 'Ingrese un correo electrónico de cuenta válido'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_d78b4ac6843d2634c46a59c2d0c2629d'] = 'Ingrese el ID de cliente'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_3640405a6244a23f537de55975337bf3'] = 'Ingrese el secreto del cliente'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_89493d1e532e6577510bbd93052bf20c'] = 'El pagador inició una disputa por este pago capturado con PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_9c28e950fb310ee005da61698456bc61'] = 'Los fondos capturados fueron revertidos en respuesta a que el pagador impugnó este pago capturado con el emisor del instrumento financiero utilizado para pagar este pago capturado.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_e2740ccb963c88d2739ee7ff5d493235'] = 'El pagador pagó mediante un cheque electrónico que aún no se ha compensado.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_4e3da671b7e244adc46f9093e150fd99'] = 'Visite su cuenta en línea. En su ** Descripción general de la cuenta **, acepte y rechace este pago.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_f3d713097a36e0a9f589755465883f91'] = 'No se puede proporcionar ninguna razón específica adicional. Para obtener más información sobre este pago capturado, visite su cuenta en línea o comuníquese con PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_04263f8fe176af4cd42d9756fc136cfe'] = 'El pago capturado está pendiente de revisión manual.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_c343691c63a475e04acf19b98945bc59'] = 'El beneficiario aún no ha configurado las preferencias de recepción adecuadas para su cuenta. Para obtener más información sobre cómo aceptar o rechazar este pago, visite su cuenta en línea. Esta razón se ofrece típicamente en escenarios como cuando la moneda del pago capturado es diferente de la moneda de tenencia principal del beneficiario.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_71013ee01f1a31c0310bcf4a91162c29'] = 'Los fondos capturados fueron reembolsados.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_a4656378d78c3d73b354ddc0d4dabe18'] = 'El pagador debe enviar los fondos para este pago capturado. Este código generalmente aparece para EFT manuales.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_bb6e852329aacf2cc839e01ab1ce1773'] = 'Seleccione el entorno de pago de PayPal: entorno de pruebas (sandbox) o entorno de producción. Solo en producción se pueden realizar transacciones reales; para realizar pruebas, utilice el entorno de pruebas.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_ed4f8785248e2d9a8a8b25e5c483551a'] = 'ID de comerciante de entorno de pruebas'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_6d132ffd3d699649441bdc627dd57eba'] = 'Introduce el ID de comerciante de tu cuenta de prueba de PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_36808d0f8a32391ba62716d9831040e5'] = 'Correo electrónico de la cuenta de Sandbox'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_ff8336737d5f067b6c11724bd6fc944e'] = 'Introduce el correo electrónico de tu cuenta de PayPal de prueba.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a0bd7d42b20f8ca0c6f28bdd30a1af1f'] = 'ID de cliente de Sandbox'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_e7b65a83fa18a3396a4b140483e6f288'] = 'Introduzca el ID de cliente de las credenciales de la aplicación de la cuenta de prueba de PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_9af7eae52a08a132e079c3e910bb2cbe'] = 'Secreto del cliente de Sandbox'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_023d4f770106b82c4984d38c9033d393'] = 'Introduce la clave secreta del cliente de las credenciales de la aplicación de la cuenta de prueba de PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_450e2248dad7a152379bf016310e1eba'] = 'ID de comerciante en vivo'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_3058efc14b28f688630f4e6770db5f03'] = 'Introduce el ID de comerciante de tu cuenta activa de PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_c916854e86ef605147fce41d400b6d74'] = 'Correo electrónico de cuenta en vivo'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_05e0b13ee68a1adcd4939da789611213'] = 'Introduce el correo electrónico de tu cuenta PayPal activa.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1087b413bc531d99ee4deb93e280bfed'] = 'ID de cliente en vivo'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_dfa5a074df3ad0ca4018a93243fcce1e'] = 'Introduce el ID de cliente de las credenciales de la aplicación de cuenta real de PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_b9b75793dc0a1d8225b39b8be4392339'] = 'Secreto del cliente en vivo'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1382bf9075c663adbf10818ed4789234'] = 'Introduce la clave secreta del cliente de las credenciales de la aplicación de tu cuenta real de PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_783901fa167d90d82463e71da67c5e52'] = 'La protección al vendedor de PayPal no es aplicable.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_c9cc8cce247e49bae79f15173ce97354'] = 'Ahorrar'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a1c0702a8ce0c1562b372b93b5b8ae70'] = 'Ingrese el ID del comerciante.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_5f8d20654b3683fd837ad6766a99b388'] = 'Se ha proporcionado un ID de comerciante no válido.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_451ad04779375f902c3c9de28f096f42'] = 'Por favor, introduzca el correo electrónico de la cuenta.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a23555edc4d09483a2d5d84478a6e8d3'] = 'Por favor, introduzca un correo electrónico válido para su cuenta.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_d78b4ac6843d2634c46a59c2d0c2629d'] = 'Por favor, introduzca el ID de cliente.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_3640405a6244a23f537de55975337bf3'] = 'Introduzca la clave secreta del cliente.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_89493d1e532e6577510bbd93052bf20c'] = 'El pagador inició una disputa con PayPal por este pago capturado.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_9c28e950fb310ee005da61698456bc61'] = 'Los fondos retenidos fueron revertidos en respuesta a la disputa presentada por el pagador con el emisor del instrumento financiero utilizado para efectuar dicho pago.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_e2740ccb963c88d2739ee7ff5d493235'] = 'El pagador realizó el pago mediante un cheque electrónico que aún no se ha hecho efectivo.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_4e3da671b7e244adc46f9093e150fd99'] = 'Acceda a su cuenta en línea. En la sección **Resumen de la cuenta**, acepte o rechace este pago.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_f3d713097a36e0a9f589755465883f91'] = 'No se puede proporcionar ninguna otra razón específica. Para obtener más información sobre este pago, visite su cuenta en línea o póngase en contacto con PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_04263f8fe176af4cd42d9756fc136cfe'] = 'El pago recibido está pendiente de revisión manual.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_c343691c63a475e04acf19b98945bc59'] = 'El beneficiario aún no ha configurado las preferencias de recepción adecuadas para su cuenta. Para obtener más información sobre cómo aceptar o rechazar este pago, visite su cuenta en línea. Este motivo se suele ofrecer en situaciones como cuando la moneda del pago recibido es diferente de la moneda principal de la cuenta del beneficiario.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_71013ee01f1a31c0310bcf4a91162c29'] = 'Los fondos retenidos fueron devueltos.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_a4656378d78c3d73b354ddc0d4dabe18'] = 'El pagador debe enviar los fondos para este pago capturado. Este código generalmente aparece para transferencias electrónicas de fondos manuales.'; $_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_1bca65212e4eba1b64766eeb66091af2'] = 'El beneficiario no tiene una cuenta de PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_53c3196bca5dde9b71e5be8287ae9cde'] = 'La cuenta de PayPal del beneficiario no está verificada'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_a7a37ae71b70fe671308691cc6fe03dc'] = 'Transacciones PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_1e860e56970a81a1ba3e1fcb7fccc846'] = 'Pedir Referencia'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_55307c995094996234479b33fbc16bd1'] = 'Referencia de pedido en QloApps de la transacción de PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_53c3196bca5dde9b71e5be8287ae9cde'] = 'La cuenta de PayPal del beneficiario no está verificada.'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_a7a37ae71b70fe671308691cc6fe03dc'] = 'Transacciones de PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_1e860e56970a81a1ba3e1fcb7fccc846'] = 'Referencia del pedido'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_55307c995094996234479b33fbc16bd1'] = 'Referencia del pedido en QloApps de la transacción de PayPal'; $_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2b6ab125b0384eb33453b95c3f8e4ae6'] = 'ID de transacción de PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_dae74f84a69dab4b8e04999f2460febf'] = 'Id de la transacción de PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_dae74f84a69dab4b8e04999f2460febf'] = 'ID de la transacción de PayPal'; $_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2763b4242763cbee7190de46d45d204f'] = 'Total de la transacción'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_e8453b7e2a7ccf2edeae228682a61b8d'] = 'Importe total pagado en la transacción de PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_e8453b7e2a7ccf2edeae228682a61b8d'] = 'Importe total pagado en la transacción de PayPal.'; $_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_ce26601dac0dea138b7295f02b7620a7'] = 'Cliente'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_41a9d5e195648f50143f1c1abf5e00e6'] = 'Cliente en las QloApps que realizó la transacción de PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_41a9d5e195648f50143f1c1abf5e00e6'] = 'Cliente de QloApps que realizó una transacción con PayPal.'; $_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_ec53a8c4f07baed5d8825072c89799be'] = 'Estado'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2ea78fadfafeae47ad786c288667eadf'] = 'Estado de pago'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2ea78fadfafeae47ad786c288667eadf'] = 'Estado del pago'; $_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_3516529c1d87f5fde62d6841140f5dc0'] = 'Estado actual de la transacción de PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_6fbc355a02359656f1e4540d58b784e1'] = 'Fecha de orden'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_6fbc355a02359656f1e4540d58b784e1'] = 'Fecha del pedido'; $_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_168f21218c30dcc245dc1c62c103cb7b'] = 'Fecha de creación del pedido.'; $_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_630f6dc397fe74e52d5189e2c80f282b'] = 'Volver a la lista'; $_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2a43821ec21eadc4073fc65dc35d2198'] = 'Tipo de reembolso no válido.'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_4e7f26d58027e5f9611cc5fe9d901e06'] = 'Monto de reembolso no válido.'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_5eaf60217767a2ad1e30d36dc3a1c12c'] = 'Ingrese un motivo de reembolso válido (solo se permiten caracteres alfanuméricos).'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_ee4f91ae6dc5a35a0060efa164cb65d9'] = 'Monto de reembolso no válido. Max. la cantidad disponible para reembolso es'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_6a8b1040e75c9723eef0a783ffc0e1d2'] = 'El reembolso ya está hecho para esta transacción.'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_4e7f26d58027e5f9611cc5fe9d901e06'] = 'Importe de reembolso no válido.'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_5eaf60217767a2ad1e30d36dc3a1c12c'] = 'Introduzca un motivo de reembolso válido (solo se permiten caracteres alfanuméricos).'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_ee4f91ae6dc5a35a0060efa164cb65d9'] = 'Importe de reembolso no válido. El importe máximo disponible para reembolso es'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_6a8b1040e75c9723eef0a783ffc0e1d2'] = 'El reembolso de esta transacción ya se ha realizado.'; $_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_446b416d535ed3f547fcd653dc11d49c'] = 'Solicitud no válida'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_e2b7dec8fa4b498156dfee6e4c84b156'] = 'Esta forma de pago no está disponible.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_e2b7dec8fa4b498156dfee6e4c84b156'] = 'Este método de pago no está disponible.'; $_MODULE['<{qlopaypalcommerce}prestashop>payment_2b46a852749d321a4c6eafa3b36b643c'] = 'Pago con PayPal'; $_MODULE['<{qlopaypalcommerce}prestashop>view_78170aac364ebe8527577b742dc2111d'] = 'Detalles de la transacción de PayPal'; $_MODULE['<{qlopaypalcommerce}prestashop>view_34c15b4659b2241667e4c5d534270a17'] = 'Entorno de pago'; @@ -75,48 +79,64 @@ $_MODULE['<{qlopaypalcommerce}prestashop>view_756d97bb256b8580d4d71ee0c547804e'] $_MODULE['<{qlopaypalcommerce}prestashop>view_6f097b8feb2af129c8f74c786c130c1c'] = 'ID de referencia de PayPal'; $_MODULE['<{qlopaypalcommerce}prestashop>view_2b6ab125b0384eb33453b95c3f8e4ae6'] = 'ID de transacción de PayPal'; $_MODULE['<{qlopaypalcommerce}prestashop>view_157c928dae48d88d19fb2ced2afbdd71'] = 'ID de pedido de PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_fdabf4e63a3cc1fe987269ff4e629148'] = 'cantidad de transacción'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_e98b5a6351fecb55b2f890686f31856d'] = 'Referencia de pedido de QloApps'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_fdabf4e63a3cc1fe987269ff4e629148'] = 'Importe de la transacción'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_1e860e56970a81a1ba3e1fcb7fccc846'] = 'Referencia del pedido'; $_MODULE['<{qlopaypalcommerce}prestashop>view_2ea989f83006e233627987293f4bde0a'] = 'Nombre del cliente'; $_MODULE['<{qlopaypalcommerce}prestashop>view_54945fdafec2c65f0f5561d65b165f1a'] = 'Correo electrónico del cliente'; $_MODULE['<{qlopaypalcommerce}prestashop>view_475007c00d7c166cca01a44ecfd068ff'] = 'Ver cliente'; $_MODULE['<{qlopaypalcommerce}prestashop>view_4351cfebe4b61d8aa5efa1d020710005'] = 'Vista'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_2ea78fadfafeae47ad786c288667eadf'] = 'Estado de pago'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_2ea78fadfafeae47ad786c288667eadf'] = 'Estado del pago'; $_MODULE['<{qlopaypalcommerce}prestashop>view_8f7afecbc8fbc4cd0f50a57d1172482e'] = 'TERMINADO'; $_MODULE['<{qlopaypalcommerce}prestashop>view_31738cd694667ccdfa2cbc65249de5cc'] = 'Fecha de pago'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_580d87d5c5121696825f17708b1ec065'] = 'Monto total reembolsado'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_580d87d5c5121696825f17708b1ec065'] = 'Importe total reembolsado'; $_MODULE['<{qlopaypalcommerce}prestashop>view_8b123a0f5d61720a4273bc4ed1d613a3'] = 'Transacción de reembolso'; $_MODULE['<{qlopaypalcommerce}prestashop>view_a3a13394565fb6956d6948a1dbb8fe3f'] = 'Importe total reembolsado'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_9d9dca90e919bd4c8febf55ea7a25b5f'] = 'Monto total disponible para reembolsar'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_51890b292429265077afcc0b2bb6f34a'] = 'Seleccione el tipo de reembolso. Seleccione reembolso parcial para reembolsar el monto parcial de la transacción. Seleccione reembolso completo para reembolsar el monto total de la transacción.'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_9d9dca90e919bd4c8febf55ea7a25b5f'] = 'Importe total disponible para reembolso'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_51890b292429265077afcc0b2bb6f34a'] = 'Seleccione el tipo de reembolso. Seleccione reembolso parcial para reembolsar una parte del importe de la transacción. Seleccione reembolso total para reembolsar el importe total de la transacción.'; $_MODULE['<{qlopaypalcommerce}prestashop>view_d8fb839f1db11646b85354c3fb50fda3'] = 'Tipo de reembolso'; $_MODULE['<{qlopaypalcommerce}prestashop>view_4f5a217b333e276be931951be6dc28f0'] = 'Seleccione el tipo de reembolso'; $_MODULE['<{qlopaypalcommerce}prestashop>view_abcec07843d3ec02783b27587560f85f'] = 'Reembolso completo'; $_MODULE['<{qlopaypalcommerce}prestashop>view_c985a711556e2edf5cac28dfbdb43ff0'] = 'Reembolso parcial'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_84bca5dc34bb0d1244a9e0f323878665'] = 'Ingrese el monto que desea reembolsar del monto de la transacción.'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_b782d4ff61550d7e8cdee4cf70a03788'] = 'cantidad devuelta'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_6bbeabf389367bc93090db6dd0c13c4e'] = 'máx.'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_85689c24167c4690a0e346c46a17598c'] = 'Ingrese un comentario para este reembolso.'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_97d8f33367ecaeee79d5255b447c8827'] = 'Reembolso Observación'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_84bca5dc34bb0d1244a9e0f323878665'] = 'Ingrese la cantidad que desea reembolsar del monto de la transacción.'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_b782d4ff61550d7e8cdee4cf70a03788'] = 'Importe del reembolso'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_6bbeabf389367bc93090db6dd0c13c4e'] = 'máximo.'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_85689c24167c4690a0e346c46a17598c'] = 'Escriba un comentario para este reembolso.'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_97d8f33367ecaeee79d5255b447c8827'] = 'Observación sobre el reembolso'; $_MODULE['<{qlopaypalcommerce}prestashop>view_76f0ed934de85cc7131910b32ede7714'] = 'Reembolso'; $_MODULE['<{qlopaypalcommerce}prestashop>view_072ab77c58ea38de4e3272c3eed624c1'] = 'Lista de reembolsos'; $_MODULE['<{qlopaypalcommerce}prestashop>view_88427ec035734b45aae9f7d8859a5008'] = 'ID de transacción'; $_MODULE['<{qlopaypalcommerce}prestashop>view_b2f40690858b404ed10e62bdf422c704'] = 'Cantidad'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_a1fa27779242b4902f7ae3bdd5c6d508'] = 'Escribe'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_a1fa27779242b4902f7ae3bdd5c6d508'] = 'Tipo'; $_MODULE['<{qlopaypalcommerce}prestashop>view_ec53a8c4f07baed5d8825072c89799be'] = 'Estado'; $_MODULE['<{qlopaypalcommerce}prestashop>view_44749712dbec183e983dcd78a7736c41'] = 'Fecha'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_a207494d393a4f4909f746fd24440440'] = 'Aún no se han creado reembolsos.'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_e3bc22b32f4abd925670253972326260'] = 'Importe total reembolsado: '; -$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_7b12dad517fd9056aabf8099a8173ddf'] = 'Su pago no se ha realizado debido a los siguientes motivos:'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_91921ada405fd6ba65dff028df047cb6'] = 'Observación'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_a207494d393a4f4909f746fd24440440'] = 'Aún no se han generado reembolsos.'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_e3bc22b32f4abd925670253972326260'] = 'Importe total reembolsado:'; +$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_7b12dad517fd9056aabf8099a8173ddf'] = 'Su pago ha fallado por el siguiente motivo:'; $_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_3d9f514d46849760ef1b1412e314fd99'] = 'Error:'; -$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_0d6779532e0735f6a9b05723ab191bc3'] = 'Error de descripción:'; -$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_569fd05bdafa1712c4f6be5b153b8418'] = 'otros métodos de pago'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_cancel_ack_0e1b6078789badcbfae8640288a46f0f'] = 'Ha cancelado el pago mediante PayPal. Puede volver a intentarlo con PayPal o probar con otro método de pago.'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_88526efe38fd18179a127024aba8c1d7'] = 'Tu pedido en% s está completo.'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_cd44f47a868e5e42fa1a23b775504490'] = 'Cantidad total pagada'; +$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_0d6779532e0735f6a9b05723ab191bc3'] = 'Descripción del error:'; +$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_569fd05bdafa1712c4f6be5b153b8418'] = 'Otros métodos de pago'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_cancel_ack_0e1b6078789badcbfae8640288a46f0f'] = 'Has cancelado el pago con PayPal. Puedes volver a intentarlo con PayPal o probar con otro método de pago.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_88526efe38fd18179a127024aba8c1d7'] = 'Su pedido en %s se ha completado.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_cd44f47a868e5e42fa1a23b775504490'] = 'Importe total pagado'; $_MODULE['<{qlopaypalcommerce}prestashop>payment_return_19c419a8a4f1cd621853376a930a2e24'] = 'Se ha enviado un correo electrónico con esta información.'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_30163d8fc3068e8297e7ab5bf32aec87'] = 'Su pedido se enviará lo antes posible.'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_ca7e41a658753c87973936d7ce2429a8'] = 'Si tiene preguntas, comentarios o inquietudes, comuníquese con nuestro'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_30163d8fc3068e8297e7ab5bf32aec87'] = 'Su pedido será enviado lo antes posible.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_ca7e41a658753c87973936d7ce2429a8'] = 'Si tiene preguntas, comentarios o inquietudes, póngase en contacto con nosotros.'; $_MODULE['<{qlopaypalcommerce}prestashop>payment_return_66fcf4c223bbf4c7c886d4784e1f62e4'] = 'equipo experto de atención al cliente'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_7c2ed2f8a5fc3c48f2d49196f96b34b1'] = 'Notamos un problema con su pago. Póngase en contacto con nuestro'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_7c2ed2f8a5fc3c48f2d49196f96b34b1'] = 'Hemos detectado un problema con su pago. Por favor, póngase en contacto con nosotros.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_17a17ba93e6ac0192bd563905e87538d'] = 'Paga utilizando las opciones de pago de PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_644253cd300d73471cf86296d532b964'] = 'Paga con PayPal'; $_MODULE['<{qlopaypalcommerce}prestashop>payment_25e8f2fd2871c8423bbe4e254066cd98'] = 'Espere por favor...'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_dba5abcd5b8bb0ee23a6bde15a6e5fde'] = 'Pago de QloApps PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1639a5f6b16f8d4a04393dbdff0e05f6'] = 'Un negocio global instantáneo.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_dd5e9bb870ec616039f0fe9f2bd4726b'] = 'Una integración para todas sus necesidades de pago en línea.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_e654f7a86a4458b9cd662267e0f29b52'] = 'Beneficios'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_229a7ec501323b94db7ff3157a7623c9'] = 'Identificación del comerciante'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_daa9d1b5682c462e8fc8585bb4cf868c'] = 'Ingrese el ID de comerciante de su cuenta PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_275f5257af70b08ed6def799bfa214b3'] = 'Cuenta de email'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_9b022ec729030a4e40c533c61668d128'] = 'Ingrese el correo electrónico de la cuenta de PayPal de su cuenta de PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_76525f0f34b48475e5ca33f71d296f3b'] = 'Identificación del cliente'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_21fb87c3b83156a1c9e7c51239705335'] = 'Ingrese el ID de cliente de las credenciales de la aplicación de la cuenta de PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_734082edf44417dd19cc65943aa65c36'] = 'Secreto del cliente'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_92718280c77bfa861693c57bad5a0632'] = 'Ingrese el secreto del cliente de las credenciales de la aplicación de la cuenta de PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_e98b5a6351fecb55b2f890686f31856d'] = 'Referencia de pedido de QloApps'; diff --git a/modules/qlopaypalcommerce/translations/gl.php b/modules/qlopaypalcommerce/translations/gl.php index 4486b68b7..19c74fba0 100644 --- a/modules/qlopaypalcommerce/translations/gl.php +++ b/modules/qlopaypalcommerce/translations/gl.php @@ -2,22 +2,135 @@ global $_MODULE; $_MODULE = array(); -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_dba5abcd5b8bb0ee23a6bde15a6e5fde'] = 'QloApps PayPal Checkout'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_dba5abcd5b8bb0ee23a6bde15a6e5fde'] = 'Pagamento de PayPal de QloApps'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1639a5f6b16f8d4a04393dbdff0e05f6'] = 'Un negocio global instantáneo.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_dd5e9bb870ec616039f0fe9f2bd4726b'] = 'Unha integración para todas as necesidades de pago en liña.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_dd5e9bb870ec616039f0fe9f2bd4726b'] = 'Unha integración para todas as túas necesidades de pagamento en liña.'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_e654f7a86a4458b9cd662267e0f29b52'] = 'Beneficios'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_e0a9745011703bc991ab1af1f50ccd20'] = 'Permita aos seus clientes unha experiencia de compra perfecta que impulse a conversión e a fidelización.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_af0fd51a752f317a87b2f7b724856034'] = 'Acepte os pagos de PayPal con incorporación simplificada, integración adaptable e fácil configuración da conta.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_b9b50f4dec6df62993204153f8d5db2c'] = 'Acceso a clientes de 377M + PayPal de todo o mundo *, con soporte en moeda local para unha mellor xestión do diñeiro.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_cb47de9d9350a9025c8c3b657c8c8268'] = 'Tranquilidade para vostede e os seus clientes con protección do comprador e vendedor nas vendas subvencionables.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_8332b9ae4d8931da4a311f410a232619'] = 'Resultado do cuarto trimestre de PayPal 2020'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1e4fe71e24592a98260048fe05cbbb5b'] = 'Debe configurarse a identificación de comerciante de PayPal, o correo electrónico, a identificación de cliente e o segredo.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a02758d758e8bec77a33d7f392eb3f8a'] = 'Non se configurou ningunha moeda para este módulo.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_afcae56aeb45bbff848348abf4824b44'] = 'Configuración de pagamento PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_116e78f6c1c4b4f66a57192817242e35'] = 'Entorno de transacción'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_2652eec977dcb2a5aea85f5bec235b05'] = 'Sandbox'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_e0a9745011703bc991ab1af1f50ccd20'] = 'Habilita unha experiencia de compra fluída para os teus clientes que impulse a conversión e a fidelización.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_af0fd51a752f317a87b2f7b724856034'] = 'Acepta pagamentos de PayPal cunha incorporación simplificada, integración adaptable e configuración de conta sinxela.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_b9b50f4dec6df62993204153f8d5db2c'] = 'Acceso a máis de 377 millóns de clientes de PayPal en todo o mundo*, con compatibilidade coa moeda local para unha mellor xestión do diñeiro.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_cb47de9d9350a9025c8c3b657c8c8268'] = 'Tranquilidade para vostede e os seus clientes coa protección do comprador e do vendedor nas vendas que cumpren os requisitos.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_8332b9ae4d8931da4a311f410a232619'] = 'Resultados do cuarto trimestre de PayPal de 2020'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1e4fe71e24592a98260048fe05cbbb5b'] = 'Débense configurar o ID de comerciante, o correo electrónico, o ID de cliente e o segredo de PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a02758d758e8bec77a33d7f392eb3f8a'] = 'Non se estableceu ningunha moeda para este módulo.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_afcae56aeb45bbff848348abf4824b44'] = 'Configuración de pagamento de PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_116e78f6c1c4b4f66a57192817242e35'] = 'Ambiente de transaccións'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_2652eec977dcb2a5aea85f5bec235b05'] = 'Zona de probas'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_756d97bb256b8580d4d71ee0c547804e'] = 'Produción'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_bb6e852329aacf2cc839e01ab1ce1773'] = 'Selecciona o entorno de pago de PayPal ou sandbox ou produción. Podes obter transaccións reais só na produción, para probas, usa sandbox.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_bb6e852329aacf2cc839e01ab1ce1773'] = 'Selecciona o entorno de pagamento de PayPal, xa sexa sandbox ou produción. Só podes obter transaccións reais en produción; para probas, usa sandbox.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_ed4f8785248e2d9a8a8b25e5c483551a'] = 'ID de comerciante de Sandbox'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_6d132ffd3d699649441bdc627dd57eba'] = 'Introduza o ID de comerciante da súa conta de probas de PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_36808d0f8a32391ba62716d9831040e5'] = 'Correo electrónico da conta de probas'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_ff8336737d5f067b6c11724bd6fc944e'] = 'Introduce o correo electrónico da conta de PayPal da túa conta de probas de PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a0bd7d42b20f8ca0c6f28bdd30a1af1f'] = 'ID do cliente de Sandbox'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_e7b65a83fa18a3396a4b140483e6f288'] = 'Introduza o ID de cliente das credenciais da aplicación da conta de probas de PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_9af7eae52a08a132e079c3e910bb2cbe'] = 'Segredo do cliente de Sandbox'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_023d4f770106b82c4984d38c9033d393'] = 'Introduza o segredo do cliente das credenciais da aplicación de conta de probas de PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_450e2248dad7a152379bf016310e1eba'] = 'ID de comerciante en directo'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_3058efc14b28f688630f4e6770db5f03'] = 'Introduza o ID de comerciante da súa conta real de PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_c916854e86ef605147fce41d400b6d74'] = 'Correo electrónico da conta real'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_05e0b13ee68a1adcd4939da789611213'] = 'Introduza o correo electrónico da conta de PayPal da súa conta real de PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1087b413bc531d99ee4deb93e280bfed'] = 'ID de cliente en directo'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_dfa5a074df3ad0ca4018a93243fcce1e'] = 'Introduza o ID de cliente das credenciais da aplicación de conta en directo de PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_b9b75793dc0a1d8225b39b8be4392339'] = 'Segredo do cliente en directo'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1382bf9075c663adbf10818ed4789234'] = 'Introduza o segredo do cliente das credenciais da aplicación de conta real de PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_783901fa167d90d82463e71da67c5e52'] = 'Protección ao vendedor de PayPal non aplicable'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_c9cc8cce247e49bae79f15173ce97354'] = 'Gardar'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a1c0702a8ce0c1562b372b93b5b8ae70'] = 'Introduza o ID do comerciante'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_5f8d20654b3683fd837ad6766a99b388'] = 'O ID de comerciante proporcionado non é válido.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_451ad04779375f902c3c9de28f096f42'] = 'Introduza o correo electrónico da conta'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a23555edc4d09483a2d5d84478a6e8d3'] = 'Introduza un correo electrónico de conta válido'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_d78b4ac6843d2634c46a59c2d0c2629d'] = 'Introduza o ID do cliente'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_3640405a6244a23f537de55975337bf3'] = 'Introduza o segredo do cliente'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_89493d1e532e6577510bbd93052bf20c'] = 'O pagador iniciou unha disputa con PayPal por este pago capturado.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_9c28e950fb310ee005da61698456bc61'] = 'Os fondos capturados foron revertidos en resposta a unha disputa por parte do pagador sobre este pagamento capturado co emisor do instrumento financeiro utilizado para pagar este pagamento capturado.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_e2740ccb963c88d2739ee7ff5d493235'] = 'O pagador pagou cun cheque electrónico que aínda non foi compensado.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_4e3da671b7e244adc46f9093e150fd99'] = 'Visita a túa conta en liña. Na **Visión xeral da conta**, acepta e rexeita este pago.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_f3d713097a36e0a9f589755465883f91'] = 'Non se pode proporcionar ningunha razón específica adicional. Para obter máis información sobre este pago capturado, visite a súa conta en liña ou póñase en contacto con PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_04263f8fe176af4cd42d9756fc136cfe'] = 'O pagamento capturado está pendente de revisión manual.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_c343691c63a475e04acf19b98945bc59'] = 'O beneficiario aínda non configurou as preferencias de recepción axeitadas para a súa conta. Para obter máis información sobre como aceptar ou rexeitar este pago, visita a túa conta en liña. Este motivo adoita ofrecerse en situacións como cando a moeda do pago capturado é diferente da moeda principal de tenza do beneficiario.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_71013ee01f1a31c0310bcf4a91162c29'] = 'Os fondos capturados foron devoltos.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_a4656378d78c3d73b354ddc0d4dabe18'] = 'O pagador debe enviar os fondos para este pago capturado. Este código xeralmente aparece para as transferencias electrónicas de fondos manuais.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_1bca65212e4eba1b64766eeb66091af2'] = 'O beneficiario non ten unha conta de PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_53c3196bca5dde9b71e5be8287ae9cde'] = 'A conta de PayPal do beneficiario non está verificada'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_a7a37ae71b70fe671308691cc6fe03dc'] = 'Transaccións de PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_1e860e56970a81a1ba3e1fcb7fccc846'] = 'Referencia da orde'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_55307c995094996234479b33fbc16bd1'] = 'Referencia da orde en QloApps da transacción de PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2b6ab125b0384eb33453b95c3f8e4ae6'] = 'ID de transacción de PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_dae74f84a69dab4b8e04999f2460febf'] = 'ID da transacción de PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2763b4242763cbee7190de46d45d204f'] = 'Total da transacción'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_e8453b7e2a7ccf2edeae228682a61b8d'] = 'Importe total pagado na transacción de PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_ce26601dac0dea138b7295f02b7620a7'] = 'Cliente'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_41a9d5e195648f50143f1c1abf5e00e6'] = 'Cliente nas QloApps que realizou unha transacción de PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_ec53a8c4f07baed5d8825072c89799be'] = 'Estado'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2ea78fadfafeae47ad786c288667eadf'] = 'Estado do pago'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_3516529c1d87f5fde62d6841140f5dc0'] = 'Estado actual da transacción de PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_6fbc355a02359656f1e4540d58b784e1'] = 'Data da orde'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_168f21218c30dcc245dc1c62c103cb7b'] = 'Data de creación da orde.'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_630f6dc397fe74e52d5189e2c80f282b'] = 'Volver á lista'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2a43821ec21eadc4073fc65dc35d2198'] = 'Tipo de reembolso non válido.'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_4e7f26d58027e5f9611cc5fe9d901e06'] = 'Importe do reembolso non válido.'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_5eaf60217767a2ad1e30d36dc3a1c12c'] = 'Introduza un motivo válido para o reembolso (só se permiten caracteres alfanuméricos).'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_ee4f91ae6dc5a35a0060efa164cb65d9'] = 'Importe do reembolso non válido. O importe máximo dispoñible para o reembolso é'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_6a8b1040e75c9723eef0a783ffc0e1d2'] = 'Xa se realizou o reembolso desta transacción.'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_446b416d535ed3f547fcd653dc11d49c'] = 'Solicitude non válida'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_e2b7dec8fa4b498156dfee6e4c84b156'] = 'Este método de pago non está dispoñible.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_2b46a852749d321a4c6eafa3b36b643c'] = 'Pagamento de PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_78170aac364ebe8527577b742dc2111d'] = 'Detalles da transacción de PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_34c15b4659b2241667e4c5d534270a17'] = 'Ambiente de pagamento'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_2652eec977dcb2a5aea85f5bec235b05'] = 'Zona de probas'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_756d97bb256b8580d4d71ee0c547804e'] = 'Produción'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_6f097b8feb2af129c8f74c786c130c1c'] = 'ID de referencia de PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_2b6ab125b0384eb33453b95c3f8e4ae6'] = 'ID de transacción de PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_157c928dae48d88d19fb2ced2afbdd71'] = 'ID do pedido de PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_fdabf4e63a3cc1fe987269ff4e629148'] = 'Importe da transacción'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_1e860e56970a81a1ba3e1fcb7fccc846'] = 'Referencia da orde'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_2ea989f83006e233627987293f4bde0a'] = 'Nome do cliente'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_54945fdafec2c65f0f5561d65b165f1a'] = 'Correo electrónico do cliente'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_475007c00d7c166cca01a44ecfd068ff'] = 'Ver cliente'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_4351cfebe4b61d8aa5efa1d020710005'] = 'Vista'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_2ea78fadfafeae47ad786c288667eadf'] = 'Estado do pago'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_8f7afecbc8fbc4cd0f50a57d1172482e'] = 'COMPLETADO'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_31738cd694667ccdfa2cbc65249de5cc'] = 'Data de pagamento'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_580d87d5c5121696825f17708b1ec065'] = 'Importe total reembolsado'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_8b123a0f5d61720a4273bc4ed1d613a3'] = 'Transacción de reembolso'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_a3a13394565fb6956d6948a1dbb8fe3f'] = 'Importe total reembolsado'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_9d9dca90e919bd4c8febf55ea7a25b5f'] = 'Importe total dispoñible para reembolsar'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_51890b292429265077afcc0b2bb6f34a'] = 'Selecciona o tipo de reembolso. Selecciona reembolso parcial para reembolsar unha cantidade parcial da transacción. Selecciona reembolso completo para reembolsar o importe total da transacción.'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_d8fb839f1db11646b85354c3fb50fda3'] = 'Tipo de reembolso'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_4f5a217b333e276be931951be6dc28f0'] = 'Seleccionar tipo de reembolso'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_abcec07843d3ec02783b27587560f85f'] = 'Reembolso completo'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_c985a711556e2edf5cac28dfbdb43ff0'] = 'Reembolso parcial'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_84bca5dc34bb0d1244a9e0f323878665'] = 'Introduza a cantidade que desexa reembolsar do importe da transacción.'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_b782d4ff61550d7e8cdee4cf70a03788'] = 'Importe do reembolso'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_6bbeabf389367bc93090db6dd0c13c4e'] = 'máx.'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_85689c24167c4690a0e346c46a17598c'] = 'Introduza un comentario para este reembolso.'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_97d8f33367ecaeee79d5255b447c8827'] = 'Observación de reembolso'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_76f0ed934de85cc7131910b32ede7714'] = 'Reembolso'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_072ab77c58ea38de4e3272c3eed624c1'] = 'Lista de reembolsos'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_88427ec035734b45aae9f7d8859a5008'] = 'ID da transacción'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_b2f40690858b404ed10e62bdf422c704'] = 'Cantidade'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_a1fa27779242b4902f7ae3bdd5c6d508'] = 'Tipo'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_ec53a8c4f07baed5d8825072c89799be'] = 'Estado'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_44749712dbec183e983dcd78a7736c41'] = 'Data'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_91921ada405fd6ba65dff028df047cb6'] = 'Observación'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_a207494d393a4f4909f746fd24440440'] = 'Aínda non se crearon reembolsos.'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_e3bc22b32f4abd925670253972326260'] = 'Importe total reembolsado:'; +$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_7b12dad517fd9056aabf8099a8173ddf'] = 'O teu pago fallou debido ao seguinte motivo:'; +$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_3d9f514d46849760ef1b1412e314fd99'] = 'Erro:'; +$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_0d6779532e0735f6a9b05723ab191bc3'] = 'Descrición do erro:'; +$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_569fd05bdafa1712c4f6be5b153b8418'] = 'Outros métodos de pago'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_cancel_ack_0e1b6078789badcbfae8640288a46f0f'] = 'Cancelaches o pago con PayPal. Podes intentalo de novo con PayPal ou probar un método de pago diferente.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_88526efe38fd18179a127024aba8c1d7'] = 'Completouse o teu pedido en %s.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_cd44f47a868e5e42fa1a23b775504490'] = 'Importe total pagado'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_19c419a8a4f1cd621853376a930a2e24'] = 'Enviouse un correo electrónico con esta información.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_30163d8fc3068e8297e7ab5bf32aec87'] = 'O teu pedido enviarase o antes posible.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_ca7e41a658753c87973936d7ce2429a8'] = 'Se tes algunha pregunta, comentario ou preocupación, ponte en contacto co noso'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_66fcf4c223bbf4c7c886d4784e1f62e4'] = 'equipo experto de atención ao cliente'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_7c2ed2f8a5fc3c48f2d49196f96b34b1'] = 'Detectámos un problema co teu pagamento. Ponte en contacto co noso'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_17a17ba93e6ac0192bd563905e87538d'] = 'Paga usando as opcións de pagamento de Paypal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_644253cd300d73471cf86296d532b964'] = 'Pagar con Paypal'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_25e8f2fd2871c8423bbe4e254066cd98'] = 'Agarde, por favor...'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_229a7ec501323b94db7ff3157a7623c9'] = 'Identificación de comerciante'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_daa9d1b5682c462e8fc8585bb4cf868c'] = 'Introduza o ID de comerciante da súa conta PayPal.'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_275f5257af70b08ed6def799bfa214b3'] = 'Correo electrónico da conta'; @@ -26,97 +139,4 @@ $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_76525f0f34b48475e5ca3 $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_21fb87c3b83156a1c9e7c51239705335'] = 'Introduza o ID de cliente das credenciais da aplicación de conta PayPal.'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_734082edf44417dd19cc65943aa65c36'] = 'Secreto do cliente'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_92718280c77bfa861693c57bad5a0632'] = 'Introduza o segredo do cliente desde as credenciais da aplicación de conta PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_783901fa167d90d82463e71da67c5e52'] = 'Protección do vendedor de PayPal non aplicable'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_c9cc8cce247e49bae79f15173ce97354'] = 'Gardar'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a1c0702a8ce0c1562b372b93b5b8ae70'] = 'Introduza o identificador de comerciante'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_5f8d20654b3683fd837ad6766a99b388'] = 'A identificación de comerciante non foi válida.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_451ad04779375f902c3c9de28f096f42'] = 'Introduza o correo electrónico da conta'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a23555edc4d09483a2d5d84478a6e8d3'] = 'Introduza o correo electrónico da conta válido'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_d78b4ac6843d2634c46a59c2d0c2629d'] = 'Introduza o ID de cliente'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_3640405a6244a23f537de55975337bf3'] = 'Introduza o segredo do cliente'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_89493d1e532e6577510bbd93052bf20c'] = 'O pagador iniciou unha disputa por este pago capturado con PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_9c28e950fb310ee005da61698456bc61'] = 'Os fondos capturados invertíronse en resposta a que o pagador disputase este pago capturado co emisor do instrumento financeiro usado para pagar este pago capturado.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_e2740ccb963c88d2739ee7ff5d493235'] = 'O pagador pagou por un eCheck que aínda non liquidou.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_4e3da671b7e244adc46f9093e150fd99'] = 'Visita a túa conta en liña. Na súa ** Visión xeral da conta **, acepte e denegue este pago.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_f3d713097a36e0a9f589755465883f91'] = 'Non se pode proporcionar ningún motivo específico adicional. Para obter máis información sobre este pago capturado, visite a súa conta en liña ou contacte con PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_04263f8fe176af4cd42d9756fc136cfe'] = 'O pago capturado está pendente de revisión manual.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_c343691c63a475e04acf19b98945bc59'] = 'O beneficiario aínda non configurou as preferencias de recepción adecuadas para a súa conta. Para obter máis información sobre como aceptar ou denegar este pago, visite a súa conta en liña. Esta razón ofrécese normalmente en escenarios como cando a moeda do pago capturado é diferente da moeda de retención principal do beneficiario.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_71013ee01f1a31c0310bcf4a91162c29'] = 'Os fondos capturados foron devoltos.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_a4656378d78c3d73b354ddc0d4dabe18'] = 'O pagador debe enviar os fondos para este pago capturado. Este código xeralmente aparece para os EFT manuais.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_1bca65212e4eba1b64766eeb66091af2'] = 'O beneficiario non ten unha conta PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_53c3196bca5dde9b71e5be8287ae9cde'] = 'A conta PayPal do beneficiario non está verificada'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_a7a37ae71b70fe671308691cc6fe03dc'] = 'Transaccións PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_1e860e56970a81a1ba3e1fcb7fccc846'] = 'Referencia da orde'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_55307c995094996234479b33fbc16bd1'] = 'Referencia de pedido en QloApps da transacción PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2b6ab125b0384eb33453b95c3f8e4ae6'] = 'ID de transacción PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_dae74f84a69dab4b8e04999f2460febf'] = 'Id da transacción de PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2763b4242763cbee7190de46d45d204f'] = 'Transacción total'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_e8453b7e2a7ccf2edeae228682a61b8d'] = 'Importe total pagado na transacción PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_ce26601dac0dea138b7295f02b7620a7'] = 'Cliente'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_41a9d5e195648f50143f1c1abf5e00e6'] = 'Cliente en QloApps que realizou unha transacción con PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_ec53a8c4f07baed5d8825072c89799be'] = 'Estado'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2ea78fadfafeae47ad786c288667eadf'] = 'Estado de pagamento'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_3516529c1d87f5fde62d6841140f5dc0'] = 'Estado actual da transacción PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_6fbc355a02359656f1e4540d58b784e1'] = 'Data de pedido'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_168f21218c30dcc245dc1c62c103cb7b'] = 'Data de creación da orde.'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_630f6dc397fe74e52d5189e2c80f282b'] = 'Volver á lista'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2a43821ec21eadc4073fc65dc35d2198'] = 'Tipo de reembolso non válido.'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_4e7f26d58027e5f9611cc5fe9d901e06'] = 'Importe do reembolso non válido.'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_5eaf60217767a2ad1e30d36dc3a1c12c'] = 'Insira un motivo de reembolso válido (só se permite o alfanumérico).'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_ee4f91ae6dc5a35a0060efa164cb65d9'] = 'Importe do reembolso non válido. Máx. o importe dispoñible para o reembolso é de'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_6a8b1040e75c9723eef0a783ffc0e1d2'] = 'Xa se realizou o reembolso por esta transacción.'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_446b416d535ed3f547fcd653dc11d49c'] = 'Solicitude non válida'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_e2b7dec8fa4b498156dfee6e4c84b156'] = 'Este método de pago non está dispoñible.'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_2b46a852749d321a4c6eafa3b36b643c'] = 'PayPal Checkout'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_78170aac364ebe8527577b742dc2111d'] = 'Detalles da transacción de PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_34c15b4659b2241667e4c5d534270a17'] = 'Contorno de pagamento'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_2652eec977dcb2a5aea85f5bec235b05'] = 'Sandbox'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_756d97bb256b8580d4d71ee0c547804e'] = 'Produción'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_6f097b8feb2af129c8f74c786c130c1c'] = 'ID de referencia de PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_2b6ab125b0384eb33453b95c3f8e4ae6'] = 'ID de transacción PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_157c928dae48d88d19fb2ced2afbdd71'] = 'ID de pedido de PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_fdabf4e63a3cc1fe987269ff4e629148'] = 'Importe da transacción'; $_MODULE['<{qlopaypalcommerce}prestashop>view_e98b5a6351fecb55b2f890686f31856d'] = 'Referencia de pedidos de QloApps'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_2ea989f83006e233627987293f4bde0a'] = 'Nome do cliente'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_54945fdafec2c65f0f5561d65b165f1a'] = 'Correo electrónico do cliente'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_475007c00d7c166cca01a44ecfd068ff'] = 'Ver cliente'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_4351cfebe4b61d8aa5efa1d020710005'] = 'Ver'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_2ea78fadfafeae47ad786c288667eadf'] = 'Estado de pagamento'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_8f7afecbc8fbc4cd0f50a57d1172482e'] = 'REMATADO'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_31738cd694667ccdfa2cbc65249de5cc'] = 'Data de pagamento'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_580d87d5c5121696825f17708b1ec065'] = 'Importe reembolsado total'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_8b123a0f5d61720a4273bc4ed1d613a3'] = 'Transacción de reembolso'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_a3a13394565fb6956d6948a1dbb8fe3f'] = 'Importe total reembolsado'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_9d9dca90e919bd4c8febf55ea7a25b5f'] = 'Importe total dispoñible para reembolsar'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_51890b292429265077afcc0b2bb6f34a'] = 'Selecciona o tipo de reembolso. Seleccione o reembolso parcial para devolver o importe parcial da transacción. Seleccione o reembolso completo para reembolsar o importe total da transacción.'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_d8fb839f1db11646b85354c3fb50fda3'] = 'Tipo de reembolso'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_4f5a217b333e276be931951be6dc28f0'] = 'Selecciona o tipo de reembolso'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_abcec07843d3ec02783b27587560f85f'] = 'Reembolso total'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_c985a711556e2edf5cac28dfbdb43ff0'] = 'Reembolso parcial'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_84bca5dc34bb0d1244a9e0f323878665'] = 'Introduza o importe que desexa reembolsar do importe da transacción.'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_b782d4ff61550d7e8cdee4cf70a03788'] = 'Importe do reembolso'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_6bbeabf389367bc93090db6dd0c13c4e'] = 'máx.'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_85689c24167c4690a0e346c46a17598c'] = 'Introduce un comentario para este reembolso.'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_97d8f33367ecaeee79d5255b447c8827'] = 'Observación de reembolso'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_76f0ed934de85cc7131910b32ede7714'] = 'Reembolso'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_072ab77c58ea38de4e3272c3eed624c1'] = 'Lista de reembolsos'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_88427ec035734b45aae9f7d8859a5008'] = 'ID de transacción'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_b2f40690858b404ed10e62bdf422c704'] = 'Cantidade'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_a1fa27779242b4902f7ae3bdd5c6d508'] = 'Tipo'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_ec53a8c4f07baed5d8825072c89799be'] = 'Estado'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_44749712dbec183e983dcd78a7736c41'] = 'Data'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_a207494d393a4f4909f746fd24440440'] = 'Aínda non se crearon devolucións.'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_e3bc22b32f4abd925670253972326260'] = 'Importe total reembolsado: '; -$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_7b12dad517fd9056aabf8099a8173ddf'] = 'Fallou o pago debido ao seguinte motivo:'; -$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_3d9f514d46849760ef1b1412e314fd99'] = 'Erro:'; -$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_0d6779532e0735f6a9b05723ab191bc3'] = 'Descrición do erro:'; -$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_569fd05bdafa1712c4f6be5b153b8418'] = 'Outros métodos de pagamento'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_cancel_ack_0e1b6078789badcbfae8640288a46f0f'] = 'Cancelaches o pago por PayPal. Podes tentalo de novo con PayPal ou probar outro método de pago.'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_88526efe38fd18179a127024aba8c1d7'] = 'O teu pedido en% s completouse.'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_cd44f47a868e5e42fa1a23b775504490'] = 'Importe total pagado'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_19c419a8a4f1cd621853376a930a2e24'] = 'Enviouse un correo electrónico con esta información.'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_30163d8fc3068e8297e7ab5bf32aec87'] = 'O seu pedido enviarase canto antes.'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_ca7e41a658753c87973936d7ce2429a8'] = 'Se tes dúbidas, comentarios ou dúbidas, ponte en contacto co noso'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_66fcf4c223bbf4c7c886d4784e1f62e4'] = 'equipo de atención ao cliente experto'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_7c2ed2f8a5fc3c48f2d49196f96b34b1'] = 'Detectamos un problema co teu pago. Póñase en contacto co noso'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_25e8f2fd2871c8423bbe4e254066cd98'] = 'Agarde por favor ...'; diff --git a/modules/qlopaypalcommerce/translations/it.php b/modules/qlopaypalcommerce/translations/it.php index 2979d0181..b5a713ce4 100644 --- a/modules/qlopaypalcommerce/translations/it.php +++ b/modules/qlopaypalcommerce/translations/it.php @@ -2,22 +2,135 @@ global $_MODULE; $_MODULE = array(); -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_dba5abcd5b8bb0ee23a6bde15a6e5fde'] = 'Checkout PayPal di QloApps'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1639a5f6b16f8d4a04393dbdff0e05f6'] = 'Un business globale istantaneo.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_dba5abcd5b8bb0ee23a6bde15a6e5fde'] = 'Pagamento tramite PayPal con QloApps'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1639a5f6b16f8d4a04393dbdff0e05f6'] = 'Un\'attività globale immediata.'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_dd5e9bb870ec616039f0fe9f2bd4726b'] = 'Un\'unica integrazione per tutte le tue esigenze di pagamento online.'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_e654f7a86a4458b9cd662267e0f29b52'] = 'Benefici'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_e0a9745011703bc991ab1af1f50ccd20'] = 'Consenti un\'esperienza di acquisto senza interruzioni per i tuoi clienti che promuove conversioni e fedeltà.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_af0fd51a752f317a87b2f7b724856034'] = 'Accetta pagamenti PayPal con onboarding semplificato, integrazione adattabile e facile configurazione dell\'account.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_b9b50f4dec6df62993204153f8d5db2c'] = 'Accesso a oltre 377 milioni di clienti PayPal in tutto il mondo *, con supporto in valuta locale per una migliore gestione del denaro.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_cb47de9d9350a9025c8c3b657c8c8268'] = 'Tranquillità per te e i tuoi clienti grazie alla protezione dell\'acquirente e del venditore sulle vendite idonee.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_8332b9ae4d8931da4a311f410a232619'] = 'Risultato del quarto trimestre 2020 di PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1e4fe71e24592a98260048fe05cbbb5b'] = 'È necessario configurare ID commerciante PayPal, e-mail, ID cliente e segreto.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a02758d758e8bec77a33d7f392eb3f8a'] = 'Nessuna valuta è stata impostata per questo modulo.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_afcae56aeb45bbff848348abf4824b44'] = 'Configurazione pagamento PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_e0a9745011703bc991ab1af1f50ccd20'] = 'Offri ai tuoi clienti un\'esperienza di acquisto fluida che favorisca le conversioni e la fidelizzazione.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_af0fd51a752f317a87b2f7b724856034'] = 'Accetta pagamenti PayPal con una procedura di registrazione semplificata, un\'integrazione flessibile e una facile configurazione dell\'account.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_b9b50f4dec6df62993204153f8d5db2c'] = 'Accesso a oltre 377 milioni di clienti PayPal in tutto il mondo*, con supporto per le valute locali per una migliore gestione del denaro.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_cb47de9d9350a9025c8c3b657c8c8268'] = 'Tranquillità per te e per i tuoi clienti grazie alla protezione acquirenti e venditori per le vendite idonee.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_8332b9ae4d8931da4a311f410a232619'] = 'Risultati del quarto trimestre 2020 di PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1e4fe71e24592a98260048fe05cbbb5b'] = 'È necessario configurare l\'ID commerciante, l\'indirizzo email, l\'ID cliente e la chiave segreta di PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a02758d758e8bec77a33d7f392eb3f8a'] = 'Per questo modulo non è stata impostata alcuna valuta.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_afcae56aeb45bbff848348abf4824b44'] = 'Configurazione del pagamento PayPal'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_116e78f6c1c4b4f66a57192817242e35'] = 'Ambiente di transazione'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_2652eec977dcb2a5aea85f5bec235b05'] = 'Sandbox'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_756d97bb256b8580d4d71ee0c547804e'] = 'Produzione'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_bb6e852329aacf2cc839e01ab1ce1773'] = 'Seleziona l\'ambiente di pagamento PayPal sandbox o produzione. È possibile ottenere transazioni reali solo in produzione, per i test, utilizzare sandbox.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_bb6e852329aacf2cc839e01ab1ce1773'] = 'Seleziona l\'ambiente di pagamento PayPal: sandbox o produzione. Puoi effettuare transazioni reali solo nell\'ambiente di produzione; per i test, utilizza l\'ambiente sandbox.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_ed4f8785248e2d9a8a8b25e5c483551a'] = 'ID Commerciante Sandbox'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_6d132ffd3d699649441bdc627dd57eba'] = 'Inserisci l\'ID commerciante del tuo account sandbox PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_36808d0f8a32391ba62716d9831040e5'] = 'Indirizzo e-mail dell\'account sandbox'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_ff8336737d5f067b6c11724bd6fc944e'] = 'Inserisci l\'indirizzo email del tuo account PayPal di test.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a0bd7d42b20f8ca0c6f28bdd30a1af1f'] = 'ID client sandbox'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_e7b65a83fa18a3396a4b140483e6f288'] = 'Inserisci l\'ID cliente dalle credenziali dell\'app dell\'account sandbox di PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_9af7eae52a08a132e079c3e910bb2cbe'] = 'Segreto del client sandbox'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_023d4f770106b82c4984d38c9033d393'] = 'Inserisci il Client Secret dalle credenziali dell\'app dell\'account sandbox di PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_450e2248dad7a152379bf016310e1eba'] = 'ID commerciante attivo'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_3058efc14b28f688630f4e6770db5f03'] = 'Inserisci l\'ID commerciante del tuo conto PayPal attivo.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_c916854e86ef605147fce41d400b6d74'] = 'E-mail dell\'account attivo'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_05e0b13ee68a1adcd4939da789611213'] = 'Inserisci l\'indirizzo email del tuo conto PayPal Live.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1087b413bc531d99ee4deb93e280bfed'] = 'ID client in tempo reale'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_dfa5a074df3ad0ca4018a93243fcce1e'] = 'Inserisci l\'ID cliente dalle credenziali dell\'app PayPal Live Account.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_b9b75793dc0a1d8225b39b8be4392339'] = 'Segreto del client live'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1382bf9075c663adbf10818ed4789234'] = 'Inserisci il Client Secret dalle credenziali dell\'app PayPal Live Account.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_783901fa167d90d82463e71da67c5e52'] = 'La protezione venditori PayPal non è applicabile.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_c9cc8cce247e49bae79f15173ce97354'] = 'Salva'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a1c0702a8ce0c1562b372b93b5b8ae70'] = 'Inserisci l\'ID del commerciante'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_5f8d20654b3683fd837ad6766a99b388'] = 'ID commerciante non valido.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_451ad04779375f902c3c9de28f096f42'] = 'Inserisci l\'indirizzo e-mail dell\'account'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a23555edc4d09483a2d5d84478a6e8d3'] = 'Inserisci un indirizzo email valido per l\'account.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_d78b4ac6843d2634c46a59c2d0c2629d'] = 'Inserisci l\'ID cliente'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_3640405a6244a23f537de55975337bf3'] = 'Inserisci il segreto del cliente'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_89493d1e532e6577510bbd93052bf20c'] = 'Il pagatore ha avviato una contestazione con PayPal per questo pagamento acquisito.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_9c28e950fb310ee005da61698456bc61'] = 'I fondi sequestrati sono stati stornati in seguito alla contestazione da parte del pagatore nei confronti dell\'emittente dello strumento finanziario utilizzato per effettuare tale pagamento.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_e2740ccb963c88d2739ee7ff5d493235'] = 'Il pagatore ha effettuato il pagamento tramite eCheck, che non è ancora stato accreditato.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_4e3da671b7e244adc46f9093e150fd99'] = 'Accedi al tuo account online. Nella sezione **Panoramica dell\'account**, accetta o rifiuta questo pagamento.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_f3d713097a36e0a9f589755465883f91'] = 'Non è possibile fornire ulteriori motivazioni specifiche. Per maggiori informazioni su questo pagamento acquisito, visita il tuo conto online o contatta PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_04263f8fe176af4cd42d9756fc136cfe'] = 'Il pagamento acquisito è in attesa di verifica manuale.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_c343691c63a475e04acf19b98945bc59'] = 'Il beneficiario non ha ancora impostato le preferenze di ricezione appropriate per il proprio conto. Per ulteriori informazioni su come accettare o rifiutare questo pagamento, visita il tuo conto online. Questo motivo viene in genere fornito in situazioni come quando la valuta del pagamento ricevuto è diversa dalla valuta principale del conto del beneficiario.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_71013ee01f1a31c0310bcf4a91162c29'] = 'I fondi sequestrati sono stati restituiti.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_a4656378d78c3d73b354ddc0d4dabe18'] = 'Il pagatore deve inviare i fondi per questo pagamento acquisito. Questo codice compare generalmente per i bonifici elettronici manuali.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_1bca65212e4eba1b64766eeb66091af2'] = 'Il beneficiario non possiede un conto PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_53c3196bca5dde9b71e5be8287ae9cde'] = 'L\'account PayPal del beneficiario non è verificato'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_a7a37ae71b70fe671308691cc6fe03dc'] = 'Transazioni PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_1e860e56970a81a1ba3e1fcb7fccc846'] = 'Riferimento ordine'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_55307c995094996234479b33fbc16bd1'] = 'Riferimento ordine in QloApps della transazione PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2b6ab125b0384eb33453b95c3f8e4ae6'] = 'ID transazione PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_dae74f84a69dab4b8e04999f2460febf'] = 'ID della transazione PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2763b4242763cbee7190de46d45d204f'] = 'Totale della transazione'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_e8453b7e2a7ccf2edeae228682a61b8d'] = 'Importo totale pagato nella transazione PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_ce26601dac0dea138b7295f02b7620a7'] = 'Cliente'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_168f21218c30dcc245dc1c62c103cb7b'] = 'Data di creazione dell\'ordine.'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_630f6dc397fe74e52d5189e2c80f282b'] = 'Torna all\'elenco'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2a43821ec21eadc4073fc65dc35d2198'] = 'Tipo di rimborso non valido.'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_4e7f26d58027e5f9611cc5fe9d901e06'] = 'Importo del rimborso non valido.'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_5eaf60217767a2ad1e30d36dc3a1c12c'] = 'Inserisci un motivo di rimborso valido (sono ammessi solo caratteri alfanumerici).'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_ee4f91ae6dc5a35a0060efa164cb65d9'] = 'Importo del rimborso non valido. L\'importo massimo disponibile per il rimborso è'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_6a8b1040e75c9723eef0a783ffc0e1d2'] = 'Il rimborso per questa transazione è già stato effettuato.'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_446b416d535ed3f547fcd653dc11d49c'] = 'Richiesta non valida'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_e2b7dec8fa4b498156dfee6e4c84b156'] = 'Questo metodo di pagamento non è disponibile.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_2b46a852749d321a4c6eafa3b36b643c'] = 'Pagamento tramite PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_78170aac364ebe8527577b742dc2111d'] = 'Dettagli della transazione PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_34c15b4659b2241667e4c5d534270a17'] = 'Ambiente di pagamento'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_2652eec977dcb2a5aea85f5bec235b05'] = 'Sandbox'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_756d97bb256b8580d4d71ee0c547804e'] = 'Produzione'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_6f097b8feb2af129c8f74c786c130c1c'] = 'ID di riferimento PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_2b6ab125b0384eb33453b95c3f8e4ae6'] = 'ID transazione PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_157c928dae48d88d19fb2ced2afbdd71'] = 'ID ordine PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_fdabf4e63a3cc1fe987269ff4e629148'] = 'Importo della transazione'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_1e860e56970a81a1ba3e1fcb7fccc846'] = 'Riferimento ordine'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_2ea989f83006e233627987293f4bde0a'] = 'Nome del cliente'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_54945fdafec2c65f0f5561d65b165f1a'] = 'E-mail del cliente'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_475007c00d7c166cca01a44ecfd068ff'] = 'Visualizza cliente'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_4351cfebe4b61d8aa5efa1d020710005'] = 'Visualizzazione'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_2ea78fadfafeae47ad786c288667eadf'] = 'Stato del pagamento'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_8f7afecbc8fbc4cd0f50a57d1172482e'] = 'COMPLETATO'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_31738cd694667ccdfa2cbc65249de5cc'] = 'Data di pagamento'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_580d87d5c5121696825f17708b1ec065'] = 'Importo totale rimborsato'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_8b123a0f5d61720a4273bc4ed1d613a3'] = 'Transazione di rimborso'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_a3a13394565fb6956d6948a1dbb8fe3f'] = 'Importo totale rimborsato'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_9d9dca90e919bd4c8febf55ea7a25b5f'] = 'Importo totale disponibile per il rimborso'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_51890b292429265077afcc0b2bb6f34a'] = 'Seleziona il tipo di rimborso. Seleziona \\\"rimborso parziale\\\" per ottenere un rimborso parziale dell\'importo della transazione. Seleziona \\\"rimborso totale\\\" per ottenere il rimborso dell\'intero importo della transazione.'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_d8fb839f1db11646b85354c3fb50fda3'] = 'Tipo di rimborso'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_4f5a217b333e276be931951be6dc28f0'] = 'Seleziona il tipo di rimborso'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_abcec07843d3ec02783b27587560f85f'] = 'Rimborso completo'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_c985a711556e2edf5cac28dfbdb43ff0'] = 'Rimborso parziale'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_84bca5dc34bb0d1244a9e0f323878665'] = 'Inserisci l\'importo che desideri rimborsare dall\'importo della transazione.'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_b782d4ff61550d7e8cdee4cf70a03788'] = 'Importo del rimborso'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_6bbeabf389367bc93090db6dd0c13c4e'] = 'massimo'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_85689c24167c4690a0e346c46a17598c'] = 'Inserisci una nota per questo rimborso.'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_97d8f33367ecaeee79d5255b447c8827'] = 'Rimborso Nota'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_76f0ed934de85cc7131910b32ede7714'] = 'Rimborso'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_072ab77c58ea38de4e3272c3eed624c1'] = 'Elenco dei rimborsi'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_88427ec035734b45aae9f7d8859a5008'] = 'ID transazione'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_b2f40690858b404ed10e62bdf422c704'] = 'Quantità'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_a1fa27779242b4902f7ae3bdd5c6d508'] = 'Tipo'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_ec53a8c4f07baed5d8825072c89799be'] = 'Stato'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_44749712dbec183e983dcd78a7736c41'] = 'Data'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_91921ada405fd6ba65dff028df047cb6'] = 'Osservazione'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_a207494d393a4f4909f746fd24440440'] = 'Nessun rimborso è stato ancora effettuato.'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_e3bc22b32f4abd925670253972326260'] = 'Importo totale rimborsato:'; +$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_7b12dad517fd9056aabf8099a8173ddf'] = 'Il pagamento non è andato a buon fine per il seguente motivo:'; +$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_3d9f514d46849760ef1b1412e314fd99'] = 'Errore:'; +$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_0d6779532e0735f6a9b05723ab191bc3'] = 'Descrizione dell\'errore:'; +$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_569fd05bdafa1712c4f6be5b153b8418'] = 'Altri metodi di pagamento'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_cancel_ack_0e1b6078789badcbfae8640288a46f0f'] = 'Hai annullato il pagamento tramite PayPal. Puoi riprovare con PayPal o utilizzare un metodo di pagamento diverso.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_88526efe38fd18179a127024aba8c1d7'] = 'Il tuo ordine per %s è completo.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_cd44f47a868e5e42fa1a23b775504490'] = 'Importo totale pagato'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_19c419a8a4f1cd621853376a930a2e24'] = 'È stata inviata un\'e-mail con queste informazioni.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_30163d8fc3068e8297e7ab5bf32aec87'] = 'Il tuo ordine verrà spedito il prima possibile.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_ca7e41a658753c87973936d7ce2429a8'] = 'Se avete domande, commenti o dubbi, contattateci.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_66fcf4c223bbf4c7c886d4784e1f62e4'] = 'team di esperti nell\'assistenza clienti'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_7c2ed2f8a5fc3c48f2d49196f96b34b1'] = 'Abbiamo riscontrato un problema con il tuo pagamento. Ti preghiamo di contattarci.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_17a17ba93e6ac0192bd563905e87538d'] = 'Il pagamento può essere effettuato tramite PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_644253cd300d73471cf86296d532b964'] = 'Paga tramite PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_25e8f2fd2871c8423bbe4e254066cd98'] = 'Attendere prego...'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_41a9d5e195648f50143f1c1abf5e00e6'] = 'Cliente di QloApps che ha effettuato una transazione PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_ec53a8c4f07baed5d8825072c89799be'] = 'Stato'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2ea78fadfafeae47ad786c288667eadf'] = 'Stato del pagamento'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_3516529c1d87f5fde62d6841140f5dc0'] = 'Stato attuale della transazione PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_6fbc355a02359656f1e4540d58b784e1'] = 'Data dell\'ordine'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_229a7ec501323b94db7ff3157a7623c9'] = 'identificativo del venditore'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_daa9d1b5682c462e8fc8585bb4cf868c'] = 'Inserisci l\'ID commerciante del tuo account PayPal.'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_275f5257af70b08ed6def799bfa214b3'] = 'Account e-mail'; @@ -26,97 +139,4 @@ $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_76525f0f34b48475e5ca3 $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_21fb87c3b83156a1c9e7c51239705335'] = 'Immettere l\'ID cliente dalle credenziali dell\'app dell\'account PayPal.'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_734082edf44417dd19cc65943aa65c36'] = 'Segreto del cliente'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_92718280c77bfa861693c57bad5a0632'] = 'Immettere il segreto client dalle credenziali dell\'app dell\'account PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_783901fa167d90d82463e71da67c5e52'] = 'Protezione venditore PayPal non applicabile'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_c9cc8cce247e49bae79f15173ce97354'] = 'Salva'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a1c0702a8ce0c1562b372b93b5b8ae70'] = 'Inserisci l\'ID commerciante'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_5f8d20654b3683fd837ad6766a99b388'] = 'ID commerciante fornito non valido.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_451ad04779375f902c3c9de28f096f42'] = 'Inserisci l\'email dell\'account'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a23555edc4d09483a2d5d84478a6e8d3'] = 'Inserisci un indirizzo email valido per l\'account'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_d78b4ac6843d2634c46a59c2d0c2629d'] = 'Inserisci l\'ID cliente'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_3640405a6244a23f537de55975337bf3'] = 'Inserisci il segreto del cliente'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_89493d1e532e6577510bbd93052bf20c'] = 'Il pagatore ha avviato una controversia per questo pagamento acquisito con PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_9c28e950fb310ee005da61698456bc61'] = 'I fondi catturati sono stati stornati in risposta al pagatore che contestava questo pagamento catturato con l\'emittente dello strumento finanziario utilizzato per pagare questo pagamento catturato.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_e2740ccb963c88d2739ee7ff5d493235'] = 'Il pagatore pagato da un eCheck che non è ancora stato cancellato.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_4e3da671b7e244adc46f9093e150fd99'] = 'Visita il tuo account online. Nella tua ** Panoramica account **, accetta e rifiuta questo pagamento.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_f3d713097a36e0a9f589755465883f91'] = 'Non è possibile fornire alcun motivo specifico aggiuntivo. Per ulteriori informazioni su questo pagamento acquisito, visita il tuo account online o contatta PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_04263f8fe176af4cd42d9756fc136cfe'] = 'Il pagamento acquisito è in attesa di revisione manuale.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_c343691c63a475e04acf19b98945bc59'] = 'Il beneficiario non ha ancora impostato le preferenze di ricezione appropriate per il proprio account. Per ulteriori informazioni su come accettare o rifiutare questo pagamento, visita il tuo account online. Questo motivo viene in genere offerto in scenari come quando la valuta del pagamento acquisito è diversa dalla valuta di detenzione principale del beneficiario.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_71013ee01f1a31c0310bcf4a91162c29'] = 'I fondi catturati sono stati rimborsati.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_a4656378d78c3d73b354ddc0d4dabe18'] = 'Il pagatore deve inviare i fondi per questo pagamento acquisito. Questo codice viene generalmente visualizzato per EFT manuali.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_1bca65212e4eba1b64766eeb66091af2'] = 'Il beneficiario non dispone di un account PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_53c3196bca5dde9b71e5be8287ae9cde'] = 'L\'account PayPal del beneficiario non è verificato'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_a7a37ae71b70fe671308691cc6fe03dc'] = 'Transazioni PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_1e860e56970a81a1ba3e1fcb7fccc846'] = 'riferenza dell\'ordine'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_55307c995094996234479b33fbc16bd1'] = 'Riferimento dell\'ordine in QloApps della transazione PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2b6ab125b0384eb33453b95c3f8e4ae6'] = 'ID transazione PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_dae74f84a69dab4b8e04999f2460febf'] = 'ID della transazione PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2763b4242763cbee7190de46d45d204f'] = 'Totale transazione'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_e8453b7e2a7ccf2edeae228682a61b8d'] = 'Importo totale pagato nella transazione PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_ce26601dac0dea138b7295f02b7620a7'] = 'Cliente'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_41a9d5e195648f50143f1c1abf5e00e6'] = 'Cliente in QloApps che ha effettuato la transazione PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_ec53a8c4f07baed5d8825072c89799be'] = 'Stato'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2ea78fadfafeae47ad786c288667eadf'] = 'Stato del pagamento'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_3516529c1d87f5fde62d6841140f5dc0'] = 'Stato attuale della transazione PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_6fbc355a02359656f1e4540d58b784e1'] = 'Data dell\'ordine'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_168f21218c30dcc245dc1c62c103cb7b'] = 'Data di creazione dell\'ordine.'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_630f6dc397fe74e52d5189e2c80f282b'] = 'Torna alla lista'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2a43821ec21eadc4073fc65dc35d2198'] = 'Tipo di rimborso non valido.'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_4e7f26d58027e5f9611cc5fe9d901e06'] = 'Importo del rimborso non valido.'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_5eaf60217767a2ad1e30d36dc3a1c12c'] = 'Inserisci un motivo del rimborso valido (sono ammessi solo caratteri alfanumerici).'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_ee4f91ae6dc5a35a0060efa164cb65d9'] = 'Importo del rimborso non valido. Max. l\'importo disponibile per il rimborso è'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_6a8b1040e75c9723eef0a783ffc0e1d2'] = 'Il rimborso è già stato effettuato per questa transazione.'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_446b416d535ed3f547fcd653dc11d49c'] = 'Richiesta non valida'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_e2b7dec8fa4b498156dfee6e4c84b156'] = 'Questo metodo di pagamento non è disponibile.'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_2b46a852749d321a4c6eafa3b36b643c'] = 'Pagamento PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_78170aac364ebe8527577b742dc2111d'] = 'Dettagli della transazione PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_34c15b4659b2241667e4c5d534270a17'] = 'Ambiente di pagamento'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_2652eec977dcb2a5aea85f5bec235b05'] = 'Sandbox'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_756d97bb256b8580d4d71ee0c547804e'] = 'Produzione'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_6f097b8feb2af129c8f74c786c130c1c'] = 'ID di riferimento PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_2b6ab125b0384eb33453b95c3f8e4ae6'] = 'ID transazione PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_157c928dae48d88d19fb2ced2afbdd71'] = 'ID ordine PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_fdabf4e63a3cc1fe987269ff4e629148'] = 'totale della transazione'; $_MODULE['<{qlopaypalcommerce}prestashop>view_e98b5a6351fecb55b2f890686f31856d'] = 'Riferimento ordine QloApps'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_2ea989f83006e233627987293f4bde0a'] = 'Nome del cliente'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_54945fdafec2c65f0f5561d65b165f1a'] = 'Email cliente'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_475007c00d7c166cca01a44ecfd068ff'] = 'Visualizza cliente'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_4351cfebe4b61d8aa5efa1d020710005'] = 'Visualizza'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_2ea78fadfafeae47ad786c288667eadf'] = 'Stato del pagamento'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_8f7afecbc8fbc4cd0f50a57d1172482e'] = 'COMPLETATO'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_31738cd694667ccdfa2cbc65249de5cc'] = 'Data di pagamento'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_580d87d5c5121696825f17708b1ec065'] = 'Importo totale rimborsato'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_8b123a0f5d61720a4273bc4ed1d613a3'] = 'Transazione di rimborso'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_a3a13394565fb6956d6948a1dbb8fe3f'] = 'Importo totale rimborsato'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_9d9dca90e919bd4c8febf55ea7a25b5f'] = 'Importo totale disponibile da rimborsare'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_51890b292429265077afcc0b2bb6f34a'] = 'Seleziona il tipo di rimborso. Seleziona rimborso parziale per rimborsare un importo parziale dalla transazione. Seleziona il rimborso completo per rimborsare l\'importo totale della transazione.'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_d8fb839f1db11646b85354c3fb50fda3'] = 'Tipo di rimborso'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_4f5a217b333e276be931951be6dc28f0'] = 'Seleziona Tipo di rimborso'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_abcec07843d3ec02783b27587560f85f'] = 'Rimborso completo'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_c985a711556e2edf5cac28dfbdb43ff0'] = 'Rimborso parziale'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_84bca5dc34bb0d1244a9e0f323878665'] = 'Inserisci l\'importo che desideri rimborsare dall\'importo della transazione.'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_b782d4ff61550d7e8cdee4cf70a03788'] = 'Importo rimborsato'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_6bbeabf389367bc93090db6dd0c13c4e'] = 'max.'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_85689c24167c4690a0e346c46a17598c'] = 'Inserisci un commento per questo rimborso.'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_97d8f33367ecaeee79d5255b447c8827'] = 'Nota sul rimborso'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_76f0ed934de85cc7131910b32ede7714'] = 'Rimborso'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_072ab77c58ea38de4e3272c3eed624c1'] = 'Elenco rimborsi'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_88427ec035734b45aae9f7d8859a5008'] = 'ID transazione'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_b2f40690858b404ed10e62bdf422c704'] = 'Quantità'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_a1fa27779242b4902f7ae3bdd5c6d508'] = 'genere'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_ec53a8c4f07baed5d8825072c89799be'] = 'Stato'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_44749712dbec183e983dcd78a7736c41'] = 'Data'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_a207494d393a4f4909f746fd24440440'] = 'Nessun rimborso ancora creato.'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_e3bc22b32f4abd925670253972326260'] = 'Importo totale rimborsato: '; -$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_7b12dad517fd9056aabf8099a8173ddf'] = 'Il tuo pagamento non è andato a buon fine per i seguenti motivi:'; -$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_3d9f514d46849760ef1b1412e314fd99'] = 'Errore:'; -$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_0d6779532e0735f6a9b05723ab191bc3'] = 'Descrizione dell\'errore:'; -$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_569fd05bdafa1712c4f6be5b153b8418'] = 'Altri metodi di pagamento'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_cancel_ack_0e1b6078789badcbfae8640288a46f0f'] = 'Hai annullato il pagamento tramite PayPal. Puoi riprovare con PayPal o provare un metodo di pagamento diverso.'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_88526efe38fd18179a127024aba8c1d7'] = 'Il tuo ordine su% s è completo.'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_cd44f47a868e5e42fa1a23b775504490'] = 'Importo totale pagato'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_19c419a8a4f1cd621853376a930a2e24'] = 'È stata inviata un\'e-mail con queste informazioni.'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_30163d8fc3068e8297e7ab5bf32aec87'] = 'Il tuo ordine verrà inviato il prima possibile.'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_ca7e41a658753c87973936d7ce2429a8'] = 'In caso di domande, commenti o dubbi, contattare il nostro'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_66fcf4c223bbf4c7c886d4784e1f62e4'] = 'team di assistenza clienti esperto'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_7c2ed2f8a5fc3c48f2d49196f96b34b1'] = 'Abbiamo notato un problema con il tuo pagamento. Si prega di contattare il nostro'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_25e8f2fd2871c8423bbe4e254066cd98'] = 'Attendere prego...'; diff --git a/modules/qlopaypalcommerce/translations/nl.php b/modules/qlopaypalcommerce/translations/nl.php index f257d5cab..117e95e6b 100644 --- a/modules/qlopaypalcommerce/translations/nl.php +++ b/modules/qlopaypalcommerce/translations/nl.php @@ -2,22 +2,123 @@ global $_MODULE; $_MODULE = array(); -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_dba5abcd5b8bb0ee23a6bde15a6e5fde'] = 'QloApps PayPal Afrekenen'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_dba5abcd5b8bb0ee23a6bde15a6e5fde'] = 'QloApps PayPal Checkout'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1639a5f6b16f8d4a04393dbdff0e05f6'] = 'Een instant wereldwijd bedrijf.'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_dd5e9bb870ec616039f0fe9f2bd4726b'] = 'Eén integratie voor al uw online betalingsbehoeften.'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_e654f7a86a4458b9cd662267e0f29b52'] = 'Voordelen'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_e0a9745011703bc991ab1af1f50ccd20'] = 'Zorg voor een naadloze koopervaring voor uw klanten die conversie en loyaliteit stimuleert.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_af0fd51a752f317a87b2f7b724856034'] = 'Accepteer PayPal-betalingen met vereenvoudigde introductie, aanpasbare integratie en eenvoudige accountconfiguratie.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_b9b50f4dec6df62993204153f8d5db2c'] = 'Toegang tot meer dan 377 miljoen PayPal-klanten over de hele wereld *, met ondersteuning in lokale valuta voor beter geldbeheer.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_cb47de9d9350a9025c8c3b657c8c8268'] = 'Gemoedsrust voor u en uw klanten met kopers- en verkopersbescherming bij in aanmerking komende verkopen.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_8332b9ae4d8931da4a311f410a232619'] = 'PayPal-resultaat vierde kwartaal 2020'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1e4fe71e24592a98260048fe05cbbb5b'] = 'PayPal Merchant ID, Email, Client ID en Secret moeten worden geconfigureerd.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_e0a9745011703bc991ab1af1f50ccd20'] = 'Bied uw klanten een naadloze koopervaring die leidt tot meer conversie en klantloyaliteit.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_af0fd51a752f317a87b2f7b724856034'] = 'Accepteer PayPal-betalingen met een vereenvoudigd onboardingproces, flexibele integratie en eenvoudige accountconfiguratie.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_b9b50f4dec6df62993204153f8d5db2c'] = 'Toegang tot meer dan 377 miljoen PayPal-klanten wereldwijd*, met ondersteuning voor lokale valuta voor beter financieel beheer.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_cb47de9d9350a9025c8c3b657c8c8268'] = 'Gemoedsrust voor u en uw klanten dankzij kopers- en verkopersbescherming bij in aanmerking komende transacties.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_8332b9ae4d8931da4a311f410a232619'] = 'Resultaten van PayPal over het vierde kwartaal van 2020'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1e4fe71e24592a98260048fe05cbbb5b'] = 'De PayPal-handelaars-ID, het e-mailadres, de klant-ID en het geheim moeten worden geconfigureerd.'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a02758d758e8bec77a33d7f392eb3f8a'] = 'Er is geen valuta ingesteld voor deze module.'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_afcae56aeb45bbff848348abf4824b44'] = 'PayPal-betalingsconfiguratie'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_116e78f6c1c4b4f66a57192817242e35'] = 'Transactieomgeving'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_2652eec977dcb2a5aea85f5bec235b05'] = 'Sandbox'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_2652eec977dcb2a5aea85f5bec235b05'] = 'Zandbak'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_756d97bb256b8580d4d71ee0c547804e'] = 'Productie'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_bb6e852329aacf2cc839e01ab1ce1773'] = 'Selecteer de PayPal-betalingsomgeving, sandbox of productie. U kunt alleen een echte transactie krijgen bij productie, gebruik sandbox om te testen.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_bb6e852329aacf2cc839e01ab1ce1773'] = 'Selecteer de PayPal-betaalomgeving: sandbox of productie. Echte transacties zijn alleen mogelijk in de productieomgeving; gebruik de sandbox voor testdoeleinden.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_ed4f8785248e2d9a8a8b25e5c483551a'] = 'Sandbox-handelaars-ID'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_6d132ffd3d699649441bdc627dd57eba'] = 'Voer de verkoper-ID van uw PayPal-sandboxaccount in.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_36808d0f8a32391ba62716d9831040e5'] = 'Sandbox-account e-mail'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_ff8336737d5f067b6c11724bd6fc944e'] = 'Voer het e-mailadres van uw PayPal-sandboxaccount in.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a0bd7d42b20f8ca0c6f28bdd30a1af1f'] = 'Sandbox-client-ID'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_e7b65a83fa18a3396a4b140483e6f288'] = 'Voer de client-ID in van de inloggegevens van uw PayPal-sandboxaccount.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_9af7eae52a08a132e079c3e910bb2cbe'] = 'Sandbox-clientgeheim'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_023d4f770106b82c4984d38c9033d393'] = 'Voer het Client Secret in van de inloggegevens van uw PayPal-sandboxaccount.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_450e2248dad7a152379bf016310e1eba'] = 'Live Merchant ID'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_3058efc14b28f688630f4e6770db5f03'] = 'Voer de verkoper-ID van uw PayPal Live-account in.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_c916854e86ef605147fce41d400b6d74'] = 'Live account-e-mail'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_05e0b13ee68a1adcd4939da789611213'] = 'Voer het e-mailadres van uw PayPal Live-account in.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1087b413bc531d99ee4deb93e280bfed'] = 'Live client-ID'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_dfa5a074df3ad0ca4018a93243fcce1e'] = 'Voer de klant-ID in die u hebt opgegeven in de PayPal Live-accountapp.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_b9b75793dc0a1d8225b39b8be4392339'] = 'Live Client Secret'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1382bf9075c663adbf10818ed4789234'] = 'Voer het Client Secret in, dat u vindt in de inloggegevens van uw PayPal Live-account.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_783901fa167d90d82463e71da67c5e52'] = 'PayPal-verkopersbescherming is niet van toepassing.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_c9cc8cce247e49bae79f15173ce97354'] = 'Redden'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a1c0702a8ce0c1562b372b93b5b8ae70'] = 'Voer het verkopers-ID in.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_5f8d20654b3683fd837ad6766a99b388'] = 'Ongeldig verkopers-ID opgegeven.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_451ad04779375f902c3c9de28f096f42'] = 'Voer het e-mailadres van uw account in.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a23555edc4d09483a2d5d84478a6e8d3'] = 'Voer een geldig e-mailadres van het account in.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_d78b4ac6843d2634c46a59c2d0c2629d'] = 'Voer uw klant-ID in.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_3640405a6244a23f537de55975337bf3'] = 'Voer het klantgeheim in.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_89493d1e532e6577510bbd93052bf20c'] = 'De betaler heeft een geschil over deze vastgelegde betaling bij PayPal ingediend.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_9c28e950fb310ee005da61698456bc61'] = 'De in beslag genomen gelden werden teruggedraaid nadat de betaler de in beslag genomen betaling had betwist bij de uitgever van het financiële instrument waarmee deze betaling was verricht.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_e2740ccb963c88d2739ee7ff5d493235'] = 'De betaler heeft betaald met een eCheck die nog niet is verwerkt.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_4e3da671b7e244adc46f9093e150fd99'] = 'Ga naar uw online account. In uw **Accountoverzicht** kunt u deze betaling accepteren of weigeren.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_f3d713097a36e0a9f589755465883f91'] = 'Er kan geen verdere specifieke reden worden opgegeven. Voor meer informatie over deze vastgelegde betaling kunt u uw account online raadplegen of contact opnemen met PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_04263f8fe176af4cd42d9756fc136cfe'] = 'De vastgelegde betaling wordt momenteel handmatig gecontroleerd.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_c343691c63a475e04acf19b98945bc59'] = 'De begunstigde heeft nog geen geschikte ontvangstvoorkeuren voor zijn of haar rekening ingesteld. Ga naar uw online account voor meer informatie over het accepteren of weigeren van deze betaling. Deze reden wordt doorgaans aangevoerd in situaties zoals wanneer de valuta van de ontvangen betaling afwijkt van de primaire valuta van de begunstigde.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_71013ee01f1a31c0310bcf4a91162c29'] = 'De in beslag genomen gelden werden terugbetaald.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_a4656378d78c3d73b354ddc0d4dabe18'] = 'De betaler moet het geld voor deze vastgelegde betaling overmaken. Deze code verschijnt doorgaans bij handmatige elektronische overboekingen (EFT\'s).'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_1bca65212e4eba1b64766eeb66091af2'] = 'De ontvanger heeft geen PayPal-account.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_53c3196bca5dde9b71e5be8287ae9cde'] = 'Het PayPal-account van de ontvanger is niet geverifieerd.'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_a7a37ae71b70fe671308691cc6fe03dc'] = 'PayPal-transacties'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_1e860e56970a81a1ba3e1fcb7fccc846'] = 'Bestelreferentie'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_55307c995094996234479b33fbc16bd1'] = 'Orderreferentie in QloApps van de PayPal-transactie'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2b6ab125b0384eb33453b95c3f8e4ae6'] = 'PayPal-transactie-ID'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_dae74f84a69dab4b8e04999f2460febf'] = 'ID van de PayPal-transactie'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2763b4242763cbee7190de46d45d204f'] = 'Transactietotaal'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_e8453b7e2a7ccf2edeae228682a61b8d'] = 'Totaal betaald bedrag in de PayPal-transactie'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_ce26601dac0dea138b7295f02b7620a7'] = 'Klant'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_446b416d535ed3f547fcd653dc11d49c'] = 'Ongeldig verzoek'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_e2b7dec8fa4b498156dfee6e4c84b156'] = 'Deze betaalmethode is niet beschikbaar.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_2b46a852749d321a4c6eafa3b36b643c'] = 'PayPal Checkout'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_78170aac364ebe8527577b742dc2111d'] = 'PayPal-transactiegegevens'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_34c15b4659b2241667e4c5d534270a17'] = 'Betalingsomgeving'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_2652eec977dcb2a5aea85f5bec235b05'] = 'Zandbak'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_756d97bb256b8580d4d71ee0c547804e'] = 'Productie'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_6f097b8feb2af129c8f74c786c130c1c'] = 'PayPal-referentie-ID'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_2b6ab125b0384eb33453b95c3f8e4ae6'] = 'PayPal-transactie-ID'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_157c928dae48d88d19fb2ced2afbdd71'] = 'PayPal-bestel-ID'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_fdabf4e63a3cc1fe987269ff4e629148'] = 'Transactiebedrag'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_1e860e56970a81a1ba3e1fcb7fccc846'] = 'Bestelreferentie'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_2ea989f83006e233627987293f4bde0a'] = 'Klantnaam'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_54945fdafec2c65f0f5561d65b165f1a'] = 'E-mailadres van de klant'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_475007c00d7c166cca01a44ecfd068ff'] = 'Klant bekijken'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_4351cfebe4b61d8aa5efa1d020710005'] = 'Weergave'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_2ea78fadfafeae47ad786c288667eadf'] = 'Betalingsstatus'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_8f7afecbc8fbc4cd0f50a57d1172482e'] = 'VOLTOOID'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_31738cd694667ccdfa2cbc65249de5cc'] = 'Betaaldatum'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_580d87d5c5121696825f17708b1ec065'] = 'Totaal terugbetaald bedrag'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_8b123a0f5d61720a4273bc4ed1d613a3'] = 'Terugbetalingstransactie'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_a3a13394565fb6956d6948a1dbb8fe3f'] = 'Totaal terugbetaald bedrag'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_9d9dca90e919bd4c8febf55ea7a25b5f'] = 'Totaal beschikbaar bedrag voor terugbetaling'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_51890b292429265077afcc0b2bb6f34a'] = 'Selecteer het type terugbetaling. Selecteer \'gedeeltelijke terugbetaling\' om een ​​deel van het transactiebedrag terug te betalen. Selecteer \'volledige terugbetaling\' om het volledige transactiebedrag terug te betalen.'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_d8fb839f1db11646b85354c3fb50fda3'] = 'Type terugbetaling'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_4f5a217b333e276be931951be6dc28f0'] = 'Selecteer het type terugbetaling'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_abcec07843d3ec02783b27587560f85f'] = 'Volledige terugbetaling'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_c985a711556e2edf5cac28dfbdb43ff0'] = 'Gedeeltelijke terugbetaling'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_84bca5dc34bb0d1244a9e0f323878665'] = 'Voer het bedrag in dat u wilt terugbetalen van het transactiebedrag.'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_b782d4ff61550d7e8cdee4cf70a03788'] = 'Terug te betalen bedrag'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_6bbeabf389367bc93090db6dd0c13c4e'] = 'max.'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_85689c24167c4690a0e346c46a17598c'] = 'Voeg een opmerking toe aan deze terugbetaling.'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_97d8f33367ecaeee79d5255b447c8827'] = 'Opmerking over terugbetaling'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_76f0ed934de85cc7131910b32ede7714'] = 'Terugbetaling'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_072ab77c58ea38de4e3272c3eed624c1'] = 'Terugbetalingslijst'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_88427ec035734b45aae9f7d8859a5008'] = 'Transactie-ID'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_b2f40690858b404ed10e62bdf422c704'] = 'Hoeveelheid'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_a1fa27779242b4902f7ae3bdd5c6d508'] = 'Type'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_ec53a8c4f07baed5d8825072c89799be'] = 'Status'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_44749712dbec183e983dcd78a7736c41'] = 'Datum'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_91921ada405fd6ba65dff028df047cb6'] = 'Opmerking'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_a207494d393a4f4909f746fd24440440'] = 'Er zijn nog geen terugbetalingen aangemaakt.'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_e3bc22b32f4abd925670253972326260'] = 'Totaal terugbetaald bedrag:'; +$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_7b12dad517fd9056aabf8099a8173ddf'] = 'Uw betaling is mislukt om de volgende reden:'; +$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_3d9f514d46849760ef1b1412e314fd99'] = 'Fout:'; +$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_0d6779532e0735f6a9b05723ab191bc3'] = 'Foutbeschrijving:'; +$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_569fd05bdafa1712c4f6be5b153b8418'] = 'Andere betaalmethoden'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_cancel_ack_0e1b6078789badcbfae8640288a46f0f'] = 'Je hebt de betaling via PayPal geannuleerd. Je kunt het opnieuw proberen met PayPal of een andere betaalmethode gebruiken.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_88526efe38fd18179a127024aba8c1d7'] = 'Uw bestelling op %s is voltooid.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_cd44f47a868e5e42fa1a23b775504490'] = 'Totaal betaald bedrag'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_19c419a8a4f1cd621853376a930a2e24'] = 'Er is een e-mail met deze informatie verzonden.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_30163d8fc3068e8297e7ab5bf32aec87'] = 'Je bestelling wordt zo snel mogelijk verzonden.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_ca7e41a658753c87973936d7ce2429a8'] = 'Heeft u vragen, opmerkingen of bent u ergens bezorgd over? Neem dan contact met ons op.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_66fcf4c223bbf4c7c886d4784e1f62e4'] = 'deskundig klantenserviceteam'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_7c2ed2f8a5fc3c48f2d49196f96b34b1'] = 'We hebben een probleem met uw betaling geconstateerd. Neem contact met ons op.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_17a17ba93e6ac0192bd563905e87538d'] = 'Betaal via de betaalopties van PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_644253cd300d73471cf86296d532b964'] = 'Betaal via PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_25e8f2fd2871c8423bbe4e254066cd98'] = 'Even geduld alstublieft...'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_229a7ec501323b94db7ff3157a7623c9'] = 'Verkoper-ID'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_daa9d1b5682c462e8fc8585bb4cf868c'] = 'Voer de handelaar-ID van uw PayPal-rekening in.'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_275f5257af70b08ed6def799bfa214b3'] = 'E-mailaccount'; @@ -26,33 +127,6 @@ $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_76525f0f34b48475e5ca3 $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_21fb87c3b83156a1c9e7c51239705335'] = 'Voer de klant-ID van de PayPal-accountapp-inloggegevens in.'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_734082edf44417dd19cc65943aa65c36'] = 'Cliëntgeheim'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_92718280c77bfa861693c57bad5a0632'] = 'Voer het klantgeheim van de app-inloggegevens van de PayPal-account in.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_783901fa167d90d82463e71da67c5e52'] = 'PayPal Verkopersbescherming niet van toepassing'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_c9cc8cce247e49bae79f15173ce97354'] = 'Opslaan'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a1c0702a8ce0c1562b372b93b5b8ae70'] = 'Voer een verkoper-ID in'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_5f8d20654b3683fd837ad6766a99b388'] = 'Ongeldige verkoper-ID opgegeven.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_451ad04779375f902c3c9de28f096f42'] = 'Voer uw account e-mailadres in'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a23555edc4d09483a2d5d84478a6e8d3'] = 'Voer een geldig account-e-mailadres in'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_d78b4ac6843d2634c46a59c2d0c2629d'] = 'Voer de klant-ID in'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_3640405a6244a23f537de55975337bf3'] = 'Voer het klantgeheim in'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_89493d1e532e6577510bbd93052bf20c'] = 'De betaler startte een geschil voor deze vastgelegde betaling met PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_9c28e950fb310ee005da61698456bc61'] = 'De vastgelegde fondsen werden teruggeboekt als reactie op het feit dat de betaler deze vastgelegde betaling betwistte bij de uitgever van het financiële instrument dat werd gebruikt om deze vastgelegde betaling te betalen.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_e2740ccb963c88d2739ee7ff5d493235'] = 'De betaler heeft betaald met een eCheck die nog niet is vereffend.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_4e3da671b7e244adc46f9093e150fd99'] = 'Bezoek uw online account. Accepteer en weiger deze betaling in uw ** Accountoverzicht **.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_f3d713097a36e0a9f589755465883f91'] = 'Er kan geen aanvullende specifieke reden worden opgegeven. Ga naar uw account online of neem contact op met PayPal voor meer informatie over deze vastgelegde betaling.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_04263f8fe176af4cd42d9756fc136cfe'] = 'De vastgelegde betaling is in afwachting van handmatige beoordeling.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_c343691c63a475e04acf19b98945bc59'] = 'De begunstigde heeft nog geen geschikte ontvangstvoorkeuren voor zijn account ingesteld. Ga naar uw online account voor meer informatie over het accepteren of weigeren van deze betaling. Deze reden wordt doorgaans aangeboden in scenario\'s, zoals wanneer de valuta van de vastgelegde betaling verschilt van de primaire valuta van de begunstigde.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_71013ee01f1a31c0310bcf4a91162c29'] = 'Het buitgemaakte geld werd terugbetaald.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_a4656378d78c3d73b354ddc0d4dabe18'] = 'De betaler moet het geld sturen voor deze vastgelegde betaling. Deze code verschijnt meestal voor handmatige elektronische overboekingen.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_1bca65212e4eba1b64766eeb66091af2'] = 'De begunstigde heeft geen PayPal-rekening.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_53c3196bca5dde9b71e5be8287ae9cde'] = 'De PayPal-rekening van de begunstigde is niet geverifieerd'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_a7a37ae71b70fe671308691cc6fe03dc'] = 'PayPal-transacties'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_1e860e56970a81a1ba3e1fcb7fccc846'] = 'Bestelreferentie'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_55307c995094996234479b33fbc16bd1'] = 'Bestelreferentie in QloApps van de PayPal-transactie'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2b6ab125b0384eb33453b95c3f8e4ae6'] = 'PayPal-transactie-ID'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_dae74f84a69dab4b8e04999f2460febf'] = 'Id van de PayPal-transactie'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2763b4242763cbee7190de46d45d204f'] = 'Transactie totaal'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_e8453b7e2a7ccf2edeae228682a61b8d'] = 'Totaalbedrag betaald in de PayPal-transactie'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_ce26601dac0dea138b7295f02b7620a7'] = 'Klant'; $_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_41a9d5e195648f50143f1c1abf5e00e6'] = 'Klant in de QloApps die een PayPal-transactie heeft uitgevoerd.'; $_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_ec53a8c4f07baed5d8825072c89799be'] = 'Toestand'; $_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2ea78fadfafeae47ad786c288667eadf'] = 'Betalingsstatus'; @@ -65,58 +139,4 @@ $_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontrolle $_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_5eaf60217767a2ad1e30d36dc3a1c12c'] = 'Voer een geldige reden voor terugbetaling in (alleen alfanumeriek toegestaan).'; $_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_ee4f91ae6dc5a35a0060efa164cb65d9'] = 'Ongeldig restitutiebedrag. Max. Hoogte beschikbaar bedrag voor restitutie is'; $_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_6a8b1040e75c9723eef0a783ffc0e1d2'] = 'Deze transactie is al terugbetaald.'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_446b416d535ed3f547fcd653dc11d49c'] = 'Ongeldig verzoek'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_e2b7dec8fa4b498156dfee6e4c84b156'] = 'Deze betalingsmethode is niet beschikbaar.'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_2b46a852749d321a4c6eafa3b36b643c'] = 'PayPal Afrekenen'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_78170aac364ebe8527577b742dc2111d'] = 'PayPal-transactiegegevens'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_34c15b4659b2241667e4c5d534270a17'] = 'Betaalomgeving'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_2652eec977dcb2a5aea85f5bec235b05'] = 'Sandbox'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_756d97bb256b8580d4d71ee0c547804e'] = 'Productie'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_6f097b8feb2af129c8f74c786c130c1c'] = 'PayPal-referentie-ID'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_2b6ab125b0384eb33453b95c3f8e4ae6'] = 'PayPal-transactie-ID'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_157c928dae48d88d19fb2ced2afbdd71'] = 'PayPal-bestel-ID'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_fdabf4e63a3cc1fe987269ff4e629148'] = 'Transactiebedrag'; $_MODULE['<{qlopaypalcommerce}prestashop>view_e98b5a6351fecb55b2f890686f31856d'] = 'QloApps-bestelreferentie'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_2ea989f83006e233627987293f4bde0a'] = 'klantnaam'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_54945fdafec2c65f0f5561d65b165f1a'] = 'Klanten email'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_475007c00d7c166cca01a44ecfd068ff'] = 'Bekijk klant'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_4351cfebe4b61d8aa5efa1d020710005'] = 'Visie'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_2ea78fadfafeae47ad786c288667eadf'] = 'Betalingsstatus'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_8f7afecbc8fbc4cd0f50a57d1172482e'] = 'VOLTOOID'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_31738cd694667ccdfa2cbc65249de5cc'] = 'Betaaldatum'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_580d87d5c5121696825f17708b1ec065'] = 'Totaal terugbetaald bedrag'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_8b123a0f5d61720a4273bc4ed1d613a3'] = 'Transactie terugbetalen'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_a3a13394565fb6956d6948a1dbb8fe3f'] = 'Totaal terugbetaald bedrag'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_9d9dca90e919bd4c8febf55ea7a25b5f'] = 'Totaal beschikbaar bedrag om terug te betalen'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_51890b292429265077afcc0b2bb6f34a'] = 'Selecteer het type terugbetaling. Selecteer gedeeltelijke terugbetaling om een ​​gedeeltelijk bedrag uit de transactie terug te betalen. Selecteer volledige terugbetaling om het totale transactiebedrag terug te betalen.'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_d8fb839f1db11646b85354c3fb50fda3'] = 'Type terugbetaling'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_4f5a217b333e276be931951be6dc28f0'] = 'Selecteer Type terugbetaling'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_abcec07843d3ec02783b27587560f85f'] = 'Volledige terugbetaling'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_c985a711556e2edf5cac28dfbdb43ff0'] = 'Gedeeltelijke terugbetaling'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_84bca5dc34bb0d1244a9e0f323878665'] = 'Voer het bedrag in dat u van het transactiebedrag wilt terugbetalen.'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_b782d4ff61550d7e8cdee4cf70a03788'] = 'restitutiebedrag'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_6bbeabf389367bc93090db6dd0c13c4e'] = 'max. hoogte'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_85689c24167c4690a0e346c46a17598c'] = 'Voer een opmerking in voor deze terugbetaling.'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_97d8f33367ecaeee79d5255b447c8827'] = 'Restitutie Opmerking'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_76f0ed934de85cc7131910b32ede7714'] = 'Terugbetaling'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_072ab77c58ea38de4e3272c3eed624c1'] = 'Restitutielijst'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_88427ec035734b45aae9f7d8859a5008'] = 'Transactie ID'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_b2f40690858b404ed10e62bdf422c704'] = 'Bedrag'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_a1fa27779242b4902f7ae3bdd5c6d508'] = 'Type'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_ec53a8c4f07baed5d8825072c89799be'] = 'Toestand'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_44749712dbec183e983dcd78a7736c41'] = 'Datum'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_a207494d393a4f4909f746fd24440440'] = 'Nog geen restituties gemaakt.'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_e3bc22b32f4abd925670253972326260'] = 'Totaal terugbetaald bedrag: '; -$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_7b12dad517fd9056aabf8099a8173ddf'] = 'Uw betaling is om de volgende reden mislukt:'; -$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_3d9f514d46849760ef1b1412e314fd99'] = 'Fout:'; -$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_0d6779532e0735f6a9b05723ab191bc3'] = 'Foutbeschrijving:'; -$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_569fd05bdafa1712c4f6be5b153b8418'] = 'Andere betalingsmethoden'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_cancel_ack_0e1b6078789badcbfae8640288a46f0f'] = 'U heeft de betaling via PayPal geannuleerd. U kunt het opnieuw proberen met PayPal of een andere betaalmethode proberen.'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_88526efe38fd18179a127024aba8c1d7'] = 'Je bestelling op% s is voltooid.'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_cd44f47a868e5e42fa1a23b775504490'] = 'Totaal betaald bedrag'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_19c419a8a4f1cd621853376a930a2e24'] = 'Er is een e-mail gestuurd met deze informatie.'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_30163d8fc3068e8297e7ab5bf32aec87'] = 'Uw bestelling wordt zo snel mogelijk verzonden.'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_ca7e41a658753c87973936d7ce2429a8'] = 'Als u vragen, opmerkingen of opmerkingen heeft, neem dan contact met ons op'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_66fcf4c223bbf4c7c886d4784e1f62e4'] = 'deskundig klantenserviceteam'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_7c2ed2f8a5fc3c48f2d49196f96b34b1'] = 'We hebben een probleem met uw betaling vastgesteld. Neem dan contact op met onze'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_25e8f2fd2871c8423bbe4e254066cd98'] = 'Even geduld aub...'; diff --git a/modules/qlopaypalcommerce/translations/pl.php b/modules/qlopaypalcommerce/translations/pl.php index 179563980..741429ab4 100644 --- a/modules/qlopaypalcommerce/translations/pl.php +++ b/modules/qlopaypalcommerce/translations/pl.php @@ -2,58 +2,66 @@ global $_MODULE; $_MODULE = array(); -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_dba5abcd5b8bb0ee23a6bde15a6e5fde'] = 'QloApps PayPal Checkout'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1639a5f6b16f8d4a04393dbdff0e05f6'] = 'Błyskawiczny globalny biznes.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_dd5e9bb870ec616039f0fe9f2bd4726b'] = 'Jedna integracja dla wszystkich Twoich potrzeb związanych z płatnościami online.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_dba5abcd5b8bb0ee23a6bde15a6e5fde'] = 'Płatność PayPal QloApps'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1639a5f6b16f8d4a04393dbdff0e05f6'] = 'Natychmiastowy globalny biznes.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_dd5e9bb870ec616039f0fe9f2bd4726b'] = 'Jedna integracja dla wszystkich Twoich potrzeb w zakresie płatności online.'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_e654f7a86a4458b9cd662267e0f29b52'] = 'Korzyści'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_e0a9745011703bc991ab1af1f50ccd20'] = 'Zapewnij swoim klientom bezproblemowe zakupy, które napędzają konwersję i lojalność.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_af0fd51a752f317a87b2f7b724856034'] = 'Akceptuj płatności PayPal dzięki uproszczonemu wdrażaniu, elastycznej integracji i łatwej konfiguracji konta.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_b9b50f4dec6df62993204153f8d5db2c'] = 'Dostęp do ponad 377 milionów klientów PayPal na całym świecie *, z obsługą w lokalnej walucie dla lepszego zarządzania pieniędzmi.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_cb47de9d9350a9025c8c3b657c8c8268'] = 'Spokój dla Ciebie i Twoich klientów dzięki ochronie kupujących i sprzedających w przypadku kwalifikujących się sprzedaży.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_8332b9ae4d8931da4a311f410a232619'] = 'Wynik PayPal za czwarte kwartały 2020 r'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1e4fe71e24592a98260048fe05cbbb5b'] = 'Należy skonfigurować identyfikator handlowca PayPal, adres e-mail, identyfikator klienta i hasło.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a02758d758e8bec77a33d7f392eb3f8a'] = 'Nie ustawiono waluty dla tego modułu.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_e0a9745011703bc991ab1af1f50ccd20'] = 'Zapewnij swoim klientom bezproblemowe zakupy, które zwiększą konwersję i lojalność.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_af0fd51a752f317a87b2f7b724856034'] = 'Akceptuj płatności PayPal dzięki prostemu procesowi wdrażania, elastycznej integracji i łatwej konfiguracji konta.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_b9b50f4dec6df62993204153f8d5db2c'] = 'Dostęp do ponad 377 milionów klientów PayPal na całym świecie*, obsługa walut lokalnych dla lepszego zarządzania pieniędzmi.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_cb47de9d9350a9025c8c3b657c8c8268'] = 'Spokój ducha dla Ciebie i Twoich klientów dzięki ochronie kupujących i sprzedających w przypadku kwalifikujących się transakcji.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_8332b9ae4d8931da4a311f410a232619'] = 'Wyniki PayPal za czwarty kwartał 2020 r.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1e4fe71e24592a98260048fe05cbbb5b'] = 'Należy skonfigurować identyfikator sprzedawcy PayPal, adres e-mail, identyfikator klienta i klucz tajny.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a02758d758e8bec77a33d7f392eb3f8a'] = 'Dla tego modułu nie ustawiono żadnej waluty.'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_afcae56aeb45bbff848348abf4824b44'] = 'Konfiguracja płatności PayPal'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_116e78f6c1c4b4f66a57192817242e35'] = 'Środowisko transakcyjne'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_2652eec977dcb2a5aea85f5bec235b05'] = 'Piaskownica'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_756d97bb256b8580d4d71ee0c547804e'] = 'Produkcja'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_bb6e852329aacf2cc839e01ab1ce1773'] = 'Wybierz środowisko płatności PayPal, piaskownicę lub produkcję. Możesz otrzymać prawdziwą transakcję tylko na produkcji, do testów użyj piaskownicy.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_229a7ec501323b94db7ff3157a7623c9'] = 'Identyfikator sprzedawcy'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_daa9d1b5682c462e8fc8585bb4cf868c'] = 'Wprowadź identyfikator sprzedawcy swojego konta PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_275f5257af70b08ed6def799bfa214b3'] = 'Konto e-mail'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_9b022ec729030a4e40c533c61668d128'] = 'Wprowadź adres e-mail konta PayPal swojego konta PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_76525f0f34b48475e5ca33f71d296f3b'] = 'Identyfikator klienta'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_21fb87c3b83156a1c9e7c51239705335'] = 'Wprowadź identyfikator klienta z poświadczeń aplikacji konta PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_734082edf44417dd19cc65943aa65c36'] = 'Sekret klienta'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_92718280c77bfa861693c57bad5a0632'] = 'Wprowadź klucz klienta z poświadczeń aplikacji konta PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_783901fa167d90d82463e71da67c5e52'] = 'Ochrona sprzedających w systemie PayPal nie ma zastosowania'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_c9cc8cce247e49bae79f15173ce97354'] = 'Zapisać'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a1c0702a8ce0c1562b372b93b5b8ae70'] = 'Wprowadź identyfikator sprzedawcy'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_bb6e852329aacf2cc839e01ab1ce1773'] = 'Wybierz środowisko płatności PayPal: sandbox lub produkcyjny. Prawdziwe transakcje można uzyskać tylko w środowisku produkcyjnym, do testów użyj sandboxa.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_ed4f8785248e2d9a8a8b25e5c483551a'] = 'Identyfikator sprzedawcy Sandbox'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_6d132ffd3d699649441bdc627dd57eba'] = 'Wprowadź identyfikator sprzedawcy swojego konta testowego PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_36808d0f8a32391ba62716d9831040e5'] = 'Adres e-mail konta Sandbox'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_ff8336737d5f067b6c11724bd6fc944e'] = 'Wprowadź adres e-mail konta PayPal powiązanego z Twoim kontem sandbox PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a0bd7d42b20f8ca0c6f28bdd30a1af1f'] = 'Identyfikator klienta Sandbox'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_e7b65a83fa18a3396a4b140483e6f288'] = 'Wprowadź identyfikator klienta z danych logowania do konta PayPal Sandbox.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_9af7eae52a08a132e079c3e910bb2cbe'] = 'Sekret klienta Sandbox'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_023d4f770106b82c4984d38c9033d393'] = 'Wprowadź tajny klucz klienta z danych uwierzytelniających konta piaskownicy PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_450e2248dad7a152379bf016310e1eba'] = 'Identyfikator sprzedawcy na żywo'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_3058efc14b28f688630f4e6770db5f03'] = 'Wprowadź identyfikator sprzedawcy swojego konta PayPal Live.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_c916854e86ef605147fce41d400b6d74'] = 'E-mail konta na żywo'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_05e0b13ee68a1adcd4939da789611213'] = 'Wprowadź adres e-mail swojego konta PayPal Live.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1087b413bc531d99ee4deb93e280bfed'] = 'Identyfikator klienta na żywo'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_dfa5a074df3ad0ca4018a93243fcce1e'] = 'Wprowadź identyfikator klienta z danych logowania do aplikacji PayPal Live.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_b9b75793dc0a1d8225b39b8be4392339'] = 'Sekret klienta na żywo'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1382bf9075c663adbf10818ed4789234'] = 'Wprowadź tajny klucz klienta z danych logowania do aplikacji konta PayPal Live.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_783901fa167d90d82463e71da67c5e52'] = 'Ochrona sprzedawców PayPal nie ma zastosowania'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_c9cc8cce247e49bae79f15173ce97354'] = 'Ratować'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a1c0702a8ce0c1562b372b93b5b8ae70'] = 'Proszę podać identyfikator sprzedawcy'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_5f8d20654b3683fd837ad6766a99b388'] = 'Podano nieprawidłowy identyfikator sprzedawcy.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_451ad04779375f902c3c9de28f096f42'] = 'Wprowadź adres e-mail konta'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a23555edc4d09483a2d5d84478a6e8d3'] = 'Wprowadź prawidłowy adres e-mail konta'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_d78b4ac6843d2634c46a59c2d0c2629d'] = 'Wprowadź identyfikator klienta'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_3640405a6244a23f537de55975337bf3'] = 'Wprowadź klucz klienta'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_89493d1e532e6577510bbd93052bf20c'] = 'Płatnik zainicjował spór dotyczący tej przechwyconej płatności w systemie PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_9c28e950fb310ee005da61698456bc61'] = 'Przechwycone środki zostały odwrócone w odpowiedzi na zakwestionowanie przez płatnika tej przechwyconej płatności z emitentem instrumentu finansowego wykorzystanego do opłacenia tej przechwyconej płatności.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_e2740ccb963c88d2739ee7ff5d493235'] = 'Płatnik zapłacił czekiem elektronicznym, który jeszcze nie został rozliczony.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_4e3da671b7e244adc46f9093e150fd99'] = 'Odwiedź swoje konto internetowe. W ** Przeglądzie konta ** zaakceptuj i odrzuć tę płatność.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_f3d713097a36e0a9f589755465883f91'] = 'Nie można podać żadnego dodatkowego konkretnego powodu. Aby uzyskać więcej informacji na temat tej przechwyconej płatności, odwiedź swoje konto online lub skontaktuj się z PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_04263f8fe176af4cd42d9756fc136cfe'] = 'Przechwycona płatność oczekuje na ręczne sprawdzenie.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_c343691c63a475e04acf19b98945bc59'] = 'Odbiorca nie ustawił jeszcze odpowiednich preferencji odbioru dla swojego konta. Aby uzyskać więcej informacji na temat akceptowania lub odrzucania tej płatności, odwiedź swoje konto online. Ten powód jest zwykle podawany w scenariuszach, na przykład gdy waluta przechwyconej płatności różni się od podstawowej waluty posiadania odbiorcy.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_71013ee01f1a31c0310bcf4a91162c29'] = 'Przechwycone środki zostały zwrócone.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_a4656378d78c3d73b354ddc0d4dabe18'] = 'Płatnik musi wysłać środki za tę przechwyconą płatność. Ten kod zwykle pojawia się w przypadku ręcznych EFT.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_1bca65212e4eba1b64766eeb66091af2'] = 'Odbiorca nie ma konta PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_451ad04779375f902c3c9de28f096f42'] = 'Proszę podać adres e-mail konta'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a23555edc4d09483a2d5d84478a6e8d3'] = 'Proszę podać prawidłowy adres e-mail konta'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_d78b4ac6843d2634c46a59c2d0c2629d'] = 'Proszę podać ID klienta'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_3640405a6244a23f537de55975337bf3'] = 'Proszę wprowadzić tajny klucz klienta'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_89493d1e532e6577510bbd93052bf20c'] = 'Płatnik wszczął spór dotyczący tej przechwyconej płatności w serwisie PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_9c28e950fb310ee005da61698456bc61'] = 'Zatrzymane środki zostały zwrócone w odpowiedzi na zakwestionowanie przez płatnika zatrzymanej płatności u wystawcy instrumentu finansowego użytego do opłacenia tej zatrzymanej płatności.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_e2740ccb963c88d2739ee7ff5d493235'] = 'Płatnik zapłacił e-czekiem, który nie został jeszcze zrealizowany.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_4e3da671b7e244adc46f9093e150fd99'] = 'Odwiedź swoje konto online. W **Podsumowaniu konta** zaakceptuj i odrzuć tę płatność.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_f3d713097a36e0a9f589755465883f91'] = 'Nie można podać żadnego konkretnego powodu. Aby uzyskać więcej informacji na temat tej przechwyconej płatności, odwiedź swoje konto online lub skontaktuj się z PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_04263f8fe176af4cd42d9756fc136cfe'] = 'Zarejestrowana płatność oczekuje na ręczną weryfikację.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_c343691c63a475e04acf19b98945bc59'] = 'Odbiorca nie skonfigurował jeszcze odpowiednich preferencji odbioru dla swojego konta. Aby uzyskać więcej informacji o tym, jak zaakceptować lub odrzucić tę płatność, odwiedź stronę internetową swojego konta. Ten powód jest zazwyczaj podawany w sytuacjach, gdy waluta przechwyconej płatności różni się od waluty głównej odbiorcy.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_71013ee01f1a31c0310bcf4a91162c29'] = 'Zdobyte środki zwrócono.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_a4656378d78c3d73b354ddc0d4dabe18'] = 'Płatnik musi przesłać środki za tę przechwyconą płatność. Ten kod zazwyczaj pojawia się w przypadku ręcznych przelewów elektronicznych.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_1bca65212e4eba1b64766eeb66091af2'] = 'Odbiorca nie posiada konta PayPal.'; $_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_53c3196bca5dde9b71e5be8287ae9cde'] = 'Konto PayPal odbiorcy nie zostało zweryfikowane'; $_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_a7a37ae71b70fe671308691cc6fe03dc'] = 'Transakcje PayPal'; $_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_1e860e56970a81a1ba3e1fcb7fccc846'] = 'Numer zamówienia'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_55307c995094996234479b33fbc16bd1'] = 'Numer zamówienia w QloApps transakcji PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_55307c995094996234479b33fbc16bd1'] = 'Numer referencyjny zamówienia w QloApps transakcji PayPal'; $_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2b6ab125b0384eb33453b95c3f8e4ae6'] = 'Identyfikator transakcji PayPal'; $_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_dae74f84a69dab4b8e04999f2460febf'] = 'Identyfikator transakcji PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2763b4242763cbee7190de46d45d204f'] = 'Suma transakcji'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2763b4242763cbee7190de46d45d204f'] = 'Całkowita kwota transakcji'; $_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_e8453b7e2a7ccf2edeae228682a61b8d'] = 'Całkowita kwota zapłacona w transakcji PayPal'; $_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_ce26601dac0dea138b7295f02b7620a7'] = 'Klient'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_41a9d5e195648f50143f1c1abf5e00e6'] = 'Klient w QloApps, który dokonał transakcji PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_41a9d5e195648f50143f1c1abf5e00e6'] = 'Klient QloApps, który wykonał transakcję PayPal.'; $_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_ec53a8c4f07baed5d8825072c89799be'] = 'Status'; $_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2ea78fadfafeae47ad786c288667eadf'] = 'Status płatności'; $_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_3516529c1d87f5fde62d6841140f5dc0'] = 'Aktualny status transakcji PayPal.'; @@ -62,12 +70,12 @@ $_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontrolle $_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_630f6dc397fe74e52d5189e2c80f282b'] = 'Powrót do listy'; $_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2a43821ec21eadc4073fc65dc35d2198'] = 'Nieprawidłowy typ zwrotu.'; $_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_4e7f26d58027e5f9611cc5fe9d901e06'] = 'Nieprawidłowa kwota zwrotu.'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_5eaf60217767a2ad1e30d36dc3a1c12c'] = 'Wpisz prawidłowy powód zwrotu (dozwolone tylko znaki alfanumeryczne).'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_ee4f91ae6dc5a35a0060efa164cb65d9'] = 'Nieprawidłowa kwota zwrotu. Maks. dostępna kwota do zwrotu wynosi'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_6a8b1040e75c9723eef0a783ffc0e1d2'] = 'Ta transakcja została już zwrócona.'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_5eaf60217767a2ad1e30d36dc3a1c12c'] = 'Wprowadź prawidłowy powód zwrotu (dozwolone są tylko znaki alfanumeryczne).'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_ee4f91ae6dc5a35a0060efa164cb65d9'] = 'Nieprawidłowa kwota zwrotu. Maksymalna dostępna kwota zwrotu to'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_6a8b1040e75c9723eef0a783ffc0e1d2'] = 'Zwrot za tę transakcję został już dokonany.'; $_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_446b416d535ed3f547fcd653dc11d49c'] = 'Nieprawidłowe żądanie'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_e2b7dec8fa4b498156dfee6e4c84b156'] = 'Ta metoda płatności nie jest dostępna.'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_2b46a852749d321a4c6eafa3b36b643c'] = 'Zamówienie PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_e2b7dec8fa4b498156dfee6e4c84b156'] = 'Ta metoda płatności jest niedostępna.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_2b46a852749d321a4c6eafa3b36b643c'] = 'Płatność PayPal'; $_MODULE['<{qlopaypalcommerce}prestashop>view_78170aac364ebe8527577b742dc2111d'] = 'Szczegóły transakcji PayPal'; $_MODULE['<{qlopaypalcommerce}prestashop>view_34c15b4659b2241667e4c5d534270a17'] = 'Środowisko płatności'; $_MODULE['<{qlopaypalcommerce}prestashop>view_2652eec977dcb2a5aea85f5bec235b05'] = 'Piaskownica'; @@ -75,48 +83,60 @@ $_MODULE['<{qlopaypalcommerce}prestashop>view_756d97bb256b8580d4d71ee0c547804e'] $_MODULE['<{qlopaypalcommerce}prestashop>view_6f097b8feb2af129c8f74c786c130c1c'] = 'Identyfikator referencyjny PayPal'; $_MODULE['<{qlopaypalcommerce}prestashop>view_2b6ab125b0384eb33453b95c3f8e4ae6'] = 'Identyfikator transakcji PayPal'; $_MODULE['<{qlopaypalcommerce}prestashop>view_157c928dae48d88d19fb2ced2afbdd71'] = 'Identyfikator zamówienia PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_fdabf4e63a3cc1fe987269ff4e629148'] = 'Suma transakcyjna'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_e98b5a6351fecb55b2f890686f31856d'] = 'Numer zamówienia QloApps'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_fdabf4e63a3cc1fe987269ff4e629148'] = 'Kwota transakcji'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_1e860e56970a81a1ba3e1fcb7fccc846'] = 'Numer zamówienia'; $_MODULE['<{qlopaypalcommerce}prestashop>view_2ea989f83006e233627987293f4bde0a'] = 'Nazwa klienta'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_54945fdafec2c65f0f5561d65b165f1a'] = 'Email klienta'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_475007c00d7c166cca01a44ecfd068ff'] = 'Wyświetl klienta'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_4351cfebe4b61d8aa5efa1d020710005'] = 'Widok'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_54945fdafec2c65f0f5561d65b165f1a'] = 'E-mail klienta'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_475007c00d7c166cca01a44ecfd068ff'] = 'Widok klienta'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_4351cfebe4b61d8aa5efa1d020710005'] = 'Pogląd'; $_MODULE['<{qlopaypalcommerce}prestashop>view_2ea78fadfafeae47ad786c288667eadf'] = 'Status płatności'; $_MODULE['<{qlopaypalcommerce}prestashop>view_8f7afecbc8fbc4cd0f50a57d1172482e'] = 'ZAKOŃCZONY'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_31738cd694667ccdfa2cbc65249de5cc'] = 'Termin płatności'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_31738cd694667ccdfa2cbc65249de5cc'] = 'Data płatności'; $_MODULE['<{qlopaypalcommerce}prestashop>view_580d87d5c5121696825f17708b1ec065'] = 'Całkowita kwota zwrotu'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_8b123a0f5d61720a4273bc4ed1d613a3'] = 'Transakcja zwrotu pieniędzy'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_8b123a0f5d61720a4273bc4ed1d613a3'] = 'Zwrot transakcji'; $_MODULE['<{qlopaypalcommerce}prestashop>view_a3a13394565fb6956d6948a1dbb8fe3f'] = 'Całkowita kwota zwrotu'; $_MODULE['<{qlopaypalcommerce}prestashop>view_9d9dca90e919bd4c8febf55ea7a25b5f'] = 'Całkowita dostępna kwota do zwrotu'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_51890b292429265077afcc0b2bb6f34a'] = 'Wybierz rodzaj zwrotu. Wybierz częściowy zwrot pieniędzy, aby dokonać zwrotu części kwoty z transakcji. Wybierz pełny zwrot, aby zwrócić całkowitą kwotę transakcji.'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_d8fb839f1db11646b85354c3fb50fda3'] = 'Typ zwrotu'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_4f5a217b333e276be931951be6dc28f0'] = 'Wybierz Typ zwrotu'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_abcec07843d3ec02783b27587560f85f'] = 'Pełen zwrot kosztów'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_c985a711556e2edf5cac28dfbdb43ff0'] = 'Częściowy zwrot kosztów'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_84bca5dc34bb0d1244a9e0f323878665'] = 'Wpisz kwotę, którą chcesz zwrócić z kwoty transakcji.'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_b782d4ff61550d7e8cdee4cf70a03788'] = 'Kwota Refundacji'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_6bbeabf389367bc93090db6dd0c13c4e'] = 'max.'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_85689c24167c4690a0e346c46a17598c'] = 'Wpisz uwagę dotyczącą tego zwrotu.'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_97d8f33367ecaeee79d5255b447c8827'] = 'Uwaga dotycząca zwrotu kosztów'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_76f0ed934de85cc7131910b32ede7714'] = 'Zwrot'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_51890b292429265077afcc0b2bb6f34a'] = 'Wybierz rodzaj zwrotu. Wybierz zwrot częściowy, aby zwrócić część kwoty transakcji. Wybierz zwrot pełny, aby zwrócić całą kwotę transakcji.'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_d8fb839f1db11646b85354c3fb50fda3'] = 'Rodzaj zwrotu'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_4f5a217b333e276be931951be6dc28f0'] = 'Wybierz rodzaj zwrotu'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_abcec07843d3ec02783b27587560f85f'] = 'Pełny zwrot pieniędzy'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_c985a711556e2edf5cac28dfbdb43ff0'] = 'Częściowy zwrot pieniędzy'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_84bca5dc34bb0d1244a9e0f323878665'] = 'Wprowadź kwotę, którą chcesz zwrócić z kwoty transakcji.'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_b782d4ff61550d7e8cdee4cf70a03788'] = 'Kwota zwrotu'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_6bbeabf389367bc93090db6dd0c13c4e'] = 'maks.'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_85689c24167c4690a0e346c46a17598c'] = 'Wprowadź uwagę dotyczącą tego zwrotu.'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_97d8f33367ecaeee79d5255b447c8827'] = 'Uwaga dotycząca zwrotu'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_76f0ed934de85cc7131910b32ede7714'] = 'Refundacja'; $_MODULE['<{qlopaypalcommerce}prestashop>view_072ab77c58ea38de4e3272c3eed624c1'] = 'Lista zwrotów'; $_MODULE['<{qlopaypalcommerce}prestashop>view_88427ec035734b45aae9f7d8859a5008'] = 'Identyfikator transakcji'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_b2f40690858b404ed10e62bdf422c704'] = 'Ilość'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_a1fa27779242b4902f7ae3bdd5c6d508'] = 'Rodzaj'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_b2f40690858b404ed10e62bdf422c704'] = 'Kwota'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_a1fa27779242b4902f7ae3bdd5c6d508'] = 'Typ'; $_MODULE['<{qlopaypalcommerce}prestashop>view_ec53a8c4f07baed5d8825072c89799be'] = 'Status'; $_MODULE['<{qlopaypalcommerce}prestashop>view_44749712dbec183e983dcd78a7736c41'] = 'Data'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_a207494d393a4f4909f746fd24440440'] = 'Nie utworzono jeszcze zwrotów środków.'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_e3bc22b32f4abd925670253972326260'] = 'Całkowita kwota zwrotu: '; +$_MODULE['<{qlopaypalcommerce}prestashop>view_91921ada405fd6ba65dff028df047cb6'] = 'Uwaga'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_a207494d393a4f4909f746fd24440440'] = 'Nie utworzono jeszcze żadnych zwrotów.'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_e3bc22b32f4abd925670253972326260'] = 'Całkowita kwota zwrotu:'; $_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_7b12dad517fd9056aabf8099a8173ddf'] = 'Twoja płatność nie powiodła się z następującego powodu:'; $_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_3d9f514d46849760ef1b1412e314fd99'] = 'Błąd:'; $_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_0d6779532e0735f6a9b05723ab191bc3'] = 'Opis błędu:'; $_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_569fd05bdafa1712c4f6be5b153b8418'] = 'Inne metody płatności'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_cancel_ack_0e1b6078789badcbfae8640288a46f0f'] = 'Anulowałeś płatność przez PayPal. Możesz spróbować ponownie w systemie PayPal lub wypróbować inną metodę płatności.'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_88526efe38fd18179a127024aba8c1d7'] = 'Twoje zamówienie% s zostało zakończone.'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_cd44f47a868e5e42fa1a23b775504490'] = 'Całkowita zapłacona kwota'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_19c419a8a4f1cd621853376a930a2e24'] = 'Wysłano wiadomość e-mail z tymi informacjami.'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_30163d8fc3068e8297e7ab5bf32aec87'] = 'Twoje zamówienie zostanie wysłane tak szybko, jak to możliwe.'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_ca7e41a658753c87973936d7ce2429a8'] = 'W przypadku pytań, uwag lub wątpliwości prosimy o kontakt'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_66fcf4c223bbf4c7c886d4784e1f62e4'] = 'zespół obsługi klienta ekspertów'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_7c2ed2f8a5fc3c48f2d49196f96b34b1'] = 'Zauważyliśmy problem z Twoją płatnością. Prosimy o kontakt z naszym'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_cancel_ack_0e1b6078789badcbfae8640288a46f0f'] = 'Anulowałeś płatność przez PayPal. Możesz spróbować ponownie przez PayPal lub wybrać inną metodę płatności.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_88526efe38fd18179a127024aba8c1d7'] = 'Twoje zamówienie w %s zostało zrealizowane.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_cd44f47a868e5e42fa1a23b775504490'] = 'Całkowita kwota zapłacona'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_19c419a8a4f1cd621853376a930a2e24'] = 'Informacja ta została wysłana e-mailem.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_30163d8fc3068e8297e7ab5bf32aec87'] = 'Twoje zamówienie zostanie wysłane najszybciej jak to możliwe.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_ca7e41a658753c87973936d7ce2429a8'] = 'Jeśli masz pytania, uwagi lub wątpliwości, skontaktuj się z nami'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_66fcf4c223bbf4c7c886d4784e1f62e4'] = 'zespół ekspertów ds. obsługi klienta'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_7c2ed2f8a5fc3c48f2d49196f96b34b1'] = 'Zauważyliśmy problem z Twoją płatnością. Skontaktuj się z nami.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_17a17ba93e6ac0192bd563905e87538d'] = 'Zapłać za pomocą opcji płatności Paypal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_644253cd300d73471cf86296d532b964'] = 'Zapłać za pomocą PayPala'; $_MODULE['<{qlopaypalcommerce}prestashop>payment_25e8f2fd2871c8423bbe4e254066cd98'] = 'Proszę czekać...'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_229a7ec501323b94db7ff3157a7623c9'] = 'Identyfikator sprzedawcy'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_daa9d1b5682c462e8fc8585bb4cf868c'] = 'Wprowadź identyfikator sprzedawcy swojego konta PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_275f5257af70b08ed6def799bfa214b3'] = 'Konto e-mail'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_9b022ec729030a4e40c533c61668d128'] = 'Wprowadź adres e-mail konta PayPal swojego konta PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_76525f0f34b48475e5ca33f71d296f3b'] = 'Identyfikator klienta'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_21fb87c3b83156a1c9e7c51239705335'] = 'Wprowadź identyfikator klienta z poświadczeń aplikacji konta PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_734082edf44417dd19cc65943aa65c36'] = 'Sekret klienta'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_92718280c77bfa861693c57bad5a0632'] = 'Wprowadź klucz klienta z poświadczeń aplikacji konta PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_e98b5a6351fecb55b2f890686f31856d'] = 'Numer zamówienia QloApps'; diff --git a/modules/qlopaypalcommerce/translations/ru.php b/modules/qlopaypalcommerce/translations/ru.php index fa78162f2..081009ef2 100644 --- a/modules/qlopaypalcommerce/translations/ru.php +++ b/modules/qlopaypalcommerce/translations/ru.php @@ -3,21 +3,134 @@ global $_MODULE; $_MODULE = array(); $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_dba5abcd5b8bb0ee23a6bde15a6e5fde'] = 'QloApps PayPal Checkout'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1639a5f6b16f8d4a04393dbdff0e05f6'] = 'Мгновенный глобальный бизнес.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_dd5e9bb870ec616039f0fe9f2bd4726b'] = 'Единая интеграция для всех ваших потребностей в онлайн-платежах.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1639a5f6b16f8d4a04393dbdff0e05f6'] = 'Мгновенное превращение в глобальный бизнес.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_dd5e9bb870ec616039f0fe9f2bd4726b'] = 'Одна интеграция для всех ваших потребностей в онлайн-платежах.'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_e654f7a86a4458b9cd662267e0f29b52'] = 'Преимущества'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_e0a9745011703bc991ab1af1f50ccd20'] = 'Обеспечьте беспрепятственный покупательский опыт для ваших клиентов, который способствует конверсии и лояльности.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_af0fd51a752f317a87b2f7b724856034'] = 'Принимайте платежи PayPal с упрощенной регистрацией, адаптируемой интеграцией и простой настройкой учетной записи.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_b9b50f4dec6df62993204153f8d5db2c'] = 'Доступ к более чем 377 миллионам клиентов PayPal по всему миру * с поддержкой местной валюты для лучшего управления деньгами.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_cb47de9d9350a9025c8c3b657c8c8268'] = 'Гарантия безопасности для вас и ваших клиентов благодаря защите покупателей и продавцов при приемлемых продажах.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_8332b9ae4d8931da4a311f410a232619'] = 'Результат PayPal за четвертый квартал 2020 года'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1e4fe71e24592a98260048fe05cbbb5b'] = 'Необходимо настроить PayPal Merchant ID, Email, Client ID и Secret.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a02758d758e8bec77a33d7f392eb3f8a'] = 'Валюта для этого модуля не установлена.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_afcae56aeb45bbff848348abf4824b44'] = 'Платежная конфигурация PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_116e78f6c1c4b4f66a57192817242e35'] = 'Операционная среда'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_e0a9745011703bc991ab1af1f50ccd20'] = 'Обеспечьте своим клиентам бесперебойный процесс покупки, который повысит конверсию и лояльность.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_af0fd51a752f317a87b2f7b724856034'] = 'Принимайте платежи через PayPal благодаря упрощенной процедуре регистрации, гибкой интеграции и простой настройке учетной записи.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_b9b50f4dec6df62993204153f8d5db2c'] = 'Доступ к более чем 377 миллионам клиентов PayPal по всему миру*, с поддержкой местных валют для более эффективного управления финансами.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_cb47de9d9350a9025c8c3b657c8c8268'] = 'Спокойствие для вас и ваших клиентов благодаря защите покупателей и продавцов по соответствующим сделкам.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_8332b9ae4d8931da4a311f410a232619'] = 'Результаты PayPal за четвертый квартал 2020 года'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1e4fe71e24592a98260048fe05cbbb5b'] = 'Необходимо настроить идентификатор продавца PayPal, адрес электронной почты, идентификатор клиента и секретный ключ.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a02758d758e8bec77a33d7f392eb3f8a'] = 'Для этого модуля валюта не установлена.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_afcae56aeb45bbff848348abf4824b44'] = 'Настройка платежей PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_116e78f6c1c4b4f66a57192817242e35'] = 'Среда транзакций'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_2652eec977dcb2a5aea85f5bec235b05'] = 'Песочница'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_756d97bb256b8580d4d71ee0c547804e'] = 'Производство'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_bb6e852329aacf2cc839e01ab1ce1773'] = 'Выберите платежную среду PayPal: песочницу или рабочую среду. Получить реальную транзакцию можно только на продакшене, для тестирования используйте песочницу.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_bb6e852329aacf2cc839e01ab1ce1773'] = 'Выберите среду обработки платежей PayPal: тестовую (sandbox) или рабочую (production). Реальные транзакции можно получить только в рабочей среде, для тестирования используйте тестовую среду.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_ed4f8785248e2d9a8a8b25e5c483551a'] = 'Идентификатор продавца в тестовой среде'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_6d132ffd3d699649441bdc627dd57eba'] = 'Введите идентификатор продавца (Merchant ID) вашего тестового аккаунта PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_36808d0f8a32391ba62716d9831040e5'] = 'Адрес электронной почты учетной записи песочницы'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_ff8336737d5f067b6c11724bd6fc944e'] = 'Введите адрес электронной почты вашей учетной записи PayPal в тестовой среде PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a0bd7d42b20f8ca0c6f28bdd30a1af1f'] = 'Идентификатор клиента песочницы'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_e7b65a83fa18a3396a4b140483e6f288'] = 'Введите идентификатор клиента из учетных данных приложения тестовой учетной записи PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_9af7eae52a08a132e079c3e910bb2cbe'] = 'Секрет клиента песочницы'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_023d4f770106b82c4984d38c9033d393'] = 'Введите секретный ключ клиента из учетных данных приложения в тестовой среде PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_450e2248dad7a152379bf016310e1eba'] = 'Идентификатор продавца в реальном времени'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_3058efc14b28f688630f4e6770db5f03'] = 'Введите идентификатор продавца (Merchant ID) вашего аккаунта PayPal Live.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_c916854e86ef605147fce41d400b6d74'] = 'Электронная почта для связи с аккаунтом в режиме реального времени'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_05e0b13ee68a1adcd4939da789611213'] = 'Введите адрес электронной почты вашей учетной записи PayPal Live.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1087b413bc531d99ee4deb93e280bfed'] = 'Действующий идентификатор клиента'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_dfa5a074df3ad0ca4018a93243fcce1e'] = 'Введите идентификатор клиента из учетных данных приложения PayPal Live Account.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_b9b75793dc0a1d8225b39b8be4392339'] = 'Секрет клиента в реальном времени'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_1382bf9075c663adbf10818ed4789234'] = 'Введите секретный ключ клиента из учетных данных приложения PayPal Live Account.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_783901fa167d90d82463e71da67c5e52'] = 'Программа защиты продавцов PayPal не применяется.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_c9cc8cce247e49bae79f15173ce97354'] = 'Сохранять'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a1c0702a8ce0c1562b372b93b5b8ae70'] = 'Пожалуйста, введите идентификатор продавца.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_5f8d20654b3683fd837ad6766a99b388'] = 'Указан неверный идентификатор продавца.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_451ad04779375f902c3c9de28f096f42'] = 'Пожалуйста, введите адрес электронной почты вашей учетной записи.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a23555edc4d09483a2d5d84478a6e8d3'] = 'Пожалуйста, введите действительный адрес электронной почты вашей учетной записи.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_d78b4ac6843d2634c46a59c2d0c2629d'] = 'Пожалуйста, введите идентификатор клиента.'; +$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_3640405a6244a23f537de55975337bf3'] = 'Пожалуйста, введите секретный ключ клиента.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_89493d1e532e6577510bbd93052bf20c'] = 'Плательщик инициировал спор по этому списанному платежу в PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_9c28e950fb310ee005da61698456bc61'] = 'Удержанные средства были аннулированы в ответ на возражение плательщика против данного удержанного платежа, поданное эмитентом финансового инструмента, использованного для осуществления этого платежа.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_e2740ccb963c88d2739ee7ff5d493235'] = 'Плательщик оплатил электронным чеком, который еще не был подтвержден.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_4e3da671b7e244adc46f9093e150fd99'] = 'Зайдите в свой онлайн-аккаунт. В разделе **Обзор аккаунта** подтвердите или отклоните этот платеж.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_f3d713097a36e0a9f589755465883f91'] = 'Дополнительные конкретные причины предоставить невозможно. Для получения более подробной информации об этом списанном платеже посетите свой личный кабинет или свяжитесь с PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_04263f8fe176af4cd42d9756fc136cfe'] = 'Обработанный платеж ожидает ручной проверки.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_c343691c63a475e04acf19b98945bc59'] = 'Получатель платежа еще не настроил соответствующие параметры получения средств для своего счета. Для получения дополнительной информации о том, как принять или отклонить этот платеж, посетите свой личный кабинет онлайн. Эта причина обычно указывается в случаях, когда валюта полученного платежа отличается от основной валюты получателя.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_71013ee01f1a31c0310bcf4a91162c29'] = 'Захваченные средства были возвращены.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_a4656378d78c3d73b354ddc0d4dabe18'] = 'Плательщик должен перевести средства для этого зачисленного платежа. Этот код обычно появляется при ручных электронных переводах средств.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_1bca65212e4eba1b64766eeb66091af2'] = 'У получателя платежа нет учетной записи PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_53c3196bca5dde9b71e5be8287ae9cde'] = 'Аккаунт PayPal получателя платежа не подтвержден.'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_a7a37ae71b70fe671308691cc6fe03dc'] = 'Транзакции PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_1e860e56970a81a1ba3e1fcb7fccc846'] = 'Номер заказа'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_55307c995094996234479b33fbc16bd1'] = 'Номер заказа в QloApps для транзакции PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2b6ab125b0384eb33453b95c3f8e4ae6'] = 'Идентификатор транзакции PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_dae74f84a69dab4b8e04999f2460febf'] = 'Идентификатор транзакции PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2763b4242763cbee7190de46d45d204f'] = 'Итого по транзакциям'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_e8453b7e2a7ccf2edeae228682a61b8d'] = 'Общая сумма, уплаченная в транзакции PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_ce26601dac0dea138b7295f02b7620a7'] = 'Клиент'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_51890b292429265077afcc0b2bb6f34a'] = 'Выберите тип возврата. Выберите частичный возврат для частичного возмещения суммы транзакции. Выберите полный возврат для полного возмещения суммы транзакции.'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_d8fb839f1db11646b85354c3fb50fda3'] = 'Тип возврата'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_4f5a217b333e276be931951be6dc28f0'] = 'Выберите тип возврата средств'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_abcec07843d3ec02783b27587560f85f'] = 'Полный возврат средств'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_c985a711556e2edf5cac28dfbdb43ff0'] = 'Частичный возврат средств'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_84bca5dc34bb0d1244a9e0f323878665'] = 'Введите сумму, которую вы хотите вернуть, из суммы транзакции.'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_b782d4ff61550d7e8cdee4cf70a03788'] = 'Сумма возврата'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_6bbeabf389367bc93090db6dd0c13c4e'] = 'макс.'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_85689c24167c4690a0e346c46a17598c'] = 'Укажите примечание к этому возврату средств.'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_97d8f33367ecaeee79d5255b447c8827'] = 'Примечание о возврате средств'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_76f0ed934de85cc7131910b32ede7714'] = 'Возвращать деньги'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_072ab77c58ea38de4e3272c3eed624c1'] = 'Список возвратов'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_88427ec035734b45aae9f7d8859a5008'] = 'Идентификатор транзакции'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_b2f40690858b404ed10e62bdf422c704'] = 'Количество'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_a1fa27779242b4902f7ae3bdd5c6d508'] = 'Тип'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_ec53a8c4f07baed5d8825072c89799be'] = 'Статус'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_44749712dbec183e983dcd78a7736c41'] = 'Дата'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_91921ada405fd6ba65dff028df047cb6'] = 'Примечание'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_a207494d393a4f4909f746fd24440440'] = 'Возврат средств пока не создан.'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_e3bc22b32f4abd925670253972326260'] = 'Общая сумма возврата:'; +$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_7b12dad517fd9056aabf8099a8173ddf'] = 'Ваш платеж не прошел по следующей причине:'; +$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_3d9f514d46849760ef1b1412e314fd99'] = 'Ошибка:'; +$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_0d6779532e0735f6a9b05723ab191bc3'] = 'Описание ошибки:'; +$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_569fd05bdafa1712c4f6be5b153b8418'] = 'Другие способы оплаты'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_cancel_ack_0e1b6078789badcbfae8640288a46f0f'] = 'Вы отменили платеж через PayPal. Вы можете повторить попытку оплаты через PayPal или выбрать другой способ оплаты.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_88526efe38fd18179a127024aba8c1d7'] = 'Ваш заказ на %s завершен.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_cd44f47a868e5e42fa1a23b775504490'] = 'Общая сумма платежа'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_19c419a8a4f1cd621853376a930a2e24'] = 'Данная информация отправлена ​​по электронной почте.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_30163d8fc3068e8297e7ab5bf32aec87'] = 'Ваш заказ будет отправлен в кратчайшие сроки.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_ca7e41a658753c87973936d7ce2429a8'] = 'Если у вас есть вопросы, комментарии или замечания, пожалуйста, свяжитесь с нами.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_66fcf4c223bbf4c7c886d4784e1f62e4'] = 'команда экспертов по поддержке клиентов'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_7c2ed2f8a5fc3c48f2d49196f96b34b1'] = 'Мы обнаружили проблему с вашим платежом. Пожалуйста, свяжитесь с нами.'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_41a9d5e195648f50143f1c1abf5e00e6'] = 'Клиент из QloApps, совершивший транзакцию через PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_ec53a8c4f07baed5d8825072c89799be'] = 'Статус'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2ea78fadfafeae47ad786c288667eadf'] = 'Статус платежа'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_3516529c1d87f5fde62d6841140f5dc0'] = 'Текущий статус транзакции PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_6fbc355a02359656f1e4540d58b784e1'] = 'Дата заказа'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_168f21218c30dcc245dc1c62c103cb7b'] = 'Дата создания заказа.'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_630f6dc397fe74e52d5189e2c80f282b'] = 'Вернуться к списку'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2a43821ec21eadc4073fc65dc35d2198'] = 'Неверный тип возврата средств.'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_4e7f26d58027e5f9611cc5fe9d901e06'] = 'Неверная сумма возврата.'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_5eaf60217767a2ad1e30d36dc3a1c12c'] = 'Укажите допустимую причину возврата средств (допускаются только буквенно-цифровые символы).'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_ee4f91ae6dc5a35a0060efa164cb65d9'] = 'Неверная сумма возврата. Максимальная сумма, доступная для возврата, составляет...'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_6a8b1040e75c9723eef0a783ffc0e1d2'] = 'Возврат средств по данной транзакции уже произведен.'; +$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_446b416d535ed3f547fcd653dc11d49c'] = 'Неверный запрос'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_e2b7dec8fa4b498156dfee6e4c84b156'] = 'Этот способ оплаты недоступен.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_2b46a852749d321a4c6eafa3b36b643c'] = 'Оплата через PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_78170aac364ebe8527577b742dc2111d'] = 'Детали транзакции PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_34c15b4659b2241667e4c5d534270a17'] = 'Платежная среда'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_2652eec977dcb2a5aea85f5bec235b05'] = 'Песочница'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_756d97bb256b8580d4d71ee0c547804e'] = 'Производство'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_6f097b8feb2af129c8f74c786c130c1c'] = 'Идентификатор ссылки PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_2b6ab125b0384eb33453b95c3f8e4ae6'] = 'Идентификатор транзакции PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_157c928dae48d88d19fb2ced2afbdd71'] = 'Идентификатор заказа PayPal'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_fdabf4e63a3cc1fe987269ff4e629148'] = 'Сумма транзакции'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_1e860e56970a81a1ba3e1fcb7fccc846'] = 'Номер заказа'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_2ea989f83006e233627987293f4bde0a'] = 'Имя клиента'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_54945fdafec2c65f0f5561d65b165f1a'] = 'Электронное письмо клиента'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_475007c00d7c166cca01a44ecfd068ff'] = 'Просмотреть клиента'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_4351cfebe4b61d8aa5efa1d020710005'] = 'Вид'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_2ea78fadfafeae47ad786c288667eadf'] = 'Статус платежа'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_8f7afecbc8fbc4cd0f50a57d1172482e'] = 'ЗАВЕРШЕННЫЙ'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_31738cd694667ccdfa2cbc65249de5cc'] = 'Дата платежа'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_580d87d5c5121696825f17708b1ec065'] = 'Общая сумма возврата'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_8b123a0f5d61720a4273bc4ed1d613a3'] = 'Возврат средств по транзакции'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_a3a13394565fb6956d6948a1dbb8fe3f'] = 'Общая сумма возврата'; +$_MODULE['<{qlopaypalcommerce}prestashop>view_9d9dca90e919bd4c8febf55ea7a25b5f'] = 'Общая сумма, доступная для возврата'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_17a17ba93e6ac0192bd563905e87538d'] = 'Оплатите с помощью платежной системы PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_644253cd300d73471cf86296d532b964'] = 'Оплата через PayPal.'; +$_MODULE['<{qlopaypalcommerce}prestashop>payment_25e8f2fd2871c8423bbe4e254066cd98'] = 'Пожалуйста, подождите...'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_229a7ec501323b94db7ff3157a7623c9'] = 'идентификатор продавца'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_daa9d1b5682c462e8fc8585bb4cf868c'] = 'Введите идентификатор продавца вашей учетной записи PayPal.'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_275f5257af70b08ed6def799bfa214b3'] = 'Адрес электронной почты'; @@ -26,97 +139,4 @@ $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_76525f0f34b48475e5ca3 $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_21fb87c3b83156a1c9e7c51239705335'] = 'Введите идентификатор клиента из учетных данных приложения PayPal.'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_734082edf44417dd19cc65943aa65c36'] = 'Секрет клиента'; $_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_92718280c77bfa861693c57bad5a0632'] = 'Введите секрет клиента из учетных данных приложения PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_783901fa167d90d82463e71da67c5e52'] = 'Защита продавца PayPal неприменима'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_c9cc8cce247e49bae79f15173ce97354'] = 'Сохранять'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a1c0702a8ce0c1562b372b93b5b8ae70'] = 'Пожалуйста, введите идентификатор продавца'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_5f8d20654b3683fd837ad6766a99b388'] = 'Указан неверный идентификатор продавца.'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_451ad04779375f902c3c9de28f096f42'] = 'Пожалуйста, введите адрес электронной почты аккаунта'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_a23555edc4d09483a2d5d84478a6e8d3'] = 'Пожалуйста, введите действующий адрес электронной почты аккаунта'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_d78b4ac6843d2634c46a59c2d0c2629d'] = 'Пожалуйста, введите идентификатор клиента'; -$_MODULE['<{qlopaypalcommerce}prestashop>qlopaypalcommerce_3640405a6244a23f537de55975337bf3'] = 'Пожалуйста, введите секрет клиента'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_89493d1e532e6577510bbd93052bf20c'] = 'Плательщик инициировал спор для этого захваченного платежа с PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_9c28e950fb310ee005da61698456bc61'] = 'Захваченные средства были сторнированы в ответ на оспаривание плательщиком этого зафиксированного платежа с эмитентом финансового инструмента, использованного для оплаты этого зафиксированного платежа.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_e2740ccb963c88d2739ee7ff5d493235'] = 'Плательщик заплатил через eCheck, который еще не прошел клиринг.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_4e3da671b7e244adc46f9093e150fd99'] = 'Посетите свой онлайн-аккаунт. В ** Обзоре учетной записи ** примите и отклоните этот платеж.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_f3d713097a36e0a9f589755465883f91'] = 'Никакой дополнительной конкретной причины указать нельзя. Для получения дополнительных сведений об этом зафиксированном платеже посетите свою учетную запись в Интернете или обратитесь в PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_04263f8fe176af4cd42d9756fc136cfe'] = 'Захваченный платеж ожидает проверки вручную.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_c343691c63a475e04acf19b98945bc59'] = 'Получатель еще не настроил соответствующие настройки получения для своей учетной записи. Для получения дополнительной информации о том, как принять или отклонить этот платеж, посетите свою учетную запись в Интернете. Эта причина обычно предлагается в сценариях, например, когда валюта фиксированного платежа отличается от основной валюты хранения получателя.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_71013ee01f1a31c0310bcf4a91162c29'] = 'Захваченные средства были возвращены.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_a4656378d78c3d73b354ddc0d4dabe18'] = 'Плательщик должен отправить средства для этого захваченного платежа. Этот код обычно появляется для электронных переводов вручную.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_1bca65212e4eba1b64766eeb66091af2'] = 'У получателя нет учетной записи PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>wkpaypalcommerceorder_53c3196bca5dde9b71e5be8287ae9cde'] = 'Счет PayPal получателя не подтвержден'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_a7a37ae71b70fe671308691cc6fe03dc'] = 'PayPal транзакции'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_1e860e56970a81a1ba3e1fcb7fccc846'] = 'Код заказа'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_55307c995094996234479b33fbc16bd1'] = 'Ссылка на заказ в QloApps транзакции PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2b6ab125b0384eb33453b95c3f8e4ae6'] = 'Идентификатор транзакции PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_dae74f84a69dab4b8e04999f2460febf'] = 'Идентификатор транзакции PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2763b4242763cbee7190de46d45d204f'] = 'Всего транзакции'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_e8453b7e2a7ccf2edeae228682a61b8d'] = 'Общая сумма, уплаченная в транзакции PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_ce26601dac0dea138b7295f02b7620a7'] = 'Покупатель'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_41a9d5e195648f50143f1c1abf5e00e6'] = 'Клиент в QloApps, выполнивший транзакцию PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_ec53a8c4f07baed5d8825072c89799be'] = 'Положение дел'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2ea78fadfafeae47ad786c288667eadf'] = 'Статус платежа'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_3516529c1d87f5fde62d6841140f5dc0'] = 'Текущий статус транзакции PayPal.'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_6fbc355a02359656f1e4540d58b784e1'] = 'Дата заказа'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_168f21218c30dcc245dc1c62c103cb7b'] = 'Дата создания заказа.'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_630f6dc397fe74e52d5189e2c80f282b'] = 'Обратно к списку'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_2a43821ec21eadc4073fc65dc35d2198'] = 'Неверный тип возврата.'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_4e7f26d58027e5f9611cc5fe9d901e06'] = 'Неверная сумма возврата.'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_5eaf60217767a2ad1e30d36dc3a1c12c'] = 'Введите действительную причину возврата (разрешены только буквы и цифры).'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_ee4f91ae6dc5a35a0060efa164cb65d9'] = 'Неверная сумма возврата. Максимум. доступная сумма для возврата составляет'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_6a8b1040e75c9723eef0a783ffc0e1d2'] = 'Возврат по этой транзакции уже произведен.'; -$_MODULE['<{qlopaypalcommerce}prestashop>adminpaypalcommercetransactioncontroller_446b416d535ed3f547fcd653dc11d49c'] = 'Неверный запрос'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_e2b7dec8fa4b498156dfee6e4c84b156'] = 'Этот способ оплаты недоступен.'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_2b46a852749d321a4c6eafa3b36b643c'] = 'PayPal Checkout'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_78170aac364ebe8527577b742dc2111d'] = 'Детали транзакции PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_34c15b4659b2241667e4c5d534270a17'] = 'Платежная среда'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_2652eec977dcb2a5aea85f5bec235b05'] = 'Песочница'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_756d97bb256b8580d4d71ee0c547804e'] = 'Производство'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_6f097b8feb2af129c8f74c786c130c1c'] = 'Ссылочный идентификатор PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_2b6ab125b0384eb33453b95c3f8e4ae6'] = 'Идентификатор транзакции PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_157c928dae48d88d19fb2ced2afbdd71'] = 'Идентификатор заказа PayPal'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_fdabf4e63a3cc1fe987269ff4e629148'] = 'Сумма транзакции'; $_MODULE['<{qlopaypalcommerce}prestashop>view_e98b5a6351fecb55b2f890686f31856d'] = 'Справочник по заказу QloApps'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_2ea989f83006e233627987293f4bde0a'] = 'Имя Клиента'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_54945fdafec2c65f0f5561d65b165f1a'] = 'Электронная почта клиента'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_475007c00d7c166cca01a44ecfd068ff'] = 'Просмотр клиента'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_4351cfebe4b61d8aa5efa1d020710005'] = 'Вид'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_2ea78fadfafeae47ad786c288667eadf'] = 'Статус платежа'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_8f7afecbc8fbc4cd0f50a57d1172482e'] = 'ЗАВЕРШЕННЫЙ'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_31738cd694667ccdfa2cbc65249de5cc'] = 'Дата платежа'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_580d87d5c5121696825f17708b1ec065'] = 'Общая сумма возврата'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_8b123a0f5d61720a4273bc4ed1d613a3'] = 'Транзакция возврата'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_a3a13394565fb6956d6948a1dbb8fe3f'] = 'Общая сумма возврата'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_9d9dca90e919bd4c8febf55ea7a25b5f'] = 'Общая доступная сумма для возврата'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_51890b292429265077afcc0b2bb6f34a'] = 'Выберите тип возврата. Выберите частичное возмещение для возмещения частичной суммы транзакции. Выберите полный возврат, чтобы вернуть полную сумму транзакции.'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_d8fb839f1db11646b85354c3fb50fda3'] = 'Тип возврата'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_4f5a217b333e276be931951be6dc28f0'] = 'Выберите тип возврата'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_abcec07843d3ec02783b27587560f85f'] = 'Полное возмещение'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_c985a711556e2edf5cac28dfbdb43ff0'] = 'Частичное возмещение'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_84bca5dc34bb0d1244a9e0f323878665'] = 'Введите сумму, которую вы хотите вернуть из суммы транзакции.'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_b782d4ff61550d7e8cdee4cf70a03788'] = 'Сумма возмещения'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_6bbeabf389367bc93090db6dd0c13c4e'] = 'Максимум.'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_85689c24167c4690a0e346c46a17598c'] = 'Введите примечание для этого возмещения.'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_97d8f33367ecaeee79d5255b447c8827'] = 'Замечание о возврате'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_76f0ed934de85cc7131910b32ede7714'] = 'Возврат'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_072ab77c58ea38de4e3272c3eed624c1'] = 'Список возврата'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_88427ec035734b45aae9f7d8859a5008'] = 'ID транзакции'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_b2f40690858b404ed10e62bdf422c704'] = 'Количество'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_a1fa27779242b4902f7ae3bdd5c6d508'] = 'Тип'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_ec53a8c4f07baed5d8825072c89799be'] = 'Положение дел'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_44749712dbec183e983dcd78a7736c41'] = 'Дата'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_a207494d393a4f4909f746fd24440440'] = 'Возврат еще не создан.'; -$_MODULE['<{qlopaypalcommerce}prestashop>view_e3bc22b32f4abd925670253972326260'] = 'Общая сумма возврата: '; -$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_7b12dad517fd9056aabf8099a8173ddf'] = 'Ваш платеж не прошел по следующей причине:'; -$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_3d9f514d46849760ef1b1412e314fd99'] = 'Ошибка:'; -$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_0d6779532e0735f6a9b05723ab191bc3'] = 'Описание ошибки:'; -$_MODULE['<{qlopaypalcommerce}prestashop>paypal_error_569fd05bdafa1712c4f6be5b153b8418'] = 'Другие способы оплаты'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_cancel_ack_0e1b6078789badcbfae8640288a46f0f'] = 'Вы отменили платеж через PayPal. Вы можете повторить попытку через PayPal или попробовать другой способ оплаты.'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_88526efe38fd18179a127024aba8c1d7'] = 'Ваш заказ на% s выполнен.'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_cd44f47a868e5e42fa1a23b775504490'] = 'Общая выплаченная сумма'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_19c419a8a4f1cd621853376a930a2e24'] = 'Электронное письмо было отправлено с этой информацией.'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_30163d8fc3068e8297e7ab5bf32aec87'] = 'Ваш заказ будет отправлен в кратчайшие сроки.'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_ca7e41a658753c87973936d7ce2429a8'] = 'Если у вас есть вопросы, комментарии или проблемы, свяжитесь с нашим'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_66fcf4c223bbf4c7c886d4784e1f62e4'] = 'экспертная команда поддержки клиентов'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_return_7c2ed2f8a5fc3c48f2d49196f96b34b1'] = 'Мы заметили проблему с вашим платежом. Свяжитесь с нашим'; -$_MODULE['<{qlopaypalcommerce}prestashop>payment_25e8f2fd2871c8423bbe4e254066cd98'] = 'Подождите пожалуйста...'; diff --git a/modules/qlopaypalcommerce/views/css/admin/index.php b/modules/qlopaypalcommerce/views/css/admin/index.php index 409280877..8d30901e6 100644 --- a/modules/qlopaypalcommerce/views/css/admin/index.php +++ b/modules/qlopaypalcommerce/views/css/admin/index.php @@ -2,10 +2,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -18,7 +18,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); diff --git a/modules/qlopaypalcommerce/views/css/admin/wk_module_menu.css b/modules/qlopaypalcommerce/views/css/admin/wk_module_menu.css index 9329d25d5..12a1fe17b 100644 --- a/modules/qlopaypalcommerce/views/css/admin/wk_module_menu.css +++ b/modules/qlopaypalcommerce/views/css/admin/wk_module_menu.css @@ -1,10 +1,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -17,7 +17,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ .icon-AdminPaypalCommerceTransaction:before { diff --git a/modules/qlopaypalcommerce/views/css/admin/wk_paypal_transaction.css b/modules/qlopaypalcommerce/views/css/admin/wk_paypal_transaction.css index 27fab253a..2806e7768 100644 --- a/modules/qlopaypalcommerce/views/css/admin/wk_paypal_transaction.css +++ b/modules/qlopaypalcommerce/views/css/admin/wk_paypal_transaction.css @@ -1,10 +1,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -17,7 +17,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ .ppstatusDetail .ppstatusDetailMsg { diff --git a/modules/qlopaypalcommerce/views/css/front/index.php b/modules/qlopaypalcommerce/views/css/front/index.php index 150f23072..80123c370 100644 --- a/modules/qlopaypalcommerce/views/css/front/index.php +++ b/modules/qlopaypalcommerce/views/css/front/index.php @@ -2,10 +2,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -18,7 +18,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); diff --git a/modules/qlopaypalcommerce/views/css/front/wk_payment.css b/modules/qlopaypalcommerce/views/css/front/wk_payment.css index 5843f2c29..2c84df9c0 100644 --- a/modules/qlopaypalcommerce/views/css/front/wk_payment.css +++ b/modules/qlopaypalcommerce/views/css/front/wk_payment.css @@ -1,10 +1,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -17,7 +17,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ #wk-overlay { @@ -46,14 +46,8 @@ 0% {transform: rotate(0deg);} 100% {transform: rotate(360deg);}} -p.payment_module a#qlo_paypal_btn { - background: url(../../img/paypal-payment-icon.png) 15px 8px no-repeat #fbfbfb; -} - -.qlo_paypal_methods_wrapper { - text-align: center; - padding: 20px 15px; - background: #fbfbfb; - border-radius: 3px; - border: 1px solid #d6d4d4; +p.payment_module a.qlo_paypal_payment { + background: url('../../img/paypal-payment-icon.png') no-repeat scroll 15px 23px #FBFBFB; + background-size: 64px 34px; + cursor: pointer; } diff --git a/modules/qlopaypalcommerce/views/css/front/wk_payment_cancel.css b/modules/qlopaypalcommerce/views/css/front/wk_payment_cancel.css index 9b9eb6939..b3e183625 100644 --- a/modules/qlopaypalcommerce/views/css/front/wk_payment_cancel.css +++ b/modules/qlopaypalcommerce/views/css/front/wk_payment_cancel.css @@ -1,10 +1,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -17,7 +17,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ .payment-cancel-ack { diff --git a/modules/qlopaypalcommerce/views/css/index.php b/modules/qlopaypalcommerce/views/css/index.php index 409280877..8d30901e6 100644 --- a/modules/qlopaypalcommerce/views/css/index.php +++ b/modules/qlopaypalcommerce/views/css/index.php @@ -2,10 +2,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -18,7 +18,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); diff --git a/modules/qlopaypalcommerce/views/img/index.php b/modules/qlopaypalcommerce/views/img/index.php index 409280877..8d30901e6 100644 --- a/modules/qlopaypalcommerce/views/img/index.php +++ b/modules/qlopaypalcommerce/views/img/index.php @@ -2,10 +2,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -18,7 +18,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); diff --git a/modules/qlopaypalcommerce/views/index.php b/modules/qlopaypalcommerce/views/index.php index 409280877..8d30901e6 100644 --- a/modules/qlopaypalcommerce/views/index.php +++ b/modules/qlopaypalcommerce/views/index.php @@ -2,10 +2,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -18,7 +18,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); diff --git a/modules/qlopaypalcommerce/views/js/admin/index.php b/modules/qlopaypalcommerce/views/js/admin/index.php index 409280877..8d30901e6 100644 --- a/modules/qlopaypalcommerce/views/js/admin/index.php +++ b/modules/qlopaypalcommerce/views/js/admin/index.php @@ -2,10 +2,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -18,7 +18,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); diff --git a/modules/qlopaypalcommerce/views/js/admin/paypal_config.js b/modules/qlopaypalcommerce/views/js/admin/paypal_config.js new file mode 100644 index 000000000..76e498731 --- /dev/null +++ b/modules/qlopaypalcommerce/views/js/admin/paypal_config.js @@ -0,0 +1,49 @@ +/** +* NOTICE OF LICENSE +* +* This source file is subject to the Academic Free License (AFL 3.0) +* that is bundled with this package in the file LICENSE.md +* It is also available through the world-wide-web at this URL: +* https://opensource.org/licenses/afl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to support@qloapps.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade this module to a newer +* versions in the future. If you wish to customize this module for your needs +* please refer to https://store.webkul.com/customisation-guidelines for more information. +* +* @author Webkul IN +* @copyright Since 2010 Webkul +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 +*/ + +$(document).ready(function() { + $('[name="WK_PAYPAL_COMMERCE_PAYMENT_MODE"]').on('change', function() { + var mode = $(this).val(); + + var $liveFields = $( + '#WK_PAYPAL_COMMERCE_LIVE_MERCHANT_ID,' + + '#WK_PAYPAL_COMMERCE_LIVE_EMAIL,' + + '#WK_PAYPAL_COMMERCE_LIVE_CLIENT_ID,' + + '#WK_PAYPAL_COMMERCE_LIVE_CLIENT_SECRET' + ).closest('.form-group'); + + var $sandboxFields = $( + '#WK_PAYPAL_COMMERCE_SANDBOX_MERCHANT_ID,' + + '#WK_PAYPAL_COMMERCE_SANDBOX_EMAIL,' + + '#WK_PAYPAL_COMMERCE_SANDBOX_CLIENT_ID,' + + '#WK_PAYPAL_COMMERCE_SANDBOX_CLIENT_SECRET' + ).closest('.form-group'); + + if (mode === 'production') { + $liveFields.show(); + $sandboxFields.hide(); + } else { + $liveFields.hide(); + $sandboxFields.show(); + } + }).trigger('change'); +}); \ No newline at end of file diff --git a/modules/qlopaypalcommerce/views/js/admin/wk_paypal_transaction.js b/modules/qlopaypalcommerce/views/js/admin/wk_paypal_transaction.js index 7008c5413..b60ad2c42 100644 --- a/modules/qlopaypalcommerce/views/js/admin/wk_paypal_transaction.js +++ b/modules/qlopaypalcommerce/views/js/admin/wk_paypal_transaction.js @@ -1,10 +1,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -17,7 +17,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ $(document).ready(function() { diff --git a/modules/qlopaypalcommerce/views/js/index.php b/modules/qlopaypalcommerce/views/js/index.php index 409280877..8d30901e6 100644 --- a/modules/qlopaypalcommerce/views/js/index.php +++ b/modules/qlopaypalcommerce/views/js/index.php @@ -2,10 +2,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -18,7 +18,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); diff --git a/modules/qlopaypalcommerce/views/templates/admin/index.php b/modules/qlopaypalcommerce/views/templates/admin/index.php index 409280877..8d30901e6 100644 --- a/modules/qlopaypalcommerce/views/templates/admin/index.php +++ b/modules/qlopaypalcommerce/views/templates/admin/index.php @@ -2,10 +2,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -18,7 +18,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); diff --git a/modules/qlopaypalcommerce/views/templates/admin/paypal_commerce_transaction/helpers/index.php b/modules/qlopaypalcommerce/views/templates/admin/paypal_commerce_transaction/helpers/index.php index 150f23072..80123c370 100644 --- a/modules/qlopaypalcommerce/views/templates/admin/paypal_commerce_transaction/helpers/index.php +++ b/modules/qlopaypalcommerce/views/templates/admin/paypal_commerce_transaction/helpers/index.php @@ -2,10 +2,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -18,7 +18,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); diff --git a/modules/qlopaypalcommerce/views/templates/admin/paypal_commerce_transaction/helpers/view/index.php b/modules/qlopaypalcommerce/views/templates/admin/paypal_commerce_transaction/helpers/view/index.php index 150f23072..80123c370 100644 --- a/modules/qlopaypalcommerce/views/templates/admin/paypal_commerce_transaction/helpers/view/index.php +++ b/modules/qlopaypalcommerce/views/templates/admin/paypal_commerce_transaction/helpers/view/index.php @@ -2,10 +2,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -18,7 +18,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); diff --git a/modules/qlopaypalcommerce/views/templates/admin/paypal_commerce_transaction/helpers/view/view.tpl b/modules/qlopaypalcommerce/views/templates/admin/paypal_commerce_transaction/helpers/view/view.tpl index de150cd1b..069136b23 100644 --- a/modules/qlopaypalcommerce/views/templates/admin/paypal_commerce_transaction/helpers/view/view.tpl +++ b/modules/qlopaypalcommerce/views/templates/admin/paypal_commerce_transaction/helpers/view/view.tpl @@ -1,10 +1,10 @@ {** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -17,7 +17,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 *}
    @@ -56,9 +56,14 @@
    - + @@ -78,8 +83,8 @@ - + {if $refund_data} {foreach $refund_data as $key => $refund} @@ -185,21 +190,21 @@ - + {/foreach} {else} diff --git a/modules/qlopaypalcommerce/views/templates/admin/paypal_commerce_transaction/index.php b/modules/qlopaypalcommerce/views/templates/admin/paypal_commerce_transaction/index.php index 150f23072..80123c370 100644 --- a/modules/qlopaypalcommerce/views/templates/admin/paypal_commerce_transaction/index.php +++ b/modules/qlopaypalcommerce/views/templates/admin/paypal_commerce_transaction/index.php @@ -2,10 +2,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -18,7 +18,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); diff --git a/modules/qlopaypalcommerce/views/templates/front/index.php b/modules/qlopaypalcommerce/views/templates/front/index.php index 150f23072..80123c370 100644 --- a/modules/qlopaypalcommerce/views/templates/front/index.php +++ b/modules/qlopaypalcommerce/views/templates/front/index.php @@ -2,10 +2,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -18,7 +18,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); diff --git a/modules/qlopaypalcommerce/views/templates/front/paypal_error.tpl b/modules/qlopaypalcommerce/views/templates/front/paypal_error.tpl index f9b129f7a..90cd25682 100644 --- a/modules/qlopaypalcommerce/views/templates/front/paypal_error.tpl +++ b/modules/qlopaypalcommerce/views/templates/front/paypal_error.tpl @@ -1,10 +1,10 @@ {** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -17,7 +17,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 *} diff --git a/modules/qlopaypalcommerce/views/templates/hook/index.php b/modules/qlopaypalcommerce/views/templates/hook/index.php index 409280877..8d30901e6 100644 --- a/modules/qlopaypalcommerce/views/templates/hook/index.php +++ b/modules/qlopaypalcommerce/views/templates/hook/index.php @@ -2,10 +2,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -18,7 +18,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); diff --git a/modules/qlopaypalcommerce/views/templates/hook/payment.tpl b/modules/qlopaypalcommerce/views/templates/hook/payment.tpl index d1a6a8f8a..64ce65818 100644 --- a/modules/qlopaypalcommerce/views/templates/hook/payment.tpl +++ b/modules/qlopaypalcommerce/views/templates/hook/payment.tpl @@ -1,10 +1,10 @@ {* * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -17,53 +17,72 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 *} -
    - + + + + + $(document).ready(function() { + $('#qlo_paypal_payment_option').click(function(e) { + e.preventDefault(); + $('#paypal-button-container').slideToggle(); + renderPaypalButtons(); + }); + }); +})(jQuery); + \ No newline at end of file diff --git a/modules/qlopaypalcommerce/views/templates/hook/payment_cancel_ack.tpl b/modules/qlopaypalcommerce/views/templates/hook/payment_cancel_ack.tpl index e5644d4ae..a8af93140 100644 --- a/modules/qlopaypalcommerce/views/templates/hook/payment_cancel_ack.tpl +++ b/modules/qlopaypalcommerce/views/templates/hook/payment_cancel_ack.tpl @@ -1,10 +1,10 @@ {** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -17,7 +17,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 *}

    diff --git a/modules/qlopaypalcommerce/views/templates/hook/payment_return.tpl b/modules/qlopaypalcommerce/views/templates/hook/payment_return.tpl index da06c86e3..5e712124e 100644 --- a/modules/qlopaypalcommerce/views/templates/hook/payment_return.tpl +++ b/modules/qlopaypalcommerce/views/templates/hook/payment_return.tpl @@ -1,10 +1,10 @@ {** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -17,7 +17,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 *} {if isset($status) && $status == '1'} diff --git a/modules/qlopaypalcommerce/views/templates/index.php b/modules/qlopaypalcommerce/views/templates/index.php index 409280877..8d30901e6 100644 --- a/modules/qlopaypalcommerce/views/templates/index.php +++ b/modules/qlopaypalcommerce/views/templates/index.php @@ -2,10 +2,10 @@ /** * NOTICE OF LICENSE * -* This source file is subject to the Open Software License version 3.0 +* This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.md * It is also available through the world-wide-web at this URL: -* https://opensource.org/license/osl-3-0-php +* https://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to support@qloapps.com so we can send you a copy immediately. @@ -18,7 +18,7 @@ * * @author Webkul IN * @copyright Since 2010 Webkul -* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +* @license https://opensource.org/licenses/afl-3.0.php Academic Free License 3.0 */ header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); diff --git a/modules/qlostatsserviceproducts/qlostatsserviceproducts.php b/modules/qlostatsserviceproducts/qlostatsserviceproducts.php index 5b5f3f6f7..ce37ec6f8 100644 --- a/modules/qlostatsserviceproducts/qlostatsserviceproducts.php +++ b/modules/qlostatsserviceproducts/qlostatsserviceproducts.php @@ -134,24 +134,25 @@ class QloStatsServiceProducts extends ModuleGrid public function setQueryForServices($dateBetween) { + $numNightsSql = 'IFNULL(DATEDIFF(hbd.`date_to`, hbd.`date_from`), 0)'; + $applicableDaysSql = 'CASE + WHEN spod.`id_htl_booking_detail` IS NULL OR spod.`id_htl_booking_detail` = 0 THEN 1 + WHEN od.`product_price_calculation_method` IN ('.(int)Product::PRICE_CALCULATION_METHOD_ON_CHECKIN_DAY.', '.(int)Product::PRICE_CALCULATION_METHOD_ON_CHECKOUT_DAY.') THEN 1 + WHEN od.`product_price_calculation_method` = '.(int)Product::PRICE_CALCULATION_METHOD_ON_DURING_STAY.' THEN GREATEST('.$numNightsSql.' - 1, 1) + WHEN od.`product_price_calculation_method` = '.(int)Product::PRICE_CALCULATION_METHOD_CHECKIN_DAY_AND_CHECKOUT_DAY.' THEN 2 + WHEN od.`product_price_calculation_method` IN ('.(int)Product::PRICE_CALCULATION_METHOD_CHECKIN_AND_DURING_STAY.', '.(int)Product::PRICE_CALCULATION_METHOD_CHECKOUT_AND_DURING_STAY.') THEN GREATEST('.$numNightsSql.', 1) + WHEN od.`product_price_calculation_method` = '.(int)Product::PRICE_CALCULATION_METHOD_CHECKIN_AND_CHECKOUT_AND_DURING_STAY.' THEN GREATEST('.$numNightsSql.' + 1, 1) + ELSE GREATEST('.$numNightsSql.', 1) + END'; + $this->query = '(SELECT od.`product_name` as `display_name`, p.`active`, od.`product_auto_add` as auto_add_to_cart, od.`product_price_addition_type` as price_addition_type, ROUND(IFNULL(SUM(spod.`total_price_tax_excl` / o.`conversion_rate`), 0), 2) / SUM( - IF(od.`product_price_calculation_method` = '.(int)Product::PRICE_CALCULATION_METHOD_PER_DAY.', - (IF(spod.`id_htl_booking_detail`, - DATEDIFF(hbd.`date_to`, hbd.`date_from`), - 1)) * spod.`quantity`, - spod.`quantity` - ) + ('.$applicableDaysSql.') * spod.`quantity` ) AS avgPriceSold, IFNULL(SUM( - IF(od.`product_price_calculation_method` = '.(int)Product::PRICE_CALCULATION_METHOD_PER_DAY.', - (IF(spod.`id_htl_booking_detail`, - DATEDIFF(hbd.`date_to`, hbd.`date_from`), - 1)) * spod.`quantity`, - spod.`quantity` - ) + ('.$applicableDaysSql.') * spod.`quantity` ), 0) AS totalQuantitySold, ROUND(IFNULL(SUM(spod.`total_price_tax_excl` / o.`conversion_rate`), 0), 2) AS totalPriceSold FROM '._DB_PREFIX_.'service_product_order_detail spod diff --git a/modules/statsbestcategories/statsbestcategories.php b/modules/statsbestcategories/statsbestcategories.php index d2b80a3e9..60d832bd8 100644 --- a/modules/statsbestcategories/statsbestcategories.php +++ b/modules/statsbestcategories/statsbestcategories.php @@ -56,7 +56,7 @@ class StatsBestCategories extends ModuleGrid $this->columns = array( array( 'id' => 'name', - 'header' => $this->l('Hotel name'), + 'header' => $this->l('Property Name'), 'dataIndex' => 'hotel_name', 'align' => 'center' ), @@ -65,14 +65,14 @@ class StatsBestCategories extends ModuleGrid 'header' => $this->l('Room nights booked'), 'dataIndex' => 'totalRoomsBooked', 'align' => 'center', - 'tooltip' => $this->l('The room nights booked for the hotel.'), + 'tooltip' => $this->l('The room nights booked for the property.'), ), array( 'id' => 'availableRooms', 'header' => $this->l('Available room nights'), 'dataIndex' => 'availableRooms', 'align' => 'center', - 'tooltip' => $this->l('The total room nights available for booking for the hotel.'), + 'tooltip' => $this->l('The total room nights available for booking for the property.'), ), array( 'id' => 'totalOrders', diff --git a/modules/statsbestproducts/statsbestproducts.php b/modules/statsbestproducts/statsbestproducts.php index 74d0f8603..3128f5386 100644 --- a/modules/statsbestproducts/statsbestproducts.php +++ b/modules/statsbestproducts/statsbestproducts.php @@ -64,7 +64,7 @@ class StatsBestProducts extends ModuleGrid ), array( 'id' => 'hotelName', - 'header' => $this->l('Hotel name'), + 'header' => $this->l('Property Name'), 'dataIndex' => 'hotelName', 'align' => 'center', ), diff --git a/modules/statscatalog/statscatalog.php b/modules/statscatalog/statscatalog.php index aeb179514..4244a2f7c 100644 --- a/modules/statscatalog/statscatalog.php +++ b/modules/statscatalog/statscatalog.php @@ -46,7 +46,7 @@ class StatsCatalog extends Module parent::__construct(); - $this->displayName = $this->l('Hotel statistics'); + $this->displayName = $this->l('Property statistics'); $this->description = $this->l('Adds a tab containing general statistics about your catalog to the Stats dashboard.'); $this->ps_versions_compliancy = array('min' => '1.6', 'max' => '1.7.0.99'); } @@ -278,7 +278,7 @@ class StatsCatalog extends Module

    • '.$this->returnLine($this->l('Available room types'), ''.(int)$total).'
    • '.$this->returnLine($this->l('Average base price'), ''.Tools::displayPrice($average_price, $this->context->currency)).'
    • -
    • '.$this->returnLine($this->l('Hotel page views'), ''.(int)$total_hotel_page_viewed).'
    • +
    • '.$this->returnLine($this->l('Property page views'), ''.(int)$total_hotel_page_viewed).'
    • '.$this->returnLine($this->l('Room type page views'), ''.(int)$total_room_type_page_viewed).'
    • '.$this->returnLine($this->l('Booked room nights'), ''.(int)$total_booked_rooms).'
    • '.$this->returnLine($this->l('Average number of page visits'), ''.number_format((float)$average_viewed, 2, '.', '')).'
    • diff --git a/modules/statscheckup/statscheckup.php b/modules/statscheckup/statscheckup.php index f64918e76..d844af779 100644 --- a/modules/statscheckup/statscheckup.php +++ b/modules/statscheckup/statscheckup.php @@ -167,7 +167,7 @@ class StatsCheckUp extends Module
    - + '; foreach ($languages as $language) { $hotelsHtml .= ''; diff --git a/modules/wkabouthotelblock/controllers/admin/AdminAboutHotelBlockSettingController.php b/modules/wkabouthotelblock/controllers/admin/AdminAboutHotelBlockSettingController.php index 133fc0bac..351d9fc48 100644 --- a/modules/wkabouthotelblock/controllers/admin/AdminAboutHotelBlockSettingController.php +++ b/modules/wkabouthotelblock/controllers/admin/AdminAboutHotelBlockSettingController.php @@ -36,7 +36,7 @@ class AdminAboutHotelBlockSettingController extends ModuleAdminController $this->fields_options = array( 'global' => array( - 'title' => $this->l('Hotel Interior Description'), + 'title' => $this->l('Property Interior Description'), 'icon' => 'icon-cogs', 'fields' => array( 'HOTEL_INTERIOR_HEADING' => array( @@ -188,7 +188,7 @@ class AdminAboutHotelBlockSettingController extends ModuleAdminController $this->fields_form = array( 'legend' => array( - 'title' => $this->l('Add New Hotel Interior Image'), + 'title' => $this->l('Add New Property Interior Image'), 'icon' => 'icon-list-ul' ), 'input' => array( @@ -200,7 +200,7 @@ class AdminAboutHotelBlockSettingController extends ModuleAdminController ), array( 'type' => 'file', - 'label' => $this->l('Hotel Interior Image'), + 'label' => $this->l('Property Interior Image'), 'name' => 'interior_img', 'required' => true, 'display_image' => true, @@ -252,7 +252,7 @@ class AdminAboutHotelBlockSettingController extends ModuleAdminController } if (!(Tools::getValue("id_interior_image") && !$file['size'])) { if (!$file['size']) { - $this->errors[] = $this->l('Hotel Interior Image Required.'); + $this->errors[] = $this->l('Property Interior Image Required.'); } elseif ($error = ImageManager::validateUpload($file, Tools::getMaxUploadSize())) { $this->errors[] = $error; } diff --git a/modules/wkhotelfeaturesblock/controllers/admin/AdminFeaturesModuleSettingController.php b/modules/wkhotelfeaturesblock/controllers/admin/AdminFeaturesModuleSettingController.php index e4f6608a1..c53dc6fa5 100644 --- a/modules/wkhotelfeaturesblock/controllers/admin/AdminFeaturesModuleSettingController.php +++ b/modules/wkhotelfeaturesblock/controllers/admin/AdminFeaturesModuleSettingController.php @@ -42,7 +42,7 @@ class AdminFeaturesModuleSettingController extends ModuleAdminController // field options for global fields $this->fields_options = array( 'global' => array( - 'title' => $this->l('Hotel Amenity Setting'), + 'title' => $this->l('Property Amenity Setting'), 'icon' => 'icon-cogs', 'fields' => array( 'HOTEL_AMENITIES_HEADING' => array( @@ -278,7 +278,7 @@ class AdminFeaturesModuleSettingController extends ModuleAdminController } if (!$hotelAmenityId || $file['size']) { if (!$file['size']) { - $this->errors[] = $this->l('Hotel Amenity Image Required.'); + $this->errors[] = $this->l('Property Amenity Image Required.'); } elseif ($error = ImageManager::validateUpload($file, Tools::getMaxUploadSize())) { $this->errors[] = $error; } diff --git a/modules/wkhotelfeaturesblock/wkhotelfeaturesblock.php b/modules/wkhotelfeaturesblock/wkhotelfeaturesblock.php index 5538dcc1e..7f02b3c0b 100644 --- a/modules/wkhotelfeaturesblock/wkhotelfeaturesblock.php +++ b/modules/wkhotelfeaturesblock/wkhotelfeaturesblock.php @@ -40,8 +40,8 @@ class WkHotelFeaturesBlock extends Module $this->bootstrap = true; parent::__construct(); - $this->displayName = $this->l('Hotel Features'); - $this->description = $this->l('Show Hotel Amenities on the home page using this module.'); + $this->displayName = $this->l('Property Features'); + $this->description = $this->l('Show Property Amenities on the home page using this module.'); $this->ps_versions_compliancy = array('min' => '1.6', 'max' => _PS_VERSION_); } diff --git a/modules/wkhotelfilterblock/wkhotelfilterblock.php b/modules/wkhotelfilterblock/wkhotelfilterblock.php index f599e174c..9367fcf71 100644 --- a/modules/wkhotelfilterblock/wkhotelfilterblock.php +++ b/modules/wkhotelfilterblock/wkhotelfilterblock.php @@ -41,7 +41,7 @@ class wkhotelfilterblock extends Module parent::__construct(); $this->displayName = $this->l('Layered filters and sorting block'); - $this->description = $this->l('Hotel filter and sorting block'); + $this->description = $this->l('Property filter and sorting block'); $this->ps_versions_compliancy = array('min' => '1.6', 'max' => _PS_VERSION_); } diff --git a/modules/wkhotelroom/controllers/admin/AdminHotelRoomModuleSettingController.php b/modules/wkhotelroom/controllers/admin/AdminHotelRoomModuleSettingController.php index 7d23d48e7..d295347fe 100644 --- a/modules/wkhotelroom/controllers/admin/AdminHotelRoomModuleSettingController.php +++ b/modules/wkhotelroom/controllers/admin/AdminHotelRoomModuleSettingController.php @@ -43,26 +43,26 @@ class AdminHotelRoomModuleSettingController extends ModuleAdminController $this->fields_options = array( 'global' => array( - 'title' => $this->l('Hotel Room Display Setting'), + 'title' => $this->l('Property Room Display Setting'), 'icon' => 'icon-cogs', 'fields' => array( 'HOTEL_ROOM_DISPLAY_HEADING' => array( - 'title' => $this->l('Hotel Room Block Title'), + 'title' => $this->l('Property Room Block Title'), 'type' => 'textLang', 'lang' => true, 'required' => true, 'validation' => 'isGenericName', - 'hint' => $this->l('Enter a title for the hotel rooms block.'), + 'hint' => $this->l('Enter a title for the property rooms block.'), ), 'HOTEL_ROOM_DISPLAY_DESCRIPTION' => array( - 'title' => $this->l('Hotel room block description'), + 'title' => $this->l('Property room block description'), 'type' => 'textareaLang', 'lang' => true, 'required' => true, 'validation' => 'isGenericName', 'rows' => '4', 'cols' => '2', - 'hint' => $this->l('Enter a description for the hotel rooms block.'), + 'hint' => $this->l('Enter a description for the property rooms block.'), ), ), 'submit' => array('title' => $this->l('Save')) @@ -91,7 +91,7 @@ class AdminHotelRoomModuleSettingController extends ModuleAdminController 'orderby' => false, ), 'hotel_name' => array( - 'title' => $this->l('Hotel'), + 'title' => $this->l('Property'), 'align' => 'center', 'orderby' => false, ), @@ -335,25 +335,25 @@ class AdminHotelRoomModuleSettingController extends ModuleAdminController $objDefaultLanguage = Language::getLanguage((int) $defaultLangId); $languages = Language::getLanguages(false); if (!trim(Tools::getValue('HOTEL_ROOM_DISPLAY_HEADING_'.$defaultLangId))) { - $this->errors[] = $this->l('Hotel rooms block title is required at least in '). + $this->errors[] = $this->l('Property rooms block title is required at least in '). $objDefaultLanguage['name']; } else { foreach ($languages as $lang) { if (trim(Tools::getValue('HOTEL_ROOM_DISPLAY_HEADING_'.$lang['id_lang']))) { if (!Validate::isGenericName(Tools::getValue('HOTEL_ROOM_DISPLAY_HEADING_'.$lang['id_lang']))) { - $this->errors[] = $this->l('Invalid hotel rooms block title in ').$lang['name']; + $this->errors[] = $this->l('Invalid property rooms block title in ').$lang['name']; } } } } if (!trim(Tools::getValue('HOTEL_ROOM_DISPLAY_DESCRIPTION_'.$defaultLangId))) { - $this->errors[] = $this->l('Hotel rooms block description is required at least in '). + $this->errors[] = $this->l('Property rooms block description is required at least in '). $objDefaultLanguage['name']; } else { foreach ($languages as $lang) { if (trim(Tools::getValue('HOTEL_ROOM_DISPLAY_DESCRIPTION_'.$lang['id_lang']))) { if (!Validate::isGenericName(Tools::getValue('HOTEL_ROOM_DISPLAY_DESCRIPTION_'.$lang['id_lang']))) { - $this->errors[] = $this->l('Invalid hotel rooms block description in ').$lang['name']; + $this->errors[] = $this->l('Invalid property rooms block description in ').$lang['name']; } } } diff --git a/modules/wkroomsearchblock/views/templates/hook/searchForm.tpl b/modules/wkroomsearchblock/views/templates/hook/searchForm.tpl index 233e2a1c4..26f90c9e8 100644 --- a/modules/wkroomsearchblock/views/templates/hook/searchForm.tpl +++ b/modules/wkroomsearchblock/views/templates/hook/searchForm.tpl @@ -28,7 +28,7 @@ {if isset($location_enabled) && $location_enabled}
    @@ -50,7 +50,7 @@
    - {foreach $hotels_info as $name_val} diff --git a/modules/wkroomsearchblock/wkroomsearchblock.php b/modules/wkroomsearchblock/wkroomsearchblock.php index 95ae393cd..ab9720af2 100644 --- a/modules/wkroomsearchblock/wkroomsearchblock.php +++ b/modules/wkroomsearchblock/wkroomsearchblock.php @@ -71,13 +71,13 @@ class WkRoomSearchBlock extends Module 'autocompletesearch' ), 'no_results_found_cond' => $this->l('No results found for this search', false, true), - 'hotel_name_cond' => $this->l('Please select a hotel name', false, true), + 'hotel_name_cond' => $this->l('Please select a property name', false, true), 'check_in_time_cond' => $this->l('Please enter Check In time', false, true), 'check_out_time_cond' => $this->l('Please enter Check Out time', false, true), 'less_checkin_date' => $this->l('Check In date can not be before current date.', false, true), 'more_checkout_date' => $this->l('Check Out date must be greater than Check In date.', false, true), - 'hotel_location_txt' => $this->l('Hotel Location', false, true), - 'select_htl_txt' => $this->l('Select Hotel', false, true), + 'hotel_location_txt' => $this->l('Property Location', false, true), + 'select_htl_txt' => $this->l('Select Property', false, true), 'select_age_txt' => $this->l('Select age', false, true), 'under_1_age' => $this->l('Under 1', false, true), 'room_txt' => $this->l('Room', false, true), diff --git a/modules/wktestimonialblock/controllers/admin/AdminTestimonialsModuleSettingController.php b/modules/wktestimonialblock/controllers/admin/AdminTestimonialsModuleSettingController.php index 7c3ad8a2c..2d4feac9d 100644 --- a/modules/wktestimonialblock/controllers/admin/AdminTestimonialsModuleSettingController.php +++ b/modules/wktestimonialblock/controllers/admin/AdminTestimonialsModuleSettingController.php @@ -37,7 +37,7 @@ class AdminTestimonialsModuleSettingController extends ModuleAdminController $this->fields_options = array( 'modulesetting' => array( - 'title' => $this->l('Hotel Testimonials Setting'), + 'title' => $this->l('Property Testimonials Setting'), 'fields' => array( 'HOTEL_TESIMONIAL_BLOCK_HEADING' => array( 'title' => $this->l('Testimonial block title'), @@ -154,7 +154,7 @@ class AdminTestimonialsModuleSettingController extends ModuleAdminController $this->fields_form = array( 'legend' => array( - 'title' => $this->l('Hotel Testimonial Configuration'), + 'title' => $this->l('Property Testimonial Configuration'), 'icon' => 'icon-globe' ), 'input' => array( diff --git a/modules/wktestimonialblock/wktestimonialblock.php b/modules/wktestimonialblock/wktestimonialblock.php index bdf04f06c..8305910a9 100644 --- a/modules/wktestimonialblock/wktestimonialblock.php +++ b/modules/wktestimonialblock/wktestimonialblock.php @@ -42,8 +42,8 @@ class WkTestimonialBlock extends Module $this->bootstrap = true; parent::__construct(); - $this->displayName = $this->l('Hotel Testimonial'); - $this->description = $this->l('Show Hotel testimonials on home page using this module.'); + $this->displayName = $this->l('Property Testimonial'); + $this->description = $this->l('Show Property testimonials on home page using this module.'); $this->ps_versions_compliancy = array('min' => '1.6', 'max' => _PS_VERSION_); } diff --git a/pdf/booking-voucher.tpl b/pdf/booking-voucher.tpl index 9ff85b2a5..25aae5901 100644 --- a/pdf/booking-voucher.tpl +++ b/pdf/booking-voucher.tpl @@ -255,17 +255,24 @@
    - {if $footer.total_tax_without_discount > 0} - - - - - {/if} - {if isset($footer.total_tourism_tax) && $footer.total_tourism_tax > 0} + {if (!isset($footer.show_tourism_tax_separately) || $footer.show_tourism_tax_separately) && isset($footer.total_tourism_tax) && $footer.total_tourism_tax > 0} + {if $footer.total_tax_without_discount > 0} + + + + + {/if} + {else} + {if ($footer.total_tax_without_discount + $footer.total_tourism_tax) > 0} + + + + + {/if} {/if} {if isset($footer.product_discounts_tax_incl) && $footer.product_discounts_tax_incl > 0} diff --git a/pdf/invoice.addresses-tab.tpl b/pdf/invoice.addresses-tab.tpl index df5e70de0..67de4a81f 100644 --- a/pdf/invoice.addresses-tab.tpl +++ b/pdf/invoice.addresses-tab.tpl @@ -33,7 +33,7 @@ --> diff --git a/pdf/invoice.total-tab.tpl b/pdf/invoice.total-tab.tpl index 51f4a5455..f11e113a6 100644 --- a/pdf/invoice.total-tab.tpl +++ b/pdf/invoice.total-tab.tpl @@ -106,25 +106,36 @@ {displayPrice currency=$order->id_currency price=$footer.total_without_discount_te} - {if $footer.total_tax_without_discount > 0} - - - - - {/if} - {if isset($footer.total_tourism_tax) && $footer.total_tourism_tax > 0} - - - - + {if (!isset($footer.show_tourism_tax_separately) || $footer.show_tourism_tax_separately) && isset($footer.total_tourism_tax) && $footer.total_tourism_tax > 0} + {if $footer.total_tax_without_discount > 0} + + + + + {/if} + + + + + {else} + {if ($footer.total_tax_without_discount + $footer.total_tourism_tax) > 0} + + + + + {/if} {/if} {if $footer.product_discounts_tax_incl > 0} diff --git a/pdf/order-slip.product-tab.tpl b/pdf/order-slip.product-tab.tpl index 6ba4979dc..4beb40cdf 100644 --- a/pdf/order-slip.product-tab.tpl +++ b/pdf/order-slip.product-tab.tpl @@ -31,7 +31,7 @@ - + diff --git a/themes/hotel-reservation-theme/$tpl_dir./shopping-cart.tpl b/themes/hotel-reservation-theme/$tpl_dir./shopping-cart.tpl new file mode 100644 index 000000000..e69de29bb diff --git a/themes/hotel-reservation-theme/_partials/booking-form.tpl b/themes/hotel-reservation-theme/_partials/booking-form.tpl index a986735e0..c19447241 100644 --- a/themes/hotel-reservation-theme/_partials/booking-form.tpl +++ b/themes/hotel-reservation-theme/_partials/booking-form.tpl @@ -36,7 +36,7 @@ {block name='booking_form_hotel_location'} {if isset($id_hotel) && $id_hotel}
    - +

    {$hotel_location|escape:'html':'UTF-8'}

    {/if} @@ -66,7 +66,7 @@ {include file="./occupancy_field.tpl"} {/block} {else} - + {block name='quantity_field'} {include file="./quantity_field.tpl"} {/block} @@ -79,7 +79,7 @@
    - +

    {convertPrice price=$rooms_price|floatval} + @@ -100,7 +100,7 @@

    {if isset($selected_service_product) && $selected_service_product}
    -

    {l s='Selected services'} {l s='(Per room)'}

    +

    {l s='Selected services'} {l s='(Per %s)' sprintf=$room_type_info['selling_object_name']}

    {foreach $selected_service_product as $product}
    @@ -160,7 +160,7 @@ {$total_available_rooms|escape:'html':'UTF-8'} - {if $total_available_rooms > 1} {l s='rooms left!'} {else} {l s='room left!'} {/if} + {if $total_available_rooms > 1} {l s='%s left!' sprintf=$room_type_info['selling_object_plural_name']} {else} {l s='%s left!' sprintf=$room_type_info['selling_object_name']} {/if}
    {/if} {/block} @@ -200,16 +200,35 @@ {/if} {else} - {l s='All rooms sold out!'} + {l s='All %s sold out!' sprintf=$room_type_info['selling_object_plural_name']} {/if}
    {/if} {/if} {else} - {block name='booking_form_associated_hotels'} - {if isset($associated_hotels) && $associated_hotels} + {block name='booking_form_service_selection'} + {if isset($sellable_with_hotel) && $sellable_with_hotel && isset($sellable_as_standalone) && $sellable_as_standalone}
    - + +
    + +
    +
    + +
    + + {foreach $associated_hotels as $hotel} + + {/foreach} + +
    + {/if} +
    + {/block} {block name='booking_form_product_option'} {if isset($product_option) && $product_option} @@ -329,7 +362,7 @@ {/if} {* {if $order_date_restrict}
    - {l s='You can\'t book rooms after %s.' sprintf=[{dateFormat date=$max_order_date full=0}]} + {l s='You can\'t book stays after %s.' sprintf=[{dateFormat date=$max_order_date full=0}]}
    {/if} *} diff --git a/themes/hotel-reservation-theme/_partials/cart_booking_services.tpl b/themes/hotel-reservation-theme/_partials/cart_booking_services.tpl index 5a0d69878..36fadde07 100644 --- a/themes/hotel-reservation-theme/_partials/cart_booking_services.tpl +++ b/themes/hotel-reservation-theme/_partials/cart_booking_services.tpl @@ -42,7 +42,7 @@
    -

    {$product['name']|escape:'html':'UTF-8'}

    - {if $product.allow_multiple_quantity} + {$product['name']|escape:'html':'UTF-8'} + {assign var='priceCalcMethod' value=$product.price_calculation_method|default:0} + {capture name='htl_pcm_tooltip'} +
    +

    {l s='Applied on:'}

    +
      + {foreach from=Product::getPriceCalculationMethodDaysLabel($priceCalcMethod) item='pcmDayLabel'} +
    • {$pcmDayLabel}
    • + {/foreach} +
    +
    + {/capture} + {include file='_partials/htl-tooltip.tpl' tooltip_content=$smarty.capture.htl_pcm_tooltip allow_html=true} {if $product.allow_multiple_quantity}
    @@ -83,7 +94,15 @@
    {if ($product.show_price && !isset($restricted_country_mode)) || isset($groups)} - {if !$priceDisplay}{convertPrice price=$product.price_tax_incl}{else}{convertPrice price=$product.price_tax_exc}{/if}{if $product.price_calculation_method == Product::PRICE_CALCULATION_METHOD_PER_DAY}{l s='/Night'}{/if} + {if !$priceDisplay}{convertPrice price=$product.price_tax_incl}{else}{convertPrice price=$product.price_tax_exc}{/if} + {if Product::getServicePriceBillableDays( + $product.price_calculation_method, + $product.date_from|default:$date_from|default:'', + $product.date_to|default:$date_to|default:'' + ) > 1} + {l s='/Night'} + {/if} + {/if}
    diff --git a/themes/hotel-reservation-theme/_partials/htl-tooltip.tpl b/themes/hotel-reservation-theme/_partials/htl-tooltip.tpl new file mode 100644 index 000000000..997e93fa7 --- /dev/null +++ b/themes/hotel-reservation-theme/_partials/htl-tooltip.tpl @@ -0,0 +1,33 @@ +{** +* NOTICE OF LICENSE +* +* This source file is subject to the Open Software License version 3.0 +* that is bundled with this package in the file LICENSE.md +* It is also available through the world-wide-web at this URL: +* https://opensource.org/license/osl-3-0-php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to support@qloapps.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade this module to a newer +* versions in the future. If you wish to customize this module for your needs +* please refer to https://store.webkul.com/customisation-guidelines for more information. +* +* @author Webkul IN +* @copyright Since 2010 Webkul +* @license https://opensource.org/license/osl-3-0-php Open Software License version 3.0 +*} + + + + + + diff --git a/themes/hotel-reservation-theme/_partials/occupancy_field.tpl b/themes/hotel-reservation-theme/_partials/occupancy_field.tpl index e150c64ac..e84dbb689 100644 --- a/themes/hotel-reservation-theme/_partials/occupancy_field.tpl +++ b/themes/hotel-reservation-theme/_partials/occupancy_field.tpl @@ -25,7 +25,7 @@
    '; content += ''; content += ''; - if (parseInt(product.selling_preference_type) == SELLING_PREFERENCE_HOTEL_STANDALONE - || parseInt(product.selling_preference_type) == SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE - ) { - if (hotel_wise_data.options !== 'undefined') { - var options = hotel_wise_data.options; - } - } else if (parseInt(product.selling_preference_type) == SELLING_PREFERENCE_STANDALONE) { - if (product.options !== 'undefined') { - var options = product.options; - } + var options = []; + if (typeof(hotel_wise_data) != 'undefined' && typeof(hotel_wise_data.options) != 'undefined') { + options = hotel_wise_data.options; + } else if (typeof(product.options) != 'undefined') { + options = product.options; } if (options !== 'undefined') { $.each(options, function(data_k, data_v) { @@ -1042,16 +1076,11 @@ var ajaxCart = { } else if (product.hasOptions) { $('dt[data-id="cart_block_product_' + productDomId + '"] .cart_prod_cont tr.product_option_row').remove(); var product_options_content = ''; - if (parseInt(product.selling_preference_type) == SELLING_PREFERENCE_HOTEL_STANDALONE - || parseInt(product.selling_preference_type) == SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE - ) { - if (hotel_wise_data.options !== 'undefined') { - var options = hotel_wise_data.options; - } - } else if (parseInt(product.selling_preference_type) == SELLING_PREFERENCE_STANDALONE) { - if (product.options !== 'undefined') { - var options = product.options; - } + var options = []; + if (typeof(hotel_wise_data) != 'undefined' && typeof(hotel_wise_data.options) != 'undefined') { + options = hotel_wise_data.options; + } else if (typeof(product.options) != 'undefined') { + options = product.options; } if (options !== 'undefined') { $.each(options, function(data_k, data_v) { @@ -1076,10 +1105,7 @@ var ajaxCart = { if (!product.is_gift) { if (product.booking_product) { $('dt[data-id="cart_block_product_' + productDomId + '"] .price').text(formatCurrency(parseFloat(product.bookingData.total_room_type_amount), currency_format, currency_sign, currency_blank)); - } else if ((parseInt(product.selling_preference_type) == SELLING_PREFERENCE_HOTEL_STANDALONE - || parseInt(product.selling_preference_type) == SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE) - && typeof(hotel_wise_data) != 'undefined' - ) { + } else if (typeof(hotel_wise_data) != 'undefined') { $('dt[data-id="cart_block_product_' + productDomId + '"] .price').text(formatCurrency(parseFloat(hotel_wise_data.amount), currency_format, currency_sign, currency_blank)); } else { $('dt[data-id="cart_block_product_' + productDomId + '"] .price').text(formatCurrency(parseFloat(product.amount), currency_format, currency_sign, currency_blank)); @@ -1090,15 +1116,16 @@ var ajaxCart = { //cart_booking_data[key].total_num_rooms argument sent to update num of rooms instead of quantity if (product.booking_product) { ajaxCart.updateProductQuantity(jsonProduct, product.bookingData.total_num_rooms); - } else if ((parseInt(product.selling_preference_type) == SELLING_PREFERENCE_HOTEL_STANDALONE - || parseInt(product.selling_preference_type) == SELLING_PREFERENCE_HOTEL_STANDALONE_AND_WITH_ROOM_TYPE - ) - && typeof(hotel_wise_data) != 'undefined' + } else if ( + typeof(hotel_wise_data) != 'undefined' && hotel_wise_data.total_qty ) { ajaxCart.updateProductQuantity(jsonProduct, hotel_wise_data.total_qty, hotel_wise_data); } else { - ajaxCart.updateProductQuantity(jsonProduct, jsonProduct.cart_quantity); + ajaxCart.updateProductQuantity( + jsonProduct, + (typeof jsonProduct.standalone_total_qty != 'undefined' ? jsonProduct.standalone_total_qty : jsonProduct.cart_quantity) + ); } // Customized product @@ -1205,13 +1232,19 @@ var ajaxCart = { let rooms = 0; let adults = 0; let children = 0; + if (typeof product.layer_cart_attribute_label !== 'undefined') { + $('#layer_cart .layer_cart_attribute_type').text(product.layer_cart_attribute_label); + } + if(typeof product.layer_cart_room_success_msg !== 'undefined'){ + $('#layer_cart .layer_cart_room_success_msg').text(product.layer_cart_room_success_msg); + } if (occupancy_required_for_booking) { $.each(product.occupancy, function(index, val) { rooms++; adults += parseInt(val.adults); children += parseInt(val.children); }); - product_quantity_text = getRoomTypeGuestOccupancyFormated(adults, children, rooms); + product_quantity_text = getRoomTypeGuestOccupancyFormated(adults, children, rooms,product.room_info.selling_object_name, product.room_info.selling_object_plural_name); } else { product_quantity_text = product.occupancy; } @@ -1294,10 +1327,13 @@ var ajaxCart = { $('.ajax_cart_tax_cost').text(jsonData.tax_cost); $('.ajax_cart_tourism_tax_cost').text(jsonData.tourism_tax_cost); - if (parseFloat(jsonData.tourism_tax) > 0) { - $('.ajax_cart_tourism_tax_line').show(); + $('.ajax_cart_total_taxes_cost').text(jsonData.total_taxes_cost); + if (jsonData.show_tourism_tax_separately && parseFloat(jsonData.tourism_tax) > 0) { + $('.ajax_cart_tax_line, .ajax_cart_tourism_tax_line').show(); + $('.ajax_cart_total_taxes_line').hide(); } else { - $('.ajax_cart_tourism_tax_line').hide(); + $('.ajax_cart_tax_line, .ajax_cart_tourism_tax_line').hide(); + $('.ajax_cart_total_taxes_line').show(); } $('.cart_block_wrapping_cost').text(jsonData.wrapping_cost); diff --git a/themes/hotel-reservation-theme/js/occupancy.js b/themes/hotel-reservation-theme/js/occupancy.js index b435429b6..7ae2534c7 100644 --- a/themes/hotel-reservation-theme/js/occupancy.js +++ b/themes/hotel-reservation-theme/js/occupancy.js @@ -25,10 +25,11 @@ $(document).ready(function(){ booking_occupancy_inner = $(this).closest('.booking_occupancy_inner'); var booking_occupancy_wrapper = $(this).closest('.booking_occupancy_wrapper'); + var room_type_selling_keys = getRoomTypeSellingObjects(booking_occupancy_wrapper); $(this).closest('.occupancy_info_block').hide('fast', function(){ $(this).remove() $(booking_occupancy_inner).find('.room_num_wrapper').each(function(key, val) { - $(this).text(room_txt + ' - '+ (key+1) ); + $(this).text(room_type_selling_keys.selling_object + ' - '+ (key+1) ); }); var countRooms = parseInt($(booking_occupancy_wrapper).find('.occupancy_info_block').length); if (countRooms < $(booking_occupancy_wrapper).find('.max_avail_type_qty').val()) { @@ -232,10 +233,11 @@ $(document).ready(function(){ return true; } - $(document).on('click', '.booking_occupancy_wrapper .add_new_occupancy_btn', function(e) { + $(document).on('click', '.booking_occupancy_wrapper .add_new_occupancy_btn', function(e) { e.preventDefault(); var booking_occupancy_wrapper = $(this).closest('.booking_occupancy_wrapper'); + var room_type_selling_keys = getRoomTypeSellingObjects(booking_occupancy_wrapper); var occupancy_block = ''; var roomBlockIndex = parseInt($(booking_occupancy_wrapper).find(".occupancy_info_block").last().attr('occ_block_index')); roomBlockIndex += 1; @@ -248,7 +250,7 @@ $(document).ready(function(){ && countRooms <= $(booking_occupancy_wrapper).find('.max_avail_type_qty').val() ) { occupancy_block += ' - - - - {if isset($orderTotalInfo['total_tourism_tax']) && $orderTotalInfo['total_tourism_tax'] > 0} + {if (!isset($orderTotalInfo['show_tourism_tax_separately']) || $orderTotalInfo['show_tourism_tax_separately']) && isset($orderTotalInfo['total_tourism_tax']) && $orderTotalInfo['total_tourism_tax'] > 0} + + + + + {else} + + + + {/if} {if $order->total_discounts > 0} diff --git a/themes/hotel-reservation-theme/order-detail.tpl b/themes/hotel-reservation-theme/order-detail.tpl index 63d17a30f..14866703b 100644 --- a/themes/hotel-reservation-theme/order-detail.tpl +++ b/themes/hotel-reservation-theme/order-detail.tpl @@ -78,7 +78,7 @@ {if isset($obj_hotel_branch_information) && $obj_hotel_branch_information}
    - {l s='Hotel Details'} + {l s='%s Details' sprintf=$property_type}
    @@ -102,7 +102,7 @@
    -
    {l s='Hotel Name'}
    +
    {l s='%s Name' sprintf=$property_type}
    {$obj_hotel_branch_information->hotel_name}
    {l s='Phone Number'}
    @@ -121,7 +121,7 @@
    {else} -
    {l s='Hotel details not available.'}
    +
    {l s='Property details not available.'}
    {/if}
    @@ -186,7 +186,7 @@ {if isset($obj_hotel_branch_information)}
    @@ -333,11 +333,11 @@ {assign var=total_tax_without_discount value=(($room_price_tax_incl - $room_price_tax_excl) + ($room_services_price_tax_incl - $room_services_price_tax_excl) - ($total_tourism_tax|default:0))} - {assign var=total_standard_products_tax_incl value=($order->getTotalProductsWithTaxes(false, false, Product::SELLING_PREFERENCE_STANDALONE) + $order->getTotalProductsWithTaxes(false, false, Product::SELLING_PREFERENCE_HOTEL_STANDALONE))} - {assign var=total_standard_products_tax_excl value=($order->getTotalProductsWithoutTaxes(false, false, Product::SELLING_PREFERENCE_STANDALONE) + $order->getTotalProductsWithoutTaxes(false, false, Product::SELLING_PREFERENCE_HOTEL_STANDALONE))} + {assign var=total_standard_products_tax_incl value=($order->getTotalProductsWithTaxes(false, false, Product::SELLING_PREFERENCE_WITH_STANDALONE) + $order->getTotalProductsWithTaxes(false, false, Product::SELLING_PREFERENCE_WITH_HOTEL))} + {assign var=total_standard_products_tax_excl value=($order->getTotalProductsWithoutTaxes(false, false, Product::SELLING_PREFERENCE_WITH_STANDALONE) + $order->getTotalProductsWithoutTaxes(false, false, Product::SELLING_PREFERENCE_WITH_HOTEL))} {if isset($cart_htl_data) && $cart_htl_data}
    - + {/if} - {if $total_convenience_fee_te || $total_convenience_fee_te} + {if $total_convenience_fee_te || $total_convenience_fee_ti} {/if} - - - - + {if (!isset($show_tourism_tax_separately) || $show_tourism_tax_separately) && isset($total_tourism_tax) && $total_tourism_tax > 0} + + + + - {if isset($total_tourism_tax) && $total_tourism_tax > 0} + {else} + + + + {/if} {if $order->total_discounts > 0} @@ -513,7 +520,7 @@ - + {/if} - {if $total_convenience_fee_te || $total_convenience_fee_te} + {if $total_convenience_fee_te || $total_convenience_fee_ti} {/if} - - - - - {if isset($total_tourism_tax) && $total_tourism_tax > 0} + {if (!isset($show_tourism_tax_separately) || $show_tourism_tax_separately) && isset($total_tourism_tax) && $total_tourism_tax > 0} + + + + + {else} + + + + {/if} {if $order->total_discounts > 0} @@ -996,11 +1010,11 @@

    {$data_v.name}

    -

    {l s='Total Rooms'}

    +

    {l s='Total %s' sprintf=$data_v.selling_object_plural_name|escape:'html':'UTF-8'}

    {$rm_v.num_rm|string_format:'%02d'}
    -

    {l s='Cancelled Rooms'}

    +

    {l s='Cancelled %s' sprintf=$data_v.selling_object_plural_name|escape:'html':'UTF-8'}

    {($rm_v.count_cancelled + $rm_v.count_refunded)|string_format:'%02d'}
    @@ -1012,11 +1026,11 @@
    ({$hotel_booking_detail.adults|string_format:'%02d'} {if $hotel_booking_detail.adults > 1}{l s='Adults'}{else}{l s='Adult'}{/if}{if $hotel_booking_detail.children > 0}{l s=', '}{$hotel_booking_detail.children|string_format:'%02d'} {if $hotel_booking_detail.children > 1}{l s='Children'}{else}{l s='Child'}{/if}{/if}) - {if $hotel_booking_detail.is_cancelled}{l s='Cancelled'}{else if $hotel_booking_detail.is_refunded}{l s='Refunded'}{else if $hotel_booking_detail.refund_denied}{l s='Refund denied'} {else if $hotel_booking_detail.id_status != $ROOM_STATUS_ASSIGNED}{if $hotel_booking_detail.id_status == $ROOM_STATUS_CHECKED_OUT}{l s='Checked-Out'}{else}{l s='Checked-In'}{/if}{/if} + {if $hotel_booking_detail.is_cancelled}{l s='Cancelled'}{else if $hotel_booking_detail.is_refunded}{l s='Refunded'}{else if $hotel_booking_detail.refund_denied}{l s='Refund denied'} {include file='_partials/htl-tooltip.tpl' tooltip_content={l s='Refund for this booking is denied. Please contact admin for more detail.'}}{else if $hotel_booking_detail.id_status != $ROOM_STATUS_ASSIGNED}{if $hotel_booking_detail.id_status == $ROOM_STATUS_CHECKED_OUT}{l s='Checked-Out'}{else}{l s='Checked-In'}{/if}{/if}
    @@ -1039,7 +1053,7 @@ {else}
    -

    {l s='No extra services added for this room.'}

    +

    {l s='No extra services added for this %s.' sprintf=$data_v.selling_object_name|escape:'html':'UTF-8'}

    {/if} @@ -1060,7 +1074,7 @@ {$product_option.name}{if isset($product_option.option_name) && $product_option.option_name} : {$product_option.option_name}{/if} - {if $product_option.is_cancelled}{l s='Cancelled'}{else if $product_option.is_refunded}{l s='Refunded'}{else if isset($product_option.refund_denied) && $product_option.refund_denied}{l s='Refund denied'} {/if} + {if $product_option.is_cancelled}{l s='Cancelled'}{else if $product_option.is_refunded}{l s='Refunded'}{else if isset($product_option.refund_denied) && $product_option.refund_denied}{l s='Refund denied'} {include file='_partials/htl-tooltip.tpl' tooltip_content={l s='Refund for this product is denied. Please contact admin for more detail.'}}{/if} {if $product_option.allow_multiple_quantity}
    @@ -1156,7 +1170,7 @@ {addJsDefL name=pending_state_msg}{l s='Pending...' js=1}{/addJsDefL} {addJsDefL name=mail_sending_err}{l s='Some error occurred while sending mail to the customer' js=1}{/addJsDefL} {addJsDefL name=refund_request_sending_error}{l s='Some error occurred while processing request for booking cancellation.' js=1}{/addJsDefL} - {addJsDefL name=no_bookings_selected}{l s='Please select at least one room to proceed for cancellation.' js=1}{/addJsDefL} + {addJsDefL name=no_bookings_selected}{l s='Please select at least one room or service to proceed for cancellation.' js=1}{/addJsDefL} {addJsDefL name=refund_request_success_txt}{l s='Request for booking cancellation is successffully created.' js=1}{/addJsDefL} {addJsDefL name=order_message_choose_txt}{l s='-- Choose --' js=1}{/addJsDefL} {addJsDefL name=order_message_success_txt}{l s='Order message sent successfully.' js=1}{/addJsDefL} diff --git a/themes/hotel-reservation-theme/order-opc.tpl b/themes/hotel-reservation-theme/order-opc.tpl index 875624fd4..03bc35fd6 100644 --- a/themes/hotel-reservation-theme/order-opc.tpl +++ b/themes/hotel-reservation-theme/order-opc.tpl @@ -62,7 +62,7 @@
    {block name='order_opc_rooms_summary_heading'}
    - {l s='Rooms & Price Summary'} + {l s='Summary'}
    {/block} diff --git a/themes/hotel-reservation-theme/order-return.tpl b/themes/hotel-reservation-theme/order-return.tpl index fb0822c93..81b6ccef0 100644 --- a/themes/hotel-reservation-theme/order-return.tpl +++ b/themes/hotel-reservation-theme/order-return.tpl @@ -61,7 +61,7 @@
    - + diff --git a/themes/hotel-reservation-theme/product.tpl b/themes/hotel-reservation-theme/product.tpl index af77e2962..b0bf0d8e6 100644 --- a/themes/hotel-reservation-theme/product.tpl +++ b/themes/hotel-reservation-theme/product.tpl @@ -205,14 +205,13 @@ {/block} {/if} -
    {block name='product_tabs'}
    {l s='Room No.' mod='hotelreservationsystem'}{l s='%s No.' sprintf=$book_v['selling_object_name'] mod='hotelreservationsystem'} {l s='Status' mod='hotelreservationsystem'} {l s='Duration' mod='hotelreservationsystem'} {l s='Message' mod='hotelreservationsystem'} {l s='Room num' mod='hotelreservationsystem'} {l s='Room type' mod='hotelreservationsystem'}{l s='Hotel' mod='hotelreservationsystem'}{l s='Property' mod='hotelreservationsystem'} {l s='Duration' mod='hotelreservationsystem'} {l s='Total cost (tax incl.)' mod='hotelreservationsystem'} {l s='Total paid amount (tax incl.)' mod='hotelreservationsystem'} {$transaction_data.pp_paid_total_formated|escape:'html':'UTF-8'}
    {l s='QloApps Order Reference' mod='qlopaypalcommerce'}{l s='Order Reference' mod='qlopaypalcommerce'} {$transaction_data.order_reference|escape:'html':'UTF-8'} + {if $order_links} + {foreach from=$order_links item=order name=foo} + #{$order.id_order|escape:'html':'UTF-8'}{if not $smarty.foreach.foo.last}, {/if} + {/foreach} + {/if}
    {l s='Payment Status' mod='qlopaypalcommerce'} - {if $transaction_data.pp_payment_status == 'COMPLETED'} - + {if $transaction_data.pp_payment_status == $WK_PAYPAL_COMMERCE_PAYMENT_STATUS_COMPLETED} + {else}
    {if isset($ppstatusDetailMsg) && $ppstatusDetailMsg}  {/if} @@ -104,10 +109,10 @@
    {* If transaction is completed then admin can refund the transaction *} -{if $transaction_data and $transaction_data.pp_payment_status == 'COMPLETED'} +{if $transaction_data and $transaction_data.pp_payment_status == $WK_PAYPAL_COMMERCE_PAYMENT_STATUS_COMPLETED} {* show refund form only if there is any remaing amount for refund *} {if $remaining_refund > 0} -
    +
    @@ -116,9 +121,9 @@
    {if $refund_data && $refunded_amount} -

    {l s='Total refunded amount' mod='qlopaypalcommerce'} : {$refunded_amount|escape:'html':'UTF-8'}

    +

    {l s='Total refunded amount' mod='qlopaypalcommerce'} : {$refunded_amount|escape:'html':'UTF-8'}

    {/if} -

    {l s='Total available amount to refund' mod='qlopaypalcommerce'}: {$remaining_refund_format|escape:'html':'UTF-8'}

    +

    {l s='Total available amount to refund' mod='qlopaypalcommerce'}: {$remaining_refund_format|escape:'html':'UTF-8'}

    @@ -176,8 +181,8 @@
    {l s='Amount' mod='qlopaypalcommerce'} {l s='Type' mod='qlopaypalcommerce'} {l s='Status' mod='qlopaypalcommerce'}{l s='Remark' mod='qlopaypalcommerce'} {l s='Date' mod='qlopaypalcommerce'}{l s='Remark' mod='qlopaypalcommerce'}
    {$refund.paypal_refund_id|escape:'html':'UTF-8'} {$refund.amount_refunded_formatted|escape:'html':'UTF-8'} - {if $refund.refund_type == 1} + {if $refund.refund_type == $WK_PAYPAL_COMMERCE_REFUND_TYPE_FULL} {l s='Full Refund' mod='qlopaypalcommerce'} {else} {l s='Partial Refund' mod='qlopaypalcommerce'} {/if} - {if $refund.refund_status == 'COMPLETED'} - + {if $refund.refund_status == $WK_PAYPAL_COMMERCE_PAYMENT_STATUS_COMPLETED} + {else} {/if} {$refund.refund_reason|escape:'html':'UTF-8'} {$refund.date_add|escape:'html':'UTF-8'}{$refund.refund_reason|escape:'html':'UTF-8'}
    '.$this->l('ID').''.(!$this->id_hotel ? $this->l('Hotel') : $this->l('Room type')).''.(!$this->id_hotel ? $this->l('Property') : $this->l('Room type')).' '.$this->l('Active').''.$this->l('Desc.').' ('.Tools::strtoupper($language['iso_code']).'){l s='Total (Tax excl.)' pdf='true'} {displayPrice currency=$order->id_currency price=$footer.total_without_discount_te}
    {l s='Room and Service Tax' pdf='true'}{displayPrice currency=$order->id_currency price=$footer.total_tax_without_discount}
    {l s='Room and Service Tax' pdf='true'}{displayPrice currency=$order->id_currency price=$footer.total_tax_without_discount}
    {l s='Total Tourism Tax' pdf='true'} {displayPrice currency=$order->id_currency price=$footer.total_tourism_tax}
    {l s='Total Taxes' pdf='true'}{displayPrice currency=$order->id_currency price=($footer.total_tax_without_discount + $footer.total_tourism_tax)}
    {if !empty($hotel_address)} - {l s='Hotel Detail' pdf='true'}

    + {l s='%s Detail' sprintf=$property_type pdf='true'}

    {$hotel_address} {/if}
    - {l s='Room and Service Tax' pdf='true'} - - {displayPrice currency=$order->id_currency price=$footer.total_tax_without_discount} -
    - {l s='Total Tourism Tax' pdf='true'} - - {displayPrice currency=$order->id_currency price=$footer.total_tourism_tax} -
    + {l s='Room and Service Tax' pdf='true'} + + {displayPrice currency=$order->id_currency price=$footer.total_tax_without_discount} +
    + {l s='Total Tourism Tax' pdf='true'} + + {displayPrice currency=$order->id_currency price=$footer.total_tourism_tax} +
    + {l s='Total Taxes' pdf='true'} + + {displayPrice currency=$order->id_currency price=($footer.total_tax_without_discount + $footer.total_tourism_tax)} +
    {l s='Room Type / Reference' pdf='true'}{l s='Hotel' pdf='true'}{l s='Property Name' pdf='true'} {l s='Duration' pdf='true'} {l s='Num rooms' pdf='true'} {l s='Total Price' pdf='true'}
    {if $tax_excluded_display}{l s='(Tax Excl.)' pdf='true'}{else}{l s='(Tax Incl.)' pdf='true'}{/if}
    ' + price_txt + ' 
    - {l s='Room and Service Tax'} - - {displayWtPriceWithCurrency price=$orderTotalInfo['total_tax_without_discount'] currency=$objOrderCurrency convert=1} -
    + {l s='Room and Service Tax'} + + {displayWtPriceWithCurrency price=$orderTotalInfo['total_tax_without_discount'] currency=$objOrderCurrency convert=1} +
    {l s='Total Tourism Tax'} @@ -490,6 +486,15 @@ {displayWtPriceWithCurrency price=$orderTotalInfo['total_tourism_tax'] currency=$objOrderCurrency}
    + {l s='Total Taxes'} + + {displayWtPriceWithCurrency price=($orderTotalInfo['total_tax_without_discount'] + $orderTotalInfo['total_tourism_tax']) currency=$objOrderCurrency convert=1} +
    {l s='Total rooms cost'} {if $use_taxes && $display_tax_label == 1}{if $priceDisplay == 1}{l s='(tax excl.)'}{elseif $priceDisplay == 0}{l s='(tax incl.)'}{/if} {/if}{l s='Total Rooms Cost'} {if $use_taxes && $display_tax_label == 1}{if $priceDisplay == 1}{l s='(tax excl.)'}{elseif $priceDisplay == 0}{l s='(tax incl.)'}{/if} {/if} {if $priceDisplay && $use_tax} {displayWtPriceWithCurrency price=($room_price_tax_excl + $room_services_price_tax_excl - $total_convenience_fee_te) currency=$currency} @@ -360,7 +360,7 @@
    {l s='Total Convenience Fees'} {if $use_taxes && $display_tax_label == 1}{if $priceDisplay == 1}{l s='(tax excl.)'}{elseif $priceDisplay == 0}{l s='(tax incl.)'}{/if}{/if} @@ -373,20 +373,27 @@
    {l s='Room and Service Tax'} - {displayWtPriceWithCurrency price=($total_tax_without_discount) currency=$currency} -
    {l s='Room and Service Tax'} + {displayWtPriceWithCurrency price=($total_tax_without_discount) currency=$currency} +
    {l s='Total Tourism Tax'} {displayWtPriceWithCurrency price=$total_tourism_tax currency=$currency}
    {l s='Total Taxes'} + {displayWtPriceWithCurrency price=($total_tax_without_discount + $total_tourism_tax) currency=$currency} +
    {l s='Total rooms cost'} {if $use_taxes && $display_tax_label == 1}{if $priceDisplay == 1}{l s='(tax excl.)'}{elseif $priceDisplay == 0}{l s='(tax incl.)'}{/if} {/if}{l s='Total Rooms Cost'} {if $use_taxes && $display_tax_label == 1}{if $priceDisplay == 1}{l s='(tax excl.)'}{elseif $priceDisplay == 0}{l s='(tax incl.)'}{/if} {/if} {if $priceDisplay && $use_tax} {displayWtPriceWithCurrency price=($room_price_tax_excl + $room_services_price_tax_excl - $total_convenience_fee_te) currency=$currency} @@ -788,7 +795,7 @@
    {l s='Total Convenience Fees'} {if $use_taxes && $display_tax_label == 1}{if $priceDisplay == 1}{l s='(tax excl.)'}{elseif $priceDisplay == 0}{l s='(tax incl.)'}{/if}{/if} @@ -801,19 +808,26 @@
    {l s='Room and Service Tax'} - {displayWtPriceWithCurrency price=($total_tax_without_discount) currency=$currency} -
    {l s='Room and Service Tax'} + {displayWtPriceWithCurrency price=($total_tax_without_discount) currency=$currency} +
    {l s='Total Tourism Tax'} {displayWtPriceWithCurrency price=$total_tourism_tax currency=$currency}
    {l s='Total Taxes'} + {displayWtPriceWithCurrency price=($total_tax_without_discount + $total_tourism_tax) currency=$currency} +
    {l s='Rooms'} {l s='Room type'}{l s='Hotel'}{l s='Property Name'} {l s='Duration'} {l s='Total rooms price (tax incl.)'} {l s='Extra services price (tax incl.)'}
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    No.XXXXXXXX XXXXXXXXXXXX
    1.XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    XXXXXXXX
    XXXX
    2.XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    3.XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    4.XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    XXXX
    -EOF; - -// output the HTML content -$pdf->writeHTML($html, true, false, true, false, ''); - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// add a page -$pdf->AddPage(); - -$html = ' -

    HTML TIPS & TRICKS

    - -

    REMOVE CELL PADDING

    -
    $pdf->setCellPadding(0);
    -This is used to remove any additional vertical space inside a single cell of text. - -

    REMOVE TAG TOP AND BOTTOM MARGINS

    -
    $tagvs = array(\'p\' => array(0 => array(\'h\' => 0, \'n\' => 0), 1 => array(\'h\' => 0, \'n\' => 0)));
    -$pdf->setHtmlVSpace($tagvs);
    -Since the CSS margin command is not yet implemented on TCPDF, you need to set the spacing of block tags using the following method. - -

    SET LINE HEIGHT

    -
    $pdf->setCellHeightRatio(1.25);
    -You can use the following method to fine tune the line height (the number is a percentage relative to font height). - -

    CHANGE THE PIXEL CONVERSION RATIO

    -
    $pdf->setImageScale(0.47);
    -This is used to adjust the conversion ratio between pixels and document units. Increase the value to get smaller objects.
    -Since you are using pixel unit, this method is important to set theright zoom factor.

    -Suppose that you want to print a web page larger 1024 pixels to fill all the available page width.
    -An A4 page is larger 210mm equivalent to 8.268 inches, if you subtract 13mm (0.512") of margins for each side, the remaining space is 184mm (7.244 inches).
    -The default resolution for a PDF document is 300 DPI (dots per inch), so you have 7.244 * 300 = 2173.2 dots (this is the maximum number of points you can print at 300 DPI for the given width).
    -The conversion ratio is approximatively 1024 / 2173.2 = 0.47 px/dots
    -If the web page is larger 1280 pixels, on the same A4 page the conversion ratio to use is 1280 / 2173.2 = 0.59 pixels/dots'; - -// output the HTML content -$pdf->writeHTML($html, true, false, true, false, ''); - -// reset pointer to the last page -$pdf->lastPage(); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_061.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_062.php b/tools/tcpdf/examples/example_062.php deleted file mode 100644 index d0bf89fe9..000000000 --- a/tools/tcpdf/examples/example_062.php +++ /dev/null @@ -1,142 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 062'); -$pdf->setSubject('TCPDF Tutorial'); -$pdf->setKeywords('TCPDF, PDF, example, test, guide'); - -// set default header data -$pdf->setHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 062', PDF_HEADER_STRING); - -// set header and footer fonts -$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); -$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); - -// set default monospaced font -$pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED); - -// set margins -$pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); -$pdf->setHeaderMargin(PDF_MARGIN_HEADER); -$pdf->setFooterMargin(PDF_MARGIN_FOOTER); - -// set auto page breaks -$pdf->setAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); - -// set image scale factor -$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); - -// set some language-dependent strings (optional) -if (@file_exists(dirname(__FILE__).'/lang/eng.php')) { - require_once(dirname(__FILE__).'/lang/eng.php'); - $pdf->setLanguageArray($l); -} - -// --------------------------------------------------------- - -// set font -$pdf->setFont('helvetica', 'B', 20); - -// add a page -$pdf->AddPage(); - -$pdf->Write(0, 'XObject Templates', '', 0, 'C', 1, 0, false, false, 0); - -/* - * An XObject Template is a PDF block that is a self-contained - * description of any sequence of graphics objects (including path - * objects, text objects, and sampled images). - * An XObject Template may be painted multiple times, either on - * several pages or at several locations on the same page and produces - * the same results each time, subject only to the graphics state at - * the time it is invoked. - */ - - -// start a new XObject Template and set transparency group option -$template_id = $pdf->startTemplate(60, 60, true); - -// create Template content -// ................................................................... -//Start Graphic Transformation -$pdf->StartTransform(); - -// set clipping mask -$pdf->StarPolygon(30, 30, 29, 10, 3, 0, 1, 'CNZ'); - -// draw jpeg image to be clipped -$pdf->Image('images/image_demo.jpg', 0, 0, 60, 60, '', '', '', true, 72, '', false, false, 0, false, false, false); - -//Stop Graphic Transformation -$pdf->StopTransform(); - -$pdf->setXY(0, 0); - -$pdf->setFont('times', '', 40); - -$pdf->setTextColor(255, 0, 0); - -// print a text -$pdf->Cell(60, 60, 'Template', 0, 0, 'C', false, '', 0, false, 'T', 'M'); -// ................................................................... - -// end the current Template -$pdf->endTemplate(); - - -// print the selected Template various times using various transparencies - -$pdf->setAlpha(0.4); -$pdf->printTemplate($template_id, 15, 50, 20, 20, '', '', false); - -$pdf->setAlpha(0.6); -$pdf->printTemplate($template_id, 27, 62, 40, 40, '', '', false); - -$pdf->setAlpha(0.8); -$pdf->printTemplate($template_id, 55, 85, 60, 60, '', '', false); - -$pdf->setAlpha(1); -$pdf->printTemplate($template_id, 95, 125, 80, 80, '', '', false); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_062.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_063.php b/tools/tcpdf/examples/example_063.php deleted file mode 100644 index f68f4f90a..000000000 --- a/tools/tcpdf/examples/example_063.php +++ /dev/null @@ -1,133 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 063'); -$pdf->setSubject('TCPDF Tutorial'); -$pdf->setKeywords('TCPDF, PDF, example, test, guide'); - -// set default header data -$pdf->setHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 063', PDF_HEADER_STRING); - -// set header and footer fonts -$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); -$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); - -// set default monospaced font -$pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED); - -// set margins -$pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); -$pdf->setHeaderMargin(PDF_MARGIN_HEADER); -$pdf->setFooterMargin(PDF_MARGIN_FOOTER); - -// set auto page breaks -$pdf->setAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); - -// set image scale factor -$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); - -// set some language-dependent strings (optional) -if (@file_exists(dirname(__FILE__).'/lang/eng.php')) { - require_once(dirname(__FILE__).'/lang/eng.php'); - $pdf->setLanguageArray($l); -} - -// --------------------------------------------------------- - -// set font -$pdf->setFont('helvetica', 'B', 16); - -// add a page -$pdf->AddPage(); - -$pdf->Write(0, 'Example of Text Stretching and Spacing (tracking)', '', 0, 'L', true, 0, false, false, 0); -$pdf->Ln(5); - -// create several cells to display all cases of stretching and spacing combinations. - -$fonts = array('times', 'dejavuserif'); -$alignments = array('L' => 'LEFT', 'C' => 'CENTER', 'R' => 'RIGHT', 'J' => 'JUSTIFY'); - - -// Test all cases using direct stretching/spacing methods -foreach ($fonts as $fkey => $font) { - $pdf->setFont($font, '', 14); - foreach ($alignments as $align_mode => $align_name) { - for ($stretching = 90; $stretching <= 110; $stretching += 10) { - for ($spacing = -0.254; $spacing <= 0.254; $spacing += 0.254) { - $pdf->setFontStretching($stretching); - $pdf->setFontSpacing($spacing); - $txt = $align_name.' | Stretching = '.$stretching.'% | Spacing = '.sprintf('%+.3F', $spacing).'mm'; - $pdf->Cell(0, 0, $txt, 1, 1, $align_mode); - } - } - } - $pdf->AddPage(); -} - - -// Test all cases using CSS stretching/spacing properties -foreach ($fonts as $fkey => $font) { - $pdf->setFont($font, '', 11); - foreach ($alignments as $align_mode => $align_name) { - for ($stretching = 90; $stretching <= 110; $stretching += 10) { - for ($spacing = -0.254; $spacing <= 0.254; $spacing += 0.254) { - $html = ''.$align_name.' | Stretching = '.$stretching.'% | Spacing = '.sprintf('%+.3F', $spacing).'mm
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. In sed imperdiet lectus. Phasellus quis velit velit, non condimentum quam. Sed neque urna, ultrices ac volutpat vel, laoreet vitae augue. Sed vel velit erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.
    '; - $pdf->writeHTMLCell(0, 0, '', '', $html, 1, 1, false, true, $align_mode, false); - } - } - if (!(($fkey == 1) AND ($align_mode == 'J'))) { - $pdf->AddPage(); - } - } -} - - -// reset font stretching -$pdf->setFontStretching(100); - -// reset font spacing -$pdf->setFontSpacing(0); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_063.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_064.php b/tools/tcpdf/examples/example_064.php deleted file mode 100644 index 8efaf4fea..000000000 --- a/tools/tcpdf/examples/example_064.php +++ /dev/null @@ -1,178 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 064'); -$pdf->setSubject('TCPDF Tutorial'); -$pdf->setKeywords('TCPDF, PDF, example, test, guide'); - -// set default header data -$pdf->setHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 064', PDF_HEADER_STRING); - -// set header and footer fonts -$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); -$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); - -// set default monospaced font -$pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED); - -// set margins -$pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); -$pdf->setHeaderMargin(PDF_MARGIN_HEADER); -$pdf->setFooterMargin(PDF_MARGIN_FOOTER); - -// set auto page breaks -$pdf->setAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); - -// set image scale factor -$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); - -// set some language-dependent strings (optional) -if (@file_exists(dirname(__FILE__).'/lang/eng.php')) { - require_once(dirname(__FILE__).'/lang/eng.php'); - $pdf->setLanguageArray($l); -} - -// --------------------------------------------------------- - -// set font -$pdf->setFont('helvetica', '', 8); - - -// define some html content for testing -$txt = '

    TEST PAGE REGIONS: A no-write region is a portion of the page with a rectangular or trapezium shape that will not be covered when writing text or html code. A region is always aligned on the left or right side of the page ad is defined using a vertical segment. You can set multiple regions for the same page. You can combine several adjacent regions to approximate curved shapes. Lorem ipsum dolor sit amet, consectetur adipiscing elit. In sed imperdiet lectus. Phasellus quis velit velit, non condimentum quam. Sed neque urna, ultrices ac volutpat vel, laoreet vitae augue. Sed vel velit erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Cras eget velit nulla, eu sagittis elit. Nunc ac arcu est, in lobortis tellus. Praesent condimentum rhoncus sodales. In hac habitasse platea dictumst. Proin porta eros pharetra enim tincidunt dignissim nec vel dolor. Cras sapien elit, ornare ac dignissim eu, ultricies ac eros. Maecenas augue magna, ultrices a congue in, mollis eu nulla. Nunc venenatis massa at est eleifend faucibus. Vivamus sed risus lectus, nec interdum nunc. -Fusce et felis vitae diam lobortis sollicitudin. Aenean tincidunt accumsan nisi, id vehicula quam laoreet elementum. Phasellus egestas interdum erat, et viverra ipsum ultricies ac. Praesent sagittis augue at augue volutpat eleifend. Cras nec orci neque. Mauris bibendum posuere blandit. Donec feugiat mollis dui sit amet pellentesque. Sed a enim justo. Donec tincidunt, nisl eget elementum aliquam, odio ipsum ultrices quam, eu porttitor ligula urna at lorem. Donec varius, eros et convallis laoreet, ligula tellus consequat felis, ut ornare metus tellus sodales velit. Duis sed diam ante. Ut rutrum malesuada massa, vitae consectetur ipsum rhoncus sed. Suspendisse potenti. Pellentesque a congue massa. -Integer non sem eget neque mattis accumsan. Maecenas eu nisl mauris, sit amet interdum ipsum. In pharetra erat vel lectus venenatis elementum. Nulla non elit ligula, sit amet mollis urna. Morbi ut gravida est. Mauris tincidunt sem et turpis molestie malesuada. Curabitur vel nulla risus, sed mollis erat. Suspendisse vehicula accumsan purus nec varius. Donec fermentum lorem id felis sodales dictum. Quisque et dolor ipsum. Nam luctus consectetur dui vitae fermentum. Curabitur sodales consequat augue, id ultricies augue tempor ac. Aliquam ac magna id ipsum vehicula bibendum. Sed elementum congue tristique. Phasellus vel lorem eu lectus porta sodales. Etiam neque tortor, sagittis id pharetra quis, laoreet vel arcu. -Cras quam mi, ornare laoreet laoreet vel, vehicula at lacus. Maecenas a lacus accumsan augue convallis sagittis sed quis odio. Morbi sit amet turpis diam, dictum convallis urna. Cras eget interdum augue. Cras eu nisi sit amet dolor faucibus porttitor. Suspendisse potenti. Nunc vitae dolor risus, at cursus libero. Suspendisse bibendum tellus non nibh hendrerit tristique. Mauris eget orci elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam porta libero non ante laoreet semper. Proin volutpat sodales mi, ac fermentum erat sagittis in. Vivamus at viverra felis. Ut pretium facilisis ante et pharetra. -Nulla facilisi. Cras varius quam eget libero aliquam vitae tincidunt leo rutrum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Pellentesque a nisl massa, quis pretium urna. Proin vel porttitor tortor. Cras rhoncus congue velit in bibendum. Donec pharetra semper augue id lacinia. Quisque magna quam, hendrerit eu aliquam et, pellentesque ut tellus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Maecenas nulla quam, rutrum eu feugiat at, elementum eu libero. Maecenas ullamcorper leo et turpis rutrum ac laoreet eros faucibus. Phasellus condimentum lorem quis neque imperdiet quis molestie enim iaculis. Phasellus risus est, vestibulum ut convallis ultrices, dignissim nec erat. Etiam congue lobortis laoreet. Nulla ut neque sed velit dapibus semper. Quisque nec dolor id nibh eleifend iaculis. Vivamus vitae fermentum odio. Etiam malesuada quam in nulla aliquam sed convallis dui feugiat.

    '; - - -// add a page -$pdf->AddPage(); - -// print some graphic content -$pdf->Image('images/image_demo.jpg', 155, 30, 40, 40, 'JPG', '', '', true); -$pdf->Image('images/image_demo.jpg', 15, 230, 40, 40, 'JPG', '', '', true); - -// define some graphic styles -$styleA = array('width' => 0.254, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(255, 0, 0)); -$styleB = array('width' => 0.254, 'cap' => 'butt', 'join' => 'miter', 'dash' => 3, 'color' => array(127, 127, 127)); -$pdf->setFillColor(220, 255, 220); - -// write a trapezoid with some information about no-write page regions -$pdf->Polygon(array(15,90, 57,90, 67,140, 15,140), 'DF', array($styleB, $styleA, $styleB, $styleB)); -$pdf->setXY(15, 90); -$pdf->Cell(42, 0, 'xt,yt', 0, 0, 'R', false, '', 0, false, 'T', 'T'); -$pdf->setXY(15, 140); -$pdf->Cell(52, 0, 'xb,yb', 0, 0, 'R', false, '', 0, false, 'B', 'B'); -$pdf->setXY(15, 115); -$pdf->Cell(40, 0, 'side', 0, 0, 'R', false, '', 0, false, 'B', 'B'); -$pdf->setLineStyle(array('width' => 0.254, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 0))); -$pdf->Arrow(60, 115, 35, 115, 2, 5, 15); - -// write a trapezoid with some information about no-write page regions -$pdf->Polygon(array(145,130, 195,130, 195,180, 155,180), 'DF', array($styleB, $styleB, $styleB, $styleA)); -$pdf->setXY(145, 130); -$pdf->Cell(42, 0, 'xt,yt', 0, 0, 'L', false, '', 0, false, 'T', 'T'); -$pdf->setXY(155, 180); -$pdf->Cell(52, 0, 'xb,yb', 0, 0, 'L', false, '', 0, false, 'B', 'B'); -$pdf->setXY(160, 155); -$pdf->Cell(30, 0, 'side', 0, 0, 'L', false, '', 0, false, 'B', 'B'); -$pdf->setLineStyle(array('width' => 0.254, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 0))); -$pdf->Arrow(155, 155, 180, 155, 2, 5, 15); - -// reset x,y position -$pdf->setXY(15, 30); - - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// define no-write page regions to avoid text overlapping images -/* - 'page' => page number or empy for current page - 'xt' => X top - 'yt' => Y top - 'yb' => Y bottom - 'side' => page side ('L' = left or 'R' = right) -*/ -$regions = array( -array('page' => '', 'xt' => 153, 'yt' => 30, 'xb' => 153, 'yb' => 70, 'side' => 'R'), -array('page' => '', 'xt' => 60, 'yt' => 90, 'xb' => 70, 'yb' => 140, 'side' => 'L'), -array('page' => '', 'xt' => 143, 'yt' => 130, 'xb' => 153, 'yb' => 180, 'side' => 'R'), -array('page' => '', 'xt' => 58, 'yt' => 230, 'xb' => 58, 'yb' => 270, 'side' => 'L') -); - -// set page regions, check also getPageRegions(), addPageRegion() and removePageRegion() -$pdf->setPageRegions($regions); - -// write html text -$pdf->writeHTML($txt, true, false, true, false, ''); - - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// set a circular no-write region on the second page -$regions = array( -array('page' => 2, 'xt' => 195, 'yt' => 110, 'xb' => 179.693, 'yb' => 113.045, 'side' => 'R'), -array('page' => 2, 'xt' => 179.693, 'yt' => 113.045, 'xb' => 166.716, 'yb' => 121.716, 'side' => 'R'), -array('page' => 2, 'xt' => 166.716, 'yt' => 121.716, 'xb' => 158.045, 'yb' => 134.693, 'side' => 'R'), -array('page' => 2, 'xt' => 158.045, 'yt' => 134.693, 'xb' => 155, 'yb' => 150, 'side' => 'R'), -array('page' => 2, 'xt' => 155, 'yt' => 150, 'xb' => 158.045, 'yb' => 165.307, 'side' => 'R'), -array('page' => 2, 'xt' => 158.045, 'yt' => 165.307, 'xb' => 166.716, 'yb' => 178.284, 'side' => 'R'), -array('page' => 2, 'xt' => 166.716, 'yt' => 178.284, 'xb' => 179.693, 'yb' => 186.955, 'side' => 'R'), -array('page' => 2, 'xt' => 179.693, 'yt' => 186.955, 'xb' => 195, 'yb' => 190, 'side' => 'R') -); -$pdf->setPageRegions($regions); - -$pdf->Polygon(array(195,110, 179.693,113.045, 166.716,121.716, 158.045,134.693, 155,150, 158.045,165.307, 166.716,178.284, 179.693,186.955, 195,190), 'DF'); - -$pdf->Ln(15); - -// define some html content for testing -$txt = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. In sed imperdiet lectus. Phasellus quis velit velit, non condimentum quam. Sed neque urna, ultrices ac volutpat vel, laoreet vitae augue. Sed vel velit erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Cras eget velit nulla, eu sagittis elit. Nunc ac arcu est, in lobortis tellus. Praesent condimentum rhoncus sodales. In hac habitasse platea dictumst. Proin porta eros pharetra enim tincidunt dignissim nec vel dolor. Cras sapien elit, ornare ac dignissim eu, ultricies ac eros. Maecenas augue magna, ultrices a congue in, mollis eu nulla. Nunc venenatis massa at est eleifend faucibus. Vivamus sed risus lectus, nec interdum nunc. Fusce et felis vitae diam lobortis sollicitudin. Aenean tincidunt accumsan nisi, id vehicula quam laoreet elementum. Phasellus egestas interdum erat, et viverra ipsum ultricies ac. Praesent sagittis augue at augue volutpat eleifend. Cras nec orci neque. Mauris bibendum posuere blandit. Donec feugiat mollis dui sit amet pellentesque. Sed a enim justo. Donec tincidunt, nisl eget elementum aliquam, odio ipsum ultrices quam, eu porttitor ligula urna at lorem. Donec varius, eros et convallis laoreet, ligula tellus consequat felis, ut ornare metus tellus sodales velit. Duis sed diam ante. Ut rutrum malesuada massa, vitae consectetur ipsum rhoncus sed. Suspendisse potenti. Pellentesque a congue massa. Integer non sem eget neque mattis accumsan. Maecenas eu nisl mauris, sit amet interdum ipsum. In pharetra erat vel lectus venenatis elementum. Nulla non elit ligula, sit amet mollis urna. Morbi ut gravida est. Mauris tincidunt sem et turpis molestie malesuada. Curabitur vel nulla risus, sed mollis erat. Suspendisse vehicula accumsan purus nec varius. Donec fermentum lorem id felis sodales dictum. Quisque et dolor ipsum. Nam luctus consectetur dui vitae fermentum. Curabitur sodales consequat augue, id ultricies augue tempor ac. Aliquam ac magna id ipsum vehicula bibendum. Sed elementum congue tristique. Phasellus vel lorem eu lectus porta sodales. Etiam neque tortor, sagittis id pharetra quis, laoreet vel arcu. Cras quam mi, ornare laoreet laoreet vel, vehicula at lacus. Maecenas a lacus accumsan augue convallis sagittis sed quis odio. Morbi sit amet turpis diam, dictum convallis urna. Cras eget interdum augue. Cras eu nisi sit amet dolor faucibus porttitor. Suspendisse potenti. Nunc vitae dolor risus, at cursus libero. Suspendisse bibendum tellus non nibh hendrerit tristique. Mauris eget orci elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam porta libero non ante laoreet semper. Proin volutpat sodales mi, ac fermentum erat sagittis in. Vivamus at viverra felis. Ut pretium facilisis ante et pharetra. Nulla facilisi. Cras varius quam eget libero aliquam vitae tincidunt leo rutrum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Pellentesque a nisl massa, quis pretium urna. Proin vel porttitor tortor. Cras rhoncus congue velit in bibendum. Donec pharetra semper augue id lacinia. Quisque magna quam, hendrerit eu aliquam et, pellentesque ut tellus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Maecenas nulla quam, rutrum eu feugiat at, elementum eu libero. Maecenas ullamcorper leo et turpis rutrum ac laoreet eros faucibus. Phasellus condimentum lorem quis neque imperdiet quis molestie enim iaculis. Phasellus risus est, vestibulum ut convallis ultrices, dignissim nec erat. Etiam congue lobortis laoreet. Nulla ut neque sed velit dapibus semper. Quisque nec dolor id nibh eleifend iaculis. Vivamus vitae fermentum odio. Etiam malesuada quam in nulla aliquam sed convallis dui feugiat.'."\n"; - -// write text -$pdf->MultiCell(0, 0, $txt, 0, 'J', false, 1, '', '', true, 0, false, true, 0, 'T', false); - -// --------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_064.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_065.php b/tools/tcpdf/examples/example_065.php deleted file mode 100644 index 90794804c..000000000 --- a/tools/tcpdf/examples/example_065.php +++ /dev/null @@ -1,100 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 065'); -$pdf->setSubject('TCPDF Tutorial'); -$pdf->setKeywords('TCPDF, PDF, example, test, guide'); - -// set default header data -$pdf->setHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 065', PDF_HEADER_STRING); - -// set header and footer fonts -$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); -$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); - -// set default monospaced font -$pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED); - -// set margins -$pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); -$pdf->setHeaderMargin(PDF_MARGIN_HEADER); -$pdf->setFooterMargin(PDF_MARGIN_FOOTER); - -// set auto page breaks -$pdf->setAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); - -// set image scale factor -$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); - -// set some language-dependent strings (optional) -if (@file_exists(dirname(__FILE__).'/lang/eng.php')) { - require_once(dirname(__FILE__).'/lang/eng.php'); - $pdf->setLanguageArray($l); -} - -// --------------------------------------------------------- - -// set default font subsetting mode -$pdf->setFontSubsetting(true); - -// Set font -$pdf->setFont('helvetica', '', 14, '', true); - -// Add a page -// This method has several options, check the source code documentation for more information. -$pdf->AddPage(); - -// Set some content to print -$html = <<Example of  TCPDF  document in PDF/A-1b mode. -This document conforms to the standard PDF/A-1b (ISO 19005-1:2005). -

    Please check the source code documentation and other examples for further information (http://www.tcpdf.org).

    -

    TO IMPROVE AND EXPAND TCPDF I NEED YOUR SUPPORT, PLEASE MAKE A DONATION!

    -EOD; - -// Print text using writeHTMLCell() -$pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true); - -// --------------------------------------------------------- - -// Close and output PDF document -// This method has several options, check the source code documentation for more information. -$pdf->Output('example_065.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/example_066.php b/tools/tcpdf/examples/example_066.php deleted file mode 100644 index 41b8b4729..000000000 --- a/tools/tcpdf/examples/example_066.php +++ /dev/null @@ -1,88 +0,0 @@ - - * @license LGPL-3.0 - */ - -/** - * Creates an example PDF/A-1b document using TCPDF - * - * @abstract TCPDF - Example: PDF/A-1b mode - * @author Nicola Asuni - * @since 2021-03-26 - * @group A-1b - * @group pdf - */ - -// Include the main TCPDF library (search for installation path). -require_once('tcpdf_include.php'); - -// create new PDF document -$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false, true); - -// set document information -$pdf->setCreator(PDF_CREATOR); -$pdf->setAuthor('Nicola Asuni'); -$pdf->setTitle('TCPDF Example 066'); -$pdf->setSubject('TCPDF Tutorial'); -$pdf->setKeywords('TCPDF, PDF, example, test, guide'); - -// set default header data -$pdf->setHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE . ' 066', PDF_HEADER_STRING); - -// set header and footer fonts -$pdf->setHeaderFont(array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); -$pdf->setFooterFont(array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); - -// set default monospaced font -$pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED); - -// set margins -$pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); -$pdf->setHeaderMargin(PDF_MARGIN_HEADER); -$pdf->setFooterMargin(PDF_MARGIN_FOOTER); - -// set auto page breaks -$pdf->setAutoPageBreak(true, PDF_MARGIN_BOTTOM); - -// set image scale factor -$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); - -// set some language-dependent strings (optional) -if (@file_exists(__DIR__ . '/lang/eng.php')) { - require_once __DIR__ . '/lang/eng.php'; - - $pdf->setLanguageArray($l); -} - -// --------------------------------------------------------- - -// set default font subsetting mode -$pdf->setFontSubsetting(true); - -// Set font -$pdf->setFont('helvetica', '', 14, '', true); - -// Add a page -// This method has several options, check the source code documentation for more information. -$pdf->AddPage(); - -// Set some content to print -$html = <<Example of  TCPDF  document in PDF/A-1b mode. -This document conforms to the standard PDF/A-1b (ISO 19005-1:2005). -

    Please check the source code documentation and other examples for further information (http://www.tcpdf.org).

    -HTML; - -// Print text using writeHTMLCell() -$pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true); - -// --------------------------------------------------------- - -// Close and output PDF document -// This method has several options, check the source code documentation for more information. -$pdf->Output('example_066.pdf', 'I'); diff --git a/tools/tcpdf/examples/example_067.php b/tools/tcpdf/examples/example_067.php deleted file mode 100644 index e0262bfde..000000000 --- a/tools/tcpdf/examples/example_067.php +++ /dev/null @@ -1,223 +0,0 @@ -setCreator(PDF_CREATOR); -$pdf->setAuthor('Owen Leibman'); -$pdf->setTitle('TCPDF Example 067'); -$pdf->setSubject('TCPDF Tutorial'); -$pdf->setKeywords('TCPDF, PDF, example, test, guide'); - -// set default header data -$pdf->setHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 067', PDF_HEADER_STRING); - -// set header and footer fonts -$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); -$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); - -// set default monospaced font -$pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED); - -// set margins -$pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); -$pdf->setHeaderMargin(PDF_MARGIN_HEADER); -$pdf->setFooterMargin(PDF_MARGIN_FOOTER); - -// set auto page breaks -$pdf->setAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); - -// set image scale factor -$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); - -// set some language-dependent strings (optional) -if (@file_exists(dirname(__FILE__).'/lang/eng.php')) { - require_once(dirname(__FILE__).'/lang/eng.php'); - $pdf->setLanguageArray($l); -} - -// --------------------------------------------------------- - -// set font -$pdf->setFont('helvetica', 'B', 20); - -// add a page -$pdf->AddPage(); - -$pdf->Write(0, 'Example of HTML tables', '', 0, 'L', true, 0, false, false, 0); - -$pdf->setFont('helvetica', '', 8); - -// ----------------------------------------------------------------------------- - -$tbl = << - - COL 1 - ROW 1
    COLSPAN 3 - COL 2 - ROW 1 - COL 3 - ROW 1 - - - COL 2 - ROW 2 - COLSPAN 2
    text line
    text line
    text line
    text line - COL 3 - ROW 2 - - - COL 3 - ROW 3 - - - -EOD; - -$pdf->writeHTML($tbl, true, false, false, false, ''); - -// ----------------------------------------------------------------------------- - -$tbl = << - - COL 1 - ROW 1
    COLSPAN 3 - COL 2 - ROW 1 - COL 3 - ROW 1 - - - COL 2 - ROW 2 - COLSPAN 2
    text line
    text line
    text line
    text line - COL 3 - ROW 2 - - - COL 3 - ROW 3 - - - -EOD; - -$pdf->writeHTML($tbl, true, false, false, false, ''); - -// ----------------------------------------------------------------------------- - -$tbl = << - - COL 1 - ROW 1
    COLSPAN 3 - COL 2 - ROW 1 - COL 3 - ROW 1 - - - COL 2 - ROW 2 - COLSPAN 2
    text line
    text line
    text line
    text line - COL 3 - ROW 2 - - - COL 3 - ROW 3 - - - -EOD; - -$pdf->writeHTML($tbl, true, false, false, false, ''); - -// ----------------------------------------------------------------------------- - -$tbl = << - - COL 1 - ROW 1
    COLSPAN 3 - COL 2 - ROW 1 - COL 3 - ROW 1 - - - COL 2 - ROW 2 - COLSPAN 2
    text line
    text line
    text line
    text line - COL 3 - ROW 2 - - - COL 3 - ROW 3 - - - -EOD; - -$pdf->writeHTML($tbl, true, false, false, false, ''); - -// ----------------------------------------------------------------------------- - -$tbl = << - - COL 1 - ROW 1
    COLSPAN 3 - COL 2 - ROW 1 - COL 3 - ROW 1 - - - COL 2 - ROW 2 - COLSPAN 2
    text line
    text line
    text line
    text line - COL 3 - ROW 2 - - - COL 3 - ROW 3 - - - -EOD; - -$pdf->writeHTML($tbl, true, false, false, false, ''); - -// ----------------------------------------------------------------------------- - -// At medium thickness, which is what you get with only one -// setting for style, everything looks the same. -// Included just for completeness. -$tbl = << - - COL 1 - ROW 1
    COLSPAN 3 - COL 2 - ROW 1 - COL 3 - ROW 1 - - - COL 2 - ROW 2 - COLSPAN 2
    text line
    text line
    text line
    text line - COL 3 - ROW 2 - - - COL 3 - ROW 3 - - - -EOD; - -$pdf->writeHTML($tbl, true, false, false, false, ''); -// ----------------------------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('example_067.pdf', 'I'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/examples/images/_blank.png b/tools/tcpdf/examples/images/_blank.png deleted file mode 100644 index 38f7b2fa5..000000000 Binary files a/tools/tcpdf/examples/images/_blank.png and /dev/null differ diff --git a/tools/tcpdf/examples/images/alpha.png b/tools/tcpdf/examples/images/alpha.png deleted file mode 100644 index 4980117de..000000000 Binary files a/tools/tcpdf/examples/images/alpha.png and /dev/null differ diff --git a/tools/tcpdf/examples/images/image_demo.jpg b/tools/tcpdf/examples/images/image_demo.jpg deleted file mode 100644 index 262bce272..000000000 Binary files a/tools/tcpdf/examples/images/image_demo.jpg and /dev/null differ diff --git a/tools/tcpdf/examples/images/image_with_alpha.png b/tools/tcpdf/examples/images/image_with_alpha.png deleted file mode 100644 index f87dc9a1b..000000000 Binary files a/tools/tcpdf/examples/images/image_with_alpha.png and /dev/null differ diff --git a/tools/tcpdf/examples/images/img.png b/tools/tcpdf/examples/images/img.png deleted file mode 100644 index 2461637e3..000000000 Binary files a/tools/tcpdf/examples/images/img.png and /dev/null differ diff --git a/tools/tcpdf/examples/images/logo_example.gif b/tools/tcpdf/examples/images/logo_example.gif deleted file mode 100644 index 010b487d9..000000000 Binary files a/tools/tcpdf/examples/images/logo_example.gif and /dev/null differ diff --git a/tools/tcpdf/examples/images/logo_example.jpg b/tools/tcpdf/examples/images/logo_example.jpg deleted file mode 100644 index 6d9b8fd80..000000000 Binary files a/tools/tcpdf/examples/images/logo_example.jpg and /dev/null differ diff --git a/tools/tcpdf/examples/images/logo_example.png b/tools/tcpdf/examples/images/logo_example.png deleted file mode 100644 index a57be4ce9..000000000 Binary files a/tools/tcpdf/examples/images/logo_example.png and /dev/null differ diff --git a/tools/tcpdf/examples/images/tcpdf_box.ai b/tools/tcpdf/examples/images/tcpdf_box.ai deleted file mode 100644 index 0c1484614..000000000 --- a/tools/tcpdf/examples/images/tcpdf_box.ai +++ /dev/null @@ -1,214 +0,0 @@ -%!PS-Adobe-3.0 EPSF -%%Creator: Adobe Illustrator -%%BoundingBox: -7 0 487 327 -%%HiResBoundingBox: -6.66162 2.44007e-05 486.662 326.648 -%AI5_FileFormat 3 -%%EndComments -%%BeginProlog -%%EndProlog -%%BeginSetup -%%EndSetup -1 XR -%AI5_BeginLayer -1 1 1 1 0 0 -1 49 80 161 Lb -(New Layer) Ln -0.620000 0.580000 0.435000 0.996000 K -[] 0 d -1.402287 w -0 j -0 J -0.263000 0.290000 0.898000 0.263000 k -72.7885 255.643 m -277.08 286.778 L -425.478 260.993 L -408.269 190.301 L -113.504 181.247 L -113.504 181.247 72.9813 241.769 72.7885 255.643 C -b -0.620000 0.580000 0.435000 0.996000 K -1 j -0.094000 0.102000 0.369000 0.016000 k -423.247 259.914 m -240.217 207.097 L -240.635 0.701168 L -397.776 116.053 L -423.247 259.914 L -b -0.620000 0.580000 0.435000 0.996000 K -0.133000 0.141000 0.541000 0.035000 k -72.1745 254.207 m -240.217 207.097 L -240.561 0.783816 L -101.054 87.946 L -72.1745 254.207 L -b -0.047000 0.059000 0.184000 0.004000 k -423.247 259.914 m -308.187 51.1553 L -396.862 116.972 L -423.247 259.914 L -f -0.620000 0.580000 0.435000 0.996000 K -0 j -0.047000 0.059000 0.184000 0.004000 k -479.312 250.415 m -423.613 260.243 L -240.385 206.966 L -314.061 186.394 L -479.312 250.415 L -b -0.620000 0.580000 0.435000 0.996000 K -0.047000 0.059000 0.184000 0.004000 k -69.9121 254.273 m -237.965 207.131 L -163.618 164.537 L -0.687544 234.686 L -69.9121 254.273 L -b -0.620000 0.580000 0.435000 0.996000 K -0.047000 0.059000 0.184000 0.004000 k -242.971 319.299 m -275.613 286.233 L -72.5703 254.295 L -16.555 296.161 L -242.971 319.299 L -b -0.620000 0.580000 0.435000 0.996000 K -0.133000 0.141000 0.541000 0.035000 k -423.496 260.684 m -275.426 286.441 L -307.326 316.69 L -462.053 292.606 L -423.496 260.684 L -b -0.196000 0.227000 0.871000 0.106000 k -75.26 254.037 m -274.806 285.371 L -227.928 211.257 L -163.396 228.836 130.937 238.701 75.26 254.037 C -f -0.620000 0.580000 0.435000 0.996000 K -1 j -0.169000 0.314000 0.424000 0.094000 k -275.528 286.329 m -274.75 216.78 L -275.528 286.329 L -b -0.031000 0.949000 0.745000 0.729000 k -285.929 160.982 m -285.929 160.982 285.078 139.734 285.078 139.734 C -285.078 139.734 275.378 135.096 275.378 135.096 C -275.378 135.096 273.058 57.6061 273.058 57.6061 C -273.058 57.6061 257.133 47.3536 257.133 47.3536 C -257.133 47.3536 258.059 126.816 258.059 126.816 C -258.059 126.816 247.186 121.618 247.186 121.618 C -247.186 121.618 247.186 144.26 247.186 144.26 C -247.186 144.26 285.929 160.982 285.929 160.982 C -F -0.031000 0.949000 0.745000 0.729000 k -320.884 135.342 m -320.884 135.342 307.279 128.129 307.279 128.129 C -307.279 128.129 308.36 144.944 308.36 144.944 C -308.681 149.948 308.724 153.011 308.483 154.097 C -308.268 155.24 307.632 155.567 306.572 155.073 C -305.368 154.512 304.553 153.381 304.135 151.687 C -303.718 149.995 303.36 146.608 303.063 141.565 C -303.063 141.565 300.477 97.6864 300.477 97.6864 C -300.22 93.3298 300.208 90.6032 300.439 89.4791 C -300.668 88.3599 301.318 88.1316 302.385 88.7881 C -303.403 89.4149 304.103 90.4684 304.487 91.9528 C -304.894 93.4524 305.253 96.6211 305.567 101.497 C -305.567 101.497 306.297 112.86 306.297 112.86 C -306.297 112.86 319.718 120.438 319.718 120.438 C -319.718 120.438 319.446 116.964 319.446 116.964 C -318.734 107.862 317.873 101.293 316.856 97.1389 C -315.864 93.0164 314.026 88.8059 311.329 84.474 C -308.636 80.1307 305.421 76.743 301.646 74.2975 C -297.651 71.7096 294.365 70.7251 291.812 71.3887 C -289.213 72.064 287.545 74.2699 286.838 78.0362 C -286.121 81.8925 285.954 88.3297 286.349 97.4441 C -286.349 97.4441 287.575 125.751 287.575 125.751 C -287.89 133.007 288.277 138.586 288.737 142.421 C -289.202 146.323 290.251 150.369 291.883 154.544 C -293.54 158.732 295.716 162.4 298.394 165.529 C -301.078 168.689 304.052 170.959 307.296 172.342 C -311.621 174.188 315.02 174.154 317.521 172.296 C -319.974 170.473 321.427 167.541 321.911 163.514 C -322.39 159.578 322.275 153.119 321.579 144.225 C -321.579 144.225 320.884 135.342 320.884 135.342 C -F -0.031000 0.949000 0.745000 0.729000 k -*u -329.084 179.607 m -329.084 179.607 342.074 185.214 342.074 185.214 C -345.446 186.669 347.94 187.235 349.586 186.932 C -351.233 186.642 352.374 185.695 353.019 184.1 C -353.677 182.527 353.999 180.418 353.991 177.777 C -354.005 175.2 353.703 171.072 353.088 165.429 C -353.088 165.429 352.244 157.683 352.244 157.683 C -351.634 152.084 350.908 147.89 350.063 145.056 C -349.22 142.228 347.957 139.718 346.265 137.514 C -344.583 135.308 342.474 133.487 339.919 132.046 C -339.919 132.046 336.736 130.25 336.736 130.25 C -336.736 130.25 333.512 96.527 333.512 96.527 C -333.512 96.527 321.545 88.8222 321.545 88.8222 C -321.545 88.8222 329.084 179.607 329.084 179.607 C -F -340.42 168.795 m -340.42 168.795 338.184 145.407 338.184 145.407 C -338.526 145.552 338.82 145.69 339.068 145.822 C -340.172 146.404 340.98 147.319 341.498 148.568 C -342.038 149.863 342.473 152.174 342.805 155.518 C -342.805 155.518 343.55 163.014 343.55 163.014 C -343.863 166.167 343.82 168.111 343.416 168.832 C -343.011 169.557 342.015 169.547 340.42 168.795 C -F -*U -0.031000 0.949000 0.745000 0.729000 k -*u -359.204 192.607 m -359.204 192.607 367.556 196.212 367.556 196.212 C -372.753 198.454 376.114 199.414 377.734 199.14 C -379.351 198.877 380.446 197.777 381.03 195.854 C -381.608 193.948 381.815 191.642 381.655 188.934 C -381.502 186.28 380.88 180.934 379.804 172.981 C -379.804 172.981 375.968 144.653 375.968 144.653 C -375.021 137.654 374.236 132.926 373.604 130.399 C -372.993 127.921 372.216 125.786 371.268 123.986 C -370.323 122.215 369.243 120.698 368.023 119.43 C -366.801 118.187 365.012 116.807 362.638 115.279 C -362.638 115.279 349.593 106.88 349.593 106.88 C -349.593 106.88 359.204 192.607 359.204 192.607 C -F -368.395 181.985 m -368.395 181.985 361.644 126.918 361.644 126.918 C -363.113 127.815 364.084 128.947 364.566 130.32 C -365.053 131.727 365.629 135.077 366.301 140.416 C -366.301 140.416 370.368 172.752 370.368 172.752 C -370.86 176.666 371.12 179.163 371.145 180.223 C -371.168 181.285 371.006 181.972 370.654 182.282 C -370.306 182.629 369.555 182.531 368.395 181.985 C -F -*U -0.031000 0.949000 0.745000 0.729000 k -387.58 204.854 m -387.58 204.854 403.348 211.659 403.348 211.659 C -403.348 211.659 400.803 195.062 400.803 195.062 C -400.803 195.062 394.579 192.087 394.579 192.087 C -394.579 192.087 392.296 176.619 392.296 176.619 C -392.296 176.619 397.801 179.482 397.801 179.482 C -397.801 179.482 395.533 164.634 395.533 164.634 C -395.533 164.634 390.075 161.574 390.075 161.574 C -390.075 161.574 385.406 129.937 385.406 129.937 C -385.406 129.937 376.374 124.122 376.374 124.122 C -376.374 124.122 387.58 204.854 387.58 204.854 C -F -LB -%AI5_EndLayer-- -%AI5_BeginLayer -1 1 1 1 0 0 -1 49 80 161 Lb -(MasterLayer 1) Ln -LB -%AI5_EndLayer-- -%%Trailer -%%EOF diff --git a/tools/tcpdf/examples/images/tcpdf_box.svg b/tools/tcpdf/examples/images/tcpdf_box.svg deleted file mode 100644 index 8c29e64ab..000000000 --- a/tools/tcpdf/examples/images/tcpdf_box.svg +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/tools/tcpdf/examples/images/tcpdf_cell.png b/tools/tcpdf/examples/images/tcpdf_cell.png deleted file mode 100644 index 2e3e92ccb..000000000 Binary files a/tools/tcpdf/examples/images/tcpdf_cell.png and /dev/null differ diff --git a/tools/tcpdf/examples/images/tcpdf_logo.jpg b/tools/tcpdf/examples/images/tcpdf_logo.jpg deleted file mode 100644 index 257f8fb6d..000000000 Binary files a/tools/tcpdf/examples/images/tcpdf_logo.jpg and /dev/null differ diff --git a/tools/tcpdf/examples/images/tcpdf_signature.png b/tools/tcpdf/examples/images/tcpdf_signature.png deleted file mode 100644 index 64caa51fe..000000000 Binary files a/tools/tcpdf/examples/images/tcpdf_signature.png and /dev/null differ diff --git a/tools/tcpdf/examples/images/testsvg.svg b/tools/tcpdf/examples/images/testsvg.svg deleted file mode 100644 index fd8314e34..000000000 --- a/tools/tcpdf/examples/images/testsvg.svg +++ /dev/null @@ -1,328 +0,0 @@ - - - - - TCPDF SVG EXAMPLE - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - www.tcpdf.org - - - - - - - - SVG - diff --git a/tools/tcpdf/examples/images/tux.svg b/tools/tcpdf/examples/images/tux.svg deleted file mode 100644 index de8c86968..000000000 --- a/tools/tcpdf/examples/images/tux.svg +++ /dev/null @@ -1,1487 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/tcpdf/examples/index.php b/tools/tcpdf/examples/index.php deleted file mode 100644 index d865689b1..000000000 --- a/tools/tcpdf/examples/index.php +++ /dev/null @@ -1,117 +0,0 @@ -'; -?> - - - - - -TCPDF Examples - - - - - - - - -

    TCPDF Examples

    - -

    PDF

    - -
      -
    1. Simple PDF with default Header and Footer: [PDF]
    2. -
    3. Simple PDF without Header and Footer: [PDF]
    4. -
    5. Custom Header and Footer: [PDF]
    6. -
    7. Cell stretching: [PDF]
    8. -
    9. Multicell: [PDF]
    10. -
    11. WriteHTML and RTL support: [PDF]
    12. -
    13. Independent columns with WriteHTMLCell: [PDF]
    14. -
    15. External UTF-8 text file: [PDF]
    16. -
    17. Image: [PDF]
    18. -
    19. Multiple columns: [PDF]
    20. -
    21. Colored Tables: [PDF]
    22. -
    23. Graphic Functions: [PDF]
    24. -
    25. Graphic Transformations: [PDF]
    26. -
    27. Javascript and Forms: [PDF]
    28. -
    29. Bookmarks (Table of Content): [PDF]
    30. -
    31. Document Encryption: [PDF]
    32. -
    33. Independent columns with MultiCell: [PDF]
    34. -
    35. Persian and Arabic language on RTL document: [PDF]
    36. -
    37. Non unicode / Alternative config file: [PDF]
    38. -
    39. Multicell complex alignment: [PDF]
    40. -
    41. writeHTML alignment: [PDF]
    42. -
    43. CMYK colors: [PDF]
    44. -
    45. Page Groups: [PDF]
    46. -
    47. Object Visibility and Layers: [PDF]
    48. -
    49. Object Transparency: [PDF]
    50. -
    51. Text Rendering Modes and Text Clipping: [PDF]
    52. -
    53. 1D Barcodes: [PDF]
    54. -
    55. Multiple page formats: [PDF]
    56. -
    57. Set PDF viewer display preferences: [PDF]
    58. -
    59. Colour gradients: [PDF]
    60. -
    61. Pie Chart Graphic: [PDF]
    62. -
    63. EPS/AI vectorial image: [PDF]
    64. -
    65. Mixed font types (TrueType Unicode, core, CID-0): [PDF]
    66. -
    67. Clipping masks: [PDF]
    68. -
    69. Line styles with cells and multicells: [PDF]
    70. -
    71. Text Annotations: [PDF]
    72. -
    73. Spot Colors: [PDF]
    74. -
    75. NON-embedded CID-0 CJK font: [PDF]
    76. -
    77. HTML Justification: [PDF]
    78. -
    79. Booklet (double-sided pages): [PDF]
    80. -
    81. File attachment: [PDF]
    82. -
    83. Image with Alpha Channel Transparency: [PDF]
    84. -
    85. Disk caching: [PDF]
    86. -
    87. Move, Copy and Delete page: [PDF]
    88. -
    89. Table Of Content with Bookmarks: [PDF]
    90. -
    91. Text hyphenation: [PDF]
    92. -
    93. Transactions and UNDO: [PDF]
    94. -
    95. Table header and rowspan: [PDF]
    96. -
    97. TCPDF methods in HTML: [PDF]
    98. -
    99. 2D Barcode (QR-Code, Datamatrix ECC200 and PDF417): [PDF]
    100. -
    101. Full page background: [PDF]
    102. -
    103. Digital Signature Certification: [PDF]
    104. -
    105. Javascript functions: [PDF]
    106. -
    107. XHTML Form: [PDF]
    108. -
    109. Font Dump: [PDF]
    110. -
    111. Crop Marks and Registration Marks: [PDF]
    112. -
    113. Cell vertical alignments and borders: [PDF]
    114. -
    115. SVG Image: [PDF]
    116. -
    117. Table Of Content with HTML templates: [PDF]
    118. -
    119. Advanced page settings: [PDF]
    120. -
    121. XHTML + CSS: [PDF]
    122. -
    123. XObject Templates: [PDF]
    124. -
    125. Text stretching and spacing (tracking/kerning): [PDF]
    126. -
    127. No-write page regions: [PDF]
    128. -
    129. PDF/A-1b (ISO 19005-1:2005) document: [PDF]
    130. -
    131. Using WriteHTMLCell: [PDF]
    132. -
    133. Shorthand border styles including !important: [PDF]
    134. -
    - -

    Barcodes

    - -
      -
    1. 1D barcode HTML format [HTML]
    2. -
    3. 1D barcode PNG format [PNG]
    4. -
    5. 1D barcode SVG format [SVG]
    6. -
    7. 1D barcode SVG INLINE format [SVG INLINE]
    8. - -
    9. 2D datamatrix barcode HTML format [HTML]
    10. -
    11. 2D datamatrix barcode PNG format [PNG]
    12. -
    13. 2D datamatrix barcode SVG format [SVG]
    14. -
    15. 2D datamatrix barcode SVG INLINE format [SVG INLINE]
    16. - -
    17. 2D pdf417 barcode HTML format [HTML]
    18. -
    19. 2D pdf417 barcode PNG format [PNG]
    20. -
    21. 2D pdf417 barcode SVG format [SVG]
    22. -
    23. 2D pdf417 barcode SVG INLINE format [SVG INLINE]
    24. - -
    25. 2D qrcode barcode HTML format [HTML]
    26. -
    27. 2D qrcode barcode PNG format [PNG]
    28. -
    29. 2D qrcode barcode SVG format [SVG]
    30. -
    31. 2D qrcode barcode SVG INLINE format [SVG INLINE]
    32. -
    - - - diff --git a/tools/tcpdf/examples/lang/afr.php b/tools/tcpdf/examples/lang/afr.php deleted file mode 100644 index 367b7e87f..000000000 --- a/tools/tcpdf/examples/lang/afr.php +++ /dev/null @@ -1,44 +0,0 @@ - + Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -645,7 +645,7 @@ the "copyright" line and a pointer to where the full notice is found. GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . + along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. @@ -664,11 +664,11 @@ might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see -. +. The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read -. +. diff --git a/tools/tcpdf/fonts/freefont-20100919/CREDITS b/tools/tcpdf/fonts/freefont-20100919/CREDITS index 0b69784b5..e4a8b634e 100644 --- a/tools/tcpdf/fonts/freefont-20100919/CREDITS +++ b/tools/tcpdf/fonts/freefont-20100919/CREDITS @@ -331,7 +331,7 @@ a set of TTF fonts for nine Indian scripts (Devanagari, Gujarati, Telugu, Tamil, Malayalam, Kannada, Bengali, Oriya, and Gurumukhi) under the GNU General Public License (GPL). You can download the fonts from the Free Software Foundation of India WWW site -(http://www.gnu.org.in/akruti-fonts/) or from the Akruti website. +(https://www.gnu.org.in/akruti-fonts/) or from the Akruti website. For any further information or assistance regarding these fonts, please contact mssridhar AT vsnl.com. diff --git a/tools/tcpdf/fonts/freefont-20120503/COPYING b/tools/tcpdf/fonts/freefont-20120503/COPYING index 94a9ed024..ae0725d80 100644 --- a/tools/tcpdf/fonts/freefont-20120503/COPYING +++ b/tools/tcpdf/fonts/freefont-20120503/COPYING @@ -1,7 +1,7 @@ GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 - Copyright (C) 2007 Free Software Foundation, Inc. + Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -645,7 +645,7 @@ the "copyright" line and a pointer to where the full notice is found. GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . + along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. @@ -664,11 +664,11 @@ might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see -. +. The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read -. +. diff --git a/tools/tcpdf/fonts/freefont-20120503/CREDITS b/tools/tcpdf/fonts/freefont-20120503/CREDITS index f4430ecf9..bc078aacc 100644 --- a/tools/tcpdf/fonts/freefont-20120503/CREDITS +++ b/tools/tcpdf/fonts/freefont-20120503/CREDITS @@ -336,7 +336,7 @@ a set of TTF fonts for nine Indian scripts (Devanagari, Gujarati, Telugu, Tamil, Malayalam, Kannada, Bengali, Oriya, and Gurumukhi) under the GNU General Public License (GPL). You can download the fonts from the Free Software Foundation of India WWW site -(http://www.gnu.org.in/akruti-fonts/) or from the Akruti website. +(https://www.gnu.org.in/akruti-fonts/) or from the Akruti website. For any further information or assistance regarding these fonts, please contact mssridhar AT vsnl.com. diff --git a/tools/tcpdf/fonts/freefont-20120503/README b/tools/tcpdf/fonts/freefont-20120503/README index d83f4a945..daf679e67 100644 --- a/tools/tcpdf/fonts/freefont-20120503/README +++ b/tools/tcpdf/fonts/freefont-20120503/README @@ -30,7 +30,7 @@ FreeFont covers the following character ranges * geometrical shapes, box drawing * musical symbols, gaming symbols, miscellaneous symbols etc. -For more detail see +For more detail see Editing ------- @@ -108,7 +108,7 @@ Further information ------------------- Home page of GNU FreeFont: - http://www.gnu.org/software/freefont/ + https://www.gnu.org/software/freefont/ More information is at the main project page of Free UCS scalable fonts: http://savannah.gnu.org/projects/freefont/ diff --git a/tools/tcpdf/fonts/freefont-20120503/TROUBLESHOOTING b/tools/tcpdf/fonts/freefont-20120503/TROUBLESHOOTING index a7af22255..0639198ac 100644 --- a/tools/tcpdf/fonts/freefont-20120503/TROUBLESHOOTING +++ b/tools/tcpdf/fonts/freefont-20120503/TROUBLESHOOTING @@ -27,7 +27,7 @@ a different font. First double-check that the font in question really contains the character in question. If you don't have font development software, this can be tricky. In the case of FreeFont, you can check if a given character -range is supported: +range is supported: Next double-check that your application (web browser, text editor, etc) has indeed been properly instructed to use the font. diff --git a/tools/tcpdf/include/barcodes/datamatrix.php b/tools/tcpdf/include/barcodes/datamatrix.php index d1cc6d2a9..77822fdf1 100644 --- a/tools/tcpdf/include/barcodes/datamatrix.php +++ b/tools/tcpdf/include/barcodes/datamatrix.php @@ -5,9 +5,9 @@ // Begin : 2010-06-07 // Last Update : 2014-05-06 // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com -// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- -// Copyright (C) 2010-2014 Nicola Asuni - Tecnick.com LTD +// Copyright (C) 2010-2014 2026 Nicola Asuni - Tecnick.com LTD // // This file is part of TCPDF software library. // @@ -22,7 +22,7 @@ // See the GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License -// along with TCPDF. If not, see . +// along with TCPDF. If not, see . // // See LICENSE.TXT file for more information. // ------------------------------------------------------------------- diff --git a/tools/tcpdf/include/barcodes/pdf417.php b/tools/tcpdf/include/barcodes/pdf417.php index bda24822f..4c9a4b3d1 100644 --- a/tools/tcpdf/include/barcodes/pdf417.php +++ b/tools/tcpdf/include/barcodes/pdf417.php @@ -5,9 +5,9 @@ // Begin : 2010-06-03 // Last Update : 2014-04-25 // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com -// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- -// Copyright (C) 2010-2013 Nicola Asuni - Tecnick.com LTD +// Copyright (C) 2010-2013 2026 Nicola Asuni - Tecnick.com LTD // // This file is part of TCPDF software library. // @@ -22,7 +22,7 @@ // See the GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License -// along with TCPDF. If not, see . +// along with TCPDF. If not, see . // // See LICENSE.TXT file for more information. // ------------------------------------------------------------------- diff --git a/tools/tcpdf/include/barcodes/qrcode.php b/tools/tcpdf/include/barcodes/qrcode.php index 1a64a4cb5..72cbf15e8 100644 --- a/tools/tcpdf/include/barcodes/qrcode.php +++ b/tools/tcpdf/include/barcodes/qrcode.php @@ -5,9 +5,9 @@ // Begin : 2010-03-22 // Last Update : 2012-07-25 // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com -// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- -// Copyright (C) 2010-2012 Nicola Asuni - Tecnick.com LTD +// Copyright (C) 2010-2026 Nicola Asuni - Tecnick.com LTD // // This file is part of TCPDF software library. // @@ -22,7 +22,7 @@ // See the GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License -// along with TCPDF. If not, see . +// along with TCPDF. If not, see . // // See LICENSE.TXT file for more information. // ------------------------------------------------------------------- diff --git a/tools/tcpdf/include/tcpdf_colors.php b/tools/tcpdf/include/tcpdf_colors.php index 5a51594c3..fc5aeb08f 100644 --- a/tools/tcpdf/include/tcpdf_colors.php +++ b/tools/tcpdf/include/tcpdf_colors.php @@ -5,9 +5,9 @@ // Begin : 2002-04-09 // Last Update : 2014-04-25 // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com -// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- -// Copyright (C) 2002-2013 Nicola Asuni - Tecnick.com LTD +// Copyright (C) 2002-2013 2026 Nicola Asuni - Tecnick.com LTD // // This file is part of TCPDF software library. // @@ -22,7 +22,7 @@ // See the GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License -// along with TCPDF. If not, see . +// along with TCPDF. If not, see . // // See LICENSE.TXT file for more information. // ------------------------------------------------------------------- @@ -275,7 +275,7 @@ class TCPDF_COLORS { $color = strtolower($color); // check for javascript color array syntax if (strpos($color, '[') !== false) { - if (preg_match('/[\[][\"\'](t|g|rgb|cmyk)[\"\'][\,]?([0-9\.]*+)[\,]?([0-9\.]*+)[\,]?([0-9\.]*+)[\,]?([0-9\.]*+)[\]]/', $color, $m) > 0) { + if (preg_match('/[\[][\"\'](t|g|rgba|rgb|cmyk)[\"\'][\,]?([0-9\.]*+)[\,]?([0-9\.]*+)[\,]?([0-9\.]*+)[\,]?([0-9\.]*+)[\]]/', $color, $m) > 0) { $returncolor = array(); switch ($m[1]) { case 'cmyk': { @@ -286,7 +286,8 @@ class TCPDF_COLORS { $returncolor['K'] = max(0, min(100, (floatval($m[5]) * 100))); break; } - case 'rgb': { + case 'rgb': + case 'rgba': { // RGB $returncolor['R'] = max(0, min(255, (floatval($m[2]) * 255))); $returncolor['G'] = max(0, min(255, (floatval($m[3]) * 255))); @@ -317,6 +318,25 @@ class TCPDF_COLORS { if (strlen($color) == 0) { return $defcol; } + // RGBA ARRAY + if (substr($color, 0, 4) == 'rgba') { + $codes = substr($color, 5); + $codes = str_replace(')', '', $codes); + $returncolor = explode(',', $codes); + // remove alpha component + array_pop($returncolor); + foreach ($returncolor as $key => $val) { + if (strpos($val, '%') > 0) { + // percentage + $returncolor[$key] = (255 * intval($val) / 100); + } else { + $returncolor[$key] = intval($val); /* floatize */ + } + // normalize value + $returncolor[$key] = max(0, min(255, $returncolor[$key])); + } + return $returncolor; + } // RGB ARRAY if (substr($color, 0, 3) == 'rgb') { $codes = substr($color, 4); diff --git a/tools/tcpdf/include/tcpdf_filters.php b/tools/tcpdf/include/tcpdf_filters.php index 3009cff7c..96be66f5d 100644 --- a/tools/tcpdf/include/tcpdf_filters.php +++ b/tools/tcpdf/include/tcpdf_filters.php @@ -5,9 +5,9 @@ // Begin : 2011-05-23 // Last Update : 2014-04-25 // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com -// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- -// Copyright (C) 2011-2013 Nicola Asuni - Tecnick.com LTD +// Copyright (C) 2011-2026 Nicola Asuni - Tecnick.com LTD // // This file is part of TCPDF software library. // diff --git a/tools/tcpdf/include/tcpdf_font_data.php b/tools/tcpdf/include/tcpdf_font_data.php index 974e72ec7..d7eae2f30 100644 --- a/tools/tcpdf/include/tcpdf_font_data.php +++ b/tools/tcpdf/include/tcpdf_font_data.php @@ -5,9 +5,9 @@ // Begin : 2008-01-01 // Last Update : 2013-04-01 // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com -// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- -// Copyright (C) 2008-2013 Nicola Asuni - Tecnick.com LTD +// Copyright (C) 2008-2026 Nicola Asuni - Tecnick.com LTD // // This file is part of TCPDF software library. // @@ -22,7 +22,7 @@ // See the GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License -// along with TCPDF. If not, see . +// along with TCPDF. If not, see . // // See LICENSE.TXT file for more information. // ------------------------------------------------------------------- diff --git a/tools/tcpdf/include/tcpdf_fonts.php b/tools/tcpdf/include/tcpdf_fonts.php index f4518d9ef..1fc24f5af 100644 --- a/tools/tcpdf/include/tcpdf_fonts.php +++ b/tools/tcpdf/include/tcpdf_fonts.php @@ -1,13 +1,13 @@ . +// along with TCPDF. If not, see . // // See LICENSE.TXT file for more information. // ------------------------------------------------------------------- @@ -42,7 +42,7 @@ * @class TCPDF_FONTS * Font methods for TCPDF library. * @package com.tecnick.tcpdf - * @version 1.1.0 + * @version 1.1.1 * @author Nicola Asuni - info@tecnick.com */ class TCPDF_FONTS { @@ -191,29 +191,30 @@ class TCPDF_FONTS { fclose($fp); // get font info $fmetric['Flags'] = $flags; - preg_match ('#/FullName[\s]*\(([^\)]*)#', $font, $matches); + preg_match ('#/FullName[\s]*+\(([^\)]*+)#', $font, $matches); $fmetric['name'] = preg_replace('/[^a-zA-Z0-9_\-]/', '', $matches[1]); - preg_match('#/FontBBox[\s]*{([^}]*)#', $font, $matches); - $fmetric['bbox'] = trim($matches[1]); - $bv = explode(' ', $fmetric['bbox']); - $fmetric['Ascent'] = intval($bv[3]); - $fmetric['Descent'] = intval($bv[1]); - preg_match('#/ItalicAngle[\s]*([0-9\+\-]*)#', $font, $matches); + preg_match('#/FontBBox[\s]*+{([^}]*+)#', $font, $matches); + $rawbvl = explode(' ', trim($matches[1])); + $bvl = [(int) $rawbvl[0], (int) $rawbvl[1], (int) $rawbvl[2], (int) $rawbvl[3]]; + $fmetric['bbox'] = implode(' ', $bvl); + $fmetric['Ascent'] = $bvl[3]; + $fmetric['Descent'] = $bvl[1]; + preg_match('#/ItalicAngle[\s]*+([0-9\+\-]*+)#', $font, $matches); $fmetric['italicAngle'] = intval($matches[1]); if ($fmetric['italicAngle'] != 0) { $fmetric['Flags'] |= 64; } - preg_match('#/UnderlinePosition[\s]*([0-9\+\-]*)#', $font, $matches); + preg_match('#/UnderlinePosition[\s]*+([0-9\+\-]*+)#', $font, $matches); $fmetric['underlinePosition'] = intval($matches[1]); - preg_match('#/UnderlineThickness[\s]*([0-9\+\-]*)#', $font, $matches); + preg_match('#/UnderlineThickness[\s]*+([0-9\+\-]*+)#', $font, $matches); $fmetric['underlineThickness'] = intval($matches[1]); - preg_match('#/isFixedPitch[\s]*([^\s]*)#', $font, $matches); + preg_match('#/isFixedPitch[\s]*+([^\s]*+)#', $font, $matches); if ($matches[1] == 'true') { $fmetric['Flags'] |= 1; } // get internal map $imap = array(); - if (preg_match_all('#dup[\s]([0-9]+)[\s]*/([^\s]*)[\s]put#sU', $font, $fmap, PREG_SET_ORDER) > 0) { + if (preg_match_all('#dup[\s]([0-9]+)[\s]*+/([^\s]*+)[\s]put#sU', $font, $fmap, PREG_SET_ORDER) > 0) { foreach ($fmap as $v) { $imap[$v[2]] = $v[1]; } @@ -229,22 +230,22 @@ class TCPDF_FONTS { $eplain .= chr($chr ^ ($r >> 8)); $r = ((($chr + $r) * $c1 + $c2) % 65536); } - if (preg_match('#/ForceBold[\s]*([^\s]*)#', $eplain, $matches) > 0) { + if (preg_match('#/ForceBold[\s]*+([^\s]*+)#', $eplain, $matches) > 0) { if ($matches[1] == 'true') { $fmetric['Flags'] |= 0x40000; } } - if (preg_match('#/StdVW[\s]*\[([^\]]*)#', $eplain, $matches) > 0) { + if (preg_match('#/StdVW[\s]*+\[([^\]]*+)#', $eplain, $matches) > 0) { $fmetric['StemV'] = intval($matches[1]); } else { $fmetric['StemV'] = 70; } - if (preg_match('#/StdHW[\s]*\[([^\]]*)#', $eplain, $matches) > 0) { + if (preg_match('#/StdHW[\s]*+\[([^\]]*+)#', $eplain, $matches) > 0) { $fmetric['StemH'] = intval($matches[1]); } else { $fmetric['StemH'] = 30; } - if (preg_match('#/BlueValues[\s]*\[([^\]]*)#', $eplain, $matches) > 0) { + if (preg_match('#/BlueValues[\s]*+\[([^\]]*+)#', $eplain, $matches) > 0) { $bv = explode(' ', $matches[1]); if (count($bv) >= 6) { $v1 = intval($bv[2]); @@ -265,7 +266,7 @@ class TCPDF_FONTS { $fmetric['CapHeight'] = 700; } // get the number of random bytes at the beginning of charstrings - if (preg_match('#/lenIV[\s]*([0-9]*)#', $eplain, $matches) > 0) { + if (preg_match('#/lenIV[\s]*+([\d]*+)#', $eplain, $matches) > 0) { $lenIV = intval($matches[1]); } else { $lenIV = 4; @@ -273,7 +274,7 @@ class TCPDF_FONTS { $fmetric['Leading'] = 0; // get charstring data $eplain = substr($eplain, (strpos($eplain, '/CharStrings') + 1)); - preg_match_all('#/([A-Za-z0-9\.]*)[\s][0-9]+[\s]RD[\s](.*)[\s]ND#sU', $eplain, $matches, PREG_SET_ORDER); + preg_match_all('#/([A-Za-z0-9\.]*+)[\s][0-9]+[\s]RD[\s](.*)[\s]ND#sU', $eplain, $matches, PREG_SET_ORDER); if (!empty($enc) AND isset(TCPDF_FONT_DATA::$encmap[$enc])) { $enc_map = TCPDF_FONT_DATA::$encmap[$enc]; } else { @@ -1383,7 +1384,7 @@ class TCPDF_FONTS { } // set checkSumAdjustment on head table $checkSumAdjustment = 0xB1B0AFBA - self::_getTTFtableChecksum($font, strlen($font)); - $font = substr($font, 0, $table['head']['offset'] + $offset + 8).pack('N', $checkSumAdjustment).substr($font, $table['head']['offset'] + $offset + 12); + $font = substr($font, 0, $table['head']['offset'] + $offset + 4).pack('N', $checkSumAdjustment).substr($font, $table['head']['offset'] + $offset + 8); return $font; } diff --git a/tools/tcpdf/include/tcpdf_images.php b/tools/tcpdf/include/tcpdf_images.php index 6f2860c60..2d8b96e62 100644 --- a/tools/tcpdf/include/tcpdf_images.php +++ b/tools/tcpdf/include/tcpdf_images.php @@ -5,9 +5,9 @@ // Begin : 2002-08-03 // Last Update : 2014-11-15 // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com -// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- -// Copyright (C) 2002-2014 Nicola Asuni - Tecnick.com LTD +// Copyright (C) 2002-2026 Nicola Asuni - Tecnick.com LTD // // This file is part of TCPDF software library. // @@ -126,7 +126,9 @@ class TCPDF_IMAGES { // create temporary PNG image imagepng($image, $tempfile); // remove image from memory - imagedestroy($image); + if (PHP_VERSION_ID < 80000) { + imagedestroy($image); + } // get PNG image data $retvars = self::_parsepng($tempfile); // tidy up by removing temporary image @@ -145,7 +147,9 @@ class TCPDF_IMAGES { */ public static function _toJPEG($image, $quality, $tempfile) { imagejpeg($image, $tempfile, $quality); - imagedestroy($image); + if (PHP_VERSION_ID < 80000) { + imagedestroy($image); + } $retvars = self::_parsejpeg($tempfile); // tidy up by removing temporary image unlink($tempfile); @@ -270,12 +274,12 @@ class TCPDF_IMAGES { return 'pngalpha'; } if (ord(fread($f, 1)) != 0) { - // Unknown compression method + // Unknownn compression method fclose($f); return false; } if (ord(fread($f, 1)) != 0) { - // Unknown filter method + // Unknownn filter method fclose($f); return false; } @@ -327,7 +331,7 @@ class TCPDF_IMAGES { } // get compression method if (ord(fread($f, 1)) != 0) { - // Unknown filter method + // Unknownn filter method fclose($f); return false; } diff --git a/tools/tcpdf/include/tcpdf_static.php b/tools/tcpdf/include/tcpdf_static.php index 16828944c..86dbad577 100644 --- a/tools/tcpdf/include/tcpdf_static.php +++ b/tools/tcpdf/include/tcpdf_static.php @@ -1,13 +1,13 @@ * @package com.tecnick.tcpdf * @author Nicola Asuni - * @version 1.1.2 + * @version 1.1.5 */ /** @@ -46,7 +46,7 @@ * Static methods used by the TCPDF class. * @package com.tecnick.tcpdf * @brief PHP class for generating PDF documents without requiring external extensions. - * @version 1.1.1 + * @version 1.1.5 * @author Nicola Asuni - info@tecnick.com */ class TCPDF_STATIC { @@ -55,7 +55,7 @@ class TCPDF_STATIC { * Current TCPDF version. * @private static */ - private static $tcpdf_version = '6.7.8'; + private static $tcpdf_version = '6.11.3'; /** * String alias for total number of pages. @@ -106,6 +106,31 @@ class TCPDF_STATIC { */ public static $pageboxes = array('MediaBox', 'CropBox', 'BleedBox', 'TrimBox', 'ArtBox'); + /** + * Array of default cURL options for curl_setopt_array. + * + * @var array cURL options. + */ + protected const CURLOPT_DEFAULT = [ + CURLOPT_CONNECTTIMEOUT => 5, + CURLOPT_MAXREDIRS => 5, + CURLOPT_PROTOCOLS => CURLPROTO_HTTPS | CURLPROTO_HTTP | CURLPROTO_FTP | CURLPROTO_FTPS, + CURLOPT_SSL_VERIFYHOST => 2, + CURLOPT_SSL_VERIFYPEER => true, + CURLOPT_TIMEOUT => 30, + CURLOPT_USERAGENT => 'tcpdf', + ]; + + /** + * Array of fixed cURL options for curl_setopt_array. + * + * @var array cURL options. + */ + protected const CURLOPT_FIXED = [ + CURLOPT_FAILONERROR => true, + CURLOPT_RETURNTRANSFER => true, + ]; + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /** @@ -467,7 +492,7 @@ class TCPDF_STATIC { * @param string $last_enc_key_c Reference to last RC4 computed key. * @return string encrypted text * @since 2.0.000 (2008-01-02) - * @author Klemen Vodopivec, Nicola Asuni + * @author Klemen Vodopivec,2026 Nicola Asuni * @public static */ public static function _RC4($key, $text, &$last_enc_key, &$last_enc_key_c) { @@ -1823,26 +1848,24 @@ class TCPDF_STATIC { */ public static function url_exists($url) { $crs = curl_init(); - // encode query params in URL to get right response form the server - $url = self::encodeUrlQuery($url); - curl_setopt($crs, CURLOPT_URL, $url); - curl_setopt($crs, CURLOPT_NOBODY, true); - curl_setopt($crs, CURLOPT_FAILONERROR, true); - if ((ini_get('open_basedir') == '') && (!ini_get('safe_mode'))) { - curl_setopt($crs, CURLOPT_FOLLOWLOCATION, true); - } - curl_setopt($crs, CURLOPT_CONNECTTIMEOUT, 5); - curl_setopt($crs, CURLOPT_TIMEOUT, 30); - curl_setopt($crs, CURLOPT_SSL_VERIFYPEER, false); - curl_setopt($crs, CURLOPT_SSL_VERIFYHOST, false); - curl_setopt($crs, CURLOPT_USERAGENT, 'tc-lib-file'); - curl_setopt($crs, CURLOPT_MAXREDIRS, 5); - if (defined('CURLOPT_PROTOCOLS')) { - curl_setopt($crs, CURLOPT_PROTOCOLS, CURLPROTO_HTTPS | CURLPROTO_HTTP | CURLPROTO_FTP | CURLPROTO_FTPS); - } + $curlopts = []; + if ( + (ini_get('open_basedir') == '') + && (ini_get('safe_mode') === '' + || ini_get('safe_mode') === false) + ) { + $curlopts[CURLOPT_FOLLOWLOCATION] = true; + } + $curlopts = array_replace($curlopts, self::CURLOPT_DEFAULT); + $curlopts = array_replace($curlopts, K_CURLOPTS); + $curlopts = array_replace($curlopts, self::CURLOPT_FIXED); + $curlopts[CURLOPT_URL] = $url; + curl_setopt_array($crs, $curlopts); curl_exec($crs); $code = curl_getinfo($crs, CURLINFO_HTTP_CODE); - curl_close($crs); + if (PHP_VERSION_ID < 80000) { + curl_close($crs); + } return ($code == 200); } @@ -1960,23 +1983,23 @@ class TCPDF_STATIC { ) { // try to get remote file data using cURL $crs = curl_init(); - curl_setopt($crs, CURLOPT_URL, $path); - curl_setopt($crs, CURLOPT_FAILONERROR, true); - curl_setopt($crs, CURLOPT_RETURNTRANSFER, true); - if ((ini_get('open_basedir') == '') && (!ini_get('safe_mode'))) { - curl_setopt($crs, CURLOPT_FOLLOWLOCATION, true); - } - curl_setopt($crs, CURLOPT_CONNECTTIMEOUT, 5); - curl_setopt($crs, CURLOPT_TIMEOUT, 30); - curl_setopt($crs, CURLOPT_SSL_VERIFYPEER, false); - curl_setopt($crs, CURLOPT_SSL_VERIFYHOST, false); - curl_setopt($crs, CURLOPT_USERAGENT, 'tc-lib-file'); - curl_setopt($crs, CURLOPT_MAXREDIRS, 5); - if (defined('CURLOPT_PROTOCOLS')) { - curl_setopt($crs, CURLOPT_PROTOCOLS, CURLPROTO_HTTPS | CURLPROTO_HTTP | CURLPROTO_FTP | CURLPROTO_FTPS); + $curlopts = []; + if ( + (ini_get('open_basedir') == '') + && (ini_get('safe_mode') === '' + || ini_get('safe_mode') === false) + ) { + $curlopts[CURLOPT_FOLLOWLOCATION] = true; } + $curlopts = array_replace($curlopts, self::CURLOPT_DEFAULT); + $curlopts = array_replace($curlopts, K_CURLOPTS); + $curlopts = array_replace($curlopts, self::CURLOPT_FIXED); + $curlopts[CURLOPT_URL] = $url; + curl_setopt_array($crs, $curlopts); $ret = curl_exec($crs); - curl_close($crs); + if (PHP_VERSION_ID < 80000) { + curl_close($crs); + } if ($ret !== false) { return $ret; } @@ -2633,7 +2656,6 @@ class TCPDF_STATIC { return $page_mode; } - } // END OF TCPDF_STATIC CLASS //============================================================+ diff --git a/tools/tcpdf/tcpdf.php b/tools/tcpdf/tcpdf.php index 3404c52b3..b369532dc 100644 --- a/tools/tcpdf/tcpdf.php +++ b/tools/tcpdf/tcpdf.php @@ -1,13 +1,13 @@ * @package com.tecnick.tcpdf * @author Nicola Asuni - * @version 6.7.8 + * @version 6.11.3 */ // TCPDF configuration @@ -128,7 +128,7 @@ require_once(dirname(__FILE__).'/include/tcpdf_static.php'); * TCPDF project (http://www.tcpdf.org) has been originally derived in 2002 from the Public Domain FPDF class by Olivier Plathey (http://www.fpdf.org), but now is almost entirely rewritten.
    * @package com.tecnick.tcpdf * @brief PHP class for generating PDF documents without requiring external extensions. - * @version 6.7.8 + * @version 6.11.3 * @author Nicola Asuni - info@tecnick.com * @IgnoreAnnotation("protected") * @IgnoreAnnotation("public") @@ -1131,7 +1131,7 @@ class TCPDF { protected $opencell = true; /** - * Array of files to embedd. + * Array of files to embed. * @protected * @since 4.4.000 (2008-12-07) */ @@ -1810,6 +1810,13 @@ class TCPDF { */ protected $custom_xmp_rdf = ''; + /** + * Custom XMP RDF pdfaextension data. + * @protected + * @since 6.9.0 (2025-02-11) + */ + protected $custom_xmp_rdf_pdfaExtension = ''; + /** * Overprint mode array. * (Check the "Entries in a Graphics State Parameter Dictionary" on PDF 32000-1:2008). @@ -2900,14 +2907,7 @@ class TCPDF { * @since 1.4 */ public function setCompression($compress=true) { - $this->compress = false; - if (function_exists('gzcompress')) { - if ($compress) { - if ( !$this->pdfa_mode) { - $this->compress = true; - } - } - } + $this->compress = ($compress && function_exists('gzcompress')); } /** @@ -3007,6 +3007,7 @@ class TCPDF { public function Error($msg) { // unset all class variables $this->_destroy(true); + $msg = htmlspecialchars($msg, ENT_QUOTES, 'UTF-8'); if (defined('K_TCPDF_THROW_EXCEPTION_ERROR') AND !K_TCPDF_THROW_EXCEPTION_ERROR) { die('TCPDF ERROR: '.$msg); } else { @@ -4251,7 +4252,7 @@ class TCPDF { * @param string $style Font style. Possible values are (case insensitive):
    • empty string: regular (default)
    • B: bold
    • I: italic
    • BI or IB: bold italic
    * @param string $fontfile The font definition file. By default, the name is built from the family and style, in lower case with no spaces. * @return array|false array containing the font data, or false in case of error. - * @param mixed $subset if true embedd only a subset of the font (stores only the information related to the used characters); if false embedd full font; if 'default' uses the default value set using setFontSubsetting(). This option is valid only for TrueTypeUnicode fonts. If you want to enable users to change the document, set this parameter to false. If you subset the font, the person who receives your PDF would need to have your same font in order to make changes to your PDF. The file size of the PDF would also be smaller because you are embedding only part of a font. + * @param mixed $subset if true embed only a subset of the font (stores only the information related to the used characters); if false embed full font; if 'default' uses the default value set using setFontSubsetting(). This option is valid only for TrueTypeUnicode fonts. If you want to enable users to change the document, set this parameter to false. If you subset the font, the person who receives your PDF would need to have your same font in order to make changes to your PDF. The file size of the PDF would also be smaller because you are embedding only part of a font. * @public * @since 1.5 * @see SetFont(), setFontSubsetting() @@ -4431,7 +4432,7 @@ class TCPDF { $this->Error('All fonts must be embedded in PDF/A mode!'); } } else { - $this->Error('Unknow font type: '.$type.''); + $this->Error('Unknown font type: '.$type.''); } // set name if unset if (empty($name)) { @@ -4521,7 +4522,7 @@ class TCPDF { * @param string $style Font style. Possible values are (case insensitive):
    • empty string: regular
    • B: bold
    • I: italic
    • U: underline
    • D: line through
    • O: overline
    or any combination. The default value is regular. Bold and italic styles do not apply to Symbol and ZapfDingbats basic fonts or other fonts when not defined. * @param float|null $size Font size in points. The default value is the current size. If no size has been specified since the beginning of the document, the value taken is 12 * @param string $fontfile The font definition file. By default, the name is built from the family and style, in lower case with no spaces. - * @param mixed $subset if true embedd only a subset of the font (stores only the information related to the used characters); if false embedd full font; if 'default' uses the default value set using setFontSubsetting(). This option is valid only for TrueTypeUnicode fonts. If you want to enable users to change the document, set this parameter to false. If you subset the font, the person who receives your PDF would need to have your same font in order to make changes to your PDF. The file size of the PDF would also be smaller because you are embedding only part of a font. + * @param mixed $subset if true embed only a subset of the font (stores only the information related to the used characters); if false embed full font; if 'default' uses the default value set using setFontSubsetting(). This option is valid only for TrueTypeUnicode fonts. If you want to enable users to change the document, set this parameter to false. If you subset the font, the person who receives your PDF would need to have your same font in order to make changes to your PDF. The file size of the PDF would also be smaller because you are embedding only part of a font. * @param boolean $out if true output the font size command, otherwise only set the font properties. * @author Nicola Asuni * @public @@ -4931,6 +4932,32 @@ class TCPDF { } } + /** + * Embed the attached files. + * @since 6.9.000 (2025-02-11) + * @public + */ + public function EmbedFile($opt) { + if (!$this->pdfa_mode || ($this->pdfa_mode && $this->pdfa_version == 3)) { + if ((($opt['Subtype'] == 'FileAttachment')) AND (!TCPDF_STATIC::empty_string($opt['FS'])) + AND (@TCPDF_STATIC::file_exists($opt['FS']) OR TCPDF_STATIC::isValidURL($opt['FS'])) + AND (!isset($this->embeddedfiles[basename($opt['FS'])]))) { + $this->embeddedfiles[basename($opt['FS'])] = array('f' => ++$this->n, 'n' => ++$this->n, 'file' => $opt['FS']); + } + } + } + + /** + * Embed the attached files. + * @since 6.9.000 (2025-02-11) + * @public + */ + public function EmbedFileFromString($filename, $content) { + if (!$this->pdfa_mode || ($this->pdfa_mode && $this->pdfa_version == 3)) { + $this->embeddedfiles[$filename] = array('f' => ++$this->n, 'n' => ++$this->n, 'content' => $content ); + } + } + /** * Embedd the attached files. * @since 4.4.000 (2008-12-07) @@ -4944,7 +4971,12 @@ class TCPDF { } reset($this->embeddedfiles); foreach ($this->embeddedfiles as $filename => $filedata) { - $data = $this->getCachedFileContents($filedata['file']); + $data = false; + if (isset($filedata['file']) && !empty($filedata['file'])) { + $data = $this->getCachedFileContents($filedata['file']); + } elseif ($filedata['content'] && !empty($filedata['content'])) { + $data = $filedata['content']; + } if ($data !== FALSE) { $rawsize = strlen($data); if ($rawsize > 0) { @@ -4962,11 +4994,10 @@ class TCPDF { $filter = ''; if ($this->compress) { $data = gzcompress($data); - $filter = ' /Filter /FlateDecode'; + $filter .= ' /Filter /FlateDecode'; } - if ($this->pdfa_version == 3) { - $filter = ' /Subtype /text#2Fxml'; + $filter .= ' /Subtype /text#2Fxml'; } $stream = $this->_getrawstream($data, $filedata['n']); @@ -6232,7 +6263,7 @@ class TCPDF { * @param array|null $cellpadding Internal cell padding, if empty uses default cell padding. * @param mixed $border Indicates if borders must be drawn around the cell. The value can be a number:
    • 0: no border (default)
    • 1: frame
    or a string containing some or all of the following characters (in any order):
    • L: left
    • T: top
    • R: right
    • B: bottom
    or an array of line styles for each border group - for example: array('LTRB' => array('width' => 2, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 0))) * @return float Return the minimal height needed for multicell method for printing the $txt param. - * @author Alexander Escalona Fern\E1ndez, Nicola Asuni + * @author Alexander Escalona Fern\E1ndez,2026 Nicola Asuni * @public * @since 4.5.011 */ @@ -6428,7 +6459,7 @@ class TCPDF { // replacement for SHY character (minus symbol) $shy_replacement = 45; $shy_replacement_char = TCPDF_FONTS::unichr($shy_replacement, $this->isunicode); - // widht for SHY replacement + // width for SHY replacement $shy_replacement_width = $this->GetCharWidth($shy_replacement); // page width $pw = $w = $this->w - $this->lMargin - $this->rMargin; @@ -6886,8 +6917,8 @@ class TCPDF { // fallback to avoid division by zero $h = $h == 0 ? 1 : $h; $ratio_wh = ($w / $h); - if (($y + $h) > $this->PageBreakTrigger) { - $h = $this->PageBreakTrigger - $y; + if (($y + $h) > $this->PageBreakTrigger + $this->bMargin) { + $h = $this->PageBreakTrigger + $this->bMargin - $y; $w = ($h * $ratio_wh); } if ((!$this->rtl) AND (($x + $w) > ($this->w - $this->rMargin))) { @@ -6988,7 +7019,7 @@ class TCPDF { unset($imgdata); $imsize = @getimagesize($file); if ($imsize === FALSE) { - unlink($file); + $this->_unlink($file); $file = $original_file; } } @@ -7221,7 +7252,7 @@ class TCPDF { $tempname = TCPDF_STATIC::getObjFilename('img', $this->file_id); $img->writeImage($tempname); $info = TCPDF_IMAGES::_parsejpeg($tempname); - unlink($tempname); + $this->_unlink($tempname); $img->destroy(); } catch(Exception $e) { $info = false; @@ -7401,12 +7432,16 @@ class TCPDF { } } imagepng($imgalpha, $tempfile_alpha); - imagedestroy($imgalpha); + if (PHP_VERSION_ID < 80000) { + imagedestroy($imgalpha); + } // extract image without alpha channel $imgplain = imagecreatetruecolor($wpx, $hpx); imagecopy($imgplain, $img, 0, 0, 0, 0, $wpx, $hpx); imagepng($imgplain, $tempfile_plain); - imagedestroy($imgplain); + if (PHP_VERSION_ID < 80000) { + imagedestroy($imgplain); + } $parsed = true; } catch (Exception $e) { // GD fails @@ -7848,7 +7883,7 @@ class TCPDF { * @since 4.5.016 (2009-02-24) */ public function _destroy($destroyall=false, $preserve_objcopy=false) { - if (isset(self::$cleaned_ids[$this->file_id])) { + if (isset($this->file_id) && isset(self::$cleaned_ids[$this->file_id])) { $destroyall = false; } if ($destroyall AND !$preserve_objcopy && isset($this->file_id)) { @@ -7857,15 +7892,16 @@ class TCPDF { if ($handle = @opendir(K_PATH_CACHE)) { while ( false !== ( $file_name = readdir( $handle ) ) ) { if (strpos($file_name, '__tcpdf_'.$this->file_id.'_') === 0) { - unlink(K_PATH_CACHE.$file_name); + $this->_unlink(K_PATH_CACHE.$file_name); } } closedir($handle); } if (isset($this->imagekeys)) { foreach($this->imagekeys as $file) { - if (strpos($file, K_PATH_CACHE) === 0 && TCPDF_STATIC::file_exists($file)) { - @unlink($file); + if ((strpos($file, K_PATH_CACHE.'__tcpdf_'.$this->file_id.'_') === 0) + && TCPDF_STATIC::file_exists($file)) { + $this->_unlink($file); } } } @@ -8310,15 +8346,15 @@ class TCPDF { break; } case 'locked': { - $fval += 1 << 8; + $fval += 1 << 7; break; } case 'togglenoview': { - $fval += 1 << 9; + $fval += 1 << 8; break; } case 'lockedcontents': { - $fval += 1 << 10; + $fval += 1 << 9; break; } default: { @@ -8895,7 +8931,7 @@ class TCPDF { $this->_out('<< /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences ['.$diff.'] >>'."\n".'endobj'); } foreach ($this->FontFiles as $file => $info) { - // search and get font file to embedd + // search and get font file to embed $fontfile = TCPDF_FONTS::getFontFullPath($file, $info['fontdir']); if (!TCPDF_STATIC::empty_string($fontfile)) { $font = file_get_contents($fontfile); @@ -9110,9 +9146,9 @@ class TCPDF { $this->_newobj(); // Embed CIDToGIDMap // A specification of the mapping from CIDs to glyph indices - // search and get CTG font file to embedd + // search and get CTG font file to embed $ctgfile = strtolower($font['ctg']); - // search and get ctg font file to embedd + // search and get ctg font file to embed $fontfile = TCPDF_FONTS::getFontFullPath($ctgfile, $fontdir); if (TCPDF_STATIC::empty_string($fontfile)) { $this->Error('Font file not found: '.$ctgfile); @@ -9137,7 +9173,7 @@ class TCPDF { * A Type 0 CIDFont contains glyph descriptions based on the Adobe Type 1 font format * @param array $font font data * @protected - * @author Andrew Whitehead, Nicola Asuni, Yukihiro Nakadaira + * @author Andrew Whitehead,2026 Nicola Asuni, Yukihiro Nakadaira * @since 3.2.000 (2008-06-23) */ protected function _putcidfont0($font) { @@ -9628,6 +9664,17 @@ class TCPDF { $this->custom_xmp_rdf = $xmp; } + /** + * Set additional XMP data to be added to the default XMP data for PDF/A extensions. + * IMPORTANT: This data is added as-is without controls, so you have to validate your data before using this method! + * @param string $xmp Custom XMP RDF data. + * @since 6.9.0 (2025-02-14) + * @public + */ + public function setExtraXMPPdfaextension($xmp) { + $this->custom_xmp_rdf_pdfaExtension = $xmp; + } + /** * Put XMP data object and return ID. * @return int The object ID. @@ -9762,6 +9809,7 @@ class TCPDF { $xmp .= "\t\t\t\t\t\t\t".''."\n"; $xmp .= "\t\t\t\t\t\t".''."\n"; $xmp .= "\t\t\t\t\t".''."\n"; + $xmp .= $this->custom_xmp_rdf_pdfaExtension; $xmp .= "\t\t\t\t".''."\n"; $xmp .= "\t\t\t".''."\n"; $xmp .= "\t\t".''."\n"; @@ -9800,7 +9848,11 @@ class TCPDF { } // start catalog $oid = $this->_newobj(); - $out = '<< /Type /Catalog'; + $out = '<< '; + if (!empty($this->efnames)) { + $out .= ' /AF [ '. implode(' ', $this->efnames) .' ]'; + } + $out .= ' /Type /Catalog'; $out .= ' /Version /'.$this->PDFVersion; //$out .= ' /Extensions <<>>'; $out .= ' /Pages 1 0 R'; @@ -12275,7 +12327,7 @@ class TCPDF { * @param int $head_style (0 = draw only arrowhead arms, 1 = draw closed arrowhead, but no fill, 2 = closed and filled arrowhead, 3 = filled arrowhead) * @param float $arm_size length of arrowhead arms * @param int $arm_angle angle between an arm and the shaft - * @author Piotr Galecki, Nicola Asuni, Andy Meier + * @author Piotr Galecki,2026 Nicola Asuni, Andy Meier * @since 4.6.018 (2009-07-10) */ public function Arrow($x0, $y0, $x1, $y1, $head_style=0, $arm_size=5, $arm_angle=15) { @@ -12340,7 +12392,7 @@ class TCPDF { * @param float $x X position in user units of the destiantion on the selected page (default = -1 = current position;). * @return string|false Stripped named destination identifier or false in case of error. * @public - * @author Christian Deligant, Nicola Asuni + * @author Christian Deligant,2026 Nicola Asuni * @since 5.9.097 (2011-06-23) */ public function setDestination($name, $y=-1, $page='', $x=-1) { @@ -12393,7 +12445,7 @@ class TCPDF { /** * Insert Named Destinations. * @protected - * @author Johannes G\FCntert, Nicola Asuni + * @author Johannes G\FCntert,2026 Nicola Asuni * @since 5.9.098 (2011-06-23) */ protected function _putdests() { @@ -12502,7 +12554,7 @@ class TCPDF { /** * Create a bookmark PDF string. * @protected - * @author Olivier Plathey, Nicola Asuni + * @author Olivier Plathey,2026 Nicola Asuni * @since 2.1.002 (2008-02-12) */ protected function _putbookmarks() { @@ -12628,7 +12680,7 @@ class TCPDF { * Adds a javascript * @param string $script Javascript code * @public - * @author Johannes G\FCntert, Nicola Asuni + * @author Johannes G\FCntert,2026 Nicola Asuni * @since 2.1.002 (2008-02-12) */ public function IncludeJS($script) { @@ -12657,7 +12709,7 @@ class TCPDF { /** * Create a javascript PDF string. * @protected - * @author Johannes G\FCntert, Nicola Asuni + * @author Johannes G\FCntert,2026 Nicola Asuni * @since 2.1.002 (2008-02-12) */ protected function _putjavascript() { @@ -12715,7 +12767,7 @@ class TCPDF { * @param int $h height * @param array $prop javascript field properties. Possible values are described on official Javascript for Acrobat API reference. * @protected - * @author Denis Van Nuffelen, Nicola Asuni + * @author Denis Van Nuffelen,2026 Nicola Asuni * @since 2.1.002 (2008-02-12) */ protected function _addfield($type, $name, $x, $y, $w, $h, $prop) { @@ -14448,7 +14500,7 @@ class TCPDF { * @param array $col1 first color (Grayscale, RGB or CMYK components). * @param array $col2 second color (Grayscale, RGB or CMYK components). * @param array $coords array of the form (x1, y1, x2, y2) which defines the gradient vector (see linear_gradient_coords.jpg). The default value is from left to right (x1=0, y1=0, x2=1, y2=0). - * @author Andreas W\FCrmser, Nicola Asuni + * @author Andreas W\FCrmser,2026 Nicola Asuni * @since 3.1.000 (2008-06-09) * @public */ @@ -14466,7 +14518,7 @@ class TCPDF { * @param array $col1 first color (Grayscale, RGB or CMYK components). * @param array $col2 second color (Grayscale, RGB or CMYK components). * @param array $coords array of the form (fx, fy, cx, cy, r) where (fx, fy) is the starting point of the gradient with color1, (cx, cy) is the center of the circle with color2, and r is the radius of the circle (see radial_gradient_coords.jpg). (fx, fy) should be inside the circle, otherwise some areas will not be defined. - * @author Andreas W\FCrmser, Nicola Asuni + * @author Andreas W\FCrmser,2026 Nicola Asuni * @since 3.1.000 (2008-06-09) * @public */ @@ -14489,7 +14541,7 @@ class TCPDF { * @param array $coords_min minimum value used by the coordinates. If a coordinate's value is smaller than this it will be cut to coords_min. default: 0 * @param array $coords_max maximum value used by the coordinates. If a coordinate's value is greater than this it will be cut to coords_max. default: 1 * @param boolean $antialias A flag indicating whether to filter the shading function to prevent aliasing artifacts. - * @author Andreas W\FCrmser, Nicola Asuni + * @author Andreas W\FCrmser,2026 Nicola Asuni * @since 3.1.000 (2008-06-09) * @public */ @@ -14581,7 +14633,7 @@ class TCPDF { * @param float $y ordinate of the top left corner of the rectangle. * @param float $w width of the rectangle. * @param float $h height of the rectangle. - * @author Andreas W\FCrmser, Nicola Asuni + * @author Andreas W\FCrmser,2026 Nicola Asuni * @since 3.1.000 (2008-06-09) * @protected */ @@ -14907,7 +14959,7 @@ class TCPDF { * @param string $style Style of rendering. See the getPathPaintOperator() function for more information. * @param float $cw indicates whether to go clockwise (default: true). * @param float $o origin of angles (0 for 3 o'clock, 90 for noon, 180 for 9 o'clock, 270 for 6 o'clock). Default: 90. - * @author Maxime Delorme, Nicola Asuni + * @author Maxime Delorme,2026 Nicola Asuni * @since 3.1.000 (2008-06-09) * @public */ @@ -14928,7 +14980,7 @@ class TCPDF { * @param float $cw indicates whether to go clockwise. * @param float $o origin of angles (0 for 3 o'clock, 90 for noon, 180 for 9 o'clock, 270 for 6 o'clock). * @param integer $nc Number of curves used to draw a 90 degrees portion of arc. - * @author Maxime Delorme, Nicola Asuni + * @author Maxime Delorme,2026 Nicola Asuni * @since 3.1.000 (2008-06-09) * @public */ @@ -14972,7 +15024,7 @@ class TCPDF { * @param mixed $border Indicates if borders must be drawn around the cell. The value can be a number:
    • 0: no border (default)
    • 1: frame
    or a string containing some or all of the following characters (in any order):
    • L: left
    • T: top
    • R: right
    • B: bottom
    or an array of line styles for each border group - for example: array('LTRB' => array('width' => 2, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 0))) * @param boolean $fitonpage if true the image is resized to not exceed page dimensions. * @param boolean $fixoutvals if true remove values outside the bounding box. - * @author Valentin Schmidt, Nicola Asuni + * @author Valentin Schmidt,2026 Nicola Asuni * @since 3.1.000 (2008-06-09) * @public */ @@ -16396,7 +16448,7 @@ class TCPDF { * @since 3.2.000 (2008-06-20) */ protected function getHtmlDomArray($html) { - // set inheritable properties fot the first void element + // set inheritable properties for the first void element // possible inheritable properties are: azimuth, border-collapse, border-spacing, caption-side, color, cursor, direction, empty-cells, font, font-family, font-stretch, font-size, font-size-adjust, font-style, font-variant, font-weight, letter-spacing, line-height, list-style, list-style-image, list-style-position, list-style-type, orphans, page, page-break-inside, quotes, speak, speak-header, text-align, text-indent, text-transform, volume, white-space, widows, word-spacing $dom = array( array( @@ -16862,7 +16914,7 @@ class TCPDF { $dom[$key]['height'] = $dom[$key]['style']['height']; } // check for text alignment - if (isset($dom[$key]['style']['text-align'])) { + if (isset($dom[$key]['style']['text-align'][0])) { $dom[$key]['align'] = strtoupper($dom[$key]['style']['text-align'][0]); } // check for CSS border properties @@ -17259,7 +17311,7 @@ class TCPDF { $hlen = intval(substr($data, 0, $hpos)); $hash = substr($data, $hpos + 1, $hlen); $encoded = substr($data, $hpos + 2 + $hlen); - if ($hash != $this->hashTCPDFtag($encoded)) { + if (!hash_equals( $this->hashTCPDFtag($encoded), $hash)) { $this->Error('Invalid parameters'); } return json_decode(urldecode($encoded), true); @@ -17425,6 +17477,9 @@ class TCPDF { } } if ($key == $maxel) break; + if ($dom[$key]['tag'] AND $dom[$key]['opening'] AND !empty($dom[$key]['attribute']['id'])) { + $this->setDestination($dom[$key]['attribute']['id']); + } if ($dom[$key]['tag'] AND isset($dom[$key]['attribute']['pagebreak'])) { // check for pagebreak if (($dom[$key]['attribute']['pagebreak'] == 'true') OR ($dom[$key]['attribute']['pagebreak'] == 'left') OR ($dom[$key]['attribute']['pagebreak'] == 'right')) { @@ -18867,6 +18922,29 @@ class TCPDF { unset($dom); } + /** + * Check if the path is relative. + * @param string $path path to check + * @return boolean true if the path is relative + * @protected + * @since 6.9.1 + */ + protected function isRelativePath($path) { + return (strpos(str_ireplace('%2E', '.', $this->unhtmlentities($path)), '..') !== false); + } + + /** + * Check if it contains a non-allowed external protocol. + * @param string $path path to check + * @return boolean true if the protocol is not allowed. + * @protected + * @since 6.9.3 + */ + protected function hasExtForbiddenProtocol($path) { + return ((strpos($path, '://') !== false) + && (preg_match('|^https?://|', $path) !== 1)); + } + /** * Process opening tags. * @param array $dom html dom array @@ -19059,13 +19137,15 @@ class TCPDF { } else if (preg_match('@^data:image/([^;]*);base64,(.*)@', $imgsrc, $reg)) { $imgsrc = '@'.base64_decode($reg[2]); $type = $reg[1]; - } elseif (strpos($imgsrc, '../') !== false) { + } elseif ($this->isRelativePath($imgsrc)) { // accessing parent folders is not allowed break; } elseif ( $this->allowLocalFiles && substr($imgsrc, 0, 7) === 'file://') { // get image type from a local file path $imgsrc = substr($imgsrc, 7); $type = TCPDF_IMAGES::getImageFileType($imgsrc); + } elseif ($this->hasExtForbiddenProtocol($imgsrc)) { + break; } else { if (($imgsrc[0] === '/') AND !empty($_SERVER['DOCUMENT_ROOT']) AND ($_SERVER['DOCUMENT_ROOT'] != '/')) { // fix image path @@ -19124,7 +19204,7 @@ class TCPDF { $imglink = ''; if (isset($this->HREF['url']) AND !TCPDF_STATIC::empty_string($this->HREF['url'])) { $imglink = $this->HREF['url']; - if ($imglink[0] == '#') { + if ($imglink[0] == '#' AND isset($imglink[1]) AND is_numeric($imglink[1])) { // convert url to internal link $lnkdata = explode(',', $imglink); if (isset($lnkdata[0])) { @@ -19985,7 +20065,7 @@ class TCPDF { } } if (!$in_table_head) { // we are not inside a thead section - $this->cell_padding = isset($table_el['old_cell_padding']) ? $table_el['old_cell_padding'] : null; + $this->cell_padding = isset($table_el['old_cell_padding']) ? $table_el['old_cell_padding'] : array('T' => 0, 'R' => 0, 'B' => 0, 'L' => 0); // reset row height $this->resetLastH(); if (($this->page == ($this->numpages - 1)) AND ($this->pageopen[$this->numpages])) { @@ -23184,8 +23264,11 @@ class TCPDF { $error_message = sprintf('SVG Error: %s at line %d', xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser)); $this->Error($error_message); } - // free this XML parser - xml_parser_free($parser); + + // free this XML parser (does nothing in PHP >= 8.0) + if (function_exists('xml_parser_free') && PHP_VERSION_ID < 80000) { + xml_parser_free($parser); + } // >= PHP 7.0.0 "explicitly unset the reference to parser to avoid memory leaks" unset($parser); @@ -23416,7 +23499,8 @@ class TCPDF { $gradient['coords'][4] /= $w; } elseif ($gradient['mode'] == 'percentage') { foreach($gradient['coords'] as $key => $val) { - $gradient['coords'][$key] = (intval($val) / 100); + $val = floatval($val) / 100; + $gradient['coords'][$key] = $val; if ($val < 0) { $gradient['coords'][$key] = 0; } elseif ($val > 1) { @@ -23452,6 +23536,8 @@ class TCPDF { $fill_color = TCPDF_COLORS::convertHTMLColorToDec($svgstyle['fill'], $this->spot_colors); if ($svgstyle['fill-opacity'] != 1) { $this->setAlpha($this->alpha['CA'], 'Normal', $svgstyle['fill-opacity'], false); + } elseif (preg_match('/rgba\(\d+%?,\s*\d+%?,\s*\d+%?,\s*(\d+(?:\.\d+)?)\)/i', $svgstyle['fill'], $rgba_matches)) { + $this->setAlpha($this->alpha['CA'], 'Normal', $rgba_matches[1], false); } $this->setFillColorArray($fill_color); if ($svgstyle['fill-rule'] == 'evenodd') { @@ -23485,7 +23571,7 @@ class TCPDF { if (preg_match('/font-family[\s]*:[\s]*([^\;\"]*)/si', $svgstyle['font'], $regs)) { $font_family = $this->getFontFamilyName($regs[1]); } else { - $font_family = $svgstyle['font-family']; + $font_family = $this->getFontFamilyName($svgstyle['font-family']); } if (preg_match('/font-size[\s]*:[\s]*([^\s\;\"]*)/si', $svgstyle['font'], $regs)) { $font_size = trim($regs[1]); @@ -23639,9 +23725,11 @@ class TCPDF { } $params = array(); if (isset($val[2])) { - // get curve parameters - preg_match_all('/-?\d*\.?\d+/', trim($val[2]), $matches); - $rawparams = $matches[0]; + // get curve parameters, see https://github.com/tecnickcom/TCPDF/issues/767 + $rawparams = preg_split('/([\,\s]+)/si', trim($val[2])); + $rawparams = array_filter($rawparams, function($p) { + return trim($p) != ''; + }); $params = array(); foreach ($rawparams as $ck => $cp) { $params[$ck] = $this->getHTMLUnitToUnits($cp, 0, $this->svgunit, false); @@ -24338,6 +24426,7 @@ class TCPDF { } $this->StopTransform(); } + break; } case 'ellipse': { @@ -24466,6 +24555,9 @@ class TCPDF { $img = '@'.base64_decode(substr($img, strlen($m[0]))); } else { // fix image path + if ($this->isRelativePath($img) || $this->hasExtForbiddenProtocol($img)) { + break; + } if (!TCPDF_STATIC::empty_string($this->svgdir) AND (($img[0] == '.') OR (basename($img) == $img))) { // replace relative path with full server path $img = $this->svgdir.'/'.$img; @@ -24648,7 +24740,7 @@ class TCPDF { */ protected function endSVGElementHandler($parser, $name) { $name = $this->removeTagNamespace($name); - if ($this->svgdefsmode AND !in_array($name, array('defs', 'clipPath', 'linearGradient', 'radialGradient', 'stop'))) {; + if ($this->svgdefsmode AND !in_array($name, array('defs', 'clipPath', 'linearGradient', 'radialGradient', 'stop'))) { if (end($this->svgdefs) !== FALSE) { $last_svgdefs_id = key($this->svgdefs); if (isset($this->svgdefs[$last_svgdefs_id]['attribs']['child_elements'])) { @@ -24786,6 +24878,20 @@ class TCPDF { return TCPDF_STATIC::file_exists($file); } + /** + * Wrapper for unlink with disabled protocols. + * @param string $file + * @return bool + */ + protected function _unlink($file) + { + if ((strpos($file, '://') !== false) && ((substr($file, 0, 7) !== 'file://') || (!$this->allowLocalFiles))) { + // forbidden protocol + return false; + } + return @unlink($file); + } + } // END OF TCPDF CLASS //============================================================+ diff --git a/tools/tcpdf/tcpdf_autoconfig.php b/tools/tcpdf/tcpdf_autoconfig.php index 2bcfccb82..dd1404e09 100644 --- a/tools/tcpdf/tcpdf_autoconfig.php +++ b/tools/tcpdf/tcpdf_autoconfig.php @@ -3,11 +3,11 @@ // File name : tcpdf_autoconfig.php // Version : 1.1.1 // Begin : 2013-05-16 -// Last Update : 2014-12-18 +// Last Update : 2025-04-18 // Authors : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com -// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- -// Copyright (C) 2011-2014 Nicola Asuni - Tecnick.com LTD +// Copyright (C) 2011-2026 Nicola Asuni - Tecnick.com LTD // // This file is part of TCPDF software library. // @@ -37,9 +37,14 @@ * @file * Try to automatically configure some TCPDF constants if not defined. * @package com.tecnick.tcpdf - * @version 1.1.1 + * @version 1.2.1 */ +// Disable phar stream wrapper globally. +// if (in_array('phar', stream_get_wrappers(), true)) { +// stream_wrapper_unregister('phar'); +// } + // DOCUMENT_ROOT fix for IIS Webserver if ((!isset($_SERVER['DOCUMENT_ROOT'])) OR (empty($_SERVER['DOCUMENT_ROOT']))) { if(isset($_SERVER['SCRIPT_FILENAME'])) { @@ -149,7 +154,7 @@ if (!defined('PDF_HEADER_TITLE')) { } if (!defined('PDF_HEADER_STRING')) { - define ('PDF_HEADER_STRING', "by Nicola Asuni - Tecnick.com\nwww.tcpdf.org"); + define ('PDF_HEADER_STRING', "by2026 Nicola Asuni - Tecnick.com\nwww.tcpdf.org"); } if (!defined('PDF_UNIT')) { @@ -201,7 +206,7 @@ if (!defined('PDF_FONT_MONOSPACED')) { } if (!defined('PDF_IMAGE_SCALE_RATIO')) { - define ('PDF_IMAGE_SCALE_RATIO', 1.25); + define ('PDF_IMAGE_SCALE_RATIO', 96/72); } if (!defined('HEAD_MAGNIFICATION')) { @@ -240,6 +245,11 @@ if (!defined('K_TIMEZONE')) { define('K_TIMEZONE', @date_default_timezone_get()); } +// Custom cURL options for curl_setopt_array. +if (!defined('K_CURLOPTS')) { + define('K_CURLOPTS', array()); +} + //============================================================+ // END OF FILE //============================================================+ diff --git a/tools/tcpdf/tcpdf_barcodes_1d.php b/tools/tcpdf/tcpdf_barcodes_1d.php index 45d35616c..34cb6da17 100644 --- a/tools/tcpdf/tcpdf_barcodes_1d.php +++ b/tools/tcpdf/tcpdf_barcodes_1d.php @@ -5,9 +5,9 @@ // Begin : 2008-06-09 // Last Update : 2014-10-20 // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com -// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- -// Copyright (C) 2008-2014 Nicola Asuni - Tecnick.com LTD +// Copyright (C) 2008-2026 Nicola Asuni - Tecnick.com LTD // // This file is part of TCPDF software library. // @@ -22,7 +22,7 @@ // See the GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License -// along with TCPDF. If not, see . +// along with TCPDF. If not, see . // // See LICENSE.TXT file for more information. // ------------------------------------------------------------------- @@ -234,7 +234,9 @@ class TCPDFBarcode { ob_start(); imagepng($png); $imagedata = ob_get_clean(); - imagedestroy($png); + if (PHP_VERSION_ID < 80000) { + imagedestroy($png); + } return $imagedata; } } diff --git a/tools/tcpdf/tcpdf_barcodes_2d.php b/tools/tcpdf/tcpdf_barcodes_2d.php index 730361bd8..0e1163653 100644 --- a/tools/tcpdf/tcpdf_barcodes_2d.php +++ b/tools/tcpdf/tcpdf_barcodes_2d.php @@ -5,9 +5,9 @@ // Begin : 2009-04-07 // Last Update : 2014-05-20 // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com -// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- -// Copyright (C) 2009-2014 Nicola Asuni - Tecnick.com LTD +// Copyright (C) 2009-2026 Nicola Asuni - Tecnick.com LTD // // This file is part of TCPDF software library. // @@ -22,7 +22,7 @@ // See the GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License -// along with TCPDF. If not, see . +// along with TCPDF. If not, see . // // See LICENSE.TXT file for more information. // ------------------------------------------------------------------- @@ -238,7 +238,9 @@ class TCPDF2DBarcode { ob_start(); imagepng($png); $imagedata = ob_get_clean(); - imagedestroy($png); + if (PHP_VERSION_ID < 80000) { + imagedestroy($png); + } return $imagedata; } } diff --git a/tools/tcpdf/tcpdf_import.php b/tools/tcpdf/tcpdf_import.php deleted file mode 100644 index 57f9f4f4b..000000000 --- a/tools/tcpdf/tcpdf_import.php +++ /dev/null @@ -1,104 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -// ------------------------------------------------------------------- -// -// Description : This is a PHP class extension of the TCPDF library to -// import existing PDF documents. -// -//============================================================+ - -/** - * @file - * !!! THIS CLASS IS UNDER DEVELOPMENT !!! - * This is a PHP class extension of the TCPDF (http://www.tcpdf.org) library to import existing PDF documents.
    - * @package com.tecnick.tcpdf - * @author Nicola Asuni - * @version 1.0.001 - */ - -// include the TCPDF class -require_once(dirname(__FILE__).'/tcpdf.php'); -// include PDF parser class -require_once(dirname(__FILE__).'/tcpdf_parser.php'); - -/** - * @class TCPDF_IMPORT - * !!! THIS CLASS IS UNDER DEVELOPMENT !!! - * PHP class extension of the TCPDF (http://www.tcpdf.org) library to import existing PDF documents.
    - * @package com.tecnick.tcpdf - * @brief PHP class extension of the TCPDF library to import existing PDF documents. - * @version 1.0.001 - * @author Nicola Asuni - info@tecnick.com - */ -class TCPDF_IMPORT extends TCPDF { - - /** - * Import an existing PDF document - * @param string $filename Filename of the PDF document to import. - * @return void - * @public - * @since 1.0.000 (2011-05-24) - */ - public function importPDF($filename) { - // load document - $rawdata = file_get_contents($filename); - if ($rawdata === false) { - $this->Error('Unable to get the content of the file: '.$filename); - } - // configuration parameters for parser - $cfg = array( - 'die_for_errors' => false, - 'ignore_filter_decoding_errors' => true, - 'ignore_missing_filter_decoders' => true, - ); - try { - // parse PDF data - $pdf = new TCPDF_PARSER($rawdata, $cfg); - } catch (Exception $e) { - die($e->getMessage()); - } - // get the parsed data - $data = $pdf->getParsedData(); - // release some memory - unset($rawdata); - - // ... - - - print_r($data); // DEBUG - - - unset($pdf); - } - -} // END OF CLASS - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/tcpdf_parser.php b/tools/tcpdf/tcpdf_parser.php deleted file mode 100644 index 4156230a3..000000000 --- a/tools/tcpdf/tcpdf_parser.php +++ /dev/null @@ -1,815 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -// ------------------------------------------------------------------- -// -// Description : This is a PHP class for parsing PDF documents. -// -//============================================================+ - -/** - * @file - * This is a PHP class for parsing PDF documents.
    - * @package com.tecnick.tcpdf - * @author Nicola Asuni - * @version 1.0.15 - */ - -// include class for decoding filters -require_once(dirname(__FILE__).'/include/tcpdf_filters.php'); - -/** - * @class TCPDF_PARSER - * This is a PHP class for parsing PDF documents.
    - * @package com.tecnick.tcpdf - * @brief This is a PHP class for parsing PDF documents.. - * @version 1.0.15 - * @author Nicola Asuni - info@tecnick.com - */ -class TCPDF_PARSER { - - /** - * Raw content of the PDF document. - * @private - */ - private $pdfdata = ''; - - /** - * XREF data. - * @protected - */ - protected $xref = array(); - - /** - * Array of PDF objects. - * @protected - */ - protected $objects = array(); - - /** - * Class object for decoding filters. - * @private - */ - private $FilterDecoders; - - /** - * Array of configuration parameters. - * @private - */ - private $cfg = array( - 'die_for_errors' => false, - 'ignore_filter_decoding_errors' => true, - 'ignore_missing_filter_decoders' => true, - ); - -// ----------------------------------------------------------------------------- - - /** - * Parse a PDF document an return an array of objects. - * @param string $data PDF data to parse. - * @param array $cfg Array of configuration parameters: - * 'die_for_errors' : if true termitate the program execution in case of error, otherwise thows an exception; - * 'ignore_filter_decoding_errors' : if true ignore filter decoding errors; - * 'ignore_missing_filter_decoders' : if true ignore missing filter decoding errors. - * @public - * @since 1.0.000 (2011-05-24) - */ - public function __construct($data, $cfg=array()) { - if (empty($data)) { - $this->Error('Empty PDF data.'); - } - // find the pdf header starting position - if (($trimpos = strpos($data, '%PDF-')) === FALSE) { - $this->Error('Invalid PDF data: missing %PDF header.'); - } - // get PDF content string - $this->pdfdata = substr($data, $trimpos); - // get length - $pdflen = strlen($this->pdfdata); - // set configuration parameters - $this->setConfig($cfg); - // get xref and trailer data - $this->xref = $this->getXrefData(); - // parse all document objects - $this->objects = array(); - foreach ($this->xref['xref'] as $obj => $offset) { - if (!isset($this->objects[$obj]) AND ($offset > 0)) { - // decode objects with positive offset - $this->objects[$obj] = $this->getIndirectObject($obj, $offset, true); - } - } - // release some memory - unset($this->pdfdata); - $this->pdfdata = ''; - } - - /** - * Set the configuration parameters. - * @param array $cfg Array of configuration parameters: - * 'die_for_errors' : if true termitate the program execution in case of error, otherwise thows an exception; - * 'ignore_filter_decoding_errors' : if true ignore filter decoding errors; - * 'ignore_missing_filter_decoders' : if true ignore missing filter decoding errors. - * @public - */ - protected function setConfig($cfg) { - if (isset($cfg['die_for_errors'])) { - $this->cfg['die_for_errors'] = !!$cfg['die_for_errors']; - } - if (isset($cfg['ignore_filter_decoding_errors'])) { - $this->cfg['ignore_filter_decoding_errors'] = !!$cfg['ignore_filter_decoding_errors']; - } - if (isset($cfg['ignore_missing_filter_decoders'])) { - $this->cfg['ignore_missing_filter_decoders'] = !!$cfg['ignore_missing_filter_decoders']; - } - } - - /** - * Return an array of parsed PDF document objects. - * @return array Array of parsed PDF document objects. - * @public - * @since 1.0.000 (2011-06-26) - */ - public function getParsedData() { - return array($this->xref, $this->objects); - } - - /** - * Get Cross-Reference (xref) table and trailer data from PDF document data. - * @param int $offset xref offset (if know). - * @param array $xref previous xref array (if any). - * @return array containing xref and trailer data. - * @protected - * @since 1.0.000 (2011-05-24) - */ - protected function getXrefData($offset=0, $xref=array()) { - if ($offset == 0) { - // find last startxref - if (preg_match_all('/[\r\n]startxref[\s]*[\r\n]+([0-9]+)[\s]*[\r\n]+%%EOF/i', $this->pdfdata, $matches, PREG_SET_ORDER, $offset) == 0) { - $this->Error('Unable to find startxref'); - } - $matches = array_pop($matches); - $startxref = $matches[1]; - } elseif (strpos($this->pdfdata, 'xref', $offset) == $offset) { - // Already pointing at the xref table - $startxref = $offset; - } elseif (preg_match('/([0-9]+[\s][0-9]+[\s]obj)/i', $this->pdfdata, $matches, PREG_OFFSET_CAPTURE, $offset)) { - // Cross-Reference Stream object - $startxref = $offset; - } elseif (preg_match('/[\r\n]startxref[\s]*[\r\n]+([0-9]+)[\s]*[\r\n]+%%EOF/i', $this->pdfdata, $matches, PREG_OFFSET_CAPTURE, $offset)) { - // startxref found - $startxref = $matches[1][0]; - } else { - $this->Error('Unable to find startxref'); - } - // check xref position - if (strpos($this->pdfdata, 'xref', $startxref) == $startxref) { - // Cross-Reference - $xref = $this->decodeXref($startxref, $xref); - } else { - // Cross-Reference Stream - $xref = $this->decodeXrefStream($startxref, $xref); - } - if (empty($xref)) { - $this->Error('Unable to find xref'); - } - return $xref; - } - - /** - * Decode the Cross-Reference section - * @param int $startxref Offset at which the xref section starts (position of the 'xref' keyword). - * @param array $xref Previous xref array (if any). - * @return array containing xref and trailer data. - * @protected - * @since 1.0.000 (2011-06-20) - */ - protected function decodeXref($startxref, $xref=array()) { - $startxref += 4; // 4 is the length of the word 'xref' - // skip initial white space chars: \x00 null (NUL), \x09 horizontal tab (HT), \x0A line feed (LF), \x0C form feed (FF), \x0D carriage return (CR), \x20 space (SP) - $offset = $startxref + strspn($this->pdfdata, "\x00\x09\x0a\x0c\x0d\x20", $startxref); - // initialize object number - $obj_num = 0; - // search for cross-reference entries or subsection - while (preg_match('/([0-9]+)[\x20]([0-9]+)[\x20]?([nf]?)(\r\n|[\x20]?[\r\n])/', $this->pdfdata, $matches, PREG_OFFSET_CAPTURE, $offset) > 0) { - if ($matches[0][1] != $offset) { - // we are on another section - break; - } - $offset += strlen($matches[0][0]); - if ($matches[3][0] == 'n') { - // create unique object index: [object number]_[generation number] - $index = $obj_num.'_'.intval($matches[2][0]); - // check if object already exist - if (!isset($xref['xref'][$index])) { - // store object offset position - $xref['xref'][$index] = intval($matches[1][0]); - } - ++$obj_num; - } elseif ($matches[3][0] == 'f') { - ++$obj_num; - } else { - // object number (index) - $obj_num = intval($matches[1][0]); - } - } - // get trailer data - if (preg_match('/trailer[\s]*<<(.*)>>/isU', $this->pdfdata, $matches, PREG_OFFSET_CAPTURE, $offset) > 0) { - $trailer_data = $matches[1][0]; - if (!isset($xref['trailer']) OR empty($xref['trailer'])) { - // get only the last updated version - $xref['trailer'] = array(); - // parse trailer_data - if (preg_match('/Size[\s]+([0-9]+)/i', $trailer_data, $matches) > 0) { - $xref['trailer']['size'] = intval($matches[1]); - } - if (preg_match('/Root[\s]+([0-9]+)[\s]+([0-9]+)[\s]+R/i', $trailer_data, $matches) > 0) { - $xref['trailer']['root'] = intval($matches[1]).'_'.intval($matches[2]); - } - if (preg_match('/Encrypt[\s]+([0-9]+)[\s]+([0-9]+)[\s]+R/i', $trailer_data, $matches) > 0) { - $xref['trailer']['encrypt'] = intval($matches[1]).'_'.intval($matches[2]); - } - if (preg_match('/Info[\s]+([0-9]+)[\s]+([0-9]+)[\s]+R/i', $trailer_data, $matches) > 0) { - $xref['trailer']['info'] = intval($matches[1]).'_'.intval($matches[2]); - } - if (preg_match('/ID[\s]*[\[][\s]*[<]([^>]*)[>][\s]*[<]([^>]*)[>]/i', $trailer_data, $matches) > 0) { - $xref['trailer']['id'] = array(); - $xref['trailer']['id'][0] = $matches[1]; - $xref['trailer']['id'][1] = $matches[2]; - } - } - if (preg_match('/Prev[\s]+([0-9]+)/i', $trailer_data, $matches) > 0) { - // get previous xref - $xref = $this->getXrefData(intval($matches[1]), $xref); - } - } else { - $this->Error('Unable to find trailer'); - } - return $xref; - } - - /** - * Decode the Cross-Reference Stream section - * @param int $startxref Offset at which the xref section starts. - * @param array $xref Previous xref array (if any). - * @return array containing xref and trailer data. - * @protected - * @since 1.0.003 (2013-03-16) - */ - protected function decodeXrefStream($startxref, $xref=array()) { - // try to read Cross-Reference Stream - $xrefobj = $this->getRawObject($startxref); - $xrefcrs = $this->getIndirectObject($xrefobj[1], $startxref, true); - if (!isset($xref['trailer']) OR empty($xref['trailer'])) { - // get only the last updated version - $xref['trailer'] = array(); - $filltrailer = true; - } else { - $filltrailer = false; - } - if (!isset($xref['xref'])) { - $xref['xref'] = array(); - } - $valid_crs = false; - $columns = 0; - $sarr = $xrefcrs[0][1]; - if (!is_array($sarr)) { - $sarr = array(); - } - foreach ($sarr as $k => $v) { - if (($v[0] == '/') AND ($v[1] == 'Type') AND (isset($sarr[($k +1)]) AND ($sarr[($k +1)][0] == '/') AND ($sarr[($k +1)][1] == 'XRef'))) { - $valid_crs = true; - } elseif (($v[0] == '/') AND ($v[1] == 'Index') AND (isset($sarr[($k +1)]))) { - // first object number in the subsection - $index_first = intval($sarr[($k +1)][1][0][1]); - // number of entries in the subsection - $index_entries = intval($sarr[($k +1)][1][1][1]); - } elseif (($v[0] == '/') AND ($v[1] == 'Prev') AND (isset($sarr[($k +1)]) AND ($sarr[($k +1)][0] == 'numeric'))) { - // get previous xref offset - $prevxref = intval($sarr[($k +1)][1]); - } elseif (($v[0] == '/') AND ($v[1] == 'W') AND (isset($sarr[($k +1)]))) { - // number of bytes (in the decoded stream) of the corresponding field - $wb = array(); - $wb[0] = intval($sarr[($k +1)][1][0][1]); - $wb[1] = intval($sarr[($k +1)][1][1][1]); - $wb[2] = intval($sarr[($k +1)][1][2][1]); - } elseif (($v[0] == '/') AND ($v[1] == 'DecodeParms') AND (isset($sarr[($k +1)][1]))) { - $decpar = $sarr[($k +1)][1]; - foreach ($decpar as $kdc => $vdc) { - if (($vdc[0] == '/') AND ($vdc[1] == 'Columns') AND (isset($decpar[($kdc +1)]) AND ($decpar[($kdc +1)][0] == 'numeric'))) { - $columns = intval($decpar[($kdc +1)][1]); - } elseif (($vdc[0] == '/') AND ($vdc[1] == 'Predictor') AND (isset($decpar[($kdc +1)]) AND ($decpar[($kdc +1)][0] == 'numeric'))) { - $predictor = intval($decpar[($kdc +1)][1]); - } - } - } elseif ($filltrailer) { - if (($v[0] == '/') AND ($v[1] == 'Size') AND (isset($sarr[($k +1)]) AND ($sarr[($k +1)][0] == 'numeric'))) { - $xref['trailer']['size'] = $sarr[($k +1)][1]; - } elseif (($v[0] == '/') AND ($v[1] == 'Root') AND (isset($sarr[($k +1)]) AND ($sarr[($k +1)][0] == 'objref'))) { - $xref['trailer']['root'] = $sarr[($k +1)][1]; - } elseif (($v[0] == '/') AND ($v[1] == 'Info') AND (isset($sarr[($k +1)]) AND ($sarr[($k +1)][0] == 'objref'))) { - $xref['trailer']['info'] = $sarr[($k +1)][1]; - } elseif (($v[0] == '/') AND ($v[1] == 'Encrypt') AND (isset($sarr[($k +1)]) AND ($sarr[($k +1)][0] == 'objref'))) { - $xref['trailer']['encrypt'] = $sarr[($k +1)][1]; - } elseif (($v[0] == '/') AND ($v[1] == 'ID') AND (isset($sarr[($k +1)]))) { - $xref['trailer']['id'] = array(); - $xref['trailer']['id'][0] = $sarr[($k +1)][1][0][1]; - $xref['trailer']['id'][1] = $sarr[($k +1)][1][1][1]; - } - } - } - // decode data - if ($valid_crs AND isset($xrefcrs[1][3][0])) { - // number of bytes in a row - $rowlen = ($columns + 1); - // convert the stream into an array of integers - $sdata = unpack('C*', $xrefcrs[1][3][0]); - // split the rows - $sdata = array_chunk($sdata, $rowlen); - // initialize decoded array - $ddata = array(); - // initialize first row with zeros - $prev_row = array_fill (0, $rowlen, 0); - // for each row apply PNG unpredictor - foreach ($sdata as $k => $row) { - // initialize new row - $ddata[$k] = array(); - // get PNG predictor value - $predictor = (10 + $row[0]); - // for each byte on the row - for ($i=1; $i<=$columns; ++$i) { - // new index - $j = ($i - 1); - $row_up = $prev_row[$j]; - if ($i == 1) { - $row_left = 0; - $row_upleft = 0; - } else { - $row_left = $row[($i - 1)]; - $row_upleft = $prev_row[($j - 1)]; - } - switch ($predictor) { - case 10: { // PNG prediction (on encoding, PNG None on all rows) - $ddata[$k][$j] = $row[$i]; - break; - } - case 11: { // PNG prediction (on encoding, PNG Sub on all rows) - $ddata[$k][$j] = (($row[$i] + $row_left) & 0xff); - break; - } - case 12: { // PNG prediction (on encoding, PNG Up on all rows) - $ddata[$k][$j] = (($row[$i] + $row_up) & 0xff); - break; - } - case 13: { // PNG prediction (on encoding, PNG Average on all rows) - $ddata[$k][$j] = (($row[$i] + (($row_left + $row_up) / 2)) & 0xff); - break; - } - case 14: { // PNG prediction (on encoding, PNG Paeth on all rows) - // initial estimate - $p = ($row_left + $row_up - $row_upleft); - // distances - $pa = abs($p - $row_left); - $pb = abs($p - $row_up); - $pc = abs($p - $row_upleft); - $pmin = min($pa, $pb, $pc); - // return minimum distance - switch ($pmin) { - case $pa: { - $ddata[$k][$j] = (($row[$i] + $row_left) & 0xff); - break; - } - case $pb: { - $ddata[$k][$j] = (($row[$i] + $row_up) & 0xff); - break; - } - case $pc: { - $ddata[$k][$j] = (($row[$i] + $row_upleft) & 0xff); - break; - } - } - break; - } - default: { // PNG prediction (on encoding, PNG optimum) - $this->Error('Unknown PNG predictor'); - break; - } - } - } - $prev_row = $ddata[$k]; - } // end for each row - // complete decoding - $sdata = array(); - // for every row - foreach ($ddata as $k => $row) { - // initialize new row - $sdata[$k] = array(0, 0, 0); - if ($wb[0] == 0) { - // default type field - $sdata[$k][0] = 1; - } - $i = 0; // count bytes in the row - // for every column - for ($c = 0; $c < 3; ++$c) { - // for every byte on the column - for ($b = 0; $b < $wb[$c]; ++$b) { - if (isset($row[$i])) { - $sdata[$k][$c] += ($row[$i] << (($wb[$c] - 1 - $b) * 8)); - } - ++$i; - } - } - } - $ddata = array(); - // fill xref - if (isset($index_first)) { - $obj_num = $index_first; - } else { - $obj_num = 0; - } - foreach ($sdata as $k => $row) { - switch ($row[0]) { - case 0: { // (f) linked list of free objects - break; - } - case 1: { // (n) objects that are in use but are not compressed - // create unique object index: [object number]_[generation number] - $index = $obj_num.'_'.$row[2]; - // check if object already exist - if (!isset($xref['xref'][$index])) { - // store object offset position - $xref['xref'][$index] = $row[1]; - } - break; - } - case 2: { // compressed objects - // $row[1] = object number of the object stream in which this object is stored - // $row[2] = index of this object within the object stream - $index = $row[1].'_0_'.$row[2]; - $xref['xref'][$index] = -1; - break; - } - default: { // null objects - break; - } - } - ++$obj_num; - } - } // end decoding data - if (isset($prevxref)) { - // get previous xref - $xref = $this->getXrefData($prevxref, $xref); - } - return $xref; - } - - /** - * Get object type, raw value and offset to next object - * @param int $offset Object offset. - * @return array containing object type, raw value and offset to next object - * @protected - * @since 1.0.000 (2011-06-20) - */ - protected function getRawObject($offset=0) { - $objtype = ''; // object type to be returned - $objval = ''; // object value to be returned - // skip initial white space chars: \x00 null (NUL), \x09 horizontal tab (HT), \x0A line feed (LF), \x0C form feed (FF), \x0D carriage return (CR), \x20 space (SP) - $offset += strspn($this->pdfdata, "\x00\x09\x0a\x0c\x0d\x20", $offset); - // get first char - $char = $this->pdfdata[$offset]; - // get object type - switch ($char) { - case '%': { // \x25 PERCENT SIGN - // skip comment and search for next token - $next = strcspn($this->pdfdata, "\r\n", $offset); - if ($next > 0) { - $offset += $next; - return $this->getRawObject($offset); - } - break; - } - case '/': { // \x2F SOLIDUS - // name object - $objtype = $char; - ++$offset; - if (preg_match('/^([^\x00\x09\x0a\x0c\x0d\x20\s\x28\x29\x3c\x3e\x5b\x5d\x7b\x7d\x2f\x25]+)/', substr($this->pdfdata, $offset, 256), $matches) == 1) { - $objval = $matches[1]; // unescaped value - $offset += strlen($objval); - } - break; - } - case '(': // \x28 LEFT PARENTHESIS - case ')': { // \x29 RIGHT PARENTHESIS - // literal string object - $objtype = $char; - ++$offset; - $strpos = $offset; - if ($char == '(') { - $open_bracket = 1; - while ($open_bracket > 0) { - if (!isset($this->pdfdata[$strpos])) { - break; - } - $ch = $this->pdfdata[$strpos]; - switch ($ch) { - case '\\': { // REVERSE SOLIDUS (5Ch) (Backslash) - // skip next character - ++$strpos; - break; - } - case '(': { // LEFT PARENHESIS (28h) - ++$open_bracket; - break; - } - case ')': { // RIGHT PARENTHESIS (29h) - --$open_bracket; - break; - } - } - ++$strpos; - } - $objval = substr($this->pdfdata, $offset, ($strpos - $offset - 1)); - $offset = $strpos; - } - break; - } - case '[': // \x5B LEFT SQUARE BRACKET - case ']': { // \x5D RIGHT SQUARE BRACKET - // array object - $objtype = $char; - ++$offset; - if ($char == '[') { - // get array content - $objval = array(); - do { - // get element - $element = $this->getRawObject($offset); - $offset = $element[2]; - $objval[] = $element; - } while ($element[0] != ']'); - // remove closing delimiter - array_pop($objval); - } - break; - } - case '<': // \x3C LESS-THAN SIGN - case '>': { // \x3E GREATER-THAN SIGN - if (isset($this->pdfdata[($offset + 1)]) AND ($this->pdfdata[($offset + 1)] == $char)) { - // dictionary object - $objtype = $char.$char; - $offset += 2; - if ($char == '<') { - // get array content - $objval = array(); - do { - // get element - $element = $this->getRawObject($offset); - $offset = $element[2]; - $objval[] = $element; - } while ($element[0] != '>>'); - // remove closing delimiter - array_pop($objval); - } - } else { - // hexadecimal string object - $objtype = $char; - ++$offset; - if (($char == '<') AND (preg_match('/^([0-9A-Fa-f\x09\x0a\x0c\x0d\x20]+)>/iU', substr($this->pdfdata, $offset), $matches) == 1)) { - // remove white space characters - $objval = strtr($matches[1], "\x09\x0a\x0c\x0d\x20", ''); - $offset += strlen($matches[0]); - } elseif (($endpos = strpos($this->pdfdata, '>', $offset)) !== FALSE) { - $offset = $endpos + 1; - } - } - break; - } - default: { - if (substr($this->pdfdata, $offset, 6) == 'endobj') { - // indirect object - $objtype = 'endobj'; - $offset += 6; - } elseif (substr($this->pdfdata, $offset, 4) == 'null') { - // null object - $objtype = 'null'; - $offset += 4; - $objval = 'null'; - } elseif (substr($this->pdfdata, $offset, 4) == 'true') { - // boolean true object - $objtype = 'boolean'; - $offset += 4; - $objval = 'true'; - } elseif (substr($this->pdfdata, $offset, 5) == 'false') { - // boolean false object - $objtype = 'boolean'; - $offset += 5; - $objval = 'false'; - } elseif (substr($this->pdfdata, $offset, 6) == 'stream') { - // start stream object - $objtype = 'stream'; - $offset += 6; - if (preg_match('/^([\r]?[\n])/isU', substr($this->pdfdata, $offset), $matches) == 1) { - $offset += strlen($matches[0]); - if (preg_match('/(endstream)[\x09\x0a\x0c\x0d\x20]/isU', substr($this->pdfdata, $offset), $matches, PREG_OFFSET_CAPTURE) == 1) { - $objval = substr($this->pdfdata, $offset, $matches[0][1]); - $offset += $matches[1][1]; - } - } - } elseif (substr($this->pdfdata, $offset, 9) == 'endstream') { - // end stream object - $objtype = 'endstream'; - $offset += 9; - } elseif (preg_match('/^([0-9]+)[\s]+([0-9]+)[\s]+R/iU', substr($this->pdfdata, $offset, 33), $matches) == 1) { - // indirect object reference - $objtype = 'objref'; - $offset += strlen($matches[0]); - $objval = intval($matches[1]).'_'.intval($matches[2]); - } elseif (preg_match('/^([0-9]+)[\s]+([0-9]+)[\s]+obj/iU', substr($this->pdfdata, $offset, 33), $matches) == 1) { - // object start - $objtype = 'obj'; - $objval = intval($matches[1]).'_'.intval($matches[2]); - $offset += strlen ($matches[0]); - } elseif (($numlen = strspn($this->pdfdata, '+-.0123456789', $offset)) > 0) { - // numeric object - $objtype = 'numeric'; - $objval = substr($this->pdfdata, $offset, $numlen); - $offset += $numlen; - } - break; - } - } - return array($objtype, $objval, $offset); - } - - /** - * Get content of indirect object. - * @param string $obj_ref Object number and generation number separated by underscore character. - * @param int $offset Object offset. - * @param boolean $decoding If true decode streams. - * @return array containing object data. - * @protected - * @since 1.0.000 (2011-05-24) - */ - protected function getIndirectObject($obj_ref, $offset=0, $decoding=true) { - $obj = explode('_', $obj_ref); - if (($obj === false) OR (count($obj) != 2)) { - $this->Error('Invalid object reference: '.$obj); - return; - } - $objref = $obj[0].' '.$obj[1].' obj'; - // ignore leading zeros - $offset += strspn($this->pdfdata, '0', $offset); - if (strpos($this->pdfdata, $objref, $offset) != $offset) { - // an indirect reference to an undefined object shall be considered a reference to the null object - return array('null', 'null', $offset); - } - // starting position of object content - $offset += strlen($objref); - // get array of object content - $objdata = array(); - $i = 0; // object main index - do { - $oldoffset = $offset; - // get element - $element = $this->getRawObject($offset); - $offset = $element[2]; - // decode stream using stream's dictionary information - if ($decoding AND ($element[0] == 'stream') AND (isset($objdata[($i - 1)][0])) AND ($objdata[($i - 1)][0] == '<<')) { - $element[3] = $this->decodeStream($objdata[($i - 1)][1], $element[1]); - } - $objdata[$i] = $element; - ++$i; - } while (($element[0] != 'endobj') AND ($offset != $oldoffset)); - // remove closing delimiter - array_pop($objdata); - // return raw object content - return $objdata; - } - - /** - * Get the content of object, resolving indect object reference if necessary. - * @param string $obj Object value. - * @return array containing object data. - * @protected - * @since 1.0.000 (2011-06-26) - */ - protected function getObjectVal($obj) { - if ($obj[0] == 'objref') { - // reference to indirect object - if (isset($this->objects[$obj[1]])) { - // this object has been already parsed - return $this->objects[$obj[1]]; - } elseif (isset($this->xref[$obj[1]])) { - // parse new object - $this->objects[$obj[1]] = $this->getIndirectObject($obj[1], $this->xref[$obj[1]], false); - return $this->objects[$obj[1]]; - } - } - return $obj; - } - - /** - * Decode the specified stream. - * @param array $sdic Stream's dictionary array. - * @param string $stream Stream to decode. - * @return array containing decoded stream data and remaining filters. - * @protected - * @since 1.0.000 (2011-06-22) - */ - protected function decodeStream($sdic, $stream) { - // get stream length and filters - $slength = strlen($stream); - if ($slength <= 0) { - return array('', array()); - } - $filters = array(); - foreach ($sdic as $k => $v) { - if ($v[0] == '/') { - if (($v[1] == 'Length') AND (isset($sdic[($k + 1)])) AND ($sdic[($k + 1)][0] == 'numeric')) { - // get declared stream length - $declength = intval($sdic[($k + 1)][1]); - if ($declength < $slength) { - $stream = substr($stream, 0, $declength); - $slength = $declength; - } - } elseif (($v[1] == 'Filter') AND (isset($sdic[($k + 1)]))) { - // resolve indirect object - $objval = $this->getObjectVal($sdic[($k + 1)]); - if ($objval[0] == '/') { - // single filter - $filters[] = $objval[1]; - } elseif ($objval[0] == '[') { - // array of filters - foreach ($objval[1] as $flt) { - if ($flt[0] == '/') { - $filters[] = $flt[1]; - } - } - } - } - } - } - // decode the stream - $remaining_filters = array(); - foreach ($filters as $filter) { - if (in_array($filter, TCPDF_FILTERS::getAvailableFilters())) { - try { - $stream = TCPDF_FILTERS::decodeFilter($filter, $stream); - } catch (Exception $e) { - $emsg = $e->getMessage(); - if ((($emsg[0] == '~') AND !$this->cfg['ignore_missing_filter_decoders']) - OR (($emsg[0] != '~') AND !$this->cfg['ignore_filter_decoding_errors'])) { - $this->Error($e->getMessage()); - } - } - } else { - // add missing filter to array - $remaining_filters[] = $filter; - } - } - return array($stream, $remaining_filters); - } - - /** - * Throw an exception or print an error message and die if the K_TCPDF_PARSER_THROW_EXCEPTION_ERROR constant is set to true. - * @param string $msg The error message - * @public - * @since 1.0.000 (2011-05-23) - */ - public function Error($msg) { - if ($this->cfg['die_for_errors']) { - die('TCPDF_PARSER ERROR: '.$msg); - } else { - throw new Exception('TCPDF_PARSER ERROR: '.$msg); - } - } - -} // END OF TCPDF_PARSER CLASS - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/tools/tcpdf/tools/tcpdf_addfont.php b/tools/tcpdf/tools/tcpdf_addfont.php index 2937c7564..e1a2b32e5 100755 --- a/tools/tcpdf/tools/tcpdf_addfont.php +++ b/tools/tcpdf/tools/tcpdf_addfont.php @@ -7,9 +7,9 @@ // Last Update : 2013-08-05 // Authors : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com // Remi Collet -// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- -// Copyright (C) 2011-2013 Nicola Asuni - Tecnick.com LTD +// Copyright (C) 2011-2026 Nicola Asuni - Tecnick.com LTD // // This file is part of TCPDF software library. //