{"id":8409,"date":"2024-02-29T12:28:14","date_gmt":"2024-02-29T12:28:14","guid":{"rendered":"https:\/\/www.bdl.dz\/en\/?page_id=8409"},"modified":"2024-02-29T12:28:14","modified_gmt":"2024-02-29T12:28:14","slug":"simulateur-anglais","status":"publish","type":"page","link":"https:\/\/www.bdl.dz\/en\/simulateur-anglais\/","title":{"rendered":"simulateur anglais"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"8409\" class=\"elementor elementor-8409\">\n\t\t\t\t        <section class=\"elementor-section elementor-top-section elementor-element elementor-element-533ce43 elementor-section-full_width elementor-section-height-default elementor-section-height-default exad-glass-effect-no wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no exad-sticky-section-no\" data-id=\"533ce43\" data-element_type=\"section\" data-e-type=\"section\">\n            \n                        <div class=\"elementor-container elementor-column-gap-default \">\n                    <div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-4d7abda exad-glass-effect-no exad-sticky-section-no\" data-id=\"4d7abda\" data-element_type=\"column\" data-e-type=\"column\">\n        <div class=\"elementor-widget-wrap\">\n                    \n                    <\/div>\n        <\/div>\n                <div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-a4f07c8 exad-glass-effect-no exad-sticky-section-no\" data-id=\"a4f07c8\" data-element_type=\"column\" data-e-type=\"column\">\n        <div class=\"elementor-widget-wrap elementor-element-populated\">\n                    \n        \t\t<div class=\"elementor-element elementor-element-6555ef2 exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-html\" data-id=\"6555ef2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\">\r\n  <head>\r\n    <meta charset=\"UTF-8\" \/>\r\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" \/>\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/>\r\n\r\n    <script src=\"https:\/\/unpkg.com\/pdf-lib\"><\/script>\r\n\r\n    <style type=\"text\/css\">\r\n      .cancel {\r\n        position: absolute;\r\n        width: 30px;\r\n        height: 30px;\r\n        background: #fff;\r\n        border-radius: 100%;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        top: 0;\r\n        right: -35px;\r\n        border: 0;\r\n        cursor: pointer;\r\n        padding: 0;\r\n      }\r\n\r\n      .preview {\r\n        position: fixed;\r\n        top: 0;\r\n        left: 0;\r\n        width: 100vw;\r\n        height: 100vh;\r\n        display: none;\r\n        justify-content: center;\r\n        padding: 2rem;\r\n        box-sizing: border-box;\r\n        background-color: #0000005d;\r\n        overflow-y: auto;\r\n        z-index: 999;\r\n      }\r\n\r\n      .preview-container {\r\n        width: 600px;\r\n        height: 800px;\r\n        background-color: white;\r\n        border-radius: 10px;\r\n        padding: 1rem;\r\n        position: relative;\r\n      }\r\n    <\/style>\r\n    <title>Simulation mourabaha vehicule<\/title>\r\n  <\/head>\r\n  <body>\r\n    <div class=\"container\">\r\n      <!-- immobilier -->\r\n      <div\r\n        class=\"form\"\r\n        style=\"\r\n          display: flex;\r\n          flex-direction: column;\r\n          gap: 2rem;\r\n          width: 60%;\r\n          margin: auto;\r\n        \"\r\n      >\r\n        <div class=\"title\"><\/div>\r\n        <div\r\n          class=\"form-grid\"\r\n          style=\"display: flex; flex-direction: column; gap: 1rem\"\r\n        >\r\n          <div class=\"form-input\">\r\n            <label style=\"font-weight: bold\">Type d'interet<\/label>\r\n            <select type=\"option\" id=\"type_interet\">\r\n              <option value=\"1\">Purchase from a real estate developer<\/option>\r\n              <option value=\"2\">Purchase from an individual<\/option>\r\n              <option value=\"3\">Purchase off-plan<\/option>\r\n              <option value=\"4\">Purchase VSP\/LSP<\/option>\r\n              <option value=\"5\">Purchase from a cooperative<\/option>\r\n              <option value=\"6\">Self-construction<\/option>\r\n              <option value=\"7\">Development<\/option>\r\n              <option value=\"8\">Extension<\/option>\r\n              <option value=\"9\">Construction in rural area<\/option>\r\n            <\/select>\r\n          <\/div>\r\n          <div class=\"form-input\">\r\n            <label style=\"font-weight: bold\">Monthly Income<\/label>\r\n            <input type=\"text\" id=\"amount\" placeholder=\"Enter my income\" \/>\r\n          <\/div>\r\n          <div class=\"form-input\">\r\n            <label style=\"font-weight: bold\">Age<\/label>\r\n            <input type=\"text\" id=\"duree\" placeholder=\"Enter my age\" \/>\r\n          <\/div>\r\n        <\/div>\r\n        <button class=\"create\" type=\"button\" onclick=\"printPdf()\">\r\n          CALCULATE\r\n        <\/button>\r\n      <\/div>\r\n    <\/div>\r\n    <div class=\"preview\" id=\"preview\">\r\n      <div class=\"preview-container\">\r\n        <button type=\"button\" onclick=\"closeBtn()\" class=\"cancel\">\r\n          <svg\r\n            viewBox=\"0 0 512 512\"\r\n            width=\"15\"\r\n            height=\"15\"\r\n            version=\"1.1\"\r\n            xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\r\n            xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\"\r\n            fill=\"#000000\"\r\n          >\r\n            <g id=\"SVGRepo_bgCarrier\" stroke-width=\"0\"><\/g>\r\n            <g\r\n              id=\"SVGRepo_tracerCarrier\"\r\n              stroke-linecap=\"round\"\r\n              stroke-linejoin=\"round\"\r\n            ><\/g>\r\n            <g id=\"SVGRepo_iconCarrier\">\r\n              <title>cancel<\/title>\r\n              <g\r\n                id=\"Page-1\"\r\n                stroke=\"none\"\r\n                stroke-width=\"1\"\r\n                fill=\"none\"\r\n                fill-rule=\"evenodd\"\r\n              >\r\n                <g\r\n                  id=\"work-case\"\r\n                  fill=\"#000000\"\r\n                  transform=\"translate(91.520000, 91.520000)\"\r\n                >\r\n                  <polygon\r\n                    id=\"Close\"\r\n                    points=\"328.96 30.2933333 298.666667 1.42108547e-14 164.48 134.4 30.2933333 1.42108547e-14 1.42108547e-14 30.2933333 134.4 164.48 1.42108547e-14 298.666667 30.2933333 328.96 164.48 194.56 298.666667 328.96 328.96 298.666667 194.56 164.48\"\r\n                  ><\/polygon>\r\n                <\/g>\r\n              <\/g>\r\n            <\/g>\r\n          <\/svg>\r\n        <\/button>\r\n        <iframe id=\"pdf\" style=\"width: 100%; height: 100%\"><\/iframe>\r\n      <\/div>\r\n    <\/div>\r\n    <script>\r\n      function formaterNombre(fltValeur) {\r\n        \/* Initialisations *\/\r\n        var strSepMilliers = \" \";\r\n        var strSepDecimal = \",\";\r\n        var intNbDecimales = 2;\r\n        var strResultat = \"\";\r\n        var strPartieEntiere = String(Math.floor(fltValeur));\r\n\r\n        \/* Decoupage par milliers *\/\r\n        var intNbBlocs = parseInt(strPartieEntiere.length \/ 3);\r\n        var intLongPremBloc = strPartieEntiere.length % 3;\r\n        strResultat = strPartieEntiere.substr(0, intLongPremBloc);\r\n        for (var intIdxBloc = 0; intIdxBloc < intNbBlocs; intIdxBloc++)\r\n          strResultat +=\r\n            strSepMilliers +\r\n            strPartieEntiere.substr(intIdxBloc * 3 + intLongPremBloc, 3);\r\n\r\n        \/* Ajout de la partie d\u00e9cimale *\/\r\n        var strPartieDecimale = \"\";\r\n        if (fltValeur == Math.floor(fltValeur))\r\n          while (strPartieDecimale.length < intNbDecimales)\r\n            strPartieDecimale += \"0\";\r\n        else\r\n          strPartieDecimale = String(\r\n            Math.round(\r\n              (fltValeur - Math.floor(fltValeur)) * Math.pow(10, intNbDecimales)\r\n            )\r\n          );\r\n        strResultat += strSepDecimal + strPartieDecimale;\r\n\r\n        \/* Retour de la cha\u00eene r\u00e9sultante *\/\r\n        return strResultat;\r\n      }\r\n      \/\/ JavaScript Document\r\n      var valeur;\r\n\r\n      let format = (number) =>\r\n        new Intl.NumberFormat(\"fr-FR\", {\r\n          style: \"currency\",\r\n          currency: \"DZD\",\r\n        }).format(number);\r\n      const duration = (age) => (75 - age > 35 ? 35 : 75 - age);\r\n      const interest = (revenue, value) => {\r\n        let rate;\r\n        if (value == 1 || value == 3 || value == 4 || value == 9) {\r\n          if (revenue > 20000 && revenue <= 120000) {\r\n            rate = 0.01;\r\n          } else if (revenue > 120000 && revenue <= 240000) {\r\n            rate = 0.03;\r\n          } else {\r\n            rate = 0.0625;\r\n          }\r\n        } else {\r\n          rate = 0.0625;\r\n        }\r\n        return rate \/ 12;\r\n      };\r\n      const annuity = (revenue) =>\r\n        revenue < 60000\r\n          ? 0.3\r\n          : revenue >= 60000 && revenue <= 120000\r\n          ? 0.45\r\n          : 0.5;\r\n\r\n      let calculate = (revenue, value, age) => {\r\n        let df = 6;\r\n        let n = duration(age) * 12;\r\n        let a = revenue * annuity(revenue);\r\n        let x1 = df - n;\r\n        let y1 = 1 + interest(revenue, value);\r\n        let y2 = Math.pow(y1, -df);\r\n        let y3 = Math.pow(y1, x1);\r\n        let c = ((a * y2) \/ interest(revenue, value)) * (1 - y3);\r\n        let rs = Math.round(c * 100) \/ 100;\r\n        let mens = Math.round(a * 100) \/ 100;\r\n        console.log({\r\n          total: formaterNombre(rs),\r\n          mens: formaterNombre(mens),\r\n          duration: `${duration(age)} ANS`,\r\n          rate: `${interest(revenue, value) * 1200} %`,\r\n        });\r\n        return {\r\n          total: formaterNombre(rs),\r\n          mens: formaterNombre(mens),\r\n          duration: `${duration(age)} ANS`,\r\n          rate: `${interest(revenue, value) * 1200} %`,\r\n        };\r\n        \/\/changed. now with parameter\r\n      };\r\n      async function printPdf() {\r\n        let select = document.getElementById(\"type_interet\");\r\n        var valeur = select.value;\r\n        let type = select.options[select.selectedIndex].text;\r\n        var amount = document.getElementById(\"amount\").value;\r\n        const d = new Date();\r\n        var duree = document.getElementById(\"duree\").value;\r\n\r\n        const { total, mens, duration, rate } = calculate(\r\n          amount,\r\n          valeur,\r\n          duree\r\n        );\r\n        console.log({ total, mens, duration, rate });\r\n        const imageBytes = await fetch(\r\n          \"https:\/\/www.bdl.dz\/en\/wp-content\/uploads\/2022\/12\/logo-1.png\"\r\n        ).then((res) => res.arrayBuffer());\r\n\r\n        const pdfDoc = await PDFLib.PDFDocument.create();\r\n\r\n        const image = await pdfDoc.embedPng(imageBytes);\r\n\r\n        const page = pdfDoc.addPage([400, 500]);\r\n        const { width, height } = image.scale(0.4);\r\n        page.drawImage(image, {\r\n          x: 120,\r\n          y: 430,\r\n          width,\r\n          height,\r\n        });\r\n\r\n        page.moveTo(40, 350);\r\n        page.drawText(\"Hello,\", {\r\n          size: 8,\r\n        });\r\n        page.moveTo(40, 330);\r\n        page.drawText(\r\n          `We have received your (${type}) simulation request, and we thank you for choosing BDL.\\n`,\r\n          {\r\n            size: 8,\r\n            lineHeight: 12,\r\n          }\r\n        );\r\n        page.moveTo(40, 300);\r\n        page.drawText(\r\n          `After reviewing your request, we are pleased to offer \r\nyou financing for a (${type}) of (${total}) DZD \r\nwith an interest rate of (${rate}).\\n` +\r\n`The repayment of this (${type}) will be made by monthly debit \r\nfrom your account of (${mens}) DZD over a period of (${duration}).`,\r\n          {\r\n            size: 8,\r\n            lineHeight: 12,\r\n          }\r\n        );\r\n        page.moveTo(40, 210);\r\n        page.drawText(\r\n          `For more information, feel free to contact us at 3312 or 021994800.`,\r\n          {\r\n            size: 8,\r\n            lineHeight: 12,\r\n          }\r\n        );\r\n        page.moveTo(260, 160);\r\n        page.drawText(`BDL Team, le [${d.toISOString().split(\"T\")[0]}]`, {\r\n          size: 8,\r\n          lineHeight: 12,\r\n        });\r\n        page.moveTo(70, 80);\r\n        page.drawText(\r\n          `Note: This simulation is indicative and has no contractual value.`,\r\n          {\r\n            size: 8,\r\n            lineHeight: 12,\r\n          }\r\n        );\r\n\r\n        const pdfDataUri = await pdfDoc.saveAsBase64({ dataUri: true });\r\n        document.getElementById(\"pdf\").src = pdfDataUri;\r\n        document.getElementById(\"preview\").style.display = \"flex\";\r\n      }\r\n\r\n      function closeBtn() {\r\n        console.log(\"click\");\r\n        document.getElementById(\"preview\").style.display = \"none\";\r\n      }\r\n    <\/script>\r\n  <\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t            <\/div>\n        <\/div>\n                <div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-203811d exad-glass-effect-no exad-sticky-section-no\" data-id=\"203811d\" data-element_type=\"column\" data-e-type=\"column\">\n        <div class=\"elementor-widget-wrap\">\n                    \n                    <\/div>\n        <\/div>\n                    <\/div>\n        <\/section>\n        \t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Simulation mourabaha vehicule Type d&#8217;interet Purchase from a real estate developerPurchase from an individualPurchase off-planPurchase VSP\/LSPPurchase from a cooperativeSelf-constructionDevelopmentExtensionConstruction in rural area Monthly Income Age CALCULATE cancel<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-8409","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.bdl.dz\/en\/wp-json\/wp\/v2\/pages\/8409","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bdl.dz\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.bdl.dz\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.bdl.dz\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bdl.dz\/en\/wp-json\/wp\/v2\/comments?post=8409"}],"version-history":[{"count":0,"href":"https:\/\/www.bdl.dz\/en\/wp-json\/wp\/v2\/pages\/8409\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.bdl.dz\/en\/wp-json\/wp\/v2\/media?parent=8409"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}